JP2013119242A - 画像形成装置、画像形成方法、およびプログラム - Google Patents

画像形成装置、画像形成方法、およびプログラム Download PDF

Info

Publication number
JP2013119242A
JP2013119242A JP2011269397A JP2011269397A JP2013119242A JP 2013119242 A JP2013119242 A JP 2013119242A JP 2011269397 A JP2011269397 A JP 2011269397A JP 2011269397 A JP2011269397 A JP 2011269397A JP 2013119242 A JP2013119242 A JP 2013119242A
Authority
JP
Japan
Prior art keywords
image
size
unit
intermediate data
band
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011269397A
Other languages
English (en)
Inventor
Hidefumi Sasaki
英史 佐々木
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2011269397A priority Critical patent/JP2013119242A/ja
Publication of JP2013119242A publication Critical patent/JP2013119242A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

【課題】スキャンラインアルゴリズムとオブジェクト圧縮を併用する場合、画像形成するスキャンライン上に存在する全ての描画画像を展開しておく必要がある。しかし、同一スキャンライン上に複数個のPDL画像が存在すると、圧縮した画像を展開する領域を有効に使いまわせない。
【解決手段】記憶部は、圧縮条件を満たさないと判定されたオブジェクト、もしくは、第一のサイズ判定手段もしくは第二のサイズ判定手段にて所定のサイズを超えると判定された際のオブジェクトは、圧縮しない形式で前記中間データとして保持し、前記第一のサイズ判定手段もしくは前記第二のサイズ判定手段にて前記所定のサイズを超えないと判定された際のオブジェクト、もしくは、分割手段にて分割されたオブジェクトは、圧縮手段にて圧縮し、前記中間データとして保持する。
【選択図】 図6

Description

本発明は、画像形成装置、画像形成方法、およびプログラムに関する。
画像形成装置におけるRIP(Raster Image Processor)が行う画像形成処理手段の1つとしてスキャンラインアルゴリズムが一般的に知られている。スキャンラインアルゴリズムとは、中間データを一度保持し、その中間データに従って該当する画素の色値を決定しながら、スキャンライン単位で画像を形成(レンダリング)するアルゴリズムである。
プリンタで行われている画像形成処理には、処理時間と必要メモリ量を削減する課題が常に発生している。より高速なプロセッサ、より大きなメモリをプリンタデバイスに搭載することで性能向上することは可能である。しかし同時に、製品の原価があがり、商品としての利益率が低下してしまう。よって、プリンタデバイスには、商業的理由により利用可能なメモリや計算資源などのリソースを削減したいという要望がある。
高速化手法の一例としてはバンドレンダリングがある。これは中間データをバンド単位で生成し、バンド毎に出力画像形成を並列処理することで高速化する技術である(特許文献1等参照)。
また、必要メモリ削減手法の一例としては、オブジェクト圧縮手法が知られている。これは印刷データに含まれるPDL(Page Description Language)にて定義された画像を可逆あるいは非可逆圧縮した圧縮画像を作り、RIPで出力画像を形成する際には必要に応じて圧縮画像を描画画像として展開する。
特開2011−051141号公報
ところで、スキャンラインアルゴリズムとオブジェクト圧縮を併用する場合、画像形成するスキャンライン上に存在する全ての描画画像を展開しておく必要がある。しかし、ホストコンピュータ側から送られる印刷データ内のPDLの画像が同一スキャンライン上に複数個存在すると、圧縮した画像を展開する領域を有効に使いまわせないケースが存在する。例えば、ページ内に短冊状の画像がスキャンラインと直交して存在する場合には、それらの画像を全て展開できる領域が必要となる。
上記課題を解決するために、本願発明は以下の構成を有する。すなわち、印刷データを解釈して中間データを生成するインタプリタ部と、生成した中間データを保持する記憶部と、生成した中間データを解釈し、所定の単位で出力画像を描画する出力部とを有する画像形成装置であって、前記記憶部は、前記出力部が中間データを処理する際に用いられる所定のサイズの領域を更に確保され、前記インタプリタ部は、前記印刷データに含まれるオブジェクトそれぞれに対応する中間データを生成する際に、着目オブジェクトが予め定義された圧縮条件を満たすか否かを判定する圧縮判定手段と、前記着目オブジェクトが圧縮条件を満たす場合、前記着目オブジェクトの中間データを前記出力部が描画する際に複数のバンドにまたがって描画されるか否かを判定する分割判定手段と、前記着目オブジェクトが複数のバンドにまたがって描画されると判定された場合、前記着目オブジェクトが描画されるバンドのいずれかにおいて、着目バンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第一のサイズ判定手段と、前記所定のサイズを超えない場合、前記着目オブジェクトを前記着目バンドの境界で分割する分割手段と、前記着目オブジェクトが複数のバンドにまたがって描画されないと判定された場合、前記着目オブジェクトが描画されるバンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第二のサイズ判定手段と、前記中間データを圧縮する圧縮手段とを有し、前記記憶部は、前記圧縮判定手段にて前記圧縮条件を満たさないと判定されたオブジェクト、もしくは、前記第一のサイズ判定手段もしくは前記第二のサイズ判定手段にて前記所定のサイズを超えると判定された際のオブジェクトは、圧縮しない形式で前記中間データとして保持し、前記第一のサイズ判定手段もしくは前記第二のサイズ判定手段にて前記所定のサイズを超えないと判定された際のオブジェクト、もしくは、前記分割手段にて分割されたオブジェクトは、前記圧縮手段にて圧縮し、前記中間データとして保持する。
本願発明により、オブジェクト圧縮を利用する場合にPDLにて記述された画像を描画するバンド単位で分割し、必要となる展開領域のサイズを中間データ生成時に制御する。これにより、RIPが展開領域を使いまわす事ができ、必要となる展開領域サイズを抑えることが可能となる。
本実施形態に係るコンピュータを含むシステムの構成を説明するブロック図。 本実施形態に係るソフトウェアモジュールおよびハードウェアの関連を説明するブロック図。 本実施形態に係る印刷データに含まれるデータ形式の一例を示す図。 印刷データを解釈するためのインタプリタ処理を示すフローチャート。 描画オブジェクト描画処理を示すフローチャート。 描画オブジェクトに含まれるImage Operandを解釈して中間データを生成する処理を示すフローチャート。 従来例に係るオブジェクト圧縮処理によるサイズ増加の例を説明する図。 本実施形態に係るオブジェクト圧縮処理によるサイズ削減の第1の例を示す図。 従来例に係るオブジェクト圧縮処理によるサイズ増加の例を示す図。 本実施形態に係るオブジェクト圧縮処理によるサイズ削減の第2の例を示す図。 バンドの高さを最適化する処理のフローチャート。 オブジェクト描画コマンドを読み飛ばす処理のフローチャート。 バンドの高さを決定する処理のフローチャート。 本実施形態に係るオブジェクト圧縮処理によるサイズ削減の第3の例を示す図。
以下、本発明を実施するための形態について図面を用いて説明する。
[システム構成]
図1は、本実施形態に係るスキャンライン方式のプリンタの構成例を示す図である。プリンタ100内において、プロセッサ101、メモリ102、操作パネル103、ネットワークアダプタ104、記憶装置105、RIPデバイス106、およびプリンタエンジン107を備える。また、プリンタ100内の各構成部は、バス110を介して、それぞれ通信可能に接続される。
プロセッサ101は、メモリ102に記憶された処理手順、すなわち、所定のプログラムに従って、上述した各構成部を制御する。メモリ102には、プロセッサ101が利用するプログラムやデータが記憶されている。また、記憶装置105には、本システムが必要とするプログラムやデータが記録されている。記憶装置105として、2つ以上の装置を接続する構成にすることも可能である。また、記憶装置105として、ROM、ハードディスク、USBストレージ、SDカード、ネットワークストレージ等の異なる記憶装置を併用することも可能である。
操作パネル103は、例えばディスプレイ部分とタッチパネル部分とから構成される形態であってもよい。また、タッチパネルではなく物理的なボタンによってユーザからの操作を受け取る手段で実現しても良い。プリンタ100は、操作パネル103介して種々の印刷指示を受け付ける。また、プリンタ100は、操作パネル103を介してプリンタ100に関する情報を表示することが可能である。また、プリンタ100は、ネットワークアダプタ104を介してネットワーク120に接続できる。例えば、ユーザは、ホストコンピュータ130からネットワーク120を介し、プリンタ100に印刷指示を出すことが可能である。
以上の手段により印刷指示がプリンタ100に対してなされると、メモリ102上に記憶されたプログラム200をプロセッサ101が実行する事でプリンタエンジン107から印刷物が出力される。プリンタ100が印刷物を出力するまでの詳細な動作については、図2を用いて説明する。
[ソフトウェア構成]
プログラム200は、いくつかのソフトウェアモジュールを組み合わせることで実現される。図2は、本実施形態に係るプリンタ100のソフトウェアモジュールと各ハードウェア(102,104,105,106,107)の関連を示す例図である。
プログラム200は、外部および内部からの印刷データを受信するためのジョブ受信部201と、ジョブ受信部201からの通知によってジョブを生成するジョブ制御部202とを含む。更に、プログラム200は、印刷データ211を解釈するためのインタプリタ部203、RIPデバイス106を制御するためのRIPデバイス制御部204、および、プリンタエンジン107を制御するためのプリンタエンジン制御部205を含む。
ネットワークアダプタ104もしくは記憶装置105から供給される印刷データ211を、ジョブ受信部201が受信する。ジョブ受信部201は、受信した印刷データ211を処理するべきであると判断すると、ジョブ制御部202にジョブ生成を通知する。ジョブ制御部202は、ジョブ受信部201からのジョブ生成通知に基づいてインタプリタ部203を起動させる。インタプリタ部203は、ジョブ受信部201から印刷データ211を受信し、その内容を解釈する。インタプリタ部203が印刷データを解釈した結果は、メモリ102上のDLM(Display List Memory)206の中の各領域(207〜210)に中間データとしてそれぞれ保持される。
インタプリタ部203が印刷データ211内からページ終端を検知すると、ジョブ制御部202に1ページ分の印刷データを解釈終了した事を通知する。ジョブ制御部202は、1ページ分の印刷データ211の解釈が終了した旨の通知を受けて、RIPデバイス制御部204へ画像形成通知を、プリンタエンジン制御部205へ画像出力通知を行う。RIPデバイス制御部204は、ジョブ制御部202からの画像形成通知をうけて、RIPデバイス106にDLM206に保持されたデータを供給する。RIPデバイス106は、DLM206を元に出力画像212の画像形成を行う出力部である。プリンタエンジン制御部205はプリンタエンジン107を制御し、RIPデバイス106が生成した出力画像212をプリンタエンジン107に通知し、形成された出力画像212を物理用紙213へ印刷する。
ここで、DLM206に保持される中間データについて補足を行う。本実施形態では、DLM206内の中間データを大きく4つの領域に大別している。1)DLM206には、インタプリタ部203が印刷データ211から取得した画像を圧縮せずに保存するRAW画像領域208が含まれる。2)DLM206には、インタプリタ部203が印刷データ211から取得した画像を圧縮して保存する圧縮画像領域209が含まれる。3)DLM206には、圧縮画像領域209に保持された圧縮画像を展開する先の領域である展開領域210が含まれる。これは、圧縮画像領域209内を利用するためには圧縮していない形式に展開する必要があるため、RIPデバイス106の展開処理において用いられる。4)DLM206には、イメージ以外の中間データを保持するその他のデータのデータ領域207が含まれる。データ領域207には、出力画像の幅・高さ・色数に関する情報、あるいは単色での色塗りつぶし指定なども全て含まれるものとする。
なお、従来技術では、展開領域210をDLM206の制限を超えない限りは拡大可能として定義している。本願発明では、展開領域のサイズ(データサイズ)に制限を設けるための閾値を予め「最大展開領域サイズ」として定義するものとする。これに対し、出力画像の形成を行う際に、中間データに対する展開処理等により画像を一時的に保持することにより、用いられる展開領域のサイズを「累積展開領域サイズ」として記載する。これは、展開処理時には、必要に応じて複数の画像を保持する必要があり、それらの画像のサイズを累積した値となる。
[データ構造]
本願発明を説明するために必要な印刷データのデータ構造に関する概念を、図3を用いて簡単に説明する。なお、これは印刷データの形式の一例であり、他の形式を用いても本発明を適用する事が可能であることを言及しておく。なお、本明細書において、印刷データに含まれるPDL(Page Description Language:ページ記述言語)にて定義された画像(オブジェクト)を、以下、PDL画像と記載する。
印刷データの中には、出力を指示される単位としてジョブ301を含む。ジョブ301には1つ以上のページ302が含まれている。更に、ページ302には0個以上の描画オブジェクト303が含まれる。描画オブジェクト303には、Operator311、Path/Clip321、Operand331が含まれる。
Operator311は1つの描画オブジェクトに対して1つが指定でき、この描画オブジェクトを前景とし、背景とどのように合成するのかを指定するためのものである。例えば、設定として、「上書きする」あるいは「背景とのANDをとる」などの背景合成指定をする事が出来る。以下に説明するOperand331は複数個指定する事もでき、Operator311によって前景と背景の複雑な合成を表現する事も可能である。
Path/Clip321は、描画オブジェクト303のどの領域を描画すればよいのかを表す情報である。これによって描画画像が四角形であっても、任意範囲をPath/Clip321に指定する事で、任意形状描画することが可能となる。また、次に説明するOperand331内に含まれるいずれかの描画画像の幅・高さを使って描画する指定をすることで、Path/Clip321には具体的な領域指定を含めない事も可能である。
Operand331は、1つの描画オブジェクト303に対して最大3個まで指定する事が出来る。Operand331は、背景と合成する場合の前景を意味する。Operator311の指定方法によっては利用するOperand331の個数は異なる。Operand331には様々な種別があり、例えば画像を表すためのImageOperand332であったり、あるいは特定の色での塗りつぶしを指定するFlatColorOperand334であったりする。Operand331の種別の一例であるImageOperand332は、PDL画像であるImage333と、Image333を変形するためのマトリックスであるTransformMatrix336とを持つ。TransformMatrix336を指定する事によりImage333を出力画像212上で拡大・縮小、あるいは回転させることが可能となる。また、FlatColorOperand334は、色を表現するためのColor335を持つ。説明を簡略化するためにここでは省略しているが、Operand331の種別としてはこの他にグラデーションを表現するOperandや、計算式によって色値を表現するOperand等を更に定義することも可能である。
<実施形態1>
実施形態1として、本発明で対象としているPDL画像の圧縮処理についての詳細を述べる。まず、インタプリタ部203によるPDL画像の圧縮処理について、図4と図5を用いて簡単に説明する。
(インタプリタ処理)
図4は、インタプリタ部203が実行するインタプリタ処理に関する全体の流れを意味している。本処理は、図1に示すプリンタ100のプロセッサ101が記憶部である記憶装置105等に記憶されたプログラムを読み出し、実行することによって実現される。
インタプリタ部203は、ジョブ受信部201を介して印刷データ内のコマンドを読み込む(S401)。インタプリタ部203は、読み込んだコマンドの種別に応じて次に実行するべきコマンドを決定する(S402)。ここで、コマンドの種類は、オブジェクト描画、ジョブ開始、ジョブ終了、ページ開始、ページ終了の5つがあるものとする。読み込んだコマンドが、「ジョブ開始」のコマンドであれば、インタプリタ部203はジョブ開始処理を実行する(S412)。読み込んだコマンドが、「ページ開始」のコマンドであれば、インタプリタ部203は、ページ開始処理を実行する(S413)。読み込んだコマンドが、「オブジェクト描画」のコマンドであれば、インタプリタ部203は、オブジェクト描画処理を実行する(S415)。オブジェクト描画処理(S415)の詳細については、図5を用いて説明する。読み込んだコマンドが、「ページ終了」のコマンドであれば、インタプリタ部203は、ページ終了処理を実行する(S414)。
ページ終了処理(S414)の中では、ジョブ制御部202に1ページ分の印刷データ解釈が終了した事を通知する処理が行われる。ジョブ開始コマンド、ページ開始コマンド、オブジェクト描画コマンド、ページ終了コマンドのいずれかのコマンドに対する処理を実行した場合には、まだジョブに含まれるコマンドが継続しているので、再びコマンドの読み込み処理に戻る(S401)。読み込んだコマンドがジョブ終了であれば、インタプリタ部203はジョブ終了処理を実行し(S411)、本処理フローにおけるインタプリタ処理を終了する。
(オブジェクト描画処理)
図5は、インタプリタ部203が実行する図4のオブジェクト描画処理(S415)の詳細を記載したものになる。前述したとおり、ジョブのデータ構造において、描画オブジェクト303は1〜3のOperand331を有する。インタプリタ部203は、描画オブジェクト303における全てのOperand331に対し、S502〜S504の処理を繰り返す(S501)。インタプリタ部203は、着目しているOperandのOperand種別を判断する(S502)。インタプリタ部203は、Operand種別がFlat Color Operandだと判断した場合には、FlatColorOperand334が示すColor335をDLM206内の中間データに登録する(S503)。インタプリタ部203は、Operand種別がImage Operandだと判断した場合には、ImageOperand332が示すImage333をDLM206内の中間データに登録する(S504)。S504の処理の詳細については、図6を用いて後述する。全Operandに対してS502〜S504の処理が終了した後、S505へ処理を進める。
インタプリタ部203は、描画オブジェクトがPath/Clip321を持っているか否かを判定する(S505)。描画オブジェクトがPath/Clip321を持っていると判断した場合(S505にてYES)、インタプリタ部203は、そのPath/Clip321をDLM206内の中間データに登録する(S506)。最後に、インタプリタ部203は、Operator311をDLM206内の中間データに登録する(S507)。このとき、Operator311には、DLM206内に登録されたColor335やImage333と、Path/Clip321とが関連付けられている。なお、Image333やColor335に対して色補正処理などが前処理として行われる場合もある。
(中間データ登録処理)
本願発明の特徴の一つは、ImageOperand332が示すImage333をDLM206内の中間データに登録するS504の詳細に関する部分である。図6は、本願発明を適用した場合の、インタプリタ部203で行われる、Image OperandをDLに登録する処理の流れを示している。これは、図5のS504に対応する。まず先に、インタプリタ部203は、入力されたImageOperand332が示すImage333(着目オブジェクト)の幅・高さ・面積の情報等から、オブジェクト圧縮を実施する条件を満たしているかを判定する(S601)。例えば、面積が非常に小さいPDL画像であれば、オブジェクト圧縮によって中間データのサイズを削減するメリットよりも、PDL画像を圧縮するコスト、そして圧縮画像を展開領域に展開するコストの方が大きくなることによるデメリットの方が大きい。そのため、圧縮条件として、インタプリタ部203はPDL画像が小さい場合には、圧縮しない方が処理全体としてはより適していると判断する。これにより、圧縮判定を実行する。
また、インタプリタ部203がPDL画像を圧縮する手段として非可逆圧縮方式であるJPEG形式を利用する場合がある。JPEG形式で圧縮された圧縮画像を展開する場合には、元々のPDL画像の幅・高さを8pixel単位でパディングする必要があることがある。この時、幅や高さが一定未満である場合には、インタプリタ部203ではJPEG形式で圧縮しない方がDLサイズを小さくできる。なお、S601にて用いられる圧縮条件については、上記内容に限定するものではなく、他の条件に従って装置に対する負荷などから判定しても良い。
以上のような圧縮条件を満たさない場合(S601にてNO)、インタプリタ部203は着目オブジェクトであるPDL画像(Image333)を圧縮せずに(RAW形式で)、DLM206内のRAW画像領域208に登録する(S602)。
PDL画像がオブジェクト圧縮を実施する条件を満たしている場合(S601にてYES)、インタプリタ部203は、RIPデバイス106がPDL画像を出力画像212に描画する領域が、出力画像212の複数のバンドをまたぐかを判定する(S603)。この判定結果が、PDL画像を分割するか否かを判定した結果となる(分割判定)。
ここでいう“バンド”とは、RIPデバイス106で形成する出力画像212を副走査方向に任意の高さ単位で分割した領域である。もし、PDL画像(Image333)を出力画像212において描画しようとする領域が複数のバンドにまたがない場合(S603にてNO)、インタプリタ部203は、描画されるバンドで展開領域の不足が起きないかを判定する(S610)。ここでは、着目バンドに含まれるPDL画像の総和が、最大展開領域サイズを超過しない否かを判定する(第二のサイズ判定手段)。展開領域の不足が起きる場合には(S610にてNO)、インタプリタ部203は、PDL画像(Image333)を圧縮せずに(RAW形式で)、DLM206内のRAW画像領域208に登録する(S602)。描画バンドで展開領域の不足が生じる場合(S610にてYES)、S606へ進む。
PDL画像(Image333)を出力画像212において描画しようとする領域が、複数のバンドにまたぐ場合には(S603にてYES)、インタプリタ部203は、それぞれのバンドで展開領域の不足が起きないかを判定する(S604)。ここでは、それぞれのバンド毎に定義している累積展開領域サイズに、追加しようとする描画画像のバンド上の面積を加算した場合に、最大展開領域サイズを超過しないかを判定する(第一のサイズ判定手段)。言い換えると、(着目バンドの累積展開領域のサイズ+着目バンド上での圧縮画像の展開領域サイズ)≦(最大展開領域サイズ)の関係を満たすか否かを判定する。もし少なくとも1つ以上のバンドで、必要となる展開領域が最大展開領域サイズを超過しない場合には(S604にてNO)、インタプリタ部203は、圧縮せずにそのままの形式(RAW形式)でDLM206内のRAW画像領域208に登録する(S602)。
最大展開領域サイズを超過する場合には(S604にてYES)、インタプリタ部203は、PDL画像を分割する(S605)。つまり、S603にて、インタプリタ部203は、RIPデバイス106が出力画像212にPDL画像(Image333)を描画する領域を求める。そして、S604にてインタプリタ部203は、PDL画像の描画領域がまたぐ全バンドのいずれかにおいて、必要となる展開領域のサイズが最大展開領域サイズを超過するかを判定する。この時、PDL画像の一部だけがバンド上に描画される場合には、その面積も考慮する。そして、PDL画像を描画する領域をまたぎ、かつ、全バンドで超過しないと判断された場合(S603およびS604にてYES)、インタプリタ部203はバンド境界に合わせてPDL画像を複数のPDL画像へ分割する(S605)。
描画画像が複数のバンドをまたがない場合にはPDL画像に対して、複数のバンドをまたぐ場合には分割したそれぞれのPDL画像に対して、インタプリタ部203はS607〜S609の処理を行う。インタプリタ部203は、PDL画像を画像圧縮する(S607)。さらにインタプリタ部203は、圧縮画像を圧縮形式でDLM206内の圧縮画像領域209に登録をする(S608)。インタプリタ部203は、累積展開領域サイズに画像サイズを加算する(S609)。
なお、複数のバンドをまたいで描画されるPDL画像について分割対象としたが、この条件を例えばより詳細に、2バンドをまたぐPDL画像を対象としてもよい。もしくは、3以上のバンドをまたぐ描画画像だけを対象としてもよい。また、一定以上の高さをもって描画されるPDL画像のみを対象としてもよい。いずれの場合も本願発明を有用に活用した例になりうる。
[具体例(その1)]
(従来技術による処理の場合)
ここで、従来技術を用いた場合のインタプリタ部203とRIPデバイス106の挙動について、図7を用いて補足説明する。最初に、図7(A)を用いて印刷データ700から、中間データを生成し画像形成するケースを考える。図7(A)に示す印刷データ700は、画像A701、画像B702、画像C703、画像D704の4つのPDL画像として、主走査方向に分割されて扱われるものとする。
インタプリタ部203が、オブジェクト圧縮を用いずに中間データを作る例を、中間データ710を用いて説明する。なお、説明の簡略化のために画像以外の描画コマンド等の中間データはここでは省略する。インタプリタ部203は、画像A701、画像B702、画像C703、画像D704に対して、中間データ710として描画画像A711、描画画像B712、描画画像C713、描画画像D714それぞれを生成する。RIPデバイス106が印刷データ700上のスキャンライン705の位置に相当する出力画像を形成する場合には、中間データ710上の描画画像A711を参照する。また、RIPデバイス106が印刷データ700上のスキャンライン706の位置に相当する出力画像を形成する場合には、中間データ710上の描画画像B712を参照する。
これに対して、インタプリタ部203が、オブジェクト圧縮を用いて中間データ710を作る場合の例を、中間データ720を用いて説明する。インタプリタ部203は、描画画像A711、描画画像B712、描画画像C713、描画画像D714それぞれを圧縮した圧縮画像a721、圧縮画像b722、圧縮画像c723、圧縮画像d724を含む中間データ720を生成する。更に、インタプリタ部203は、圧縮画像を展開する展開領域725を確保する。インタプリタ部203が中間データを生成した時点、すなわち、RIPデバイス106が画像形成処理を開始する前の段階では、展開領域725には画像が含まれない。
RIPデバイス106が中間データ720を元に、印刷データ700上のスキャンライン705を含めた画像A701上のスキャンライン群において出力画像を形成する場合を考える。この時、RIPデバイス106は展開領域725上に圧縮画像a721を展開し、描画画像A727として参照する。このときの状態を中間データ726に示す。これによりRIPデバイス106は、画像A701に対するスキャンライン上の描画画像A711として参照でき、出力しようとするスキャンラインに対応する画像の形成が可能である。
次にRIPデバイス106が中間データ720を元に、印刷データ700上のスキャンライン706を含めた画像B702上のスキャンライン群に相当する出力画像を形成する場合を考える。この時、RIPデバイス106は、展開領域725上に圧縮画像b722を展開し、描画画像B729として参照する。このときの状態を中間データ728に示す。これによりRIPデバイス106は、画像B702に対するスキャンライン上の描画画像B712として参照でき、出力しようとするスキャンラインに対応する画像の形成することができる。
この展開領域725は、インタプリタ部203が複数の圧縮画像の展開先として使いまわすことが可能である。よって、展開領域725は各スキャンラインで必要となる展開領域サイズの総和に相当するサイズが必要となる。つまり、ここでの例では、圧縮画像a721〜圧縮画像d724のデータサイズと展開領域725のデータサイズとの和となる。なお、展開領域725は、圧縮画像のうち、展開した際に最もサイズが大きくなる画像のサイズを格納できるようにすることが想定される。このような、圧縮画像に対する展開領域の使いまわしにより、多くの場合では、元々のPDL画像のサイズの総和よりも小さい事が期待できる。よって、オブジェクト圧縮する事によって、多くの場合必要となる中間データのサイズを小さくすることが可能となる。
次に、インタプリタ部203がオブジェクト圧縮を用いて中間データを作る別の例を、図7(B)を用いて、印刷データ730に対する中間データ740を用いて説明する。図7(B)に示す印刷データ730は、画像A731、画像B732、画像C733、画像D734の4つのPDL画像として、副走査方向(スキャンラインに直交)に分割されて扱われるものとする。インタプリタ部203は、画像A731、画像B732、画像C733、画像D734を圧縮した圧縮画像a741、圧縮画像b742、圧縮画像c743、圧縮画像d744を含む中間データ740を生成する。更に、インタプリタ部203は、圧縮画像を展開する展開領域745を確保する。インタプリタ部203が中間データを生成した時点、すなわち、RIPデバイス106が画像形成処理を開始する段階では、展開領域745には画像が含まれない。
RIPデバイス106が中間データ740を元に、スキャンライン735を含めた画像A731、画像B732、画像C733、画像D734上のスキャンライン群に対応する画像を形成する場合を考える。この条件は、スキャンライン736でも同様である。スキャンラインアルゴリズムでは、画像形成しようとするスキャンライン上に存在する全ての描画画像が参照可能である必要がある。よって、RIPデバイス106は、展開領域745に圧縮画像a741、圧縮画像b742、圧縮画像c743、圧縮画像d744を描画画像A751、描画画像B752、描画画像C753、描画画像D754として展開する。そして、RIPデバイス106は、描画画像A751、描画画像B752、描画画像C753、描画画像D754を参照する事で、出力するスキャンラインに対応する画像を形成する。このときの状態を中間データ750に示す。
しかしこの場合、画像の描画を行うために、RIPデバイス106は同一スキャンライン上に存在する描画画像A751、描画画像B752、描画画像C753、描画画像D754を同時に参照できる必要がある。そのために、図7(A)に示したオブジェクト圧縮の例のように展開領域を圧縮画像毎に使いまわすことができない。よって、中間データ740内の展開領域745には、オブジェクト圧縮を用いない場合の描画画像A711、描画画像B712、描画画像C713、描画画像D714の合計と同じサイズが必要となる。またそれに加えて中間データ740には、圧縮画像a741、圧縮画像b742、圧縮画像c743、圧縮画像d744も一緒に保持する必要がある。以上により、インタプリタ部203でオブジェクト圧縮を適用して中間データを生成しても、中間データのサイズがオブジェクト圧縮を適用しない場合よりも大きくなってしまう。
(本願発明による処理の場合)
次に、図8を用いて、図7(B)に示した印刷データ730に対して本願発明を適用した場合の挙動を説明する。ここでは出力画像を4つのバンドに分割するものとする。例えば、インタプリタ部203では、複数のバンドをまたぐ画像A810を分割画像A1〜分割画像A4(811〜814)にバンド境界で分割する。画像B820、画像C830、画像D840についても同様に、4つの画像に分割する。そして印刷データ730の内容から分割画像を同じ出力結果が得られるように再構築し、印刷データ850として扱う。例えば、画像A810を表現していた領域については、分割画像A1〜A4(851〜854)で表現するように置き換える。同様に、画像B820、画像C830、画像D840も、分割画像B1〜B4(855〜858)、分割画像C1〜C4(859〜862)、分割画像D1〜D4(863〜866)で表現する。更に、分割したPDL画像はそれぞれ圧縮され、中間データ870内の圧縮分割画像a1〜d4(872〜887)として保持される。
RIPデバイス106が中間データ870を元に、印刷データ850上のスキャンライン867に対応する出力画像を形成する場合を考える。スキャンライン867上には、分割画像A1(851)、分割画像B1(855)、分割画像C1(859)、分割画像D1(863)が存在する。この場合、RIPデバイス106は、展開領域871上に圧縮分割画像a1(872)を描画画像A1(891)として、圧縮分割画像b1(876)を描画画像B1(892)として展開する。更に、RIPデバイス106は、展開領域871上に圧縮分割画像c1(880)を描画画像C1(893)として、圧縮分割画像d1(884)を描画画像D1(891)として展開する。展開したときの状態を中間データ890として示す。これによりRIPデバイス106は、スキャンライン上の描画画像が全て参照できるため、出力しようとするスキャンラインに対する画像の形成をすることができる。
RIPデバイス106が中間データ870を元に、印刷データ850上のスキャンライン868に対応する出力画像を形成する場合を考える。スキャンライン868上には、分割画像A2(852)、分割画像B2(856)、分割画像C2(860)、分割画像D2(864)が存在している。この場合、RIPデバイス106は、展開領域871上に圧縮画像a2(873)を描画画像A2(896)として、圧縮画像b2(877)を描画画像B2(897)として展開する。更に、RIPデバイス106は、展開領域871上に圧縮画像c2(881)を描画画像C2(898)として、圧縮画像d2(885)を描画画像D2(899)として展開する。展開したときの状態を中間データ895として示す。これによりRIPデバイス106は、スキャンライン上の描画画像が全て参照できるため、出力しようとするスキャンラインに対応する画像を形成することができる。
[具体例(その2)]
本実施形態に係るインタプリタ部203で行われる更なる具体例を、図9と図10を用いて説明する。なお、図9中の画像A901、画像B902、画像C903、画像D904、画像E905については、図7,8で用いた画像A〜Dとは別のものである。また、説明の簡略化のために、実際の中間データに含まれるRIPデバイス106が解釈可能な描画コマンドなどの要素については省略し、画像部分にのみ注目している。
図9(A)は、PDL画像として画像A901、画像B902、画像C903、画像D904、画像E905が描画されている、印刷データ内のページ900を表している。図9(B)の表930に示すように、画像A901は20MB、画像B902は2MB、画像C903は1MB、画像D904は1.5MB、画像E905は0.5MBのサイズがあるものとする。ここでは、それぞれの画像に対する圧縮率を1/20とする。つまり、図9(C)の表940に示すように、画像A901を圧縮して得られる圧縮画像aは1MBである。同様に、画像B902を圧縮して得られる圧縮画像bは0.1MBである。画像C903を圧縮して得られる圧縮画像cは0.05MBである。画像D904を圧縮し得られる圧縮画像dは0.07MBである。画像E905を圧縮して得られる圧縮画像eは0.02MBである。
オブジェクト圧縮を行わない場合に、インタプリタ部203が行う中間データサイズ算出例を図9(B)の表930に示す。この場合には単純に画像のサイズを積算しただけの中間データサイズが必要になる。よって、ページ900に対しては、20.0MB+2.0MB+1.0MB+1.5MB+0.5MB=25.0MB分の中間データの領域を確保しなければならない。
(従来技術による中間データサイズ)
ここで、従来技術による、インタプリタ部203がオブジェクト圧縮を用いて中間データを作成する場合の中間データサイズ算出例を、図9(D)の表950に示す。表950には、圧縮画像a、圧縮画像b、圧縮画像c、圧縮画像d、圧縮画像eのサイズが示されている。また、図9(A)に示すように、ページ900内の区間910〜918で必要となる最大の展開領域サイズが示されている。
例えば、図9(A)に示すページ900において、区間910、916、918には画像が含まれないため展開領域は不要である。区間911、913、915は画像A901のみが含まれるため、20.0MBの展開領域が必要である。区間912では画像A901と画像B902とが含まれるため、20.0MB+2.0MB=4.0MBの展開領域が必要である。区間914では画像A901、画像C903、および画像D904が含まれるため、20.0MB+1.0MB+1.5MB=22.5MBの展開領域が必要である。区間917では画像E905が含まれるため、0.5MBの展開領域が必要である。印刷データ700を処理するためには、それぞれの区間で必要となる最大の展開領域サイズを確保する必要があるため、展開領域としては22.5MBを確保する必要がある。圧縮画像と展開領域を合計し、1.0MB+0.1MB+0.05MB+0.07MB+0.02MB+22.5MB=23.72MBが、中間データのサイズとして算出される。
ここで、インタプリタ部203で生成された中間データのサイズにおいて、オブジェクト圧縮を適用する場合と、しない場合とを比較すると、そのサイズ比は23.72MB/25.0MB=94.88%となる。よって、この例では従来技術を用いてオブジェクト圧縮を適用しても、殆ど中間データのサイズが削減できていない。
(本願発明による中間データサイズ)
次に、図10を用いて、本発明に係るインタプリタ部203がオブジェクト圧縮を用いて中間データを作成する場合での中間データサイズ算出例を説明する。図10(A)に示すページ1000を、ここではBand1(1011)、Band2(1012)、Band3(1013)、Band4(1014)の4バンドに分割するものとする。
インタプリタ部203により、画像A901から画像E905までを順番に描画していく中での累積展開領域サイズの変化を図10(D)の表1050に示す。ここで累積展開領域サイズとは、処理する着目バンドに含まれる画像を展開する際に必要となる展開領域のサイズの総和を意味する。以下に表1050に示した変化をより詳細に説明する。
1)初期状態:インタプリタ部203は、それぞれのバンドの累積展開領域サイズを0に初期化する。また、この例では、ここでは最大展開領域サイズを10MBとする。
2)画像A901:インタプリタ部203は、画像A901は圧縮条件を満たし、かつ、複数のバンドをまたいでいると判断する。インタプリタ部203は、画像A901を仮に分割画像A1〜A4(1001〜1004)に分割すると仮定してバンド毎の累積展開領域サイズを超過するかを判定する。この例において、画像A901を分割した場合には、分割画像A1(1001)と分割画像A4(1004)は2.0MB、分割画像A2(1002)と分割画像A3(1003)は8.0MBのサイズに分割されることになる。また、分割画像A1〜A4(1001〜1004)が圧縮された状態で描画されると、各バンドにおいて必要となる累積展開領域サイズはそれぞれ、Band1(1011)では2MB、Band2(1012)では8MBとなる。また、Band3(1013)では8MB、Band4(1014)では2MBとなる。これら全てのバンドにおいて、分割画像A1〜A4に対する累積展開領域サイズは、最大展開領域サイズ10MBを超過しない。よって、インタプリタ部203は、画像A901が分割後それぞれを圧縮して格納する事が可能であると判断する。よって、インタプリタ部203は、画像A901が分割画像A1〜A4(1001〜1003)に分割され、さらに圧縮画像a1〜a4として圧縮した後、中間データとして保持する。
3)画像B902:画像B902は圧縮条件を満たすが、複数のバンドをまたいではいない。そこで、インタプリタ部203は、画像B902がBand2(1012)上に圧縮形式で描画するために中間データに保持できるかを判定する。このとき、Band2(1012)には既に分割画像A2(1002)を展開できるだけの8MBの展開領域が必要である。更に2MBのサイズの画像B902を描画しても、最大展開領域サイズ10MBを超過しない。よってインタプリタ部203は、画像B902を圧縮画像bに圧縮した後、中間データとして保持する。
4)画像C903:画像C903は圧縮条件を満たすが、複数のバンドをまたいではいない。インタプリタ部203は、画像C903がBand3(1013)上に圧縮形式で描画するために中間データに保持できるかを判定する。Band3(1013)には既に分割画像A3(1003)を展開できるだけの8MBの展開領域が必要である。更に1MBのサイズの画像C903を描画しても、最大展開領域サイズ10MBを超過しない。よって、インタプリタ部203は、画像C903を圧縮画像cに圧縮した後、中間データとして保持する。
5)画像D904:画像D904は圧縮条件を満たすが、複数のバンドをまたいではいない。インタプリタ部203は、画像D904がBand3(1013)上に圧縮形式で描画するために中間データに保持できるかを判定する。Band3(1013)には既に分割画像A3(1003)と画像C903を展開できるだけの9MBの展開領域が必要である。更に1.5MBのサイズの画像D904を描画しようとすると、最大展開領域サイズ10MBを超過してしまう。よって、インタプリタ部203は、画像D904を圧縮せずにそのままの形式で、中間データとして保持する。
6)画像E905:画像E905は圧縮条件を満たすが、複数のバンドをまたいではいない。インタプリタ部203は、画像E905がBand4(1014)上に圧縮形式で描画するために中間データに保持できるかを判定する。Band4(1014)には既に分割画像A4(1004)を展開できるだけの2MBの展開領域が必要である。更に0.5MBのサイズの画像E905を描画しても、最大展開領域サイズ10MBを超過しない。よって、インタプリタ部203は、画像E905を圧縮画像eに圧縮した後、中間データとして保持する。
7)最終状態:以上の結果をまとめると、それぞれのバンドで利用される展開領域は、Band1(1011)が2MB、Band2(1012)が10MB、Band3(1013)が9MB、Band4(1014)が2.5MBとなる。このサイズは最初の最大展開領域サイズを超過する事は無い。
以上をまとめたものが、図10(C)に示す表1040の中間データとなる。この場合、中間データには、圧縮画像a1〜a4、b、c、d、eと、RAW画像Dとが含まれる。また、展開領域のサイズも含まれる。中間データサイズとしては、0.1MB+0.4MB+0.4MB+0.1MB+0.1MB+0.05MB+0.02MB+1.5MB+10.0MB=12.67MBとなる。ここで、オブジェクト圧縮を適用しない場合と比較すると、12.67MB/25.0MB=50.67%となり、ここで示した例の場合、オブジェクト圧縮を適用する事で中間データのサイズを半減できている。
また、別の見方をすると、本発明で必要となる展開領域は各ページ・各バンドで共有する事が可能である。例えば、ページに含まれる画像を変えて10ページを印刷する場合を考える。従来のオブジェクト圧縮では図9の例では、23.72MB×10ページ=237.2MBの中間データを生成する事になる。本発明を適用した場合には、2.67MB×10ページ+10MB=36.7MBで処理する事が可能となる。これにより、36.7MB/237.2MB=15.47%に中間データのサイズを縮小させることが可能であると言える。これは、ページ数が増えるごとに、より顕著な差となる。
ここでは、1ページの出力画像を4バンドに分割する例を示したが、更に多くのバンドに分割する形態で実現しても良い。なお、分割数を増やすことで必要となる最大展開領域サイズは小さくすることはできるが、画像を分割する処理は増加する。よって、分割数は対象となる製品で用いられる印刷データの傾向に応じて適切な値を求める必要がある。
以上、本実施形態により、RIPは展開領域を使いまわす事ができ、印刷データに対する処理で必要となる展開領域サイズを抑えることが可能となる。
<実施形態2>
実施形態2としては、インタプリタ部203で行われる、更なるメモリ削減手段としてPDLデータの先読みによるバンド高さ調整について説明する。
インタプリタ処理の実行手段をデータハンドリングの観点で大別すると、シーケンシャルアクセス方式とランダムアクセス方式に分けられる。シーケンシャルアクセス方式とは、インタプリタ部203はネットワークアダプタ104から送られる印刷データ211を一部ずつ解釈しながら、利用し終わった部分を破棄する手段である。これにより、プリンタはメモリ102よりも大きな印刷データ211を処理することが可能になっている。
ランダムアクセス方式とは、インタプリタ部203が記憶装置105上の印刷データ211を解釈する手段である。例えば、ジョブ制御部202やインタプリタ部203がジョブ受信部201から送られる印刷データ211を記憶装置105上にスプールしてもよい。もしくは、既に記憶装置105上にスプールされている印刷データ211を印刷対象としてもよい。あるいは、USBメディアなどの外部ストレージを記憶装置105として接続してもよい。
ランダムアクセス方式では、インタプリタ処理を複数回行う事が可能である。よって、これを利用して印刷データ211の特徴を把握し、より最適な条件下での中間データを生成する事も可能である。実施形態2としては、この場合の処理について説明を行う。
[処理フロー]
図11は、バンドの高さの最適化処理の流れを示している。ここでのバンドの高さとは、スキャンラインにおける副走査方向の幅を指す。この処理は実施形態1にて述べたインタプリタ部203のインタプリタ処理(図4)を行う前に行うべき処理である。本処理フローは、プリンタ100のプロセッサ101が、記憶部である記憶装置105に保持されたプログラムを読み出し、実行することにより実現される。
インタプリタ部203では、ジョブ受信部201を介して印刷データ内のコマンドを読み込む(S1101)。なお、ここで印刷データに含まれるコマンドは実施形態1と同様のものを扱う。インタプリタ部203は、読み込んだコマンドの種別に応じて次に読み飛ばし処理を決定する(S1102)。
インタプリタ部203は読み込んだコマンドが、「ジョブ開始」コマンドであればジョブ開始読み飛ばし処理を実行する(S1112)。インタプリタ部203は、読み込んだコマンドが、「ページ開始」コマンドであればページ開始読み飛ばし処理を実行する(S1113)。インタプリタ部203は読み込んだコマンドが、「オブジェクト描画」コマンドであればオブジェクト描画読み飛ばし処理を実行する(S1116)。S1116のオブジェクト描画読み飛ばし処理の詳細については、図12を用いて後述する。
インタプリタ部203は、読み込んだコマンドが、「ページ終了」コマンドであればバンド高さ決定処理(S1114)と、ページ終了読み飛ばし処理(S1115)を実行する。S1114のバンド高さ決定処理については、図13を用いて後述する。ジョブ開始コマンド、ページ開始コマンド、オブジェクト描画コマンド、ページ終了コマンドのいずれかのコマンドを実行した場合には、まだジョブが継続しているので、インタプリタ部203は、再びコマンドの読み込み処理(S1101)に戻る。インタプリタ部203は、読み込んだコマンドが、「ジョブ終了」であればジョブ読み飛ばし処理を実行する(S1111)。S1111の処理の後、インタプリタ部203は、引き続き図4に示すインタプリタ処理を実行する。
本処理フローにおいて、インタプリタ部203は、印刷データ211の特徴を導く。その処理の流れを図12と図13を用いて説明する。図12は、図11のオブジェクト描画読み飛ばし処理(S1116)の詳細である。図13は、図11のバンド高さ決定処理(S1114)の詳細である。なお、図11のフローチャートにおいて、S1111、S1112、S1113、S1115の読み飛ばし処理は、読み込んだコマンドをスキップする処理を意味する。
(オブジェクト描画読み飛ばし処理)
オブジェクト描画読み飛ばし処理(S1116)では、インタプリタ部203は、描画オブジェクトに指定されている全Operandに対してS1202〜S1204の処理を繰り返す(S1201)。インタプリタ部203は、着目しているOperandのOperand種別がImage Operandであり(S1202)、かつ、Operandが圧縮条件を満たしているか(S1203)の判定を行う。二つの条件を共に満たす場合には(S1202およびS1203にてYES)、インタプリタ部203は、描画位置、サイズおよびImage Operandに関連付けられるPDL画像のサイズを記録する(S1204)。
(バンド高さ決定処理)
バンド高さ決定処理(S1114)では、インタプリタ部203は、まず初期バンドを生成する(S1301)。ここでの初期バンドとして、単純にページを幾つかの高さ毎に区切っただけのものを用いる事ができる。次に、インタプリタ部203は、それぞれのバンド単位で定義される、累積展開領域サイズを“0”に初期化する(S1302)。インタプリタ部203は、圧縮対象となっているページ内の全PDL画像に対してS1304〜S1305の処理を繰り返す(S1303)。インタプリタ部203は、全バンドに対して、S1305の処理を繰り返す(S1304)。インタプリタ部203は、着目するバンドの累積展開領域サイズ上に描画する場合に、そこで必要となる展開領域サイズを加算する(S1305)。これらの処理をページ内の全PDL画像に繰り返すことで、各バンドを処理するのに必要な累積展開領域サイズを求める事が出来る。
圧縮対象の全PDL画像に対して、S1303〜S1305の処理が完了した後、インタプリタ部203は、再実行フラグを“FALSE”とする(S1306)。この再実行フラグはバンドの状態が変化した場合に、再度、最適化処理を実行するかを判定するものである。インタプリタ部203は、全バンドに対してS1308〜S1313の処理を繰り返す(S1307)。インタプリタ部203は、着目バンドの累積展開領域サイズが最大展開領域サイズを超過しているかを判定する(S1308)。もし累積展開領域サイズが最大展開領域サイズを超過している場合には(S1308にてYES)、インタプリタ部203は、その着目バンドを分割する(S1309)。なお、ここでの着目バンドの分割は、2つに等分する例を説明するが、分割の方法はこれに限定するものではない。更にインタプリタ部203は、再実行フラグを“TRUE”にする(S1310)。
インタプリタ部203は、更に着目バンドの累積展開領域サイズと、その着目バンドの1つ前に隣接するバンドの累積展開領域サイズの合計が、最大展開領域サイズ以下となるかを判定する(S1311)。もし合計した累積展開領域サイズが、最大展開領域サイズ以下である場合には(S1311にてYES)、インタプリタ部203は、着目バンドとその1つ前のバンドとを結合する(S1312)。更に、インタプリタ部203は、再実行フラグを“TRUE”にする(S1313)。
これらの処理を、インタプリタ部203がページ内の全バンドに繰り返すことで、各バンドを処理するために累積展開領域サイズが不足するバンドは分割され、前のバンドと合わせても処理可能なバンドは結合されることで最適化がなされる。
全バンドに対してS1307〜S1313の処理が完了した後、インタプリタ部203は、再実行フラグが“TRUE”となっているかどうかを判定する(S1314)。再実行フラグが“TRUE”である場合には(S1314にてYES)、インタプリタ部203は、再度、累積展開領域サイズの初期化(S1302)から処理を再実行する。再実行フラグが“FALSE”であれば(S1314にてNO)、ページ上の全てのバンドにおいて累積展開領域サイズが、最大展開領域サイズ内に収まる。よって、インタプリタ部203は、この時点で決定しているバンド高さ条件を利用して、インタプリタ処理を行う。
[具体例]
図14を用いて、この処理の具体的な数値例を示す。この例では、最大累積展開領域サイズを10MBとする。
図14(A)において、まず初期バンドを生成した状態をページ1400に示す。ページ1400は、4つのバンドとしてBand1〜4(1431〜1431)が定義され、バンドをまたぐ背景の画像Aが画像A1〜A4(1401〜1404)に分割して処理がなされることになる。更に前景となる画像として、ページ1400には、画像B1405、画像C1406、画像D1407、画像E1408が含まれる。
この時に各バンドで必要となる累積展開領域サイズを表1491に示している。Band1(1431)上では、2MBの画像A1(1401)だけが含まれているので、2MBが必要となる。Band2(1432)上では、8MBの画像A2(1402)の上に、2MBの画像B1405が含まれており、8MB+2MB=10MBが必要となる。Band3(1433)上では、8MBの画像A3(1403)の上に、1MBの画像C1406と1.5MBの画像D1407が含まれており、10.5MBが必要となる。Band4(1434)上では、2MBの画像A4(1404)と0.5MBの画像E1408が含まれており、2.5MBが必要となる。
ここで、各バンドの累積展開領域サイズに注目すると、Band3(1434)が10.5MBとなっており、最大展開領域サイズである10MBを超過している。よって、インタプリタ部203は、Band3(1434)をBand3a(1435)とBand3b(1436)とに分割する。分割した状態のバンドを図14(B)に示す。この分割した場合のページをページ1450として示す。このバンド分割処理によって、画像A3(1403)は画像A3a(1455)と、画像A3b(1456)に分割され、それぞれ処理がなされることになる。また、画像C1406は、画像Ca1451と画像Cb1452とに分割される。画像D1407は、画像Da1453と画像Db1454に分割して処理がなされることになる。
この時に各バンドで必要となる累積展開領域サイズを図14(B)の表1492に示す。ここではバンド分割処理によって生み出されたBand3a(1435)とBand3b(1436)に注目する。Band3a(1435)には、4MBの画像A3a(1455)、0.5MBの画像Ca1451、0.75MBの画像Da1453が含まれる。よって、Band3a(1435)を処理するのに必要となる累積展開領域サイズは4MB+0.5MB+0.75MB=5.25MBとなる。同様に、Band3b(1436)には、4MBの画像A3b(1456)、0.5MBの画像Cb1452、0.75MBの画像Db1454が含まれる。よって、Band3b(1436)を処理するのに必要となる累積展開領域サイズは4MB+0.5MB+0.75MB=5.25MBとなる。
この時、Band4(1434)で必要となる累積展開領域サイズは前述したとおり2.5MBである。これに1つ前のバンドであるBand3b(1436)で必要となる累積展開領域サイズ5.25MBを加えても、最大展開領域サイズ10MBを超過しない。よって、Band3b(1436)とBand4(1434)を結合し、新しいBand3b+4(1437)を生成する。結合した状態のバンドを図14(C)に示す。この結合した場合のページをページ1470に示す。このバンド結合処理によって、画像A3b(1456)と画像A1404は画像A3b+A4(1471)として(まとめて)処理がなされる。
この時に各バンドで必要となる累積展開領域サイズを図14(C)の表1493に示す。ここではバンド結合処理で生み出されたBand3b+4(1437)に注目する。Band3b+4(1437)上には、6MBの画像A3b+A4(1471)、0.5MBの画像Cb1452、0.75MBの画像Db1454および0.5MBの画像E1408がある。よって、Band3b+4(1437)を処理するのに必要となる累積展開領域サイズは、6MB+0.5MB+0.75MB+0.5MB=7.75MBとなる。表1493に示す各バンドでの累積展開領域サイズはいずれも最大展開領域サイズを超過していない。また、それぞれのバンドとその1つ上のバンドの展開領域サイズの合計はいずれも最大展開領域サイズを超過している。よって、この状態が最適化された1つの結果とみなすことができるので、このバンド条件を用いて、インタプリタ処理がなされる。
以上、本実施形態により、実施形態1の効果に加え、バンドのサイズを変更してより効率的なメモリの使い回しを実現することが可能となる。
<その他の実施形態>
上記実施形態において、非常にシンプルな最適化手段によってバンド高さの最適化処理を行ったが、更に複雑な最適化アルゴリズムを用いることも可能である。その基準としては、分割されるPDL画像(Image333)の個数を最小化する基準を用いることが出来る。あるいは各バンドでの累積展開領域サイズを平均化するようにバンドを分割する基準を用いることが出来る。その他、バンドに含まれるスキャンラインの上段から順番に最大展開領域サイズとなる毎にバンドを分割する基準を用いる事が出来る。
また、印刷データの種別が画像データのダイレクト印刷である場合には、DLM206に含まれるその他のデータのデータ領域207の割合は非常に小さくなる。特定の印刷データ種別に対しては、オブジェクト圧縮をせずにRAW画像領域208に保持できるかを判定することができる。この判定結果を元に、画像データをオブジェクト圧縮対象とするかどうかの判定結果を変えることも可能である。
また、PDL画像のサイズが所定の閾値よりも小さい場合は、圧縮の対象や分割の対象から除くようにしても構わない。
オブジェクト圧縮で用いる圧縮率は、実施形態1または2においては、特に言及をしていなかった。インタプリタ部203がPDL画像(Image333)を圧縮する際に、目標サイズ削減率を予め定義し、その値まで圧縮率を変化させながら何度か圧縮する手段を用いることも可能である。本発明を利用する場合には、分割したPDL画像群については同一の圧縮率を適用する事が望ましい。
加えて、RIPデバイス106の負荷が非常に大きくなるデータを生成した場合に、その負荷の大きいデータより前に生成した中間データの内容をRIPデバイス106が一旦背景画像に変換する事で、描画オブジェクト数を削減する処理を行っても良い。本処理を適用する例として、最大展開領域サイズを超過するバンドが多数存在する場合や、1バンドに存在できる描画オブジェクト数に上限を設けて、その上限を超過する場合などが挙げられる。この時、RIPデバイス106が中間データを背景画像に変換する処理を行う。同時に、インタプリタ部203は印刷データ211を前景オブジェクトに相当する中間データに変換する処理を行う。これにより、RIPデバイス106とインタプリタ部203は並行に動作する事が可能となり、最終的に画像を形成する時間を短縮する事ができる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (14)

  1. 印刷データを解釈して中間データを生成するインタプリタ部と、生成した中間データを保持する記憶部と、生成した中間データを解釈し、所定の単位で出力画像を描画する出力部とを有する画像形成装置であって、
    前記記憶部は、前記出力部が中間データを処理する際に用いられる所定のサイズの領域を更に確保され、
    前記インタプリタ部は、
    前記印刷データに含まれるオブジェクトそれぞれに対応する中間データを生成する際に、着目オブジェクトが予め定義された圧縮条件を満たすか否かを判定する圧縮判定手段と、
    前記着目オブジェクトが圧縮条件を満たす場合、前記着目オブジェクトの中間データを前記出力部が描画する際に複数のバンドにまたがって描画されるか否かを判定する分割判定手段と、
    前記着目オブジェクトが複数のバンドにまたがって描画されると判定された場合、前記着目オブジェクトが描画されるバンドのいずれかにおいて、着目バンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第一のサイズ判定手段と、
    前記所定のサイズを超えない場合、前記着目オブジェクトを前記着目バンドの境界で分割する分割手段と、
    前記着目オブジェクトが複数のバンドにまたがって描画されないと判定された場合、前記着目オブジェクトが描画されるバンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第二のサイズ判定手段と、
    前記中間データを圧縮する圧縮手段と
    を有し、
    前記記憶部は、
    前記圧縮判定手段にて前記圧縮条件を満たさないと判定されたオブジェクト、もしくは、前記第一のサイズ判定手段もしくは前記第二のサイズ判定手段にて前記所定のサイズを超えると判定された際のオブジェクトは、圧縮しない形式で前記中間データとして保持し、
    前記第一のサイズ判定手段もしくは前記第二のサイズ判定手段にて前記所定のサイズを超えないと判定された際のオブジェクト、もしくは、前記分割手段にて分割されたオブジェクトは、前記圧縮手段にて圧縮され、前記中間データとして保持することを特徴とする画像形成装置。
  2. 前記分割判定手段にて複数のバンドにまたがると判定されるオブジェクトは、2のバンドにまたがったオブジェクトであることを特徴とする請求項1に記載の画像形成装置。
  3. 前記分割判定手段にて複数のバンドにまたがると判定されるオブジェクトは、3以上のバンドにまたがったオブジェクトであることを特徴とする請求項1に記載の画像形成装置。
  4. 前記分割判定手段にて複数のバンドにまたがると判定されるオブジェクトは、更に、前記描画する領域が一定以上の高さを持つオブジェクトであることを特徴とする請求項2または3に記載の画像形成装置。
  5. 前記中間データを生成する前に、バンドの高さを決定する決定手段を更に有することを特徴とする請求項1乃至4のいずれか一項に記載の画像形成装置。
  6. 前記決定手段は、バンドの高さを決定する際に、
    着目バンドに含まれるオブジェクトのサイズの総和が前記所定のサイズを超える場合、当該着目バンドを分割し、
    着目バンドに含まれるオブジェクトのサイズの総和と、当該着目バンドに隣接するバンドに含まれるオブジェクトのサイズの総和との合計が、前記所定のサイズよりも小さい場合、前記着目バンドと前記隣接するバンドとを結合することを特徴とする請求項5に記載の画像形成装置。
  7. 前記決定手段は、分割されるオブジェクトの数を最小化するようにバンドの高さを決定することを特徴とする請求項5に記載の画像形成装置。
  8. 前記決定手段は、着目バンドに含まれるオブジェクトのサイズの総和が前記所定のサイズとなるようにバンドの高さを決定することを特徴とする請求項5に記載の画像形成装置。
  9. 前記決定手段は、複数のバンドそれぞれに含まれるオブジェクトのサイズが平均化するようにバンドの高さを決定することを特徴とする請求項5に記載の画像形成装置。
  10. 前記圧縮手段は、複数回の圧縮を行うことによりオブジェクトの圧縮率を変化させることを特徴とする請求項1乃至9のいずれか一項に記載の画像形成装置。
  11. 前記圧縮手段は、分割されたオブジェクトを同一の圧縮率にて圧縮することを特徴とする請求項1乃至10のいずれか一項に記載の画像形成装置。
  12. 前記所定のサイズの領域は、前記複数のバンドにて共有して用いられることを特徴とする請求項1乃至11のいずれか一項に記載の画像形成装置。
  13. 印刷データを解釈して中間データを生成するインタプリタ部と、生成した中間データを保持する記憶部と、生成した中間データを解釈し、所定の単位で出力画像を描画する出力部とを有する画像形成装置における画像形成方法であって、
    前記記憶部において、前記出力部が中間データを処理する際に用いられる所定のサイズの領域を更に確保され、
    前記インタプリタ部において、
    圧縮判定手段が、前記印刷データに含まれるオブジェクトそれぞれに対応する中間データを生成する際に、着目オブジェクトが予め定義された圧縮条件を満たすか否かを判定する圧縮判定工程と、
    分割判定手段が、前記着目オブジェクトが圧縮条件を満たす場合、前記着目オブジェクトの中間データを前記出力部が描画する際に複数のバンドにまたがって描画されるか否かを判定する分割判定工程と、
    第一のサイズ判定手段が、前記着目オブジェクトが複数のバンドにまたがって描画されると判定された場合、前記着目オブジェクトが描画されるバンドのいずれかにおいて、着目バンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第一のサイズ判定工程と、
    分割手段が、前記所定のサイズを超えない場合、前記着目オブジェクトを前記着目バンドの境界で分割する分割工程と、
    第二のサイズ判定手段が、前記着目オブジェクトが複数のバンドにまたがって描画されないと判定された場合、前記着目オブジェクトが描画されるバンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第二のサイズ判定工程と、
    圧縮手段が、前記中間データを圧縮する圧縮工程と、
    を有し、
    前記記憶部において、
    前記圧縮判定工程にて前記圧縮条件を満たさないと判定されたオブジェクト、もしくは、前記第一のサイズ判定工程もしくは前記第二のサイズ判定工程にて前記所定のサイズを超えると判定された際のオブジェクトは、圧縮しない形式で前記中間データとして保持し、
    前記第一のサイズ判定工程もしくは前記第二のサイズ判定工程にて前記所定のサイズを超えないと判定された際のオブジェクト、もしくは、前記分割工程にて分割されたオブジェクトは、前記圧縮工程にて圧縮され、前記中間データとして保持することを特徴とする画像形成方法。
  14. 印刷データを解釈して中間データを生成するインタプリタ部と、生成した中間データを保持する記憶部と、生成した中間データを解釈し、所定の単位で出力画像を描画する出力部とを有するコンピュータにおいて、
    前記記憶部は、前記出力部が中間データを処理する際に用いられる所定のサイズの領域を更に確保され、
    前記インタプリタ部を、
    前記印刷データに含まれるオブジェクトそれぞれに対応する中間データを生成する際に、着目オブジェクトが予め定義された圧縮条件を満たすか否かを判定する圧縮判定手段、
    前記着目オブジェクトが圧縮条件を満たす場合、前記着目オブジェクトの中間データを前記出力部が描画する際に複数のバンドにまたがって描画されるか否かを判定する分割判定手段、
    前記着目オブジェクトが複数のバンドにまたがって描画されると判定された場合、前記着目オブジェクトが描画されるバンドのいずれかにおいて、着目バンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第一のサイズ判定手段、
    前記所定のサイズを超えない場合、前記着目オブジェクトを前記着目バンドの境界で分割する分割手段、
    前記着目オブジェクトが複数のバンドにまたがって描画されないと判定された場合、前記着目オブジェクトが描画されるバンドに含まれる他のオブジェクトのサイズと前記着目オブジェクトのサイズとの総和が、前記所定のサイズを超えるか否かを判定する第二のサイズ判定手段、
    前記中間データを圧縮する圧縮手段、
    として機能させ、
    前記記憶部において、
    前記圧縮判定手段にて前記圧縮条件を満たさないと判定されたオブジェクト、もしくは、前記第一のサイズ判定手段もしくは前記第二のサイズ判定手段にて前記所定のサイズを超えると判定された際のオブジェクトは、圧縮しない形式で前記中間データとして保持され、
    前記第一のサイズ判定手段もしくは前記第二のサイズ判定手段にて前記所定のサイズを超えないと判定された際のオブジェクト、もしくは、前記分割手段にて分割されたオブジェクトは、前記圧縮手段にて圧縮され、前記中間データとして保持されることを特徴とするプログラム。
JP2011269397A 2011-12-08 2011-12-08 画像形成装置、画像形成方法、およびプログラム Pending JP2013119242A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011269397A JP2013119242A (ja) 2011-12-08 2011-12-08 画像形成装置、画像形成方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011269397A JP2013119242A (ja) 2011-12-08 2011-12-08 画像形成装置、画像形成方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2013119242A true JP2013119242A (ja) 2013-06-17

Family

ID=48772128

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011269397A Pending JP2013119242A (ja) 2011-12-08 2011-12-08 画像形成装置、画像形成方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP2013119242A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016051703A1 (en) * 2014-09-29 2016-04-07 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and storage medium
JP2016187901A (ja) * 2015-03-30 2016-11-04 セイコーエプソン株式会社 画像処理装置、画像処理システムおよび画像処理方法
JP2018047611A (ja) * 2016-09-21 2018-03-29 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016051703A1 (en) * 2014-09-29 2016-04-07 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and storage medium
JP2016071545A (ja) * 2014-09-29 2016-05-09 キヤノン株式会社 画像処理装置、画像処理方法、プログラム
US10089561B2 (en) 2014-09-29 2018-10-02 Canon Kabushiki Kaisha Generating a raster image region by rendering in parallel plural regions of smaller height and segmenting the generated raster image region into plural regions of smaller width
JP2016187901A (ja) * 2015-03-30 2016-11-04 セイコーエプソン株式会社 画像処理装置、画像処理システムおよび画像処理方法
JP2018047611A (ja) * 2016-09-21 2018-03-29 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
US10762401B2 (en) 2016-09-21 2020-09-01 Canon Kabushiki Kaisha Image processing apparatus controlling the order of storing decompressed data, and method thereof

Similar Documents

Publication Publication Date Title
US8953214B2 (en) Print control method, information processing apparatus, and recording medium
JP4543340B2 (ja) 画像処理装置および画像形成システムとプログラム
JP5643574B2 (ja) 画像処理装置及び画像処理方法
JP5051327B1 (ja) 画像処理装置及びプログラム
EP2172905A1 (en) Image processing apparatus, image processing method, program therefor, and medium storing program
US8854638B2 (en) Variable printing control apparatus and control program
US8649032B2 (en) Image processing apparatus, image processing method, and storage medium
JP5171461B2 (ja) 情報処理装置および情報処理方法並びに情報処理システム及びプログラム
JP2014000753A (ja) 画像処理装置、画像処理方法、プログラム
JP5691688B2 (ja) 印刷制御装置及び印刷制御プログラム、印刷制御方法
JP5517607B2 (ja) 情報処理装置、画像圧縮方法、及びコンピュータプログラム
CN102681800B (zh) 图像处理装置及信息处理方法
JP2013119242A (ja) 画像形成装置、画像形成方法、およびプログラム
US10325189B2 (en) Image processing apparatus and image processing method that perform, in units of band areas, rasterization based on second intermediate data stored in a first memory area and compressed raster data stored in a second memory area
JP2015005131A (ja) 印刷データ処理装置、プログラム、及びシステム
JP5879912B2 (ja) 印刷データ生成プログラム、印刷システム及び印刷方法
JP6471660B2 (ja) 情報処理装置及びプログラム
US10089561B2 (en) Generating a raster image region by rendering in parallel plural regions of smaller height and segmenting the generated raster image region into plural regions of smaller width
US8526052B2 (en) Print data processing apparatus, control method for print data processing apparatus, and storage medium
JP2017194932A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2017170884A (ja) 画像処理装置、その制御方法、およびプログラム
JP7467211B2 (ja) 画像処理装置、画像処理装置の画像処理方法およびプログラム
JP5759511B2 (ja) 描画命令を処理する装置、方法及びプログラム
JP2017189968A (ja) 画像処理装置及び画像処理方法
JP4343976B2 (ja) 画像形成装置