KR20220168742A - 인터럽트 제어를 수행하는 이미지 신호 프로세서 및 이미지 처리 시스템 - Google Patents

인터럽트 제어를 수행하는 이미지 신호 프로세서 및 이미지 처리 시스템 Download PDF

Info

Publication number
KR20220168742A
KR20220168742A KR1020210078615A KR20210078615A KR20220168742A KR 20220168742 A KR20220168742 A KR 20220168742A KR 1020210078615 A KR1020210078615 A KR 1020210078615A KR 20210078615 A KR20210078615 A KR 20210078615A KR 20220168742 A KR20220168742 A KR 20220168742A
Authority
KR
South Korea
Prior art keywords
interrupt
image
log
output
circuit
Prior art date
Application number
KR1020210078615A
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 KR1020210078615A priority Critical patent/KR20220168742A/ko
Priority to US17/669,731 priority patent/US11924537B2/en
Priority to TW111107646A priority patent/TW202301137A/zh
Publication of KR20220168742A publication Critical patent/KR20220168742A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0007Image acquisition
    • 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
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/50Control of the SSIS exposure
    • H04N25/57Control of the dynamic range
    • H04N25/58Control of the dynamic range involving two or more exposures
    • H04N25/581Control of the dynamic range involving two or more exposures acquired simultaneously
    • H04N25/585Control of the dynamic range involving two or more exposures acquired simultaneously with pixels having different sensitivities within the sensor, e.g. fast or slow pixels or pixels having different sizes
    • H04N5/23229
    • H04N5/35563

Landscapes

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

Abstract

이미지 신호 프로세서는, 코맨드 큐 회로, 이미지 처리 엔지 및 인터럽트 제어 회로를 포함한다. 상기 코맨드 큐 회로는 복수의 이미지 유닛들의 각각에 상응하는 인터럽트 제어 값을 포함하는 복수의 코맨드들을 컨트롤 프로세서로부터 수신하여 저장하고, 상기 복수의 코맨드들을 하나씩 순차적으로 제공한다. 상기 이미지 처리 엔진은 상기 복수의 이미지 유닛들을 포함하는 이미지 데이터를 수신하고, 상기 코맨드 큐 회로로부터 순차적으로 제공되는 상기 복수의 코맨드들에 기초하여 상기 복수의 이미지 유닛들에 대하여 순차적으로 이미지 처리를 수행한다. 상기 인터럽트 제어 회로는 상기 코맨드 큐 회로로부터 상기 인터럽트 제어 값을 수신하고, 상기 인터럽트 제어 값에 기초하여 복수의 인터럽트 이벤트 신호들 중에서 하나 이상의 출력 인터럽트 이벤트 신호들을 결정하고, 상기 출력 인터럽트 이벤트 신호들에 기초하여 인터럽트 신호를 생성한다.

Description

인터럽트 제어를 수행하는 이미지 신호 프로세서 및 이미지 처리 시스템{Image signal processor and image processing system performing interrupt control}
본 발명은 반도체 집적 회로에 관한 것으로서, 더욱 상세하게는 인터럽트 제어를 수행하는 이미지 신호 프로세서 및 이미지 처리 시스템에 관한 것이다.
카메라, 스마트 폰 등과 같은 촬상 장치(image capturing device)에 구비되는 이미지 신호 프로세서는, 이미지 센서로부터 제공되는 이미지 데이터의 데이터 형식을 RGB, YUV 등의 데이터 형식으로 변경하거나, 이미지 데이터의 노이즈를 제거하고, 밝기를 조정하는 등의 이미지 처리를 수행할 수 있다. 이미지 신호 프로세서는 이미지 센서로부터 출력되는 이미지 데이터를 프레임 단위로 처리할 수 있다. 최근, 촬상 장치가 슬로우 모션 모드, 슈퍼 슬로우 모션 모드 등 고속 프레임 레이트(high frame rate)로 이미지를 제공하는 동작 모드를 지원함에 따라 이미지 센서는 고속 프레임 속도로 이미지 데이터를 생성 및 출력할 수 있다. 따라서, 고속 프레임 레이트의 이미지 데이터를 효율적으로 이미지 처리할 수 있는 이미지 신호 프로세서가 요구된다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은, 효율적으로 인터럽트 제어를 수행할 수 있는 이미지 신호 프로세서를 제공하는 것이다.
또한 본 발명의 일 목적은, 효율적으로 인터럽트 제어를 수행할 수 있는 이미지 신호 프로세서를 포함하는 이미지 처리 시스템을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 이미지 신호 프로세서는, 코맨드 큐 회로, 이미지 처리 엔진 및 인터럽트 제어 회로를 포함한다.
상기 코맨드 큐 회로는 복수의 이미지 유닛들의 각각에 상응하는 인터럽트 제어 값을 포함하는 복수의 코맨드들을 컨트롤 프로세서로부터 수신하여 저장하고, 상기 복수의 코맨드들을 하나씩 순차적으로 제공한다.
상기 이미지 처리 엔진은 상기 복수의 이미지 유닛들을 포함하는 이미지 데이터를 수신하고, 상기 코맨드 큐 회로로부터 순차적으로 제공되는 상기 복수의 코맨드들에 기초하여 상기 복수의 이미지 유닛들에 대하여 순차적으로 이미지 처리를 수행한다.
상기 인터럽트 제어 회로는 상기 코맨드 큐 회로로부터 상기 인터럽트 제어 값을 수신하고, 상기 인터럽트 제어 값에 기초하여 복수의 인터럽트 이벤트 신호들 중에서 하나 이상의 출력 인터럽트 이벤트 신호들을 결정하고, 상기 출력 인터럽트 이벤트 신호들에 기초하여 인터럽트 신호를 생성한다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 이미지 처리 시스템은, 복수의 이미지 유닛들의 각각에 상응하는 인터럽트 제어 값을 포함하는 복수의 코맨드들을 생성하고 인터럽트 신호에 기초하여 인터럽트 서비스 루틴을 실행하는 컨트롤 프로세서 및 상기 복수의 이미지 유닛들에 대한 이미지 처리를 수행하고 상기 인터럽트 신호를 생성하는 이미지 신호 프로세서를 포함한다.
상기 이미지 신호 프로세서는, 상기 복수의 코맨드들을 컨트롤 프로세서로부터 수신하여 저장하고, 상기 복수의 코맨드들을 하나씩 순차적으로 제공하는 코맨드 큐 회로, 상기 복수의 코맨드들에 각각 상응하는 복수의 이미지 유닛들을 포함하는 이미지 데이터를 수신하고, 상기 코맨드 큐 회로로부터 순차적으로 제공되는 상기 복수의 코맨드들에 기초하여 상기 복수의 이미지 유닛들에 대하여 순차적으로 이미지 처리를 수행하는 이미지 처리 엔진 및 상기 코맨드 큐 회로로부터 상기 인터럽트 제어 값을 수신하고, 상기 인터럽트 제어 값에 기초하여 복수의 인터럽트 이벤트 신호들 중에서 하나 이상의 출력 인터럽트 이벤트 신호들을 결정하고, 상기 출력 인터럽트 이벤트 신호들에 기초하여 상기 인터럽트 신호를 생성하는 인터럽트 제어 회로를 포함한다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 이미지 신호 프로세서는, 코맨드 큐 회로, 이미지 처리 엔진 및 인터럽트 제어 회로를 포함한다.
상기 코맨드 큐 회로는 복수의 이미지 유닛들의 각각에 상응하는 인터럽트 제어 값 및 이미지 유닛 식별자를 포함하는 복수의 코맨드들을 컨트롤 프로세서로부터 수신하여 저장하고, 상기 복수의 코맨드들을 하나씩 순차적으로 제공한다.
상기 이미지 처리 엔진은 상기 복수의 이미지 유닛들을 포함하는 이미지 데이터를 수신하고, 상기 코맨드 큐 회로로부터 순차적으로 제공되는 상기 복수의 코맨드들에 기초하여 상기 복수의 이미지 유닛들에 대하여 순차적으로 이미지 처리를 수행한다.
상기 인터럽트 제어 회로는 상기 코맨드 큐 회로로부터 상기 인터럽트 제어 값 및 상기 이미지 유닛 식별자를 수신하고, 상기 인터럽트 제어 값에 기초하여 복수의 인터럽트 이벤트 신호들 중에서 하나 이상의 출력 인터럽트 이벤트 신호들 및 하나 이상의 로그 인터럽트 이벤트 신호들을 결정하고, 상기 출력 인터럽트 이벤트 신호들에 기초하여 인터럽트 신호를 생성하고, 상기 로그 인터럽트 이벤트 신호들에 기초하여 상기 복수의 이미지 유닛들의 각각의 이미지 유닛에 상응하는 상기 로그 인터럽트 이벤트 신호들의 활성화 여부 및 상기 각각의 이미지 유닛에 상응하는 상기 이미지 유닛 식별자를 포함하는 인터럽트 로그 정보를 저장한다.
본 발명의 실시예들에 따른 이미지 신호 프로세서 및 이미지 처리 시스템은 코맨드 큐 회로에 복수의 이미지 유닛들에 상응하는 복수의 코맨드들을 미리 저장하고 저장된 코맨드들에 기초하여 이미지 처리를 수행함으로써 이미지 신호 프로세서 및 컨트롤 프로세서 사이의 통신을 효율적으로 수행하고 이미지 신호 프로세서 및 이를 포함하는 이미지 처리 시스템의 동작 속도 및 동작 효율을 향상시킬 수 있다.
또한, 본 발명의 실시예들에 따른 이미지 신호 프로세서 및 이미지 처리 시스템은 코맨드에 포함되는 인터럽트 제어 값에 기초하여 이미지 처리가 수행되는 각각의 이미지 유닛에 대하여 인터럽트 신호의 생성 조건을 결정함으로써 이미지 신호 프로세서 및 이를 포함하는 이미지 처리 시스템의 동작 속도 및 동작 효율을 향상시킬 수 있다.
또한, 본 발명의 실시예들에 따른 이미지 신호 프로세서 및 이미지 처리 시스템은 코맨드에 포함되는 인터럽트 제어 값에 기초하여 모니터링의 대상이 되는 로그 인터럽트 이벤트 신호들을 결정하고 코맨드에 포함되는 이미지 유닛 식별자를 포함하도록 인터럽트 로그 정보를 저장함으로써 에러 발생시 복구 절차를 효율적으로 수행할 수 있다.
도 1은 본 발명의 실시예들에 따른 시스템을 나타내는 블록도이다.
도 2는 본 발명의 실시예들에 따른 이미지 신호 프로세서를 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따른 이미지 신호 프로세서의 인터럽트 제어 방법을 나타내는 순서도이다.
도 4는 본 발명의 실시예들에 따른 이미지 신호 프로세서가 수신하는 코맨드의 일 실시예를 나타내는 도면이다.
도 5는 본 발명의 실시예들에 따른 이미지 신호 프로세서의 이미지 유닛을 설명하기 위한 도면이다.
도 6은 본 발명의 실시예들에 따른 이미지 신호 프로세서에 포함되는 인터럽트 제어 회로의 일 실시예를 나타내는 블록도이다.
도 7은 도 6의 인터럽트 제어 회로에 포함되는 출력 인터럽트 제어 회로의 일 실시예를 나타내는 도면이다.
도 8은 도 6의 인터럽트 제어 회로에 포함되는 로그 인터럽트 제어 회로의 일 실시예를 나타내는 도면이다.
도 9는 본 발명의 실시예들에 따른 이미지 처리 시스템의 동작의 일 실시예를 나타내는 타이밍도이다.
도 10은 도 9의 동작에 따른 인터럽트 로그 정보를 나타내는 도면이다.
도 11은 본 발명의 실시예들에 따른 이미지 처리 시스템의 동작의 일 실시예를 나타내는 타이밍도이다.
도 12는 도 11의 동작에 따른 인터럽트 로그 정보를 나타내는 도면이다.
도 13은 도 6의 인터럽트 제어 회로에 포함되는 코맨드 큐 회로의 일 실시예를 나타내는 도면이다.
도 14는 본 발명의 실시예들에 따른 이미지 처리 시스템의 동작의 일 실시예를 나타내는 타이밍도이다.
도 15는 도 14의 동작에 따른 인터럽트 로그 정보를 나타내는 도면이다.
도 16은 본 발명의 실시예들에 따른 이미지 신호 프로세서를 나타내는 블록도이다.
도 17 및 18은 본 발명의 실시예들에 따른 이미지 처리 시스템을 나타내는 블록도들이다.
도 19는 본 발명의 실시예들에 따른 시스템을 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 시스템을 나타내는 블록도이다.
도 1의 시스템(1000)은 이미지를 촬영하고, 촬영된 이미지를 디스플레이하거나 또는 촬영된 이미지 기반의 동작을 수행하는 전자 장치로 구현될 수 있다. 시스템(1000)은 예를 들어, PC(personal computer), IoT (Internet of Things) 장치, 또는 휴대용 전자 장치로 구현될 수 있다. 휴대용 전자 장치는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등을 포함할 수 있다. 또한, 시스템(1000)은 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 전자 기기 또는 차량, 가구, 제조 설비, 도어, 각종 계측 기기 등에 부품으로서 구비되는 전자 기기에 탑재될 수 있다.
도 1을 참조하면, 시스템(1000)은 이미지 센서(1100) 및 이미지 처리 시스템(1200)을 포함할 수 있다. 시스템(1000)은 디스플레이, 유저 인터페이스 등의 다른 구성들을 더 포함할 수 있다. 이미지 처리 시스템(1200)은 이미지 신호 프로세서(100), 컨트롤 프로세서(200) 및 메모리 장치(300)를 포함할 수 있다. 이미지 신호 프로세서(100), 컨트롤 프로세서(200) 및 메모리 장치(300)는 단일 또는 복수개의 반도체 칩으로 구현될 수 있다. 예를 들어, 이미지 신호 프로세서(100) 및 컨트롤 프로세서(200)는 하나의 반도체 칩에 집적될 수 있다.
이미지 센서(1100)는 광학 렌즈(LS)를 통하여 입사된 피사체(Object)의 광학적 신호를 전기적 신호로 변환하고, 전기적 신호들을 기초로 이미지 데이터(IDT)를 생성하여 출력할 수 있다. 이미지 센서(1100)는 예를 들어, 2차원적으로 배열된 복수의 픽셀들을 포함하는 픽셀 어레이 및 리드아웃 회로를 포함할 수 있으며, 픽셀 어레이는 수신되는 광 신호들을 전기적 신호들로 변환할 수 있다. 픽셀 어레이는 예를 들면, CCD(Charge Coupled Devices) 또는 CMOS(Complementary Metal Oxide Semiconductor) 등의 광전 변환 소자로 구현될 수 있으며 이외에도 다양한 종류의 광전 변환 소자로 구현될 수 있다. 리드아웃 회로는 픽셀 어레이로부터 제공되는 전기적 신호를 기초로 로우 데이터(Raw data)를 생성하고, 로우 데이터 또는 배드 픽셀 제거 등의 전처리가 수행된 로우 데이터를 이미지 데이터(IDT)로서 출력할 수 있다. 이미지 센서(1100)는 픽셀 어레이 및 리드아웃 회로를 포함하는 반도체 칩 또는 패키지로서 구현될 수 있다.
이미지 신호 프로세서(100)는 이미지 센서(1100)으로부터 제공되는 이미지데이터(IDT)에 대하여 이미지 처리(image processing)를 수행할 수 있다. 예를 들어, 이미지 신호 프로세서(100)는 이미지 데이터(IDT)에 대하여 데이터 형식을 변경하는 이미지 처리(예컨대 베이어 패턴의 이미지 데이터를 YUV 또는 RGB 형식으로 변경), 노이즈 제거, 밝기 조정, 선명도(sharpness) 조정 등의 화질 향상을 위한 이미지 처리 등을 포함할 수 있다. 이미지 신호 프로세서(100)는 이미지 처리 시스템(1200)의 하드웨어를 구성할 수 있다.
이미지 신호 프로세서(100)는 이미지 신호 처리 코어(110)(ISP 코어), 코맨드 큐 회로(CQC)(400) 및 인터럽트 제어 회로(ICC)(500)를 포함할 수 있다.
ISP 코어(110)는 이미지 처리 엔진으로 지칭될 수 있다. 이미지 처리 엔진(110)은 이미지 센서(1100)로부터 출력되는 이미지 데이터(IDT)에 대하여 이미지 유닛의 단위로 이미지 처리를 수행할 수 있다. 도 5를 참조하여 후술하는 바와 같이, 이미지 유닛(image unit)은 이미지 프레임(image frame), 이미지 스트립(image strip) 또는 이미지 타일(image tile)일 수 있다. 이하에서는, 이미지 유닛 중에서 이미지 프레임을 중심으로 본 발명의 실시예들을 설명하지만, 이미지 프레임과 다른 임의의 이미지 유닛에 대해서도 본 발명의 실시예들이 적용될 수 있음을 이해할 수 있을 것이다. 이미지 프레임은 간략히 프레임으로 지칭될 수 있다.
이미지 처리에 의하여 생성되는 프로세싱 데이터(PDT), 예컨대 이미지 처리된 프레임(이하, 변환된 이미지 데이터) 및/또는 이미지 처리에 따라 생성되는 결과 데이터(통계 데이터, 히스토그램 등)는 메모리 장치(300)에 저장될 수 있다.
코맨드 큐 회로(400)는 복수의 이미지 유닛들의 각각에 상응하는 인터럽트 제어 값을 포함하는 복수의 코맨드들(CMD)을 컨트롤 프로세서(200)로부터 수신하여 저장하고, 상기 복수의 코맨드들을 하나씩 순차적으로 제공할 수 있다. 일 실시예에서, 도 13을 참조하여 후술하는 바와 같이, 코맨드 큐 회로(400)는 코맨드들의 우선순위에 따라서 코맨드들의 제공 순서를 결정할 수 있다. 이미지 처리 엔진(110)은 상기 복수의 이미지 유닛들을 포함하는 이미지 데이터(IDT)를 수신하고, 코맨드 큐 회로(400)로부터 순차적으로 제공되는 상기 복수의 코맨드들에 기초하여 상기 복수의 이미지 유닛들에 대하여 순차적으로 이미지 처리를 수행할 수 있다.
이와 같이, 본 발명의 실시예들에 따른 이미지 신호 프로세서(100) 및 이미지 신호 프로세서(100)를 포함하는 이미지 처리 시스템(1200)은 코맨드 큐 회로(400)에 복수의 이미지 유닛들에 상응하는 복수의 코맨드들을 저장하고 저장된 코맨드들에 기초하여 이미지 처리를 수행함으로써 이미지 신호 프로세서(100) 및 컨트롤 프로세서(200) 사이의 통신을 효율적으로 수행하고 이미지 신호 프로세서(100) 및 이미지 신호 프로세서(100)를 포함하는 이미지 처리 시스템(1200)의 동작 속도 및 동작 효율을 향상시킬 수 있다.
인터럽트 제어 회로(500)는 코맨드 큐 회로(400)로부터 상기 인터럽트 제어 값을 수신하고, 상기 인터럽트 제어 값에 기초하여 복수의 인터럽트 이벤트 신호들 중에서 하나 이상의 출력 인터럽트 이벤트 신호들을 결정할 수 있다. 인터럽트 제어 회로(500)는 상기 출력 인터럽트 이벤트 신호들에 기초하여 인터럽트 신호(INT)를 생성할 수 있다. 인터럽트 제어 회로(500)의 구성 및 동작의 실시예들은 도 6 내지 14를 참조하여 더욱 상세하게 후술한다.
컨트롤 프로세서(200)는 이미지 신호 프로세서(100)가 이미지 처리를 수행하도록 제어할 수 있다. 컨트롤 프로세서(200)는 이미지 처리 시스템(1200)의 소프트웨어를 구성할 수 있다. 컨트롤 프로세서(200)는 CPU(Central Processing Unit), 마이크로 프로세서, ARM 프로세서, X86 프로세서, MIPS(Microprocessor without Interlocked Pipeline Stages) 프로세서, 그래픽 처리 유닛(GPU), 범용 GPU, 또는 메모리에 저장된 프로그램 명령어들을 실행하도록 구성된 어떤 다른 프로세서일 수 있다. 컨트롤 프로세서(200)는 이미지 신호 프로세서(100)의 실행 알고리즘을 포함하는 명령어 코드(또는 프로그램들) 및 데이터를 처리 또는 실행함으로써, 컨트롤 프로세서(200)를 제어하는 제어 신호(CONS)를 생성할 수 있다.
제어 신호(CONS)는 코맨드(CMD)를 포함하는 것으로 간주될 수도 있고 코맨드(CMD)와 구별되는 신호로 간주될 수도 있다. 제어 신호(CONS)는 코맨드(CMD) 이외에도 이미지 처리를 위한 화질, 프로세싱 데이터(PDT)가 저장되는 메모리 장치(300)의 어드레스, 이미지 신호 프로세서(300)의 동작을 위한 설정 값, 동작 타이밍 등을 제어하기 위한 다양한 정보 또는 신호들을 포함할 수 있다. 일부의 정보, 예를 들어, 화질 및/또는 저장 어드레스에 관한 정보는 코맨드(CMD)에 포함될 수 있다.
컨트롤 프로세서(200)는 이미지 데이터(IDT)에 포함되는 이미지 유닛이 이미지 처리 엔진(110)에 입력되기 전에 상응하는 코맨드(CMD)를 이미지 센서(100)로 전송하고, 코맨드 큐 회로(400)는 수신된 코맨드(CMD)를 저장할 수 있다. 컨트롤 프로세서(200)는 이미지 센서(100)로부터 수신되는 인터럽트 신호(INT)에 기초하여 인터럽트 서비스 루틴(ISR)을 실행할 수 있다.
메모리 장치(300)는 이미지 신호 프로세서(100)로부터 수신되는 프로세싱 데이터(PDT)를 저장하고, 프로세싱 데이터(PDT)를 이미지 신호 프로세서(100) 또는 컨트롤 프로세서(200)나 시스템(1000)의 다른 구성들에 제공할 수 있다.
메모리 장치(300)는 휘발성 메모리 또는 비휘발성 메모리로 구현될 수 있다. 휘발성 메모리는 DRAM(Dynamic Random Access Memory), SRAM(Static RAM) 등을 포함할 수 있으며, 휘발성 메모리는 ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM) 등을 포함할 수 있다.
도 2는 본 발명의 실시예들에 따른 이미지 신호 프로세서를 나타내는 블록도이다. 도 2는 도 1의 이미지 신호 프로세서(100)를 상세하게 나타내고, 도 2에는 컨트롤 프로세서(200) 및 메모리 장치(300)가 함께 도시되어 있다.
도 2를 참조하면, 이미지 신호 프로세서(100)는 이미지 처리 엔진(110), 코맨드 큐 회로(400), 인터럽트 제어 회로(500) 및 DMA 컨트롤러(130)를 포함할 수 있다. 이미지 처리 엔진(110)은 컨트롤러(111) 및 복수의 IP(intellectual property) 블록들(112)을 포함할 수 있다. 도 2에서, 복수의 IP 블록들(112)은 제1 내지 제3 IP 블록들(11, 12, 13)을 포함하는 것으로 도시되었으나, 이에 제한되는 것은 아니며, 복수의 IP 블록들(112)은 두 개 이상의 IP 블록들을 포함할 수 있다.
컨트롤러(111)는 컨트롤 프로세서(200)로부터 제어 신호(CONS)를 수신하고, 제어 신호(CONS)를 기초로 이미지 신호 프로세서(100)의 전반적인 동작을 제어할 수 있다. 전술한 바와 같이, 제어 신호(CONS)는 코맨드(CMD) 및 다양한 설정 정보를 포함할 수 있으며, 컨트롤러(111)는 상기 설정 정보를 각 이미지 유닛(예를 들어, 이미지 프레임)에 대하여 이미지 처리가 수행될 때 복수의 IP 블록들(112) 또는 DMA 컨트롤러(130)에 제공할 수 있다.
복수의 IP 블록들(112)의 각각, 즉 제1 내지 제3 IP 블록들(11, 12, 13)은 이미지 처리 블록으로서 설정된 이미지 처리를 수행할 수 있으며, 제1 내지 제3 IP 블록들(11, 12, 13)은 서로 다른 이미지 처리를 수행할 수 있다. 비제한적인 예로서, 제1 IP 블록(11)은 이미지 데이터(IDT)의 데이터 형식을 변경하고, 제2 IP 블록(12)은 밝기를 조정하고, 제3 IP 블록(13)은 콘트라스트를 조정할 수 있다. 제1 내지 제3 IP 블록들(11, 12, 13)은 프레임에 대하여 순차적으로 이미지 처리를 수행할 수 있다. 제1 내지 제3 IP 블록들(11, 12, 13) 각각의 이미지 처리에 따른 결과 데이터 및/또는 이미지 처리가 완료된 프레임, 예컨대 변환된 이미지 데이터는 메모리 장치(300)에 저장될 수 있다. 복수의 IP블록들(112)은 처리되는 프레임에 대응하는 설정값을 컨트롤러(111) 및/또는 코맨드 큐 회로(400)로부터 수신하고, 설정값을 기초로 프레임에 대하여 해당 이미지 처리를 수행할 수 있다.
DMA 컨트롤러(130)는 제1 내지 제3 IP 블록들(11, 12, 13) 중 적어도 하나의 IP 블록으로부터 수신되는 프로세싱 데이터(PDT)를 메모리 장치(300)에 저장할 수 있다. 프로세싱 데이터(PDT)는 이미지 처리에 따른 결과 데이터 및/또는 변환된 이미지 데이터를 포함할 수 있다. 이 때, DMA 컨트롤러(130)는 컨트롤러(111) 및/또는 코맨드 큐 회로(400)로부터 어드레스(또는 어드레스 레지스터 값)를 수신하고, 메모리 장치(300) 상에서 어드레스에 대응하는 저장 영역에 프로세싱 데이터(PDT)를 저장할 수 있다.
코맨드 큐 회로(400)는 복수의 이미지 유닛들의 각각에 상응하는 인터럽트 제어 값을 포함하는 복수의 코맨드들(CMD)을 컨트롤 프로세서(200)로부터 수신하여 저장하고, 상기 복수의 코맨드들을 하나씩 순차적으로 제공할 수 있다. 이미지 처리 엔진(110)은 상기 복수의 이미지 유닛들을 포함하는 이미지 데이터(IDT)를 수신하고, 코맨드 큐 회로(400)로부터 순차적으로 제공되는 상기 복수의 코맨드들에 기초하여 상기 복수의 이미지 유닛들에 대하여 순차적으로 이미지 처리를 수행할 수 있다.
인터럽트 제어 회로(500)는 코맨드 큐 회로(400)로부터 각각의 이미지 유닛에 상응하는 인터럽트 제어 값 및 이미지 유닛 식별자를 수신할 수 있다.
예를 들어, 제1 프레임에 대한 이미지 처리가 수행될 때, 코맨드 큐 회로(400)는 상기 제1 프레임에 상응하는 제1 코맨드에 포함되는 인터럽트 제어 값 및 이미지 유닛 식별자를 추출하여 인터럽트 제어 회로(500)에 제공할 수 있다. 이후, 제2 프레임에 대한 이미지 처리가 수행될 때, 코맨드 큐 회로(400)는 상기 제2 프레임에 상응하는 제2 코맨드에 포함되는 인터럽트 제어 값 및 이미지 유닛 식별자를 추출하여 인터럽트 제어 회로(500)에 제공할 수 있다.
인터럽트 제어 회로(500)는 상기 인터럽트 제어 값에 기초하여 복수의 인터럽트 이벤트 신호들 중에서 하나 이상의 출력 인터럽트 이벤트 신호들을 결정할 수 있다. 인터럽트 제어 회로(500)는 상기 출력 인터럽트 이벤트 신호들에 기초하여 인터럽트 신호(INT)를 생성할 수 있다. 또한, 인터럽트 제어 회로(500)는 상기 인터럽트 제어 값 및 상기 이미지 유닛 식별자에 기초하여 인터럽트 로그 정보를 생성하여 저장할 있다. 인터럽트 제어 회로(500)의 구성 및 동작의 실시예들은 도 6 내지 14를 참조하여 더욱 상세하게 후술한다.
도 3은 본 발명의 실시예들에 따른 이미지 신호 프로세서의 인터럽트 제어 방법을 나타내는 순서도이다.
도 1 내지 3을 참조하면, 이미지 신호 프로세서(100)에 포함되는 코맨드 큐 회로(400)는 복수의 이미지 유닛들의 각각에 상응하는 인터럽트 제어 값을 포함하는 복수의 코맨드들(CMD)을 컨트롤 프로세서(200)로부터 수신하여 저장할 수 있다(S100).
이미지 신호 프로세서(100)에 포함되는 이미지 처리 엔진(110)은 코맨드 큐 회로(400)로부터 순차적으로 제공되는 복수의 코맨드들(CMD)에 기초하여 상기 복수의 이미지 유닛들에 대하여 순차적으로 이미지 처리를 수행할 수 있다(S200).
인터럽트 제어 회로(500)는 상기 인터럽트 제어 값에 기초하여 복수의 인터럽트 이벤트 신호들 중에서 하나 이상의 출력 인터럽트 이벤트 신호들 및 하나 이상의 로그 인터럽트 이벤트 신호들을 결정할 수 있다(S300).
인터럽트 제어 회로(500)는 상기 출력 인터럽트 이벤트 신호들에 기초하여 인터럽트 신호(INT)를 생성할 수 있다(S400).
또한, 인터럽트 제어 회로(500)는 상기 로그 인터럽트 이벤트 신호들의 활성화 여부에 대한 인터럽트 로그 정보를 저장할 수 있다(S500).
상기 출력 인터럽트 이벤트 신호들 및 상기 로그 인터럽트 이벤트 신호들을 결정 방법, 인터럽트 신호(INT)의 생성 방법 및 상기 인터럽트 로그 정보의 저장 방법에 대한 실시예들은 도 6 내지 14를 참조하여 후술한다.
도 4는 본 발명의 실시예들에 따른 이미지 신호 프로세서가 수신하는 코맨드의 일 실시예를 나타내는 도면이다.
도 4를 참조하면, 컨트롤 프로세서(200)로부터 이미지 신호 프로세서(100)로 전송되는 코맨드(CMD)는 적어도 인터럽트 제어 값(ICV) 및 이미지 유닛 식별자(UID)를 포함할 수 있다. 인터럽트 제어 값(ICV) 및 이미지 유닛 식별자(UID)는 각각 복수의 비트들을 포함할 수 있다.
도 4에는 본 발명의 실시예들을 설명하기 위한 정보만이 도시되어 있다. 코맨드(CMD)에는 상응하는 이미지 유닛에 대한 다양한 정보들이 포함될 수 있다. 컨트롤 프로세서(200)는 코맨드(CMD)를 복수의 필드들을 포함하는 패킷의 형태로 이미지 신호 프로세서(100)로 전송할 수 있다. 이미지 신호 프로세서(100)는 수신된 패킷 형태의 코맨드(CMD)를 파싱(parsing)하여 가공된 형태의 코맨드를 코맨드 큐 회로(400)에 저장할 수 있다.
도 5는 본 발명의 실시예들에 따른 이미지 신호 프로세서의 이미지 유닛을 설명하기 위한 도면이다.
도 5를 참조하면, 이미지 프레임(IFM)은 복수의 행들 및 복수의 열들의 매트릭스 형태로 배열되는 복수의 픽셀 데이터들을 포함할 수 있다. 도 1의 이미지 센서(1100)는 이미지 프레임(IFM) 단위로 이미지 데이터(IDT)를 이미지 신호 프로세서(100)에 제공할 수 있다.
이미지 신호 프로세서(100)는 이미지 프레임(IFM)을 이미지 프레임(IFM), 이미지 스트립(ISTR) 또는 이미지 타일(ITL) 단위로 이미지 처리를 수행할 수 있다. 즉 본 개시에서 지칭된 "이미지 유닛"은 도 5에 도시된 바와 같은 이미지 프레임(IFR), 이미지 스트립(ISTR) 또는 이미지 타일(ITL)에 해당할 수 있다.
도 1에 도시되지는 않았으나, 이미지 신호 프로세서(100)는 이미지 프레임(IFM)을 버퍼링하기 위한 프레임 버퍼를 포함할 수 있고, 상기 프레임 버퍼로부터 순차적으로 제공되는 복수의 이미지 유닛들을 순차적으로 처리할 수 있다.
도 6은 본 발명의 실시예들에 따른 이미지 신호 프로세서에 포함되는 인터럽트 제어 회로의 일 실시예를 나타내는 블록도이다.
도 6을 참조하면, 인터럽트 제어 회로(500)는 결정 비트 생성기(600), 출력 인터럽트 제어 회로(OICC)(700) 및 로그 인터럽트 제어 회로(LICC)(800)를 포함할 수 있다.
결정 비트 생성기(600)는 출력 결정 비트 생성기(ODBG)(610) 및 로그 결정 비트 생성기(LDBG)(620)를 포함할 수 있다.
출력 결정 비트 생성기(610)는 인터럽트 제어 값(ICV)에 기초하여 복수의 인터럽트 이벤트 신호들(IEV) 중에서 출력 인터럽트 이벤트 신호들을 결정하기 위한 복수의 출력 결정 비트들(ODB)을 생성할 수 있다.
로그 결정 비트 생성기(620)는 인터럽트 제어 값(ICV)에 기초하여 복수의 인터럽트 이벤트 신호들(IEV) 중에서 로그 인터럽트 이벤트 신호들을 결정하기 위한 복수의 로그 결정 비트들(LDB)을 생성할 수 있다.
예를 들어, 각각의 코맨드(CMD)에 포함되는 인터럽트 제어 값(ICV)은 p개의 비트들을 포함할 수 있고, 복수의 인터럽트 이벤트 신호들(IEV)은 n개일 수 있다. 출력 결정 비트 생성기(610)는 인터럽트 제어 값(ICV)의 p개의 비트들 중에서 q개의 비트들에 기초하여 n비트의 출력 결정 비트들(ODB)을 생성할 수 있다. 로그 결정 비트 생성기(620)는 인터럽트 제어 값(ICV)의 p개의 비트들 중에서 r개의 비트들에 기초하여 n비트의 로그 결정 비트들(LDB)을 생성할 수 있다. n비트의 출력 결정 비트들(ODB) 및 n비트의 로그 결정 비트들(LDB)은 n개의 인터럽트 이벤트 신호들(IEV)에 일대일로 대응될 수 있다. 출력 결정 비트들(ODB)의 각 비트 값(0 또는 1)은 상응하는 인터럽트 이벤트 신호가 출력 인터럽트 이벤트 신호인지 아닌지를 나타낼 수 있고, 로그 결정 비트들(LDB)의 각 비트 값(0 또는 1)은 상응하는 인터럽트 이벤트 신호가 로그 인터럽트 이벤트 신호인지 아닌지를 나타낼 수 있다.
일 실시예에서, 상기 q개의 비트들 및 상기 r개의 비트들은 인터럽트 제어 값(ICV)의 p개의 비트들을 2개의 그룹으로 분할한 비트들일 수도 있다, 즉 p는 q+r과 동일할 수 있다. 다른 실시예에서, 상기 q개의 비트들 및 상기 r개의 비트들의 일부는 중복될 수도 있다. 즉 q+r은 p보다 클 수 있다.
일 실시예에서, 로그 결정 비트 생성기(620)는 인터럽트 제어 값(ICV)의 r개의 비트들 및 s개의 비트들을 포함하는 외부 인터럽트 제어 값(EICV)에 기초하여 복수의 로그 결정 비트들(LDB)을 생성할 수 있다. 외부 인터럽트 제어 값(EICV)은 코맨드(CMD)에 포함되지 않고 컨트롤 프로세서(200)로부터 실시간으로 제공되는 값일 수 있다.
전술한 바와 같이, 각각의 코맨드(CMD)는 상응하는 이미지 유닛에 해당하는 인터럽트 제어 값(ICV) 및 이미지 유닛 식별자(UID)를 포함한다. 따라서, 결정 비트 생성기(600)는 각각의 코맨드에 포함되는 인터럽트 제어 값(ICV)에 기초하여 이미지 처리가 수행되는 각각의 이미지 유닛에 대하여 복수의 출력 결정 비트들(ODB) 및 복수의 로그 결정 비트들(LDB)을 생성할 수 있다. 다시 말해, 결정 비트 생성기(600)는 각각의 코맨드에 포함되는 인터럽트 제어 값(ICV)에 기초하여 이미지 처리가 수행되는 각각의 이미지 유닛에 대하여 출력 인터럽트 이벤트 신호들 및 로그 인터럽트 이벤트 신호들을 결정할 수 있다.
일 실시예에서, 로그 결정 비트 생성기(620)는 복수의 인터럽트 이벤트 신호들(IEV) 중 적어도 일부를 수신할 수 있다. 로그 결정 비트 생성기(620)는 수신되는 인터럽트 이벤트 신호들의 활성화에 기초하여 상응하는 이미지에 대한 이미지 처리가 수행되는 도중에 로그 결정 비트들(LDB)의 값들을 변경할 수 있다.
도 7을 참조하여 후술하는 바와 같이, 출력 인터럽트 제어 회로(700)는 복수의 인터럽트 이벤트 신호들(IEV) 및 복수의 출력 결정 비트들(ODB)에 기초하여 인터럽트 신호(INT)를 생성할 수 있다. 도 8을 참조하여 후술하는 바와 같이, 로그 인터럽트 제어 회로(800)는 복수의 인터럽트 이벤트 신호들(IEV) 및 복수의 로그 결정 비트들(LDB)에 기초하여 로그 인터럽트 이벤트 신호들의 활성화 여부를 나타내는 인터럽트 로그 정보(ILINF)를 저장할 수 있다. 일 실시예에서, 로그 결정 비트 생성기(620)는 수신되는 인터럽트 이벤트 신호들의 활성화에 기초하여 인터럽트 로그 정보(ILINF)의 저장을 제어할 수 있다.
도 7은 도 6의 인터럽트 제어 회로에 포함되는 출력 인터럽트 제어 회로의 일 실시예를 나타내는 도면이다.
도 7을 참조하면, 출력 인터럽트 제어 회로(700)는 출력 인터럽트 축적 회로(720) 및 인터럽트 생성기(740)를 포함할 수 있다.
출력 인터럽트 제어 회로(700)는 복수의 인터럽트 이벤트 신호들(ODB), 즉, 제1 내지 제n 인터럽트 이벤트 신호들(IEV0~IEVn) 및 복수의 출력 결정 비트들, 즉 제1 내지 제n 출력 결정 비트들(A0~An-1)에 기초하여 출력 인터럽트 이벤트 신호들의 활성화 여부를 나타내는 복수의 출력 상태 비트들, 즉 제1 내지 제n 출력 상태 비트들(B0~Bn-1)을 생성할 수 있다. 인터럽트 생성기(740)는 제1 내지 제n 출력 상태 비트들(B0~Bn-1)에 기초하여 인터럽트 신호(INT)를 생성할 수 있다.
출력 인터럽트 축적 회로(720)는, 출력 결정 레지스터 회로(721), 출력 비교 회로(722) 및 출력 상태 레지스터 회로(723)를 포함할 수 있다.
출력 결정 레지스터 회로(721)는 도 6의 결정 비트 생성기(600)로부터 제공되는 제1 내지 제n 출력 결정 비트들(A0~An-1)을 저장할 수 있다. 출력 비교 회로(722)는 출력 결정 레지스터 회로(721)에 저장된 제1 내지 제n 출력 결정 비트들(A0~An-1)의 각각 및 제1 내지 제n 인터럽트 이벤트 신호들(IEV0~IEVn-1)의 각각을 비교하여 제1 내지 제n 출력 상태 비트들(B0~Bn-1)을 생성할 수 있다. 출력 상태 레지스터 회로(723)는 제1 내지 제n 출력 상태 비트들(B0~Bn-1)을 저장할 수 있다. 출력 상태 레지스터 회로(723)는 컨트롤 프로세서(200)로부터 제공되는 외부 리셋 신호(ECLR)에 기초하여 초기화될 수 있다.
일 실시예에서, 인터럽트 생성기(740)는 컨트롤 프로세서(200)로부터 인터럽트 인에이블 값을 수신할 수 있다. 예를 들어, 인터럽트 인에이블 값은 복수의 인터럽트 인에이블 비트들(IEB), 즉 제1 내지 제n 인터럽트 인에이블 비트들(C0~Cn-1)에 해당할 수 있다.
인터럽트 생성기(740)는 제1 내지 제n 인터럽트 인에이블 비트들(C0~Cn-1)에 기초하여 상기 출력 인터럽트 이벤트 신호들 중에서 하나 이상의 인에이블 인터럽트 이벤트 신호들을 결정하고, 상기 인에이블 인터럽트 이벤트 신호들에 기초하여 인터럽트 신호(INT)를 생성할 수 있다.
일 실시예에서, 인터럽트 생성기(740)는 인에이블 레지스터 회로(741) 및 인에이블 비교 회로(742)를 포함할 수 있다.
인에이블 레지스터 회로(741)는 컨트롤 프로세서(200)로부터 제공되는 제1 내지 제n 인터럽트 인에이블 비트들(C0~Cn-1)을 저장할 수 있다. 인에이블 비교 회로(742)는 제1 내지 제n 출력 상태 비트들(B0~Bn-1)의 각각 및 제1 내지 제n 인터럽트 인에이블 비트들(C0~Cn-1)의 각각을 비교하여 인터럽트 신호(INT)를 생성할 수 있다.
도 7에 도시된 바와 같이, 일 실시예에서 출력 비교 회로(722)는 n개의 논리곱(AND) 게이트들로 구현될 수 있다. 이 경우, 제1 내지 제n 출력 결정 비트들(A0~An-1) 중에서 출력 인터럽트 이벤트 신호들에 상응하는 출력 결정 비트들을 1의 값으로 설정하고 나머지 비트들을 0의 값으로 설정할 수 있다. 출력 결정 비트가 1의 값에 해당하는 인터럽트 이벤트 신호는 출력 인터럽트 이벤트 신호에 해당할 수 있다. 출력 결정 비트가 0의 값에 해당하는 논리곱 게이트는 상응하는 인터럽트 이벤트 신호의 논리 레벨(즉 활성화 여부)에 관계 없이 0의 값을 출력한다. 즉, 0의 값에 해당하는 논리곱 게이트는 상응하는 인터럽트 이벤트 신호를 마스킹하는 역할을 수행할 수 있다. 이 경우, 제1 내지 제n 출력 상태 비트들(C0~Cn-1)은 외부 리셋 신호(ECLR)가 활성화되는 경우 모두 0의 값을 갖도록 초기화될 수 있다.
한편, 도 7에 도시된 바와 같이, 일 실시예에서 인에이블 비교 회로(742)는 n개의 논리곱(AND) 게이트들 및 1개의 논리합(OR) 게이트로 구현될 수 있다. 이 경우, 제1 내지 제n 인에이블 결정 비트들(C0~Cn-1) 중에서 인에이블 인터럽트 이벤트 신호들에 상응하는 출력 결정 비트들을 1의 값으로 설정하고 나머지 비트들을 0의 값으로 설정할 수 있다. 이 경우, 인에이블 결정 비트가 0의 값에 해당하는 논리곱 게이트는 상응하는 출력 상태 비트의 값에 관계 없이 0의 값을 출력한다. 즉, 0의 값에 해당하는 논리곱 게이트는 상응하는 인터럽트 이벤트 신호를 마스킹하는 역할을 수행할 수 있다.
결과적으로, 도 7의 출력 인터럽트 제어 회로(700)는 제1 내지 제n 인터럽트 이벤트 신호들(IEV0~IEVn-1) 중에서 인에이블 인터럽트 이벤트 신호들을 제외한 나머지 인터럽트 이벤트 신호들의 활성화 여부에 관계없이, 상기 인에이블 인터럽트 이벤트 신호들 중에서 하나 이상이 활성화될 때 인터럽트 신호(INT)를 활성화할 수 있다.
일 실시예에서, 컨트롤 프로세서(200)는 복수의 인에이블 결정 비트들(C0~Cn-1)을 제공하지 않을 수 있고, 인에이블 레지스터 회로(741)는 생략될 수 있다. 이 경우, 인에이블 비교 회로(742)에 포함되는 논리곱 게이트들은 생략될 수 있고, 논리합 게이트는 복수의 출력 상태 비트들(B0~Bn-1)에 대한 논리합 연산을 수행하여 인터럽트 신호(INT)를 생성할 수 있다.
도 8은 도 6의 인터럽트 제어 회로에 포함되는 로그 인터럽트 제어 회로의 일 실시예를 나타내는 도면이다.
도 8을 참조하면, 로그 인터럽트 제어 회로(800)는 로그 인터럽트 축적 회로(820) 및 로그 저장부(840)를 포함할 수 있다.
로그 인터럽트 축적 회로(820)는 복수의 인터럽트 이벤트 신호들, 즉 제1 내지 제n 인터럽트 이벤트 신호들(IEV0~IEV3) 및 복수의 로그 결정 비트들, 즉 제1 내지 제n 로그 결정 비트들(E0~En-1)에 기초하여 로그 인터럽트 이벤트 신호들의 활성화 여부를 나타내는 복수의 로그 상태 비트들, 즉 제1 내지 제n 로그 상태 비트들(F0~Fn-1)을 생성할 수 있다. 로그 저장부(840)는 제1 로그 상태 비트들(F0~Fn-1)을 포함하는 인터럽트 로그 정보(ILINF)를 저장할 수 있다. 후술하는 바와 같이, 로그 저장부(840)는 각각의 코맨드에 포함되는 이미지 유닛 식별자(UID)를 수신하고, 이미지 유닛에 상응하는 이미지 유닛 식별자(UID)를 포함하도록 인터럽트 로그 정보(ILINF)를 저장할 수 있다.
로그 저장부(840)는 저장 인에이블 신호(STEN)가 활성화될 때 로그 인터럽트 축적 회로(820)로부터 제공되는 제1 내지 제n 로그 상태 비트들(F0~Fn-1) 및 코맨드 큐 회로(400)로부터 제공되는 이미지 유닛 식별자(UID)의 세트를 하나의 유닛 인터럽트 정보로서 저장할 수 있다. 일 실시예에서, 저장 인에이블 신호(STEN)는 도 6의 결정 비트 생성기(600)에 의해 생성될 수 있다.
로그 인터럽트 축적 회로(820)는 로그 결정 레지스터 회로(821), 로그 비교 회로(822) 및 로그 상태 레지스터 회로(823)를 포함할 수 있다.
로그 결정 레지스터 회로(821)는 도 6의 결정 비트 생성기(600)로부터 제공되는 제1 내지 제n 로그 결정 비트들(E0~En-1)을 저장할 수 있다. 로그 비교 회로(822)는 로그 결정 레지스터 회로(821)에 저장된 제1 내지 제n 로그 결정 비트들(E0~En-1)의 각각 및 제1 내지 제n 인터럽트 이벤트 신호들(IEV0~IEVn-1)의 각각을 비교하여 제1 내지 제n 로그 상태 비트들(F0~Fn-1)을 생성할 수 있다. 로그 상태 레지스터 회로(823)는 제1 내지 제n 로그 상태 비트들(F0~Fn-1)을 저장할 수 있다. 로그 상태 레지스터 회로(823)는 리셋 신호(CLR)에 기초하여 초기화될 수 있다. 리셋 신호(CLR)는 이미지 신호 프로세서(100)의 내부에서 생성되며 각각의 이미지 유닛에 대한 이미지 처리가 종료되는 타이밍에 기초하여 활성화되는 신호일 수 있다.
도 8에 도시된 바와 같이, 일 실시예에서 로그 비교 회로(822)는 n개의 논리곱(AND) 게이트들로 구현될 수 있다. 이 경우, 제1 내지 제n 로그 결정 비트들(E0~En-1) 중에서 로그 인터럽트 이벤트 신호들에 상응하는 로그 결정 비트들을 1의 값으로 설정하고 나머지 비트들을 0의 값으로 설정할 수 있다. 출력 결정 비트가 1의 값에 해당하는 인터럽트 이벤트 신호는 출력 인터럽트 이벤트 신호에 해당할 수 있다. 로그 결정 비트가 0의 값에 해당하는 논리곱 게이트는 상응하는 인터럽트 이벤트 신호의 논리 레벨(즉 활성화 여부)에 관계 없이 0의 값을 출력한다. 즉, 0의 값에 해당하는 논리곱 게이트는 상응하는 인터럽트 이벤트 신호를 마스킹하는 역할을 수행할 수 있다. 이 경우, 제1 내지 제n 로그 상태 비트들(F0~Fn-1)은 리셋 신호(CLR)가 활성화되는 경우 모두 0의 값을 갖도록 초기화될 수 있다.
도 9는 본 발명의 실시예들에 따른 이미지 처리 시스템의 동작의 일 실시예를 나타내는 타이밍도이고, 도 10은 도 9의 동작에 따른 인터럽트 로그 정보를 나타내는 도면이다.
이하, 도시 및 설명의 편의상, 제1 내지 제n 인터럽트 이벤트 신호들(IEV0~IEVn-1) 중에서 제1 내지 제4 인터럽트 이벤트 신호들(IEV0~IEV3)에 기초하여 본 발명의 실시예들을 설명한다.
예를 들어, 도 10에 도시된 바와 같이, 제1 인터럽트 이벤트 신호(IEV0)는 프레임 시작 이벤트의 발생시 활성화되고, 제2 인터럽트 이벤트 신호(IEV1)는 프레임 종료 이벤트의 발생시 활성화되고, 제3 인터럽트 이벤트 신호(IEV2)는 제1 에러(ERR1)의 발생시 활성화되고, 제4 인터럽트 이벤트 신호(IEV3)는 제2 에러(ERR1)의 발생시 활성화될 수 있다.
도 9를 참조하면, 이미지 센서(ISP)는 시점들(t1~t8) 사이의 제1 내지 제4 처리 구간들(TP0~TP3)의 각각에서 제1 내지 제4 프레임들(IFM0~IFM3)에 대한 이미지 처리를 순차적으로 수행할 수 있다.
전술한 바와 같이, 제1 내지 제4 프레임들(IFM0~IFM3)에 각각 상응하는 제1 내지 제4 코맨드들(CMD0~CMD3)이 상응하는 프레임에 대한 이미지 처리가 수행되기 이전에 제어 신호(CONS)로서 컨트롤 프로세서(200)로부터 수신되어 코맨드 큐 회로(400)에 저장될 수 있다.
도 9에는 제1 내지 제4 프레임들(IFM0~IFM3)에 각각 상응하는 출력 결정 비트들(ODB)의 값들, 로그 결정 비트들(LDB)의 값들 및 이미지 유닛 식별자(UID)의 값들의 예가 도시되어 있다.
도시된 바와 같이 시점들(t1~T8)의 각각에서 프레임 시작 이벤트들(INT_S0~INT_S3) 및 프레임 종료 이벤트들(INT_E0~INT_E3)이 발생할 수 있다. 복수의 출력 결정 비트들(ODB)의 값들에 따라서 복수의 인터럽트 이벤트 신호들 중 출력 인터럽트 이벤트 신호들이 결정되고, 복수의 로그 결정 비트들(LDB)의 값들에 따라서 로그 출력 인터럽트 이벤트 신호들이 결정될 수 있다.
예를 들어, 제1 처리 구간(TP0)에서 제1 프레임(IFM0)에 상응하는 제1 내지 제4 출력 결정 비트들의 값 'A3A2A1A0' 은 '0101'로 설정될 수 있다. 프레임 시작 이벤트에 상응하는 제1 출력 결정 비트(A0) 및 제1 에러(ERR1) 발생 이벤트에 상응하는 제3 출력 결정 비트(A2)가 1의 값을 갖고 프레임 종료 이벤트에 상응하는 제2 출력 결정 비트(A1) 및 제2 에러(ERR2) 발생 이벤트에 상응하는 제4 출력 결정 비트(A3)가 0의 값을 갖는다. 따라서, 제1 처리 구간(TP0)에서는 제1 인터럽트 이벤트 신호(IEV0) 및 제3 인터럽트 이벤트 신호(IEV2)가 출력 인터럽트 이벤트 신호들에 해당한다. 도 9에는 인터럽트 이벤트들 중에서 인터럽트 신호(INT)의 활성화에 기여하는 이벤트들이 검은색 화살표로 표시되어 있고, 인터럽트 이벤트들 중에서 인터럽트 신호(INT)의 활성화에 영향을 미치지 않는, 즉 마스킹되는 인터럽트 이벤트들이 흰색 화살표로 표시되어 있다.
예를 들어, 시점(tr)에서 제3 프레임(IFM2)에 대한 이미지 처리가 수행되는 중에 제1 에러(ERR1)가 발생할 수 있고 제1 에러 이벤트(INT_ERR1)가 발생할 수 있다. 시점들(t1, tr)에서 인터럽트 이벤트들(INT_S0, INT_ERR1)에 의해 인터럽트 신호(INT)가 활성화되더라도 컨트롤 프로세서(200)의 동작 상태에 따라서 일정한 지연이 발생할 수 있고, 지연된 시점들(t1', tr')에서 인터럽트 서비스 루틴이 실행될 수 있다.
도 9에 도시된 바와 같이, 제1 내지 제4 처리 구간들(TP0~TP3)이 종료되는 시점들에서 저장 인에이블 신호(STEN)가 활성화되어 로그 저장부(840)에 도 10에 도시된 바와 같은 각각의 이미지 유닛에 상응하는 유닛 인터럽트 정보들이 저장될 수 있다. 유닛 인터럽트 정보들이 각각 저장된 후에 리셋 신호(CLR)가 활성화되어 로그 상태 비트들이 0의 값으로 초기화될 수 있다.
도 10에는 도 9의 시점(tr')에 해당하는 출력 상태 비트들(B0~B3), 로그 상태 비트들(F0~F3) 및 인터럽트 로그 정보(ILINF)에 포함되는 제1 내지 제3 유닛 인터럽트 정보들(UINF0~UINF2)이 도시되어 있다. 전술한 바와 같이, 출력 상태 비트들(B0~B3)은 출력 상태 레지스터 회로(723)에 저장되고, 로그 상태 비트들(F0~F3)은 로그 상태 레지스터 회로(823)에 저장될 수 있다. 로그 저장부(840)는 복수의 유닛 인터럽트 정보들(UINF0~UINF2)을 각각 저장하는 복수의 저장 유닛들(51~53)을 포함할 수 있다.
도 10에 도시된 바와 같이, 제1 내지 제3 유닛 인터럽트 정보들(UINF0~UINF2)의 각각은 제1 내지 제3 프레임들(IFM0~IFM2)에 각각 상응하는 이미지 유닛 식별자(UID)의 값 및 로그 상태 비트들(F0~F3)의 값들을 포함한다.
출력 상태 비트들(B0~B3)만으로는 제1 에러(ERR1)가 언제 발생했는지 알 수 없으므로, 컨트롤 프로세서(200)는 제1 내지 제3 프레임들(IFM0~IFM2)을 모두 드롭하게 된다. 반면에 컨트롤 프로세서(200)는 저장된 인터럽트 로그 정보(ILINF)를 참조하여 제3 프레임(IFM2)의 처리 과정에서 제1 에러(ERR1)가 발생했음을 알 수 있고, 따라서 컨트롤 프로세서(200)는 제3 프레임(IFM2)만을 드롭할 수 있다.
이와 같이, 제1 내지 제4 처리 구간들(TP0~TP3)에서 복수의 출력 결정 비트들, 예를 들어, 제1 내지 제 출력 결정 비트들(A0~A3)을 프레임마다 결정함으로써 120fps, 240fps, 480fps와 같은 고속의 이미지 처리가 요구되는 패스트 리드아웃(FRO) 모드를 포함하는 다양한 동작 모드들을 효율적으로 구현할 수 있다.
종래의 경우는 N개의 프레임 단위로 컨트롤 프로세서의 소프트웨어가 인터럽트 발생을 제어하도록 FRO 모드를 구현하고 일반적인 프레임 처리와 구분하였다. FRO 모드에서는 이미지 신호 프로세서의 내부에 처리되는 프레임마다 값이 증가하는 카운터를 구비하고 고정된 패턴의 로직으로 FRO 모드의 첫번째 프레임에서는 프레임 시작 인터럽트만의 발생을 마지막 프레임에서는 프레임 종료 인터럽트의 발생만을 허용하였다.
이 경우, N 개 세트의 구성 레지스터(Configuration Register)를 구비해야 하는 오버헤드(overhead)로 인하여 상기 N개 세트의 구성 레지스터는 매 프레임마다 반드시 제어가 필요한 부분(예를 들어, DMA buffer address register)에 한정하여 적용되었고 화질 변수(parameter)는 FRO 모드의 모든 프레임들에 동일하게 적용하여 처리하였다. 또한 일반 동작 모드와 FRO 모드 사이의 전환을 위해서는 이미지 신호 프로세서의 하드웨어 처리를 중단하고 컨트롤 프로세서의 소프트웨어 제어가 필요하기에 인터럽트 히스토리(interrupt history) 기능 또는 인터럽트 로그 기능을 원활히 활용하기 어렵다.
한편, 일반적인 60fps, 120fps와 같은 고 프레임 레이트의 처리에 있어서도 애플리케이션 프로세서(AP)와 같은 시스템 내부에서 인터럽트 딜레이의 편차가 크게 발생하는 경우가 대두되고 있다. 현재의 구현 기술로는 소프트웨어 제어를 하는 컨트롤 프로세서가 인터럽트를 수신하고 이미지 신호 프로세서의 하드웨어의 인터럽트 상태를 확인하는 순간에 있어 누적된 과거 처리의 오류 발생 여부만을 확인 가능하다.
인터럽트 히스토리(Interrupt history) 기능 없이는 누적된 프레임 처리 중 어떤 프레임 처리에 오류가 있고 다른 프레임들은 정상 처리인지 구분할 수 없기에 확인 불가능한 모든 프레임들을 드롭(drop)하게 된다. 또한 인터럽트를 처리하는 프로세서에는 단위 시간당 처리 가능한 최대 인터럽트 개수에 대한 제어 한계(control bound)가 존재한다. 이미지 신호 프로세서의 분야에 있어 동시 처리를 지원해야 하는 이미지 센서들의 의 개수 및 프레임 레이트는 지속적으로 증가하는 추세에 있다.
본 발명의 실시예들에 따라서, 컨트롤 프로세서(200)의 소프트웨어 제어를 코맨드 큐 회로(400)에 예약함으로써 인터럽트 발생 및 기록을 효율적으로 제어할 수 있다. 일반적인 고 프레임 레이트(high frame rate) 처리에 FRO 모드가 통합되어 모드 전환에 따른 오버헤드없이 일반적인 고 프레임 레이트의 처리에서도 인터럽트 신호(INT)의 활성화 빈도를 감소시킬 수 있다. 즉, 인터럽트 감소를 위한 출력 결정 비트들(ODB)의 패턴은 FRO 모드를 포함하여 모든 동작 모드들에서 다양하게 변경 가능하다. 또한 특정한 동작 모드에 한정하지 않고 모든 동작 모드들에서 특정 처리 구간(이미지 프레임, 이미지 스트립 또는 이미지 타일)별로 인터럽트 기록이 가능하여 인터럽트 지연 상황에서도 프레임 드롭 비율을 감소할 수 있다.
도 11은 본 발명의 실시예들에 따른 이미지 처리 시스템의 동작의 일 실시예를 나타내는 타이밍도이고, 도 12는 도 11의 동작에 따른 인터럽트 로그 정보를 나타내는 도면이다. 이하 도 9 및 10과 중복되는 설명을 생략하고 차이점만을 설명한다.
도 9 및 10의 실시예에서는, 저장 인에이블 신호(STEN)가 제1 내지 제4 처리 구간들(TP0~TP3)의 종료 시점들(t2, t4, t6, t8)마다 활성화된다. 따라서, 인터럽트 제어 회로(500)의 로그 저장부(840)는 복수의 이미지 유닛들, 즉 제1 내지 제4 프레임들(IFM0~IFM3)의 전부에 대하여 순차적으로 유닛 인터럽트 정보를 저장한다.
반면에, 도 11 및 12의 실시예에서는, 저장 인에이블 신호(STEN)가 제1 에러(ERR1)가 발생한 제3 처리 구간(TP2)의 종료 시점(t6)에서만 활성화된다. 따라서, 인터럽트 제어 회로(500)의 로그 저장부(840)는 도 12에 도시된 바와 같이 제3 프레임(IFM2)에 상응하는 유닛 인터럽트 정보(UINF0)만을 저장한다. 이와 같이, 실시예들에 따라서, 인터럽트 제어 회로(500)는 로그 인터럽트 이벤트 신호들 중에서 일부의 로그 인터럽트 이벤트 신호들의 활성화 여부에 기초하여 각각의 이미지 유닛에 상응하는 유닛 인터럽트 정보의 저장 여부를 결정할 수 있다.
도 13은 도 6의 인터럽트 제어 회로에 포함되는 코맨드 큐 회로의 일 실시예를 나타내는 도면이고, 도 14는 본 발명의 실시예들에 따른 이미지 처리 시스템의 동작의 일 실시예를 나타내는 타이밍도이고, 도 15는 도 14의 동작에 따른 인터럽트 로그 정보를 나타내는 도면이다. 이하 도 9 및 10과 중복되는 설명을 생략하고 차이점만을 설명한다.
도 13을 참조하면, 코맨드 큐 회로(400)는 상대적으로 낮은 우선순위(lower priority)의 코맨드들을 저장하는 제1 코맨드 큐(CQA), 상대적으로 높은 우선순위(higher priority)의 코맨드들을 저장하는 제2 코맨드 큐(CQB) 및 중재부(410)를 포함할 수 있다.
도 14를 참조하면, 이미지 센서(ISP)는 시점들(t1~t10) 사이의 제1 내지 제5 처리 구간들(TP0~TP4)의 각각에서 상대적으로 낮은 우선순위를 갖는 제1 스트림의 제1 내지 제4 프레임들(IFM0_A~IFM3_A) 및 상대적으로 높은 우선순위를 갖는 제2 스트림의 프레임(IFM0_B)에 대한 이미지 처리를 수행할 수 있다.
전술한 바와 같이, 제1 스트림의 제1 내지 제4 프레임들(IFM0_A~IFM3_A)에 각각 상응하는 제1 내지 제4 코맨드들(CMD0_A~CMD3_A)이 상응하는 프레임에 대한 이미지 처리가 수행되기 이전에 제어 신호(CONS)로서 컨트롤 프로세서(200)로부터 수신되어 코맨드 큐 회로(400)의 제1 코맨드 큐(CQA)에 저장될 수 있다. 도 13의 왼쪽 부분에는 시점(t1)에서 코맨드 큐 회로(400)의 제1 코맨드 큐(CQA)에 제1 내지 제4 코맨드들(CMD0_A~CMD3_A)이 저장된 상태가 도시되어 있다.
예를 들어, 시점(ta)에서 제2 스트림의 프레임(IFM0_B)에 상응하는 제5 코맨드(CMD0_B)가 제어 신호(CONS)로서 컨트롤 프로세서(200)로부터 수신되어 코맨드 큐 회로(400)의 제2 코맨드 큐(CQB)에 저장될 수 있다. 도 13의 오른쪽 부분에는 시점(t5)에서 코맨드 큐 회로(400)의 제1 코맨드 큐(CQA)에 제3 및 제4 코맨드들(CMD2_A, CMD3_A)이 저장되고 제2 코맨드 큐(CQB)에 제5 코맨드(CMD0_B)가 저장된 상태가 도시되어 있다.
코맨드 큐 회로(400)의 중재부(410)는 우선순위에 기초하여 낮은 우선순위에 해당하는 제3 코맨드(CMD2_A)에 앞서 높은 우선순위에 해당하는 제5 코맨드(CMD0_B)를 먼저 제공할 수 있다. 결과적으로 도 14에 도시된 바와 같이, 제3 처리 구간(TP2)에서 제2 스트림의 프레임(IFM0_B)이 먼저 처리되고 이후 제4 및 제5 처리 구간들(TP3, TP4)에서 제1 스트림의 제3 및 제4 프레임들(IFM2_A, IFM3_A)이 순차적으로 처리될 수 있다.
도시된 바와 같이 시점들(t1~T10)의 각각에서 프레임 시작 이벤트들(INT_S0~INT_S4) 및 프레임 종료 이벤트들(INT_E0~INT_E4)이 발생할 수 있다. 복수의 출력 결정 비트들(ODB)의 값들에 따라서 복수의 인터럽트 이벤트 신호들 중 출력 인터럽트 이벤트 신호들이 결정되고, 복수의 로그 결정 비트들(LDB)의 값들에 따라서 로그 출력 인터럽트 이벤트 신호들이 결정될 수 있다.
예를 들어, 제3 처리 구간(TP2)에서 제2 스트림의 프레임(IFM0_B)에 상응하는 제1 내지 제4 출력 결정 비트들의 값 'A3A2A1A0' 은 '0111'로 설정될 수 있다. 프레임 시작 이벤트에 상응하는 제1 출력 결정 비트(A0), 프레임 종료 이벤트에 상응하는 제2 출력 결정 비트(A1) 및 제1 에러(ERR1) 발생 이벤트에 상응하는 제3 출력 결정 비트(A2)가 1의 값을 갖고 제2 에러(ERR2) 발생 이벤트에 상응하는 제4 출력 결정 비트(A3)가 0의 값을 갖는다. 따라서, 제3 처리 구간(TP2)에서는 제1 내지 제3 인터럽트 이벤트 신호들(IEV0~IEV2)이 출력 인터럽트 이벤트 신호들에 해당한다. 도 9를 참조하여 설명한 바와 같이, 도 14에는 인터럽트 이벤트들 중에서 인터럽트 신호(INT)의 활성화에 기여하는 이벤트들이 검은색 화살표로 표시되어 있고, 인터럽트 이벤트들 중에서 인터럽트 신호(INT)의 활성화에 영향을 미치지 않는, 즉 마스킹되는 인터럽트 이벤트들이 흰색 화살표로 표시되어 있다.
예를 들어, 시점(tr)에서 제1 스트림의 제3 프레임(IFM2_A)에 대한 이미지 처리가 수행되는 중에 제1 에러(ERR1)가 발생할 수 있고 제1 에러 이벤트(INT_ERR1)가 발생할 수 있다. 시점들(t5, t6, tr)에서 인터럽트 이벤트들(INT_S2, INT_E2, INT_ERR1)에 의해 인터럽트 신호(INT)가 활성화되더라도 컨트롤 프로세서(200)의 동작 상태에 따라서 일정한 지연이 발생할 수 있고, 지연된 시점(t5')에서 인터럽트 서비스 루틴이 실행될 수 있다.
도 14에 도시된 바와 같이, 제1 내지 제5 처리 구간들(TP0~TP4)이 종료되는 시점들에서 저장 인에이블 신호(STEN)가 활성화되어 로그 저장부(840)에 도 10에 도시된 바와 같은 각각의 이미지 유닛에 상응하는 유닛 인터럽트 정보들이 저장될 수 있다. 유닛 인터럽트 정보들이 각각 저장된 후에 리셋 신호(CLR)가 활성화되어 로그 상태 비트들이 0의 값으로 초기화될 수 있다.
도 15에는 도 14의 시점(t5')에 해당하고 인터럽트 로그 정보(ILINF)에 포함되는 제1 내지 제4 유닛 인터럽트 정보들(UINF0~UINF3)이 도시되어 있다. 로그 저장부(840)는 복수의 유닛 인터럽트 정보들(UINF0~UINF3)을 각각 저장하는 복수의 저장 유닛들(51~54)을 포함할 수 있다.
도 15에 도시된 바와 같이, 제1 내지 제4 유닛 인터럽트 정보들(UINF0~UINF3)의 각각은 제1 스트림의 제1 내지 제3 프레임들(IFM0_A~IFM2_A) 및 제2 스트림의 프레임(IFM0_B)에 각각 상응하는 이미지 유닛 식별자(UID)의 값 및 로그 상태 비트들(F0~F3)의 값들을 포함한다.
출력 상태 레지스터 회로(723)에 저장되는 출력 상태 비트들(B0~B3)만으로는 제1 에러(ERR1)가 언제 발생했는지 알 수 없으므로, 컨트롤 프로세서(200)는 제1 스트림의 제1 내지 제3 프레임들(IFM0_A~IFM2_A) 및 제2 스트림의 프레임(IFM0_B)을 모두 드롭하게 된다. 반면에 컨트롤 프로세서(200)는 저장된 인터럽트 로그 정보(ILINF)를 참조하여 제1 스트림의 제3 프레임(IFM2_A)의 처리 과정에서 제1 에러(ERR1)가 발생했음을 알 수 있고, 따라서 컨트롤 프로세서(200)는 제1 스트림의 제3 프레임(IFM2_A)만을 드롭할 수 있다.
이와 같이, 제1 내지 제4 처리 구간들(TP0~TP3)에서 복수의 출력 결정 비트들, 예를 들어, 제1 내지 제 출력 결정 비트들(A0~A3)을 프레임마다 결정함으로써 120fps, 240fps, 480fps와 같은 고속의 이미지 처리가 요구되는 패스트 리드아웃(FRO) 모드를 포함하는 다양한 동작 모드들을 효율적으로 구현할 수 있다.
이와 같이, 본 발명의 실시예들에 따라서, 긴급한 처리 변경에 대하여 프로세서의 소프트웨어 제어 없이 가변적으로 복수의 출력 결정 비트들(ODB)의 패턴을 변형하여 컨트롤 프로세서(200)로 제공되는 인터럽트 신호(INT)를 활성화시키기 위한 인터럽트들의 종류를 제어할 수 있다.
또한, 멀티-스트림(multi-stream) 처리가 혼재되는 경우에도 인터럽트 히스토리(interrupt history) 해석을 용이하게 파악할 수 있고 한정된 저장 공간을 효율적으로 활용할 수 있다.
도 16은 본 발명의 실시예들에 따른 이미지 신호 프로세서를 나타내는 블록도이다.
도 16의 이미지 신호 프로세서(100c)는 이미지 처리 엔진(110c), 코맨드 큐 회로(400), 인터럽트 제어 회로(500), 제1 DMA 컨트롤러(140) 및 제2 DMA 컨트롤러(150)를 포함할 수 있다. 이미지 처리 엔진(110c)은 컨트롤러(111c), 복수의 IP 블록들(112c) 및 포스트 프로세싱 블록(113c)을 포함할 수 있다.
도 16의 이미지 프로세서(100c)의 구성 및 동작은 도 2의 이미지 프로세서(100)의 구성 및 동작과 유사하다. 따라서, 차이점을 중심으로 설명하기로 한다.
도 16을 참조하면, 이미지 처리 엔진(110c)에 구비되는 포스트 프로세싱 블록(113c)은 복수의 IP 블록들(112c)에서 생성되는 변환된 이미지 데이터에 대하여 후처리(post processing)을 수행할 수 있다. 예를 들어, 포스트 프로세싱 블록(113c)은 스케일러, JPEG 회로 등을 포함할 수 있다.
복수의 IP 블록들(112c)은 변환된 이미지 데이터를 직접 포스트 프로세싱 블록(113c)으로 전송하거나 또는 제1 DMA 컨트롤러(140)를 통해 메모리 장치(300)에 저장할 수 있다.
포스트 프로세싱 블록(113c)은 복수의 IP 블록들(112c)로부터 변환된 이미지 데이터를 수신하거나 또는 메모리 장치(300)에 저장된 변환된 이미지 데이터를 제2 DMA 컨트롤러(150)를 통해 수신할 수 있다. 포스트 프로세싱 블록(113c)은 후처리된 이미지 데이터(IDT')를 제2 DMA 컨트롤러(150)를 통해 메모리 장치(300)에 저장하거나 또는 시스템(도 1의 1000)에 구비되는 다른 구성들, 예컨대 디스플레이로 출력할 수 있다.
도 17 및 18은 본 발명의 실시예들에 따른 이미지 처리 시스템을 나타내는 블록도들이다.
도 17을 참조하면, 이미지 처리 시스템(20)은 메인 프로세서(210, ROM(Read Only Memory)(220), RAM(230), 이미지 신호 프로세서(240), 비휘발성 메모리 인터페이스(250), 카메라 인터페이스(260), 메모리 인터페이스(270) 및 디스플레이 인터페이스(280)를 포함할 수 있다. 이미지 처리 시스템(20)의 구성들, 즉 메인 프로세서(210, ROM(220), RAM(230), 이미지 신호 프로세서(240), 비휘발성 메모리 인터페이스(250), 카메라 인터페이스(260), 메모리 인터페이스(270) 및 디스플레이 인터페이스(280)는 시스템 버스(290)를 통해 데이터를 송수신할 수 있다. 실시예에 있어서, 이미지 처리 시스템(20)은 시스템 온 칩(SoC)으로 구현될 수 있다. 실시예에 있어서, 이미지 처리 시스템(20)은 어플리케이션 프로세서일 수 있다.
메인 프로세서(210)는 이미지 처리 시스템(20)의 전반적인 동작을 제어할 수 있다. 메인 프로세서(210)는 예컨대 CPU, 마이크로 프로세서, ARM 프로세서, X86 프로세서, MIPS 프로세서 등으로 구현될 수 있으며, 실시예에 따라서는 2개 이상의 독립적인 프로세서들(또는 코어들)을 갖는 하나의 컴퓨팅 컴포넌트(computing component), 즉 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 메인 프로세서(210)는 ROM(220) 또는 RAM(230)에 저장된 명령어 코드 및/또는 데이터를 처리 또는 실행시킬 수 있다.
ROM(220)은 지속적으로 사용되는 프로그램들 및/또는 데이터를 저장할 수 있다. ROM은 EPROM(erasable programmable ROM) 또는 EEPROM(electrically erasable programmable ROM) 등으로 구현될 수 있다.
RAM(230)은 프로그램들, 데이터, 및/또는 명령들(instructions)을 일시적으로 저장할 수 있다. 실시 예에 따라, RAM(230)은 DRAM 또는 SRAM으로 구현될 수 있다. RAM(230)은 인터페이스들(250, 260, 270 및 280)을 통해 입출력되거나, 이미지 신호 프로세서(240)에서 이미지 처리된 이미지 데이터를 일시적으로 저장할 수 있다.
비휘발성 메모리 인터페이스(250)는 비휘발성 메모리 장치(255)로부터 입력되는 데이터 또는 비휘발성 메모리로 출력되는 데이터를 인터페이싱할 수 있다. 비휘발성 메모리 장치(255)는 예컨대, 메모리 카드(MMC(Multi Media Card), eMMC, SD(Secure Digital) 카드, micro SD 카드 등)로 구현될 수 있다.
카메라 인터페이스(260)는 이미지 처리 시스템(20)의 외부에 위치한 카메라(265)로부터 입력되는 이미지 데이터(예컨대, 원시 이미지 데이터)를 인터페이싱할 수 있다. 카메라(265)는 복수의 광 감지 소자들을 이용해 촬영한 이미지에 대한 데이터를 생성할 수 있다. 카메라 인터페이스(260)를 통해 수신되는 이미지 데이터는 이미지 신호 프로세서(240)에 제공되거나 또는 메모리 인터페이스(270)를 통해 메모리(275)에 저장될 수 있다.
메모리 인터페이스(270)는 메모리(275)로부터 입력되는 데이터 또는 메모리(275)로 출력되는 데이터를 인터페이싱할 수 있다. 실시예에 따라, 메모리(275)는 DRAM이나 SRAM 등의 휘발성 메모리 또는 ReRAM, PRAM 또는 NAND flash 등의 비휘발성 메모리로 구현될 수 있다.
디스플레이 인터페이스(280)는 디스플레이 장치(285)로 출력되는 데이터(예컨대, 이미지 데이터)를 인터페이싱할 수 있다. 디스플레이 장치(285)는 이미지 데이터에 따른 영상 신호를 LCD(Liquid-crystal display), AMOLED(active matrix organic light emitting diodes) 등의 디스플레이를 통해 출력할 수 있다.
이미지 신호 프로세서(240)는 카메라(265)로부터 제공되는 이미지 데이터에 대하여 이미지 처리를 수행함으로써, 변환된 이미지 데이터를 생성하고, 변환된 이미지 데이터를 메모리(275)에 저장하거나, 변환된 이미지 데이터를 스케일링하여 스케일링된 이미지를 디스플레이 장치(285)에 제공할 수 있다.
도 1 내지 도 15를 참조하여 전술한 컨트롤 프로세서 및 이미지 신호 프로세서가 메인 프로세서(210) 및 이미지 신호 프로세서(240)로서 각각 적용될 수 있다. 고속 동작 모드에서, 메인 프로세서(210)는 복수의 코맨드들을 이미지 신호 프로세서(240)에 전송하고, 이미지 신호 프로세서(240)는 코맨드들에 포함되는 인터럽트 제어 값 및 이미지 유닛 식별자에 기초하여 인터럽트 신호를 발생하고 인터럽트 로그 정보를 저장할 수 있다. 이에 따라서, 고속 동작 모드에서도, 이미지 신호 프로세서(100)가 정상적으로 이미지 처리를 수행하고, 인터럽트를 효율적으로 제어할 수 있다.
도 18을 참조하면, 이미지 처리 시스템(30)은 CPU(310), ROM(320), 포스트 프로세싱 블록(330), 센서 인터페이스(340), 이미지 처리 엔진(350), 전술한 바와 같은 코맨드 큐 회로(CQC)와 인터럽트 제어 회로(ICC)로 구성된 회로(360) 및 DMA 컨트롤러(370)를 포함할 수 있으며, CPU(310), ROM(320), 포스트 프로세싱 블록(330), 센서 인터페이스(340), 이미지 처리 엔진(350) 및 DMA 컨트롤러(370)는 시스템 버스(380)를 통해 데이터를 송수신할 수 있다.
CPU(310)는 이미지 처리 시스템(30)의 전반적인 동작을 제어할 수 있으며, ROM(320)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행함으로써, 이미지 처리 동작을 제어할 수 있다.
ROM(320)은 이미지 처리 알고리즘을 포함하는 명령어 코드(즉, 프로그램들) 및/또는 데이터를 저장할 수 있다.
포스트 프로세싱 블록(330)은 이미지 처리 엔진(350)에서 생성되는 변환된 이미지 데이터에 대하여 후처리(예컨대 데이터의 사이즈를 조정하거나, 데이터 압축 등)를 수행할 수 있다. 후처리된 이미지 데이터는 DMA 컨트롤러(370)를 통해 메모리(375)에 저장될 수 있다.
실시예에 있어서, 이미지 처리 시스템(30)는 디스플레이 인터페이스를 더 포함할 수 있으며, 후처리된 이미지 데이터는 디스플레이 인터페이스를 통해 디스플레이 장치에 제공될 수 있다. 또는 메모리(375)에 저장된 이미지 데이터가 DMA 컨트롤러(370)를 통해 독출되고 디스플레이 인터페이스를 통해 디스플레이 장치에 제공될 수 있다.
센서 인터페이스(340)는 이미지 센서(345)와 통신하며, 이미지 센서(345)로부터 이미지 데이터, 예컨대 원시 이미지 데이터를 수신할 수 있다.
도 19는 본 발명의 실시예들에 따른 시스템을 나타내는 블록도이다.
도 19를 참조하면, 본 개시의 예시적 실시예에 따른 시스템(2000)은 어플리케이션 프로세서(2100), 이미지 센서(2200), 디스플레이 장치(2400), 워킹 메모리(2500), 스토리지(2600), 유저 인터페이스(2700) 및 무선 송수신부(2800)를 포함할 수 있으며, 어플리케이션 프로세서(2100)는 이미지 신호 프로세서(2300)를 포함할 수 있다. 도 1의 이미지 신호 프로세서(100)가 이미지 신호 프로세서(2300)로서 적용될 수 있다. 실시예에 있어서, 이미지 신호 프로세서(100)는 어플리케이션 프로세서(2100)와는 별개의 집적 회로로 구현될 수 있다.
어플리케이션 프로세서(2100)는 시스템(2000)의 전반적인 동작을 제어하며 응용 프로그램, 운영 체제 등을 구동하는 시스템 온 칩(SoC)으로 제공될 수 있다.
어플리케이션 프로세서(2100)는 이미지 신호 프로세서(2300)의 동작을 제어할 수 있으며, 이미지 신호 프로세서(2300)에서 생성되는 변환된 이미지 데이터를 디스플레이 장치(2400)에 제공하거나 또는 스토리지(2600)네 저장할 수 있다.
이미지 센서는 수신되는 광 신호를 기초로 이미지 데이터, 예컨대 원시 이미지 데이터를 생성하고 이지 데이터를 이미지 신호 프로세서(2300)에 제공할 수 있다.
도 1 내지 도 16을 참조하여 설명한 이미지 신호 프로세서가 이미지 신호 프로세서(2300)로서 적용될 수 있다. 이미지 신호 프로세서(2300)는 AP(2100)에 구비되는 프로세서로부터 복수의 코맨드들을 수신하고, 이를 기초로 복수의 이미지 유닛들에 대한 이미지 처리 및 인터럽트 제어를 수행할 수 있다.
워킹 메모리(2500)는 DRAM, SRMA 등의 휘발성 메모리 또는 FeRAM, RRAM PRAM 등의 비휘발성의 저항성 메모리로 구현될 수 있다. 워킹 메모리(2500)는 어플리케이션 프로세서(2100)가 처리 또는 실행하는 프로그램들 및/또는 데이터를 저장할 수 있다.
스토리지(2600)는 NADN 플래시, 저항성 메모리 등의 비휘발성 메모리 장치로 구현될 수 있으며, 예컨대 스토리지(2600)는 메모리 카드(MMC, eMMC, SD, micro SD) 등으로 제공될 수 있다. 스토리지(2600)는 이미지 신호 프로세서(2300)의 이미지 처리 동작을 제어하는 실행 알고리즘에 대한 데이터 및/또는 프로그램을 저장할 수 있으며, 이미지 처리 동작이 수행될 때 데이터 및/또는 프로그램이 워킹 메모리(2500)로 로딩될 수 있다. 실시예에 있어서, 스토리지(2600)는 이미지 신호 프로세서(2300)에서 생성되는 이미지 데이터, 예컨대 변환된 이미지 데이터 또는 후처리된 이미지 데이터를 저장할 수 있다.
유저 인터페이스(2700)는 키보드, 커튼 키 패널, 터치 패널, 지문 센서, 마이크 등 사용자 입력을 수신할 수 있는 다양한 장치들로 구현될 수 있다. 유저 인터페이스(2700)는 사용자 입력을 수신하고, 수신된 사용자 입력에 대응하는 신호를 어플리케이션 프로세서(2100)에 제공할 수 있다.
무선 송수신부(2800)는 트랜시버(2810), 모뎀(2820) 및 안테나(2830)를 포함할 수 있다.
이상 설명한 바와 같이, 본 발명의 실시예들에 따른 이미지 신호 프로세서 및 이미지 처리 시스템은 코맨드 큐 회로에 복수의 이미지 유닛들에 상응하는 복수의 코맨드들을 미리 저장하고 저장된 코맨드들에 기초하여 이미지 처리를 수행함으로써 이미지 신호 프로세서 및 컨트롤 프로세서 사이의 통신을 효율적으로 수행하고 이미지 신호 프로세서 및 이를 포함하는 이미지 처리 시스템의 동작 속도 및 동작 효율을 향상시킬 수 있다.
또한, 본 발명의 실시예들에 따른 이미지 신호 프로세서 및 이미지 처리 시스템은 코맨드에 포함되는 인터럽트 제어 값에 기초하여 이미지 처리가 수행되는 각각의 이미지 유닛에 대하여 인터럽트 신호의 생성 조건을 결정함으로써 이미지 신호 프로세서 및 이를 포함하는 이미지 처리 시스템의 동작 속도 및 동작 효율을 향상시킬 수 있다.
또한, 본 발명의 실시예들에 따른 이미지 신호 프로세서 및 이미지 처리 시스템은 코맨드에 포함되는 인터럽트 제어 값에 기초하여 모니터링의 대상이 되는 로그 인터럽트 이벤트 신호들을 결정하고 코맨드에 포함되는 이미지 유닛 식별자를 포함하도록 인터럽트 로그 정보를 저장함으로써 에러 발생시 복구 절차를 효율적으로 수행할 수 있다.
본 발명의 실시예들은 이미지 처리가 요구되는 장치 및 이를 포함하는 시스템에 유용하게 이용될 수 있다.
특히 본 발명의 실시예들은 컴퓨터(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) 기기 등과 같은 전자 기기에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명이 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 복수의 이미지 유닛들의 각각에 상응하는 인터럽트 제어 값을 포함하는 복수의 코맨드들을 컨트롤 프로세서로부터 수신하여 저장하고, 상기 복수의 코맨드들을 하나씩 순차적으로 제공하는 코맨드 큐 회로;
    상기 복수의 이미지 유닛들을 포함하는 이미지 데이터를 수신하고, 상기 코맨드 큐 회로로부터 순차적으로 제공되는 상기 복수의 코맨드들에 기초하여 상기 복수의 이미지 유닛들에 대하여 순차적으로 이미지 처리를 수행하는 이미지 처리 엔진; 및
    상기 코맨드 큐 회로로부터 상기 인터럽트 제어 값을 수신하고, 상기 인터럽트 제어 값에 기초하여 복수의 인터럽트 이벤트 신호들 중에서 하나 이상의 출력 인터럽트 이벤트 신호들을 결정하고, 상기 출력 인터럽트 이벤트 신호들에 기초하여 인터럽트 신호를 생성하는 인터럽트 제어 회로를 포함하는 이미지 신호 프로세서.
  2. 제1 항에 있어서,
    상기 인터럽트 제어 회로는,
    상기 복수의 코맨드들의 각각의 코맨드에 포함되는 상기 인터럽트 제어 값에 기초하여 상기 복수의 이미지 유닛들의 상기 이미지 처리가 수행되는 각각의 이미지 유닛에 대하여 상기 출력 인터럽트 이벤트 신호들을 결정하는 것을 특징으로 하는 이미지 신호 프로세서.
  3. 제1 항에 있어서,
    상기 인터럽트 제어 회로는,
    상기 인터럽트 제어 값에 기초하여 상기 복수의 인터럽트 이벤트 신호들 중에서 하나 이상의 로그 인터럽트 이벤트 신호들을 결정하고,
    상기 로그 인터럽트 이벤트 신호들의 활성화 여부에 대한 인터럽트 로그 정보를 저장하고,
    상기 복수의 이미지 유닛들의 각각의 이미지 유닛에 대한 상기 이미지 처리가 수행되는 동안 상기 로그 인터럽트 이벤트 신호들의 활성화 여부를 누적하여 상기 각각의 이미지 유닛에 상응하는 유닛 인터럽트 정보를 저장하는 것을 특징으로 하는 이미지 신호 프로세서.
  4. 제3 항에 있어서,
    상기 컨트롤러 프로세서로부터 수신되는 상기 복수의 코맨드들의 각각은 상기 각각의 이미지 유닛에 상응하는 이미지 유닛 식별자를 더 포함하고,
    상기 인터럽트 제어 회로는,
    상기 코맨드 큐 회로로부터 상기 이미지 유닛 식별자를 수신하고,
    상기 각각의 이미지 유닛에 상응하는 상기 이미지 유닛 식별자를 포함하도록 상기 유닛 인터럽트 정보를 저장하는 것을 특징으로 하는 이미지 신호 프로세서.
  5. 제1 항에 있어서,
    상기 인터럽트 제어 회로는,
    상기 인터럽트 제어 값에 기초하여 상기 출력 인터럽트 이벤트 신호들을 나타내는 복수의 출력 결정 비트들을 생성하는 결정 비트 생성기;
    상기 복수의 인터럽트 이벤트 신호들 및 상기 복수의 출력 결정 비트들에 기초하여 상기 출력 인터럽트 이벤트 신호들의 활성화 여부를 나타내는 복수의 출력 상태 비트들을 생성하는 출력 인터럽트 축적 회로; 및
    상기 복수의 출력 상태 비트들에 기초하여 상기 인터럽트 신호를 생성하는 인터럽트 생성기를 포함하는 것을 특징으로 하는 이미지 신호 프로세서.
  6. 제5 항에 있어서,
    출력 인터럽트 축적 회로는,
    상기 결정 비트 생성기로부터 제공되는 상기 복수의 출력 결정 비트들을 저장하는 출력 결정 레지스터 회로;
    상기 출력 결정 레지스터 회로에 저장된 상기 복수의 출력 결정 비트들의 각각 및 상기 복수의 인터럽트 이벤트 신호들의 각각을 비교하여 상기 복수의 출력 상태 비트들을 생성하는 출력 비교 회로; 및
    상기 복수의 출력 상태 비트들을 저장하는 출력 상태 레지스터 회로를 포함하는 것을 특징으로 하는 이미지 신호 프로세서.
  7. 제5 항에 있어서,
    상기 결정 비트 생성기는,
    상기 인터럽트 제어 값에 기초하여 상기 복수의 인터럽트 이벤트 신호들 중에서 하나 이상의 로그 인터럽트 이벤트 신호들을 나타내는 복수의 로그 결정 비트들을 더 생성하고,
    상기 인터럽트 제어 회로는,
    상기 복수의 인터럽트 이벤트 신호들 및 상기 복수의 로그 결정 비트들에 기초하여 상기 로그 인터럽트 이벤트 신호들의 활성화 여부를 나타내는 복수의 로그 상태 비트들을 생성하는 로그 인터럽트 축적 회로; 및
    상기 복수의 로그 상태 비트들을 포함하는 인터럽트 로그 정보를 저장하는 로그 저장부를 더 포함하는 것을 특징으로 하는 이미지 신호 프로세서.
  8. 제7 항에 있어서,
    상기 컨트롤러 프로세서로부터 수신되는 상기 복수의 코맨드들의 각각은 상기 각각의 이미지 유닛을 나타내는 이미지 유닛 식별자를 더 포함하고,
    상기 로그 저장부는,
    상기 코맨드 큐 회로로부터 상기 이미지 유닛 식별자를 수신하고,
    상기 이미지 유닛에 상응하는 상기 이미지 유닛 식별자를 포함하도록 상기 유닛 인터럽트 정보를 저장하는 것을 특징으로 하는 이미지 신호 프로세서.
  9. 제7 항에 있어서,
    로그 인터럽트 축적 회로는,
    상기 결정 비트 생성기로부터 제공되는 상기 복수의 로그 결정 비트들을 저장하는 로그 결정 레지스터 회로;
    상기 로그 결정 레지스터 회로에 저장된 상기 복수의 로그 결정 비트들의 각각 및 상기 복수의 인터럽트 이벤트 신호들의 각각을 비교하여 복수의 로그 상태 비트들의 값들을 생성하는 로그 비교 회로; 및
    상기 복수의 로그 상태 비트들을 저장하는 로그 상태 레지스터 회로를 포함하는 것을 특징으로 하는 이미지 신호 프로세서.
  10. 복수의 이미지 유닛들의 각각에 상응하는 인터럽트 제어 값을 포함하는 복수의 코맨드들을 생성하고 인터럽트 신호에 기초하여 인터럽트 서비스 루틴을 실행하는 컨트롤 프로세서; 및
    상기 복수의 이미지 유닛들에 대한 이미지 처리를 수행하고 상기 인터럽트 신호를 생성하는 이미지 신호 프로세서를 포함하고,
    상기 이미지 신호 프로세서는,
    상기 복수의 코맨드들을 컨트롤 프로세서로부터 수신하여 저장하고, 상기 복수의 코맨드들을 하나씩 순차적으로 제공하는 코맨드 큐 회로;
    상기 복수의 코맨드들에 각각 상응하는 복수의 이미지 유닛들을 포함하는 이미지 데이터를 수신하고, 상기 코맨드 큐 회로로부터 순차적으로 제공되는 상기 복수의 코맨드들에 기초하여 상기 복수의 이미지 유닛들에 대하여 순차적으로 이미지 처리를 수행하는 이미지 처리 엔진; 및
    상기 코맨드 큐 회로로부터 상기 인터럽트 제어 값을 수신하고, 상기 인터럽트 제어 값에 기초하여 복수의 인터럽트 이벤트 신호들 중에서 하나 이상의 출력 인터럽트 이벤트 신호들을 결정하고, 상기 출력 인터럽트 이벤트 신호들에 기초하여 상기 인터럽트 신호를 생성하는 인터럽트 제어 회로를 포함하는 이미지 처리 시스템.
KR1020210078615A 2021-06-17 2021-06-17 인터럽트 제어를 수행하는 이미지 신호 프로세서 및 이미지 처리 시스템 KR20220168742A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210078615A KR20220168742A (ko) 2021-06-17 2021-06-17 인터럽트 제어를 수행하는 이미지 신호 프로세서 및 이미지 처리 시스템
US17/669,731 US11924537B2 (en) 2021-06-17 2022-02-11 Image signal processor and image processing system performing interrupt control
TW111107646A TW202301137A (zh) 2021-06-17 2022-03-03 影像訊號處理器以及影像處理系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210078615A KR20220168742A (ko) 2021-06-17 2021-06-17 인터럽트 제어를 수행하는 이미지 신호 프로세서 및 이미지 처리 시스템

Publications (1)

Publication Number Publication Date
KR20220168742A true KR20220168742A (ko) 2022-12-26

Family

ID=84489693

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210078615A KR20220168742A (ko) 2021-06-17 2021-06-17 인터럽트 제어를 수행하는 이미지 신호 프로세서 및 이미지 처리 시스템

Country Status (3)

Country Link
US (1) US11924537B2 (ko)
KR (1) KR20220168742A (ko)
TW (1) TW202301137A (ko)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8218052B2 (en) 2003-03-07 2012-07-10 Iconix Video, Inc. High frame rate high definition imaging system and method
US7533201B2 (en) 2006-12-26 2009-05-12 Intel Corporation Queue management mechanism in network processor wherein packets stored at memory device corresponds to addresses stored in plurity of queues within queue management
US8692873B2 (en) 2009-01-15 2014-04-08 Alverix, Inc. Video-frame data receiver with low frame capture rate
US8629913B2 (en) 2010-09-30 2014-01-14 Apple Inc. Overflow control techniques for image signal processing
US9043521B2 (en) * 2012-11-13 2015-05-26 Intel Corporation Technique for communicating interrupts in a computer system
JP6203515B2 (ja) 2013-03-29 2017-09-27 株式会社メガチップス 画像処理装置
JP2014230159A (ja) 2013-05-23 2014-12-08 株式会社メガチップス 画像処理装置
KR102442921B1 (ko) * 2017-12-11 2022-09-13 삼성전자주식회사 디지털 시그널 프로세서(dsp)의 태스크 관리 효율을 높일 수 있는 전자 장치
JP6733106B2 (ja) * 2018-06-12 2020-07-29 エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd 決定装置、移動体、決定方法、及びプログラム
US11019294B2 (en) 2018-07-18 2021-05-25 Apple Inc. Seamless readout mode transitions in image sensors
US11109017B2 (en) 2018-09-12 2021-08-31 Semiconductor Components Industries, Llc Systems and methods for fault detection in image sensor processors
KR20200141338A (ko) 2019-06-10 2020-12-18 삼성전자주식회사 이미지 신호 프로세서, 상기 이미지 신호 프로세서의 동작 방법 및 상기 이미지 신호 프로세서를 포함하는 이미지 처리 시스템

Also Published As

Publication number Publication date
US11924537B2 (en) 2024-03-05
TW202301137A (zh) 2023-01-01
US20220408001A1 (en) 2022-12-22

Similar Documents

Publication Publication Date Title
US20160062798A1 (en) System-on-chip including multi-core processor and thread scheduling method thereof
US20110242115A1 (en) Method for performing image signal processing with aid of a graphics processing unit, and associated apparatus
US20220084159A1 (en) Image signal processor, method of operating the image signal processor, and application processor including the image signal processor
US11683251B2 (en) Technologies for jitter-adaptive low-latency, low power data streaming between device components
US20200376375A1 (en) Method and apparatus for performing client side latency enhancement with aid of cloud game server side image orientation control
EP3869348A1 (en) Changing a processor state based on states of io drivers tunnelling traffic on a serial bus
US10877811B1 (en) Scheduler for vector processing operator allocation
CN112929560A (zh) 图像处理设备及其方法
US9589179B2 (en) Object detection techniques
US10747692B2 (en) Image processing accelerator
US11538142B2 (en) Image signal processor, operating method thereof, and image processing system including the image signal processor
US11775809B2 (en) Image processing apparatus, imaging apparatus, image processing method, non-transitory computer-readable storage medium
KR20220168742A (ko) 인터럽트 제어를 수행하는 이미지 신호 프로세서 및 이미지 처리 시스템
US20220417382A1 (en) Buffer management for plug-in architectures in computation graph structures
US8868128B2 (en) Image display systems and methods of processing image data
US11216307B1 (en) Scheduler for vector processing operator readiness
US20210358135A1 (en) Feature detection, sorting, and tracking in images using a circular buffer
US10152766B2 (en) Image processor, method, and chipset for increasing intergration and performance of image processing
US9892480B2 (en) Aborting graphics processor workload execution
US10437475B2 (en) Data storage device and operating method thereof
CN115686786A (zh) 资源分配方法及其装置
WO2020239968A1 (en) Multimedia system with optimized performance
KR20210071791A (ko) 고해상도 이미지를 처리하기 위한 장치 및 방법
US20180095877A1 (en) Processing scattered data using an address buffer
US20150109473A1 (en) Programming a camera sensor

Legal Events

Date Code Title Description
A201 Request for examination