KR20200089074A - Method for skew compensation based on block - Google Patents
Method for skew compensation based on block Download PDFInfo
- Publication number
- KR20200089074A KR20200089074A KR1020190005710A KR20190005710A KR20200089074A KR 20200089074 A KR20200089074 A KR 20200089074A KR 1020190005710 A KR1020190005710 A KR 1020190005710A KR 20190005710 A KR20190005710 A KR 20190005710A KR 20200089074 A KR20200089074 A KR 20200089074A
- Authority
- KR
- South Korea
- Prior art keywords
- image
- block size
- block
- processor
- skew
- 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/387—Composing, repositioning or otherwise geometrically modifying originals
- H04N1/3877—Image rotation
- H04N1/3878—Skew detection or correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
-
- 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/00795—Reading arrangements
- H04N1/00798—Circuits or arrangements for the control thereof, e.g. using a programmed control device or according to a measured quantity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0077—Types of the still picture apparatus
- H04N2201/0094—Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception
Abstract
Description
화상독취장치는 문서, 그림 또는 필름 등의 원본 이미지를 스캔하여 디지털 데이터로 변환하는 장치이다. 이 경우 디지털 데이터는 컴퓨터의 모니터에 표시되거나 프린터에 의해 인쇄되어 출력 이미지로 생성될 수 있다. 이러한 화상독취장치의 예로는, 스캐너, 복사기, 팩시밀리 또는 이들의 기능을 하나의 장치를 통해 복합적으로 구현하는 복합기(Multi Function Peripheral: MFP) 등을 들 수 있다.The image reading device is a device that scans an original image such as a document, picture, or film and converts it into digital data. In this case, the digital data can be displayed on a computer monitor or printed by a printer to generate an output image. Examples of such an image reading apparatus include a scanner, copier, facsimile, or a multifunction peripheral (MFP) that implements these functions in a complex manner through a single device.
화상독취장치에서는 센서의 배치 편차나 롤러 및 모터의 움직임 등의 기구 특성으로 인해 인쇄 용지가 정렬되지 않을 수 있으며, 그에 따라 스캔 이미지가 원본과 다르게 왜곡이 발생할 수 있다. In the image reading device, the printing paper may not be aligned due to the arrangement characteristics of the sensor or the mechanical characteristics such as the movement of the roller and the motor, and accordingly, the scanned image may be distorted differently from the original.
도 1은 본 개시의 일 실시 예에 따른 화상독취장치의 간단한 구성을 나타내는 블록도,
도 2는 본 개시의 일 실시 예에 따른 화상독취장치의 구체적인 구성을 나타내는 블록도,
도 3은 사변형 스큐의 예를 도시한 도면,
도 4는 도 1의 프로세서의 일 실시 예에 따른 구체적인 구성을 나타내는 도면,
도 5는 본 개시의 일 실시 예에 따른 스큐 보정 장치의 구성을 나타내는 도면,
도 6은 본 개시의 다른 실시 예에 따른 스큐 보정 장치의 구성을 나타내는 도면,
도 7 및 도 8은 본 개시의 일 실시 예에 따라 스큐 처리를 위한 블록 크기 및 위치를 결정하는 방법을 설명하기 위한 도면,
도 9는 본 개시의 일 실시 예에 따른 RST 코어(220)의 구체적인 구성을 나타내는 도면,
도 10은 Bicubic 보간 방식에 필요한 주변 픽셀 수를 나타내는 도면,
도 11은 본 개시의 일 실시 예에 따른 데이터 저장 방식을 설명하기 위한 도면, 그리고
도 12는 본 개시의 일 실시 예에 따른 스큐 보정 방법을 설명하기 위한 도면이다. 1 is a block diagram showing a simple configuration of an image reading apparatus according to an embodiment of the present disclosure,
2 is a block diagram showing a specific configuration of an image reading apparatus according to an embodiment of the present disclosure,
3 is a view showing an example of a quadrilateral skew,
4 is a view showing a specific configuration according to an embodiment of the processor of FIG. 1,
5 is a view showing the configuration of a skew correction device according to an embodiment of the present disclosure,
6 is a view showing the configuration of a skew correction device according to another embodiment of the present disclosure,
7 and 8 are diagrams for explaining a method for determining a block size and position for skew processing according to an embodiment of the present disclosure;
9 is a view showing a specific configuration of the
10 is a diagram showing the number of surrounding pixels required for a bicubic interpolation method,
11 is a view for explaining a data storage method according to an embodiment of the present disclosure, and
12 is a view for explaining a skew correction method according to an embodiment of the present disclosure.
이하에서는 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 이하에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여 이하의 실시 예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려진 사항들에 관해서 자세한 설명은 생략한다.Hereinafter, various embodiments will be described in detail with reference to the drawings. The embodiments described below may be implemented by being modified in various different forms. In order to more clearly describe the characteristics of the embodiments, detailed descriptions of the matters well known to those of ordinary skill in the art to which the following embodiments belong will be omitted.
한편, 본 명세서에서 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 ‘직접적으로 연결’되어 있는 경우뿐만 아니라, ‘그 중간에 다른 구성을 사이에 두고 연결’되어 있는 경우도 포함한다. 또한, 어떤 구성이 다른 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들 더 포함할 수도 있다는 것을 의미한다.Meanwhile, in the present specification, when a component is "connected" to another component, this includes not only "directly connected" but also "connected with other components in between". In addition, when it is said that a configuration "includes" another configuration, this means that other configurations may be included and not excluded, unless specifically stated to the contrary.
본 명세서에서 “화상 형성 작업(image forming job)”이란 이미지의 형성 또는 이미지 파일의 생성/저장/전송 등과 같이 화상과 관련된 다양한 작업들(e.g. 인쇄, 스캔 또는 팩스)을 의미할 수 있으며, “작업(job)”이란 화상 형성 작업을 의미할 뿐 아니라, 화상 형성 작업의 수행을 위해서 필요한 일련의 프로세스들을 모두 포함하는 의미일 수 있다.In this specification, “image forming job” may mean various jobs (eg print, scan, or fax) related to images, such as image formation or image file creation/save/transfer. (job)” may mean not only an image forming job, but also a series of processes necessary for performing the image forming job.
또한, "화상독취장치"란 원고의 이미지를 독취하여 스캔 이미지를 생성하는 장치를 말한다. 이러한 화상독취장치의 예로는 스캐너, 복사기, 팩시밀리 또는 이들의 기능을 하나의 장치를 통해 복합적으로 구현하는 복합기(multi-function printer, MFP)등을 들 수 있다. 한편, 화상독취장치가 화상 형성 작업도 가능한 복사기, 팩시밀리, 복합기 등인 경우, 화상독취장치는 화상형성장치로 지칭될 수도 있다. In addition, the "image reading device" refers to a device that reads an image of a manuscript and generates a scanned image. Examples of such image reading apparatuses include scanners, copiers, facsimile machines, or multi-function printers (MFPs) that implement their functions in a complex manner through a single device. Meanwhile, when the image reading apparatus is a copying machine, facsimile machine, multifunction machine, or the like capable of forming an image, the image reading apparatus may be referred to as an image forming apparatus.
또한, “하드 카피(hard copy)”란 종이 등과 같은 인쇄 매체에 이미지를 출력하는 동작을 의미하며, “소프트 카피(soft copy)”란 TV 또는 모니터 등과 같은 디스플레이 장치에 이미지를 출력하는 동작을 의미할 수 있다.Also, “hard copy” means an operation of outputting an image to a print medium such as paper, and “soft copy” means an operation of outputting an image to a display device such as a TV or monitor. can do.
또한, "스캔 데이터"란 화상독취장치를 이용하여 생성한 스캔 이미지를 의미하며, 흑백 이미지, 컬러 이미지일 수 있으며, 다양한 형태의 파일 포맷(예를 들어, BMP, JPG, TIFF, PDF 등)을 가질 수 있다. In addition, "scan data" refers to a scanned image created using an image reading device, and may be a black and white image or a color image, and may include various types of file formats (eg, BMP, JPG, TIFF, PDF, etc.). Can have
또한, “사용자”란 화상독취장치를 이용하여, 또는 화상독취장치와 유무선으로 연결된 디바이스를 이용하여 화상 형성 작업과 관련된 조작을 수행하는 사람을 의미할 수 있다. 또한, “관리자”란 화상독취장치의 모든 기능 및 시스템에 접근할 수 있는 권한을 갖는 사람을 의미할 수 있다. “관리자”와 “사용자”는 동일한 사람일 수도 있다.Also, the term “user” may refer to a person who performs an operation related to an image forming operation using an image reading device or a device connected to the image reading device by wire or wireless. In addition, "administrator" may mean a person who has the authority to access all functions and systems of the image reading device. "Administrator" and "User" may be the same person.
도 1은 본 개시의 일 실시 예에 따른 화상독취장치의 간단한 구성을 나타내는 블록도이다. 1 is a block diagram showing a simple configuration of an image reading apparatus according to an embodiment of the present disclosure.
도 1을 참조하면, 화상독취장치(100)는 이미지 센서(110), 메모리(120), 프로세서(130)로 구성될 수 있다. Referring to FIG. 1, the
이미지 센서(110)는 원고를 독취한다. 구체적으로, 이미지 센서(110)는 원고에서 반사된 광(또는 빛)으로부터 원고의 이미지 정보를 독취할 수 있다. 이러한 이미지 센서(110)는 주주사방향으로 일렬로 배치되는 CCD(Charge Coupled Device) 또는 CIS(CMOS image sensor)를 포함할 수 있다. 이러한 이미지 센서(110)는 플랫베드(flatbed) 하단에 배치될 수 있으며, 자동공급장치(ADF) 내에 배치될 수 있다.The
메모리(120)는 이미지 처리를 위한 데이터를 저장할 수 있다. 구체적으로, 메모리(120)는 후술할 프로세서(130)의 이미지 처리를 수행하는데 필요한 프로그램을 저장하거나, 이미지 센서(110)에서 독취된 신호 또는 프로세서(130)에서 처리된 데이터(예를 들어, 스큐 보정된 이미지)를 저장할 수 있다. The
이러한, 메모리(120)는 DRAM, SRAM과 같은 휘발성 메모리이거나, HDD, SSD, 플래시 메모리 등 비휘발성 메모리일 수 있으며, 휘발성 메모리와 비휘발성 메모리의 조합일 수도 있다. The
프로세서(130)는 화상독취장치(100) 내의 각 구성을 제어한다. 구체적으로, 프로세서(130)는 CPU, ASIC 등으로 구현될 수 있으며, 사용자로부터 스캔 명령이 입력되는지를 감지할 수 있다. 여기서 스캔 명령은 화상독취장치(100)에 구비된 조작 입력 장치(160)를 통하여 입력되거나, 외부 장치(예를 들어, PC, 스마트폰 등)로부터 통신 장치(140)를 통하여 입력될 수도 있다. The
스캔 명령이 입력되면 프로세서(130)는 스캔 이미지가 생성되도록 이미지 센서(110)를 제어할 수 있다. 그리고 프로세서(130)는 이미지 센서(110)에서 출력된 신호를 이용하여 스캔 이미지를 생성할 수 있다. 그리고 프로세서(130)는 생성된 스캔 이미지를 메모리(120)에 저장할 수 있다. When a scan command is input, the
그리고 프로세서(130)는 이미지 처리가 필요한지를 판단할 수 있다. 여기서 이미지 처리는 스캔 이미지의 스큐를 조정하는 동작, 색상과 밝기를 조정하는 동작, 스캔 이미지에 포함된 종이의 후면 배경을 제거하는 동작 등일 수 있다. In addition, the
만약, 원고에 사변형 스큐가 감지된 경우, 프로세서(130)는 사변형 스큐의 각도를 계산하고, 계산된 사변형 스큐 각도가 기설정된 범위(예를 들어, -5도 ~ +5도)인 경우에는 사변형 스큐 보정을 위한 이미지 처리를 수행하는 것으로 결정할 수 있다. 원고에 사변형 스큐가 감지된 경우라도 계산된 스큐 각도가 기설정된 범위를 벗어났으면 사변형 스큐 보정 처리는 수행하지 않는 것으로 결정할 수도 있고, 기설정된 범위의 극값으로 스큐 보정 처리를 수행할 수도 있다. 한편, 구현시에는 사변형 스큐를 인지하기에 미미한 각도이면 스큐 보정을 수행하지 않는 것으로 결정할 수 있다. If a quadrilateral skew is detected in the manuscript, the
이러한 각도 범위는 제조사에서 설정하여 제공할 수도 있으며, 사용자 또는 관리자가 범위를 설정하거나 수정할 수도 있다. The angle range may be provided by the manufacturer, or the user or administrator may set or modify the range.
이와 같은 동작을 위하여, 프로세서(130)는 선행적으로 원고 이미지에 사변형 스큐가 존재하는지를 확인하는 동작 및 해상 사변형 스큐의 각도를 확인하는 동작을 수행할 수 있다. 한편, 이상에서는 사변형 스큐를 확인하고, 그 이후에 스큐 각도를 계산하는 것으로 설명하였지만 구현시에는 스큐 각도를 먼저 계산하고 그에 따라 사변형 스큐가 있는지를 확인하는 형태로도 구현될 수 있다. For such an operation, the
프로세서(130)는 메모리(120)에 저장된 이미지 데이터를 이미지의 가로 크기에 해당되는 한 라인 단위로 순차적으로 읽어서 이미지 처리를 수행할 수도 있고, 이미지를 복수개의 블록으로 분할하여 블록 크기 단위로 읽어서 이미지 처리를 수행할 수도 있다. The
ASIC 또는 SoC와 같은 장치로 구현되는 프로세서(130)에서는 내부 메모리의 제약으로 인해 블록 크기 단위로 읽어와 처리할 수밖에 없는바, 이하에서는 블록 단위로 이미지 블록을 독취하기 위한 본 개시의 동작을 설명한다. The
먼저, 블록 크기 단위로 데이터를 읽어와 이미지 처리를 수행하기 위하여, 프로세서(130)는 이미지 처리에 필요한 이미지 블록 크기를 결정할 수 있다. 예를 들어, 스큐 보정을 수행하는 경우, 프로세서(130)는 스캔 이미지의 스큐 각도를 계산하고, 계산된 스큐 각도에 기초하여 이미지 처리에 필요한 블록 크기(이하에서는 제1 블록 크기)를 결정할 수 있다. 이때 프로세서(130)는 이미지 처리에 필요한 주변 픽셀 수를 추가적으로 고려하여 제1 블록 크기를 결정할 수 있다. First, in order to perform image processing by reading data in block size units, the
예를 들어, 스큐 보정을 위하여 4x4 주변 픽셀 수를 이용하는 bicubic 보간 방식을 이용하는 경우, 프로세서(130)는 목표로 하는 분할 영역보다 4x4 주변 픽셀 수만큼 큰 확장 분할 영역을 스캔 이미지 상에서 포함할 수 있는 제1 블록 크기를 결정할 수 있다. For example, in the case of using a bicubic interpolation method using 4x4 peripheral pixels for skew correction, the
한편, 프로세서(130)가 복수의 이미지 처리를 수행하여야 하는 경우, 각 이미지 처리에 필요한 이미지 블록 크기 및 최종 출력 이미지 블록에 기초하여 메모리(120)에서 읽어올 블록 크기(즉, 제1 블록 크기)를 계산할 수 있다. 프로세서(130)에서 블록 크기를 결정하는 보다 구체적인 동작에 대해서는 도 6을 참조하여 후술한다. On the other hand, when the
그리고 프로세서(130)는 생성된 스캔 이미지에 대한 이미지 처리를 수행할 수 있다. 구체적으로, 프로세서(130)는 메모리(120)에 저장된 스캔 이미지를 계산한 제1 블록 크기 단위로 읽을 수 있다. 보다 구체적으로, 프로세서(130)는 원본 영역을 제2 블록 크기로 분할하고, 복수의 분할 영역을 순차적으로 생성하기 위하여 '제1 블록 크기를 가지며 스캔 이미지 내의 분할 영역을 포함하는 블록 영역'에 대한 좌표를 산출하고, 산출된 좌표에 기초하여 제1 블록 크기의 스캔 이미지를 읽을 수 있다. In addition, the
다시 말해서, 프로세서(130)는 분할 영역 및 분할 영역 주변의 기설정된 개수의 픽셀을 포함하는 확장 분할 영역에 대한 원본 영역 상의 꼭짓점 좌표를 산출하고, 산출된 꼭짓점 좌표를 스캔 이미지 상의 꼭짓점 좌표로 변환하고, 스캔 이미지 상의 꼭짓점 좌표로 정의되는 영역을 포함하는 제1 블록 크기의 블록 영역에 좌표를 산출하여 제1 블록 크기의 스캔 이미지를 읽을 수 있다. In other words, the
이후에 프로세서(130)는 읽어온 제1 블록 크기의 스캔 이미지에 대한 이미지 처리를 수행할 수 있다. 스캔 이미지에 대해서 복수의 이미지 처리를 수행하는 경우, 프로세서(130)는 읽어온 제1 블록 크기의 스캔 이미지에 대해서 순차적으로 복수의 이미지 처리를 수행할 수 있다. 예를 들어, 프로세서(130)는 먼저 제1 블록 크기의 스캔 이미지에 대해서 스큐 보정을 수행하고, 스큐 보정된 이미지 블록에 대해서 에지 보정, 에지 보정된 이미지 블록에 대해서 색상 보정 등의 작업을 순차적으로 수행할 수 있다. Thereafter, the
이미지 처리 과정에서, 프로세서(130)는 읽어온 제1 블록 크기의 스캔 이미지를 기설정된 크기의 픽셀 블록으로 분할하고, 분할한 복수의 픽셀 블록을 한번에 독취할 수 있는 형태로 조합하여 임시 저장할 수 있다. 이에 따라 프로세서(130)는 특정 픽셀에 대한 보간 과정에서 필요한 복수의 픽셀 값을 한번에 독취할 수 있다. 이에 대해서는 도 9 내지 도 11을 참조하여 후술한다. In the image processing process, the
이미지 처리가 완료되면, 프로세서(130)는 제2 블록 크기의 보정 이미지를 메모리(120)에 저장할 수 있다. When the image processing is completed, the
한편, 이상에서는 화상독취장치를 구성하는 간단한 구성에 대해서만 도시하고 설명하였지만, 구현시에는 다양한 구성이 추가로 구비될 수 있다. 이에 대해서는 도 2를 참조하여 이하에서 설명한다. On the other hand, in the above, only a simple configuration constituting the image reading apparatus is illustrated and described, but in the implementation, various configurations may be additionally provided. This will be described below with reference to FIG. 2.
도 2는 본 개시의 일 실시 예에 따른 화상독취장치의 구체적인 구성을 나타내는 블록도이다. 2 is a block diagram showing a specific configuration of an image reading apparatus according to an embodiment of the present disclosure.
도 2를 참조하면, 화상독취장치(100)는 이미지 센서(110), 메모리(120), 프로세서(130), 통신 장치(140), 디스플레이(150), 조작 입력 장치(160) 및 인쇄 엔진(170)으로 구성될 수 있다. Referring to FIG. 2, the
이미지 센서(110), 메모리(120)의 동작에 대해서는 도 1과 관련하여 설명하였는바, 중복 설명은 생략한다. 그리고 프로세서(130)에 대해서도 도 1와 관련하여 설명하였는바, 도 1에서 설명한 내용은 중복 기재하지 않고, 도 2에 추가된 구성과 관련된 내용만 이하에서 설명한다.The operation of the
통신 장치(140)는 모바일 기기(Smart Phone, Tablet PC), PC, 노트북 PC, PDA, 디지털 카메라 등의 단말장치(미도시)와 연결되며, 메모리(120)에 기저장된 스캔 이미지 또는 보정된 스캔 이미지를 타 단말장치에 전송할 수 있다. The
구체적으로, 통신 장치(140)는 화상독취장치(100)를 외부 장치와 연결하기 위해 형성되고, 근거리 통신망(LAN: Local Area Network) 및 인터넷망을 통해 단말장치에 접속되는 형태뿐만 아니라, USB(Universal Serial Bus) 포트 또는 무선 통신(예를 들어, WiFi 802.11a/b/g/n, NFC, Bluetooth) 포트를 통하여 접속되는 형태도 가능하다. 이러한 통신 장치(140)는 통신 인터페이스, 트랜시버(transceiver) 등으로 지칭될 수 있다. Specifically, the
디스플레이(150)는 화상독취장치(100)에서 제공하는 각종 정보를 표시한다. 구체적으로, 디스플레이(150)는 화상독취장치(100)가 제공하는 각종 기능을 선택받기 위한 사용자 인터페이스 창을 표시할 수 있다. 이러한 디스플레이(150)는 LCD, CRT, OLED 등과 같은 모니터일 수 있으며, 후술할 조작 입력 장치(160)의 기능을 동시에 수행할 수 있는 터치 스크린으로 구현될 수도 있다. The
그리고 디스플레이(150)는 화상독취장치(100)의 기능 수행을 위한 제어 메뉴를 표시할 수 있다. 이를 통해 사용자는 표시된 사용자 인터페이스 창 상에서 스캔 명령을 입력할 수 있다. 여기서 스캔 명령은 스캔 작업만을 수행하기 위한 명령일 수 있으며, 스캔된 작업을 특정의 서버로 전송하는 스캔-투-서버, 스캔-투-DLNA, 스캔-투-클라우드 등의 명령일 수도 있다. In addition, the
또한, 화상독취장치(100)가 인쇄 작업 및 복사 작업도 가능한 복합기(MFP)인 경우, 스캔 명령은 스캔 기능을 이용하는 복사 명령일 수도 있다. 한편, 본 실시 예에서는 조작 입력 장치(160)를 통하여 스캔 명령을 입력받는 것만을 설명하였지만, 구현 시에는 스캔 명령은 통신 장치(140)를 통하여 단말장치(미도시)로부터 수신될 수도 있다. In addition, when the
또한, 디스플레이(150)는 생성된 스캔 이미지 및 스캔 이미지에 대한 정보를 표시할 수 있다. 이때 표시되는 스캔 이미지는 스캔 이미지 그 자체이거나 스캔 이미지에 대한 프리뷰 이미지일 수도 있다. Also, the
그리고 디스플레이(150)는 원고 스캔 이후에 수행할 이미지 처리 방식 등을 선택받기 위한 사용자 인터페이스 창을 표시할 수 있다. 이때, 사용자 인터페이스 창은 스큐 보정을 수행하는 각도 범위를 입력받기 위한 입력 영역을 포함할 수 있다. In addition, the
조작 입력 장치(160)는 사용자로부터 기능 선택 및 해당 기능에 대한 제어 명령을 입력받을 수 있다. 여기서 기능은 인쇄 기능, 복사 기능, 스캔 기능, 팩스 전송 기능 등을 포함할 수 있다. 이러한 조작 입력 장치(160)는 복수의 버튼, 키보드, 마우스 등으로 구현될 수 있으며, 상술한 디스플레이(150)의 기능을 동시에 수행할 수 있는 터치 스크린으로도 구현될 수도 있다. The
인쇄 엔진(170)은 보정된 스캔 이미지를 인쇄한다. 이러한 인쇄 엔진(170)은 감광드럼, 중간전사벨트 및 용지 이송 벨트와 같은 화상형성매체에 이미지를 형성하고, 최종적으로 인쇄 용지에 화상형성매체에 형성된 이미지를 전사하여 인쇄 작업을 수행할 수 있다. The
프로세서(130)는 사용자로부터 복사 명령을 입력받았으면, 스캔 작업이 수행되도록 이미지 센서(110)를 제어하여 스캔 이미지를 생성하고, 생성된 스캔 이미지에 대한 이미지 보정을 수행하고, 보정된 스캔 이미지가 인쇄되도록 인쇄 엔진(170)을 제어할 수 있다. When the
또는 사용자로부터 스캔-투-서버, 스캔-투-DLNA, 스캔-투-클라우드 등의 명령을 입력받았으면, 프로세서(130)는 보정된 스캔 이미지가 명령에 대응되는 저장소로 전송되도록 통신 장치(140)를 제어할 수 있다. Alternatively, if a command such as a scan-to-server, scan-to-DLNA, scan-to-cloud, or the like is received from the user, the
또한, 도 1 및 도 2에는 화상독취장치(100)의 일반적인 기능만을 도시하고 설명하였지만, 상술한 구성뿐만 아니라, 화상독취장치(100)가 지원하는 기능에 따라 팩스 송수신 기능을 수행하는 팩스 송수신부 등을 더 포함할 수도 있다. In addition, although only the general functions of the
이상과 같이 본 실시 예에 따른 화상독취장치는 사변형 스큐를 보정할 수 있는바 보다 고품질의 스캔 이미지 출력이 가능하다. 또한, 블록에 기반하여 하드웨어 방식으로 스큐 보정을 수행하는바, 보다 빠른 속도로 스큐 보정이 가능하다. As described above, the image reading apparatus according to the present embodiment can correct a quadrangle skew, and thus can output a higher quality scanned image. In addition, since the skew correction is performed in a hardware manner based on a block, skew correction is possible at a faster speed.
도 3은 사변형 스큐의 예를 도시한 도면이다. 3 is a view showing an example of a quadrilateral skew.
도 3을 참조하면, 적재된 원고가 스캔 영역으로 이동하는 과정에서, 피딩 또는 이동 롤러 좌/우 속도(또는 힘)가 상이하면 사변형(quadrilateral) 형태로 틀어질 수 있다. Referring to FIG. 3, when the loaded document is moved to the scan area, if the feeding or moving roller left/right speed (or force) is different, it may be distorted in a quadrilateral shape.
이와 같은 사변형 형태의 스큐는 일반적인 스큐(즉, 회전에 의한 스큐)를 보정하는 방법을 이용할 수 없으며, RST(Rubber Sheet Transform)을 이용하여야 한다. The skew of the quadrilateral shape cannot use a method of correcting a general skew (ie, skew by rotation), and RST (Rubber Sheet Transform) must be used.
RST 방식은 원본이 사변형 형태로 왜곡된 경우, 구하고자 하는 출력 이미지(320)의 4개의 꼭짓점에 해당하는 입력 이미지(310)의 4개의 꼭짓점을 검출하고, 출력 이미지(320)의 픽셀에 해당하는 입력 이미지(310)의 픽셀 위치를 찾아 그 위치에서의 픽셀 값을 계산하는 역방향 매핑(backward Mapping)을 사용하여 사변형 왜곡을 보정할 수 있다. The RST method detects four vertices of the
아래와 같은 수학식 1은 사변형 왜곡을 보정하기 위해 출력 이미지(320)의 픽셀에 대응되는 입력 이미지(310)의 픽셀 위치를 계산하는데 이용되는 수학식이다.
여기서, x, y는 입력 이미지에서의 좌표 값이고, u, v는 출력 이미지에서의 좌표 값이고, a0, a1, a2, a3, bo, b1, b2, b3는 상수이고, XLT, YLT, XRT, YRT, XLB, YLB, XRB, YRB는 입력 이미지 상에서의 꼭짓점 좌표, W, H는 출력 이미지에서의 길이 정보이다. Here, x, y are the coordinate values in the input image, u, v are the coordinate values in the output image, and a0, a1, a2, a3, bo, b1, b2, b3 are constants, X LT , Y LT , X RT , Y RT , X LB , Y LB , X RB , and Y RB are vertex coordinates on the input image, and W and H are length information in the output image.
한편, 이와 같은 사변형 스큐를 소프트웨어가 아닌 ASIC 또는 SoC와 같은 장치에서 하드웨어 방식으로 보정하기 위해서는 블록 단위로 이미지를 읽어와 이미지 처리할 수 있는 방법이 요구된다. 구체적으로, ASIC 또는 SoC와 같은 프로세서는 한번에 처리할 수 있는 데이터 크기가 SRAM 또는 라인 메모리의 크기에 대응된다. On the other hand, in order to correct the quadrilateral skew in a hardware manner in a device such as an ASIC or SoC, not a software, a method for reading an image in a block unit and processing an image is required. Specifically, in a processor such as an ASIC or SoC, the size of data that can be processed at one time corresponds to the size of the SRAM or line memory.
따라서 본 개시에서는 일반적인 작은 크기의 SRAM(또는 라인 메모리)를 이용하는 경우에도 사변형 스큐를 보정할 수 있도록 블록 단위로 이미지 처리를 수행한다. Accordingly, in the present disclosure, image processing is performed in units of blocks so that quadrilateral skew can be corrected even when a general small size SRAM (or line memory) is used.
도 4는 도 1의 프로세서의 일 실시 예에 따른 구체적인 구성을 나타내는 도면이다. 4 is a diagram illustrating a specific configuration according to an embodiment of the processor of FIG. 1.
도 4를 참조하면, 프로세서(130)는 스캐너 인터페이스(131), CPU(132), RST 프로세서(200), 메모리 컨트롤러(134), 스캔 이미지 프로세서(135), 인쇄 이미지 프로세서(136), 비디오 컨트롤러(137)로 구성될 수 있다. 이러한 프로세서(130)는 ASIC(application specific integrated circuit) 또는 SoC(System on Chip) 일 수 있다. Referring to FIG. 4, the
스캐너 인터페이스(131)는 이미지 센서(110)와 통신하여 스캔 이미지를 수신한다. The
CPU(132)는 프로세서(130)의 전반적인 동작을 제어한다. 구체적으로, 스캔 속도에 대응하여 이미지 센서(110)의 정보를 읽어오도록 스캐너 인터페이스(131)를 제어하고, 읽어온 정보가 메모리(120)에 저장되도록 메모리 컨트롤러(134)를 제어할 수 있다. 그리고 CPU(132)는 사변형 스큐 보정이 필요한 경우, 스큐 보정이 수행되도록 RST 프로세서(200)를 제어할 수 있다. The
RST 프로세서(200)는 사변형 스큐와 관련된 이미지 처리를 수행한다. RST 프로세서(200)의 구체적인 구성 및 동작에 대해서는 도 5 및 도 6을 참조하여 후술한다. The
메모리 컨트롤러(134)는 메모리(120)와 통신한다. 구체적으로, 메모리 컨트롤러(134)는 데이터를 메모리(120)와 송신할 수 있다. The
스캔 이미지 프로세서(135)는 스캔 이미지에 대한 이미지 처리를 수행한다. 한편, 도시된 예에서는 RST 프로세서(200)가 스캔 이미지 프로세서(135)와 구별된 별도의 구성인 것으로 도시하고 설명하였지만, 구현시에 RST 프로세서(200)가 스캔 이미지 프로세서(135)의 일부 기능을 포함할 수도 있고, RST 프로세서(200)와 스캔 이미지 프로세서(135)가 하나의 프로세서로 통합되어 구성될 수도 있다. The scanned
인쇄 이미지 프로세서(136)는 인쇄 작업과 관련된 동작을 수행한다. 구체적으로, 인쇄 이미지 프로세서(136)는 인쇄 데이터가 수신되면, 수신된 인쇄 데이터에 대한 렌더링 동작을 수행하여 비트맵 이미지를 생성하는 동작을 수행할 수 있다. The
비디오 컨트롤러(137)는 인쇄 엔진(170)을 제어한다. 구체적으로, 비디오 컨트롤러(137)는 생성된 비트맵 이미지를 비디오 신호로 변환하고, 변환한 비디오 신호를 인쇄 엔진(170)에 전송할 수 있다. 여기서 비디오 신호는 인쇄 엔진(170)의 LSU(Laser Scanning Unit)에 제공되는 신호이다. The
도 5는 본 개시의 일 실시 예에 따른 스큐 보정 장치의 구성을 나타내는 도면이다. 5 is a view showing the configuration of a skew correction device according to an embodiment of the present disclosure.
도 5를 참조하면, RST 프로세서(200)는 DMA RX(210), RST 코어(220), DMA TX(230)로 구성될 수 있다. Referring to FIG. 5, the
DMA RX(210)는 메모리(120)(구체적으로, DRAM)에 저장된 스캔 이미지를 기설정된 제1 블록 크기(IBW, IBH)를 갖는 블록 크기로 읽어올 수 있다. 구체적으로, DMA RX(210)는 읽어올 제1 블록 크기의 블록 위치를 계산하고, 계산된 위치의 스캔 이미지를 메모리(120)에서 읽어올 수 있다. The
제1 블록 크기를 계산하는 구체적인 방법에 대해서는 도 6 내지 도 8을 참조하여 후술한다. A detailed method of calculating the first block size will be described later with reference to FIGS. 6 to 8.
그리고 RST 코어(220)는 읽어온 스캔 이미지 데이터를 이용하여 제2 블록 크기(OBW, OBH)를 갖는 출력 이미지를 생성할 수 있다. 여기서는 RST 프로세서(200)가 스큐 보정만을 수행하므로 제2 블록 크기는 최종 블록 크기(CHW, CBH)와 동일하다. 한편, RST 프로세서(200)가 추가 이미지 처리를 수행하는 경우, 제2 블록 크기는 최종 블록 크기(CHW, CBH)와 다를 수 있다. RST 코어(220)의 구체적인 구성 및 동작에 대해서는 도 9를 참조하여 후술한다. In addition, the
DMA TX(230)는 이미지 처리된 이미지를 메모리(120)에 저장한다. The
도시된 예에서는 RST 프로세서가 스큐 보정만을 수행하는 것으로 도시하고 설명하였지만, 구현시에 RST 프로세서는 스큐 보정뿐만 아니라 복수의 다른 이미지 처리를 동시에 수행할 수도 있다. 이러한 경우의 RST 프로세서의 동작은 도 6을 참조하여 이하에서 설명한다. In the illustrated example, the RST processor is shown and described as performing only skew correction, but in implementation, the RST processor may simultaneously perform a plurality of different image processing as well as skew correction. The operation of the RST processor in this case will be described below with reference to FIG. 6.
도 6은 본 개시의 다른 실시 예에 따른 스큐 보정 장치의 구성을 나타내는 도면이다. 도 6의 실시 예는 스큐 보정 처리뿐만 아니라 다른 추가적인 복수개의 이미지 처리를 포함한다. 6 is a view showing the configuration of a skew correction device according to another embodiment of the present disclosure. The embodiment of FIG. 6 includes a skew correction process as well as another additional plurality of image processes.
도 6을 참조하면, RST 프로세서(200')는 DMA RX(210), RST 코어(220), DMA TX(230), A 코어(240), B 코어(250) 및 C 코어(260)로 구성될 수 있다. Referring to FIG. 6, the RST processor 200' is composed of a
DMA RX(210), RST 코어(220), DMA TX(230)는 도 5와 관련하여 설명하였는바, 중복 설명은 생략한다. The
A 코어(240), B 코어(250), C 코어(260)는 서로 다른 알고리즘을 이용하여 이미지 처리를 수행한다. 예를 들어, A 코어는 이미지 처리 시에 9x9개의 주변 픽셀을 이용하여 이미지 처리를 수행하는 이미지 처리 알고리즘이고, B 코어는 7x7개의 주변 픽셀을 이용하여 이미지 처리를 수행하는 이미지 처리 알고리즘이고, C 코어는 5x5개의 주변 픽셀을 이용하여 이미지 처리를 수행하는 이미지 처리 알고리즘이다. The
한편, 도 6에서는 설명의 편의를 위하여 A, B, C의 3개의 이미지 처리를 수행하는 코어가 배치되는 것을 설명하였지만, 구현시에는 도 5의 구성에 1개 또는 2개의 이미지 처리 코어가 포함될 수 있으며, 4개 이상의 이미지 처리 코어가 추가될 수도 있다. On the other hand, in FIG. 6, for convenience of description, it has been described that cores for performing three image processing of A, B, and C are disposed, but in implementation, one or two image processing cores may be included in the configuration of FIG. In addition, four or more image processing cores may be added.
이와 같이 본 개시에서는 블록 단위로 여러 이미지 처리를 수행하는바, 즉 복수개의 이미지 처리 코어들을 파이프라인으로 구성하여 블록 프로세싱을 수행하는 이미지 처리가 가능하다. As described above, in the present disclosure, multiple image processing is performed in units of blocks, that is, image processing is performed by constructing a plurality of image processing cores in a pipeline to perform block processing.
이미지 처리는 보통 주변의 픽셀 수를 고려하여 이미지 처리를 수행하는바, 출력 이미지의 크기보다 큰 입력 이미지가 필요하다. 따라서, 도시된 바와 같이 최종적으로 출력하고자 하는 최종 블록(105)의 크기(CBW,CBH(256, 128))을 위해서는 5x5 주변 픽셀을 이용하는 C 코어(260)는 (260, 132) 크기의 입력 이미지(104)가 필요하다. 그리고 7x7 주변 픽셀을 이용하는 B 코어(250)는 (266, 138) 크기의 입력 이미지(103)가 필요하며, 9x9 주변 픽셀을 이용하는 A 코어(240)는 (274, 146)의 입력 이미지(102)가 필요하다. Image processing usually performs image processing in consideration of the number of pixels around it, so an input image larger than the size of the output image is required. Therefore, for the size (CBW,CBH (256, 128)) of the
따라서, 최종적으로 RST 코어(220)는 출력 블록(102)이 (274, 146) 크기가 될 수 있는 입력 블록(101)의 크기를 결정할 수 있다. 예를 들어, 스큐 각도에 기초하여 출력 블록의 크기가 (274, 146)이 될 수 있는 제1 블록 크기를 결정할 수 있다. 이하에서는 도 7 및 도 8을 참조하여 스큐 처리를 위한 블록 크기를 결정하는 방법에 대해서 설명한다. Thus, finally, the
도 7 및 도 8은 본 개시의 일 실시 예에 따라 스큐 처리를 위한 블록 크기 및 블록 위치를 결정하는 방법을 설명하기 위한 도면이다.7 and 8 are diagrams for explaining a method of determining a block size and a block location for skew processing according to an embodiment of the present disclosure.
도 7 및 도 8을 참조하면, 원본 이미지 또는 출력 이미지의 4개의 꼭짓점을 Q0 , Q1 , Q2 , Q3 라고 하면, 왜곡된 스캔 이미지 상의 4개의 꼭짓점은 P0, P1, P2, P3 에 대응된다.Referring to FIGS. 7 and 8, if the four vertices of the original image or the output image are Q0, Q1, Q2, Q3, the four vertices on the distorted scanned image correspond to P0, P1, P2, and P3.
도 7에서 출력 이미지 D(u,v)를 (CBW, CBH) 크기를 가진 블록 단위로 분할한다. In FIG. 7, the output image D(u,v) is divided into block units having (CBW, CBH) size.
또한, 복수 개의 이미지 처리를 위해 분할 영역 주변의 화소를 포함한 확장 분할 영역의 크기를 제2 블록 크기(OBW, OBH)라고 하고, 4개의 꼭짓점을 q0, q1, q2, q3 라고 하자. In addition, for processing a plurality of images, the size of an extended divided region including pixels around a divided region is referred to as a second block size (OBW, OBH), and four vertices are referred to as q0, q1, q2, and q3.
도 5와 같이 스큐 보정만을 처리하는 경우에는 제2 블록 크기(OBW, OBH)는 최종 블록 크기(CBW, CBH)과 동일한 크기의 이미지 블록을 가지게 된다. When only skew correction is processed as shown in FIG. 5, the second block sizes OBW and OBH have image blocks having the same size as the final block sizes CBW and CBH.
도 6과 같이 복수 개의 이미지 처리를 위한 코어들이 있는 경우에는, 제 2크기 블록(OBW, OBH)은 최종 크기 블록 (CBW, CBH) 보다 큰 크기의 이미지 블록을 가지게 된다. When there are cores for processing a plurality of images as shown in FIG. 6, the second size blocks OBW and OBH have image blocks having a size larger than the final size blocks CBW and CBH.
한편, RST 코어(220)가 하나의 블록 처리를 통하여 제2 블록 크기(OBW, OBH)의 이미지 블록을 출력해야 하는 경우, 입력 블록은 제2 블록 크기(OBW, OBH) 보다 큰 크기의 이미지 블록이 입력되어야 한다. 구체적으로, 보간 방식으로 이미지 처리를 수행하여야 하는 경우, 예를 들어, 특정 픽셀 주변에 4x4 픽셀 값이 필요하기 때문이다.Meanwhile, when the
이와 같은 과정에 따라 결정된 크기를 갖는 블록의 꼭지점이 q0, q1, q2, q3라고 하면, 왜곡된 스캔 이미지 상의 4개의 꼭짓점은 아래의 수학식 2와 같은 p0, p1, p2, p3 값을 가질 수 있다. If the vertices of a block having a size determined according to this process are q0, q1, q2, and q3, the four vertices on the distorted scanned image may have p0, p1, p2, and p3 values as shown in
여기서, p0, p1, p2, p3는 원본 이미지의 q0, q1, q2, q3 각각에 대응되는 스캔 이미지 상의 좌표이고, f(), g()는 수학식 1에서와 같은 RST 계산식이다. Here, p0, p1, p2, and p3 are coordinates on the scanned image corresponding to q0, q1, q2, and q3 of the original image, and f() and g() are RST calculation equations as in
따라서 RST 코어(220)는 스캔 이미지 상의 4개의 꼭짓점을 산출하고, 도 8에 도시된 바와 같이 4개의 꼭짓점을 모두 포함하는 사각형 블록의 꼭짓점 r0, r1, r2, r3를 산출할 수 있다. 여기서 r0, r1, r2, r3로 정의되는 블록은 상술한 제1 블록 크기를 가질 수 있다.Accordingly, the
구체적으로, p0, p1, p2, p3를 둘러싸는 최소의 사각형을 계산하기 위하여, 아래와 같은 수학식 3 내지 12를 계산하고, 이를 기초로 수학식 13과 같은 꼭짓점 r0, r1, r2, r3를 산출할 수 있다. Specifically, in order to calculate the minimum rectangle surrounding p0, p1, p2, and p3, the following
여기서 ┕ ┚는 내림 값(floor)이다. Where ┕ ┚ is the floor.
여기서 ┎ ┑는 올림 값(ceil)이다. Where ┎ ┑ is the raised value (ceil).
여기서 IBW는 제1 블록의 폭이다. Here, IBW is the width of the first block.
여기서 IBH는 제1 블록의 높이이다. Where IBH is the height of the first block.
한편, 이상에서는 IBH, IBW를 계산하는 이용하는 형태에 대해서 설명하였지만, 구현시에는 스큐 각도에 기초하여 정해진 값을 이용하는 것도 가능하다. On the other hand, in the above, the form of calculating the IBH and IBW has been described, but in implementation, it is possible to use a value determined based on the skew angle.
구체적으로, 스큐 각도가 클수록 r0 , r1 , r2 , r3 로 구성된 블록은 커지게 되어 메모리(120)에서 읽어와야 할 데이터는 커지게 된다. 그러나 일반적인 스큐 각도는 예를 들면, - 5 ~ + 5도 범위를 갖고, 프로세서 내부의 SRAM도 고정된 크기를 갖는다. 이러한 점을 고려하여, 스큐 각도가 정해지면 그에 대응하여 IBW와 IBH를 고정하여 이용할 수 있다. 이러한 경우, 상술한 수학식 2~6을 이용하여 r0을 계산하고, r1, r2, r3는 고정된 IBW와 IBH를 이용하여 수학식 13을 통하여 바로 계산할 수도 있다. Specifically, the larger the skew angle is, the larger the blocks composed of r0, r1, r2, and r3 become, so that the data to be read from the
그리고 RST 코어(220)는 상술한 연산 과정에서 Q0, Q1, Q2, Q3 값에 해당되는 P0, P1, P2, P3 이 동일하거나 차이가 크지 않으면, 즉 스큐 각도가 매우 작은 경우에는 RST를 수행하지 않을 수 있다. 또한, RST 코어(220)는 P0, P1, P2, P3 값을 이용하여 사변형의 내각과 사변형의 길이가 미리 설계한 범위를 넘어서는 경우에는, 즉 스큐 각도가 매우 큰 경우에는 RST를 수행하지 않거나 범위의 극값으로 수행할 수도 있다. And
도 9는 본 개시의 일 실시 예에 따른 RST 코어의 구체적인 구성을 나타내는 도면이다. 9 is a view showing a specific configuration of the RST core according to an embodiment of the present disclosure.
RST 코어(900)는 입력 블록 인터페이스(910), SRAM 인터페이스(920), 보간부(Interpolation)(930), 출력 블록 인터페이스(940)로 구성될 수 있다. The
입력 블록 인터페이스(910)는 DMA RX(210)를 제어하여 기설정된 크기의 스캔 이미지를 읽어오는 동작을 수행한다. 구체적으로, 입력 블록 인터페이스(910)는 제1 블록 크기(IBW x IBH)의 스캔 이미지를 수신할 수 있다. The
SRAM 인터페이스(920)는 SRAM(190)에 데이터를 읽고 쓰는 동작을 수행한다. 여기서 SRAM(190)은 휘발성 메모리로, 프로세서(130) 내의 라인 메모리이거나 RST 프로세서(200) 또는 이미지 프로세서의 전용 메모리일 수 있다. 그리고 SRAM(190)은 제1 블록 크기에 대응되게 가로로 IBW, 세로로 IBH 크기를 가질 수 있으나, SRAM은 제1 블록 크기보다 작은 크기(IBW x IBH2)(여기서 IBH2 <IBH)를 가질 수도 있다. The
구체적으로, SRAM 인터페이스(920)는 입력 블록 인터페이스(910)에서 읽어온 제1 블록 크기의 스캔 이미지를 기설정된 크기의 픽셀 블록으로 분할하여 SRAM(190)에 저장할 수 있다. Specifically, the
그리고 SRAM 인터페이스(920)는 보간 동작시에는 보간 동작에 필요한 일부 픽셀 블록만을 SRAM(190)에서 읽어오는 동작을 수행할 수 있다. 이러한 쓰기 읽기 동작에 대해서는 도 10 및 도 11을 참조하여 후술한다. In addition, in the interpolation operation, the
보간부(930)는 읽어온 이미지를 이용하여 보간 동작을 수행한다. 구체적으로, 보간부(930)는 복수의 픽셀 블록의 픽셀 값을 이용하여, 특정 픽셀에 대한 값을 산출할 수 있다. 예를 들어, 보간부(930)는 Bilinear, Quadratic, Bicubic 등 여러 보간 방식을 이용하여 보정을 수행할 수 있다. The
이하에서는 설명을 용이하게 하기 위하여, 4x4 개의 주변 픽셀을 이용하는 Bicubic 보간 방식이 적용된 경우를 가정하여 설명한다. Hereinafter, in order to facilitate the description, it will be described on the assumption that the Bicubic interpolation method using 4x4 peripheral pixels is applied.
예를 들어, 도 10에 도시된 바와 같이 특정 위치의 픽셀 값을 산출하기 위하여, 16개의 주변 픽셀 값이 필요하다. 만약, SRAM(190)에 각 줄의 픽셀 값들이 서로 다른 SRAM 라인에 저장되는 경우, 16개의 픽셀 값을 읽기 위해서는 4 클럭의 시간이 소요된다. For example, as illustrated in FIG. 10, 16 peripheral pixel values are required to calculate a pixel value at a specific location. If the pixel values of each line are stored in different SRAM lines in the
따라서, 1 클럭의 시간 동안 보간에 필요한 데이터를 읽을 수 있도록, 보간부(930)는 입력 블록 인터페이스(910)에서 읽어도 제1 블록 크기의 스캔 이미지를 복수의 픽셀 블록(예를 들어, 4개 픽셀)으로 구분하고, 한 번의 보간에 필요한 복수의 픽셀 블록은 SRAM의 한 라인에 저장되도록 SRAM 인터페이스(920)를 제어할 수 있다. Therefore, the
예를 들어, 도 11에 도시된 바와 같이 보간부(930)는 SRAM(190)을 가로로 4개의 조각으로 나누고, 세로 방향으로도 개별적으로 구성하여 읽어들인 제1 블록 크기의 스캔 이미지를 저장함으로써, 보간에 필요한 16개의 픽셀 값을 한번에 읽는 게 가능해 진다. For example, as illustrated in FIG. 11, the
출력 블록 인터페이스(940)는 보간부(930)에서 출력되는 보정 이미지를 외부로 출력하는 동작을 수행한다. 이때 출력되는 보정 이미지는 제2 블록 크기(OBW, OBH)를 가질 수 있다. 만약, RST 프로세서(200)가 추가적인 이미지 처리를 함께 수행하는 경우에 출력 블록 인터페이스(940)가 출력하는 이미지는 이후 이미지 처리에 필요한 크기에 대응되는 크기를 가질 수 있다. The
도 12는 본 개시의 일 실시 예에 따른 스큐 보정 방법을 설명하기 위한 도면이다. 12 is a view for explaining a skew correction method according to an embodiment of the present disclosure.
도 12를 참조하면, 제1 블록 크기를 설정한다(S1210). 구체적으로, 스캔 이미지의 사변형 스큐 각도를 계산하고, 제2 블록 크기 및 계산된 스큐 각도에 기초하여 제1 블록 크기를 설정할 수 있다. 이때, 스큐 보정에 수행할 보간 방식에 대응되는 주변 픽셀 수를 추가로 고려하여 제1 블록 크기를 설정할 수 있다. 또한, 스큐 보정뿐만 아니라 추가적인 이미지 처리를 수행하는 경우에는 추가적 이미지 처리에 필요한 주변 픽셀 수도 추가로 고려하여 제1 블록 크기를 설정할 수 있다. Referring to FIG. 12, a first block size is set (S1210). Specifically, the quadrilateral skew angle of the scanned image may be calculated, and the first block size may be set based on the second block size and the calculated skew angle. In this case, the first block size may be set by further considering the number of neighboring pixels corresponding to the interpolation method to be performed for skew correction. In addition, when performing additional image processing as well as skew correction, the first block size may be set by additionally considering the number of surrounding pixels required for additional image processing.
그리고 메모리에 저장된 스캔 이미지를 설정된 제1 블록 크기 단위로 읽어온다(S1220). 구체적으로, 원본 영역을 제2 블록 크기로 분할하고, 복수의 분할 영역을 순차적으로 생성하기 위하여 '제1 블록 크기를 가지며 스캔 이미지 내의 분할 영역을 포함하는 블록 영역'에 대한 좌표를 산출하고, 산출된 좌표에 기초하여 제1 블록 크기의 스캔 이미지를 읽을 수 있다. Then, the scanned image stored in the memory is read in a set first block size unit (S1220). Specifically, in order to divide the original region into a second block size and sequentially generate a plurality of divided regions, coordinates for'a block region having a first block size and including a divided region in a scanned image' are calculated and calculated. The scanned image of the first block size can be read based on the coordinates.
여기서, 좌표 산출은 분할 영역 및 분할 영역 주변의 기설정된 개수의 픽셀을 포함하는 확장 분할 영역에 대한 원본 영역 상의 꼭짓점 좌표를 산출하고, 산출된 꼭짓점 좌표를 스캔 이미지 상의 꼭짓점 좌표로 변환하고, 스캔 이미지 상의 꼭짓점 좌표로 정의되는 영역을 포함하는 제1 블록 크기의 블록 영역에 좌표를 산출하는 방식으로 수행될 수 있다. Here, the coordinate calculation calculates vertex coordinates on the original area for the extended partition including the partition and a preset number of pixels around the partition, converts the calculated vertex coordinates to vertex coordinates on the scanned image, and scans the image. It may be performed by calculating coordinates in a block area having a first block size including an area defined by vertex coordinates of the image.
그리고 제1 블록 크기의 스캔 이미지를 이미지 보정하여 제2 블록 크기의 보정 이미지를 생성한다(S1230). 한편, 추가적인 이미지 처리를 수행하는 경우, 스큐 보정된 보정 이미지에 대해서 추가적인 이미지 처리가 파이프라인 형태로 수행될 수 있다. Then, the first block-size scanned image is image-corrected to generate a second block-size corrected image (S1230). Meanwhile, when additional image processing is performed, additional image processing may be performed in a pipeline form for the skew corrected corrected image.
그리고 생성된 제2 블록 크기의 보정 이미지를 메모리에 저장한다(S1240). 그리고 상술한 바와 같은 동작을 반복적으로 수행하여 스캔 이미지 전체에 대한 보정 이미지를 수행할 수 있다. Then, the corrected image of the generated second block size is stored in the memory (S1240). In addition, the above-described operation may be repeatedly performed to perform a corrected image for the entire scanned image.
이상과 같이 일 실시 예에 따른 스큐 보정 방법은 사변형 스큐를 보정할 수 있는바 보다 고품질의 스캔 이미지 출력이 가능하다. 또한, 블록에 기반하여 하드웨어 방식으로 스큐 보정을 수행하는바, 더욱 빠른 속도로 스큐 보정이 가능하다. As described above, the skew correction method according to an exemplary embodiment can correct a quadrangle skew, and thus can output a higher-quality scanned image. In addition, since the skew correction is performed in a hardware manner based on a block, skew correction is possible at a higher speed.
한편, 상술한 스큐 보정 방법은 프로그램으로 구현되어 관리 서버에 제공될 수 있다. 특히, 스큐 보정 방법을 포함하는 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다. Meanwhile, the skew correction method described above may be implemented as a program and provided to the management server. In particular, a program including a skew correction method may be stored and provided in a non-transitory computer readable medium.
이상에서는 본 개시의 바람직한 실시예에 대해서 도시하고, 설명하였으나, 본 개시는 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다. The preferred embodiments of the present disclosure have been described and described above, but the present disclosure is not limited to the specific embodiments described above, and it is not limited to the specific embodiments described above, without departing from the gist of the present disclosure claimed in the claims. Of course, various modifications can be made to any person skilled in the art, and such changes are within the scope of the claims.
100: 화상독취장치
110: 이미지 센서
120: 메모리
130: 프로세서
140: 통신 장치
150: 디스플레이
160: 조작 입력 장치
170: 인쇄 엔진100: image reading device 110: image sensor
120: memory 130: processor
140: communication device 150: display
160: operation input device 170: print engine
Claims (15)
원고를 독취하는 이미지 센서;
상기 원고에 대응되는 스캔 이미지를 저장하는 메모리; 및
상기 메모리에 저장된 스캔 이미지를 기설정된 제1 블록 크기를 갖는 블록 크기 단위로 읽어오고, 제1 블록 크기의 스캔 이미지를 이미지 보정하여 제2 블록 크기의 보정 이미지를 생성하고, 생성된 제2 블록 크기의 보정 이미지를 상기 메모리에 저장하는 프로세서;를 포함하고,
상기 프로세서는,
상기 스캔 이미지의 사변형 스큐 각도를 계산하고, 상기 제2 블록 크기 및 상기 계산된 스큐 각도에 기초하여 제1 블록 크기를 설정하는 화상독취장치. In the image reading device,
An image sensor that reads the manuscript;
A memory for storing the scanned image corresponding to the original; And
The scanned image stored in the memory is read in block size units having a predetermined first block size, and the first block size scanned image is image corrected to generate a second block size corrected image, and the generated second block size Includes a processor for storing the corrected image of the memory;
The processor,
An image reading apparatus for calculating a quadrangle skew angle of the scanned image, and setting a first block size based on the second block size and the calculated skew angle.
상기 프로세서는,
원본 영역을 상기 제2 블록 크기로 분할하고, 복수의 분할 영역을 순차적으로 생성하기 위하여 '상기 제1 블록 크기를 가지며 상기 스캔 이미지 내의 분할 영역을 포함하는 블록 영역'에 대한 좌표를 산출하고, 상기 산출된 좌표에 기초하여 제1 블록 크기의 스캔 이미지를 읽는 화상독취장치.According to claim 1,
The processor,
In order to divide the original region into the second block size, and sequentially generate a plurality of divided regions, coordinates for'a block region having the first block size and including the divided region in the scanned image' are calculated, and the An image reading apparatus for reading a scanned image of a first block size based on the calculated coordinates.
상기 프로세서는,
상기 분할 영역 및 상기 분할 영역 주변의 기설정된 개수의 픽셀을 포함하는 확장 분할 영역에 대한 상기 원본 영역 상의 꼭짓점 좌표를 산출하고, 상기 산출된 꼭짓점 좌표를 상기 스캔 이미지 상의 꼭짓점 좌표로 변환하고, 상기 스캔 이미지 상의 꼭짓점 좌표로 정의되는 영역을 포함하는 제1 블록 크기의 블록 영역에 좌표를 산출하는 화상독취장치. According to claim 2,
The processor,
Calculate vertex coordinates on the original area for the extended partition including the partition and a preset number of pixels around the partition, convert the calculated vertex coordinates to vertex coordinates on the scanned image, and scan An image reading apparatus for calculating coordinates in a block area of a first block size including an area defined by vertex coordinates on an image.
상기 프로세서는,
스큐 보정에 수행할 보간 방식에 대응되는 주변 픽셀 수를 추가로 고려하여 상기 제1 블록 크기를 설정하는 화상독취장치. According to claim 1,
The processor,
An image reading apparatus for setting the first block size by further considering the number of surrounding pixels corresponding to an interpolation method to be performed for skew correction.
상기 프로세서는,
상기 제1 블록 크기의 스캔 이미지를 스큐 보정하여 제3 블록 크기의 보정 이미지를 생성하고, 상기 제3 블록 크기의 보정 이미지에 대한 추가 이미지 보정 처리를 수행하여 제2 블록 크기의 보정 이미지를 생성하는 화상독취장치. According to claim 1,
The processor,
Skew-correcting the scanned image of the first block size to generate a corrected image of the third block size, and performing additional image correction processing on the corrected image of the third block size to generate a corrected image of the second block size Image reading device.
상기 추가 이미지 보정 처리에 필요한 주변 픽셀 수의 크기를 추가로 고려하여 상기 제1 블록 크기를 설정하는 화상독취장치. The method of claim 5,
An image reading apparatus for setting the first block size by further considering the size of the number of surrounding pixels required for the additional image correction processing.
상기 프로세서는,
상기 제1 블록 크기의 스캔 이미지를 기설정된 크기의 픽셀 블록으로 분할하고, 픽셀 단위로 특정 픽셀의 이미지 처리에 필요한 복수의 픽셀 블록을 동시에 이용하여 상기 특정 픽셀에 대한 이미지 처리를 수행하는 화상독취장치. According to claim 1,
The processor,
An image reading apparatus for dividing the scanned image of the first block size into pixel blocks having a predetermined size, and performing image processing on the specific pixel by simultaneously using a plurality of pixel blocks required for image processing of a specific pixel in units of pixels. .
상기 프로세서는,
상기 계산된 스큐 각도가 기설정된 크기 범위인 경우에 스큐 보정을 수행하는 화상독취장치.According to claim 1,
The processor,
An image reading apparatus that performs skew correction when the calculated skew angle is within a preset size range.
상기 스캔 이미지의 사변형 스큐 각도를 계산하고, 상기 제2 블록 크기 및 상기 계산된 스큐 각도에 기초하여 제1 블록 크기를 설정하는 단계;
메모리에 저장된 스캔 이미지를 상기 설정된 제1 블록 크기 단위로 읽어오는 단계;
제1 블록 크기의 스캔 이미지를 이미지 보정하여 제2 블록 크기의 보정 이미지를 생성하는 단계; 및
생성된 제2 블록 크기의 보정 이미지를 상기 메모리에 저장하는 단계;를 포함하는 스큐 보정 방법. In the skew correction method of the image reading device,
Calculating a quadrangle skew angle of the scanned image and setting a first block size based on the second block size and the calculated skew angle;
Reading the scanned image stored in the memory in the set first block size unit;
Image-correcting the scanned image of the first block size to generate a corrected image of the second block size; And
And storing the generated second block sized correction image in the memory.
상기 읽어오는 단계는,
원본 영역을 상기 제2 블록 크기로 분할하는 단계;
복수의 분할 영역을 순차적으로 생성하기 위하여 '상기 제1 블록 크기를 가지며 상기 스캔 이미지 내의 분할 영역을 포함하는 블록 영역'에 대한 좌표를 산출하는 단계; 및
상기 산출된 좌표에 기초하여 제1 블록 크기의 스캔 이미지를 읽는 단계;를 포함하는 스큐 보정 방법. The method of claim 9,
The reading step,
Dividing the original area into the second block size;
Calculating coordinates for'a block area having the first block size and including a divided area in the scanned image' in order to sequentially generate a plurality of divided areas; And
And reading a scanned image of a first block size based on the calculated coordinates.
상기 좌표를 산출하는 단계는,
상기 분할 영역 및 상기 분할 영역 주변의 기설정된 개수의 픽셀을 포함하는 확장 분할 영역에 대한 상기 원본 영역 상의 꼭짓점 좌표를 산출하고, 상기 산출된 꼭짓점 좌표를 상기 스캔 이미지 상의 꼭짓점 좌표로 변환하고, 상기 스캔 이미지 상의 꼭짓점 좌표로 정의되는 영역을 포함하는 제1 블록 크기의 블록 영역에 좌표를 산출하는 스큐 보정 방법. The method of claim 10,
Step of calculating the coordinates,
Calculate vertex coordinates on the original area for the extended partition including the partition and a preset number of pixels around the partition, convert the calculated vertex coordinates to vertex coordinates on the scanned image, and scan A skew correction method for calculating coordinates in a block area of a first block size including an area defined by vertex coordinates on an image.
상기 설정하는 단계는,
스큐 보정에 수행할 보간 방식에 대응되는 주변 픽셀 수를 추가로 고려하여 상기 제1 블록 크기를 설정하는 스큐 보정 방법. The method of claim 9,
The setting step,
The skew correction method of setting the first block size by further considering the number of surrounding pixels corresponding to the interpolation method to be performed for skew correction.
상기 보정 이미지를 생성하는 단계는,
상기 제1 블록 크기의 스캔 이미지를 스큐 보정하여 제3 블록 크기의 보정 이미지를 생성하는 단계; 및
상기 제3 블록 크기의 보정 이미지에 대한 추가 이미지 보정 처리를 수행하여 제2 블록 크기의 보정 이미지를 생성하는 단계;를 포함하는 스큐 보정 방법. The method of claim 9,
The step of generating the corrected image,
Skew correcting the scanned image of the first block size to generate a corrected image of the third block size; And
And performing a second image correction process on the third block sized correction image to generate a second block sized correction image.
상기 설정하는 단계는,
상기 추가 이미지 보정 처리에 필요한 주변 픽셀 수의 크기를 추가로 고려하여 상기 제1 블록 크기를 설정하는 스큐 보정 방법. The method of claim 13,
The setting step,
The skew correction method of setting the first block size by further considering the size of the number of surrounding pixels required for the additional image correction processing.
상기 계산된 스큐 각도가 기설정된 크기 범위인지를 판단하는 단계;를 더 포함하는 스큐 보정 방법.
The method of claim 9,
And determining whether the calculated skew angle is a preset size range.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190005710A KR20200089074A (en) | 2019-01-16 | 2019-01-16 | Method for skew compensation based on block |
PCT/US2019/041972 WO2020149880A1 (en) | 2019-01-16 | 2019-07-16 | Method for skew compensation based on block |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190005710A KR20200089074A (en) | 2019-01-16 | 2019-01-16 | Method for skew compensation based on block |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200089074A true KR20200089074A (en) | 2020-07-24 |
Family
ID=71613703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190005710A KR20200089074A (en) | 2019-01-16 | 2019-01-16 | Method for skew compensation based on block |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20200089074A (en) |
WO (1) | WO2020149880A1 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100946888B1 (en) * | 2003-01-30 | 2010-03-09 | 삼성전자주식회사 | Device and method for correcting a skew of image |
JP4424414B2 (en) * | 2007-12-05 | 2010-03-03 | コニカミノルタビジネステクノロジーズ株式会社 | Image processing device |
KR101969965B1 (en) * | 2012-12-24 | 2019-08-13 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | Image scanning apparatus, method for image compensation and computer-readable recording medium |
-
2019
- 2019-01-16 KR KR1020190005710A patent/KR20200089074A/en unknown
- 2019-07-16 WO PCT/US2019/041972 patent/WO2020149880A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2020149880A1 (en) | 2020-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011141405A (en) | Image processing apparatus, control method for image processing apparatus, and program | |
US8937753B2 (en) | Image scanning apparatus, image compensation method and computer-readable recording medium | |
US11272074B2 (en) | System, method, and storage medium for converting low-resolution image data into high-resolution image data using neural network | |
JP2010283687A (en) | Program, information processing apparatus, gradation correction parameter generating method, and storage medium | |
US20110235906A1 (en) | Image processing apparatus, image processing method, and computer-readable storage medium for computer program | |
US9069491B2 (en) | Image processing apparatus, image processing method, and storage medium | |
US10021275B2 (en) | Image processing apparatus, method of controlling image processing apparatus, and non-transitory recording medium | |
JP5648409B2 (en) | Image processing apparatus, image processing method, and program | |
JP5955822B2 (en) | Color conversion apparatus, image forming apparatus, color conversion method, and color conversion program | |
KR20200089074A (en) | Method for skew compensation based on block | |
KR20200092198A (en) | Skew compensation based on scale factor | |
JP6882043B2 (en) | Image processing equipment, programs and image processing methods | |
JP7003568B2 (en) | Image processing device, image processing method | |
US8416469B2 (en) | Image processing apparatus, image processing method and computer program | |
JP7457079B2 (en) | Image forming apparatus, information processing system, information processing program, and information processing method | |
JP7361513B2 (en) | Image forming apparatus, its control method, and program | |
JP2019153061A (en) | Image processing device, control method of the same and program thereof | |
JP5847687B2 (en) | Image processing setting method, program, recording medium, and information processing apparatus | |
KR20220051655A (en) | Iamge scanning apparatus for compensating optical flare | |
JP6045459B2 (en) | Image forming apparatus | |
US9049335B2 (en) | Image scanning apparatus, method for discrimination of color and computer-readable recording medium | |
JP5960097B2 (en) | Image forming apparatus and image forming method | |
JP2020182134A (en) | Image forming apparatus and control method of the same | |
KR20210040584A (en) | Method for improve of scan speed using pre-scan | |
KR20060009565A (en) | Method for setting copy position using preview function |