KR101283248B1 - 듀얼 이미지 센서 이미지 처리 시스템 및 방법 - Google Patents

듀얼 이미지 센서 이미지 처리 시스템 및 방법 Download PDF

Info

Publication number
KR101283248B1
KR101283248B1 KR1020110082478A KR20110082478A KR101283248B1 KR 101283248 B1 KR101283248 B1 KR 101283248B1 KR 1020110082478 A KR1020110082478 A KR 1020110082478A KR 20110082478 A KR20110082478 A KR 20110082478A KR 101283248 B1 KR101283248 B1 KR 101283248B1
Authority
KR
South Korea
Prior art keywords
image
sensor
pixel
logic
image sensor
Prior art date
Application number
KR1020110082478A
Other languages
English (en)
Other versions
KR20120096954A (ko
Inventor
가이 코테
제프리 이. 프레데릭센
조셉 피. 브랫
순 와이 고
티모시 제이. 밀렛
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20120096954A publication Critical patent/KR20120096954A/ko
Application granted granted Critical
Publication of KR101283248B1 publication Critical patent/KR101283248B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/40Extracting pixel data from image sensors by controlling scanning circuits, e.g. by modifying the number of pixels sampled or to be sampled
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/45Cameras or camera modules comprising electronic image sensors; Control thereof for generating image signals from two or more image sensors being of different type or operating in different modes, e.g. with a CMOS sensor for moving images in combination with a charge-coupled device [CCD] for still images
    • 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
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/40Extracting pixel data from image sensors by controlling scanning circuits, e.g. by modifying the number of pixels sampled or to be sampled
    • H04N25/46Extracting pixel data from image sensors by controlling scanning circuits, e.g. by modifying the number of pixels sampled or to be sampled by combining or binning pixels

Abstract

디지털 이미지 센서(90)를 이용하여 획득된 이미지 데이터를 처리하기 위해 다양한 기술들이 제공된다. 본 개시물의 양태들에 따르면, 이러한 하나의 기술은, 다수의 이미지 센서들(90)을 지원하는 시스템(10)에서 이미지 데이터를 처리하는 것에 관련될 수 있다. 일 실시예에 있어서, 이미지 처리 시스템(32)은, 디바이스가 단일 센서 모드(하나의 활성 센서)에서 동작하고 있는지 또는 듀얼 센서 모드(2개의 활성 센서들)에서 동작하고 있는지를 결정하도록 구성된 제어 회로를 포함할 수 있다. 단일 센서 모드에서 동작하고 있는 경우에는, 데이터가 활성 센서의 센서 인터페이스로부터 프런트-엔드 픽셀 처리 유닛(80)으로 직접 제공될 수 있다. 듀얼 센서 모드에서 동작하고 있는 경우에는, 제1 및 제2 센서들(90a, 90b)로부터의 이미지 프레임들은 인터리브 방식으로 프런트-엔드 픽셀 처리 유닛(80)으로 제공된다. 예를 들어, 일 실시예에서, 제1 및 제2 센서들(90a, 90b)로부터의 이미지 프레임들은 메모리(108)에 기입된 다음, 인터리브 방식으로 프런트-엔드 픽셀 처리 유닛(80)으로 판독된다.

Description

듀얼 이미지 센서 이미지 처리 시스템 및 방법{DUAL IMAGE SENSOR IMAGE PROCESSING SYSTEM AND METHOD}
본 개시는 일반적으로 디지털 이미징 디바이스들에 관한 것이고, 더욱 구체적으로, 디지털 이미징 디바이스의 이미지 센서를 이용하여 취득된 이미지 데이터를 처리하기 위한 시스템 및 방법에 관한 것이다.
이 부분은 하기에 설명 및/또는 주장되는, 본 기법들의 다양한 양태들에 관련될 수 있는 기술의 다양한 양태들에 대하여 읽는 사람에게 소개하도록 의도된다. 이 논의는 본 개시의 다양한 양태들의 더 나은 이해를 용이하게 하기 위해 배경 정보를 읽는 사람에게 제공하는데 도움이 될 것으로 생각된다. 따라서, 이 스테이트먼트들(statements)은 종래 기술의 인정으로서가 아니라, 이러한 관점에서 읽어져야 한다는 것을 이해해야 한다.
최근에, 디지털 이미징 디바이스들은 적어도 부분적으로, 평균 소비자에게 점점 더 알맞게 되는 이러한 디바이스들로 인해, 더욱더 대중적으로 되었다. 또한, 시장에서 현재 이용가능한 다수의 스탠드 얼론 디지털 카메라들에 부가하여, 디지털 이미징 디바이스들이 데스크톱 또는 노트북 컴퓨터, 셀룰러 폰, 또는 포터블 미디어 플레이어와 같은, 다른 전자 디바이스의 부분으로서 통합되는 것은 드물지 않다.
이미지 데이터를 취득하기 위해서, 대부분의 디지털 이미징 디바이스들은 이미지 센서에 의해 검출된 광을 전기 신호로 변환하도록 구성된 다수의 광검출 요소들(예를 들어, 광검출기들)을 제공하는 이미지 센서를 포함한다. 이미지 센서는 또한 컬러 정보를 캡처(capture)하기 위해 이미지 센서에 의해 캡처된 광을 필터링하는 컬러 필터 어레이를 포함할 수 있다. 그 다음 이미지 센서에 의해 캡처된 이미지 데이터는, 모니터와 같은 디스플레이 디바이스에서 보기 위해 디스플레이될 수 있는 풀 컬러(full color) 이미지를 생성하기 위해 이미지 데이터에 다수의 다양한 이미지 처리 동작들을 적용할 수 있는 이미지 처리 파이프라인에 의해 처리될 수 있다.
종래의 이미지 처리 기법들은 일반적으로 보는 사람에게 객관적으로 및 주관적으로 만족스러운 볼 수 있는 이미지를 생성하는 것을 목표로 하고 있지만, 이러한 종래의 기법들은 이미지 디바이스 및/또는 이미지 센서에 의해 도입된 이미지 데이터에서의 에러들 및/또는 왜곡들을 적절하게 처리하지 못할 수 있다. 예를 들어, 제조상의 결함들 또는 동작상의 실패로 인할 수 있는 이미지 센서 상의 결함이 있는 픽셀들은 광 레벨들을 정확하게 감지하지 못할 수 있고, 정정되지 않을 경우, 결과적으로 생기는 처리된 이미지에 나타나는 아티팩트들(artifacts)로서 나타날 수 있다. 또한, 렌즈의 제조에서의 미비점들로 인할 수 있는 이미지 센서의 에지들에서의 광 세기 저하는 특성해석(characterization) 측정들에 악영향을 미칠 수 있고 전체 광 세기가 균일하지 않은 이미지를 야기할 수 있다. 이미지 처리 파이프라인은 또한 이미지를 선명하게 하기 위해 하나 이상의 프로세서를 수행할 수 있다. 그러나, 종래의 선명화(sharpening) 기법들은 이미지 신호에 존재하는 잡음을 적절하게 고려하지 않을 수 있거나, 또는 이미지의 에지들 및 질감을 살린(textured) 영역들로부터 잡음을 구별할 수 없을 수 있다. 이러한 경우들에서, 종래의 선명화 기법들은 일반적으로 바람직하지 않은 이미지 내의 잡음의 출현을 사실상 증가시킬 수 있다.
이미지 센서에 의해 캡처된 이미지 데이터에 적용될 수 있는 다른 이미지 처리 동작은 디모자이크(demosaicing) 동작이다. 컬러 필터 어레이는 일반적으로 센서 픽셀당 1 파장에서 컬러 데이터를 제공하기 때문에, 풀 세트의 컬러 데이터는 일반적으로 풀 컬러 이미지(예를 들어, RGB 이미지)를 재생하기 위해 각각의 컬러 채널에 대해 보간(interpolate)된다. 일반적으로 일부 타입의 고정 임계값에 따라, 종래의 디모자이크 기법들은 일반적으로 수평 또는 수직 방향으로 빠진(missing) 컬러 데이터에 대한 값들을 보간한다. 그러나, 이러한 종래의 디모자이크 기법들은 이미지 내의 에지들의 위치 및 방향을 적절하게 고려하지 않을 수 있고, 이것은 결과적으로 특히 이미지 내의 대각선 에지들을 따라, 풀 컬러 이미지 내로 도입되는, 에일리어싱(aliasing), 체커보드 아티팩트들(checkerboard artifacts), 또는 레인보우(rainbow) 아티팩트들과 같은 에지 아티팩트들을 야기할 수 있다.
따라서, 다양한 고려사항들은 결과로 생기는 이미지의 외관(appearance)을 향상시키기 위해 디지털 카메라 또는 다른 이미징 디바이스로 취득한 디지털 이미지를 처리할 때 처리되어야 한다. 특히, 하기 개시의 특정 양태들은 위에 간단히 언급된 단점들 중 하나 이상을 처리할 수 있다.
본 명세서에 개시된 특정 실시예들의 요약이 하기에 설명된다. 이 양태들은 읽는 사람에게 이들 특정 실시예들의 간단한 요약을 제공하기 위해서만 제시되는 것이며 이 양태들은 본 개시의 범위를 제한하도록 의도되지 않는다는 것을 이해해야 한다. 사실상, 본 개시는 하기에 설명될 수 없는 다양한 양태들을 포함할 수 있다.
본 개시는 디지털 이미지 센서를 이용하여 취득된 이미지 데이터를 처리하기 위한 다양한 기법들을 제공한다. 본 개시의 양태들에 따르면, 하나의 이러한 기법은 복수의 이미지 센서들을 지원하는 시스템에서 이미지 데이터의 처리에 관련될 수 있다. 일 실시예에서, 이미지 처리 시스템은 디바이스가 단일 센서 모드(1개의 활성 센서)로 동작하는지 또는 듀얼 센서 모드(2개의 활성 센서들)로 동작하는지를 결정하도록 구성된 제어 회로를 포함할 수 있다. 단일 센서 모드로 동작할 때, 데이터는 활성 센서의 센서 인터페이스로부터 프런트-엔드(front-end) 픽셀 처리 유닛에 직접 제공될 수 있다. 듀얼 센서 모드로 동작할 때, 제1 및 제2 센서들로부터의 이미지 프레임들은 인터리브(interleaved) 방식으로 프런트-엔드 픽셀 처리 유닛에 제공된다. 예를 들어, 일 실시예에서, 제1 및 제2 센서들로부터의 이미지 프레임들은 메모리에 기입되고, 그 다음에 인터리브 방식으로 프런트-엔드 픽셀 처리 유닛에 판독된다.
위에 언급된 특징들의 다양한 개선들이 본 개시의 다양한 양태들과 관련하여 존재할 수 있다. 이들 다양한 양태들에 추가 특징들이 또한 포함될 수 있다. 이들 개선들 및 부가적인 특징들은 개별적으로 또는 임의의 조합으로 존재할 수 있다. 예를 들어, 예시된 실시예들의 하나 이상과 관련하여 하기에 논의된 다양한 특징들은 본 개시의 전술한 양태들의 임의의 양태 내로 단독으로 또는 임의의 조합으로 포함될 수 있다. 또한, 위에 제시된 간단한 요약은 단지 읽는 사람을 청구된 요지로 제한하지 않고 본 개시의 실시예들의 특정 양태들 및 문맥들에 익숙하게 하기 위한 것이다.
특허 또는 출원 파일은 컬러로 작성된 적어도 하나의 도면을 포함한다. 컬러 도면들을 갖는 이 특허 또는 특허 출원 공보의 사본들은 요청 및 필요한 요금의 지불 시에 청(Office)에 의해 제공될 것이다.
본 개시의 다양한 양태들은 도면들을 참조하여 다음의 상세한 설명을 읽으면 더 잘 이해될 수 있다.
도 1은 본 개시에 설명된 이미지 처리 기법들 중 하나 이상을 구현하도록 구성된 이미징 디바이스 및 이미지 처리 회로를 포함하는 전자 디바이스의 예의 컴포넌트들을 도시하는 간략화된 블록도이다.
도 2는 도 1의 이미징 디바이스에 구현될 수 있는 베이어 컬러 필터 어레이(Bayer color filter array)의 2x2 픽셀 블록의 그래픽 표현을 도시한다.
도 3은 본 개시의 양태들에 따른, 랩톱 컴퓨팅 디바이스 형태의 도 1의 전자 디바이스의 사시도이다.
도 4는 본 개시의 양태들에 따른, 데스크톱 컴퓨팅 디바이스 형태의 도 1의 전자 디바이스의 정면도이다.
도 5는 본 개시의 양태들에 따른, 핸드헬드 포터블 전자 디바이스 형태의 도 1의 전자 디바이스의 정면도이다.
도 6은 도 5에 도시된 전자 디바이스의 후면도이다.
도 7은 본 개시의 양태들에 따른, 도 1의 이미지 처리 회로에 구현될 수 있는 프런트-엔드 이미지 신호 처리(ISP) 로직 및 ISP 파이프 처리 로직을 예시하는 블록도이다.
도 8은 본 개시의 양태들에 따른, 도 7의 ISP 프런트-엔드 로직의 실시예를 도시하는 더 상세한 블록도이다.
도 9는 실시예에 따른, 도 8의 ISP 프런트-엔드 로직에서 이미지 데이터를 처리하기 위한 방법을 도시하는 흐름도이다.
도 10은 일 실시예에 따른, ISP 프런트-엔드 로직에서 이미지 데이터를 처리하기 위해 이용될 수 있는 더블 버퍼링된(double buffered) 레지스터들 및 제어 레지스터들의 구성을 예시하는 블록도이다.
도 11 내지 도 13은 본 기법들의 실시예들에 따른, 이미지 프레임의 처리를 트리거하기 위한 상이한 모드들을 도시하는 타이밍도이다.
도 14는 일 실시예에 따른, 제어 레지스터를 더 상세하게 도시하는 도면이다.
도 15는 도 8의 ISP 프런트-엔드 로직이 단일 센서 모드로 동작하고 있을 때 이미지 프레임들을 처리하기 위해 프런트-엔드 픽셀 처리 유닛을 이용하기 위한 방법을 도시하는 흐름도이다.
도 16은 도 8의 ISP 프런트-엔드 로직이 듀얼 센서 모드로 동작하고 있을 때 이미지 프레임들을 처리하기 위해 프런트-엔드 픽셀 처리 유닛을 이용하기 위한 방법을 도시하는 흐름도이다.
도 17은 도 8의 ISP 프런트-엔드 로직이 듀얼 센서 모드로 동작하고 있을 때 이미지 프레임들을 처리하기 위해 프런트-엔드 픽셀 처리 유닛을 이용하기 위한 방법을 도시하는 흐름도이다.
도 18은 일 실시예에 따른, 두 이미지 센서들이 활성(active)인 방법을 도시하는 흐름도이고, 여기서 제1 이미지 센서는 프런트-엔드 픽셀 처리 유닛에 이미지 프레임들을 송신하고 있고, 제2 이미지 센서는 통계 처리 유닛에 이미지 프레임들을 송신하고 있어, 제2 이미지 센서가 나중에 프런트-엔드 픽셀 처리 유닛에 이미지 프레임들의 송신을 계속할 때에 즉시 제2 센서에 대한 이미징 통계들이 이용가능하다.
도 19는 본 개시의 양태들에 따른, 이미지 센서에 의해 캡처된 소스 이미지 프레임 내에 정의될 수 있는 다양한 이미징 구역들의 그래픽적 도면이다.
도 20은 본 개시의 양태들에 따른, 도 8의 ISP 프런트-엔드 로직에 도시된 바와 같이, ISP 프런트-엔드 픽셀 처리 유닛의 일 실시예의 더 상세한 뷰를 제공하는 블록도이다.
도 21은 일 실시예에 따른, 시간적 필터링(temporal filtering)이 도 20에 도시된 ISP 프런트-엔드 픽셀 처리 유닛에 의해 수신된 이미지 픽셀 데이터에 적용될 수 있는 방법을 예시하는 프로세스 도면이다.
도 22는 도 21에 도시된 시간적 필터링 프로세스를 위한 하나 이상의 파라미터를 결정하는데 이용될 수 있는 기준 이미지 픽셀들의 세트 및 대응하는 현재의 이미지 픽셀들의 세트를 예시한다.
도 23은 일 실시예에 따른, 이미지 데이터의 세트의 현재의 이미지 픽셀에 시간적 필터링을 적용하기 위한 프로세스를 예시하는 흐름도이다.
도 24는 일 실시예에 따른, 도 23의 현재의 이미지 픽셀의 시간적 필터링과 이용하기 위한 모션 델타 값(motion delta value)을 계산하기 위한 기법을 도시하는 흐름도이다.
도 25는 다른 실시예에 따른, 이미지 데이터의 각각의 컬러 성분에 대한 상이한 이득들의 이용을 포함하는 이미지 데이터의 세트의 현재의 이미지 픽셀에 시간적 필터링을 적용하기 위한 다른 프로세스를 예시하는 흐름도이다.
도 26은 다른 실시예에 따른, 도 20에 도시된 ISP 프런트-엔드 픽셀 처리 유닛에 의해 수신된 이미지 픽셀 데이터의 각각의 컬러 성분에 대한 별개의 모션 및 루마(luma) 표들을 이용하는 시간적 필터링 기법을 예시하는 프로세스 도면이다.
도 27은 다른 실시예에 따른, 도 26에 도시된 모션 및 루마 표들을 이용하는 이미지 데이터의 세트의 현재의 이미지 픽셀에 시간적 필터링을 적용하기 위한 프로세스를 예시하는 흐름도이다.
도 28은 본 개시의 양태들에 따른, 이미지 센서에 의해 캡처될 수 있는 풀 해상도 미처리(raw) 이미지 데이터의 샘플을 도시한다.
도 29는 본 개시의 실시예에 따른, 비닝된(binned) 미처리 이미지 데이터의 샘플을 출력하기 위해 도 28의 풀 해상도 미처리 이미지 데이터에 비닝(binning)을 적용하도록 구성될 수 있는 이미지 센서를 예시한다.
도 30은 본 개시의 양태들에 따른, 도 29의 이미지 센서에 의해 제공될 수 있는 비닝된 미처리 이미지 데이터의 샘플을 도시한다.
도 31은 본 개시의 양태들에 따른, 제공하기 위해 비닝 보상 필터에 의해 재샘플링된 후에 도 30으로부터의 비닝된 미처리 이미지 데이터를 도시한다.
도 32는 일 실시예에 따른, 도 20의 ISP 프런트-엔드 픽셀 처리 유닛에 구현될 수 있는 비닝 보상 필터를 도시한다.
도 33은 본 개시의 양태들에 따른, 비닝 보상 필터링을 위한 중심 입력 픽셀들 및 인덱스/페이즈들을 선택하기 위해 미분 분석기(differential analyzer)에 적용될 수 있는 다양한 단계 사이즈들의 그래픽적 도면이다.
도 34는 일 실시예에 따른, 도 32의 비닝 보상 필터를 이용하여 이미지 데이터를 스케일링(scaling)하기 위한 프로세스를 예시하는 흐름도이다.
도 35는 일 실시예에 따른, 도 32의 비닝 보상 필터에 의한 수평 및 수직 필터링을 위한 현재의 입력 소스 중심 픽셀을 결정하기 위한 프로세스를 예시하는 흐름도이다.
도 36은 일 실시예에 따른, 도 32의 비닝 보상 필터에 의한 수평 및 수직 필터링을 위한 필터링 계수들을 선택하기 위한 인덱스를 결정하기 위한 프로세스를 예시하는 흐름도이다.
도 37은 본 개시의 양태들에 따른, 도 8에 도시된 바와 같은, ISP 프런트-엔드 처리 로직에 구현될 수 있는 통계 처리 유닛의 실시예를 도시하는 더 상세한 블록도이다.
도 38은 본 개시의 양태들에 따른, 도 37의 통계 처리 유닛에 의한 통계 처리 동안 결함이 있는 픽셀들을 검출하고 정정하기 위한 기법들을 적용할 때에 고려될 수 있는 다양한 이미지 프레임 바운더리(boundary) 케이스들을 도시한다.
도 39는 일 실시예에 따른, 통계 처리 동안 결함이 있는 픽셀 검출 및 수정을 수행하기 위한 프로세스를 예시하는 흐름도이다.
도 40은 이미징 디바이스의 종래의 렌즈에 대한 광 세기 대 픽셀 위치를 도시하는 3차원 프로파일을 도시한다.
도 41은 렌즈 쉐이딩 불규칙들(lens shading irregularities)의 결과일 수 있는 이미지에 걸친 불균일한 광 세기를 나타내는 컬러 도면이다.
도 42는 본 개시의 양태들에 따른, 렌즈 쉐이딩 보정 구역 및 이득 그리드를 포함하는 미처리 이미징 프레임의 그래픽적 도면이다.
도 43은 본 개시의 양태들에 따른, 4개의 보더링 그리드 이득 포인트들(bordering grid gain points)에 의해 둘러싸인 이미지 픽셀에 대한 이득값의 보간을 예시한다.
도 44는 본 기법의 실시예에 따른, 렌즈 쉐이딩 정정 동작 동안 이미징 픽셀들에 적용될 수 있는 보간된 이득 값들을 결정하기 위한 프로세스를 예시하는 흐름도이다.
도 45는 본 개시의 양태들에 따른, 렌즈 쉐이딩 정정을 수행할 때 도 40에 도시된 광 세기 특성을 나타내는 이미지에 적용될 수 있는 보간된 이득 값들을 도시하는 3차원 프로파일이다.
도 46은 본 개시의 양태들에 따른, 렌즈 쉐이딩 정정 동작이 적용된 후에 광 세기의 향상된 균일성을 나타내는 도 41로부터의 컬러 도면을 도시한다.
도 47은 일 실시예에 따른, 현재의 픽셀과 이미지의 중심 사이의 방사상 거리가 어떻게 계산되고 이용되어 렌즈 쉐이딩 정정을 위한 방사상 이득 성분을 결정할 수 있는지를 그래픽적으로 예시한다.
도 48은 본 기법의 실시예에 따른, 렌즈 쉐이딩 정정 동작 동안 이미징 픽셀들에 적용될 수 있는 총 이득을 결정하기 위해 이득 그리드로부터의 방사상 이득들 및 보간된 이득들이 이용되는 프로세스를 예시하는 흐름도이다.
도 49는 본 개시의 양태들에 따른, 도 7의 ISP 파이프 처리 로직의 실시예를 도시하는 블록도이다.
도 50은 본 개시의 양태들에 따른, 도 49의 ISP 파이프 처리 로직에 구현될 수 있는 미처리 픽셀 처리 블록의 실시예를 도시하는 더 상세한 뷰이다.
도 51은 본 개시의 양태들에 따른, 도 50에 도시된 미처리 픽셀 처리 블록에 의한 처리 동안 결함이 있는 픽셀들을 검출하고 정정하기 위한 기법들을 적용할 때 고려될 수 있는 다양한 이미지 프레임 바운더리 케이스들을 도시한다.
도 52 내지 도 54는 일 실시예에 따른, 도 50의 미처리 픽셀 처리 블록에 수행될 수 있는 결함이 있는 픽셀들을 검출하고 정정하기 위한 다양한 프로세스들을 도시하는 흐름도들이다.
도 55는 본 개시의 양태들에 따른, 도 50의 미처리 픽셀 처리 로직에 의한 처리 동안 녹색 불균일성 정정 기법들(green non-uniformity correction techniques)을 적용할 때 보간될 수 있는 베이어 이미지 센서의 2x2 픽셀 블록에서의 2개의 녹색 픽셀들의 위치를 도시한다.
도 56은 본 개시의 양태들에 따른, 잡음 감소를 위한 수평 필터링 프로세스의 부분으로서 이용될 수 있는 중심 픽셀 및 연관된 수평 이웃 픽셀들을 포함하는 픽셀들의 세트를 예시한다.
도 57은 본 개시의 양태들에 따른, 잡음 감소를 위한 수직 필터링 프로세스의 부분으로서 이용될 수 있는 중심 픽셀 및 연관된 수직 이웃 픽셀들을 포함하는 픽셀들의 세트를 예시한다.
도 58은 디모자이크가 풀 컬러 RGB 이미지를 생성하기 위해 어떻게 미처리 베이어 이미지 패턴에 적용될 수 있는지를 도시하는 간략화된 흐름도이다.
도 59는 일 실시예에 따른, 베이어 이미지 패턴의 디모자이크 동안 녹색 컬러 값들을 보간하기 위해 수평 및 수직 에너지 성분들이 도출될 수 있는 베이어 이미지 패턴의 픽셀들의 세트를 도시한다.
도 60은 본 기법의 양태들에 따른, 베이어 이미지 패턴의 디모자이크 동안 보간된 녹색 컬러 값의 수평 성분을 결정하기 위해 필터링이 적용될 수 있는 수평 픽셀들의 세트를 도시한다.
도 61은 본 기법의 양태들에 따른, 베이어 이미지 패턴의 디모자이크 동안 보간된 녹색 컬러 값의 수직 성분을 결정하기 위해 필터링이 적용될 수 있는 수직 픽셀들의 세트를 도시한다.
도 62는 본 기법의 양태들에 따른, 베이어 이미지 패턴의 디모자이크 동안 보간된 적색 및 청색 값들을 결정하기 위해 필터링이 적용될 수 있는 다양한 3x3 픽셀 블록들을 도시한다.
도 63 내지 도 66은 일 실시예에 따른, 베이어 이미지 패턴의 디모자이크 동안 녹색, 적색 및 청색 컬러 값들을 보간하기 위한 다양한 프로세스들을 도시하는 흐름도를 제공한다.
도 67은 이미지 센서에 의해 캡처되고 본원에 개시된 디모자이크 기법들의 양태들에 따라 처리될 수 있는 오리지널 이미지 장면(original image scene)의 컬러 도면을 도시한다.
도 68은 도 67에 도시된 이미지 장면의 베이어 이미지 패턴의 컬러 도면을 도시한다.
도 69는 도 68의 베이어 이미지 패턴에 기초하여 종래의 디모자이크 기법을 이용하여 재구성된 RGB 이미지의 컬러 도면을 도시한다.
도 70은 본원에 개시된 디모자이크 기법들의 양태들에 따라 도 68의 베이어 이미지 패턴으로부터 재구성된 RGB 이미지의 컬러 도면을 도시한다.
도 71은 본 개시의 양태들에 따른, 도 49의 ISP 파이프 처리 로직에 구현될 수 있는 RGB 처리 블록의 일 실시예를 도시하는 더 상세한 뷰이다.
도 72는 본 개시의 양태들에 따른, 도 49의 ISP 파이프 처리 로직에 구현될 수 있는 YCbCr 처리 블록의 일 실시예를 도시하는 더 상세한 뷰이다.
도 73은 본 개시의 양태들에 따른, 1-플레인(plane) 포맷을 이용하여 소스 버퍼 내에 정의되는 바와 같이, 루마 및 크로마(chroma)를 위한 활성 소스 구역들의 그래픽 도면이다.
도 74는 본 개시의 양태들에 따른, 2-플레인 포맷을 이용하여 소스 버퍼 내에 정의되는 바와 같이, 루마 및 크로마(chroma)를 위한 활성 소스 구역들의 그래픽 도면이다.
도 75는 일 실시예에 따른, 도 72에 도시된 바와 같이, YCbCr 처리 블록에 구현될 수 있는 이미지 선명화 로직을 예시하는 블록도이다.
도 76은 일 실시예에 따른, 도 72에 도시된 바와 같이, YCbCr 처리 블록에 구현될 수 있는 에지 강조 로직(edge enhancement logic)을 예시하는 블록도이다.
도 77은 본 개시의 양태들에 따른, 선명화된 루마 값들에 대한 크로마 감쇠 인자들의 관계를 도시하는 그래프이다.
도 78은 일 실시예에 따른, 도 72에 도시된 바와 같이, YCbCr 처리 블록에 구현될 수 있는 이미지 밝기, 콘트라스트 및 컬러(brightness, contrast, and color; BCC) 조정 로직을 예시하는 블록도이다.
도 79는 도 78에 도시된 BCC 조정 로직에서의 컬러 조정 동안 적용될 수 있는 다양한 색상 각도들(hue angles) 및 채도 값들을 정의하는 YCbCr 컬러 공간에서의 색상 및 채도 컬러 휠(wheel)을 도시한다.
본 개시의 하나 이상의 특정 실시예들이 하기에 설명될 것이다. 이들 설명된 실시예들은 오직 본 개시된 기법들의 예들이다. 또한, 이들 실시예들의 간결한 설명을 제공하려는 노력으로, 실제 구현의 모든 특징들이 명세서에 설명되지 않을 수 있다. 임의의 엔지니어링 또는 설계 프로젝트에서와 같은, 임의의 이러한 실제 구현의 개발에서, 구현마다 변할 수 있는, 시스템 관련 및 비즈니스 관련 제약들에의 준수와 같은, 개발자들의 특정 목표들을 실현하기 위해 다수의 구현 특정 결정들이 행해져야 한다는 것을 알아야 한다. 또한, 이러한 개발 노력은 복잡하고 시간 소모적이지만, 그럼에도 불구하고 본 개시의 이득을 갖는 이 기술분야의 통상의 기술자에 대한 설계, 제작 및 제조의 일상적인 일이라는 것을 알아야 한다.
본 개시의 다양한 실시예들의 요소들을 소개할 때, 관사 "하나(a, an)", 및 "상기(the)"는 요소들 중 하나 이상이 존재한다는 것을 의미하도록 의도된다. 용어들 "이루어지는", "포함하는" 및 "갖는"은 열거된 요소들 이외의 부가적인 요소들이 존재할 수 있다는 것을 의미하고 포괄하도록 의도된다. 또한, 본 개시의 "일 실시예" 또는 "실시예"에 대한 참조들은 나열된 특징들을 또한 포함하는 부가적인 실시예들의 존재를 배제하는 것으로 해석되어서는 안 된다는 것을 이해해야 한다.
하기에서 논의되는 바와 같이, 본 개시는 일반적으로 하나 이상의 이미지 감지 디바이스를 통해 취득된 이미지 데이터를 처리하기 위한 기법들에 관한 것이다. 특히, 본 개시의 특정 양태들은 결함이 있는 픽셀들을 검출하고 정정하기 위한 기법들, 미처리 이미지 패턴을 디모자이크하기 위한 기법들, 멀티-스케일 비선명 마스크(multi-scale unsharp mask)를 이용하여 휘도(luminance) 이미지를 선명화하기 위한 기법들, 및 렌즈 쉐이딩 불규칙들을 정정하기 위해 렌즈 쉐이딩 이득들을 적용하기 위한 기법들에 관련될 수 있다. 또한, 본 개시된 기법들은 정지 화상 및 동화상(예를 들어, 비디오) 둘 다에 적용될 수 있고, 디지털 카메라, 통합된 디지털 카메라를 갖는 전자 디바이스, 보안 또는 비디오 감시 시스템, 의학 영상 시스템 등과 같은 임의의 적합한 타입의 이미징 애플리케이션에서 이용될 수 있다는 것을 이해해야 한다.
위의 점을 유념하고, 도 1은 위에 간략히 언급된 이미지 처리 기법들 중 하나 이상을 이용하는 이미지 데이터의 처리를 제공할 수 있는 전자 디바이스(10)의 예를 예시하는 블록도이다. 전자 디바이스(10)는 하나 이상의 이미지 감지 컴포넌트들을 이용하여 취득된 데이터와 같은 이미지 데이터를 수신하고 처리하도록 구성되는, 랩톱 또는 데스크톱 컴퓨터, 모바일 폰, 디지털 미디어 플레이어 등과 같은 임의의 유형의 전자 디바이스일 수 있다. 단지 예시의 방법으로, 전자 디바이스(10)는 캘리포니아주 쿠퍼티노의 Apple Inc.로부터 입수가능한, iPod® 또는 iPhone®의 모델과 같은 포터블 전자 디바이스일 수 있다. 또한, 전자 디바이스(10)는 Apple Inc.로부터 입수가능한, MacBook®, MacBook® Pro, MacBook Air®, iMac®, Mac® Mini, 또는 Mac Pro®의 모델과 같은 데스크톱 또는 랩톱 컴퓨터일 수 있다. 다른 실시예들에서, 전자 디바이스(10)는 또한 이미지 데이터를 취득하고 처리할 수 있는 다른 제조업체로부터의 전자 디바이스의 모델일 수 있다.
그 형태(예를 들어, 포터블 또는 넌-포터블)와 상관없이, 전자 디바이스(10)는 그 중에서도, 결함이 있는 픽셀 정정 및/또는 검출 기법들, 렌즈 쉐이딩 정정 기법들, 디모자이크 기법들, 또는 이미지 선명화 기법들을 포함할 수 있는, 위에서 간략히 논의된 이미지 처리 기법들 중 하나 이상을 이용하는 이미지 데이터의 처리를 제공할 수 있다는 것을 이해해야 한다. 일부 실시예들에서, 전자 디바이스(10)는 전자 디바이스(10)의 메모리에 저장된 이미지 데이터에 이러한 이미지 처리 기법들을 적용할 수 있다. 다른 실시예들에서, 전자 디바이스(10)는, 그 다음에 위에서 언급된 이미지 처리 기법들 중 하나 이상을 이용하여 전자 디바이스(10)에 의해 처리될 수 있는, 이미지 데이터를 취득하도록 구성된, 통합 또는 외부 디지털 카메라와 같은 하나 이상의 이미징 디바이스를 포함할 수 있다. 전자 디바이스(10)의 포터블 및 넌-포터블 실시예들을 도시하는 실시예들은 도 3 내지 도 6에서 이하 더 논의될 것이다.
도 1에 도시된 바와 같이, 전자 디바이스(10)는 디바이스(10)의 기능에 기여하는 다양한 내부 및/또는 외부 컴포넌트들을 포함할 수 있다. 이 기술분야의 통상의 기술자는 도 1에 도시된 다양한 기능 블록들이 하드웨어 요소들(회로를 포함함), 소프트웨어 요소들(컴퓨터 판독가능한 매체에 저장된 컴퓨터 코드를 포함함) 또는 하드웨어 및 소프트웨어 요소들의 조합을 포함할 수 있다는 것을 알 것이다. 예를 들어, 본 예시된 실시예에서, 전자 디바이스(10)는 입출력(I/O) 포트들(12), 입력 구조물들(14), 하나 이상의 프로세서들(16), 메모리 디바이스(18), 비휘발성 저장소(20), 확장 카드(들)(22), 네트워킹 장치(24), 전원(26) 및 디스플레이(28)를 포함할 수 있다. 또한, 전자 디바이스(10)는 디지털 카메라와 같은 하나 이상의 이미징 장치들(30) 및 이미지 처리 회로(32)를 포함할 수 있다. 하기에서 더 논의되는 바와 같이, 이미지 처리 회로(32)는 이미지 데이터를 처리할 때 위에서 논의된 이미지 처리 기법들 중 하나 이상을 구현하도록 구성될 수 있다. 알 수 있는 바와 같이, 이미지 처리 회로(32)에 의해 처리되는 이미지 데이터는 메모리(18) 및/또는 비휘발성 저장 장치(들)(20)로부터 검색될 수 있거나, 또는 이미징 장치(30)를 이용하여 취득될 수 있다.
계속하기 전에, 도 1에 도시된 디바이스(10)의 시스템 블록도는 이러한 디바이스(10)에 포함될 수 있는 다양한 컴포넌트들을 도시하는 고레벨 제어 도면인 것으로 의도된다는 것을 이해해야 한다. 즉, 도 1에 도시된 각각의 개별 컴포넌트 사이의 접속 라인들은 반드시 데이터가 흐르거나 또는 디바이스(10)의 다양한 컴포넌트들 사이에 전송되는 경로들 또는 방향들을 제시하지는 않을 수 있다. 사실상, 하기에서 논의되는 바와 같이, 도시된 프로세서(들)(16)는 일부 실시예들에서 메인 프로세서(예를 들어, CPU), 및 전용 이미지 및/또는 비디오 프로세서들과 같은 복수의 프로세서들을 포함할 수 있다. 이러한 실시예들에서, 이미지 데이터의 처리는 주로 이들 전용 프로세서들에 의해 처리될 수 있으므로, 메인 프로세서(CPU)로부터의 이러한 작업들을 효과적으로 오프로드(offload)할 수 있다.
도 1에 예시된 컴포넌트들 각각에 대하여, I/O 포트들(12)은 전원, 오디오 출력 디바이스(예를 들어, 헤드셋 또는 헤드폰), 또는 다른 전자 디바이스들(핸드헬드 디바이스들 및/또는 컴퓨터들, 프린터들, 프로젝터들, 외부 디스플레이들, 모뎀들, 도킹 스테이션들 등)과 같은 다양한 외부 디바이스에 접속하도록 구성된 포트들을 포함할 수 있다. 일 실시예에서, I/O 포트들(12)은 이미지 처리 회로(32)를 이용하여 처리될 수 있는 이미지 데이터의 취득을 위해 디지털 카메라와 같은 외부 이미징 장치에 접속하도록 구성될 수 있다. I/O 포트들(12)은 USB(universal serial bus) 포트, 직렬 접속 포트, IEEE-1394 (FireWire) 포트, 이더넷 또는 모뎀 포트, 및/또는 AC/DC 전력 접속 포트와 같은 임의의 적합한 인터페이스 타입을 지원할 수 있다.
일부 실시예들에서, 특정 I/O 포트들(12)은 하나보다 많은 기능을 제공하도록 구성될 수 있다. 예를 들어, 일 실시예에서, I/O 포트들(12)은 전자 디바이스(10)와 외부 소스 사이의 데이터의 전송을 용이하게 하도록 기능할 뿐만 아니라, 전원(26)(하나 이상의 재충전가능 배터리를 포함할 수 있음)을 충전하기 위한, 전기 벽 코드 구멍(electrical wall outlet)으로부터 전력을 제공하도록 설계된 파워 어댑터, 또는 데스크톱 또는 랩톱 컴퓨터와 같은 다른 전기 디바이스로부터 전력을 끌어오도록 구성된 인터페이스 케이블과 같은 전력 충전 인터페이스에 디바이스(10)를 연결하도록 기능할 수 있는 Apple Inc.로부터의 등록 상표가 붙은 포트를 포함할 수 있다. 따라서, I/O 포트(12)는 예를 들어 I/O 포트(12)를 통해 디바이스(10)에 연결되는 외부 컴포넌트에 따라 데이터 전송 포트 및 AC/DC 전력 접속 포트 둘 다로서 이중으로 기능하도록 구성될 수 있다.
입력 구조물들(14)은 프로세서(들)(16)에 사용자 입력 또는 피드백을 제공할 수 있다. 예를 들어, 입력 구조물들(14)은 전자 디바이스(10)에서 실행되는 애플리케이션들과 같은 전자 디바이스(10)의 하나 이상의 기능을 제어하도록 구성될 수 있다. 단지 예시의 방법으로, 입력 구조물들(14)은 버튼, 슬라이더, 스위치, 제어 패드, 키, 노브(knob), 스크롤 휠, 키보드, 마우스, 터치패드 등, 또는 그의 일부 조합을 포함할 수 있다. 일 실시예에서, 입력 구조물들(14)은 사용자가 디바이스(10)에 디스플레이된 그래픽 사용자 인터페이스(GUI)를 내비게이트하게 할 수 있다. 또한, 입력 구조물들(14)은 디스플레이(28)와 결합하여 제공된 터치 센서티브 메커니즘(touch sensitive mechanism)을 포함할 수 있다. 이러한 실시예들에서, 사용자는 터치 센서티브 메커니즘을 통해 디스플레이된 인터페이스 요소들을 선택하거나 상호작용할 수 있다.
입력 구조물들(14)은 하나 이상의 프로세서(16)에 사용자 입력 또는 피드백이 제공되는 다양한 디바이스들, 회로 및 경로를 포함할 수 있다. 이러한 입력 구조물들(14)은 디바이스(10)의 기능, 디바이스(10)에서 실행되는 애플리케이션들, 및/또는 전자 디바이스(10)에 접속되거나 전자 디바이스(10)에 의해 이용되는 임의의 인터페이스 또는 디바이스를 제어하도록 구성될 수 있다. 예를 들어, 입력 구조물들(14)은 사용자가 디스플레이된 사용자 인터페이스 또는 애플리케이션 인터페이스를 내비게이트하게 할 수 있다. 입력 구조물들(14)의 예들은 버튼, 슬라이더, 스위치, 제어 패드, 키, 노브, 스크롤 휠, 키보드, 마우스, 터치패드 등을 포함할 수 있다.
특정 실시예들에서, 입력 구조물(14) 및 디스플레이 디바이스(28)는 "터치스크린"의 경우에서와 같이 함께 제공될 수 있어, 터치 센서티브 메커니즘이 디스플레이(28)와 결합하여 제공된다. 이러한 실시예들에서, 사용자는 터치 센서티브 메커니즘을 통해 디스플레이된 인터페이스 요소들을 선택하거나 상호작용할 수 있다. 이러한 방식으로, 디스플레이된 인터페이스는 상호작용 기능을 제공할 수 있어, 사용자가 디스플레이(28)를 터치함으로써 디스플레이된 인터페이스를 내비게이트할 수 있게 한다. 예를 들어, 디스플레이(28)에 디스플레이된 사용자 또는 애플리케이션 인터페이스와 상호작용하는 것과 같은 입력 구조물들(14)과의 사용자 상호작용은 사용자 입력을 표시하는 전기 신호들을 생성할 수 있다. 이 입력 신호들은 추가의 처리를 위해 입력 허브 또는 데이터 버스와 같은 적절한 경로들을 통해 하나 이상의 프로세서(16)에 라우팅될 수 있다.
입력 구조물(들)(14)을 통해 수신된 다양한 입력 신호들을 처리하는 것에 부가하여, 프로세서(들)(16)는 디바이스(10)의 일반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(들)(16)는 오퍼레이팅 시스템, 프로그램들, 사용자 및 애플리케이션 인터페이스들, 및 전기 디바이스(10)의 임의의 다른 기능들을 실행하기 위한 처리 능력을 제공할 수 있다. 프로세서(들)(16)는 하나 이상의 "범용" 마이크로프로세서, 하나 이상의 특수용 마이크로프로세서 및/또는 애플리케이션 특정 마이크로프로세서(application-specific microprocessor; ASIC), 또는 이러한 처리 컴포넌트들의 조합과 같은, 하나 이상의 마이크로프로세서를 포함할 수 있다. 예를 들어, 프로세서(들)(16)는 그래픽 프로세서들(GPU), 비디오 프로세서들, 오디오 프로세서들 및/또는 관련 칩셋들 뿐만 아니라, 하나 이상의 명령어 세트(예를 들어, RISC) 프로세서를 포함할 수 있다. 알 수 있는 바와 같이, 프로세서(들)(16)는 디바이스(10)의 다양한 컴포넌트들 사이에 데이터 및 명령어들을 전송하기 위한 하나 이상의 데이터 버스에 연결될 수 있다. 특정 실시예들에서, 프로세서(들)(16)는 Apple Inc.로부터 이용가능한 Photo Booth®, Aperture®, iPhoto®, 또는 Preview®, 또는 Apple Inc.에 의해 제공되고 iPhone®의 모델들에 이용가능한 "Camera" 및/또는 "Photo" 애플리케이션들과 같은, 전자 디바이스(10)에서 이미징 애플리케이션들을 실행하기 위한 처리 능력을 제공할 수 있다.
프로세서(들)(16)에 의해 처리될 명령어들 또는 데이터는 메모리 디바이스(18)와 같은 컴퓨터 판독가능한 매체에 저장될 수 있다. 메모리 디바이스(18)는 RAM(random access memory)과 같은 휘발성 메모리로서, ROM(read-only memory)과 같은 비휘발성 메모리로서, 또는 하나 이상의 RAM 및 ROM 디바이스들의 조합으로서 제공될 수 있다. 메모리(18)는 다양한 정보를 저장할 수 있고, 다양한 목적으로 이용될 수 있다. 예를 들어, 메모리(18)는 BIOS(basic input/output system), 오퍼레이팅 시스템, 다양한 프로그램, 애플리케이션, 또는 사용자 인터페이스 기능들, 프로세서 기능들 등을 포함하여 전자 디바이스(10) 상에서 실행될 수 있는 임의의 다른 루틴들과 같은, 전자 디바이스(10)를 위한 펌웨어를 저장할 수 있다. 또한, 메모리(18)는 전자 디바이스(10)의 동작 동안 버퍼링 또는 캐싱(caching)을 위해 이용될 수 있다. 예를 들어, 일 실시예에서, 메모리(18)는 디스플레이(28)에 출력되는 비디오 데이터를 버퍼링하기 위한 하나 이상의 프레임 버퍼들을 포함한다.
메모리 디바이스(18)에 부가하여, 전자 디바이스(10)는 데이터 및/또는 명령어들의 영구 저장을 위한 비휘발성 저장소(20)를 더 포함할 수 있다. 비휘발성 저장소(20)는 플래시 메모리, 하드 드라이브, 또는 임의의 다른 광, 자기, 및/또는 고체 상태 저장소 매체, 또는 그의 일부 조합을 포함할 수 있다. 따라서, 명확성을 위해 도 1에 단일 디바이스로서 도시되지만, 비휘발성 저장 장치(들)(20)는 프로세서(들)(16)와 결합하여 동작하는 위에 열거된 저장 장치들 중 하나 이상의 조합을 포함할 수 있다는 것을 이해해야 한다. 비휘발성 저장소(20)는 펌웨어, 데이터 파일들, 이미지 데이터, 소프트웨어 프로그램들 및 애플리케이션들, 무선 접속 정보, 개인 정보, 사용자 선호도들, 및 임의의 다른 적절한 데이터를 저장하는데 이용될 수 있다. 본 개시의 양태들에 따르면, 비휘발성 저장소(20) 및/또는 메모리 디바이스(18)에 저장된 이미지 데이터는 디스플레이 상에 출력되기 전에 이미지 처리 회로(32)에 의해 처리될 수 있다.
도 1에 예시된 실시예는 또한 하나 이상의 카드 또는 확장 슬롯을 포함할 수 있다. 카드 슬롯들은 부가적인 메모리, I/O 기능, 또는 네트워킹 능력과 같은 기능을 전자 디바이스(10)에 추가하는데 이용될 수 있는 확장 카드(22)를 받아들이도록 구성될 수 있다. 이러한 확장 카드(22)는 임의의 타입의 적절한 커넥터를 통해 디바이스에 접속할 수 있고, 전자 디바이스(10)의 하우징에 대해 내부 또는 외부로 액세스될 수 있다. 예를 들어, 일 실시예에서, 확장 카드(24)는 SD(SecureDigital) 카드, mini- 또는 microSD, CompactFlash 카드 등과 같은 플래시 메모리 카드일 수 있거나, 또는 PCMCIA 디바이스일 수 있다. 또한, 확장 카드(24)는 모바일 폰 능력을 제공하는 전자 디바이스(10)의 실시예와 함께 사용하기 위한 SIM(Subscriber Identity Module) 카드일 수 있다.
전자 디바이스(10)는 또한 무선 802.11 표준 또는 임의의 다른 적절한 네트워킹 표준(예를 들어, EDGE(Enhanced Data Rates for GSM Evolution) 네트워크, 3G 데이터 네트워크, 또는 인터넷과 같은, WAN(wide area network), LAN(local area network))을 통한 네트워크 접속성을 제공할 수 있는 네트워크 컨트롤러 또는 네트워크 인터페이스 카드(NIC)일 수 있는 네트워크 장치(24)를 포함한다. 특정 실시예들에서, 네트워크 장치(24)는 Apple Inc.로부터 이용가능한, iTunes® 음악 서비스와 같은 온라인 디지털 미디어 콘텐츠 제공자에게 접속을 제공할 수 있다.
디바이스(10)의 전원(26)은 넌-포터블 및 포터블 설정들 둘 다에서 디바이스(10)에 전력을 공급하기 위한 능력을 포함할 수 있다. 예를 들어, 포터블 설정에서, 디바이스(10)는 디바이스(10)에 전력을 공급하기 위해, Li-Ion 배터리와 같은 하나 이상의 배터리를 포함할 수 있다. 배터리는 전기 벽 코드 구멍과 같은 외부 전원에 디바이스(10)를 접속함으로써 재충전될 수 있다. 넌-포터블 설정에서, 전원(26)은 전기 벽 코드 구멍으로부터 전력을 끌어들여 데스크톱 컴퓨팅 시스템과 같은 넌-포터블 전자 디바이스의 다양한 컴포넌트들에 전력을 분배하도록 구성된 PSU(power supply unit)를 포함할 수 있다.
디스플레이(28)는 이하 더 논의되는 바와 같이, 오퍼레이팅 시스템을 위한 GUI, 또는 이미지 처리 회로(32)에 의해 처리된 이미지 데이터(정지 화상 및 비디오 데이터를 포함함)와 같은, 디바이스(10)에 의해 생성된 다양한 이미지들을 디스플레이하는데 이용될 수 있다. 위에서 언급한 바와 같이, 이미지 데이터는 이미징 장치(30)를 이용하여 취득된 이미지 데이터 또는 메모리(18) 및/또는 비휘발성 저장소(20)로부터 검색된 이미지 데이터를 포함할 수 있다. 디스플레이(28)는 예를 들어, LCD(liquid crystal display), 플라즈마 디스플레이, 또는 OLED(organic light emitting diode) 디스플레이와 같은 임의의 적절한 유형의 디스플레이일 수 있다. 또한, 위에서 논의한 바와 같이, 디스플레이(28)는 전자 디바이스(10)에 대한 제어 인터페이스의 부분으로서 기능할 수 있는 위에서 논의한 터치 센서티브 메커니즘(예를 들어, 터치 스크린)과 결합하여 제공될 수 있다.
예시된 이미징 장치(들)(30)는 정지 화상과 동화상(예를 들어, 비디오) 둘 다를 취득하도록 구성된 디지털 카메라로서 제공될 수 있다. 카메라(30)는 광을 캡처하고 전기 신호들로 변환하도록 구성된 렌즈 및 하나 이상의 이미지 센서들을 포함할 수 있다. 단지 예시의 방법으로, 이미지 센서는 CMOS 이미지 센서(예를 들어, CMOS 활성 픽셀 센서(APS)) 또는 CCD(charge-coupled device) 센서를 포함할 수 있다. 일반적으로, 카메라(30)에서의 이미지 센서는 픽셀들의 어레이를 갖는 집적 회로를 포함하고, 각각의 픽셀은 광을 감지하기 위한 광검출기를 포함한다. 이 기술분야의 통상의 기술자는 알 수 있는 바와 같이, 이미징 픽셀들에서의 광검출기들은 일반적으로 카메라 렌즈들을 통해 캡처된 광의 세기를 검출한다. 그러나, 광검출기들은 그 자체로 일반적으로 캡처된 광의 파장을 검출할 수 없고, 따라서 컬러 정보를 결정할 수 없다.
따라서, 이미지 센서는 컬러 정보를 캡처하기 위해 이미지 센서의 픽셀 어레이 위에 놓일 수 있거나 배치될 수 있는 컬러 필터 어레이(CFA)를 더 포함할 수 있다. 컬러 필터 어레이는 작은 컬러 필터들의 어레이를 포함할 수 있고, 이들 각각은 이미지 센서의 각각의 픽셀에 오버랩되고 파장에 의해 캡처된 광을 필터링할 수 있다. 따라서, 함께 이용될 때, 컬러 필터 어레이 및 광검출기들은 캡처된 이미지를 표현할 수 있는 카메라를 통해 캡처된 광에 대한 파장 및 세기 정보를 둘 다 제공할 수 있다.
일 실시예에서, 컬러 필터 어레이는 베이어 컬러 필터 어레이를 포함할 수 있고, 이것은 50% 녹색 요소들, 25% 적색 요소들, 및 25% 청색 요소들인 필터 패턴을 제공한다. 예를 들어, 도 2는 2개의 녹색 요소들(Gr 및 Gb), 1개의 적색 요소(R), 및 1개의 청색 요소(B)를 포함하는 베이어 CFA의 2x2 픽셀 블록을 도시한다. 따라서, 베이어 컬러 필터 어레이를 활용하는 이미지 센서는 녹색, 적색 및 청색 파장들에서 카메라(30)에 의해 수신된 광의 세기에 관한 정보를 제공할 수 있고, 이에 의해 각각의 이미지 픽셀은 3개의 컬러(RGB) 중 하나만을 레코딩한다. "미처리 이미지 데이터" 또는 "미처리 도메인" 내의 데이터라고 지칭될 수 있는 이 정보는 그 다음에 일반적으로 각각의 픽셀에 대해 적색, 녹색 및 청색 값들의 세트를 보간함으로써, 미처리 이미지 데이터를 풀 컬러 이미지로 변환하기 위해 하나 이상의 디모자이크 기법들을 이용하여 처리될 수 있다. 하기에서 더 논의되는 바와 같이, 이러한 디모자이크 기법들은 이미지 처리 회로(32)에 의해 수행될 수 있다.
위에서 언급한 바와 같이, 이미지 처리 회로(32)는 결함이 있는 픽셀 검출/정정, 렌즈 쉐이딩 정정, 디모자이크, 및 이미지 선명화, 잡음 감소, 감마 정정(gamma correction), 이미지 강조(image enhancement), 컬러 공간 변환(color-space conversion), 이미지 압축, 크로마 서브-샘플링(chroma sub-sampling), 및 이미지 스케일링(image scaling) 동작들 등과 같은 다양한 이미지 처리 단계들을 제공할 수 있다. 일부 실시예들에서, 이미지 처리 회로(32)는 다양한 이미지 처리 단계들 각각을 수행하기 위한 이미지 처리 "파이프라인"을 집합적으로 형성하는 다양한 서브컴포넌트들 및/또는 로직의 개별 유닛들을 포함할 수 있다. 이들 서브컴포넌트들은 하드웨어(예를 들어, 디지털 신호 프로세서들 또는 ASIC들) 또는 소프트웨어를 이용하여, 또는 하드웨어 및 소프트웨어 컴포넌트들의 조합을 통해 구현될 수 있다. 이미지 처리 회로(32)에 의해 제공될 수 있는 다양한 이미지 처리 동작들 및, 특히 결함이 있는 픽셀 검출/정정, 렌즈 쉐이딩 정정, 디모자이크, 및 이미지 선명화에 관한 그의 처리 동작들은 하기에서 더 상세히 논의될 것이다.
계속하기 전에, 하기에 논의된 다양한 이미지 처리 기법들의 다양한 실시예들은 베이어 CFA를 활용할 수 있지만, 본 개시된 기법들은 이와 관련하여 제한되는 것으로 의도되지 않는다는 것을 주목해야 한다. 사실상, 이 기술분야의 통상의 기술자는 본원에 제공된 이미지 처리 기법들은 RGBW 필터들, CYGM 필터들 등을 포함한 임의의 적절한 타입의 컬러 필터 어레이에 적용가능할 수 있다는 것을 알 것이다.
다시 전자 디바이스(10)를 참조하면, 도 3 내지 도 6은 전자 디바이스(10)가 취할 수 있는 다양한 형태를 예시한다. 위에서 언급한 바와 같이, 전자 디바이스(10)는 일반적으로 포터블인 컴퓨터들(랩톱, 노트북, 및 태블릿 컴퓨터들과 같은 것) 및 일반적으로 넌-포터블인 컴퓨터들(데스크톱 컴퓨터들, 워크스테이션들 및/또는 서버들과 같은 것)을 포함하는 컴퓨터의 형태를 취할 수 있거나, 또는 핸드헬드 포터블 전자 디바이스들(예를 들어, 디지털 미디어 플레이어 또는 모바일 폰)과 같은 다른 타입의 전자 디바이스의 형태를 취할 수 있다. 특히, 도 3 및 도 4는 각각 랩톱 컴퓨터(40) 및 데스크톱 컴퓨터(50)의 형태로 전자 디바이스(10)를 도시한다. 도 5 및 도 6은 핸드헬드 포터블 디바이스(60)의 형태로 전자 디바이스(10)의 전면도 및 후면도를 각각 도시한다.
도 3에 도시된 바와 같이, 도시된 랩톱 컴퓨터(40)는 하우징(42), 디스플레이(28), I/O 포트들(12), 및 입력 구조물들(14)을 포함한다. 입력 구조물들(14)은 하우징(42)과 통합되는 키보드 및 터치패드 마우스를 포함할 수 있다. 또한, 입력 구조물(14)은 컴퓨터(40)의 동작에 관한 다양한 다른 양태들(예를 들어, 사운드 볼륨, 디스플레이 밝기 등)을 조정할 뿐만 아니라, 컴퓨터(40)에서 실행되는 GUI 또는 애플리케이션을 동작하도록, 컴퓨터에 전력을 공급하거나 컴퓨터를 시작하기 위해서와 같이, 컴퓨터(40)와 상호작용하기 위해 이용될 수 있는 다양한 다른 버튼들 및/또는 스위치들을 포함할 수 있다. 컴퓨터(40)는 또한 FireWire® 또는 USB 포트, HDMI(high definition multimedia interface) 포트, 또는 외부 디바이스에 접속하기에 적합한 임의의 다른 타입의 포트와 같은, 위에서 논의된 바와 같이, 부가적인 디바이스들에 접속성을 제공하는 다양한 I/O 포트들(12)을 포함할 수 있다. 또한, 컴퓨터(40)는 도 1과 관련하여 위에서 설명한 바와 같이, 네트워크 접속성(예를 들어, 네트워크 장치(26)), 메모리(예를 들어, 메모리(20)), 및 저장소 능력들(예를 들어, 저장 장치(22))을 포함할 수 있다.
또한, 랩톱 컴퓨터(40)는 예시된 실시예에서 통합된 이미징 장치(30)(예를 들어, 카메라)를 포함할 수 있다. 다른 실시예들에서, 랩톱 컴퓨터(40)는 통합된 카메라(30) 대신에 또는 부가하여 I/O 포트들(12) 중 하나 이상에 접속된 외부 카메라(예를 들어, 외부 USB 카메라 또는 "웹캠(webcam)")를 활용할 수 있다. 예를 들어, 외부 카메라는 Apple Inc.로부터 이용가능한 iSight® 카메라일 수 있다. 카메라(30)는 통합형이든지 또는 외부형이든지 간에, 이미지들의 캡처 및 레코딩을 제공할 수 있다. 이러한 이미지들은 그 다음에 이미지 뷰잉 애플리케이션을 이용하여 사용자에 의해 뷰잉될 수 있거나, 또는 Apple Inc.로부터 이용가능한 Photo Booth?, Aperture?, iPhoto?, 또는 Preview®와 같은 이미지 편집/뷰잉 애플리케이션들 및 iChat®와 같은 화상 회의 애플리케이션들을 포함하는, 다른 애플리케이션들에 의해 활용될 수 있다. 특정 실시예들에서, 도시된 랩톱 컴퓨터(40)는 Apple Inc.로부터 이용가능한 MacBook®, MacBook? Pro, MacBook Air® 또는 PowerBook®의 모델일 수 있다. 또한, 컴퓨터(40)는 일 실시예에서 Apple Inc.로부터 또한 이용가능한 iPad® 태블릿 컴퓨터의 모델과 같은 포터블 태블릿 컴퓨팅 디바이스일 수 있다.
도 4는 전자 디바이스(10)가 데스크톱 컴퓨터(50)로서 제공되는 실시예를 더 예시한다. 알 수 있는 바와 같이, 데스크톱 컴퓨터(50)는 일반적으로 도 4에 도시된 랩톱 컴퓨터(40)에 의해 제공되는 것과 유사할 수 있지만, 일반적으로 더 큰 전체 폼 팩터(overall form factor)를 가질 수 있는 다수의 특징을 포함할 수 있다. 도시된 바와 같이, 데스크톱 컴퓨터(50)는 도 1에 도시된 블록도와 관련하여 위에서 논의한 다양한 다른 컴포넌트들 뿐만 아니라, 디스플레이(28)를 포함하는 인클로저(enclosure)(42)에 하우징될 수 있다. 또한, 데스크톱 컴퓨터(50)는 하나 이상의 I/O 포트들(12)(예를 들어, USB)을 통해 컴퓨터(50)에 연결될 수 있거나 또는 컴퓨터(50)와 무선으로(예를 들어, RF, 블루투스 등) 통신할 수 있는 외부 키보드 및 마우스(입력 구조물들(14))를 포함할 수 있다. 데스크톱 컴퓨터(50)는 또한 위에서 논의한 바와 같이, 통합 또는 외부 카메라일 수 있는 이미징 장치(30)를 포함한다. 특정 실시예들에서, 도시된 데스크톱 컴퓨터(50)는 Apple Inc.로부터 이용가능한 iMac®, Mac® mini, 또는 Mac Pro®의 모델일 수 있다.
더 도시된 바와 같이, 디스플레이(28)는 사용자에 의해 뷰잉될 수 있는 다양한 이미지들을 생성하도록 구성될 수 있다. 예를 들어, 컴퓨터(50)의 동작 동안, 디스플레이(28)는 사용자가 컴퓨터(50)에서 실행되는 오퍼레이팅 시스템 및/또는 애플리케이션과 상호작용할 수 있게 하는 그래픽 사용자 인터페이스("GUI")(52)를 디스플레이할 수 있다. GUI(52)는 다양한 레이어, 윈도우, 스크린, 템플릿, 또는 디스플레이 디바이스(28)의 전부 또는 일부에 디스플레이될 수 있는 다른 그래픽 요소를 포함할 수 있다. 예를 들어, 도시된 실시예에서, 오퍼레이팅 시스템 GUI(52)는 다양한 그래픽 아이콘(54)을 포함할 수 있고, 이들 각각은 사용자 선택(예를 들어, 키보드/마우스 또는 터치스크린 입력을 통해) 검출 시에 오픈될 수 있거나 실행될 수 있는 다양한 애플리케이션들에 대응할 수 있다. 아이콘들(54)은 스크린에 디스플레이된 하나 이상의 그래픽 윈도우 요소(58) 내에 또는 도크(56)에 디스플레이될 수 있다. 일부 실시예들에서, 아이콘(54)의 선택은 계층적 내비게이션 프로세스(hierarchical navigation process)로 이어질 수 있어, 아이콘(54)의 선택은 스크린으로 이어지거나 하나 이상의 부가적인 아이콘 또는 다른 GUI 요소들을 포함하는 다른 그래픽 윈도우를 오픈한다. 단지 예시의 방법으로, 도 4에 디스플레이된 오퍼레이팅 시스템 GUI(52)는 Apple Inc.로부터 이용가능한 Mac OS® 오퍼레이팅 시스템의 버전으로부터 일 수 있다.
도 5 및 도 6을 계속하면, 전자 디바이스(10)는 Apple Inc.로부터 이용가능한 iPod® 또는 iPhone®의 모델일 수 있는 포터블 핸드헬드 전자 디바이스(60)의 형태로 더 예시된다. 도시된 실시예에서, 핸드헬드 디바이스(60)는 내부 컴포넌트들을 물리적 손상으로부터 보호하고 전자기 간섭으로부터 그것들을 차폐하도록 기능할 수 있는 인클로저(42)를 포함한다. 인클로저(42)는 플라스틱, 금속, 또는 합성 물질과 같은 임의의 적절한 물질 또는 물질들의 조합으로부터 형성될 수 있고, 무선 네트워킹 신호들과 같은 전자기 방사의 특정 주파수들이, 도 5에 도시된 바와 같이, 인클로저(42) 내에 배치될 수 있는, 무선 통신 회로(예를 들어, 네트워크 장치(24))로 통과할 수 있게 한다.
인클로저(42)는 또한 사용자가 핸드헬드 디바이스(60)와 인터페이스할 수 있는 다양한 사용자 입력 구조물(14)을 포함한다. 예를 들어, 각각의 입력 구조물(14)은 눌러지거나 작동(actuate)될 때 하나 이상의 각각의 디바이스 기능들을 제어하도록 구성될 수 있다. 예를 들어, 입력 구조물들(14) 중 하나 이상은 디스플레이될 "홈" 스크린(42) 또는 메뉴를 호출(invoke)하고, 슬립(sleep), 웨이크(wake), 또는 전력 온/오프(powered on/off) 모드 사이에 토글(toggle)하고, 셀룰러 폰 애플리케이션에 대한 벨소리(ringer)를 조용하게 하고, 볼륨 출력을 증가 또는 감소하는 등을 하도록 구성될 수 있다. 예시된 입력 구조물들(14)은 단지 예시적인 것이고, 핸드헬드 디바이스(60)는 버튼들, 스위치들, 키들, 노브들, 스크롤 휠들 등을 포함하는 다양한 형태들로 존재하는 임의의 수의 적절한 사용자 입력 구조물들을 포함할 수 있다는 것을 이해해야 한다.
도 5에 도시된 바와 같이, 핸드헬드 디바이스(60)는 다양한 I/O 포트들(12)을 포함할 수 있다. 예를 들어, 도시된 I/O 포트들(12)은 데이터 파일들을 송수신하기 위한 또는 전원(26)을 충전하기 위한 사유 접속 포트(proprietary connection port)(12a) 및 디바이스(60)를 오디오 출력 디바이스(예를 들어, 헤드폰들 또는 스피커들)에 접속하기 위한 오디오 접속 포트(12b)를 포함할 수 있다. 또한, 핸드헬드 디바이스(60)가 모바일 폰 기능을 제공하는 실시예들에서, 디바이스(60)는 SIM(subscriber identify module) 카드(예를 들어, 확장 카드(22))를 받아들이기 위한 I/O 포트(12c)를 포함할 수 있다.
LCD, OLED, 또는 임의의 적절한 타입의 디스플레이일 수 있는 디스플레이 디바이스(28)는 핸드헬드 디바이스(60)에 의해 생성된 다양한 이미지들을 디스플레이할 수 있다. 예를 들어, 디스플레이(28)는 전력 상태, 신호 강도, 외부 디바이스 접속들 등과 같은 핸드헬드 디바이스(60)의 하나 이상의 상태와 관련하여 사용자에게 피드백을 제공하는 다양한 시스템 표시기들(64)을 디스플레이할 수 있다. 디스플레이는 또한 도 4와 관련하여 위에서 논의한 바와 같이, 사용자가 디바이스(60)와 상호작용할 수 있게 하는 GUI(52)를 디스플레이할 수 있다. GUI(52)는 각각의 아이콘(54)의 사용자 선택 검출시 오픈될 수 있거나 실행될 수 있는 다양한 애플리케이션들에 대응할 수 있는 아이콘들(54)과 같은 그래픽 요소들을 포함할 수 있다. 예를 들어, 아이콘들(54) 중 하나 이상은 이미지들을 취득하기 위한 카메라(30)(도 5에서 팬텀 라인들로 도시됨)와 결합하여 이용될 수 있는 카메라 애플리케이션(66)을 표현할 수 있다. 간략히 도 6을 참조하면, 도 5에 도시된 핸드헬드 전자 디바이스(60)의 후면도가 예시되고, 이것은 하우징(42)과 통합되고 핸드헬드 디바이스(60)의 후면에 배치되는 것으로서 카메라(30)를 도시한다.
위에서 언급된 바와 같이, 카메라(30)를 이용하여 획득된 이미지 데이터는 하드웨어(예를 들어, 인클로저(42) 내에 배치) 및/또는 장치(60)의 하나 이상의 저장 장치(예를 들어, 메모리(18) 또는 비휘발성 저장소(20))에 저장된 소프트웨어를 포함할 수 있는 이미지 처리 회로(32)를 이용하여 처리될 수 있다. 카메라 애플리케이션(66) 및 카메라(30)를 이용하여 획득되는 이미지들은 장치(60) 상에 (예를 들어, 저장 장치(20) 내에) 저장될 수 있고, 사진 보기 애플리케이션(68)을 이용하여 추후에 볼 수 있다.
핸드헬드형 장치(60)는 또한 다양한 오디오 입력 및 출력 요소들을 포함할 수 있다. 예를 들어, 개괄적으로 참조 번호(70)에 의해 나타난 오디오 입력/출력 요소들은 하나 이상의 마이크로폰과 같은 입력 수신기를 포함할 수 있다. 예를 들어, 핸드헬드형 장치(60)가 셀폰 기능성을 포함하는 경우, 입력 수신기들은 사용자의 음성과 같은 사용자 오디오 입력을 수신하도록 구성될 수 있다. 또한, 오디오 입력/출력 요소들(70)은 하나 이상의 출력 송신기를 포함할 수 있다. 그러한 출력 송신기들은 미디어 플레이어 애플리케이션(72)을 이용한 음악 데이터의 재생 동안 등에서, 오디오 신호들을 사용자에게 송신하도록 기능할 수 있는 하나 이상의 스피커를 포함할 수 있다. 또한, 핸드헬드형 장치(60)가 셀폰 애플리케이션을 포함하는 실시예들에서는, 도 5에 도시된 바와 같이, 추가의 오디오 출력 송신기(74)가 제공될 수 있다. 오디오 입력/출력 요소들(70)의 출력 송신기들과 같이, 출력 송신기(74)는 또한 전화 통화 동안 수신된 음성 데이터와 같은 오디오 신호를 사용자에게 송신하도록 구성된 하나 이상의 스피커를 포함할 수 있다. 따라서, 오디오 입력/출력 요소들(70 및 74)은 전화기의 오디오 수신 및 송신 요소들로서 기능하는 것과 관련하여 동작할 수 있다.
이제 전자 장치(10)가 취할 수 있는 다양한 형태에 관한 일부 맥락이 제공되었고, 이하에서 본 논의는 도 1에 도시된 이미지 처리 회로(32)에 초점이 맞춰질 것이다. 위에서 언급된 바와 같이, 이미지 처리 회로(32)는 하드웨어 및/또는 소프트웨어 컴포넌트를 이용하여 구현될 수 있으며, 이미지 신호 처리(ISP) 파이프라인을 정의하는 다양한 처리 유닛들을 포함할 수 있다. 구체적으로, 이하의 논의는 본 명세서에 제시된 이미지 처리 기술의 양태들, 특히 불량 픽셀 검출/정정 기술, 렌즈 쉐이딩 정정 기술, 디모자이크 기술, 및 이미지 선명화 기술에 관련된 것들에 초점이 맞춰질 수 있다.
이제 도 7을 참조하면, 여기에 개시되는 기술들의 일 실시예에 따라, 이미지 처리 회로(32)의 부분으로서 구현될 수 있는 몇몇 기능 컴포넌트들을 도시한 단순화된 최상위 레벨 블록도가 도시되어 있다. 구체적으로, 도 7은 적어도 일 실시예에 따라, 이미지 데이터가 어떻게 이미지 처리 회로(32)를 통해 흐를 수 있는지를 나타내도록 의도된 것이다. 이미지 처리 회로(32)의 일반적인 개요를 제공하기 위해, 이러한 기능 컴포넌트들이 이미지 데이터를 처리하기 위해 어떻게 동작하는지에 관한 일반적인 설명이 도 7을 참조하여 여기에 제공되는 한편, 도시된 기능 컴포넌트들과 그들의 개별 서브컴포넌트들 각각의 보다 더 구체적인 설명이 이하에 더 제공될 것이다.
도시된 실시예를 참조하면, 이미지 처리 회로(32)는 이미지 신호 처리(ISP, image signal processing) 프런트-엔드 처리 로직(80), ISP 파이프 처리 로직(82) 및 제어 로직(84)을 포함할 수 있다. 이미징 장치(30)에 의해 캡처된 이미지 데이터는 우선 ISP 프런트-엔드 로직(80)에 의해 처리되고, ISP 파이프 로직(82) 및/또는 이미징 장치(30)를 위한 하나 이상의 제어 파라미터를 결정하기 위해 이용될 수 있는 이미지 통계를 캡처하기 위해 분석될 수 있다. ISP 프런트-엔드 로직(80)은 이미지 센서 입력 신호로부터 이미지 데이터를 캡처하도록 구성될 수 있다. 예를 들어, 도 7에 도시된 바와 같이, 이미징 장치(30)는 하나 이상의 렌즈(88) 및 이미지 센서(들)(90)를 갖는 카메라를 포함할 수 있다. 위에서 논의된 바와 같이, 이미지 센서(들)(90)는 컬러 필터 어레이(예를 들어, Bayer 필터)를 포함할 수 있고, 따라서 이미지 센서들(90)의 각각의 이미징 픽셀에 의해 캡처된 광 강도 및 파장 정보 둘 다를 제공하여, ISP 프런트-엔드 로직(80)에 의해 처리될 수 있는 미처리 이미지 데이터의 세트를 가능하게 할 수 있다. 예를 들어, 이미징 장치(30)로부터의 출력(92)은 센서 인터페이스(94)에 의해 수신될 수 있고, 그러면, 그 센서 인터페이스는 예를 들어 센서 인터페이스 유형에 기초하여 ISP 프런트-엔드 로직(80)에 미처리 이미지 데이터(96)를 제공할 수 있다. 예를 들어, 센서 인터페이스(94)는 SMIA(Standard Mobile Imaging Architecture) 인터페이스, 또는 다른 직렬 또는 병렬 카메라 인터페이스, 또는 그들의 소정의 조합을 이용할 수 있다. 일부 실시예들에서, ISP 프런트-엔드 로직(80)은 그 자신의 클럭 도메인(clock domain) 내에서 동작할 수 있으며, 센서 인터페이스(94)에 비동기 인터페이스를 제공하여, 상이한 크기들 및 타이밍 조건들의 이미지 센서들을 지원할 수 있다.
미처리 이미지 데이터(96)는 ISP 프런트-엔드 로직(80)에 제공될 수 있고, 다수의 포맷으로 픽셀별로(on a pixel-by-pixel basis) 처리될 수 있다. 예를 들어, 각각의 이미지 픽셀은 8, 10, 12 또는 14 비트의 비트 깊이를 가질 수 있다. ISP 프런트-엔드 로직(80)은 이미지 데이터(96)에 관한 통계를 수집할 수 있을 뿐만 아니라, 미처리 이미지 데이터(96)에 대해 하나 이상의 이미지 처리 동작을 수행할 수 있다. 통계 데이터의 수집뿐만 아니라 이미지 처리 동작들은 동일한 또는 상이한 비트 깊이 정밀도(precisions)에서 수행될 수 있다. 예를 들어, 일 실시예에서, 미처리 이미지 픽셀 데이터(96)의 처리는 14비트의 정밀도에서 수행될 수 있다. 그러한 실시예들에서, 14비트보다 작은 비트 깊이(예를 들어, 8비트, 10비트, 12비트)를 갖는 ISP 프런트-엔드 로직(80)에 의해 수신되는 미처리 픽셀 데이터는 이미지 처리를 목적으로 14비트로 업샘플링될 수 있다. 다른 실시예에서, 통계 처리는 8비트의 정밀도에서 발생할 수 있고, 따라서 더 높은 비트 깊이를 갖는 미처리 픽셀 데이터는 통계를 목적으로 8 비트 포맷으로 다운샘플링될 수 있다. 알 수 있을 바와 같이, 8비트로의 다운샘플링은 하드웨어 크기(예를 들어, 면적)를 감소시킬 수 있고, 또한 통계 데이터에 대한 처리/계산 복잡도를 감소시킬 수 있다. 또한, 미처리 이미지 데이터는 통계 데이터가 잡음에 대해 더 강건(robust)해지는 것을 허용하기 위해 공간적으로 평균화될 수 있다.
또한, 도 7에 도시된 바와 같이, ISP 프런트-엔드 로직(80)은 메모리(108)로부터 픽셀 데이터를 수신할 수 있다. 예를 들어, 참조 번호(98)에 의해 나타난 바와 같이, 미처리 픽셀 데이터는 센서 인터페이스(94)로부터 메모리(108)로 보내질 수 있다. 그 다음, 메모리(108) 내에 상주하는 미처리 픽셀 데이터는 참조 번호(100)에 의해 나타난 바와 같이, 처리를 위해 ISP 프런트-엔드 로직(80)에 제공될 수 있다. 메모리(108)는 메모리 장치(18), 저장 장치(20)의 일부분일 수 있거나, 또는 전자 장치(10) 내의 별개의 전용 메모리일 수 있으며, DMA(direct memory access) 특징들을 포함할 수 있다. 또한, 일부 실시예들에서, ISP 프런트-엔드 로직(80)은 그 자신의 클럭 도메인 내에서 동작할 수 있으며, 상이한 타이밍 조건들을 갖는 상이한 크기의 센서들을 지원하기 위해, 센서 인터페이스(94)에 비동기 인터페이스를 제공할 수 있다.
(센서 인터페이스(94))로부터의 미처리 이미지 데이터(96) 또는 (메모리(108))로부터의 미처리 이미지 데이터(100)를 수신하면, ISP 프런트-엔드 로직(80)은 시간 필터링(temporal filtering) 및/또는 비닝 보상 필터링(binning compensation filtering)과 같은 하나 이상의 이미지 처리 동작을 수행할 수 있다. 그 다음, 처리된 이미지 데이터는 (예를 들어, 디스플레이 장치(28) 상에) 디스플레이되기 전에 추가의 처리를 위하여 ISP 파이프 로직(82)(출력 신호(109))에 제공될 수 있거나, 메모리에 보내질 수 있다 (출력 신호(110)). ISP 파이프 로직(82)은 메모리(108) 또는 ISP 프런트-엔드 로직(80)으로부터 직접 "프런트-엔드" 처리된 데이터를 수신하며(입력 신호(112)), RGB 및 YCbCr 컬러 공간에서뿐만 아니라 미처리 도메인에서의 이미지 데이터의 추가 처리를 가능하게 할 수 있다. 그 다음, ISP 파이프 로직(82)에 의해 처리된 이미지 데이터는 사용자가 보도록 디스플레이(28)에 출력될 수 있고 (신호(114)), 및/또는 그래픽 엔진 또는 GPU에 의해 더 처리될 수 있다. 또한, ISP 파이프 로직(82)으로부터의 출력은 메모리(108)에 보내질 수 있고(신호(115)), 디스플레이(28)는 메모리(108)로부터 이미지 데이터를 판독할 수 있으며(신호(116)), 이는 일부 실시예들에서 하나 이상의 프레임 버퍼를 구현하도록 구성될 수 있다. 또한, 일부 구현들에서, ISP 파이프 로직(82)의 출력은 이미지 데이터를 인코딩/디코딩하기 위해 압축/압축해제 엔진(118)에도 제공될 수 있다(신호(117)). 인코딩된 이미지 데이터는 저장될 수 있고, 그 다음 나중에 디스플레이(28) 장치 상에 디스플레이되기 전에 압축해제될 수 있다(신호(119)). 예를 들어, 압축 엔진 또는 "인코더"(118)는, 정지 이미지를 인코딩하기 위한 JPEG 압축 엔진, 또는 비디오 이미지를 인코딩하기 위한 H.264 압축 엔진, 또는 그들의 소정 조합과, 이미지 데이터를 디코딩하기 위한 대응하는 압축해제 엔진일 수 있다. ISP 파이프 로직(82) 내에 제공될 수 있는 이미지 처리 동작들에 관한 추가의 정보는 이하에서 도 49 내지 도 79에 관련하여 더 상세하게 논의될 것이다. 또한, ISP 파이프 로직(82)은 입력 신호(112)에 의해 나타난 것과 같이, 메모리(108)로부터 미처리 이미지 데이터를 수신할 수 있음에 유의해야 한다.
ISP 프런트-엔드 로직(80)에 의해 결정된 통계 데이터(102)는 제어 로직 유닛(84)에 제공될 수 있다. 통계 데이터(102)는 예를 들어, 자동 노출, 자동 화이트 밸런스, 자동 초점, 플리커(flicker) 검출, 블랙 레벨 보상(black level compensation, BLC), 렌즈 쉐이딩 정정 등에 관련된 이미지 센서 통계를 포함할 수 있다. 제어 로직(84)은 수신된 통계 데이터(102)에 기초하여, ISP 파이프 처리 로직(82)을 위한 제어 파라미터들(106)뿐만 아니라, 이미징 장치(30)를 위한 제어 파라미터들(104)을 결정하도록 구성될 수 있는 하나 이상의 루틴(예를 들어, 펌웨어)을 실행하도록 구성된 프로세서 및/또는 마이크로컨트롤러를 포함할 수 있다. 오직 예시로서, 제어 파라미터들(104)은 센서 제어 파라미터들(예를 들어, 노출 제어를 위한 적분 시간, 이득), 카메라 플래시 제어 파라미터들, 렌즈 제어 파라미터들(예를 들어, 포커싱 또는 줌을 위한 초점 길이), 또는 그러한 파라미터들의 조합을 포함할 수 있다. ISP 제어 파라미터들(106)은, 이하에 논의되는 바와 같이 화이트 포인트 밸런스 파라미터들에 기초하여 결정될 수 있는 렌즈 쉐이딩 정정 파라미터들 뿐만 아니라, 자동 화이트 밸런스 및 컬러 조정(예를 들어, RGB 처리 동안)을 위한 CCM(color correction matrix) 계수들 및 이득 레벨들을 포함할 수 있다. 일부 실시예들에서, 통계 데이터(102)를 분석하는 것에 더하여, 제어 로직(84)은 또한 전자 장치(10) 상에 (예를 들어, 메모리(18) 또는 저장소(20) 내에) 저장될 수 있는 이력 통계를 분석할 수 있다.
여기에 도시된 이미지 처리 회로(32)의 일반적으로 복잡한 설계로 인해, 아래에 나타난 바와 같이, ISP 프런트-엔드 로직(80)과 ISP 파이프 처리 로직(82)의 논의를 별개의 섹션으로 분리하는 것이 이로울 수 있다. 구체적으로, 본 출원의 도 8 내지 도 48은 ISP 프런트-엔드 로직(80)의 다양한 실시예들 및 양태들의 논의에 관한 것일 수 있는 한편, 본 출원의 도 49 내지 도 79는 ISP 파이프 처리 로직(82)의 다양한 실시예들 및 양태들의 논의에 관한 것일 수 있다.
ISP 프런트-엔드 처리 로직
도 8은 일 실시예에 따라 ISP 프런트-엔드 로직(80)에서 구현될 수 있는 기능적 논리 블록들을 보여주는, 더 상세한 블록도이다. 위에서 도 7에서 논의된 것과 같은 이미징 장치(30) 및/또는 센서 인터페이스(94)의 구성에 따라, 미처리 이미지 데이터가 하나 이상의 이미지 센서(90)에 의해 ISP 프런트-엔드 로직(80)에 제공될 수 있다. 도시된 실시예에서, 미처리 이미지 데이터는 제1 이미지 센서(90a)(Sensor0) 및 제2 이미지 센서(90b)(Sensor1)에 의해 ISP 프런트-엔드 로직(80)에 제공될 수 있다. 이하에 더 논의될 바와 같이, 각각의 이미지 센서(90a 및 90b)는 이미지 신호의 신호-대-잡음 비를 증가시키기 위해 최고 해상도 이미지 데이터에 비닝(binning)을 적용하도록 구성될 수 있다. 예를 들어, 4개의 동일 컬러의 최고 해상도 이미지 픽셀에 기초하는 "비닝된" 미처리 이미지 픽셀을 보간할 수 있는 2×2 비닝과 같은 비닝 기술이 적용될 수 있다. 일 실시예에서, 이로 인해, 비닝된 픽셀에 관련된 4개의 축적된 신호 성분이 단일 잡음 성분에 대하여 존재하여, 이미지 데이터의 신호-대-잡음 비는 개선하되, 전체 해상도를 감소시키게 될 수 있다. 또한, 비닝은 이미지 데이터의 불균등한 또는 불균일한 공간 샘플링을 유발할 수 있는데, 이는 이하에 더 상세하게 논의될 비닝 보상 필터링을 이용하여 정정될 수 있다.
도시된 바와 같이, 이미지 센서들(90a 및 90b)은 미처리 이미지 데이터를 각각 신호 Sif0 및 Sif1으로서 제공할 수 있다. 이미지 센서들(90a 및 90b) 각각은 일반적으로, 자동 노출, 자동 화이트밸런스, 자동 초점, 플리커 검출, 블랙 레벨 보상, 및 렌즈 쉐이딩 정정 등에 관련된 통계를 포함하여, (신호들 Stats0 및 Stats1에 의해 나타내어지는 것과 같은) 하나 이상의 통계 세트의 결정을 위해 이미지 데이터를 처리하도록 구성될 수 있는 각각의 통계 처리 유닛들(120(StatsPipe0) 및 122(StatsPipe1))에 연관될 수 있다. 일부 실시예들에서, 센서들(90a 또는 90b) 중 단 하나만이 활성 상태에서 이미지를 획득하고 있을 때, 추가의 통계가 요구되는 경우, 이미지 데이터는 StatsPipe0 및 StatsPipe1 둘 다에 보내질 수 있다. 예를 들어, 일례를 제공하기 위해, StatsPipe0 및 StatsPipe1 둘 다가 이용가능한 경우, StatsPipe0은 한 컬러 공간(예를 들어, RGB)에 대한 통계를 수집하기 위해 이용될 수 있고, StatsPipe1는 다른 컬러 공간(예를 들어, YUV 또는 YCbCr)에 대한 통계를 수집하기 위해 이용될 수 있다. 즉, 통계 처리 유닛들(120 및 122)은 활성 센서에 의해 획득되는 이미지 데이터의 각 프레임에 대하여 복수의 통계 세트를 수집하도록 병렬로 동작할 수 있다.
본 실시예에서, ISP 프런트-엔드(80) 내에 5개의 비동기 데이터 소스가 제공된다. 이들은 (1) Sensor0(90a)에 대응하는 센서 인터페이스로부터의 직접 입력(Sif0 또는 Sens0로서 참조됨), (2) Sensor1(90b)에 대응하는 센서 인터페이스로부터의 직접 입력(Sif1 또는 Sens1으로서 참조됨), (3) DMA 인터페이스를 포함할 수 있는 메모리(108)로부터의 Sensor0 데이터 입력(SifIn0 또는 Sens0DMA로서 참조됨), (4) 메모리(108)로부터의 Sensor1 데이터 입력(SifIn1 또는 Sens1DMA로서 참조됨), 및 (5) 메모리(108)로부터 검색된 Sensor0 및 Sensor1 데이터 입력으로부터의 프레임들을 갖는 이미지 데이터의 세트(FeProcIn 또는 ProcInDMA로서 참조됨)를 포함한다. 또한, ISP 프런트-엔드(80)는 소스들로부터의 이미지 데이터가 라우팅될 수 있는 복수의 목적지를 포함할 수 있는데, 여기서 각각의 목적지는 메모리(예를 들어, 108) 내의 저장 위치 또는 처리 유닛일 수 있다. 예를 들어, 본 실시예에서, ISP 프런트-엔드(80)는 6개의 목적지를 포함한다 : (1) 메모리(108) 내의 Sensor0 데이터를 수신하기 위한 Sif0DMA, (2) 메모리(108) 내의 Sensor1 데이터를 수신하기 위한 Sif1DMA, (3) 제1 통계 처리 유닛(120)(StatsPipe0), (4) 제2 통계 처리 유닛(122)(StatsPipe1), (5) 프런트-엔드 픽셀 처리 유닛(FEProc)(130), 및 (6) 메모리(108) 또는 ISP 파이프라인(82)(이하에 더 상세하게 논의됨)으로의 FeOut(또는 FEProcOut). 일 실시예에서, ISP 프런트-엔드(80)는 아래의 표 1에 나타난 바와 같이, 특정 소스에 대하여 일부 목적지들만이 유효하도록 구성될 수 있다.
Figure 112011064114822-pat00001
예를 들어, 표 1에 따르면, 소스 Sens0(Sensor0의 센서 인터페이스)는 목적지 SIf0DMA(신호(134)), StatsPipe0(신호(136)), StatsPipe1(신호(138)), FEProc(신호(140)) 또는 FEOut(신호(142))에 데이터를 제공하도록 구성될 수 있다. 일부 사례들에서, FEOut에 관련하여, 소스 데이터는 디버그 또는 테스트 목적을 위한 것과 같은 FEProc에 의한 픽셀 처리를 우회하기 위해 FEOut에 제공될 수 있다. 또한, 소스 Sens1(Sensor1의 센서 인터페이스)은 목적지들 SIf1DMA(신호(144)), StatsPipe0(신호(146)), StatsPipe1(신호(148)), FEProc(신호(150)) 또는 FEOut(신호(152))에 데이터를 제공하도록 구성될 수 있고, 소스 Sens0DMA(메모리(108)로부터의 Sensor0 데이터)는 StatsPipe0(신호(154))에 데이터를 제공하도록 구성될 수 있고, 소스 Sens1DMA(메모리(108)로부터의 Sensor1 데이터)는 StatsPipe1(신호(156))에 데이터를 제공하도록 구성될 수 있고, 소스 ProcInDMA(메모리(108)로부터의 Sensor0 및 Sensor1 데이터)는 FEProc(신호(158)) 및 FEOut(신호(160))에 데이터를 제공하도록 구성될 수 있다.
현재 설명되는 실시예는 Sens0DMA(메모리(108)로부터의 Sensor0 프레임들) 및 Sens1DMA(메모리(108)로부터의 Sensor1 프레임들)가 각각 StatsPipe0 및 StatesPipe1에만 제공되도록 구성된다는 점에 유의해야 한다. 이러한 구성은, ISP 프런트-엔드(80)가 메모리 내에 소정 개수의 이전(previous) 프레임들(예를 들어, 5개의 프레임)을 보유하는 것을 허용한다. 예를 들어, 사용자가 이미지 센서를 이용하여 캡처 이벤트를 개시(예를 들어, 이미지 시스템이 미리보기 모드로부터 캡처 또는 기록 모드로 전이하는 것, 또는 심지어는 단순히 이미지 센서를 켜거나 초기화하는 것에 의해)하는 시간과 이미지 장면이 캡처될 때 간의 지연(delay) 또는 래그(lag)로 인해, 사용자가 캡처하고자 의도하는 모든 프레임이 실질적으로 실시간으로 캡처 및 처리되지는 않을 수도 있다. 따라서, (예를 들어, 미리보기 위상으로부터) 메모리(108) 내에 소정 개수의 이전 프레임을 보유함으로써, 이러한 이전 프레임들은 캡처 이벤트에 응답하여 실제로 캡처되는 프레임들과 함께 또는 나중에 처리될 수 있으며, 따라서 임의의 그러한 래그를 보상하고, 보다 더 완전한 이미지 데이터의 세트를 제공한다.
도 8의 예시된 구성과 관련하여, StatsPipe0(120)는 멀티플렉서와 같은 선택 로직(124)에 의해 결정된 대로, (Sens0로부터의) 입력(136), (Sens1으로부터의) 입력(146), 및 (Sens0DMA으로부터의) 입력(154) 중 하나를 수신하도록 구성된다. 마찬가지로, 선택 로직(126)은 신호들(138, 156 및 148)로부터 StatsPipe1에 제공할 입력을 선택할 수 있고, 선택 로직(132)은 신호들(140, 150 및 158)로부터 FEProc에 제공할 입력을 선택할 수 있다. 위에서 언급된 바와 같이, 통계 데이터(Stats0 및 Stats1)는 이미징 장치(30) 및/또는 ISP 파이프 처리 로직(82)을 동작시키기 위해 이용될 수 있는 다양한 제어 파라미터들의 결정을 위해 제어 로직(84)에 제공될 수 있다. 알 수 있는 바와 같이, 도 8에 도시된 선택 로직 블록들(120, 122 및 132)은 제어 신호에 응답하여 복수의 입력 신호 중 하나를 선택하는 멀티플렉서와 같은 임의의 적절한 유형의 로직에 의해 제공될 수 있다.
픽셀 처리 유닛(FEProc)(130)은 미처리 이미지 데이터에 대하여 픽셀별로 다양한 이미지 처리 동작을 수행하도록 구성될 수 있다. 도시된 바와 같이, 목적지 처리 유닛으로서의 FEProc(130)은 선택 로직(132)을 경유하여, 소스 Sens0(신호(140)), Sens1(신호(150)) 또는 ProcInDMA(신호(158))로부터 이미지 데이터를 수신할 수 있다. FEProc(130)은 또한 이하에 더 논의될 바와 같이, 시간 필터링 및 비닝 보상 필터링을 포함할 수 있는 픽셀 처리 동작들을 수행할 때, 다양한 신호들(예를 들어, 시간 필터링 동안 이용되는 모션 히스토리 및 루마(luma) 데이터를 표현할 수 있는 Rin, Hin, Hout 및 Yout)을 수신하고 출력할 수 있다. 그 다음, 픽셀 처리 유닛(130)의 출력(109)(FEProcOut)은 하나 이상의 FIFO(first-in-first-out) 큐들을 경유하는 것 등에 의해 ISP 파이프 로직(82)에 전달될 수 있거나, 메모리(108)에 보내질 수 있다.
또한, 도 8에 도시된 바와 같이, 신호들(140, 150 및 158)을 수신하는 것에 더하여, 선택 로직(132)은 신호들(159 및 161)을 더 수신할 수 있다. 신호(159)는 StatsPipe0으로부터의 "선처리된(pre-processed)" 미처리 이미지 데이터를 표현할 수 있고, 신호(161)는 StatsPipe1으로부터의 "선처리된" 미처리 이미지 데이터를 표현할 수 있다. 이하에 논의될 바와 같이, 통계 처리 유닛들 각각은 통계를 수집하기 전에, 미처리 이미지 데이터에 대하여 하나 이상의 선처리 동작을 적용할 수 있다. 일 실시예에서, 통계 처리 유닛들 각각은 어느 정도의 불량 픽셀 검출/정정, 렌즈 쉐이딩 정정, 블랙 레벨 보상, 및 역 블랙 레벨 보상(inverse black level compensation)을 수행할 수 있다. 따라서, 신호들(159 및 161)은 상기 언급된 선처리 동작들(이하에서 도 37에서 더 상세하게 논의됨)을 이용하여 처리된 미처리 이미지 데이터를 나타낼 수 있다. 따라서, 선택 로직(132)은 ISP 프런트-엔드 처리 로직(80)에게 Sensor0(신호(140)) 및 Sensor1(신호(150))으로부터의 선처리되지 않은 미처리 이미지 데이터, 또는 StatsPipe0(신호(159)) 및 StatsPipe1(신호(161))로부터의 선처리된 미처리 이미지 데이터를 제공하는 유연성을 제공한다. 또한, 선택 로직 유닛들(162 및 163)에 의해 나타난 바와 같이, ISP 프런트-엔드 처리 로직(80)은 또한 Sensor0(신호(134)) 또는 Sensor1(신호(144))으로부터의 선처리되지 않은 미처리 이미지 데이터를 메모리(108)에 기입하거나, StatsPipe0(신호(159)) 또는 StatsPipe1(신호(161))으로부터의 선처리된 미처리 이미지 데이터를 메모리(108)에 기입하는 유연성을 갖는다.
ISP 프런트-엔드 로직(80)의 동작을 제어하기 위해, 프런트-엔드 제어 로직(164)이 제공된다. 제어 유닛(164)은 이미지 프레임의 처리를 구성하고 시작하기 위해 제어 레지스터들(여기서 "go 레지스터"로서 참조됨)을 초기화하고 프로그래밍하고, 더블 버퍼링된 데이터 레지스터들을 업데이트하기 위해 적절한 레지스터 뱅크(들)를 선택하도록 구성될 수 있다. 일부 실시예들에서, 제어 유닛(164)은 클럭 사이클, 메모리 레이턴시, 및 QOS(quality of service) 정보를 기록(log)하기 위해 성능 모니터링 로직도 제공할 수 있다. 또한, 제어 유닛(164)은 입력 큐 내에 활성 센서로부터의 충분한 데이터가 존재하지 않을 때, ISP 프런트-엔드 0의 하나 이상의 부분으로의 클럭들을 디스에이블시키기 위해 이용될 수 있는 동적 클럭 게이팅(dynamic clock gating)도 제어할 수 있다.
위에서 언급된 "go 레지스터"를 이용하여, 제어 유닛(164)은 처리 유닛들(예를 들어, StatsPipe0, StatsPipe1 및 FEProc) 각각의 다양한 파라미터들의 업데이트를 제어할 수 있고, 처리 유닛들의 시작 및 중지를 제어하기 위해 센서 인터페이스들과 인터페이스할 수 있다. 일반적으로, 프런트-엔드 처리 유닛들 각각은 프레임별로 동작한다. 위에서 논의된 바와 같이(표 1), 처리 유닛들로의 입력은 센서 인터페이스(Sens0 또는 Sens1)로부터, 또는 메모리(108)로부터의 것일 수 있다. 또한, 처리 유닛들은 대응하는 데이터 레지스터들에 저장될 수 있는 다양한 파라미터들 및 구성 데이터를 이용할 수 있다. 일 실시예에서, 각각의 처리 유닛 또는 목적지에 연관된 데이터 레지스터들은 레지스터 뱅크 그룹을 형성하는 블록들로 그룹지어질 수 있다. 도 8의 실시예에서, 7개의 레지스터 뱅크 그룹: SIf0, SIf1, StatsPipe0, StatsPipe1, ProcPipe, FEOut 및 ProcIn이 ISP 프런트-엔드 내에 정의될 수 있다. 각각의 레지스터 블록 어드레스 공간은 2개의 레지스터 뱅크를 제공하도록 복제된다. 더블 버퍼링되는 레지스터들만이 제2 뱅크에서 인스턴스화된다. 레지스터가 더블 버퍼링되지 않는 경우, 제2 뱅크 내의 어드레스는 제1 뱅크 내의 동일 레지스터의 어드레스로 매핑될 수 있다.
더블 버퍼링되는 레지스터들에 대하여, 한 뱅크로부터의 레지스터들은 활성이고 처리 유닛들에 의해 사용되는 한편, 다른 뱅크로부터의 레지스터들은 섀도우잉된다. 섀도우잉된 레지스터는 현재 프레임 간격 동안에서, 하드웨어가 활성 레지스터를 사용하고 있는 동안 제어 유닛(164)에 의해 업데이트될 수 있다. 특정 프레임에서 특정 처리 유닛에 대해 어느 뱅크를 이용할 것인지의 결정은 이미지 데이터를 처리 유닛에 제공하는 소스에 대응하는 go 레지스터 내의 "NextBk"(next bank) 필드에 의해 지정될 수 있다. 본질적으로, NextBk는 제어 유닛(164)이 후속 프레임을 위한 트리거 이벤트에서 어느 레지스터 뱅크가 활성으로 될 것인지를 제어하는 것을 허용하는 필드이다.
go 레지스터들의 동작을 상세하게 논의하기 전에, 도 9는 본 기술에 따라 이미지 데이터를 프레임별로 처리하기 위한 일반적인 방법(166)을 제공한다. 단계(168)에서 시작하여, 데이터 소스(예를 들어, Sens0, Sens1, Sens0DMA, Sens1DMA, 또는 ProcInDMA)에 의해 타깃으로 되는 목적지 처리 유닛들은 아이들 상태에 들어간다. 이는, 현재 프레임을 위한 처리가 완료되었으므로, 제어 유닛(164)은 다음 프레임을 처리할 준비를 할 수 있음을 나타낼 수 있다. 예를 들어, 단계(170)에서, 각각의 목적지 처리 유닛을 위한 프로그래밍가능한 파라미터들이 업데이트된다. 이는, 예를 들어, 소스에 대응하는 go 레지스터 내의 NextBk 필드를 업데이트하는 것, 및 목적지 유닛들에 대응하는 데이터 레지스터들 내의 임의의 파라미터들을 업데이트하는 것을 포함할 수 있다. 그 다음, 단계(172)에서, 트리거 이벤트는 목적지 유닛들을 런 상태(run state)로 할 수 있다. 또한, 단계(174)에 나타나 있는 바와 같이, 소스에 의해 타깃으로 된 각각의 목적지 유닛은 현재 프레임에 대한 그것의 처리 동작들을 완료하고, 방법(166)은 후속하여 다음 프레임의 처리를 위해 단계(168)로 복귀할 수 있다.
도 10은 ISP 프런트-엔드의 다양한 목적지 유닛들에 의해 이용될 수 있는 2개의 데이터 레지스터 뱅크(176 및 178)를 보여주는 블록도를 도시한 것이다. 예를 들어, 뱅크 0(176)은 데이터 레지스터들 1-n(176a-176d)을 포함할 수 있고, 뱅크 1(178)은 데이터 레지스터들 1-n(178a-178d)을 포함할 수 있다. 위에서 논의된 바와 같이, 도 8에 도시된 실시예는 7개의 레지스터 뱅크 그룹(예를 들어, SIf0, SIf1, StatsPipe0, StatsPipe1, ProcPipe, FEOut 및 ProcIn)을 갖는 레지스터 뱅크(뱅크 0)를 이용할 수 있다. 따라서, 그러한 실시예에서, 각 레지스터의 레지스터 블록 어드레스 공간은 제2 레지스터 뱅크(뱅크 1)를 제공하도록 복제된다.
도 10은 소스들 중 하나에 대응할 수 있는 go 레지스터(180)를 도시하고 있다. 도시된 바와 같이, go 레지스터(180)는 "NextVld" 필드(182) 및 위에서 언급된 "NextBk" 필드(184)를 포함한다. 이 필드들은 현재 프레임의 처리를 시작하기 전에 프로그래밍될 수 있다. 구체적으로, NextVld는 소스로부터의 데이터가 보내져야 할 목적지(들)를 나타낼 수 있다. 위에서 논의된 바와 같이, NextBk는 NextVld에 의해 나타내어지는, 타깃으로 된 각각의 목적지에 대하여 Bank0 또는 Bank1으로부터 대응하는 데이터 레지스터를 선택할 수 있다. 도 10에는 도시되어 있지 않지만, go 레지스터(180)는 go 레지스터를 아밍하기 위해 설정될 수 있는, 여기서 "go 비트"라고 칭해지는 아밍 비트(arming bit)도 포함할 수 있다. 현재 프레임에 대한 트리거 이벤트(192)가 검출될 때, NextVld 및 NextBk는 대응하는 현재 또는 "활성" 레지스터(186)의 CurrVld 필드(188) 및 CurrBk 필드(190)에 복사될 수 있다. 일 실시예에서, 현재 레지스터(들)(186)는 하드웨어에 의해 설정될 수 있는 한편, ISP 프런트-엔드(80) 내의 소프트웨어 커맨드들은 액세스할 수 없게 남아있는 판독 전용 레지스터들일 수 있다.
알 수 있는 바와 같이, 각각의 ISP 프런트-엔드 소스에 대하여, 대응하는 go 레지스터가 제공될 수 있다. 본 명세서의 목적을 위하여, 상기 논의된 소스들 Sens0, Sens1, Sens0DMA, Sens1DMA, 및 ProcInDMA에 대응하는 go 레지스터들은 각각 Sens0Go, Sens1Go, Sens0DMAGo, Sens1DMAGo 및 ProcInDMAGo라고 칭해질 수 있다. 위에서 언급된 바와 같이, 제어 유닛은 ISP 프런트-엔드(80) 내의 프레임 처리의 시퀀스를 제어하기 위해 go 레지스터들을 이용할 수 있다. 각각의 go 레지스터는 다음 프레임에 대하여 어느 목적지들이 유효할 것인지, 및 어느 레지스터 뱅크(0 또는 1)가 이용될 것인지를 각각 나타내기 위해 NextVld 필드 및 NextBk 필드를 포함한다. 다음 프레임의 트리거 이벤트(192)가 발생할 때, NextVld 필드 및 NextBk 필드는 위에서 도 10에 나타난 바와 같이, 현재 유효한 목적지들 및 뱅크 번호들을 나타내는 대응하는 활성 판독 전용 레지스터(186)에 복사된다. 각각의 소스는 비동기적으로 동작하도록 구성될 수 있고, 그것의 유효한 목적지들 중 임의의 것에 데이터를 보낼 수 있다. 또한, 각각의 목적지에 대하여, 일반적으로 단 하나의 소스만이 현재 프레임 동안 활성일 수 있음을 이해해야 한다.
go 레지스터(180)의 아밍 및 트리거와 관련하여, go 레지스터(180) 내에 아밍 비트 또는 "go 비트"를 어서트(asserting)하는 것은, 연관된 NextVld 및 NextBk 필드로 대응 소스를 아밍한다. 트리거를 위하여, 소스 입력 데이터가 메모리로부터 판독되는지(예를 들어, Sens0DMA, Sens1DMA 또는 ProcInDMA), 또는 소스 입력 데이터가 센서 인터페이스로부터의 것인지(예를 들어, Sens0 또는 Sens1)에 의존하여, 다양한 모드들이 이용가능하다. 예를 들어, 제어 유닛(164)은 데이터가 언제 메모리(108)로부터 판독되는지에 관한 제어권을 가지고 있으므로, 입력이 메모리(108)로부터의 것인 경우, go 비트의 아밍 자체가 트리거 이벤트로서 기능할 수 있다. 이미지 프레임들이 센서 인터페이스에 의해 입력되고 있는 경우, 트리거 이벤트는 센서 인터페이스로부터의 데이터가 수신되는 때에 대한, 대응하는 go 레지스터가 아밍되는 타이밍에 의존할 수 있다. 본 실시예에 따르면, 센서 인터페이스 입력으로부터의 트리거 타이밍에 대한 3가지 상이한 기술이 도 11 내지 도 13에 도시되어 있다.
우선 도 11을 참조하면, 소스에 의해 타깃으로 되는 모든 목적지들이 비지(busy) 또는 런 상태로부터 아이들 상태로 전이하고 나면 트리거가 발생하는 제1 시나리오가 도시되어 있다. 여기서, 데이터 신호 VVALID(196)는 소스로부터의 이미지 데이터 신호를 나타낸다. 펄스(198)는 이미지 데이터의 현재 프레임을 나타내고, 펄스(202)는 이미지 데이터의 다음 프레임을 나타내고, 간격(200)은 수직 블랭킹 간격(vertical blanking interval)(VBLANK)(200)을 나타낸다(예를 들어, 현재 프레임(198)의 마지막 라인과 다음 프레임(202) 간의 시간 차분을 나타냄). 펄스(198)의 상승 에지와 하강 에지 간의 시간 차분은 프레임 간격(201)을 나타낸다. 따라서, 도 11에서, 소스는 타깃으로 된 모든 목적지들이 현재 프레임(198)에 대한 처리 동작을 마치고 아이들 상태로 전이한 때 트리거하도록 구성될 수 있다. 이러한 시나리오에서, 소스는 목적지들이 처리를 완료하기 전에 (예를 들어, 아밍 또는 "go" 비트를 설정하는 것에 의해) 아밍되어, 타깃으로 된 목적지들이 아이들로 된 직후에 소스가 다음 프레임(202)의 처리를 트리거하고 개시할 수 있게 한다. 수직 블랭킹 간격(200) 동안, 처리 유닛들은 센서 입력 데이터가 도달하기 전에 소스에 대응하는 go 레지스터에 의해 지정된 레지스터 뱅크들을 이용하여 다음 프레임(202)에 대하여 셋업 및 구성될 수 있다. 오직 예시로서, FEProc(130)에 의해 이용되는 판독 버퍼들은 다음 프레임(202)이 도달하기 전에 채워질 수 있다. 이러한 경우에서, 활성 레지스터 뱅크들에 대응하는 섀도우잉된 레지스터들은 트리거 이벤트 이후에 업데이트될 수 있고, 따라서 전체 프레임 간격에 대하여, 다음 프레임을 위한 더블 버퍼링되는 레지스터들을 셋업하는 것을 허용한다 (예를 들어, 프레임(202) 이후에).
도 12는 소스에 대응하는 go 레지스터에 go 비트를 아밍하는 것에 의해 소스가 트리거되는 제2 시나리오를 도시하고 있다. 이러한 "트리거-온-고(trigger-on-go)" 구성 하에서, 소스에 의해 타깃으로 되는 목적지 유닛들은 이미 아이들 중이고, go 비트의 아밍이 트리거 이벤트이다. 이러한 트리거 모드는, 더블 버퍼링되지 않으므로 (예를 들어, 더블 버퍼링되는 섀도우 레지스터를 프레임 간격(201) 동안 업데이트하는 것에 대조적으로) 수직 블랭킹 동안 업데이트되는 레지스터들에 대해 이용될 수 있다.
도 13은 다음 프레임의 시작, 즉 상승 VSYNC의 검출 시에 소스가 트리거되는 제3 트리거 모드를 도시하고 있다. 그러나, 이러한 모드에서는, 목적지가 처리를 시작하기 전에는 CurrVld 및 CurrBk 필드가 업데이트되지 않으므로, 다음 프레임(202)이 이미 처리를 시작한 후에 go 레지스터가 (go 비트를 설정하는 것에 의해) 아밍되는 경우, 소스는 이전 프레임에 대응하는 타깃 목적지들 및 레지스터 뱅크들을 이용할 것임에 유의해야 한다. 이는 목적지 처리 유닛들을 셋업하기 위한 수직 블랭킹 간격을 남기지 않으며, 잠재적으로는 특히 듀얼 센서 모드로 동작할 때 누락 프레임을 유발할 수 있다. 그러나, 그럼에도 불구하고, 이미지 처리 회로(32)가 각 프레임에 대해 동일한 레지스터 뱅크들을 이용하는 단일 센서 모드로 동작하고 있는 경우에는(예를 들어, 목적지(NextVld) 및 레지스터 뱅크들(NextBk)이 변하지 않음), 이 모드가 정확한 동작을 야기할 수 있음에 유의해야 한다.
이제, 도 14를 참조하여, 제어 레지스터(또는 "go 레지스터")(180)가 더 상세하게 도시된다. go 레지스터(180)는 NextVld 필드(182) 및 NextBk 필드(184)뿐만 아니라, 아밍 "go" 비트(204)를 포함한다. 위에서 논의된 바와 같이, ISP 프런트-엔드(80)의 각각의 소스(예를 들어, Sens0, Sens1, Sens0DMA, Sens1DMA 또는 ProcInDMA)는 대응하는 go 레지스터(180)를 가질 수 있다. 일 실시예에서, go 비트(204)는 단일 비트 필드일 수 있으며, go 레지스터(180)는 go 비트(204)를 1로 설정함으로써 아밍될 수 있다. NextVld 필드(182)는 ISP 프런트-엔드(80) 내의 목적지의 수에 대응하는 수의 비트를 포함할 수 있다. 예를 들어, 도 8에 도시된 실시예에서, ISP 프런트-엔드는 6개의 목적지: Sif0DMA, Sif1DMA, StatsPipe0, StatsPipe1, FEProc 및 FEOut를 포함한다. 따라서, go 레지스터(180)는 NextVld 필드(182) 내에 6개의 비트를 포함할 수 있으며, 하나의 비트가 각각의 목적지에 대응하고, 타깃으로 된 목적지는 1로 설정된다. 마찬가지로, NextBk 필드(182)는 ISP 프런트-엔드(80) 내의 데이터 레지스터들의 수에 대응하는 수의 비트를 포함할 수 있다. 예를 들어, 위에서 논의된 바와 같이, 도 8에 도시된 ISP 프런트-엔드(80)의 실시예는 7개의 데이터 레지스터: SIf0, SIf1, StatsPipe0, StatsPipe1, ProcPipe, FEOut 및 ProcIn을 포함할 수 있다. 따라서, NextBk 필드(184)는 7개의 비트를 포함할 수 있고, 하나의 비트가 각각의 데이터 레지스터에 대응하며, 뱅크 0 및 1에 대응하는 데이터 레지스터들은 그들 각각의 비트 값을 0 또는 1로 각각 설정함으로써 선택된다. 따라서, go 레지스터(180)를 이용하여, 소스는 트리거 시에 어느 목적지 유닛들이 프레임 데이터를 수신할지, 및 어느 레지스터 뱅크들이 타깃으로 된 목적지 유닛들을 구성하기 위해 이용되어야 하는지를 정확하게 안다.
또한, ISP 회로(32)에 의해 지원되는 듀얼 센서 구성으로 인해, ISP 프런트-엔드는 단일 센서 구성 모드(예를 들어, 단 하나의 센서만이 데이터를 획득하고 있음) 및 듀얼 센서 구성 모드(예를 들어, 센서들 둘 다가 데이터를 획득하고 있음)로 동작할 수 있다. 전형적인 단일 센서 구성에서, Sens0와 같은 센서 인터페이스로부터의 입력 데이터는 (통계 처리를 위해) StatsPipe0 및 (픽셀 처리를 위해) FEProc에 보내진다. 또한, 센서 프레임들은 위에서 논의된 바와 같이, 추후의 처리를 위해 메모리(SIf0DMA)에도 보내질 수 있다.
단일 센서 모드로 동작할 때, ISP 프런트-엔드(80)의 각 소스에 대응하는 NextVld 필드들이 어떻게 구성될 수 있는지의 예가 아래의 표 2에 나타나 있다.
Figure 112011064114822-pat00002
표 1을 참조하여 위에서 논의된 바와 같이, ISP 프런트-엔드(80)는 일부 목적지들만이 특정 소스에 대해 유효하도록 구성될 수 있다. 따라서, "X"로 마킹된 표 2의 목적지들은, ISP 프런트-엔드(80)는 특정 소스가 그 목적지로 프레임 데이터를 보내는 것을 허용하도록 구성되지 않음을 나타낸다. 그러한 목적지들에 대하여, 그 목적지에 대응하는 특정 소스의 NextVld 필드의 비트들은 항상 0일 수 있다. 그러나, 이것은 일 실시예에 지나지 않으며, 실제로는, 다른 실시예들에서, ISP 프런트-엔드(80)는 각각의 소스가 각각의 이용가능한 목적지 유닛을 타깃으로 할 수 있도록 구성될 수 있음을 이해해야 한다.
위에서 표 2에 나타난 구성은 Sensor0만이 프레임 데이터를 제공하고 있는 단일 센서 모드를 나타낸다. 예를 들어, Sens0Go 레지스터는 목적지들을 SIf0DMA, StatsPipe0 및 FEProc인 것으로서 나타내고 있다. 따라서, 트리거될 때, Sensor0 이미지 데이터의 각 프레임은 이러한 3개의 목적지에 보내진다. 위에서 논의된 바와 같이, SIf0DMA는 추후의 처리를 위해 프레임들을 메모리(108) 내에 저장할 수 있고, StatsPipe0은 다양한 통계 데이터 포인트들을 결정하기 위해 통계 처리를 적용하고, FEProc은 예를 들어 시간 필터링 및 비닝 보상 필터링을 이용하여 프레임을 처리한다. 또한, 추가의 통계(예를 들어, 상이한 컬러 공간들에서의 통계)가 요구되는 일부 구성들에서, 단일 센서 모드 동안 StatsPipe1도 인에이블될 수 있다(대응하는 NextVld가 1로 설정됨). 그러한 실시예들에서, Sensor0 프레임 데이터는 StatsPipe0 및 StatsPipe1 둘 다에 보내진다. 또한, 본 실시예에 도시된 바와 같이, 단일 센서 인터페이스(예를 들어, Sens0 또는 대안적으로는 Sen0)만이 단일 센서 모드 동안의 유일한 활성 소스이다.
이것을 염두에 두고서, 도 15는 단일 센서만이 활성일 때(예를 들어, Sensor0) ISP 프런트-엔드(80)에서 프레임 데이터를 처리하기 위한 방법(206)을 도시한 흐름도를 제공한다. 방법(206)은 예시로서 FEProc(130)에 의한 Sensor0 프레임 데이터의 처리를 구체적으로 나타내고 있지만, 이 프로세스는 임의의 다른 소스 및 ISP 프런트-엔드(80) 내의 대응하는 목적지 유닛에 적용될 수 있음을 이해해야 한다. 단계(208)에서 시작하여, Sensor0은 이미지 데이터를 획득하고 캡처된 프레임들을 ISP 프런트-엔드(80)에 송신하는 것을 시작한다. 제어 유닛(164)은 단계(210)에 나타낸 바와 같이, 타깃 목적지들(FEProc을 포함), 및 어느 뱅크 레지스터들을 이용할 것인지를 결정하기 위해 Sens0(Sensor0 인터페이스)에 대응하는 go 레지스터의 프로그래밍을 초기화할 수 있다. 그 다음, 판정 로직(212)은 소스 트리거 이벤트가 발생했는지를 결정한다. 위에서 논의된 바와 같이, 센서 인터페이스로부터의 프레임 데이터 입력은 상이한 트리거 모드들을 이용할 수 있다(도 11 - 도 13). 트리거 이벤트가 검출되지 않은 경우, 프로세스(206)는 계속하여 트리거를 기다린다. 트리거가 발생하고 나면, 다음 프레임이 현재 프레임이 되고, 단계(214)에서 처리를 위해 FEProc(및 다른 타깃 목적지들)에 보내진다. FEProc은 Sens0Go 레지스터의 NextBk 필드 내에 지정된 대응하는 데이터 레지스터(ProcPipe)에 기초하는 데이터 파라미터들을 이용하여 구성될 수 있다. 단계(216)에서 현재 프레임의 처리가 완료된 후, 방법(206)은 단계(210)로 복귀할 수 있고, 거기에서 다음 프레임을 위하여 Sens0Go 레지스터가 프로그래밍된다.
ISP 프런트-엔드(80)의 Sensor0 및 Sensor1 둘 다가 활성일 때, 각각의 센서 입력은 각각의 통계 블록 StatsPipe0 및 StatsPipe1에 의해 처리될 수 있으므로, 통계 처리는 일반적으로 직선적으로(straightforward) 남아있다. 그러나, ISP 프런트-엔드(80)의 설명된 실시예는 단일 픽셀 처리 유닛(FEProc)만을 제공하기 때문에, FEProc는 Sensor0 입력 데이터에 대응하는 프레임들과 Sensor1 입력 데이터에 대응하는 프레임들을 처리하는 것 간에서 교대하도록 구성될 수 있다. 알 수 있는 바와 같이, 한 센서로부터의 이미지 데이터는 실시간으로 처리되고 다른 센서로부터의 이미지 데이터는 실시간으로 처리되지 않는 상황을 피하기 위해, 설명된 실시예에서, 이미지 프레임들은 FEProc으로부터 판독된다. 예를 들어, ISP 프런트-엔드(80)가 듀얼 센서 모드로 동작하고 있을 때의 각 소스에 대한 go 레지스터들 내의 NextVld의 가능한 한 구성을 나타내고 있는 아래의 표 3에 나타난 바와 같이, 각 센서로부터의 입력 데이터는 메모리(SIf0DMA 및 SIf1DMA), 및 대응하는 통계 처리 유닛(StatsPipe0 및 StatsPipe1)에 보내진다.
Figure 112011064114822-pat00003
메모리 내의 센서 프레임들은 그들이 대응하는 프레임 레이트들에 기초하는 레이트에서 Sensor0과 Sensor1 사이에서 교대하도록, ProcInDMA 소스로부터 FEProc에 보내진다. 예를 들어, Sensor0 및 Sensor1 둘 다가 30 fps(frames per second)의 레이트로 이미지 데이터를 획득하고 있는 경우, 그들의 센서 프레임들은 1 대 1 방식으로 인터리브될 수 있다. Sensor0(30 fps)이 Sensor1(15 fps)의 2배의 레이트로 이미지 데이터를 획득하고 있는 경우, 인터리브는 예를 들어 2-대-1일 수 있다. 즉, 1 프레임의 Sensor1 데이터마다 2 프레임의 Sensor0 데이터가 메모리로부터 판독된다.
이를 염두에 두고서, 도 16은 동시에 이미지 데이터를 획득하는 2개의 센서를 갖는 ISP 프런트-엔드(80) 내에서 프레임 데이터를 처리하기 위한 방법(220)을 나타내고 있다. 단계(222)에서, Sensor0 및 Sensor1 둘 다가 이미지 프레임을 획득하기 시작한다. 알고 있을 바와 같이, Sensor0 및 Sensor1은 상이한 프레임 레이트, 해상도 등을 이용하여 이미지 프레임을 획득할 수 있다. 단계(224)에서, Sensor0 및 Sensor1으로부터의 획득된 프레임들은 (예를 들어, SIf0DMA 및 SIf1DMA 목적지들을 이용하여) 메모리(108)에 기입된다. 다음으로, 단계(226)에 나타낸 바와 같이, 소스 ProcInDMA는 번갈아 메모리(108)로부터 프레임 데이터를 판독한다. 논의된 바와 같이, 프레임들은 데이터가 획득되는 프레임 레이트에 따라 Sensor0 데이터와 Sensor1 데이터 사이에서 교대할 수 있다. 단계(228)에서, ProcInDMA로부터의 다음 프레임이 획득된다. 그 다음, 단계(230)에서, 소스(여기서는 ProcInDMA)에 대응하는 go 레지스터의 NextVld 및 NextBk 필드는 다음 프레임이 Sensor0 데이터인지 Sensor1 데이터인지에 따라 프로그래밍된다. 그 다음, 판정 로직(232)은 소스 트리거 이벤트가 발생했는지를 결정한다. 위에서 논의된 바와 같이, 메모리로부터의 데이터 입력은 go 비트를 아밍하는 것에 의해 트리거될 수 있다 (예를 들어, "트리거-온-고" 모드). 따라서, 트리거는 go 레지스터의 go 비트가 1로 설정되고 나면 발생할 수 있다. 트리거가 발생하고 나면, 다음 프레임이 현재 프레임으로 되고, 단계(234)에서 처리를 위해 FEProc에 보내진다. 위에서 논의된 바와 같이, FEProc는 ProcInDMAGo 레지스터의 NextBk 필드 내에 지정된 대응하는 데이터 레지스터(ProcPipe)에 기초하는 데이터 파라미터들을 이용하여 구성될 수 있다. 현재 프레임의 처리가 단계(236)에서 완료된 후에, 방법(220)은 단계(228)로 복귀하고 계속될 수 있다.
ISP 프런트-엔드(80)가 다루도록 구성되는 추가의 동작 이벤트는 이미지 처리 동안의 구성 변화이다. 예를 들어, 그러한 이벤트는 ISP 프런트-엔드(80)가 단일 센서 구성으로부터 듀얼 센서 구성으로 전이할 때, 또는 그 반대일 때 발생할 수 있다. 위에서 논의된 바와 같이, 일부 소스들에 대한 NextVld 필드는 하나의 이미지 센서가 활성인지 아니면 이미지 센서들 둘 다가 활성인지에 따라 다를 수 있다. 따라서, 센서 구성이 변화될 때, ISP 프런트-엔드 제어 유닛(164)은 모든 목적지 유닛이 새로운 소스에 의해 타깃으로 되기 전에 그들을 릴리즈할 수 있다. 이는 무효한 구성(예를 들어, 복수의 소스를 하나의 목적지에 할당하는 것)을 방지할 수 있다. 일 실시예에서, 목적지 유닛들의 릴리즈는 go 레지스터들 전부의 NextVld 필드를 0으로 설정하여 모든 목적지들을 디스에이블시키고, go 비트를 아밍하는 것에 의해 달성될 수 있다. 목적지 유닛들이 릴리즈되고 난 후, go 레지스터들은 현재의 센서 모드에 따라 재구성될 수 있고, 이미지 처리가 계속될 수 있다.
일 실시예에 따라, 단일 센서 구성과 듀얼 센서 구성 간에서 스위칭하기 위한 방법(240)이 도 17에 도시되어 있다. 단계(242)에서 시작하여, ISP 프런트-엔드(80)의 특정 소스로부터의 이미지 데이터의 다음 프레임이 식별된다. 단계(244)에서, 타깃 목적지들(NextVld)은 소스에 대응하는 go 레지스터 내에 프로그래밍된다. 다음으로, 단계(246)에서, 타깃 목적지들에 따라, 타깃 목적지들에 연관된 올바른 데이터 레지스터들을 포인팅하도록 NextBk가 프로그래밍된다. 그 다음, 판정 로직(248)은 소스 트리거 이벤트가 발생했는지를 결정한다. 트리거가 발생하고 나면, 단계(250)에 나타난 바와 같이, 다음 프레임은 NextVld에 의해 지정되는 목적지 유닛들에 보내지고, NextBk에 의해 지정된 대응하는 데이터 레지스터들을 이용하여 목적지 유닛들에 의해 처리된다. 처리는 현재 프레임의 처리가 완료되는 단계(252)까지 계속된다.
후속하여, 판정 로직(254)은 소스를 위한 타깃 목적지들 내에 변화가 존재하는지를 결정한다. 위에서 논의된 바와 같이, Sens0 및 Sens1에 대응하는 go 레지스터들의 NextVld 세팅은 하나의 센서가 활성인지 아니면 센서들 둘 다가 활성인지에 따라 달라질 수 있다. 예를 들어, 표 2를 참조하면, Sensor0만이 활성인 경우, Sensor0 데이터는 SIf0DMA, StatsPipe0 및 FEProc에 보내진다. 그러나, 표 3을 참조하면, Sensor0 및 Sensor1 둘 다가 활성인 경우, Sensor0 데이터는 FEProc에 직접 보내지지 않는다. 대신에, 위에서 언급된 바와 같이, Sensor0 및 Sensor1 데이터는 메모리(108)에 기입되고, 소스 ProcInDMA에 의해 번갈아 FEProc에 판독된다. 따라서, 판정 로직(254)에서 타깃 목적지 변화가 검출되지 않는 경우, 제어 유닛(164)은 센서 구성이 변경되지 않았음을 추론하고, 방법(240)은 단계(246)으로 복귀하며, 거기에서 소스 go 레지스터의 NextBk 필드는 다음 프레임을 위한 올바른 데이터 레지스터들을 포인팅하도록 프로그래밍되고 계속된다.
그러나, 판정 로직(254)에서 목적지 변화가 검출되면, 제어 유닛(164)은 센서 구성 변경이 발생했음을 결정한다. 예를 들어, 이것은 단일 센서 모드로부터 듀얼 센서 모드로의 스위칭, 또는 센서들을 모두 셧오프한 것을 나타낼 수 있다. 따라서, 방법(240)은 단계(256)로 계속되고, 여기서 모든 go 레지스터들에 대한 NextVld 필드들의 모든 비트들이 0으로 설정되고, 따라서 다음 트리거에서 임의의 목적지로 프레임들을 보내는 것을 효과적으로 디스에이블시킨다. 그 다음, 판정 로직(258)에서, 모든 목적지 유닛들이 아이들 상태로 전이했는지에 관한 결정이 이루어진다. 그렇지 않은 경우, 방법(240)은 모든 목적지 유닛들이 그들의 현재 동작을 완료할 때까지 판정 로직(258)에서 대기한다. 다음으로, 판정 로직(260)에서, 이미지 처리가 계속되어야 하는지에 관한 결정이 이루어진다. 예를 들어, 목적지 변경이 Sensor0 및 Sensor1 둘 다의 비활성화를 나타낸 경우, 이미지 처리는 단계(262)에서 종료된다. 그러나, 이미지 처리가 계속되어야 하는 것으로 결정되는 경우, 방법(240)은 단계(244)로 복귀하고, go 레지스터들의 NextVld 필드들은 현재 동작 모드(예를 들어, 단일 센서 또는 듀얼 센서)에 따라 프로그래밍된다. 여기에 나타난 바와 같이, go 레지스터들 및 목적지 필드들을 클리어하기 위한 단계들(254-262)은 집합적으로 참조 번호(264)에 의해 참조될 수 있다.
다음으로, 도 18은 다른 듀얼 센서 동작 모드를 가능하게 하는 다른 실시예를 흐름도(방법(265))를 통해 보여주고 있다. 방법(265)은, 단계(266)에 나타난 바와 같이, 한 센서(예를 들어, Sensor0)가 활성 상태에서 이미지 데이터를 획득하고 있고 이미지 프레임들을 처리를 위해 FEProc(130)에 보내고 있으면서, 또한 이미지 프레임들을 StatsPipe0 및/또는 메모리(108)(Sif0DMA)에 보내고 있는 한편, 다른 센서(예를 들어, Sensor1)는 비활성(예를 들어, 꺼짐)인 조건을 나타낸다. 그 다음, 판정 로직(268)은 Sensor1이 이미지 데이터를 FEProc에 보내기 위해 다음 프레임에서 활성으로 될 조건에 대해 검출한다. 이러한 조건이 만족되지 않으면, 방법(265)은 단계(266)로 복귀한다. 그러나, 이러한 조건이 만족되면, 방법(265)은 동작(264)(도 17의 단계들(254-262)을 집합적으로 나타냄)을 수행함으로써 진행되고, 이에 의해 단계(264)에서, 소스들의 목적지 필드들이 클리어되고 재구성된다. 예를 들어, 단계(264)에서, Sensor1에 연관된 go 레지스터의 NextVld 필드는 StatsPipe1 및/또는 메모리(Sif1DMA)뿐만 아니라 FEProc를 목적지로서 지정하도록 프로그래밍될 수 있는 한편, Sensor0에 연관된 go 레지스터의 NextVld 필드는 목적지로서 FEProc를 클리어하도록 프로그래밍될 수 있다. 본 실시예에서, 비록 Sensor0에 의해 캡처되는 프레임들은 다음 프레임에서 FEProc에 보내지지 않지만, 단계(270)에 나타난 바와 같이, Sensor0은 활성으로 유지되어 그것의 이미지 프레임들을 StatsPipe0에 계속 보낼 수 있는 한편, Sensor1은 단계(272)에서 데이터를 캡처하여 처리를 위해 FEProc에 보낸다. 따라서, 비록 한 센서로부터의 이미지 프레임들만이 처리를 위해 FEProc에 보내지더라도, 센서들 Sensor0 및 Sensor1 둘 다가 이러한 "듀얼 센서" 모드로 계속 동작할 수 있다. 본 예를 목적으로, 처리를 위해 FEProc에 프레임들을 보내는 센서는 "활성 센서"로서 참조될 수 있고, FEProc에 프레임을 보내고 있지는 않지만 통계 처리 유닛에는 데이터를 여전히 보내고 있는 센서는 "준(semi)-활성 센서"로서 참조될 수 있고, 데이터를 전혀 획득하고 있지 않은 센서는 "비활성 센서"로서 참조될 수 있다.
상기 기술의 한가지 이점은 준-활성 센서(Sensor0)에 대하여 통계가 계속하여 획득되기 때문에, 다음 번에 준-활성 센서가 활성 상태로 전이하고 현재 활성 센서(Sensor1)가 준-활성 또는 비활성 상태로 전이할 때, 이미지 통계의 계속적인 수집으로 인해 컬러 밸런스 및 노출 파라미터들이 이미 이용가능할 수 있으므로, 준-활성 센서가 한 프레임 내에서 데이터를 획득하기 시작할 수 있다는 것이다. 이러한 기술은 이미지 센서들의 "핫 스위칭(hot switching)"이라고 칭해질 수 있으며, 이미지 센서들의 "콜드 스타트(cold starts)"(예를 들어, 통계 정보가 이용가능하지 않은 상태에서 시작함)에 관련된 불리한 점들을 회피한다. 또한, (위에서 언급된 바와 같이) 각각의 소스가 비동기적이므로, 전력을 절약하기 위해, 준-활성 센서는 준-활성 기간 동안 감소된 클럭 및/또는 프레임 레이트에서 동작할 수 있다.
도 8의 ISP 프런트-엔드 로직(80)에 도시된 통계 처리 및 픽셀 처리 동작들의 보다 더 상세한 설명으로 진행하기 전에, 다양한 ISP 프레임 구역들의 정의들에 관한 간략한 소개가 본 발명의 주제를 더 잘 이해하는 것을 용이하게 할 것으로 생각된다. 이것을 염두에 두고서, 이미지 소스 프레임 내에서 정의될 수 있는 다양한 프레임 구역들이 도 19에 도시된다. 이미지 처리 회로(32)에 제공되는 소스 프레임을 위한 포맷은 위에서 논의된 타일(tiled) 또는 선형 어드레싱 모드를 이용할 수 있으며, 8, 10, 12 또는 14 비트 정밀도의 픽셀 포맷들을 이용할 수 있다. 도 19에 도시된 것과 같은 이미지 소스 프레임(274)은 센서 프레임 구역(276), 미처리 프레임 구역(276) 및 활성 구역(278)을 포함할 수 있다. 센서 프레임(276)은 일반적으로 이미지 센서(90)가 이미지 처리 회로(32)에 제공할 수 있는 최대 프레임 크기이다. 미처리 프레임 구역(278)은 ISP 프런트-엔드 처리 로직(80)에 보내지는 센서 프레임(276)의 구역으로서 정의될 수 있다. 활성 구역(280)은 전형적으로는 미처리 프레임 구역(278) 내의 소스 프레임(274)의 일부분으로서 정의될 수 있으며, 그에 대해 특정 이미지 처리 동작을 위한 처리가 수행된다. 본 기술의 실시예들에 따르면, 그 활성 구역(280)은 상이한 이미지 처리 동작들에 대하여 동일할 수도 있고 상이할 수도 있다.
본 기술의 양태들에 따르면, ISP 프런트-엔드 로직(80)은 미처리 프레임(278)만을 수신한다. 따라서, 본 논의의 목적을 위하여, ISP 프런트-엔드 처리 로직(80)을 위한 글로벌 프레임 크기는 폭(282) 및 높이(284)에 의해 결정되는 미처리 프레임 크기로서 가정될 수 있다. 일부 실시예들에서, 센서 프레임(276)의 경계들로부터 미처리 프레임(278)으로의 오프셋은 제어 로직(84)에 의해 결정 및/또는 유지될 수 있다. 예를 들어, 제어 로직(84)은 센서 프레임(276)에 대해 지정된 x 오프셋(286) 및 y 오프셋(288)과 같은 입력 파라미터들에 기초하여 미처리 프레임 구역(278)을 결정할 수 있는 펌웨어를 포함할 수 있다. 또한, 일부 경우들에서, ISP 프런트-엔드 로직(80) 또는 ISP 파이프 로직(82) 내의 처리 유닛은, 미처리 프레임 내에 있지만 활성 구역(280) 밖에 있는 픽셀들이 처리되지 않도록, 즉 변경되지 않은 채로 남아있도록 정의된 활성 구역을 가질 수 있다. 예를 들어, 폭(290) 및 높이(292)를 갖는 특정 처리 유닛을 위한 활성 구역(280)은 미처리 프레임(278)에 대한 x 오프셋(294) 및 y 오프셋(296)에 기초하여 정의될 수 있다. 또한, 활성 구역이 구체적으로 정의되지 않은 경우, 이미지 처리 회로(32)의 일 실시예는 활성 구역(280)이 미처리 프레임(278)과 동일하다고 가정할 수 있다 (예를 들어, x 오프셋(294) 및 y 오프셋(296) 둘 다가 0과 동일함). 따라서, 이미지 데이터에 대하여 수행되는 이미지 처리 동작들을 목적으로, 미처리 프레임(278) 또는 활성 구역(280)의 경계들에 대하여, 경계 조건들이 정의될 수 있다.
이러한 점들을 염두에 두고서 도 20을 참조하여, 본 기술의 실시예에 따라, (앞에서 도 8에 논의된) ISP 프런트-엔드 픽셀 처리 로직(130)의 보다 더 상세한 도면이 도시된다. 도시된 바와 같이, ISP 프런트-엔드 픽셀 처리 로직(130)은 시간 필터(298) 및 비닝 보상 필터(300)를 포함한다. 시간 필터(298)는 입력 이미지 신호 Sif0, Sif1, FEProcIn, 또는 선처리된 이미지 신호(예를 들어, 159, 161) 중 하나를 수신할 수 있으며, 임의의 추가의 처리가 수행되기 전에 미처리 픽셀 데이터에 대해 동작할 수 있다. 예를 들어, 시간 필터(298)는 처음에, 시간 방향으로 이미지 프레임들의 평균을 구함으로써 잡음을 감소시키기 위해 이미지 데이터를 처리할 수 있다. 이하에 더 상세하게 논의되는 비닝 보상 필터(300)는 이미지 픽셀들의 균일한 공간 분포를 유지하기 위해, 이미지 센서(예를 들어, 90a, 90b)로부터의 비닝된 미처리 이미지 데이터에 대해 스케일링 및 재샘플링을 적용할 수 있다.
시간 필터(298)는 모션 및 밝기 특성에 기초하여 픽셀 적응적(pixel-adaptive)일 수 있다. 예를 들어, 픽셀 모션이 높은 경우, 결과적인 처리 이미지 내에서의 "트레일링(trailing)" 또는 "고스팅 아티팩트(ghosting artifacts)"의 출현을 방지하기 위해, 필터링 강도가 감소될 수 있는 한편, 모션이 거의 또는 전혀 검출되지 않는 경우에는 필터링 강도가 증가될 수 있다. 또한, 필터링 강도는 밝기 데이터(예를 들어, "루마")에 기초하여서도 조절될 수 있다. 예를 들어, 이미지 밝기가 증가하면, 필터링 아티팩트들은 사람의 눈에 더 잘 보이게 될 수 있다. 따라서, 픽셀이 높은 레벨의 밝기를 가질 때는 필터링 강도가 더 감소될 수 있다.
시간 필터링을 적용하는데 있어서, 시간 필터(298)는 이전의 필터링된 프레임 또는 오리지널 프레임으로부터 온 것일 수 있는 모션 히스토리 입력 데이터(Hin) 및 기준 픽셀 데이터(Rin)를 수신할 수 있다. 이러한 파라미터들을 이용하여, 시간 필터(298)는 모션 히스토리 출력 데이터(Hout) 및 필터링된 픽셀 출력(Yout)을 제공할 수 있다. 그 다음, 필터링된 픽셀 출력 Yout은 출력 신호 FEProcOut를 제공하기 위해 필터링된 픽셀 출력 데이터 Yout에 대해 하나 이상의 스케일링 동작을 수행하도록 구성될 수 있는 비닝 보상 필터(300)에 전달된다. 그 다음, 처리된 픽셀 데이터 FEProcOut은 위에서 논의된 바와 같이, ISP 파이프 처리 로직(82)에 포워딩될 수 있다.
도 21을 참조하면, 제1 실시예에 따라, 도 20에 도시된 시간 필터에 의해 수행될 수 있는 시간 필터링 처리(302)를 도시하는 처리도가 도시되어 있다. 시간 필터(298)는 2탭 필터(2-tap filter)를 포함할 수 있고, 필터 계수는 모션 및 밝기 데이터에 적어도 부분적으로 기초하여 픽셀별로 적응적으로 조절된다. 예를 들어, 입력 픽셀 x(t)(변수 "t"는 시간값을 나타냄)는 필터 계수들을 포함할 수 있는 모션 히스토리 테이블(M)(304) 내에서의 모션 인덱스 룩업을 생성하기 위해, 이전에 필터링된 프레임 또는 이전의 오리지널 프레임 내의 기준 픽셀들 r(t-1)에 비교될 수 있다. 또한, 모션 히스토리 입력 데이터 h(t-1)에 기초하여, 현재 입력 픽셀 x(t)에 대응하는 모션 히스토리 출력 h(t)가 결정될 수 있다.
모션 히스토리 출력 h(t) 및 필터 계수 K는 모션 델타 d(j,i,t)에 기초하여 결정될 수 있으며, 여기서 (j,i)는 현재 픽셀 x(j,i,t)의 공간 위치의 좌표를 나타낸다. 모션 델타 d(j,i,t)는 수평으로 병치된(collocated) 동일 컬러의 3개의 픽셀에 대한 오리지널 픽셀과 기준 픽셀 간의 3개의 절대 델타(absolute delta)의 최대값을 결정함으로써 계산될 수 있다. 예를 들어, 도 22를 간단히 참조하면, 오리지널 입력 픽셀들(312, 313 및 314)에 대응하는 병치된 3개의 기준 픽셀(308, 309 및 310)의 공간 위치가 도시되어 있다. 일 실시예에서, 모션 델타는 아래의 수학식을 이용하여 이러한 오리지널 픽셀 및 기준 픽셀에 기초하여 산출될 수 있다.
[수학식 1a]
Figure 112011064114822-pat00004
모션 델타값을 결정하기 위한 이러한 기술을 도시하는 흐름도가 아래에서 도 24에 더 도시되어 있다. 또한, 위에서 수학식 1a(및 이하의 도 24)에 나타난 것과 같은 모션 델타값을 산출하기 위한 기술은 단지 모션 델타값을 결정하기 위한 일 실시예를 제공하도록 의도된 것일 뿐임을 이해해야 한다.
다른 실시예들에서, 모션 델타값을 결정하기 위해 동일 컬러 픽셀들의 어레이가 평가될 수 있다. 예를 들어, 수학식 1a에서 참조된 3개의 픽셀에 더하여, 모션 델타값을 결정하기 위한 일 실시예는 기준 픽셀들(312, 313 및 314)보다 2행 위(예를 들어, Bayer 패턴을 가정하면, j-2)의 동일 컬러 픽셀들과 그들에 대응하는 병치된 픽셀들, 및 기준 픽셀들(312, 313 및 314)보다 2행 아래(예를 들어, Bayer 패턴을 가정하면, j+2)의 동일 컬러 픽셀들 및 그들에 대응하는 병치된 픽셀들 간의 절대 델타들을 평가하는 것도 포함할 수 있다. 예를 들어, 일 실시예에서, 모션 델타값은 아래와 같이 표현될 수 있다.
[수학식 1b]
Figure 112011064114822-pat00005
따라서, 수학식 1b에 의해 나타내어진 실시예에서, 모션 델타값은 동일 컬러 픽셀들의 3×3 어레이 간의 절대 델타를 그 3×3 어레이의 중심에 위치된 현재 픽셀(313)과 비교함으로써 결정될 수 있다 (예를 들어, 상이한 컬러들의 픽셀들이 고려되는 경우에는, 실제로는 Bayer 컬러 패턴을 위한 5×5 어레이). 현재 픽셀(예를 들어, 313)이 어레이의 중심에 위치되어 있는, 동일 컬러 픽셀들의 임의의 적합한 2차원 어레이(예를 들어, 동일 행 내의 모든 픽셀을 갖는 어레이들(예를 들어, 수학식 1a) 또는 동일 열 내의 모든 픽셀을 갖는 어레이들을 포함)이 모션 델타값을 결정하기 위해 분석될 수 있음에 유의해야 한다. 또한, 모션 델타값은 절대 델타들의 최대값으로서 결정될 수 있는 한편(예를 들어, 수학식 1a 및 1b에 나타난 바와 같이), 다른 실시예들에서, 모션 델타값은 또한 절대 델타들의 평균 또는 중간값으로서 선택될 수 있다. 또한, 상기 기술들은 다른 유형들의 컬러 필터 어레이들(예를 들어, RGBW, CYGM 등)에도 적용될 수 있으며, Bayer 패턴에 전용이도록 의도된 것이 아니다.
다시 도 21을 참조해 볼 때, 모션 델타 값이 결정되면, 모션 테이블(M)(304)로부터 필터 계수(K)를 선택하는데 사용될 수 있는 모션 인덱스 룩업은, 현재 픽셀(예컨대, 공간적 위치(j, i))에 대한 모션 델타 d(t)를 모션 히스토리 입력 h(t-1)과 합산함으로써 계산될 수 있다. 예를 들면, 필터 계수 K는 다음과 같이 결정될 수 있다.
[수학식 2a]
Figure 112011064114822-pat00006
또한, 모션 히스토리 출력 h(t)는 다음의 수학식을 사용하여 결정될 수 있다.
[수학식 3a]
Figure 112011064114822-pat00007
다음으로, 현재 입력 픽셀 x(t)의 밝기는, 루마 테이블(L)(306)에 루마 인덱스 룩업을 생성하는데 사용될 수 있다. 일 실시예에서, 루마 테이블은, 0과 1 사이일 수 있는 감쇠 인자들을 포함할 수 있고, 루마 인덱스에 기초하여 선택될 수 있다. 제2 필터 계수 K′는, 다음의 수학식에서와 같이 제1 필터 계수 K와 루마 감쇠 인자를 곱함으로써 계산될 수 있다.
[수학식 4a]
Figure 112011064114822-pat00008
그 후에, K′에 대해 결정된 값은 시간 필터(298)에 대한 필터링 계수로서 사용될 수 있다. 전술한 바와 같이, 시간 필터(298)는 2-탭 필터일 수 있다. 또한, 시간 필터(298)는, 이전에 필터링된 프레임을 사용하여 무한 임펄스 응답(IIR) 필터로 구성되거나, 이전의 오리지널 프레임을 사용하여 유한 임펄스 응답(FIR) 필터로 구성될 수 있다. 시간 필터(298)는, 현재 입력 픽셀 x(t), 기준 픽셀 r(t-1), 필터 계수 K′와 다음의 수학식을 사용하여 필터링된 출력 픽셀 y(t)(Yout)을 산출할 수 있다.
[수학식 5a]
Figure 112011064114822-pat00009
전술한 바와 같이, 도 21에 도시된 시간 필터링 프로세스(302)는 픽셀 단위로(pixel-by-pixel basis) 수행될 수 있다. 일 실시예에서, 동일한 모션 테이블 M 및 루마 테이블 L이 모든 컬러 컴포넌트들(예컨대, R, G 및 B)을 위해 사용될 수 있다. 또한, 일부 실시예들은 바이패스 메커니즘을 제공할 수 있으며, 이러한 바이패스 메커니즘에서, 예컨대, 제어 로직(84)으로부터의 제어 신호에 응답하여 시간 필터링이 바이패스될 수 있다. 또한, 도 26 및 도 27과 관련하여 후술되는 바와 같이, 시간 필터(298)의 일 실시예는, 이미지 데이터의 각 컬러 컴포넌트에 대해 별개의 모션 및 루마 테이블들을 사용할 수 있다.
도 21 및 도 22와 관련하여 기술된 시간 필터링 테크닉의 실시예는, 도 23을 볼 때 더 잘 이해될 수 있을 것이며, 도 23은 전술한 실시예에 따라 방법 315를 예시하는 흐름도를 도시한다. 방법 315는 단계 316에서 시작하고, 여기서, 이미지 데이터의 현재 프레임의 공간적 위치(j, i)에 위치한 현재 픽셀 x(t)가 시간 필터링 시스템(302)에 의해 수신된다. 단계 317에서, 현재 픽셀 x(t)에 대한 모션 델타 값 d(t)는, 적어도 부분적으로 이미지 데이터의 이전 프레임(예컨대, 현재 프레임에 바로 선행하는 이미지 프레임)으로부터의 하나 이상의 병치된 기준 픽셀들(예컨대, r(t-1))에 기초하여 결정될 수 있다. 단계 317에서 모션 델타 값 d(t)를 결정하는 테크닉은, 도 24와 관련하여 아래에 추가적으로 설명되며, 전술한 바와 같이 수학식 1a에 따라 수행될 수 있다.
단계 317로부터 모션 델타 값 d(t)가 구해지면, 모션 테이블 룩업 인덱스는, 단계 318에 도시된 바와 같이 이전 프레임으로부터 공간적 위치(j, i)에 대응하는 모션 히스토리 입력 값 h(t-1) 및 모션 델타 값 d(t)를 사용하여 결정될 수 있다. 또한, 도시되지는 않았지만, 현재 픽셀 x(t)에 대응하는 모션 히스토리 값 h(t) 역시, 모션 델타 값 d(t)가 알려지면 예컨대 전술한 수학식 3a를 사용함으로써 단계 318에서 결정될 수 있다. 그 이후에, 단계 319에서, 제1 필터 계수 K는, 단계 318로부터의 모션 테이블 룩업 인덱스를 사용하여 모션 테이블(304)로부터 선택될 수 있다. 모션 테이블 룩업 인덱스를 결정하는 것과 모션 테이블로부터 제1 필터 계수 K를 선택하는 것은, 전술한 바와 같이 수학식 2a에 따라 수행될 수 있다.
다음으로, 단계 320에서 감쇠 인자가 루마 테이블(306)로부터 선택될 수 있다. 예를 들면, 루마 테이블(306)은 대략 0과 1 사이의 범위를 갖는 감쇠 인자들을 포함할 수 있고, 감쇠 인자는 룩업 인덱스로서 현재 픽셀 x(t)의 값을 사용하여 루마 테이블(306)로부터 선택될 수 있다. 감쇠 인자가 선택되면, 제2 필터 계수 K′는, 위의 수학식 4a에 나타난 바와 같이 선택된 감쇠 인자와 제1 필터 계수 K(단계 319에서 선택됨)를 사용하여 단계 321에서 결정될 수 있다. 그 후에, 단계 322에서, 현재 입력 픽셀 x(t)에 대응하는 시간적으로 필터링된 출력 값 y(t)는, 제2 필터 계수 K′(단계 320에서 결정됨), 병치된 기준 픽셀 r(t-1)의 값, 입력 픽셀 x(t)의 값에 기초하여 결정된다. 예를 들면, 일 실시예에서, 출력 값 y(t)는 전술한 바와 같이 수학식 5a에 따라 결정될 수 있다.
도 24를 참조하면, 방법 315에서의 모션 델타 값 d(t)를 결정하기 위한 단계 317이 일 실시예에 따라 더욱 자세하게 도시된다. 특히, 모션 델타 값 d(t)의 결정은 일반적으로 수학식 1a에 따라 전술된 동작에 대응할 수 있다. 도시된 바와 같이, 단계 317은 서브-단계들(324-327)을 포함할 수 있다. 서브-단계 324에서 시작하여, 현재 입력 픽셀 x(t)로서 동일한 컬러 값을 갖는 3개의 수평으로 인접한 픽셀들의 세트가 식별된다. 예시로서 도 22에 도시된 실시예에 따라, 이미지 데이터는 Bayer 이미지 데이터를 포함할 수 있고, 3개의 수평으로 인접한 픽셀들은 현재 입력 픽셀 x(t)(313), 현재 입력 픽셀(313) 좌측의 동일한 컬러의 제2 픽셀(312), 현재 입력 픽셀(313) 우측의 동일한 컬러의 제3 픽셀을 포함할 수 있다.
다음으로, 서브-단계(325)에서, 선택된 3개의 수평으로 인접한 픽셀들(312, 313, 314)의 세트에 대응하는 이전 프레임으로부터의 3개의 병치된 기준 픽셀들(308, 309, 310)이 식별된다. 선택된 픽셀들(312, 313, 314)과 3개의 병치된 기준 픽셀들(308, 309, 310)을 사용하여, 3개의 선택된 픽셀들(312, 313, 314) 각각과 그 대응하는 병치된 기준 픽셀들 (308, 309, 310) 간의 차이의 절대값들이 서브-단계 326에서 각각 결정된다. 그 후에, 서브-단계 327에서, 서브-단계 326에서 결정한 3개의 차이들의 최대값이 현재 입력 픽셀 x(t)에 대한 모션 델타 값 d(t)로서 선택된다. 전술한 바와 같이, 수학식 1a에 나타난 모션 델타 값 계산 테크닉을 예시하는 도 24는, 단지 하나의 실시예를 제공하는 것으로만 의도된다. 실제로, 전술한 바와 같이, 어레이의 중심에 있는 현재 픽셀과 동일 컬러의 픽셀들의 임의의 적절한 2차원 어레이는 모션 델타 값(예컨대, 수학식 1b)을 결정하는데 사용될 수 있다.
또한, 시간 필터링을 이미지 데이터에 적용하는 테크닉에 대한 다른 실시예가 도 25에 도시된다. 예를 들면, 이미지 데이터의 상이한 컬러 컴포넌트들에 대한 신호대 잡음비들이 상이할 수 있기 때문에, 현재 픽셀이 모션 테이블(304)과 루마 테이블(306)로부터 모션 및 루마 값들을 선택하기 전에 이득을 얻도록 현재 픽셀에 이득이 적용될 수 있다. 컬러 의존적인 각각의 이득을 적용함으로써, 신호대 잡음비가 상이한 컬러 컴포넌트들 사이에서 더 일관될 수 있다. 단지 예시로서, 미처리 Bayer 이미지 데이터를 사용하는 일 구현예에서, 적색 및 청색 컬러 채널들은 일반적으로, 녹색(Gr 및 Gb) 컬러 채널들과 비교할 때 더 민감할 수 있다. 따라서, 적절한 컬러-의존적 이득을 각각의 처리된 픽셀에 적용함으로써, 각 컬러 컴포넌트 사이의 신호대 잡음 변화가 일반적으로 감소될 수 있고, 이에 따라, 자동 화이트 밸런스 이득(auto-white balance gain)들 적용 후의 상이한 컬러들에 걸친 일관성뿐만 아니라, 특히 고스팅 아티팩트(ghosting artifact)들을 감소시킬 수 있다.
이러한 점을 고려하여 도 25는, 그러한 실시예에 따라 프런트-엔드 처리 유닛(130)에 의해 수신되는 이미지 데이터에 시간 필터링을 적용하는 방법(328)을 도시하는 흐름도를 제공한다. 단계 329에서 시작하여, 이미지 데이터의 현재 프레임의 공간적 위치(j, i)에 위치한 현재 픽셀 x(t)는 시간 필터링 시스템(302)에 의해 수신된다. 단계 330에서, 현재 픽셀 x(t)에 대한 모션 델타 값 d(t)는, 적어도 부분적으로 이미지 데이터의 이전 프레임(예컨대, 현재 프레임에 바로 선행하는 이미지 프레임)으로부터의 하나 이상의 병치된 기준 픽셀들(예컨대, r(t-1))에 기초하여 결정된다. 단계 330은, 도 23의 단계 317과 유사할 수 있으며, 위의 수학식 1에 나타난 연산을 사용할 수 있다.
그 다음에, 단계 331에서, 모션 델타 값 d(t), 이전 프레임으로부터의 공간적 위치(j, i)에 대응하는(예컨대, 병치된 기준 픽셀 r(t-1)에 대응하는) 모션 히스토리 입력 값 h(t-1) 및 현재 픽셀의 컬러와 연관된 이득을 이용하여 모션 테이블 룩업 인덱스가 결정될 수 있다. 이후에, 단계 332에서, 단계 331에서 결정된 모션 테이블 룩업 인덱스를 이용하여 모션 테이블(304)로부터 제1 필터 계수(K)가 선택될 수 있다. 단지 예로서, 하나의 실시예에서, 필터 계수(K) 및 모션 테이블 룩업 인덱스는 다음과 같이 결정될 수 있는데:
[수학식 2b]
Figure 112011064114822-pat00010
여기서, M은 모션 테이블을 나타내고, gain[c]는 현재 픽셀의 컬러와 연관된 이득에 대응한다. 추가로, 도 25에는 도시되지 않았지만, 현재 픽셀에 대한 모션 히스토리 출력 값 h(t)가 결정되어 후속하는 이미지 프레임(예컨대, 다음 프레임)의 병치된 픽셀에 시간 필터링(temporal filtering)을 적용하기 위해 이용될 수 있다는 것이 이해되어야 한다. 본 실시예에서, 현재 픽셀 x(t)에 대한 모션 히스토리 출력 h(t)은 다음 수학식을 이용하여 결정될 수 있다.
[수학식 3b]
Figure 112011064114822-pat00011
그 다음에, 단계 333에서, 현재 픽셀 x(t)의 컬러와 연관된 이득(gain[c])에 기초하여 결정된 루마 테이블 룩업 인덱스를 이용하여 루마 테이블(306)로부터 감쇠 인자가 선택될 수 있다. 상술한 바와 같이, 루마 테이블에 저장된 감쇠 인자들은 거의(approximately) 0에서 1까지의 범위를 가질 수 있다. 이후에, 단계 334에서, (단계 333으로부터의) 감쇠 인자 및 (단계 332로부터의) 제1 필터 계수(K)에 기초하여 제2 필터 계수(K')가 계산될 수 있다. 단지 예로서, 하나의 실시예에서, 제2 필터 계수(K') 및 루마 테이블 룩업 인덱스는 다음과 같이 결정될 수 있다.
[수학식 4b]
Figure 112011064114822-pat00012
그 다음에, 단계 335에서, (단계 334로부터의) 제2 필터 계수(K'), 병치된 기준 픽셀 r(t-1)의 값, 및 입력 픽셀 x(t)의 값에 기초하여 현재 입력 픽셀 x(t)에 대응하는 시간적으로 필터링된 출력 값 y(t)가 결정된다. 예로서, 하나의 실시예에서, 출력 값 y(t)는 다음과 같이 결정될 수 있다.
[수학식 5b]
Figure 112011064114822-pat00013
도 26에 이어, 시간 필터링 프로세스(336)에 대한 추가 실시예가 도시된다. 여기서, 시간 필터링 프로세스(336)는, 각 입력 픽셀에 컬러에 의존적인(color-dependent) 이득(예컨대, gain[c])을 적용하고 공동(shared) 모션 및 루마 테이블들을 이용하는 대신, 각 컬러 컴포넌트들에 대해 별개의(separate) 모션 및 루마 테이블들이 제공된다는 것을 제외하면, 도 25에서 설명된 실시예와 유사한 방식으로 달성될 수 있다. 예로서, 도 26에 도시된 바와 같이, 모션 테이블들(304)은 제1 컬러에 대응하는 모션 테이블(304a), 제2 컬러에 대응하는 모션 테이블(304b) 및 제n 컬러에 대응하는 모션 테이블(304c)을 포함할 수 있고, 여기서, n은 미처리 이미지 데이터에 존재하는 컬러들의 수에 의존적이다. 유사하게, 루마 테이블(306)은 제1 컬러에 대응하는 루마 테이블(306a), 제2 컬러에 대응하는 루마 테이블(306b) 및 제n 컬러에 대응하는 모션 테이블(304c)을 포함할 수 있다. 따라서, 미처리 이미지 데이터가 Bayer 이미지 데이터인 실시예에서, 3개의 모션 및 루마 테이블들이 적색, 청색 및 녹색 컬러 컴포넌트들 각각에 대해 제공될 수 있다. 상술한 바와 같이, 필터링 계수들(K) 및 보간 감쇠 인자들의 선택은 현재 컬러(예컨대, 현재 입력 픽셀의 컬러)에 대해 선택된 모션 및 루마 테이블에 의존적일 수 있다.
컬러에 의존적인 모션 및 루마 테이블들을 이용하는 시간 필터링에 대한 추가 실시예를 기술하는 방법(338)이 도 27에 도시된다. 방법(338)에 이용될 수 있는 다양한 계산들 및 공식들은, 각 컬러에 대해 특정한 모션 및 루마 테이블이 선택된다는 것 외엔 도 23에 도시된 실시예와 유사할 수 있고, 또는 컬러에 의존적인 gain[c]를 사용하는 대신 컬러에 의존적인 모션 및 루마 테이블을 선택한다는 것 외엔 도 25에 도시된 실시예와 유사할 수 있다는 것이 인정될 것이다.
단계 339에서 시작하면, 이미지 데이터의 현재 프레임의 공간적 위치 (j,i)에 위치한 현재 픽셀 x(t)가 시간 필터링 시스템(336)(도 26)에 의해 수신된다. 단계 340에서, 이미지 데이터의 이전 프레임(예컨대, 현재 프레임 직전의 이미지 프레임)으로부터의 하나 이상의 병치된 기준 픽셀들(예컨대, r(t-1))에 적어도 부분적으로 기초하여 현재 픽셀 x(t)에 대한 모션 델타 값 d(t)가 결정된다. 단계 340은 도 23의 단계 317과 유사할 수 있고, 상기 수학식 1에 나타낸 동작을 이용할 수 있다.
그 다음에, 단계 341에서, 이전 프레임으로부터의 공간적 위치 (j,i)에 대응하는(예컨대, 병치된 기준 픽셀 r(t-1)에 대응하는) 모션 히스토리 입력 값 h(t-1) 및 모션 델타 값 d(t)을 이용하여 모션 테이블 룩업 인덱스가 결정될 수 있다. 그 후에, 단계 342에서, 현재 입력 픽셀의 컬러에 기초하여 이용가능한 모션 테이블들(예컨대, 304a, 304b, 304c) 중 하나로부터 제1 필터 계수(K)가 선택될 수 있다. 예로서, 적절한 모션 테이블이 식별되면, 제1 필터 계수(K)는 단계 341에서 결정된 모션 테이블 룩업 인덱스를 이용하여 선택될 수 있다.
제1 필터 계수(K)를 선택한 후에, 단계 343에 도시된 바와 같이, 현재 픽셀 x(t)의 값에 기초하여, 현재 컬러에 대응하는 루마 테이블이 선택되고 선택된 루마 테이블로부터 감쇠 인자가 선택된다. 그 후에, 단계 344에서, (단계 343으로부터의) 감쇠 인자 및 (단계 342로부터의) 제1 필터 계수(K)에 기초하여 제2 필터 계수(K')가 결정된다. 그 다음, 단계 345에서, (단계 344로부터의) 제2 필터 계수(K'), 병치된 기준 픽셀 r(t-1)의 값, 및 입력 픽셀 x(t)의 값에 기초하여 현재 입력 픽셀 x(t)에 대응하는 시간적으로 필터링된 출력 값 y(t)가 결정된다. 도 27에 도시된 기술을 구현하는데 더 많은 비용이 들 수도 있지만(예컨대, 추가적인 모션 및 루마 테이블들을 저장하기 위해 필요한 메모리로 인해), 일부 예에서, 자동-화이트 밸런스 이득들 이후에 서로 다른 컬러들에 걸친 고스트 아티팩트들(ghosting artifacts) 및 일관성과 관련하여 더 많은 개선점들을 제공할 수 있다.
다른 실시예들에 따르면, 시간 필터(298)에 의해 제공된 시간 필터링 프로세스는 입력 픽셀들에 시간 필터링을 적용하기 위해 컬러에 의존적인 이득들과 컬러-특정 모션 및/또는 루마 테이블들의 조합을 이용할 수 있다. 예를 들면, 그러한 하나의 실시예에서, 단일 모션 테이블은 모든 컬러 컴포넌트들에 대해 제공될 수 있고, 모션 테이블로부터 제1 필터링 계수(K)를 선택하기 위한 모션 테이블 룩업 인덱스는 컬러에 의존적인 이득에 기초하여 결정(예컨대, 도 25의 단계 331-332에 도시된 바와 같이)될 수 있는데 반해, 루마 테이블 룩업 인덱스는 거기에 적용된 컬러에 의존적인 이득을 가질 수 없지만 현재 입력 픽셀의 컬러에 의존하는 다수의 루마 테이블들 중 하나로부터 밝기 감쇠 인자를 선택하는데 사용될 수 있다(예컨대, 도 27의 단계 343에 도시된 바와 같이). 대안적으로, 또 다른 실시예에서, 다수의 모션 테이블들이 제공될 수 있고, (컬러에 의존적인 이득이 적용되지 않는) 현재 입력 픽셀의 컬러에 대응하는 모션 테이블로부터 제1 필터링 계수(K)를 선택하는데 모션 테이블 룩업 인덱스가 이용(예컨대, 도 27의 단계 342에 도시된 바와 같이)될 수 있는데 반해, 모든 컬러 컴포넌트들에 대해 단일 루마 테이블이 제공될 수 있고 여기서 밝기 감쇠 인자를 선택하기 위한 루마 테이블 룩업 인덱스는 컬러에 의존적인 이득에 기초하여 결정될 수 있다(도 25의 단계 333-334에 도시된 바와 같이). 또한, Bayer 컬러 필터 어레이가 이용되는 하나의 실시예에서, 적색(R) 및 청색(B) 컬러 컴포넌트들 각각에 대해 하나의 모션 테이블 및/또는 루마 테이블이 제공될 수 있는데 반해, 녹색 컬러 컴포넌트들(Gr 및 Gb) 둘 다에 대해 공통 모션 테이블 및/또는 루마 테이블이 제공될 수 있다.
시간 필터(298)의 출력은, 그 뒤에, 이미지 센서(들)(90a 또는 90b)에 의한 비닝으로 인한 컬러 샘플들의 비선형 배치(예컨대, 균일하지 않은 공간적 분포)에 대한 보상을 위해 이미지 픽셀들을 처리하도록 구성될 수 있는 비닝 보상 필터(BCF; 300)로 보내질 수 있어, 컬러 샘플들의 선형 배치에 의존하는 ISP 파이프 로직(82)에서의 후속하는 이미지 처리 동작들(예컨대, 디모자이크 등)이 정확하게 동작할 수 있다. 예를 들어, 이제 도 28을 참조하면, 베이어 이미지 데이터의 전체 해상도 샘플(346)이 도시된다. 이는 ISP 프런트-엔드 처리 로직(80)에 결합된 이미지 센서(90a)(또는 90b)에 의해 포착된 전체 해상도 샘플 미처리 이미지 데이터를 나타낼 수 있다.
어떤 이미지 포착 조건들 하에서는, 이미지 센서(90a)에 의해 포착된 전체 해상도 이미지 데이터를 처리를 위해 ISP 회로(32)에 보내는 것이 실용적이지 않을 수도 있다는 것이 인정될 것이다. 예를 들면, 비디오 데이터를 포착하는 경우에, 사람의 눈의 관점에서 유동적인 동영상의 출현을 보존하기 위해, 초당 적어도 거의 30 프레임의 프레임 레이트가 바람직할 수 있다. 그러나, 전체 해상도 샘플의 각 프레임에 포함된 픽셀 데이터의 양이 초당 30 프레임으로 샘플링될 때 ISP 회로(32)의 처리 용량을 초과하는 경우, 비닝 보상 필터링이 이미지 센서(90a)에 의해 비닝과 결부되어 적용되어서 신호대 잡음비를 개선시키면서 이미지 신호의 해상도를 감소시키게 될 수 있다. 예를 들면, 전술한 바와 같이, 미처리 프레임(278)의 활성 구역(280) 내의 픽셀들을 둘러싸는 값들을 평균화함으로써, 2x2 비닝 등의 다양한 비닝 기술들이 "비닝된" 미처리 이미지 픽셀을 생성하도록 적용될 수 있다.
도 29를 참조하면, 도 30에 도시된 대응하는 비닝된 미처리 이미지 데이터(358)를 생성하기 위해 도 28의 전체 해상도의 이미지 데이터(346)를 비닝하도록 구성될 수 있는 이미지 센서(90a)의 실시예가 일 실시예에 따라 도시되어 있다. 도시된 바와 같이, 이미지 센서(90a)는 전체 해상도의 미처리 이미지 데이터(346)를 캡처할 수 있다. 비닝 로직(357)은 전체 해상도의 미처리 이미지 데이터(346)에 비닝을 적용하여 비닝된 미처리 이미지 데이터(358)를 생성하도록 구성될 수 있으며, 비닝된 미처리 이미지 데이터는 센서 인터페이스(94a)를 이용하여 ISP 프런트-엔드 처리 로직(80)에 제공될 수 있으며, 센서 인터페이스는 전술한 바와 같이, SMIA 인터페이스, 혹은 임의의 다른 적절한 병렬 혹은 직렬 카메라 인터페이스들일 수 있다.
도 30에 도시된 바와 같이, 비닝 로직(357)은 2x2 비닝을 전체 해상도의 미처리 이미지 데이터(346)에 적용할 수 있다. 예를 들면, 비닝된 이미지 데이터(358)와 관련하여, 픽셀들(350, 352, 354, 356)이 베이어 패턴(Bayer pattern)을 형성할 수 있으며 전체 해상도의 미처리 이미지 데이터(346)로부터 픽셀들의 값들을 평균화함으로써 결정될 수 있다. 예를 들면, 도 28 및 도 30 양쪽 모두를 참조하면, 비닝된 Gr 픽셀(350)은 전체 해상도의 Gr 픽셀들(350a-350d)의 평균으로서 결정될 수 있다. 마찬가지로, 비닝된 R 픽셀(352)은 전체 해상도의 R 픽셀들(352a-352d)의 평균으로서 결정될 수 있으며, 비닝된 B 픽셀(354)은 전체 해상도의 B 픽셀들(354a-354d)의 평균으로서 결정될 수 있으며, 비닝된 Gb 픽셀(356)은 전체 해상도의 Gb 픽셀들(356a-356d)의 평균으로서 결정될 수 있다. 따라서, 본 실시예에서, 2x2 비닝은, 상부 좌측 픽셀(예를 들면, 350a), 상부 우측 픽셀(예를 들면, 350b), 하부 좌측 픽셀(예를 들면, 350c), 및 하부 우측 픽셀(예를 들면, 350d)을 포함하는 4개의 전체 해상도의 픽셀들의 세트를 제공할 수 있으며, 이들은 이러한 4개의 전체 해상도의 픽셀들의 세트에 의해 형성되는 스퀘어의 중심에 위치되는 비닝된 픽셀을 도출하도록 평균화된다. 따라서, 도 30에 도시된 비닝된 베이어 블록(348)은, 도 28의 베이어 블록들(348a-348d)에 포함된 16개의 픽셀들을 나타내는 4개의 "수퍼픽셀들"을 포함한다.
공간적 해상도를 감소시키는 것 이외에도, 비닝은 또한 이미지 신호 내의 잡음을 감소시키는 추가된 이점을 제공한다. 예를 들면, 이미지 센서(예를 들면, 90a)가 광 신호에 노출될 때마다, 이미지와 연관된 광자 잡음 등의 특정 양의 잡음이 존재할 수 있다. 이 잡음은 무작위이거나 체계적일 수 있으며, 이는 또한 다수의 소스들로부터 온 것일 수 있다. 따라서, 이미지 센서에 의해 캡처되는 이미지에 포함되는 정보의 양은 신호대 잡음비로 표현될 수 있다. 예를 들면, 이미지가 이미지 센서(90a)에 의해 캡처되고 ISP 회로(32) 등의 처리 회로로 트랜스퍼될 때마다, 픽셀 값들에 일부 잡음이 존재할 수 있는데, 그 이유는 이미지 데이터의 판독 및 트랜스퍼 처리가 "판독 잡음"을 이미지 신호에 고유하게 도입시키기 때문이다. 이 "판독 잡음"은 무작위적일 수 있으며 일반적으로 피할 수 없다. 4개의 픽셀들의 평균을 이용함으로써, 잡음(예를 들면, 광자 잡음)이 일반적으로 잡음의 소스에 관계없이 감소될 수 있다.
따라서, 도 28의 전체 해상도의 이미지 데이터(346)를 고려할 때, 각 베이어 패턴(2x2 블록)(348a-348d)은 4개의 픽셀들을 포함하며, 이들 각각은 신호 및 잡음 성분을 포함한다. 예를 들어 베이어 블록(348a) 내의 각 픽셀이 개별적으로 판독되는 경우, 4개의 신호 성분 및 4개의 잡음 성분이 존재한다. 그러나, 4개의 픽셀들(예를 들면, 350a, 350b, 350c, 350d)이 비닝된 이미지 데이터 내의 하나의 픽셀(예를 들면, 350)에 의해 표현될 수 있도록, 도 28 및 도 30에 도시된 바와 같이, 비닝을 적용함으로써, 전체 해상도의 이미지 데이터(346) 내의 4개의 픽셀들에 의해 점유된 동일한 영역이 잡음 성분의 단지 하나의 인스턴스로 하나의 픽셀로서 판독될 수 있으며, 이에 따라 신호대 잡음비를 개선시키게 된다.
또한, 본 실시예가 도 29의 비닝 로직(357)을 2x2 비닝 처리를 적용하도록 구성되는 것으로 나타내고 있지만, 비닝 로직(357)은 임의의 적절한 유형의 비닝 처리, 예를 들면 3x3 비닝, 수직 비닝, 수평 비닝 등을 적용하도록 구성될 수 있음을 알 것이다. 일부 실시예들에서, 이미지 센서(90a)는 이미지 캡처 프로세스 동안 서로 다른 비닝 모드들 사이에서 선택하도록 구성될 수 있다. 또한, 또다른 실시예들에서, 이미지 센서(90a)는 또한 "스키핑(skipping)"으로서 칭해질 수 있는 기술을 적용하도록 구성될 수 있으며, 여기서 평균 픽셀 샘플들 대신에, 로직(357)은 처리를 위해 ISP 프런트-엔드(80)에 출력하도록 전체 해상도의 데이터(346)로부터 특정 픽셀들만을(예를 들면, 하나 걸러 하나씩의 픽셀, 3개의 픽셀들마다 하나씩 등)을 선택한다. 또한, 이미지 센서(90a)만이 도 29에 도시되어 있지만, 이미지 센서(90b)가 유사한 방식으로 구현될 수 있음을 알 것이다.
도 30에 또한 도시된 바와 같이, 비닝 처리의 한 가지 효과는 비닝된 픽셀들의 공간적 샘플링이 균등한 간격으로 되지 않을 수 있다는 점이다. 이 공간적 왜곡은, 일부 시스템들에서, 일반적으로 바람직하지 않은 에일리어싱(예를 들면, 들쭉날쭉한 에지들)을 발생시킬 수 있다. 또한, ISP 파이프 로직(82)에서의 특정 이미지 처리 단계들은, 정확한 동작을 위해 컬러 샘플들의 선형 배치에 좌우될 수 있기 때문에, 비닝 보상 필터(BCF)(300)는, 비닝된 픽셀들이 공간적으로 고르게 분포되도록 비닝된 픽셀들의 재샘플링(re-sampling) 및 재위치지정(re-positioning)을 수행하도록 적용될 수 있다. 즉, BCF(300)는, 샘플들(예를 들면, 픽셀들)의 위치를 재샘플링함으로써 (예를 들어, 도 30에 도시된) 고르지 않은 공간적 분포에 대해 본질적으로 보상한다. 예를 들면, 도 31은 BCF(300)에 의해 처리된 후의 비닝된 이미지 데이터(360)의 재샘플링된 부분을 도시하며, 여기서, 고르게 분포된 재샘플링된 픽셀들(362, 363, 364, 365)을 포함하는 베이어 블록(361)은 도 30으로부터의 비닝된 이미지 데이터(358)의 비닝된 픽셀들(350, 352, 354, 356)에 각각 대응한다. 또한, (예를 들면, 비닝 대신에) 스키핑을 이용하는 일 실시예에서, 전술한 바와 같이, 도 30에 도시된 공간적 왜곡은 존재하지 않을 수 있다. 이 경우, BCF(300)는 저역 통과 필터로서 기능하여서, 스키핑이 이미지 센서(90a)에 의해 이용될 때 발생할 수 있는 아티팩트들(예를 들면, 에일리어싱)을 감소시킬 수 있다.
도 32는 일 실시예에 따른 비닝 보상 필터(300)의 블록도를 도시한다. BCF(300)는, 수평 스케일링 로직(368) 및 수직 스케일링 로직(370) 각각을 이용하여 수평 및 수직 스케일링을 적용하기 위해 비닝된 픽셀들(358)을 처리할 수 있는 비닝 보상 로직(366)을 포함하여서, 비닝된 픽셀들(358)을 재샘플링 및 재위치지정하고 이에 따라 이들이 도 31에 도시된 바와 같이 공간적으로 고른 분포로 배열되게 한다. 일 실시예에서, BCF(300)에 의해 수행되는 스케일링 동작(들)은 수평 및 수직 멀티-탭 다상 필터링을 이용하여 수행될 수 있다. 예를 들면, 필터링 프로세스는 입력 소스 이미지 데이터(예를 들면, 이미지 센서(90a)에 의해 제공되는 비닝된 이미지 데이터(358))로부터 적절한 픽셀들을 선택하는 것, 선택된 픽셀들 각각을 필터링 계수와 곱하는 것, 및 결과 값들을 합하여 원하는 목적지에서 출력 픽셀을 형성하는 것을 포함할 수 있다.
중심 픽셀과, 동일한 컬러의 둘러싸는 이웃 픽셀들을 포함할 수 있는, 스케일링 동작들에서 이용되는 픽셀들의 선택은, 개별적인 차이 분석기들(differential analyzers)(372), 즉 수직 스케일링에 대한 것 및 수평 스케일링에 대한 것을 이용하여 결정될 수 있다. 기술된 실시예에서, 차이 분석기들(372)은 디지털 차이 분석기(DDA)들일 수 있으며, 수직 및 수평 방향들에서의 스케일링 동작들 동안 현재의 출력 픽셀 위치를 제어하도록 구성될 수 있다. 본 실시예에서, 제1 DDA(372a로 칭해짐)는 수평 스케일링 동안의 모든 컬러 성분들에 대해 사용되며, 제2 DDA(372b로 칭해짐)는 수직 스케일링 동안의 모든 컬러 성분들에 대해 사용된다. 오직 예시용으로, DDA(372)가 32 비트 데이터 레지스터로서 제공되는데, 이 32 비트 데이터 레지스터는 16비트의 정수부와 16비트의 소수부를 갖는 2의 보수 고정 소수점수를 포함한다. 16비트 정수부는 출력 픽셀에 대한 현재의 위치를 결정하는데 이용될 수 있다. DDA(372)의 소수부는, (예를 들어, 출력 픽셀의 공간 위치에 대응하는) 현재의 DDA 위치의 픽셀 간 소수 위치(between-pixel fractional position)에 기초할 수 있는 현재의 인덱스 또는 위상을 결정하는데 이용될 수 있다. 인덱스 혹은 위상은 한 세트의 필터 계수 테이블들(374)로부터 적절한 한 세트의 계수들을 선택하는데 이용될 수 있다. 또한, 필터링은 동일한 컬러의 픽셀들을 이용하여 컬러 성분당 행해질 수 있다. 따라서, 필터링 계수들은 현재의 DDA 위치의 위상뿐만 아니라 현재의 픽셀의 컬러에 기반해서도 선택될 수 있다. 일 실시예에서, 8 개의 위상들이 각각의 입력 픽셀 사이에 제공될 수 있으며, 이에 따라, 수직 및 수평 스케일링 성분들이 8-딥 계수 테이블들(8-deep coefficient tables)을 이용하여서 16비트 소수부의 고차의 3 비트들이 현재의 위상 또는 인덱스를 표현하는데 이용되게 한다. 이에 따라, 본원에서 사용되는 용어 "미처리 이미지" 데이터 등은, 그 위에 놓여지는 컬러 필터 어레이 패턴(예를 들면, 베이어)을 갖는 단일 센서에 의해 획득되는 멀티-컬러 이미지 데이터를 칭하는 것으로 이해될 수 있으며, 이들은 하나의 평면에서 다수의 컬러 성분들을 제공한다. 다른 실시예에서는, 각 컬러 성분마다 개별적인 DDA들이 사용될 수 있다. 예를 들면, 이러한 실시예들에서, BCF(300)는 미처리 이미지 데이터로부터 R, B, Gr 및 Gb 성분들을 추출하고 각 성분을 개별적인 평면으로서 처리할 수 있다.
동작에 있어서, 수평 및 수직 스케일링은 DDA(372)를 초기화하고, DDA(372)의 정수 및 소수 부분들을 이용하여 다중-탭 다상 필터링(multi-tap polyphase filtering)을 수행하는 것을 포함할 수 있다. 개별적으로 수행되고 개별 DDA들과 함께 수행되는 동안, 수평 및 수직 스케일링 동작들은 유사한 방식으로 수행된다. 스텝 값 또는 스텝 사이즈(수평 스케일링에 대한 DDAStepX 및 수직 스케일링에 대한 DDAStepY)은, 각 출력 픽셀이 결정된 후, 얼마나 많은 DDA 값(currDDA)이 증분되는지를 결정하며, 다중-탭 다상 필터링은 다음 currDDA 값을 이용하여 반복된다. 예를 들어, 스텝 값이 1보다 작으면, 이미지는 업스케일링되며, 스텝 값이 1보다 크면, 이미지는 다운스케일링된다. 스텝 값이 1과 같으면, 스케일링은 발생하지 않는다. 또한, 수평 및 수직 스케일링에 대해 동일한 또는 상이한 스텝 사이즈들이 사용될 수 있다는 점에 유의해야 한다.
출력 픽셀들은 (예를 들어, Bayer 패턴을 이용하여) BCF(300)에 의해 입력 픽셀들과 동일한 순서로 생성된다. 본 실시예에서, 입력 픽셀들은 그들의 순서에 기초하여 홀수 또는 짝수인 것으로 분류될 수 있다. 예를 들어, 도 33을 참조하면, 다양한 DDAStep 값들(행들(376-380))에 기초한 입력 픽셀 위치들(행(375))과 대응 출력 픽셀 위치들의 그래픽적 도식(depiction)이 도시되어 있다. 이 예에서, 도시된 행은 미처리 Bayer 이미지 데이터 내의 적색(R) 및 녹색(Gr) 픽셀들의 행을 나타낸다. 수평 필터링을 위해, 행(375) 내의 위치 0.0에서의 적색 픽셀은 짝수 픽셀로 간주될 수 있으며, 행(375) 내의 위치 1.0에서의 녹색 픽셀은 홀수 픽셀로 간주될 수 있는 식이다. 출력 픽셀 위치들에 대해, 짝수 및 홀수 픽셀들은 DDA(372)의 소수 부분(하위 16비트들)의 최하위 비트에 기초하여 결정될 수 있다. 예를 들어, 행(377)에 도시된 바와 같은, 1.25의 DDAStep을 가정하면, 최하위 비트는 DDA의 비트(14)에 대응하는데, 이 비트는 0.25의 해상도를 제공한다. 따라서, DDA 위치(currDDA) 0.0에서의 적색 출력 픽셀은, 짝수 픽셀(최하위 비트, 즉 비트(14)는 0임), currDDA 1.0에서의 녹색 출력 픽셀(비트(14)는 1임) 등으로 간주된다. 또한, 도 33은 (DDAStepX를 이용하여) 수평 방향으로 필터링하는 것에 대해 논의되어 있지만, 짝수 및 홀수 입력 및 출력 픽셀들의 결정은 (DDAStepY를 이용하여) 수직 필터링에 대해서도 동일한 방식으로 적용될 수 있다는 것이 이해되어야 한다. 다른 실시예에서, DDA들(372)은 또한, (예를 들어, 원하는 출력 픽셀 위치들을 추적하는 것이 아닌) 입력 픽셀들의 위치를 추적하는데 사용될 수 있다. 또한, DDAStepX 및 DDAStepY는 동일한 또는 상이한 값들로 설정될 수 있다는 점이 이해되어야 한다. 또한, Bayer 패턴이 사용된다고 가정하면, 가령, 어느 픽셀이 활성 구역(280) 내의 코너에 위치되는지에 따라, BCF(300)에 의해 사용되는 시작 픽셀이 Gr, Gb, R 또는 B 픽셀 중 어느 하나일 수 있다는 점의 유의해야 한다.
이를 염두에 둔다면, 짝수/홀수 입력 픽셀들은 짝수/홀수 출력 픽셀들을 생성하는데 각각 사용된다. 짝수 및 홀수 위치 간을 교번하는 출력 픽셀 위치가 주어지는 경우, 필터링을 위한 센터 소스 입력 픽셀 위치("currPixel"이라 지칭됨)는 DDA를 (DDAStepX에 기초하여) 짝수 또는 홀수 출력 픽셀 위치들에 대한 최근접 짝수 또는 홀수 입력 픽셀 위치에 각각 라운딩하는 것에 의해 결정된다. DDA(372a)가 정수를 나타내기 위한 16비트들과 소수를 나타내기 위한 16비트들을 사용하도록 구성된 실시예에서, currPixel은, 아래 수학식 6a 및 6b를 이용하여, 짝수 또는 홀수 currDDA 위치들에 대해 결정될 수 있다.
짝수 출력 픽셀 위치들은, 수학식 6a의 비트들[31:16]에 기초하여 결정될 수 있다.
[수학식 6a]
Figure 112011064114822-pat00014
홀수 출력 픽셀 위치들은, 수학식 6b의 비트들 [31:16]에 기초하여 결정될 수 있다.
[수학식 6b]
Figure 112011064114822-pat00015
본질적으로, 상기 수학식들은 라운딩 동작을 제공하며, 이에 따라, currDDA에 의해 결정된 것과 같은 짝수 및 홀수 출력 픽셀 위치들은 currPixel의 선택에 대해 각각 최근접 짝수 및 홀수 입력 픽셀 위치들로 라운딩된다.
또한, 현재 인덱스 또는 페이즈(currIndex)는 또한 각 currDDA 위치에서 결정될 수 있다. 상술한 바와 같이, 인덱스 또는 페이즈 값들은 입력 픽셀 위치들에 대해 상대적인 출력 픽셀 위치의 단편적 픽셀간 위치를 나타낸다. 예를 들어, 일 실시예에서, 8개의 페이즈들은 각 입력 픽셀 위치 사이에서 규정될 수 있다. 예를 들어, 도 33을 다시 참조하면, 8개의 인덱스 값들 0-7은 위치 0.0에서의 제1 적색 입력 픽셀과 위치 2.0에서의 다음 적색 입력 픽셀 사이에 제공된다. 유사하게, 8개의 인덱스 값들 0-7은 위치 1.0에서의 제1 녹색 입력 픽셀과 위치 3.0에서의 다음 녹색 입력 픽셀 위치 사이에 제공된다. 일 실시예에서, currIndex 값들은 짝수 및 홀수 출력 픽셀 위치들에 대한 아래 수학식 7a 및 7b에 따라 각각 결정될 수 있다.
짝수 출력 픽셀 위치들은, 수학식 7a의 비트들 [16:14]에 기초하여 결정될 수 있다.
[수학식 7a]
Figure 112011064114822-pat00016
홀수 출력 픽셀 위치들은, 수학식 7b의 비트들 [16:14]에 기초하여 결정될 수 있다.
[수학식 7b]
Figure 112011064114822-pat00017
홀수 위치들에 대해, 추가 1 픽셀 시프트는, DDA(372)에 대해 상이한 컬러 성분들 간의 인덱스 오프셋을 설명하기 위해, 4의 오프셋을 홀수 출력 픽셀 위치들에 대한 계수 인덱스에 부가하는 것과 동일하다.
일단 currPixel과 currIndex가 특정 currDDA 위치에서 결정되면, 필터링 프로세스는 currPixel(선택된 센터 입력 픽셀)에 기초하여 하나 이상의 이웃하는 동일 컬러의 픽셀들을 선택할 수 있다. 예로서, 수평 스케일링 로직(368)이 5-탭 다상 필터를 포함하고, 수직 스케일링 로직(370)이 3-탭 다상 필터를 포함하는 일 실시예에서는, 수평 방향의 currPixel의 각 사이드 상의 2개의 동일한 컬러의 픽셀들이 수평 필터링을 위해 선택될 수 있고(가령, -2, -1, 0, +1, +2), 수직 방향의 currPixel의 각 사이드 상의 하나의 동일한 컬러의 픽셀은 수직 필터링을 위해 선택될 수 있다(예를 들어, -1, 0, +1). 또한, currIndex는, 선택된 픽셀들에 적용하기 위해, 필터 계수 테이블(374)로부터 적절한 필터링 계수들을 선택하기 위한 선택 인덱스로서 사용될 수 있다. 예를 들어, 5탭 수평/3-탭 수직 필터링 실시예를 이용하여, 5개의 8-딥 테이블들이 수평 필터링을 위해 제공될 수 있고, 3개의 8-딥 테이블들은 수직 필터링을 위해 제공될 수 있다. BCF(300)의 일부로서 도시되어 있지만, 필터 계수 테이블(374)은, 소정의 실시예에서, BCF(300)와 물리적으로 분리되어 있는 메모리, 가령, 메모리(108) 내에 저장될 수 있다는 것이 이해되어야 한다.
수평 및 수직 스케일링 동작들을 더욱 구체적으로 살펴보기에 앞서, 아래의 표 4는 다양한 DDA 위치들에 기초하여 결정되는, currPixel 및 currIndex 값들이 어떻게 상이한 DDAStep 값들을 이용하는 지의(가령, DDAStepX 또는 DDAStepY에 적용할 수 있는지)의 예를 나타낸다.
Figure 112011064114822-pat00018
예를 제공하기 위해, 짝수 출력 픽셀 위치를 나타내는, 0에서 시작하는 현재 DDA 위치(currDDA)로 1.5의 DDA 스텝 사이즈(DDAStep)가 선택된다고 가정하자(도 33의 행(378)). currPixel을 결정하기 위해, 아래와 같이, 수학식 6a가 적용될 수 있다.
Figure 112011064114822-pat00019
따라서, currDDA 위치 0.0 (행 378)에서, 필터링을 위한 소스 입력 중심 픽셀은 행 375의 위치 0.0에서의 적색 입력 픽셀에 대응한다.
짝수 currDDA 0.0에서 currIndex를 결정하기 위해, 수학식 7a는 다음과 같이 적용될 수 있다.
Figure 112011064114822-pat00020
따라서, currDDA 위치 0.0 (행 378)에서, currIndex 값 0은 필터 계수 테이블(374)로부터 필터링 계수들을 선택하는데 사용될 수 있다.
따라서, (DDAStep이 X(수평) 방향에 있는지 또는 Y(수직) 방향에 있는지 여부에 따라 수직이거나 수평이 될 수 있는) 필터링은 currDDA 0.0에서 결정된 currPixel 및 currIndex 값들에 기초하여 적용될 수 있고, DDA(372)는 DDAStep (1.5)만큼 증분되고, 그 다음 currPixel 및 currIndex 값들이 결정된다. 예를 들면, 다음 currDDA 위치 1.5(홀수 위치)에서, currPixel은 수학식 6b를 사용하여 다음과 같이 결정될 수 있다.
Figure 112011064114822-pat00021
따라서, currDDA 위치 1.5 (행 378)에서, 필터링을 위한 소스 입력 중심 픽셀은 행 375의 위치 1.0에서의 녹색 입력 픽셀에 대응한다.
또한, 홀수 currDDA 1.5에서 currIndex는 수학식 7b를 사용하여 다음과 같이 결정될 수 있다.
Figure 112011064114822-pat00022
따라서, currDDA 위치 1.5 (행 378)에서, currIndex 값 2는 필터 계수 테이블(374)로부터 적절한 필터링 계수들을 선택하는데 사용될 수 있다. 따라서, (DDAStep이 X(수평) 방향에 있는지 또는 Y(수직) 방향에 있는지 여부에 따라 수직 또는 수평이 될 수 있는) 필터링이 이들 currPixel 및 currIndex 값들을 사용하여 적용될 수 있다.
다음에, DDA(372)는 다시 DDAStep (1.5)만큼 증분되고, 그 결과 currDDA 값은 3.0이 된다. currDDA 3.0에 대응하는 currPixel은 수학식 6a를 사용하여 다음과 같이 결정될 수 있다.
Figure 112011064114822-pat00023
따라서, currDDA 위치 3.0(행 378)에서, 필터링을 위한 소스 입력 중심 픽셀은 행 375의 위치 4.0에서의 적색 입력 픽셀에 대응한다.
다음에, 짝수 currDDA 3.0에서의 currIndex는 수학식 7a를 이용하여 다음과 같이 결정될 수 있다.
Figure 112011064114822-pat00024
따라서, currDDA 위치 3.0(행 378)에서, currIndex값 4는 필터 계수 테이블(374)로부터 적절한 필터링 계수들을 선택하는데 사용될 수 있다. 이해될 수 있는 바와 같이, DDA(372)는 각각의 출력 픽셀에 대해 계속해서 DDAStep만큼 증분될 수 있고, (DDAStep이 X(수평) 방향에 있는지 또는 Y(수직) 방향에 있는지 여부에 따라 수직 또는 수직이 될 수 있는) 필터링은 각각의 currDDA 값에 대해 결정된 currIndex 및 currPixel를 사용하여 적용될 수 있다.
전술한 바와 같이, currIndex는 선택된 픽셀들에 적용하기 위해 필터 계수 테이블(374)로부터 적절한 필터링 계수들을 선택하도록 선택 인덱스로서 사용될 수 있다. 필터링 처리는 중심 픽셀(currPixel) 주위의 소스 픽셀 값들을 얻고, currIndex에 기초하여 필터 계수 테이블(374)로부터 선택된 적절한 필터링 계수들을 각각의 선택된 픽셀들에 곱하고, 그 결과들을 합산하여 currDDA에 대응하는 위치에서 출력 픽셀의 값을 얻는 것을 포함한다. 또한, 본 실시예는, 5-탭 수평/3-탭 수직 필터링 실시예를 사용하여, 동일한 컬러 픽셀들 간의 8개의 위상을 사용하기 때문에, 5개의 8-딥(deep) 테이블이 수평 필터링에 제공될 수 있고, 세 개의 8-딥 테이블이 수직 필터링에 제공될 수 있다. 일 실시예에서, 계수 테이블 엔트리들 각각은 3 정수 비트들과 13 소수 비트들을 갖는 16-비트의 고정 소수점 2의 보수를 포함할 수 있다.
또한, 베이어(Bayer) 이미지 패턴을 가정하면, 일 실시예에서, 수직 스케일링 컴포넌트는 네 개의 개별 3-탭 단상 필터들을 포함하는데, 각각의 컬러 컴포넌트는 Gr, R, B 및 Gb이다. 3-탭 필터들 각각은 DDA(372)를 사용하여, 전술한 바와 같이, 계수들에 대한 인덱스 및 현재 중심 픽셀의 스텝핑을 제어할 수 있다. 유사하게, 수평 스케일링 컴포넌트들은 네 개의 개별 5-탭 단상 필터들을 포함하는데, 각각의 컬러 컴포넌트는 Gr, R, B 및 Gb이다. 5-탭 필터들 각각은 DDA(372)를 사용하여, 계수들에 대한 인덱스 및 현재 중심 픽셀의 스텝핑(예를 들면, DDAStep을 통해)을 제어할 수 있다. 그러나, 다른 실시예들에서, 탭들이 더 적거나 많은 것도 수평 및 수직 스칼라들에 의해 이용될 수 있다는 것이 이해되어야 한다.
경계(boundary) 경우들에 대해, 수평 및 수직 필터링 처리에 사용되는 픽셀들은 프레임 보더(border)(예를 들면, 도 19의 활성 구역(280)에 의해 정의되는 보더)에 대한 현재 DDA 위치(currDDA)의 관계에 의존할 수 있다. 예를 들면, 수평 필터링에서, currDDA 위치는, 중심 입력 픽셀의 위치(SrcX) 및 프레임의 폭(SrcWidth)(예를 들면, 도 19의 활성 구역(280)의 폭(290))에 비교될 때, DDA(372)가 보더에 근접하여, 5-탭 필터링을 수행하기에 충분한 픽셀들이 없어, 동일-컬러 입력 보더 픽셀들이 반복될 수 있다는 것을 나타낸다. 예를 들면, 선택된 중심 입력 픽셀이 프레임의 좌측 에지에 있다면, 중심 픽셀은 수평 필터링을 위해 두번 복제될 수 있다. 중심 입력 픽셀과 좌측 에지 사이에 단지 하나의 픽셀이 이용가능하도록 중심 입력 픽셀이 프레임의 좌측 에지에 가까이 있다면, 수평 필터링 목적을 위해, 중심 입력 픽셀의 좌측에 2개의 픽셀값을 제공하기 위해 하나의 이용가능한 픽셀이 복제된다. 또한, 수평 스케일링 로직(368)은 (오리지널 및 복제 픽셀들을 포함하는) 입력 픽셀들의 수가 입력 폭을 초과할 수 없도록 구성될 수 있다. 이것은 다음과 같이 표현될 수 있다.
Figure 112011064114822-pat00025
여기서, DDAInitX는 DDA(372)의 초기 위치를 나타내고, DDAStepX는 수평 방향에서의 DDA 스텝 값을 나타내고, BCFOutWidth는 BCF(300)에 의해 출력된 프레임의 폭을 나타낸다.
수직 필터링에 대해, currDDA 위치가, 중심 입력 픽셀의 위치(SrcY) 및 프레임의 폭(SrcHeight)(예를 들면, 도 19의 활성 구역(280)의 폭(290))에 비교될 때, 3-탭 필터링을 수행하기에 충분한 픽셀들이 없도록 DDA(372)가 보더에 근접하여, 입력 보더 픽셀들이 반복될 수 있다는 것을 나타낸다. 또한, 수직 스케일링 로직(370)은 (오리지널 및 복제 픽셀들을 포함하는) 입력 픽셀들의 수가 입력 높이를 초과할 수 없도록 구성될 수 있다. 이것은 다음과 같이 표현될 수 있다.
Figure 112011064114822-pat00026
여기서, DDAInitY는 DDA 372의 초기 위치를 나타내고, DDAStepY는 수직 방향에서의 DDA 스텝 값을 나타내고, BCFOutHeight는 BCF 300에 의한 프레임 출력의 폭을 나타낸다.
이제 도 34를 참조하면, 흐름도가 실시예에 따라서 프런트-엔드 픽셀 처리 유닛(130)에 의해 수신되는 이미지 데이터에 비닝 보상 필터링을 적용하는 방법 382를 묘사하고 있다. 도 34에 도해된 방법 382가 수직 및 수평 스케일링에 모두 적용할 수 있다는 점을 알 것이다. 단계 383에서 시작하여, DDA(372)는 초기화되고 또한 DDA 스텝 값(이는 수평 스케일링을 위한 DDAStepX와 수직 스케일링을 위한 DDAStepY에 대응할 수 있음)이 결정된다. 다음으로, 단계 384에서, 현재 DDA 위치(currDDA)가 DDAStep에 기초하여 결정된다. 앞서 논의한 대로, currDDA는 출력 픽셀 위치에 대응할 수 있다. currDDA를 사용하여, 방법 382는 단계 385에 의해 표시된 대로, currDDA에서의 대응 출력값을 결정하기 위해 비닝 보상 필터링을 위해 사용될 수 있는 입력 픽셀 데이터로부터 중심 픽셀(currPixel)을 결정할 수 있다. 다음 순서로, 단계 386에서, currDDA에 대응하는 인덱스(currIndex)가 입력 픽셀들(예로, 도 33의 행 375)에 상대적으로 currDDA의 소수 픽셀간 위치(fractional between-pixel position)에 기초하여 결정될 수 있다. 예를 들어, DDA가 16 정수 비트들 및 16 소수 비트들을 포함하는 실시예에서, currPixel은 수학식 6a 및 6b에 따라서 결정될 수 있고, currIndex는 앞서 도시된 대로 수학식 7a 및 7b에 따라서 결정될 수 있다. 16 비트 정수/16 비트 소수 구성이 한 예로서 여기 설명되지만, DDA(372)의 다른 구성들이 본 기술에 따라 활용될 수 있다는 것을 인식해야 한다. 예를 들어, DDA(372)의 다른 실시예들이 12 비트 정수부 및 20 비트 소수부, 14 비트 정수부 및 18 비트 소수부, 및 이와 같은 식으로 구성될 수 있다.
일단 currPixel 및 currIndex가 결정되면, currPixel 주위의 동일 컬러의 소스 픽셀들이 단계 387에 의해 표시된 대로 멀티-탭 필터링을 위해 선택될 수 있다. 예를 들어, 앞서 논의한 대로, 일 실시예는 수평 방향으로 5-탭 다상(5-tap polyphase) 필터링을 활용할 수 있고(예를 들어, currPixel의 각각의 측상에서 2개의 동일 컬러의 픽셀을 선택함) 수직 방향에서 3-탭 다상 필터링을 활용할 수 있다(예로, currPixel의 각각의 측상에 1개의 동일 컬러의 픽셀을 선택함). 다음으로, 단계 388에서, 일단 소스 픽셀들이 선택되면, 필터링 계수들이 currIndex에 기초하여 BCF 300의 필터 계수 테이블 374로부터 선택될 수 있다.
이후에, 단계 389에서, 필터링은 currDDA에 의해 나타내어지는 위치에 대응하는 출력 픽셀의 값을 결정하기 위해 소스 픽셀들에 적용될 수 있다. 예를 들어, 일 실시예에서, 소스 픽셀들은 자신들의 제각기 필터링 계수들에 의해 곱해질 수 있고, 그 결과들은 합산되어 출력 픽셀 값을 얻을 수 있다. 필터링이 단계 389에서 적용되는 방향은 DDAStep이 X(수평) 또는 Y(수직) 방향에 있는지에 좌우되어 수직 또는 수평일 수 있다. 최종적으로, 단계 263에서, DDA(372)는 단계 390에서 DDAStep에 의해 증분되고, 방법 382는 단계 384로 되돌아가는데, 이에 의해 다음의 출력 픽셀 값은 여기 논의된 비닝 보상 필터링 기술을 이용하여 결정된다.
도 35를 참조하면, 방법 382로부터 currPixel을 결정하기 위한 단계(385)가 일 실시예에 따라 더 자세히 도해되었다. 예를 들어, 단계 385는 (단계 384로부터의) currDDA에 대응하는 출력 픽셀 위치가 짝수 또는 홀수인지를 결정하는 하위 단계 392를 포함할 수 있다. 앞서 논의한 대로, 짝수 또는 홀수 출력 픽셀은 DDAStep에 기초하여 currDDA의 최하위 비트에 기초하여 결정될 수 있다. 예를 들어, 1.25의 DDAStep이 주어지면, 1.25의 currDDA가 홀수인 것으로서 결정될 수 있는데, 이는 (DDA 372의 소수부의 비트 14에 대응하는) 최하위 비트가 1의 값을 가지기 때문이다. 2.5의 currDDA의 값에 대해 비트 14는 0이고, 따라서 짝수 출력 픽셀 위치를 나타낸다.
판정 로직(393)에서, currDDA에 대응하는 출력 픽셀 위치가 짝수 또는 홀수인지에 대한 판정이 이뤄진다. 만일 출력 픽셀이 짝수이면, 판정 로직(393)은 하위 단계 394로 진행하는데, 여기서 currPixel은 currDDA 값을 1만큼 증분시키고 또한 상기 수학식 6a에서 나타낸 대로, 그 결과를 가장 가까운 짝수 입력 픽셀 위치에 라운딩함으로써 결정된다. 만일 출력 픽셀이 홀수이면, 판정 로직(393)은 하위 단계 395로 진행하고, 여기서 currPixel은 상기 수학식 6b에 의해 나타낸 대로, currDDA 값을 가장 가까운 홀수 입력 픽셀 위치에 라운딩함으로써 결정된다. currPixel 값은 이후 방법 382의 단계 387에 적용되어 앞서 논의한 대로 필터링을 위한 소스 픽셀들을 선택할 수 있다.
다시 도 36을 참조하면, 방법 382로부터 currIndex를 결정하기 위한 단계 386이 일 실시예에 따라 더 자세히 설명된다. 예를 들어, 단계 386은 (단계 384로부터의) currDDA에 대응하는 출력 픽셀 위치가 짝수 또는 홀수인지를 결정하는 하위 단계 396을 포함할 수 있다. 이 결정은 도 35의 단계 392와 유사한 식으로 수행될 수 있다. 판정 로직(397)에서, currDDA에 대응하는 출력 픽셀 위치가 짝수인지 홀수인지에 대한 판정이 이뤄진다. 만일 출력 픽셀이 짝수이면, 판정 로직(397)은 하위 단계 398로 진행하고, 여기서 currIndex가 currDDA 값을 하나의 인덱스 스텝만큼 증분하여 DDA 372의 최하위 자리의 정수 비트 및 2개의 최고 자리의 소수 비트들에 기초한 currIndex를 결정함으로써 결정된다. 예를 들어, 8 페이즈가 각각의 동일 컬러의 픽셀 간에 제공되고 또한 DDA가 16 정수 비트들과 16 소수 비트들을 포함하는 실시예에서, 하나의 인덱스 스텝은 0.125에 대응할 수 있고, currIndex는 (예로, 수학식 7a에 의해) 0.125 만큼 증분되는 currDDA 값의 비트들 [16:14]에 기초하여 결정될 수 있다. 만일 출력 픽셀이 홀수이면, 판정 로직(397)은 하위 단계 399로 진행하여, 여기서 currIndex는 currDDA 값을 하나의 인덱스 스텝과 하나의 픽셀 시프트만큼 증분시키고 또한 DDA 372의 최하위 자리 정수 비트 및 2개의 최고 자리 소수 비트에 기초하여 currIndex를 결정함으로써 결정된다. 따라서, 8 페이즈가 각각의 동일 컬러의 픽셀 간에 제공되고 또한 DDA가 16 정수 비트 및 16 소수 비트를 포함하는 경우, 하나의 인덱스 스텝은 0.125에 대응할 수 있고, 하나의 픽셀 시프트는 1.0 (다음 차례의 동일한 컬러의 픽셀에 대한 8 인덱스 스텝의 시프트)에 대응할 수 있고, currIndex는 (예로 수학식 7b에 의해) 1.125만큼 증분되는 currDDA 값의 비트들 [16:14]에 기초하여 결정될 수 있다.
현재 도해된 실시예가 BCF 300을 프런트-엔드 픽셀 처리 유닛(130)의 요소로서 제공하지만, 다른 실시예들은 BCF 300을 ISP 파이프(82)의 미처리 이미지 데이터 처리 파이프라인에 통합할 수 있는데, 이는 이하에서 추가로 논의하는 대로, 결함 픽셀 검출/정정 로직, 이득/오프셋/보상 블록들, 잡음 감소 로직, 렌즈 쉐이딩 정정 로직, 및 디모자이크 로직(demosaicing logic)을 포함할 수 있다. 또한, 앞서 언급한 결함 픽셀 검출/정정 로직, 이득/오프셋/보상 블록들, 잡음 감소 로직, 렌즈 쉐이딩 정정 로직이 픽셀들의 선형 배치에 의존하지 않는 실시예들에서, BCF 300은 디모자이크 로직과 통합되어, 비닝 보상 필터링을 수행하고 또한, 디모자이크가 일반적으로 픽셀들의 짝수 공간 위치잡기(positioning)에 의존함에 따라, 디모자이크 전에 픽셀들을 재위치시킬 수 있다. 예를 들어, 일 실시예에서, BCF 300은, 시간적 필터링 및/또는 결함 픽셀 검출/정정이 비닝 보상 전에 미처리 이미지 데이터에 적용되면서, 센서 입력 및 디모자이크 로직 간의 임의의 위치에 통합될 수 있다.
앞서 논의한 대로, BCF 300의 출력은 공간적으로 균일하게 분포된 이미지 데이터(예로, 도 31의 샘플 360)를 갖는 출력 FEProcOut(109)일 수 있는데, 추가 처리를 위해 ISP 파이프 처리 로직(82)에게 포워딩될 수 있다. 그러나, 본 논의의 초점을 ISP 파이프 처리 로직(82)으로 옮겨가기 전에, ISP 프런트-엔드 로직(80)에서 구현될 수 있는 통계 처리 유닛들(예로, 122 및 124)에 의해 제공될 수 있는 여러가지 기능들에 대한 더 상세한 설명이 먼저 제공될 것이다.
통계 처리 유닛들(120 및 122)의 일반적 설명으로 되돌아가 보면, 이런 유닛들은 미처리 이미지 신호들(Sif0 및 Sif1)을 포착하고 제공하는 이미지 센서들에 관한 여러가지의 통계들, 예로 자동 노출, 자동 화이트 밸런스, 자동 초점 맞추기, 플릭커 검출, 블랙 레벨 보상, 및 렌즈 쉐이딩 정정 및 등등에 관한 통계들을 수집하도록 구성될 수 있다. 이렇게 하는 중에, 통계 처리 유닛들(120 및 122)은 이들의 제각기 입력 신호들, (Sensor0으로부터의) Sif0 및 (Sensor1로부터의) Sif1에 하나 이상의 이미지 처리 연산들을 먼저 적용할 수 있다.
예를 들어, 도 37을 참조하면, Sensor0(90a)와 연관된 통계 처리 유닛(120)의 더 자세한 블록도가 일 실시예에 따라 도해되어 있다. 도시된 대로, 통계 처리 유닛(120)은 이하의 기능 블록들을 포함할 수 있다: 결함 픽셀 검출 및 정정 로직(460), 블랙 레벨 보상(BLC) 로직(462), 렌즈 쉐이딩 정정 로직(464), 역 BLC 로직(466), 및 통계 수집 로직(468). 이런 기능 블록들의 각각이 이하에서 논의될 것이다. 또한, Sensor1(90b)과 연관된 통계 처리 유닛(122)이 유사한 방식으로 구현될 수 있다는 것을 이해해야 한다.
초기에, 선택 로직(124)의 출력(예로, Sif0 또는 SifIn0)은 프런트-엔드 결함 픽셀 정정 로직(460)에 의해 수신된다. 알 수 있는 바와 같이, "결함 픽셀들"은 광 레벨들을 정확하게 감지하는데 실패한 이미지 센서(들)(90) 내의 이미징 픽셀들은 언급한다는 것을 이해할 것이다. 결함 픽셀들은 다수의 요인들에 기인할 수 있고, 또한 "핫(hot)"[또는 누설(leaky)] 픽셀들, "스턱(stuck)" 픽셀들, 및 "데드(dead)" 픽셀들을 포함할 수 있다. "핫" 픽셀은 일반적으로 동일한 공간 위치에서 동일량의 광이 주어진 경우 결함 없는 픽셀보다 밝게 보일 것이다. 핫 픽셀들은 리셋 실패 및/또는 고누설로 인해 발생할 수 있다. 예를 들어, 핫 픽셀은 결함 없는 픽셀들에 비하여 정상 전하 누설보다 높은 누설을 나타낼 것이고, 따라서 결합 없는 픽셀보다 더 밝게 보일 것이다. 추가로, "데드" 및 "스턱" 픽셀들은 먼지 또는 다른 미량의(trace) 물질들과 같은 불순물들로 인한 결과물일 수 있는데, 이런 불순물들은 제조 및/또는 조립 공정 동안에 이미지 센서를 오염시키고 이는 특정의 결함 픽셀들이 결함 없는 픽셀보다 더 어둡거나 더 밝게 되도록 야기하거나 또는 결함 픽셀이 자신이 실제로 노출되는 광량에 관계없이 특정 레벨에 고착되도록 야기할 수 있다. 추가로, 데드 및 스턱 픽셀들은 이미지 센서의 동작 동안에 생기는 회로 고장으로부터 또한 초래될 수 있다. 예를 들어, 스턱 픽셀은 항상 온(on) 상태(예로, 완전 하전된 상태)로 나타날 수 있어서 더 밝게 보일 수 있고, 반면에 데드 픽셀은 항상 오프 상태로 나타날 수 있다.
ISP 프런트-엔드 로직(80) 내의 DPDC(defective pixel detection and correction) 로직(460)은 통계 수집(statistics collection)(예를 들어, 468)에서 고려되기 전에 결함 픽셀들을 보정(예를 들어 결함 픽셀 값들을 대체함)할 수 있다. 일 실시예에서, 결함 픽셀 보정은 각각의 컬러 컴포넌트(예를 들어, Bayer 패턴의 경우 R, B, Gr, 및 Gb)에 대하여 독립적으로 수행된다. 일반적으로, 프런트-엔드 DPDC 로직(460)은 동적 결함 보정을 제공할 수 있으며, 여기서 결함 픽셀들의 위치들은 동일 컬러의 이웃 픽셀들을 이용하여 계산된 방향성 그레디언트들에 기초하여 자동으로 결정된다. 이해될 것인 바대로, 소정의 시간에 결함이 있는 것으로서 픽셀을 특징짓는 것은 이웃 픽셀들 내의 이미지 데이터에 의존할 수 있는 점에서 볼 때, 결함들은 "동적"일 수 있다. 예로서, 항상 최대 밝기 스턱(stuck) 픽셀은 더 밝거나 백색의 컬러들이 지배적인 현재 이미지의 영역 내에 스턱 픽셀이 위치하는 경우 결함 픽셀로서 간주되지 않을 수도 있다. 역으로, 스턱 픽셀이 흑색 또는 더 어두운 컬러들이 지배적인 현재 이미지의 영역 내에 있는 경우, 스턱 픽셀은 DPDC 로직(460)에 의한 처리 동안 결함 픽셀로서 식별되고 그에 따라 보정될 수 있다.
DPDC 로직(460)은 픽셀간(pixel-to-pixel) 방향성 그레디언트들을 이용하여 현재 픽셀이 결함이 있는지를 결정하기 위해 현재 픽셀의 각각의 측(side)의 동일한 컬러의 하나 이상의 수평 방향의 이웃 픽셀들을 이용할 수 있다. 현재 픽셀이 결함이 있는 것으로서 식별되면, 결함 픽셀의 값은 수평 방향의 이웃 픽셀의 값으로 대체될 수 있다. 예를 들어, 일 실시예에서, 미처리 프레임(278)(도 19) 경계의 내부에 있는 동일 컬러의 5개의 수평 방향 이웃 픽셀들이 이용되는데, 5개의 수평 방향의 이웃 픽셀들은 현재 픽셀 및 어느 한 측의 두 이웃 픽셀들을 포함한다. 따라서, 도 38에 예시된 바와 같이, 주어진 컬러 컴포넌트 c 및 현재 픽셀 P에 대하여, 수평 방향 이웃 픽셀들 P0, P1, P2 및 P3이 DPDC 로직(460)에 의해 고려될 수 있다. 그러나, 현재 픽셀 P의 위치에 의존하여, 미처리 프레임(278) 외부의 픽셀들은 픽셀간 그레디언트들을 계산하는 경우 고려되지 않는 점에 유의해야 한다.
예를 들어, 도 38에 도시된 바와 같이, "좌측 에지" 케이스(470)에서, 현재 픽셀 P는 미처리 프레임(278)의 가장 좌측의 에지에 있으므로, 미처리 프레임(278) 외부의 이웃 픽셀들 P0 및 P1은 고려되지 않고, 픽셀들 P, P2 및 P3만을 남긴다 (N=3). "좌측 에지 + 1"의 경우(472)에, 현재 픽셀 P는 미처리 프레임(278)의 가장 좌측 에지로부터 1 단위 픽셀 떨어져 있으므로, 픽셀 P0은 고려되지 않는다. 이것은 픽셀들 P1, P, P2 및 P3만을 남긴다 (N=4). 또한, "중심에 있는(centered)" 경우(474), 현재 픽셀 P의 좌측 상의 픽셀들 P0 및 P1 및 현재 픽셀 P의 우측 상의 픽셀들 P2 및 P3은 미처리 프레임(278) 경계 내에 있으므로, 모든 이웃 픽셀들 P0, P1, P2 및 P3 (N=5)는 픽셀간 그레디언트들을 계산할 때 고려된다. 또한, 미처리 프레임(278)의 가장 우측 에지에 접근함에 따라, 유사한 경우들(476 및 478)이 발생될 수 있다. 예를 들어, "우측 에지-1" 경우(476)에, 현재 픽셀 P는 미처리 프레임(278)의 가장 우측 에지로부터 1 단위 픽셀 떨어져 있으므로, 픽셀 P3은 고려되지 않는다 (N=4). 유사하게, "우측 에지" 경우(478)에, 현재 픽셀 P는 미처리 프레임(278)의 가장 우측 에지에 있으므로, 이웃 픽셀들 P2 및 P3은 둘 다 고려되지 않는다 (N=3).
예시적인 실시예에서, 픽처 경계(예를 들어, 미처리 프레임(278)) 내의 각각의 이웃 픽셀에 대하여(k = 0 내지 3), 픽셀간 그레디언트들은 다음과 같이 계산될 수 있다.
[수학식 8]
Figure 112011064114822-pat00027
픽셀간 그레디언트들이 결정되면, 결함 픽셀 검출이 DPDC 로직(460)에 의해 다음과 같이 수행될 수 있다. 먼저, 픽셀은, 소정 수의 그 그레디언트들 Gk가 변수 dprTh에 의해 나타내어지는 특정 임계값 이하인 경우, 결함이 있는 것으로 추정된다. 따라서, 각각의 픽셀에 대하여, 임계값 dprTh 이하인 픽처 경계들 내의 이웃 픽셀들에 대한 그레디언트들의 수의 카운트(C)가 누적된다. 예로서, 미처리 프레임(278) 내의 각각의 이웃 픽셀에 대하여, 임계값 dprTh 이하인 그레디언트들 Gk의 누적된 카운트 C는 다음과 같이 계산된다.
[수학식 9]
Figure 112011064114822-pat00028
이해될 것인 바와 같이, 컬러 컴포넌트들에 의존하여, 임계값 dprTh는 변화할 수 있다. 다음으로, 누적된 카운트 C가 변수 dprMaxC로 나타내어지는 최대 카운트 이하인 것으로 결정되면, 픽셀은 결함이 있는 것으로 고려될 수 있다. 이 로직은 다음과 같이 표현된다.
[수학식 10]
Figure 112011064114822-pat00029
결함 픽셀들은 다수의 대체 규칙들(conventions)을 이용하여 대체된다. 예를 들어, 일 실시예에서, 결함 픽셀은 바로 좌측의 픽셀 P1으로 대체될 수 있다. 경계 조건(boundary condition)에서(예를 들어, P1이 미처리 프레임(278)의 외부에 있음), 결함 픽셀은 바로 우측의 픽셀 P2로 대체될 수 있다. 또한, 대체 값들은 연속하는 결함 픽셀 검출 동작들을 위하여 유지되거나 전달될 수 있는 것이 이해되어야 한다. 예를 들어, 도 38에 도시된 수평 방향의 픽셀들의 세트를 참조하면, P0 또는 P1이 DPDC 로직(460)에 의해 결함 픽셀들로서 이전에 식별되면, 이들의 대응하는 대체 값들은 결함 픽셀 검출 및 현재 픽셀 P의 대체를 위해 이용될 수 있다.
위에서 설명된 결함 픽셀 검출 및 보정 기술들을 요약하기 위해, 그러한 처리를 설명하는 흐름도가 도 39에 제공되며 참조부호 480에 의해 지칭된다. 도시된 바와 같이, 처리(480)는 단계(482)에서 시작되며, 여기서 현재 픽셀(P)이 수신되고 이웃 픽셀들의 세트가 식별된다. 전술된 실시예에 따라, 이웃 픽셀들은 현재 픽셀의 반대 측들(opposite sides)로부터 동일한 컬러 컴포넌트의 두 수평 방향의 픽셀들(예를 들어, P0, P1, P2 및 P3)을 포함할 수 있다. 다음, 단계(484)에서, 수평 방향의 픽셀간 그레디언트들은, 상기 수학식 8에서 설명된 바와 같이, 미처리 프레임(278) 내의 각각의 이웃 픽셀에 대하여 계산된다. 그 후, 단계(486)에서, 특정 임계값 dprTh 이하인 그레디언트들의 수의 카운트 C가 결정된다. 결정 로직(488)에서 도시된 바와 같이, C가 dprMaxC 이하라면, 처리(480)는 단계(490)로 계속되고, 현재 픽셀은 결함이 있는 것으로서 식별된다. 결함 픽셀은 그 후 대체 값을 이용하여 단계(492)에서 보정된다. 또한, 다시 결정 로직(488)을 참조하면, C가 dprMaxC보다 크다면, 처리는 단계(494)로 계속되고, 현재 픽셀은 결함이 없는 것으로 식별되며, 그 값은 변경되지 않는다.
ISP 프런트-엔드 통계 처리 동안 적용된 결함 픽셀 검출/보정 기술들은 ISP 파이프 로직(82) 내에서 수행되는 결함 픽셀 검출/보정보다 덜 강인할 수 있다는 것이 이해되어야 한다. 예를 들어, 더욱 상세히 후술되는 바와 같이, ISP 파이프 로직(82) 내에서 수행되는 결함 픽셀 검출/보정은, 동적 결함 보정 이외에, 고정된 결함 보정을 더 제공하는데, 여기서 결함 픽셀들의 위치들은 선험적으로(a priori) 알게 되며 하나 이상의 결함 테이블들에 로드된다. 또한, ISP 파이프 로직(82)에서의 동적 결함 보정은, 후술되는 바와 같이, 또한 수평 방향 및 수직 방향들 모두에서 픽셀 그레디언트들을 고려할 수 있으며, 스펙클링(speckling)의 검출/보정을 또한 제공할 수 있다.
도 37로 복귀하여, DPDC 로직(460)의 출력은 그 후 BLC(black level compensation) 로직(462)으로 보내진다. BLC 로직(462)은 통계 수집에 이용된 픽셀들에서의 각각의 컬러 컴포넌트 "c"(예를 들어, Bayer의 경우 R, B, Gr 및 Gb)에 대하여 독립적으로 디지털 이득, 오프셋 및 클리핑(clipping)을 제공할 수 있다. 예를 들어, 다음의 연산에 의해 표현되는 바와 같이, 현재 픽셀에 대한 입력 값은 먼저 부호있는 값에 의해 오프셋되고, 그 후 이득이 곱해진다.
[수학식 11]
Figure 112011064114822-pat00030
여기서 X는 주어진 컬러 컴포넌트 c(예를 들어, R, B, Gr 또는 Gb)에 대한 입력 픽셀 값을 나타내고, O[c]는 현재 컬러 컴포넌트 c에 대한 부호있는 16 비트 오프셋을 나타내며, G[c]는 컬러 컴포넌트 c에 대한 이득 값을 나타낸다. 일 실시예에서, 이득 G[c]는 2 정수 비트들 및 14개의 소수 비트들(fraction bits)(예를 들어, 부동 소수점 표시(floating point representation)에서의 2.14)을 갖는 부호없는 16 비트 숫자일 수 있으며, 이득 G[c]는 라운딩(rounding)이 적용될 수 있다. 단지 예로서, 이득 G[c]는 0 내지 4X(예를 들어, 입력 픽셀 값의 4배)의 범위를 가질 수 있다.
다음에, 이하의 수학식 12에 도시되는 바와 같이, 부호있는, 계산된 값 Y는 다음에 최소 및 최대 범위로 클리핑(clipped)될 수 있다.
[수학식 12]
Figure 112011064114822-pat00031
변수들 min[c] 및 max[c]는 최소 및 최대 출력값들 각각에 대한 부호있는 16-비트 '클리핑 값들'을 나타낼 수 있다. 일 실시예에서, BLC 로직(462)은 또한 컬러 성분 당 최대 및 최소 이상 및 이하로 각각 클리핑된 픽셀들의 수의 카운트를 유지하도록 구성될 수 있다.
그 다음에, BLC 로직(462)의 출력은 LSC(lens shading correction) 로직(464)으로 전달된다. LSC 로직(464)은 세기(intensity)에서의 드롭-오프(drop-offs)를 보상하기 위해 픽셀-당 기반(per-pixel basis) 상에서 적절한 이득을 적용하도록 구성될 수 있고, 이것은 일반적으로 이미징 장치(30)의 렌즈(88)의 광학 중심으로부터 거리에 대략적으로 비례한다. 알 수 있는 바와 같이, 이러한 드롭-오프는 렌즈의 기하학적 광학(optics)의 결과가 될 수 있다. 일례로서, 이상적인 광학적 특성을 갖는 렌즈는 cos4 법칙으로 명칭되는, 입사각의 코사인의 4승 cos4(θ)으로 모델링될 수 있다. 그러나, 렌즈 제조가 완벽하지 않으므로, 렌즈내의 다양한 불규칙성은 광학적 특성이 가정된 cos4 모델로부터 벗어나도록 야기한다. 예컨대, 렌즈의 더 얇은 에지는 통상적으로 가장 많은 불규칙성을 나타낸다. 또한, 렌즈 쉐이딩 패턴내의 불규칙성들은 또한 컬러 어레이 필터와 완전하게 정렬되지 않은 이미지 센서내의 마이크로렌즈 어레이의 결과가 될 수 있다. 또한, 몇몇 렌즈내의 적외선(IR) 필터는 조사-종속(illuminant-dependent)이 되는 드롭-오프를 야기할 수 있으며, 이에 따라 렌즈 쉐이딩 이득은 검출된 광원에 의존하여 적응될 수 있다.
도 40을 참조하면, 전형적인 렌즈에서의 픽셀 위치에 대한 광 세기를 나타내는 3차원 프로파일(496)이 도시된다. 도시된 바와 같이, 렌즈의 중심(498) 근방의 광 세기는 렌즈의 코너 또는 에지(500)를 향해 점차적으로 드롭 오프한다. 도 40에 도시된 렌즈 쉐이딩 불규칙성은 도 41에 더 잘 도시되어 있으며, 이것은 코너 및 에지를 향하는 광 세기의 드롭-오프들을 나타내는 이미지(502)의 컬러 드로잉을 도시한다. 특히, 이미지의 대략 중심에서의 광 세기는 이미지의 코너 및/또는 에지에서의 광 세기 보다 더 밝은 것으로 보인다.
본 기술의 실시예들에 따르면, 렌즈 쉐이딩 보정 이득은 컬러 채널 당 이득의 2차원 그리드(예컨대, 베이어 필터에 대한 Gr, R, B, Gb)로서 특정될 수 있다. 이득 그리드 포인트는 미처리 프레임(278) 내의 고정 수평 및 수직 간격으로 분포될 수 있다(도 19). 도 19에서 논의된 바와 같이, 미처리 프레임(278)은 특정 이미지 처리 동작에 대해 처리가 수행되는 영역을 정의하는 활성 구역(280)을 포함할 수 있다. 렌즈 쉐이딩 보정 동작과 관련하여, LSC 구역으로 명칭될 수 있는, 활성 처리 구역이 미처리 프레임 구역(278) 내에 정의된다. 이하 논의되는 바와 같이, LSC 구역은 완전히 이득 그리드 경계 내에 있거나 이득 그리드 경계에 있어야 하며, 그렇지 않으면 결과는 정의되지 않는다.
예컨대, 도 42를 참조하면, 미처리 프레임(278) 내에서 정의될 수 있는 LSC 구역(504) 및 이득 그리드(506)이 도시된다. LSC 구역(504)은 폭(508) 및 높이(510)를 가질 수 있고, 미처리 프레임(278)의 경계에 대해 x-오프셋(512) 및 y-오프셋(514)에 의해 정의될 수 있다. 그리드 이득(506)의 베이스(520)로부터 LSC 구역(504) 내의 제1 픽셀(522)로의 그리드 오프셋(예컨대, 그리드 x-오프셋(516) 및 그리드 y-오프셋(518))이 또한 도시된다. 이러한 오프셋들은 주어진 컬러 성분에 대한 제1 그리드 간격 내에 있을 수 있다. 수평(x-방향) 및 수직(y-방향) 그리드 포인트 간격(524 및 526)은 각각 컬러 채널 각각에 대해 독립적으로 특정될 수 있다.
전술한 바와 같이, 베이러 컬러 필터 어레이의 이용을 가정하면, 그리드 이득의 4 컬러 채널들(R, B, Gr 및 Gb)이 정의될 수 있다. 일 실시예에서, 4K(4096) 그리드 포인트들 전체가 이용가능할 수 있고, 각각의 컬러 채널에 대해, 그리드 이득의 시작 위치에 대한 베이스 어드레스가 예컨대 포인터를 이용하여 제공될 수 있다. 또한, 수평(524) 및 수직(526) 그리드 포인트 간격이 하나의 컬러 평면의 해상도에서의 픽셀의 측면에서 정의될 수 있고, 몇몇 실시예에서는, 수평 및 수직 방향으로, 8, 16, 32, 64 또는 128 등의 2의 제곱만큼 분리된 그리드 포인트 간격에 대해 제공될 수 있다. 알 수 있는 바와 같이, 2의 제곱을 이용하여, 시프트(예컨대, 분할) 및 가산 동작을 이용하여 이득 보간의 효율적인 구현이 달성될 수 있다. 이러한 파라미터들을 이용하여, 이미지 센서 크롭핑 구역이 변할지라도 동일한 이득 값들이 이용될 수 있다. 예컨대, 모든 그리드 이득 값들을 업데이트하는 대신에 크롭된 구역에 대한 그리드 포인트들을 정렬하기 위해 단지 몇몇 파라미터들만이 업데이트될 필요가 있다(예컨대, 그리드 오프셋(524 및 526)을 업데이트). 단지 일례로서, 이것은 디지털 줌잉 동작 동안 크롭핑이 이용될 때 유용할 수 있다. 또한, 도 42의 실시예에 도시된 이득 그리드(506)가 일반적으로 동일한 간격으로 그리드 포인트들을 갖는 것으로 도시되었지만, 다른 실시예에서는, 그리드 포인트들이 반드시 동일한 간격일 필요는 없다는 것을 알아야 한다. 예컨대, 몇몇 실시예에서, 그리드 포인트들은 균일하지 않게 분포될 수 있고(예컨대, 대수적으로), 이에 따라 그리드 포인트들은 LSC 구역(504)의 중심에 덜 집중하게 되지만, LSC 구역(504)의 코너를 향해 더 집중하게 되며, 전형적으로 여기서 렌즈 쉐이딩 왜곡이 더 현저하게 된다.
현재 개시된 렌즈 쉐이딩 정정 기법들에 따르면, 현재 픽셀 위치가 LSC 구역(504) 바깥에 위치할 때, 어떠한 이득도 적용되지 않는다(예를 들어, 이 픽셀은 변하지 않고 패스된다). 현재 픽셀 위치가 이득 그리드 위치에 있을 때, 그 특정한 그리드 포인트에서의 이득 값이 이용될 수 있다. 그러나, 현재 픽셀 위치가 그리드 포인트들 사이에 있을 때, 그 이득은 바이리니어 보간법을 이용하여 보간될 수 있다. 도 43상의 픽셀 위치 "G"에 대한 이득을 보간하는 예가 이하에 제공된다.
도 43에 도시된 바와 같이, 픽셀 G는 현재 픽셀 위치 G에 대해 제각기 상부-좌측, 상부-우측, 하부-좌측 및 하부-우측 이득들에 대응할 수 있는 이득 포인트들 G0, G1, G2 및 G3 사이에 있다. 그리드 간격의 수평 및 수직 사이즈는 X 및 Y에 의해 제각기 나타내진다. 또한, ii 및 jj는 상부-좌측 이득 G0의 위치에 대해 수평 및 수직 픽셀 오프셋들을 제각기 나타낸다. 이러한 인자들에 기초하여, 위치 G에 대응하는 이득은 다음과 같이 보간될 수 있다.
[수학식 13a]
Figure 112011064114822-pat00032
위 수학식 13a에서의 항들은 결합되어 다음의 표현을 얻을 수 있다.
[수학식 13b]
Figure 112011064114822-pat00033
일 실시예에서, 보간법은 각각의 픽셀에서 승산기를 이용하는 대신에 증분적으로 수행되어 계산 복잡도를 줄일 수 있다. 예컨대, 항 (ii)(jj)는 이득 그리드 506의 위치(0, 0)에서 0으로 초기화될 수 있는 가산기를 이용하여 실현될 수 있으며, 또한 현재 열 넘버가 픽셀에 의해 증가할 때마다 현재 행 넘버에 의해 증분될 수 있다. 위에서 논의한 바와 같이, X 및 Y의 값들이 2의 제곱들로서 선택될 수 있기 때문에, 이득 보간은 단일 시프트 동작들을 이용하여 달성될 수 있다. 따라서, 승산기는 (매 픽셀 대신에) 그리드 포인트 G0에서만 필요하며, 추가 동작들만이 남아있는 픽셀들에 대한 보간된 이득을 결정하는데 필요하다.
일정 실시예들에서, 그리드 포인트들 간의 이득들의 보간은 14-비트 정밀도를 이용할 수 있으며, 그리드 이득들은 2 정수 비트 및 8 소수 비트(예를 들면, 2.8 부동 소수점 표시)를 갖는 부호없는 10-비트 값일 수 있다. 이런 관례를 이용할 때, 이득은 0과 4X 사이의 범위를 가질 수 있으며, 그리드 포인트들 간의 이득 해상도는 1/256일 수 있다.
렌즈 쉐이딩 정정 기법들은 도 44에 도시된 프로세스(528)에 의해 추가로 도해될 수 있다. 도시된 바와 같이, 프로세스(528)는 단계(530)에서 시작하는데, 이 단계에서 현재 픽셀의 위치가 도 42의 LSC 구역(504)의 경계들에 대해 결정된다. 다음으로, 결정 로직(532)은 현재 픽셀 위치가 LSC 구역(504) 내에 있는지 여부를 결정한다. 만일 현재 픽셀 위치가 LSC 구역(504) 바깥에 있다면, 프로세스(528)는 단계(534)로 진행하고, 어떠한 이득도 현재 픽셀에 적용되지 않는다(예컨대, 픽셀이 변하지 않고 패스한다).
만일 현재 픽셀 위치가 LSC 구역(504) 내에 있다면, 프로세스(528)는 결정 로직(536)으로 진행하는데, 이 결정 로직에서 현재 픽셀 위치가 이득 그리드(504) 내의 그리드 포인트에 대응하는지 여부가 추가로 결정된다. 만일 현재 픽셀 위치가 그리드 포인트에 대응한다면, 단계(538)에서 도시된 바와 같이, 이 그리드 포인트에서의 이득 값이 선택되고 현재 픽셀에 적용된다. 만일 현재 픽셀 위치가 그리드 포인트에 대응하지 않는다면, 프로세스(528)는 단계(540)로 진행하고, 이득은 경계 그리드 포인트들(예를 들면, 도 43의 G0, G1, G2 및 G3)에 기초하여 보간된다. 예컨대, 보간된 이득은 위에서 논의한 바와 같이 수학식들 13a 및 13b에 따라서 계산될 수 있다. 그 후, 프로세스(528)는 단계(542)에서 종료하는데, 이 단계에서 단계(540)로부터 보간된 이득이 현재 픽셀에 적용된다.
알 수 있는 바와 같이, 프로세스(528)는 이미지 데이터의 각각의 픽셀에 대해 반복될 수 있다. 예컨대, 도 45에 도시된 바와 같이, LSC 구역(예를 들면, 504) 내의 각각의 픽셀 위치에 적용될 수 있는 이득들을 묘사하는 3차원 프로파일이 도해되어 있다. 도시된 바와 같이, 이미지의 코너들(544)에서 적용된 이득은, 도 40 및 도 41에 도시된 바와 같이, 코너들에서 광 강도에서의 더 큰 드롭-오프로 인해 이미지의 중심(546)에 적용되는 이득보다 일반적으로 더 클 수 있다. 현재 설명되는 렌즈 쉐이딩 정정 기법들을 이용할 때, 광 강도 드롭-오프들의 외관은 줄어들거나 또는 실질적으로 제거될 수 있다. 예컨대, 도 46은 도 41로부터 이미지(502)의 착색도가 렌즈 쉐이딩 정정이 적용된 후에 어떠한 모습을 보이는지의 예를 제공한다. 도시된 바와 같이, 도 41로부터 오리지널 이미지에 비해, 전체 광 강도는 이미지에 걸쳐 일반적으로 더 균일하다. 특히, 이미지의 거의 중심에서의 광 강도는 이미지의 코너들 및/또는 에지들에서의 광 강도 값들에 실질적으로 동일할 수 있다. 또한, 위에서 언급한 바와 같이, 보간된 이득 계산(수학식 13a 및 13b)은 몇몇 실시예들에서 순차적인 열 및 행 증분 구조를 이용함으로써 그리드 포인트들 간의 가산 "델타"로 대체될 수 있다. 알 수 있는 바와 같이, 이것은 계산 복잡도를 줄인다.
추가적인 실시예들에서, 그리드 이득을 사용하는 것 외에, 이미지 중심으로부터의 거리의 함수로서 스케일링된 컬러당 글로벌 이득(global gain per color) 컴포넌트가 사용된다. 이미지의 중심은 입력 파라미터로서 제공될 수 있으며, 균일하게 조명된 이미지 내의 각각의 이미지 픽셀의 광도의 크기를 분석함으로써 추정될 수 있다. 하기 도시된 것과 같이, 선형적으로 스케일링된 래디얼(radial) 이득, Gr을 얻기 위해, 식별된 중심 픽셀과 현재 픽셀 사이의 래디얼 거리가 사용될 수 있다.
[수학식 14]
Figure 112011064114822-pat00034
여기서, Gp[c]는 각각의 컬러 컴포넌트 c에 대한 글로벌 이득 파라미터를 나타내며(예컨대, Bayer 패턴을 위한 R, B, Gr, 및 Gb 컴포넌트들), R은 중심 픽셀과 현재 픽셀 사이의 래디얼 거리를 나타낸다.
상기 논의된 LSC 구역(504)을 도시한 도 47을 참조하여, 거리 R은 다양한 기법들을 사용하여 계산 또는 추정될 수 있다. 도시된 것과 같이, 이미지 중심에 대응하는 픽셀 C는 좌표 (x0, y0)를 가질 수 있으며, 현재 픽셀 G는 좌표 (xG, yG)를 가질 수 있다. 일 실시예에서, LSC 로직(464)은 다음 수학식을 사용하여 거리 R을 계산할 수 있다.
[수학식 15]
Figure 112011064114822-pat00035
다른 실시예에서, R의 추정치를 얻기 위해, 하기 더 간단한 추정 공식이 이용될 수 있다.
[수학식 16]
Figure 112011064114822-pat00036
수학식 16에서, 추정 계수 α 및 β는 8비트 값들로 스케일링될 수 있다. 단지 예로서, 일 실시예에서, R의 추정치를 제공하기 위해 α는 대략 123/128과 같을 수 있으며, β는 대략 51/128과 같을 수 있다. 이러한 계수 값들을 사용하여, 최대 에러는 대략 4%일 수 있으며, 에러의 중앙값(median)은 대략 1.3%일 수 있다. 그러므로, R을 결정하는데 있어서 추정 기법은 계산 기법을 이용하는 것보다 덜 정확할 수 있음에도 불구하고(수학식 15), 추정된 값들 또는 R이 현재의 렌즈 쉐이딩 보정 기법들에 대한 래디얼 이득 컴포넌트들을 결정하기 위해 적합하도록 에러의 마진은 충분히 낮다.
현재 픽셀에 적용될 수 있는 총 이득을 결정하기 위해, 래디얼 이득 Gr은 현재 픽셀에 대한 보간(interpolated) 그리드 이득값 G(수학식 13a 및 13b)로 곱해질 수 있다. 아래 보여진 것과 같이, 출력 픽셀 Y는 입력 픽셀값 X를 총 이득으로 곱함으로써 얻어진다.
[수학식 17]
Figure 112011064114822-pat00037
그러므로, 본 기법에 따라, 렌즈 쉐이딩 보정은 보간 이득만을 사용하거나, 보간 이득 및 래디얼 이득 컴포넌트들을 모두 사용하여 수행될 수 있다. 대안적으로, 렌즈 쉐이딩 보정은 래디얼 추정 에러를 보상하는 래디얼 그리드 테이블과 함께 래디얼 이득만을 사용함으로써 또한 달성될 수 있다. 예컨대, 도 42에 도시된 사각형 게인 그리드(506) 대신, 래디얼 및 각도 방향의 이득들을 정의하는 복수의 그리드 포인트들을 갖는 래디얼 이득 그리드가 제공될 수 있다. 그러므로, LSC 구역(504) 내의 래디얼 그리드 포인트들 중 하나와 정렬하지 않는 픽셀에 적용할 이득을 결정할 때, 적합한 보간 렌즈 쉐이딩 이득을 결정하기 위해 그 픽셀을 포함하는 4개의 그리드 포인트들을 사용하여 보간이 적용될 수 있다.
도 48을 참조하여, 렌즈 쉐이딩 보정에서의 보간 및 래디얼 컴포넌트들의 사용은 프로세스(548)에 의해 예시되었다. 프로세스(548)은, 도 44에 설명된 프로세스(528)와 유사한 단계들을 포함할 수 있음을 유념해야 한다. 따라서, 그러한 단계들은 유사한 참조 번호로 넘버링되었다. 단계(530)에서 시작하여, 현재 픽셀이 수신되며 LSC 구역(504)에 대한 그것의 위치가 결정된다. 다음, 결정 로직(532)은 현재 픽셀 위치가 LSC 구역(504) 내에 있는지 결정한다. 현재 픽셀 위치가 LSC 구역(504) 밖에 있다면, 프로세스(548)는 단계(534)로 계속되고, 현재 픽셀에 이득이 적용되지 않는다(예를 들어, 픽셀이 변경 없이 패스됨). 현재 픽셀 위치가 LSC 구역(504) 내에 있다면, 프로세스(548)는 단계(550) 및 결정 로직(536)으로 동시에 계속될 수 있다. 먼저 단계(550)를 참조하여, 이미지의 중심을 식별하는 데이터가 검색된다. 상기 논의된 것과 같이, 이미지의 중심을 결정하는 단계는 균일한 조명 하의 픽셀들에 대한 광도의 크기를 분석하는 단계를 포함할 수 있다. 예컨대, 이는 조정(calibration) 동안 일어날 수 있다. 그러므로, 단계(550)는 각각의 픽셀을 처리하기 위해 이미지의 중심을 반복적으로 계산하는 단계를 반드시 포함하지 않으며, 이전에 결정된 이미지 중심의 데이터(예컨대, 좌표)를 검색하는 단계를 참조할 수 있다. 이미지의 중심이 식별되면, 프로세스(548)는 단계(552)로 계속될 수 있으며, 여기서 이미지 중심과 현재 픽셀 위치(R) 사이의 거리가 결정된다. 상기 논의된 것과 같이, R의 값은 계산되거나(수학식 15) 또는 추정될 수 있다(수학식 16). 그 후, 단계(554)에서, 거리 R 및 현재 픽셀의 컬러 컴포넌트에 대응하는 글로벌 이득 파라미터를 사용하여 래디얼 이득 컴포넌트 Gr이 계산될 수 있다(수학식 14). 아래 단계(558)에서 논의될 것과 같이, 래디얼 이득 컴포넌트 Gr은 총 이득을 결정하기 위해 사용될 수 있다.
결정 로직(536)을 다시 참조하여, 현재 픽셀 위치가 이득 그리드(504) 내의 그리드 포인트에 대응하는지 여부가 결정된다. 단계(556)에 도시된 것과 같이, 현재 픽셀 위치가 그리드 포인트에 대응한다면, 그 그리드 포인트에서의 이득값이 결정된다. 현재 픽셀 위치가 그리드 포인트에 대응하지 않는다면, 프로세스(548)는 단계(540)로 계속되며, 접하는 그리드 포인트들(예컨대, 도 43의 G0, G1, G2 및 G3)에 기초하여 보간 이득이 계산된다. 예컨대, 상기 논의된 것과 같이 보간 이득은 수학식들 13a 및 13b에 따라 계산될 수 있다. 다음, 단계(558)에서, 그리드 이득들(단계(556)) 또는 보간 이득(540) 중 하나 뿐 아니라, 단계(554)에서 결정된 래디얼 이득에 기초하여 총 이득이 결정된다. 이해될 수 있는 것과 같이, 이는 프로세스(548) 동안 결정 로직(536)이 어떤 갈림길을 따르느냐에 의존할 수 있다. 단계(560)에 도시된 것과 같이, 총 이득은 현재 픽셀에 적용된다. 다시 말해, 프로세스(528)와 같이, 프로세스(548)는 이미지 데이터의 각각의 픽셀에 대해 또한 반복될 수 있다.
그리드 이득들과 함께 래디얼 이득을 사용하는 것은 다양한 이점들을 제공할 수 있다. 예컨대, 래디얼 이득을 사용하는 것은 모든 컬러 컴포넌트들에 대해 하나의 공통 이득 그리드를 사용하는 것을 허용한다. 이는 각각의 컬러 컴포넌트에 대한 별개의 이득 그리드들을 저장하기 위해 요구되는 총 저장 공간을 크게 감소시킬 수 있다. 예컨대, Bayer 이미지 센서에서, R, B, Gr, 및 Gb 컴포넌트들 각각에 대한 하나의 이득 그리드의 사용은 이득 그리드 데이터를 대략 75%만큼 감소시킬 수 있다. 인식될 것과 같이, 그리드 이득 데이터 테이블은 이미지 처리 하드웨어의 메모리 또는 칩 면적의 큰 부분을 차지할 수 있으므로, 그리드 이득 데이터의 이러한 감소는 구현 비용을 줄일 수 있다. 더욱이, 하드웨어 구현에 따라, 이득 그리드 값들의 하나의 세트를 사용하는 것은, 전체 칩 면적의 감소(예컨대, 이득 그리드 값들이 온칩 메모리에 저장되는 경우) 및 메모리 대역폭 요건의 감소(예컨대, 이득 그리드 값들이 오프칩 외부 메모리에 저장되는 경우)와 같은 더한 이점들을 제공할 수 있다.
도 37에 도시된 렌즈 쉐이딩 보정 로직(464)의 기능을 완전히 설명하였으며, LSC 로직(464)의 출력은 후속으로 역 블랙 레벨 보상(inverse black level compensation; IBLC) 로직(466)으로 전달된다. IBLC 로직(466)은 각각의 컬러 컴포넌트(예컨대, R, B, Gr, 및 Gb)에 대한 이득, 오프셋 및 클립을 독립적으로 제공하며, 일반적으로 BLC 로직(462)의 반대 기능을 수행한다. 예컨대, 다음 연산에 보여진 것과 같이, 입력 픽셀의 값은 먼저 이득으로 곱해지며, 그 후 부호있는 값에 의해 오프셋된다.
[수학식 18]
Figure 112011064114822-pat00038
여기서, X는 주어진 컬러 컴포넌트 c(예컨대, R, B, Gr, 또는 Gb)에 대한 입력 픽셀값을 나타내며, O[c]는 현재의 컬러 컴포넌트 c에 대한 부호있는 16비트 오프셋을 나타내며, G[c]는 컬러 컴포넌트 c에 대한 이득값을 나타낸다. 일 실시예에서, 이득 G[c]는 대략 0 내지 4X(4 곱하기 입력 픽셀값 X)의 범위를 가질 수 있다. 이러한 변수들은 위의 수학식 11에서 논의된 변수들과 동일한 변수들일 수 있음을 유념해야 한다. 계산된 값 Y는, 예컨대 수학식 12를 사용하여 최저 및 최대 범위로 클리핑될 수 있다. 일 실시예에서, IBLC 로직(466)은 컬러 컴포넌트당 각각 최대값보다 높게 클리핑되고 최저값보다 낮게 클리핑된 픽셀들의 수의 카운트를 유지하도록 구성될 수 있다.
그 후, IBLC 로직(466)의 출력은 통계 컬렉션 블록(468)에 의해 수신되며, 이는 자동 노출(AE), 자동 화이트 밸런스(AWB), 자동 초점(AF), 깜빡임 감지(flicker detection) 등에 관한 것과 같은 이미지 센서(들)(90)에 관한 다양한 통계적인 데이터 포인트들의 컬렉션을 제공할 수 있다. AWB, AE, 및 AF 통계의 중요성을 논의하는 간단한 개요가 아래 제공된다.
화이트 밸런스와 관련하여, 광원은 이미지 장면의 물체들로부터 반사되므로, 각각의 픽셀에서의 이미지 센서의 응답은 조명 소스에 의존할 수 있다. 그러므로, 이미지 장면에서 기록된 각각의 픽셀 값은 광원의 컬러 온도와 연관된다. 낮은 컬러 온도 하에서 흰색 물체가 비추어질 때, 포착된 이미지에서 그것은 적색으로 보일 수 있다. 반대로, 높은 컬러 온도 하에서 비추어진 흰색 물체는 포착된 이미지에서 청색으로 보일 수 있다. 그러므로, 화이트 밸런스의 목표는, 이미지가 사람의 눈에 표준광 하에서 찍힌 것처럼 보이도록 RGB 값들을 조절하는 것이다. 그러므로, 화이트 밸런스에 관련된 이미징 통계의 문맥에서, 광원의 컬러 온도를 결정하기 위해 흰색 물체들의 컬러 정보가 수집된다. 일반적으로, 화이트 밸런스 알고리즘은 2개의 주 단계들을 포함할 수 있다. 먼저, 광원의 컬러 온도가 추정된다. 다음, 컬러 이득 값들을 조절하고 및/또는 컬러 보정 행렬의 계수들을 결정/조절하기 위해 추정된 컬러 온도가 사용된다. 그러한 이득들은 ISP 디지털 이득뿐 아니라, 아날로그 및 디지털 이미지 센서 이득들의 조합일 수 있다.
다음, 자동 노출은 포착된 이미지의 휘도를 제어하기 위해 픽셀 통합 시간 및 이득을 조절하는 프로세스를 일반적으로 참조한다. 예컨대, 자동 노출은 통합 시간을 지정함으로써 이미지 센서에 의해 포착된 장면으로부터의 광량을 제어할 수 있다. 더욱이, 자동 초점은 이미지의 초점을 실질적으로 최적화하기 위한 렌즈의 최적 초점 거리를 결정하는 것을 나타낼 수 있다. 그러므로, 이러한 다양한 종류의 통계들은 통계 컬렉션 블록(468)을 통해 결정 및 수집될 수 있다. 도시된 것과 같이, 통계 컬렉션 블록(468)의 출력 STATS0은 메모리(108)에 전송되고 제어 로직(84)으로 라우팅되거나, 대안적으로 제어 로직(84)에 직접 전송될 수 있다.
상기 논의된 것과 같이, 제어 로직(84)은 이미징 장치(30) 및/또는 이미지 처리 회로(32)를 제어하기 위한 하나 또는 그 이상의 제어 파라미터들을 결정하기 위해 수집된 통계 데이터를 처리할 수 있다. 예컨대, 그러한 제어 파라미터들은 이미지 센서(90)의 렌즈(예컨대, 초점 거리 조정 파라미터), 이미지 센서 파라미터(예컨대, 아날로그 및/또는 디지털 이득, 통합 시간) 뿐만 아니라, ISP 파이프 처리 파라미터(예컨대, 디지털 이득값, 컬러 보정 행렬(CCM) 계수)를 동작하기 위한 파라미터들을 포함할 수 있다. 부가적으로, 상기 언급한 것과 같이, 특정 실시예에서, 통계 처리는 8비트의 정확도로 일어날 수 있으며, 그러므로 더 높은 비트 깊이를 갖는 미처리 픽셀 데이터는 통계적인 목적을 위해 8비트 포맷으로 다운샘플링될 수 있다. 상기 논의된 것과 같이, 8비트(또는 임의의 다른 낮은 비트 해상도)로 다운샘플링하는 것은 하드웨어 크기(예컨대, 면적)를 감소시킬 수 있고, 처리 복잡도를 또한 감소시킬 수 있을 뿐 아니라, 통계 데이터가 잡음에 대해 더 강건하도록 허용할 수 있다(예컨대, 이미지 데이터의 공간적 평균을 사용하여).
ISP 프런트-엔드 로직(80)으로부터 후속의 ISP 파이프 로직(82)의 상세한 논의를 진행하기 전에, 통계 처리 유닛들(120 및 122)의 다양한 기능 로직 블록들(예컨대, 로직 블록들 460, 462, 464, 466, 및 468), 및 ISP 프런트-엔드 픽셀 처리 유닛(130)의 다양한 기능 로직 블록들(예컨대, 로직 블록들(298 및 300))은 본 기법의 단 하나의 실시예만을 예시하도록 의도되었음을 이해해야 할 것이다. 실제로, 다른 실시예들에서, 본원에 예시된 로직 블록들은 다른 순서로 배열될 수 있거나, 또는 본원에 구체적으로 설명되지 않은 추가적인 이미지 처리 기능들을 수행할 수 있는 추가적인 로직 블록들을 포함할 수 있다. 더욱이, 렌즈 쉐이딩 조정, 결함 픽셀 검출/보정, 및 블랙 레벨 보상과 같이, 통계 처리 유닛들(예컨대, 120 및 122) 내에서 수행되는 이미지 처리 연산들은 통계 데이터를 수집하기 위한 목적으로 통계 처리 유닛에서 수행된다는 것을 이해해야 한다. 그러므로, 통계 처리 유닛들에 의해 수신된 이미지 데이터에 수행되는 처리 연산들은, ISP 프런트-엔드 픽셀 처리 로직(130)으로부터 출력되고 ISP 파이프 처리 로직(82)으로 전달되는 이미지 신호(109)(FEProcOut)에 실제로 반영되지 않는다.
계속하기 전에, 충분한 처리 시간 및 본원에 설명된 다양한 연산들의 처리 요구 사항들 사이의 유사점을 고려하면, 본원에 도시된 기능 블록들이 이미지 처리를 파이프-라인 방식보다는 순차적인 방식으로 수행하도록 재구성하는 것이 가능하다. 이해될 것과 같이, 이는 전체 하드웨어 구현 비용을 더 감소시킬 뿐 아니라, (예컨대, 중간 결과/데이터를 캐시/저장하기 위한) 외부 메모리로의 대역폭을 증가시킬 수 있다.
ISP 파이프라인("파이프") 처리 로직
위에서 ISP 프런트-엔드 로직(80)을 상세히 설명하였으며, 본 논의는 이제 ISP 파이프 처리 로직(82)으로 초점을 이동할 것이다. 일반적으로, ISP 파이프 로직(82)의 기능은, ISP 프런트-엔드 로직(80)으로부터 제공되거나, 또는 메모리(108)로부터 검색될 수 있는 미처리 이미지 데이터를 수신하고, 추가적인 이미지 처리 연산들을 수행하는 것이다(즉, 이미지 데이터를 디스플레이 장치(28)로 출력하기 전에).
ISP 파이프 로직(82)의 실시예를 나타내는 블록도가 도 49에 도시되었다. 예시된 ISP 파이프 로직(82)은 미처리 이미지 처리 로직(562), RGB 처리 로직(564), 및 YCbCr 처리 로직(566)을 포함할 수 있다. 미처리 이미지 처리 로직(562)은 결함 픽셀 검출 및 보정, 렌즈 쉐이딩 보정, 디모자이크 뿐 아니라, 아래 더 논의될 것과 같이 자동 화이트 밸런스 및/또는 블랙 레벨을 설정하기 위해 이득을 적용하는 것과 같은 다양한 이미지 처리 연산들을 수행할 수 있다. 본 실시예에 보여진 것과 같이, 미처리 이미지 처리 로직(562)으로의 입력 신호(570)는 선택 로직(568)의 현재 구성에 따라 ISP 프런트-엔드 로직(80)으로부터의 미처리 픽셀 출력(109)(신호 FEProcOut) 또는 메모리(108)로부터의 미처리 픽셀 데이터(112)일 수 있다.
미처리 이미지 처리 로직(562) 내에서 수행되는 디모자이크 연산의 결과로서, 이미지 신호 출력(572)은 RGB 도메인에 있을 수 있으며, 후속으로 RGB 처리 로직(564)으로 전달될 수 있다. 예컨대, 도 49에 도시된 것과 같이, RGB 처리 로직(564)은 선택 로직(576)의 현재 구성에 따라 출력 신호(572)이거나 또는 메모리(108)로부터의 RGB 이미지 신호(574)일 수 있는 신호(578)를 수신한다. 아래 더 논의될 것과 같이, RGB 처리 로직(564)은 컬러 보정(예컨대, 컬러 보정 행렬을 사용한), 자동 화이트 밸런싱을 위한 컬러 이득들의 적용 뿐 아니라, 글로벌 톤 매핑을 포함하는 다양한 RGB 컬러 조정 연산들을 제공할 수 있다. RGB 처리 로직(566)은 YCbCr(루마/크로마) 컬러 공간으로의 RGB 이미지 데이터의 컬러 공간 변환을 또한 제공할 수 있다. 그러므로, 이미지 신호 출력(580)은 YCbCr 도메인에 있을 수 있으며, 후속으로 YCbCr 처리 로직(566)으로 전달될 수 있다.
예컨대, 도 49에 도시된 것과 같이, YCbCr 처리 로직(566)은 선택 로직(584)의 현재 구성에 따라 RGB 처리 로직(564)으로부터의 출력 신호(580) 또는 메모리(108)로부터의 YCbCr 신호(582)일 수 있는 신호(586)를 수신한다. 아래에 더 상세히 논의될 것과 같이, YCbCr 처리 로직(566)은 스케일링, 크로마 억제, 루마 선명화, 밝기, 콘트라스트 및 컬러(BCC) 조정, YCbCr 감마 매핑, 크로마 데시메이션 등을 포함하는 YCbCr 컬러 공간에서의 이미지 처리 연산들을 제공할 수 있다. YCbCr 처리 로직(566)의 이미지 신호 출력(588)은 메모리(108)로 전송되거나, 또는 ISP 파이프 처리 로직(82)으로부터 이미지 신호(114)로서 출력될 수 있다(도 7). 이미지 신호(114)는 사용자에 의해 뷰잉되기 위해 (직접 또는 메모리(108)를 통해) 디스플레이 장치(28)로 전송될 수 있거나, 또는 압축 엔진(예컨대, 인코더(118)), CPU/GPU, 그래픽 엔진 등을 사용하여 더 처리될 수 있다.
본 기법들의 실시예에 따라, ISP 파이프 로직(82)은 미처리 픽셀 데이터의 8비트, 10비트, 12비트, 또는 14비트 포맷으로의 처리를 지원할 수 있다. 예컨대, 일 실시예에서, 8비트, 10비트, 또는 12비트 입력 데이터는 미처리 이미지 처리 로직(562)의 입력부에서 14비트로 변환될 수 있으며, 미처리 처리 및 RGB 처리 연산들은 14비트 정확도로 수행될 수 있다. 마지막 실시예에서, YCbCr 컬러 공간으로의 RGB 데이터의 전환 전에 14비트 이미지 데이터는 10비트로 다운샘플링될 수 있으며, YCbCr 처리(로직 566)는 10비트 정확도로 수행될 수 있다.
ISP 파이프 처리 로직(82)에 의해 제공되는 다양한 기능들의 포괄적인 설명을 제공하기 위해, 미처리 처리 로직(562), RGB 처리 로직(564), 및 YCbCr 처리 로직(566) 뿐 아니라, 로직(562, 564, 및 566)의 유닛 각각에 구현될 수 있는 다양한 이미지 처리 연산들을 수행하기 위한 내부 로직들이 아래에 순차적으로 미처리 처리 로직(562)으로부터 시작하여 논의될 것이다. 예컨대, 이제 도 50을 참조하여, 본 기법의 일 실시예에 따라 미처리 처리 로직(562)의 더 상세한 뷰를 도시하는 블록도가 예시되었다. 도시된 것과 같이, 미처리 처리 로직(562)은 이득, 오프셋, 및 클램프(GOC) 로직(590), 결함 픽셀 검출/보정(DPDC) 로직(592), 잡음 감소 로직(594), 렌즈 쉐이딩 보정 로직(596), GOC 로직(598), 및 디모자이크 로직(600)을 포함한다. 더욱이, 아래 논의된 예들은 이미지 센서(들)(90)과 함께 Bayer 컬러 필터 어레이의 사용을 가정하지만, 본 기법의 다른 실시예들은 다른 종류의 컬러 필터들 또한 이용할 수 있다는 것을 이해해야 한다.
미처리 이미지 신호일 수 있는 입력 신호(570)가 먼저 게인, 오프셋, 및 클램프(GOC) 로직(590)에 의해 수신된다. 도 37에 논의된 것과 같이, GOC 로직(590)은 ISP 프런트-엔드 로직(80)의 통계 처리 유닛(120)의 BLC 로직(462)에 관해서 유사한 기능을 제공하고 유사한 방식으로 구현될 수 있다. 예컨대, GOC 로직(590)은 Bayer 이미지 센서의 각각의 컬러 컴포넌트 R, B, Gr, 및 Gb에 독립적으로 디지털 이득, 오프셋 및 클램핑(클리핑)을 제공할 수 있다. 특히, GOC 로직(590)은 미처리 이미지 데이터의 자동 화이트 밸런스를 수행하거나 블랙 레벨을 설정할 수 있다. 더욱이, 일부 실시예들에서, GOC 로직(590)은 Gr 및 Gb 컬러 컴포넌트들 사이의 오프셋을 보정하거나 또는 보상하기 위해 또한 사용될 수 있다.
연산에서, 현재 픽셀을 위한 입력값은 우선 부호있는 값에 의해 오프셋되며, 이득으로 곱해진다. 이 연산은 위의 수학식 11에 나타난 공식을 사용하여 수행될 수 있으며, X는 주어진 컬러 컴포넌트 R, B, Gr, 또는 Gb에 대한 입력 픽셀값을 나타내며, O[c]는 현재 컬러 컴포넌트 c에 대한 부호있는 16비트 오프셋을 나타내며, G[c]는 컬러 컴포넌트 c에 대한 이득값을 나타낸다. G[c]를 위한 값들은 통계 처리(예컨대, ISP 프런트-엔드 블록(80)에서) 중에 미리 결정될 수 있다. 일 실시예에서, 이득 G[c]는 2 정수 비트들 및 14개의 소수 비트들을 갖는 부호없는 16비트 수(예컨대, 2.14 부동 소수점 표현)일 수 있으며, 이득 G[c]는 반올림과 함께 적용될 수 있다. 단지 예로서, 이득 G[c]는 0에서 4X 사이의 범위를 가질 수 있다.
수학식 11로부터의 (이득 G[c] 및 오프셋 O[c]를 포함하는) 계산된 픽셀값 Y는 수학식 12에 따라 최소 및 최대 범위로 고정될 수 있다. 상기 논의된 것과 같이, 변수들 min[c] 및 max[c]는, 각각 최소 및 최대 출력값들에 대한 부호있는 16비트 "고정 값들"을 나타낼 수 있다. 일 실시예에서, GOC 로직(590)은, 각각의 컬러 컴포넌트에 대해 각각 최대보다 위에서 고정된 픽셀들 및 최소 범위보다 아래에서 고정된 픽셀들의 수의 카운트를 유지하도록 또한 구성될 수 있다.
후속으로, GOC 로직(590)의 출력이 결함 픽셀 검출 및 보정 로직(592)에 전달된다. 도 37을 참조하여 상기 논의된 것과 같이(DPDC 로직(460)), 결함 픽셀들은 다수의 요소들의 결과일 수 있으며, "핫"(또는 누설) 픽셀들, "갇힌(stuck)" 픽셀들, 및 "죽은" 픽셀들을 포함할 수 있으며, 핫 픽셀들은 결함이 없는 픽셀들이 비해 정상보다 높은 전하 누설을 나타내므로, 결함이 없는 픽셀들보다 더 밝게 보일 수 있으며, 갇힌 픽셀들은 항상 온(예컨대, 완전히 충전된)인 것처럼 보이므로 더 밝게 보이며, 죽은 픽셀들은 항상 오프인 것처럼 보인다. 이와 같이, 다른 종류의 고장 시나리오들을 식별하고 어드레스하기에 충분히 강건한 픽셀 검출 체계를 갖는 것이 바람직할 수 있다. 특히, 동적 결함 검출/보정만을 제공할 수 있는 프런트-엔드 DPDC 로직(460)과 비교하여, 파이프 DPDC 로직(592)은 고정된 또는 정적 결함 검출/보정, 동적 결함 검출/보정 뿐 아니라 스펙클(speckle) 제거를 제공할 수 있다.
현재 개시된 기법들의 실시예들에 따라, DPDC 로직(592)에 의해 수행되는 결함 픽셀 보정/검출은 각각의 컬러 컴포넌트(예컨대, R, B, Gr, 및 Gb)에 대해 독립적으로 일어날 수 있으며, 결함 픽셀들을 검출하는 것뿐 아니라 검출된 결함 픽셀들을 보정하기 위한 다양한 연산들을 포함할 수 있다. 예컨대, 일 실시예에서, 결함 픽셀 검출 연산들은 정적 결함들, 동적 결함들의 검출뿐 아니라, 이미징 센서에 존재할 수 있는 전자적 간섭 또는 잡음(예컨대, 포톤 잡음)을 나타낼 수 있는 스펙클의 검출을 제공할 수 있다. 유추로서, 스펙클은 TV 디스플레이와 같은 디스플레이에 잡음이 나타날 수 있는 것과 유사한 방식으로, 외견상 무작위의 잡음 인공물로서 이미지 상에 나타날 수 있다. 더욱이, 상기 언급한 것과 같이, 동적 결함 보정은, 주어진 시간에 픽셀을 결함인 것으로 정의하는 것이 인접한 픽셀들의 이미지 데이터에 의존한다는 의미로서 동적인 것으로 여겨진다. 예컨대, 항상 최대 밝기에 있는 갇힌 픽셀은, 갇힌 픽셀의 위치가 밝은 백색에 의해 지배되는 현재 이미지의 영역에 있다면 결함 픽셀로 여겨지지 않을 수 있다. 반대로, 갇힌 픽셀이 검정색 또는 어두운 컬러들에 의해 지배되는 현재 이미지의 영역에 있다면, 갇힌 픽셀은 DPDC 로직(592)에 의한 처리 동안 결함 픽셀로 식별될 수 있으며, 그에 따라 보정될 수 있다.
정적 결함 검출에 관하여, 각각의 픽셀의 위치는 결함이라고 알려진 픽셀들의 위치에 대응하는 데이터를 저장할 수 있는 정적 결함 테이블과 비교된다. 예컨대, 일 실시예에서, DPDC 로직(592)은 (예컨대, 카운터 메커니즘 또는 레지스터를 사용하여) 결함 픽셀들의 검출을 모니터할 수 있으며, 특정 픽셀이 반복적으로 고장나는 것으로 관찰되면, 그 픽셀의 위치는 정적 결함 테이블에 저장된다. 그러므로, 정적 결함 검출 동안, 현재 픽셀의 위치가 정적 결함 테이블에 있다고 결정되면, 현재 픽셀은 결함 픽셀인 것으로 식별되며, 대체값이 결정되고 일시적으로 저장된다. 일 실시예에서, 대체값은 동일한 컬러 컴포넌트의 (스캔 순서에 기초한) 이전 픽셀의 값일 수 있다. 하기 논의될 것과 같이, 대체값은 동적/스펙클 결함 검출 및 보정 동안 정적 결함을 보정하기 위해 사용될 수 있다. 부가적으로, 이전 픽셀이 미처리 프레임(278)(도 19)의 외부에 있다면, 그것의 값은 사용되지 않으며, 정적 결함은 동적 결함 보정 프로세스 동안 보정될 수 있다. 더욱이, 메모리 고려 사항 때문에, 정적 결함 테이블은 위치 엔트리들의 유한한 수를 저장할 수 있다. 예컨대, 일 실시예에서, 정적 결함 테이블은 이미지 데이터의 2개의 라인들마다 총 16개의 위치를 저장하도록 구성된 FIFO 대기열로서 구현될 수 있다. 그럼에도 불구하고, 정적 결함 테이블 내에 정의된 위치들은 (하기 논의된 동적 결함 검출 프로세스를 통해서라기보다는) 이전의 픽셀 대체값을 사용하여 보정될 것이다. 상기 언급한 것과 같이, 본 기법의 실시예들은 정적 결함 테이블을 시간에 따라 간헐적으로 업데이트하는 것을 또한 가능케 할 수 있다.
실시예들은 정적 결함 테이블이 온-칩 메모리 또는 오프-칩 메모리에 구현되는 것을 가능케 할 수 있다. 인식될 것과 같이, 온-칩 구현을 사용하는 것은 전체 칩 면적/크기를 증가시킬 수 있는 반면, 오프-칩 구현을 사용하는 것은 칩 면적/크기를 감소시킬 수 있으나, 메모리 대역폭 요건을 증가시킬 수 있다. 그러므로, 정적 결함 테이블은 구체적인 구현 요건들, 즉, 정적 결함 테이블 내에 저장될 픽셀들의 수에 따라 온-칩 또는 오프-칩으로 구현될 수 있다는 것을 이해해야 한다.
동적 결함 및 스펙클 검출 프로세스들은 상기 논의된 정적 결함 검출 프로세스에 대해 타임 시프트되었을 수 있다. 예컨대, 일 실시예에서, 동적 결함 및 스펙클 검출 프로세스는 정적 결함 검출 프로세스가 픽셀들의 2개의 스캔 라인들(예컨대, 행들)을 분석한 후 시작할 수 있다. 인식될 수 있는 바와 같이, 이는 동적/스펙클 검출이 일어나기 전에 정적 결함들을 식별하는 것 및 그들에 대응하는 대체값들을 결정하는 것을 허용한다. 예컨대, 동적/스펙클 검출 프로세스 동안, 현재 픽셀이 이전에 정적 결함인 것으로 표시되었다면, 정적 결함은 동적/스펙클 검출 연산들을 적용하기보다는 이전에 평가된 대체값을 사용하여 간단히 보정된다.
동적 결함 및 스펙클 검출에 관해서, 이러한 프로세스들은 순차적으로 또는 병렬로 일어날 수 있다. DPDC 로직(592)에 의해 수행되는 동적 결함 및 스펙클 검출 및 보정은 픽셀간 방향성 그레디언트를 사용한 적응형 에지 검출에 의존할 수 있다. 일 실시예에서, DPDC 로직(592)은 미처리 프레임(278)(도 19) 내의 동일한 컬러 컴포넌트를 갖는, 현재 픽셀의 8개의 직접 인접한 이웃들을 선택할 수 있다. 바꾸어 말하면, 하기 도 51에 도시된 것과 같이, 현재 픽셀들 및 그것의 8개의 직접 인접한 이웃들 P0, P1, P2, P3, P4, P5, P6, 및 P7은 3x3 범위를 형성할 수 있다.
그러나, 현재 픽셀 P의 위치에 따라, 픽셀간 그레디언트를 계산할 때 미처리 프레임(278) 외부의 픽셀들은 고려되지 않는다는 것을 유념해야 한다. 예컨대, 도 51에 도시된 "상부-좌측"(602)의 경우에 관해서, 현재 픽셀 P는 미처리 프레임(278)의 상부-좌측 코너에 있으므로, 미처리 프레임(278) 외부에 있는 인접한 픽셀들 P0, P1, P2, P3, 및 P5는 고려되지 않으며, 픽셀들 P4, P6, 및 P7만이 남는다(N=3). "상부"(604)의 경우, 현재 픽셀 P는 미처리 프레임(278)의 최상단 에지에 있으므로, 미처리 프레임(278) 외부에 있는 인접한 픽셀들 P0, P1, 및 P2는 고려되지 않으며, 픽셀들 P3, P4, P5, P6, 및 P7만이 남는다(N=5). 다음, "상부-우측"(606)의 경우, 현재 픽셀 P는 미처리 프레임(278)의 상부-우측 코너에 있으므로, 미처리 프레임(278) 외부에 있는 인접한 픽셀들 P0, P1, P2, P4, 및 P7은 고려되지 않으며, 픽셀들 P3, P5, 및 P6만이 남는다(N=3). "좌측"(608)의 경우, 현재 픽셀 P는 미처리 프레임(278)의 최좌측 에지에 있으므로, 미처리 프레임(278) 외부에 있는 인접한 픽셀들 P0, P3, 및 P5는 고려되지 않으며, 픽셀들 P1, P2, P4, P6, 및 P7만이 남는다(N=5).
"중심"(610)의 경우, 모든 픽셀들 P0-P7이 미처리 프레임(278) 내부에 위치하므로, 픽셀간 그레디언트를 결정하는데 사용된다(N=8). "우측"(612)의 경우, 현재 픽셀 P는 미처리 프레임(278)의 최우측 에지에 있으므로, 미처리 프레임(278) 외부에 있는 인접한 픽셀들 P2, P4, 및 P7는 고려되지 않으며, 픽셀들 P0, P1, P3, P5, 및 P6만이 남는다(N=5). 추가적으로, "하부-좌측"(614)의 경우, 현재 픽셀 P는 미처리 프레임(278)의 하부-좌측 코너에 있으므로, 미처리 프레임(278) 외부에 있는 인접한 픽셀들 P0, P3, P5, P6, 및 P7은 고려되지 않으며, 픽셀들 P1, P2, 및 P4만이 남는다(N=3). "하부"(616)의 경우, 현재 픽셀 P는 미처리 프레임(278)의 최하단 에지에 있으므로, 미처리 프레임(278) 외부에 있는 인접한 픽셀들 P5, P6, 및 P7은 고려되지 않으며, 픽셀들 P0, P1, P2, P3, 및 P4만이 남는다(N=5). 마지막으로, "하부-우측"(618)의 경우, 현재 픽셀 P는 미처리 프레임(278)의 하부-우측 코너에 있으므로, 미처리 프레임(278) 외부에 있는 인접한 픽셀들 P2, P4, P5, P6, 및 P7은 고려되지 않으며, 픽셀들 P0, P1, 및 P3만이 남는다(N=3).
그러므로, 현재 픽셀 P의 위치에 의존하여, 픽셀간 그레디언트를 결정하는데 사용된 픽셀들의 수는 3, 5, 또는 8일 수 있다. 예시된 실시예에서, 그림의 경계(예를 들어, 미처리 프레임(278)) 내의 각각의 인접한 픽셀(k=0 내지 7)에 대해, 픽셀간 그레디언트는 다음과 같이 계산될 수 있다.
[수학식 19]
Figure 112011064114822-pat00039
추가적으로, 하기 수학식들에 의해 보여지는 것과 같이, 평균 그레디언트 Gav는 현재 픽셀과 그 주위 픽셀들의 평균 Pav 간의 차이로서 계산될 수 있다.
[수학식 20a]
Figure 112011064114822-pat00040
[수학식 20b]
Figure 112011064114822-pat00041
픽셀간 그레디언트 값들(수학식 19)은 동적 결함의 경우를 결정하기 위해 사용될 수 있으며, 하기 더 논의된 것과 같이 인접한 픽셀들의 평균(수학식 20a 및 20b)은 스펙클의 경우를 식별하기 위해 사용될 수 있다.
일 실시예에서, 다음과 같이, 동적 결함 검출은 DPDC 로직(592)에 의해 수행될 수 있다. 먼저, 일정한 수의 그레디언트들 Gk가, 변수 dynTh(다이내믹 결함 임계값)로 표시된 특정한 임계값 이하라면, 픽셀은 결함인 것으로 가정된다. 그러므로, 각각의 픽셀에 대해, 그림 경계 내에 있는 인접한 픽셀들에 대한 임계값 dynTh 이하의 그레디언트들의 수의 카운트(C)가 누적된다. 임계값 dynTh는 주위 픽셀들에 존재하는 "활동"에 종속하는 고정된 임계값 컴포넌트와 동적 임계값 컴포넌트의 조합일 수 있다. 예컨대, 일 실시예에서, dynTh에 대한 동적 임계값 컴포넌트는, 하기 예시된 것과 같이 평균 픽셀 값들 Pav(수학식 20a)와 각각의 인접한 픽셀 사이의 차이의 절대값을 합하는 것에 기초하여 고주파수 컴포넌트 값 Phf를 계산함으로써 결정될 수 있다.
[수학식 20c]
Figure 112011064114822-pat00042
픽셀이 이미지 코너에 위치하는 경우(N=3) 또는 이미지 에지에 위치하는 경우(N=5), Phf는 각각 8/3 또는 8/5로 곱해질 수 있다. 이해할 수 있는 것과 같이, 이는 고주파수 컴포넌트 Phf가 8개의 인접한 픽셀들에 기초하여 표준화되는 것을 보증한다(N=8).
Phf가 결정되면, 동적 결함 검출 임계값 dynTh는 하기 보여진 것과 같이 계산될 수 있다.
[수학식 21]
Figure 112011064114822-pat00043
여기서, dynTh1은 클리핑된 임계값 컴포넌트를 나타내며, dynTh2는 정적인 임계값 컴포넌트를 나타내며, 수학식 21의 Phf를 위한 승수(multiplier)이다. 각각의 컬러 컴포넌트에 대해 서로 다른 클리핑 임계값 컴포넌트 dynTh1이 제공될 수 있으나, 동일한 컬러의 각각의 픽셀에 대해 dynTh1은 동일하다. 단지 예로서, dynTh1은 적어도 이미지의 잡음의 편차보다 크도록 설정될 수 있다.
동적 임계값 컴포넌트 dynTh2는 이미지의 일부 특성에 기초하여 결정될 수 있다. 예컨대, 일 실시예에서, dynTh2는 노출 및/또는 센서 통합 시간과 관련된, 저장된 경험적인 데이터를 사용하여 결정될 수 있다. 경험적인 데이터는 이미지 센서(예컨대, 90)의 교정 동안 결정될 수 있으며, 다수의 데이터 지점들의 수들 중 각각과 함께 dynTh2를 위해 선택될 수 있는 동적 임계값 컴포넌트 값들을 수반할 수 있다. 그러므로, ISP 프런트-엔드 로직(80)의 통계 처리 동안 결정될 수 있는 현재의 노출 및/또는 센서 통합 시간 값에 기초하여, 현재의 노출 및/또는 센서 통합 시간 값에 대응하는 저장된 경험적인 데이터로부터 동적 임계값 컴포넌트 값을 선택함으로써 dynTh2가 결정될 수 있다. 추가적으로, 현재의 노출 및/또는 센서 통합 시간 값이 경험적인 데이터 지점들 중 하나와 직접 대응하지 않는다면, dynTh2는 현재의 노출 및/또는 센서 통합 시간 값이 사이에 있는 데이터 지점들과 연관된 동적 임계값 컴포넌트 값들을 보간함으로써 결정될 수 있다. 더욱이, 고정 임계값 컴포넌트 dynTh1과 유사하게, dynTh2는 각각의 컬러 컴포넌트에 대해 다른 값들을 가질 수 있다. 그러므로, 각각의 컬러 컴포넌트(예컨대, R, B, Gr, Gb)에 대한 합성 임계값 dynTh는 다를 수 있다.
상기 언급한 것과 같이, 각각의 픽셀에 대해, 그림 경계 내의 인접한 픽셀들에 대한 임계값 dynTh 이하의 그레디언트들의 수의 카운트 C가 결정된다. 예컨대, 미처리 프레임(278) 내의 각각의 인접한 픽셀에 대해, 임계값 dynTh 이하의 그레디언트 Gk의 누적된 카운트 C는 다음과 같이 계산될 수 있다.
[수학식 22]
Figure 112011064114822-pat00044
다음, 누적된 카운트 C가, 변수 dynMaxC로 표시된 최대 카운트 이하인 것으로 결정되면, 그 픽셀은 동적 결함인 것으로 생각할 수 있다. 일 실시예에서, N=3(코너), N=5(에지), 및 N=8 조건들에 대한 dynMaxC의 서로 다른 값들이 제공될 수 있다. 이 로직은 아래에 표현되었다.
[수학식 23]
Figure 112011064114822-pat00045
상기 언급한 것과 같이, 결함 픽셀들의 위치는 정적 결함 테이블에 저장될 수 있다. 일부 실시예들에서, 현재 픽셀에 대한 동적 결함 검출 동안 계산된 최소 그레디언트 값(min(Gk))이 저장되고, (더 큰 최소 그레디언트 값이 결함의 더 큰 "심각도(severity)"를 나타내며, 덜 심각한 결함들이 보정되기 전에 픽셀 보정 도중 보정되어야 할 것으로 나타내도록) 결함 픽셀들을 분류하기 위해 사용될 수 있다. 일 실시예에서, 픽셀은 정적 결함 테이블에 저장되기 전에, 시간에 따라 결함 픽셀들의 위치를 필터링하는 것과 같이, 다수의 이미징 프레임들에 걸쳐 처리되어야 할 수 있다. 후속 실시예에서, 동일한 위치에서 결함이 특정한 수의 연속적인 이미지들에서 나타낼 때에만 결함 픽셀의 위치가 정적 결함 테이블에 저장될 수 있다. 더욱이, 일부 실시예들에서, 정적 결함 테이블은 최소 그레디언트 값들에 기초하여 저장된 결함 픽셀 위치들을 분류하도록 구성될 수 있다. 예컨대, 가장 큰 최저 그레디언트 값은 더 큰 "심각도"의 결함을 나타낼 수 있다. 이러한 방식으로 위치들을 정리함으로써, 가장 심각한 또는 중요한 결함들이 먼저 보정되도록 정적 결함 보정의 우선 순위가 설정될 수 있다. 추가적으로, 정적 결함 테이블은, 새로 검출된 정적 결함들을 포함하고, 결함들의 대응하는 최소 그레디언트 값들에 기초하여 결함들을 정리하도록 시간에 따라 업데이트될 수 있다.
상기 설명된 동적 결함 검출 프로세스와 동시에 일어날 수 있는 스펙클 검출은, Gav(수학식 20b)가 스펙클 검출 임계값 spkTh보다 큰지를 결정함으로써 수행될 수 있다. 동적 결함 임계값 dynTh와 유사하게, 스펙클 임계값 spkTh는, 각각 spkTh1 및 spkTh2로 나타내어진, 고정된 및 동적 컴포넌트들을 또한 포함할 수 있다. 일반적으로, 문자, 나뭇잎, 일정한 직물 패턴 등과 같이 이미지에서 다른 영역들보다 더 빽빽한 질감의 영역들에서 스펙클을 잘못 검출하는 것을 방지하기 위해, 고정된 및 동적 컴포넌트들 spkTh1 및 spkTh2는 dynTh1 및 dynTh2 값들에 비해 더 "적극적으로" 설정될 수 있다. 따라서, 일 실시예에서, 동적 스펙클 임계값 컴포넌트 spkTh2는 이미지의 높은 질감 영역들에 대해 증가될 수 있으며, "단조로운" 또는 더 균일한 영역들에 대해 감소될 수 있다. 스펙클 검출 임계값 spkTh는 아래 보여진 것과 같이 계산될 수 있다.
[수학식 24]
Figure 112011064114822-pat00046
여기서, spkTh1은 고정된 임계값 컴포넌트를 나타내며, spkTh2는 동적 임계값 컴포넌트를 나타낸다. 스펙클의 검출은 다음 수학식에 따라 결정될 수 있다.
[수학식 25]
Figure 112011064114822-pat00047
결함 픽셀들이 식별되면, DPDC 로직(592)은 검출된 결함들의 종류에 기초하여 픽셀 보정 연산들을 적용할 수 있다. 예컨대, 결함 픽셀이 정적 결함으로 식별되었다면, 상기 논의된 것과 같이 픽셀은 저장된 대체값(예컨대, 동일한 컬러 컴포넌트의 이전 픽셀의 값)으로 대체된다. 픽셀이 동적 결함 또는 스펙클로 식별된다면, 다음과 같이 픽셀 보정이 수행될 수 있다. 먼저, 아래 보여진 것과 같이, 중심 픽셀, 및 제1 및 제2 인접 픽셀들 사이의 차이의 절대값의 합(예컨대, 수학식 19의 Gk의 계산)으로서 그레디언트가 네 방향, 수평(h) 방향, 수직(v) 방향, 양의 대각선(dp) 방향, 및 음의 대각선(dn) 방향에 대해 계산된다.
[수학식 26]
Figure 112011064114822-pat00048
[수학식 27]
Figure 112011064114822-pat00049
[수학식 28]
Figure 112011064114822-pat00050
[수학식 29]
Figure 112011064114822-pat00051
다음, 보정 픽셀값 Pc는 가장 작은 값을 갖는 방향 그레디언트 Gh, Gv, Gdp 및 Gdn과 연관된 2개의 이웃 픽셀들의 선형 보간을 통해 결정될 수 있다. 예컨대, 일 실시예에서, 아래의 로직 명령문은 Pc의 계산을 나타낼 수 있다.
[수학식 30]
Figure 112011064114822-pat00052
DPDC 로직(592)에 의해 구현된 픽셀 보정 기법들은 또한 경계 조건들에서의 예외를 제공한다. 예를 들어, 선택된 보간 방향과 연관된 2개의 이웃하는 픽셀들 중 하나의 픽셀이 미처리 프레임의 외부에 있으면, 미처리 프레임 내의 이웃 픽셀의 값이 대신에 대체된다. 따라서, 이 기법을 사용하여, 보정 픽셀값이 미처리 프레임 내의 이웃 픽셀의 값과 동등해질 것이다.
ISP 파이프 처리 중에 DPDC 로직(592)에 의해 적용된 결함 픽셀 검출/보정 기법들은 ISP 프런트-엔드 로직(80)에서의 DPDC 로직(460)에 비해 더 강건하다는 점을 주목해야 한다. 상기 실시예에서 논한 바와 같이, DPDC 로직(460)은 수평 방향에서만의 이웃하는 픽셀들을 이용하는 동적 결함 검출 및 보정만을 수행하지만, DPDC 로직(592)은 수평 및 수직 방향 양쪽에서의 이웃하는 픽셀들을 이용하여, 정적 결함, 동적 결함뿐만 아니라 스펙클의 검출 및 보정도 제공한다.
이해되는 바와 같이, 정적 결함 테이블을 이용하는 결함 픽셀들의 위치의 저장은 낮은 메모리 요구사항으로 결함 픽셀들의 일시적인 필터링을 제공할 수 있다. 예를 들어, 전체 이미지들을 저장하고 일시적인 필터링을 적용하여 시간에 따른 정적 결함들을 식별하는 다수의 종래 기법들과 비교하여, 본 발명의 실시예들은 결함 픽셀들의 위치만을 저장하고, 이것은 통상 전제 이미지 프레임을 저장하기 위해 필요한 메모리의 일부만을 이용하여 이루어질 수 있다. 또한, 상기에서 논한 바와 같이, 최소 그레디언트 값(min(Gk))을 저장함으로써, 결함 픽셀들이 보정되는 위치들의 순서에 우선 순위를 매기는(예컨대, 가장 알아볼 수 있는 것들부터 시작함) 정적 결함 테이블을 효과적으로 이용하는 것이 가능하다.
추가로, 동적 컴포넌트(예컨대 dynTh2 및 spkTh2)를 포함하는 임계값들을 사용하는 것은, 이미지의 하이 텍스처 영역(예컨대 텍스트, 나뭇잎, 소정의 직물 패턴 등)을 처리할 때 종래의 이미지 처리 시스템에서 종종 겪게 되는 문제인 잘못된 결함 검출을 줄이는데 도움을 줄 수 있다. 또한, 픽셀 보정을 위한 방향성 그레디언트들(예컨대, h, v, dp, dn)을 사용하는 것은, 잘못된 결함 검출이 발생할 때 시각적 아티팩트들의 출현을 감소시킬 수 있다. 예를 들어, 최소 그레디언트 방향으로 필터링하는 것은 많은 경우에 있어서, 심지어 잘못된 검출에서도, 허용가능한 결과들을 여전히 산출하는 보정을 가져올 수 있다. 추가로, 그레디언트 계산에서 현재 픽셀 P를 포함하는 것은, 특히 핫 픽셀(hot pixel)들의 경우에 그레디언트 방향의 정확성을 향상시킬 수 있다.
DPDC 로직(592)에 의해 구현되는 전술한 결함 픽셀 검출 및 보정 기법들은 도 52 내지 도 54에 제공된 일련의 흐름도들에 의해 요약될 수 있다. 예를 들어, 도 52를 참조하면, 정적 결함들을 검출하기 위한 처리(620)가 예시된다. 처음에 단계 622에서 시작하여, 입력 픽셀 P가 제1 시간 T0에서 수신된다. 다음으로, 단계 624에서, 픽셀 P의 위치는 정적 결함 테이블에 저장된 값들과 비교된다. 결정 로직(626)은 픽셀 P의 위치가 정적 결함 테이블에서 발견되는지의 여부를 결정한다. P의 위치가 정적 결함 테이블 내에 있으면, 처리(620)는 단계 628로 계속되고, 여기서 픽셀 P는 정적 결함으로서 마킹되고 대체 값이 결정된다. 상기에서 논한 바와 같이, 대체 값은 동일 컬러 컴포넌트의 (스캔 순서에서의) 이전 픽셀의 값에 기초하여 결정될 수 있다. 처리(620)는 단계 630으로 계속되고, 여기서 처리(620)는 도 53에 도시된 동적 및 스펙클 결함 처리(640)로 진행한다. 추가로, 결정 로직(626)에서, 픽셀 P의 위치가 정적 결함 테이블 내에 있지 않다고 결정되면, 처리(620)는 단계 628을 수행하지 않고 단계 630으로 진행한다.
도 53으로 계속하여, 단계 642에 의해 도시된 바와 같이, 동적 결함 또는 스펙클이 존재하는지의 여부를 결정하는 처리를 위해, 입력 픽셀 P가 시간 T1에서 수신된다. 시간 T1은 도 52의 정적 결함 검출 처리(620)에 대한 시간-시프트를 나타낼 수 있다. 상기에서 논한 바와 같이, 동적 결함 및 스펙클 검출 처리는 정적 결함 검출 처리가 픽셀들의 2 스캔 라인들(예컨대, 행들)을 분석한 후에 시작될 수 있고, 따라서, 정적 결함들, 및 동적/스펙클 검출이 일어나기 전에 결정될 개별적인 대체 값들의 식별을 위한 시간을 허용한다.
결정 로직(644)은 입력 픽셀 P가 (예컨대, 처리(620)의 단계 628에 의해) 이전에 정적 결함으로서 마킹되었는지를 결정한다. P가 정적 결함으로서 마킹되었으면, 처리(640)는 도 54에 도시된 픽셀 보정 처리로 계속되어, 도 53에 도시된 나머지 단계들을 우회할 수 있다. 결정 로직(644)이 입력 픽셀 P가 정적 결함이 아니라고 결정하면, 처리는 단계 646으로 계속되고, 동적 결함 및 스펙클 처리에 사용될 수 있는 이웃하는 픽셀들이 식별된다. 예를 들어, 도 51에 도시된 전술한 실시예에 따르면, 이웃하는 픽셀들은 픽셀 P의 직접적인 8개의 이웃들(예를 들어, P0-P7)을 포함할 수 있고, 따라서, 3x3 픽셀 영역을 형성한다. 다음으로, 단계 648에서, 상기 수학식 19에서 설명된 바와 같이, 픽셀-픽셀 그레디언트들은 미처리 프레임(278) 내의 각각의 이웃하는 픽셀에 대하여 계산된다. 추가로, 평균 그레디언트(Gav)가, 수학식 20a 및 20b에 도시된 바와 같이, 현재 픽셀과 그 주변 픽셀들의 평균 사이의 차이로서 계산될 수 있다.
그 후, 처리(640)는 동적 결함 검출을 위한 단계 650과 스펙클 검출을 위한 결정 로직(658)으로 분기한다. 전술한 바와 같이, 동적 결함 검출 및 스펙클 검출은, 일부 실시예들에서, 병렬로 일어날 수 있다. 단계 650에서, 임계값 dynTh 이하인 그레디언트들의 수의 카운트 C가 결정된다. 전술한 바와 같이, 임계값 dynTh는 고정 및 동적 컴포넌트들을 포함할 수 있고, 일 실시예에서, 상기 수학식 21에 따라 결정될 수 있다. C가 최대 카운트 dynMaxC 이하이면, 처리(640)는 단계 656으로 계속되고, 현재 픽셀은 동적 결함으로서 마킹된다. 그 이후, 처리(640)는 도 54에 도시된 픽셀 보정 처리로 계속될 수 있고, 이하에서 상세하게 설명될 것이다.
단계 648 이후의 브랜치로 돌아가면, 스펙클 검출을 위해, 결정 로직(658)은 평균 그레디언트 Gav가 스펙클 검출 임계값 spkTh보다 큰지의 여부를 결정하고, 이 임계값은 또한 고정 및 동적 컴포넌트를 포함할 수 있다. Gav가 임계값 spkTh보다 크다면, 그 후 픽셀 P는 단계 660에서 스펙클을 포함하는 것으로 마킹되고, 그 이후, 처리(640)는 스펙클된 픽셀의 보정을 위해 도 54로 계속된다. 또한, 결정 로직 블록들(652 및 658) 양쪽의 출력이 "아니오"라면, 이것은 픽셀 P가 동적 결함, 스펙클, 또는 심지어 정적 결함을 갖지 않는다(결정 로직 644)는 것을 나타낸다. 따라서, 결정 로직(652 및 658)의 출력들이 모두 "아니오"라면, 처리(640)는 단계 654에서 끝날 수 있고, 결함들(예컨대, 정적, 동적 또는 스펙클)이 검출되지 않을 때, 픽셀 P가 변경되지 않고 통과된다.
도 54로 계속하여, 전술한 기법들에 따른 픽셀 보정 처리(670)가 제공된다. 단계 672에서, 입력 픽셀 P가 도 53의 처리(640)로부터 수신된다. 픽셀 P는 단계 644(정적 결함)로부터 또는 단계 656(동적 결함) 및 660(스펙클 결함)으로부터, 처리(670)에 의해 수신될 수 있다는 것에 주목한다. 그 다음에, 결정 로직(674)은, 픽셀 P가 정적 결함으로서 마킹되는지를 결정한다. 픽셀 P가 정적 결함이면, 처리(670)는 계속되어 단계 676에서 종료하고, 정적 결함이 단계 628(도 52)에서 결정된 대체 값을 이용하여 보정된다.
픽셀 P가 정적 결함으로서 식별되지 않으면, 처리(670)는 결정 로직(674)으로부터 단계 678로 계속되고, 방향성 그레디언트들이 계산된다. 예를 들어, 수학식 26-29를 참조하여 상기에서 논한 바와 같이, 그레디언트들은 중심 픽셀과 4방향(h, v, dp 및 dn)에서의 제1 및 제2 이웃하는 픽셀들 사이의 절대 차의 합으로서 계산될 수 있다. 다음으로, 단계 680에서, 가장 작은 값을 갖는 방향성 그레디언트가 식별되고, 그 이후에 결정 로직(682)은 최소 그레디언트와 연관된 2개의 이웃하는 픽셀들 중 하나의 픽셀이 이미지 프레임(예컨대, 미처리 프레임(278))의 외부에 위치하는지의 여부를 액세스한다. 이웃하는 픽셀들 양쪽이 이미지 프레임 내에 있으면, 처리(670)는 단계 684로 계속되고, 수학식 30에 의해 예시되는 바와 같이, 2개의 이웃하는 픽셀들의 값들에 선형 보간을 적용함으로써 픽셀 보정값(PC)이 결정된다. 그 이후에, 입력 픽셀 P는 단계 690에 도시된 바와 같이, 보간된 픽셀 보정값 PC를 이용하여 보정될 수 있다.
결정 로직(682)으로 돌아가서, 2개의 이웃하는 픽셀들 중 하나의 픽셀이 이미지 프레임(예컨대, 미처리 프레임(165))의 외부에 위치한다고 결정되면, 외부 픽셀(Pout)의 값을 이용하는 대신에, DPDC 로직(592)은, 단계 686에 도시된 바와 같이, Pout의 값을 이미지 프레임 내부에 있는 다른 이웃하는 픽셀(Pin)의 값으로 대체할 수 있다. 그 후에, 단계(688)에서, 픽셀 정정 값(Pc)은 Pin의 값들 및 Pout의 치환된 값을 보간함으로써 결정된다. 즉, 이 예에서, Pc는 Pin의 값과 동일할 수 있다. 단계(690)에서 결론지으면, 픽셀 P는 값 Pc를 이용하여 정정된다. 계속하기 전에, DPDC 로직(592)을 참조하여 본원에 개시되는 특정 결함 픽셀 검출 및 정정 프로세스들이 본 기법의 단 하나의 가능한 실시예를 반영하도록 의도된다는 것이 이해되어야 한다. 게다가, 설계 및/또는 비용 제한들에 따라, 많은 변경이 가능하고, 특징들이 추가되거나 또는 제거되어 결함 검출/정정 로직의 전체적인 복잡성 및 강건성이 ISP 프런트 엔드 블록(80)에 구현된 더 단순한 검출/정정 로직(460)과 DPDC 로직(592)을 참조하여 여기에 설명되는 결함 검출/정정 로직 사이에 있게 된다.
도 50을 참조하면, 정정된 픽셀 데이터는 DPDC 로직(592)으로부터 출력되고, 그 후 추가 처리를 위해 잡음 감소 로직(594)에 의해 수신된다. 일 실시예에서, 잡음 감소 로직(594)은 디테일들 및 텍스처들을 유지하면서 이미지 데이터의 잡음을 감소시키는 2차원 에지-적응 저역 통과 필터링을 구현하도록 구성될 수 있다. 에지-적응 임계값들은 현재 조명 수준에 기초하여 (예를 들면, 제어 로직(84)에 의해) 설정될 수 있으며, 이에 따라 필터링이 낮은 광 조건들 하에서 강해질 수 있다. 또한, dynTh 및 spkTh 값들의 결정에 관하여 간략히 전술한 바와 같이, 잡음 편차는 소정의 센서에 대해 앞서 결정될 수 있으며, 이에 따라 잡음 감소 임계값들은 잡음 편차 바로 위에 설정되어, 잡음 감소 처리 동안, 장면의 텍스처들 및 디테일들에 현저한 영향을 주지 않고 잡음이 감소될 수 있게 된다(예를 들면, 오검출(false detection)들의 회피/감소). Bayer 컬러 필터 구현을 가정하면, 잡음 감소 회로(594)는 분리가능한 7-탭 수평 필터 및 5-탭 수직 필터를 독립적으로 이용하여 각각의 컬러 성분 Gr, R, B 및 Gb를 처리할 수 있다. 일 실시예에서, 잡음 감소 프로세스는 녹색 성분들(Gb 및 Gr) 상의 불균일성을 정정함으로써 수행될 수 있고, 그 후 수평 필터링 및 수직 필터링이 수행된다.
녹색 불균일성(Green non-uniformity: GNU)은 일반적으로, 균일하게 조명된 평면이 주어진 경우의 Gr과 Gb 픽셀들 사이의 근소한 밝기 차이에 의해 특징지어진다. 이러한 불균일성을 정정하거나 또는 보상하지 않으면, 특정 아티팩트들, 예컨대 "미로(maze)" 아티팩트가 디모자이크 후에 풀 컬러 이미지에 나타날 수 있다. 녹색 불균일성 프로세스 중에, 미처리 Bayer 이미지 데이터의 각 녹색 픽셀에 대하여, 현재의 녹색 픽셀(G1)과 현재 픽셀의 오른쪽 및 아래에 있는 녹색 픽셀(G2) 사이의 절대 차이가 GNU 정정 임계값(gnuTh)보다 작은지를 판정하는 단계를 포함할 수 있다. 도 55는 Bayer 패턴의 2×2 영역 내의 G1 및 G2 픽셀들의 위치를 나타낸다. 도시된 바와 같이, G1의 경계에 있는 픽셀들의 컬러는 현재 녹색 픽셀이 Gb 또는 Gr 픽셀인지에 따른다. 예를 들면, G1이 Gr이고, G2가 Gb이면, G1의 오른쪽의 픽셀은 R(적색)이고, G1 아래의 픽셀은 B(청색)이다. 대안적으로, G1이 Gb이고 G2가 Gr인 경우, G1의 오른쪽의 픽셀은 B인 반면, G1 아래의 픽셀은 R이다. G1과 G2 사이의 절대 차이가 GNU 정정 임계값보다 작으면, 현재 녹색 픽셀 G1은, 하기 로직에 의해 도시되는 바와 같이, G1 및 G2의 평균에 의해 교체될 수 있다.
[수학식 31]
Figure 112011064114822-pat00053
알 수 있는 바와 같이, 이러한 방식의 녹색 불균일성 정정의 적용은 G1 및 G2 픽셀들이 에지들에 걸쳐 평균되는 것을 방지하는데 도움을 줄 수 있어, 선명도(sharpness)를 개선 및/또는 보존하게 한다.
수평 필터링은 녹색 불균일성 정정에 후속하여 적용되고, 일 실시예에서, 7-탭 수평 필터를 제공할 수 있다. 각 필터 탭의 에지에 걸친 그레디언트들이 계산되며, 그것이 수평 에지 임계값(horizontal edge threshold: horzTh)을 넘는 경우, 필터 탭은, 하기에 예시되는 바와 같이, 중심 픽셀에 접힌다. 수평 필터는 각 컬러 성분(R, B, Gr, Gb)에 대해 독립적으로 이미지 데이터를 처리할 수 있고, 입력 값들로서 필터링되지 않은 값들을 이용할 수 있다.
예시로써, 도 56은 수평 픽셀들 P0 내지 P6의 세트의 그래픽 표시(graphical depiction)를 도시하며, 중심 탭은 P3에 위치한다. 도 56에 도시된 픽셀들에 기초하여, 각 필터 탭에 대한 에지 그레디언트들이 하기와 같이 산출될 수 있다.
[수학식 32]
Figure 112011064114822-pat00054
[수학식 33]
Figure 112011064114822-pat00055
[수학식 34]
Figure 112011064114822-pat00056
[수학식 35]
Figure 112011064114822-pat00057
[수학식 36]
Figure 112011064114822-pat00058
[수학식 37]
Figure 112011064114822-pat00059
에지 그레디언트들 Eh0-Eh5는 그 후 하기 수학식 38에 도시된 공식을 이용하여 수평 필터링 출력 Phorz를 결정하도록 수평 필터 성분에 의해 이용될 수 있다.
[수학식 38]
Figure 112011064114822-pat00060
여기서, horzTh[c]는 각 컬러 컴포넌트 c(예를 들면, R, B, Gr, Gb)에 대한 수평 에지 임계값이고, C0-C6는, 각각, 픽셀들 P0-P6에 대응하는 필터 탭 상수들이다. 수평 필터 출력 Phorz는 중심 픽셀 P3 위치에 적용될 수 있다. 일 실시예에서, 필터 탭 상수들 C0-C6은 3 정수 비트 및 13 소수 비트(부동 소수점으로 3.13)를 갖는 16 비트의 2의 보수 값들이다. 또한, 필터 탭 상수들 C0-C6이 중심 픽셀 P3에 관하여 대칭일 필요는 없다는 것에 유의해야 한다.
수직 필터링이 또한 녹색 불균일성 정정 및 수평 필터링 프로세스들에 후속하여 잡음 감소 로직(594)에 의해 적용된다. 일 실시예에서, 수직 필터 동작은, 도 57에 도시된 바와 같이, 5-탭 필터를 제공할 수 있으며, 수직 필터의 중심 탭은 P2에 위치한다. 수직 필터링 프로세스는 전술한 수평 필터링 프로세스와 유사한 방식으로 일어날 수 있다. 예를 들면, 각 필터 탭의 에지에 걸친 그레디언트들이 계산되고, 그것이 수직 에지 임계값(vertical edge threshold: vertTh)을 넘는 경우, 필터 탭이 중심 픽셀 P2에 접힌다. 수직 필터는 각 컬러 성분(R, B, Gr, Gb)에 대해 독립적으로 이미지 데이터를 처리할 수 있고, 입력 값들로서 필터링되지 않은 값들을 이용할 수 있다.
도 57에 도시된 픽셀들에 기초하여, 각 필터 탭에 대한 수직 에지 그레디언트들이 하기와 같이 산출될 수 있다.
[수학식 39]
Figure 112011064114822-pat00061
[수학식 40]
Figure 112011064114822-pat00062
[수학식 41]
Figure 112011064114822-pat00063
[수학식 42]
Figure 112011064114822-pat00064
에지 그레디언트들 Ev0-Ev5는 그 후 하기 수학식 43에 나타낸 공식을 이용하여 수직 필터링 출력 Pvert를 결정하도록 수직 필터에 의해 이용될 수 있다.
[수학식 43]
Figure 112011064114822-pat00065
여기서, vertTh[c]는 각 컬러 컴포넌트 c(예를 들면, R, B, Gr, Gb)에 대한 수직 에지 임계값이고, C0-C4는, 각각, 도 57의 픽셀들 P0-P4에 대응하는 필터 탭 상수들이다. 수직 필터 출력 Pvert는 중심 픽셀 P2 위치에 적용될 수 있다. 일 실시예에서, 필터 탭 상수들 C0-C4는 3 정수 비트 및 13 소수 비트(부동 소수점으로 3.13)를 갖는 16 비트의 2의 보수 값들이다. 또한, 필터 탭 상수들 C0-C4가 중심 픽셀 P2에 관하여 대칭일 필요는 없다는 것에 유의해야 한다.
추가적으로, 경계 조건들에 관하여, 이웃하는 픽셀들이 미처리 프레임(278)(도 19)의 외부에 있는 경우, 경계 밖(out-of-bound) 픽셀들의 값들은 미처리 프레임의 에지에서의 동일한 컬러 픽셀의 값으로 복제된다. 이 컨벤션은 수평 및 수직 필터링 동작들 모두에 대해 구현될 수 있다. 예로서, 도 56을 다시 참조하여, 수평 필터링의 경우에, 픽셀(P2)가 미처리 프레임의 가장 좌측 에지에서의 에지 픽셀이면, 픽셀들(P0, P1)은 미처리 프레임의 외부에 있으며, 픽셀들(P0, P1)의 값들은 수평 필터링에 대한 픽셀(P2)의 값으로 대체된다.
도 50에 도시된 미처리 처리 로직(562)의 블록도를 다시 참조하면, 잡음 감소 로직(594)의 출력은 후속으로 처리를 위해 렌즈 쉐이딩 보정(LSC) 로직(596)에 보내진다. 전술된 바와 같이, 렌즈 쉐이딩 보정 기술은 광도에서의 드롭-오프를 보상하도록 픽셀당 기반으로 적절한 이득을 적용하는 단계를 포함할 수 있으며, 이는 마이크로렌즈 어레이 및 컬러 어레이 필터의 오정렬, 제조에서의 결함, 렌즈의 지오메트릭 옵틱스의 결과 등일 수 있다. 또한, 일부 렌즈들에서의 적외선(IR) 필터는 드롭-오프가 광에 의존적이게 할 수 있으며, 따라서 렌즈 쉐이딩 이득들은 검출된 광원에 따라 적용될 수 있다.
도시된 실시예에서, ISP 파이프(82)의 LSC 로직(596)은 유사한 방법으로 구현될 수 있으며, 도 40 내지 48을 참조하여 전술된 ISP 프런트-엔드 블록(80)의 LSC 로직(464)과 일반적으로 동일한 기능을 제공한다. 따라서, 중복을 피하기 위해, 현재 도시된 실시예의 LSC 로직(596)은 LSC 로직(460)과 일반적으로 동일한 방식으로 동작하도록 구성되고, 따라서, 전술된 렌즈 쉐이딩 보정 기술의 기재는 여기서 반복되지 않을 것이다. 그러나, 일반적으로 요약을 위해, LSC 로직(596)은 현재의 픽셀에 적용될 이득을 결정하도록 미처리 픽셀 데이터 스트림의 컬러 컴포넌트를 각각이 처리할 수 있다. 전술된 실시예들에 따라, 렌즈 쉐이딩 보정 이득은 이미지 프레임에 걸쳐 분포된 이득 그리드 포인트들의 정의된 세트에 기초하여 결정될 수 있으며, 여기서 각각의 그리드 포인트 사이의 간격은 다수의 픽셀들(예를 들면, 8 픽셀, 16 픽셀 등)에 의해 정의된다. 현재 픽셀의 위치가 그리드 포인트에 대응하면, 그 그리드 포인트와 연관된 이득 값이 현재 픽셀에 적용된다. 그러나, 현재 픽셀의 위치가 그리드 포인트들(예를 들면, 도 43의 G0, G1, G2, G3) 사이에 있다면, LSC 이득 값은 현재의 픽셀이 위치된 것 사이의 그리드 포인트들의 보간에 의해 계산될 수 있다(수학식 13a 및 13b). 이 프로세스는 도 44의 프로세스(528)로 도시되었다. 또한, 도 42에 대하여 언급한 바와 같이, 일부 실시예들에서, 그리드 포인트들은 균일하지 않게(예를 들면, 대수적으로) 분포되어, 통상적으로 렌즈 쉐이딩 왜곡이 더 눈에 띄게, 그리드 포인트들은 LSC 구역(504)의 중심에 덜 집중되지만, LSC 구역(504)의 코너들을 향해 집중된다.
추가적으로, 도 47 및 48에 전술된 바와 같이, LSC 로직(596)은 그리드 이득 값들로 래디얼(radial) 이득 컴포넌트를 적용할 수도 있다. 래디얼 이득 컴포넌트는 이미지의 중심으로부터 현재 픽셀의 거리에 기초하여 결정될 수 있다(수학식 14 내지 16). 언급된 바와 같이, 래디얼 이득을 사용하는 것은 모든 컬러 컴포넌트에 대해 단일 공통 이득 그리드의 사용을 가능하게 하고, 이는 각각의 컬러 컴포넌트에 대해 개별 이득 그리드들을 저장하기 위해 요구되는 총 저장 공간을 크게 감소시킬 수 있다. 이러한 그리드 이득 데이터의 감소는 구현 비용을 감소시킬 수 있을 것이고, 그리드 이득 데이터 테이블은 이미지 처리 하드웨어에서의 메모리 또는 칩 구역의 큰 부분을 설명할 것이다.
다음으로, 도 50의 미처리 처리 로직 블록도(562)를 다시 참조하면, LSC 로직(596)의 출력은 제2 이득, 오프셋, 클램프(GOC) 블록(598)에 전달된다. GOC 로직(598)은 (로직 블록(600)에 의해) 디모자이크하기에 앞서 적용될 수 있고 LSC 로직(596)의 출력에 자동-화이트 밸런스를 수행하는데 사용될 수 있다. 도시된 실시예에서, GOC 로직(598)은 GOC 로직(590)(및 BLC 로직(462))과 동일하게 구현될 수 있다. 따라서, 상기 수학식 11에 따라, GOC 로직(598)에 의해 수신된 입력은 부호있는 값에 의한 제1 오프셋이고 이득에 의해 곱해진다. 결과 값은 수학식 12에 따라 최소 및 최대 범위로 클리핑된다.
그러므로, GOC 로직(598)의 출력은 미처리 Bayer 입력 데이터에 기초하여 풀 컬러(RGB) 이미지를 제공하는 처리를 위해 로직(600)을 디모자이크하도록 전달된다. 이해되는 바와 같이, Bayer 필터와 같은, 컬러 필터 어레이를 이용하는 이미지 센서의 미처리 출력은 각각의 픽셀이 단일 컬러 컴포넌트만을 획득하도록 필터링된다는 의미에서 "불완전"하다. 따라서, 개별 픽셀에 대해 수집된 데이터만으로는 컬러를 결정하기에 불충분하다. 따라서, 각각의 픽셀에 대한 누락 컬러 데이터를 보간함으로써 미처리 Bayer 데이터로부터 풀 컬러 이미지를 생성하는데 디모자이크 기술들이 사용될 수 있다.
이제 도 58을 참조하여, 디모자이크하는 것에 대한 일반적 오버뷰를 제공하는 그래픽 프로세스 플로우(692)는 도시된 풀 컬러 RGB를 제공하도록 미처리 Bayer 이미지 패턴(694)에 적용될 수 있다. 도시된 바와 같이, 미처리 Bayer 이미지(694)의 4x4 부분(696)은 녹색 채널(698), 적색 채널(700), 및 청색 채널(702)을 포함하는 각각의 컬러 컴포넌트에 대한 개별 채널들을 포함할 수 있다. Bayer 센서에서의 각각의 이미지 픽셀이 오직 하나의 컬러에 대한 데이터를 획득하기 때문에, 각각의 컬러 채널(698, 700, 702)에 대한 컬러 데이터는 "?" 심볼로 지시되며 불완전할 수 있다. 디모자이크 기술(704)을 적용함으로써, 각각의 채널로부터의 누락 컬러 샘플들은 보간될 수 있다. 예를 들면, 참조 번호 706으로 도시된 바와 같이, 보간 데이터 G'는 녹색 컬러 채널 상의 누락 샘플들을 채우는데 사용될 수 있다. 유사하게, 보간된 데이터 R'는 (보간된 데이터 G'(706)과 함께) 적색 컬러 채널(708) 상의 누락 샘플들을 채우는데 사용될 수 있고, 보간된 데이터 B'는 (보간된 데이터 G'(706)와 함께) 청색 컬러 채널(710) 상의 누락 샘플들을 채우는데 사용될 수 있다. 따라서, 디모자이크 프로세스의 결과로서, 각각의 컬러 채널(R, G, B)은 컬러 데이터의 풀 세트를 가질 것이며, 이는 풀 컬러 RGB 이미지(712)를 재구성하는데 사용될 수 있다.
디모자이크 로직(600)에 의해 구현될 수 있는 디모자이크 기술이 이제 일 실시예에 따라 개시될 것이다. 녹색 컬러 채널 상에서, 누락 컬러 샘플들은 공지된 녹색 샘플들 상의 저역 통과 방향성 필터 및 인접 컬러 채널들(예를 들면, 적색 및 청색) 상의 고역 통과(또는 그레디언트) 필터를 사용하여 보간될 수 있다. 적색 및 청색 컬러 채널들에 대해, 누락 컬러 샘플들은 동일한 방식으로, 그러나 공지된 적색 또는 청색 값들 상의 저역 통과 필터링 및 공동 위치된 보간 녹색 값들 상의 고역 통과 필터링을 사용함으로써 보간될 수 있다. 또한, 일 실시예에서, 녹색 컬러 채널 상의 디모자이크는 오리지널 Bayer 컬러 데이터에 기초하여 5x5 픽셀 블록 에지-적응형 필터를 이용할 수 있다. 후술되는 바와 같이, 에지-적응형 필터의 사용은 수평 및 수직 필터링된 값들의 그레디언트에 기초한 계속적인 가중치를 제공할 수 있고, 이는 통상적인 디모자이크 기술에서 볼 수 있는, 에일리어싱, "체커보드" 또는 "레인보우" 결함과 같은 특정 결함들의 출현을 감소시킨다.
녹색 채널 상의 디모자이크 동안, Bayer 이미지 패턴의 녹색 픽셀들(Gr 및 Gb 픽셀들)에 대한 오리지널 값들이 사용된다. 그러나, 녹색 채널을 위한 데이터의 풀 세트를 획득하기 위해, 녹색 픽셀 값들은 Bayer 이미지 패턴의 적색 및 청색 픽셀들에서 보간될 수 있다. 본 기술에 따라, 각각 Eh 및 Ev로 지칭되는 수평 미 수직 에너지 컴포넌트들은 상기 언급된 5x5 픽셀 블록에 기초하여 적색 및 청색 픽셀들에 처음으로 계산된다. Eh 및 Ev의 값들은 후술되는 바와 같이, 수평 및 수직 필터링 단계들로부터 에지-가중된 필터링된 값을 획득하는데 사용될 수 있다.
예로서, 도 59는 위치(j, i)에서 5x5 픽셀 블록에 집중된 적색 픽셀에 대한 Eh 및 Ev 값들의 연산을 도시하는데, 여기서 j는 행에 대응하며, i는 열에 대응한다. 도시된 바와 같이, Eh의 계산은 5x5 픽셀 블록의 중간 3 행들(j-1, j, j+1)을 고려하고, Ev의 계산은 5x5 픽셀 블록의 중간 3 행들(i-1, i, i+1)을 고려한다. Eh를 연산하기 위해, 대응하는 계수(예를 들면, 열 i-2 및 i+2에 대해서는 -1; 열 i에 대해서는 2)에 의해 곱해진 적색 열들(i-2, i, i+2)의 픽셀들의 각각의 합의 절대값은 대응하는 계수(예를 들면, 열 i-1에 대해서는 1; i+1에 대해서는 -1)에 의해 곱해진 열(i-1, i+1)의 각각의 픽셀들의 합의 절대값에 더해진다. Ev를 연산하기 위해, 대응하는 계수(예를 들면 행 j-2 및 j+2에 대해서는 -1; 행 j에 대해서는 2)에 의해 곱해진 적색 행들(j-2, j, j+2)의 각각의 픽셀들의 합의 절대값은 대응하는 계수(예를 들면, 행 j-1에 대해서는 1; 행 j+1에 대해서는 -1)에 의해 곱해진 청색 행들(j-1, j+1)의 각각의 픽셀들의 합의 절대값에 더해진다. 이러한 연산들은 하기의 수학식 44 및 45로 설명된다.
[수학식 44]
Figure 112011064114822-pat00066
[수학식 45]
Figure 112011064114822-pat00067
따라서, 전체 에너지 합은 Eh+Ev로서 표현될 수 있다. 또한, 도 59에 도시된 예는 (j,i)에서의 적색 중심 픽셀에 대한 Eh 및 Ev의 계산을 설명하고 있지만, Eh 및 Ev 값들은 청색 중심 픽셀들에 대하여도 유사한 방식으로 결정될 수 있다는 것을 이해하여야 한다.
다음으로, 각각이 수평 및 수직 방향들에서의 보간된 녹색 값들을 나타낼 수 있는 수직 및 수평 필터링된 값들 Gh 및 Gv를 획득하기 위하여, 수평 및 수직 필터링이 베이어 패턴에 적용될 수 있다. 필터링된 값들 Gh 및 Gv는, 빠진 녹색 샘플들의 위치들에서 고 주파수 신호를 획득하기 위하여, 인접한 컬러(R 또는 B)의 방향성 그레디언트들(directional gradients)의 사용에 부가하여, 알려진 인접한 녹색 샘플들에 저역 통과 필터를 사용하여 결정될 수 있다. 예를 들어서, 도 60을 참조하여, Gh를 결정하기 위한 수평 보간의 예가 지금부터 설명될 것이다.
도 60에 도시된 바와 같이, Gh를 결정함에 있어서 베이어 이미지의 적색 라인(714)의 5개의 수평 픽셀들(R0, G1, R2, G3 및 R4)이 고려될 수 있는데, 여기서 R2가 (j,i)에서의 중심 픽셀로 가정된다. 이들 5개의 픽셀들 각각과 연관된 필터링 계수들은 참조 번호 716에 의해 표시된다. 따라서, G2'로 지시되는, 중심 픽셀(R2)에 대한 녹색 값의 보간은 다음과 같이 결정될 수 있다.
[수학식 46]
Figure 112011064114822-pat00068
다양한 수학 연산들이 아래의 수학식들 47 및 48에 나타낸 G2'에 대한 표현을 생성하기 위하여 사용될 수 있다.
[수학식 47]
Figure 112011064114822-pat00069
[수학식 48]
Figure 112011064114822-pat00070
따라서, 도 60과 상기의 수학식들 46-48을 참조하면, (j,i)에서의 녹색 값에 대한 수평 보간에 대한 일반적인 표현은 다음과 같이 유도될 수 있다.
[수학식 49]
Figure 112011064114822-pat00071
수직 필터링 컴포넌트 Gv는 Gh와 유사한 방식으로 결정될 수 있다. 예를 들어, 도 61을 참조하면, 베이어 이미지의 적색 열(718)의 5개의 수직 픽셀들(R0, G1, R2, G3 및 R4)과 그들 각각의 필터링 계수들(720)이 Gv를 결정함에 있어서 고려될 수 있으며, 여기서 R2는 (j,i)에서의 중심 픽셀로 가정된다. 수직 방향에서의 적색 채널에 대해 고역 통과 필터를 사용하고 알려진 녹색 샘플들에 대해 저역 통과 필터링을 사용하면, Gv에 대해 다음과 같은 표현이 유도될 수 있다.
[수학식 50]
Figure 112011064114822-pat00072
비록 여기서 논의된 예들이 적색 픽셀에 대한 녹색 값들의 보간을 설명하고 있지만, 수학식들 49 및 50에 제시된 표현들은 청색 픽셀들에 대한 녹색 값들의 수평 및 수직 보간에서도 사용될 수 있다는 점을 이해하여야 한다.
중심 픽셀 (j,i)에 대한 최종 보간된 녹색 값 G'는 다음 수학식을 산출하도록 상기 논의된 에너지 컴포넌트들(Eh 및 Ev)에 의해 수평 및 수직 필터 출력들(Gh 및 Gv)을 가중함으로써 결정될 수 있다.
[수학식 51]
Figure 112011064114822-pat00073
상기 논의된 바와 같이, 에너지 컴포넌트들 Eh 및 Ev는 수평 및 수직 필터 출력들 Gh 및 Gv의 에지-적응(edge-adaptive) 가중을 제공할 수 있는데, 이는 복원된 RGB 이미지에서 레인보우, 에일리어싱, 또는 체커보드 아티팩트들과 같은 이미지 아티팩트들을 감소시키는데 도움이 될 수 있다. 또한, 디모자이크 로직(600)은 Gh와 Gv가 동일하게 가중되도록 Eh 및 Ev 값들 각각을 1로 설정함으로써 에지-적응 가중 특징을 우회하는 옵션을 제공할 수 있다.
일 실시예에 있어서, 상기의 수학식 51에 제시된 수평 및 수직 가중 계수들은 가중 계수들의 정확도를 "대략적인(coarse)" 값들의 세트로 감소시키기 위하여 양자화될 수 있다. 예를 들면, 일 실시예에서, 가중 계수들은 1/8, 2/8, 3/8, 4/8, 5/8, 6/8, 7/8, 및 8/8의 8개의 가능한 가중 비율들로 양자화될 수 있다. 다른 실시예들은 가중 계수들을 16개의 값들(예를 들어, 1/16 내지 16/16), 32개의 값들(1/32 내지 32/32) 등으로 양자화할 수 있다. 이해할 수 있는 바와 같이, 완전한 정확도 값들(예를 들어, 32 비트 부동 소수점 값들)을 사용하는 것과 비교할 때, 가중 계수들의 양자화는 가중 계수들을 결정하여 수평 및 수직 필터 결과들에 대하여 적용할 때의 구현 복잡도를 감소시킬 수 있다.
추가 실시예들에 있어서, 가중 계수들을 수평(Gh) 및 수직(Gv) 필터링된 값들에 적용하기 위하여 수평 및 수직 에너지 컴포넌트들을 결정하고 사용하는 것에 더하여, 현재 개시된 기술들이 또한 대각선 양의 방향 및 대각선 음의 방향에서의 에너지 컴포넌트들을 결정하고 사용할 수 있다. 예를 들어, 이러한 실시예들에서는, 필터링 또한 대각선 양의 방향 및 대각선 음의 방향으로 적용될 수 있다. 필터 출력들의 가중은 2개의 가장 높은 에너지 컴포넌트들을 선택하는 것, 및 선택된 에너지 컴포넌트들을 그들의 각각의 필터 출력들을 가중하기 위해 사용하는 것을 포함할 수 있다. 예를 들어, 2개의 가장 높은 에너지 컴포넌트들이 수직 및 대각선 양의 방향들에 대응한다고 가정할 때, 수직 및 대각선 양의 에너지 컴포넌트들이 수직 및 대각선 양의 필터 출력들을 가중하여 (예를 들어, 베이어 패턴에서 적색 또는 청색 픽셀 위치에서의) 보간된 녹색 값을 결정하는데 사용된다.
다음으로, 적색 및 청색 컬러 채널들에 대한 디모자이크는, 베이어 이미지 패턴의 녹색 픽셀들에서 적색 및 청색 값들을 보간하고, 베이어 이미지 패턴의 청색 픽셀들에서 적색 값들을 보간하며, 베이어 이미지 패턴의 적색 픽셀들에서 청색 값들을 보간함으로써 수행될 수 있다. 현재 논의되는 기술들에 따르면, 빠진 적색 및 청색 픽셀 값들은 알려진 이웃 적색 및 청색 픽셀들에 기초한 저역 통과 필터링과, 공존하는 녹색 픽셀 값들에 기초한 고역 통과 필터링을 사용하여 보간될 수 있는데, 이는 현재 픽셀의 위치에 따라 오리지널 또는 (상기 논의된 녹색 채널 디모자이크 프로세스로부터의) 보간된 값들일 수 있다. 따라서, 이러한 실시예들에 관해서는, 빠진 적색 및 청색 샘플들을 보간할 때 녹색 값들의 완전한 세트(오리지널 및 보간된 값들 모두)가 이용가능하도록, 빠진 녹색 값들의 보간이 먼저 수행될 수 있다는 점이 이해되어야 한다.
적색 및 청색 픽셀 값들의 보간은, 녹색 채널에 대한 디모자이크 중에 획득되었을 수 있는 보간된 녹색 값들(G'로 지시됨)뿐만 아니라, 적색 및 청색 디모자이크가 적용될 수 있는 베이어 이미지 패턴의 다양한 3x3 블록들을 도시하는 도 62를 참조하여 설명될 수 있다. 먼저 블록 722를 참조하면, Gr 픽셀(G11)에 대한 보간된 적색 값(R'11)은 다음과 같이 결정될 수 있는데:
[수학식 52]
Figure 112011064114822-pat00074
여기서, G'10과 G'12는 참조 번호 730에 의해 도시된 바와 같은 보간된 녹색 값들을 나타낸다. 유사하게, Gr 픽셀(G11)에 대한 보간된 청색 값(B'11)은 다음과 같이 결정될 수 있는데:
[수학식 53]
Figure 112011064114822-pat00075
여기서, G'01과 G'21은 보간된 녹색 값들(730)을 나타낸다.
다음에, 중심 픽셀이 Gb 픽셀(G11)인 픽셀 블록(724)을 참조하면, 보간된 적색 값 R'11 및 청색 값 B'11은 이하의 수학식 54 및 55에 나타낸 바와 같이 결정될 수 있다.
[수학식 54]
Figure 112011064114822-pat00076
[수학식 55]
Figure 112011064114822-pat00077
또한, 픽셀 블록(726)을 참조하면, 청색 픽셀 B11에 대한 적색 값의 보간은 다음과 같이 결정될 수 있는데:
[수학식 56]
Figure 112011064114822-pat00078
여기서, G'00, G'02, G'11, G'20 및 G'22는 참조번호 732에 의해 나타낸 보간된 녹색 값들을 나타낸다. 마지막으로, 픽셀 블록(728)에 의해 도시된 적색 픽셀에 대한 청색 값의 보간은 다음과 같이 계산될 수 있다.
[수학식 57]
Figure 112011064114822-pat00079
위에서 설명된 실시예는 적색 및 청색 보간 값들을 결정하기 위한 컬러 차이들(예를 들면, 그레디언트들)에 의존하는 한편, 다른 실시예는 컬러 비율들(color ratios)을 이용하여 보간된 적색 및 청색 값들을 제공할 수 있다. 예를 들면, 보간된 녹색 값들(블록들 730 및 732)을 이용하여 베이어 이미지 패턴의 적색 및 청색 픽셀 위치들에서의 컬러 비율을 획득할 수 있고, 이 비율들의 선형 보간을 이용하여 빠진(missing) 컬러 샘플에 대한 보간된 컬러 비율을 결정할 수 있다. 보간된 값 또는 오리지널 값일 수 있는 녹색 값에 보간된 컬러 비율이 곱해져서 최종 보간된 컬러 값을 구할 수 있다. 예를 들면, 컬러 비율들을 이용한 적색 및 청색 픽셀 값들의 보간은 이하의 공식에 따라 수행될 수 있으며, 여기서 수학식 58 및 59는 Gr 픽셀에 대한 적색 및 청색 값들의 보간을 나타내고, 수학식 60 및 61은 Gb 픽셀에 대한 적색 및 청색 값들의 보간을 나타내고, 수학식 62는 청색 픽셀에 대한 적색 값의 보간을 나타내며, 수학식 63은 적색 픽셀에 대한 청색 값의 보간을 나타낸다.
[수학식 58]
Figure 112011064114822-pat00080
[수학식 59]
Figure 112011064114822-pat00081
[수학식 60]
Figure 112011064114822-pat00082
[수학식 61]
Figure 112011064114822-pat00083
[수학식 62]
Figure 112011064114822-pat00084
[수학식 63]
Figure 112011064114822-pat00085
일단 빠진 컬러 샘플들이 베이어 이미지 패턴으로부터 각각의 이미지 픽셀에 대해 보간되면, 적색, 청색 및 녹색 채널들(예를 들면, 도 58의 706, 708, 및 710) 각각에 대한 컬러 값들의 완전한 샘플이 결합되어 풀(full) 컬러 RGB 이미지를 생성할 수 있다. 예를 들면, 도 49 및 도 50을 다시 참조하면, 미처리 픽셀 처리 로직(562)의 출력(572)은 8, 10, 12 또는 14-비트 포맷의 RGB 이미지 신호일 수 있다.
이하, 도 63 내지 도 66을 참조하면, 개시된 실시예들에 따라 미처리 베이어 이미지 패턴을 디모자이크하기 위한 프로세스들을 예시하는 다양한 흐름도들이 도시되어 있다. 구체적으로, 도 63의 프로세스(740)는 어느 컬러 컴포넌트들이 주어진 입력 픽셀 P에 대해 보간될지에 대한 판정을 도시한다. 프로세스(740)에 의한 판정에 기초하여, 녹색 값을 보간하는 프로세스(750)(도 64), 적색 값을 보간하는 프로세스(762)(도 65), 또는 청색 값을 보간하는 프로세스(774)(도 66) 중 하나 이상이 (예를 들어, 디모자이크 로직(600)에 의해) 수행될 수 있다.
도 63을 시작하면, 프로세스(740)는 입력 픽셀 P가 수신되는 단계(741)에서 시작한다. 판정 로직(742)은 입력 픽셀의 컬러를 결정한다. 예를 들면, 이것은 베이어 이미지 패턴 내의 픽셀의 위치에 의존할 수 있다. 따라서, P가 녹색 픽셀(예를 들어, Gr 또는 Gb)인 것으로 식별되면, 프로세스(740)는 단계(744)로 진행되어 P에 대한 보간된 적색 및 청색 값들을 획득한다. 이것은, 예를 들어, 도 65 및 도 66의 프로세스들(762 및 774) 각각으로 계속되는 것을 포함할 수 있다. P가 적색 픽셀인 것으로 식별되면, 프로세스(740)는 단계(746)로 진행되어 P에 대한 보간된 녹색 및 청색 값들을 획득한다. 이것은 도 64 및 도 66의 프로세스들(750 및 774) 각각을 수행하는 것을 더 포함할 수 있다. 또한, P가 청색 픽셀인 것으로 식별되면, 프로세스(740)는 단계(748)로 진행되어 P에 대한 보간된 녹색 및 적색 값들을 획득한다. 이것은 도 64 및 도 65의 프로세스들(750 및 762) 각각을 수행하는 것을 더 포함할 수 있다. 프로세스들(750, 762 및 774) 각각은 이하에서 더 설명된다.
입력 픽셀 P에 대한 보간된 녹색 값을 결정하기 위한 프로세스(750)는 도 64에 도시되어 있으며 단계들(752-760)을 포함한다. 단계 752에서, 입력 픽셀 P가 (예를 들면, 프로세스(740)로부터) 수신된다. 다음에, 단계 754에서, 5×5 픽셀 블록을 형성하는 이웃 픽셀들의 세트가 식별되고, 여기서 P는 5×5 블록의 중심이다. 그 후에, 단계 756에서, 픽셀 블록을 분석하여, 수평 및 수직 에너지 컴포넌트들을 결정한다. 예를 들면, 수평 및 수직 에너지 컴포넌트들은 각각 Eh와 Ev를 계산하기 위해 수학식 44 및 45에 따라 결정될 수 있다. 설명된 바와 같이, 에너지 컴포넌트들 Eh 및 Ev는 가중 계수들로서 이용되어 에지 적응(edge-adaptive) 필터링을 제공할 수 있고, 따라서 최종 이미지에서의 특정한 디모자이크 아티팩트들의 출현을 감소시킬 수 있다. 단계 758에서, 수평 및 수직 방향들로 저역 통과 필터링 및 고역 통과 필터링을 적용하여, 수평 및 수직 필터링 출력들을 결정한다. 예를 들면, 수평 및 수직 필터링 출력들 Gh 및 Gv는 수학식 49 및 50에 따라 계산될 수 있다. 다음에, 프로세스(740)는 단계 760으로 계속되며, 이 단계에서 수학식 51에 나타낸 바와 같이, 에너지 컴포넌트들 Eh 및 Ev로 가중된 Gh 및 Gv의 값들에 기초하여 보간된 녹색 값 G'가 보간된다.
다음에, 도 65의 프로세스(762)와 관련하여, 적색 값들의 보간이 단계 764에서 시작될 수 있으며, 이 단계에서 입력 픽셀 P가 (예를 들면, 프로세스(740)로부터) 수신된다. 단계 766에서, 3×3 픽셀 블록을 형성하는 이웃 픽셀들의 세트가 식별되고, 여기서 P는 3×3 블록의 중심이다. 그 후에, 단계 768에서, 3×3 블록 내의 이웃 적색 픽셀들에 대해 저역 통과 필터링이 적용되고, 공존하는 녹색 이웃 값들에 대해 고역 통과 필터링이 적용되는데(단계 770), 이것은 베이어 이미지 센서에 의해 캡처된 오리지널 녹색 값들이거나 또는 (예를 들면, 도 64의 프로세스(750)를 통해 결정되는) 보간된 값들일 수 있다. P에 대해 보간된 적색 값 R'는, 단계 772에 도시된 바와 같이, 저역 통과 및 고역 통과 필터링 출력들에 기초하여 결정될 수 있다. P의 컬러에 의존하여, R'는 수학식 52, 54 또는 56 중 하나에 따라 결정될 수 있다.
청색 값들의 보간과 관련하여, 도 66의 프로세스(774)가 적용될 수 있다. 단계들(776 및 778)은 일반적으로 프로세스(762)(도 65)의 단계들(764 및 766)과 동일하다. 단계 780에서, 3×3 블록 내의 이웃 청색 픽셀들에 대해 저역 통과 필터링이 적용되고, 단계 782에서는 공존하는 녹색 이웃 값들에 대해 고역 통과 필터링이 적용되는데, 이것은 베이어 이미지 센서에 의해 캡처된 오리지널 녹색 값들이거나 또는 (예를 들면, 도 64의 프로세스(750)를 통해 결정되는) 보간된 값들일 수 있다. P에 대해 보간된 청색 값 B'는, 단계 784에 도시된 바와 같이, 저역 통과 및 고역 통과 필터링 출력들에 기초하여 결정될 수 있다. P의 컬러에 의존하여, B'는 수학식 53, 55, 또는 57 중 하나에 따라 결정될 수 있다. 또한, 위에서 언급된 바와 같이, 적색 및 청색 값들의 보간은 컬러 차이들(수학식 52-57) 또는 컬러 비율들(수학식 58-63)을 이용하여 결정될 수 있다. 또한, 빠진 적색 및 청색 샘플들을 보간할 때 녹색 값들(오리지널 값 및 보간된 값 모두)의 완전한 세트가 이용가능하도록 빠진 녹색 값들의 보간이 우선적으로 수행될 수 있다는 것이 이해되어야 한다. 예를 들면, 도 64의 프로세스(750)가 적용되어, 도 65 및 도 66의 프로세스들(762 및 774)을 각각 수행하기 전에 모든 빠진 녹색 컬러 샘플들을 보간할 수 있다.
도 67 내지 도 70을 참조하면, ISP 파이프(82)에서의 미처리 픽셀 처리 로직(562)에 의해 처리된 이미지들의 컬러 그림들의 예들이 제공되어 있다. 도 67은 이미징 장치(30)의 이미지 센서(90)에 의해 캡처될 수 있는 오리지널 이미지 장면(786)을 도시한다. 도 68은 이미지 센서(90)에 의해 캡처된 미처리 픽셀 데이터를 나타낼 수 있는 미처리 베이어 이미지(788)를 도시한다. 위에서 설명된 바와 같이, 종래의 디모자이크 기술들은 이미지 데이터의 에지들(예를 들면, 2개 이상의 컬러들의 영역들 간의 경계들)의 검출에 기초한 적응적 필터링을 제공하지 않을 수 있으며, 이것은 바람직하지 않게 결과적인 재구성된 풀 컬러 RGB 이미지에 아티팩트들을 생성할 수 있다. 예를 들면, 도 69는 종래의 디모자이크 기술들을 이용하여 재구성된 RGB 이미지(790)를 도시하며, 이것은 에지(794)에 "체커보드" 아티팩트들(792)과 같은 아티팩트들을 포함할 수 있다. 그러나, 전술한 디모자이크 기술들을 이용하여 재구성된 이미지의 일례일 수 있는 도 70의 RGB 이미지(796)와 이미지(790)를 비교하면, 도 69에 존재하는 체커보드 아티팩트들(792)가 존재하지 않거나 또는 적어도 그들의 출현이 에지(794)에서 실질적으로 감소됨을 알 수 있다. 따라서, 도 67 내지 도 70에 도시된 이미지들은 본 명세서에 개시된 디모자이크 기술들이 종래의 방법들에 비해 갖는 적어도 하나의 이점을 예시하는 것을 의도한다.
미처리 픽셀 처리 로직(562)의 동작을 이제 완전하게 기술하고 있으며, RGB 이미지 신호(572)를 출력할 수 있는 도 49를 다시 참조하면, 이제 본 논의는 RGB 처리 로직(564)에 의해 RGB 이미지 신호(572)의 처리를 설명하는 것에 초점을 맞출 것이다. 도시된 바와 같이, RGB 이미지 신호(572)는 선택 로직(576)으로 및/또는 메모리(108)로 전송될 수 있다. RGB 처리 로직(564)은, 선택 로직(576)의 구성에 따라, 신호(574)에 의해 도시된 메모리(108)로부터의 또는 신호(572)로부터의 RGB 이미지 데이터일 수 있는 입력 신호(578)를 수신할 수 있다. RGB 이미지 데이터(578)는 RGB 처리 로직(564)에 의해 처리되어 (예를 들어, 컬러 보정 행렬을 이용한) 컬러 보정, 자동 화이트 밸런싱을 위한 컬러 이득들의 적용뿐만 아니라, 글로벌 톤 매핑 등을 포함하는 컬러 조정 동작들을 수행할 수 있다.
RGB 처리 로직(564)의 일 실시예의 더 상세한 도면을 도시하는 블록도가 도 71에 예시되어 있다. 도시된 바와 같이, RGB 처리 로직(564)은 GOC(gain, offset, and clamping) 로직(800), RGB 컬러 보정 로직(802), GOC 로직(804), RGB 감마 조정 로직 및 컬러 공간 변환 로직(808)을 포함한다. 처음에 GOC(gain, offset, and clamping) 로직(800)에 의해 입력 신호(578)가 수신된다. 예시된 실시예에서, GOC 로직(800)은 이득들을 적용하여 컬러 보정 로직(802)에 의한 처리 전에 R, G 또는 B 컬러 채널들 중 하나 이상에 대해 자동 화이트 밸런싱을 수행할 수 있다.
GOC 로직(800)은, 베이어 이미지 데이터의 R, B, Gr 및 Gb 컴포넌트들이 아닌 RGB 도메인의 컬러 컴포넌트들이 처리된다는 점을 제외하면, 미처리 픽셀 처리 로직(562)의 GOC 로직(590)과 유사할 수 있다. 동작 시에, 현재 픽셀에 대한 입력 값은, 위의 수학식 11에서 나타낸 바와 같이, 부호있는 값 O[c]에 의해 먼저 오프셋되고 이득 G[c]가 곱해지며, c는 R, G 및 B를 나타낸다. 전술한 바와 같이, 이득 G[c]는 2 정수 비트들 및 14 소수 비트들을 갖는 16-비트 부호없는 수일 수 있고(예를 들면, 2.14 부동 소수점 표현), 이득 G[c]에 대한 값들은 (예를 들면, ISP 프런트-엔드 블록(80)에서) 통계 처리 중에 미리 결정될 수 있다. 그 다음에, (수학식 11에 기초하여) 계산된 픽셀 값 Y는 수학식 12에 따라 최소 및 최대 범위로 클리핑된다. 위에서 설명된 바와 같이, 변수들 min[c]와 max[c]는 각각 최소 및 최대 출력 값들에 대한 부호있는 16-비트 "클리핑 값들"을 나타낼 수 있다. 일 실시예에서, GOC 로직(800)은 또한 각각의 컬러 컴포넌트 R, G 및 B에 대해 최대 및 최소 각각의 위로 그리고 아래로 클리핑된 픽셀들의 개수의 카운트를 유지하도록 구성될 수 있다.
GOC 로직(800)의 출력은 그 다음에 컬러 보정 로직(802)으로 포워딩된다. 본 개시된 기술들에 따르면, 컬러 보정 로직(802)은 컬러 보정 행렬(CCM)을 이용하여 RGB 이미지 데이터에 컬러 보정을 적용하도록 구성될 수 있다. 일 실시예에서, CCM은 3×3 RGB 변환 행렬일 수 있지만, 다른 실시예들에서 다른 차원의 행렬들이 또한 이용될 수 있다(예를 들면, 4×3 등). 따라서, R, G 및 B 컴포넌트들을 갖는 입력 픽셀에 대해 컬러 보정을 수행하는 프로세스는 다음과 같이 표현될 수 있는데:
[수학식 64]
Figure 112011064114822-pat00086
여기서, R, G 및 B는 입력 픽셀에 대한 현재의 적색, 녹색 및 청색 값들을 나타내고, CCM00-CCM22는 컬러 보정 행렬의 계수들을 나타내며, R', G' 및 B'는 입력 픽셀에 대한 보정된 적색, 녹색 및 청색 값들을 나타낸다. 따라서, 보정 컬러 값들은 이하의 수학식 65-67에 따라 계산될 수 있다.
[수학식 65]
Figure 112011064114822-pat00087
[수학식 66]
Figure 112011064114822-pat00088
[수학식 67]
Figure 112011064114822-pat00089
CCM의 계수들(CCM00-CCM22)은, 위에서 설명된 바와 같이, ISP 프런트-엔드 블록(80)의 통계 처리 중에 결정될 수 있다. 일 실시예에서, 주어진 컬러 채널에 대한 계수들은 이들 계수들(예를 들면, 적색 컬러 보정의 경우 CCM00, CCM01 및 CCM02)의 합이 1과 동일하도록 선택될 수 있으며, 이것은 밝기 및 컬러 밸런스를 유지하는데 도움이 될 수 있다. 또한, 보정되는 컬러에 포지티브 이득이 적용되도록 계수들이 통상적으로 선택된다. 예를 들면, 적색 컬러 보정의 경우에, 계수 CCM00은 1보다 클 수 있는 한편, 계수들 CCM01 및 CCM02 중 하나 또는 둘 다는 1보다 작을 수 있다. 이러한 방식으로 계수들을 설정함으로써 결과적인 보정된 R' 값에서의 적색(R) 컴포넌트를 향상시키는 한편 청색(B) 및 녹색(G) 컴포넌트의 일부를 차감할 수 있다. 알 수 있는 바와 같이, 이것은, 특정 컬러 픽셀에 대한 필터링된 광의 일부가 상이한 컬러의 이웃 픽셀로 "블리딩될(bleed)" 수 있기 때문에, 오리지널 베이어 이미지의 획득 중에 발생할 수 있는 컬러 오버랩에 대한 과제들을 어드레싱할 수 있다. 일 실시예에서, CCM의 계수들은 4 정수 비트들 및 12 소수 비트들을 갖는 16-비트 2의 보수(two's-complement numbers)(4.12로서 부동 소수점으로 표현됨)로서 제공될 수 있다. 또한, 컬러 보정 로직(802)은, 값들이 최대값을 초과하거나 또는 최소값 아래인 경우에 계산된 보정 컬러 값들의 클리핑을 제공할 수 있다.
그 다음에, RGB 컬러 보정 로직(802)의 출력은 다른 GOC 로직 블록(804)으로 전달된다. GOC 로직(804)은 GOC 로직(800)과 동일한 방식으로 구현될 수 있으며, 따라서, 제공되는 이득, 오프셋 및 클램핑 기능들에 대한 상세한 설명은 여기서 반복되지 않을 것이다. 일 실시예에서, 컬러 보정 다음의 GOC 로직(804)의 적용은 보정된 컬러 값들에 기초한 이미지 데이터의 자동 화이트 밸런싱을 제공할 수 있으며, 또한 적색-대-녹색 및 청색-대-녹색 비율들의 센서 변동들을 조정할 수 있다.
다음으로, GOC 로직(804)의 출력은 추가 처리를 위해 RGB 감마 조정 로직(806)으로 송신된다. 예를 들어, RGB 감마 조정 로직(806)은 감마 보정, 톤 매핑, 히스토그램 매칭 등을 제공할 수 있다. 개시된 실시예들에 따르면, 감마 조정 로직(806)은 입력 RGB 값들의 대응하는 출력 RGB 값들로의 매핑을 제공할 수 있다. 예를 들어, 감마 조정 로직은 R, G 및 B 컴포넌트들 각각에 대해 하나의 테이블씩 3개의 룩업 테이블들의 세트를 제공할 수 있다. 예로서, 각각의 룩업 테이블은 각각의 값이 출력 레벨을 나타내는 10-비트 값들의 256개의 엔트리들을 저장하도록 구성될 수 있다. 테이블 엔트리들은 입력 픽셀 값들의 범위에서 균일하게 분포되어, 입력 값이 2개의 엔트리들 사이에 있는 경우, 출력 값이 선형 보간될 수 있다. 일 실시예에서, R, G 및 B에 대한 3개의 룩업 테이블들 각각이 복제되어, 룩업 테이블들이 메모리에 "이중 버퍼링"됨으로써 하나의 테이블이 처리 동안에 사용되는 한편 그 복제물은 업데이트되게 할 수 있다. 상술한 10-비트 출력 값들에 기초하여, 14-비트 RGB 이미지 신호는 본 실시예의 감마 보정 프로세스의 결과로서 10 비트로 효과적으로 다운샘플링된다는 것을 유념해야 한다.
감마 조정 로직(806)의 출력은 메모리(108) 및/또는 컬러 공간 변환 로직(808)에 송신될 수 있다. 컬러 공간 변환(CSC) 로직(808)은 감마 조정 로직(806)으로부터의 RGB 출력을 YCbCr 포맷으로 변환하도록 구성될 수 있으며, 여기서, Y는 루마 컴포넌트를 나타내고, Cb는 청색-차 크로마 컴포넌트(blue-difference chroma component)를 나타내고, Cr은 적색-차 크로마 컴포넌트(red-difference chroma component)를 나타내며, 그 각각은 감마 조정 동작 동안 RGB 데이터를 14-비트로부터 10-비트로 비트-깊이 변환한 결과로서 10-비트 포맷으로 이루어질 수 있다. 상술한 바와 같이, 일 실시예에서, 감마 조정 로직(806)의 RGB 출력은 10-비트로 다운-샘플링될 수 있고, 따라서, CSC 로직(808)에 의해 10-비트 YCbCr 값들로 변환되며, 이것은 그 다음에 이하에서 더 상세히 논의될 YCbCr 처리 로직(566)에 포워딩될 수 있다.
RGB 도메인으로부터 YCbCr 컬러 공간으로의 변환은 컬러 공간 변환 행렬(CSCM)을 이용하여 수행될 수 있다. 예를 들어, 일 실시예에서, CSCM은 3×3 변환 행렬일 수 있다. CSCM의 계수들은 BT.601 및 BT.709 표준들과 같은 공지된 변환식에 따라 설정될 수 있다. 추가적으로, CSCM 계수들은 요구되는 범위의 입력 및 출력에 기초하여 플렉시블일 수 있다. 따라서, 몇몇 실시예에서, CSCM 계수들은 ISP 프런트-엔드 블록(80)에서의 통계 처리 동안 수집된 데이터에 기초하여 결정되며 프로그래밍될 수 있다.
RGB 입력 픽셀에 대해 YCbCr 컬러 공간 변환을 수행하는 프로세스는 이하와 같이 표현될 수 있는데:
[수학식 68]
Figure 112011064114822-pat00090
여기서, R, G 및 B는 (예를 들어, 감마 조정 로직(806)에 의해 처리된 것과 같은) 10-비트 형태의 입력 픽셀에 대한 현재의 적색, 녹색 및 청색 값들을 나타내고, CSCM00-CSCM22는 컬러 공간 변환 행렬의 계수들을 나타내며, Y, Cb 및 Cr은 입력 픽셀에 대한 결과적인 루마 및 크로마 컴포넌트들을 나타낸다. 이에 따라, Y, Cb 및 Cr에 대한 값들은 아래와 같이 수학식 69 내지 71에 따라 계산될 수 있다.
[수학식 69]
Figure 112011064114822-pat00091
[수학식 70]
Figure 112011064114822-pat00092
[수학식 71]
Figure 112011064114822-pat00093
컬러 공간 변환 동작의 다음에, 결과적인 YCbCr 값들이 신호(580)로서 CSC 로직(808)으로부터 출력될 수 있고, 이는 이하에서 논의되는 바와 같이 YCbCr 처리 로직(566)에 의해 처리될 수 있다.
일 실시예에서, CSCM의 계수들은 4 정수 비트들 및 12 소수 비트들(4.12)을 갖는 16-비트의 2의 보수일 수 있다. 다른 실시예에서, CSC 로직(808)은 Y, Cb 및 Cr 값들 각각에 오프셋을 적용하고, 결과적인 값들을 최소 및 최대 값으로 클리핑하도록 더 구성될 수 있다. 단지 예로서, YCbCr 값들이 10-비트 형태로 이루어진다고 가정하면, 오프셋은 -512 내지 512의 범위일 수 있고, 최소 및 최대 값들은 각각 0 및 1023일 수 있다.
도 49의 ISP 파이프 로직(82)의 블록도를 다시 참조하면, YCbCr 신호(580)는 선택 로직(584) 및/또는 메모리(108)로 송신될 수 있다. YCbCr 처리 로직(566)은 입력 신호(586)를 수신할 수 있으며, 이것은 선택 로직(584)의 구성에 따라 신호(582)에 의해 표시된 바와 같이 메모리(108)로부터의 또는 신호(580)로부터의 YCbCr 이미지 데이터일 수 있다. YCbCr 이미지 데이터(586)는 그 후, 루마 선명화, 크로마 억제, 크로마 잡음 감소뿐만 아니라, 밝기, 콘트라스트 및 컬러 조정 등을 위해 YCbCr 처리 로직(566)에 의해 처리될 수 있다. 또한, YCbCr 처리 로직(566)은 수평 방향과 수직 방향 모두로의 처리된 이미지 데이터의 감마 매핑 및 스케일링을 제공할 수 있다.
YCbCr 처리 로직(566)의 일 실시예의 더 상세한 뷰를 나타내는 블록도가 도 72에 도시된다. 도시된 바와 같이, YCbCr 처리 로직(566)은 이미지 선명화 로직(810), 밝기, 콘트라스트 및/또는 컬러를 조정하기 위한 로직(812), YCbCr 감마 조정 로직(814), 크로마 데시메이션 로직(816) 및 스케일링 로직(818)을 포함한다. YCbCr 처리 로직(566)은 1-평면, 2-평면 또는 3-평면 메모리 구성들을 이용하여 4:4:4, 4:2:2 또는 4:2:0 포맷들로 픽셀 데이터를 처리하도록 구성될 수 있다. 또한, 일 실시예에서, YCbCr 입력 신호(586)는 10-비트 값들로서 루마 및 크로마 정보를 제공할 수 있다.
이해되는 바와 같이, 1-평면, 2-평면 또는 3-평면에 대한 언급은 픽처 메모리에서 이용되는 이미징 평면들의 수를 지칭한다. 예를 들어, 3-평면 포맷에서, Y, Cb 및 Cr 컴포넌트들 각각은 별도의 각각의 메모리 평면들을 이용할 수 있다. 2-평면 포맷에서, 제1 평면은 루마 컴포넌트(Y)에 대해 제공될 수 있으며, Cb와 Cr 샘플들을 인터리브하는 제2 평면은 크로마 컴포넌트들(Cb 및 Cr)에 대해 제공될 수 있다. 1-평면 포맷에서, 메모리에서의 단일 평면은 루마와 크로마 샘플들로 인터리브된다. 또한, 4:4:4, 4:2:2 및 4:2:0 포맷들과 관련하여, 4:4:4 포맷은 3개의 YCbCr 컴포넌트들 각각이 동일한 레이트로 샘플링되는 샘플링 포맷을 지칭하는 것임을 이해할 수 있다. 4:2:2 포맷에서, 크로마 컴포넌트들 Cb 및 Cr은 루마 컴포넌트 Y의 샘플링 레이트의 절반으로 서브-샘플링되고, 따라서 수평 방향으로 크로마 컴포넌트들 Cb 및 Cr의 해상도를 절반만큼 감소시킨다. 마찬가지로, 4:2:0 포맷은 수직 및 수평 양방향으로 크로마 컴포넌트들 Cb 및 Cr을 서브-샘플링한다.
YCbCr 정보의 처리는 소스 버퍼 내에 정의된 활성 소스 구역 내에서 발생할 수 있으며, 활성 소스 구역은 "유효" 픽셀 데이터를 포함한다. 예를 들어, 도 73을 참조하면, 활성 소스 구역(822)을 정의한 소스 버퍼(820)가 도시되어 있다. 도시된 예에서, 소스 버퍼는 10-비트 값들의 소스 픽셀들을 제공하는 4:4:4의 1-평면 포맷을 나타낼 수 있다. 활성 소스 구역(822)은 루마(Y) 샘플들 및 크로마 샘플들(Cb 및 Cr)에 대해 개별적으로 지정될 수 있다. 따라서, 활성 소스 구역(822)은 실제로 루마 및 크로마 샘플들에 대한 다수의 활성 소스 구역들을 포함할 수 있다는 것을 이해해야 한다. 루마 및 크로마에 대한 활성 소스 구역들(822)의 시작은 소스 버퍼의 베이스 어드레스 (0,0)(824)으로부터의 오프셋에 기초하여 결정될 수 있다. 예를 들어, 루마 활성 소스 구역에 대한 시작 위치(Lm_X, Lm_Y)(826)는 베이스 어드레스(824)에 대한 x-오프셋(830) 및 y-오프셋(834)에 의해 정의될 수 있다. 마찬가지로, 크로마 활성 소스 구역에 대한 시작 위치(Ch_X, Ch_Y)(828)는 베이스 어드레스(824)에 대한 x-오프셋(832) 및 y-오프셋(836)에 의해 정의될 수 있다. 본 예에서 루마 및 크로마에 대한 y-오프셋들(832 및 836)은 각각 동일할 수 있다는 점을 유념해야 한다. 시작 위치(826)에 기초하여, 루마 활성 소스 구역은 폭(838) 및 높이(840)에 의해 정의될 수 있고, 그 각각은 x 및 y 방향들의 루마 샘플들의 개수를 각각 나타낼 수 있다. 또한, 시작 위치(828)에 기초하여, 크로마 활성 소스 구역은 폭(842) 및 높이(844)에 의해 정의될 수 있고, 그 각각은 x 및 y 방향들의 크로마 샘플들의 개수를 각각 나타낼 수 있다.
도 74는 루마 및 크로마 샘플들에 대한 활성 소스 구역들이 어떻게 2-평면 포맷으로 결정될 수 있는지를 나타내는 예를 더 제공한다. 예를 들어, 도시되어 있는 바와 같이, 루마 활성 소스 구역(822)은 (베이스 어드레스(824)를 갖는) 제1 소스 버퍼(820)에서 시작 위치(826)에 대하여 폭(838) 및 높이(840)에 의해 지정된 영역에 의해 정의될 수 있다. 크로마 활성 소스 구역(848)은 (베이스 어드레스(706)를 갖는) 제2 소스 버퍼(846)에서 시작 위치(828)에 관하여 폭(842) 및 높이(844)에 의해 지정된 영역으로서 정의될 수 있다.
상술한 점들을 유념하면서 도 72를 다시 참조하면, YCbCr 신호(586)는 우선 이미지 선명화 로직(810)에 의해 수신된다. 이미지 선명화 로직(810)은 픽처 선명화 및 에지 강조 처리를 수행하여 이미지에서의 텍스처 및 에지 디테일들을 증가시키도록 구성될 수 있다. 이해되는 바와 같이, 이미지 선명화는 지각된 이미지 해상도를 향상시킬 수 있다. 그러나, 일반적으로, 이미지에 존재하는 잡음은 텍스처 및/또는 에지들로서 검출되지 않고, 따라서 선명화 프로세스 동안 증폭되지 않는 것이 바람직하다.
본 기술에 따르면, 이미지 선명화 로직(810)은 YCbCr 신호의 루마(Y) 컴포넌트에 대해 멀티-스케일 비선명(unsharp) 마스크 필터를 이용하여 픽처 선명화를 수행할 수 있다. 일 실시예에서, 차분 스케일 사이즈들의 2 이상의 저역 통과 가우스 필터가 제공될 수 있다. 예를 들어, 2개의 가우스 필터를 제공하는 일 실시예에서, 비선명 마스크를 생성하기 위해 제2 반경(y)을 갖는 제2 가우스 필터의 출력으로부터 제1 반경(x)을 갖는 제1 가우스 필터의 출력(예를 들어, 가우스 블러링)이 감산되며, 여기서 x는 y보다 더 크다. 추가의 비선명 마스크들은 또한 Y 입력으로부터 가우스 필터들의 출력들을 감산으로써 획득될 수 있다. 특정 실시예들에서, 본 기술은 또한, 비교(들)의 결과들에 기초하여, 최종 출력을 생성하기 위해서 오리지널 Y 입력 이미지 또는 가우스 필터들 중 하나의 출력으로서 선택될 수 있는 베이스 이미지에 이득 양들이 추가될 수 있도록 비선명 마스크들을 이용하여 수행될 수 있는 적응형 코어링 임계 비교 동작들을 제공할 수 있다.
도 75를 참조하면, 본 개시된 기술의 실시예들에 따라 이미지 선명화를 수행하기 위한 예시적인 로직(850)을 도시하는 블록도가 도시되어 있다. 이 로직(850)은 입력 루마 이미지 Yin에 적용될 수 있는 멀티-스케일 비선명 필터링 마스크를 나타낸다. 예를 들어, 도시된 바와 같이, Yin은 2개의 저역 통과 가우스 필터들(852(G1) 및 854(G2))에 의해 수신되며 처리된다. 본 예에서, 필터(852)는 3×3 필터일 수 있고, 필터(854)는 5×5 필터일 수 있다. 그러나, 추가적인 실시예들에서, 상이한 스케일의 필터들을 포함하는 3개 이상의 가우스 필터도 사용될 수 있다(예를 들어, 7×7, 9×9 등)는 것을 이해해야 한다. 인식되는 바와 같이, 저역 통과 필터링 프로세스로 인해, 일반적으로 잡음에 대응하는 고주파수 컴포넌트들이 G1 및 G2의 출력들로부터 제거되어 "비선명" 이미지들(G1out 및 G2out)을 생성할 수 있다. 이하에 논의되는 바와 같이, 베이스 이미지로서 비선명 입력 이미지를 이용하는 것은 선명화 필터의 일부분으로서 잡음 감소를 허용한다.
3×3 가우스 필터(852) 및 5×5 가우스 필터(854)는 이하에 나타낸 바와 같이 정의될 수 있다.
단지 예로서, 가우스 필터 G1 및 G2의 값들은 일 실시예에서 이하와 같이 선택될 수 있다.
Figure 112011064114822-pat00095
Yin, G1out 및 G2out에 기초하여, 3개의 비선명 마스크들 Sharp1, Sharp2 및 Sharp3이 생성될 수 있다. Sharp1은 가우스 필터(852)의 비선명 이미지 G1out으로부터 감산된 가우스 필터(854)의 비선명 이미지 G2out으로서 결정될 수 있다. Sharp1은 본질적으로 2개의 저역 통과 필터들 간의 차이이기 때문에, "중간 대역(mid band)" 마스크로서 지칭될 수 있는데, 그 이유는 고주파수 잡음 컴포넌트들이 G1out 비선명 이미지 및 G2out 비선명 이미지에서 이미 필터링되었기 때문이다. 또한, Sharp2는 입력 루마 이미지 Yin으로부터 G2out을 감산함으로써 계산될 수 있으며, Sharp3은 입력 루마 이미지 Yin으로부터 G1out을 감산함으로써 계산될 수 있다. 이하에서 설명되는 바와 같이, 비선명 마스크들 Sharp1, Sharp2 및 Sharp3을 이용하여 적응형 임계 코어링(adaptive threshold coring) 스킴이 적용될 수 있다.
선택 로직(856)을 참조하면, 제어 신호 UnsharpSel에 기초하여 베이스 이미지가 선택될 수 있다. 예시된 실시예에서, 베이스 이미지는 입력 이미지 Yin 또는 필터링된 출력들 G1out이나 G2out일 수 있다. 인식되는 바와 같이, 오리지널 이미지들이 높은 잡음 변이(예컨대, 신호 변이와 거의 대등한 만큼)를 갖는 경우, 선명화에서 오리지널 이미지 Yin을 베이스 이미지로서 이용하는 것은 선명화 중에 잡음 컴포넌트들의 감소를 충분히 제공할 수 없다. 따라서, 입력 이미지에서 잡음량의 특정 임계값이 검출되는 경우, 선택 로직(856)은, 잡음을 포함할 수 있는 고주파수량이 감소된 저역 통과 필터링된 출력들 G1out 또는 G2out 중 하나를 선택하도록 적응될 수 있다. 일 실시예에서, 제어 신호 UnsharpSel의 값은, 이미지의 잡음량을 결정하기 위해 ISP 프런트-엔드 블록(80)에서의 통계 처리 중에 획득된 통계 데이터를 분석함으로써 결정될 수 있다. 예로서, 입력 이미지 Yin이 적은 잡음량을 가져, 출현 잡음이 선명화 프로세스의 결과로서 증가되지 않는 경우, 입력 이미지 Yin은 베이스 이미지(예컨대, UnsharpSel=0)로서 선택될 수 있다. 입력 이미지 Yin이 현저한 잡음 레벨을 포함하도록 결정되어, 선명화 프로세스가 잡음을 증폭할 수 있는 경우, 필터링된 이미지들 G1out 또는 G2out 중 하나가 선택될 수 있다(예컨대, UnsharpSel = 각각 1 또는 2). 따라서, 베이스 이미지를 선택하기 위한 적응형 기술을 적용함으로써, 로직(850)은 본질적으로 잡음 감소 기능을 제공한다.
다음, 이하 설명하는 바와 같이, 적응형 임계 코어링 스킴에 따라, Sharp1, Sharp2 및 Sharp3 마스크들 중 하나 이상에 이득들이 적용될 수 있다. 다음, 비선명 값들 Sharp1, Sharp2 및 Sharp3은 비교기 블록들(858, 860 및 862)에 의해 다양한 임계값들 SharpThd1 SharpThd2, 및 SharpThd3과 비교될 수 있다(반드시 이들 각각에 비교될 필요는 없다). 예를 들어, Sharp1 값은 비교기 블록(858)에서 SharpThd1과 항상 비교된다. 비교기 블록(860)과 관련하여, 임계값 SharpThd2는 선택 로직(866)에 따라 Sharp1 또는 Sharp2 중 어느 하나와 비교될 수 있다. 예를 들어, 선택 로직(866)은 제어 신호 SharpCmp2의 상태에 따라 Sharp1 또는 Sharp2를 선택할 수 있다(예컨대, SharpCmp2=1은 Sharp1을 선택하고; SharpCmp2=0은 Sharp2를 선택한다). 예를 들어, 일 실시예에서, SharpCmp2의 상태는 입력 이미지(Yin)의 잡음 변이/잡음량에 따라 결정될 수 있다.
예시된 실시예에서, 이미지 데이터가 비교적 적은 잡음량을 갖는 것으로 검출되지 않는다면, 일반적으로 Sharp1을 선택하도록 SharpCmp2 값 및 SharpCmp3 값을 설정하는 것이 바람직하다. 이것은, 가우스 저역 통과 필터들 G1 및 G2의 출력들 간의 차이인 Sharp1이 일반적으로 잡음에 덜 민감하기 때문이며, 이에 따라 "잡음이 있는(noisy)" 이미지 데이터에서의 잡음 레벨 변동으로 인해 SharpAmt1, SharpAmt2 및 SharpAmt3 값들이 변동되는 양을 감소시키는 것을 도울 수 있다. 예를 들어, 오리지널 이미지가 높은 잡음 변이를 갖는다면, 고정된 임계값들을 이용하는 경우에 고주파수 컴포넌트들 중 일부가 잡히지 않을 수 있으며, 이에 따라 선명화 프로세스 중에 증폭될 수 있다. 따라서, 입력 이미지의 잡음량이 많은 경우, 잡음량의 일부가 Sharp2에 존재할 수 있다. 이러한 경우, SharpCmp2가 1로 설정되어, 전술한 바와 같이 2개의 저역 통과 필터 출력들의 차이로 인해 감소된 고주파수량을 가지며, 이에 따라 잡음에 덜 민감한 중간 대역 마스크 Sharp1을 선택할 수 있다.
인식되는 바와 같이, SharpCmp3의 제어 하에서 선택 로직(864)에 의한 Sharp1 또는 Sharp3 중 어느 하나의 선택에 유사한 프로세스가 적용될 수 있다. 일 실시예에서, SharpCmp2 및 SharpCmp3은 디폴트로 1(예컨대, Sharp1을 이용)로 설정될 수 있으며, 일반적으로 낮은 잡음 변이를 갖는 것으로 식별되는 입력 이미지들에 대해서만 0으로 설정될 수 있다. 이는 본질적으로, 비교값(Sharp1, Sharp2, 또는 Sharp3)의 선택이 입력 이미지의 잡음 변이에 기초하여 적응되는 적응형 임계 코어링 스킴을 제공한다.
비교기 블록들(858, 860 및 862)의 출력들에 기초하여, 획득된 비선명 마스크들을 (예컨대, 로직(856)을 통해 선택된) 베이스 이미지에 적용함으로써, 선명화된 출력 이미지 Ysharp가 결정될 수 있다. 예를 들어, 먼저 비교기 블록(862)을 참조하면, SharpThd3이 선택 로직(864)에 의해 제공되는 B-입력과 비교되며(여기서 "SharpAbs"라 명명될 것임), SharpCmp3의 상태에 따라 Sharp1 또는 Sharp3 중 어느 하나와 동등할 수 있다. SharpAbs가 임계값 SharpThd3보다 큰 경우, 이득 SharpAmt3은 Sharp3에 적용되며, 그 결과적인 값은 베이스 이미지에 가산된다. SharpAbs가 임계값 SharpThd3보다 작은 경우, 감쇠된 이득 Att3이 적용될 수 있다. 일 실시예에서, 감쇠된 이득 Att3은 다음과 같이 결정될 수 있는데:
[수학식 72]
Figure 112011064114822-pat00096
여기서, SharpAbs는 선택 로직(864)에 의해 결정되는 바와 같이 Sharp1 또는 Sharp3 중 어느 하나이다. 최대 이득(full gain)(SharpAmt3) 또는 감쇠된 이득(Att3) 중 어느 하나와 합산된 베이스 이미지의 선택은 비교기 블록(862)의 출력에 기초하여 선택 로직(868)에 의해 수행된다. 인식되는 바와 같이, 감쇠된 이득의 이용은, SharpAbs가 임계값(예컨대, SharpThd3)보다 크지 않지만, 그럼에도 불구하고 이미지의 잡음 변이가 주어진 임계값에 근접한 상황들을 어드레싱할 수 있다. 이는 선명 픽셀과 비선명 픽셀 간에 두드러진 천이를 감소시키는 것을 도울 수 있다. 예를 들어, 그러한 환경에서 감쇠된 이득을 이용하지 않고 이미지 데이터를 통과시키는 경우, 결과적인 픽셀은 결함 픽셀(예컨대, 불량 픽셀)로서 나타날 수 있다.
다음, 비교기 블록(860)에 대해 유사한 프로세스가 적용될 수 있다. 예를 들어, SharpCmp2의 상태에 따라, 선택 로직(866)은 임계값 SharpThd2와 비교되는 비교기 블록(860)으로의 입력으로서 Sharp1 또는 Sharp2 중 어느 하나를 제공할 수 있다. 비교기 블록(860)의 출력에 따라, 이득 SharpAmt2 또는 SharpAmt2에 기초한 감쇠된 이득 Att2 중 어느 하나가 Sharp2에 적용되고, 전술한 선택 로직(868)의 출력에 가산된다. 인식되는 바와 같이, 감쇠된 이득 Att2는, Sharp1 또는 Sharp2로서 선택될 수 있는 SharpAbs에 대해 이득 SharpAmt2 및 임계값 SharpThd2가 적용된다는 점을 제외하고는, 상기 수학식 72와 유사한 방식으로 계산될 수 있다.
그 후, 이득 SharpAmt1 또는 감쇠된 이득 Att1이 Sharp1에 적용되며, 결과적인 값은 선택 로직(870)의 출력과 합산되어, (선택 로직(872)으로부터) 선명화된 픽셀 출력 Ysharp를 생성한다. 이득 SharpAmt1 또는 감쇠된 이득 Att1 중 어느 하나를 적용하는 선택은, Sharp1과 임계값 SharpThd1을 비교하는 비교기 블록(858)의 출력에 기초하여 결정될 수 있다. 또한, 감쇠된 이득 Att1은, 이득 SharpAmt1 및 임계값 SharpThd1이 Sharp1에 대해 적용된다는 점을 제외하고는 전술한 수학식 72와 유사한 방식으로 결정될 수 있다. 3개의 마스크 각각을 이용하여 스케일링된 결과적인 선명화 픽셀 값들은 입력 픽셀 Yin에 가산되어 선명화된 출력 Ysharp를 생성하는데, 이는 일 실시예에서, (10-비트의 정확도로 YCbCr 처리가 발생한다고 가정하여) 10 비트로 클리핑될 수 있다.
인식되는 바와 같이, 종래의 비선명 마스킹 기법들과 비교해 볼 때, 본 명세서에서 설명된 이미지 선명화 기법들은 텍스처 및 에지들의 강조의 개선을 제공하면서 출력 이미지에서의 잡음도 감소시킬 수 있다. 특히, 본 기법들은, 휴대용 디바이스들(예컨대, 모바일 전화기들)에 통합되는 저해상도 카메라들을 이용하여 낮은 조명 조건들 하에서 획득되는 이미지들과 같이, 예컨대 CMOS 이미지 센서들을 이용하여 캡처되는 이미지들이 열등한 신호대 잡음비를 나타내는 애플리케이션에 적절할 수 있다. 예를 들어, 잡음 변이 및 신호 변이가 대등한 경우, 잡음 컴포넌트들 중 일부가 텍스처 및 에지들을 따라 선명화될 때, 선명화를 위해 고정된 임계값을 이용하는 것은 어렵다. 따라서, 전술한 바와 같이, 본 명세서에서 제공되는 기법들은, 감쇠된 잡음량도 나타내는 선명화된 이미지를 제공하기 위하여 비선명 이미지들(예컨대, G1out 및 G2out)로부터 특징들을 추출하도록, 멀티-스케일 가우스 필터들을 이용하여 입력 이미지로부터 잡음을 필터링할 수 있다.
계속하기 이전에, 예시된 로직(850)은 본 기법의 예시적인 일 실시예만을 제공하도록 의도된 것임을 이해해야 한다. 다른 실시예들에서, 이미지 선명화 로직(810)에 의해 추가적인 또는 소수의 특징들이 제공될 수 있다. 예를 들어, 일부 실시예에서, 감쇠된 이득을 적용하는 것보다는, 로직(850)은 단순히 베이스 값을 통과시킬 수 있다. 또한, 일부 실시예들은 선택 로직 블록들(864, 866 또는856)을 포함하지 않을 수 있다. 예를 들어, 비교기 블록들(860 및 862)은 선택 로직 블록들(864 및 866)로부터의 선택 출력을 각각 수신하는 것보다는, Sharp2 값 및 Sharp3 값을 단순히 수신할 수 있다. 이러한 실시예들은 도 75에 도시된 구현예만큼의 강건한 선명화 및/또는 잡음 감소 특징들을 제공하지 않을 수 있지만, 이러한 설계 선택은 비용 및/또는 비즈니스 관련 제약들의 결과일 수 있다는 것을 이해해야 한다.
본 실시예에서, 일단 선명화된 이미지 출력 YSharp가 획득되면, 이미지 선명화 로직(810)은 에지 강조 및 크로마 억제 특징들도 제공할 수 있다. 이하, 이들 추가적인 특징들 각각을 아래에 설명할 것이다. 우선 도 76을 참조하면, 일 실시예에 따라 도 75의 선명화 로직(850)으로부터 하측으로 구현될 수 있는 에지 강조를 수행하기 위한 예시적인 로직(874)을 설명한다. 도시된 바와 같이, 에지 검출을 위해 Sobel 필터(876)에 의해 오리지널 입력값 Yin이 처리된다. Sobel 필터(876)는 오리지널 이미지의 3×3 픽셀 블록(이하, "A"라 명명함)에 기초하여 그레디언트 값 YEdge를 결정할 수 있으며, Yin은 3×3 블록의 중심 픽셀이다. 일 실시예에서, Sobel 필터(876)는 수평 방향 및 수직 방향에서의 변화들을 검출하기 위해 오리지널 이미지 데이터를 컨볼빙(convolving)함으로써 YEdge를 계산할 수 있다. 이 프로세스는 아래의 수학식 73-75에 나타내어지는데:
Figure 112011064114822-pat00097
[수학식 73]
Figure 112011064114822-pat00098
[수학식 74]
Figure 112011064114822-pat00099
[수학식 75]
Figure 112011064114822-pat00100
여기서, Sx 및 Sy는 수평 및 수직 방향들에서의 그레디언트 에지-강도 검출을 위한 행렬 연산자들을 각각 나타내며, Gx 및 Gy는 수평 및 수직 변화의 도함수들을 각각 포함하는 그레디언트 이미지들을 나타낸다. 따라서, 출력 YEdge는 Gx와 Gy의 곱으로서 결정된다.
다음에, 도 75에서 논의된 바와 같이, 중간 대역 Sharp1 마스크와 함께 선택 로직(880)에 의해 YEdge가 수신된다. 제어 신호 EdgeCmp에 기초하여, 비교기 블록(878)에서 Sharp1 또는 YEdge 중 어느 하나가 임계값 EdgeThd와 비교된다. EdgeCmp의 상태는, 예컨대 이미지의 잡음량에 기초하여 결정되어, 에지 검출 및 강조를 위한 적응형 임계 코어링 스킴을 제공할 수 있다. 다음, 비교기 블록(878)의 출력이 선택 로직(882)에 제공될 수 있으며, 최대 이득 또는 감쇠된 이득 중 어느 하나가 적용될 수 있다. 예를 들어, 비교기 블록(878)에 대한 선택된 B-입력(Sharp1 또는 YEdge)이 EdgeThd보다 클 경우, YEdge를 에지 이득 EdgeAmt와 승산하여 적용될 에지 강조량을 결정한다. 비교기 블록(878)에서의 B-입력이 EdgeThd보다 작은 경우에는, 강조된 에지와 오리지널 픽셀 간의 두드러진 천이를 회피하기 위하여 감쇠된 에지 이득 AttEdge가 적용될 수 있다. 인식되는 바와 같이, AttEdge는 앞서 수학식 72에 나타낸 것과 유사하게 계산될 수 있지만, EdgeAmt 및 EdgeThd는, 선택 로직(880)의 출력에 따라 Sharp1 또는 YEdge일 수 있는 "SharpAbs"에 적용된다. 따라서, 이득(EdgeAmt) 또는 감쇠된 이득(AttEdge) 중 어느 하나를 이용하여 강조된 에지 픽셀이 YSharp(도 75의 로직(850)의 출력)에 가산되어 에지-강조된 출력 픽셀 Yout을 획득할 수 있는데, 이는 일 실시예에서 (YCbCr 처리가 10-비트 정밀도로 발생한다고 가정하면) 10 비트로 클리핑될 수 있다.
이미지 선명화 로직(810)에 의해 제공되는 크로마 억제 특징들(chroma suppression features)에 관련하여, 이러한 특징들은 루마 에지들에서 크로마를 감쇠시킬 수 있다. 일반적으로, 크로마 억제는 상술한 루마 선명화 및/또는 에지 강조 단계들로부터 획득한 값(YSharp, Yout)에 따라 1보다 작은 크로마 이득(감쇠 인자)을 적용함으로써 수행될 수 있다. 예로서, 도 77은 대응하는 선명화된 루마 값들(YSharp)에 대하여 선택될 수 있는 크로마 이득들을 나타내는 커브(892)를 포함하는 그래프(890)를 도시한다. 그래프(890)에 의해 표현되는 데이터는 YSharp 값들 및 0과 1 사이의 대응하는 크로마 이득들(감쇠 인자)의 룩업 테이블로서 구현될 수 있다. 룩업 테이블들은 커브(892)를 근사화(approximate)하는데 이용된다. 룩업 테이블의 2개의 감쇠 인자들 사이에 공존하는 YSharp 값들에 대하여, 현재 YSharp 값 위/아래의 YSharp 값들에 대응하는 2개의 감쇠 인자에 선형 보간이 적용될 수 있다. 또한, 다른 실시예들에서, 입력 루마 값이 또한 앞서 도 76에서 논의된 로직(874)에 의해 결정되는 YEdge 값, 또는 앞서 도 75에서 논의된 로직(850)에 의해 결정되는 Sharp1, Sharp2 또는 Sharp3 값들 중 하나로서 선택될 수 있다.
그 다음, 이미지 선명화 로직(810; 도 72)의 출력은 밝기, 콘트라스트 및 컬러(BCC) 조정 로직(812)에 의해 처리된다. BCC 조정 로직(812)의 일 실시예를 나타내는 기능적인 블록도는 도 78에 도시한다. 도시된 바와 같이, 로직(812)은 밝기 및 콘트라스트 처리 블록(894), 글로벌 색상 제어 블록(896) 및 채도 제어 블록(898)을 포함한다. 본 예시된 실시예는 YCbCr 데이터의 10-비트 정밀도 처리를 제공하지만, 다른 실시예들은 상이한 비트-깊이를 이용할 수 있다. 블록들(894, 896 및 898) 각각의 기능들이 이하 기술된다.
먼저 밝기 및 콘트라스트 처리 블록(894)을 참조하면, 우선 루마(Y) 데이터로부터 오프셋(YOffset)을 차감하여 블랙 레벨을 0으로 설정한다. 이는 콘트라스트 조정이 블랙 레벨을 변경하지 않음을 보장하기 위해 행해지는 것이다. 그 다음, 루마 값에 콘트라스트 이득 값이 곱해져서 콘트라스트 제어를 적용한다. 예로서, 콘트라스트 이득 값은 2 정수 비트들 및 10 소수 비트들을 갖는 부호없는 12-비트일 수 있어, 픽셀 값의 4배까지의 콘트라스트 이득 범위를 제공한다. 그 후에, 루마 데이터로부터의 밝기 오프셋 값을 더함(또는 차감함)으로써 밝기 조정이 구현될 수 있다. 예로서, 본 실시예에서의 밝기 오프셋은 -512와 +512 사이의 범위를 갖는 10-비트의 2의 보수 값일 수 있다. 또한, 콘트라스트의 변경 시에 DC 오프셋이 변하는 것을 회피하기 위하여 밝기 조정은 콘트라스트 조정 이후에 수행됨을 유의해야 한다. 그 후에, 초기 YOffset이 이 조정된 루마 데이터에 다시 더해져서, 블랙 레벨을 재배치한다.
블록(896) 및 블록(898)은 Cb 및 Cr 데이터의 색상 특성에 기초하는 컬러 조정을 제공한다. 도시된 바와 같이, 먼저 Cb 및 Cr 데이터로부터 512의 오프셋(10-비트 처리 가정)이 차감되어 그 범위를 대략 0에 배치한다. 그 다음, 색상은 다음의 수학식에 따라서 조정되는데:
[수학식 76]
Figure 112011064114822-pat00101
[수학식 77]
Figure 112011064114822-pat00102
여기서, Cbadj 및 Cradj는 조정된 Cb 및 Cr 값들을 나타내고, θ는 다음과 같이 계산될 수 있는 색상 각도를 나타낸다.
[수학식 78]
Figure 112011064114822-pat00103
상기의 연산들은 글로벌 색상 제어 블록(896) 내의 로직에 의해 도시되며, 다음의 행렬 연산에 의해 표현될 수 있는데:
[수학식 79]
Figure 112011064114822-pat00104
여기서, Ka = cos(θ), Kb= sin(θ)이고, θ는 상기의 수학식 78에서 정의되었다.
그 다음, 채도 제어 블록(898)에 의해 도시된 바와 같이, 채도 제어가 Cbadj 및 Cradj 값들에 적용될 수 있다. 예시된 실시예에서, 채도 제어는 Cb 및 Cr 값들 각각에 대해 글로벌 채도 승수(multiplier) 및 색상-기반 채도 승수를 적용함으로써 수행된다. 색상-기반 채도 제어는 컬러들의 재생을 향상시킬 수 있다. 컬러의 색상(the hue of color)은 도 79의 컬러 휠 그래프(color wheel graph; 904)에 의해 도시된 바와 같이 YCbCr 컬러 공간으로 표현될 수 있다. 인식되는 바와 같이, YCbCr 색상 및 채도 컬러 휠(904)은 HSV 컬러 공간(색상, 채도 및 강도)에서 동일한 컬러 휠을 대략 109˚만큼 시프트시킴으로써 유도될 수 있다. 도시된 바와 같이, 그래프(904)는 0˚와 360˚ 사이의 범위 내의 앞서 정의된 θ를 나타내는 각도 값들뿐만 아니라 0 내지 1의 범위 내의 채도 승수(S)를 나타내는 원주 값들을 포함한다. 각각의 θ는 상이한 컬러를 나타낼 수 있다(예를 들어, 49˚는 마젠타색, 109˚는 적색, 229˚는 녹색 등). 특정 색상 각도 θ에서의 컬러의 색상은 적절한 채도 승수(S)를 선택함으로써 조정될 수 있다.
다시 도 78을 참조하면, (글로벌 색상 제어 블록(896)에서 계산된) 색상 각도 θ는 Cb 채도 룩업 테이블(900) 및 Cr 채도 룩업 테이블(902)에 대한 인덱스로서 이용될 수 있다. 일 실시예에서, 채도 룩업 테이블들(900 및 902)은 0˚ 내지 360˚의 색상 범위에서 고르게 분포된 256개의 채도 값들을 포함할 수 있고(예를 들어, 첫번째 룩업 테이블 엔트리는 0˚에 있고, 마지막 엔트리는 360˚에 있음), 주어진 픽셀에서의 채도 값(S)은 룩업 테이블에서 현재 색상 각도 θ 바로 위/아래에 있는 채도 값들의 선형 보간을 통해 결정될 수 있다. Cb 및 Cr 컴포넌트들 각각에 대한 최종 채도 값은 (Cb 및 Cr 각각에 대한 글로벌 상수일 수 있는) 글로벌 채도 값에 그 결정된 색상-기반 채도 값을 곱함으로써 획득된다. 따라서, 색상-기반 채도 제어 블록(898)에 도시된 바와 같이, 최종 보정된 Cb' 및 Cr' 값들은 Cbadj 및 Cradj를 이들의 각각의 최종 채도 값들과 곱함으로써 결정될 수 있다.
그 다음, 도 72에 도시된 바와 같이, BCC 로직(812)의 출력이 YCbCr 감마 조정 로직(814)으로 전달된다. 일 실시예에서, 감마 조정 로직(814)은 Y, Cb 및 Cr 채널들에 대한 비선형 매핑 함수들을 제공할 수 있다. 예를 들면, 입력 Y, Cb 및 Cr 값들은 대응하는 출력 값들에 매핑된다. 다시 말하지만, YCbCr 데이터가 10-비트로 처리된다고 가정하면, 보간된 10-비트 256 엔트리 룩업 테이블이 이용될 수 있다. 3개의 이러한 룩업 테이블에는 Y, Cb 및 Cr 채널들 각각에 대해 하나가 제공될 수 있다. 256개의 입력 엔트리들 각각은 고르게 분포되고, 출력은 현재 입력 인덱스의 바로 위/아래의 인덱스들에 매핑된 출력 값들의 선형 보간에 의해 결정될 수 있다. 일부 구현에서, (10-비트 데이터에 대한) 1024개의 엔트리들을 갖는 보간되지 않은 룩업 테이블이 또한 이용될 수 있지만, 상당히 더 큰 메모리 요건들을 가질 수 있다. 인식되는 바와 같이, 룩업 테이블들의 출력 값들을 조정함으로써, 흑백(black and white), 세피아톤(sepia tone), 이미지 반전(negative images), 반전(solarization) 등과 같은 특정 이미지 필터 효과들을 수행하는데 YCbCr 감마 조정 기능이 또한 이용될 수 있다.
그 다음, 크로마 데시메이션(chroma decimation)이 크로마 데시메이션 로직(816)에 의해 감마 조정 로직(814)의 출력에 적용될 수 있다. 일 실시예에서, 크로마 데시메이션 로직(816)은 YCbCr 데이터를 4:4:4 포맷으로부터 4:2:2 포맷으로 변환하는 수평 데시메이션을 수행하도록 구성될 수 있는데, 여기서 크로마(Cr 및 Cr) 정보는 루마 데이터의 1/2 레이트로 서브-샘플링된다. 단지 예로서, 데시메이션은 하프-대역 란초스 필터(half-band lanczos filter)와 같은 7-탭 저역 통과 필터를 7개의 수평 픽셀들의 세트에 적용함으로써 아래와 같이 수행될 수 있는데:
[수학식 80]
Figure 112011064114822-pat00105
여기서, in(i)는 입력 픽셀(Cb 또는 Cr)을 나타내고, C0-C6은 7-탭 필터의 필터링 계수들을 나타낸다. 각 입력 픽셀은 크로마 필터링된 샘플들에 대한 플렉시블 위상 오프셋을 허용하기 위하여 독립적인 필터 계수(C0-C6)를 갖는다.
또한, 크로마 데시메이션은, 일부 예에서, 필터링 없이 또한 수행될 수 있다. 이는 소스 이미지가 본래에 4:2:2 포맷으로 수신되었지만, YCbCr 처리를 위하여 4:4:4 포맷으로 업샘플링되었을 때에 유용할 수 있다. 이 경우, 결과적인 데시메이션된 4:2:2 이미지는 오리지널 이미지와 동일하다.
그 다음, 크로마 데시메이션 로직(816)으로부터 출력된 YCbCr 데이터는 YCbCr 처리 블록(566)으로부터 출력되기 전에 스케일링 로직(818)을 이용하여 스케일링될 수 있다. 스케일링 로직(818)의 기능은 도 28을 참조하여 상술한 바와 같은 프런트-엔드 픽셀 처리 유닛(130)의 비닝 보상 필터(300)의 스케일링 로직(368, 370)의 기능성과 유사할 수 있다. 예를 들면, 스케일링 로직(818)은 수평 스케일링 및 수직 스케일링을 2 단계로서 수행할 수 있다. 일 실시예에서, 수직 스케일링에 5-탭 다상 필터가 이용될 수 있고, 수평 스케일링에 9-탭 다상 필터가 이용될 수 있다. 멀티-탭 다상 필터는 소스 이미지로부터 선택된 픽셀들을 가중 인자(예들 들면, 필터 계수)와 곱한 다음 출력들을 합산하여 목표 픽셀을 형성할 수 있다. 선택된 픽셀들은 현재 픽셀 위치 및 필터 탭들의 수에 따라 선택될 수 있다. 예를 들면, 수직 5-탭 필터의 경우, 현재 픽셀의 각 수직측의 2개의 이웃 픽셀들이 선택될 수 있고, 수평 9-탭 필터의 경우, 현재 픽셀의 각 수평측의 4개의 이웃 픽셀들이 선택될 수 있다. 필터링 계수들은 룩업 테이블로부터 제공될 수 있고, 현재의 픽셀간 소수 위치(current between-pixel fractional position)에 의해 결정될 수 있다. 그 다음, 스케일링 로직(818)의 출력(588)이 YCbCr 처리 블록(566)으로부터 출력된다.
도 49를 다시 참조하면, 처리된 출력 신호(588)가 메모리(108)에 전송될 수 있거나, 또는 ISP 파이프 처리 로직(82)으로부터 이미지 신호(114)로서 사용자에 의한 뷰잉을 위해 디스플레이 하드웨어(예를 들면, 디스플레이(28))에, 또는 압축 엔진(예를 들면, 인코더(118))에 출력될 수 있다. 일부 실시예에서, 이미지 신호(114)는 그래픽 처리 유닛 및/또는 압축 엔진에 의해 더 처리되고, 압축해제되어 디스플레이에 제공되기 전에 저장될 수 있다. 또한, 특히 비디오 이미지 데이터에 관련하여 디스플레이에 출력되는 이미지 데이터의 버퍼링을 제어하기 위해 하나 이상의 프레임 버퍼가 또한 제공될 수 있다.
이해될 수 있는 바와 같이, 본 명세서에서는 특히 결함 픽셀 검출과 보정, 렌즈 쉐이딩 보정, 디모자이크 및 이미지 선명화에 관한 상술한 각종 이미지 처리 기술들이 단지 예로서 제공된다. 따라서, 본 개시물은 상기 제공된 예들로만 한정되는 것으로 해석되어서는 안 된다고 이해되어야 한다. 실제로, 본 명세서에 도시된 예시적인 로직에는 다른 실시예들에서 추가적인 특징들 및/또는 다수의 변형들이 이루어질 수 있다. 또한, 상술한 기술들은 임의의 적합한 방식으로 구현될 수 있다고 인식되어야 한다. 예를 들면, 이미지 처리 회로(32)의 컴포넌트들, 특히 ISP 프런트-엔드 블록(80) 및 ISP 파이프 블록(82)이 하드웨어(예를 들면, 적합하게 구성된 회로), 소프트웨어(예를 들면, 하나 이상의 유형적 컴퓨터 판독가능 매체 상에 저장된 실행가능 코드를 포함하는 컴퓨터 프로그램을 통함)를 이용하여, 또는 하드웨어와 소프트웨어 요소들 모두의 조합을 이용하여 구현될 수 있다.
상술한 특정 실시예들이 예로서 제시되었지만, 이들 실시예는 각종 수정 및 대안적인 형태들이 가능하다고 이해되어야 한다. 또한, 특허청구범위는 개시된 특정 형태들을 한정하고자 하는 것이 아니라, 이 개시물의 사상 및 범위 내에 있는 모든 수정물들, 동등물들 및 대안물들을 커버하는 것으로 이해되어야 한다.

Claims (20)

  1. 이미지 신호 처리 시스템으로서,
    프런트-엔드 처리 로직(front-end processing logic)을 포함하고,
    상기 프런트-엔드 처리 로직은,
    제1 이미지 센서로부터 이미지 데이터를 수신하도록 구성된 제1 입력;
    제2 이미지 센서로부터 이미지 데이터를 수신하도록 구성된 제2 입력;
    상기 제1 이미지 센서 및 상기 제2 이미지 센서로부터 수신된 이미지 데이터를 프레임 단위로(on a frame-by-frame basis) 처리하도록 구성된 프런트-엔드 픽셀 처리 유닛(a front-end pixel processing unit); 및
    자동으로(automatically), 상기 제1 이미지 센서와 상기 제2 이미지 센서 중 하나만이 활성인 경우에는 단일 센서 모드에서 상기 프런트-엔드 처리 로직을 동작시키고, 상기 제1 이미지 센서와 상기 제2 이미지 센서 모두가 활성인 경우에는 듀얼 센서 모드에서 상기 프런트-엔드 처리 로직을 동작시켜, 상기 프런트-엔드 처리 로직이 상기 단일 센서 모드에 있는지 상기 듀얼 센서 모드에 있는지를 나타내는 입력을 수신할 필요없이 상기 프런트-엔드 처리 로직을 동작시키도록 구성된 프런트-엔드 제어 유닛(a front-end control unit)을 포함하고,
    상기 단일 센서 모드에서 동작하고 있는 경우에는, 활성 센서에 의해 취득된 이미지 프레임들은 상기 활성 센서의 센서 인터페이스에 의한 처리를 위해 상기 프런트-엔드 픽셀 처리 유닛으로 직접 제공되며,
    상기 듀얼 센서 모드에서 동작하고 있는 경우에는, 상기 제1 센서에 의해 취득된 이미지 프레임들과 상기 제2 센서에 의해 취득된 이미지 프레임들은 인터리브(interleaved) 방식으로 상기 프런트-엔드 픽셀 처리 유닛으로 제공되어 하나의 프런트-엔드 픽셀 처리 유닛이 상기 제1 및 제2 이미지 센서들로부터 수신된 상기 이미지 데이터를 처리할 수 있는 이미지 신호 처리 시스템.
  2. 제1항에 있어서,
    상기 제1 이미지 센서는 제1 센서 인터페이스를 포함하고, 상기 제2 이미지 센서는 제2 센서 인터페이스를 포함하며, 상기 제1 센서 인터페이스 및 상기 제2 센서 인터페이스는 각각의 제어 레지스터와 각각 연관되는 이미지 신호 처리 시스템.
  3. 제1항에 있어서,
    각각의 제어 레지스터는 목적지 필드, 레지스터 뱅크 필드, 및 아밍(arming) 비트를 포함하는 이미지 신호 처리 시스템.
  4. 제3항에 있어서,
    상기 단일 센서 모드에서 동작하고 있는 경우, 상기 프런트-엔드 제어 유닛은,
    상기 목적지 필드에 목적지 값들의 세트를 기입하는 것 - 상기 목적지 값들의 세트는, 상기 활성 센서에 의해 취득된 이미지 데이터를 수신할 하나 이상의 목적지 유닛들을 상기 프런트-엔드 처리 로직 내에 정의하며, 상기 하나 이상의 목적지 유닛들은 상기 프런트-엔드 픽셀 처리 유닛을 포함함 -; 및
    상기 레지스터 뱅크 필드에 레지스터 뱅크 값들의 세트를 기입하는 것 - 상기 레지스터 뱅크 값들의 세트는, 상기 하나 이상의 목적지 유닛들을 구성하는데 이용될 수 있는 제1 레지스터 뱅크 및 제2 레지스터 뱅크로부터의 하나 이상의 데이터 레지스터들을 정의함 -
    에 의해, 상기 활성 센서와 연관된 제어 레지스터를 프로그래밍하도록 구성되는 이미지 신호 처리 시스템.
  5. 제4항에 있어서,
    상기 프런트-엔드 제어 유닛은, 상기 아밍 비트를 1의 값으로 설정함으로써 현재 이미지 프레임이 처리되고 있는 동안에 상기 활성 센서와 연관된 제어 레지스터를 아밍하고, 트리거링 이벤트를 대기하며, 상기 트리거링 이벤트가 검출되는 경우, 처리를 위해 상기 목적지 값들의 세트에 의해 정의된 목적지 유닛들로 다음 이미지 프레임을 송신함으로써 상기 다음 이미지 프레임의 처리를 개시하도록 구성되는 이미지 신호 처리 시스템.
  6. 제3항에 있어서,
    상기 듀얼 센서 모드에서 동작하고 있는 경우, 상기 프런트-엔드 제어 유닛은,
    상기 제1 이미지 센서와 연관된 제어 레지스터에 대하여, 상기 목적지 필드에 목적지 값들의 세트를 기입하며 - 상기 목적지 값들의 세트는, 상기 제1 이미지 센서에 의해 취득된 이미지 데이터를 수신할 하나 이상의 목적지 유닛들을 상기 프런트-엔드 처리 로직 내에 정의하며, 상기 하나 이상의 목적지 유닛들은 메모리 디바이스를 포함함 -, 상기 레지스터 필드에 레지스터 뱅크 값들의 세트를 기입하는 것 - 상기 레지스터 뱅크 값들의 세트는, 상기 목적지 값들의 세트에 의해 정의된 하나 이상의 목적지 유닛들을 구성하는데 이용될 수 있는 제1 레지스터 뱅크 및 제2 레지스터 뱅크로부터의 하나 이상의 데이터 레지스터들을 정의함 -; 및
    상기 제2 이미지 센서와 연관된 제어 레지스터에 대하여, 상기 목적지 필드에 목적지 값들의 세트를 기입하며 - 상기 목적지 값들의 세트는, 상기 제2 이미지 센서에 의해 취득된 이미지 데이터를 수신할 하나 이상의 목적지 유닛들을 상기 프런트-엔드 처리 로직 내에 정의하며, 상기 하나 이상의 목적지 유닛들은 메모리 디바이스를 포함함 -, 상기 레지스터 필드에 레지스터 뱅크 값들의 세트를 기입하는 것 - 상기 레지스터 뱅크 값들의 세트는, 상기 하나 이상의 목적지 유닛들을 구성하는데 이용될 수 있는 제1 레지스터 뱅크 및 제2 레지스터 뱅크로부터의 하나 이상의 데이터 레지스터들을 정의함 -
    에 의해, 상기 제1 이미지 센서 및 상기 제2 이미지 센서와 연관된 제어 레지스터들을 프로그래밍하도록 구성되는 이미지 신호 처리 시스템.
  7. 제6항에 있어서,
    트리거링 이벤트 시에, 상기 제1 이미지 센서에 의해 취득된 현재 프레임과 상기 제2 이미지 센서에 의해 취득된 현재 프레임은 상기 메모리 디바이스에 기입되는 이미지 신호 처리 시스템.
  8. 제6항에 있어서,
    메모리와 연관된 제어 레지스터를 포함하며, 상기 메모리와 연관된 제어 레지스터는, 상기 제1 이미지 센서 및 상기 제2 이미지 센서에 의해 취득된 이미지 프레임들이 상기 메모리에서 판독되어 인터리브 방식으로 상기 프런트-엔드 픽셀 처리 유닛으로 제공될 수 있도록 상기 프런트-엔드 제어 유닛에 의해 프로그래밍되는 이미지 신호 처리 시스템.
  9. 제7항에 있어서,
    상기 제1 이미지 센서에 의해 취득된 이미지 프레임들이 상기 제2 센서에 의해 취득된 이미지 프레임들과 인터리브되는 비율은 상기 제1 이미지 센서에 의해 취득된 이미지 데이터의 프레임 레이트와 상기 제2 이미지 센서에 의해 취득된 이미지 데이터의 프레임 레이트에 적어도 부분적으로 의존하는 이미지 신호 처리 시스템.
  10. 제6항에 있어서,
    상기 프런트-엔드 픽셀 처리 유닛은,
    이미지 데이터를 처리하여 하나 이상의 이미지 통계치 세트를 취득하도록 구성된 제1 통계치 처리 유닛; 및
    이미지 데이터를 처리하여 하나 이상의 이미지 통계치 세트를 취득하도록 구성된 제2 통계치 처리 유닛을 포함하고,
    상기 듀얼 센서 모드에서 동작하고 있는 경우, 상기 제1 이미지 센서와 연관된 제어 레지스터에 저장된 목적지 값들의 세트에 의해 지정된 하나 이상의 목적지들은 상기 제1 통계치 처리 유닛을 더 포함하며, 상기 제2 이미지 센서와 연관된 제어 레지스터에 저장된 목적지 값들의 세트에 의해 지정된 하나 이상의 목적지들은 상기 제2 통계치 처리 유닛을 더 포함하는 이미지 신호 처리 시스템.
  11. 복수의 이미지 입력 소스들 - 상기 이미지 입력 소스들은 제1 이미지 센서 및 제2 이미지 센서를 포함함 - 을 갖는 이미지 신호 처리(ISP) 시스템의 프런트-엔드 처리 회로에서 이미지 데이터를 처리하는 방법으로서,
    제어 유닛을 이용하여, 상기 프런트-엔드 처리 회로가 단일 센서 모드에서 동작하고 있는지 또는 제1 듀얼 센서 모드에서 동작하고 있는지를 결정하는 단계 - 상기 단일 센서 모드에서는 상기 제1 이미지 센서와 상기 제2 이미지 센서 중 하나만이 활성이며, 상기 제1 듀얼 센서 모드에서는 상기 제1 이미지 센서와 상기 제2 이미지 센서 모두가 활성임 -;
    상기 프런트-엔드 처리 회로가 상기 단일 센서 모드에서 동작하고 있는 경우에는, 이미지 프레임을 처리하기 위해 하나 이상의 목적지들 및 데이터 레지스터들을 정의하도록 활성 이미지 센서와 연관된 제어 레지스터를 프로그래밍함으로써 상기 활성 이미지 센서에 의해 취득된 이미지 프레임들을 처리하고, 상기 활성 이미지 센서와 연관된 제어 레지스터를 아밍하며, 상기 이미지 프레임에 대한 트리거링 이벤트의 검출 시에, 상기 제어 레지스터에 정의된 목적지들에 상기 이미지 프레임을 송신하는 단계 - 상기 목적지들은 적어도 상기 이미지 프레임을 처리하도록 구성된 프런트-엔드 픽셀 처리 유닛을 포함함 -; 및
    상기 프런트-엔드 처리 회로가 상기 제1 듀얼 센서 모드에서 동작하고 있는 경우에는, 상기 제1 이미지 센서에 의해 취득된 이미지 프레임들이 메모리 디바이스에 기입되게 하도록 상기 제1 이미지 센서와 연관된 제어 레지스터를 프로그래밍하고, 상기 제2 이미지 센서에 의해 취득된 이미지 프레임들이 상기 메모리 디바이스에 기입되게 하도록 상기 제2 이미지 센서와 연관된 제어 레지스터를 프로그래밍하고, 상기 메모리 디바이스로부터 판독된 이미지 프레임들을 처리하기 위해 하나 이상의 목적지들 및 데이터 레지스터들을 정의하도록 상기 메모리 디바이스와 연관된 제어 레지스터를 프로그래밍하고, 상기 메모리 디바이스와 연관된 제어 레지스터를 아밍하며, 후속 이미지 프레임에 대한 트리거링 이벤트의 검출 시에, 상기 메모리 디바이스와 연관된 제어 레지스터에 정의된 목적지들로 상기 후속 이미지 프레임을 송신하는 단계 - 상기 목적지들은 적어도 상기 후속 이미지 프레임을 처리하도록 구성된 상기 프런트-엔드 픽셀 처리 유닛을 포함하며, 메모리로부터 판독된 이미지 프레임들은 인터리브 방식으로 배열되는 상기 제1 이미지 센서 및 상기 제2 이미지 센서에 의해 취득된 이미지 프레임들을 포함함 -
    를 포함하는 방법.
  12. 제11항에 있어서,
    상기 프런트-엔드 처리 회로는 또한 제2 듀얼 센서 모드에서 동작하도록 구성되고, 상기 제2 듀얼 센서 모드에서, 상기 제1 이미지 센서는 활성이며, 상기 제2 이미지 센서는 반활성(semi-active)이고,
    상기 프런트-엔드 처리 회로가 상기 제1 듀얼 센서 모드에서 동작하고 있는 경우, 상기 제1 이미지 센서와 연관된 제어 레지스터는, 상기 제1 이미지 센서에 의해 취득된 이미지 프레임들이 상기 프런트-엔드 픽셀 처리 유닛으로 송신되게 하도록 프로그래밍되며, 상기 제2 이미지 센서와 연관된 제어 레지스터는, 상기 제2 이미지 센서에 의해 취득된 이미지 프레임들이 상기 프런트-엔드 픽셀 처리 유닛이 아닌 통계치 처리 유닛으로 송신되게 하도록 프로그래밍되는 방법.
  13. 제11항에 있어서,
    상기 단일 센서 모드에서 동작하고 있는 경우, 상기 활성 이미지 센서와 연관된 제어 레지스터에 의해 지정된 목적지들이 아이들(idle) 상태로 전이하면, 상기 트리거링 이벤트가 발생하는 방법.
  14. 제11항에 있어서,
    상기 활성 이미지 센서와 연관된 제어 레지스터에 의해 지정된 데이터 레지스터들 중 적어도 하나의 데이터 레지스터는 대응하는 섀도우 레지스터와 연관되며, 상기 섀도우 레지스터의 콘텐츠는, 상기 적어도 하나의 데이터 레지스터의 콘텐츠를 이용하여 현재 이미지 프레임이 처리되고 있는 동안에 후속 이미지 프레임을 위해 업데이트될 수 있는 방법.
  15. 제11항에 있어서,
    상기 듀얼 센서 모드에서 동작하고 있는 경우, 상기 메모리 디바이스와 연관된 제어 레지스터의 아밍 비트가 아밍되는 때에 상기 트리거링 이벤트가 발생하는 방법.
  16. 제11항에 있어서,
    상기 프런트-엔드 처리 회로의 상기 복수의 이미지 입력 소스들은 비동기 이미지 소스들을 포함하는 방법.
  17. 제11항에 있어서,
    상기 프런트-엔드 처리 회로가 현재 동작하고 있는 모드가 변하는지를 검출하는 단계;
    상기 모드가 변하는 경우, 각각의 이미지 입력 소스가 어떠한 목적지 유닛들로도 이미지 데이터를 송신하지 않게 구성되도록 상기 프런트-엔드 처리 회로의 이미지 입력 소스들과 연관된 모든 제어 레지스터들을 프로그래밍하는 단계;
    대응하는 트리거링 이벤트의 검출 시에 각각의 이미지 입력 소스를 트리거링하는 단계;
    모든 목적지 유닛들이 아이들 상태에 있는지를 판정하는 단계; 및
    모든 목적지 유닛들이 아이들 상태에 있는 경우, 현재 모드에 기초하여 상기 이미지 데이터의 처리를 계속하는 단계를 포함하는 방법.
  18. 전자 디바이스로서,
    제1 센서 인터페이스를 갖는 제1 디지털 이미지 센서;
    제2 센서 인터페이스를 갖는 제2 디지털 이미지 센서;
    메모리 디바이스;
    상기 제1 디지털 이미지 센서 또는 상기 제2 디지털 이미지 센서 중 어느 하나에 의해 취득된 미처리(raw) 이미지 데이터에 대응하는 하나 이상의 이미지 장면들의 시각적 표현을 디스플레이하도록 구성된 디스플레이 디바이스; 및
    이미지 신호 처리 시스템
    을 포함하고,
    상기 이미지 신호 처리 시스템은 프런트-엔드 처리 로직을 포함하고,
    상기 프런트-엔드 처리 로직은,
    제1 센서 인터페이스로부터 이미지 데이터를 수신하도록 구성된 제1 입력;
    제2 센서 인터페이스로부터 이미지 데이터를 수신하도록 구성된 제2 입력;
    상기 제1 센서 인터페이스 및 상기 제2 센서 인터페이스로부터 수신된 이미지 데이터를 프레임 단위로 처리하도록 구성된 프런트-엔드 픽셀 처리 유닛; 및
    자동으로, 상기 제1 디지털 이미지 센서와 상기 제2 디지털 이미지 센서 중 하나만이 활성인 경우에는, 단일 센서 모드에서 상기 프런트-엔드 처리 로직을 동작시키고, 상기 제1 디지털 이미지 센서와 상기 제2 디지털 이미지 센서 모두가 활성인 경우에는, 하나의 프런트-엔드 픽셀 처리 유닛이 상기 제1 센서 인터페이스 및 상기 제2 센서 인터페이스로부터 수신된 상기 이미지 데이터를 처리할 수 있도록 하는 듀얼 센서 모드에서 상기 프런트-엔드 처리 로직을 동작시켜, 상기 프런트-엔드 처리 로직이 상기 단일 센서 모드에 있는지 상기 듀얼 센서 모드에 있는지를 나타내는 입력을 수신할 필요없이 상기 프런트-엔드 처리 로직을 동작시키도록 구성된 프런트-엔드 제어 유닛을 포함하는 전자 디바이스.
  19. 제18항에 있어서,
    상기 단일 센서 모드에서 동작하고 있는 경우에는, 활성 센서에 의해 취득된 이미지 프레임들은 상기 활성 센서의 센서 인터페이스에 의한 처리를 위해 상기 프런트-엔드 픽셀 처리 유닛으로 직접 제공되며,
    상기 듀얼 센서 모드에서 동작하고 있는 경우에는, 상기 제1 센서에 의해 취득된 이미지 프레임들과 상기 제2 센서에 의해 취득된 이미지 프레임들은 상기 메모리 디바이스로 먼저 송신되고, 그 다음에 상기 프런트-엔드 픽셀 처리 유닛으로 교번 방식(alternating manner)으로 판독되는 전자 디바이스.
  20. 제18항에 있어서,
    상기 제1 디지털 이미지 센서 및 상기 제2 디지털 이미지 센서는, 상기 전자 디바이스와 통합된 디지털 카메라, 상기 인터페이스를 통해 상기 전자 디바이스에 연결된 외부 디지털 카메라, 또는 이들의 조합 중 적어도 하나를 포함하는 전자 디바이스.
KR1020110082478A 2010-08-18 2011-08-18 듀얼 이미지 센서 이미지 처리 시스템 및 방법 KR101283248B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/858,922 US8493482B2 (en) 2010-08-18 2010-08-18 Dual image sensor image processing system and method
US12/858,922 2010-08-18

Publications (2)

Publication Number Publication Date
KR20120096954A KR20120096954A (ko) 2012-08-31
KR101283248B1 true KR101283248B1 (ko) 2013-07-15

Family

ID=44515038

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110082478A KR101283248B1 (ko) 2010-08-18 2011-08-18 듀얼 이미지 센서 이미지 처리 시스템 및 방법

Country Status (10)

Country Link
US (1) US8493482B2 (ko)
EP (1) EP2594063A1 (ko)
KR (1) KR101283248B1 (ko)
CN (1) CN102523456B (ko)
AU (1) AU2011292290B2 (ko)
BR (1) BR112013003738A2 (ko)
MX (1) MX2013001921A (ko)
RU (1) RU2530009C1 (ko)
TW (1) TWI513298B (ko)
WO (1) WO2012024155A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11218634B2 (en) 2018-04-28 2022-01-04 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Data processing method and apparatus, computer-readable storage medium, and electronic device

Families Citing this family (176)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11792538B2 (en) 2008-05-20 2023-10-17 Adeia Imaging Llc Capturing and processing of images including occlusions focused on an image sensor by a lens stack array
KR101588877B1 (ko) 2008-05-20 2016-01-26 펠리칸 이매징 코포레이션 이종 이미저를 구비한 모놀리식 카메라 어레이를 이용한 이미지의 캡처링 및 처리
US8866920B2 (en) 2008-05-20 2014-10-21 Pelican Imaging Corporation Capturing and processing of images using monolithic camera array with heterogeneous imagers
EP2502115A4 (en) 2009-11-20 2013-11-06 Pelican Imaging Corp RECORDING AND PROCESSING IMAGES THROUGH A MONOLITHIC CAMERA ARRAY WITH HETEROGENIC IMAGE CONVERTER
EP2569935B1 (en) 2010-05-12 2016-12-28 Pelican Imaging Corporation Architectures for imager arrays and array cameras
JP5672862B2 (ja) 2010-08-27 2015-02-18 ソニー株式会社 撮像装置、撮像システム及び撮像方法
US8488055B2 (en) 2010-09-30 2013-07-16 Apple Inc. Flash synchronization using image sensor interface timing signal
US9930316B2 (en) 2013-08-16 2018-03-27 University Of New Brunswick Camera imaging systems and methods
US8930781B2 (en) * 2010-11-22 2015-01-06 Marvell World Trade Ltd. Method and apparatus for defect recovery
US8878950B2 (en) 2010-12-14 2014-11-04 Pelican Imaging Corporation Systems and methods for synthesizing high resolution images using super-resolution processes
US8520080B2 (en) 2011-01-31 2013-08-27 Hand Held Products, Inc. Apparatus, system, and method of use of imaging assembly on mobile terminal
JP2014519741A (ja) 2011-05-11 2014-08-14 ペリカン イメージング コーポレイション アレイカメラ画像データを伝送および受信するためのシステムおよび方法
US20130265459A1 (en) 2011-06-28 2013-10-10 Pelican Imaging Corporation Optical arrangements for use with an array camera
WO2013043761A1 (en) 2011-09-19 2013-03-28 Pelican Imaging Corporation Determining depth from multiple views of a scene that include aliasing using hypothesized fusion
WO2013049699A1 (en) 2011-09-28 2013-04-04 Pelican Imaging Corporation Systems and methods for encoding and decoding light field image files
CN103139523A (zh) * 2011-11-29 2013-06-05 联咏科技股份有限公司 图像处理方法
EP2608529B1 (en) 2011-12-22 2015-06-03 Axis AB Camera and method for optimizing the exposure of an image frame in a sequence of image frames capturing a scene based on level of motion in the scene
EP2817955B1 (en) 2012-02-21 2018-04-11 FotoNation Cayman Limited Systems and methods for the manipulation of captured light field image data
US9210392B2 (en) 2012-05-01 2015-12-08 Pelican Imaging Coporation Camera modules patterned with pi filter groups
US11089247B2 (en) 2012-05-31 2021-08-10 Apple Inc. Systems and method for reducing fixed pattern noise in image data
US9014504B2 (en) 2012-05-31 2015-04-21 Apple Inc. Systems and methods for highlight recovery in an image signal processor
US8917336B2 (en) 2012-05-31 2014-12-23 Apple Inc. Image signal processing involving geometric distortion correction
US9142012B2 (en) 2012-05-31 2015-09-22 Apple Inc. Systems and methods for chroma noise reduction
US9105078B2 (en) 2012-05-31 2015-08-11 Apple Inc. Systems and methods for local tone mapping
US9332239B2 (en) 2012-05-31 2016-05-03 Apple Inc. Systems and methods for RGB image processing
US9743057B2 (en) 2012-05-31 2017-08-22 Apple Inc. Systems and methods for lens shading correction
US8872946B2 (en) 2012-05-31 2014-10-28 Apple Inc. Systems and methods for raw image processing
US9031319B2 (en) 2012-05-31 2015-05-12 Apple Inc. Systems and methods for luma sharpening
US9077943B2 (en) 2012-05-31 2015-07-07 Apple Inc. Local image statistics collection
US8953882B2 (en) 2012-05-31 2015-02-10 Apple Inc. Systems and methods for determining noise statistics of image data
US8817120B2 (en) 2012-05-31 2014-08-26 Apple Inc. Systems and methods for collecting fixed pattern noise statistics of image data
US9025867B2 (en) 2012-05-31 2015-05-05 Apple Inc. Systems and methods for YCC image processing
US9100635B2 (en) 2012-06-28 2015-08-04 Pelican Imaging Corporation Systems and methods for detecting defective camera arrays and optic arrays
US20140002674A1 (en) 2012-06-30 2014-01-02 Pelican Imaging Corporation Systems and Methods for Manufacturing Camera Modules Using Active Alignment of Lens Stack Arrays and Sensors
EP2696590B1 (en) * 2012-08-06 2014-09-24 Axis AB Image sensor positioning apparatus and method
TWI474283B (zh) * 2012-08-13 2015-02-21 Himax Media Solutions Inc 影像處理方法
SG11201500910RA (en) 2012-08-21 2015-03-30 Pelican Imaging Corp Systems and methods for parallax detection and correction in images captured using array cameras
US20140055632A1 (en) 2012-08-23 2014-02-27 Pelican Imaging Corporation Feature based high resolution motion estimation from low resolution images captured using an array source
WO2014043641A1 (en) 2012-09-14 2014-03-20 Pelican Imaging Corporation Systems and methods for correcting user identified artifacts in light field images
WO2014052974A2 (en) 2012-09-28 2014-04-03 Pelican Imaging Corporation Generating images from light fields utilizing virtual viewpoints
US9143711B2 (en) 2012-11-13 2015-09-22 Pelican Imaging Corporation Systems and methods for array camera focal plane control
CN105556944B (zh) 2012-11-28 2019-03-08 核心光电有限公司 多孔径成像系统和方法
US9462164B2 (en) 2013-02-21 2016-10-04 Pelican Imaging Corporation Systems and methods for generating compressed light field representation data using captured light fields, array geometry, and parallax information
WO2014133974A1 (en) 2013-02-24 2014-09-04 Pelican Imaging Corporation Thin form computational and modular array cameras
RU2013109063A (ru) * 2013-02-28 2014-09-10 ЭлЭсАй Корпорейшн Процессор изображения с многоканальным интерфейсом между уровнем предварительной обработки и одним или несколькими более высокими уровнями
WO2014138697A1 (en) 2013-03-08 2014-09-12 Pelican Imaging Corporation Systems and methods for high dynamic range imaging using array cameras
US8866912B2 (en) 2013-03-10 2014-10-21 Pelican Imaging Corporation System and methods for calibration of an array camera using a single captured image
WO2014165244A1 (en) 2013-03-13 2014-10-09 Pelican Imaging Corporation Systems and methods for synthesizing images from image data captured by an array camera using restricted depth of field depth maps in which depth estimation precision varies
US9106784B2 (en) 2013-03-13 2015-08-11 Pelican Imaging Corporation Systems and methods for controlling aliasing in images captured by an array camera for use in super-resolution processing
US9888194B2 (en) 2013-03-13 2018-02-06 Fotonation Cayman Limited Array camera architecture implementing quantum film image sensors
WO2014164550A2 (en) 2013-03-13 2014-10-09 Pelican Imaging Corporation System and methods for calibration of an array camera
US9100586B2 (en) 2013-03-14 2015-08-04 Pelican Imaging Corporation Systems and methods for photometric normalization in array cameras
KR20140114501A (ko) * 2013-03-14 2014-09-29 삼성전자주식회사 영상 데이터 처리 방법 및 이를 지원하는 전자 장치
US9578259B2 (en) 2013-03-14 2017-02-21 Fotonation Cayman Limited Systems and methods for reducing motion blur in images or video in ultra low light with array cameras
US9497429B2 (en) 2013-03-15 2016-11-15 Pelican Imaging Corporation Extended color processing on pelican array cameras
WO2014145856A1 (en) 2013-03-15 2014-09-18 Pelican Imaging Corporation Systems and methods for stereo imaging with camera arrays
US9497370B2 (en) 2013-03-15 2016-11-15 Pelican Imaging Corporation Array camera architecture implementing quantum dot color filters
US9445003B1 (en) 2013-03-15 2016-09-13 Pelican Imaging Corporation Systems and methods for synthesizing high resolution images using image deconvolution based on motion and depth information
US9633442B2 (en) 2013-03-15 2017-04-25 Fotonation Cayman Limited Array cameras including an array camera module augmented with a separate camera
US10122993B2 (en) 2013-03-15 2018-11-06 Fotonation Limited Autofocus system for a conventional camera that uses depth information from an array camera
WO2014199338A2 (en) 2013-06-13 2014-12-18 Corephotonics Ltd. Dual aperture zoom digital camera
KR102081087B1 (ko) 2013-06-17 2020-02-25 삼성전자주식회사 동기적 영상과 비동기적 영상을 위한 영상 정합 장치 및 이미지 센서
CN108388005A (zh) 2013-07-04 2018-08-10 核心光电有限公司 小型长焦透镜套件
CN109120823B (zh) 2013-08-01 2020-07-14 核心光电有限公司 具有自动聚焦的纤薄多孔径成像系统及其使用方法
US9898856B2 (en) 2013-09-27 2018-02-20 Fotonation Cayman Limited Systems and methods for depth-assisted perspective distortion correction
US9426343B2 (en) 2013-11-07 2016-08-23 Pelican Imaging Corporation Array cameras incorporating independently aligned lens stacks
WO2015074078A1 (en) 2013-11-18 2015-05-21 Pelican Imaging Corporation Estimating depth from projected texture using camera arrays
US9426361B2 (en) 2013-11-26 2016-08-23 Pelican Imaging Corporation Array camera configurations incorporating multiple constituent array cameras
KR102128468B1 (ko) 2014-02-19 2020-06-30 삼성전자주식회사 복수의 이미지 신호 프로세서들을 포함하는 이미지 처리 장치 및 이미지 처리 방법
US9445027B2 (en) 2014-02-20 2016-09-13 Semiconductor Components Industries, Llc Image sensors with column memory repair circuitry
WO2015134996A1 (en) 2014-03-07 2015-09-11 Pelican Imaging Corporation System and methods for depth regularization and semiautomatic interactive matting using rgb-d images
CN104933689B (zh) * 2014-03-19 2018-01-16 炬芯(珠海)科技有限公司 一种图像信号处理方法及装置
US9247117B2 (en) 2014-04-07 2016-01-26 Pelican Imaging Corporation Systems and methods for correcting for warpage of a sensor array in an array camera module by introducing warpage into a focal plane of a lens stack array
US9521319B2 (en) 2014-06-18 2016-12-13 Pelican Imaging Corporation Array cameras and array camera modules including spectral filters disposed outside of a constituent image sensor
GB2528044B (en) * 2014-07-04 2018-08-22 Arc Devices Ni Ltd Non-touch optical detection of vital signs
US9392188B2 (en) 2014-08-10 2016-07-12 Corephotonics Ltd. Zoom dual-aperture camera with folded lens
WO2016054089A1 (en) 2014-09-29 2016-04-07 Pelican Imaging Corporation Systems and methods for dynamic calibration of array cameras
US9854973B2 (en) 2014-10-25 2018-01-02 ARC Devices, Ltd Hand-held medical-data capture-device interoperation with electronic medical record systems
WO2016108093A1 (en) 2015-01-03 2016-07-07 Corephotonics Ltd. Miniature telephoto lens module and a camera utilizing such a lens module
KR102459917B1 (ko) 2015-02-23 2022-10-27 삼성전자주식회사 이미지 신호 프로세서와 이를 포함하는 장치들
WO2016166730A1 (en) 2015-04-16 2016-10-20 Corephotonics Ltd. Auto focus and optical image stabilization in a compact folded camera
US9942474B2 (en) 2015-04-17 2018-04-10 Fotonation Cayman Limited Systems and methods for performing high speed video capture and depth estimation using array cameras
FR3038194B1 (fr) * 2015-06-26 2017-08-11 Ulis Correction de pixels parasites dans un capteur d'image infrarouge
WO2017007220A1 (ko) * 2015-07-06 2017-01-12 삼성전자 주식회사 전자 장치 및 전자 장치에서의 디스플레이 제어 방법
KR102565847B1 (ko) * 2015-07-06 2023-08-10 삼성전자주식회사 전자 장치 및 전자 장치에서의 디스플레이 제어 방법
US10230898B2 (en) 2015-08-13 2019-03-12 Corephotonics Ltd. Dual aperture zoom camera with video support and switching / non-switching dynamic control
KR102444694B1 (ko) * 2015-08-26 2022-09-20 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
CN105245881B (zh) * 2015-09-28 2019-04-19 杭州九言科技股份有限公司 一种数字图像滤镜处理的方法和装置
TWI546779B (zh) 2015-11-06 2016-08-21 財團法人工業技術研究院 串流資料的編碼排程方法、裝置與電腦可讀取媒體
CN105355191B (zh) * 2015-12-05 2019-05-03 中国航空工业集团公司洛阳电光设备研究所 一种基于fpga的多模式图像显示控制方法
KR102140882B1 (ko) 2015-12-29 2020-08-04 코어포토닉스 리미티드 자동 조정가능 텔레 시야(fov)를 갖는 듀얼-애퍼처 줌 디지털 카메라
CN105472226A (zh) * 2016-01-14 2016-04-06 苏州佳像视讯科技有限公司 一种前后双镜头全景运动摄像机
CN105704403B (zh) * 2016-01-18 2019-04-23 深圳市金立通信设备有限公司 一种图像处理的方法及终端
JP6743427B2 (ja) * 2016-03-08 2020-08-19 株式会社リコー 情報処理装置、撮像システムおよびデータ転送方法
CN105827974A (zh) * 2016-04-25 2016-08-03 乐视控股(北京)有限公司 基于单isp芯片打开双摄像头的方法和系统
EP3758356B1 (en) 2016-05-30 2021-10-20 Corephotonics Ltd. Actuator
KR101893722B1 (ko) * 2016-06-19 2018-08-30 코어포토닉스 리미티드 듀얼 애퍼처 카메라 시스템에서의 프레임 동기화
KR102657464B1 (ko) 2016-07-07 2024-04-12 코어포토닉스 리미티드 폴디드 옵틱용 선형 볼 가이드 보이스 코일 모터
KR102593824B1 (ko) 2016-08-31 2023-10-25 삼성전자주식회사 카메라를 제어하기 위한 방법 및 그 전자 장치
US10163015B2 (en) * 2016-11-16 2018-12-25 Ford Global Technologies, Llc Detecting foliage using range data
EP3550818B1 (en) * 2016-12-28 2021-11-24 Huawei Technologies Co., Ltd. Demosaicing method and device
EP3842853B1 (en) 2016-12-28 2024-03-06 Corephotonics Ltd. Folded camera structure with an extended light-folding-element scanning range
KR102164655B1 (ko) 2017-01-12 2020-10-13 코어포토닉스 리미티드 컴팩트 폴디드 카메라
US10506926B2 (en) 2017-02-18 2019-12-17 Arc Devices Limited Multi-vital sign detector in an electronic medical records system
US10492684B2 (en) 2017-02-21 2019-12-03 Arc Devices Limited Multi-vital-sign smartphone system in an electronic medical records system
EP3596543B1 (en) 2017-03-15 2024-04-10 Corephotonics Ltd. Camera with panoramic scanning range
KR102362447B1 (ko) 2017-05-23 2022-02-14 삼성전자 주식회사 듀얼 이미지 센서를 이용한 이미지 처리 방법 및 장치
JP2018198406A (ja) * 2017-05-24 2018-12-13 ルネサスエレクトロニクス株式会社 監視カメラシステムおよび画像処理装置
CN107343190A (zh) 2017-07-25 2017-11-10 广东欧珀移动通信有限公司 白平衡调节方法、装置和终端设备
CN107613192A (zh) * 2017-08-09 2018-01-19 深圳市巨龙创视科技有限公司 一种基于摄像机模组的数字图像处理算法
US10602987B2 (en) 2017-08-10 2020-03-31 Arc Devices Limited Multi-vital-sign smartphone system in an electronic medical records system
US10482618B2 (en) 2017-08-21 2019-11-19 Fotonation Limited Systems and methods for hybrid depth regularization
WO2019048904A1 (en) 2017-09-06 2019-03-14 Corephotonics Ltd. STEREOSCOPIC DEPTH CARTOGRAPHY AND COMBINED PHASE DETECTION IN A DOUBLE-OPENING CAMERA
US10951834B2 (en) 2017-10-03 2021-03-16 Corephotonics Ltd. Synthetically enlarged camera aperture
KR102488410B1 (ko) * 2017-11-07 2023-01-16 삼성전자주식회사 복수의 카메라들을 이용하여 영상을 촬영하는 전자 장치와 이의 동작 방법
CN108270952B (zh) * 2017-11-21 2020-08-07 深圳市芯舞时代科技有限公司 一种双目摄像机影像色差的校正方法及系统
KR102268862B1 (ko) 2017-11-23 2021-06-24 코어포토닉스 리미티드 컴팩트 폴디드 카메라 구조
EP3552050B1 (en) 2018-02-05 2021-06-02 Corephotonics Ltd. Reduced height penalty for folded camera
KR20230019502A (ko) 2018-02-12 2023-02-08 코어포토닉스 리미티드 광학 이미지 안정화 기능을 갖는 폴디드 카메라
US20190293518A1 (en) * 2018-03-20 2019-09-26 California Institute Of Technology New autonomous electro-optical system to monitor in real-time the full spatial motion (rotation and displacement) of civil structures
CN108540689B (zh) * 2018-04-09 2020-10-02 珠海全志科技股份有限公司 图像信号处理器、应用处理器及移动装置
US10694168B2 (en) 2018-04-22 2020-06-23 Corephotonics Ltd. System and method for mitigating or preventing eye damage from structured light IR/NIR projector systems
KR20200135778A (ko) 2018-04-23 2020-12-03 코어포토닉스 리미티드 연장된 2 자유도 회전 범위를 갖는 광학 경로 폴딩 요소
US10485431B1 (en) 2018-05-21 2019-11-26 ARC Devices Ltd. Glucose multi-vital-sign system in an electronic medical records system
CN108881725B (zh) * 2018-07-19 2020-10-20 长沙全度影像科技有限公司 基于非等距径向对称模型的全景相机颜色阴影校正方法
JP7028983B2 (ja) 2018-08-04 2022-03-02 コアフォトニクス リミテッド カメラ上の切り替え可能な連続表示情報システム
WO2020039302A1 (en) 2018-08-22 2020-02-27 Corephotonics Ltd. Two-state zoom folded camera
US10978028B2 (en) * 2018-09-17 2021-04-13 Apple Inc. Correction for defective memory of a memory-in-pixel display
WO2020091764A1 (en) * 2018-10-31 2020-05-07 Hewlett-Packard Development Company, L.P. Recovering perspective distortions
CN109246406B (zh) * 2018-11-16 2019-12-31 中国科学院西安光学精密机械研究所 一种彩色相机自动白平衡的实现方法
EP3654064B1 (en) * 2018-11-16 2021-01-13 Bayerische Motoren Werke Aktiengesellschaft Apparatus and method for characterizing an object based on measurement samples from one or more location sensors
RU2712941C1 (ru) * 2018-12-18 2020-02-03 федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ коррекции сигнала датчика изображения слабоконтрастных объектов в системах компьютерной микроскопии при онкологической диагностике
WO2020144528A1 (en) 2019-01-07 2020-07-16 Corephotonics Ltd. Rotation mechanism with sliding joint
KR102268094B1 (ko) 2019-03-09 2021-06-22 코어포토닉스 리미티드 동적 입체 캘리브레이션을 위한 시스템 및 방법
US10825154B2 (en) 2019-03-19 2020-11-03 Apple Inc. Directional bilateral filtering with improved noise reduction along edges
CN110148391A (zh) * 2019-03-29 2019-08-20 珠海亿智电子科技有限公司 一种避免图像显示撕裂的方法和终端设备
WO2021019318A1 (en) 2019-07-31 2021-02-04 Corephotonics Ltd. System and method for creating background blur in camera panning or motion
KR102646521B1 (ko) 2019-09-17 2024-03-21 인트린식 이노베이션 엘엘씨 편광 큐를 이용한 표면 모델링 시스템 및 방법
MX2022004163A (es) 2019-10-07 2022-07-19 Boston Polarimetrics Inc Sistemas y metodos para la deteccion de estandares de superficie con polarizacion.
KR102625261B1 (ko) 2019-10-21 2024-01-12 삼성전자주식회사 이미지 장치
KR20210047483A (ko) 2019-10-22 2021-04-30 에스케이하이닉스 주식회사 복수의 촬영 모드를 지원하는 이미지 센서
US11659135B2 (en) 2019-10-30 2023-05-23 Corephotonics Ltd. Slow or fast motion video using depth information
KR20230116068A (ko) 2019-11-30 2023-08-03 보스턴 폴라리메트릭스, 인크. 편광 신호를 이용한 투명 물체 분할을 위한 시스템및 방법
US10922781B1 (en) 2019-12-05 2021-02-16 Nxp Usa, Inc. System for processing images from multiple image sensors
US11770618B2 (en) 2019-12-09 2023-09-26 Corephotonics Ltd. Systems and methods for obtaining a smart panoramic image
US11949976B2 (en) 2019-12-09 2024-04-02 Corephotonics Ltd. Systems and methods for obtaining a smart panoramic image
JP7462769B2 (ja) 2020-01-29 2024-04-05 イントリンジック イノベーション エルエルシー 物体の姿勢の検出および測定システムを特徴付けるためのシステムおよび方法
KR20220133973A (ko) 2020-01-30 2022-10-05 인트린식 이노베이션 엘엘씨 편광된 이미지들을 포함하는 상이한 이미징 양식들에 대해 통계적 모델들을 훈련하기 위해 데이터를 합성하기 위한 시스템들 및 방법들
TWI764574B (zh) * 2020-03-16 2022-05-11 瑞鼎科技股份有限公司 在面板驅動電路之前的前端處理電路
US10999497B1 (en) 2020-03-31 2021-05-04 Nxp Usa, Inc. System for parallelly processing image lines from multiple image sensors
CN111489313B (zh) * 2020-04-13 2023-10-31 湖南国科微电子股份有限公司 一种cfa图像去马赛克方法及装置
US11693064B2 (en) 2020-04-26 2023-07-04 Corephotonics Ltd. Temperature control for Hall bar sensor correction
US11399159B2 (en) 2020-05-15 2022-07-26 Axon Enterprise, Inc. Flexible recording systems
WO2021234515A1 (en) 2020-05-17 2021-11-25 Corephotonics Ltd. Image stitching in the presence of a full field of view reference image
WO2021243088A1 (en) 2020-05-27 2021-12-02 Boston Polarimetrics, Inc. Multi-aperture polarization optical systems using beam splitters
CN114080565B (zh) 2020-05-30 2024-01-19 核心光电有限公司 用于获得超微距图像的系统和方法
WO2021247300A1 (en) 2020-06-01 2021-12-09 Arc Devices Limited Apparatus and methods for measuring blood pressure and other vital signs via a finger
CN113935928B (zh) * 2020-07-13 2023-04-11 四川大学 基于Raw格式岩心图像超分辨率重建
US11637977B2 (en) 2020-07-15 2023-04-25 Corephotonics Ltd. Image sensors and sensing methods to obtain time-of-flight and phase detection information
EP4045960A4 (en) 2020-07-15 2022-12-14 Corephotonics Ltd. CORRECTING THE ABERRATION OF VIEWPOINTS IN A FOLDED SCANNING CAMERA
KR20240027857A (ko) 2020-07-31 2024-03-04 코어포토닉스 리미티드 큰 스트로크 선형 위치 감지를 위한 홀 센서-자석 구조
CN111814745A (zh) * 2020-07-31 2020-10-23 Oppo广东移动通信有限公司 手势识别方法、装置、电子设备及存储介质
KR102598070B1 (ko) 2020-08-12 2023-11-02 코어포토닉스 리미티드 스캐닝 폴디드 카메라의 광학 이미지 안정화
US11367167B2 (en) * 2020-08-21 2022-06-21 Apple Inc. Neural network-based image processing with artifact compensation
US11671704B2 (en) 2020-11-13 2023-06-06 Samsung Electronics Co., Ltd. Electronic device including a plurality of image sensors and method for thereof
KR20220065562A (ko) * 2020-11-13 2022-05-20 삼성전자주식회사 복수의 이미지 센서들을 포함하는 전자 장치 및 그 동작 방법
US11290658B1 (en) 2021-04-15 2022-03-29 Boston Polarimetrics, Inc. Systems and methods for camera exposure control
US11954886B2 (en) 2021-04-15 2024-04-09 Intrinsic Innovation Llc Systems and methods for six-degree of freedom pose estimation of deformable objects
CN113473014B (zh) * 2021-06-30 2022-11-18 北京紫光展锐通信技术有限公司 一种图像数据处理方法和电子设备
US11689813B2 (en) 2021-07-01 2023-06-27 Intrinsic Innovation Llc Systems and methods for high dynamic range imaging using crossed polarizers
KR20240011793A (ko) 2021-08-23 2024-01-26 삼성전자주식회사 장면의 자동 초점을 위한 방법 및 전자 디바이스
US11877070B2 (en) 2021-10-18 2024-01-16 Arthrex, Inc. Surgical camera system with high dynamic range and fluorescent imaging
CN114071023B (zh) * 2021-11-18 2023-06-02 成都微光集电科技有限公司 图像传感器曝光时序切换方法及装置
US11509836B1 (en) 2021-12-29 2022-11-22 Insight Direct Usa, Inc. Dynamically configured processing of a region of interest dependent upon published video data selected by a runtime configuration file
US11704891B1 (en) 2021-12-29 2023-07-18 Insight Direct Usa, Inc. Dynamically configured extraction, preprocessing, and publishing of a region of interest that is a subset of streaming video data
US11778167B1 (en) 2022-07-26 2023-10-03 Insight Direct Usa, Inc. Method and system for preprocessing optimization of streaming video data

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08317425A (ja) * 1995-05-19 1996-11-29 Olympus Optical Co Ltd 電子カメラ
KR20060078139A (ko) * 2004-12-30 2006-07-05 매그나칩 반도체 유한회사 Isp 내장형 이미지 센서 및 듀얼 카메라 시스템
US20070077056A1 (en) * 2005-09-30 2007-04-05 Sharp Kabushiki Kaisha Image shooting apparatus, display apparatus and image shooting and display apparatus
KR100908028B1 (ko) * 2004-12-23 2009-07-15 노키아 코포레이션 전자 장치들을 위한 멀티 카메라 솔루션

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589089A (en) 1978-05-30 1986-05-13 Bally Manufacturing Corporation Computer-peripheral interface for a game apparatus
US4475172A (en) 1978-05-30 1984-10-02 Bally Manufacturing Corporation Audio/visual home computer and game apparatus
US4799677A (en) 1983-09-02 1989-01-24 Bally Manufacturing Corporation Video game having video disk read only memory
US4979738A (en) 1983-12-06 1990-12-25 Midway Manufacturing Corporation Constant spatial data mass RAM video display system
US4742543A (en) 1983-12-22 1988-05-03 Frederiksen Jeffrey E Video transmission system
US4682360A (en) 1983-12-22 1987-07-21 Frederiksen Jeffrey E Video transmission system
US4694489A (en) 1983-12-22 1987-09-15 Frederiksen Jeffrey E Video transmission system
US4605961A (en) 1983-12-22 1986-08-12 Frederiksen Jeffrey E Video transmission system using time-warp scrambling
US4743959A (en) 1986-09-17 1988-05-10 Frederiksen Jeffrey E High resolution color video image acquisition and compression system
US5227863A (en) 1989-11-14 1993-07-13 Intelligent Resources Integrated Systems, Inc. Programmable digital video processing system
JP3261152B2 (ja) 1991-03-13 2002-02-25 シャープ株式会社 複数の光学系を備えた撮像装置
JPH05122733A (ja) 1991-10-28 1993-05-18 Nippon Hoso Kyokai <Nhk> 3次元画像表示装置
US5272529A (en) 1992-03-20 1993-12-21 Northwest Starscan Limited Partnership Adaptive hierarchical subband vector quantization encoder
US5247355A (en) 1992-06-11 1993-09-21 Northwest Starscan Limited Partnership Gridlocked method and system for video motion compensation
CA2143633A1 (en) 1992-09-01 1994-03-17 James Oliver Normile Improved vector quantization
US6122411A (en) 1994-02-16 2000-09-19 Apple Computer, Inc. Method and apparatus for storing high and low resolution images in an imaging device
US5694227A (en) 1994-07-15 1997-12-02 Apple Computer, Inc. Method and apparatus for calibrating and adjusting a color imaging system
US5764291A (en) 1994-09-30 1998-06-09 Apple Computer, Inc. Apparatus and method for orientation-dependent camera exposure and focus setting optimization
US5496106A (en) 1994-12-13 1996-03-05 Apple Computer, Inc. System and method for generating a contrast overlay as a focus assist for an imaging device
US5640613A (en) 1995-04-14 1997-06-17 Apple Computer, Inc. Corrective lens assembly
US6011585A (en) 1996-01-19 2000-01-04 Apple Computer, Inc. Apparatus and method for rotating the display orientation of a captured image
US5867214A (en) 1996-04-11 1999-02-02 Apple Computer, Inc. Apparatus and method for increasing a digital camera image capture rate by delaying image processing
US5809178A (en) 1996-06-11 1998-09-15 Apple Computer, Inc. Elimination of visible quantizing artifacts in a digital image utilizing a critical noise/quantizing factor
US6031964A (en) 1996-06-20 2000-02-29 Apple Computer, Inc. System and method for using a unified memory architecture to implement a digital camera device
US6157394A (en) 1996-08-29 2000-12-05 Apple Computer, Inc. Flexible digital image processing via an image processing chain with modular image processors
US5991465A (en) 1996-08-29 1999-11-23 Apple Computer, Inc. Modular digital image processing via an image processing chain with modifiable parameter controls
US6028611A (en) 1996-08-29 2000-02-22 Apple Computer, Inc. Modular digital image processing via an image processing chain
US5790705A (en) 1996-09-13 1998-08-04 Apple Computer, Inc. Compression techniques for substantially lossless digital image data storage
US6141044A (en) 1996-09-26 2000-10-31 Apple Computer, Inc. Method and system for coherent image group maintenance in memory
US6278480B1 (en) 1997-02-07 2001-08-21 Canon Kabushiki Kaisha Compound eye camera system
US6198514B1 (en) 1998-02-27 2001-03-06 Apple Computer, Inc. Color misconvergence measurement using a common monochrome image
US7128270B2 (en) * 1999-09-17 2006-10-31 Silverbrook Research Pty Ltd Scanning device for coded data
US6954193B1 (en) 2000-09-08 2005-10-11 Apple Computer, Inc. Method and apparatus for correcting pixel level intensity variation
RU2231123C2 (ru) * 2000-11-09 2004-06-20 Федеральное государственное унитарное предприятие "Научно-исследовательский институт промышленного телевидения "Растр" Охранная телевизионная система
US6745012B1 (en) 2000-11-17 2004-06-01 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive data compression in a wireless telecommunications system
US7170938B1 (en) 2001-08-21 2007-01-30 Cisco Systems Canada Co. Rate control method for video transcoding
US6959044B1 (en) 2001-08-21 2005-10-25 Cisco Systems Canada Co. Dynamic GOP system and method for digital video encoding
US7277595B1 (en) 2003-01-06 2007-10-02 Apple Inc. Method and apparatus for digital image manipulation to remove image blemishes
US7310371B2 (en) 2003-05-30 2007-12-18 Lsi Corporation Method and/or apparatus for reducing the complexity of H.264 B-frame encoding using selective reconstruction
US7327786B2 (en) 2003-06-02 2008-02-05 Lsi Logic Corporation Method for improving rate-distortion performance of a video compression system through parallel coefficient cancellation in the transform
US7324595B2 (en) 2003-09-22 2008-01-29 Lsi Logic Corporation Method and/or apparatus for reducing the complexity of non-reference frame encoding using selective reconstruction
US7602849B2 (en) 2003-11-17 2009-10-13 Lsi Corporation Adaptive reference picture selection based on inter-picture motion measurement
US7362804B2 (en) 2003-11-24 2008-04-22 Lsi Logic Corporation Graphical symbols for H.264 bitstream syntax elements
US7362376B2 (en) 2003-12-23 2008-04-22 Lsi Logic Corporation Method and apparatus for video deinterlacing and format conversion
US7345708B2 (en) 2003-12-23 2008-03-18 Lsi Logic Corporation Method and apparatus for video deinterlacing and format conversion
US7515765B1 (en) 2004-01-30 2009-04-07 Apple Inc. Image sharpness management
US7231587B2 (en) 2004-03-29 2007-06-12 Lsi Corporation Embedded picture PSNR/CRC data in compressed video bitstream
US7620103B2 (en) 2004-12-10 2009-11-17 Lsi Corporation Programmable quantization dead zone and threshold for standard-based H.264 and/or VC1 video encoding
US7612804B1 (en) 2005-02-15 2009-11-03 Apple Inc. Methods and apparatuses for image processing
US7949044B2 (en) 2005-04-12 2011-05-24 Lsi Corporation Method for coefficient bitdepth limitation, encoder and bitstream generation apparatus
US8031766B2 (en) 2005-08-02 2011-10-04 Lsi Corporation Performance adaptive video encoding with concurrent decoding
US7903739B2 (en) 2005-08-05 2011-03-08 Lsi Corporation Method and apparatus for VC-1 to MPEG-2 video transcoding
US8208540B2 (en) 2005-08-05 2012-06-26 Lsi Corporation Video bitstream transcoding method and apparatus
US8155194B2 (en) 2005-08-05 2012-04-10 Lsi Corporation Method and apparatus for MPEG-2 to H.264 video transcoding
US8045618B2 (en) 2005-08-05 2011-10-25 Lsi Corporation Method and apparatus for MPEG-2 to VC-1 video transcoding
US7881384B2 (en) 2005-08-05 2011-02-01 Lsi Corporation Method and apparatus for H.264 to MPEG-2 video transcoding
US7596280B2 (en) 2005-09-29 2009-09-29 Apple Inc. Video acquisition with integrated GPU processing
US7893975B2 (en) 2006-10-13 2011-02-22 Apple Inc. System and method for processing images using predetermined tone reproduction curves
US7773127B2 (en) 2006-10-13 2010-08-10 Apple Inc. System and method for RAW image processing
US7978239B2 (en) * 2007-03-01 2011-07-12 Eastman Kodak Company Digital camera using multiple image sensors to provide improved temporal sampling
JP4720785B2 (ja) * 2007-05-21 2011-07-13 富士フイルム株式会社 撮像装置、画像再生装置、撮像方法及びプログラム
US8405727B2 (en) 2008-05-01 2013-03-26 Apple Inc. Apparatus and method for calibrating image capture devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08317425A (ja) * 1995-05-19 1996-11-29 Olympus Optical Co Ltd 電子カメラ
KR100908028B1 (ko) * 2004-12-23 2009-07-15 노키아 코포레이션 전자 장치들을 위한 멀티 카메라 솔루션
KR20060078139A (ko) * 2004-12-30 2006-07-05 매그나칩 반도체 유한회사 Isp 내장형 이미지 센서 및 듀얼 카메라 시스템
US20070077056A1 (en) * 2005-09-30 2007-04-05 Sharp Kabushiki Kaisha Image shooting apparatus, display apparatus and image shooting and display apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11218634B2 (en) 2018-04-28 2022-01-04 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Data processing method and apparatus, computer-readable storage medium, and electronic device

Also Published As

Publication number Publication date
TW201225656A (en) 2012-06-16
MX2013001921A (es) 2013-05-20
EP2594063A1 (en) 2013-05-22
WO2012024155A1 (en) 2012-02-23
AU2011292290B2 (en) 2014-07-10
US20120044372A1 (en) 2012-02-23
CN102523456A (zh) 2012-06-27
TWI513298B (zh) 2015-12-11
RU2530009C1 (ru) 2014-10-10
CN102523456B (zh) 2014-09-17
RU2013111841A (ru) 2014-09-27
KR20120096954A (ko) 2012-08-31
BR112013003738A2 (pt) 2016-05-31
US8493482B2 (en) 2013-07-23
AU2011292290A1 (en) 2013-03-07

Similar Documents

Publication Publication Date Title
KR101283248B1 (ko) 듀얼 이미지 센서 이미지 처리 시스템 및 방법
AU2011296296B2 (en) Auto-focus control using image statistics data with coarse and fine auto-focus scores
AU2011320937B2 (en) Automatic white balance processing with flexible color space selection
KR101269344B1 (ko) 이미지 신호 처리를 위한 시간 필터링 기술들
US8525895B2 (en) Binning compensation filtering techniques for image signal processing
US8531542B2 (en) Techniques for acquiring and processing statistics data in an image signal processor
AU2010308353B2 (en) System and method for demosaicing image data using weighted gradients
AU2010308437B2 (en) System and method for detecting and correcting defective pixels in an image sensor
KR101320804B1 (ko) 백엔드 프로세싱 로직을 가지는 이미지 신호 프로세서를 이용하여 이미지 데이터를 프로세싱하기 위한 시스템 및 방법
US8922704B2 (en) Techniques for collection of auto-focus statistics

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160616

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190617

Year of fee payment: 7