KR101034493B1 - 화상 변환 장치, 화상 변환을 위한 직접 메모리 액세스장치 및 화상 변환을 지원하는 카메라 인터페이스 - Google Patents

화상 변환 장치, 화상 변환을 위한 직접 메모리 액세스장치 및 화상 변환을 지원하는 카메라 인터페이스 Download PDF

Info

Publication number
KR101034493B1
KR101034493B1 KR1020040001618A KR20040001618A KR101034493B1 KR 101034493 B1 KR101034493 B1 KR 101034493B1 KR 1020040001618 A KR1020040001618 A KR 1020040001618A KR 20040001618 A KR20040001618 A KR 20040001618A KR 101034493 B1 KR101034493 B1 KR 101034493B1
Authority
KR
South Korea
Prior art keywords
address
burst
word
image
order
Prior art date
Application number
KR1020040001618A
Other languages
English (en)
Other versions
KR20050073265A (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 KR1020040001618A priority Critical patent/KR101034493B1/ko
Priority to DE102004063847A priority patent/DE102004063847B4/de
Priority to JP2005000906A priority patent/JP4993856B2/ja
Priority to US11/031,037 priority patent/US7587524B2/en
Priority to CN2005100640278A priority patent/CN1655593B/zh
Publication of KR20050073265A publication Critical patent/KR20050073265A/ko
Application granted granted Critical
Publication of KR101034493B1 publication Critical patent/KR101034493B1/ko

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E06DOORS, WINDOWS, SHUTTERS, OR ROLLER BLINDS IN GENERAL; LADDERS
    • E06BFIXED OR MOVABLE CLOSURES FOR OPENINGS IN BUILDINGS, VEHICLES, FENCES OR LIKE ENCLOSURES IN GENERAL, e.g. DOORS, WINDOWS, BLINDS, GATES
    • E06B3/00Window sashes, door leaves, or like elements for closing wall or like openings; Layout of fixed or moving closures, e.g. windows in wall or like openings; Features of rigidly-mounted outer frames relating to the mounting of wing frames
    • E06B3/70Door leaves
    • E06B3/82Flush doors, i.e. with completely flat surface
    • E06B3/84Flush doors, i.e. with completely flat surface of plywood or other wooden panels without an internal frame, e.g. with exterior panels substantially of wood
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32358Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using picture signal storage, e.g. at transmitter
    • H04N1/32459Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using picture signal storage, e.g. at transmitter for changing the arrangement of the stored data
    • H04N1/3247Changing the arrangement of data in a page, e.g. reversing the order to produce a mirror image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05YINDEXING SCHEME ASSOCIATED WITH SUBCLASSES E05D AND E05F, RELATING TO CONSTRUCTION ELEMENTS, ELECTRIC CONTROL, POWER SUPPLY, POWER SIGNAL OR TRANSMISSION, USER INTERFACES, MOUNTING OR COUPLING, DETAILS, ACCESSORIES, AUXILIARY OPERATIONS NOT OTHERWISE PROVIDED FOR, APPLICATION THEREOF
    • E05Y2800/00Details, accessories and auxiliary operations not otherwise provided for
    • E05Y2800/40Physical or chemical protection
    • E05Y2800/406Physical or chemical protection against deformation
    • EFIXED CONSTRUCTIONS
    • E06DOORS, WINDOWS, SHUTTERS, OR ROLLER BLINDS IN GENERAL; LADDERS
    • E06BFIXED OR MOVABLE CLOSURES FOR OPENINGS IN BUILDINGS, VEHICLES, FENCES OR LIKE ENCLOSURES IN GENERAL, e.g. DOORS, WINDOWS, BLINDS, GATES
    • E06B3/00Window sashes, door leaves, or like elements for closing wall or like openings; Layout of fixed or moving closures, e.g. windows in wall or like openings; Features of rigidly-mounted outer frames relating to the mounting of wing frames
    • E06B3/70Door leaves
    • E06B2003/7049Specific panel characteristics
    • E06B2003/7051Specific panel characteristics of layered construction involving different materials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2101/00Still video cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0084Digital still camera
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Wood Science & Technology (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Studio Devices (AREA)
  • Bus Control (AREA)

Abstract

본 발명의 카메라 인터페이스는 특화된 DMA를 이용한 화상 변환 장치를 구비한다. 화상 변환 장치는 어드레스 발생 수단, 데이터 선택 수단을 구비한다. 어드레스 발생 수단은 거울 화상 모드에 따라 화상 프레임의 프레임 시작 어드레스, 버스트 전송 시작 어드레스, 라인 시작 어드레스를 적절하게 변경한다. 데이터 선택 수단은 거울 화상 모드에 따라 워드 순서 및 워드내 픽셀 순서를 변경한다.
Figure R1020040001618
휴대전화기, 카메라폰, 카메라 인터페이스, 거울 화상, DMA, 버스트 액세스

Description

화상 변환 장치, 화상 변환을 위한 직접 메모리 액세스 장치 및 화상 변환을 지원하는 카메라 인터페이스{IMAGE TRANSFORMING APPARATUS, DMA APPARATUS FOR IMAGE TRANSFORMING, AND CAMERA INTERFACE SUPPORTING IMAGE TRANSFORMING}
도 1은 본 발명의 일 실시예에 따른 휴대전화기의 카메라 모듈 및 응용 프로세서를 개략적으로 도시하는 블록도이다.
도 2는 도 1의 DMA 장치에 대한 상세한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 코덱 DMA 장치의 데이터 흐름과 제어를 도시한다.
도 4는 DMA 유한 상태 기계의 상태 천이도이다.
도 5는 채널 아비터에 대한 동작 순서도이다.
도 6은 휘도 성분에 대한 페치 유한 상태 기계의 상태 천이도들 도시한다.
도 7은 카메라 모듈에 찍히는 화상의 실제 픽셀 위치와 각 거울 화상 모드에서의 픽셀 위치를 도시한다.
도 8은 리틀-엔디안 메모리 시스템에서의 각 거울 화상 모드에서의 픽셀 위치를 도시한다.
도 9는 X축 거울 화상을 바로 잡기 위한 화상 변환(X축 거울화)에서의 어드레스 변화를 도시한다.
도 10은 Y축 거울 화상을 바로 잡기 위한 화상 변환(Y축 거울화)에서의 어드레스 변화를 도시한다.
도 11은 Y축 거울화에 있어서, 버스트 전송 길이 16에서의 워드 순서 및 한 워드 내 픽셀 순서 변경을 개략적으로 도시한다.
도 12는 Y축 거울화에 있어서 워드 순서 및 워드 내 픽셀 순서 그리고 DMA 어드레스 순서를 고려한 어드레스 변경 방법을 개략적으로 도시한다.
도 13은 XY축 거울 화상을 바로 잡기 위한 화상 변환(XY축 거울화)에서의 어드레스 변화를 도시한다.
도 14는 XY축 거울화에 있어서 워드 순서 및 워드 내 픽셀 순서 그리고 DMA 어드레스 순서를 고려한 어드레스 변경 방법을 개략적으로 도시한다.
도 15는 어드레스 생성 수단의 동작을 개략적으로 도시하는 순서도이다.
도 16은 데이터 선택 수단에 대한 상세한 블록도이다.
도 17은 DMA 어드레스 변화 시점 및 그 순서를 개략적으로 도시한다.
도 18은 카메라 모듈에서 처리되는 데이터 타입을 개략적으로 도시한다
본 발명은 화상 변환 장치에 관한 것으로서, 더욱 상세하게는 특화된 DMA를 이용하여 화상 변환을 구현할 수 있는 카메라 인터페이스에 관한 것이다.
최근에 들어 무선 통신시장의 폭발적인 발전은 수많은 사람들이 휴대전화 같 은 휴대용 단말기를 통해서 시간과 장소에 제한을 받지 않고 원하는 정보를 주거나 받을 수 있는 세상을 열어 놓았다. 휴대전화 처음에는 단순히 음성 통신, 문자 전송을 위해 사용되었지만, 근래에는 무선 인터넷 기능을 통해 MP3 음악의 다운로드 및 재생에도 사용되고 있다. 또한 소비자들의 멀티미디어에 대한 끝없는 욕구에 부응하여 카메라 모듈 탑재된 휴대전화가 시장에 나오고 있다.
카메라 모듈은 화상 센서(image sensor)와 화상 신호 처리기(Image Signal Processor)를 포함한다. 피사체가 갖는 광학 신호가 화상 센서(image sensor)에 의해 전기적 신호로 변환된 후 화상 신호 처리기에 의해서 처리된다.
화상 센서는 이차원적으로 배열된 화소로 구성되며, 각 화소는 광다이오우드 및 독출 장치로 구성된다. 화소를 구성하는 독출 장치로서 캐패시터 및 트랜지스터가 사용되며 사용되는 독출 장치의 종류에 따라 화상 센서는 고체촬상소자(CCD:Charge Coupled Device) 화상 센서 및 상보성금속산화막반도체(CMOS:Complementary Metal-Oxide-Silicon) 화상 센서로 분류된다. 캐패시터를 독출 장치로 사용하는 CCD 화상 센서의 경우 전하(charge)가 쉬프트되어 독출된다. 반면 CMOS 화상 센서의 경우 전하 또는 전압이 행 및 열 해독기(row and column decoder)에 의해서 독출된다.
CMOS 화상 센서는 고정 패턴 잡음(fixed pattern noise) 및 시간적 잡음(temporal noise)이 CCD 화상 센서에 비해서 큰 반면 고집적화 및 낮은 전력 소모를 나타내기 때문에 주로 휴대전화에 널리 사용되고 있다. CCD 화상 센서는 집적화 및 전력 소모 측면에서 CMOS 화상 센서에 비해 열등한 반면 화질이 우수하고 감도가 높기 때문에 주로 고화질을 요구하는 디지털 스틸 카메라, CCTV, 캠코더에 널리 사용되고 있다.
하지만 CCD 화상 센서 기술의 발달로 소비전력이 줄어들고 집적화가 용이해 지고 특히 고화질에 대한 소비자의 욕구가 매우 크기 때문에 휴대전화에도 CCD 화상 센서가 널리 사용될 전망이다.
CCD 화상 센서를 휴대전화기에 탑재함에 있어서 발생될 수 있는 큰 문제 중의 하나는 화상 뒤집힘 현상이다. 휴대전화에 탑재되는 카메라 모듈은 사용 중에 그 위치가 변하기 때문에 화상이 뒤집히는 현상이 발생한다. 카메라 모듈의 위치 변환에 따라 원래 화상에 대하여 X축 대칭 화상(X축 거울 화상), Y축 대칭 화상(Y축 거울 화상), 또는 XY축 대칭 화상(XY축 거울 화상)이 발생한다. 따라서 이 같은 뒤집어진 화상을 다시 역으로 뒤집어 바로 잡아줄 필요가 있다.
화상 뒤집힘이 발생하면 CMOS 화상 센서의 경우 행 및 열 해독기가 있어서 행 및 열 어드레스를 조작하면 용이하게 뒤집어진 화상을 바로 잡을 수 있다. 하지만, CCD 화상 센서는 쉬프트 레지스터 방식으로 전하(신호)가 독출되기 때문에 화상 센서에서 출력되는 화상의 수평 라인 순서가 정해져 있다. 따라서 CCD 화상 센서에서 출력되는 화상을 화상 신호 처리기가 프레임 버퍼를 사용하여 변환하거나 또는 외부 메모리에 저장하였다가 소프트웨어적으로 화상을 변환해주는 방법을 생각해 볼 수 있다. 하지만 고해상도의 화상에 대한 요구는 화상 뒤집힘 교정을 위한 메가급 이상의 프레임 버퍼를 필요로 한다. 따라서, 카메라 모듈 내에 메가급 이상의 프레임 버퍼를 사용하는 것은 불필요한 대용량의 메모리 요구 사항을 증가시켜 카메라 모듈의 크기가 증가하고 또한 프레임 버퍼링으로 인한 지연을 발생시킨다. 외부 메모리를 사용하는 것은 불필요한 메모리 액세스를 증가시켜 고속, 저전력 및 소형의 휴대전화 구현을 어렵게한다.
따라서 본 발명이 이루고자 하는 기술적 과제는 DMA를 이용한 화상 변환 장치, 화상 변환을 위한 DMA 장치 및 화상 변환을 지원하는 카메라 인터페이스를 제공하는 것이다.
상기 본 발명이 이루고자 하는 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 화상 변환 장치는 화상 데이터를 저장하며 DMA로 버스트 액세스되는 버퍼 메모리와, 상기 버퍼 메모리에 저장된 화상 데이터의 수평 라인의 워드 순서 및 한 워드내 픽셀 순서를 변경하여 출력할 수 있는 데이터 선택 수단과, 상기 데이터 선택 수단에서 출력되는 화상 데이터를 위한 프레임 시작 어드레스, 라인 시작 어드레스, 버스트 전송 시작 어드레스를 변경시킬 수 있는 어드레스 발생 수단을 포함한다.
일 실시예에 있어서, 상기 데이터 선택 수단은 상기 버퍼 메모리에 저장된 워드 및 상기 워드를 구성하는 픽셀 순서가 뒤집힌 워드를 입력으로 하며 상기 버스트 전송 길이에 대응하는 개수의 픽셀 순서 변경 다중화기들과, 상기 픽셀 순서 변경 다중화기들의 출력 워드들을 입력으로 하여 입력된 순서로 또는 역순으로 워드들을 출력하는 워드 순서 변경 다중화기를 포함한다. 상기 픽셀 순서 변경 다중 화기들은 모드 선택 신호에 따라 상기 워드 및 픽셀 순서가 뒤집힌 워드를 선택하여 출력하고, 상기 워드 순서 변경 다중화기는 0 및 (L-1) 사이를 증가 또는 감소하면서 계수하는 계수기 출력들에 따라 입력 워드들을 선택하여 출력한다(여기서 L은 버스트 전송 길이). 거울 화상 모드의 종류에 따라 계수기의 초기 값이 0 또는 L-1로 설정된다. 즉, X축 거울 화상 또는 정상 모드의 경우 상기 계수기의 초기 값이 0으로 설정되고 XY축 거울 화상 및 Y축 거울 화상 모드의 경우 상기 계수기의 초기 값이 L-1 로 설정된다.
상기 어드레스 발생 수단은 X축 거울 화상 모드의 경우 화상 한 프레임의 전체 어드레스 공간에서 수평 한 라인에 해당하는 어드레스 공간을 감산하여 상기 프레임 시작 어드레스를 설정하고, 수평 한 라인에 대한 처리가 종료된 시점의 현재 어드레스에서 수평 두 라인에 해당하는 어드레스 공간을 감산하여 새로운 라인 시작 어드레스를 설정한다.
상기 어드레스 발생 수단은 Y축 거울 화상 모드의 경우, 한 라인에 해당하는 어드레스 공간에서 버스트 전송 길이에 대응하는 어드레스 공간을 가산하여 상기 프레임 시작 어드레스를 설정하고, 버스트 전송을 하기 전에 현재 어드레스에서 2배의 주 버스트 전송에 대응하는 어드레스 공간을 감산하여 상기 버스트 전송 시작 어드레스를 설정하고, 수평 한 라인에 대한 처리가 종료된 시점에서의 현재 어드레스에서 수평 두 라인에 해당하는 어드레스 공간을 가산하고 한 라인의 마지막 두 번의 버스트 전송의 길이 차에 대응하는 어드레스 공간을 가산하여 상기 라인 시작 어드레스를 설정한다.
상기 어드레스 발생 수단은 XY축 거울 화상 모드의 경우, 화상 한 프레임의 전체 어드레스 공간에서 버스트 전송에 대응하는 어드레스 공간을 가산하여 상기 프레임 시작 어드레스를 설정하고, 버스트 전송이 종료될 때 종료된 시점에서의 현재 어드레스에서 2 배의 주 버스트 전송에 대응하는 어드레스 공간을 감산하여 상기 버스트 전송 시작 어드레스를 설정하고, 수평 한 라인에 대한 처리가 종료된 시점에서의 현재 어드레스에서 한 라인의 마지막 두 번의 버스트 전송 차에 대응하는 어드레스 공간을 가산하여 상기 라인 시작 어드레스를 설정한다.
상기 X축 거울 모드 및 XY축 거울 모드에서, 화상의 수평 한 라인의 픽셀이 주 버스트 전송 길이에 대응하는 픽셀 개수의 배수가 아닐 경우, 마지막 버스트 전송 시작 어드레스는 현재 어드레스에서 주 버스트 전송 및 잔여 버스트 전송의 합에 해당하는 어드레스 공간을 감산하여 설정된다.
일 실시예에 있어서, 수평 한 라인의 픽셀 개수가 상기 버스트 전송 길이에 해당하는 픽셀 개수의 배수가 아닐 때, 수평 한 라인의 마지막 버스트 전송은 잔여 버스트 전송에 의해 액세스된다. 즉, 잔여 버스트 전송 이전의 모든 버스트 전송은 동일한 버스트 길이의 주 버스트 전송으로 이루어지고 마지막 버스트 전송은 잔여 버스트 전송으로 이루어진다.
상기 본 발명이 이루고자 하는 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 화상 변환을 위한 DMA 장치는 DMA로 버스트 액세스된 화상 데이터를 저장하는 버퍼 메모리와, DMA 버스트 전송을 제어하는 DMA 제어 수단과, 상기 DMA 제어 수단 상태를 보면서 상기 버퍼 메모리에 저장된 화상 데이터의 워드 순서 및 워드내 픽셀 순서를 변경하여 출력하는 데이터 선택 수단과, 상기 DMA 제어 수단 상태를 보면서 상기 데이터 선택 수단이 출력하는 화상 데이터를 위한 프레임 시작 어드레스, 라인 시작 어드레스, 버스트 전송 시작 어드레스를 변경시킬 수 있는 어드레스 발생 수단과, 상기 DMA 제어 수단 상태 및 버스 상태를 보면서 버스 신호를 발생시키는 버스 프로토콜 신호 발생 수단을 포함한다.
일 실시예에 있어서, 상기 DMA 제어 수단은 DMA 전송 상태를 표시하는 DMA 유한 상태 기계와, 색 성분들에 대한 DMA 액세스 우선권을 관장하는 채널 아비터와, 상기 DMA 유한 상태 기계의 상태 및 채널 아비터의 상태를 보고 외부 FIFO 메모리로부터 데이터를 가져올 건지를 제어하는 페치 유한 상태 기계를 포함한다.
상기 본 발명이 이루고자 하는 기술적 과제를 달성하기 위한 본 발명의 일 실시예에는 카메라 모듈에서 받은 화상 데이터를 시스템 버스에 실어 외부 프레임 메모리에 전달하는 카메라 인터페이스를 제공한다. 상기 카메라 인터페이스는 상기 카메라 모듈에서 받은 화상 데이터의 전처리를 담당하는 전처리부와, 상기 전처리부가 출력하는 화상 데이터의 픽셀 개수를 변경하여 FIFO 메모리에 저장하는 스케일링부와, 상기 스케일링부의 FIFO 메모리에 저장된 화상 프레임이 상기 시스템 버스로 DMA로 버스트 액세스되도록 하며 화상 변환을 가능케 하는 DMA 장치를 포함한다. 상기 DMA 장치는 상기 FIFO 메모리로부터 제공된 화상 데이터를 저장하는 버퍼 메모리와, 상기 버퍼 메모리로부터 상기 시스템 버스로의 DMA 버스트 전송을 제어하는 DMA 제어 수단과, 상기 DMA 제어 수단 상태를 보면서 상기 버퍼 메모리에 저장된 화상 데이터의 워드 순서 및 워드내 픽셀 순서를 변경하여 출력하는 데이터 선택 수단과, 상기 DMA 제어 수단 상태를 보면서 상기 데이터 선택 수단의 출력 화상 데이터를 상기 외부 프레임 메모리에 저장하기 위한 프레임 시작 어드레스, 라인 시작 어드레스, 버스트 전송 시작 어드레스를 변경시킬 수 있는 어드레스 발생 수단과, 상기 DMA 제어 수단 상태 및 상기 시스템 버스 상태를 보면서 버스 신호를 발생시키는 버스 프로토콜 신호 발생 수단을 포함한다.
이하 첨부한 도면들을 참조하여 본 발명의 실시예들을 상세히 설명하기로 한다. 그러나, 본 발명은 여기서 설명되어지는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되어지는 것이다.
본 발명은 데이터 처리 장치의 일종인 화상 변환 장치에 관한 것으로서, 특히 비디오 입력 장치의 화상 거울 기능(X축 거울 영상 또는 Y축 거울 화상) 및 화상 180도 회전 기능(XY축 거울 화상)을 위한 특화된 DMA 장치에 관한 것이다.
비디오 입력 장치의 일 실시예로서 카메라 모듈이 탑재된 휴대전화기의 화상 변경에 관하여 설명을 하기로 한다. 본 발명의 일 실시예에 따른 휴대전화기는 화상 거울 기능(image mirror function)을 카메라 인터페이스의 특화된 DMA를 이용하여 원래 화상을 복원한다.
도 1은 본 발명의 일 실시예에 따른 휴대전화기의 카메라 모듈(101) 및 응용 프로세서(111)를 개략적으로 도시하는 블록도이다. 카메라 모듈(101)은 화상 센서(103) 및 화상 신호 처리기(ISP)(105)를 포함한다. 화상 센서(103)는 CCD 화상 센서 또는 CMOS 화상 센서이다. 응용 프로세서(111)는 카메라 인터페이스(113), 프로세싱 유닛(123), 메모리 인터페이스(125), 그리고 이들을 상호 연결하는 시스템 버스(129)를 포함한다. 카메라 인터페이스(113)는 전처리부(115), 색 스케일링부(117) 및 영상 변환 기능을 수행하는 DMA(Direct Memory Access) 장치(119)를 포함한다. 시스템 버스(129)는 예컨대 AHB(Advanced High Performance Bus) 버스이고 메모리 인터페이스(125)를 통해서 외부 프레임 메모리(127)가 연결되며 프레임 메모리(1209)는 예컨대 에스디램(SDRMA)이다.
피사체가 갖는 광학 신호가 화상 센서(103)에 의해 전기적 신호로 변환된 후 화상 신호 처리기(105)에 의해서 처리되어 카메라 인터페이스(113)에 전달된다. 카메라 인터페이스(113)는 카메라 모듈(101)로부터 받은 연속적인 픽셀 데이터를 색 성분 별로 모으고 영상 변환을 수행한 후 시스템 버스(129)로 전달한다. 시스템 버스(129)에 실린 픽셀 데이터는 메모리 인터페이스(125)를 통해 프레임 메모리(127)에 저장된다. 프레임 메모리(127)에 저장된 화상 프레임은 압축된 후 전송되거나 휴대전화기의 액정화면에 나타난다.
카메라 인터페이스(113)의 전처리부(115)는 카메라 모듈(101)로부터 받은 4:2:2 포맷의 YCbCr 픽셀 데이터를 4:2:2, 4:2:0 포맷의 YCbCr 데이터로 변환하고 윈도잉(Windowing) 및 각종 전처리를 담당한다. 또한 전처리부(115)는 YCbCr 데이터를 휘도(Y) 및 색차(Cb, Cr) 성분 별로 분리하여 색 스케일링부(117)에 전달한다.
색 스케일링부(117)는 코덱(Codec) 경로 및 프리뷰(preview) 경로를 위한 스 케일링부를 포함한다. 프리뷰 색 스케일링부는 카메라 모듈에서 찍은 화상을 휴대전화기의 액정화면을 통해서 직접 볼 수 있도록 하기 위한 것이다. 코덱 색 스케일링부는 화상을 압축하여 전송하기 위한 것이다. 각 스케일링부는 전처리부(115)에서 받은 화상 데이터의 픽셀 개수를 늘리거나 줄여서 FIFO 메모리에 저장한다. 한편 프리뷰 스케일링부는 YCbCr 데이터를 RGB 데이터로 변환하기 위한 색 변환부를 더 구비한다.
DMA 장치(119)는 색 스케일링부(117)로부터 받은 화상 데이터를 거울 화상 모드에 따라 적절히 화상을 변경하여 시스템 버스로 화상 데이터를 제공한다. DMA 장치(119)는 프리뷰 경로 및 코덱 경로 각각에 대하여 존재한다. 본 발명의 DMA 장치(119)는 화상 거울 기능(화상 복원 기능)이 있는 특화된 DMA 장치이다.
도 2는 도 1의 DMA 장치에 대한 상세한 블록도이다. DMA 장치는 코덱 DMA 장치(119) 및 프리뷰 DMA 장치(119')로 나뉜다. 각 DMA 장치(119,. 119')는 코덱 색 스케일링부의 FIFO 메모리(118) 및 프리뷰 색 스케일링부의 FIFO 메모리(118')에 저장된 화상 데이터를 저장하는 내부 버퍼 메모리(207, 207')와, 거울 영상 모드에 따라 시스템 버스 어드레스를 변경할 수 있는 어드레스 발생 수단(211, 211')과 거울 영상 모드에 따라 내부 버퍼 메모리(207, 207')로부터 출력되는 화상 데이터의 순서를 변경할 수 있는 데이터 선택 수단(213, 213')을 포함한다. 또한 각 DMA 장치(119, 119')는 시스템 버스 프로토콜 신호를 생성하는 프로토콜 신호 발생기(209, 209')를 포함한다. 어드레스 발생 수단(211, 211')은 내부 버퍼 메모리(207, 207')로부터 출력되는 화상 데이터를 외부 프레임 메모리(127)에 저장하기 위한 프레임 시작 어드레스, 라인 시작 어드레스, 버스트 전송 시작 어드레스를 발생한다. 데이터 선택 수단(213, 213')은 내부 버퍼 메모리(207, 207')에 저장된 화상 데이터의 워드 순서 및 한 워드내 픽셀 순서를 변경하여 출력한다.
FIFO 메모리(118, 118')에 저장된 화상 프레임이 버스(129)로 버스트 액세스되기 위하여 내부 버퍼 메모리(207, 207')에 저장되고, 거울 화상 모드에 따라 데이터 선택 수단(213, 213')에 의해서 내부 버퍼 메모리(207, 207')에 저장된 화상 데이터의 워드 순서 및 픽셀 순서가 변경되어 시스템 버스를 통해서 외부 프레임 메모리(127)에 DMA로 버스트로 저장된다. 이때, 외부 프레임 메모리(127)에 화상 데이터를 저장하기 위한 어드레스는 어드레스 발생 수단(211, 211')에 의해서 제공된다. 어드레스 발생 수단(211, 211')은 화상 거울 모드에 따라 버스트로 액세스된 화상 데이터의 프레임 시작 어드레스, 버스트 전송 시작 어드레스, 라인 시작 어드레스를 발생한다.
버스트 전송 길이( L)는 버스트 2, 버스트 4, 버스트 8, 버스트 16이 지원된다. 한편, 처리하고자 하는 화상 프레임의 수평 픽셀 개수가 버스트 길이에 대응하는 픽셀 개수로 나눠 떨어지지 않을 경우에는(즉, 마지막에 남아 있는 픽셀 개수가 버스트 전송 길의 픽셀 개수보다 작을 경우), 버스 효용을 높이기 위해서 남아 있는 픽셀 개수에 맞게 마지막 남아 있는 픽셀의 버스트 전송은 잔여 버스트 전송(remained burst transfer)으로 이루어진다. 즉, 전체 버스트 전송은 주 버스트 전송(main burst transfer) 및 잔여 버스트 전송으로 이루어진다. 주 버스트 전송 길이로 주 버스트 전송이 이루어지다가 마지막 버스트 전송은 잔여 버스트 전송 길이를 갖는 잔여 버스트 전송으로 이루어진다. 처리하고자 하는 수평 픽셀의 개수를 알고 있기 때문에 주 버스트 전송 길이 및 잔여 버스트 전송 길이는 특수 기능 레지스터에 설정된다.
화상 한 프레임의 한 수평 라인의 마지막 두 번의 버스트 전송은 두 번 모두가 주 버스트 전송(수평 한 라인의 픽셀 개수가 주 버스트 전송 길이의 픽셀로 나눠 떨어지는 경우)이거나 또는 주 버스트 전송 및 잔여 버스트 전송이다. 버스트 전송 길이는 화상 프레임의 수평 한 라인의 크기, 시스템 버스에 맞게 적절하게 설계가 능하다.
예컨대, 수평 방향 픽셀 개수를 240이라고 가정할 경우, 60 워드이고 버스트 길이 8로 주 버스트 전송을 7번하면 남아 있는 픽셀 개수는 16개, 즉 4워드이다. 따라서, 버스트 길이 8로 주 버스트 전송을 하다가 마지막 버스트 전송은 버스트 길이 4로서 잔여 버스트 전송을 한다.
한편 수평 방향 픽셀 개수를 224로 가정할 경우, 56워드이다. 이 경우 버스트 길이 8로 7번의 주 버스트 전송을 한다. 또는 버스트 길이 16으로 3번의 주 버스트 전송을 하면 남아 있는 워드는 8워드이다. 따라서 마지막은 버스트 길이 8로 잔여 버스트 전송을 한다.
X축 거울 화상 모드 또는 정상 화상 모드인 경우 데이터 선택 수단(213, 213')은 내부 버퍼 메모리(207, 207')에서 출력되는 화상 데이터의 워드 순서 및 워드 내 픽셀 순서를 변경하지 않고 그대로 유지한 채로 화상 데이터를 출력하여 시스템 버스에 싣는다. 반면 Y축 거울 화상 모드 또는 XY축 거울 화상 모드인 경 우, 데이터 선택 수단(213, 213')은 내부 버퍼 메모리(207, 207')에 저장된 화상 데이터의 워드 순서 및 워드 내 픽셀 순서를 뒤집어서 출력하여 시스템 버스에 싣는다.
X축 거울 화상 모드인 경우, 어드레스 발생 수단(211)은 한 프레임의 전체 어드레스 공간(address space)에서 수평 한 라인에 해당하는 어드레스 공간을 감산하여 프레임 시작 어드레스를 설정하고, 수평 한 라인에 대한 처리가 종료되면 종료된 시점의 현재 어드레스에서 수평 두 라인에 해당하는 어드레스 공간을 감산하여 새로운 라인 시작 어드레스를 설정한다.
Y축 거울 화상 모드인 경우, 어드레스 발생 수단(211)은 화상이 수평 한 라인에 해당하는 어드레스 공간에서 버스트 전송에 대응하는 어드레스 공간을 가산하여 프레임 시작 어드레스를 설정하고, 버스트 전송 시작 전에 현재 어드레스에서 버스트 전송으로 증가할 어드레스를 미리 감안하여 2배의 주 버스트 전송에 대응하는 어드레스 공간을 감산하여 버스트 전송 시작 어드레스를 설정하고, 수평 한 라인에 대한 처리가 종료될 때 종료된 시점에서의 현재 어드레스에서 수평 두 라인에 해당하는 어드레스 공간을 가산하고 마지막 두 번의 버스트 전송의 차에 대응하는 어드레스 공간을 가산하여 라인 시작 어드레스를 설정한다.
한편, XY축 거울 화상 모드인 경우, 어드레스 발생 수단(211)은 한 프레임의 전체 어드레스 공간에서 버스트 전송에 대응하는 어드레스 공간을 가산하여 프레임 시작 어드레스를 설정하고, 버스트 전송 시작 전에 현재 어드레스에서 버스트 전송으로 증가할 어드레스를 미리 감안하여 2배의 주 버스트 전송에 대응하는 어드레스 공간을 감산하여 버스트 전송 시작 어드레스를 설정하고, 수평 한 라인에 대한 처리가 종료될 때 종료된 시점에서의 현재 어드레스에서 한 라인의 마지막 두 번의 버스트 전송 차에 대응하는 어드레스 공간을 가산하여 라인 시작 어드레스를 설정한다.
X축 거울 모드 및 XY축 거울 모드에서, 화상의 수평 한 라인의 픽셀이 주 버스트 전송 길이에 대응하는 픽셀 개수의 배수가 아닐 경우, 마지막 버스트 전송 시작 어드레스는 현재 어드레스에서 주 버스트 전송 및 잔여 버스트 전송의 합에 해당하는 어드레스 공간을 감산하여 설정된다.
어드레스 발생 수단(211) 및 데이터 선택 수단(213)에 대하여는 이후에 첨부한 도면을 참조하여 더 상세하게 설명할 것이다.
색 스케일링부의 FIFO 메모리(118, 118')로부터 내부 버퍼 메모리(207, 207')로의 데이터 페치(fetch)는 페치 유한 상태 기계(201, 201')에 의해서 제어되고 DMA 전송 상태는 DMA 유한 상태 기계(203, 203')가 알려준다. 한편 코덱 DMA 장치(119)는 각 색 성분 Y, Cr,Cr 별로 독립적인 내부 버퍼 메모리를 구비하며, 휘도 Y 및 색차 데이터 Cb, Cr에 대한 DMA 액세스를 관장하는 채널 아비터(channel arbiter)(205)를 더 포함한다. 반면 프리뷰 DMA 장치(119')는 입력 데이터가 RGB 포맷이므로 색 성분을 채널 별로 분리하는 채널 아비터가 필요 없다.
코덱 DMA 장치(119)의 채널 아비터(205)는 휘도 성분 Y, 및 색차 성분들 Cb, Cr 사이의 버스 독점을 제어하기 위한 로직회로로서 휘도 Y 및 색차 성분들 Cb, Cr 사이의 채널 선택(데이터 선택) 및 각 색 성분 데이터를 위한 내부 버퍼 메모리(207)로부터 버스(129)에 데이터를 싣기 위한 허가권을 채널(색 성분) 별로 관장하는 역할을 한다. 통상 휘도 성분 데이터가 전송량이 많으므로 휘도 성분 데이터는 높은 우선권이 높고 색차 성분 데이터의 경우 같은 우선권을 가지며 핑-퐁(ping-pong)으로 선택된다.
페치 유한 상태 기계(201, 201')는 DMA 유한 상태 기계(203, 203'), 채널 아비터(205)의 상태를 보고 FIFO 메모리(118, 118')로부터 데이터를 페치할 것인지를 제어한다. 페치 유한 상태 기계(201, 201')는 FIFO 메모리(208, 208')가 비어있지 않고 내부 버퍼 메모리(207, 207')의 상태가 DMA 전송 완료인 경우에 독출 제어 신호를 내보내고 시스템 버스(129)에 싣는 버스트 전송 길이 만큼만 FIFO 메모리(208, 208')로부터 데이터를 가져와 내부 버퍼 메모리(207, 207')에 저장한다. 버스트 전송 길이, 거울 화상 모드 판별은 특수 기능 레지스터(SFR)(223)에 설정된 값에 의한다.
도 3은 본 발명의 일 실시예에 따른 코덱 DMA 장치(119)의 데이터 흐름과 제어를 도시한다. DMA 유한 상태 기계(203)는 DMA 장치(119)의 전체적인 DMA 전송 상태(CurStateDMA)를 채널 아비터(205), 어드레스 발생 수단(211), 데이터 선택 수단(213), 버스 프로토콜 신호 발생기들(209a, 209b, 209c)에게 알려준다.
내부 버퍼 메모리들(207_Y, 207_Cb, 207_Cr)은 색 성분에 대한 개별적인 FIFO 버퍼 메모리들(118_Y, 118_Cb, 118_Cr)로부터 버스(129)로 버스트 액세스될 데이터를 저장한다. 이때, 페치 유한 상태 기계(201)는 DMA 유한 상태 기계(203), 채널 아비터(205)의 상태를 보고 FIFO 메모리(118_Y, 118_Cb, 118_Cr)로부터 데이 터를 페치할 것인지를 제어한다. 즉, 페치 유한 상태 기계(201)는 채널 아비터(205)로부터 내부 버퍼 메모리(207_Y, 207_Cb, 207_Cr)의 상태가 DMA 전송 완료되었다는 신호(Y/Cb/CrTransDone)를 받고 FIFO 메모리(118_Y, 118_Cb, 118_Cr)가 비어있지 않으면 독출 제어 신호를 내보내어 시스템 버스(129)에 싣는 버스트 전송 길이 만큼만 FIFO 메모리(118_Y, 118_Cb, 118_Cr)로부터 데이터를 가져와 내부 버퍼 메모리(207_Y, 207_Cb, 207_Cr)에 저장하고 DMA 준비 신호(FSM_DMA_ready)를 DMA 유한 상태 기계(203) 및 채널 아비터(205)에게 발송하여 픽셀 데이터의 페치가 완료되었음을 알린다.
채널 아비터(205)는 DMA 유한 상태 기계(203), 페치 유한 상태 기계(201)와 통신을 하며 DMA 유한 상태 기계(203)의 상태(CurStateDMA) 및 버스트 전송 길이를 보고 다중화기(303)에 제어 신호(DataSel)를 제공하여 휘도 및 색차 성분들 사이의 채널 선택(데이터 선택) 및 내부 버퍼 메모리들(207_Y, 207_Cb, 207_Cr)로부터 버스(129)에 데이터를 싣는 것을 제어하며 버스(129)로의 데이터 전송이 종료되면 DMA 전송 종료를 알리는 신호(Y/Cb/CrTransDone)를 페치 유한 상태 기계(201)에게 전달한다.
데이터 선택 수단(213)은 DMA 유한 상태 기계(203)의 상태를 보고 각 색 성분 별로 다중화기(213_Y, 213_Cb, 213_Cr)를 제어하는 신호(YSel, CbSel, CrSel)를 발생하여 각 내부 버퍼 메모리(207_Y, 207_Cb, 207_Cr)에 저장된 데이터의 워드 순서 및 픽셀 순서를 변경하여 다중화기(303)로 내보낸다. 다중화기(303)로부터 출력된 데이터는 기입 데이터 신호 발생기(305)에 의한 데이터 기입 신호(HWDATAout)의 제어 하에 데이터 버스에 실린다.
어드레스 발생 수단(211)은 DMA 유한 상태 기계(203)의 상태를 보고 거울 화상 모드에 따라 데이터 버스에 실리는 다중화기(303)의 출력 데이터를 외부 프레임 메모리(127)에 기입하기 위한 시스템 버스 어드레스(HADDRout)를 생성한다.
버스 프로토콜 신호 발생기들 209a, 209b, 209c는 DMA 유한 상태 기계(203)의 상태를 보고 각각 버스 프로토콜 신호들, 버스 요청 신호 HBUSREQx, 데이터 전송 유형 신호 HTRANSout, 버스트 전송 신호 HBURSTout 을 발생한다.
도 4는 DMA 유한 상태 기계(203)의 상태 천이도이다. 유휴 상태(IDLE)에서 페치 유한 상태 기계(201)로부터 DMA 전송 준비 신호(FSM_DMA_ready)가 발생하면 DMA 관장 상태(Arbitrate)를 거쳐 DMA 버스 요청 상태(BusRequest)로 천이 한다. 버스 요청 상태에서 버스 우선 신호(HGRANTx) 및 데이터 전송 완료 신호(HREADYin)가 발생하면 DMA 전송 상태(DMA_TRANS)로 천이 한다. DMA 전송 상태(DMA_TRANS)에서 데이터 전송이 완료되고 버스트의 마지막 데이터가 전송되면 다시 유휴 상태로 천이 한다.
도 5는 채널 아비터(205)에 대한 동작 순서도이다. 휘도 성분 Y 데이터는 색차 성분 Cb, Cr 데이터에 비해 우선권이 높다. 색차 성분 데이터는 동일한 우선권을 가지며 핑-퐁(ping-pong)으로 선택된다. 유휴 단계(IDLE)(501)에서 시작하여 단계 503에서 DMA 유한 상태 기계(203)를 판단하여 DMA 관장 상태라면 먼저 단계 505에서 휘도 성분 Y에 대한 전송 요청 여부를 판단한다. 단계 505에서 휘도 성분 Y에 대한 요청이 있으면 단계 507에서 휘도 성분 Y 전송을 위해 휘도 성분을 위한 FIFO 및 내부 버퍼 메모리가 선택되어 휘도 성분에 대한 데이터 전송이 이루어지고 단계 509로 이동한다. 단계 503에서 DMA 유한 상태 기계가 관장 상태가 아니라면 다시 유휴 상태로 돌아간다. 단계 505에서 휘도 성분에 대한 요청이 없으면 단계 509로 이동한다. 단계 509에서 휘도 성분에 대한 요청이 없고 색차 성분 Cb에 대한 요청이 있고 색차 성분 Cr에 대한 요청이 없는지(Arbiter State=No Y request, Cb request, No Cr request)를 판단한다. 단계 509에서 판단결과 긍정이면, 단계 511에서 색차 성분 Cb 전송을 위해 색차 성분을 Cb를 위한 FIFO 및 내부 버퍼 메모리가 선택되어 색차 성분 Cb에 대한 데이터 전송이 이루어지고 단계 513으로 이동한다. 단계 509에서 판단결과 부정이면 단계 513으로 이동한다. 단계 513에서 휘도 성분에 대한 요청이 없고 색차 성분 Cb에 대한 요청이 있고 색차 성분 Cr에 대한 요청이 있고 Cr 색차 성분이 서비스되지 않았는지(Arbiter State=No Y request, Cb request, Cr request, Cb not serviced)를 판단한다. 단계 513에서 판단결과 긍정이면, 단계 515에서 Cb 색차 성분에 대한 데이터 전송이 진행되고 단계 517로 이동한다. 단계 513에서 판단결과 부정이면 단계 517로 이동한다. 단계 517에서 휘도 성분에 대한 요청이 없고 색차 성분 Cb에 대한 요청이 있고 색차 성분 Cr에 대한 요청이 있고 색차 성분 Cb에 대한 전송이 수행 되었는지(Arbiter State=No Y request, Cb request, Cr request, Cb serviced)를 판단한다. 단계 517에서 판단결과 긍정이면, 단계 519에서 색차 성분 Cr에 대한 데이터 전송이 이루어지고 단계 521로 이동한다. 단계 517에서 판단결과 부정이면 단계 521로 이동한다. 단계 521에서 휘도 성분에 대한 요청이 없고 색차 성분 Cb에 대한 요청이 없고 색차 성분 Cr에 대한 요청이 있는지(Arbiter State=No Y request, No Cb request, Cr request)를 판단한다. 단계 521에서 판단결과 긍정이면 단계 523으로 이동하여 색차 성분 Cr에 대한 데이터 전송이 이루어지고 유휴 상태로 돌아간다. 단계 521에서 판단결과 부정이면 유휴 단계로 이동한다.
도 6(6a 및 6b)은 휘도 성분에 대한 페치 유한 상태 기계의 상태 천이도를 도시한다. 색차 성분들에 대한 상태 천이도 역시 동일한 양상을 나타낸다. 도면을 참조하면, 페치 유한 상태 기계는 DMA 유한 상태 기계 및 채널 아비터를 보고 버스트 전송 길이를 고려하여 FIFO 메모리로부터 내부 버퍼 메모리로 데이터를 페치할 것인지를 제어함을 알 수 있다.
페치 유한 상태 기계는 FIFO 메모리가 비어있지 않고(~FIFO_Y_Empty_sync) 내부 버퍼 메모리의 상태가 DMA 전송 완료(YTransDone)인 경우에 독출 제어 신호(FIFO_Y_rd)를 내보내고 시스템 버스에 싣는 버스트 전송 길이(YBurst) 만큼만 FIFO 메모리로부터 데이터를 가져와 내부 버퍼 메모리에 저장한다.
이하에서는 본 발명에 따른 어드레스 발생 수단 및 데이터 선택 수단에 대해서 더 구체적으로 설명을 하기로 한다.
이하에서는 각 화상 데이터 픽셀은 1바이트이고 시스템 버스가 32비트인 경우로 한정하여 설명을 하기로 한다. 32비트 시스템의 경우 한 워드 당 4개의 픽셀이 실려서 시스템 버스(129)를 통해 외부 프레임 메모리(123)로 전달된다. 하지만 픽셀이 바이트 단위가 아니라 10 비트 또는 그 이상의 비트로 구현이 되거나 16비트, 64비트 시스템 버스에도 본 발명이 동일하게 적용된다. 또한 주 버스트 전송 길이(L)가 16이고 잔여 버스트 전송 길이가 8인 경우를 일 예로서 설명을 한다. 주 버스트 전송시 16워드(=64 픽셀)의 화상 데이터가 전송된다.
도 7은 카메라 모듈에 찍히는 화상의 실제 픽셀 위치와 각 거울 화상 모드에서의 픽셀 위치를 도시한다. 도면에서 설명의 편의상 화상의 수평 폭이 224 픽셀인 것으로 가정하였고 라인 수는 10개로 가정하였다. 이 경우 버스트 전송은 두 방법이 가능하다. 즉 상술한 바와 같이 모두 주 버스트 전송 길이 8로 진행할 수 있고 또한 주 버스 전송 길이 16으로 전송하다가 마지막은 잔연 버스트 전송 길이 8로 진행할 수 있다. 이하에서는 후자의 경우를 예로 설명하기로 한다.
한편 도 7의 메모리 저장 상태는 리틀-엔디안 메모리 시스템의 경우 도 8과 같은 방식으로 저장된다. 도 8을 참조하여, X축 거울 화상의 경우, 워드 순 및 한 워드내 픽셀의 순서가 변경되지 않고 그대로 유지됨을 알 수 있고, Y축 거울 화상 및 XY축 거울 화상의 경우 워드 순서 및 한 워드내의 픽셀 순서가 변경됨을 알 수 있다.
한편, X축 거울 화상의 경우 화상 한 프레임의 마지막 라인부터 픽셀 데이터가 기입되어 한 라인씩 프레임의 위쪽으로 올라가면서 기입됨을 알 수 있다. 반면, Y축 거울 화상의 경우, 화상 한 라인의 마지막에서부터 처음으로 픽셀 데이터가 기입되고 한 라인씩 프레임의 아래로 내려가면서 기입된다. XY축 거울 화상의 경우, X축 거울 화상과 유사하게 프레임의 마지막 라인에서부터 기입되고 또한 Y축 거울 화상과 유사하게 라인의 끝에서부터 처음으로 픽셀 데이터가 기입되면서 한 라인씩 프레임의 위쪽으로 올라가면서 기입됨을 알 수 있다.
(X축 거울 화상의 X축 거울화)
도 9는 X축 거울 화상을 바로 잡기 위한 화상 변환(X축 거울화)에서의 어드레스 변화를 도시한다. 도시된 바와 같이 X축 거울화를 위해서는 워드 순서 및 워드 내 픽셀 순서는 원래 화상과 동일하게 유지되고 프레임 시작 어드레스 및 라인 시작 어드레스는 변경되어야 함을 알 수 있다. 즉, 어드레스 발생 수단은 프레임의 시작이 한 화상 프레임의 마지막 라인에서부터 시작하며 한 라인이 종료되면(한 라인의 끝을 알리는 EOL 신호가 발생하면) 프레임 위쪽으로 한 라인씩 올라가도록 어드레스를 발생시켜야 한다. 따라서, X축 거울 화상의 경우, 먼저 어드레스 발생 수단은 화상 한 프레임의 전체 어드레스 공간에서 수평 한 라인에 해당하는 어드레스를 감산하여 프레임 시작 어드레스를 설정한다. 이미 처리된 한 라인에 대한 어드레스를 감안하여, 새로운 라인에 대한 전송을 시작하기 전에, 수평 한 라인에 대한 처리가 종료된 시점의 현재 어드레스에서 수평 두 라인에 해당하는 어드레스를 감산하여 새로운 라인 시작 어드레스를 설정한다.
즉, 도 9를 참조하여 프레임 전체 어드레스 공간은 224*10= 2240를 가진다. 라인 시작 어드레스는 전체 어드레스 공간 2240 에서 한 라인에 해당하는 어드레스 공간(한 라인의 224개의 픽셀들에 해당하는 어드레스 공간) 224를 감산하여 2016 으로 설정된다. 이에 따라 외부 프레임 메모리(127)의 어드레스 2016 부터 순차적으로 어드레스 2239에 첫 번째 수평 라인의 224 개의 픽셀 데이터가 순차적으로 저장된다. 이어서 수평 한 라인의 데이터 전송이 종료된 시점의 현재 어드레스 2240에서 수평 두 라인에 해당하는 어드레스 공간(즉, 픽셀들 224*2 에 대응하는 어드 레스 공간 224*2)을 감산하여 새로운 라인 시작 어드레스가 1792 로 설정된다. 이어서 두 번째 수평 라인의 224 개의 픽셀 데이터가 외부 프레임 메모리(127)의 어드레스 1792 에서 부터 2015에 순차적으로 저장된다. 이와 같은 방법으로 한 프레임에 대한 데이터 전송을 반복한다.
라인 시작 어드레스는 다른 방식으로 설정될 수 있다. 즉 한 수평 라인에 대한 처리가 종료되면 그 이전의 라인 시작 어드레스에서 수평 한 라인에 해당하는 어드레스 공간을 감산하여 새로운 라인 시작 어드레스로 설정할 수도 있다.
(Y축 거울 화상에 대한 Y축 거울화)
도 10은 Y축 거울 화상을 바로 잡기 위한 화상 변환(Y축 거울화)에서의 어드레스 변화를 도시한다. 도시된 바와 같이 Y축 거울화를 위해서는 한 라인의 끝에서부터 앞쪽으로 데이터가 기입되도록 DMA 어드레스가 설정되어야 한다. 또한 전송 단위, 즉, 버스트 전송 길이 내에서 워드 순서 및 워드 내 픽셀 순서가 원래 화상으로부터 역순이 되어야 한다. 도 11은 Y축 거울화에 있어서, 버스트 전송 길이 16에서의 16개의 워드 순서 및 각 워드 내 픽셀 순서 변경을 개략적으로 도시한다. 워드 순서 W1 ~ W16이 워드 순서 W16 ~ W1로 뒤집혀야 하고 각 워드내에서의 픽셀 순서도 뒤집혀야 한다(예컨대, 첫 번째 워드 W1 내에서 픽셀 순서 0 ~ 3이 픽셀 순서 3 ~ 0으로 변경되어야 한다).
이와 같은 워드 순서 및 워드 내 픽셀 순서 그리고 DMA 어드레스 순서를 고려한 어드레스 변경 방법을 개략적으로 도시하면 도 12와 같다. 도 12에서 점선은 버스트 전송으로 인해서 순차적으로 증가하는 어드레스 변경을 나타내고 실선은 버 스트 길이 단위의 전송에서 버스트 전송 시작 어드레스 변경을 나타낸다. 프레임 시작 어드레스(첫 번째 라인 시작 어드레스)는 수평 한 라인에 해당하는 어드레스 공간(한 라인의 픽셀 개수 224 에 대응하는 어드레스 공간) 224에 버스트 16 전송 에 해당하는 어드레스 공간(버스트 16에 해당하는 64개의 픽셀에 해당하는 어드레스 공간) 64를 가산하여 프레임 시작 어드레스 288(=224+64)가 설정된다. 버스트 전송 시작 어드레스는, 버스트 전송 전에 현재 어드레스에서 주 버스트 전송으로 인해 증가할 어드레스를 미리 감안하여, 버스트 16 전송 및 현재 수행할 버스트 16 전송의 합(즉 2배의 주 버스트 전송)에 해당하는 어드레스 공간(64*2 픽셀에 해당하는 어드레스 공간)을 감산하여 설정된다. 이와 같은 방식으로 버스트 전송 시작 어드레스가 설정된다. 이때, 잔여 버스트 전송이 발생할 경우, 마지막 버스트 전송 시작 어드레스는, 버스트 전송이 끝난 시점의 현재 어드레스에서 2배의 주 버스트 전송에 해당하는 어드레스 공간을 감산하는 것이 아니라, 주 버스트 전송 및 잔여 버스트 전송의 합에 해당하는 어드레스 공간을 감산하여 설정된다.
도 10을 참조하여, 프레임 시작 어드레스 288에서 버스트 전송 길이의 2배의 픽셀 개수 128에 해당하는 어드레스 공간 128 을 감산하여 첫 번째 버스트 전송 시작 어드레스가 160 으로 설정된다. 버스트 전송 길이 16으로 외부 프레임 메모리(127)의 어드레스 160에서 부터 어드레스 223에 64개의 픽셀 데이터가 저장된다. 두 번째 버스트 전송 시작 어드레스는 첫 번째 버스트 전송이 끝난 시점에서의 현재 어드레스 224에서 버스트 전송 길이 16의 2배(이전에 수행한 버스트 전송 길이 16 및 현재 수행할 버스트 전송 길이 16)의 픽셀 개수 128에 해당하는 어드레 스 공간 128 을 감산하여 96 으로 설정된다. 두 번째 버스트 전송으로 어드레스 96에서 부터 어드레스 159에 64개의 픽셀(두 번째 버스트 전송)을 저장한다. 이 같은 과정을 반복하면서 수평 한 라인에 대한 데이터 전송을 진행한다.
세 번째 버스트 전송으로 외부 프레임 메모리(127)의 어드레스 32에서 부터 어드레스 95에 64개의 픽셀 데이터가 저장된다. 세 번째 버스트 전송이 끝난 시점에서의 현재 어드레스는 96이며, 이때 남아 있는 픽셀의 개수 32는 버스트 전송 길이 16의 픽셀 개수 64보다 작다. 따라서 마지막 버스트 전송 시작 어드레스는 현재 어드레스 96에서 이전에 수행한 버스트 전송 길이(주 버스트 전송 길이)에 대응하는 픽셀 개수 64와 남아 있는 픽셀에 대한 버스트 전송(잔여 버스트 전송 길이)에 대응하는 픽셀 개수 32의 합에 해당하는 어드레스 공간을 감산하여 어드레스 0으로 설정된다. 이어서 남아 있는 픽셀에 대하여는 잔여 버스트 길이, 즉 버스트 길이 8로 전송된다. 즉, 남아 있는 32개의 픽셀에 대하여 버스트 8로 전송되어 어드레스 0에서부터 어드레스 31에 저장된다. 만약 수평 픽셀의 개수가 버스트 전송 길이로 나눠 떨어질 경우, 이전 버스트 전송이 종료된 시점에서의 현재 어드레스에서 2배의 버스트 전송 길이의 픽셀 개수만큼의 어드레스 공간을 감산하여 마지막 버스트 전송 시작 어드레스가 설정된다.
수평 라인의 픽셀 개수가 버스트 전송 길이 16의 픽셀 개수로 나눠 떨어지지 않는 화상 프레임을 처리할 경우, 버스트 전송은 주 버스트 전송과 마지막 버스트 전송인 잔여 버스트 전송으로 이루어 진다. 따라서, 수평 한 라인의 마지막 버스트 전송 시작 어드레스는 버스트 전송이 끝난 시점에서의 현재 어드레스에서 주 버스 트 전송 및 잔여 버스트 전송의 픽셀 개수의 합에 해당하는 어드레스 공간을 감산하여 설정된다. 또는 수평 한 라인의 마지막 버스트 전송 시작 어드레스는 현재 어드레스에서 2 배의 주 버스트 전송 길이의 픽셀 개수에 해당하는 어드레스 공간을 감산하고 주 버스트 전송 길이의 픽셀 개수 및 잔여 버스트 전송 길이의 픽셀 개수의 차에 대응하는 어드레스 공간을 가산하여 설정될 수 도 있다.
한편 두 번째 라인 시작 어드레스는 수평 한 라인에 대한 처리가 종료된 시점에서의 현재 어드레스 32 (잔여 버스트 길이의 픽셀 개수에 대응하는 어드레스 공간)에서 수평 두 라인에 해당하는 어드레스 공간 448를 가산하고 마지막 두 번의 버스트 전송 길이의 차(즉, 주 버스트 길이 16 및 잔여 버스트 길이 8의 차)에 해당하는 픽셀의 어드레스 공간 32를 가산하여 512로 설정된다. 만약 수평 픽셀의 개수가 버스트 전송 길이로 나눠 떨어질 경우, 마지막 두 버스트 전송 길이가 동일하므로, 라인 시작 어드레스는 수평 한 라인에 대한 처리가 종료된 시점에서의 현재 어드레스에서 수평 두 라인에 해당하는 어드레스가 가산되어 설정될 것이다. 이와 같은 방식을 한 프레임에 대한 처리가 완료될 때까지 진행한다.
(XY축 거울 화상에 대한 XY축 거울화)
도 13은 XY축 거울 화상을 바로 잡기 위한 화상 변환(XY축 거울화)에서의 어드레스 변화를 도시한다. 도시된 바와 같이 XY축 거울화를 위해서는 한 라인의 끝에서부터 앞쪽으로 데이터가 기입되도록 그리고 한 화상 프레임의 마지막 라인부터 위쪽 라인으로 가면서 데이터가 기입되도록 DMA 어드레스가 설정되어야 한다. 또한 전송 단위, 즉, 버스트 전송 길이 내에서 워드 순서 및 워드 내 픽셀 순서가 원래 화상으로부터 역순이 되어야 한다.
이와 같은 워드 순서 및 워드 내 픽셀 순서 그리고 DMA 어드레스 순서를 고려한 어드레스 변경 방법을 개략적으로 도시하면 도 14와 같다. 도 14에서 점선은 버스트 전송으로 인해서 순차적으로 증가하는 어드레스 변경을 나타내고 실선은 버스트 길이 단위의 전송에서 버스트 전송 시작 어드레스 변경을 나타낸다. XY축 거울화는 Y축 거울화와 유사하게 버스트 전송 시작 어드레스가 설정되며 프레임 시작 어드레스는 프레임의 마지막 라인에서부터 시작하여 한 라인에 대한 처리가 종료되면 위쪽으로 한 라인씩 올라가도록 라인 시작 어드레스가 변경된다.
즉 도 13 및 도 14를 참조하여, 프레임 시작 어드레스는 화상 한 프레임의 전체 어드레스 공간 2240에서 버스트 16 전송 픽셀 개수 64에 대응하는 어드레스 공간 64를 가산하여 2304로 설정된다. 버스트 전송 시작 어드레스는 앞서 설명을 한 Y축 거울화 방식과 동일하다. 즉, 첫 번째 버스트 전송 어드레스는 프레임 시작 어드레스 2304에서 2배의 주 버스트 전송 길이 픽셀에 대응하는 어드레스 공간 128을 감산하여 2176으로 설정된다. 버스트 16으로 64개의 픽셀이 어드레스 2176에서 어드레스 2239에 저장된다. Y축 거울화에서 설명한 것과 동일하게 마지막 남아 있는 픽셀의 개수가 버스트 16의 픽셀 개수보다 작을 경우(잔여 버스트 전송이 발생할 경우), 마지막 버스트 전송 시작 어드레스는 이전 버스트 전송이 완료된 시점에서의 현재 어드레스에서 주 버스트 전송 길이의 픽셀 개수 및 잔여 버스트 전송 길이의 픽셀 개수의 합에 대응하는 어드레스 공간을 감산하여 설정된다.
그리고, 라인 시작 어드레스는 수평 한 라인에 대한 처리가 종료될 때 종료 된 시점에서의 현재 어드레스에서 주 버스트 전송 길이 16 및 잔여 버스트 전송 길이 8의 차(즉, 마지막 두 버스트 전송 길이의 차)에 대응하는 어드레스 공간을 가산하여 설정된다. 만약 수평 픽셀의 개수가 버스트 전송 길이로 나눠 떨어질 경우, 마지막 두 버스트 전송 길이의 차는 0이 될 것이다.
도 15는 이상에서 설명한 어드레스 생성 수단의 동작을 개략적으로 도시하는 순서도이다. 유휴 상태에서 시작하여 단계 1501에서 프레임 시작 신호가 발생하였는지를 판단한다. 프레임 시작 신호가 발생하면 상술한바와 같이 X축 거울 모드, Y축 거울 모드, XY축 거울 모드, 정상 모드에 적합하게 프레임 시작 어드레스가 설정되고 다시 유휴 상태로 돌아간다.
단계 1501에서 프레임 시작 신호가 발생하지 않았다면(데이터 전송 중일 경우), 단계 1505에서 X축 거울 모드이고 라인의 끝인지가 판단된다. 단계 1505에서 판단 결과 긍정이면(즉, X축 거울 모드에서 한 라인에 대한 처리가 종료되었다면), 단계 1507에서 종료된 시점의 현재 어드레스에서 2개의 라인에 대응하는 어드레스 공간을 감산하여 새로운 라인 어드레스가 설정되고(TAdd<=TAdd - LineWidth*2) 유휴 상태로 돌아간다. 단계 1505에서 판단결과 부정이면(X축 거울 모드가 아니고 라인의 끝이 아니라면), 단계 1509에서 Y축 거울 모드이고 라인의 끝인지 판단한다. 단계 1509에서 판단결과 긍정이면(즉, Y축 거울 모드이고 한 라인의 처리가 종료되었다면) 단계 1511에서 종료된 시점의 현재 어드레스에서 2 배의 버스트 전송 길이의 픽셀 개수에 해당하는 어드레스 공간을 가산하고 주 버스트 전송 길이의 픽셀 개수 및 잔여 버스트 전송 길이의 차의 픽셀 개수에 대응하는 어드레스 공간을 가 산하여 라인 시작 어드레스가 설정된 후(TAdd<=TAdd + LineWidth*2 + MainBurstLength*4 - RemainedBurstLength*4) 유휴 상태로 돌아간다.
단계 1509에서 판단결과 부정이면, 단계 1513에서 XY축 거울 모드이고 라인의 끝인지가 판단된다. 단계 1513에서 판단결과 긍정이면(XY 축 거울 모드이고 한 라인에 대한 처리가 종료되었다면), 단계 1515에서 수평 한 라인에 대한 처리가 종료된 시점에서의 현재 어드레스에서 주 버스트 전송 길이 및 잔여 버스트 전송 길이의 차의 픽셀 개수에 대응하는 어드레스 공간을 가산하여 새로운 라인 시작 어드레스가 설정된 후(TAdd<=TAdd+MainBurstLength*4-RemainedBurstLength*4) 유휴 상태로 돌아간다.
단계 1513에서 판단결과 부정이면, 단계 1517에서 정상 또는 X축 거울 모드인지 판단한다. 단계 1517에서 판단결과 긍정이면 단계 1519에서 DMA 유한 기계 상태가 전송 상태인지 판단한다. 단계 1519에서 판단결과 긍정이면 워드 단위로 데이터 전송이 일어나기 때문에 단계 1541에서 어드레스가 한 워드 단위로 증가한 후(TAdd<=TAdd + 4) 유휴 상태로 돌아간다. 단계 1519에서 판단결과 부정이면 전송이 일어나고 있지 않기 때문에 단계 1539에서 현재 어드레스는 변하지 않고(TAdd<=TAdd) 유휴 상태로 돌아간다.
단계 1517에서 판단결과 부정이면, 단계 1521에서 Y축 거울 모드 또는 XY축 거울 모드인지 판단한다. 단계 1521에서 판단결과 긍정이면, 단계 1523에서 DMA 유한 상태 기계의 상태가 버스트 전송이고 버스트 전송이 주 버스트 전송인지 판단한다. 단계 1523에서 판단결과 긍정이면 버스트 전송 시작 어드레스는 현재 어드레스 에서 2배의 버스트 전송 길이의 픽셀 개수만큼 감산하여 설정된 후(TAdd<=TAdd - 2*BurstLength*4) 유휴 상태로 돌아간다.
단계 1523에서 판단결과 부정이면, 단계 1529에서 DMA 유한 상태 기계의 상태가 버스트 전송이고 버스트 전송이 잔여 버스트 전송인지 판단한다. 단계 1529에서 판단결과 긍정이면(XY축 거울 또는 Y축 거울 모드에서 한 라인의 마지막 버스트 전송이면), 단계 1531에서 수평 한 라인의 마지막 버스트 전송 시작 어드레스는 현재 어드레스에서 주 버스트 전송 길이에 해당하는 픽셀 개수의 어드레스 공간을 감산하고 잔여 버스트 전송 길이에 해당하는 픽셀 개수의 어드레스 공간을 감산하여 설정되고(TAdd<=TAdd - MainBurstLength*4 - RemainedBurstLength*4) 유휴 상태로 돌아간다.
단계 1529에서 판단결과 부정이면 단계 1533에서 DMA 유한 기계 상태가 전송 상태인지 판단한다. 단계 1533에서 판단결과 긍정이면 워드 단위로 전송이 일어나기 때문에 단계 1535에서 현재 어드레스가 워드 단위로 증가한 후(TAdd<=TAdd + 4) 유휴 상태로 돌아간다. 단계 1533에서 판단결과 부정이면 전송이 일어나고 있지 않기 때문에 단계 1537에서 현재 어드레스는 변하지 않고(TAdd<=TAdd) 유휴 상태로 돌아간다.
도 16은 데이터 선택 수단(1600)에 대한 상세한 블록도이다. 데이터 선택 수단(1600)은 거울 화상 모드에 따라, 내부 버퍼 메모리(1609)로부터 출력되는 픽셀 데이터의 워드 순서 및 워드내 픽셀 순서를 변경한다. 내부 버퍼 메모리(1609)는 버스트 전송에 대응하는 화상 데이터를 저장할 수 있는 크기를 가진다. 내부 버퍼 메모리(1609)는 예컨대, 플립 플롭으로 구성될 수 있으며, 이 경우, 내부 버퍼 메모리(1609)는 버스트 전송 길이의 32배에 해당하는 플립 플롭들로 구성될 수 있다. 데이터 선택 수단(1600)은 다수 개의 다중화기들을 포함한다. 데이터 선택 수단(1600)은 버스트 전송 길이 16에 대응하는 16개의 픽셀 순서 변경 다중화 수단들(1601_1 ~ 1601_16), 워드 순서 변경 다중화 수단(1603)을 포함한다. 픽셀 순서 변경 다중화 수단들(1601_1 ~ 1601_16) 각각은 내부 버퍼 메모리(1609)에 저장된 대응하는 워드 및 그 워드를 구성하는 픽셀 순서가 뒤집힌 워드를 다중화한다. 즉, 픽셀 순서 변경 다중화기들(1601_1 ~ 1601_16) 각각은 거울 화상 모드에 따라서 각 워드에 대해서 워드를 구성하는 4개의 픽셀 데이터를 내부 버퍼 메모리(1609)에 저장된 순서로 또는 역순서로 출력한다. 예컨대, 다중화 수단(1601_1)은 3, 2, 1, 0 순서의 4개의 픽셀로 구성된 첫 번째 워드 W1 및 워드 W1의 픽셀 순서가 뒤집힌 0, 1, 2 ,3 순서의 픽셀로 구성된 워드 W1'를 다중화한다. 워드 순서 변경 다중화 수단(1603)은 16개의 픽셀 순서 변경 다중화수단들(1601)의 16개 워드 출력을 다중화한다.
XY 거울 모드 또는 Y 거울 모드인 경우(모드 선택 신호 Filp mode가 논리 하이 인 경우), 각 워드를 구성하는 4 개의 픽셀 순서가 역순으로 각 픽셀 순서 변경 다중화기들(1601_1 ~ 1601_16)에서 출력된다. 한편 X 거울 모드 또는 정상 모드의 경우, 각 워드를 구성하는 4개의 픽셀의 순서에는 변화가 없이 내부 버퍼 메모리(1609)에 저장된 픽셀 순서로 구성된 워드가 출력된다.
워드 순서 변경 다중화기(1603)는 16개의 픽셀 순서 변경 다중화기들(1601) 의 워드 출력 순서를 변경한다. 즉, 워드 순서 변경 다중화기(1603)는 계수기(Counter)(1605)의 출력 신호, 즉 데이터 선택 신호 Data Select 에 따라 내부 버퍼 메모리(1609)에 저장된 픽셀 데이터의 워드 순서와 동일한 순서로 또는 그 역순으로 픽셀 데이터를 출력한다. 계수기(1605)는 0과 (L-1) 사이를 계수한다(여기서 L은 버스트 전송 길이). 계수기(1605)의 초기 값은 계수기 초기화 다중화기(1607)에 의해서 설정되며 계수기 초기화 다중화기(1607)는 0 과 (L-1)의 값을 입력으로 하며 모드 선택 신호 Flip mode에 의해서 그 출력이 선택된다. 모드 선택 신호가 논리 하이 일 경우, 즉 XY 거울 모드 또는 Y 거울 모드일 경우, 계수기 초기화 다중화기(1607)은 (L-1)를 출력하고 이에 따라 계수기(1605)의 초기 값이 (L -1)로 설정된다. 따라서 계수기(1605)는 (L -1)부터 0까지(버스트 전송 16의 경우 15에서부터 0까지) 순차적으로 내려가면서 계수하여 워드 순서 변경 다중화기(1603)에 데이터 선택 신호로서 제공한다. 예컨대, 먼저 계수기(1605)가 15를 출력할 경우, 워드 순서 변경 다중화기(1603)은 16개의 워드 W1 ~ W16 입력 중 워드 W16을 선택하여 출력하고, 이어서 계수기(1605)가 14를 출력할 경우, 워드 순서 변경 다중화기(1603)은 16개의 워드 W1 ~ W16 입력 중 워드 W15를 선택하여 출력하고, ..., 계수기(1605)가 1을 출력할 경우, 워드 순서 변경 다중화기(1603)은 16개의 워드 W1 ~ W16 입력 중 워드 W2를 선택하여 출력하고, 계수기(1605)가 0을 출력할 경우, 워드 순서 변경 다중화기(1603)은 16개의 워드 W1 ~ W16 입력 중 워드 W1을 선택하여 출력한다. 따라서, 출력 워드 순서는 W16, W15, W14,..., W2, W1이된다. 즉, 내부 버퍼 메모리(1609)에 저장된 워드 순서(W1, W2, W3,..., W15, W16)가 뒤집어져서 출력된다. 반면 정상 모드 또는 X축 거울 모드의 경우, 모드 선택 신호 Flip mode 가 논리 로우가 되어 계수기(1605)의 초기 값이 0으로 설정된다. 따라서 계수기(1605)는 0에서 부터 15 까지 순차적으로 증가하면서 계수하여 워드 순서 변경 다중화기(1603)에 제공한다. 그 결과 워드 순서 변경 다중화기(1603)는 내부 버퍼 메모리(1609)에 저장된 워드 순서와 동일한 순서, 즉 W1, W2, W3,..., W15, W16 순서로 워드를 출력하게 된다.
결국 모드 선택 신호 Flip mode가 논리 하이가 되면(XY축 거울 모드 또는 Y축 거울 모드), 각 워드내 픽셀 순서가 뒤집히고 또한 워드 순서가 뒤집히게 된다.
도 17은 DMA 어드레스 변화 시점 및 그 순서를 개략적으로 도시한다. 프레임 시작 신호 VSYNC의 하강 에지에서 프레임 시작 어드레스 및 라인 시작 어드레스가 어드레스 발생 수단에 의해서 설정된다. 특수 기능 레지스터에 설정된 모든 명령어들은 VSYNC 신호의 하강 에지에서 유효한 값을 가진다. 프레임 시작 어드레스 및 라인 시작 어드레스가 설정 된 후, 라인 전송 시작 신호 HREF 가 활성화된다. HREF 신호가 활성화 된 후 버스트 전송 전에 상술한 방법으로 버스트 전송 시작 어드레스가 발생한다. 버스트 전송 회수를 셈하여 한 수평 라인의 끝을 알리는 라인 끝 신호 EOL가 발생하고 신호 HREF가 불활성화된다.
지금 까지는 코덱 DMA 장치에 대하여 설명을 하였다. 프리뷰 DMA 장치 역시 코덱 DMA 장치와 동일한 방법으로 구현된다. 다만, 코덱 DMA에서는 하나의 픽셀이 1바이트여서 4개의 픽셀이 한 워드를 구성하는 것에 비해, 프리뷰 DMA 장치에서는 RGB 포맷이 16 비트 또는 24 비트이다. 도 18은 이 같은 데이터 타입을 개략적으로 도시한다. 따라서, RGB 포맷이 16비트인 경우 한 워드가 2개의 픽셀(각 픽셀은 5비트의 R, 6비트의 G, 5비트의 B로 구성됨)로 구성되고 RGB 포맷이 24 비트인 경우 한 워드는 1개의 픽셀(8비트의 R, G, B)로 구성되는 점이 다르다. 여기서, RGB 포맷이 24비트로 구성될 경우, XY 축 거울 모드 및 Y축 거울 모드시에 워드내의 픽셀 순서 변경은 없다.
이상의 상세한 설명은 본 발명을 예시하고 설명하는 것이다. 또한 전술한 내용은 본 발명의 바람직한 실시 형태를 나타내고 설명하는 것에 불과하며, 전술한 바와 같이 본 발명은 다양한 다른 조합, 변경 및 환경에서 사용할 수 있으며, 본 명세서에 개시된 발명의 개념의 범위, 저술한 개시 내용과 균등한 범위 및/또는 당업계의 기술 또는 지식의 범위 내에서 변경 또는 수정이 가능하다. 전술한 실시예들은 본 발명을 실시하는데 있어 최선의 상태를 설명하기 위한 것이며, 본 발명과 같은 다른 발명을 이용하는데 당업계에 알려진 다른 상태로의 실시, 그리고 발명의 구체적인 적용 분야 및 용도에서 요구되는 다양한 변경도 가능하다. 따라서, 이상의 발명의 상세한 설명은 개시된 실시 상태로 본 발명을 제한하려는 의도가 아니다. 또한 첨부된 청구범위는 다른 실시 상태도 포함하는 것으로 해석되어야 한다.
이상에서 설명한 본 발명에 따르면, 특화된 DMA 장치를 사용하여 화상 거울 기능을 제공함으로써 카메라 모듈의 크기를 줄일 수 있고, 고속도, 저전력의 장치를 구현할 수 있다.

Claims (22)

  1. DMA로 버스트 액세스될 화상 데이터를 저장하는 버퍼 메모리;
    상기 버퍼 메모리에 저장된 화상 데이터의 워드 순서 및 한 워드내 픽셀 순서를 변경하여 출력할 수 있는 데이터 선택 수단;
    상기 데이터 선택 수단에서 출력되는 화상 데이터를 위한 프레임 시작 어드레스, 라인 시작 어드레스, 버스트 전송 시작 어드레스를 발생시키는 어드레스 발생 수단을 포함하는 화상 변환 장치.
  2. 제 1 항에 있어서,
    X축 거울 화상 모드인 경우,
    상기 데이터 선택 수단은 상기 버퍼 메모리에 저장된 화상의 워드 순서 및 워드내 픽셀 순서를 유지하여 출력하며,
    상기 어드레스 발생 수단은:
    상기 화상 한 프레임의 전체 어드레스 공간에서 수평 한 라인에 해당하는 어드레스를 감산하여 상기 프레임 시작 어드레스를 설정하고,
    상기 새로운 라인 시작 어드레스로부터 순차적으로 버스트 길이에 대응하는 어드레스 공간을 합산하여 상기 버스트 전송 시작 어드레스를 설정하는 것을 특징으로 하는 화상 변환 장치.
  3. 제 1 항에 있어서,
    Y축 거울 화상 모드인 경우,
    상기 데이터 선택 수단은 상기 버퍼 메모리에 저장된 화상의 워드 순서 및 워드내 픽셀 순서를 거꾸로 뒤집어 출력하고,
    상기 어드레스 발생 수단은:
    상기 화상의 수평 한 라인에 해당하는 어드레스 공간에서 버스트 전송에 대응하는 어드레스 공간을 가산하여 상기 프레임 시작 어드레스를 설정하고,
    버스트 전송을 시작하기 전에 현재 어드레스에서 상기 버스트 전송 및 현재 수행할 버스트 전송의 합에 대응하는 어드레스 공간을 감산하여 상기 버스트 전송 시작 어드레스를 설정하고,
    상기 화상의 수평 한 라인에 대한 처리가 종료된 시점에서의 현재 어드레스에서 수평 두 라인에 해당하는 어드레스 공간을 가산하고 상기 화상의 수평 한 라인의 마지막 두 번의 버스트 전송 차에 대응하는 어드레스 공간을 가산하여 상기 라인 시작 어드레스를 설정하는 것을 특징으로 하는 화상 변환 장치.
  4. 제 1 항에 있어서,
    XY축 거울 화상 모드인 경우,
    상기 데이터 선택 수단은 상기 버퍼 메모리에 저장된 워드 순서 및 워드내 픽셀 순서를 거꾸로 뒤집어 출력하고,
    상기 어드레스 발생 수단은:
    상기 화상 한 프레임의 전체 어드레스 공간에서 버스트 전송에 대응하는 어드레스 공간을 가산하여 상기 프레임 시작 어드레스를 설정하고,
    버스트 전송을 하기 전에 현재 어드레스에서 상기 버스트 전송 및 현재 수행할 버스트 전송의 합에 대응하는 어드레스 공간을 감산하여 상기 버스트 전송 시작 어드레스를 설정하고,
    수평 한 라인에 대한 처리가 종료된 시점에서의 현재 어드레스에서 한 라인의 마지막 두 번의 버스트 전송 차에 대응하는 어드레스 공간을 가산하여 상기 라인 시작 어드레스를 설정하는 것을 특징으로 하는 화상 변환 장치.
  5. 제 1 항에 있어서,
    수평 한 라인의 픽셀 개수가 상기 버스트 전송 길이에 해당하는 픽셀 개수의 배수가 아닐 때, 상기 버스트 전송은 주 버스트 전송 및 잔여 버스트 전송으로 나뉘어서 수행되고, 상기 잔여 버스트 전송은 수평 한 라인의 마지막 버스트 전송인 것을 특징으로 하는 화상 변환 장치.
  6. 제 1 항에 있어서,
    상기 데이터 선택 수단은:
    상기 버퍼 메모리에 저장된 워드 및 상기 워드를 구성하는 픽셀 순서가 뒤집힌 워드를 입력으로 하며 상기 버스트 전송 길이에 대응하는 개수의 픽셀 순서 변경 다중화기들;
    상기 픽셀 순서 변경 다중화기들의 출력 워드들을 입력으로 하여 입력된 순서로 또는 역순으로 워드들을 출력하는 워드 순서 변경 다중화기를 포함하는 것을 특징으로 하는 화상 변환 장치.
  7. 제 6 항에 있어서,
    상기 픽셀 순서 변경 다중화기들은 모드 선택 신호에 따라 상기 워드 및 픽셀 순서가 뒤집힌 워드를 선택하여 출력하고,
    상기 워드 순서 변경 다중화기는 0 및 (상기 버스트 전송 길이-1) 사이를 증가 또는 감소하면서 계수하는 계수기 출력들에 따라 입력 워드들을 선택하여 출력하는 것을 특징으로 하는 화상 변환 장치.
  8. DMA로 버스트 액세스될 화상 데이터를 저장하는 버퍼 메모리;
    상기 버퍼 메모리에 대한 버스트 DMA 액세스를 제어하는 DMA 제어 수단;
    상기 DMA 제어 수단 상태를 보면서 상기 버퍼 메모리에 저장된 화상의 워드 순서 및 워드내 픽셀 순서를 변경하여 출력하는 데이터 선택 수단;
    상기 DMA 제어 수단 상태를 보면서 상기 데이터 선택 수단의 출력 화상 데이터를 위한 프레임 시작 어드레스, 라인 시작 어드레스, 버스트 전송 시작 어드레스를 발생시키는 어드레스 발생 수단;
    상기 DMA 제어 수단 상태 및 버스 상태를 보면서 버스 신호를 발생시키는 버스 프로토콜 신호 발생 수단을 포함하는 화상 변환을 위한 DMA 장치.
  9. 삭제
  10. 제 8 항에 있어서,
    상기 데이터 선택 수단은:
    상기 버퍼 메모리에 저장된 워드 및 상기 워드를 구성하는 픽셀 순서가 뒤집힌 워드를 입력으로 하며 상기 버스트 전송 길이에 대응하는 개수의 픽셀 순서 변경 다중화기들;
    상기 픽셀 순서 변경 다중화기들의 출력 워드들을 입력으로 하여 입력된 순서로 또는 역순으로 워드들을 출력하는 워드 순서 변경 다중화기를 포함하되,
    상기 픽셀 순서 변경 다중화기들은 모드 선택 신호에 따라 상기 워드 및 픽셀 순서가 뒤집힌 워드를 선택하여 출력하고,
    상기 워드 순서 변경 다중화기는 0 및 (상기 버스트 전송 길이-1) 사이를 증가 또는 감소하면서 계수하는 계수기 출력들에 따라 입력 워드들을 선택하여 출력하는 것을 특징으로 하는 DMA 장치.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 카메라 모듈에서 받은 화상 데이터를 시스템 버스에 실어 외부 프레임 메모리에 전달하는 카메라 인터페이스는:
    상기 카메라 모듈에서 받은 화상 데이터의 전처리를 담당하는 전처리부;
    상기 전처리부가 출력하는 화상 데이터의 픽셀 개수를 변경하여 FIFO 메모리에 저장하는 색 스케일링부;
    상기 FIFO 메모리에 저장된 화상 데이터를 상기 시스템 버스로 싣되 화상 변환을 가능케 하는 DMA 장치를 포함하되,
    상기 DMA 장치는:
    상기 FIFO 메모리로부터 제공된 화상 데이터를 저장하는 버퍼 메모리;
    상기 버퍼 메모리로부터 상기 시스템 버스로의 DMA 버스트 전송을 제어하는 DMA 제어 수단;
    상기 DMA 제어 수단 상태를 보면서 상기 버퍼 메모리에 저장된 화상 데이터의 워드 순서 및 워드내 픽셀 순서를 변경하여 출력하는 데이터 선택 수단;
    상기 DMA 제어 수단 상태를 보면서 상기 버퍼 메모리에 저장된 화상 데이터를 상기 외부 프레임 메모리에 저장하기 위한 프레임 시작 어드레스, 라인 시작 어드레스, 버스트 전송 시작 어드레스를 변경할 수 있는 어드레스 발생 수단;
    상기 DMA 제어 수단 상태 및 상기 시스템 버스 상태를 보면서 버스 신호를 발생시키는 버스 프로토콜 신호 발생 수단을 포함하는 화상 변환을 지원하는 카메라 인터페이스.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
KR1020040001618A 2004-01-09 2004-01-09 화상 변환 장치, 화상 변환을 위한 직접 메모리 액세스장치 및 화상 변환을 지원하는 카메라 인터페이스 KR101034493B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020040001618A KR101034493B1 (ko) 2004-01-09 2004-01-09 화상 변환 장치, 화상 변환을 위한 직접 메모리 액세스장치 및 화상 변환을 지원하는 카메라 인터페이스
DE102004063847A DE102004063847B4 (de) 2004-01-09 2004-12-30 Schaltungsanordnung zur DMA-Bilddatenverarbeitung und Kameraschnittstelle
JP2005000906A JP4993856B2 (ja) 2004-01-09 2005-01-05 画像変換装置、画像変換のための直接メモリアクセス装置および画像変換を支援するカメラインターフェース
US11/031,037 US7587524B2 (en) 2004-01-09 2005-01-07 Camera interface and method using DMA unit to flip or rotate a digital image
CN2005100640278A CN1655593B (zh) 2004-01-09 2005-01-10 用直接存储器访问翻转或旋转数字图像的相机接口和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040001618A KR101034493B1 (ko) 2004-01-09 2004-01-09 화상 변환 장치, 화상 변환을 위한 직접 메모리 액세스장치 및 화상 변환을 지원하는 카메라 인터페이스

Publications (2)

Publication Number Publication Date
KR20050073265A KR20050073265A (ko) 2005-07-13
KR101034493B1 true KR101034493B1 (ko) 2011-05-17

Family

ID=34738013

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040001618A KR101034493B1 (ko) 2004-01-09 2004-01-09 화상 변환 장치, 화상 변환을 위한 직접 메모리 액세스장치 및 화상 변환을 지원하는 카메라 인터페이스

Country Status (5)

Country Link
US (1) US7587524B2 (ko)
JP (1) JP4993856B2 (ko)
KR (1) KR101034493B1 (ko)
CN (1) CN1655593B (ko)
DE (1) DE102004063847B4 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100657145B1 (ko) * 2005-02-24 2006-12-13 매그나칩 반도체 유한회사 스케일러를 구비한 이미지센서 및 이미지센서의 이미지 스케일링 방법
US20060007321A1 (en) * 2005-03-26 2006-01-12 David Huai A Distributed Image and Signal Processing Apparatus For Camera Phone Applications
TW200726196A (en) * 2005-12-27 2007-07-01 Altek Corp Mobile communication device with camera and practice thereof
US7876977B2 (en) * 2006-02-15 2011-01-25 Conexant Systems, Inc. Image processor and method of image rotation
KR100862882B1 (ko) * 2007-02-16 2008-10-13 (주)씨앤에스 테크놀로지 선택된 영상 변환 모드에 따라 변경되는 어드레스 신호를발생하는 영상 변환 장치 및 그 영상 변환 방법
US8581933B2 (en) * 2007-09-04 2013-11-12 Lg Electronics Inc. System and method for displaying a rotated image in a display device
US20100013959A1 (en) * 2008-07-17 2010-01-21 Barinder Singh Rai Efficient Generation Of A Reflection Effect
TWI382766B (zh) * 2008-12-23 2013-01-11 Nat Univ Tsing Hua 一種用於超高解析度之顯示框壓縮系統及方法
US8897602B2 (en) * 2009-07-22 2014-11-25 Aptina Imaging Corporation Imaging system with multiframe scaler
EP2282268B1 (en) * 2009-07-23 2012-11-21 STMicroelectronics Srl Interfacing device and method, for example for systems-on-chip
TWI419146B (zh) * 2009-07-23 2013-12-11 Novatek Microelectronics Corp 畫面翻轉方法及裝置
CN102103472B (zh) * 2009-12-16 2013-06-05 北大方正集团有限公司 在喷墨印刷中打印图像原像及其镜像的装置及其方法
US20110317034A1 (en) * 2010-06-28 2011-12-29 Athreya Madhu S Image signal processor multiplexing
KR101795603B1 (ko) 2011-11-17 2017-12-01 삼성전자주식회사 디지털 촬영 장치 및 그 제어방법
US9552619B2 (en) 2012-08-08 2017-01-24 Megachips Corporation Image processing apparatus and image processing interface circuit
JP6117494B2 (ja) * 2012-08-08 2017-04-19 株式会社メガチップス 画像処理インターフェース回路
JP6117495B2 (ja) * 2012-08-08 2017-04-19 株式会社メガチップス 画像処理装置
CN103347157A (zh) * 2013-06-25 2013-10-09 杭州士兰微电子股份有限公司 实时输入数字图像镜像存储的方法及装置
JP5710713B2 (ja) * 2013-08-22 2015-04-30 ファナック株式会社 モータ制御システム
CN103678202B (zh) * 2013-11-26 2016-08-17 北京时代民芯科技有限公司 一种多核处理器的dma控制器
US10176148B2 (en) 2015-08-27 2019-01-08 Microsoft Technology Licensing, Llc Smart flip operation for grouped objects
KR102149277B1 (ko) 2016-05-27 2020-08-28 한화테크윈 주식회사 촬영된 영상에 관한 데이터 프로토콜을 설정하는 단말기 및 방법
CN112732603A (zh) * 2019-10-14 2021-04-30 广州飒特红外股份有限公司 一种多通道vdma控制方法及其应用
TWI775259B (zh) * 2020-12-29 2022-08-21 新唐科技股份有限公司 直接記憶體存取裝置與使用其的電子設備
CN112950456A (zh) * 2021-02-25 2021-06-11 合肥宏晶微电子科技股份有限公司 图像处理方法及装置、电子设备、计算机可读介质
CN113569309B (zh) * 2021-07-20 2024-02-02 华中科技大学 基于有限状态机的双通道镜像加工程序生成方法及***
CN115034948B (zh) * 2021-12-30 2023-06-16 荣耀终端有限公司 一种图像处理方法和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000023136A (ko) * 1998-09-15 2000-04-25 야스카와 히데아키 영상을 180도 회전시킬 수 있는 디스플레이 장치 및 방법
US6473123B1 (en) 1997-08-21 2002-10-29 Flash Point Technology, Inc. Method and system for organizing DMA transfers to support image rotation
US20030095124A1 (en) 2001-11-19 2003-05-22 Tjandrasuwita Ignatius B. Back-end image transformation

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2862242B2 (ja) * 1988-04-28 1999-03-03 キヤノン株式会社 画像読取装置
US5016876A (en) * 1988-10-14 1991-05-21 Williams Electronics Games, Inc. Video display co-processor for use in a video game
JP2685548B2 (ja) * 1988-11-28 1997-12-03 株式会社日立製作所 ディジタル画像データの回転方法およびその装置
US5459823A (en) * 1990-07-05 1995-10-17 Canon Kabushiki Kaisha Graphics engine for true colour 2D graphics
JPH0810445B2 (ja) * 1990-09-21 1996-01-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 動的バス調停方法及び装置
US5686960A (en) * 1992-01-14 1997-11-11 Michael Sussman Image input device having optical deflection elements for capturing multiple sub-images
JPH0863140A (ja) * 1994-08-25 1996-03-08 Sony Corp 画像処理装置
US5862407A (en) * 1996-03-15 1999-01-19 Rendition, Inc. System for performing DMA byte swapping within each data element in accordance to swapping indication bits within a DMA command
JPH10187528A (ja) * 1996-12-27 1998-07-21 Fuji Xerox Co Ltd 画像データ転送回路
US6597394B1 (en) * 1997-11-16 2003-07-22 Pictos Technologies, Inc. Programmable image transform processor for digital image processing
US6304927B1 (en) * 1998-11-13 2001-10-16 Ricoh Company, Ltd. Digital copier with scalable architecture
US6330374B1 (en) * 1998-11-13 2001-12-11 Ricoh Company, Ltd. Image manipulation for a digital copier which operates on a block basis
US6874039B2 (en) * 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip
US20030081224A1 (en) * 2001-10-31 2003-05-01 Toshiba Tec Kabushiki Kaisha Image forming apparatus
JP4102055B2 (ja) * 2001-11-02 2008-06-18 株式会社メガチップス データ転送方法
JP2003271540A (ja) * 2002-03-14 2003-09-26 Ricoh Co Ltd Dmaデータ転送装置
US20040012684A1 (en) * 2002-07-16 2004-01-22 Fairchild Imaging Image reconstruction techniques for charge coupled devices
US20050036614A1 (en) * 2003-08-13 2005-02-17 Pai Ramadas Lakshmikanth DMA engine for fetching words in reverse bit order
US7315294B2 (en) * 2003-08-25 2008-01-01 Texas Instruments Incorporated Deinterleaving transpose circuits in digital display systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473123B1 (en) 1997-08-21 2002-10-29 Flash Point Technology, Inc. Method and system for organizing DMA transfers to support image rotation
KR20000023136A (ko) * 1998-09-15 2000-04-25 야스카와 히데아키 영상을 180도 회전시킬 수 있는 디스플레이 장치 및 방법
US20030095124A1 (en) 2001-11-19 2003-05-22 Tjandrasuwita Ignatius B. Back-end image transformation

Also Published As

Publication number Publication date
CN1655593B (zh) 2010-09-29
JP4993856B2 (ja) 2012-08-08
JP2005196786A (ja) 2005-07-21
US20050152197A1 (en) 2005-07-14
KR20050073265A (ko) 2005-07-13
CN1655593A (zh) 2005-08-17
US7587524B2 (en) 2009-09-08
DE102004063847A1 (de) 2005-08-04
DE102004063847B4 (de) 2010-11-11

Similar Documents

Publication Publication Date Title
KR101034493B1 (ko) 화상 변환 장치, 화상 변환을 위한 직접 메모리 액세스장치 및 화상 변환을 지원하는 카메라 인터페이스
CN105915780B (zh) 图像信号处理器和包括图像信号处理器的装置
US9082205B2 (en) Image processing apparatus for processing image data to produce compressed image data and display data
US9703731B2 (en) Data transfer apparatus and data transfer method
EP1575278A1 (en) Camera-equipped mobile terminal
JP2015144435A (ja) 小さな画像又は大きな画像を処理する小さなラインバッファを容易に用いる技術
JP2004040260A (ja) 画素ブロックデータ生成装置および画素ブロックデータ生成方法
US20080292216A1 (en) Method and system for processing images using variable size tiles
JP6493454B2 (ja) 電子カメラ
US7545416B2 (en) Image processing device and camera including CPU which determines whether processing performed using external memory
WO2010064374A1 (ja) 画像処理装置
CN108540689B (zh) 图像信号处理器、应用处理器及移动装置
JP2006203437A (ja) カメラ装置、カメラ装置の画像処理方法
JP2013175824A (ja) 電子カメラ
WO2007075000A1 (en) Imaging device and method for transferring image signal
JP2006211402A (ja) カメラ装置、画像処理方法
US20080018742A1 (en) Analog front-end device and imaging apparatus
JP5906846B2 (ja) 電子カメラ
JP2009033438A (ja) 撮像装置
JP2005020521A (ja) 撮像装置及びこの撮像装置を備える携帯型電話機
JP3810685B2 (ja) 解像度変換装置およびデジタル・カメラ
JP2000059800A (ja) 画像信号処理回路
JP3971183B2 (ja) 撮像システム
JP2008131472A (ja) 転送装置、転送制御プログラム及び撮像装置
JP2008035161A (ja) 撮像装置

Legal Events

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

Payment date: 20140430

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150430

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160429

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170427

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180430

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 9