JP2017001387A - Information processing apparatus, information processing method, and program - Google Patents
Information processing apparatus, information processing method, and program Download PDFInfo
- Publication number
- JP2017001387A JP2017001387A JP2016081489A JP2016081489A JP2017001387A JP 2017001387 A JP2017001387 A JP 2017001387A JP 2016081489 A JP2016081489 A JP 2016081489A JP 2016081489 A JP2016081489 A JP 2016081489A JP 2017001387 A JP2017001387 A JP 2017001387A
- Authority
- JP
- Japan
- Prior art keywords
- data
- rendering
- decoding
- band
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
- Record Information Processing For Printing (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
【課題】 PDLデータから領域毎に作成した中間データに基づいて、レンダリング処理する場合に、領域間に生じるレンダリング処理の待機時間を削減する。【解決手段】 入力される印刷データをラスタ画像データに変換するための中間データを生成する情報処理装置であって、前記印刷データに基づいて、前記画像に描画される画像オブジェクトの符号化された圧縮データをデコードするデコード手段と、前記保持手段が保持する前記画像オブジェクトの画像データを参照しながら、前記画像の領域毎にレンダリングすることによりラスタ画像データを生成するレンダリング手段とを有し、前記デコード手段は、前記レンダリング手段が注目領域のラスタ画像データを生成している間に、前記注目領域に描画される画像オブジェクトの圧縮データと、前記注目領域の後続の領域に描画される画像オブジェクトの圧縮データの少なくとも一部をデコードする。【選択図】 図1PROBLEM TO BE SOLVED: To reduce a waiting time of a rendering process which occurs between areas when a rendering process is performed based on an intermediate data created for each area from PDL data. An information processing device that generates intermediate data for converting input print data into raster image data, in which an image object drawn on the image is encoded based on the print data. It has a decoding means for decoding compressed data and a rendering means for generating raster image data by rendering each region of the image while referring to the image data of the image object held by the holding means. The decoding means is the compressed data of the image object drawn in the attention area and the image object drawn in the subsequent area of the attention area while the rendering means is generating the raster image data of the attention area. Decode at least part of the compressed data. [Selection diagram] Fig. 1
Description
本発明は、ページ記述言語(PDL)で記述されたデータから画像データを生成する情報処理装置および情報処理方法に関する。 The present invention relates to an information processing apparatus and an information processing method for generating image data from data described in a page description language (PDL).
記録媒体に画像を印刷する場合、ページ記述言語(PDL:page description language)で記述された印刷対象のデータをネットワーク等の通信媒体を介して受信する。プリンタ等の画像形成装置で出力するため、PDLで記述されたデータに対してRIP(Raster image processor)処理を実行することにより、PDLで記述されたデータは、ラスタ画像データに変換される。具体的にはまず、印刷する画像形成装置(プリンタ)専用のインタプリタが、受信したPDLによって記述されたデータを解釈し、中間データ作成部が、解釈した結果に基づいて中間データを作成する。さらに、中間データに基づいてレンダリング処理が実行され、ラスタ画像データが生成される。以上のようRIP処理によって生成されるラスタ画像データは、所定の画像処理を施され、画像形成装置が印刷可能な印字データに変換され、プリンタが印刷データに基づいて印刷する。このようなプリンタシステムにおいて、中間データを格納するメモリ量を削減するために、1ページ分の画像データを帯状に分割した複数の領域毎に、中間データを生成する方法が知られている。 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 the intermediate data creation unit creates intermediate data based on the interpreted result. Further, a rendering process is executed based on the intermediate data, and raster image data is generated. The raster image data generated by the RIP processing as described above is subjected to predetermined image processing, converted into print data that can be printed by the image forming apparatus, and the printer prints based on the print data. In such a printer system, in order to reduce the amount of memory for storing intermediate data, a method of generating intermediate data for each of a plurality of areas obtained by dividing image data for one page into strips is known.
特許文献1には、領域毎に中間データを分割する際に、画像オブジェクトが領域の境界に跨っている場合、隣接する領域分が一部重複するように分割し、中間データを作成する方法について開示している。また特許文献2では、画像オブジェクトが複数の領域に跨る場合には、分割する位置を変更する方法が開示されている。
RIP処理において、レンダリング処理する対象の領域に、圧縮された画像データがオブジェクトとして含まれている場合、必要な圧縮データを伸張した後に、レンダリング処理が開始される。そのため特許文献1や特許文献2に開示された方法によれば、領域毎に作成された中間データに基づくレンダリング処理をするたびに、必要な画像データが伸張されるのを待たなければならないという課題が生じる。
In the RIP processing, when compressed image data is included as an object in a region to be rendered, rendering processing is started after decompressing necessary compressed data. Therefore, according to the methods disclosed in
そこで本発明は、領域毎に作成された中間データに基づいてレンダリング処理する場合に、領域間に生じるレンダリング処理の待機時間を削減することを目的とする。 Therefore, an object of the present invention is to reduce the waiting time of rendering processing that occurs between regions when rendering processing is performed based on intermediate data created for each region.
上記課題を解決するため本発明は、入力される印刷対象の画像を表す印刷データをラスタ画像データに変換する情報処理装置であって、前記印刷データに基づいて、前記画像に描画される画像オブジェクトの符号化された圧縮データをデコードするデコード手段と、前記デコード手段が前記圧縮データをデコードした結果得られる前記画像オブジェクトの画像データを保持する第1の保持手段と、前記保持手段が保持する前記画像オブジェクトの画像データを参照しながら、前記画像の領域毎にレンダリングすることによりラスタ画像データを生成するレンダリング手段とを有し、前記デコード手段は、前記レンダリング手段が注目領域のラスタ画像データを生成している間に、前記注目領域に描画される画像オブジェクトの圧縮データと、前記注目領域の後続の領域に描画される画像オブジェクトの圧縮データの少なくとも一部をデコードすることを特徴とする。 In order to solve the above problems, the present invention provides an information processing apparatus for converting print data representing an input image to be printed into raster image data, and an image object drawn on the image based on the print data Decoding means for decoding the encoded compressed data, first holding means for holding image data of the image object obtained as a result of the decoding means decoding the compressed data, and the holding means for holding Rendering means for generating raster image data by rendering each area of the image with reference to image data of the image object, and the decoding means generates raster image data of the attention area by the rendering means While the compressed data of the image object drawn in the attention area, Serial characterized by decoding at least a portion of the compressed data of the image object to be drawn in a subsequent region of the region of interest.
本発明によれば、領域毎に作成した中間データに基づいて、レンダリング処理する場合に、領域間に生じるレンダリング処理の待機時間を削減することができる。 According to the present invention, when rendering processing is performed based on intermediate data created for each region, it is possible to reduce the waiting time of rendering processing that occurs between regions.
以下、添付図面を参照して、本発明の実施形態を詳細に説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。 Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In addition, the structure shown in the following Examples is only an example, and this invention is not limited to the structure shown in figure.
<第1実施形態>
(全体構成)
図1は、第1実施形態に適用可能な画像形成装置100の全体構成を示すブロック図である。画像形成装置100は、CPU101、ROM102、RAM103、入力部104、画像処理部107、出力部108を有する。また画像形成装置100は、情報処理装置としてPDL処理部105とラスタ画像データ生成部を有し、画像形成装置100における各構成はバス109を介して接続されている。
<First Embodiment>
(overall structure)
FIG. 1 is a block diagram showing an overall configuration of an
CPU101は、ROM102に格納されたプログラムを読み出し実行することにより、演算処理や画像形成装置100の各部の動作を統括的に制御する。RAM(Random Access Memory)103は、読み出し及び書き込み可能なメモリであり、画像データなどの各種データを一時的に格納するための記憶媒体である。入力部104は、ホストPCやサーバ(不図示)から転送されてくるページ記述言語で記述された印刷対象のデータ(以降、PDLデータ)を受信し、RAM103に格納する。
The
PDL処理部105は、入力部104が受信したページ単位のPDLデータを解析し、中間データに変換する。PDLデータは、1ページ単位で印刷対象のデータにおけるオブジェクト情報やオブジェクトが描画される位置を示す情報を含む。印刷対象のデータとして、図2(a)に示す印刷ページ200を例に説明する。印刷ページ200には画像オブジェクト201と、画像オブジェクト202とテキストオブジェクト203が描画されている。印刷ページ200の場合、PDLデータには、各オブジェクトを再現するための情報とオブジェクト毎の描画される位置が含まれている。具体的には、画像オブジェクト201および202の圧縮されたデータ(以降、圧縮データ)や、テキストの色や種類を示すテキスト情報、背景色等の情報を含むデータである。PDLデータは一般に、様々な形式のファイルとして存在する。そのためPDL処理部105は、PDLデータを画像形成装置100におけるラスタ画像データ生成部106が処理可能な形式の中間データに変換する。このときPDL処理部105は、ラスタ画像データ生成部106における後述のレンダリング処理やデコード処理のタイミングを制御するためのスケジュールデータも作成し、中間データの一部として出力する。
The
ラスタ画像データ生成部106は、PDL処理部105が作成した中間データに基づいて、ラスタ画像データを生成する。なおPDL処理部105およびラスタ画像データ生成部106の詳細については後述する。
The raster image
画像処理部107は、ラスタ画像データ生成部106が生成したラスタ画像データに対して所定の画像処理を施して印刷データを生成する。出力部108は、インクジェット方式や電子写真方式を用いたプリンタエンジンである。出力部108は、画像処理部107を介して生成された印刷データに従って、記録媒体上に画像を形成する。
The
(ラスタ画像データ生成部106の詳細な構成)
まず、ラスタ画像データ生成部106の詳細な構成について、図3を用いて説明する。第1実施形態においてラスタ画像データ生成部106は、制御部301、レンダリング部302、デコード部303を有する。またラスタ画像データ生成部106は、データを記憶するためのデコードバッファ304を持つ。本実施形態においてレンダリング部302およびデコード部303は、CPU101がコンピュータプログラムを実行することにより、機能する。ただしこの例に限定されず、その一部または全部をASICや電子回路等の専用のハードウェアで構成するようにしてもよい。
(Detailed Configuration of Raster Image Data Generation Unit 106)
First, a detailed configuration of the raster image
レンダリング部302は、中間データに基づいて、予め設定されたバンド毎にレンダリング処理を行う。図2(b)に示すように、識別情報として番号1〜6が割り当てられた領域が、レンダリング部302の処理単位であり、ここではレンダリングバンドと呼ぶ。レンダリングバンドとは、印刷ページ200の出力空間において、高さは所定の画素数分、幅はページ幅分の領域である。レンダリングバンドの高さは、処理速度や生成したラスタ画像データを保存可能なメモリ容量に応じて設定されている。
The
デコード部303は、印刷ページ上に描画されるオブジェクトのうち、画像オブジェクトなど所定の符号化形式によって圧縮された画像データ(以降、圧縮データ)をデコードする。第1実施形態では、画像オブジェクト201と202の圧縮データを必要に応じて読み出し、予め設定された所定の高さ分ごとにデコードする。ここで画像オブジェクトがデコードされる単位領域をデコードバンドと呼ぶ。図2(b)に識別情報a、b、c、d、eで示された5つの領域がデコード部303における処理単位を表している。画像オブジェクト201は、デコードバンドaとbの2つの領域に分割され、画像オブジェクト202はデコードバンドc、d、eでの3つの領域に分割されていることがわかる。このようにデコードバンド毎にデコードすることにより、例えばレンダリングバンド1を処理する際には、画像オブジェクト201全体ではなく、その半分の面積分をデコードすればよい。従って、デコードバンド毎にデコードすることは、デコード処理の効率化とデコードバッファ304の削減につながる。なお、デコードバンドの高さは、デコードした画像データを格納するデコードバッファ304の容量に応じて設定されている。デコードバッファ304は、デコードバンド毎にデコードされた画像データを保存することができる。第1実施形態においてデコードバッファ304は、デコードバンド3つ分のデータを格納可能な容量を保持している。
The
ここで、図4を用いて、レンダリングとデコード処理の処理順を説明する。レンダリング部302が、処理対象のレンダリングバンドのレンダリング処理を開始できるのは、処理対象のレンダリングバンドに必要な圧縮データが全てデコードされた後である。つまり、レンダリングバンド1に必要なデコードバンドaのデコードが完了した後、レンダリング部303はレンダリングバンド1のレンダリング処理を開始できる。
Here, the processing order of rendering and decoding processing will be described with reference to FIG. The
一方デコード部は、レンダリング部302がレンダリングしている間、処理中のレンダリングバンドに描画される画像データを、デコードバッファ304から書き換えたり削除したりしてはならない。デコード部303がデコードバンドcのデコードが完了したとき、デコードバッファ304にはデコードバンドa、b、cの画像データが格納され、空き容量がない。レンダリング部302が処理中のレンダリングバンド2にはデコードバンドa、bの画像データが必要であり、かつデコードバンドcの画像データは次のレンダリング処理の際に必要となる。そこでデコード部303は、レンダリング部303によるレンダリングバンド2のレンダリング処理が完了するのを待つ。レンダリング部303がレンダリングバンド3の処理に進むと、デコードバンドdのデコードを開始する。デコード部303は、デコードしたデコードバンドdの画像データを、デコードバッファaの画像データが格納された領域に上書きする。
On the other hand, the decoding unit should not rewrite or delete image data drawn in the rendering band being processed from the
以上のように、レンダリング処理とデコード処理との間には、処理開始が可能かどうかについて依存関係がある。なお、デコードバッファ304がデコードバンド3つ分の容量をもつということは、1つのレンダリングバンドに対して3つのデコードバンドの画像データを描画できることを意味する。そのためデコードバッファ304は、1つのレンダリングバンドに描画されるデコードバンドの最大数とメモリ容量のコストとを考慮して、その容量が設計されている。
As described above, there is a dependency between the rendering process and the decoding process as to whether the process can be started. Note that the fact that the
制御部301は、中間データに従って、レンダリング部302およびデコード部303それぞれにおける処理を制御する。中間データには、各レンダリングバンドの処理に必要なデコードバンドを示す情報や、各デコードバンドが不要になるレンダリングバンドを示す情報が含まれている。制御部301は、中間データからこれらの情報を読み出し、レンダリング部302やデコード部303に処理の開始を指示したり、処理の完了通知を受け取る。中間データについては後述する。
The
(PDL処理部105の詳細な構成)
PDL処理部105の詳細な構成と中間データについて、図5を用いて説明する。PDL処理部105は、CPU101がコンピュータプログラムを実行することにより、各処理部として機能する。PDL処理部105は前述の通り、1ページ分のPDLデータに基づいて、ラスタ画像データ生成部106が処理可能な形式である中間データを作成する。PDL処理部105はPDLインタプリタ501と中間データ作成部502を有する。PDLインタプリタ501は、PDLデータを解釈して描画命令に変換し、中間データ作成部502に出力する。
(Detailed configuration of the PDL processing unit 105)
A detailed configuration and intermediate data of the
中間データ作成部502はレンダリングデータ作成部503、圧縮データ作成部504、スケジュールデータ作成部505を有する。レンダリングデータ作成部503は、PDLインタプリタ501が解釈した描画命令に基づいて、レンダリングバンド毎にレンダリング部302が処理可能な形式のレンダリングデータ511を作成する。前述の通り、印刷ページの出力空間における主走査方向に印刷ページ幅、副走査方向に所定の画素数分(ここでは64画素)の領域をレンダリングバンドの単位とする。
The intermediate
レンダリングデータ511には、レンダリングバンドに含まれる領域情報と、各領域にオブジェクトを描画するためのオブジェクト情報が含まれる。前述の通りオブジェクト情報としては、領域内を単色で描画する為の色情報や、領域内に画像オブジェクトを描画する為の画像情報などが生成されている。なお、画像オブジェクトが複数のレンダリングバンドに跨っている場合、両方のレンダリングバンドに対応するレンダリングデータに、その画像オブジェクトの情報が含まれる。ただし、ラスタ画像データにおける画像オブジェクトを描画する位置や画像オブジェクトのうち描画に用いる領域がレンダリングバンド毎に異なっている。図2に示す例では、レンダリングデータ作成部503は、6つのレンダリングバンド毎のレンダリングデータを作成する。レンダリング部302は、制御部301の指示により指定されたレンダリングデータを順に読み出し、レンダリング処理することでラスタ画像データを生成する。
The
圧縮データ作成部504は、描画命令に従って、様々なフォーマットによって圧縮されている圧縮データを読み込み、デコードバンド毎にデコード部303が処理可能な形式の圧縮データ512に変換する。ここでは、圧縮データとして保持されている画像データ内の二次元空間において、横方向にイメージ幅、縦方向に64画素の領域をデコードバンドとする。図2に示す印刷ページ200については、圧縮データ作成部504は、各画像オブジェクトを分割して、デコードバンドa、b、c、d、eの圧縮データ512を作る。
The compressed
スケジュールデータ作成部505は、描画命令に従って、レンダリング処理とデコード処理のタイミングを制御するためのスケジューリングデータを作成する。スケジューリングデータには、レンダリング部303における処理のタイミングを制御するためのレンダリングスケジュール513と、デコード部303がデコードするタイミングを制御するためのデコードスケジュール514がある。スケジュールデータ作成部505は、デコードバッファ管理部506、依存関係決定部507、描画位置算出部508、タスク作成部509、先行可否判定部510を有する。
The schedule
レンダリングスケジュール513は、レンダリングの処理順に並べられ、レンダリングバンドの識別情報を示すタスクと、各タスクに紐付けられたデコードバンドの識別情報を示す待ちIDとからなる。レンダリングタスクは、レンダリング部303が処理すべきレンダリングバンドの識別情報を示す。また待ちIDは、レンダリング部303が処理対象のレンダリングバンドに対する処理を開始する前に、デコード部304によるデコードが完了すべき最後のデコードバンドの識別番号を示している。例えば図2(b)に示すレンダリング処理の場合、レンダリングバンド3には、デコードバンドbとcの画像データが描画される。画像オブジェクトは、描画される位置に従って描画される順にデコードされるので、後にデコードされるデコードバンドcがレンダリングバンド3のタスクに対応する待ちIDとして対応付けられる。
The
図6(a)に、図4に示すレンダリング処理のためのレンダリングスケジュールを示す。待ちIDが0であるレンダリングタスクについては、そのレンダリングバンドに対するレンダリングを、即座に実行させられることを意味する。レンダリングスケジュールは、ラスタ画像データ生成部106における制御部301によって順に読み込まれる。制御部301は、レンダリングスケジュール513を参照し、処理対象のレンダリングバンドに対応する待ちIDのデコード処理が完了したことを確認すると、レンダリング部302に処理対象のレンダリングバンドに対するレンダリング処理の開始を指示する。
FIG. 6A shows a rendering schedule for the rendering process shown in FIG. For a rendering task whose waiting ID is 0, it means that rendering for the rendering band can be executed immediately. The rendering schedule is sequentially read by the
描画位置算出部508はまず、PDLインタプリタ201から得られる描画命令に基づいて、ラスタ画像データにおける画像オブジェクトの描画位置を計算する。タスク作成部509は、描画するオブジェクトが圧縮データとして保持されている場合、計算した描画位置に基づいて各レンダリングバンドに描画されるデコードバンドを決定する。タスク作成部509は、決定したデコードバンドを各待ちIDとして対応付けてタスクを作成し、レンダリングスケジュール513を出力する。
The drawing
一方デコードスケジュール510は、デコードバンドの識別情報を示すデコードタスク510aと、各デコードタスクa510に紐付けられた、レンダリングバンドの識別情報を示す待ちID510bとからなる。待ちID510bが0を示すとき、対応するデコードタスク510aは即座に実行させられることを意味する。待ちID510bが0以外を示すときは、待ちIDが示すレンダリングバンドのレンダリングタスク509aを完了すると、実行させられることを意味する。
On the other hand, the
デコードスケジュール510は、制御部301によって上から順に読みこまれる。制御部は、読みこんだデコードバンドに対応する待ちIDが示すレンダリングバンドのレンダリング処理が完了したことを検知すると、読みこんだデコードバンドのデコード処理の開始を指示する。
The
依存関係決定部507は、PDLインタプリタ201から得られる描画命令に基づいて、ラスタ画像データにおける画像オブジェクトの描画終了位置を計算する。依存関係決定部508は、計算した描画終了位置に基づいて、各デコードバンドが参照されなくなるレンダリングバンドを決定し、デコードバンドとレンダリングバンドとの依存関係として記憶する。デコードバッファ管理部506は、デコードバッファ304の保持可能なデコードバンド数を示す情報を予め保持している。デコードバッファ管理部506は、デコードバッファ304の使用状況(空き状況)を管理することが出来る。タスク作成部509は、デコードバッファ304の空き状況に基づいて、デコードバンドの識別情報を示す各タスクに、タスクを開始可能な合図となるレンダリングバンドを対応づけてタスクを作成する。
The dependency
図2(b)に示す印刷ページの場合、各デコードバンドとそのデコードバンドが参照されなくなるレンダリングバンドとの対応(依存関係)は、図6(b)に示すように算出される。なおデコードバンドは、描画される位置に基づいて上方から順に並べられる。例えば、デコードバンドaは、一番目にデコードされるデコードバンドであり、レンダリング処理がレンダリングバンド3に進むと、デコードバッファ304上のデコードバンドaを格納していた領域に上書きできる。タスク作成部509は、各デコードバンドが参照されなくなるレンダリングバンドに基づいて、各デコードバンドの待ちIDを決定する。その結果を図6(c)に示す。第1実施形態においてデコードバッファ304は、3つのデコードバンドを格納することができるので、デコードバンドa、b、cはデコードバッファ304が空くのを待たずに、そのデコードした結果を格納することできる。従ってタスク作成部509は、デコードバンドa、b、cについては待ちIDとして0を決定する。デコードバンドdは、デコードバンドaが解放可能になったとき、デコードバッファ304に格納できる。デコードバンドaは、レンダリングバンド3のレンダリング処理に進むと上書き可能なので、タスク作成部509は、デコードバンドdの待ちIDとしてレンダリングバンド2を決定する。
In the case of the print page shown in FIG. 2B, the correspondence (dependency relationship) between each decoding band and the rendering band in which the decoding band is not referred to is calculated as shown in FIG. 6B. Note that the decode bands are arranged in order from the top based on the drawing position. For example, the decode band a is a decode band that is decoded first, and when the rendering process proceeds to the render
上記のように、中間データ作成部502は中間データを作成する。作成された中間データは、中間データバッファ507に格納される。
As described above, the intermediate
(分割した領域毎に中間データを作成する場合について)
中間データ506は前述の通り、レンダリングデータ、圧縮データ、スケジュールデータからなり、そのデータ量は膨大になってしまう場合がある。そこで中間データバッファ506のメモリ容量を削減するため、中間データ作成部502が印刷ページに対して、領域毎に中間データを作成する場合について説明する。図7(a)に、印刷ページ200を水平方向に分割して得られる、領域1と領域2を示す。
(When creating intermediate data for each divided area)
As described above, the
ここでまず、印刷ページを分割せずに中間データを作成した場合と同様の方法により、領域毎に中間データを作成した場合について、図7(b)を用いて説明する。中間データ作成部502は、領域1のPDLデータを解釈して中間データを作成し、中間データバッファ507に格納する。領域1については、3つのレンダリングバンドに対応するレンダリングデータ511が作られる。画像オブジェクト201の全領域に対応するデコードバンドa、bと画像オブジェクト202が部分的に描画されるデコードバンドcの3つに対応して、3つの圧縮データ512が作られる。ラスタ画像データ生成部106は、領域1の中間データに基づいて、領域1を構成するレンダリングバンド1、2、3およびデコードバンドa、b、cについて、デコードとレンダリング処理を実行する。最後のタスクであるレンダリングバンド3のレンダリング処理が開始されると、中間データバッファ506は上書き可能になる。
First, a case where intermediate data is created for each area by the same method as that when intermediate data is created without dividing a print page will be described with reference to FIG. The intermediate
中間データ作成部502は、領域2のPDLデータを解釈して中間データを作成し、中間データバッファ507に書き込む。領域2については、3つのレンダリングバンドに対応するレンダリングデータ511と、画像オブジェクト202の全領域であるデコードバンドc、d、eに対応して、3つの圧縮データ212が作られる。ラスタ画像データ生成部106は、領域2の中間データを中間データバッファ506から読み出し、レンダリングバンド4、5、6およびデコードバンドc、d、eについてレンダリング処理およびデコード処理を実行する。
The intermediate
以上のように、領域毎に中間データを作成した場合、領域2に対するレンダリング処理は、最初にレンダリング処理されるレンダリングバンドに必要なデコードバンドのデコード処理から始めなければならない。その結果、1ページ分の印刷ページを領域毎に中間データを作成すると、分割せずに中間データを作成した場合よりも、描画に必要な画像オブジェクトがデコードされるまでの待ち時間が増えてしまう場合がある。この領域2におけるデコード処理の待ち時間は、図4に示す分割しない場合に比べて、印刷するまでの処理時間が長くなり、オーバーヘッドが生じてしまう。
As described above, when intermediate data is created for each area, the rendering process for the
そこで第1実施形態では、1ページ分の印刷ページについて、領域毎に中間データを作成した場合、デコードバッファの使用状況に応じて、中間データに含まれない領域に必要なPDLデータを参照してスケジュールデータを作成する。つまり中間データを作成しようとする領域を注目領域とすると、注目領域以外の領域に描画される画像オブジェクトの少なくとも一部のデコードバンドを先行してデコードさせる。そのため先行可否判定部510は、次に処理すべき領域のPDLデータを参照し、次に処理すべき領域の最初にレンダリングされるレンダリングバンドに必要な圧縮データを先行してデコード可能かどうかを判定する。図8は、スケジュールデータ作成部505が領域毎に中間データを作成した結果の一例を示す。
Therefore, in the first embodiment, when intermediate data is created for each area for one print page, PDL data necessary for an area not included in the intermediate data is referred to according to the use state of the decode buffer. Create schedule data. That is, if an area in which intermediate data is to be created is an attention area, at least a part of the decoding band of an image object drawn in an area other than the attention area is decoded in advance. Therefore, the preceding
タスク作成部509は、先行可否判定部510による判定結果に応じて、次に処理すべき領域のデコードされる圧縮データを、先行してデコードするためのデコードスケジュールを作成する。また圧縮データは、先行してデコードするデコードバンドの圧縮データを先行デコードバンドとして作成する。つまり第1実施形態では、領域毎に中間データを作成した場合、次に中間データを作成される領域のデコードバンドおよび次に中間データを作成される領域のデコードを識別情報とする先行タスクが、中間データに含まれることになる。圧縮データに含まれる先行デコードバンドは、注目領域に描画されない画像オブジェクトの圧縮データである。
The
(情報処理装置における全体の処理の流れ)
ここで、情報処理装置として機能するPDL処理部102及びラスタ画像データ生成部106による全体の処理の流れを説明する。図9は、PDL処理部102及びラスタ画像データ生成部106による全体の処理のフローチャートである。CPU101が図9に示すフローチャートを実現できるプログラムを読み出し、制御することにより、各処理部の機能が実現される。
(Overall processing flow in the information processing apparatus)
Here, an overall processing flow by the
まずステップS901においてPDL処理部102に、印刷対象のPDLデータが入力される。ステップS902においてPDL処理部102は、予め定められた領域分のPDLデータに基づいて、領域毎に中間データを作成し出力する。まず、PDLインタプリタ501は、PDLデータのうち一部領域のPDLデータを解釈し、描画命令に変換する。中間データ作成部502は、PDLインタプリンタ501によって解釈された描画命令に従って、中間データを作成する。中間データ作成処理については、詳細を後述する。作成した中間データは、RAM103の中間データバッファ507に格納する。PDL処理部102は、領域の中間データを作成すると、CPU101に完了通知を送る。
In step S <b> 901, PDL data to be printed is input to the
ステップS903において、ラスタ画像データ生成部106の制御部301は、中間データバッファ507から、中間データを読み込む。ステップS904において制御部301は、読みこんだ中間データに含まれるレンダリングスケジュールを参照し、処理すべきタスクを読みこみ、処理対象のレンダリングバンドを決定する。制御部301は、タスクの待ちIDに基づいて、処理対象のレンダリングバンドのレンダリング処理を開始できるかどうか判定する。待ちIDが0か、または待ちIDに示されたデコードバンドのデコード処理が完了している場合、制御部301は、ステップS908に進む。待ちIDに示されたデコードバンドのデコード処理が完了していない場合、制御部301はステップS905に進む。
In step S <b> 903, the
ステップS905において制御部301は、処理対象のタスクの待ちIDに記載されたデコードバンドまでのデコード処理の開始を、デコード部303に指示する。ステップS906においてデコード部303は、制御部301による指示に従って、中間データに含まれる圧縮データを読み込み、指示されたデコードバンドまで順にデコードする。ステップS907においてデコード部303は、デコードによって得られる画像データをデコードバッファ304に格納する。
In step S905, the
制御部301は、処理対象タスクの待ちIDが示すデコードバンドのデコード処理が完了したことを検知すると、ステップS908においてレンダリング部302にタスクに示された識別情報のレンダリングバンドのレンダリング処理を開始させる。ステップS909においてレンダリング部302は、制御部301によって指示されたレンダリングバンドのレンダリングを開始する。処理対象のレンダリングバンドにデコードされた画像データが必要なときは、デコードバッファ304から読み出す。ステップS910においてレンダリング部302は、レンダリング処理により生成したラスタ画像データを出力する。
When detecting that the decoding process of the decoding band indicated by the waiting ID of the processing target task is completed, the
ステップS908において制御部301はレンダリング開始の指示をすると、ステップS911に進み、開始指示したレンダリング処理が最後かどうかを判定する。最後である場合、デコード部303は全てのデコードバンドのデコードが完了していることを意味する。また、レンダリング部302が最後のレンダリングバンドのレンダリングデータを読み出せば、中間データバッファ507は上書き可能になる。そこで制御部301は、開始指示したレンダリングが最後のレンダリングバンドである場合、完了通知を送信する。
In step S908, when the
ステップS913においてPDL作成部102は、印刷ページの全領域について、中間データを作成したかどうかを判定する。中間データを作成していない領域があれば、ステップS902に戻り、PDL処理部102は次の領域の中間データを作成する。
In step S913, the
(中間データ作成部502における処理の流れ)
ステップS902における中間データ作成部502が実行する中間データ作成処理について、図10のフローチャートを用いて詳細に説明する。図11はさらに、タスク作成部509による先行タスク作成処理および圧縮データ作成部504による先行デコードバンド作成処理のフローチャートを示す。
(Processing flow in the intermediate data creation unit 502)
The intermediate data creation process executed by the intermediate
まずステップS1001において、CPU101の制御により、中間データ作成部502はレンダリングデータおよび圧縮イメージデータの作成を開始する。中間データ作成部502は、前述の通り、印刷ページを領域1と領域2に分割して、中間データを作成する。以降、領域1の中間データを作成するとする。ステップ1002においてレンダリングデータ作成部503は、予め定められた高さ分のレンダリングバンド毎に、レンダリングデータを作成する。
First, in step S1001, the intermediate
ステップS1003において圧縮データ作成部504は、ラスタ画像データ上に描画すべきオブジェクトがあるか検出する。画像オブジェクトがなければ、レンダリングデータのみが中間データとなり、ステップS1016に進む。画像オブジェクトがある場合、ステップS1004に進み、領域1のように1つ目の領域の場合はS1006に進む。圧縮データ作成部504は、検出した画像オブジェクトを予め定められた高さ分のデコードバンド毎の圧縮データに変換する。ここまでの処理により、領域1に対しては、3つのレンダリングバンドのレンダリングデータと、領域1に描画される3つのデコードバンドの圧縮データが作成される。ステップS1004で、領域2のように前の領域の後に処理される場合はステップS1005に進み、前の領域でデコード済みのデコードバンドがデコードバッファ304にあるかを検出する。デコードバッファ管理部506に記憶されているデコードバッファ使用状況を取得することで、検出した画像オブジェクトが前の領域で先行してデコードされているかを検出する。先行してデコードされている画像オブジェクトは、圧縮データ作成の対象から外し、デコードされていないものを対象に、ステップS1006で圧縮データに変換する。
In step S1003, the compressed
ステップS1007においてレンダリングデータおよび圧縮データの作成を完了したことが検知されると、ステップS1008に進み、スケジュールデータ作成部505に対してスケジュールデータの作成開始が指示される。
If it is detected in step S1007 that the creation of rendering data and compressed data has been completed, the process advances to step S1008 to instruct the schedule
ステップS1009においてまず、描画位置算出部508はオブジェクトが描画される位置を算出する。ステップS1010においてタスク作成部509は、各レンダリングバンドについて、最後に描画されるデコードバンドを待ちIDとして対応づける。例えば図2(b)に示すレンダリングバンド2については、デコードバンドbの方がデコードバンドaよりもラスタ順で後方に位置するため、レンダリングバンド2には、デコードバンドbを対応づけ、待ちIDとして設定する。タスク作成部509は、全てのレンダリングバンドをタスクとして、待ちIDを設定したら、レンダリングスケジュールとして出力する。
In step S1009, the drawing
ステップS1011において依存関係決定部815は、デコードバンドとレンダリングバンドとの依存関係を決定する。依存関係とは、デコードバンドと、そのデコードバンドの画像データを参照しなくなるレンダリングバンドとを対応関係を意味する。依存関係決定部507は、各デコードバンドの描画が終了する位置を参照し、終了位置のレンダリングバンドの次にレンダリングされるレンダリングバンドを、対応づける。
In step S <b> 1011, the dependency relationship determination unit 815 determines the dependency relationship between the decode band and the rendering band. The dependency relationship means a correspondence relationship between a decoding band and a rendering band that does not refer to image data of the decoding band. The dependency
ステップS1012においてタスク作成部509は、描画される順にデコードバンドを選択し、選択したデコードバンドの識別情報をタスクとして設定する。ステップS1013においてタスク作成部509は、デコードバンドとレンダリングバンドとの依存関係と、デコードバッファ管理部506が管理しているデコードバッファ304の空き状況を参照し、選択したデコードバンドの待ちIDを決定する。デコードバッファ304に空き領域がある場合は、選択したデコードバンドはレンダリングの完了を待つ必要はないので、待ちIDが0となる。また、デコードバッファ304に空きがない場合は、依存関係を参照して、どのレンダリングバンドのレンダリング処理が完了すれば空き領域ができるかを検出し、空き領域ができるレンダリングバンドを待ちIDとして決定する。例えば、デコードバンドdを選択した場合、デコードバンドa、b、cの画像データがデコードバッファ304に格納され、空き容量がない。依存関係を参照すると、格納されているデコードバンドのうち、デコードバンドaはレンダリングバンド3に処理が進むと参照されなくなることがわかる。そこで、タスク作成部509は、デコードバンドdのタスクにはレンダリングバンド3を待ちIDとして決定する。
In step S1012, the
ステップS1014においてデコードバッファ管理部506は、決定されたデコードタスクと待ちIDに応じて、デコードバッファ304の使用状況を更新する。デコードバッファ管理部506は、デコードバッファ304が記憶可能なデコードバンド数を示す情報を予め保持している。ステップS1013においてデコードタスクの待ちIDが0に決定された場合、デコードタスクが開始されたタイミングで空き容量から1減ることを記憶しておく。また、ステップS1013においてデコードタスクの依存関係を参照し、参照されなくなるレンダリングバンドが完了したタイミングで、そのレンダリングバンドに依存関係があるデコードバンドの数分、空き容量を増やす。
In step S1014, the decode
ステップS1015においてタスク作成部509は、全てのデコードバンドをデコードタスクとして選択したかどうかを判定する。全てのデコードバンドのタスクを作成していない場合、ステップS1012に戻る。全てのデコードバンドのタスクを作成した場合、ステップS1016にすすむ。
In step S1015, the
ステップS1017においてタスク作成部509は、次に中間データを作成される領域に描画される画像オブジェクトを、先行してデコードするための先行タスクを作成する。先行タスク作成処理について、詳細は後述する。ここで作成される先行タスクは、図8に示すように、デコードスケジュールの一部としてステップS1013において作成されたタスクの後続に配置される。
In step S1017, the
ステップ1018において中間データ作成部502は、以上の処理によって作成される中間データを中間データバッファ507に送信し、領域1の中間データの作成を完了する。
In
ステップS1016における先行タスクの作成処理のフローについて、図11を用いて説明する。まずステップS1102においてデコードバッファ管理部506は、中間データを作成した領域の全てのデコードタスクが完了するタイミングにおける、デコードバッファの使用状況を更新する。具体的には、領域1において、全てのデコードタスクが完了するのは、デコードcのデコードが完了した時、レンダリングバンド2のタスク処理中である。この時、レンダリングバンド2には、デコードバンドaおよびbの画像データが必要なので、上書き可能な領域はない。そこでデコードバッファ管理部508は、デコードcのデコードが完了した時のバッファの空き容量として0を更新する。
The flow of the preceding task creation process in step S1016 will be described with reference to FIG. First, in step S1102, the decode
次にステップS1103においてタスク作成部509は、次に中間データを作成する領域の描画命令を参照し、次に中間データを作成する領域に描画される画像オブジェクトを、先頭のレンダリングバンドから順に画像オブジェクトが検出されるまで、検出する。本実施形態の場合、領域2の描画命令を参照し、領域2の1バンド目にデコードバンドc、デコードバンドdが描画されることを検出する。
Next, in step S1103, the
ステップ1104において描画位置算出部508は、検出された画像オブジェクトの描画され始めるレンダリングバンドと、描画し終わるレンダリングバンドを演算する。デコードバンドcの場合、領域1のレンダリングバンド3から描画され始め、領域2のレンダリングバンド4で描画が完了する。デコードバンドdの場合、領域2のレンダリングバンド4から描画が開始され、領域2のレンダリングバンド5で描画が完了する。
In
ステップS1105においてタスク作成部509は、ステップ1102で更新したデコードバッファの使用状況に基づいて、検出された画像オブジェクトが既にデコードされているかを検出する。検出された画像オブジェクトが既にデコードバッファにデコードされているときは、先行タスク作成の処理をスキップし、ステップS1103に戻って次の画像オブジェクトの検出を繰り返す。ステップS1105において、デコード済みでなかった場合は、ステップS1106に進む。
In step S1105, the
図7(b)に示す例の場合、領域2のレンダリングバンド4において描画されるデコードバンドcは、領域1のレンダリングバンド3でも描画される。そのため、先行タスクが実行される前には既にデコードされて、デコードバッファに残っている。従って、デコードバンドcは先行タスクの対象とされない。一方、デコードバンドcは領域1のレンダリングバンドでは描画されなくなるが、領域2においてはレンダリングバンド4まで描画される。このため、レンダリングバンド4のレンダリング処理が完了するまでは、デコードバンドcのデコード結果がデコードバッファ304において解放されないことが必要である。ステップS1105において、デコードバンドcのように後続の領域でも描画されるデコードバンドの情報がデコードバッファ管理部506によって記憶される。後続の領域でも描画されるデコードバンドの情報は、領域2の中間データ生成時にステップS1105において参照される。デコードバッファに参照すべきデータが残っている場合には、そのデコードバンドの圧縮データの作成処理をスキップすると共に参照すべきデータが上書きされないようにする。
In the case of the example shown in FIG. 7B, the decode band c drawn in the
次にステップS1106においてタスク作成部509は、領域1のデコードバンドのデコードが完了したタイミングで、先行タスク作成の対象であるデコードバンドを、デコード可能かを判定する。本実施形態の場合は、デコードバンドcのデコードを完了した時デコードバッファ304に空き領域はないので、S1106ではデコードできないと判定される。
In step S <b> 1106, the
ステップS1106でデコードできないと判定されると、デコードバッファ管理部506は、ステップS1107においてバッファを使用中の画像オブジェクトの描画終了バンドを調査する。ステップS1108においてタスク生成部509は、次にデコードバッファ304がデコード可能になるタイミングを検出する。図7に示す例では、デコードバンドcのデコードが完了した後、領域1のレンダリングバンド2のタスクが完了すれば、デコードバンドaの画像データが必要なくなり、デコードバッファ304に空き容量ができる。
If it is determined in step S1106 that decoding cannot be performed, the decode
ステップS1109において先行可否判定部510は、先行タスクを作成できるかどうかを判定する。具体的には、S1108で検出した空き容量ができるタイミングが領域1のレンダリング終了前かどうかを判定する。図7の例では、空き容量ができるのは、領域1のレンダリングタスクが完了する前と検出されているので、先行可否判定部510は、先行タスクを作成できると判定する。
In step S1109, the preceding
ステップS1109において先行タスク作成可能と判定されると、ステップS1110において圧縮イメージ作成部504は、先行タスクの対象であるデコードバンドの圧縮イメージデータを、領域2の先行デコードバンドとして作成する。またステップS1111においてタスク作成部509は、先行タスクの対象であるデコードバンドのタスクを作成する。ここでは、先行タスクの対象であるデコードバンドdは、レンダリングバンド3の処理が開始されるとデコード可能になるので、先行タスクdに待ちID3を対応づける。
If it is determined in step S1109 that the preceding task can be created, in step S1110, the compressed
ステップS1112においてタスク作成部509は、既に作成した領域1の圧縮データに、領域1には描画されない先行圧縮データを追加する。また、領域1のデコードスケジュールに先行タスクを追加する。
In step S <b> 1112, the
最後に、ステップS1113において、追加した先行タスクを完了したタイミングにおけるデコードバッファ304の使用状況に、デコードバッファ管理部506が記憶している情報を更新する。
Finally, in step S1113, the information stored in the decode
先行タスクを追加すると、ステップ1103に戻り、画像オブジェクトの検出を繰り返す。ステップS1108で検出されたオブジェクトが先行デコードできないと判定された場合、もしくは画像オブジェクトが検出されなくなると、ステップS1114に進んで先行タスク作成を完了する。 When the preceding task is added, the process returns to step 1103 and the detection of the image object is repeated. If it is determined in step S1108 that the detected object cannot be decoded in advance, or if no image object is detected, the process proceeds to step S1114 to complete the preceding task creation.
このように本実施形態では、次に中間データを作成する領域のデコード処理を先行してデコードできるように、現在中間データを作成している領域に描画されないデコード処理も含めて中間データを作成する。図12は、上述のフローによって領域毎に中間データを作成した場合の、レンダリング処理およびデコード処理を示している。デコードバンドdが先行してデコードされるため、レンダリング部2は、領域2のレンダリングバンド4のレンダリング処理を、デコード処理を待つことなく開始できる。
As described above, in the present embodiment, intermediate data is generated including a decoding process that is not drawn in the area where the intermediate data is currently created so that the decoding process of the area where the intermediate data is created next can be preceded. . FIG. 12 shows a rendering process and a decoding process when intermediate data is created for each area by the above-described flow. Since the decoding band d is decoded in advance, the
以上説明したように、1ページを分割して分割して領域単位に中間データを作成することで、中間データバッファ507を低コスト化することが出来る。さらに、画像オブジェクトが領域間で跨った場合には、次の領域に描画されるデコードバンドを検出し、デコードバッファの使用状況を考慮して先行してデコードさせるため、待ち合わせによる処理低下を軽減することができる。さらに、レンダリングとデコードの依存関係に基づいてデコードバッファの空き状況を管理することで、先行してデコードすることの出来ない圧縮イメージの作成とタスクの追加を行わない。この為、冗長な中間データ生成の処理時間を削減でき、中間データのサイズが冗長に大きくならない。また、ラスタ画像データ生成部は、レンダリングとデコードの依存関係を中間データから読み出すことが出来るので、デコードバッファの管理や依存性の解析を必要としない簡単な構成で中間データを処理することが出来る。
As described above, the
なお、第1実施形態では、情報処理装置として機能するPDL処理部105およびラスタ画像データ生成部106が画像形成装置100に内蔵される形態を例に説明した。しかしながら情報処理装置の一部または全部が、印刷を実行する出力部を有する装置とは独立した構成あってもよい。例えばPDL処理部105は、パーソナルコンピュータ(PC)やタブレット等の情報端末のソフトウェアとして実現することもできる。この場合、PDL処理部105は、印刷する画像形成装置が特定されると、印刷する画像形成装置に応じたPDL処理を実行する。
In the first embodiment, an example in which the
<第2実施形態>
前述の第1実施形態では、領域に必要なデコードスケジュールを作成した後、デコードバッファ304の使用状況に基づいて、次に中間データを作成する領域のPDLデータを参照し、先行タスクを作成した。第2実施形態では、デコードバッファ304に空きがあれば描画される領域に関わらず次にデコードすべき圧縮データの作成を続けることで、先行的に圧縮データおよびデコードタスクを作成する方法について説明する。図13は、第2実施形態におけるPDL処理部105の詳細なブロックを示す。第2実施形態では、デコードバッファ304に空き容量があればデコードタスクを作成するよう構成するため、先行可否判定部510を必要としない。なお第1実施形態と同様の構成については、同じ番号を付し、その説明を省略する。
Second Embodiment
In the first embodiment described above, after a decoding schedule necessary for an area is created, the preceding task is created by referring to the PDL data of the area where intermediate data is to be created next based on the usage status of the
図14は、第2実施形態における中間データ作成処理中のフローチャートである。ステップS1401〜S1408について説明する。 FIG. 14 is a flowchart during the intermediate data creation process in the second embodiment. Steps S1401 to S1408 will be described.
まずステップS1401においてタスク作成部509は、注目領域に描画される画像オブジェクトのデコードタスクの作成が完了したかどうかを判定する。全てのデコードバンドのタスクを作成していなければ、ステップS1010に戻る。注目領域に描画される画像オブジェクトのデコードバンドの全てについてタスクを作成したが、ステップS1402に進む。
First, in step S1401, the
ステップS1402においてタスク作成部509は、全てのデコードバンドをデコードした時の、デコードバッファ304の使用状況を確認する。デコードバッファ304に空き容量がない場合はさらに、作成したタスクの各デコードバンドの依存関係を参照する。全てのデコードバンドをデコードし終えた時に空き容量があるが、参照されなくなるレンダリングバンドが領域内であるデコードバンドがある場合、ステップS1402に進む。全てのデコードバンドのデコード完了時に空き容量がなく、かつ参照されなくなるレンダリングバンドが領域内でのデコードバンドがない場合、デコードバンドはいずれも領域内のレンダリング処理している間は、上書き可能にならないことを意味する。従って次の領域に描画される画像オブジェクトのデコードバンドを先行してデコードすることはできないので、ステップS1015にスケジュールデータの作成を完了する。
In step S1402, the
ステップS1403において圧縮データ作成部504は、注目領域以降に中間データを作成する領域の画像オブジェクトを検出する。画像オブジェクトがそれ以降にない場合は、ステップS1015に進み、処理を完了する。画像オブジェクトが検出できた場合、デコードバンドを特定し、ステップS1404に進む。
In step S1403, the compressed
ステップS1404においてタスク作成部509は、ステップS1403において検出したデコードバンドを先行タスクとして選択する。ステップS1405においてタスク作成部509は、ステップS1402において注目領域のレンダリング中にデコードバッファ304に空き領域ができるタイミングを待ちIDとして設定する。
In step S1404, the
ステップS1406において圧縮データ作成部504は、ステップS1403において特定したデコードバンドの圧縮データを作成する。ステップS1407においてデコードバッファ304の使用状況を更新し、ステップS1408において圧縮データに、ステップS1406において作成した圧縮データを追加し、ステップS1405において作成したタスクをデコードスケジュールに追加する。
In step S1406, the compressed
以上の処理によれば、中間データ作成部502は、印刷ページを分割した領域ごとに中間データを作成する際に、レンダリングデータおよびレンダリングスケジュールは領域内だけを対象とする。一方、描画オブジェクトの圧縮データおよびデコードスケジュールは、デコードバッフの使用状況に応じて、他の領域の画像オブジェクトを含めて作成する。デコードバッファにおいていずれかのデコードバンドが上書き可能になると、注目領域以外の画像オブジェクトの圧縮データのデコードを先行して開始する。その結果、デコードバッファには、以降のレンダリングに必要な圧縮データが順次最も早いタイミングでデコードされることになる。これにより、領域毎に中間データを作成することによって生じる、デコードの待ち時間を短縮することができる。
According to the above processing, when the intermediate
<第3実施形態>
前述の第1実施形態では、ステップS904において処理対象のレンダリングバンドが開始可能かどうかの処理判定をきっかけにデコードの開始を制御する構成とした。第3実施形態では、デコードの開始指示とレンダリングの開始指示を並行に行う方法について説明する。なお、第1実施形態と同様の構成については、同じ番号を付し、その説明を省略する。
<Third Embodiment>
In the first embodiment described above, the start of decoding is controlled in response to the process determination as to whether or not the rendering band to be processed can be started in step S904. In the third embodiment, a method for performing a decoding start instruction and a rendering start instruction in parallel will be described. In addition, about the structure similar to 1st Embodiment, the same number is attached | subjected and the description is abbreviate | omitted.
図15は、第3実施形態におけるPDL処理部105及びラスタ画像データ生成部106による全体の処理のフローチャートである。
ステップS1501からステップS1503の中間データの読み込みまでの処理は、第1実施形態におけるステップS901からステップS903と同じ処理であるため、その説明を省略する。
FIG. 15 is a flowchart of overall processing by the
Since the processing from the step S1501 to the reading of the intermediate data in the step S1503 is the same as the processing in the first embodiment from the step S901 to the step S903, the description thereof is omitted.
ステップ1504において制御部301は、読みこんだ中間データに含まれるデコードスケジュールを参照し、処理すべきデコードタスクを読みこみ、処理対象のデコードバンドを決定する。制御部301は、タスクの待ちIDに基づいて、処理対象のデコードバンドのデコード処理を開始できるかどうか判定する。待ちIDが0か、または待ちIDに示されたレンダリング処理が完了している場合、制御部301は、ステップS1505に進む。
In
ステップS1505において制御部301は、処理対象のデコードバンドのデコード処理の開始をデコード部303に指示すると、完了の通知を待たずにステップS1508に進む。また、ステップS1504で待ちIDに示されたレンダリング処理がまだ完了していない場合、デコード処理の開始を指示せずにステップS1508に進む。
In step S1505, when the
ステップS1506においてデコード部303は、制御部301による指示に従って、中間データに含まれる圧縮データを読み込み、指示されたデコードバンドのデコード処理を行う。ステップS1507においてデコード部303は、デコードによって得られる画像データをデコードバッファ304に格納し、デコード処理を完了すると制御部301にデコード完了を通知する。
In step S1506, the
ステップS1508において制御部301は、読みこんだ中間データに含まれるレンダリングスケジュールを参照し、処理すべきタスクを読みこみ、処理対象のレンダリングバンドを決定する。制御部301は、タスクの待ちIDに基づいて、処理対象のレンダリングバンドのレンダリング処理を開始できるかどうか判定する。待ちIDが0か、または待ちIDに示されたデコードバンドのデコード処理が完了している場合、制御部301は、ステップS1509に進む。
In step S1508, the
ステップS1509において制御部301は、処理対象のレンダリングバンドのレンダリング処理の開始をレンダリング部302に指示すると、完了の通知を待たずにステップS1512に進む。また、ステップS1508で待ちIDに示されたデコード処理がまだ完了していない場合、レンダリング処理の開始を指示せずにステップS1512に進む。
In step S1509, when the
ステップS1512において制御部301は、ステップS1505もしくはステップS1509で指示したデコード処理とレンダリング処理の完了通知待ちを行う。デコード処理とレンダリング処理どちらか一方の完了通知を検知すると、ステップ1513に進み、最後のレンダリングバンドの処理が完了したかどうかを判定する。まだレンダリング処理の場合や未処理のレンダリングバンドがある場合は、ステップS1504に戻り、次のデコードバンドもしくは次のレンダリングバンドの処理を行う。最後のレンダリングバンドの処理が完了したことを検知すると、中間データバッファ507は上書き可能になるので、完了通知を送信する。
In step S1512, the
ステップ1515においてPDL作成部102は、印刷ページの全領域について、中間データを作成したかどうかを判定する。中間データを作成していない領域があれば、ステップS1502に戻り、PDL処理部102は次の領域の中間データを作成する。
In
以上、説明したように、デコード処理、レンダリング処理を依存関係のある処理の完了を待っている間にも、処理開始を指示できる処理があれば処理を実行するように制御することで、デコードの開始指示とレンダリングの開始指示を並行に行うことができる。その結果、レンダリング処理の待ち時間および、デコード処理の待ち時間を短縮することができる。 As described above, the decoding process and the rendering process are controlled so as to execute the process if there is a process that can instruct the start of the process while waiting for the completion of the process having the dependency relationship. The start instruction and the rendering start instruction can be performed in parallel. As a result, the waiting time for rendering processing and the waiting time for decoding processing can be reduced.
なお、前述の実施形態では制御部301がレンダリング部302およびデコード部303に処理開始を指示する構成であったが、制御部301を独立に2つ構成してもよい。レンダリング部302にレンダリング処理の処理開始を指示するレンダリング制御部と、デコード部303にデコード処理の処理開始を指示するデコード制御部を独立に構成することで、レンダリング処理とデコード処理の開始指示を並列に行う構成としてもよい。
In the above-described embodiment, the
<その他の実施形態>
前述の実施形態では、先行して圧縮データを作成する領域に制限を設けていないが、領域に描画すべき画像オブジェクトが含まれない場合を考慮して制限を設けてもよい。例えば、後続の領域を2領域分先まで処理しても、先行する圧縮データが作成されない、もしくはデコードバッファの空きが無くならない場合などに、圧縮イメージデータ212の作成を終えるなどとしてもよい。
<Other embodiments>
In the above-described embodiment, there is no restriction on the area in which the compressed data is created in advance, but the restriction may be provided in consideration of the case where the image object to be drawn is not included in the area. For example, even if the subsequent area is processed up to two areas ahead, if the preceding compressed data is not created or if the decoding buffer is not empty, the creation of the compressed image data 212 may be finished.
105 PDL処理部105
106 ラスタ画像データ生成部
502 中間データ作成部
505 スケジュールデータ作成部
506 デコードバッファ管理部
507 依存関係決定部
508 描画位置算出部
509 タスク作成部
510 先行可否判定部
105
106 Raster image
Claims (11)
前記印刷データに基づいて、前記画像に描画される画像オブジェクトの符号化された圧縮データをデコードするデコード手段と、
前記デコード手段が前記圧縮データをデコードした結果、得られる前記画像オブジェクトの画像データを保持する第1の保持手段と、
前記保持手段が保持する前記画像オブジェクトの画像データを参照しながら、前記画像の領域毎にレンダリングすることによりラスタ画像データを生成するレンダリング手段とを有し、
前記デコード手段は、前記レンダリング手段が注目領域のラスタ画像データを生成している間に、前記注目領域に描画される画像オブジェクトの圧縮データと、前記注目領域の後続の領域に描画される画像オブジェクトの圧縮データの少なくとも一部をデコードすることを特徴とする情報処理装置。 An information processing apparatus that converts print data representing an input image to be printed into raster image data,
Decoding means for decoding compressed compressed data of an image object drawn on the image based on the print data;
A first holding means for holding the image data of the image object obtained as a result of the decoding means decoding the compressed data;
Rendering means for generating raster image data by rendering for each area of the image while referring to the image data of the image object held by the holding means;
The decoding means includes compressed data of an image object drawn in the attention area and an image object drawn in a subsequent area of the attention area while the rendering means generates raster image data of the attention area. An information processing apparatus that decodes at least a part of the compressed data.
前記描画命令に従って、前記領域毎に、前記画像に描画される画像オブジェクトの圧縮データ、前記画像のレンダリングデータを含む中間データを作成する中間データ作成手段と、を有し、
前記デコード手段は、前記中間データに含まれる前記圧縮データをデコードし
前記レンダリング手段は、前記レンダリングデータをレンダリングし、
前記中間データ作成手段は、前記注目領域について、
前記レンダリング手段が処理する前記注目領域のレンダリングデータと、
前記注目領域に描画される画像オブジェクトの圧縮データと、前記注目領域には描画されず前記注目領域の後続で中間データを作成される領域に描画される画像オブジェクトの少なくとも一部の圧縮データとを含む中間データを作成することを特徴とする請求項1に記載の情報処理装置。 Furthermore, interpreting means for interpreting the print data and converting it into a drawing command;
In accordance with the drawing command, for each of the areas, intermediate data creating means for creating compressed data of an image object drawn on the image and intermediate data including rendering data of the image,
The decoding means decodes the compressed data included in the intermediate data, and the rendering means renders the rendering data,
The intermediate data creating means
Rendering data of the region of interest processed by the rendering means;
The compressed data of the image object drawn in the attention area and the compressed data of at least a part of the image object drawn in the area where intermediate data is created after the attention area without being drawn in the attention area. The information processing apparatus according to claim 1, wherein intermediate data including the intermediate data is created.
前記中間データ作成手段は、前記注目領域について、レンダリングバンド毎に、前記レンダリング手段がレンダリングを開始可能なタイミングを示すスケジュールデータと、
デコードバンド毎に、前記デコード手段がデコードを開始可能なタイミングを示すスケジュールデータとを作成することを特徴とする請求項2に記載の情報処理装置。 The processing unit of the rendering unit is a rendering band, the decoding unit of the processing unit of the decoding unit,
The intermediate data creating means includes schedule data indicating the timing at which the rendering means can start rendering for each rendering band for the attention area;
3. The information processing apparatus according to claim 2, wherein schedule data indicating a timing at which the decoding unit can start decoding is created for each decoding band.
前記第1の保持手段の使用状況を管理する手段と、
前記印刷データにおいて前記画像オブジェクトが描画される描画位置を算出する算出手段と、
前記描画位置に基づいて、前記デコードバンドそれぞれと、前記デコードバンドの画像データが参照されなくなるレンダリングバンドとの対応関係を決定する決定手段と、
前記使用状況と前記対応関係に基づいて、前記注目領域以外の領域に描画される画像オブジェクトを先行してデコード可能かどうかを判定する判定手段と、
デコードバンドの識別情報と該デコードバンドを開始するまでにレンダリングの完了を待つべきレンダリングバンドの識別情報を待ちIDとして対応づけたタスクを作成する作成手段を有し、
前記タスク作成手段は、前記判定手段により先行してデコードできると判定された場合、前記使用状況に基づいて、前記注目領域には描画されず前記注目領域の後続で中間データを作成される領域に描画される画像オブジェクトの少なくとも一部の圧縮データを生成し、かつ該圧縮データをデコードの開始を制御するためのデコードタスクを作成することを特徴とする請求項3に記載の情報処理装置。 The intermediate data creation means includes
Means for managing the usage status of the first holding means;
Calculating means for calculating a drawing position at which the image object is drawn in the print data;
Determining means for determining a correspondence relationship between each of the decoding bands and a rendering band in which image data of the decoding band is not referred to based on the drawing position;
Determination means for determining whether or not an image object drawn in an area other than the attention area can be decoded in advance based on the usage situation and the correspondence relationship;
Creating means for creating a task in which the identification information of the decoding band and the identification information of the rendering band to be waited for completion of rendering before starting the decoding band are associated as a waiting ID;
If it is determined by the determination unit that the task can be decoded in advance, based on the usage status, the task generation unit is not drawn in the attention area, but is an area in which intermediate data is generated after the attention area. 4. The information processing apparatus according to claim 3, further comprising: generating a decoding task for generating compressed data of at least a part of an image object to be drawn and controlling start of decoding the compressed data.
既にデコードされた圧縮データがある場合は、前記注目領域の中間データに、前記既にデコードされた圧縮データを含ませないことを特徴とする請求項2に記載の情報処理装置。 The intermediate data creating means determines whether or not there is compressed data already decoded in the compressed data of the image object drawn in the attention area,
3. The information processing apparatus according to claim 2, wherein if there is already decoded data, the intermediate data in the region of interest does not include the already decoded compressed data.
前記印刷データに基づいて、前記画像に描画される画像オブジェクトの符号化された圧縮データをデコードする工程と、
前記画像オブジェクトの画像データを参照しながら、前記画像の領域毎にレンダリングすることによりラスタ画像データを生成する工程からなる、
前記デコードする工程は、前記レンダリング工程が注目領域のラスタ画像データを生成している間に、前記注目領域に描画される画像オブジェクトの圧縮データと、前記注目領域の後続の領域に描画される画像オブジェクトの圧縮データの少なくとも一部をデコードすることを特徴とする情報処理方法。 An information processing method for converting print data representing an input image to be printed into raster image data,
Decoding encoded compressed data of an image object drawn on the image based on the print data;
The process includes generating raster image data by rendering each area of the image while referring to the image data of the image object.
The decoding step includes the compressed data of the image object drawn in the attention area and the image drawn in the subsequent area of the attention area while the rendering step generates raster image data of the attention area. An information processing method characterized by decoding at least part of compressed data of an object.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/171,505 US20160358052A1 (en) | 2015-06-05 | 2016-06-02 | Information processing apparatus, information processing method, and storage medium |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015115173 | 2015-06-05 | ||
| JP2015115173 | 2015-06-05 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2017001387A true JP2017001387A (en) | 2017-01-05 |
Family
ID=57751071
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016081489A Pending JP2017001387A (en) | 2015-06-05 | 2016-04-14 | Information processing apparatus, information processing method, and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2017001387A (en) |
Citations (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5594860A (en) * | 1995-01-27 | 1997-01-14 | Varis Corporation | Method for banding and rasterizing an image in a multiprocessor printing system |
| JP2001306275A (en) * | 2000-04-25 | 2001-11-02 | Fuji Xerox Co Ltd | Image processing system |
| JP2003072161A (en) * | 2001-08-31 | 2003-03-12 | Canon Inc | PRINT CONTROL DEVICE, PRINT CONTROL METHOD, STORAGE MEDIUM, AND PROGRAM |
| US20070195353A1 (en) * | 2006-02-17 | 2007-08-23 | Canon Kabushiki Kaisha | Image forming apparatus |
| JP2008090377A (en) * | 2006-09-29 | 2008-04-17 | Brother Ind Ltd | Rasterizing apparatus, program and method |
| CN101277356A (en) * | 2007-03-29 | 2008-10-01 | 兄弟工业株式会社 | Method to generate decompressed data |
| US20080309673A1 (en) * | 2006-09-29 | 2008-12-18 | Brother Kogyo Kabushiki Kaisha | Rasterizing device |
| US20090034853A1 (en) * | 2007-07-31 | 2009-02-05 | Brother Kogyo Kabushiki Kaisha | Technique for creating print data |
| US20100079809A1 (en) * | 2008-09-30 | 2010-04-01 | Darrell Eugene Bellert | Systems and Methods for Optimized Printer Throughput in a Multi-Core Environment |
| JP2011148242A (en) * | 2010-01-25 | 2011-08-04 | Konica Minolta Business Technologies Inc | Image forming apparatus, and program |
| JP2012063905A (en) * | 2010-09-15 | 2012-03-29 | Ricoh Co Ltd | Image formation device and image formation method |
| JP2013006338A (en) * | 2011-06-24 | 2013-01-10 | Canon Inc | Image processing device capable of switching configuration method of rendering system |
-
2016
- 2016-04-14 JP JP2016081489A patent/JP2017001387A/en active Pending
Patent Citations (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5594860A (en) * | 1995-01-27 | 1997-01-14 | Varis Corporation | Method for banding and rasterizing an image in a multiprocessor printing system |
| JP2001306275A (en) * | 2000-04-25 | 2001-11-02 | Fuji Xerox Co Ltd | Image processing system |
| JP2003072161A (en) * | 2001-08-31 | 2003-03-12 | Canon Inc | PRINT CONTROL DEVICE, PRINT CONTROL METHOD, STORAGE MEDIUM, AND PROGRAM |
| US20070195353A1 (en) * | 2006-02-17 | 2007-08-23 | Canon Kabushiki Kaisha | Image forming apparatus |
| JP2007221604A (en) * | 2006-02-17 | 2007-08-30 | Canon Inc | Image forming apparatus |
| JP2008090377A (en) * | 2006-09-29 | 2008-04-17 | Brother Ind Ltd | Rasterizing apparatus, program and method |
| US20080309673A1 (en) * | 2006-09-29 | 2008-12-18 | Brother Kogyo Kabushiki Kaisha | Rasterizing device |
| JP2008246775A (en) * | 2007-03-29 | 2008-10-16 | Brother Ind Ltd | Deployment data creation method, apparatus and program |
| US20080239396A1 (en) * | 2007-03-29 | 2008-10-02 | Brother Kogyo Kabushiki Kaisha | Method of creating decompressed data |
| CN101277356A (en) * | 2007-03-29 | 2008-10-01 | 兄弟工业株式会社 | Method to generate decompressed data |
| US20090034853A1 (en) * | 2007-07-31 | 2009-02-05 | Brother Kogyo Kabushiki Kaisha | Technique for creating print data |
| JP2009034833A (en) * | 2007-07-31 | 2009-02-19 | Brother Ind Ltd | Print data creation apparatus, method and program |
| US20100079809A1 (en) * | 2008-09-30 | 2010-04-01 | Darrell Eugene Bellert | Systems and Methods for Optimized Printer Throughput in a Multi-Core Environment |
| JP2010092472A (en) * | 2008-09-30 | 2010-04-22 | Konica Minolta Systems Lab Inc | System and method for optimized printer throughput in multi-core environment |
| JP2011148242A (en) * | 2010-01-25 | 2011-08-04 | Konica Minolta Business Technologies Inc | Image forming apparatus, and program |
| US20110235105A1 (en) * | 2010-01-25 | 2011-09-29 | Konica Minolta Business Technologies, Inc. | Image forming apparatus and computer readable recording medium |
| JP2012063905A (en) * | 2010-09-15 | 2012-03-29 | Ricoh Co Ltd | Image formation device and image formation method |
| JP2013006338A (en) * | 2011-06-24 | 2013-01-10 | Canon Inc | Image processing device capable of switching configuration method of rendering system |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4468404B2 (en) | Information processing apparatus control method, information processing apparatus, and program | |
| JP2019025801A (en) | Printing system, printer and control method thereof, and program | |
| JP2011123757A (en) | Variable printing control device and control program | |
| JP6445899B2 (en) | Image forming apparatus and control method thereof | |
| JP5517607B2 (en) | Information processing apparatus, image compression method, and computer program | |
| JP4412159B2 (en) | Image processing apparatus, printer, and printer control method | |
| JP6772020B2 (en) | Image processing device, control method of image processing device, and program | |
| CN106476280A (en) | The cross-sectional image Transmission system of three dimensional object, method and the dispensing device executing this | |
| JP2017001387A (en) | Information processing apparatus, information processing method, and program | |
| JP2019086987A (en) | IMAGE FORMING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM | |
| JP2017194932A (en) | Image processing apparatus, image processing method, and program | |
| JP5424778B2 (en) | Print data processing apparatus, print data processing method, and program | |
| JP2013119242A (en) | Image forming apparatus, image forming method, and program | |
| JP6886338B2 (en) | Image forming device, its control method, and program | |
| JP2018144372A (en) | Image forming apparatus, image forming apparatus control method, and program | |
| JP3715749B2 (en) | Image processing system and image processing method | |
| JP6789716B2 (en) | Image processing device, control method of image processing device, and program | |
| JP2010250393A (en) | Information processing apparatus and information processing method | |
| JP2003112451A (en) | Image processor, image processing method, recording medium and program | |
| JP2000335021A (en) | Image processing apparatus and image processing method | |
| JP7383462B2 (en) | Image processing device, control method for image processing device, program | |
| KR20180102499A (en) | Image forming apparatus and method for controlling image forming apparatus | |
| JP2011051141A (en) | Image forming apparatus, image processing method, and controlling program | |
| JP5766059B2 (en) | Image forming apparatus, image forming apparatus control method, and program | |
| JP2012218227A (en) | Image forming apparatus |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190410 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200122 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200225 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20200403 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20200901 |