KR20080095672A - 화상회전기능을 가지는 화상처리장치 및 화상회전방법 - Google Patents
화상회전기능을 가지는 화상처리장치 및 화상회전방법 Download PDFInfo
- Publication number
- KR20080095672A KR20080095672A KR1020070040474A KR20070040474A KR20080095672A KR 20080095672 A KR20080095672 A KR 20080095672A KR 1020070040474 A KR1020070040474 A KR 1020070040474A KR 20070040474 A KR20070040474 A KR 20070040474A KR 20080095672 A KR20080095672 A KR 20080095672A
- Authority
- KR
- South Korea
- Prior art keywords
- image data
- unit
- image
- rotation
- predetermined size
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/21—Intermediate information storage
- H04N1/2104—Intermediate information storage for one or a few pictures
- H04N1/2108—Intermediate information storage for one or a few pictures for one picture only
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/387—Composing, repositioning or otherwise geometrically modifying originals
- H04N1/3877—Image rotation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
화상회전기능을 가지는 화상처리장치 및 화상회전방법이 개시된다. 본 발명에 따른 화상처리장치는 화상데이터가 저장되는 메모리부, 메모리부로부터 화상데이터를 제1 소정 크기의 제1 블록 단위로 읽어오는 수신 DMA부; 제1 블록 단위로 읽어온 화상데이터를 저장하는 버퍼; 제1 블록 단위로 저장된 화상데이터를 제1 소정 크기보다 작은 제2 소정 크기의 제2 블록 단위로 읽어오고, 제2 블록 단위로 읽어온 화상데이터를 회전처리한 후, 회전처리된 화상데이터를 버퍼에 저장하는 회전처리부 및 회전처리부의 회전처리 결과 버퍼에 저장된, 제1 블록 단위의 화상데이터가 회전처리된 화상데이터를 메모리부에 저장하는 송신 DMA부를 포함한다. 이러한 본 발명에 따르면, 메모리와 버퍼 간의 전송 시간을 줄이면서도, 하드웨어의 크기를 보다 축소시킬 수 있다.
Description
도 1은 종래의 4ㅧ4픽셀데이터로 구성된 화상에 대한 회전방법을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 화상처리장치의 구성을 나타낸 블록도이다.
도 3은 회전처리부가 제2 소정 크기의 블록 단위의 화상데이터를 0도 회전처리하는 모습을 나타내는 도면이다.
도 4는 회전처리부가 제2 소정 크기의 블록 단위의 화상데이터를 90도 회전처리하는 모습을 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 회전처리부(270)의 상세 구성을 나타낸 블록도이다.
도 6a 내지 도 6e는 픽셀데이터의 크기가 1비트인 경우, 본 발명의 일 실시예에 따른 회전처리부의 회전처리 방법을 설명하기 위한 예시도이다.
도 7a 내지 도 7e는 픽셀데이터의 크기가 2비트인 경우, 본 발명의 일 실시예에 따른 회전처리부의 회전처리 방법을 설명하기 위한 예시도이다.
도 8은 본 발명의 일 실시예에 따른 화상회전방법을 나타낸 흐름도이다.
본 발명은 화상처리장치 및 방법에 관한 것으로, 보다 상세하게는 화상회전기능을 가지는 화상처리장치 및 화상회전방법에 관한 것이다.
일반적으로, 프린터 및 복합기 등과 같은 화상처리장치는 PC(personal computer) 등으로부터 회전처리된 화상데이터를 수신하여 인쇄용지에 출력한다. 그러나 최근 들어, 이러한 화상처리장치가 PC로부터 회전처리된 화상데이터를 수신하지 않고, 화상처리장치가 화상데이터를 직접 회전처리하여 인쇄용지에 출력하게 되었다. 이러한 화상처리장치는 일반적으로, 예를 들면 다음과 같은 방법으로 화상 회전처리를 수행한다. 도 1은 종래의 4ㅧ4픽셀데이터로 구성된 화상에 대한 회전방법을 설명하기 위한 도면이다. 도 1을 참조하면, 먼저, 사용자가 화상처리장치에 회전명령을 입력하면, 화상처리장치의 중앙처리부가 메모리부에 저장된 4ㅧ4픽셀데이터로 구성된 화상데이터에서, A2픽셀데이터를 독출한다. 즉, 중앙처리부가 메모리부로부터 A2픽셀데이터를 로드(LOAD)한다. 그리고, 회전명령에 대응되는 위치로 A2픽셀데이터를 자리이동(SHIFT)한다. 이와 같이, 각각의 픽셀데이터(A0,A1,...D3)에 대한 자리이동을 수행한 후, 각각의 픽셀데이터(A0,A1,...D3)를 병합(OR)하여, 메모리부에 저장(STORE)한다.
이러한 동작은 중앙처리부의 종류 및 구조에 따라 차이를 보일 수 있지만, 대부분 동작이 로드, 자리이동, 병합, 저장으로 이루어진다. 이러한 방법을 통해 중앙처리부가 한 개의 픽셀데이터를 회전하는데 5~8개 정도의 명령어(LOAD,SHIFT, STORE)가 필요하다. 이러한 경우, 한 장의 A4용지가 가로 5120픽셀데이터 및 세로 7238픽셀데이터로 구성되어 있다고 보면, 전체 3706만개의 화상데이터을 회전시키는데, 대략 1억 8천만개의 명령어가 필요하다. 이에 따라, 화상회전처리동작은 많은 연산량을 필요로 하므로, 화상회전에 소모되는 시간이 길어진다. 또한, 화상회전처리동작이 수행되는 동안, 화상처리장치의 다른 동작이 지연되므로, 사용자는 화상처리장치를 사용하는데 불편함을 느끼게 된다.
이에 본 출원인은 화상회전을 빠르게 수행하고, 화상회전에 관련된 연산이 수행되는 동안 화상처리장치가 다른 동작을 수행할 수 있도록 하는 수단을 개발하여 특허출원 10-2005-0033530로서 출원한 바 있다. 여기에서, 메모리부를 직접 액세스(access)하여, 화상데이터를 소정 개수의 픽셀데이터로 구성된 블록(block)단위로 로드(load)하고, 이 화상데이터를 블록단위로 회전처리하고, 회전처리된 블록단위의 화상데이터를 상기 메모리부를 직접 액세스하여 저장(store)함으로써, 화상데이터를 빠르게 회전처리하고, 회전동작 수행 중에도 화상처리장치가 다른 동작을 수행하여, 화상처리장치의 화상회전동작을 개선할 수 있었다.
한편, 이러한 화상형성장치는 블록이 차면 회전처리 시간은 빠르나, 메모리에서 화상데이터를 읽어와서 블록을 채우거나, 회전처리가 완료된 화상데이터를 메모리에 다시 저장하는 시간은 메모리의 자체적인 성능 때문에 길어질 수 있다. 따라서 전체 회전처리 시간 중 상당 부분의 시간이 메모리에서 버퍼로, 그리고 버퍼에서 메모리로 전송하는 시간이 차지하게 된다.
일반적으로, 메모리는 연속적인 주소를 접근하는 것이 임의적인 주소 접근보다 훨씬 빠르기 때문에, 연속적으로 메모리 주소에서 데이터를 가져오는 버스트(burst) 방식의 전송으로써 메모리와의 빠른 통신을 수행할 수 있다. 그러나, 가령 M개의 연속적인 데이터를 가져오는 버스트 방식 전송을 하게 되면 M2 배의 버퍼 용량과 M2배 크기의 회전처리를 수행하는 로직이 필요하게 된다.
이에 관해 보다 구체적으로 설명하면 다음과 같다. 메모리에 저장된 화상데이터로부터 버스트 방식으로 M개의 연속적인 데이터를 가져온다면, 이 M개는 보통 화상데이터 이미지의 가로 방향의 데이터 개수가 된다. 따라서 M개 단위의 버스트 방식 전송은 화상데이터 이미지의 가로 방향을 M배로 늘리는 것과 같은 결과를 가져오게 되고, 회전처리시에 90도 혹은 270도 회전처리를 수행할 경우, M배의 가로 방향이 M배의 세로 방향으로 바뀌게 된다. 따라서 회전처리된 영상에 대하여 메모리로 버스트 방식의 전송을 하기 위해서는 M배의 세로 방향 픽셀이 가로 방향으로 M개가 필요하게 된다. 따라서 M개의 데이터 단위로 버스트 방식 전송을 하기 위해서는 M2배의 버퍼 용량의 증가와 역시 M2 배의 로직의 증가가 불가피하게 된다.
이처럼, 종래의 화상처리방법에 의하면, 버스트 방식 등으로 메모리와 버퍼 간의 전송을 수행하는 경우, 회전처리를 수행하는 로직의 크기가 매우 커져서, 결국 하드웨어 전체의 크기가 커질 수 밖에 없는 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는 메모리와 버퍼 간의 전송 시간을 줄 이면서도, 하드웨어의 크기를 보다 축소시킬 수 있는, 화상회전기능을 가지는 화상처리장치를 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는 메모리와 버퍼 간의 전송 시간을 줄이면서도, 하드웨어의 크기를 보다 축소시킬 수 있는 화상회전방법을 제공하는 데 있다.
상기 기술적 과제를 해결하기 위하여 본 발명에 따른 화상처리장치는 화상데이터가 저장되는 메모리부; 상기 메모리부로부터 상기 화상데이터를 제1 소정 크기의 제1 블록 단위로 읽어오는 수신 DMA부; 상기 제1 블록 단위로 읽어온 화상데이터를 저장하는 버퍼; 상기 제1 블록 단위로 저장된 화상데이터를 상기 제1 소정 크기보다 작은 제2 소정 크기의 제2 블록 단위로 읽어오고, 상기 제2 블록 단위로 읽어온 화상데이터를 회전처리한 후, 상기 회전처리된 화상데이터를 상기 버퍼에 저장하는 회전처리부; 및 상기 회전처리부의 회전처리 결과 상기 버퍼에 저장된, 상기 제1 블록 단위의 화상데이터가 회전처리된 화상데이터를 상기 메모리부에 저장하는 송신 DMA부를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 제1 소정 크기는 m 비트 n 라인이고, 상기 제2 소정 크기는 a 비트 b 라인이며, 상기 m, n, a 및 b는 각각 정수이고, 상기 a 및 b는 각각 상기 m, n의 공약수이다.
바람직하게는, 상기 회전처리부는 상기 회전처리된 화상데이터를 회전처리시의 회전 각도에 따라 상기 버퍼에 저장한다.
바람직하게는, 상기 수신 DMA부 및 상기 송신 DMA부는 각각 버스트(burst) 방식으로 화상데이터를 상기 메모리부로부터 읽어오고 상기 메모리부에 저장한다.
상기 다른 기술적 과제를 해결하기 위하여 본 발명에 따른 화상회전방법은 화상데이터가 저장되어 있는 메모리로부터 상기 화상데이터를 제1 소정 크기의 제1 블록 단위로 읽어오는 단계; 상기 제1 블록 단위로 읽어온 화상데이터를 저장하는 단계; 상기 제1 블록 단위로 저장된 화상데이터를 상기 제1 소정 크기보다 작은 제2 소정 크기의 제2 블록 단위로 읽어오고, 상기 제2 블록 단위로 읽어온 화상데이터를 회전처리한 후, 상기 회전처리된 화상데이터를 상기 버퍼에 저장하는 단계; 및 상기 회전처리부의 회전처리 결과 상기 버퍼에 저장된, 상기 제1 블록 단위의 화상데이터가 회전처리된 화상데이터를 상기 메모리에 저장하는 단계를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면들을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
도 2는 본 발명의 일 실시예에 따른 화상처리장치의 구성을 나타낸 블록도로서, 화상처리장치는, 메모리부(210), 중앙처리부(220), 사용자 인터페이스(230), 수신 DMA(Direct Memory Access)부(240), 송신 DMA부(250), 블록 버퍼(260), 회전 처리부(270)를 포함하여 이루어진다.
사용자 인터페이스(230)는 화상처리장치의 동작을 제어하기 위한 사용자명령을 수신하여, 후술하는 중앙처리부(220)에 전달한다. 즉, 사용자가 회전명령을 입력하면, 회전명령에 대응되는 신호를 중앙처리부(220)에 전송한다.
메모리부(210)에는 화상처리장치의 동작을 수행하는데 필요한 각종 제어프로그램이 저장되어 있으며, 회전하고자 하는 화상에 대응되는 화상데이터가 저장된다.
중앙처리부(220)는 사용자 인터페이스(230)를 통해 입력된 사용자명령에 따라, 메모리부(210)에 저장된 각종 제어프로그램을 실행하여 화상처리장치의 동작을 제어한다. 또한, 사용자가 화상을 회전하기 위한 회전명령을 입력하면, 중앙처리부(220)는 사용자 인터페이스(230)를 통해 회전명령에 대응되는 신호를 수신하여, 후술하는 회전처리부(270)가 회전처리 기능을 수행하도록 회전처리부(270)에 회전처리 명령을 전달한다.
수신 DMA부(240)는 메모리부(210)에 직접 액세스하여, 소정 크기의 블록 단위, 예를 들면 가로 m 비트, 세로 n 픽셀 크기의 블록 단위로 화상데이터를 읽어와서, 블록 버퍼(260)에 저장한다. 수신 DMA부(240)가 화상데이터를 읽어올 때의 블록 단위의 크기를 편의상 제1 소정 크기라 하기로 한다. 여기서, 제1 소정 크기는 블록 버퍼(260)의 용량과 대응되는 것이 바람직하다. 즉, 수신 DMA부(240)가 가로 m 비트, 세로 n 픽셀 크기의 블록 단위로 화상데이터를 읽어오는 경우, 블록 버퍼(260)의 용량 역시 가로 m 비트, 세로 n 픽셀의 용량을 가진다.
회전처리부(270)는 블록 버퍼(260)로부터, 제1 소정 크기의 블록 단위로 저장된 화상데이터를 제1 소정 크기보다 작은 크기의 블록 단위로 읽어온다. 회전처리부(270)가 블록 버퍼(260)로부터 화상데이터를 읽어올 때의 블록 단위의 크기를 편의상 제2 소정 크기라 하기로 한다. 그리고 회전처리부(270)는 제2 소정 크기의 블록 단위로 읽어온 화상데이터를 회전처리한 후, 회전처리된 화상데이터를 회전처리시의 회전 각도에 따라 블록 버퍼(260)에 저장한다. 나아가, 회전처리부(270)는 제1 소정 크기의 블록 단위를 구성하는 제2 소정 크기의 블록 단위들 각각에 대하여 상기 회전처리 및 블록 버퍼(260)에의 저장을 수행한다. 회전처리부(270)에 대해서는 이후에 도 3 등을 참조하며, 보다 상세히 설명하기로 한다.
송신 DMA부(250)는 회전처리부(270)의 회전처리 결과로 블록 버퍼(260)에 저장된 화상데이터, 다시 말하면 제2 소정 크기의 블록 단위들 각각에 대하여 회전처리한 후 저장함으로써 결과적으로 제1 소정 크기의 블록 단위의 화상데이터가 회전처리된 화상데이터를 블록 버퍼(260)로부터 읽어와서 메모리부(210)에 저장한다. 특히, 송신 DMA부(250)는 수신 DMA부(240)가 제1 소정 크기의 블록 단위로 화상데이터를 읽어온 순서 및 회전처리된 회전 각도에 따라서 화상데이터를 메모리부(210)에 저장한다.
한편, 수신 DMA부(240)가 블록 버퍼(260)에 화상데이터를 저장할 때에는 송신 DMA부(250)는 동작하지 않고, 송신 DMA부(250)가 블록 버퍼(260)로부터 회전처리된 화상데이터를 읽어올 때에는 수신 DMA부(240)는 동작하지 않는 것이 바람직하다. 도 2에 도시된 바와 같이, 수신 DMA부(240)와 송신 DMA부(250)가 하나의 버스 에 연결되어 있기 때문에 동시에 동작하지 않더라도 메모리부(210)로부터 읽어오고 메모리부(210)에 저장하는 속도에서는 변화가 없게 된다.
또한, 수신 DMA부(240) 및 상기 송신 DMA부(250)는 각각 버스트(burst) 방식으로 화상데이터를 상기 메모리부(210)로부터 읽어오고 상기 메모리부(210)에 쓰는 것이 바람직하다. 이 경우, 예를 들면, 수신 DMA부(240)는 메모리부(210)로부터 제1 소정 크기의 블록 단위의 화상데이터를 라인 단위로 버스트 리드(burst read)한다. 또한, 송신 DMA부(250)는 블록 버퍼(260)에 저장된 회전처리 완료 후의 화상데이터를 라인 단위로 버스트 라이트(burst write)한다.
도 3 및 도 4는 본 발명의 일 실시예에 따른 회전처리부(270)의 회전처리 및 블록 버퍼(260)에의 저장을 설명하기 위한 도면이다.
도 3은 회전처리부(270)가 제2 소정 크기의 블록 단위의 화상데이터를 0도 회전처리하는 모습을 나타내는 도면이다. 도 3의 (a)는 블록 버퍼에 저장된 제1 소정 크기의 블록 단위의 화상데이터로서 가로 m 비트, 세로 n 라인의 크기를 가진다. 회전처리부(270)는 블록 버퍼(260)로부터 화상데이터(a)를 제2 소정 크기의 블록 단위, 예를 들면 도 3에 도시된 바와 같이 가로 a 비트, 세로 b 라인의 블록 단위로 읽어와서 도 3의 (b)에 도시된 바와 같이 0도에 상응하는 회전처리를 수행하고, 이 회전처리시의 회전 각도에 따라 블록 버퍼(260)에 저장한다. 도 3을 참조하면, 0도 회전이므로, 0도 회전된 결과의 화상데이터(b)는 (c)에 도시된 바와 같이 좌측 상단에 위치하도록 저장한다. 회전처리부(270)는 이러한 회전처리 및 저장을 제2 소정 크기의 블록 단위의 화상데이터 각각에 대하여 수행한다.
도 4는 회전처리부(270)가 제2 소정 크기의 블록 단위의 화상데이터를 90도 회전처리하는 모습을 나타내는 도면이다. 도 4의 (a)는 도 3과 마찬가지로, 블록 버퍼에 저장된 제1 소정 크기의 블록 단위의 화상데이터로서 가로 m 비트, 세로 n 라인의 크기를 가진다. 회전처리부(270)는 블록 버퍼(260)로부터 화상데이터(a)를 제2 소정 크기의 블록 단위, 예를 들면 도 4에 도시된 바와 같이 가로 a 비트, 세로 b 라인의 블록 단위로 읽어와서 도 4의 (b)에 도시된 바와 같이 90도에 상응하는 회전처리를 수행하고, 이 회전처리시의 회전 각도에 따라 블록 버퍼(260)에 저장한다. 도 3을 참조하면, 90도 회전이므로, 90도 회전된 결과의 화상데이터(b)는 (c)에 도시된 바와 같이 좌측 하단에 위치하도록 저장한다. 회전처리부(270)는 이러한 회전처리 및 저장을 제2 소정 크기의 블록 단위의 화상데이터 각각에 대하여 수행한다.
여기서, 상기된 m, n, a 및 b는 물론 각각 정수이며, a는 m보다 작고, b는 n보다 작다. 또한, 제2 소정 크기의 블록 단위가 화상데이터(a)를 구성하여야 하므로, a는 m의 약수이어야 하고, b는 n의 약수이어야 한다. 나아가, 90도 또는 270도의 회전처리시에는 가로와 세로의 크기가 서로 바뀌기 때문에, a는 n의 약수가 되어야 하며, b는 m의 약수가 되어야 한다. 결국, a와 b는 각각 m과 n의 공약수이어야 함을 알 수 있다. 한편, 블록 버퍼(260)에 저장된 가로 m 비트, 세로 n 픽셀의 화상데이터는 가로 a 비트, 세로 b 라인의 크기의 블록 단위로 분할하는 경우, (m/a)ㅧ(n/b)개의 화상데이터로 분할된다.
만일 회전처리부(270)가 제1 소정 크기, 예를 들면 가로 m 비트, 세로 n 라인의 블록 단위로 회전처리를 수행한다면, 수신 DMA부(240) 및 송신 DMA부(250)가 m개 단위로 버스트 리드(read) 및 버스트 라이트(write)할 경우, 회전처리부(270)내의 회전처리를 수행하는 로직의 크기는 m2배가 된다. 그러나, 본 실시예에서는 제1 소정 크기의 블록 단위의 화상데이터를 제1 소정 크기보다 작은 제2 소정 크기, 예를 들면 가로 a 비트, 세로 b 픽셀의 화상데이터로 분할하여, 이 분할된 블록 단위로 회전처리를 수행하기 때문에, 회전처리부(270)내의 회전처리를 수행하는 로직의 크기는 a2배가 된다. 결국, 로직의 크기가 m2배에서 a2배로 현저히 줄어들게 되는 것이다. 이처럼 본 실시예에 따르면, 수신 DMA부(240) 및 송신 DMA부(250)가 버스트 방식으로 메모리부(210)와 통신하여 전송 시간이 줄어들게 되며, 회전처리를 수행하는 로직의 크기를 종래보다 현저히 축소시킬 수 있게 되고, 따라서 하드웨어의 크기를 보다 축소시킬 수 있게 된다.
도 5는 본 발명의 일 실시예에 따른 회전처리부(270)의 상세 구성을 나타낸 블록도로서, 회전처리부(270)는 픽셀 배열부(510), 픽셀 재배치부(520), 픽셀 병합부(530)를 포함하여 이루어진다.
블록 버퍼(260)에는 수신 DMA(240)로부터 읽어온 화상데이터가 제1 블록 단위로 저장되며, 하나의 블록에는 하나 이상의 픽셀에 대응되는 픽셀데이터가 포함된다. 여기서, 하나의 픽셀에 대응되는 픽셀데이터는 메모리부(210)에 저장된 화상데이터가 모노(mono)방식에 대응되는 화상데이터인 경우, 1비트, 2비트, 4비트, 혹은 8비트의 크기를 가지며, 화상데이터가 RGB(red-green-blue)컬러방식 혹은 YCC(Y-Cr-Cb)컬러방식에 대응되는 화상데이터인 경우, 3비트, 6비트, 12비트, 혹은 24비트의 크기를 가진다. 또한, 화상데이터가 CMYK (cyan-magenta-yellow-black) 컬러방식의 화상데이터인 경우, 4비트, 8비트, 16비트, 혹은 32비트의 크기를 가진다.
예를 들어, 메모리부(210)에 저장된 화상데이터가 CMYK컬러방식이고, 한 픽셀데이터의 크기가 16비트라고 가정하면, 블록 버퍼(260)의 용량은 최소 16비트 이상이 되어야 한다. 또한, 블록 버퍼(260)의 용량이 32비트이라고 가정하면, 한 픽셀데이터가 4비트인 경우, 블록 버퍼(260)에는 8개의 픽셀데이터가 저장되며, 한 픽셀데이터가 16비트인 경우, 블록 버퍼(260)에는 2개의 픽셀데이터가 저장된다. 이와 같이, 픽셀데이터의 크기에 따라, 블록 버퍼(260)에 저장되는 픽셀데이터 수가 달라진다.
회전처리부(270)는 블록 버퍼(260)에 위와 같이 저장된 화상데이터로부터 제2 소정 크기의 블록 단위로 화상데이터를 읽어와서 회전처리한다. 이를 위하여, 픽셀 배열부(510)는 픽셀데이터의 크기 및 위치에 따라, 픽셀데이터를 배열(distribution)하고, 픽셀 재배치부(520)는 회전각도에 대응되는 위치로 픽셀데이터를 재배치(re-ordering)하며, 픽셀 병합부(530)는 재배치된 각각의 픽셀데이터를 병합(merging)한다.
여기서, 회전처리부(270)에서 화상데이터를 회전처리하기 위해, 하드웨어적으로 멀티플렉서(multiplexer : MUX)가 이용될 수도 있으며, 멀티플렉서는 회전각도에 따른 픽셀데이터의 위치를 바꿔주는 스위치역할을 한다. 하나의 픽셀데이터는 회전처리되면서 5~8개 정도의 멀티플렉서를 통과하게 되며, 이 시간은 중앙처리부(220)에서 하나의 명령어가 실행되는 시간보다 짧다. 전체 멀티플렉서의 수는 지원되는 픽셀데이터의 크기와 회전 방향의 종류에 따라 가변적이다.
이하 회전처리부(270)의 회전처리를 도 6a 내지 도 7e를 참조하여 보다 상세히 설명한다.
도 6a 내지 도 6e는 픽셀데이터의 크기가 1비트인 경우, 본 발명의 일 실시예에 따른 회전처리부(270)의 회전처리 방법을 설명하기 위한 예시도이다. 도 6a는 블록 버퍼(260)로부터 읽어온 제2 소정 크기의 블록 단위의 화상데이터로서, 1비트ㅧ8라인(line)ㅧ8로우(low)의 화상데이터를 도시한 도면이다. 이러한, 화상데이터를 반 시계방향으로 90ㅀ회전처리하면, 각 픽셀데이터(①,②,③,④)는 도 6b에 도시한 배열상태가 되며, 화상데이터를 반 시계방향으로 270ㅀ회전처리하면, 각 픽셀데이터(①,②,③,④)는 도 6c에 도시한 배열상태가 된다. 또한, 화상데이터를 180ㅀ회전처리하면, 각 픽셀데이터(①,②,③,④)는 도 6d에 도시한 배열상태가 되며, 화상데이터를 반사회전처리하면, 각 픽셀데이터(①,②,③,④)는 도 6e에 도시한 배열상태가 된다.
도 7a 내지 도 7e는 픽셀데이터의 크기가 2비트인 경우, 본 발명의 일 실시예에 따른 회전처리부(270)의 회전처리 방법을 설명하기 위한 예시도이다.
도 7a는 블록 버퍼(260)로부터 읽어온 제2 소정 크기의 블록 단위의 화상데이터로서, 2비트ㅧ8라인ㅧ4로우의 화상데이터를 도시한 도면이다. 1픽셀데이터가 2비트이므로, 화상데이터를 반 시계방향으로 90도 회전처리하면, 각 픽셀데이터(①, ②,③,④)는 도 7b에 도시한 2비트ㅧ4라인ㅧ8로우의 배열상태를 가진다. 또한, 화상데이터를 반 시계방향으로 270ㅀ회전처리하면, 각 픽셀데이터(①,②,③,④)는 도 7c에 도시한 2비트ㅧ8라인ㅧ4로우의 배열상태를 가진다. 또한, 화상데이터를 180ㅀ회전처리하면, 각 픽셀데이터(①,②,③,④)는 도 7d에 도시한 2비트ㅧ4라인ㅧ8로우의 배열상태를 가지며, 화상데이터를 반사회전처리하면, 각 픽셀데이터(①,②,③,④)는 도 7e에 도시한 2비트ㅧ8라인ㅧ4로우의 배열상태를 가진다.
이와 같이, 픽셀데이터의 크기가 2비트 이상이 되면, 회전각도에 따라 각 픽셀데이터(①,②,③,④)의 배열상태가 상술한 바와 같이 변하게 된다.
도 8은 본 발명의 일 실시예에 따른 화상회전방법을 나타낸 흐름도이다. 본 실시예에 따른 화상회전방법은 이상 설명된 화상처리장치에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 이상에서 기술된 화상처리장치에 관한 내용은 본 실시예에 따른 화상회전방법에도 적용된다.
810단계에서, 화상데이터가 저장되어 있는 메모리로부터 화상데이터를 제1 소정 크기의 블록 단위로 읽어온다.
820단계에서, 제1 소정 크기의 블록 단위로 읽어온 화상데이터를 저장한다.
830단계에서, 저장된 화상데이터를 상기 제1 소정 크기보다 작은 제2 소정 크기의 블록 단위로 읽어오고, 읽어온 화상데이터를 회전처리한 후, 회전처리된 화상데이터를 회전처리시의 회전 각도에 따라 저장한다.
840단계에서, 제1 소정 크기의 블록 단위의 화상데이터 내의 제2 소정 크기의 화상데이터 모두에 대하여 830 단계의 처리가 완료되지 않았으면 이미 830단계 가 완료된 제2 소정 크기의 화상데이터 이외의 화상데이터에 대해 830단계를 수행하기 위해 830단계로 돌아가고, 제2 소정 크기의 화상데이터 모두에 대하여 완료되었으면 850단계로 진행한다.
850단계에서, 830단계 및 840단계의 처리 결과 저장된 화상데이터를, 810단계에서 제1 소정 크기의 블록 단위로 화상데이터를 읽어온 순서 및 회전처리된 회전 각도에 따라서 메모리에 저장한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
상술한 바와 같이 본 발명에 따르면, 메모리와 버퍼 간의 전송 시간을 줄이면서도, 하드웨어의 크기를 보다 축소시킬 수 있는, 화상회전기능을 가지는 화상처리장치와 화상회전방법을 제공할 수 있다.
Claims (5)
- 화상데이터가 저장되는 메모리부;상기 메모리부로부터 상기 화상데이터를 제1 소정 크기의 제1 블록 단위로 읽어오는 수신 DMA부;상기 제1 블록 단위로 읽어온 화상데이터를 저장하는 버퍼;상기 제1 블록 단위로 저장된 화상데이터를 상기 제1 소정 크기보다 작은 제2 소정 크기의 제2 블록 단위로 읽어오고, 상기 제2 블록 단위로 읽어온 화상데이터를 회전처리한 후, 상기 회전처리된 화상데이터를 상기 버퍼에 저장하는 회전처리부; 및상기 회전처리부의 회전처리 결과 상기 버퍼에 저장된, 상기 제1 블록 단위의 화상데이터가 회전처리된 화상데이터를 상기 메모리부에 저장하는 송신 DMA부를 포함하는 것을 특징으로 하는 화상처리장치.
- 제1항에 있어서,상기 제1 소정 크기는 m 비트 n 라인이고, 상기 제2 소정 크기는 a 비트 b 라인이며, 상기 m, n, a 및 b는 각각 정수이고, 상기 a 및 b는 각각 상기 m, n의 공약수인 것을 특징으로 하는 화상처리장치.
- 제1항에 있어서,상기 회전처리부는 상기 회전처리된 화상데이터를 회전처리시의 회전 각도에 따라 상기 버퍼에 저장하는 것을 특징으로 하는 화상처리장치.
- 제1항에 있어서,상기 수신 DMA부 및 상기 송신 DMA부는 각각 버스트(burst) 방식으로 화상데이터를 상기 메모리부로부터 읽어오고 상기 메모리부에 저장하는 것을 특징으로 하는 화상처리장치.
- 화상데이터가 저장되어 있는 메모리로부터 상기 화상데이터를 제1 소정 크기의 제1 블록 단위로 읽어오는 단계;상기 제1 블록 단위로 읽어온 화상데이터를 저장하는 단계;상기 제1 블록 단위로 저장된 화상데이터를 상기 제1 소정 크기보다 작은 제2 소정 크기의 제2 블록 단위로 읽어오고, 상기 제2 블록 단위로 읽어온 화상데이터를 회전처리한 후, 상기 회전처리된 화상데이터를 상기 버퍼에 저장하는 단계; 및상기 회전처리부의 회전처리 결과 상기 버퍼에 저장된, 상기 제1 블록 단위의 화상데이터가 회전처리된 화상데이터를 상기 메모리에 저장하는 단계를 포함하는 것을 특징으로 하는 화상회전방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070040474A KR20080095672A (ko) | 2007-04-25 | 2007-04-25 | 화상회전기능을 가지는 화상처리장치 및 화상회전방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070040474A KR20080095672A (ko) | 2007-04-25 | 2007-04-25 | 화상회전기능을 가지는 화상처리장치 및 화상회전방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20080095672A true KR20080095672A (ko) | 2008-10-29 |
Family
ID=40155284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070040474A KR20080095672A (ko) | 2007-04-25 | 2007-04-25 | 화상회전기능을 가지는 화상처리장치 및 화상회전방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20080095672A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10600145B2 (en) | 2013-12-13 | 2020-03-24 | Samsung Electronics Co., Ltd. | Image processor, for scaling image data in two directions. Computing system comprising same, and related method of operation |
WO2020139489A1 (en) * | 2018-12-28 | 2020-07-02 | Micron Technology, Inc. | Computing tile |
-
2007
- 2007-04-25 KR KR1020070040474A patent/KR20080095672A/ko not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10600145B2 (en) | 2013-12-13 | 2020-03-24 | Samsung Electronics Co., Ltd. | Image processor, for scaling image data in two directions. Computing system comprising same, and related method of operation |
WO2020139489A1 (en) * | 2018-12-28 | 2020-07-02 | Micron Technology, Inc. | Computing tile |
US11157424B2 (en) | 2018-12-28 | 2021-10-26 | Micron Technology, Inc. | Computing tile |
US11650941B2 (en) | 2018-12-28 | 2023-05-16 | Micron Technology, Inc. | Computing tile |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102654827B (zh) | 一种先进先出缓冲器及缓存数据的方法 | |
EP1880297B1 (en) | Data transfer arbitration apparatus and data transfer arbitration method | |
EP0566659A4 (en) | MEMORY CONTROL CIRCUIT FOR USE WITH A COPYING ANTEMEMORY SYSTEM. | |
CA2252751C (en) | Method and apparatus for rotating image data | |
US20090238478A1 (en) | Image processing apparatus | |
JP6808414B2 (ja) | 情報処理装置、その制御方法、及びプログラム | |
CN102055973A (zh) | 存储器地址映射方法及存储器地址映射电路 | |
US20030233511A1 (en) | Data transfer device and method for multidimensional memory | |
JP2012170058A (ja) | ラインセグメント読み出しバッファを用いた画像タイル回転用のシステム、方法および装置 | |
US7768678B2 (en) | Systems, methods and devices for rotating images | |
KR20080095672A (ko) | 화상회전기능을 가지는 화상처리장치 및 화상회전방법 | |
JP4994103B2 (ja) | アドレス変換メモリアクセス機構を備える半導体装置 | |
WO2009081551A1 (ja) | メモリ装置及びその制御方法 | |
US20050259294A1 (en) | Image data rotation apparatus | |
US8099530B2 (en) | Data processing apparatus | |
JP3554237B2 (ja) | 画像処理装置及びその方法 | |
US8466928B2 (en) | Image processing apparatus and method | |
JP6357804B2 (ja) | 画像処理装置、集積回路、及び画像形成装置 | |
JP2008136125A (ja) | 画像処理装置 | |
JP4873640B2 (ja) | 印刷制御回路及び画像形成装置 | |
JP2009100313A (ja) | 画像処理装置および画像形成装置 | |
US20080028109A1 (en) | Direct memory access control method and direct memory access controller | |
US20080162831A1 (en) | Management/circuit arrangement and memory management system | |
JP2008236085A (ja) | 画像処理装置 | |
JP4316476B2 (ja) | 画像処理装置、画像形成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |