울트라 HDR 이미지 형식 v1.1

소개

이 문서에서는 JPEG 이미지 파일에 대수적 범위 이득 맵 이미지를 인코딩하는 새 파일 형식의 동작을 정의합니다. 새 형식을 지원하지 않는 기존 판독기는 이미지 파일에서 기존의 낮은 동적 범위 이미지를 읽고 표시합니다. 이 형식을 지원하는 판독기는 기본 이미지를 이득 맵과 결합하고 호환되는 디스플레이에서 HDR 이미지를 렌더링합니다.

이 문서의 나머지 부분에서는 이 형식을 사용하는 데 필요한 프로세스의 방법을 설명합니다. 이 형식을 준수하는 이미지의 수명 주기는 대략 다음과 같습니다.

  1. 인코딩

    1. 이득 지도 생성
    2. 지도 압축 사용
    3. 획득 지도 컨테이너 생성
  2. 디코딩


연결된 메타데이터 및 오프셋 정보가 포함된 울트라 HDR 이미지 형식 파일 레이아웃의 예

그림 1. 파일 레이아웃 및 관련 메타데이터의 예

동기

이 파일 형식의 목표는 디스플레이 기법과 함께 사용하여 최적의 HDR 렌더링을 단일 파일로 생성하는 데 사용할 수 있는 추가 정보를 SDR 이미지 파일에 인코딩하는 것입니다.

이렇게 하려면 파일 형식이 다음과 같아야 합니다.

  • 이전 버전과 호환되도록 하여 순진한 보기 도구에서는 기존 SDR 이미지가 표시됩니다.
  • 공간을 너무 많이 차지하지 않습니다.

또한 디스플레이 기법은 다음을 충족해야 합니다.

  • 디코딩하기 위해 과도한 처리 과정이 필요하지 않습니다.
  • 디스플레이의 HDR 화이트 포인트와 SDR 화이트 포인트 간의 비율에 맞게 조정할 수 있음(기기마다 크게 또는 단일 기기에서 일시적으로 다를 수 있음)

마지막으로, 기술은 다음을 실행하지 않고도 위의 모든 작업을 실행할 수 있어야 합니다.

  • 하이라이트 클립
  • 그림자를 부수고
  • 로컬 대비 변경 또는 압축
  • 장면의 객체 간의 상대적인 색조 관계 변경

종속 항목

다음은 이 사양의 규범적 참조입니다.

