JP2017103563A - Image processing apparatus and image processing method - Google Patents
Image processing apparatus and image processing method Download PDFInfo
- Publication number
- JP2017103563A JP2017103563A JP2015234265A JP2015234265A JP2017103563A JP 2017103563 A JP2017103563 A JP 2017103563A JP 2015234265 A JP2015234265 A JP 2015234265A JP 2015234265 A JP2015234265 A JP 2015234265A JP 2017103563 A JP2017103563 A JP 2017103563A
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- holding
- information
- layer
- pixel 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.)
- Granted
Links
Images
Landscapes
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
Description
本発明は、ページ記述言語(PDL)で記述されたデータから画像データを生成する技術に関する。 The present invention relates to a technique for generating image data from data described in a page description language (PDL).
記録媒体に画像を印刷する場合、ページ記述言語(PDL:page description language)で記述された印刷対象のデータをネットワーク等の通信媒体を介して受信する。プリンタなどの画像形成装置で出力するため、PDLで記述されたデータに対してRIP(Raster image processor)処理を実行することにより、PDLで記述されたデータは、ラスタ画像データに変換される。具体的にはまず、印刷する画像形成装置(プリンタ)専用のインタプリタが、受信したPDLによって記述されたデータを解釈し、中解釈したけかに基づいて中間データを作成する。さらに、中間データに基づいてレンダリング処理が実行され、ラスタ画像wp生成する。以上のようなRIP処理によって生成されるラスタ画像は、所定の画像処理を施され、亜g像形成装置が印刷可能な印字データに変換され、プリンタが印刷データに基づいて記録媒体上に印刷する。 When printing an image on a recording medium, print target data described in a page description language (PDL) is received via a communication medium such as a network. For output by an image forming apparatus such as a printer, data described in PDL is converted into raster image data by executing RIP (Raster Image Processor) processing on the data described in PDL. Specifically, first, an interpreter dedicated to the image forming apparatus (printer) to print interprets the data described by the received PDL, and creates intermediate data based on whether or not the interpretation is performed. Further, a rendering process is executed based on the intermediate data to generate a raster image wp. The raster image generated by the RIP processing as described above is subjected to predetermined image processing, converted into print data that can be printed by the sub-g image forming apparatus, and the printer prints on the recording medium based on the print data. .
さらにレンダリング処理では、スキャンラインアルゴリズムが知られている。スキャンラインアルゴリズムでは、描画すべきオブジェクトの境界(エッジ)とスキャンラインの交点を算出して、隣接する2つのエッジ間の連続画素(スパン)の画素値をオブジェクト情報から算出する。不透明のオブジェクトが重なっている場合、スパンの単位でオブジェクトの重なりを判定することによって最前面のオブジェクトのみを描画することで最終結果を得られる。 Furthermore, a scan line algorithm is known for rendering processing. In the scan line algorithm, the intersection between the boundary (edge) of the object to be drawn and the scan line is calculated, and the pixel value of the continuous pixel (span) between two adjacent edges is calculated from the object information. If opaque objects overlap, the final result can be obtained by drawing only the foreground object by determining the overlap of the objects in span units.
一方、透明なオブジェクトが重なっている場合には、最終的な画素値を算出する為にはすべての透明なオブジェクトの画素値を重なっている順に合成する必要がある。しかしながらスキャンラインアルゴリズムでは、スパンごとにオブジェクトの重なりを判定し、合成する処理を行う必要がある。そのため、透明なオブジェクトが多く重なっているようなデータの場合には、処理が複雑になり、時間がかかってしまう。 On the other hand, when transparent objects overlap, in order to calculate the final pixel value, it is necessary to combine the pixel values of all the transparent objects in the overlapping order. However, in the scan line algorithm, it is necessary to determine the overlap of objects for each span and perform a process of combining them. Therefore, in the case of data in which many transparent objects are overlapped, the processing becomes complicated and takes time.
そこで特許文献1では、重なる2つのオブジェクトの解像度情報を取得し、画像合成時に高解像度のオブジェクトに合わせて低解像度のオブジェクトを変換して合成することで、出来るだけ出力解像度より低い解像度で合成する。
Therefore, in
特許文献1に開示された方法では、3つ以上の複数のオブジェクトが重なる領域における画素を合成するためには、複雑な制御を必要としていた。さらに、画素を合成するためには、オブジェクトが重なる順に各レイヤにおける画素情報が出力されるのを待つ必要があった。
In the method disclosed in
そこで本発明は、簡単な構成により、複数のオブジェクトが重なる領域における画素を効率よく合成処理することができるデータを出力することを目的とする。 Accordingly, an object of the present invention is to output data that can efficiently combine pixels in a region where a plurality of objects overlap with a simple configuration.
上記課題を解決するために、印刷対象の画像を表すデータをラスタ画像データに変換する画像処理装置であって、前記画像における処理対象ラインにおいて、描画されるオブジェクトが重なる数に基づいて、連続する画素の位置情報を取得する取得手段と、前記連続する画素において、前記描画されるオブジェクトのうち少なくとも一部の画素データを示す画素情報を保持する第一の保持手段と、前記描画されるオブジェクトのうち、前記連続する画素において単一の画素値からなるオブジェクトの画素データを示す画素情報を保持する第二の保持手段と、前記連続する画素のうち、オブジェクトが対応するレイヤ毎に、前記連続する画素の画素データを画素情報として前記オブジェクトの重ね順に前記第一の保持手段または前記第二の保持手段に入力する入力手段と、前記第一の保持手段または前記第二の保持手段に保持された前記連続する画素における画素情報に基づいて、共通して処理可能な領域を特定し、前記領域における全てのレイヤの画素情報を1組として、前記第一の保持手段または前記第二の保持手段から取り出して出力する出力手段を有することを特徴とする。 In order to solve the above-described problem, an image processing apparatus that converts data representing an image to be printed into raster image data, and is continuous based on the number of objects to be drawn overlapped on the processing target line in the image. Acquisition means for acquiring pixel position information; first holding means for holding pixel information indicating at least a part of pixel data of the drawn object in the continuous pixels; and Among the continuous pixels, a second holding unit that holds pixel information indicating pixel data of an object having a single pixel value in the continuous pixels and the continuous pixels for each layer corresponding to the object. The first holding means or the second holding means using pixel data of pixels as pixel information in the overlapping order of the objects Based on the pixel information in the continuous pixels held in the first holding means or the second holding means, the common processing area is specified based on the input means that inputs to the stage, and in the area It has an output means for taking out and outputting the pixel information of all layers as one set from the first holding means or the second holding means.
本発明によれば、簡単な構成により、複数のオブジェクトが重なる領域における画素を効率よく合成処理することができるデータを出力できる。 According to the present invention, it is possible to output data that can efficiently combine pixels in a region where a plurality of objects overlap with a simple configuration.
以下、添付図面を参照して、本発明の実施形態を詳細に説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。 Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Note that the configurations shown in the following embodiments are merely examples, and the present invention is not limited to the illustrated configurations.
<第1実施形態>
図1は、第1実施形態に適用可能な画像形成装置100の全体構成の一例を示すブロック図である。画像形成装置100は、CPU101、ROM102、RAM103、入力部104、PDL処理部105、レンダラ処理部106、画像処理部107、出力部108から構成され、共有バス109を介して接続されている。
<First Embodiment>
FIG. 1 is a block diagram illustrating an example of the overall configuration of an
CPU101は、ROM102に格納された制御プログラムを読み出し実行することにより、演算処理や画像形成装置100各部の動作を統括的に制御する。RAM103は、読み出し及び書き込み可能なメモリであり、画像データなどの各種データを一時的に格納するための記憶媒体である。入力部104は、ホストPCやサーバ(不図示)から転送されてくるページ記述言語で記述された印刷対象のデータ(以降、PDLデータ)を受信し、RAM103に格納する。PDL処理部105は、入力部104が受信したPDLデータを解析し、レンダラ処理部106が解釈可能なフォーマットの中間データに変換する。レンダラ処理部106は、PDL処理部105が生成した中間データからラスタ画像データを生成する。画像処理部107は、レンダラ処理部106で生成されたラスタ画像データに対して所定の画像処理を施して印刷データを生成する。出力部108は、インクジェットヘッドやレーザービーム方式のプリンタエンジンであり、画像処理部107を介して生成された印刷データに従って、印刷処理を実行する。
The
図2は、従来型のレンダラ処理部106を示すブロック図である。従来型のレンダラ処理部106における課題について説明する。レンダラ処理部106は、命令実行部201、エッジ処理部202、画素生成部203、画素合成部204、画素合成スタック205および画素出力部206からなり、パイプライン処理を実行する。命令実行部201は、中間データ207から処理命令208を読み出して処理し、各処理部に読み出した命令をコマンドとして転送する。エッジ処理部202は、中間データ207からエッジ情報209を読みだして、スキャンラインとオブジェクトのアウトラインが交差する2つの交点間の連続画素(スパン)の位置情報を生成する。各スパンは、オブジェクトが対応するレイヤの重なりが同じ画素群からなる線分である。さらにエッジ生成部202は、画素を生成するためのスパンの位置情報を、スパン情報コマンドとして画素生成部203に転送する。ここで生成されるスパン情報コマンドもまた、パイプラインの各処理部に転送される。画素生成部203は、中間データ207の画素データテーブル210を参照して、スパン情報コマンドからスパンにおける画素情報を生成する。画素合成部204は、受け取ったスパンにおける最終的な出力画素値を決定するために、複数のオブジェクトの重なりを合成する必要がある場合には、画素合成スタック205を使用して途中までの画素合成の中間結果を保持する。画素出力部206は、画素合成部204が算出された最終的な画素値を、レンダリング結果として出力バッファ(不図示)に出力する。
FIG. 2 is a block diagram showing a conventional
次に、同一スパンに複数のオブジェクトが重なっているときの処理について説明する。図3は、画像オブジェクト301と単色塗りつぶしオブジェクト302、303の3つのオブジェクトが重なっているページの例を示している。画像オブジェクト301は、最背面のレイヤ1に描画されており、背面の見えない不透明なオブジェクトである。オブジェクト302、303はそれぞれレイヤ2、レイヤ3に描画されており、画像オブジェクト301の前面に重なっている。なお、レイヤ1、2、3の順に背面から前面に重なっているとする。また、オブジェクト302、303は透過して背面が見える透過オブジェクトである。したがってオブジェクト302および303が重なっている領域については、その領域に含まれる画素の最終出力値を生成すためには、それぞれのオブジェクトの画素値を合成する必要がある。
Next, processing when a plurality of objects overlap in the same span will be described. FIG. 3 shows an example of a page in which three objects of the
上述のような3つのオブジェクトが重なっている位置を横切るスキャンライン304のスパンの生成とスパンのレンダリングについて説明する。処理対象ラインであるスキャンライン304は、各オブジェクトのアウトラインとの交点によって、複数のスパンに分けられて処理される。図3のようにスキャンライン304は、スパン1からスパン7の7つのスパンに分けられる。各スパンの開始位置、終了位置はPDL処理部105によって予め設定されており、中間データ207のエッジ情報209として符号化されて記憶されている。エッジ情報209を、レンダラ処理部105のエッジ処理部202が復号処理することによって各スパンの開始位置、終了位置が算出される。また、エッジ情報209には各スパンに描画される画素情報の参照先が登録されている。同一スパンに複数のオブジェクトが重なって描画される場合には、最背面のレイヤから順に複数の参照先が登録されている。例えばスパン4では、3つのオブジェクトが重なっているので、最背面から順に画像オブジェクト301とオブジェクト302、303の画素情報の参照先が順に登録されている。レンダラ処理部105におけるパイプライン処理において、これらの参照先の情報はスパン4の位置情報を含んだスパン情報コマンドとして、エッジ処理部202から画素生成部203に対して送信される。
The generation of the span of the
このように、スパン情報コマンドは参照先の情報を有するため、描画されるオブジェクトのあるレイヤ毎に1つ生成される。つまり、オブジェクトが複数重なったスパンにおいては、複数のスパン情報コマンドが生成される。また、スパン情報コマンドは、対応するレイヤが最上位のレイヤであるかどうかを示すフラグを有する。画素生成部203は、受け取ったスパンの位置情報と画素情報の参照先の情報から、中間データ207を参照して各オブジェクトの画素データを生成し、画素情報コマンドとして画素合成部204に送信する。このとき、画素生成部203は、同一の画素値が連続する複数画素については、1つの画素情報コマンドとして画素合成部204に送る。画素情報コマンドは、生成された画素値とその開始画素位置、終了画素位置の情報を含む。画素生成部203は、同一画素の連続を1メッセージとして送るので、図3のスパン4の例では、図4に示すような画素情報が画素合成部204に送られる。図4は図3のスパン4の画素情報として送られる画素情報コマンド例と、その生成順序を示している。画素生成部203は、中間データを参照して、重なり順に、指定されたオブジェクトのスパンの開始位置から終了位置までの画素を生成する。したがって、図4が示す生成順序のように下のレイヤのすべての画素情報が生成されるまで、上のレイヤの画素情報は生成されない。
In this way, since the span information command has the information of the reference destination, one span information command is generated for each layer having the object to be drawn. That is, a plurality of span information commands are generated in a span where a plurality of objects overlap. The span information command has a flag indicating whether or not the corresponding layer is the highest layer. The
画素合成部204は、上述のような順序で送られてくる画素情報コマンドを受け取って、複数のレイヤの重なりに位置する各オブジェクトの画素データを適切に合成し、各画素の最終出力値を決定する。例えば、図4の例ではレイヤ1の4つの画素情報をすべて保存しておかないと、レイヤ2の画素と適切に合成することが出来ない。また、オブジェクトの描画の方法によっては、レイヤ1の画素情報を一時保存しておいて、レイヤ2とレイヤ3の画素を合成してから、合成後の画素をレイヤ1と合成する。画素情報を一時的に保存にするために、画素合成スタック206が使用される。このように従来の構成では、上述のような順序で画素情報が送られるために、スパンに描画される全てのオブジェクトの画素情報をバッファリングしておく必要があり、多くのリソースを必要としていた。また画素合成部204は、図4のようにレイヤ毎に同一画素数が続く画素範囲が異なった画素情報を処理する必要があるため、複雑な制御を必要としていた。
The
一方、画素合成スタック206に必要なリソースを低減する従来手法として、スパン304のようにオブジェクトの重なりがある場合は、図5のように画素単位のスパンに分割して処理する手法が知られている。このように、画素情報の生成単位であるスパンをさらに分割して画素合成の順序に合わせて画素生成すれば、画素合成の為にスパンの全画素をバッファリングする必要がない。しかし、パイプラインを伝えるスパン情報および画素情報のコマンド数や、合成回数が増大するという課題があった。
On the other hand, as a conventional technique for reducing the resources required for the
図6は、第1実施形態に適用可能なレンダラ処理部106の構成を示している。図2に示した従来のレンダラ処理部106に対して、第1実施形態におけるレンダラ処理部106では、画素生成部203と画素合成部204の間に、画素バッファ601を設けている。画素バッファ601は、画素生成部203が生成する画素情報を保持し、後述の処理フローにおいて画素情報を再生成することで、画素合成部204が効率よく合成することができるようにする。なおここでは、1〜3レイヤ目用バッファを構成としているため、3つの重なりまで対応できる。以下、画素バッファ601の構成例、および動作について説明する。各レイヤバッファ702は、スパンの長さとオブジェクトが保持し得るビット数に基づいて、容量が設定される。例えば、スパンを構成する最大画素数が64画素と設定され、オブジェクトとしては、RGBそれぞれ最大8ビットの画像データが描画されるとする。この場合、1つのレイヤバッファ702には、最大24ビット×64画素のデータが格納される。従って、レイヤバッファ702は、最大24ビット×64画素のデータが格納可能な容量を設けられていることが望ましい。
FIG. 6 shows a configuration of the
図7は、図6における画素バッファ601の詳細な構成を示すブロック図である。画素バッファ601は、入力制御部701とレイヤ毎に画素情報をスキャン方向順にバッファリングするためのレイヤバッファ702、出力制御部703を有する。入力制御部701は、画素生成部203からスパン情報コマンドを受け付けると、スパンの開始画素位置STARTXと終了画素位置ENDXを取得する。また、スパン情報コマンドに含まれる最上位レイヤを示すフラグを持つレイヤを受信するまでに受信したスパン情報コマンドの数をカウントすることでレイヤ総数N(本実施形態の場合は、Nは1〜3)を取得する。また、受信したスパン情報コマンドは出力制御部に転送する。スパン情報コマンドに続いて、画素生成部203からスパンの画素情報を受け付けると、最初に送られてくるレイヤの画素情報を1レイヤ目のバッファに保存する。1レイヤ目のすべての画素情報をバッファに保存すると、すでに保存したレイヤ数とレイヤ総数Nを比較し、まだレイヤが残っているかを判定する。まだレイヤが残っている場合は、続いて送られてくる画素情報を、2レイヤ目以降のバッファに保存していき、Nレイヤ分の保存が終わるまで処理を繰り返す。すべてのレイヤを保存し終わると、次のスパン情報コマンドを受け付けて同様の処理を繰り返す。
FIG. 7 is a block diagram showing a detailed configuration of the
出力制御部703は、各レイヤバッファから画素情報を取り出して、画素合成部204が効率よく合成することができるように画素情報を再生成する。以下、図8を用いて出力制御部703の動作を説明する。図8は、出力制御部703が実行する処理のフローチャートである。
The
ステップS802において出力制御部703は、入力制御部701から複数のスパン情報コマンドを受け付けると、コマンドからスパンの開始画素位置STARTXと終了画素位置ENDXを取得する。また、入力制御部701と同様に、スパン情報コマンドに含まれる最上位レイヤを示すフラグを持つレイヤを受信するまでに受信したスパン情報コマンドの数をカウントすることでレイヤ総数Nを取得する。
In step S <b> 802, when the
ステップS802において出力制御部703は、N個それぞれのレイヤバッファから1つずつ計N個の画素情報を取り出して、共通して取り出せる画素区間を特定する。ここで共通して取り出せる画素区間は、後段の画素合成部204が共通して処理可能な領域(区間)とも言える。最初に取り出される画素区間の開始画素位置は常にSTARTXとなり、画素区間の終了画素位置については、N個の同一画素の連続する画素区間から最小の終了画素位置NEXTENDを検出することで得られる。2区間目からの開始画素位置は1区間前のNEXTEND+1となる。
In step S <b> 802, the
ステップS803において、ステップS801で取り出したN個の画素情報のうち1レイヤ目からNレイヤ目の順に、開始画素位置STARTXから終了画素位置NEXTXの部分的な画素情報を生成する。生成した部分的な画素情報は、1組の画素情報として画素合成部204に出力する。ステップS803までで既に出力したNEXTXの画素位置がスパンの終了位置ENDXに達していれば(NEXTX==ENDX)、現在のスパンの出力処理を終了し、次のスパン情報コマンドを入力制御部701から受け付けて同様の処理を繰り返す。まだNEXTXがENDXに達していない場合は(NEXTX<ENDX)、ステップS804に進み、N個のレイヤの画素情報から既にS803で画素合成部204に送信した画素範囲を削除する。ステップS804で画素範囲を削除した結果、全ての画素範囲が削除されたレイヤが存在する場合、ステップS805に進む。ステップS805において削除したレイヤのレイヤバッファから次の画素範囲の画素情報を取り出して、新しくN個のレイヤの画素情報を更新し、S802からの処理を繰り返す。
In step S803, partial pixel information from the start pixel position STARTX to the end pixel position NEXTTX is generated in the order from the first layer to the Nth layer among the N pieces of pixel information extracted in step S801. The generated partial pixel information is output to the
以上説明したように、画素生成部203によって作成された複数レイヤにわたってオブジェクトが重なった位置の画素情報をバッファリングする。さらに、複数レイヤ間で同一画素が連続している領域を揃えながら各レイヤの画素情報を並び替えて再生成する。これにより、画素合成部204は、複数のレイヤにわたって複数の画素の合成結果が同一になる画素範囲はレイヤ1からレイヤNまでの画素情報を1組として合成処理できる。そのため画素合成部204は、レイヤ数よって決まるスパンにおいて重なり順に全ての画素情報が転送されるのを待つことなく、効率的に画素合成処理を実行することが出来る。なお図6では、3レイヤ分のバッファを有する場合の例を示しているが、レイヤバッファの個数を変更することで容易に4以上の任意のNレイヤにも対応可能である。
As described above, the pixel information at the position where the object overlaps over a plurality of layers created by the
<変形例>
第1実施期待では、図7および図8のフロー図を用いて説明したように、重なったオブジェクトの画素情報をレイヤ毎に異なる画素バッファに保存する。しかしながら、第1実施形態に示す構成では設けたレイヤバッファの個数以上にレイヤ数の重なりがあるスパンについては、処理することが出来ない。そこで変形例として、図9に示すように単一画素値レイヤバッファ903を設ける方法について説明する。以下、図9と出力制御部904が実行する処理フロー図を示した図10を用いて、変形例における処理の動作を説明する。単一画素値レイヤバッファ903は、スパンの開始画素位置から終了画素位置までの全域が単一画素値であるレイヤを保存するバッファとして使用される。例えば、図3で例示したオブジェクト302、303は、画素位置に依らずに単一画素値で描画されるオブジェクトであるため、これらのオブジェクトから生成されるスパンは単一画素値レイヤバッファ903に格納する。従って、レイヤバッファ902には、全レイヤの画素情報のうち、一部のレイヤの画素情報が入力される。単一画素値からなるオブジェクトの場合、画素毎の画素情報を保持する必要がなく、1画素分の画素情報を保持しておけばよい。そのため例えば前述のレイヤバッファ702と同様、同一画素値レイヤバッファ903が24ビット×64画素のデータが格納可能な容量を設けられている場合、64のオブジェクトの画素情報を保持できることになる。従って図9に示すバッファの場合、単一画素値ではない画像オブジェクトの重なりは2つ、単一画素値からなるオブジェクトの重なりは64まで対応できることになる。
<Modification>
In the first implementation expectation, as described with reference to the flowcharts of FIGS. 7 and 8, the pixel information of the overlapped objects is stored in different pixel buffers for each layer. However, in the configuration shown in the first embodiment, it is not possible to process a span where the number of layers overlaps more than the number of layer buffers provided. Therefore, as a modification, a method of providing a single pixel
入力制御部901は、画素生成部203からスパン情報コマンドを受け付けると、スパンの開始画素位置STARTXと終了画素位置ENDXとレイヤ総数Nを取得し、出力制御部に転送する。スパン情報コマンドに続いて、画素生成部203からスパンの画素情報を受け付けると、処理対象のレイヤが単一画素値のオブジェクトからなるレイヤかどうかを判断する。画素情報から得られる開始画素位置とSTARTX、終了画素位置とENDXを比較し、共に一致した画素情報のレイヤは単一画素レイヤと判定される。単一画素値レイヤであった場合は、単一画素値レイヤバッファ903に画素情報を保存して、次のレイヤの入力処理に移行する。単一画素値レイヤでなかった場合は、本レイヤのすべての画素情報を第nレイヤバッファ[n=1、2、・・・、N:nは当該スパンにおけるn番目の単一画素値でないレイヤを指す]に保存して、次のレイヤの入力処理に移行する。すでに保存したレイヤ数とレイヤ総数Nを比較して、まだレイヤが残っている場合は、続いて送られてくる画素情報について上記処理を繰り返す。すべてのレイヤを保存し終わると、次のスパン情報コマンドを受け付けて、同様の処理を繰り返す。
When the
出力制御部904は、図10の処理フローに従って、各レイヤバッファから画素情報を取り出して、画素合成部204が効率よく合成することができるように画素情報を再生成する。以下、図10を用いて出力制御部904の動作を説明する。
The
ステップS1001において出力制御部904は、入力制御部901からスパン情報コマンドを受け付けると、コマンドからスパンの開始画素位置STARTXと終了画素位置ENDXを取得する。また、スパン情報コマンドに含まれる最上位レイヤを示すフラグを持つレイヤを受信するまでに受信したスパン情報コマンドの数をカウントすることでレイヤ総数Nを取得する。
In step S1001, when the
ステップS1002において出力制御部904は、スパン情報コマンドには含まれる、画素生成部203が画素生成時に使用した参照先の情報に基づいて、各レイヤがレイヤバッファと単一画素値レイヤバッファのどちらに含まれているかを検出する。この結果、1番下のレイヤからN番目のレイヤの画素情報は、それぞれどのバッファから取り出せばいいかを決定できる。ステップS1003において、ステップ1002における判定結果に基づいて、それぞれのバッファからN個の画素情報を取り出すと、第1実施形態と同様に共通して取り出せる画素区間を特定する。最初に取り出される画素区間の開始画素位置は常にSTARTXとなり、画素区間の終了画素位置については、N個の同一画素の連続する画素区間から最小の終了画素位置NEXTENDを調べることで得られる。2区間目からの開始画素位置は1区間前のNEXTEND+1となる。
In step S1002, the
ステップS1004において、ステップS1003で取り出したN個の画素情報から1レイヤ目からNレイヤ目の順に、開始画素位置STARTX、終了画素位置NEXTXの部分画素情報を生成する。生成した部分画素情報は、1組の画素情報として画素合成部204に出力する。ステップS1004までで既に出力したNEXTXの画素位置がスパンの終了位置ENDXに達していれば(NEXTX==ENDX)、現在のスパンの出力処理を終了し、次のスパン情報コマンドを入力制御部901から受け付けて同様の処理を繰り返す。まだNEXTXがENDXに達していない場合は(NEXTX<ENDX)、ステップS1005に進む。ステップS1005において、N個のレイヤの画素情報から既にS1004で画素合成部204に送信した画素範囲を削除する。ステップS1004で画素範囲を削除した結果、全ての画素範囲が削除されたレイヤが存在する場合、ステップS1006に進む。ステップS1006において削除したレイヤのレイヤバッファから次の画素範囲の画素情報を取り出して、新しくN個のレイヤの画素情報を更新し、S1003からの処理を繰り返す。
In step S1004, partial pixel information of the start pixel position STARTX and the end pixel position NEXTTX is generated in the order from the first layer to the Nth layer from the N pieces of pixel information extracted in step S1003. The generated partial pixel information is output to the
図11は、図9の2種類のレイヤバッファ3個に対して、5つのレイヤが重なったスパンを処理する例を示している。画素バッファ601の主要な動作を詳細に説明する。入力制御部901によって、レイヤ1の画素情報は第1レイヤバッファに、レイヤ4の画素情報は第2レイヤバッファに、レイヤ2、3、5の画素情報は単一画素値レイヤバッファ903にバッファリングされる。出力制御部904は、各バッファから全5レイヤの先頭の画素情報を取り出し、最小の終了画素位置を検出する。検出した全5レイヤにわたって共通する画素範囲をもとに、部分画素情報を重なり順に画素合成部204に送信する。取り出した画素情報のうち、送信済みの画素範囲を削除する。全ての画素範囲が削除されたレイヤが存在する場合、削除されたレイヤが保存されているレイヤバッファから新たに画素情報を取り出す。以上の処理をスパンの終了画素位置ENDXに達するまで繰り返す。
FIG. 11 shows an example of processing a span in which five layers overlap each other with respect to the three kinds of layer buffers of FIG. The main operation of the
以上説明したように変形例によれば、画素生成部203によって作成された複数レイヤにわたって重なった画素情報を画素バッファ601でバッファリングする。さらに複数レイヤ間で同一画素が連続している領域を揃えながら画素情報を並び替えて再生成する。これによって、画素合成部204は、複数のレイヤにわたって複数の画素の合成結果が同一になる画素範囲はレイヤ1からレイヤNまでの1組の合成処理で完了でき、効率的に画素合成処理することが出来る。また、画素バッファ601に単一画素値レイヤバッファ903を設けることで、少ないリソースでより多くのレイヤの重なりをバッファリングすることが出来る。1ページ分のデータには、オブジェクト301のような画像が多数重なって描画されることはあまり発生しない。一方、オブジェクト302や303のような単一画素値かなる図形やレイアウトは、複数重なって描画される場合がある。さらに前述の通り単一画素値からなるオブジェクトは、画像オブジェクトの1画素分の画素情報を保持しておけばよいので、単一画素値からなるオブジェクトは1つのバッファに格納する。これにより1ページにおいてより多数の重なりに対応可能な構成を実現することができる。また、図9ではレイヤバッファ902が2個、単一画素値レイヤバッファ903が1個の構成で説明したが、それぞれのバッファの個数は変更可能である。
As described above, according to the modification, the pixel information overlapped over a plurality of layers created by the
<第2実施形態>
第1実施形態の変形例では入力制御部901は画素生成部203が生成した画素情報をもとに、レイヤバッファ902と単一画素値レイヤバッファ903のどちらにバッファリングするかを制御する構成とした。第2実施形態ではバッファリングするバッファの制御を画素バッファ601よりパイプラインの前段に位置するエッジ処理部202や画素生成部203で行う構成とする方法について説明する。
Second Embodiment
In the modification of the first embodiment, the
エッジ処理部202で制御する場合について説明する。第1実施形態で述べたようにエッジ処理部202は、レイヤ毎にスパン情報コマンドを生成してパイプライン後段のモジュールに送信する。スパン情報コマンドは、画素生成部203が画素情報を生成するための参照先の情報を含む。エッジ処理部202は、この参照先が単一画素値であるとき、スパン情報コマンドに単一画素値であることを通知するフラグを付与する。入力制御部901は、スパン情報コマンドに付与されたフラグを検知したとき、該当するレイヤの画素情報を単一画素値レイヤバッファにバッファリングする。単一画素値であることを通知するフラグを付与する処理は、画素生成部203が実施しても構わない。本実施形態によれば、入力制御部901は画素情報の中身を解析せずに、スパン情報コマンドのフラグを検出するだけでバッファの制御が可能となる。また、入力制御部901において同様にスパン情報コマンドに含まれる参照先の情報から単一画素値かどうかを判定するように構成してもよい。
A case where control is performed by the
<その他の実施形態>
第1実施形態では、最適化前の画素バッファ601の制御フローに基づいて、出力制御部904の動作フローを説明した。しかしながら、本実施形態では、単一画素値レイヤバッファに保存されているレイヤの画素情報については、全画素区間が同一画素値であることがあらかじめ分かっている。したがって、ステップS1003とステップS1006の処理の対象から同一画素値レイヤの画素情報を除外する、などの最適な実装形態をとっても構わない。
<Other embodiments>
In the first embodiment, the operation flow of the
また、レイヤバッファ902と単一画素値レイヤバッファ903は、同じ構成のバッファとして構成して機能を切り替えてもよい。つまり、単一画素値レイヤが存在しないスパンでは単一画素値レイヤバッファをレイヤバッファとして使用してもよい。この場合、単一画素値レイヤが存在するか否かを判定し、判定結果に応じて第1の実施形態と、偏見例とを切り替えるような構成となる。
Further, the
100 画像形成装置
106 レンダラ処理部
601 画素バッファ
701 入力制御部
702 1〜Nレイヤ用バッファ
703 出力制御部
DESCRIPTION OF
Claims (8)
前記画像における処理対象ラインにおいて、描画されるオブジェクトが重なる数に基づいて、連続する画素の位置情報を取得する取得手段と、
前記連続する画素において、前記描画されるオブジェクトのうち少なくとも一部の画素データを示す画素情報を保持する第一の保持手段と、
前記描画されるオブジェクトのうち、前記連続する画素において単一の画素値からなるオブジェクトの画素データを示す画素情報を保持する第二の保持手段と、
前記連続する画素のうち、オブジェクトが対応するレイヤ毎に、前記連続する画素の画素データを画素情報として前記オブジェクトの重ね順に前記第一の保持手段または前記第二の保持手段に入力する入力手段と、
前記第一の保持手段または前記第二の保持手段に保持された前記連続する画素における画素情報に基づいて、共通して処理可能な領域を特定し、前記領域における全てのレイヤの画素情報を1組として、前記第一の保持手段または前記第二の保持手段から取り出して出力する出力手段を有することを特徴とする画像処理装置。 An image processing apparatus that converts data representing an image to be printed into raster image data,
Acquisition means for acquiring position information of successive pixels based on the number of objects to be drawn overlapping in the processing target line in the image;
First holding means for holding pixel information indicating at least some pixel data of the drawn object in the continuous pixels;
Second holding means for holding pixel information indicating pixel data of an object having a single pixel value in the continuous pixels among the drawn objects;
An input unit that inputs pixel data of the continuous pixels as pixel information to the first holding unit or the second holding unit in the overlapping order of the objects for each layer corresponding to the object among the continuous pixels. ,
Based on the pixel information in the continuous pixels held in the first holding means or the second holding means, a region that can be processed in common is specified, and pixel information of all layers in the region is set to 1 An image processing apparatus comprising output means for taking out and outputting from the first holding means or the second holding means as a set.
前記決定手段は、前記領域ごとに前記画素情報を参照して、順に画素値を決定することを特徴とする請求項1乃至3のいずれか一項に記載の画像処理装置。 Furthermore, based on pixel information obtained from the output means, there is a determination means for determining a pixel value of each pixel in the processing target line,
The image processing apparatus according to claim 1, wherein the determination unit sequentially determines pixel values with reference to the pixel information for each region.
前記画像における処理対象ラインにおいて、描画されるオブジェクトが重なる数に基づいて、連続する画素の位置情報を取得し、
前記連続する画素のうち、オブジェクトが対応するレイヤ毎に、前記連続する画素の画素データを画素情報として前記オブジェクトの重ね順に、前記連続する画素において、前記描画されるオブジェクトのうち少なくとも一部の画素データを示す画素情報を保持する第一の保持手段と、前記描画されるオブジェクトのうち、前記連続する画素において単一の画素値からなるオブジェクトの画素データを示す画素情報を保持する第二の保持手段と、のうちいずれかに、入力し、
前記第一の保持手段または前記第二の保持手段に保持された前記連続する画素における画素情報に基づいて、共通して処理可能な領域を特定し、前記領域における全てのレイヤの画素情報を1組として、前記第一の保持手段または前記第二の保持手段から取り出して出力することを特徴とする画像処理方法。 An image processing method for converting data representing an image to be printed into raster image data,
In the processing target line in the image, based on the number of overlapping objects to be drawn, obtain the position information of consecutive pixels,
Among the continuous pixels, for each layer corresponding to the object, at least some of the drawn objects in the continuous pixels in the overlapping order of the objects using pixel data of the continuous pixels as pixel information. A first holding unit for holding pixel information indicating data, and a second holding for holding pixel information indicating pixel data of an object having a single pixel value in the consecutive pixels among the drawn objects. Enter into any of the means,
Based on the pixel information in the continuous pixels held in the first holding means or the second holding means, a region that can be processed in common is specified, and pixel information of all layers in the region is set to 1 An image processing method comprising: taking out and outputting from the first holding unit or the second holding unit as a set.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015234265A JP6614941B2 (en) | 2015-11-30 | 2015-11-30 | Image processing apparatus and image processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015234265A JP6614941B2 (en) | 2015-11-30 | 2015-11-30 | Image processing apparatus and image processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017103563A true JP2017103563A (en) | 2017-06-08 |
JP6614941B2 JP6614941B2 (en) | 2019-12-04 |
Family
ID=59016984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015234265A Active JP6614941B2 (en) | 2015-11-30 | 2015-11-30 | Image processing apparatus and image processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6614941B2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009230760A (en) * | 2008-03-20 | 2009-10-08 | Sharp Corp | Image processor and image processing method |
JP2014197349A (en) * | 2013-03-29 | 2014-10-16 | キヤノン株式会社 | Picture processing device, information processing method, and program |
-
2015
- 2015-11-30 JP JP2015234265A patent/JP6614941B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009230760A (en) * | 2008-03-20 | 2009-10-08 | Sharp Corp | Image processor and image processing method |
JP2014197349A (en) * | 2013-03-29 | 2014-10-16 | キヤノン株式会社 | Picture processing device, information processing method, and program |
Also Published As
Publication number | Publication date |
---|---|
JP6614941B2 (en) | 2019-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6029344B2 (en) | Image processing apparatus, image processing method, and program | |
US10762401B2 (en) | Image processing apparatus controlling the order of storing decompressed data, and method thereof | |
JP2008276407A (en) | Image processor and method therefor | |
JP2012200934A (en) | Image data processing system | |
JP2017024321A (en) | Image processor, image formation device, and image processing time prediction method and program | |
JP6643056B2 (en) | Image processing apparatus, image processing method, data generation method, and program | |
JPH1131052A (en) | Document processing system | |
JP6614941B2 (en) | Image processing apparatus and image processing method | |
EP3584761A1 (en) | Image forming apparatus capable of changing thickness of character, control method therefor, and storage medium storing control program therefor | |
JP6904717B2 (en) | Image processing equipment, its control method, and programs | |
JP2008107970A (en) | Image forming device | |
JP2005324425A (en) | Image forming apparatus and control program therefor | |
JP6323209B2 (en) | Image processing apparatus and program | |
JP2016206934A (en) | Image processing device, image processing method and program | |
JP6755644B2 (en) | Character processing device, character processing method, character processing program | |
US20190004755A1 (en) | Image processing apparatus that performs rendering processing, method of rendering processing, and storage medium | |
JP2021022024A (en) | Image processing system, image processing method and program | |
JP2013122661A (en) | Image processing device, image processing method and program | |
US9824305B2 (en) | Printing control device, image processing method, and storage medium | |
US10755150B2 (en) | Image processing apparatus that performs pixel synthesis processing and image processing method | |
JPH10151815A (en) | Printing-processing apparatus | |
JP2009101519A (en) | Image forming apparatus and image forming system | |
JP4428264B2 (en) | Image processing apparatus and image processing method | |
US9619740B2 (en) | Image processing apparatus and image processing method | |
JP2014197349A (en) | Picture processing device, information processing method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181121 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190927 |
|
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: 20191008 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191105 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6614941 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |