KR20210150704A - 라인 인터리빙 컨트롤러 및 이를 포함하는 이미지 신호 프로세서 - Google Patents

라인 인터리빙 컨트롤러 및 이를 포함하는 이미지 신호 프로세서 Download PDF

Info

Publication number
KR20210150704A
KR20210150704A KR1020200067473A KR20200067473A KR20210150704A KR 20210150704 A KR20210150704 A KR 20210150704A KR 1020200067473 A KR1020200067473 A KR 1020200067473A KR 20200067473 A KR20200067473 A KR 20200067473A KR 20210150704 A KR20210150704 A KR 20210150704A
Authority
KR
South Korea
Prior art keywords
data lines
image
line
delay
image data
Prior art date
Application number
KR1020200067473A
Other languages
English (en)
Inventor
차길형
박진수
이동우
이서훈
허승진
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200067473A priority Critical patent/KR20210150704A/ko
Priority to US17/136,494 priority patent/US11514552B2/en
Priority to CN202110366674.3A priority patent/CN113784013A/zh
Publication of KR20210150704A publication Critical patent/KR20210150704A/ko
Priority to US18/059,607 priority patent/US11869116B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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/81Camera processing pipelines; Components thereof for suppressing or minimising disturbance in the image signal generation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)

Abstract

이미지 신호 프로세서는, 라인 인터리빙 컨트롤러 및 이미지 신호 프로세서 코어를 포함한다. 상기 라인 인터리빙 컨트롤러는 이미지 프레임에 포함되는 복수의 이미지 데이터 라인들을 수신하고 상기 이미지 프레임에 상응하는 하나 이상의 가상 데이터 라인들을 발생하여 상기 복수의 이미지 데이터 라인들 및 상기 가상 데이터 라인들을 순차적으로 라인 단위로 출력한다. 상기 이미지 신호 프로세서 코어는 상기 라인 인터리빙 컨트롤러로부터 수신되는 데이터 라인에 대한 순차적인 프로세싱을 위해 직렬로 연결된 복수의 프로세싱 모듈들을 포함하는 파이프라인 회로를 하나 이상 포함하고, 상기 라인 인터리빙 컨트롤러로부터 수신되는 상기 가상 데이터 라인들에 기초하여 상기 이미지 프레임의 끝 부분에 포함되는 하나 이상의 엔드 이미지 데이터 라인들을 프로세싱한다.

Description

라인 인터리빙 컨트롤러 및 이를 포함하는 이미지 신호 프로세서{Line interleaving controller and image signal processor including the same}
본 발명은 반도체 집적 회로에 관한 것으로서, 더욱 상세하게는 라인 인터리빙 컨트롤러 및 이를 포함하는 이미지 신호 프로세서에 관한 것이다.
하나의 이미지 신호 프로세서를 이용하여 복수의 채널들을 통해 제공되는 여러 개의 입력 이미지들을 처리하기 위해, 상기 이미지 신호 프로세서는 프레임 메모리를 이용하여 시간-분할 멀티플렉싱(TDM, time-division multiplexing) 방식으로 상기 여러 개의 입력 이미지들을 처리할 수 있다.
이미지 신호 프로세서가 외부 프레임 메모리를 이용하여 입력 이미지들에 대한 이미지 신호 처리를 시간-분할 멀티플렉싱 방식으로 수행하는 경우, 상기 이미지 신호 프로세서는 프레임 단위로 시간-분할 멀티플렉싱을 수행해야 하므로, 상기 이미지 신호 프로세서는 프레임 데이터 단위로 입력 이미지들을 상기 외부 프레임 메모리에 저장해야 한다.
이때, 버스를 통해 프레임 데이터 단위로 입력 이미지들이 외부 프레임 메모리에 저장된 후 다시 독출(read)되어야 하므로, 버스 트랜잭션(bus transaction)에 의해 이미지 신호 프로세서를 포함하는 시스템의 전력 소모가 증가할 수 있다. 한편, 상기 이미지 신호 프로세서가 프레임 메모리를 포함하는 경우에는 상기 이미지 신호 프로세서의 사이즈가 증가할 수 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은, 라인 단위의 시간-분할 멀티플렉싱을 효율적으로 수행할 수 있는 라인 인터리빙 컨트롤러 및 상기 라인 인터리빙 컨트롤러를 포함하는 이미지 신호 프로세서를 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 이미지 신호 프로세서는, 라인 인터리빙 컨트롤러 및 이미지 신호 프로세서 코어를 포함한다.
상기 라인 인터리빙 컨트롤러는 이미지 프레임에 포함되는 복수의 이미지 데이터 라인들을 수신하고 상기 이미지 프레임에 상응하는 하나 이상의 가상 데이터 라인들을 발생하여 상기 복수의 이미지 데이터 라인들 및 상기 가상 데이터 라인들을 순차적으로 라인 단위로 출력한다. 상기 이미지 신호 프로세서 코어는 상기 라인 인터리빙 컨트롤러로부터 수신되는 데이터 라인에 대한 순차적인 프로세싱을 위해 직렬로 연결된 복수의 프로세싱 모듈들을 포함하는 파이프라인 회로를 하나 이상 포함하고, 상기 라인 인터리빙 컨트롤러로부터 수신되는 상기 가상 데이터 라인들에 기초하여 상기 이미지 프레임의 끝 부분에 포함되는 하나 이상의 엔드 이미지 데이터 라인들을 프로세싱한다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 라인 인터리빙 컨트롤러는, 버퍼 회로, 가상 라인 발생기, 멀티플렉서 및 컨트롤 로직 회로를 포함한다.
상기 버퍼 회로는 제1 채널을 통하여 수신되는 제1 이미지 프레임에 포함되는 복수의 제1 이미지 데이터 라인들 및 제2 채널을 통하여 수신되는 제2 이미지 프레임에 포함되는 복수의 제2 이미지 데이터 라인들을 버퍼링하여 상기 제1 이미지 데이터 라인들 및 상기 제2 이미지 데이터 라인들을 출력한다. 가상 라인 발생기는 상기 제1 이미지 프레임에 상응하는 하나 이상의 제1 가상 데이터 라인들 및 상기 제2 이미지 프레임에 상응하는 하나 이상의 제2 가상 데이터 라인들을 발생한다. 상기 멀티플렉서는 상기 버퍼 회로의 출력 및 상기 가상 라인 발생기의 출력 중 하나를 선택하여 상기 스트림 신호를 출력한다. 상기 컨트롤 로직 회로는 상기 버퍼 회로, 상기 가상 라인 발생기 및 상기 멀티플렉서의 동작을 제어한다. 상기 제1 가상 데이터 라인들은 상기 제1 이미지 프레임의 끝 부분에 포함되는 하나 이상의 엔드 이미지 데이터 라인들의 프로세싱에 사용되고, 상기 제2 가상 데이터 라인은 상기 제2 이미지 프레임의 끝 부분에 포함되는 하나 이상의 엔드 이미지 데이터 라인들의 프로세싱에 사용된다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 애플리케이션 프로세서는, 버스, 상기 버스에 연결되는 이미지 신호 프로세서 및 상기 버스에 연결되고 상기 이미지 신호 프로세서를 제어하는 CPU를 포함한다. 상기 이미지 신호 프로세서는, 이미지 프레임에 포함되는 복수의 이미지 데이터 라인들을 수신하고 상기 이미지 프레임에 상응하는 하나 이상의 가상 데이터 라인들을 발생하여 상기 복수의 이미지 데이터 라인들 및 상기 가상 데이터 라인들을 순차적으로 라인 단위로 출력하는 라인 인터리빙 컨트롤러 및 상기 라인 인터리빙 컨트롤러로부터 수신되는 데이터 라인에 대한 순차적인 프로세싱을 위해 직렬로 연결된 복수의 프로세싱 모듈들을 포함하는 파이프라인 회로를 하나 이상 포함하고, 상기 라인 인터리빙 컨트롤러로부터 수신되는 상기 가상 데이터 라인들에 기초하여 상기 이미지 프레임의 끝 부분에 포함되는 하나 이상의 엔드 이미지 데이터 라인들을 프로세싱하는 이미지 신호 프로세서 코어를 포함한다.
본 발명의 실시예들에 따른 라인 인터리빙 컨트롤러는 이미지 프레임의 끝 부분에 포함되는 엔드 이미지 데이터 라인들의 프로세싱을 위한 가상 데이터 라인들을 내부적으로 생성하여 파이프라인 구조를 포함하는 이미지 신호 프로세서 코어에 제공함으로써 채널들 사이의 간섭 또는 충돌을 방지하고 효율적으로 라인 단위의 시간-분할 멀티플렉싱에 의한 파이프라인 프로세싱을 수행할 수 있다.
본 발명의 실시예들에 따른 라인 인터리빙 컨트롤러를 포함하는 이미지 신호 프로세서는 효율적인 라인 단위의 시간-분할 멀티플렉싱에 의하여 파이프라인 프로세싱을 수행함으로써 외부 메모리의 사용을 최소화하고 채널 간섭을 방지하여 상기 이미지 신호 프로세서 및 상기 이미지 신호 프로세서를 포함하는 시스템의 전력 소모를 감소하고 성능을 향상시킬 수 있다.
도 1은 본 발명의 실시예들에 따른 이미지 신호 프로세서를 나타내는 블록도이다.
도 2a 및 2b는 본 발명의 실시예들에 따른 이미지 신호 프로세서의 라인 단위의 지연 처리를 설명하기 위한 도면들이다.
도 3 및 4는 본 발명의 실시예들에 따른 이미지 신호 프로세서에 의한 데이터 흐름의 일 실시예를 나타내는 도면들이다.
도 5 및 6은 본 발명의 실시예들에 따른 이미지 신호 프로세서에 의한 데이터 흐름의 다른 실시예를 나타내는 도면들이다.
도 7은 본 발명의 실시예들에 따른 이미지 신호 프로세서를 나타내는 블록도이다.
도 8은 도 7의 이미지 신호 프로세서의 동작을 나타내는 타이밍도이다.
도 9a는 지연 프로세싱 모듈의 일 예를 나타내는 블록도이고, 도 9b는 도 9a의 지연 프로세싱 모듈의 동작을 나타내는 타이밍도이다.
도 10a는 본 발명의 실시예들에 따른 이미지 신호 프로세서에 포함되는 지연 프로세싱 모듈의 일 예를 나타내는 블록도이고, 도 10b는 도 10a의 지연 프로세싱 모듈의 동작을 나타내는 타이밍도이다.
도 11 및 12는 본 발명의 실시예들에 따른 이미지 신호 프로세서를 나타내는 블록도들이다.
도 13은 본 발명의 실시예들에 따른 데이터 처리 시스템을 나타내는 블록도이다.
도 14는 본 발명의 실시예들에 따른 라인 인터리빙 컨트롤러를 나타내는 블록도이다.
도 15는 도 14의 라인 인터리빙 컨트롤러의 동작을 나타내는 타이밍도이다.
도 16 내지 19는 본 발명의 실시예들에 따른 라인 인터리빙 컨트롤러에 포함되는 버퍼 회로의 실시예들을 나타내는 도면들이다.
도 20은 본 발명의 실시예들에 따른 이미지 신호 프로세서를 나타내는 블록도이다.
도 21은 본 발명의 실시예들에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 이미지 신호 프로세서를 나타내는 블록도이다.
도 1을 참조하면, 이미지 신호 프로세서(10)는 라인 인터리빙 컨트롤러(LIC, line interleaving controller)(100) 및 이미지 신호 프로세서 코어(ISPCR, image signal processor core)(200)를 포함할 수 있다.
라인 인터리빙 컨트롤러(100)는 이미지 프레임에 포함되는 복수의 이미지 데이터 라인들을 수신하고 상기 이미지 프레임에 상응하는 하나 이상의 가상 데이터 라인들을 발생하여 상기 복수의 이미지 데이터 라인들 및 상기 가상 데이터 라인들을 순차적으로 라인 단위로 출력할 수 있다. 이를 위하여 라인 인터리빙 컨트롤러(100)는 상기 가상 데이터 라인들을 발생하는 가상 라인 발생기(300)를 포함할 수 있다. 라인 인터리빙 컨트롤러(100)의 보다 구체적인 구성에 관한 실시예는 도 14를 참조하여 후술한다.
라인 인터리빙 컨트롤러(100)는 상기 복수의 이미지 데이터 라인들 및 상기 가상 데이터 라인들을 하나의 스트림 신호(STRIN)로서 출력할 수 있다. 다시 말해, 도 3 및 4를 참조하여 후술하는 바와 같이, 라인 인터리빙 컨트롤러(100)에서 출력되는 스트림 신호(STRIN)는 복수의 이미지 데이터 라인들 및 가상 데이터 라인들을 순차적으로 포함할 수 있다. 스트림 신호(STRIN)는 이미지 신호 프로세서 코어(200)의 입력으로 제공되며, 따라서 이하에서는 라인 인터리빙 컨트롤러(100)에서 출력되는 스트림 신호(STRIN)를 입력 스트림 신호(STRIN)라 칭할 수 있다.
일 실시예에서, 라인 인터리빙 컨트롤러(100)는 복수의 채널들(CH1, CH2, CH3)을 통하여 복수의 이미지 프레임들(FRM1, FRM2, FRM3)을 각각 수신할 수 있다. 복수의 이미지 프레임들(FRM1, FRM2, FRM3)의 해상도, 프레임 레이트 등은 각각 독립적으로 결정되며, 서로 동일할 수도 있고 다를 수도 있다. 도 1에는 도시의 편의상 3개의 채널들을 통하여 3개의 이미지 프레임들을 각각 수신하는 예가 도시되어 있으나, 라인 인터리빙 컨트롤러(100)는 2개 또는 4개 이상의 채널들을 통하여 상응하는 이미지 프레임들을 수신할 수 있다.
라인 인터리빙 컨트롤러(100)의 가상 라인 발생기(300)는 복수의 이미지 프레임들(FRM1, FRM2, FRM3)에 각각 상응하는 가상 데이터 라인들을 발생하고, 라인 인터리빙 컨트롤러(100)는 복수의 이미지 프레임들(FRM1, FRM2, FRM3)에 포함되는 복수의 이미지 데이터 라인들 및 상기 가상 데이터 라인들을 시간-분할 멀티플렉싱 방식으로 이미지 신호 프로세서 코어(200)로 전송할 수 있다.
다시 말해, 라인 인터리빙 컨트롤러(100)에서 출력되는 입력 스트림 신호(STRIN)는 복수의 채널들(CH1, CH2, CH3)을 통하여 라인 단위로 제공되는 이미지 데이터 라인들 및 가상 라인 발생기(300)에서 내부적으로 발생되는 가상 데이터 라인들을 순차적으로 포함할 수 있다.
스트림 신호(STRIN)는 이미지 신호 프로세서 코어(200)의 입력으로 제공되며, 따라서 이하에서는 라인 인터리빙 컨트롤러(100)에서 출력되는 스트림 신호(STRIN)를 입력 스트림 신호(STRIN)라 칭할 수 있다.
예를 들어, 도 5 및 6을 참조하여 후술하는 바와 같이, 라인 인터리빙 컨트롤러(100)는, 제1 채널(CH1)을 통하여 제1 이미지 프레임(FRM1)에 포함되는 복수의 제1 이미지 데이터 라인들을 수신하고 제2 채널(CH2)을 통하여 제2 이미지 프레임(FRM2)에 포함되는 복수의 제2 이미지 데이터 라인들을 수신할 수 있다.
이 경우, 가상 라인 발생기(300)는 제1 이미지 프레임(FRM1)에 상응하는 하나 이상의 제1 가상 데이터 라인들 및 제2 이미지 프레임(FRM2)에 상응하는 하나 이상의 제2 가상 데이터 라인들을 발생할 수 있다. 라인 인터리빙 컨트롤러(100)는 상기 복수의 제1 이미지 데이터 라인들, 상기 복수의 제2 이미지 데이터 라인들, 상기 제1 가상 데이터 라인들 및 상기 제2 가상 데이터 라인들을 시간-분할 멀티플렉싱 방식으로 포함하는 입력 스트림 신호(STRIN)를 이미지 신호 프로세서 코어(200)로 전송할 수 있다. 실시예에 따라서, 가상 라인 발생기(300)는 특정한 이미지 프레임에 상응하는 가상 데이터 라인을 발생하지 않을 수도 있다.
이미지 신호 프로세서 코어(200)는 라인 인터리빙 컨트롤러(100)로부터 수신되는 데이터 라인에 대한 순차적인 프로세싱을 위해 직렬로 연결된 복수의 프로세싱 모듈들(M1, M2, M3)을 포함하는 파이프라인 회로(PLC)를 하나 이상 포함할 수 있다.
파이프라인 회로(PLC)는 하나의 데이터 라인에 대한 프로세스를 여러 개의 서브 프로세스들(subprocesses)로 나누어 서로 다른 기능을 가진 복수의 프로세싱 모듈들(M1, M2, M3)이 각각 담당하는 것이다. 각 프로세싱 모듈에서 수행된 프로세싱 결과는 다음의 프로세싱 모듈로 연속적으로 전달될 수 있고, 마지막 프로세싱 모듈에서 최종적인 파이프라인 프로세싱의 결과가 출력될 수 있다. 복수의 프로세싱 모듈들(M1, M2, M3)은 순차적으로 입력되는 복수의 데이터 라인들에 대한 서브 프로세스들의 각각을 중첩적으로 수행할 수 있고, 따라서 파이프라인 회로(PLC)를 이용하여 복수의 데이터 라인들에 대한 전체 프로세싱 시간을 단축할 수 있다.
또한, 이미지 신호 프로세서 코어(200)는 라인 인터리빙 컨트롤러(100)로부터 수신되는 상기 가상 데이터 라인들에 기초하여 상기 이미지 프레임의 끝 부분에 포함되는 하나 이상의 엔드 이미지 데이터 라인들을 프로세싱할 수 있다. 이미지 신호 프로세서 코어(200)는 프로세싱된 이미지 데이터 라인들을 포함하는 출력 스트림 신호(STROUT)를 발생할 수 있다.
이와 같이, 본 발명의 실시예들에 따른 라인 인터리빙 컨트롤러(100)는 이미지 프레임의 끝 부분에 포함되는 엔드 이미지 데이터 라인들의 프로세싱을 위한 가상 데이터 라인들을 내부적으로 생성하여 파이프라인 구조를 포함하는 이미지 신호 프로세서 코어에 제공함으로써 채널들 사이의 간섭 또는 충돌을 방지하고 효율적으로 라인 단위의 시간-분할 멀티플렉싱에 의한 파이프라인 프로세싱을 수행할 수 있다. 이미지 신호 프로세서 코어(200)는 효율적인 라인 단위의 시간-분할 멀티플렉싱에 의하여 파이프라인 프로세싱을 수행함으로써 외부 메모리의 사용을 최소화하고 채널 간섭을 방지하여 이미지 신호 프로세서(10) 및 이미지 신호 프로세서(10)를 포함하는 시스템의 전력 소모를 감소하고 성능을 향상시킬 수 있다.
도 2a 및 2b는 본 발명의 실시예들에 따른 이미지 신호 프로세서의 라인 단위의 지연 처리를 설명하기 위한 도면들이다.
도 2a에는 하나의 이미지 프레임에 포함되는 많은 픽셀 데이터들 중에서 3*3 박스 필터링에 이용되는 9개의 픽셀 데이터들(P1~P9)만이 도시되어 있다.
이미지 신호 프로세서 코어에 포함되는 프로세싱 모듈은 주변 픽셀 데이터들(P1~4, P6~P9)을 이용하여 중심 픽셀 데이터(P5)를 프로세싱하여 프로세싱된 픽셀 데이터(P5')를 구할 수 있다.
이미지 프레임이 라인 단위로 제공되는 경우, 프로세싱 모듈은 i번째 데이터 라인(DLi)의 픽셀 데이터(P5)를 프로세싱하기 위해서는 이전에 수신된 (i-1)번째 데이터 라인(DLi-1)의 픽셀 데이터들(P1, P2, P3)뿐만 아니라 다음에 수신되는 (i+1)번째 데이터 라인(DLi+1)의 픽셀 데이터들(P7, P8, P9)을 필요로 한다. 다시 말해, 프로세싱 모듈은 프로세싱 대상이 되는 타겟 데이터 라인(DLi)의 다음에 수신되는 하나의 지연 데이터 라인(DLi+1)에 기초하여 타겟 데이터 라인(DLi)에 대한 지연 필터링 동작을 수행할 수 있다.
이와 같이, 3*3 박스 필터링의 경우에는 지연 데이터 라인(DLi+1)의 개수를 나타내는 지연 사이즈(DSZ)는 1이 된다.
도 9b에는 하나의 이미지 프레임에 포함되는 많은 픽셀 데이터들 중에서 5*5 박스 필터링에 이용되는 25개의 픽셀 데이터들(P1~P25)만이 도시되어 있다.
이미지 신호 프로세서 코어에 포함되는 프로세싱 모듈은 주변 픽셀 데이터들(P1~12, P14~P25)을 이용하여 중심 픽셀 데이터(P13)를 프로세싱하여 프로세싱된 픽셀 데이터(P13')를 구할 수 있다.
이미지 프레임이 라인 단위로 제공되는 경우, 프로세싱 모듈은 i번째 데이터 라인(DLi)의 픽셀 데이터(P13)를 프로세싱하기 위해서는 이전에 수신된 (i-2)번째 데이터 라인(DLi-2)의 픽셀 데이터들(P1~P5) 및 (i-1)번째 데이터 라인(DLi-1)의 픽셀 데이터들(P6~P10)뿐만 아니라 다음에 수신되는 (i+1)번째 데이터 라인(DLi+1)의 픽셀 데이터들(P16~P20) 및 (i+2)번째 데이터 라인(DLi+2)의 픽셀 데이터들(P21~P25)을 필요로 한다. 다시 말해, 프로세싱 모듈은 프로세싱 대상이 되는 타겟 데이터 라인(DLi)의 다음에 수신되는 2개의 지연 데이터 라인(DLi+1, DLi+2)에 기초하여 타겟 데이터 라인(DLi)에 대한 지연 필터링 동작을 수행할 수 있다.
이와 같이, 5*5 박스 필터링의 경우에는 지연 데이터 라인들(DLi+1, DLi+2)의 개수를 나타내는 지연 사이즈(DSZ)는 2가 된다.
도 2a 및 2b를 참조하여 3*3 박스 필터링 및 5*5 박스 필터링의 라인 단위 지연 처리 및 상응하는 지연 사이즈들을 설명하였으나, 본 발명의 실시예들이 이에 한정되는 것은 아니다. 본 발명의 실시예들은 다양한 윈도우 크기를 갖는 수직 필터팅 및 박스 필터링을 포함하는 라인 단위 지연 처리에 적용될 수 있다. 이하에서는, 상기 지연 필터링 동작을 수행하는 프로세싱 모듈을 지연 프로세싱 모듈이라고 칭하기로 한다. 또한, 각각의 지연 프로세싱 모듈의 지연 사이즈(DSZ)를 모듈 지연 사이즈라고 칭하고, 이미지 신호 프로세서 코어 전체의 지연 사이즈를 코어 지연 사이즈라고 칭하기로 한다.
도 3 및 4는 본 발명의 실시예들에 따른 이미지 신호 프로세서에 의한 데이터 흐름의 일 실시예를 나타내는 도면들이다.
도 1 및 3을 참조하면, 제1 채널(CH1)을 통하여 제1 이미지 프레임(FRM1)이 이미지 신호 프로세서(10)에 제공될 수 있다.
제1 이미지 프레임(FRM1)은 복수의 제1 이미지 데이터 라인들(IL11~IL1n)을 포함할 수 있고, 복수의 제1 이미지 데이터 라인들(IL11~IL1n)은 라인 단위로 라인 인터리빙 컨트롤러(100)로 제공될 수 있다.
라인 인터리빙 컨트롤러(100)의 가상 라인 발생기(300)는 코어 지연 사이즈(CDSZ)에 상응하는 개수(k)의 제1 가상 데이터 라인들(VL1n+1~VL1n+k)을 발생하여 출력할 수 있다. 도 7 및 8을 참조하여 후술하는 바와 같이, 코어 지연 사이즈(CDSZ)는 이미지 신호 프로세서 코어(200)의 입력부터 출력까지의 파이프라인 경로 상에 포함되는 지연 프로세싱 모듈들의 모듈 지연 사이즈들의 합산 값을 나타낼 수 있다.
라인 인터리빙 컨트롤러(100)는 제1 이미지 프레임(FRM1)에 상응하는 복수의 제1 이미지 데이터 라인들(IL11~IL1n) 및 제1 가상 데이터 라인들(VL1n+1~VL1n+k)을 순차적으로 라인 단위로 출력하여 입력 스트림 신호(STRIN)를 발생할 수 있다.
이미지 신호 프로세서 코어(200)는 입력 스트림 신호(STRIN)에 포함되는 복수의 제1 이미지 데이터 라인들(IL11~IL1n) 및 제1 가상 데이터 라인들(VL1n+1~VL1n+k) 기초하여 프로세싱을 수행하고 프로세싱된 이미지 데이터 라인들(PIL11~PIL1n)을 순차적으로 라인 단위로 출력하여 출력 스트림 신호(STROUT)를 발생할 수 있다.
도 4에는 도시 및 설명의 편의상 제1 이미지 프레임(FRM1)이 5개의 제1 이미지 데이터 라인들(IL11~IL15)을 포함하고 3개의 제1 가상 데이터 라인들(VL16~VL18)에 기초하여 제1 이미지 프레임(FRM1)의 끝 부분에 포함되는 하나 이상의 엔드 이미지 데이터 라인들을 프로세싱하는 예가 도시되어 있으나, 본 발명의 실시예들이 이에 한정되는 것은 아니다. 제1 이미지 프레임(FRM1)에 포함되는 제1 이미지 데이터 라인들의 개수는 이미지의 해상도에 따라 다양하게 결정될 수 있으며, 제1 가상 데이터 라인들의 개수는 이미지 신호 프로세서 코어(200)의 구성에 따라 다양하게 결정될 수 있다.
도 4에서, tB는 라인 인터리빙 컨트롤러(100)의 버퍼링 시간을 나타내고, tLL은 라인 인터리빙 컨트롤러에서 출력되는 제1 이미지 프레임(FRM1)의 인접한 2개의 데이터 라인들 사이의 라인 시간 간격을 나타내고, tCD는 이미지 신호 프로세서 코어(200)의 라인 지연 시간을 나타내고, tCP는 이미지 신호 프로세서 코어(200)의 코어 프로세싱 시간을 나타낸다. 라인 지연 시간(tCD)은 코어 지연 사이즈(CDSZ)와 라인 시간 간격(tLL)의 곱(CDSZ*tLL)으로 표현될 수 있다.
도 4에 도시된 바와 같이, 코어 지연 사이즈(CDSZ)는 3이고 제1 가상 데이터 라인들(VL16~VL18)의 개수도 3임을 알 수 있다. 다시 말해, 제1 가상 데이터 라인들(VL16~VL18)의 개수는 이미지 신호 프로세서 코어(200)의 코어 지연 사이즈(CDSZ)와 동일할 수 있다.
프로세싱된 제1 이미지 데이터 라인들(PIL11~PIL15)은 각각 제1 이미지 프레임(FRM1)의 제1 이미지 데이터 라인들(IL11~IL15)에 상응한다. 제1 가상 데이터 라인들(VL16~VL18)은 이미지 신호 프로세서 코어(200)에 의해 제1 이미지 프레임(FRM1)의 상기 엔드 이미지 데이터 라인들의 프로세싱에 사용되고 출력 스트림 신호(STROUT)에는 포함되지 않는다.
도 5 및 6은 본 발명의 실시예들에 따른 이미지 신호 프로세서에 의한 데이터 흐름의 다른 실시예를 나타내는 도면들이다.
도 1 및 5를 참조하면, 제1 채널(CH1)을 통하여 제1 이미지 프레임(FRM1)이 이미지 신호 프로세서(10)에 제공되고, 제2 채널(CH2)을 통하여 제2 이미지 프레임(FRM2)이 이미지 신호 프로세서(10)에 제공될 수 있다.
제1 이미지 프레임(FRM1)은 복수의 제1 이미지 데이터 라인들(IL11~IL1n)을 포함할 수 있고, 복수의 제1 이미지 데이터 라인들(IL11~IL1n)은 라인 단위로 라인 인터리빙 컨트롤러(100)로 제공될 수 있다.
제2 이미지 프레임(FRM2)은 복수의 제2 이미지 데이터 라인들(IL21~IL2m)을 포함할 수 있고, 복수의 제2 이미지 데이터 라인들(IL21~IL2m)은 라인 단위로 라인 인터리빙 컨트롤러(100)로 제공될 수 있다.
제1 이미지 프레임(FRM1) 및 제2 이미지 프레임(FRM2)의 해상도에 따라서, 제1 이미지 데이터 라인들(IL11~IL1n)의 개수(n) 및 제2 이미지 데이터 라인들(IL21~IL2m)의 개수(m)는 동일할 수도 있고 상이할 수도 있다.
라인 인터리빙 컨트롤러(100)의 가상 라인 발생기(300)는 코어 지연 사이즈(CDSZ)에 상응하는 개수(k)의 제1 가상 데이터 라인들(VL1n+1~VL1n+k) 및 코어 지연 사이즈(CDSZ)에 상응하는 개수(k)의 제2 가상 데이터 라인들(VL2m+1~VL2m+k)을 발생하여 출력할 수 있다. 도 7 및 8을 참조하여 후술하는 바와 같이, 코어 지연 사이즈(CDSZ)는 이미지 신호 프로세서 코어(200)의 입력부터 출력까지의 파이프라인 경로 상에 포함되는 지연 프로세싱 모듈들의 모듈 지연 사이즈들의 합산 값을 나타낼 수 있다.
라인 인터리빙 컨트롤러(100)는 제1 이미지 프레임(FRM1)에 상응하는 복수의 제1 이미지 데이터 라인들(IL11~IL1n) 및 제1 가상 데이터 라인들(VL1n+1~VL1n+k)과 제2 이미지 프레임(FRM2)에 상응하는 복수의 제2 이미지 데이터 라인들(IL21~IL2m) 및 제2 가상 데이터 라인들(VL2m+1~VL2m+k)을 시간-분할 멀티플렉싱 방식에 의해 순차적으로 라인 단위로 출력하여 입력 스트림 신호(STRIN)를 발생할 수 있다.
이미지 신호 프로세서 코어(200)는 입력 스트림 신호(STRIN)에 포함되는 복수의 제1 이미지 데이터 라인들(IL11~IL1n) 및 제1 가상 데이터 라인들(VL1n+1~VL1n+k)과 복수의 제2 이미지 데이터 라인들(IL21~IL2m) 및 제2 가상 데이터 라인들(VL2m+1~VL2m+k)에 기초하여 프로세싱을 수행하고 프로세싱된 제1 이미지 데이터 라인들(PIL11~PIL1n) 및 프로세싱된 제2 이미지 데이터 라인들(PIL21~PIL2m)을 순차적으로 라인 단위로 출력하여 출력 스트림 신호(STROUT)를 발생할 수 있다.
도 6에는 도시 및 설명의 편의상 제1 이미지 프레임(FRM1)이 3개의 제1 이미지 데이터 라인들(IL11~IL13)을 포함하고 제2 이미지 프레임(FRM2)이 5개의 제2 이미지 데이터 라인들(IL21~IL25)을 포함하고, 2개의 제1 가상 데이터 라인들(VL14, VL15) 및 2개의 제2 가상 데이터 라인들(VL26, VL27)에 기초하여 제1 이미지 프레임(FRM1)의 끝 부분에 포함되는 하나 이상의 엔드 이미지 데이터 라인들 및 제2 이미지 프레임(FRM2)의 끝 부분에 포함되는 하나 이상의 엔드 이미지 데이터 라인들을 프로세싱하는 예가 도시되어 있으나, 본 발명의 실시예들이 이에 한정되는 것은 아니다. 제1 이미지 프레임(FRM1)에 포함되는 제1 이미지 데이터 라인들의 개수 및 제2 이미지 프레임(FRM2)에 포함되는 제2 이미지 데이터 라인들의 개수는 각 이미지의 해상도에 따라 다양하게 결정될 수 있으며, 제1 가상 데이터 라인들의 개수 및 제2 가상 데이터 라인들의 개수는 이미지 신호 프로세서 코어(200)의 구성에 따라 다양하게 결정될 수 있다.
도 6에서, tB는 라인 인터리빙 컨트롤러(100)의 버퍼링 시간을 나타내고, tLL은 라인 인터리빙 컨트롤러에서 먼저 출력되는 제1 이미지 프레임(FRM1)의 인접한 2개의 데이터 라인들 사이의 라인 시간 간격을 나타내고, tCD는 이미지 신호 프로세서 코어(200)의 라인 지연 시간을 나타내고, tCP는 이미지 신호 프로세서 코어(200)의 코어 프로세싱 시간을 나타낸다. 라인 지연 시간(tCD)은 코어 지연 사이즈(CDSZ)와 라인 시간 간격(tLL)의 곱(CDSZ*tLL)으로 표현될 수 있으나 본 발명의 실시예들이 이에 한정되는 것은 아니다.
제1 이미지 프레임(FRM1)에 포함되는 제1 이미지 데이터 라인들 사이의 간격 및 제2 이미지 프레임(FRM2)에 포함되는 제2 이미지 데이터 라인들 사이의 간격은 다양하게 결정될 수 있으므로 실시예에 따라 입력 스트림 신호(STRIN)에 동일한 이미지 프레임에 포함되는 복수의 이미지 데이터 라인들이 연속되어 출력될 수 있으며 따라서 tLL은 가변적일 수 있다.
TI1 및 TI2는 제1 이미지 데이터 라인들(IL11~IL13) 및 제2 이미지 데이터 라인들(IL21~IL25)의 라인 인터리빙 컨트롤러(100)로의 입력 종료 시점들을 각각 나타내고, TO1 및 TO2는 프로세싱된 제1 이미지 데이터 라인들(PIL11~PIL13) 및 프로세싱된 제2 이미지 데이터 라인들(PIL21~PIL25)의 이미지 신호 프로세서 코어(200)로부터의 출력 종료 시점들을 각각 나타낸다.
도 6에 도시된 바와 같이, 코어 지연 사이즈(CDSZ)는 2이고 제1 가상 데이터 라인들(VL14, VL15)의 개수 및 제2 가상 데이터 라인들(VL26, VL27)의 개수도 2임을 알 수 있다. 다시 말해, 제1 가상 데이터 라인들(VL14, VL15)의 개수 및 제2 가상 데이터 라인들(VL26, VL27)의 개수는 각각 이미지 신호 프로세서 코어(200)의 코어 지연 사이즈(CDSZ)와 동일할 수 있다.
프로세싱된 제1 이미지 데이터 라인들(PIL11~PIL13)은 각각 제1 이미지 프레임(FRM1)의 제1 이미지 데이터 라인들(IL11~IL13)에 상응하고, 프로세싱된 제2 이미지 데이터 라인들(PIL21~PIL25)은 각각 제2 이미지 프레임(FRM2)의 제2 이미지 데이터 라인들(IL21~IL25)에 상응한다. 제1 가상 데이터 라인들(VL14, VL15) 및 제2 가상 데이터 라인들(VL26, VL27)은 이미지 신호 프로세서 코어(200)에 의해 제1 이미지 프레임(FRM1)의 엔드 이미지 데이터 라인들 및 제2 이미지 프레임(FRM2)의 엔드 이미지 데이터 라인들의 프로세싱에 사용되고 출력 스트림 신호(STROUT)에는 포함되지 않는다.
도 7은 본 발명의 실시예들에 따른 이미지 신호 프로세서를 나타내는 블록도이다.
도 7을 참조하면, 이미지 신호 프로세서(11)는 라인 인터리빙 컨트롤러(LIC)(100) 및 이미지 신호 프로세서 코어(ISPCR)(200)를 포함할 수 있다.
라인 인터리빙 컨트롤러(100)는 제1 채널(CH1)을 통하여 제1 이미지 프레임(FRM1)에 포함되는 복수의 제1 이미지 데이터 라인들을 수신하고 제2 채널(CH2)을 통하여 제2 이미지 프레임(FRM2)에 포함되는 복수의 제2 이미지 데이터 라인들을 수신할 수 있다.
라인 인터리빙 컨트롤러(100)는 가상 라인 발생기(VLG)(300)를 포함할 수 있다. 가상 라인 발생기(300)는 제1 이미지 프레임(FRM1)에 상응하는 제1 가상 데이터 라인들 및 제2 이미지 프레임(FRM2)에 상응하는 제2 가상 데이터 라인들을 발생할 수 있다.
라인 인터리빙 컨트롤러(100)는 상기 복수의 제1 이미지 데이터 라인들, 상기 복수의 제2 이미지 데이터 라인들, 상기 제1 가상 데이터 라인들 및 상기 제2 가상 데이터 라인들을 시간-분할 멀티플렉싱 방식으로 이미지 신호 프로세서 코어(201)로 전송할 수 있다. 라인 인터리빙 컨트롤러(100)는 상기 복수의 제1 이미지 데이터 라인들, 상기 복수의 제2 이미지 데이터 라인들, 상기 제1 가상 데이터 라인들 및 상기 제2 가상 데이터 라인들을 입력 스트림 신호(STRIN)로서 이미지 신호 프로세서 코어(201)로 전송할 수 있다.
이미지 신호 프로세서 코어(201)는 라인 인터리빙 컨트롤러(100)로부터 수신되는 데이터 라인에 대한 순차적인 프로세싱을 위해 직렬로 연결된 프로세싱 모듈들을 포함하는 파이프라인 회로(PLC)를 포함할 수 있다.
예를 들어, 도 7에 도시된 바와 같이, 파이프라인 회로(PLC)는 제1 프로세싱 모듈(MA), 제2 프로세싱 모듈(MB) 및 제3 프로세싱 모듈(MC)을 포함할 수 있다. 제1 프로세싱 모듈(MA)은 입력 스트림 신호(STRIN)에 포함되는 데이터 라인들을 프로세싱하여 제1 스트림 신호(STRA)를 발생하고, 제2 프로세싱 모듈(MB)은 제1 스트림 신호(STRA)에 포함되는 데이터 라인들을 프로세싱하여 제2 스트림 신호(STRB)를 발생하고, 제3 프로세싱 모듈(MC)은 제2 스트림 신호(STRB)에 포함되는 데이터 라인들을 프로세싱하여 출력 스트림 신호(STROUT)를 발생할 수 있다. 이와 같이, 파이프라인 회로(PLC)에 포함되는 프로세싱 모듈들(MA, MB, MC)은 입력 스트림 신호(STRIN)에 포함되는 데이터 라인들에 대한 파이프라인 프로세싱을 수행할 수 있다.
제1 프로세싱 모듈(MA), 제2 프로세싱 모듈(MB) 및 제3 프로세싱 모듈(MC)은 도 2a 및 2b를 참조하여 전술한 바와 같은 지연 필터링 동작을 수행하는 지연 프로세싱 모듈들일 수 있다. 예를 들어, 제1 프로세싱 모듈(MA)의 제1 모듈 지연 사이즈(MDSZA)는 1일 수 있고, 제2 프로세싱 모듈(MB)의 제2 모듈 지연 사이즈(MDSZB)는 2일 수 있고, 제3 프로세싱 모듈(MC)의 제3 모듈 지연 사이즈(MDSZC)는 1일 수 있다. 결과적으로 이미지 신호 프로세서 코어(200)의 입력부터 출력까지의 파이프라인 경로 상에 포함되는 지연 프로세싱 모듈들(MA, MB, MC)의 모듈 지연 사이즈들(MDSZA, MDSZB, MDSZC)의 합산 값을 나타내는 코어 지연 사이즈(CDSZ)는 4일 수 있다.
도 7에 도시된 파이프라인 회로(PLC)는 본 발명의 실시예들을 설명하기 위한 일 예에 불과하며, 본 발명의 실시예들에 따른 이미지 신호 프로세서 코어는 도 11 및 12를 참조하여 후술하는 바와 같이 다양한 구성을 가질 수 있다.
도 8은 도 7의 이미지 신호 프로세서의 동작을 나타내는 타이밍도이다.
도 8에는 도시 및 설명의 편의상 제1 이미지 프레임(FRM1)이 3개의 제1 이미지 데이터 라인들(IL11~IL13)을 포함하고 제2 이미지 프레임(FRM2)이 8개의 제2 이미지 데이터 라인들(IL21~IL28)을 포함하는 예가 도시되어 있으나, 본 발명의 실시예들이 이에 한정되는 것은 아니다. 제1 이미지 프레임(FRM1)에 포함되는 제1 이미지 데이터 라인들의 개수와 간격 및 제2 이미지 프레임(FRM2)에 포함되는 제2 이미지 데이터 라인들의 개수와 간격은 각 이미지의 해상도와 동작 속도에 따라 다양하게 결정될 수 있다. 한편, 도시의 편의상 제2 프레임(FRM2)에 상응하는 가상 데이터 라인들은 생략되어 있으며, 이하에서는 제1 프레임(FRM1)을 중심으로 본 발명의 실시예들을 설명하기로 한다.
도 8에서, tB는 라인 인터리빙 컨트롤러(100)의 최초 버퍼링 시간을 나타내고, tLL은 라인 인터리빙 컨트롤러에서 출력되는 제1 이미지 프레임(FRM1)의 인접한 2개의 데이터 라인들 사이의 라인 시간 간격을 나타내고, tMDA, tMDB 및 tMDC는 각각 제1 프로세싱 모듈(MA), 제2 프로세싱 모듈(MB) 및 제3 프로세싱 모듈(MC)의 라인 지연 시간들을 나타내고, tMPA, tMPB 및 tMPC는 각각 제1 프로세싱 모듈(MA), 제2 프로세싱 모듈(MB) 및 제3 프로세싱 모듈(MC)의 모듈 프로세싱 시간들을 나타낸다. 제1 프로세싱 모듈(MA)의 제1 라인 지연 시간(tMDA)은 제1 모듈 지연 사이즈(tMDSZA=1)와 라인 시간 간격(tLL)의 곱(1*tLL)으로 표현될 수 있다. 제2 프로세싱 모듈(MB)의 제2 라인 지연 시간(tMDB)은 제2 모듈 지연 사이즈(tMDSZB=2)와 라인 시간 간격(tLL)의 곱(2*tLL)으로 표현될 수 있다. 제3 프로세싱 모듈(MC)의 제3 라인 지연 시간(tMDC)은 제3 모듈 지연 사이즈(tMDSZC=1)와 라인 시간 간격(tLL)의 곱(1*tLL)으로 표현될 수 있으나, 본 발명의 실시예들이 이에 한정되는 것은 아니다.
제1 이미지 프레임(FRM1)에 포함되는 제1 이미지 데이터 라인들 사이의 간격 및 제2 이미지 프레임(FRM2)에 포함되는 제2 이미지 데이터 라인들 사이의 간격은 다양하게 결정될 수 있으므로 실시 예에 따라 입력 스트림 신호(STRIN)에 동일한 이미지 프레임에 포함되는 복수의 이미지 데이터 라인들이 연속되어 출력될 수 있으며 따라서 tLL은 고정되지 않을 수 있고, tMDA, tMDB, tMDC도 tLL로 표현되지 않을 수 있다
TI1는 제1 이미지 데이터 라인들(IL11~IL13)의 라인 인터리빙 컨트롤러(100)로의 입력 종료 시점을 나타내고, TO1은 프로세싱된 제1 이미지 데이터 라인들(PIL11~PIL13)의 이미지 신호 프로세서 코어(201)로부터의 출력 종료 시점을 나타낸다.
도 7 및 8을 참조하면, 가상 라인 발생기(300)는 제1 이미지 프레임(FRM1)에 상응하는 제1 가상 데이터 라인들(VL14~VL17) 및 제2 이미지 프레임(FRM2)에 상응하는 제2 가상 데이터 라인들(미도시)을 발생할 수 있다.
라인 인터리빙 컨트롤러(100)는 제1 이미지 데이터 라인들(IL11~IL13), 제2 이미지 데이터 라인들(IL21~IL28), 제1 가상 데이터 라인들(VL14~VL17) 및 제2 가상 데이터 라인들을 시간-분할 멀티플렉싱 방식으로 출력하여 입력 스트림 신호(STRIN)를 발생할 수 있다.
제1 프로세싱 모듈(MA)은 제1 모듈 지연 사이즈(MDSZA=1)만큼 지연하여 입력 스트림 신호(STRIN)에 포함되는 데이터 라인들에 대한 지연 필터링 동작을 수행하고 제1 프로세싱 모듈(MA)에 의해 프로세싱된 이미지 데이터 라인들(AL11~AL13, AL21~AL27)을 포함하는 제1 스트림 신호(STRA)를 발생할 수 있다. 이때, 제1 프로세싱 모듈(MA)은 수신된 제1 가상 데이터 라인들(VL14~VL17) 중에서 제1 모듈 지연 사이즈(MDSZA=1)에 상응하는 1개의 가상 데이터 라인(VL14)을 사용하여 제1 프레임(FRM1)의 1개의 엔드 이미지 라인에 대한 지연 필터링 동작을 수행하고, 상기 지연 필터링 동작에 사용되지 않은 나머지 가상 데이터 라인들(VL15~VL17)을 프로세싱 없이 그대로 출력할 수 있다.
제2 프로세싱 모듈(MB)은 제2 모듈 지연 사이즈(MDSZB=2)만큼 지연하여 제1 스트림 신호(STRA)에 포함되는 데이터 라인들에 대한 지연 필터링 동작을 수행하고 제2 프로세싱 모듈(MB)에 의해 프로세싱된 이미지 데이터 라인들(BL11~BL13, BL21~BL25)을 포함하는 제2 스트림 신호(STRB)를 발생할 수 있다. 이때, 제2 프로세싱 모듈(MB)은 수신된 제1 가상 데이터 라인들(VL15~VL17) 중에서 제2 모듈 지연 사이즈(MDSZB=2)에 상응하는 2개의 가상 데이터 라인(VL15, VL16)을 사용하여 제1 프레임(FRM1)의 2개의 엔드 이미지 라인에 대한 지연 필터링 동작을 수행하고, 상기 지연 필터링 동작에 사용되지 않은 나머지 가상 데이터 라인(VL17)을 프로세싱 없이 그대로 출력할 수 있다.
제3 프로세싱 모듈(MC)은 제3 모듈 지연 사이즈(MDSZC=1)만큼 지연하여 제2 스트림 신호(STRB)에 포함되는 데이터 라인들에 대한 지연 필터링 동작을 수행하고 출력 스트림 신호(STROUT)를 발생할 수 있다. 이때, 제3 프로세싱 모듈(MC)은 제3 모듈 지연 사이즈(MDSZC=1)에 상응하는 1개의 제1 가상 데이터 라인(VL17)을 수신하고, 수신된 1개의 가상 데이터 라인(VL17)을 사용하여 제1 프레임(FRM1)의 1개의 엔드 이미지 라인에 대한 지연 필터링 동작을 수행할 수 있다.
결과적으로 이미지 신호 프로세서 코어(201)의 라인 지연 시간(tCD)은 코어 지연 사이즈(CDSZ=4)와 라인 시간 간격(tLL)의 곱(4*tLL)으로 표현될 수 있다. 코어 프로세싱 시간(tCP)은 제1 모듈 프로세싱 시간(tMPA), 제2 모듈 프로세싱 시간(tMPB) 및 제3 모듈 프로세싱 시간(tMPC)의 합으로 표현될 수 있다. 전술한 바와 같이 tLL은 가변적일 수 있다.
가상 데이터 라인들의 개수 및 간격은 이미지 신호 프로세서 코어의 구성에 따라 다양하게 결정될 수 있다. 본 발명의 실시예들에 따른 라인 인터리빙 컨트롤러는 이미지 신호 프로세서 코어에 포함되는 지연 프로세싱 모듈들의 모듈 지연 사이즈들에 기초하여 가상 데이터 라인들의 개수를 결정할 수 있다. 가상 데이터 라인들 사이의 간격은 각 이미지 프레임의 입력 속도에 따라 이미지 프레임에 포함되는 복수의 이미지 데이터 라인들 사이의 간격을 그대로 사용할 수도 있고, 임의의 값으로 결정할 수도 있다.
일 실시예에서, 이미지 신호 프로세서 코어가 1개의 파이프라인 회로를 포함하는 경우, 라인 인터리빙 컨트롤러는 상기 1개의 파이프라인 회로에 포함되는 지연 프로세싱 모듈들의 모듈 지연 사이즈들의 합산 값을 나타내는 코어 지연 사이즈와 동일한 개수의 상기 가상 데이터 라인들을 발생하여 출력할 수 있다. 예를 들어, 도 7 및 8을 참조하여 설명한 바와 같이, 라인 인터리빙 컨트롤러(201)는 1개의 파이프라인 회로(PLC)를 포함하고, 1개의 파이프라인 회로(PLC)에 포함되는 지연 프로세싱 모듈들(MA, MB, MC)의 모듈 지연 사이즈들(MDSZA, MDSZB, MDSZC)의 합산 값을 나타내는 코어 지연 사이즈(CDSZ)가 4인 경우, 라인 인터리빙 컨트롤러는 4개의 제1 가상 데이터 라인들(VL14~VL17) 및 4개의 제2 가상 데이터 라인들(미도시)을 발생하여 출력할 수 있다.
한편, 도 8을 참조하여 설명한 바와 같이, 지연 프로세싱 모듈들(MA, MB, MC)의 각각은 수신된 가상 데이터 라인들 중에서 각각의 모듈 지연 사이즈에 상응하는 개수의 가상 데이터 라인들을 사용하여 엔드 이미지 라인들에 대한 지연 필터링 동작을 수행하고, 수신된 가상 데이터 라인들 중에서 각각의 지연 필터링 동작에 사용되지 않은 나머지 가상 데이터 라인들을 프로세싱 없이 그대로 출력할 수 있다.
도 9a는 지연 프로세싱 모듈의 일 예를 나타내는 블록도이고, 도 9b는 도 9a의 지연 프로세싱 모듈의 동작을 나타내는 타이밍도이다. 도 9a 및 9b에는 일 예로서 모듈 지연 사이즈(tMDSZ)가 1인 경우가 도시되어 있다.
도 9a를 참조하면, 지연 프로세싱 모듈(50)은 라인 버퍼 컨트롤 회로(LBC)(51) 및 필터링 회로(FLT)를 포함할 수 있다.
라인 버퍼 컨트롤 회로(51)는 전단으로부터 입력되는 제1 스트림 신호(STR1)의 데이터 라인들을 버퍼링하여 제2 스트림 신호(STR2)를 출력할 수 있다. 필터링 회로(FLT)는 제2 스트림 신호(STR3)에 기초하여 필터링 동작을 수행하여 필터링된 데이터 라인들을 포함하는 제3 스트림 신호(STR3)를 발생할 수 있다.
라인 버퍼 컨트롤 회로(51)는 이전에 수신된 2개의 이미지 데이터 라인들을 저장하는 2개의 라인 버퍼들(LNM1, LNM2) 및 이미지 프레임의 1개의 엔드 이미지 데이터 라인의 처리를 제어하는 라인 드레인 회로(LDC)를 포함할 수 있다.
라인 버퍼 컨트롤 회로(51)는 제1 스트림 신호(STR1)를 통하여 수신되는 i번째 이미지 데이터 라인(ILi)에 동기하여, 라인 버퍼들(LNM1, LNM2)에 저장된 (i-2)번째 이미지 데이터 라인 (ILi-2)과 (i-1)번째 이미지 데이터 라인 (ILi-1) 및 수신된 i번째 이미지 데이터 라인(ILi)을 동시에 출력한다.
필터링 회로(FLT)는 동시에 수신되는 (i-2)번째 이미지 데이터 라인 (ILi-2), (i-1)번째 이미지 데이터 라인 (ILi-1) 및 i번째 이미지 데이터 라인(ILi)에 기초하여 도 2a를 참조하여 설명한 바와 같은 3*3 박스 필터링 동작을 픽셀 단위로 수행하여 필터링된 (n-1)번째 이미지 데이터 라인(FILi-1)을 출력할 수 있다.
도 9b에는 도시 및 설명의 편의상 이미지 프레임이 5개의 이미지 데이터 라인들(IL1~IL5)을 포함하는 예가 도시되어 있다. tMD는 지연 프로세싱 모듈(50)의 라인 지연 시간을 나타내고 tMP는 지연 프로세싱 모듈(50)의 프로세싱 시간을 나타낸다. 라인 지연 시간(tMD)은 모듈 지연 사이즈(MDSZ=1)와 라인 시간 간격(tLL)의 곱으로 표현될 수 있다.
도 9b에 도시된 바와 같이, 지연 프로세싱 모듈(50)은 제1 스트림 신호(STR1)를 통하여 수신되는 i번째 이미지 데이터 라인(ILi)에 동기하여 (i-1)번째 이미지 데이터 라인(ILi-1)에 대한 지연 필터링 동작을 수행한다. 이 경우 마지막의 엔드 이미지 데이터 라인(IL5)에 대한 지연 필터링 동작은 제1 스트림 신호(STR1)을 통해 제공되는 데이터 라인이 없기 때문에 라인 드레인 회로(LDC)를 이용하여 데이터 라인(IL6)을 제공하여 수행된다.
엔드 이미지 데이터 라인(IL5)에 대한 지연 필터링 동작을 수행하는 경우 지연 프로세싱 모듈(50)은 전단으로부터 데이터 라인을 수신할 수 없는 상태가 된다. 따라서, 라인 버퍼 컨트롤 회로(51)는 중지(stall) 신호(STL)를 활성화하여 현재 데이터 라인을 수신할 수 없는 상태임을 전단의 프로세싱 모듈 등에 알려야 한다.
지연 프로세싱 모듈(50)이 스스로 엔드 이미지 데이터 라인에 대한 프로세싱 타이밍을 결정하는 방식은 복수의 채널들에 대해 라인 단위의 시간-분할 멀티플렉싱 방식으로 이미지 신호 프로세서 코어를 공유하여 사용하는 경우 문제가 된다. 이미지 프레임의 끝 부분에서 라인 버퍼 컨트롤 회로(51)가 모듈 지연 사이즈만큼의 데이터 라인들에 대한 입력 없이 동작하게 되는데, 이러한 라인 버퍼 드레인 출력(drain out) 중에 라인 버퍼 컨트롤 회로로 다른 채널의 데이터 라인이 입력되는 것을 방지하기 위해 중지 신호(STL)를 활성화하여야 한다. 그러나, 채널을 통해 제공되는 입력은 멈추지 않으므로 이는 통상 파이프라인 앞 단에 존재하는 버퍼를 원치 않게 채우게 된다. 한편, 밀려들어오는 특정 채널의 데이터 라인들로 인해 엔드 이미지 데이터 라인에 대한 프로세싱을 적시에 끝내지 못하는 문제를 일으킬 수도 있다. 파이프라인 내에 지연 프로세싱 모듈이 여러 개 존재하는 경우 이 문제는 더 복합적이고 예측 불가능해진다.
이와 같이 라인 버퍼 컨트롤 회로(51)가 라인 드레인 회로(LDC)를 이용하여 라인 처리 순서를 결정할 경우 다른 프로세싱 모듈의 상태나 채널로부터 입력되는 데이터를 저장하는 버퍼의 상태 등을 고려할 수 없기 때문에 최적의 순서로 처리할 수 없게 된다.
도 10a는 본 발명의 실시예들에 따른 이미지 신호 프로세서에 포함되는 지연 프로세싱 모듈의 일 예를 나타내는 블록도이고, 도 10b는 도 10a의 지연 프로세싱 모듈의 동작을 나타내는 타이밍도이다.
도 10a를 참조하면, 지연 프로세싱 모듈(60)은 라인 버퍼 컨트롤 회로(LBC)(61) 및 필터링 회로(FLT)를 포함할 수 있다.
도 9a의 지연 프로세싱 모듈(50)에 포함되는 라인 버퍼 컨트롤 회로(51)와 비교하여, 도 10a의 지연 프로세싱 모듈(60)에 포함되는 라인 버퍼 컨트롤 회로(61)는 라인 드레인 회로(LDC)를 포함하지 않는다. 엔드 이미지 데이터 라인에 대한 지연 라인 프로세싱을 제외하고는, 도 10a의 지연 프로세싱 모듈(60)의 구성 및 동작은 도 9a의 지연 프로세싱 모듈(50)의 구성 및 동작과 실질적으로 동일하므로, 도 9a 및 9b와 중복되는 설명을 생략한다.
도 10b에 도시된 바와 같이, 지연 프로세싱 모듈(60)은 라인 인터리빙 컨트롤러부터 제1 스트림 신호(STR1)를 통해 수신되는 가상 데이터 라인(VL6)에 동기하여 실시간으로 엔드 이미지 데이터 라인(IL5)에 대한 지연 필터링 동작을 수행할 수 있다. 이 경우, 지연 프로세싱 모듈(60)은 엔드 이미지 데이터 라인(IL5)에 대한 프로세싱을 위해 전단의 라인 인터리빙 컨트롤러 또는 전단의 프로세싱 모듈로부터 데이터 라인을 수신하는 것을 중단할 필요가 없다. 다시 말해, 지연 프로세싱 모듈(60)은 엔드 이미지 데이터 라인(IL5)에 대한 지연 필터링 동작을 수행을 위해 도 9a의 지연 프로세싱 모듈(50)처럼 중지 신호(STL)를 활성화할 필요가 없다.
다시 말해, 본 발명의 실시예들에 따른 라인 인터리빙 컨트롤러는, 이미지 신호 프로세서 코어가 서로 다른 채널을 통하여 제공되는 복수의 이미지 프레임들의 엔드 이미지 데이터 라인들에 대한 프로세싱을 수행하는 동안에도 중단 없이 입력 스트림 신호를 이미지 신호 프로세서 코어로 전송할 수 있다.
이와 같이, 본 발명의 실시예들에 따른 라인 인터리빙 컨트롤러 및 이를 포함하는 이미지 신호 프로세서는 복수의 채널들을 통해 제공되는 이미지 프레임들에 대한 라인 단위의 시간-분할 멀티플렉싱에 의한 프로세싱의 경우 채널간 간섭을 제거하기 위해 추가적인 가상 데이터 라인을 발생하여 이용한다. 가상 데이터 라인의 발생 및 순서 결정을 파이프라인에 선행하는 라인 인터리빙 컨트롤러가 담당하여 성능에 부정적인 영향을 줄 수 있는 불확실성을 제거할 수 있다. 파이프라인에 포함되는 각 지연 프로세싱 모듈의 라인 버퍼 컨트롤 회로는 수신되는 이미지 데이터 라인들 및 가상 데이터 라인들에 동기하여 종속적 또는 수동적으로 동작하여 불확실성을 제거하고 파이프라인 성능을 향상시킬 수 있다.
도 11 및 12는 본 발명의 실시예들에 따른 이미지 신호 프로세서를 나타내는 블록도들이다.
도 11을 참조하면, 이미지 신호 프로세서(12)는 라인 인터리빙 컨트롤러(LIC)(100) 및 이미지 신호 프로세서 코어(202)를 포함할 수 있다. 라인 인터리빙 컨트롤러(100)는 전술한 바와 같은 가상 데이터 라인들을 발생하는 가상 라인 발생기(300)를 포함할 수 있다.
이미지 신호 프로세서 코어(202)는 프로세싱 모듈들(MA, MB1, MB2, MC1, MC2, MC3)을 포함할 수 있다. 2개의 프로세싱 모듈들(MB1, MB2)은 제1 파이프라인 회로(PLC1)를 형성하여 제1 출력 스트림 신호(STROUT1)를 발생하고, 3개의 프로세싱 모듈들(MC1, MC2, MC3)은 제1 파이프라인 회로(PLC1)와 병렬로 연결되는 제2 파이프라인 회로(PLC2)를 형성하여 제2 출력 스트림 신호(STROUT2)를 발생할 수 있다.
예를 들어, 제1 파이프라인 회로(PLC1)는 전술한 바와 같은 지연 필터링 동작을 수행하는 1개의 제1 지연 프로세싱 모듈(MB1)을 포함하고, 제2 파이프라인 회로(PLC2)는 2개의 제2 지연 프로세싱 모듈들(MC2, MC3)을 포함할 수 있다.
예를 들어, 제1 지연 프로세싱 모듈(MB1)의 모듈 지연 사이즈(MDSZB1)는 1이고, 제2 지연 프로세싱 모듈(MC2)의 모듈 지연 사이즈(MDSZC2)는 3이고, 제2 지연 프로세싱 모듈(MC3)의 모듈 지연 사이즈(MDSZC3)는 1일 수 있다. 이 경우, 제1 지연 프로세싱 모듈(MB1)의 모듈 지연 사이즈(MDSZB1=1)의 합산 값을 나타내는 제1 파이프라인 지연 사이즈(PDSZ1)는 1이고, 제2 지연 프로세싱 모듈들(MC2, MC3)의 모듈 지연 사이즈들(MDSZC2=3, MDSZC3=1)의 합산 값을 나타내는 제2 파이프라인 지연 사이즈(PDSZ2)는 4이다.
가상 라인 발생기(300)는 제1 파이프라인 지연 사이즈(PDSZ1=1) 및 제2 파이프라인 지연 사이즈(PDSZ2=4) 중에서 큰 값에 해당하는 코어 지연 사이즈(CDSZ)에 상응하는 개수, 즉 4개의 가상 데이터 라인들을 발생하여 출력할 수 있다.
라인 인터리빙 컨트롤러(100)는 w*n의 해상도를 갖는 이미지 프레임(FRM)을 라인 단위로 수신할 수 있다. w*n에서 n은 이미지 프레임(FRM)의 라인 수를 나타내고, w는 이미지 프레임(FRM)의 라인당 픽셀 수를 나타낸다. 즉, 이미지 프레임(FRM)은 n개의 이미지 데이터 라인들을 포함할 수 있다.
라인 인터리빙 컨트롤러(100)는 n개의 이미지 데이터 라인들 및 가상 라인 발생기(300)에서 발생되는 4개의 가상 데이터 라인들을 라인 단위로 출력하여 입력 스트림 신호(STRIN)를 발생할 수 있다. 즉, 입력 스트림 신호(STRIN)는 w*(n+4)의 해상도를 갖는 확장 이미지 프레임을 포함할 수 있다.
이미지 신호 프로세서 코어(202)는 n개의 이미지 데이터 라인들 및 4개의 가상 데이터 라인들에 동기하여 수동적으로 라인 단위의 지연 프로세싱을 수행할 수 있다.
제1 파이프라인 회로(PLC1)의 제1 프로세싱 모듈(MB1)은 4개의 가상 데이터 라인들 중 1개의 가상 데이터 라인을 이용하여 이미지 프레임(FRM)의 끝 부분에 포함되는 하나의 엔드 이미지 데이터 라인에 대한 지연 필터링 동작을 수행하여 w*n의 해상도를 갖는 프로세싱된 이미지 프레임을 포함하는 제1 출력 스트림 신호(STROUT1)를 발생할 수 있다. 제1 프로세싱 모듈(MB1)은 4개의 가상 데이터 라인들 중 지연 필터링 동작에 이용되지 않는 3개의 가상 데이터 라인들은 무시할 수 있다.
제2 파이프라인 회로(PLC2)의 제2 프로세싱 모듈들(MC2, MC3)은 4개의 가상 데이터 라인들을 순차적으로 모두 이용하여 이미지 프레임(FRM)의 끝 부분에 포함되는 3개의 엔드 이미지 데이터 라인들에 대한 지연 필터링 동작을 수행하여 w*n의 해상도를 갖는 프로세싱된 이미지 프레임을 포함하는 제2 출력 스트림 신호(STROUT2)를 발생할 수 있다. 엔드 이미지 데이터 라인들의 개수는 제2 프로세싱 모듈들(MC2, MC3)의 모듈 지연 사이즈들(MDSZC2=3, MDSZC3=1) 중에서 최대 값에 해당한다.
도 12의 이미지 신호 프로세서(13)는 도 11의 이미지 신호 프로세서(12)와 유사하므로 도 12와 중복되는 설명을 생략한다.
도 11의 이미지 신호 프로세서(12)와 비교하여, 이미지 신호 프로세서(12)는 제1 파이프라인 회로(PLC1)의 출력 및 제2 파이프라인 회로(PLC2)의 출력을 믹싱하여 출력하는 믹서(MXR) 및 믹서의 출력을 프로세싱하는 프로세싱 모듈(MD)을 더 포함한다.
믹서(MXR)의 믹싱 동작을 위해 제1 파이프라인 회로(PLC1)의 출력 및 제2 파이프라인 회로(PLC2)의 출력을 라인 단위로 동기화할 필요가 있다. 이러한 동기화를 위하여 제1 파이프라인 회로(PLC1)는 파이프라인 경로 상에 지연 버퍼(DBF)를 더 포함할 수 있다. 지연 버퍼(DBF)는 제1 파이프라인 지연 사이즈(PDSZ1) 및 제2 파이프라인 지연 사이즈(PDSZ1)가 동일하게 되도록, 수신되는 데이터 라인을 프로세싱 없이 지연하여 출력할 수 있다. 도 12의 예에서, 지연 버퍼(DBF)의 지연 사이즈(BDSZ)는 3으로 셋팅될 수 있고, 이로써 제1 파이프라인 지연 사이즈(PDSZ1) 및 제2 파이프라인 지연 사이즈(PDSZ1)는 동일하게 4로 셋팅될 수 있다.
한편, 도 11 및 12에 도시하지는 않았으나, 이미지 신호 프로세서 코어들(202, 203)은 프로세싱 모듈들 사이에 스케일링 동작 및/또는 크롭(crop) 동작을 수행하여 해상도를 변경하는 적어도 하나의 모듈을 더 포함할 수 있다. 이 경우 해상도를 변경하여 출력하는 상기 모듈은 도 7 및 8을 참조하여 설명한 바와 같이 수신되는 가상 데이터 라인을 그대로 유지하여 출력할 수 있다.
도 13은 본 발명의 실시예들에 따른 데이터 처리 시스템을 나타내는 블록도이다.
도 13을 참조하면, 데이터 처리 시스템(500)은 애플리케이션 프로세서(AP, application processor)(600), 복수의 이미징 장치들(IMD1, IMD2), 메모리 장치(MEM)(700) 및 디스플레이 장치(DIS)(800)를 포함할 수 있다.
데이터 처리 시스템(500)은 PC(personal computer) 또는 모바일 컴퓨팅 장치로 구현될 수 있다. 상기 모바일 컴퓨팅 장치는 랩탑 컴퓨터(laptop computer),
애플리케이션 프로세서(600)는 집적 회로, 마더보드, 시스템 온 칩(SOC, system on chip), 또는 모바일 AP로 구현될 수 있으나 이에 한정되는 것은 아니다.
애플리케이션 프로세서(600)는 버스(640), CPU(central processing unit)(610), 복수의 인터페이스들(INT1, INT2), 이미지 신호 프로세서(ISP)(10), 메모리 컨트롤러(MC)(620) 및 디스플레이 컨트롤러(DC)(630)를 포함할 수 있다.
CPU(610), 이미지 신호 프로세서(100), 메모리 컨트롤러(620) 및 디스플레이 컨트롤러(630)는, 버스(640)를 통해, 명령 및/또는 데이터를 주거나 받을 수 있다.
버스(640)는 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜을 사용하는 버스, AHB(Advanced High-performance Bus) 프로토콜을 사용하는 버스, APB(Advanced Peripheral Bus) 프로토콜을 사용하는 버스, AXI(AMBA Extensible Interconnect) 프로토콜을 사용하는 버스, 또는 이들의 조합으로 구현될 수 있으나, 이에 한정되는 것은 아니다.
CPU(610)는 애플리케이션 프로세서(600)의 작동을 전반적으로 제어할 수 있다. 예컨대, CPU(610)는 복수의 인터페이스들(INT1, INT2), 이미지 신호 프로세서(10), 메모리 컨트롤러(620) 및 디스플레이 컨트롤러(630)를 제어할 수 있다. CPU(610)는 하나 이상의 코어들을 포함할 수 있다.
제1 인터페이스(INT1)는 제1 이미징 장치(IMD1)로부터 출력된 제1 이미지와 제1 제어 신호들을 수신하고, 이들을 이미지 신호 프로세서(10)로 전송할 수 있다. 제2 인터페이스(INT2)는 제2 이미징 장치(IMD2)로부터 출력된 제2 이미지와 제2 제어 신호들을 수신하고, 이들을 이미지 신호 프로세서(100)로 전송할 수 있다. 제1 이미지 및 제2 이미지는 픽처(picture), 이미지 데이터, 이미지 데이터 스트림, 또는 이미지 프레임을 의미할 수 있다.
제1 이미징 장치(IMD1) 및 제2 이미징 장치(IMD2)는 CMOS 이미지 센서 칩 또는 카메라 모듈로 구현될 수 있다. 제1 이미징 장치(IMD1) 및 제2 이미징 장치(IMD2)의 각각은 MIPI(Mobile Industry Processor Interface)® CSI (camera serial interface)를 통해 이미지와 제어 신호들을 인터페이스들(INT1, INT2)로 전송할 수 있다. 예컨대, 제1 이미지 및 제2 이미지의 해상도(resolution) 및/또는 프레임 레이트는 서로 다를 수 있다.
이미지 신호 프로세서(10)는 외부의 메모리 장치(700)를 사용하지 않고도 제1 이미지 및/또는 제2 이미지를 프레임 데이터(frame data) 단위가 아닌 라인 데이터(line data) 단위로 시간-분할 멀티플렉싱(TDM, time-division multiplexing)을 수행할 수 있다.
예컨대, 이미지 신호 프로세서(10)는 이미징 장치들(IMD1, IMD2)로부터 출력된 이미지들을 TDM 방식에 따라 라인 단위로 실시간(on-the-fly)으로 처리할 수 있다. 본 발명의 실시예들에 따라서, 이미지 신호 프로세서(10)는 가상 데이터 라인들을 발생하는 라인 인터리빙 컨트롤러 및 상기 가상 데이터 라인들에 동기하여 이미지 프레임의 끝 부분에 포함되는 하나 이상의 엔드 이미지 데이터 라인들을 프로세싱하는 이미지 신호 프로세서 코어를 포함할 수 있다.
예를 들어, 상기 이미지 신호 프로세서 코어는 자동 다크 레벨 보상(auto dark level compensation), 배드 픽셀 대체(bad pixel replacement), 노이즈 감소(noise reduction), 렌즈 쉐이딩 보상(lens shading compensation), 컬러 보정(color correction), RGB 감마 보정(RGB gamma correction), 에지 향상(edge enhancement), 색조 제어(hue control), 및 컬러 억제(color suppress) 중에서 적어도 하나를 수행할 수 있다.
메모리 컨트롤러(620)는, CPU(610)의 제어에 따라, 이미지 신호 프로세서(10)에 의해 TDM 방식에 따라 라인 단위로 처리된 데이터를 메모리 장치(700)에 저장할 수 있다. 디스플레이 컨트롤러(630)는, CPU(610)의 제어에 따라, 메모리 장치(700)로부터 출력된 데이터(예컨대, 이미지 프레임)를 디스플레이 장치(800)로 전송할 수 있다. 예컨대, 디스플레이 컨트롤러(630)는, MIPI® 디스플레이 시리얼 인터페이스 (display serial interface(DSI)), DP(DisplayPort) 또는 eDP(Embedded DisplayPort)를 통해, 메모리 장치(700)로부터 출력된 데이터를 디스플레이 장치(800)로 전송할 수 있다.
도 14는 본 발명의 실시예들에 따른 라인 인터리빙 컨트롤러를 나타내는 블록도이다. 도 14에는 설명의 편의상 제1 이미징 장치(IMD1), 제2 이미징 장치(IMD2), 제1 인터페이스(INT1) 및 제2 인터페이스(IMT2)가 함께 도시되어 있다.
도 14를 참조하면, 라인 인터리빙 컨트롤러(100)는 가상 라인 발생기(VLG)(300), 컨트롤 로직 회로(CLG)(110), 버퍼 회로(BFC)(130) 및 멀티플렉서(MUX)(150)를 포함한다.
버퍼 회로(130)는 제1 채널(CH1)을 통하여 수신되는 제1 이미지 프레임(FRM1)에 포함되는 복수의 제1 이미지 데이터 라인들(IL1) 및 제2 채널(CH2)을 통하여 수신되는 제2 이미지 프레임(FRM2)에 포함되는 복수의 제2 이미지 데이터 라인들(IL2)을 버퍼링하여 제1 이미지 데이터 라인들(IL1) 및 제2 이미지 데이터 라인들(IL2)을 출력한다. 버퍼 출력 신호(BOUT)는 제1 이미지 데이터 라인들(IL1) 및 제2 이미지 데이터 라인들(IL2)을 선택적으로 포함한다.
가상 라인 발생기(300)는 제1 이미지 프레임(FRM1)에 상응하는 하나 이상의 제1 가상 데이터 라인들(VL1) 및 제2 이미지 프레임(FRM2)에 상응하는 하나 이상의 제2 가상 데이터 라인들(VL2)을 발생한다. 멀티플렉서(150)는 버퍼 회로(13)의 출력 및 가상 라인 발생기(300)의 출력 중 하나를 선택하여 입력 스트림 신호(STRIN)를 출력한다.
컨트롤 로직 회로(110)는 버퍼 회로(130), 가상 라인 발생기(300) 및 멀티플렉서(150)의 동작을 제어한다. 컨트롤 로직 회로(110)는 제1 채널(CH1)을 통하여 수신되는 제1 동기 신호(SYNC1) 및 제2 채널(CH2)을 통하여 제공되는 제2 동기 신호(SYNC2)에 기초하여 가상 라인 발생기(300)를 제어하기 위한 제1 제어 신호(CTRL1), 버퍼 회로(130)를 제어하기 위한 제2 제어 신호(CTRL2) 및 멀티플렉서(150)를 제어하기 위한 선택 신호(SEL)를 발생할 수 있다. 또한, 컨트롤 로직 회로(110)는 후단의 이미지 신호 프로세서 코어의 동작을 위한 제3 동기 신호(SYNC1'), 제4 동기 신호(SYNC2') 및 가상 라인 식별 신호(VLID)를 발생할 수 있다. 동기 신호는 하나의 이미지 프레임의 전송 시작 및 전송 종료를 나타내는 수직 동기 신호, 하나의 데이터 라인의 전송 시작 및 전송 종료를 나타내는 수평 동기 신호, 클록 신호, 데이터 인에이블 신호 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
전술한 바와 같이, 제1 가상 데이터 라인들(VL1)은 제1 이미지 프레임(FRM1)의 끝 부분에 포함되는 하나 이상의 엔드 이미지 데이터 라인들의 프로세싱에 사용되고, 제2 가상 데이터 라인(VL2)은 제2 이미지 프레임(FRM2)의 끝 부분에 포함되는 하나 이상의 엔드 이미지 데이터 라인들의 프로세싱에 사용된다.
도 15는 도 14의 라인 인터리빙 컨트롤러의 동작을 나타내는 타이밍도이다.
도 15의 제1 이미지 프레임(FRM1), 제2 이미지 프레임(FRM2) 입력 스트림 신호(STRIN)는 도 6을 참조하여 설명한 바와 같으므로 중복되는 설명을 생략한다.
도 14 및 15를 참조하면, 제1 수직 동기 신호(VSYNC1)가 활성화되는 동안 제1 수평 동기 신호(HSYNC1)가 반복적으로 활성화되고, 제1 수평 동기 신호(HSYNC1)의 활성화에 동기하여 제1 이미지 데이터 라인들(IL11~IL13)이 제1 이미징 장치(IMD1)로부터 라인 인터리빙 컨트롤러(100)로 전송될 수 있다. 마찬가지로, 제2 수직 동기 신호(VSYNC2)가 활성화되는 동안 제2 수평 동기 신호(HSYNC2)가 반복적으로 활성화되고, 제2 수평 동기 신호(HSYNC2)의 활성화에 동기하여 제2 이미지 데이터 라인들(IL21~IL25)이 제2 이미징 장치(IMD2)로부터 라인 인터리빙 컨트롤러(100)로 전송될 수 있다.
라인 인터리빙 컨트롤러(100)의 컨트롤 로직 회로(110)는 입력 스트림 신호(STRIN)에 포함되는 제1 이미지 데이터 라인들(IL11~IL13) 및 제1 가상 데이터 라인들(VL14, VL15)에 동기된 제3 수직 동기 신호(VSYNC1') 및 제3 수평 동기 신호(HSYNC1')와 제2 이미지 데이터 라인들(IL21~IL25) 및 제2 가상 데이터 라인들(VL26, VL27)에 동기된 제4 수직 동기 신호(VSYNC2') 및 제4 수평 동기 신호(HSYNC2')를 발생하여 이미지 신호 프로세서 코어에 전송할 수 있다.
이러한, 제3 수직 동기 신호(VSYNC1'), 제3 수평 동기 신호(HSYNC1'), 제4 수직 동기 신호(VSYNC2') 및 제4 수평 동기 신호(HSYNC2')는 입력 스트림 신호(STRIN)에 포함되는 현재의 데이터 라인(즉, 이미지 데이터 라인 및 가상 데이터 라인)이 제1 이미지 프레임(FRM1)에 해당하는지 또는 제2 이미지 프레임(FRM2)에 해당하는지를 나타내는 채널 식별 신호에 해당한다. 이미지 신호 프로세서 코어는 이러한 채널 식별 신호에 기초하여 제1 이미지 프레임(FRM1)에 대한 프로세싱 및 제2 이미지 프레임(FRM2)에 대한 프로세싱을 각각 독립적으로 수행할 수 있다.
한편, 라인 인터리빙 컨트롤러(100)의 컨트롤 로직 회로(110)는 입력 스트림 신호(STRIN)에 포함되는 가상 데이터 라인들(VL14, VL15, VL26, VL27)에 동기된 가상 라인 식별 신호(VLID)를 발생할 수 있다. 즉, 가상 라인 식별 신호(VLID)는 입력 스트림 신호(STRIN)에 포함되는 현재의 데이터 라인이 이미지 데이터 라인인지 또는 가상 데이터 라인인지를 나타낼 수 있다. 라인 인터리빙 컨트롤러는, 이러한 가상 라인 식별 신호(VLID)에 기초하여 제1 이미지 프레임(FRM1) 또는 제2 이미지 프레임(FRM2)의 상기 엔드 이미지 데이터 라인들에 대한 프로세싱을 수행할 수 있다.
도 16 내지 19는 본 발명의 실시예들에 따른 라인 인터리빙 컨트롤러에 포함되는 버퍼 회로의 실시예들을 나타내는 도면들이다.
도 16을 참조하면, 버퍼 회로(131)는 제1 멀티플렉서(MUX1), 라인 버퍼(LNM) 및 제2 멀티플렉서(MUX2)를 포함할 수 있다. 제1 멀티플렉서(MUX1)는 제1 선택 신호(SEL1)에 기초하여 제1 이미지 프레임(FRM1)의 제1 이미지 데이터 라인 또는 제2 이미지 프레임(FRM2)의 제2 이미지 데이터 라인을 선택적으로 출력할 수 있다. 라인 버퍼(LMN)는 버퍼링 제어 신호(LCTRL)에 기초하여 제1 멀티플렉서(MUX1)로부터 출력되는 하나의 이미지 데이터 라인을 저장하고 저장된 이미지 데이터 라인을 출력할 수 있다. 제2 멀티플렉서(MUX2)는 제2 선택 신호(SEL2)에 기초하여 제1 이미지 프레임(FRM1)의 제1 이미지 데이터 라인, 제2 이미지 프레임(FRM2)의 제2 이미지 데이터 라인 또는 라인 버퍼(LNM)로부터 출력되는 이미지 데이터 라인을 선택적으로 출력하여 버퍼 출력 신호(BOUT)를 발생할 수 있다. 제1 선택 신호(SEL1), 제2 선택 신호(SEL2) 및 버퍼링 제어 신호(LCTRL)는 컨트롤 로직 회로(110)에서 발생되는 제1 제어 신호(CTRL1)에 포함될 수 있다.
도 16의 버퍼 회로(131)는 제1 이미지 데이터 라인 및 제2 이미지 데이터 라인의 전송 시간들이 중첩되는 경우 하나의 이미지 데이터 라인을 라인 버퍼(LNM)에 일시적으로(temporarily) 저장함으로써 제1 이미지 프레임(FRM1) 및 제2 이미지 프레임(FRM2)에 대한 라인 단위의 시간-분할 멀티플렉싱을 실시간으로 수행할 수 있다.
도 17을 참조하면, 버퍼 회로(132)는 제1 라인 버퍼(LNM1), 제2 라인 버퍼(LNM2) 및 멀티플렉서(MUX)를 포함할 수 있다. 제1 라인 버퍼(LMN1)는 제1 버퍼링 제어 신호(LCTRL1)에 기초하여 제1 이미지 프레임(FRM1)에 포함되는 하나의 제1 이미지 데이터 라인을 저장하고 저장된 제1 이미지 데이터 라인을 출력할 수 있다. 제2 라인 버퍼(LMN2)는 제2 버퍼링 제어 신호(LCTRL2)에 기초하여 제2 이미지 프레임(FRM2)에 포함되는 하나의 제2 이미지 데이터 라인을 저장하고 저장된 제2 이미지 데이터 라인을 출력할 수 있다. 멀티플렉서(MUX)는 선택 신호(MSEL)에 기초하여 제1 이미지 프레임(FRM1)의 제1 이미지 데이터 라인, 제2 이미지 프레임(FRM2)의 제2 이미지 데이터 라인, 제1 라인 버퍼(LNM1)로부터 출력되는 제1 이미지 데이터 라인 또는 제2 라인 버퍼(LNM2)로부터 출력되는 제2 이미지 데이터 라인을 선택적으로 출력하여 버퍼 출력 신호(BOUT)를 발생할 수 있다. 선택 신호(MSEL), 제1 버퍼링 제어 신호(LCTRL1) 및 제2 버퍼링 제어 신호(LCTRL2)는 도 14의 컨트롤 로직 회로(110)에서 발생되는 제1 제어 신호(CTRL1)에 포함될 수 있다.
도 17의 버퍼 회로(132)는 제1 이미지 데이터 라인 및 제2 이미지 데이터 라인의 전송 시간들이 중첩되는 경우 이미지 프레임의 이미지 데이터 라인을 제1 라인 버퍼(LNM1) 또는 제2 라인 버퍼(LNM2)에 일시적으로(temporarily) 저장함으로써 제1 이미지 프레임(FRM1) 및 제2 이미지 프레임(FRM2)에 대한 라인 단위의 시간-분할 멀티플렉싱을 실시간으로 수행할 수 있다.
도 18을 참조하면, 버퍼 회로(133)는 제1 이미지 프레임(FRM1)의 제1 이미지 데이터 라인들(IL11, IL12) 및 제2 이미지 프레임(FRM2)의 제2 이미지 데이터 라인들(IL21, IL22, IL23)을 수신 순서에 따라서 순차적으로 저장하는 공통 메모리 영역(CMREG)을 포함할 수 있다. 컨트롤 로직 회로(110)는 현재 수신되는 이미지 데이터 라인의 저장 위치를 나타내는 기입 포인터(WPTR)를 순차적으로 변경할 수 있다.
컨트롤 로직 회로(110)는 공통 메모리 영역(CMREG)에 저장된 제1 이미지 데이터 라인들(IL11, IL12) 및 제2 이미지 데이터 라인들(IL21, IL22, IL23)을 수신 순서에 따라서 순차적으로 출력하여 버퍼 출력 신호(BOUT)를 발생하도록 버퍼 회로(131)를 제어할 수 있다. 컨트롤 로직 회로(110)는 현재 출력되는 이미지 데이터 라인의 독출 위치를 나타내는 독출 포인터(RPTR)를 순차적으로 변경할 수 있다.
도 18의 버퍼 회로(133)를 이용하여 선입선출(FIFO, first-in first-out) 방식으로 제1 이미지 프레임(FRM1) 및 제2 이미지 프레임(FRM2)에 대한 라인 단위의 시간-분할 멀티플렉싱을 수행할 수 있다.
도 19를 참조하면, 버퍼 회로(134)는 제1 이미지 프레임(FRM1)의 제1 이미지 데이터 라인들(IL11, IL12)을 수신하여 순차적으로 저장하는 제1 메모리 영역(MREG1) 및 제2 이미지 프레임(FRM2)의 제2 이미지 데이터 라인들(IL21, IL22, IL23)을 라인들을 수신하여 순차적으로 저장하는 제2 메모리 영역(MREG2)을 포함할 수 있다. 컨트롤 로직 회로(110)는 현재 수신되는 제1 이미지 데이터 라인의 저장 위치를 나타내는 제1 기입 포인터(WPTR1) 및 현재 수신되는 제2 이미지 데이터 라인의 저장 위치를 나타내는 제2 기입 포인터(WPTR2)를 순차적으로 변경할 수 있다.
컨트롤 로직 회로(110)는 제1 메모리 영역(MREG1)에 저장된 제1 이미지 데이터 라인들(IL11, IL12) 및 제2 메모리 영역(MREG2)에 저장된 제2 이미지 데이터 라인들(IL21, IL22, IL23)의 우선순위 순서(priority order)를 결정하고, 제1 이미지 데이터 라인들(IL11, IL12) 및 제2 이미지 데이터 라인들(IL21, IL22, IL23)상기 제1 이미지 데이터 라인들을 상기 우선순위 순서에 따라 출력하여 버퍼 출력 신호(BOUT)를 발생하도록 버퍼 회로(134)를 제어할 수 있다. 컨트롤 로직 회로(110)는 현재 출력되는 제1 이미지 데이터 라인의 독출 위치를 나타내는 제1 독출 포인터(RPTR1) 및 현재 출력되는 제2 이미지 데이터 라인의 독출 위치를 나타내는 제2 독출 포인터(RPTR2)를 순차적으로 변경할 수 있다.
도 19의 버퍼 회로(134)를 이용하여 서로 다른 채널들을 통하여 수신되는 제1 이미지 프레임(FRM1) 및 제2 이미지 프레임(FRM2)의 처리 순서를 능동적으로 결정할 수 있다. 컨트롤 로직 회로(110)는 채널들의 상태, 제1 이미지 프레임(FRM1) 및 제2 이미지 프레임(FRM2)의 프레임 레이트들, 중요도 등을 고려하여 상기 우선순위 순서를 결정할 수 있다.
도 20은 본 발명의 실시예들에 따른 이미지 신호 프로세서를 나타내는 블록도이다. 도 20에는 설명의 편의상 제1 이미징 장치(IMD1), 제2 이미징 장치(IMD2), 제1 인터페이스(INT1), 제2 인터페이스(IMT2), 버스(640) 및 메모리 장치(700)가 함께 도시되어 있다.
도 20을 참조하면, 이미지 신호 프로세서(14)는 라인 인터리빙 컨트롤러(LIC), 이미지 신호 프로세서 코어(ISPCR), 스케일링 및 포맷팅 회로(SFC), 멀티미디어 처리 회로(MPC) 및 직접 메모리 액세스 컨트롤러들(DMAC1~DMAC4)을 포함할 수 있다. 라인 인터리빙 컨트롤러(LIC)는 가상 라인 발생기(VLG)를 포함할 수 있다. 이하 전술한 설명과 중복되는 설명은 생략한다.
일 실시예에서, 라인 인터리빙 컨트롤러(LIC)는 제1 채널(CH1) 및 제2 채널(CH2)을 통하여 제1 이미징 장치(IMD1, IMD2)로부터 전술한 바와 같은 제1 이미지 프레임 및 제2 이미지 프레임을 수신할 수 있다. 다른 실시예에서, 라인 인터리빙 컨트롤러(LIC)는 직접 메모리 액세스 컨트롤러들(DMAC1, DMAC2)의 제어에 의해 제3 채널(CH3) 및 제4 채널(CH4)을 통하여 메모리 장치(700)로부터 전술한 바와 같은 제1 이미지 프레임 및 제2 이미지 프레임을 수신할 수 있다.
스케일링 및 포맷팅 회로(SFC)는 이미지 신호 프로세서 코어(ISPCR)로부터 출력된 데이터에 대해 스케일 동작(scale operation)을 수행하고, 스케일된 데이터의 포맷을 변경하고, 변경된 포맷을 갖는 데이터를 생성할 수 있다. 이때, 스케일 동작은 스케일-업 동작 또는 스케일-다운 동작을 포함할 수 있다. 직접 메모리 액세스 컨트롤러(DMAC3)는 스케일링 및 포맷팅 회로(SFC)에 의해 처리된 데이터를 버스(640)를 통해 메모리 장치(700)에 저장할 수 있다.
스케일링 및 포맷팅 회로(SFC)는 처리된 데이터를 멀티미디어 처리 회로(MPC)로 전송할 수 있다. 멀티미디어 처리 회로(MPC)는 직접 메모리 액세스 컨트롤러(DMAC4)를 이용하여 메모리 장치(700)에 저장된 데이터를 독출 또는 페치(fetch)하여 처리하고, 처리된 데이터를 메모리 장치(700)에 저장할 수 있다.
도 21은 본 발명의 실시예들에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 21을 참조하면, 컴퓨팅 시스템(1000)은 프로세서(1010), 메모리 장치(1020), 저장 장치(1030), 입출력 장치(1040), 이미지 신호 프로세서(ISP)(10) 및 복수의 이미지 센서들(900)을 포함할 수 있다. 한편, 도 21에는 도시되지 않았지만, 컴퓨팅 시스템(1000)은 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하거나, 또는 다른 전자 기기들과 통신할 수 있는 포트(port)들을 더 포함할 수 있다.
프로세서(1010)는 특정 계산들 또는 태스크(task)들을 수행할 수 있다. 실시예에 따라, 프로세서(1010)는 마이크로프로세서(micro-processor), 중앙 처리 장치(Central Processing Unit; CPU)일 수 있다. 메모리 장치(1020)는 컴퓨팅 시스템(1000)의 동작에 필요한 데이터를 저장할 수 있다. 예를 들어, 메모리 장치(1020)는 디램(DRAM), 모바일 디램, 에스램(SRAM), 피램(PRAM), 에프램(FRAM), 알램(RRAM) 및/또는 엠램(MRAM)으로 구현될 수 있다. 저장 장치(1030)는 솔리드 스테이트 드라이브(solid state drive), 하드 디스크 드라이브(hard disk drive), 씨디롬(CD-ROM) 등을 포함할 수 있다. 입출력 장치(1040)는 키보드, 키패드, 마우스 등과 같은 입력 수단 및 프린터, 디스플레이 등과 같은 출력 수단을 포함할 수 있다.
이미지 신호 프로세서(10)는 전술한 바와 같이 가상 데이터 라인을 발생하는 라인 인터리빙 컨트롤러를 포함할 수 있다. 상기 라인 인터리빙 컨트롤러는 복수의 이미지 센서들(900)들로부터 제공되는 이미지 프레임의 끝 부분에 포함되는 엔드 이미지 데이터 라인들의 프로세싱을 위한 가상 데이터 라인들을 내부적으로 생성하여 파이프라인 구조를 포함하는 이미지 신호 프로세서 코어에 제공함으로써 채널들 사이의 간섭을 효율적으로 방지할 수 있다.
본 발명의 실시예들은 이미지 신호의 처리가 요구되는 장치 및 이를 포함하는 시스템에 유용하게 이용될 수 있다.
특히 본 발명의 실시예들은 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular phone), 스마트폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(internet of things;) 기기, IoE(internet of everything:) 기기, e-북(e-book), VR(virtual reality) 기기, AR(augmented reality) 기기 등과 같은 전자 기기, 자동차의 인포테인먼트(In-vehicle Infotainment(IVI)) 시스템, 드론 등 이미지 센서와 영상처리 시스템을 포함하는 다양한 종류의 컴퓨팅 시스템에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명이 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 이미지 프레임에 포함되는 복수의 이미지 데이터 라인들을 수신하고 상기 이미지 프레임에 상응하는 하나 이상의 가상 데이터 라인들을 발생하여 상기 복수의 이미지 데이터 라인들 및 상기 가상 데이터 라인들을 순차적으로 라인 단위로 출력하는 라인 인터리빙 컨트롤러; 및
    상기 라인 인터리빙 컨트롤러로부터 수신되는 데이터 라인에 대한 순차적인 프로세싱을 위해 직렬로 연결된 복수의 프로세싱 모듈들을 포함하는 파이프라인 회로를 하나 이상 포함하고, 상기 라인 인터리빙 컨트롤러로부터 수신되는 상기 가상 데이터 라인들에 기초하여 상기 이미지 프레임의 끝 부분에 포함되는 하나 이상의 엔드 이미지 데이터 라인들을 프로세싱하는 이미지 신호 프로세서 코어를 포함하는 이미지 신호 프로세서.
  2. 제1 항에 있어서,
    상기 복수의 프로세싱 모듈들은,
    프로세싱 대상이 되는 타겟 데이터 라인의 다음에 수신되는 하나 이상의 지연 데이터 라인들에 기초하여 상기 타겟 데이터 라인에 대한 지연 필터링 동작을 각각 수행하는 하나 이상의 지연 프로세싱 모듈들을 포함하는 것을 특징으로 하는 이미지 신호 프로세서.
  3. 제2 항에 있어서,
    상기 이미지 신호 프로세서 코어는,
    상기 엔드 이미지 데이터 라인들에 대한 프로세싱을 위해 상기 라인 인터리빙 컨트롤러로부터 데이터 라인을 수신하는 것을 중단함이 없이, 상기 라인 인터리빙 컨트롤러로부터 수신되는 상기 가상 데이터 라인들에 동기하여 실시간으로 상기 엔드 이미지 데이터 라인들에 대한 상기 지연 필터링 동작을 수행하는 것을 특징으로 하는 이미지 신호 프로세서.
  4. 제2 항에 있어서,
    상기 라인 인터리빙 컨트롤러는,
    상기 지연 프로세싱 모듈들의 상기 지연 데이터 라인들의 개수들을 각각 나타내는 모듈 지연 사이즈들에 기초하여 상기 가상 데이터 라인들의 개수를 결정하는 것을 특징으로 하는 이미지 신호 프로세서.
  5. 제4 항에 있어서,
    각각의 지연 프로세싱 모듈은,
    수신된 상기 가상 데이터 라인들 중에서 상기 각각의 지연 프로세싱 모듈의 상기 모듈 지연 사이즈에 상응하는 개수의 상기 가상 데이터 라인들을 사용하여 상기 엔드 이미지 라인들에 대한 상기 지연 필터링 동작을 수행하고,
    상기 수신된 가상 데이터 라인들 중에서 상기 각각의 지연 프로세싱 모듈의 상기 지연 필터링 동작에 사용되지 않은 나머지 가상 데이터 라인들을 프로세싱 없이 그대로 출력하는 것을 특징으로 하는 이미지 신호 프로세서.
  6. 제4 항에 있어서,
    상기 이미지 신호 프로세서 코어는,
    하나 이상의 제1 지연 프로세싱 모듈들을 포함하는 제1 파이프라인 회로; 및
    상기 제1 파이프라인과 병렬로 연결되고, 하나 이상의 제2 지연 프로세싱 모듈들을 포함하는 제2 파이프라인 회로를 포함하고,
    상기 라인 인터리빙 컨트롤러는,
    상기 제1 지연 프로세싱 모듈들의 상기 모듈 지연 사이즈들의 합산 값을 나타내는 제1 파이프라인 지연 사이즈 및 상기 제2 지연 프로세싱 모듈들의 상기 모듈 지연 사이즈들의 합산 값을 나타내는 제2 파이프라인 지연 사이즈 중에서 큰 값에 해당하는 코어 지연 사이즈에 상응하는 개수의 상기 가상 데이터 라인들을 발생하여 출력하는 것을 특징으로 하는 이미지 신호 프로세서.
  7. 제6 항에 있어서,
    상기 이미지 신호 프로세서 코어는,
    상기 제1 파이프라인 회로의 출력 및 상기 제2 파이프라인 회로의 출력을 믹싱하여 출력하는 믹서를 더 포함하고,
    상기 제1 파이프라인 회로 및 상기 제2 파이프라인 회로 중 하나는,
    상기 제1 파이프라인 지연 사이즈 및 상기 제2 파이프라인 지연 사이즈가 동일하게 되도록, 수신되는 데이터 라인을 프로세싱 없이 지연하여 출력하는 지연 버퍼를 더 포함하는 것을 특징으로 하는 이미지 신호 프로세서.
  8. 제1 항에 있어서,
    상기 라인 인터리빙 컨트롤러는,
    제1 채널을 통하여 제1 이미지 프레임에 포함되는 복수의 제1 이미지 데이터 라인들을 수신하고 제2 채널을 통하여 제2 이미지 프레임에 포함되는 복수의 제2 이미지 데이터 라인들을 수신하고 상기 제1 이미지 프레임에 상응하는 하나 이상의 제1 가상 데이터 라인들 및 상기 제2 이미지 프레임에 상응하는 하나 이상의 제2 가상 데이터 라인들을 발생하여 상기 복수의 제1 이미지 데이터 라인들, 상기 복수의 제2 이미지 데이터 라인들, 상기 제1 가상 데이터 라인들 및 상기 제2 가상 데이터 라인들을 시간-분할 멀티플렉싱 방식으로 상기 이미지 신호 프로세서 코어로 전송하는 것을 특징으로 하는 이미지 신호 프로세서.
  9. 제8 항에 있어서,
    상기 라인 인터리빙 컨트롤러는,
    상기 복수의 제1 이미지 데이터 라인들, 상기 복수의 제2 이미지 데이터 라인들, 상기 제1 가상 데이터 라인들 및 상기 제2 가상 데이터 라인들을 하나의 스트림 신호로서 상기 이미지 신호 프로세서 코어로 전송하고,
    상기 라인 인터리빙 컨트롤러는,
    상기 이미지 신호 프로세서 코어가 상기 제1 이미지 프레임 또는 상기 제2 이미지 프레임의 상기 엔드 이미지 데이터 라인들에 대한 프로세싱을 수행하는 동안에도 중단 없이 상기 스트림 신호를 상기 이미지 신호 프로세서 코어로 전송하는 것을 특징으로 하는 이미지 신호 프로세서.
  10. 제1 채널을 통하여 수신되는 제1 이미지 프레임에 포함되는 복수의 제1 이미지 데이터 라인들 및 제2 채널을 통하여 수신되는 제2 이미지 프레임에 포함되는 복수의 제2 이미지 데이터 라인들을 버퍼링하여 상기 제1 이미지 데이터 라인들 및 상기 제2 이미지 데이터 라인들을 출력하는 버퍼 회로;
    상기 제1 이미지 프레임에 상응하는 하나 이상의 제1 가상 데이터 라인들 및 상기 제2 이미지 프레임에 상응하는 하나 이상의 제2 가상 데이터 라인들을 발생하는 가상 라인 발생기;
    상기 버퍼 회로의 출력 및 상기 가상 라인 발생기의 출력 중 하나를 선택하여 상기 스트림 신호를 출력하는 멀티플렉서; 및
    상기 버퍼 회로, 상기 가상 라인 발생기 및 상기 멀티플렉서의 동작을 제어하는 컨트롤 로직 회로를 포함하고,
    상기 제1 가상 데이터 라인들은 상기 제1 이미지 프레임의 끝 부분에 포함되는 하나 이상의 엔드 이미지 데이터 라인들의 프로세싱에 사용되고,
    상기 제2 가상 데이터 라인들은 상기 제2 이미지 프레임의 끝 부분에 포함되는 하나 이상의 엔드 이미지 데이터 라인들의 프로세싱에 사용되는 이미지 신호 프로세서의 라인 인터리빙 컨트롤러.
KR1020200067473A 2020-06-04 2020-06-04 라인 인터리빙 컨트롤러 및 이를 포함하는 이미지 신호 프로세서 KR20210150704A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200067473A KR20210150704A (ko) 2020-06-04 2020-06-04 라인 인터리빙 컨트롤러 및 이를 포함하는 이미지 신호 프로세서
US17/136,494 US11514552B2 (en) 2020-06-04 2020-12-29 Line interleaving controller, image signal processor and application processor including the same
CN202110366674.3A CN113784013A (zh) 2020-06-04 2021-04-06 行交织控制器、包括其的图像信号处理器和应用处理器
US18/059,607 US11869116B2 (en) 2020-06-04 2022-11-29 Line interleaving controller, image signal processor and application processor including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200067473A KR20210150704A (ko) 2020-06-04 2020-06-04 라인 인터리빙 컨트롤러 및 이를 포함하는 이미지 신호 프로세서

Publications (1)

Publication Number Publication Date
KR20210150704A true KR20210150704A (ko) 2021-12-13

Family

ID=78817707

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200067473A KR20210150704A (ko) 2020-06-04 2020-06-04 라인 인터리빙 컨트롤러 및 이를 포함하는 이미지 신호 프로세서

Country Status (3)

Country Link
US (2) US11514552B2 (ko)
KR (1) KR20210150704A (ko)
CN (1) CN113784013A (ko)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7362779B1 (en) * 2002-01-22 2008-04-22 Applied Micro Circuits Corporation Transmission of data frames as a plurality of subframes over a plurality of channels
JP4424088B2 (ja) 2004-06-25 2010-03-03 株式会社日立製作所 撮像装置
US20110242355A1 (en) 2010-04-05 2011-10-06 Qualcomm Incorporated Combining data from multiple image sensors
JP2013055541A (ja) 2011-09-05 2013-03-21 Ricoh Co Ltd 撮像装置
JP6123274B2 (ja) 2012-03-08 2017-05-10 株式会社リコー 撮像装置
JP6079031B2 (ja) 2012-08-01 2017-02-15 株式会社リコー 撮像装置
US9749548B2 (en) 2015-01-22 2017-08-29 Google Inc. Virtual linebuffers for image signal processors
KR102459917B1 (ko) * 2015-02-23 2022-10-27 삼성전자주식회사 이미지 신호 프로세서와 이를 포함하는 장치들
KR102557662B1 (ko) 2017-02-09 2023-07-19 삼성전자주식회사 이미지 처리 장치 및 이를 포함하는 전자 장치
US10747692B2 (en) * 2018-12-27 2020-08-18 Texas Instruments Incorporated Image processing accelerator

Also Published As

Publication number Publication date
US11869116B2 (en) 2024-01-09
US20210383498A1 (en) 2021-12-09
CN113784013A (zh) 2021-12-10
US11514552B2 (en) 2022-11-29
US20230088614A1 (en) 2023-03-23

Similar Documents

Publication Publication Date Title
US10282805B2 (en) Image signal processor and devices including the same
US7616207B1 (en) Graphics processing system including at least three bus devices
US6329996B1 (en) Method and apparatus for synchronizing graphics pipelines
US7649537B2 (en) Dynamic load balancing in multiple video processing unit (VPU) systems
KR101977453B1 (ko) 분할된 디스플레이를 구동하는 다수의 디스플레이 파이프라인들
JP4195655B2 (ja) バス相互接続システム
US8547453B2 (en) Image processing apparatus and camera system
US9438844B2 (en) Video multiviewer system using direct memory access (DMA) registers and block RAM
US6041417A (en) Method and apparatus for synchronizing data received in an accelerated graphics port of a graphics memory system
US6920510B2 (en) Time sharing a single port memory among a plurality of ports
US8139091B2 (en) Display system having resolution conversion
US5909562A (en) Backup FIFO in-line storage
KR20210150704A (ko) 라인 인터리빙 컨트롤러 및 이를 포함하는 이미지 신호 프로세서
US9003132B2 (en) Data processing apparatus and image processing apparatus
CZ20014649A3 (cs) Zařízení pro slučování pixelových dat a způsob pro něj
CN115002304A (zh) 一种视频图像分辨率自适应转换装置
US11245882B2 (en) Image slicing to generate input frames for a digital micromirror device
CN116456093B (zh) 一种基于Zynq的图像帧率可控模拟器和方法
GB2223335A (en) Improved data processing
JP2006171736A (ja) 画像表示装置及びその方法
KR100548249B1 (ko) 피디피의 화질 테스트 장치
JPH01114965A (ja) プロセッサアレイヘのコマンド転送方式及び回路
US20050088451A1 (en) Method for an image reducing processing circuit
GB2367732A (en) Bus interconnect system
WO2006134683A1 (ja) 信号処理装置

Legal Events

Date Code Title Description
A201 Request for examination