정의

  • SDR 디스플레이

    • HDR 콘텐츠를 표시하도록 설계되지 않은 기존 디스플레이입니다. 이러한 디스플레이는 일반적으로 약 400cd/m2 이하의 명목 최대 밝기를 생성합니다.
  • HDR 디스플레이

    • HDR 콘텐츠용으로 설계된 디스플레이 이러한 디스플레이는 일반적으로 SDR 디스플레이보다 높은 명목상 최대 밝기(일반적으로 800cd/m2 이상)를 생성하며 일반적으로 SDR 디스플레이보다 대비도 더 우수합니다.
  • 기본 이미지

    • 보조 미디어 파일이 추가된 GContainer 파일의 이미지 첫 번째 인스턴스입니다. 기본 이미지에는 파일 컨테이너의 후속 보조 미디어 항목 파일의 순서와 속성을 정의하는 GContainer XMP 메타데이터가 포함되어 있습니다.
  • 보조 이미지

    • GContainer 파일의 기본 이미지에 추가되는 후속 미디어 항목 파일입니다.
  • 범위 압축

    • 사진에서 실제 장면은 SDR 디스플레이에서 표현할 수 있는 것보다 더 큰 동적 범위를 갖는 경우가 많습니다. 이미지의 다이내믹 레인지를 줄이려면 범위 압축(로컬 색조 매핑이라고도 함)과 같은 작업이 필요합니다. 이러한 감소는 부분 대비를 최대한 유지하면서 밝은톤 클리핑이나 그림자 분쇄를 피해야 합니다. 전체 대비에 더 기여하는 이미지의 큰 밝기 가장자리 크기를 줄이면서 세부정보인 작은 밝기 가장자리 크기는 유지하려고 합니다. 구현 방법은 다양하지만 이러한 작업은 오늘날 대부분의 최신 디지털 카메라에서 표준으로 제공됩니다.
  • SDR 화이트 포인트

    • 특정 시점의 디스플레이에 표시되는 SDR 콘텐츠의 최대 선형 휘도입니다.
  • HDR 화이트 포인트

    • 특정 시점의 디스플레이에 표시되는 HDR 콘텐츠의 최대 선형 휘도입니다. 이 값은 일반적으로 SDR 화이트 포인트보다 높습니다.
  • 증폭

    • HDR 화이트 포인트를 SDR 화이트 포인트로 나눈 값입니다.
  • 최대 콘텐츠 부스트(등식의 max_content_boost)

    • 이 값을 사용하면 콘텐츠 제작자가 HDR 디스플레이에 표시할 때 SDR 렌더링에 비해 더 밝을 수 있는 정도를 제한할 수 있습니다.
    • 이 값은 특정 이미지의 상수입니다. 예를 들어 값이 4이면 지정된 모든 픽셀의 경우 표시된 HDR 렌더링의 선형 휘도가 SDR 렌더링의 선형 휘도의 4배를 넘지 않아야 합니다. 실제로 이는 장면에서 더 밝은 부분이 최대 4배 더 밝게 표시될 수 있음을 의미합니다.
    • 실제로 이 값은 일반적으로 1.0보다 큽니다.
    • 항상 최소 콘텐츠 부스트보다 크거나 같습니다.
  • 최소 콘텐츠 부스트 (등식의 min_content_boost)

    • 이 값을 사용하면 콘텐츠 크리에이터가 HDR 디스플레이에 표시될 때 이미지가 SDR 렌더링에 비해 얼마나 더 어두워질 수 있는지 제한할 수 있습니다. 이 값은 특정 이미지의 상수입니다.
    • 예를 들어 값이 0.5라면 특정 픽셀에 대해 표시되는 HDR 표현의 선형 휘도는 SDR 변환의 선형 휘도 (최소한 0.5배)여야 합니다.
    • 실제로 이 값은 일반적으로 1.0과 같거나 약간 작습니다.
    • 항상 최대 콘텐츠 게재순위 상승보다 작거나 같습니다.
  • 최대 디스플레이 부스트 (등식에서 max_display_boost)

    • 특정 시점에서 디스플레이에서 지원하는 최대 부스트입니다. 이 값은 기기 설정 및 기타 요인(예: 주변광 조건, 화면에 있는 밝은 픽셀 수)에 따라 시간이 지남에 따라 달라질 수 있습니다.
    • 예를 들어 이 값이 4.0이면 디스플레이는 SDR 화이트 포인트보다 최대 4배 더 밝은 픽셀을 표시할 수 있습니다. 디스플레이는 항상 SDR 흰색만큼 밝게 HDR 흰색을 표시할 수 있으므로 이 값은 항상 1.0 이상입니다.
  • 디스플레이 부스트

    • 최대 콘텐츠 부스트와 최대 디스플레이 부스트 중 더 작은 값과 같습니다. 이 값은 항상 1.0 이상입니다.
    • 예를 들어 최대 콘텐츠 부스트가 4.0이고 최대 디스플레이 부스트가 3.0이면 디스플레이 부스트는 3.0입니다. 디스플레이 기능이 제한 요소이므로 픽셀이 SDR보다 최대 3배 더 밝게 표시됩니다.
    • 또 다른 예로 최대 콘텐츠 부스트가 4.0이고 최대 디스플레이 부스트가 5.0이면 디스플레이 부스트는 4.0입니다. 콘텐츠의 의도가 제한 요소이므로 픽셀이 SDR보다 최대 4배 더 밝게 표시됩니다.
  • 타겟 HDR 렌더링

    • 콘텐츠 크리에이터가 생각하는 이상적인 HDR 렌더링
  • 조정된 HDR 렌더링

    • 현재 디스플레이 부스트에 맞게 타겟 HDR 렌더링을 조정한 후 디스플레이에 표시되는 최종 HDR 렌더링입니다.
  • 이득 맵 (방정식에서 recovery(x, y))

    • 타겟 HDR 렌더링을 생성하기 위해 SDR 변환에서 각 픽셀의 밝기 정도를 나타내는 맵입니다. 이 지도는 단일 채널 또는 다중 채널일 수 있습니다. 다중 채널 맵은 빨간색, 녹색, 파란색과 같은 각 색상 채널의 개별 이득을 나타냅니다. 이 문서에서는 단일 채널 맵의 사례를 보여줍니다.
  • clamp(x, a, b)

    • 값 x를 [a, b] 범위로 제한합니다.
  • exp2(x)

    • 2의 거듭제곱. 2x
  • floor(x)

    • x 이하의 가장 가까운 정수를 반환합니다.
  • log2(x)

    • 밑이 2인 로그, 로그2(x)
  • pow(b, x)

    • 지수; bx.
  • XMP

    • 확장 가능한 메타데이터 플랫폼 메타데이터를 이미지 컨테이너로 인코딩하는 메서드를 정의하는 표준입니다. ISO 16684-1:2011(E) XMP 사양 1부에 정의되어 있습니다.
  • 다중 화면 형식

    • 멀티 픽처 형식은 단일 JPEG 파일에 여러 JPEG 인코딩 이미지를 저장하기 위해 카메라 및 이미징 제품 협회 (CIPA)에서 개발한 기법입니다.
    • 자세한 내용은 관련 종속 항목인 CIPA DC-x 007-2009 멀티 픽처 형식 백서를 참고하세요.
  • GContainer

    • GContainer는 하나의 이미지 컨테이너에 여러 이미지를 저장하는 메서드로, 여기서 하나의 이미지가 기본 이미지로 간주됩니다. 추가 이미지는 대체 버전 또는 보조 이미지로 간주됩니다. XMP 메타데이터는 추가 이미지의 존재와 의미를 전달하는 데 사용됩니다. 자세한 내용은 GContainer 세부정보 섹션을 참고하세요.

인코딩

이 섹션에서는 규정을 준수하는 JPEG 파일을 인코딩하는 방법을 설명합니다. JPEG 형식에 관한 자세한 내용은 종속 항목 섹션의 T.81(09/92) 연속 색조 정지 이미지의 디지털 압축 및 코딩을 참고하세요.

이득 지도 생성

카메라 이미징 파이프라인은 일반적으로 범위 압축 작업을 실행하여 더 높은 동적 범위 휘도 데이터를 기존 SDR 디스플레이의 더 낮은 범위로 압축합니다. 이득 맵은 더 높은 동적 범위의 원래 밝기 데이터를 복구하기에 충분한 데이터를 저장하는 메커니즘을 제공합니다.

이 섹션의 다음 계산에서는 부동 소수점 산술을 가정합니다.

다음 함수는 SDR 이미지를 설명합니다.

  • SDR'(x, y)는 3채널의 비선형 (일반적으로 감마 인코딩) 기본 이미지입니다.
  • SDR(x, y)는 기본 이미지 색상 공간의 선형 버전으로 변환하여 얻은 3채널 기본 이미지의 선형 버전입니다. 예를 들어 sRGB 전달 함수가 있는 색 공간에서 sRGB 원색을 보존하는 선형 색공간으로 변경합니다.

Ysdr(x, y) 함수는 0.0~1.0 범위에서 정의되며 표준 동적 범위 기본 이미지 선형 밝기입니다.

Ysdr(x, y) = primary_color_profile_to_luminance(SDR(x, y))

HDR 이미지에 대해서도 이와 유사한 정의가 존재합니다.

  • HDR'(x, y)는 3채널 비선형, 즉 PQ 또는 HLG로 인코딩된 이미지입니다.
  • HDR(x, y)는 3채널 선형 HDR 이미지입니다.

Yhdr(x, y)은 HDR 이미지의 특정 지점의 휘도입니다.

Yhdr(x, y) = primary_color_profile_to_luminance(HDR(x, y))

Yhdr(x, y)는 0.0에서 최대 콘텐츠 부스트 범위로 정의됩니다.

SDR 및 HDR 이미지의 해상도는 동일해야 합니다. SDR 이미지의 색상 프로필은 HDR 이미지의 색상 공간을 정의합니다.

예를 들어 SDR 기본 이미지에 Display-P3 색상 프로필이 있다면 HDR 이미지는 해당 프로필의 기본 색상을 기준으로 정의됩니다. 즉, HDR 이미지에 Display-P3 원색도 있습니다.

게인 맵은 원하는 HDR 이미지 휘도 Yhdr(x, y)과 표준 범위 휘도 이미지 Ysdr(x, y)를 포함하는 두 개의 선형 이미지에서 계산됩니다.

pixel_gain(x, y) 함수는 Yhdr(x, y) 함수와 Ysdr(x, y) 함수 사이의 비율로 정의됩니다.

pixel_gain(x, y) = (Yhdr(x, y) + offset_hdr) / (Ysdr(x, y) + offset_sdr)

Ysdr(x, y)offset_sdr가 모두 0인 pixel_gain(x, y) 함수 동작은 구현으로 정의됩니다.

예를 들어 구현은 pixel_gain(x, y)를 1.0으로 정의하여 Ysdr(x, y)offset_sdr가 모두 0인 경우를 처리할 수 있습니다. 또는 구현에서 0이 아닌 offset_sdr를 활용하여 이 시나리오를 방지할 수도 있습니다.

구현에서 offset_sdroffset_hdr 값을 선택할 수 있습니다.

게인 맵은 최대 콘텐츠 부스트 및 최소 콘텐츠 부스트를 기준으로 로그 공간에서 pixel_gain(x, y)를 인코딩하는 스칼라 함수입니다.

map_min_log2 = log2(min_content_boost)
map_max_log2 = log2(max_content_boost)

log_recovery(x, y) = (log2(pixel_gain(x, y)) - map_min_log2)
                   / (map_max_log2 - map_min_log2)
clamped_recovery(x, y) = clamp(log_recovery(x, y), 0.0, 1.0)
recovery(x, y) = pow(clamped_recovery(x, y), map_gamma)

pixel_gain(x, y)이 0인 경우의 recovery(x, y) 함수 동작은 log2(0)가 정의되지 않았으므로 구현에서 정의됩니다.

map_gamma는 0.0보다 커야 하는 부동 소수점 숫자이며 구현에 의해 선택됩니다.

최대 콘텐츠 부스트 및 최소 콘텐츠 부스트의 값은 구현에 의해 정의되며 콘텐츠 크리에이터가 임의로 결정할 수 있습니다. 최대 콘텐츠 부스트는 1.0 이상이어야 합니다. 최소 콘텐츠 부스트는 (0.0, 1.0] 범위여야 합니다.

recovery(x, y)의 값은 [0.0, 1.0] 범위로 제한됩니다.

이득 맵은 보조 이미지 JPEG에 저장되므로 8비트 부호 없는 정수 값(범위: [0, 255])을 사용하여 인코딩해야 합니다. 각 값은 recovery(x, y) 값을 나타내며 보조 이미지의 한 픽셀에 저장됩니다.

8비트 부호 없는 정수 저장소의 경우 인코딩된 값은 다음과 같이 정의됩니다.

encoded_recovery(x, y) = floor(recovery(x, y) * 255.0 + 0.5)

인코딩 함수의 계산은 부동 소수점으로 실행되며, 마지막에 표시된 대로 반올림하여 8비트 부호 없는 정수 결과로 변환됩니다.

이 인코딩의 결과는 0.0~1.0 범위의 recovery(x, y) 값을 나타내는 8비트 부호 없는 정수입니다. 인코딩된 이득 맵은 보조 이미지 항목에 JPEG로 저장되어야 합니다. 구현은 JPEG 인코딩 중에 사용할 압축량을 선택합니다.

이득 맵이 보조 이미지에 저장된 후 MPF 및 GContainer XMP 메타데이터와 함께 기본 이미지에 추가됩니다. 기본 이미지 GContainer 디렉터리에는 이득 맵 이미지의 항목이 포함되어야 합니다.

저장된 이득 맵의 해상도는 구현에 의해 정의되며 기본 이미지의 해상도와 다를 수 있습니다. 저장을 위해 이득 맵이 기본 이미지와 다른 해상도로 크기 조정되는 경우 샘플링 방법은 이중 선형 이상이어야 하며 구현에 의해 정의됩니다.

이득 맵의 방향은 기본 이미지의 방향과 일치해야 합니다. 있는 경우 저장된 이득 맵 이미지의 방향 메타데이터(예: EXIF)는 사용되지 않습니다.

이 속성이 있으면 게인 지도의 색상 프로필이 사용되지 않습니다.

지도 컨테이너 획득

색상 프로필

이미지의 색상 프로필은 기본 이미지의 ICC 프로필을 통해 표시되어야 합니다.

XMP 속성

기본 이미지에는 HDR 이득 맵 형식에 관한 추가 시맨틱 정보가 포함된 이미지를 2개 이상 정의하는 XMP 메타데이터가 포함되어 있습니다.

다음 하위 섹션에는 이 형식에 대한 세부정보가 포함되어 있습니다. GContainer의 일반적인 규정 준수와 관련된 추가 정보는 GContainer 세부정보 섹션에 지정되어 있습니다.

다음 표에 설명된 속성 값은 지정된 XMP 기본 값 유형의 XMP 간단한 값으로 저장됩니다.

상품 시맨틱 값

Item:Semantic 속성은 컨테이너 디렉터리의 각 미디어 항목의 애플리케이션별 의미를 정의합니다.

설명
기본 미디어 항목이 컨테이너에 표시될 준비가 된 기본 이미지임을 나타냅니다. 디렉터리에는 '기본' 항목이 하나 포함되어야 합니다.
GainMap 미디어 항목이 게인 맵임을 나타냅니다. 디렉터리에는 'GainMap' 항목이 최대 1개 포함될 수 있습니다.

HDR 이득 맵 메타데이터

이득 맵 메타데이터는 이득 맵을 해석하고 적용하여 기본 이미지의 HDR 표현을 생성하는 방법에 관한 정보를 인코딩합니다.

게인 맵 메타데이터 XMP 확장 프로그램의 XMP 네임스페이스 URI는 http://ns.adobe.com/hdr-gain-map/1.0/입니다. 기본 네임스페이스 접두사는 hdrgm입니다.

이 메타데이터는 이득 맵 이미지의 XMP 패킷에 저장되며 다음 속성이 이득 맵 이미지 XMP의 rdf:Description에 표시되어야 합니다.

이름 유형 설명
hdrgm:Version 텍스트 사용 중인 이득 맵 형식의 버전입니다. 이 버전은 '1.0'입니다. 필수사항:
hdrgm:BaseRenditionIsHDR 부울 기본 이미지의 다이나믹 레인지를 나타냅니다. 'False'는 기본 이미지가 SDR이고 이득 맵을 기본 이미지와 결합하여 HDR 렌더링을 생성할 수 있음을 나타냅니다. 'True'는 기본 이미지가 HDR이고 게인 맵이 HDR과 결합하여 SDR 렌더링을 생성할 수 있음을 나타냅니다. 'False'여야 합니다. 선택사항이며 기본값은 'False'입니다.
hdrgm:GainMapMin 실수 또는 정렬된 실수 배열 map_min_log2의 값을 저장합니다. 이는 최소 콘텐츠 부스트의 log2이며, 이는 지정된 픽셀에서 타겟 HDR 렌더링의 선형 휘도를 SDR 이미지의 휘도에 상대적으로 허용되는 최소 비율로 나눈 값입니다. 단일 Real 또는 실수의 정렬된 배열일 수 있습니다. 정렬된 실수 배열인 경우 모든 채널에 적용되는 항목 1개 또는 각각 빨간색, 녹색, 파란색 채널의 항목 3개가 포함될 수 있습니다. hdrgm:GainMapMax 이하여야 합니다. 선택사항, 기본값은 0.0입니다.
hdrgm:GainMapMax 실수 또는 정렬된 실수 배열 map_max_log2의 값을 저장합니다. 이는 최대 콘텐츠 부스트의 log2이며, 이는 지정된 픽셀에서 타겟 HDR 렌더링의 선형 휘도를 SDR 이미지의 휘도에 상대적으로 (나누어서) 허용되는 최대 비율입니다. 단일 Real 또는 실수의 정렬된 배열일 수 있습니다. 정렬된 실수 배열인 경우 모든 채널에 적용되는 항목 1개 또는 각각 빨간색, 녹색, 파란색 채널의 항목 3개가 포함될 수 있습니다. hdrgm:GainMapMin 이상이어야 합니다. 필수사항.
hdrgm:감마 실수 또는 정렬된 실수 배열 map_gamma의 값을 저장합니다. 저장된 맵 값에 적용할 감마입니다. 단일 Real 또는 실수의 순서가 지정된 배열일 수 있습니다. 정수의 정렬된 배열인 경우 모든 채널에 적용되는 항목 1개 또는 각각 빨간색, 녹색, 파란색 채널의 항목 3개가 포함될 수 있습니다. 0.0보다 커야 합니다. 선택사항, 기본값은 1.0입니다.
hdrgm:OffsetSDR 실수 또는 정렬된 실수 배열 offset_sdr의 값을 저장합니다. 게인 맵 생성 및 적용 중에 SDR 픽셀 값에 적용할 오프셋입니다. 단일 실수 또는 정렬된 실수 배열일 수 있습니다. 순서가 지정된 실수 배열에는 모든 채널에 적용되는 하나의 항목이나 빨간색, 녹색, 파란색 채널의 3개 항목이 포함될 수 있습니다. 0.0 이상이어야 합니다. 선택사항이며 기본값은 0.015625(1/64)입니다.
hdrgm:OffsetHDR 실수 또는 실수의 순서 배열 offset_hdr의 값을 저장합니다. 이 값은 이득 맵 생성 및 적용 중에 HDR 픽셀 값에 적용할 오프셋입니다. 단일 실수 또는 정렬된 실수 배열일 수 있습니다. 정수의 정렬된 배열인 경우 모든 채널에 적용되는 항목 1개 또는 각각 빨간색, 녹색, 파란색 채널의 항목 3개가 포함될 수 있습니다. 0.0 이상이어야 합니다. 선택사항이며 기본값은 0.015625(1/64)입니다.
hdrgm:HDRCapacityMin 실제 hdr_capacity_min 값을 저장합니다. 지도에 적용되는 최소 디스플레이 부스트 값의 log2입니다. 이 값은 디스플레이 부스트에 따라 게인 맵을 적용하는 정도에도 영향을 미칩니다. 0.0 이상이어야 합니다. 선택사항이며 기본값은 0.0입니다.
hdrgm:HDRCapacityMax 실제 hdr_capacity_max 값을 저장합니다. 지도가 완전히 적용되는 최대 디스플레이 부스트 값의 log2입니다. 이 값은 디스플레이 부스트에 따라 이득 맵을 적용하는 정도에도 영향을 미칩니다. hdrgm:HDRCapacityMin보다 커야 합니다. 필수

게인 맵 XMP 예시

유효한 게인 맵 XMP 패킷의 다음 예에는 소개 섹션에 설명된 예시 파일에서 가져온 메타데이터가 포함되어 있습니다.

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.5.0">
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <rdf:Description rdf:about=""
     xmlns:hdrgm="http://ns.adobe.com/hdr-gain-map/1.0/"
     hdrgm:Version="1.0"
     hdrgm:GainMapMin="-0.57609993"
     hdrgm:GainMapMax="4.7090998"
     hdrgm:Gamma="1"
     hdrgm:OffsetSDR="0.015625"
     hdrgm:OffsetHDR="0.015625"
     hdrgm:HDRCapacityMin="0"
     hdrgm:HDRCapacityMax="4.7090998"
     hdrgm:BaseRenditionIsHDR="False"/>
  </rdf:RDF>
</x:xmpmeta>

게인 맵의 MPF 저장소

이득 맵 이미지는 종속 항목 섹션에 참조된 CIPA DC-x 007-2009 멀티 픽처 형식에 정의된 대로 추가 이미지로 저장되어야 합니다.

디코딩

이 섹션에서는 규정을 준수하는 JPEG 파일에서 이득 맵을 디코딩하는 방법을 설명합니다.

형식의 신호

이 형식을 준수하는 JPEG 파일은 기본 이미지의 XMP 패킷에 hdrgm:Version="1.0"가 있는 것으로 식별할 수 있습니다. 여기서 hdrgm는 네임스페이스 URI http://ns.adobe.com/hdr-gain-map/1.0/입니다.

이득 지도 이미지 찾기

이미지 파싱 및 디코딩에 관한 자세한 내용은 다음 GContainer 세부정보 섹션을 참고하세요. XMP rdf:Directory 내의 'GainMap' 시맨틱 항목은 이득 맵 이미지의 위치를 신호하는 데 사용됩니다. 또는 MPF 인덱스 IFD와 스캔 이미지의 XMP를 사용하여 게인 맵의 위치를 파악합니다.

잘못된 메타데이터 처리

필수 입력란이 없거나 잘못된 값이 있는 필드가 있는 경우 메타데이터가 잘못된 것으로 간주됩니다. 지정된 유형으로 파싱할 수 없거나 예상 범위를 벗어났기 때문에 값이 유효하지 않을 수 있습니다.

잘못된 메타데이터가 발생하면 이득 맵을 무시하고 SDR 이미지를 표시해야 합니다.

디스플레이

HDR 게인 맵 형식으로 인코딩된 파일은 기존 SDR 디스플레이 또는 더 높은 밝기 출력을 지원하는 HDR 디스플레이에서 렌더링될 수 있습니다.

이득 맵을 사용하여 조정된 HDR 렌더링을 만듭니다. 

이 섹션의 다음 계산은 부동 소수점 산술을 가정합니다.

encoded_recovery(x, y)는 이득 맵 이미지의 단일 채널 8비트 부호 없는 정수 값입니다.

게인 맵의 해상도가 기본 이미지와 다른 경우 encoded_recovery(x, y)는 각각 기본 이미지 너비와 높이의 범위에 걸쳐 x와 y에 관한 게인 맵 이미지의 필터링된 샘플링에 의해 결정됩니다. 필터링 메서드는 이중선형 이상이어야 하며 구현에 의해 정의됩니다.

map_gammahdrgm:Gamma 메타데이터 필드에 따라 결정됩니다.

log_recovery(x, y)는 로그 공간의 정규화된 부동 소수점 픽셀 게인입니다.

recovery(x, y) = encoded_recovery(x, y) / 255.0
log_recovery(x, y) = pow(recovery(x, y), 1.0 / map_gamma)

최대 디스플레이 부스트는 현재 HDR 화이트 포인트와 현재 SDR 화이트 포인트의 비율로 정의된 스칼라 부동 소수점 값입니다. 이 값은 디스플레이 시스템에서 제공하며 시간이 지남에 따라 변경될 수 있습니다.

hdr_capacity_maxhdrgm:HDRCapacityMax 메타데이터 필드에 따라 결정됩니다. hdr_capacity_minhdrgm:HDRCapacityMin 메타데이터 필드에 따라 결정됩니다.

hdrgm:BaseRenditionIsHDR이 'False'인 경우 weight_factor는 다음과 같이 결정됩니다.

unclamped_weight_factor = (log2(max_display_boost) - hdr_capacity_min)
                        / (hdr_capacity_max - hdr_capacity_min)
weight_factor = clamp(unclamped_weight_factor, 0.0, 1.0)

hdrgm:BaseRenditionIsHDR가 'True'인 경우 두 번째 방정식은 다음과 같습니다.

weight_factor = 1.0 - clamp(unclamped_weight_factor, 0.0, 1.0)

gain_map_maxhdrgm:GainMapMax 메타데이터 필드에 따라 결정됩니다. gain_map_minhdrgm:GainMapMin 메타데이터 필드에 따라 결정됩니다. offset_sdrhdrgm:OffsetSDR 메타데이터 필드에 따라 결정됩니다. offset_hdrhdrgm:OffsetHDR 메타데이터 필드에 따라 결정됩니다.

