KR20160051821A - 로컬 톤 곡선 계산을 사용한 이미지 톤 조정 - Google Patents

로컬 톤 곡선 계산을 사용한 이미지 톤 조정 Download PDF

Info

Publication number
KR20160051821A
KR20160051821A KR1020167008143A KR20167008143A KR20160051821A KR 20160051821 A KR20160051821 A KR 20160051821A KR 1020167008143 A KR1020167008143 A KR 1020167008143A KR 20167008143 A KR20167008143 A KR 20167008143A KR 20160051821 A KR20160051821 A KR 20160051821A
Authority
KR
South Korea
Prior art keywords
image
values
luminance
block
tone
Prior art date
Application number
KR1020167008143A
Other languages
English (en)
Other versions
KR101792809B1 (ko
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 애플 인크.
Publication of KR20160051821A publication Critical patent/KR20160051821A/ko
Application granted granted Critical
Publication of KR101792809B1 publication Critical patent/KR101792809B1/ko

Links

Images

Classifications

    • 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
    • G06T5/94Dynamic range modification of images or parts thereof based on local image properties, e.g. for local contrast enhancement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/646Circuits for processing colour signals for image enhancement, e.g. vertical detail restoration, cross-colour elimination, contour correction, chrominance trapping filters
    • G06T5/008
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/40Image enhancement or restoration using histogram techniques
    • G06T7/408
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • 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/20004Adaptive image processing
    • G06T2207/20012Locally adaptive
    • 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/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
    • 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/20021Dividing image into blocks, subimages or windows
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Image Processing (AREA)
  • Picture Signal Circuits (AREA)
  • Studio Devices (AREA)

Abstract

로컬 톤 곡선 계산을 사용한 이미지 톤 조정은 이미지들에 대한 휘도 범위들을 조정하기 위해 활용될 수 있다. 로컬 톤 곡선 계산을 사용한 이미지 톤 조정은 이미지의 전체 콘트라스트를 감소시키면서, 보다 작은 구역들, 그 예로서 불빛이 밝은 장면들을 캡처링한 이미지들에서 로컬 콘트라스트를 유지시킬 수 있고, 이때 가장 밝은 구역과 가장 어두운 구역 사이에서 세기의 차이가 크다. 이미지의 해당 블록들에 대한 타깃 휘도 값들을 포함하는 이미지의 소기의 밝기 표상이 발생될 수 있다. 각각의 블록에 대해, 해당 타깃 값들과 매칭하는 휘도 값들을 초래하는 하나 이상의 톤 조정 값들은, 블록 및 이웃 블록들에 대한 각자의 히스토그램들에 합동으로 적용될 시에 계산될 수 있다. 톤 조정 값들은 제약을 받는 최적화 문제를 해결함으로써 결정될 수 있고, 그 결과 최적화 제약들은 최소화된다. 이미지는 그 후에, 계산된 톤 조정 값들에 따라 조정될 수 있다.

Description

로컬 톤 곡선 계산을 사용한 이미지 톤 조정{IMAGE TONE ADJUSTMENT USING LOCAL TONE CURVE COMPUTATION}
최신 디지털 이미지들은 보다 밝은 구역과 보다 어두운 구역 사이의 동적 범위(dynamic range)의 조정 또는 감소를 빈번하게 요구한다. 몇몇 경우들에서, 조정은 보다 많이 제한된 동적 범위를 가진 매체에서 보다 높은 동적 범위의 외관에 가까워지기 위해 요구된다. 예를 들어, 현실 세계 장면들은 넓은 휘도 범위를 가질 수 있고, 현재 디지털 이미징 기술은 자연 장면의 완전(full) 동적 범위의 캡처링을 가능하게 할 수 있다. 그러나, 서로 다른 디스플레이 매체들, 그 예로서 인쇄 매체들, 디스플레이 모니터들, 및 프로젝터들은, 디지털 이미지에 나타난 광 세기들의 완전 범위를 재현하기 위해 불충분하거나 충분할 수 있는 서로 다른 능력들을 모두 가질 수 있다. 이들 매체들을 사용하여 디스플레잉될 시에, 이미지는 상세함들이 현저히 보일 수 있는 구역들을 가질 수 있다. 이로써, 이미지의 동적 범위는 특정 매체에 대해 압축될 필요가 있을 수 있고, 그 결과 이미지는 미적으로 만족스럽게 나타난다.
톤 맵핑(tone mapping)은 한 세트의 색상들을 또 다른 것에 맵핑하기 위해, 그 예로서 디지털 이미지의 전체 동적 범위를 조정하기 위해 사용된 하나의 현재 기법이다. 그러나, 톤 맵핑은 다양한 아티팩트(artifact)들 또는 효과들, 그 예로서 어두운 객체들 주위의 헤일로(halo)들 또는 링들, 지나치게 포화된 색상들, 또는 콘트라스트 왜곡들로 인한 부자연스런 외관을 이미지들에 빈번하게 도입시킨다.
본 명세서에 기술된 시스템들 및 방법들은 로컬 톤 곡선 계산을 사용한 이미지 톤 조정에 대한 다양한 기법들을 입증한다. 예를 들어, 이미지들은 쉐도우(shadow)들이 밝게 되면서 하이라이트(highlight)들이 어둡게 되어 이미지가 보다 상세하게 보이도록 조정될 수 있다. 이미지의 동적 범위는 다양한 실시예들에 따라서, 특정 적용에 의존하여, 다양한 이유들로 조정될 수 있다. 몇몇 실시예들에서, 미적으로 만족스러운 이미지를 만들어 냄은 전체적인 목표일 수 있는 반면, 다른 실시예들에서 목표는 많은 이미지 상세함들을 가능한 한 재현시키거나 이미지 내의 전체 콘트라스트를 최대화시키는 요구일 수 있다.
이미지는 시각적으로 상세해지기 위해 밝아질 필요가 있는 어두운 구역들을 가질 수 있다. 이와 유사하게, 이미지는 상세함들이 퇴색된 밝은 구역들을 가질 수 있다. 로컬 톤 곡선 계산을 사용한 이미지 톤 조정은 이미지의 전체 콘트라스트를 감소시키면서, 보다 작은 구역들에서, 그 예로서 불빛이 밝은 장면들을 캡처링한 이미지들에서(예컨대, 햇빛에서), 로컬 콘트라스트를 유지시킬 수 있고, 이때 광 세기에서의 큰 차이가 가장 밝은 구역과 가장 어두운 구역 사이에서 존재한다.
본 명세서에서 기술된 기법들을 사용하여, 이미지의 휘도는 수정되면서, 이미지 아티팩트들의 도입을 최소화(또는 제거)시킬 수 있다. 이미지에 대한 전체적인 소기의 시각적 외관은 톤 조정 값들, 그 예로서 로컬 톤 곡선 또는 한 세트의 게인(gain) 값들 - 이들에 따라서 이미지가 조정될 수 있음 - 을 계산하기 위해, 로컬 휘도 히스토그램들과 함께 발생 및 사용될 수 있다.
예를 들어, 이미지는 한 세트의 블록들 또는 이미지 부분들로서 고려될 수 있다. 타깃 휘도 값들과 휘도 히스토그램들 사이의 관계를 나타낸 최적화 문제는 각각의 이미지 블록에 대해 한 세트의 톤 조정 값들을 계산하기 위해 해결될 수 있다. 이미지는 그 후에, 본 명세서에 기술된 바와 같이, 결정된 톤 조정 값들에 따라서, 그 예로서 이미지 내의 픽셀들의 휘도 값을 조정하기 위한 로컬 톤 곡선들을 사용함으로써, 조정될 수 있다.
도 1은 일 실시예에 따른, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정을 사용하는 하나의 전체 프로세스를 예시한 논리 블록 다이어그램이다.
도 2는 본 명세서에서 기술된 바와 같이, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정을 구현하는 시스템의 일 실시예를 예시한 논리 블록 다이어그램이다.
도 3은 본 명세서에서 기술된 바와 같이, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정에 대한 방법의 일 실시예를 예시한 플로차트이다.
도 4는 본 명세서에서 기술된 바와 같이, 타깃 휘도 값들을 발생시키는 방법의 일 실시예를 예시한 플로차트이다.
도 5는 일 실시예에 따른, 2 개의 히스토그램들에 관하여 로컬 톤 곡선 계산을 사용한 이미지 톤 조정의 적용을 예시한 논리 블록 다이어그램이다.
도 6은 본 명세서에서 기술된 바와 같이, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정에 사용되는 한 세트의 게인 값들을 결정하는 방법의 일 실시예를 예시한 플로차트이다.
도 7은 일 실시예에 따른, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정을 이미지에 적용하는 방법의 일 실시예를 예시한 플로차트이다.
도 8은 일 실시예에 따른, 로컬 톤 곡선들에 기반한 픽셀의 조정을 예시한 논리 블록 다이어그램이다.
도 9는 일 실시예에 따른, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정을 비디오 스트림에 적용하는 것을 예시한 논리 블록 다이어그램이다.
도 10은 본 명세서에서 기술된 바와 같이, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정을 구현하도록 구성된 시스템의 일 실시예를 예시한 논리 블록 다이어그램이다.
다양한 실시예들이 여러 개의 실시예들 및 예시적인 도면들에 대해 예시 방식으로 본 명세서에 기술되지만, 기술 분야의 통상의 기술자는 실시예들이 기술된 실시예들 또는 도면들에 제한되지 않음을 인지할 것이다. 본 명세서에 대한 도면들 및 상세한 설명이 개시된 특정 형태로 실시예들을 제한하는 것으로 의도되는 것이 아니라, 그와는 정반대로, 의도는 본원의 사상 및 범주 내에 속한 모든 수정들, 등가물들 및 대안들을 커버하기 위한 것임을 이해하여야 한다. 본 명세서에 사용된 임의의 제목들은 단지 구성상의 목적들을 위할 뿐, 설명의 범주를 제한하기 위해 사용되는 것으로 의미되지는 않는다. 본 출원 전반에 걸쳐 사용되는 바와 같이, "일 수 있다(may)"라는 단어는 의무적인 의미(즉, "이어야만 한다(must)"를 의미)라기보다 오히려 허용의 의미(즉, "~에 대해 가능성을 갖는다"는 의미)로 사용된다. 유사하게, 단어들 "포함하다(include)", "포함하는(including)", 및 "포함한다(includes)"는 포함하는 것을 의미하지만, 이에 제한되지 않는다.
로컬 톤 곡선 계산 이미지들을 사용한 이미지 톤 조정은 이미지의 전체 휘도 범위를 조정할 수 있다. 예를 들어, 고 동적 범위를 갖는 이미지는 (예컨대, 이미지의 고 동적 범위를 적절하게 렌더링할 수 없는) 저 비트 깊이들로 디스플레이들 상에 렌더링될 수 있도록 조정될 수 있다.
본 명세서에 기술된 기법들을 사용하여, 이미지의 전체 휘도 범위는 수정되면서, 이미지 아티팩트들의 도입을 최소화(또는 제거)시킬 수 있다. 몇몇 실시예들에서, 이미지의 전체 휘도 범위는 감소될 수 있는 반면, 다른 실시예들에서, 로컬 휘도 값들은 전체 이미지의 전체 휘도 범위를 변화시킴 없이, 수정될 수 있다. 이미지의 밝기 표상(예컨대, 섬네일)은 이미지의 전체 휘도 범위에 대해 소기의 휘도 값들을 결정하기 위해 발생 및 조정될 수 있다. 소기의 휘도 값들은, 이미지의 해당 부분들(예컨대, 논리 블록들)에 대한 타깃 휘도 값들을 포함한 소기의 밝기 표상을 구성하기 위해 사용될 수 있다.
이미지는 다수의 논리 블록들로 분할될 수 있고, 휘도 히스토그램은 각각의 블록에 대해 발생될 수 있다. 각각의 블록에 대해서, 블록에 대한 해당 소기의 값들과 매칭하는 휘도 값들을 초래할 한 세트의 톤 조정 값들은 그 블록의 히스토그램에 적용될 시에 계산될 수 있다. 계산된 톤 조정 값들은 서로 다른 실시예들에 따라서, 다양한 형태들 중 어느 것을 취할 수 있다. 예를 들어, 몇몇 실시예들에서, 로컬 톤 곡선은 계산될 수 있는 반면, 다른 실시예들에서 (톤 곡선이 결정될 수 있는) 한 세트의 게인들이 계산될 수 있다. 블록은 하나 이상의 다른 블록들과 함께 고려될 수 있다. 각각의 블록에 대한 한 세트의 톤 조정 값들은, 블록에 대한 히스토그램에 적용되고 가능하다면 또한 이웃 블록들(예컨대, 블록 주위의 다른 블록들)에 대한 히스토그램들에 적용될 시에 각각의 블록에 대한 최종 휘도 값들이 각자의 블록에 대한 타깃 휘도 값들과 매칭되도록 결정될 수 있다. 이로써, 각각의 블록의 게인 값들 역시 다른 블록들을 사용하여 결정될 수 있다.
톤 조정 값들을 결정하기 위하여, 제약을 받는(under-constrained) 최적화 문제/식은, 하나 이상의 최적화 제약들이 최소화되도록 (예컨대, 표준 문제 해결 기법들을 사용하여) 해결될 수 있다. 이미지는 그 후에 톤 조정 값들에 따라 조정될 수 있다. 예를 들어, 일 실시예에서, 로컬 톤 곡선은 각각의 블록에 대해 계산될 수 있고, 이미지는 로컬 톤 곡선들을 사용하여 조정될 수 있다. 이미지의 각각의 픽셀은 몇몇 실시예들에 따라서, 다수의 로컬 톤 곡선들의 조합에 의해 조정될 수 있다. 로컬 톤 곡선들의 조합을 사용함은 몇몇 실시예들에서, 최종 이미지로의 시각적 아티팩트들의 도입을 피할 수 있다.
한 세트의 톤 조정 값들, 그 예로서 게인들, 게인 팩터들, 또는 로컬 톤 곡선은 제약을 받는 최적화 문제/식을 해결함으로써 결정될 수 있다. 톤 조정 값들은, 각자의 블록(예컨대, 그들이 결정되는 블록)에 대한 휘도 히스토그램에 적용될 시에, 블록에 대한 타깃 휘도 값(들)과 매칭하는 새로운 휘도 값들을 발생시킨다. 몇몇 실시예들에서, 한 세트의 톤 조정 값들은, 조정 값들이 블록 및 하나 이상의 다른(예컨대, 이웃) 블록들에 대한 각자의 히스토그램들에 합동으로 적용될 시에 새로운 휘도 값들이 블록 및 다른 블록들에 대한 각자의 타깃 휘도 값들과 매칭함으로써 발생되도록, 블록에 대해 결정될 수 있다.
최적화 문제들/식들을 해결하는 설명들이 로컬 톤 곡선 또는 한 세트의 게인들(또는 게인 팩터들)을 결정하는 것에 관련하여 본 명세서에 기술될 수 있는 반면, 일반적으로 다양한 종류들의 톤 조정 값들 중 어느 것이 다양한 실시예들에 따라서, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정의 다른 기법들 및 특징들과 함께 사용될 수 있다는 것을 유의한다.
다음의 상세한 설명에서, 수많은 특정 세부 사항들은 청구된 주제 내용의 철저한 이해를 제공하기 위해 설명된다. 그러나, 청구된 주제 내용이 이들 특정 세부 사항들 없이 실시될 수 있음을 기술 분야의 통상의 기술자라면 이해할 수 있을 것이다. 다른 실례들에서, 방법들, 장치들 또는 시스템들은 이하에서 상세하게 기술되지 않는데, 이는 그들이 청구된 주제 내용을 모호하지 않기 위해 기술 분야의 통상의 기술자에 의해 알려져 있기 때문이다.
다음의 상세한 설명의 몇몇 부분들은 특정 장치 또는 특수 목적용 컴퓨팅 디바이스 또는 플랫폼의 메모리 내에 저장된 이진 디지털 신호들에 관한 동작들의 알고리즘들 또는 심볼 표현들에 관하여 제시된다. 이러한 특정 명세서의 문맥에 맞게, 용어 특정 장치 등은 프로그램 소프트웨어로부터의 명령어들에 따라 특정 기능들을 수행하도록 한번 프로그래밍된 범용 컴퓨터를 포함한다. 알고리즘 설명들 또는 심볼 표현들은 신호 프로세싱 분야 또는 관련 분야의 통상의 기술자들에 의해 사용되어 그들의 작업 요지를 기술 분야의 다른 통상의 기술자들에게 전하는 기법들의 예시들이다. 알고리즘은, 본 명세서에서 그리고 일반적으로, 소기의 결과를 이끄는 동작들 또는 유사한 신호 프로세싱의 자기-무모순 시퀀스(self-consistent sequence)인 것으로 고려된다. 이러한 문맥에 맞게, 동작들 또는 프로세싱은 물리적 양들의 물리적 조작을 수반한다. 전형적으로, 필수적인 것은 아니지만, 그러한 양들은 저장, 전송, 조합, 비교, 또는 달리 조작될 수 있는 전기적 또는 자기적 신호들의 형태를 취할 수 있다. 주로 공통 사용의 이유로, 그러한 신호들을 비트들, 데이터, 값들, 요소들, 심볼들, 문자들, 용어들, 개수들, 숫자들 등으로 언급하는 것이 때때로 편리한 것으로 판명되었다. 그러나, 이들 또는 유사한 용어들 모두는 적절한 물리적 양들과 연관되는 것이고 단지 편리한 레이블들에 불과하다는 것을 이해해야 한다.
특별히 별다른 언급이 없는 이상, 다음의 논의로부터 명백해진 바와 같이, 본 명세서의 전체를 통하여, 용어들 그 예로서 "프로세싱", "컴퓨팅", "칼큐레이팅(calculating)", "결정하는" 등을 활용하는 논의들이 특정 장치, 그 예로서 특수 목적용 컴퓨터 또는 유사한 특수 목적용 전자 컴퓨팅 디바이스의 작동들 또는 프로세스들을 언급함이 인식된다. 따라서, 본 명세서의 문맥에 맞게, 특수 목적용 컴퓨터 또는 유사한 특수 목적용 전자 컴퓨팅 디바이스는, 통상적으로 메모리들, 레지스터들, 또는 다른 정보 저장 디바이스들, 전송 디바이스들, 또는 특수 목적용 컴퓨터 또는 유사한 특수 목적용 전자 컴퓨팅 디바이스의 디스플레이 디바이스들 내에서 물리적 전자적 또는 자기적 양들로서 나타나는 신호를 조작 또는 변환할 수 있다.
일반적으로, 로컬 톤 맵핑은 고 동적 범위(HDR) 장면들을 포함한 이미지가 저 비트 깊이들(예컨대, 저 동적 범위 또는 LDR)로 디스플레이들 상에 렌더링될 수 있는 것을 허용할 수 있다. 통상적으로, 쉐도우들은 밝아질 수 있고, 하이라이트들은 어두워질 수 있고, 그 결과 이미지의 보다 상세함들은 그들 고 콘트라스트 구역들에서 볼 수 있다.
본 명세서에서 기술된 기법들, 방법들 및/또는 알고리즘들은 다양한 소프트웨어 및/또는 하드웨어 시스템들 중 어느 것으로 사용될 수 있다. 예를 들어, 디지털 카메라(스틸 또는 비디오)는 일 실시예에 따라서, HDR 모드를 사용하여 캡처링된 이미지들을 수정하기 위하여, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정을 활용할 수 있다. 다른 실시예들에서, 자립형 소프트웨어 프로그램은 이전에 캡처링된 디지털 이미지들을 수정함에 있어 사용하기 위해 본 명세서에 기술된 기법들을 구현할 수 있다.
상기에서 유의한 바와 같이, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정은 이미지의 전체 동적 범위를 수정하거나 감소시키기 위해, 그 예로서 고 동적 범위(HDR)를 사용하여 캡처링된 이미지가 저 동적 범위로 디바이스 상에 디스플레잉되면서 시각적으로 여전하게 매력이 있게 남아 있거나 본래 장면과 시각적으로 매칭하는 것을 허용하기 위해 사용될 수 있다. 이미지에 대한 토널(tonal) 범위(예컨대, 휘도 범위)를 조정하기 위해 로컬 톤 곡선 계산을 사용한 이미지 톤 조정을 사용하는 전체 프로세스의 일 실시예를 예시하는 도 1로 이제 돌아간다.
도 1에 예시된 바와 같이, 입력 이미지(100)는 캡처링 또는 수신될 수 있고, 밝기 표상(110)은 입력 이미지에 기반하여 발생될 수 있다. 예를 들어, 몇몇 실시예들에서, 밝기 표상은 입력 이미지(100)로부터의 명도(lightness) 또는 휘도(예컨대, 휘도 채널)에 관한 정보만을 포함할 수 있다. 입력 이미지(100)로부터의 명도 또는 밝기 정보가 밝기 표상(110)에 기록되는 법, 캡처링되는 법, 또는 달리 나타내는 법이 실시예 간에서 변화할 수 있다.
밝기 표상(110)은 소기의 밝기 표상(130)을 발생시키는 기반으로서 사용될 수 있다. 소기의 밝기 표상(130)은 몇몇 실시예들에서, 입력 이미지(100) (또는 몇몇 경우들에서 입력 이미지(100)와 유사한 이미지)의 최종 소기의 또는 타깃, 밝기 표상을 나타내는 휘도 정보를 포함할 수 있다. 예를 들어, 하나 이상의 톤 맵핑 알고리즘들은 기존 밝기 정보를 수정하기 위해서, 그 예로서 동적 범위를 감소시키기 위해서, 밝기 표상(110)에 적용될 수 있다. 소기의 밝기 표상(130)은 밝기 표상(110) 내의 해당 구역들보다, 밝은 어둔 구역들 및 어두운 밝은(또는 "블로운 아웃(blown out)") 구역들을 가질 수 있다. 이로써, 소기의 밝기 표상(130)은 몇몇 실시예들에 따라서, 밝기 표상(110)(또는 입력 이미지(100))과 비교할 시에, 압축된 동적 범위를 가지는 것으로 고려될 수 있다.
몇몇 실시예들에서, 밝기 표상(110) 및/또는 소기의 밝기 표상(130)은 입력 이미지(100)보다 낮은 해상도로 발생될 수 있다. 예를 들어, 일 실시예에서, 밝기 표상(110)은 입력 이미지(100)의 다운-샘플링된(down-sampled), 휘도-전용, 버전일 수 있다. 이로써, 몇몇 실시예들에서, 밝기 표상(110)은 입력 이미지(110)의 섬네일 버전으로 고려될 수 있다. 다른 실시예들에서, 그러나, 밝기 표상(110) 및 소기의 밝기 표상(130)은 입력 이미지(100)와 동일한 해상도로 있을 수 있다.
추가로, 2 개의 별개의 엔티티들, 즉 밝기 표상(110) 및 소기의 밝기 표상(130)으로서 본 명세서에 기술되지만, 몇몇 실시예들에서, 밝기 표상(110)은 제자리에서 소기의 밝기 표상(130)으로 전환될 수 있다. 이로써, 밝기 표상(110) 및 소기의 밝기 표상(130)은 입력 이미지(100)의 동일한 표상의 2 개의 서로 다른 버전들을 지칭할 수 있다.
도 4에 관해 보다 상세하게 기술될 바와 같이, 소기의 밝기 표상(130)은 입력 이미지(100)의 다양한 부분들(예컨대, 블록들)에 대응하는 타깃 휘도 값들을 포함할 수 있다. 몇몇 실시예들에서, 단일 타깃 휘도 값은 이미지의 각각의 블록에 대해 결정될 수 있는 반면, 다른 실시예들에서, 다수의 타깃 휘도 값들은 이미지의 단일 블록에 대응할 수 있다.
또한 도 1에 도시된 바와 같이, 입력 이미지(100)는 다수의 블록들로 논리적으로 분할될 수 있고, 히스토그램은 각각의 블록, 그 예로서 히스토그램들(120)에 대해 발생될 수 있다. 예를 들어, 도 1은, 입력 이미지(100)가 5×5 패턴을 사용하여 25 개의 블록들로 논리적으로 분할될 수 있고 개별적인 히스토그램이 각각의 블록에 대해 발생될 수 있는 일 실시예를 예시한다. 다른 실시예들에서, 이미지는 다른 개수의 블록들(예컨대, 5×6, 8×8, 5×7, 기타 등등)로 분할될 수 있다. 일반적으로, 블록들로의 이미지의 임의의 적합한 분할은 서로 다른 실시예들에 따라 활용될 수 있다. 몇몇 실시예들에서, 히스토그램들(120) 각각은 휘도 전용 히스토그램을 나타낼 수 있다. 다시 말하면, 각각의 블록에 대해, 일 실시예에 따라서, 블록 내에서 휘도(예컨대, 명도 또는 밝기)의 분포를 나타내는 히스토그램이 발생될 수 있다.
히스토그램들(120)에 나타내는 것과 같은 휘도 히스토그램은 입력 이미지(100) 내의 밝기 상대 분포를 포함할 수 있다. 휘도 히스토그램은 다수의 휘도 레벨들을 걸친 이미지의 블록 내의 픽셀들에 대한 휘도 분포 데이터를 포함할 수 있다. 예를 들어, 히스토그램은, 서로 다른 휘도 범위에 각각 대응하는 다수의 빈(bin)들을 포함할 수 있다. 각각의 빈에 대한 값은 그 빈에 대응하는 휘도 범위 내에서 휘도 값을 가진 블록 내의 픽셀들의 백분율을 나타낼 수 있다.
예를 들어, 입력 이미지(100) 내의 특정 블록에 대한 히스토그램을 발생시킬 시에, 블록 내의 각각의 픽셀에 대한 색상 값은 전환될 수 있고, 그 결과 광도 값(luminosity)을 나타내고, 그 예로서 픽셀의 개별적인 색상 값들(예컨대, RGB)의 가중 평균에 기반할 수 있다. 휘도 히스토그램은 그 후에 블록 내의 픽셀들이 히스토그램에 포함된 서로 다른 휘도 범위들 내에서 휘도 레벨들을 얼마나 많이 나타내는지를 카운팅함으로써 발생될 수 있다. 히스토그램들(120)에 의해 나타난 히스토그램들은 서로 다른 유형들의 밝기 정보를 나타낼 수 있고, 서로 다른 실시예들에서, 서로 다른 개수의 범위들(예컨대, 빈들)을 사용하여 발생될 수 있다.
이하에서 보다 상세하게 기술될 바와 같이, 소기의 밝기 표상(130)으로부터의 개별적인 블록 히스토그램들(120) 및 타깃 휘도 값들은 도 1에 로컬 톤 곡선들(140)에 의해 나타난 것과 같은, 블록들에 대한 개별적인 로컬 톤 곡선들을 발생시키기 위해 사용될 수 있다. 몇몇 실시예들에서, 이들 로컬 톤 곡선들은 특정 이미지 블록 내에서 이미지의 부분의 소기의 토널 범위를 나타낼 수 있다. 로컬 톤 곡선들(140)은 그 후에 이미지 데이터에, 그 예로서 입력 이미지(110)에 적용되어 출력 이미지(150)를 발생시킬 수 있다. 이로써, 출력 이미지(150)는 서로 다른 토널 품질 또는 휘도 범위를 갖는 입력 이미지(100)의 새로운 버전을 나타낼 수 있다. 예를 들어, 일 실시예에서, 전체 토널 범위는 입력 이미지(100)와 비교할 시에 출력 이미지(150)에서 감소될 수 있는 반면, 다른 실시예들에서, 전체 범위는 동일할 수 있지만, 그러나 개별적인 밝기(예컨대, 휘도) 레벨들은 이미지 내에서 수정 또는 조정되어, 그 예로서 시각적 매력을 향상시키고/향상시키거나 콘트라스트 왜곡들을 제거시킬 수 있다.
출력 이미지(150)가 입력 이미지(100)의 수정된 버전으로서 주요하게 기술된 반면, 몇몇 실시예들에서, 입력 이미지(100)는 출력 이미지(150)를 발생시키기 위해 사용된 것과는 서로 다른 이미지를 나타낼 수 있다. 몇몇 실시예들에서, 입력 이미지(100)는 밝기 표상(110), 소기의 밝기 표상(130), 히스토그램들(120) 및 로컬 톤 곡선들(140)을 발생시키기 위해 사용될 수 있지만, 그러나 차후에, 로컬 톤 곡선들(140)은 입력 이미지(100)와 유사할 수 있는 서로 다른 입력 이미지에 기반한 출력 이미지(150)를 발생시키기 위해 사용될 수 있다. 예를 들어, 이미지들은 비디오 스트림의 일부일 수 있고, 입력 이미지(100)는 로컬 톤 곡선들(140)을 발생시키기 위해 사용될 수 있고, 그 다음으로 상기 로컬 톤 곡선들은 비디오 스트림 내의 차후 이미지를 수정하기 위해 사용될 수 있다(예컨대, 스트림 내의 개별적인 이미지들 사이의 밝기 범위들이 한 이미지로부터 그 다음 것으로 많이 변화할 수 없기 때문임).
도 2는 본 명세서에서 기술된 바와 같이, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정을 구현하는 시스템의 일 실시예를 예시한 논리 블록 다이어그램이다. 도 2에 도시된 바와 같이, 이미지 톤 조정기(200)는 다양한 실시예들에 따라서, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정에 관한 하나 이상의 태스크(task)들을 수행하는 것에 책임이 각각 있는 다양한 컴포넌트들을 포함할 수 있다. 이미지 톤 조정기(200)는 입력 이미지(100), 또는 입력 이미지(100)에 대한 적어도 이미지 데이터를 수신할 수 있다. 본 명세서에 사용된 바와 같은 용어 "이미지"는 이미지 데이터의 임의의 모음집을 지칭할 수 있고, 특정 이미지 포맷을 지칭하는 것으로 의도되지는 않는다. 예를 들어, 입력 이미지(100)는 특정 디바이스 내의 메모리에 저장될 수 있는 최종 이미지 파일보다는 오히려 카메라 이미지 센서로부터 수신된 미가공 이미지 데이터를 나타낼 수 있다.
이미지 톤 조정기(200)는 입력 이미지(100)로부터 밝기 표상(110)을 발생시킬 수 있는 이미지 데이터 프로세서(210)를 포함할 수 있다. 유사하게, 타깃 휘도 컴포넌트(220)는 몇몇 실시예들에 따라서, 소기의 밝기 표상(130)을 발생시키기 위해 밝기 표상(110)을 분석할 수 있다. 이미지 톤 조정기(200)는 입력 이미지(100) 내의 각각의 논리 블록에 대한 것과 같은 로컬 히스토그램들을 발생시키기 위해 히스토그램 발생기(230)를 활용할 수 있다. 몇몇 실시예들에서, 히스토그램 발생기(230)는 이미지 데이터 프로세서(210)의 일부일 수 있다. 추가로, 로컬 톤 곡선 발생기(240)는 히스토그램 발생기(230)에 의해 생성된 히스토그램들, 나아가 타깃 휘도 컴포넌트(220)로부터의 소기의 밝기 표상(110)을 사용하여, 출력 이미지(150)를 생성하기 위해 궁극적으로 사용될 수 있는, 로컬 톤 곡선들, 또는 다른 톤 조정 값들을 발생시킬 수 있다.
몇몇 실시예들에서, 이미지 톤 조정기(200)(및/또는 그의 포함된 컴포넌트들)는 디지털 카메라의 일부, 또는 디지털 카메라를 포함한 디바이스 그 예로서 모바일 디바이스(예컨대, 폰, 태블릿, 기타 등등)의 일부일 수 있다. 다른 실시예들에서, 이미지 톤 조정기(200)(및 그의 포함된 컴포넌트들)는 디지털 카메라 디바이스로부터 별도로 활용될 수 있다. 예를 들어, 이미지 톤 조정기(200)는 이미지들을 캡처링하는 디지털 카메라로부터 별도로 이미지들을 조작하기 위해 사용된 후(post) 프로세싱 프로그램 또는 디바이스의 일부일 수 있다.
일반적으로, 이미지 톤 조정기(200) 및/또는 그의 개별적인 컴포넌트들은 하드웨어, 소프트웨어, 펌웨어 또는 하드웨어, 소프트웨어 및/또는 펌웨어의 조합으로 구현될 수 있다. 추가로, 이미지 톤 조정기(200)의 몇몇 컴포넌트들은 다양한 실시예들에 따라서, 하드웨어로 구현될 수 있는 반면, 다른 컴포넌트들은 소프트웨어 또는 펌웨어로 구현될 수 있다. 예를 들어, 일 실시예에서, 이미지 데이터 프로세서(210) 및 히스토그램 발생기(230)는 하드웨어로 구현될 수 있는 반면, 타깃 휘도 컴포넌트(220) 및 로컬 톤 곡선 발생기(240)는 소프트웨어로 구현될 수 있다. 더욱이, 도 2에서는 4 개의 별도의 컴포넌트들로 예시되었지만, 이미지 톤 조정기(200)의 개별적인 컴포넌트들은 서로 다른 개수의 컴포넌트들로 조합(또는 분할)될 수 있다. 도 1에 예시된 컴포넌트들(예컨대, 이미지 데이터 프로세서(210), 타깃 휘도 컴포넌트(220), 히스토그램 발생기(230), 및 로컬 톤 곡선 발생기(240))은 논의의 용이성을 위해 사용되고, 서로 다른 실시예들은 본 명세서에 기술된 동일 기능들, 방법들 및/또는 기법들을 수행하기 위해 보다 많은, 보다 적은, 및/또는 서로 다른 컴포넌트들을 포함할 수 있다.
도 3은 본 명세서에서 기술된 바와 같이, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정에 대한 방법의 일 실시예를 예시한 플로차트이다. 블록(300)에서 도시된 바와 같이, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정은 이미지의 각각의 블록에 대한 타깃 휘도 값들의 발생을 수반할 수 있다. 이미지는 다양한 실시예들에 따라서, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정과 함께 사용되기 위해 하나 이상의 블록들로 분할될 수 있다. 예를 들어, 일 실시예에서, 이미지는 64 개의 블록들(예컨대, 8×8)로 분할될 수 있는 반면, 다른 실시예들에서, 서로 다른 개수의 블록들이 사용될 수 있다. 또 다른 실시예들에서, 블록들의 개수는 이미지의 크기에 기반하여 결정될 수 있다. 예를 들어, 각각의 블록은 (예컨대, 픽셀들에 관하여) 특정, 고정 크기일 수 있다. 일반적으로, 임의의 적합한 방법은 본 명세서에서 기술된 바와 같이, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정과 함께 사용되기 위해 하나 이상의 블록들로 이미지를 분할시키기 위해 사용될 수 있다.
블록들로의 이미지의 분할이 이미지의 부분들의 실제 분리를 수반할 수 없다는 것을 유의한다. 다시 말하면, 블록들 및/또는 블록들 사이의 분할들은 이미지 중에 임의의 블록들을 실제로 이동시킴 없이 논리적으로 결정될 수 있다. 몇몇 실시예들에서, 본 명세서에 기술된 기법들은 단일 이미지로서 인접하여 저장되지 않은 이미지 데이터에 수행될 수 있다. 추가로, 본 명세서에 기술된 방법들 또는 기법들 중 몇몇(또는 모두)은 스트리밍 이미지 데이터에 관해 수행될 수 있되, 데이터 모두가 수신되기 전에, 그 데이터가 (예컨대, 카메라 이미지 센서로부터) 수신될 시에 그러하다.
상기에서 유의한 바와 같이, 타깃 휘도 값들은 이미지의 각각의 블록에 대해 발생될 수 있다. 도 4에 관해 보다 상세하게 논의될 바와 같이, 이미지의 휘도 또는 밝기 표상, 그 예로서 밝기 표상(110)은 소기의 밝기 표상, 그 예로서 소기의 밝기 표상(130)을 나타내기 위해 발생되고, 그 후에 수정될 수 있다. 상기에서 유의한 바와 같이, 밝기 표상은 몇몇 실시예들에 따라서, 이미지의 전체 밝기 범위를 변화시키기 위해, 그 예로서 지나치게 밝거나 어두운 구역들에 보다 시각적인 콘트라스트를 가지고 오기 위해, 수정될 수 있다. 다른 실시예들에서, 이미지 데이터의 전체 휘도 범위는 이미지에 대한 휘도 정보를 나타내기 위해 필요한 픽셀들의 개수를 감소시키는 것과 같은 다른 이유들에 대해 감소될 수 있다.
소기의 밝기 표상은 이미지의 블록들 각각에 대해 타깃 휘도 값들을 포함할 수 있다. 몇몇 실시예들에서, 밝기 표상 및/또는 소기의 밝기 표상은 본래 이미지보다 낮은 해상도(예컨대, 다운 샘플링됨)로 있을 수 있다. 몇몇 실시예들에서, 저 해상도 밝기 표상 및/또는 소기의 밝기 표상은 로컬 톤 곡선 계산을 사용한 이미지 톤 조정을 수행하는 전체 계산 비용을 감소시키기 위해, 사용될 수 있다. 몇몇 실시예들에서, 소기의 밝기 표상은 각각의 블록에 대해 단일 타깃 휘도 값들을 포함할 수 있는 반면, 다른 실시예들에서, 다수의 타깃 휘도 값들은 각각의 블록에 대응할 수 있다.
몇몇 실시예들에서, 단일 컴포넌트, 그 예로서 이미지 데이터 프로세서(200)는 블록들(300 및 310)에 관해 상술된 작동들을 수행할 수 있는 반면, 다른 실시예들에서, 소프트웨어, 하드웨어 또는 이 둘의 조합으로 구현된 별도의 컴포넌트들은 블록들(300 및 310)에 관해 상술된 작동들의 일 부분을 각각 수행할 수 있다.
블록(330)에서 도시된 바와 같이, 톤 조정 값들, 그 예로서 한 세트의 게인 값들(예컨대, 게인들) 또는 로컬 톤 곡선은 일 실시예에 따라서, 각각의 블록에 대해 결정될 수 있다. 특정 블록에 대한 톤 조정 값들은, 그들이 블록에 대한 히스토그램에 적용되고 또한 하나 이상의 이웃 블록들에 대한 히스토그램들에 적용될 시에, 각자의 블록들에 대한 타깃 휘도 값들과 매칭하는 휘도 값들이 발생되도록, 결정될 수 있다. 다시 말하면, 톤 조정 값들은 블록에 대해 결정될 수 있되, 그 블록의 이웃들을 고려하여 결정될 수 있다. 블록의 톤 조정 값들을 결정할 시에 사용된 이웃 블록들의 개수는 단지 약간의 인근 이웃들로부터 이미지에 대한 전체 세트의 블록들까지 변화할 수 있다. 몇몇 실시예들에서, 단독으로 단일 블록에 대한 것보다는 오히려 블록들의 조합에 합동으로 적용되는 톤 조정 값들을 발생시킴은, 최종 이미지가 발생될 시에 시각적 아티팩트들을 감소시킬 수 있다.
블록(340)에서 도시된 바와 같이, 하나 이상의 톤 조정들은 결정된 톤 조정 값들에 따라 이미지에 관해 수행될 수 있다. 예를 들어, 톤 조정 값들은 몇몇 실시예들에 따라서, 하나 이상의 톤 조정들을 수행하기 위해, 그 예로서 이미지 내의 전체 휘도 범위를 감소시키기 위해 이미지에 대한 이미지 데이터에 적용될 수 있다. 예를 들어, 일 실시예에서, 로컬 톤 곡선은 각각의 블록에 대해 (예컨대, 한 세트의 톤 조정 값들로서) 발생될 수 있고, 로컬 톤 곡선들은 이미지에 대한 톤 조정을 만들기 위해 사용된다. 또 다른 실시예에서, 한 세트의 게인들은 각각의 블록에 대해 결정될 수 있고, 각각의 블록에 대한 게인들은 그 후에 이미지에 대한 이미지 데이터에 적용될 수 있는 로컬 톤 곡선들을 발생시키기 위해, 개별적인 블록들에 대한 로컬 히스토그램들에 적용될 수 있다.
도 4는 본 명세서에서 기술된 바와 같이, 타깃 휘도 값들을 발생시키는 방법의 일 실시예를 예시한 플로차트이다. 블록(400)에 도시된 바와 같이, 일 실시예에 따라서, 이미지는 카메라 이미지 센서로부터 수신될 수 있고, 이미지의 다운-샘플링된 밝기 표상은 블록(410)에 예시된 바와 같이 이미지에 대한 휘도 값들에 기반하여 발생될 수 있다. 예를 들어, 카메라 이미지 센서로부터 수신된 이미지 데이터는 휘도 값들로 전환되고, 그 이후에 다운 샘플링되어, 이미지의 밝기 표상을 발생시킬 수 있다. 몇몇 실시예들에서, 밝기 표상은 이미지에 대한 휘도 데이터를 포함한 섬네일 표상으로 고려될 수 있다. 일 실시예에서, 밝기 표상은 본래 이미지 내의 각각의 블록에 대해 대응하는 하나의 휘도 값을 포함할 수 있다.
다양한 방법들 중 어느 것은 다양한 실시예들에 따라서, 다운 샘플링이 되든 또는 그렇지 않든 간에 밝기 표상을 발생시키기 위해 사용될 수 있다. 예를 들어, 일 실시예에서, 이미지 블록 내의 픽셀마다의 휘도 값들은 함께 평균화되고 밝기 표상으로 사용될 수 있다. 다른 실시예들에서, 밝기 표상에 대한 휘도 값들을 결정하는 다른 방법들이 사용될 수 있다.
추가로, 톤 조정 알고리즘 및/또는 기법은 몇몇 실시예들에 따라서, 이미지에 대한 타깃 휘도 값들(예컨대, 소기의 밝기 레벨들)을 발생시키기 위해 밝기 표상에 적용될 수 있다. 일 실시예에 따라서, (밝기 표상으로 모델링된 바와 같은) 이미지의 전체 휘도 범위를 감소시키도록 구성된 알고리즘은 밝기 표상에 적용될 수 있다. 다른 실시예들에서, 전체 휘도 범위는 변화되지 않을 수 있지만, 그러나 이미지 내의 개별적인 휘도 레벨들은 이미지의 서로 다른 구역들에서 조정될 수 있다.
예를 들어 일 실시예에서, 하이 패스 필터 알고리즘은 최고 휘도 값들을 감소시키기 위해 밝기 표상에 적용될 수 있다. 다른 실시예들에서, 다른 또는 추가의 알고리즘들 및/또는 기법들은 이미지에 대해 소기의 밝기 레벨들 및/또는 타깃 휘도 값들을 발생시키기 위해 적용될 수 있다.
도 5는 일 실시예에 따른, 룩업 테이블(LUT)을 발생시키기 위해 2 개의 히스토그램들에 관하여 로컬 톤 곡선 계산을 사용한 이미지 톤 조정의 적용을 예시한 논리 블록 다이어그램이다. 상기에서 유의한 바와 같이, 이미지의 각각의 논리 블록에 대해, 로컬 톤 곡선(또는, 대안으로 한 세트의 게인들)은 하나 이상의 이웃 블록들을 고려하여 결정될 수 있다. 동적 범위에 걸친 휘도 데이터의 재맵핑을 나타내는, 결정된 로컬 톤 곡선(또는 게인 값들)은 하나 이상의 톤 곡선들, 그 예로서 로컬 톤 곡선들(140)을 발생시키기 위해, 히스토그램들과 함께 사용될 수 있다. 몇몇 실시예들에서, 그러한 톤 곡선은 전체 동적 범위 내의 휘도 값들의 재맵핑을 허용하는 룩업 테이블(LUT)로 고려될 수 있다. 예를 들어, 도 5는 입력 이미지 내의 2 개의 논리 블록들에 대한 히스토그램들을 나타낼 수 있는 2 개의 히스토그램들을 예시한다.
도 6에 관하여 이하에서 보다 상세하게 기술될 바와 같이, 몇몇 실시예들에 따라서, 소기의 휘도 값들과 매칭하는(또는 상기 휘도 값들에 접근하는) 휘도 값들을 초래할 수 있는 로컬 톤 곡선, 또는 한 세트의 게인 값들은 히스토그램들에 적용될 시에, 결정되거나 계산될 수 있다. 몇몇 실시예들에서, 히스토그램(500) 및 히스토그램(510) 둘 다는, 블록(예컨대, 2 개의 히스토그램들 중 하나에 대응함)에 대한 로컬 톤 곡선을 결정할 시에 고려될 수 있다. 최종 로컬 톤 곡선은, 게인 값들이 결정되는 논리 블록 내에서 픽셀들에 대한 휘도 값을 재맵핑하기 위해 사용될 수 있는 LUT를 나타내는 그래프(530)를 구성하기 위해 사용될 수 있다. 예를 들어보면, 그래프 내의 LUT 곡선(또는 라인)은 아이덴티티 라인(identity line) 주위의 값들을 전환시키기 위해 사용될 수 있다. 그래프(530) 내에서, 보다 낮은 휘도(예컨대, 보다 어두운) 값들은 2 개의 축들의 원점에 가까운 반면, 보다 높은 휘도(예컨대, 보다 밝은) 값들은 각자의 축들 상의 우측 및 상측에 대해 있다.
이로써, 도 5에 예시된 예시에서, 저 휘도 범위들에 보다 많이 분포된, 히스토그램(500)에 나타난 휘도 값들은 몇몇 실시예들에 따라서, 그래프(530) 내의 저 휘도 범위들에서 아이덴티티 라인 위에 있는 LUT 곡선에 의해 도시된 바와 같이, 밝아질 수 있다.
도 6은 본 명세서에서 기술된 바와 같이, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정에 사용되는 한 세트의 게인 값들을 결정하는 방법의 일 실시예를 예시한 플로차트이다. 세트들의 게인 팩터들을 결정하는 것에 관하여 이하에서 기술되었지만, 몇몇 실시예들에서, 로컬 톤 곡선들 또는 다른 톤 조정 값들을 결정하는 것은 또한 도 6에 예시된 방법에 적용될 수 있다.
블록(600) 및 블록(610)에 도시된 바와 같이, 입력 이미지의 각각의 블록에 대해, 블록 그 자체 및 하나 이상의 이웃 블록들을 포함한 한 세트의 블록들이 결정될 수 있다. 상기에서 유의한 바와 같이, 게인 값들은 블록에 대한, 그리고 하나 이상의 이웃 블록들에 대한 각자의 휘도 히스토그램들에 기반하여 블록에 대해 결정될 수 있다. 예를 들어, 일 실시예에서, 특정 블록을 둘러싼 8 개의 블록들은 특정 블록에 대한 게인들을 결정하는 한 세트의 블록들로서 사용될 수 있다. 다른 실시예들에서, 다른 개수의 이웃 블록들이 사용될 수 있다.
블록(620)에 예시된 바와 같이, 블록에 대한 게인들을 결정하는 것은 한 세트의 블록들에 대한 타깃 휘도 값들과, 한 세트의 블록들에 대한 각자의 휘도 히스토그램들과, 그리고 결정될 세트의 게인 팩터들 사이의, 제약을 받는 관계를 정의하는 최적화 문제를 발생시키는 것을 수반할 수 있다. 게인 팩터들은, 몇몇 실시예들에 따라서, 한 세트의 블록들(예컨대, 특정 블록 및 그의 이웃들) 내의 각각의 블록에 대한 휘도 히스토그램들에 적용될 시에, 블록들에 대한 각자의 타깃 값들과 매칭하는 휘도 값들이 발생되도록, 결정될 수 있다.
이로써, 각각의 블록에 대해, 블록에 대한 타깃 휘도 값들(예컨대, 소기의 밝기 레벨들)과 매칭하는 휘도 값들을 발생시키는 한 세트의 게인들은 블록에 대한 휘도 히스토그램에 적용될 시에 계산된다. 그러나, 블록에 대한 게인들은, 단독으로 그 블록에 대해 결정되지 않는다. 대신에, 몇몇 실시예들에서, 게인들은 다른 블록, 그 예로서 하나 이상의 이웃 블록들 역시 고려하여 블록에 대해 결정될 수 있다. 결정된 게인들이 이웃 블록들 각각에 대한 각자의 로컬 히스토그램에 적용될 시에, 그 각자의 블록에 대한 타깃 휘도 값들과 매칭하는 휘도 값들이 발생될 수 있다. 이로써, 몇몇 실시예들에 따라서, 한 세트의 게인 값들은 각각의 블록에 대해 결정될 수 있지만, 그러나 각각의 블록의 게인 값들 역시 이웃 블록들에 기반하여 결정될 수 있다.
특정 블록에 대한 한 세트의 게인 값들을 결정하기 위해, 최적화 문제 또는 식은 타깃 휘도 값들과, (블록 및 그의 이웃들의) 로컬 히스토그램들과, 그리고 결정될 게인 값들 사이의, 제약을 받는 관계에 따라 정의된다.
예를 들어, 일 실시예에서, 식:
H'Rx = m
은 특정 논리 블록에 대한 한 세트의 게인들을 얻기 위하여 해결될 최적화 문제로서 사용될 수 있다. 식 내에서, 'H'는 (예컨대, 블록 및 이웃 블록들에 대해) 합동으로 해결될 N 개의 히스토그램들, 크기 M(예컨대, 각각의 히스토그램 내의 M 빈들) 각각의 MxN 매트릭스를 나타낼 수 있다. 'R'은 히스토그램들을 갖는 각각의 빈에 대한 밝기에 대응하는 휘도 값들을 포함한 MxM 대각 매트릭스를 나타낼 수 있다. 예를 들어, 'R' 내의 각각의 값은 히스토그램들을 갖는 특정 빈에 대한 휘도 범위 내의 평균, 평균치 또는 중앙 값을 나타낼 수 있다. 식 내에서, 'm'은 'H' 내의 각각의 히스토그램에 대한(예컨대, 각각의 논리 블록에 대한) 타깃 휘도 값들을 포함한 N×1 벡터를 나타낼 수 있다. 이러한 최적화 문제는 'H' 내의 히스토그램들 모두에 대해 합동으로 해결되어, 특정 히스토그램 빈에(그러므로 특정 휘도 범위에) 대응하는 각각의 게인 값들의 M×1 벡터, 'x'를 얻을 수 있다.
또 다른 실시예에서, 최적화 문제 또는 식은 게인들(또는 게인 팩터들) 대신에 로컬 톤 곡선들을 결정하기 위해 정의될 수 있다. 예를 들어, 일 실시예에서, 식:
H'y = m
은 하나 이상의 로컬 톤 곡선들(예컨대, 블록 및 가능하다면 하나 이상의 이웃 블록들에 대한 로컬 톤 곡선)을 얻기 위하여 해결될 최적화 프로그램으로서 사용될 수 있다. 식 내에서, 'y'는 로컬 톤 곡선을 나타낼 수 있거나, 또는 이전 식으로부터의 Rx를 나타낼 수 있다. 이로 인하여, 몇몇 실시예들에서, 한 세트의 게인들이 결정될 수 있고, 차후에 로컬 톤 곡선들은 결정된 게인들을 사용하여 계산될 수 있지만, 그러나 다른 실시예들에서, 로컬 톤 곡선들은 최적화 문제를 해결하는 것으로부터 결정되고 이미지를 조정하기 위해 사용될 수 있다.
그 후에, 블록(630)에 도시된 바와 같이, 최적화 해결 기법은 최적화 문제에 적용될 수 있고, 그 결과 하나 이상의 최적화 제약들이 최소화된다. 일반적으로 알고리즘들 또는 기법들을 해결하는 다양한 최적화 문제 중 어느 것은 게인 값들을 계산하기 위해 사용될 수 있다. 몇몇 실시예들에서, 문제들에 대한 2 개 이상의 가능한 해결책이 존재할 수 있고 문제는 해결될 수 있고, 그 결과 하나 이상의 최적화 제약들은 (예컨대, 다수의 가능한 해결책들 중에서 1 개의 "최적의" 해결책을 가지기 위하여) 최소화된다.
예를 들어, 일 실시예에서, 하나의 가능한 세트의 최적화 제약들은 최종 게인들을 정규화하려 하면서(예컨대, 최종 톤 곡선을 아이덴티티 라인 가까이에 유지시킴), 동시에 게인들(또는 최종 톤 곡선)에 걸친 변화 속도(rate of change)를 최소화시킬 수 있다. 그러한 예시 최적화는 상기에서 논의된 식 H'Rx = m에 관하여 다음의 성능 지수(figure-of-merit)에 의해 나타날 수 있다.
|| x-1 ||^2 + α*|| Dx ||^2
최적화 문제에 대한 해결책을 제약하기 위해 사용될 수 있는 다른 조건들이 있을 수 있다는 것을 유의한다. 일 실시예에서, 평활도(smoothness) 제약은 최종 톤 곡선의 매끄러움을 최대화(예컨대, 임의의 갑작스런 변화들을 최소화)시키기 위해 사용될 수 있다. 예를 들어, 게인들의 파생물(상기의 관계 내의 'Dx')을 최소화시키는 것은 게인들 중에서 변화 속도를 최소화시켜, 최종 톤 곡선의 평활도를 최대화시키는 것을 초래할 수 있다. 대안으로, 게인들을 빈 값들에 적용시키는 것에 기인한 값들의 파생물(예컨대, 상기의 관계 내의 'Dx' 대신에 'DRx')을 최소화시키는 것은 또한 최종 톤 곡선의 평활도를 확보하기 위해 최적화 제약으로서 활용될 수 있다. 또 다른 실시예에서, 아이덴티티 제약은, 임의의 최종 톤 곡선이 유니티(unity) 또는 아이덴티티 곡선의 그의 편차를 최소화시킴을 확보하기 위해 사용될 수 있다. 예를 들어보면, 상기의 관계에서와 같이, x-1을 정규화시키는 것은, 최종 톤 곡선이 (최적화 문제에 대한 다른 잠재적인 해결책들과 비교할 시에) 아이덴티티 기울기로부터 많이 변화하지 않는 것을 확보할 수 있다.
또 다른 예시에서, 게인의 파생물이 항상 양인 것(예컨대, 'Dx > 0' 또는 'DRx > 0')을 확보하는 최적화 제약을 사용하는 것은 조정된 이미지의 구역들 내의 톤 도치(inversion)의 기회를 막기(또는 최소화하기) 위해 사용될 수 있다(예컨대, 최종 톤 곡선의 단조성을 최대화시킴).
추가로, 양의 기울기 제약은, 임의의 최종 톤 곡선이 양의 기울기를 가지면서, 최소 및/또는 최대 기울기 제약들이 또한 최종 해결책을 더 특징화시키기 위해 활용될 수 있다는 것을 확보하기 위해 활용될 수 있다. 몇몇 실시예들에서, 결정된 게인들에 대한 최소 또는 최대 값들은, 최종 톤 곡선의 기울기가 너무 얕지 않거나, 너무 가파르지 않는 것을 확보하기 위해 사용될 수 있다. 예를 들어, 0.25의 최소 게인 및 4.0의 최대 게인을 확보하는 것은 최적화 문제에 대한 최종 해결책을 개선시키기 위해 사용될 수 있다. 그러한 최소 및 최대 제약들은 문제를 해결하는 중에 또는 해결한 후에 적용될 수 있고, 하나 이상의 2차(quadratic) 프로그램밍 툴들을 활용할 수 있다. 추가로, 몇몇 실시예들에서, 최종 해결책(게인들로서, 톤 곡선 및/또는 룩업 테이블)이 조정되어, 그 예로서 최종 톤 곡선의 평활도를 강화시킬 수 있다.
상기에서 유의한 바와 같이, 몇몇 실시예들에서, 최적화 문제는 (예컨대, 블록 및 가능하다면 이웃 블록들에 대한) 로컬 톤 곡선들을 결정하기 위해 정의될 수 있다. 이로써, 몇몇 실시예들에서, 최적화 제약들은 (예컨대, 게인들 대신에) 톤 곡선들에 관하여 정의될 수 있다.
추가로, 특정 최적화 문제 및 제약들은 실시예들 간에서 변화할 수 있다. 예를 들어, 서로 다른 식들 및 제약들은 서로 다른 렌더링 능력들을 갖는 서로 다른 유형들의 디스플레이들(그 예로서 LCD 스크린들, e-페이퍼, 모바일 폰들, 기타 등등)에 대해 최종 이미지를 적절하게 조정하기 위해 사용될 수 있다. 추가로, 예시 최적화들 및 제약들이 게인들 및/또는 게인 값들에 관하여 상술되었지만, 유사한 최적화 및 제약들은 게인 값들을 결정함 없이, 로컬 톤 곡선들을 결정할 시에 사용될 수 있다.
한 세트의 게인들이 이미지의 논리 블록들 각각에 대해 결정된 이후에, 이들 게인들은 각각의 블록에 대해 로컬 톤 곡선들을 발생시키기 위해 사용될 수 있다. 예를 들어, 몇몇 실시예들에 따라서, 히스토그램의 해당 빈 각각에 대해 하나의 게인을 포함하는 한 세트의 게인들이 결정된 경우, 빈들에 대한 해당 밝기 값들(예컨대, 빈에 나타난 범위에 대한 평균, 평균치 또는 중앙 값)에 게인 값들을 곱함은 각자의 논리 블록에 대한 로컬 톤 곡선을 초래할 수 있다. 다른 실시예들에서, 로컬 톤 곡선들은 상술된 바와 같이, 우선 한 세트의 게인들을 결정함 없이 결정된다. 로컬 톤 곡선들은 이하에서 보다 상세하게 기술될 바와 같이, 이미지를 조정하기 위해(예컨대, 로컬 톤 맵핑을 수행하기 위해) 차후에 사용될 수 있다.
도 7은 일 실시예에 따른, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정을 이미지에 적용하는 방법의 일 실시예를 예시한 플로차트이다. 블록들(700 및 710)에 도시된 바와 같이, 휘도 값은 이미지의 각각의 픽셀에 대해 결정될 수 있다.
각각의 픽셀에 대해, 톤 곡선은 하나 이상의 블록들에 대한 로컬 톤 곡선들에 기반하여 픽셀에 대해 발생될 수 있다. 예를 들어, 픽셀이 상주한 블록에 대한 로컬 톤 곡선, 나아가 가능하다면 하나 이상의 이웃 블록들에 대한 로컬 톤 곡선들은 픽셀에 대한 단일 로컬 톤 곡선에 조합될 수 있다. 일 실시예에서, 보간된 로컬 톤 곡선은, 도 8에 관하여 이하에서 보다 상세하게 기술될 바와 같이, 픽셀이 각각의 블록의 중앙으로부터 얼마나 멀리 떨어져 있는지에 따라 개별적인 로컬 톤 곡선들에 가중치를 매기는 것에 기반하여 발생될 수 있다. 픽셀에 대한 휘도 값은 그 후에 블록(730)에 도시된 바와 같이, 발생된 톤 곡선에 기반하여 조정될 수 있다.
픽셀 조정과 함께 사용되기 위해 별도의, 새로운, 톤 곡선을 발생시키고, 그 후에 그 새로운 톤 곡선에 기반하여 픽셀의 휘도 값을 조정하는 것에 관하여 기술되었지만, 몇몇 실시예들에서, 블록들의 개별적인 로컬 톤 곡선들이 픽셀에 대한 별도의, 새로운 톤 곡선을 실제로 발생시킴 없이 픽셀의 휘도 값을 조정하기 위해 사용될 수 있다는 것을 유의한다. 예를 들어, 사용될 각각의 로컬 톤 곡선은 가중치가 매겨지고, 누적 방식으로 픽셀에 대한 휘도 값에 적용될 수 있고, 그 결과 픽셀의 휘도 값에 대한 총 조정은 별도의, 새로운 로컬 톤 곡선이 발생된 것처럼 동일할 수 있다.
픽셀에 대해 조정된 휘도 값은 블록(740)에 도시된 바와 같이, 픽셀에 대해 새로운 색상 값을 발생시키기 위해 사용될 수 있다(또는 상기 새로운 색상 값으로 전환될 수 있다). 예를 들어, 픽셀의 RGB 값은 보간된 톤 곡선에 기반하여 조정된 휘도 값으로 전환되고, 그 후에 RGB 값으로 다시 전환될 수 있다. 다른 색상 및/또는 밝기 스킴(scheme)들(또는 색 공간들)이 다양한 실시예들에 따라서, RGB와는 다르게 사용될 수 있다는 것을 유의한다.
유사하게, 픽셀에 대한 휘도 값은 서로 다른 실시예들에 따라서, 다양한 방식들 중 어느 것으로 발생 및 조정될 수 있다. 본 명세서에 기술된 예시가 톤 곡선의 사용을 수반할 수 있지만, 몇몇 실시예들에서, LUT는 발생 및 사용될 수 있거나, 또는 게인들 그 자체들은 다른 방식들로 픽셀을 수정하기 위해 사용될 수 있다. 예를 들어, 픽셀의 RGB 값을 휘도 값으로 전환하는 것, 결정된 게인 값들에 따라 휘도 값들을 조정하는 것, 그리고 그 후에 휘도 값을 픽셀에 대한 RGB 값으로 다시 전환하는 것보다는 오히려, 몇몇 실시예들에서, 동등한 휘도 조정은 서로 다른 색 공간 내에서, 그 예로서 픽셀에 대한 개별적인 RGB 값들을 조정함으로써, 수행될 수 있다.
도 8은 일 실시예에 따른, 로컬 톤 곡선들에 기반한 픽셀의 조정을 예시한 논리 블록 다이어그램이다. 상술된 바와 같이, 계산된 로컬 톤 곡선들(또는 게인 값들)에 기반한 이미지에 대해 톤 조정들을 수행할 시에, 각각의 픽셀은 2 개 이상의 로컬 톤 곡선에 기반하여 조정될 수 있다. 예를 들어보면, 도 8에 예시된 바와 같이, 이미지(800)는 다수의 블록들로 논리적으로 분할되었을 수 있고, 로컬 톤 곡선들은 상술된 바와 같이, 각각의 블록에 대해 발생되었을 수 있다. 로컬 톤 곡선들에 기반한 최종 이미지를 발생시킬 시에, 단일 픽셀, 그 예로서 픽셀(850)은 다수의 블록들에 대한 톤 곡선들을 사용하여 조정될 수 있다. 예를 들어, 일 실시예에서, 4 개의 서로 다른 논리 블록들, 그 예로서 블록들(810, 820, 830 및 840)에 대한 로컬 톤 곡선들은 픽셀(850)에 대한 휘도 값(그러므로 색상 값)을 조정하기 위해 사용될 수 있다.
일반적으로, 픽셀(850)을 조정하기 위해 사용된 톤 곡선들은 서로 다른 실시예들에 따라서, 다양한 기법들 중 어느 것을 사용하여 조합 또는 적용될 수 있다. 예를 들어, 일 실시예에서, 사용될 각각의 톤 곡선은, 픽셀(850)이 해당 블록의 중앙으로부터 떨어진 상대 거리에 따라 가중치가 매겨질 수 있다. 이로써, 도 8에 예시된 예시에서, 블록(810)에 대한 톤 곡선은 가장 큰 가중치가 매겨진 톤 곡선일 수 있는 반면, 블록(840)에 대한 톤 곡선은 가장 작은 가중치가 매겨질 수 있다. 이로써, 몇몇 실시예들에 따라서, 이미지(800)의 각각의 픽셀은 이미지에 걸친 밝기 변화들의 평활도를 확보하는데 도움을 주고, 시각적 아티팩트들(예컨대, 헤일로 효과들, 링잉(ringing) 및/또는 다른 콘트라스트 왜곡들)의 도입을 감소시키는 것에 도움을 주는 방식으로 조정될 수 있다.
도 7에 관하여 상기에서 유의한 바와 같이, 일 실시예에서, 보간된 톤 곡선은 다수의 로컬 톤 곡선들에 기반하여 발생될 수 있고, 보간된 톤 곡선은 이미지(800) 내의 픽셀의 휘도 값을 조정하기 위해 사용될 수 있다. 다른 실시예들에서, 동일한 결과는 별도의 보간된 톤 곡선을 실제로 발생시킴 없이, 그 예로서 픽셀에 개별적으로 교시 로컬 톤 곡선을 적용함으로써, 얻어질 수 있다.
사용할 로컬 톤 곡선들의 개수, 나아가 이미지를 조정할 시에 로컬 톤 곡선들이 조합되는 특정 방식은 실시예 간에서 변화할 수 있다. 추가로, 몇몇 실시예들에 따라서, 로컬 톤 곡선이 픽셀에 대한 휘도 값을 조정하기 위해 사용된 룩업 테이블(LUT)로 고려될 수 있거나 전환될 수 있다는 것을 유의한다.
도 9는 일 실시예에 따른, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정을 비디오 스트림에 적용하는 것을 예시한 논리 블록 다이어그램이다. 도 9에 도시되고 상기에서 유의한 바와 같이, 본 명세서에 기술된 기법들은 그들 이미지들이 캡처링되는 중에(예컨대, 라이브) 또는 그 이후에, 비디오 스트림의 일부인 이미지들에 적용될 수 있다. 몇몇 실시예들에서, 이미지 톤 조정은 디지털 카메라 내의, 그 예로서 카메라 이미지 센서와 이미지 저장부 사이의 이미지 캡처 파이프라인의 일부로서, 수행될 수 있다. 로컬 곡선 계산을 사용한 이미지 톤 조정을 라이브 비디오 스트림에 적용할 시에, 비디오 스트림은 이미지가 메모리에 저장되어야 하기 전에, 각각의 이미지가 분석 및 조정되는 것을 방지하는 속도로 캡처링될 수 있다. 결과적으로, 몇몇 실시예들에서, 로컬 톤 곡선들을 발생시키기 위해 사용된 이미지는, (예컨대, 이미지를 조정할 시에) 로컬 톤 곡선들이 적용된 이미지와 동일하지 않을 수 있다. 일반적으로, 동적 범위 및/또는 밝기 레벨들은 비디오 프레임들 사이에서 많이 변화되지 않을 수 있다.
도 9에 도시된 바와 같이, 캡처링된 비디오 스트림(900)은 다수의 이미지 프레임들, 그 예로서 비디오 이미지들(910, 915, 920, 925, 930 및 935)을 포함할 수 있다. 도 9에 예시된 예시 비디오 스트림에서, 비디오 이미지 N은 비디오 이미지 N+1보다 이전에 비디오 스트림에서 일어날 수 있고, 비디오 이미지 N+1은 비디오 이미지 n+2보다 이전에 일어날 수 있다. 이로써, 도 9에서 초기 비디오 이미지들은 도면에서 보다 높은 곳에 나타나고 추후 이미지들은 도면에서 보다 낮은 곳에 나타난다. 로컬 톤 계산을 사용한 이미지 톤 조정을 비디오 스트림 내의 이미지들에 적용할 시에, 동일 기법들은 비디오 스트림 내의 연이은 이미지들에 반복적으로 적용될 수 있다. 이로써, 일 실시예에서, 로컬 톤 곡선들(940, 945, 950, 955 및 960)은 각자 비디오 이미지들(915, 920, 925, 930 및 935)에 적용될 수 있다. 이로써, 몇몇 실시예들에서, 한 이미지에 대해 계산된 로컬 톤 곡선들은 추후 이미지의 휘도 범위를 조정하기 위해 적용될 수 있다.
로컬 톤 곡선 계산을 사용한 이미지 톤 조정에 대한, 본 명세서에 기술된 기법들은 매우 다양한 컴퓨팅 디바이스들 중 어느 것 상에 구현될 수 있다. 본 명세서에 기술된 바와 같이, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정을 구현하도록 구성된 시스템의 일 실시예를 예시하는 도 10으로 이제 돌아간다. 일반적으로, 도 10에 예시된 컴퓨터 시스템은 퍼스널 컴퓨터 시스템, 데스크탑 컴퓨터, 랩탑 또는 노트북 컴퓨터, 메인프레임 컴퓨터 시스템, 핸드헬드 컴퓨팅 디바이스, 셀룰러 폰, 스마트폰, 모바일 폰, 워크스테이션, 네트워크 컴퓨터, 소비자 디바이스, 애플리케이션 서버, 저장 디바이스, 지능형 디스플레이, 주변장치 디바이스 그 예로서 스위치, 모뎀, 라우터, 기타 등등, 또는 일반적으로 임의의 유형의 컴퓨팅 디바이스를 포함하지만, 이에 제한되지 않는 다양한 유형들의 컴퓨팅 디바이스 중 어느 것일 수 있다. 일 예시 실시예에 따라서, 도 10에 예시된 시스템은 시스템-온-칩(system-on-a-chip, SOC)을 나타낼 수 있다. 이름에서 암시되는 바와 같이, SOC(1000)의 컴포넌트들은 집적 회로 "칩"처럼 단일 반도체 기판 상에 집적될 수 있다. 몇몇 실시예에서, 컴포넌트들은 시스템에서 둘 이상의 별개의 칩 상에 구현될 수 있다. soc(1000)는 본 명세서에서 예시로서 사용될 것이다.
예시된 실시예에서, SOC(1000)의 컴포넌트들은 중앙 프로세싱 유닛(CPU) 컴플렉스(1020), 온-칩 주변장치 컴포넌트들(1040A 및 1040B)(보다 간략하게, "주변장치들"), 메모리 제어기(MC)(1030), 통신 패브릭(fabric)(1010), 및 이미지 톤 조정기(200)(그 자체가 주변장치 컴포넌트로 고려될 수 있음)를 포함한다. soc(1000)는 또한 추가 컴포넌트들에, 그 예로서 메모리(1800) 및 카메라 이미지 센서(250)에 결합될 수 있다. 컴포넌트들(1020, 1030, 1040A 및 1040B, 그리고 200) 모두는 통신 패브릭(1010)에 결합될 수 있다. 메모리 제어기(1030)는 사용 중에 메모리(1800)에 결합될 수 있고, 주변장치(1040B)는 사용 중에 외부 인터페이스(1900)에 결합될 수 있다. 추가로, 이미지 톤 조정기(200)는 사용 중에 카메라 이미지 센서(250)에 결합될 수 있다. 예시되는 실시예에서, CPU 컴플렉스(1020)는 하나 이상의 프로세서(1024) 및 레벨 2(L2) 캐시(1022)를 포함한다.
주변장치들(1040A 및 1040B)은 SOC(1000)에 포함된 추가 하드웨어 기능성의 임의의 세트일 수 있다. 예를 들어, 주변장치들(1040A 및 1040B)은 하나 이상의 디스플레이 디바이스들 상에 비디오 데이터를 디스플레잉하도록 구성된 디스플레이 제어기들, 그래픽 프로세싱 유닛(GPU)들, 비디오 인코더/디코더들, 스케일러(scaler)들, 로테이터(rotator)들, 블렌더(blender)들, 기타 등등을 포함할 수 있다. 이미지 톤 조정기(200)는 몇몇 실시예들에서, 또 다른 비디오 주변장치의 일부, 그 예로서 카메라 이미지 센서(250)(또는 다른 이미지 센서)로부터 이미지 캡처 데이터를 프로세싱하도록 구성된 이미지 신호 프로세서일 수 있다. 주변장치들은 또한 오디오 주변장치들 그 예로서 마이크로폰들, 스피커들, 마이크로폰들 및 스피커들에 대한 인터페이스들, 오디오 프로세서들, 디지털 신호 프로세서들, 믹서들, 기타 등등을 포함할 수 있다. 주변장치들은, 인터페이스들 그 예로서 범용 직렬 버스(USB), PCI 익스프레스(PCIe)를 포함한 주변장치 컴포넌트 인터커넥트(PCI), 직렬 및 병렬 포트들, 기타 등등을 포함한 SOC(1000) 외부의 다양한 인터페이스들(1900)에 대한 주변장치 인터페이스 제어기들(예컨대, 주변장치(1040B))을 포함할 수 있다. 주변장치들은 네트워킹 주변장치들 그 예로서 미디어 액세스 제어기(MAC)들을 더 포함할 수 있다. 일반적으로, 임의의 세트의 하드웨어가 다양한 실시예들에 따라서, 포함될 수 있다.
보다 구체적으로, 도 10에서, soc(1000)는 본 명세서에서 기술된 바와 같이, 이미지 톤 조정기 컴포넌트, 예를 들어 컴포넌트들, 그 예로서 로컬 톤 곡선 계산을 사용한 이미지 톤 조정을 구현하도록 구성될 수 있는, 이미지 데이터 프로세서(210), 타깃 휘도 컴포넌트(220), 히스토그램 발생기(230) 및/또는 로컬 톤 곡선 발생기(240)를 포함한, 도 2에 예시된 바와 같은 이미지 톤 조정기(200)의 적어도 하나의 인스턴스를 포함할 수 있다.
CPU 컴플렉스(1020)는 SOC(1000)의 CPU 역할을 하는 하나 이상의 CPU 프로세서들(1024)을 포함할 수 있다. 시스템의 CPU는 시스템, 그 예로서 운영체제의 메인 제어 소프트웨어를 실행하는 프로세서(들)를 포함할 수 있다. 일반적으로, 사용 중 CPU에 의해 실행되는 소프트웨어는 시스템의 다른 컴포넌트들을 제어하여 소기의 시스템의 기능성을 실현할 수 있다. 프로세서들(1024)은 또한 다른 소프트웨어, 그 예로서 애플리케이션 프로그램들을 실행할 수 있다. 애플리케이션 프로그램들은 사용자 기능성을 제공할 수 있고, 저 레벨 디바이스 제어를 위해 운영체제에 의존할 수 있다. 따라서, 프로세서들(1024)은 또한 애플리케이션 프로세서들로 지칭될 수 있다. CPU 컴플렉스(1020)는 다른 하드웨어, 그 예로서 L2 캐시(1022) 및/또는 시스템의 다른 컴포넌트들에 대한 인터페이스(예컨대, 통신 패브릭(1010)에 대한 인터페이스)를 더 포함할 수 있다.
일반적으로, 프로세서는 프로세서에 의해 구현된 명령어 세트 아키텍처에 정의된 명령어들을 실행하도록 구성된 임의의 회로 및/또는 마이크로코드를 포함할 수 있다. 명령어들을 실행시키는 것에 응답하여 프로세서들 상에/에 의해 동작되는 명령어들 및 데이터는 메모리(1800)에 일반적으로 저장될 수 있지만, 소정의 명령어들 역시 주변장치들로의 직접적인 프로세서 액세스에 대해 정의될 수 있다. 프로세서들은 시스템 온 칩(SOC(1000)) 또는 다른 레벨들의 통합부로서 다른 컴포넌트들과 함께 집적 회로 상에서 구현된 프로세서 코어들을 망라할 수 있다. 프로세서들은 별개의 마이크로프로세서들, 프로세서 코어들 및/또는 멀티칩 모듈 구현부들 내에 집적화된 마이크로프로세서들, 다수의 집적 회로들로서 구현된 프로세서들, 기타 등등을 더 망라할 수 있다.
메모리 제어기(1030)는 일반적으로 SOC(1000)의 다른 컴포넌트들로부터 메모리 동작들을 수신하고, 메모리(1800)에 액세스하여 메모리 동작들을 완수하기 위한 회로를 포함할 수 있다. 메모리 제어기(1030)는 임의의 유형의 메모리(1800)에 액세스하도록 구성될 수 있다. 예를 들어, 메모리(1800)는 SRAM(static random access memory), DRAM(dynamic RAM), 그 예로서 더블 데이터 레이트(DDR, DDR2, DDR3 기타 등등) DRAM을 포함하는 SDRAM(synchronous DRAM)일 수 있다. 저전력/모바일 버전들의 DDR DRAM(예컨대, LPDDR, mDDR 기타 등등)이 지원될 수 있다. 메모리 제어기(1030)는 동작들을 지시하고(그리고 잠재적으로 재지시하고) 동작들을 메모리(1800)에 제시하는, 메모리 동작들을 위한 큐들을 포함할 수 있다. 메모리 제어기(1030)는 메모리로의 기입을 기다리는 기입 데이터 및 메모리 동작의 소스로의 복귀를 기다리는 판독 데이터를 저장하는 데이터 버퍼들을 더 포함할 수 있다. 몇몇 실시예들에서, 메모리 제어기(1030)는 최근에 액세스된 메모리 데이터를 저장하는 메모리 캐시를 포함할 수 있다. SOC 구현예들에서, 예를 들어, 메모리 캐시는, 다시 곧 액세스될 것으로 예상되는 경우에 메모리(1800)로부터의 데이터의 재-액세스를 피함으로써, SOC에서의 전력 소비를 감소시킬 수 있다. 일부 경우들에서, 메모리 캐시는 또한, 소정의 컴포넌트들만을 보조하는 프라이빗 캐시들 그 예로서 프로세서들(1024)의 L2 캐시(1022) 또는 캐시들과 상반되는 것과 같은, 시스템 캐시로서 지칭될 수 있다. 추가적으로, 몇몇 실시예에서, 시스템 캐시는 메모리 제어기(1030) 내에 위치될 필요가 없다.
실시예에서, 메모리(1800)는 칩-온-칩 또는 패키지-온-패키지 구성으로 SOC(1000)와 함께 패키징될 수 있다. SOC(1000) 및 메모리(1800)의 멀티칩 모듈 구성 역시 사용될 수 있다. 그러한 구성들은 시스템 내의 다른 컴포넌트들로의(예컨대, 종점들 16A 및 16B로의) 전송들보다 (데이터 관측 면에서) 상대적으로 더 안정적일 수 있다. 따라서, 보호 데이터는 메모리(1800)에 암호화되지 않은 상태로 상주할 수 있는 반면, 보호 데이터는 SOC(1000)와 외부 종점들 사이에서의 교환을 위해 암호화될 수 있다.
통신 패브릭(1010)은 SOC(1000)의 컴포넌트들 중에서 통신을 위한 임의의 통신 인터커넥트 및 프로토콜일 수 있다. 통신 패브릭(1010)은 공유 버스 구성들, 크로스 바(cross bar) 구성들, 및 브릿지를 갖는 계층적 버스들을 포함한 버스에 기반할 수 있다. 통신 패브릭(1010)은 또한 패킷에 기반할 수 있고, 브릿지를 갖는 계층이거나, 크로스 바, 지점 간 연결(point-to-point), 또는 다른 인터커넥트들일 수 있다.
SOC(1000)의 컴포넌트들의 개수(및 도 10에 도시된 것들, 그 예로서 CPU 컴플렉스(1020) 내에 있는 것들에 대한 서브컴포넌트들의 개수)가 실시예 간에서 변화할 수 있다는 것을 유의한다. 도 10에 도시된 개수보다 많거나 적은 각각의 컴포넌트/서브컴포넌트가 있을 수 있다.
몇몇 실시예들에서, 본 명세서에서 기술된 방법들은 컴퓨터 프로그램 제품, 또는 소프트웨어에 의해 구현될 수 있다. 몇몇 실시예들에서, 비-일시적인, 컴퓨터-판독가능 저장 매체는 컴퓨터 시스템(또는 다른 전자 디바이스들)을 프로그램하여, 본 명세서에 기술된 기법들 중 몇몇 또는 모두를 수행하기 위해 사용될 수 있는 명령어들을 저장할 수 있다. 컴퓨터-판독가능 저장 매체는 기계(예컨대, 컴퓨터)에 의해 판독가능한 형태(예컨대, 소프트웨어, 프로세싱 애플리케이션)로 정보를 저장하는 임의의 메커니즘을 포함할 수 있다. 기계-판독가능 매체는 자기 저장 매체(예컨대, 플로피 디스켓); 광 저장 매체(예컨대, CD-ROM); 광자기 저장 매체; 판독 전용 메모리(ROM); 랜덤 액세스 메모리(RAM); 소거 및 프로그램가능 메모리(예컨대, EPROM 및 EEPROM); 플래시 메모리; 전기, 또는 프로그램 명령어들을 저장하기에 적합한 다른 유형들의 매체를 포함할 수 있지만, 이에 제한되지 않는다. 추가로, 프로그램 명령어들은 광, 음향 또는 다른 형태의 전파된 신호(예컨대, 반송파들, 적외선 신호들, 디지털 신호들, 기타 등등)를 사용하여 통신될 수 있다.
컴퓨터 시스템(1100)은 하나 이상의 모듈들, 그 예로서 동일한 컴퓨터 시스템의 메모리(1800)에 저장된 프로그램 명령어들 내에 존재할 수 있거나, 컴퓨터 시스템(1000)과 유사하거나 서로 다른 또 다른 컴퓨터 시스템의 메모리 내에 저장된 프로그램 명령어들 내에 존재할 수 있는, 이미지 톤 조정기(200), 이미지 데이터 프로세서(210), 타깃 휘도 컴포넌트(220), 히스토그램 발생기(230), 및/또는 로컬 톤 곡선 발생기(240)를 실행하도록 구성될 수 있는 프로세서 유닛(1020)(가능하다면 다수의 프로세서들, 싱글-스레드(threaded) 프로세서, 멀티-스레드 프로세서, 멀티-코어 프로세서, 기타 등등을 포함함)을 포함할 수 있다. 몇몇 실시예들에서, 로컬 톤 곡선 계산을 사용한 이미지 톤 조정을 구현하도록 구성된 다양한 컴포넌트들은 함께 작동하는 서로 다른 컴퓨터 시스템들의 일부일 수 있다. 예를 들어, 일 실시예에서, 컴퓨터 시스템(800)은 이미지 데이터 프로세서(210)를 포함할 수 있는 반면, 다른 실시예들에서, 컴퓨터 시스템(1000)은 타깃 휘도 컴포넌트(220)를 포함할 수 있다. 또 다른 실시예들에서, 컴퓨터 시스템(1000)은 이미지 톤 조정기(200) 내에 있는 것과 같은 이미지 데이터 프로세서(210)뿐만 아니라, 이미지 데이터 프로세서(210), 타깃 휘도 컴포넌트(220), 히스토그램 발생기(230), 및/또는 로컬 톤 곡선 발생기(240)를 포함할 수 있다.
시스템 메모리(1800)는 (본원에서 기술된 실시예들 중 어느 것에 따라서) 로컬 톤 곡선 계산을 사용한 이미지 톤 조정에 대해 본 명세서에서 기술된 기법들 중 몇몇 또는 모두를 구현하도록 구성된 프로그램 명령어들을 포함할 수 있다. 예를 들어, 메모리(1800)는 이미지 톤 조정기(200)의 컴포넌트들 중 몇몇 또는 모두를 구현 및/또는 실행하는 코드를 포함할 수 있다.
다양한 실시예들에서, 이미지 톤 조정기(200), 이미지 데이터 프로세서(210), 타깃 휘도 컴포넌트(220), 히스토그램 발생기(230), 및/또는 로컬 톤 곡선 발생기(240), 및/또는 이들 컴포넌트들 중 개별적인 서브-모듈들 각각은 다양한 프로그래밍 언어들 또는 방법들 중 어느 것으로 구현될 수 있다. 예를 들어, 일 실시예에서, 이미지 톤 조정기(200), 이미지 데이터 프로세서(210), 타깃 휘도 컴포넌트(220), 히스토그램 발생기(230), 및/또는 로컬 톤 곡선 발생기(240)는 JAVA에 기반할 수 있는 반면, 또 다른 실시예에서, 이미지 톤 조정기(200), 이미지 데이터 프로세서(210), 타깃 휘도 컴포넌트(220), 히스토그램 발생기(230), 및/또는 로컬 톤 곡선 발생기(240)는 C 또는 C++ 또는 어셈블리 프로그래밍 언어들을 사용하여 기입될 수 있다. 게다가, 몇몇 실시예들에서, 이미지 톤 조정기(200), 이미지 데이터 프로세서(210), 타깃 휘도 컴포넌트(220), 히스토그램 발생기(230), 및/또는 로컬 톤 곡선 발생기(240), 나아가 그들 중 다양한 서브-모듈들은 동일한 프로그래밍 언어를 사용하여 구현될 수 없다.
다양한 시스템들 및 방법들이 특정 실시예들에 관하여, 그리고 상기 특정 실시예들의 문맥에 맞게 본 명세서에 기술되었지만, 이들 실시예들이 예시적이고 본원의 범주가 이들 특정 실시예들에 제한되지 않음은 이해될 것이다. 많은 변화들, 수정들, 추가들, 및 향상들이 가능하다. 예를 들어, 설명에서 식별된 블록들 및 논리 유닛들은 기술된 실시예들을 이해하기 위함이고 본원을 제한하는 것으로 의미되지는 않는다. 기능성은, 본 명세서에 기술되거나 서로 다른 전문 용어로 기술된 시스템들 및 방법들의 다양한 실현들에 있어, 서로 다르게 블록들로 분리되거나 조합될 수 있다.
이들 실시예들은 예시적이고 제한적이지 않은 것으로 의미된다. 따라서, 복수의 인스턴스들은 단일 인스턴스로서 본 명세서에 기술된 컴포넌트를 위해 제공될 수 있다. 다양한 컴포넌트들, 동작들 및 데이터 저장부들 사이의 경계들은 다소 임의적이고, 특정 동작들은 특정 예시적 구성들의 문맥에 맞게 예시된다. 기능성의 다른 할당들이 구상되고 다음의 청구항들의 범주 내에 속할 수 있다. 최종적으로, 대표적인 구성들에서 별개의 컴포넌트들로서 제시된 구조들 및 기능성은 조합된 구조 또는 컴포넌트로서 구현될 수 있다. 이들 및 다른 변화들, 수정들, 추가들 및 향상들은 다음의 청구항들에 정의된 바와 같이 본원의 범주 내에 속할 수 있다.
상기의 실시예들이 상세하게 기술되었지만, 수많은 변화들 및 수정들은 상기의 논의를 완전하게 인식하게 되면 명백해지게 될 것이다. 다음의 청구항들이 그러한 변화들 및 수정들 모두를 포괄하는 것으로 해석됨이 의도된다.

Claims (15)

  1. 시스템으로서,
    이미지 데이터 프로세서 - 상기 이미지 데이터 프로세서는,
    카메라 이미지 센서로부터 이미지 데이터를 수신하고;
    상기 수신된 이미지 데이터에 기반하여 휘도 데이터를 포함한 이미지에 대해 밝기 표상을 발생시키며;
    상기 수신된 이미지 데이터에 기반하여 각자의 휘도 히스토그램을, 상기 이미지의 복수의 블록들 각각에 대해, 발생시키도록 구성됨 -;
    타깃 휘도 컴포넌트 - 상기 타깃 휘도 컴포넌트는, 상기 밝기 표상의 상기 휘도 데이터를 수정함으로써, 상기 수정된 밝기 표상이 상기 복수의 블록들 각각에 대해 타깃 휘도 값들을 포함하도록 구성됨 -; 및
    로컬 톤 곡선 발생기 - 상기 로컬 톤 곡선 발생기는, 상기 복수의 블록들 각각에 대해 하나 이상의 톤 조정 값들을 결정하도록 구성되고, 블록에 대한 상기 톤 조정 값들은, 상기 블록 및 하나 이상의 이웃 블록들에 대한 상기 각자의 휘도 히스토그램들에 합동으로 적용될 시에, 상기 블록 및 상기 이웃 블록들에 대한 각자의 타깃 휘도 값들과 매칭하는 휘도 값들을 발생시킴 -;를 포함하며,
    상기 이미지 데이터 프로세서는 상기 하나 이상의 톤 조정 값들에 기반하여 현재 이미지에 대해 이미지 데이터를 조정하도록 더 구성되는, 시스템.
  2. 제1항에 있어서, 상기 복수의 블록들 각각에 대해 하나 이상의 톤 조정 값들을 결정하기 위해, 상기 로컬 톤 곡선 발생기는, 하나 이상의 최적화 제약들에 따라, 제약을 받는(under-constrained) 최적화 문제에 최적화 해결 기법을 적용하도록 더 구성되고, 상기 제약을 받는 최적화 문제는 상기 타깃 휘도 값들과, 상기 블록에 대한 상기 톤 조정 값들과, 그리고 상기 블록 및 하나 이상의 이웃 블록들에 대한 각자의 휘도 히스토그램들 사이의 관계를 정의하는, 시스템.
  3. 제2항에 있어서, 상기 최적화 해결 기법을 적용하기 위해, 상기 로컬 톤 곡선 발생기는, 하나 이상의 문제 해결 알고리즘들을 적용함으로써, 상기 하나 이상의 최적화 제약들이 최소화되도록 더 구성되는, 시스템.
  4. 제2항 또는 제3항에 있어서, 각각의 블록에 대한 상기 휘도 히스토그램은 복수의 빈(bin)들 각각에 대한 휘도 분포 정보를 포함하고, 상기 정의된 관계는 상기 블록 및 상기 하나 이상의 이웃 블록들 각각에 대한 각자의 휘도 분포 정보와, 각각의 빈에 대한 상기 휘도 값들과, 상기 하나 이상의 톤 조정 값들과, 그리고 상기 타깃 휘도 값들 사이의 관계를 포함하는, 시스템.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 이미지 데이터 프로세서는 상기 카메라 이미지 센서에 의해 캡처링된 비디오 스트림 내의 복수의 이미지들 각각에 대한 이미지 데이터를 수신하도록 더 구성되고, 상기 현재 이미지는 상기 비디오 스트림 내의 복수의 이미지들 중 하나이고, 상기 수신된 이미지 데이터는 상기 현재 이미지보다 이전에 상기 비디오 스트림에서 일어난 이미지에 대한 것인, 시스템.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 복수의 블록들 각각에 대해 하나 이상의 톤 조정 값들을 결정하기 위해, 상기 로컬 톤 곡선 발생기는 상기 블록에 대해 로컬 톤 곡선을 발생시키도록 더 구성되는, 시스템.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 이미지 데이터 프로세서는 상기 이미지의 다운샘플링된 버전(downsampled version)을 발생시키도록 더 구성되고, 상기 다운샘플링된 버전은 상기 이미지의 상기 밝기 표상을 포함하고;
    상기 타깃 휘도 컴포넌트는 상기 밝기 표상에 적어도 부분적으로 기반하여, 상기 복수의 블록들 각각에 대해 상기 타깃 휘도 값들을 발생시키도록 더 구성되며;
    상기 타깃 휘도 값들을 발생시키기 위해, 상기 로컬 톤 곡선 발생기는 상기 타깃 휘도 값들을 포함한 상기 다운샘플링된 버전의 타깃 버전을 발생시킴으로써, 상기 다운샘플링된 버전의 하나 이상의 타깃 휘도 값들이 상기 이미지의 복수의 블록들 각각에 대응하도록 더 구성되는, 시스템.
  8. 제7항에 있어서, 상기 타깃 휘도 값들을 발생시키기 위해, 상기 로컬 톤 곡선 발생기는 상기 타깃 휘도 값들을 결정함으로써, 전체 휘도 범위가 이미지에 대한 상기 밝기 표상에 대한 전체 휘도 범위와 비교하여 감소되도록 더 구성되는, 시스템.
  9. 방법으로서,
    컴퓨팅 디바이스가,
    카메라 이미지 센서로부터 이미지 데이터를 수신하는 것;
    상기 수신된 이미지 데이터에 기반하여 휘도 데이터를 포함한 이미지에 대해 밝기 표상을 발생시키는 것;
    상기 수신된 이미지 데이터에 기반하여 각자의 휘도 히스토그램을, 상기 이미지의 복수의 블록들 각각에 대해, 발생시키는 것;
    상기 밝기 표상의 상기 휘도 데이터를 수정함으로써, 상기 수정된 밝기 표상이 상기 복수의 블록들 각각에 대해 타깃 휘도 값들을 포함하는 것;
    상기 복수의 블록들 각각에 대해 하나 이상의 톤 조정 값들을 결정하는 것 - 블록에 대한 상기 톤 조정 값들은, 상기 블록 및 하나 이상의 이웃 블록들에 대한 상기 각자의 휘도 히스토그램들에 합동으로 적용될 시에, 상기 블록 및 상기 이웃 블록들에 대한 각자의 타깃 휘도 값들과 매칭하는 휘도 값들을 발생시킴 -; 및
    상기 하나 이상의 톤 조정 값들에 기반하여 현재 이미지에 대해 이미지 데이터를 조정하는 것을 수행하는 단계를 포함하는, 방법.
  10. 제9항에 있어서, 상기 하나 이상의 톤 조정 값들을 결정하는 것은,
    상기 타깃 휘도 값들과, 상기 블록에 대한 상기 하나 이상의 톤 조정 값들과, 그리고 각자의 휘도 히스토그램 정보 사이의 관계를 정의하는 것 - 상기 정의된 관계는 제약을 받는 최적화 문제를 포함함 -; 및
    하나 이상의 최적화 제약들에 따라, 상기 정의된 관계에 최적화 해결 기법을 적용하는 것을 포함하는, 방법.
  11. 제10항에 있어서, 각각의 블록에 대한 상기 히스토그램 정보는 복수의 빈들 각각에 대한 휘도 분포 정보를 포함하고, 상기 정의된 관계는 상기 블록 및 상기 하나 이상의 이웃 블록들 각각에 대한 각자의 휘도 분포 정보와, 각각의 빈에 대한 휘도 값들과, 상기 하나 이상의 톤 조정 값들과, 그리고 상기 타깃 휘도 값들 사이의 관계를 포함하는, 방법.
  12. 제10항 또는 제11항에 있어서, 상기 최적화 해결 기법을 적용하는 것은 하나 이상의 문제 해결 알고리즘들을 적용함으로써, 상기 하나 이상의 최적화 제약들이 최소화되는 것을 포함하는, 방법.
  13. 제12항에 있어서, 상기 하나 이상의 톤 조정 값들은 로컬 톤 곡선을 포함하고, 상기 하나 이상의 최적화 제약들은,
    상기 로컬 톤 곡선에 관한 최소 기울기 제약; 또는
    상기 로컬 톤 곡선에 관한 최대 기울기 제약을 포함하는, 방법.
  14. 제9항 내지 제13항 중 어느 한 항에 있어서, 상기 하나 이상의 톤 조정 값들을 결정하는 것은 상기 블록에 대해 로컬 톤 곡선을 발생시키는 것을 포함하는, 방법.
  15. 제9항 내지 제14항 중 어느 한 항에 있어서, 상기 하나 이상의 톤 조정 값들을 결정하는 것은, 상기 블록 및 상기 하나 이상의 이웃 블록들 각각에 대한 상기 각자의 히스토그램 정보에 합동으로 적용될 시에, 상기 블록 및 상기 하나 이상의 이웃 블록들 각각에 대한 상기 각자의 타깃 휘도 값들과 매칭하는, 상기 블록 및 상기 하나 이상의 이웃 블록들 각각에 대한 새로운 휘도 값들을 발생시키는 한 세트의 하나 이상의 게인(gain)들을 상기 복수의 블록들 각각에 대해 발생시키는 것을 포함하고, 하나 이상의 톤 조정들을 수행하는 것은 상기 로컬 톤 곡선들에 기반하여 상기 이미지를 조정하는 것을 포함하는, 방법.
KR1020167008143A 2013-09-10 2014-08-20 로컬 톤 곡선 계산을 사용한 이미지 톤 조정 KR101792809B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/023,159 US8958658B1 (en) 2013-09-10 2013-09-10 Image tone adjustment using local tone curve computation
US14/023,159 2013-09-10
PCT/US2014/051787 WO2015038299A1 (en) 2013-09-10 2014-08-20 Image tone adjustment using local tone curve computation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031054A Division KR101931466B1 (ko) 2013-09-10 2014-08-20 로컬 톤 곡선 계산을 사용한 이미지 톤 조정

Publications (2)

Publication Number Publication Date
KR20160051821A true KR20160051821A (ko) 2016-05-11
KR101792809B1 KR101792809B1 (ko) 2017-11-02

Family

ID=51539323

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177031054A KR101931466B1 (ko) 2013-09-10 2014-08-20 로컬 톤 곡선 계산을 사용한 이미지 톤 조정
KR1020167008143A KR101792809B1 (ko) 2013-09-10 2014-08-20 로컬 톤 곡선 계산을 사용한 이미지 톤 조정

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020177031054A KR101931466B1 (ko) 2013-09-10 2014-08-20 로컬 톤 곡선 계산을 사용한 이미지 톤 조정

Country Status (6)

Country Link
US (2) US8958658B1 (ko)
EP (2) EP3044755B1 (ko)
JP (2) JP6186512B2 (ko)
KR (2) KR101931466B1 (ko)
TW (1) TWI557690B (ko)
WO (1) WO2015038299A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190094976A (ko) * 2018-02-06 2019-08-14 한화테크윈 주식회사 영상처리장치 및 방법
WO2020040457A1 (ko) * 2018-08-23 2020-02-27 삼성전자주식회사 디스플레이 장치 및 그 휘도 제어 방법
US10735688B2 (en) 2017-07-13 2020-08-04 Samsung Electronics Co., Ltd. Electronics apparatus, display apparatus and control method thereof

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9955084B1 (en) * 2013-05-23 2018-04-24 Oliver Markus Haynold HDR video camera
US8958658B1 (en) * 2013-09-10 2015-02-17 Apple Inc. Image tone adjustment using local tone curve computation
JP6362793B2 (ja) * 2015-01-19 2018-07-25 ドルビー ラボラトリーズ ライセンシング コーポレイション ハイダイナミックレンジ映像のためのディスプレイマネジメント
CN107409223B (zh) * 2015-06-09 2020-02-14 华为技术有限公司 视频编解码方法和视频编解码器
US10530995B2 (en) * 2015-06-12 2020-01-07 Gopro, Inc. Global tone mapping
US9659349B2 (en) * 2015-06-12 2017-05-23 Gopro, Inc. Color filter array scaler
US11107204B2 (en) * 2015-09-02 2021-08-31 Faurecia Irystec, Inc. System and method for real-time tone-mapping
US10114447B2 (en) * 2015-12-10 2018-10-30 Samsung Electronics Co., Ltd. Image processing method and apparatus for operating in low-power mode
CN105744157A (zh) * 2016-02-02 2016-07-06 西安电子科技大学 一种图像像素采样值转换、采样值处理方法及装置
CN105825485B (zh) * 2016-03-30 2018-12-21 努比亚技术有限公司 一种图像处理系统和方法
TWI603623B (zh) * 2016-04-20 2017-10-21 恆景科技股份有限公司 自動曝光控制與影像對比調整系統
JP6770828B2 (ja) * 2016-05-19 2020-10-21 オリンパス株式会社 顕微鏡
US9871972B2 (en) * 2016-06-21 2018-01-16 Himax Imaging Limited Auto exposure control system and method
US10482569B2 (en) * 2016-07-11 2019-11-19 DISC Intellectual Properties, LLC Image data encryption and rendering system
US10614603B2 (en) 2016-09-19 2020-04-07 Qualcomm Incorporated Color normalization for a multi-camera system
US10147166B2 (en) 2016-09-23 2018-12-04 Apple Inc. Methods and systems for spatially localized image editing
WO2018085447A1 (en) * 2016-11-04 2018-05-11 Flir Systems, Inc. Dynamic range compression for thermal video
CN111724316B (zh) * 2017-04-11 2023-11-10 华为技术有限公司 处理高动态范围图像的方法和装置
DE102017218072A1 (de) * 2017-10-11 2019-04-11 Robert Bosch Gmbh Verfahren zum Aufnehmen eines Bildes
CN108040209B (zh) * 2017-12-20 2019-12-13 维沃移动通信有限公司 一种拍摄方法和移动终端
CN108053381B (zh) * 2017-12-22 2022-04-22 深圳创维-Rgb电子有限公司 动态色调映射方法、移动终端及计算机可读存储介质
JP7073191B2 (ja) * 2018-05-25 2022-05-23 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
US10628929B2 (en) * 2018-05-28 2020-04-21 Augentix Inc. Method and computer system of image enhancement
US11330163B2 (en) 2018-06-29 2022-05-10 Qualcomm Incorporated Exchanging an HDR-combined stream and associated exposures between a camera sensor module and a vision processing system
JP7280670B2 (ja) * 2018-07-06 2023-05-24 キヤノン株式会社 画像処理装置、制御方法、及びプログラム
US11049224B2 (en) 2018-12-05 2021-06-29 Microsoft Technology Licensing, Llc Automated real-time high dynamic range content review system
US10818268B2 (en) 2018-12-06 2020-10-27 Google Llc Adjusting a brightness of a display based on an image
US10949959B2 (en) 2019-02-18 2021-03-16 Samsung Electronics Co., Ltd. Processing image data in a composite image
CN110415188B (zh) * 2019-07-10 2021-08-20 首都师范大学 一种基于多尺度形态学的hdr图像色调映射方法
EP3935601A4 (en) * 2019-08-06 2022-04-27 Samsung Electronics Co., Ltd. LOCAL HISTOGRAM MATCHING WITH GLOBAL REGULARIZATION AND MOTION EXCLUSION FOR MULTI-EXPOSURE IMAGE BLENDING
US11430093B2 (en) 2019-10-01 2022-08-30 Microsoft Technology Licensing, Llc Face-based tone curve adjustment
EP3872749A1 (en) * 2020-02-25 2021-09-01 STMicroelectronics (Research & Development) Limited Local tone mapping for hdr video
US11803947B2 (en) * 2020-03-18 2023-10-31 Intel Corporation Brightness and contrast enhancement for video
KR20210123608A (ko) * 2020-04-03 2021-10-14 에스케이하이닉스 주식회사 이미지 센싱 장치 및 그의 동작 방법
TWI743746B (zh) * 2020-04-16 2021-10-21 瑞昱半導體股份有限公司 影像處理方法及影像處理電路
CN113556545B (zh) * 2020-04-23 2023-12-08 瑞昱半导体股份有限公司 图像处理方法及图像处理电路
KR20210142398A (ko) 2020-05-18 2021-11-25 에스케이하이닉스 주식회사 로컬 톤 맵핑 회로, 이미지 센싱 장치 및 그 동작방법
CN112929625B (zh) * 2021-02-08 2023-04-21 北京奇艺世纪科技有限公司 一种显示素材渲染方法及装置
US20230127327A1 (en) * 2021-10-22 2023-04-27 Samsung Electronics Co., Ltd. System and method for learning tone curves for local image enhancement
CN115861096B (zh) * 2022-11-22 2023-10-31 瀚博半导体(上海)有限公司 图像处理方法、装置及计算机设备

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643398B2 (en) * 1998-08-05 2003-11-04 Minolta Co., Ltd. Image correction device, image correction method and computer program product in memory for image correction
US7006668B2 (en) * 1999-12-28 2006-02-28 Canon Kabushiki Kaisha Image processing method and image processing apparatus
JP2001275029A (ja) * 2000-03-28 2001-10-05 Minolta Co Ltd デジタルカメラ、その画像信号処理方法及び記録媒体
US7271838B2 (en) * 2002-05-08 2007-09-18 Olympus Corporation Image pickup apparatus with brightness distribution chart display capability
US7136073B2 (en) 2002-10-17 2006-11-14 Canon Kabushiki Kaisha Automatic tone mapping for images
JP4066803B2 (ja) * 2002-12-18 2008-03-26 株式会社ニコン 画像処理装置、画像処理プログラム、画像処理方法および電子カメラ
US7492375B2 (en) * 2003-11-14 2009-02-17 Microsoft Corporation High dynamic range image viewing on low dynamic range displays
JP3949684B2 (ja) * 2004-04-30 2007-07-25 三菱電機株式会社 階調補正装置、階調補正用プログラム、携帯端末機器及びパーソナルコンピュータ
US7949201B2 (en) * 2004-09-01 2011-05-24 Nec Corporation Image correction processing system and image correction processing method
JP4641784B2 (ja) * 2004-10-29 2011-03-02 パナソニック株式会社 階調変換処理装置、階調変換処理方法、画像表示装置、テレビジョン、携帯情報端末、カメラ、集積回路および画像処理プログラム
US7593603B1 (en) * 2004-11-30 2009-09-22 Adobe Systems Incorporated Multi-behavior image correction tool
JP4467416B2 (ja) * 2004-12-06 2010-05-26 三菱電機株式会社 階調補正装置
US7433513B2 (en) * 2005-01-07 2008-10-07 Hewlett-Packard Development Company, L.P. Scaling an array of luminace values
JP4607006B2 (ja) * 2005-12-27 2011-01-05 京セラ株式会社 映像信号処理方法および映像信号処理装置
JP4665780B2 (ja) * 2006-01-30 2011-04-06 ソニー株式会社 顔重要度判定装置、方法、および撮像装置
US7639893B2 (en) * 2006-05-17 2009-12-29 Xerox Corporation Histogram adjustment for high dynamic range image mapping
US20080042927A1 (en) * 2006-08-16 2008-02-21 Samsung Electronics Co., Ltd. Display apparatus and method of adjusting brightness thereof
JP2008092052A (ja) * 2006-09-29 2008-04-17 Matsushita Electric Ind Co Ltd 階調補正装置および撮像装置
TWI425841B (zh) * 2007-04-10 2014-02-01 Novatek Microelectronics Corp 顯示裝置及其色彩調整方法與顯示視訊訊號之方法
US8085852B2 (en) 2007-06-26 2011-12-27 Mitsubishi Electric Research Laboratories, Inc. Inverse tone mapping for bit-depth scalable image coding
US9830691B2 (en) 2007-08-03 2017-11-28 The University Of Akron Method for real-time implementable local tone mapping for high dynamic range images
US8411983B2 (en) * 2007-08-31 2013-04-02 Ati Technologies Ulc Method and apparatus for producing a contrast enhanced image
JP4600448B2 (ja) * 2007-08-31 2010-12-15 カシオ計算機株式会社 階調補正装置、階調補正方法、及び、プログラム
JP2009071621A (ja) * 2007-09-13 2009-04-02 Panasonic Corp 画像処理装置及びデジタルカメラ
JP5171434B2 (ja) * 2007-09-13 2013-03-27 パナソニック株式会社 撮像装置、撮像方法、プログラム、および集積回路
WO2009063553A1 (ja) * 2007-11-13 2009-05-22 Fujitsu Limited 画像補正装置、画像補正方法および画像補正プログラム
US8103120B2 (en) * 2008-09-22 2012-01-24 Solomon Systech Limited Method and apparatus of local contrast enhancement
JP5121675B2 (ja) * 2008-11-13 2013-01-16 キヤノン株式会社 画像処理装置、映像表示装置、撮像装置、画像処理方法
US8363131B2 (en) 2009-01-15 2013-01-29 Aptina Imaging Corporation Apparatus and method for local contrast enhanced tone mapping
EP2449526A1 (en) 2009-06-29 2012-05-09 Thomson Licensing Zone-based tone mapping
JP4795473B2 (ja) * 2009-06-29 2011-10-19 キヤノン株式会社 画像処理装置及びその制御方法
RU2012106583A (ru) * 2009-07-31 2013-10-20 Шарп Кабусики Кайся Устройство регулирования градации, устройство отображения изображений, телевизионный приемник, программа и считываемый компьютером носитель данных, имеющий сохраненную программу
US9336578B2 (en) 2009-09-14 2016-05-10 Thomson Licensing Interactive tone mapping for high dynamic range video
US8478042B2 (en) * 2009-10-26 2013-07-02 Texas Instruments Incorporated Method and apparatus for enhancing image or video quality using an exposure aware scene adaptive global brightness contrast
JP5493717B2 (ja) * 2009-10-30 2014-05-14 大日本印刷株式会社 画像処理装置、画像処理方法、および、画像処理用プログラム
JP2011124800A (ja) * 2009-12-10 2011-06-23 Sony Corp 画像処理装置、画像処理方法及びプログラム
JP2011166522A (ja) * 2010-02-10 2011-08-25 Sony Corp 画像処理装置、画像処理方法及びプログラム
JP2011188391A (ja) * 2010-03-10 2011-09-22 Sony Corp 画像処理装置および方法、並びにプログラム
JP2011203814A (ja) * 2010-03-24 2011-10-13 Sony Corp 画像処理装置および方法、プログラム
US8766999B2 (en) 2010-05-20 2014-07-01 Aptina Imaging Corporation Systems and methods for local tone mapping of high dynamic range images
WO2012017946A1 (ja) * 2010-08-04 2012-02-09 日本電気株式会社 画像処理方法、画像処理装置及び画像処理プログラム
US9478173B2 (en) * 2010-08-30 2016-10-25 Qualcomm Incorporated Adaptive color correction for display with backlight modulation
US8736766B2 (en) * 2010-10-15 2014-05-27 Sharp Kabushiki Kaisha Image processing device, image processing method, image processing program, and recording medium, each capable of correcting luminance of image so that the local deterioration of grey scales is unlikely to occur
GB2500835B (en) 2010-12-10 2014-02-12 Ibm High-dynamic range video tone mapping
US8391598B2 (en) 2011-01-05 2013-03-05 Aptina Imaging Corporation Methods for performing local tone mapping
EP2681710B1 (en) 2011-03-02 2018-09-12 Dolby Laboratories Licensing Corporation Local multiscale tone-mapping operator
JP5269964B2 (ja) * 2011-09-30 2013-08-21 株式会社東芝 電子機器及び映像処理方法
JP6259185B2 (ja) * 2012-12-21 2018-01-10 キヤノン株式会社 撮像装置及びその制御方法、プログラム並びに記憶媒体
JP6116272B2 (ja) * 2013-02-08 2017-04-19 キヤノン株式会社 画像処理装置及び画像処理方法、プログラム、記憶媒体
US8958658B1 (en) * 2013-09-10 2015-02-17 Apple Inc. Image tone adjustment using local tone curve computation

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10735688B2 (en) 2017-07-13 2020-08-04 Samsung Electronics Co., Ltd. Electronics apparatus, display apparatus and control method thereof
KR20190094976A (ko) * 2018-02-06 2019-08-14 한화테크윈 주식회사 영상처리장치 및 방법
WO2020040457A1 (ko) * 2018-08-23 2020-02-27 삼성전자주식회사 디스플레이 장치 및 그 휘도 제어 방법
CN112639958A (zh) * 2018-08-23 2021-04-09 三星电子株式会社 显示设备以及控制其亮度的方法
US11322116B2 (en) 2018-08-23 2022-05-03 Samsung Electronics Co., Ltd. Display device and method for controlling brightness thereof

Also Published As

Publication number Publication date
TW201519160A (zh) 2015-05-16
EP3044755B1 (en) 2019-04-03
US9369684B2 (en) 2016-06-14
TWI557690B (zh) 2016-11-11
US20150071537A1 (en) 2015-03-12
KR101931466B1 (ko) 2018-12-20
US20150181186A1 (en) 2015-06-25
KR101792809B1 (ko) 2017-11-02
EP3525166A1 (en) 2019-08-14
JP6186512B2 (ja) 2017-08-23
JP6486996B2 (ja) 2019-03-20
EP3044755A1 (en) 2016-07-20
JP2017225150A (ja) 2017-12-21
US8958658B1 (en) 2015-02-17
KR20170122859A (ko) 2017-11-06
WO2015038299A1 (en) 2015-03-19
JP2016535368A (ja) 2016-11-10

Similar Documents

Publication Publication Date Title
KR101792809B1 (ko) 로컬 톤 곡선 계산을 사용한 이미지 톤 조정
US9984446B2 (en) Video tone mapping for converting high dynamic range (HDR) content to standard dynamic range (SDR) content
US10868985B2 (en) Correcting pixel defects based on defect history in an image processing pipeline
US10467496B2 (en) Temporal filtering of independent color channels in image data
US9479695B2 (en) Generating a high dynamic range image using a temporal filter
US10269095B2 (en) Dynamically determining filtering strength for noise filtering in image processing
US9911174B2 (en) Multi-rate processing for image data in an image processing pipeline
US20170064227A1 (en) Pixel defect preprocessing in an image signal processor
US9514525B2 (en) Temporal filtering for image data using spatial filtering and noise history
US9324170B2 (en) Creating a blended image
CN107533275B (zh) 用于成像设备的空间上可调节的闪光
US8798386B2 (en) Method and system for processing image data on a per tile basis in an image sensor pipeline
CN104869323A (zh) 一种基于gpu的模块化实时视频与图像处理方法
Park et al. Programmable multimedia platform based on reconfigurable processor for 8K UHD TV
US9374526B2 (en) Providing frame delay using a temporal filter
US20170061576A1 (en) Applying chroma suppression to image data in a scaler of an image processing pipeline
KR20220010297A (ko) 엣지 기반 샤프니스 세기 제어 회로, 이미지 센싱 장치 및 그 동작방법
KR20210151450A (ko) 스마트 비닝 회로, 이미지 센싱 장치 및 그 동작방법
KR20220135801A (ko) 컬러 보정 회로, 이미징 센싱 장치 및 그 동작방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant