JP2007156585A - Image processing program and image processor - Google Patents
Image processing program and image processor Download PDFInfo
- Publication number
- JP2007156585A JP2007156585A JP2005347377A JP2005347377A JP2007156585A JP 2007156585 A JP2007156585 A JP 2007156585A JP 2005347377 A JP2005347377 A JP 2005347377A JP 2005347377 A JP2005347377 A JP 2005347377A JP 2007156585 A JP2007156585 A JP 2007156585A
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- image
- scanning direction
- output image
- pixels
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 250
- 230000009467 reduction Effects 0.000 claims abstract description 206
- 238000004364 calculation method Methods 0.000 claims description 80
- 238000000034 method Methods 0.000 abstract description 165
- 238000012935 Averaging Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 85
- 230000000694 effects Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 13
- 230000014509 gene expression Effects 0.000 description 12
- 238000011946 reduction process Methods 0.000 description 12
- 238000007796 conventional method Methods 0.000 description 8
- 238000012790 confirmation Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 5
- 230000006866 deterioration Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 239000012634 fragment Substances 0.000 description 2
- 239000003086 colorant Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Landscapes
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
Description
本発明は、画像を縮小するための画像処理プログラム及び画像処理装置に関し、特に、高画質と処理速度の速さとを兼ね備えた画像処理プログラム及び画像処理装置に関する。 The present invention relates to an image processing program and an image processing apparatus for reducing an image, and more particularly to an image processing program and an image processing apparatus having both high image quality and high processing speed.
従来より、入力画像と異なるサイズの出力画像を得るためのアルゴリズムとして、ニアレストレイバー法(最近傍法)、バイリニア法(線形補完法)、バイキュービック法(3次補完法)、平均画素法などのアルゴリズムが存在する。 Conventionally, as an algorithm for obtaining an output image having a size different from that of the input image, a near-less traverser method (nearest neighbor method), a bilinear method (linear interpolation method), a bicubic method (third-order interpolation method), an average pixel method, etc. There are algorithms.
ここで、平均画素法は、縮小画像(出力画像)における元画像の占める面積を考慮して画素値を平均することによって縮小を行う縮小専用のアルゴリズムである。多くの場合、この平均画素法を用いて得た縮小画像の方が、他のアルゴリズムを用いて得た縮小画像に比べて高画質である。 Here, the average pixel method is a reduction-dedicated algorithm that performs reduction by averaging pixel values in consideration of the area occupied by the original image in the reduced image (output image). In many cases, a reduced image obtained using this average pixel method has higher image quality than reduced images obtained using other algorithms.
平均画素法を行う1つの手法としては、元画像の画像サイズを、一旦、縮小画像の画像サイズとの最小公倍数のサイズに拡大してから、画素値の平均値を得るという手法がある(例えば、特開2003−256827号公報(特許文献1)参照)。 One method for performing the average pixel method is a method in which the image size of the original image is temporarily enlarged to the size of the least common multiple of the image size of the reduced image and then the average value of the pixel values is obtained (for example, JP, 2003-256827, A (patent documents 1)).
平均画素法の別の手法としては、元画像の画像サイズを拡大することなく、縮小画像に対応する元画像部分に対する画素値の平均値を得るという手法がある。図12は、このように、縮小画像に対応する元画像部分に対する画素値の平均値を得る手法を説明するための模式図である。なお、図12では、理解を容易にする目的で、副走査方向(y方向)の縮小は考慮せず、主走査方向(x方向)のみが縮小される場合を図示する。 As another method of the average pixel method, there is a method of obtaining an average value of pixel values for an original image portion corresponding to a reduced image without enlarging the image size of the original image. FIG. 12 is a schematic diagram for explaining a method for obtaining the average value of the pixel values for the original image portion corresponding to the reduced image as described above. Note that FIG. 12 illustrates a case where only the main scanning direction (x direction) is reduced without considering reduction in the sub scanning direction (y direction) for easy understanding.
図12には、は、主走査方向に並ぶP’0〜P’4の5画素から構成される画像である元画像P’と、その元画像P’を縮小することによって得られたQ’0〜Q’2の3画素から構成される画像である縮小画像Q’とが図示されている。この図12に示した例のように、縮小画像Q’の1画素に対応する元画像P’の画素数は整数でない場合がある。例えば、図12に示すように、縮小画像Q’における画素Q’0は、元画像P’の画素P’0と画素P’1の一部とに対応する。
FIG. 12 shows an original image P ′ that is an image composed of five pixels P′0 to P′4 arranged in the main scanning direction, and Q ′ obtained by reducing the original image P ′. A reduced image Q ′, which is an image composed of three
元画像の画像サイズを拡大することなく、縮小画像に対応する元画像部分に対する画素値の平均値を得る手法をとる場合には、図13に示す処理によって平均画素法による縮小処理が行われる。図13は、縮小画像に対応する元画像部分に対する画素値の平均値を得る手法を用いた場合に中央演算装置によって実行される従来の平均画素処理を示すフローチャートである。 When a method of obtaining an average value of pixel values for the original image portion corresponding to the reduced image without enlarging the image size of the original image, reduction processing by the average pixel method is performed by the processing shown in FIG. FIG. 13 is a flowchart showing conventional average pixel processing executed by the central processing unit when a method of obtaining an average value of pixel values for an original image portion corresponding to a reduced image is used.
図13に示すように、この従来の平均画素処理は、まず、元画像P’の画像サイズ(ix’×iy’)と、ユーザによって指定された縮小画像Q’の画像サイズ(ox’×oy’)とから、縮小率を算出し(S1301)、算出された縮小率に応じて、縮小画像Q’の1画素に対応する元画像P’の範囲を決定する(S1302)。 As shown in FIG. 13, this conventional average pixel processing is performed by first, the image size (ix ′ × iy ′) of the original image P ′ and the image size (ox ′ × oy) of the reduced image Q ′ designated by the user. '), The reduction rate is calculated (S1301), and the range of the original image P ′ corresponding to one pixel of the reduced image Q ′ is determined according to the calculated reduction rate (S1302).
次いで、縮小画像Q’における画素の主走査方向(x方向)の座標i’out及び副走査方向(y方向)の座標j’outを、先頭座標である(0,0)に設定し(S1303)、変数Planeの値を0に設定する(S1304)。なお、この変数Planeは、カラープレーンを指定するための変数である。ここで、画像データがRGBから構成されている場合には、変数Pleneの値は0から2までの3つの値を取り得ることになる。この変数Planeの値によって、赤(R)プレーン(Plane=0)、緑(G)プレーン(Plane=1)、及び青(B)プレーン(Plane=2)のいずれかのカラープレーンを指定することができる。この図13に示す例では、画像データがRGBから構成されているものとして説明する。 Then, the coordinate j 'out' of the main scanning direction of the pixel at the coordinate i in the (x-direction) 'reduced image Q out and the sub-scanning direction (y-direction) is set to a beginning coordinate (0,0) (S1303 ), The value of the variable Plane is set to 0 (S1304). This variable Plane is a variable for designating a color plane. Here, when the image data is composed of RGB, the value of the variable Plene can take three values from 0 to 2. According to the value of this variable Plane, one of the color planes of red (R) plane (Plane = 0), green (G) plane (Plane = 1), and blue (B) plane (Plane = 2) is designated. Can do. In the example shown in FIG. 13, the image data is assumed to be composed of RGB.
S1304の処理後、縮小画像Q’における座標(i’out,j’out)の画素に対応する元画像P’の領域における、Plane値によって指定されたカラープレーンの画素値の平均値(平均画素値)を算出し(S1305)、算出した平均画素値をバッファに出力する(S1306)。 After the processing of S1304, the average value (average pixel) of the pixel values of the color plane specified by the Plane value in the area of the original image P ′ corresponding to the pixel at the coordinates (i ′ out , j ′ out ) in the reduced image Q ′ Value) is calculated (S1305), and the calculated average pixel value is output to the buffer (S1306).
S1306の処理後、変数Planeの値が2であるかを確認し(S1307)、変数Planeの値が0又は1であれば(S1307:No)、変数Planeの値に1加算し(S1310)、S1305へ移行する。即ち、次のPlane値に対応するカラープレーンに対し、S1305〜S1306の処理を実行する。 After the processing of S1306, it is confirmed whether the value of the variable Plane is 2 (S1307). If the value of the variable Plane is 0 or 1 (S1307: No), 1 is added to the value of the variable Plane (S1310), The process proceeds to S1305. That is, the processing of S1305 to S1306 is executed for the color plane corresponding to the next plane value.
一方で、S1307の処理により確認した結果、変数Planeの値が2であれば(S1307:Yes)、縮小画像Q’における座標(i’out,j’out)の画素の画素値が、全てのカラープレーン(RGB)に対して得られたことを示すので、次に、i’out=ox’であるか、即ち、出力画像Qにおける座標(i’out,j’out)の画素が主走査方向の終端の画素であるかを確認する(S1308)。 On the other hand, if the value of the variable Plane is 2 as a result of the confirmation in S1307 (S1307: Yes), the pixel values of the pixels at the coordinates (i ′ out , j ′ out ) in the reduced image Q ′ are all Since it is obtained for the color plane (RGB), next, i ′ out = ox ′, that is, the pixel at the coordinates (i ′ out , j ′ out ) in the output image Q is main scanned. It is confirmed whether the pixel is at the end of the direction (S1308).
S1308の処理により確認した結果、i’out=ox’でなければ(S1308:No)、i’outの値に1加算して、縮小画像Q’の画素を主走査方向に1進め(S1311)、S1304へ移行し、S1311において主走査方向に1進められた出力画像Q’の画素に対し、S1304〜S1307,S1310の処理を実行する。 If i ′ out = ox ′ is not the result of the confirmation in S1308 (S1308: No), 1 is added to the value of i ′ out , and the pixel of the reduced image Q ′ is advanced by 1 in the main scanning direction (S1311). , The process proceeds to S1304, and the processes of S1304 to S1307 and S1310 are executed for the pixels of the output image Q ′ advanced by 1 in the main scanning direction in S1311.
一方で、S1308の処理により確認した結果、i’out=ox’であれば(S1308:Yes)、同じ副走査方向の座標j’outに位置する全ての画素に対して平均画素値の算出が行われたことを示すので、次に、j’out=oy’であるか、即ち、縮小画像Q’における座標(i’out,j’out)の画素が副走査方向の終端の画素であるかを確認する(S1309)。 On the other hand, if i ′ out = ox ′ as a result of confirmation in the processing of S1308 (S1308: Yes), the average pixel value is calculated for all the pixels located at the coordinate j ′ out in the same sub-scanning direction. Next, j ′ out = oy ′, that is, the pixel at the coordinates (i ′ out , j ′ out ) in the reduced image Q ′ is the end pixel in the sub-scanning direction. (S1309).
S1309の処理により確認した結果、j’out=oy’でなければ(S1309:No)、j’outの値に1加算すると共に(S1312)、i’outの値を0に設定する(S1313)。S1312及びS1313の処理の結果として、縮小画像Q’を構成する画素の中から選択される画素の位置が、副走査方向に1進められると共に、主走査方向の先頭座標に戻される。S1313の処理後、S1304へ移行し、S1313において副走査方向に1進められた出力画像Q’の画素に対し、S1304〜S1307,S1310の処理を実行する。 Judgment of the step S1309, else j 'out = oy' (S1309 : No), ' as well as 1 is added to the value of out (S1312), i' j the value of out is set to 0 (S1313) . As a result of the processing in S1312 and S1313, the position of the pixel selected from the pixels constituting the reduced image Q ′ is advanced by 1 in the sub-scanning direction and returned to the top coordinate in the main scanning direction. After the processing of S1313, the process proceeds to S1304, and the processing of S1304 to S1307 and S1310 is executed for the pixels of the output image Q ′ advanced by 1 in the sub-scanning direction in S1313.
一方で、S1309の処理により確認した結果、j’out=oyであれば(S1309:Yes)、縮小画像Q’における全て((ox’×oy’)個)の画素に対して平均画素値の算出が行われたことを示すので、この従来の平均画素処理を終了する。この従来の平均画素処理の実行結果として、元画像サイズ(ix’×iy’)の元画像P’から平均画素法によって縮小された出力画像サイズ(ox’×oy’)の縮小画像Q’が得られる。 On the other hand, if j ′ out = oy is confirmed as a result of the processing in S1309 (S1309: Yes), the average pixel value of all ((ox ′ × oy ′)) pixels in the reduced image Q ′ is determined. Since this indicates that the calculation has been performed, this conventional average pixel processing is terminated. As an execution result of this conventional average pixel processing, a reduced image Q ′ having an output image size (ox ′ × oy ′) reduced by the average pixel method from the original image P ′ having the original image size (ix ′ × iy ′) is obtained. can get.
しかしながら、平均画素法は、他のアルゴリズムに比べて高画質である一方で、一般的に処理速度が遅く、特に、最小公倍数を用いる上記手法によって平均画素法を実行した場合には、縮小率の値によっては最小公倍数(元画像が拡大される画像サイズ)が大きくなりすぎて、処理不能に陥ることがあるという問題点があった。 However, while the average pixel method has higher image quality than other algorithms, the processing speed is generally slow. Particularly, when the average pixel method is executed by the above method using the least common multiple, the reduction ratio is small. Depending on the value, there is a problem that the least common multiple (image size at which the original image is enlarged) becomes too large, and processing may become impossible.
また、元画像の画像サイズを拡大することなく、縮小画像に対応する元画像部分に対する画素値の平均値を得るという手法によって平均画素法を実行した場合(上記した図13のフローチャートに対応する処理)には、元画像の画像サイズを拡大する場合に比べて処理速度は向上するものの、ニアレストレイバー法やバイリニア法などの他のアルゴリズムを用いた縮小時の処理速度と比べると遅く、さらなる処理速度の向上が望まれる。 Further, when the average pixel method is executed by a method of obtaining an average value of pixel values for the original image portion corresponding to the reduced image without enlarging the image size of the original image (processing corresponding to the above-described flowchart of FIG. 13). ), The processing speed is improved compared to the case of enlarging the size of the original image, but it is slower than the processing speed at the time of reduction using other algorithms such as the near-less tray method and the bilinear method, and further processing is performed. An improvement in speed is desired.
その原因としては、図13におけるS1305において、浮動小数演算が行われるためであると考えられる。図12に示した例を用いて具体的に説明すると、画像Q’0に対応する画素P’1部分を、画素全体を(1−t):tの比で分けた(1−t)に相当する部分であるとすると、図13におけるS1305では、{1×P’0+(1−t)×P’1}/{1+(1−t)}という演算が行われて、画素Q’0の画素値(平均画素値)が計算される。ここで(1−t)は小数であるので、浮動小数演算が行われ、その結果として、演算処理の速度向上に限界が生じると考えられる。 The reason is considered to be that floating point arithmetic is performed in S1305 in FIG. Specifically, using the example shown in FIG. 12, the pixel P′1 corresponding to the image Q′0 is divided into (1-t) by dividing the entire pixel by a ratio of (1-t): t. If it is a corresponding part, in S1305 in FIG. 13, an operation of {1 × P′0 + (1−t) × P′1} / {1+ (1−t)} is performed, and the pixel Q′0 Pixel values (average pixel values) are calculated. Here, since (1-t) is a decimal number, floating-point arithmetic is performed, and as a result, it is considered that there is a limit to the speed improvement of arithmetic processing.
本発明は、上述した問題点を解決するためになされたものであり、高画質な縮小画像を得られる平均画素法を、従来に比べて高速な処理速度で実行可能な画像処理プログラム及び画像処理装置を提供することを目的としている。 The present invention has been made to solve the above-described problems, and an image processing program and an image processing capable of executing an average pixel method capable of obtaining a high-quality reduced image at a higher processing speed than conventional methods. The object is to provide a device.
この目的を達成するために、請求項1記載の画像処理プログラムは、画素数(ix×iy)からなる略矩形の元画像を所定の縮小率で縮小し、画素数(ox×oy)からなる略矩形の出力画像を得るために演算装置に実行させるプログラムであって、前記縮小率を取得する縮小率取得ステップと、前記元画像を構成する各画素を(nDev×nDev)(nDevは2以上の整数)個の分割ブロックに分割するための分割数nDevを取得する分割数取得ステップと、前記出力画像の各画素毎に、該出力画像の1画素に対応する整数個の前記分割ブロックの数を、前記縮小率取得ステップにより取得された縮小率に基づいて計算する処理ブロック数演算ステップと、前記出力画像の各画素毎に、前記処理ブロック数演算ステップにより求められた数の分割ブロックに対応する前記元画像の領域の平均画素値を計算する平均画素値演算ステップとを備えている。
In order to achieve this object, the image processing program according to
請求項2記載の画像処理プログラムは、請求項1記載の画像処理プログラムにおいて、前記処理ブロック数演算ステップは、前記縮小率に基づく主走査方向又は副走査方向の分割ブロック数が小数で表された場合に、小数点以下を切り捨てることによって整数個の前記分割ブロック数として取り扱う。
The image processing program according to
請求項3記載の画像処理プログラムは、請求項1又は2に記載の画像処理プログラムにおいて、前記処理ブロック数演算ステップは、前記出力画像における1の画素に対応する前記分割ブロックの数を計算する際に、前記平均画素値演算ステップにおいて既に使用された前記分割ブロックに隣接する前記分割ブロックを始点として、前記出力画像の1画素に対応する前記分割ブロックの数を計算する。
The image processing program according to claim 3 is the image processing program according to
請求項4記載の画像処理プログラムは、請求項1から3のいずれかに記載の画像処理プログラムにおいて、前記平均画素値演算ステップの実行前に、前記出力画像の各画素毎に、その主走査方向を、(1a)前記元画像において未処理部分を残す画素における該未処理部分に相当するx1個(x1は、0以上かつnDev未満の整数)の前記分割ブロックからなる領域と、(1b)前記元画像において、前記領域(1a)に隣接し、完全な画素をN個(Nは1以上の整数)並べてなる領域と、(1c)前記元画像において、前記領域(1b)に隣接し、1画素に満たないx2個(x2は、0以上かつnDev未満の整数)の残余部分からなる領域とに区分する主走査方向区分ステップを備え、前記平均画素値演算ステップは、前記主走査方向区分ステップにより区分された各領域毎に、画素値の総和を求め、その画素値の総和を、前記処理ブロック数演算ステップにより求められた出力画像の1画素に対応する前記分割ブロックの数で割ることによって求める。
The image processing program according to
請求項5記載の画像処理プログラムは、請求項4記載の画像処理プログラムにおいて、前記領域(1a)を含む画素の主走査方向における画素位置を計算する主走査方向画素位置計算ステップを備えている。 An image processing program according to a fifth aspect is the image processing program according to the fourth aspect, further comprising a main scanning direction pixel position calculating step of calculating a pixel position in the main scanning direction of the pixel including the region (1a).
請求項6記載の画像処理プログラムは、請求項1から5のいずれかに記載の画像処理プログラムにおいて、前記平均画素値演算ステップの実行前に、前記出力画像の各画素毎に、その副走査方向を、(2a)前記元画像において未処理部分を残す画素における該未処理部分に相当するy1個(y1は、0以上かつnDev未満の整数)の前記分割ブロックからなる領域と、(2b)前記元画像において、前記領域(2a)に隣接し、完全な画素をM個(Mは1以上の整数)並べてなる領域と、(2c)前記元画像において、前記領域(2b)に隣接し、1画素に満たないy2個(y2は、0以上かつnDev未満の整数)の残余部分からなる領域とに区分する副走査方向区分ステップを備え、
前記平均画素値演算ステップは、前記副走査方向区分ステップにより区分された各領域毎、又は、前記副走査方向区分ステップと前記主走査方向区分ステップとによる区分の結果として生じる各領域毎に、画素値の総和を求め、その画素値の総和を、前記処理ブロック数演算ステップにより求められた出力画像の1画素に対応する前記分割ブロックの数で割ることによって求める。
The image processing program according to claim 6 is the image processing program according to any one of
The average pixel value calculating step is performed for each area divided by the sub-scanning direction dividing step, or for each area generated as a result of the division by the sub-scanning direction dividing step and the main scanning direction dividing step. The sum of the values is obtained, and the sum of the pixel values is obtained by dividing the sum of the pixel values by the number of the divided blocks corresponding to one pixel of the output image obtained in the processing block number calculating step.
請求項7記載の画像処理プログラムは、請求項6記載の画像処理プログラムにおいて、前記領域(2a)を含む画素の副走査方向における画素位置を計算する副走査方向画素位置計算ステップを備えている。 An image processing program according to a seventh aspect is the image processing program according to the sixth aspect, further comprising a sub-scanning direction pixel position calculating step of calculating a pixel position in the sub-scanning direction of the pixel including the region (2a).
請求項8記載の画像処理プログラムは、請求項1から7のいずれかに記載の画像処理プログラムにおいて、前記入力画素の画素数(ix×iy)の値を取得する入力画像サイズ取得ステップと、前記出力画像の画素数(ox×oy)の値を入力する出力画像サイズ入力ステップとを備え、前記縮小率取得ステップは、前記入力画像サイズ取得ステップにより取得された前記入力画像の画素数(ix×iy)の値と、出力画像サイズ入力ステップにより入力された前記出力画像の画素数(ox×oy)の値とから、縮小率を取得する。
An image processing program according to claim 8 is the image processing program according to any one of
請求項9記載の画像処理プログラムは、請求項1から8のいずれかに記載の画像処理プログラムにおいて、前記入力画素の画素数(ix×iy)から画素数(ox×oy)の前記出力画像を得るための縮小率を入力する縮小率入力ステップを備え、前記縮小率取得ステップは、前記縮小率入力ステップにより入力された縮小率を取得する。 An image processing program according to a ninth aspect is the image processing program according to any one of the first to eighth aspects, wherein the output image having the number of pixels (ix × iy) to the number of pixels (ox × oy) is changed. A reduction rate input step for inputting a reduction rate to obtain, wherein the reduction rate acquisition step acquires the reduction rate input in the reduction rate input step;
請求項10記載の画像処理装置は、画素数(ix×iy)からなる略矩形の元画像を入力する入力手段と、その入力手段から入力された元画像を所定の縮小率で縮小し、画素数(ox×oy)からなる略矩形の出力画像を得る縮小手段を備えたものであって、前記縮小手段は、前記縮小率を取得する縮小率取得手段と、前記元画像を構成する各画素を(nDev×nDev)(nDevは2以上の整数)個の分割ブロックに分割するための分割数nDevを取得する分割数取得手段と、前記出力画像の各画素毎に、該出力画像の1画素に対応する整数個の前記分割ブロックの数を、前記縮小率取得手段より取得された縮小率に基づいて計算する処理ブロック数演算手段と、前記出力画像の各画素毎に、前記処理ブロック数演算手段より求められた数の分割ブロックに対応する前記元画像の領域の平均画素値を計算する平均画素値演算手段とを含む。 The image processing apparatus according to claim 10, wherein an input unit that inputs a substantially rectangular original image having the number of pixels (ix × iy), and the original image input from the input unit is reduced at a predetermined reduction rate, and pixels A reduction unit that obtains a substantially rectangular output image having a number (ox × oy), wherein the reduction unit includes a reduction rate acquisition unit that acquires the reduction rate; and each pixel that forms the original image Division number acquisition means for acquiring a division number nDev for dividing (nDev × nDev) (nDev is an integer greater than or equal to 2) division blocks, and one pixel of the output image for each pixel of the output image Processing block number calculation means for calculating the number of integer blocks corresponding to the number of blocks based on the reduction ratio acquired by the reduction ratio acquisition means, and the processing block number calculation for each pixel of the output image Sought by means And a mean pixel value calculating means for calculating an average pixel value of the region of the original image corresponding to the number of divided blocks.
請求項11記載の画像処理装置は、請求項10記載の画像処理装置において、前記処理ブロック数演算手段は、前記縮小率に基づく主走査方向又は副走査方向の分割ブロック数が小数で表された場合に、小数点以下を切り捨てることによって整数個の前記分割ブロック数として取り扱う。
The image processing device according to
請求項12記載の画像処理装置は、請求項10又は11に記載の画像処理装置において、前記処理ブロック数演算手段は、前記出力画像における1の画素に対応する前記分割ブロックの数を計算する際に、前記平均画素値演算手段において既に使用された前記分割ブロックに隣接する前記分割ブロックを始点として、前記出力画像の1画素に対応する前記分割ブロックの数を計算する。
The image processing device according to
請求項13記載の画像処理装置は、請求項10から12のいずれかに記載の画像処理装置において、前記平均画素値演算手段の前に、前記出力画像の各画素毎に、その主走査方向を、(1a)前記元画像において未処理部分を残す画素における該未処理部分に相当するx1個(x1は、0以上かつnDev未満の整数)の前記分割ブロックからなる領域と、(1b)前記元画像において、前記領域(1a)に隣接し、完全な画素をN個(Nは1以上の整数)並べてなる領域と、(1c)前記元画像において、前記領域(1b)に隣接し、1画素に満たないx2個(x2は、0以上かつnDev未満の整数)の残余部分からなる領域とに区分する主走査方向区分手段を備え、前記平均画素値演算手段は、前記主走査方向区分手段により区分された各領域毎に、画素値の総和を求め、その画素値の総和を、前記処理ブロック数演算手段により求められた出力画像の1画素に対応する前記分割ブロックの数で割ることによって求める。
The image processing device according to
請求項14記載の画像処理装置は、請求項10から13のいずれかに記載の画像処理装置において、前記平均画素値演算手段の前に、前記出力画像の各画素毎に、その副走査方向を、(2a)前記元画像において未処理部分を残す画素における該未処理部分に相当するy1個(y1は、0以上かつnDev未満の整数)の前記分割ブロックからなる領域と、(2b)前記元画像において、前記領域(2a)に隣接し、完全な画素をN個(Nは1以上の整数)並べてなる領域と、(2c)前記元画像において、前記領域(2b)に隣接し、1画素に満たないy2個(y2は、0以上かつnDev未満の整数)の残余部分からなる領域とに区分する副走査方向区分手段を備え、前記平均画素値演算手段は、前記副走査方向区分手段により区分された各領域毎、又は、前記副走査方向区分手段と前記主走査方向区分手段とによる区分の結果として生じる各領域毎に、画素値の総和を求め、その画素値の総和を、前記処理ブロック数演算手段により求められた出力画像の1画素に対応する前記分割ブロックの数で割ることによって求める。 The image processing device according to claim 14 is the image processing device according to any one of claims 10 to 13, wherein the sub-scanning direction is set for each pixel of the output image before the average pixel value calculation means. (2a) an area composed of y1 (y1 is an integer greater than or equal to 0 and less than nDev) corresponding to the unprocessed portion in a pixel that leaves an unprocessed portion in the original image; and (2b) the element In the image, an area adjacent to the area (2a) and in which N complete pixels are arranged (N is an integer of 1 or more), and (2c) in the original image, adjacent to the area (2b), 1 pixel Sub-scanning direction partitioning means for partitioning into regions consisting of the remaining portions of y2 (y2 is an integer less than or equal to 0 and less than nDev), and the average pixel value calculating means includes the sub-scanning direction partitioning means Divided The sum of pixel values is obtained for each area or for each area generated as a result of the division by the sub-scanning direction dividing means and the main scanning direction dividing means, and the sum of the pixel values is calculated as the number of processing blocks. It is obtained by dividing by the number of the divided blocks corresponding to one pixel of the output image obtained by the means.
請求項15記載の画像処理装置は、請求項10から14のいずれかに記載の画像処理装置において、前記入力手段から入力された入力画素の画素数(ix×iy)の値を取得する入力画像サイズ取得手段と、前記出力画像の画素数(ox×oy)の値を入力する出力画像サイズ入力手段とを備え、前記縮小率取得手段は、前記入力画像サイズ取得手段により取得された前記入力画像の画素数(ix×iy)の値と、出力画像サイズ入力手段により入力された前記出力画像の画素数(ox×oy)の値とから、縮小率を取得する。
The image processing device according to
請求項16記載の画像処理装置は、請求項10から15のいずれかに記載の画像処理装置において、前記入力画素の画素数(ix×iy)から画素数(ox×oy)の前記出力画像を得るための縮小率を入力する縮小率入力手段を備え、前記縮小率取得手段は、前記縮小率入力手段により入力された縮小率を取得することを特徴とする請求項10から15のいずれかに記載の画像処理装置。 The image processing device according to claim 16 is the image processing device according to any one of claims 10 to 15, wherein the output image having the number of pixels (ix × iy) to the number of pixels (ox × oy) is output. 16. The reduction rate input means for inputting a reduction rate for obtaining, wherein the reduction rate acquisition means acquires the reduction rate input by the reduction rate input means. The image processing apparatus described.
請求項1記載の画像処理プログラムによれば、画素数(ix×iy)からなる略矩形の元画像を画素数(ox×oy)からなる略矩形の出力画像とするための縮小率が、縮小率取得ステップを演算装置に実行させることによって取得され、その一方で、分割数取得ステップを演算装置に実行させることにより、元画像を構成する各画素を(nDev×nDev)(nDevは2以上の整数)個の分割ブロックに分割するための分割数nDevが取得される。
According to the image processing program of
次いで、処理ブロック数演算ステップを演算装置に実行させることによって、出力画像の1画素に対応する整数個の分割ブロックの数が、縮小率取得ステップの実行結果として取得された縮小率に基づいて、該出力画像の各画素毎に計算される。 Next, by causing the arithmetic unit to execute the processing block number calculation step, the number of integer divided blocks corresponding to one pixel of the output image is determined based on the reduction rate acquired as the execution result of the reduction rate acquisition step. It is calculated for each pixel of the output image.
次に、平均画素値演算ステップを演算装置に実行させることによって、処理ブロック数演算ステップの実行結果として求められた数の分割ブロックに対応する元画像領域の平均画素値が、出力画像の各画素毎に計算される。 Next, by causing the arithmetic unit to execute the average pixel value calculation step, the average pixel value of the original image area corresponding to the number of divided blocks obtained as the execution result of the processing block number calculation step is calculated for each pixel of the output image. Calculated every time.
よって、元画像をnDev個に分割することによって生じた分割ブロックを単位として、縮小画像(出力画像)の1画素における平均画素値を算出するので、縮小率に応じて生じる小数を浮動小数演算によって演算するのではなく、整数演算によって平均画素値を得ることができる。その結果、平均画素法の処理速度が従来に比べて格段に向上し、速い速度で高画質な縮小画像を得ることができるという効果がある。また、整数演算によって平均画素値を算出できるので、組み込み系への実装に適しているという効果がある。 Therefore, since the average pixel value in one pixel of the reduced image (output image) is calculated in units of divided blocks generated by dividing the original image into nDev pieces, the decimal number generated according to the reduction rate is calculated by floating-point arithmetic. The average pixel value can be obtained by integer calculation instead of calculation. As a result, the processing speed of the average pixel method is remarkably improved as compared with the conventional method, and there is an effect that a high-quality reduced image can be obtained at a high speed. In addition, since the average pixel value can be calculated by integer arithmetic, there is an effect that it is suitable for mounting in an embedded system.
また、元画像の画像サイズを、縮小画像の画像サイズとの最小公倍数のサイズに拡大することなく、縮小画像を得ることができるので、平均画素法の処理速度が従来に比べて格段に向上し、速い速度で高画質な縮小画像を得ることができるという効果がある。 In addition, since the reduced image can be obtained without increasing the image size of the original image to the least common multiple of the image size of the reduced image, the processing speed of the average pixel method is significantly improved compared to the conventional method. There is an effect that a high-quality reduced image can be obtained at a high speed.
請求項2記載の画像処理プログラムによれば、請求項1記載の画像処理プログラムの奏する効果に加えて、処理ブロック数演算ステップでは、縮小率に基づく主走査方向又は副走査方向の分割ブロック数が小数で表された場合に、小数点以下を切り捨てることによって整数個の分割ブロック数として取り扱う。 According to the image processing program of the second aspect, in addition to the effect produced by the image processing program of the first aspect, in the processing block number calculation step, the number of divided blocks in the main scanning direction or the sub scanning direction based on the reduction ratio is determined. When expressed as a decimal, it is handled as an integer number of divided blocks by truncating the decimal part.
よって、小数点以下が切り捨てられることにより1個の分割ブロックを単位として平均画素値の演算が行われる。その結果として、平均画素値を整数演算によって算出することができるので、結果として、平均画素法の処理速度が従来に比べて格段に向上し、速い速度で高画質な縮小画像を得ることができるという効果がある。 Accordingly, the average pixel value is calculated in units of one divided block by truncating the decimal part. As a result, the average pixel value can be calculated by integer arithmetic. As a result, the processing speed of the average pixel method is significantly improved compared to the conventional method, and a high-quality reduced image can be obtained at a high speed. There is an effect.
請求項3記載の画像処理プログラムによれば、請求項1又は2に記載の画像処理プログラムの奏する効果に加えて、処理ブロック数演算ステップでは、出力画像における1の画素に対応する分割ブロックの数を計算する際に、平均画素値演算ステップの実行によって既に使用された分割ブロックに隣接する分割ブロックを始点として、出力画像の1画素に対応する分割ブロックの数の計算を行う。
According to the image processing program of claim 3, in addition to the effect produced by the image processing program of
よって、元画像に含まれる全ての画素情報が縮小画像(出力画像)を得るために用いられることになる。従って、縮小に伴う画質劣化を抑制でき、高画質な出力画像が得られるという効果がある。 Therefore, all the pixel information included in the original image is used to obtain a reduced image (output image). Therefore, it is possible to suppress image quality deterioration due to reduction and to obtain an output image with high image quality.
請求項4記載の画像処理プログラムによれば、請求項1から3のいずれかに記載の画像処理プログラムの奏する効果に加えて、平均画素値演算ステップの実行前に、主走査方向区分ステップを演算装置に実行させることによって、出力画像の各画素毎に、その各画素の主走査方向が、(1a)元画像において未処理部分を残す画素における該未処理部分に相当するx1個(x1は、0以上かつnDev未満の整数)の分割ブロックからなる領域と、(1b)元画像において、領域(1a)に隣接し、完全な画素をN個(Nは1以上の整数)並べてなる領域と、(1c)元画像において、領域(1b)に隣接し、1画素に満たないx2個(x2は、0以上かつnDev未満の整数)の残余部分からなる領域とに区分される。 According to the image processing program of the fourth aspect, in addition to the effect produced by the image processing program according to any one of the first to third aspects, the main scanning direction division step is calculated before the execution of the average pixel value calculating step. By causing the apparatus to execute, for each pixel of the output image, the main scanning direction of each pixel is (1a) x1 corresponding to the unprocessed portion in the pixel that leaves the unprocessed portion in the original image (x1 is An area composed of divided blocks of 0 or more and less than nDev), and (1b) an area adjacent to the area (1a) in the original image and arranged with N complete pixels (N is an integer of 1 or more); (1c) In the original image, the area is divided into an area that is adjacent to the area (1b) and is composed of x2 remaining parts (x2 is an integer not less than 0 and less than nDev) that is less than one pixel.
平均画素値演算ステップでは、主走査方向区分ステップの実行結果として区分された各領域毎に、画素値の総和を求めた上で、その画素値の総和を、処理ブロック数演算ステップの実行結果として求められた出力画像の1画素に対応する分割ブロックの数で割る。 In the average pixel value calculation step, the sum of the pixel values is obtained for each area divided as the execution result of the main scanning direction division step, and the sum of the pixel values is used as the execution result of the processing block number calculation step. Divide by the number of divided blocks corresponding to one pixel of the obtained output image.
よって、出力画像の1画素における主走査方向を、N個の完全な元画像の画素から構成される領域(1b)と、その両側に隣接する1画素に満たない元画像の領域(1a,1c)とを区分することによって、1画素に満たない元画像の領域(1a,1c)に含まれる分割ブロック数を容易に算出でき、結果として、平均画素値を容易に算出できるという効果がある。 Therefore, in the main scanning direction of one pixel of the output image, the region (1b) composed of N complete original image pixels and the original image region (1a, 1c less than one pixel adjacent to both sides) ), It is possible to easily calculate the number of divided blocks included in the area (1a, 1c) of the original image that is less than one pixel, and as a result, it is possible to easily calculate the average pixel value.
請求項5記載の画像処理プログラムによれば、請求項4記載の画像処理プログラムの奏する効果に加えて、主走査方向画素位置計算ステップを演算装置に実行させることによって、領域(1a)を含む画素の主走査方向における画素位置が計算される。 According to the image processing program of the fifth aspect, in addition to the effect produced by the image processing program according to the fourth aspect, the pixel including the region (1a) is obtained by causing the arithmetic unit to execute the main scanning direction pixel position calculating step. The pixel position in the main scanning direction is calculated.
よって、領域(1a)を含む画素の主走査方向における画素位置が計算された結果として、その領域(1a)を含む画素の主走査方向に隣接する領域(1b)の最初の画素の画素位置と、領域(1b)に含まれる画素数から領域(1c)を含む画素の主走査方向における画素位置とを容易に求めることができる。その結果として、出力画像の1画素が、1画素に満たない元画像の領域(1a)及び領域(1c)を含む場合においても、平均画素値を容易に算出できるという効果がある。 Therefore, as a result of calculating the pixel position in the main scanning direction of the pixel including the region (1a), the pixel position of the first pixel in the region (1b) adjacent in the main scanning direction of the pixel including the region (1a) The pixel position in the main scanning direction of the pixel including the region (1c) can be easily obtained from the number of pixels included in the region (1b). As a result, even when one pixel of the output image includes the area (1a) and the area (1c) of the original image that is less than one pixel, there is an effect that the average pixel value can be easily calculated.
請求項6記載の画像処理プログラムによれば、請求項1から5のいずれかに記載の画像処理プログラムの奏する効果に加えて、平均画素値演算ステップの実行前に、副走査方向区分ステップを演算装置に実行させることによって、出力画像の各画素毎に、その各画素の副走査方向が、(2a)元画像において未処理部分を残す画素における該未処理部分に相当するy1個(y1は、0以上かつnDev未満の整数)の分割ブロックからなる領域と、(2b)元画像において、領域(2a)に隣接し、完全な画素をM個(Mは1以上の整数)並べてなる領域と、(2c)元画像において、領域(2b)に隣接し、1画素に満たないy2個(y2は、0以上かつnDev未満の整数)の残余部分からなる領域とに区分される。
According to the image processing program of claim 6, in addition to the effect produced by the image processing program according to any one of
平均画素値演算ステップでは、副走査方向区分ステップの実行結果として区分された各領域毎、又は、副走査方向区分ステップ及び主走査方向区分ステップの実行結果として区分された各領域毎に、画素値の総和を求めた上で、その画素値の総和を、処理ブロック数演算ステップの実行結果として求められた出力画像の1画素に対応する分割ブロックの数で割る。 In the average pixel value calculation step, the pixel value is obtained for each area divided as the execution result of the sub-scanning direction division step or for each area divided as the execution result of the sub-scanning direction division step and the main scanning direction division step. Then, the sum of the pixel values is divided by the number of divided blocks corresponding to one pixel of the output image obtained as the execution result of the processing block number calculation step.
よって、出力画像の1画素における副走査方向を、M個の完全な元画像の画素から構成される領域(2b)と、その両側に隣接する1画素に満たない元画像の領域(2a,2c)とを区分することによって、画素に満たない元画像の領域(2a,2c)に含まれる分割ブロック数を容易に算出でき、結果として、平均画素値を容易に算出できるという効果がある。 Therefore, the sub-scanning direction of one pixel of the output image is divided into an area (2b) composed of M complete original image pixels and an original image area (2a, 2c less than one pixel adjacent to both sides). ), It is possible to easily calculate the number of divided blocks included in the area (2a, 2c) of the original image that is less than the pixels, and as a result, it is possible to easily calculate the average pixel value.
請求項7記載の画像処理プログラムによれば、請求項6記載の画像処理プログラムの奏する効果に加えて、副走査方向画素位置計算ステップを演算装置に実行させることによって、領域(2a)を含む画素の副走査方向における画素位置が計算される。 According to the image processing program of the seventh aspect, in addition to the effect produced by the image processing program according to the sixth aspect, by causing the arithmetic unit to execute the sub-scanning direction pixel position calculating step, the pixel including the region (2a) The pixel position in the sub-scanning direction is calculated.
よって、領域(2a)を含む画素の副走査方向における画素位置が計算された結果として、その領域(2a)を含む画素の副走査方向に隣接する領域(2b)の最初の画素の画素位置と、領域(2b)に含まれる画素数から領域(2c)を含む画素の副走査方向における画素位置とを容易に求めることができる。その結果として、出力画像の1画素が、1画素に満たない元画像の領域(2a)及び領域(2c)を含む場合においても、平均画素値を容易に算出できるという効果がある。 Therefore, as a result of calculating the pixel position in the sub-scanning direction of the pixel including the region (2a), the pixel position of the first pixel in the region (2b) adjacent in the sub-scanning direction of the pixel including the region (2a) The pixel position in the sub-scanning direction of the pixel including the region (2c) can be easily obtained from the number of pixels included in the region (2b). As a result, even when one pixel of the output image includes the area (2a) and the area (2c) of the original image that is less than one pixel, the average pixel value can be easily calculated.
請求項8記載の画像処理プログラムによれば、請求項1から7のいずれかに記載の画像処理プログラムの奏する効果に加えて、縮小率取得ステップでは、入力画像サイズ取得ステップの実行結果として取得された入力画像の画素数(ix×iy)の値と、出力画像サイズ入力ステップの実行結果として入力された出力画像の画素数(ox×oy)の値とから、縮小率を取得する。 According to the image processing program of the eighth aspect, in addition to the effect produced by the image processing program according to any one of the first to seventh aspects, the reduction ratio acquisition step is acquired as an execution result of the input image size acquisition step. The reduction ratio is acquired from the value of the number of pixels of the input image (ix × iy) and the value of the number of pixels of the output image (ox × oy) input as an execution result of the output image size input step.
よって、入力された出力画像サイズ(出力画像の画素数)に応じた縮小率で入力画像を縮小することができるという効果がある。なお、「縮小画像サイズ入力ステップによって入力される出力画像の画素数」は、ユーザによって指定された出力画像サイズ(出力画像の画素数)であってもよいし、条件(印刷媒体の大きさなど)に応じて自動的に決定された出力画像サイズであってもよい。 Therefore, there is an effect that the input image can be reduced at a reduction rate according to the input output image size (number of pixels of the output image). The “number of pixels of the output image input by the reduced image size input step” may be an output image size (number of pixels of the output image) designated by the user, or a condition (such as the size of the print medium) The output image size automatically determined according to () may be used.
請求項9記載の画像処理プログラムによれば、請求項1から8のいずれかに記載の画像処理プログラムの奏する効果に加えて、縮小率取得ステップでは、縮小率入力ステップの実行結果として入力された縮小率を取得する。なお、「縮小率入力ステップの実行結果として入力される縮小率」とは、画素数(ix×iy)の入力画像から画素数(ox×oy)の出力画像を得るための縮小率、即ち、ox/ix及び/又はoy/iyの値である。 According to the image processing program of the ninth aspect, in addition to the effect produced by the image processing program according to any one of the first to eighth aspects, the reduction rate acquisition step is inputted as an execution result of the reduction rate input step. Get the reduction ratio. The “reduction ratio input as the execution result of the reduction ratio input step” is a reduction ratio for obtaining an output image having the number of pixels (ox × oy) from an input image having the number of pixels (ix × ii), that is, The value of ox / ix and / or oy / iy.
よって、入力された縮小率で入力画像を縮小することができるという効果がある。なお、「縮小率入力ステップによって入力される縮小率」は、ユーザによって指定された所望の縮小率であってもよいし、条件(印刷媒体の大きさなど)に応じて自動的に決定された縮小率であってもよい。 Therefore, there is an effect that the input image can be reduced at the input reduction rate. The “reduction ratio input in the reduction ratio input step” may be a desired reduction ratio designated by the user, or is automatically determined according to conditions (such as the size of the print medium). It may be a reduction rate.
請求項10記載の画像処理装置によれば、入力手段から入力された画素数(ix×iy)からなる略矩形の元画像が、縮小手段により、所定の縮小率で縮小されて画素数(ox×oy)からなる略矩形の出力画像とされる。 The image processing apparatus according to claim 10, wherein the substantially rectangular original image having the number of pixels (ix × iy) input from the input unit is reduced by the reduction unit at a predetermined reduction rate, and the number of pixels (ox The output image is a substantially rectangular output image composed of (× oy).
ここで、該縮小手段では、画素数(ix×iy)からなる元画像を画素数(ox×oy)からなる出力画像とするための縮小率が縮小率取得手段により取得され、その一方で、分割数取得手段により、元画像を構成する各画素を(nDev×nDev)(nDevは2以上の整数)個の分割ブロックに分割するための分割数nDevが取得される。 Here, in the reduction means, the reduction ratio for obtaining the original image composed of the number of pixels (ix × ii) as the output image composed of the number of pixels (ox × oy) is acquired by the reduction ratio acquisition means, The division number obtaining means obtains a division number nDev for dividing each pixel constituting the original image into (nDev × nDev) (nDev is an integer of 2 or more) divided blocks.
また、該縮小手段では、縮小率取得手段及び分割数取得手段の後、処理ブロック数演算手段により、出力画像の1画素に対応する整数個の分割ブロックの数が、縮小率取得手段により得られた縮小率に基づいて、該出力画像の各画素毎に計算され、さらに、平均画素値演算手段により、処理ブロック数演算手段により求められた数の分割ブロックに対応する元画像領域の平均画素値が、出力画像の各画素毎に計算される。 In the reduction means, after the reduction ratio acquisition means and the division number acquisition means, the processing block number calculation means obtains an integer number of divided blocks corresponding to one pixel of the output image by the reduction ratio acquisition means. The average pixel value of the original image area corresponding to the number of divided blocks calculated by the average pixel value calculation means and further calculated by the average pixel value calculation means based on the reduction ratio. Is calculated for each pixel of the output image.
よって、元画像をnDev個に分割することによって生じた分割ブロックを単位として、縮小画像(出力画像)の1画素における平均画素値を算出するので、縮小率に応じて生じる小数を浮動小数演算によって演算するのではなく、整数演算によって平均画素値を得ることができる。その結果、平均画素法の処理速度が従来に比べて格段に向上し、速い速度で高画質な縮小画像を得ることができるという効果がある。また、整数演算によって平均画素値を算出できるので、組み込み系への実装に適しているという効果がある。 Therefore, since the average pixel value in one pixel of the reduced image (output image) is calculated in units of divided blocks generated by dividing the original image into nDev pieces, the decimal number generated according to the reduction rate is calculated by floating-point arithmetic. The average pixel value can be obtained by integer calculation instead of calculation. As a result, the processing speed of the average pixel method is remarkably improved as compared with the conventional method, and there is an effect that a high-quality reduced image can be obtained at a high speed. In addition, since the average pixel value can be calculated by integer arithmetic, there is an effect that it is suitable for mounting in an embedded system.
また、元画像の画像サイズを、縮小画像の画像サイズとの最小公倍数のサイズに拡大することなく、縮小画像を得ることができるので、平均画素法の処理速度が従来に比べて格段に向上し、速い速度で高画質な縮小画像を得ることができるという効果がある。 In addition, since the reduced image can be obtained without increasing the image size of the original image to the least common multiple of the image size of the reduced image, the processing speed of the average pixel method is significantly improved compared to the conventional method. There is an effect that a high-quality reduced image can be obtained at a high speed.
請求項11記載の画像処理装置によれば、請求項10記載の画像処理装置の奏する効果に加えて、処理ブロック数演算手段では、縮小率に基づく主走査方向又は副走査方向の分割ブロック数が小数で表された場合に、小数点以下を切り捨てることによって整数個の分割ブロック数として取り扱う。 According to the image processing apparatus of the eleventh aspect, in addition to the effect produced by the image processing apparatus of the tenth aspect, the processing block number calculating means determines the number of divided blocks in the main scanning direction or the sub scanning direction based on the reduction ratio. When expressed as a decimal, it is handled as an integer number of divided blocks by truncating the decimal part.
よって、小数点以下が切り捨てられることにより1個の分割ブロックを単位として平均画素値の演算が行われる。その結果として、平均画素値を整数演算によって算出することができるので、結果として、平均画素法の処理速度が従来に比べて格段に向上し、速い速度で高画質な縮小画像を得ることができるという効果がある。 Accordingly, the average pixel value is calculated in units of one divided block by truncating the decimal part. As a result, the average pixel value can be calculated by integer arithmetic. As a result, the processing speed of the average pixel method is significantly improved compared to the conventional method, and a high-quality reduced image can be obtained at a high speed. There is an effect.
請求項12記載の画像処理装置によれば、請求項10又は11に記載の画像処理装置の奏する効果に加えて、処理ブロック数演算手段では、出力画像における1の画素に対応する分割ブロックの数を計算する際に、平均画素値演算手段によって既に使用された分割ブロックに隣接する分割ブロックを始点として、出力画像の1画素に対応する分割ブロックの数の計算を行う。 According to the image processing device of the twelfth aspect, in addition to the effect produced by the image processing device according to the tenth or eleventh aspect, the processing block number calculating means calculates the number of divided blocks corresponding to one pixel in the output image. When calculating the number of divided blocks corresponding to one pixel of the output image, a divided block adjacent to the divided block already used by the average pixel value calculating means is calculated.
よって、元画像に含まれる全ての画素情報が縮小画像(出力画像)を得るために用いられることになる。従って、縮小に伴う画質劣化を抑制でき、高画質な出力画像が得られるという効果がある。 Therefore, all the pixel information included in the original image is used to obtain a reduced image (output image). Therefore, it is possible to suppress image quality deterioration due to reduction and to obtain an output image with high image quality.
請求項13記載の画像処理装置によれば、請求項10から12のいずれかに記載の画像処理装置の奏する効果に加えて、平均画素値演算手段の前に、主走査方向区分手段によって、出力画像の各画素毎に、その各画素の主走査方向が、(1a)元画像において未処理部分を残す画素における該未処理部分に相当するx1個(x1は、0以上かつnDev未満の整数)の分割ブロックからなる領域と、(1b)元画像において、領域(1a)に隣接し、完全な画素をN個(Nは1以上の整数)並べてなる領域と、(1c)元画像において、領域(1b)に隣接し、1画素に満たないx2個(x2は、0以上かつnDev未満の整数)の残余部分からなる領域とに区分される。 According to the image processing apparatus of the thirteenth aspect, in addition to the effect produced by the image processing apparatus according to any one of the tenth to twelfth aspects, the output is performed by the main scanning direction division means before the average pixel value calculation means. For each pixel of the image, the main scanning direction of each pixel is (1a) x1 corresponding to the unprocessed portion in the pixel that leaves the unprocessed portion in the original image (x1 is an integer greater than or equal to 0 and less than nDev) (1b) in the original image, an area that is adjacent to the area (1a) and in which N complete pixels are arranged (N is an integer of 1 or more), and (1c) in the original image It is divided into regions that are adjacent to (1b) and consist of x2 remaining portions (x2 is an integer not less than 0 and less than nDev) that is less than one pixel.
平均画素値演算手段では、主走査方向区分手段により区分された各領域毎に、画素値の総和を求めた上で、その画素値の総和を、処理ブロック数演算手段により求められた出力画像の1画素に対応する分割ブロックの数で割る。 The average pixel value calculating means calculates the sum of the pixel values for each area divided by the main scanning direction dividing means, and then calculates the sum of the pixel values of the output image obtained by the processing block number calculating means. Divide by the number of divided blocks corresponding to one pixel.
よって、出力画像の1画素における主走査方向を、N個の完全な元画像の画素から構成される領域(1b)と、その両側に隣接する1画素に満たない元画像の領域(1a,1c)とを区分することによって、領域(1c)に含まれる分割ブロックの数に基づいて、出力画像において次に処理される画素における領域(1a)含まれる分割ブロックの数を容易に求めることができるという効果がある。 Therefore, in the main scanning direction of one pixel of the output image, the region (1b) composed of N complete original image pixels and the original image region (1a, 1c less than one pixel adjacent to both sides) ), The number of divided blocks included in the region (1a) in the pixel to be processed next in the output image can be easily obtained based on the number of divided blocks included in the region (1c). There is an effect.
請求項14記載の画像処理装置によれば、請求項10から13のいずれかに記載の画像処理装置の奏する効果に加えて、平均画素値演算手段の前に、副走査方向区分手段によって、出力画像の各画素毎に、その各画素の副走査方向が、(2a)元画像において未処理部分を残す画素における該未処理部分に相当するy1個(y1は、0以上かつnDev未満の整数)の分割ブロックからなる領域と、(2b)元画像において、領域(2a)に隣接し、完全な画素をM個(Mは1以上の整数)並べてなる領域と、(2c)元画像において、領域(2b)に隣接し、1画素に満たないy2個(y2は、0以上かつnDev未満の整数)の残余部分からなる領域とに区分される。 According to the image processing apparatus of the fourteenth aspect, in addition to the effect produced by the image processing apparatus according to any one of the tenth to thirteenth aspects, the output is performed by the sub-scanning direction division means before the average pixel value calculation means. For each pixel of the image, the sub-scan direction of each pixel is (2a) y1 corresponding to the unprocessed portion in the pixel that leaves the unprocessed portion in the original image (y1 is an integer greater than or equal to 0 and less than nDev) (2b) in the original image, an area adjacent to the area (2a) and arranged with M complete pixels (M is an integer of 1 or more), and (2c) an area in the original image Adjacent to (2b), the area is divided into y2 (y2 is an integer greater than or equal to 0 and less than nDev) remaining area that is less than one pixel.
平均画素値演算手段では、副走査方向区分手段により区分された各領域毎、又は、副走査方向区分手段及び主走査方向区分手段により区分された各領域毎に、画素値の総和を求めた上で、その画素値の総和を、処理ブロック数演算手段により求められた出力画像の1画素に対応する分割ブロックの数で割る。 The average pixel value calculation means obtains the sum of the pixel values for each area divided by the sub-scanning direction dividing means or for each area divided by the sub-scanning direction dividing means and the main scanning direction dividing means. Thus, the sum of the pixel values is divided by the number of divided blocks corresponding to one pixel of the output image obtained by the processing block number calculation means.
よって、出力画像の1画素における副走査方向を、M個の完全な元画像の画素から構成される領域(2b)と、その両側に隣接する1画素に満たない元画像の領域(2a,2c)とを区分することによって、領域(2c)に含まれる分割ブロックの数に基づいて、出力画像において次に処理される画素における領域(2a)含まれる分割ブロックの数を容易に求めることができるという効果がある。 Therefore, the sub-scanning direction of one pixel of the output image is divided into an area (2b) composed of M complete original image pixels and an original image area (2a, 2c less than one pixel adjacent to both sides). ), The number of divided blocks included in the region (2a) in the pixel to be processed next in the output image can be easily obtained based on the number of divided blocks included in the region (2c). There is an effect.
請求項15記載の画像処理装置によれば、請求項10から14のいずれかに記載の画像処理装置の奏する効果に加えて、入力画像サイズ取得手段により取得された入力画像の画素数(ix×iy)の値と、出力画像サイズ入力手段により入力された出力画像の画素数(ox×oy)の値とから、縮小率取得手段によって縮小率が取得される。 According to the image processing device of the fifteenth aspect, in addition to the effect produced by the image processing device according to any one of the tenth to fourteenth aspects, the number of pixels of the input image (ix × The reduction ratio is acquired by the reduction ratio acquisition unit from the value of iy) and the value of the number of pixels (ox × oy) of the output image input by the output image size input unit.
よって、入力された出力画像サイズ(出力画像の画素数)に応じた縮小率で入力画像を縮小することができるという効果がある。なお、「縮小画像サイズ入力手段により入力される出力画像の画素数」は、ユーザによって指定された出力画像サイズ(出力画像の画素数)であってもよいし、条件(印刷媒体の大きさなど)に応じて自動的に決定された出力画像サイズであってもよい。 Therefore, there is an effect that the input image can be reduced at a reduction rate according to the input output image size (number of pixels of the output image). The “number of pixels of the output image input by the reduced image size input unit” may be an output image size (number of pixels of the output image) designated by the user, or a condition (such as the size of the print medium) The output image size automatically determined according to () may be used.
請求項16記載の画像処理装置によれば、請求項10から15のいずれかに記載の画像処理装置の奏する効果に加えて、縮小率入力手段により入力された縮小率が、縮小率取得手段によって取得される。なお、「縮小率入力手段により入力される縮小率」とは、画素数(ix×iy)の入力画像から画素数(ox×oy)の出力画像を得るための縮小率、即ち、ox/ix及び/又はoy/iyの値である。 According to the image processing apparatus of the sixteenth aspect, in addition to the effect produced by the image processing apparatus according to any one of the tenth to fifteenth aspects, the reduction ratio input by the reduction ratio input means is reduced by the reduction ratio acquisition means. To be acquired. The “reduction rate input by the reduction rate input means” is a reduction rate for obtaining an output image having the number of pixels (ox × oy) from the input image having the number of pixels (ix × iy), that is, ox / ix. And / or oy / iy.
よって、入力された縮小率で入力画像を縮小することができるという効果がある。なお、「縮小率入力手段により入力される縮小率」は、ユーザによって指定された所望の縮小率であってもよいし、条件(印刷媒体の大きさなど)に応じて自動的に決定された縮小率であってもよい。 Therefore, there is an effect that the input image can be reduced at the input reduction rate. The “reduction ratio input by the reduction ratio input unit” may be a desired reduction ratio designated by the user, or automatically determined according to conditions (size of the print medium, etc.). It may be a reduction rate.
以下、本発明の好ましい実施例について、添付図面を参照して説明する。図1は、本発明の一実施形態におけるプリンタ1の電気的な構成を示したブロック図である。
Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings. FIG. 1 is a block diagram showing an electrical configuration of a
このプリンタ1は、パーソナルコンピュータ(以下「PC」と称する)2や、デジタルカメラ21や、外部メディア20から入力された画像データを所定の縮小率で縮小して出力することができるように構成されている。
The
プリンタ1は、CPU11と、ROM12と、RAM13と、印刷ヘッドなどから構成され、印刷媒体(例えば、紙媒体など)への印刷(出力)を行う印刷部15と、出力画像サイズなどの入力値をユーザが入力可能なユーザ操作部(例えば、テンキーなど)を有する操作パネル16とを備えている。
The
また、プリンタ1は、ケーブル5を介してPC2と接続可能なインターフェイス(以下「I/F」と称する)17と、ケーブル6を介してデジタルカメラ21と接続可能なI/F18と、外部メディア20(例えば、SDメモリカード、メモリスティックなど)と着脱自在に装着可能な外部メディアスロット19とを備えている。
The
よって、プリンタ1は、PC20に記憶されている画像データをケーブル5及びI/F17を介して入力することが可能であると共に、デジタルカメラ21によって撮影された画像データをケーブル6及びI/F18を介して入力することが可能である。さらに、外部メディアスロット19に装着された外部メディア20から、その外部メディア21に記憶されている画像データを入力することが可能である。
Therefore, the
CPU11は、プリンタ1全体を制御する演算処理装置(演算装置)であり、ROM12には、このCPU11により実行される各種の制御プログラムや、その実行の際に参照される固定値データが格納されている。なお、ROM12は、後述する図6から図10に示すフローチャートを実行して画像の縮小を行う画像縮小プログラム12aを記憶する領域を備えている。
The
また、RAM13は、CPU11で実行される制御プログラムに必要な各種レジスタ群などが設定されたワーキングエリアや、処理中のデータを一時的に格納するテンポラリエリア等を有しランダムにアクセスできる書き換え可能なメモリである。
The
このRAM13は、元画像メモリ13aと、出力画像メモリ13bと、出力サイズメモリ13cと、縮小率メモリ13dとを備えている。元画像メモリ13aは、PC2、デジタルカメラ21、及び外部メディア20から、それぞれ、I/F17、I/F18、及び外部メディアスロット19を介してプリンタ1へ入力された画像データであって、縮小元となる元画像(以下、便宜上「元画像P」と記載する)の画像データ(以下、元画像Pの画像データを「元画像データ」と称する)を記憶するものである。
The
出力画像メモリ13bは、画像縮小プログラム12a(後述する図6から図10に示すフローチャートを実行するプログラム)に従い、元画像メモリ13aに記憶されている元画像データを縮小することによって生成された出力画像(以下、便宜上「出力画像Q」と記載する)の画像データ(以下、出力画像Qの画像データを「出力画像データ」と称する)を記憶するものである。なお、本実施形態では、元画像データ及び出力画像データはいずれも、RGBから構成されている。
The
出力サイズメモリ13cは、ユーザによる操作パネル16の操作によって入力された出力画像Qのサイズ(即ち、出力画像サイズ)を記憶するものであり、縮小率メモリ13dは、元画像メモリ13aに記憶されている元画像Pのサイズと出力サイズメモリ13cに記憶されている出力画像サイズとから算出される縮小率を記憶するものである。
The
ここで、後述するように、画像縮小プログラム12aは、元画像メモリ13aに記憶されている元画像データを、縮小率メモリ13dに記憶されている縮小率で縮小することによって、出力画像データに生成する。よって、上記した出力画像メモリ13bには、画像縮小プログラム12aに従う縮小によって生成された出力画像データが記憶されている。
Here, as will be described later, the
次に、図2を参照して、上記のように構成されたプリンタ1による縮小機能を説明する。図2は、プリンタ1による縮小機能を示す機能ブロック図である。図2に示すように、プリンタ1は、入力手段(非図示)から入力された画像サイズ(ix.iy)の元画像データを、同じく入力手段(非図示)から入力された出力画像サイズ(ox.oy)に縮小し、出力手段(非図示)から、出力画像サイズ(ox.oy)の出力画像データとして出力する部分である縮小部100を備えている。
Next, referring to FIG. 2, the reduction function by the
より詳細には、縮小部100は、画像サイズ比較部101と、縮小率算出部102と、処理ブロック数算出部103と、処理ブロック縮小部104と、分割数決定部105とから構成されている。
More specifically, the
画像サイズ比較部101は、入力手段(非図示)から入力された元画像データの画像サイズ(ix.iy)と出力画像サイズ(ox,oy)との比較を行う部分であり、その比較結果を縮小率算出部102へ出力する。
The image
縮小率算出部102は、画像サイズ比較部101から入力された比較結果から縮小率を算出する部分であり、算出された縮小率を処理ブロック数算出部へ出力する。なお、元画像Pの画像サイズが(ix,iy)であり、出力画像サイズが(ox,oy)である場合、その縮小率は、主走査方向に(ox/ix)であり、副走査方向に(oy/iy)である。
The reduction
分割数決定部105は、入力手段(非図示)から入力された元画像データと出力画像サイズとプリンタ1の処理能力を示す値と1画素が取り得る色データ(パレット)の数とに基づいて、元画像Pにおける1画素に対する分割数nDevを算出する部分であり、算出された分割数nDevを処理ブロック数算出部103へ出力する。
The division
ここで、分割数nDevは、元画像Pの各画素の主走査方向(x方向)と副走査方向(y方向)とをそれぞれいくつに分割したかを表す数であり、元画像Pの各画素を分割数nDevで分割した結果として、各画素はそれぞれ(nDev×nDev)個の断片(以下、このように1画素を分割数nDevに分割した結果として得られた個々の断片を「分割ブロック」と称する)に分割される。なお、分割数nDevは、2以上の整数であるので、1画素は、整数個((nDev×nDev)個)の分割ブロックに分割されることになる。 Here, the division number nDev is a number indicating how many divisions are made in the main scanning direction (x direction) and the sub scanning direction (y direction) of each pixel of the original image P. Is divided by the division number nDev, and each pixel is divided into (nDev × nDev) fragments (hereinafter, each fragment obtained as a result of dividing one pixel into the division number nDev is referred to as a “division block”. Called). Since the division number nDev is an integer of 2 or more, one pixel is divided into an integer number ((nDev × nDev)) of divided blocks.
ただし、この分割数nDevの値は、演算処理装置であるCPU11によって処理可能な範囲内の数値でなければならないので、分割数決定部105では、分割数nDevの値を、演算処理装置であるCPU11によって処理可能な範囲内の数値に決定する。分割数決定部105において、分割数nDevの値を、演算処理装置であるCPU11によって処理可能な範囲内の数値に決定するための構成については、図3を参照しつつ後述する。
However, since the value of the division number nDev must be a numerical value within the range that can be processed by the
処理ブロック数算出部103は、縮小率算出部102から入力された縮小率と、分割数決定部105から入力された分割数nDevとから、出力画像Qの1画素に相当する分割ブロックの数を算出する部分であり、算出された分割ブロックの数を平均画素値算出部104へ出力する。
The processing block
平均画素値算出部104は、処理ブロック数算出部103から入力された分割ブロックの数に対応する元画像データ領域の平均画素値を算出する部分である。なお、詳細は図3及び図4を参照しつつ後述するが、この平均画素値算出部104において平均画素値を算出する際には、出力画像Qの1画素に含まれる分割ブロックを細区分した上で平均画素値を算出する。
The average pixel
ここで、処理ブロック数算出部103による分割ブロック数の算出と、平均画素値算出部104による平均画素値の算出は、出力画像Qの画素数分だけ繰り返される。そして、出力画像Qにおける全ての画素に対して、平均画素値算出部104による平均画素値の算出が行われると、入力手段(非図示)から入力された元画像データが、入力手段(非図示)から入力された出力画像サイズに縮小された出力画像データが出力手段(非図示)から出力される。
Here, the calculation of the number of divided blocks by the processing block
次に、図3を参照して、分割数決定部105に対するより詳細な構成について説明する。図3は、分割数決定部105の機能を示す機能ブロック図である。図3に示すように、分割数決定部105は、最大ブロック数算出部105aと、分割数計算部105bとから構成されている。
Next, with reference to FIG. 3, a more detailed configuration for the division
最大ブロック数算出部105aは、出力画像Qの1画素が取り得る分割ブロックの数の最大値を算出する部分である。
The maximum block
元画像Pの画像サイズ(画素数)を(ix×iy)とし、出力画像Qの画像サイズ(画素数)を(ox×oy)とした場合、出力画像Qにおける座標(iout,jout)の画素に含まれる分割ブロックについて、主走査方向及び副走査方向にそれぞれ取り得る最大値(nBlock_x)max及び(nBlock_y)maxは、下記式(1a)および(1b)で表される値となる。 When the image size (number of pixels) of the original image P is (ix × iy) and the image size (number of pixels) of the output image Q is (ox × oy), the coordinates (i out , j out ) in the output image Q The maximum values (nBlock_x) max and (nBlock_y) max that can be taken in the main scanning direction and the sub-scanning direction for the divided blocks included in the pixel are the values represented by the following equations (1a) and (1b).
ここで、nBlock_x(0)及びnBlock_y(0)は、それぞれ、出力画像Qにおける先頭座標(0,0)の画素に含まれる画素に含まれる主走査方向及び副走査方向の分割ブロックの数である。また、演算記号[]はガウス記号であり、その数を超えない最大の整数を表す記号である。 Here, nBlock_x (0) and nBlock_y (0) are the numbers of divided blocks in the main scanning direction and the sub-scanning direction included in the pixel included in the pixel of the first coordinate (0, 0) in the output image Q, respectively. . The operation symbol [] is a Gaussian symbol, and is a symbol representing the maximum integer that does not exceed the number.
最大ブロック数算出部105aは、上記した式(1a)および(1b)の計算を行い、その算出結果を分割数計算部105bへ出力する。
The maximum block
分割数計算部105bは、最大ブロック数算出部105aから入力された最大ブロック数の最大値を用いて、分割数nDevの値を、演算処理装置であるCPU11によって処理可能な範囲内の数値として算出する。
The division
ここで、本実施形態における高速平均画素処理(図6におけるS602の処理)がプリンタ1の演算処理装置であるCPU11で実行可能であるためには、CPU11による処理能力を示す値の最大値をValueMaxとし、1画素が取り得る色データ(パレット)の最大値をPalletMaxとした場合に、下記不等式(2)が満たされなければならない。
Here, in order for the high-speed average pixel processing (the processing of S602 in FIG. 6) in the present embodiment to be executed by the
なお、1画素が取り得る色データ(パレット)の最大値であるPalletMaxは、1画素を構成するビット数(例えば、8ビットや16ビット)の最大値とされる。即ち、例えば、1画素を構成するビット数が8ビットである場合には、PalletMaxの値は256となる。 Note that PalletMax, which is the maximum value of color data (palette) that can be taken by one pixel, is the maximum value of the number of bits (for example, 8 bits or 16 bits) constituting one pixel. That is, for example, when the number of bits constituting one pixel is 8 bits, the value of PalletMax is 256.
ここで、ix/oxの余りをrxとし、iy/oyの余りをryとすると共に、(ix−rx)/oxをDxと表し、(iy−ry)/oyをDyと表すと、上記式(2)を満たすnDevは、nDevは2以上の整数であることを考慮すると、下記不等式(3)を満たす整数となる。 Here, when the remainder of ix / ox is rx, the remainder of iy / oy is ry, (ix−rx) / ox is represented as Dx, and (iy−ry) / oy is represented as Dy, the above formula Considering that nDev is an integer of 2 or more, nDev that satisfies (2) is an integer that satisfies the following inequality (3).
この不等式(3)を満たす分割数nDevであれば、縮小時におけるCPU11のオーバーフローが確実に防止される。
If the division number nDev satisfies this inequality (3), overflow of the
ここで、ValueMax及びPalletMaxの値は、CPU11によって決まる値であるので、分割数計算部105bでは、これらのValueMax及びPalletMaxと、最大ブロック数算出部105aから入力された最大ブロック数の最大値とから、上記不等式(3)を満たす分割数nDevを算出し、算出された分割数nDevの値を処理ブロック数算出部103へ出力する。
Here, since the values of ValueMax and PalletMax are values determined by the
以上のように、分割数nDevの値は、CPU11(演算処理装置)の処理能力を示す値の最大値ValueMaxに対し、縮小率(即ち、ix/ox及びiy/oy)を考慮して決定される。よって、元画像Pを種々の出力画像サイズに縮小する場合においても、上記不等式(3)を満たすのであれば、分割数nDevの値を縮小率に応じて適宜使い分けることが可能となる。 As described above, the value of the division number nDev is determined in consideration of the reduction ratio (that is, ix / ox and iy / oy) with respect to the maximum value ValueMax indicating the processing capability of the CPU 11 (arithmetic processing unit). The Therefore, even when the original image P is reduced to various output image sizes, the value of the division number nDev can be appropriately used according to the reduction ratio as long as the inequality (3) is satisfied.
特に、分割数nDevの値が大きい程、個々の分割ブロックの大きさが細かくなる(即ち、分解能が高くなる)ので、分割ブロック単位を利用することによって生じ得る誤差が小さく、出力画像Qの画質は向上する。よって、縮小率に応じて上記式(3)を満たす最大の分割数nDevを使用することにより、どのような縮小率に対しても可能な限りで最高の画質を有する出力画像Qを得ることができるのである。 In particular, the larger the value of the division number nDev, the smaller the size of each divided block (that is, the higher the resolution). Therefore, errors that can be caused by using divided block units are small, and the image quality of the output image Q is small. Will improve. Therefore, by using the maximum number of divisions nDev that satisfies the above formula (3) according to the reduction ratio, it is possible to obtain an output image Q having the highest possible image quality for any reduction ratio. It can be done.
また、分割数nDevの値は、CPU11(演算処理装置)の処理能力を示す値の最大値ValueMaxに対し、1画素が取り得る色データ(パレット)の最大値(PalletMax)を考慮して決定されるので、種々のビットカラーに応じて、分割数nDevの値を適宜使い分けることが可能となる。 Further, the value of the division number nDev is determined in consideration of the maximum value (PalletMax) of color data (pallet) that one pixel can take with respect to the maximum value ValueMax indicating the processing capability of the CPU 11 (arithmetic processing unit). Therefore, the value of the division number nDev can be appropriately used according to various bit colors.
上記構成を有するプリンタ1で実行される画像縮小処理(図6参照)について説明する前に、図4及び図5を参照して、画像縮小処理の一部である高速平均画素処理(図6におけるS602の処理)において使用される変数について説明する。図4及び図5は、いずれも、本実施形態の高速平均画素処理(図6におけるS602の処理)において使用される変数を説明するための模式図である。
Before describing the image reduction process (see FIG. 6) executed by the
まず、本発明の理解を容易にする目的で、図4では、副走査方向(y方向)の縮小は考慮せず、主走査方向(x方向)を後述する高速平均画素処理(図6におけるS602の処理)に供する場合に必要とされる変数について説明する。図4に示すように、元画像Pは、主走査方向に並ぶP0〜P4の5画素から構成される画像であり、出力画像Qは、元画像Pを後述する画像縮小処理(図6参照)の結果として得られる画像である。 First, for the purpose of facilitating the understanding of the present invention, in FIG. 4, reduction in the sub-scanning direction (y direction) is not considered, and the high-speed average pixel processing (S602 in FIG. 6) described later in the main scanning direction (x direction). The variables that are required in the case of being used in the above process) will be described. As shown in FIG. 4, the original image P is an image composed of five pixels P0 to P4 arranged in the main scanning direction, and the output image Q is an image reduction process (see FIG. 6) described later on the original image P. It is the image obtained as a result of.
後述する画像縮小処理(図6参照)、特に、高速平均画素処理(図6におけるS602の処理)では、1画素を整数個に分割した分割ブロックの単位で取り扱うことを特徴とする。ここで、「nDev」は、分割数決定部105(図2参照)を説明する際に述べたように、元画像Pの1画素に対する分割数、即ち、元画像Pにおける各画素をそれぞれいくつに分割したかを表す変数である。図4に示す例では、元画像Pの各画素が4つに分割されているので、分割数nDevの値は4である(図4における細点線参照)。 In image reduction processing (see FIG. 6) described later, particularly high-speed average pixel processing (processing in S602 in FIG. 6), each pixel is handled in units of divided blocks. Here, “nDev” is the number of divisions for one pixel of the original image P, that is, how many each pixel in the original image P is, as described when explaining the division number determination unit 105 (see FIG. 2). It is a variable that indicates whether it has been divided. In the example shown in FIG. 4, since each pixel of the original image P is divided into four, the value of the division number nDev is 4 (see the thin dotted line in FIG. 4).
なお、この分割数nDevの値は、演算処理装置であるCPU11によって処理可能な範囲内の数値でなければならない。また、分割数nDevの値が大きいほど、個々の分割ブロックの大きさが細かくなり(即ち、分解能が高くなり)、その結果として、分割ブロック単位を利用することによって生じ得る誤差が小さくなることから、出力画像Qの画質向上という点において好ましい。よって、分割数nDevの値は、CPU11によって処理可能な数値のうちの最大値であることが最も好ましい。
Note that the value of the division number nDev must be a numerical value within a range that can be processed by the
図4に示すように、出力画像Qは、縮小の結果としてQ0〜Q2の3画素の出力画像サイズに縮小されている。図4に示すように、画素Q0は、画素P0と、画素P1における画素P0に隣接する2個の分割ブロックとを縮小して得られる画素である。また、画素Q1は、画素P1における画素Q0の縮小のために使用されなかった残りの2個の分割ブロックと、画素P1に隣接する画素P2と、画素P3における画素P2に隣接する1個の分割ブロックとを縮小して得られる画素である。画素Q2は、画素P3における画素Q1の縮小のために使用されなかった残りの3個の分割ブロックと、画素P3に隣接する画素P4とを縮小して得られる画素である。 As shown in FIG. 4, the output image Q is reduced to an output image size of three pixels Q0 to Q2 as a result of the reduction. As shown in FIG. 4, the pixel Q0 is a pixel obtained by reducing the pixel P0 and the two divided blocks adjacent to the pixel P0 in the pixel P1. The pixel Q1 includes the remaining two divided blocks that are not used for reducing the pixel Q0 in the pixel P1, the pixel P2 adjacent to the pixel P1, and one division adjacent to the pixel P2 in the pixel P3. This is a pixel obtained by reducing the block. The pixel Q2 is a pixel obtained by reducing the remaining three divided blocks not used for reducing the pixel Q1 in the pixel P3 and the pixel P4 adjacent to the pixel P3.
本実施形態では、分割ブロックの単位で、出力画像Qの画素に対応する元画像Pの領域を取得するので、縮小率に応じた実際の元画像Pの領域に対して誤差を生じる。例えば、図4において、縮小率に応じた実際の画素Q1に対応する元画像Pの領域の始点s’の位置は、分割ブロックの単位で得られた元画像の領域の始点sの位置とは異なる。しかし、分割数nDevの値が大きいほど、個々の分割ブロックの大きさが細かくなる(即ち、分解能が高くなる)ため、上記のような始点s'の位置と始点sの位置との誤差は小さくなる。その結果、分割ブロック単位を利用することに伴って生じる誤差(始点sと始点s’との誤差)に起因する画質の劣化を抑制することができる。従って、上記したように、分割数nDevの値は大きい値であるほど好ましく、CPU11によって処理可能な数値のうちの最大値であることが最も好ましい。
In the present embodiment, since the area of the original image P corresponding to the pixel of the output image Q is acquired in units of divided blocks, an error occurs with respect to the actual area of the original image P corresponding to the reduction ratio. For example, in FIG. 4, the position of the starting point s ′ of the area of the original image P corresponding to the actual pixel Q1 according to the reduction ratio is the position of the starting point s of the area of the original image obtained in units of divided blocks. Different. However, the larger the value of the division number nDev, the smaller the size of each divided block (that is, the higher the resolution), so the error between the position of the start point s ′ and the position of the start point s is small. Become. As a result, it is possible to suppress deterioration in image quality due to an error (an error between the start point s and the start point s ′) caused by using the divided block unit. Therefore, as described above, the value of the division number nDev is preferably as large as possible, and is most preferably the maximum value among the numerical values that can be processed by the
元画像P及び出力画像Qの始点の画素をそれぞれ画素P0及び画素Q0とした場合、後述する高速平均画素処理(図6におけるS602の処理)では、画素Q0→画素Q2の順で高速平均画素処理が順次実行される。なお、図4では、画素Q1を得るための処理が行われている場合を例示している。 When the starting pixels of the original image P and the output image Q are the pixel P0 and the pixel Q0, respectively, in the high-speed average pixel processing (the processing of S602 in FIG. 6) described later, the high-speed average pixel processing in the order of the pixel Q0 → the pixel Q2. Are executed sequentially. FIG. 4 illustrates the case where the process for obtaining the pixel Q1 is performed.
ここで、「nBlock_x」は、出力画像の1画素に対応する元画像Pの領域に含まれる分割ブロック数であって、主走査方向の分割ブロックの数を表す変数である。上記したように、画素Q1は、画素P1における画素Q0の縮小のために使用されなかった残りの2個の分割ブロックと、画素P1に隣接する画素P2と、画素P3における画素P2に隣接する1個の分割ブロックとを縮小して得られる画素であるので、図4示す例における変数nBlock_xの値は、7(=2+4+1)である。 Here, “nBlock_x” is the number of divided blocks included in the area of the original image P corresponding to one pixel of the output image, and is a variable representing the number of divided blocks in the main scanning direction. As described above, the pixel Q1 includes the remaining two divided blocks that are not used for reducing the pixel Q0 in the pixel P1, the pixel P2 adjacent to the pixel P1, and the pixel P2 adjacent to the pixel P2 in the pixel P3. Since the pixel is obtained by reducing the number of divided blocks, the value of the variable nBlock_x in the example illustrated in FIG. 4 is 7 (= 2 + 4 + 1).
なお、後述する高速平均画素処理(図6におけるS602の処理)では、主走査方向において縮小がなされる(nBlock_x)個の分割ブロックは3区分に分けて処理される。具体的には、処理中の分割ブロックは、前回の高速平均画素処理において未処理のまま残された1画素に満たない元画像の領域(以下、この領域を「前方残余領域」と称する)に含まれる分割ブロックと、この前方残余領域に隣接し、完全な1画素をN個(Nは1以上の整数)並べてなる元画像の領域(以下、この領域を「中央領域」と称する)に含まれる分割ブロックと、この中央領域に隣接し、変数nBlock_xで表される数の分割ブロックのうち、前方残余領域にも中央領域にも含まれずに残された1画素に満たない元画像の領域(以下、この領域を「後方残余領域」と称する)に含まれる分割ブロックとに分けて処理される。 In the high-speed average pixel processing (the processing in S602 in FIG. 6) described later, (nBlock_x) divided blocks that are reduced in the main scanning direction are processed in three sections. Specifically, the divided block being processed is an area of the original image that is less than one pixel left unprocessed in the previous high-speed average pixel process (hereinafter, this area is referred to as a “front residual area”). Included in the area of the original image (hereinafter referred to as the “central area”) in which N blocks (N is an integer greater than or equal to 1) are arranged adjacent to the front remaining area and adjacent one pixel is included. Of the original image that is not included in the front residual area or the central area and is less than one pixel (of the number of divided blocks adjacent to the central area and represented by the variable nBlock_x). Hereinafter, this area is referred to as “rear remaining area”) and is divided into divided blocks.
ここで、「nResidue_x0」は、主走査方向における前方残余領域に含まれる分割ブロックの数を表す変数であり、「nMain_x」は、主走査方向における中央領域に含まれる画素数を表す変数であり、「nResidue_x1」は、主走査方向における後方残余領域に含まれる分割ブロックの数を表す変数である。 Here, “nResidue_x0” is a variable that represents the number of divided blocks included in the front residual area in the main scanning direction, and “nMain_x” is a variable that represents the number of pixels included in the central area in the main scanning direction, “NResidue_x1” is a variable representing the number of divided blocks included in the rear remaining area in the main scanning direction.
図4に示す例では、変数nResidue_x0の値は、画素P1における画素Q0の縮小のために使用されなかった残り部分に対する主走査方向の分割ブロックの数である2であり、変数nMain_xの値は、中央領域に相当するのは画素P2だけであるので1である。さらに、変数nResidue_x1の値は、画素P3における画素P2に隣接する1画素未満となる主走査方向の分割ブロックの数である1である。 In the example illustrated in FIG. 4, the value of the variable nResidue_x0 is 2 that is the number of divided blocks in the main scanning direction with respect to the remaining portion that is not used for the reduction of the pixel Q0 in the pixel P1, and the value of the variable nMain_x is Since only the pixel P2 corresponds to the central region, it is 1. Further, the value of the variable nResidue_x1 is 1, which is the number of divided blocks in the main scanning direction that is less than one pixel adjacent to the pixel P2 in the pixel P3.
また、「nPosRes_x0」は、元画像における、前方残余領域を含む画素に対する主走査方向の座標を表す変数であり、「nPosMain_x0」は、元画像における、中央領域に含まれるN個の画素のうち、最初の画素(前方残余領域に隣接する画素)に対する主走査方向の座標を表す変数であり、「nPosRes_x1」は、元画像における、後方残余領域を含む画素に対する主走査方向の座標を表す変数である。 In addition, “nPosRes_x0” is a variable representing coordinates in the main scanning direction with respect to pixels including the front residual area in the original image, and “nPosMain_x0” is the N pixels included in the central area in the original image. “NPosRes_x1” is a variable representing coordinates in the main scanning direction with respect to the pixel including the rear remaining area in the original image, with respect to the first pixel (pixel adjacent to the front remaining area). .
ここで、図4に示す例では、変数nPosRes_x0の値は、前方残余領域を含む画素P1に対する主走査方向の座標であり、変数nMainRes_x0の値は、中央領域に含まれる唯一の画素である画素P2に対する主走査方向の座標であり、変数nPosRes_x1の値は、後方残余領域を含む画素P3に対する主走査方向の座標である。 Here, in the example shown in FIG. 4, the value of the variable nPosRes_x0 is the coordinate in the main scanning direction with respect to the pixel P1 including the front residual area, and the value of the variable nMainRes_x0 is the pixel P2 that is the only pixel included in the central area. The value of the variable nPosRes_x1 is the coordinate in the main scanning direction for the pixel P3 including the rear residual area.
一方で、「nReadBlock_x」は、前回までの高速平均画素処理(図6におけるS602の処理)において処理済み(使用済み)である主走査方向の分割ブロック数を表す変数である。図4に示す例では、画像Q1に対応する分割ブロックが既に処理済みであるので、変数nReadBlock_xの値は、画像Q1に対応する元画像Pの領域に含まれる主走査方向の分割ブロック数、即ち、6(=4+2)である。 On the other hand, “nReadBlock_x” is a variable representing the number of divided blocks in the main scanning direction that have been processed (used) in the high-speed average pixel processing (the processing of S602 in FIG. 6) up to the previous time. In the example shown in FIG. 4, since the divided block corresponding to the image Q1 has already been processed, the value of the variable nReadBlock_x is the number of divided blocks in the main scanning direction included in the area of the original image P corresponding to the image Q1, that is, , 6 (= 4 + 2).
以上、理解を容易にするために、主走査方向(x方向)のみの縮小を考え、その縮小の際に必要とされる変数について説明したが、実際には副走査方向(y方向)にも縮小されるので、副走査方向(y方向)の縮小を考慮すると図5に示すようになる。この図5では、元画像Pの画素と出力画像Qの画素とが重ねて表されており、これらの画素の区別を容易にするために、出力画像Qの画素として、処理中の1画素のみを図示し、元画像Pの画素の1つを斜線によってハッチングした。 As described above, in order to facilitate understanding, reduction in only the main scanning direction (x direction) is considered, and the variables necessary for the reduction have been described. Since reduction is performed, the reduction in the sub-scanning direction (y direction) is considered as shown in FIG. In FIG. 5, the pixels of the original image P and the pixels of the output image Q are overlapped, and in order to easily distinguish these pixels, only one pixel being processed is selected as the pixel of the output image Q. And one of the pixels of the original image P is hatched with diagonal lines.
また、図5では、図5に示すように、元画像Pは主走査方向及び副走査方向共に分割数4(=nDev)で分割されているので、元画像Pの各画素はそれぞれ16(=nDev×nDev)個の分割ブロックに分割されている(図5における細点線参照)。 In FIG. 5, as shown in FIG. 5, since the original image P is divided by the division number 4 (= nDev) in both the main scanning direction and the sub-scanning direction, each pixel of the original image P is 16 (= It is divided into nDev × nDev) divided blocks (see thin dotted lines in FIG. 5).
ここで、副走査方向の縮小に必要とされる変数である「nBlock_y」は、上記した主走査方向の縮小に必要とされる変数「nBlock_x」に対応する変数であり、出力画像の1画素に対応する元画像Pの領域に含まれる分割ブロック数であって、副走査方向の分割ブロックの数を表す変数である。 Here, “nBlock_y”, which is a variable required for reduction in the sub-scanning direction, is a variable corresponding to the above-described variable “nBlock_x” required for reduction in the main scanning direction. This is a variable representing the number of divided blocks included in the corresponding area of the original image P and indicating the number of divided blocks in the sub-scanning direction.
変数「nReadBlock_y」は、上記した主走査方向の縮小に必要とされる変数「nReadBlock_x」に対応する変数であり、前回までの高速平均画素処理において既に処理済みである副走査方向の分割ブロック数を表す変数である。 The variable “nReadBlock_y” is a variable corresponding to the variable “nReadBlock_x” required for the above-described reduction in the main scanning direction, and the number of divided blocks in the sub-scanning direction that has already been processed in the high-speed average pixel processing up to the previous time. It is a variable that represents.
また、副走査方向についても、後述する高速平均画素処理(図6におけるS602の処理)では、上記した主走査方向と同様に、縮小がなされる(nBlock_y)個の分割ブロックを、前方残余領域と中央領域と後方残余領域との3区分に分けて処理する。 Also in the sub-scanning direction, in the high-speed average pixel processing (the processing in S602 in FIG. 6) described later, similarly to the main scanning direction described above, the (nBlock_y) divided blocks are reduced to the front residual area. Processing is divided into three sections, a central area and a rear residual area.
変数「nResidue_y0」は、上記した主走査方向の縮小に必要とされる変数「nResidue_x0」に対応する変数であり、副走査方向における前方残余領域に含まれる分割ブロックの数を表す変数である。また、変数「nMain_y」は、上記した主走査方向の縮小に必要とされる変数「nMain_x」に対応する変数であり、副走査方向における中央領域に含まれる画素数を表す変数である。また、変数「nResidue_y1」は、上記した主走査方向の縮小に必要とされる変数「nResidue_x1」に対応する変数であり、副走査方向における後方残余領域に含まれる分割ブロックの数を表す変数である。 The variable “nResidue_y0” is a variable corresponding to the variable “nResidue_x0” required for the reduction in the main scanning direction, and is a variable representing the number of divided blocks included in the front remaining area in the sub-scanning direction. The variable “nMain_y” is a variable corresponding to the variable “nMain_x” required for the reduction in the main scanning direction, and is a variable representing the number of pixels included in the central region in the sub-scanning direction. The variable “nResidue_y1” is a variable corresponding to the variable “nResidue_x1” required for the reduction in the main scanning direction, and is a variable representing the number of divided blocks included in the rear remaining area in the sub-scanning direction. .
図5に示すように、(nBlock_x)×(nBlock_y)個からなる分割ブロックは、主走査方向に3区分(nResidue_x0,nMain_x,nResidue_x1)に分けると共に、副走査方向に3区分(nResidue_y0,nMain_y,nResidue_y1)に分けた結果として、A1〜A9までの9個の領域に分割される。 As shown in FIG. 5, (nBlock_x) × (nBlock_y) divided blocks are divided into three sections (nResidue_x0, nMain_x, nResidue_x1) in the main scanning direction and three sections (nResidue_y0, nMain_e, nReid_e, nResid_e, nReid_e, nResid ) Is divided into nine areas A1 to A9.
なお、変数「nPosRes_y0」は、上記した主走査方向の縮小に必要とされる変数「nPosRes_x0」に対応する変数であり、元画像における、前方残余領域を含む画素に対する副走査方向の座標を表す変数である。また、変数「nPosMain_y0」は、上記した主走査方向の縮小に必要とされる変数「nPosMain_x0」に対応する変数であり、元画像における、中央領域に含まれるM個(Mは1以上の整数)の画素のうち、最初の画素(前方残余領域に隣接する画素)に対する副走査方向の座標を表す変数である。また、変数「nPosRes_y1」は、上記した主走査方向の縮小に必要とされる変数「nPosRes_x1」に対応する変数であり、元画像における、後方残余領域を含む画素に対する副走査方向の座標を表す変数である。 The variable “nPosRes_y0” is a variable corresponding to the variable “nPosRes_x0” required for the reduction in the main scanning direction, and represents the coordinates in the sub-scanning direction with respect to the pixels including the front remaining area in the original image. It is. The variable “nPosMain_y0” is a variable corresponding to the variable “nPosMain_x0” necessary for the reduction in the main scanning direction, and is included in the central region in the original image (M is an integer of 1 or more). This is a variable representing coordinates in the sub-scanning direction with respect to the first pixel (pixel adjacent to the front residual area). A variable “nPosRes_y1” is a variable corresponding to the variable “nPosRes_x1” required for the reduction in the main scanning direction, and represents a coordinate in the sub-scanning direction with respect to the pixel including the rear residual area in the original image. It is.
また、領域A1に含まれる分割ブロック数は、(nResidue_x0×nResidue_y0)個であり、領域A2に含まれる分割ブロック数は、(nMain_x×nDev×nResidue_y0)個であり、領域A3に含まれる分割ブロック数は、(nResidue_x1×nResidue_y0)個である。 The number of divided blocks included in the area A1 is (nResidue_x0 × nResidue_y0), the number of divided blocks included in the area A2 is (nMain_x × nDev × nResidue_y0), and the number of divided blocks included in the area A3. Are (nResidue_x1 × nResidue_y0).
同様に、領域A4に含まれる分割ブロック数は、(nResidue_x0×nMain_y×nDev)個であり、領域A5に含まれる分割ブロック数は、(nMain_x×nMain_y×nDev2)個であり、領域A6に含まれる分割ブロック数は、(nResidue_x1×nMain_y×nDev)個である。 Similarly, the number of divided blocks included in the region A4 is (nResidue_x0 × nMain_y × nDev), and the number of divided blocks included in the region A5 is (nMain_x × nMain_y × nDev 2 ) and included in the region A6. The number of divided blocks is (nResidue_x1 × nMain_y × nDev).
さらに、領域A7に含まれる分割ブロック数は、(nResidue_x0×nResidue_y1)個であり、領域A8に含まれる分割ブロック数は、(nMain_x×nDev×nResidue_y1)個であり、領域A9に含まれる分割ブロック数は、(nResidue_x1×nResidue_y1)個である。 Further, the number of divided blocks included in the region A7 is (nResidue_x0 × nResidue_y1), the number of divided blocks included in the region A8 is (nMain_x × nDev × nResidue_y1), and the number of divided blocks included in the region A9. Is (nResidue_x1 × nResidue_y1).
詳細は後述するが、本実施形態における高速平均画素処理(図6におけるS602の処理)では、このように、元画像Pの各画素をnDev個の分割ブロックに分割し、分割ブロックの単位で処理することによって、最小公倍数に拡大することなく、また、演算の際に浮動小数点を使用することなく、出力画像Qの1画素の画素値を得ることができるので、平均画素法による縮小を高速化することができるのである。 Although details will be described later, in the high-speed average pixel processing (processing of S602 in FIG. 6) in the present embodiment, each pixel of the original image P is thus divided into nDev divided blocks and processed in units of divided blocks. As a result, the pixel value of one pixel of the output image Q can be obtained without enlarging to the least common multiple and without using a floating point in the calculation, so that the reduction by the average pixel method is accelerated. It can be done.
次に、図6のフローチャートを参照して、上記構成を有するプリンタ1で実行される画像縮小処理について説明する。図6は、プリンタ1で実行される画像縮小処理を示すフローチャートである。この画像縮小処理は、(ix×iy)の画像サイズ(画素数)を有する略矩形の元画像P(元画像データ)がプリンタ1に入力されると(例えば、ケーブル6及びI/F18を介してデジタルカメラ21から元画像Pが入力されると)、起動する処理である。
Next, an image reduction process executed by the
図6に示すように、この画像縮小処理では、まず、プリンタ1に入力された元画像データを元画像メモリ13aに記憶して(S601)、元画像メモリ13aに記憶された元画像データを、高速化された平均画素法を用いて、ユーザによって入力された出力画像サイズ(ox×oy)に縮小し、(ox×oy)の画像サイズ(画素数)を有する略矩形の出力画像データ(出力画像Q)を生成する高速平均画素処理を実行する(S602)。なお、この高速平均画素処理(S602)における詳細な処理については図7を参照して後述する。
As shown in FIG. 6, in this image reduction process, first, the original image data input to the
高速平均画素処理(S602)の実行後、得られた出力画像データに対し、エッジの先鋭化処理を行う(S603)。S603で行われるエッジの先鋭化処理については、本発明の要旨ではないと共に公知の技術であるので、具体的な説明は省略するが、例えば、3×3のマトリクスで構成される先鋭化フィルタ(例えば、ラプラシアンフィルタ)を用い、出力画像データの各画素値をフィルタ処理することが挙げられる。 After execution of the high-speed average pixel processing (S602), edge sharpening processing is performed on the obtained output image data (S603). The edge sharpening processing performed in S603 is not a gist of the present invention and is a known technique, and thus a detailed description thereof will be omitted. For example, a sharpening filter configured by a 3 × 3 matrix ( For example, each pixel value of the output image data is filtered using a Laplacian filter.
S603の処理後、高速平均画素処理(S602)の結果として出力画像メモリ13bに記憶されている出力画像データを回転しながら印刷部15へ出力し(S604)、この画像縮小処理を終了する。S604の結果として、元画像Pがユーザ指定された出力画像サイズに縮小された出力画像Qが印刷部15において印刷媒体に印刷される。
After the process of S603, the output image data stored in the
次に、図7のフローチャートを参照して、上記した画像縮小処理(図6参照)で実行される高速平均画素処理(S602)について説明する。図7は、高速平均画素処理(S602)を示すフローチャートである。 Next, the high-speed average pixel process (S602) executed in the above-described image reduction process (see FIG. 6) will be described with reference to the flowchart in FIG. FIG. 7 is a flowchart showing high-speed average pixel processing (S602).
図7に示すように、高速平均画素処理(S602)では、まず、元画像メモリ13aに記憶されている元画像Pの画像サイズ(ix×iy)と、出力サイズメモリ13cに記憶されている出力画像サイズとから、縮小率を算出し、算出された縮小率を縮小率メモリに記憶する(S701)。なお、出力サイズメモリ13cに記憶されている出力画像サイズ(ox×oy)は、ユーザによって操作パネル16から別途入力されている値である。
As shown in FIG. 7, in the high-speed average pixel processing (S602), first, the image size (ix × iy) of the original image P stored in the
S701の処理後、分割数nDevの値を算出する(S702)。本実施形態では、S702において、出力画像Qの画質を可能な限り最高にする分割数nDevを算出するものとする。即ち、本実施形態では、S702では、分割数nDevを下記式(4)によって得る。 After the process of S701, the value of the division number nDev is calculated (S702). In this embodiment, in S702, the division number nDev that maximizes the image quality of the output image Q is calculated. That is, in this embodiment, in S702, the division number nDev is obtained by the following equation (4).
ここで、Dxは、(ix−rx)/oxであり、rxは、ix/oxの余りであり、Dyは、(iy−ry)/oyであり、ryはiy/oyの余りであり、ValueMaxは、前記演算装置の処理能力を示す値の最大値であり、PalletMaxは、1画素が取り得る色データ(パレット)の最大値である。 Here, Dx is (ix−rx) / ox, rx is the remainder of ix / ox, Dy is (iy−ry) / oy, and ry is the remainder of iy / oy, ValueMax is the maximum value indicating the processing capability of the arithmetic unit, and PalletMax is the maximum color data (palette) that can be taken by one pixel.
上記式(4)によって得られる分割数nDevは、上記した不等式(3)を満たす最大の分割数nDevであるので、縮小時におけるCPU11のオーバーフローが確実に防止される値であると共に、CPU11によって出力し得る最高の画質の縮小画像ということになる。
Since the division number nDev obtained by the above equation (4) is the maximum division number nDev that satisfies the above inequality (3), it is a value that reliably prevents overflow of the
S702の処理後、変数nReadBlock_x、nResidue_x0、nPosRes_x0、nReadBlock_y、nResidue_y0、及びnPosRes_y0の値をいずれも0に設定し(S703)、出力画像Qにおける画素の主走査方向の座標iout及び副走査方向の座標joutを、先頭座標である(0,0)に設定する(S704)。 After the process of S702, variables nReadBlock_x, nResidue_x0, nPosRes_x0, nReadBlock_y, nResidue_y0, and both the value of nPosRes_y0 set to 0 (S703), the main scanning direction of the coordinate i out and the sub-scanning direction of the coordinates of the pixels in the output image Q j out is set to (0, 0) which is the top coordinate (S704).
S704の処理後、副走査方向ブロック処理を実行する(S705)。詳細は図8(a)を参照しつつ後述するが、副走査方向ブロック処理(S705)の実行によって、座標出力画像Qにおける座標(iout,jout)の画素に対応する元画像Pに対し、副走査方向の変数であるnBlock_y、nMain_y、nResidue_y1、nPosMain_y0、及びnPosRes_y1の値がいずれも整数値として得られる。 After the process of S704, the sub-scanning direction block process is executed (S705). Although details will be described later with reference to FIG. 8A, the execution of the sub-scanning direction block process (S705) causes the original image P corresponding to the pixel of the coordinates (i out , j out ) in the coordinate output image Q to be processed. The values of nBlock_y, nMain_y, nResidue_y1, nPosMain_y0, and nPosRes_y1 that are variables in the sub-scanning direction are all obtained as integer values.
副走査方向ブロック処理(S705)の実行後、主走査方向ブロック処理を実行する(S706)。詳細は図8(b)を参照しつつ後述するが、主走査方向ブロック処理(S706)の実行によって、座標出力画像Qにおける座標(iout,jout)の画素に対応する元画像Pに対し、主走査方向の変数であるnBlock_x、nMain_x、nResidue_x1、nPosMain_x0、及びnPosRes_x1の値がいずれも整数値として得られる。 After the execution of the sub-scanning direction block process (S705), the main scanning direction block process is executed (S706). Although details will be described later with reference to FIG. 8B, the main image P corresponding to the pixel of the coordinates (i out , j out ) in the coordinate output image Q is obtained by executing the main scanning direction block processing (S706). The values of nBlock_x, nMain_x, nResidue_x1, nPosMain_x0, and nPosRes_x1, which are variables in the main scanning direction, are all obtained as integer values.
主走査方向ブロック処理(S706)の実行後、変数Planeの値を0に設定する。なお、本実施形態では、画像データがRGBから構成されているので、変数Pleneの値は0から2までの3つの値を取り得、この変数Planeの値によって、赤(R)プレーン(Plane=0)、緑(G)プレーン(Plane=1)、及び青(B)プレーン(Plane=2)のいずれかのカラープレーンが指定される。 After execution of the main scanning direction block processing (S706), the value of the variable Plane is set to zero. In the present embodiment, since the image data is composed of RGB, the value of the variable Plane can take three values from 0 to 2, and the red (R) plane (Plane = 0) is determined by the value of the variable Plane. ), A green (G) plane (Plane = 1), and a blue (B) plane (Plane = 2).
S707の処理後、S707又は後述するS712により設定されたPlane値に対応するカラープレーンの画素値を取得する縮小画像出力処理(S708)を実行する。なお、詳細は図9を参照しつつ後述するが、この縮小画像出力処理(S708)では、出力画像Qにおける座標(iout,jout)の画素に対応する元画像Pの領域におけるPlane値によって指定されたカラープレーンの平均画素値の計算を行う。 After the process of S707, a reduced image output process (S708) for acquiring the pixel value of the color plane corresponding to the plane value set in S707 or S712 described later is executed. Although details will be described later with reference to FIG. 9, in this reduced image output process (S708), the Plane value in the region of the original image P corresponding to the pixel at the coordinates (i out , j out ) in the output image Q is used. Calculate the average pixel value of the specified color plane.
縮小画像出力処理(S708)の実行後、変数Planeの値が2であるかを確認し(S709)、変数Planeの値が0又は1であれば(S709:No)、変数Planeの値に1加算し(S712)、縮小画像出力処理(S708)へ移行する。即ち、次のPlane値に対応するカラープレーンに対し、縮小画像出力処理(S708)を実行する。 After execution of the reduced image output process (S708), it is confirmed whether the value of the variable Plane is 2 (S709). If the value of the variable Plane is 0 or 1 (S709: No), the value of the variable Plane is set to 1. Addition is performed (S712), and the process proceeds to reduced image output processing (S708). That is, the reduced image output process (S708) is executed for the color plane corresponding to the next plane value.
一方で、S709の処理により確認した結果、変数Planeの値が2であれば(S709:Yes)、出力画像Qにおける座標(iout,jout)の画素の画素値が、全てのカラープレーン(RGB)に対して得られたことを示すので、次に、iout=oxであるか、即ち、出力画像Qにおける座標(iout,jout)の画素が主走査方向の終端の画素であるかを確認する(S710)。 On the other hand, if the value of the variable Plane is 2 (S709: Yes) as a result of the confirmation in the process of S709, the pixel values of the pixels at the coordinates (i out , j out ) in the output image Q are all color planes ( Next, i out = ox, that is, the pixel at the coordinates (i out , j out ) in the output image Q is the terminal pixel in the main scanning direction. (S710).
S710の処理により確認した結果、iout=oxでなければ(S710:No)、ioutの値に1加算して、出力画像Qの画素を主走査方向に1進め(S713)、主走査方向次回初期値取得処理を実行する(S714)。なお、詳細は図10(a)を参照しつつ後述するが、この主走査方向次回初期値取得処理(S714)では、変数nReadBlock_x、nResidue_x0、nPosRes_x0の値の更新を図る。 If i out = ox is not confirmed as a result of the processing in S710 (S710: No), 1 is added to the value of i out , and the pixel of the output image Q is advanced by 1 in the main scanning direction (S713). Next time initial value acquisition processing is executed (S714). Although details will be described later with reference to FIG. 10A, in this next initial value acquisition process in the main scanning direction (S714), the values of the variables nReadBlock_x, nResidue_x0, and nPosRes_x0 are updated.
主走査方向次回初期値取得処理(S714)の実行後、主走査方向ブロック処理(S706)へ移行し、S713において主走査方向に1進められた出力画像Qの画素に対応する変数nBlock_x、nMain_x、nResidue_x1、nPosMain_x0、及びnPosRes_x1の値が得られる。 After the execution of the next initial value acquisition process (S714) in the main scanning direction, the process proceeds to the main scanning direction block process (S706), and in steps S713, variables nBlock_x, nMain_x, n corresponding to the pixels of the output image Q advanced by 1 in the main scanning direction. The values of nResidue_x1, nPosMain_x0, and nPosRes_x1 are obtained.
一方で、S710の処理により確認した結果、iout=oxであれば(S710:Yes)、同じ副走査方向の座標joutに位置する全ての画素に対し、縮小画像出力処理(S708)が実行されて画素値が得られたことを示すので、次に、jout=oyであるか、即ち、出力画像Qにおける座標(iout,jout)の画素が副走査方向の終端の画素であるかを確認する(S711)。 On the other hand, if i out = ox as a result of the confirmation in S710 (S710: Yes), the reduced image output process (S708) is executed for all the pixels located at the coordinate j out in the same sub-scanning direction. Next, j out = oy, that is, the pixel at the coordinates (i out , j out ) in the output image Q is the end pixel in the sub-scanning direction. (S711).
S711の処理により確認した結果、jout=oyでなければ(S711:No)、joutの値に1加算すると共に(S715)、ioutの値を0に設定する(S716)。S715及びS716の処理の結果として、出力画像Qを構成する画素の中から選択される画素の位置が、副走査方向に1進められると共に、主走査方向の先頭座標に戻される。 As a result of checking in the process of S711, if j out is not oy (S711: No), 1 is added to the value of j out (S715), and the value of i out is set to 0 (S716). As a result of the processing in S715 and S716, the position of the pixel selected from the pixels constituting the output image Q is advanced by 1 in the sub-scanning direction and returned to the top coordinate in the main scanning direction.
S716の処理後、副走査方向次回初期値取得処理を実行する(S717)。なお、詳細は図10(b)を参照しつつ後述するが、副走査方向次回初期値取得処理(S717)では、変数nReadBlock_y、nResidue_y0、nPosRes_y0の値の更新を図る。 After the process of S716, the next initial value acquisition process in the sub-scanning direction is executed (S717). Although details will be described later with reference to FIG. 10B, the values of the variables nReadBlock_y, nResidue_y0, and nPosRes_y0 are updated in the next initial value acquisition process (S717) in the sub-scanning direction.
副走査方向次回初期値取得処理(S717)の実行後、主走査方向次回初期値取得処理を実行する(S718)。この主走査方向次回初期値取得処理(S718)もまた、主走査方向次回初期値取得処理(S714)と同様に、変数nReadBlock_x、nResidue_x0、nPosRes_x0の値を得る処理である。なお、詳細は図10(a)を参照しつつ後述するが、主走査方向次回初期値取得処理(S718)は、出力画像Qの主走査方向先頭座標に対する処理であるので、変数nReadBlock_x、nResidue_x0、nPosRes_xの値はいずれも0に設定される。 After executing the next initial value acquisition process in the sub-scanning direction (S717), the next initial value acquisition process in the main scanning direction is executed (S718). This next initial value acquisition process in the main scanning direction (S718) is also a process for obtaining values of the variables nReadBlock_x, nResidue_x0, and nPosRes_x0 in the same manner as the next initial value acquisition process in the main scanning direction (S714). Although details will be described later with reference to FIG. 10A, since the next initial value acquisition process (S718) in the main scanning direction is a process for the top coordinate in the main scanning direction of the output image Q, the variables nReadBlock_x, nResidue_x0, The values of nPosRes_x are all set to 0.
主走査方向次回初期値取得処理(S718)の実行後、副走査方向ブロック処理(S705)へ移行し、S715において副走査方向に1進められた出力画像Qの画素に対応する変数nBlock_y、nMain_y、nResidue_y1、nPosMain_y0、及びnPosRes_y1の値が得られる。 After the execution of the next initial value acquisition process (S718) in the main scanning direction, the process proceeds to the sub scanning direction block process (S705), and variables nBlock_y, nMain_y corresponding to the pixels of the output image Q advanced by 1 in the sub scanning direction in S715. The values of nResidue_y1, nPosMain_y0, and nPosRes_y1 are obtained.
一方で、jout=oyであれば(S711:Yes)、出力画像Qにおける全て((ox×oy)個)の画素に対し、縮小画像出力処理(S708)が実行されて画素値が得られたことを示すので、この高速平均画素処理(S602)を終了する。この高速平均画素処理(S602)によって、元画像サイズ(ix×iy)の元画像Pを縮小して得られた出力画像サイズ(ox×oy)の出力画像Qに対する出力画像データが、出力画像メモリ13bに記憶されることになる。 On the other hand, if j out = oy (S711: Yes), the reduced image output process (S708) is executed on all ((ox × oy)) pixels in the output image Q to obtain pixel values. The high-speed average pixel processing (S602) is terminated. The output image data for the output image Q of the output image size (ox × oy) obtained by reducing the original image P of the original image size (ix × iy) by the high-speed average pixel processing (S602) is output to the output image memory. 13b is stored.
次に、図8のフローチャートを参照して、上記した高速平均画素処理(図7参照)で実行される副走査方向ブロック処理(S705)及び主走査方向ブロック処理(S706)について説明する。図8(a)は、副走査方向ブロック処理(S705)を示すフローチャートであり、図8(b)は、主走査方向ブロック処理(S706)を示すフローチャートである。 Next, the sub-scanning direction block processing (S705) and main scanning direction block processing (S706) executed in the above-described high-speed average pixel processing (see FIG. 7) will be described with reference to the flowchart of FIG. FIG. 8A is a flowchart showing sub-scanning direction block processing (S705), and FIG. 8B is a flowchart showing main scanning direction block processing (S706).
図8(a)に示すように、副走査方向ブロック処理(S705)では、まず、変数nBlock_yの値を、式nBlock_y=jout×[(iy/oy)×nDev]−nReadBlock_yから求める(S801)。 As shown in FIG. 8A, in the sub-scanning direction block processing (S705), first, the value of the variable nBlock_y is obtained from the expression nBlock_y = j out × [(iy / oy) × nDev] −nReadBlock_y (S801). .
このS801の結果として、出力画像Qの1画素における副走査方向の分割ブロックの数(nBlock_y)は、高速平均画素処理(S602)において既に処理済みである副走査方向の分割ブロックに隣接する分割ブロックを始点として抽出されることになる。 As a result of S801, the number of divided blocks in the sub-scanning direction (nBlock_y) in one pixel of the output image Q is the divided block adjacent to the divided block in the sub-scanning direction that has already been processed in the high-speed average pixel processing (S602). Will be extracted starting from.
また、出力画像Qの1画素における副走査方向の分割ブロックの終点を、副走査方向の縮小率(oy/iy)の値に依らず、ガウス記号によって小数点以下を切り捨てることによって求めるので、結果として、変数nBlock_yを、分割ブロックの数、即ち、整数で表すことができる。 In addition, the end point of the divided block in the sub-scanning direction in one pixel of the output image Q is obtained by rounding off the decimal part with a Gaussian symbol regardless of the reduction rate (oy / ii) in the sub-scanning direction. The variable nBlock_y can be expressed by the number of divided blocks, that is, an integer.
S801の処理後、S801において求めた変数nBlock_yの値を用いて、変数nMain_yの値を、式nMain_y=[(nBlock_y−nResidue_y0)/nDev]から求める(S802)。 After the processing of S801, the value of the variable nMain_y is obtained from the expression nMain_y = [(nBlock_y−nResidue_y0) / nDev] using the value of the variable nBlock_y obtained in S801 (S802).
S802の処理後、S802において求めた変数nMain_yの値を用いて、変数nResidue_y1を、式nResidue_y1=nBlock_y−nResidue_y0−(nMain_y×nDev)から求める(S803)。 After the processing of S802, using the value of the variable nMain_y obtained in S802, the variable nResidue_y1 is obtained from the expression nResidue_y1 = nBlock_y-nResidue_y0- (nMain_y × nDev) (S803).
次に、変数nPosMain_y0の値を、式=nPosRes_y0+1から求め(S804)、求めた変数nPosMain_y0の値を用いて、変数nPosRes_y1の値を、式nPosRes_y1=nPosMain_y0×+nMain_y+1から求め(S805)、この副走査方向ブロック処理(S705)を終了する。 Next, the value of the variable nPosMain_y0 is obtained from the equation = nPosRes_y0 + 1 (S804). Using the obtained value of the variable nPosMain_y0, the value of the variable nPosRes_y1 is obtained from the equation nPosRes_y1 = nPosMain_y0 × + nMain_y + 1, this sub direction 80 (S80). The block process (S705) is terminated.
図8(b)に示すように、主走査方向ブロック処理(S706)では、まず、変数nBlock_xの値を、式nBlock_x=jout×[(ix/ox)×nDev]−nReadBlock_xから求める(S811)。 As shown in FIG. 8 (b), the main scanning direction block process (S706), firstly, the value of the variable NBlock_x, determined from the equation nBlock_x = j out × [(ix / ox) × nDev] -nReadBlock_x (S811) .
このS811の結果として、出力画像Qの1画素における主走査方向の分割ブロックの数(nBlock_x)は、高速平均画素処理(S602)において既に処理済みである主走査方向の分割ブロックに隣接する分割ブロックを始点として抽出されることになる。 As a result of S811, the number of divided blocks in the main scanning direction (nBlock_x) in one pixel of the output image Q is equal to the divided block adjacent to the divided block in the main scanning direction that has already been processed in the high-speed average pixel processing (S602). Will be extracted starting from.
また、出力画像Qの1画素における主走査方向の分割ブロックの終点を、主走査方向の縮小率(ox/ix)の値に依らず、ガウス記号によって小数点以下を切り捨てることによって求めるので、結果として、変数nBlock_xを、分割ブロックの数、即ち、整数で表すことができる。 Further, the end point of the divided block in the main scanning direction in one pixel of the output image Q is obtained by rounding off the decimal part with a Gaussian symbol regardless of the reduction ratio (ox / ix) in the main scanning direction. The variable nBlock_x can be expressed by the number of divided blocks, that is, an integer.
S811の処理後、S811において求めた変数nBlock_xの値を用いて、変数nMain_xの値を、式nMain_x=[(nBlock_x−nResidue_x0)/nDev]から求める(S812)。 After the processing of S811, the value of the variable nMain_x is obtained from the expression nMain_x = [(nBlock_x−nResidue_x0) / nDev] using the value of the variable nBlock_x obtained in S811 (S812).
S812の処理後、S812において求めた変数nMain_xの値を用いて、変数nResidue_x1を、式nResidue_x1=nBlock_x−nResidue_x0−(nMain_x×nDev)から求める(S813)。 After the processing of S812, using the value of the variable nMain_x obtained in S812, the variable nResidue_x1 is obtained from the expression nResidue_x1 = nBlock_x-nResidue_x0- (nMain_xx × nDev) (S813).
次に、変数nPosMain_x0の値を、式=nPosRes_x0+1から求め(S814)、求めた変数nPosMain_x0の値を用いて、変数nPosRes_x1の値を、式nPosRes_x1=nPosMain_x0×+nMain_x+1から求め(S815)、この主走査方向ブロック処理(S706)を終了する。 Next, the value of the variable nPosMain_x0 is obtained from the equation = nPosRes_x0 + 1 (S814). Using the obtained value of the variable nPosMain_x0, the value of the variable nPosRes_x1 is obtained from the equation nPosRes_x1 = nPosMain_x0 × + nMain_x15 (main scan direction). The block process (S706) is terminated.
これら副走査方向ブロック処理(S705)及び主走査方向ブロック処理(S706)の結果として、出力画像Qにおける座標(iout,jout)の画素は、A1〜A9の領域(図5参照)に区分されることになる。 As a result of these sub-scanning direction block processing (S705) and main scanning direction block processing (S706), the pixels of the coordinates (i out , j out ) in the output image Q are divided into areas A1 to A9 (see FIG. 5). Will be.
このように、出力画像Qにおける座標(iout,jout)の画素は、完全な元画像Pの画素から構成される領域(A5)と、元画像Pの1画素に満たない領域(A1〜A4,A6〜A9)とに区分されているので、1画素に満たない領域(A1〜A4,A6〜A9)の分割ブロック数も、その領域における(主走査方向の分割ブロック数×副走査方向の分割ブロック数)の計算によって容易に算出することができる。その結果として、次に図9を参照しつつ説明する縮小画素出力処理(S708)における各領域の部分画素値の算出(S901参照)や、最終的な平均画素値の算出(S903)を容易に行い得るのである。 Thus, the pixel of the coordinates (i out , j out ) in the output image Q has a region (A5) composed of pixels of the complete original image P, and a region (A1 to A1) that is less than one pixel of the original image P. A4, A6 to A9), the number of divided blocks of an area (A1 to A4, A6 to A9) less than one pixel is also equal to (number of divided blocks in the main scanning direction × sub-scanning direction) in that area. The number of divided blocks can be easily calculated. As a result, it is easy to calculate partial pixel values (see S901) and final average pixel values (S903) of each region in the reduced pixel output processing (S708) described below with reference to FIG. It can be done.
また、S801及びS811における演算式において小数点以下の切り捨てが行われるので、主走査方向の縮小率(ox/ix)及び副走査方向の縮小率(oy/iy)に依ることなく、変数nBlock_x及び変数nBlock_yの値を整数で表すことができる。その結果として、次に図9を参照しつつ説明する縮小画素出力処理(S708)による平均画素値の算出が整数演算によって行われるので、処理速度の向上(処理時間の短縮)を図ることができることになる。 Further, since truncation is performed in the arithmetic expressions in S801 and S811, the variable nBlock_x and the variable are not dependent on the reduction ratio (ox / ix) in the main scanning direction and the reduction ratio (oy / ii) in the sub-scanning direction. The value of nBlock_y can be represented by an integer. As a result, the calculation of the average pixel value by the reduced pixel output process (S708) described next with reference to FIG. 9 is performed by integer arithmetic, so that the processing speed can be improved (processing time can be shortened). become.
また、S801及びS811の結果として、出力画像Qの1画素における主走査方向の分割ブロックの数(nBlock_x)及び副走査方向の分割ブロックの数(nBlock_y)は、いずれも、高速平均画素処理(S602)において既に処理済みである分割ブロックに隣接する分割ブロックを始点として抽出されることになる。その結果、次に図9を参照しつつ説明する縮小画素出力処理(S708)による平均画素値の算出では、元画像Pに含まれる画像情報を漏れなく全て使用することになるので、縮小に伴う画質劣化を抑制できることになる。 As a result of S801 and S811, the number of divided blocks in the main scanning direction (nBlock_x) and the number of divided blocks in the sub-scanning direction (nBlock_y) for one pixel of the output image Q are both high-speed average pixel processing (S602). ), The divided block adjacent to the already processed divided block is extracted as the starting point. As a result, the calculation of the average pixel value by the reduced pixel output process (S708) described next with reference to FIG. 9 uses all of the image information included in the original image P without omission. Image quality deterioration can be suppressed.
次に、図9のフローチャートを参照して、上記した高速平均画素処理(図7参照)で実行される縮小画素出力処理(S708)について説明する。図9は、縮小画素出力処理(S708)を示すフローチャートである。 Next, the reduced pixel output process (S708) executed in the above-described high-speed average pixel process (see FIG. 7) will be described with reference to the flowchart in FIG. FIG. 9 is a flowchart showing the reduced pixel output process (S708).
図9に示すように、この縮小画像出力処理(S708)では、まず、主走査方向ブロック処理(S706)及び副走査方向ブロック処理(S705)の結果として区分された各領域毎に、Plane値に対応するカラープレーンの部分画素値を計算する(S901)。なお、本実施形態における「部分画素値」とは、各領域における(Plane値に対応するカラープレーンの画素値×その画素に含まれる分割ブロック数)の総和によって得られる値を意味するものとする。 As shown in FIG. 9, in the reduced image output processing (S708), first, the Plane value is set for each area divided as a result of the main scanning direction block processing (S706) and the sub scanning direction block processing (S705). The partial pixel value of the corresponding color plane is calculated (S901). Note that the “partial pixel value” in the present embodiment means a value obtained by the sum of (the pixel value of the color plane corresponding to the plane value × the number of divided blocks included in the pixel) in each region. .
S901において、例えば、領域A1の部分画素値は、(領域A1におけるPlane値に対応するカラープレーンの画素値×領域A1に含まれる分割ブロック数)、即ち、(元画像Pの座標(nResidue_x0,nResidue_y0)の画素におけるPlane値に対応するカラープレーンの画素値×nResidue_x0×nResidue_y0)から得ることができる。なお、このとき、nResidue_x0の値が0である場合には、領域A1の部分画素値は0と計算される。 In S901, for example, the partial pixel value of the area A1 is (the pixel value of the color plane corresponding to the Plane value in the area A1 × the number of divided blocks included in the area A1), that is, the coordinates of the original image P (nResidue_x0, nResidue_y0). ) Of the color plane corresponding to the Plane value in the pixel of (× Residue_x0 × nResidue_y0). At this time, if the value of nResidue_x0 is 0, the partial pixel value of the area A1 is calculated as 0.
S901の処理後、各領域毎に計算された部分画素値を合計し(S902)、得られた合計値を、処理中の画素に含まれる総分割ブロック数(nBlock_x×nBlock_y)で除して平均画素値を算出する(S903)。 After the processing of S901, the partial pixel values calculated for each region are summed (S902), and the obtained total value is divided by the total number of divided blocks (nBlock_x × nBlock_y) included in the pixel being processed. A pixel value is calculated (S903).
S903の処理後、算出した平均画素値を、出力画像Qにおける座標(iout,jout)の画素の画素値として出力画像メモリ13bに記憶し(S904)、この縮小画素出力処理(S708)を終了する。
After the processing of S903, the calculated average pixel value is stored in the
即ち、この縮小画素出力処理(S708)が1回実行される毎に、出力画像Qにおける座標(iout,jout)の1画素の画素値が出力画像メモリ13bに記憶されることになる。このとき、出力画像メモリ13bに記憶される出力画像Qの1画素の画素値は、その画素に対応する元画像Pの領域の平均画素値である。
That is, each time this reduced pixel output process (S708) is executed once, the pixel value of one pixel at the coordinates (i out , j out ) in the output image Q is stored in the
次に、図10のフローチャートを参照して、上記した高速平均画素処理(図7参照)で実行される主走査方向次回初期値取得処理(S714,S717)及び副走査方向次回初期値取得処理(S718)について説明する。図10(a)は、主走査方向次回初期値取得処理(S714,S717)を示すフローチャートであり、図10(b)は、副走査方向次回初期値取得処理(S718)を示すフローチャートである。 Next, referring to the flowchart of FIG. 10, the next initial value acquisition process in the main scanning direction (S714, S717) and the next initial value acquisition process in the sub-scanning direction (see FIG. 7) performed in the above-described high-speed average pixel processing (see FIG. 7). S718) will be described. FIG. 10A is a flowchart showing the next initial value acquisition process in the main scanning direction (S714, S717), and FIG. 10B is a flowchart showing the next initial value acquisition process in the sub-scanning direction (S718).
図10(a)に示すように、主走査方向次回初期値取得処理(S714,S717)では、まず、iout=0かを確認し(S1001)、iout=0であれば(S1001:Yes)、変数nReadBlock_x、nResidue_x0、及びnPosRes_x0の値をいずれも0に設定し(S1002)、この主走査方向次回初期値取得処理(S714,S717)を終了する。 As shown in FIG. 10A, in the next initial value acquisition process (S714, S717) in the main scanning direction, first, it is confirmed whether i out = 0 (S1001), and if i out = 0 (S1001: Yes). ), The values of the variables nReadBlock_x, nResidue_x0, and nPosRes_x0 are all set to 0 (S1002), and the next initial value acquisition process in the main scanning direction (S714, S717) ends.
一方で、S1001の処理により確認した結果、ioutの値が0でなければ(S1001:No)、変数nResidue_x0の値を、式nResidue_x0=nDev−nResidue_x1から求める(S1003)。 On the other hand, if the value of i out is not 0 (S1001: No) as a result of the confirmation in S1001, the value of the variable nResidue_x0 is obtained from the expression nResidue_x0 = nDev-nResidue_x1 (S1003).
S1003の処理後、変数nPosRes_x0の値を、式nPosRes_x0=nPosRes_x1から求め(S1004)、変数nReadBlock_xの値を、式nReadBlock_x=nReadBlock_x+nBlock_xから求め(S1005)、この主走査方向次回初期値取得処理(S714,S717)を終了する。 After the process of S1003, the value of the variable nPosRes_x0 is obtained from the expression nPosRes_x0 = nPosRes_x1 (S1004), and the value of the variable nReadBlock_x is obtained from the expression nReadBlock_x = nReadBlock_x + nBlock_x (S1005, the next main acquisition process S17). ) Ends.
図10(b)に示すように、副走査方向次回初期値取得処理(S718)では、まず、変数nResidue_y0の値を、式nResidue_y0=nDev−nResidue_y1から求める(S1011)。 As shown in FIG. 10B, in the next initial value acquisition process in the sub-scanning direction (S718), first, the value of the variable nResidue_y0 is obtained from the expression nResidue_y0 = nDev-nResidue_y1 (S1011).
S1003の処理後、変数nPosRes_y0の値を、式nPosRes_y0=nPosRes_y1から求め(S1012)、変数nReadBlock_yの値を、式nReadBlock_y=nReadBlock_y+nBlock_yから求め(S1013)、この副走査方向次回初期値取得処理(S718)を終了する。 After the processing of S1003, the value of the variable nPosRes_y0 is obtained from the expression nPosRes_y0 = nPosRes_y1 (S1012), and the value of the variable nReadBlock_y is obtained from the expression nReadBlock_y = nReadBlock_y + nBlock_y (S1013). finish.
これらの主走査方向次回初期値取得処理(S714,S717)及び副走査方向次回初期値取得処理(S718)の結果として、次回、主走査方向ブロック処理(S706)及び副走査方向ブロック処理(S705)を実行する上で必要となる変数nReadBlock_x、nResidue_x0、nPosRes_x0、nReadBlock_y、nResidue_y0、及びnPosRes_y0の値が得られる。 As a result of these next initial value acquisition processing in the main scanning direction (S714, S717) and next initial value acquisition processing in the sub scanning direction (S718), next time in the main scanning direction block processing (S706) and sub scanning direction block processing (S705). The values of the variables nReadBlock_x, nResidue_x0, nPosRes_x0, nReadBlock_y, nResidue_y0, and nPosRes_y0 that are necessary for executing the above are obtained.
特に、変数nPosRes_x0及び変数nPosRes_y0の値が求められることによって、次回処理する出力画像Qの画素において領域A1〜A9に対応する元画像Pの画素位置(画素の座標)を容易に特定することができる。その結果、1画素に満たない領域(A1〜A4,A6〜A9)を含む元画像Pの領域に対しても、上記した縮小画素出力処理(S708,図9参照)による平均画素の算出を容易に行い得る。 In particular, by obtaining the values of the variable nPosRes_x0 and the variable nPosRes_y0, it is possible to easily specify the pixel positions (pixel coordinates) of the original image P corresponding to the regions A1 to A9 in the pixels of the output image Q to be processed next time. . As a result, the average pixel can be easily calculated by the reduced pixel output process (S708, see FIG. 9) even for the area of the original image P including the area (A1 to A4, A6 to A9) that is less than one pixel. Can be done.
次に、図11を参照して、上記した高速平均画素処理(S502)を含む本実施形態の画像縮小処理(図5)を用いた場合の優位性を実証する。なお、以下では、高速平均画素処理(S502)を含む本実施形態の画像縮小処理による縮小手法を「高速平均画素法」称する。図11は、本実施形態の高速平均画素法を用いた場合の処理時間と、その他の縮小手法を用いた場合の処理時間との比較図である。 Next, with reference to FIG. 11, the superiority in the case of using the image reduction processing (FIG. 5) of the present embodiment including the above-described high-speed average pixel processing (S502) will be demonstrated. In the following description, a reduction method using image reduction processing according to the present embodiment including high-speed average pixel processing (S502) is referred to as “high-speed average pixel method”. FIG. 11 is a comparison diagram between the processing time when the high-speed average pixel method of the present embodiment is used and the processing time when other reduction methods are used.
図11には、本実施形態の高速平均画素法などの各種縮小手法を用いて、800万画素(2448×3264)の元画像P(自然画)を、種々の画像サイズの出力画像Qに縮小する場合の処理時間の結果が列挙されている。 In FIG. 11, the original image P (natural image) of 8 million pixels (2448 × 3264) is reduced to an output image Q of various image sizes using various reduction methods such as the high-speed average pixel method of the present embodiment. The results of the processing time are listed.
なお、これらの縮小処理(本実施形態の画像縮小処理(図5)を含む)を行う際に用いたスペックは、CPU(本実施形態のCPU11に相当)として、Pentium4 3.4GH(なお、Pentiumは登録商標である)を使用し、メモリとして2GBのサイズのRAM(本実施形態のRAM13に相当)を使用した。
Note that the specifications used when performing these reduction processes (including the image reduction process (FIG. 5) of the present embodiment) are
また、図11に示すように、出力画素Qの画像サイズは、200万画素(1200×1600)、300万画素(1536×2048)、400万画素(1728×2304)、500万画素(1920×2560)、600万画素(2112×2816)、及び700万画素(2304×3072)とした。 Also, as shown in FIG. 11, the image size of the output pixel Q is 2 million pixels (1200 × 1600), 3 million pixels (1536 × 2048), 4 million pixels (1728 × 2304), 5 million pixels (1920 × 2560), 6 million pixels (2112 × 2816), and 7 million pixels (2304 × 3072).
図11に示すように、本実施形態の高速平均画素法(分割数nDev=128)を用いた場合には、200万画素、300万画素、400万画素、500万画素、600万画素、及び700万画素の出力画像Qを得るための処理時間は、それぞれ、1391ms、1719ms、1938ms、2156ms、2375ms、及び2672msであった。 As shown in FIG. 11, when the high-speed average pixel method (number of divisions nDev = 128) of the present embodiment is used, 2 million pixels, 3 million pixels, 4 million pixels, 5 million pixels, 6 million pixels, and Processing times for obtaining an output image Q of 7 million pixels were 1391 ms, 1719 ms, 1938 ms, 2156 ms, 2375 ms, and 2672 ms, respectively.
一方で、従来の平均画素法であって、最小公倍数を用いる手法(図11における「従来の平均画素法(最小公倍数)」)を用いた場合には、図11に示すように、200万画素の出力画像Qは処理時間1046msで得ることができたものの、300万画素〜700万画素の出力画像Qは処理が終わらない(処理不能)という結果が得られた。 On the other hand, when the conventional average pixel method using the least common multiple (“conventional average pixel method (lowest common multiple)” in FIG. 11) is used, as shown in FIG. The output image Q was obtained with a processing time of 1046 ms, but the output image Q with 3 to 7 million pixels did not finish (cannot be processed).
なお、従来の平均画素法(最小公倍数)における、200万画素の出力画像Qを得るための処理時間は、本実施形態の高速平均画素法による処理時間に比べて短くなっているが、これは、出力画像Qの画像サイズ(1224×1632)が元画像Pの画像サイズ(2448×3264)の丁度1/2であり、最小公倍数の値が元画像Pの画像サイズそのものとなるためである。 Note that the processing time for obtaining an output image Q of 2 million pixels in the conventional average pixel method (the least common multiple) is shorter than the processing time by the high-speed average pixel method of the present embodiment. This is because the image size (1224 × 1632) of the output image Q is exactly ½ of the image size (2448 × 3264) of the original image P, and the value of the least common multiple is the image size of the original image P itself.
このように、従来の平均画素法(最小公倍数)を用いたとしても、最小公倍数の値が比較的小さく決まる場合には、本実施形態の高速平均画素法よりも速く処理できることもある。しかし、多くの場合は、最小公倍数の値は相当に大きくなるので、処理不能に陥るか、処理不能に陥らなかったとしても処理速度は相当に遅い。 As described above, even if the conventional average pixel method (the least common multiple) is used, if the value of the least common multiple is determined to be relatively small, the processing may be faster than the high-speed average pixel method of the present embodiment. However, in many cases, since the value of the least common multiple becomes considerably large, the processing speed is considerably slow even if processing is impossible or processing is not possible.
従って、図11に示す結果は、本実施形態の高速平均画素法は、従来の平均画素法(最小公倍数)の問題点であった処理速度の遅さを解決し、高画質な縮小画像を高速で得ることができることを示している。 Therefore, the results shown in FIG. 11 show that the high-speed average pixel method of the present embodiment solves the slow processing speed that has been a problem of the conventional average pixel method (the least common multiple), and can reduce high-quality reduced images at high speed. It can be obtained with
さらに一方で、図13を参照しつつ説明した従来の平均画素法「従来の平均画素法(浮動小数)」)を用いた場合には、200万画素、300万画素、400万画素、500万画素、600万画素、及び700万画素の出力画像Qを得るための処理時間は、それぞれ、1422ms、1765ms、2031ms、2390ms、2641ms、及び2922msであった。 On the other hand, when the conventional average pixel method “conventional average pixel method (floating point number)” described with reference to FIG. 13 is used, 2 million pixels, 3 million pixels, 4 million pixels, 5 million pixels Processing times for obtaining an output image Q of pixels, 6 million pixels, and 7 million pixels were 1422 ms, 1765 ms, 2031 ms, 2390 ms, 2641 ms, and 2922 ms, respectively.
ここで、図11からも明らかなように、この従来の平均画素法(浮動小数)及び上記した本実施形態の高速平均画素法を用いた場合の処理時間(処理速度)は、ニアレストレイバー法やバイリニア法に比べて遅い。しかし、平均画素法によって得た出力画像Q(縮小画像)が、ニアレストレイバー法やバイリニア法では得ることのできない高画質な画像である点を考慮すれば、本実施形態の高速平均画素法や従来の平均画素法(浮動小数)による処理時間は、ニアレストレイバー法やバイリニア法による処理時間と遜色ない値であるといえる。 Here, as is apparent from FIG. 11, the processing time (processing speed) in the case of using the conventional average pixel method (floating point number) and the above-described high-speed average pixel method of this embodiment is the near-less tray method. Slower than bilinear method. However, considering that the output image Q (reduced image) obtained by the average pixel method is a high-quality image that cannot be obtained by the near-less tray method or the bilinear method, the high-speed average pixel method of the present embodiment or It can be said that the processing time by the conventional average pixel method (floating point number) is comparable to the processing time by the near-less tray method or the bilinear method.
図11に示すように、従来の平均画素法(浮動小数)による処理時間の値は、いずれの画像サイズの出力画像Qを得る場合に対しても、本実施形態の高速平均画素法による処理時間の値よりも大きかった。この結果は、本実施形態の高速平均画素法の使用によって「従来の平均画素法(浮動小数)」を用いた場合よりも処理速度が向上したことを示す。 As shown in FIG. 11, the value of the processing time according to the conventional average pixel method (floating point) is equal to the processing time according to the high-speed average pixel method of the present embodiment, regardless of the output image Q of any image size. It was bigger than the value of. This result shows that the processing speed is improved by using the high-speed average pixel method of this embodiment as compared with the case of using the “conventional average pixel method (floating point number)”.
このような処理速度の向上は、出力画像Qの画像サイズが大きいほどその向上度合いが大きく、200万画素及び300万画素の出力画像Qを得る場合には、2〜3%程度、処理速度が向上し、400万画素の出力画像を得る場合には、5%程度、処理速度が向上し、500万画素、600万画素、及び700万画素の出力画像Qを得る場合には、10%程度、処理速度が向上した。 Such an improvement in processing speed increases as the image size of the output image Q increases. When obtaining output images Q of 2 million pixels and 3 million pixels, the processing speed is about 2-3%. When the output image of 4 million pixels is obtained, the processing speed is improved by about 5%, and when the output image Q of 5 million pixels, 6 million pixels, and 7 million pixels is obtained, about 10%. , Processing speed improved.
従って、図11に示す結果は、本実施形態の高速平均画素法による縮小は、従来の平均画素法(浮動小数)による縮小に比べて、有意に速い処理速度で実行されることを示している。 Therefore, the results shown in FIG. 11 indicate that the reduction by the high-speed average pixel method of the present embodiment is executed at a significantly faster processing speed than the reduction by the conventional average pixel method (floating point number). .
また、分割数nDevの値を128から256に増加させて本実施形態の高速平均画素法を用いた場合についても処理時間の計測を行った。200万画素及び400万画素の出力画像Qを得る場合についてのみ計測を行ったが、得られた結果は分割数nDev=128の場合に比べ、1〜2%程度であるが減少した。 The processing time was also measured when the value of the division number nDev was increased from 128 to 256 and the fast average pixel method of this embodiment was used. The measurement was performed only when the output image Q of 2 million pixels and 4 million pixels was obtained, but the obtained result was about 1 to 2% compared to the case of the division number nDev = 128, but decreased.
上記したように、分割数nDevの値が大きいほど高画質な出力画像Qが得られるので、この結果は、本実施形態の高速平均画素法は、分割数nDevの値を128から256にすることによって、より高画質な出力画像Qをより速い処理速度で得られることを示している。 As described above, the larger the value of the division number nDev, the higher the quality of the output image Q can be obtained, and as a result, the high-speed average pixel method of this embodiment sets the value of the division number nDev from 128 to 256. This indicates that a higher-quality output image Q can be obtained at a higher processing speed.
なお、本実施形態では、CPUをPentium4 3.4GHとし、メモリを2GBのサイズのRAMとするマシンスペックで処理時間の計測を行ったが、RAMのメモリサイズが同じであっても、キャッシュサイズの異なるCPUを用いることによって処理時間(処理速度)が変わる。
In this embodiment, the processing time is measured with a machine specification in which the CPU is
以上、説明したように、本実施形態のプリンタ1は、画像縮小プログラム12aを実行することによって、元画像PをnDev個に分割することによって生じた分割ブロックを単位として、出力画像Q(縮小画像)の1画素における平均画素値を算出するので、整数演算によって平均画素値を得ることができる。即ち、縮小率に応じて生じる小数に対して行われる浮動小数演算を省くことができるので、平均画素法の処理速度が従来に比べて格段に向上し、速い速度で高画質な縮小画像を得ることができるのである。
As described above, the
また、本実施形態のプリンタ1で実行される画像縮小プログラム12aは、上記のように整数演算によって平均画素値を算出するので、組み込み系への実装に適している。
Further, the
また、本実施形態のプリンタ1は、画像縮小プログラム12aを実行することによって、元画像Pの画像サイズを、出力画像サイズとの最小公倍数のサイズに拡大することなく、出力画像Qを得ることができるので、平均画素法の処理速度が従来に比べて格段に向上し、速い速度で高画質な縮小画像を得ることができるのである。
In addition, the
さらに、本実施形態のプリンタ1で実行される画像縮小プログラム12aは、分割数nDevの値を、演算処理装置であるCPU11によって処理可能な範囲内の数値に決定するので、縮小時におけるCPU11のオーバーフローを確実に防止できる。
Furthermore, since the
また、本実施形態のプリンタ1で実行される画像縮小プログラム12aは、分割数nDevの値を、CPU11によって処理可能な範囲内の数値のうちの最大値に決定するので、元画像Pを分割数nDevに分割することによって生じた分割ブロックの大きさは、演算処理装置によって処理可能な範囲において最も細かい大きさとなる。即ち、かかる場合において、個々の分割ブロックの大きさの分解能が最も高くなるので、分割ブロック単位を利用することによって生じ得る誤差が確実に小さくなる。その結果、CPU11によって処理可能な範囲内において最高画質の縮小画像(出力画像)を得ることができるのである。
Further, the
なお、請求項1記載の縮小率取得ステップとしては、S701の処理が該当し、請求項1記載の分割数取得ステップとしては、S702の処理が該当し、請求項1記載の処理ブロック数演算ステップとしては、S801,S811の処理が該当し、請求項1記載の平均画素値演算ステップとしては、S708の処理が該当する。
Note that the processing of S701 corresponds to the reduction rate acquisition step according to
また、請求項4記載の主走査方向区分ステップとしては、S703における変数nResidue_x0の値の設定と、S1002における変数nResidue_x0の値の設定と、S812,S813,S1003の処理とが該当する。
Further, the main scanning direction division step according to
また、請求項5記載の主走査方向画素位置計算ステップとしては、S703における変数nPosRes_x0の値の設定と、S1002におけるnPosRes_x0の値の設定と、S1004の処理とが該当する。
Further, the main scanning direction pixel position calculation step described in
また、請求項6記載の副走査方向区分ステップとしては、S703における変数nResidue_y0の値の設定と、S802,S803,S1011の処理とが該当する。 Further, the sub-scanning direction division step described in claim 6 corresponds to the setting of the value of the variable nResidue_y0 in S703 and the processing of S802, S803, and S1011.
また、請求項7記載の副走査方向画素位置計算ステップとしては、S703における変数nPosRes_y0の値の設定とS1012の処理とが該当する。 Further, the sub-scanning direction pixel position calculating step according to claim 7 corresponds to the setting of the value of the variable nPosRes_y0 in S703 and the processing in S1012.
また、請求項8記載の入力画像サイズ取得ステップとしては、S701において元画像メモリ13aに記憶されている元画像Pの画像サイズ(ix,iy)の値を取得することが該当し、請求項8記載の出力画像サイズ入力ステップとしては、出力画像サイズ(ox,oy)が、ユーザによる操作パネル16の操作によって入力された場合に、その値を読み、出力サイズメモリ13cに出力(記憶)することが該当する。
The input image size acquisition step according to claim 8 corresponds to acquiring the value of the image size (ix, iy) of the original image P stored in the
また、請求項10記載の縮小手段としては、画像縮小処理(図6)が該当し、請求項10記載の縮小率取得手段としては、S701の処理が該当し、請求項10記載の分割数取得手段としては、S702の処理が該当し、請求項10記載の処理ブロック数演算手段としては、S801,S811の処理が該当し、請求項10記載の平均画素値演算手段としては、S708の処理が該当する。 The reduction means according to claim 10 corresponds to image reduction processing (FIG. 6), and the reduction rate acquisition means according to claim 10 corresponds to the processing of S701, and the division number acquisition according to claim 10 is performed. As the means, the process of S702 corresponds, the processing block number calculation means according to claim 10 corresponds to the processes of S801 and S811, and the average pixel value calculation means of claim 10 corresponds to the process of S708. Applicable.
また、請求項13記載の主走査方向区分手段としては、S703における変数nResidue_x0の値の設定と、S1002における変数nResidue_x0の値の設定と、S812,S813,S1003の処理とが該当する。
The main scanning direction classifying means according to
また、請求項14記載の副走査方向区分手段としては、S703における変数nResidue_y0の値の設定と、S802,S803,S1011の処理とが該当する。 Further, the sub-scanning direction sorting means described in claim 14 corresponds to the setting of the value of the variable nResidue_y0 in S703 and the processing in S802, S803, and S1011.
また、請求項15記載の入力画像サイズ取得手段としては、S701において元画像メモリ13aに記憶されている元画像Pの画像サイズ(ix,iy)の値を取得することが該当し、請求項15記載の出力画像サイズ入力手段としては、出力画像サイズ(ox,oy)が、ユーザによる操作パネル16の操作によって入力された場合に、その値を読み、出力サイズメモリ13cに出力(記憶)することが該当する。
The input image size acquisition means described in
以上、実施例に基づき本発明を説明したが、本発明は上述した実施例に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。 The present invention has been described above based on the embodiments. However, the present invention is not limited to the above-described embodiments, and various modifications and changes can be easily made without departing from the spirit of the present invention. Can be inferred.
例えば、上記実施形態では、画像縮小プログラム12aをプリンタ1に搭載し、プリンタ1に入力された元画像Pを縮小して出力画像Qを得る構成としたが、画像縮小プログラム12aをPC2に搭載し、PC2のCPUで画像縮小プログラム12aを実行させて、元画像Pの縮小画像である出力画像Qを得る構成であってもよい。
For example, in the above embodiment, the
また、上記実施形態では、画像縮小プログラム12aを用いてソフト的に縮小を実行する構成としたが、画像縮小プログラム12aによって行われる各処理をプリンタ1又はPC2のハード構成によって演算させるように構成してもよい。
In the above embodiment, the
また、上記実施形態では、元画像Pのサイズとユーザによって入力された出力画像サイズとから縮小率を得る構成としたが、ユーザによって入力される値を出力画像サイズではなく縮小率とする構成であってもよい。 In the above embodiment, the reduction ratio is obtained from the size of the original image P and the output image size input by the user. However, the value input by the user is not the output image size but the reduction ratio. There may be.
また、上記実施形態では、ユーザによって入力された出力画像サイズから縮小率を得る構成としたが、プリンタ1によって自動的に設定される値であってもよい。例えば、プリンタ1に装填された印刷媒体の大きさに応じて適宜縮小率が設定される構成であってもよい。
In the above embodiment, the reduction ratio is obtained from the output image size input by the user. However, a value automatically set by the
また、上記実施形態では、出力画像Qの1画素における主走査方向及び副走査方向の分割ブロックの各終点を、ガウス記号によって小数点以下を切り捨てることによって求めるように構成したが、切り上げによって求める構成であってもよい。 In the above-described embodiment, the end points of the divided blocks in the main scanning direction and the sub-scanning direction in one pixel of the output image Q are obtained by rounding down the decimal part with a Gaussian symbol. There may be.
1 プリンタ(画像処理装置)
11 CPU(演算装置)
12a 画像縮小プログラム(画像処理プログラム)
102 縮小率算出部(縮小率取得ステップ、縮小率取得手段)
103 処理ブロック算出手段(処理ブロック数演算ステップ、処理ブロック数演算手段)
104 平均画素値算出手段(平均画素値演算ステップ、主走査方向区分ステップ、副走査方向区分ステップ、平均画素値演算手段、主走査方向区分手段、副走査方向区分手段)
105 分割数決定手段(分割数決定ステップ、分割数決定手段)
105a 最大ブロック数算出部(分割数決定ステップ、分割数決定手段)
105b 分割数計算部(分割数決定ステップ、分割数決定手段)
1 Printer (image processing device)
11 CPU (arithmetic unit)
12a Image reduction program (image processing program)
102 Reduction rate calculation unit (reduction rate acquisition step, reduction rate acquisition means)
103 processing block calculating means (processing block number calculating step, processing block number calculating means)
104 Average pixel value calculating means (average pixel value calculating step, main scanning direction dividing step, sub-scanning direction dividing step, average pixel value calculating means, main scanning direction dividing means, sub-scanning direction dividing means)
105 Division number determination means (division number determination step, division number determination means)
105a Maximum block number calculation unit (division number determination step, division number determination means)
105b Division number calculation unit (division number determination step, division number determination means)
Claims (16)
前記縮小率を取得する縮小率取得ステップと、
前記元画像を構成する各画素を(nDev×nDev)(nDevは2以上の整数)個の分割ブロックに分割するための分割数nDevを取得する分割数取得ステップと、
前記出力画像の各画素毎に、該出力画像の1画素に対応する整数個の前記分割ブロックの数を、前記縮小率取得ステップにより取得された縮小率に基づいて計算する処理ブロック数演算ステップと、
前記出力画像の各画素毎に、前記処理ブロック数演算ステップにより求められた数の分割ブロックに対応する前記元画像の領域の平均画素値を計算する平均画素値演算ステップとを備えていることを特徴とする画像処理プログラム。 In an image processing program executed by an arithmetic unit to reduce a substantially rectangular original image having a number of pixels (ix × iy) at a predetermined reduction ratio and obtain an output image having a substantially rectangular shape having a number of pixels (ox × oy). ,
A reduction rate acquisition step of acquiring the reduction rate;
A division number acquisition step of acquiring a division number nDev for dividing each pixel constituting the original image into (nDev × nDev) (nDev is an integer of 2 or more) divided blocks;
A processing block number calculating step for calculating, for each pixel of the output image, an integer number of the divided blocks corresponding to one pixel of the output image based on the reduction rate acquired by the reduction rate acquisition step; ,
An average pixel value calculating step for calculating an average pixel value of the area of the original image corresponding to the number of divided blocks obtained by the processing block number calculating step for each pixel of the output image. A characteristic image processing program.
前記平均画素値演算ステップは、前記主走査方向区分ステップにより区分された各領域毎に、画素値の総和を求め、その画素値の総和を、前記処理ブロック数演算ステップにより求められた出力画像の1画素に対応する前記分割ブロックの数で割ることによって求めることを特徴とする請求項1から3のいずれかに記載の画像処理プログラム。 Before executing the average pixel value calculating step, for each pixel of the output image, the main scanning direction is defined as (1a) x1 corresponding to the unprocessed portion in the pixel that leaves the unprocessed portion in the original image ( x1 is an area composed of the divided blocks of 0 or more and less than nDev), and (1b) N pixels (N is an integer of 1 or more) adjacent to the area (1a) in the original image ) A region arranged side by side, and (1c) in the original image, a region that is adjacent to the region (1b) and includes a remaining portion of x2 (x2 is an integer of 0 or more and less than nDev) that is less than one pixel. A main scanning direction dividing step for dividing,
The average pixel value calculating step calculates a sum of pixel values for each area divided by the main scanning direction dividing step, and calculates the sum of the pixel values of the output image obtained by the processing block number calculating step. 4. The image processing program according to claim 1, wherein the image processing program is obtained by dividing by the number of the divided blocks corresponding to one pixel.
前記平均画素値演算ステップは、前記副走査方向区分ステップにより区分された各領域毎、又は、前記副走査方向区分ステップと前記主走査方向区分ステップとによる区分の結果として生じる各領域毎に、画素値の総和を求め、その画素値の総和を、前記処理ブロック数演算ステップにより求められた出力画像の1画素に対応する前記分割ブロックの数で割ることによって求めることを特徴とする請求項1から5のいずれかに記載の画像処理プログラム。 Before the execution of the average pixel value calculating step, for each pixel of the output image, the sub-scanning direction is expressed as (2a) y1 (corresponding to the unprocessed portion in the pixel that leaves the unprocessed portion in the original image) y1 is an area composed of the divided blocks of 0 or more and less than nDev), and (2b) M pixels (M is an integer of 1 or more) adjacent to the area (2a) in the original image. ) A region arranged side by side, and (2c) in the original image, a region that is adjacent to the region (2b) and is composed of y2 remaining portions (y2 is an integer not less than 0 and less than nDev) that is less than one pixel. A sub-scanning direction dividing step for dividing,
The average pixel value calculating step is performed for each region divided by the sub-scanning direction dividing step or for each region generated as a result of the division by the sub-scanning direction dividing step and the main scanning direction dividing step. The sum of the values is obtained, and the sum of the pixel values is obtained by dividing by the number of the divided blocks corresponding to one pixel of the output image obtained by the processing block number calculation step. 6. The image processing program according to any one of 5.
前記出力画像の画素数(ox×oy)の値を入力する出力画像サイズ入力ステップとを備え、
前記縮小率取得ステップは、前記入力画像サイズ取得ステップにより取得された前記入力画像の画素数(ix×iy)の値と、出力画像サイズ入力ステップにより入力された前記出力画像の画素数(ox×oy)の値とから、縮小率を取得することを特徴とする請求項1から7のいずれかに記載の画像処理プログラム。 An input image size acquisition step of acquiring a value of the number of pixels of the input pixels (ix × iy);
An output image size input step of inputting a value of the number of pixels of the output image (ox × oy),
The reduction ratio acquisition step includes the value of the number of pixels of the input image (ix × ii) acquired by the input image size acquisition step and the number of pixels of the output image input by the output image size input step (ox × The image processing program according to any one of claims 1 to 7, wherein a reduction ratio is acquired from a value of (oy).
前記縮小率取得ステップは、前記縮小率入力ステップにより入力された縮小率を取得することを特徴とする請求項1から8のいずれかに記載の画像処理プログラム。 A reduction rate input step of inputting a reduction rate for obtaining the output image having the number of pixels (ox × oy) from the number of pixels of the input pixels (ix × ii);
9. The image processing program according to claim 1, wherein the reduction rate acquisition step acquires the reduction rate input in the reduction rate input step.
前記縮小手段は、
前記縮小率を取得する縮小率取得手段と、
前記元画像を構成する各画素を(nDev×nDev)(nDevは2以上の整数)個の分割ブロックに分割するための分割数nDevを取得する分割数取得手段と、
前記出力画像の各画素毎に、該出力画像の1画素に対応する整数個の前記分割ブロックの数を、前記縮小率取得手段より取得された縮小率に基づいて計算する処理ブロック数演算手段と、
前記出力画像の各画素毎に、前記処理ブロック数演算手段より求められた数の分割ブロックに対応する前記元画像の領域の平均画素値を計算する平均画素値演算手段とを含むことを特徴とする画像処理装置。 An input means for inputting a substantially rectangular original image having the number of pixels (ix × iy), and a substantially rectangular shape having the number of pixels (ox × oy) by reducing the original image input from the input means at a predetermined reduction ratio. In an image processing apparatus provided with a reduction means for obtaining an output image of
The reduction means includes
Reduction rate acquisition means for acquiring the reduction rate;
Division number acquisition means for acquiring a division number nDev for dividing each pixel constituting the original image into (nDev × nDev) (nDev is an integer of 2 or more) divided blocks;
Processing block number calculating means for calculating, for each pixel of the output image, an integer number of the divided blocks corresponding to one pixel of the output image based on the reduction rate acquired by the reduction rate acquisition means; ,
Average pixel value calculating means for calculating an average pixel value of the area of the original image corresponding to the number of divided blocks obtained by the processing block number calculating means for each pixel of the output image. An image processing apparatus.
前記平均画素値演算手段は、前記主走査方向区分手段により区分された各領域毎に、画素値の総和を求め、その画素値の総和を、前記処理ブロック数演算手段により求められた出力画像の1画素に対応する前記分割ブロックの数で割ることによって求めることを特徴とする請求項10から12のいずれかに記載の画像処理装置。 Before the average pixel value calculation means, for each pixel of the output image, the main scanning direction is (1a) x1 (x1) corresponding to the unprocessed portion in the pixel that leaves the unprocessed portion in the original image. Is an area composed of the divided blocks of 0 or more and less than nDev), and (1b) N complete pixels adjacent to the area (1a) in the original image (N is an integer of 1 or more) A region that is arranged side by side and (1c) in the original image, is divided into a region that is adjacent to the region (1b) and that includes x2 remaining portions that are less than one pixel (x2 is an integer that is greater than or equal to 0 and less than nDev). Main scanning direction sectioning means
The average pixel value calculation means obtains a sum of pixel values for each area divided by the main scanning direction division means, and the sum of the pixel values is calculated for the output image obtained by the processing block number calculation means. The image processing apparatus according to claim 10, wherein the image processing apparatus is obtained by dividing by the number of the divided blocks corresponding to one pixel.
前記平均画素値演算手段は、前記副走査方向区分手段により区分された各領域毎、又は、前記副走査方向区分手段と前記主走査方向区分手段とによる区分の結果として生じる各領域毎に、画素値の総和を求め、その画素値の総和を、前記処理ブロック数演算手段により求められた出力画像の1画素に対応する前記分割ブロックの数で割ることによって求めることを特徴とする請求項10から13のいずれかに記載の画像処理装置。 Before the average pixel value calculation means, for each pixel of the output image, (2a) y1 (y1) corresponding to the unprocessed portion in the pixel that leaves the unprocessed portion in the original image Is an area composed of the divided blocks of 0 or more and less than nDev), and (2b) N complete pixels adjacent to the area (2a) in the original image (N is an integer of 1 or more) A region arranged side by side and (2c) in the original image, a region adjacent to the region (2b) and composed of y2 remaining portions that are less than one pixel (y2 is an integer not less than 0 and less than nDev). Sub-scanning direction dividing means for
The average pixel value calculation means includes a pixel for each area divided by the sub-scanning direction dividing means or for each area generated as a result of the division by the sub-scanning direction dividing means and the main scanning direction dividing means. The total sum of the values is obtained, and the sum of the pixel values is obtained by dividing by the number of the divided blocks corresponding to one pixel of the output image obtained by the processing block number calculating means. The image processing apparatus according to any one of claims 13 to 13.
前記出力画像の画素数(ox×oy)の値を入力する出力画像サイズ入力手段とを備え、
前記縮小率取得手段は、前記入力画像サイズ取得手段により取得された前記入力画像の画素数(ix×iy)の値と、出力画像サイズ入力手段により入力された前記出力画像の画素数(ox×oy)の値とから、縮小率を取得することを特徴とする請求項10から14のいずれかに記載の画像処理装置。 Input image size acquisition means for acquiring the value of the number of input pixels (ix × ii) input from the input means;
Output image size input means for inputting a value of the number of pixels of the output image (ox × oy),
The reduction ratio acquisition unit includes a value of the number of pixels of the input image (ix × ii) acquired by the input image size acquisition unit and a number of pixels of the output image input by the output image size input unit (ox × The image processing apparatus according to claim 10, wherein a reduction ratio is acquired from a value of (oy).
前記縮小率取得手段は、前記縮小率入力手段により入力された縮小率を取得することを特徴とする請求項10から15のいずれかに記載の画像処理装置。
Reduction rate input means for inputting a reduction rate for obtaining the output image having the number of pixels (ox × oy) from the number of pixels of the input pixels (ix × ii);
The image processing apparatus according to claim 10, wherein the reduction rate acquisition unit acquires the reduction rate input by the reduction rate input unit.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005347377A JP4887761B2 (en) | 2005-11-30 | 2005-11-30 | Image processing program and image processing apparatus |
US11/605,956 US7706619B2 (en) | 2005-11-30 | 2006-11-30 | Image processing device that produces high-quality reduced image at fast processing speed |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005347377A JP4887761B2 (en) | 2005-11-30 | 2005-11-30 | Image processing program and image processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007156585A true JP2007156585A (en) | 2007-06-21 |
JP4887761B2 JP4887761B2 (en) | 2012-02-29 |
Family
ID=38240904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005347377A Expired - Fee Related JP4887761B2 (en) | 2005-11-30 | 2005-11-30 | Image processing program and image processing apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4887761B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009065639A (en) * | 2007-06-27 | 2009-03-26 | Christie Digital Systems Usa Inc | Method and apparatus for scaling image to produce scaled image |
US8547591B2 (en) | 2009-11-30 | 2013-10-01 | Brother Kogyo Kabushiki Kaisha | Image processing apparatus and program for generating size-reduced image data with reduction ratio of chroma component greater than luminance component |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000151994A (en) * | 1998-11-17 | 2000-05-30 | Murata Mach Ltd | Image processing unit |
JP2000278520A (en) * | 1999-03-25 | 2000-10-06 | Nec Corp | Device and method for image reduction restoration and recording medium recording program for image reduction restoration |
-
2005
- 2005-11-30 JP JP2005347377A patent/JP4887761B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000151994A (en) * | 1998-11-17 | 2000-05-30 | Murata Mach Ltd | Image processing unit |
JP2000278520A (en) * | 1999-03-25 | 2000-10-06 | Nec Corp | Device and method for image reduction restoration and recording medium recording program for image reduction restoration |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009065639A (en) * | 2007-06-27 | 2009-03-26 | Christie Digital Systems Usa Inc | Method and apparatus for scaling image to produce scaled image |
US8379066B2 (en) | 2007-06-27 | 2013-02-19 | Christie Digital Systems Usa, Inc. | Method and apparatus for scaling an image to produce a scaled image |
JP2014057314A (en) * | 2007-06-27 | 2014-03-27 | Christie Digital Systems Usa Inc | Method and apparatus for scaling image to produce scaled image |
US8547591B2 (en) | 2009-11-30 | 2013-10-01 | Brother Kogyo Kabushiki Kaisha | Image processing apparatus and program for generating size-reduced image data with reduction ratio of chroma component greater than luminance component |
Also Published As
Publication number | Publication date |
---|---|
JP4887761B2 (en) | 2012-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4510069B2 (en) | Image processing apparatus, image display apparatus, image forming apparatus, image processing method, computer program, and storage medium | |
JP4725336B2 (en) | Image processing apparatus and image processing program | |
JP5643574B2 (en) | Image processing apparatus and image processing method | |
US9824431B2 (en) | Image synthesis apparatus, image synthesis method, and recording medium | |
KR102246058B1 (en) | Image processing apparatus and method for controlling the same | |
JP2010251927A (en) | Image processing apparatus, control method, and program | |
JP2008059287A (en) | Image processor and image processing program | |
US7706619B2 (en) | Image processing device that produces high-quality reduced image at fast processing speed | |
JP4887761B2 (en) | Image processing program and image processing apparatus | |
JP5335581B2 (en) | Image processing apparatus, image processing method, and program | |
JP5120366B2 (en) | Image processing apparatus and image processing program | |
JP2010130510A (en) | Printing device and program | |
JP6120824B2 (en) | Image processing apparatus, image processing method, and program | |
JP2008042345A (en) | Image processing method and image processor | |
JP2007156586A (en) | Image processing program and image processor | |
JP2009296590A (en) | Image processing device and image processing method | |
JP2009124576A (en) | Image processing apparatus and control method thereof | |
JP4353234B2 (en) | Image processing program and image processing apparatus | |
JP2007152580A (en) | Image forming apparatus and method | |
JP2004215163A (en) | Image interpolation system, image interpolation method, and image interpolation program | |
JPH0652304A (en) | Device and method for processing image | |
JP5549434B2 (en) | Image processing apparatus and image processing method | |
JP6700953B2 (en) | Information processing apparatus, information processing method, and program | |
JP2013008247A (en) | Image processing apparatus, image processing method, and program | |
JP2005109781A (en) | Image processing method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081128 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20091105 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110329 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110527 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110816 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111014 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111115 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111128 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4887761 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141222 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |