Image Metadata (이미지 메타데이터)

누루웅지·2021년 2월 10일
2

Image

목록 보기
7/7

Image Metadata

핸드폰으로 찍은 사진을 확인해보면 이미지 상세 정보를 확인할 수 있다. 거기에는 사진을 언제, 어디서, 어떻게 찍었는지에 대한 내용이 담겨있다. 심지어 찍을 당시의 카메라 설정값(초점 거리, 셔터 속도 등)까지도 알 수 있다. 이러한 부수적인 정보를 보통 metadata라 표현하는데, 이미지의 metadata는 어떻게 저장되는 것일까?

(갤러리에서 사진의 상세 정보를 확인하면 날짜, 위치, 카메라 정보 등을 확인할 수 있다.)

여태 JPEG, PNG, GIF, 그리고 WebP 이미지 포맷에 대해 살펴봤다. 하지만 이 포맷들은 단순히 이미지 압축을 어떻게 할 것인지 다룬 방법들이라, 압축에 사용되는 필수 정보(이미지 크기, 압축 파라미터 등)만 기본 요소로 저장한다. 그래서 각 이미지 압축 포맷에서는 부수적인 metadata 저장을 위한 필드를 따로 지정해둔다. 대표적으로 Exif metadata를 저장하기 위한 JPEG의 APP1 segment, PNG의 eXIf chunk, WebP의 EXIF chunk 등이 바로 그 예다.

그렇다면 이미지 metadata를 위한 포맷은 어떤 것이 있을까? 이미지 metadata의 표준으로 사용되는 포맷들은 아래와 같다!

  • Exif (Exchangeable Image File Format)
  • XMP (Extensible Metadata Platform)
  • IPTC-IIM (International Press Telecommunications Council - Information Interchange Model)

이번 포스트에서는 각 metadata 포맷에 대해 정리하고, 또 중복되는 속성들에 대해 어떻게 다루는지 살펴볼 예정이다.

Exif

Exif(Exchangeable image file format)는 스마트폰 등의 디지털 카메라에서 표준처럼 사용되는 metadata 포맷이다. 다르게 말하자면, 디지털 카메라로 찍은 파일은 대부분 JPEG/Exif 포맷으로 저장된다고 할 수 있다. (압축은 JPEG으로, metadata는 Exif로)

기본적으로 Exif는 TIFF(Tagged Image File Format)의 tag 구조를 빌려 표현되는데, 이는 독립적으로 사용되지 않고 JPEG, TIFF, RIFF, WAV 등의 기존 포맷과 함께 사용된다. (PNG에서는 원래 지원하지 않았었지만, 2017년 PNG 1.2 (ver 1.5) 이후 추가되었다고 한다.)

Exif에서 다루는 meatadata tag들은 다양하다.

  • Date & Time: 사진을 찍은 날짜 및 시간 등이 저장된다.
    (2016년 Exif version 2.31 이후 time zone 또한 명시할 수 있게 되었다.)
  • Camera Info: 카메라에 대한 기본 정보. (카메라 모델, 제작사 등)
  • Camera Settings: 이미지를 찍을 당시의 카메라 설정값. (초점 거리, 플래시 사용유무, 조리개, 셔터 속도 등)
  • Orientation: 이미지의 회전/반전 정보.
    (가속도 센서를 활용해 이미지의 적절한 방향을 설정하거나, 이미지 편집 프로그램에서 회전/반전시킬 경우 해당 태그 값만 수정할 수도 있다.)
  • Geolocation: 위치 정보. (GPS)
  • Thumbnail: 카메라 모니터나 파일 탐색기에서 보여질 섬네일도 저장된다.
    (이미지를 수정할 경우, 해당 tag도 함께 수정되어야 한다! 수정 전의 이미지가 유출될 수 있다!)
  • Description: 이미지에 대한 설명.
  • Copyright: 아티스트 및 저작권에 대한 정보도 저장할 수 있다. (사실 아무나 수정할 수 있어서 조금 취약하다고 생각된다.)

이 정도면 우리가 찍은 사진에서 확인할 수 있는 상세 정보의 대부분을 Exif가 저장한다고 해도 과언이 아니겠다.

자세한 tag 정보를 확인하려면 관련 문서를 참고하기 바란다.

XMP

XMP(Extensible Metadata Platform)는 Adobe에서 제정한 ISO 규격의 metadata 포맷이다. 이 포맷은 이미지 뿐만 아니라 동영상(MP4, AVI 등), 오디오(WAV, MP3 등) , 그리고 문서(PDF, HTML 등) 파일에서도 사용될 정도로 범용적이며, 확장에 있어 자유로운 형태를 띤다.

기본적으로 XMP에서는 data model과 이를 표현하는 serialization 방식으로 나눠볼 수 있다.

Data model

Data model은 metadata 속성의 집합을 뜻하는, 일종의 추상적 개념이다. 이는 name/value pair가 될 수도, structured value가 될 수도, 혹은 list of values가 될 수도 있다. (또한 nested structure도 될 수 있다!)

또한 표준에 정의된 core properties가 있는데, 이 집합을 위한 특정 namespace들을 정의하고 있다 (e.g., Dublin Core namespace). 물론 사용자 정의 data model을 확장할 수 있도록 custom namespace 또한 지원된다.

XMP data model의 instance를 XMP packet으로 칭하며, 이는 즉, XMP metadata property들의 집합이라고 말할 수 있겠다. 하나의 packet은 하나의 resource에 대한 metadata여야 하고, 한 resource에 여러 packet이 존재할 수 있다.

Packet에 속성을 추가할 때는 기존 속성들에 영향을 끼치지 않도록 추가할 수 있다. 또한 XMP packet의 속성들을 추가/수정하는 경우 알 수 없는 속성들은 건드리지 않고 그대로 두도록 권고된다. 따라서 이는 데이터의 history를 기록하는 데에 유용하다.
('사진 촬영 -> 사진 편집 -> 최종 문서로 종합' 과 같이 데이터의 처리 단계를 기록할 수 있다.)

Serialization

앞서 이야기한 data model은 추상적 개념이다. 따라서 data model을 파일에 저장할 때 구체적으로 표현하기 위해 serialization이 필요하다.

XMP의 serialization format으로는 W3C RDF/XML 문법이 주로 사용되며, RDF/XML로 만들어진 XMP packet을 serialize 하는 방법은 여러 가지가 존재한다고 한다. (뭔지 잘 모르겠다)

XMP data에 기록되는 가장 일반적인 metadata tag는 Dublin Core Metadata Initiative이며, 여기에는 title, description, creator 등이 포함된다. 이외에도 Exif와 중복되는 tag도 많이 지원하며, rating이나 person in image, face region 등 재밌는 tag도 저장할 수 있다. (이렇게 다양한 tag가 지원되는 이유는 아무래도 확장 가능하도록 설계되었기 때문일 것이다.)

물론 XMP에서도 제한적인 부분이 있다. XMP는 일반적으로 binary data type이 내장되는 것을 허용하지 않는다. 이는 즉, 어떤 binary data(e.g., thumnail images)라도 XML-friendly format (e.g., Base64)으로 encoding되어야 함을 의미한다.

XMP metadata는 문서 전체를 설명할 수도 있지만, page나 포함된 image와 같이 문서의 일부만 설명할 수도 있다. 이러한 구조를 통해 문서에 포함된 이미지 등에 대한 저작권 및 권리 정보도 유지할 수 있다. 마찬가지로, 여러 개의 작은 문서에서 만들어진 문서도 그 metadata를 유지할 수 있다.

자세한 tag 정보를 확인하려면 관련 문서를 참고하기 바란다.

IPTC-IIM

TBU...

Metadata Reconciliation

TBU...


Comment

아직 할 게 많이 남았다! 얼른 나머지도 정리하자!


Reference

  1. https://en.wikipedia.org/wiki/Exif (Exif wiki)
  2. https://namu.wiki/w/EXIF (Exif 나무위키)
  3. https://en.wikipedia.org/wiki/Extensible_Metadata_Platform (XMP wiki)
  4. https://exiftool.org/TagNames/EXIF.html (Exif tags)
  5. https://exiftool.org/TagNames/XMP.html (XMP tags)
  6. https://wwwimages2.adobe.com/content/dam/acom/en/devnet/xmp/pdfs/XMP%20SDK%20Release%20cc-2016-08/XMPSpecificationPart1.pdf (XMP specification)
  7. https://exiftool.org/TagNames/IPTC.html (IPTC-IIM tags)
  8. https://s3.amazonaws.com/software.tagthatphoto.com/docs/mwg_guidance.pdf (Guidelines For Handling Image Metadata)
profile
실력은 성공하기 위해 쌓는 것이 아니다. 옳든 틀리든, 내가 내린 선택을 관철하기 위해 쌓는 것이다.

2개의 댓글

comment-user-thumbnail
2021년 10월 29일

감사합니다~

답글 달기
comment-user-thumbnail
2024년 2월 7일

필요로 하던 정보였습니다. 감사합니다.

답글 달기