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

Method for skew compensation based on block Download PDF

Info

Publication number
WO2020149880A1
WO2020149880A1 PCT/US2019/041972 US2019041972W WO2020149880A1 WO 2020149880 A1 WO2020149880 A1 WO 2020149880A1 US 2019041972 W US2019041972 W US 2019041972W WO 2020149880 A1 WO2020149880 A1 WO 2020149880A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
block size
scan
block
skew
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/US2019/041972
Other languages
French (fr)
Inventor
Eul Hwan Lee
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of WO2020149880A1 publication Critical patent/WO2020149880A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

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 OR CALCULATING; 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

Definitions

  • An image scanning device is a device for scanning an original image such as a document, a picture, or a film and converting the original image into digital data.
  • the digital data may be displayed on a monitor of a computer or printed by a printer to be generated as an output image.
  • An example of such an image scanning device includes a printer, a scanner, a copier, a facsimile, and a multi-function peripheral (MFP) for performing functions thereof in a complex manner through a single device.
  • MFP multi-function peripheral
  • printing paper may not be aligned due to device characteristics such as alignment deviation of a sensor, a movement of a roller or a motor, and the like, thereby causing distortion of the scan image which makes the scan image different from the original image.
  • FIG. 1 is a block diagram illustrating a configuration of an image scanning device according to an example
  • FIG. 2 is a block diagram illustrating a configuration of an image scanning device according to an example
  • FIG. 3 is a view illustrating a quadrilateral skew of a scan image according to an example
  • FIG. 4 is a view illustrating a processor according to an example
  • FIG. 5 is a view illustrating a configuration of a skew compensation device according to an example
  • FIG. 6 is a view illustrating a configuration of a skew compensation device according to an example
  • FIG. 7 is a view provided to describe a method for determining a block size and position for skew processing according to an example
  • FIG. 8 is a view provided to describe a method for determining a block size and position for skew processing according to an example
  • FIG. 9 is a view illustrating a configuration of a rubber sheet transform (RST) core according to an example
  • FIG. 10 is a view illustrating a number of peripheral pixels used for a bicubic interpolation method according to an example
  • FIG. 1 1 is a view provided to illustrate a data storing method according to an example.
  • FIG. 12 is a view provided to describe a method for skew compensation according to an example.
  • one constituent element is“connected to” another constituent element, it includes a case in which the two constituent elements are connected to each other with another constituent element intervened therebetween as well as a case in which the two constituent elements are directly connected to each other. Further, when one constituent element “comprises” another constituent element, unless specifically stated to the contrary, it includes examples in which other constituent elements may be further included rather than precluding the same.
  • the expression“image forming job” as used herein may refer to various jobs related with an image, such as, formation of an image or generation/storage/transmission of image files (e.g., copying, printing, scanning, or faxing), and the expression“job” as used herein may refer to not only the image forming job, but also a series of processes required for performance of the image forming job.
  • image scanning device may refer to an apparatus that scans an image of a document and generates a scan image.
  • Examples of an image scanning device may include a printer, a scanner, a copier, a facsimile, or a multi-function printer (MFP) implementing functions of the above.
  • MFP multi-function printer
  • the image scanning device when the image scanning device is a printer, a scanner, a copier, a facsimile, an MFP, or the like, which are capable of the image forming job, the image scanning device may also be referred to as the image forming device.
  • the terms “image scanning device” and “image scanning apparatus” may be used interchangeably.
  • the expression“hard copy” as used herein may refer to an operation of outputting an image on a recording medium such as paper
  • the expression“soft copy” as used herein may refer to an operation of outputting an image on a display device such as a TV, a monitor, or the like or outputting an image to a memory.
  • scanned data may refer to a scan image generated at a scanner, may be a black and white image, a color image, or the like, and may have various file formats (e.g., bitmap (BMP), joint photographic group (JPG), tagged image file format (TIFF), portable document format (PDF), or the like).
  • BMP bitmap
  • JPG joint photographic group
  • TIFF tagged image file format
  • PDF portable document format
  • the expression“user” as used herein may refer to a person who performs a manipulation related with the image forming job using the image scanning device or a device connected to the image scanning device in a wired or wireless manner.
  • the expression“manager” as used herein may refer to a person who has an authority to access all the functions and systems of the image scanning device. The“manager” and the“user” may refer to the same person.
  • FIG. 1 is a block diagram illustrating a configuration of an image scanning device according to an example.
  • an image scanning device 100 includes an image sensor 1 10, a memory 120, and a processor 130.
  • the image sensor 1 10 may scan a manuscript.
  • the image sensor 1 10 may irradiate light onto a manuscript and scan image information of the manuscript from light (or glow) reflected from the manuscript.
  • the image sensor 1 10 may include a charge coupled device (CCD) disposed in a row along the main scanning direction or a CMOS image sensor (CIS).
  • CCD charge coupled device
  • CIS CMOS image sensor
  • the image sensor 1 10 may be disposed on a lower end of a flatbed and disposed within an automatic document feeder (ADF).
  • ADF automatic document feeder
  • the memory 120 may store data for image processing.
  • the memory 120 may store a program to perform the image processing of the processor 130, a signal scanned from the image sensor 1 10, or data (for example, a skew-compensated image) processed by the processor 130.
  • the memory 120 may be a volatile memory such as a dynamic random access memory (DRAM), a synchronous RAM (SRAM), or the like, or a non-volatile memory such as a hard disk drive (FIDD), a solid state drive (SSD), a flash memory, or the like, or may be a combination of the volatile memory and the non-volatile memory.
  • DRAM dynamic random access memory
  • SRAM synchronous RAM
  • FIDD hard disk drive
  • SSD solid state drive
  • flash memory or the like
  • the processor 130 may control each element within the image scanning device 100.
  • the processor 130 may be implemented as a central processing unit (CPU), an application-specific integrated circuit (ASIC), or the like, and sense whether a scan command is inputted from a user.
  • the scan command may be inputted through a manipulation input device provided on the image scanning device 100 or received through a communication device from an external device (for example, a personal computer (PC), a smartphone, etc.)
  • the processor 130 may control the image sensor 1 10 to generate a scan image.
  • the processor 130 may generate a scan image using the signal output from the image sensor 1 10.
  • the processor 130 may store the generated scan image in the memory 120.
  • the processor 130 may determine whether image processing is required.
  • the image processing may include adjusting the skew of the scan image, adjusting the color and brightness, removing a background of the paper included in the scan image, or the like.
  • the processor 130 may calculate an angle of the quadrilateral skew. If the calculated angle of the quadrilateral skew is in a predetermined range (for example, -5 degrees to +5 degrees), the processor 130 may determine to perform image processing for the quadrilateral skew compensation. When the quadrilateral skew is detected, if the calculated skew angle is out of the predetermined range, the processor 130 may determine not to perform the quadrilateral skew compensation processing, or perform skew compensation with an extreme value in a predetermined range. In implementation, if the angle is too narrow to recognize the quadrilateral skew, it may be determined that the skew compensation will not be performed.
  • a predetermined range for example, -5 degrees to +5 degrees
  • the range of angle may be set and provided by a manufacturer, or the range may be set or modified by a user or a manager.
  • the processor 130 may perform an operation of confirming whether there is a quadrilateral skew in the image of the manuscript and an operation of confirming the angle of the quadrilateral skew.
  • the quadrilateral skew is confirmed and the skew angle is calculated.
  • the skew angle may be calculated and the quadrilateral skew may be confirmed accordingly.
  • the skew angle may be calculated and the quadrilateral skew may be confirmed in parallel.
  • the processor 130 may perform image processing by sequentially reading image data stored in the memory 120 in a line unit corresponding to a horizontal size of the image.
  • the processor 130 may perform image processing by dividing the image data into a plurality of blocks and reading the divided blocks in a block size unit.
  • the processor 130 may be implemented as a device such as an application-specific integrated circuit (ASIC) or a system-on-chip (SoC) and may read and process image data by reading the image data on a block-by-block basis due to a restriction of a size of the internal memory.
  • ASIC application-specific integrated circuit
  • SoC system-on-chip
  • the processor 130 may determine an image block size necessary for image processing in order to read image data in units of block size and perform image processing. For example, when skew compensation is performed, the processor 130 may calculate the skew angle of the scan image and determine a block size (hereinafter, first block size) required for image processing based on the calculated skew angle. In an example, the processor 130 may determine the first block size by considering the number of peripheral pixels necessary for image processing. [0037] For example, in the case of using a bicubic interpolation method using a 4 x 4 block of pixels for skew compensation, the processor 130 may determine the first block size which may include, on the scan image, an enlarged division area, which is larger by the 4 x 4 block of pixels than the target division area.
  • the processor 130 may calculate a block size (that is, a first block size) to be read from the memory 120 based on the image block size required for each image processing and the final output image block.
  • a block size that is, a first block size
  • Example operations for determining a block size by the processor 130 will be described later with reference to FIG. 6.
  • the processor 130 may perform image processing on the generated scan image. For example, the processor 130 may read the scan image stored in the memory 120 in a first block size unit. As an example, the processor 130 may divide the original area into a second block size, and calculate coordinates on a block area which has the first block size and includes a division area within the scan image in order to sequentially generate a plurality of division areas, and read the scan image of the first block size based on the calculated coordinates.
  • the processor 130 may calculate vertex coordinates of the original area for the enlarged division area including the division area and the predetermined number of pixels around the division area, convert the calculated vertex coordinates of the original area to the vertex coordinates of the scan image, and calculate the coordinates of the block area of the first block size including the area defined by the coordinates of the vertex on the scan image, to read the scan image of the first block size.
  • the processor 130 may perform image processing on the read scan image of the first block size. When a plurality of image processing is performed on the scan image, the processor 130 may sequentially perform a plurality of image processing on the read scan image of the first block size. For example, the processor 130 may perform skew compensation on the scan image of the first block size, and sequentially perform operations such as edge compensation for the skew-compensated image block and color compensation for the edge- compensated image block, or the like.
  • the processor 130 may divide the scan image of the first block size, which has been read, into pixel blocks of a predetermined size, combine the plurality of divided pixel blocks into a form that may be read at a time, and store the same temporarily. Accordingly, the processor 130 may scan a plurality of pixel values required in the interpolation process for a specific pixel at a time. Examples will be described later with reference to FIGS. 9 to 1 1 .
  • the processor 130 may store the compensated image of the second block size in the memory 120.
  • FIG. 2 is a block diagram illustrating a configuration of an image scanning device according to an example.
  • the image scanning device 100 may include the image sensor 1 10, the memory 120, the processor 130, a communication device 140, a display 150, a manipulation input device 160, and a printing engine 170.
  • the communication device 140 may be connected to a terminal (not illustrated) such as a mobile device (e.g., a smart phone, a tablet PC, etc.), a PC, a notebook PC, a personal digital assistant (PDA), a digital camera, or the like, and transmit a scan image previously stored in the memory 120 or a compensated scan image to the terminal.
  • a mobile device e.g., a smart phone, a tablet PC, etc.
  • a PC e.g., a notebook PC, a personal digital assistant (PDA), a digital camera, or the like
  • PDA personal digital assistant
  • the communication device 140 may be configured to connect the image scanning device 100 to an external device.
  • the communication device 140 may connect the image scanning device 100 to the external device using a local area network (LAN) or an internet network, or using a universal serial bus (USB) port, a wireless communication port (e.g., WiFi 802.1 1 a/b/g/n, NFC, Bluetooth), or the like.
  • LAN local area network
  • USB universal serial bus
  • the communication device 140 may be referred to as a communication interface, a transceiver, or the like.
  • the display 150 may display various pieces of information provided from the image scanning device 100.
  • the display 150 may display a user interface window to receive a selection of various functions provided by the image scanning device 100.
  • the display 150 may be a monitor such as a liquid crystal display (LCD), a cathode-ray tube (CRT), an organic light emitting diode (OLED), or the like, and may be implemented as a touch screen that may simultaneously perform a function of the manipulation input device 160 which will be described later.
  • LCD liquid crystal display
  • CRT cathode-ray tube
  • OLED organic light emitting diode
  • the display 150 may display a control menu for performance of functions of the image scanning device 100.
  • a user may input a scan command on the displayed control menu.
  • the scan command may be a command to perform the scanning job and may include a command such as scan-to-server, scan-to-digital living network alliance (DLNA), scan-to-cloud, or the like, which transmits a scanning job to a specific server.
  • DLNA scan-to-digital living network alliance
  • the scan command may be a copy command that uses a scan function.
  • a scan command is inputted through the manipulation input device 160, in another implementation, the scan command may be received from a terminal (not illustrated) through the communication device 140.
  • the display 150 may display the generated scan image and information about the scan image.
  • the displayed scan image may be the scan image itself or a preview image of the scan image.
  • the display 150 may display a user interface window for receiving a selection of an image processing method to be performed after scanning a manuscript, and so on.
  • the user interface window may include an input area for receiving an angle range for performing skew compensation.
  • the manipulation input device 160 may receive a function selection and a control command for the function from a user.
  • the function may include a print function, a copy function, a scan function, a fax transmission function, or the like.
  • the manipulation input device 160 may be implemented as a plurality of buttons, a keyboard, a mouse, or the like, and may be implemented as a touch screen that may simultaneously perform functions of the display 150 described above.
  • the printing engine 170 prints a compensated scan image.
  • the printing engine 170 may form an image on an image forming medium such as a photoconductive drum, an intermediate transfer belt, a paper feeding belt, or the like, transfer an image formed on the image forming medium on the print paper, and perform a printing operation.
  • the processor 130 may control the image sensor 1 10 to perform a scan operation to generate a scan image, perform image compensation on the generated scan image, and control the printing engine 170 to print the compensated scan image.
  • the processor 130 may control the communication device 140 to transmit the compensated scan image to a storage corresponding to the command.
  • the image scanning device 100 may further include a fax trans receiver to perform the fax trans-receive function, or the like according to functions supported by the image scanning device 100.
  • the image scanning device is capable of compensating for quadrilateral skew, and is thus capable of outputting a high-quality scan image.
  • skew compensation may be performed at a faster rate by performing hardware-based skew compensation based on blocks of data.
  • FIG. 3 is a view illustrating a quadrilateral skew of a scan image according to an example.
  • FIG. 3 in a process where a manuscript to be scanned is moved to a scan area of an image forming device, there may be processing anomalies that cause the manuscript to be deformed in a quadrilateral shape. For example, when a left and right speed (or power) of a feeding or a moving roller is different, the manuscript may be deformed to a quadrilateral shape.
  • a quadrilateral skew may not be corrected by using a compensating method for a general skew (that is, skew due to rotation). Rather, in an example, the quadrilateral skew may be corrected by use of a rubber sheet transform (RST).
  • RST rubber sheet transform
  • An example of an RST method may compensate the quadrilateral distortion using backward mapping.
  • the backward mapping detects four vertexes of an input image 310 corresponding to four vertexes of an output image 320 to be obtained, finds a pixel position of the input image 310 corresponding to a pixel of the output image 320, and calculates the pixel value at that position when the manuscript is distorted in a quadrilateral shape.
  • Equation 1 is a mathematical formula used to calculate a pixel position of the input image 310 corresponding to a pixel of the output image 320 in order to compensate for quadrilateral distortion.
  • x and y are coordinate values in the input image
  • u and v are coordinate values in the output image
  • aO, a1 , a2, a3, bO, b1 , b2, and b3 are constants
  • X LT , Y LT , X RT , Y RT , X LB , Y LB , X RB , Y RB are the vertex coordinates of the input image
  • W and H are the length information (i.e. , the width and height) of the output image.
  • a method of reading and processing an image in a block unit may be used.
  • a processor such as an ASIC or an SoC having a data size that may be processed at one time corresponding to a size of an SRAM or a line memory may be used.
  • FIG. 4 is a view illustrating a processor according to an example.
  • the processor 130 may include a scanner interface 131 , a central processing unit (CPU) 132, an RST processor 200, a memory controller 134, a scan image processor 135, a print image processor 136, and a video controller 137.
  • the processor 130 may be an ASIC or an SoC.
  • the scanner interface 131 may communicate with the image sensor 1 10 to receive a scan image.
  • the CPU 132 may control the overall operation of the processor 130. For example, the CPU 132 may control the scanner interface 131 to read the information of the image sensor 1 10 in accordance with the scan speed, and control the memory controller 134 to store the read information in the memory 120. If the quadrilateral skew compensation is performed, the CPU 132 may control the RST processor 200 to perform skew compensation.
  • the RST processor 200 may perform image processing related to quadrilateral skew. An example configuration and operation of the RST processor 200 will be described with reference to FIGS. 5 and 6.
  • the memory controller 134 may communicate with the memory 120. As an example, the memory controller 134 may transmit data to the memory [0075]
  • the scan image processor 135 may perform image processing on the scan image. Although it has been described in the illustrated example that the RST processor 200 is a configuration separate from the scan image processor 135, the RST processor 200 may include some functions of the scan image processor 135, or the RST processor 200 and the scan image processor 135 may be integrated into one processor.
  • the print image processor 136 may perform operations related to a print job. For example, when print data is received, the print image processor 136 may perform a rendering operation on the received print data and generate a bitmap image.
  • the video controller 137 may control the printing engine 170.
  • the video controller 137 may convert a generated bitmap image into a video signal (e.g., an image signal), and transmit the converted video signal to the printing engine 170.
  • the video signal may be provided to a laser scanning unit (LSU) of the printing engine 170.
  • LSU laser scanning unit
  • FIG. 5 is a view illustrating a configuration of a skew compensation device according to an example.
  • the RST processor 200 may include a direct memory access (DMA) RX 210, an RST core 220, and a DMA TX 230.
  • DMA direct memory access
  • the DMA RX 210 may read a scan image stored in the memory 120 (e.g., a DRAM) in a block size having a predetermined first block size (IBW, IBH) of an input block 101 .
  • the DMA RX 210 may calculate the block position of the first block size to be read, and read the scan image of the calculated position from the memory 120.
  • the RST core 220 may generate an output image having a second block size (OBW, OBFI) using the read scan image data.
  • OBW second block size
  • the second block size is equal to the final block size (CBW, CBFI) of a final block 105.
  • the second block size may be different from the final block size (CBW, CBFI) of the final block 105.
  • the DMA TX 230 stores the image-processed image in the memory 120.
  • the RST processor 200 performs skew compensation only. However, in implementation, the RST processor 200 may perform a plurality of other image processing simultaneously as well as skew compensation. An example operation of an RST processor will be described below with reference to FIG. 6.
  • FIG. 6 is a view illustrating a configuration of a skew compensation device according to an example.
  • the example of FIG. 6 includes not only a skew compensation process but also a plurality of additional image processes.
  • an RST processor 200 may include the DMA RX 210, the RST core 220, the DMA TX 230, an A core 240, a B core 250, and a C core 260.
  • the A core 240, the B core 250, and the C core 260 perform image processing using different algorithms.
  • the A core may be an image processing algorithm that performs image processing using 9x9 peripheral pixels in image processing
  • the B core may be an image processing algorithm that performs image processing using 7x7 peripheral pixels
  • the C core may be an image processing algorithm that performs image processing using 5x5 peripheral pixels.
  • FIG. 6 the A core 240, the B core 250, and the C core 260 are illustrated for convenience of description. However, in implementation, one or two image processing cores may be included in the configuration of FIG. 6, or four or more image processing cores may be included.
  • image processing may be performed in block units. That is, image processing for performing block processing by configuring a plurality of image processing cores in a pipeline is possible.
  • Image processing may be performed considering the number of peripheral pixels, and an input image larger than the size of the output image may be used. Accordingly, for the size of a final block 105 (CBW, CBH (256, 128)) to be finally outputted as illustrated, the C core 260 using the 5x5 peripheral pixels requires an input image 104 in the size of (260, 132).
  • the B core 250 using the 7x7 peripheral pixels requires an input image 103 in the size of (266, 138), and the A core 240 using 9x9 peripheral pixels requires an input image 102 in the size of (274, 146).
  • the RST core 220 may determine the size of an input block 101 where the output block 102 may have a size of (274, 146). For example, based on the skew angle, a first block size that may be the size of the output block 102 (274, 146) may be determined.
  • a first block size that may be the size of the output block 102 (274, 146) may be determined.
  • FIGS. 7 and 8 are views provided to describe a method for determining a block size and position for skew processing according to an example.
  • the output image D (u, v) is divided into block units having a size of (CBW, CBH).
  • the size of the enlarged division area including the pixels around the division area is referred to as a second block size (OBW, OBH) and the four vertexes are qO, q1 , q2, and q3 for a plurality of image processing.
  • the second block size (OBW, OBH) has the same size as the final block size (CBW, CBH).
  • the second block sizes (OBW, OBH) are larger than the final block size (CBW, CBH).
  • the RST core 220 needs to output an image block having a second block size (OBW, OBH) through one block processing, the input block having a size which is larger than the second block size (OBW, OBH) needs to be input.
  • OBW, OBH second block size
  • a 4x4 pixel value around a specific pixel is required.
  • the four vertexes on the distorted scan image may have values of p0, p1 , p2, and p3 as Equation 2 below.
  • P0 , p1 , p2, and p3 are coordinates on the scan image respectively corresponding to q0, q1 , q2, and q3, and f (), and g () represent an RST formula as in Equation 1.
  • the RST core 220 may calculate four vertexes on the scan image, and calculate the vertexes r0, r1 , r2, and r3 of the rectangular block including all four vertexes as shown in FIG. 8.
  • a block defined by r0, r1 , r2, and r3 may have the first block size as described above.
  • Equation 3 to 12 may be calculated, and vertexes r0, r1 , r2, and r3 as in Equation 13 may be calculated.
  • [00104] denotes a floor.
  • [ ] denotes a ceiling
  • IBW x r3 — x r
  • IBW is a width of the first block.
  • IBH y r3 - y r
  • IBH is a height of the first block.
  • IBH and IBW are used for calculation. However, in implementation, using a predetermined value based on the skew angle is also possible.
  • the larger the skew angle the larger the block composed of r0, r1 , r2, and r3 becomes, and the data to be read in the memory 120 becomes larger.
  • the typical skew angle is, for example, in the range of -5 to +5 degrees, and the memory inside the processor also has a fixed size.
  • IBW and IBH may be used in a fixed manner, corresponding to the skew angle.
  • r0 may be calculated using Equations 2 to 6
  • r1 , r2, and r3 may be directly calculated through Equation 13 using the fixed IBW and IBH.
  • the RST core 220 when the inner angle of the quadrilateral or the length of the quadrilateral exceeds the predetermined range using the P0, P1 , P2, and P3 values, that is, when the skew angle is very large, may not perform RST or perform the RST with the extreme values in the range.
  • FIG. 9 is a view illustrating a configuration of an RST core according to an example.
  • FIG. 10 is a view illustrating a number of peripheral pixels for a bicubic interpolation method according to an example.
  • FIG. 1 1 is a view provided to illustrate a data storing method according to an example.
  • an RST core 900 may be composed of an input block interface 910, an SRAM interface 920, an interpolation unit 930, and an output block interface 940.
  • the input block interface 910 controls the DMA RX 210 and performs an operation to read a scan image of a predetermined size.
  • the input block interface 910 may receive a scan image of a first block size (IBW x IBH).
  • the SRAM interface 920 performs an operation of reading and writing data to and from the SRAM 190.
  • the SRAM 190 may be a volatile memory, a line memory within the processor 130, or a dedicated memory of the RST processor 200 or an image processor.
  • the SRAM 190 may have a size of IBW horizontally and IBH vertically corresponding to the first block size, but the SRAM may have a size of IBWx IBH2 (where IBH2 ⁇ IBH) that is smaller than the first block size.
  • the SRAM interface 920 may divide the scan image of the first block size read from the input block interface 910 into pixel blocks of a predetermined size, and store the scan image in the SRAM 190.
  • the SRAM interface 920 may read only a part of the pixel blocks necessary for the interpolation operation from the SRAM 190. An example of a writing and reading operation will be described later with reference to FIGS. 10 and 1 1 .
  • the interpolation unit 930 may perform an interpolation operation using the read image. As an example, the interpolation unit 930 may calculate a value for a specific pixel using pixel values of a plurality of pixel blocks. For example, the interpolation unit 930 may perform a compensation using several interpolation methods such as bilinear, quadratic, bicubic, or the like.
  • the interpolation unit 930 may divide the scan image of the first block size read from the input block interface 910 into a plurality of pixel blocks (for example, four pixels), and control the SRAM interface 920 so that a plurality of pixel blocks required for one interpolation are stored in one line of the SRAM 190.
  • the interpolation unit 930 may read 16 pixel values required for interpolation at one time by storing a scan image of the first block size in the SRAM 190 which is divided into four pieces in a horizontal direction and separately configured in a vertical direction.
  • the output block interface 940 outputs the compensated image, which is output from the interpolation unit 930. At this time, the outputted compensated image may have a second block size (OBW, OBH). If the RST processor 200 performs additional image processing, the image output by the output block interface 940 may have a size corresponding to the size required for subsequent image processing.
  • OBW block size
  • OBH second block size
  • FIG. 12 is a view provided to describe a method for skew compensation according to an example.
  • a first block size is set in operation S1210. For example, a quadrilateral skew angle of the scan image may be calculated, and the first block size may be set based on a second block size and the calculated skew angle. At this time, the first block size may be set by further considering the number of peripheral pixels corresponding to an interpolation method to be performed in the skew compensation. In addition, when performing additional image processing as well as the skew compensation, it is possible to set the first block size by additionally considering the number of peripheral pixels required for the additional image processing.
  • a scan image stored in the memory is read in the set first block size unit in operation S1220.
  • the original area may be divided into the second block size.
  • the coordinates for the block area having the first block size and including the division area in the scan image may be calculated and the scan image of the first block size may be read based on the calculated coordinates.
  • the coordinate calculation may be performed by calculating the vertex coordinates on the original area of the enlarged division area including the division area and the predetermined number of pixels around the division area, converting the calculated vertex coordinates into the vertex coordinates on the scan image, and calculating coordinates in a block area of a first block size including an area defined by vertex coordinates on the scan image.
  • a compensated image of the second block size is generated by performing image compensation on the scan image of the first block size in operation S1230.
  • the additional image processing may be performed in the form of a pipeline for the skew- compensated image.
  • the generated compensated image of the second block size is stored in the memory in operation S1240.
  • the above operation may be performed repeatedly to perform image compensation for the entire scan image.
  • the skew compensation method may compensate a quadrilateral skew, and is thus capable of outputting a scan image of higher quality.
  • a skew compensation may be performed at a higher speed by hardware-based skew compensation based on blocks of data.
  • skew compensation methods as described above may be embodied as a program and provided to a management server.
  • a program including a skew compensation method may be stored in a non-transitory computer readable medium and provided.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

An image scanning device and method for skew compensation are provided. The image scanning device includes an image sensor to scan a manuscript, a memory to store a scan image corresponding to the manuscript, and a processor to read a scan image stored in the memory in a block size unit having a predetermined first block size, generate a compensated image in a second block size by compensating the scan image in the first block size, store the generated compensated image in the second block size in the memory, calculate a quadrilateral skew angle of the scan image, and set the first block size based on the second block size and the calculated skew angle.

Description

METHOD FOR SKEW COMPENSATION BASED ON BLOCK
BACKGROUND
[0001] An image scanning device is a device for scanning an original image such as a document, a picture, or a film and converting the original image into digital data. In this case, the digital data may be displayed on a monitor of a computer or printed by a printer to be generated as an output image. An example of such an image scanning device includes a printer, a scanner, a copier, a facsimile, and a multi-function peripheral (MFP) for performing functions thereof in a complex manner through a single device.
[0002] In the image scanning device, printing paper may not be aligned due to device characteristics such as alignment deviation of a sensor, a movement of a roller or a motor, and the like, thereby causing distortion of the scan image which makes the scan image different from the original image.
BRIEF DESCRIPTION OF THE DRAWINGS
[0003] Examples of the disclosure will be more apparent from the following description taken in conjunction with the accompanying drawings, in which:
[0004] FIG. 1 is a block diagram illustrating a configuration of an image scanning device according to an example;
[0005] FIG. 2 is a block diagram illustrating a configuration of an image scanning device according to an example;
[0006] FIG. 3 is a view illustrating a quadrilateral skew of a scan image according to an example;
[0007] FIG. 4 is a view illustrating a processor according to an example;
[0008] FIG. 5 is a view illustrating a configuration of a skew compensation device according to an example;
[0009] FIG. 6 is a view illustrating a configuration of a skew compensation device according to an example;
[0010] FIG. 7 is a view provided to describe a method for determining a block size and position for skew processing according to an example; [0011] FIG. 8 is a view provided to describe a method for determining a block size and position for skew processing according to an example;
[0012] FIG. 9 is a view illustrating a configuration of a rubber sheet transform (RST) core according to an example;
[0013] FIG. 10 is a view illustrating a number of peripheral pixels used for a bicubic interpolation method according to an example;
[0014] FIG. 1 1 is a view provided to illustrate a data storing method according to an example; and
[0015] FIG. 12 is a view provided to describe a method for skew compensation according to an example.
DETAILED DESCRIPTION
[0016] Certain examples will now be described with reference to the accompanying drawings. The examples described below may be modified in various different forms.
[0017] When it is described that one constituent element is“connected to” another constituent element, it includes a case in which the two constituent elements are connected to each other with another constituent element intervened therebetween as well as a case in which the two constituent elements are directly connected to each other. Further, when one constituent element “comprises” another constituent element, unless specifically stated to the contrary, it includes examples in which other constituent elements may be further included rather than precluding the same.
[0018] The expression“image forming job” as used herein may refer to various jobs related with an image, such as, formation of an image or generation/storage/transmission of image files (e.g., copying, printing, scanning, or faxing), and the expression“job” as used herein may refer to not only the image forming job, but also a series of processes required for performance of the image forming job.
[0019] Further, the expression“image scanning device” as used herein may refer to an apparatus that scans an image of a document and generates a scan image. Examples of an image scanning device may include a printer, a scanner, a copier, a facsimile, or a multi-function printer (MFP) implementing functions of the above. As an example, when the image scanning device is a printer, a scanner, a copier, a facsimile, an MFP, or the like, which are capable of the image forming job, the image scanning device may also be referred to as the image forming device. Furthermore, the terms “image scanning device” and “image scanning apparatus” may be used interchangeably.
[0020] Further, the expression“hard copy” as used herein may refer to an operation of outputting an image on a recording medium such as paper, and the expression“soft copy” as used herein may refer to an operation of outputting an image on a display device such as a TV, a monitor, or the like or outputting an image to a memory.
[0021] Further, the expression“scanned data” as used herein may refer to a scan image generated at a scanner, may be a black and white image, a color image, or the like, and may have various file formats (e.g., bitmap (BMP), joint photographic group (JPG), tagged image file format (TIFF), portable document format (PDF), or the like).
[0022] Further, the expression“user” as used herein may refer to a person who performs a manipulation related with the image forming job using the image scanning device or a device connected to the image scanning device in a wired or wireless manner. Further, the expression“manager” as used herein may refer to a person who has an authority to access all the functions and systems of the image scanning device. The“manager” and the“user” may refer to the same person.
[0023] FIG. 1 is a block diagram illustrating a configuration of an image scanning device according to an example.
[0024] Referring to FIG. 1 , an image scanning device 100 includes an image sensor 1 10, a memory 120, and a processor 130.
[0025] The image sensor 1 10 may scan a manuscript. For example, the image sensor 1 10 may irradiate light onto a manuscript and scan image information of the manuscript from light (or glow) reflected from the manuscript. The image sensor 1 10 may include a charge coupled device (CCD) disposed in a row along the main scanning direction or a CMOS image sensor (CIS). The image sensor 1 10 may be disposed on a lower end of a flatbed and disposed within an automatic document feeder (ADF).
[0026] The memory 120 may store data for image processing. For example, the memory 120 may store a program to perform the image processing of the processor 130, a signal scanned from the image sensor 1 10, or data (for example, a skew-compensated image) processed by the processor 130.
[0027] The memory 120 may be a volatile memory such as a dynamic random access memory (DRAM), a synchronous RAM (SRAM), or the like, or a non-volatile memory such as a hard disk drive (FIDD), a solid state drive (SSD), a flash memory, or the like, or may be a combination of the volatile memory and the non-volatile memory.
[0028] The processor 130 may control each element within the image scanning device 100. In an example, the processor 130 may be implemented as a central processing unit (CPU), an application-specific integrated circuit (ASIC), or the like, and sense whether a scan command is inputted from a user. The scan command may be inputted through a manipulation input device provided on the image scanning device 100 or received through a communication device from an external device (for example, a personal computer (PC), a smartphone, etc.)
[0029] When a scan command is input, the processor 130 may control the image sensor 1 10 to generate a scan image. The processor 130 may generate a scan image using the signal output from the image sensor 1 10. The processor 130 may store the generated scan image in the memory 120.
[0030] The processor 130 may determine whether image processing is required. Flere, the image processing may include adjusting the skew of the scan image, adjusting the color and brightness, removing a background of the paper included in the scan image, or the like.
[0031] When a quadrilateral skew is detected, the processor 130 may calculate an angle of the quadrilateral skew. If the calculated angle of the quadrilateral skew is in a predetermined range (for example, -5 degrees to +5 degrees), the processor 130 may determine to perform image processing for the quadrilateral skew compensation. When the quadrilateral skew is detected, if the calculated skew angle is out of the predetermined range, the processor 130 may determine not to perform the quadrilateral skew compensation processing, or perform skew compensation with an extreme value in a predetermined range. In implementation, if the angle is too narrow to recognize the quadrilateral skew, it may be determined that the skew compensation will not be performed.
[0032] The range of angle may be set and provided by a manufacturer, or the range may be set or modified by a user or a manager.
[0033] The processor 130 may perform an operation of confirming whether there is a quadrilateral skew in the image of the manuscript and an operation of confirming the angle of the quadrilateral skew. In the above description, the quadrilateral skew is confirmed and the skew angle is calculated. However, in the implementation, the skew angle may be calculated and the quadrilateral skew may be confirmed accordingly. Still further, the skew angle may be calculated and the quadrilateral skew may be confirmed in parallel.
[0034] The processor 130 may perform image processing by sequentially reading image data stored in the memory 120 in a line unit corresponding to a horizontal size of the image. The processor 130 may perform image processing by dividing the image data into a plurality of blocks and reading the divided blocks in a block size unit.
[0035] The processor 130 may be implemented as a device such as an application-specific integrated circuit (ASIC) or a system-on-chip (SoC) and may read and process image data by reading the image data on a block-by-block basis due to a restriction of a size of the internal memory. Hereinbelow, an example operation of reading the image data by a unit of a block will be described.
[0036] The processor 130 may determine an image block size necessary for image processing in order to read image data in units of block size and perform image processing. For example, when skew compensation is performed, the processor 130 may calculate the skew angle of the scan image and determine a block size (hereinafter, first block size) required for image processing based on the calculated skew angle. In an example, the processor 130 may determine the first block size by considering the number of peripheral pixels necessary for image processing. [0037] For example, in the case of using a bicubic interpolation method using a 4 x 4 block of pixels for skew compensation, the processor 130 may determine the first block size which may include, on the scan image, an enlarged division area, which is larger by the 4 x 4 block of pixels than the target division area.
[0038] When the processor 130 has to perform a plurality of image processing, the processor 130 may calculate a block size (that is, a first block size) to be read from the memory 120 based on the image block size required for each image processing and the final output image block. Example operations for determining a block size by the processor 130 will be described later with reference to FIG. 6.
[0039] The processor 130 may perform image processing on the generated scan image. For example, the processor 130 may read the scan image stored in the memory 120 in a first block size unit. As an example, the processor 130 may divide the original area into a second block size, and calculate coordinates on a block area which has the first block size and includes a division area within the scan image in order to sequentially generate a plurality of division areas, and read the scan image of the first block size based on the calculated coordinates.
[0040] As an example, the processor 130 may calculate vertex coordinates of the original area for the enlarged division area including the division area and the predetermined number of pixels around the division area, convert the calculated vertex coordinates of the original area to the vertex coordinates of the scan image, and calculate the coordinates of the block area of the first block size including the area defined by the coordinates of the vertex on the scan image, to read the scan image of the first block size.
[0041] The processor 130 may perform image processing on the read scan image of the first block size. When a plurality of image processing is performed on the scan image, the processor 130 may sequentially perform a plurality of image processing on the read scan image of the first block size. For example, the processor 130 may perform skew compensation on the scan image of the first block size, and sequentially perform operations such as edge compensation for the skew-compensated image block and color compensation for the edge- compensated image block, or the like.
[0042] In the image processing, the processor 130 may divide the scan image of the first block size, which has been read, into pixel blocks of a predetermined size, combine the plurality of divided pixel blocks into a form that may be read at a time, and store the same temporarily. Accordingly, the processor 130 may scan a plurality of pixel values required in the interpolation process for a specific pixel at a time. Examples will be described later with reference to FIGS. 9 to 1 1 .
[0043] When image processing is completed, the processor 130 may store the compensated image of the second block size in the memory 120.
[0044] An example configuration of an image scanning device has been described. However, in implementation, various configurations may be added additionally. Examples of additional configurations will be described with reference to FIG. 2.
[0045] FIG. 2 is a block diagram illustrating a configuration of an image scanning device according to an example.
[0046] Referring to FIG. 2, the image scanning device 100 may include the image sensor 1 10, the memory 120, the processor 130, a communication device 140, a display 150, a manipulation input device 160, and a printing engine 170.
[0047] The operation of the image sensor 1 10 and the memory 120 has been described with reference to FIG. 1 , and a redundant description will be omitted. The processor 130 is also described with reference to FIG. 1 , and the contents described in FIG. 1 will not be again described. Rather, only the contents related to the configuration added in FIG. 2 will be described below.
[0048] The communication device 140 may be connected to a terminal (not illustrated) such as a mobile device (e.g., a smart phone, a tablet PC, etc.), a PC, a notebook PC, a personal digital assistant (PDA), a digital camera, or the like, and transmit a scan image previously stored in the memory 120 or a compensated scan image to the terminal.
[0049] For example, the communication device 140 may be configured to connect the image scanning device 100 to an external device. The communication device 140 may connect the image scanning device 100 to the external device using a local area network (LAN) or an internet network, or using a universal serial bus (USB) port, a wireless communication port (e.g., WiFi 802.1 1 a/b/g/n, NFC, Bluetooth), or the like. The communication device 140 may be referred to as a communication interface, a transceiver, or the like.
[0050] The display 150 may display various pieces of information provided from the image scanning device 100. For example, the display 150 may display a user interface window to receive a selection of various functions provided by the image scanning device 100. The display 150 may be a monitor such as a liquid crystal display (LCD), a cathode-ray tube (CRT), an organic light emitting diode (OLED), or the like, and may be implemented as a touch screen that may simultaneously perform a function of the manipulation input device 160 which will be described later.
[0051] Further, the display 150 may display a control menu for performance of functions of the image scanning device 100. As an example, a user may input a scan command on the displayed control menu. In an example, the scan command may be a command to perform the scanning job and may include a command such as scan-to-server, scan-to-digital living network alliance (DLNA), scan-to-cloud, or the like, which transmits a scanning job to a specific server.
[0052] Further, when the image scanning device 100 is a multi-function printer (MFP) that includes printing and copying capabilities, the scan command may be a copy command that uses a scan function. Although it is described herein that a scan command is inputted through the manipulation input device 160, in another implementation, the scan command may be received from a terminal (not illustrated) through the communication device 140.
[0053] Further, the display 150 may display the generated scan image and information about the scan image. In an example, the displayed scan image may be the scan image itself or a preview image of the scan image.
[0054] The display 150 may display a user interface window for receiving a selection of an image processing method to be performed after scanning a manuscript, and so on. The user interface window may include an input area for receiving an angle range for performing skew compensation.
[0055] The manipulation input device 160 may receive a function selection and a control command for the function from a user. The function may include a print function, a copy function, a scan function, a fax transmission function, or the like. The manipulation input device 160 may be implemented as a plurality of buttons, a keyboard, a mouse, or the like, and may be implemented as a touch screen that may simultaneously perform functions of the display 150 described above.
[0056] The printing engine 170 prints a compensated scan image. The printing engine 170 may form an image on an image forming medium such as a photoconductive drum, an intermediate transfer belt, a paper feeding belt, or the like, transfer an image formed on the image forming medium on the print paper, and perform a printing operation.
[0057] When a copy command is received from a user, the processor 130 may control the image sensor 1 10 to perform a scan operation to generate a scan image, perform image compensation on the generated scan image, and control the printing engine 170 to print the compensated scan image.
[0058] Alternatively, when commands such as scan-to-server, scan-to- DLNA, scan-to-cloud, or the like are received from the user, the processor 130 may control the communication device 140 to transmit the compensated scan image to a storage corresponding to the command.
[0059] The image scanning device 100 may further include a fax trans receiver to perform the fax trans-receive function, or the like according to functions supported by the image scanning device 100.
[0060] As described above, the image scanning device according to an example is capable of compensating for quadrilateral skew, and is thus capable of outputting a high-quality scan image. In addition, skew compensation may be performed at a faster rate by performing hardware-based skew compensation based on blocks of data.
[0061] FIG. 3 is a view illustrating a quadrilateral skew of a scan image according to an example. [0062] Referring to FIG. 3, in a process where a manuscript to be scanned is moved to a scan area of an image forming device, there may be processing anomalies that cause the manuscript to be deformed in a quadrilateral shape. For example, when a left and right speed (or power) of a feeding or a moving roller is different, the manuscript may be deformed to a quadrilateral shape.
[0063] In an example, a quadrilateral skew may not be corrected by using a compensating method for a general skew (that is, skew due to rotation). Rather, in an example, the quadrilateral skew may be corrected by use of a rubber sheet transform (RST).
[0064] An example of an RST method may compensate the quadrilateral distortion using backward mapping. The backward mapping detects four vertexes of an input image 310 corresponding to four vertexes of an output image 320 to be obtained, finds a pixel position of the input image 310 corresponding to a pixel of the output image 320, and calculates the pixel value at that position when the manuscript is distorted in a quadrilateral shape.
[0065] Equation 1 as shown below is a mathematical formula used to calculate a pixel position of the input image 310 corresponding to a pixel of the output image 320 in order to compensate for quadrilateral distortion.
Figure imgf000011_0001
... Equation 1 [0066] Here, x and y are coordinate values in the input image, u and v are coordinate values in the output image, aO, a1 , a2, a3, bO, b1 , b2, and b3 are constants, XLT, YLT, XRT, YRT, XLB, YLB, XRB, YRB are the vertex coordinates of the input image, and W and H are the length information (i.e. , the width and height) of the output image.
[0067] In order to compensate for quadrilateral skew by a hardware method in a device such as an ASIC or an SoC, a method of reading and processing an image in a block unit may be used. As an example, a processor such as an ASIC or an SoC having a data size that may be processed at one time corresponding to a size of an SRAM or a line memory may be used.
[0068] In an example, even in a case where an SRAM (or line memory) having a small size is used, image processing is performed in block units so that the quadrilateral skew may be compensated.
[0069] FIG. 4 is a view illustrating a processor according to an example.
[0070] Referring to FIG. 4, the processor 130 may include a scanner interface 131 , a central processing unit (CPU) 132, an RST processor 200, a memory controller 134, a scan image processor 135, a print image processor 136, and a video controller 137. The processor 130 may be an ASIC or an SoC.
[0071] The scanner interface 131 may communicate with the image sensor 1 10 to receive a scan image.
[0072] The CPU 132 may control the overall operation of the processor 130. For example, the CPU 132 may control the scanner interface 131 to read the information of the image sensor 1 10 in accordance with the scan speed, and control the memory controller 134 to store the read information in the memory 120. If the quadrilateral skew compensation is performed, the CPU 132 may control the RST processor 200 to perform skew compensation.
[0073] The RST processor 200 may perform image processing related to quadrilateral skew. An example configuration and operation of the RST processor 200 will be described with reference to FIGS. 5 and 6.
[0074] The memory controller 134 may communicate with the memory 120. As an example, the memory controller 134 may transmit data to the memory [0075] The scan image processor 135 may perform image processing on the scan image. Although it has been described in the illustrated example that the RST processor 200 is a configuration separate from the scan image processor 135, the RST processor 200 may include some functions of the scan image processor 135, or the RST processor 200 and the scan image processor 135 may be integrated into one processor.
[0076] The print image processor 136 may perform operations related to a print job. For example, when print data is received, the print image processor 136 may perform a rendering operation on the received print data and generate a bitmap image.
[0077] The video controller 137 may control the printing engine 170. For example, the video controller 137 may convert a generated bitmap image into a video signal (e.g., an image signal), and transmit the converted video signal to the printing engine 170. The video signal may be provided to a laser scanning unit (LSU) of the printing engine 170.
[0078] FIG. 5 is a view illustrating a configuration of a skew compensation device according to an example.
[0079] Referring to FIG. 5, the RST processor 200 may include a direct memory access (DMA) RX 210, an RST core 220, and a DMA TX 230.
[0080] The DMA RX 210 may read a scan image stored in the memory 120 (e.g., a DRAM) in a block size having a predetermined first block size (IBW, IBH) of an input block 101 . For example, the DMA RX 210 may calculate the block position of the first block size to be read, and read the scan image of the calculated position from the memory 120.
[0081] An example of calculating the first block size will be described with reference to FIGS. 6 to 8.
[0082] The RST core 220 may generate an output image having a second block size (OBW, OBFI) using the read scan image data. Flere, since the RST processor 200 performs skew compensation only, the second block size is equal to the final block size (CBW, CBFI) of a final block 105. When the RST processor 200 performs additional image processing, the second block size may be different from the final block size (CBW, CBFI) of the final block 105. An example configuration and operation of the RST core 220 will be described later with reference to FIG. 9.
[0083] The DMA TX 230 stores the image-processed image in the memory 120.
[0084] In the illustrated example, it has been described that the RST processor 200 performs skew compensation only. However, in implementation, the RST processor 200 may perform a plurality of other image processing simultaneously as well as skew compensation. An example operation of an RST processor will be described below with reference to FIG. 6.
[0085] FIG. 6 is a view illustrating a configuration of a skew compensation device according to an example. The example of FIG. 6 includes not only a skew compensation process but also a plurality of additional image processes.
[0086] Referring to FIG. 6, an RST processor 200 may include the DMA RX 210, the RST core 220, the DMA TX 230, an A core 240, a B core 250, and a C core 260.
[0087] The DMA RX 210, the RST core 220, and the DMA TX 230 have been described with reference to FIG. 5, and will not be described again for conciseness.
[0088] The A core 240, the B core 250, and the C core 260 perform image processing using different algorithms. For example, the A core may be an image processing algorithm that performs image processing using 9x9 peripheral pixels in image processing, the B core may be an image processing algorithm that performs image processing using 7x7 peripheral pixels, and the C core may be an image processing algorithm that performs image processing using 5x5 peripheral pixels.
[0089] In FIG. 6, the A core 240, the B core 250, and the C core 260 are illustrated for convenience of description. However, in implementation, one or two image processing cores may be included in the configuration of FIG. 6, or four or more image processing cores may be included.
[0090] As described above, various image processing may be performed in block units. That is, image processing for performing block processing by configuring a plurality of image processing cores in a pipeline is possible. [0091] Image processing may be performed considering the number of peripheral pixels, and an input image larger than the size of the output image may be used. Accordingly, for the size of a final block 105 (CBW, CBH (256, 128)) to be finally outputted as illustrated, the C core 260 using the 5x5 peripheral pixels requires an input image 104 in the size of (260, 132). The B core 250 using the 7x7 peripheral pixels requires an input image 103 in the size of (266, 138), and the A core 240 using 9x9 peripheral pixels requires an input image 102 in the size of (274, 146).
[0092] The RST core 220 may determine the size of an input block 101 where the output block 102 may have a size of (274, 146). For example, based on the skew angle, a first block size that may be the size of the output block 102 (274, 146) may be determined. Hereinafter, an example of determining a block size for skew processing will be described with reference to FIGS. 7 and 8.
[0093] FIGS. 7 and 8 are views provided to describe a method for determining a block size and position for skew processing according to an example.
[0094] Referring to FIGS. 7 and 8, when four vertexes of an original image or an output image are Q0, Q1 , Q2, and Q3, four vertexes on a distorted scan image correspond to P0, P1 , P2, and P3.
[0095] In FIG.7, the output image D (u, v) is divided into block units having a size of (CBW, CBH).
[0096] It is assumed that the size of the enlarged division area including the pixels around the division area is referred to as a second block size (OBW, OBH) and the four vertexes are qO, q1 , q2, and q3 for a plurality of image processing.
[0097] For the case of performing skew compensation only as illustrated in FIG. 5, the second block size (OBW, OBH) has the same size as the final block size (CBW, CBH).
[0098] As shown in FIG. 6, when there are a plurality of cores for image processing, the second block sizes (OBW, OBH) are larger than the final block size (CBW, CBH). [0099] When the RST core 220 needs to output an image block having a second block size (OBW, OBH) through one block processing, the input block having a size which is larger than the second block size (OBW, OBH) needs to be input. As an example, for image processing using interpolation, a 4x4 pixel value around a specific pixel is required.
[00100] If the vertexes of the block having the size determined according to the above process are q0, q1 , q2, and q3, the four vertexes on the distorted scan image may have values of p0, p1 , p2, and p3 as Equation 2 below.
P0 : x0 = f(u0, v0), y0 = g(u0, v0 )
P1 x1 = f(u1,V1), y1 = g(u1, V1)
P2 x2 = f(u2, v 2), y2 = g(u 2, v2) p3: x3 = f(u3, v3), y3 = g(u3, v3 )
... Equation 2
[00101] Here, P0 , p1 , p2, and p3 are coordinates on the scan image respectively corresponding to q0, q1 , q2, and q3, and f (), and g () represent an RST formula as in Equation 1.
[00102] Accordingly, the RST core 220 may calculate four vertexes on the scan image, and calculate the vertexes r0, r1 , r2, and r3 of the rectangular block including all four vertexes as shown in FIG. 8. Here, a block defined by r0, r1 , r2, and r3 may have the first block size as described above.
[00103] As an example, in order to calculate a smallest quadrangle surrounding P0 , p1 , p2, and p3, Equations 3 to 12 may be calculated, and vertexes r0, r1 , r2, and r3 as in Equation 13 may be calculated.
Dx0 = ([x0] > [x2] ? ([x0] - [x2]) + 1: 1
... Equation 3
[00104] Here, [ ] denotes a floor.
Dy0 = ([y0] > [y2] ? ([y0] - [y2]) + 1: 1
... Equation 4 xr = [x0] - Dx0
...Equation 5 yr =[y0] - Dy0
...Equation 6
Dx3 = ([x3] >[x1])? 1: (x3] -[x1]) + 1
...Equation 7
[00105] Here, [ ] denotes a ceiling.
Dy3 = ([y3] >[y2])? 1: (y3] -[y2]) + 1
...Equation 8 xr3 = ([x3] + Dx3
...Equation 9 yr3 =[y3] + Dy3
...Equation 10
IBW = xr3— xr
...Equation 11
[00106] Here, IBW is a width of the first block.
IBH = yr3 - yr
...Equation 12
[00107] Here, IBH is a height of the first block.
r0:(xr,yr) r1: (xr + IBW,yr ) r2 : (xr, yr + IBH) r3 : (xr + IBW, yr + IBH)
... Equation 13
[00108] In the above examples, IBH and IBW are used for calculation. However, in implementation, using a predetermined value based on the skew angle is also possible.
[00109] For example, the larger the skew angle, the larger the block composed of r0, r1 , r2, and r3 becomes, and the data to be read in the memory 120 becomes larger. However, the typical skew angle is, for example, in the range of -5 to +5 degrees, and the memory inside the processor also has a fixed size. In consideration of the foregoing, if the skew angle is determined, IBW and IBH may be used in a fixed manner, corresponding to the skew angle. In this case, r0 may be calculated using Equations 2 to 6, and r1 , r2, and r3 may be directly calculated through Equation 13 using the fixed IBW and IBH.
[00110] In the calculation process above, when the values of P0, P1 , P2, and P3 corresponding to the values Q0, Q1 , Q2, and Q3 are equal, or a difference therebetween is not large, that is, when the skew angle is very small, the RST may not be performed. Alternatively, the RST core 220, when the inner angle of the quadrilateral or the length of the quadrilateral exceeds the predetermined range using the P0, P1 , P2, and P3 values, that is, when the skew angle is very large, may not perform RST or perform the RST with the extreme values in the range.
[00111] FIG. 9 is a view illustrating a configuration of an RST core according to an example. FIG. 10 is a view illustrating a number of peripheral pixels for a bicubic interpolation method according to an example. FIG. 1 1 is a view provided to illustrate a data storing method according to an example.
[00112] Referring to FIG. 9, an RST core 900 may be composed of an input block interface 910, an SRAM interface 920, an interpolation unit 930, and an output block interface 940. [00113] The input block interface 910 controls the DMA RX 210 and performs an operation to read a scan image of a predetermined size. For example, the input block interface 910 may receive a scan image of a first block size (IBW x IBH).
[00114] The SRAM interface 920 performs an operation of reading and writing data to and from the SRAM 190. The SRAM 190 may be a volatile memory, a line memory within the processor 130, or a dedicated memory of the RST processor 200 or an image processor. The SRAM 190 may have a size of IBW horizontally and IBH vertically corresponding to the first block size, but the SRAM may have a size of IBWx IBH2 (where IBH2 <IBH) that is smaller than the first block size.
[00115] For example, the SRAM interface 920 may divide the scan image of the first block size read from the input block interface 910 into pixel blocks of a predetermined size, and store the scan image in the SRAM 190.
[00116] In the interpolation operation, the SRAM interface 920 may read only a part of the pixel blocks necessary for the interpolation operation from the SRAM 190. An example of a writing and reading operation will be described later with reference to FIGS. 10 and 1 1 .
[00117] The interpolation unit 930 may perform an interpolation operation using the read image. As an example, the interpolation unit 930 may calculate a value for a specific pixel using pixel values of a plurality of pixel blocks. For example, the interpolation unit 930 may perform a compensation using several interpolation methods such as bilinear, quadratic, bicubic, or the like.
[00118] Hereinbelow, to facilitate description, an example of applying a bicubic interpolation method using 4x4 peripheral pixels is assumed and described.
[00119] Referring to FIG. 10, in order to calculate a pixel value at a specific position, 16 peripheral pixel values are required. If pixel values of each line are stored in different SRAM lines in the SRAM 190, it takes four clock signals to read 16 pixel values.
[00120] Accordingly, the interpolation unit 930, so as to read data necessary for interpolation during the time of one clock signal, may divide the scan image of the first block size read from the input block interface 910 into a plurality of pixel blocks (for example, four pixels), and control the SRAM interface 920 so that a plurality of pixel blocks required for one interpolation are stored in one line of the SRAM 190.
[00121] Referring to FIG. 11 , the interpolation unit 930 may read 16 pixel values required for interpolation at one time by storing a scan image of the first block size in the SRAM 190 which is divided into four pieces in a horizontal direction and separately configured in a vertical direction.
[00122] The output block interface 940 outputs the compensated image, which is output from the interpolation unit 930. At this time, the outputted compensated image may have a second block size (OBW, OBH). If the RST processor 200 performs additional image processing, the image output by the output block interface 940 may have a size corresponding to the size required for subsequent image processing.
[00123] FIG. 12 is a view provided to describe a method for skew compensation according to an example.
[00124] Referring to FIG. 12, a first block size is set in operation S1210. For example, a quadrilateral skew angle of the scan image may be calculated, and the first block size may be set based on a second block size and the calculated skew angle. At this time, the first block size may be set by further considering the number of peripheral pixels corresponding to an interpolation method to be performed in the skew compensation. In addition, when performing additional image processing as well as the skew compensation, it is possible to set the first block size by additionally considering the number of peripheral pixels required for the additional image processing.
[00125] A scan image stored in the memory is read in the set first block size unit in operation S1220. For example, the original area may be divided into the second block size. In order to sequentially generate a plurality of division areas, the coordinates for the block area having the first block size and including the division area in the scan image may be calculated and the scan image of the first block size may be read based on the calculated coordinates. [00126] In an example, the coordinate calculation may be performed by calculating the vertex coordinates on the original area of the enlarged division area including the division area and the predetermined number of pixels around the division area, converting the calculated vertex coordinates into the vertex coordinates on the scan image, and calculating coordinates in a block area of a first block size including an area defined by vertex coordinates on the scan image.
[00127] A compensated image of the second block size is generated by performing image compensation on the scan image of the first block size in operation S1230. When performing additional image processing, the additional image processing may be performed in the form of a pipeline for the skew- compensated image.
[00128] The generated compensated image of the second block size is stored in the memory in operation S1240. The above operation may be performed repeatedly to perform image compensation for the entire scan image.
[00129] As described above, the skew compensation method according to an example may compensate a quadrilateral skew, and is thus capable of outputting a scan image of higher quality. In addition, a skew compensation may be performed at a higher speed by hardware-based skew compensation based on blocks of data.
[00130] The examples of skew compensation methods as described above may be embodied as a program and provided to a management server. As an example, a program including a skew compensation method may be stored in a non-transitory computer readable medium and provided.
[00131] The foregoing examples and advantages are merely exemplary and are not to be construed as limiting the inventive concept. The examples may be readily applied to another type of device or apparatus. Also, the description of the examples is intended to be illustrative, and not to limit the scope of the inventive concept, and many alternatives, modifications, and variations will be apparent to those skilled in the art.

Claims

WHAT IS CLAIMED IS:
1 . An image scanning device comprising:
an image sensor to scan a manuscript;
a memory to store a scan image corresponding to the manuscript; and a processor to:
read the scan image stored in the memory in a block size unit having a predetermined first block size,
generate a compensated image in a second block size by compensating the scan image in the first block size,
store the generated compensated image in the second block size in the memory,
calculate a quadrilateral skew angle of the scan image, and set the first block size based on the second block size and the calculated skew angle.
2. The image scanning device of claim 1 , wherein the processor is further to:
divide an original area into the second block size,
calculate coordinates on a block area having the first block size and including a division area in the scan image to sequentially generate a plurality of division areas, and
read the scan image in the first block size based on the calculated coordinates.
3. The image scanning device of claim 2, wherein the processor is further to:
calculate vertex coordinates on the original area for an enlarged division area including the division area and a predetermined number of pixels around the division area,
convert the calculated vertex coordinates to the vertex coordinates on the scan image, and calculate the coordinates on a block area in the first block size including an area defined by the vertex coordinates on the scan image.
4. The image scanning device of claim 1 , wherein the processor is further to set the first block size by considering a number of peripheral pixels corresponding to an interpolation method to be performed in skew compensation.
5. The image scanning device of claim 1 , wherein the processor is further to:
generate a compensated image in a third block size by performing skew compensation for the scan image in the first block size, and
generate the compensated image in the second block size by performing additional image compensation processing for the compensated image in the third block size.
6. The image scanning device of claim 5, wherein the first block size is set by further considering a number of peripheral pixels used for the additional image compensation processing.
7. The image scanning device of claim 1 , wherein the processor is further to:
divide the scan image in the first block size into a pixel block in a predetermined size, and
by simultaneously using a plurality of pixel blocks required for image processing of a specific pixel in a pixel unit, perform image processing for the specific pixel.
8. The image scanning device of claim 1 , wherein the processor is further to, based on the calculated skew angle being in a predetermined size range, perform skew compensation.
9. A method for skew compensation of an image scanning device, the method comprising:
calculating a quadrilateral skew angle of a scan image stored in a memory and setting a first block size based on a second block size and the calculated skew angle;
reading the scan image in the predetermined first block size unit;
generating a compensated image in a second block size by compensating the image in the first block size; and
storing the generated compensated image in a second block size in the memory.
10. The method for skew compensation of claim 9, wherein the reading comprises:
dividing an original area into the second block size;
calculating coordinates on a block area having the first block size and including a division area in the scan image to sequentially generate a plurality of division areas; and
reading the scan image in the first block size based on the calculated coordinates.
1 1 . The method for skew compensation of claim 10, wherein the calculating of the coordinates comprises:
calculating vertex coordinates on the original area for an enlarged division area including the division area and a predetermined number of pixels around the division area;
converting the calculated vertex coordinates to the vertex coordinates on the scan image; and
calculating the coordinates on a block area in the first block size including an area defined by the vertex coordinates on the scan image.
12. The method for skew compensation of claim 9, wherein the setting comprises setting the first block size by further considering a number of peripheral pixels corresponding to an interpolation method to be performed in skew compensation.
13. The method for skew compensation of claim 9, wherein the generating of the compensated image comprises:
generating a compensated image in a third block size by performing skew compensation for the scan image in the first block size; and
generating the compensated image in the second block size by performing additional image compensation for the compensated image in the third block size.
14. The method for skew compensation of claim 13, wherein the setting comprises setting the first block size by further considering a number of peripheral pixels required for the additional image compensation processing.
15. The method for skew compensation of claim 9, further comprising: determining whether the calculated skew angle is in a predetermined size range.
PCT/US2019/041972 2019-01-16 2019-07-16 Method for skew compensation based on block Ceased WO2020149880A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190005710A KR20200089074A (en) 2019-01-16 2019-01-16 Method for skew compensation based on block
KR10-2019-0005710 2019-01-16

Publications (1)

Publication Number Publication Date
WO2020149880A1 true WO2020149880A1 (en) 2020-07-23

Family

ID=71613703

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2019/041972 Ceased WO2020149880A1 (en) 2019-01-16 2019-07-16 Method for skew compensation based on block

Country Status (2)

Country Link
KR (1) KR20200089074A (en)
WO (1) WO2020149880A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7340110B2 (en) * 2003-01-30 2008-03-04 Samsung Electronics Co., Ltd. Device and method for correcting skew of an object in an image
US8270737B2 (en) * 2007-12-05 2012-09-18 Konica Minolta Business Technologies, Inc. Image processing apparatus
US20140177010A1 (en) * 2012-12-24 2014-06-26 Samsung Electronics Co., Ltd. Image scanning apparatus, image compensation method and computer-readable recording medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7340110B2 (en) * 2003-01-30 2008-03-04 Samsung Electronics Co., Ltd. Device and method for correcting skew of an object in an image
US8270737B2 (en) * 2007-12-05 2012-09-18 Konica Minolta Business Technologies, Inc. Image processing apparatus
US20140177010A1 (en) * 2012-12-24 2014-06-26 Samsung Electronics Co., Ltd. Image scanning apparatus, image compensation method and computer-readable recording medium

Also Published As

Publication number Publication date
KR20200089074A (en) 2020-07-24

Similar Documents

Publication Publication Date Title
CN104601858B (en) Image processing system and colour conversion method
US8937753B2 (en) Image scanning apparatus, image compensation method and computer-readable recording medium
US20200280654A1 (en) System, method, and storage medium for converting low-resolution image data into high-resolution image data using neural network
US10469713B2 (en) Image forming apparatus and control method of thereof
JP2015171099A (en) Image processing apparatus and image processing method
CN101222566A (en) Image forming apparatus and method of adjusting image in document to be printed
US9069491B2 (en) Image processing apparatus, image processing method, and storage medium
US20090040573A1 (en) Image processing apparatus and image processing method
US11445087B2 (en) Skew compensation based on scale factor
US10021275B2 (en) Image processing apparatus, method of controlling image processing apparatus, and non-transitory recording medium
WO2020149880A1 (en) Method for skew compensation based on block
JP5955822B2 (en) Color conversion apparatus, image forming apparatus, color conversion method, and color conversion program
JP7003568B2 (en) Image processing device, image processing method
JP4634261B2 (en) Image forming apparatus, image processing apparatus, image output apparatus, portable terminal, image processing system, image forming method, image processing method, image output method, image forming program, image processing program, and image output program
US10798264B2 (en) Image scanning apparatus and method for scanning thereof
JP5847687B2 (en) Image processing setting method, program, recording medium, and information processing apparatus
US20100165420A1 (en) Image processing appratus, image processing method and computer program
JP7457079B2 (en) Image forming apparatus, information processing system, information processing program, and information processing method
US11943407B2 (en) Using pre-scan to improve scan speed by detecting a document loaded on the image reading apparatus
JP6045459B2 (en) Image forming apparatus
KR20220051655A (en) Iamge scanning apparatus for compensating optical flare
US9049335B2 (en) Image scanning apparatus, method for discrimination of color and computer-readable recording medium
JP6026373B2 (en) Image forming apparatus, image forming system, and image forming method
KR20060009565A (en) How to set user copy area by preview
JP2001061031A (en) Digital copier

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19910244

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19910244

Country of ref document: EP

Kind code of ref document: A1