선형으로 조정된 HDR 렌더링은 다음과 같이 계산할 수 있습니다.

log_boost(x, y) = gain_map_min * (1.0f - log_recovery(x, y))
                + gain_map_max * log_recovery(x, y)
HDR(x, y) = (SDR(x, y) + offset_sdr) * exp2(log_boost(x, y) * weight_factor)
          - offset_hdr

필요한 경우 구현은 HDR(x, y)에 변환을 적용하여 디스플레이에서 예상하는 공간에 데이터를 배치할 수 있습니다. 이러한 변환은 색도적으로 정확해야 합니다.

GContainer 세부정보

이 섹션에서는 이 형식이 GContainer XML 메타데이터를 준수하도록 하는 추가 요구사항을 지정합니다. 메타데이터는 ISO 166841:2011(E) XMP 사양 1부에 따라 직렬화되고 Adobe XMP 사양 3부 파일 저장소에 설명된 대로 기본 이미지 파일 내에 삽입됩니다. 기본 이미지 파일에는 RDF/XML 형식의 다음 항목이 포함됩니다.

XMP 패킷 요구사항

XMP 패킷은 네임스페이스 URI http://ns.adobe.com/hdr-gain-map/1.0/를 통한 게인 맵 메타데이터 XMP 확장 프로그램을 포함해야 합니다. 기본 네임스페이스 프리픽스는 hdrgm입니다.

XMP 패킷은 hdrgm:Version="1.0"를 정의해야 합니다.

컨테이너 요소

GContainer XMP 확장 프로그램의 XMP 네임스페이스는 http://ns.google.com/photos/1.0/container/입니다. 기본 네임스페이스 접두사는 Container입니다.

기본 이미지는 XMP 메타데이터의 Container:Directory 요소를 포함하며, 이 요소는 파일 컨테이너에 있는 후속 미디어 파일의 순서와 속성을 정의합니다. 컨테이너의 각 파일은 Container:Directory에 상응하는 미디어 항목을 갖습니다. 미디어 항목은 파일 컨테이너의 위치와 각 연결된 파일의 기본 속성을 설명합니다.

컨테이너 요소는 기본 이미지의 XMP 메타데이터로 인코딩되며 컨테이너의 미디어 항목 디렉터리를 정의합니다. 미디어 항목은 디렉터리의 미디어 항목 요소와 동일한 순서로 컨테이너 파일에 있어야 하며 단단히 패킹되어야 합니다.

디렉터리에는 '기본' 이미지 항목이 하나만 포함될 수 있으며 디렉터리의 첫 번째 항목이어야 합니다.

요소 이름 유형 설명
컨테이너:디렉터리 구조체의 정렬된 배열 각각 컨테이너의 레이아웃과 콘텐츠를 정의하는 Container:Item 구조체를 포함하는 순서가 지정된 구조체 배열입니다.

상품 요소

항목 요소는 애플리케이션에서 각 미디어 항목을 사용하는 방식을 설명합니다.

GContainer 항목 XMP 확장 프로그램의 XMP 네임스페이스 URI는 http://ns.google.com/photos/1.0/container/item/입니다. 기본 네임스페이스 접두사는 Item입니다.

첫 번째 미디어 항목은 기본 이미지여야 합니다.Item:Semantic = "Primary"항목 MIME 유형 값에 나열된 Item:Mime를 지정해야 합니다.

기본 이미지 항목의 길이는 파일 컨테이너의 시작 부분부터 MIME 유형을 기반으로 기본 이미지를 파싱하여 결정됩니다.

미디어 항목에는 미디어 항목의 끝과 다음 미디어 항목의 시작 사이에 추가 패딩을 지정하는 Item:Padding 속성이 포함될 수 있습니다. Container:Directory의 마지막 미디어 항목에 있는 경우 Item:Padding은 항목 끝과 파일 끝 사이의 패딩을 나타냅니다.

각 미디어 항목은 Item:Mime 유형 및 Item:Semantic 속성을 포함해야 합니다. 보조 이미지 미디어 항목에는 Item:Length 속성이 포함되어야 합니다.

순차 미디어 항목은 파일 컨테이너 내에서 리소스 데이터를 공유할 수 있습니다. 첫 번째 미디어 항목은 파일 컨테이너에서 리소스의 위치를 결정하고 후속 공유 미디어 항목은 Item:Length를 0으로 설정합니다. 리소스 데이터 자체가 컨테이너인 경우 Item:URI는 리소스 내에서 미디어 항목 데이터의 위치를 확인하는 데 사용될 수 있습니다.

컨테이너 내 미디어 항목 리소스의 위치는 기본 이미지 인코딩의 길이, 앞의 보조 미디어 항목 리소스의 Item:Length 값, 앞의 모든 Item:Padding 값을 합산하여 결정됩니다. 값을 지정하지 않은 미디어 항목 리소스에서는 Item:Padding이 0으로 간주됩니다.

