KR20130033446A - 고 다이나믹 레인지 이미지를 캡처하도록 장치를 동작시키는 방법 - Google Patents

고 다이나믹 레인지 이미지를 캡처하도록 장치를 동작시키는 방법 Download PDF

Info

Publication number
KR20130033446A
KR20130033446A KR1020137002965A KR20137002965A KR20130033446A KR 20130033446 A KR20130033446 A KR 20130033446A KR 1020137002965 A KR1020137002965 A KR 1020137002965A KR 20137002965 A KR20137002965 A KR 20137002965A KR 20130033446 A KR20130033446 A KR 20130033446A
Authority
KR
South Korea
Prior art keywords
image
images
exposure level
instructions
exposure
Prior art date
Application number
KR1020137002965A
Other languages
English (en)
Other versions
KR101433542B1 (ko
Inventor
가이 코트
가레트 엠. 존슨
제임스 에드먼드 오어 4세
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 KR20130033446A publication Critical patent/KR20130033446A/ko
Application granted granted Critical
Publication of KR101433542B1 publication Critical patent/KR101433542B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/741Circuitry for compensating brightness variation in the scene by increasing the dynamic range of the image compared to the dynamic range of the electronic image sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/32Determination of transform parameters for the alignment of images, i.e. image registration using correlation-based methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/10Cameras or camera modules comprising electronic image sensors; Control thereof for generating image signals from different wavelengths
    • H04N23/12Cameras or camera modules comprising electronic image sensors; Control thereof for generating image signals from different wavelengths with one sensor only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/62Control of parameters via user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/667Camera operation mode switching, e.g. between still and video, sport and normal or high- and low-resolution modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6812Motion detection based on additional sensors, e.g. acceleration sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/71Circuitry for evaluating the brightness variation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/72Combination of two or more compensation controls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/743Bracketing, i.e. taking a series of images with varying exposure conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/95Computational photography systems, e.g. light-field imaging systems
    • H04N23/951Computational photography systems, e.g. light-field imaging systems by using two or more images to influence resolution, frame rate or aspect ratio
    • 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/10141Special mode during image acquisition
    • G06T2207/10144Varying exposure
    • 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/10141Special mode during image acquisition
    • G06T2207/10152Varying illumination
    • 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)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Studio Devices (AREA)
  • Image Processing (AREA)
  • Color Television Image Signal Generators (AREA)

Abstract

일부 실시예는 고 다이나믹 레인지(HDR) 장면의 이미지를 캡처하도록 장치를 동작시키는 방법을 제공한다. 장치가 HDR 모드에 들어갈 시에, 이 방법은 제1 이미지 노출 레벨에서 다수의 이미지를 캡처하고 저장한다. HDR 장면을 캡처하라는 명령을 수신할 시에, 이 방법은 제2 이미지 노출 레벨에서 제1 이미지를 캡처한다. 이 방법은 캡처된 복수의 이미지 중에서 제2 이미지를 선택한다. 이 방법은 제1 이미지 및 제2 이미지를 합성하여 HDR 장면을 캡처하는 합성 이미지를 생성한다. 일부 실시예에서, 이 방법은 다수의 상이한 노출 레벨에서 다수의 이미지를 캡처한다.

Description

고 다이나믹 레인지 이미지를 캡처하도록 장치를 동작시키는 방법{OPERATING A DEVICE TO CAPTURE HIGH DYNAMIC RANGE IMAGES}
최근에, 디지털 카메라가 독립형 장치로서 그리고 휴대폰, 스마트폰, 기타 모바일 컴퓨팅 장치 등과 같은 보다 복잡한 장치의 일부로서 널리 보급되었다. 이러한 보급에 따라, 제조업체들은 이들 장치 상의 디지털 카메라의 기술적 특징들을 급속히 증가시켰다. 예를 들어, 많은 모바일 장치는 현재 통상적으로 고품질 이미지를 생성하는 데 종종 필요한 5 메가픽셀 카메라를 포함하고 있다.
안타깝게도, 이러한 카메라의 기술적 규격이 향상되었더라도, 이들 카메라는 종종 고품질 이미지를 캡처 및 생성하지 못할 수 있는데, 그 이유는 이들 카메라의 이미지 처리 능력이 그의 향상 중인 하드웨어 능력에 대응하지 못하기 때문이다. 예를 들어, 많은 카메라가 현재 아직도 고 다이나믹 레인지(high dynamic range, HDR)를 갖는 이미지를 캡처 및 생성하는 일을 잘 하지 못한다.
HDR 장면의 고전적인 일례는 사람이 낮 동안 실내에서 창문 앞에 서 있는 것이다. 이러한 장면을 캡처하는 많은 카메라는 사람의 모든 특징부를 보여주지 않는 어두운 전경과 함께 밝은 배경을 가지는 이미지를 생성한다. 모바일 장치의 카메라에 의해(예컨대, 전화의 카메라에 의해) 이러한 HDR 장면을 캡처하는 것의 문제점은 이러한 카메라에서 이용되는 작은 이미지 센서에 의해 악화된다.
본 발명의 일부 실시예는 고 다이나믹 레인지를 갖는 이미지를 캡처 및 생성하는 모바일 장치를 제공한다. 고 다이나믹 레인지 이미지를 캡처 및 생성하기 위해, 일부 실시예의 모바일 장치는 새로운 이미지 캡처 및 처리 모듈을 포함한다. 일부 실시예에서, 모바일 장치는 (1) 그의 이미지 캡처 모듈로 하여금 일련의 이미지를 상이한 이미지 노출 기간으로 고속으로 캡처하게 하는 것, 및 (2) 그의 이미지 캡처 모듈로 하여금 이들 이미지를 합성하여 HDR 이미지를 생성하게 하는 것에 의해, 고 다이나믹 레인지(HDR) 이미지를 생성한다.
일련의 이미지를 고속으로 캡처하기 위해, 일부 실시예의 이미지 캡처 모듈은 2가지 조치를 취한다. 첫째, 모바일 장치가 그의 HDR 모드에 들어간 후에 또는 이미지 캡처 모드(이하에서 카메라 모드라고도 함)에 들어간 후에, 모바일 장치는 특정의 프레임 레이트로 이미지를 캡처하기 시작한다. 일부 실시예에서, 프레임 레이트는 약 15 프레임/초(fps)이다. 다른 실시예에서, 상이한 조명 조건 하에서 초기 프레임 레이트가 상이하다(예컨대, 적정 조명 조건에 대해 15 fps, 보다 어두운 조건에 대해 10 fps, 기타).
이 프레임 레이트는 카메라가 이미지를 현재 조명 조건에 대해 적정 노출 설정에서 캡처할 수 있게 해준다(즉, 이미지 캡처 모듈이 현재 조명 조건에 대한 적정 노출 기간으로서 계산하는 노출 기간으로 카메라가 각각의 이미지를 캡처할 수 있게 해준다). 이미지 캡처 모듈은 특정의 프레임 레이트로 캡처하는 각각의 이미지를 장치의 프레임 버퍼에 저장한다. 일부 실시예에서, 버퍼가 그의 최대 저장 용량에 도달할 때, 캡처 모듈은 모듈이 이전에 저장된 프레임을 나중에 저장된 프레임보다 먼저 삭제할 수 있게 해주는 순환 방식으로 이 프레임 버퍼에 기입한다.
둘째, 모바일 장치가 고 다이나믹 레인지(HDR) 모드에 들어갈 때, 이미지 캡처 모듈은 카메라가 이미지를 캡처하고 있는 조명 조건(이하에서, 현재 조명 조건이라고 함)에 대해 과소 노출된 이미지(underexposed image) 및 과다 노출된 이미지(overexposed image)를 캡처하기 위한 노출 기간을 계산한다. 본 발명의 다른 실시예는 과다 노출된 이미지 및 과소 노출된 이미지의 기간을 계산하는 데 다른 기술을 이용한다. 예를 들어, 일부 실시예는 장치가 특정의 프레임 레이트로 캡처하고 있는 적정 노출된 이미지(normally exposed image)의 히스토그램에 기초하여 과다 노출된 이미지 및 과소 노출된 이미지의 기간을 계산한다.
장치가 그의 HDR 모드에 들어간 후에, 장치는 (예컨대, 장치의 사용자에 의해, 장치 상의 타이머에 의해, 원격 사용자 또는 타이머에 의해, 기타에 의해) HDR 이미지를 촬영하라고 지시받을 수 있다. 장치가 HDR 이미지를 촬영하라고 지시받을 때, 일부 실시예의 이미지 캡처 모듈은 이어서 2개의 이미지를 연달아 캡처한다. 하나의 이미지는 이미지 캡처 모듈이 현재 조명 조건에 대해 이전에 계산했던 과다 노출 기간에 기초하여 캡처하는 과다 노출된 이미지인 반면, 다른 하나의 이미지는 이미지 캡처 모듈이 현재 조명 조건에 대해 이전에 계산했던 과소 노출 기간에 기초하여 캡처하는 과소 노출된 이미지이다. 다른 실시예에서, 이미지 캡처 모듈은 과다 노출된 이미지 및 과소 노출된 이미지를 다른 순서로 캡처한다(예컨대, 일부 실시예는 과다 노출된 이미지를 먼저 캡처하는 반면, 다른 실시예는 과소 노출된 이미지를 먼저 캡처한다).
과다 노출된 이미지 및 과소 노출된 이미지를 캡처하는 것에 부가하여, 이미지 캡처 모듈은 또한 이전에 적정 노출 기간에 캡처하여 그의 프레임 버퍼에 저장했던 이미지를 검색한다. 이 모듈은 3개의 이미지 각각을 이미지 처리 모듈에 제공한다. 일부 실시예에서, 이미지 캡처 모듈은 카메라가 이미지를 캡처했던 컬러 공간에서 3개의 이미지를 제공한다. 예를 들어, 일부 실시예의 이미지 캡처 모듈은 이들 이미지를 Y'CbCr[루마(luma), 청색-크로마(blue-chroma) 및 적색-크로마(red-chroma)] 컬러 공간에서 캡처하여 제공한다. 일부 실시예는 다양한 이미지 편집 동작을 수행하기 전에 카메라의 Y'CbCr(루마) 이미지를 YCbCr[루미넌스(luminance), 청색-크로마, 적색-크로마] 이미지로 역감마 보정(reverse gamma correct)하고, 이어서 얻어진 YCbCr(루미넌스) 이미지를 Y'CbCr(루마) 이미지로 감마 보정한다.
이미지 처리 모듈은 이어서 2가지 동작을 수행한다. 제1 동작은 3개의 이미지 모두를 서로 정렬하는 것인데, 그 이유는 카메라가 3개의 이미지를 캡처하는 시간 동안 움직였을지도 모르기 때문이다. 다른 실시예는 이 정렬을 다른 방식으로 수행한다. 예를 들어, 2개의 이미지를 정렬하기 위해, 일부 실시예는 2개의 이미지에서 정합하는 특징을 식별하려고 시도하는 계층적 탐색을 수행한다. 정합하는 특징을 식별하기 위해, 일부 실시예는 2개의 이미지의 루마 성분(예컨대, Y'CbCr 컬러 공간에 대한 Y'-채널 성분)만을 검사한다. 이미지의 루마 성분은 때때로 본 명세서에서 "루마 이미지" 또는 "이미지"이라고 한다. 2개의 루마 이미지는, 몇개의 루마 이미지 쌍이 식별될 때까지, 각각의 방향에서 몇 회(예컨대, 6회) 특정의 인자(예컨대, 2)만큼 데시메이션(decimate)된다. 탐색 계층구조에서의 상이한 레벨에서 탐색을 수행하기 위해 각각의 루마 이미지 쌍이 사용된다. 각각의 레벨에서, 각각의 루마 이미지에 대해 [예컨대, 그 레벨에 대한 중간 루마값(median luma value)을 사용하여 픽셀값이 중간값보다 큰지 작은지에 기초하여 픽셀 값을 1 또는 0으로 발생함으로써] 비트맵이 발생된다.
각각의 레벨에서, 적어도 하나의 비트맵이 몇개의 타일로 나누어지고, 이 때 각각의 타일은 몇개의 픽셀을 포함한다. 다른 비트맵에서의 대응하는 정합 타일을 식별하고 그로써 2개의 비트맵 사이의 오프셋을 식별하기 위해 타일들이 사용된다. 일부 실시예에서, 타일들이 백색 픽셀만, 흑색 픽셀만, 임계값 미만개의 백색 픽셀, 또는 임계값 미만개의 흑색 픽셀을 포함할 때, 타일들 중 일부는 배제된다. 이들 타일은 다른 타일들과 정합시키는 데 사용될 수 있는 충분한 수의 특징(예컨대, 에지)을 갖지 않는 타일이다. 타일들을 비교함으로써 2개의 비트맵 쌍 간의 오프셋을 식별하는 프로세스를 고속화하기 위해 이들 타일은 배제된다.
나머지 타일에 기초하여, 계층구조의 현재 해상도 레벨에서 2개의 비트맵을 가장 잘 정렬하는 오프셋을 식별하기 위해 다양한 상이한 오프셋에서 2개의 비트맵이 비교된다. 계층구조의 현재 해상도 레벨이 계층구조의 최고 해상도 레벨이 아닌 경우, 일부 실시예의 이미지 처리 모듈은 계층구조의 현재 해상도 레벨의 계산된 오프셋을 계층구조의 다음 레벨에서 탐색하기 위한 시작점으로서 사용한다. 이 다음 레벨에서, 이 모듈은 또다시 계층구조의 그 레벨에 대해 2개의 상이한 루마 이미지에 대한 2개의 비트맵을 발생하고, 이어서 탐색을 위한 지정된 시작점에서 시작하는 오프셋을 탐색한다.
2개의 이미지의 루마 성분의 계층적 비교에서, 계층구조의 최고 레벨에서 식별되는 오프셋이 2개의 이미지 사이의 오프셋이다. 이미지 처리 모듈이 하나의 이미지(예컨대, 적정 노출된 이미지)와 다른 이미지들(예컨대, 과다 노출된 이미지 및 과소 노출된 이미지) 각각 사이의 이 오프셋을 찾아냈으면, 이미지 처리 모듈은 3개의 이미지를 정렬하기 위해 이들 오프셋을 사용한다. 예를 들어, 일부 실시예에서, 이미지 처리 모듈은 3개의 이미지 모두가 동일한 장면의 중복 부분만을 포함하도록 3개의 이미지를 크로핑(crop)하기 위해 이들 2개의 오프셋을 사용한다. 다른 대안으로서, 3개의 이미지 모두를 크로핑하는 대신에, 일부 실시예는 과다 노출된 이미지 및 과소 노출된 이미지만을 크로핑하고, 크로핑되는 이들 이미지의 일부분에 대해, 합성 HDR 이미지를 발생하는 데 적정 노출된 이미지로부터의 데이터를 사용한다. 또한, 이미지를 크로핑하는 대신에, 다른 실시예는 이미지에서의 비중복 영역을 어드레싱하기 위해 다른 연산을 사용할 수 있다(예컨대, 이미지들의 합집합을 식별할 수 있다). 일부 실시예는 크로핑하지 않고 그 대신에 에지 픽셀을 반복한다. 에지 픽셀을 반복하는 것은 타당한 결과를 가져오는데, 그 이유는 이미지들 사이의 오프셋이 통상적으로 작기 때문이다.
또한, 크로마(chroma)는 통상적으로 Y'CbCr 4:2:2 또는 4;2:0 형식으로 되어 있다. 이것은 크로마의 샘플링이 루마와 상이하다는 것을 의미한다. 4:2:2에서, 크로마는 루마의 수평 크기의 1/2인 반면, 4:2:0에서, 크로마는 루마의 수평 크기의 1/2 및 수직 크기의 1/2이다. 그에 따라, 이미지들을 정렬할 때, 일부 실시예는 이 형식에 기초하여 크로마에 대한 벡터를 조정한다.
이미지들을 정렬한 후에, 이미지 처리 모듈은 그의 제2 동작 - 3개의 정렬된 이미지를 합성하여 합성 HDR 이미지를 생성하는 것을 수행한다. 다른 실시예에서, 이미지 처리 모듈은 3개의 이미지를 합성하기 위해 상이한 기술을 사용한다. 예를 들어, 일부 실시예는 이들 이미지의 루마 채널에 대해 이들 이미지의 크로마 채널에 대한 것과 상이한 일련의 동작을 수행함으로써 3개의 이미지를 합성한다. 또한, HDR 합성 이미지를 발생할 시에, 일부 실시예는 원하는 값 범위를 초과하는 루마값 및 크로마값을 생성할 수 있다. 그에 따라, HDR 이미지를 발생하는 동안, 일부 실시예는 HDR 이미지의 루마값 및 크로마값이 그의 원하는 범위 내에서 발생되도록 하기 위해 스케일링 동작을 동시에 수행한다.
기술 분야의 당업자라면 이미지 캡처 및 처리 동작이 앞서 기술된 것과 상이한 방식으로 구현될 수 있다는 것을 잘 알 것이다. 예를 들어, 프레임 버퍼로부터 단지 하나의 적정 노출된 이미지를 반환하는 대신에, 일부 실시예의 이미지 캡처 모듈은 몇개의 적정 노출된 이미지를 이미지 처리 모듈로 반환한다. 이 그룹으로부터, 이미지 처리 모듈은 이어서 가장 선명하고 캡처된 과다 노출된 이미지 및 과소 노출된 이미지에 가장 잘 정합하는 적정 노출된 이미지를 선택한다. 다른 대안으로서, 일부 실시예에서, 이미지 캡처 모듈은 하나의 적정 노출된 이미지만을 반환하지만, 이 반환된 이미지로 블러링(blur)되지 않도록(즉, 선명하게 되도록) 해주려고 한다. 다른 실시예에서, 이미지 캡처 모듈은 다른 방식으로 이미지로 선명하게 되도록 해주려고 한다. 예를 들어, 장치가 가속도계 및/또는 자이로스코프를 가지는 일부 실시예에서, 이미지 캡처 모듈은 선명한 적정 노출된 이미지를 선택하기 위해 적정 노출된 이미지의 흐림(blurriness)의 가능성을 확인하는 데 가속도계 및/또는 자이로스코프로부터 기록된 데이터를 사용한다. 다른 대안으로서, 일부 실시예에서, 프레임 버퍼로부터의 적정 노출된 이미지를 사용하기 보다는, HDR 명령이 수신된 후에, 모바일 장치는 적정 노출에서의 하나 이상의 이미지는 물론, 과다 노출된 이미지 및 과소 노출된 이미지도 촬영한다. 일부 이러한 실시예에서, 이미지 처리 모듈은 합성 HDR 이미지를 발생하는 데 사용하기 위해 적정 노출된 이미지들 중 하나(예컨대, 가장 선명한 것, 가장 마지막 것, 기타)를 선택한다.
이상의 요약은 본 발명의 일부 실시예에 대한 간략한 소개로서 역할하기 위한 것이다. 이 요약이 본 문서에 개시되어 있는 모든 발명 요지의 소개 또는 개요인 것으로 보아서는 안된다. 이하의 상세한 설명 및 상세한 설명에서 참조되는 도면은 또한 요약에 기술되어 있는 실시예는 물론 다른 실시예에 대해서도 추가적으로 기술할 것이다. 그에 따라, 본 문서에 기술된 모든 실시예를 이해하기 위해서는, 요약, 상세한 설명 및 도면을 완전히 검토하는 것이 필요하다. 게다가, 청구된 발명 요지가 발명의 내용, 상세한 설명 및 도면에서의 예시적인 상세에 의해 제한되어서는 안되고, 오히려 첨부된 특허청구범위에 의해 한정되어야 하는데, 그 이유는 청구된 발명 요지가 발명 요지의 사상을 벗어나지 않고 다른 구체적인 형태로 구현될 수 있기 때문이다.
도 1은 고 다이나믹 레인지를 갖는 이미지를 캡처 및 생성하는 모바일 장치를 나타낸 도면.
도 2a는 일부 실시예의 모바일 장치에서, 고 다이나믹 레인지(HDR) 모드를 호출하고 이 모드에서 HDR 사진을 촬영하는 것을 나타낸 도면.
도 2b는 일부 실시예의 모바일 장치에서, 고 다이나믹 레인지(HDR) 모드를 호출하고 이 모드에서 HDR 사진을 촬영하는 동안에 미리보기 이미지를 디스플레이하는 것을 나타낸 도면.
도 3은 일부 실시예의 모바일 장치에 대한 소프트웨어 아키텍처를 개념적으로 나타낸 도면.
도 4는 HDR 이미지 캡처 세션 동안 이미지 처리 모듈의 동작을 나타낸 도면.
도 5a는 본 발명의 일부 실시예의 이미지 캡처 모듈을 나타낸 도면.
도 5b는 본 발명의 어떤 다른 실시예의 이미지 캡처 모듈을 나타낸 도면.
도 6은 HDR 이미지 캡처 세션 동안 이미지 캡처 모듈의 일련의 동작을 개념적으로 나타낸 프로세스를 나타낸 도면.
도 7은 이미지들을 정렬하기 위한 일련의 비트맵을 발생하는 일부 실시예의 프로세스를 나타낸 도면.
도 8은 일부 실시예의 데시메이션된 이미지들로부터 만들어진 비트맵의 일례를 나타낸 도면.
도 9는 2개의 이미지를 정렬하는 오프셋 벡터를 판정하는 일부 실시예의 프로세스를 나타낸 도면.
도 10은 2개의 비트맵을 정렬하는 오프셋 벡터를 판정하는 프로세스를 나타낸 도면.
도 11은 최종 오프셋 벡터를 판정하는 것의 일례를 나타낸 도면.
도 12는 동일한 장면의 3개의 상이한 노출의 루마 채널 이미지들을 합성하고 얻어진 합성 이미지의 다양한 루마값을 조정하는 프로세스를 나타낸 도면.
도 13a는 특정의 장면에 대해 합성 프로세스를 수행하는 것의 일례를 나타낸 도면.
도 13b는 개별 이미지들로부터 마스크를 발생하는 동안 합성 프로세스를 수행하는 것의 일례를 나타낸 도면.
도 14는 크로마 채널 이미지들을 합성하는 일부 실시예의 프로세스를 나타낸 도면.
도 15는 일부 실시예에서 크로마 채널 이미지들을 합성하는 것의 일례를 나타낸 도면.
도 16은 일부 실시예의 모바일 컴퓨팅 장치(1600)의 일례를 나타낸 도면.
도 17은 터치 I/O 장치를 나타낸 도면.
본 발명의 이하의 상세한 설명에서, 본 발명의 많은 상세, 일례 및 실시예가 기재되고 기술되어 있다. 그렇지만, 본 발명이 기재될 실시예로 제한되지 않는다는 것과 본 발명이 논의된 구체적인 상세 및 일례 중 일부가 없어도 실시될 수 있다는 것이 기술 분야의 당업자에게 명확하고 명백하게 될 것이다.
본 발명의 일부 실시예는 고 다이나믹 레인지를 갖는 이미지를 캡처 및 생성하는 모바일 장치를 제공한다. 도 1은 하나의 이러한 모바일 장치(100)를 나타낸 것이다. 이 모바일 장치는 카메라, 휴대폰, 스마트폰, PDA(personal digital assistant), 태블릿 개인용 컴퓨터[iPad? 등], 랩톱, 또는 임의의 다른 유형의 모바일 컴퓨팅 장치일 수 있다. 도 1은 모바일 장치(100)가 고 다이나믹 레인지를 갖는 장면의 디지털 사진을 캡처하는 것을 나타낸 것이다. 이 장면에서, 달리는 자동차를 배경으로 하여 사람이 화창한 날에 창문 앞에 서 있다.
도 1은 또한 모바일 장치(100)가 3가지 상이한 노출 설정에서 캡처되는 3개의 이미지(135, 140, 145)를 캡처, 정렬 및 합성함으로써 고 다이나믹 레인지 이미지(180)를 생성하는 것도 나타내고 있다. 이 도면에 도시된 바와 같이, 모바일 장치(100)는 이미지 캡처 모듈(105) 및 이미지 처리 모듈(110) - 이들은 모바일 장치가 고 다이나믹 레인지 이미지를 캡처 및 생성할 수 있게 해주는 동작을 수행함- 을 포함하고 있다. 일부 실시예에서, 모바일 장치는 (1) 그의 이미지 캡처 모듈로 하여금 일련의 이미지를 상이한 이미지 노출 기간으로 고속으로 캡처하게 하는 것, 및 (2) 그의 이미지 캡처 모듈로 하여금 이들 이미지를 합성하여 HDR 이미지를 생성하게 하는 것에 의해, 고 다이나믹 레인지(HDR) 이미지를 생성한다. 본 명세서에서의 설명이 3개의 이미지를 포함하고 있지만, 기술 분야의 당업자라면 일부 실시예가 3개 초과의 이미지를 사용한다(예컨대, 일부 실시예가 5개의 이미지 - 매우 과다 노출, 과다 노출, 적정, 과소 노출, 및 매우 과소 노출 - 을 사용한다)는 것을 잘 알 것이다. 일부 실시예는 다양한 조건 하에서 가변 수의 이미지를 사용한다.
일련의 이미지를 빠르게 캡처하기 위해, 일부 실시예의 이미지 캡처 모듈은, 카메라가 고 다이나믹 레인지(HDR) 모드에 들어갈 때, 2가지 조치를 취한다. 첫째, 이 모듈은 특정의 프레임 레이트로 이미지를 캡처하기 시작한다. 일부 실시예에서, 프레임 레이트는 약 15 프레임/초(fps)이다. 다른 실시예에서, 상이한 조명 조건 하에서 초기 프레임 레이트가 상이하다(예컨대, 적정 조명 조건에 대해 15 fps, 보다 어두운 조건에 대해 10 fps, 기타). 이 프레임 레이트는 카메라가 이미지를 현재 조명 조건에 대해 적정 노출 설정에서 캡처할 수 있게 해준다(즉, 이미지 캡처 모듈이 현재 조명 조건에 대한 적정 노출 기간으로서 계산하는 노출 기간으로 카메라가 각각의 이미지를 캡처할 수 있게 해준다). 이미지 캡처 모듈은 특정의 프레임 레이트로 캡처하는 각각의 이미지를 장치의 프레임 버퍼(도시 생략)에 저장한다. 일부 실시예에서, 버퍼가 그의 최대 저장 용량에 도달할 때, 캡처 모듈은 모듈이 이전에 저장된 프레임을 나중에 저장된 프레임보다 먼저 삭제할 수 있게 해주는 순환 방식으로 이 프레임 버퍼에 기입한다.
둘째, 카메라가 이미지를 캡처하고 있는 조명 조건(이하에서, 현재 조명 조건이라고 함)에 대해, 이미지 캡처 모듈은 과소 노출된 이미지 및 과다 노출된 이미지를 캡처하기 위한 노출 기간을 계산한다. 예를 들어, 일부 실시예는 장치가 특정의 프레임 레이트로 캡처하고 있는 적정 노출된 이미지의 히스토그램에 기초하여 과다 노출된 이미지 및 과소 노출된 이미지의 기간을 계산한다. 예를 들어, 적정 노출된 이미지로 많은 수의 포화된 픽셀을 가지는 경우, 과다 노출된 이미지의 기간은 적정 노출된 이미지로 보다 적은 포화된 픽셀을 가지는 경우보다 적정 노출 기간의 더 작은 배수로 설정된다.
장치가 그의 HDR 모드에 들어간 후에, 장치는 (예컨대, 장치의 사용자에 의해, 장치 상의 타이머에 의해, 원격 사용자 또는 타이머에 의해, 기타에 의해) HDR 이미지를 촬영하라고 지시받을 수 있다. 장치가 HDR 이미지를 촬영하라고 지시받을 때, 일부 실시예의 이미지 캡처 모듈은 이어서 2개의 이미지를 연달아 캡처한다. 하나의 이미지는 이미지 캡처 모듈이 현재 조명 조건에 대해 이전에 계산했던 과다 노출 기간에 기초하여 캡처하는 과다 노출된 이미지인 반면, 다른 하나의 이미지는 이미지 캡처 모듈이 현재 조명 조건에 대해 이전에 계산했던 과소 노출 기간에 기초하여 캡처하는 과소 노출된 이미지이다. 다른 실시예에서, 이미지 캡처 모듈은 과다 노출된 이미지 및 과소 노출된 이미지를 다른 순서로 캡처한다(예컨대, 일부 실시예는 과다 노출된 이미지를 먼저 캡처하는 반면, 다른 실시예는 과소 노출된 이미지를 먼저 캡처한다).
과다 노출된 이미지 및 과소 노출된 이미지를 캡처하는 것에 부가하여, 이미지 캡처 모듈은 또한 이전에 적정 노출 기간에 캡처하여 그의 프레임 버퍼에 저장했던 이미지(예컨대, HDR 캡처 명령 이전에 촬영된 가장 최근의 이미지)를 검색한다. 이미지 캡처 모듈(105)은 3개의 이미지 각각을 이미지 처리 모듈(110)에 제공한다. 도 1은 이들 3개의 이미지를 이미지 캡처 모듈(105)의 출력에서 과다 노출된 이미지(135), 적정 노출된 이미지(140), 및 과소 노출된 이미지(145)로서 나타내고 있다. 일부 실시예에서, 이미지 캡처 모듈은 카메라가 이미지를 캡처했던 컬러 공간에서 3개의 이미지를 제공한다. 예를 들어, 일부 실시예의 이미지 캡처 모듈은 이들 이미지를 Y'CbCr 컬러 공간에서 캡처하여 제공한다.
상기 설명이 HDR 캡처 명령이 수신되기 이전의 적정 노출 기간에 다수의 이미지를 촬영하는 것 및 HDR 캡처 명령이 수신된 이후에 과다 노출된 이미지 및 과소 노출된 이미지를 촬영하는 것을 포함한다. 그렇지만, 일부 실시예에서, HDR 캡처 명령이 수신되기 이전에 다수의 과소 노출된 이미지로 촬영되고, HDR 캡처 명령이 수신된 후에 적정 노출된 이미지 및 과다 노출된 이미지로 촬영된다. 그에 부가하여, 일부 실시예에서, HDR 캡처 명령이 수신되기 이전에 다수의 과다 노출된 이미지로 촬영되고, HDR 캡처 명령이 수신된 후에 적정 노출된 이미지 및 과소 노출된 이미지로 촬영된다.
도 1에 도시된 바와 같이, 일부 실시예에서, 이미지 처리 모듈(110)은 (1) 수신하는 3개의 이미지를 정렬하는 정렬 모듈(115), 및 (2) HDR 이미지(180)를 생성하기 위해 수신하는 3개의 이미지를 합성하는 합성 모듈(120)을 포함하고 있다. 정렬 모듈은 3개의 이미지 모두를 서로 정렬하는데, 그 이유는 카메라가 3개의 이미지를 캡처하는 시간 동안 움직였을지도 모르기 때문이다.
도 1에 추가로 도시된 바와 같이, 일부 실시예에서, 정렬 모듈(115)은 (1) 이미지들을 정렬하기 위해 이들을 비교하는 탐색 모듈(125), 및 (2) 이미지들 간에 중복되는 영역만을 포함하도록 정렬된 이미지들 중 하나 이상의 이미지를 크로핑하는 크로핑 모듈(130)을 포함하고 있다. 2개의 이미지를 정렬하기 위해, 탐색 모듈(125)은 2개의 이미지에서 정합하는 특징을 식별하려고 시도하는 탐색을 수행한다. 이것을 하기 위해, 일부 실시예는 2개의 이미지의 루마 성분(예컨대, Y'CbCr 컬러 공간에 대한 Y'-채널 성분)만을 검사한다.
일부 실시예에서, 탐색 모듈(125)은, 몇개의 루마 이미지 쌍이 식별될 때까지, 먼저 2개의 루마 이미지를 각각의 방향에서 몇 회(예컨대, 6회) 특정의 인자(예컨대, 2)만큼 데시메이션하는 계층적 탐색을 수행한다. 탐색 계층구조에서의 상이한 레벨에서 탐색을 수행하기 위해 각각의 루마 이미지 쌍이 사용된다. 각각의 레벨에서, 각각의 루마 이미지에 대해 [예컨대, 그 레벨에 대한 중간 루마값을 사용하여 픽셀값이 중간값보다 큰지 작은지에 기초하여 픽셀 값을 1 또는 0으로 발생함으로써] 비트맵이 발생된다.
각각의 레벨에서, 탐색 모듈은 적어도 하나의 비트맵을 몇개의 타일로 나누고, 이 때 각각의 타일은 몇개의 픽셀을 포함한다. 이 모듈은 다른 비트맵에서의 대응하는 정합 타일을 식별하고 그로써 2개의 비트맵 사이의 오프셋을 식별하기 위해 타일들을 사용한다. 일부 실시예에서, 탐색 모듈은 타일들이 백색 픽셀만, 흑색 픽셀만, 임계값 미만개의 백색 픽셀, 또는 임계값 미만개의 흑색 픽셀을 포함할 때, 타일들 중 일부를 폐기한다. 이들 타일은 다른 타일들과 정합하는 데 사용될 수 있는 충분한 수의 특징(예컨대, 에지)을 갖지 않는 타일이다. 타일들을 비교함으로써 2개의 비트맵 쌍 간의 오프셋을 식별하는 프로세스를 고속화하기 위해 이들 타일은 폐기된다.
나머지 타일에 기초하여, 탐색 모듈은 계층구조의 현재 해상도 레벨에서 2개의 비트맵을 가장 잘 정렬하는 오프셋을 식별하기 위해 다양한 상이한 오프셋에서 2개의 비트맵을 비교한다. 계층구조의 현재 해상도 레벨이 계층구조의 최고 해상도 레벨이 아닌 경우, 탐색 모듈은 계층구조의 현재 해상도 레벨의 계산된 오프셋을 계층구조의 다음 레벨에서 탐색하기 위한 시작점으로서 사용한다. 이 다음 레벨에서, 이 모듈은 또다시 계층구조의 그 레벨에 대해 2개의 상이한 루마 이미지에 대한 2개의 비트맵을 발생하고, 이어서 탐색을 위한 지정된 시작점에서 시작하는 오프셋을 탐색한다.
2개의 이미지의 루마 성분의 계층적 비교에서, 계층구조의 최고 레벨에서 식별되는 오프셋이 2개의 이미지 사이의 오프셋이다. 탐색 모듈(125)은, 2개의 이미지 쌍의 계층적 탐색을 완료하면, 3개의 이미지 모두가 정렬되도록 이미지들 중 2개의 이미지의 병진(translation)을 정의하는 2개의 오프셋을 식별한다. 도 1에 예시된 일례에서, 일부 실시예에서, 탐색 모듈은 과소 노출된 이미지/과다 노출된 이미지의 루마 성분과 적정 노출된 이미지의 루마 성분을 비교한다. 이 비교는 2개의 오프셋 - 하나는 과소 노출된 루마 이미지과 적정 노출된 이미지 사이의 병진을 정의하고 다른 하나는 과다 노출된 루마 이미지과 적정 노출된 이미지 사이의 병진을 정의함 - 을 식별한다. 이들 2개의 오프셋은, 차례로, 3개의 루마 이미지(150, 155, 160)에서의 정합 영역을 식별해주는 도 1의 파선으로 나타낸 바와 같이 3개의 이미지로 어떻게 정렬될 수 었는지를 식별해준다.
탐색 모듈(125)이 하나의 이미지(예컨대, 적정 노출된 이미지)와 다른 이미지들(예컨대, 과다 노출된 이미지 및 과소 노출된 이미지) 각각 사이의 이 오프셋을 판정했으면, 크로핑 모듈(130)은 3개의 이미지를 트리밍하기 위해 이들 오프셋을 사용한다. 구체적으로는, 일부 실시예에서, 이미지 처리 모듈은 3개의 이미지 모두가 동일한 장면의 중복 부분만을 포함하도록 3개의 이미지를 크로핑하기 위해 이들 2개의 오프셋을 사용한다. 도 1은 크로핑되고 정렬된 이미지(165, 170, 175)를 보여줌으로써 이 크로핑의 결과를 나타내고 있다. 3개의 이미지 모두를 크로핑하는 대신에, 일부 실시예는 과다 노출된 이미지 및 과소 노출된 이미지만을 크로핑하고, 크로핑되는 이들 이미지의 일부분에 대해, 합성 HDR 이미지를 발생하는 데 적정 노출된 이미지로부터의 데이터를 사용한다. 다른 대안으로서, 이미지를 크로핑하는 대신에, 다른 실시예는 이미지에서의 비중복 영역을 어드레싱하기 위해 다른 연산을 사용할 수 있다(예컨대, 이미지들의 합집합을 식별할 수 있다). 일부 실시예는 크로핑하지 않고 그 대신에 에지 픽셀을 반복한다. 에지 픽셀을 반복하는 것은 타당한 결과를 가져오는데, 그 이유는 이미지들 사이의 오프셋이 통상적으로 작기 때문이다.
또한, 크로마는 통상적으로 Y'CbCr 4:2:2 또는 4;2:0 형식으로 되어 있다. 이것은 크로마의 샘플링이 루마와 상이하다는 것을 의미한다. 4:2:2에서, 크로마는 루마의 수평 크기의 1/2인 반면, 4:2:0에서, 크로마는 루마의 수평 크기의 1/2 및 루마의 수직 크기의 1/2이다. 그에 따라, 이미지들을 정렬할 때, 일부 실시예는 이 형식에 기초하여 크로마에 대한 벡터를 조정한다.
이 도면에 도시된 바와 같이, 합성 모듈(120)은 크로핑되고 정렬된 이미지들을 수신하고, 이어서 합성 HDR 이미지(180)를 생성하기 위해 이들을 합성한다. 다른 실시예에서, 합성 모듈은 3개의 이미지를 합성하기 위해 상이한 기술을 사용한다. 예를 들어, 일부 실시예는 이들 이미지의 루마 채널에 대해 이들 이미지의 크로마 채널에 대한 것과 상이한 세트의 동작을 수행함으로써 3개의 이미지를 합성한다. 또한, HDR 합성 이미지를 발생할 시에, 일부 실시예는 원하는 값 범위를 초과하는 루마값 및 크로마값을 생성할 수 있다. 그에 따라, HDR 이미지를 발생하는 동안, 일부 실시예의 합성 모듈(120)은 HDR 이미지의 루마값 및 크로마값이 그의 원하는 범위 내에서 발생되도록 하기 위해 스케일링 동작을 동시에 수행한다.
기술 분야의 당업자라면 이미지 캡처 및 처리 동작이 앞서 기술된 것과 상이한 방식으로 구현될 수 있다는 것을 잘 알 것이다. 예를 들어, 프레임 버퍼로부터 단지 하나의 적정 노출된 이미지(예컨대, 가장 최근의 이미지)를 반환하는 대신에, 일부 실시예의 이미지 캡처 모듈은 몇개의 적정 노출된 이미지를 이미지 처리 모듈로 반환한다. 이 그룹으로부터, 이미지 처리 모듈은 이어서 가장 선명하고 및/또는 캡처된 과다 노출된 이미지 및 과소 노출된 이미지에 가장 잘 정합하는 적정 노출된 이미지를 선택한다. 다른 대안으로서, 일부 실시예에서, 이미지 캡처 모듈은 하나의 적정 노출된 이미지만을 반환하지만, 이 반환된 이미지로 블러링(blur)되지 않도록(즉, 선명하게 되도록) 해주려고 한다. 다른 실시예에서, 이미지 캡처 모듈은 다른 방식으로 이미지로 선명하게 되도록 해주려고 한다. 예를 들어, 장치가 가속도계 및/또는 자이로스코프를 가지는 일부 실시예에서, 이미지 캡처 모듈은 선명한 적정 노출된 이미지를 선택하기 위해 적정 노출된 이미지의 흐림의 가능성을 확인하는 데(예컨대, 하나 이상의 움직임 관련 속성을 정량화하는 데) 가속도계 및/또는 자이로스코프로부터 기록된 데이터를 사용한다. 일부 실시예에서, 이미지 캡처 모듈은 블러링될 가능성이 없는(예컨대, 특정의 움직임 임계값 미만의 움직임 관련 속성을 가지는) 가장 최근의 이미지를 선택한다. 움직임 검출 센서를 사용하는 것 대신에 또는 그에 부가하여, 일부 실시예는 각각의 이미지의 주파수 성분을 구하기 위해 디지털 신호 처리 기술을 사용함으로써 다수의 이미지 중 어느 것이 가장 선명한지를 판정한다. 이러한 실시예에서, 최고 주파수 성분을 갖는 이미지로 가장 선명한 이미지인 것으로 식별된다.
다른 대안으로서, 일부 실시예에서, 프레임 버퍼로부터의 적정 노출된 이미지를 사용하기 보다는, HDR 캡처 명령이 수신된 후에, 모바일 장치는 적정 노출에서의 하나 이상의 이미지는 물론, 과다 노출된 이미지 및 과소 노출된 이미지도 촬영한다. 일부 이러한 실시예에서, 이미지 처리 모듈은 합성 HDR 이미지를 발생하는 데 사용하기 위해 적정 노출된 이미지들 중 하나(예컨대, 가장 선명한 것, 가장 마지막 것, 기타)를 선택한다.
본 발명의 몇가지 더 상세한 실시예가 이하에 기술되어 있다. 섹션 I는 일부 실시예의 사용자 인터페이스가 어떻게 사용자가 HDR 모드를 호출하고 HDR 이미지를 캡처할 수 있게 해주는지를 기술하고 있다. 섹션 II는 이어서 미디어 장치가 일부 실시예에서 HDR 이미지를 캡처 및 처리하기 위해 사용하는 소프트웨어 아키텍처를 기술하고 있다. 그 다음에, 섹션 III은 또한 일부 실시예의 모바일 장치의 이미지 캡처 모듈을 기술하고 있다. 이어서, 섹션 IV는 일부 실시예에서의 모바일 장치의 이미지 처리 모듈의 이미지 정렬 프로세스를 기술하고 있다. 그 다음에, 섹션 V는 일부 실시예에서의 모바일 장치의 이미지 처리 모듈의 이미지 합성 프로세스를 기술하고 있다. 마지막으로, 섹션 VI는 일부 실시예의 모바일 장치의 시스템 아키텍처를 기술하고 있다.
I. HDR 모드의 호출 및 HDR 캡처
일부 실시예에서, 모바일 장치의 사용자 인터페이스(UI)에서의 선택에 의해 HDR 모드가 표시된다. 도 2a는 일부 실시예의 모바일 장치(200)에서, HDR 모드를 호출하고 이 모드 동안 HDR 사진을 촬영하는 것을 나타낸 것이다. 이 도면은 이들 동작을 장치(200)의 사용자 인터페이스의 6개 스테이지(245, 250, 255, 257, 260, 265)에 나타내고 있다
도 2a에 도시된 바와 같이, 모바일 장치(200)는 디스플레이 영역(220), 이미지 캡처 UI 항목(215), 및 플래시 UI 항목(210)을 포함하고 있다. 일부 실시예에서, 모바일 장치가 카메라로서 동작하는 모드에 놓여 있을 때, 디스플레이 영역(220)은 모바일 장치의 센서에 의해 캡처된 장면의 이미지를 디스플레이한다. 이미지 캡처 UI 항목(215)은, 사용자에 의해 선택되면, 하나 이상의 이미지를 캡처하라고 모바일 장치에 지시하는 사용자 선택가능 항목이다.
일부 실시예에서, 모바일 장치는 카메라에 대한 플래시를 포함하고 있다. 그에 따라, 이들 실시예에서, 플래시 UI 항목(210)은 사용자가 플래시를 켜거나 끌 수 있게 해준다. 이하에서 더 기술하는 바와 같이, 플래시 UI 항목(210)은 또한 사용자가 모바일 장치의 카메라를 HDR 모드에 둘 수 있게 해준다.
HDR 이미지를 캡처할 시의 모바일 장치(200)의 동작에 대해 이제부터 기술할 것이다. 제1 스테이지(245)는 모바일 장치가 이미지 캡처 모드에 놓인 후의 모바일 장치의 사용자 인터페이스를 보여준다. 일부 실시예에서, 사용자는 디스플레이 영역(220)에 디스플레이되는 카메라 아이콘을 선택함으로써 장치를 이 모드에 둘 수 있다. 일부 실시예에서, 장치가 카메라 모드에 들어갈 때, 장치는 이미지를 캡처하고, 이들 이미지를 그의 프레임 버퍼에 일시적으로 저장하며, 이들 이미지를 디스플레이 영역(220)에 일시적으로 디스플레이하기 시작한다. 그렇지만, 플래시 항목(210) 및 디스플레이되는 UI 항목의 시퀀스 및 수행되는 동작을 하이라이트하기 위해, 도 2a에서의 제1 내지 제4 스테이지(245 내지 257)는 디스플레이 영역(220)에 일시적으로 디스플레이되는 이미지들 중 어느 것도 보여주지 않는다.
제2 스테이지(250)는 사용자가 플래시 UI 항목(210)을 선택하는 것을 보여준다. 도 2a에 도시된 바와 같이, 사용자는 플래시 항목(210)의 위치에서 장치의 터치 스크린 디스플레이 영역을 [예컨대, 손가락(225)으로] 터치함으로써 이 선택을 할 수 있다. 일부 실시예에서, 사용자는 또한 다른 UI 선택 기법을 통해 이 항목을 선택할 수 있다.
제3 스테이지(255)는 플래시 항목(210)의 선택의 결과 플래시 메뉴(230)가 디스플레이되는 것을 보여준다. 이 메뉴는 플래시를 켜는 선택가능 UI 항목(280), 플래시를 끄는 선택가능 UI 항목(285), 플래시를 자동 플래시 모드로 설정하는 선택가능 UI 항목(290), 및 HDR 이미지 캡처 모드를 켜는 선택가능 UI 항목(235)을 가진다. 일부 실시예의 경우, 선택가능 HDR 모드 항목(235)이 도 2a에서 플래시 메뉴(230)의 일부로서 보여지고 있지만, 기술 분야의 당업자라면 일부 실시예에서 이 항목(235)이 장치의 UI에서 다른 배치를 가진다는 것을 잘 알 것이다.
제4 스테이지(257)는 사용자가 HDR 모드 선택 항목(235)을 선택하는 것을 나타내고 있다. 이 선택은 모바일 장치의 디스플레이 터치 스크린 상의 이 항목의 위치를 [예컨대, 손가락(240)으로] 터치함으로써 행해진다. 일부 실시예에서, 사용자는 또한 다른 UI 선택 기법을 통해 이 모드를 선택할 수 있다.
제5 스테이지(260)는 사용자가 모바일 장치의 디스플레이 터치 스크린 상의 이 항목의 위치를 [예컨대, 손가락(270)으로] 터치함으로써 이미지 캡처 항목(215)을 선택하는 것을 나타내고 있다. 디스플레이 영역에서의 다른 선택가능 항목에서와 같이, 일부 실시예에서 사용자는 다른 UI 선택 기법을 통해 이미지 캡처 항목을 선택할 수 있다. 항목(215)의 선택은 장치로 하여금 사용자가 디스플레이 영역(220)에서 보고 있는 (화창한 날에 창문 앞에 서 있는 사람의) HDR 장면의 HDR 이미지를 캡처하게 한다. 다시 말하지만, 심지어 HDR 모드에 들어가서 이미지 캡처 항목의 선택을 수신하기 전이라도, 디스플레이 영역은 카메라가 카메라 모드에 들어갈 때 일시적으로 그리고 반복적으로 캡처하는 이미지들[미리보기 이미지(262) 등]을 일시적으로 디스플레이한다. 그렇지만, 앞서 언급한 바와 같이, UI 항목의 디스플레이 및 다양한 UI 항목의 선택을 잘 보이도록 하기 위해 이들 일시적으로 디스플레이되는 이미지로 도 2a의 스테이지(245 내지 257)에서 보여지지 않는다.
제6 스테이지(265)는 이미지 캡처 항목(215)을 선택할 시에 카메라가 캡처하여 저장하는 HDR 이미지(267)를 나타내고 있다. 일부 실시예에서, 이 이미지는 장치의 이미지 캡처 모듈로 하여금 상이한 노출에서 순차적으로 몇개의 이미지를 캡처하게 하고 장치의 이미지 합성 모듈로 하여금 이들 이미지를 합성하게 한 후에 장치가 생성하는 이미지-처리된 디지털 사진이다. 일부 실시예에서, HDR 이미지(267)는 미리보기 이미지(262)에서 보이지 않는 세부사항(detail)을 포함하고 있다. 예를 들어, HDR 이미지(267)는 새(275)를 포함하고 있다.
앞서 언급한 바와 같이, 도 2a에서 UI 항목의 디스플레이 및 그의 선택을 잘 보이도록 하기 위해 미리보기 이미지(262)가 디스플레이에 보여지지 않는다. 그에 따라, 도 2b는 도 2a와 관련하여 기술된 HDR 캡처 동작의 스테이지들 동안 미리보기 이미지(262)를 디스플레이하는 것을 나타내고 있다.
II. 소프트웨어 아키텍처
도 3은 일부 실시예의 모바일 장치에 대한 소프트웨어 아키텍처(300)를 개념적으로 나타낸 것이다. 일부 실시예에서, 이 장치는 HDR 장면의 이미지들을 캡처할 수 있고, HDR 이미지를 생성하기 위해 이들 이미지를 처리할 수 있으며, 이들 이미지를 (예컨대, JPEG 이미지로서) 인코딩할 수 있다. 이들 동작을 행하기 위해, 도 3에 도시된 바와 같이, 이 장치는 캡처 모듈(CM) 드라이버(305), 미디어 교환 모듈(310), 인코더 드라이버(320), 및 이미지 처리 모듈(325)을 포함하고 있다.
일부 실시예에서, 미디어 교환 모듈(310)은 미디어 콘텐츠의 소비자 및 생산자인 장치 상의 프로그램이 미디어 콘텐츠 및 미디어 콘텐츠의 처리에 관한 명령어를 교환할 수 있게 해준다. 그에 따라, 일부 실시예에서, 미디어 교환 모듈(310)은 이미지 처리 모듈(325)과 CM 드라이버(305) 사이에서 그리고 이미지 처리 모듈(325)과 인코더 드라이버(320) 사이에서 명령어 및 미디어 콘텐츠를 라우팅한다. 이러한 명령어 및 미디어 콘텐츠의 라우팅을 용이하게 해주기 위해, 일부 실시예의 미디어 교환 모듈(310)은 미디어 콘텐츠의 소비자 및 생산자가 사용할 응용 프로그램 프로그래밍 인터페이스(API)의 세트를 제공한다. 일부 이러한 실시예에서, 미디어 교환 모듈(310)은 모바일 장치 상에서 실행 중인 운영 체제의 일부인 하나 이상의 프레임워크의 세트이다. 이러한 미디어 교환 모듈(310)의 한 일례는 Apple Inc.에 의해 제공되는 코어 미디어 프레임워크(Core Media framework)이다.
이미지 처리 모듈(325)은 장치의 카메라에 의해 캡처된 이미지에 대해 이미지 처리를 수행한다. 이러한 동작의 일례는 노출 조절 동작, 초점 조절 동작, 원근 보정, 이미지 크기 조정 등을 포함한다. 이들 동작에 부가하여, 이미지 처리 모듈(325)은 HDR 이미지 처리 동작을 수행한다. 구체적으로는, 일부 실시예에서, 이 모듈(325)은 도 1의 HDR 이미지 처리 모듈(110)을 포함하고 있다. 이 모듈(110)을 사용하여, 모듈(325)은 도 1을 참조하여 이상에서 기술되었던 정렬 및 합성 동작을 수행한다.
미디어 교환 모듈(310)을 통해, 이미지 처리 모듈(325)은, 앞서 언급한 바와 같이, CM 드라이버(305) 및 인코더 드라이버(320)와 인터페이스한다. CM 드라이버(305)는 이미지 캡처 모듈(image capture module, ICM)(330)과 미디어 교환 모듈(310) 사이의 통신 인터페이스로서 역할한다. ICM(330)은 일련의 이미지를 HDR 이미지를 생성하는 데 필요한 상이한 해상도로 캡처하는 일을 맡고 있는 모바일 장치의 구성요소이다.
이미지 처리 모듈(325)로부터 미디어 교환 모듈(310)을 통해, CM 드라이버(305)는 장치가 HDR 모드에 들어갔고 HDR 이미지 캡처 요청이 행해졌다는 지시를 수신한다. CM 드라이버(305)는 이러한 요청을 ICM(330)으로 중계하고, 그에 응답하여 HDR 이미지를 생성하는 데 필요한 상이한 해상도의 이미지 세트를 수신한다. CM 드라이버(305)는 이어서 이들 이미지를 미디어 교환 모듈(310)을 통해 이미지 처리 모듈(325)로 송신한다.
인코더 드라이버(320)는 미디어 교환 모듈(310)과 인코더 하드웨어(335)(예컨대, 인코더 칩, SoC(system on chip, 시스템 온 칩) 상의 인코딩 구성요소 등) 사이의 통신 인터페이스로서 역할한다. 일부 실시예에서, 인코더 드라이버(320)는 이미지(예컨대, 발생된 HDR 이미지)를 수신하고 미디어 교환 모듈(310)을 통해 이미지 처리 모듈(325)에 이미지를 인코딩하라고 요청한다. 인코더 드라이버(320)는 인코딩될 이미지를 인코더(335)로 송신하고, 인코더(335)는 이어서 이미지에 대해 사진 인코딩(예컨대, JPEG 인코딩)을 수행한다. 인코더 드라이버(320)가 인코더(335)로부터 인코딩된 이미지를 수신할 때, 인코더 드라이버(320)는 인코딩된 이미지를 미디어 교환 모듈(310)을 통해 다시 이미지 처리 모듈(325)로 송신한다.
일부 실시예에서, 이미지 처리 모듈(325)은 인코더로부터 수신하는 인코딩된 이미지에 대해 상이한 동작을 수행할 수 있다. 이러한 동작의 일례는 인코딩된 이미지를 장치의 저장 장치에 저장하는 것, 인코딩된 이미지를 장치의 네트워크 인터페이스를 통해 다른 장치로 전송하는 것 등을 포함한다.
일부 실시예에서, 모듈들(305, 310, 320, 325) 중 일부 또는 전부는 장치의 운영 체제의 일부이다. 다른 실시예는 미디어 교환 모듈(310), CM 드라이버(305) 및 인코더 드라이버(320)를 장치의 운영 체제의 일부로서 구현하고 있는 반면, 이미지 처리 모듈(325)을 운영 체제 상에서 실행되는 응용 프로그램으로서 가진다. 모듈(300)의 또 다른 구현이 가능하다.
이제부터 도 4를 참조하여, HDR 이미지 캡처 세션 동안의 이미지 처리 모듈(325)의 동작에 대해 기술할 것이다. 이 도면은 일부 실시예에서 인코딩된 HDR 이미지를 생성하기 위해 이미지 처리 모듈(325)이 수행하는 일련의 동작을 나타내는 프로세스(400)를 개념적으로 나타내고 있다. 이미지 처리 모듈(325)은 장치가 HDR 모드에 들어갈 때마다[예컨대, 도 2a에 나타낸 일례에서 HDR 선택 항목(235)을 선택할 시에] 이 프로세스(400)를 수행한다. 그에 따라, 도 4에 도시된 바와 같이, 이미지 처리 모듈(325)은 먼저 HDR 모드에 들어간다(405).
그 다음에, 모듈(325)은 미디어 교환 모듈(310) 및 CM 드라이버(305)를 통해 이미지 캡처 모듈(330)에 그의 HDR 이미지 캡처 모드에 들어가라고 명령한다(410). 이 명령을 수신할 시에, 앞서 언급하였고 이하에서 더 기술하는 바와 같이, 이미지 캡처 모듈(330)은 현재 조명 조건에서 과다 노출된 이미지 및 과소 노출된 이미지를 생성하기 위한 노출 기간을 계산한다. 또한, 이 스테이지에서, 이미지 캡처 모듈(330)은 적정 노출된 이미지를 캡처하고 이들을 프레임 버퍼에 일시적으로 저장한다. 이러한 이미지를 캡처하기 위해, 이미지 캡처 모듈(330)은 장치가 그의 카메라 모드 동작에 있는 동안 반복적으로 노출 기간을 계산한다.
이미지 캡처 모듈(330)에 그의 HDR 모드에 들어가라고 지시한 후에, 이미지 처리 모듈(325)은 [예컨대, 도 2a에 예시된 일례에서 사진 캡처 항목(215)의 선택 시에] HDR 이미지를 캡처 및 생성하라는 명령을 수신했다는 것을 이미지 캡처 모듈(330)에 명령한다(415). 이 명령은 미디어 교환 모듈(310) 및 CM 드라이버(305)를 통해 이미지 캡처 모듈(330)에 중계된다.
이 명령에 응답하여, 이미지 캡처 모듈(330)은 현재 조명 조건에 대해 이전에 계산했던 과다 노출 기간에 기초하여 캡처하는 과다 노출된 이미지, 및 현재 조명 조건에 대해 이전에 계산했던 과소 노출 기간에 기초하여 캡처하는 과소 노출된 이미지를 연달아 캡처한다. 이들 이미지에 부가하여, 이미지 캡처 모듈은 또한 이전에 적정 노출 기간에 캡처하여 그의 프레임 버퍼에 저장했던 이미지를 검색한다.
CM 드라이버(305) 및 미디어 교환 모듈(310)을 통해, 이미지 처리 모듈(325)은 이미지 캡처 모듈(330)로부터 3개의 이미지 각각을 수신한다(415). 일부 실시예에서, 이미지 처리 모듈(325)은 카메라가 이미지를 캡처했던 컬러 공간에서 3개의 이미지를 수신한다. 예를 들어, 일부 실시예의 이미지 캡처 모듈(330)은 이들 이미지를 Y'CbCr 컬러 공간에서 캡처하여 제공한다.
이미지 처리 모듈은 이어서 3개의 이미지 모두를 서로 정렬하는데(420), 그 이유는 카메라가 3개의 이미지를 캡처하는 시간 동안 움직였을지도 모르기 때문이다. 앞서 언급하였고 이하에서 더 기술하는 바와 같이, 이미지 처리 모듈은 과다 노출된 이미지 및 과소 노출된 이미지를 적정 노출된 이미지과 쌍별로 정렬하기 위해 계층적 탐색 기법을 사용한다.
이미지들을 정렬한 후에, 이미지 처리 모듈은 합성 HDR 이미지를 생성하기 위해 3개의 이미지에서의 이미지 데이터를 합성한다(425). 다른 실시예에서, 이미지 처리 모듈은 3개의 이미지를 합성하기 위해 상이한 기술을 사용한다. 예를 들어, 일부 실시예는 이들 이미지의 루마 채널에 대해 이들 이미지의 크로마 채널에 대한 것과 상이한 세트의 동작을 수행함으로써 3개의 이미지를 합성한다. 또한, HDR 합성 이미지를 발생할 시에, 일부 실시예는 원하는 값 범위를 초과하는 루마값 및 크로마값을 생성할 수 있다. 그에 따라, HDR 이미지를 발생하는 동안, 일부 실시예는 HDR 이미지의 루마값 및 크로마값이 그의 원하는 범위 내에서 발생되도록 하기 위해 스케일링 동작을 동시에 수행한다.
HDR 이미지를 생성한 후에, 이미지 처리 모듈은 발생된 HDR 이미지를 디스플레이한다(425). 그 다음에, 이 모듈은 [미디어 교환 모듈(310) 및 인코더 드라이버(320)를 통해] HDR 이미지를 인코딩하라고 인코더(335)에 지시한다(430). 일부 실시예에서, 인코더는 이 이미지를 인코딩하고(예컨대, 이 이미지를 JPEG 형식으로 인코딩하고) 인코딩된 HDR 이미지를 반환한다. 일부 실시예에서, 이미지 처리 모듈은 이어서 인코딩된 HDR 이미지를 장치의 저장 장치 상에 저장한다(430). 일부 실시예의 이미지 처리 모듈은 또한 인코딩된 HDR 이미지에 대해 다른 동작들을 수행할 수 있다. 예를 들어, 어떤 경우에, 이미지 처리 모듈은 인코딩된 발생된 이미지를 장치의 네트워크 인터페이스에 의해 설정된 네트워크 연결을 통해 다른 장치로 전송한다.
기술 분야의 당업자라면 이미지 처리 동작이 앞서 기술된 것과 상이한 방식으로 구현될 수 있다는 것을 잘 알 것이다. 예를 들어, 단지 하나의 적정 노출된 이미지를 처리하는 대신에, 일부 실시예의 이미지 처리 모듈은 이미지 캡처 모듈이 반환하는 몇개의 적정 노출된 이미지를 검사한다. 이 그룹으로부터, 이미지 처리 모듈은 가장 선명하고 캡처된 과다 노출된 이미지 및 과소 노출된 이미지에 가장 잘 정합하는 적정 노출된 이미지를 선택한다. 다른 대안으로서, 일부 실시예에서, 프레임 버퍼로부터의 적정 노출된 이미지를 사용하기 보다는, HDR 캡처 명령이 수신된 후에, 모바일 장치는 적정 노출에서의 하나 이상의 이미지는 물론, 과다 노출된 이미지 및 과소 노출된 이미지도 촬영한다. 일부 이러한 실시예에서, 이미지 처리 모듈은 합성 HDR 이미지를 발생하는 데 사용하기 위해 적정 노출된 이미지들 중 하나(예컨대, 가장 선명한 것, 가장 마지막 것, 기타)를 선택한다. 일부 실시예에서, 프레임 버퍼로부터보다는 HDR 캡처 명령 이후에 적정 노출된 이미지로 촬영된다.
기술 분야의 당업자라면 프레임 버퍼로부터 적정 이미지(normal image)를 촬영하고 HDR 명령이 수신된 후에 적정 이미지를 촬영하는 각각의 방법이 다른 방법보다 어떤 이점을 가진다는 것을 잘 알 것이다. HDR 캡처 명령 아이콘을 터치하는 동작은 프레임 버퍼 내의 이미지들이 촬영될 때 있었던 곳으로부터 멀어지게 모바일 장치를 움직인다. 프레임 버퍼로부터의 이미지로 사용될 때, 적정 노출된 이미지의 촬영과 과다 노출된 이미지 및 과소 노출된 이미지의 촬영 사이에서 HDR 캡처 명령 아이콘을 터치하는 것에 의해 야기되는 모바일 장치의 움직임이 발생할 것이다. 그 대신에, HDR 캡처 명령 아이콘이 터치된 후에 적정 노출된 이미지로 새로 촬영되는 경우, 이미지들의 캡처 사이보다는 적정 이미지로 촬영되기 전에 터치에 의해 야기되는 움직임이 발생할 것이다. 그에 따라, 적정 노출된 이미지를 새로 촬영하는 것은 3개의 노출의 캡처 동안 장치의 움직임의 양을 감소시킬 수 있다. 이미지들의 캡처 동안 움직임을 감소시키는 것은 합성될 중복 영역을 증가시킨다.
앞서 언급한 바와 같이, 일부 실시예는 프레임 버퍼로부터의 최근의 이미지를 미리보기 이미지로서 디스플레이하고, 미리보기 이미지들 중 하나를 적정 노출된 이미지로서 사용한다. 프레임 버퍼로부터의 적정 이미지를 사용하는 것의 가능한 이점은 그 이미지로 더욱 더 HDR 캡처 명령이 수신되기 전에 디스플레이되는 미리보기 이미지처럼 보일 것이라는 것이다. 프레임 버퍼로부터 적정 이미지를 검색하는 것의 다른 가능한 이점은 HDR 명령이 활성화되는 것과 합성 HDR 이미지로 디스플레이되는 것 사이의 시간이 (예컨대, 적정 노출된 이미지의 노출 시간만큼) 더 짧을 수 있다는 것이다.
일부 실시예가, 프레임 버퍼로부터의 이미지보다는, 새로 캡처된 적정 노출을 사용하기 때문에, 그 실시예들 중 일부는 모바일 장치가 HDR 모드에 있는 동안 적정 노출된 미리보기 이미지를 촬영하여 이들을 프레임 버퍼에 저장하지 않는다. 그렇지만, HDR 명령이 수신된 후에 캡처된 적정 노출된 이미지를 사용하는 실시예들 중에서도, 조명 조건에 관한 데이터를 수집하기 위해, 어느 적정 노출 시간을 사용할지를 결정하기 위해, 어느 노출값을 사용할지를 결정하기 위해, 기타를 위해, 일부 실시예는 여전히 적정 노출된 미리보기 이미지를 촬영한다.
III. 이미지 캡처 모듈
도 5a는 본 발명의 일부 실시예의 이미지 캡처 모듈(330)을 나타낸 것이다. 이미지 처리 모듈(325)의 지시에 따라, 이미지 캡처 모듈(330)은 장치의 카메라에 이미지를 캡처하라고 지시한다. 예를 들어, 앞서 언급한 바와 같이, 일부 실시예에서, 이미지 캡처 모듈(330)은, 장치가 그의 카메라 동작 모드에 들어갈 때, 카메라에 적정 노출된 이미지를 특정의 프레임 레이트로 캡처하기 시작하라고 지시한다. 또한, 장치가 그의 HDR 모드에 들어갈 때, 모듈(330)은 과다 노출된 이미지 및 과소 노출된 이미지를 촬영하기 위한 노출 기간을 계산함으로써 [이미지 처리 모듈(325)의 지시에 따라] 그의 HDR 모드에 들어간다. 이어서, 이미지 캡처 모듈(330)은, 그의 HDR 모드에 있는 동안 이미지 캡처 명령을 수신할 때, 일부 실시예에서, (1) 2개의 연속적인 이미지 - 과다 노출 기간을 갖는 이미지 및 과소 노출 기간을 갖는 이미지 - 를 촬영하고, (2) 이들 2개의 이미지를 그의 프레임 버퍼로부터의 하나 이상의 적정 노출된 이미지과 함께 반환한다.
도 5a에 도시된 바와 같이, 이미지 캡처 모듈(330)은 센서 모듈(515), 프레임 버퍼(520), 이미지 처리 파이프라인(525), 통계 엔진(530), 및 제어기 모듈(535)을 포함하고 있다. 일부 실시예에서, 이미지 캡처 모듈(330)의 모든 모듈이 하드웨어(에컨대, ASIC, FPGA, 마이크로컨트롤러를 갖는 SOC 등)로 구현되어 있는 반면, 다른 실시예에서, 이미지 캡처 모듈(330)의 모듈들 중 일부 또는 전부가 소프트웨어로 구현되어 있다.
센서 모듈(515)은 장치의 카메라의 카메라 센서(505) 및 센서 인터페이스(510)에 통신 연결되어 있다. 일부 실시예에서, 카메라 센서(505)는 CMOS 센서이고, 센서 인터페이스(510)는 카메라 센서(505)의 일부이다. 센서 모듈과 카메라 센서/센서 인터페이스 사이의 통신 연결은 임의의 수의 공지된 센서 인터페이스를 통해 용이하게 된다. 이 통신 연결을 통해, 센서 모듈(515)은 카메라의 동작의 다양한 측면(그의 전력 레벨, 줌 레벨, 초점, 노출 레벨, 기타 등등)을 제어하기 위해 명령어를 카메라에 전달할 수 있다. 일부 실시예에서, 이들 명령어는 통상적으로 제어기 모듈(535)로부터 나온다. 또한, 이미지 처리 모듈(325)이 카메라에 이미지를 캡처하기 시작하라고 요청하고 센서 모듈(515)이 제어기 모듈(535)을 통해 이 요청을 수신할 때, 센서 모듈(515)은, 카메라와의 통신 연결을 통해, 카메라 센서에 이미지를 캡처하기 시작하라고 지시할 수 있으며, 이에 대해서는 이하에서 더 기술한다.
일부 실시예에서, Bayer 필터가 카메라 센서에 중첩되어 있고, 따라서 카메라 센서는 Bayer 패턴 이미지를 출력하고, 이 Bayer 패턴 이미지는 카메라 센서와 연관된 센서 인터페이스에 저장된다. Bayer 패턴 이미지는 각각의 픽셀이 하나의 컬러 값(적색, 청색 또는 녹색)만을 저장하는 이미지이다. 센서 모듈(515)은, 센서 인터페이스(510)와의 연결을 통해, 카메라 센서 인터페이스(510)에 저장되어 있는 원시 Bayer 패턴 이미지를 검색한다. 센서 모듈(515)이 카메라의 센서 인터페이스로부터 이미지를 검색하는 레이트를 제어함으로써, 센서 모듈(515)은 특정의 카메라에 의해 캡처되고 있는 이미지의 프레임 레이트를 제어할 수 있다.
센서 모듈(515)은 센서 인터페이스(510)로부터 검색하는 이미지를 프레임 버퍼(520)에 저장한다. 프레임 버퍼(520)에 저장된 이미지는 원시의 미처리된 이미지이다. 이미지 처리 모듈(325)이 이들 이미지를 처리할 수 있기 전에, 이미지 캡처 모듈(330)의 이미지 처리 파이프라인(525)은 이들에 대해 몇가지 전처리 동작을 수행할 필요가 있다. 다른 실시예는 다른 세트의 전처리 동작을 수행한다. 예를 들어, 일부 실시예에서, 이미지 처리 파이프라인(525)은 Bayer 패턴 이미지에서 각각의 컬러 세트에 대한 컬러 값을 보간함으로써 프레임 버퍼(520)에 저장된 Bayer 패턴 이미지로부터 적색, 녹색, 청색(RGB) 이미지를 재구성하는 디모자이킹 모듈(도시 생략)을 포함한다. 또한, 일부 실시예의 이미지 처리 파이프라인(525)은 RGB 이미지를 Y'CbCr 이미지로 변환하는 컬러공간 변환 모듈(도시 생략)을 포함한다. 일부 실시예의 이미지 처리 파이프라인(525)에 포함되어 있는 다른 모듈들의 일례는 (1) 프레임 버퍼로부터 검색된 이미지에서의 불량 픽셀을 보정하려고 하는 불량 픽셀 제거, (2) 카메라 렌즈에 의해 야기되는 이미지 결함을 보정하는 렌즈 음영 보정, (3) 중성색을 올바르게 렌더링하도록 이미지의 컬러를 조정하는 화이트 밸런스(white balance) 보정 등을 수행하는 모듈을 포함한다. 본 명세서에서 사용되는 바와 같이, 한 형식으로부터 다른 형식으로 변환하는 것은 한 형식으로 된 이미지로부터의 데이터를 사용하여 다른 형식으로 된 이미지를 발생하는 것을 말한다. 일부 실시예에서, 새로운 버전의 이미지는 이전 이미지를 대체하고, 다른 실시예에서는, 이전 버전 및 새로운 버전의 이미지 둘 다가 유지된다.
통계 엔진(530)은 이미지 처리 파이프라인(525)의 다양한 스테이지에서 이미지 데이터를 수집한다. 또한, 다른 실시예에서, 이 엔진은 이미지 처리 파이프라인(525)의 다른 스테이지로부터 다른 방식으로 데이터를 수집한다. 통계 엔진(530)은 수집된 데이터를 처리하고, 처리된 데이터에 기초하여, 제어기 모듈(535) 및 센서 모듈(515)을 통해 카메라 센서(505)의 동작을 조절한다. 이러한 동작의 일례는 노출 및 초점을 포함한다. 일부 실시예에서, 센서 통합 시간(sensor integration time) 및 센서/캡처 모듈 아날로그/디지털 이득의 결합에 의해 노출 기간이 결정된다. 도 5a가 통계 엔진(530)이 제어기 모듈(535)을 통해 카메라 센서(505)를 제어하는 것을 나타내고 있지만, 다른 실시예에서 통계 엔진(530)은 단지 센서 모듈(515)만을 통해 카메라 센서를 제어한다. 또한, 통계 엔진(530)이 제어기 모듈(535)과 분리되어 있는 것으로 도시되어 있지만, 이 엔진의 동작이 제어기 모듈(535)에 의해 수행된다. 환언하면, 도 5a에서의 통계 엔진의 모듈화는 이미지 캡처 모듈(330)에 의해 수행되는 일련의 동작의 개념화이다.
일부 실시예의 제어기 모듈(535)은 이미지 캡처 모듈(330)의 동작을 제어하는 마이크로컨트롤러이다. 예를 들어, 일부 실시예에서, 제어기 모듈(535)은 이미지를 캡처하라고 센서 모듈(515)을 통해 카메라 센서(505)에 지시한다. 또한, 일부 실시예에서, 제어기 모듈(535)은 (1) 센서 모듈(515)을 통해 카메라 센서의 동작(예컨대, 노출 레벨)을, (2) 이미지 처리 파이프라인(525)의 동작을, 그리고 (3) 일부 실시예의 모바일 장치의 일부인 플래시/스트로브(도시 생략)를 제어한다. 제어기 모듈(535)로부터 노출 설정을 수신하는 대신에 또는 이들 설정과 함께, 일부 실시예의 카메라 센서(505) 또는 센서 모듈(515)은 카메라 센서 동작을 위해 기본값을 사용한다.
제어기 모듈(535)의 일부 실시예는 통계 엔진(530) 및 캡처 모듈 드라이버(305)로부터 수신된 명령어를 처리한다. 일부 실시예에서, 캡처 모듈 드라이버(305)로부터 수신된 명령어는 모바일 장치로부터의(즉, 로컬 장치로부터 수신된) 명령어인 반면, 다른 실시예에서, 캡처 모듈 드라이버(305)로부터 수신된 명령어는 다른 장치로부터의 명령어이다. 처리된 명령어에 기초하여, 제어기 모듈(535)은 이미지 캡처 모듈(330)의 동작을 조절한다.
도 5b는 본 발명의 어떤 다른 실시예의 이미지 캡처 모듈(330)을 나타낸 것이다. 도 5b에서, 센서 모듈(515)은 카메라 센서(505)를 직접 제어하지 않고 제어기 모듈(535)로부터 명령을 수신하지 않는다. 이 도면에서, 제어기 모듈(535)은 카메라 센서(505)를 제어한다. 도 5b에서, 센서 모듈(515)은, 도 5a에서의 센서 모듈(515)이 하는 것처럼, 데이터를 센서 인터페이스(510)로부터 프레임 버퍼(520)로 전달한다.
도 6은 HDR 이미지 캡처 세션 동안 이미지 캡처 모듈(330)의 일련의 동작을 개념적으로 나타낸 프로세스(600)를 나타낸 것이다. 이 프로세스는 장치가 그의 이미지 캡처 모드에 들어갈 때마다 시작한다. 도 6에 도시된 바와 같이, 이 프로세스는 특정의 기본 레이트로 이미지를 캡처하기 시작한다(605). 캡처된 이미지들 중 하나 이상의 이미지의 하나 이상의 특성(예컨대, 히스토그램 또는 총 조명 레벨)에 기초하여, 일부 실시예에서 제어기 모듈(535)은 현재 조명 조건을 검출한다(605). 현재 조명 조건에 기초하여, 제어기 모듈은 적정 노출된 이미지(이하에서 EV0 이미지라고 함)를 캡처하기 위한 노출 기간을 정의하고(605), 이 노출 기간을 센서 모듈(515)로 중계한다(605). 다른 실시예에서, 카메라 센서(505) 또는 센서 모듈(515)과 연관된 제어 논리는 조명 조건을 검출하고 적정 노출(EV0 노출이라고 함)에 대한 노출 기간을 정의한다. 일부 실시예에서, 이 제어 논리는 장치가 동작하고 있는 곳의 광량을 정량화할 수 있는 광 검출 회로를 포함하고 있다.
적정 노출 기간이 어디서 어떻게 계산되는지에 관계없이, 프로세스(600)는 적정 노출 기간으로 이미지를 캡처하기 시작하고 캡처된 이미지를 프레임 버퍼에 저장한다. 일부 실시예에서, 프로세스(600)는 조명 조건이 변할 때 적정 노출 기간을 식별하기 위해 이미지 캡처 세션 동안 반복적으로 적정 노출 기간을 계산한다.
605에서, 제어기 모듈(535)은 CM 드라이버(305) 및 미디어 교환 모듈(310)을 통해 이미지 처리 모듈(325)로부터 HDR 모드 명령을 수신했다는 통보를 수신한다(610). 이 명령에 기초하여, 제어기 모듈(535)은 현재 조명 조건 동안 과다 노출된 이미지 및 과소 노출된 이미지를 촬영하기 위한(EV+ 및 EV- 이미지를 촬영하기 위한) 노출 기간을 계산한다(615). 일부 실시예에서, 제어기 모듈은 조명 조건이 변할 때 과다 노출된 및 과소 노출된 노출 기간을 식별하기 위해 HDR 캡처 세션 동안 반복적으로 동작(615)을 수행한다.
그 다음에, 620에서, 제어기 모듈(535)은 사진을 촬영하라는 명령어를 수신한다. 그에 응답하여, 제어기 모듈(535)은 하나의 과다 노출된 이미지를 과다 노출 기간으로 캡처하고 하나의 과소 노출된 이미지를 과소 노출 기간으로 캡처하라고 센서 모듈에 지시한다(625, 630). 제어기 모듈(535)은 이어서, 프레임 버퍼 내의 하나 이상의 EV0 이미지과 함께, 캡처된 EV+ 및 EV- 이미지를 프레임 버퍼로부터 검색하라고 이미지 처리 파이프라인(525)에 지시한다(635). 앞서 언급한 바와 같이, 일부 실시예에서, 이미지 처리 모듈(325)이 EV+ 및 EV- 이미지과 정렬하기 위한 최상의 EV0 이미지를 선택할 수 있게 해주기 위해, 이미지 캡처 모듈은 몇개의 EV0 이미지를 이미지 처리 모듈(325)로 반환한다. 다른 대안으로서, 일부 실시예에서, 이미지 캡처 모듈(330)은 하나의 적정 노출된 이미지만을 반환하지만, 이 반환된 이미지가 블러링되지 않도록(즉, 선명하게 되도록) 해주려고 한다. 다른 실시예에서, 이미지 캡처 모듈(330)은 다른 방식으로 이미지가 선명하게 되도록 해주려고 한다. 예를 들어, 장치가 가속도계 및/또는 자이로스코프를 가지는 일부 실시예에서, 이미지 캡처 모듈은 선명한 적정 노출된 이미지를 선택하기 위해 적정 노출된 이미지의 흐림의 가능성을 확인하는 데 가속도계 및/또는 자이로스코프로부터 기록된 데이터를 사용한다.
다른 실시예에서, 제어기 모듈(535)은 과다 노출된 이미지, 과소 노출된 이미지 및 적정 노출된 이미지를 다른 방식으로 검색하라고 이미지 처리 파이프라인(525)에 지시한다(635). 일부 실시예에서, 제어기 모듈(535)은 과다 노출된 이미지 및 과소 노출된 이미지가 캡처되고 있다는 것을 처리 파이프라인(525)에 간단히 통지하고, 처리 파이프라인(525)은 프레임 버퍼(520)로부터 올바른 이미지를 검색한다.
이미지 처리 파이프라인(525)은 프레임 버퍼(520)로부터 검색된 각각의 이미지를 전처리한다(640). 이미지 캡처 모듈(330)은 각각의 검색되고 전처리된 이미지를 HDR 이미지 발생을 위해 이미지 처리 모듈(325)로 반환한다(640). 640에서, 이 프로세스는 장치가 더 이상 HDR 캡처 모드에 있지 않는 경우 종료되거나, 다른 "사진 촬영" 명령을 기다리기 위해 620으로 되돌아간다.
이상의 설명에서는 캡처된 이미지를 조명 조건에 관한 정보 소스(들)로서 보고 있다. 그렇지만, 일부 실시예에서, 카메라 센서(505)는 이미지 데이터를 발생하는 일 없이 조명 조건을 판정한다. 일부 실시예의 모바일 장치는 조명 조건을 판정하기 위해 카메라 센서(505) 대신에 또는 그에 부가하여 부가의 센서를 사용한다.
IV. 이미지 정렬
A. 서론
모바일 장치에 의해 촬영된 장면의 3개의 이미지로부터 합성 이미지를 만들기 위해, 장면의 특정의 부분을 보여주는 각각의 이미지에서의 픽셀들이 장면의 그 동일한 부분을 보여주는 다른 이미지들 각각에서의 픽셀들과 합성되어야만 한다. 이미지들이 촬영되고 있는 동안 모바일 장치가 움직이지 않는 경우, 각각의 이미지에서의 장면의 특정의 부분을 나타내는 픽셀들은 다른 이미지들 각각에서의 장면의 동일한 부분을 나타내는 픽셀들과 이미지에서의 동일한 좌표를 가질 것이다. 이러한 이미지들은 정렬되었다고 할 수 있다. 그렇지만, 이미지들의 촬영 동안 모바일 장치가 움직이는 경우, 하나의 이미지에서의 장면의 특정의 부분을 나타내는 픽셀들은 다른 이미지들에서의 장면의 동일한 부분을 나타내는 픽셀들과 약간 다른 좌표를 가질 것이다. 환언하면, 움직이는 장치에 의해 촬영된 이미지들은 정렬되어 있지 않을 것이다.
이미지들을 합성하기 전에, 일부 실시예는 이미지들을 합성하기 전에 이미지들을 정렬함으로써 모바일 장치의 움직임을 보상한다. 즉, 원시 이미지들이 수직 및 수평 방향에서 서로로부터 오프셋되어 있는 픽셀의 수가 구해지며, 따라서 대응하는 픽셀들이 원시 이미지들 각각에서 동일한 좌표를 갖지 않더라도, 모바일 장치가 이어서 장면의 동일한 부분에 대응하는 각각의 이미지로부터의 픽셀들을 결합시킬 수 있다. 2개의 이미지에서의 대응하는 픽셀들을 정렬시키는 오프셋을 오프셋 벡터(픽셀 단위로 측정됨)라고 할 수 있다.
동일한 장면을 촬영한 2개의 이미지 사이의 오프셋은 이미지가 촬영되는 동안의 모바일 장치의 회전 또는 병진에 의해 야기될 수 있다. 사용자가 일부 실시예의 모바일 장치에 고 다이나믹 레인지 사진을 촬영하라고 명령할 때, 모바일 장치는 각각의 이미지를 촬영하는 사이에 아주 작은 시간이 있도록 3개의 이미지를 연달아 촬영한다. 그렇지만, 각각의 이미지를 촬영하는 사이에 작은 시간이 있더라도, 핸드헬드 모바일 장치는 3개의 이미지를 촬영하는 동안 아마도 약간 움직일 것이다. 예를 들어, HDR 사진을 촬영하라고 모바일 장치에 명령하기 위해 모바일 장치를 터치하는 동작은 장치를 움직일 수 있다. 모바일 장치의 움직임으로 인해, 각각의 이미지가 약간 다른 위치로부터 촬영될 것이다. 약간의 위치 변화로 인해, 원시 이미지들이 서로 정렬되지 않을 것이다. 고 다이나믹 레인지 프로세스가 상이한 노출로 촬영된 이미지들을 합성할 수 있기 전에, 이미지들을 정렬시키게 될 특정의 오프셋 벡터를 찾아냄으로써 이미지들이 (예컨대, 모바일 장치에 의해) 서로 정렬되어야만 한다. 이러한 정렬은 때때로 "위치 맞춤(registration)"이라고 하는 프로세스의 일부이다.
한 이미지가 다른 이미지로부터 오프셋되어 있는 픽셀의 수는 이미지들을 촬영하는 동안 카메라가 (병진 및 회전에 의해) 얼마나 움직이는지 및 이미지들의 스케일(이미지에서의 각각의 픽셀에 의해 몇 센티미터 또는 몇 도의 장면이 표현되는지)에 의존한다. 예를 들어, 카메라의 회전 또는 병진 이동은 장면의 2개의 이미지를 10 cm 정렬되어 있지 않게 할지도 모른다(예컨대, 하나의 이미지가 다른 이미지보다 장면의 좌측을 10 cm 더 보여주고 장면의 우측을 10 cm 덜 보여준다). 이러한 경우에, 이미지의 스케일이 이미지에서의 1 픽셀의 길이를 장면에서의 1 cm와 같게 하는 경우, 이미지는 10 픽셀 정렬되어 있지 않게 될 것이다. 장면에서의 실세계 항목에 대한 이미지의 위치의 변화가 이미지를 이루고 있는 픽셀들에 대한 이미지에서의 변화로 변환될 수 있는지를 설명하기 위해 이 스케일이 제공된다. 일부 실시예에서, 모바일 장치는 이미지의 실제 스케일을 측정하지 않는다.
일부 실시예의 모바일 장치는 사진을 촬영하는 동안 장치가 얼마나 움직였는지의 정확한 척도를 갖지 않는다. 따라서, 이미지들이 촬영될 때 이러한 실시예에서 이미지들을 정렬하게 될 오프셋이 알려져 있지 않다. 일부 실시예의 모바일 장치는 일정 범위의 오프셋 벡터들을 테스트함으로써 2개의 이미지를 정렬하는 오프셋을 식별할 것이다. 주어진 이미지 쌍을 정렬하는지를 판정하기 위해 모바일 장치에 의해 테스트되는 범위 내의 일련의 오프셋 벡터를 본 명세서에서 "잠재적 오프셋 벡터(potential offset vector)" 또는 "잠재적 오프셋(potential offset)"이라고 한다. 일부 실시예의 모바일 장치는 상이한 값의 오프셋 벡터들에서 이미지들(또는 이미지들로부터 도출된 비트맵)을 비교함으로써 어느 잠재적 오프셋 벡터가 이미지들을 정렬하는지를 판정한다. 일부 실시예에서, 잠재적 오프셋의 범위가 이미지들 사이에 상당한 중복을 남기게 될 그런 오프셋으로 제한된다. 이러한 실시예에서 그다지 중복을 남기지 않을 오프셋은 테스트되지 않는데, 그 이유는 합성 프로세스가 주로 이미지들의 중복 부분에 대해 동작하기 때문이다. 사진을 촬영하는 동안 모바일 장치를 흔들리지 않게 잡고 있으려고 하는 사용자의 손에서의 모바일 장치의 움직임은 비교적 작을 수 있고, 따라서, 정렬 오프셋이 종종 이미지의 크기에 비해 작다. 그렇지만, 일부 실시예는 움직임이 보통보다 큰 경우에만 더 큰 범위의 오프셋을 테스트한다. 일부 실시예에서, 모바일 장치의 변위 및/또는 회전을 추정하기 위해 하나 이상의 외부 센서(예컨대, 자이로스코프, 움직임 센서 등)가 사용된다. 일부 실시예에서, 이러한 추정은 오프셋 벡터를 탐색하기 위한 시작점을 결정하는 데 사용된다. 일부 실시예에서, 이 추정은 탐색할 오프셋 벡터의 범위를 결정하는 데 사용된다(예컨대, 모바일 장치가 아주 안정되게 보유되어 있는 경우, 모바일 장치가 덜 안정되게 보유되어 있는 경우보다 탐색 범위가 더 좁다).
잠재적 오프셋의 범위를 이미지들 사이에 상당한 중복을 남기는 그러한 범위로 제한하는 실시예에서도, 잠재적 오프셋의 수가 많을 수 있다. 예를 들어, 잠재적 오프셋이 1000 픽셀 정사각형인 이미지의 폭 및 높이의 0% 내지 6.4%의 범위에 있는 경우, 잠재적 오프셋 벡터가 임의의 방향(상측, 하측, 좌측 또는 우측)에서 0 내지 64 픽셀일 수 있다. 그 범위의 가능한 오프셋 벡터를 사용하면, 가능한 오프셋 벡터의 총 수는 약 16,000(대략 128 수직 픽셀 x 128 수평 픽셀)이다. 테스트할 잠재적 오프셋 벡터가 수천개 있을 때, 각각의 가능한 오프셋 벡터에서 큰 이미지(또는 큰 비트맵)를 직접 비교함으로써 잠재적 오프셋 벡터를 테스트하는 것은 아주 많은 수의 계산을 필요로 한다.
실제 오프셋을 찾아내기 위해 수행되는 계산의 수를 감소시키기 위해, 일부 실시예는 계층적 정렬 프로세스를 수행한다. 일부 실시예의 계층적 정렬 프로세스는 보다 낮은 해상도로 된 버전의 이미지들을 발생한다. 보다 낮은 해상도의 이미지가 동일한 장면을 포함하지만, 더 큰 스케일링 인자를 가진다. 예를 들어, 1000x1000(픽셀 x 픽셀) 이미지가 10 m 폭인 장면을 나타내는 경우, 이미지에서의 1 픽셀 길이는 장면에서의 1 cm를 나타낸다. 1000x1000 이미지로부터 발생된 500x500 해상도 이미지에서의 1 픽셀 길이는 장면에서의 2 cm를 나타낸다. 이와 유사하게, 500x500 이미지로부터 발생된 250x250 해상도 이미지에서의 1 픽셀 길이는 장면에서의 4 cm를 나타낸다.
스케일의 차이(즉, 더 적은 수의 픽셀이 동일한 장면을 나타냄)로 인해, 보다 낮은 해상도에서의 잠재적 오프셋 벡터는 이미지의 동일한 비율을 커버하지만, 잠재적 오프셋 벡터의 절대 수는 더 작다. 상기 일례에서, 해상도를 1/4로(1000 픽셀 정사각형으로부터 250 픽셀 정사각형으로) 떨어뜨리는 것은 가능한 오프셋의 범위를 플러스 또는 마이너스 64 픽셀로부터 플러스 또는 마이너스 16 픽셀(즉, 64 픽셀을 4로 나눈 것)로 감소시킬 것이다. 이러한 감소는 가능한 오프셋 벡터의 수를 1/16로(즉, 약 16,000개의 가능한 오프셋 벡터로부터 약 1,000개의 가능한 오프셋 벡터로) 축소시킬 것이다. 이러한 프로세스는 제1 근사화를 시작하고 이어서 연속적으로 더 미세한 근사화를 통해 실제 오프셋 벡터를 구함으로써 오프셋 벡터를 찾아낸다.
일부 실시예의 프로세스는 원시 이미지의 감소된 해상도 버전을 발생하는 것, 더 낮은 해상도 버전의 이미지로부터 1-비트 비트맵을 발생하는 것, 및 비트맵을 정렬하는 것에 의해 2개의 이미지를 정렬하는 오프셋 벡터의 연속적 근사치를 계산한다. 최저 해상도의 비트맵에서 시작하여 비트맵이 정렬된다. 비트맵을 정렬하기 위해, 프로세스는 비트맵들 사이의 실제 오프셋 벡터를 찾아내기 위해 다양한 테스트 오프셋 벡터를 사용하여 2개의 비트맵을 서로 비교한다. 일부 실시예의 프로세스는 비트맵에서의 모든 픽셀을 비교하기보다는 비트맵에서의 픽셀들의 서브셋을 비교한다. 일부 이러한 실시예에서, 2개의 비트맵을 비교하기 전에, 프로세스는 하나의 비트맵 또는 양 비트맵을 타일들로 나누고, 임계값 퍼센트 초과의 흑색 픽셀 또는 임계값 퍼센트 초과의 백색 픽셀을 포함하는 타일들을 배제한다. 이러한 프로세스는 이어서 비트맵들 사이의 오프셋 벡터를 찾아내기 위해 나머지 타일들에서의 픽셀들을 비교한다. 각각의 해상도의 비트맵에 대해 식별된 오프셋 벡터는 그 다음으로 더 높은 해상도의 비트맵에 대해 오프셋 벡터를 테스트하는 시작점으로서 사용된다. 이들 프로세스는 도 7 내지 도 11과 관련하여 이하에서 더 기술된다.
B. 정렬을 위한 비트맵의 생성
일부 실시예는 2개의 이미지를 정렬하게 될 오프셋 벡터를 탐색하는 데 사용될 다수의 비트맵을 생성한다. 도 7은 이미지들을 정렬하기 위한 이러한 일련의 비트맵을 발생하는 일부 실시예의 프로세스(700)를 나타낸 것이다. 본 명세서에서 사용되는 바와 같이, "비트맵"이라는 용어는 컬러 심도가 픽셀당 1 비트인 버전의 이미지를 말한다. 이러한 비트맵에서의 각각의 픽셀은 흑색 또는 백색으로 표현될 수 있다.
프로세스(700)는 원본 이미지를 수신한다(710). 일부 실시예에서, 이미지들이 모바일 장치의 카메라로부터 수신된다. 일부 실시예의 모바일 장치의 카메라 동작이 프로세스(700)를 수행하는 프로그램과 독립적인 프로그램에 의해 제어된다. 일부 이러한 실시예에서, 카메라 동작을 제어하는 프로그램으로부터 이미지가 수신된다. 다른 실시예에서, 하나의 프로그램이 카메라 동작을 제어하기도 하고 프로세스(700)를 수행하기도 한다. 일부 이러한 동작에서, 비트맵 발생 프로세스(700) 및 모바일 장치의 카메라 동작 둘 다를 구현하고 있는 프로그램은 카메라 하드웨어로부터 이미지들을 수신한다. 일부 실시예의 프로그램은, 카메라 하드웨어로부터 이미지들을 수신하는 대신에 또는 그에 부가하여, 모바일 장치의 메모리로부터 이미지들을 수신한다. 모바일 장치의 다른 실시예는 다른 형식으로 된 이미지를 제공한다. 일부 실시예에서, 이미지들이 각각의 픽셀에 대한 밝기 값 및 일련의 컬러 값으로 표현된다. 예를 들어, 일부 실시예에서, 이 프로세스는 Y'CbCr(루마, 청색-크로마, 및 적색-크로마) 형식으로 된 이미지들을 수신한다. 일부 실시예에서, 이미지들이 다른 컬러 성분 값으로 표현된다. 루마/크로마 형식으로 된 이미지들을 제공하는 대신에 또는 그에 부가하여, 일부 실시예의 모바일 장치는 다른 컬러 성분 값으로 이미지들을 제공한다. 일부 실시예의 컬러 성분 값이 RGB 형식(예컨대, sRGB 이미지)으로 제공된다. 이러한 실시예에서, 프로세스(700)는 수신 동작의 일부로서 이미지들을 루마 이미지로 변환한다.
프로세스는 원본 루마 이미지를 데시메이션한다(720). 원본 이미지의 데시메이션은 (각각의 차원에서) 원본의 1/2 해상도인 이미지의 사본을 생성한다. 예를 들어, 원본 이미지가 1920x1280의 해상도를 가지는 경우, 사본은 960x640의 해상도를 가질 것이다.
프로세스(700)는, 예컨대, 도 9 및 도 10의 프로세스에서 오프셋 벡터의 연속적인 근사화에 사용할 상이한 해상도 레벨을 갖는 다수의 이미지를 발생하기 위해 특정의 횟수만큼 데시메이션을 수행한다. 다양한 실시예는 이미지들을 다양한 횟수만큼 데시메이션한다. 일부 실시예에서, 데시메이션의 횟수는 잠재적 오프셋의 범위에 영향을 미친다. 주어진 이미지의 해상도가 낮을수록, 주어진 퍼센트의 이미지에 대해 더 적은 수의 잠재적 오프셋 벡터가 있다. 그에 따라, 일부 실시예에서, 테스트될 잠재적 오프셋의 범위가 클수록, 더 많은 데시메이션 레벨이 사용된다. 일부 실시예에서, 데시메이션의 레벨의 수가 사전 프로그램된다. 예를 들어, 일부 실시예는 원본 이미지 및 5개의 데시메이션 레벨을 제공하고, 최저 해상도의 데시메이션된 이미지는 해상도가 (각각의 차원에서) 원본 이미지의 1/32이고 픽셀 수가 원본 이미지의 1/1024이다. 일부 실시예는 원본 이미지 및 6개의 데시메이션 레벨을 제공하고, 최저 해상도의 데시메이션된 이미지는 해상도가 (각각의 차원에서) 원본 이미지의 1/64이고 픽셀 수가 원본 이미지의 1/4096이다. 해상도가 감소되는 것으로 인해, 주어진 비율의 이미지에서 잠재적 오프셋 벡터의 수가 그에 대응하여 감소된다. 따라서, 픽셀 수의 1 대 4096 감소는 주어진 비율의 이미지에서의 잠재적 오프셋 벡터의 수를 1/4096로 감소시킨다.
일부 실시예에서, 데시메이션의 횟수가 사전 설정된다. 그렇지만, 흔들리는 손 또는 낮은 조명 레벨 등의 국소적 조건이 모바일 장치의 움직임에 영향을 줄 수 있다. 따라서, 사전 설정된(기본) 데시메이션 횟수를 사용하는 것에 부가하여 또는 그 대신에, 일부 실시예는 사용자가 데시메이션 레벨의 수를 결정할 수 있게 해주거나, 모바일 장치로 하여금 데시메이션 레벨의 수를 원본 이미지가 촬영될 때 이용가능한 하나 이상의 변수에 응답하여 동적으로 결정하게 한다. 예를 들어, 더 긴 총 노출 시간을 사용하여(예컨대, 낮은 조명 조건에서) 3개의 HDR 이미지를 촬영할 때, 사용자의 손은 더 많은 시간 움직이게 되고 따라서 동일한 속도로 더 멀리 움직일 수 있다. 일부 실시예는 부가의 움직이는 시간을 보상하기 위해 데시메이션 레벨을 증가시킴으로써 부가의 움직임을 보상한다. 일부 실시예의 모바일 장치는 사용자의 손이 얼마나 빨리 움직이고 있는지의 적어도 어떤 표시를 제공하는 움직임 센서를 포함하고 있다. 일부 이러한 실시예에서, 이미지들의 캡처 동안 모바일 장치의 더 빠른 움직임은 모바일 장치에게 더 많은 데시메이션 레벨을 생성하라고 요청한다.
데시메이션의 횟수가 어떻게 결정되는지에 상관없이, 유사한 횟수의 데시메이션이 있다. 그에 따라, 프로세스는 원하는 수의 데시메이션된 이미지들을 발생하기 위해 데시메이션이 충분한 횟수만큼 반복되었는지를 판정한다(730). 데시메이션이 충분한 횟수만큼 반복되지 않은 경우, 프로세스는 이전의 데시메이션 회차에서 생성된 이미지를 데시메이션하기 위해 720으로 되돌아간다. 데시메이션의 각각의 반복은 연속적으로 더 작은 해상도의 이미지의 새로운 사본을 생성한다(720). 예를 들어, 1920x1280의 해상도를 갖는 원본 이미지로부터 시작하여 데시메이션이 6회 수행되는 경우, 이미지들의 총수는 7개(원본 이미지를 포함함) - 1920x1280(원본), 960x640(제1 데시메이션된 이미지), 480x320(제2 데시메이션된 이미지), 240x160(제3 데시메이션된 이미지), 120x80(제4 데시메이션된 이미지), 60x40(제5 데시메이션된 이미지), 및 30x20(제6 데시메이션된 이미지) - 일 것이다.
일부 실시예에서, 데시메이션은 이미지를 데시메이션하는 임의의 공지된 방법에 의해 수행된다. 예를 들어, 일부 실시예는 하기의 기법들 중 하나 이상을 사용한다: (1) 픽셀들을 nxn 정사각형으로 그룹화하고 - 여기서 n은 데시메이션 인자(예컨대, 2)임 -, 이어서 정사각형 내의 픽셀들의 값을 평균하는 것, (2) 이동 평균 필터, (3) 가중된 이동 평균 필터, (4) 매 nxn 그룹에서 하나의 픽셀 값(예컨대, 중간 픽셀 값 또는 그룹 내의 특정의 위치에서의 픽셀 값)을 선택하는 것, (5) 최소 제곱 분석 기법을 사용하는 것, (6) 서브샘플링, 및 (7) 기타 데시메이션 방법.
프로세스(700)가 각각의 이미지(즉, 원본 루마 이미지 및 데시메이션으로부터 얻어지는 각각의 이미지)로부터 정확한 수의 데시메이션된 이미지가 생성된 것으로 판정하는 경우(730), 프로세스는 1-비트 비트맵을 발생한다. 이미지들로부터 비트맵 이미지가 발생되는데, 그 이유는 2개의 비트맵 사이의 오프셋을 찾아내는 것이 이미지들 자체 사이의 오프셋을 직접 찾아내는 것보다 덜 계산 집중적이기 때문이다. 비트맵을 발생하는 일부 실시예의 동작은 비교될 이미지들의 상이한 노출 레벨로부터 얻어지는 루마값의 차를 보상한다. 각각의 노출에서의 상이한 루마값에도 불구하고, 각각의 노출은 장면의 보다 밝은 부분을 장면의 보다 어두운 부분보다 더 밝게 보여줄 것이다. 보다 구체적으로는, 하나의 노출에서의 픽셀들의 보다 밝은(및 보다 어두운) 절반은 다른 노출에서의 픽셀들의 보다 밝은(및 보다 어두운) 절반과 형상 및 위치가 아주 비슷할 것이다. 각각의 이미지의 중간 루마값이 그 이미지에서의 픽셀들의 보다 밝은 절반을 그 이미지에서의 픽셀들의 보다 어두운 절반으로부터 분리하는 데 사용된다. 이미지의 중간 루마값이란 이미지에서의 절반의 픽셀들이 그보다 낮은 루마값(또는 그와 동일한 루마값)을 갖고 이미지에서의 절반의 픽셀들이 그보다 높은 루마값(또는 그와 동일한 루마값)을 갖게 되는 루마값을 말한다. 따라서, 그 이미지의 중간 루마값을 사용하여 각각의 이미지에 대해 수행되는 임계값 연산은, 상이한 노출 시간에 상관없이, 다른 이미지들에 의해 생성된 비트맵과 대략 동일한 비트맵을 발생할 것이다.
그에 따라, 루마 이미지로부터 비트맵을 발생할 준비를 하기 위해, 프로세스(700)는 각각의 이미지(원본 이미지 및 모든 데시메이션된 이미지를 포함함)에 대한 중간 루마값을 식별한다(740). 비트맵을 발생하기 위해 중간 루마값이 사용될 것이다. 앞서 언급한 바와 같이, 각각의 이미지에 대한 개개의 중간 루마값을 사용함으로써, 정렬 프로세스(700)는 상이한 노출에서의 상이한 범위의 루마값을 보상한다. 기술 분야의 당업자라면 일부 실시예가 비트맵을 발생하는 다른 방법들을 사용할 수 있다는 것을 잘 알 것이다. 예를 들어, 일부 실시예의 임계값은 중간 루마값으로부터 도출되지만(예컨대, 임계값은 중간 루마값을 2로 나눈 것임), 중간 루마값이 아니다. 어떤 다른 실시예의 임계값이 이미지의 어떤 다른 특성으로부터 결정된다(예컨대, 임계값이 루마들의 중간이라기보다는 루마 범위의 평균이다).
프로세스는 이어서 그 이미지의 중간 루마값을 임계값으로서 사용하여 임계값 연산을 수행함으로써 각각의 이미지의 1-비트 비트맵 버전을 발생한다(750). 루마 이미지에서의 픽셀에 대한 임계값 연산은 비트맵에서의 대응하는 픽셀을 발생한다. 임계값 연산은 이미지에서의 대응하는 픽셀이 임계 루마값보다 더 밝은 경우 비트맵에서의 백색 픽셀을 발생하고, 이미지에서의 대응하는 픽셀이 임계 루마값보다 더 어두운 경우 비트맵에서의 흑색 픽셀을 발생한다. 이 연산에서 사용되는 임계 루마값이 비트맵을 발생하는 데 사용되는 이미지의 중간 루마값이기 때문에, 비트맵에서의 픽셀들의 대략 절반이 흑색일 것이고, 픽셀들의 대략 절반이 백색일 것이다. 이어서, 프로세스(700)가 종료한다.
프로세스(700)가 이상에서 몇가지 특징을 포함하는 것으로 기술되었다. 기술 분야의 당업자라면 앞서 기술한 특징들 중 전부가 모든 실시예에서 발견되는 것은 아님을 잘 알 것이다. 또한, 프로세스(700)의 다양한 실시예는 앞서 기술된 특징들 중 하나 이상에 부가하여 또는 그 대신에 다른 특징들을 가진다. 기술 분야의 당업자라면 어떤 개개의 실시예가 동일한 동작에서 구현되기보다는 서로에 대한 대안으로서 구현되는 다수의 특징을 포함한다는 것을 잘 알 것이다. 예를 들어, 앞서 기술한 프로세스가 루마 이미지에 대해 행해진다. 그렇지만, 기술 분야의 당업자라면 일부 실시예가 루마 이미지 대신에 루미넌스 이미지(YCbCr 이미지의 루미넌스 성분)를 사용한다는 것을 잘 알 것이다. 또 다른 실시예는 어떤 경우에 루마 이미지를 사용하고, 다른 경우에 대안으로서 루미넌스 이미지를 사용한다. 앞서 기술한 프로세스는 루마 이미지로부터 개별 비트맵을 발생하지만, 일부 실시예에서, 비트맵은 대응하는 루마 이미지를 덮어쓰기한다. 일부 실시예에서, 데시메이션된 이미지가 비트맵 발생 프로세스 동안 덮여쓰기되거나 그 각자의 비트맵이 발생된 후에 메모리를 절감하기 위해 삭제된다.
앞서 기술한 프로세스(700)가 모든 데시메이션된 이미지가 생성된 후에 데시메이션된 이미지로부터 비트맵을 발생하지만, 기술 분야의 당업자라면 일부 실시예가 데시메이션된 이미지가 생성된 후에 그렇지만 모든 데시메이션된 이미지가 생성되기 전에 데시메이션된 이미지로부터 비트맵을 발생한다는 것을 잘 알 것이다. 앞서 기술한 실시예는 이미지들을 1/2로 데시메이션한다. 그렇지만, 기술 분야의 당업자라면 일부 실시예가 이미지들을 2배 이외로 데시메이션한다는 것을 잘 알 것이다. 앞서 기술한 프로세스에서, 각각의 데시메이션된 이미지는 그 다음으로 가장 높은 해상도의 데시메이션된 이미지로부터 발생된다. 그렇지만, 일부 실시예에서, 그 다음으로 가장 높은 해상도의 데시메이션된 이미지 이외의 이미지를 사용하여 데시메이션된 이미지가 발생된다(예컨대, 데시메이션된 이미지가 원본 루마 이미지로부터 또는 2 해상도 레벨 위의 데시메이션된 이미지로부터 생성될 수 있다). 앞서 기술한 프로세스에서, 비트맵에서의 흑색 픽셀은 루마 이미지에서의 중간보다 더 어두운 픽셀에 대응하고, 비트맵에서의 백색 픽셀은 루마 이미지에서의 중간보다 더 밝은 픽셀에 대응한다. 그렇지만, 기술 분야의 당업자라면 "흑색" 및 "백색"이 비트맵에서의 픽셀의 2가지 가능한 이진값을 표현하는 임의적인 컬러 선택이라는 것을 잘 알 것이다. 일부 실시예에서, 이미지에서의 보다 어두운 픽셀이 비트맵에서 이진값 "0"으로 표현될 것이고, 이미지에서의 보다 밝은 픽셀이 비트맵에서 이진값 "1"로 표현될 것이다. 다른 실시예에서, 이미지에서의 보다 어두운 픽셀이 비트맵에서 이진값 "1"으로 표현될 것이고, 이미지에서의 보다 밝은 픽셀이 비트맵에서 이진값 "0"로 표현될 것이다.
도 8은 정렬을 위해 탐색하는 데 사용될 수 있는 일부 실시예의 비트맵의 일례를 나타낸 것이다. 비트맵이 자동차의 이미지로부터 발생되었다. 도 8에서의 비트맵은 축척대로 그려져 있지 않다. 이 도면은 원본 이미지(800, 805), 비트맵(810A 내지 810C 및 815A 내지 815C), 및 타일링된 비트맵(820, 825)을 포함하고 있다. 원본 이미지(800)는 중간 기간 노출로 모바일 장치로부터 촬영된 이미지이다. 원본 이미지(805)는 동일한 모바일 장치로부터 보다 짧은 기간 노출로 촬영된 이미지이다. 비트맵(810A 내지 810C)은 원본 이미지(800)의 (다른 해상도를 갖는) 사본으로부터 발생된 비트맵이다. 비트맵(815A 내지 815C)은 원본 이미지(805)의 (다른 해상도를 갖는) 사본으로부터 발생된 비트맵이다. 타일링된 비트맵(820)은 개념적으로 타일들로 나누어져 있는 비트맵(810C)의 사본이다. 타일링된 비트맵(825)은 개념적으로 타일들로 나누어져 있는 비트맵(815C)의 사본이다.
동일한 해상도를 갖는 이 도면에서의 비트맵들이 원본 이미지(800, 805)의 오프셋을 탐색하기 위해 서로 비교될 수 있다. 이미지(800, 805)의 오프셋은, 이미지들 중 하나에 적용될 때, 그 이미지를 다른 이미지과 정렬시키는 벡터이다. 이 경우에, 이미지(800)에서의 자동차는 그의 이미지의 우측에 더 가까운 반면, 이미지(805)에서의 자동차는 그의 이미지의 좌측에 더 가깝다. 따라서, 이미지(805)에 그의 픽셀들을 올바른 양만큼 우측으로 이동시킨 오프셋을 적용하면 이미지(805)가 이미지(800)와 정렬될 것이다.
비트맵(810A, 815A)이 이미지(800, 805)와 동일한 양만큼 오프셋되어 있는데, 그 이유는 비트맵(810A, 815A)이 원본 이미지로부터 직접 발생되었기 때문이다. 비트맵(810A, 815A)의 오프셋을 찾아냄으로써 이미지(800, 805)의 오프셋을 찾아낼 수 있을 것이다. 그렇지만, 비트맵들을 정렬하는지를 알아보기 위해 단순히 모든 가능한 오프셋을 시험해봄으로써 비트맵(810A, 815C)의 오프셋을 찾아내는 것은 2개의 고해상도 비트맵을 정렬하기 위해 검사될 많은 수의 가능한 오프셋으로 인해 계산 비용이 많이 들 것이다. 따라서, 일부 실시예의 프로세스는 고해상도 비트맵에 대한 모든 가능한 오프셋 벡터를 시험해보는 것보다는 연속적인 근사화의 계층적 프로세스를 통해 올바른 정렬을 탐색한다.
비트맵(810C, 815C)의 해상도가 저하되는 것으로 인해, 비트맵(810C, 815C)을 정렬할 때 검사할 가능한 오프셋이 더 적게 된다. 그렇지만, 검사할 가능한 오프셋의 수가 더 적은 것은 또한 그 해상도에서 찾아내는 오프셋의 정확도가 더 낮다는 것을 의미한다. 구체적으로는, 비트맵(810C)과 비트맵(815C) 사이의 1개의 픽셀의 오프셋은 원본 이미지(800)와 원본 이미지(805) 사이의 몇개의 픽셀(예컨대, 64 픽셀)의 오프셋을 나타내며, 따라서 비트맵들(810C, 815C)을 정렬하는 오프셋은 비트맵들(810A, 815A)을 정렬하는 오프셋을 정밀하게 지정하지 않을 것이다. 그렇지만, 비트맵들(810C, 815C)을 정렬하는 오프셋이 비트맵들(810A, 815A)을 정렬하는 오프셋의 제1 근사치로서 사용될 수 있다. 비트맵들(810C, 815C)을 정렬하는 오프셋은 더 높은 해상도의 비트맵의 오프셋을 찾아내는 계층적 프로세스에서의 시작점이다.
연속적으로 더 큰 비트맵들의 세트는 오프셋에 대한 값이 각각의 연속적으로 더 높은 해상도의 비트맵을 사용하여 미세 조정될 수 있게 해준다. 도 8에서, 주어진 비트맵 열에서 각각의 연속된 비트맵은 열에서의 이전 비트맵을 발생하는 데 사용된 이미지의 1/2 해상도인 이미지로부터 발생된 비트맵을 개념적으로 나타내며, 따라서 각각의 비트맵의 오프셋은 그 다음으로 가장 높은 해상도의 오프셋의 1/2이다. 예를 들어, 비트맵(810A)은 해상도 1920x1280을 갖는 원본 이미지(800)(원본)로부터 발생되었고, 비트맵(810B)은 해상도 960x640을 갖는 원본 이미지(800)의 데시메이션된 사본(도시 생략)(제1 데시메이션된 이미지)으로부터 발생되었다. 비트맵(810B)과 비트맵(815B) 사이의 10 픽셀 우측의 오프셋은 비트맵(810A)과 비트맵(815A) 사이의 20 픽셀(플러스 또는 마이너스 1 픽셀) 우측의 오프셋을 나타낸다. 더 높은 해상도의 비트맵(810A, 815A)에 대한 오프셋이 구해질 때, 탐색을 위한 시작점은 20 픽셀 우측일 것이다. 도 9 내지 도 11과 관련하여 이하에서 더 기술되는 바와 같이, 정렬 프로세스는 이어서 19 픽셀, 20 픽셀 및 21 픽셀 우측에서 실제 오프셋을 탐색하기 위해 시작점으로부터 1 픽셀 내의 가능한 오프셋들을 평가할 것이다.
도 8에서, 비트맵(810B)과 비트맵(810C) 사이의 생략 부호는 각각이 (각각의 차원에서) 이전의 데시메이션된 이미지의 해상도의 1/2인 데시메이션된 이미지로부터 발생되는 연속적으로 더 작은 해상도의 비트맵을 생략한 것이다. 도 7과 관련하여 기술되는 바와 같이, 어떤 특정의 수의 해상도 레벨(예컨대, 6 레벨)에 대해 비트맵의 데시메이션 및 발생이 계속된다. 도 8에서, 비트맵(810A 내지 810C 및 815A 내지 815C) 및 원본 이미지(800, 805)는 축척대로 그려져 있지 않다.
앞서 기술한 실시예는 발생되는 비트맵과 동일한 해상도를 갖는 데시메이션된 이미지로부터 각각의 비트맵을 발생한다. 다른 대안으로서, 일부 실시예에서, 데시메이션된 이미지 대신에 보다 높은 해상도의 비트맵으로부터 보다 낮은 해상도의 비트맵이 발생될 수 있다. 일부 실시예에서, 보다 높은 해상도의 비트맵으로부터 비트맵을 발생하는 것은 데시메이션된 이미지로부터 비트맵을 발생하는 것보다 더 빠르다. 그렇지만, 데시메이션된 이미지 대신에 보다 높은 해상도의 비트맵으로부터 비트맵을 발생하는 것은 비트맵에 아티팩트를 발생하는 경향이 있고, 이는 오프셋 벡터에 대한 탐색의 효율 및/또는 정확도를 감소시킬 수 있다. 따라서, 이 기법이 모든 실시예에서 사용되는 것은 아니다.
일부 실시예는 하나의 비트맵 또는 양쪽 비트맵을 타일들로 나누고 타일들의 일부 또는 전부에서의 픽셀들을 다른 비트맵에서의 대응하는 픽셀들과 비교하여 각각의 이미지의 특징들을 정렬시키는 오프셋 벡터를 찾아냄으로써 비트맵들을 정렬한다. 이하의 간단한 설명은 각각의 해상도에서 하나의 비트맵을 타일링하는 실시예에 대한 것이다.
일부 실시예의 프로세스는 2개의 비트맵 이미지를 다수의 테스트 오프셋 벡터를 사용하여 여러번 비교한다. 이 비교는 한 비트맵("타일링된 비트맵")에서의 픽셀들을 제2 비트맵("대상 비트맵")에서의 대응하는 픽셀과 체계적으로 비교한다. 프로세스는 타일링된 비트맵에서의 픽셀들을 오프셋 벡터만큼 오프셋되어 있는 대상 비트맵에서의 픽셀들과 비교한다. 각각의 테스트 오프셋 벡터에 대해, 일부 실시예의 프로세스는 서로 다른 대응하는 픽셀들의 수를 카운트한다. 테스트 오프셋 벡터가 2개의 이미지 사이의 실제 오프셋에 가까울수록, 타일링된 비트맵과 (천이된) 대상 비트맵 간에 상이한 2개의 비트맵에서의 픽셀의 수가 더 적다.
데시메이션된 이미지로부터 발생된 어떤 비트맵은 거의 모두가 흑색이거나 거의 모두가 백색인 타일들을 포함하고 있다. 모두가 흑색이거나, 거의 모두가 흑색이거나, 모두가 백색이거나, 거의 모두가 백색인 타일들을 비교로부터 생략하는 것은, 일부 실시예에서, 식별된 오프셋 벡터를 변경하는 일 없이 비교를 가속화시킨다. 따라서, 일부 실시예는 흑색, 거의 모두가 흑색, 백색, 및 거의 모두가 백색인 타일들을 비교로부터 배제한다.
그에 따라, 타일링된 비트맵(820, 825) 등의 일부 실시예의 비트맵은 오프셋 벡터를 찾아내기 위한 프로세스(도 9 및 도 10과 관련하여 이하에서 기술함)의 일부로서 개념적으로 타일들로 나누어진다. 각각의 타일은 다수의 픽셀을 포함하고 있다. 2개의 비트맵의 오프셋 벡터를 찾아내는 일부 실시예의 프로세스에서, 모두가 흑색이거나 거의 모두가 흑색[예컨대, 타일링된 비트맵(820)에서의 앞바퀴의 상반부]인 타일들이 어떤 임계값 수 미만이 백색인 타일과 함께 무시되고, 모두가 백색[예컨대, 타일링된 비트맵(820)의 좌측 및 상부 에지 타일]이거나 거의 모두가 백색[예컨대, 타일링된 비트맵(820)의 앞 유리창]인 타일들이 어떤 임계값 수 미만이 흑색인 타일과 함께 무시된다. 즉, 그 타일들 내의 픽셀들이 2개의 비트맵을 정렬시키는 오프셋 벡터를 탐색하는 동안 행해지는 그 2개의 비트맵의 비교에 포함되지 않는다.
C. 이미지들의 계층적 정렬
다수의 해상도로 비트맵들이 생성되면, 일부 실시예는 이미지들을 정렬하는 오프셋 벡터를 찾아내기 위해 비트맵들을 사용한다. 도 9 및 도 10은 2개의 이미지를 정렬하는 오프셋 벡터를 찾아내는 일부 실시예의 프로세스(900) 및 프로세스(1000)를 나타낸 것이다. 명확함을 위해, 프로세스(900)의 설명은 2개의 이미지를 서로 정렬하는 것을 기술하고 있다. 그렇지만, 일부 실시예에서, 프로세스(900)는 상이한 노출의 3개의 원본 이미지에 대한 3개의 비트맵 세트를 수신하고 3개의 이미지를 정렬한다. 3개의 이미지를 정렬할 시에, 프로세스(900)는 먼저 2개의 이미지를 정렬하고 이어서 제3 이미지를 다른 2개의 이미지들 중 하나와 정렬한다. 프로세스(900)는 저해상도 비트맵을 사용하여 오프셋에 대한 총 근사치(gross approximation)를 찾아냄으로써 2개의 이미지 사이의 오프셋을 찾아내고 이어서 연속적으로 더 큰 해상도의 비트맵을 사용하여 실제 오프셋 벡터에 연속적으로 더 가까운 근사치를 찾아냄으로써 실제 오프셋 값에 다가가는 계층적 프로세스이다. 프로세스는 각각의 해상도에서 9개의 후보 오프셋 벡터를 테스트하여 어느 오프셋 벡터가 그 해상도에서 비트맵들을 가장 가깝게 정렬시키는지를 찾아낸다.
도 9 및 도 10은 도 11을 참조하여 기술될 것이다. 도 11은, 일부 실시예에서, 2개의 이미지를 정렬하는 오프셋 벡터를 찾아내는 것의 일례를 나타낸 것이다. 이 도면은 2개의 이미지 사이의 오프셋 벡터가 프로세스(900)에 의해 어떻게 발견되는지를 한번에 한 계층 레벨씩 보여주고 있다. 이 도면은 행/스테이지(1110 내지 1140) 및 열(1165 내지 1180)을 포함하고 있다. 각각의 스테이지(1110 내지 1140)는 2개의 이미지 사이의 오프셋 벡터를 식별할 시의 계층 레벨을 개념적으로 나타내고 있다. 각각의 열(1165 내지 1180)은 각각의 스테이지의 중요한 특징을 나타내고 있다. 스테이지(1110 내지 1140) 각각은 데시메이션된 해상도[열(1165)], 시작 오프셋 벡터[열(1170)], 오프셋 벡터에 대한 식별된 부가[열(1175)], 및 새로운 오프셋 벡터[열(1180)]를 포함하고 있다.
열(1165)의 데시메이션된 해상도 값은 각각의 스테이지에서 비교될 비트맵들의 해상도를 식별해준다. 이것은 프로세스(900)에서의 해상도의 선택(920, 970)을 개념적으로 나타내고 있다. 열(1170)의 시작 오프셋 벡터는 그 주위의 후보 벡터들이 테스트될 원점으로서 역할하는 오프셋 벡터를 나타낸다. 열(1175)의 각각의 행은 9개의 후보 벡터를 포함하고 있다. 열(1175)의 다양한 스테이지에서의 화살표(및 원)은 프로세스(1000)에 의해 선택된 후보 벡터를 그 해상도에서의 비트맵들의 최상의 정렬을 생성하는 후보 오프셋 벡터로서 개념적으로 나타내고 있다. 열(1180)의 새로운 오프셋 벡터는 동일한 스테이지에서 열(1175)에서 식별된 벡터와 시작 오프셋 벡터의 벡터 합을 나타낸다. 최종 스테이지(1140)에서 열(1180)에서의 오프셋 벡터는 2개의 원본 전체 해상도 이미지의 오프셋을 나타낸다.
일부 실시예에서, 프로세스(900)는 도 7의 프로세스(700) 등의 프로세스에 의해 생성된 비트맵을 사용한다. 프로세스(900)는 2개의 비트맵 세트를 수신하는 것(910)으로 시작한다. 각각의 비트맵 세트는 모바일 장치로부터의 원본 이미지로부터 발생되었다. 수신된 비트맵 세트는 각각이 그 다음으로 더 높은 해상도의 1/2인 일정 범위의 해상도를 포함하고 있다. 프로세스(900)는 최저 해상도의 비트맵을 처리해야 하는(예컨대, 비트맵들을 정렬하는 오프셋 벡터를 찾아야 하는) 현재 비트맵 쌍으로서 선택한다(920). 도 11의 일례에서, 스테이지(1110)는 최하위 계층 레벨을 나타낸다. 스테이지(1110)에서의 비트맵의 해상도는, 열(1165)에 나타낸 바와 같이, 30x20이다.
타일링된 비트맵(820, 825)과 관련하여 앞서 기술한 바와 같이, 비트맵은 개념적으로 타일들로 나누어질 수 있다. 프로세스(900)는 각각의 세트 내의 현재 비트맵을 타일들로 나눈다(930). 일부 실시예는 (공통의 해상도를 갖는) 각각의 비트맵 쌍 내의 하나의 비트맵만을 타일들로 나눈다. 각각의 타일은 특정의 픽셀 세트를 포함한다. 이와 관련하여, 픽셀이 타일에 의해 식별되는 일정 범위의 장소 내에 있을 때 그 타일은 픽셀을 포함하는 것으로 간주된다. 예를 들어, 비트맵의 좌측 하부 픽셀을 좌표 (0, 0)로서 사용하면, 특정의 타일은 x-좌표가 10 픽셀과 19 픽셀 사이에 있고 y-좌표가 20 픽셀과 29 픽셀 사이에 있는 모든 타일을 포함할 수 있을 것이다. 좌표 (13, 25)를 갖는 픽셀은 그 타일 내의 픽셀일 것이고, 좌표 (22, 25)를 갖는 픽셀은 다른 타일 내의 픽셀일 것이다. 기술 분야의 당업자라면 타일들이 다른 실시예에서 상이한 크기일 수 있고 심지어 동일한 실시예에서 상이한 크기일 수 있다는 것을 잘 알 것이다. 예를 들어, 상이한 해상도로 되어 있는 타일들이 상이한 크기일 수 있다. 일부 실시예의 타일들은 비트맵의 해상도에 대해 상이한 크기이다.
어떤 타일들은 상당한 수의 흑색 픽셀 및 백색 픽셀 둘 다를 포함하고 있다. 다른 타일들은 모두가(또는 거의 모두가) 흑색인 픽셀 또는 모두가(또는 거의 모두가) 백색인 픽셀을 포함하고 있다. 2개의 타일을 정렬하는 오프셋 벡터를 찾아내는 나중의 비교를 가속화시키기 위해, 일부 실시예의 프로세스는 대체로 한가지 컬러의 픽셀(흑색 또는 백색)을 포함하는 모든 타일을 배제한다(940). 즉, 후보 오프셋 벡터가 2개의 비트맵을 얼마나 잘 정렬하는지를 알아내기 위해 나중에 비교를 수행할 때, 프로세스(900)는 배제된 타일들로부터의 픽셀을 그 비교에 포함시키지 않을 것이다. 일부 실시예에서, 타일들이 임계값 수 미만의 소수 컬러(minority color)을 가지는 경우 타일들이 배제된다. 일부 실시예에서, 임계값 수는 타일 내의 픽셀의 총수의 5%이다. 다른 실시예에서, 소수 컬러의 임계값 수는 타일 내의 픽셀의 어떤 다른 퍼센트이다. 일부 실시예에서, 비트맵 쌍 중 단지 하나의 비트맵만이 배제되는 타일을 가진다. 다른 실시예에서, 타일이 양쪽 비트맵으로부터 배제된다.
프로세스(900)는 현재 해상도의 2개의 비트맵을 정렬하는 오프셋 벡터를 식별한다(950). 오프셋 벡터를 찾아내는 동작(950)은 도 10의 프로세스(1000)로서 더 기술되어 있다. 도 11은 열(1175)에서의 동작(950)을 개념적으로 나타낸 것이다. 예를 들어, 스테이지(1110)의 열(1175)에 나타낸 바와 같이, 동작(950)은 이 해상도(30x20)에서 비트맵들 간의 가장 가까운 정렬을 제공하는 오프셋 벡터를 찾아내기 위해 원점으로부터 1 픽셀 내의 모든 벡터를 평가한다. 스테이지(1110)에서 열(1175)에 있는 화살표는 가장 가까운 정렬이 오프셋 (1, 1)에 의해 발생된다는 것을 나타낸다. 최저 해상도 스테이지(1110)에서, 동작(950)은 (각각의 차원에서) 원본 이미지의 해상도의 1/64인 비트맵들을 정렬한다. 식별된 오프셋 벡터의 값들은 각각의 스테이지에서 2배로 되고, 따라서 한 스테이지에서의 후보 오프셋 벡터의 기여도가 모든 차후의 스테이지에서 2배로 된다. 예를 들어, 스테이지(1110)의 열(1180)에서의 선택된 후보 오프셋 벡터는 (1, 1)이다. 이 벡터는 각각의 차후의 스테이지에서(6번) 2배로 되어, 최종 오프셋 벡터 (64, 64)에 대한 그의 총 기여도를 이룬다. 이와 유사하게, 스테이지(1120)에서의 선택된 후보 오프셋 벡터 (-1, -1)는 4번 2배로 되어, (-16, -16)의 벡터인 최종 오프셋 벡터에 대한 그의 총 기여도를 이룬다.
사실상, 전체 해상도(1920x1280) 이미지들 사이의 실제 오프셋 벡터와 관련하여, 스테이지(1110)에서, 동작(950)은 2개의 전체 해상도 이미지 사이의 오프셋이 (64, 64)(즉, 식별된 오프셋 벡터의 64배)라는 것을 알아낸다. 오프셋 (64, 64)은 개략적인 결정이고, 이는 나중의 스테이지들에서 미세 조정될 것이다. 예를 들어, 동작(950)은 스테이지(1115)에서 오프셋 벡터를 각각의 방향(수직 및 수평)에서 0 또는 ±32만큼 변경할 수 있고; 스테이지(1120)에서 오프셋 벡터를 각각의 방향에서 0 또는 ±16만큼 변경할 수 있으며; 오프셋 벡터를 각각의 방향에서 0 또는 ±1만큼 변경할 수 있는 스테이지(1140)가 될 때까지 이하 마찬가지이다. 그에 따라, 도 11에 도시된 특정의 오프셋 벡터보다는 나중의 스테이지에서 전범위의 가능한 오프셋들을 가정할 때, 최저 해상도에서 (1, 1)의 오프셋이 주어지면, 나중의 스테이지들에서, 동작(950)은 수평 방향에서 1 픽셀과 127 픽셀 사이에 있고 수직 방향에서 1 픽셀과 127 픽셀 사이에 있는 이미지들에 대한 최종 오프셋을 찾을 수 있을 것이다. 이와 유사하게, 스테이지(1115)에서, 동작(950)은 (각각의 차원에서) 실제 이미지의 해상도의 1/32인 비트맵들을 정렬한다. 전체 해상도(1920x1280) 이미지들 사이의 실제 오프셋 벡터와 관련하여, 스테이지(1115)에서, 동작(950)은 2개의 전체 해상도 이미지 사이의 오프셋이 (96, 64)(즉, 식별된 오프셋 벡터의 32배)라는 것을 알아낸다. 오프셋 (96, 64)은 여전히 개략적인 결정이고, 이는 나중의 스테이지들(1120 내지 1140)에서 미세 조정될 것이다. 나중의 스테이지들은 최대 31 픽셀만큼 위로 또는 아래로 벡터의 값을 조정할 수 있다. 도 11에 도시된 특정의 오프셋 벡터보다는 나중의 스테이지에서 전범위의 가능한 오프셋들을 가정할 때, 이 해상도(60x40)에서 오프셋이 (3, 2)이면, 프로세스(900)는 나중의 스테이지들에서 수평 방향에서 33 픽셀과 95 픽셀 사이에 있고 수직 방향에서 65 픽셀과 127 픽셀 사이에 있는 이미지들에 대한 최종 오프셋을 찾을 수 있을 것이다.
주어진 해상도에서 오프셋 벡터가 발견되면, 프로세스(900)는 정렬되어야 하는 비트맵들이 더 있는지를 판정한다(960). 프로세스가 평가되어야 하는 비트맵이 더 있는 것으로 판정하는 경우(960), 프로세스는 그 다음으로 가장 낮은 해상도의 비트맵을 현재 비트맵으로서 선택한다(970). 예를 들어, 도 11에서, 스테이지(1110) 후에, 동작(970)은 그 다음으로 가장 낮은 해상도의 비트맵(60x40)을 선택한다. 프로세스는 이어서 새로운 해상도를 갖는 비트맵에 대한 후보 오프셋 벡터를 평가하기 위한 시작점으로서 사용하기 위해 동작(950)에서 식별된 오프셋 벡터를 2배로 한다(980). 예를 들어, 도 11에서, 스테이지(1110)의 열(1180)에서의 오프셋 벡터 (1, 1)가 (1, 1)로부터 스테이지(1115)의 열(1170)에서의 (2, 2)로 2배로 된다. 각각의 스테이지에서, 스테이지의 해상도가 이전 스테이지의 해상도의 2배라는 사실을 고려하기 위해 시작 오프셋 벡터가 이전 스테이지로부터의 새로운 오프셋 벡터의 2배이다. 사실상, 비트맵의 모든 좌표가 한 해상도로부터 그 다음 해상도로 2배로 되고, 새로운 시작 오프셋 벡터가 그에 따라 2배로 된다.
프로세스가 평가되어야 하는 비트맵이 더 이상 없는 것으로 판정하는 경우(960)(즉, 가장 최근에 비교된 비트맵이 전체 해상도 비트맵일 때), 프로세스(900)는 2개의 원본 이미지를 정렬하게 될 오프셋 벡터를 찾아내었다. 예를 들어, 도 11에서, 스테이지(1140) 후에, 평가할 비트맵이 더 이상 없다. 그에 따라, 스테이지(1140)의 열(1180)에서의 오프셋 벡터[구체적으로는, (87, 48)]가 2개의 이미지를 정렬하는 오프셋 벡터이다. 이미지들이 성공적으로 정렬된 경우, 프로세스(900)가 이어서 종료된다.
앞서 언급한 바와 같이, 주어진 해상도에서 특정의 비트맵 쌍을 정렬하는 동작(950)이 도 10에 더 상세히 나타내어져 있다. 도 10은 2개의 비트맵을 정렬하는 오프셋 벡터를 찾아내는 프로세스(1000)를 나타낸 것이다. 프로세스(1000)는 다양한 후보 오프셋 벡터(및, 있는 경우, 시작 오프셋 벡터)만큼 천이되어 있는 2개의 비트맵의 픽셀들을 비교하고, 어느 후보 오프셋 벡터가 가장 가까운 정렬을 생성하는지를 찾아낸다. 프로세스(1000)는 일부 실시예의 프로세스(900)의 일부이다.
프로세스(1000)는 후보 오프셋 벡터를 선택한다(1010). 후보 오프셋 벡터는 일련의 가능한 오프셋 벡터들 중에서 선택된 벡터이다. 가능한 오프셋 벡터는 원점으로부터 0 또는 플러스 또는 마이너스 1 픽셀만큼 수직으로 그리고 0 또는 플러스 또는 마이너스 1 픽셀만큼 수평으로 오프셋된 모든 벡터이다. 후보 오프셋 벡터는 (-1, -1), (-1, 0), (-1, 1), (0, -1), (0, 0), (0, 1), (1, -1), (1, 0), 및 (1, 1)이다. 후보 오프셋 벡터는 도 11의 열(1175)에 예시되어 있다.
프로세스는 결합된 벡터를 발생하기 위해 후보 오프셋 벡터를 시작 오프셋 벡터에 부가한다(1020). 시작 오프셋 벡터는 이전 해상도의 비트맵들(있는 경우)을 정렬하는 것으로 프로세스(1000)에서 찾아낸 오프셋 벡터이다. 도 11에서, 스테이지(1110)에서, 최저 해상도 비트맵들이 정렬된다. 이전 해상도가 없으며, 따라서 시작 오프셋 벡터는 (0, 0)이다. 영이 아닌 시작 오프셋 벡터를 갖는 제1 스테이지[즉, 스테이지(1115)]에서, 프로세스(1000)는 시작 오프셋 벡터 (2, 2)로부터 1 픽셀 내의 모든 가능한 오프셋 벡터를 평가한다. 즉, 스테이지(1115)에서, 프로세스(1000)는 벡터들 (1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), 및 (3, 3)을 테스트한다.
앞서 언급한 바와 같이, 열(1175)에서의 화살표[및 스테이지(1130)에서의 원]는, 도 11에 도시된 일례에서 2개의 비트맵을 비교할 때, 어느 후보 오프셋 벡터가 최소 수의 차이를 생성하는지를 개념적으로 식별해준다. 스테이지(1115)에서 열(1175)에서의 화살표는 후보 오프셋 벡터 (1, 0)가 시작 오프셋 벡터 (2, 2)에 부가될 때 가장 가까운 정렬이 발생된다는 것을 나타낸다. 후보 오프셋 벡터 (1, 0)가 시작 오프셋 벡터 (2, 2)에 부가될 때, 스테이지(1115)에서 열(1180)에 나타낸 바와 같이, 결과는 오프셋 벡터 (3, 2)이다.
프로세스는 이어서 결합된 벡터를 테스트 오프셋 벡터로 사용하여 2개의 비트맵을 비교한다(1030). 이 비교는 타일링된 비트맵 내의 모든 비배제된 타일에서의 각각의 픽셀을 대상 비트맵 내의 대응하는 픽셀과 체계적으로 비교한다. 대상 비트맵 내의 대응하는 픽셀은 대상 비트맵에서의 좌표가 타일링된 비트맵 내의 픽셀의 좌표로부터 테스트 오프셋 벡터만큼 오프셋되어 있는 픽셀이다. 예를 들어, 테스트 오프셋 벡터가 (25, 30)인 경우, 타일링된 비트맵의 좌표 (x, y)에 있는 픽셀은 대상 비트맵의 좌표 (x+25, y+30)에 있는 픽셀과 비교될 것이다. 일부 실시예에서, 2개의 1-비트 값(예컨대, 2개의 비트맵에서의 픽셀의 값)이 서로 다른지를 알아내기 위해 이들을 비교하는 데 XOR 연산이 사용된다. 비교되는 픽셀들이 상이한 경우(즉, 한 픽셀은 흑색이고 다른 픽셀은 백색임), XOR 연산은 1의 출력을 생성하고, 픽셀들이 동일한 경우(즉, 양 픽셀이 흑색이거나 양 픽셀이 백색임), XOR 연산은 0의 출력을 생성한다. 각각의 테스트 오프셋 벡터에 대해, 일부 실시예의 프로세스(1000)는 서로 다른 대응하는 픽셀들의 수를 카운트한다. 테스트 오프셋 벡터가 2개의 비트맵 사이의 실제 오프셋에 가까울수록, 타일링된 비트맵과 (천이된) 대상 비트맵 간에 상이한 2개의 비트맵에서의 픽셀의 수가 더 적다.
한 비트맵과 (천이된) 다른 비트맵 간에 몇개의 픽셀이 상이한지를 카운트함으로써 비트맵들을 비교할 시에, 일부 실시예의 프로세스(1000)는 배제된 타일 내의 픽셀들을 비교에 포함시키지 않는다. 흑색 픽셀 및 백색 픽셀 둘 다가 상당히 존재하는(예컨대, 일부 실시예에서, 5% 초과) 타일에 있는 픽셀들만이 비교에 포함된다. 비트맵들 중 단지 하나로부터의 타일들을 배제하는 일부 실시예에서, 타일링된 비트맵으로부터의 비배제된 타일들은 어느 픽셀이 비교될 것인지를 지정한다. 예를 들어, 테스트 오프셋 벡터가 (25, 30)인 경우, 타일링된 비트맵의 좌표 (x, y)에 있는 픽셀은 보통 대상 비트맵의 좌표 (x+25, y+30)에 있는 픽셀과 비교될 것이다. 그렇지만, 좌표 (x, y)가 타일링된 비트맵의 배제된 타일 내에 있는 경우, 그 좌표에 있는 타일링된 비트맵의 픽셀은 대상 비트맵의 어떤 픽셀과도 비교되지 않을 것이다. 환언하면, 좌표 (x, y)가 타일링된 비트맵의 배제된 타일 내에 있을 때, 일부 실시예의 프로세스는 단순히 타일링된 비트맵의 (x, y)에 있는 픽셀과 대상 비트맵의 (x+25, y+30)에 있는 픽셀 또는 대상 비트맵의 임의의 다른 픽셀과의 비교를 실행하지 않을 것이다.
일부 실시예에서, 거의 모두가 흑색이거나 거의 모두가 백색인 타일드을 배제하는 이유는 그 타일들이 결과에 그다지 영향을 미치지 않기 때문이다. 예를 들어, 모두가 백색인 타일이 모두가 백색인 영역에 있는 경우, 어떤 작은 오프셋도 그 타일 내의 백색 픽셀을 다른 비트맵의 대응하는 영역에 있는 모두가 백색인 다른 픽셀 세트와 정렬할 것이다. 각각의 후보 벡터가 그 백색 타일을 모두가 백색인 다른 픽셀 세트와 비교시키는 경우, 백색 타일 내의 픽셀과 대상 비트맵 내의 대응하는 픽셀과의 비교는 오프셋 벡터를 다른 후보 벡터와 구별하는 데 사용될 수 있는 어떤 데이터도 제공하지 않을 것이다.
프로세스는 주어진 테스트 오프셋 벡터를 사용하여 한 비트맵과 다른 비트맵 간에 상이한 것으로 밝혀진 픽셀의 수에 의해 결정되는 값을 저장한다(1040). 일부 실시예에서, 이 값은 단지 상이한 픽셀의 수에 불과하다. 다른 실시예에서, 이 값은 상이한 픽셀의 실제 수가 아니라 상이한 픽셀의 수로부터 도출된 것이다.
프로세스는 이어서 평가되어야 하는 후보 벡터가 더 있는지를 판정한다(1050). 평가되어야 하는 후보 벡터가 더 있는 경우, 프로세스는 1010으로 되돌아가서 새로운 후보 벡터를 선택한다. 모든 후보 벡터가 평가된 경우, 프로세스는 각각에 대한 저장된 값들에 기초하여 비트맵들의 최상의 정렬을 제공하는 후보 벡터를 식별한다(1060). 예를 들어, 일부 실시예에서, 타일링된 비트맵과 천이된 대상 비트맵 간에 최소 수의 차이가 얻어지는 후보 벡터가 최상의 정렬을 제공하는 후보 벡터로서 식별된다. 새로운 오프셋 벡터를 제공하기 위해 최상의 후보 벡터가 시작 오프셋 벡터에 부가된다(1070). 프로세스(1000)는 이어서 종료되고, 프로세스(900)가 960에서 재개된다.
그 다음으로 가장 높은 해상도의 비트맵 쌍은 더 미세한 스케일에서 현재 해상도와 동일한 이미지를 나타낸다. 더 미세한 스케일로 인해, 새로운 오프셋 벡터는 그 다음으로 가장 높은 해상도의 비트맵 쌍의 정확한 오프셋을 식별하지 않는다. 그렇지만, 한 해상도에서 비트맵들을 최상으로 정렬하는 새로운 오프셋 벡터를 찾아내는 것은 그 다음으로 가장 높은 해상도에서 비트맵들의 최상의 정렬을 아마도 제공할 수 있는 오프셋 벡터들의 범위를 좁힌다. 각각의 레벨에서 해상도를 2배로 하는 실시예에서, 주어진 해상도에서의 정렬의 정밀도는 그 다음으로 가장 높은 해상도에서의 정렬의 정밀도의 1/2에 불과하다. 프로세스(1000)에 의해 식별된 새로운 오프셋 벡터는 현재 해상도에서 1 픽셀 미만까지 정확하다. 그에 따라, 새로운 오프셋 벡터가 그 다음 해상도로 위로 스케일링될 때[예컨대, 동작(980)에서], 정렬의 값의 불확실성도 역시 증대된다. 즉, 그 다음 해상도가 현재 해상도보다 2배 높은 경우, 시작 오프셋 벡터는 그 해상도에서의 실제 오프셋으로부터 (각각의 방향에서) 2 픽셀 미만 내에 있을 것이다. 시작 오프셋 벡터로부터 2 픽셀 미만 떨어져 있는 모든 오프셋 벡터의 세트는 9개의 벡터를 포함하고 있다. 구체적으로는, 9개의 벡터는 시작 오프셋 벡터와 9개의 후보 오프셋 벡터의 벡터 합이다.
각각의 해상도에 대한 시작 오프셋 벡터는 그 다음으로 가장 낮은 해상도에서 2개의 비트맵을 정렬하는 새로운 오프셋 벡터로부터 도출된다. 최저 해상도 비트맵에 대해서는 그 다음으로 가장 낮은 해상도가 없다. 그에 따라, 프로세스(1000)는 최저 해상도 비트맵을 정렬할 때 시작 오프셋 벡터를 갖지 않는다. 최저 해상도 비트맵에 대해, 가능한 오프셋의 범위는 좁혀지지 않았고, 따라서 최저 해상도에서 비트맵들을 정렬하는 오프셋 벡터는 탐색의 시작점으로부터 1 픽셀보다 많이 떨어져 있을 수 있다. 그에 따라, 일부 실시예에서, 프로세스(1000)가 최저 해상도 비트맵들에 대해서는 더 높은 해상도의 비트맵들에 대해서보다 더 큰 범위의 후보 오프셋 벡터를 평가한다.
각각의 스테이지에서 어느 후보 벡터가 선택되는지에 따라, 6 데시메이션 레벨을 갖는 실시예에서, 프로세스(900)의 계층적 탐색에 의해 발견되는 오프셋 벡터의 가능한 값은 수평으로 -127부터 127까지이고 수직으로 -127부터 127까지이다. 각각의 연속적인 스테이지는 가능한 오프셋 벡터의 범위를 대략 1/2로 좁힌다. 각각의 레벨에서 선택된 후보 오프셋 벡터가 1의 값을 가지는 경우, 오프셋의 수평 성분에 대한 127의 값에 도달할 것이다. 이러한 경우에, 최저 해상도 레벨은 총계에 64 픽셀을 기여하고, 그 다음으로 가장 낮은 해상도 레벨은 총계에 32 픽셀을 기여하며, 최고 해상도 레벨이 총계에 1 픽셀을 기여할 때까지 이하 마찬가지이다.
이상의 설명이 각각의 해상도에서 9개의 후보 벡터를 포함하고 있지만, 기술 분야의 당업자라면 다른 실시예가 다른 수의 후보 벡터를 사용한다는 것을 잘 알 것이다. 일부 실시예는 2배 이외로 데시메이션한다. 이러한 실시예에서, 보다 낮은 해상도로부터 보다 높은 해상도로 갈 때 해상도의 더 큰 증가를 보상하기 위해 후보 벡터의 수가 증가한다. 예를 들어, 일부 실시예에서, 이미지가 각각의 방향에서 4배 데시메이션된다. 일부 이러한 실시예에서, 시작 오프셋 벡터가 (한 해상도로부터 그 다음 해상도로) 4배 스케일링되고, 후보 벡터는 시작 오프셋 벡터로부터 3 픽셀 이내에 있는 모든 벡터를 포함한다. 어떤 이러한 실시예는 49개의 후보 벡터를 사용한다.
이상의 설명이 모든 해상도 레벨에서 백색이 우세한 타일들 및 흑색이 우세한 타일들을 배제하는 것을 포함하고 있지만, 어떤 실시예는 더 높은 해상도 레벨에서만 타일들을 배제한다. 낮은 해상도에서는, 이미지 내의 픽셀의 수가 보다 적으며, 따라서 타일들을 제거하는 것이 탐색의 결과에 영향을 줄 가능성이 더 많다. 그에 부가하여, 저해상도 비트맵들을 정렬하는 오프셋 벡터의 탐색은 타일들을 배제하지 않더라도 적당히 빠르다. 저해상도에서 타일들을 배제할 때 오류의 위험이 증가되고 오프셋 벡터의 탐색 속도의 이점이 감소되는 것으로 인해, 일부 실시예는 특정의 해상도 레벨을 넘는 비트맵에 대해서만 타일들을 배제한다. 예를 들어, 일부 실시예는 5개 데시메이션 레벨을 갖는 이미지로부터 발생된 비트맵에 대해서만 타일들을 배제한다. 이와 유사하게, 일부 실시예는 4, 3, 2, 1, 또는 0개 데시메이션 레벨(들)을 갖는 이미지로부터 발생된 비트맵에 대해서만 타일들을 배제한다. 보다 높은 해상도의 이미지에 대해서만 타일들을 배제하는 일부 실시예는 보다 낮은 해상도의 비트맵을 타일링하지 않는다. 어떤 이러한 실시예는 저해상도 레벨에서 전체 비트맵을 비교한다. 일부 실시예는 각각의 오프셋에 대해 동일한 수의 픽셀들을 비교하기 위해 비트맵들 중 하나 이상의 비트맵의 하나 이상의 에지의 근방에 있는 픽셀을 제외한다.
V. 이미지 처리: HDR 이미지 발생 및 스케일링
A. 서론
사진 촬영에서, 상이한 장면이 상이한 노출 기간으로 촬영된다. 긴 노출 기간은 어둑한 물체에 대해 높은 수준의 세부사항을 제공한다. 짧은 노출 기간은 밝은 물체에 대해 높은 수준의 세부사항을 제공한다. 그렇지만, 촬영되는 물체의 밝기에 정합하지 않는 노출 시간은 좋지 않은 결과를 야기할 수 있다. 예를 들어, 밝은 물체의 이미지를 촬영할 때, 노출 기간이 너무 길면 그 밝은 물체의 이미지의 초점이 맺히는 센서가 포화된다. 그 경우에 세부사항이 상실되는데, 그 이유는 포화 레벨을 넘는 어떤 조명 레벨도 단순히 백색(최대값을 가짐)으로 보이기 때문이다. 모든 픽셀이 백색으로 보일 때, 그렇지 않았으면 세부사항을 제공할 것인 조명 레벨의 차이가 포착되지 않는다. 좋지 않은 결과의 다른 일례는 어두운 물체의 이미지를 너무 짧은 노출 기간으로 촬영하는 것으로부터 나온다. 너무 짧은 노출 기간은 어두운 물체의 이미지의 초점이 맺히는 센서의 감도에 부적절한 조명을 제공한다. 세부사항이 상실되는데, 그 이유는 센서가 이미 수광된 작은 양의 광의 작은 퍼센트의 차이를 정확하게 식별할 수 없기 때문이다. 상이한 장면이 상이한 노출 시간으로 더 잘 보이기 때문에, 사진사 및 자동 카메라는 조명 조건을 보상하기 위해 노출 시간을 조절한다. 일부 실시예의 모바일 장치는 또한 촬영하고 있는 장면의 조명 조건에 따라 노출 시간을 조절한다. 어두운 장면의 세부사항을 캡처하기 위해 긴 노출 시간이 사용되고; 밝은 장면의 세부사항을 캡처하기 위해 짧은 노출 시간이 사용되며; 밝은 것과 어두운 것 사이에 있는[중간톤(midtone)인] 장면의 세부사항을 캡처하기 위해 중간 노출 시간이 사용된다.
그렇지만, 한 장면이 밝은 물체와 어두운 물체는 물론 중간톤 물체도 포함하고 있을 때, 어두운 물체의 세부사항을 캡처하기에 충분히 긴 노출 시간은 밝은 물체를 이미지에서 포화되게 하고 중간톤 물체를 너무 밝게 할 것이다. 밝은 물체의 세부사항을 캡처하기에 충분히 짧은 노출 시간은 어두운 물체를 거의 흑색으로 되게 하고 중간톤 물체를 너무 어둡게 할 것이다. 중간톤 항목을 포착하기에 딱맞는 노출 시간은 어두운 물체를 너무 어둡게 하고 밝은 물체를 너무 밝게 할 것이다.
밝은 물체의 포화 및 어두운 물체의 낮은 세부사항을 피하기 위해, 일부 실시예는 상이한 노출(과다 노출, 과소 노출 및 적정 노출)로 3개의 이미지를 촬영하고, 각각의 노출에서 그 특정의 노출이 잘 캡처하는 세부사항을 강조하는 방식으로 이미지들을 합성한다. 과다 노출된 이미지는 어두운 영역에서 양호한 세부사항을 보여주고; 따라서 합성물은 이미지의 어두운 영역에서의 픽셀을 발생하는 데 과다 노출된 이미지로부터의 픽셀을 사용하는 쪽으로 가중된다. 과소 노출된 이미지는 밝은 영역에서 양호한 세부사항을 보여주고; 따라서 합성물은 이미지의 밝은 영역에서의 픽셀을 발생하는 데 과소 노출된 이미지로부터의 픽셀을 사용하는 쪽으로 가중된다. 적정 노출된 이미지는 중간톤 영역에서 양호한 세부사항을 보여주고; 따라서 합성물은 이미지의 중간톤 영역에 대해 적정 노출된 이미지로부터의 픽셀을 사용하는 쪽으로 가중된다.
이미지들을 정렬한 후에, 섹션 IV에서 기술하는 바와 같이, 일부 실시예의 이미지 처리 모듈은 합성 HDR 이미지를 생성하기 위해 3개의 정렬된 이미지의 합성을 수행한다. 다른 실시예에서, 이미지 처리 모듈은 3개의 이미지를 합성하기 위해 상이한 기술을 사용한다. 일부 실시예는 이들 이미지의 루마 채널에 대해 이들 이미지의 크로마 채널에 대한 것과 별개의 일련의 동작을 수행함으로써 3개의 이미지를 합성한다. 일부 실시예에서, 크로마 채널 이미지에 대한 별개의 동작은 루마 이미지에 대한 동작과 동일하거나 유사하다. 또한, HDR 합성 이미지를 발생할 시에, 일부 실시예는 원하는 값 범위를 초과하는 루마값 및 크로마값을 생성할 수 있다. 그에 따라, HDR 이미지를 발생하는 동안, 일부 실시예는 HDR 이미지의 루마값 및 크로마값이 그의 원하는 범위 내에서 발생되도록 하기 위해 스케일링 동작을 동시에 수행한다. 일부 실시예에서, 최종 HDR 이미지의 발생은 개념적으로 HDR 캡처 동작 및 HDR 렌더링 동작으로 나누어진다. HDR 캡처 동작에서, 초기 HDR 이미지가 상이한 노출 시간으로 촬영된 다수의 이미지로부터 발생된다. 일부 실시예의 HDR 렌더링 동작에서, 이미지의 어두운 부분(shadow)을 증강시키는 것, 이미지의 밝은 부분(highlight)을 감쇠시키는 것, 이미지의 히스토그램 확장(histogram stretching), 및 이미지의 크로마 성분의 크로마 포화를 비롯한 하나 이상의 동작에 의해 초기 HDR 이미지가 조절된다.
합성 루마 이미지의 대응하는 영역을 발생하기 위해 각각의 이미지의 어느 영역이 사용되어야 하는지를 식별하기 위해, 일부 실시예는 3개의 마스크를 발생한다. 3개의 마스크는 3개의 노출 레벨에 대응한다. 합성물에서 사용할 각각의 노출의 영역을 식별하기 위해, 각각의 마스크는 그의 대응하는 노출의 각각의 지점에서 가중 인자를 제공한다. 일부 실시예에서, 3개의 마스크를 발생하기 위해 이미지의 밝은 영역, 어두운 영역 및 중간톤 영역을 식별하기 위해 적정 노출된 이미지가 사용된다. 합성 이미지가 이어서 마스크를 각각의 픽셀에 대한 가중 인자로서 사용하여 픽셀별로 발생된다. 특정의 픽셀에 대한 특정의 마스크에서의 높은 값은 그 마스크에 대응하는 노출에서의 픽셀이 합성 이미지에서의 대응하는 픽셀에 강한 영향을 줄 것임을 의미한다. 특정의 픽셀에 대한 특정의 마스크에서의 낮은 값은 그 마스크에 대응하는 노출에서의 픽셀이 합성 이미지에서의 대응하는 픽셀에 약한 영향을 줄 것임을 의미한다. 스케일의 극단에서, 특정의 노출의 마스크에서의 특정의 픽셀에 대한 1의 값은 합성물에서의 대응하는 픽셀의 값이 그 노출에서의 대응하는 픽셀의 값에 전적으로 의존한다는 것을 의미한다. 이와 유사하게, 특정의 노출의 마스크에서의 특정의 픽셀에 대한 0의 값은 합성물에서의 대응하는 픽셀의 값이 그 노출에서의 대응하는 픽셀의 값에 전혀 의존하지 않는다는 것을 의미한다.
마스크가 개개의 픽셀을 가중하는 반면, 일부 실시예는 또한 각각의 노출의 상대 노출 시간을 보상하는 인자로 각각의 이미지 내의 모든 픽셀을 가중한다. 일부 실시예에서, 이들 계산에서 사용되는 노출 시간은 모바일 장치의 카메라에 의해 제공된다.
일부 실시예에서, 컬러가 루마값에 따라 적절히 스케일링되도록 하기 위해, 이미지의 크로마 값이 또한 루마값과 유사한 가중 방식으로 합성된다. 즉, 노출의 루마 채널과 동일한 마스크 및 스케일링을 사용하여 노출의 크로마 채널(Cb 및 Cr)이 합성된다. 일부 실시예에서, 합성 동안 또는 합성 후에 이미지의 중간톤의 컬러가 강화된다.
B. 루마 또는 루미넌스의 합성
일부 실시예의 모바일 장치는 상이한 노출에서 촬영된 다수의 이미지를 합성함으로써 HDR 이미지를 발생한다. 일부 실시예에서, 이미지들을 합성하는 것은 각각의 픽셀의 값이 3개의 이미지 각각에서의 대응하는 픽셀의 값들의 가중 평균인 이미지를 발생한다. 일부 실시예에서, 합성물은 이미지들의 루마 성분의 가중 평균이다. 다른 실시예에서, 합성물은 이미지들의 루미넌스 성분의 가중 평균이다. 즉, 다양한 실시예는 각종의 상이한 이미지 형식으로 된 이미지들을 합성한다. 일부 실시예는 루마(Y') 형식으로 된 이미지들에 대해 모든 동작을 수행한다. 다른 실시예에서, 루미넌스(Y) 형식으로 된 이미지들에 대해 모든 동작이 수행된다. 또 다른 실시예에서, 모바일 장치는 루마(Y') 형식으로 된 이미지로 시작하고, 루마(Y') 성분을 루미넌스(Y) 성분으로 변환하며, 이어서 루미넌스(Y) 성분에 대해 동작들을 수행한다. 루미넌스 이미지가 합성된 후에, 일부 실시예의 모바일 장치는 얻어진 합성 이미지를 루미넌스(Y)로부터 루마(Y')로 변환한다. 이하의 설명은 이러한 변환이 일어날 수 있는 합성 프로세스에서의 몇몇 위치를 알려주고 있지만, 기술 분야의 당업자라면, 다른 실시예에서, 변환이 프로세스의 다른 부분 동안 일어날 수 있다는 것을 잘 알 것이다.
도 12는 동일한 장면의 3개의 상이한 노출의 루마 채널 이미지들을 합성하고 얻어진 합성 이미지의 다양한 루마값을 조정하는 프로세스(1200)를 나타낸 것이다. 합성 모듈(120)이 정렬 모듈(115)로부터 3개의 (일부 실시예에서, 크로핑된) 이미지를 수신할 때마다 프로세스(1200)가 수행된다. 이 프로세스는 특정의 장면에 대해 프로세스(1200)를 수행하는 일례를 나타낸 도 13a를 참조하여 기술될 것이다. 프로세스(1200)는 도 13a에서의 항목을 참조하여 설명되지만, 기술 분야의 당업자라면 이것이 설명의 편의를 위한 것이라는 것과 계산이 그 도면에서의 특정의 장면으로 제한되지 않는다는 것을 잘 알 것이다.
도 13a에서의 장면은 산길에 있는 자동차이다. 이 장면은 화창한 하늘과 역광을 받는 어두운 산은 물론, 중간톤으로 되어 있는 자동차와 도로도 포함하고 있다. 도 13a는 상이한 노출에서 촬영된 3개의 이미지(예컨대, 컬러 이미지)(1310A 내지 1310C), 각각의 이미지의 루마 채널 이미지(때때로 루마 이미지라고 함)(1320A 내지 1320C), 마스크(1330A 내지 1330C), 합성 루마 이미지(1340), 가우시안 블러링된 합성물(1350), 밝은 부분-감쇠된 이미지(highlight-attenuated image)(1360A) 및 어두운 부분-강화된 이미지(shadow-enhanced image)(1360B), 합성 이미지(1370) 및 최종 루마 이미지(1380)를 포함하고 있다. 상이한 노출에서 촬영된 3개의 이미지(1310A 내지 1310C)는 상이한 노출 레벨에서 촬영된 컬러 이미지를 나타낸다. 이미지(1310A)는 과소 노출된 이미지이고, 1310B는 적정 노출된 이미지이며, 1310C는 과다 노출된 이미지이다. 일부 실시예에서, 이미지(1310A)는 이미지(1310B)의 1/4 기간 동안 노출되고, 이미지(1310C)는 이미지(1310B)의 4배 기간 동안 노출된다. 동일한 실시예에서 또는 다른 실시예에서, 노출 시간 비가 4 이외의 숫자일 수 있다. 루마 채널 이미지(1320A 내지 1320C)는 컬러 이미지(1310A 내지 1310C)의 루마 정보만을 나타낸다. 일부 실시예에서는, 루마 채널 데이터가 크로마 채널 데이터와 분리되어 제공되는 반면, 다른 실시예에서는, 루마 채널 데이터가 컬러 이미지로부터 추출된다.
도 1과 관련하여 기술된 바와 같이, 일부 실시예의 모바일 장치는 각각의 이미지에 대해 상이한 노출 시간을 사용하여 3개의 이미지[예컨대, 이미지들(1310A 내지 1310C)]을 발생한다. 일부 실시예에서, 이들 노출 시간은 노출값 보상(exposure value compensation, EV)으로 측정된다. 모바일 장치 상의 카메라의 주어진 조리개에 대해, 노출 시간의 양은 EV의 2의 멱승에 비례한다. 예를 들어, 3의 EV는 노출 시간을 8배 증가시킨다. 일부 실시예에서, 적정 노출된 이미지에 비해, 과다 노출된 이미지는 +2의 EV로 촬영되고, 과소 노출된 이미지는 -2의 EV로 촬영된다. 이러한 실시예에서, 과다 노출된 이미지는 적정 노출된 이미지의 4배 기간 동안 노출되고, 과소 노출된 이미지는 적정 노출된 이미지의 1/4 기간 동안 노출된다. 다양한 실시예는 플러스 또는 마이너스 2 이외의 다른 EV 값을 사용한다. 일부 실시예는 상이한 조명 조건에 대해 EV를 조절한다. 예를 들어, 일부 실시예는 적정 노출된 이미지의 히스토그램(예컨대, 적정 노출된 미리보기 이미지로부터 발생된 히스토그램)에 기초하여 어느 노출값을 사용할지를 결정한다. 어떤 이러한 실시예는 EV+ 값과 EV- 값 사이에 일정한 차이를 유지한다. 일부 실시예에서, 어떤 조명 조건에서 과다 노출의 EV가 과소 노출의 EV와 상이한 크기일 수 있다. 예를 들어, 일부 실시예는 아주 밝은 장면에서 과소 노출된 이미지 및 과다 노출된 이미지에 대해 각각 EV -3 및 EV +1을 사용한다. 일부 실시예는 아주 어두운 장면에서 과소 노출된 이미지 및 과다 노출된 이미지에 대해 각각 EV -1 및 EV +3을 사용한다.
도 12의 합성 프로세스(1200)는 처음에 상이한 노출 시간으로 촬영된 3개의 루마 이미지[예컨대, 루마 이미지(1320A 내지 1320C)]로 시작하여 HDR 캡처 동작을 수행한다. 이 프로세스는 적정 노출된 루마 이미지(1320B)로부터 3개의 루마 이미지(1320A 내지 1320C)에 대응하는 3개의 마스크를 발생한다(1210). 적정 노출된 루마 이미지(1320B)는 촬영되고 있는 장면의 어느 부분이 밝고, 어느 부분이 중간톤이며, 장면의 어느 부분이 어두운지를 식별하는 데 사용된다. 도 13a에서, 적정 노출된 루마 이미지(1320B)의 밝은 영역은 하늘 및 자동차의 바퀴를 포함하고, 어두운 영역은 산을 포함하며, 중간톤 영역은 자동차의 차체 및 도로를 포함한다. 마스크는 픽셀들을 합성하기 위한 일련의 가중치이다. 일부 실시예에서, 각각의 가중치는 합성될 이미지들과 동일한 해상도를 가진다. 마스크는 이미지로서 표현될 수 있고, 마스크에서의 값을 픽셀값으로 기술하는 것이 편리하지만, 마스크에서의 데이터는 주로 시각 디스플레이를 위한 것이 아니라 합성 계산에서 사용하기 위한 것이다.
3개의 마스크는 3개의 루마 이미지(1320A 내지 1320C)에 대응한다. 과소 노출된 루마 이미지(1320A)는 밝은 영역에서 최상의 세부사항을 제공한다. 따라서, 과소 노출된 루마 이미지(1320A)에 대한 마스크(1330A)는 적정 노출된 루마 이미지(1320B)에서의 밝은 픽셀에 대응하는 픽셀에 대해 높은 값을 갖고, 적정 노출된 루마 이미지(1320B)에서의 중간 픽셀 및 어두운 픽셀에 대응하는 픽셀에 대해 낮은 값을 갖는다. 과다 노출된 루마 이미지(1320C)는 어두운 영역에서 최상의 세부사항을 제공한다. 따라서, 과다 노출된 루마 이미지(1320C)에 대한 마스크(1330C)는 적정 노출된 루마 이미지(1320B)에서의 어두운 픽셀에 대응하는 픽셀에 대해 높은 값을 갖고, 적정 노출된 루마 이미지(1320B)에서의 중간 픽셀 및 밝은 픽셀에 대응하는 픽셀에 대해 낮은 값을 갖는다. 적정 노출된 루마 이미지(1320B)는 중간톤 영역에서 최상의 세부사항을 제공한다. 따라서, 적정 노출된 루마 이미지(1320B)에 대한 마스크(1330B)는 적정 노출된 루마 이미지(1320B)에서의 중간톤 픽셀에 대응하는 픽셀에 대해 높은 값을 갖고, 적정 노출된 루마 이미지(1320B)에서의 밝은 픽셀 및 어두운 픽셀에 대응하는 픽셀에 대해 낮은 값을 갖는다.
일부 실시예는 각각의 이미지로부터의 개별 픽셀들을 사용하기보다는 상이한 루마 이미지(1320A 내지 1320C)로부터의 픽셀들을 블렌딩하기 위해 일정 범위의 값을 갖는 마스크를 제공한다. 마스크에서의 픽셀의 값이 높을수록, 대응하는 이미지에서의 대응하는 픽셀이 합성 이미지에서의 대응하는 픽셀의 값에 더 많은 영향을 미친다. 각각의 이미지의 영역들을 쉽게 식별하기 위해, 도 13a에서 마스크(1330A 내지 1330C)는 흑색 영역 및 백색 영역만을 갖지만, 일부 실시예의 마스크의 시각적 표현은 회색 픽셀을 포함할 것이다. 이러한 회색 픽셀은 합성 이미지에서의 대응하는 픽셀의 값에 영향을 미치지만 그 값을 완전히 결정하지는 않는 픽셀을 나타낼 것이다.
하기의 수학식 1 내지 수학식 3은, 일부 실시예에서, 마스크를 발생하는 데 사용된다. 이들 수학식으로부터, 앞서 언급한 바와 같이, 과다 노출된 이미지로부터 어두운 영역의 세부사항을 취하고 과소 노출된 이미지로부터의 밝은 영역의 세부사항을 취하며 적정 노출된 이미지로부터 중간톤의 세부사항을 취함으로써 HDR 이미지를 합성하는 초기 바이어스(initial bias)를 제공하는 이미지 3개의 가중치 값 세트를 제공하는 쌍곡선 탄젠트에 기초한 3개의 곡선이 얻어진다. 쌍곡선 탄젠트에 기초한 수학식/곡선을 사용하는 대신에, 다른 실시예는 합성 이미지를 생성하기 위해 이미지들을 선택적으로 가중하는 데 사용되는 마스킹 값을 지정하기 위해 다른 유형의 S자형 또는 다른 비선형 함수/곡선을 사용한다.
본 명세서에서의 수학식들은 각각의 변수가 하나의 대문자로 표현되고, 어떤 경우에, 대문자 다음에 하나의 소문자가 오는 관례를 따르며, 상이한 마스크 또는 이미지에 대해 동일한 기능을 하는 변수들이 사용되고 있을 때 특히 그렇다. 이미지에서의 상이한 개개의 픽셀에 대해 상이한 값을 가지는 변수는, 수학식에서의 그의 값이 픽셀별로 결정되는 것을 나타내기 위해, 초기 문자와 그에 뒤따라오는 [x,y]로 표시되고, 여기서 x 및 y는 이미지에서의 픽셀의 좌표를 나타낸다. 상이한 픽셀에 대해 상이한 값을 갖는 변수는 이미지 내의 전범위의 픽셀에 걸쳐 각각의 픽셀에 대해 계산된다. 수학식들이 도 13a에서의 항목을 참조하여 설명되지만, 기술 분야의 당업자라면 이것이 설명의 편의를 위한 것이라는 것과 계산이 그 도면에서의 특정의 장면으로 제한되지 않는다는 것을 잘 알 것이다.
일부 실시예에서, 마스크(1330A 내지 1330C)에서의 픽셀들의 값은 하기의 수학식을 사용하여 발생된다.
[수학식 1]
Figure pct00001
[수학식 2]
Figure pct00002
[수학식 3]
Figure pct00003
수학식 1에서, Mb[x,y]는 좌표 [x,y]에서의 과다 노출 마스크(1330C)의 값을 나타내고, 적정 노출된 루마 이미지(1320B)의 대응하는 픽셀의 루마값 Ln[x,y]의 함수이다. Tb는 과다 노출된 이미지에 대한 임계 루마값이다. Sb는 함수의 기울기에 영향을 미친다. 본 명세서에 나오는 임의의 수학식에서, tanh은 쌍곡선 탄젠트이다. tanh 계산을 실시간으로 수행하는 대신에, 일부 실시예는 주어진 입력에 대해 tanh에 의해 생성되는 값을 식별하기 위해 탐색 테이블을 사용한다. 일부 실시예는, tanh 대신에 또는 그에 부가하여, 다른 계산 대신에 탐색 테이블을 사용한다.
수학식 2에서, Mu[x,y]는 좌표 [x,y]에서의 과소 노출 마스크(1330A)의 값을 나타낸다. Mb[x,y]와 같이, Mu[x,y]도 적정 노출된 루마 이미지(1320B)의 대응하는 픽셀의 루마값 Ln[x,y]의 함수이다. Tu는 과소 노출된 이미지에 대한 임계 루마값이다. Su는 함수의 기울기에 영향을 미친다. 수학식 3에서, Mn[x,y]는 좌표 [x,y]에서의 적정 노출 마스크(1330B)의 값을 나타낸다.
과다 노출 마스크(1330C)의 목적은 어둑한 영역에서 픽셀의 영향을 증가시키고[과다 노출된 루마 이미지(1320C)가 양호한 세부사항을 제공하는 경우] 밝은 영역에서 픽셀의 영향을 증가시는 것이다[과다 노출된 루마 이미지(1320C)가 아마도 포화될 것인 경우]. 그에 따라, 수학식 1에서, 과다 노출된 루마 이미지(1320C)로부터의 픽셀을 가중하는 것은 적정 노출된 루마 이미지(1320B)에서의 대응하는 픽셀의 루마값의 매끈한 감소 함수(smooth, decreasing function)이다. Sb는 그 앞에 마이너스 부호를 가지며, 이는, 일부 실시예에서 사용되는 바와 같이, Sb의 값이 양인(positive value) 결과, 루마값에 따라 감소하는 함수가 얻어진다는 것을 나타낸다. Sb의 양의 값에 대해, 적정 노출된 루마 이미지(1320B)에서의 픽셀이 밝을수록, 합성 이미지를 발생할 때 과다 노출된 이미지에서의 대응하는 픽셀에 더 적은 가중치가 주어진다.
앞서 언급한 바와 같이, Tb는 과다 노출된 이미지에 대한 임계 루마값이다. 적정 노출된 루마 이미지(1320B)에서의 픽셀이 Tb 미만의 값을 가질 때(임계값보다 더 어두움), 과다 노출 마스크(1330C)의 대응하는 픽셀은 1/2 초과의 값을 가진다. 적정 노출된 루마 이미지(1320B)에서의 픽셀이 Tb의 값을 가질 때(임계값에 있음), 과다 노출 마스크(1330C)의 대응하는 픽셀은 1/2의 값을 가진다. 적정 노출된 루마 이미지(1320B)에서의 픽셀이 Tb 초과의 값을 가질 때(임계값보다 더 밝음), 과다 노출 마스크(1330C)의 대응하는 픽셀은 1/2 미만의 값을 가진다. 일부 실시예에서, Tb의 값은 0.015를 적정 노출된 루마 이미지(1320B)에서의 픽셀의 루마의 중간값으로 나눔으로써 구해진다. 예를 들어, 적정 노출된 루마 이미지(1320B)에서의 픽셀의 루마에 대한 중간값이 0.1인 경우, Tb의 값은 0.15일 것이다. 일부 실시예에서, Tb의 값은 0.02(또는 어떤 다른 값)를 적정 노출된 루마 이미지(1320B)에서의 픽셀의 루마의 중간값으로 나눔으로써 구해진다. 일부 실시예는 이미지의 특성에 따라 Tb를 계산하는 다른 방식을 가진다. 예를 들어, 일부 실시예는 중간 루마(median luma)보다는 루마 이미지(예컨대, 1320B)의 평균 루마[average (mean) luma]에 기초하여 Tb를 계산한다.
Sb는 함수 Mb[x,y]가 임계값 Tb 주위에서 얼마나 빠르게 변하는지를 결정한다. Sb의 아주 높은 값은 빠른 변화를 가져온다. Sb의 높은 값에 대해, 임계값 Tb 바로 위의 루마값을 갖는 적정 노출된 루마 이미지(1320B)에서의 픽셀로부터는 아주 낮은 값을 가지는 마스크(1330C)에서의 대응하는 픽셀이 얻어질 것이다. 마스크에서의 픽셀의 낮은 값은 과다 노출된 루마 이미지(1320C)에서의 대응하는 픽셀이 합성 이미지(1340)의 대응하는 픽셀의 값에 거의 아무런 영향도 미치지 않을 것임을 의미한다. 임계값 바로 아래의 루마값을 갖는 적정 노출된 루마 이미지(1320B)에서의 픽셀로부터는 아주 높은 값을 가지는(1의 최대값을 갖는) 마스크(1330C)에서의 대응하는 픽셀이 얻어질 것이다. 과다 노출된 루마 이미지(1320C)에서의 대응하는 픽셀의 값은 합성 이미지(1340)의 대응하는 픽셀의 값을 거의 전적으로 결정할 것이다. 이와 달리, Sb의 값이 낮은 결과, 임계값을 가로지를 때 영향의 점진적 천이가 일어날 것이다. Sb의 낮은 값에 대해, 임계값 바로 아래의 루마값을 갖는 적정 노출된 루마 이미지(1320B)에서의 픽셀로부터는 합성 이미지(1340)의 대응하는 픽셀에 50% 약간 초과의 영향을 미치는 마스크(1330C)에서의 대응하는 픽셀이 얻어질 것이다. Sb의 낮은 값에 대해, 임계값 바로 위의 루마값을 갖는 적정 노출된 루마 이미지(1320B)에서의 픽셀로부터는 합성 이미지(1340)의 대응하는 픽셀에 50% 약간 미만의 영향을 미치는 마스크(1330C)에서의 대응하는 픽셀이 얻어질 것이다. 일부 실시예에서, Sb의 값은 10이다.
과소 노출 마스크(1330A)의 목적은 밝은 영역에서 픽셀의 영향을 증가시키고[과소 노출된 루마 이미지(1320A)가 양호한 세부사항을 제공하는 경우] 어둑한 영역에서 픽셀의 영향을 감소시는 것이다[과소 노출된 루마 이미지(1320A)가 아마도 너무 어두워서 세부사항을 보여주지 못할 것인 경우]. 그에 따라, 수학식 2에서, 과소 노출 마스크(1330A)에서의 픽셀의 값은 적정 노출된 루마 이미지(1320B)에서의 대응하는 픽셀의 루마값의 증가 함수(increasing function)이어야만 한다. 기울기 결정요인 Su는 그 앞에 마이너스를 갖지 않으며, 따라서 Su의 양의 값으로부터는 루마의 양함수(positive function)가 얻어진다. 수학식 2에서의 임계값 Tu는 수학식 1에서의 임계값 Tb와 상이하다. 일부 실시예에서, 적정 노출된 루마 이미지(1320B)의 중간 루마값에 6(또는 어떤 다른 값)을 곱함으로써 Tu의 값이 구해진다. 일부 실시예에서, 중간 루마값과 인자(예컨대, 6)의 곱이 1 초과일 때, Tu의 값은 1로 설정된다. 일부 실시예는 이미지의 특성에 따라 Tu를 계산하는 다른 방식을 가진다. Sb에 대한 경우와 유사하게, Su의 크기는 과소 노출된 루마 이미지(1320A)의 픽셀들의 [합성 이미지(1340)에 대한] 영향이 적정 노출된 루마 이미지(1320B)에서의 대응하는 픽셀의 루마값의 함수로서 얼마나 빠르게 변하는지를 결정한다. Su의 높은 값은, 적정 노출된 루마 이미지(1320B)의 픽셀들의 루마값이 임계값 Tu 미만으로부터 임계값 초과로 감에 따라, 영향 없음으로부터 영향 많음으로의 빠른 변화를 제공한다. Su의 낮은 값은, 적정 노출된 루마 이미지(1320B)의 픽셀들의 루마값이 임계값 Tu 미만으로부터 임계값 초과로 감에 따라, 영향 없음으로부터 영향 많음으로의 점진적 변화를 제공한다.
적정 노출 마스크(1330B)의 픽셀들은 "1의 값 - 다른 마스크(1330A, 1330C)에서의 대응하는 픽셀의 값"을 가진다. 적정 노출 마스크(1330B)는 다른 마스크들 둘 다가 보다 낮은 값을 갖는 경우 보다 높은 값을 가지며 다른 마스크들 중 어느 하나(또는 그들의 총계)가 보다 높은 값을 가지는 경우 보다 낮은 값을 가진다. 예를 들어, Su 값이 다른 마스크들을 발생하는 데 사용되는 Sb 값과 같은 것으로 가정할 때, 다른 2개의 마스크의 결합된 값은 Tb 및 Tu의 평균값에 있는 픽셀들에 대해 가장 낮다. 따라서, 적정 노출 마스크(1330B)는 Tb 및 Tu의 평균값에 있는 루마값을 갖는 적정 노출된 루마 이미지(1320B)에서의 픽셀에 대응하는 픽셀들에 대해 가장 높은 값을 가진다.
픽셀의 값을 좌우하는 한 마스크로부터 픽셀의 값을 좌우하는 다른 마스크로의 점진적 천이를 가지는(예컨대, 작은 크기의 Su 또는 Sb를 갖는) 마스크의 시각적 표현은 부분적으로 한 마스크에 의해 영향을 받고 부분적으로 다른 마스크에 의해 영향을 받는 합성물의 영역들에 대응하는 회색 영역을 포함할 것이다. 이와 달리, 한 마스크로부터 다른 마스크로의 급격한 천이를 가지는(예컨대, 큰 크기의 Su 또는 Sb를 갖는) 마스크의 시각적 표현은 거의 전적으로 흑색 픽셀 및 백색 픽셀일 것이다 - 회색 픽셀(있는 경우)을 거의 갖지 않을 것임 -. 마스크(1330A 내지 1330C)가 아주 높은 값의 Su 및 Sb를 사용하여 발생되었으며, 따라서 회색 픽셀을 갖지 않는다. 임계값 Tb보다 더 어둑한 적정 노출된 루마 이미지(1320B)에서의 픽셀로부터는 과다 노출 마스크(1330C)에서의 백색 픽셀이 얻어진다. 임계값 Tb보다 더 밝은 적정 노출된 루마 이미지(1320B)에서의 픽셀로부터는 과다 노출 마스크(1330C)에서의 흑색 픽셀이 얻어진다. 임계값 Tu보다 더 어둑한 적정 노출된 루마 이미지(1320B)에서의 픽셀로부터는 과소 노출 마스크(1330A)에서의 흑색 픽셀이 얻어진다. 임계값 Tu보다 더 밝은 적정 노출된 루마 이미지(1320B)에서의 픽셀로부터는 과소 노출 마스크(1330A)에서의 백색 픽셀이 얻어진다. 임계값 Tu와 임계값 Tb 사이에 있는 적정 노출된 루마 이미지(1320B)에서의 픽셀로부터는 적정 노출 마스크(1330B)에서의 백색 픽셀이 얻어진다. 임계값 Tu와 임계값 Tb 사이에 있지 않는 적정 노출된 루마 이미지(1320B)에서의 픽셀로부터는 적정 노출 마스크(1330B)에서의 흑색 픽셀이 얻어진다. 요약하면, 과소 노출 마스크(1330A)는 (합성물에서의) 밝은 픽셀의 전체 가중치를 제공하고, 적정 노출 마스크(1330B)는 중간범위 픽셀의 전체 가중치를 제공하며, 과다 노출 마스크는 어두운 픽셀의 전체 가중치를 제공한다. 마스크(1330A 내지 1330C)에서의 극단적인 컷오프가 제공되는데, 그 이유는 흑백 모습에서의 높은 가중치 및 낮은 가중치의 다양한 영역을 식별하는 것을 용이하게 해주기 때문이다. 그렇지만, Sb 및 Su의 값이 보다 낮은 실시예에서, 대응하는 마스크는 일정 범위의 값을 포함할 것이다. 시각적 관점에서, 마스크는 합성물에서의 픽셀의 루마에 대한 공동 영향(shared influence)을 나타내는 회색 영역을 포함할 것이다.
과다 노출된 이미지 마스크를 발생하기 위해, 일부 실시예는 임계 루마값 Tb를 앞서 기술한 값으로부터 조절한다. 일부 실시예는 임계 루마값 Tb를 조절하는데, 그 이유는 과다 노출된 이미지의 신호대 잡음비가 노출 시간의 증가에 따라 감소하기 때문이다(예컨대, 보다 긴 노출 시간은 이미지에 보다 많은 잡음을 야기함). 그에 따라, 합성 이미지에서의 잡음을 감소시키기 위해, 일부 실시예는 최종 합성물에 과다 노출된 이미지를 덜 포함하도록 임계 루마값 Tb를 조절한다. 일부 실시예에서, 하기의 수학식은 임계값을 조절하는 데 사용된다.
[수학식 4]
Figure pct00004
수학식 4에서, 첫번째 Tb는 조절 이후의 임계 루마값이고, 두번째 Tb는 조절 이전의 임계 루마값이다. Fb는 과다 노출된 이미지의 신호대 잡음비[단위: 데시벨(dB)]이다. Ft는 임계 신호대 잡음비이다. Ft 임계값 초과의 신호대 잡음비는 과다 노출된 이미지의 임계 루마를 증가시키고, 이는 합성 이미지(1340)에 많은 영향을 미치는 과다 노출된 이미지에서의 픽셀의 수를 증가시킨다. 일부 실시예에서, Ft는 24 dB이다. 일부 실시예에서, 모바일 장치(또는 모바일 장치의 프로토타입)의 보정 동안, 일련의 광 레벨(예컨대, 5개의 광 레벨)에 대해 신호대 잡음비가 측정된다. 이들 측정된 신호대 잡음비는 주어진 이미지에 대한 신호대 잡음비를 구하는 데 사용된다. 일부 실시예에서, 각각의 모바일 장치에 대해 보정이 수행된다. 다른 실시예에서, 그 유형의 모바일 장치에 대한 보정점(calibration point)을 구하기 위해 모바일 장치들의 샘플(하나 이상의 모바일 장치)에 대해 보정이 수행되고, 이어서 동일한 유형의 다른 모바일 장치에 대해 이들 보정점이 사용된다. 일부 실시예는 기본 보정점을 가지지만 특정의 모바일 장치에 대해 새로운 보정점이 계산될 수 있게 해준다. 특정의 이미지의 광 레벨은 이미지가 캡처될 때 모바일 장치에 의해 결정된다. 보정된 모바일 장치에 대한 실시예에서, 광 레벨에 기초하여, 이미지의 신호대 잡음비가 보정점의 신호대 잡음비로부터 보간된다.
일부 실시예에서, 개개의 픽셀에 기초한 마스킹으로 인해 콘트라스트의 손실이 일어날 수 있다. 근방의 픽셀과 정합하지 않는 픽셀(그렇지 않았으면 어두울 영역에서의 밝은 픽셀 등)이, 그 픽셀값에 대한 최상의 세부사항을 제공하는 이미지보다는, 그 영역에 대한 최상의 세부사항을 제공하는 이미지에 의해 더 많은 영향을 받을 때 더 많은 세부사항이 보존될 것이다. 예를 들어, 이러한 실시예에서, 밝은 배경에 있는 어두운 픽셀에 대한 합성값은, 어두운 픽셀에 대한 세부사항을 제공하는 데 더 나은 과다 노출된 이미지에 의해서보다는, (배경과 같은) 밝은 픽셀에 대한 세부사항을 제공하는 데 더 나은 과소 노출된 이미지의 대응하는 픽셀에 의해 가장 많이 영향을 받을 것이다. 게다가, 마스크를 블러링하는 일 없이 합성하는 것으로 인해, 상이한 노출로부터 도출되는 픽셀들 간의 합성에서의 고주파 천이가 발생할 수 있는데, 그 이유는 가중치가 공간적으로 일정하지 않기 때문이다. 따라서, 일부 실시예는, 밝은 영역과 어두운 영역 사이의 경계에서 콘트라스트를 향상시키기 위해 마스크를 블러링하는 것에 부가하여 또는 그 대신에, 가중치를 공간적으로 일정하게 함으로써 합성에서의 고주파 천이를 감소시키기 위해 마스크를 블러링한다. 따라서, 일부 실시예에서, 프로세스(1200)는 밝은 영역과 어두운 영역 사이의 경계에서 콘트라스트를 향상시키기 위해 및/또는 합성에서의 고주파 천이를 감소시키기 위해 마스크를 조절한다(1215). 그에 따라, 일부 실시예의 마스크는 합성 이미지(1340)에 대한 가중치로서 적용되기 전에 블러링된다. 일부 이러한 실시예에서, 마스크는 수학식 5 및 수학식 6 등의 수학식을 사용하여 블러링된다.
[수학식 5]
Figure pct00005
[수학식 6]
Figure pct00006
수학식 5에서, 첫번째 Mb[x,y]는 블러링 필터가 적용된 후의 마스크를 나타내고, 두번째 Mb[x,y]는 블러링 필터가 적용되기 전의 마스크를 나타낸다. 수학식 5 및 수학식 6에서의 필터는 필터 k를 사용하는 2D 필터 연산이다. 항목 k는 2D 가우시안 필터 커널이다. 일부 실시예에서, 7x7 또는 9x9 필터 커널은 3의 픽셀 분산에서 사용된다. 수학식 6에서, 첫번째 Mu[x,y]는 블러링 필터가 적용된 후의 마스크를 나타내고, 두번째 Mu[x,y]는 블러링 필터가 적용되기 전의 마스크를 나타낸다.
필터 커널(k)의 크기는 블러링 연산의 결과에 영향을 줄 수 있다. k의 값이 크면 후광 효과(halo effect)가 클 수 있지만, k의 값이 작으면 일정 영역 내에서 콘트라스트의 손실이 생길 수 있다. 블러링은 마스크가, 개개의 픽셀의 밝기에 기초한 가중치를 제공하기보다는, 픽셀이 속해 있는 영역의 밝기에 기초한 가중치를 제공하게 해준다. 일부 실시예에서, 이것은 다수의 범위(어두운, 중간톤 및/또는 밝은)로부터의 픽셀을 가지는 영역 내에서 콘트라스트를 향상시킨다. 일부 실시예에서, 수학식 5 및 수학식 6은 수학식 3 이전에 수행되고, 따라서 적정 노출 마스크(1330B)가 수학식 1 및 수학식 2에 의해 발생되는 마스크에 의해서보다는 수학식 5 및 수학식 6에 의해 발생되는 블러링된 마스크로부터 발생된다.
마스크 발생에 대한 상기 설명은 다른 루마 이미지(1320A, 1320C)가 아니라 적정 노출된 루마 이미지(1320B)로부터의 데이터를 사용하여 마스크를 발생하는 것을 기술하고 있다. 그렇지만, 적정 노출된 루마 이미지(1320B)를 사용하여 3개의 마스크(1330A 내지 1330C) 모두를 발생하는 것은 과다 노출된 이미지의 과장된(예컨대, 포화된) 영역이 사용되는 상황을 야기할 수 있다. 이는 또한 너무 어두운 과소 노출된 이미지의 영역이 사용되는 상황을 야기할 수 있다. 따라서, 일부 실시예에서, 루마 이미지로부터 발생된 마스크는, 적정 이미지로부터의 루마값 대신에 또는 그에 부가하여, 과다 노출된 이미지 및 과소 노출된 이미지로부터의 루마값을 사용하여 발생된다. 도 13b는 프로세스(1200)를 수행하고 각각의 이미지로부터 마스크(1330A 내지 1330C)를 발생하는 것의 일례를 나타낸 것이다. 도 13b에서, 과소 노출 마스크(1330A)는 과소 노출된 루마 이미지(1320A)로부터 발생되고, 과다 노출 마스크(1330C)는 과다 노출된 루마 이미지(1320C)로부터 발생되며, 적정 노출 마스크(1330B)는 과다 노출된 루마 이미지(1320C) 및 과소 노출된 루마 이미지(1320A)로부터 발생된다. 도 13b가 적정 노출 마스크를 과소 노출된 루마 이미지(1320A) 및 과다 노출된 루마 이미지(1320C)를 사용하여 발생되는 것으로 나타내고 있지만, 일부 실시예에서, 적정 노출 마스크(1330B)는 수학식 3을 사용하여 과소 노출 마스크(1320A) 및 과다 노출 마스크(1320C)로부터 발생된다. 일부 실시예에서, 적정 노출 마스크(1330B)는, 과소 노출 마스크(1320A) 및 과다 노출 마스크(1320C)가 블러링된 후에, 과소 노출 마스크(1320A) 및 과다 노출 마스크(1320C)로부터 발생된다.
과소 노출된 이미지 및 과다 노출된 이미지로부터 마스크를 발생하는 일부 실시예에서, 마스크는 수학식 1 내지 수학식 6과 유사한 수학식 - 과다 노출된 이미지로부터의 루마값(Lb[x,y])이 과다 노출 마스크에 대한 Ln[x,y]에 대입되고 과소 노출된 이미지로부터의 루마값(Lu[x,y])이 과소 노출 마스크에 대한 Ln[x,y]에 대입되어 있으며 그에 따라 임계값이 조절됨 - 을 사용하여 발생된다. 일부 이러한 실시예에서, 과다 노출 마스크 및 과소 노출 마스크를 계산하기 위한 임계값은 각자의 이미지의 중간 루마값으로부터 도출된다. 다른 실시예에서, 임계값이 (예컨대, 적정 노출된 이미지로부터 마스크를 발생하는 전술한 실시예에서와 동일한 방식으로) 적정 노출된 이미지의 중간 루마값으로부터 도출된다. 다른 실시예에서, 임계값이 (과다 노출 마스크의 경우) Tb에 대한 0.4의 기본값 및 (과소 노출 마스크의 경우) Tu에 대한 0.5의 기본값으로 설정된다. 또 다른 실시예에서, 임계값이 (과다 노출 마스크의 경우) Tb에 대한 0.5의 기본값 및 (과소 노출 마스크의 경우) Tu에 대한 0.5의 기본값으로 설정된다.
프로세스(1200)가 마스크[예컨대, 마스크(1330A 내지 1330C)]를 발생(1210)한 후에, 프로세스는 이어서 각각의 개별 루마 노출(예컨대, 1320A 내지 1320C)로부터 촬영된 세부사항을 포함하는 합성 루마 이미지[예컨대, 루마 이미지(1340)]를 발생한다(1220). 합성 루마 이미지(1340)에는, 적정 노출된 루마 이미지(1320B)의 자동차 차체 및 도로로부터의 세부사항, 과다 노출된 루마 이미지(1320C)의 산으로부터의 세부사항, 및 과소 노출된 루마 이미지(1320A)의 하늘 및 바퀴로부터의 세부사항 모두가 존재한다. 일부 실시예에서, 루마 이미지(1330A 내지 1330C)는 하기의 수학식을 사용하여 합성된다:
[수학식 7a]
Figure pct00007
수학식 7a에서, Lc[x,y]는 합성 이미지(1340)에서의 좌표 [x,y]에 있는 픽셀의 루마값이다. Lb[x,y]는 과다 노출된(밝은) 루마 이미지(1320C)에서의 좌표 [x,y]에 있는 픽셀의 루마값이다. Ln[x,y] 및 Lu[x,y]는, 각각, 적정 노출된 루마 이미지(1320B) 및 과소 노출된 루마 이미지(1320A)에 대한 루마값이다. Eb는 과다 노출된 루마 이미지(1320C)의 노출에 대한 노출 스케일링 인자이다. En 및 Eu는, 각각, 적정 노출된 루마 이미지(1320B) 및 과소 노출된 루마 이미지(1320A)에 대한 대응하는 스케일링 인자이다. Mb[x,y]는 좌표 [x,y]에서의 과다 노출 마스크(1330C)의 값을 나타낸다. Mn[x,y] 및 Mu[x,y]는, 각각, 적정 노출 마스크(1330B) 및 과소 노출 마스크(1330A)에 대한 값을 나타낸다. 마스크(1330C)에서의 픽셀의 값은 과다 노출된 루마 이미지(1320C)에서의 대응하는 픽셀이 합성 이미지에 얼마나 영향을 미치는지를 결정한다. 마스크(1330B)에서의 픽셀의 값은 적정 노출된 루마 이미지(1320B)에서의 대응하는 픽셀이 합성 이미지에 얼마나 영향을 미치는지를 결정한다. 마스크(1330A)에서의 픽셀의 값은 과소 노출된 루마 이미지(1320A)에서의 대응하는 픽셀이 합성 이미지에 얼마나 영향을 미치는지를 결정한다. 각각의 마스크(1330A 내지 1330C)에서, 보다 높은 값은 합성 이미지에 대한 더 많은 영향을 의미한다.
노출 스케일링 인자(Eu, En 및 Eb)는 이미지의 상이한 노출 시간을 보상한다(예컨대, 과다 노출된 이미지가 적정 노출된 이미지보다 4배의 노출 시간을 가지는 경우, Eb=En/4이다). 보다 많이 노출된 이미지는 보다 높은 루마값을 가지는데, 그 이유는 보다 오랫동안 노출되었기 때문이며, 그의 데이터가 "보다 양호"해서도 아니고 이미지의 보다 밝은 부분을 나타내서도 아니다. 보다 긴 노출 시간을 보상하지 않는 경우, 과다 노출된 이미지로부터의 데이터는 그의 정보를 제공하는 값이 나타내는 것보다 더 결과를 좌우할 것이다. 일부 실시예에서, 노출 시간의 비가 4 이외의 다른 것이다. 일부 실시예에서, 과소 노출 기간 대 적정 노출 기간의 비가 적정 노출 기간 대 과다 노출 기간의 비와 상이하다. 이러한 실시예에서, 노출 시간의 비가 상이한 것을 반영하기 위해 노출 스케일링 인자가 조정될 것이다.
픽셀의 값이 대응하는 센서에 도달하는 광의 선형 함수인 형식을 사용하는 실시예에서, 노출 스케일링 인자는 상이한 노출 시간에 의해 야기되는 픽셀값의 차이를 균일하게 보상한다. 픽셀의 값이 센서에 도달하는 광의 선형 함수일 때, 다른 인자(예컨대, 특정의 센서에 의해 캡처되는 장면의 일부의 밝기가 변하는 것)가 없는 경우, 픽셀의 값은 적정 노출 시간의 4배인 과다 노출된 이미지에서 동일한 장면의 적정 노출된 이미지에서의 대응하는 픽셀의 값보다 4배 더 클 것이다. 이러한 형식에서, 동일한 장면의 각각의 노출에서의 픽셀은 서로에 대해 동일한 값을 가진다. 즉, 적정 노출된 이미지에서의 한 픽셀이 적정 노출된 이미지에서의 다른 픽셀의 값의 2배인 경우, 적정 이미지에서의 제1 픽셀에 대응하는 과다 노출된 이미지의 픽셀은 적정 이미지에서의 제2 픽셀에 대응하는 과다 노출된 이미지에서의 픽셀의 값의 2배를 가질 것이다.
어떤 모바일 장치는 (포화점까지는) 센서에 도달하는 광량의 선형 함수인 성분(예컨대, 루미넌스)을 포함하는 형식으로 이미지를 캡처한다. 그렇지만, 어떤 이러한 장치는 비선형 변환(예컨대, 감마 보정)을 사용하여 루미넌스 이미지를 루마 이미지로 자동으로 변환한다. 루미넌스로부터 루마로의 비선형 변환으로 인해, 루마값이 노출 시간의 선형 함수가 아니다. 루마값이 선형 함수가 아닌 이유는, 감마 보정이 루미넌스 범위의 하단 근방의 값을 루미넌스 범위의 중간 및 상단 근방에 있는 값보다 더 많이 변경하기 때문이다. 긴 노출 시간으로 촬영되는 과다 노출된 이미지는 적정 노출된 이미지보다 더 밝고 카메라의 루미넌스 범위의 상단 근방에 모여 있는 루미넌스값을 가진다. 짧은 노출 시간으로 촬영되는 과소 노출된 이미지는 평균보다 더 어둡고 카메라의 루미넌스 범위의 하단 근방에 모여 있는 루미넌스값을 가진다. 적정 노출로 촬영된 이미지는 카메라의 루미넌스 범위의 중간 근방에 모여 있는 루미넌스값을 가진다. 상이한 노출의 상이한 레벨의 밝기로 인해, 감마 보정은 상이한 노출로 되어 있는 대응하는 물체의 상대 밝기를 상이한 방식으로 변경할 수 있다. 상이한 노출로 되어 있는 물체의 상대 밝기를 변경하는 것은 이미지들을 합성한 결과에 영향을 미친다.
그에 따라, 이미지들을 값이 노출 시간의 선형 함수인 형식으로 되돌리기 위해, 일부 실시예는 루미넌스(Y) 이미지를 발생하기 위해 이미지들의 루마(Y') 성분의 감마 보정을 거꾸로 행한다. 어떤 이러한 실시예는 루미넌스 이미지에 대한 연산을 수행하고, 이어서 루마(Y') 성분을 갖는 최종 이미지를 생성하기 위해 그 연산 후에 새로운 감마 보정을 적용한다. 일부 실시예에서, 합성 동안 역감마 보정이 수행된다. 어떤 이러한 실시예는 수학식 7a를 사용하기보다는 하기의 수학식 7b를 사용하여 합성 이미지를 발생한다.
[수학식 7b]
Figure pct00008
수학식 7b는, 루마값 Lb[x,y], Ln[x,y], 및 Lu[x,y]이 (1/γ) 제곱되는 것을 제외하고는, 수학식 7a와 거의 동일하다. 그리고 Lc[x,y] 값은 루마값보다는 루미넌스값이다. 일부 실시예에서, 모바일 장치는 감마(γ) 제곱된 캡처된 이미지의 루미넌스값에 기초하는 루마값을 제공한다(일부 실시예에서, 감마는 1/2.2임). 일부 실시예의 모바일 장치는 감마의 값을 제공된 이미지의 메타데이터로서 제공한다. 일부 이러한 실시예에서, 제공된 감마는 이미지들이 합성되고 있는 동안 원본 루미넌스값을 재생성하기 위해 수학식 7b에서 사용된다. 다른 이러한 실시예는 이미지들을 합성하기 전에 역감마 보정을 수행하고 합성 동작과 별개의 동작에서 발생된 루미넌스값에 대해 수학식 7a를 사용한다.
이와 유사하게, 상기 수학식들이 루마 이미지로부터 발생된 마스크와 관련하여 기술되어 있지만, 기술 분야의 당업자라면 일부 실시예의 마스크가 다른 형식으로 된 이미지로부터 발생된다는 것을 잘 알 것이다. 예를 들어, 일부 실시예에서, 루마 버전보다는 이미지들 중 하나 이상의 이미지의 루미넌스 버전으로부터 마스크가 발생된다. 일부 실시예에서, 마스크를 발생하는 데 사용되는 이미지의 유형(예컨대, 루마 또는 루미넌스)은 합성물을 발생하는 데 사용되는 이미지의 유형과 동일하다. 다른 실시예에서, 마스크를 발생하는 데 사용되는 이미지의 유형(예컨대, 루마 또는 루미넌스)은 합성물을 발생하는 데 사용되는 이미지의 유형과 상이하다.
수학식 7a 또는 수학식 7b를 사용하여 합성 이미지를 발생하기 위해, 일부 실시예에서, 과다 노출된 이미지의 스케일링 인자(Eb)가 노출 시간의 실제 비로부터 조절된다. 일부 실시예는 어두운 부분을 증강시키도록 과다 노출된 이미지의 스케일링 인자(Eb)를 조절하기 위해 하기의 수학식을 사용한다.
[수학식 8]
Figure pct00009
수학식 8에서, Eb는 과다 노출된 이미지에 대한 스케일링 인자이고; En은 적정 노출된 이미지에 대한 스케일링 인자이다. Er은 적정 노출된 이미지의 노출 시간 대 과다 노출된 이미지의 노출 시간의 비이다(예컨대, 과다 노출된 이미지가 적정 노출된 이미지보다 4배의 노출 기간을 가지는 경우 1/4임). Ts는 임계값 인자이다. 일부 실시예에서, Ts는 0.4로 설정된다. N은 (0부터 1까지의 루마 스케일에서) 중간 루마이다. 일부 실시예에서, N에 대해 중간 루마 대신에 중간 루미넌스가 사용된다.
일부 실시예에서, 수학식 7a 또는 수학식 7b가 수행되었으면, 계산된 합성 이미지가 정규화에 의해 특정의 범위(예컨대, 0 내지 1 또는 0 내지 255)에 다시 매핑(예컨대, 리스케일링)된다.
[수학식 9a]
Figure pct00010
수학식 9a에서, 첫번째 Lc[x,y]는 정규화 이후의 합성 이미지(1340)에서의 좌표 [x,y]에 있는 픽셀의 루마이고, 두번째 Lc[x,y]는 정규화 이전의 합성 이미지에서의 좌표 [x,y]에 있는 픽셀의 루마이며, max(Lc)는 정규화 이전의 합성 이미지에서의 임의의 픽셀의 최대 루마값이고, Ec는 범위를 지정하는 스케일링 인자이다. 일부 실시예는 가장 높은 가능한 픽셀값(1 * Eu임)에 의해 정규화를 행한다. 이것은 EV0와 비교하여 HDR 이미지의 과도한 밝기(over brightness)를 변경하는 것을 피하기 위해 행해진다.
일부 실시예는 max(Lc)보다는 상이한 정규화 인자를 적용한다. 수학식 9b는 합성 이미지를 정규화하는 대안의 수학식을 제공한다.
[수학식 9b]
Figure pct00011
수학식 9a에서, 첫번째 Lc[x,y]는 정규화 이후의 합성 이미지(1340)에서의 좌표 [x,y]에 있는 픽셀의 루마이고, 두번째 Lc[x,y]는 정규화 이전의 합성 이미지에서의 좌표 [x,y]에 있는 픽셀의 루마이며, En/Eb는 과다 노출된 이미지의 노출에 대한 노출 스케일링 인자이고(예컨대, 과다 노출된 이미지가 적정 노출의 노출 시간의 4배를 갖는 경우, En/Eb=4임), Ec는 범위를 지정하는 스케일링 인자이다. 일부 실시예에서, Ec는 1로 설정되고, 다른 실시예에서, Ec는 1.2로 설정되며, 다른 실시예에서, Ec는 다른 값으로 설정된다.
일부 실시예에서, 캡처 동작은 수학식 9a 또는 수학식 9b의 리스케일링 이후에 종료한다. 이러한 실시예에서, 프로세스(1200)가 합성 루마 이미지(1340)의 가우시안 블러링된 합성물(1350) 버전을 발생할 때 렌더링 동작이 이어서 시작된다(1230). 개개의 마스크의 가우시안 블러(Gaussian blur)를 생성하는 이유와 유사한 이유로 가우시안 블러링된 합성물(1350)이 생성된다. 가우시안 블러링된 합성물(1350)은 프로세스(1200)의 다른 부분에서 다른 이미지를 조절하는 가중치로서 사용되고, 블러링은 그 주변에 있는 픽셀들과 아주 다른 값을 갖는 픽셀의 (최종 이미지에 대한) 효과를 강화한다. 가우시안 블러는 수학식 5 및 수학식 6의 마스크 블러링과 유사한 프로세스에 의해 발생된다.
[수학식 10]
Figure pct00012
수학식 10에서, G[x,y]는 가우시안 블러링된 합성물(1350)을 나타낸다. Lc[x,y]는 합성 이미지(1340)의 (x,y)에 있는 픽셀의 루마를 나타낸다. 필터는 필터 k를 사용하는 2D 필터 연산이다. 항목 k는 2D 가우시안 필터이다. 일부 실시예에서, 7x7 또는 9x9 필터는 3의 픽셀 분산에서 사용된다. 일부 실시예에서, 수학식 5 및 수학식 6에서 마스크를 블러링하기 위해 동일한 필터 및 커널이 사용되고, 다른 실시예에서, 수학식 10에서 가우시안 블러링된 이미지를 블러링하기 위해, 상이한 필터 및/또는 커널이 사용된다.
마스크에서와 마찬가지로, k의 값이 크면 후광 효과가 클 수 있지만, k의 값이 작으면 일정 영역 내에서 콘트라스트의 손실이 생길 수 있다. 블러링은 가우시안 블러링된 합성물(1350)이, 개개의 픽셀의 밝기에 기초하여 가중하기보다는, 픽셀이 속해 있는 영역의 밝기에 기초하여 가중할 것이다. 일부 실시예에서, 영역에 기초하여 가중하는 것은 다수의 범위(어두운, 중간 및/또는 밝은)로부터의 픽셀을 가지는 영역 내에서 콘트라스트를 향상시킨다.
가우시안 블러링된 합성물(1350)이 발생되면, 프로세스(1200)는 밝은 부분-감쇠된 이미지(highlight-attenuated image)(1360A) 및 어두운 부분-증강된 이미지(shadow-boosted image)(1360B)를 발생한다(1240). 어두운 부분-증강된 이미지(1360B)는 이미지의 어두운 영역에서 확장된 범위의 광 레벨을 포함하고 밝은 영역에서 축소된 범위의 광 레벨을 포함한다. 환언하면, 어두운 영역에서, 어두운 부분-증강된 이미지에서 루마값 사이의 차이가 확장된다. 예를 들어, 0.02의 루마를 갖는 합성 이미지(1340)에서의 픽셀은 0.14의 어두운 부분-증강된 이미지에서의 픽셀로 변환될 수 있고, 0.03의 루마를 갖는 합성 이미지(1340)에서의 픽셀은 0.19의 어두운 부분-증강된 이미지에서의 픽셀로 변환될 수 있다. 각각의 경우에, 픽셀의 루마값의 크기가 증가되지만, 보다 중요한 것은 루마값의 크기의 차이가 증가한다는 것이다. 보다 밝은 영역에 있는 픽셀에 대해, 픽셀에 대한 루마값의 크기도 역시 증가하지만, 2개의 픽셀의 루마값의 크기 간의 차이는 감소한다. 환언하면, 어두운 부분 증강은 범위 전체에 걸쳐 밝기 값을 증가시키지만, 범위의 하단에서, 이웃하는 값들 사이의 증가가 범위의 상단에서보다 더 많다(즉, 어두운 영역의 밝기의 증가가 밝은 영역의 밝기의 증가보다 많다).
이와 유사하게, 밝은 부분-감쇠된 이미지(1360A)는 합성 이미지(1340)의 보다 밝은 픽셀에 대한 루마의 범위를 확장시키고 보다 어두운 픽셀에 대한 루마의 범위를 축소시킨다. 환언하면, 밝은 부분 감쇠는 범위 전체에 걸쳐 밝기 값을 감소시키지만, 범위의 상단에서, 이웃하는 값들 사이의 감소가 범위의 하단에서보다 더 많다(즉, 밝은 영역의 밝기의 감소가 어두운 영역의 밝기의 감소보다 많다).
일부 실시예에서, 어두운 부분-증강된 이미지(1360B)가 하기의 수학식에 의해 발생된다:
[수학식 11]
Figure pct00013
수학식 11에서, Ls[x,y]는 어두운 부분-증강된 이미지(1360B)에서의 좌표 [x,y]에 있는 픽셀의 루마값이다. G[x,y]는 가우시안 블러링된 합성물(1350)에서의 좌표 [x,y]에 있는 픽셀의 값이다. Bs는 스케일링 인자이다. 일부 실시예에서, Bs는 0.83이다. 다른 실시예에서, 다른 값들이 사용된다.
일부 실시예에서, 밝은 부분-감쇠된 이미지(1360A)가 하기의 수학식에 의해 발생된다:
[수학식 12]
Figure pct00014
수학식 12에서, Lh[x,y]는 밝은 부분-감쇠된 이미지(1360A)에서의 좌표 [x,y]에 있는 픽셀의 루마값이다. G[x,y]는 가우시안 블러링된 합성물(1350)에서의 좌표 [x,y]에 있는 픽셀의 값이다. Bs는 스케일링 인자이다. 일부 실시예에서, Bs는 0.7이다. 다른 실시예에서, 스케일링 인자에 대해 다른 값들이 사용된다.
프로세스(1200)는 합성 이미지(1370)를 생성하기 위해 어두운 부분-증강된 이미지(1360B)와 밝은 부분-감쇠된 이미지(1360A)를 합성한다(1250). 일부 실시예의 합성 이미지(1370)는 하기의 수학식을 사용하여 발생된다:
[수학식 13]
Figure pct00015
수학식 13에서, Lc[x,y]는 합성 이미지(1370)에서의 좌표 [x,y]에 있는 픽셀의 루마값이다. Lh[x,y]는 밝은 부분-감쇠된 이미지(1360A)에서의 좌표 [x,y]에 있는 픽셀의 루마값이다. G[x,y]는 가우시안 블러링된 합성물(1350)에서의 좌표 [x,y]에 있는 픽셀의 값이다. Ls[x,y]는 어두운 부분-증강된 이미지(1360B)에서의 좌표 [x,y]에 있는 픽셀의 루마값이다. 수학식 13에서 가중되는 바와 같이, 어두운 부분-증강된 이미지(1360B) 및 밝은 부분-감쇠된 이미지(1360A)의 결합은 이미지의 밝은 영역과 어두운 영역 둘 다에서의 세부사항을 강조하는 순 효과를 가진다. 일부 실시예에서, 어두운 부분-증강된 이미지(1360B) 및 밝은 부분-감쇠된 이미지(1360A)를 합성하는 것의 일부로서, 허용된 범위의 상단보다 더 큰 루마를 가지는 임의의 픽셀이 허용된 범위의 상단으로 감소된다(예컨대, 0부터 1까지의 범위에서 1.1의 루마는 1의 루마로 떨어질 것이다).
일부 실시예는 이 지점에서 루마값을 증강시키는 것과 감쇠시키는 것을 중단하고 계속하여 동작(1260)으로 이동한다. 그렇지만, 일부 실시예에서, 이미지들(1360A, 1360B)을 합성하는 것은 또한 중간톤 픽셀의 증강을 포함한다. 어떤 이러한 실시예는 중간톤을 증강시키기 위해 하기의 식을 구현한다:
[수학식 14]
Figure pct00016
수학식 14에서, 첫번째 Lc[x,y]는 중간톤 픽셀의 증강 이후의 합성 이미지(1370)에서의 좌표 [x,y]에 있는 픽셀의 루마이다. 두번째 Lc[x,y]는 중간톤 픽셀의 증강 이전의 합성 이미지에서의 좌표 [x,y]에 있는 픽셀의 루마이다. G[x,y]는 가우시안 블러링된 합성물(1350)에서의 좌표 [x,y]에 있는 픽셀의 값이다. Bm은 증강 곡선(boost curve)을 결정하는 스케일링 인자이다. 일부 실시예는 중간톤을 증강시키기 위해 다른 수학식을 사용한다. 앞서 언급한 바와 같이, 일부 실시예는 중간톤을 증강시키지 않는다.
합성 루마 이미지(1340)(예컨대, 수학식 7a를 사용함)보다는 합성 루미넌스 이미지(1340)(에컨대, 수학식 7b를 사용함)를 발생하는 일부 실시예에서, 어두운 부분-증강된 이미지(1360B), 밝은 부분-감쇠된 이미지(1360A) 및 합성 이미지(1370)는 루마 이미지보다는 루미넌스 이미지이다. 즉, 이미지들(1360A 및 1360B 및 1370) 모두는 루미넌스 이미지인데, 그 이유는 루마 이미지(1340)보다는 루미넌스 이미지(1340)로부터 (직접 또는 간접적으로) 발생되기 때문이다. 일부 이러한 실시예에서, 루미넌스 이미지(1370)는 감마 보정[예컨대, 이미지(1370)의 루미넌스값을 감마 제곱하는 것]에 의해 루마 이미지(1370)로 변환된다. 일부 실시예의 모바일 장치는 루미넌스 이미지(1370)를 루마 이미지(1370)로 변환하는 데 사용되는 감마값을 제공한다. 일부 실시예에서, 감마값은 1/2.2이다.
다양한 합성 프로세스로부터, 이용가능한 값 범위의 한 작은 영역에 모여 있는 루마값을 갖는 이미지가 얻어질 수 있다. 예를 들어, 이미지는 거의 모두가 이용가능한 스케일의 50%보다 더 어두운 픽셀들을 가질 수 있거나, 거의 모두가 이용가능한 스케일의 50%보다 더 밝은 픽셀을 가질 수 있다. 이용가능한 스케일을 이용하도록 이미지에서의 루마값의 범위를 증가시키기 위해, 일부 실시예의 프로세스(1200)는 적정 노출된 원본 루마 이미지(1320B)의 대략적인 루마 분포로 되돌리기 위해 루마 버전의 합성 이미지(1370)에 대해 히스토그램 확장을 적용한다(1260). 히스토그램 확장은 합성 이미지(1370)의 루마의 히스토그램을 발생하고 이미지(1370)에 대한 0.5 백분위수와 99.5 백분위수 사이의 루마의 범위를 결정한다. 프로세스는 이어서 적정 노출된 루마 이미지(1320B)의 픽셀들에 대해 동일한 결정을 한다. 프로세스는 이어서 합성 이미지(1370)의 픽셀들에 하기의 수학식을 적용한다:
[수학식 15]
Figure pct00017
수학식 15에서, Lf[x,y]는 최종 합성 이미지(1380)에서의 좌표 [x,y]에 있는 픽셀의 루마이다. Lc[x,y]는 합성 이미지(1370)에서의 좌표 [x,y]에 있는 픽셀의 루마이다. L1은 합성 이미지(1370)에서의 픽셀들의 99.5%보다 더 어둑한 루마값이다. H1은 합성 이미지(1370)에서의 픽셀들의 99.5%보다 더 밝은 루마값이다. L2는 적정 노출된 루마 이미지(1320B)에서의 픽셀들의 99.5%보다 더 어둑한 루마값이다. H2는 적정 노출된 루마 이미지(1320B)에서의 픽셀들의 99.5%보다 더 밝은 루마값이다. 일부 실시예에서, 백분위수가 상이할 수 있다.
이 히스토그램 확장은 적정 노출된 루마 이미지(1320B)와 동일한 전체 조명 범위를 사진에 제공한다. 백분위수 컷오프의 이유는 이상치 루마(outlying luma)를 갖는 임의의 픽셀이 적정 노출된 원본 루마 이미지(1320B)와 비교하여 너무 축소된 또는 너무 넓은 범위를 갖는 이미지를 만드는 것을 방지한다. 일부 실시예는 이어서 이용가능한 범위의 상단 초과의 루마값을 갖는 픽셀들의 루마값을 범위의 상단값으로 변경한다. 일부 실시예는 이용가능한 범위의 하단 미만의 루마값을 갖는 픽셀들의 루마값을 범위의 하단값으로 변경한다.
일부 실시예는 이용가능한 루마의 전체 범위를 이용하기 위해 루마값을 임의의 범위(예컨대, 전체 이용가능 범위)로 확장한다. 예를 들어, 일부 실시예는, 적정 노출된 원본 루마 이미지(1320B)가 좁은 범위의 루마를 가질 때, 루마를 전체 범위로 확장한다. 히스토그램 확장 후에, 프로세스(1200)가 이어서 종료된다.
히스토그램 확장에 대한 상기 설명은 히스토그램을 루마 합성 이미지(1370)에 적용하는 실시예를 기술하고 있다. 그렇지만, 일부 실시예에서, 히스토그램 확장이 루미넌스 합성 이미지(1370)에 적용되고, 루마 버전의 합성 이미지(1380)를 생성하기 위해 감마 보정이 루미넌스 버전의 최종 합성 이미지(1380)에 적용된다.
C. 크로마 채널 이미지들의 합성
루마, 청색-크로마, 적색-크로마(Y'CbCr) 형식 또는 루미넌스, 청색-크로마, 적색-크로마(YCbCr) 형식으로 된 이미지들은 컬러 정보를 전달하는 크로미넌스 성분(Cb 및 Cr)을 가진다. 프로세스(1200)는 이들 형식으로 된 이미지의 루마(또는 루미넌스) 성분을 합성하지만, 일부 실시예는 루마 성분의 합성과 별도로 이미지들(1310A 내지 1310C)의 크로미넌스 채널 이미지들을 합성한다. 일부 실시예에서, 루마 이미지들을 합성하는 데 사용되는 동일한 마스크가 크로미넌스 이미지들을 합성하는 데 사용된다. 도 14는 크로마 채널 이미지들을 합성하는 일부 실시예의 프로세스(1400)를 나타낸 것이다. 도 14는 도 15와 관련하여 기술될 것이다. 도 15는 일부 실시예에서 크로마 채널 이미지들을 합성하는 것의 일례를 나타낸 것이다. 도 15는 과소 노출된 크로마 채널 이미지(1520A), 적정 노출된 크로마 채널 이미지(1520B), 과다 노출된 크로마 채널 이미지(1520C), 합성 크로마 채널 이미지(1530), 및 루마 합성으로부터 가져오기된 데이터(1540)를 포함하고 있다. 과소 노출된 크로마 채널 이미지(1520A)는 이미지(1310A)로부터 크로마값(예컨대, Cr 및 Cb)을 포함한다. 적정 노출된 크로마 채널 이미지(1520B)는 이미지(1310B)로부터 크로마값(예컨대, Cr 및 Cb)을 포함한다. 과다 노출된 크로마 채널 이미지(1520C)는 이미지(1310C)로부터 크로마값(예컨대, Cr 및 Cb)을 포함한다. 일부 실시예에서, 크로마 채널 이미지(Cb 및 Cr)의 각각의 세트는 그에 대해 수행되는 동일한 동작을 가진다. 일부 실시예의 합성 크로마 이미지(1530)는 또한 2개의 크로마 데이터 채널을 포함한다. 기술 분야의 당업자라면, 어떤 이러한 실시예에서, 합성 프로세스가 각각의 크로마 채널에 대해 별도로 수행된다는 것을 잘 알 것이다. 그렇지만, 명확함을 위해, 크로마 합성 프로세스에 대한 이하의 설명은 때때로 "합성 이미지의 한 채널의 픽셀들"보다는 "합성 이미지의 픽셀들"을 언급하고 있다.
과다 노출, 과소 노출 및 적정 노출 마스크[예컨대, 루마 합성 프로세스(1200) 동안 발생되는 마스크]를 수신하는 것(1410)으로 프로세스(1400)가 시작된다. 도 15에서, 가져오기된 데이터(1540)는 이들 마스크를 포함한다. 일부 실시예에서, 이러한 마스크는 루마 합성 프로세스에서 마스크의 사본이라기보다는 프로세스(1400)에 대해 별도로 발생된다. 일부 실시예에서, 크로마 합성에 대해 루마 합성과 상이한 마스크가 사용된다. 예를 들어, 일부 실시예에서, 크로마 합성에 대한 마스크는 최종 루마 합성 이미지로부터 발생된다. 일부 실시예는 적정 노출된 루마 이미지로부터 하나의 마스크 세트를 발생하고 개개의 루마 이미지로부터 다른 마스크 세트를 발생하며, 상이한 유형의 이미지 성분을 합성하기 위해 각각의 세트를 사용한다(예컨대, 한 세트는 루마에 대한 것이고 다른 세트는 크로마에 대한 것임).
마스크가 수신(또는 발생)된 후에, 프로세스(1400)는 마스크[예컨대, 마스크(1330A 내지 1330C)]로부터 합성 이미지의 하나의 크로마 채널을 발생하고 크로마 이미지들(1520A 내지 1520C)의 하나의 채널(즉, Cb 또는 Cr 중 하나)을 발생한다(1420). 일부 실시예에서, 크로마 이미지(1520A 내지 1520C)의 채널은 하기의 수학식을 사용하여 합성된다:
[수학식 16]
Figure pct00018
수학식 16에서, Cc[x,y]는 합성 크로마 채널 이미지(1530)(도 15)에서의 좌표 [x,y]에 있는 픽셀의 크로마값이다. Cb[x,y]는 과다 노출된(밝은) 크로마 채널 이미지(1520C)에서의 좌표 [x,y]에 있는 픽셀의 크로마값이다. Cn[x,y] 및 Cu[x,y]는, 각각, 적정 크로마 채널 이미지(1520B) 및 과소 노출된 크로마 채널 이미지(1520A)에 대한 크로마값이다. Eb는 과다 노출된 크로마 채널 이미지(1520C)의 노출에 대한 노출 스케일링 인자이다. En 및 Eu는, 각각, 적정 크로마 채널 이미지(1520B) 및 과소 노출된 크로마 채널 이미지(1520A)에 대한 노출 스케일링 인자이다. Mb[x,y]는 좌표 [x,y]에서의 과다 노출 마스크(1330C)의 값을 나타낸다. Mn[x,y] 및 Mu[x,y]는, 각각, 적정 노출 마스크(1330B) 및 과소 노출 마스크(1330A)에 대한 값을 나타낸다. 마스크(1330C)에서의 픽셀의 값은 과다 노출된 크로마 채널 이미지(1520C)에서의 대응하는 픽셀이 합성 크로마에 얼마나 영향을 미치는지를 결정한다. 마스크(1330B)에서의 픽셀의 값은 적정 크로마 채널 이미지(1520B)에서의 대응하는 픽셀이 합성 크로마에 얼마나 영향을 미치는지를 결정한다. 마스크(1330A)에서의 픽셀의 값은 과소 노출된 크로마 채널 이미지(1520A)에서의 대응하는 픽셀이 합성 크로마에 얼마나 영향을 미치는지를 결정한다. 각각의 마스크(1330A 내지 1330C)에서, 보다 높은 값은 보다 많은 효과를 의미한다. 루마 이미지과 동일한 마스크를 사용함으로써, 크로마 조절은 크로마 채널 이미지(1520A 내지 1520C)에서의 각각의 픽셀의 컬러 데이터가 루마 이미지에서의 각각의 픽셀에 대한 대응하는 루마 데이터와 정합하도록 해준다. 예를 들어, 과다 노출된 루마 이미지(1320C)에서의 대응하는 픽셀로부터의 루마값의 62%를 가지는 특정의 픽셀은 또한 과다 노출된 크로마 채널 이미지(1520C)의 대응하는 픽셀로부터의 크로마값의 62%를 가질 것이다.
프로세스(1400)는 가우시안 블러링된 마스크를 수신한다(1430). 일부 실시예에서, 이것은 루마 합성 이미지(1340)로부터 발생된 동일한 가우시안 블러링된 합성물(1350)의 사본이다. 기술 분야의 당업자라면 가우시안 블러링된 합성물(1350)이 또한 프로세스(1400)에서 보다 이른 시점 또는 보다 늦은 시점에서 수신될 수 있다는 것을 잘 알 것이다. 프로세스(1400)는, 수학식 15에서 보는 바와 같은 히스토그램 확장 값[예컨대, (H2-L2)/(H1-L1)]을 수신한다(1440). 일부 실시예에서, 이 값은, 프로세스(1200) 동안 저장되고 프로세스(1400) 동안 수신되기 보다는, 프로세스(1400) 동안 독립적으로 계산된다.
프로세스(1400)는 이어서 합성 크로마를 조절(1450)하기 위해 가우시안 블러링된 합성물(1350) 및 히스토그램 확장 값을 사용한다. 일부 실시예에서, 이 조절은 또한 합성 크로마 이미지를 포화 인자와 곱하는 것을 수반한다. 일부 실시예는 사전 프로그램된 포화 인자를 제공한다. 일부 실시예에서, 사전 프로그램된 포화 인자에 부가하여 또는 그 대신에, 사용자 조정가능 포화 인자가 제공된다. 또 다른 실시예에서, 크로마 이미지 조절은 수학식 17 내지 수학식 19에 의해 결정된다:
[수학식 17]
Figure pct00019
일부 실시예에서, 수학식 17에서의 포화 인자 F[x,y]는 이하의 수학식 19에 나타낸 바와 같이 좌표 [x,y]에 있는 픽셀의 크로마를 조절하는 데 사용된다. L1은 합성 이미지(1370)(도 13a 또는 도 13b)에서의 픽셀들의 99.5%보다 더 어둑한 루마값이다. H1은 합성 이미지(1370)에서의 픽셀들의 99.5%보다 더 밝은 루마값이다. L2는 적정 노출된 루마 이미지(1320B)에서의 픽셀들의 99.5%보다 더 어둑한 루마값이다. H2는 적정 노출된 루마 이미지(1320B)에서의 픽셀들의 99.5%보다 더 밝은 루마값이다. X는 다른 실시예에서 상이한 포화 인자(예컨대, 1.2)이고, 일부 실시예에서, (사용자 또는 모바일 장치에 의해) 변경될 수 있다. 일부 실시예에서, 히스토그램 확장 인자를 계산하는 데 사용되는 백분위수는 앞서 제시된 것과 상이할 수 있다. G[x,y]는 가우시안 블러링된 합성물(1350)에서의 좌표 [x,y]에 있는 픽셀의 값이다. 인자 G*(1-G)는 G=0.5일 때 최대로 되고 G=1 또는 G=0일 때 최소로 된다. 그에 따라, 가우시안 블러링된 합성물(1350)을 이러한 방식으로 사용하는 것은 밝은 픽셀 또는 어두운 픽셀을 가지는 이미지의 그 부분의 크로마값보다 더 큰 중간톤 루마를 가지는 이미지의 그 부분의 크로마값을 증강시킨다. 중간톤 픽셀의 컬러를 증강시키는 것은 컬러를 균일하게 증강시키는 것과 상이한 최종 이미지를 제공한다.
일부 실시예에서, 크로마값을 하기의 수학식을 사용하여 발생된 정규화 인자로 나눔으로써 합성 크로마가 정규화된다(1460).
[수학식 18]
Figure pct00020
일부 실시예에서, 수학식 18에서의 정규화 인자 N[x,y]는 수학식 19에 나타낸 바와 같이 좌표 [x,y]에 있는 픽셀의 크로마를 조절하는 데 사용된다. Eb는 과다 노출된 크로마 채널 이미지(1520C)에 대한 노출 스케일링 인자이다. En 및 Eu는, 각각, 적정 크로마 채널 이미지(1520B) 및 과소 노출된 크로마 채널 이미지(1520A)에 대한 노출 스케일링 인자이다. Mb[x,y]는 좌표 [x,y]에서의 과다 노출 마스크(1330C)의 값을 나타낸다. Mn[x,y] 및 Mu[x,y]는, 각각, 적정 노출 마스크(1330B) 및 과소 노출 마스크(1330A)의 값을 나타낸다.
그에 따라, 일부 실시예에서, 최종 합성 크로마 채널 이미지(1530)가 하기의 수학식에 의해 결정된다:
[수학식 19]
Figure pct00021
수학식 19에서, Cf[x,y]는 (포화 후의) 합성 크로마 채널 이미지(1530)에서의 좌표 [x,y]에 있는 픽셀의 크로마값이다. N[x,y]은 합성 크로마 이미지의 크로마값을 나누는 데 사용되는 정규화 인자(예컨대, 수학식 18로부터의 정규화 인자)이다. Cc[x,y]는 합성 크로마 채널 이미지(1530)에서의 좌표 [x,y]에 있는 픽셀의 크로마값이다. F[x,y]은 좌표 [x,y]에 있는 픽셀의 크로마와 곱하는 데 사용되는 포화 인자(예컨대, 수학식 17로부터의 포화 인자)이다. 이들 조절을 하는 실시예에서, 조절은 최종 합성 크로마 채널 이미지(1530)를 생성한다. 기술 분야의 당업자라면 수학식 19를 사용하는 일부 실시예가 수학식 17 및 수학식 18로부터의 상이한 수학식을 사용하여 F[x,y] 또는 N[x,y]를 계산한다는 것을 잘 알 것이다.
프로세스(1400)는 이어서 합성할 다른 크로마 채널 이미지가 있는지를 판정한다(1470). 합성할 다른 크로마 채널이 있는 경우[예컨대, 프로세스(1400)가 Cr 크로마 이미지가 아니라 Cb 크로마 이미지를 합성하는 것을 완료한 경우, 프로세스는 Cr 크로마 이미지를 조절할 것임], 프로세스(1400)는 새로운 크로마 채널 이미지에 마스크를 적용하기 위해 동작(1420)으로 되돌아간다. 일부 실시예에서, 하나의 크로마 채널 이미지에 대해 동작(1420 내지 1460)을 수행하고 이어서 다른 크로마 채널 이미지에 대해 동작(1420 내지 1460)을 수행하기보다는, 각각의 크로마 채널 이미지에 대해 개개의 동작이 차례로 수행된다. 일부 실시예에서, 모든 크로마 채널에 대해 프로세스(1400)가 수행된다.
상기 크로마 관련 수학식들이 이미지의 대응하는 루마(또는 루미넌스) 성분과 동일한 해상도를 가지는 이미지의 크로마 성분의 합성을 나타내고 있지만, 기술 분야의 당업자라면, 일부 실시예에서, 이미지의 크로마 성분이 이미지의 루마(또는 루미넌스) 성분과 상이한 해상도를 갖는다는 것을 잘 알 것이다. 일부 이러한 실시예에서, 해상도에서의 차이를 고려하기 위해 마스크가 조절된다. 예를 들어, 일부 실시예는 이미지의 크로마 성분에서의 각각의 픽셀이 이미지의 루마/루미넌스 성분에서의 2개의 수평 인접 픽셀에 대응하는 4:2:2 형식을 이용한다. 일부 실시예의 마스크가 이미지의 루마/루미넌스 성분과 동일한 해상도를 갖기 때문에, 이미지의 크로마 성분에서의 각각의 픽셀은 대응하는 마스크에서의 2개의 수평 인접 픽셀에 대응한다. 일부 이러한 실시예에서, 이미지의 크로마 픽셀의 값이 대응하는 마스크에서의 대응하는 수평 인접 픽셀 쌍의 평균값에 의해 가중된다. 다른 이러한 실시예에서, 크로마 픽셀의 값이 마스크에서의 대응하는 수평 인접 픽셀 쌍 중 하나 또는 다른 하나의 값(예컨대, 쌍의 최좌측 픽셀의 값)에 의해 가중된다. 이와 유사하게, 일부 실시예는 4:2:0 형식을 사용하며, 여기서 각각의 크로마 픽셀은 루마/루미넌스 성분에서의(그리고 마스크에서의) 2x2 정사각형의 픽셀들에 대응한다. 일부 이러한 실시예에서, 크로마 픽셀의 값이 마스크에서의 대응하는 4개의 픽셀의 평균값에 의해 가중된다. 다른 이러한 실시예에서, 크로마 픽셀의 값이 마스크에서의 대응하는 4개의 픽셀들 중 하나의 값(예컨대, 4개 중 좌측 상부 픽셀의 값)에 의해 가중된다. 다른 대안으로서, 일부 실시예에서, 마스크의 해상도에서 크로마 성분들의 합성이 수행되어, 합성 루마/루미넌스 성분과 동일한 해상도를 갖는 합성 크로마 성분을 발생한다. 일부 이러한 실시예에서, 합성 크로마 성분은 어떤 시점에서 원본 크로마 성분의 해상도로 다시 변환된다.
일부 실시예의 합성 모듈은 최종 루마 이미지(1380)(도 13a 또는 도 13b)와 최종 합성 크로마 채널 이미지(1530)(도 15)의 각각의 채널과 결합하여, 최종 HDR 이미지를 생성한다. 다른 대안으로서, 일부 실시예에서, 합성 모듈은 최종 루마 이미지(1380) 및 최종 합성 크로마 채널 이미지(1530)를 RGB 형식(예컨대, sRGB)으로 변환하여 최종 HDR 이미지를 생성한다.
D. 노출 조건에 대한 조절
일부 실시예의 모바일 장치는 모바일 장치가 이미지를 촬영하고 있는 때의 국소 조명 조건을 고려하기 위해 적정 노출된 이미지의 노출 시간을 자동으로 조절한다. 일부 실시예에서, 노출 시간은 카메라의 CMOS 센서의 리프레시 사이의 시간이다. 모바일 장치는 적정 기간 노출의 노출 시간을 증가시킴으로써 보다 낮은 조명 조건을 보상한다. 일부 이러한 실시예에서, 모바일 장치는 또한 노출 기간에 관한 상한을 가진다. 일부 실시예에서, 과다 노출된 이미지에 대한 노출 기간은 적정 노출 기간의 배수(예컨대, 적정 노출 기간의 4배)이다. 낮은 조명 조건에서, 적정 노출의 기간의 증가 및 과다 노출된 이미지의 노출 시간에 대한 기본 승수(default multiplier)로 인해, 과다 노출된 이미지에 대한 노출 시간이 모바일 장치에 의해 허용되는 상한보다 더 길 수 있다. 이들 조건을 조절하기 위해, 일부 실시예는 과다 노출된 이미지에 대해 기본값보다 낮은 노출 승수(exposure multiplier)를 사용한다(예컨대, 4의 기본 승수보다는 2의 승수). 일부 실시예의 합성 프로세스는 그에 따라 스케일링 인자 Eb를 증가시킨다.
어떤 경우에, 적정 노출 기간이 허용된 노출 시간의 상한에 있거나 그 근방에 있을 정도로 조명이 어둑하다. 이러한 경우에, 과다 노출 기간이 강제로 적정 노출 기간과 동일한 길이(또는 거의 동일한 길이)보다 더 길지 않게 된다. 일부 실시예의 모바일 장치는 적정 노출된 이미지과 동일한 시간 동안(또는 거의 동일한 시간 동안) 과다 노출된 이미지를 촬영하고 어쨋든 합성을 수행한다. 기술 분야의 당업자라면, 적정 노출된 이미지 및 과다 노출된 이미지가 동일한 노출 기간으로 촬영되는 경우에, 이들 이미지를 적정 노출된 이미지 및 과다 노출된 이미지라고 하기보다는 2개의 적정 노출된 이미지라고 할 수 있다는 것을 잘 알 것이다.
적정 노출 기간이 모바일 장치의 최대 허용 노출인 경우, 일부 실시예는 최종 이미지에서의 잡음 레벨을 감소시키기 위해 동일한 노출 기간으로 촬영된 2개의 적정 노출된 이미지를 합성한다. 적정 노출 기간이 모바일 장치의 최대 허용 노출 근방에 있는 경우, 적정 노출된 이미지의 노출 기간보다 단지 약간 더 긴 노출 기간으로 과다 노출된 이미지가 촬영된다. 노출 기간의 비가 낮기 때문에, 이러한 경우에, 과다 노출된 이미지는 통상적인 경우에 그러한 만큼 다이나믹 레인지를 증가시키지 않는다. 그렇지만, 일부 실시예는, 다이나믹 레인지의 소폭 증가를 위해 및/또는 최종 이미지에서의 잡음 레벨을 감소시키기 위해, 과다 노출된 이미지과 적정 노출된 이미지를 합성한다.
노출 기간을 제한하는 실시예에서, 과다 노출 기간이 한도가 정해져 있을 때 스케일링 인자 Eb는 변경된 노출 시간의 비에 따라 증가된다. 동일한 또는 다른 실시예 중 일부에서, 모바일 장치는, 과다 노출된 이미지에 대한 보다 긴 노출 시간의 부족을 보상하기 위해, 과다 노출된 이미지를 촬영하는 동안 플래시를 사용하고 적정 노출된 이미지를 촬영하는 동안 플래시를 사용하지 않는다. 일부 실시예에서, 적정 노출 기간이 최대 노출 기간의 어떤 특정의 임계값 내에 있을 때 플래시가 사용된다. 예를 들어, 일부 실시예에서, 적정 노출 기간이 최대 노출 기간의 50% 초과일 때 플래시가 사용된다. 다른 실시예에서, 다른 퍼센트가 임계값으로서 사용된다. 일부 실시예에서, 적정 노출 기간이 임계값 초과일 때, 과다 노출 기간이 최대 노출 기간으로 설정되고 과다 노출 기간에 대해서는 플래시가 사용되지만, 적정 노출 기간 또는 과소 노출 기간에 대해서는 사용되지 않는다. 일부 실시예에서, 플래시가 사용되는 경우, 모바일 장치는 과다 노출된 이미지 및 적정 노출된 이미지를 캡처하고 합성하지만, 과소 노출된 이미지를 캡처하지 않고 및/또는 과소 노출된 이미지를 다른 2개의 이미지과 합성하지 않는다.
일부 실시예의 모바일 장치는 노출의 길이에 대한 하한을 가진다. 이러한 실시예에서, 밝은 조명 조건에서, 과소 노출된 이미지의 노출 시간에 대한 기본 승수로부터, 모바일 장치가 허용하는 하한보다 더 짧은 노출 시간이 얻어질 수 있다. 일부 이러한 실시예에서, 과소 노출된 이미지는 그렇지 않은 경우보다 더 높은 노출 승수(예컨대, 1/4의 기본 노출 승수보다는 1/2의 노출 승수)을 사용한다. 어떤 경우에, 적정 노출 시간이 허용된 노출 시간의 하한에 있을 정도로 조명이 밝다. 이러한 경우에, 최종 이미지에서의 잡음 레벨을 감소시키기 위해 적정 노출된 이미지과 동일한 시간 동안 과소 노출이 촬영되고(그 결과 2개의 적정 노출된 이미지가 얻어짐) 합성에서 사용된다. 일부 이러한 실시예에서, 스케일링 인자 Eu가 변경된 노출 시간의 비에 따라 감소된다.
본 명세서에 기술된 실시예들 중 다수에 대한 설명이 3개의 이미지(예컨대, 과소 노출된 이미지, 적정 노출된 이미지, 및 과다 노출된 이미지)를 촬영하고 합성하는 것을 언급하고 있지만, 기술 분야의 당업자라면, 다른 실시예에서, 다른 수의 이미지가 촬영되고 및/또는 합성될 수 있다는 것을 잘 알 것이다. 예를 들어, 일부 실시예는 3개의 이미지 대신에 2개의 이미지(예컨대, 과소 노출된 이미지 및 적정 노출된 이미지)를 합성한다.
게다가, 일부 실시예는 조명 조건에 따라 다른 수의 이미지를 촬영한다. 예를 들어, 어떤 이러한 실시예는, 모바일 장치가 어두운 영역 및 밝은 영역 둘 다를 갖는 장면의 이미지들을 캡처하고 있을 때에는 3개의 이미지를 합성하고, 어두운 영역을 거의 또는 전혀 갖지 않거나 밝은 영역을 거의 또는 전혀 갖지 않는 이미지들을 캡처하고 있을 때에는 2개의 이미지를 합성한다. 장면이 어두운 영역을 거의 또는 전혀 갖지 않을 때, 어떤 이러한 실시예는 적정 노출된 이미지 및 과소 노출된 이미지를 합성한다. 장면이 밝은 영역을 거의 또는 전혀 갖지 않을 때, 어떤 이러한 실시예는 적정 노출된 이미지 및 과소 노출된 이미지를 합성한다. 어떤 이러한 실시예는 장면이 밝은 영역을 거의 또는 전혀 갖지 않는지 어두운 영역을 거의 또는 전혀 갖지 않는지를 판정하기 위해 하나 이상의 이미지(예컨대, 미리보기 이미지)의 히스토그램을 사용한다. 밝은 영역 또는 어두운 영역이 작거나 존재하지 않을 때 2개의 이미지를 합성하는 일부 실시예가, 밝은 영역 및 어두운 영역 둘 다가 작거나 존재하지 않을 때(즉, 중간톤이 우세한 장면), 여전히 3개의 이미지를 사용한다. 다른 대안으로서, 캡처될 장면의 개개의 영역들의 품질에 기초하여 이미지들의 유형을 배제하기보다는, 일부 실시예는 특정의 총 광 레벨 초과의 장면을 캡처할 때 과다 노출된 이미지를 배제하고, 일부 실시예는 특정의 총 광 레벨 미만의 장면을 캡처할 때 과소 노출된 이미지를 배제한다.
상기 설명이 다수의 데이터 세트에 대한 "이미지" 또는 "이미지들"(예컨대, 가우시안 블러링된 이미지, 어두운 부분-증강된 이미지, 과다 노출된 이미지 등)이라는 용어를 포함하고 있지만, 기술 분야의 당업자라면, 일부 실시예에서, 이 "이미지들"에서의 데이터가 실시예를 실시하는 보통의 동안에 시각적 형태로 디스플레이되지 않는다는 것을 잘 알 것이다. 이러한 실시예에서, "이미지들"에서의 데이터는 궁극적으로 시각적 형태로 디스플레이되는 다른 데이터를 처리하고 조절하는 데 사용된다. 일부 실시예는 최종 생성물인 HDR 이미지만을 디스플레이한다. 그렇지만, 다른 실시예는 다른 이미지들 중 하나 이상은 물론 최종 HDR 이미지를 디스플레이한다.
하나의 플래시 조명된 이미지과 하나 이상의 플래시 조명되지 않은 이미지를 결합하는 실시예는 장치의 HDR 이미지 캡처 모드가 장치의 플래시 모드와 관련하여 동작할 수 있게 해준다. 그렇지만, 다른 실시예는 장치가 단지 플래시 모드 또는 HDR 모드 중 어느 하나에서만 동작할 수 있게 해준다. 그에 따라, 자동 플래시 모드가 활성화될 때, 이들 실시예는 HDR 이미지 캡처 모드를 비활성화시킨다.
E. 이미지 형식
앞서 기술한 실시예들 중 다수는 하나 이상의 이미지 형식의 관점에서 기술되어 있다. 기술 분야의 당업자라면 다른 실시예가 다른 형식으로 된 이미지를 제공하고 처리한다는 것을 잘 알 것이다. 일부 실시예에서, 컬러 이미지가 하나의 루마 채널 및 2개의 크로마 채널 등의 3개의 정보 채널로서 제공된다. 이 유형의 정보에 대해 사용되는 하나의 컬러 형식(color format)은 Y'CbCr(루마, 청색-크로마 및 적색-크로마) 컬러 형식이다. 일부 실시예의 모바일 장치의 카메라 기능은 Y'CbCr 형식으로 된 이미지를 자동으로 제공한다. 모바일 장치의 광 센서[예컨대, 전하 결합 소자(CCD)]는 각각의 센서에 도달하는 광의 강도를 측정하고 강도에 비례하는 루미넌스값(Y)을 발생한다. 모바일 장치는 카메라의 광 센서로부터 수신된 루미넌스 데이터를 취하고 루미넌스 데이터에 감마 보정을 적용(예컨대, 수학적으로 루미넌스값을 1/2.2 등의 어떤 멱수로 제곱)함으로써 이미지의 Y' 성분을 발생한다.
Y'CbCr 형식에서, 루마(Y') 채널은 이미지의 밝기 정보를 전달하고; Cb(때때로 외부 참조 문헌에 CB라고 기재되어 있음) 채널은 이미지의 청색값이 루마(Y') 값과 얼마나 다른지에 관한 정보를 전달하며; Cr(때때로 외부 참조 문헌에 CR라고 기재되어 있음) 채널은 이미지의 적색값이 루마(Y') 값과 얼마나 다른지에 관한 정보를 전달한다. 사실상, 루마 채널(Y')은 흑백(그리고 회색) 이미지를 제공하고, 크로마 채널(Cb 및 Cr)은 이미지에 컬러를 부가한다. 일부 실시예에서, Y'CbCr 값의 스케일은 임의적으로 변경될 수 있다. 본 명세서에 기술된 계산을 위해, 루마(Y')가 계산을 위해 최대 1 및 최소 0으로 스케일링되고, 크로마(Cb 및 Cr)는 -0.5부터 0.5까지 스케일링된다. 그렇지만, 일부 실시예의 범위 내에서 다른 스케일이 가능하다. 예를 들어, 일부 실시예에서, 루마(Y')는 0부터 255까지 스케일링된다. 다른 실시예는 루마를 16부터 235까지 스케일링하고 크로마를 16부터 240까지 스케일링한다. 일부 실시예에서, YUV 등의 다른 컬러 형식이 사용된다.
어떤 모바일 장치는 YCbCr 컬러 형식으로 직접 이미지를 캡처하고, 이어서 이미지를 RGB 이미지(예컨대, 표준 RGB)로 또는 Y'CbCr 이미지로 변환한다. 일부 실시예에서, 전술한 동작들이 Y'CbCr 형식으로 캡처된 이미지에 대해 수행된다(모바일 장치의 스케일로부터의 리스케일링을 필요로 함). 다른 실시예에서, 처음에 RGB 형식으로 수신되어 Y'CbCr로 변환된 이미지에 대해 동작들이 수행된다. 이하의 동작들 및 수학식들은 Y'CbCr 컬러 형식을 가정하지만, 다른 실시예는 다른 컬러 형식(예컨대, YUV 등)을 사용한다. 다른 컬러 형식을 갖는 일부 실시예에서, 동작들 및 수학식들이 그에 따라 조절된다. 이와 유사하게, 일부 실시예는 전술한 바와 같이 이미지들을 정렬하는 데 사용되는 데시메이션된 이미지 및 비트맵을 발생할 때 루마값보다는 루미넌스값을 사용한다.
앞서 기술한 프로세스들 및 수학식들이 특정의 이미지 형식과 관련하여 기술되어 있지만, 기술 분야의 당업자라면, 일부 실시예에서, 프로세스들 및 수학식들이 다른 이미지 형식에 대해 사용될 수 있다는 것을 잘 알 것이다. 예를 들어, 어떤 경우에, 상기 설명은 루마 데이터를 말하고 있고, 어떤 경우에, 상기 설명은 루미넌스 데이터를 말하고 있다. 그렇지만, 달리 언급하지 않는 한, 일부 실시예에서 루마값에 적용되는 것으로 본 명세서에 기술된 수학식들 및 프로세스들은 다른 실시예에서 루미넌스값에 적용되고, 그 반대도 마찬가지이다. 기술 분야의 당업자라면 루마 및 루미넌스가 이미지 강도 데이터에 대한 형식들 중 단지 2개의 일례에 불과하다는 것과 루미넌스 및 루마와 관련하여 본 명세서에 기술된 프로세스 및 수학식이, 일부 실시예에서, 강도 정보를 저장하는 다른 형식들에 적용될 수 있다는 것을 잘 알 것이다. 예를 들어, 일부 실시예는 상기한 동작들을 RGB 형식, sRGB 형식, R'G'B'(즉, 감마 보정된 RGB 형식), 또는 강도 데이터 및 컬러 데이터를 개별적인 성분으로서 제공하지 않는 다른 형식으로 된 이미지의 적색, 청색 및 녹색 성분에 대해 수행한다. 적색, 청색 및 녹색 성분에 대해 이러한 동작을 수행하는 일부 실시예는 앞서 기술한 것과 동일한 동작 또는 유사한 동작을 사용하여 감마 보정 형식과 비감마 보정된 형식 간에 변환을 한다.
이와 유사하게, 크로마 데이터에 적용되는 것으로 본 명세서에 기술된 수학식들 및 프로세스들이, 일부 실시예에서, 강도 데이터와 별도로 컬러 데이터를 저장하는 다른 형식들에 적용될 수 있다. 게
다가, 이상의 설명이 한 형식으로부터 다른 형식으로의(예컨대, 루마에서 루미넌스로 또는 RGB에서 루마로의) 변환이 일어날 수 있는 프로세스들의 어떤 특정의 부분을 지적하고 있지만, 기술 분야의 당업자라면 한 이미지 형식으로부터 다른 이미지 형식으로의 변환이, 일부 실시예에서, 프로세스들의 임의의 스테이지 또는 스테이지들에서 일어날 수 있다는 것을 잘 알 것이다.
VI. 모바일 장치
도 16은 일부 실시예의 모바일 컴퓨팅 장치(1600)의 일례이다. 모바일 컴퓨팅 장치의 구현은 하나 이상의 처리 유닛(1605), 메모리 인터페이스(1610), 및 주변 장치 인터페이스(1615)를 포함한다. 컴퓨팅 장치 아키텍처를 구성하는 이들 구성요소 각각은 개별적인 구성요소일 수 있거나, 하나 이상의 집적 회로에 통합되어 있을 수 있다. 이들 다양한 구성요소는 또한 하나 이상의 통신 버스 또는 신호 라인에 의해 서로 연결될 수 있다.
주변 장치 인터페이스(1615)는 카메라 서브시스템(1620), 무선 통신 서브시스템(들)(1625), 오디오 서브시스템(1630), I/O 서브시스템(1635) 등을 비롯한 다양한 센서 및 서브시스템에 연결되어 있다. 주변 장치 인터페이스(1615)는 프로세서와 주변 장치 사이의 통신을 가능하게 해준다. 배향 및 가속도 기능을 용이하게 해주기 위해 배향 센서(1645) 또는 가속도 센서(1650) 등의 주변 장치가 주변 장치 인터페이스(1615)에 연결될 수 있다.
카메라 서브시스템(1620)은 장치의 하나 이상의 카메라에 대한 하나 이상의 광 센서(1640)[예컨대, 전하 결합 소자(CCD), 광 센서, 상보적 금속 산화물 반도체(캡처 모듈) 광 센서]에 연결될 수 있다. 일부 실시예에서, 장치는 단지 하나의 카메라를 가지는 반면, 다른 실시예에서, 장치는 1개 초과(예컨대, 2개)의 카메라를 가진다. 일부 실시예에서, 장치는 장치의 다수의 측면에 카메라를 가진다(예컨대, 장치의 전방측에 있는 카메라 및 장치의 후방측에 있는 카메라). 센서와 결합된 카메라 서브시스템(1620)은 이미지 및/또는 비디오 데이터 캡처 등의 카메라 기능을 용이하게 해줄 수 있다. 무선 통신 서브시스템(1625)은 통신 기능을 용이하게 해주는 역할을 할 수 있다. 무선 통신 서브시스템(1625)은 무선 주파수 수신기 및 송신기 그리고는 광 수신기 및 송신기를 포함할 수 있다. 이들은 GSM 네트워크, Wi-Fi 네트워크, 블루투스 네트워크, 기타 등등의 하나 이상의 통신 네트워크를 통해 동작하도록 구현될 수 있다. 오디오 서브시스템(1630)은 음성 인식, 디지털 녹음(digital recording), 기타 등등의 음성 지원 기능들을 용이하게 해주기 위해 스피커(1631) 및 마이크(1632)에 연결되어 있다.
I/O 서브시스템(1635)은 주변 장치 인터페이스(1615)를 통한 디스플레이, 터치 스크린 등과 같은 입/출력 주변 장치와 CPU의 데이터 버스 사이의 전송을 포함한다. I/O 서브시스템(1635)은 이들 기능을 용이하게 해주기 위해 터치 스크린 제어기(1655) 및 다른 입력 제어기(1660)를 포함할 수 있다. 터치 스크린 제어기(1655)는 터치 스크린(1665)에 연결될 수 있고 다수의 터치 감도 기술 중 임의의 것을 사용하여 화면 상에서의 접촉 및 움직임을 검출할 수 있다. 다른 입력 제어기(1660)는 하나 이상의 버튼 등의 다른 입력/제어 장치에 연결될 수 있다.
메모리 인터페이스(1610)는 고속 랜덤 액세스 메모리 및/또는 플래시 메모리 등의 비휘발성 메모리를 포함할 수 있는 메모리(1670)에 연결될 수 있다. 메모리는 운영 체제(OS)(1672)를 저장할 수 있다. OS(1672)는, 기본 시스템 서비스를 처리하고 하드웨어 의존적 작업을 수행하는 명령어를 포함할 수 있다.
메모리는 또한 하나 이상의 부가의 장치와의 통신을 용이하게 해주는 통신 명령어(1674); 그래픽 사용자 인터페이스 처리를 용이하게 해주는 그래픽 사용자 인터페이스 명령어(1676); 이미지 관련 처리 및 기능을 용이하게 해주는 이미지 처리 명령어(1678); 전화 관련 프로세스 및 기능을 용이하게 해주는 전화 명령어(1680); 미디어 통신 및 처리 관련 프로세스 및 기능을 용이하게 해주는 미디어 교환 및 처리 명령어(1682); 카메라 관련 프로세스 및 기능을 용이하게 해주는 카메라 명령어(1684); 및 HDR 발생 프로세스 및 기능을 용이하게 해주는 HDR 이미지 발생 명령어(1686)를 포함할 수 있다. 앞서 언급한 명령어가 개별적인 소프트웨어 프로그램 또는 모듈로서 구현될 필요는 없다. 모바일 컴퓨팅 장치의 다양한 기능들이 하나 이상의 신호 처리 및/또는 ASIC(application specific integrated circuit)을 비롯하여 하드웨어로 및/또는 소프트웨어로 구현될 수 있다.
도 17은 터치 I/O 장치를 나타낸 것이다. 전술한 실시예는, 도 17에 도시된 바와 같이, 유선 또는 무선 통신 채널(1702)을 통해 컴퓨팅 시스템(1703)과 상호작용하기 위해 터치 입력을 수신할 수 있는 터치 I/O 장치(1701)를 포함할 수 있다. 터치 I/O 장치(1701)는 키보드, 마우스, 기타 등등의 다른 입력 장치 대신에 또는 그와 결합하여 컴퓨팅 시스템(1703)에 사용자 입력을 제공하는 데 사용될 수 있다. 하나 이상의 터치 I/O 장치(1701)는 컴퓨팅 시스템(1703)에 사용자 입력을 제공하는 데 사용될 수 있다. 터치 I/O 장치(1701)는 컴퓨팅 시스템(1703)의 일체화된 부분(예컨대, 랩톱 상의 터치 스크린)일 수 있거나, 컴퓨팅 시스템(1703)으로부터 분리되어 있을 수 있다.
터치 I/O 장치(1701)는 전체적으로 또는 부분적으로 투명이거나, 반투명이거나, 비투명이거나, 불투명이거나, 이들의 임의의 조합인 터치 감응 패널을 포함할 수 있다. 터치 I/O 장치(1701)는 터치 스크린, 터치 패드, 터치 패드로서 기능하는 터치 스크린(예컨대, 랩톱의 터치 패드를 대체하는 터치 스크린), 임의의 다른 입력 장치와 결합되거나 그와 함께 포함된 터치 스크린 또는 터치 패드(키보드 상에 배치된 터치 스크린 또는 터치 패드), 또는 터치 입력을 수신하는 터치 감응 표면을 갖는 임의의 다차원 객체로로서 구현될 수 있다.
한 일례에서, 터치 스크린으로서 구현된 터치 I/O 장치(1701)는 부분적으로 또는 전체적으로 디스플레이의 적어도 일부분 상에 배치된 투명한 및/또는 반투명한 터치 감응 패널을 포함할 수 있다. 이 실시예에 따르면, 터치 I/O 장치(1701)는 컴퓨팅 시스템(1703)(및/또는 다른 소스)으로부터 전송된 그래픽 데이터를 디스플레이하는 기능을 하고 또한 사용자 입력을 수신하는 기능도 한다. 다른 실시예에서, 터치 I/O 장치(1701)는 터치 감응 구성요소/장치가 디스플레이 구성요소/장치와 일체로 되어 있는 일체화된 터치 스크린으로서 구현될 수 있다. 또 다른 실시예에서, 터치 스크린은 보조 그래픽 데이터 또는 주 디스플레이와 동일한 그래픽 데이터를 디스플레이하고 터치 입력을 수신하는 보조 또는 부가 디스플레이 화면으로서 사용될 수 있다.
터치 I/O 장치(1701)는 용량적, 저항적, 광학적, 음향적, 유도적, 기계적, 화학적 측정, 또는 장치(1701)에 근접하여 하나 이상의 터치 또는 근방 터치의 발생과 관련하여 측정될 수 있는 임의의 현상에 기초하여 장치(1701) 상에서의 하나 이상의 터치의 위치 또는 근방 터치의 위치를 검출하도록 구성되어 있을 수 있다. 검출된 터치의 측정을 처리하여 하나 이상의 제스처를 식별 및 추적하기 위해 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합이 사용될 수 있다. 제스처는 터치 I/O 장치(1701) 상에서의 정적 또는 비정적, 단일 또는 다중 터치 또는 근방 터치에 대응할 수 있다. 본질적으로 동시에, 인접하여 또는 연속적으로 탭핑하는 것, 누르는 것, 흔드는 것, 문지르는 것, 비트는 것, 배향을 변경하는 것, 다양한 압력으로 누르는 것 등과 같은 터치 I/O 장치(1701) 상에서 특정의 방식으로 하나 이상의 손가락 또는 기타 객체를 움직임으로써 제스처가 수행될 수 있다. 제스처는 임의의 다른 손가락 또는 손가락들 사이에서 또는 그와 함께 꼬집는 움직임, 슬라이딩하는 움직임, 스와이프하는 움직임, 회전하는 움직임, 구부리는 움직임, 끄는 움직임 또는 탭핑하는 움직임(이들로 제한되지 않음)으로 특징지워질 수 있다. 하나 이상의 손에 의해, 한명 이상의 사용자에 의해, 또는 이들의 임의의 조합으로 단일 제스처가 수행될 수 있다.
컴퓨팅 시스템(1703)은 그래픽 사용자 인터페이스(GUI)를 디스플레이하기 위해 그래픽 데이터로 디스플레이를 구동할 수 있다. GUI는 터치 I/O 장치(1701)를 통해 터치 입력을 수신하도록 구성되어 있을 수 있다. 터치 스크린으로 구현되어 있는 경우, 터치 I/O 장치(1701)는 GUI를 디스플레이할 수 있다. 다른 대안으로서, GUI는 터치 I/O 장치(1701)와 분리되어 있는 디스플레이 상에 디스플레이될 수 있다. GUI는 인터페이스 내의 특정의 위치에 디스플레이되는 그래픽 요소를 포함할 수 있다. 그래픽 요소는 가상 스크롤 휠, 가상 키보드, 가상 노브, 가상 버튼, 임의의 가상 UI 등을 비롯한 각종의 디스플레이된 가상 입력 장치를 포함할 수 있지만, 이들로 제한되지 않는다. 사용자는 GUI의 그래픽 요소와 연관되어 있을 수 있는 터치 I/O 장치(1701) 상의 하나 이상의 특정의 위치에서 제스처를 수행할 수 있다. 다른 실시예에서, 사용자는 GUI의 그래픽 요소의 위치와 독립적인 하나 이상의 위치에서 제스처를 수행할 수 있다. 터치 I/O 장치(1701) 상에서 수행된 제스처는 GUI 내의 커서, 아이콘, 미디어 파일, 목록, 텍스트, 이미지의 전부 또는 일부분 등과 같은 그래픽 요소를 직접 또는 간접적으로 조작하거나, 제어하거나, 수정하거나, 이동하거나, 작동하거나, 개시하거나 일반적으로 그에 영향을 미칠 수 있다. 예를 들어, 터치 스크린의 경우에, 사용자는 터치 스크린 상의 그래픽 요소 상에서 제스처를 수행함으로써 그래픽 요소와 직접 상호작용할 수 있다. 다른 대안으로서, 터치 패드는 일반적으로 간접적인 상호작용을 제공한다. 제스처는 또한 디스플레이되지 않은 GUI 요소에도 영향을 미칠 수 있거나(예컨대, 사용자 인터페이스가 나타나게 함), 컴퓨팅 시스템(1703) 내의 다른 동작에 영향을 미칠 수 있다(예컨대, GUI 응용 프로그램 또는 운영 체제의 상태 또는 모드에 영향을 미칠 수 있음). 제스처는 디스플레이된 커서와 결합하여 터치 I/O 장치(1701) 상에서 수행되거나 수행되지 않을 수 있다. 예를 들어, 터치 패드 상에서 제스처가 수행되는 경우에, 커서(또는 포인터)가 디스플레이 화면 또는 터치 스크린 상에 디스플레이될 수 있고, 디스플레이 화면 상의 그래픽 객체와 상호작용하기 위해 커서가 터치 패드 상에서의 터치 입력을 통해 제어될 수 있다. 제스터가 터치 스크린 상에서 직접 수행되는 다른 실시예에서, 사용자는, 커서 또는 포인터가 터치 스크린 상에 디스플레이되거나 디스플레이되지 않은 상태에서, 터치 스크린 상의 객체와 직접 상호작용할 수 있다.
터치 I/O 장치(1701) 상에서의 터치 또는 근방 터치에 응답하여 또는 그에 기초하여 피드백이 통신 채널(1702)을 통해 사용자에게 제공될 수 있다. 피드백이 광학적으로, 기계적으로, 전기적으로, 후각적으로, 음향적으로, 기타로 또는 이들의 임의의 조합으로 그리고 가변적인 또는 비가변적인 방식으로 전송될 수 있다.
전술한 이들 기능은 디지털 전자 회로로, 컴퓨터 소프트웨어로, 펌웨어로 또는 하드웨어로 구현될 수 있다. 이들 기술이 하나 이상의 컴퓨터 프로그램 제품을 사용하여 구현될 수 있다. 프로그램가능 프로세서 및 컴퓨터가 모바일 장치에 포함되거나 모바일 장치로서 패키징될 수 있다. 하나 이상의 프로그램가능 프로세서에 의해 및 하나 이사의 프로그램가능 논리 회로에 의해 프로세스 및 논리 흐름이 수행될 수 있다. 범용 및 전용 컴퓨팅 장치 및 저장 장치가 통신 네트워크를 통해 상호연결될 수 있다.
일부 실시예는 마이크로프로세서, 머신 판독가능 또는 컴퓨터 판독가능 매체(다른 대안으로서, 컴퓨터 판독가능 저장 매체, 머신 판독가능 매체, 또는 머신 판독가능 저장 매체라고 함)에 컴퓨터 프로그램 명령어를 저장하는 저장 장치 및 메모리와 같은 전자 구성요소를 포함하고 있다. 이러한 컴퓨터 판독가능 매체의 어떤 일례는 RAM, ROM, CD-ROM(read-only compact disc), CD-R(recordable compact disc), CD-RW(rewritable compact disc), 판독 전용 DVD(read-only digital versatile disc)(예를 들어, DVD-ROM, 2층 DVD-ROM), 각종의 기록가능/재기록가능(recordable/rewritable) DVD(예를 들어, DVD-RAM, DVD-RW, DVD+RW 등), 플래시 메모리(예를 들어, SD 카드, 미니-SD 카드, 마이크로-SD 카드 등), 자기 및/또는 고상 하드 드라이브, 판독 전용 및 기록가능 블루레이? 디스크, 초밀도(ultra density) 광 디스크, 임의의 다른 광 또는 자기 매체, 및 플로피 디스크를 포함한다. 컴퓨터 판독가능 매체는 적어도 하나의 처리 유닛에 의해 실행될 수 있는 컴퓨터 프로그램을 저장할 수 있고, 다양한 동작을 수행하는 명령어 집합을 포함한다. 컴퓨터 프로그램 또는 컴퓨터 코드의 일례는 컴파일러에 의해 생성된 것과 같은 머신 코드, 및 인터프리터를 사용하여 컴퓨터, 전자 구성요소, 또는 마이크로프로세서에 의해 실행되는 상위 레벨 코드를 포함하는 파일을 포함한다.
상기 논의가 주로 소프트웨어를 실행하는 마이크로프로세서 또는 멀티-코어 프로세서를 참조하고 있지만, 일부 실시예는 ASIC(application specific integrated circuit) 또는 FPGA(field programmable gate array) 등의 하나 이상의 집적 회로에 의해 수행된다. 일부 실시예에서, 이러한 집적 회로는 회로 자체 상에 저장되어 있는 명령어를 실행한다.
본 출원의 본 명세서 및 임의의 청구항에서 사용되는 바와 같이, "컴퓨터", "서버", "프로세서", 및 "메모리"라는 용어 모두는 전자 또는 다른 기술 장치를 말한다. 이들 용어는 사람 또는 사람의 그룹을 제외한다. 본 명세서의 목적상, '디스플레이' 또는 '디스플레이하는'이라는 용어는 전자 장치 상에 디스플레이하는 것을 의미한다. 본 출원의 본 명세서 및 임의의 청구항에서 사용되는 바와 같이, "컴퓨터 판독가능 매체", "컴퓨터 판독가능 매체들", "머신 판독가능 매체" 또는 "머신 판독가능 매체들"이라는 용어는 컴퓨터, 컴퓨팅 장치, 또는 하나 이상의 처리 유닛을 갖는 다른 전자 장치에 의해 판독될 수 있는 형태로 정보를 저장하는 유형의 물리적 물체(tangible, physical object)로 전적으로 제한된다. 이들 용어는 임의의 무선 신호, 유선 다운로드 신호, 및 임의의 다른 사용후 삭제 신호(ephemeral signal)를 제외한다.
본 발명이 다수의 구체적인 상세를 참조하여 기술되어 있지만, 당업자라면 본 발명이 본 발명의 사상을 벗어나지 않고 다른 특정의 형태로 구현될 수 있다는 것을 잘 알 것이다. 예를 들어, 몇개의 실시예가 모바일 장치에 대해 앞서 기술되어 있지만, 기술 분야의 당업자라면, 다른 실시예에서, 장치가 데스크톱 컴퓨터 등의 비모바일 장치일 수 있다는 것을 잘 알 것이다.
그에 부가하여, 다수의 도면(도 4, 도 6, 도 7, 도 9, 도 10, 도 12, 및 도 14를 포함함)은 프로세스를 개념적으로 나타내고 있다. 이들 프로세스의 특정의 동작이 도시되고 기술된 바로 그 순서로 수행되지 않을 수 있다. 특정의 동작이 하나의 연속적인 일련의 동작으로서 수행되지 않을 수 있고, 다른 동작이 다른 실시예에서 수행될 수 있다. 게다가, 프로세스가 몇개의 서브프로세스를 사용하여 또는 더 큰 매크로 프로세스의 일부로서 구현될 수 있다. 또한, 순차적으로 나타나는 동작들이 인터레이스된 방식으로 수행될 수 있다. 따라서, 당업자라면 본 발명이 이상의 예시적인 상세에 의해 제한되어서는 안되고 첨부된 특허청구범위에 의해 한정되어야 한다는 것을 잘 알 것이다.

Claims (42)

  1. 이미지들을 캡처하는 장치의 비일시적(non-transitory) 머신 판독가능 매체로서,
    상기 매체는, 적어도 하나의 처리 유닛에 의해 실행되는 경우에 고 다이나믹 레인지(HDR: high dynamic range) 장면의 이미지를 캡처하는 프로그램을 저장하고,
    상기 프로그램은,
    상기 장치가 HDR 모드에 들어가면, 제1 노출 레벨에서 복수의 이미지들을 캡처하고 저장하기 위한 명령어들의 세트;
    상기 HDR 장면을 캡처하라는 명령을 수신하면, 제2 노출 레벨에서 제1 이미지를 캡처하며 제3 노출 레벨에서 제2 이미지를 캡처하기 위한 명령어들의 세트;
    상기 제1 노출 레벨에서 캡처된 복수의 이미지들 중에서 제3 이미지를 선택하기 위한 명령어들의 세트; 및
    상기 제1 이미지, 상기 제2 이미지 및 상기 제3 이미지를 합성하여 상기 HDR 장면의 합성 이미지를 생성하기 위한 명령어들의 세트
    를 포함하는 비일시적 머신 판독가능 매체.
  2. 제1항에 있어서, 상기 복수의 이미지들 중에서 제3 이미지를 선택하기 위한 명령어들의 세트는, 상기 복수의 이미지들 중에서, 상기 HDR 장면을 캡처하라는 명령을 수신하기 직전에 캡처된 이미지를 선택하기 위한 명령어들의 세트를 포함하는 비일시적 머신 판독가능 매체.
  3. 제1항에 있어서, 상기 복수의 이미지들 중에서 제3 이미지를 선택하기 위한 명령어들의 세트는, 상기 복수의 이미지들 중에서, (i) 상기 HDR 장면을 캡처하라는 명령을 수신하기 이전의 소정 기간 내에 캡처되며 (ii) 상기 장치가 임계량 미만만큼 이동한 동안에 캡처된 이미지를 선택하기 위한 명령어들의 세트를 포함하는 비일시적 머신 판독가능 매체.
  4. 제3항에 있어서, 상기 장치는, 복수의 상이한 순간들(instances in time)에 상기 장치의 움직임에 관련된 복수의 상이한 값들을 생성하는 회로를 가지며, 상기 임계량은 상기 회로에 의해 생성된 값들에 관련되는 비일시적 머신 판독가능 매체.
  5. 제3항에 있어서, 상기 장치는, 복수의 상이한 순간들에 상기 장치의 움직임에 관련된 복수의 상이한 값들을 생성하는 회로를 가지며,
    상기 이미지를 선택하기 위한 명령어들의 세트는,
    상기 회로에 의해 생성된 상기 복수의 값들 각각에 대해, 소정 순간에서의 상기 장치의 움직임을 표현하는 움직임 파라미터를 계산하기 위한 명령어들의 세트;
    상기 기간 내에 캡처된 이미지들 각각과 움직임 파라미터를 상관시키기 위한 명령어들의 세트; 및
    상기 기간 내에 캡처된 각각의 이미지의 움직임 파라미터와 상기 임계량의 비교에 기초하여, 상기 제3 이미지로서 상기 기간 내에 캡처된 하나의 이미지를 선택하기 위한 명령어들의 세트
    를 포함하는 비일시적 머신 판독가능 매체.
  6. 제1항에 있어서, 상기 복수의 이미지들 중에서 제3 이미지를 선택하기 위한 명령어들의 세트는, 상기 복수의 이미지들 중 가장 선명한 이미지를 선택하기 위한 명령어들의 세트를 포함하는 비일시적 머신 판독가능 매체.
  7. 제6항에 있어서, 상기 장치는, 복수의 상이한 순간들에 상기 장치의 움직임에 관련된 복수의 상이한 값들을 생성하는 회로를 가지며, 상기 복수의 이미지들 중 가장 선명한 이미지는, 상기 회로에 의해 생성된 값이 상기 장치가 가장 적게 이동했다는 것을 나타내는 순간에 캡처된 이미지인 비일시적 머신 판독가능 매체.
  8. 제6항에 있어서, 상기 프로그램은, 상기 제1 노출 레벨에서 캡처되어 저장된 소정 그룹의 이미지들 각각에 대해 디지털 신호 처리를 수행하기 위한 명령어들의 세트를 더 포함하며, 상기 복수의 이미지들 중 가장 선명한 이미지는 최고 주파수 성분(frequency content)을 갖는 이미지인 비일시적 머신 판독가능 매체.
  9. 제1항에 있어서, 상기 제1 노출 레벨은 적정 노출 레벨(normal exposure level)이고, 상기 제2 노출 레벨 및 상기 제3 노출 레벨 중 하나는 과소 노출 레벨(underexposed level)이며, 상기 제2 노출 레벨 및 상기 제3 노출 레벨 중 다른 하나는 과다 노출 레벨(overexposed level)인 비일시적 머신 판독가능 매체.
  10. 제1항에 있어서, 상기 제1 노출 레벨은 과다 노출 레벨이고, 상기 제2 노출 레벨 및 상기 제3 노출 레벨 중 하나는 적정 노출 레벨이며, 상기 제2 노출 레벨 및 상기 제3 노출 레벨 중 다른 하나는 과소 노출 레벨인 비일시적 머신 판독가능 매체.
  11. 제1항에 있어서, 상기 제1 노출 레벨은 과소 노출 레벨이고, 상기 제2 노출 레벨 및 상기 제3 노출 레벨 중 하나는 적정 노출 레벨이며, 상기 제2 노출 레벨 및 상기 제3 노출 레벨 중 다른 하나는 과다 노출 레벨인 비일시적 머신 판독가능 매체.
  12. 제1항에 있어서, 상기 프로그램은, 상기 장면의 조명 상태들을 캡처하기 위한 명령어들의 세트를 더 포함하며, 상기 노출 레벨들은 상기 캡처된 조명 상태들에 기초하는 비일시적 머신 판독가능 매체.
  13. 제12항에 있어서, 상기 프로그램은,
    상기 캡처된 조명 상태들로부터 상기 제1 노출 레벨을 계산하기 위한 명령어들의 세트; 및
    상기 제1 노출 레벨로부터 상기 제2 노출 레벨 및 상기 제3 노출 레벨을 계산하기 위한 명령어들의 세트
    를 더 포함하는 비일시적 머신 판독가능 매체.
  14. 제13항에 있어서, 상기 제2 노출 레벨은 상기 제1 노출 레벨의 제1 배수이며, 상기 제3 노출 레벨은 상기 제1 노출 레벨의 제2 배수인 비일시적 머신 판독가능 매체.
  15. 제14항에 있어서, 상기 프로그램은, 상기 복수의 이미지들 중 적어도 하나의 이미지의 적어도 하나의 히스토그램에 기초하여 상기 제1 배수 및 상기 제2 배수를 계산하기 위한 명령어들의 세트를 더 포함하는 비일시적 머신 판독가능 매체.
  16. 제13항에 있어서, 상기 조명 상태들을 캡처하기 위한 명령어들의 세트는, 상기 조명 상태들을 식별하기 위해서 상기 복수의 이미지들 중 적어도 하나의 이미지를 분석하기 위한 명령어들의 세트를 포함하는 비일시적 머신 판독가능 매체.
  17. 제13항에 있어서, 상기 조명 상태들을 캡처하기 위한 명령어들의 세트는, 상기 조명 상태들을 정량화하는 상기 장치의 회로에 의해 생성된 신호를 분석하기 위한 명령어들의 세트를 포함하는 비일시적 머신 판독가능 매체.
  18. 제1항에 있어서, 상기 복수의 이미지들을 캡처하고 저장하기 위한 명령어들의 세트는,
    HDR 캡처 명령을 수신하기 이전에 상기 장치의 저장 장치에 상기 복수의 이미지들 각각을 저장하기 위한 명령어들의 세트;
    상기 제2 노출 레벨 및 상기 제3 노출 레벨을 계산하기 위한 명령어들의 세트; 및
    상기 HDR 캡처 명령을 수신하면, 상기 제2 노출 레벨 및 상기 제3 노출 레벨에서 제2 이미지 및 제3 이미지를 캡처하는 모드에 들어가도록 상기 장치의 제어기에 통지하기 위한 명령어들의 세트
    를 포함하는 비일시적 머신 판독가능 매체.
  19. 이미지들을 캡처하는 장치의 비일시적 머신 판독가능 매체로서,
    상기 매체는, 적어도 하나의 처리 유닛에 의해 실행되는 경우에 고 다이나믹 레인지(HDR) 장면의 이미지를 캡처하는 프로그램을 저장하고,
    상기 프로그램은,
    HDR 모드에 들어가면, 제1 노출 레벨에서 복수의 이미지들을 캡처하며, 상기 장면 내의 조명 상태들을 검출하기 위해서 상기 이미지들을 분석하기 위한 명령어들의 세트;
    상기 HDR 장면을 캡처하라는 명령을 수신하면,
    제1 세트의 조명 상태들이 검출되는 경우에 제2 노출 레벨에서 제1 이미지만을 캡처하기 위한 명령어들의 세트;
    제2 세트의 조명 상태들이 검출되는 경우에 상기 제2 노출 레벨에서 상기 제1 이미지를 캡처하며 제3 노출 레벨에서 제2 이미지를 캡처하기 위한 명령어들의 세트 - 상기 제2 세트의 조명 상태들은 상기 제1 세트의 조명 상태들과 상이함 -;
    상기 제1 노출 레벨에서 캡처된 복수의 이미지들 중에서 제3 이미지를 선택하기 위한 명령어들의 세트;
    상기 HDR 장면의 제1 합성 이미지를 생성하기 위해서 상기 제1 세트의 조명 상태가 검출되는 경우에 상기 제1 이미지 및 상기 제3 이미지를 합성하기 위한 명령어들의 세트; 및
    상기 HDR 장면의 제2 합성 이미지를 생성하기 위해서 상기 제2 세트의 조명 상태들이 검출되는 경우에 상기 제1 이미지, 상기 제2 이미지 및 상기 제3 이미지를 합성하기 위한 명령어들의 세트
    를 포함하는 비일시적 머신 판독가능 매체.
  20. 제19항에 있어서, 상기 제1 노출 레벨은 적정 노출 레벨이고, 상기 제2 노출 레벨 및 상기 제3 노출 레벨 중 하나는 과소 노출 레벨이며, 상기 제2 노출 레벨 및 상기 제3 노출 레벨 중 다른 하나는 과다 노출 레벨인 비일시적 머신 판독가능 매체.
  21. 제19항에 있어서, 상기 제1 노출 레벨은 과다 노출 레벨이고, 상기 제2 노출 레벨 및 상기 제3 노출 레벨 중 하나는 적정 노출 레벨이며, 상기 제2 노출 레벨 및 상기 제3 노출 레벨 중 다른 하나는 과소 노출 레벨인 비일시적 머신 판독가능 매체.
  22. 제19항에 있어서, 상기 제1 노출 레벨은 과소 노출 레벨이고, 상기 제2 노출 레벨 및 상기 제3 노출 레벨 중 하나는 적정 노출 레벨이며, 상기 제2 노출 레벨 및 상기 제3 노출 레벨 중 다른 하나는 과다 노출 레벨인 비일시적 머신 판독가능 매체.
  23. 제19항에 있어서, 상기 복수의 이미지들을 분석하기 위한 명령어들의 세트는, 상기 검출된 조명 상태들로부터 적어도 하나의 노출 레벨을 계산하기 위한 명령어들의 세트를 포함하는 비일시적 머신 판독가능 매체.
  24. 제23항에 있어서, 상기 계산된 노출 레벨은 상기 제1 노출 레벨이며, 상기 프로그램은, 상기 제1 노출 레벨로부터 상기 제2 노출 레벨 및 상기 제3 노출 레벨을 계산하기 위한 명령어들의 세트를 더 포함하는 비일시적 머신 판독가능 매체.
  25. 제24항에 있어서, 제1 이미지 노출 레벨은 제3 이미지 노출 레벨의 제1 배수이며, 제2 이미지 노출 레벨은 상기 제3 이미지 노출 레벨의 제2 배수인 비일시적 머신 판독가능 매체.
  26. 제25항에 있어서, 상기 프로그램은, 상기 복수의 이미지들 중 적어도 하나의 이미지의 적어도 하나의 히스토그램에 기초하여 상기 제1 배수 및 상기 제2 배수를 계산하기 위한 명령어들의 세트를 더 포함하는 비일시적 머신 판독가능 매체.
  27. 제19항에 있어서, 상기 조명 상태들을 검출하기 위해서 상기 이미지들을 분석하기 위한 명령어들의 세트는, 상기 조명 상태들을 정량화하는 상기 장치의 회로에 의해 생성된 신호를 분석하기 위한 명령어들의 세트를 포함하는 비일시적 머신 판독가능 매체.
  28. 제19항에 있어서, 상기 복수의 이미지들을 캡처하기 위한 명령어들의 세트는,
    상기 제1 노출 레벨, 상기 제2 노출 레벨 및 상기 제3 노출 레벨을 계산하기 위한 명령어들의 세트; 및
    HDR 캡처 명령을 수신하면, 상기 제1 노출 레벨, 상기 제2 노출 레벨 및 상기 제3 노출 레벨 중 적어도 하나의 노출 레벨에서 적어도 하나의 이미지를 캡처하는 모드에 들어가도록 상기 장치의 제어기에 지시하기 위한 명령어들의 세트
    를 포함하는 비일시적 머신 판독가능 매체.
  29. 이미지들을 캡처하는 장치의 비일시적 머신 판독가능 매체로서,
    상기 매체는, 적어도 하나의 처리 유닛에 의해 실행되는 경우에 어두운 장면의 이미지를 캡처하는 프로그램을 저장하고,
    상기 프로그램은,
    이미지를 캡처하라는 명령을 수신하는 것에 응답하여,
    제1 노출 기간에 제1 이미지를 캡처하기 위한 명령어들의 세트;
    상기 제1 노출 기간이 특정 임계 기간보다 더 긴 경우에는, 상기 제1 노출 기간보다 더 긴 제2 노출 기간에 제2 이미지를 캡처하는 것과 동시에 플래시 광원을 이용하여 상기 장면을 조명하기 위한 명령어들의 세트;
    상기 제1 노출 기간이 상기 특정 임계 기간 미만인 경우에는, 상기 플래시 광원을 이용하지 않고 상기 제2 노출 기간에 상기 제2 이미지를 캡처하기 위한 명령어들의 세트; 및
    상기 제1 이미지 및 상기 제2 이미지를 합성하여 제3 합성 이미지를 생성하기 위한 명령어들의 세트
    를 포함하는 비일시적 머신 판독가능 매체.
  30. 제29항에 있어서, 상기 제3 합성 이미지는, 상기 플래시 광원이 조명된 상태에서 캡처된 상기 제2 이미지보다 더 높은 다이나믹 레인지를 갖는 비일시적 머신 판독가능 매체.
  31. 제29항에 있어서, 상기 제2 노출 기간은 상기 제1 노출 기간을 이용하여 계산되는 비일시적 머신 판독가능 매체.
  32. 제29항에 있어서, 상기 플래시 광원을 이용하여 상기 장면을 조명하기 위한 명령어들의 세트는, 상기 제1 노출 기간이 상기 임계 기간보다 더 긴 경우에만 상기 플래시 광원을 활성화하기 위한 명령어들의 세트를 포함하는 비일시적 머신 판독가능 매체.
  33. 제29항에 있어서, 상기 임계 기간은 상기 장치의 최대 노출 기간의 특정 부분(fraction)인 비일시적 머신 판독가능 매체.
  34. 제29항에 있어서, 상기 프로그램은,
    상기 제1 노출 기간의 배수로 상기 제2 노출 기간을 설정하기 위한 명령어들의 세트; 및
    상기 제1 노출 기간이 상기 임계 기간보다 더 긴 경우에 상기 배수를 감소시키기 위한 명령어들의 세트
    를 더 포함하는 비일시적 머신 판독가능 매체.
  35. 제29항에 있어서, 상기 이미지들을 합성하기 위한 명령어들의 세트는 상기 제1 이미지 및 상기 제2 이미지를 가중하기 위한 명령어들의 세트를 포함하며, 상기 제2 이미지는 상기 제1 이미지보다 덜 가중되는 비일시적 머신 판독가능 매체.
  36. 고 다이나믹 레인지(HDR) 장면의 이미지를 캡처하도록 장치를 동작시키는 방법으로서,
    상기 장치가 HDR 모드에 들어가면, 제1 노출 레벨에서 복수의 이미지들을 캡처하고 저장하는 단계;
    상기 HDR 장면을 캡처하라는 명령을 수신하면, 제2 노출 레벨에서 제1 이미지를 캡처하는 단계;
    상기 제1 노출 레벨에서 캡처된 복수의 이미지들 중에서 제2 이미지를 선택하는 단계; 및
    상기 HDR 장면의 합성 이미지를 생성하기 위해서 상기 제1 이미지 및 상기 제2 이미지를 합성하는 단계
    를 포함하는 방법.
  37. 제36항에 있어서, 상기 복수의 이미지들 중에서 제2 이미지를 선택하는 단계는, 소정 기준 세트에 기초하여 상기 복수의 이미지들 중에서 상기 제2 이미지를 선택하는 단계를 포함하는 방법.
  38. 제36항에 있어서,
    상기 장면 내의 조명 상태들을 결정하기 위해서 상기 캡처된 복수의 이미지들 중 적어도 하나의 이미지를 분석하는 단계; 및
    상기 HDR 장면을 캡처하라는 명령을 수신하면, (i) 제1 세트의 조명 상태들이 존재하는 것으로 결정되는 경우에는 제1 이미지만을 캡처하는 것, 및 (ii) 제2 세트의 조명 상태들이 존재하는 것으로 결정되는 경우에는 제3 노출 레벨에서 상기 제1 이미지 및 제3 이미지를 캡처하는 것 중 하나를 행하는 단계
    를 더 포함하며,
    상기 제1 이미지 및 상기 제2 이미지를 합성하는 단계는, 상기 제2 세트의 조명 상태들이 존재하는 경우에 상기 제1 이미지, 상기 제2 이미지 및 상기 제3 이미지를 합성하여 상기 합성 이미지를 생성하는 단계를 포함하는 방법.
  39. 낮은 조명 상태들에서 고 다이나믹 레인지(HDR) 장면의 이미지를 캡처하도록 장치를 동작시키는 방법으로서,
    HDR 모드에 들어가면, 제1 노출 레벨에서 복수의 이미지들을 캡처하고 저장하는 단계;
    상기 캡처된 복수의 이미지들 중 적어도 하나의 이미지를 분석하여, 상기 장치가 낮은 조명 상태들에서 동작하고 있는 것으로 결정하는 단계; 및
    HDR 장면을 캡처하라는 명령을 수신하며, 상기 장치가 낮은 조명 상태들에서 동작하고 있는 것으로 결정하면, 동일한 상기 제1 노출 레벨에서 제1 이미지를 캡처하고, 감소된 잡음을 갖는 합성 HDR 이미지를 생성하기 위해서 상기 캡처된 복수의 이미지들 중에서 동일한 상기 제1 노출 레벨에서 동일한 상기 장면을 캡처하는 제2 이미지 및 상기 제1 이미지를 합성하는 단계
    를 포함하는 방법.
  40. 제39항에 있어서, 상기 제2 이미지는 소정 기준 세트에 기초하여 상기 복수의 이미지들 중에서 선택되는 방법.
  41. 제39항에 있어서, 이미지를 캡처하라는 명령을 수신하면, 상기 제1 노출 레벨과 상이한 제2 노출 레벨에서 제3 이미지를 캡처하는 단계를 더 포함하며, 상기 제2 이미지 및 상기 제1 이미지를 합성하는 단계는, 상기 제1 이미지, 상기 제2 이미지 및 상기 제3 이미지를 합성하여 상기 합성 이미지를 생성하는 단계를 더 포함하는 방법.
  42. 제29항에 있어서, 상기 제1 이미지는 어떠한 플래시 광원도 이용하지 않고 캡처되는 비일시적 머신 판독가능 매체.
KR1020137002965A 2010-07-05 2011-07-01 고 다이나믹 레인지 이미지를 캡처하도록 장치를 동작시키는 방법 KR101433542B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US36151610P 2010-07-05 2010-07-05
US61/361,516 2010-07-05
US36152510P 2010-07-06 2010-07-06
US61/361,525 2010-07-06
US37893310P 2010-08-31 2010-08-31
US61/378,933 2010-08-31
US12/876,100 US8885978B2 (en) 2010-07-05 2010-09-03 Operating a device to capture high dynamic range images
US12/876,100 2010-09-03
PCT/US2011/042886 WO2012006253A1 (en) 2010-07-05 2011-07-01 Operating a device to capture high dynamic range images

Publications (2)

Publication Number Publication Date
KR20130033446A true KR20130033446A (ko) 2013-04-03
KR101433542B1 KR101433542B1 (ko) 2014-08-22

Family

ID=45399445

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020137002965A KR101433542B1 (ko) 2010-07-05 2011-07-01 고 다이나믹 레인지 이미지를 캡처하도록 장치를 동작시키는 방법
KR1020137002964A KR101428427B1 (ko) 2010-07-05 2011-07-01 고 다이나믹 레인지 이미지의 캡처 및 렌더링

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020137002964A KR101428427B1 (ko) 2010-07-05 2011-07-01 고 다이나믹 레인지 이미지의 캡처 및 렌더링

Country Status (6)

Country Link
US (6) US8760537B2 (ko)
JP (2) JP5530563B2 (ko)
KR (2) KR101433542B1 (ko)
CN (2) CN103069453B (ko)
DE (1) DE102011078662B4 (ko)
WO (3) WO2012006252A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022025457A1 (ko) * 2020-07-30 2022-02-03 삼성전자 주식회사 이미지를 처리하기 위한 전자 장치 및 그의 동작 방법

Families Citing this family (405)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US7978925B1 (en) 2005-04-16 2011-07-12 Apple Inc. Smoothing and/or locking operations in video editing
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US7912337B2 (en) 2005-11-02 2011-03-22 Apple Inc. Spatial and temporal alignment of video sequences
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US9633426B2 (en) 2014-05-30 2017-04-25 General Electric Company Remote visual inspection image capture system and method
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
JP5436367B2 (ja) * 2009-09-29 2014-03-05 富士フイルム株式会社 グラフィック配置決定方法ならびにそのプログラムおよび情報処理装置
KR20110052124A (ko) * 2009-11-12 2011-05-18 삼성전자주식회사 파노라마 이미지 생성 및 조회 방법과 이를 이용한 휴대 단말기
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
DE202011111062U1 (de) 2010-01-25 2019-02-19 Newvaluexchange Ltd. Vorrichtung und System für eine Digitalkonversationsmanagementplattform
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US8760537B2 (en) 2010-07-05 2014-06-24 Apple Inc. Capturing and rendering high dynamic range images
JP2012109900A (ja) * 2010-11-19 2012-06-07 Aof Imaging Technology Ltd 撮影装置、撮影方法、およびプログラム
US9900522B2 (en) * 2010-12-01 2018-02-20 Magna Electronics Inc. System and method of establishing a multi-camera image using pixel remapping
CN103053163A (zh) * 2010-12-16 2013-04-17 松下电器产业株式会社 图像生成装置、图像生成系统、方法及程序
DE102010055974A1 (de) * 2010-12-23 2012-06-28 Giesecke & Devrient Gmbh Verfahren und Vorrichtung zur Bestimmung eines Klassenreferenzdatensatzes für die Klassifizierung von Wertdokumenten
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
JP5655667B2 (ja) * 2011-03-31 2015-01-21 カシオ計算機株式会社 撮像装置及び撮像制御方法、画像処理装置及び画像処理方法、並びにプログラム
US8836816B2 (en) * 2011-05-19 2014-09-16 Foveon, Inc. Method of adjusting the brightness of a digital camera image
US8823745B2 (en) * 2011-06-02 2014-09-02 Yoostar Entertainment Group, Inc. Image processing based on depth information and color data of a scene
US8989492B2 (en) * 2011-06-03 2015-03-24 Apple Inc. Multi-resolution spatial feature extraction for automatic handwriting recognition
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
JP5787648B2 (ja) * 2011-07-11 2015-09-30 キヤノン株式会社 画像処理装置及び画像処理装置の制御方法
US20130044237A1 (en) * 2011-08-15 2013-02-21 Broadcom Corporation High Dynamic Range Video
GB201114591D0 (en) * 2011-08-23 2011-10-05 Tomtom Int Bv Methods of and apparatus for displaying map information
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US8781238B2 (en) * 2011-09-08 2014-07-15 Dolby Laboratories Licensing Corporation Efficient decoding and post-processing of high dynamic range images
CN103002195B (zh) * 2011-09-09 2016-03-30 中磊电子(苏州)有限公司 运动检测方法及运动检测装置
US8200020B1 (en) 2011-11-28 2012-06-12 Google Inc. Robust image alignment using block sums
JP5713885B2 (ja) * 2011-12-26 2015-05-07 キヤノン株式会社 画像処理装置及び画像処理方法、プログラム、並びに記憶媒体
JP6136086B2 (ja) 2011-12-28 2017-05-31 ソニー株式会社 撮像装置および画像処理装置
JP5798497B2 (ja) * 2012-01-20 2015-10-21 ルネサスエレクトロニクス株式会社 移動量検出装置、移動体検出装置及び移動量検出方法
US8965120B2 (en) * 2012-02-02 2015-02-24 Canon Kabushiki Kaisha Image processing apparatus and method of controlling the same
US9075975B2 (en) 2012-02-21 2015-07-07 Andrew Bud Online pseudonym verification and identity validation
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
JP5978949B2 (ja) * 2012-03-16 2016-08-24 富士通株式会社 画像合成装置及び画像合成用コンピュータプログラム
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9031319B2 (en) * 2012-05-31 2015-05-12 Apple Inc. Systems and methods for luma sharpening
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
TWI523500B (zh) * 2012-06-29 2016-02-21 私立淡江大學 影像的動態範圍壓縮方法與影像處理裝置
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9030571B2 (en) * 2012-07-11 2015-05-12 Google Inc. Abstract camera pipeline for uniform cross-device control of image capture and processing
US9676207B2 (en) * 2012-08-08 2017-06-13 Tabletop Media, LLC Printer control mechanism for a device having a mobile operating system
CN105787909B (zh) * 2012-08-08 2018-07-20 杜比实验室特许公司 用于高动态范围图像的图像处理
KR101207343B1 (ko) * 2012-08-30 2012-12-04 재단법인대구경북과학기술원 영상 밝기 조절 방법 및 그 장치와, 스테레오 카메라
US9154708B1 (en) * 2014-11-06 2015-10-06 Duelight Llc Image sensor apparatus and method for simultaneously capturing flash and ambient illuminated images
US9531961B2 (en) 2015-05-01 2016-12-27 Duelight Llc Systems and methods for generating a digital image using separate color and intensity data
US9918017B2 (en) 2012-09-04 2018-03-13 Duelight Llc Image sensor apparatus and method for obtaining multiple exposures with zero interframe time
US8446481B1 (en) 2012-09-11 2013-05-21 Google Inc. Interleaved capture for high dynamic range image acquisition and synthesis
TWI479362B (zh) * 2012-09-19 2015-04-01 Wistron Corp 雙模式遙控方法
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
FR2996034B1 (fr) * 2012-09-24 2015-11-20 Jacques Joffre Procede pour creer des images a gamme dynamique etendue en imagerie fixe et video, et dispositif d'imagerie implementant le procede.
US9846958B1 (en) 2012-10-04 2017-12-19 Aftershock Services, Inc. System and method for display object bitmap caching
TWI548284B (zh) * 2012-10-18 2016-09-01 鴻海精密工業股份有限公司 白平衡調整方法
KR101767094B1 (ko) * 2012-12-03 2017-08-31 한화테크윈 주식회사 영상 처리 장치 및 방법
US8866927B2 (en) 2012-12-13 2014-10-21 Google Inc. Determining an image capture payload burst structure based on a metering image capture sweep
US9087391B2 (en) 2012-12-13 2015-07-21 Google Inc. Determining an image capture payload burst structure
US9648248B2 (en) 2012-12-17 2017-05-09 Sony Corporation Methods, systems, and media for high dynamic range imaging
US8866928B2 (en) 2012-12-18 2014-10-21 Google Inc. Determining exposure times using split paxels
US9247152B2 (en) 2012-12-20 2016-01-26 Google Inc. Determining image alignment failure
US9307207B2 (en) * 2013-01-07 2016-04-05 GM Global Technology Operations LLC Glaring reduction for dynamic rearview mirror
US8995784B2 (en) 2013-01-17 2015-03-31 Google Inc. Structure descriptors for image processing
CN103973958B (zh) * 2013-01-30 2018-04-03 阿里巴巴集团控股有限公司 图像处理方法及设备
US9179071B2 (en) * 2013-02-01 2015-11-03 Htc Corporation Electronic device and image selection method thereof
US9686537B2 (en) * 2013-02-05 2017-06-20 Google Inc. Noise models for image processing
US20140218410A1 (en) * 2013-02-05 2014-08-07 Sirui Hu System And Method For Efficiently Generating Device-Dependent Anaglyph Images
DE212014000045U1 (de) 2013-02-07 2015-09-24 Apple Inc. Sprach-Trigger für einen digitalen Assistenten
US10477087B2 (en) 2017-11-16 2019-11-12 Duelight Llc System, method, and computer program for capturing a flash image based on ambient and flash metering
US9509919B2 (en) 2014-11-17 2016-11-29 Duelight Llc System and method for generating a digital image
US9807322B2 (en) 2013-03-15 2017-10-31 Duelight Llc Systems and methods for a digital image sensor
US10558848B2 (en) 2017-10-05 2020-02-11 Duelight Llc System, method, and computer program for capturing an image with correct skin tone exposure
US10088989B2 (en) 2014-11-18 2018-10-02 Duelight Llc System and method for computing operations based on a first and second user input
US9215433B2 (en) 2014-02-11 2015-12-15 Duelight Llc Systems and methods for digital photography
US9819849B1 (en) 2016-07-01 2017-11-14 Duelight Llc Systems and methods for capturing digital images
US9741150B2 (en) 2013-07-25 2017-08-22 Duelight Llc Systems and methods for displaying representative images
US9202129B2 (en) 2013-03-12 2015-12-01 Qualcomm Incorporated Reducing object detection time by utilizing space localization of features
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US8902328B2 (en) * 2013-03-14 2014-12-02 Konica Minolta Laboratory U.S.A., Inc. Method of selecting a subset from an image set for generating high dynamic range image
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US9117134B1 (en) 2013-03-19 2015-08-25 Google Inc. Image merging with blending
US9066017B2 (en) 2013-03-25 2015-06-23 Google Inc. Viewfinder display based on metering images
CN104125408B (zh) 2013-04-28 2018-06-12 比亚迪股份有限公司 一种高动态范围图像处理方法及装置
KR101805629B1 (ko) * 2013-05-07 2017-12-07 삼성전자주식회사 영상의 상태에 따라 적응적인 영상 처리를 위한 방법 및 장치
US9413992B2 (en) * 2013-05-20 2016-08-09 Omnivision Technologies, Inc. High dynamic range image sensor with full resolution recovery
US9131201B1 (en) 2013-05-24 2015-09-08 Google Inc. Color correcting virtual long exposures with true long exposures
US9077913B2 (en) 2013-05-24 2015-07-07 Google Inc. Simulating high dynamic range imaging with virtual long-exposure images
RU2536675C1 (ru) * 2013-05-27 2014-12-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Южно-Российский государственный университет экономики и сервиса" (ФГБОУ ВПО "ЮРГУЭС") Устройство объединения изображений в единую композицию сцены
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
JP6259911B2 (ja) 2013-06-09 2018-01-10 アップル インコーポレイテッド デジタルアシスタントの2つ以上のインスタンスにわたる会話持続を可能にするための機器、方法、及びグラフィカルユーザインタフェース
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
GB2520611B (en) 2013-08-02 2016-12-21 Anthropics Tech Ltd Image manipulation
TWI464526B (zh) * 2013-08-08 2014-12-11 Quanta Comp Inc 高動態範圍影像曝光時間控制方法
US9767521B2 (en) * 2013-08-30 2017-09-19 The Climate Corporation Agricultural spatial data processing systems and methods
US20150063694A1 (en) * 2013-08-30 2015-03-05 Qualcomm Incorporated Techniques for combining images with varying brightness degrees
US9615012B2 (en) 2013-09-30 2017-04-04 Google Inc. Using a second camera to adjust settings of first camera
US9460118B2 (en) 2014-09-30 2016-10-04 Duelight Llc System, method, and computer program product for exchanging images
US9565416B1 (en) 2013-09-30 2017-02-07 Google Inc. Depth-assisted focus in multi-camera systems
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
EP2887645A1 (en) * 2013-12-19 2015-06-24 Thomson Licensing Method and apparatus for acquiring a set of images illuminated by a flash
KR102209066B1 (ko) * 2014-01-17 2021-01-28 삼성전자주식회사 다수의 초점거리를 이용한 이미지 합성 방법 및 장치
US10057483B2 (en) * 2014-02-12 2018-08-21 Lg Electronics Inc. Mobile terminal and method thereof
CN104077759A (zh) * 2014-02-28 2014-10-01 西安电子科技大学 一种基于色觉感知及全局质量因子的多曝光度图像融合方法
US10554967B2 (en) * 2014-03-21 2020-02-04 Futurewei Technologies, Inc. Illumination compensation (IC) refinement based on positional pairings among pixels
US9544505B2 (en) * 2014-04-11 2017-01-10 Hanwha Techwin Co., Ltd. Image processing apparatus for synthesizing images based on a plurality of exposure time periods and image processing method thereof
EP2933999B1 (en) * 2014-04-14 2018-02-21 Alcatel Lucent Method and apparatus for obtaining an image with motion blur
US10222824B2 (en) * 2014-05-12 2019-03-05 Intel Corporation Dual display system
CN103973941B (zh) * 2014-05-14 2017-05-10 深圳市大疆创新科技有限公司 数码影像的动态对比度调整方法和系统
US10178329B2 (en) 2014-05-27 2019-01-08 Rambus Inc. Oversampled high dynamic-range image sensor
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9342871B2 (en) 2014-05-30 2016-05-17 Apple Inc. Scene motion correction in fused image systems
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
WO2015184186A1 (en) 2014-05-30 2015-12-03 Apple Inc. Multi-command single utterance input method
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9344636B2 (en) 2014-05-30 2016-05-17 Apple Inc. Scene motion correction in fused image systems
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
CN103997590B (zh) * 2014-06-13 2018-04-20 广州广电运通金融电子股份有限公司 一种图像校准方法及装置
JP6444073B2 (ja) * 2014-06-25 2018-12-26 キヤノン株式会社 画像処理装置
CN105323493B (zh) * 2014-06-25 2018-11-06 恒景科技股份有限公司 局部增强装置、多重曝光影像系统以及局部增强方法
US9979894B1 (en) * 2014-06-27 2018-05-22 Google Llc Modifying images with simulated light sources
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
KR102301231B1 (ko) * 2014-07-31 2021-09-13 삼성전자주식회사 영상 제공 방법 및 이를 위한 장치
WO2016017987A1 (en) 2014-07-31 2016-02-04 Samsung Electronics Co., Ltd. Method and device for providing image
US20160037043A1 (en) * 2014-08-01 2016-02-04 Omnivision Technologies, Inc. High dynamic range (hdr) images free of motion artifacts
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9613408B2 (en) * 2014-09-25 2017-04-04 Intel Corporation High dynamic range image composition using multiple images
CN104320576B (zh) * 2014-09-30 2018-11-13 百度在线网络技术(北京)有限公司 一种用于便携式终端的图像处理方法及图像处理装置
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10924688B2 (en) 2014-11-06 2021-02-16 Duelight Llc Image sensor apparatus and method for obtaining low-noise, high-speed captures of a photographic scene
US11463630B2 (en) 2014-11-07 2022-10-04 Duelight Llc Systems and methods for generating a high-dynamic range (HDR) pixel stream
US9998935B2 (en) * 2014-11-18 2018-06-12 Duelight Llc System and method for sharing data based on a combined bandwidth consumption
EP3123710B1 (en) * 2014-11-21 2018-08-08 SZ DJI Technology Co., Ltd. System and method of fast adaptive blending for high dynamic range imaging
US9378688B2 (en) * 2014-11-24 2016-06-28 Caterpillar Inc. System and method for controlling brightness in areas of a liquid crystal display
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9607366B1 (en) * 2014-12-19 2017-03-28 Amazon Technologies, Inc. Contextual HDR determination
US9430457B2 (en) 2014-12-24 2016-08-30 Xerox Corporation Ambiguity reduction for image alignment applications
US10410398B2 (en) * 2015-02-20 2019-09-10 Qualcomm Incorporated Systems and methods for reducing memory bandwidth using low quality tiles
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US10055672B2 (en) 2015-03-11 2018-08-21 Microsoft Technology Licensing, Llc Methods and systems for low-energy image classification
US10268886B2 (en) 2015-03-11 2019-04-23 Microsoft Technology Licensing, Llc Context-awareness through biased on-device image classifiers
JP6380986B2 (ja) * 2015-03-12 2018-08-29 富士フイルム株式会社 撮影装置および方法
CN104639845B (zh) * 2015-03-17 2017-12-26 上海兆芯集成电路有限公司 高动态范围图像产生方法以及使用该方法的装置
CN104683779B (zh) * 2015-03-17 2017-08-29 上海兆芯集成电路有限公司 自动白平衡补偿方法以及使用该方法的装置
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
TWI537875B (zh) * 2015-04-08 2016-06-11 大同大學 影像合成方法與影像處理裝置
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
AU2016252993B2 (en) 2015-04-23 2018-01-04 Apple Inc. Digital viewfinder user interface for multiple cameras
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
JP6390512B2 (ja) 2015-05-21 2018-09-19 株式会社デンソー 車載カメラ装置
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
JP6282303B2 (ja) 2015-05-29 2018-02-21 キヤノン株式会社 撮像素子および撮像装置
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10176553B2 (en) * 2015-06-26 2019-01-08 Sony Corporation Image processing system with three-dimensional viewing and method of operation thereof
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US9654699B2 (en) * 2015-07-02 2017-05-16 Omnivision Technologies, Inc. High dynamic range imaging with reduced frame buffer
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
CN105163047B (zh) * 2015-09-15 2018-11-06 厦门美图之家科技有限公司 一种基于色彩空间转换的hdr图像生成方法、系统及拍摄终端
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
CN105227856A (zh) * 2015-09-28 2016-01-06 广东欧珀移动通信有限公司 一种图像处理的方法及移动终端
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
CN106558034A (zh) * 2015-09-30 2017-04-05 北京奇虎科技有限公司 一种在移动设备中清理图像数据的方法和装置
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US9552626B1 (en) * 2015-10-07 2017-01-24 Adobe Systems Incorporated Digital image blemish removal
US9936151B2 (en) * 2015-10-16 2018-04-03 Capsovision Inc Single image sensor for capturing mixed structured-light images and regular images
KR102519288B1 (ko) * 2015-10-27 2023-04-07 삼성전자주식회사 콘텐츠 에코시스템에서 콘텐츠의 명암비 제어 장치 및 방법
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
CN105657244A (zh) * 2015-11-06 2016-06-08 乐视移动智能信息技术(北京)有限公司 防抖拍照方法、装置及移动终端
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
TWI546772B (zh) * 2015-11-18 2016-08-21 粉迷科技股份有限公司 影像疊層處理方法與系統
CN105450939A (zh) * 2015-11-19 2016-03-30 上海斐讯数据通信技术有限公司 一种高动态范围图像的显示方法及移动终端
KR102446442B1 (ko) 2015-11-24 2022-09-23 삼성전자주식회사 디지털 촬영 장치 및 그 동작 방법
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
CN105516696A (zh) * 2015-12-18 2016-04-20 广东欧珀移动通信有限公司 图像传感器、成像方法、成像装置和电子装置
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
JP6762714B2 (ja) * 2015-12-28 2020-09-30 ブリルニクス インク 固体撮像装置およびその駆動方法、電子機器
US10264196B2 (en) 2016-02-12 2019-04-16 Contrast, Inc. Systems and methods for HDR video capture with a mobile device
US10257393B2 (en) 2016-02-12 2019-04-09 Contrast, Inc. Devices and methods for high dynamic range video
US9864925B2 (en) 2016-02-15 2018-01-09 Ebay Inc. Digital image presentation
CN105744159B (zh) * 2016-02-15 2019-05-24 努比亚技术有限公司 一种图像合成方法及装置
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US10281378B2 (en) * 2016-05-05 2019-05-07 Honeywell Federal Manufacturing & Technologies, Llc System and method for testing true stress and true strain
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
CN105959591A (zh) * 2016-05-30 2016-09-21 广东欧珀移动通信有限公司 局部hdr的实现方法及系统
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
WO2017213685A1 (en) * 2016-06-08 2017-12-14 Google Llc Generating a composite image from a physical item
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US10009536B2 (en) 2016-06-12 2018-06-26 Apple Inc. Applying a simulated optical effect based on data received from multiple camera sensors
KR102603426B1 (ko) 2016-06-27 2023-11-20 삼성전자주식회사 이미지 처리장치 및 방법
US10070109B2 (en) * 2016-06-30 2018-09-04 Apple Inc. Highlight recovery in images
JP6791962B2 (ja) * 2016-07-01 2020-11-25 マクセル株式会社 撮像装置
CN109416830A (zh) * 2016-07-08 2019-03-01 深圳市大疆创新科技有限公司 用于图像处理的系统和方法
WO2018031441A1 (en) 2016-08-09 2018-02-15 Contrast, Inc. Real-time hdr video for vehicle control
CN106204513B (zh) * 2016-08-15 2019-07-05 厦门美图之家科技有限公司 图像处理的方法、装置和系统
JP6762806B2 (ja) * 2016-08-26 2020-09-30 キヤノン株式会社 撮像装置及びその制御方法、プログラム、記憶媒体
US10097766B2 (en) 2016-08-31 2018-10-09 Microsoft Technology Licensing, Llc Provision of exposure times for a multi-exposure image
CN114449163A (zh) 2016-09-01 2022-05-06 迪尤莱特公司 基于焦点目标信息调整焦点的装置和方法
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US9916644B1 (en) * 2016-09-09 2018-03-13 Omnivision Technologies, Inc. Ghost artifact removal system and method
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10070098B2 (en) * 2016-10-06 2018-09-04 Intel Corporation Method and system of adjusting video quality based on viewer distance to a display
US10565966B2 (en) * 2016-10-06 2020-02-18 Arm Limited Display controllers
US10284761B2 (en) * 2016-11-17 2019-05-07 Motorola Mobility Llc Multi-camera capture of a high dynamic range image
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
KR20180078961A (ko) * 2016-12-30 2018-07-10 삼성전자주식회사 이미지 촬상 장치 및 이의 구동 방법
US10250794B2 (en) 2017-01-04 2019-04-02 Motorola Mobility Llc Capturing an image using multi-camera automatic focus
CN106709888B (zh) * 2017-01-09 2019-09-24 电子科技大学 一种基于人眼视觉模型的高动态范围图像产生方法
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US10169671B2 (en) 2017-02-17 2019-01-01 Motorola Mobility Llc Face detection with temperature and distance validation
US10057499B1 (en) 2017-02-21 2018-08-21 Motorola Mobility Llc Automatic exposure control convergence procedure by auxiliary camera
US10706512B2 (en) * 2017-03-07 2020-07-07 Adobe Inc. Preserving color in image brightness adjustment for exposure fusion
US10250795B2 (en) 2017-03-15 2019-04-02 Motorola Mobility Llc Identifying a focus point in a scene utilizing a plurality of cameras
US10158797B2 (en) * 2017-03-31 2018-12-18 Motorola Mobility Llc Combining images when a face is present
JP6887853B2 (ja) * 2017-04-03 2021-06-16 キヤノン株式会社 撮像装置、その制御方法、プログラム
US10122943B1 (en) 2017-05-05 2018-11-06 Motorola Mobility Llc High dynamic range sensor resolution using multiple image sensors
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
DK180859B1 (en) 2017-06-04 2022-05-23 Apple Inc USER INTERFACE CAMERA EFFECTS
CN109035181B (zh) * 2017-06-08 2022-02-08 小元感知(北京)科技有限公司 一种基于图像平均亮度的宽动态范围图像处理方法
WO2018223882A1 (en) 2017-06-08 2018-12-13 Zhejiang Dahua Technology Co., Ltd. Methods and devices for processing images of traffic light
US10863105B1 (en) * 2017-06-27 2020-12-08 Amazon Technologies, Inc. High dynamic range imaging for event detection and inventory management
CN107343130B (zh) * 2017-08-17 2019-07-05 中国人民解放军国防科技大学 一种基于dmd动态分光的高动态成像模块
JP7057079B2 (ja) * 2017-09-01 2022-04-19 キヤノン株式会社 画像処理装置、撮像装置、画像処理方法、及びプログラム
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
CN107820022A (zh) * 2017-10-30 2018-03-20 维沃移动通信有限公司 一种拍照方法及移动终端
CN107864317B (zh) * 2017-11-07 2020-03-13 西北核技术研究所 一种基于衰减掩膜的瞬态成像动态范围扩展方法
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
KR102650217B1 (ko) * 2017-12-07 2024-03-21 삼성전자주식회사 이미지를 제공하기 위한 방법 및 이를 지원하는 전자 장치
WO2019118319A1 (en) * 2017-12-15 2019-06-20 Gopro, Inc. High dynamic range processing on spherical images
US10757320B2 (en) 2017-12-28 2020-08-25 Waymo Llc Multiple operating modes to expand dynamic range
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US11112964B2 (en) 2018-02-09 2021-09-07 Apple Inc. Media capture lock affordance for graphical user interface
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
WO2019209694A1 (en) * 2018-04-23 2019-10-31 Wrapped Llc High-resolution animated raster artwork for display
US10554902B2 (en) * 2018-05-01 2020-02-04 Hanwha Techwin Co., Ltd. Apparatus and method for processing images
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US11722764B2 (en) 2018-05-07 2023-08-08 Apple Inc. Creative camera
US10375313B1 (en) 2018-05-07 2019-08-06 Apple Inc. Creative camera
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
CN108665510B (zh) * 2018-05-14 2022-02-08 Oppo广东移动通信有限公司 连拍图像的渲染方法、装置、存储介质及终端
CN108777786A (zh) * 2018-05-16 2018-11-09 长春理工大学 一种基于相机转移特性曲线的图像融合方法
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US10504518B1 (en) 2018-06-03 2019-12-10 Apple Inc. Accelerated task performance
US10951888B2 (en) 2018-06-04 2021-03-16 Contrast, Inc. Compressed high dynamic range video
US10447942B1 (en) 2018-06-07 2019-10-15 Qualcomm Incorporated Flash control for video capture
EP3837843A4 (en) * 2018-08-14 2022-05-18 Contrast, Inc. NOISE REDUCTION IN IMAGE PROCESSING
US10855964B2 (en) 2018-08-29 2020-12-01 Apple Inc. Hue map generation for highlight recovery
US11100620B2 (en) 2018-09-04 2021-08-24 Apple Inc. Hue preservation post processing for highlight recovery
TWI695622B (zh) 2018-09-06 2020-06-01 華晶科技股份有限公司 影像處理方法及影像處理裝置
DK201870623A1 (en) 2018-09-11 2020-04-15 Apple Inc. USER INTERFACES FOR SIMULATED DEPTH EFFECTS
CN109388457B (zh) * 2018-09-21 2022-02-25 杨立群 一种多场景的远程快速界面交互方法及装置
CN109298806B (zh) * 2018-09-21 2022-01-11 杨立群 一种基于对象识别的远程快速界面交互方法及装置
US11770601B2 (en) 2019-05-06 2023-09-26 Apple Inc. User interfaces for capturing and managing visual media
US10645294B1 (en) * 2019-05-06 2020-05-05 Apple Inc. User interfaces for capturing and managing visual media
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11321857B2 (en) 2018-09-28 2022-05-03 Apple Inc. Displaying and editing images with depth information
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11128792B2 (en) 2018-09-28 2021-09-21 Apple Inc. Capturing and displaying images with multiple focal planes
US10867392B2 (en) * 2018-10-03 2020-12-15 Apical Limited Spatially multiplexed exposure
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
CN113170158B (zh) * 2018-11-19 2023-07-11 杜比实验室特许公司 视频编码器和编码方法
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
CN109788207B (zh) * 2019-01-30 2021-03-23 Oppo广东移动通信有限公司 图像合成方法、装置、电子设备及可读存储介质
DE102019102484A1 (de) * 2019-01-31 2020-08-06 Carl Zeiss Smt Gmbh Verarbeitung von dreidimensionalen Bilddatensätzen
US10554890B1 (en) * 2019-02-18 2020-02-04 Samsung Electronics Co., Ltd. Apparatus and method for generating low-light images with improved bokeh using mobile electronic device
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
CN110149484B (zh) 2019-04-15 2020-07-10 浙江大华技术股份有限公司 图像合成方法、装置及存储装置
WO2020214966A1 (en) * 2019-04-19 2020-10-22 Direct Electron, Lp Apparatus and method for high dynamic range counting by pixelated detectors
JP7007324B2 (ja) * 2019-04-25 2022-01-24 ファナック株式会社 画像処理装置、画像処理方法、及びロボットシステム
US11706521B2 (en) 2019-05-06 2023-07-18 Apple Inc. User interfaces for capturing and managing visual media
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
CN112887586B (zh) * 2019-05-06 2022-05-10 苹果公司 用于捕获和管理视觉媒体的用户界面
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
CN113518148A (zh) * 2019-05-06 2021-10-19 苹果公司 用于捕获和管理视觉媒体的用户界面
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11062436B2 (en) 2019-05-10 2021-07-13 Samsung Electronics Co., Ltd. Techniques for combining image frames captured using different exposure settings into blended images
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US20220261970A1 (en) * 2019-06-11 2022-08-18 Sarang Dilip Nerkar Methods, systems and computer program products for generating high dynamic range image frames
CN110177221B (zh) * 2019-06-25 2021-02-26 维沃移动通信有限公司 高动态范围图像的拍摄方法及装置
CN110290323B (zh) * 2019-06-28 2021-09-07 Oppo广东移动通信有限公司 图像处理方法、装置、电子设备和计算机可读存储介质
CN110445989B (zh) * 2019-08-05 2021-03-23 Oppo广东移动通信有限公司 图像处理方法、装置、存储介质及电子设备
IL268612A (en) * 2019-08-08 2021-03-01 HYATT Yonatan Using an HDR image in a visual inspection process
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
WO2021070173A2 (en) * 2019-10-07 2021-04-15 Inspekto A.M.V. Ltd Motion in images used in a visual inspection process
CN110784645B (zh) * 2019-10-09 2021-01-01 中国航空工业集团公司洛阳电光设备研究所 基于单色双通道sCMOS摄像机的灰度调制图像融合方法
US11297286B1 (en) 2019-11-13 2022-04-05 Facebook Technologies, Llc Monochrome cameras with sparsely arranged clusters of color filters for coloration of content
US20210152791A1 (en) * 2019-11-19 2021-05-20 Facebook Technologies, Llc Correction for lateral chromatic aberration in images
CN111031254B (zh) * 2020-01-15 2021-02-26 浙江大华技术股份有限公司 摄像模式的切换方法及装置、计算机装置及可读存储介质
CN113364964B (zh) * 2020-03-02 2023-04-07 RealMe重庆移动通信有限公司 图像处理方法、图像处理装置、存储介质与终端设备
US11265469B1 (en) * 2020-04-10 2022-03-01 Amazon Technologies, Inc. System to mitigate image jitter by an actuator driven camera
EP3902240B1 (en) 2020-04-22 2022-03-30 Axis AB Method, device, camera and software for performing electronic image stabilization of a high dynamic range image
US11183193B1 (en) 2020-05-11 2021-11-23 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11054973B1 (en) 2020-06-01 2021-07-06 Apple Inc. User interfaces for managing media
US11430094B2 (en) 2020-07-20 2022-08-30 Samsung Electronics Co., Ltd. Guided multi-exposure image fusion
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US11212449B1 (en) 2020-09-25 2021-12-28 Apple Inc. User interfaces for media capture and management
US11906895B2 (en) * 2020-10-06 2024-02-20 Mediatek Inc. Method and system for blending images captured under different strobe conditions
US11671715B2 (en) 2021-01-14 2023-06-06 Qualcomm Incorporated High dynamic range technique selection for image processing
US20220237753A1 (en) * 2021-01-22 2022-07-28 Apical Limited Image adjustment based on local contrast
WO2022216295A1 (en) * 2021-04-09 2022-10-13 Zeku, Inc. Method and apparatus for operating an image signal processor
US11539876B2 (en) 2021-04-30 2022-12-27 Apple Inc. User interfaces for altering visual media
US11778339B2 (en) 2021-04-30 2023-10-03 Apple Inc. User interfaces for altering visual media
US11961206B2 (en) 2021-09-09 2024-04-16 Samsung Electronics Co., Ltd. Image generation using non-linear scaling and tone-mapping based on cubic spline curves
CN113962915B (zh) * 2021-10-20 2022-04-29 哈尔滨工业大学 非均匀照明条件下的自适应非线性超动态图像合成方法
WO2023094871A1 (en) * 2021-11-29 2023-06-01 Weta Digital Limited Increasing dynamic range of a virtual production display
WO2023094872A1 (en) * 2021-11-29 2023-06-01 Weta Digital Limited Increasing dynamic range of a virtual production display
US11671714B1 (en) * 2022-01-24 2023-06-06 Qualcomm Incorporated Motion based exposure control
US11863880B2 (en) * 2022-05-31 2024-01-02 Microsoft Technology Licensing, Llc Image frame selection for multi-frame fusion
US11526990B1 (en) * 2022-08-10 2022-12-13 Bio-Marketing-T, Ltd. (BMT) Computer systems and computer-implemented methods for rapid diagnostic test result interpretation platform utilizing computer vision
WO2024096308A1 (ko) * 2022-11-02 2024-05-10 삼성전자 주식회사 광원 객체 이미지 처리 방법 및 장치

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3450536A (en) 1961-03-24 1969-06-17 Eg & G Inc Silver halide photographic film having increased exposure-response characteristics
US3620747A (en) 1968-05-20 1971-11-16 Eastman Kodak Co Photographic element including superimposed silver halide layers of different speeds
BE754842A (fr) 1969-08-14 1971-01-18 Eastman Kodak Co Produit photographique aux halogenures d'argent positif direct a latitude d'exposition amelioree
US3888676A (en) 1973-08-27 1975-06-10 Du Pont Silver halide films with wide exposure latitude and low gradient
US4647975A (en) 1985-10-30 1987-03-03 Polaroid Corporation Exposure control system for an electronic imaging camera having increased dynamic range
IT1188553B (it) 1986-02-24 1988-01-20 Minnesota Mining & Mfg Materiale fotografico multistrato a colori agli alogenuri d'argento
US5162914A (en) 1987-06-09 1992-11-10 Canon Kabushiki Kaisha Image sensing device with diverse storage fumes used in picture composition
IL87306A0 (en) 1988-08-02 1989-01-31 Technion Res & Dev Foundation Wide dynamic range camera
US5325449A (en) 1992-05-15 1994-06-28 David Sarnoff Research Center, Inc. Method for fusing images and apparatus therefor
US5323204A (en) 1992-11-03 1994-06-21 Eastman Kodak Company Automatic optimization of photographic exposure parameters for non-standard display sizes and/or different focal length photographing modes through determination and utilization of extra system speed
US5627905A (en) 1994-12-12 1997-05-06 Lockheed Martin Tactical Defense Systems Optical flow detection system
JPH09107499A (ja) 1995-10-11 1997-04-22 Canon Inc 撮像装置及びその画像処理方法
US5828793A (en) 1996-05-06 1998-10-27 Massachusetts Institute Of Technology Method and apparatus for producing digital images having extended dynamic ranges
US6459451B2 (en) 1996-06-24 2002-10-01 Be Here Corporation Method and apparatus for a panoramic camera to capture a 360 degree image
JPH10262182A (ja) 1997-03-17 1998-09-29 Ricoh Co Ltd 画像合成装置
US6160913A (en) * 1998-03-25 2000-12-12 Eastman Kodak Company Method and apparatus for digital halftone dots detection and removal in business documents
DK0947955T3 (da) 1998-04-03 2001-12-17 Da Vinci Systems Inc Fremgangsmåder og apparatur til frembringelse af kundespecifikke gammakurver for farvekorrektionsudstyr
US6104441A (en) 1998-04-29 2000-08-15 Hewlett Packard Company System for editing compressed image sequences
US6535650B1 (en) 1998-07-21 2003-03-18 Intel Corporation Creating high resolution images
US6459822B1 (en) 1998-08-26 2002-10-01 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Video image stabilization and registration
US7023913B1 (en) 2000-06-14 2006-04-04 Monroe David A Digital security multimedia sensor
JP4163353B2 (ja) 1998-12-03 2008-10-08 オリンパス株式会社 画像処理装置
US6549643B1 (en) 1999-11-30 2003-04-15 Siemens Corporate Research, Inc. System and method for selecting key-frames of video data
US6900840B1 (en) 2000-09-14 2005-05-31 Hewlett-Packard Development Company, L.P. Digital camera and method of using same to view image in live view mode
US6731821B1 (en) 2000-09-29 2004-05-04 Hewlett-Packard Development Company, L.P. Method for enhancing compressibility and visual quality of scanned document images
US6792160B2 (en) * 2001-07-27 2004-09-14 Hewlett-Packard Development Company, L.P. General purpose image enhancement algorithm which augments the visual perception of detail in digital images
US7221776B2 (en) 2001-10-31 2007-05-22 Arcsoft, Inc. Video stabilizer
US7009636B2 (en) * 2001-11-13 2006-03-07 The Board Of Trustees Of The Leland Stanford Junior University Photocurrent estimation from multiple captures for simultaneous SNR and dynamic range improvement in CMOS image sensors
US7061524B2 (en) * 2001-11-13 2006-06-13 The Board Of Trustees Of The Leland Stanford Junior University Motion/saturation detection system and method for synthesizing high dynamic range motion blur free images from multiple captures
US7277580B2 (en) 2001-12-12 2007-10-02 Sony Corporation Multiple thresholding for video frame segmentation
US7409104B2 (en) * 2002-07-18 2008-08-05 .Sightic Vista Ltd Enhanced wide dynamic range in imaging
US7734144B2 (en) 2002-10-30 2010-06-08 Koninklijke Philips Electronics N.V. Method and apparatus for editing source video to provide video image stabilization
US20040240562A1 (en) * 2003-05-28 2004-12-02 Microsoft Corporation Process and system for identifying a position in video using content-based video timelines
JP2004357202A (ja) * 2003-05-30 2004-12-16 Canon Inc 撮影装置
US7280753B2 (en) 2003-09-03 2007-10-09 Canon Kabushiki Kaisha Display apparatus, image processing apparatus, and image processing system
US7561731B2 (en) * 2004-12-27 2009-07-14 Trw Automotive U.S. Llc Method and apparatus for enhancing the dynamic range of a stereo vision system
US7239805B2 (en) * 2005-02-01 2007-07-03 Microsoft Corporation Method and system for combining multiple exposure images having scene and camera motion
EP1689164B1 (en) 2005-02-03 2007-12-19 Sony Ericsson Mobile Communications AB Method and device for creating enhanced picture by means of several consecutive exposures
US7626614B1 (en) * 2005-02-15 2009-12-01 Apple Inc. Transfer function and high dynamic range images
US7612804B1 (en) 2005-02-15 2009-11-03 Apple Inc. Methods and apparatuses for image processing
EP1701536A1 (en) * 2005-03-08 2006-09-13 Sony Ericsson Mobile Communications AB Method and device for creating pictures, using global shutter and multiple exposures
US7978925B1 (en) 2005-04-16 2011-07-12 Apple Inc. Smoothing and/or locking operations in video editing
US7480421B2 (en) 2005-05-23 2009-01-20 Canon Kabushiki Kaisha Rendering of high dynamic range images
US7443443B2 (en) 2005-07-28 2008-10-28 Mitsubishi Electric Research Laboratories, Inc. Method and apparatus for enhancing flash and ambient images
US7912337B2 (en) 2005-11-02 2011-03-22 Apple Inc. Spatial and temporal alignment of video sequences
US7551800B2 (en) * 2006-08-09 2009-06-23 Fotonation Vision Limited Detection of airborne flash artifacts using preflash image
TW200820123A (en) * 2006-10-20 2008-05-01 Primax Electronics Ltd Method and system of generating high dynamic range image corresponding to specific scene
JP4821626B2 (ja) 2007-01-23 2011-11-24 株式会社ニコン 画像処理装置、電子カメラ、および画像処理プログラム
US8184926B2 (en) * 2007-02-28 2012-05-22 Microsoft Corporation Image deblurring with blurred/noisy image pairs
US7884871B2 (en) * 2007-06-15 2011-02-08 Aptina Imaging Corporation Images with high speed digital frame transfer and frame processing
US7969475B2 (en) * 2007-07-17 2011-06-28 Seiko Epson Corporation Low memory auto-focus and exposure system for large multi-frame image acquisition
US20090033755A1 (en) 2007-08-03 2009-02-05 Tandent Vision Science, Inc. Image acquisition and processing engine for computer vision
CN101420531A (zh) * 2007-10-23 2009-04-29 鸿富锦精密工业(深圳)有限公司 高动态范围图片撷取装置及方法
US7949249B2 (en) * 2007-11-28 2011-05-24 Bowei Gai Software based photoflash synchronization of camera equipped portable media device and external lighting apparatus
US8098957B2 (en) 2008-02-13 2012-01-17 Qualcomm Incorporated Shared block comparison architechture for image registration and video coding
KR101257942B1 (ko) * 2008-04-23 2013-04-23 고려대학교 산학협력단 광역 역광보정 영상처리에서의 전처리 방법 및 장치
US8724921B2 (en) * 2008-05-05 2014-05-13 Aptina Imaging Corporation Method of capturing high dynamic range images with objects in the scene
CN102037717B (zh) * 2008-05-20 2013-11-06 派力肯成像公司 使用具有异构成像器的单片相机阵列的图像拍摄和图像处理
US8090184B2 (en) * 2008-07-23 2012-01-03 Seiko Epson Corporation Fault detection of a printed dot-pattern bitmap
US8339475B2 (en) * 2008-12-19 2012-12-25 Qualcomm Incorporated High dynamic range image combining
US8437537B2 (en) * 2009-03-27 2013-05-07 Mitsubishi Electric Research Laboratories, Inc. Method and system for estimating 3D pose of specular objects
US8228400B2 (en) * 2009-04-17 2012-07-24 Sony Corporation Generation of simulated long exposure images in response to multiple short exposures
US8237813B2 (en) * 2009-04-23 2012-08-07 Csr Technology Inc. Multiple exposure high dynamic range image capture
KR101604068B1 (ko) * 2009-09-22 2016-03-17 삼성전자주식회사 고대비 영상 생성 장치 및 방법
US8760537B2 (en) 2010-07-05 2014-06-24 Apple Inc. Capturing and rendering high dynamic range images

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022025457A1 (ko) * 2020-07-30 2022-02-03 삼성전자 주식회사 이미지를 처리하기 위한 전자 장치 및 그의 동작 방법

Also Published As

Publication number Publication date
US8885978B2 (en) 2014-11-11
US9420198B2 (en) 2016-08-16
CN103069454A (zh) 2013-04-24
WO2012006253A1 (en) 2012-01-12
US10341574B2 (en) 2019-07-02
WO2012006251A1 (en) 2012-01-12
JP2013533706A (ja) 2013-08-22
DE102011078662B4 (de) 2020-09-24
CN103069453B (zh) 2015-06-03
CN103069454B (zh) 2015-05-06
US20120002082A1 (en) 2012-01-05
JP5615973B2 (ja) 2014-10-29
US8760537B2 (en) 2014-06-24
JP2013530657A (ja) 2013-07-25
US20120002899A1 (en) 2012-01-05
US20120002898A1 (en) 2012-01-05
DE102011078662A1 (de) 2012-06-21
JP5530563B2 (ja) 2014-06-25
WO2012006253A4 (en) 2012-02-23
US20170048442A1 (en) 2017-02-16
KR101428427B1 (ko) 2014-08-07
KR101433542B1 (ko) 2014-08-22
US10038855B2 (en) 2018-07-31
US8699821B2 (en) 2014-04-15
CN103069453A (zh) 2013-04-24
US20180338078A1 (en) 2018-11-22
WO2012006252A1 (en) 2012-01-12
US20150062382A1 (en) 2015-03-05
WO2012006251A4 (en) 2012-02-23
KR20130033445A (ko) 2013-04-03

Similar Documents

Publication Publication Date Title
US10341574B2 (en) Operating a device to capture high dynamic range images
EP2987135B1 (en) Reference image selection for motion ghost filtering
CN108668093B (zh) Hdr图像的生成方法及装置
JP6020199B2 (ja) 画像処理装置、方法、及びプログラム、並びに撮像装置
US8982251B2 (en) Image processing apparatus, image processing method, photographic imaging apparatus, and recording device recording image processing program
US20140064632A1 (en) Image processing apparatus, image processing method and recording medium
US8526057B2 (en) Image processing apparatus and image processing method
CN105323497A (zh) 恒定包围的高动态范围(cHDR)操作
US8830359B2 (en) Image processing apparatus, imaging apparatus, and computer readable medium
US11620738B2 (en) Hue preservation post processing with early exit for highlight recovery
JP2008219230A (ja) 撮像装置及び画像処理方法
US11803949B2 (en) Image fusion architecture with multimode operations
KR20140133407A (ko) 화상 처리 장치 및 화상 처리 방법
CN117934301A (zh) 图像处理方法、装置、电子设备和计算机可读存储介质

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 5