KR20200089074A - Method for skew compensation based on block - Google Patents

Method for skew compensation based on block Download PDF

Info

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
Application number
KR1020190005710A
Other languages
Korean (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 KR1020190005710A priority Critical patent/KR20200089074A/en
Priority to PCT/US2019/041972 priority patent/WO2020149880A1/en
Publication of KR20200089074A publication Critical patent/KR20200089074A/en

Links

Images

Classifications

    • 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/387Composing, repositioning or otherwise geometrically modifying originals
    • H04N1/3877Image rotation
    • H04N1/3878Skew detection or correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • 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/00795Reading arrangements
    • H04N1/00798Circuits or arrangements for the control thereof, e.g. using a programmed control device or according to a measured quantity
    • 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/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Abstract

Disclosed is an image reading device. The image reading device comprises: an image sensor reading a manuscript; a memory storing a scan image corresponding to the manuscript; and a processor reading the scan image stored in the memory in units of a block size with a preset first block size, generating a correction image of a second block size by correcting the scan image of the first block size, and storing the generated correction image of the second block size in the memory. The processor calculates a quadrilateral skew angle of the scan image, and sets a first block size based on the second block size and the calculated skew angle.

Description

블록에 기반한 스큐 보정 방법{METHOD FOR SKEW COMPENSATION BASED ON BLOCK} Block-based skew correction method {METHOD FOR SKEW COMPENSATION BASED ON BLOCK}

화상독취장치는 문서, 그림 또는 필름 등의 원본 이미지를 스캔하여 디지털 데이터로 변환하는 장치이다. 이 경우 디지털 데이터는 컴퓨터의 모니터에 표시되거나 프린터에 의해 인쇄되어 출력 이미지로 생성될 수 있다. 이러한 화상독취장치의 예로는, 스캐너, 복사기, 팩시밀리 또는 이들의 기능을 하나의 장치를 통해 복합적으로 구현하는 복합기(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 RST core 220 according to an embodiment of the present disclosure,
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 image reading apparatus 100 may include an image sensor 110, a memory 120, and a processor 130.

이미지 센서(110)는 원고를 독취한다. 구체적으로, 이미지 센서(110)는 원고에서 반사된 광(또는 빛)으로부터 원고의 이미지 정보를 독취할 수 있다. 이러한 이미지 센서(110)는 주주사방향으로 일렬로 배치되는 CCD(Charge Coupled Device) 또는 CIS(CMOS image sensor)를 포함할 수 있다. 이러한 이미지 센서(110)는 플랫베드(flatbed) 하단에 배치될 수 있으며, 자동공급장치(ADF) 내에 배치될 수 있다.The image sensor 110 reads the manuscript. Specifically, the image sensor 110 may read image information of the original from light (or light) reflected from the original. The image sensor 110 may include a CCD (Charge Coupled Device) or CIS (CMOS image sensor) arranged in a line in the main scanning direction. The image sensor 110 may be disposed at the bottom of a flatbed, and may be disposed in an automatic feeding device (ADF).

메모리(120)는 이미지 처리를 위한 데이터를 저장할 수 있다. 구체적으로, 메모리(120)는 후술할 프로세서(130)의 이미지 처리를 수행하는데 필요한 프로그램을 저장하거나, 이미지 센서(110)에서 독취된 신호 또는 프로세서(130)에서 처리된 데이터(예를 들어, 스큐 보정된 이미지)를 저장할 수 있다. The memory 120 may store data for image processing. Specifically, the memory 120 stores a program necessary to perform image processing of the processor 130 to be described later, or a signal read from the image sensor 110 or data processed by the processor 130 (eg, skew Calibrated image).

이러한, 메모리(120)는 DRAM, SRAM과 같은 휘발성 메모리이거나, HDD, SSD, 플래시 메모리 등 비휘발성 메모리일 수 있으며, 휘발성 메모리와 비휘발성 메모리의 조합일 수도 있다. The memory 120 may be a volatile memory such as DRAM or SRAM, or a non-volatile memory such as an HDD, SSD, or flash memory, or a combination of volatile memory and non-volatile memory.

프로세서(130)는 화상독취장치(100) 내의 각 구성을 제어한다. 구체적으로, 프로세서(130)는 CPU, ASIC 등으로 구현될 수 있으며, 사용자로부터 스캔 명령이 입력되는지를 감지할 수 있다. 여기서 스캔 명령은 화상독취장치(100)에 구비된 조작 입력 장치(160)를 통하여 입력되거나, 외부 장치(예를 들어, PC, 스마트폰 등)로부터 통신 장치(140)를 통하여 입력될 수도 있다. The processor 130 controls each component in the image reading device 100. Specifically, the processor 130 may be implemented with a CPU, an ASIC, or the like, and detect whether a scan command is input from a user. Here, the scan command may be input through the manipulation input device 160 provided in the image reading apparatus 100, or may be input through an communication device 140 from an external device (for example, a PC, a smartphone, etc.).

스캔 명령이 입력되면 프로세서(130)는 스캔 이미지가 생성되도록 이미지 센서(110)를 제어할 수 있다. 그리고 프로세서(130)는 이미지 센서(110)에서 출력된 신호를 이용하여 스캔 이미지를 생성할 수 있다. 그리고 프로세서(130)는 생성된 스캔 이미지를 메모리(120)에 저장할 수 있다. When a scan command is input, the processor 130 may control the image sensor 110 to generate a scanned image. In addition, the processor 130 may generate a scanned image using the signal output from the image sensor 110. In addition, the processor 130 may store the generated scan image in the memory 120.

그리고 프로세서(130)는 이미지 처리가 필요한지를 판단할 수 있다. 여기서 이미지 처리는 스캔 이미지의 스큐를 조정하는 동작, 색상과 밝기를 조정하는 동작, 스캔 이미지에 포함된 종이의 후면 배경을 제거하는 동작 등일 수 있다. In addition, the processor 130 may determine whether image processing is necessary. Here, the image processing may be an operation of adjusting the skew of the scanned image, an operation of adjusting the color and brightness, an operation of removing the back background of the paper included in the scanned image, and the like.

만약, 원고에 사변형 스큐가 감지된 경우, 프로세서(130)는 사변형 스큐의 각도를 계산하고, 계산된 사변형 스큐 각도가 기설정된 범위(예를 들어, -5도 ~ +5도)인 경우에는 사변형 스큐 보정을 위한 이미지 처리를 수행하는 것으로 결정할 수 있다. 원고에 사변형 스큐가 감지된 경우라도 계산된 스큐 각도가 기설정된 범위를 벗어났으면 사변형 스큐 보정 처리는 수행하지 않는 것으로 결정할 수도 있고, 기설정된 범위의 극값으로 스큐 보정 처리를 수행할 수도 있다. 한편, 구현시에는 사변형 스큐를 인지하기에 미미한 각도이면 스큐 보정을 수행하지 않는 것으로 결정할 수 있다. If a quadrilateral skew is detected in the manuscript, the processor 130 calculates the angle of the quadrilateral skew, and when the calculated quadrilateral skew angle is within a preset range (eg, -5 degrees to +5 degrees), the quadrilateral It may be decided to perform image processing for skew correction. Even when a quadrilateral skew is detected in the document, if the calculated skew angle is outside a preset range, it may be determined that the quadrilateral skew correction process is not performed, or the skew correction process may be performed with an extreme value of the preset range. On the other hand, in the implementation, it may be determined that skew correction is not performed if the angle is small enough to recognize the quadrilateral skew.

이러한 각도 범위는 제조사에서 설정하여 제공할 수도 있으며, 사용자 또는 관리자가 범위를 설정하거나 수정할 수도 있다. 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 processor 130 may perform an operation of confirming whether a quadrilateral skew exists in an original image and an operation of confirming the angle of the maritime quadrilateral skew. On the other hand, in the above, it has been described that the quadrilateral skew is checked and the skew angle is calculated thereafter. However, in the implementation, the skew angle may be calculated first and the quadrilateral skew may be checked accordingly.

프로세서(130)는 메모리(120)에 저장된 이미지 데이터를 이미지의 가로 크기에 해당되는 한 라인 단위로 순차적으로 읽어서 이미지 처리를 수행할 수도 있고, 이미지를 복수개의 블록으로 분할하여 블록 크기 단위로 읽어서 이미지 처리를 수행할 수도 있다. The processor 130 may sequentially read image data stored in the memory 120 in units of one line corresponding to the horizontal size of the image, and perform image processing, or divide the image into a plurality of blocks and read the image in block size units. Processing may be performed.

ASIC 또는 SoC와 같은 장치로 구현되는 프로세서(130)에서는 내부 메모리의 제약으로 인해 블록 크기 단위로 읽어와 처리할 수밖에 없는바, 이하에서는 블록 단위로 이미지 블록을 독취하기 위한 본 개시의 동작을 설명한다. The processor 130 implemented as a device such as an ASIC or SoC has no choice but to read and process in a block size unit due to limitations of internal memory. Hereinafter, an operation of the present disclosure for reading an image block in block units will be described. .

먼저, 블록 크기 단위로 데이터를 읽어와 이미지 처리를 수행하기 위하여, 프로세서(130)는 이미지 처리에 필요한 이미지 블록 크기를 결정할 수 있다. 예를 들어, 스큐 보정을 수행하는 경우, 프로세서(130)는 스캔 이미지의 스큐 각도를 계산하고, 계산된 스큐 각도에 기초하여 이미지 처리에 필요한 블록 크기(이하에서는 제1 블록 크기)를 결정할 수 있다. 이때 프로세서(130)는 이미지 처리에 필요한 주변 픽셀 수를 추가적으로 고려하여 제1 블록 크기를 결정할 수 있다. First, in order to perform image processing by reading data in block size units, the processor 130 may determine an image block size required for image processing. For example, when performing skew correction, the processor 130 may calculate a skew angle of the scanned image and determine a block size (hereinafter, a first block size) required for image processing based on the calculated skew angle. . In this case, the processor 130 may determine the first block size by additionally considering the number of surrounding pixels required for image processing.

예를 들어, 스큐 보정을 위하여 4x4 주변 픽셀 수를 이용하는 bicubic 보간 방식을 이용하는 경우, 프로세서(130)는 목표로 하는 분할 영역보다 4x4 주변 픽셀 수만큼 큰 확장 분할 영역을 스캔 이미지 상에서 포함할 수 있는 제1 블록 크기를 결정할 수 있다. For example, in the case of using a bicubic interpolation method using 4x4 peripheral pixels for skew correction, the processor 130 may include an extended partition that is larger than the targeted partition by 4x4 pixels in the scanned image. One block size can be determined.

한편, 프로세서(130)가 복수의 이미지 처리를 수행하여야 하는 경우, 각 이미지 처리에 필요한 이미지 블록 크기 및 최종 출력 이미지 블록에 기초하여 메모리(120)에서 읽어올 블록 크기(즉, 제1 블록 크기)를 계산할 수 있다. 프로세서(130)에서 블록 크기를 결정하는 보다 구체적인 동작에 대해서는 도 6을 참조하여 후술한다. On the other hand, when the processor 130 needs to perform a plurality of image processing, the block size to be read from the memory 120 based on the image block size and the final output image block required for each image processing (ie, the first block size) Can be calculated. The more detailed operation of determining the block size by the processor 130 will be described later with reference to FIG. 6.

그리고 프로세서(130)는 생성된 스캔 이미지에 대한 이미지 처리를 수행할 수 있다. 구체적으로, 프로세서(130)는 메모리(120)에 저장된 스캔 이미지를 계산한 제1 블록 크기 단위로 읽을 수 있다. 보다 구체적으로, 프로세서(130)는 원본 영역을 제2 블록 크기로 분할하고, 복수의 분할 영역을 순차적으로 생성하기 위하여 '제1 블록 크기를 가지며 스캔 이미지 내의 분할 영역을 포함하는 블록 영역'에 대한 좌표를 산출하고, 산출된 좌표에 기초하여 제1 블록 크기의 스캔 이미지를 읽을 수 있다. In addition, the processor 130 may perform image processing on the generated scanned image. Specifically, the processor 130 may read the scanned image stored in the memory 120 in the first block size unit. More specifically, the processor 130 divides the original area into the second block size, and for the'block area having the first block size and including the divided area in the scanned image' for sequentially generating a plurality of divided areas. The coordinates are calculated, and the scanned image of the first block size can be read based on the calculated coordinates.

다시 말해서, 프로세서(130)는 분할 영역 및 분할 영역 주변의 기설정된 개수의 픽셀을 포함하는 확장 분할 영역에 대한 원본 영역 상의 꼭짓점 좌표를 산출하고, 산출된 꼭짓점 좌표를 스캔 이미지 상의 꼭짓점 좌표로 변환하고, 스캔 이미지 상의 꼭짓점 좌표로 정의되는 영역을 포함하는 제1 블록 크기의 블록 영역에 좌표를 산출하여 제1 블록 크기의 스캔 이미지를 읽을 수 있다. In other words, the processor 130 calculates vertex coordinates on the original region for the divided region and the expanded partition including a preset number of pixels around the partition, converts the calculated vertex coordinates to vertex coordinates on the scanned image, and The first block size scan image may be read by calculating coordinates in a first block size block area including an area defined by vertex coordinates on the scanned image.

이후에 프로세서(130)는 읽어온 제1 블록 크기의 스캔 이미지에 대한 이미지 처리를 수행할 수 있다. 스캔 이미지에 대해서 복수의 이미지 처리를 수행하는 경우, 프로세서(130)는 읽어온 제1 블록 크기의 스캔 이미지에 대해서 순차적으로 복수의 이미지 처리를 수행할 수 있다. 예를 들어, 프로세서(130)는 먼저 제1 블록 크기의 스캔 이미지에 대해서 스큐 보정을 수행하고, 스큐 보정된 이미지 블록에 대해서 에지 보정, 에지 보정된 이미지 블록에 대해서 색상 보정 등의 작업을 순차적으로 수행할 수 있다. Thereafter, the processor 130 may perform image processing on the scanned image having the first block size. When performing a plurality of image processing on the scanned image, the processor 130 may sequentially perform a plurality of image processing on the scanned image having the first block size. For example, the processor 130 first performs skew correction on the scanned image of the first block size, and sequentially performs operations such as edge correction on the skew corrected image block and color correction on the edge corrected image block. It can be done.

이미지 처리 과정에서, 프로세서(130)는 읽어온 제1 블록 크기의 스캔 이미지를 기설정된 크기의 픽셀 블록으로 분할하고, 분할한 복수의 픽셀 블록을 한번에 독취할 수 있는 형태로 조합하여 임시 저장할 수 있다. 이에 따라 프로세서(130)는 특정 픽셀에 대한 보간 과정에서 필요한 복수의 픽셀 값을 한번에 독취할 수 있다. 이에 대해서는 도 9 내지 도 11을 참조하여 후술한다. In the image processing process, the processor 130 may divide the read first-block sized scan image into pixel blocks of a predetermined size, and temporarily store the divided plurality of pixel blocks in a form that can be read at once. . Accordingly, the processor 130 may read a plurality of pixel values required in the interpolation process for a specific pixel at a time. This will be described later with reference to FIGS. 9 to 11.

이미지 처리가 완료되면, 프로세서(130)는 제2 블록 크기의 보정 이미지를 메모리(120)에 저장할 수 있다. When the image processing is completed, the processor 130 may store the corrected image having the second block size in the memory 120.

한편, 이상에서는 화상독취장치를 구성하는 간단한 구성에 대해서만 도시하고 설명하였지만, 구현시에는 다양한 구성이 추가로 구비될 수 있다. 이에 대해서는 도 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 image reading device 100 includes an image sensor 110, a memory 120, a processor 130, a communication device 140, a display 150, an operation input device 160, and a print engine ( 170).

이미지 센서(110), 메모리(120)의 동작에 대해서는 도 1과 관련하여 설명하였는바, 중복 설명은 생략한다. 그리고 프로세서(130)에 대해서도 도 1와 관련하여 설명하였는바, 도 1에서 설명한 내용은 중복 기재하지 않고, 도 2에 추가된 구성과 관련된 내용만 이하에서 설명한다.The operation of the image sensor 110 and the memory 120 has been described with reference to FIG. 1, and duplicate description is omitted. Also, since the processor 130 has been described in connection with FIG. 1, the contents described in FIG. 1 are not described repeatedly, and only the contents related to the configuration added to FIG. 2 will be described below.

통신 장치(140)는 모바일 기기(Smart Phone, Tablet PC), PC, 노트북 PC, PDA, 디지털 카메라 등의 단말장치(미도시)와 연결되며, 메모리(120)에 기저장된 스캔 이미지 또는 보정된 스캔 이미지를 타 단말장치에 전송할 수 있다. The communication device 140 is connected to a terminal device (not shown) such as a mobile device (Smart Phone, Tablet PC), PC, notebook PC, PDA, digital camera, and the scanned image or the corrected scan stored in the memory 120 The image can be transmitted to another terminal device.

구체적으로, 통신 장치(140)는 화상독취장치(100)를 외부 장치와 연결하기 위해 형성되고, 근거리 통신망(LAN: Local Area Network) 및 인터넷망을 통해 단말장치에 접속되는 형태뿐만 아니라, USB(Universal Serial Bus) 포트 또는 무선 통신(예를 들어, WiFi 802.11a/b/g/n, NFC, Bluetooth) 포트를 통하여 접속되는 형태도 가능하다. 이러한 통신 장치(140)는 통신 인터페이스, 트랜시버(transceiver) 등으로 지칭될 수 있다. Specifically, the communication device 140 is formed to connect the image reading device 100 with an external device, and is connected to a terminal device through a local area network (LAN) and an Internet network, as well as USB ( Universal Serial Bus) port or wireless communication (eg, WiFi 802.11a/b/g/n, NFC, Bluetooth) port is also available. The communication device 140 may be referred to as a communication interface, a transceiver, or the like.

디스플레이(150)는 화상독취장치(100)에서 제공하는 각종 정보를 표시한다. 구체적으로, 디스플레이(150)는 화상독취장치(100)가 제공하는 각종 기능을 선택받기 위한 사용자 인터페이스 창을 표시할 수 있다. 이러한 디스플레이(150)는 LCD, CRT, OLED 등과 같은 모니터일 수 있으며, 후술할 조작 입력 장치(160)의 기능을 동시에 수행할 수 있는 터치 스크린으로 구현될 수도 있다. The display 150 displays various information provided by the image reading device 100. Specifically, the display 150 may display a user interface window for selecting various functions provided by the image reading device 100. The display 150 may be a monitor such as an LCD, CRT, OLED, or the like, and may also be implemented as a touch screen capable of simultaneously performing the functions of the manipulation input device 160 to be described later.

그리고 디스플레이(150)는 화상독취장치(100)의 기능 수행을 위한 제어 메뉴를 표시할 수 있다. 이를 통해 사용자는 표시된 사용자 인터페이스 창 상에서 스캔 명령을 입력할 수 있다. 여기서 스캔 명령은 스캔 작업만을 수행하기 위한 명령일 수 있으며, 스캔된 작업을 특정의 서버로 전송하는 스캔-투-서버, 스캔-투-DLNA, 스캔-투-클라우드 등의 명령일 수도 있다. In addition, the display 150 may display a control menu for performing functions of the image reading apparatus 100. This allows the user to enter scan commands on the displayed user interface window. Here, the scan command may be a command for performing only the scan operation, or may be a scan-to-server, scan-to-DLNA, scan-to-cloud command for transmitting the scanned operation to a specific server.

또한, 화상독취장치(100)가 인쇄 작업 및 복사 작업도 가능한 복합기(MFP)인 경우, 스캔 명령은 스캔 기능을 이용하는 복사 명령일 수도 있다. 한편, 본 실시 예에서는 조작 입력 장치(160)를 통하여 스캔 명령을 입력받는 것만을 설명하였지만, 구현 시에는 스캔 명령은 통신 장치(140)를 통하여 단말장치(미도시)로부터 수신될 수도 있다. In addition, when the image reading apparatus 100 is a multifunction machine (MFP) capable of printing and copying, the scan command may be a copy command using a scan function. On the other hand, in the present exemplary embodiment, only receiving a scan command through the operation input device 160 is described, but in the implementation, the scan command may be received from a terminal device (not shown) through the communication device 140.

또한, 디스플레이(150)는 생성된 스캔 이미지 및 스캔 이미지에 대한 정보를 표시할 수 있다. 이때 표시되는 스캔 이미지는 스캔 이미지 그 자체이거나 스캔 이미지에 대한 프리뷰 이미지일 수도 있다. Also, the display 150 may display the generated scanned image and information about the scanned image. In this case, the displayed scanned image may be the scanned image itself or a preview image for the scanned image.

그리고 디스플레이(150)는 원고 스캔 이후에 수행할 이미지 처리 방식 등을 선택받기 위한 사용자 인터페이스 창을 표시할 수 있다. 이때, 사용자 인터페이스 창은 스큐 보정을 수행하는 각도 범위를 입력받기 위한 입력 영역을 포함할 수 있다. In addition, the display 150 may display a user interface window for selecting an image processing method to be performed after scanning the original. At this time, the user interface window may include an input area for receiving an angle range for performing skew correction.

조작 입력 장치(160)는 사용자로부터 기능 선택 및 해당 기능에 대한 제어 명령을 입력받을 수 있다. 여기서 기능은 인쇄 기능, 복사 기능, 스캔 기능, 팩스 전송 기능 등을 포함할 수 있다. 이러한 조작 입력 장치(160)는 복수의 버튼, 키보드, 마우스 등으로 구현될 수 있으며, 상술한 디스플레이(150)의 기능을 동시에 수행할 수 있는 터치 스크린으로도 구현될 수도 있다. The manipulation input device 160 may receive a function selection and a control command for the corresponding function from a user. Here, the functions may include a print function, a copy function, a scan function, and a fax transmission function. The manipulation input device 160 may be implemented with a plurality of buttons, keyboard, mouse, or the like, and may also be implemented with a touch screen capable of simultaneously performing the functions of the display 150 described above.

인쇄 엔진(170)은 보정된 스캔 이미지를 인쇄한다. 이러한 인쇄 엔진(170)은 감광드럼, 중간전사벨트 및 용지 이송 벨트와 같은 화상형성매체에 이미지를 형성하고, 최종적으로 인쇄 용지에 화상형성매체에 형성된 이미지를 전사하여 인쇄 작업을 수행할 수 있다. The print engine 170 prints the corrected scanned image. The print engine 170 may form an image on an image forming medium such as a photosensitive drum, an intermediate transfer belt, and a paper transfer belt, and finally transfer the image formed on the image forming medium to the printing paper to perform a print job.

프로세서(130)는 사용자로부터 복사 명령을 입력받았으면, 스캔 작업이 수행되도록 이미지 센서(110)를 제어하여 스캔 이미지를 생성하고, 생성된 스캔 이미지에 대한 이미지 보정을 수행하고, 보정된 스캔 이미지가 인쇄되도록 인쇄 엔진(170)을 제어할 수 있다. When the processor 130 receives a copy command from the user, the processor 130 controls the image sensor 110 to perform a scan operation, generates a scanned image, performs image correction on the generated scanned image, and prints the corrected scanned image The print engine 170 can be controlled as much as possible.

또는 사용자로부터 스캔-투-서버, 스캔-투-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 processor 130 may transmit the corrected scan image to a storage corresponding to the command. Can be controlled.

또한, 도 1 및 도 2에는 화상독취장치(100)의 일반적인 기능만을 도시하고 설명하였지만, 상술한 구성뿐만 아니라, 화상독취장치(100)가 지원하는 기능에 따라 팩스 송수신 기능을 수행하는 팩스 송수신부 등을 더 포함할 수도 있다. In addition, although only the general functions of the image reading apparatus 100 are illustrated and described in FIGS. 1 and 2, a fax transmitting and receiving unit performing a fax sending and receiving function according to functions supported by the image reading apparatus 100 as well as the above-described configuration. It may further include.

이상과 같이 본 실시 예에 따른 화상독취장치는 사변형 스큐를 보정할 수 있는바 보다 고품질의 스캔 이미지 출력이 가능하다. 또한, 블록에 기반하여 하드웨어 방식으로 스큐 보정을 수행하는바, 보다 빠른 속도로 스큐 보정이 가능하다. 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 input image 310 corresponding to four vertices of the output image 320 to be obtained when the original is distorted in a quadrilateral shape, and corresponds to pixels of the output image 320 Quadrangle distortion can be corrected by using backward mapping, which finds the pixel location of the input image 310 and calculates the pixel value at that location.

아래와 같은 수학식 1은 사변형 왜곡을 보정하기 위해 출력 이미지(320)의 픽셀에 대응되는 입력 이미지(310)의 픽셀 위치를 계산하는데 이용되는 수학식이다. Equation 1 below is an equation used to calculate the pixel position of the input image 310 corresponding to the pixel of the output image 320 to correct quadrature distortion.

Figure pat00001
Figure pat00001

여기서, 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 processor 130 includes a scanner interface 131, a CPU 132, an RST processor 200, a memory controller 134, a scan image processor 135, a print image processor 136, and a video controller It can be composed of (137). The processor 130 may be an application specific integrated circuit (ASIC) or a system on chip (SoC).

스캐너 인터페이스(131)는 이미지 센서(110)와 통신하여 스캔 이미지를 수신한다. The scanner interface 131 communicates with the image sensor 110 to receive a scanned image.

CPU(132)는 프로세서(130)의 전반적인 동작을 제어한다. 구체적으로, 스캔 속도에 대응하여 이미지 센서(110)의 정보를 읽어오도록 스캐너 인터페이스(131)를 제어하고, 읽어온 정보가 메모리(120)에 저장되도록 메모리 컨트롤러(134)를 제어할 수 있다. 그리고 CPU(132)는 사변형 스큐 보정이 필요한 경우, 스큐 보정이 수행되도록 RST 프로세서(200)를 제어할 수 있다. The CPU 132 controls the overall operation of the processor 130. Specifically, the scanner interface 131 may be controlled to read information of the image sensor 110 in response to the scan speed, and the memory controller 134 may be controlled to store the read information in the memory 120. In addition, when the quadrilateral skew correction is required, the CPU 132 may control the RST processor 200 to perform skew correction.

RST 프로세서(200)는 사변형 스큐와 관련된 이미지 처리를 수행한다. RST 프로세서(200)의 구체적인 구성 및 동작에 대해서는 도 5 및 도 6을 참조하여 후술한다. The RST processor 200 performs image processing related to quadrilateral skew. The specific configuration and operation of the RST processor 200 will be described later with reference to FIGS. 5 and 6.

메모리 컨트롤러(134)는 메모리(120)와 통신한다. 구체적으로, 메모리 컨트롤러(134)는 데이터를 메모리(120)와 송신할 수 있다. The memory controller 134 communicates with the memory 120. Specifically, the memory controller 134 may transmit data to the memory 120.

스캔 이미지 프로세서(135)는 스캔 이미지에 대한 이미지 처리를 수행한다. 한편, 도시된 예에서는 RST 프로세서(200)가 스캔 이미지 프로세서(135)와 구별된 별도의 구성인 것으로 도시하고 설명하였지만, 구현시에 RST 프로세서(200)가 스캔 이미지 프로세서(135)의 일부 기능을 포함할 수도 있고, RST 프로세서(200)와 스캔 이미지 프로세서(135)가 하나의 프로세서로 통합되어 구성될 수도 있다. The scanned image processor 135 performs image processing on the scanned image. On the other hand, in the illustrated example, although the RST processor 200 is illustrated and described as having a separate configuration distinct from the scan image processor 135, the RST processor 200 implements some functions of the scan image processor 135 in implementation. The RST processor 200 and the scan image processor 135 may be integrated into one processor.

인쇄 이미지 프로세서(136)는 인쇄 작업과 관련된 동작을 수행한다. 구체적으로, 인쇄 이미지 프로세서(136)는 인쇄 데이터가 수신되면, 수신된 인쇄 데이터에 대한 렌더링 동작을 수행하여 비트맵 이미지를 생성하는 동작을 수행할 수 있다. The print image processor 136 performs an operation related to a print job. Specifically, when print data is received, the print image processor 136 may perform an operation of generating a bitmap image by performing a rendering operation on the received print data.

비디오 컨트롤러(137)는 인쇄 엔진(170)을 제어한다. 구체적으로, 비디오 컨트롤러(137)는 생성된 비트맵 이미지를 비디오 신호로 변환하고, 변환한 비디오 신호를 인쇄 엔진(170)에 전송할 수 있다. 여기서 비디오 신호는 인쇄 엔진(170)의 LSU(Laser Scanning Unit)에 제공되는 신호이다. The video controller 137 controls the print engine 170. Specifically, the video controller 137 may convert the generated bitmap image into a video signal, and transmit the converted video signal to the print engine 170. Here, the video signal is a signal provided to a laser scanning unit (LSU) of the print engine 170.

도 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 RST processor 200 may include a DMA RX 210, an RST core 220, and a DMA TX 230.

DMA RX(210)는 메모리(120)(구체적으로, DRAM)에 저장된 스캔 이미지를 기설정된 제1 블록 크기(IBW, IBH)를 갖는 블록 크기로 읽어올 수 있다. 구체적으로, DMA RX(210)는 읽어올 제1 블록 크기의 블록 위치를 계산하고, 계산된 위치의 스캔 이미지를 메모리(120)에서 읽어올 수 있다. The DMA RX 210 may read the scanned image stored in the memory 120 (specifically, DRAM) to a block size having a first block size (IBW, IBH). Specifically, the DMA RX 210 may calculate a block position of the first block size to be read, and read the scanned image of the calculated position from the memory 120.

제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 RST core 220 may generate an output image having a second block size (OBW, OBH) using the scanned image data. Here, since the RST processor 200 performs skew correction only, the second block size is the same as the final block size (CHW, CBH). Meanwhile, when the RST processor 200 performs additional image processing, the second block size may be different from the final block sizes (CHW, CBH). The specific configuration and operation of the RST core 220 will be described later with reference to FIG. 9.

DMA TX(230)는 이미지 처리된 이미지를 메모리(120)에 저장한다. The DMA TX 230 stores the image-processed image in the memory 120.

도시된 예에서는 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, an RST core 220, a DMA TX 230, an A core 240, a B core 250, and a C core 260. Can be.

DMA RX(210), RST 코어(220), DMA TX(230)는 도 5와 관련하여 설명하였는바, 중복 설명은 생략한다. The DMA RX 210, the RST core 220, and the DMA TX 230 have been described with reference to FIG. 5, and duplicate description is omitted.

A 코어(240), B 코어(250), C 코어(260)는 서로 다른 알고리즘을 이용하여 이미지 처리를 수행한다. 예를 들어, A 코어는 이미지 처리 시에 9x9개의 주변 픽셀을 이용하여 이미지 처리를 수행하는 이미지 처리 알고리즘이고, B 코어는 7x7개의 주변 픽셀을 이용하여 이미지 처리를 수행하는 이미지 처리 알고리즘이고, C 코어는 5x5개의 주변 픽셀을 이용하여 이미지 처리를 수행하는 이미지 처리 알고리즘이다. The A core 240, the B core 250, and the C core 260 perform image processing using different algorithms. For example, A core is an image processing algorithm that performs image processing using 9x9 peripheral pixels during image processing, B core is an image processing algorithm that performs image processing using 7x7 peripheral pixels, and C core Is an image processing algorithm that performs image processing using 5x5 surrounding pixels.

한편, 도 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 final block 105 to be finally output as shown, the C core 260 using 5x5 peripheral pixels is an input image of (260, 132) size (104) is required. In addition, the B core 250 using 7x7 peripheral pixels requires an input image 103 of (266, 138) size, and the A core 240 using 9x9 peripheral pixels has an input image 102 of (274, 146). Is needed.

따라서, 최종적으로 RST 코어(220)는 출력 블록(102)이 (274, 146) 크기가 될 수 있는 입력 블록(101)의 크기를 결정할 수 있다. 예를 들어, 스큐 각도에 기초하여 출력 블록의 크기가 (274, 146)이 될 수 있는 제1 블록 크기를 결정할 수 있다. 이하에서는 도 7 및 도 8을 참조하여 스큐 처리를 위한 블록 크기를 결정하는 방법에 대해서 설명한다. Thus, finally, the RST core 220 can determine the size of the input block 101 in which the output block 102 can be (274, 146). For example, based on the skew angle, the first block size at which the size of the output block can be (274, 146) can be determined. Hereinafter, a method of determining a block size for skew processing will be described with reference to FIGS. 7 and 8.

도 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 RST core 220 needs to output an image block of the second block size (OBW, OBH) through one block processing, the input block is an image block of a size larger than the second block size (OBW, OBH) Should be entered. Specifically, when it is necessary to perform image processing in an interpolation manner, for example, a 4x4 pixel value is needed around a specific pixel.

이와 같은 과정에 따라 결정된 크기를 갖는 블록의 꼭지점이 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 Equation 2 below. have.

Figure pat00002
Figure pat00002

여기서, 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 Equation 1.

따라서 RST 코어(220)는 스캔 이미지 상의 4개의 꼭짓점을 산출하고, 도 8에 도시된 바와 같이 4개의 꼭짓점을 모두 포함하는 사각형 블록의 꼭짓점 r0, r1, r2, r3를 산출할 수 있다. 여기서 r0, r1, r2, r3로 정의되는 블록은 상술한 제1 블록 크기를 가질 수 있다.Accordingly, the RST core 220 may calculate four vertices on the scanned image, and may calculate vertices r0, r1, r2, and r3 of a square block including all four vertices as shown in FIG. 8. Here, blocks defined by r0, r1, r2, and r3 may have the above-described first block size.

구체적으로, 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 equations 3 to 12 are calculated, and on the basis of this, vertices r0, r1, r2, r3 as in equation 13 are calculated. can do.

Figure pat00003
Figure pat00003

여기서 ┕ ┚는 내림 값(floor)이다. Where ┕ ┚ is the floor.

Figure pat00004
Figure pat00004

Figure pat00005
Figure pat00005

Figure pat00006
Figure pat00006

Figure pat00007
Figure pat00007

여기서 ┎ ┑는 올림 값(ceil)이다. Where ┎ ┑ is the raised value (ceil).

Figure pat00008
Figure pat00008

Figure pat00009
Figure pat00009

Figure pat00010
Figure pat00010

Figure pat00011
Figure pat00011

여기서 IBW는 제1 블록의 폭이다. Here, IBW is the width of the first block.

Figure pat00012
Figure pat00012

여기서 IBH는 제1 블록의 높이이다. Where IBH is the height of the first block.

Figure pat00013
Figure pat00013

한편, 이상에서는 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 memory 120 becomes larger. However, the typical skew angle has a range of -5 to +5 degrees, for example, and the SRAM inside the processor also has a fixed size. Taking this into consideration, when the skew angle is determined, IBW and IBH can be fixed and used accordingly. In this case, r0 is calculated using Equations 2 to 6 described above, and r1, r2, and r3 may be directly calculated through Equation 13 using fixed IBW and IBH.

그리고 RST 코어(220)는 상술한 연산 과정에서 Q0, Q1, Q2, Q3 값에 해당되는 P0, P1, P2, P3 이 동일하거나 차이가 크지 않으면, 즉 스큐 각도가 매우 작은 경우에는 RST를 수행하지 않을 수 있다. 또한, RST 코어(220)는 P0, P1, P2, P3 값을 이용하여 사변형의 내각과 사변형의 길이가 미리 설계한 범위를 넘어서는 경우에는, 즉 스큐 각도가 매우 큰 경우에는 RST를 수행하지 않거나 범위의 극값으로 수행할 수도 있다. And RST core 220 in the above-described calculation process, Q 0 , Q 1 , Q 2 , Q 3 P 0 , P 1 , P 2 , and P 3 corresponding to the value are the same or if the difference is not large, that is, the skew angle In very small cases, RST may not be performed. In addition, the RST core 220 uses the values of P 0 , P 1 , P 2 , and P 3 when the angle of the quadrilateral and the length of the quadrilateral exceed the pre-designed range, that is, when the skew angle is very large, RST It may or may not be performed with extreme values in the range.

도 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 RST core 900 may include an input block interface 910, an SRAM interface 920, an interpolation 930, and an output block interface 940.

입력 블록 인터페이스(910)는 DMA RX(210)를 제어하여 기설정된 크기의 스캔 이미지를 읽어오는 동작을 수행한다. 구체적으로, 입력 블록 인터페이스(910)는 제1 블록 크기(IBW x IBH)의 스캔 이미지를 수신할 수 있다. The input block interface 910 controls the DMA RX 210 to read an image of a preset size. Specifically, the input block interface 910 may receive a scanned image of a first block size (IBW x IBH).

SRAM 인터페이스(920)는 SRAM(190)에 데이터를 읽고 쓰는 동작을 수행한다. 여기서 SRAM(190)은 휘발성 메모리로, 프로세서(130) 내의 라인 메모리이거나 RST 프로세서(200) 또는 이미지 프로세서의 전용 메모리일 수 있다. 그리고 SRAM(190)은 제1 블록 크기에 대응되게 가로로 IBW, 세로로 IBH 크기를 가질 수 있으나, SRAM은 제1 블록 크기보다 작은 크기(IBW x IBH2)(여기서 IBH2 <IBH)를 가질 수도 있다. The SRAM interface 920 reads and writes data to the SRAM 190. Here, the SRAM 190 is a volatile memory, and may be a line memory in the processor 130 or a dedicated memory of the RST processor 200 or an image processor. In addition, the SRAM 190 may have an IBW size horizontally and an IBH size vertically corresponding to the first block size, but the SRAM may have a size smaller than the first block size (IBW x IBH2) (where IBH2 <IBH). .

구체적으로, SRAM 인터페이스(920)는 입력 블록 인터페이스(910)에서 읽어온 제1 블록 크기의 스캔 이미지를 기설정된 크기의 픽셀 블록으로 분할하여 SRAM(190)에 저장할 수 있다. Specifically, the SRAM interface 920 may divide the first block-sized scanned image read from the input block interface 910 into pixel blocks of a predetermined size and store the scanned image in the SRAM 190.

그리고 SRAM 인터페이스(920)는 보간 동작시에는 보간 동작에 필요한 일부 픽셀 블록만을 SRAM(190)에서 읽어오는 동작을 수행할 수 있다. 이러한 쓰기 읽기 동작에 대해서는 도 10 및 도 11을 참조하여 후술한다. In addition, in the interpolation operation, the SRAM interface 920 may perform an operation of reading only some pixel blocks required for the interpolation operation from the SRAM 190. The write read operation will be described later with reference to FIGS. 10 and 11.

보간부(930)는 읽어온 이미지를 이용하여 보간 동작을 수행한다. 구체적으로, 보간부(930)는 복수의 픽셀 블록의 픽셀 값을 이용하여, 특정 픽셀에 대한 값을 산출할 수 있다. 예를 들어, 보간부(930)는 Bilinear, Quadratic, Bicubic 등 여러 보간 방식을 이용하여 보정을 수행할 수 있다. The interpolation unit 930 performs an interpolation operation using the read image. Specifically, the interpolation unit 930 may calculate a value for a specific pixel by using pixel values of a plurality of pixel blocks. For example, the interpolation unit 930 may perform correction using various interpolation methods such as Bilinear, Quadratic, and Bicubic.

이하에서는 설명을 용이하게 하기 위하여, 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 SRAM 190, it takes 4 clocks to read 16 pixel values.

따라서, 1 클럭의 시간 동안 보간에 필요한 데이터를 읽을 수 있도록, 보간부(930)는 입력 블록 인터페이스(910)에서 읽어도 제1 블록 크기의 스캔 이미지를 복수의 픽셀 블록(예를 들어, 4개 픽셀)으로 구분하고, 한 번의 보간에 필요한 복수의 픽셀 블록은 SRAM의 한 라인에 저장되도록 SRAM 인터페이스(920)를 제어할 수 있다. Therefore, the interpolation unit 930 may read a first block sized scanned image in a plurality of pixel blocks (for example, four, even if it is read by the input block interface 910) so that data necessary for interpolation can be read for a time of one clock. Pixel), and the plurality of pixel blocks required for one interpolation may be controlled by the SRAM interface 920 to be stored in one line of the SRAM.

예를 들어, 도 11에 도시된 바와 같이 보간부(930)는 SRAM(190)을 가로로 4개의 조각으로 나누고, 세로 방향으로도 개별적으로 구성하여 읽어들인 제1 블록 크기의 스캔 이미지를 저장함으로써, 보간에 필요한 16개의 픽셀 값을 한번에 읽는 게 가능해 진다. For example, as illustrated in FIG. 11, the interpolation unit 930 divides the SRAM 190 into four pieces horizontally, and stores the scanned image of the first block size, which is individually configured and read in the vertical direction. , It becomes possible to read 16 pixel values needed for interpolation at once.

출력 블록 인터페이스(940)는 보간부(930)에서 출력되는 보정 이미지를 외부로 출력하는 동작을 수행한다. 이때 출력되는 보정 이미지는 제2 블록 크기(OBW, OBH)를 가질 수 있다. 만약, RST 프로세서(200)가 추가적인 이미지 처리를 함께 수행하는 경우에 출력 블록 인터페이스(940)가 출력하는 이미지는 이후 이미지 처리에 필요한 크기에 대응되는 크기를 가질 수 있다. The output block interface 940 performs an operation of outputting the corrected image output from the interpolation unit 930 to the outside. In this case, the outputted correction image may have a second block size (OBW, OBH). If the RST processor 200 performs additional image processing together, the image output by the output block interface 940 may have a size corresponding to the size required for the subsequent image processing.

도 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.
제1항에 있어서,
상기 프로세서는,
원본 영역을 상기 제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.
제2항에 있어서,
상기 프로세서는,
상기 분할 영역 및 상기 분할 영역 주변의 기설정된 개수의 픽셀을 포함하는 확장 분할 영역에 대한 상기 원본 영역 상의 꼭짓점 좌표를 산출하고, 상기 산출된 꼭짓점 좌표를 상기 스캔 이미지 상의 꼭짓점 좌표로 변환하고, 상기 스캔 이미지 상의 꼭짓점 좌표로 정의되는 영역을 포함하는 제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항에 있어서,
상기 프로세서는,
스큐 보정에 수행할 보간 방식에 대응되는 주변 픽셀 수를 추가로 고려하여 상기 제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항에 있어서,
상기 프로세서는,
상기 제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.
제5항에 있어서,
상기 추가 이미지 보정 처리에 필요한 주변 픽셀 수의 크기를 추가로 고려하여 상기 제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항에 있어서,
상기 프로세서는,
상기 제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. .
제1항에 있어서,
상기 프로세서는,
상기 계산된 스큐 각도가 기설정된 크기 범위인 경우에 스큐 보정을 수행하는 화상독취장치.
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.
제9항에 있어서,
상기 읽어오는 단계는,
원본 영역을 상기 제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.
제10항에 있어서,
상기 좌표를 산출하는 단계는,
상기 분할 영역 및 상기 분할 영역 주변의 기설정된 개수의 픽셀을 포함하는 확장 분할 영역에 대한 상기 원본 영역 상의 꼭짓점 좌표를 산출하고, 상기 산출된 꼭짓점 좌표를 상기 스캔 이미지 상의 꼭짓점 좌표로 변환하고, 상기 스캔 이미지 상의 꼭짓점 좌표로 정의되는 영역을 포함하는 제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.
제9항에 있어서,
상기 설정하는 단계는,
스큐 보정에 수행할 보간 방식에 대응되는 주변 픽셀 수를 추가로 고려하여 상기 제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.
제9항에 있어서,
상기 보정 이미지를 생성하는 단계는,
상기 제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.
제13항에 있어서,
상기 설정하는 단계는,
상기 추가 이미지 보정 처리에 필요한 주변 픽셀 수의 크기를 추가로 고려하여 상기 제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.
제9항에 있어서,
상기 계산된 스큐 각도가 기설정된 크기 범위인지를 판단하는 단계;를 더 포함하는 스큐 보정 방법.




The method of claim 9,
And determining whether the calculated skew angle is a preset size range.




KR1020190005710A 2019-01-16 2019-01-16 Method for skew compensation based on block KR20200089074A (en)

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)

* Cited by examiner, † Cited by third party
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

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