KR20240065212A - 낮은 동적 범위 호환성을 갖는 높은 동적 범위 이미지 포맷 - Google Patents

낮은 동적 범위 호환성을 갖는 높은 동적 범위 이미지 포맷 Download PDF

Info

Publication number
KR20240065212A
KR20240065212A KR1020237042406A KR20237042406A KR20240065212A KR 20240065212 A KR20240065212 A KR 20240065212A KR 1020237042406 A KR1020237042406 A KR 1020237042406A KR 20237042406 A KR20237042406 A KR 20237042406A KR 20240065212 A KR20240065212 A KR 20240065212A
Authority
KR
South Korea
Prior art keywords
image
dynamic range
luminance
display
recovery
Prior art date
Application number
KR1020237042406A
Other languages
English (en)
Inventor
니콜라스 디킨
파레스 알하센
아브라함 제이. 스티븐스
라이언 게이스
키란 쿠마르 머티
에밀리안 피브
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Priority claimed from PCT/US2023/023998 external-priority patent/WO2024096931A1/en
Publication of KR20240065212A publication Critical patent/KR20240065212A/ko

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/005Adapting incoming signals to the display format of the display terminal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/90Dynamic range modification of images or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/10Intensity circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20208High dynamic range [HDR] image processing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/02Graphics controller able to handle multiple formats, e.g. input or output formats

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Image Processing (AREA)
  • Picture Signal Circuits (AREA)

Abstract

구현들은 낮은 동적 범위 호환성을 갖춘 HDR 이미지 포맷을 제공하는 것에 관한 것이다. 일부 구현에서, 컴퓨터 구현 방법은 장면을 묘사하고 제1 동적 범위를 갖는 제1 이미지를 획득하는 단계와, 장면을 묘사하고 제1 동적 범위와 다른 제2 동적 범위를 갖는 제2 이미지를 획득하는 단계와, 그리고 제1 및 제2 이미지에 기초하여 복구 맵을 생성하는 단계를 포함한다. 복구 맵은 제1 이미지와 제2 이미지의 대응하는 부분 간의 휘도 차이를 인코딩하고, 차이는 제2 이미지와 제1 이미지의 최대 휘도의 비율을 포함하는 범위 스케일링 계수에 의해 스케일링된다. 제1 이미지 및 복구 맵은 제1 이미지에 복구 맵을 적용하는 것에 기초하고 제1 동적 범위와 다른 동적 범위를 갖는 도출된 이미지를 디스플레이하도록 판독 가능한 이미지 컨테이너에 제공된다.

Description

낮은 동적 범위 호환성을 갖는 높은 동적 범위 이미지 포맷
본 출원은 "낮은 동적 범위 호환성을 갖는 높은 동적 범위 이미지 포맷"이라는 제목으로 2022년 10월 31일에 출원된 미국 가출원 번호 63/421,155와 "낮은 동적 범위 호환성을 갖는 높은 동적 범위 이미지 및 비디오 형식"이라는 제목으로 2023년 1월 16일에 출원된 미국 가출원 번호 63/439,271에 대한 우선권을 주장하며, 두 가지 모두의 전체 내용은 그 전체가 본 명세서에 참조로 포함된다.
스마트폰이나 기타 디지털 카메라 디바이스와 같은 디바이스의 사용자는 자신의 이미지 라이브러리에 많은 수의 사진을 캡처하여 저장한다. 높은 동적 범위(High Dynamic Range: HDR) 이미지는 일부 카메라로 캡처될 수 있으며, 이 카메라는 다른(예를 들어, 구형) 카메라로 캡처한 낮은 동적 범위(LDR) 이미지보다 더 큰 동적 범위 및 실제와 같은 화질을 제공한다. HDR 이미지는 HDR 이미지의 전체 동적 범위를 디스플레이할 수 있는 디스플레이 디바이스에서 가장 잘 보이다.
본 명세서에 제공된 배경 설명은 개시의 맥락을 일반적으로 제시하기 위한 것이다. 본 배경 섹션에 설명된 범위 내에서 현재 명명된 발명자의 작업과 출원 당시 선행 기술로 인정되지 않을 수 있는 설명의 양태는 본 개시에 반하는 선행 기술로서 명시적이거나 묵시적으로 인정되지 않는다.
본 명세서에 설명된 구현은 낮은 동적 범위 호환성을 갖는 HDR 이미지 포맷을 제공하기 위한 방법, 디바이스 및 컴퓨터 판독 가능 매체에 관한 것이다. 일부 구현에서, 컴퓨터로 구현되는 방법은 특정 장면을 묘사하고 제1 동적 범위를 갖는 제1 이미지를 획득하는 단계와; 특정 장면을 묘사하고 제1 동적 범위와 다른 제2 동적 범위를 갖는 제2 이미지를 획득하는 단계와, 제1 이미지와 제2 이미지에 기초하여 복구 맵을 생성하는 단계를 포함한다. 복구 맵은 제1 이미지의 일부와 제2 이미지의 대응하는 일부 사이의 휘도 차이를 인코딩하고, 차이는 제1 이미지의 최대 휘도에 대한 제2 이미지의 최대 휘도의 비율을 포함하는 범위 스케일링 계수에 의해 스케일링된다. 제1 이미지 및 복구 맵은 제1 이미지에 복구 맵을 적용하는 것에 기초하여 도출된 이미지를 디스플레이하도록 판독 가능한 이미지 컨테이너에 제공되며, 도출된 이미지는 제1 동적 범위와 다른 동적 범위를 갖는다.
방법의 다양한 구현이 설명된다. 일부 구현에서, 제2 동적 범위는 제1 동적 범위보다 크고, 도출된 이미지의 동적 범위는 제1 동적 범위보다 크다. 일부 구현에서, 이미지 컨테이너는 제1 동적 범위를 디스플레이할 수 있는 제1 디스플레이 디바이스에 의해 제1 이미지를 디스플레이하고, 제1 동적 범위보다 더 큰 동적 범위를 디스플레이할 수 있는 제2 디스플레이 디바이스에 의해 도출된 이미지를 디스플레이하도록 판독 가능하다. 일부 구현에서, 제1 이미지를 획득하는 단계는 제2 이미지에 대해 범위 압축을 수행하는 단계를 포함한다. 일부 구현에서, 복구 맵을 생성하는 단계는 제1 이미지의 개별 픽셀의 휘도에 위도 이득을 적용하면 제2 이미지에 대응하는 픽셀이 생성되도록 휘도 이득을 인코딩하는 단계를 포함한다. 일부 구현에서, 복구 맵을 생성하는 단계는 로그 공간에서 휘도 이득을 인코딩하는 단계를 포함하고, 복구 맵 값은 휘도의 로그 차이를 범위 스케일링 계수의 로그로 나눈 값에 비례한다. 일부 구현에서, 복구 맵을 생성하는 단계는 recovery(x, y) = log(pixel_gain(x, y))/log(range scaling factor)에 기초하고, recovery(x,y)는 제2 이미지의 픽셀 위치(x, y)에 대한 복구 맵이고, pixel_gain(x,y)는 제1 이미지에 대한 제2 이미지의 위치(x, y)에서의 휘도 비율이다.
일부 구현에서, 복구 맵을 생성하는 단계는 복구 맵을 양방향 그리드로 인코딩하는 단계를 포함하고, 이는 일부 예에서 그리드 셀의 3차원 데이터 구조를 결정하는 것을 포함하며, 각 그리드 셀은 제1 이미지의 다수의 픽셀에 매핑되는 벡터 요소이다. 일부 구현에서, 방법은 복구 맵을 이미지 컨테이너에 제공되는 복구 이미지로 인코딩하는 단계를 더 포함한다. 일부 구현에서, 범위 스케일링 계수는 메타데이터로서 복구 이미지로 인코딩된다. 일부 구현에서, 복구 이미지는 제1 이미지의 종횡비와 동일한 종횡비를 갖는다.
일부 구현에서, 방법은 이미지 컨테이너를 획득하는 단계와; 디스플레이 디바이스에 의해 제2 이미지를 디스플레이하기로 결정하는 단계와; 도출된 이미지를 획득하기 위해 디스플레이 디바이스의 특정 휘도 출력 및 복구 맵에 기초하여 이미지 컨테이너 내의 제1 이미지의 복수의 픽셀 휘도를 스케일링하는 단계와; 그리고 스케일링 후, 도출된 이미지가 디스플레이 디바이스에 의해 제1 이미지와 다른 동적 범위를 갖는 출력 이미지로서 디스플레이되게 하는 단계를 더 포함한다. 일부 구현에서, 방법은 디스플레이 디바이스의 최대 휘도 디스플레이 능력을 결정하는 단계를 포함하고, 복수의 픽셀 휘도를 스케일링하는 단계는 제1 이미지의 하이라이트의 휘도를 최대 휘도 디스플레이 능력 이하의 휘도 레벨까지 증가시키는 단계를 포함한다. 일부 구현에서, 도출된 이미지의 휘도는 제2 이미지의 최대 휘도까지 증가된다. 일부 구현에서, 복수의 픽셀 휘도를 스케일링하는 단계는 제1 이미지의 그림자의 범위를 디스플레이 디바이스가 디스플레이할 수 있는 레벨까지 증가시키는 단계를 포함한다.
일부 구현에서, 제2 동적 범위는 제1 동적 범위보다 낮고, 도출된 이미지의 동적 범위는 제1 동적 범위보다 낮다. 일부 구현에서, 제2 이미지를 획득하는 단계는 제1 이미지에 대해 범위 압축을 수행하는 단계를 포함한다. 일부 구현에서, 이미지 컨테이너는 제1 동적 범위를 디스플레이할 수 있는 제1 디스플레이 디바이스에 의해 제1 이미지를 디스플레이하고, 제1 동적 범위보다 낮은 동적 범위만 디스플레이할 수 있는 제2 디스플레이 디바이스에 의해 도출된 이미지를 디스플레이하도록 판독 가능하다.
일부 구현에서, 컴퓨터 구현 방법은 제1 동적 범위를 갖는 제1 이미지와 복구 맵을 포함하는 이미지 컨테이너를 획득하는 단계를 포함한다. 복구 맵은 제1 이미지의 최대 휘도에 대한 제2 이미지의 최대 휘도의 비율을 포함하는 범위 스케일링 계수에 의해 스케일링된 제1 이미지의 픽셀의 휘도 이득을 인코딩한다. 제2 이미지는 묘사된 주제의 제1 이미지에 대응하고 제1 동적 범위와 다른 제2 동적 범위를 갖는다. 방법은 제1 이미지 또는 제1 동적 범위보다 더 큰 동적 범위를 갖는 도출된 이미지 중 하나를 디스플레이할지 여부를 결정하는 단계를 포함한다. 제1 이미지를 디스플레이하기로 결정한 것에 응답하여, 제1 이미지가 디스플레이 디바이스에 의해 디스플레이되게 된다. 도출된 이미지를 디스플레이하기로 결정한 것에 응답하여, 복구 맵의 휘도 이득이 제1 이미지의 픽셀 휘도에 적용되어 도출된 이미지의 각각의 대응 픽셀 값을 결정하고, 도출된 이미지는 디스플레이 디바이스에 의해 디스플레이되게 된다.
방법의 다양한 구현이 설명된다. 일부 구현에서, 제2 동적 범위는 제1 동적 범위보다 크고, 도출된 이미지의 동적 범위는 제1 동적 범위보다 크다. 일부 구현에서, 방법은 디스플레이 디바이스의 최대 휘도 디스플레이 능력을 결정하는 단계를 포함한다. 일부 구현에서, 제1 이미지를 디스플레이하기로 결정하는 것은 디스플레이 디바이스가 제1 동적 범위 이하인 디스플레이 동적 범위만을 디스플레이할 수 있다는 결정에 응답하여 이루어진다. 일부 구현에서, 도출된 이미지를 디스플레이하기로 결정하는 것은 디스플레이 디바이스가 제1 동적 범위보다 더 큰 디스플레이 동적 범위를 디스플레이할 수 있다는 결정에 응답하여 이루어진다. 일부 구현에서, 디스플레이 디바이스는 제1 동적 범위보다 더 큰 디스플레이 동적 범위를 디스플레이할 수 있고, 복구 맵의 휘도 이득을 적용하는 단계는 도출된 이미지의 픽셀 값의 휘도를 디스플레이 디바이스의 디스플레이 동적 범위에 적응시키는 단계를 포함한다.
일부 구현에서, 디스플레이 디바이스는 제1 동적 범위보다 더 큰 디스플레이 동적 범위를 표시할 수 있고, 복구 맵의 이득을 적용하는 단계는 도출된 이미지의 픽셀 값의 휘도를 디스플레이 디바이스의 디스플레이 동적 범위에 적응시키는 단계를 포함한다. 일부 구현에서, 도출된 이미지의 동적 범위는 디스플레이 디바이스의 최대 휘도와 제2 이미지의 동적 범위의 최대 휘도 중 더 작은 최대값을 갖는다.
일부 구현에서, 복구 맵의 이득을 적용하는 단계는 디스플레이 디바이스의 특정 휘도 출력 및 복구 맵에 기초하여 제1 이미지의 휘도를 스케일링하는 단계를 포함한다. 일부 구현에서, 제1 이미지의 휘도 스케일링은 derived_image(x, y) = first_image(x, y) + log(display_factor) * recovery(x,y)에 의해 수행된다. 여기서 derived_image(x, y)는 도출된 이미지의 로그 공간 버전이고, first_image(x,y)는 이미지 컨테이너로부터 복구된 제1 이미지의 로그 공간 버전이고, display_factor는 디스플레이 디바이스의 범위 스케일링 계수와 최대 디스플레이 휘도 중 최소값이고, recovery(x,y)는 제1 이미지의 픽셀 위치(x,y)에 대한 복구 맵이며, 그리고 범위 스케일링 계수는 제1 이미지의 최대 휘도에 대한 제2 이미지의 최대 휘도의 비율이다.
일부 구현에서, 방법은 도출된 이미지를 디스플레이하기로 결정한 것에 응답하여, 이미지 컨테이너로부터 범위 스케일링 계수를 디코딩하는 단계를 더 포함한다. 일부 구현에서, 방법은 이미지 컨테이너에 포함된 복구 이미지로부터 복구 맵을 디코딩하는 단계를 더 포함한다. 일부 구현에서, 방법은 이미지 컨테이너에 저장된 양방향 그리드로부터 복구 맵을 추출하는 단계를 더 포함한다.
일부 구현에서, 제1 이미지 또는 도출된 이미지 중 하나를 디스플레이할지 여부를 결정하는 단계는 서버 디바이스에 의해 수행되고, 그 결정은 클라이언트 디바이스에 포함되거나 결합된 디스플레이 디바이스의 디스플레이 동적 범위에 기초하며, 제1 이미지가 디스플레이 디바이스에 의해 디스플레이되게 하는 단계는 클라이언트 디바이스가 제1 이미지를 디스플레이하도록 서버 디바이스로부터 클라이언트 디바이스로 제1 이미지를 전송하는 단계를 포함하고, 그리고 도출된 이미지가 디스플레이 디바이스에 의해 디스플레이되게 하는 단계는 클라이언트 디바이스가 도출된 이미지를 디스플레이하도록 서버 디바이스로부터 클라이언트 디바이스로 도출된 이미지를 전송하는 단계를 포함한다.
일부 구현에서, 도출된 이미지가 디스플레이 디바이스에 의해 디스플레이되게 하는 단계는 도출된 이미지가 디스플레이되게 하는 디바이스의 시스템 설정에 기초하여 디스플레이된 도출된 이미지의 최대 휘도 레벨을 감소시키는 단계를 포함하고, 시스템 설정은 사용자에 의해 선택되었다. 일부 구현에서, 도출된 이미지가 디스플레이 디바이스에 의해 디스플레이되게 하는 단계는 휘도 이득을 적용함으로써 상기 도출된 이미지의 픽셀값에 대해 결정된 제2 최대 휘도 레벨보다 낮은 제1 최대 휘도 레벨로 상기 도출된 이미지가 디스플레되게 하는 단계와, 특정 기간 동안 상기 도출된 이미지의 제1 최대 휘도 레벨을 제2 최대 휘도 레벨까지 점차적으로 증가시키는 단계를 포함한다.
일부 구현에서, 시스템은 프로세서; 및 프로세서에 결합되고 프로세서에 의해 실행될 때 프로세서로 하여금 동작들을 수행하게 하는 명령들을 저장한 메모리를 포함하고, 동작들은 제1 동적 범위를 갖는 제1 이미지와 제1 이미지의 픽셀의 휘도 이득을 인코딩하는 복구 맵을 포함하는 이미지 컨테이너를 획득하는 동작을 포함한다. 동작들은 도출된 이미지를 디스플레이 디바이스에 디스플레이하기로 결정하고, 도출된 이미지는 묘사된 주제의 제1 이미지에 대응하고 제1 동적 범위와 다른 동적 범위를 갖는다. 도출된 이미지를 디스플레이 디바이스에 디스플레이하기로 결정한 것에 응답하여, 복구 맵의 이득은 제1 이미지의 픽셀 휘도에 적용되어 도출된 이미지의 각각의 대응 픽셀 값을 결정하고, 제1 이미지의 휘도는 디스플레이 디바이스의 특정 휘도 출력 및 복구 맵에 기초하여 스케일링된다. 도출된 이미지는 디스플레이 디바이스에 디스플레이되게 된다.
시스템의 다양한 구현이 설명된다. 일부 구현에서, 도출된 이미지의 동적 범위는 제1 동적 범위보다 크고, 동작들은 디스플레이 디바이스의 최대 휘도 디스플레이 능력을 결정하는 동작을 더 포함하고, 도출된 이미지를 디스플레이하기로 결정하는 동작은 디스플레이 디바이스가 제1 동적 범위보다 더 큰 디스플레이 동적 범위를 디스플레이할 수 있다는 결정에 응답하여 이루어진다. 일부 구현에서, 도출된 이미지의 동적 범위는 디스플레이 디바이스의 최대 휘도와, 복구 맵 생성에 사용되는 원본 이미지의 동적 범위의 최대 휘도 중 더 작은 최대값을 갖는다. 일부 구현에서, 복구 맵은 제1 이미지의 최대 휘도에 대한 제2 이미지의 최대 휘도의 비율을 포함하는 범위 스케일링 계수에 의해 스케일링되는 제1 이미지의 픽셀의 휘도 이득을 인코딩하고, 제2 이미지는 묘사된 주제의 제1 이미지에 대응하고 제1 동적 범위와 다른 제2 동적 범위를 갖는다. 일부 구현에서, 프로세서는 이미지 컨테이너에 저장된 양방향 그리드로부터 복구 맵을 추출하는 것을 포함하는 추가 동작을 수행한다. 일부 구현에서, 시스템은 위에 설명된 방법의 동작 및/또는 특징 중 하나 이상을 포함한다.
일부 구현은 프로세서 및 프로세서에 결합된 메모리를 포함하는 컴퓨팅 디바이스를 포함할 수 있다. 메모리에는 프로세서에 의해 실행될 때 프로세서로 하여금 위에서 설명한 방법의 동작들 및/또는 특징들 중 하나 이상을 포함하는 동작들을 수행하게 하는 명령들이 저장되어 있다.
일부 구현은 프로세서에 의해 실행될 때 프로세서로 하여금 위에서 설명한 방법, 시스템 및/또는 컴퓨팅 디바이스의 동작들 및/또는 특징들과 유사할 수 있는 동작들을 수행하게 하는 명령들이 저장된 비-일시적 컴퓨터 판독 가능 매체를 포함한다.
도 1은 본 명세서에 설명된 하나 이상의 구현에 사용될 수 있는 예시적인 네트워크 환경의 블록도이다.
도 2는 일부 구현에 따른 이전 버전과 호환되는 높은 동적 범위 이미지 포맷으로 이미지를 인코딩하는 예시적인 방법을 나타내는 흐름도이다.
도 3은 일부 구현에 따른 HDR 이미지 및 LDR 이미지에 기초하여 복구 맵을 생성하는 예시적인 방법을 나타내는 흐름도이다.
도 4는 일부 구현에 따른 복구 맵을 양방향 그리드로 인코딩하는 예시적인 방법을 나타내는 흐름도이다.
도 5는 일부 구현에 따른 이전 버전과 호환되는 높은 동적 범위 이미지 포맷의 이미지를 디코딩하고 HDR 이미지를 디스플레이하는 예시적인 방법을 나타내는 흐름도이다.
도 6-9는 일부 구현에 따른 높은 동적 범위(도 6)와 낮은 동적 범위(도 7-9)를 나타내는 예시적인 이미지를 나타내는 도면이다.
도 10은 본 명세서에 설명된 하나 이상의 특징을 구현하는데 사용될 수 있는 예시적인 컴퓨팅 디바이스의 블록도이다.
본 개시는 이전 버전과 호환되는 HDR 이미지 포맷에 관한 것이다. 이미지 포맷은 LDR(낮은 동적 범위) 및 HDR(높은 동적 범위) 이미지 모두가 획득되고 디스플레이될 수 있는 컨테이너를 제공한다. 이미지 포맷은 LDR 디스플레이 디바이스가 이미지의 LDR 버전을 디스플레이하는데 사용될 수 있으며, HDR 디스플레이 디바이스가 이미지의 HDR 버전을 디스플레이하는데 사용될 수 있다.
일부 구현에서, 이미지 포맷을 구현하는 이미지 컨테이너가 생성된다. 더 낮은 동적 범위의 이미지(예를 들어, LDR 이미지)와 더 큰(예를 들어, 더 높은) 동적 범위의 대응 이미지(예를 들어, HDR 이미지)가 획득된다. 일부 예에서, HDR 이미지는 카메라에 의해 캡처되고, LDR 이미지는 예를 들어 톤 매핑 또는 기타 프로세스를 사용하여 HDR 이미지로부터 생성된다. LDR 이미지는 JPEG 또는 기타 포멧과 같은 표준 이미지 포맷일 수 있다. LDR 이미지의 부분(예를 들어, 픽셀 또는 픽셀 값)과 HDR 이미지의 대응하는 부분(예를 들어, 픽셀 또는 픽셀 값) 사이의 휘도 차이(예를 들어, 이득)를 인코딩하는 HDR 및 LDR 이미지에 기초하여 복구 맵이 생성되며, 여기서 차이는 LDR 이미지의 최대 휘도에 대한 HDR 이미지의 최대 휘도의 비율을 포함하는 범위 스케일링 계수(factor)에 의해 스케일링된다. 일부 구현예서, 복구 맵은 스칼라 함수일 수 있고 로그 공간에서 휘도 이득을 인코딩하는데, 여기서 복구 맵 값은 휘도의 로그 차이를 범위 스케일링 계수의 로그로 나눈 값에 비례한다. 일부 구현에서, 복구 맵은 복구 맵을 저장하는데 필요한 저장 공간을 줄일 수 있는 데이터 구조 또는 이미지 표현으로 인코딩될 수 있다. 예를 들어, 데이터 구조는 그리드 셀의 3차원 데이터 구조가 사용되는 양방향 그리드일 수 있다. 복구 이미지와 LDR 이미지는 예를 들어 새로운 HDR 이미지 포맷으로서 저장될 수 있는 이미지 컨테이너에 제공된다.
이미지 컨테이너는 LDR 이미지이거나 출력 HDR 이미지(예를 들어 도출된 이미지)인 출력 이미지를 디스플레이하기 위해 디바이스에 의해 판독 및 처리될 수 있다. 설명된 이미지 포맷으로 저장된 이미지를 판독하여 디스플레이하는 디바이스는 LDR 이미지를 디스플레이할 수 있는 LDR 디스플레이 디바이스(예를 들어, 디스플레이 스크린)를 사용할 수 있으며, 예를 들어 이것은 LDR 이미지의 낮은 동적 범위까지만 이미지를 디스플레이할 수 있고 HDR 이미지의 더 큰 동적 범위는 디스플레이할 수 없는 디스플레이 동적 범위를 갖는다. 이러한 LDR 디스플레이 디바이스의 경우, 디바이스는 이미지 컨테이너의 LDR 이미지에만 액세스하고 복구 이미지는 무시한다. LDR 이미지는 표준 포멧이므로, 디바이스에서 이미지를 쉽게 디스플레이할 수 있다. 따라서, 일부 구현에서, LDR 이미지는 복구 이미지를 검출하거나 적용하는 코드를 구현하지 않은 디바이스에서는 계속 디스플레이될 수 있다. 액세스하는 디바이스가 HDR 이미지를 디스플레이할 수 있는 디스플레이 디바이스를 사용할 수 있는 경우(예를 들어, LDR 이미지의 최대 휘도보다 출력에서 더 큰 휘도 범위를 디스플레이할 수 있는 경우), 디바이스는 이미지 컨테이너의 LDR 이미지와 복구 맵에 액세스하고, 복구 맵에 인코딩된 휘도 이득을 LDR 이미지의 픽셀에 적용하여 디스플레이될 출력 HDR 이미지의 각각의 대응하는 픽셀 값을 결정한다. 일부 예에서, 디바이스는 HDR 디스플레이 디바이스의 휘도 출력(예를 들어, 디스플레이 디바이스의 최대 휘도 출력)뿐만 아니라 복구 맵에 저장된 휘도 이득에도 기초하여 LDR 이미지의 픽셀 휘도를 스케일링(조정)한다. 출력 HDR 이미지는 높은 동적 범위로 HDR 디스플레이 디바이스 상에 디스플레이된다. 다른 구현에서, HDR 이미지와 복구 맵이 이미지 컨테이너에 저장될 수 있으며, 복구 맵은 HDR 이미지에 적용되어 더 낮은 동적 범위를 갖는 LDR 이미지를 획득할 수 있으며, 이는 복구 맵을 통해 로컬 톤 매핑되기 때문에 높은 시각적 품질을 갖는다.
설명된 기능은 넓은 범위(wide range)의 디바이스에 의해 단일 이미지 포멧을 사용하여 높은 동적 범위를 갖는 이미지 또는 낮은(예를 들어, 표준) 동적 범위를 갖는 이미지의 효율적인 저장 및 고품질 이미지 디스플레이를 포함하여 여러 가지 기술적 이점을 제공한다. 예를 들어, 임의의 디바이스가 해당 디스플레이 성능에 적합한 동적 범위를 갖는 이미지를 디스플레이할 수 있도록 하는 이미지 포맷이 제공된다. 게다가, 이러한 포멧으로 디스플레이되는 이미지는 하나의 동적 범위에서 다른 동적 범위로 변환해도 시각적 품질(특히 로컬 콘트라스트, 예를 들어, 세부 사항)이 손실되지 않는다. 다양한 구현에서, 이미지 컨테이너로부터 생성된 출력 HDR 이미지는 이미지 컨테이너를 생성하는데 사용된 원본 HDR 이미지와 정확히 일치하는 무손실 버전일 수 있거나, 출력 HDR 이미지는 휘도 정보를 저장하는 복구 맵으로 인해 원본 HDR 이미지와 (시각적으로) 매우 유사한 버전일 수 있다.
기술된 특징은 LDR 이미지로부터 도출된 출력 HDR 이미지를 제공하기 위해 복구 맵을 사용하는 것을 포함할 수 있다. 복구 맵은 범위 스케일링 계수에 의해 스케일링되는 휘도 이득 비율에 기초한 값을 포함할 수 있으며, 여기서 계수는 원본 HDR 이미지의 최대 휘도 대 LDR 이미지의 최대 휘도의 비율이다. 예를 들어, 복구 맵은 각 픽셀을 스케일링하는 상대적인 양을 나타내고, 범위 스케일링 계수는 수행될 특정 스케일링 양을 나타내며, 이는 복구 맵의 상대 값에 대한 컨텍스트를 제공한다(예를 들어, 특정 이미지에 대해 픽셀이 스케일링될 수 있는 양의 범위 확장). 범위 스케일링 계수는 정규화된 범위에서 복구 맵 값을 효율적이고 정밀하며 간결하게 지정하고 범위 스케일링 계수를 사용하여 특정 출력 동적 범위에 대해 효율적으로 조정할 수 있다는 점에서 유리하다. 범위 스케일링 계수를 사용하면 복구 맵을 저장하는데 사용되는 모든 비트를 효율적으로 사용할 수 있으므로 더 다양한 이미지를 정확하게 인코딩할 수 있다.
또한, 일부 구현 또는 경우, 출력 HDR 이미지를 디스플레이할 때 LDR 이미지의 픽셀 휘도도 디스플레이 계수에 기초하여 스케일링된다. 디스플레이 계수는 출력 이미지를 디스플레이하는 HDR 디스플레이 디바이스의 휘도 출력에 기초할 수 있다. 이는 LDR 이상의 임의의 동적 범위를 갖는 HDR 이미지가 디스플레이 디바이스의 디스플레이 성능(capability)에 기초하여 컨테이너로부터 생성되도록 허용한다. 출력 HDR 이미지의 동적 범위는 임의의 표준 높은 동적 범위나 원본 HDR 이미지의 동적 범위로 제한되지 않는다. HDR 디스플레이 디바이스는 이미지를 얼마나 밝게 디스플레이할 수 있는지에 따라 상당히 다를 수 있으므로, 이 특징의 이점은 모든 동적 범위의 디스플레이 디바이스에서 이미지를 고품질 표현으로 디스플레이할 수 있다는 것이다. 게다가, 설명된 특징은 사용자 입력 또는 기타 조건에 기초하여 실시간으로 출력 HDR 이미지의 동적 범위(예를 들어, LDR 이상)를 변경할 수 있도록 허용하여 사용자 또는 다른 애플리케이션의 시청 피로 또는 피로를 줄일 수 있다. 디스플레이 스케일링은 출력 HDR 이미지가 LDR 이미지 범위보다 높은 임의의 동적 범위를 가질 수 있도록 한다.
대조적으로, 이전 기술은 특정한 및 고정된 동적 범위 또는 최대 밝기를 사용하여 디스플레이에 대한 HDR 이미지를 인코딩할 수 있다. 이러한 기술은 인코딩된 동적 범위보다 더 큰 동적 범위나 밝기를 갖는 HDR 디스플레이 디바이스를 활용할 수 없다. 또한, 이러한 종래 기술은 HDR 디스플레이 디바이스가 원본 HDR 이미지에서 인코딩된 것만큼 높은 동적 범위를 디스플레이할 수 없는 경우 낮은 품질의 이미지를 생성할 수 있다. 예를 들어, HDR 디스플레이 디바이스에 디스플레이할 HDR 이미지의 동적 범위를 줄이려면 롤오프 곡선(rolloff curve)과 같은 기술이 필요할 수 있으며, 이는 예를 들어 이미지의 로컬 대비(local contrast)를 바람직하지 않은 방식으로 감소시켜 이미지의 시각적 품질을 저하시키는 경우가 많다.
설명된 특징은 현재 포멧을 넘어서는 HDR(High Dynamic Range) 컨텐츠가 포함된 이미지를 생성하고 렌더링하기 위한 공유 가능하고 이전 버전과 호환되는 메커니즘을 제공한다. 설명된 이미지 포맷은 차세대 소비자 HDR 컨텐츠를 활성화할 수 있으며 일부 구현에서는 디코딩/인코딩을 위한 특수 하드웨어 코덱이 필요 없이 전문적인 이미지 워크플로우를 지원할 수도 있다. 또한, 설명된 하나 이상의 HDR 포맷 구현은 글로벌 톤 매핑을 가정하는 현재 HDR 전달 함수와 관련된 문제를 해결한다. 대조적으로, 설명된 특징은 로컬 톤 매핑을 가능하게 하여 밝기 레벨이 다양한 장면의 세부 사항을 더 잘 보존할 수 있다. 따라서, 설명된 HDR 포멧은 기존 HDR 포멧에 비해 더 높은 충실도와 품질의 HDR 렌더링 컨텐츠를 생성할 수 있다.
또한, 기술된 특징은 이미지 포맷이 낮은 저장 요구사항을 갖도록 허용한다. 예를 들어, 이미지 포맷을 사용하면 저장 요구 사항이 낮은 복구 맵으로 단일 LDR 이미지를 저장할 수 있으므로 다수의 전체 이미지를 저장하는 포멧에 비해 상당한 저장 공간을 절약할 수 있다. 예를 들어, 일부 구현에는 복구 맵 압축이 포함되며, 이러한 예 중 일부에서는 복구 맵은 양방향 그리드로 인코딩될 수 있다. 이러한 그리드는 필요한 저장 공간을 크게 줄여 복구 맵을 저장할 수 있으며 원본 HDR 이미지에 비해 시각적 품질 손실이 거의 없이 복구 맵에서 출력 HDR 이미지를 제공할 수 있다.
하나 이상의 설명된 구현의 기술적 효과는 디바이스가 이전 시스템과 비교하여 이미지를 디스플레이하는데 사용되는 특정 출력 디스플레이 디바이스의 동적 범위에 더 잘 대응하는 동적 범위를 갖는 이미지를 디스플레이할 수 있다는 것이다. 예를 들어, 이러한 종래 시스템은 디스플레이 디바이스의 동적 범위에 대응하는 동적 범위를 갖지 않는 이미지를 제공하여 이미지 디스플레이 품질의 저하를 초래할 수 있다. 본 명세서에 설명된 특징은, 예를 들어, 특정 디스플레이 디바이스에 더 적합하도록 이미지의 동적 범위를 설정하기 위해 이미지 포맷의 복구 맵을 제공하고 및/또는 이미지 출력을 스케일링함으로써 이러한 단점을 줄일 수 있다. 다욱이, 하나 이상의 설명된 구현의 기술적 효과는 디바이스가 결과를 획득하기 위해 더 적은 계산 자원을 소비한다는 것이다. 예를 들어, 설명된 기술의 기술적 효과는 설명된 기술 또는 특징 중 하나 이상을 제공하지 않는 이전 시스템에 비해 시스템 처리 자원 및/또는 저장 자원의 소비를 줄이는 것이다. 예를 들어, 이전 시스템은 특정 디스플레이 디바이스에 대한 적절한 동적 범위를 갖는 이미지를 디스플레이하기 위해 풀(full) LDR 이미지와 풀 HDR 이미지를 저장 및/또는 제공해야 할 수 있는데, 이는 설명된 기술에 비해 추가 저장 및 통신 대역폭 자원이 필요하다. 또 다른 예에서, 이전 시스템은 HDR 이미지만 저장한 다음 LDR 디스플레이를 위해 HDR 이미지를 더 낮은 동적 범위로 톤 매핑하는 데 의존할 수 있는데, 이러한 톤 매핑은 다양한 HDR 이미지에 대해 LDR 디스플레이에서 HDR 이미지를 표현할 때 시각적 품질을 저하시킬 수 있다.
본 명세서에서 언급된 바와 같이, 동적 범위는 장면의 가장 밝은 부분과 가장 어두운 부분 사이의 비율과 관련된다. LDR 포멧의 동적 범위는 일반적으로 낮은 범위 색 공간/색상 프로필의 표준 동적 범위(SDR) 파일과 같은 특정 낮은 범위를 초과하지 않는다. 마찬가지로, LDR 디스플레이 디바이스의 디스플레이된 동적 범위 출력도 낮다. 본 명세서에서 언급된 바와 같이, LDR 이미지(예를 들어, JPEG)보다 더 큰(또는 더 높은) 동적 범위를 갖는 이미지는 HDR 이미지로 간주되고, 더 큰 동적 범위를 디스플레이할 수 있는 디스플레이 디바이스는 HDR 디스플레이 디바이스로 간주된다. HDR 이미지는 LDR보다 더 넓은 톤 범위에 걸쳐 있는 픽셀 값을 저장할 수 있다. 일부 예에서, HDR 이미지는 실제 장면의 동적 범위를 더 정확하게 디스플레이할 수 있고 및/또는 LDR 이미지의 동적 범위보다 더 큰 낮은 동적 범위를 가질 수 있다(예를 들어, HDR 이미지는 일반적으로 색상 채널당 8비트보다 클 수 있다).
본 설명에서 "로그(log)"의 사용은 로그의 특정 밑수를 지칭하며 임의의 밑수(base)있는데, 예를 들어, 본 명세서의 모든 로그는 밑수 2 또는 밑수 10 등일 수 있다.
위의 설명에 더하여, 사용자에게는 본 명세서 설명된 시스템, 프로그램 또는 특징이 사용자 정보(예를 들어, 사용자 라이브러리의 이미지, 소셜 네트워크, 소셜 액션 또는 활동, 직업, 사용자 선호도, 사용자의 현재 위치, 사용자 메시지 또는 사용자 디바이스의 특성)의 수집을 활성화할 수 있는지 여부와 사용자가 서버로부터 컨텐츠 또는 통신을 전송할 수 있는지 여부에 대해 사용자가 선택할 수 있도록 하는 제어 기능이 제공될 수 있다. 또한, 특정 데이터는 개인 식별 정보가 제거되도록 저장 또는 사용하기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 신원은 사용자에 대한 개인 식별 정보가 결정될 수 없도록 처리될 수 있거나, 사용자의 지리적 위치는 사용자의 특정 위치가 결정될 수 없도록 그 위치 정보가 획득된 곳(예를 들어, 도시, 우편 번호 또는 주 수준)으로 일반화될 수 있다. 따라서, 사용자는 자신에 대해 수집되는 정보, 해당 정보가 사용되는 방법, 사용자에게 제공되는 정보를 제어할 수 있다.
도 1은 본 명세서에 설명된 일부 구현에서 사용될 수 있는 예시적인 네트워크 환경(100)의 블록도를 도시한다. 일부 구현에서, 네트워크 환경(100)은 하나 이상의 서버 시스템(예를 들어 도 1의 예에서 서버 시스템(102)), 및 각각이 사용자(U1-U4) 중 개별 사용자와 연관된 복수의 클라이언트 디바이스(예를 들어, 클라이언트 디바이스(120-126))를 포함한다. 서버 시스템(102)과 클라이언트 디바이스(120-126) 각각은 네트워크(130)와 통신하도록 구성될 수 있다.
서버 시스템(102)은 서버 디바이스(104)와 이미지 데이터베이스(110)를 포함할 수 있다. 일부 구현에서, 서버 디바이스(104)는 이미지 애플리케이션(106a)을 제공할 수 있다. 도 1과 나머지 도면에서, 참조 번호 뒤의 문자(예를 들어, "106a")는 해당 특정 참조 번호를 갖는 요소에 대한 참조를 나타낸다. 텍스트에서 다음 문자가 없는 참조 번호(예를 들어, "106")는 해당 참조 번호를 지닌 요소의 실시예에 대한 일반적인 참조를 나타낸다.
이미지 데이터베이스(110)는 서버 시스템(102)의 일부인 저장 디바이스에 저장될 수 있다. 일부 구현에서, 이미지 데이터베이스(110)는 관계형 데이터베이스, 키-값 구조, 또는 다른 유형의 데이터베이스 구조를 사용하여 구현될 수 있다. 일부 구현에서, 이미지 데이터베이스(110)는 복수의 파티션을 포함할 수 있으며, 그 각각은 사용자(1-4) 각각에 대한 개별 이미지 라이브러리에 대응한다. 예를 들어, 도 1에 도시된 바와 같이, 이미지 데이터베이스(110)는 사용자 1을 위한 제1 이미지 라이브러리(이미지 라이브러리 1, 108a) 및 다양한 다른 사용자들을 위한 다른 이미지 라이브러리(이미지 라이브러리 2,...,이미지 라이브러리 n)를 포함할 수 있다. 도 1은 단일 이미지 데이터베이스(110)를 도시하고 있지만, 이미지 데이터베이스(110)는 예를 들어 복수의 데이터베이스 서버에 걸쳐 분산된 데이터베이스로서 구현될 수 있음을 이해할 수 있다. 또한, 도 1은 각 사용자에 대해 하나씩 복수의 파티션을 도시하지만, 일부 구현에서 각 이미지 라이브러리는 별도의 데이터베이스로 구현될 수 있다.
이미지 라이브러리(108a)는 사용자 1과 연관된 복수의 이미지(비디오 포함), 복수의 이미지와 연관된 메타데이터, 및 복수의 이미지와 연관되어 저장된 하나 이상의 다른 데이터베이스 필드를 저장할 수 있다. 이미지 라이브러리(108a)에 대한 액세스 권한은 사용자 1이 예를 들어 이미지 애플리케이션(106), 다른 애플리케이션 및/또는 한 명 이상의 다른 사용자에 의해 이미지 라이브러리(108a)의 이미지 및 기타 데이터에 액세스할 수 있는 방법을 제어할 수 있도록 제한될 수 있다. 서버 시스템(102)은 특정 사용자의 이미지 데이터가 사용자에 의해 허용된 경우에만 액세스 가능하도록 액세스 권한을 구현하도록 구성될 수 있다.
본 명세서에서 언급된 이미지는 하나 이상의 픽셀 값(예를 들어, 색상 값, 밝기 값 등)을 갖는 픽셀을 갖는 디지털 이미지를 포함할 수 있다. 이미지는 정지 이미지(예를 들어, 정지 사진, 단일 프레임이 있는 이미지 등), 동적 이미지(예를 들어, 애니메이션, 애니메이션 GIF, 이미지의 일부에는 모션이 포함되어 있고 다른 부분은 정적인 시네마그래프 등), 또는 비디오(예를 들어, 선택적으로 오디오를 포함할 수 있는 일련의 이미지 또는 이미지 프레임)일 수 있다. 본 문서에 사용된 이미지는 위의 이미지 중 하나로 이해될 수 있다. 예를 들어, 본 명세서에 설명된 구현은 정지 이미지(예를 들어, 사진 또는 기타 이미지), 비디오 또는 동적 이미지와 함께 사용될 수 있다.
네트워크 환경(100)은 네트워크(130)를 통해 서로 및/또는 서버 시스템(102)과 통신할 수 있는 하나 이상의 클라이언트 디바이스, 예를 들어 클라이언트 디바이스(120, 122, 124, 126)를 포함할 수 있다. 네트워크(130)는 인터넷, 근거리 통신망(LAN), 무선 네트워크, 스위치 또는 허브 연결 등 중 하나 이상을 포함하여 임의 유형의 통신 네트워크일 수 있다. 일부 구현에서, 네트워크(130)는 예를 들어 피어 투 피어 무선 프로토콜(예를 들어, 블루투스, Wi-Fi 다이렉트 등) 등을 사용하는 디바이스 간의 피어 투 피어 통신을 포함할 수 있다. 2개의 클라이언트 디바이스(120, 122) 사이의 피어 투 피어 통신의 일 예가 화살표(132)로 디스플레이되어 있다.
다양한 구현예에서, 사용자(1, 2, 3, 4)는 개별 클라이언트 디바이스(120, 122, 124, 126)를 사용하여 서버 시스템(102) 및/또는 서로 통신할 수 있다. 일부 예에서, 사용자(1, 2, 3, 4)는 개별 클라이언트 디바이스 및/또는 서버 시스템(102)에서 실행되는 애플리케이션을 통해 및/또는 서버 시스템(102)에 구현된 네트워크 서비스, 예를 들어, 소셜 네트워크 서비스 또는 다른 유형의 네트워크 서비스를 통해 서로 상호작용할 수 있다. 예를 들어, 개별 클라이언트 디바이스(120, 122, 124, 126)는 하나 이상의 서버 시스템, 예를 들어 서버 시스템(102)과 데이터를 통신할 수 있다.
일부 구현에서, 서버 시스템(102)은 각 클라이언트 디바이스가 서버 시스템(102) 및/또는 네트워크 서비스에 업로드된 전달된 컨텐츠 또는 공유 컨텐츠를 수신할 수 있도록 클라이언트 디바이스에 적절한 데이터를 제공할 수 있다. 일부 예에서, 사용자(1-4)는 이미지 공유, 오디오 또는 비디오 회의, 오디오, 비디오 또는 문자 채팅, 또는 기타 통신 모드 또는 애플리케이션을 통해 상호작용할 수 있다.
서버 시스템(102)에 의해 구현되는 네트워크 서비스에는 사용자가 다양한 통신을 수행하고, 링크 및 연결을 형성하고, 이미지, 텍스트, 오디오 및 기타 유형의 컨텐츠와 같은 공유 컨텐츠를 업로드 및 게시하고/또는 기타 기능을 수행할 수 있도록 하는 시스템이 포함될 수 있다. 예를 들어, 클라이언트 디바이스는 클라이언트 디바이스로 전송되거나 스트리밍되고 서버 및/또는 네트워크 서비스를 통해(또는 다른 클라이언트 디바이스로부터 직접) 다른 클라이언트 디바이스로부터 발생하거나, 서버 시스템 및/또는 네트워크 서비스로부터 발생하는 컨텐츠 게시물과 같은 수신된 데이터를 디스플레이할 수 있다. 일부 구현에서, 클라이언트 디바이스는 예를 들어 전술한 바와 같이 클라이언트 디바이스 간의 피어 투 피어 통신을 사용하여 서로 직접 통신할 수 있다. 일부 구현에서, "사용자"에는 하나 이상의 프로그램이나 가상 엔티티는 물론 시스템이나 네트워크와 인터페이스하는 사람도 포함될 수 있다.
일부 구현에서, 클라이언트 디바이스(120, 122, 124 및/또는 126) 중 하나는 하나 이상의 애플리케이션을 제공할 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 클라이언트 디바이스(120)는 이미지 애플리케이션(106b)을 제공할 수 있다. 클라이언트 디바이스(122-126)도 유사한 애플리케이션을 제공할 수 있다. 이미지 애플리케이션(106a)은 클라이언트 디바이스(120)의 하드웨어 및/또는 소프트웨어를 사용하여 구현될 수 있다. 다른 구현에서, 이미지 애플리케이션(106a)은 예를 들어 클라이언트 디바이스(120-124) 중 하나에서 실행되는 독립형 클라이언트 애플리케이션일 수 있거나, 서버 시스템(102)에 제공된 이미지 애플리케이션(106b)과 함께 작동할 수 있다.
이미지 애플리케이션(106)은 이미지(비디오 포함)와 관련된 사용자 허가를 받아 구현된 다양한 기능을 제공할 수 있다. 예를 들어, 이러한 기능에는 카메라를 사용한 이미지 캡처, 이미지 수정, 이미지 품질 결정(예를 들어, 얼굴 크기, 흐릿함, 얼굴 수, 이미지 구성, 조명, 노출 등과 같은 인자에 기초함), 이미지 라이브러리(108)에 이미지를 저장 및 이미지와 비디오를 다양한 이미지 및 비디오 포멧(본 문서에 설명된 포멧 포함)으로 인코딩 및 디코딩, 디스플레이된 이미지나 이미지 기반 창작물 또는 편집물 등을 보기 위한 사용자 인터페이스 제공 중 하나 이상이 포함될 수 있다.
클라이언트 디바이스(120)는 독립형 이미지 라이브러리일 수 있는 사용자 1의 이미지 라이브러리(108b)를 포함할 수 있다. 일부 구현에서, 이미지 라이브러리(108b)는 서버 시스템(102) 상의 이미지 라이브러리(108a)와 결합하여 사용될 수 있다. 예를 들어, 사용자 허가를 받아 이미지 라이브러리(108a)와 이미지 라이브러리(108b)는 네트워크(130)를 통해 동기화될 수 있다. 일부 구현에서, 이미지 라이브러리(108)에는 (예를 들어, 클라이언트 디바이스(120) 또는 다른 디바이스의 카메라를 사용하여) 사용자에 의해 캡처된 이미지와 같은 사용자 1과 연관된 복수의 이미지, (예를 들어, 다른 사용자 2-4의 개별 이미지 라이브러리로부터) 사용자 1에 의해 공유된 이미지, (예를 들어, 웹사이트, 메시징 애플리케이션으로부터) 사용자 1에 의해 다운로드된 이미지, 스크린샷 및 기타 이미지가 포함될 수 있다. 일부 구현에서, 클라이언트 디바이스(120)의 이미지 라이브러리(108b)는 서버 시스템(102)의 이미지 라이브러리(108a)에 있는 이미지의 서브세트를 포함할 수 있다. 예를 들어, 이러한 구현은 클라이언트 디바이스(120)에서 제한된 양의 저장 공간을 사용할 수 있는 경우 유리할 수 있다.
다양한 구현에서, 클라이언트 디바이스(120) 및/또는 서버 시스템(102)은 다양한 유형의 기능을 제공하는 애플리케이션일 수 있는 다른 애플리케이션(미도시)을 포함할 수 있다. 클라이언트 디바이스(120, 122, 124 및/또는 126)의 사용자 인터페이스는 이미지, 이미지 기반 창작물, 데이터, 기타 컨텐츠는 물론 통신, 츠라이버시 설정, 알림 및 기타 데이터를 비롯하여 사용자 컨텐츠 및 기타 컨텐츠의 디스플레이를 가능하게 할 수 있다. 이러한 사용자 인터페이스는 클라이언트 디바이스의 소프트웨어, 서버 디바이스의 소프트웨어, 및/또는 서버 디바이스(104)에서 실행되는 클라이언트 소프트웨어와 서버 소프트웨어의 조합, 예를 들어 서버 시스템(102)과 통신하는 애플리케이션 소프트웨어 또는 클라이언트 소프트웨어를 사용하여 디스플레이될 수 있다. 사용자 인터페이스는 클라이언트 디바이스 또는 서버 디바이스의 디스플레이 디바이스(예를 들어, 터치스크린 또는 기타 디스플레이 스크린, 프로젝터 등)에 의해 디스플레이될 수 있다. 일부 구현에서, 서버 시스템에서 실행되는 애플리케이션 프로그램은 클라이언트 디바이스와 통신하여 클라이언트 디바이스에서 사용자 입력을 수신하고 클라이언트 디바이스에서 시각적 데이터, 오디오 데이터 등과 같은 데이터를 출력할 수 있다.
설명의 편의를 위해, 도 1은 서버 시스템(102), 서버 디바이스(104), 이미지 데이터베이스(110)에 대한 하나의 블록을 도시하고, 클라이언트 디바이스(120, 122, 124, 126)에 대한 4개의 블록을 도시한다. 서버 블록(102, 104, 110)은 다수의 시스템, 서버 디바이스 및 네트워크 데이터베이스를 나타낼 수 있으며, 블록들은 도시된 것과 다른 구성으로 제공될 수 있다. 예를 들어, 서버 시스템(102)은 네트워크(130)를 통해 다른 서버 시스템과 통신할 수 있는 다수의 서버 시스템을 나타낼 수 있다. 일부 구현에서, 서버 시스템(102)은 예를 들어 클라우드 호스팅 서버를 포함할 수 있다. 일부 예에서, 이미지 데이터베이스(110)는 서버 디바이스(104)와 별개이고 네트워크(130)를 통해 서버 디바이스(104) 및 다른 서버 시스템과 통신할 수 있는 서버 시스템 블록(들)에 제공된 저장 디바이스에 저장될 수 있다.
또한 클라이언트 디바이스는 개수에 제한 없이 있을 수 있다. 각 클라이언트 디바이스는 데스크탑 컴퓨터, 랩탑 컴퓨터, 휴대용 또는 모바일 디바이스, 휴대폰, 스마트폰, 태블릿 컴퓨터, 텔레비전, TV 셋톱 박스 또는 엔터테인먼트 디바이스, 웨어러블 디바이스(예를 들어, 디스플레이 안경 또는 고글, 손목시계, 헤드셋, 암밴드, 보석류), 개인 휴대용 단말기(PDA), 미디어 플레이어, 게임 디바이스 등과 같은 임의의 유형의 전자 디바이스일 수 있다. 일부 구현에서, 네트워크 환경(100)은 도시된 구성요소 모두를 갖지 않을 수 있고 및/또는 본 명세서에 설명된 것 대신에 또는 이에 추가하여 다른 유형의 요소를 포함하는 다른 요소를 가질 수 있다.
본 명세서에 설명된 기능의 다른 구현은 모든 유형의 시스템 및/또는 서비스를 사용할 수 있다. 예를 들어, 소셜 네트워킹 서비스 대신에 또는 그에 추가하여 다른 네트워크 서비스(예를 들어, 인터넷에 연결됨)를 사용할 수 있다. 임의의 유형의 전자 디바이스는 본 명세서에 설명된 기능을 활용할 수 있다. 일부 구현은 컴퓨터 네트워크와 연결이 끊어지거나 간헐적으로 연결된 하나 이상의 클라이언트 또는 서버 디바이스에 본 명세서에 설명된 하나 이상의 기능을 제공할 수 있다. 일부 예에서, 디스플레이 디바이스를 포함하거나 디스플레이 디바이스에 연결된 클라이언트 디바이스는 예를 들어 이전에 통신 네트워크를 통해 수신된 클라이언트 디바이스의 로컬 저장 디바이스에 저장된 컨텐츠 게시물을 디스플레이할 수 있다.
도 2는 일부 구현에 따른 이전 버전과 호환되는 높은 동적 범위 이미지 포멧, 예를 들어 낮은 동적 범위 호환성을 갖는 HDR 이미지 포멧으로 이미지를 인코딩하는 예시적인 방법(200)을 나타내는 흐름도이다. 일부 구현에서, 방법(200)은 예를 들어 도 1에 도시된 바와 같은 서버 시스템(102)에서 수행될 수 있다. 일부 구현에서, 방법(200)의 일부 또는 전부는 도 1의 클라이언트 디바이스(120, 122, 124, 126)와 같은 하나 이상의 클라이언트 디바이스, 도 1의 서버 디바이스(104)와 같은 하나 이상의 서버 디바이스, 및/또는 서버 디바이스(들)와 클라이언트 디바이스 모두에서 구현될 수 있다. 설명된 예에서, 구현 시스템은 하나 이상의 디지털 프로세서 또는 처리 회로("프로세서"), 및 하나 이상의 저장 디바이스(예를 들어, 데이터베이스 또는 기타 저장 디바이스)를 포함한다. 일부 구현에서, 하나 이상의 서버 및/또는 클라이언트의 상이한 구성 요소는 방법(200)의 서로 다른 블록 또는 다른 부분을 수행할 수 있다. 일부 예에서, 디바이스는 방법(200)의 블록들을 수행하는 것으로 설명된다. 일부 구현에서는 결과 또는 데이터를 제1 디바이스에 전송할 수 있는 하나 이상의 다른 디바이스(예를 들어, 다른 클라이언트 디바이스 또는 서버 디바이스)에 의해 수행되는 방법(200)의 하마 이상의 블록이 있을 수 있다.
일부 구현에서, 방법(200) 또는 방법의 일부는 시스템에 의해 자동으로 개시될 수 있다. 예를 들어, 방법(또는 그의 일부)은 주기적으로 수행될 수 있거나, 하나 이상의 특정 이벤트 또는 조건, 예를 들어, 클라이언트 디바이스가 이미지 애플리케이션(106)을 론칭하는 것, 클라이언트 디바이스의 이미지 캡처 디바이스에 의한 새로운 이미지의 캡처, 디바이스에 의한 네트워크를 통한 이미지의 수신, 서버 시스템(102)에 새로운 이미지 업로드, 방법(200)의 마지막 수행 이후 만료된 미리 결정된 기간, 및/또는 방법에 의해 판독된 설정에 지정될 수 있는 하나 이상의 다른 조건에 기초하여 수행될 수 있다.
방법(200)에서 사용자 데이터를 사용하기 위한 사용자 권한(허가)이 획득될 수 있다(블록 210-220). 예를 들어, 권한을 받은 사용자 데이터에는 클라이언트 디바이스(예를 들어, 클라이언트 디바이스(120-126) 중 임의의 것) 및/또는 서버 디바이스에 저장된 이미지, 이미지 메타데이터, 이미지 애플리케이션 사용과 관련된 사용자 데이터, 기타 이미지 기반 창작물 등이 포함될 수 있다. 사용자에게는 사용자 데이터 전체 또는 임의의 서브세트에 대한 액세스 권한을 선택적으로 제공하거나 사용자 데이터에 대한 액세스 권한을 제공하지 않는 옵션이 제공된다. 특정 사용자 데이터에 대한 사용자 권한이 부족한 경우, 방법(200)은 사용자 데이터의 사용 없이, 예를 들어 다른 데이터(예를 들어 사용자와 연관되지 않은 이미지)를 사용하여 수행될 수 있다.
방법(200)은 블록(210)에서 시작할 수 있다. 블록(210)에서, 높은 동적 범위(HDR)가 디바이스에 의해 획득되고("원본 HDR 이미지"), HDR 이미지는 특정 장면을 묘사한다. 일부 구현에서 HDR 이미지는 높은 동적 범위 이미지에 대한 다수의 표준 포멧 중 하나로 제공된다. 일부 예에서, HDR 이미지는 이미지 캡처 디바이스, 예를 들어 클라이언트 디바이스 또는 다른 디바이스의 카메라에 의해 캡처될 수 있다. 추가 예에서, HDR 이미지는 네트워크를 통해 다른 디바이스로부터 수신되거나 디바이스에 의해 액세스될 수 있는 저장소로부터 획득된다. 일부 구현에서, HDR 이미지는 임의의 다중 이미지 생성 기술, 예를 들어 광선 추적 등에 기초하여 생성될 수 있다.
블록(212)에서, 낮은 동적 범위(LDR) 이미지가 디바이스에 의해 획득되고(예를 들어, "원본 LDR 이미지"), LDR 이미지는 예를 들어 묘사된 주제의 HDR 이미지에 해당하는 HDR 이미지와 동일한 장면 및/또는 주제를 묘사한다. LDR 이미지는 HDR 이미지보다 동적 범위가 낮다. 일부 구현에서, LDR 이미지는 표준 LDR 이미지 포맷의 동적 범위를 가질 수 있거나 HDR 이미지보다 더 낮은 동적 범위를 가질 수 있다. 예를 들어, LDR 이미지는 JPEG, AVIF(AV1 Image File Format), TIFF 등과 같은 표준 이미지 포맷으로 제공될 수 있다. 일부 예에서, LDR 이미지는 채널당 픽셀당 8비트로 제공되는 동적 범위를 가지며, HDR 이미지는 LDR 이미지의 동적 범위보다 높은 동적 범위(예를 들어, 일반적으로 10비트이상의 비트 깊이, 넓은 영역의 색 공간, 및 HDR 지향 전송 기능)를 갖는다.
다양한 구현에서, 블록(210)의 HDR 이미지는 LDR 이미지가 획득되기 전에 획득될 수 있거나 획득된 후에 획득될 수 있다. 예를 들어, 일부 구현에서, HDR 이미지가 획득되고 LDR 이미지는 HDR 이미지로부터 도출된다. 일부 예에서, LDR 이미지는 로컬 톤 매핑 또는 기타 프로세스를 사용하여 HDR 이미지에 기초하여 생성될 수 있다. 로컬 톤 매핑은 예를 들어 이미지의 로컬 특징에 따라(각 픽셀을 동일한 방식으로 변경하는 글로벌 톤 매핑 기능을 따르는 것이 아님) 각 픽셀을 변경한다. 더 낮은 동적 범위를 갖는 LDR 이미지에 적합하도록 HDR 이미지 내의 톤 값을 줄이기 위해 다양한 로컬 톤 매핑 기술 중 하나가 사용될 수 있다. 예를 들어, 로컬 라플라시안 필터링(Local Laplacian Filtering)이 톤 매핑 프로세스에 사용될 수 있고 및/또는 다른 기술이 사용될 수 있다. 일부 구현에서, 이미지의 다양한 영역에서 다양한 전역 톤 곡선(또는 디지털 이득)이 사용될 수 있다. 일부 구현에서, 다양한 유형의 이미지 데이터, 예를 들어 정지 이미지와 비디오 이미지에 대한 서로 다른 기술에 서로 다른 톤 매핑 기술이 사용될 수 있다. 다른 예에서는, 노출 융합 기술이 HDR 이미지로부터 및/또는 다수의 캡처되거나 생성된 이미지로부터, 예를 들어, 상이한 노출 레벨에서 캡처되거나 합성적으로 생성된 다수의 이미지의 부분을 결합하여 이들 부분을 포함하는 결합된 LDR 이미지로 LDR 이미지를 생성하는데 사용될 수 있다. 일부 예시적인 구현에서, 톤 매핑과 노출 융합 기술의 조합이 LDR 이미지를 생성하는데 사용될 수 있다(예를 들어, 노출 수준이 상이한 여러 이미지의 라플라시안 톤 매핑 피라미드를 사용하고, 그 피라미드들의 가중된 혼합(blend)을 제공하고, 혼합된 피라미드를 축소함).
다른 예에서, LDR 이미지는 다른 소스로부터 획득될 수 있다. 예를 들어, HDR 이미지는 카메라 디바이스에 의해 캡처될 수 있고, LDR 이미지는 예를 들어 HDR 이미지의 캡처 직전이나 직후, 또는 적어도 부분적으로 동시에 동일한 카메라 디바이스에 의해 캡처될 수 있다. 일부 예에서, 카메라 디바이스는 카메라 설정(예를 들어, 카메라 설정 또는 사용자 선택 설정에 표시된 동적 범위)에 기초하여 HDR 이미지 및 LDR 이미지를 캡처할 수 있다. 블록(212) 다음에 블록(214)이 이어질 수 있다.
블록(214)에서, HDR 이미지 및 LDR 이미지에 기초하여 복구 맵이 생성된다. 복구 맵은 HDR 이미지의 부분(예를 들어, 픽셀)과 LDR 이미지의 대응하는 부분(예를 들어, 픽셀) 사이의 휘도 차이를 인코딩한다. 복구 맵은 LDR 이미지의 휘도를 HDR 이미지의 휘도로 변환하는데 사용된다. 예를 들어, 휘도 이득 및 범위 스케일링 계수는 복구 맵에서 인코딩될 수 있으므로 LDR 이미지의 개별 픽셀의 휘도 값에 휘도 이득을 적용하면 HDR 이미지의 대응하는 픽셀이 생성된다. 복구 맵을 생성하는 예는 도 3을 참조하여 아래에서 더 자세히 설명된다. 블록(214) 다음에 블록(216)이 올 수 있다.
블록(216)에서, 복구 맵은 복구 요소(element)로 인코딩될 수 있다. 다양한 구현에서, 복구 요소는 복구 맵 정보를 포함하거나 제공하는 이미지, 데이터 구조, 알고리즘, 신경망 등일 수 있다. 예를 들어, 복구 요소는 표준 포맷으로 압축되며 LDR 이미지의 화면비와 동일한 화면비를 갖는 복구 이미지일 수 있다. 복구 이미지는 임의의 해상도, 예를 들어, LDR 이미지와 동일하거나 다른 해상도를 가질 수 있다. 예를 들어, 복구 이미지는 LDR 이미지보다 작은 해상도, 예를 들어 LDR 이미지 해상도의 1/4(예를 들어, 1920×1080 LDR 이미지에 대한 480×270 복구 이미지)을 가질 수 있다.
일부 예에서, 복구 이미지는 단일 채널 8비트 비부호형(unsigned) 정수 값으로 인코딩될 수 있으며, 여기서 각 값은 복구 값을 나타내고 복구 이미지의 한 픽셀에 저장된다. 일부 예시적인 구현에서, 인코딩은 예를 들어 JPEG 압축과 같이 압축될 수 있는 -2.0에서 2.0까지의 연속 표현을 생성할 수 있다. 일부 구현에서, 인코딩에는 맵 값이 양수인지 음수인지를 나타내는 1비트가 포함될 수 있으며 나머지 비트는 복구 맵 값 범위(예를 들어, -1 ~ 1)에 있는 값의 크기로 해석된다. 이 예와 같은 일부 구현에서, 크기 표현은 1.0 및 -1.0을 초과할 수 있는데, 그 이유는 일부 픽셀은 원본 HDR 이미지 휘도 범위를 정확하게 복구하거나 표현하기 위해 범위 스케일링 계수로 표시되는 것보다 더 큰 감쇠 또는 이득이 필요할 수 있기 때문이다.
단일 채널 인코딩에서, 채널은 휘도(밝기)에 기초하여 타겟 이미지에 대한 조정을 지정할 수 있다. 따라서, 해당 이미지에 복구 맵을 적용하는 동안 타겟 이미지의 색도(chromaticity)나 색조(hue)는 변경되지 않는다. 단일 채널 인코딩은 타겟 이미지의 기존 색도 또는 색조를 보존할 수 있으며(예를 들어, RGB 비율 보존) 일반적으로 다중 채널 인코딩보다 저장 공간이 덜 필요하다. 일부 구현에서, 복구 이미지는 다중 채널 값으로서 인코딩될 수 있다. 다중 채널 인코딩을 사용하면 복구 맵을 타겟 이미지에 적용하는 동안 타겟 이미지의 색상(예를 들어, 색도 또는 색조)을 조정할 수 있다. 다중 채널 인코딩은 LDR 이미지에서 발생할 수 있는 색상 손실, 예를 들어, 높은 밝기에서 색상 롤오프(rolloff)를 보상할 수 있다. 이를 통해 HDR 휘도와 올바른 색상을 복구할 수 있다(예를 들어, 하늘이 하얗게 보이도록 밝기를 높이는 대신 하늘의 채도를 푸른 색조로 다시 조정함). 일부 구현에서, 다중 채널 인코딩된 복구 맵은 타겟 이미지에서 더 넓은 색상 영역을 복구(또는 색상 영역의 손실을 보상)하는데 사용될 수 있다. 예를 들어, ITU-R 권장 사항 BT.2020 영역은 표준 RGB(sRGB)/BT.709 영역 LDR 이미지에서 복구될 수 있다.
일부 구현에서, 다른 비트 깊이, 예를 들어 8비트보다 큰 비트 깊이가 복구 맵 값에 사용될 수 있다. 예를 들어, 일부 구현에서, 8비트 깊이는 8비트 단일 채널 이득 맵과 결합하여 HDR 표현을 허용하는 최소 비트 깊이일 수 있으며, 여기서 더 낮은 비트 깊이는 밴딩(banding)과 같은 아티팩트 없이 HDR 이미지 컨텐츠를 제공하기에 충분한 정보를 제공하지 못할 수 있다. 일부 구현에서, 복구 이미지는 정수 대신 부동 소수점 값으로서 인코딩될 수 있다. 일부 구현에서, 복구 요소는 복구 맵의 값을 인코딩하는 데이터 구조, 알고리즘, 신경망 등일 수 있다. 예를 들어, 복구 맵은 복구 요소로서 사용되는 작은 신경망의 가중치로 인코딩될 수 있다. 블록(216) 다음에 블록(218)이 이어질 수 있다.
블록(218)에서, LDR 이미지 및 복구 요소는 새로운 HDR 이미지 포맷으로 저장될 수 있는 이미지 컨테이너에 제공된다. 일부 구현에서, LDR 이미지는 이미지 컨테이너의 기본(base) 이미지로 간주될 수 있다. 이미지 컨테이너는 LDR 이미지 또는 HDR 이미지를 디스플레이하기 위해 디바이스에 의해 판독될 수 있다. 일부 구현에서, 이미지 컨테이너는 표준 이미지 컨테이너, 예를 들어 AVIF(AV1 이미지 파일 포멧) 이미지 컨테이너일 수 있다.
일부 구현에서, 복구 맵은 복구 맵이 배치될 이미지 컨테이너의 정밀도로 양자화될 수 있다. 예를 들어, LDR 이미지가 JPEG 이미지(또는 8비트 부호 없는 정수 값이 사용되는 다른 포멧)인 일부 구현에서, 복구 맵의 값은 저장을 위해 8비트 포멧으로 양자화될 수 있다. 일부 예에서, 각 값은 복구 값을 나타낼 수 있으며 복구 이미지의 한 픽셀에 저장된다. 일부 예에서, 각 인코딩된 값은 다음과 같이 정의될 수 있다.
이 인코딩을 통해 -2.0에서 2.0 범위의 표현이 생성되며, 각 값은 예를 들어 256개의 가능한 인코딩 값 중 하나로 양자화된다. 다른 구현(예를 들어, -1.0 ~ 1.0 또는 기타 범위)에서는 다른 범위와 양자화가 사용할 수 있다.
이미지 컨테이너는 이미지 컨테이너의 컨텐츠에 기초한 출력 HDR 이미지의 디스플레이와 관련된 추가 정보를 포함할 수 있다. 예를 들어, 추가 정보는 이미지 컨테이너, 복구 요소 및/또는 LDR 이미지에 제공되는 메타데이터를 포함할 수 있다. 메타데이터는 LDR 이미지 및/또는 그로부터 도출된 HDR 이미지를 디스플레이 디바이스에 디스플레이하는 방법에 대한 정보를 인코딩할 수 있다. 이러한 메타데이터에는 예를 들어 컨테이너에 사용된 복구 맵 포멧의 버전, 복구 맵에 사용된 범위 스케일링 계수, 저장 방법(예를 들어, 복구 맵이 양방향 그리드 또는 기타 데이터 구조로 인코딩되었는지 여부, 또는 지정된 압축 기술로 압축되었는지 여부), 복구 맵 및/또는 복구 이미지의 해상도, 양방향 그리드 저장을 위한 가이드 가중치, 및/또는 기타 복구 맵 속성 또는 이미지 속성이 포함될 수 있다.
일부 예에서, LDR 이미지에는 이미지 컨테이너에 있는 항목(예를 들어, 파일)의 순서와 속성을 정의하는 메타데이터 데이터 구조 또는 디렉터리가 포함될 수 있으며, 컨테이너에 있는 각 파일은 데이터 구조에 있는 대응하는 미디어 항목을 가질 수 있다. 미디어 항목은 이미지 컨테이너에 있는 관련 파일의 위치와 관련 파일의 기본 속성을 기술할 수 있다. 예를 들어, 컨테이너 요소는 LDR 이미지의 메타데이터로 인코딩될 수 있으며, 여기서 요소는 컨테이너에 있는 미디어 항목의 포멧 버전과 데이터 구조를 정의한다. 일부 예에서, 메타데이터는 메타데이터를 지원하지 않고 판독할 수 없는 디바이스나 애플리케이션에서 LDR 이미지를 판독할 수 있도록 허용하는 데이터 모델에 따라 저장된다. 예를 들어, 메타데이터는 XMP(Extensible Metadata Platform) 데이터 모드에 따라 복구 이미지 및/또는 LDR 이미지에 저장될 수 있다. 블록(218) 다음에 블록(220)이 올 수 있다.
블록(220)에서, 이미지 컨테이너는 예를 들어 하나 이상의 디바이스에 의한 액세스를 위한 저장소에 저장될 수 있다. 예를 들어, 이미지 컨테이너는 서버 시스템에 액세스할 수 있는 다수의 클라이언트 디바이스에 액세스할 수 있도록 네트워크를 통해 하나 이상의 서버 시스템으로 전송될 수 있다.
일부 구현에서, 서버 디바이스는 메타데이터와 같은 추가 정보를 포함하는 클라우드 저장소(또는 다른 저장소)에 이미지 컨테이너를 저장할 수 있다. 서버는 LDR 이미지를 컨테이너에 임의의 포멧으로 저장할 수 있다. 서버 디바이스가 클라이언트 디바이스로부터 이미지에 대한 요청을 수신하는 것에 응답하여, 서버 디바이스는 시스템 설정, 사용자 선호도, 클라이언트 디바이스의 유형(예를 들어, 모바일 클라이언트 디바이스, 데스크탑 컴퓨터 클라이언트 디바이스)과 같은 클라이언트 디바이스의 특성, 동적 범위, 해상도 등과 같은 클라이언트 디바이스의 디스플레이 디바이스 특성에 기초하여 요청(requesting) 클라이언트 디바이스에 어떤 이미지 데이터를 제공할지 결정할 수 있다. 예를 들어, 일부 클라이언트 디바이스의 경우, 서버 디바이스는 이미지 컨테이너를 클라이언트 디바이스에 제공할 수 있고, 클라이언트 디바이스는 클라이언트의 디스플레이 디바이스에 대한 적절한 동적 범위에서 디스플레이할 이미지(기본 이미지 또는 도출된 이미지)를 획득하기 위해 이미지 컨테이너를 디코딩할 수 있다. 다른 클라이언트 디바이스의 경우(예를 들어, 서버 디바이스가 클라이언트 디바이스의 디스플레이 디바이스의 동적 범위와 같은 클라이언트 디바이스 특성을 설명하는 정보를 가지고 있는 경우), 서버 디바이스는 이미지 컨테이너로부터 이미지를 추출 및 디코딩하고 그 이미지를 클라이언트 디바이스에 제공(serve)할 수 있으며, 여기서 제공되는 이미지는 서버 디바이스에 의해 결정된 대로 클라이언트의 디스플레이 디바이스에 대한 적절한 동적 범위를 갖는다. 일부 구현에서, 서버 디바이스는 이미지 컨테이너로부터 기본 이미지와 도출된 이미지를 결정하고 두 이미지를 모두 클라이언트 디바이스에 제공할 수 있으며, 클라이언트 디바이스는 자신의 디스플레이 디바이스의 동적 범위에 기초하여 이러한 이미지 중 어느 것을 디스플레이할지 선택할 수 있다.
일부 구현에서, 다수의 복구 맵(예를 들어, 복구 요소)이 이미지 컨테이너에 포함될 수 있다. 각각의 복구 맵은 본 명세서에 설명된 복구 맵에 기초한 출력 이미지에 하나 이상의 서로 다른 특성을 제공하기 위해 서로 다른 값을 포함할 수 있다. 예를 들어, 다수의 복구 맵 중 특정 하나가 선택되고 적용되어 그 선택된 복구 맵에 기초한 특성을 갖는 출력 이미지를 제공하므로, 예를 들어 이미지 컨테이너의 다른 복구 맵(들)보다 특정 용도 또는 애플리케이션에 더 적합할 수 있다. 예를 들어, 다수의 복구 맵 중 일부 또는 전부는 타겟 출력 디스플레이 디바이스의 특정 및 다른 물리적 디스플레이 디바이스 특성과 연관될 수 있다. 일부 예에서, 사용자는 상이한 동적 범위(예를 들어, 서로 다른 피크 밝기)나 상이한 색상 영역(gamuts, 색역)을 갖는 디스플레이 디바이스에 LDR 또는 HDR 이미지를 디스플레이하기 위해, 또는 상이한 이미지 디코더를 사용할 때 상이한 복구 맵을 사용하도록 선택할 수 있다.
일부 구현에서, 개별 범위 스케일링 계수는 이러한 복구 맵 각각과 함께 사용하기 위해 이미지 컨테이너에 저장될 수 있다. 일부 구현에서, 복구 요소들 중 하나 이상은 도 5와 관련하여 후술하는 바와 같이 타겟 디스플레이 디바이스의 특정 디스플레이 디바이스 특성의 저장된 표시(indications)와 연관되어 특정 타겟 디스플레이 디바이스가 디스플레이용으로 사용되는 것에 기초하여 복구 맵 트랙 중 하나의 선택을 가능하게 할 수 있다. 일부 구현에서, 단일 범위 스케일링 계수는 다수의 복구 맵과 함께 사용될 수 있다. 예를 들어, 범용 범위 스케일링 계수는 이미지 컨테이너에 저장된 다수의 이미지와 각각 연관된 다수의 복구 맵에 사용될 수 있다.
일부 구현에서, 복구 맵의 의도된 용도를 나타내는 추가 메타데이터가 이미지 컨테이너에 저장될 수 있다. 이미지 컨테이너에 다수의 복구 맵을 저장하는 일부 구현에서, 이러한 메타데이터에는 다수의 복구 맵 각각에 대한 의도된 용도의 표시가 포함할 수 있다. 예를 들어, 복구 맵 1이 LDR 이미지에 매핑하기 위해 의도된 경우, 맵 1의 키를 가진 맵, 테이블 또는 인덱스는 복구 맵과 연관된 지정된 출력 포멧 리스트인 값을 나타낼 수 있다. 일부 예에서, 메타데이터는 출력 범위의 표시를 지정할 수 있다(예를 들어, "LDR" 또는 "HDR" 또는 HDR이 LDR 범위의 승수로 지정될 수 있음). 일부 예에서, 메타데이터는 비트 깊이, 예를 들어, "출력 메타데이터: bit_depth X"를 지정할 수 있으며 여기서 X는 8, 10, 12 등일 수 있다. 일부 구현에서, 지정된 bit_length는 최소 비트 깊이일 수 있는데, 예를 들어 "LDR"은 광전자 전달 함수(OETF)를 통한 출력의 경우 최소 8비트를 나타내고 선형/확장된 범위 출력의 경우 최소 12비트를 나타낼 수 있으며, "HDR"은 OETF를 통한 출력의 경우 최소 10비트를 나타내고 선형/확장된 범위 출력의 경우 최소 16비트를 나타낼 수 있다. 이러한 유형의 메타데이터는 색상 공간이 변경될 수 있고 메타데이터에 의도된 출력 색상 공간에 대한 표시가 포함될 수 있는 다중 채널 복구 맵에도 사용할 수 있다. 예를 들어, 메타데이터는 "출력 메타데이터: bit_length X, color_space"로 지정할 수 있으며 여기서 color_space는 예를 들어 Rec. 709, Rec. 2020년 등일 수 있다.
도 3은 일부 구현에 따른 HDR 이미지 및 LDR 이미지에 기초하여 복구 맵을 생성하는 예시적인 방법(300)을 도시하는 흐름도이다. 예를 들어, 방법(300)은 도 2의 방법(200)의 블록(214)에 대해 구현될 수 있거나 다른 구현에서 수행될 수 있다. 일부 구현에서, LDR 이미지 및 (원본) HDR 이미지는 도 2를 참조하여 설명된 바와 같이 획득되었다.
방법(300)은 LDR 이미지에 대한 선형 휘도가 결정될 수 있는 블록(302)에서 시작할 수 있다. 일부 구현에서, 원본 LDR 이미지(예를 들어, 도 2의 블록(212)에서 획득됨)는 비선형 또는 감마 인코딩된 이미지일 수 있으며, LDR 이미지의 선형 버전은 예를 들어 비선형 LDR 이미지의 프라이머리 이미지 색 공간을 선형 버전으로 변환함으로써 생성될 수 있다. 예를 들어, 표준 RGB(sRGB) 전달 함수를 사용하는 색상 공간은 sRGB 원색을 유지하는 선형 색상 공간으로 변환된다.
선형 LDR 이미지에 대한 선형 휘도가 결정된다. 예를 들어 휘도(Y) 함수는 다음과 같이 정의될 수 있다.
여기서 Yldr은 0.0~1.0 범위로 정의된 낮은 동적 범위의 이미지 선형 휘도이고, Primary_color_profile_to_luminance는 이미지(LDR 이미지)의 프라이머리 색상을 좌표 (x,y)에서 LDR 이미지의 각 픽셀에 대한 선형 휘도 값(Y)으로 변환하는 함수이다. 블록(302) 다음에는 블록(304)이 이어질 수 있다.
블록(304)에서, HDR 이미지에 대한 선형 휘도가 결정된다. 일부 구현에서, 원본 HDR 이미지(예를 들어, 도 2의 블록(210)에서 획득됨)는 비선형 및/또는 3채널 인코딩된 이미지(예를 들어, PQ(Perceptual Quantizer) 인코딩 또는 HLG(Hybrid-log Gamma)일 수 있다. ) 인코딩일 수 있으며, 예를 들어 비선형 HDR 이미지를 선형 버전으로 변환하여 HDR 이미지의 3채널 선형 버전이 생성될 수 있다. 다른 구현에서는 임의의 다른 색상 공간 및 색상 프로필이 사용될 수 있다.
선형 HDR 영상에 대해 선형 휘도가 결정된다. 예를 들어, 휘도(Y) 함수는 다음과 같이 정의될 수 있다.
여기서 Yhdr은 범위 스케일링 계수 0.0의 범위에서 정의된 낮은 동적 범위 이미지 선형 휘도이고, Primary_color_profile_to_luminance는 좌표 (x,y)에서 HDR 이미지의 각 픽셀에 대해 이미지(HDR 이미지)의 프라이머리(기본) 색상을 선형 휘도 값(Y)으로 변환하는 함수이다. 블록(304) 다음에는 블록(306)이 이어질 수 있다.
블록(306)에서, 픽셀 이득 함수가 블록(302 및 304)에서 결정된 선형 휘도에 기초하여 결정된다. 픽셀 이득 함수는 Yhdr 함수와 Yldr 함수 사이의 비율로 정의된다. 예를 들어 다음과 같다.
여기서 Yhdr은 0.0부터 범위 스케일링 계수까지의 범위에서 정의된 높은 동적 범위 이미지 선형 휘도이고, Primary_color_profile_to_luminance는 좌표 (x,y)에서 HDR 이미지의 각 픽셀에 대해 이미지(HDR 이미지)의 프라이머리(기본) 색상을 선형 휘도 값(Y)으로 변환하는 함수이다..
0은 유효한 휘도 값이므로, Yhdr 또는 Yldr은 0일 수 있으며, 이는 위 방정식에서 또는 아래에 설명된 바와 같이 로그를 결정할 때 잠재적인 문제를 일으킬 수 있다. 일부 구현에서, Yhdr 및/또는 Yldr이 0인 경우는 예를 들어 pixel_gain 함수를 1로 정의함으로써 처리되거나 예를 들어 아래 방정식에서 엡실론(ε)으로 표시된 충분히 작은 추가 계수(예를 들어, 작은 계수에 추가 또는 고정)를 사용하여 이러한 경우(case)를 피하기 위해 계산을 조정함으로써 처리될 수 있다.
일부 구현에서, 엡실론(ε)의 서로 다른 값이 위 방정식의 분자와 분모에 사용될 수 있다. 블록(306) 다음에 블록(308)이 이어질 수 있다.
블록(308)에서, 범위 스케일링 계수는 HDR 이미지의 최대 휘도 내지 LDR 이미지의 최대 휘도에 기초하여 결정된다. 예를 들어, 범위 스케일링 계수는 HDR 이미지의 최대 휘도 대 LDR 이미지의 최대 휘도의 비율일 수 있다. 범위 스케일링 계수는 또한 본 명세서에서 범위 압축 계수, 및/또는 범위 압축 계수의 곱셈의 역인 범위 확장 계수로도 지칭될 수 있다. 예를 들어, HDR 이미지로부터 LDR 이미지가 결정되는 경우, 범위 스케일링 계수는 LDR 이미지를 생성하기 위해 전체 HDR 범위가 압축된 양으로부터 도출될 수 있다. 예를 들어, 이 계수는 HDR 이미지를 LDR 동적 범위에 매핑하기 위해 HDR 이미지의 하이라이트의 휘도가 낮아지는 양 또는 HDR 이미지를 LDR 동적 범위에 매핑하기 위해 HDR 이미지의 그림자의 휘도가 증가되는 양을 나타낼 수 있다. 범위 스케일링 계수는 선형 공간에서 전체 HDR 범위를 얻기 위해 전체 LDR 범위를 곱할 수 있는 선형 값일 수 있다. 일부 예에서, 범위 스케일링 계수가 3이면, HDR 이미지의 그림자가 3배 강화(boost)되거나, HDR 이미지의 하이라이트가 3배 감소된다(또는 이러한 그림자 강화와 하이라이트 감소의 혼합이 수행된다). 일부 구현에서, 범위 스케일링 계수는 그 범위 스케일링 계수로부터 도출된 출력 이미지의 모양을 변경할 수 있는 특정 시각 효과를 제공하기 위해 (예를 들어, 카메라 애플리케이션이나 다른 애플리케이션, 사용자 또는 기타 컨텐츠 제작자에 의해) 다른 방식으로 정의될 수 있다. 블록(308) 다음에는 블록(310)이 이어질 수 있다.
블록(310)에서, 범위 스케일링 계수에 의해 스케일링된 픽셀 이득 함수를 인코딩하는 복구 맵이 결정된다. 따라서 복구 맵은 픽셀 이득 함수를 통해, 원하는 HDR 이미지 휘도(Yhdr)와 LDR 이미지 휘도(Yldr)를 포함하는 두 개의 선형 이미지를 기반으로 한다. 일부 구현에서, 복구 맵은 로그 공간에서 정규화된 픽셀 이득을 인코딩하고 범위 스케일링 계수(예를 들어, 범위 스케일링 계수의 역수를 곱함)에 의해 스케일링되는 스칼라 함수이다. 일부 예에서, 복구 맵 값은 로그 HDR 및 LDR 휘도의 차이를 범위 스케일링 계수의 로그로 나눈 값에 비례한다. 예를 들어, 복구 맵은 다음과 같이 정의될 수 있다.
일부 예시적인 구현에서, recovery(x,y)는 -1 내지 +1의 범위에 있는 경향이 있을 수 있다. 0보다 작은 값은 HDR 디스플레이 디바이스에 디스플레이하기 위해 (LDR 이미지의) 픽셀을 더 어둡게 만들고, 0보다 큰 값은 픽셀을 더 밝게 만든다. 복구 맵 범위의 영향에 대한 일부 예에서, HDR 디스플레이에 이미지를 디스플레이할 때 하이라이트를 강화하기 위해(그림 5를 참조하여 설명된 예), 이러한 값은 이미지의 가장 밝은 영역은 1에 가까운 값을 가질 수 있고 이미지의 어두운 영역은 일반적으로 0에 가까운 값을 가질 수 있도록 일반적으로 ~[0..1] 범위에 있을 수 있다(예를 들어, 복구 맵을 적용하면 그림자가 안정적으로 유지되고 하이라이트가 향상됨). 일부 구현에서, HDR 디스플레이 디바이스에 디스플레이할 때 그림자를 아래로(더 어둡게) 밀어내기 위해, 이러한 값은 일반적으로 ~[-1..0] 범위에 있을 수 있다(예를 들어, 복구 맵을 적용하면 하이라이트가 안정적으로 유지되고 그림자가 다시 어두워짐). 일부 구현에서, HDR 디스플레이 디바이스에 디스플레이할 때 하이라이트를 강화하고 그림자를 다시 어둡게 하는 조합을 제공하기 위해 이러한 값은 전체 [-1..1] 범위를 포함할 수 있다.
전술한 바와 같은 일부 구현에서, 이미지는 연산의 용이성을 위해 로그 공간으로 변환되고 로그 공간에서 처리가 수행된다. 일부 구현에서, 처리는 수학적으로 동등한 지수 계산과 지수 보간을 통해 선형 공간에서 수행될 수 있다. 일부 구현에서, 처리는 지수화 없이 선형 공간에서 수행될 수 있다(예를 들어, 선형 공간에서단순하게 보간/외삽).
디스플레이용 LDR 이미지에 복구 맵을 적용하는 경우, 일반적으로 범위 스케일링 계수는 픽셀의 밝기를 증가시키는 양을 나타내며 맵은 일부 픽셀이 더 밝거나 더 어두워질 수 있음을 나타낸다. 복구 맵은 각 픽셀을 스케일링하는 상대적인 양을 나타내고, 범위 스케일링 계수는 수행될 특정 스케일링의 양을 나타낸다. 범위 스케일링 계수는 복구 맵에 있는 상대 값에 대한 정규화 및 컨텍스트를 제공한다. 범위 스케일링 계수를 사용하면 복구 맵을 통해 적용할 스케일링 양에 관계없이, 복구 맵을 저장하는데 사용되는 모든 비트를 효율적으로 사용할 수 있다. 이는 더 다양한 이미지가 정확하게 인코딩될 수 있음을 의미한다. 예를 들어, 모든 맵은 예를 들어 -1에서 1 사이의 범위에 있는 값을 포함할 수 있으며, 값들은 범위 스케일링 계수에 의해 컨텍스트가 제공되므로 값들의 이 범위는 더 큰 전체 범위(예를 들어, 2 또는 8)로 동일하게 스케일링되는 맵을 나타낼 수 있다. 예를 들어, 설명된 포멧의 하나의 이미지는 범위 스케일링 계수 2를 가질 수 있고 두 번째 이미지는 범위 스케일링 계수 8을 가질 수 있다. 범위 스케일링 계수가 없으면, 최대/최소 절대 이득 값은 맵에서 결정된다. 이 값이 예를 들어 2이면, 범위 스케일이 8인 두 번째 이미지는 표현될 수 없다. 이 값이 예를 들어 8이면, 범위 스케일 2로 이미지를 저장할 때 복구 맵의 모든 픽셀에 대해 2비트의 정보가 낭비된다. 범위 스케일링 계수가 없는 이러한 구현은 인코딩에 사용된 원본 HDR 이미지와 비교하여 디스플레이된 출력 HDR 이미지에 (원치 않는) 시각적 차이가 있을 가능성이 더 높을 수 있다(예를 들어, 이러한 차이의 심각한 형태는 밴딩(banding)일 수 있음).
일부 구현에서, pixel_gain이 0.0일 때, 복구 함수는 표현 가능한 최대 감쇠인 -2.0으로 정의될 수 있다. 복구 함수는 이미지의 하나 이상의 영역이나 위치는 원본 HDR 이미지를 복구하기 위해 범위 스케일링 계수로 디스플레이되는 것보다 더 큰 스케일링(감쇠 또는 이득)이 필요할 수 있기 때문에 -1.0 ~ +1.0 범위를 벗어날 수 있다. -2.0 ~ +2.0의 범위는 이러한 더 큰 스케일링(감쇠 또는 이득)을 제공하는데 충분할 수 있다. 블록(310) 다음에 블록(312)이 이어질 수 있다.
블록(312)에서, 복구 맵은 압축된 형태로 인코딩될 수 있다. 이렇게 하면 복구 맵이 줄어든 저장 공간을 차지할 수 있다. 압축 형식은 임의의 다양한 압축, 포멧일 수 있다. 일부 구현에서, 복구 맵은 도 4와 관련하여 더 자세히 설명된 바와 같이 결정되고 양방향 그리드로 인코딩된다. 일부 구현에서, 복구 맵은 하나 이상의 추가 또는 대체 압축 기술에 기초하여 저장 요구 사항이 압축되거나 감소될 수 있다. 일부 구현에서, 복구 맵은 블록(310)에서 결정된 복구 이미지보다 낮은 해상도를 갖는 저해상도 복구 이미지로 압축될 수 있다. 이 복구 이미지는 전체 해상도 복구 맵보다 적은 저장 공간을 차지할 수 있다. 예를 들어, JPEG 압축은 JPEG 포멧의 LDR 이미지를 제공하는 구현에서 사용될 수 있거나, 다른 압축 유형(예를 들어, RLE(Run Length Encoding)) 또는 다른 이미지 포맷 압축(예를 들어, HEIC, AVIF, PNG 등)이 사용될 수 있다. .
도 4는 일부 구현에 따른 복구 맵을 양방향 그리드로 인코딩하는 예시적인 방법(400)을 도시하는 흐름도이다. 예를 들어, 방법(400)은 도 3의 방법(300)의 블록(310 및 312)으로 구현될 수 있으며, 예를 들어 여기서 복구 맵은 HDR 이미지와 LDR 이미지의 휘도에 기초하여 결정되고 압축된 형태로 저장되며, 이는 도 4의 구현을 설명한다. 양방향 그리드이다. 양방향 그리드는 후술하는 바와 같이 가이드 가중치에 기초하여 LDR 이미지의 픽셀에 매핑된 그리드 셀의 3차원 데이터 구조이다.
방법(400)은 그리드 셀의 3차원 데이터 구조가 정의되는 블록(402)에서 시작할 수 있다. 3차원 데이터 구조는 W×H×D 크기로 표시되는 여러 셀의 폭, 높이, 깊이를 가지며, 여기서 폭과 높이는 LDR 이미지의 폭과 높이에 해당하고 깊이는 W×H의 셀 레이어 수에 해당한다. 그리드의 셀은 (폭, 높이) 및 길이(D)의 벡터 요소로 정의되며 다수의 LDR 이미지 픽셀에 매핑된다. 따라서, 그리드의 셀 갯수는 LDR 이미지의 픽셀 수보다 훨씬 적을 수 있다. 일부 예에서, 폭과 높이는 LDR 이미지 크기의 약 3%일 수 있고 깊이는 16일 수 있다. 예를 들어, 1920×1080 LDR 이미지는 64×36×16 크기의 그리드를 가질 수 있다. 블록(402) 다음에는 블록(404)이 이어질 수 있다.
블록(404)에서, 가이드 가중치 세트가 정의된다. 일부 구현에서, 가이드 가중치 세트는 양방향 그리드를 생성하고 디코딩하는데 사용될 수 있는 부동 소수점 값의 다중 요소 벡터로 정의될 수 있다. 가이드 가중치는 해당 입력 픽셀에 매핑될 셀에 대한 해당 깊이(D)를 결정하기 위한, LDR 이미지의 입력 픽셀 LDR(x,y)의 개별 요소의 가중치를 나타낸다. 예를 들어, 가이드 가중치 세트는 5개 요소 벡터로 정의될 수 있다.
여기서 weight_r, weight_g 및 weight_b는 개별 입력 픽셀의 색상 구성 요소(적색, 녹색 또는 청색)의 가중치를 지칭하고, weight_min와 weight_max는 각각 r, g, b 값 중 최소 구성요소 값에 대한 가중치(예를 들어, min(r,g,b)와 r, g, b 값의 최대 구성요소 값에 대한 가중치(예를 들어, max(r,g,b))를 나타낸다.
일 예에서, LDR 이미지는 Rec. 709 색 공간에 있으며, 가이드 가중치는 예를 들어 LDR(x,y) 픽셀의 휘도와 해당 픽셀의 최소 및 최대 구성 요소 값의 균형을 나타내기 위해 다음 값으로 설정할 수 있다.
이 예에서, 이러한 가이드 가중치 값은 픽셀 휘도(r, g, b 값)에 대해 50%, 최소 구성 요소 값에 대해 12.5%, 픽셀 최대 구성 요소 값에 대해 37.5%만큼 그리드 깊이 룩업을 가중한다. 일부 구현에서, 이러한 값의 합은 예를 들어 1.0이 되므로 모든 그리드 셀은 (값의 합이 1.0 미만인 경우와는 달리) 항상 룩업(조회)될 수 있으며, 픽셀의 깊이는 (값의 합이 1.0보다 클 때와는 달리) 그리드의 최종 깊이 수준을 넘어 오버플로될 수 없다. 가이드 가중치 값은 예를 들어 사람들이 결과를 시각적으로 평가하게 함으로써 경험적으로 결정될 수 있다. 일부 구현에서, 서로 다른 수의 가이드 가중치, 예를 들어 픽셀 휘도(r, g, b 값)에 대해 3개의 가이드 가중치만 사용될 수 있다.
블록(404) 다음에는 블록(406)이 올 수 있다.
블록(406)에서, 그리드 셀은 가이드 가중치에 기초하여 LDR 이미지의 픽셀에 매핑된다. 가이드 가중치는 해당 입력 픽셀에 매핑될 셀의 해당 깊이(D)를 결정하는데 사용된다.
일부 구현에서, 그리드 셀의 폭(x)과 높이(y)가 LDR 이미지의 픽셀(x,y)에 매핑된다. 예를 들어, LDR 이미지의 픽셀(x,y)은 다음과 같이 그리드 셀의 x,y 좌표로 변환될 수 있다.
여기서, grid_x와 grid_y는 그리드 셀의 x와 y 위치이고, ldr_x와 ldr_y는 그리드 셀에 매핑되는 LDR 이미지 픽셀의 x와 y 좌표이고, ldr_W와 ldr_H는 그리드 셀의 전체 픽셀 폭과 높이이고, grid_W 및 grid_H는 각각 양방향 그리드의 전체 폭 및 높이 셀 크기이다.
일부 구현에서, LDR 이미지에 매핑된 그리드 셀의 깊이에 대해, 다음 방정식이 사용될 수 있다.
여기서 D는 그리드의 전체 셀 깊이 차원이고 z_idx(x,y)는 LDR 이미지 픽셀(x,y)에 매핑된 셀에 대한 양방향 그리드의 깊이이다. 이 방정식은 LDR 이미지의 특정 픽셀에 대한 가이드 가중치 벡터와 해당 값 벡터의 내적을 결정한 다음 그 결과를 그리드의 깊이 차원 크기로 스케일링하여 해당 특정 픽셀에 대한 대응 셀의 깊이를 나타낸다. 예를 들어, 가이드 가중치 곱셈 결과는 0.0에서 1.0(포함) 사이의 값일 수 있으며 이 결과는 그리드의 다양한 깊이 레벨(버킷)에 맞게 조정된다. 예를 들어, D가 16인 경우 곱셈 값이 0.0이면 버킷 0에 매핑되고, 값이 0.5이면 버킷 7에 매핑되고, 값이 1.0이면 버킷 15(마지막 버킷)에 매핑된다. 블록(406) 다음에 블록(408)이 이어질 수 있다.
블록(408)에서, 복구 맵 값은 선형 방정식 세트에 대한 솔루션(해)을 사용하여 결정된다. 예를 들어, 일부 구현에서 양방향 그리드에 대한 입력은 다음 방정식을 사용하여 정의된다.
여기서 pixel_gain(x,y)는 도 3의 방법(300)과 관련하여 위에 설명된 pixel_gain 함수의 픽셀(x,y)에서의 값이다. Bicial_grid_linear는 선형 공간에서 픽셀 이득을 나타내는 양방향 그리드 컨텐츠이다. x, y 및 z_idx 좌표는 양방향 그리드의 좌표이며 LDR 이미지의 x, y 좌표와 다르다. z_idx를 통해, 가이드 가중치는 LDR 이미지의 각 픽셀에 대한 양방향 그리드에서 해당 pixel_gain이 어떤 깊이에 위치하는지 알려주며, 이는 블록(410)에서 해결하기 위해 방정식의 선형 세트를 설정하는 방법을 알려준다. 블록(408) 다음에는 블록(410)이 이어질 수 있다.
일부 구현에서, 인코딩은 각 그리드 셀에 대해 다음 방정식을 최소화하는 선형 방정식 세트에 대한 솔루션으로 정의된다.
Yldr 값과 Yhdr 값은 각각 LDR 이미지의 (x,y) 픽셀 위치에서의 LDR 이미지와 HDR 이미지의 휘도 값이다. 위 방정식의 값을 최소화하는 pixel_gain(x,y) 값은 위의 이전 방정식에 표시된 바와 같이 각 픽셀이 깊이 벡터에서 조회되는 위치에 기초하여 해결되며, 이는 가이드 가중치에 기초하여 미리 결정된다.
결과값은 다음과 같이 정의된다.
이 정의는 x는 0부터 전체 그리드 너비까지, y는 0부터 전체 그리드 높이까지, z는 0부터 전체 그리드 깊이까지 양방향 그리드가 정의됨을 지정한다. 예를 들어, 양방향 그리드가 64×36×16인 경우, 그리드 값은 0에서 63을 초과하는 x, 0에서 35를 초과하는 y, 0에서 15를 초과하는 z에 대해 정의된다. 블록(408) 다음에 블록(410)이 이어질 수 있다.
블록(410)에서, 해결된(solved) 값은 양방향 그리드에 변환되어 저장된다. 예를 들어, 해결된 값은 다음과 같이 변환될 수 있다.
또는
biternal_grid는 로그 공간의 픽셀 이득을 나타내는 양방향 그리드 컨텐츠이다. 이러한 값은 인코딩된 복구 맵으로서 저장된다. 이들 방정식에 표시된 바와같이, LDR 이미지와 HDR 이미지 간의 정규화된 픽셀 이득은 도 3의 블록(310)과 관련하여 위에 설명된 것과 유사하게 로그 공간에서 인코딩되고 범위 스케일링 계수에 의해 스케일링된다.
LDR 이미지보다 더 큰 동적 범위를 갖는 HDR 이미지를 디스플레이하기 위해 양방향 그리드로부터 복구 맵을 디코딩할 때(도 5에 대해 더 자세히 설명됨), 각 복구 맵 값은 양방향 그리드로부터 추출된다. 아래 방정식에서 r, g, b는 LDR 이미지의 픽셀 LDR(x,y)에 대한 각각의 구성 요소 값이다.
여기서 recovery(x,y)는 추출된 복구 맵이다. 일부 구현에서, 첫 번째 방정식에서 결정된 z_idx는 두 번째 방정식의 biternal_grid(x,y,z)에 입력되기 전에 가장 가까운 정수로 반올림될 수 있다.
도 5는 일부 구현에 따른 이전 버전과 호환되는 높은 동적 범위 이미지 포맷의 이미지를 디코딩하고 디스플레이하는 예시적인 방법(500)을 도시하는 흐름도이다. 일부 구현에서, 방법(500)은 예를 들어 도 1에 도시된 바와 같은 서버 시스템(102)에서 수행될 수 있다. 일부 구현에서, 방법(500)의 일부 또는 전부는 도 1의 클라이언트 디바이스(120, 122, 124, 126)와 같은 하나 이상의 클라이언트 디바이스, 도 1의 서버 디바이스(104)와 같은 하나 이상의 서버 디바이스, 및/또는 서버 디바이스(들)와 클라이언트 디바이스(들) 모두에서 구현될 수 있다. 설명된 예에서, 구현되는 시스템은 하나 이상의 디지털 프로세서 또는 처리 회로("프로세서"), 및 하나 이상의 저장 디바이스(예를 들어, 데이터베이스 또는 기타 저장소)를 포함한다. 일부 구현에서, 하나 이상의 서버 및/또는 클라이언트의 서로 다른 구성요소는 방법(500)의 서로 다른 블록 또는 다른 부분을 수행할 수 있다. 일부 예에서, 디바이스는 방법(500)의 블록들을 수행하는 것으로 설명된다. 일부 구현에는 결과 또는 데이터를 제1 디바이스에 전송할 수 있는 하나 이상의 다른 디바이스(예를 들어, 다른 클라이언트 디바이스 또는 서버 디바이스)에 의해 수행되는 하나 이상의 방법(500)의 블록들이 있을 수 있다.
일부 구현에서, 방법(500) 또는 방법의 일부는 시스템에 의해 자동으로 시작될 수 있다. 예를 들어, 방법(또는 그의 일부)은 주기적으로 수행될 수 있거나 하나 이상의 특정 이벤트 또는 조건, 예를 들어 클라이언트 디바이스에 의한 이미지 애플리케이션(106) 론칭, 클라이언트 디바이스에 의한 새로운 이미지의 캡처 또는 수신, 서버 시스템(102)으로의 새로운 이미지 업로드, 방법(500)의 마지막 수행 이후 만료된 사전 결정된 기간, 및/또는 방법을 수행하는 시스템에 의해 판독되거나 수신되는 설정에 지정될 수 있는 하나 이상의 다른 조건 발생에 기초하여 수행될 수 있다.
방법(500)은 이미지 컨테이너를 생성한 디바이스와 상이한 디바이스에 의해 수행될 수 있다. 예를 들어, 제1 디바이스는 이미지 컨테이너를 생성하고 이를 제1 디바이스와 다른 제2 디바이스가 액세스할 수 있는 저장 위치(예를 들어, 서버 디바이스)에 저장할 수 있다. 제2 디바이스는 방법(500)에 따라 이미지 컨테이너에 액세스하여 이미지를 디스플레이할 수 있다. 일부 예에서, 베이스(기본) 이미지에 대한 복구 맵의 적용은 하드웨어 디코더 및/또는 제2 디바이스의 CPU 및/또는 GPU에 의해 수행될 수 있다. 일부 구현에서, 단일 디바이스는 방법(200)에 설명된 바와 같이 이미지 컨테이너를 생성할 수 있고 방법(500)에 설명된 바와 같이 이미지 컨테이너를 디코딩하고 디스플레이할 수 있다. 일부 구현에서, 제1 디바이스는 방법(500)에 기초하여 이미지 컨테이너로부터 이미지를 디코딩할 수 있고, 디코딩된 이미지를 제2 디바이스에 제공하여 그 이미지를 디스플레이할 수 있다.
유사하게, 도 2를 참조하여 전술한 바와 같이, 일부 구현에서, 제1 디바이스(예를 들어, 클라우드의 서버 디바이스)는 이미지 컨테이너로부터 2개의 이미지(예를 들어, 기본 이미지와 그 기본 이미지 및 복구 맵에 기초하여 도출된 이미지)를 디코딩할 수 있으며, 2개의 이미지를 제2 디바이스로 전송하여 예를 들어, 제2 디바이스의 디스플레이 디바이스 특성에 기초하여 제2 디바이스에 의해 결정된 이미지 중 하나를 선택하고 디스플레이할 수 있다.
방법(500)에서 사용자 데이터를 사용하기 위한 사용자 권한이 획득될 수 있다(블록(510-534)). 예를 들어, 허가를 받은 사용자 데이터에는 클라이언트 디바이스(예를 들어, 클라이언트 디바이스(120-126) 중 임의의 것) 및/또는 서버 디바이스에 저장된 이미지, 이미지 메타데이터, 이미지 애플리케이션 사용과 관련된 사용자 데이터, 기타 이미지 기반 창작물 등이 포함될 수 있다. 사용자에게는 사용자 데이터 전체 또는 임의의 서브 세트에 대한 액세스 권한을 선택적으로 제공하는 옵션이나 사용자 데이터에 대한 액세스 권한을 제공하지 않는 옵션이 제공된다. 특정 사용자 데이터에 대한 사용자 권한이 불충분한 경우, 방법(500)은 사용자 데이터의 사용 없이, 예를 들어 다른 데이터(예를 들어 사용자와 연관되지 않은 이미지)를 사용하여 수행될 수 있다.
방법(500)은 블록(502)에서 시작할 수 있다. 블록(510)에서, LDR 이미지 및 복구 맵을 포함하는 이미지 컨테이너가 획득된다. 예를 들어, 이미지 컨테이너는 HDR 이미지와 LDR 이미지로부터 복구 맵을 생성하는 도 2의 방법(200)에 의해 생성된 컨테이너일 수 있으며, 여기서 HDR 이미지는 LDR 이미지보다 더 큰 동적 범위를 갖는다. 복구 맵은 복구 이미지와 같은 복구 요소로서 컨테이너에 제공될 수 있다. 이미지 컨테이너는 방법(500)을 수행하는 디바이스에 의해 지원되고 인식되는 표준화된 포멧, 예를 들어 JPEG용 컨테이너, 사용자 정의 JPEG 마커(예를 들어 JPEG/Exif 파일에 메타데이터를 저장하는 APP1 세그먼트 또는 청크를 저장하는 마커), 국제 표준화 기구(ISOBMFF), AV1 이미지 파일 포멧(AVIF)용 컨테이너, 고효율 이미지 파일(HEIF), MPF(Multi-Picture Format) 컨테이너, XMP(Extensible Metadata Platform) 인코딩된 데이터 등을 가질 수 있다. 일부 구현에서, 복구 맵은 표준(예를 들어, AVIF, HEIF)에 따라 세컨더리 이미지로 저장될 수 있거나, 복구 맵은 새로운 유형의 보조 이미지(예를 들어, 이미지 항목이 이득 맵이고 그에 따라 사용된다는 것을 판독 디바이스에 신호를 보내는 AV1 이득 맵 이미지 항목을 정의하고; 예를 들어 헤더에 범위 스케일링 계수를 정의함)로서 저장될 수 있다. 블록(510) 다음에 블록(512)이 이어질 수 있다.
블록(512)에서, 이미지 컨테이너의 LDR 이미지가 추출된다. 일부 예시적인 구현에서, 이 추출에는 LDR 이미지를 표준 파일 포멧(예를 들어 JPEG)으로부터 원시 이미지 포맷 또는 디스플레이 및/또는 처리에 사용하기 위한 다른 포멧으로 디코딩하는 것이 포함할 수 있다. 인코딩된 맵으로부터 디코딩된 값은 아래 방정식으로 결정될 수 있으며, 여기서 r은 범위이고 n은 각 복구 맵 값의 비트 수이다.
일부 예시적인 구현에서, 도 2의 블록(218)에 대해 전술한 양자화된 인코딩된 맵(encode(x,y))의 예와 관련하여, 인코딩된 맵으로부터 디코딩된 값은 다음과 같이 결정될 수 있다:
이는 -2에서 2까지의 복구 맵 값 범위에 대한 스케일 및 오프셋을 제공하고 8비트로 저장된다. 다른 예에서, 복구 맵에 저장된 값이 -1~1인 경우, 디코딩된 값은 다음과 같이 결정될 수 있다.
다른 범위, 스케일, 오프셋, 저장 비트 수 등이 다른 구현에서 사용될 수 있다. 블록(512) 다음에 블록(514}이 이어질 수 있다.
블록(514)에서, 추출된 LDR 이미지로부터 도출된 HDR 이미지인 출력 이미지(예를 들어 도출된 이미지)를 디스플레이할지, 아니면 LDR 이미지인 출력 이미지를 디스플레이할지 여부가 결정된다. 출력 이미지는 방법(500)을 수행하고 이미지 컨테이너에 액세스하는 디바이스와 연관되거나 통신하는 적어도 하나의 타겟 디스플레이 디바이스 상에 디스플레이된다. 타겟 디스플레이 디바이스는 디스플레이 스크린, 터치스크린, 프로젝터, 디스플레이 고글 또는 안경 등과 같은 임의의 적합한 출력 디스플레이 디바이스일 수 있다. 디스플레이될 출력 HDR 이미지는 이미지 컨테이너를 생성하는데 사용된 원본 HDR 이미지의 동적 범위까지(예를 들어, 도 2의 블록(210)), 컨테이너의 LDR 이미지 위의 동적 범위를 가질 수 있다.
출력 HDR 이미지를 디스플레이할지 여부에 대한 결정은 출력 이미지를 디스플레이할 타겟 디스플레이 디바이스의 하나 이상의 특성에 기초할 수 있다. 예를 들어, 타겟 디스플레이 디바이스의 동적 범위에 따라 출력 이미지로서 HDR 이미지를 디스플레이할지 LDR 이미지를 디스플레이할지 결정할 수 있다. 일부 예에서, 타겟 디스플레이 디바이스가 이미지 컨테이너의 LDR 이미지의 동적 범위보다 더 큰 동적 범위를 디스플레이할 수 있는 경우에는 HDR 이미지를 디스플레이하도록 결정된다. 타겟 디스플레이 디바이스가 컨테이너에 LDR 이미지의 낮은 동적 범위만 디스플레이할 수 있는 경우에는 HDR 이미지는 디스플레이되지 않는다.
일부 구현 또는 경우에서는 타겟 디스플레이 디바이스가 LDR 이미지보다 더 큰 동적 범위를 지원하더라도 HDR 이미지를 디스플레이하지 않는 것으로 결정된다. 예를 들어, 사용자 설정 또는 선호도는 더 낮은 동적 범위를 갖는 이미지를 디스플레이하도록 나타낼 수 있거나, 디스플레이된 이미지는 다른 LDR 이미지 등과 시각적으로 비교할 수 있도록 LDR 이미지로 디스플레이되어야 함을 나타낼 수 있다.
블록(514)에서 HDR 이미지가 디스플레이되지 않는 것으로 결정되면, 방법은 이미지 컨테이너로부터 추출된 LDR 이미지가 타겟 디스플레이 디바이스에 의해 디스플레이되게 되는 블록(516)으로 진행한다. 일반적으로, LDR 이미지는 LDR 이미지의 범위보다 더 큰 동적 범위를 디스플레이할 수 없는 LDR 호환 타겟 출력 디바이스에 의해 디스플레이된다. LDR 이미지는 타겟 디스플레이 디바이스에 의해 직접 출력될 수 있으며, 이미지 컨테이너의 HDR 이미지 포맷과 관련된 복구 맵 및 임의의 메타데이터는 무시된다. 일부 구현에서, LDR 이미지는 표준 포멧으로 제공되므로 표준 포멧을 판독할 수 있는 임의의 디바이스에 의해 판독 가능하고 디스플레이 가능하다.
블록(514)에서 HDR 이미지가 출력 이미지로서 디스플레이되도록 결정되면, 방법은 이미지 컨테이너의 복구 요소가 추출되는 블록(518)으로 진행된다. 복구 요소에 기초하여 출력 HDR 이미지 디스플레이와 관련된 메타데이터는 또한 이미지 컨테이너로부터 획득될 수 있다. 예를 들어, 복구 요소는 전술한 바와 같은 복구 이미지일 수 있고, 이 복구 이미지는 전술한 바와 같은 메타데이터를 포함 및/또는 동반할 수 있다. 메타데이터는 또한 컨테이너 및/또는 이미지 컨테이너의 LDR 이미지에 포함될 수 있다.
일부 구현에서, 위에서 설명된 바와 같이 다수의 복구 맵(예를 들어, 복구 요소)이 이미지 컨테이너에 포함될 수 있다. 이러한 구현 중 일부에서, 아래 처리를 위해 블록(518)에서 다수의 복구 요소 중 하나가 선택될 수 있다. 일부 구현에서, 선택된 복구 요소는 사용자 입력 또는 사용자 설정에 의해 지정될 수 있거나, 일부 구현에서는 예를 들어, 타겟 출력 디스플레이 디바이스 또는 다른 출력 디스플레이 구성요소의 하나 이상의 특성에 기초하여 처리를 수행하는 디바이스에 의해 (예를 들어, 현재 사용자 입력 없이) 자동으로 선택될 수 있으며, 여기서 이러한 특성은 운영 체제 호출이나 기타 사용 가능한 소스를 통해 얻을 수 있다. 예를 들어, 일부 구현에서, 복구 요소 중 하나 이상은 이미지 컨테이너에 저장된(또는 블록(518)을 수행하는 디바이스에 액세스 가능한) 특정 디스플레이 디바이스 특성의 표시와 연관될 수 있다. 타겟 디스플레이 디바이스가 하나 이상의 특정 특성(예를 들어, 동적 범위, 피크 밝기, 색상 영역 등)을 갖는 것으로 결정되면, 해당 특성과 연관된 특정 복구 요소가 블록(518)에서 선택될 수 있다. 다수의 복구 요소가 상이한 범위 스케일링 계수와 연관된 경우, 연관된 범위 스케일링 계수도 선택되어 검색된다. 블록(518) 다음에 블록(520)이 이어질 수 있다.
블록(520)에서, 복구 맵은 복구 요소로부터 선택적으로 디코딩된다. 예를 들어, 복구 맵은 복구 요소에서 압축되거나 다른 인코딩된 형태일 수 있으며, 압축되지 않거나 디코딩될 수 있다. 예를 들어, 일부 구현에서 복구 맵은 전술한 바와 같이 양방향 그리드로 인코딩될 수 있고, 복구 맵은 양방향 그리드로부터 디코딩된다. 블록(520) 다음에 블록(522)이 이어질 수 있다.
블록(524)에서, 출력 HDR 이미지에 대해 상기 추출된 LDR 이미지의 휘도를 스케일링할지 여부가 결정된다. 일부 구현에서, 이 스케일링은 타겟 디스플레이 디바이스의 디스플레이 출력 성능(capability)을 기반으로 한다. 예를 들어, 일부 구현 또는 경우에서, 출력 HDR 이미지의 생성은 타겟 디스플레이 디바이스가 디스플레이할 수 있는 특정 휘도에 부분적으로 기초한다. 일부 구현 또는 경우에서, 이 특정 휘도는 타겟 디스플레이 디바이스가 디스플레이할 수 있는 최대 휘도일 수 있으므로, 디스플레이 디바이스 최대 휘도는 출력 HDR 이미지의 휘도를 제한(cap)한다. 일부 구현 또는 경우에서, 블록(524)에서는 LDR 이미지의 휘도를 스케일링하지 않는 것으로 결정되는데, 예를 들어 출력 HDR 이미지의 생성은 타겟 디스플레이 디바이스의 휘도 성능을 고려하지 않는다.
블록(524)에서 타겟 디스플레이 디바이스 성능에 기초하여 출력 이미지의 휘도를 스케일링하지 않기로 결정되면, 방법은 블록(526)으로 진행하여 LDR 이미지의 픽셀에 복구 맵의 휘도 이득이 적용되고 픽셀은 출력 HDR 이미지의 대응 픽셀을 결정하기 위해 범위 스케일링 계수에 기초하여 스케일링된다. 예를 들어, 휘도 이득 및 스케일링은 디스플레이될 출력 HDR 이미지의 각각의 대응하는 픽셀 값을 결정하기 위해 LDR 이미지의 픽셀 휘도에 적용된다. 이로 인해 출력 HDR 이미지는 이미지 컨테이너를 생성하는데 사용된 원본 HDR 이미지와 동일한 동적 범위를 갖게 된다.
일부 구현 예에서, LDR 이미지와 범위 스케일링 계수는 로그 공간으로 변환되며 다음 방정식이 사용될 수 있다.
HDR*(x, y) = LDR*(x, y) + log(range_scaling_factor) * recovery(x,y)
여기서 HDR*(x,y)는 로그 공간의 복구된 HDR 이미지(출력 이미지)의 픽셀(x,y)이고, LDR*(x,y)는 추출된 LDR 이미지의 로그 공간 버전의 픽셀(x,y)(예를 들어, log(LDR(x,y))이고, log(range_scaling_factor)는 log(displayfactor)는 범위 스케일링 계수이고, recovery(x,y)는 픽셀(x,y)에서의 복구 맵 값이다. 예를 들어, recovery(x,y)는 로그 공간의 정규화된 픽셀 이득이다.
일부 예에서, 픽셀당 이득, 예를 들어, recovery(x,y) * 범위 스케일링 계수가 적용되는 경우 이미지의 LDR 버전과 HDR 버전 사이에 보간이 제공된다. 이것은 본질적으로 이미지의 원본 버전과 범위 압축 버전 사이를 보간하는 것이며, 보간량은 범위 스케일링 계수에 따라 달라지기 때문에 픽셀 단위로 그리고 전역적으로 동적이다. 일부 예에서, 이것은 복구 맵 값이 0보다 작거나 1보다 큰 경우 외삽으로 간주될 수 있다.
일부 구현에서, 이미지 컨테이너로부터의 LDR 이미지는 비선형적으로 인코딩(예를 들어, 감마 인코딩)되고, 위 방정식의 로그 공간에서 LDR 이미지가 LDR*(x,y)로 변환되기 전에 비선형 LDR 이미지의 프라이머리(주) 이미지 색 공간이 선형 버전으로 변환된다. 예를 들어, 표준 RGB(sRGB) 전달 함수를 갖는 색 공간은 도 3의 블록(302)에 대해 위에서 설명한 것과 유사하게 sRGB 원색을 보존하는 선형 색 공간으로 변환될 수 있다. 일부 구현에서, 컨테이너의 LDR 이미지는 선형적으로 인코딩될 수 있으며, 비선형 색 공간으로부터의 이러한 변환은 사용되지 않는다.
LDR 이미지의 개별 픽셀의 휘도에 휘도 이득을 적용하면 원본(예를 들어, 원래 인코딩된) HDR 이미지에 해당하는 픽셀이 생성된다. LDR 이미지와 복구 맵의 무손실 저장이 제공되는 경우, 출력 HDR 이미지는 원본 HDR 이미지와 동일한 픽셀 값을 가질 수 있다(예를 들어, 복구 맵이 LDR 이미지와 동일한 해상도를 갖는 경우). 그렇지 않은 경우, 블록(532)으로부터 발생하는 출력 HDR 이미지는 원본 HDR 이미지에 매우 근접할 수 있으며, 여기서 그 차이는 일반적으로 출력 이미지의 디스플레이에서 사용자에게 시각적으로 눈에 띄지 않는다.
일부 구현에서, 출력 이미지는 디스플레이를 위해 로그 공간으로부터 출력 색상 공간으로 변환될 수 있다. 일부 구현에서, 예를 들어 다중 채널 복구 맵을 사용하는 경우, 출력 이미지 색상 공간은 이미지 컨테이너에서 추출된 LDR 이미지의 색상 공간과 다를 수 있다. 블록(526) 다음에는 아래에 설명되는 블록(534)이 이어질 수 있다.
블록(524)에서 타겟 디스플레이 디바이스 출력에 기초하여 이미지의 휘도를 스케일링하기로 결정되면, 방법은 타겟 디스플레이 디바이스의 최대 휘도 출력이 결정되는 블록(528)으로 진행한다. 타겟 디스플레이 디바이스는 HDR 디스플레이 디바이스일 수 있으며, 이러한 유형의 디바이스는 디스플레이 디바이스의 모델, 제조업체 등에 따라 달라질 수 있는 최대 휘도 값을 디스플레이할 수 있다. 일부 구현에서, 타겟 디스플레이 디바이스의 최대 휘도 출력은 운영 체제 호출 또는 다른 소스를 통해 획득될 수 있다. 블록(528) 다음에는 아래에 설명되는 블록(530)이 이어질 수 있다.
블록(530)에서, 디스플레이 계수가 결정된다. 디스플레이 계수는 아래에 설명된 바와 같이, 디스플레이될 출력 HDR 이미지의 동적 범위를 스케일링(조정)하는데 사용된다. 일부 구현에서, 디스플레이 계수는 타겟 디스플레이 디바이스의 휘도 출력과 범위 스케일링 계수의 최소값 이하로 결정된다. 예를 들어, 이는 다음과 같다고 말할 수 있다.
디스플레이 계수 ≤ min(최대 디스플레이 휘도, 범위 스케일링 계수)
이 결정을 통해 출력 이미지의 휘도 스케일링이 타겟 디스플레이 디바이스의 최대 디스플레이 휘도로 제한될 수 있다. 이렇게 하면 이미지 컨테이너가 생성된 원래 HDR 이미지에 존재하지만(범위 스케일링 계수에 표시됨) 타겟 디스플레이 디바이스의 최대 휘도 출력 범위보다 큰 휘도 범위로 출력 이미지를 스케일링하는 것을 방지할 수 있다. 일부 구현에서, 최대 디스플레이 휘도는 타겟 디스플레이 디바이스의 동적 특성일 수 있으며, 예를 들어 사용자 설정, 애플리케이션 프로그램 등에 의해 조정될 수 있다.
일부 구현에서, 디스플레이 계수는 범위 스케일링 계수보다 크고 최대 디스플레이 휘도보다 작거나 같은 휘도로 설정할 수 있다. 예를 들어, 이것은 타겟 디스플레이 디바이스가 원본 HDR 이미지에 존재하는 동적 범위(범위 스케일링 계수로 표시될 수 있음)보다 더 큰 동적 범위를 출력할 수 있는 경우 수행될 수 있다. 일부 예에서, 사용자는 (사용자 설정 또는 선택 입력을 통해) 출력 이미지가 밝아지는 것을 나타낼 수 있다.
일부 구현에서, 디스플레이 계수는 타겟 디스플레이 디바이스의 최대 디스플레이 휘도와 원본 HDR 이미지의 최대 휘도보다 낮은 휘도로 설정될 수 있다. 예를 들어, 디스플레이 계수는 예를 들어, 아래에 설명된 바와 같이 일부 경우나 애플리케이션에서 바람직할 수 있는 더 낮은 휘도 레벨의 출력을 유발하기 위해, 하나 이상의 디스플레이 조건, 사용자 입력, 사용자 선호도 또는 설정 등에 의해 표시된 디스플레이 디바이스의 특정 디스플레이 휘도에 기초하여 설정될 수 있다. 블록(530) 다음에는 아래에 설명되는 블록(532)이 이어질 수 있다.
블록(532)에서, 복구 맵의 휘도 이득은 LDR 이미지에 적용되고 LDR 이미지의 휘도는 HDR 이미지의 해당 픽셀을 결정하기 위해 디스플레이 요소에 기초하여 스케일링된다. 예를 들어, 복구 맵에 인코딩된 휘도 이득은 LDR 이미지의 픽셀 휘도에 적용되어 디스플레이될 출력 이미지의 각각의 대응하는 픽셀 값을 결정한다. 이들 픽셀 값은 블록(530)에서 결정된 디스플레이 계수에 기초하여, 예를 들어 타겟 디스플레이 디바이스의 특정 휘도 출력(타겟 디스플레이 디바이스의 최대 휘도 출력일 수 있음)에 기초하여 스케일링된다. 일부 구현에서, 이를 통해 LDR 이미지의 하이라이트 휘도를 디스플레이 디바이스가 디스플레이할 수 있는 레벨인, 원본 HDR 이미지의 동적 범위에 기초한 최대 레벨까지 증가시킬 수 있거나, 또는 LDR 이미지의 그림자 휘도를 디스플레이 디바이스가 디스플레이할 수 있는 레벨인, 원본 HDR 이미지의 동적 범위에 기초한 하한까지 감소시킬 수 있다.
일부 예시 구현에서, LDR 이미지 및 디스플레이 계수는 로그 공간으로 변환되고 다음 방정식이 사용될 수 있다.
여기서 HDR*(x,y)는 로그 공간의 복구된 HDR 이미지(출력 이미지)의 픽셀(x,y)이고, LDR*(x,y)는 추출된 LDR 이미지의 로그 공간 버전의 픽셀(x,y)(예를 들어, log(LDR(x,y))이고, log(display_factor)는 로그 공간의 디스플레이 계수이며, recovery(x,y)는 픽셀 (x,y)에서의 복구 맵 값이다. 예를 들어, recovery(x,y)는 로그 공간에서 정규화된 픽셀 이득이다.
일부 예에서, 픽셀당 이득, 예를 들어 recovery_map(x,y) * 디스플레이 계수가 적용되는 경우 이미지의 LDR 버전과 HDR 버전 사이에 보간이 제공되는 것으로 간주될 수 있다. 이것은 본질적으로 이미지의 원본 버전과 범위 압축 버전 사이를 보간하는 것으로 간주될 수 있으며, 보간량은 범위 스케일링 계수에 따라 달라지기 때문에 픽셀 단위로 그리고 전역적으로 동적이다. 일부 예에서, 이것은 복구 맵 값이 0보다 작거나 1보다 큰 경우 외삽으로 간주될 수 있다.
일부 구현에서, 이미지 컨테이너로부터의 LDR 이미지는 비선형적으로 인코딩(예를 들어, 감마 인코딩)되고, 위 방정식의 로그 공간에서 LDR 이미지가 LDR*(x,y)로 변환되기 전에 비선형 LDR 이미지의 프라이머리(주) 이미지 색 공간이 선형 버전으로 변환된다. 예를 들어, 표준 RGB(sRGB) 전달 함수를 갖는 색 공간은 도 3의 블록(302)에 대해 위에서 설명한 것과 유사하게 sRGB 원색을 보존하는 선형 색 공간으로 변환될 수 있다. 일부 구현에서, 컨테이너의 LDR 이미지는 선형적으로 인코딩될 수 있으며, 비선형 색 공간으로부터의 이러한 변환은 사용되지 않는다.
LDR 이미지의 개별 픽셀의 휘도에 휘도 이득을 적용하면 원본(예를 들어, 원래 인코딩된) HDR 이미지에 해당하는 픽셀이 생성된다. LDR 이미지와 복구 맵의 무손실 저장이 제공되는 경우, 출력 HDR 이미지는 원본 HDR 이미지와 동일한 픽셀 값을 가질 수 있다(예를 들어, 복구 맵이 LDR 이미지와 동일한 해상도를 갖는 경우). 그렇지 않은 경우, 블록(532)으로부터 발생하는 출력 HDR 이미지는 원본 HDR 이미지에 매우 근접할 수 있으며, 여기서 그 차이는 일반적으로 출력 이미지의 디스플레이에서 사용자에게 시각적으로 눈에 띄지 않는다.
일부 구현에서, 출력 이미지는 디스플레이를 위해 로그 공간으로부터 출력 색상 공간으로 변환될 수 있다. 일부 구현에서, 예를 들어 다중 채널 복구 맵을 사용하는 경우, 출력 이미지 색상 공간은 이미지 컨테이너에서 추출된 LDR 이미지의 색상 공간과 다를 수 있다. 블록(532) 다음에 블록(534)이 이어질 수 있다.
블록(534)에서, 블록(526) 또는 블록(532)에서 결정된 출력 HDR 이미지가 타겟 디스플레이 디바이스에 의해 디스플레이되게 된다. 출력 HDR 이미지는 LDR 이미지 범위보다 더 큰 동적 범위를 디스플레이할 수 있는 HDR 호환 디스플레이 디바이스에 의해 디스플레이된다. 이미지 컨테이너로부터 생성된 출력 HDR 이미지는 휘도 정보를 저장하는 복구 맵으로 인해 이미지 컨테이너를 생성하는데 사용된 원본 HDR 이미지와 동일하거나 거의 동일할 수 있으며 일반적으로 시각적으로 구별할 수 없을 수도 있다.
일부 구현에서, (블록(526) 또는 블록(532)으로부터의) 출력 HDR 이미지는 예를 들어 선형 이미지 또는 기타 출력 HDR 이미지 포맷으로서 타겟 디스플레이 디바이스에 의한 디스플레이에 적합할 수 있다. 예를 들어, 출력 HDR 이미지는 블록(532)의 디스플레이 계수를 통해 처리되었을 수 있으며, 복구 맵의 적용으로 인한 출력 HDR 이미지가 디스플레이를 위해 직접 렌더링되도록 디스플레이를 위해 추가로 수정될 필요가 없을 수도 있다.
일부 구현 또는 경우에서, 출력 HDR 이미지는 타겟 디스플레이 디바이스에 의한 디스플레이를 위해 다른 포맷, 예를 들어 출력 HDR 이미지보다 타겟 디스플레이 디바이스에 의한 디스플레이에 더 적합할 수 있는 이미지 포맷으로 변환될 수 있다. 예를 들어, 블록(526)(또는 일부 구현에서는 블록(532))의 출력 HDR 이미지는 타겟 디스플레이의 성능에 적합한 휘도 범위로 변환될 수 있다(일부 구현에서는 블록(532)에서와 같이 디스플레이 계수의 사용에 추가될 수 있음). 일부 구현에서, 출력 HDR 이미지는 표준 이미지 포맷, 예를 들어 HLG/PQ 또는 기타 표준 HDR 포맷을 갖는 표준 이미지로 변환될 수 있다. 이들 예 중 일부에서, 일반적인 톤 매핑 기술이 타겟 디스플레이 디바이스에 의한 디스플레이를 위한 이러한 표준 이미지에 적용될 수 있다.
일부 구현이나 경우에서, 표준 형식으로 더 이상 변환되지 않고 블록(532)의 디스플레이 계수를 통해 타겟 디스플레이 디바이스에 대해 처리되고 일반 톤 매핑 기술을 사용하여 디스플레이를 위해 처리된 출력 HDR 이미지는, 일반(generic) 톤 매핑 기술을 통해 변환 및 처리된 출력 HDR 이미지보다 타겟 디바이스에 더 높은 품질의 이미지 디스플레이를 제공할 수 있다. 예를 들어, 복구 맵을 통해 제공되는 로컬 톤 매핑은 일반 또는 전역(global) 톤 매핑보다 더 높은 품질의 이미지(예를 들어, 더 자세한 내용)를 제공할 수 있다. 더욱이, 다양한 디바이스 사양 및 구현에 기초한 전역 톤 매핑 기술을 사용하여 HDR 이미지를 일부 표준 포멧으로 변환할 때 모호함과 차이가 있을 수 있다.
일부 구현에서, 기술은 이미지를 선형 포멧, 예를 들어 0은 검정색을 나타내고, 1은 SDR 흰색을 나타내고, 1보다 큰 값은 HDR 밝기를 나타내는 확장된 범위 포멧으로 이미지를 디스플레이 디바이스에 출력하는데 사용될 수 있다. 이러한 기술은 타겟 디스플레이 디바이스의 디스플레이 성능을 처리하는 전역 톤 매핑 기술의 문제를 피할 수 있다. 본 명세서에 설명된 하나 이상의 기술은 위에 설명된 디스플레이 계수를 통해 복구 맵의 적용을 통해 디스플레이 디바이스 디스플레이 성능을 처리할 수 있으므로, 확장된 범위 값은 디스플레이 디바이스의 디스플레이 성능을 초과하지 않는다.
전술한 바와 같이, 디바이스는 HDR 디스플레이 디바이스의 최대 휘도 출력에 기초하고 복구 맵에 저장된 휘도 이득에 기초하여 LDR 이미지의 픽셀 휘도를 스케일링할 수 있다. 일부 구현에서, 예를 들어 많은 사진 및 비디오 촬영 용도에서, LDR 이미지의 스케일링은 이미지 컨테이너를 생성하는데 사용된 원본 HDR 이미지의 전체(full) 동적 범위를 재현하는 HDR 출력 이미지를 생성하는데 사용될 수 있다(타겟 디스플레이 디바이스가 해당 전체 범위를 디스플레이할 수 있는 경우). 일부 구현에서, LDR 이미지의 스케일링은 출력 HDR 이미지에 대해, LDR 이미지 범위보다 높은 임의의 동적 범위를 설정할 수 있다. 일부 구현에서, 동적 범위는 또한 원본 HDR 이미지의 범위보다 낮을 수 있다. 예를 들어, 출력 이미지 휘도는 타겟 디스플레이 디바이스의 성능 및/또는 기타 기준에 따라 스케일링될 수 있거나, 예를 들어 시청자에게 시각적으로 불편하거나 피로감을 줄 수 있는 이미지의 디스플레이 밝기를 줄이기 위해 원본 HDR 이미지보다 낮게 및/또는 타겟 디스플레이 디바이스의 최대 성능보다 낮게 스케일링될 수 있다. 예를 들어, 피로 감소 알고리즘과 해당 알고리즘을 구현하는 디바이스와 통신하는 하나 이상의 광 센서가 디스플레이 디바이스 주변의 주변광, 하루 중 시간 등과 같은 다양한 인자 중 하나 이상을 감지하여 출력 이미지에 대한 감소된 동적 범위 또는 감소된 최대 휘도를 결정하는데 사용될 수 있다. 예를 들어, 출력 이미지의 감소된 휘도 레벨은 본 명세서의 일부 구현에 대해 설명된 바와 같이 HDR 이미지를 결정하는데 사용되는 복구 맵 값 및/또는 디스플레이 계수를 스케일링함으로써(예를 들어, 위에 표시된 예시적인 방정식에서 range_scaling_factor 및/또는 디스플레이 계수를 스케일링함으로써) 획득될 수 있다. 또 다른 예에서, 디바이스는 (예를 들어, 높은 디스플레이 밝기를 피함으로써) 배터리 전원 레벨이 임계 레벨보다 낮고 배터리 전원이 보존되어야 한다고 결정할 수 있으며, 이 경우 디바이스는 원본 HDR 이미지의 밝기보다 낮은 밝기로 HDR 이미지를 디스플레이한다.
일부 구현에서, LDR 이미지의 휘도는 예를 들어 타겟 디스플레이 디바이스가 원본 HDR 이미지보다 더 큰 동적 범위를 갖는 경우 원본 HDR 이미지의 동적 범위보다 더 크게(예를 들어 더 높게) 스케일링될 수 있다. 출력 HDR 이미지의 동적 범위는 원본 HDR 이미지의 동적 범위나 임의의 특정한 높은 동적 범위로 제한되지 않는다. 일부 예에서, 출력 HDR 이미지의 최대 동적 범위는 원본 HDR 이미지의 최대 동적 범위보다 낮을 수 있고 및/또는 타겟 출력 디바이스의 최대 동적 범위보다 낮을 수 있다.
일부 구현에서, 출력 HDR 이미지의 디스플레이는 더 낮은 휘도 레벨로부터 출력 HDR 이미지의 전체(최대) 휘도 레벨(위에서 설명한 바와 같이 결정된 최대 휘도 레벨)까지 점진적으로 스케일링될 수 있다. 예를 들어, 점진적인 스케일링은 2-4초(일부 구현에서는 사용자가 구성할 수 있음)와 같은 특정 기간 동안 수행될 수 있다. 점진적인 스케일링은 낮은 휘도를 디스플레이(예를 들어, LDR 이미지 디스플레이)한 후 높은 휘도의 HDR 이미지를 디스플레이할 때 밝기가 갑자기 크게 증가하여 발생할 수 있는 사용자 불편을 방지할 수 있다. LDR 이미지로부터 해당 이미지의 HDR 버전으로의 점진적인 스케일링은 예를 들어 LDR 이미지를 이미지의 HDR 버전으로 점진적으로 밝게 하기 위해 여러 단계로 본 명세서에 설명된 바와 같이 HDR 이미지를 결정하는데 사용된 복구 맵 값 및/또는 디스플레이 계수를 스케일링함으로써 수행될 수 있다. 예를 들어, range_scaling_factor 및/또는 display_factor는 위에 표시된 방정식에서 스케일링될 수 있다. 다른 구현에서는, 일정 기간에 걸쳐 점진적으로 더 높은 동적 범위의 중간 이미지를 획득하기 위해 다수의 스케일링 동작이 연속적으로 수행될 수 있다. 본 명세서의 HDR 포멧에 대해 설명된 로컬 톤 매핑 대신 위에 설명한 전역 톤 매핑 기술을 사용하여 LDR 이미지를 HDR 이미지로 스케일링하는 다른 HDR 이미지 포맷은 이러한 점진적인 스케일링을 수행할 때 디스플레이 품질이 저하되거나 점진적인 스케일링을 지원하지 않을 수 있다.
일부 예에서, HDR 이미지 휘도의 점진적인 스케일링은 특정 디스플레이 조건에 대해 수행되거나 트리거될 수 있다. 이러한 조건은 예를 들어 디스플레이 디바이스에 의해 LDR 이미지가 디스플레이된 직후에 출력 HDR 이미지가 디스플레이되는 경우를 포함할 수 있다. 일부 예에서는, LDR 이미지의 그리드가 디스플레이될 수 있으며, 사용자는 선택된 이미지의 HDR 버전의 디스플레이로 화면을 채우기 위해 이러한 이미지 중 하나를 선택한다(여기서 HDR 이미지는 전술한 바와 같이 관련 이미지 컨테이너의 복구 요소에 기초하여 결정될 수 있음). LDR 이미지 디스플레이로부터 HDR 이미지 디스플레이로 변경할 때 밝기의 갑자스런 증가를 방지하기 위해, HDR 이미지는 처음에는 LDR 이미지의 낮은 휘도 레벨로 디스플레이되고, 점진적으로 업데이트될 수 있다. 예를 들어 더 높은 동적 범위로 이미지 컨텐츠를 점진적으로 디스플레이하고 최대 휘도 레벨까지 증분을 증가시킨(예를 들어, 페이드인 및 페이드아웃 애니메이션). 또 다른 예에서, 점진적인 스케일링을 트리거하기 위한 디스플레이 조건은 본 명세서에 설명된 바와 같이 (예를 들어, 디바이스 주위의 주변 저조도 레벨에 기초하여) 낮은 레벨로 설정되는 전체 화면 밝기를 포함할 수 있다. 예를 들어, 전체 화면 밝기는 HDR 휘도의 점진적인 스케일링을 트리거하기 위해 특정 임계 레벨보다 낮은 휘도 레벨을 가질 수 있다.
일부 경우 또는 조건에서, 예를 들어, 하나 이상의 HDR 이미지가 디스플레이되고 출력 HDR 이미지로 대체되는 경우 출력 HDR 이미지는 점진적인 스케일링 없이 최대 휘도로 즉시 디스플레이될 수 있다. 예를 들어, 제1 HDR 이미지가 디스플레이된 후 제2 HDR 이미지가 디스플레이되는 경우, 사용자는 이미 제1 HDR 이미지의 증가된 휘도를 보는데 익숙하므로 제2 HDR 이미지는 최대 휘도로 즉시 디스플레이될 수 있다.
일부 구현에서, 출력 이미지(예를 들어, LDR 또는 HDR 출력 이미지)의 디스플레이 후에, 출력 이미지의 디스플레이를 제공하는 디바이스는 예를 들어 디스플레이의 동적 범위를 디스플레이 디바이스 및/또는 원본 HDR 이미지의 최대 동적 범위까지 증가시키거나 줄이기 위해 출력 이미지의 디스플레이를 수정하도록 지시하는 사용자(또는 다른 소스, 예를 들어 다른 디바이스)로부터 사용자 입력을 수신할 수 있다. 예를 들어, 디스플레이를 수정하는 사용자 입력을 수신하는 것에 응답하여, 디바이스는 사용자 입력에 따라 (위에서 설명한) 디스플레이 계수를 수정할 수 있으며, 이로 인해 디스플레이된 출력 이미지의 동적 범위가 변경된다. 일부 예에서, 사용자가 동적 범위를 감소시키는 경우, 디스플레이 계수는 해당 양만큼 감소될 수 있고 결과적으로 더 낮은 동적 범위로 출력 이미지가 디스플레이될 수 있다. 이러한 디스플레이 변경은 사용자 입력에 따라 실시간으로 제공될 수 있다.
일부 구현에서, 출력 이미지의 디스플레이 이후, 출력 이미지의 디스플레이를 제공하는 디바이스는 출력 이미지를 수정하거나 편집하도록 지시하는 입력, 예를 들어 사용자 또는 다른 소스(예를 들어, 다른 디바이스)로부터의 입력을 수신할 수 있다. 일부 구현에서, 복구 맵은 이러한 수정 후에 폐기될 수 있다. 예를 들어, 이것은 더 이상 LDR 이미지에 적절하게 적용되지 않을 수 있다. 일부 구현에서는 이러한 수정 후에도 복구 맵이 보존될 수 있다. 일부 구현에서, 복구 맵은 LDR 이미지의 수정된 버전을 반영하기 위해 출력 이미지에 대한 수정에 기초하여 업데이트될 수 있다.
일부 예에서, 수정이 HDR 디스플레이에서 및/또는 HDR 인식 편집 애플리케이션 프로그램을 통해 사용자에 의해 수행되면, 그 수정의 특성은 더 큰 동적 범위에서 알려지고 복구 맵은 편집된 이미지에 기초하여 결정될 수 있다. 예를 들어, 일부 구현에서, 이미지 편집 인터페이스에 대한 이미지 로드 시간에, 복구 맵은 전체(full) 해상도 이미지로 디코딩되어 편집기에 알파 채널, 기타 채널 또는 출력 이미지와 관련된 데이터로 제시될 수 있다. 예를 들어, 복구 맵은 편집기에서 이미지 채널 목록의 추가 채널로 디스플레이될 수 있다. LDR 이미지와 HDR 출력 이미지는 모두 편집기에 디스플레이되어 두 버전의 이미지 수정 사항을 시각화할 수 있다. 사용자가 편집기의 툴(도구)을 사용하여 이미지를 편집하면, 복구 맵과 LDR 이미지(기본 이미지)에 대해 해당 편집이 이루어진다. 일부 예에서, 사용자는 이미지에 대해 RGB를 편집할지 RGBA(적색 녹색 청색 알파)를 편집할지 여부를 결정할 수 있다. 일부 구현에서, 사용자는 복구 맵(예를 들어, 알파 채널)을 수동으로 편집하고, 디스플레이된 LDR 이미지가 동일하게 유지되는 동안 디스플레이된 HDR 이미지 변경을 볼 수 있다.
일부 구현에서, 범위 스케일링 계수를 더 높거나 더 낮게 조정할 수 있는 전체 동적 범위 제어가 이미지 편집 인터페이스에 제공될 수 있다. 발췌(cropping), 리샘플링 등과 같은 이미지 편집 동작으로 인해 알파 채널이 RGB 채널과 동일한 방식으로 업데이트될 수 있다. 이미지 저장시에, LDR 이미지는 이미지 컨테이너에 다시 저장될 수 있다. 저장된 LDR 이미지는 인터페이스에서 편집되었을 수 있고, 편집된 HDR 이미지로부터 로컬 톤 매핑을 통해 생성되거나 각 픽셀에서 복구 맵에 의해 스케일링된(예를 들어, 분할된) 편집된 HDR 이미지에 기초하여 생성된 새로운 LDR 이미지일 수 있다. 편집된 복구 맵은 이미지 컨테이너에 다시 저장될 수 있다. 다양한 구현에서, 이러한 인코딩이 사용되는 경우 복구 맵은 양방향 그리드로 다시 처리될 수 있거나, 예를 들어 이미지에 대한 추가 편집이 수행되어야 하는 경우에는 더 큰 저장 요구 사항으로 이미지와 복구 맵이 무손실로 저장될 수 있다.
일부 구현에서, 편집기나 임의의 다른 프로그램은 LDR 이미지와 설명된 이미지 포맷의 복구 맵을 표준 HDR 이미지(예를 들어, 10비트 HDR AVIF 이미지 또는 다른 HDR 포멧의 이미지)로 변환할 수 있다.
다양한 구현에서, 방법(200, 300, 400 및/또는 500)의 다양한 블록은 결합되거나, 다수의 블록으로 분할되거나, 병렬로 수행되거나, 비동기적으로 수행될 수 있다. 일부 구현에서, 이들 방법의 하나 이상의 블록은 수행되지 않을 수도 있고, 이들 도면에 도시된 것과 다른 순서로 수행될 수도 있다. 예를 들어, 다양한 구현에서, 도 2의 블록(210 및 212) 및/또는 도 3의 블록(302 및 304)은 서로 다른 순서로 또는 병렬로 수행될 수 있다. 방법(200, 300, 400 및/또는 500) 또는 그 일부는 추가 입력을 사용하여 여러 번 반복될 수 있다. 예를 들어, 일부 구현에서, 방법(200)은 하나 이상의 새로운 이미지가 방법을 수행하는 디바이스에 의해 수신되고 및/또는 사용자의 이미지 라이브러리에 저장될 때 수행될 수 있다.
일부 구현에서, HDR 이미지와 LDR 이미지는 위에서 설명한 그들의 개별 역할을 반대로 할 수 있다. 예를 들어, 원본 HDR 이미지는 HDR 이미지보다 낮은 동적 범위를 갖는 원본 LDR 이미지 대신 이미지 컨테이너에 (예를 들어, 블록(218)에서 기본 이미지로서) 저장될 수 있다. HDR의 동적 범위보다 낮은 낮은 동적 범위만 디스플레이할 수 있는 LDR 디스플레이 디바이스에 대한 기본 HDR 이미지로부터 도출된 출력 LDR 이미지를 결정하는 방법을 나타내는 복구 맵이 결정되어 이미지 컨테이너에 저장될 수 있다. 복구 맵에는 기본 HDR 이미지와 원본 LDR 이미지를 기반으로 하는 이득 및/또는 스케일링 계수가 포함될 수 있으며, 여기서 원본 LDR 이미지는 일부 구현에서 위에 설명된 것과 유사하게 톤 매핑된 이미지(또는 HDR 이미지의 범위 변환)일 수 있다.
설명된 구현 중 일부를 사용하면 전체 이미지에 대한 전역 또는 일반 톤 매핑을 제공하는 현재 기술(예를 들어, HLG/PQ 전송 함수)의 제한 없이, HDR 이미지를 제공하는 애플리케이션이 HDR 이미지의 톤 매핑에 기초하여 더 높은 품질의 LDR 이미지를 획득하고 출력하도록 할 수 있다. 전역 또는 일반 톤 매핑을 적용하지 않고, 본 명세서에 설명된 복구 맵 기술을 사용하여 제공되는 로컬 톤 매핑은, 이미지를 공유하거나 LDR 이미지만 지원하는 서비스나 애플리케이션에 이미지를 업로드하는 등의 용도로 HDR 이미지로부터 LDR 이미지로 더 높은 충실도로 변환할 수 있다.
일부 구현에서, 본 명세서에 설명된 HDR 이미지와 같은 HDR 이미지의 디스플레이를 위해 휘도 제어가 제공될 수 있다. HDR 휘도 제어는 HDR 이미지가 디스플레이 디바이스에 의해 디스플레이되는 최대 휘도(예를 들어, 밝기)를 지정하기 위해 디바이스 사용자에 의해 조정될 수 있다. 일부 구현에서, HDR 이미지의 최대 휘도는 HDR 이미지의 디스플레이된 픽셀의 평균 휘도의 최대값으로 결정될 수 있는데, 그 이유는 이러한 평균이 사용자에게 인지된 이미지 밝기를 나타낼 수 있기 때문이다. 다른 구현에서, 최대 휘도는 HDR 이미지의 가장 밝은 픽셀의 최대값, HDR 이미지의 하나 이상의 특정 픽셀의 최대값(또는 이러한 특정 픽셀의 평균의 최대값)으로 결정될 수 있고. 및/또는 HDR 이미지의 하나 이상의 다른 특성에 기초하여 결정될 수 있다. 휘도 제어가 HDR 이미지의 디스플레이 가능한 최대 휘도보다 낮은 값으로 설정된 경우, 디바이스는 출력 HDR 이미지의 최대 휘도를 휘도 제어에 기초하는 더 낮은 휘도 레벨로 줄인다. 이를 통해 예를 들어, 고휘도 HDR 이미지의 눈부심으로 인한 불편함이나 피로를 방지하기 위해 및/또는 고휘도 HDR 이미지와 HDR 이미지 외부의 디스플레이 화면의 다른 컨텐츠(예를 들어, 낮은 휘도로 디스플레이될 수 있는 LDR 이미지, 사용자 인터페이스 요소) 사이의 대비를 줄이기 위해, 사용자가 더 낮은 최대 휘도 레벨을 선호하는 경우 디스플레이된 HDR 이미지의 최대 휘도를 조정할 수 있다. 일부 경우, HDR 이미지의 최대 휘도 레벨을 낮추면 디스플레이의 낮은 밝기로 인해 디스플레이를 제공하는 디바이스의 배터리 전력 소비를 줄일 수 있다.
예를 들어, HDR 휘도 제어는 디바이스에서 실행되고 HDR을 디스플레이하는 애플리케이션에 대한 HDR 이미지 휘도를 제어하는 디바이스에 의해 제공되는(예를 들어, 디바이스에서 실행되는 운영 체제에 의해 제공되는) 전역 또는 시스템 휘도 제어로서 구현될 수 있다. 일부 예에서, 휘도 제어는 디바이스에서 실행되는 모든 애플리케이션, 디바이스에서 실행되는 특정 유형의 모든 애플리케이션(예를 들어, 이미지 보기 및 이미지 편집 애플리케이션) 및/또는 사용자에 의해 지정된 특정 애플리케이션에 적용될 수 있다. 이를 통해 사용자는 예를 들어 디스플레이된 각 개별 HDR 이미지에 대한 휘도를 조정할 필요 없이, 디바이스에 디스플레이되는 모든(또는 많은) HDR 이미지에 대해 단일 휘도 조정을 지정할 수 있다. 이러한 시스템 휘도 제어는 디바이스에서 실행되는 모든 애플리케이션의 디스플레이 일관성을 제공할 수 있으며 디스플레이되는 HDR 이미지의 최대 휘도에 대해 사용자에게 더 많은 제어 기능을 제공할 수도 있다. 일부 구현에서, HDR 휘도 제어는 예를 들어 접근성 제어, 사용자 선호도정, 사용자 설정 등과 같은 디바이스의 다른 시스템 제어와 함께 구현될 수 있다. 시스템 휘도 제어에 의해 설정된 값은 해당 이미지를 디스플레이하는데 사용되는 임의의 다른 스케일링 계수(예를 들어, 위에서 설명한 최대 디스플레이 디바이스 휘도에 기초한 디스플레이 계수, 이미지에 대한 개별 휘도 설정 등) 외에도 HDR 이미지 출력의 출력을 조정하는데 사용할 수 있다. .
일부 예에서, 시스템 휘도 제어는 예를 들어 디스플레이 디바이스에 의한 HDR 이미지에 대한 최대 휘도 값 또는 최대 디스플레이 가능한 휘도의 백분율을 나타내기 위해 사용자에 의해 조정될 수 있는 값 또는 슬라이더로 구현될 수 있다(예를 들어, 여기서 최대 휘도는 HDR 이미지 픽셀의 평균 휘도의 최대값, HDR 이미지의 가장 밝은 픽셀 또는 특정 픽셀의 최대값, 또는 하나 이상의 다른 이미지 특성에 기초한 최대값으로 결정될 수 있다). 예를 들어 사용자가 휘도 제어를 70%로 설정한 경우, HDR 이미지는 최대 휘도의 70%(예를 들어 전술한 바와같이 최대 휘도를 결정하는데 사용되는 경우 디스플레이 디바이스의 최대 휘도의 70%)로 디스플레이될 수 있다. 일부 구현에서, 시스템 휘도 제어는 사용자가 서로 다른 화면 휘도에 대해 서로 다른 최대 HDR 이미지 휘도를 지정할 수 있도록 허용할 수 있다. 예를 들어, 전체 화면에 더 높은 화면 휘도로 컨텐츠가 디스플레이되는 경우, 전체 화면 휘도와 HDR 이미지 휘도 사이에 대비가 많지 않기 때문에 최대 HDR 이미지 휘도는 90% 또는 100%와 같이 더 높을 수 있다. 낮은 화면 휘도에서는 전체 화면 휘도와 HDR 이미지 휘도 사이의 대비를 줄이기 위해 최대 HDR 이미지 휘도를 50% 또는 60%와 같이 더 낮출 수 있다. 일부 구현에서, 시스템 휘도 제어는 최대 SDR 이미지 휘도에 상대적인 (예를 들어, 슬라이더 또는 기타 인터페이스 제어를 통한) 설정으로 제공될 수 있다. 예를 들어, 이 설정은 최대 HDR 휘도 값을 최대 SDR 이미지 휘도의 N배 값으로 설정할 수 있으며, 여기서 N은 이미지를 디스플레이하는데 사용되는 디스플레이 디바이스의 최대 휘도를 기반으로 하는 설정 가능한 최대 값을 갖는다. 일부 실시예에서, 설정 값 1은 SDR(기본) 이미지의 최대 휘도를 나타낼 수 있고, 최대값인 설정값 또는 휘도 제어 설정은 디스플레이 디바이스의 최대 휘도로 디스플레이함을 나타낼 수 있다.
일부 구현에서, HDR 이미지 휘도에 대한 이러한 변수 설정은 사용자 인터페이스 컨트롤을 통해 입력할 수 있다. 예를 들어, 사용자는 가변 최대 HDR 휘도 대 현재 화면 휘도를 갖는 곡선을 정의할 수 있다. 일부 구현에서, 다수의 미리 결정된 HDR 휘도 구성이 사용자 인터페이스에 제공될 수 있고, 사용자는 디바이스에서 사용하기 위해 이러한 구성 중 하나를 선택할 수 있다. 예를 들어, 각 구성은 화면 휘도 값의 특정 범위와 관련된 다양한 최대 HDR 휘도 값 세트를 제공할 수 있다. 일부 구현에서, 사용자에 의해 선택된 경우 HDR 이미지가 LDR 휘도로 디스플레이되도록 HDR 휘도를 제거하는 토글 컨트롤이 제공될 수 있다. 예를 들어, 토글이 사용자에 의해 선택되면 관련 복구 맵 또는 복구 요소(본 명세서에 설명됨)가 무시될 수 있으며 기본 이미지가 디스플레이된다.
도 6은 높은 동적 범위를 갖는 이미지(600)의 예시적인 근사치를 도시한 것이다(HDR 이미지의 전체 동적 범위는 이 표현에서 디스플레이될 수 없으며, 예를 들어, HDR 장면의 LDR 묘사이다). 예를 들어, HDR 이미지(600)는 HDR 이미지를 캡처할 수 있는 카메라에 의해 캡처되었을 수 있다. 이미지(600)에는 이미지 영역(602, 604, 606)이 자세히 디스플레이되어 있으며 더 큰 동적 범위를 통해 이러한 영역을 인간 관찰자에게 자연스럽게 나타나는 것처럼 묘사할 수 있다.
도 7은 표준 JPEG 이미지의 낮은 동적 범위와 같이 HDR 이미지(600)보다 낮은 동적 범위를 갖는 LDR 이미지(700)의 표현의 예를 도시한다. LDR 이미지(700)는 이미지(600 및 700)에서와 동일한 장면을 묘사한다. 예를 들어, 이미지(700)는 카메라에 의해 캡처된 LDR 이미지일 수 있다. 이 예에서, 하늘 이미지 영역(702)은 적절하게 노출되지만 전경 이미지 영역(704 및 706)은 이미지의 범위 압축 부족으로 인해 완전히 노출되지 않는 그림자이므로 이러한 영역이 너무 어두워지고 시각적 세부 정보가 손실된다.
도 8은 LDR 이미지(700)와 유사하게 HDR 이미지(600)보다 낮은 동적 범위를 갖고 이미지(600 및 700)에서와 동일한 장면을 묘사하는 이미지(800)의 또 다른 예이다. 예를 들어, 이미지(800)는 카메라에 의해 캡처된 LDR 이미지일 수 있다. 이 예에서, 이미지의 범위 압축 부족으로 인해, 하늘 이미지 영역(802)은 과다 노출되어 세부 묘사가 희미해지는 반면, 전경 이미지 영역(804 및 806)은 적절하게 노출되고 적절한 세부 사항을 포함한다.
도 9는 범위 압축된 LDR 이미지(900)의 예이다. 예를 들어, 이미지(900)는 HDR 이미지(600)로부터 매핑된 로컬 톤일 수 있다. 로컬 톤 매핑은 다양한 톤 매핑 기술을 사용하여 수행될 수 있다. 예를 들어, 이미지(700)의 그림자는 이미지의 가장자리의 대비를 유지하면서 휘도가 증가할 수 있다. 따라서, 이미지(900)는 이미지(600)보다 낮은 동적 범위를 갖지만(이 도면에서는 인식할 수 없음), 도 7의 이미지(700) 및 도 8의 이미지(800)보다 이미지의 더 많은 부분에 걸쳐 세부 사항을 보존할 수 있다. 이미지(900)와 같은 범위-압축된 이미지는 본 명세서에 설명된 이미지 포맷의 LDR 이미지로 사용될 수 있으며, 제공된 HDR 이미지의 LDR 버전으로 상기 설명된 이미지 컨테이너에 포함될 수 있다.
도 10은 본 명세서에 설명된 하나 이상의 특징을 구현하는데 사용될 수 있는 예시적인 디바이스(1400)의 블록도이다. 일 예에서, 디바이스(1000)는 클라이언트 디바이스, 예를 들어 도 1에 도시된 클라이언트 디바이스(120-126) 중 임의의 디바이스를 구현하는데 사용될 수 있다. 대안적으로, 디바이스(1000)는 서버 디바이스, 예를 들어 서버 디바이스(104)를 구현할 수 있다. 일부 구현에서, 디바이스(1000)는 클라이언트 디바이스, 서버 디바이스, 또는 클라이언트 디바이스와 서버 디바이스 모두를 구현하는데 사용될 수 있다. 디바이스(1000)는 전술한 바와 같이 임의의 적절한 컴퓨터 시스템, 서버, 또는 기타 전자 디바이스 또는 하드웨어 디바이스일 수 있다.
본 명세서에 설명된 하나 이상의 방법은 예를 들어 임의의 유형의 컴퓨팅 디바이스에서 실행될 수 있는 독립형 컴퓨터 프로그램, 웹 페이지를 갖는 웹 애플리케이션, 웹 브라우저에서 실행되는 프로그램, 모바일 컴퓨팅 디바이스(예를 들어, 휴대폰, 스마트폰, 태블릿 컴퓨터, 웨어러블 디바이스(손목시계, 완장, 보석류, 모자, 가상 현실 고글 또는 안경, 증강 현실 고글 또는 안경, 헤드 마운트 디스플레이 등), 랩탑 컴퓨터에서 실행되는 모바일 애플리케이션("앱")으로서 여러 환경 및 플랫폼에서 작동할 수 있다. 일 예에서, 클라이언트/서버 아키텍처가 사용될 수 있는데, 예를 들어 (클라이언트 디바이스로서) 모바일 컴퓨팅 디바이스는 사용자 입력 데이터를 서버 디바이스에 보내고 서버로부터 출력을 위한(예를 들어 디스플레이를 위한) 최종 출력 데이터를 수신한다. 다른 예에서, 모든 계산은 모바일 컴퓨팅 디바이스의 모바일 앱(및/또는 다른 앱) 내에서 수행될 수 있다. 다른 예에서, 계산은 모바일 컴퓨팅 디바이스와 하나 이상의 서버 디바이스 간에 분할될 수 있다.
일부 구현에서, 디바이스(1000)는 프로세서(1002), 메모리(1004) 및 입/출력(I/O) 인터페이스(1006)를 포함한다. 프로세서(1002)는 프로그램 코드를 실행하고 디바이스(1000)의 기본 동작을 제어하기 위한 하나 이상의 프로세서 및/또는 처리 회로일 수 있다. "프로세서"에는 데이터, 신호 또는 기타 정보를 처리하는 적절한 하드웨어 시스템, 메커니즘 또는 구성 요소가 포함된다. 프로세서는 하나 이상의 코어(예를 들어, 단일 코어, 듀얼 코어 또는 멀티 코어 구성)를 갖춘 범용 중앙 처리 장치(CPU), 다중 처리 장치(예를 들어, 다중 프로세서 구성), 그래픽 처리 장치(GPU), 필드 프로그램 가능 게이트 어레이(FPGA), 주문형 집적 회로(ASIC), CPLD(복합 프로그래밍 가능 논리 장치), 기능을 달성하기 위한 전용 회로(예를 들어, 하나 이상의 하드웨어 이미지 디코더 및/또는 비디오 디코더), 신경망 모델 기반 처리, 신경 회로, 행렬 계산(예를 들어, 행렬 곱셈)에 최적화된 프로세서 또는 기타 시스템을 구현하기 위한 특수 목적 프로세서를 갖춘 시스템을 포함할 수 있다. 일부 구현에서, 프로세서(1002)는 신경망 처리를 구현하는 하나 이상의 코프로세서를 포함할 수 있다. 일부 구현에서, 프로세서(1002)는 확률적 출력을 생성하기 위해 데이터를 처리하는 프로세서일 수 있는데, 예를 들어, 프로세서(1002)에 의해 생성된 출력은 부정확할 수 있거나 예상 출력의 범위 내에서 정확할 수 있다. 처리는 특정 지리적 위치로 제한되거나 시간적 제한이 있을 필요가 없다. 예를 들어, 프로세서는 "실시간", "오프라인", "배치 모드" 등에서 해당 기능을 수행할 수 있다. 처리의 일부는 서로 다른(또는 동일한) 처리 시스템에 의해 서로 다른 시간과 위치에서 수행될 수 있다. 컴퓨터는 메모리와 통신하는 모든 프로세서일 수 있다.
메모리(1004)는 일반적으로 프로세서(1002)에 의한 액세스를 위해 디바이스(1000)에 제공되며, 프로세서에 의한 실행을 위한 명령들을 저장하는데 적합하고, 프로세서(1002)와 별도로 위치하거나 프로세서와 통합된 RAM, ROM, 전기적으로 소거 가능한 판독 전용 메모리(EEPROM). 플래시 메모리 등과 같은 임의의 적절한 프로세서 판독 가능 저장 매체일 수 있다. 메모리(1004)는 운영 체제(1008), 이미지 애플리케이션(1010)(예를 들어, 도 1의 이미지 애플리케이션(106)일 수 있음), 다른 애플리케이션(1012) 및 애플리케이션 데이터(1014)를 포함하여 프로세서(1002)에 의해 서버 디바이스(1000)에서 작동하는 소프트웨어를 저장할 수 있다. 다른 애플리케이션(1012)은 데이터 디스플레이 엔진, 웹 호스팅 엔진, 지도 애플리케이션, 이미지 디스플레이 엔진, 알림 엔진, 소셜 네트워킹 엔진, 미디어 디스플레이 애플리케이션, 통신 애플리케이션, 웹 호스팅 엔진 또는 애플리케이션, 미디어 공유 애플리케이션 등과 같은 애플리케이션을 포함할 수 있다. 일부 구현에서, 이미지 애플리케이션(1010)은 프로세서(1002)가 본 명세서에 설명된 기능, 예를 들어 도 2-5 및/또는 도 10-12의 방법 중 일부 또는 전부를 수행할 수 있게 하는 명령들을 포함할 수 있다. 일부 구현에서, 본 명세서에 설명된 포멧(복구 맵, 메타데이터 등 포함)으로 저장된 이미지는 애플리케이션 데이터(1014) 또는 메모리(1004) 및/또는 디바이스(1000)와 통신하는 하나 이상의 다른 디바이스의 다른 저장 디바이스에 다른 데이터로 저장될 수 있다. 일부 예에서, 이미지 애플리케이션(1010) 또는 메모리(1004)에 저장된 기타 애플리케이션은 이미지 인코딩/비디오 인코딩 및 컨테이너 생성 모듈(들)(예를 들어, 도 2-4의 방법을 수행함) 및/또는 이미지 디코딩/비디오 디코딩 모듈(들)(예를 들어, 도 5의 방법을 수행함)을 포함할 수 있거나, 이러한 모듈은 더 적거나 단일 모듈 또는 애플리케이션에 통합될 수 있다.
메모리(1004)의 임의의 소프트웨어는 대안적으로 임의의 다른 적절한 저장 위치 또는 컴퓨터 판독 가능 매체에 저장될 수 있다. 또한, 메모리(1004)(및/또는 다른 연결된 저장 디바이스(들))는 하나 이상의 메시지, 하나 이상의 분류, 전자 백과사전, 사전, 디지털 지도, 동의어 사전, 지식 베이스, 메시지 데이터, 문법, 사용자 선호도 및/또는 본 명세서에 설명된 기능에 사용되는 기타 명령 및 데이터를 저장할 수 있다. 메모리(1004) 및 임의의 다른 유형의 저장소(자기 디스크, 광 디스크, 자기 테이프 또는 기타 유형의 매체)는 "저장소" 또는 "저장 디바이스"로 간주될 수 있다.
I/O 인터페이스(1006)는 서버 디바이스(1000)를 다른 시스템 및 디바이스와 인터페이싱하는 기능을 제공할 수 있다. 인터페이스된 디바이스들은 디바이스(1000)의 일부로 포함될 수도 있고, 별도로 디바이스(1000)와 통신할 수도 있다. 예를 들어, 네트워크 통신 디바이스, 저장 디바이스(예를 들어, 메모리 및/또는 데이터베이스) 및 입력/출력 디바이스는 I/O 인터페이스(1006)를 통해 통신할 수 있다. 일부 구현에서, I/O 인터페이스는 입력 디바이스(키보드, 포인팅 디바이스, 터치스크린, 마이크로폰, 카메라, 스캐너, 센서 등) 및/또는 출력 디바이스(디스플레이 디바이스, 스피커 디바이스, 프린터, 모터 등)와 같은 인터페이스 디바이스에 연결될 수 있다.
I/O 인터페이스(1006)에 연결할 수 있는 인터페이스 디바이스의 일부 예는 컨텐츠, 예를 들어 이미지, 비디오 및/또는 본 명세서에 설명된 애플리케이션의 사용자 인터페이스를 디스플레이하는데 사용될 수 있는 하나 이상의 디스플레이 디바이스(1020)를 포함할 수 있다. 디스플레이 디바이스(1020)는 로컬 연결(예를 들어, 디스플레이 버스) 및/또는 네트워크 연결을 통해 디바이스(1000)에 연결될 수 있으며 임의의 적합한 디스플레이 디바이스일 수 있다. 디스플레이 디바이스(1020)는 LCD, LED 또는 플라즈마 디스플레이 스크린, CRT, 텔레비전, 모니터, 터치스크린, 3-D 디스플레이 스크린 또는 기타 시각적 디스플레이 디바이스와 같은 임의의 적절한 디스플레이 디바이스를 포함할 수 있다. 디스플레이 디바이스(1020)는 또한 입력 디바이스, 예를 들어 터치스크린 입력 디바이스의 역할을 할 수도 있다. 예를 들어, 디스플레이 디바이스(1020)는 모바일 디바이스에 제공되는 평면 디스플레이 스크린, 안경 또는 헤드셋 디바이스에 제공되는 다중 디스플레이 스크린, 또는 컴퓨터 디바이스용 모니터 스크린일 수 있다.
I/O 인터페이스(1006)는 다른 입력 및 출력 디바이스와 인터페이스할 수 있다. 일부 예에는 이미지를 캡처하거나 제스처를 감지할 수 있는 하나 이상의 카메라가 포함된다. 일부 구현은 (예를 들어, 캡처된 이미지, 음성 명령 등의 일부로서) 소리를 캡처하기 위한 마이크로폰, 제스처 감지를 위한 레이더 또는 기타 센서, 소리 출력을 위한 오디오 스피커 디바이스 또는 기타 입력 및 출력 디바이스를 제공할 수 있다.
설명의 편의를 위해, 도 10은 프로세서(1002), 메모리(1004), I/O 인터페이스(1006) 및 소프트웨어 블록(1008-1014) 각각에 대해 하나의 블록을 도시한다. 이러한 블록은 하나 이상의 프로세서 또는 처리 회로, 운영 체제, 메모리, I/O 인터페이스, 애플리케이션 및/또는 소프트웨어 모듈을 나타낼 수 있다. 다른 구현에서, 디바이스(1000)는 도시된 구성요소 모두를 갖지 않을 수 있고 및/또는 본 명세서에 도시된 것 대신에 또는 이에 추가하여 다른 유형의 요소를 포함하는 다른 요소를 가질 수 있다. 일부 구성 요소는 본 명세서의 일부 구현에 설명된 블록 및 동작을 수행하는 것으로 설명되어 있지만, 환경(100), 디바이스(1000), 유사한 시스템, 또는 그러한 시스템과 연관된 임의의 적합한 프로세서 또는 프로세서들의 임의의 적합한 구성요소 또는 구성요소들의 조합이 설명된 블록 및 동작을 수행할 수 있다.
본 명세서에 설명된 방법은 컴퓨터에서 실행될 수 있는 컴퓨터 프로그램 명령 또는 코드에 의해 구현될 수 있다. 예를 들어, 코드는 하나 이상의 디지털 프로세서(예를 들어, 마이크로폰로프로세서 또는 기타 처리 회로)로 구현될 수 있고, 반도체 또는 솔리드 스테이트 메모리, 자기 테이프, 이동식 컴퓨터 디스켓, RAM, ROM, 플래시 메모리, 강성 자기 디스크, 광 디스크, 솔리드 스테이트 메모리 드라이브 등을 비롯하여 자기, 광학, 전자기 또는 반도체 저장 매체와 같은 비-일시적 컴퓨터 판독 가능 매체(예를 들어, 저장 매체)를 포함하는 컴퓨터 프로그램 제품에 저장될 수 있다. 프로그램 명령은 또한 예를 들어 서버(예를 들어, 분산 시스템 및/또는 클라우드 컴퓨팅 시스템)로부터 전달되는 SaaS(Software as a Service) 형태의 전자 신호에 포함되어 제공될 수 있다. 대안적으로, 하나 이상의 방법은 하드웨어(논리 게이트 등)로 구현되거나 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 예시적인 하드웨어는 프로그램 가능 프로세서(예를 들어, FPGA, 복합 프로그래밍 가능 논리 디바이스), 범용 프로세서, 그래픽 프로세서, ASIC 등일 수 있다. 하나 이상의 방법은 시스템에서 실행되는 애플리케이션의 일부 또는 구성 요소로서 수행되거나, 다른 애플리케이션 및 운영 체제와 함께 실행되는 애플리케이션 또는 소프트웨어로서 수행될 수 있다.
설명이 특정 구현에 관해 설명되었지만, 이러한 특정 구현은 단지 예시일 뿐이며 제한적이지는 않는다. 예시에 도시된 개념은 다른 예시 및 구현에 적용될 수 있다.
위의 설명에 더하여, 사용자는 본 명세서 설명된 시스템, 프로그램 또는 기능이 사용자 정보(예를 들어, 이미지 및/또는 비디오, 소셜 네트워크, 소셜 액션 또는 활동, 직업, 사용자 선호도(예를 들어, 이미지 내의 개체와 관련됨), 또는 사용자의 현재 위치를 포함한 사용자의 미디어 항목에 관한 정보)의 수집을 활성화할 수 있는지 여부와 사용자가 서버로부터 컨텐츠 또는 통신을 전송할 수 있는지 여부에 대해 사용자가 선택할 수 있도록 하는 제어 기능을 제공받을 수 있다. 또한, 특정 데이터는 개인 식별 정보가 제거되도록 저장 또는 사용하기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 신원은 사용자에 대한 개인 식별 정보가 결정될 수 없도록 처리될 수 있거나, 사용자의 지리적 위치는 사용자의 특정 위치가 결정될 수 없도록 위치 정보가 획득된 곳(예를 들어, 도시, 우편 번호 또는 주 수준)에서 일반화될 수 있다. 따라서, 사용자는 자신에 대해 어떤 정보가 수집되고, 해당 정보가 어떻게 사용되며, 어떤 정보가 사용자에게 제공되는지를 제어할 수 있다.
본 개시에 설명된 기능 블록, 동작, 특징, 방법, 디바이스 및 시스템은 당업자에게 알려진 바와 같이 시스템, 디바이스 및 기능 블록의 다양한 조합으로 통합되거나 분할될 수 있다는 점에 유의한다. 임의의 적합한 프로그래밍 언어 및 프로그래밍 기술이 특정 구현의 루틴을 구현하기 위해 사용될 수 있다. 절차적 또는 객체 지향과 같은 다양한 프로그래밍 기술이 사용될 수 있다. 루틴은 단일 처리 디바이스 또는 다중 프로세서에서 실행될 수 있다. 단계, 동작 또는 계산이 특정 순서로 제시될 수 있지만 이 순서는 다른 특정 구현에서 변경될 수 있다. 일부 구현에서, 본 명세서에서 순차적으로 도시된 다수의 단계 또는 동작은 동시에 수행될 수 있다.

Claims (33)

  1. 컴퓨터 구현 방법으로서,
    특정 장면을 묘사하고 제1 동적 범위를 갖는 제1 이미지를 획득하는 단계와;
    특정 장면을 묘사하고 제1 동적 범위와 다른 제2 동적 범위를 갖는 제2 이미지를 획득하는 단계와;
    제1 이미지와 제2 이미지에 기초하여 복구 맵을 생성하는 단계 - 복구 맵은 제1 이미지의 일부와 제2 이미지의 대응하는 일부 사이의 휘도 차이를 인코딩하고, 차이는 제1 이미지의 최대 휘도에 대한 제2 이미지의 최대 휘도의 비율을 포함하는 범위 스케일링 계수에 의해 스케일링됨 - 와; 그리고
    제1 이미지 및 복구 맵을 이미지 컨테이너에 제공하는 단계를 포함하며, 이미지 컨테이너는 제1 이미지에 복구 맵을 적용하는 것에 기초하여 도출된 이미지를 디스플레이하도록 판독 가능하고, 도출된 이미지는 제1 동적 범위와 다른 동적 범위를 갖는 것을 특징으로 하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    제2 동적 범위는 제1 동적 범위보다 크고, 그리고 도출된 이미지의 동적 범위는 제1 동적 범위보다 큰 것을 특징으로 하는 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    이미지 컨테이너는,
    제1 동적 범위를 디스플레이할 수 있는 제1 디스플레이 디바이스에 의해 제1 이미지를 디스플레이하고; 그리고
    제1 동적 범위보다 더 큰 동적 범위를 디스플레이할 수 있는 제2 디스플레이 디바이스에 의해 도출된 이미지를 디스플레이하도록 판독 가능한 것을 특징으로 하는 컴퓨터 구현 방법.
  4. 제2항에 있어서,
    제1 이미지를 획득하는 단계는,
    제2 이미지에 대해 범위 압축을 수행하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    복구 맵을 생성하는 단계는,
    제1 이미지의 개별 픽셀의 휘도에 위도 이득을 적용하면 제2 이미지에 대응하는 픽셀이 생성되도록 휘도 이득을 인코딩하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  6. 제5항에 있어서,
    복구 맵을 생성하는 단계는,
    로그 공간에서 휘도 이득을 인코딩하는 단계를 포함하며, 복구 맵 값은 휘도의 로그 차이를 범위 스케일링 계수의 로그로 나눈 값에 비례하는 것을 특징으로 하는 컴퓨터 구현 방법.
  7. 제5항에 있어서,
    복구 맵을 생성하는 단계는,
    recovery(x, y) = log(pixel_gain(x, y))/log(range scaling factor)에 기초하고, 여기서 recovery(x,y)는 제2 이미지의 픽셀 위치(x, y)에 대한 복구 맵이고, pixel_gain(x,y)는 제1 이미지에 대한 제2 이미지의 위치(x, y)에서의 휘도 비율인 것을 특징으로 하는 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    복구 맵을 생성하는 단계는,
    복구 맵을 양방향 그리드로 인코딩하는 단계를 포함하며, 인코딩은 그리드 셀의 3차원 데이터 구조를 결정하는 것을 포함하고, 각 그리드 셀은 제1 이미지의 다수의 픽셀에 매핑되는 벡터 요소인 것을 특징으로 하는 컴퓨터 구현 방법.
  9. 제1항에 있어서,
    복구 맵을 복구 이미지로 인코딩하는 단계를 더 포함하고,
    이미지 컨테이너에 복구 맵을 제공하는 단계는 이미지 컨테이너에 복구 이미지를 제공하는 단계를 포함하고,
    복구 맵을 복구 이미지로 인코딩하는 단계는 범위 스케일링 계수를 메타데이터로서 복구 이미지로 인코딩하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  10. 제9항에 있어서,
    복구 이미지는 제1 이미지의 화면비와 동일한 화면비를 갖는 것을 특징으로 하는 컴퓨터 구현 방법.
  11. 제1항에 있어서,
    이미지 컨테이너를 획득하는 단계와;
    제2 이미지를 디스플레이 디바이스에 의해 디스플레이하기로 결정하는 단계와;
    도출된 이미지를 획득하기 위해 디스플레이 디바이스의 특정 휘도 출력 및 복구 맵에 기초하여 이미지 컨테이너 내의 제1 이미지의 복수의 픽셀 휘도를 스케일링하는 단계와; 그리고
    스케일링 후, 도출된 이미지가 디스플레이 디바이스에 의해 제1 이미지와 다른 동적 범위를 갖는 출력 이미지로서 디스플레이되게 하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  12. 제11항에 있어서,
    디스플레이 디바이스의 최대 휘도 디스플레이 능력을 결정하는 단계를 더 포함하고,
    복수의 픽셀 휘도를 스케일링하는 단계는 제1 이미지의 하이라이트의 휘도를 최대 휘도 디스플레이 능력 이하의 휘도 레벨까지 증가시키는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  13. 제1항에 있어서,
    제2 동적 범위는 제1 동적 범위보다 낮고, 그리고 도출된 이미지의 동적 범위는 제1 동적 범위보다 낮은 것을 특징으로 하는 컴퓨터 구현 방법.
  14. 제13항에 있어서,
    제2 이미지를 획득하는 단계는,
    제1 이미지에 대해 범위 압축을 수행하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  15. 제13항에 있어서,
    이미지 컨테이너는,
    제1 동적 범위를 디스플레이할 수 있는 제1 디스플레이 디바이스에 의해 제1 이미지를 디스플레이하고; 그리고
    제1 동적 범위보다 낮은 동적 범위만 디스플레이할 수 있는 제2 디스플레이 디바이스에 의해 도출된 이미지를 디스플레이하도록 판독 가능한 것을 특징으로 하는 컴퓨터 구현 방법.
  16. 컴퓨터 구현 방법으로서,
    제1 동적 범위를 갖는 제1 이미지; 및
    제1 이미지의 최대 휘도에 대한 제2 이미지의 최대 휘도의 비율을 포함하는 범위 스케일링 계수에 의해 스케일링된 제1 이미지의 픽셀의 휘도 이득을 인코딩하는 복구 맵을 포함하는,
    이미지 컨테이너를 획득하는 단계 - 제2 이미지는 묘사된 주제의 제1 이미지에 대응하고 제1 동적 범위와 다른 제2 동적 범위를 가짐 - 와;
    제1 이미지 또는 제1 동적 범위와 다른 동적 범위를 갖는 도출된 이미지 중 하나를 디스플레이할지 여부를 결정하는 단계와; 그리고
    제1 이미지를 디스플레이하기로 결정한 것에 응답하여:
    제1 이미지가 디스플레이 디바이스에 의해 디스플레이되게 하는 단계와; 그리고
    도출된 이미지를 디스플레이하기로 결정한 것에 응답하여:
    도출된 이미지의 각각의 대응 픽셀 값을 결정하기 위해 제1 이미지의 픽셀 휘도에 복구 맵의 휘도 이득을 적용하는 단계; 및
    도출된 이미지가 디스플레이 디바이스에 의해 디스플레이되게 하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  17. 제16항에 있어서,
    제2 동적 범위는 제1 동적 범위보다 크고, 도출된 이미지의 동적 범위는 제1 동적 범위보다 큰 것을 특징으로 하는 컴퓨터 구현 방법.
  18. 제17항에 있어서,
    디스플레이 디바이스의 최대 휘도 디스플레이 능력을 결정하는 단계를 더 포함하고,
    제1 이미지를 디스플레이하기로 결정한 것은 디스플레이 디바이스가 제1 동적 범위 이하인 디스플레이 동적 범위만을 디스플레이할 수 있다는 결정에 응답하여 수행되는 것을 특징으로 하는 컴퓨터 구현 방법.
  19. 제17항에 있어서,
    디스플레이 디바이스의 최대 휘도 디스플레이 능력을 결정하는 단계를 더 포함하고,
    도출된 이미지를 디스플레이하기로 결정한 것은 디스플레이 디바이스가 제1 동적 범위보다 더 큰 디스플레이 동적 범위를 디스플레이할 수 있다는 결정에 응답하여 수행되는 것을 특징으로 하는 컴퓨터 구현 방법.
  20. 제17항에 있어서,
    디스플레이 디바이스는 제1 동적 범위보다 더 큰 디스플레이 동적 범위를 디스플레이할 수 있고, 그리고
    복구 맵의 휘도 이득을 적용하는 단계는 도출된 이미지의 픽셀 값의 휘도를 디스플레이 디바이스의 디스플레이 동적 범위에 적응시키는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  21. 제17항에 있어서,
    도출된 이미지의 동적 범위는,
    디스플레이 디바이스의 최대 휘도, 및
    제2 이미지의 동적 범위의 최대 휘도 중 더 작은 최대값을 갖는 것을 특징으로 하는 컴퓨터 구현 방법.
  22. 제17항에 있어서,
    복구 맵의 휘도 이득을 제1 이미지의 픽셀의 휘도에 적용하는 단계는,
    디스플레이 디바이스의 특정 휘도 출력 및 복구 맵에 기초하여 제1 이미지의 휘도를 스케일링하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  23. 제17항에 있어서,
    제1 이미지의 휘도 스케일링은,
    derived_image(x, y) = first_image(x, y) + log(display_factor) * recovery(x,y)에 의해 수행되며,
    여기서 derived_image(x, y)는 도출된 이미지의 로그 공간 버전이고, first_image(x,y)는 이미지 컨테이너로부터 복구된 제1 이미지의 로그 공간 버전이고, display_factor는 디스플레이 디바이스의 범위 스케일링 계수와 최대 디스플레이 휘도 중 최소값이고, recovery(x,y)는 제1 이미지의 픽셀 위치(x,y)에 대한 복구 맵이며, 그리고 범위 스케일링 계수는 제1 이미지의 최대 휘도에 대한 제2 이미지의 최대 휘도의 비율인 것을 특징으로 하는 컴퓨터 구현 방법.
  24. 제16항에 있어서,
    도출된 이미지를 디스플레이하기로 결정한 것에 응답하여, 이미지 컨테이너로부터 범위 스케일링 계수를 디코딩하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  25. 제16항에 있어서,
    이미지 컨테이너에 포함된 복구 이미지로부터 복구 맵을 디코딩하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  26. 제16항에 있어서,
    이미지 컨테이너에 저장된 양방향 그리드로부터 복구 맵을 추출하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  27. 제16항에 있어서,
    제1 이미지 또는 도출된 이미지 중 하나를 디스플레이할지 여부를 결정하는 단계는 서버 디바이스에 의해 수행되며, 상기 결정은 클라이언트 디바이스에 포함되거나 결합된 디스플레이 디바이스의 디스플레이 동적 범위에 기초하며;
    제1 이미지가 디스플레이 디바이스에 의해 디스플레이되게 하는 단계는 클라이언트 디바이스가 제1 이미지를 디스플레이하도록 서버 디바이스로부터 클라이언트 디바이스로 제1 이미지를 전송하는 단계를 포함하고; 그리고
    도출된 이미지가 디스플레이 디바이스에 의해 디스플레이되게 하는 단계는 클라이언트 디바이스가 도출된 이미지를 디스플레이하도록 서버 디바이스로부터 클라이언트 디바이스로 도출된 이미지를 전송하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  28. 제16항에 있어서,
    도출된 이미지가 디스플레이 디바이스에 의해 디스플레이되게 하는 단계는,
    도출된 이미지가 디스플레이되게 하는 디바이스의 시스템 설정에 기초하여 디스플레이된 도출된 이미지의 최대 휘도 레벨을 감소시키는 단계를 포함하고, 시스템 설정은 사용자에 의해 선택되는 것을 특징으로 하는 컴퓨터 구현 방법.
  29. 제16항에 있어서,
    도출된 이미지가 디스플레이 디바이스에 의해 디스플레이되게 하는 단계는,
    휘도 이득을 적용함으로써 상기 도출된 이미지의 픽셀값에 대해 결정된 제2 최대 휘도 레벨보다 낮은 제1 최대 휘도 레벨로 상기 도출된 이미지가 디스플레되게 하는 단계와; 그리고
    특정 기간 동안 상기 도출된 이미지의 제1 최대 휘도 레벨을 제2 최대 휘도 레벨까지 점차적으로 증가시키는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  30. 시스템으로서,
    프로세서; 및
    프로세서에 결합되고 프로세서에 의해 실행될 때 프로세서로 하여금 동작들을 수행하게 하는 명령들을 저장한 메모리를 포함하고, 동작들은,
    제1 동적 범위를 갖는 제1 이미지; 및
    제1 이미지의 픽셀의 휘도 이득을 인코딩하는 복구 맵을 포함하는 이미지 컨테이너를 획득하는 동작과;
    도출된 이미지를 디스플레이 디바이스에 디스플레이하기로 결정하는 동작 - 도출된 이미지는 묘사된 주제의 제1 이미지에 대응하고 제1 동적 범위와 다른 동적 범위를 가짐 - 과; 그리고
    도출된 이미지를 디스플레이 디바이스에 디스플레이하기로 결정한 것에 응답하여:
    도출된 이미지의 각각의 대응 픽셀 값을 결정하도록 제1 이미지의 픽셀 휘도에 복구 맵의 휘도 이득을 적용하는 동작 - 휘도 이득을 적용하는 것은 디스플레이 디바이스의 특정 휘도 출력 및 복구 맵에 기초하여 제1 이미지의 휘도를 스케일링하는 것을 포함함 - 과; 그리고
    도출된 이미지가 디스플레이 디바이스에 의해 디스플레이되게 하는 동작을 포함하는 것을 특징으로 하는 시스템.
  31. 제30항에 있어서,
    도출된 이미지의 동적 범위는 제1 동적 범위보다 크고, 그리고
    동작들은,
    디스플레이 디바이스의 최대 휘도 디스플레이 능력을 결정하는 동작을 더 포함하고,
    도출된 이미지를 디스플레이하기로 결정하는 동작은 디스플레이 디바이스가 제1 동적 범위보다 더 큰 디스플레이 동적 범위를 디스플레이할 수 있다는 결정에 응답하여 수행되는 것을 특징으로 하는 시스템.
  32. 제31항에 있어서,
    도출된 이미지의 동적 범위는,
    디스플레이 디바이스의 최대 휘도, 및
    복구 맵 생성에 사용되는 원본 이미지의 동적 범위의 최대 휘도 중 더 작은 최대값을 갖는 것을 특징으로 하는 시스템.
  33. 제30항에 있어서,
    복구 맵은 제1 이미지의 최대 휘도에 대한 제2 이미지의 최대 휘도의 비율을 포함하는 범위 스케일링 계수에 의해 스케일링되는 제1 이미지의 픽셀의 휘도 이득을 인코딩하고,
    제2 이미지는 묘사된 주제의 제1 이미지에 대응하고 제1 동적 범위와 다른 제2 동적 범위를 갖는 것을 특징으로 하는 시스템.
KR1020237042406A 2022-10-31 2023-05-31 낮은 동적 범위 호환성을 갖는 높은 동적 범위 이미지 포맷 KR20240065212A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202263421155P 2022-10-31 2022-10-31
US63/421,155 2022-10-31
US202363439271P 2023-01-16 2023-01-16
US63/439,271 2023-01-16
PCT/US2023/023998 WO2024096931A1 (en) 2022-10-31 2023-05-31 High dynamic range image format with low dynamic range compatibility

Publications (1)

Publication Number Publication Date
KR20240065212A true KR20240065212A (ko) 2024-05-14

Family

ID=88975497

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237042406A KR20240065212A (ko) 2022-10-31 2023-05-31 낮은 동적 범위 호환성을 갖는 높은 동적 범위 이미지 포맷

Country Status (2)

Country Link
KR (1) KR20240065212A (ko)
WO (1) WO2024097135A1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9277196B2 (en) * 2014-02-19 2016-03-01 DDD IP Ventures, Ltd. Systems and methods for backward compatible high dynamic range/wide color gamut video coding and rendering
US11715184B2 (en) * 2020-09-23 2023-08-01 Apple Inc. Backwards-compatible high dynamic range (HDR) images

Also Published As

Publication number Publication date
WO2024097135A1 (en) 2024-05-10

Similar Documents

Publication Publication Date Title
JP5974128B2 (ja) 高ダイナミック・レンジ画像の発生およびレンダリング
US10692465B2 (en) Transitioning between video priority and graphics priority
TWI690211B (zh) 高動態範圍影像的解碼方法、其處理器非暫態可讀取媒體及電腦程式產品
US11158032B2 (en) Perceptually preserving scene-referred contrasts and chromaticities
US10880549B2 (en) Server-side adaptive video processing
RU2580093C2 (ru) Обработка изображений для изображений с расширенным динамическим диапазоном (hdr)
US9042682B2 (en) Content creation using interpolation between content versions
US20120218442A1 (en) Global alignment for high-dynamic range image generation
Artusi et al. JPEG XT: A compression standard for HDR and WCG images [standards in a nutshell]
CN107888943B (zh) 图像处理
US11715184B2 (en) Backwards-compatible high dynamic range (HDR) images
JPWO2017203942A1 (ja) 画像処理装置、および画像処理方法、並びにプログラム
CN117221512A (zh) 捕获和编辑动态深度图像的技术
CN110770787B (zh) 高效端到端单层逆向显示管理编码
US20190261049A1 (en) Methods for creating and distributing art-directable continuous dynamic range video
CN105430393B (zh) 一种图片处理方法、图片处理装置、图片处理平台以及存储介质
Vo et al. HDR10+ adaptive ambient compensation using creative intent metadata
KR20240065212A (ko) 낮은 동적 범위 호환성을 갖는 높은 동적 범위 이미지 포맷
WO2024096931A1 (en) High dynamic range image format with low dynamic range compatibility
CN116368513A (zh) 基于创作意图元数据和环境光的hdr色调映射
Ahmad et al. Pragmatic Manifestation of High Dynamic Range Imaging–A Review