속성 이름 유형 설명
항목:Mime 텍스트 컨테이너에 있는 미디어 항목의 MIME 유형을 나타내는 간단한 문자열입니다. 정의는 항목 MIME 유형 값 섹션을 참고하세요. 필수사항:
항목:시맨틱 텍스트 미디어 항목의 애플리케이션별 의미를 나타내는 간단한 문자열입니다. 정의는 상품 시맨틱 값 섹션을 참고하세요. 필수사항:
항목:길이 정수 항목의 길이(바이트 단위의 양의 정수)를 포함하는 간단한 문자열입니다. 길이가 0이면 미디어 항목 리소스가 이전 미디어 항목과 공유됨을 나타냅니다. 보조 미디어 항목에 필요합니다. 기본 이미지 미디어 항목의 경우 선택사항입니다.
항목:라벨 텍스트 동일한 Item:Semantic로 여러 항목 요소를 구별하는 데 사용되는 구현 정의 문자열입니다. 선택사항입니다.
항목:패딩 정수 미디어 항목의 끝과 다음 미디어 항목의 시작 부분 또는 Container:Directory의 마지막 미디어 항목에 사용될 때 파일의 끝 부분 사이의 추가 패딩(바이트)을 양의 정수 길이 포함하는 문자열입니다. 값이 없는 경우 0으로 간주됩니다. 선택사항.
항목:URI 텍스트 ISO/IEC 14496-12 섹션 8.11.9를 준수하는 URI 문자열로, 미디어 항목 리소스 내 미디어 데이터의 상대 URI를 포함합니다. 기본값은 기본 이미지 리소스입니다. ISO 기본 미디어 파일 형식 ISO/IEC 14496-12 MIME 유형의 경우 선택사항입니다. 달리 사용할 수 없습니다.

항목 MIME 유형 값

Item:Mime 속성은 각 미디어 항목 데이터의 MIME 유형을 정의합니다.

설명
image/jpeg JPEG 이미지

GContainer XMP 예시

다음 유효한 GContainer XMP 패킷 예시에는 소개 섹션에 나온 예시 파일에서 가져온 메타데이터가 있습니다.

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.1.2">
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <rdf:Description
     xmlns:Container="http://ns.google.com/photos/1.0/container/"
     xmlns:Item="http://ns.google.com/photos/1.0/container/item/"
     xmlns:hdrgm="http://ns.adobe.com/hdr-gain-map/1.0/"
     hdrgm:Version="1.0">
      <Container:Directory>
        <rdf:Seq>
          <rdf:li rdf:parseType="Resource">
            <Container:Item
             Item:Semantic="Primary"
             Item:Mime="image/jpeg"/>
          </rdf:li>
          <rdf:li rdf:parseType="Resource">
            <Container:Item
             Item:Semantic="GainMap"
             Item:Mime="image/jpeg"
             Item:Length="66171"/>
          </rdf:li>
        </rdf:Seq>
      </Container:Directory>
    </rdf:Description>
  </rdf:RDF>
</x:xmpmeta>

ISO 21496-1 호환성

ISO 21496-1은 이미지 파일에서 이득 맵 메타데이터를 인코딩하기 위한 대체 캡슐화 메커니즘을 제공합니다. 파일의 단일 게인맵 이미지를 사용하여 울트라 HDR 메타데이터와 ISO 21496-1 메타데이터를 모두 하나의 JPEG 파일로 인코딩할 수 있습니다.

ISO 21496-1 메타데이터가 두 JPEG 이미지 모두에서 APP1 XMP 세그먼트 바로 뒤에 표시됨

그림 2. 울트라 HDR 및 ISO 21496-1 메타데이터가 포함된 파일 레이아웃의 예

최대의 교차 플랫폼 호환성을 위해 이득 맵을 사용하여 JPEG 파일의 자체 인코딩 또는 디코딩을 구현하는 Android 구현 및 앱은 Ultra HDR v1 및 ISO 21496-1 메타데이터 모두의 인코딩 및 디코딩을 지원해야 합니다. 인코딩 작업 중에 구현 또는 앱은 두 메타데이터 형식을 모두 인코딩해야 합니다. 디코딩 작업 중에 두 유형의 메타데이터가 모두 있는 경우 구현 또는 앱은 ISO 21496-1 메타데이터를 사용하는 것이 좋습니다.

로그 변경

이 섹션에는 이 사양의 버전 간의 변경사항에 관한 정보가 포함되어 있습니다.

v1.1

이 버전의 울트라 HDR 사양의 모든 변경사항은 정보 제공용이며 ISO 21496-1 호환성에 관한 내용입니다. 실제 파일 형식은 변경되지 않습니다.

버전 1.0

초기 울트라 HDR 사양 게시물