KR102291790B1 - 이미지 프로세싱 파이프라인 내의 이미지 데이터의 다중 레이트 프로세싱 - Google Patents

이미지 프로세싱 파이프라인 내의 이미지 데이터의 다중 레이트 프로세싱 Download PDF

Info

Publication number
KR102291790B1
KR102291790B1 KR1020187005962A KR20187005962A KR102291790B1 KR 102291790 B1 KR102291790 B1 KR 102291790B1 KR 1020187005962 A KR1020187005962 A KR 1020187005962A KR 20187005962 A KR20187005962 A KR 20187005962A KR 102291790 B1 KR102291790 B1 KR 102291790B1
Authority
KR
South Korea
Prior art keywords
stream
image
pixel data
pipeline stages
signal processor
Prior art date
Application number
KR1020187005962A
Other languages
English (en)
Other versions
KR20180037008A (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 KR20180037008A publication Critical patent/KR20180037008A/ko
Application granted granted Critical
Publication of KR102291790B1 publication Critical patent/KR102291790B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4015Image demosaicing, e.g. colour filter arrays [CFA] or Bayer patterns
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/14Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components sensitive to infrared radiation, light, electromagnetic radiation of shorter wavelength or corpuscular radiation and specially adapted either for the conversion of the energy of such radiation into electrical energy or for the control of electrical energy by such radiation
    • H01L27/144Devices controlled by radiation
    • H01L27/146Imager structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/84Camera processing pipelines; Components thereof for processing colour signals
    • H04N23/843Demosaicing, e.g. interpolating colour pixel values
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/10Circuitry of solid-state image sensors [SSIS]; Control thereof for transforming different wavelengths into image signals
    • H04N25/11Arrangement of colour filter arrays [CFA]; Filter mosaics
    • H04N25/13Arrangement of colour filter arrays [CFA]; Filter mosaics characterised by the spectral characteristics of the filter elements
    • H04N25/134Arrangement of colour filter arrays [CFA]; Filter mosaics characterised by the spectral characteristics of the filter elements based on three different wavelength filter elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/70SSIS architectures; Circuits associated therewith
    • H04N25/71Charge-coupled device [CCD] sensors; Charge-transfer registers specially adapted for CCD sensors
    • H04N25/745Circuitry for generating timing or clock signals
    • H04N5/23229
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/917Television signal processing therefor for bandwidth reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Power Engineering (AREA)
  • Electromagnetism (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Image Processing (AREA)

Abstract

이미지 프로세싱 파이프라인은 이미지 데이터를 다중 레이트로 프로세싱할 수 있다. 이미지 프레임에 대하여 이미지 센서로부터 수집된 미가공 픽셀 데이터의 스트림은 이미지 신호 프로세서의 하나 이상의 파이프라인 스테이지를 통해 프로세싱될 수 있다. 이어서 미가공 픽셀 데이터의 스트림은 풀 컬러 도메인으로 변환되고 이미지 프레임에 대한 초기 데이터 크기보다 작은 데이터 크기로 스케일링될 수 있다. 변환된 픽셀 데이터는 하나 이상의 다른 파이프라인 스테이지들을 통해 프로세싱되고 저장, 추가적인 프로세싱, 또는 디스플레이를 위하여 출력될 수 있다. 일부 실시예들에서, 백 엔드 인터페이스는 이미지 신호 프로세서의 일부로서 구현될 수 있는데, 이를 통해 이미지 센서 이외의 소스들로부터 수집된 이미지 데이터는 이미지 신호 프로세서의 다양한 파이프라인 스테이지들을 통해 수신되고 프로세싱될 수 있다.

Description

이미지 프로세싱 파이프라인 내의 이미지 데이터의 다중 레이트 프로세싱
이미지 센서에 의해 캡처된 이미지 데이터는 추가적인 프로세싱 또는 소비를 위해 캡처된 이미지 데이터를 준비하기 위하여 종종 이미지 프로세싱 파이프라인의 일부로서 초기에 프로세싱된다. 이러한 방식으로, 다른 시스템 리소스들을 소비하지 않고 실시간 보정 또는 향상이 이루어질 수 있다. 예를 들어, 미가공 이미지 데이터는 보정, 필터링, 또는 다른 방식으로 수정되어 비디오 인코더와 같은 후속 컴포넌트들에 인코팅 및 후속 디스플레이를 위해 적절히 스케일링된 이미지 데이터를 제공하여, 비디오 인코더에서 이미지 데이터에 수행될 다수의 후속 동작들을 줄여줄 수 있다.
캡처된 이미지 데이터에 대한 이러한 보정 또는 향상을 구현하기 위하여, 다양하고 상이한 디바이스, 컴포넌트, 유닛, 또는 기타 모듈을 이용하여 이미지 프로세싱 파이프라인의 일부로서 수행되는 다양한 동작들을 구현할 수 있다. 예컨대, 이미지 신호 프로세서는 다수의 상이한 유닛 또는 스테이지를 포함할 수 있고, 여기에서 이미지 센서로부터 획득된 이미지 데이터에 상이한 이미지 수정 또는 향상이 이루어질 수 있다. 많은 상이한 제품들의 이미지 센서들의 편재성을 고려하면, 이미지 프로세싱 파이프라인의 일부로서 이미지 데이터를 효율적으로 핸들링하는 것은 추가적인 태스크들을 수행하기 위한 리소스들이 제한적인 제품들에 여유를 가져다 줄 수 있다.
이미지 데이터를 캡처할 수 있는 카메라 또는 기타 이미지 센서를 포함하는 디바이스, 장치, 또는 컴퓨팅 시스템의 이미지 신호 프로세서는, 일부 실시예들에서, 상이한 레이트로 이미지 데이터를 프로세싱하도록 구성될 수 있다. 일부 이미지 프로세싱 파이프라인 스테이지들은 캡처된 이미지 프레임의 픽셀 데이터의 스트림을 초기 레이트(예컨대, X 픽셀/클록 사이클)로 프로세싱할 수 있다. 예를 들어, 다양한 미가공 이미지 데이터 프로세싱 기술들은 하나 이상의 파이프라인 스테이지에서 초기 레이트로 수행될 수 있다. 이어서 백 엔드 이미지 프로세싱 파이프라인 스테이지는 픽셀 데이터의 스트림을 감소된 레이트(예컨대, Y 픽셀/클록 사이클, 여기서 Y<X)로 프로세싱할 수 있다. 위의 예에서 프로세싱되는 미가공 이미지 데이터를 고려해보자. 미가공 이미지 데이터는 풀 컬러 도메인으로 전환되고, 더 작은 이미지 크기로 스케일링되고, 백 엔드 풀 컬러 파이프라인 스테이지를 통해 감소된 레이트로 프로세싱될 수 있다. (이미지 데이터가 원격 디바이스 또는 서버로부터 수신된 비디오 같이, 카메라에 의해 수집되지 않았더라도) 이미지 데이터를 메모리로부터 획득하여 백 엔드 이미지 프로세싱 파이프라인 스테이지를 통해 프로세싱하는 인터페이스가 또한 포함될 수 있다.
도 1은 일부 실시예들에 따른, 이미지 데이터를 다중 레이트로 프로세싱하는 이미지 프로세싱 파이프라인을 구현할 수 있는 예시 시스템을 도시하는 논리 블록도이다.
도 2는 일부 실시예들에 따른, 이미지 데이터를 다중 레이트로 프로세싱하는 이미지 프로세싱 파이프라인을 구현할 수 있는 시스템 내의 예시 데이터 경로를 도시하는 논리 블록도이다.
도 3은 일부 실시예들에 따른, 예시 이미지 신호 프로세서를 도시하는 논리 블록도이다.
도 4는 일부 실시예들에 따른, 이미지 신호 프로세서 내의 리샘플링 프로세싱 스테이지를 도시하는 논리 블록도이다.
도 5는 일부 실시예들에 따른, 이미지 프로세싱 파이프라인 내의 이미지 데이터를 다중 레이트로 프로세싱하기 위한 다수의 방법 및 기술을 도시하는 높은 수준의 흐름도이다.
도 6은 일부 실시예들에 따른, 이미지 신호 프로세서에 대한 백 엔드 인터페이스를 통해 수신된 이미지 데이터를 프로세싱하기 위한 다수의 방법 및 기술을 도시하는 높은 수준의 흐름도이다.
본 명세서는 "일 실시예" 또는 "실시예"에 대한 참조를 포함한다. "일 실시예에서" 또는 "실시예에서"라는 문구가 나타난다고 해서, 반드시 동일한 실시예를 지칭하는 것은 아니다. 특정 특징들, 구조들 또는 특성들이 본 개시내용과 일관성을 유지하는 임의의 적합한 방식으로 조합될 수 있다.
"포함하는(Comprising)". 이 용어는 개방형(open-ended)이다. 첨부된 청구범위에서 사용되는 바와 같이, 이 용어는 추가적인 구조나 단계들을 배제(foreclose)하지 않는다. 다음과 같이 구술된 청구항을 고려해보자: ".. 하나 이상의 프로세서 유닛을 포함하는 장치". 그러한 청구항은 장치가 추가적인 컴포넌트들(예컨대, 네트워크 인터페이스 유닛, 그래픽 회로 등)을 포함하는 것을 배제하지 않는다.
"~하도록 구성되는(configured to)". 다양한 유닛들, 회로들 또는 다른 컴포넌트들이 태스크 또는 태스크들을 수행"하도록 구성"되는 것으로 기술되거나 청구될 수 있다. 그러한 문맥들에서, "~하도록 구성되는"은 유닛들/회로들/컴포넌트들이 동작 동안에 그들 태스크 또는 태스크들을 수행하는 구조물(예컨대, 회로)을 포함한다는 것을 시사함으로써 구조물을 내포하는 데 사용된다. 이와 같이, 유닛/회로/컴포넌트는 특정된 유닛/회로/컴포넌트가 현재 동작 중이 아닌 경우(예컨대, 켜진 상태가 아닌 경우)에도 태스크를 수행하도록 구성되는 것으로 칭해질 수 있다. "~하도록 구성되는"이라는 문구와 함께 사용되는 유닛들/회로들/컴포넌트들은 하드웨어 - 예를 들어, 회로들, 동작을 구현하도록 실행가능한 프로그램 명령어들을 저장하는 메모리 등 - 를 포함한다. 유닛/회로/컴포넌트가 하나 이상의 태스크를 수행"하도록 구성"됨을 언급하는 것은 그 유닛/회로/컴포넌트에 대해 미국 특허법 35 U.S.C. § 112, (f) 문단 규정이 적용되지 않도록 하기 위한 의도의 명시이다. 추가로, "~하도록 구성되는"은 사안이 되는 태스크(들)를 수행할 수 있는 방식으로 동작하도록 소프트웨어 또는 펌웨어(예컨대, FPGA 또는 소프트웨어를 실행하는 범용 프로세서)에 의해 조작되는 일반 구조물(예를 들어, 일반 회로)을 포함할 수 있다. "~하도록 구성되는"은 또한 하나 이상의 태스크를 구현하거나 수행하도록 적용된 디바이스들(예컨대, 집적회로들)을 제조하기 위해 제조 공정(예컨대, 반도체 제조 시설)을 적용하는 것을 포함할 수 있다.
"제1", "제2" 등. 본 명세서에서 사용되는 바와 같이, 이들 용어들은 이들이 선행되는 명사에 대한 라벨로서 사용되고, 임의의 유형의 순서(예컨대, 공간적, 시간적, 논리적 등)를 암시하는 것은 아니다. 예를 들어, 버퍼 회로는 "제1" 및 "제2" 값들에 대한 기입 동작들을 수행하는 것으로서 본 명세서에서 기술될 수 있다. 용어들 "제1" 및 "제2"는 반드시 제1 값이 제2 값 전에 기록되어야 한다는 것을 암시하지는 않는다.
"~에 기초하여" 또는 "~에 따라" 본 명세서에서 사용되는 바와 같이, 이 용어들은 결정에 영향을 주는 하나 이상의 인자를 기술하는 데 사용된다. 이 용어들은 결정에 영향을 줄 수 있는 추가적 인자들을 배제하지 않는다. 즉, 결정은 오직 이 인자들에만 기초하거나 또는 적어도 부분적으로 이 인자들에 기초할 수 있다. "B에 기초하여 A를 결정한다"라는 문구를 고려해보자. 이 경우에서 B는 A의 결정에 영향을 주는 인자이지만, 그러한 문구는 A의 결정이 또한 C에도 기초하는 것임을 배제하지 않는다. 다른 경우들에서, A는 오직 B에만 기초하여 결정될 수도 있다.
이미지 신호 프로세서 또는 기타 이미지 프로세싱 파이프라인은 이미지 센서에 의해 캡처된 이미지 데이터를 보정 또는 개선하기 위한 다수의 상이한 기술들 또는 컴포넌트들을 구현할 수 있다. 그러나, 이미지 센서에 의해 캡처된 이미지 데이터가 항상 동일한 목적에 활용되는 것은 아니다. 예를 들어, 이미지 센서는 이미지 센서에 의해 더 높은 해상도 스틸 이미지로 캡처될 수 있거나 또는 비디오로 녹화될 수 있는 것의 미리보기 이미지를 디스플레이하기 위하여 이미지 데이터의 스트림을 제공할 수 있다. 이미지 센서에 의해 캡처된 이미지 데이터가 프로세싱될 수 있는 바람직한 효과 또는 포맷에 따라, 이미지 데이터를 프로세싱하는 이미지 프로세싱 파이프라인의 상이한 부분들이 더 활용되거나 또는 덜 활용될 수 있다. 예를 들어, 더 낮은 해상도 비디오 파일의 일부로서 녹화되고 있는 고해상도 이미지 센서에 의해 캡처되는 이미지 데이터의 경우, 이미지 프로세싱 파이프라인의 일부 부분들이 더 활용될 수 있다(예컨대, 파이프라인의 이 부분들은 저해상도 비디오를 위해 이미지를 스케일링하기 위하여 궁극적으로 버려질 수 있는 풀 해상도 이미지 데이터를 프로세싱함).
다양한 실시예들에서, 이미지 신호 프로세서는 이미지 프로세싱 파이프라인의 프로세싱 능력을 더 효율적으로 높이기 위하여 이미지 프로세싱 파이프라인 내의 이미지 데이터를 다중 레이트로 프로세싱할 수 있다. 예컨대, 적어도 일부 실시예들에서, 하나 이상의 프론트 엔드 파이프라인 스테이지는 이미지 데이터를 초기 레이트, 예컨대 2 픽셀/클록 사이클(pixel per clock cycle: ppc)로 프로세싱할 수 있다. 이러한 방식으로, 대용량의 이미지 데이터(예컨대, 다수의 개별 이미지 프레임들 또는 슬로 모션 비디오를 녹화할 때 캡처될 수 있는 높은 레이트의 이미지 프레임들)는 이미지 데이터를 수집 및 프로세싱한 결과로서 도입될 수 있는 이미지 신호 노이즈, 아티팩트, 및 기타 이미지 결함들을 감소 또는 보정하기 위한 초기 프로세싱을 받을 수 있다. 이어서 이미지 데이터는 바람직한 크기로 다운스케일링되어서 프로세싱이 폐기될 이미지 데이터에 수행되지 않도록 하나 이상의 백 엔드 파이프라인 스테이지에서 상이한 레이트, 예컨대 1 ppc로 프로세싱되어, 이미지 신호 노이즈를 감소시키고, 색상 및 이미지 결함을 보정할 뿐만 아니라, 다양한 특수 효과를 적용하기 위하여 이미지 프레임들 다른 동작들을 수행할 수 있다.
적어도 일부 실시예들에서, 프론트 엔드 파이프라인 스테이지를 통해 캡처되고 프로세싱되는 이미지 데이터는 미가공 또는 풀 컬러 포맷으로 메모리에 저장될 수 있는 반면, 스케일링된 버전의 이미지 데이터는 이미지 프로세싱 파이프라인의 백 엔드 파이프라인 스테이지를 통해 계속해서 프로세싱될 수 있다. 이러한 방식으로, 일부 이미지 프로세싱을 이용하는 고해상도 버전의 이미지 프레임들은 캡처됨과 동시에 동시에 계속해서 더 낮은 해상도 버전의 이미지 프레임들에 대하여 프로세싱될 수 있다(예컨대, 이미지 프레임들의 고해상도 스틸을 캡처하며, 이는 또한 더 낮은 해상도 비디오로 기록됨).
적어도 일부 실시예들에서, 이미지 센서와 상이한 소스들로부터 수집된 이미지 데이터가 이미지 프로세싱 파이프라인의 백 엔드 파이프라인 스테이지(들)를 통해 프로세싱되도록 하는 백 엔드 인터페이스가 구현될 수 있다. 예컨대, 이미지 프로세싱 파이프라인을 구현하는 디바이스(예컨대, 모바일 컴퓨팅 디바이스)에서 원격 디바이스(예컨대, 웹 기반 비디오 서비스와 같은 콘텐츠 제공자의 콘텐츠 서버)로부터 수신되는 이미지 데이터는, 이미지 신호 노이즈를 감소시키고, 색상 및 이미지 결함을 보정하거나, 또는 다양한 특수 효과들을 적용하기 위한 동작들을 수행하기 위하여 백 엔드 인터페이스를 통해 수신되고 백 엔드 파이프라인 스테이지(들)를 통해 프로세싱될 수 있다. 이러한 방식으로, 이미지 프로세싱 파이프라인의 전용 이미지 프로세싱 컴포넌트들은 많은 다른 소스들로부터 수신되는 이미지 데이터에 대한 이미지 프로세싱을 효율적으로 수행하도록 활용될 수 있다.
이미지 프로세싱 파이프라인 내의 이미지 데이터를 다중 레이트로 프로세싱하기 위한 본 명세서에 기술된 기술들은 그것들을 채용하는 예시 시스템의 관점에서 추가로 예시될 수 있다. 전술된 바와 같이, 이 기술들은 비디오 클립을 포함하는 이미지 데이터를 캡처 및 프로세싱하는 기능을 포함하는 임의의 유형의 카메라, 장치, 또는 컴퓨팅 시스템으로 구현될 수 있다.
본 명세서에 설명된 임의의 또는 모든 기술들을 구현하도록 구성된 시스템의 일 예가 도 1에 예시된다. 예를 들어, 도 1에 예시된 시스템(100)은 기존 GPU 및 CPU 처리방법에 의해 요구되는 추가적인 시스템 메모리 동작 없이 이미지 신호 프로세서를 이용하여 이미지 프로세싱을 수행하도록 구성될 수 있다. 예시된 실시예에서, 시스템(100)은 이미지 센서(들)(102), 시스템온칩(SOC) 컴포넌트(104), 시스템 메모리(예컨대, DRAM)(130), 영구 저장장치(예컨대, 플래시 메모리)(128), 및 디스플레이(116)(예컨대, LCD 또는 OLED)를 포함한다. 이 예에서, 이미지 센서(들)(102)는 이미지 데이터를 캡처하는 데 적합한 임의의 유형의 이미지 센서(예컨대, 캡처된 광에 반응하는 이미지 센서), 예컨대 카메라, 비디오 카메라, 또는 카메라 또는 비디오 카메라를 포함하는 기타 디바이스 상의 능동 픽셀 센서(예컨대, 상보성 금속 산화물 반도체(CMOS) 능동 픽셀 센서)일 수 있다. 이 예에서, 디스플레이(116)는 캡처된 스틸 이미지 또는 비디오 클립(이는 이미지 신호 프로세서(106)의 출력으로서 제공될 수 있음)의 미리보기를 디스플레이하도록 구성될 수 있다. 디스플레이(116)는 또한 메뉴, 선택된 동작 파라미터, 또는 시스템의 사용자 인터페이스(도시되지 않음)로부터 수신된 기타 정보를 디스플레이하도록 구성될 수 있다. 다른 실시예들에서, 다른 유형의 디스플레이 디바이스들이 이러한 목적을 위하여 시스템에 포함될 수 있다. 상이한 실시예들에서, 시스템(100)은 개인용 컴퓨터 시스템; 데스크탑 컴퓨터; 랩탑 컴퓨터; 노트북, 태블릿, 슬레이트, 또는 넷북 컴퓨터; 메인프레임 컴퓨터 시스템; 핸드헬드 컴퓨터; 워크스테이션; 네트워크 컴퓨터; 카메라; 셋톱 박스; 모바일 디바이스, 예컨대, 모바일 전화기, 호출기, 개인용 데이터 어시스턴트(PDA), 태블릿 디바이스, 또는 음악 재생기; I/O 디바이스 예컨대, 디지털 카메라, 스캐너, 비디오 리코더; 소비자 디바이스; 비디오 게임 콘솔; 핸드헬드 비디오 게임 디바이스; 또는 일반적으로 카메라 또는 비디오 카메라의 기능을 포함하는 임의의 유형의 컴퓨팅 또는 전자 디바이스를 포함하는 다양한 유형의 디바이스들 중 임의의 것일 수 있지만, 이에 한정되지 않는다.
이 예에서, SOC 컴포넌트(104)는 이미지 신호 프로세서(ISP)(106), 중앙 프로세서 유닛(CPU)(108), 네트워크 인터페이스(110), 배향 인터페이스(112)(이는 시스템(100)의 배향 데이터, 예컨대, 모션 데이터가 수집될 수 있는 배향 센서(들)(134)에 결합될 수 있음), 디스플레이 제어기(114)(이는 디스플레이(116)에 결합되고 디스플레이(116)의 동작을 제어할 수 있음), 그래픽 프로세서(GPU)(120), 메모리 제어기(122)(이는 시스템 메모리(130)에 결합됨), 비디오 인코더(124), 저장장치 제어기(126)(이는 영구 저장장치(128), 예컨대 플래시 메모리 또는 기타 비휘발성 랜덤 액세스 메모리에 결합되고 이에 대한 액세스를 제어함), 및 다양한 기타 I/O 디바이스들(118로 도시됨)을 포함하고, 이들 중 일부 또는 전부는 상호연결부(132)를 통해 서로 통신할 수 있다. 일부 실시예들에서, 시스템(100) 또는 SOC 컴포넌트(104)는 도 1에 도시된 것보다 더 많거나 더 적은 요소들을 포함할 수 있다.
다양한 실시예들에서, SOC 컴포넌트(104)는 하나의 프로세서를 포함하는 단일프로세서 시스템, 또는 다수의 프로세서 또는 다수의 프로세싱 코어(예컨대, 2개, 4개, 8개, 또는 다른 적합한 개수)를 포함하는 다중프로세서 시스템일 수 있다. CPU(들)(108)는 임의의 적합한 명령어 세트 아키텍처를 구현할 수 있으며, 그 명령어 세트 아키텍처 내에 정의된 명령어들을 실행하도록 구성될 수 있다. 예를 들어, 다양한 실시예들에서, CPU(들)(108)는 다양한 ISA(instruction set architecture)들, 예컨대 x86, PowerPC, SPARC, RISC, ARM™ 또는 MIPS ISA들, 또는 임의의 다른 적합한 ISA 중 임의의 것을 구현하는 범용 또는 임베디드 프로세서들일 수 있다. 다중프로세서 시스템들에서, CPU(들)(108) 각각은 보편적으로 동일한 ISA를 구현할 수 있지만 반드시 그러한 것은 아니다. CPU(108)는 스칼라, 수퍼스칼라, 파이프라인형, 수퍼파이프라인형, 비순차형, 순차형, 추측형, 비추측형(non-speculative) 등 또는 이들의 조합을 포함하는 임의의 마이크로아키텍처를 채택할 수 있다. CPU(108)는 마이크로코딩 기술들을 구현하기 위한 회로부를 포함할 수 있다. CPU(108)는 하나 이상의 프로세싱 코어를 포함할 수 있고, 이는 각각 명령어들을 실행하도록 구성된다. CPU(108)는 하나 이상의 레벨의 캐시를 포함할 수 있고, 이는 임의의 크기 및 임의의 구성(세트 연관(set associative), 직접 맵핑 등)을 사용할 수 있다.
도 1에 예시된 예에서, 시스템 메모리(130)는 동적 랜덤 액세스 메모리(DRAM), 동기식 DRAM(SDRAM), 더블 데이터 레이트(DDR, DDR2, DDR3 등), SDRAM(mDDR3 등과 같은 모바일 버전의 SDRAM들, 또는 LPDDR2 등과 같은 저전력 버전의 SDRAM들을 포함함), RAMBUS DRAM(RDRAM), 정적 RAM(SRAM) 등과 같은 임의의 유형의 메모리일 수 있다. 하나 이상의 메모리 디바이스가 회로 기판 상에 결합되어 단일 인라인 메모리 모듈(SIMM), 듀얼 인라인 메모리 모듈(DIMM) 등과 같은 메모리 모듈들을 형성할 수 있다. 대안적으로, 디바이스들은 칩 온 칩(chip-on-chip) 구성, 패키지 온 패키지(package-on-package) 구성, 또는 멀티칩 모듈 구성으로 집적 회로 구현 시스템(100)과 함께 실장될 수 있다. 일부 실시예들에서, 시스템 메모리(130)는 픽셀 데이터 또는 기타 이미지 데이터 또는 통계치를 다양한 포맷으로 저장할 수 있다. 유사하게, 도 1에 예시된 예시 시스템(100)은 시스템에 사용되는 이미지 데이터 또는 기타 데이터의 비휘발성 저장을 위한 영구 저장장치(128)를 포함하지만, 다른 실시예들에서, 시스템은 이러한 목적을 위하여 다른 유형의 비휘발성 메모리(예컨대 ROM)를 포함할 수 있다.
그래픽 프로세싱 유닛(GPU)(120)은 임의의 적합한 그래픽 프로세싱 회로부를 포함할 수 있다. 일반적으로, GPU(120)는 디스플레이될 객체들을 프레임 버퍼(예컨대, 전체 프레임에 대한 픽셀 데이터를 포함하는 것) 안으로 렌더링하도록 구성될 수 있다. GPU(120)는 그래픽 동작의 일부 또는 전부를 수행하기 위한 그래픽 소프트웨어 또는 소정 그래픽 동작들의 하드웨어 가속을 실행할 수 있는 하나 이상의 그래픽 프로세서를 포함할 수 있다. 하드웨어 가속 및 소프트웨어 구현의 양은 실시예마다 다양할 수 있다.
I/O 디바이스들(118)은 시스템(100)의 유형에 따라 임의의 원하는 회로부를 포함할 수 있다. 예를 들어, 일 실시예에서, 시스템(100)은 모바일 컴퓨팅 디바이스(예컨대, 개인용 휴대 단말기(PDA), 태블릿 디바이스, 스마트 폰 등)일 수 있으며, I/O 디바이스들(118)은 WiFi, 블루투스, 셀룰러, 글로벌 포지셔닝 시스템 등과 같은 다양한 유형의 무선 통신용 디바이스들을 포함할 수 있다. 일부 실시예들에서, I/O 디바이스들(118)은 또한 RAM 저장장치, 솔리드 스테이트 저장장치 또는 디스크 저장장치를 포함한, 추가 저장장치를 포함할 수 있다. 일부 실시예들에서, I/O 디바이스들(118)은 사용자 인터페이스 디바이스들, 예컨대, 터치 디스플레이 스크린 또는 멀티터치 디스플레이 스크린를 포함하는 추가적인 디스플레이 디바이스, 키보드, 키패드, 터치패드, 스캔 디바이스, 음성 또는 광학 인식 디바이스, 마이크로폰, 스피커, 스캐너, 인쇄 디바이스, 또는 시스템(100) 내에 데이터를 입력하거나 또는 시스템(100)에 의해 데이터에 액세스하기에 적합한 임의의 기타 디바이스들을 포함할 수 있다.
이 예에서, 이미지 신호 프로세서(ISP)(106)는 이미지 프로세싱 파이프라인의 다양한 스테이지들의 수행을 용이하게 할 수 있는 전용 하드웨어를 포함할 수 있고, 이는 본 명세서에 상세하게 설명된 바와 같다. 일부 실시예들에서, ISP(106)는 이미지 센서(102)로부터 이미지 데이터를 수신하고, 데이터를 시스템(100)의 다른 컴포넌트들(예컨대 디스플레이(116) 또는 비디오 인코더(124))에 의해 사용가능한 형태로 프로세싱하도록 구성될 수 있다. 일부 실시예들에서, ISP(106)는 다양한 이미지-조작 동작들, 예컨대, 이미지 변형 동작, 수평 및 수직 스케일링, 색 공간 전환 또는 기타 비왜곡 이미지 편집 동작, 또는 이미지 안정화 변환을 수행하도록 구성될 수 있고, 이는 본 명세서에 설명된 바와 같다. 이미지 신호 프로세서의 일 실시예는 도 3에 상세하게 예시되고 아래에 설명된다.
도 1에 예시된 예에서, 상호연결부(132)는 SOC(104)에 포함된 다양한 기능 유닛들 간의 통신을 용이하게 하도록 구성될 수 있다. 다양한 실시예들에서, 상호연결부(132)는 메시, 네트워크 온 칩 패브릭(network on a chip fabric), 공유 버스, 점대점 상호연결 등과 같은 임의의 적합한 상호연결 회로부를 포함할 수 있다.일부 실시예들에서, 상호연결부(132)는 임의의 필수적인 프로토콜, 타이밍, 또는 하나의 컴포넌트(예컨대, 시스템 메모리(130))로부터의 데이터 신호들을 다른 컴포넌트(예컨대, CPU(들)(108) 또는 GPU(120))에 의한 사용에 적합한 포맷으로 변환하는 다른 데이터 변환들을 수행할 수 있다. 일부 실시예들에서, 상호연결부(132)는, 예를 들어, PCI(Peripheral Component Interconnect) 버스 표준 또는 USB(Universal Serial Bus) 표준의 변형물과 같은 다양한 타입들의 주변기기 버스들을 통해 연결되는 디바이스들을 위한 지원부를 포함할 수 있다. 일부 실시예들에서, 상호연결부(132)의 기능은, 예를 들어, 2개 이상의 분리된 컴포넌트들, 예컨대 노스 브리지 및 사우스 브리지로 분할될 수 있다. 일부 실시예들에서, 상호연결부(132)는 픽셀 데이터 또는 기타 이미지 데이터 또는 통계치를 다양한 기능 유닛들에 적절한 포맷으로 전달하는 것을 용이하게 할 수 있다.
이 예에서, 네트워크 인터페이스(110)는 시스템(100)과 하나 이상의 네트워크에 부착된 다른 디바이스(예컨대, 캐리어 또는 에이전트 디바이스) 사이 또는 시스템(100)의 노드 또는 컴포넌트 사이에서 데이터가 교환되도록 구성될 수 있다. 예를 들어, 비디오 또는 기타 이미지 데이터는 기타 디바이스들(예컨대, 콘텐츠 제공자 네트워크 또는 다른 모바일 컴퓨팅 디바이스)로부터 네트워크 인터페이스(110)를 통해 수신되어 후속 프로세싱(예컨대, 이미지 신호 프로세서(106)에 대한 백 엔드 인터페이스를 통해, 아래 도 3에서 논의되는 바와 같음) 및 디스플레이를 위하여 시스템 메모리(130)에 저장될 수 있다. 네트워크(들)는 다양한 실시예들에서 근거리 네트워크(LAN)(예컨대, 이더넷(Ethernet) 또는 회사 네트워크), 광역 네트워크(WAN)(예컨대, 인터넷), 무선 데이터 네트워크, 일부 다른 전자 데이터 네트워크, 또는 이들의 일부 조합을 포함하지만 이로 제한되지 않는다. 다양한 실시예들에서, 네트워크 인터페이스(110)는, 예를 들어 유선 또는 무선의 일반 데이터 네트워크, 예컨대 임의의 적합한 타입의 이더넷 네트워크를 통해; 통신/전화 네트워크, 예컨대 아날로그 음성 네트워크 또는 디지털 광섬유 통신 네트워크를 통해; SAN(storage area network)), 예컨대 광섬유 채널 SAN(Fibre Channel SAN)을 통해; 또는 임의의 다른 적합한 타입의 네트워크 및/또는 프로토콜을 통한 통신을 지원할 수 있다.
통상의 기술자들은 시스템(100)이 단지 예시적인 것이고, 실시예들의 범주를 제한하는 것으로 의도되지는 않음을 인식할 것이다. 예를 들어, 시스템(100)은 또한 도시되지 않은 다른 디바이스들에 접속될 수 있거나, 또는 대신에 독립형 시스템으로서 동작할 수 있다. 또한, 도시된 컴포넌트들에 의해 제공되는 기능은, 일부 실시예들에서, 더 적은 수의 컴포넌트들로 조합될 수 있거나 또는 추가적인 컴포넌트들에 분산될 수 있다. 유사하게, 일부 실시예들에서, 도시된 컴포넌트들 중 일부 컴포넌트들의 기능이 제공되지 않을 수도 있거나 다른 추가적인 기능이 이용가능할 수 있다. 일부 실시예들에서 시스템 메모리(130)에 저장된 프로그램 명령어들은 CPU(108) 또는 GPU(120)에 의해 실행되어 시스템(100)의 다양한 기능들을 제공할 수 있다.
다른 실시예들에서, 다양한 기능들은 다른 디바이스 상의 메모리에서 실행되고 컴퓨터 간 통신을 통해 예시된 시스템과 통신하는 소프트웨어 컴포넌트들에 의해 수행될 수 있다. 이러한 소프트웨어 컴포넌트들의 일부 또는 전부 또는 본 명세서에 기재된 임의의 데이터 구조는 (예컨대, 명령어들 또는 구조화된 데이터와 같이) 시스템 메모리(130), 영구 저장장치(128)에 저장될 수 있거나, 또는 비일시적 컴퓨터 판독가능 매체 또는 적절한 구동에 의해 판독될 휴대용 물품에 저장될 수 있다. 일부 실시예들에서, 시스템(100)으로부터 분리된 컴퓨터 액세스가능 매체 상에 저장된 명령어들은 네트워크 또는 무선 링크와 같은 통신 매체를 통해 전달되는 전기, 전자기, 또는 디지털 신호들과 같은 전송 매체들 또는 신호들을 통해 시스템(100)으로 송신될 수 있다. 다양한 실시예들은 본 명세서에 따라 구현되는 명령어 또는 데이터를 수신, 송신, 또는 저장하는 것을 추가로 포함할 수 있다. 일반적으로 말하면, 컴퓨터 액세스가능 매체는 자기적 또는 광학적 매체들과 같은 비일시적 컴퓨터 판독가능 저장 매체 또는 메모리 매체, 예를 들어, 디스크 또는 DVD/CD-ROM, RAM(예컨대, SDRAM, DDR, RDRAM, SRAM 등), ROM과 같은 휘발성 또는 비휘발성 매체들 등을 포함할 수 있다.
도 2는 일부 실시예들에 따른, 이미지 신호 프로세서를 구현하는 시스템(구체적으로, 도 1에 예시된 시스템(100)) 내의 데이터 경로를 예시하는 블록도이다. 일 예에서 파선에 의해 예시된 바와 같이, 이미지 데이터는 이미지 센서(102)로부터, 이미지 신호 프로세서(106)를 지나 시스템 메모리(130)로 진행할 수 있다(상호연결부(132) 및 메모리 제어기(122)를 이용함). 이미지 데이터가 시스템 메모리(130)에 저장되면, 비디오 인코더(124), 디스플레이(116)에 의해 액세스될 수 있다(예컨대, 상호연결부(132)를 이용하고, 디스플레이(116)의 경우에는, 디스플레이 제어기(114)를 이용함). 예를 들어, 다양한 실시예들에서 그것은 디스플레이(116) 상에 미리보기를 디스플레이하기 위하여 디스플레이 제어기(114)에 의해 액세스될 수 있거나, 또는 비디오 인코더(124)에 의해 액세스될 수 있는데, 비디오 인코더(124)는 데이터를 영구 저장장치(128)에 비디오 레코딩(예컨대, 저장)하거나, 또는 데이터를 네트워크를 통해 전송하기 위한 네트워크 인터페이스(110)(예컨대, 비디오 컨퍼런스) 또는 다른 곳으로 전달하기에 적합한 포맷으로 인코딩할 수 있다.
다른 예시 데이터 경로가 점선(210)에 의해 예시되어 있다. 이미지 데이터, 예컨대 비디오 이미지 또는 데이터 또는 이미지 스틸 또는 프레임은 시스템(100)에 의해 이미지 센서(들)(102)이 아닌 소스들로부터 수신될 수 있다. 예를 들어, 비디오 데이터는 시스템(100)으로 유선 또는 무선 네트워크 접속을 통해 시스템(100)에서 멀리 떨어진 다른 소스들(예컨대, 콘텐츠 제공자 네트워크 또는 기타 모바일 컴퓨팅 디바이스)로부터 스트리밍, 다운로딩, 또는 다른 방식으로 전달될 수 있다. 이미지 데이터는 네트워크 인터페이스(110)를 통해 수신되어 메모리 제어기(122)를 통해 메모리(130)에 기록될 수 있다. 이어서 이미지 데이터는 이미지 신호 프로세서(106)에 의해 메모리(130)로부터 획득되어 하나 이상의 이미지 프로세싱 파이프라인 스테이지를 통해 처리되면서, 일부 실시예들에서, 다양한 이미지 보정, 변형, 전환, 또는 기타 이미지 프로세싱 기술들을 수행할 수 있다. 이어서 이미지 데이터는 메모리(130), 비디오 인코더(124), 또는 기타 컴포넌트, 예컨대 디스플레이(116)에서 디스플레이하기 위한 디스플레이 제어기(113) 또는 영구 저장장치(128)(도시되지 않음)에 저장하기 위한 저장장치 제어기(126)에 반환될 수 있다.
일부 실시예들에서 그래픽 프로세서(120)는 이미지 데이터를 액세스, 조작, 변환 또는 다른 방식으로 프로세싱할 수 있고, 따라서 추가적인 판독 및 기록 동작들이 도 2에 예시된 것 이상으로 시스템 메모리(130) 상에서 수행될 수 있다. 시스템 메모리(130)에 저장된 이미지 데이터는 GPU(120)에 의해 액세스될 수 있고(상호연결부(132) 및 메모리 제어기(122)를 이용함), GPU(120)가 이미지 데이터에 하나 이상의 이미지 변환을 수행한 이후에, 이미지 데이터는 시스템 메모리(130)에 다시 기록될 수 있다(상호연결부(132) 및 메모리 제어기(122)를 다시 이용함). 이미지 프로세싱이 CPU(108)에 의해 대신 수행되는 경우(예컨대, CPU(108) 상에서 실행되는 소프트웨어에 의함), 유사한 데이터 경로들이 시스템(100) 내의 시스템 메모리(130)와 CPU(108) 사이에서 사용될 수 있다. 일부 실시예들에서(도시되지는 않음) 이미지 신호 프로세서(106)로부터 나온 이미지 데이터는 이미지 데이터를 시스템 메모리(130)에 저장하지 않고 (상호연결부(132)를 통해) 다른 기능성 컴포넌트(예컨대, CPU(120), 그래픽 프로세서(120), 기타 I/O 디바이스들(118), 네트워크 인터페이스(110), 비디오 인코더(124), 저장장치 제어기(126), 또는 디스플레이 제어기(114))로 직접 송신될 수 있다.
이미지 신호 프로세싱 유닛(ISP)의 일 실시예, 예컨대 이미지 신호 프로세서(106)가 도 3의 블록도에 의해 예시되어 있다. 이 예에서 예시된 바와 같이, ISP(106)는 다양한 실시예들에서 이미지 센서(들)(102)에 결합될 수 있다(ISP(106)는 이미지 센서(들)(102)로부터 이미지 데이터를 수신함). 이 예에서, ISP(106)는 이미지 프로세싱 파이프라인을 구현하는데, 이미지 프로세싱 파이프라인은 생성, 캡처, 또는 수신부터 출력까지 이미지 정보를 프로세싱하는 스테이지들의 세트를 포함할 수 있다. 예를 들어, ISP(106)의 컴포넌트로서 예시된 다양한 요소들은 이미지 센서(102)로부터 센서 인터페이스(들)(302)를 통해 수신된 소스 데이터를 파이프라인 내의 다른 스테이지들에 의해(예컨대, 이미지 통계치(304), 미가공 이미지 프로세싱(306), 리샘플링 프로세싱 스테이지(308), 노이즈 프로세싱 스테이지(310), 색상 프로세싱 스테이지(312), 또는 출력 리스케일(314)), 출력 인터페이스(316)(메모리 제어기 인터페이스(122)를 통해 시스템 메모리에 기록된 이후에 시스템 메모리의 변환된 데이터를 액세스하거나 또는 이미지 데이터가 상호연결부(132)를 통해 직접 제공되는 것을 포함함) 또는 백 엔드 인터페이스(342)를 통해 ISP(106)를 포함하는 시스템의 다른 컴포넌트들에 의해, 또는 ISP(106)를 포함하는 시스템에 결합된 기타 디바이스들에 의해 프로세싱가능한 이미지 데이터로 프로세싱한다. 적어도 일부 실시예들에서, 센서 인터페이스(들)(302)는 다양한 프리프로세싱 동작들, 예컨대 패턴화된 결함들 및 결함 라인 쌍들(예컨대, 초점 픽셀(focus pixel)들과 같은 공간 픽셀들에 의해 생성됨)을 검출하고 보정하기 위한 픽셀 결함 보정, 및 이미지 데이터 크기를 줄이기 위한 이미지 잘라내기 또는 이미지 비닝을 수행할 수 있다. 주의할 점은 일부 실시예들에서, 이미지 신호 프로세서(106)는 스트리밍 디바이스라는 것이다. 다시 말해서, 픽셀들은 이미지 신호 프로세서(106)에 의해 이미지 센서(102)로부터 센서 인터페이스(들)(302)를 통해 래스터 순서대로(즉, 수평으로, 한줄씩) 수신될 수 있고, 일반적으로 그것의 다양한 파이프라인 스테이지들을 통해 래스터 순서대로, 래스터 순서상 최종 출력될 때까지, 프로세싱될 수 있다.
이미지 신호 프로세서(106)는 이미지 신호 프로세서(종종 ISP로 지칭됨)에서 수신된 이미지 데이터를 상이한 레이트로 프로세싱할 수 있다. 예를 들어, 도 3에 예시된 예시 실시예에서, 이미지 신호 프로세서는 이미지 데이터를 초기 레이트로 프로세싱하는 하나 이상의 프론트 엔드 파이프라인 스테이지(330), 예컨대 미가공 프로세싱 스테이지(306) 및 리샘플링 프로세싱 스테이지(308)를 구현할 수 있다. 따라서, 다양하고 상이한 기술들, 즉, 이 프론트 엔드 파이프라인 스테이지들에서 수행되는 조정, 수정, 또는 기타 프로세싱 동작들(미가공 프로세싱 스테이지(306) 및 리샘플링 프로세싱 스테이지(308)에 대하여 아래 설명되는 것들)은 이미지 데이터가 연속적으로 이 스테이지들을 통해 초기 레이트로 프로세싱될 수 있도록 구현될 수 있다. 예를 들어, 프론트 엔드 파이프라인 스테이지들(330)이 2 픽셀/클록 사이클로 프로세싱하는 경우, 블랙 레벨 보상, 하이라이트 회복, 결함 픽셀 보정, 및 기타 동작들과 같은 미가공 프로세싱 스테이지(306) 동작들은 한번에 2 픽셀의 이미지 데이터를 프로세싱할 수 있다.
이미지 데이터를 프론트 엔드 파이프라인 스테이지들에서 초기 레이트로 프로세싱하는 것에 추가하여, 이미지 신호 프로세서(106)는 이미지 데이터를 상이한 레이트로 프로세싱하는 하나 이상의 백 엔드 파이프라인 스테이지를 구현할 수 있다. 백 엔드 파이프라인 스테이지들(340)은, 다양한 실시예들에서, 이미지 데이터를 초기 데이터 레이트보다 낮은 감소된 레이트로 프로세싱할 수 있다. 예를 들어, 도 3에 예시된 바와 같이, 백 엔드 파이프라인 스테이지들(340), 예컨대 노이즈 프로세싱 스테이지(310), 색상 프로세싱 스테이지(312), 및 출력 리스케일(314)은 이미지 데이터가 감소된 레이트에 따라 프로세싱되도록 구현될 수 있다. 위의 예의 프론트 엔드 스테이지들(330)이 이미지 데이터를 2 ppc로 프로세싱하는 것으로 고려했을 때, 노이즈 프로세싱 스테이지(310)는 이미지 데이터를 2 ppc보다 낮은 레이트, 예컨대 1 ppc로 프로세싱하는 시간적 필터링 및 루마 선명화와 같은 동작들을 구현할 수 있다.
적어도 일부 실시예들에서, 이미지 신호 프로세서(106)는 백 엔드 인터페이스(342)를 구현할 수 있다. 백 엔드 인터페이스(342)는 이미지 센서(들)(102) 이외의 이미지 소스들로부터 이미지 데이터를 수신할 수 있다. 예컨대, 도 2에 예시된 바와 같이, 무선 연결을 통해 수신된 이미지 데이터는 메모리(130)에 수신 및 저장될 수 있다. 이미지 데이터는 이미지 신호 프로세서(106)의 백 엔드 스테이지들(340)에서 프로세싱하기 위하여 백 엔드 인터페이스(342)를 통해 수신될 수 있다. 이러한 방식으로, 이미지 신호 프로세서(106)는 이미지 데이터에 수행되는 CPU 또는 GPU 프로세싱 대신에(또는 추가적으로) 다른 이미지 데이터 소스(들)로부터 수신된 데이터에 리소스 효율적인 이미지 프로세싱 역량을 제공하도록 구성될 수 있다. 다양한 실시예들에서, 백 엔드 인터페이스(342)는 이미지 데이터를 백 엔드 프로세싱 스테이지들에 사용되는 포맷으로 변환할 수 있다. 예컨대, 백 엔드 인터페이스(342)는 RGB, YCbCr 4:2:0, 또는 YCbCr 4:2:2 포맷 이미지 데이터를 YCbCr 4:4:4 색상 포맷으로 변환할 수 있다. 반드시 주의할 점은 백 엔드 인터페이스(342)는, 도 6에 대하여 아래 논의한 바와 같이, 다양한 색상 포맷들로부터 변환할 수 있고, 따라서 이전 예들은 한정적인 것으로 의도되지 않는다는 것이다.
다양한 실시예들에서, 이미지 신호 프로세서(106)는 중앙 제어 모듈(320)을 구현할 수 있다. 일부 실시예들에서, 중앙 제어 모듈(320)은 이미지 데이터의 프로세싱을 구성 및 시작할 수 있다. 예를 들어, 중앙 제어 모듈(320)은 클록 사이클, 메모리 지연, 서비스의 품질, 상태 정보를 기록하기 위하여 성능 모니터링을 구현할 수 있다. 중앙 제어 모듈(320)은 ISP(106)의 유닛, 모듈, 스테이지들, 또는 기타 컴포넌트들에 대한 제어 파라미터들을 업데이트 또는 관리할 수 있고, 센서 인터페이스(302)와 통신하여 유닛, 모듈, 스테이지, 또는 기타 컴포넌트의 시작 및 종료를 제어할 수 있다. 예를 들어, 일부 실시예들에서, 유닛, 모듈, 스테이지, 또는 기타 컴포넌트는 유휴 상태로 진입할 수 있는데, 그 동안 프로그램가능한 파라미터들이 중앙 제어 모듈(320)에 의해 업데이트될 수 있다. 이어서 유닛, 모듈, 스테이지, 또는 기타 컴포넌트는 하나 이상의 동작 또는 태스크를 수행하기 위한 실행 상태로 들어갈 수 있다. 다른 예들에서, 중앙 제어 모듈(320)은 이미지 신호 프로세서(106)가 이미지 데이터를 리샘플링 프로세싱 스테이지(308)의 앞에서, 중간에, 또는 뒤에서 (예컨대, 도 2의 메모리(130)와 같은 메모리에) 저장하도록 구성할 수 있다. 이러한 방식으로 미가공 도메인 포맷 또는 풀 컬러 도메인 포맷의 풀 해상도 이미지 데이터가 리샘플링 프로세싱 스테이지(308)로부터 출력된 이미지 데이터를 백 엔드 파이프라인 스테이지들을 통해 프로세싱하는 것에 추가적으로 또는 그 대신에 저장될 수 있다.
다양한 실시예들에서, 이미지 신호 프로세서(106)는 이미지 통계 모듈(들)(304)을 구현할 수 있다. 이미지 통계 모듈(들)(304)은 다양한 기능들을 수행하고 정보를 수집할 수 있다. 예를 들어 이미지 통계 모듈은, 일부 실시예들에서 다양한 동작들의 결과로서 이미지 정보를 수집하기 위하여 센서 선형화, 결함 픽셀 대체, 블랙 레벨 보상, 렌즈 음영 보정, 및 역 블랙 레벨 보상을 수행할 수 있다. 다른 통계치, 예컨대 3A 통계치(자동 화이트 밸런스(AWB), 자동 노출(AE), 자동 초점(AF)), 히스토그램(예컨대, 2D 색상 또는 컴포넌트), 또는 임의의 기타 이미지 데이터 정보가 수집되거나 또는 추적될 수 있다. 따라서, 이전 예들은 한정적으로 의도되지 않는다. 일부 실시예들에서, 센서 선형화, 결함 픽셀 대체, 블랙 레벨 보상, 렌즈 음영 보정, 및 역 블랙 레벨 보상과 같은 통계 동작들이 클리핑된 픽셀들을 식별하면, 소정 픽셀들의 값, 또는 픽셀 값들의 영역은 통계치 수집, 예컨대 AF 통계치에서 배제될 수 있다. 다중 이미지 통계 모듈(304)이 구현되는 경우, 각각의 통계 모듈은 중앙 제어 모듈(320)에 의해 동일한 이미지 데이터에 대한 상이한 정보, 또는 상이한 이미지들에 대하여 수집된 상이한 이미지 데이터를 수집하도록(예컨대, 이미지 센서(들)(102) 중 상이한 것들로부터 수집됨) 프로그래밍될 수 있다.
전술된 바와 같이, 이미지 신호 프로세서(106)는 단일 또는 다중 프론트 엔드 파이프라인 스테이지들, 예컨대 미가공 프로세싱 스테이지(306) 및 리샘플링 프로세싱 스테이지(308)를 구현할 수 있고, 이는 이미지 데이터를 미가공 도메인 또는 풀 컬러 도메인에서 프로세싱할 수 있다. 미가공 프로세싱 스테이지(306)는, 다양한 실시예들에서 다양한 모듈, 유닛, 또는 컴포넌트를 구현하여 다양한 동작, 기능, 또는 태스크를 미가공 이미지 데이터에 수행할 수 있다. 베이어 미가공 포맷(Bayer raw format)은, 예를 들어, 베이어 패턴의 픽셀 센서들을 구현하는 이미지 센서(들)(102)로부터 수집된 이미지 데이터일 수 있다. 예컨대, 일부 픽셀 센서들은 녹색광만을 캡처하는 반면, 다른 픽셀 센서들은 베이어 패턴의 픽셀들에서 적색광 또는 청색광을 캡처한다. 이러한 방식으로, 베이어 미가공 이미지 포맷(또는 이미지 센서 내의 컬러 필터 어레이에 의해 캡처된 기타 미가공 이미지 포맷)의 이미지 데이터는 (모든 색상 대신에) 특정 색상에 특화된 값들을 갖는 픽셀 데이터를 제공한다.
따라서 미가공 프로세싱 스테이지(306)는 미가공 포맷(예컨대 베이어 미가공 포맷)의 이미지 데이터를 프로세싱하여 다양한 동작들, 예컨대, 센서 선형화, 블랙 레벨 보상, 고정 패턴 노이즈 감소, 결함 픽셀 보정, 미가공 노이즈 필터링, 렌즈 음영 보정, 화이트 밸런스 이득, 및 하이라이트 회복을 적용하지만, 이에 한정되지 않는다. 센서 선형화 유닛은, 일부 실시예들에서, 다른 프로세싱을 위하여 비선형 이미지 데이터를 선형 공간으로 맵핑할 수 있다(예컨대, 이미지 센서(들)(102) 중 하나일 수 있는 HDR(High Dynamic Range) 이미지 센서로부터 수집된 압신 포맷(companding format)으로부터 이미지 데이터를 변환함). 블랙 레벨 보상은, 일부 실시예들에서, 픽셀들의 이미지 데이터 상의 각각의 색상 컴포넌트(예컨대, Gr, R, B, Gb)에 대해 독립적으로 디지털 이득, 오프셋 및 클립을 제공하도록 수행될 수 있다(이는 센서 선형화 후에 일어날 수 있음). 일부 실시예들에서, 고정 패턴 노이즈 감소는 일부 실시예들에서 입력 이미지에서 어두운 프레임을 차감하고 상이한 이득을 픽셀들에 곱함으로써 오프셋 고정 패턴 노이즈 및 이득 고정 패턴 노이즈를 제거하도록 수행될 수 있다. 다양한 실시예들에서, 결함 픽셀 보정은 결함 픽셀들을 결정 또는 식별할 수 있고, 결함 픽셀 값들을 교체할 수 있다. 다양한 실시예들에서, 미가공 노이즈 필터링은 휘도가 유사한 이웃 픽셀들을 평균화함으로써 이미지 데이터의 노이즈를 감소시킬 수 있다. 다양한 실시예들에서, 하이라이트 회복은 다른 채널로부터 클리핑된(또는 거의 클리핑된) 픽셀들에 대한 픽셀 값들을 추정할 수 있다. 렌즈 음영 보정은 렌즈 광학 중심으로부터의 거리에 대략적으로 비례하는 세기의 감소를 보상하기 위하여 픽셀당 이득을 적용할 수 있다. 화이트 밸런스 이득은 모든 색상 컴포넌트들(예컨대, 베이어 포맷의 Gr, R, B, Gb)에 대하여 독립적으로 화이트 밸런스, 오프셋 및 클립에 대한 디지털 이득을 제공할 수 있다. 반드시 주의할 점은 위에서 제공한 다양한 예시 및 설명은 미가공 프로세싱 스테이지(306)의 다양한 기술, 컴포넌트, 또는 포맷을 한정하려는 의도가 아니며, 단지 예시로서 제공된 것이라는 점이다. 다양한 컴포넌트, 유닛, 또는 모듈은 다수의 상이한 파이프라인 프로세싱 스테이지들로 나뉠 수 있다. 또한 주의할 점은 일부 실시예들에서, 컴포넌트, 유닛, 또는 모듈 중 다양한 것들이 미가공 이미지 데이터를 풀 컬러 도메인으로 변환할 수 있고, 따라서 미가공 프로세싱 스테이지(306)는, 다양한 부분들에서, 미가공 이미지 데이터에 추가적으로 또는 그 대신에 이미지 데이터를 풀 컬러 도메인으로 프로세싱할 수 있다. 예컨대, 단순한 디모자이크 유닛은 미가공 노이즈 필터링으로부터 데이터를 수신하고, 이미지 데이터를 다시 미가공 이미지 포맷으로 변환하기 전에 미가공 이미지 데이터를 위한 풀 컬러 도메인을 보간하여 렌즈 음영 보정, 화이트 밸런스 이득, 또는 하이라이트 회복을 수행할 수 있다.
다양한 실시예들에서, 이미지 신호 프로세서(106)는 리샘플링 프로세싱 스테이지(308)를 구현할 수 있다. 리샘플링 프로세싱 스테이지(308)는 도 4에 대하여 아래 더 상세하게 논의되는 바와 같이 미가공 프로세싱 스테이지(306)로부터 수신된 이미지 데이터를 변환, 리샘플링, 또는 스케일링하는 다양한 동작들을 수행할 수 있고, 출력 이미지 데이터를 백 엔드 파이프라인 스테이지들(340)에 의해 프로세싱될 수 있는 것과 같은 감소된 레이트로 그에 따라 제공할 수 있다. 반드시 주의할 점은 일부 실시예들에서, 리샘플링 프로세싱 스테이지의 일부 또는 전부는 미가공 프로세싱 스테이지의 일부로서 구현될 수 있고, 따라서 이전 설명은 이미지 데이터에 대한 다중 레이트 프로세싱을 구현할 수 있는 이미지 프로세싱 파이프라인 내의 예시 파이프라인 스테이지들로서 제공된 것이라는 점이다.
다양한 실시예들에서, 이미지 신호 프로세서(106)는 프론트 엔드 스테이지들(330)에서 이미지 데이터를 프로세싱하기 위한 초기 레이트보다 낮은 레이트(예컨대, 4 ppc 초기 레이트 > 3, 2, 또는 1 ppc 감소된 레이트)로 이미지 데이터를 프로세싱하는 하나 이상의 백 엔드 파이프라인 스테이지(340)를 구현할 수 있다. 적어도 일부 실시예들에서, 백 엔드 파이프라인 스테이지들(340)은 리샘플링 프로세싱 스테이지(308) 또는 백 엔드 인터페이스(342)가 백 엔드 스테이지들(340)에 제공할 수 있는 특정 풀 컬러 포맷(예컨대, YCbCr 4:4:4 또는 RGB)에 따라 이미지 데이터를 프로세싱할 수 있다. 반드시 주의할 점은 일부 실시예들에서, 백 엔드 스테이지들(340)의 다양한 것들은 이미지 데이터를 특정 풀 컬러 포맷으로 변환하도록 구성될 수 있고(또는 프로세싱을 위하여 상이한 풀 컬러 포맷들을 사용할 수 있음), 따라서 이전 예는 한정하도록 의도되지 않는다.
일부 실시예들에서, 이미지 신호 프로세서(106)는 노이즈 프로세싱 스테이지(310)를 구현할 수 있다. 노이즈 프로세싱 스테이지(310)는, 다양한 실시예들에서 다양한 모듈, 유닛, 또는 컴포넌트를 구현하여, 상이한 순서대로, 감마/디 감마(de-gamma) 맵핑, 색 공간 전환, 시간적 필터링, 노이즈 필터링, 루마 선명화, 및 채도 노이즈 감소와 같은 다양한 동작, 기능, 또는 태스크를 수행할 수 있다. 색 공간 전환은 이미지 데이터를 다른 색상 포맷 또는 공간으로(예컨대, RBG에서 YCbCr으로) 변환할 수 있다. 흑백 전환, 세피아 톤 전환, 네가티브 전환, 또는 과대노출 전환을 포함하지만 이에 한정되지 않는 상이한 이미지 효과들을 적용하기 위하여 감마 맵핑은 픽셀 데이터의 특정 색상 채널들(예컨대, Y, Cb, 및 Cr 채널)에 대한 비선형 맵핑 기능을 제공할 수 있다. 시간적 필터링은, 다양한 실시예들에서, 이전에 필터링된 이미지 프레임으로부터의 픽셀 값들에 기초하여 이미지 신호 노이즈를 필터링하도록 수행될 수 있다. 이전에 필터링된 이미지 프레임(본 명세서에서 참조 이미지 프레임으로서 지칭될 수 있음)으로부터의 픽셀 값들은 현재 이미지 프레임의 픽셀 값들과 조합되어 픽셀 값들의 최상의 추정치를 얻을 수 있다. 예를 들어, 시간적 필터는 현재 이미지 프레임과 참조 이미지 프레임이 유사하면 현재 이미지 프레임 내의 픽셀 값들과 참조 이미지 프레임 내의 대응하는 픽셀들을 평균화할 수 있다. 적어도 일부 실시예들에서, 시간적 필터링은 개별적인 색상 채널 값들에 수행될 수 있다. 예컨대, 시간적 필터는 Y 색상 채널 값들(YCbCr 포맷의 이미지 데이터)을 참조 프레임 내의 Y 색상 채널 값들을 이용하여 필터링할 수 있다(Cb 또는 Cr과 같은 다른 채널에 필터링 안함).
다른 노이즈 필터링, 예컨대 공간적 노이즈 필터링이 수행될 수 있다. 적어도 일부 실시예들에서, 루마 선명화 및 채도 억제가 공간적 노이즈 필터링의 일부로서 동시에 또는 거의 동시에 일어나는 방식으로 수행될 수 있다. 루마 선명화는 일부 실시예들에서 픽셀 데이터의 루마 값들을 선명하게 할 수 있다. 채도 억제는 일부 실시예들에서 채도를 회색(즉 색상 없음)으로 감쇠시킬 수 있다. 일부 실시예들에서, 노이즈 필터링의 공격성은 이미지의 상이한 영역들에 대하여 상이하게 결정될 수 있다. 공간적 노이즈 필터링은 위에서 논의한 바와 같이 시간적 필터링을 구현하는 시간적 루프의 일부로서 포함될 수 있다. 예를 들어, 이전 이미지 프레임은 프로세싱될 다음 이미지 프레임에 대한 참조 프레임으로서 저장되기 전에 시간적 필터 및 공간적 노이즈 필터에 의해 프로세싱될 수 있다. 다른 실시예들에서, 공간적 노이즈 필터링은 시간적 필터링을 위한 시간적 루프의 일부로서 포함되지 않을 수 있다(예컨대, 공간적 노이즈 필터는 이전 이미지 프레임이 참조 이미지 프레임으로서 저장된 이후에 이미지 프레임에 적용될 수 있고 따라서 이전 이미지 프레임은 공간적으로 필터링된 참조 프레임이 아님). 반드시 주의할 점은 위에서 제공한 다양한 예시 및 설명은 노이즈 프로세싱 스테이지(310)의 일부로서 구현되는 다양한 기술 또는 컴포넌트를 한정하려는 의도가 아니며, 단지 예시로서 제공된 것이라는 점이다.
일부 실시예들에서, 이미지 신호 프로세서(106)는 색상 프로세싱 스테이지(312)를 구현할 수 있다. 색상 프로세싱 스테이지(312)는, 다양한 실시예들에서, 상이한 순서대로, 로컬 톤 맵핑, 이득/오프셋/클립, 색상 보정, 3차원 색상 룩업, 감마 전환, 및 색 공간 전환과 같은 다양한 동작, 기능, 또는 태스크를 수행하는 다양한 모듈, 유닛, 또는 컴포넌트를 구현할 수 있다. 로컬 톤 맵핑은, 일부 실시예들에서, 이미지를 렌더링할 때 더 많은 제어를 제공하기 위하여 공간적으로 변하는 로컬 톤 곡선을 적용할 수 있다. 예컨대, 2차원 그리드의 톤 곡선(중앙 제어 모듈(320)에 의해 프로그래밍될 수 있음)은 이중선형 보간되어(bi-linearly interpolated) 매끄럽게 변하는 톤 곡선이 이미지에 걸쳐 생성되도록 할 수 있다. 일부 실시예들에서, 로컬 톤 맵핑은 또한 공간적으로 변하고 세기가 변하는 색상 보정 매트릭스를 적용할 수 있고, 이는, 예를 들어, 이미지에서 하늘은 더 파랗게 만드는 반면 그림자 내의 청색은 더 낮추는 데 사용될 수 있다. 일부 실시예들에서, 디지털 이득, 오프셋 및 클립은 이미지 데이터의 각각의 색상 채널 또는 컴포넌트에 대하여 제공될 수 있다. 일부 실시예들에서, 색상 보정이 구현되어 색상 보정 변환 매트릭스를 이미지 데이터에 적용할 수 있다. 일부 실시예들에서, 3D 색상 룩업은 색상 컴포넌트 출력 값들(예컨대, R, G, B)의 3차원 어레이를 이용하여 개선된 톤 맵핑, 색 공간 전환, 및 기타 색상 변환을 수행할 수 있다. 감마 보정, 톤 맵핑, 또는 히스토그램 매칭을 수행하기 위하여 입력 이미지 데이터 값들을 출력 데이터 값들에 맵핑하는 감마 전환이 수행될 수 있다. 색 공간 전환은 하나의 색 공간에서 다른 색 공간으로(예컨대, RGB에서 YCbCr로) 이미지 데이터를 전환하도록 구현될 수 있다. 다른 프로세싱 기술들이 또한 색상 프로세싱 스테이지(312)의 일부로서 수행되어 다른 특수 이미지 효과들, 예컨대 흑백 전환, 세피아 톤 전환, 네가티브 전환, 또는 과대노출 전환을 수행할 수 있다.
다양한 실시예들에서, 이미지 신호 프로세서(106)는 출력 리스케일 모듈(314)을 구현할 수 있다. 출력 리스케일 모듈(314)은 ISP(160)가 이미지 데이터를 프로세싱함에 따라 즉각적인 리샘플링, 변환 및 왜곡 보정을 할 수 있다. 일부 실시예들에서, 출력 리스케일 모듈(314)은 각각의 픽셀에 대하여 프랙셔널 입력 좌표(fractional input coordinate)를 연산하여 이 프랙셔널 좌표를 다상(polyphase) 리샘플링 필터를 통해 출력 픽셀을 보간할 수 있다. 프랙셔널 입력 좌표는 (예컨대, 단순한 수평 및 수직 스케일링 변환을 통해) 이미지 크기의 재조정 또는 크로핑, (예컨대, 비가분성(non-separable) 매트릭스 변환을 통한) 이미지의 회전 및 전단, (예컨대, 추가적인 깊이 변환을 통한) 원근감 왜곡 및 이미지 데이터 캡처 시 (예컨대, 롤링 셔터에 의한) 이미지 센서의 변화를 고려하기 위하여 스트립 단위로 적용되는 픽셀별 원근 분리, 및 (예컨대, 보간된 반경 방향 이득 표를 색인하기 위하여 광학 중심으로부터 반경 거리를 연산하고, 반경 방향 렌즈 왜곡을 고려하기 위하여 좌표에 반경 방향 섭동(radial perturbance)을 적용함으로써) 기하학적 왜곡 보정과 같은 출력 좌표의 다양한 가능한 변환으로부터 생성될 수 있다.
출력 리스케일 모듈(314)은, 다양한 실시예들에서, 출력 리스케일 모듈(314)에서 프로세싱됨에 따라 이미지 데이터에 변환을 적용할 수 있다. 출력 리스케일 모듈(314)은 수평 및 수직 스케일링 컴포넌트들을 포함할 수 있다. 설계의 수직 부분은 수직 필터에 필요한 "지원"을 유지하기 위하여 일련의 이미지 데이터 라인 버퍼들을 구현할 수 있다. ISP(106)가 스트리밍 디바이스일 수 있기 때문에, 유한한 길이의 슬라이딩 윈도의 라인들 중 이미지 데이터의 라인들만이 필터가 사용 가능할 수 있다. 새로 유입되는 라인을 위한 공간을 만들기 위해 하나의 라인이 폐기되면, 라인은 이용불가능할 수 있다. 출력 리스케일 모듈(314)은 이전 라인들에 대하여 연산된 입력 Y 좌표를 통계적으로 모니터하여, 그것을 이용하여 수직 지원 윈도에 유지하기 위한 최적의 라인들의 세트를 연산할 수 있다. 각각의 후속 라인에 대하여, 출력 리스케일 모듈은 수직 지원 윈도의 중심의 위치에 대한 최선의 추측을 자동으로 생성할 수 있다. 일부 실시예들에서, 출력 리스케일 모듈(314)은 이미지 프레임의 캡처 시 센서 모션에 의해 야기되는 아티팩트 및 모션을 보정하기 위하여 입력 이미지 데이터와 출력 이미지 데이터 사이의 픽셀별 원근 변환을 수행하는 디지털 차이 분석기(DDA) 스텝퍼로서 인코딩된 조각별 원근 변환의 표를 구현할 수 있다. 출력 리스케일은 출력 인터페이스(314)를 통해 시스템(100)의 다양한 다른 컴포넌트들에 이미지 데이터를 제공할 수 있고, 이는 도 1 및 도 2에 대하여 위에서 논의된 바와 같다.
또한 중요한 점은, 다양한 실시예들에서, 유닛들(302 내지 342)의 기능은 도 3에 예시된 이미지 프로세싱 파이프라인 내의 기능 유닛들의 순서에 의해 암시되는 순서와 상이한 순서대로 수행될 수 있거나, 또는 도 3에 예시된 것들과 상이한 기능 유닛들에 의해 수행될 수 있다는 것이다. 또한, 도 3(또는 후속 도 4 내지 도 6)에 설명된 다양한 컴포넌트, 유닛, 프로세스, 또는 기타 기능은 하드웨어 또는 소프트웨어의 다양한 조합들로 구현될 수 있다.
전술된 바와 같이, 다양한 실시예들에서, 상이한 스테이지들이 이미지 데이터를 상이한 레이트로 프로세싱하도록 구성될 수 있는데, 예컨대 프론트 엔드 파이프라인 스테이지들(330)은 이미지 데이터를 초기 레이트로 프로세싱하고 백 엔드 파이프라인 스테이지들(340)은 이미지 데이터를 감소된 레이트로 프로세싱한다. 리샘플링 프로세싱 스테이지(308)는, 다양한 실시예들에서, 이미지 데이터를 미가공 프로세싱 스테이지로부터 초기 데이터 레이트로 수신하고, 이미지 데이터를 프로세싱하고, 출력 이미지 데이터를 감소된 이미지 레이트로 제공하도록 구성될 수 있다. 도 4는 일부 실시예들에 따른, 이미지 신호 프로세서 내의 리샘플링 프로세싱 스테이지를 도시하는 논리 블록도이다.
미가공 이미지 데이터(402)는 미가공 프로세싱 스테이지(306)로부터 (또는 리샘플링 프로세싱 스테이지(308)에서 프로세싱하기 위한 메모리와 같은 다른 입력으로부터) 수신될 수 있다. 미가공 프로세싱 스테이지와 같이, 리샘플링 프로세싱 스테이지(308)는 이미지 데이터를 위에서 설명한 초기 레이트로 프로세싱할 수 있다. 따라서, 디모자이크 유닛(410), 감마 맵핑 유닛(420), 및 스케일러(430)는 입력 이미지 데이터를 초기 데이터 레이트에 따라 프로세싱할 수 있다. 다양한 실시예들에서, 스케일러(430)는 동일거나 또는 상이한 레이트로 이미지 데이터의 하나 이상의 다중 출력을 제공할 수 있다. 예컨대, 일부 실시예들에서, 스케일러(430)는 풀 컬러 도메인에서 감소된 레이트로 스케일링된(434) 이미지 데이터를 추가적인 프로세싱을 위하여 노이즈 프로세싱 스테이지(310)에 제공할 수 있다. 일부 실시예들에서, 풀 컬러 스케일링된 이미지 데이터(434)는 추가적으로(또는 대안적으로) 시스템 메모리(130)에 기록되어 향후 프로세싱 또는 디스플레이를 위해 저장될 수 있다. 적어도 일부 실시예들에서, 스케일러(430)는 리샘플링된(다운스케일되지 않는 경우) 풀 컬러 이미지 데이터를 출력으로서 (풀 컬러 스케일링된 이미지 데이터(434)에 추가적으로 또는 그 대신에) 제공할 수 있다. 예를 들어, 스케일러(430)는 YCbCr 4:4:4 포맷의 풀 해상도 이미지 데이터를 YCbCr 4:2:2 포맷으로 서브샘플링하여, 색차 색상 컴포넌트들을 감소시키고 (휘도 색상 컴포넌트를 감소시키지 않음) 서브샘플링된 포맷의 풀 해상도 이미지 데이터를 출력으로서 제공할 수 있다.
일부 실시예들에서, 선택 컴포넌트(440)는, 중앙 제어 모듈(320), 또는 다른 컴포넌트가 프로그램 이미지 신호 프로세서(106)로 하여금 시스템 메모리(130) 내의 미가공 이미지 데이터(402) 또는 풀 컬러 리샘플링된 이미지 데이터(432)를 저장하도록 프로그래밍할 수 있도록 구현될 수 있다. 이러한 방식으로, 스케일링되지 않은 버전의 이미지 데이터(예컨대, 풀 해상도 이미지)는 메모리에 미가공 또는 풀 컬러 포맷으로 저장될 수 있는 반면, 스케일링된 버전의 이미지는 풀 컬러 스케일링된 이미지 데이터(434)로서 다른 파이프라인 스테이지들에서 계속해서 프로세싱될 수 있다. 예컨대, 이미지 프레임은 풀 해상도로 캡처되어 고해상도 이미지로서 저장되고 더 낮은 해상도 미리보기 이미지로서 프로세싱되고 디스플레이될 수 있다. 다른 예에서, 더 낮은 해상도 버전의 이미지 프레임이 비디오 파일(예컨대, 1080p 비디오 파일)의 일부로서 저장되도록 프로세싱하는 동안 고해상도 이미지 프레임이 캡처될 수 있다.
디모자이크 유닛(410)은 누락된 색상 샘플들을 미가공 이미지 데이터(402)에서 풀 컬러 도메인의 출력 이미지 데이터로 변환하거나 또는 보간할 수 있다. 예컨대, 위에서 논의된 바와 같이, 이미지 센서, 예컨대 컬러 필터 어레이(CFA)로부터 이미지 데이터를 수집하면, 미가공 이미지 데이터(402)는 개별적인 픽셀에 대하여 다수의 색상 컴포넌트 또는 채널을 포함하지 않을 수 있다(예컨대, 픽셀은 베이어 패턴의 녹색, 적색, 또는 청색 픽셀임). 풀 컬러 도메인은, 이전에 언급한 바와 같이, 임의의 하나의 색상 채널 또는 컴포넌트보다 큰 색 공간(예컨대, 적색, 청색, 및 녹색 색상 조합을 포함하는 색 공간) 내에서 픽셀에 대한 색상 값을 제공하기 위하여 개별적인 픽셀에 대하여 다수의 색상 채널 또는 컴포넌트를 포함할 수 있다. 일부 실시예들에서, 디모자이크 유닛(410)은 베이어 CFA 패턴에 기초하여 보간법을 수행한다. 예를 들어, 디모자이크 유닛(410)은 원본 이미지 센서 샘플에 작용하는 5×5 에지 적응형 필터를 이용하여 녹색 채널 보간을 수행할 수 있다. 저역 통과 지향성 필터가 녹색 픽셀 값에 적용될 수 있고, 고역 통과(또는 경사) 필터가 동일한 행 위의 녹색에 인접한 색상 채널(녹색 픽셀이 위치한 행에 따라 적색 또는 청색 중 어느 하나) 상에서 구현될 수 있다. 적색 채널과 청색 채널을 보간하기 위하여, 디모자이크 유닛(410)은 적색 또는 청색 픽셀에 인접한 보간된 녹색 값들을 이용하는 고역 통과 필터와 함께 적색 또는 청색 픽셀 값의 저역 통과 필터를 구현할 수 있다. 일부 실시예들에서, 디모자이크 유닛(410)의 일부로서 적색 픽셀에 인접한 녹색 픽셀 값과 청색 픽셀에 인접한 녹색 픽셀 사이의 휘도 차이를 고려하기 위하여 녹색 불균일성 보정이 구현될 수 있다.
감마 맵핑 유닛(420)은, 일부 실시예들에서, 리샘플링 프로세싱 스테이지(308)의 일부로서 구현될 수 있고, 디모자이크 유닛(410)으로부터 변환된 이미지 데이터를 입력으로서 수신할 수 있다. 감마 맵핑 유닛(420)은 특수 이미지 효과들, 예컨대 흑백 전환, 세피아 톤 전환, 네가티브 전환, 또는 과대노출 전환을 수행하기 위하여 입력 이미지 데이터 값에서 출력 데이터 값으로 변환된 이미지 데이터를 맵핑할 수 있다. 예를 들어, 감마 맵핑 유닛(420)은 각각의 픽셀의 상이한 색상 컴포넌트 또는 채널에 대한 룩업 테이블(또는 픽셀 값들을 다른 값에 연동시키는 기타 구조)(예컨대, Y, Cb, 및 Cr 색상 컴포넌트에 대하여 개별적인 룩업 테이블)을 이용할 수 있다. 이 값들은 입력 픽셀 값을 낮거나 높은 맵핑 값으로 맵핑할 수 있는 출력 레벨을 표현한다. 입력 픽셀 값에 대한 출력 값은 입력 픽셀에 대한 낮은 맵핑 값과 높은 맵핑 값 사이에 선형 보간법을 수행함으로써 결정될 수 있다. 중앙 제어 모듈(320)은 다양한 특수 효과들을 적용하는 것에 대응하는 값들을 맵핑하기 위한 룩업 테이블 값들(또는 다른 감마 맵핑 유닛(420) 제어 파라미터들)을 구성할 수 있다.
리샘플링 프로세싱 스테이지(308)는 감마 맵핑 유닛(420)으로부터(또는 디모자이크 유닛(410)으로부터(도시되지 않음)) 이미지 데이터를 수신하여 풀 컬러 도메인의 변환된 이미지 데이터에 다양한 스케일링, 리샘플링, 또는 기타 이미지 데이터 동작들을 수행하는 스케일러(430)를 구현할 수 있다. 적어도 일부 실시예들에서, 스케일러(430)는 상이한 유형의 스케일링되거나, 리샘플링되거나, 또는 다른 방식으로 변경된 이미지 데이터 출력을 제공하는 다수의 모드에서 동작할 수 있다. 예컨대, 스케일러(430)는 이미지 데이터를 스케일링하지 않고 이미지 데이터 내의 아티팩트를 보정 또는 억제하는 모드(예컨대, 채도 에일리어싱 아티팩트를 억제하여 디모자이크 유닛(410)에 의해 유발된 휘도 에지 근처의 에일리어싱 아티팩트를 제거하는 것 또는 디모자이크 유닛(410)에 의해 유발된 도트 아티팩트를 제거하는 것)를 제공할 수 있다(그러나 스케일러(430)의 출력은 여전히 위에서 논의한 바와 같이 감소된 레이트에 따라 이미지 데이터를 제공할 수 있음). 일부 실시예들에서, 스케일러(430) 모드에 대하여 다른 모드는 이미지 다운스케일링 및 리샘플링을 (이미지 데이터 내의 아티팩트를 보정 또는 억제하는 것에 추가하여, 또는 그 대신에) 수행할 수 있다. 예를 들어, 스케일러(430)는 입력으로서 YCbCr 4:4:4 포맷의 이미지 데이터를 수신하고 이미지 데이터를 YCbCr 4:2:2 포맷으로 다운샘플링할 수 있다(이는 CbCr(색차) 데이터를 Y(휘도)의 데이터의 반으로 감소시킬 수 있음). 이어서 스케일러(430)는 리포맷 이미지 데이터를 다운스케일링(예컨대, 수직 및 수평 리샘플링을 수행)하여, 이미지 크기를 하나의 해상도(예컨대, 풀-센서 해상도 이미지)에서 상이한 해상도(예컨대, 비디오 해상도, 1080p)로 변경할 수 있다. 일부 실시예들에서, 스케일러(430)는 또한 스케일링된 이미지 데이터 내의 아티팩트를 보정 또는 억제할 수 있고, 이는 위에서 논의한 바와 같다. 중앙 제어 모듈(320)은, 다양한 실시예들에서, 스케일러(430)에 의해 입력 이미지 데이터에 수행될 수 있는 이미지 데이터의 크기의 다운스케일링과 같은 모드 또는 다른 동작들을 구성할 수 있다.
반드시 주의할 점은 도 4는 단지 리샘플링 프로세싱 스테이지(308)의 예로서 제공되고 있다는 것이다. 예시된 컴포넌트들(뿐만 아니라 예시되지 않은 컴포넌트들)의 상이한 조합을 이용하여 미가공 이미지 데이터에서 풀 컬러 도메인으로의 전환을 수행하거나 또는 이미지 데이터를 스케일링할 수 있다. 예를 들어, 일부 실시예들에서 출력 선택 컴포넌트(440)는 구현되지 않을 수 있다. 따라서, 도 4의 컴포넌트들 및 그것들 각각의 레이아웃 또는 순서는 리샘플링 프로세싱 스테이지(308)에 사용될 수 있는 다양한 다른 조합들을 한정하도록 의도되지 않는다.
도 1 내지 도 4는 이미지 프로세싱 파이프라인에서 이미지 데이터에 대하여 다중 레이트 프로세싱을 구현할 수 있는 이미지 프로세싱 파이프라인, 이미지 신호 프로세서, 및 시스템의 예를 제공한다. 그러나, 이미지 프로세싱 파이프라인 및 이미지 신호 프로세서를 구현하는 다수의 기타 유형 또는 구성의 시스템 또는 디바이스는 이미지 데이터에 대하여 다중 레이트 프로세싱을 수행할 수 있다. 도 5는 일부 실시예들에 따른, 이미지 프로세싱 파이프라인 내의 이미지 데이터를 다중 레이트로 프로세싱하기 위한 다수의 방법 및 기술을 도시하는 높은 수준의 흐름도이다. 위에서 설명한 다양한 컴포넌트들은 이 기술들 (아래 도 6에 대하여 설명한 것들에 추가하여) 뿐만 아니라 다양한 기타 이미지 프로세싱 파이프라인 및 이미지 신호 프로세서를 구현할 수 있다.
510에 나타난 바와 같이, 이미지 센서에서 수집된 미가공 픽셀 데이터의 스트림은 이미지 신호 프로세서(ISP)에서 수신될 수 있다. 미가공 픽셀 데이터는 이미지 센서에서 수집된 것과 같이 스트림 방식으로 캡처 및 프로세싱될 수 있다. 미가공 이미지 픽셀 데이터는, 위에서 논의된 바와 같이, 다수의 색상 컴포넌트 또는 채널이 개별적인 픽셀에 대하여 포함되지 않도록 구성될 수 있다. 일례의 미가공 이미지 데이터는 상이한 색상들, 즉, 녹색, 적색, 및 청색의 광을 수집한 픽셀 값의 상이한 행들을 포함하는 베이어 이미지 포맷(이는 많은 변형이 있을 수 있음)이며, 이는 이미지 센서의 구성에 따라 달라진다. 일부 실시예들에서, 이 픽셀 값들(예컨대, 녹색 값, 적색 값, 또는 청색 값)은 래스터 순서대로 수집되고 이미지 신호 프로세서에 제공될 수 있다.
520에 나타난 바와 같이, 미가공 픽셀 데이터의 스트림은 픽셀들을 초기 레이트(픽셀/클록 사이클)(ppc)로 프로세싱하는 파이프라인 스테이지(들)로 인도될 수 있다. 예컨대, 파이프라인 스테이지(들)는 픽셀 데이터를 4 ppc로 프로세싱할 수 있다. 파이프라인 스테이지(들)는 유닛, 컴포넌트, 또는 ISP에서 미가공 이미지 데이터의 스트림에 수행되는 기타 프로세싱 동작들의 하나 이상의 집합일 수 있다. 파이프라인 스테이지들은, 일부 실시예들에서, 프론트 엔드(330) 내의 다양한 스테이지 또는 컴포넌트일 수 있고, 이는 도 3에 대하여 위에서 논의한 바와 같다. 예컨대, 센서 선형화, 블랙 레벨 보상, 고정 패턴 노이즈 감소, 결함 픽셀 보정, 미가공 노이즈 필터링, 렌즈 음영 보정, 화이트 밸런스 이득, 하이라이트 회복, 디모자이크, 또는 감마 맵핑이 초기 레이트(픽셀/클록 사이클)로 수행될 수 있다.
일부 실시예들에서, 파이프라인 스테이지(들)의 일부 또는 전부를 거쳐 프로세싱된 미가공 픽셀 데이터(위 510에 대해 논의한 바와 같음)는 메모리에 저장될 수 있다. 예를 들어, 제어 유닛, 또는 기타 프로그램가능한 컴포넌트가 ISP로 하여금 프로세싱된 미가공 픽셀 데이터의 스트림을 메모리에 저장하도록 지시하는 경우, 미가공 픽셀 데이터의 스트림에 의해 캡처된 미가공 포맷 풀 해상도 이미지는 메모리에 저장될 수 있고, 이는 532에 나타난 바와 같다. 이러한 방식으로 다른 컴포넌트들, 예컨대 CPU 또는 GPU는 메모리에 액세스함으로써 미가공 이미지 데이터에 이미지 프로세싱을 수행할 수 있다. 대안적으로, 미가공 이미지 데이터가 메모리에서 회수되어, 나중에 아래에서 논의되는 다양한 ISP 요소들을 통해 계속해서 프로세싱될 수 있다. 이미지 데이터가 메모리에 저장되는지 여부에 상관없이, 미가공 이미지 데이터는 후속 이미지 프로세싱 스테이지들을 통해 계속해서 프로세싱될 수 있다(532에서 540으로 향하는 화살표 또는 530에서 '아니오' 방향으로 표시된 바와 같음). 주의할 점은 이미지 데이터는 또한 메모리에 저장되어 있는 동안에도 계속해서 프로세싱할 수 있고, 따라서 다양한 요소들은 도 5에 예시된 바와 같이 소정 요소들을 병렬로 수행할 가능성을 배재하지 않는다는 것이다.
ISP는, 다양한 실시예들에서, 프로세싱된 미가공 픽셀 데이터의 스트림을 풀 컬러 도메인으로 변환하며, 이는 540에 나타난 바와 같다. 예를 들어, 미가공 픽셀 데이터의 스트림이 베이어 포맷으로 수집된다면, 녹색 픽셀에 대한 청색 값 및 적색 값, 청색 픽셀에 대한 녹색 값 및 적색 값, 및 적색 픽셀에 대한 청색 값 및 녹색 값을 결정하기 위한 다양한 보간 기술들이 구현될 수 있다. 녹색 채널에 저역 통과 지향 필터를 적용하고 인접한 색상 채널(예컨대, 적색 또는 청색)에 고역 통과(또는 경사) 필터를 적용함으로써 (적색 픽셀 및 청색 픽셀에 대하여) 녹색 채널 값들을 보간하는 보간 기술을 고려할 수 있다. 일부 실시예들에서, 저역 통과 지향 필터만을 적용하여 녹색 채널 값을 해석할 수 있다. 유사하게, 보간 기술은 이웃하는 적색 픽셀 또는 청색 픽셀에 저역 통과 필터를 이용하여 적색 픽셀 및 청색 픽셀을 보간하거나, 함께 위치한 녹색 값들을 이용하는 고역 통과(또는 경사) 필터를 이용하여 적색 픽셀 및 청색 픽셀을 보간할 수 있다(현재 픽셀 위치에 따라 원래대로 하거나 또는 보간됨).
550에 나타난 바와 같이, 일부 실시예들에서, 변환된 픽셀 데이터는 메모리에 저장되고, 이는 552에 나타난 바와 같다. 예컨대, 중앙 제어 모듈 또는 기타 컴포넌트는 ISP로 하여금 풀 해상도, 풀 컬러 버전의 이미지를 메모리에 저장하게 지시하도록 프로그래밍될 수 있다. 적어도 일부 실시예들에서, 이미지는 메모리에 저장되기 전에 (풀 컬러 이미지 데이터를 저장할 때 메모리 대역폭을 절약하기 위하여) 리샘플링될 수 있다. 예를 들어, YCbCr 4:4:4 포맷으로 변환된 이미지 데이터는 상이한 포맷, 예컨대 YCbCr 4:2:2, YCbCr 4:2:0, 또는 YCbCr 4:4:0으로 서브샘플링될 수 있는데, 이는 이미지가 YCbCr 4:4:4 포맷으로 저장되는 경우보다 이미지에 필요한 저장량을 감소시킨다(휘도 성분을 감소시키지 않고 색차 성분들이 감소되기 때문임). 이미지 데이터가 메모리에 저장되는지 여부에 상관없이, 변환된 픽셀 데이터는 후속 이미지 프로세싱 스테이지들을 통해 계속해서 프로세싱될 수 있다(552에서 560으로 향하는 화살표 또는 550에서 '아니오' 방향으로 표시된 바와 같음). 주의할 점은 이미지 데이터는 또한 메모리에 저장되어 있는 동안에도 계속해서 프로세싱할 수 있고, 따라서 다양한 요소들은 도 5에 예시된 바와 같이 소정 요소들을 병렬로 수행할 가능성을 배재하지 않는다는 것이다.
일부 실시예들에서, 552에서 저장되는 변환된 이미지 데이터의 스트림은 요소들(560, 570, 및 580)에 따라 프로세싱되도록 이미지 프로세싱 파이프라인에 다시 주입될 수 있다. 이러한 방식으로, 풀 색상 도메인으로 변환된 더 높은 해상도 이미지 데이터는 이미지 프로세싱 파이프라인의 나머지 부분에 의해 프로세싱될 수 있다. 예를 들어, 저장된 이미지 데이터는 이미지 프로세싱 파이프라인 내의 스페어 사이클을 이용하여(예컨대, 파이프라인이 이미지 센서로부터의 프레임을 프로세싱하고 있지 않을 때) 부분적으로(예컨대, 스트립으로) 프로세싱될 수 있다. 이를 통해 더 높은 해상도 이미지가 효율적으로 프로세싱될 수 있다. 메모리로부터 이미지 데이터를 다시 주입하기 위한 유사한 기술이 532에 저장된 이미지 데이터에 대하여 수행될 수 있다.
변환된 이미지 데이터의 스트림이, 다양한 실시예들에서, ISP에 의해 이미지에 대한 초기 데이터 크기보다 작은 데이터 크기로 스케일링될 수 있고, 이는 560에 나타난 바와 같다. 예컨대, 이미지 센서는 이미지에 대한 다수의 픽셀들(예컨대, 12 메가픽셀들) 풀 해상도로 캡처할 수 있다. ISP는 미가공 프로세싱 파이프라인 스테이지들을 통해 풀 해상도 이미지에 대한 픽셀 데이터의 스트림을 프로세싱할 수 있고(요소(510) 내지 요소(530)에 나타난 바와 같음) 풀 컬러 및 풀 해상도 버전의 이미지로 변환될 수 있다. 이어서 ISP는 이미지를 더 작은 데이터 크기(예컨대, 3.1 메가 픽셀들
Figure 112018020673720-pct00001
원래 해상도의 1/4)로 다운 스케일링할 수 있고, 이는 (예컨대, 1080p 비디오 레코딩의 일부로서) 저장하거나 또는 (미리보기 이미지로서) 디스플레이하기 위하여 요소(570)에 나타난 바와 같이 프로세싱될 수 있다. 일부 실시예들에서, 기타 이미지 프로세싱 동작들이 스케일링의 일부로서 또는 이미지 아티팩트를 보정 또는 억제하기 위한 동작들과 같은 (초기 데이터 레이트의) 스케일링과 함께 수행될 수 있다. 예컨대, 도트 아티팩트는 픽셀 값(예컨대, 휘도 채널(Y) 값)을 이웃하는 픽셀들과 비교하고 픽셀 값과 이웃하는 픽셀 값들 간의 비교에 기초하여 픽셀 값을 변경함으로써 제거될 수 있다. 일부 실시예들에서, 색상 에일리어싱 아티팩트는 (예컨대, 휘도 채널 컴포넌트(Y)의 필터링된 부분에 따라 Cr 및 Cb과 같은 색상 컴포넌트들을 감쇠시킴으로써) 제거될 수 있다.
570에 나타난 바와 같이, 다양한 실시예들에서 스케일링된 이미지 데이터의 스트림은 초기 레이트보다 낮은 상이한 레이트(픽셀/클록 사이클)에 따라 픽셀들을 프로세싱하는 ISP의 다른 파이프라인 스테이지(들)를 통해 프로세싱될 수 있다. 예컨대, 요소(520)에서 주어진 4 ppc의 예시 초기 레이트를 고려해보자. 상이한 레이트(픽셀/클록 사이클)는 2 ppc일 수 있다. 다른 파이프라인 스테이지(들)는 유닛, 컴포넌트, 또는 ISP에서 스케일링된 이미지 데이터의 스트림에 수행되는 기타 프로세싱 동작들의 하나 이상의 집합일 수 있다. 파이프라인 스테이지들은, 일부 실시예들에서, 백 엔드(340) 내의 다양한 스테이지 또는 컴포넌트일 수 있고, 이는 도 3에 대하여 위에서 논의한 바와 같다. 예컨대, 감마/디 감마 맵핑, 색 공간 전환, 시간적 필터링, 노이즈 필터링, 루마 선명화, 채도 노이즈 감소, 로컬 톤 맵핑, 이득/오프셋/클립, 색상 보정, 3차원 색상 룩업, 색 공간 전환, 또는 다양한 포맷의 리스케일링은 상이한 레이트(픽셀/클록 사이클)로 수행될 수 있다.
다른 파이프라인 스테이지(들)를 통해 프로세싱되는 스케일링된 픽셀 데이터의 스트림은 디스플레이를 위해 제공될 수 있고, 이는 580에 나타난 바와 같다. 예컨대, 프로세싱된 이미지 데이터는 디스플레이 제어기 또는 후속 디스플레이를 위한 메모리 또는 기타 중개장치에 직접 기록될 수 있다. 일부 실시예들에서, 스케일링된 픽셀 데이터의 스트림은 비디오 레코딩을 구성하는 일련의 이미지 프레임들의 일부로서 영구 저장장치에 기록되거나 또는 풀 프로세싱 버전의 이미지로서 저장될 수 있다(532 또는 552에 저장된 이미지 버전에 반대임).
이미지 센서로부터 수집된 이미지 데이터를 프로세싱하는 것에 추가적으로, 다양한 실시예들에서, 이미지 프로세싱 파이프라인을 구현하는 디바이스로부터 멀리 떨어져 있거나(예컨대, 콘텐츠 제공자 또는 이미지 데이터를 송신한 모바일 컴퓨팅 디바이스), 또는 이미지 프로세싱 파이프라인을 구현하는 동일한 디바이스에서 생성된 (예컨대, 소프트웨어 애플리케이션에 의해 생성된 이미지 데이터, 예컨대 게임을 위해 생성된 그래픽) 다른 소스들로부터 수집된 이미지 데이터는 이미지 프로세싱 파이프라인의 상이한 파이프라인 스테이지들에서 프로세싱될 수 있다. 이러한 방식으로, 다수의 상이한 이미지 프로세싱 태스크들은 이미지 프로세싱 파이프라인의 효율적인 전용 컴포넌트들, 예컨대 도 3의 ISP(106)에 대하여 위에서 설명한 것들을 이용하여 수행될 수 있다. 적어도 일부 실시예들에서, 백 엔드 인터페이스는 이미지 신호 프로세서에 대하여 이미지 프로세싱 파이프라인의 상이한 파이프라인 스테이지들이 상이한 소스들로부터 수신된 이미지 데이터를 프로세싱할 수 있도록 구현될 수 있다. 도 6은 일부 실시예들에 따른, 이미지 신호 프로세서에 대한 백 엔드 인터페이스를 통해 수신된 이미지 데이터를 프로세싱하기 위한 다수의 방법 및 기술을 도시하는 높은 수준의 흐름도이다.
610에 나타난 바와 같이, 다양한 실시예들에서, 이미지에 대한 이미지 데이터는 이미지 신호 프로세서(ISP)에 대한 백 엔드 인터페이스를 통해 수신될 수 있다. 다양한 실시예들에서, 백 엔드 인터페이스는 ISP에 결합된 이미지 센서와는 상이한 소스로부터 수신된 이미지 데이터를 메모리(또는 기타 액세스가능한 위치)로부터 획득하도록 구성될 수 있다. 예컨대, 중앙 제어 모듈은 백 엔드 인터페이스로 하여금 이미지 데이터의 일부분을 메모리로부터 획득하고 파이프라인 스테이지들을 프로세싱하기 위하여 이미지 데이터를 ISP 안으로 스트리밍하게 지시하도록 프로그래밍될 수 있다. 일부 실시예들에서, ISP는 백 엔드 인터페이스를 통해 수신된 이미지 데이터의 일부분들을 ISP에 결합된 이미지 센서로부터 수집된 이미지 데이터의 일부분들과 함께 프로세싱하도록 프로그래밍될 수 있다.
620에 나타난 바와 같이, 일부 실시예들에서, 이미지 데이터가 ISP에 의해 프로세싱가능한 색상 포맷인지에 대하여 결정이 이루어질 수 있다. 그렇다고 한다면, 620에서 '예' 방향으로 표시된 바와 같이, 이미지 데이터는 프로세싱을 위하여 ISP의 백 엔드 파이프라인 스테이지(들)로 인도될 수 있다. 그렇지 않다면, 630에서 '아니오' 방향으로 표시된 바와 같이, 이미지 데이터는 ISP 색상 포맷으로 변환될 수 있고, 이는 630에 표시된 바와 같다. 예를 들어, 백 엔드 파이프라인 스테이지들에 대한 입력은 특정 풀 컬러 포맷, 예컨대 YCbCr 4:4:4 또는 RGB로 제한될 수 있다. 백 엔드 인터페이스를 통해 수신된 이미지 데이터는 상이하게 구성된, 예컨대 특정 비디오 또는 스틸 이미지 인코딩에 특화된 이미지 포맷일 수 있다(예컨대, YCbCr 4:2:0 색상 포맷의 이미지 프레임들을 포함할 수 있는 mpeg 비디오 파일 또는 4:2:0 색상 포맷의 이미지들을 가질 수 있는 JPEG 이미지). 백 엔드 인터페이스(또는 기타 ISP 컴포넌트)는, 예를 들어, 수신된 YCbCr 4:2:0 색상 포맷의 이미지 데이터를 YCbCr 4:4:4 포맷으로 업샘플링하도록 구성되어(예컨대, 우선 이미지 데이터를 YCbCr 4:2:2로 변환하기 위한 수직 보간을 수행하고 이어서 이미지 데이터를 YCbCr 4:4:4로 변환하기 위한 수평 보간을 적용함), 이미지 데이터의 색차 성분들을 증가시킬 수 있다. 일부 실시예들에서, 백 엔드 인터페이스를 통해 수신된 이미지 데이터는 다수의 평면들(예컨대, 하나의 평면 이미지 데이터 대신에 두 평면 이미지 데이터)을 가질 수 있고, 그러한 경우에 이미지 데이터의 전환은 이미지 데이터의 각각의 평면에 대하여 수행될 수 있다.
630에 나타난 바와 같이, 다양한 실시예들에서, 색상 프로세싱 포맷의 이미지 데이터는 ISP의 백 엔드 파이프라인 스테이지(들)에서 프로세싱될 수 있다. 도 3 및 도 5에 대하여 위에서 논의한 바와 같이, 일부 실시예들에서, 백 엔드 파이프라인 스테이지들은 감마/디 감마 맵핑, 색 공간 전환, 시간적 필터링, 노이즈 필터링, 루마 선명화, 채도 노이즈 감소, 로컬 톤 맵핑, 이득/오프셋/클립, 색상 보정, 3차원 색상 룩업, 색 공간 전환, 또는 다양한 포맷의 리스케일링을 수행하기 위한 다양한 컴포넌트, 모듈 또는 스테이지를 포함할 수 있다. 백 엔드 파이프라인 스테이지(들)를 통해 프로세싱된 이미지 데이터는 650에 나타난 바와 같이 ISP에 의해 메모리에 저장되거나, 또는 다른 방식으로 디스플레이, 저장, 또는 추가적인 프로세싱을 위하여 제공될 수 있다.
특정 실시예들이 전술되었지만, 이들 실시예들은 단일 실시예만이 특정 특징부에 대해 전술된 경우에도 본 발명의 범주를 제한하도록 의도되지 않는다. 본 개시내용에 제공된 특징부들의 예들은 달리 언급되지 않는 한 제한적인 것이 아니라 예시적인 것으로 의도된다. 본 개시내용의 범주는, 본 명세서에 다뤄진 문제점들 중 임의의 것 또는 전부를 완화시키든 아니든, (명시적으로 또는 묵시적으로) 본 명세서에 개시된 임의의 특징부 또는 특징부들의 조합, 또는 그의 임의의 일반화를 포함한다. 따라서, 특징부들의 임의의 그러한 조합에 대해 본 출원(또는 그에 대한 우선권을 주장하는 출원)의 심사 동안에 새로운 청구범위가 작성될 수 있다. 구체적으로, 첨부된 청구범위를 참조하면, 종속항들로부터의 특징부들은 독립항들의 특징부들과 조합될 수 있으며, 각자의 독립항들로부터의 특징부들은 첨부된 청구범위에 열거된 특정 조합들로 조합될 수 있을 뿐 아니라 임의의 적절한 방식으로 조합될 수 있다.
본 명세서에서 기술된 방법들 중 다양한 것들은, 상이한 실시예들에서, 소프트웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 추가로, 방법들의 블록들의 순서는 변경될 수 있고, 다양한 요소들이 추가, 재순서화, 조합, 생략, 수정, 기타 등등될 수 있다. 본 개시내용의 이익을 가진 당업자에게 명백한 바와 같이 다양한 수정들 및 변화들이 이루어질 수 있다. 본 명세서에 기술된 다양한 실시예들은 예시적인 것이며 제한하려는 것으로 의도되지 않는다. 많은 변형들, 수정들, 추가들 및 개선들이 가능하다. 이에 따라서, 복수의 사례들이 본 명세서에 기술된 컴포넌트들에 대해 단일 사례로서 제공될 수 있다. 다양한 컴포넌트들 사이의 경계들, 동작들, 및 데이터 저장들은 다소 임의적이고, 특정 동작들은 특정 예시 구성들의 맥락에서 예시된다. 기능의 다른 할당들이 계획되고, 다음의 청구범위의 범주 내에 있을 수 있다. 마지막으로,예시적인 구성들에서 별개의 컴포넌트들로 제시된 구조들 및 기능은 조합된 구조 또는 컴포넌트로서 구현될 수 있다. 이들 및 다른 변형들, 수정들, 추가들 및 개선들은 다음의 청구항들에 정의된 바와 같은 실시예들의 범주 내에 속할 수 있다.

Claims (21)

  1. 장치로서,
    이미지 신호 프로세서를 포함하고, 상기 이미지 신호 프로세서는,
    픽셀들을 초기 레이트(픽셀/클록 사이클)로 프로세싱하여 출력하는 하나 이상의 프론트 엔드 파이프라인 스테이지;
    스케일러; 및
    상기 초기 레이트(픽셀/클록 사이클)보다 낮은 상이한 레이트(픽셀/클록 사이클)에서 픽셀들을 프로세싱하여 출력하는 하나 이상의 백 엔드 파이프라인 스테이지를 포함하며, 상기 하나 이상의 백 엔드 파이프라인 스테이지는 상기 하나 이상의 프론트 엔드 파이프라인 스테이지에 후속하여 상기 픽셀들을 프로세싱하고,
    상기 이미지 신호 프로세서는,
    이미지 프레임에 대한 초기 데이터 크기에 따라 이미지 센서에서 수집된 픽셀 데이터의 스트림을 수신하고;
    상기 이미지 신호 프로세서의 상기 하나 이상의 프론트 엔드 파이프라인 스테이지를 통해 상기 픽셀 데이터의 스트림을 프로세싱하고;
    상기 스케일러에 의해, 상기 픽셀 데이터의 스트림을 상기 픽셀 데이터의 스트림에 대한 상기 초기 데이터 크기보다 작은 데이터 크기로 스케일링하고;
    상기 하나 이상의 백 엔드 파이프라인 스테이지를 통해 상기 스케일링된 픽셀 데이터의 스트림을 프로세싱하고;
    상기 하나 이상의 백 엔드 파이프라인 스테이지를 통해 프로세싱된 상기 스케일링된 픽셀 데이터의 스트림을 상기 이미지 프레임의 디스플레이를 위하여 제공하도록 구성된, 장치.
  2. 제1항에 있어서, 상기 이미지 신호 프로세서는, 상기 이미지 프레임이 상기 초기 데이터 크기에 따라 메모리에 기록되도록, 상기 하나 이상의 프론트 엔드 파이프라인 스테이지를 통해 프로세싱된 상기 픽셀 데이터의 스트림을 상기 메모리에 기록하도록 추가로 구성된, 장치.
  3. 제1항에 있어서,
    상기 이미지 신호 프로세서는 디모자이크 유닛(demosaic unit)을 추가로 포함하고;
    상기 이미지 센서에서 수집된 상기 픽셀 데이터의 스트림은 미가공 픽셀 데이터이고;
    상기 이미지 신호 프로세서는,
    상기 디모자이크 유닛에 의해, 상기 하나 이상의 프론트 엔드 파이프라인 스테이지를 통해 프로세싱된 상기 픽셀 데이터의 스트림을 풀 컬러 도메인으로 변환하고 - 상기 변환된 픽셀 데이터의 스트림은 휘도 성분 및 하나 이상의 색차 성분을 포함함 -;
    상기 스케일러에 의해, 상기 변환된 픽셀 데이터의 스트림을 리샘플링하여 상기 휘도 성분의 감소 없이 상기 하나 이상의 색차 성분을 감소시키고;
    상기 리샘플링된 픽셀 데이터의 스트림을 메모리에 기록하도록 추가로 구성된, 장치.
  4. 제3항에 있어서, 상기 이미지 신호 프로세서는,
    상기 메모리에 액세스하여 상기 리샘플링된 픽셀 데이터의 스트림을 획득하고;
    상기 리샘플링된 픽셀 데이터의 스트림을 변환하여 상기 하나 이상의 색차 성분을 증가시키고;
    상기 하나 이상의 증가된 색차 성분을 갖는 상기 리샘플링된 픽셀 데이터의 스트림을 상기 하나 이상의 백 엔드 파이프라인 스테이지를 통해 프로세싱하도록 추가로 구성된, 장치.
  5. 제1항에 있어서,
    상기 이미지 신호 프로세서는 상기 하나 이상의 백 엔드 파이프라인 스테이지에 대한 이미지 프로세싱 인터페이스를 추가로 포함하며, 상기 하나 이상의 백 엔드 파이프라인 스테이지는 특정 색상 포맷에 따라 픽셀들을 프로세싱하고;
    상기 이미지 신호 프로세서는,
    상기 특정 색상 포맷과 상이한 색상 포맷으로 상기 이미지 프로세싱 인터페이스를 통해 다른 픽셀 데이터의 스트림을 수신하고;
    상기 이미지 프로세싱 인터페이스에 의해, 상기 다른 픽셀 데이터의 스트림을 상기 특정 색상 포맷으로 변환하고;
    상기 특정 색상 포맷으로 변환된 상기 다른 픽셀 데이터의 스트림을 상기 하나 이상의 백 엔드 파이프라인 스테이지를 통해 프로세싱하도록 추가로 구성된, 장치.
  6. 제5항에 있어서, 상기 장치는 상기 이미지 센서를 포함하고 상기 다른 픽셀 데이터의 스트림은 상기 이미지 센서에서 수집되지 않는, 장치.
  7. 제1항에 있어서, 상기 장치는 모바일 컴퓨팅 디바이스를 포함하는, 장치.
  8. 방법으로서,
    이미지 신호 프로세서에서, 이미지 프레임에 대하여 초기 데이터 크기에 따라 수집된 픽셀 데이터의 스트림을 수신하는 단계;
    상기 이미지 신호 프로세서에 의해, 픽셀들을 초기 레이트(픽셀/클록 사이클)로 프로세싱하여 출력하는 상기 이미지 신호 프로세서의 하나 이상의 프론트 엔드 파이프라인 스테이지를 통해 상기 픽셀 데이터의 스트림을 프로세싱하는 단계;
    상기 이미지 신호 프로세서에 의해, 상기 픽셀 데이터의 스트림을 상기 초기 데이터 크기보다 작은 상이한 데이터 크기로 스케일링하는 단계;
    픽셀들을 상이한 레이트(픽셀/클록 사이클)로 프로세싱하여 출력하는 상기 이미지 신호 프로세서에서의 하나 이상의 백 엔드 파이프라인 스테이지를 통해 상기 스케일링된 픽셀 데이터의 스트림을 프로세싱하는 단계 - 상기 상이한 레이트(픽셀/클록 사이클)는 상기 초기 레이트(픽셀/클록 사이클)보다 낮음 -; 및
    상기 하나 이상의 백 엔드 파이프라인 스테이지를 통해 프로세싱되어 출력된 상기 스케일링된 픽셀 데이터의 스트림을 상기 이미지 프레임의 디스플레이를 위하여 제공하는 단계를 포함하는, 방법.
  9. 제8항에 있어서, 상기 이미지 신호 프로세서에 의해, 상기 하나 이상의 프론트 엔드 파이프라인 스테이지를 통해 프로세싱된 상기 픽셀 데이터의 스트림을 메모리에 저장하는 단계를 추가로 포함하는, 방법.
  10. 제8항에 있어서,
    상기 이미지 신호 프로세서에 의해, 상기 하나 이상의 프론트 엔드 파이프라인 스테이지를 통해 프로세싱된 상기 픽셀 데이터의 스트림을 풀 컬러 도메인으로 변환하는 단계 - 상기 변환된 픽셀 데이터의 스트림은 휘도 성분 및 하나 이상의 색차 성분을 포함함 -;
    상기 이미지 신호 프로세서에 의해, 상기 변환된 픽셀 데이터의 스트림을 리샘플링하여 상기 휘도 성분의 감소 없이 상기 하나 이상의 색차 성분을 감소시키는 단계; 및
    상기 이미지 신호 프로세서에 의해, 상기 리샘플링된 픽셀 데이터의 스트림을 메모리에 기록하는 단계를 추가로 포함하는, 방법.
  11. 제10항에 있어서,
    상기 이미지 신호 프로세서에 의해, 상기 메모리에 액세스하여 상기 리샘플링된 픽셀 데이터의 스트림을 획득하는 단계;
    상기 이미지 신호 프로세서에 의해, 상기 리샘플링된 픽셀 데이터의 스트림을 변환하여 상기 하나 이상의 색차 성분을 증가시키는 단계;
    상기 이미지 신호 프로세서에 의해, 상기 하나 이상의 증가된 색차 성분을 갖는 상기 리샘플링된 픽셀 데이터의 스트림을 상기 하나 이상의 백 엔드 파이프라인 스테이지를 통해 프로세싱하는 단계를 추가로 포함하는, 방법.
  12. 제10항에 있어서,
    상기 하나 이상의 백 엔드 파이프라인 스테이지를 통해 프로세싱된 상기 스케일링된 픽셀 데이터의 스트림을 일련의 이미지 프레임들의 일부로서 비디오 레코딩 내에 저장하는 단계;
    상기 메모리로부터, 상기 변환된 픽셀 데이터의 스트림을 수신하는 단계;
    상기 변환된 픽셀 데이터의 스트림이 상기 하나 이상의 백 엔드 파이프라인 스테이지를 통하도록 인도하는 단계; 및
    상기 하나 이상의 백 엔드 파이프라인 스테이지를 통해 프로세싱된 상기 변환된 픽셀 데이터의 스트림을 상기 비디오 레코딩보다 더 높은 이미지 해상도를 갖는 버전의 상기 이미지 프레임으로서 저장하는 단계를 추가로 포함하는, 방법.
  13. 제8항에 있어서,
    상기 백 엔드 파이프라인 스테이지들을 위한 상기 이미지 신호 프로세서에서의 인터페이스를 통해, 다른 픽셀 데이터의 스트림을 수신하는 단계; 및
    상기 하나 이상의 백 엔드 파이프라인 스테이지를 통해 상기 다른 픽셀 데이터의 스트림을 프로세싱하는 단계를 추가로 포함하는, 방법.
  14. 제13항에 있어서, 상기 이미지 신호 프로세서는 모바일 컴퓨팅 디바이스의 일부로서 구현되고, 상기 다른 픽셀 데이터의 스트림은 상기 모바일 컴퓨팅 디바이스에서 네트워크를 통해 원격 서버로부터 수신되는, 방법.
  15. 시스템으로서,
    이미지 프로세싱을 수행하도록 구성된 디바이스를 포함하고, 상기 디바이스는,
    이미지 센서로부터 이미지 데이터를 수신하도록 구성된 센서 인터페이스; 및
    이미지 프로세싱 파이프라인을 포함하고, 상기 이미지 프로세싱 파이프라인은,
    상기 센서 인터페이스를 통해, 이미지 센서로부터 수집된 픽셀 데이터의 스트림을 수신하고 - 상기 이미지 센서는 이미지 프레임에 대하여 초기 데이터 크기에 따라 상기 픽셀 데이터의 스트림을 수집함 -;
    픽셀들을 초기 레이트(픽셀/클록 사이클)로 프로세싱하여 출력하는 상기 이미지 프로세싱 파이프라인의 하나 이상의 프론트 엔드 파이프라인 스테이지를 통해 상기 픽셀 데이터의 스트림을 프로세싱하고;
    상기 픽셀 데이터의 스트림을 상기 초기 데이터 크기보다 작은 상이한 데이터 크기로 스케일링하고;
    픽셀들을 상이한 레이트(픽셀/클록 사이클)로 프로세싱하여 출력하는 상기 이미지 프로세싱 파이프라인의 하나 이상의 백 엔드 파이프라인 스테이지를 통해 상기 스케일링된 픽셀 데이터의 스트림을 프로세싱하고 - 상기 상이한 레이트(픽셀/클록 사이클)는 상기 초기 레이트(픽셀/클록 사이클)보다 낮음 -;
    상기 백 엔드 파이프라인 스테이지들을 통해 프로세싱된 상기 스케일링된 픽셀 데이터의 스트림을 디스플레이를 위하여 제공하도록 구성된, 시스템.
  16. 제15항에 있어서, 상기 이미지 프로세싱 파이프라인은 상기 하나 이상의 프론트 엔드 파이프라인 스테이지를 통해 프로세싱된 상기 픽셀 데이터의 스트림을 메모리에 기록하도록 추가로 구성된, 시스템.
  17. 제16항에 있어서, 상기 이미지 프로세싱 파이프라인은,
    상기 메모리로부터 상기 픽셀 데이터의 스트림을 수신하고;
    상기 하나 이상의 백 엔드 파이프라인 스테이지를 통해 상기 픽셀 데이터의 스트림을 프로세싱하도록 추가로 구성된, 시스템.
  18. 제15항에 있어서,
    상기 시스템은 상기 이미지 프로세싱 파이프라인의 상기 하나 이상의 백 엔드 파이프라인 스테이지를 통해 프로세싱하기 위해 이미지 데이터를 수신하도록 구성된 인터페이스를 추가로 포함하고;
    상기 이미지 프로세싱 파이프라인은,
    상기 이미지 센서와 상이한 소스로부터 수신된 다른 픽셀 데이터의 스트림을 상기 인터페이스를 통해 수신하고;
    상기 하나 이상의 백 엔드 파이프라인 스테이지를 통해 상기 다른 픽셀 데이터의 스트림을 프로세싱하도록 추가로 구성된, 시스템.
  19. 제15항에 있어서, 상기 시스템은 모바일 컴퓨팅 디바이스이고, 상기 디바이스는 이미지 신호 프로세서인, 시스템.
  20. 제19항에 있어서, 상기 모바일 컴퓨팅 디바이스는 상기 이미지 센서 및 디스플레이 디바이스를 포함하고, 상기 하나 이상의 백 엔드 파이프라인 스테이지를 통해 프로세싱된 상기 스케일링된 픽셀 데이터의 스트림은 상기 디스플레이 디바이스에서 상기 이미지 프레임의 미리보기로서 디스플레이를 위해 출력되는, 시스템.
  21. 시스템으로서,
    이미지 프레임에 대하여 초기 데이터 크기에 따라 수집된 픽셀 데이터의 스트림을 수신하기 위한 제1 수단;
    픽셀들을 초기 레이트(픽셀/클록 사이클)로 프로세싱하는 이미지 프로세싱 파이프 라인의 하나 이상의 프론트 엔드 파이프라인 스테이지를 통해 상기 픽셀 데이터의 스트림을 프로세싱하여 출력하기 위한 제2 수단;
    상기 픽셀 데이터의 스트림을 상기 초기 데이터 크기보다 작은 상이한 데이터 크기로 스케일링하기 위한 제3 수단;
    픽셀들을 상이한 레이트(픽셀/클록 사이클)로 프로세싱하는 상기 이미지 프로세싱 파이프라인의 하나 이상의 백 엔드 파이프라인 스테이지를 통해 상기 스케일링된 픽셀 데이터의 스트림을 프로세싱하여 출력하기 위한 제4 수단 - 상기 상이한 레이트(픽셀/클록 사이클)는 상기 초기 레이트(픽셀/클록 사이클)보다 낮음 -; 및
    상기 하나 이상의 백 엔드 파이프라인 스테이지를 통해 프로세싱된 상기 스케일링된 픽셀 데이터의 스트림을 상기 이미지 프레임의 디스플레이를 위하여 제공하기 위한 제5 수단을 포함하는, 시스템.
KR1020187005962A 2015-08-26 2016-08-26 이미지 프로세싱 파이프라인 내의 이미지 데이터의 다중 레이트 프로세싱 KR102291790B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/836,915 2015-08-26
US14/836,915 US9911174B2 (en) 2015-08-26 2015-08-26 Multi-rate processing for image data in an image processing pipeline
PCT/US2016/048892 WO2017035440A1 (en) 2015-08-26 2016-08-26 Multi-rate processing for image data in an image processing pipeline

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207015847A Division KR20200067920A (ko) 2015-08-26 2016-08-26 이미지 프로세싱 파이프라인 내의 이미지 데이터의 다중 레이트 프로세싱

Publications (2)

Publication Number Publication Date
KR20180037008A KR20180037008A (ko) 2018-04-10
KR102291790B1 true KR102291790B1 (ko) 2021-08-23

Family

ID=56877145

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207015847A KR20200067920A (ko) 2015-08-26 2016-08-26 이미지 프로세싱 파이프라인 내의 이미지 데이터의 다중 레이트 프로세싱
KR1020187005962A KR102291790B1 (ko) 2015-08-26 2016-08-26 이미지 프로세싱 파이프라인 내의 이미지 데이터의 다중 레이트 프로세싱

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207015847A KR20200067920A (ko) 2015-08-26 2016-08-26 이미지 프로세싱 파이프라인 내의 이미지 데이터의 다중 레이트 프로세싱

Country Status (4)

Country Link
US (1) US9911174B2 (ko)
KR (2) KR20200067920A (ko)
CN (1) CN107924554B (ko)
WO (1) WO2017035440A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9531961B2 (en) 2015-05-01 2016-12-27 Duelight Llc Systems and methods for generating a digital image using separate color and intensity data
US9918017B2 (en) 2012-09-04 2018-03-13 Duelight Llc Image sensor apparatus and method for obtaining multiple exposures with zero interframe time
US9807322B2 (en) 2013-03-15 2017-10-31 Duelight Llc Systems and methods for a digital image sensor
US9819849B1 (en) 2016-07-01 2017-11-14 Duelight Llc Systems and methods for capturing digital images
US10558848B2 (en) 2017-10-05 2020-02-11 Duelight Llc System, method, and computer program for capturing an image with correct skin tone exposure
US10924688B2 (en) 2014-11-06 2021-02-16 Duelight Llc Image sensor apparatus and method for obtaining low-noise, high-speed captures of a photographic scene
US11463630B2 (en) 2014-11-07 2022-10-04 Duelight Llc Systems and methods for generating a high-dynamic range (HDR) pixel stream
CN109792478B (zh) 2016-09-01 2021-11-12 迪尤莱特公司 基于焦点目标信息调整焦点的装置和方法
WO2019094510A1 (en) * 2017-11-07 2019-05-16 ConnectWise Inc. Systems and methods for remote control in information technology infrastructure
US11412136B2 (en) * 2018-12-07 2022-08-09 Samsung Electronics Co., Ltd. Apparatus and method for operating multiple cameras for digital photography
CN110290370B (zh) * 2019-07-05 2020-09-18 上海富瀚微电子股份有限公司 图像处理方法及装置
US11399149B2 (en) * 2019-07-25 2022-07-26 Cirrus Logic, Inc. Flexible latency-minimized delivery and management of disparate-rate data streams and sub-streams for processing
WO2021060808A1 (en) * 2019-09-24 2021-04-01 Lg Electronics Inc. Signal processing device and image display apparatus including same
US11270412B2 (en) * 2019-10-31 2022-03-08 Apical Limited Image signal processor, method, and system for environmental mapping
US11488285B2 (en) * 2020-04-13 2022-11-01 Apple Inc. Content based image processing
US11315209B2 (en) * 2020-05-08 2022-04-26 Black Sesame Technolgies Inc. In-line and offline staggered bandwidth efficient image signal processing
CN115767287B (zh) * 2021-09-03 2023-10-27 荣耀终端有限公司 图像处理方法与电子设备
CN114245029B (zh) * 2021-12-20 2023-08-01 北京镁伽科技有限公司 基于fpga的数据流处理方法、装置及pg设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080055466A1 (en) * 2006-04-18 2008-03-06 Sanjay Garg Shared memory multi video channel display apparatus and methods

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014125A (en) 1994-12-08 2000-01-11 Hyundai Electronics America Image processing apparatus including horizontal and vertical scaling for a computer display
KR100291192B1 (ko) * 1999-06-28 2001-05-15 박종섭 파이프라인된 부분 선형 근사 방식을 이용한 감마 보정 장치
JP3797838B2 (ja) 1999-12-15 2006-07-19 三菱電機株式会社 画像表示装置
US7379069B2 (en) 2001-02-15 2008-05-27 Sony Corporation Checkerboard buffer using two-dimensional buffer pages
US6980208B1 (en) * 2002-09-03 2005-12-27 Nvidia Corporation System and method for enhancing depth value processing in a graphics pipeline
US7230651B2 (en) 2002-10-22 2007-06-12 Broadcom Corporation A/V decoder having a clocking scheme that is independent of input data streams
JP2006074635A (ja) 2004-09-06 2006-03-16 Hitachi Ltd 符号化映像信号変換方法及び装置
US7551806B2 (en) 2005-07-28 2009-06-23 Etron Technology, Inc. Two stage interpolation apparatus and method for up-scaling an image on display device
KR100591796B1 (ko) * 2005-11-11 2006-06-26 엠텍비젼 주식회사 이미지 처리 방법 및 장치
US8005881B1 (en) 2007-03-02 2011-08-23 Xilinx, Inc. Scalable architecture for rank order filtering
US8195008B2 (en) 2007-06-28 2012-06-05 Broadcom Corporation Method and system for processing video data in a multipixel memory to memory compositor
CN201657223U (zh) * 2010-03-19 2010-11-24 山东大学 一种jpeg图像解码器的vlsi系统结构
US8593466B2 (en) * 2010-06-08 2013-11-26 Intel Corporation Tile rendering for image processing
US8508612B2 (en) * 2010-09-30 2013-08-13 Apple Inc. Image signal processor line buffer configuration for processing ram image data
US8508621B2 (en) * 2010-09-30 2013-08-13 Apple Inc. Image sensor data formats and memory addressing techniques for image signal processing
US8488055B2 (en) * 2010-09-30 2013-07-16 Apple Inc. Flash synchronization using image sensor interface timing signal
US8832193B1 (en) * 2011-06-16 2014-09-09 Google Inc. Adjusting a media stream in a video communication system
US20130004071A1 (en) * 2011-07-01 2013-01-03 Chang Yuh-Lin E Image signal processor architecture optimized for low-power, processing flexibility, and user experience
US9883180B2 (en) 2012-10-03 2018-01-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Bounded rate near-lossless and lossless image compression
WO2015055093A1 (en) 2013-10-17 2015-04-23 Mediatek Inc. Data processing apparatus for transmitting/receiving compressed pixel data groups of picture and indication information of pixel data grouping setting and related data processing method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080055466A1 (en) * 2006-04-18 2008-03-06 Sanjay Garg Shared memory multi video channel display apparatus and methods

Also Published As

Publication number Publication date
US20170061567A1 (en) 2017-03-02
KR20200067920A (ko) 2020-06-12
CN107924554B (zh) 2021-09-10
CN107924554A (zh) 2018-04-17
US9911174B2 (en) 2018-03-06
WO2017035440A1 (en) 2017-03-02
KR20180037008A (ko) 2018-04-10

Similar Documents

Publication Publication Date Title
KR102291790B1 (ko) 이미지 프로세싱 파이프라인 내의 이미지 데이터의 다중 레이트 프로세싱
US9210391B1 (en) Sensor data rescaler with chroma reduction
US9756266B2 (en) Sensor data rescaler for image signal processing
US10868985B2 (en) Correcting pixel defects based on defect history in an image processing pipeline
US10719918B2 (en) Dynamically determining filtering strength for noise filtering in image processing
US9787922B2 (en) Pixel defect preprocessing in an image signal processor
US10467496B2 (en) Temporal filtering of independent color channels in image data
US9479695B2 (en) Generating a high dynamic range image using a temporal filter
US9747514B2 (en) Noise filtering and image sharpening utilizing common spatial support
US9514525B2 (en) Temporal filtering for image data using spatial filtering and noise history
US9386234B2 (en) Auto filter extent management
US10298863B2 (en) Automatic compensation of lens flare
US9413951B2 (en) Dynamic motion estimation and compensation for temporal filtering
KR20210124510A (ko) 이미지 데이터에서의 키포인트들의 검출
US9462189B2 (en) Piecewise perspective transform engine
US9648261B2 (en) Account for clipped pixels in auto-focus statistics collection
KR20230124699A (ko) 이미지 데이터의 조합된 다운 샘플링 및 보정을 위한회로
US9911177B2 (en) Applying chroma suppression to image data in a scaler of an image processing pipeline
US10375368B2 (en) Image data conversion
US9374526B2 (en) Providing frame delay using a temporal filter
US9916637B1 (en) Splitting and merging subband image data

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
A107 Divisional application of patent
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2020101001483; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20200602

Effective date: 20210413

GRNO Decision to grant (after opposition)