JP4609141B2 - Image processing apparatus, image processing method, and image processing program - Google Patents

Image processing apparatus, image processing method, and image processing program Download PDF

Info

Publication number
JP4609141B2
JP4609141B2 JP2005088454A JP2005088454A JP4609141B2 JP 4609141 B2 JP4609141 B2 JP 4609141B2 JP 2005088454 A JP2005088454 A JP 2005088454A JP 2005088454 A JP2005088454 A JP 2005088454A JP 4609141 B2 JP4609141 B2 JP 4609141B2
Authority
JP
Japan
Prior art keywords
reduction
image
information
edge
edge information
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.)
Expired - Fee Related
Application number
JP2005088454A
Other languages
Japanese (ja)
Other versions
JP2006270767A (en
Inventor
洋三 鹿島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2005088454A priority Critical patent/JP4609141B2/en
Publication of JP2006270767A publication Critical patent/JP2006270767A/en
Application granted granted Critical
Publication of JP4609141B2 publication Critical patent/JP4609141B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は画像処理装置、画像処理方法及び画像処理プログラムに関し、アプリケーションが作成した文書データや印刷データなどを所定の中間画像情報に変換し、該中間画像情報をもとに出力対象などとなる画像データを生成する画像処理装置、画像処理方法及び画像処理プログラムに関する。   The present invention relates to an image processing apparatus, an image processing method, and an image processing program, and converts document data or print data created by an application into predetermined intermediate image information, and an image to be output based on the intermediate image information The present invention relates to an image processing apparatus, an image processing method, and an image processing program that generate data.

近年、ドキュメントはワードプロセッサなどのコンピュータ用の文書作成アプリケーションソフトウェアを用いて作成され、電子メールで配信されたり、サーバコンピュータなどに保存されたりして必要に応じて配布されるようになった。一般に文書作成ソフトウェアは独自の形式で文書データを生成しているため、このような文書データを受け取った場合、文書作成者が使用した文書作成アプリケーションソフトウェアと同等のソフトウェアを利用して、配布された文書データを閲覧・表示している。   In recent years, documents have been created using document creation application software for computers such as word processors, and are distributed by e-mail or stored on a server computer or the like as needed. In general, document creation software generates document data in its own format. When such document data is received, it is distributed using software equivalent to the document creation application software used by the document creator. Viewing / displaying document data.

一方、ドキュメントを表示閲覧・編集可能な環境は多様化する傾向にあり、オペレーティングシステムの種類やバージョンの差異に加え、PDA(パーソナル・データ・アシスタンス)などの携帯型情報端末でも文書データの閲覧要望が高まっている。このような多様なコンピュータ環境を考えた場合、もはやドキュメントの配信先に文書データ作成時に使用した環境があるとは限らない状況になっている。そこで、あらゆるドキュメントを配信先で特定のソフトウェアが無くても当該文書データを扱うことを可能とするために、文書データを画像データで表現して配信する方式が提案されている。但し、画像データは概してデータサイズが大きくなるため、JPEGなどの画像圧縮処理を行うことが普通である。   On the other hand, the environment in which documents can be viewed, viewed and edited tends to diversify. In addition to differences in operating system types and versions, there is a demand for viewing document data on portable information terminals such as PDAs (personal data assistance). Is growing. Considering such various computer environments, there is no longer a situation in which the document delivery destination has an environment used when creating document data. Therefore, in order to be able to handle the document data even if there is no specific software at the distribution destination, a method for distributing the document data by expressing it as image data has been proposed. However, since image data generally has a large data size, it is common to perform image compression processing such as JPEG.

この点、下記特許文献1に開示された技術では、文書作成アプリケーションソフトウェアなどで作成された文書データから、多値画像データと、当該多値画像データの各々の画素が文字であるか否かを示す1ビットの像域フラグ画像との2つを生成し、次に当該像域フラグ画像を基に多値画像データに含まれている文字領域の位置や大きさ、文字色を判別し、文字領域とそれ以外の領域で別々の圧縮を行うことで、効率的に文書データを圧縮することが提案されている。つまり、この技術では、文字や写真/グラフィックが混在した画像データを、文字画像とそれ以外の画像に分離し、文字画像については文字の形状を二値画像として表現することでMMRなどの二値画像圧縮方式で圧縮するようにし、文字画像以外の画像はJPEGなどのような多値画像圧縮方式で圧縮するようにしている。このようにすることにより、JPEG圧縮する部分については、文字部分のエッジなどに含まれる高周波成分を圧縮した際に発生するモスキートノイズと呼ばれる画質劣化の発生を抑えることができ、文書データの高画質且つ高圧縮の画像データ表現が可能となる。
特開2003−244447号公報
In this regard, in the technology disclosed in Patent Document 1 below, multi-value image data and whether or not each pixel of the multi-value image data is a character from document data created by document creation application software or the like. The image area flag image shown in FIG. 1 is generated, and the position, size, and character color of the character area included in the multi-valued image data are discriminated based on the image area flag image. It has been proposed to efficiently compress document data by performing separate compression in areas and other areas. In other words, in this technique, image data in which characters and photographs / graphics are mixed is separated into a character image and other images, and the character image is represented by a binary image such as MMR by expressing the shape of the character as a binary image. Compression is performed using an image compression method, and images other than character images are compressed using a multi-value image compression method such as JPEG. In this way, with respect to the portion to be compressed with JPEG, it is possible to suppress the occurrence of image quality deterioration called mosquito noise that occurs when high-frequency components included in the edge of the character portion are compressed, and the high quality of document data. In addition, highly compressed image data can be expressed.
JP 2003-244447 A

しかしながら、上記従来技術では、文書データを展開することによって多値画像を生成し、さらにこの多値画像から二値画像を作成しなければならず、処理時間がかかるという問題がある。   However, the above-described conventional technique has a problem that it takes a processing time because a multi-value image must be generated by developing document data and a binary image must be created from the multi-value image.

そこで、本願出願人は次の画像処理装置を検討している。図1は、この画像処理装置の概略の構成を示す図である。画像処理装置10は、文書データ11、もしくは文書データをプリンタ等の画像形成装置で出力する際に生成される印刷データ12を入力とする。文書データ11は、ワードプロセッサ等のアプリケーションプログラム固有に定義されるデータであり、印刷データ12は、当該文書データを画像形成装置で出力する途中に発生するデータであって、例えば、プリンタ等の印刷装置においては、一般にPDL(ページ記述言語)などと呼ばれているデータに相当する。画像処理装置10は、これらのデータを入力として、レイヤ別画像データ16を最終的に出力する。   Therefore, the applicant of the present application is examining the following image processing apparatus. FIG. 1 is a diagram showing a schematic configuration of the image processing apparatus. The image processing apparatus 10 receives document data 11 or print data 12 generated when the document data is output by an image forming apparatus such as a printer. The document data 11 is data defined uniquely for an application program such as a word processor, and the print data 12 is data generated during output of the document data by the image forming apparatus. For example, the print data 12 is a printing apparatus such as a printer. Corresponds to data generally called PDL (page description language). The image processing apparatus 10 finally outputs the layer-specific image data 16 using these data as inputs.

図2はレイヤ別画像データ16の一例を示す図である。例えば、図2(A)は文書データの構成例を示しており、ここでは黒色で描かれたテキストとグラフィックス、赤色で描かれたテキストとグラフィックス、および写真などの画像データを取り込んで作成されたイメージ、から構成されている。図2(B)はイメージを含む部分を一つのレイヤに集めた様子を示すもので、このレイヤは多値画像データを圧縮する方式、例えばJPEG圧縮することができる。図2(C)はテキストやグラフィックスを含む部分を一つのレイヤに集めた様子を示しており、同じ色の領域毎にMMR圧縮と位置・サイズ、色情報の組み合わせとして表現することができる。ここで、MMR圧縮される領域に含まれる画像データは、テキストやグラフィックスの存在する部分が「黒」画素に相当している。そこで、「白」画素部分は復号時に透明な領域であるものとして扱うように定義しておくと、図2(C)に示すMMR圧縮データを展開してから、該データにより指定された色情報を、図2(B)に示すJPEG圧縮データを展開した上に着色することで、元の画像図2(A)を再現することができる。本画像処理装置では、図2(B)を下地として扱い、図2(C)をその上に上書きしていく関係から、図2(B)を背景(以下BG)レイヤ、図2(C)を前景(以下FG)レイヤと呼ぶ。   FIG. 2 is a diagram illustrating an example of the layer-specific image data 16. For example, FIG. 2A shows an example of the structure of document data. In this example, text and graphics drawn in black, text and graphics drawn in red, and image data such as photographs are taken in and created. Image made up of. FIG. 2B shows a state in which portions including images are collected in one layer, and this layer can compress multi-value image data, for example, JPEG compression. FIG. 2C shows a state in which parts including text and graphics are collected in one layer, and each region of the same color can be expressed as a combination of MMR compression, position / size, and color information. Here, in the image data included in the region subjected to MMR compression, a portion where text or graphics exists corresponds to a “black” pixel. Therefore, if it is defined so that the “white” pixel portion is treated as a transparent region at the time of decoding, the color information specified by the data is expanded after the MMR compressed data shown in FIG. The original image shown in FIG. 2A can be reproduced by coloring the image after expanding the JPEG compressed data shown in FIG. In the present image processing apparatus, FIG. 2B is treated as a background, and FIG. 2C is overwritten thereon. Therefore, FIG. 2B is used as a background (hereinafter referred to as BG) layer, and FIG. Is referred to as a foreground (hereinafter referred to as FG) layer.

本画像処理装置では、画像情報14は、エッジ配列データ、タグデータ、外接矩形データからなっている。エッジ配列は、ラスタデータを表現するものである。タグデータは、「テキスト」、「写真」などの文書構成要素の属性を示すものである。外接矩形データは、タグ種別毎に生成されるデータであり、タグで示される描画オブジェクトが存在する領域の外接矩形を示す。この外接矩形の外には、当該描画オブジェクトが存在しないことが保障される。画像情報14は、レイヤ別画像処理部15によりレイヤ別画像データ16に変換される。このように本画像処理装置は、タグデータと呼ばれる文書構成要素の属性をもとにレイヤを分離し、画像情報14から直接レイヤ別画像データ16を作成することを特徴としている。   In this image processing apparatus, the image information 14 includes edge array data, tag data, and circumscribed rectangle data. The edge array represents raster data. The tag data indicates attributes of document components such as “text” and “photo”. The circumscribed rectangle data is data generated for each tag type, and indicates the circumscribed rectangle of the area where the drawing object indicated by the tag exists. It is guaranteed that the drawing object does not exist outside the circumscribed rectangle. The image information 14 is converted into layer-by-layer image data 16 by the layer-by-layer image processing unit 15. As described above, the image processing apparatus is characterized in that the layers are separated based on the attribute of the document constituent element called tag data, and the layer-by-layer image data 16 is created directly from the image information 14.

ところで、FGレイヤとBGレイヤを分けて別々の圧縮を施す場合、BGレイヤの解像度をFGレイヤの解像度よりも低くする場合が多い。これは、文字はFGレイヤで高解像度のまま保つことにより、文書の可読性を維持したまま、画像データのサイズを小さくするのに有効であるためである。上記特開2003−244447号公報では、BGレイヤの多値画像を縮小する画像処理装置も提案されている。一般に多値画像は、サイズが大きいため、縮小するのに時間がかかる。例えば、A4サイズの300DPIの画像を非圧縮、RGB24ビット形式で保存すると、約24メガバイトのサイズになる。また、画像データを縮小する際には、単純間引きによる縮小ではなく、何らかの補間処理を伴った縮小方法が望ましい。補間縮小は、高画質な縮小画像が得られるが、補間処理のため24メガバイトの画像データ全てに対する読み込みと、画素値の演算処理を行う必要があり、処理に時間がかかるという問題がある。   By the way, when the FG layer and the BG layer are divided and subjected to separate compression, the resolution of the BG layer is often lower than the resolution of the FG layer. This is because the character is effective in reducing the size of the image data while maintaining the readability of the document by maintaining the high resolution in the FG layer. Japanese Patent Application Laid-Open No. 2003-244447 also proposes an image processing apparatus that reduces a multi-valued image of a BG layer. In general, since a multi-valued image is large in size, it takes time to reduce it. For example, if an A4 size 300 DPI image is stored in an uncompressed RGB 24-bit format, the size is about 24 megabytes. Further, when reducing the image data, it is desirable to use a reduction method that involves some kind of interpolation processing rather than reduction by simple thinning. Interpolation reduction can obtain a high-quality reduced image, but it requires interpolation to process all of the 24 megabytes of image data and perform pixel value calculation processing, which takes time.

本発明は上記課題に鑑みてなされたものであって、その目的は、文書データや該文書データに基づいて生成される印刷データに基づいて、高品質な縮小画像の画像データを高速に生成することができる画像処理装置、画像処理方法及び画像処理プログラムを提供することにある。   The present invention has been made in view of the above problems, and an object thereof is to generate image data of a high-quality reduced image at high speed based on document data and print data generated based on the document data. An image processing apparatus, an image processing method, and an image processing program are provided.

上記課題を解決するために、本発明に係る画像処理装置は、文書データ又は該文書データに基づいて生成される印刷データに基づき、中間画像情報を生成する中間画像情報生成手段と、該中間画像情報に対して縮小処理を施す縮小手段と、前記縮小手段により前記縮小処理が施された前記中間画像情報に基づき、前記文書データ又は前記印刷データよりも小さな画像サイズの画像データを生成する画像データ生成手段と、を具備することを特徴とする。   In order to solve the above problems, an image processing apparatus according to the present invention includes an intermediate image information generation unit that generates intermediate image information based on document data or print data generated based on the document data, and the intermediate image Reduction means for performing reduction processing on information, and image data for generating image data having an image size smaller than that of the document data or the print data based on the intermediate image information subjected to the reduction processing by the reduction means And generating means.

また、本発明に係る画像処理装置は、文書データ又は該文書データに基づいて生成される印刷データに基づき、中間画像情報を生成する中間画像情報生成ステップと、該中間画像情報に対して縮小処理を施す縮小ステップと、前記縮小ステップで縮小された前記中間画像情報に基づき、前記文書データ又は前記印刷データよりも小さな画像サイズの画像データを生成する画像データ生成ステップと、を具備することを特徴とする。   An image processing apparatus according to the present invention includes an intermediate image information generation step for generating intermediate image information based on document data or print data generated based on the document data, and a reduction process on the intermediate image information. A reduction step of applying image data, and an image data generation step of generating image data having an image size smaller than that of the document data or the print data based on the intermediate image information reduced in the reduction step. And

さらに、本発明に係る画像処理装置は、文書データ又は該文書データに基づいて生成される印刷データに基づき、中間画像情報を生成する中間画像情報生成手段、該中間画像情報に対して縮小処理を施す縮小手段、及び前記縮小手段により縮小された前記中間画像情報に基づき、前記文書データ又は前記印刷データよりも小さな画像サイズの画像データを生成する画像データ生成手段としてコンピュータを機能させるための画像処理プログラムである。コンピュータは、パーソナルコンピュータ、サーバコンピュータ等の各種の汎用コンピュータのみならず、複写機や複合機等の機器に組み込まれたコンピュータも含む(以下同様)。また、プログラムは、各種のコンピュータ読み取り可能な情報記憶媒体に格納されてもよい(以下同様)。   The image processing apparatus according to the present invention further includes an intermediate image information generation unit that generates intermediate image information based on document data or print data generated based on the document data, and performs a reduction process on the intermediate image information. Image processing for causing a computer to function as image data generation means for generating image data having an image size smaller than that of the document data or the print data based on the reduction means to be applied and the intermediate image information reduced by the reduction means It is a program. The computer includes not only various general-purpose computers such as a personal computer and a server computer but also a computer incorporated in a device such as a copying machine or a multifunction machine (the same applies hereinafter). The program may be stored in various computer-readable information storage media (the same applies hereinafter).

本発明によれば、中間画像情報に対して縮小処理が施されるので、中間画像情報のフォーマットを適宜なものとすることで、高品質な縮小画像の画像データを高速に生成することができる。   According to the present invention, since the reduction processing is performed on the intermediate image information, it is possible to generate image data of a high-quality reduced image at high speed by making the format of the intermediate image information appropriate. .

なお、前記中間画像情報は、1又は複数の画素から構成される画素群に対して共通の色情報を関連づけてなる情報を含むようにしてもよい。こうすれば、画素毎に用意されたデータを処理対象とするよりも、総処理量を少なくすることができ、高速に縮小処理を行うことができるようになる。   The intermediate image information may include information obtained by associating common color information with a pixel group including one or a plurality of pixels. In this way, the total processing amount can be reduced and the reduction process can be performed at a higher speed than the case where the data prepared for each pixel is the processing target.

また、前記縮小手段は、前記中間画像情報に対して補間処理を施すようにしてもよい。こうすれば、さらに高品質の縮小処理を行うことができる。   The reduction means may perform an interpolation process on the intermediate image information. In this way, it is possible to perform a further high-quality reduction process.

この場合、前記中間画像情報は、スキャンライン毎のエッジ情報列を含み、前記エッジ情報列を構成する各エッジ情報は、スキャンライン上に連続する1又は複数の画素から構成される画像群の始点座標、終点座標、及びそれらの画素に共通の色情報を含むようにしてもよい。このような中間画像情報に対する縮小処理は、縮小率に応じた距離だけ、始点座標及び終点座標をスキャンライン方向(負方向)に移動させる処理、縮小率に応じた数の隣接するスキャンラインに関するエッジ情報列をマージ(統合)する処理を含んでもよい。後者の処理は、対応する始点座標及び終点座標を含む各エッジ情報(複数のエッジ情報であり、各々は上記隣接するスキャンラインのそれぞれに対応するもの)に基づき、マージ後のエッジ情報を算出する処理である。この処理は、上記隣接するスキャンラインにより1つのスキャンラインを合成した場合における、該合成されたスキャンラインのエッジ情報を算出する処理である。なお、前記エッジ情報は、前記画像要素の種別を示すタグ情報を含むようにしてもよい。   In this case, the intermediate image information includes an edge information sequence for each scan line, and each edge information constituting the edge information sequence is a start point of an image group including one or a plurality of pixels continuous on the scan line. The coordinates, end point coordinates, and color information common to those pixels may be included. Such reduction processing for intermediate image information includes processing for moving the start point coordinates and the end point coordinates in the scan line direction (negative direction) by a distance corresponding to the reduction rate, and the number of edges related to adjacent scan lines corresponding to the reduction rate. A process of merging (integrating) information strings may be included. The latter processing calculates edge information after merging based on each edge information (a plurality of edge information, each corresponding to each of the adjacent scan lines) including corresponding start point coordinates and end point coordinates. It is processing. This process is a process of calculating edge information of the combined scan lines when one scan line is combined with the adjacent scan lines. The edge information may include tag information indicating the type of the image element.

また、前記縮小手段は、縮小後のエッジ情報列に対応する縮小前のエッジ情報列を前記中間画像情報から複数取得して、各縮小前のエッジ情報列に対してスキャンライン方向の縮小処理を施した後、それら縮小処理後のエッジ情報列に対してマージ処理を施すようにしてもよい。あるいは、前記縮小手段は、縮小後のエッジ情報列に対応する縮小前のエッジ情報列を前記中間画像情報から複数取得して、それら複数の縮小前のエッジ情報列に対してマージ処理を施した後、該マージ処理後のエッジ情報列に対してスキャンライン方向の縮小処理を施すようにしてもよい。   Further, the reduction means acquires a plurality of pre-reduction edge information sequences corresponding to the reduced edge information sequences from the intermediate image information, and performs a reduction process in the scan line direction on each pre-reduction edge information sequence. Then, the merge processing may be performed on the edge information sequence after the reduction processing. Alternatively, the reduction unit obtains a plurality of pre-reduction edge information sequences corresponding to the reduced edge information sequences from the intermediate image information, and performs a merge process on the plurality of pre-reduction edge information sequences. Thereafter, reduction processing in the scan line direction may be performed on the edge information sequence after the merge processing.

また、前記縮小手段は、縮小後のエッジ情報列に対応する縮小前のエッジ情報列のうち、前記タグ情報により選択されるエッジ情報に基づき、前記縮小後のエッジ情報列を生成するようにしてもよい。また、縮小後のエッジ情報に含まれる色値を、該縮小後のエッジ情報に対応する複数の縮小前のエッジ情報に含まれる色値に基づいて決定してもよい。   Further, the reduction means generates the reduced edge information sequence based on the edge information selected by the tag information from the edge information sequence before reduction corresponding to the edge information sequence after reduction. Also good. Further, the color value included in the edge information after reduction may be determined based on the color value included in a plurality of edge information before reduction corresponding to the edge information after reduction.

また、本発明の他の側面に係る画像処理装置は、文書データ又は該文書データに基づいて生成される印刷データに基づき、中間画像情報を生成する中間画像情報生成手段と、前記中間画像情報に基づいて、複数の層毎の画像データを生成する層状画像データ生成手段と、を含み、前記層状画像データ生成手段は、各層の前記画像データを生成する際、縮小指示が存在する場合は前記中間画像情報に対して縮小処理を施し、前記縮小処理が施された前記中間画像情報に基づいて、前記文書データ又は前記印刷データよりも小さな画像サイズの前記画像データを生成する。   An image processing apparatus according to another aspect of the present invention includes an intermediate image information generation unit that generates intermediate image information based on document data or print data generated based on the document data, and the intermediate image information. And a layered image data generating unit configured to generate image data for each of a plurality of layers, wherein the layered image data generating unit generates the intermediate data when a reduction instruction is present when generating the image data of each layer. A reduction process is performed on the image information, and the image data having an image size smaller than the document data or the print data is generated based on the intermediate image information subjected to the reduction process.

また、本発明の他の側面に係る画像処理方法は、文書データ又は該文書データに基づいて生成される印刷データに基づき、中間画像情報を生成する中間画像情報生成ステップと、前記中間画像情報に基づいて、複数の層毎の画像データを生成する層状画像データ生成ステップと、を含み、前記層状画像データ生成ステップは、各層の前記画像データを生成する際、縮小指示が存在する場合は前記中間画像情報に対して縮小処理を施し、前記縮小処理が施された前記中間画像情報に基づいて、前記文書データ又は前記印刷データよりも小さな画像サイズの前記画像データを生成する。   An image processing method according to another aspect of the present invention includes an intermediate image information generation step of generating intermediate image information based on document data or print data generated based on the document data, and the intermediate image information A layered image data generation step for generating image data for each of a plurality of layers, and the layered image data generation step includes the intermediate when there is a reduction instruction when generating the image data for each layer. A reduction process is performed on the image information, and the image data having an image size smaller than the document data or the print data is generated based on the intermediate image information subjected to the reduction process.

また、本発明の他の側面に係る画像処理プログラムは、文書データ又は該文書データに基づいて生成される印刷データに基づき、中間画像情報を生成する中間画像情報生成手段、及び前記中間画像情報に基づいて、複数の層毎の画像データを生成するとともに、各層の前記画像データを生成する際、縮小指示が存在する場合は前記中間画像情報に対して縮小処理を施し、前記縮小処理が施された前記中間画像情報に基づいて、前記文書データ又は前記印刷データよりも小さな画像サイズの前記画像データを生成する層状画像データ生成手段としてコンピュータを機能させるための画像処理プログラムである。   An image processing program according to another aspect of the present invention includes an intermediate image information generating unit that generates intermediate image information based on document data or print data generated based on the document data, and the intermediate image information. Based on this, the image data for each of the plurality of layers is generated, and when the image data for each layer is generated, if there is a reduction instruction, the intermediate image information is reduced, and the reduction processing is performed. An image processing program for causing a computer to function as layered image data generation means for generating the image data having an image size smaller than that of the document data or the print data based on the intermediate image information.

これらの発明によれば、ユーザは縮小指示を与えることにより、高品質の縮小画像の画像データを高速に生成することができる。   According to these inventions, the user can generate image data of a high-quality reduced image at high speed by giving a reduction instruction.

以下、本発明の一実施形態について図面に基づき詳細に説明する。   Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.

実施形態1.
(全体構成)
まず、本発明の実施形態1を説明する。図3は、本実施形態にかかる画像処理装置のブロック図である。なお、本画像処理装置は、パーソナルコンピュータ上で動作するソフトウェアとして実現されている。アプリケーション301は、文書の作成、編集、印刷などの機能を持つソフトウェアであり、パーソナルコンピュータ上のOS(オペレーションシステム)上で動作する。プリンタドライバ303は、OS上で動作するソフトウェアであり、文書の印刷時にOSから呼び出される。
Embodiment 1. FIG.
(overall structure)
First, Embodiment 1 of the present invention will be described. FIG. 3 is a block diagram of the image processing apparatus according to the present embodiment. The image processing apparatus is realized as software that operates on a personal computer. The application 301 is software having functions such as document creation, editing, and printing, and operates on an OS (operation system) on a personal computer. The printer driver 303 is software that runs on the OS, and is called from the OS when printing a document.

(印刷処理の概要)
ここでユーザが文書を印刷するときの処理の流れを、まず説明する。ユーザがアプリケーションソフトウェアのUI(ユーザインターフェイス)を通じて印刷指示をすると、アプリケーションソフトウェアは、文書データ305を解釈し、OSで定義された描画命令に変換してOSに渡す。OSはアプリケーションソフトウェアによって送られた描画命令を印刷用の描画命令に変換してプリンタドライバに渡す。プリンタドライバは、印刷用描画命令を解釈して、多層圧縮画像データを生成する。本実施形態における多層圧縮画像データとは、文書中のオブジェクトの種類を元に画像を、FG(前景;Foreground)画像とBG(背景;Background)画像に分け、夫々別々に圧縮した画像データである。例えば、FGに文字を、BGにグラフィックとイメージを割り当て、FG画像を可逆圧縮、BG画像を非可逆圧縮することにより、小さいデータサイズで高画質な画像データを生成することができる。
(Overview of print processing)
Here, the flow of processing when the user prints a document will be described first. When the user issues a print instruction through the UI (user interface) of the application software, the application software interprets the document data 305, converts it into a drawing command defined by the OS, and passes it to the OS. The OS converts the drawing command sent by the application software into a drawing command for printing and passes it to the printer driver. The printer driver interprets the printing drawing command and generates multilayer compressed image data. The multilayer compressed image data in the present embodiment is image data that is divided into an FG (Foreground) image and a BG (Background) image based on the type of object in the document, and is compressed separately. . For example, by assigning characters to FG and graphics and images to BG, reversibly compressing FG images and irreversibly compressing BG images, high-quality image data can be generated with a small data size.

(プリンタドライバの構成)
図4を元に実施形態1におけるプリンタドライバの構成を説明する。プリンタドライバは、インターフェイス部401、中間データ生成部402、FG画像生成部403、FG画像圧縮部404、BG穴埋め処理部405、BGエッジリスト縮小処理部406、エッジリストバッファ407、BG画像生成部408、BG画像圧縮部409、及びフォーマット部410からなる。図4のプリンタドライバの構成を説明する前に、まず本実施形態1で採用する中間データ(中間画像情報)の形式について説明する。なお、例えば、特許請求の範囲に記載の「層状画像データ生成手段」が、FG画像生成部403乃至BG画像圧縮部409に相当し、特許請求の範囲に記載の「縮小手段」が、BGエッジリスト縮小処理部406に相当し、特許請求の範囲に記載の「画像データ生成手段」が、BG画像生成部408に相当する。また、特許請求の範囲に記載の「中間画像情報生成手段」が中間データ生成部402に相当する。

(Printer driver configuration)
The configuration of the printer driver in the first embodiment will be described with reference to FIG. The printer driver includes an interface unit 401, an intermediate data generation unit 402, an FG image generation unit 403, an FG image compression unit 404, a BG hole filling processing unit 405, a BG edge list reduction processing unit 406, an edge list buffer 407, and a BG image generation unit 408. , A BG image compression unit 409, and a format unit 410. Before describing the configuration of the printer driver in FIG. 4, the format of intermediate data (intermediate image information) employed in the first embodiment will be described first. For example, the “layered image data generation unit” described in the claims corresponds to the FG image generation unit 403 to the BG image compression unit 409, and the “reduction unit” described in the claims corresponds to the BG edge. The “image data generation unit” described in the claims corresponds to the list reduction processing unit 406, and corresponds to the BG image generation unit 408. The “intermediate image information generation unit” described in the claims corresponds to the intermediate data generation unit 402.

(エッジリストの説明)
本実施形態で採用する1ページ分の中間データの構造を図5に示す。1ページ分の中間データは、文書をラスタ化した時のスキャンライン数分のエッジリストというデータ構造からなる。各エッジリスト(エッジ情報列)は、そのスキャンラインを表現する複数のエッジ(エッジ情報)からなる。エッジは、スキャンライン方向に隣接する1又は複数の画素のうち、共通の色情報が与えられたものから構成される画像群であり、ここではこの画像群(エッジ)を特定するため、図6に示されるデータ構造が採用される。すなわち、エッジは、エッジが開始するX座標と、エッジが終了するX座標、エッジのタグ、及びそれらの画素に共通の色情報からなる。エッジのタグは、エッジがどのような描画オブジェクトの一部であるかを示すものであり、実施形態1では図7に示すように、Graphics、Text、Imageのいずれかである。Graphicsはベクトル表現された図形を、Textは文字、Imageはラスタ画像を示す。色情報は、タグ種別がGraphic又はTextの場合は、図形又は文字の色値そのものが入る。一方、タグ種別がImageの場合は、色情報はエッジの長さ分のラスタ画像が保存されているメモリ上のアドレスを示す。すなわち、本実施形態では、入力される文書データをラスタ化した場合に、共通の属性(色情報、描画オブジェクトの種類)を有するスキャンライン方向に連続する画素群を検出して、それら画素群を特定するデータ(スキャンラインの番号、エッジの開始X座標、終了X座標)とそれら画素群に共通する属性情報(色情報、描画オブジェクトの種類)とを対応づけ、エッジリスト群(中間画像情報)として記憶しているのである。このようにエッジを構成することにより、1ライン分のエッジリストで1つのスキャンラインを構成することができることがわかる。なお、本実施形態では、256諧調の白黒画像を対象とし、色値255が黒を、色値0が白を表すものとする。
(Description of edge list)
FIG. 5 shows the structure of intermediate data for one page employed in this embodiment. The intermediate data for one page has a data structure called an edge list for the number of scan lines when the document is rasterized. Each edge list (edge information sequence) includes a plurality of edges (edge information) representing the scan line. An edge is an image group composed of one or a plurality of pixels adjacent to each other in the scan line direction and given common color information. Here, in order to identify this image group (edge), FIG. The data structure shown in FIG. That is, the edge includes an X coordinate at which the edge starts, an X coordinate at which the edge ends, an edge tag, and color information common to those pixels. The edge tag indicates what kind of drawing object the edge is, and in the first embodiment, as shown in FIG. 7, it is one of Graphics, Text, and Image. Graphics represents a vector representation, Text represents a character, and Image represents a raster image. When the tag type is Graphic or Text, the color information contains the color value of the graphic or character itself. On the other hand, when the tag type is “Image”, the color information indicates an address on the memory where the raster image corresponding to the length of the edge is stored. That is, in the present embodiment, when input document data is rasterized, pixel groups that are continuous in the scan line direction having common attributes (color information, type of drawing object) are detected, and these pixel groups are detected. Data to be identified (scan line number, edge start X coordinate, end X coordinate) and attribute information (color information, type of drawing object) common to these pixel groups are associated with each other, and an edge list group (intermediate image information) It is memorized as. By configuring the edges in this way, it can be seen that one scan line can be configured with an edge list for one line. In the present embodiment, it is assumed that a black and white image with 256 gradations is the target, the color value 255 represents black, and the color value 0 represents white.

(プリンタドライバの動作の説明)
次に図4を元に本実施形態のプリンタドライバの動作を説明する。インターフェイス部401は、OSからの呼び出される関数からなる。この関数はOSで定義された印刷用描画命令のインターフェイスに従ったものとなる。中間データ生成部402は、OSから呼び出される描画命令を解釈し、プリンタドライバ内部の文書データの表現であるエッジリストを生成する。この際、図8に示す対応表(タグ種別とレイヤーとを対応づけた表)を参照しながら、各レイヤー(FG又はBG)のエッジリスト群を生成する。
(Explanation of printer driver operation)
Next, the operation of the printer driver of this embodiment will be described with reference to FIG. The interface unit 401 is composed of a function called from the OS. This function follows the interface of the printing drawing command defined by the OS. The intermediate data generation unit 402 interprets a drawing command called from the OS, and generates an edge list that is a representation of document data inside the printer driver. At this time, an edge list group of each layer (FG or BG) is generated with reference to a correspondence table (a table in which tag types and layers are associated) shown in FIG.

生成されたエッジリストは、FG画像生成部403とBG穴埋め処理部405にそれぞれ渡される。FG画像生成部403は、FGの画像データを生成し、その画像データをFG画像圧縮部404に渡す。FG画像圧縮部404は、FG画像データを所定の圧縮方式(例えばMMR圧縮等)で圧縮を行う。BG穴埋め処理部405は、画像データからFGレイヤの画像を除いた部分をその周辺のBGレイヤの色値で埋める。本実施形態では、FGエッジの隣に存在するBGエッジの色値を参照して決定した色値を持つエッジをエッジリストに追加することにより、エッジリストレベルで穴埋め処理を行う。   The generated edge list is passed to the FG image generation unit 403 and the BG hole filling processing unit 405, respectively. The FG image generation unit 403 generates FG image data, and passes the image data to the FG image compression unit 404. The FG image compression unit 404 compresses the FG image data by a predetermined compression method (for example, MMR compression). The BG hole-filling processing unit 405 fills a part of the image data excluding the FG layer image with the color values of the surrounding BG layer. In this embodiment, a hole filling process is performed at the edge list level by adding an edge having a color value determined by referring to the color value of the BG edge existing next to the FG edge to the edge list.

BGエッジリスト縮小処理部406は、BG穴埋め処理部405からエッジリストを受け取り、エッジリストの縮小処理を行い、縮小したエッジリストをBG画像生成部408に渡す。なお、BGエッジリスト縮小処理部406は、縮小時の補間処理のため、エッジリスト蓄積バッファ407を持ち、複数のエッジリストを蓄積した後、縮小されたエッジリストをひとつ出力する。蓄積するエッジリストの数は縮小率に依存する。   The BG edge list reduction processing unit 406 receives the edge list from the BG hole filling processing unit 405, performs the edge list reduction processing, and passes the reduced edge list to the BG image generation unit 408. Note that the BG edge list reduction processing unit 406 has an edge list storage buffer 407 for interpolation processing at the time of reduction, and after storing a plurality of edge lists, outputs one reduced edge list. The number of edge lists to be accumulated depends on the reduction ratio.

BG画像生成部408は、エッジリストをラスタ画像に展開し、ラスタ画像をBG画像圧縮部409に渡す。BG画像圧縮部409は、BG画像データを所定の圧縮方式で圧縮を行う。本実施形態ではJPEG圧縮を利用する。最後に、FG圧縮画像とBG圧縮画像はフォーマット部410に渡される。フォーマット部410は、所定の画像フォーマットでFG圧縮画像とBG圧縮画像を包み、FG圧縮画像のデータ及びBG圧縮画像のデータを含むデータをファイルに書き込む。   The BG image generation unit 408 expands the edge list into a raster image and passes the raster image to the BG image compression unit 409. The BG image compression unit 409 compresses the BG image data with a predetermined compression method. In this embodiment, JPEG compression is used. Finally, the FG compressed image and the BG compressed image are passed to the format unit 410. The format unit 410 wraps the FG compressed image and the BG compressed image in a predetermined image format, and writes the data including the data of the FG compressed image and the data of the BG compressed image to the file.

以下では、BGエッジリスト縮小処理部406について詳しく説明する。本実施形態では、ラスタ画像に対する面積平均法による補間縮小処理を施した場合と同等の効果が得られるエッジリストの縮小処理を採用する。そこで、まず面積平均法によるラスタ画像の縮小処理について説明する。   Hereinafter, the BG edge list reduction processing unit 406 will be described in detail. In the present embodiment, an edge list reduction process is used which can achieve the same effect as when the interpolation reduction process is performed on the raster image by the area averaging method. Therefore, a raster image reduction process using the area average method will be described first.

(一般的な補間縮小の説明)
図9は、縮小処理対象となる画像例901を示している。各格子は一つの画素を示し、その格子内の数字は、各画素の白黒の濃度値(色値)を示している。各画素には、X座標(横方向)とY座標(縦方向)の座標値を指定することにより、アクセスすることができる。例えば、X=5,Y=3の位置にある画素の濃度値は255となる。
(General interpolation reduction explanation)
FIG. 9 shows an image example 901 to be reduced. Each grid indicates one pixel, and the numbers in the grid indicate the monochrome density value (color value) of each pixel. Each pixel can be accessed by specifying coordinate values of the X coordinate (horizontal direction) and the Y coordinate (vertical direction). For example, the density value of the pixel at the position of X = 5 and Y = 3 is 255.

図10の1001は、画像例901を面積平均法で1/2縮小する過程を説明するためのものである。また、図11の1101は、画像例901を面積平均法で1/2縮小した結果得られる画像を示している。1001における太い縦横線は、縮小後一つの画素にマッピングされる画素群を囲うものである。例えば、(X=4,Y=4),(X=5,Y=4),(X=4,Y=5),(X=5,Y=5)の位置にある4つの画素群は、縮小後一つの画素にマッピングされる。面積平均法を使う場合、これら4つの画素の平均値64が求められ、1101の(X=2,Y=2)の画素にマッピングされる。   Reference numeral 1001 in FIG. 10 is for explaining a process of reducing the image example 901 by 1/2 using the area average method. In addition, reference numeral 1101 in FIG. 11 denotes an image obtained as a result of reducing the image example 901 by 1/2 using the area average method. Thick vertical and horizontal lines in 1001 enclose a pixel group mapped to one pixel after reduction. For example, four pixel groups at positions (X = 4, Y = 4), (X = 5, Y = 4), (X = 4, Y = 5), (X = 5, Y = 5) are After the reduction, it is mapped to one pixel. When the area average method is used, an average value 64 of these four pixels is obtained and mapped to 1101 (X = 2, Y = 2) pixels.

(エッジリスト表現の説明)
図12の1201は、画像例901のエッジリスト表現例である。例えば、901の画素列(X=5,Y=4),(X=6,Y=4),…,(X=10,Y=4)の濃度値はすべて255である。したがって、これらはソリッドカラー(一定の色値)を持つエッジE8で表現されている。また、(X=11,Y=4),(X=12,Y=4),…,(X=22,Y=4)の濃度値は64、128、64、128,…と画素毎に変化する。このような場合は、イメージ形式のデータをもつエッジE9として表現されている。図13と図14は、それぞれ図9の画像データ901をエッジリストで表現した場合の、ライン4とライン5の構造を示している。例えば、前述したエッジE8は、ライン4のエッジリスト1301に含まれており、開始X座標が5、終了X座標が10、タグがGraphic、色情報が一定値の255となっている。また、エッジE9も、ライン4のエッジリスト1301に含まれており、その開始X座標は11、終了X座標は22、タグはImage、色情報はイメージデータへのポインタとなっている。ポインタ先には、64、128、64、128…と交互に濃度値が変化する12バイトのイメージデータが含まれている。ライン4には、その他エッジE7、E8、E11が存在する。また図14の1401は、ライン5のエッジリストであり、E12、E13、E14の3つのエッジを含んでいる。
(Explanation of edge list expression)
1201 in FIG. 12 is an edge list expression example of the image example 901. For example, the density values of 901 pixel columns (X = 5, Y = 4), (X = 6, Y = 4),..., (X = 10, Y = 4) are all 255. Therefore, these are represented by an edge E8 having a solid color (a constant color value). The density values of (X = 11, Y = 4), (X = 12, Y = 4),..., (X = 22, Y = 4) are 64, 128, 64, 128,. Change. In such a case, it is expressed as an edge E9 having image format data. FIGS. 13 and 14 show the structures of the lines 4 and 5 when the image data 901 of FIG. 9 is expressed by an edge list, respectively. For example, the edge E8 described above is included in the edge list 1301 of the line 4, and the start X coordinate is 5, the end X coordinate is 10, the tag is Graphic, and the color information is a constant value of 255. The edge E9 is also included in the edge list 1301 of the line 4, the start X coordinate is 11, the end X coordinate is 22, the tag is Image, and the color information is a pointer to image data. The pointer destination includes 12-byte image data whose density value alternately changes to 64, 128, 64, 128. The line 4 has other edges E7, E8, and E11. Reference numeral 1401 in FIG. 14 denotes an edge list of the line 5, which includes three edges E12, E13, and E14.

(BGエッジリスト縮小処理部406の詳細)
次にBGエッジリスト縮小処理部406の詳細を説明する。
(Details of the BG edge list reduction processing unit 406)
Next, details of the BG edge list reduction processing unit 406 will be described.

(ページ開始処理)
BGエッジリスト縮小処理部406は、1ページの処理の開始時にBG穴埋め処理部405からページ開始指示を受ける。BGエッジリスト縮小処理部406は、ページ開始指示を受けると、図22のフローチャートで示される処理を行う。S2201で処理が開始されると、S2202に進み、ページの縮小率から蓄積すべきエッジリストの最大値を計算する。例えば、1/2縮小する場合は、蓄積すべきエッジリストの最大値は2となる。次にS2203に進み、エッジリストバッファを確保する。例えば、1/2縮小する場合は、最大で2ライン蓄積可能なサイズのバッファを確保することになる。次にEdgeListCountを0で初期化する。EdgeListCountは、蓄積したエッジリストの数を計測するためのカウンタである。
(Page start processing)
The BG edge list reduction processing unit 406 receives a page start instruction from the BG hole filling processing unit 405 at the start of processing of one page. Upon receiving the page start instruction, the BG edge list reduction processing unit 406 performs the process shown in the flowchart of FIG. When the process is started in S2201, the process proceeds to S2202, and the maximum value of the edge list to be accumulated is calculated from the reduction ratio of the page. For example, in the case of 1/2 reduction, the maximum value of the edge list to be accumulated is 2. In step S2203, an edge list buffer is secured. For example, in the case of 1/2 reduction, a buffer having a size capable of storing up to two lines is secured. Next, EdgeListCount is initialized with 0. EdgeListCount is a counter for measuring the number of accumulated edge lists.

(エッジリスト受信処理)
ページ開始処理が終了すると、BGエッジリスト縮小処理部406は、BG穴埋め処理部405からエッジリストを1ラインずつ受け取る。BGエッジリスト縮小処理部406のエッジリスト受信処理は図23のフローチャートで示される。S2301で受信処理が開始するとS2302に進み、受信したエッジリストをエッジリストバッファ407に蓄積する。次にS2303に進み、EdgeListCountに1を加える。次にS2304に進み、縮小時に参照すべきエッジリストが全て揃ったかどうかを検査する。例えば、1/2縮小の場合、EdgeListCountが2になったかどうかを判定すればよい。なお、本実施形態では、ラインの数は縮小率に合わせて調整されているものとする。例えば、ページのライン数は1/2縮小の場合は偶数、1/3縮小の場合は3の倍数となるように調整されている。次にフローチャートに戻り、S2304の判定が否定の場合は、S2313に進み処理を終了する。一方、S2304での判定が肯定の場合は、S2305に進みエッジリスト分割点取得処理を行う。
(Edge list reception processing)
When the page start processing ends, the BG edge list reduction processing unit 406 receives the edge list from the BG hole filling processing unit 405 line by line. The edge list reception processing of the BG edge list reduction processing unit 406 is shown in the flowchart of FIG. When the reception process starts in S2301, the process proceeds to S2302, and the received edge list is stored in the edge list buffer 407. In step S2303, 1 is added to EdgeListCount. In step S2304, it is checked whether all edge lists to be referred to at the time of reduction are prepared. For example, in the case of 1/2 reduction, it may be determined whether EdgeListCount has become 2. In the present embodiment, it is assumed that the number of lines is adjusted according to the reduction ratio. For example, the number of lines on the page is adjusted to be an even number in the case of 1/2 reduction and a multiple of 3 in the case of 1/3 reduction. Next, returning to the flowchart, if the determination in S2304 is negative, the process proceeds to S2313 and the process is terminated. On the other hand, if the determination in S2304 is affirmative, the process proceeds to S2305 to perform edge list division point acquisition processing.

(エッジリスト分割点取得処理)
エッジリスト分割点とは、補間縮小するために参照されるエッジリスト群に含まれる全てのエッジの終了X座標の和集合である。例えば、エッジリスト表現1201のライン4とライン5が参照されるエッジリストである場合、エッジリスト分割点は、{4、10、22、28、31}となる。
(Edge list division point acquisition processing)
The edge list division point is a union of end X coordinates of all edges included in the edge list group referred to for interpolation reduction. For example, in the case of an edge list in which the lines 4 and 5 of the edge list expression 1201 are referred to, the edge list division points are {4, 10, 22, 28, 31}.

フローチャートに戻ると、次にS2306に進み、参照される全てのエッジリストに対するループに入る。このループはS2309で終了する。すなわち、S2307のエッジリスト分割処理とS2308のエッジリストのX方向(スキャンライン方向)への縮小処理が全エッジリストに対して行われる。   Returning to the flowchart, the process proceeds to S2306, and a loop for all the edge lists to be referred to is entered. This loop ends at S2309. In other words, the edge list division processing in S2307 and the reduction processing in the X direction (scan line direction) of the edge list in S2308 are performed for all edge lists.

(エッジリスト分割処理)
エッジリスト分割処理とは、対象となる複数のエッジリストに含まれるエッジを分割することにより、エッジの数とエッジの座標値(開始X座標と終了X座標)が全てのエッジリストで同一になるようにする処理である。例えば、1201のライン4とライン5が対象である場合、分割処理によりライン4のエッジリストからは1501のエッジリストが、ライン5のエッジリストからは1502のエッジリストが得られる。この例の場合は、ライン4は分割前とエッジの状態は変わらないが、ライン5はエッジ数が2つ増加し、E12のエッジがE12.1とE12.2に、E14のエッジがE14.1とE14.2に分割される。より具体的には、分割後のライン4のエッジリストは図16で、分割後のライン5のエッジリストは図17で示される。
(Edge list division processing)
In the edge list division processing, edges included in a plurality of target edge lists are divided so that the number of edges and the edge coordinate values (start X coordinate and end X coordinate) are the same in all edge lists. It is processing to do. For example, when the lines 4 and 5 of 1201 are targets, the edge list of 1501 is obtained from the edge list of line 4 and the edge list of 1502 is obtained from the edge list of line 5 by the division process. In this example, the state of the edge of line 4 is the same as that before the division, but the number of edges of line 5 is increased by two, the edge of E12 is E12.1 and E12.2, and the edge of E14 is E14. Divided into 1 and E14.2. More specifically, the edge list of line 4 after division is shown in FIG. 16, and the edge list of line 5 after division is shown in FIG.

S2307のエッジリスト分割処理を図24のフローチャートをもとに説明する。エッジリスト分割処理による出力は、入力エッジリストの個々のエッジに対して分割処理が施された結果のエッジリストであり、データ構造としては、通常のエッジリストと変わりないものである。なお、以降エッジリスト[EdgeIndex]という表記は、エッジリストのEdgeIndex番目のエッジへのアクセスを意味する。   The edge list division processing in S2307 will be described with reference to the flowchart in FIG. The output by the edge list division processing is an edge list obtained as a result of the division processing performed on each edge of the input edge list, and the data structure is the same as the normal edge list. Hereinafter, the notation “edge list [EdgeIndex]” means access to the EdgeIndex-th edge in the edge list.

S2401でエッジリスト分割処理が開始されると、S2402に進みDivIndexとEdgeIndexを0に初期化する。DivIndexとは、昇順に並んだエッジリスト分割点へのインデックスである。例えば、前述の例の場合、エッジリスト分割点は{4、10、22、28、31}となっていた。この場合DivIndexが0の場合は、エッジ分割点として4が得られ、DivIndexが2の場合は、エッジ分割点として22が得られる。一方、EdgeIndexは、エッジリスト内のエッジにアクセスするためのインデックスである。図13のエッジリスト1301を例に取ると、EdgeIndexが0の場合はエッジE7、EdgeIndexが1の場合はE8が得られる。   When the edge list dividing process is started in S2401, the process proceeds to S2402, and DivIndex and EdgeIndex are initialized to zero. DivIndex is an index to edge list division points arranged in ascending order. For example, in the above example, the edge list division points are {4, 10, 22, 28, 31}. In this case, when DivIndex is 0, 4 is obtained as an edge division point, and when DivIndex is 2, 22 is obtained as an edge division point. On the other hand, EdgeIndex is an index for accessing an edge in the edge list. Taking the edge list 1301 of FIG. 13 as an example, an edge E7 is obtained when EdgeIndex is 0, and E8 is obtained when EdgeIndex is 1.

フローチャートに戻ると、次にS2403に進み、繰り返し処理に入る。繰り返し処理はDivIndexが分割点より小さく、かつEdgeIndexがエッジ数より小さい間だけ行われる。S2404では、変数Dx、Sx、Exに値を保存する。Dxはカレントの分割点を保存するための変数である。ここでは、分割点リストのDivIndex番目の分割点を取り出し、Dxに保存する。ここで、分割点リスト[DivIndex]は、分割点リストのDivIndex番目の値を取り出すことを意味する。Sxは分割対象エッジの開始X座標を、Exは分割対象エッジの終了X座標を示している。ここでは、エッジリストのEdgeIndex番目のエッジ(分割対象エッジ)の開始X座標をSxに、エッジリストのEdgeIndex番目のエッジの終了X座標をExに保存する。以降、S2405〜S2407の判定にしたがって、S2501〜S2504に処理は分岐する。ここで、図24のS2501〜S2504は図25のエッジリスト分割処理の説明図のそれと一致するものである。   Returning to the flowchart, the process proceeds to S2403 and the process is repeated. The iterative process is performed only while DivIndex is smaller than the dividing point and EdgeIndex is smaller than the number of edges. In S2404, values are stored in variables Dx, Sx, and Ex. Dx is a variable for storing the current dividing point. Here, the DivIndex-th division point in the division point list is extracted and stored in Dx. Here, the division point list [DivIndex] means that the DivIndex-th value of the division point list is extracted. Sx indicates the start X coordinate of the division target edge, and Ex indicates the end X coordinate of the division target edge. Here, the start X coordinate of the EdgeIndex-th edge (edge to be divided) in the edge list is stored in Sx, and the end X coordinate of the EdgeIndex-th edge in the edge list is stored in Ex. Thereafter, the process branches to S2501 to S2504 according to the determinations in S2405 to S2407. Here, S2501 to S2504 in FIG. 24 coincide with those in the explanatory diagram of the edge list division processing in FIG.

フローチャートに戻ると、次にS2405に進み、DxがSxより小さいかどうか判定する。S2405の判定が肯定の場合は、S2415に進みDivIndexをインクリメントする。このケースの処理は、図25の2501で図示されている。このケースでは、分割対象エッジよりも分割点が前にあるケースである。この場合分割対象エッジは分割されない。しかし、次の分割点で分割される可能性があるため、EdgeIndexは更新せず、DivIndexだけをインクリメントする。   Returning to the flowchart, the process proceeds to S2405, where it is determined whether Dx is smaller than Sx. If the determination in S2405 is affirmative, the process proceeds to S2415 to increment DivIndex. The processing for this case is illustrated at 2501 in FIG. In this case, the division point precedes the division target edge. In this case, the division target edge is not divided. However, since there is a possibility of division at the next division point, EdgeIndex is not updated and only DivIndex is incremented.

S2405で否定と判定された場合、S2406に進みDxがExより小さいかどうか判定する。この判定が肯定の場合、S2412に進む。このケースの処理は図25の2502で図示されている。このケースでは、参照エッジの範囲内に分割点が存在するため、参照エッジを2つに分割することになる。ただし、分割後の左半分のエッジを分割エッジとして出力するが、右半分は、まだ以降に現れる分割点でさらに分割される可能性がある。そのため、現在参照中のエッジを分割された左半分のエッジで置き換え、DivIndexだけをインクリメントする。フローチャートに戻るとS2412で参照エッジを2つの範囲[Sx,Dx]、[Dx+1,Ex]で分割する。次にS2413に進み、[Sx,Dx]の範囲のエッジを分割エッジリストに追加する。このエッジのタグ情報、及びそれらの画素に共通の色情報も置き換える前のエッジの値を引き継ぐ。次にS2414に進み、エッジリスト[EdgeIndex]を[Dx+1,Ex]の範囲のエッジで置き換える。このとき、エッジのタグ情報、及びそれらの画素に共通の色情報は置き換える前のエッジの値を引き継ぐ。ただし、置き換える前のエッジのタグがImageの場合、色情報は(Dx-Sx)分だけポインタをずらす必要がある。次にS2415に進みDivIndexをインクリメントする。   If NO is determined in S2405, the process proceeds to S2406 to determine whether Dx is smaller than Ex. If this determination is positive, the process proceeds to S2412. The process for this case is illustrated at 2502 in FIG. In this case, since the dividing point exists within the range of the reference edge, the reference edge is divided into two. However, although the left half edge after division is output as a division edge, there is a possibility that the right half is further divided at division points appearing later. Therefore, the edge currently being referred to is replaced with the divided left half edge, and only DivIndex is incremented. Returning to the flowchart, the reference edge is divided into two ranges [Sx, Dx] and [Dx + 1, Ex] in S2412. In step S2413, an edge in the range [Sx, Dx] is added to the divided edge list. The edge tag information before the replacement of the edge tag information and the color information common to those pixels is inherited. In step S2414, the edge list [EdgeIndex] is replaced with an edge in the range [Dx + 1, Ex]. At this time, the edge tag information and the color information common to those pixels inherit the edge value before replacement. However, when the tag of the edge before replacement is Image, the color information needs to be shifted by (Dx-Sx). In step S2415, DivIndex is incremented.

S2406での判定が否定と判定された場合、S2407に進みDxとExが等しいかどうか判定する。S2407での判定が肯定の場合、S2410に進む。このケースの処理は、図25の2503に図示されている。2503のケースでは、分割対象エッジの終了X座標と分割点座標が一致するケースである。この場合は、エッジは分割せず、そのまま出力することになる。また、この場合は、DivIndexとEdgeIndexを共にインクリメントする。フローチャートに戻るとS2410で分割対象エッジをそのまま分割エッジリストに追加し、S2411でDivIndexとEdgeIndexを共にインクリメントする。   If the determination in S2406 is negative, the process proceeds to S2407 to determine whether Dx and Ex are equal. If the determination in S2407 is affirmative, the process proceeds to S2410. The process for this case is illustrated at 2503 in FIG. In the case of 2503, the end X coordinate of the division target edge coincides with the division point coordinate. In this case, the edge is output without being divided. In this case, both DivIndex and EdgeIndex are incremented. Returning to the flowchart, the split target edge is added to the split edge list as it is in S2410, and both DivIndex and EdgeIndex are incremented in S2411.

S2407での判定が否定の場合は、S2408に進む。このケースの処理は、図25の2504に図示されている。2504のケースでは、分割対象エッジの右側に分割点が存在するケースである。この場合は、エッジは分割せず、そのまま出力することになる。また、この場合は、同一の分割点が次のエッジを分割する可能性があるため、EdgeIndexだけインクリメントする。フローチャートに戻るとS2408に進み,分割対象エッジを分割せずにそのまま分割エッジリストに追加し、S2409でEdgeIndexをインクリメントする。   If the determination in S2407 is negative, the process proceeds to S2408. The process for this case is illustrated at 2504 in FIG. In the case of 2504, there is a division point on the right side of the division target edge. In this case, the edge is output without being divided. In this case, since the same dividing point may divide the next edge, the edge index is incremented. Returning to the flowchart, the process proceeds to S2408, where the split target edge is added to the split edge list as it is without being split, and EdgeIndex is incremented in S2409.

S2416でループが終了した場合、S2417に進みエッジリスト分割処理は終了する。   When the loop ends in S2416, the process proceeds to S2417, and the edge list division process ends.

(エッジリストのX方向への縮小処理)
次に図23のフローチャートに戻る。S2307でエッジリストの分割処理が終了すると、S2308に進み、エッジリストのX方向への縮小処理が行われる。この終了処理によって出力されるエッジリスト(X方向の縮小処理後のエッジリスト)に含まれるエッジ構造体は、図26のS2601で示される。S2601のエッジ構造体は縮小後の開始X座標、縮小後の終了X座標、縮小前の開始X座標、縮小前の終了X座標、タグ、色情報からなる。X方向への縮小処理は、エッジリストをX方向のみに縮小する処理である。本実施形態では、面積平均法による補間処理を行うため、X方向に縮小することにより、エッジとエッジの間に新たなエッジが挿入される場合がある。図18は分割処理後のライン4のエッジリスト1501とライン5のエッジリスト1502に対して、X方向に1/2縮小する場合の概念図である。1803は、1501と1502をX方向に1/2縮小するときに、一時的に分割される領域を示している。白い部分は一つのエッジ単体で縮小可能な領域、グレーの部分は隣合うエッジを混ぜ合わせて縮小すべき領域を示すまた、1801と1802はそれぞれ1501と1502をX方向に1/2縮小した結果を示す。例えば、1501を1/2縮小する場合、E7とE8の間には、C1という中間的なエッジが挿入される。1801と1802において、中間的なエッジの名前はC+番号とし、それ以外をR+番号としている。1801と1802のエッジリストの具体的な構造は、それぞれ図19の1901と図20の2001で示される。ここで、C1はC2などの中間的なエッジのタグ値は、Unfixedとなっている。これは、このエッジが中間的なエッジであり、まだ色値が確定していないことを示している。
(Reduce the edge list in the X direction)
Next, the flow returns to the flowchart of FIG. When the edge list dividing process is completed in S2307, the process proceeds to S2308, and the edge list is reduced in the X direction. The edge structure included in the edge list (edge list after the reduction process in the X direction) output by this termination process is indicated by S2601 in FIG. The edge structure in S2601 includes a start X coordinate after reduction, an end X coordinate after reduction, a start X coordinate before reduction, an end X coordinate before reduction, a tag, and color information. The reduction process in the X direction is a process for reducing the edge list only in the X direction. In this embodiment, since interpolation processing is performed by the area average method, a new edge may be inserted between the edges by reducing in the X direction. FIG. 18 is a conceptual diagram when the edge list 1501 of the line 4 and the edge list 1502 of the line 5 after the division processing are reduced by 1/2 in the X direction. Reference numeral 1803 denotes a region temporarily divided when 1501 and 1502 are reduced in half in the X direction. The white part shows the area that can be reduced by a single edge, and the gray part shows the area that should be reduced by blending adjacent edges. 1801 and 1802 are the results of reducing 1501 and 1502 by 1/2 in the X direction, respectively. Indicates. For example, when 1501 is reduced by 1/2, an intermediate edge C1 is inserted between E7 and E8. In 1801 and 1802, the name of the intermediate edge is the C + number, and the other is the R + number. Specific structures of the edge lists 1801 and 1802 are shown by 1901 in FIG. 19 and 2001 in FIG. 20, respectively. Here, the tag value of an intermediate edge such as C1 is C2 is Unfixed. This indicates that this edge is an intermediate edge and the color value has not yet been determined.

エッジリストのX方向への縮小処理は、図27のフローチャートで示される。S2701で処理が開始されると、S2702に進みEdgeIndexを0で初期化する。次にS2703に進み、S2722までの繰り返し処理に入る。繰り返しの条件は、EdgeIndexがエッジリストのエッジ数より小さいことである。すなわち、繰り返し処理はエッジ数分繰り返される。S2704では、一時変数Src_Sx、Src_Exに値を保存する。Src_Sxには、エッジリストのEdgeIndex番目のエッジの開始X座標が、Src_ExにはエッジリストのEdgeIndex番目のエッジの終了X座標が保存される。すなわち、Src_SxとSrc_Exは縮小対象エッジの座標値が保存される。次にS2705に進み、変数Dst_SxとDst_Exに対して以下の計算結果が保存される。
Dst_Sx := Floor(Src_Sx×X_Scale)
Dst_Ex := Floor(Src_Ex×X_Scale)
The process of reducing the edge list in the X direction is shown in the flowchart of FIG. When the process is started in S2701, the process proceeds to S2702, and EdgeIndex is initialized with 0. Next, it progresses to S2703 and enters into the repetition process to S2722. The condition for repetition is that EdgeIndex is smaller than the number of edges in the edge list. That is, the iterative process is repeated for the number of edges. In S2704, values are stored in temporary variables Src_Sx and Src_Ex. Src_Sx stores the start X-coordinate of the EdgeIndex-th edge of the edge list, and Src_Ex stores the end X-coordinate of the EdgeIndex-th edge of the edge list. That is, Src_Sx and Src_Ex store the coordinate value of the reduction target edge. Next, proceeding to S2705, the following calculation results are stored for variables Dst_Sx and Dst_Ex.
Dst_Sx: = Floor (Src_Sx × X_Scale)
Dst_Ex: = Floor (Src_Ex × X_Scale)

Dst_SxとDst_Exには、それぞれSrc_SxとSrc_Exに対してX_Scaleを乗算した結果を整数化した結果が保存される。整数化はCeil関数により小数点第1位以下を切り捨てることにより行われる。ここで、X_Scaleは縮小率が保存されている。例えば、1/2縮小の場合はX_Scale=0.5という値が入る。   In Dst_Sx and Dst_Ex, the result obtained by converting the result of multiplying Src_Sx and Src_Ex by X_Scale to an integer is stored. Integer conversion is performed by truncating the first decimal place with the Ceil function. Here, the reduction rate is stored in X_Scale. For example, in the case of 1/2 reduction, a value of X_Scale = 0.5 is entered.

次にS2706に進み、変数Sx_Src_Range_StartとSx_Src_Range_Endに対して以下の計算結果が保存される。
Sx_Src_Range_Start := Ceil(Dst_Sx/X_Scale)
Sx_Src_Range_End := Ceil((Dst_Sx+1)/X_Scale)-1
Next, proceeding to S2706, the following calculation results are stored for variables Sx_Src_Range_Start and Sx_Src_Range_End.
Sx_Src_Range_Start: = Ceil (Dst_Sx / X_Scale)
Sx_Src_Range_End: = Ceil ((Dst_Sx + 1) / X_Scale) -1

Src_Src_Range_Startには、縮小後の座標値Dst_Sxを拡大した結果を整数化した結果が保存される。またSx_Src_Range_Endには、縮小後の座標値Dst_Sx+1を拡大した結果を整数化した結果が保存される。整数化は小数点第1以下を切り上げることにより行われる。[Sx_Src_Range_Start,Sx_Src_Range_End]という範囲は、縮小後の座標値Dst_Sxに対応する縮小前の座標範囲を示している。すなわち、Dst_Sxの位置にある画素の値を求めるには、[Sx_Src_Range_Start,Sx_Src_Range_End]の範囲にある画素の値を参照する必要がある。   In Src_Src_Range_Start, the result of converting the reduced coordinate value Dst_Sx into an integer is stored. In Sx_Src_Range_End, the result of converting the reduced coordinate value Dst_Sx + 1 to an integer is stored. Integer conversion is performed by rounding up the first decimal place. The range [Sx_Src_Range_Start, Sx_Src_Range_End] indicates the coordinate range before reduction corresponding to the coordinate value Dst_Sx after reduction. That is, in order to obtain the value of the pixel at the position of Dst_Sx, it is necessary to refer to the value of the pixel in the range of [Sx_Src_Range_Start, Sx_Src_Range_End].

次にS2707に進み、変数Ex_Src_Range_StartとEx_Src_Range_Endに対して以下の計算結果が保存される。
Ex_Src_Range_Start := Ceil(Dst_Ex/X_Scale)
Ex_Src_Range_End := Ceil((Dst_Ex+1)/X_Scale)-1
Next, proceeding to S2707, the following calculation results are stored in variables Ex_Src_Range_Start and Ex_Src_Range_End.
Ex_Src_Range_Start: = Ceil (Dst_Ex / X_Scale)
Ex_Src_Range_End: = Ceil ((Dst_Ex + 1) / X_Scale) -1

[Ex_Src_Range_Start,Ex_Src_Range_End]という範囲は、縮小後の座標値Dst_Exに対応する縮小前の座標範囲を示している。すなわち、Dst_Exの位置にある画素の値を求めるには、[Ex_Src_Range_Start,Ex_Src_Range_End]の範囲にある画素の値を参照する必要がある。   The range [Ex_Src_Range_Start, Ex_Src_Range_End] indicates the coordinate range before reduction corresponding to the coordinate value Dst_Ex after reduction. That is, in order to obtain the value of the pixel at the position of Dst_Ex, it is necessary to refer to the value of the pixel in the range of [Ex_Src_Range_Start, Ex_Src_Range_End].

(計算例)
ここで、S2704〜S2707までの計算を図31の例を使って説明する。E8で示されるエッジの座標値は以下の通りである。
Src_Sx=5
Src_Ex=10
(Calculation example)
Here, the calculation from S2704 to S2707 will be described using the example of FIG. The coordinate values of the edge indicated by E8 are as follows.
Src_Sx = 5
Src_Ex = 10

上記座標値に対して、X_Scale=0.5として、S2705の計算を行うと、以下のようになる。
Dst_Sx=Floor(5×0.5)=2
Dst_Ex=Floor(10×0.5)=5
When S2705 is calculated with X_Scale = 0.5 for the coordinate value, the result is as follows.
Dst_Sx = Floor (5 × 0.5) = 2
Dst_Ex = Floor (10 × 0.5) = 5

さらに上記座標値に対して、S2706の計算を行うと以下のようになる。
Sx_Src_Range_Start=Ceil(2/0.5)= 4
Sx_Src_Range_End=Ceil((2+1)/0.5)-1= 5
Further, when the calculation of S2706 is performed on the coordinate values, the following is obtained.
Sx_Src_Range_Start = Ceil (2 / 0.5) = 4
Sx_Src_Range_End = Ceil ((2 + 1) /0.5) -1 = 5

また、S2707の計算を行うと以下のようになる。
Ex_Src_Range_Start=Ceil(5/0.5)= 10
Ex_Src_Range_End=Ceil((5+1)/0.5)-1=11
Further, the calculation of S2707 is as follows.
Ex_Src_Range_Start = Ceil (5 / 0.5) = 10
Ex_Src_Range_End = Ceil ((5 + 1) /0.5) -1 = 11

図31で示されるように縮小前[5,10]の範囲にあるエッジは、S2704〜S2707までの計算によって、3103に示すような[4,5],[6,9],[10,11]の3つの部分に分けられることが分かる。このうち[4,5]と[10,11]の範囲は、エッジE8と隣のエッジにまたがる領域となっている。   As shown in FIG. 31, the edges in the range of [5, 10] before reduction are calculated from [2-5], [6, 9], [10, 11] as shown in 3103 by the calculation from S2704 to S2707. It can be seen that it is divided into three parts. Among these, the range of [4, 5] and [10, 11] is an area extending over the edge E8 and the adjacent edge.

(フローチャート)
図27のフローチャートに戻ると、次にS2708に進む。S2708ではSrc_Sxの値がSx_Src_Range_Startより多いかどうかを判定する。具体的には、処理中のエッジと前隣のエッジの間に中間的なエッジを挿入すべきかどうかが判断される。S2708での判定が肯定の場合は、S2709に進み、中間的なエッジが縮小エッジリストに追加される。ここで追加されるエッジのメンバは以下の値を持つ。
縮小後開始X座標:Dst_Sx
縮小後終了X座標:Dst_Sx
縮小前開始X座標:Sx_Src_Range_Start
縮小前終了X座標:Sx_Src_Range_End
タグ:Mix
色情報:Null
(flowchart)
Returning to the flowchart of FIG. 27, the process advances to step S2708. In S2708, it is determined whether or not the value of Src_Sx is greater than Sx_Src_Range_Start. Specifically, it is determined whether an intermediate edge should be inserted between the edge being processed and the previous adjacent edge. If the determination in step S2708 is affirmative, the process advances to step S2709, and an intermediate edge is added to the reduced edge list. The edge member added here has the following values.
Start X coordinate after reduction: Dst_Sx
End X coordinate after reduction: Dst_Sx
Start X coordinate before reduction: Sx_Src_Range_Start
End X coordinate before reduction: Sx_Src_Range_End
Tags: Mix
Color information: Null

このエッジ2つのエッジにまたがるため、タグ情報はMix、また色情報もNullとなっている。最終的には、図23のS2310でこれらの値は決定される。一方、S2708で否定と判定された場合は、S2709の処理は行わない。図31の例の場合には、Src_Sx=5、Sx_Src_Range_Start=4となり、S2708の判定は肯定となり、S2709に進む。この例の場合は、以下のメンバ値を持つエッジ構造体が縮小エッジリストに追加される。
縮小後開始X座標:2
縮小後終了X座標:2
縮小前開始X座標:4
縮小前終了X座標:5
タグ:Mix
色情報:Null
Since this edge extends over the two edges, the tag information is Mix and the color information is Null. Finally, these values are determined in S2310 of FIG. On the other hand, if it is determined negative in S2708, the processing in S2709 is not performed. In the case of the example of FIG. 31, Src_Sx = 5 and Sx_Src_Range_Start = 4 are obtained, the determination in S2708 is affirmative, and the process proceeds to S2709. In this example, an edge structure having the following member values is added to the reduced edge list.
Start X coordinate after reduction: 2
End X coordinate after reduction: 2
Start X coordinate before reduction: 4
End X coordinate before reduction: 5
Tags: Mix
Color information: Null

図27のフローチャートに戻ると、次にS2710に進む。S2710では、Src_SxがSx_Src_Range_Startよりも大きいかどうかを判定する。S2710での判定が肯定の場合はS2711に進み、変数Dst_Sx2にDst_Sx+1の計算結果を代入する。一方、S2710での判定が否定の場合は、Dst_Sx2にDst_Sxの値を代入する。図31の例の場合には、S2710での判定は肯定となるため、S2711に進み、Dst_Sx2には(2+1)=3という値が保存される。次にS2713に進み、Src_ExがEx_Src_Range_Endよりも小さいかどうかが判定される。S2713での判定が肯定の場合、変数Dst_Ex2にDst_Ex-1の計算結果を代入する。一方、S2713での判定が否定の場合は、Dst_Ex2にはDst_Exの値がそのまま代入される。図31の例の場合には、S2713での判定は肯定となるため、S2714に進み、Dst_Ex2には(5-1)=4という値が保存される。S2710〜S2715で計算される[Dst_Sx2,Dst_Ex2]は、エッジを縮小した場合に隣のエッジと混ざり合う部分を除いたエッジの範囲を示している。図31の例の場合、[Dst_Sx2,Dst_Ex2]=[3,4]となる。図31から分かるように縮小後の範囲[3,4]に対応する縮小前の範囲は[6,9]になる。すなわち、縮小前の範囲[6,9]の色値は、E8の色値だけを参照することにより計算可能であることが分かる。   Returning to the flowchart of FIG. 27, the process proceeds to S2710. In S2710, it is determined whether Src_Sx is larger than Sx_Src_Range_Start. If the determination in S2710 is positive, the process proceeds to S2711, and the calculation result of Dst_Sx + 1 is substituted into the variable Dst_Sx2. On the other hand, if the determination in S2710 is negative, the value of Dst_Sx is substituted for Dst_Sx2. In the case of the example of FIG. 31, since the determination in S2710 is affirmative, the process proceeds to S2711, and a value of (2 + 1) = 3 is stored in Dst_Sx2. Next, proceeding to S2713, it is determined whether Src_Ex is smaller than Ex_Src_Range_End. If the determination in S2713 is affirmative, the calculation result of Dst_Ex-1 is assigned to the variable Dst_Ex2. On the other hand, if the determination in S2713 is negative, the value of Dst_Ex is assigned to Dst_Ex2 as it is. In the case of the example of FIG. 31, since the determination in S2713 is affirmative, the process proceeds to S2714, and a value of (5-1) = 4 is stored in Dst_Ex2. [Dst_Sx2, Dst_Ex2] calculated in S2710 to S2715 indicates an edge range excluding a portion mixed with an adjacent edge when the edge is reduced. In the example of FIG. 31, [Dst_Sx2, Dst_Ex2] = [3,4]. As can be seen from FIG. 31, the pre-reduction range corresponding to the reduced range [3,4] is [6, 9]. That is, it can be seen that the color value in the range [6, 9] before the reduction can be calculated by referring only to the color value of E8.

次にS2716に進みDst_Sx2がDst_Ex2以下かどうかを判定する。S2716の判定が肯定の場合のみS2717、S2718が実行される。S2716の判定は、エッジ縮小時に隣のエッジと混ざり合う部分を除いたエッジの範囲が1以上あるかどうかを判定していることになる。S2716での判定が肯定の場合は、S2717で以下の変数に対して値が計算される。
Sx_Src_Range_Start2 :=Ceil(Dst_Sx2/X_Scale)
Ex_Src_Range_End2 := Ceil((Dst_Ex2+1)/X_Scale)-1
In step S2716, it is determined whether Dst_Sx2 is equal to or less than Dst_Ex2. Only when the determination in S2716 is positive, S2717 and S2718 are executed. The determination in S2716 determines whether or not there is one or more edge ranges excluding a portion that is mixed with an adjacent edge when the edge is reduced. If the determination in S2716 is affirmative, values are calculated for the following variables in S2717.
Sx_Src_Range_Start2: = Ceil (Dst_Sx2 / X_Scale)
Ex_Src_Range_End2: = Ceil ((Dst_Ex2 + 1) / X_Scale) -1

上記計算により、縮小後の範囲[Dst_Sx2,Dst_Ex2]に対応する縮小前の範囲が求められる。さらにS2718に進み、以下のメンバ値を持つ縮小エッジ構造体を作成し、縮小エッジリストに追加する。
縮小後開始X座標:Dst_Sx2
縮小後終了X座標:Dst_Ex2
縮小前開始X座標:Sx_Src_Range_Start2
縮小前終了X座標:Sx_Src_Range_End2
タグ:参照エッジのタグ
色情報:参照エッジの色情報
By the above calculation, the range before reduction corresponding to the range [Dst_Sx2, Dst_Ex2] after reduction is obtained. In step S2718, a reduced edge structure having the following member values is created and added to the reduced edge list.
Start X coordinate after reduction: Dst_Sx2
End X coordinate after reduction: Dst_Ex2
Start X coordinate before reduction: Sx_Src_Range_Start2
End X coordinate before reduction: Sx_Src_Range_End2
Tag: Tag of reference edge Color information: Color information of reference edge

図31の例の場合、以下のような値となる。
Sx_Src_Range_Start2 := Ceil(3/0.5)=6
Ex_Src_Range_End2 := Ceil((4+1)/0.5)-1=9
In the example of FIG. 31, the following values are obtained.
Sx_Src_Range_Start2: = Ceil (3 / 0.5) = 6
Ex_Src_Range_End2: = Ceil ((4 + 1) /0.5) -1 = 9

次にS2719に進みSrc_Exの値がEx_Src_Range_Endより小さいかどうか判定する。S2719での判定が肯定の場合、S2720に進み、一つ前の縮小エッジの縮小後終了X座標よりもDst_Exが大きいかどうかを判定する。S2720での判定が肯定の場合は、S2721に進み、以下のメンバ値を持つ縮小エッジ構造体を作成し、縮小エッジリストに追加する。
縮小後開始X座標:Dst_Ex
縮小後終了X座標:Dst_Ex
縮小前開始X座標:Ex_Src_Range_Start
縮小前終了X座標:Ex_Src_Range_End
タグ:Mix
色情報:Null
Next, proceeding to S2719, it is determined whether the value of Src_Ex is smaller than Ex_Src_Range_End. If the determination in S2719 is affirmative, the process proceeds to S2720, and it is determined whether Dst_Ex is greater than the post-reduction end X coordinate of the previous reduction edge. If the determination in step S2720 is affirmative, the process advances to step S2721, and a reduced edge structure having the following member values is created and added to the reduced edge list.
Start X coordinate after reduction: Dst_Ex
End X coordinate after reduction: Dst_Ex
Start X coordinate before reduction: Ex_Src_Range_Start
End X coordinate before reduction: Ex_Src_Range_End
Tags: Mix
Color information: Null

図31の例の場合、Src_Ex=10、Ex_Src_Range_End=11となり、S2719の判定は肯定となる。図31の場合、S2720での判定はE8の前に隣接するエッジが存在し、そのエッジの縮小処理により、すでにE8との間に中間的なエッジが挿入されている場合には肯定となる。この判定は、同一の中間的なエッジが2つ追加されるのを防ぐためにある。S2719での判定が否定の場合、あるいはS2720での判定が否定の場合、S2721は実行されない。次にS2722に進み、EdgeIndexの値がインクリメントされる。次にS2723に進むとループの終端となり、S2703に戻る。S2703でEdgeIndexがエッジ数と等しくなったら、このループを抜け、S2724に進み、処理を終了する。   In the case of the example in FIG. 31, Src_Ex = 10 and Ex_Src_Range_End = 11, and the determination in S2719 is affirmative. In the case of FIG. 31, the determination in S2720 is affirmative when there is an adjacent edge before E8 and an intermediate edge has already been inserted between E8 due to the edge reduction processing. This determination is for preventing two identical intermediate edges from being added. If the determination in S2719 is negative, or if the determination in S2720 is negative, S2721 is not executed. Next, proceeding to S2722, the value of EdgeIndex is incremented. Next, when it progresses to S2723, it will be the end of a loop and will return to S2703. When EdgeIndex becomes equal to the number of edges in S2703, the process exits this loop, proceeds to S2724, and ends the process.

なお、S2716の判定は、エッジをX方向に縮小した結果、中間的なエッジのみが作成された場合を判定することになっている。例えば、図32の3201に対して1/4縮小するケースを考える。この場合、S2704〜S2715までの処理により、Dst_Sx2=2,Dst_Ex2=1となる。よって、S2716の判定が否定となり、S2717〜S2718は実行されない。   Note that the determination in S2716 is to determine when only an intermediate edge is created as a result of reducing the edge in the X direction. For example, consider the case of 1/4 reduction with respect to 3201 in FIG. In this case, Dst_Sx2 = 2 and Dst_Ex2 = 1 are obtained by the processing from S2704 to S2715. Therefore, the determination in S2716 is negative, and S2717 to S2718 are not executed.

(図23のメインルーチンにもどる)
次に図23のフローチャートに戻る。S2307とS2308の処理が終了すると、S2309に進む。S2309はループの終端であるため、S2306に戻る。S2306において全てのエッジリストに対して処理が終了したと判定された場合、ループを抜け、S2310に進む。S2310では、S2306〜S2309で分割処理、及びX方向の縮小処理が行われた縮小エッジリストをマージする。S2310の処理は、図28のフローチャートで示される。
(Return to the main routine of FIG. 23)
Next, the flow returns to the flowchart of FIG. When the processing of S2307 and S2308 ends, the process proceeds to S2309. Since S2309 is the end of the loop, the process returns to S2306. If it is determined in S2306 that processing has been completed for all edge lists, the process exits the loop and proceeds to S2310. In S2310, the reduced edge lists that have undergone the division process and the X-direction reduction process in S2306 to S2309 are merged. The process of S2310 is shown in the flowchart of FIG.

(マージ処理)
エッジリストのマージ処理は、参照しているエッジリスト内にある同一座標のエッジを一つにまとめる処理である。このとき、参照するエッジの色値の平均値をマージ後のエッジの色値になるようにする。例えば、図18のエッジリスト1801とエッジリスト1802の場合、R7とR12.1は同一座標(開始X座標及び終了X座標)を持つため、これらを一つのエッジにマージする。つまり、これらのエッジの色値の平均値をマージ後のエッジの色値とする。この場合、マージ後のエッジの開始X座標及び終了X座標はそのまま引き継ぐ。図19の1901と図20の2001をマージした結果を図21の2101に示す。ここで、”R7+R12.1”のような表現は、2つのエッジをマージした結果得られるエッジを示している。
(Merge process)
The edge list merging process is a process for bringing together edges having the same coordinates in the referenced edge list. At this time, the average value of the color values of the edge to be referenced is set to the color value of the edge after merging. For example, in the case of the edge list 1801 and the edge list 1802 in FIG. 18, since R7 and R12.1 have the same coordinates (start X coordinate and end X coordinate), they are merged into one edge. That is, the average value of the color values of these edges is used as the color value of the edge after merging. In this case, the start X coordinate and end X coordinate of the edge after merging are inherited as they are. The result of merging 1901 in FIG. 19 and 2001 in FIG. 20 is shown in 2101 in FIG. Here, an expression such as “R7 + R12.1” indicates an edge obtained as a result of merging two edges.

エッジリストのマージ処理は、S2801で開始される。次にS2802に進み、変数EdgeIndexを0で初期化する。次にS2803に進む。S2803はループの開始点であり、対応するループ終端はS2810である。したがって、エッジの数分だけS2804〜S2809までの処理が繰り返されることになる。次にS2804に進み、全エッジリストのEdgeIndexの位置にあるエッジのタグが全てGraphicsかどうかを検査する。次にS2805に進み、全エッジのタグがGraphicsかどうか判定する。S2085の判定が肯定の場合は、S2806に進み、Graphicsエッジ専用のマージ処理を行う。一方、S2085の判定が否定の場合は、S2807に進み、汎用のエッジマージ処理を行う。S2806またはS2807のどちらかの処理によりマージされたエッジがひとつ作成される。次にS2808に進み、マージされたエッジを出力エッジリストに追加する。次にS2809に進み、EdgeIndexをインクリメントする。S2810はループの終端なので、S2803に戻る。S2803でループ条件が否定になったらS2811に進み、処理を終了する。   The edge list merging process starts in step S2801. In step S2802, the variable EdgeIndex is initialized to zero. Next, the process proceeds to S2803. S2803 is the start point of the loop, and the corresponding loop end is S2810. Therefore, the processing from S2804 to S2809 is repeated by the number of edges. Next, in S2804, it is checked whether or not all the edge tags at the EdgeIndex position in the all edge list are Graphics. In step S2805, it is determined whether all edge tags are graphics. If the determination in step S2085 is affirmative, the process advances to step S2806 to perform a graphics edge-only merge process. On the other hand, if the determination in S2085 is negative, the process advances to S2807 to perform general-purpose edge merge processing. One merged edge is created by the processing of either S2806 or S2807. In step S2808, the merged edge is added to the output edge list. In step S2809, the EdgeIndex is incremented. Since S2810 is the end of the loop, the process returns to S2803. If the loop condition becomes negative in S2803, the process proceeds to S2811, and the process ends.

(Graphicsエッジ専用のマージ処理)
S2806で行われるGraphicsエッジ専用のマージ処理を図29のフローチャートをもとに説明する。S2901で処理が開始される。開始時には、マージすべきエッジの位置を示すEdgeIndexが与えられているものとする。次にS2902に進み、ColorSumを0に初期化する。ColorSumは、エッジの平均値を計算するために各エッジの色値の総計を求めるための変数である。次にS2903に進む。S2903はループの先端であり、S2905が対応するループの終端である。したがって、S2904の処理が、全ての縮小エッジに対して繰り返されることになる。S2904では、ColorSumに対して、縮小エッジリストのEdgeIndexの位置にあるエッジの色値を加える。S2903でループを抜けるとS2906に進み、ColorAvg変数にColorSumをマージするエッジリスト数で割った値をセットする。ColroAvg変数は、全縮小エッジリストのEdgeIndexの位置にあるGraphicsエッジの色値の平均値となっている。次にS2907に進み、以下のメンバ値を持つエッジを作成する。
開始X座標: 縮小後開始X座標
終了X座標: 縮小後終了X座標
タグ:Graphic
色値:ColorAvg
(Merge processing dedicated to Graphics edges)
The graphics edge-dedicated merge processing performed in S2806 will be described with reference to the flowchart of FIG. Processing is started in S2901. It is assumed that EdgeIndex indicating the position of the edge to be merged is given at the start. In step S2902, ColorSum is initialized to zero. ColorSum is a variable for obtaining the sum of the color values of each edge in order to calculate the average value of the edges. Next, the process proceeds to S2903. S2903 is the tip of the loop, and S2905 is the end of the corresponding loop. Therefore, the process of S2904 is repeated for all reduced edges. In S2904, the color value of the edge at the position of EdgeIndex in the reduced edge list is added to ColorSum. When the loop exits in S2903, the process proceeds to S2906, and a value obtained by dividing ColorSum by the number of edge lists to be merged is set in the ColorAvg variable. The ColroAvg variable is an average value of the color values of the Graphics edge at the position of EdgeIndex in the all reduced edge list. In step S2907, an edge having the following member values is created.
Start X coordinate: Start X coordinate after reduction End X coordinate: End X coordinate after reduction Tag: Graphic
Color value: ColorAvg

縮小後開始X座標と縮小後終了X座標は、それぞれ縮小対象の任意のエッジリストのEdgeIndex番目のエッジの縮小後開始X座標と縮小後終了X座標の値を使えばよい。最後にS2908で処理を終了する。   For the start X coordinate after reduction and the end X coordinate after reduction, the values of the start X coordinate after reduction and the end X coordinate after reduction of the EdgeIndex-th edge of any edge list to be reduced may be used. Finally, the process ends in S2908.

(汎用のエッジマージ処理)
S2807で行われる汎用のエッジマージ処理を図30のフローチャートをもとに説明する。S3001で処理が開始される。開始時には、マージすべきエッジの位置を示すEdgeIndexが与えられているものとする。次にS3002に進み、変数Dst_SxとDst_Exに以下の値を代入する。
Dst_Sx:=縮小後開始X座標
Dst_Ex:=縮小後終了X座標
(General-purpose edge merge processing)
The general-purpose edge merging process performed in S2807 will be described with reference to the flowchart of FIG. Processing is started in S3001. It is assumed that EdgeIndex indicating the position of the edge to be merged is given at the start. In step S3002, the following values are substituted into the variables Dst_Sx and Dst_Ex.
Dst_Sx: = Start X coordinate after reduction
Dst_Ex: = End X coordinate after reduction

また、S3003では、変数Src_SxとSrc_Exに対して、以下の代入が行われる。
Src_Sx:=縮小前開始X座標
Src_Ex:=縮小前終了X座標
In S3003, the following substitutions are performed for the variables Src_Sx and Src_Ex.
Src_Sx: = Start X coordinate before reduction
Src_Ex: = End X coordinate before reduction

縮小後開始X座標と縮小後終了X座標は、それぞれ縮小対象の任意のエッジリストのEdgeIndex番目のエッジの縮小後開始X座標と縮小後終了X座標の値を使えばよい。縮小前開始X座標と縮小前終了X座標は、それぞれ縮小対象の任意のエッジリストのEdgeIndex番目のエッジの縮小前開始X座標と縮小前終了X座標の値を使えばよい。次にS3004に進み、縮小イメージ保存領域を確保し、その領域へのポインタDst_Image_Ptrとする。次にS3005に進む。S3005はループの開始点であり、対応するループ終端はS3014である。したがって、変数Dst_XがDst_SxからDst_Exまで変化する間、S3006〜S3013の処理が繰り返されることになる。S3006では、ColorSumを0に初期化する。ColorSumは、縮小画像のDst_Xの位置にある画素に対応する縮小前の画像の画素の色値の総和を求めるための変数である。次にS3007に進む。S3007はループの開始点であり、対応するループの終端はS3011である。したがって、S3008〜S3010の処理が全ての縮小エッジリストに対して実行されることになる。次にS3008もループ開始点であり、対応するループの終端はS3010である。したがって、S3007〜S3009の処理が、Src_XがSrc_SxからSrc_Exまで変化する間繰り返される。図示していないが、Src_Xは繰り返し毎に1ずつインクリメントされるものとする。S3007とS3008のループは、それぞれ垂直方向、及び水平方向に縮小前の座標値が移動するためのループである。S3009ではColorSumに対してSrc_Xの位置にある画素の色値を加える。S3008でのループ条件が否定になるとS3011に進む。ループの先端S3007で全ての縮小エッジに対して繰り返し処理が終了したら、ループを抜けS3012に進む。S3012では、以下の計算式により画素の色値の平均値を求める
ColorAvg:=ColorSum/{(Src_Ex-Src_Sx+1)×マージするエッジリスト数}
For the start X coordinate after reduction and the end X coordinate after reduction, the values of the start X coordinate after reduction and the end X coordinate after reduction of the EdgeIndex-th edge of any edge list to be reduced may be used. For the start X coordinate before reduction and the end X coordinate before reduction, the values of the start X coordinate before reduction and the end X coordinate before reduction of the EdgeIndex-th edge of any edge list to be reduced may be used. In step S3004, a reduced image storage area is secured, and a pointer Dst_Image_Ptr to the area is set. Next, the process proceeds to S3005. S3005 is the start point of the loop, and the corresponding loop end is S3014. Therefore, the process of S3006 to S3013 is repeated while the variable Dst_X changes from Dst_Sx to Dst_Ex. In S3006, ColorSum is initialized to 0. ColorSum is a variable for obtaining the sum of the color values of the pixels of the image before reduction corresponding to the pixel at the position of Dst_X of the reduced image. Next, the process proceeds to S3007. S3007 is the start point of the loop, and the end of the corresponding loop is S3011. Therefore, the processing of S3008 to S3010 is executed for all reduced edge lists. Next, S3008 is also a loop start point, and the end of the corresponding loop is S3010. Therefore, the processing of S3007 to S3009 is repeated while Src_X changes from Src_Sx to Src_Ex. Although not shown, Src_X is incremented by 1 for each repetition. The loops of S3007 and S3008 are loops for moving the coordinate values before reduction in the vertical direction and the horizontal direction, respectively. In S3009, the color value of the pixel located at Src_X is added to ColorSum. If the loop condition in S3008 is negative, the process proceeds to S3011. When the iterative process is completed for all the reduced edges at the loop tip S3007, the process exits the loop and proceeds to S3012. In S3012, the average value of the color values of the pixels is obtained by the following calculation formula.
ColorAvg: = ColorSum / {(Src_Ex-Src_Sx + 1) × number of edge lists to be merged}

(Src_Ex-Src_Sx+1)は、縮小前エッジの長さを表している。次にS3013に進み、Dst_Image_Ptrから(Src_X-Src_Sx)バイト先の領域に色値の平均値(ColorAvgの値)を書き込む。次にS3014に進む。S3014はループ終端のためS3005に進む。S3005での繰り返し条件が否定となったら、ループを抜けS3015に進む。S3015では、以下のメンバ値を持つエッジを作成する。
開始X座標:縮小後開始X座標
終了X座標:縮小後終了X座標
タグ:Image
色値:Dst_Image_Ptr
(Src_Ex-Src_Sx + 1) represents the length of the edge before reduction. In step S3013, the average value of color values (the value of ColorAvg) is written to an area that is (Src_X-Src_Sx) bytes ahead of Dst_Image_Ptr. Next, the process proceeds to S3014. S3014 proceeds to S3005 for loop termination. If the repetition condition in S3005 is negative, the process exits the loop and proceeds to S3015. In S3015, an edge having the following member values is created.
Start X coordinate: Start X coordinate after reduction End X coordinate: End X coordinate after reduction Tag: Image
Color value: Dst_Image_Ptr

縮小後開始X座標と縮小後終了X座標は、それぞれ縮小対象の任意のエッジリストのEdgeIndex番目のエッジの縮小後開始X座標と縮小後終了X座標の値を使えばよい。最後にS3016で処理を終了する。   For the start X coordinate after reduction and the end X coordinate after reduction, the values of the start X coordinate after reduction and the end X coordinate after reduction of the EdgeIndex-th edge of any edge list to be reduced may be used. Finally, the process ends at S3016.

実施形態1では、BGエッジリスト縮小部406が受信するエッジリストに含まれる全てのエッジを補間縮小における参照エッジとしていた。しかし、本発明はこれに限ることなく、参照するエッジを限定することも可能である。具体的には、図24のS2404において、エッジの分割処理時に分割対象エッジのタグ種別を参照し、BG画像に取り込むべきでないタグ種別を持つエッジであるならば、分割エッジリストに追加するとき、その旨をエッジにマークしておく。次に図29のS2904及び図30のS3009において、BGに取り組むべきエッジでないときは、画素の色値の平均値を計算するのにそのエッジを使わないようにすればよい。   In the first embodiment, all edges included in the edge list received by the BG edge list reduction unit 406 are used as reference edges in the interpolation reduction. However, the present invention is not limited to this, and it is also possible to limit the edge to be referred to. Specifically, in S2404 of FIG. 24, when the edge type is referred to, the tag type of the edge to be divided is referred to, and if the edge has a tag type that should not be taken into the BG image, Mark that fact on the edge. Next, in S2904 in FIG. 29 and S3009 in FIG. 30, when the edge is not an edge to be tackled with BG, the edge may not be used to calculate the average value of the color values of the pixels.

実施形態1においては、図23に示されるように、エッジの分割処理を実施した後、エッジリストのX方向への縮小処理を行っていた。しかし、本発明では、これに限ることなく、エッジリストのX方向への縮小処理後、エッジの分割処理を行ってもよい。   In the first embodiment, as shown in FIG. 23, after the edge division process is performed, the edge list is reduced in the X direction. However, the present invention is not limited to this, and edge division processing may be performed after the reduction processing of the edge list in the X direction.

実施形態1においては、図28のS2805でGraphicsタグの場合のみGraphicsエッジ専用のマージ処理を行い、その他の場合は汎用のマージ処理を行うようにしていた。しかし、本発明はこれに限ることなく、参照エッジがすべてImageエッジの場合は、Imageエッジ専用のマージ処理を行うようにすることも可能である。   In the first embodiment, the merge processing dedicated to the graphics edge is performed only in the case of the Graphics tag in S2805 of FIG. 28, and the general-purpose merge processing is performed in other cases. However, the present invention is not limited to this, and when all the reference edges are image edges, it is also possible to perform merge processing dedicated to image edges.

実施形態2.
実施形態1においては、縮小時の補間方法として面積平均法を使っていた。しかし、本発明はこれに限ることなく、例えば、線形補間法、3次補間法などの補間方法を用いることも可能である。また、補間処理が必要ない場合には、最近傍法を用いることにより、より高速にエッジリストの縮小処理を行うことも可能である。さらに、補間処理を行うか否かをユーザが指定する手段を用意し、その指定にしたがって補間処理を行う(最近傍法を使う)、行わない(例えば面積平均法を使う)を切り替えることも可能である。
Embodiment 2. FIG.
In the first embodiment, the area average method is used as an interpolation method at the time of reduction. However, the present invention is not limited to this, and it is also possible to use an interpolation method such as a linear interpolation method or a cubic interpolation method. Further, when interpolation processing is not necessary, it is possible to perform edge list reduction processing at higher speed by using the nearest neighbor method. In addition, it is possible to provide a means for the user to specify whether or not to perform interpolation processing, and switch between performing interpolation processing (using the nearest neighbor method) and not performing (for example, using the area averaging method) according to the specification. It is.

エッジリストの最近傍法による縮小処理を図33のフローチャートで説明する。このフローチャートに対する入力は、エッジリストである。まずS3301で処理が開始すると、Src_Yをインクリメントする。図示していないが、ページの開始時は、Src_Yが-1に初期化されているものとする。次にS3303に進み、以下の計算を行う。
Dst_Y=Floor(Src_Y×Y_Scale)
Prev_Dst_Y=Floor((Src_Y-1)*Y_Scale)
The reduction processing by the nearest neighbor method of the edge list will be described with reference to the flowchart of FIG. The input to this flowchart is an edge list. First, when the process starts in S3301, Src_Y is incremented. Although not shown, it is assumed that Src_Y is initialized to -1 at the start of the page. In step S3303, the following calculation is performed.
Dst_Y = Floor (Src_Y × Y_Scale)
Prev_Dst_Y = Floor ((Src_Y-1) * Y_Scale)

Dst_Yは、現在のラインSrc_Yが縮小後割り当てられるラインを示す。Prev_Dst_Yは、Src_Yの一つ前のラインが縮小後割り当てられるラインを示す。S3304では、Dst_YがPrev_Dst_Yより大きいかどうかを判定する。この判定は、縮小によって割り当てられるラインが変化したかどうかを判定するものである。S3304の判定が否定の場合は、S3317に進み、処理を終了する。すなわち、この場合は入力されたラインは捨てられる(間引かれる)。S3304の判定が肯定の場合は、S3305に進み、EdgeIndexを0で初期化する。次にS3306に進む。S3306はループの先端であり、対応するループの終端はS3317である。したがって、S3307からS3316までの処理がエッジリスト中のエッジ毎に繰り返される。   Dst_Y indicates a line to which the current line Src_Y is allocated after being reduced. Prev_Dst_Y indicates a line to which the line immediately before Src_Y is allocated after being reduced. In S3304, it is determined whether Dst_Y is larger than Prev_Dst_Y. This determination is to determine whether or not the line assigned by the reduction has changed. If the determination in S3304 is negative, the process proceeds to S3317, and the process ends. That is, in this case, the input line is discarded (thinned out). If the determination in S3304 is affirmative, the process proceeds to S3305, and EdgeIndex is initialized with 0. Next, the process proceeds to S3306. S3306 is the tip of the loop, and the end of the corresponding loop is S3317. Accordingly, the processing from S3307 to S3316 is repeated for each edge in the edge list.

S3307では、CurEdge変数にエッジリストのEdgeIndex番目のエッジを保存する。次にS3308に進み、Src_SxとSrc_ExにそれぞれCurEdgeの開始X座標とCurEdgeの終了X座標を保存する。次にS3309に進み、Dst_SxとDst_Exを以下の計算により求める。
Dst_Sx:=Ceil((Src_Sx-0.5)×X_Scale)
Dst_Ex:=Floor((Src_Ex+0.5)×X_Scale)
In step S3307, the EdgeIndex-th edge in the edge list is stored in the CurEdge variable. In step S3308, the CurEdge start X coordinate and the CurEdge end X coordinate are stored in Src_Sx and Src_Ex, respectively. In step S3309, Dst_Sx and Dst_Ex are obtained by the following calculation.
Dst_Sx: = Ceil ((Src_Sx-0.5) × X_Scale)
Dst_Ex: = Floor ((Src_Ex + 0.5) × X_Scale)

例えば、図34におけるエッジE8を縮小する場合、以下のようになる(X_Scale=0.5の場合)。
Dst_Sx:=Ceil((5-0.5)×0.5)=3
Dst_Ex:=Floor((10+0.5)×0.5)=5
For example, when the edge E8 in FIG. 34 is reduced, it is as follows (when X_Scale = 0.5).
Dst_Sx: = Ceil ((5-0.5) × 0.5) = 3
Dst_Ex: = Floor ((10 + 0.5) × 0.5) = 5

ここで、Dst_Sxの計算においてSrc_Sxから0.5を引き,Dst_Exの計算においてSrc_Exに0.5を加えてからX_Scaleを乗算している。これは、隣あうエッジが縮小されたとき、エッジ間で座標値の逆転が発生しないようにするためである。   Here, 0.5 is subtracted from Src_Sx in the calculation of Dst_Sx, and 0.5 is added to Src_Ex in the calculation of Dst_Ex, and then X_Scale is multiplied. This is to prevent reversal of coordinate values between edges when adjacent edges are reduced.

フローチャートに戻るとS3310に進み、CurEdgeのタグがGraphicsタグかどうかを判定する。S3310の判定が肯定の場合、S3310に進み、以下のメンバ値を持つエッジ構造体を作成し、出力エッジリストに追加する。
開始X座標:Dst_Sx
終了X座標:Dst_Sx
タグ:Graphics
色情報:CurEdgeの色情報
Returning to the flowchart, the process advances to step S3310 to determine whether the CurEdge tag is a Graphics tag. If the determination in S3310 is affirmative, the process proceeds to S3310, where an edge structure having the following member values is created and added to the output edge list.
Start X coordinate: Dst_Sx
End X coordinate: Dst_Sx
Tag: Graphics
Color information: CurEdge color information

一方、S3310の判定が否定の場合、S3312に進み、縮小イメージ保存領域を確保し、その領域へのポインタをDst_Image_Ptrとする。次にS3313に進み、Src_Image_PtrにCurEdgeの色情報をコピーする。この場合CurEdgeはImageエッジであるため、CurEdgeの色情報メンバには、イメージデータへのポインタが保存されている。次にS3314に進み、Src_Image_PtrからDst_Image_Ptrにイメージデータを間引きながらコピーする。次に3315に進み、以下のメンバ値を持つエッジ構造体を作成し、出力エッジリストに追加する。
開始X座標:Dst_Sx
終了X座標:Dst_Sx
タグ:Image
色情報:Dst_Image_Ptr
On the other hand, if the determination in S3310 is negative, the process proceeds to S3312, a reduced image storage area is secured, and a pointer to the area is set to Dst_Image_Ptr. In step S3313, the CurEdge color information is copied to Src_Image_Ptr. In this case, since CurEdge is an Image edge, a pointer to image data is stored in the color information member of CurEdge. In step S3314, image data is copied while being thinned from Src_Image_Ptr to Dst_Image_Ptr. Next, proceeding to 3315, an edge structure having the following member values is created and added to the output edge list.
Start X coordinate: Dst_Sx
End X coordinate: Dst_Sx
Tag: Image
Color information: Dst_Image_Ptr

S3311またはS3315の処理が終了すると、S3316に進み、EdgeIndexをインクリメントする。次にS3317に進む。S3317はループの終端であるため、ループの先頭であるS3306に戻る。S3306でのループ判定が否定となったら、S3318に進み、処理を終了する。   When the processing of S3311 or S3315 ends, the process proceeds to S3316, and EdgeIndex is incremented. Next, the process proceeds to S3317. Since S3317 is the end of the loop, the process returns to S3306, which is the head of the loop. If the loop determination in S3306 is negative, the process proceeds to S3318 and the process ends.

実施形態3.
実施形態1では、図23に示されるようにエッジリスト分割処理S2307、エッジリストのX方向への縮小処理S2308を全エッジリストに対して行い、その後エッジリストのマージ処理S2310を行うようにしていた。しかし、本発明はこれに限ることなく、これらの処理を一つのループ内で行うことも可能である。図35に実施形態3におけるエッジリスト表現1201のライン4とライン5に対する1/2補間縮小処理の流れを示す。
Embodiment 3. FIG.
In the first embodiment, as shown in FIG. 23, edge list division processing S2307 and edge list reduction processing S2308 in the X direction are performed on all edge lists, and then edge list merge processing S2310 is performed. . However, the present invention is not limited to this, and these processes can be performed in one loop. FIG. 35 shows the flow of 1/2 interpolation reduction processing for the lines 4 and 5 of the edge list expression 1201 in the third embodiment.

本実施形態では、分割エッジバッファ3501、縮小エッジバッファ3502の2つのバッファを用意する。分割エッジバッファ3501には、分割処理済みのエッジを1ラインにつき可能ならば3つ保存する。これはX方向の縮小処理時に前隣と後隣のエッジとの間に中間的なエッジを追加するときに、前隣と後隣のエッジを参照する必要があるためである。縮小エッジバッファはライン辺り最大3つのX方向への縮小処理を施したエッジを保存する。ひとつの分割エッジをX方向に補間縮小すると、前エッジとの隙間にひとつ、後ろのエッジとの隙間にひとつの中間的なエッジが挿入される可能性があるためである。ただし、前のエッジとの隙間の中間的なエッジが、前のエッジの補間縮小時に最終的な縮小エッジリストに対して追加済みの場合は、追加する必要はない。   In this embodiment, two buffers, a divided edge buffer 3501 and a reduced edge buffer 3502 are prepared. The divided edge buffer 3501 stores three divided edges if possible per line. This is because it is necessary to refer to the front and back adjacent edges when adding an intermediate edge between the front and back adjacent edges during the reduction process in the X direction. The reduced edge buffer stores the edges subjected to the reduction processing in the X direction up to three per line. This is because if one divided edge is interpolated and reduced in the X direction, one intermediate edge may be inserted in the gap between the front edge and one gap in the gap with the rear edge. However, if the intermediate edge of the gap with the previous edge has already been added to the final reduced edge list at the time of interpolation reduction of the previous edge, it is not necessary to add it.

次に、(P1)〜(P6)からなる処理ステップ例をもとに、本実施形態に係る縮小処理の詳細を説明する。初期状態では分割エッジバッファは空である。したがって、最初の処理ではライン辺り2つの分割エッジを生成し、分割エッジバッファ3501に保存する必要がある。(P1)の処理により、1502のE12は、E12.1とE12.2に分割され、1501からはE7とE8が、1502からはE12.1とE12.2が分割エッジバッファに追加される。(p1)の処理後の状態は、3501aで示される。ここで、グレーアウトされたエッジは、エッジ間の中間的なエッジを追加するのに参照されるエッジであり、実際に縮小されるエッジではない。   Next, the details of the reduction processing according to the present embodiment will be described based on the processing step examples including (P1) to (P6). In the initial state, the divided edge buffer is empty. Therefore, in the first process, it is necessary to generate two divided edges per line and store them in the divided edge buffer 3501. By the processing of (P1), E12 of 1502 is divided into E12.1 and E12.2, E7 and E8 from 1501 and E12.1 and E12.2 from 1502 are added to the divided edge buffer. The state after the processing of (p1) is indicated by 3501a. Here, the grayed-out edge is an edge that is referred to to add an intermediate edge between the edges, and is not an edge that is actually reduced.

(P2)の処理は、3501aの状態にある分割エッジバッファに対して行われる。この処理では、分割エッジバッファに保存されているひとつめの分割エッジ、この場合はE7とE12.1に対してX方向の縮小が施される。この処理により、E7及びE12.1からは、それぞれ2つの縮小エッジ、R7、C1とR12.2、C5が生成され、縮小エッジバッファに保存される。処理後の状態を3502aに示す。   The process (P2) is performed on the divided edge buffer in the state 3501a. In this process, reduction in the X direction is performed on the first divided edge stored in the divided edge buffer, in this case, E7 and E12.1. By this processing, two reduced edges, R7, C1 and R12.2, C5, are generated from E7 and E12.1, respectively, and stored in the reduced edge buffer. A state after the processing is indicated by 3502a.

(P3)の処理では、縮小エッジ(R7とR12.1、及びC1とC5)をマージし、縮小エッジリストンに追加する。この状態は3503aで示される。(P4)の処理では、分割エッジ(E9,E13)を分割エッジバッファに追加する。これで分割エッジバッファには3つのエッジが保存された状態となる(3501b)。(P5)の処理では、分割エッジ(E8とE12.2)をX方向に縮小する。縮小処理によりE8からは、C1、R8、C2、またE12.2からはC5、R12.2、C6の縮小エッジが得られる。(P6)の処理では、R8とR12.2、及びC2とC6をマージし、縮小エッジリストに追加する。ここで、C1とC5をマージした結果はすでに縮小エッジリストに追加済みのため、追加しない。   In the process of (P3), the reduced edges (R7 and R12.1, and C1 and C5) are merged and added to the reduced edge listen. This state is indicated by 3503a. In the process of (P4), the divided edges (E9, E13) are added to the divided edge buffer. As a result, three edges are stored in the divided edge buffer (3501b). In the process of (P5), the divided edges (E8 and E12.2) are reduced in the X direction. By the reduction processing, C1, R8, and C2 are obtained from E8, and C5, R12.2, and C6 are obtained from E12.2. In the process of (P6), R8 and R12.2 and C2 and C6 are merged and added to the reduced edge list. Here, the result of merging C1 and C5 is not added because it has already been added to the reduced edge list.

以上、実施形態3では、分割エッジの生成と縮小エッジの生成を一つのループで行うことにより、より少ないメモリで高速に動作させることができる。   As described above, in the third embodiment, the generation of the divided edges and the generation of the reduced edges are performed in one loop, so that the operation can be performed at a high speed with less memory.

実施形態4.
実施形態1では、層状の画像データを生成するプリンタドライバに対する適用を示した。しかし、本発明はこれに限ることなく、別の分野への適用も可能である。例えば、文書データや、印刷データを中間データに変換し、中間データを表示装置に表示する表示装置への適用も可能である。文書データや印刷データは一般に高解像度、例えば600DPIや300DPIで作成される。一方、表示デバイスの解像度は一般に75〜100DPI程度と解像度は低くなる。したがって、高解像度の文書データや印刷データを表示するには、解像度を落とす必要がある。また、ユーザにとっては表示デバイスに表示された結果を迅速に拡大、縮小を行いたい。しかし、ユーザからの拡大や縮小要求が発生する毎に、文書データや、印刷データを中間データに変換するのでは、応答性が悪くなる。そこで、文書データや、印刷データを高解像度の中間データに変換しておき、表示時には中間データに対して縮小を施すという方法が考えられる。このような表示装置に本発明を適用すれば、高画質な縮小画像を中間コードの段階で作成することができるため、ユーザへの応答性を損なうことなく、高画質な表示を行うことができる。
Embodiment 4 FIG.
In the first embodiment, application to a printer driver that generates layered image data has been described. However, the present invention is not limited to this, and can be applied to other fields. For example, the present invention can be applied to a display device that converts document data or print data into intermediate data and displays the intermediate data on a display device. Document data and print data are generally created at a high resolution, for example, 600 DPI or 300 DPI. On the other hand, the resolution of the display device is generally as low as about 75 to 100 DPI. Therefore, in order to display high resolution document data or print data, it is necessary to reduce the resolution. In addition, the user wants to quickly enlarge or reduce the result displayed on the display device. However, if document data or print data is converted into intermediate data each time a user requests enlargement or reduction, the responsiveness deteriorates. Therefore, it is conceivable to convert document data or print data into high-resolution intermediate data and reduce the intermediate data during display. When the present invention is applied to such a display device, a high-quality reduced image can be created at the intermediate code stage, so that high-quality display can be performed without impairing responsiveness to the user. .

関連技術に係る画像処理装置の概略構成を示す図である。It is a figure which shows schematic structure of the image processing apparatus which concerns on related technology. MRC構造(レイヤ別画像データ)の説明図である。It is explanatory drawing of a MRC structure (image data classified by layer). 実施形態1における画像処理装置のブロック図である。1 is a block diagram of an image processing apparatus in Embodiment 1. FIG. 実施形態1におけるプリンタドライバの構成を示す図である。FIG. 3 is a diagram illustrating a configuration of a printer driver according to the first embodiment. 実施形態1におけるエッジリストの構造を示す図である。It is a figure which shows the structure of the edge list | wrist in Embodiment 1. FIG. 実施形態1におけるエッジの構造を示す図である。3 is a diagram illustrating an edge structure according to Embodiment 1. FIG. 実施形態1におけるタグ種別を示す図である。It is a figure which shows the tag classification in Embodiment 1. 実施形態1におけるタグとレイヤの対応表を示す図である。It is a figure which shows the correspondence table of the tag and layer in Embodiment 1. 実施形態1における画像例を示す図である。6 is a diagram illustrating an example of an image in Embodiment 1. FIG. 実施形態1における画像例の平均値計算を説明する図である。6 is a diagram illustrating average value calculation of an image example according to Embodiment 1. FIG. 実施形態1における画像例を面積平均法で縮小した結果を示す図である。It is a figure which shows the result of having reduced the example of an image in Embodiment 1 by the area average method. エッジリスト表現の一例を説明する図である。It is a figure explaining an example of edge list expression. 図12のエッジリスト表現におけるライン4のエッジリストを示す図である。It is a figure which shows the edge list | wrist of the line 4 in the edge list | wrist expression of FIG. 図12のエッジリスト表現におけるライン5のエッジリストを示す図である。It is a figure which shows the edge list of the line 5 in the edge list expression of FIG. 図12のエッジリスト表現のライン4とライン5に対する分割処理を説明する図である。It is a figure explaining the division | segmentation process with respect to the line 4 and the line 5 of edge list expression of FIG. 図12のエッジリスト表現のライン4に分割処理を実施した結果得られるエッジリストを示す図である。FIG. 13 is a diagram showing an edge list obtained as a result of performing division processing on the line 4 of the edge list expression of FIG. 12. 図12のエッジリスト表現のライン5に分割処理を実施した結果得られるエッジリストを示す図である。FIG. 13 is a diagram showing an edge list obtained as a result of performing division processing on the line 5 of the edge list expression of FIG. 12. 図12のエッジリスト表現のライン4とライン5に対して、X方向に1/2の縮小を施した結果の概念図である。FIG. 13 is a conceptual diagram of a result obtained by reducing the lines 4 and 5 in the edge list expression of FIG. 12 by 1/2 in the X direction. ライン4に分割処理とX方向の1/2縮小を適用したエッジリストを示す図である。It is a figure which shows the edge list | wrist which applied the division process and the 1/2 reduction | decrease of the X direction to the line 4. FIG. ライン5に分割処理とX方向の1/2縮小を適用したエッジリストを示す図である。It is a figure which shows the edge list | wrist which applied the division process and 1/2 reduction | decrease of the X direction to the line 5. FIG. ライン4とライン5に分割処理とX方向の1/2縮小を適用した結果をマージしてなるエッジリストを示す図である。It is a figure which shows the edge list formed by merging the result of having applied the division process and 1/2 reduction | decrease of the X direction to the line 4 and the line 5. FIG. 実施形態1におけるBGエッジリスト縮小部のページ開始処理を示すフロー図である。FIG. 10 is a flowchart showing page start processing of a BG edge list reduction unit in the first embodiment. 実施形態1におけるBGエッジリスト縮小部のエッジリスト受信処理(補間縮小処理)を示すフロー図である。FIG. 6 is a flowchart showing edge list reception processing (interpolation reduction processing) of a BG edge list reduction unit in the first embodiment. 実施形態1におけるエッジリスト分割処理を示すフロー図である。It is a flowchart which shows the edge list division | segmentation process in Embodiment 1. 実施形態1におけるエッジリスト分割処理の説明図である。It is explanatory drawing of the edge list division | segmentation process in Embodiment 1. FIG. 実施形態1における縮小エッジ構造体を示す図である。It is a figure which shows the reduction | restoration edge structure in Embodiment 1. FIG. 実施形態1におけるエッジリストのX方向への縮小処理を示すフロー図である。FIG. 10 is a flowchart showing a process of reducing the edge list in the X direction in the first embodiment. 実施形態1におけるエッジリストのマージ処理を示すフロー図である。FIG. 6 is a flowchart illustrating edge list merging processing according to the first exemplary embodiment. 実施形態1のBG画像生成部におけるGraphicsエッジ専用マージ処理を示すフロー図である。FIG. 10 is a flowchart showing a graphics edge-dedicated merge process in the BG image generation unit of the first embodiment. 実施形態1のBG画像生成部における汎用のエッジマージ処理を示すフロー図である。It is a flowchart which shows the general purpose edge merge process in the BG image generation part of Embodiment 1. エッジのX方向の1/2縮小例(面積平均法)を示す図である。It is a figure which shows the 1/2 reduction example (area average method) of the X direction of an edge. エッジのX方向の1/4縮小例(面積平均法)を示す図である。It is a figure which shows the 1/4 reduction example (area average method) of the X direction of an edge. BGエッジリスト縮小部のエッジリスト受信処理(最近傍法による縮小処理)を示すフロー図である。It is a flowchart which shows the edge list reception process (reduction process by the nearest neighbor method) of a BG edge list reduction part. エッジのX方向の1/2縮小例(最近傍法)を示す図である。It is a figure which shows the 1/2 reduction example (nearest neighbor method) of the X direction of an edge. 実施形態3におけるエッジリスト表現のライン4とライン5に対する1/2補間縮小処理を説明する図である。FIG. 10 is a diagram for explaining 1/2 interpolation reduction processing for lines 4 and 5 in an edge list expression according to the third embodiment.

符号の説明Explanation of symbols

10 画像処理装置、11 文書データ、12 印刷データ、13 解析処理部、14 画像情報(中間画像情報)、15 レイヤ画像処理部、16 レイヤ別画像データ、301 アプリケーション、302 OS、303 プリンタドライバ、304 多層圧縮画像データ、305 文書データ、401 インターフェイス部、402 中間データ生成部、403 FG画像生成部、404 FG画像圧縮部、405 BG穴埋め処理部、406 BGエッジリスト縮小処理部、407 エッジリストバッファ、408 BG画像生成部、409 BG画像圧縮部、410 フォーマット部、501 エッジリスト(エッジ情報列の一群)、502 エッジ(エッジ情報)。
DESCRIPTION OF SYMBOLS 10 Image processing apparatus, 11 Document data, 12 Print data, 13 Analysis processing part, 14 Image information (intermediate image information), 15 layer image processing part, 16 Image data according to layer, 301 Application, 302 OS, 303 Printer driver, 304 Multi-layer compressed image data, 305 document data, 401 interface unit, 402 intermediate data generation unit, 403 FG image generation unit, 404 FG image compression unit, 405 BG fill-in processing unit, 406 BG edge list reduction processing unit, 407 edge list buffer, 408 BG image generation unit, 409 BG image compression unit, 410 format unit, 501 edge list (group of edge information sequence), 502 edge (edge information).

Claims (9)

文書データ又は該文書データに基づいて生成される印刷データに基づき、中間画像情報を生成する中間画像情報生成手段と、
該中間画像情報に対して縮小処理を施す縮小手段と、
前記縮小手段により前記縮小処理が施された前記中間画像情報に基づき、前記文書データ又は前記印刷データよりも小さな画像サイズの画像データを生成する画像データ生成手段とを有し、
前記中間画像情報は、1又は複数の画素から構成される画素群に対して共通の色情報を関連づけてなる情報及び、スキャンライン毎のエッジ情報列を含み、
前記エッジ情報列を構成する各エッジ情報は、スキャンライン上に連続する1又は複数の画素から構成される画素群の始点座標、終点座標、及びそれらの画素に前記共通の色情報を含み、
前記縮小手段は、縮小後のエッジ情報列に対応する縮小前のエッジ情報列を前記中間画像情報から複数取得して、各縮小前のエッジ情報列に対してスキャンライン方向の縮小処理を施した後、それら縮小処理後のエッジ情報列に対して前記縮小後のエッジ情報列に含まれる色値を、該縮小後のエッジ情報列に対応する複数の縮小前のエッジ情報列の色値の総和から算出した平均値となるように決定するマージ処理を実施することを特徴とする画像処理装置。
Intermediate image information generating means for generating intermediate image information based on document data or print data generated based on the document data;
Reduction means for performing reduction processing on the intermediate image information;
Image data generation means for generating image data having an image size smaller than that of the document data or the print data, based on the intermediate image information subjected to the reduction processing by the reduction means;
Said intermediate image information, information formed by associating the common color information for a pixel group composed of one or a plurality of pixels and includes edge information string for each scan line,
Each edge information constituting the edge information sequence includes start point coordinates, end point coordinates of a pixel group composed of one or a plurality of pixels continuous on a scan line, and the common color information in those pixels,
The reduction means acquires a plurality of pre-reduction edge information sequences corresponding to the reduced edge information sequence from the intermediate image information, and performs a reduction process in the scan line direction on each pre-reduction edge information sequence after, the edge information string after their reduction process, the color values contained in the edge information string after the reduction, the color values of the plurality of reduced before the edge information string corresponding to the edge information string after the fused small the image processing apparatus characterized by carrying out the merge processing for determining to an average value calculated from the sum.
請求項1に記載の画像処理装置において、
前記縮小手段は、前記中間画像情報に対して補間処理を施す、
ことを特徴とする画像処理装置。
The image processing apparatus according to claim 1.
The reduction means performs an interpolation process on the intermediate image information.
An image processing apparatus.
請求項1又は2に記載の画像処理装置において、
前記エッジ情報は、前記画像要素の種別を示すタグ情報を含む、
ことを特徴とする画像処理装置。
The image processing apparatus according to claim 1 or 2,
The edge information includes tag information indicating the type of the image element.
An image processing apparatus.
請求項1に記載の画像処理装置において、
前記縮小手段は、縮小後のエッジ情報列に対応する縮小前のエッジ情報列のうち、前記
タグ情報により選択されるエッジ情報に基づき、前記縮小後のエッジ情報列を生成する、
ことを特徴とする画像処理装置。
The image processing apparatus according to claim 1.
The reduction means generates the reduced edge information sequence based on the edge information selected by the tag information among the edge information sequence before reduction corresponding to the edge information sequence after reduction.
An image processing apparatus.
中間画像生成手段により、文書データ又は該文書データに基づいて生成される印刷データに基づき、中間画像情報を生成する中間画像情報生成ステップと、
縮小手段により、該中間画像情報に対して縮小処理を施す縮小ステップと、
画像データ生成手段により、前記縮小ステップで前記縮小処理が施された前記中間画像情報に基づき、前記文書データ又は前記印刷データよりも小さな画像サイズの画像データを生成する画像データ生成ステップとを有し、
前記中間画像情報は、1又は複数の画素から構成される画素群に対して共通の色情報を
関連づけてなる情報及び、スキャンライン毎のエッジ情報列を含み、
前記エッジ情報列を構成する各エッジ情報は、スキャンライン上に連続する1又は複数の画素から構成される画素群の始点座標、終点座標、及びそれらの画素に前記共通の色情報を含み、
前記縮小ステップは、前記縮小手段により、縮小後のエッジ情報列に対応する縮小前のエッジ情報列を前記中間画像情報から複数取得して、各縮小前のエッジ情報列に対してスキャンライン方向の縮小処理を施した後、それら縮小処理後のエッジ情報列に対して前記縮小後のエッジ情報列に含まれる色値を、該縮小後のエッジ情報列に対応する複数の縮小前のエッジ情報列の色値の総和から算出した平均値となるように決定するマージ処理を実施することを特徴とする画像処理方法。
An intermediate image information generating step for generating intermediate image information based on the document data or print data generated based on the document data by the intermediate image generating means;
A reduction step of performing reduction processing on the intermediate image information by reduction means;
An image data generation step of generating image data having an image size smaller than the document data or the print data based on the intermediate image information subjected to the reduction process in the reduction step by an image data generation unit; ,
Said intermediate image information, information formed by associating the common color information for a pixel group composed of one or a plurality of pixels and includes edge information string for each scan line,
Each edge information constituting the edge information sequence includes start point coordinates, end point coordinates of a pixel group composed of one or a plurality of pixels continuous on a scan line, and the common color information in those pixels,
In the reduction step, the reduction unit obtains a plurality of pre-reduction edge information sequences corresponding to the reduced edge information sequence from the intermediate image information, and scans each edge information sequence in the scan line direction. was subjected to reduction process, the edge information string after their reduction process, the color values contained in the edge information string after the reduction, edge information of front plurality of reduced corresponding to the edge information string after the fused small an image processing method which comprises carrying out the merge processing for determining to an average value calculated from the sum of the color values of the column.
文書データ又は該文書データに基づいて生成される印刷データに基づき、中間画像情報
を生成する中間画像情報生成手段、
該中間画像情報に対して縮小処理を施す縮小手段、及び
前記縮小手段により前記縮小処理が施された前記中間画像情報に基づき、前記文書データ又は前記印刷データよりも小さな画像サイズの画像データを生成する画像データ生成手段
としてコンピュータを機能させるための画像処理プログラムであって、
前記中間画像情報は、1又は複数の画素から構成される画素群に対して共通の色情報を
関連づけてなる情報及び、スキャンライン毎のエッジ情報列を含み、
前記エッジ情報列を構成する各エッジ情報は、スキャンライン上に連続する1又は複数の画素から構成される画素群の始点座標、終点座標、及びそれらの画素に前記共通の色情報を含み、
前記縮小手段は、縮小後のエッジ情報列に対応する縮小前のエッジ情報列を前記中間画像情報から複数取得して、各縮小前のエッジ情報列に対してスキャンライン方向の縮小処理を施した後、それら縮小処理後のエッジ情報列に対して前記縮小後のエッジ情報列に含まれる色値を、該縮小後のエッジ情報列に対応する複数の縮小前のエッジ情報列の色値の総和から算出した平均値となるように決定するマージ処理を実施することを特徴とする画像処理プログラム。
Intermediate image information generating means for generating intermediate image information based on document data or print data generated based on the document data;
Reduction means for performing reduction processing on the intermediate image information, and generating image data having an image size smaller than the document data or the print data based on the intermediate image information subjected to the reduction processing by the reduction means An image processing program for causing a computer to function as image data generating means
The intermediate image information includes information that associates common color information with a pixel group including one or a plurality of pixels, and an edge information string for each scan line,
Each edge information constituting the edge information sequence includes start point coordinates, end point coordinates of a pixel group composed of one or a plurality of pixels continuous on a scan line, and the common color information in those pixels,
The reduction means acquires a plurality of pre-reduction edge information sequences corresponding to the reduced edge information sequence from the intermediate image information, and performs a reduction process in the scan line direction on each pre-reduction edge information sequence after, the edge information string after their reduction process, the color values contained in the edge information string after the reduction, the color values of the plurality of reduced before the edge information string corresponding to the edge information string after the fused small the image processing program characterized by implementing the merge processing for determining to an average value calculated from the sum.
文書データ又は該文書データに基づいて生成される印刷データに基づき、複数の層毎の中間画像情報を生成する中間画像情報生成手段と、
前記複数の層毎の中間画像情報に基づいて、複数の層毎の画像データを生成する層状画像データ生成手段と、を含み、
前記層状画像データ生成手段は、
各層の前記画像データ生成される際、縮小指示が存在する場合は前記中間画像情報に対して縮小処理を施す縮小手段と、
前記縮小処理が施された前記中間画像情報に基づいて、前記文書データ又は前記印刷データよりも小さな画像サイズの前記画像データを生成する画像データ生成手段とを含み、
前記中間画像情報は、1又は複数の画素から構成される画素群に対して共通の色情報を関連づけてなる情報及び、スキャンライン毎のエッジ情報列を含み、
前記エッジ情報列を構成する各エッジ情報は、スキャンライン上に連続する1又は複数の画素から構成される画素群の始点座標、終点座標、及びそれらの画素に前記共通の色情報を含み、
前記縮小手段は、縮小後のエッジ情報列に対応する縮小前のエッジ情報列を前記中間画像情報から複数取得して、各縮小前のエッジ情報列に対してスキャンライン方向の縮小処理を施した後、それら縮小処理後のエッジ情報列に対して前記縮小後のエッジ情報列に含まれる色値を、該縮小後のエッジ情報列に対応する複数の縮小前のエッジ情報列の色値の総和から算出した平均値となるように決定するマージ処理を実施する
ことを特徴とする画像処理装置。
Intermediate image information generating means for generating intermediate image information for each of a plurality of layers based on document data or print data generated based on the document data;
A layered image data generating means for generating image data for each of a plurality of layers based on the intermediate image information for each of the plurality of layers;
The layered image data generating means includes
When the image data of the respective layers are generated, a reduction unit to facilities the reduction processing on the intermediate image information if the reduction instruction is present,
Image data generation means for generating the image data having an image size smaller than the document data or the print data based on the intermediate image information subjected to the reduction processing ;
The intermediate image information includes information that associates common color information with a pixel group including one or a plurality of pixels, and an edge information string for each scan line,
Each edge information constituting the edge information sequence includes start point coordinates, end point coordinates of a pixel group composed of one or a plurality of pixels continuous on a scan line, and the common color information in those pixels,
The reduction means acquires a plurality of pre-reduction edge information sequences corresponding to the reduced edge information sequence from the intermediate image information, and performs a reduction process in the scan line direction on each pre-reduction edge information sequence after, the edge information string after their reduction process, the color values contained in the edge information string after the reduction, the color values of the plurality of reduced before the edge information string corresponding to the edge information string after the fused small implementing the merge processing for determining to an average value calculated from the sum,
An image processing apparatus.
中間画像生成手段により、文書データ又は該文書データに基づいて生成される印刷データに基づき、複数の層毎の中間画像情報を生成する中間画像情報生成ステップと、
画像データ生成手段により、前記複数の層毎の中間画像情報に基づいて、複数の層毎の画像データを生成する層状画像データ生成ステップと、を含み、
前記層状画像データ生成ステップは、
各層の前記画像データ生成される際、縮小手段により、縮小指示が存在する場合は前記中間画像情報に対して縮小処理を施す縮小ステップと、
画像データ生成手段により、前記縮小処理が施された前記中間画像情報に基づいて、前記文書データ又は前記印刷データよりも小さな画像サイズの前記画像データを生成する画像データ生成ステップとを含み
前記中間画像情報は、1又は複数の画素から構成される画素群に対して共通の色情報を関連づけてなる情報及び、スキャンライン毎のエッジ情報列を含み、
前記エッジ情報列を構成する各エッジ情報は、スキャンライン上に連続する1又は複数
の画素から構成される画素群の始点座標、終点座標、及びそれらの画素に前記共通の色情
報を含み、
前記縮小ステップは、前記縮小手段により、縮小後のエッジ情報列に対応する縮小前のエッジ情報列を前記中間画像情報から複数取得して、各縮小前のエッジ情報列に対してスキャンライン方向の縮小処理を施した後、それら縮小処理後のエッジ情報列に対して前記縮小後のエッジ情報列に含まれる色値を、該縮小後のエッジ情報列に対応する複数の縮小前のエッジ情報列の色値の総和から算出した平均値となるように決定するマージ処理を実施する
ことを特徴とする画像処理方法。
An intermediate image information generating step for generating intermediate image information for each of a plurality of layers based on the document data or print data generated based on the document data by the intermediate image generating means;
A layered image data generating step for generating image data for each of a plurality of layers based on the intermediate image information for each of the plurality of layers by an image data generating means;
The layered image data generation step includes
When the image data of the respective layers are generated, the reduction unit, the reduction step if the reduction instruction is present to facilities the reduction processing on the intermediate image information,
An image data generation step for generating the image data having an image size smaller than the document data or the print data based on the intermediate image information subjected to the reduction process by an image data generation unit ;
The intermediate image information includes information that associates common color information with a pixel group including one or a plurality of pixels, and an edge information sequence for each scan line,
Each edge information constituting the edge information sequence includes start point coordinates, end point coordinates of a pixel group composed of one or a plurality of pixels continuous on a scan line, and the color information common to those pixels,
In the reduction step, the reduction means obtains a plurality of pre-reduction edge information sequences corresponding to the reduced edge information sequences from the intermediate image information, and scans each edge information sequence in the scan line direction. was subjected to reduction process, the edge information string after their reduction process, the color values contained in the edge information string after the reduction, edge information of front plurality of reduced corresponding to the edge information string after the fused small implementing the merge processing for determining to an average value calculated from the sum of the color values of the column,
An image processing method.
文書データ又は該文書データに基づいて生成される印刷データに基づき、複数の層毎の中間画像情報を生成する中間画像情報生成手段、及び
前記複数の層毎の中間画像情報に基づいて、複数の層毎の画像データを生成する層状画像データ生成手段、としてコンピュータを機能させるための画像処理プログラムであって、
前記層状画像データ生成手段は、
各層の前記画像データ生成される際、縮小指示が存在する場合は前記中間画像情報に対して縮小処理を施す縮小手段、及び、
前記縮小処理が施された前記中間画像情報に基づいて、前記文書データ又は前記印刷データよりも小さな画像サイズの前記画像データを生成する画像データ生成手段を含み
前記中間画像情報は、1又は複数の画素から構成される画素群に対して共通の色情報を関連づけてなる情報及び、スキャンライン毎のエッジ情報列を含み、
前記エッジ情報列を構成する各エッジ情報は、スキャンライン上に連続する1又は複数の画素から構成される画素群の始点座標、終点座標、及びそれらの画素に前記共通の色情報を含み、
前記縮小手段は、縮小後のエッジ情報列に対応する縮小前のエッジ情報列を前記中間画像情報から複数取得して、各縮小前のエッジ情報列に対してスキャンライン方向の縮小処理を施した後、それら縮小処理後のエッジ情報列に対して前記縮小後のエッジ情報列に含まれる色値を、該縮小後のエッジ情報列に対応する複数の縮小前のエッジ情報列の色値の総和から算出した平均値となるように決定するマージ処理を実施することを特徴とする画像処理プログラム。
Intermediate image information generating means for generating intermediate image information for each of a plurality of layers based on document data or print data generated based on the document data, and a plurality of intermediate image information based on the intermediate image information of each of the plurality of layers An image processing program for causing a computer to function as layered image data generation means for generating image data for each layer ,
The layered image data generating means includes
When the image data of each layer is produced, facilities to reduction means a reduction process with respect to the intermediate image data when the reduction instruction is present and,
Based on the intermediate image information which the reduction process has been performed, it includes images data generating unit that generates the image data of the image size smaller than the document data or the print data,
The intermediate image information includes information that associates common color information with a pixel group including one or a plurality of pixels, and an edge information string for each scan line,
Each edge information constituting the edge information sequence includes start point coordinates, end point coordinates of a pixel group composed of one or a plurality of pixels continuous on a scan line, and the common color information in those pixels,
The reduction means acquires a plurality of pre-reduction edge information sequences corresponding to the reduced edge information sequence from the intermediate image information, and performs a reduction process in the scan line direction on each pre-reduction edge information sequence after, the edge information string after their reduction process, the color values contained in the edge information string after the reduction, the color values of the plurality of reduced before the edge information string corresponding to the edge information string after the fused small the image processing program characterized by implementing the merge processing for determining to an average value calculated from the sum.
JP2005088454A 2005-03-25 2005-03-25 Image processing apparatus, image processing method, and image processing program Expired - Fee Related JP4609141B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005088454A JP4609141B2 (en) 2005-03-25 2005-03-25 Image processing apparatus, image processing method, and image processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005088454A JP4609141B2 (en) 2005-03-25 2005-03-25 Image processing apparatus, image processing method, and image processing program

Publications (2)

Publication Number Publication Date
JP2006270767A JP2006270767A (en) 2006-10-05
JP4609141B2 true JP4609141B2 (en) 2011-01-12

Family

ID=37206214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005088454A Expired - Fee Related JP4609141B2 (en) 2005-03-25 2005-03-25 Image processing apparatus, image processing method, and image processing program

Country Status (1)

Country Link
JP (1) JP4609141B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4569680B2 (en) * 2008-07-14 2010-10-27 コニカミノルタビジネステクノロジーズ株式会社 Resolution conversion method
JP4569679B2 (en) * 2008-07-14 2010-10-27 コニカミノルタビジネステクノロジーズ株式会社 Resolution conversion method
JP5202352B2 (en) * 2009-01-21 2013-06-05 キヤノン株式会社 Image enlarging method, image enlarging apparatus, and image forming apparatus

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61256863A (en) * 1985-05-09 1986-11-14 Canon Inc Facsimile method
JPH08331288A (en) * 1995-06-06 1996-12-13 Fujitsu Ltd Image display device for facsimile document
JPH09214752A (en) * 1996-01-31 1997-08-15 Toshiba Corp Image processing method
JPH09277619A (en) * 1996-04-12 1997-10-28 Brother Ind Ltd Printer and printing method
JPH10825A (en) * 1996-04-19 1998-01-06 Fuji Xerox Co Ltd Image processing apparatus
JPH10229492A (en) * 1997-01-24 1998-08-25 Oce Technol Bv Method for image-processing operation for run length coding bit map and image processor to execute the method
JPH1127520A (en) * 1997-06-30 1999-01-29 Dainippon Screen Mfg Co Ltd Magnification and reduction processing unit for compressed image data
JP2004341090A (en) * 2003-05-14 2004-12-02 Fuji Xerox Co Ltd Data processor, image data file, data processing method, and program

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61256863A (en) * 1985-05-09 1986-11-14 Canon Inc Facsimile method
JPH08331288A (en) * 1995-06-06 1996-12-13 Fujitsu Ltd Image display device for facsimile document
JPH09214752A (en) * 1996-01-31 1997-08-15 Toshiba Corp Image processing method
JPH09277619A (en) * 1996-04-12 1997-10-28 Brother Ind Ltd Printer and printing method
JPH10825A (en) * 1996-04-19 1998-01-06 Fuji Xerox Co Ltd Image processing apparatus
JPH10229492A (en) * 1997-01-24 1998-08-25 Oce Technol Bv Method for image-processing operation for run length coding bit map and image processor to execute the method
JPH1127520A (en) * 1997-06-30 1999-01-29 Dainippon Screen Mfg Co Ltd Magnification and reduction processing unit for compressed image data
JP2004341090A (en) * 2003-05-14 2004-12-02 Fuji Xerox Co Ltd Data processor, image data file, data processing method, and program

Also Published As

Publication number Publication date
JP2006270767A (en) 2006-10-05

Similar Documents

Publication Publication Date Title
JP5111268B2 (en) Image processing apparatus, image processing method, program thereof, and storage medium
US6078936A (en) Presenting an image on a display as it would be presented by another image output device or on printing circuitry
US8144360B2 (en) System and method for processing portions of documents using variable data
JP4502385B2 (en) Image processing apparatus and control method thereof
KR100850054B1 (en) Image processing apparatus and image processing method
JP4533187B2 (en) Image processing apparatus and control method thereof
JP5302768B2 (en) Image processing apparatus and image processing method
KR100808713B1 (en) Image processing apparatus, method thereof and recording medium
MXPA03002793A (en) Mixed raster content files.
US7525694B2 (en) Image processing device, image processing method, image processing program, and recording medium
JP2006285612A (en) Information processor, and its method
US20040223643A1 (en) Image manipulation according to pixel type
US20060217826A1 (en) Image processing apparatus and a method therefor
US7426054B1 (en) Image processing apparatus, image reproduction apparatus, system, method and storage medium for image processing and image reproduction
JP4609141B2 (en) Image processing apparatus, image processing method, and image processing program
JP2002207725A (en) Processor for concealing electronic document
JP5644214B2 (en) Print control program, information processing apparatus, storage medium, printing apparatus, printing system
JP5732935B2 (en) Information processing apparatus, print control program, and computer-readable recording medium
US8270722B2 (en) Image processing with preferential vectorization of character and graphic regions
JP5153277B2 (en) Image processing apparatus, image processing method, and image processing program
US20030237054A1 (en) Concept for automated scatter proofing of content elements used in personalized print jobs
US20070216696A1 (en) System and method for document rendering employing bit-band instructions
JP2008042346A (en) Image processing method and image processor
JP5603295B2 (en) Rendering data in the correct Z order
JP3404610B2 (en) Method and apparatus for framing character figures

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100826

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: 20100914

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: 20100927

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees