[go: up one dir, main page]

JP2017200042A - Image forming device - Google Patents

Image forming device Download PDF

Info

Publication number
JP2017200042A
JP2017200042A JP2016089049A JP2016089049A JP2017200042A JP 2017200042 A JP2017200042 A JP 2017200042A JP 2016089049 A JP2016089049 A JP 2016089049A JP 2016089049 A JP2016089049 A JP 2016089049A JP 2017200042 A JP2017200042 A JP 2017200042A
Authority
JP
Japan
Prior art keywords
block
image
enlargement
unit
inclination
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.)
Pending
Application number
JP2016089049A
Other languages
Japanese (ja)
Inventor
俊洋 土井
Toshihiro Doi
俊洋 土井
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Data Corp
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 Oki Data Corp filed Critical Oki Data Corp
Priority to JP2016089049A priority Critical patent/JP2017200042A/en
Publication of JP2017200042A publication Critical patent/JP2017200042A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Input (AREA)
  • Image Processing (AREA)
  • Storing Facsimile Image Data (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an image forming device capable of increasing a processing speed.SOLUTION: An image forming device 10 comprises: a skew block reading part 12 that sequentially reads out an image in a block unit smaller than a size of one page while changing a start-point coordinate in accordance with an inclination corrected by a memory 20 to which an input image is stored; a block inclination correction part 14 that corrects the inclination of each image of the block unit which is sequentially read by the skew block reading part 12, and outputs the image of which the inclination is corrected in the block unit; an extension/contraction filter processing part 16 that performs processing including at least extension/contraction processing of an arbitrary multiplication to the image of the block unit outputted by the block inclination correction part 14; a block writing-out part 18 that sequentially writes the image processed in the extension/contraction filter processing part 16 to the memory 20.SELECTED DRAWING: Figure 1

Description

本発明は画像形成装置に関し、例えば、スキュー補正(傾き補正)及びフィルタ処理等の画像加工機能を有する画像形成装置に適用して好適なものである。   The present invention relates to an image forming apparatus, and is suitable for application to an image forming apparatus having image processing functions such as skew correction (tilt correction) and filter processing.

従来、複写機や複合機等の画像形成装置において、読み取り時に発生した原稿のスキュー(傾き)の解消を目的としてスキュー補正を行う画像形成装置が提案されている(例えば、特許文献1参照)。   Conventionally, in an image forming apparatus such as a copying machine or a multifunction peripheral, an image forming apparatus that performs skew correction for the purpose of eliminating a skew of a document generated at the time of reading has been proposed (for example, see Patent Document 1).

スキュー補正を行う方法としては、画像の一部を矩形に切り出したブロック単位に画像をメモリより読み出してブロック単位の画像をバッファに一時的に保持し、該バッファに保持されたデータを傾きに応じて読み出すことでブロック単位の画像に対して傾きの補正を行い、補正を行った画像をブロック単位にメモリに書き出すことを、書き出す際のブロックの重なりがないように読み込みブロックのサイズを決めて、補正する傾きに応じて読み出しブロックの開始座標を変えながら画像全体にわたって行うことで、傾きを補正した画像を得る方法が知られている。画像形成装置においては、画像全体を保持するメモリを大容量低速メモリで構成し、画像の傾きの補正に使用するバッファを小容量高速メモリで構成することにより、処理にかかる構成コストを抑えながら、高速に傾きの補正を行う。この大容量低速メモリは、例えばDRAM(Dynamic Random Access Memory)等で構成され、コストが安く、シーケンシャルアクセスは高速だがランダムアクセスは低速である。また小容量高速メモリは、例えばSRAM(Static Random Access Memory)等で構成され、コストが高く、シーケンシャルアクセスもランダムアクセスも高速である。以後では、大容量低速メモリをメモリと標記し、小容量高速メモリをバッファと標記する。   As a method of performing the skew correction, the image is read out from the memory in a block unit obtained by cutting out a part of the image into a rectangle, the block unit image is temporarily stored in the buffer, and the data stored in the buffer is changed according to the inclination. By reading out and correcting the inclination of the image in block units, writing the corrected image to the memory in block units, determining the size of the read block so that there is no overlap of blocks at the time of export, There is known a method of obtaining an image with corrected inclination by performing the entire image while changing the start coordinates of the read block in accordance with the inclination to be corrected. In the image forming apparatus, the memory for holding the entire image is configured with a large-capacity low-speed memory, and the buffer used for correcting the tilt of the image is configured with a small-capacity high-speed memory. Corrects tilt at high speed. This large-capacity low-speed memory is composed of, for example, a DRAM (Dynamic Random Access Memory) or the like, and has a low cost, high-speed sequential access but low-speed random access. The small-capacity high-speed memory is composed of, for example, an SRAM (Static Random Access Memory) or the like, and has a high cost, and high-speed sequential access and random access. Hereinafter, the large-capacity low-speed memory is denoted as a memory, and the small-capacity high-speed memory is denoted as a buffer.

画像形成装置の一般的な処理として、読み取り原稿のボケの解消や、読み取り原稿と出力原稿とのスクリーン干渉によるモアレ発生の抑止を目的としたフィルタ処理群がある。また画像形成装置の一般的な処理には、そのような処理の他に、ユーザが指定した倍率への拡大縮小等を目的とした任意倍率の拡縮処理がある。スキュー補正を行う画像形成装置では、読み取った原稿画像に対して、スキュー補正と、モアレ発生の抑止を目的としたフィルタ処理と、任意倍率への拡縮処理との3つの処理が行われるものがある。   As a general process of the image forming apparatus, there is a filter processing group for the purpose of eliminating blur of a read original and suppressing the occurrence of moire due to screen interference between the read original and the output original. In addition to such processing, general processing of the image forming apparatus includes enlargement / reduction processing at an arbitrary magnification for the purpose of enlargement / reduction to a magnification specified by the user. Some image forming apparatuses that perform skew correction perform three processes on a read document image: skew correction, filter processing for the purpose of suppressing the occurrence of moire, and enlargement / reduction processing to an arbitrary magnification. .

特開2005−352703号公報JP 2005-352703 A

このようにスキュー補正を行う画像形成装置では、読み取った原稿の画像に対して、スキュー補正と任意倍率への拡縮処理との処理が行われる場合がある。この場合、画像形成装置は、メモリに書き込まれたスキュー補正後の画像に対して任意倍率への拡縮処理を行うことになる。したがって、メモリに書き込まれたスキュー補正後の画像に対してフィルタ処理を行う処理構成では、スキュー補正にかかわる画像の読み出し書き出しによるメモリアクセスが原稿画像分増えるため、スキュー補正を行わず拡縮タ処理のみを行う場合よりも処理が遅くなるという問題があった。   In such an image forming apparatus that performs skew correction, processing of skew correction and enlargement / reduction processing to an arbitrary magnification may be performed on a read document image. In this case, the image forming apparatus performs an enlargement / reduction process to an arbitrary magnification on the image after skew correction written in the memory. Therefore, in the processing configuration for performing the filter processing on the image after skew correction written in the memory, memory access by reading and writing the image related to the skew correction is increased by the amount of the original image, and therefore only the enlargement / reduction processing without performing the skew correction. There was a problem that the processing was slower than the case of performing.

本発明は以上の点を考慮してなされたもので、処理を高速化し得る画像形成装置を提案しようとするものである。   The present invention has been made in consideration of the above points, and intends to propose an image forming apparatus capable of speeding up the processing.

かかる課題を解決するため本発明の画像形成装置においては、入力画像が記憶されているメモリから補正する傾きに応じて始点座標を変えながら1ページのサイズよりも小さいブロック単位に画像を順次読み出すスキューブロック読み出し部と、スキューブロック読み出し部で順次読み出されたブロック単位の画像各々の傾きを修正し、傾きが修正された画像をブロック単位に出力するブロック傾き修正部と、ブロック傾き修正部が出力するブロック単位の画像に対して少なくとも任意倍率の拡縮処理を含む処理を行う拡縮付フィルタ処理部と、拡縮付フィルタ処理部で処理された画像をメモリに順次書き込むブロック書き出し部とを設けるようにした。   In order to solve such a problem, in the image forming apparatus of the present invention, the skew is sequentially read out in units of blocks smaller than the size of one page while changing the start point coordinates in accordance with the inclination to be corrected from the memory in which the input image is stored. The block reading unit, the block inclination correcting unit that corrects the inclination of each block-by-block image sequentially read by the skew block reading unit, and outputs the corrected image for each block, and the block inclination correcting unit output An enlargement / reduction filter processing unit that performs processing including at least an enlargement / reduction process at an arbitrary magnification and an image writing unit that sequentially writes images processed by the enlargement / reduction filter processing unit to a memory are provided. .

本発明は、フィルタ処理に任意倍率の拡縮処理が含まれている場合でも画像の傾き修正処理とフィルタ処理とをメモリを介さず連結して実行することができ、傾き修正処理とフィルタ処理との間でメモリアクセスを発生させないようにできるため、傾き修正処理を行わずフィルタ処理のみを行う場合よりも処理が遅くなることを抑えることができる。   According to the present invention, even when the scaling process is included in the filter process, the image tilt correction process and the filter process can be executed in a linked manner without using a memory. Therefore, it is possible to prevent the processing from becoming slower than when only the filter processing is performed without performing the inclination correction processing.

本発明によれば、処理を高速化し得る画像形成装置を実現できる。   According to the present invention, an image forming apparatus capable of speeding up the processing can be realized.

画像形成装置の構成を示すブロック図である。1 is a block diagram illustrating a configuration of an image forming apparatus. メモリ上の入力画像及び出力画像を示す図である。It is a figure which shows the input image and output image on memory. スキューブロック読み出し部の動作概略を示す図である。It is a figure which shows the operation | movement outline | summary of a skew block reading part. ブロック傾き修正部の動作概略を示す図である。It is a figure which shows the operation | movement outline | summary of a block inclination correction part. ブロック傾き修正部における座標移動を示す図である。It is a figure which shows the coordinate movement in a block inclination correction part. X方向差分値及びY方向差分値を示す図である。It is a figure which shows a X direction difference value and a Y direction difference value. 拡縮付フィルタ処理部の構成を示す図である。It is a figure which shows the structure of the filter process part with expansion / contraction. 拡縮付フィルタ処理手順を示すフローチャートである。It is a flowchart which shows the filter processing procedure with expansion / contraction. ブロック書き出し部の動作概略を示す図である。It is a figure which shows the operation | movement outline | summary of a block writing part. 拡縮付フィルタ処理部の入出ブロックの座標を示す図である。It is a figure which shows the coordinate of the input / output block of the filter process part with expansion / contraction. フィルタ処理部がない場合の読み出し開始ブロックの決定を示す図である。It is a figure which shows determination of the read start block when there is no filter process part. フィルタ処理部がある場合の読み出し開始ブロックの決定を示す図である。It is a figure which shows determination of the read start block in case there exists a filter process part. 次ブロック始点座標の決定を示す図である。It is a figure which shows determination of the next block starting point coordinate. ブロック傾き修正処理手順(1)を示すフローチャートである。It is a flowchart which shows a block inclination correction process procedure (1). ブロック傾き修正処理手順(2)を示すフローチャートである。It is a flowchart which shows a block inclination correction process procedure (2). ブロック傾き修正処理手順(3)を示すフローチャートである。It is a flowchart which shows a block inclination correction process procedure (3). 他の実施の形態によるブロック傾き修正処理手順を示すフローチャートである。It is a flowchart which shows the block inclination correction process sequence by other embodiment. 他の実施の形態によるstridew算出処理手順を示すフローチャートである。It is a flowchart which shows the stridew calculation process sequence by other embodiment. 他の実施の形態によるstrideh算出処理手順を示すフローチャートである。It is a flowchart which shows the strideh calculation process procedure by other embodiment.

以下、発明を実施するための形態(以下実施の形態とする)について、図面を用いて説明する。   Hereinafter, modes for carrying out the invention (hereinafter referred to as embodiments) will be described with reference to the drawings.

[1.実施の形態]
[1−1.画像形成装置の構成]
図1に示すように画像形成装置10は複写機や複合機等であり、制御部11、スキューブロック読み出し部12、ブロック傾き修正部14、拡縮付フィルタ処理部16、ブロック書き出し部18及びメモリ20により構成される。制御部11は、図示しないCPU(Central Processing Unit)を中心に構成されており、メモリ20から所定のプログラムを読み出して実行することにより、画像形成装置10を統轄制御する。スキューブロック読み出し部12は、メモリ20に置かれた入力画像IMGi(図2)を補正する傾きに応じて始点座標を変えながらブロック単位に読み出し、ブロック単位の画像をブロック傾き修正部14に入力する。
[1. Embodiment]
[1-1. Configuration of image forming apparatus]
As shown in FIG. 1, the image forming apparatus 10 is a copier, a multifunction machine, or the like, and includes a control unit 11, a skew block reading unit 12, a block inclination correcting unit 14, an enlargement / reduction filter processing unit 16, a block writing unit 18, and a memory 20. Consists of. The control unit 11 is configured around a CPU (Central Processing Unit) (not shown), and controls and controls the image forming apparatus 10 by reading and executing a predetermined program from the memory 20. The skew block reading unit 12 reads the input image IMGi (FIG. 2) placed in the memory 20 in units of blocks while changing the start point coordinates in accordance with the inclination to be corrected, and inputs the block unit image to the block inclination correcting unit 14. .

図2(A)は、メモリ20上に置かれた入力画像IMGiの例を示し、クロスハッチングされた領域が原稿を示す原稿領域APであり、傾いた状態の矩形原稿画像である。画像形成装置10は、このような傾いた矩形原稿画像を図2(B)に示すようにそれぞれの辺がX方向又はY方向に沿うように傾きを補正し、出力画像IMGoとして出力する。   FIG. 2A shows an example of an input image IMGi placed on the memory 20, and a cross-hatched area is a document area AP indicating a document, and is a rectangular document image in a tilted state. The image forming apparatus 10 corrects the inclination of the inclined rectangular document image so that each side is along the X direction or the Y direction as shown in FIG. 2B, and outputs the image as an output image IMGo.

図3は、図2の入力画像IMGiを例に、スキューブロック読み出し部12でブロック単位に読み出しを行う様子を示したものである。図3の破線枠のブロックはスキューブロック読み出し部12が読み出すブロック単位の画像に対応する読み出しブロックBLrであり、実線枠のブロックはブロック傾き修正部14が出力する出力ブロックBLo1(図4)単位の画像の領域に対応するブロックである。スキューブロック読み出し部12は、ブロック傾き修正部14に入力するブロック各々に対して外接する矩形の範囲を読み出しブロックBLrのブロック単位に読み出す。またスキューブロック読み出し部12は、各ブロックの読み出し順番として、図の矢印で示すように、原稿領域APの出力左上に対応する読み出しブロックBLrから読み出しを開始し、この読み出しブロックBLrの読み出しが完了したら、この読み出しブロックBLrの出力右方向に対応する読み出しブロックBLrを読み出し、出力右端に対応する読み出しブロックBLrまで順番に読み出す。またスキューブロック読み出し部12は、出力右端に対応する読み出しブロックBLrの読み出しが完了したら、出力の下方向に一段下がり、これらを繰り返し、原稿領域AP全体に対応する画像を読み出しブロックBLr単位に全面読み出す。さらにスキューブロック読み出し部12は、各読み出しブロックBLr内の画素の読み出しもラスタースキャン順に左上の画素から順に読み出す。すなわちスキューブロック読み出し部12は、左上から右方向に順番に読み、端までいったら一段下に下がって、これを繰り返し、読み出しブロックBLrの全画素を読み出す。読み出しブロックBLrのサイズや各読み出しブロックBLrの始点座標の決定方法については後述する。   FIG. 3 shows a state in which the skew block reading unit 12 performs reading in units of blocks, taking the input image IMGi of FIG. 2 as an example. 3 is a read block BLr corresponding to a block unit image read by the skew block reading unit 12, and a solid line frame block is a unit of output block BLo1 (FIG. 4) output by the block inclination correction unit 14. This is a block corresponding to an image area. The skew block reading unit 12 reads a rectangular range circumscribing each block input to the block inclination correcting unit 14 in units of the reading block BLr. Further, the skew block reading unit 12 starts reading from the reading block BLr corresponding to the upper left of the output of the document area AP as indicated by the arrow in the drawing as the reading order of each block, and when the reading of the reading block BLr is completed. The read block BLr corresponding to the output right direction of the read block BLr is read, and the read block BLr corresponding to the output right end is sequentially read. When the reading of the reading block BLr corresponding to the right end of the output is completed, the skew block reading unit 12 descends one step downward in the output, repeats these steps, and reads the entire image corresponding to the entire document area AP in units of the reading block BLr. . Further, the skew block reading unit 12 reads pixels in each reading block BLr in order of raster scanning from the upper left pixel. That is, the skew block reading unit 12 sequentially reads from the upper left to the right, goes down one step when reaching the end, repeats this, and reads all the pixels of the read block BLr. A method for determining the size of the read block BLr and the start point coordinates of each read block BLr will be described later.

ブロック傾き修正部14は、上述のスキューブロック読み出し部12で読み出され入力される読み出しブロックBLr単位の画像各々の傾きを修正し、傾きを修正した画像各々をブロック単位に出力する。   The block inclination correcting unit 14 corrects the inclination of each image in the read block BLr unit read and input by the skew block reading unit 12 and outputs each image in which the inclination is corrected in block units.

図4は、ブロック傾き修正部14で行う傾き修正の概略を示したものである。図4における入力ブロックBLi1は、図3における読み出しブロックBLrに対応している。図4に示すように、入力ブロックBLi1中の実線枠で囲まれた出力領域Aoに対応する画素群から、図4の右図に示すように、傾きを修正したブロックの画像を生成し出力ブロックBLo1として出力する。出力ブロックBLo1の画素の出力順はラスタースキャン順であり、出力ブロックBLo1の出力は左上の画素を始点として順に出力されるため、ブロック傾き修正部14は、図4中の斜線で示すように、補正する傾きと入力ブロックBLi1のX方向(横方向)の幅とに応じたサイズのバッファBfを持つ必要がある。   FIG. 4 shows an outline of the inclination correction performed by the block inclination correction unit 14. The input block BLi1 in FIG. 4 corresponds to the read block BLr in FIG. As shown in FIG. 4, from the pixel group corresponding to the output area Ao surrounded by the solid line frame in the input block BLi1, as shown in the right diagram of FIG. Output as BLo1. Since the output order of the pixels of the output block BLo1 is a raster scan order, and the output of the output block BLo1 is output in order starting from the upper left pixel, the block inclination correction unit 14 is shown by the diagonal lines in FIG. It is necessary to have a buffer Bf having a size corresponding to the inclination to be corrected and the width of the input block BLi1 in the X direction (lateral direction).

このようにブロック傾き修正部14は、補正する傾きが大きいほど大きなサイズのバッファBfが必要になるため、バッファBfのサイズが一定である場合、補正する傾きが大きくなると、入力ブロックBLi1に内接する出力領域Ao、すなわち処理可能な画像のサイズが小さくなる一方、補正する傾きが小さくなると、入力ブロックBLi1に内接する出力領域Ao、すなわち処理可能な画像のサイズが大きくなる。またブロック傾き修正部14のバッファBfのサイズは、補正する傾きが45度より小さい場合において、拡縮付フィルタ処理部16が処理可能な最大幅のブロック単位の画像を出力可能になるように決定される。   As described above, the block inclination correcting unit 14 requires a buffer Bf having a larger size as the inclination to be corrected is larger. Therefore, when the size of the buffer Bf is constant, the block inclination correcting unit 14 is inscribed in the input block BLi1 when the correction inclination is increased. When the size of the output area Ao, that is, the processable image is reduced, and the inclination to be corrected is reduced, the size of the output area Ao that is inscribed in the input block BLi1, that is, the processable image is increased. In addition, the size of the buffer Bf of the block inclination correcting unit 14 is determined so that an image of a block unit of the maximum width that can be processed by the enlargement / reduction filter processing unit 16 can be output when the correction inclination is smaller than 45 degrees. The

ブロック傾き修正部14は、ラスタースキャン順に入力される入力ブロックBLi1の画像をバッファBfに蓄積していき、バッファBfに蓄積した入力ブロックBLi1の画像が出力ブロックBLo1の1ラインに対応する画素を連続して読み出せるだけ蓄積された段階で出力ブロックBLo1の1ラインに対応する画素を修正する傾き方向(図4の左図の矢印方向)に読み出し、出力の1ラインを生成して出力する。ブロック傾き修正部14は、1ラインの出力が終わったら、出力に関与しなくなったバッファBfを未保持の入力画素の蓄積に割り当てると共に、次のラインの出力を行っていき、これを繰り返し行うことで出力ブロックBLo1に対応する全画素を順次生成して出力する。   The block inclination correcting unit 14 accumulates the image of the input block BLi1 input in the raster scan order in the buffer Bf, and the image of the input block BLi1 accumulated in the buffer Bf continuously connects pixels corresponding to one line of the output block BLo1. At the stage where only the data can be read out, the pixel corresponding to one line of the output block BLo1 is read in the tilt direction (arrow direction in the left diagram of FIG. 4), and one output line is generated and output. When the output of one line is completed, the block inclination correcting unit 14 assigns the buffer Bf that is no longer involved in the output to the accumulation of the unretained input pixels, and outputs the next line and repeats this. Thus, all the pixels corresponding to the output block BLo1 are sequentially generated and output.

図5は、傾き方向の読み出しについて、より具体的に説明するための図である。図5に示すように入力の各画素に対応する座標である入力対応座標Ciに対して、出力に対応する各画素の座標である出力対応座標Coは傾いており、ブロック傾き修正部14は、出力する画素を右方向に移動する場合には、図5(A)に示すように現画素Ppの座標のX座標及びY座標に対して△x1及び△y1を加算して次画素Pnの座標を求めることができる。この△x1及び△y1は、出力の横方向に対応する1画素の移動ベクトル△xy1をX方向とY方向とに分解した移動量で、出力する原稿全体の横方向の画素数(以後ではoutw(図2)と標記する)と、図6に示す入力画像IMGi中の、出力画像IMGo(図2(B))に対応する原稿領域APの右上と左上の頂点座標のX方向及びY方向の差分値(それぞれdiwx及びdiwyと以後標記する)をもとに求めることができ、下式のように表現できる。
△x1=diwx/outw
△y1=diwy/outw
ブロック傾き修正部14は、出力する画素を下方向に移動する場合には、図5(B)に示すように現ライン画素Pplの座標のX座標及びY座標に対して△x2及び△y2を加算して次ライン画素Pnlの座標を求めることができる。△x2及び△y2は、出力の縦方向に対応する1画素の移動ベクトル△xy2をX方向とY方向に分解した移動量で、出力する原稿全体の縦方向の画素数(以後ではouth(図2)と標記する)と、図6に示す入力画像IMGi中の、出力画像IMGo(図2(B))に対応する原稿領域APの左下と左上の頂点座標のX方向及びY方向の差分値(以後ではそれぞれdihx及びdihyと標記する)をもとに求めることができ、下式のように表現できる。
△x2=dihx/outh
△y2=dihy/outh
また、△x2及び△y2は、△x1及び△y1と、入力画像IMGiのX方向の解像度とY方向の解像度と(以後では、inxresolとinyresolと標記する)と出力画像IMGoのX方向の解像度とY方向の解像度(以後では、outxresolとoutyresolと標記する)を使って下式のようにも表現できる。
△x2=−△y1×(inxresol/inyresol)/(outyresol/outxresol)
=(−diwy×inxresol/inyresol)/(outw×outyresol/outxresol)
△y2=△x1×(inyresol/inxresol)/(outyresol/outxresol)
=(diwx×inyresol/inxresol)/(outw×outyresol/outxresol)
FIG. 5 is a diagram for more specifically explaining the reading in the tilt direction. As shown in FIG. 5, the output corresponding coordinate Co that is the coordinate of each pixel corresponding to the output is inclined with respect to the input corresponding coordinate Ci that is the coordinate corresponding to each pixel of the input, and the block inclination correcting unit 14 When the pixel to be output is moved rightward, as shown in FIG. 5A, the coordinates of the next pixel Pn are added by adding Δx1 and Δy1 to the X and Y coordinates of the current pixel Pp. Can be requested. Δx1 and Δy1 are amounts of movement obtained by decomposing one-pixel movement vector Δxy1 corresponding to the horizontal direction of the output into the X direction and the Y direction. (Denoted as FIG. 2)) in the X and Y directions of the upper right and upper left vertex coordinates of the document area AP corresponding to the output image IMGo (FIG. 2B) in the input image IMGi shown in FIG. It can be obtained based on the difference values (hereinafter referred to as diwx and diwy, respectively) and can be expressed as the following equation.
Δx1 = diwx / outw
Δy1 = diwy / outw
When moving the output pixel downward, the block inclination correcting unit 14 sets Δx2 and Δy2 with respect to the X coordinate and the Y coordinate of the current line pixel Ppl as shown in FIG. 5B. The coordinates of the next line pixel Pnl can be obtained by addition. .DELTA.x2 and .DELTA.y2 are movement amounts obtained by decomposing one-pixel movement vector .DELTA.xy2 corresponding to the vertical direction of the output in the X direction and Y direction, and the number of pixels in the vertical direction of the entire document to be output (hereinafter referred to as outh (FIG. 2), and difference values in the X direction and Y direction of the vertex coordinates of the lower left and upper left of the document area AP corresponding to the output image IMGo (FIG. 2B) in the input image IMGi shown in FIG. (Hereinafter referred to as “dihx” and “dihy”, respectively), and can be expressed as the following equation.
Δx2 = dihx / outh
Δy2 = dihy / outh
Δx2 and Δy2 are Δx1 and Δy1, the resolution in the X direction and the resolution in the Y direction of the input image IMGi (hereinafter referred to as inxresol and inyresol), and the resolution in the X direction of the output image IMGo. And the resolution in the Y direction (hereinafter referred to as outxresol and outyresol) can also be expressed as the following equation.
Δx2 = −Δy1 × (inxresol / inyresol) / (outyresol / outxresol)
= (-Diwy * inxresol / inyresol) / (outw * outyresol / outxresol)
Δy2 = Δx1 × (inresol / inxresol) / (outyresol / outxresol)
= (Diwx x inyresol / inxresol) / (outw x outyresol / outxresol)

入力解像度や出力解像度が逓倍関係になっていれば最小の解像度を使って、上式の分母及び分子の規格化を行うことができる。例えば、入力画像IMGiのX方向解像度が600、Y方向解像度が600、出力画像IMGoのX方向解像度が600、Y方向解像度が600であれば上式は下式(1)のように規格化でき、入力画像IMGiのX方向解像度が300、Y方向解像度が600、出力画像IMGoのX方向解像度が600、Y方向解像度が600であれば、上式は下式(2)のように規格化できる。   If the input resolution and output resolution are in a multiplying relationship, the denominator and numerator of the above equation can be normalized using the minimum resolution. For example, if the X-direction resolution of the input image IMGi is 600, the Y-direction resolution is 600, the X-direction resolution of the output image IMGo is 600, and the Y-direction resolution is 600, the above equation can be normalized as the following equation (1) If the input image IMGi has an X-direction resolution of 300, a Y-direction resolution of 600, and the output image IMGo has an X-direction resolution of 600 and a Y-direction resolution of 600, the above equation can be normalized as the following equation (2): .

式(1)
△x1=diwx/outw
△y1=diwy/outw
△x2=−diwy/outw
△y2=diwx/outw
式(2)
△x1=(diwx×2)/(outw×2)
△y1=(diwy×2)/(outw×2)
△x2=−diwy/(outw×2)
△y2=(diwx×4)/(outw×2)
Formula (1)
Δx1 = diwx / outw
Δy1 = diwy / outw
Δx2 = −diwy / outw
Δy2 = diwx / outw
Formula (2)
Δx1 = (diwx × 2) / (outw × 2)
Δy1 = (diwy × 2) / (outw × 2)
Δx2 = −diwy / (outw × 2)
Δy2 = (diwx × 4) / (outw × 2)

上式のようにすることで、入力画像IMGi上の座標のX方向座標及びY方向座標の小数点に該当する値(式の分母の値)と、出力の横移動及び縦移動それぞれのX方向及びY方向の移動量の分母の値とについて、X方向及びY方向それぞれ共通化できる。なお、上式の分子及び分母の値について、以降の説明を簡単にするため、△x1、△y1、△x2及び△y2の分子に該当する値をそれぞれvx1、vy1、vx2及びvy2と以後は標記し、△x1及び△x2の共通の分母をxvbase、△y1及び△y2の共通の分母をyvbaseと以後では標記する。   By using the above equation, the values corresponding to the decimal point of the X-direction coordinate and the Y-direction coordinate of the coordinate on the input image IMGi (the value of the denominator of the equation), the X direction of each of the horizontal movement and the vertical movement of the output, and The denominator value of the movement amount in the Y direction can be shared by the X direction and the Y direction. In addition, in order to simplify the following explanation about the value of the numerator and denominator of the above formula, the values corresponding to the numerators of Δx1, Δy1, Δx2, and Δy2 are vx1, vy1, vx2, and vy2, respectively. The common denominator of Δx1 and Δx2 is denoted as xvbase, and the common denominator of Δy1 and Δy2 is denoted as yvbase.

以上説明した△x1、△y1、△x2及び△y2を使用して、ブロック傾き修正部14は、各入力ブロックBLi1において、各入力ブロックBLi1の出力の始点に対応する座標から、出力の1画素に対応する読み出し座標をラスタースキャン順に順次決定し、予め決められた出力ブロックBLo1のサイズ分の画素を生成し出力する。なお、出力ブロックBLo1のサイズや各出力ブロックBLo1の出力始点座標Cosに対応する入力ブロックBLi1の出力始点対応座標Ccos、具備するバッファBfのサイズの決め方、画素生成についてのより詳細な説明については後述する。   Using the above-described Δx1, Δy1, Δx2, and Δy2, the block inclination correcting unit 14 outputs one pixel from the coordinates corresponding to the output start point of each input block BLi1 in each input block BLi1. Are sequentially determined in the raster scan order, and pixels corresponding to the size of the predetermined output block BLo1 are generated and output. Note that the size of the output block BLo1, the output start point corresponding coordinate Ccos of the input block BLi1 corresponding to the output start point coordinate Cos of each output block BLo1, the method of determining the size of the buffer Bf provided, and more detailed description of pixel generation will be described later. To do.

[1−2.拡縮付フィルタ処理部の構成]
拡縮付フィルタ処理部16は、前段のブロック傾き修正部14から入力された入力ブロックBLi2単位の画像に対して、少なくとも周辺の画素参照が必要な処理と、任意倍率の拡縮処理とを含む処理とを行い、図7に示すように出力ブロックBLo2として出力する。例えば、複写機や複合機等であれば、読み取り原稿のボケの解消や、読み取り原稿と出力原稿のスクリーン干渉によるモアレ発生の抑止や、ユーザ指定倍率への画像変換を目的とした任意倍率の拡縮処理を含むフィルタ処理が行われる。図7(A)は、任意倍率の拡縮処理を含む種々のフィルタ処理の構成例を示すものであり、拡縮付フィルタ処理部16は、文字部と文字以外の判定を画素毎に行う像域分離フィルタ30と、像域分離フィルタ30で文字以外と判定された画素に対して平滑化を行う平滑化フィルタ32と、任意倍率の拡縮処理を行うブロック拡大縮小部40と、像域分離フィルタ30で文字と判定された画素に対して強調を行う強調フィルタ34とで構成される。像域分離フィルタ30及び平滑化フィルタ32は、入力画像中の特定のパターンの検出や平滑化を行うものであり、ある解像度の入力画像を前提とした処理であるため、任意倍率の拡縮処理を行う前に処理を行う必要がある。各フィルタとも注目する1画素を処理するために、周辺の画素参照が必要であり、平滑化フィルタ32を例に挙げると、注目する1画素の処理に注目画素を含む周辺9×9の画素の平均値を算出し、この平均値を注目画素の出力画素値として出力を行うことを入力される各画素に対して行っていく。周辺画素参照が必要なフィルタ処理は、1ページのライン単位で処理を行うと前後の画素を保持するためのラインバッファLBfが大きくなってしまうため、拡縮付フィルタ処理部16は、1ページを幅方向(X方向)に分割した入力ブロックBLi2単位分のラインバッファLBfのみを有する構成とすることにより、ラインバッファLBfのサイズを小さくでき、フィルタを構成するためのコストを抑えることができる。このような処理を行う場合、出力ブロックBLo1(図4)に対応した入力ブロックBLi2(図7)の境界付近の画素については、参照する画素が境界外となり、無効な画素出力となる。したがって拡縮付フィルタ処理部16は、無効となる画素分大きなサイズの入力ブロックBLi2を予め入力し、各フィルタ処理や全フィルタ処理後の画素から無効な画素を削除して有効な画素のみを得る必要がある。例えば、図7の拡縮付フィルタ処理部16の例では、14画素幅(像域分離フィルタ5画素+平滑化フィルタ4画素+強調フィルタ5画素)の無効な画素が上下左右の入力ブロックBLi2境界に発生するため、14画素幅分大きなサイズの入力ブロックBLi2を予め拡縮付フィルタ処理部16に入力する必要がある。また、入力される入力ブロックBLi2に対して無効な画素の割合が大きくなると読み出しのオーバーヘッドが増えるため、拡縮付フィルタ処理部16が有するラインバッファLBfはオーバーヘッドが少なくなるように、かつ、大きくなりすぎないように決める必要がある。本実施の形態においては、縦横の出力サイズが同じ場合にオーバーヘッドが10%程度となるよう、拡縮付フィルタ処理部16のラインバッファLBfの幅を284(有効出力幅は256)と定めた場合を仮定して以後の説明を行う。オーバーヘッドとは、無効となる画素分だけ余分に読み出しが必要になる画素数であり、この場合のオーバーヘッドは284×284−256×256により求められる。
[1-2. Configuration of filter processing unit with scaling]
The enlargement / reduction filter processing unit 16 includes a process that requires at least peripheral pixel reference for the input block BLi2 unit image input from the preceding block inclination correction unit 14, and a process including an enlargement / reduction process at an arbitrary magnification. And output as an output block BLo2 as shown in FIG. For example, in the case of a copying machine or a multi-function peripheral, the scale of an arbitrary magnification is reduced for the purpose of eliminating blurring of a scanned document, suppressing moiré due to screen interference between a scanned document and an output document, or converting an image to a user-specified magnification. Filter processing including processing is performed. FIG. 7A shows a configuration example of various filter processes including an enlargement / reduction process at an arbitrary magnification. The enlargement / reduction filter process unit 16 performs image area separation in which a determination is made for each character other than a character part and a character. The filter 30, the smoothing filter 32 that performs smoothing on pixels determined to be other than characters by the image area separation filter 30, the block enlargement / reduction unit 40 that performs enlargement / reduction processing at an arbitrary magnification, and the image area separation filter 30 The emphasis filter 34 is used to emphasize the pixels determined to be characters. The image area separation filter 30 and the smoothing filter 32 detect and smooth a specific pattern in the input image. Since the processing is based on an input image having a certain resolution, an enlargement / reduction process at an arbitrary magnification is performed. You need to do some processing before you do it. In order to process one pixel of interest for each filter, peripheral pixel reference is necessary. Taking the smoothing filter 32 as an example, processing of one pixel of interest includes 9 × 9 pixels in the vicinity including the pixel of interest. An average value is calculated, and the output of the average value as the output pixel value of the target pixel is performed for each input pixel. In the filter processing that requires peripheral pixel reference, the line buffer LBf for holding the preceding and succeeding pixels becomes large when processing is performed in units of lines of one page. By adopting a configuration having only the line buffer LBf for the input block BLi2 divided in the direction (X direction), the size of the line buffer LBf can be reduced, and the cost for configuring the filter can be suppressed. When such processing is performed, for the pixels in the vicinity of the boundary of the input block BLi2 (FIG. 7) corresponding to the output block BLo1 (FIG. 4), the pixel to be referenced is out of the boundary, resulting in an invalid pixel output. Therefore, the enlargement / reduction filter processing unit 16 needs to input in advance an input block BLi2 that is large in size corresponding to invalid pixels, and delete invalid pixels from the pixels after each filter process or all filter processes to obtain only valid pixels. There is. For example, in the example of the enlargement / reduction filter processing unit 16 in FIG. 7, invalid pixels having a width of 14 pixels (image region separation filter 5 pixels + smoothing filter 4 pixels + enhancement filter 5 pixels) are input to the boundary of the upper, lower, left, and right input blocks BLi2. Therefore, it is necessary to input the input block BLi2 having a size larger by 14 pixel widths to the enlargement / reduction filter processing unit 16 in advance. Further, since the overhead of reading increases when the proportion of invalid pixels with respect to the input block BLi2 to be input increases, the line buffer LBf included in the enlargement / reduction filter processing unit 16 becomes too small so that the overhead is reduced. It is necessary to decide not to. In the present embodiment, the case where the width of the line buffer LBf of the enlargement / reduction filter processing unit 16 is defined as 284 (the effective output width is 256) so that the overhead is about 10% when the vertical and horizontal output sizes are the same. The following explanation will be made on the assumption. The overhead is the number of pixels that need to be read out by an amount corresponding to invalid pixels, and the overhead in this case is obtained by 284 × 284−256 × 256.

ブロック拡大縮小部40は、ブロック単位に入力される画像に対して指定されたサイズに拡縮処理を行う。ブロック拡大縮小部40は、X方向の拡大縮小を行うX方向拡大縮小部42とY方向の拡大縮小を行うY方向拡大縮小部44とで構成され、入力されたブロック画像に対して最初にX方向の拡大縮小を行い、次にY方向の拡大縮小を行う。   The block enlargement / reduction unit 40 performs enlargement / reduction processing on a specified size for an image input in units of blocks. The block enlargement / reduction unit 40 includes an X-direction enlargement / reduction unit 42 that performs enlargement / reduction in the X direction and a Y-direction enlargement / reduction unit 44 that performs enlargement / reduction in the Y direction. The direction is enlarged and reduced, and then the Y direction is enlarged and reduced.

X方向拡大縮小部42は、X方向拡大縮小カウンタとX方向出力カウンタとを有し、X方向拡大縮小カウンタをライン先頭(ブロック画像のライン先頭)でブロック毎に予め決定されたカウンタ初期値に設定し、入力されたブロック画像をX方向拡大縮小カウンタにしたがって拡大縮小すると共に、X方向の出力画素数をX方向出力カウンタでカウントし、X方向出力カウンタが予め決定された所定の値の範囲内の画素のみを出力することで、入力されたブロック画像をX方向に拡大縮小し、X方向に拡大縮小されたブロック画像をY方向拡大縮小部44に入力する。   The X-direction enlargement / reduction unit 42 includes an X-direction enlargement / reduction counter and an X-direction output counter. The X-direction enlargement / reduction counter is set to a counter initial value determined in advance for each block at the head of the line (line head of the block image). The set block image is enlarged / reduced according to the X direction enlargement / reduction counter, the number of output pixels in the X direction is counted by the X direction output counter, and the X direction output counter is within a predetermined range of a predetermined value. By outputting only the pixels, the inputted block image is enlarged / reduced in the X direction, and the block image enlarged / reduced in the X direction is inputted to the Y direction enlargement / reduction unit 44.

Y方向拡大縮小部44は、X方向拡大縮小部42と同様に、Y方向拡大縮小カウンタとY方向出力カウンタとを有し、Y方向拡大縮小カウンタを先頭ライン(ブロック画像の先頭ライン)でブロック毎に予め決定されたカウンタ初期値に設定し、入力されたブロック画像をY方向拡大縮小カウンタにしたがって拡大縮小すると共に、Y方向の出力ライン数をY方向出力カウンタでカウントし、Y方向出力カウンタが予め決定された所定の値の範囲内のラインのみを出力することで、入力されたブロック画像をY方向に拡大縮小し出力する。またY方向拡大縮小部44は、単純縮小以外の拡大縮小方法(例えば、補間拡大・縮小法)を行う場合には、ラインメモリを複数有する必要がある。   Similar to the X direction enlargement / reduction unit 42, the Y direction enlargement / reduction unit 44 includes a Y direction enlargement / reduction counter and a Y direction output counter, and blocks the Y direction enlargement / reduction counter at the first line (first line of the block image). A counter initial value determined in advance is set every time, and the input block image is enlarged / reduced according to the Y-direction enlargement / reduction counter, and the number of output lines in the Y-direction is counted by the Y-direction output counter. Output only the lines within a predetermined value range, so that the input block image is enlarged / reduced in the Y direction and output. The Y-direction enlargement / reduction unit 44 needs to have a plurality of line memories when performing an enlargement / reduction method other than simple reduction (for example, interpolation enlargement / reduction method).

[1−3.拡縮付フィルタ処理手順]
拡縮付フィルタ処理部16におけるX方向及びY方向の拡大縮小処理の詳細について、X方向拡大縮小部42で1ライン分のブロック画像入力に対して行われる処理を例に図8に示すフローチャートにしたがって説明する。
[1-3. Scaled filter processing procedure]
The details of the enlargement / reduction processing in the X direction and the Y direction in the enlargement / reduction filter processing unit 16 will be described with reference to the flowchart shown in FIG. explain.

ステップSP301においてX方向拡大縮小部42は、ライン先頭で出力カウンタ(rxocnt)に0を、拡大縮小カウンタ(rxcnt)に、ブロック画像毎の拡大縮小カウンタの初期値(rxcnt0)を設定し、ステップSP302へ進む。   In step SP301, the X-direction enlargement / reduction unit 42 sets 0 in the output counter (rxocnt) at the head of the line, and sets the initial value (rxcnt0) of the enlargement / reduction counter for each block image in the enlargement / reduction counter (rxcnt). Proceed to

ステップSP302においてX方向拡大縮小部42は、拡大縮小カウンタ(rxcnt)の値が、拡大・縮小の倍率の分子の値(rxratio)より小さいか判定を行い、小さければステップSP303へ進み画素の出力を行い、それ以外の場合は画素の出力を行わずにステップSP305へ進む。 ステップSP303においてX方向拡大縮小部42は、画素の出力を行って出力カウンタ(rxocnt)に1を加算しさらに拡大縮小カウンタ(rxcnt)に拡大・縮小の倍率の分母の値(rxbase)を加算しステップSP304へ進む。ここで出力画素値は、例えば、補間拡大・縮小法であれば、下式のように決定される。   In step SP302, the X-direction enlargement / reduction unit 42 determines whether the value of the enlargement / reduction counter (rxcnt) is smaller than the numerator value (rxratio) of the enlargement / reduction magnification. If it is smaller, the process proceeds to step SP303 and outputs the pixel. Otherwise, the process proceeds to step SP305 without outputting the pixel. In step SP303, the X-direction enlargement / reduction unit 42 outputs the pixel, adds 1 to the output counter (rxocnt), and further adds the denominator value (rxbase) of the enlargement / reduction magnification to the enlargement / reduction counter (rxcnt). Proceed to step SP304. Here, the output pixel value is determined by the following equation, for example, in the case of the interpolation enlargement / reduction method.

(出力画素値)=((現画素の値)×((倍率の分子の値)−(拡大・縮小カウンタの値))+(次画素の値)×(拡大・縮小カウンタの値))/(倍率の分子の値)   (Output pixel value) = ((Current pixel value) × ((Magnification numerator value) − (Enlargement / reduction counter value)) + (Next pixel value) × (Enlargement / reduction counter value)) / (Molecular value of magnification)

ステップSP304においてX方向拡大縮小部42は、ステップSP303で更新された拡大縮小カウンタ(rxcnt)の値が拡大・縮小の倍率の分子の値(rxratio)以上であるか判定を行い、以上であればステップSP305へ進み入力画素位置の更新を行い、それ以外の場合はステップSP306へ進む。   In step SP304, the X-direction enlargement / reduction unit 42 determines whether the value of the enlargement / reduction counter (rxcnt) updated in step SP303 is equal to or larger than the numerator value (rxratio) of the enlargement / reduction magnification. The process proceeds to step SP305, where the input pixel position is updated. Otherwise, the process proceeds to step SP306.

ステップSP305においてX方向拡大縮小部42は、拡大縮小カウンタ(rxcnt)の値から拡大・縮小の倍率の分子の値(rxratio)を減算し、入力画素位置を更新し(現画素の右隣りの画素を次の現画素とする)、ステップSP306へ進む。 ステップSP306においてX方向拡大縮小部42は、出力カウンタ(rxocnt)の値が1ラインの出力画素数(rxoutw)に達したか判定を行い、達した場合は1ラインの処理を終了し次の入力画素ラインの処理を行い、達していない場合はステップSP302へ戻る。X方向拡大縮小部42は、以上の処理を全てのブロック画像の画素に対して行うことでX方向に拡大縮小を行う。   In step SP305, the X-direction enlargement / reduction unit 42 subtracts the numerator value (rxratio) of the enlargement / reduction magnification from the value of the enlargement / reduction counter (rxcnt), and updates the input pixel position (the pixel immediately to the right of the current pixel). To the next current pixel), the process proceeds to step SP306. In step SP306, the X-direction enlargement / reduction unit 42 determines whether or not the value of the output counter (rxocnt) has reached the number of output pixels (rxoutw) of one line. The pixel line is processed, and if not reached, the process returns to step SP302. The X-direction enlargement / reduction unit 42 performs enlargement / reduction in the X direction by performing the above processing on all the pixels of the block image.

ブロック書き出し部18は、前段の拡縮付フィルタ処理部16で処理された画像を図9に示す書き出しブロックBLw単位でメモリ20に書き出す。ここでの各書き出しブロックBLwの入力順番は、上述したように、左上の書き出しブロックBLwからラスタースキャン順に入力され、書き出しブロックBLw内の画素入力についてもラスタースキャン順に入力される。出力の原稿領域外(出力画像IMGo外)の画素が入力ブロックに含まれる場合には、ブロック書き出し部18は、原稿領域外の画素以外の画像のみメモリ20に書き出す(すなわち図9中のクロスハッチングされた原稿領域内の画素のみメモリ20に書き込む)ようにしながら、全ブロックをメモリ20に書き込むことにより、原稿全体の画像を得る。   The block writing unit 18 writes the image processed by the pre-enlargement / reduction filter processing unit 16 to the memory 20 in units of writing blocks BLw shown in FIG. As described above, the input order of each writing block BLw is input from the upper left writing block BLw in the raster scan order, and the pixel inputs in the writing block BLw are also input in the raster scan order. When pixels outside the output document area (outside the output image IMGo) are included in the input block, the block writing unit 18 writes only an image other than the pixels outside the document area to the memory 20 (that is, cross-hatching in FIG. 9). All pixels are written in the memory 20 while only the pixels in the original area are written into the memory 20, thereby obtaining an image of the entire original.

[1−4.パラメータの算出方法]
以下では、画像形成装置10の動作に必要なパラメータの算出方法等について説明する。図10は、拡縮付フィルタ処理部16へ入力される各ブロック画像と拡縮付フィルタ処理部16が出力する各ブロック画像の始点座標について説明する図である。図の斜線の四角枠が拡縮付フィルタ処理部16の出力する出力ブロックBLo2のブロック画像に対応し、出力ブロックBLo2のブロック画像の幅と高さとをそれぞれfoutbwとfoutbhと定義する。最初に出力される出力ブロックBLo2の始点座標である出力ブロック始点座標CBLosのX座標及びY座標を各々0とすると、右に隣接する出力ブロックBLo2(図示せず)の始点座標である次出力ブロック始点座標CBLonsは、拡縮付フィルタ処理部16の出力するブロック画像の幅(foutbw)分ずらした座標となり、下に隣接する出力ブロックBLo2(図示せず)の始点座標である次段出力ブロック始点座標CBLoncsは、拡縮付フィルタ処理部16の出力するブロック画像の高さ(foutbh)分ずらした座標となり、拡縮付フィルタ処理部16の出力するブロック画像の幅及び高さ(foutbw及びfoutbh)は一定の値であるため、拡縮付フィルタ処理部16は、各方向の以降の出力ブロックの始点座標も、出力するブロック画像の幅と高さとを単純に加算していくことで求めることができる。
[1-4. Parameter calculation method]
Hereinafter, a method for calculating parameters necessary for the operation of the image forming apparatus 10 will be described. FIG. 10 is a diagram illustrating the block image input to the enlargement / reduction filter processing unit 16 and the start point coordinates of each block image output from the enlargement / reduction filter processing unit 16. The hatched rectangular frame in the figure corresponds to the block image of the output block BLo2 output from the enlargement / reduction filter processing unit 16, and the width and height of the block image of the output block BLo2 are defined as foutbw and foutbh, respectively. When the X coordinate and Y coordinate of the output block start point coordinate CBLos that is the start point coordinate of the output block BLo2 that is output first are each 0, the next output block that is the start point coordinate of the output block BLo2 (not shown) adjacent to the right The start point coordinates CBLons are coordinates shifted by the width (foutbw) of the block image output by the enlargement / reduction filter processing unit 16, and the next stage output block start point coordinates which are the start point coordinates of the output block BLo2 (not shown) adjacent thereto below CBLoncs are coordinates shifted by the height (foutbh) of the block image output from the enlargement / reduction filter processing unit 16, and the width and height (foutbw and foutbh) of the block image output from the enlargement / reduction filter processing unit 16 are constant. Since it is a value, the enlargement / reduction filter processing unit 16 starts the subsequent output block in each direction. Coordinates can also be obtained by going to simply adding the width and height of the output block image.

拡縮付フィルタ処理部16へ入力される入力ブロックBLi2は、拡縮付フィルタ処理部16内の各フィルタ処理により発生する無効画素分大きいブロックサイズを入力する必要があり、その分入力ブロックBLi2の始点座標である入力ブロック始点座標CBLis(fxtop及びfytop)は出力ブロック始点座標CBLosよりずれた位置となる。拡縮付フィルタ処理部16は、入力ブロック始点座標CBLisを求めるには、ブロック拡大縮小部40に入力されるブロックである拡縮部入力ブロックBLi3の入力始点座標である拡縮部入力始点座標Cis(rxtop及びrytop)を最初に求める必要がある。拡縮部入力始点座標Cisは、各方向の任意倍率の拡大・縮小の倍率の分母と分子の値(rxbase、rybase、rxratio及びryratio)とブロック拡大縮小部40の後段のフィルタ処理(強調フィルタ34)で発生する無効画素の幅(obnw2及びobnh2)を使って、下式のように計算できる。   The input block BLi2 input to the enlargement / reduction filter processing unit 16 needs to input a block size that is larger by an invalid pixel generated by each filter processing in the enlargement / reduction filter processing unit 16, and the start point coordinates of the input block BLi2 accordingly. The input block start point coordinates CBLis (fxtop and fytop) are shifted from the output block start point coordinates CBLos. In order to obtain the input block start point coordinate CBLis, the enlargement / reduction filter processing unit 16 obtains the enlargement / reduction unit input start point coordinate Cis (rxtop and rytop) needs to be determined first. The enlargement / reduction unit input start point coordinates Cis are the denominator and numerator values (rxbase, rybase, rxratio, and ryratio) of the enlargement / reduction factor of arbitrary magnification in each direction, and the filter processing (enhancement filter 34) subsequent to the block enlargement / reduction unit 40 Can be calculated using the widths of invalid pixels (obnw2 and obsnh2) generated in the following equation.

式(10)
rxtop=floor[−(obnw2×rxbase)/rxratio]
rytop=floor[−(obnh2×rybase)/ryratio]
Formula (10)
rxtop = floor [− (obnw2 × rxbase) / rxratio]
rytop = floor [− (obnh2 × rybase) / ryratio]

上式のrxtopとrytopとブロック拡大縮小部40の前段のフィルタ処理(像域分離フィルタ30及び平滑化フィルタ32)で発生する無効画素の幅(obnw1及びobnh1)とを使って、ページ最初に処理される拡縮付フィルタ処理部16への入力ブロックBLi2の始点座標(入力ブロック始点座標CBLis)は下式で求められる。   Using the above-mentioned rxtop and rytop and the width of invalid pixels (obnw1 and obnh1) generated in the previous stage filter processing (image area separation filter 30 and smoothing filter 32) of the block enlargement / reduction unit 40, processing is performed at the beginning of the page. The starting point coordinate (input block starting point coordinate CBLis) of the input block BLi2 to the enlargement / reduction filter processing unit 16 is obtained by the following equation.

式(11)
fxtop=rxtop−obnw1
fytop=rytop−obnh1
Formula (11)
fxtop = rxtop-obnw1
fytop = rytop-obnh1

次に、拡縮付フィルタ処理部16の入力ブロックBLi1について、次ブロック(右方向のブロック)の始点座標である次入力ブロック始点座標CBLinsと次段ブロック(下方向のブロック)の始点座標である次段入力ブロック始点座標CBLincsとの算出方法について説明する。   Next, for the input block BLi1 of the enlargement / reduction filter processing unit 16, the next input block start point coordinate CBLins which is the start point coordinate of the next block (rightward block) and the next coordinate which is the start point coordinate of the next block (downward block). A method for calculating the stage input block start point coordinates CBLincs will be described.

出力ブロックBLo1の始点座標は、上述した通りX方向についてはfoutbw、Y方向についてはfoutbhずつ単純に増加させることで求めることができ、これに応じて入力側の各入力ブロックBLi1の始点座標も移動させることで求めることができる。但し、入力側の座標値はブロック拡大縮小部40での任意倍率の拡縮前の座標値に換算する必要があるので、ブロック間で継ぎ目なく処理するには小数点以下の座標値についても考慮して求める必要がある。この少数点以下の座標値は、上述した拡縮付フィルタ処理手順(図8)の拡大縮小カウンタ初期値であるrxcnt0及びrycnt0に対応し、拡大縮小カウンタ初期値についてページ最初のブロックの値は下式で求めることができる。   As described above, the start point coordinates of the output block BLo1 can be obtained by simply increasing foutbw in the X direction and foutbh in the Y direction, and the start point coordinates of each input block BLi1 on the input side are moved accordingly. It can be obtained by doing. However, since the coordinate value on the input side needs to be converted into the coordinate value before scaling at an arbitrary magnification in the block scaling unit 40, in order to process seamlessly between blocks, the coordinate value after the decimal point is also considered. Need to ask. The coordinate values below this decimal point correspond to the scaling counter initial values rxcnt0 and rycnt0 in the above-described scaling processing with the filtering process (FIG. 8). Can be obtained.

式(12)
rxcnt0=(rxratio−(obnw2×rxbase)%rxratio)%rxratio
rycnt0=(ryratio−(obnh2×rybase)%ryratio)%ryratio
Formula (12)
rxcnt0 = (rxratio− (obnw2 × rxbase)% rxratio)% rxratio
rycnt0 = (ryratio− (obnh2 × rybase)% ryratio)% ryratio

次ブロック(右方向のブロック)のX方向の拡大縮小カウンタ初期値と、次段ブロック(下方向のブロック)のY方向の拡大縮小カウンタ初期値は、それぞれ左と上に位置する入力ブロックBLi1で使用されるカウンタ初期値を使って下式で求めることができる。   The initial value of the enlargement / reduction counter in the X direction of the next block (right block) and the initial value of the enlargement / reduction counter in the Y direction of the next block (downward block) are the input block BLi1 positioned on the left and upper, respectively. Using the counter initial value used, it can be obtained by the following formula.

式(13)
rxcnt0’(次ブロックのX方向の拡大縮小カウンタ初期値)
=(foutbw×rxbase+rxcnt0)%rxratio
rycnt0’(次段ブロックのY方向の拡大縮小カウンタ初期値)
=(foutbh×rybase+rycnt0)%ryratio
Formula (13)
rxcnt0 ′ (initial value of enlargement / reduction counter in the X direction of the next block)
= (Foutbw × rxbase + rxcnt0)% rxratio
rycnt0 ′ (initial value of the enlargement / reduction counter in the Y direction of the next block)
= (Foutbh × rybase + rycnt0)% ryatio

また、ブロック拡大縮小部40の拡縮部入力ブロックBLi3の、次ブロックのX方向座標位置である拡縮部次ブロック入力始点座標Cinsと、次段ブロックのY方向座標位置である拡縮部次段ブロック入力始点座標Cincsとは、それぞれ左と上に位置する入力ブロックBLi1で使用されるカウンタ初期値を使って下式のようになる。   In addition, the enlargement / reduction unit next block input start point coordinate Cins which is the X-direction coordinate position of the next block and the enlargement / reduction unit next-stage block input which is the Y-direction coordinate position of the next block of the enlargement / reduction unit input block BLi3 of the block enlargement / reduction unit 40 The starting point coordinates Cincs is expressed by the following equation using the initial counter values used in the input block BLi1 positioned on the left and on the upper side, respectively.

式(14)
rxtop’(次ブロックのX方向座標位置)=rxtop
+floor[(foutbw×rxbase+rxcnt0)/rxratio]
rytop’(次段ブロックのY方向座標位置)=rytop
+floor[(foutbh×rybase+rycnt0)/ryratio]
Formula (14)
rxtop '(X-direction coordinate position of the next block) = rxtop
+ Floor [(foutbw × rxbase + rxcnt0) / rxratio]
rytop '(Y-direction coordinate position of the next block) = rytop
+ Floor [(foutbh × rybase + rycnt0) / ryratio]

上式の右辺の右項が入力側でのブロックの始点の座標の移動量となり、拡縮付フィルタ処理部16の入力ブロックBLi1の次ブロックのX方向座標位置と、次段ブロックのY方向座標位置とについても、上式と同様に下式で求めることができる。   The right term on the right side of the above expression is the amount of movement of the coordinates of the start point of the block on the input side, and the X-direction coordinate position of the next block of the input block BLi1 of the enlargement / reduction filter processing unit 16 and the Y-direction coordinate position of the next-stage block As for the above, it can be obtained by the following equation similarly to the above equation.

式(15)
fxtop’(次ブロックのX方向座標位置)=fxtop
+floor[(foutbw×rxbase+rxcnt0)/rxratio]
fytop’(次段ブロックのY方向座標位置)=fytop
+floor[(foutbh×rybase+rycnt0)/ryratio]
Formula (15)
fxtop ′ (X coordinate position of the next block) = fxtop
+ Floor [(foutbw × rxbase + rxcnt0) / rxratio]
fytop '(the Y-direction coordinate position of the next block) = fytop
+ Floor [(foutbh × rybase + rycnt0) / ryratio]

[1−5.スキューブロック読み出し部及びブロック傾き修正部の動作]
次に、スキューブロック読み出し部12とブロック傾き修正部14の動作について説明する。スキューブロック読み出し部12とブロック傾き修正部14とは、後段で任意倍率の拡縮処理が入るため、動作に必要な各パラメータ値を求める際に考慮する必要がある。
[1-5. Operation of skew block reading unit and block inclination correcting unit]
Next, operations of the skew block reading unit 12 and the block inclination correcting unit 14 will be described. Since the skew block reading unit 12 and the block inclination correcting unit 14 perform an enlargement / reduction process at an arbitrary magnification at a later stage, it is necessary to consider when obtaining each parameter value necessary for the operation.

図11及び図12は、スキューブロック読み出し部12で最初に読み出すブロックである読み出し開始ブロックの詳細を説明するものである。図11は、拡縮付フィルタ処理部16がない場合の読み出しブロックBLrを説明するもので、図12は、拡縮付フィルタ処理部16がある場合の読み出しブロックBLrを説明するものである。本実施の形態では、拡縮付フィルタ処理部16がある構成を実施の形態としているが、説明を明確にするために、先に拡縮付フィルタ処理部16がない構成について図11(A)及び図11(B)を用いて説明する。   FIG. 11 and FIG. 12 explain details of a read start block which is a block that is first read by the skew block reading unit 12. FIG. 11 illustrates the read block BLr when the enlargement / reduction filter processing unit 16 is not provided, and FIG. 12 illustrates the read block BLr when the enlargement / reduction filter processing unit 16 is provided. In the present embodiment, the configuration with the enlargement / reduction filter processing unit 16 is used as the embodiment. However, for the sake of clarity, the configuration without the enlargement / reduction filter processing unit 16 is shown in FIG. 11 (B).

図11中に実線で示す枠が後段のブロック傾き修正部14の出力に対応する領域である出力領域Aoであり、上述した通りこの出力領域Aoに外接する図11中に破線で示す矩形の枠を読み出しブロックBLrとして設定し、スキューブロック読み出し部12は読み出しを行う。読み出しブロックBLrの始点座標であるブロック始点座標CBLs(xtop及びytop)は、vy1が負の場合(傾き0〜−45度)(図11(A))と、vy1が正の場合(傾き0〜45度)(図11(B))とで、ブロック傾き修正部14の出力始点対応座標Ccos(図4)が接する読み出しブロックBLrの辺が異なるため、スキューブロック読み出し部12はそれぞれ、原稿始点座標CAPs(xorg及びyorg)、後段のブロック傾き修正部14の出力ブロックサイズ(outbw及びoutbh)、移動量に関連する値(vx1、vy1、vx2、vy2、xvbase及びyvbase)を用いて下式(3)で計算して決定する。   A frame indicated by a solid line in FIG. 11 is an output area Ao that is an area corresponding to the output of the block inclination correction unit 14 at the subsequent stage, and a rectangular frame indicated by a broken line in FIG. 11 circumscribing the output area Ao as described above. Is set as the read block BLr, and the skew block read unit 12 performs read. The block start point coordinates CBLs (xtop and ytop), which are the start point coordinates of the read block BLr, are obtained when vy1 is negative (slope 0 to −45 degrees) (FIG. 11A) and when vy1 is positive (slope 0 to 0). 45 degrees) (FIG. 11B), the sides of the read block BLr that are in contact with the output start point corresponding coordinates Ccos (FIG. 4) of the block inclination correcting unit 14 are different. Using the CAPs (xorg and yorg), the output block size (outbw and outbh) of the subsequent block inclination correction unit 14, and values (vx1, vy1, vx2, vy2, xvbase and yvbase) related to the movement amount, the following equation (3) ) To determine.

式(3)
vy1が負の場合:
xtop=xorg
ytop=yorg+vy1×(outbw−1)/yvbase
vy1が正の場合:
xtop=xorg+vx2×(outbh−1)/xvbase
ytop=yorg
Formula (3)
If vy1 is negative:
xtop = xorg
ytop = yorg + vy1 × (outbw−1) / yvbase
If vy1 is positive:
xtop = xorg + vx2 × (outbh−1) / xvbase
ytop = yorg

次に拡縮付フィルタ処理部16がある本実施の形態の構成について図12(A)及び図12(B)を用いて説明する。先の拡縮付フィルタ処理部16がない構成同様、図12中に実線で示す枠が後段のブロック傾き修正部14の出力に対応する領域で出力領域Aoであり、上述した通りこの出力領域Aoに外接する図12中に破線で示す矩形の枠を読み出しブロックBLrとして設定し、スキューブロック読み出し部12は読み出しを行う。ここで、ブロック傾き修正部14の出力領域Aoは、拡縮付フィルタ処理部16の処理で生じる無効画素分大きなサイズとなっており、最終的に有効な出力となる領域である出力有効領域Aovは図12中に一点鎖線で示す枠の領域となり、原稿始点座標CAPsはこの出力有効領域Aovの左上に存在する。したがって、スキューブロック読み出し部12は、読み出しブロックBLrの始点座標を、原稿始点座標CAPsから無効画素分ずれた位置から読み出す必要があり、原稿始点座標CAPs(xorg及びyorg)、後段のブロック傾き修正部14の出力ブロックサイズ(outbw及びoutbh)、移動量に関連する値(vx1、vy1、vx2、vy2、xvbase及びyvbase)に加え、拡縮付フィルタ処理部16の処理においてブロックの左端と上端で発生する無効画素の幅(obnw及びobnh)を用いて下式(4)で計算して決定する。   Next, the configuration of the present embodiment in which the enlargement / reduction filter processing unit 16 is provided will be described with reference to FIGS. Similar to the configuration without the previous enlargement / reduction filter processing unit 16, a frame indicated by a solid line in FIG. 12 is an output region Ao in an area corresponding to the output of the block inclination correction unit 14 at the subsequent stage, and as described above, this output area Ao A circumscribed rectangular frame indicated by a broken line in FIG. 12 is set as a reading block BLr, and the skew block reading unit 12 performs reading. Here, the output area Ao of the block inclination correcting unit 14 is large in size corresponding to the invalid pixels generated by the processing of the enlargement / reduction filter processing unit 16, and the output effective area Aov which is an area that finally becomes an effective output is In FIG. 12, the frame area is indicated by a one-dot chain line, and the document start point coordinates CAPs are present at the upper left of the output effective area Aov. Therefore, the skew block reading unit 12 needs to read the starting point coordinates of the reading block BLr from a position shifted from the original starting point coordinates CAPs by invalid pixels, the original starting point coordinates CAPs (xorg and yorg), and the subsequent block inclination correcting unit. In addition to 14 output block sizes (outbw and outbh) and values related to movement amounts (vx1, vy1, vx2, vy2, xvbase and yvbase), they are generated at the left and top edges of the block in the processing of the expansion / contraction filter processing unit 16 It is determined by calculating with the following equation (4) using the width (obnw and obnh) of the invalid pixel.

ここで、式(4)のブロックの左端と上端で発生する無効画素の幅(obnw及びobnh)は、ブロック拡大縮小部40の前段のフィルタ処理(像域分離フィルタ30及び平滑化フィルタ32)で発生する無効画素の幅(obnw1及びobnh1)と、ブロック拡大縮小部40の後段のフィルタ処理(強調フィルタ34)で発生する無効画素の幅(obnw2及びobnh2)と、任意倍率の拡大・縮小の倍率の分母と分子の値(rxbase、rybase、rxratio及びryratio)を使って下式で求めて使用する必要がある。   Here, the widths of invalid pixels (obnw and obsnh) generated at the left end and the upper end of the block of Expression (4) are the filter processing (image region separation filter 30 and smoothing filter 32) in the previous stage of the block enlargement / reduction unit 40. The width of invalid pixels (obnw1 and obnh1) generated, the width of invalid pixels (obnw2 and obnh2) generated in the subsequent filter processing (enhancement filter 34) of the block enlargement / reduction unit 40, and the scaling factor of arbitrary magnification The denominator and numerator values (rxbase, rybase, rxratio, and ryratio) must be used in the following equation.

式(16)
obnw=obnw1
+floor[(obnw2×rxbase+rxratio−1)/rxratio]
obnh=obnh1
+floor[(obnh2×rybase+ryratio−1)/ryratio]
Formula (16)
obnw = obnw1
+ Floor [(obnw2 × rxbase + rxratio−1) / rxratio]
obnh = obnh1
+ Floor [(obnh2 × rybase + ryratio-1) / ryratio]

式(4)
vy1が負の場合:
xtop=xorg+(−obnw×vx1−obnh×vx2)/xvbase
ytop=yorg+(−obnw×vy1−obnh×vy2+vy1×(outbw−1))/yvbase
vy1が正の場合:
xtop=xorg+(−obnw×vx1−obnh×vx2+vx2×(outbh−1))/xvbase
ytop=yorg+(−obnw×vy1−obnh×vy2)/yvbase
Formula (4)
If vy1 is negative:
xtop = xorg + (− obnw × vx1−obnh × vx2) / xvbase
ytop = yorg + (− obnw × vy1−obnh × vy2 + by1 × (outbw−1)) / yvbase
If vy1 is positive:
xtop = xorg + (− obnw × vx1−obnh × vx2 + vx2 × (outbh−1)) / xvbase
ytop = yorg + (− obnw × vy1-obnh × vy2) / yvbase

スキューブロック読み出し部12は、上式で算出したX座標及びY座標の整数値に対応する座標を最初の読み出しブロックBLrの始点座標(例えば、−1.4であれば−2、2.5であれば2)として使用する。   The skew block reading unit 12 sets the coordinates corresponding to the integer values of the X coordinate and the Y coordinate calculated by the above formula as the start point coordinates of the first read block BLr (for example, −2, 2.5 if −1.4). If there is, use 2).

読み出しブロックBLrのサイズ(inbw及びinbh)は、下式(5)で計算することで決定できる。   The size (inbw and inbh) of the read block BLr can be determined by calculating with the following equation (5).

式(5)
vy1が負の場合:
inbw=(vx1×outbw+vx2×outbh)/xvbase+α
inbh=(−vy1×outbw+vy2×outbh)/yvbase+α
vy1が正の場合:
inbw=(vx1×outbw−vx2×outbh)/xvbase+α
inbh=(vy1×outbw+vy2×outbh)/yvbase+α
Formula (5)
If vy1 is negative:
inbw = (vx1 × outbw + vx2 × outbh) / xvbase + α
inbh = (− vy1 × outbw + vy2 × outbh) / yvbase + α
If vy1 is positive:
inbw = (vx1 × outbw−vx2 × outbh) / xvbase + α
inbh = (vy1 × outbw + vy2 × outbh) / yvbase + α

上式のαは、後段のブロック傾き修正部14で行う処理での補間演算(入力4画素で出力画素を補間して生成)や、開始座標の量子化による影響で必要となる画素入力に対応するためのマージンで、必要となる画素数以上の値(おおよそ2以上の値)を使えばよい。   Α in the above equation corresponds to the pixel input required due to the influence of the interpolation operation (generated by interpolating the output pixel with 4 input pixels) in the process performed by the block inclination correcting unit 14 in the subsequent stage and the quantization of the start coordinate For the margin for this, a value greater than the required number of pixels (approximately 2 or more) may be used.

また、スキューブロック読み出し部12は、次ブロックの始点座標である次ブロック始点座標CBLnsについて、図13で示すように、右方向への移動については左に隣接する読み出しブロックBLrの始点座標を出力有効領域Aovの幅(stridew)分ずらした位置を、下方向への移動については上に隣接する読み出しブロックBLrの始点座標を出力有効領域Aovの高さ(strideh)分ずらした位置を求めることで決定でき、左に隣接する読み出しブロックBLrの始点座標を左ブロック始点座標CBLls(left_xtop及びleft_ytop)、上に隣接する読み出しブロックBLrの始点座標を上ブロック始点座標CBLus(up_xtop及びup_ytop)として下式(6)で計算する。   Further, as shown in FIG. 13, the skew block reading unit 12 outputs the start point coordinates of the read block BLr adjacent to the left as to the next block start point coordinates CBLns that are the start point coordinates of the next block. The position shifted by the width (stridew) of the area Aov is determined by obtaining the position shifted downward by the height (strideh) of the output effective area Aov with respect to the downward movement. The left block start point coordinates CBLls (left_xtop and left_ytop) are the start point coordinates of the read block BLr adjacent to the left, and the start block coordinates CBLus (up_xtop and up_ytop) are the start point coordinates of the read block BLr adjacent to the upper side (6 ) To calculate.

ここで、式(6)の出力有効領域Aovの幅と高さとに対応する値として説明したstridewとstridehとは、拡縮付フィルタ処理部16の出力するブロック画像の幅及び高さ(foutbw及びfoutbh)と、対応するブロックでの拡縮付フィルタ処理部16の拡大縮小カウンタ初期値(rxcnt0及びrycnt0)と、任意倍率の拡大・縮小の倍率の分母と分子の値(rxbase、rybase、rxratio及びryratio)を使って下式で求めて使用する必要がある。   Here, stridew and strideh described as values corresponding to the width and height of the output effective area Aov in Expression (6) are the width and height (foutbw and foutbh) of the block image output by the filter processing unit 16 with scaling. ), The initial value (rxcnt0 and rycnt0) of the enlargement / reduction filter processing unit 16 in the corresponding block, and the denominator and numerator values (rxbase, rybase, rxratio, and ryratio) of the enlargement / reduction factor of arbitrary magnification It is necessary to find and use the following formula using.

式(17)
stridew=floor[(foutbw×rxbase+rxcnt0)/rxratio]
strideh=floor[(foutbh×rybase+rycnt0)/ryratio]
Formula (17)
stridew = floor [(foutbw × rxbase + rxcnt0) / rxratio]
strideh = floor [(foutbh × rybase + lycnt0) / ryratio]

式(6)
(右へのブロック移動)
xtop=left_xtop+stridew×vx1/xvbase
ytop=left_ytop+stridew×vy1/yvbase
(下へのブロック移動)
xtop=up_xtop+strideh×vx2/xvbase
ytop=up_ytop+strideh×vy2/yvbase
Formula (6)
(Block movement to the right)
xtop = left_xtop + stridew × vx1 / xvbase
ytop = left_ytop + stridew × vy1 / yvbase
(Block movement down)
xtop = up_xtop + strideh * vx2 / xvbase
ytop = up_ytop + strideh x vy2 / yvbase

なお、ブロック傾き修正部14の出力ブロックBLo1のサイズや各出力ブロックBLo1の出力始点に対応する座標である出力始点対応座標Ccos、具備するバッファBfに必要なサイズは、出力ブロックBLo1のサイズは上式のoutbw及びoutbhとなり、各入力ブロックBLi1の出力始点対応座標Ccosは、図11及び図12に実線枠で示したブロック傾き修正部14の出力に対応する出力領域Aoの左上の座標(xstart及びystart)となり、具備するバッファBfに必要なサイズは出力に対応する出力領域Aoの上辺のY座標値の差分値と入力ブロックBLi1の幅(inbw)より求まり、下式(7)で計算される。   The size of the output block BLo1 of the block inclination correction unit 14, the output start point corresponding coordinates Ccos that are the coordinates corresponding to the output start point of each output block BLo1, and the size required for the buffer Bf provided are the size of the output block BLo1. The output start point corresponding coordinates Ccos of each input block BLi1 are the coordinates at the upper left of the output area Ao corresponding to the output of the block inclination correcting unit 14 indicated by the solid line frame in FIGS. 11 and 12 (xstart and ystart), and the required size of the buffer Bf provided is obtained from the difference value of the Y coordinate value of the upper side of the output area Ao corresponding to the output and the width (inbw) of the input block BLi1, and is calculated by the following equation (7). .

式(7)
バッファサイズ=(abs[vy1×outbw/yvbase]+β)×inbw
vy1が負の場合:
xstart=0
ystart=−floor[(ycnt00+vy1×(outbw−1))/yvbase]
vy1が正の場合:
xstart=−floor[(xcnt00+vx2×(outbh−1))/xvbase]
ystart=0
ここで、abs[]は[]内の絶対値を表す
Formula (7)
Buffer size = (abs [vy1 × outbw / yvbase] + β) × inbw
If vy1 is negative:
xstart = 0
ystart = −floor [(ycnt00 + vy1 × (outbw−1)) / yvbase]
If vy1 is positive:
xstart = −floor [(xcnt00 + vx2 × (outbh−1)) / xvbase]
ystart = 0
Here, abs [] represents the absolute value in [].

上式のβは、補間演算(入力4画素で出力画素を補間して生成)や、開始座標の量子化による影響で必要となる画素入力に対応するためのマージンでおおよそ2以上の値を使えば良い。また、floor[]は整数値にするための床関数(例えば、floor[−1.4]=−2、floor[2.5]=2)で、xcnt00、ycnt00は各入力ブロックBLi1の出力始点対応座標CcosのX方向、Y方向の座標の小数値に対応する値である。最初の読み出しブロックBLrのxcnt00及びycnt00は下式で計算できる。
xcnt00=(−obnw×vx1−obnh×vx2)%xvbase
ycnt00=(−obnw×vy1−obnh×vy2)%yvbase
(「%」は剰余演算を表す)
また、次ブロック(右へのブロック移動)、次段ブロック(下へのブロック移動)のxcnt00及びycnt00は左に隣接する読み出しブロックBLrのxcnt00、ycnt00をleft_xcnt00、left_ycnt00、上に隣接する読み出しブロックBLrのxcnt00、ycnt00をup_xcnt00、up_ycnt00として下式で求めることができる。
(右へのブロック移動)
xcnt00=
(left_xcnt00+(stridew×vx1)%xvbase)%xvbase
ycnt00=
(left_ycnt00+(stridew×vy1)%yvbase)%yvbase
(下へのブロック移動)
xcnt00=
(up_xcnt00+(strideh×vx2)%xvbase)%xvbase
ycnt00=
(up_ycnt00+(strideh×vy2)%yvbase)%yvbase
Β in the above equation can be a value of approximately 2 or more as a margin to deal with pixel input required due to interpolation calculation (generated by interpolating output pixels with 4 input pixels) and quantization of start coordinates. It ’s fine. Further, floor [] is a floor function (for example, floor [-1.4] =-2, floor [2.5] = 2) for making an integer value, and xcnt00 and ycnt00 are output start points of each input block BLi1. This is a value corresponding to the decimal value of the coordinate in the X direction and the Y direction of the corresponding coordinate Ccos. Xcnt00 and ycnt00 of the first read block BLr can be calculated by the following equations.
xcnt00 = (− obnw × vx1-obnh × vx2)% xvbase
ycnt00 = (− obnw × vy1-obnh × vy2)% yvbase
("%" Represents the remainder operation)
Further, xcnt00 and ycnt00 of the next block (block movement to the right) and the next block (block movement to the bottom) are xcnt00 and ycnt00 of the read block BLr adjacent to the left as left_xcnt00 and left_ycnt00, and the read block BLr adjacent above. Xcnt00 and ycnt00 can be obtained by the following equation as up_xcnt00 and up_ycnt00.
(Block movement to the right)
xcnt00 =
(Left_xcnt00 + (stridew × vx1)% xvbase)% xvbase
ycnt00 =
(Left_ycnt00 + (stride × by1)% yvbase)% yvbase
(Block movement down)
xcnt00 =
(Up_xcnt00 + (strideh × vx2)% xvbase)% xvbase
ycnt00 =
(Up_ycnt00 + (strideh × vy2)% yvbase)% yvbase

画像形成装置10は、以上で求めた値を元に各入力ブロックの処理に必要なパラメータを求め、以下のブロック傾き修正処理を行うことで、スキュー補正の後で任意倍率の拡大縮小を含むフィルタ処理を行う場合にも対応ができる。   The image forming apparatus 10 obtains parameters necessary for the processing of each input block based on the values obtained above, and performs the following block inclination correction processing, thereby performing a filter including enlargement / reduction at an arbitrary magnification after skew correction. It is possible to cope with processing.

[1−6.ブロック傾き修正処理手順]
また、ブロック傾き修正部14で行う画素生成についてのより詳細な説明について、上式で決定した値をもとに、図14、図15及び図16に示すフローチャートにしたがって説明する。
[1-6. Block inclination correction processing procedure]
Further, a more detailed description of pixel generation performed by the block inclination correction unit 14 will be described according to the flowcharts shown in FIGS. 14, 15 and 16 based on the values determined by the above formula.

まずブロック傾き修正部14は、xcnt00及びycnt00より、各入力ブロックBLi1の出力に対応する始点座標の整数値(xstart及びystart)を求めてライン先頭の座標値管理パラメータのxcnt_ltop、ycnt_ltop、xpos_ltop及びypos_ltopを設定し、Y方向の出力ライン数カウンタ(yocnt)を0に設定する(SP1)。   First, the block inclination correcting unit 14 obtains integer values (xstart and ystart) of the starting point coordinates corresponding to the output of each input block BLi1 from xcnt00 and ycnt00, and xcnt_lttop, ycnt_lttop, xpos_lttop and ypos_lttop of the line head coordinate value management parameters. And the Y-direction output line number counter (yocnt) is set to 0 (SP1).

次にブロック傾き修正部14は、現座標値管理パラメータxcnt、ycnt、xpos及びyposを設定し、X方向の出力画素数カウンタ(xocnt)を0に設定する(SP2)。   Next, the block inclination correcting unit 14 sets the current coordinate value management parameters xcnt, ycnt, xpos, and ypos, and sets the output pixel number counter (xocnt) in the X direction to 0 (SP2).

次にブロック傾き修正部14は、現座標値管理パラメータxpos及びyposに対応する画素をバッファBfより読み出し、出力画素を生成して対応する1画素を出力する(SP3)。ブロック傾き修正部14は、入力4画素で出力画素を補間して生成する場合には、例えば、下式を用いて計算する。
出力画素値=

(p[xpos、ypos]×(xvbase−xcnt)+
p[xpos+1、ypos]×xcnt)/xvbase×(yvbase−ycnt)
+(p[xpos、ypos+1]×(xvbase−xcnt)+
p[xpos+1、ypos+1]×xcnt)/xvbase×ycnt)/yvbase
上式のp[]はxpos、yposに対応する画素値である。
Next, the block inclination correcting unit 14 reads out pixels corresponding to the current coordinate value management parameters xpos and ypos from the buffer Bf, generates an output pixel, and outputs a corresponding one pixel (SP3). The block inclination correcting unit 14 calculates, for example, using the following expression when generating the output pixel by interpolating with the input four pixels.
Output pixel value =
(
(P [xpos, ypos] × (xvbase-xcnt) +
p [xpos + 1, ypos] × xcnt) / xvbase × (yvbase-ycnt)
+ (P [xpos, ypos + 1] × (xvbase-xcnt) +
p [xpos + 1, ypos + 1] × xcnt) / xvbase × ycnt) / yvbase
In the above equation, p [] is a pixel value corresponding to xpos, ypos.

次にブロック傾き修正部14は、X方向の出力画素数カウンタ(xocnt)に1を加算し、xcnt及びycntにそれぞれvx1及びvy1を加算する。vx1加算後のxcntがxvbase以上の場合は、xcntからxvbaseを減算すると共にxposに1を加算する。一方ブロック傾き修正部14は、vx1加算後のxcntがxvbase未満でかつxcntが0より小さい場合は、xcntにxvbaseを加算すると共にxposから1を減算する。ycntについてもブロック傾き修正部14は同様に行う。これにより、次画素(現画素の右隣りの画素)の座標が計算される(SP4)。   Next, the block inclination correcting unit 14 adds 1 to the output pixel number counter (xocnt) in the X direction, and adds vx1 and vy1 to xcnt and ycnt, respectively. When xcnt after addition of vx1 is equal to or greater than xvbase, xvbase is subtracted from xcnt and 1 is added to xpos. On the other hand, when xcnt after addition of vx1 is less than xvbase and xcnt is less than 0, the block inclination correction unit 14 adds xvbase to xcnt and subtracts 1 from xpos. The block inclination correcting unit 14 performs the same for ycnt. As a result, the coordinates of the next pixel (the pixel immediately adjacent to the current pixel) are calculated (SP4).

次にブロック傾き修正部14は、xocntがoutbwと一致するか判定し、一致しない場合はSP3からの処理を行う(SP5)。   Next, the block inclination correcting unit 14 determines whether xocnt matches with outbw, and if not, performs processing from SP3 (SP5).

SP5の判断にてxocntがoutbwと一致した場合は出力に対応する1ラインの出力が完了したことになるため、ブロック傾き修正部14は、Y方向の出力ライン数カウンタ(yocnt)に1を加算し、次ラインの先頭座標の計算を行う(SP6)。   If xocnt matches outbw in SP5, the output of one line corresponding to the output is completed, so the block inclination correcting unit 14 adds 1 to the output line number counter (yocnt) in the Y direction. Then, the top coordinate of the next line is calculated (SP6).

次にブロック傾き修正部14は、yocntがoutbhと一致するか判定し、一致しない場合はSP2から処理を行い、この判定が一致するまで処理を繰り返す(SP7)。   Next, the block inclination correcting unit 14 determines whether or not yocnt matches with outbh, and if not, performs processing from SP2, and repeats the processing until this determination matches (SP7).

ブロック傾き修正部14は、以上を該ブロック傾き修正部14に入力される各入力ブロックBLi1に対して行うことにより、原稿全体のブロックの出力処理を行う。   The block inclination correction unit 14 performs the above-described processing for each block of the input document by performing the above processing on each input block BLi1 input to the block inclination correction unit 14.

[1−7.効果等]
ここで、任意倍率の拡縮処理は、ブロック傾き修正部14の出力解像度を変更することによっても実現できるが、モアレ発生の抑止等を目的としたフィルタ処理では、ある決まった解像度の入力画像に対して処理を行った方が良く、またその際に傾きが補正された画像に対して処理を行った方が良いため、画像形成装置10は、スキュー補正処理と任意倍率の拡縮処理とをそれぞれ行う必要がある。
[1-7. Effect]
Here, the enlargement / reduction process at an arbitrary magnification can be realized by changing the output resolution of the block inclination correction unit 14, but in the filter process for the purpose of suppressing the occurrence of moire, an input image having a predetermined resolution is processed. Therefore, the image forming apparatus 10 performs a skew correction process and an enlargement / reduction process at an arbitrary magnification, respectively. There is a need.

そのようなスキュー補正と任意倍率の拡縮処理とは、各処理で正確な座標管理が必要となるため、どちらか一方の処理を行った画像をメモリに出力し、その画像に対してもう一方の処理を行うようにメモリを介して連結させて処理する方法が一般的に行われているものと考えられ、メモリアクセスの増加や必要なメモリの増加が生じることになる。しかしながら、スキュー補正と任意倍率の拡縮処理を含むフィルタ処理を、メモリを介さずに連結して処理させるには、スキュー補正と任意倍率の拡縮処理の各処理で必要な正確な座標管理を同時に破綻なく行う必要があり、実現が難しかった。   Such skew correction and scaling processing at an arbitrary magnification requires accurate coordinate management in each process, so an image obtained by either processing is output to a memory, and the other image is processed with respect to the other image. It is considered that a method of connecting and processing through a memory so as to perform processing is generally performed, and an increase in memory access and an increase in necessary memory occur. However, in order to connect the filter processing including the skew correction and the enlargement / reduction process at any magnification without using the memory, the accurate coordinate management necessary for each process of the skew correction and the enlargement / reduction process at the arbitrary magnification is simultaneously broken. It was necessary to do so and it was difficult to realize.

これに対し画像形成装置10は、スキュー補正後の画像をメモリ20に書き込んだ後に該画像をメモリ20から読み出してフィルタ処理を行うのではなく、補正する傾きに応じてメモリ20上の入力画像IMGiから読み出しブロックBLr単位に画像を読み出して読み出しブロックBLr単位毎に画像の傾きを修正し、傾きが修正された画像をブロック単位の画像に対して任意倍率への拡縮処理を含むフィルタ処理を行った後に、フィルタ処理が行われた画像をメモリ20に書き込むようにした。これにより画像形成装置10は、スキュー補正と任意倍率への拡縮処理を含むフィルタ処理との間でメモリアクセスを発生させないようにできるため、スキュー補正を行わず任意倍率への拡縮処理を含むフィルタ処理のみを行う場合よりも処理が遅くなることを抑えることができる。   On the other hand, the image forming apparatus 10 does not read the image from the memory 20 after writing the image after skew correction in the memory 20 and performs the filter process, but performs the input image IMGi on the memory 20 according to the inclination to be corrected. The image is read from each read block BLr, the inclination of the image is corrected for each read block BLr, and the image whose inclination is corrected is subjected to filter processing including enlargement / reduction processing to an arbitrary magnification with respect to the block unit image. Later, the filtered image is written into the memory 20. As a result, the image forming apparatus 10 can prevent memory access between the skew correction and the filter process including the enlargement / reduction process to the arbitrary magnification. Therefore, the filter process including the enlargement / reduction process to the arbitrary magnification without performing the skew correction. It can be suppressed that the processing is slower than the case where only the process is performed.

また従来のような、メモリに書き込まれたスキュー補正後の画像に対して任意倍率への拡縮処理を含むフィルタ処理を行う処理構成の場合は、スキュー補正と任意倍率への拡縮処理を含むフィルタ処理との間で中間メモリが必要となるため、スキュー補正を行わず任意倍率への拡縮処理を含むフィルタ処理のみを行う場合よりも必要なメモリが増えてしまった。これに対し画像形成装置10は、スキュー補正と任意倍率への拡縮処理を含むフィルタ処理との間の中間メモリが不要であるため、スキュー補正と任意倍率への拡縮処理を含むフィルタ処理との両方の処理を行った場合でも処理にかかるメモリを少なくできる。   Further, in the case of a conventional processing configuration that performs a filtering process including an enlargement / reduction process to an arbitrary magnification on an image after skew correction written in a memory, a filter process including a skew correction and an enlargement / reduction process to an arbitrary magnification Since an intermediate memory is required between them, the necessary memory is increased as compared with the case where only the filtering process including the scaling process to an arbitrary magnification is performed without performing the skew correction. On the other hand, since the image forming apparatus 10 does not require an intermediate memory between the skew correction and the filter process including the enlargement / reduction process to an arbitrary magnification, both the skew correction and the filter process including the enlargement / reduction process to the arbitrary magnification are performed. Even when this processing is performed, the memory required for the processing can be reduced.

またブロック傾き修正部14は、所定のサイズのバッファBfを有し、該バッファBfを用いて傾きの補正を行い、その際、補正する傾きが大きくなると処理可能な画像のサイズが小さくなり、補正する傾きが小さくなると処理可能な画像のサイズが大きくなるように構成されていると共に、スキューブロック読み出し部12は、ブロック傾き修正部14で処理可能なサイズで、読み出しブロックBLr単位の画像を読み出すようにした。すなわち画像形成装置10は、ブロック傾き修正部14で用いられるバッファBfのサイズに合わせて(すなわち上回らないように)、入力ブロックBLi1のサイズを設定するようにした。   Further, the block inclination correcting unit 14 has a buffer Bf of a predetermined size, and performs correction of inclination using the buffer Bf. At this time, when the inclination to be corrected increases, the size of the processable image decreases, and correction is performed. The skew block reading unit 12 reads the image in units of the read block BLr with a size that can be processed by the block inclination correcting unit 14. I made it. That is, the image forming apparatus 10 sets the size of the input block BLi1 in accordance with the size of the buffer Bf used in the block inclination correcting unit 14 (that is, not to exceed the size).

さらに拡縮付フィルタ処理部16は、1ページ分の幅より小さい幅の画像の処理に対応するラインバッファLBfを有すると共に、スキューブロック読み出し部12は、ブロック傾き修正部14で処理可能であり、かつ拡縮付フィルタ処理部16で処理可能なサイズで、読み出しブロックBLr単位の画像を読み出すようにした。すなわち画像形成装置10は、ブロック傾き修正部14よりも処理負荷が大きい拡縮付フィルタ処理部16で用いられるラインバッファLBfのサイズに合わせて(すなわち上回らないように)、ブロック傾き修正部14で用いられるバッファBfのサイズを設定するようにした。   Further, the enlargement / reduction filter processing unit 16 includes a line buffer LBf corresponding to the processing of an image having a width smaller than the width of one page, and the skew block reading unit 12 can be processed by the block inclination correction unit 14. An image in a read block BLr unit is read in a size that can be processed by the enlargement / reduction filter processing unit 16. That is, the image forming apparatus 10 uses the block inclination correction unit 14 in accordance with the size of the line buffer LBf used in the enlargement / reduction filter processing unit 16 having a processing load larger than that of the block inclination correction unit 14 (that is, not to exceed the size). The size of the buffer Bf to be used is set.

以上の構成によれば画像形成装置10は、入力画像IMGiが記憶されているメモリ20から補正する傾きに応じて始点座標を変えながら1ページのサイズよりも小さい読み出しブロックBLr単位に画像をバッファBfに順次読み出すスキューブロック読み出し部12と、スキューブロック読み出し部12で順次読み出された読み出しブロックBLr単位の画像各々の傾きを修正し、傾きが修正された画像をバッファBfにブロック単位に出力ブロックBLo1として出力するブロック傾き修正部14と、ブロック傾き修正部14が出力する出力ブロックBLo1単位の画像に対して少なくとも任意倍率の拡縮処理を含む処理を行う拡縮付フィルタ処理部16と、拡縮付フィルタ処理部16で処理された画像をメモリ20に順次書き込むブロック書き出し部18とを設けるようにした。   According to the above configuration, the image forming apparatus 10 buffers the image in units of the read block BLr smaller than the size of one page while changing the start point coordinates according to the inclination to be corrected from the memory 20 in which the input image IMGi is stored. The skew block reading unit 12 that sequentially reads the image and the inclination of each of the read block BLr units sequentially read by the skew block reading unit 12 are corrected, and the image whose inclination is corrected is output to the buffer Bf in block units as the output block BLo1. A block inclination correction unit 14 that outputs as a block, an enlargement / reduction filter processing unit 16 that performs a process including an enlargement / reduction process of at least an arbitrary magnification on an image of the output block BLo1 output from the block inclination correction unit 14, and an expansion / reduction filter process This block sequentially writes the images processed by the unit 16 into the memory 20. Tsu was to be provided and click writing unit 18.

これにより画像形成装置10は、フィルタ処理に任意倍率の拡縮処理が含まれている場合でもスキュー補正処理とフィルタ処理とをメモリを介さず連結して実行することができ、スキュー補正処理とフィルタ処理との間でメモリアクセスを発生させないようにできるため、スキュー補正処理を行わずフィルタ処理のみを行う場合よりも処理が遅くなることを抑えることができる。   Thus, the image forming apparatus 10 can execute the skew correction process and the filter process by connecting them without using the memory even when the filter process includes an enlargement / reduction process at an arbitrary magnification. Therefore, it is possible to prevent the processing from being delayed compared to the case where only the filter processing is performed without performing the skew correction processing.

[2.他の実施の形態]
なお上述した実施の形態において、図17に示すSP10をSP1(図14)の前に追加することにより、rxcnt00及びrycnt00はブロック拡大縮小部40で最初に入力される拡大縮小カウンタ初期値を設定することで各入力ブロックに対応する拡大縮小カウンタ初期値を自動的に設定させ、その拡大縮小カウンタ初期値に基づいて各入力ブロックのstridew、stridehを設定しても良い。SP10におけるstrideh算出のサブルーチンは、図18に示すフローチャートであり、stridew算出のサブルーチンは、図19に示すフローチャートである。その場合、読み出しブロックBLr毎に毎回stridew、stridehを算出しなくて済み、処理を簡略化できる。
[2. Other Embodiments]
In the above-described embodiment, by adding SP10 shown in FIG. 17 before SP1 (FIG. 14), rxcnt00 and rycnt00 set the initial value of the enlargement / reduction counter initially input by the block enlargement / reduction unit 40. Thus, the initial value of the enlargement / reduction counter corresponding to each input block may be automatically set, and the stridew and strideh of each input block may be set based on the initial value of the enlargement / reduction counter. The strideh calculation subroutine in SP10 is the flowchart shown in FIG. 18, and the stridew calculation subroutine is the flowchart shown in FIG. In this case, it is not necessary to calculate stridew and strideh for each read block BLr, and the processing can be simplified.

また上述した実施の形態においては、拡縮付フィルタ処理部16を像域分離フィルタ30、平滑化フィルタ32、ブロック拡大縮小部40及び強調フィルタ34により構成する場合について述べた。本発明はこれに限らず、拡縮付フィルタ処理部16を、RGBデータからCMYKデータへの色変換処理等を行う色変換処理、N値化処理、背景検出処理、白紙検出処理、原稿カラー判定処理等、複写機や複合機等で必要な他の処理を含んだ構成にしても良い。特にCMYKデータへの色変換処理とN値化処理とについては、複写機や複合機等で紙等の記録媒体上にトナー等によるドットパターン形成を行うために必須の処理であり、ドットパターンへの変換により変換前の画素データ量が減る場合(例えば、1画素8bitのデータを1bitのデータに変換)は、最終的にメモリに書き込むデータ量を減らすことができるため、色変換処理及びN値化処理を含んだ構成とすることが望ましい。   In the above-described embodiment, the case where the enlargement / reduction filter processing unit 16 includes the image area separation filter 30, the smoothing filter 32, the block enlargement / reduction unit 40, and the enhancement filter 34 has been described. The present invention is not limited to this, and the enlargement / reduction filter processing unit 16 performs color conversion processing for performing color conversion processing from RGB data to CMYK data, N-value conversion processing, background detection processing, blank page detection processing, document color determination processing, and the like. For example, a configuration including other processing necessary for a copying machine, a multifunction machine, or the like may be used. In particular, the color conversion process to CMYK data and the N-value conversion process are indispensable processes for forming a dot pattern with a toner or the like on a recording medium such as paper in a copying machine or a multi-function machine. When the amount of pixel data before conversion is reduced by the conversion of (for example, converting 1-bit 8-bit data into 1-bit data), the amount of data to be finally written in the memory can be reduced. It is desirable to have a configuration that includes a digitization process.

さらに上述した実施の形態においては、複写機や複合機等の画像形成装置に本発明を適用する場合について述べた。本発明はこれに限らず、例えばプリンタやFAX機等の種々の機器に本発明を適用しても良い。   Further, in the above-described embodiment, the case where the present invention is applied to an image forming apparatus such as a copying machine or a multifunction machine has been described. The present invention is not limited to this, and the present invention may be applied to various devices such as a printer and a FAX machine.

さらに上述した実施の形態においては、スキューブロック読み出し部としてのスキューブロック読み出し部12と、ブロック傾き修正部としてのブロック傾き修正部14と、拡縮付フィルタ処理部としての拡縮付フィルタ処理部16と、ブロック書き出し部としてのブロック書き出し部18とによって、画像形成装置としての画像形成装置10を構成する場合について述べた。本発明はこれに限らず、その他種々の構成でなるスキューブロック読み出し部と、ブロック傾き修正部と、拡縮付フィルタ処理部と、ブロック書き出し部とによって、画像形成装置を構成しても良い。   Further, in the above-described embodiment, the skew block reading unit 12 as the skew block reading unit, the block inclination correcting unit 14 as the block inclination correcting unit, and the enlargement / reduction filter processing unit 16 as the enlargement / reduction filter processing unit, The case where the image forming apparatus 10 as the image forming apparatus is configured by the block writing unit 18 as the block writing unit has been described. The present invention is not limited to this, and an image forming apparatus may be configured by a skew block reading unit, a block inclination correction unit, an enlargement / reduction filter processing unit, and a block writing unit having various other configurations.

本発明は、イメージスキャナやファクシミリ装置等、画像に関する種々の処理を行う種々の電子機器でも利用できる。   The present invention can also be used in various electronic devices that perform various processes relating to images, such as image scanners and facsimile machines.

10……画像形成装置、11……制御部、12……スキューブロック読み出し部、14……ブロック傾き修正部、16……拡縮付フィルタ処理部、18……ブロック書き出し部、20……メモリ、30……像域分離フィルタ、32……平滑化フィルタ、34……強調フィルタ、40……ブロック拡大縮小部、42……X方向拡大縮小部、44……Y方向拡大縮小部、IMGi……入力画像、IMGo……出力画像、BLr……読み出しブロック、BLw……書き出しブロック、BLi1……入力ブロック、BLo1……出力ブロック、BLi2……入力ブロック、BLo2……出力ブロック、BLi3……拡縮部入力ブロック、AP……原稿領域、Ao……出力領域、Aov……出力有効領域、Bf……バッファ、LBf……ラインバッファ、CAPs……原稿始点座標、CBLs……ブロック始点座標、Cos……出力始点座標、Ccos……出力始点対応座標、Ci……入力対応座標、Co……出力対応座標、Pp……現画素、Pn……次画素、Ppl……現ライン画素、Pnl……次ライン画素、CBLis……入力ブロック始点座標、CBLins……次入力ブロック始点座標、CBLincs……次段入力ブロック始点座標、CBLos……出力ブロック始点座標、CBLons……次出力ブロック始点座標、CBLoncs……次段出力ブロック始点座標、Cis……拡縮部入力始点座標、Cins……拡縮部次ブロック入力始点座標、Cincs……拡縮部次段ブロック入力始点座標。   DESCRIPTION OF SYMBOLS 10 ... Image forming apparatus, 11 ... Control part, 12 ... Skew block reading part, 14 ... Block inclination correction part, 16 ... Filter processing part with expansion / contraction, 18 ... Block writing part, 20 ... Memory, 30... Image area separation filter, 32... Smoothing filter, 34... Emphasis filter, 40... Block enlargement / reduction section, 42 ... X-direction enlargement / reduction section, 44 ... Y-direction enlargement / reduction section, IMGi. Input image, IMGo ... Output image, BLr ... Read block, BLw ... Write block, BLi1 ... Input block, BLo1 ... Output block, BLi2 ... Input block, BLo2 ... Output block, BLi3 ... Enlargement / reduction unit Input block, AP: Document area, Ao: Output area, Aov: Output valid area, Bf: Buffer, LBf: Line buffer CAPs: Document start point coordinates, CBLs: Block start point coordinates, Cos: Output start point coordinates, Ccos: Output start point corresponding coordinates, Ci: Input corresponding coordinates, Co: Output corresponding coordinates, Pp: Current pixel, Pn ... Next pixel, Ppl ... Current line pixel, Pnl ... Next line pixel, CBLis ... Input block start point coordinates, CBLins ... Next input block start point coordinates, CBLincs ... Next stage input block start point coordinates, CBLos ... Output Block start point coordinates, CBLons ... Next output block start point coordinates, CBLoncs ... Next stage output block start point coordinates, Cis ... Enlargement / reduction part input start point coordinates, Cins ... Enlargement / reduction part next block input start point coordinates, Cincs ... Enlargement / reduction part next stage Block input start point coordinates.

Claims (5)

入力画像が記憶されているメモリから補正する傾きに応じて始点座標を変えながら1ページのサイズよりも小さいブロック単位に画像を順次読み出すスキューブロック読み出し部と、
前記スキューブロック読み出し部で順次読み出されたブロック単位の画像各々の傾きを修正し、傾きが修正された画像をブロック単位に出力するブロック傾き修正部と、
前記ブロック傾き修正部が出力するブロック単位の画像に対して少なくとも任意倍率の拡縮処理を含む処理を行う拡縮付フィルタ処理部と、
前記拡縮付フィルタ処理部で処理された画像をメモリに順次書き込むブロック書き出し部と
を有する画像形成装置。
A skew block reading unit that sequentially reads out images in block units smaller than the size of one page while changing the start point coordinates in accordance with the inclination to be corrected from the memory in which the input image is stored;
A block inclination correction unit that corrects the inclination of each block-by-block image sequentially read out by the skew block reading unit, and outputs the image in which the inclination is corrected in block units;
An enlargement / reduction filter processing unit that performs processing including at least enlargement / reduction processing on an image in block units output by the block inclination correction unit;
An image forming apparatus comprising: a block writing unit that sequentially writes an image processed by the enlargement / reduction filter processing unit to a memory.
前記ブロック傾き修正部は、所定のサイズのバッファを備え、前記バッファを用いて傾きの補正を行い、その際、補正する傾きが大きくなると処理可能な画像のサイズが小さくなり、補正する傾きが小さくなると処理可能な画像のサイズが大きくなるように構成され、
前記スキューブロック読み出し部で読み出すブロック単位の画像のサイズは、前記ブロック傾き修正部で処理可能なサイズである
請求項1に記載の画像形成装置。
The block inclination correcting unit includes a buffer having a predetermined size, and performs inclination correction using the buffer. At this time, when the correction inclination increases, the size of the processable image decreases, and the correction inclination decreases. Is configured to increase the size of the image that can be processed,
The image forming apparatus according to claim 1, wherein a size of an image of a block unit read by the skew block reading unit is a size that can be processed by the block inclination correcting unit.
前記拡縮付フィルタ処理部は、1ページ分の幅より小さい幅の画像の処理に対応するためのラインバッファを備え、
前記スキューブロック読み出し部で読み出すブロック単位の画像のサイズは、前記ブロック傾き修正部で処理可能かつ前記拡縮付フィルタ処理部で処理可能なサイズである
請求項1又は請求項2に記載の画像形成装置。
The enlargement / reduction filter processing unit includes a line buffer for processing an image having a width smaller than the width of one page,
3. The image forming apparatus according to claim 1, wherein a size of an image in a block unit read by the skew block reading unit is a size that can be processed by the block inclination correction unit and can be processed by the enlargement / reduction filter processing unit. .
前記スキューブロック読み出し部と前記ブロック傾き修正部とは、傾きの修正と任意倍率の拡縮とのそれぞれの座標を管理するためのカウンタを有し、前記カウンタをもとに各処理の始点座標を変更して処理を行う
請求項1乃至請求項3の何れかに記載の画像形成装置。
The skew block reading unit and the block inclination correcting unit have a counter for managing the coordinates of inclination correction and enlargement / reduction at an arbitrary magnification, and the starting point coordinates of each process are changed based on the counter. The image forming apparatus according to claim 1, wherein the processing is performed.
前記ブロック傾き修正部は、傾きが修正された画像を前記メモリに書き込むことなくブロック単位で出力し、
前記拡縮付フィルタ処理部は、出力されたブロック単位の画像に対して前記任意倍率の拡縮処理を含む処理を行う
請求項1乃至請求項4の何れかに記載の画像形成装置。
The block inclination correction unit outputs the image whose inclination is corrected without writing to the memory in units of blocks,
The image forming apparatus according to claim 1, wherein the enlargement / reduction filter processing unit performs processing including enlargement / reduction processing at the arbitrary magnification on the output image in block units.
JP2016089049A 2016-04-27 2016-04-27 Image forming device Pending JP2017200042A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016089049A JP2017200042A (en) 2016-04-27 2016-04-27 Image forming device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016089049A JP2017200042A (en) 2016-04-27 2016-04-27 Image forming device

Publications (1)

Publication Number Publication Date
JP2017200042A true JP2017200042A (en) 2017-11-02

Family

ID=60238238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016089049A Pending JP2017200042A (en) 2016-04-27 2016-04-27 Image forming device

Country Status (1)

Country Link
JP (1) JP2017200042A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10596739B2 (en) 2015-03-18 2020-03-24 Riken Technos Corporation Molded body
US10780685B2 (en) 2015-03-18 2020-09-22 Riken Technos Corporation Hard coat laminated film
US10809418B2 (en) 2015-03-18 2020-10-20 Riken Technos Corporation Anti-glare hard coat laminated film
US10816700B2 (en) 2015-12-08 2020-10-27 Riken Technos Corporation Hard coat layered film
US11065852B2 (en) 2015-03-18 2021-07-20 Riken Technos Corporation Adhesive film
US11241866B2 (en) 2015-11-25 2022-02-08 Riken Technos Corporation Door body
US11352473B2 (en) 2015-03-18 2022-06-07 Riken Technos Corporation Hard coat laminated film and method for producing same
US11407870B2 (en) 2016-09-14 2022-08-09 Riken Technos Corporation Hard coat laminated film

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10596739B2 (en) 2015-03-18 2020-03-24 Riken Technos Corporation Molded body
US10780685B2 (en) 2015-03-18 2020-09-22 Riken Technos Corporation Hard coat laminated film
US10809418B2 (en) 2015-03-18 2020-10-20 Riken Technos Corporation Anti-glare hard coat laminated film
US11065852B2 (en) 2015-03-18 2021-07-20 Riken Technos Corporation Adhesive film
US11352473B2 (en) 2015-03-18 2022-06-07 Riken Technos Corporation Hard coat laminated film and method for producing same
US11241866B2 (en) 2015-11-25 2022-02-08 Riken Technos Corporation Door body
US10816700B2 (en) 2015-12-08 2020-10-27 Riken Technos Corporation Hard coat layered film
US11407870B2 (en) 2016-09-14 2022-08-09 Riken Technos Corporation Hard coat laminated film

Similar Documents

Publication Publication Date Title
JP2017200042A (en) Image forming device
JPH07262360A (en) Device and method for image processing
JP2002084420A (en) Image processing unit, image processing method and recording medium with stored image processing program
JP2018166277A (en) Image processing apparatus and computer program
US9600747B2 (en) Image forming apparatus and control method that execute a plurality of rendering processing units in parallel
JP5825306B2 (en) Image scaling apparatus and image scaling method
JPH06203153A (en) Method and device for processing image
JP4510847B2 (en) Image processing apparatus and image processing program
JP3026706B2 (en) Image processing device
US11570331B2 (en) Image processing apparatus, image processing method, and storage medium
JP2008107981A (en) Image processor and image processing method
JP2017134659A (en) Image forming apparatus
JP4325812B2 (en) Vector image drawing circuit and vector image drawing method
JP2013257665A (en) Movie processing apparatus and control method therefor
JP2014238821A (en) Image processing device, method, and program
JP6157234B2 (en) Image processing apparatus, image processing method, and program
JP3054315B2 (en) Image processing method and apparatus
JP2885996B2 (en) Image processing method and apparatus
JP2000149009A (en) Image processor
JP2845376B2 (en) Pixel density converter
JP2019032590A (en) Image processing device and image processing method, program, storage medium
JP3054299B2 (en) Image processing apparatus and method
JP4840033B2 (en) Image processing program and image processing apparatus
JP2021002781A (en) Image processing apparatus
JPS59195759A (en) Enlarging and contracting method of picture