KR102247741B1 - 이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서 - Google Patents

이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서 Download PDF

Info

Publication number
KR102247741B1
KR102247741B1 KR1020140173133A KR20140173133A KR102247741B1 KR 102247741 B1 KR102247741 B1 KR 102247741B1 KR 1020140173133 A KR1020140173133 A KR 1020140173133A KR 20140173133 A KR20140173133 A KR 20140173133A KR 102247741 B1 KR102247741 B1 KR 102247741B1
Authority
KR
South Korea
Prior art keywords
memory
input image
image
scaling
line
Prior art date
Application number
KR1020140173133A
Other languages
English (en)
Other versions
KR20160067577A (ko
Inventor
김성운
윤성철
이상훈
양하나
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020140173133A priority Critical patent/KR102247741B1/ko
Priority to US14/959,724 priority patent/US10152766B2/en
Publication of KR20160067577A publication Critical patent/KR20160067577A/ko
Application granted granted Critical
Publication of KR102247741B1 publication Critical patent/KR102247741B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/399Control of the bit-mapped memory using two or more bit-mapped memories, the operations of which are switched in time, e.g. ping-pong buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Processing (AREA)

Abstract

본 발명의 실시예에 따른 이미지 프로세서는 입력 이미지를 스케일링(scaling)하고, 스케일링된 입력 이미지를 생성하는 스케일러(scaler), 및 상기 스케일링된 입력 이미지를 메모리 선택 신호(memory selection signal)에 따라 로우 레이턴시(low latency) 메모리와 하이 덴시티(high density) 메모리 중 어느 하나로 전송하는 선택 회로를 포함한다.

Description

이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서{AN IMAGE PROCESSOR, A METHOD OF OPERATING THE IMAGE PROCESSOR, AND AN APPLICATION PROCESSOR INCLUDING THE IMAGE PROCESSOR}
본 발명의 개념에 따른 실시예는 이미지 프로세서에 관한 것으로, 보다 상세하게는 집적도를 높이고 성능을 최적화할 수 있는 이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서에 관한 것이다.
최근 전세계적으로 스마트폰(smartphone), 태블릿(tablet) 등의 포터블(portable) 영상 재생 기기가 광범위하게 보급되고 있다. 이러한 기기들에 포함되는 디스플레이(display)들은 다양한 해상도(resolution)를 가지며, 하나의 기기에서도 사용자의 요청에 의해 영상 데이터가 다양한 해상도로 재생될 수 있다.
따라서, 상기 영상 데이터는 다양한 해상도로 변환될 수 있어야 하며, 이러한 기능을 스케일링(scaling)이라 한다. 스케일링을 수행하는 이미지 프로세서(image processor)는 입력되는 영상 데이터를 일시적으로 저장하는 메모리를 포함하게 된다.
상기 이미지 프로세서가 상기 영상 데이터에 대한 스케일링을 빠르게 처리하기 위해서는 처리 속도가 최대한 빠른 메모리를 사용할 필요가 있다. 그러나, 상기 처리 속도가 빠른 메모리는 상당히 큰 면적을 차지하므로, 칩(chip)의 소형화에 걸림돌이 되고 있다.
본 발명이 이루고자 하는 기술적 과제는, 스케일링 성능을 최적화하면서도 면적을 최소화할 수 있는 이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서를 제공함에 있다.
본 발명의 실시예에 따른 이미지 프로세서는 입력 이미지를 스케일링(scaling)하고, 스케일링된 입력 이미지를 생성하는 스케일러(scaler), 및 상기 스케일링된 입력 이미지를 메모리 선택 신호(memory selection signal)에 따라 로우 레이턴시(low latency) 메모리와 하이 덴시티(high density) 메모리 중 어느 하나로 전송하는 선택 회로를 포함한다.
실시예에 따라, 상기 입력 이미지의 수평 길이, 클럭 신호의 사이클당 처리 가능한 픽셀수, 및 상기 하이 덴시티 메모리의 리드 레이턴시(read latency)에 따라 상기 메모리 선택 신호를 생성하는 컨트롤러를 더 포함한다.
실시예에 따라, 상기 메모리 선택 신호는, 상기 입력 이미지의 수평 길이를 클럭 신호의 사이클당 처리 가능한 픽셀수로 나눈 결과인 수평 처리 사이클, 및 상기 하이 덴시티 메모리의 상기 리드 레이턴시를 비교한 결과에 따라 결정되는 레벨을 가진다.
실시예에 따라, 상기 스케일링된 입력 이미지는, 상기 수평 처리 사이클이 상기 하이 덴시티 메모리의 상기 리드 레이턴시보다 클 경우 상기 하이 덴시티 메모리로 전송되고, 상기 수평 처리 사이클이 상기 하이 덴시티 메모리의 상기 리드 레이턴시와 같거나 보다 작을 경우, 상기 로우 레이턴시 메모리로 전송된다.
실시예에 따라, 상기 스케일러는, 상기 입력 이미지의 제1 라인의 수평 스케일링이 완료된 다음의 사이클에서 상기 입력 이미지의 제1 라인의 수직 스케일링을 수행한다.
실시예에 따라, 상기 하이 덴시티 메모리의 용량은 상기 스케일링된 입력 이미지의 최대 수평 길이 또는 수직 스케일링 방식에 따라 결정된다.
실시예에 따라, 상기 로우 레이턴시 메모리의 용량은 상기 하이 덴시티 메모리의 리드 레이턴시 동안 처리 가능한 픽셀 수 또는 수직 스케일링 방식에 따라 결정된다.
실시예에 따라, 상기 로우 레이턴시 메모리는, 적어도 하나의 플립플롭(flip-flop)이다.
본 발명의 실시예에 따른 애플리케이션 프로세서는, 입력 이미지를 저장하는 메모리(memory), 및 상기 입력 이미지를 스케일링(scaling)하는 이미지 프로세서를 포함하며, 상기 이미지 프로세서는, 상기 입력 이미지를 스케일링하고, 스케일링된 입력 이미지를 생성하는 스케일러(scaler), 및 상기 스케일링된 입력 이미지를 메모리 선택 신호(memory selection signal)에 따라 로우 레이턴시(low latency) 메모리와 하이 덴시티(high density) 메모리 중 어느 하나로 전송하는 선택 회로를 포함한다.
실시예에 따라, 상기 입력 이미지의 수평 길이, 클럭 신호의 사이클당 처리 가능한 픽셀수, 및 상기 하이 덴시티 메모리의 리드 레이턴시(read latency)에 따라 상기 메모리 선택 신호를 생성하는 컨트롤러를 더 포함한다.
실시예에 따라, 상기 메모리 선택 신호는, 상기 입력 이미지의 수평 길이를 클럭 신호의 사이클당 처리 가능한 픽셀수로 나눈 결과인 수평 처리 사이클, 및 상기 하이 덴시티 메모리의 상기 리드 레이턴시를 비교한 결과에 따라 결정되는 레벨을 가진다.
실시예에 따라, 상기 스케일링된 입력 이미지는, 상기 수평 처리 사이클이 상기 하이 덴시티 메모리의 상기 리드 레이턴시보다 클 경우 상기 하이 덴시티 메모리로 전송되고, 상기 수평 처리 사이클이 상기 하이 덴시티 메모리의 상기 리드 레이턴시와 같거나 보다 작을 경우, 상기 로우 레이턴시 메모리로 전송된다.
실시예에 따라, 상기 스케일러는, 상기 입력 이미지의 제1 라인의 수평 스케일링이 완료된 다음의 사이클에서 상기 입력 이미지의 제1 라인의 수직 스케일링을 수행한다.
실시예에 따라, 상기 하이 덴시티 메모리의 용량은 상기 스케일링된 입력 이미지의 최대 수평 길이 또는 수직 스케일링 방식에 따라 결정된다.
실시예에 따라, 상기 로우 레이턴시 메모리의 용량은 상기 하이 덴시티 메모리의 리드 레이턴시 동안 처리 가능한 픽셀 수 또는 수직 스케일링 방식에 따라 결정된다.
실시예에 따라, 상기 로우 레이턴시 메모리는, 적어도 하나의 플립플롭(flip-flop)이다.
본 발명의 실시예에 따른 이미지 프로세서의 동작 방법은, 입력 이미지의 제1 라인(first line)을 수평 스케일링하는 단계, 상기 수평 스케일링된 상기 제1 라인을 메모리 선택 신호(memory selection signal)에 따라 로우 레이턴시(low latency) 메모리와 하이 덴시티(high density) 메모리 중 어느 하나로 전송하는 단계 및 상기 제1 라인의 수평 스케일링이 완료된 다음의 사이클에서 상기 제1 라인을 수직 스케일링하는 단계를 포함한다.
실시예에 따라, 상기 입력 이미지의 수평 길이, 클럭 신호의 사이클당 처리 가능한 픽셀수, 및 상기 하이 덴시티 메모리의 리드 레이턴시(read latency)에 따라 상기 메모리 선택 신호를 생성하는 단계를 더 포함한다.
실시예에 따라, 상기 메모리 선택 신호는, 상기 입력 이미지의 수평 길이를 클럭 신호의 사이클당 처리 가능한 픽셀수로 나눈 결과인 수평 처리 사이클, 및 상기 하이 덴시티 메모리의 상기 리드 레이턴시를 비교한 결과에 따라 결정되는 레벨을 가진다.
실시예에 따라, 상기 로우 레이턴시 메모리의 용량은 상기 하이 덴시티 메모리의 리드 레이턴시 동안 처리 가능한 픽셀 수 또는 수직 스케일링 방식에 따라 결정된다.
본 발명의 실시예에 따른 이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서에 의하면, 입력 이미지의 수평 길이와 무관하게 스케일링이 수행되지 않는 사이클을 제거할 수 있어 스케일링 성능을 최대화할 수 있다.
또한, 본 발명의 실시예에 따른 이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서에 의하면, 성능 저하를 발생시키지 않으면서 면적이 큰 로우 레이턴시 메모리(230)를 최소화하여 집적도를 높일 수 있다.
도 1은 본 발명의 일 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 2는 도 1에 도시된 이미지 프로세서를 보다 상세히 나타낸 블록도이다.
도 3은 도 2에 도시된 스케일러의 동작을 설명하기 위한 도면이다.
도 4는 도 3에 도시된 스케일링 동작의 일 실시예를 나타낸 도면이다.
도 5는 도 3에 도시된 스케일링 동작의 다른 실시예를 나타낸 도면이다.
도 6은 도 2에 도시된 메모리 선택 신호가 로우 레벨일 경우의 이미지 프로세서의 동작을 설명하기 위한 타이밍도이다.
도 7은 도 2에 도시된 메모리 선택 신호가 하이 레벨일 경우의 이미지 프로세서의 동작을 설명하기 위한 타이밍도이다.
도 8은 도 1에 도시된 이미지 프로세서의 동작 방법을 설명하기 위한 흐름도이다.
도 9는 도 2에 도시된 이미지 프로세서이 포함된 이미지 처리 시스템의 일 실시예를 나타낸 블록도이다.
도 10은 도 2에 도시된 이미지 프로세서이 포함된 이미지 처리 시스템의 다른 실시예를 나타낸 블록도이다.
도 11은 도 2에 도시된 이미지 프로세서이 포함된 이미지 처리 시스템의 또 다른 실시예를 나타낸 블록도이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 1을 참조하면, 데이터 처리 시스템(10)은 모바일 단말기(mobile terminal), 예컨대 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 모바일 인터넷 장치(mobile internet device(MID)), 또는 e-북(e-book) 등으로 구현될 수 있다.
데이터 처리 시스템(10)은 애플리케이션 프로세서(application processor, 100), 카메라(camera, 155), 디스플레이 장치(display device, 165), 및 메모리(memory, 175)를 포함할 수 있다.
애플리케이션 프로세서(100)는 CPU(central processing unit, 110), ROM(read only memory, 120), RAM(random access memory, 130), 코덱(codec, 140), 카메라 인터페이스(camera interface, 150), 디스플레이 인터페이스(display interface, 160), 메모리 인터페이스(memory interface, 170), 및 이미지 프로세서(image processor, 200)를 포함할 수 있다. 애플리케이션 프로세서(100)는 시스템 온 칩(system on chip(SoC))으로 구현될 수 있다.
애플리케이션 프로세서(100)의 각 구성(110, 120, 130, 140, 150, 160, 170, 200)은 버스(bus, 105)를 통하여 서로 데이터를 주고 받을 수 있다.
CPU(110)는 애플리케이션 프로세서(100)의 전반적인 동작을 제어할 수 있다. 예컨대, CPU(110)는 ROM(120) 및/또는 RAM(130)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행시킬 수 있다.
실시 예에 따라, CPU(110)는 2개 이상의 독립적인 프로세서들(또는 코어들)을 갖는 하나의 컴퓨팅 컴포넌트(computing component), 즉 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다.
ROM(120)은 지속적으로 사용되는 프로그램들 및/또는 데이터를 저장할 수 있다. 실시 예에 따라, ROM(120)은 EPROM(erasable programmable ROM) 또는 EEPROM(electrically erasable programmable ROM) 등으로 구현될 수 있다.
RAM(130)은 프로그램들, 데이터, 및/또는 명령들(instructions)을 일시적으로 저장할 수 있다. 실시 예에 따라, RAM(130)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.
RAM(130)은 인터페이스들(150, 160, 170)을 통해 입출력되거나, 코덱(140) 또는 CPU(110)가 생성하는 입력 이미지(IM) 또는 출력 이미지(OM)를 일시적으로 저장할 수 있다.
코덱(140)은 카메라(155)로부터 입력되는 데이터 또는 디스플레이 장치(165)로 출력되는 데이터를 인코딩(encoding) 또는 디코딩(decoding)할 수 있다.
따라서, 코덱(140)은 인코더(encoder, 142)와 디코더(decoder, 144)를 포함할 수 있다.
도 1에서는 설명의 편의를 위하여, 코덱(140)이 카메라 인터페이스(150), 및/또는 디스플레이 인터페이스(160)의 외부에 구현된 형태를 도시하였다. 하지만, 코덱(140)은 카메라 인터페이스(150), 및/또는 디스플레이 인터페이스(160)에 포함될 수도 있으며 코덱(140)의 배치에 의하여 본 발명의 기술적 범위가 제한 해석되어서는 안 된다.
카메라 인터페이스(150)는 애플리케이션 프로세서(100)의 외부에 있는 카메라(155)로부터 입력되는 데이터(예컨대, 영상 데이터)를 인터페이싱할 수 있다.
카메라(155)는 복수의 광 감지 소자들을 이용해 촬영한 이미지에 대한 데이터를 생성할 수 있다.
디스플레이 인터페이스(160)는 애플리케이션 프로세서(100)의 외부에 있는 디스플레이 장치(165)로 출력되는 데이터(예컨대, 영상 데이터)를 인터페이싱할 수 있다.
디스플레이 장치(165)는 이미지 또는 영상에 대한 데이터를 LCD(Liquid-crystal display), AMOLED(active matrix organic light emitting diodes) 등의 디스플레이를 통해 출력할 수 있다.
메모리 인터페이스(170)는 애플리케이션 프로세서(100)의 외부에 있는 메모리(175)로부터 입력되는 데이터 또는 메모리(175)로 출력되는 데이터를 인터페이싱할 수 있다.
실시예에 따라, 메모리(175)는 불휘발성 메모리(non-volatile memory), 예컨대 플래시 메모리(flash memory) 또는 저항성 메모리(resistive memory) 등으로 구현될 수 있다.
이미지 프로세서(200)는 RAM(130), 카메라 인터페이스(150), 또는 메모리 인터페이스(170)로부터 입력받은 데이터에 대해 이미지 처리를 수행하고, 이미지 처리된 데이터를 RAM(130), 디스플레이 인터페이스(160), 또는 메모리 인터페이스(170)로 출력할 수 있다. 실시예에 따라, 이미지 프로세서(200)는 소프트웨어(software), 하드웨어(hardware), 또는 소프트웨어와 하드웨어의 결합 형태로 구성될 수 있다.
이미지 프로세서(200)에 대해서는 도 2를 참조하여 상세히 설명된다.
도 2는 도 1에 도시된 이미지 프로세서(200)를 보다 상세히 나타낸 블록도이다. 도 3은 도 2에 도시된 스케일러의 동작을 설명하기 위한 도면이다.
도 1, 내지 도 3을 참조하면, 이미지 프로세서(200)는 스케일러(scaler, 210), 선택 회로(selection circuit, 220), 로우 레이턴시 메모리(low latency memory, 230), 하이 덴시티 메모리(high density memory, 240), 및 컨트롤러(controller, 250)를 포함할 수 있다.
이미지 프로세서(200)는 도 2에 도시된 구성들 외에 MPEG(Moving Picture Experts Group) 회로, 오디오 회로, 그래픽 컨트롤러, 디인터레이서(deinterlacer) 등을 더 포함할 수 있으나, 본 명세서에서는 비디오 스케일링과 관련된 회로 구성들만을 도시하고 설명한다.
이미지 프로세서(200)는 도 2에서와 같이 애플리케이션 프로세서(100)의 일부로 구현될 수 있으나, 다른 실시예에 따라 별도의 집적 회로(integrated circuit(IC)) 칩(chip) 형태로도 구현될 수 있다.
스케일러(210)는 입력 이미지(input image;IM)를 스케일링(scaling)하여, 스케일링된 입력 이미지(IM_HS)를 생성하고 출력 이미지(output image;OM)를 출력할 수 있다. 이때, 입력 이미지(IM)는 특정한 해상도(예컨대, 1280*720, 2560*1440, 4096*2160 등)를 가진 이미지 데이터이며, 픽셀(pixel) 단위로 구성된 스트림(stream)일 수 있다.
스케일링은 제1 해상도(first resolution)를 가진 입력 이미지(IM)를 제2 해상도(second resolution)를 가진 출력 이미지(OM)로 확대/축소하는 동작일 수 있다. 여기서, 확대하는 방법에는 입력 이미지(IM)의 가로, 세로, 또는 대각선 방향으로 인접하는 픽셀들을 보간(interpolation)하여 픽셀 수를 늘이는 방법이 있고, 축소하는 방법에는 가로 또는 세로 방향의 픽셀들의 평균값을 사용하는 방법이 있으나, 본 발명의 범위는 이에 한정되지 않는다.
도 3에서, 입력 이미지(IM)가 가로 방향으로 A(A는 1 이상의 정수) 개의 픽셀들을 포함하고, 세로 방향으로 B(B는 1 이상의 정수) 개의 픽셀들을 포함하는 경우가 도시되어 있다. 여기서, A와 B는 각각 입력 이미지(IM)의 수평 길이(horizontal length)와 입력 이미지(IM)의 수직 길이(vertical length)를 의미한다.
이때, 해상도는 이미지의 수평 길이와 수직 길이의 곱으로 나타낼 수 있으며, 입력 이미지(IM)의 제1 해상도는 A*B에 해당한다.
도 3에서는 스케일러(210)가 A*B의 입력 이미지(IM)를 스케일링을 통해 축소하는 경우가 나타나 있다.
스케일러(210)는 입력 이미지(IM)에 대해 수평 스케일링(horizontal scaling)을 수행하여, 스케일링된 입력 이미지(IM_HS)를 생성할 수 있다. 상기 수평 스케일링은 입력 이미지(IM)의 수평 길이를 수평 스케일링 비율(xM;M은 0을 초과하는 실수)에 곱한 길이로 축소 또는 확대하는 동작일 수 있다. 따라서, 스케일링된 입력 이미지(IM_HS)는 AxM의 수평 길이를 가지고, B의 수직 길이를 가진다.
스케일러(210)는 스케일링된 입력 이미지(IM_HS) 또는 수직 스케일링 중간 이미지(IM_VSM)에 대해 수직 스케일링(vertical scaling)을 수행하여, 출력 이미지(OM)를 생성할 수 있다. 상기 수직 스케일링은 스케일링된 입력 이미지(IM_HS)의 수직 길이를 수직 스케일링 비율(xN;N은 0을 초과하는 실수)에 곱한 길이로 축소 또는 확대하는 동작일 수 있다. 따라서, 출력 이미지(OM)는 AxM의 수평 길이를 가지고, BxN의 수직 길이를 가진다.
여기서, 상기 수평 스케일링과 상기 수직 스케일링은 평균값에 의해 수행된다고 가정한다.
예컨대, 수직 스케일링 비율이 x1/4인 경우, 제1 방식으로 동작하는 스케일러(210)는 입력 이미지(IM)의 첫번째 라인에 대해 수평 스케일링을 수행하여 상기 첫번째 라인에 대한 스케일링된 입력 이미지(IM_HS)를 생성하고, 두번째 라인에 대해 수평 스케일링을 수행하여 상기 두번째 라인에 대한 스케일링된 입력 이미지(IM_HS)를 생성하고 메모리(230 or 240)로부터 상기 첫번째 라인에 대한 스케일링된 입력 이미지(IM_HS)를 리드하여 상기 두번째 라인에 대한 스케일링된 입력 이미지(IM_HS)와 가산함으로써 수직 스케일링 중간 이미지(IM_VSM)를 생성할 수 있다. 이후, 세번째 라인 및 네번째 라인에 대해서도 동일한 동작이 반복되어 수직 스케일링 중간 이미지(IM_VSM)가 생성되면, 스케일러(210)는 수직 스케일링 중간 이미지(IM_VSM)에 대해 수직 스케일링을 위한 나머지 연산(평균값 방식의 경우 수직 스케일링 비율을 곱함)을 수행하여 상기 첫번째 라인 내지 상기 네번째 라인에 대한 출력 이미지(OM)를 생성하여 출력할 수 있다.
마찬가지로 수직 스케일링 비율이 x1/4인 경우, 제2 방식으로 동작하는 스케일러(210)는 입력 이미지(IM)의 첫번째 라인에 대해 수평 스케일링을 수행하여 상기 첫번째 라인에 대한 스케일링된 입력 이미지(IM_HS)를 생성하고, 두번째 라인에 대해 수평 스케일링을 수행하여 상기 두번째 라인에 대한 스케일링된 입력 이미지(IM_HS)를 생성할 수 있다. 이후, 스케일러(210)는 상기 제1 방식과 달리 메모리(230 or 240)로부터 상기 첫번째 라인에 대한 스케일링된 입력 이미지(IM_HS)를 리드하여 수직 스케일링 중간 이미지(IM_VSM)를 생성하지 않고 상기 첫번째 내지 네번째 라인에 대한 스케일링된 입력 이미지(IM_HS)를 순차적으로 생성하여 메모리(230 or 240)에 저장한 후 상기 첫번째 내지 상기 네번째 라인에 대한 스케일링된 입력 이미지(IM_HS)를 한꺼번에 리드하여 수직 스케일링을 수행하여 상기 첫번째 라인 내지 상기 네번째 라인에 대한 출력 이미지(OM)를 생성하여 출력할 수 있다.
스케일러(210)가 수직 스케일링을 수행하는 방식을 상기 제1 방식과 상기 제2 방식을 예로 들어 설명하였으나, 본 발명의 범위는 이에 한정되지 않는다.
스케일러(210)는 처리 속도의 향상을 위해 성능 향상을 위해 상기 수평 스케일링과 상기 수직 스케일링을 병렬적으로 수행할 수 있다. 또한, 도 2와 도 3의 예에서는 스케일러(210)가 수평 스케일링된 결과인 스케일링된 입력 이미지(IM_HS)를 이용해 수직 스케일링을 수행하나, 본 발명의 범위는 이에 한정되지 않고 스케일러(210)가 수직 스케일링된 결과를 이용해 수평 스케일링을 수행할 수도 있다.
선택 회로(220)는 스케일링된 입력 이미지(IM_HS) 또는 수직 스케일링 중간 이미지(IM_VSM)를 메모리 선택 신호(memory selection signal;MS)에 따라 로우 레이턴시 메모리(230)와 하이 덴시티 메모리(240) 중 선택된 어느 하나로 전송할 수 있다. 예컨대, 선택 회로(220)는 메모리 선택 신호(MS)가 로우 레벨(low level)일 때, 스케일링된 입력 이미지(IM_HS) 또는 수직 스케일링 중간 이미지(IM_VSM)를 로우 레이턴시 메모리(230)로 전송할 수 있다. 선택 회로(220)는 메모리 선택 신호(MS)가 하이 레벨(high level)일 때, 스케일링된 입력 이미지(IM_HS) 또는 수직 스케일링 중간 이미지(IM_VSM)를 하이 덴시티 메모리(240)로 전송할 수 있다.
실시예에 따라, 선택 회로(220)는 디멀티플렉서(demultiplexer)로 구현될 수 있다.
로우 레이턴시 메모리(230)는 스케일링된 입력 이미지(IM_HS) 또는 수직 스케일링 중간 이미지(IM_VSM)를 수신하여 저장하고, 스케일러(210)의 제어에 따라 스케일링된 입력 이미지(IM_HS) 또는 수직 스케일링 중간 이미지(IM_VSM)를 스케일러(210)로 전송할 수 있다.
로우 레이턴시 메모리(230)는 데이터를 라이트(write)하는 동작, 및 저장된 데이터를 리드(read)하는 동작에 지연(latency)이 거의 없는 메모리를 의미할 수 있다. 본 명세서에서는 로우 레이턴시 메모리(230)가 상기 지연을 갖지 않는다고 가정하고 설명하기로 한다.
또한, 로우 레이턴시 메모리(230)는 상기 지연을 갖지 않으나, 하이 덴시티 메모리(240)에 비해 큰 면적을 가질 수 있다.
실시예에 따라, 로우 레이턴시 메모리(230)는 적어도 하나의 플립플롭(flip-flop)으로 구현될 수 있다.
하이 덴시티 메모리(240)는 스케일링된 입력 이미지(IM_HS) 또는 수직 스케일링 중간 이미지(IM_VSM)를 수신하여 저장하고, 스케일러(210)의 제어에 따라 스케일링된 입력 이미지(IM_HS) 또는 수직 스케일링 중간 이미지(IM_VSM)를 스케일러(210)로 전송할 수 있다.
하이 덴시티 메모리(240)는 로우 레이턴시 메모리(230)에 비해 라이트 동작과 리드 동작에 지연을 가질 수 있다. 상기 리드 동작은 상기 라이트 동작에 비해 더 큰 지연을 가질 수 있다. 본 명세서에서는 하이 덴시티 메모리(240)가 상기 리드 동작시 클럭 신호(도 5의 CLK)의 두 사이클(2 cycle) 만큼 지연을 갖고, 상기 라이트 동작시 상기 지연을 갖지 않는다고 가정하고 설명하기로 한다. 클럭 신호(CLK)는 이미지 프로세서(200)의 동작의 기초가 되는 신호이며, 이미지 프로세서(200)의 내부 또는 외부의 신호 발생기(signal generator, 미도시)로부터 수신되는 신호일 수 있다. 또한, 상기 사이클은 클럭 신호(CLK)의 한 주기를 의미한다.
하이 덴시티 메모리(240)는 로우 레이턴시 메모리(230)에 비해 매우 작은 면적을 차지할 수 있다.
실시예에 따라, 하이 덴시티 메모리(240)는 SRAM 또는 DRAM으로 구현될 수 있다.
다른 실시예에 따라, 하이 덴시티 메모리(240)는 이미지 프로세서(200)의 외부, 예컨대 도 1의 RAM(130) 또는 메모리(175)에 구현될 수 있다.
컨트롤러(250)는 이미지 프로세서(200)의 전반적인 동작을 제어할 수 있다.
컨트롤러(250)는 수평 스케일링 비율과 수직 스케일링 비율에 대한 정보인 스케일링 정보(scaling information;SF)에 따라 스케일러(210)의 스케일링 동작을 제어할 수 있다. 스케일링 정보(SF)는 CPU(110)에 의해 생성될 수 있다.
컨트롤러(250)는 입력 이미지(IM)의 수평 길이에 대한 정보를 포함하는 이미지 정보(image information;IF)를 수신하고, 이에 기초하여 메모리 선택 신호(MS)를 생성할 수 있다.다른 실시예에 따라, 컨트롤러(250)는 이미지 정보(IF)를 일시적으로 저장한 뒤 이미지 정보(IF)를 스케일러(210)에게 전달하여, 스케일러(210)가 이미지 정보(IF)에 기초하여 메모리 선택 신호(MS)를 내부적으로 생성할 수도 있다.
컨트롤러(250)는 스케일링 정보(SF), 이미지 정보(IF), 및 이미지 프로세서(200)의 내부 소자들의 스펙 정보(specification)를 저장할 수 있는 제어 레지스터(control register, 250)를 포함할 수 있다. 여기서, 상기 스펙 정보는 클럭 신호(CLK)의 사이클당 스케일러(210)가 수평 또는 수직 스케일링을 수행할 수 있는 픽셀 수, 및 하이 덴시티 메모리(240)의 리드 레이턴시(read latency)에 대한 정보를 포함할 수 있다. 상기 리드 레이턴시는 하이 덴시티 메모리(240)의 상기 리드 동작시 지연되는 시간을 의미하며, 미리 가정한 바와 같이 상기 리드 레이턴시는 클럭 신호(CLK)의 두 사이클(2 cycle)이다.
본 명세서에서는 클럭 신호(CLK)의 사이클당 스케일러(210)가 수평 또는 수직 스케일링을 수행할 수 있는 픽셀 수는 1 픽셀로 가정한다. 본 발명의 범위는 이에 한정되지 않는다.
컨트롤러(250)는 입력 이미지(IM)의 수평 길이, 클럭 신호(CLK)의 사이클당 처리 가능한 픽셀 수, 및 하이 덴시티 메모리(240)의 리드 레이턴시에 따라 상기 메모리 선택 신호(MS)를 생성할 수 있다.
구체적으로, 컨트롤러(250)는 입력 이미지(IM)의 수평 길이를 클럭 신호(CLK)의 사이클당 처리 가능한 픽셀 수로 나눈 결과인 수평 처리 사이클(horizontal processing cycle), 및 하이 덴시티 메모리(240)의 리드 레이턴시를 비교한 결과에 따라 메모리 선택 신호(MS)의 레벨을 결정할 수 있다. 상기 수평 처리 사이클은 입력 이미지(IM)의 하나의 라인을 처리하는데 소요되는 사이클 단위의 시간을 의미할 수 있다.
상기 수평 처리 사이클이 하이 덴시티 메모리(240)의 상기 리드 레이턴시보다 클 경우, 컨트롤러(250)는 메모리 선택 신호(MS)가 하이 레벨을 가지도록 하여 선택 회로(220)가 스케일링된 입력 이미지(IM_HS) 또는 수직 스케일링 중간 이미지(IM_VSM)를 하이 덴시티 메모리(240)로 전송하도록 제어할 수 있다.
상기 수평 처리 사이클이 하이 덴시티 메모리(240)의 상기 리드 레이턴시와 같거나 보다 작을 경우, 컨트롤러(250)는 메모리 선택 신호(MS)가 로우 레벨을 가지도록 하여 선택 회로(220)가 스케일링된 입력 이미지(IM_HS) 또는 수직 스케일링 중간 이미지(IM_VSM)를 로우 레이턴시 메모리(230)로 전송하도록 제어할 수 있다.
컨트롤러(250)가 위와 같이 메모리 선택 신호(MS)의 레벨을 결정하는 것은 입력 이미지(IM)에 대한 스케일링 수행시 입력 이미지(IM)의 라인과 라인 사이에 쉬는 사이클이 존재하지 않도록 하기 위함으로, 보다 상세한 설명은 도 4 내지 도 6을 참조하여 후술하기로 한다.
도 4는 도 3에 도시된 스케일링 동작의 일 실시예를 나타낸 도면이다. 도 5는 도 3에 도시된 스케일링 동작의 다른 실시예를 나타낸 도면이다.
도 1 내지 도 4를 참조하면, 도 4에는 도 3에 도시된 스케일링 동작시, A가 2. B가 4, M이 1, 그리고 N이 1/4일 경우의 스케일링 동작이 도시되어 있다.
즉, 입력 이미지(IM)는 수평 방향으로 2개의 픽셀들을 포함하고, 수직 방향으로 4개의 픽셀들을 포함하는 2*4의 해상도를 갖는다.
또한, 입력 이미지(IM)는 1의 수평 스케일링 비율에 따른 수평 스케일링을 통해 2*4의 해상도를 가진 스케일링된 입력 이미지(IM_HS)로 스케일링된다. 스케일링된 입력 이미지(IM_HS)는 1/4의 수직 스케일링 비율에 따른 수직 스케일링을 통해 2*1의 해상도를 가진 출력 이미지(OM)로 스케일링된다.
입력 이미지(IM)는 제1 라인 내지 제4 라인(L1~L4)을 포함하며, 각 라인은 2개 씩의 픽셀들(예컨대, L1은 P0 ,0 및 P0 ,1)을 포함한다. 여기서, Pa ,b는 a(a는 1 이상의 정수)번째 로우(row)와 b(b는 1 이상의 정수)번째 컬럼(column)의 교차점에 위치한 픽셀이 갖는 픽셀 값을 의미한다. 실시예에서 스케일러(210)는 입력 이미지(IM)를 평균값 방식을 통해 축소하므로, 출력 이미지(OM)의 각 픽셀은 P0 ,0, P1 ,0, P2 ,0, 및 P3,0의 평균값(Avr(Px ,0)), 및 P0 ,1, P1 ,1, P2 ,1, 및 P3 ,1의 평균값(Avr(Px ,1))에 해당한다.
도 5에는 도 3에 도시된 스케일링 동작시, A가 3. B가 4, M이 1, 그리고 N이 1/4일 경우의 스케일링 동작이 도시되어 있다.
즉, 입력 이미지(IM)는 도 4와 달리 수평 방향으로 3개의 픽셀들을 포함하고, 수직 방향으로 4개의 픽셀들을 포함하는 3*4의 해상도를 갖는다.
또한, 입력 이미지(IM)는 1의 수평 스케일링 비율에 따른 수평 스케일링을 통해 3*4의 해상도를 가진 스케일링된 입력 이미지(IM_HS)로 스케일링된다. 스케일링된 입력 이미지(IM_HS)는 1/4의 수직 스케일링 비율에 따른 수직 스케일링을 통해 3*1의 해상도를 가진 출력 이미지(OM)로 스케일링된다.
입력 이미지(IM)는 제1 라인 내지 제4 라인(L1~L4)을 포함하며, 각 라인은 3개 씩의 픽셀들(예컨대, L1은 P0 ,0, P0 ,1, 및 P0 ,2)을 포함한다. 실시예에서 스케일러(210)는 입력 이미지(IM)를 평균값 방식을 통해 축소하므로, 출력 이미지(OM)의 각 픽셀은 P0 ,0, P1 ,0, P2 ,0, 및 P3 ,0의 평균값(Avr(Px ,0)), P0 ,1, P1 ,1, P2 ,1, 및 P3 ,1의 평균값(Avr(Px ,1)), 및 P0 ,2, P1 ,2, P2 ,2, 및 P3 ,2의 평균값(Avr(Px ,2))에 해당한다.
도 6은 도 2에 도시된 메모리 선택 신호가 로우 레벨일 경우의 이미지 프로세서의 동작을 설명하기 위한 타이밍도이다. 도 7은 도 2에 도시된 메모리 선택 신호가 하이 레벨일 경우의 이미지 프로세서의 동작을 설명하기 위한 타이밍도이다.
도 1 내지 도 7을 참조하면, 도 6에는 메모리 선택 신호(MS)가 로우 레벨일 경우, 즉 스케일링된 입력 이미지(IM_HS)가 로우 레이턴시 메모리(230)에 저장되는 경우의 타이밍도가 도시되어 있다. 달리 말하면, 도 6은 도 4와 같이 입력 이미지(IM)의 수평 길이(도 4에서 2)를 클럭 신호(CLK)의 사이클당 처리 가능한 픽셀 수(본 명세서에서 1이라 가정)로 나눈 결과인 수평 처리 사이클(도 4에서 2 사이클)이 하이 덴시티 메모리(240)의 리드 레이턴시(2 사이클)와 같거나 보다 작을 경우, 이미지 프로세서(200)의 동작 설명을 위한 타이밍도이다.
또한, 스케일러(210)는 도 2에서 설명한 제1 방식에 따라 동작한다고 가정한다.
메모리 선택 신호(MS)는 입력 이미지(IM)에 대한 스케일링이 수행되는 동안(t0~t8), 로우 레벨을 유지한다. 따라서, 하이 덴시티 메모리 라이트 인에이블 신호(HDM_WR)와 하이 덴시티 메모리 리드 인에이블 신호(HDM_RD)는 각각 입력 이미지(IM)에 대한 스케일링이 수행되는 동안(t0~t8), 로우 레벨을 유지한다.
여기서, 메모리 제어 신호들(HDM_WR, HDM_RD, LLM_WR, 및 LLM_RD) 각각은 하이 덴시티 메모리(240), 또는 로우 레이턴시 메모리(230)의 라이트 동작 또는 리드 동작을 활성화시키는 신호이다. 메모리 제어 신호들(HDM_WR, HDM_RD, LLM_WR, 및 LLM_RD)은 스케일러(210) 또는 컨트롤러(250)에 의해 생성되어 각 메모리(230,240)로 제공될 수 있다.
도 6, 또는 도 7에서 메모리 제어 신호들(HDM_WR, HDM_RD, LLM_WR, 및 LLM_RD) 각각의 하이 레벨은 일정 구간(예컨대, LLM_WR의 경우 t2~t8)에서 유지되는 것으로 표현되나, 각 구간에서 활성화되는 메모리 주소(예컨대, t2~t3에서 P0 ,0을 저장하는 메모리 주소와 t3~t4에서 P0 ,1을 저장하는 메모리 주소)는 서로 다를 수 있다.
시점(t0)부터 시점(t1)에서, 스케일러(210)는 제1 라인(L1)의 픽셀 값(P0 ,0)을 수신하여 수평 스케일링을 수행(수평 스케일링 비율이 1이므로 실질적인 동작은 하지 않음)하고, 스케일링된 입력 이미지(IM_HS)는 로우 레이턴시 메모리(230)에 라이트된다(WR_DATA). 이를 위해, 로우 레이턴시 메모리 라이트 인에이블 신호(LLM_WR)는 하이 레벨로 천이한다.
여기서, 제1 라인(L1)의 픽셀 값(P0 ,0)은 첫번째 픽셀 값이므로 스케일링된 입력 이미지(IM_HS)는 제1 라인(L1)의 픽셀 값(P0 ,0)과 동일하다.
시점(t1)부터 시점(t2)에서, 스케일러(210)는 제1 라인(L1)의 픽셀 값(P0 ,1)을 수신하여 수평 스케일링을 수행하고, 제1 라인(L1)에 대한 스케일링된 입력 이미지(IM_HS)는 로우 레이턴시 메모리(230)에 라이트된다(WR_DATA).
스케일링된 입력 이미지(IM_HS)는 수평 스케일링 비율이 1이므로 입력 이미지(IM)의 제1 라인(L1)의 픽셀 값(P0 ,1)과 동일하게 된다.
물론, 하나의 라인당 4개의 픽셀들이 존재하고 수평방향 스케일링 비율이 1/2 이며 평균값 방식으로 스케일링 하는 경우, 2개의 픽셀마다 2개의 픽셀들의 평균값에 해당하는 스케일링된 입력 이미지(IM_HS)가 스케일러(210)로부터 출력될 것이나, 설명의 편의상 수평 스케일링 비율이 1이라 가정하고 설명하기로 한다.
여기서, 제1 라인(L1)의 픽셀들에 대한 수평 스케일링이 완료되며, 제1 라인(L1)에 대한 수평 처리 사이클(HPC1) 역시 완료된다.
시점(t2)부터 시점(t3)에서, 스케일러(210)는 제2 라인(L2)의 픽셀 값(P1 ,0)을 수신하여 수평 스케일링을 수행한다. 이와 함께, 로우 레이턴시 메모리 리드 인에이블 신호(LLM_RD)가 하이 레벨로 천이하며, 지연(latency) 없이 로우 레이턴시 메모리(230)에 저장된 제1 라인(L1)의 픽셀 값(P0 ,0)이 리드되어 스케일러(210)로 전송된다(RD_DATA).
스케일러(210)는 수평 스케일링이 완료된 제2 라인(L2)의 픽셀 값(P1 ,0)과 로우 레이턴시 메모리(230)로부터 전송된 제1 라인(L1)의 픽셀 값(P0 ,0)을 연산하여, 연산 결과를 수직 스케일링 중간 이미지(IM_VSM) 로서 출력할 수 있다. 실시예에서, 스케일러(210)가 평균값 방식을 이용하므로, 수직 스케일링 중간 이미지(IM_VSM)는 제1 라인(L1)의 픽셀 값(P0 ,0)과 제2 라인(L2)의 픽셀 값(P1 ,0)의 합에 해당한다. 제1 라인(L1)의 픽셀 값(P0 ,0)과 제2 라인(L2)의 픽셀 값(P1 ,0)의 합은 제1 라인(L1)과 제2 라인(L2)에 대한 수직 스케일링을 수행 중인 중간 결과에 해당할 수 있다.
이후, 시점(t6)부터 시점(t7)에서 제1 라인(L1) 내지 제4 라인(L4)에 대한 수직 스케일링이 완료되면, 제1 라인(L1) 내지 제4 라인(L4)의 해당 픽셀 값들의 평균 값(Avr(Px ,1))이 수직 스케일링이 완료된 값에 해당된다.
수직 스케일링 중간 이미지(IM_VSM)는 로우 레이턴시 메모리(230)에 라이트된다(WR_DATA).
시점(t3)부터 시점(t4)에서, 스케일러(210)는 제2 라인(L2)의 픽셀 값(P1 ,1)을 수신하여 수평 스케일링을 수행한다. 이와 함께, 지연(latency) 없이 로우 레이턴시 메모리(230)에 저장된 제1 라인(L1)의 픽셀 값(P0 ,1)이 리드되어 스케일러(210)로 전송된다(RD_DATA).
스케일러(210)는 수평 스케일링이 완료된 제2 라인(L2)의 픽셀 값(P1 ,1)과 로우 레이턴시 메모리(230)로부터 전송된 제1 라인(L1)의 픽셀 값(P0 ,1)을 연산하여, 연산 결과를 수직 스케일링 중간 이미지(IM_VSM)로서 출력할 수 있다. 스케일러(210)가 평균값 방식을 이용하므로, 수직 스케일링 중간 이미지(IM_VSM)는 제1 라인(L1)의 픽셀 값(P0 ,1)과 제2 라인(L2)의 픽셀 값(P1 ,1)의 합에 해당한다. 제1 라인(L1)의 픽셀 값(P0 ,1)과 제2 라인(L2)의 픽셀 값(P1 ,1)의 합은 제1 라인(L1)과 제2 라인(L2)에 대한 수직 스케일링을 수행 중인 중간 결과에 해당할 수 있다.
이후, 시점(t7)부터 시점(t8)에서 제1 라인(L1) 내지 제4 라인(L4)에 대한 수직 스케일링이 완료되면, 제1 라인(L1) 내지 제4 라인(L4)의 해당 픽셀 값들의 평균 값(Avr(Px ,0))이 수직 스케일링이 완료된 값에 해당된다.
수직 스케일링 중간 이미지(IM_VSM) 는 로우 레이턴시 메모리(230)에 라이트된다(WR_DATA).
여기서, 제2 라인(L2)의 픽셀들에 대한 수평 스케일링이 완료되며, 제2 라인(L2)에 대한 수평 처리 사이클(HPC2) 역시 완료된다.
시점(t4)부터 시점(t5)에서, 스케일러(210)는 제3 라인(L3)의 픽셀 값(P2 ,0)을 수신하여 수평 스케일링을 수행한다. 이와 함께, 지연(latency) 없이 로우 레이턴시 메모리(230)에 저장된 제1 라인(L1)의 픽셀 값(P0 ,0)과 제2 라인(L2)의 픽셀 값(P1 ,0)의 합에 해당하는 수직 스케일링 중간 이미지(IM_VSM)가 리드되어 스케일러(210)로 전송된다(RD_DATA).
스케일러(210)는 수평 스케일링이 완료된 제3 라인(L3)의 픽셀 값(P2 ,0)과 로우 레이턴시 메모리(230)로부터 전송된 제1 라인(L1)의 픽셀 값(P0 ,0)과 제2 라인(L2)의 픽셀 값(P1 ,0)의 합을 연산하여, 연산 결과를 수직 스케일링 중간 이미지(IM_VSM)로서 출력할 수 있다. 실시예에서 스케일러(210)가 평균값 방식을 이용하므로, 수직 스케일링 중간 이미지(IM_VSM)는 제1 라인(L1)의 픽셀 값(P0 ,0), 제2 라인(L2)의 픽셀 값(P1 ,0), 및 제3 라인(L3)의 픽셀 값(P2 ,0)의 합에 해당한다. 수직 스케일링 중간 이미지(IM_VSM)는 로우 레이턴시 메모리(230)에 라이트된다(WR_DATA).
시점(t5)부터 시점(t6)에서, 스케일러(210)는 제3 라인(L3)의 픽셀 값(P2 ,1)을 수신하여 수평 스케일링을 수행한다. 이와 함께, 지연(latency) 없이 로우 레이턴시 메모리(230)에 저장된 제1 라인(L1)의 픽셀 값(P0 ,1)과 제2 라인(L2)의 픽셀 값(P1 ,1)의 합에 해당하는 수직 스케일링 중간 이미지(IM_VSM)가 리드되어 스케일러(210)로 전송된다(RD_DATA).
스케일러(210)는 수평 스케일링이 완료된 제3 라인(L3)의 픽셀 값(P2 ,1)과 로우 레이턴시 메모리(230)로부터 전송된 제1 라인(L1)의 픽셀 값(P0 ,1)과 제2 라인(L2)의 픽셀 값(P1 ,1)의 합을 연산하여, 연산 결과를 수직 스케일링 중간 이미지(IM_VSM)로서 출력할 수 있다. 실시예에서 스케일러(210)가 평균값 방식을 이용하므로, 수직 스케일링 중간 이미지(IM_VSM)는 제1 라인(L1)의 픽셀 값(P0 ,1), 제2 라인(L2)의 픽셀 값(P1 ,1), 및 제3 라인(L3)의 픽셀 값(P2 ,1)의 합에 해당한다. 수직 스케일링 중간 이미지(IM_VSM)는 로우 레이턴시 메모리(230)에 라이트된다(WR_DATA).
여기서, 제3 라인(L3)의 픽셀들에 대한 수평 스케일링이 완료되며, 제3 라인(L3)에 대한 수평 처리 사이클(HPC3) 역시 완료된다.
시점(t6)부터 시점(t7)에서, 스케일러(210)는 제4 라인(L4)의 픽셀 값(P3 ,0)을 수신하여 수평 스케일링을 수행한다. 이와 함께, 지연(latency) 없이 로우 레이턴시 메모리(230)에 저장된 제1 라인(L1)의 픽셀 값(P0 ,0), 제2 라인(L2)의 픽셀 값(P1 ,0), 및 제3 라인(L3)의 픽셀 값(P2 ,0)의 합에 해당하는 수직 스케일링 중간 이미지(IM_VSM)가 리드되어 스케일러(210)로 전송된다(RD_DATA).
스케일러(210)는 수평 스케일링이 완료된 제4 라인(L4)의 픽셀 값(P3 ,0)과 로우 레이턴시 메모리(230)로부터 전송된 제1 라인(L1)의 픽셀 값(P0 ,0), 제2 라인(L2)의 픽셀 값(P1 ,0), 및 제3 라인(L3)의 픽셀 값(P2 ,0)의 합을 연산하여, 연산 결과를 출력 이미지(OM)로서 출력할 수 있다.
즉, 실시예에서 스케일러(210)가 평균값 방식을 이용하므로, 출력 이미지(OM)는 제1 라인(L1)의 픽셀 값(P0 ,0), 제2 라인(L2)의 픽셀 값(P1 ,0), 제3 라인(L3)의 픽셀 값(P2 ,0), 및 제4 라인(L4)의 픽셀 값(P3 ,0)의 합을 총 라인 수(4)로 나눈 평균 값(Avr(Px ,0))에 해당한다.
시점(t7)부터 시점(t8)에서, 스케일러(210)는 제4 라인(L4)의 픽셀 값(P3 ,1)을 수신하여 수평 스케일링을 수행한다. 이와 함께, 지연(latency) 없이 로우 레이턴시 메모리(230)에 저장된 제1 라인(L1)의 픽셀 값(P0 ,1), 제2 라인(L2)의 픽셀 값(P1 ,1), 및 제3 라인(L3)의 픽셀 값(P2 ,1)의 합에 해당하는 수직 스케일링 중간 이미지(IM_VSM)가 리드되어 스케일러(210)로 전송된다(RD_DATA).
스케일러(210)는 수평 스케일링이 완료된 제4 라인(L4)의 픽셀 값(P3 ,1)과 로우 레이턴시 메모리(230)로부터 전송된 제1 라인(L1)의 픽셀 값(P0 ,1), 제2 라인(L2)의 픽셀 값(P1 ,1), 및 제3 라인(L3)의 픽셀 값(P2 ,1)의 합을 연산하여, 연산 결과를 출력 이미지(OM)로서 출력할 수 있다.
즉, 실시예에서 스케일러(210)가 평균값 방식을 이용하므로, 출력 이미지(OM)는 제1 라인(L1)의 픽셀 값(P0 ,1), 제2 라인(L2)의 픽셀 값(P1 ,1), 제3 라인(L3)의 픽셀 값(P2 ,1), 및 제4 라인(L4)의 픽셀 값(P3 ,1)의 합을 총 라인 수(4)로 나눈 평균 값(Avr(Px ,1))에 해당한다.
따라서, 시점(t6)부터 시점(t8)에서, 2*4의 해상도를 가진 입력 이미지(IM)에 대해 1의 수평 스케일링 비율의 수평 스케일링 동작과 1/4의 수직 스케일링 비율의 수직 스케일링 동작이 수행되어, 2*1의 해상도를 가진 출력 이미지(OM)가 출력된다.
도 7에는 메모리 선택 신호(MS)가 하이 레벨일 경우, 즉 스케일링된 입력 이미지(IM_HS) 또는 수직 스케일링 중간 이미지(IM_VSM)가 하이 덴시티 메모리(240)에 저장되는 경우의 타이밍도가 도시되어 있다. 달리 말하면, 도 7은 도 5와 같이 입력 이미지(IM)의 수평 길이(도 5에서 3)를 클럭 신호(CLK)의 사이클당 처리 가능한 픽셀 수(본 명세서에서 1이라 가정)로 나눈 결과인 수평 처리 사이클(도 5에서 3 사이클)이 하이 덴시티 메모리(240)의 리드 레이턴시(2 사이클)와 클 경우, 이미지 프로세서(200)의 동작 설명을 위한 타이밍도이다.
메모리 선택 신호(MS)는 입력 이미지(IM)에 대한 스케일링이 수행되는 동안(t0~t12), 하이 레벨을 유지한다. 따라서, 로우 레이턴시 메모리 라이트 인에이블 신호(LLM_WR)와 로우 레이턴시 메모리 리드 인에이블 신호(HDM_RD)는 각각 입력 이미지(IM)에 대한 스케일링이 수행되는 동안(t0~t12), 로우 레벨을 유지한다.
도 7은 입력 이미지(IM)의 수평 길이가 3으로 변경됨에 따라 메모리 선택 신호(MS)가 하이 레벨을 가지는 점 이외에는 도 6과 실질적으로 동일한 바, 차이점을 위주로 설명하기로 한다.
도 7에서, 입력 이미지(IM)의 수평 길이가 3이므로, 입력 이미지(IM)의 각 라인(L1~L4)에 대한 수평 처리 사이클(HPC1~HPC4)은 도 6에 비해 1 사이클씩 증가한다. 따라서, 도 6과 달리 출력 이미지(OM)가 생성되는데 총 12 사이클이 소요된다.
도 7에서, 입력 이미지(IM)의 각 라인(L1~L4)에 대한 수평 스케일링, 하이 덴시티 메모리(240)의 라이트 동작과 리드 동작, 및 수직 스케일링 동작은 도 6에서의 입력 이미지(IM)의 각 라인(L1~L4)에 대한 수평 스케일링, 로우 레이턴시 메모리(230)의 라이트 동작과 리드 동작, 및 수직 스케일링 동작과 실질적으로 동일하다. 따라서, 각 시점(t0~t12)에서의 동작에 대한 설명은 생략하기로 한다.
다만, 하이 덴시티 메모리(240)는 2 사이클에 해당하는 리드 레이턴시를 가지므로, 시점(t3)에서 제1 라인(L1)의 픽셀 값(P0 ,0)이 스케일러(210)로 제공되기 위해서는, 시점(t3)으로부터 2 사이클 전인 시점(t1)에서 픽셀 값(P0 ,0)을 리드하기 위한 하이 덴시티 메모리 리드 인에이블 신호(HDM_RD)가 하이 레벨로 천이한다.
즉, 시점(t1)에서 하이 덴시티 메모리(240)에 픽셀 값(P0 ,0)의 라이트가 완료되고, 시점(t1)에서 하이 덴시티 메모리 리드 인에이블 신호(HDM_RD)가 하이 레벨로 천이함에 의해 하이 덴시티 메모리(240)으로부터의 픽셀 값(P0 ,0)의 리드 동작이 개시되어야 제2 라인(L2)에 대한 수평 처리 사이클(HPC2)이 시작되는 시점인 시점(t3)에서 픽셀 값(P0 ,0)이 스케일러(210)로 제공될 수 있다.
만일, 입력 이미지(IM)의 수평 길이가 2인 경우에도, 시점(t3)이 되어야 픽셀 값(P0 ,0)이 스케일러(210)로 제공될 수 있으므로 시점(t2)과 시점(t3)의 1 사이클동안 픽셀 값(P0 ,0)을 이용한 수직 스케일링이 수행될 수 없으므로 스케일링이 수행되지 않는 사이클이 존재하여야 한다. 즉, 입력 이미지(IM)의 라인마다 스케일링이 수행되지 않는 사이클이 삽입되어야 하며, 이는 이미지 프로세서(200)의 성능 저하로 나타난다.
그러나, 본 발명의 실시예에 따른 이미지 프로세서(200)에서는 수평 처리 사이클이 하이 덴시티 메모리(240)의 리드 레이턴시보다 클 경우, 즉 하이 덴시티 메모리(240)를 이용할 때 스케일링이 수행되지 못하는 사이클이 존재할 염려가 없는 경우(도 7의 경우), 컨트롤러(250)는 선택 회로(220)가 스케일링된 입력 이미지(IM_HS)를 하이 덴시티 메모리(240)로 전송하도록 제어할 수 있다.
또한, 본 발명의 실시예에 따른 이미지 프로세서(200)에서는 수평 처리 사이클이 하이 덴시티 메모리(240)의 리드 레이턴시와 같거나 보다 작을 경우, 즉 하이 덴시티 메모리(240)를 이용할 때 스케일링이 수행되지 못하는 사이클이 존재할 염려가 있는 경우(도 6의 경우), 컨트롤러(250)는 선택 회로(220)가 스케일링된 입력 이미지(IM_HS)를 로우 레이턴시 메모리(230)로 전송하도록 제어할 수 있다.
따라서, 본 발명의 실시예에 따른 이미지 프로세서(200)에서는 입력 이미지(IM)의 수평 길이와 무관하게 스케일링이 수행되지 않는 사이클을 제거할 수 있어 스케일링 성능을 최대화할 수 있다.
하이 덴시티 메모리(240)는 스케일링된 입력 이미지(IM_HS)의 수평 길이에 해당하는 픽셀 값들을 저장하여야 하므로, 하이 덴시티 메모리(240)의 최소 용량은 스케일링된 입력 이미지(IM_HS)의 최대 수평 길이(또는 출력 이미지(OM)의 최대 수평 길이) 또는 수직 스케일링 방식(예컨대, 도 2의 상기 제2 방식에 대한 실시예에서는 3개의 라인을 저장할 수 있어야 함)에 따라 결정될 수 있다. 예컨대, 하나의 메모리 셀이 하나의 픽셀 값을 저장할 수 있다고 가정하고 평균값을 사용하여 수직 스케일링 하는 경우, 상기 최대 수평 길이가 2160일 경우 하이 덴시티 메모리(240)의 최소 용량은 2160개의 메모리 셀이 된다.
수평 처리 사이클이 하이 덴시티 메모리(240)의 리드 레이턴시와 같거나 보다 작을 경우, 달리 말하면 입력 이미지(IM)의 수평 길이가 하이 덴시티 메모리(240)의 리드 레이턴시 동안 처리 가능한 픽셀 수(도 7에서 2개의 픽셀)와 같거나 보다 작을 경우, 로우 레이턴시 메모리(230)가 선택되므로 로우 레이턴시 메모리(230)의 용량은 하이 덴시티 메모리(240)의 리드 레이턴시 동안 처리 가능한 픽셀 수에 따라 결정될 수 있다. 또한 하이 덴시티 메모리(240)와 마찬가지로 수직 스케일링 방식 역시 로우 레이턴시 메모리(230)의 용량을 결정하는 인자가 될 수 있다. 즉, 로우 레이턴시 메모리(230)는 하이 덴시티 메모리(240)의 리드 레이턴시 동안 처리 가능한 픽셀 수에 해당하는 용량 만큼 필요하게 되므로, 면적이 큰 로우 레이턴시 메모리(230)를 최소화할 수 있다.
따라서, 본 발명의 실시예에 따른 이미지 프로세서(200)에서는 성능 저하가 발생되지 않으면서 면적이 큰 로우 레이턴시 메모리(230)를 최소화하여 집적도를 높일 수 있다.
비록, 설명의 편의를 위해 입력 이미지(IM)가 수평 스케일링 또는 수직 스케일링을 통해 축소되는 경우에 대한 설명은 생략되었으나, 상기의 경우에도 이미지 프로세서(200)는 실질적으로 동일하게 동작할 수 있다.
도 8은 도 1에 도시된 이미지 프로세서(200)의 동작 방법을 설명하기 위한 흐름도이다.
도 1 내지 도 8을 참조하면, 스케일러(210)는 입력 이미지(IM)의 제1 라인(L1)을 수평 스케일링하여, 스케일링된 입력 이미지(IM_HS)를 생성할 수 있다(S10).
컨트롤러(250)는 입력 이미지(IM)의 수평 길이, 클럭 신호(CLK)의 사이클당 처리 가능한 픽셀수, 및 하이 덴시티 메모리(240)의 리드 레이턴시에 따라 메모리 선택 신호(MS)를 생성할 수 있다(S20).
선택 회로(220)는 메모리 선택 신호(MS)에 따라 스케일링된 입력 이미지(IM_HS) 즉, 수평 스케일링된 제1 라인(L1)을 로우 레이턴시 메모리(230)와 하이 덴시티 메모리(240) 중 어느 하나로 전송할 수 있다(S30).
스케일러(210)는 제1 라인(L1)의 수평 스케일링이 완료된 바로 다음의 사이클(도 6에서 t2~t3 또는 도 7에서 t3~t4)에서 제1 라인(L1)에 대해 수직 스케일링을 수행할 수 있다(S40).
도 9는 도 2에 도시된 이미지 프로세서(200)이 포함된 이미지 처리 시스템의 일 실시예를 나타낸 블록도이다.
도 1, 도 2, 및 도 9를 참조하면, 이미지 처리 시스템(400)은 카메라(410), 이미지 프로세서(200), 및 디스플레이 장치(420)를 포함할 수 있다.
카메라(410)는 촬상된 이미지에 대한 이미지 데이터인 입력 이미지(IM)를 생성할 수 있다. 카메라(410)는 도 1에 도시된 카메라(155)일 수 있다.
이미지 프로세서(200)는 도 2에 도시된 바와 같이 입력 이미지(IM)를 입력받아 스케일링 동작을 수행하여 원하는 해상도의 출력 이미지(OM)를 출력할 수 있다.
디스플레이 장치(420)는 출력 데이터(OM)에 기초하여, 화면을 통해 출력 데이터(OM)를 디스플레이할 수 있다. 디스플레이 장치(420)는 도 1에 도시된 디스플레이 장치(165)일 수 있다.
도 10은 도 2에 도시된 이미지 프로세서(200)이 포함된 이미지 처리 시스템의 다른 실시예를 나타낸 블록도이다.
도 1, 도 2, 및 도 10을 참조하면, 이미지 처리 시스템(500)은 카메라(510), 이미지 프로세서(200), 및 인코더(520)를 포함할 수 있다.
카메라(510)는 촬상된 이미지에 대한 이미지 데이터인 입력 이미지(IM)를 생성할 수 있다. 카메라(510)는 도 1에 도시된 카메라(155)일 수 있다.
이미지 프로세서(200)는 도 2에 도시된 바와 같이 입력 이미지(IM)를 입력받아 스케일링 동작을 수행하여 원하는 해상도의 출력 이미지(OM)를 출력할 수 있다.
인코더(520)는 출력 데이터(OM)에 기초하여, 사용자가 원하는 포맷(format)에 따라 인코딩을 수행할 수 있다. 디스플레이 장치(520)는 도 1에 도시된 인코더(142)일 수 있다.
도 11은 도 2에 도시된 이미지 프로세서(200)이 포함된 이미지 처리 시스템의 또 다른 실시예를 나타낸 블록도이다.
도 1, 도 2, 및 도 11을 참조하면, 이미지 처리 시스템(600)은 디코더(610), 이미지 프로세서(200), 및 디스플레이 장치(620)를 포함할 수 있다.
디코더(610)는 특정 포맷으로 인코딩된 이미지 데이터를 디코딩하여, 입력 이미지(IM)를 생성할 수 있다. 디코더(610)는 도 1에 도시된 디코더(144)일 수 있다.
이미지 프로세서(200)는 도 2에 도시된 바와 같이 입력 이미지(IM)를 입력받아 스케일링 동작을 수행하여 원하는 해상도의 출력 이미지(OM)를 출력할 수 있다.
디스플레이 장치(620)는 출력 데이터(OM)에 기초하여, 화면을 통해 출력 데이터(OM)를 디스플레이할 수 있다. 디스플레이 장치(620)는 도 1에 도시된 디스플레이 장치(165)일 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 본 발명에 따른 객체 정보 추정 방법을 수행하기 위한 프로그램 코드는 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 전송될 수도 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
데이터 처리 시스템(10)
애플리케이션 프로세서(100)
CPU(110)
ROM(120)
RAM(130)
코덱(140)
카메라 인터페이스(150)
디스플레이 인터페이스(160)
메모리 인터페이스(170)
이미지 프로세서(200)

Claims (10)

  1. 입력 이미지를 스케일링(scaling)하고, 스케일링된 입력 이미지를 생성하는 스케일러(scaler);
    상기 스케일링된 입력 이미지를 메모리 선택 신호(memory selection signal)에 따라 로우 레이턴시(low latency) 메모리와 하이 덴시티(high density) 메모리 중 어느 하나로 전송하는 선택 회로; 및
    상기 입력 이미지의 수평 길이, 클럭 신호의 사이클당 처리 가능한 픽셀수, 및 상기 하이 덴시티 메모리의 리드 레이턴시(read latency)에 따라 상기 메모리 선택 신호를 생성하는 컨트롤러를 포함하는 이미지 프로세서.
  2. 삭제
  3. 제1항에 있어서,
    상기 메모리 선택 신호는,
    상기 입력 이미지의 수평 길이를 클럭 신호의 사이클당 처리 가능한 픽셀수로 나눈 결과인 수평 처리 사이클, 및 상기 하이 덴시티 메모리의 상기 리드 레이턴시를 비교한 결과에 따라 결정되는 레벨을 가지는 이미지 프로세서.
  4. 제3항에 있어서,
    상기 스케일링된 입력 이미지는,
    상기 수평 처리 사이클이 상기 하이 덴시티 메모리의 상기 리드 레이턴시보다 클 경우 상기 하이 덴시티 메모리로 전송되고, 상기 수평 처리 사이클이 상기 하이 덴시티 메모리의 상기 리드 레이턴시와 같거나 보다 작을 경우, 상기 로우 레이턴시 메모리로 전송되는 이미지 프로세서.
  5. 제1항에 있어서,
    상기 스케일러는,
    상기 입력 이미지의 제1 라인의 수평 스케일링이 완료된 다음의 사이클에서 상기 입력 이미지의 제1 라인의 수직 스케일링을 수행하는 이미지 프로세서.
  6. 제1항에 있어서,
    상기 하이 덴시티 메모리의 용량은 상기 스케일링된 입력 이미지의 최대 수평 길이 또는 수직 스케일링 방식에 따라 결정되는 이미지 프로세서.
  7. 제1항에 있어서,
    상기 로우 레이턴시 메모리의 용량은 상기 하이 덴시티 메모리의 리드 레이턴시 동안 처리 가능한 픽셀 수 또는 수직 스케일링 방식에 따라 결정되는 이미지 프로세서.
  8. 제1항에 있어서,
    상기 로우 레이턴시 메모리는, 적어도 하나의 플립플롭(flip-flop)인 이미지 프로세서.
  9. 입력 이미지를 저장하는 메모리(memory); 및
    상기 입력 이미지를 스케일링(scaling)하는 이미지 프로세서를 포함하며,
    상기 이미지 프로세서는,
    상기 입력 이미지를 스케일링하고, 스케일링된 입력 이미지를 생성하는 스케일러(scaler);
    상기 스케일링된 입력 이미지를 메모리 선택 신호(memory selection signal)에 따라 로우 레이턴시(low latency) 메모리와 하이 덴시티(high density) 메모리 중 어느 하나로 전송하는 선택 회로; 및
    상기 입력 이미지의 수평 길이, 클럭 신호의 사이클당 처리 가능한 픽셀수, 및 상기 하이 덴시티 메모리의 리드 레이턴시(read latency)에 따라 상기 메모리 선택 신호를 생성하는 컨트롤러를 포함하는 애플리케이션 프로세서.
  10. 입력 이미지의 제1 라인(first line)을 수평 스케일링하는 단계;
    상기 입력 이미지의 수평 길이, 클럭 신호의 사이클당 처리 가능한 픽셀수, 및 하이 덴시티(high density) 메모리의 리드 레이턴시(read latency)에 따라 메모리 선택 신호(memory selection signal)를 생성하는 단계;
    상기 수평 스케일링된 상기 제1 라인을 상기 메모리 선택 신호에 따라 로우 레이턴시(low latency) 메모리와 상기 하이 덴시티 메모리 중 어느 하나로 전송하는 단계; 및
    상기 제1 라인의 수평 스케일링이 완료된 다음의 사이클에서 상기 제1 라인을 수직 스케일링하는 단계를 포함하는 이미지 프로세서의 동작 방법.
KR1020140173133A 2014-12-04 2014-12-04 이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서 KR102247741B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140173133A KR102247741B1 (ko) 2014-12-04 2014-12-04 이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서
US14/959,724 US10152766B2 (en) 2014-12-04 2015-12-04 Image processor, method, and chipset for increasing intergration and performance of image processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140173133A KR102247741B1 (ko) 2014-12-04 2014-12-04 이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서

Publications (2)

Publication Number Publication Date
KR20160067577A KR20160067577A (ko) 2016-06-14
KR102247741B1 true KR102247741B1 (ko) 2021-05-04

Family

ID=56094739

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140173133A KR102247741B1 (ko) 2014-12-04 2014-12-04 이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서

Country Status (2)

Country Link
US (1) US10152766B2 (ko)
KR (1) KR102247741B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017215629A (ja) * 2016-05-30 2017-12-07 ソニー株式会社 画像処理装置、画像処理方法、および、プログラム
JP6430086B1 (ja) 2017-10-05 2018-11-28 三菱電機株式会社 画像提供装置、画像提供方法および画像提供プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004334058A (ja) * 2003-05-12 2004-11-25 Hitachi Ltd 表示装置および表示制御方法
US20080267408A1 (en) * 2007-04-24 2008-10-30 Finisar Corporation Protecting against counterfeit electronics devices

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3428046B2 (ja) * 1992-11-02 2003-07-22 富士通株式会社 データ取り込み制御装置
TW377431B (en) * 1995-04-14 1999-12-21 Hitachi Ltd Method and apparatus for changing resolution
US6710810B1 (en) * 1998-07-02 2004-03-23 Pioneer Electronic Corporation Video signal processing apparatus with resolution enhancing feature
JP2000125188A (ja) 1998-10-20 2000-04-28 Sony Corp ラインメモリ装置
KR100311480B1 (ko) 1999-10-12 2001-10-18 구자홍 영상 포맷 변환 장치
KR100695914B1 (ko) 2000-06-12 2007-03-20 삼성전자주식회사 영상신호의 포맷변환장치
US6999514B2 (en) * 2001-10-26 2006-02-14 Selliah Rathnam Motion compensation with subblock scanning
JP2003274372A (ja) 2002-03-14 2003-09-26 Fujitsu Ltd ラインメモリの容量を小さくした画像フォーマット変換装置
JP3984525B2 (ja) 2002-09-30 2007-10-03 松下電器産業株式会社 画像表示装置
JP4392531B2 (ja) 2003-07-04 2010-01-06 ソニー株式会社 画像信号の処理装置および処理方法並びに画像表示装置
JP4225241B2 (ja) 2004-05-13 2009-02-18 ソニー株式会社 画像表示装置
KR100719364B1 (ko) * 2005-05-23 2007-05-17 삼성전자주식회사 최소 크기의 출력 메모리를 구비한 비디오 스케일러 및출력 메모리 크기 선택 방법
JP2007286167A (ja) 2006-04-13 2007-11-01 Matsushita Electric Ind Co Ltd 映像信号表示装置
TW200802171A (en) 2006-06-20 2008-01-01 Sunplus Technology Co Ltd Image scaling system for saving memory
JP2009042338A (ja) 2007-08-07 2009-02-26 Victor Co Of Japan Ltd 画素数変換方法、画素数変換装置及び画素数変換プログラム
JP2010091773A (ja) 2008-10-08 2010-04-22 Panasonic Corp プラズマディスプレイ装置
KR20110079314A (ko) 2009-12-31 2011-07-07 주식회사 동부하이텍 이미지 스케일러
US8595429B2 (en) * 2010-08-24 2013-11-26 Qualcomm Incorporated Wide input/output memory with low density, low latency and high density, high latency blocks
EP2798499B1 (en) * 2011-12-27 2020-11-18 Intel Corporation Methods and apparatus to manage workload memory allocation
CN102810294A (zh) 2012-08-01 2012-12-05 京东方科技集团股份有限公司 一种显示方法、装置及***
US20150181208A1 (en) * 2013-12-20 2015-06-25 Qualcomm Incorporated Thermal and power management with video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004334058A (ja) * 2003-05-12 2004-11-25 Hitachi Ltd 表示装置および表示制御方法
US20080267408A1 (en) * 2007-04-24 2008-10-30 Finisar Corporation Protecting against counterfeit electronics devices

Also Published As

Publication number Publication date
KR20160067577A (ko) 2016-06-14
US20160163020A1 (en) 2016-06-09
US10152766B2 (en) 2018-12-11

Similar Documents

Publication Publication Date Title
JP6415734B2 (ja) 画像信号プロセッサのための仮想ラインバッファ
EP3335107B1 (en) Data reordering using buffers and memory
JP6078173B2 (ja) アイドル状態の構成要素の電力を落とすことによるディスプレイパイプラインにおける電力節約方法及び機器
KR20180054797A (ko) 프리-페칭에 의한 효율적 디스플레이 프로세싱
JP2015075770A (ja) 映像処理装置、映像処理装置を含む電子装置、及び、映像処理方法
KR102261962B1 (ko) 디스플레이 구동 장치, 이를 포함하는 디스플레이 장치 및 시스템
US10070134B2 (en) Analytics assisted encoding
US9460489B2 (en) Image processing apparatus and image processing method for performing pixel alignment
WO2024140568A1 (zh) 图像处理方法、装置、电子设备及可读存储介质
KR102247741B1 (ko) 이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서
JP4865662B2 (ja) エントロピー符号化装置、エントロピー符号化方法およびコンピュータプログラム
KR20160094175A (ko) 디스플레이 잡음을 개선하는 디스플레이 컨트롤러, 및 상기 디스플레이 컨트롤러를 포함하는 시스템
CN105427235A (zh) 一种图像浏览方法及***
CN107977923B (zh) 图像处理方法、装置、电子设备及计算机可读存储介质
JP4870563B2 (ja) 携帯装置における画像処理方法及び装置
CN115205099A (zh) 图像数据传输方法、装置和电子设备
US20130278775A1 (en) Multiple Stream Processing for Video Analytics and Encoding
KR100846791B1 (ko) 비디오 데이터 저장 방법 및 장치
US9013948B2 (en) Memory architecture for display device and control method thereof
CN114862659A (zh) 图像直方图生成方法、装置、电子设备及存储介质
CN115641251A (zh) 2d桌面图像预取分块融合方法、装置及设备
KR100982465B1 (ko) 카메라의 메모리 제어 방법
CN113408710A (zh) 一种深度卷积神经网络加速方法、模块、***及存储介质
CN116974475A (zh) 数据缓存方法、装置及电子设备
JP2009130737A (ja) 画像処理装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant