JP2017170884A - 画像処理装置、その制御方法、およびプログラム - Google Patents

画像処理装置、その制御方法、およびプログラム Download PDF

Info

Publication number
JP2017170884A
JP2017170884A JP2017019571A JP2017019571A JP2017170884A JP 2017170884 A JP2017170884 A JP 2017170884A JP 2017019571 A JP2017019571 A JP 2017019571A JP 2017019571 A JP2017019571 A JP 2017019571A JP 2017170884 A JP2017170884 A JP 2017170884A
Authority
JP
Japan
Prior art keywords
image data
area
rendering
processing apparatus
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.)
Granted
Application number
JP2017019571A
Other languages
English (en)
Other versions
JP2017170884A5 (ja
JP6904717B2 (ja
Inventor
辰昇 鈴木
Tatsunobu Suzuki
辰昇 鈴木
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 US15/454,374 priority Critical patent/US10552717B2/en
Priority to CN201710165979.1A priority patent/CN107203354B/zh
Publication of JP2017170884A publication Critical patent/JP2017170884A/ja
Publication of JP2017170884A5 publication Critical patent/JP2017170884A5/ja
Application granted granted Critical
Publication of JP6904717B2 publication Critical patent/JP6904717B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)
  • Image Generation (AREA)

Abstract

【課題】印刷データのページに、バンド境界を跨ぐように画像データが含まれていても、当該ページのレンダリング開始の遅れを抑制できるようにする。【解決手段】本発明に係る画像処理装置は、印刷データに基づいてページ画像の第1の領域をレンダリングする第1のレンダリングユニットと、印刷データに基づいてページ画像の第2の領域をレンダリングする第2のレンダリングユニットと、コントローラであって、前記第1の領域と前記第2の領域に跨って配置される画像データを印刷データに基づき取得し、前記画像データにアクセスした前記第1のレンダリングユニットに、前記画像データの全画素のうち前記第1の領域内の画素でレンダリングさせ、前記画像データにアクセスした前記第2のレンダリングユニットに、前記画像データの全画素のうち前記第2の領域内の画素でレンダリングさせる、コントローラと、を備えることを特徴とする。【選択図】図8

Description

本発明は、印刷データのバンド並列レンダリング技術に関する。
従来より、ホストコンピュータ等から受信した印刷データ(PDLデータ)のページのレンダリングを高速化するための様々な技術が提案されている。例えば特許文献1には、1つのコアが1ページ分のPDLデータからそのページの中間データをバンド単位で生成し、そして、複数のコアが異なるバンドの中間データを並列でレンダリングする画像形成装置が開示される。
特開2012−158951号公報
PDLデータには、ページの構成要素の一部として、画像データが含まれていることがある。また、こうした画像データは、複数のバンドに跨って配置されることがある。バンドを跨る画像データを、上記特開2012−158951号公報の技術を用いてバンド並列で処理するには、当該画像データをバンド単位で分割し、各バンドに対応する分割画像のそれぞれについて中間データを生成してレンダリングすることになる。これでは、処理コストが増大してしまう。
本発明に係る画像処理装置は、印刷データに基づいてページ内の第1の領域をレンダリングする第1のレンダリングユニットと、前記印刷データに基づいて前記ページ内の第2の領域をレンダリングする第2のレンダリングユニットと、コントローラであって、前記第1の領域と前記第2の領域に跨って配置される画像データを、前記印刷データに基づき取得し、前記画像データにアクセスした前記第1のレンダリングユニットに、前記画像データの全画素のうち前記第1の領域内の画素でレンダリングさせ、前記画像データにアクセスした前記第2のレンダリングユニットに、前記画像データの全画素のうち前記第2の領域内の画素でレンダリングさせる、コントローラと、を備えたことを特徴とする。
本発明によれば、印刷データのページに、バンド境界を跨ぐように画像データが含まれていても、当該ページのレンダリング開始の遅れを抑制できる。
画像形成装置のハードウェア構成の一例を示す図である。 (a)は画像形成装置の印刷処理に関するソフトウェア構成を示すブロック図であり、(b)は実施例1に係るRIPのハードウェア構成例を示す図である。 印刷ジョブからビットマップ画像データが生成されるまでの流れを示すフローチャートである。 圧縮画像を含むページの一例を示す図である。 図4のページに対応する印刷ジョブを示す図である。 PDLデータに対応する中間データを示す図である。 バンド毎に並列でレンダリング処理する過程を説明する図である。 第1レンダリング処理の流れを示すフローチャートである。 スキャンライン処理の詳細を示すフローチャートである。 伸長画像格納用メモリ内に画像データが格納される様子を表した図である。 第2レンダリング処理の流れを示すフローチャートである。 実施例2に係るRIPのハードウェア構成例を示す図である。
以下、添付の図面を参照して、本発明を実施する形態について説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
まず、本実施例に係る画像形成装置のハードウェア構成について説明する。図1は、画像形成装置のハードウェア構成の一例を示す図である。図1に示す画像形成装置100は、ホストPC130とLAN120を介して接続されている。印刷を行いたいユーザは、ホストPC130において印刷対象の文書についての印刷ジョブを生成し、ホストPC130からLAN120を介して画像形成装置100に対して送信する。印刷ジョブにはページ記述言語(Page Description Language)で記述された、文字、写真、図形といったオブジェクトをページ内にどのように配置するかを指定するデータ(PDLデータ)を含んでいる。そのため印刷ジョブは印刷データとも呼ばれる。そして、本実施例では、PDLデータのページ内に写真オブジェクトの圧縮画像を含んでいることが前提となる。なお、ここでの画像形成装置100は、中間データに対しバンド単位の並列レンダリングを行なって印刷を行うSFP(Single Function Printer)を想定している。しかし、画像形成装置はコピーやFAXといった複数の機能を備えたMFP(Multi Function Printer)であってもよい。中間データに対してバンド単位の並列レンダリングによって印刷を行う機能を有する装置であれば、本実施例の手法は幅広く適用可能である。以下、本実施例の画像形成装置100を構成する各部について説明する。
図1において、破線の矩形はコントローラ部を示し、CPU101、RAM102、ROPM103、大容量記憶装置104、操作部I/F106、ネットワークI/F107、システムバス108、イメージバス109で構成される。CPU101は各種演算処理を行なうプロセッサであり、画像形成装置100全体の制御を司る。RAM102は、CPU101が動作するためのシステムワークメモリである。また、RAM102は、ホストPC130から受け取った印刷ジョブ内のPDLデータを解釈して生成される中間データを一時的に格納したり、中間データをレンダリング処理する際の作業領域でもある。ROM103は、システムのブートプログラムなどを格納する。大容量記憶部104は、例えばハードディスクドライブであり、各種処理のためのシステムソフトウェアやホストPC130から受信した印刷ジョブを格納する。
操作部105は、各種メニューや印刷データ情報等を表示するためのディスプレイ及びユーザが各種入力操作を行うためのボタンやキーを有し、操作部I/F106を介してシステムバス109と接続される。
ネットワークI/F107は、LAN120を介してホストPC130を含む外部装置との間で各種データ・情報のやり取りを行うインターフェースである。これら各部は、システムバス108に接続されている。
イメージバスI/F109は、システムバス108と画像データを高速に転送するイメージバス110とを接続するインターフェースであって、データ構造を変換するバスブリッジである。イメージバス110には、RIP(Raster Image Processor)111とプリンタ部112が接続されている。
RIP111は、複数のプロセッサ、メモリ、伸張処理回路などで構成され、CPU101からの指示に基づき、PDLデータから生成された中間データであるDL(ディスプレイリスト)をラスタ形式の画像データ(ビットマップ画像データ)に変換する。プリンタ部112は、RIP111で生成されたビットマップ画像データをデバイスI/F113を介して受け取って、紙等の記録媒体に画像を形成して出力する。なお、本明細書において「レンダリング」とは、中間データであるDLからラスタ形式の画像データを生成することを意味し、いわゆるラスタライズと同義である。
図2(a)は、画像形成装置100の印刷処理に関するソフトウェア構成を示すブロック図であり、PDLデータ解析モジュール201、中間データ生成モジュール202、レンダリングモジュール203で構成される。
PDLデータ解析モジュール201は、ホストPC130から入力された印刷ジョブに含まれるPDLデータを解析し、ページ情報と、当該ページ情報に含まれるオブジェクト情報とを取得する。取得したページ情報とオブクジェト情報は、中間データ生成モジュール202に送られる。
中間データ生成モジュール202は、PDLデータ解析モジュール201から受け取ったページ情報及びオブジェクト情報に基づいて、オブジェクトの描画命令等で構成される中間データ(DL)を生成する。生成した中間データは、レンダリングモジュール203に送られる。
レンダリングモジュール203は、生成された中間データに基づいて、バンド毎に並列でレンダリングを行い、ページ単位でビットマップ画像データを生成する。図2(b)は、レンダリングモジュール203によるバンド毎の並列レンダリングを可能にする、本実施例に係るRIP111のハードウェア構成例を示す図である。RIP111は、第1レンダリング処理部211、第2レンダリング処理部212、及び、中間データに含まれる圧縮画像を第1レンダリング処理部211からの伸長指示に基づいて伸長する伸長処理部213で構成される。伸長処理部213で伸張された後の画像データは、伸長画像格納用メモリ220に格納される。また、伸張処理部213は、内部にレジスタ(不図示)を有しており、受け取った伸長指示のうち伸長処理が完了した数(解凍された圧縮画像の数)を当該内部レジスタに記憶する。この内部レジスタに記憶される数値は、1ページ分の処理が終了する毎に“0”に初期化される。なお、本実施例では、PDLデータ解析モジュール201と中間データ生成モジュール202は、CPU102が所定のプログラムに従いRAM102を用いて実現する構成を想定している。しかしながら、PDLデータを解析してビットマップ画像データを生成するまでのすべての工程をRIP111内の閉じた構成の中で行うようにしてもよい。また、本実施例では前述のRAM102を伸長画像格納用メモリ220として用いることを想定しているが、RAM102とは別個に伸長画像格納のための専用メモリを設けてもよい。
<用語の説明>
ここで、本実施例のレンダリング処理で登場する、「エッジ」「スキャンライン」「スパン」「レベル」「フィル」「バンド」の各用語について確認しておく。
エッジとは、ページ内に存在するオブジェクト同士の境界、又はオブジェクトと背景の境目を指す。すなわち、エッジはオブジェクトのアウトラインである。
スキャンラインとは、画像形成処理において画像データが連続的にメモリ走査される主走査方向のラインである。スキャンラインの高さは1ピクセルとなっている。
スパンとは、単一のスキャンラインにおいて、エッジ間の区間を指す。この区間のことを閉領域とも呼ぶ。
レベルとは、ページ内に描画するオブジェクト同士の上下関係を示す情報であり、各オブジェクトには必ずそれぞれ異なるレベル番号が割り振られる。レベルは、Zオーダーとも呼ばれ、ページの背面から前面に向かう方向(ページの描画範囲をXY平面で表現した際のXY平面に直交する方向:Z軸方向)に沿ったオブジェクトの並び順を表す。
フィルとは、スパンに対する塗り情報であり、ビットマップ画像データやシェーディングのように1ピクセル毎に異なる色値を持つフィルや、ベタ塗りのようにスパン中で色値の変化がないフィルが存在する。したがって、1つのスパン(閉領域)については、当該スパンに関連するオブジェクトの数だけレベルが存在し、レベルの数だけ異なるフィルを有することになる。また、ビットマップ画像データがフィルとして指定される場合、該ビットマップ画像データはあらかじめRAM102に格納される。PDLデータに圧縮画像が含まれる場合、フィルとしてRIP111が参照する前にRAM102上の所定位置に伸長後のビットマップ画像データが格納されることになる。
バンドとは、複数のスキャンラインを束ねたものを指す。
続いて、印刷ジョブからビットマップ画像データを生成するまでの大まかな処理の流れを説明する。図3は、印刷ジョブからビットマップ画像データが生成されるまでの流れを示すフローチャートである。以下では、図4に示すような、写真属性のオブジェクト401〜403の圧縮画像を含むページの印刷ジョブがホストPC130から送信されたものとして説明を行なうものとする。なお、本実施例の場合、後述するステップ303におけるレンダリング処理を並列で行なうことを目的に、予め印刷ジョブのデータを分割するようなことは行わない。
ステップ301では、PDLデータ解析モジュール201が、ホストPC130から受信した印刷ジョブ内の、図4のページに対応するPDLデータを解析する。図5は、図4のページに対応する印刷ジョブを示している。
印刷ジョブ500は、印刷ジョブの開始を示すジョブ開始命令510、印刷対象の画像を特定するPDLデータ520、印刷ジョブの終了を示すジョブ終了命令530から構成される。ジョブ開始命令510は、PDLデータ520の印刷処理時の解像度を設定する印字解像度情報、片面/両面印刷を指定する印刷面指定情報、給紙段を指定する給紙段選択命令、及びPDLデータ520の種別を示すPDL識別子で構成される。なお、本実施例では簡単のために省略したが、ジョブ開始命令510には用紙を綴じるために余白位置を指定する命令や、排紙口を選択する命令等も含まれる。また、ジョブ開始命令510には上述した印刷環境の他に、操作部105から設定可能な各種命令も含まれ得る。PDLデータ520は、PDLデータ開始命令521、イメージ描画命令522〜524、改ページ命令525、及びPDLデータ終了命令526、の計6つの命令を含んでいる。PDLデータ開始命令521はPDLデータ520の開始を示し、各ページの用紙サイズを選択する用紙サイズ選択命令、描画命令で用いられる単位を指定するサイズ単位指定命令、描画命令が有効な領域を示す描画領域設定命令を含む。イメージ描画命令522は、図4のページにおけるオブジェクト403に対応する描画命令であり、その描画位置、オブジェクトの幅・高さ、圧縮形式、圧縮画像のデータサイズ、圧縮画像データから構成される。ここで描画位置とは、ページの左上隅を原点(0,0)としたときの、対象オブジェクトが描画される開始点の座標(後述の描画開始座標と同じ)のことである。同様に、イメージ描画命令523はオブジェクト402に対応する描画命令である。また、イメージ描画命令524はオブジェクト401に対応する描画命令である。改ページ命令525は、以降の描画命令が次ページのものであることを示す命令である。そして、PDLデータ終了命令526は、PDLデータの終了を意味する命令である。
図3のフローの説明に戻る。
ステップ302では、中間データ生成モジュール202が、解析したPDLデータの情報を基に、ビットマップ画像データ生成のために必要な中間データ(DL)の生成を行う。中間データの生成には、周知技術を適用すればよい。図6は、図5に示した印刷ジョブ500のPDLデータ520に対応する中間データを示している。図6に示す中間データ600は、描画フレーム設定命令601、描画領域設定命令602、圧縮画像伸張命令603、604、607、描画命令605、606、608、及びページ終了命令609、の計9つの命令を含む。図4のページの例では、イメージ描画命令524の中間データとして、圧縮画像伸長命令603および描画命令605が生成される。同様に、イメージ描画命令523の中間データとして、圧縮画像伸長命令604および描画命令606が生成される。そして、イメージ描画命令522の中間データとして、圧縮画像伸長命令607および描画命令608が生成される。また、本ステップでは、この中間データを生成する際に、PDLデータ520に含まれるイメージ描画命令の描画位置を参照して、各イメージ描画命令に対応する中間データの描画命令をソートする。具体的には、中間データに含まれる描画命令の描画開始座標を、Y座標が昇順となるようにまずはソートし、次に描画開始座標のY座標が同一の描画命令についてはX座標が昇順となるようにソートする。また、このソート処理において、描画命令が圧縮画像についての描画命令であれば、対応する圧縮画像伸長命令をその描画命令の直前に挿入する。直前に挿入する理由は、描画命令の実行直前まで圧縮画像の伸長を待機することで、伸長後の画像データを格納するRAM102を極力省メモリ化するためである。なお、ソート後の描画命令の描画開始座標のY座標が同一であるような圧縮画像の描画命令については、それら複数の描画命令の前に、対応する複数の圧縮画像伸長命令を挿入するようにする。このように中間データに含まれる描画命令をソートすることで、レンダリング処理において、ページの開始点(すなわちX座標およびY座標がともに“0”の原点)から画素順にレンダリング(スキャンラインレンダリングともいう)を行うことができる。
図6に示す中間データ600において、描画フレーム設定命令601は、色空間と階調を指定する命令である。描画領域設定命令602は、ページ画像の幅と高さを指定する命令である。圧縮画像伸長命令603は、PDLデータ500におけるイメージ描画命令524に対応する圧縮画像の伸長命令である。この圧縮画像伸張命令603には、イメージ描画命令524に含まれる圧縮画像データの参照先先頭アドレスと伸長処理に使用する量子化テーブルの参照先先頭アドレス、さらに、伸長後の画像データを格納するのに必要なデータサイズの情報が記述される。なお、格納に必要なデータサイズは、色空間並びに画像の幅と高さとに基づいて算出される。圧縮画像伸長命令604は、同様に生成された、イメージ描画命令523に対応する圧縮画像の伸長命令である。また、圧縮画像伸長命令607は、同様に生成された、イメージ描画命令522に対応する圧縮画像の伸長命令である。描画命令605は、圧縮画像伸長命令603に従って伸長する画像の描画コマンドを示し、描画開始座標、パス点列(描画領域を示す頂点各座標)、レベル(色)合成処理の有無の情報を含む。本実施例では、描画命令605の描画領域内には1つの画像を描画するだけで、背面や上位面にある画像との合成は発生しないので、レベル合成は“なし”となっている。描画命令606は、同様に生成された、圧縮画像伸長命令604で伸長する画像の描画コマンドである。また、描画命令608は、同様に生成された、圧縮画像伸長命令607で伸長する画像の描画コマンドである。そして、ページ終了命令609は、ページの終了を示す命令である。このように、PDLデータの解析で取得されたオブジェクト情報をスキャンライン上での出現順にソートすることで中間データが生成される。そのため、図5に示すPDLデータ500と、図6に示す中間データ600とでは描画命令の順番が異なることになる。すなわち、PDLデータ500では、オブジェクト403に対応する描画命令522が最初に来ているのに対し、図6に示す中間データ600では、最も原点(0,0)に近いオブジェクト401に対応する描画命令605が最初に来ている。
また、中間データは、RIP111が圧縮画像伸長のために確保する伸長画像格納用メモリ220としてのRAM102内の領域を、参照する描画命令の処理が終了した時点で破棄できるように生成される。すなわち、図6の中間データ600では、描画命令605と606の前に圧縮画像伸張命令603と604が来るように、描画命令608の前に圧縮画像伸張命令607が来るように各命令の順序を構成する。これによりRIP111は、描画命令605、606、608を処理する時点で必要な伸長後の画像を参照でき、描画命令605と606の処理が完了し、圧縮画像伸張命令603と604の伸長結果を破棄した後に圧縮画像伸張命令607を処理できるようになる。
図3のフローの説明に戻る。
ステップ303では、レンダリングモジュール203が、ステップ302で生成した中間データに基づいて、図2(b)の各処理部211〜213を用いてバンド単位で並列にレンダリングを行い、ビットマップ画像データを生成する。本実施例の特徴であるバンド並列レンダリング処理については、項を改めて説明する。
以上が、印刷ジョブからビットマップ画像データが生成されるまでの大まかな流れである。
<バンド並列レンダリング処理>
以下、第1レンダリング処理部211と第2レンダリング処理部212とを協働させてバンド単位でのレンダリングを並列で行なう手法について詳しく説明する。以下では、1つのバンドを1024個(1024本)のスキャンラインの集合とし、ページ最上部に位置するバンドを1バンド目とする。図7は、図6の中間データに基づいて、バンド毎に並列でレンダリング処理する過程を説明する図である。レンダリングモジュール203は、図6の中間データに基づきページ上部から順にスキャンライン単位でビットマップ画像を生成していく。この時、ページを所定のバンド領域(ここでは1024本分のスキャンラインの束)に区分し、奇数バンド領域については第1レンダリング処理部211によって、偶数バンド領域については第2レンダリング処理部212によってビットマップ画像が生成される。このように、第1レンダリング処理部211と第2レンダリング処理部212は、それぞれページ全体の中間データを解析して並列に動作し、それぞれに割り当てられたバンド領域をレンダリングする。
<第1レンダリング処理>
まずは、第1レンダリング処理部211が担当する第1のバンド(ここでは奇数バンド)についてのレンダリング処理(第1レンダリング処理)について説明する。図8は、本実施例に係る、第1レンダリング処理の流れを示すフローチャートである。
ステップ801では、第1レンダリング処理部211が、ステップ302で生成された中間データに含まれる命令を1つ読み込む。中間データに含まれる命令のうちどれを読み込むのかはポインタによって管理され、先頭の命令から順に読み込まれる。ポインタによって指し示された命令の読み込みが完了すると、ポインタは次の命令へと移行する。こうして、中間データに含まれる命令が順次読み込まれる。
ステップ802では、第1レンダリング処理部211が、ステップ801で読み込んだ命令が、ページ終了命令かどうか判定される。読み込んだ命令が、ページ終了命令でない場合はステップ803に進む。一方、ページ終了命令である場合は本処理を終える。
ステップ803では、第1レンダリング処理部211が、オブジェクトの描画を指示する描画命令かどうか判定する。読み込んだ命令が、描画命令でない場合はステップ804に進む。一方、描画命令である場合はステップ807に進む。
ステップ804では、第1レンダリング処理部211が、ステップ801で読み込んだ命令が圧縮画像伸長命令かどうか判定する。読み込んだ命令が圧縮画像伸長命令である場合はステップ805に進む。一方、圧縮画像伸長命令でない場合はステップ811に進む。
ステップ805では、第1レンダリング処理部211が、読み込んだ圧縮画像伸長命令の数(伸長指示数)をカウントする。伸長命令が読み込まれると伸長処理部213に圧縮画像の伸長が指示されるので、このときの第1レンダリング処理部211は、伸長処理部213に出した伸長指示数をカウントするカウント部に対応している。その初期値は“0”であり、図6の中間データの場合、オブジェクト403に対応する圧縮画像伸張命令607を読み込んだ時点で、カウント値は“3”となる。このカウント値は、ページ終了命令を読み込んだ際にリセットされ初期値“0”に戻る。つまり、カウントされる圧縮画像伸長命令の数はページ毎にリセットされ、バンド毎にはリセットされない。
ステップ806では、第1レンダリング処理部211が、読み込まれた圧縮画像伸張命令に係る圧縮画像の伸張を、伸長処理部213に指示する。当該指示を受けて伸長処理部213は、対象の圧縮画像を伸張し、伸長画像格納用メモリ220としてのRAM102に伸張された画像を展開する。圧縮画像の伸長処理が完了すると、伸長処理部213は、処理が完了した伸長指示の数を内部レジスタに格納する。なお、この内部レジスタの初期値は“0”であり、本フローの終了時にリセットされ、再び“0”となる。第1レンダリング処理部211によって圧縮画像の伸張が指示された後は、ステップ801に戻る。
ステップ807では、第1レンダリング処理部211が、ステップ801で読み込んだ描画命令によってオブジェクトが描画されることになるスキャンライン上での、当該オブジェクトのエッジの座標(X座標)を導出する。例えば図7におけるオブジェクト401の場合であれば、その輪郭となる矩形の左右両端2箇所のX座標が導出されることになる。ここで導出されたエッジの座標情報は、後述のエッジソート処理(ステップ901)で用いられる。なお、本ステップでは、1つのオブジェクトについて、隣接する他方のバンド(ここでは、偶数バンド)に属する部分のエッジ座標も導出される。これは、あるスキャンライン上のエッジ座標の導出には、そのスキャンラインの1つ前のスキャンライン上のエッジ座標を用いるようにしているためである。例えば、あるエッジの座標が、スキャンラインが1つ進むごとにΔxだけずれるならば、直前のエッジ座標にΔxを加算することで、導出対象エッジの座標を簡単に求めることができる。こうして、エッジ座標の導出を終えた描画命令は、この後のスキャンライン処理に備え、スプールされる。
ステップ808では、第1レンダリング処理部211が、ステップ807でスプールした描画命令に続く命令(次の読込み対象の命令)が描画命令であるかどうかをポインタに基づき判定する。これは、後に行なうスキャンライン処理を、Y座標方向に近接した位置にある複数のオブジェクトについてまとめて処理するためである。次の読込み対象の命令が描画命令である場合は、ステップ809に進む。一方、次の読込み対象の命令が描画命令以外の命令である場合は、ステップ810に進む。
ステップ809では、第1レンダリング処理部211が、現時点でスプールされているすべての描画命令における描画範囲と、次の読込み対象の描画命令における描画範囲とが、Y座標の方向(副走査方向)で重なりを持つか判定する。この場合において、現時点でスプールされているすべての描画命令には、直近のステップ807でスプールされた描画命令を含む。また、次の読込み対象の描画命令は、判定のために参照するのみで実際に読込みを行なうわけではない。この判定では、現にスプールされているいずれかの描画命令による描画範囲の開始Y座標と終了Y座標との範囲と、次の読込み対象の描画命令による描画範囲の開始Y座標と終了Y座標との範囲との間に重複があるかがチェックされる。判定の結果、重なりを持つ場合は、さらに他のオブジェクトとの重なりの有無を調べるべくステップ801に戻る。一方、重なりを持たない場合は、現時点でスプールされている描画命令分の描画範囲のスキャンライン処理を行うべく、ステップ810に進む。
ここで、スキャンライン処理の実行が決定されるまでの実際の流れを、図6の中間データの場合を例に説明する。まず、2つのオブジェクト401及び402についての圧縮画像伸張命令603及び604が読み込まれ、対応する2つの圧縮画像の伸張が指示される(S801〜805)。続いて、オブジェクト401についての描画命令605が読み込まれてそのエッジ座標が導出され、当該描画命令605がスプールされる(S807)。次の読込み対象の命令は、オブジェクト402についての描画命令606なので、描画範囲のY座標方向での重なりの有無がチェックされ、重なり有りと判定される(S809でYes)。そして、オブジェクト402についての描画命令606が読み込まれ(S801)、そのエッジ座標の導出と当該描画命令606のスプールがなされる(S807)。この時点で、次の読込み対象の命令は、オブジェクト403についての圧縮画像伸張命令607なので、ステップ808の判定で「描画命令以外」に進むこととなり、2つの描画命令605及び606についてのスキャンライン処理がまとめて実行されることになる。なお、仮に、描画命令606と圧縮画像伸長命令607との間に、オブジェクト401及び402とY座標方向に重なった例えば図形属性のオブジェクトについての描画命令αが存在していたとする。この場合は、描画命令606のスプールがなされた時点で、次の読込み対象の命令は、当該図形オブジェクトについての描画命令αとなり、さらに描画範囲のY座標方向での重なりの有無がチェックされ、重なり有りと判定される(S809でYes)。その結果、当該図形オブジェクトについての描画命令αが読み込まれ(S801)、3つのオブジェクトについてのスキャンライン処理がまとめて実行されることになる。
ステップ810では、第1レンダリング処理部211が、現時点でスプールされている描画命令分の描画範囲を対象にスキャンライン処理を実行する。ここでは、奇数バンド(図7の例では、1バンド目、3バンド目、5バンド目)の領域についてのビットマップ画像データが生成されることになる。このスキャンライン処理の詳細については、後述する。
ステップ811では、第1レンダリング処理部211が、描画命令及び圧縮画像伸張命令以外の命令(描画フレーム設定命令や描画領域設定命令など)に基づく処理を実行する。例えば、描画フレーム設定命令601に基づいて処理対象ページの階調数の設定などが実行される。なお、図6の中間データを見れば分かるように、描画フレーム設定命令や描画領域設定命令は、レンダリング処理の最初の段階で実行される。
ステップ812では、第1レンダリング処理部211が、中間データ内のすべての命令についての処理が完了したか判定する。未処理の命令があればステップ801に戻り、次の命令を読み込む。なお、未処理の命令があるということは、ページ終了命令以外の命令が残っていることを意味している。
以上が、第1レンダリング処理部211が担当する奇数バンド領域についての第1レンダリング処理の内容である。なお、第1レンダリング処理部が偶数バンドを担当するような構成であってもよい。
<スキャンライン処理>
続いて、上述のステップ810におけるスキャンライン処理の詳細について説明する。この処理は、Y座標方向にまとまりのある1以上のオブジェクトに関する、スプールされている描画命令分の描画範囲内の開始Y座標のスキャンラインから順に、スキャンライン毎に行われる。以下では、描画範囲内のスキャンラインのうち処理対象となるスキャンラインのことを「注目スキャンライン」と呼ぶこととする。図9は、スキャンライン処理の詳細を示すフローチャートである。以下、図9のフローに沿って説明する。
ステップ901では、スプールされている描画命令分の描画範囲内のスキャンラインの中から注目スキャンラインが決定される。処理開始直後の段階では、上述のとおり開始Y座標のスキャンラインが注目スキャンラインに決定される。
ステップ902では、注目スキャンラインについて、エッジソート処理がなされる。具体的には、まず、注目スキャンライン上に現れる1つまたは複数のオブジェクトを特定する。そして、当該特定されたオブジェクトについて、前述のステップ807で導出されたエッジ座標から注目スキャンラインにおけるエッジ座標を取得し、当該特定されたオブジェクトをX座標昇順で並び替える。この並び替えによって、ビットマップ画像データにおける画素値の生成をX座標昇順で行なうことが可能になる。
ステップ903では、注目スキャンラインについて、レベルソート処理がなされる。具体的には、ステップ902で順番に並べたエッジ間(スパン)の画素の色に影響を与えるオブジェクトをさらに特定し、当該特定されたオブジェクトをレベル順に並べ替える。
ステップ904では、伸張指示がなされた圧縮画像についての伸張処理がすべて完了したかどうか判定される。具体的には、前述のステップ805で得られた伸長指示数(カウント値)と、伸長処理部213の内部レジスタのカウント値(伸張処理が完了した画像数)とを比較する。伸張指示数のカウント値よりも伸長処理部213の内部レジスタのカウント値が小さい場合は、等しくなるまで(例えば一定間隔毎に)比較を繰り返す。なお、一定間隔毎の比較に代えて、例えば1つの圧縮画像に対する伸張処理が完了する毎に比較を行ってもよい。このような比較の結果、両カウント値が等しくなれば、ステップ905に進む。前述の2つの描画命令605及び606についてのスキャンライン処理の場合、ステップ805で読み込む圧縮画像伸長命令の数は“2”であるため、内部レジスタのカウンタ値(伸張処理が完了した画像数)が“2”となった段階でステップ905に進むことになる。
ステップ905では、注目スキャンラインが処理対象のバンド(ここでは奇数番目)に含まれているかどうか判定される。注目スキャンラインが処理対象のバンドに含まれている場合は、ステップ906に進む。一方、注目スキャンラインが非処理対象のバンド(ここでは偶数番目)に含まれている場合は、ステップ907に進む。
ステップ906では、注目スキャンラインについて、ビットマップ画像データにおける画素値を生成するフィル処理がなされる。描画対象のオブジェクトが、圧縮画像の写真オブジェクトである本実施例の場合、伸長画像格納用メモリ220に展開された伸長画像のデータを読み出し、レベルソートされたオブジェクトに基づいてスパン毎に、画素値の生成が行なわれる。生成された画素値は、処理対象ページのビットマップ画像データにおける画素値として、RAM102に格納される。
ステップ907では、スプールされている描画命令分の描画範囲内のスキャンラインの処理が完了したか判定される。未処理のスキャンラインがある場合は、ステップ901に戻って次の注目スキャンラインを決定して処理を続行する。一方、処理が完了している場合は、ステップ908に進み、スプールされている描画命令を破棄して本処理を抜ける。
ここで、図7の3バンド目についてのスキャンライン処理を例に具体的に説明する。図10は、伸長画像格納用メモリ220としてのRAM102内に画像データが格納される様子を表した図である。図10において、領域1010は圧縮画像伸長命令603によって伸長された画像データを格納するために確保された領域であり、領域1020は圧縮画像伸長命令604によって伸長された画像データを格納するために確保された領域である。このように、RAM102の内部に2つの領域が連続して確保される。なお、領域1010は、後述の第2レンダリング処理によっても参照され、必要な画像データが読み出される。第1レンダリング処理部211は、描画命令605及び606に基づき、RAM102から圧縮画像伸長命令603及び604による伸長が完了した画像データを読み出す。このとき、第1レンダリング処理部211が読み出すのは、3バンド目の領域内に存在する画像データのみである。いま3バンド目にはオブジェクト401と402の2つのオブジェクトがある。例えばオブジェクト401の場合、まず、描画命令605に含まれる開始座標とパス点列によって表現される矩形領域の幅及び高さとから、3バンド目の領域内における画像データサイズが算出される。ここで、オブジェクト401の幅は2304−256=2048ピクセルであり、オブジェクト401全体の4分の1に相当する高さは3072(1024×3)−2816=256ピクセルである。それがRGBの3チャンネル分となるので、3バンド目の領域内におけるオブジェクトの401の画像データサイズは、2048×256×3=1572864byte(階調8bit:0x180000)となる。そして、伸長後画像の先頭アドレスに上記算出した画像データサイズを足して得られる値(0x02000000+0x180000=0x02180000)が、オブジェクト401についての4バンド目の先頭アドレスとなる。第1のレンダリング処理では、オブジェクト401についての3バンド目の終端画素までを用いる。したがって、第1のレンダリング処理では、オブジェクト401について0x02180000以降の読み出しを省略する。オブジェクト401についての3バンド目の終端画素のアドレスは、4バンド目の先頭アドレス(0x02180000)−1ピクセル(3byte)=0x217FFFDである。第1のレンダリング処理に用いられるデータの末尾アドレスは、4バンド目の先頭アドレス(0x02180000)−1byte=0x217FFFFである。このように、本実施例では、画像データの読み出しの一部を省略することで処理コストを低減できる。
こうした一連の処理がオブジェクト402についても同様になされる。こうして、処理対象バンドである3バンド目に含まれるオブジェクト401及び402の上部4分の1に相当する一部画像1031と1032の画像データが読み出されることになる。そして、第1レンダリング処理部211は、当該読み出した一部画像データについてのフィル処理を行う。フィル処理によって生成された、一部画像1031と1032に対応する部分の画素値は、RAM102に格納される。最終的なビットマップ画像データは、第1レンダリング処理によって生成される画素値と、後述の第2レンダリング処理によって生成される画素値とによって構成される。すなわち、本実施例に係るバンド並列レンダリング処理によって得られる、ページ単位のビットマップ画像データの画素値は、2つのレンダリング処理部がそれぞれ生成した画素値の集合である。
以上が、第1レンダリング処理部211におけるスキャンライン処理の内容である。
<第2レンダリング処理>
次に、第2レンダリング処理部212が担当する、第2のバンド(ここでは偶数バンド)についてのレンダリング処理(第2レンダリング処理)について説明する。図11は、本実施例に係る、第2レンダリング処理の流れを示すフローチャートである。処理対象バンドが偶数バンドとなる点を除けば、基本的には、第1レンダリング処理の流れを示した図8のフローと同様の内容である。主な違いは、第2レンダリング処理では、圧縮画像伸長命令を読み込んだ場合に、伸長指示数のカウントのみを行って、当該圧縮画像伸長命令に基づく伸長指示を伸長処理部213に対して行わない点である。以下、図11のフローチャートに沿って、第2レンダリング処理の特徴部分を中心に説明する。
ステップ1101〜1105は、前述の図8のフローにおけるステップ801〜805に相当する。ステップ1101で読み込む中間データは、第1レンダリング処理部211が読み込む中間データと共通のものである。上述のとおり、本フローにおいても、読み込んだ圧縮画像伸長命令の数(伸長指示数)のカウントは行うが(S1105)、その後は伸長処理部213に対する伸長指示を行うことなく、ステップ1101に戻る内容になっている。
ステップ1106〜1101は、前述の図8のフローにおけるステップ807〜812に相当する。ステップ1109のスキャンライン処理の内容も、前述の図9のフローで示した内容と異なるところはないが、処理対象バンドが偶数バンドとなる点が、第1レンダリング処理との違いである。すなわち、図9のフローにおける、注目スキャンラインが処理対象バンドに含まれているかどうかの判定(S905)では、偶数番目のバンドであるかどうかが判定され、偶数番目のバンド領域についてフィル処理(S906)がなされることになる。
ここで、再び図10を用いて、図7の4バンド目についてのスキャンライン処理を説明する。第2レンダリング処理部212も、描画命令605及び606に基づき、RAM102から圧縮画像伸長命令603及び604による伸長が完了した画像データを読み出す。このとき、第2レンダリング処理部211が読み出すのは、4バンド目の領域内に存在する画像データのみである。すなわち、処理対象バンドである4バンド目に含まれるオブジェクト401及び402の下部4分の3に相当する一部画像1033と1034の画像データが読み出されることになる。一部画像1033と1034の読み出しは、対象となる画像データのうち、第4のバンドに相当する部分のデータアドレスに直接アクセスすることで行われる。データアドレスの算出方法は第1のレンダリング処理と同様であり、画像データのデータサイズやデータ先頭アドレス、バンド領域等から算出される。例えば、4バンド目の領域内に存在するオブジェクト401の画像データは、0x02180000から読み出されることになる。オブジェクト401のパス点列(2304、3840)からオブジェクト401の終端画素が4バンド目の領域内にあることがわかる。そのため、第2のレンダリング処理では、オブジェクト401の画像データについて、0x02180000から終端アドレスまで読み出せばよい。オブジェクト401の画像データの末尾アドレスは、0x025FFFFFであり、オブジェクト401の終端画素のアドレスは、0x025FFFFDである。したがって、第2のレンダリング処理では、オブジェクト401について0x02180000よりも前のアドレスの読み出しを省略する。これを読み飛ばし(アドレスジャンプ)と呼ぶ。このように、本実施例では、画像データの読み出しの一部を省略することで処理コストを低減できる。こうした一連の処理がオブジェクト402についても同様になされる。
そして、第2レンダリング処理部212は、当該読み出した一部画像データについてのフィル処理を行う。フィル処理によって生成された、一部画像1033と1034に対応する部分の画素値は、RAM102に格納される。
以上が、第2レンダリング処理部212におけるスキャンライン処理の内容である。
なお、本実施例では、レンダリング処理部が2つのケースについて説明した。しかし、レンダリング処理部の数は複数であればよく2つに限定されない。例えば、レンダリング処理部が3つの場合であれば、そのうちの1つのレンダリング処理部が、圧縮画像の伸張指示を伸張処理部に対して行い、他のレンダリング処理部はその伸張された画像のうちの必要な部分を参照してレンダリング処理を行う。つまり、各レンダリング処理部が、1つの伸張画像を共有して用いるように構成されていればよい。
本実施例によれば、複数のレンダリング処理部が、共通する中間データをそれぞれ読み込み、それぞれが担当するバンド領域を跨る圧縮画像の伸長結果を共有して使用しながらバンド並列レンダリング処理を行なう。そのため、バンド領域を跨ぐようにPDLデータ内に圧縮画像に対し、PDLデータの解析や中間データの生成段階において事前に伸長して、各バンド領域内に収まるように画像を分割しなくても並列処理が可能となる。これにより、バンド境界を跨ぐように圧縮画像がPDLデータ内に存在していても、レンダリングの開始の遅れを抑制することができる。
実施例1では、並列に動作する複数のレンダリング処理部のうちの1つが圧縮画像の伸長指示を行い、当該伸張指示によって伸長された画像を他のレンダリング処理部でも使用する態様について説明した。次に、並列に動作する複数のレンダリング処理部の各々が伸張処理部と伸長画像格納用メモリを有する態様について、実施例2として説明する。なお、基本的な装置構成や処理フローは実施例1と同じであるので、以下では差異点について説明するものとする。
図12は、本実施例に係る、RIP111のハードウェア構成例を示す図である。本実施例のRIP111は、第1レンダリング処理部211’、第2レンダリング処理部212’を有し、各々のレンダリング処理部に対応する形で、第1伸長処理部1201と第2伸長処理部1202を有する。そして、さらに各々の伸長処理部に対応する形で、第1伸長画像格納用メモリ1211と第2伸長画像格納用メモリ1212が用意され、各伸張処理部で伸長された後の画像データがそれぞれ格納される。
そして、本実施例の場合、第1レンダリング処理部211’及び第2レンダリング処理部212’の双方が、前述の図8に示すフロー(すなわち、伸張処理部に対する伸張指示のステップを含むフロー)を実行する。最終的なビットマップ画像データは、第1レンダリング処理部211’によって生成される画素値と、第2レンダリング処理部212’によって生成される画素値とによって構成される。すなわち、本実施例に係るバンド並列レンダリング処理によって得られる、ページ単位のビットマップ画像データの画素値も、2つのレンダリング処理部がそれぞれ生成した画素値の集合である。
なお、本実施例の場合も、レンダリング処理部の数は複数であればよく2つに限定されない。例えば、レンダリング処理部が3つの場合であれば、各レンダリング処理部が、自身が担当するバンド領域に関わる圧縮画像の伸張処理を、それぞれに対応して設けられた伸張処理部を用いて行う。そして、各レンダリング処理部が、それぞれ伸張した画像のうちの必要な部分を参照してレンダリング処理を行う。つまり、各レンダリング処理部が自身のための伸張画像を別個に生成して用いるように構成されていればよい。
本実施例によれば、並列に動作する各々のレンダリング処理部が、対応する伸長処理部に伸長指示を行って別個に伸張画像を生成する。これにより、各レンダリング処理部は他のレンダリング処理部に依存する必要がなくなるので、より迅速な処理が可能となる。
<変形例>
実施例1では、中間データ内に圧縮画像とその伸長指示が含まれている態様について説明した。しかしながら、中間データ内に含まれる画像は、非圧縮画像であってもよい。非圧縮画像は、伸長処理されずに描画命令に用いられる点が圧縮画像と異なる。非圧縮画像は、圧縮形式(BITMAP)、データサイズ、データ先頭アドレス、画像IDを用いて管理される。非圧縮画像の場合、データ先頭アドレスをそのまま読み飛ばし(アドレスジャンプ)処理に利用することができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。

Claims (27)

  1. 印刷データに基づいてページ内の第1の領域をレンダリングする第1のレンダリングユニットと、
    前記印刷データに基づいて前記ページ内の第2の領域をレンダリングする第2のレンダリングユニットと、
    コントローラであって、
    前記第1の領域と前記第2の領域に跨って配置される画像データを、前記印刷データに基づき取得し、
    前記画像データにアクセスした前記第1のレンダリングユニットに、前記画像データの全画素のうち前記第1の領域内の画素でレンダリングさせ、
    前記画像データにアクセスした前記第2のレンダリングユニットに、前記画像データの全画素のうち前記第2の領域内の画素でレンダリングさせる、コントローラと、
    を備えたことを特徴とする画像処理装置。
  2. 前記コントローラは、
    前記画像データを格納可能なメモリを備え、
    前記画像データのうち前記第1の領域における矩形領域の先端画素のメモリアドレス情報と、前記画像データのうち前記第2の領域における矩形領域の終端画素のメモリアドレス情報と、に基づいて、前記第1のレンダリングユニットに前記画像データの全画素のうちの前記第1の領域内の画素でレンダリングさせ、
    前記画像データのうち前記第2の領域における矩形領域の先端画素のメモリアドレス情報と、前記画像データのうち前記第2の領域における矩形領域の終端画素のメモリアドレス情報と、に基づいて、前記第2のレンダリングユニットに前記画像データの全画素のうちの前記第2の領域内の画素でレンダリングさせる
    ことを特徴とする請求項1に記載の画像処理装置。
  3. 前記コントローラは、前記画像データの特定画素のメモリアドレス情報を、少なくとも前記画像データの先頭メモリアドレス情報に基づいて取得することを特徴とする請求項2に記載の画像処理装置。
  4. 前記コントローラは、前記画像データの特定画素のメモリアドレス情報を、少なくとも前記第1の領域の領域情報に基づいて取得することを特徴とする請求項2に記載の画像処理装置。
  5. 前記コントローラは、前記画像データの特定画素のメモリアドレス情報を、少なくとも前記第2の領域の領域情報に基づいて取得することを特徴とする請求項2に記載の画像処理装置。
  6. 前記コントローラは、前記画像データの特定画素のメモリアドレス情報を、少なくとも前記画像データの前記矩形領域の先頭位置情報に基づいて取得することを特徴とする請求項2に記載の画像処理装置。
  7. 前記コントローラは、前記画像データの特定画素のメモリアドレス情報を、少なくとも前記画像データのチャンネル情報に基づいて取得することを特徴とする請求項2に記載の画像処理装置。
  8. 前記コントローラは、前記画像データの特定画素のメモリアドレス情報を、少なくとも前記画像データの前記矩形領域のサイズ情報に基づいて取得することを特徴とする請求項2に記載の画像処理装置。
  9. 前記第1の領域は前記ページをバンド単位で区切った複数バンド領域のうちの所定のバンド領域であり、前記第2の領域は前記複数バンド領域のうちの前記所定のバンド領域とは異なるバンド領域であることを特徴とする請求項1に記載の画像処理装置。
  10. 前記コントローラは、前記第1のレンダリングユニットのレンダリング結果と、前記第2のレンダリングユニットのレンダリング結果とに基づきラスタ形式の画像データを取得することを特徴とする請求項1に記載の画像処理装置。
  11. 前記コントローラは、
    前記ページ内の画像データのうち圧縮された画像データを伸長する伸長回路を備え、
    前記伸長回路で伸長された画像データに基づいて前記第1のレンダリングユニットに前記第1の領域をレンダリングさせ、
    前記伸長回路で伸長された前記画像データに基づいて前記第2のレンダリングユニットに前記第2の領域をレンダリングさせる
    ことを特徴とする請求項1に記載の画像処理装置。
  12. 前記コントローラは、
    前記伸長回路で伸長された画像データを格納するメモリを備え、
    前記メモリに格納された前記伸長された画像データに基づいて前記第1のレンダリングユニットに前記第1の領域をレンダリングさせ、
    前記メモリに格納された前記伸長された画像データに基づいて前記第2のレンダリングユニットに前記第2の領域をレンダリングさせる
    ことを特徴とする請求項11に記載の画像処理装置。
  13. 前記伸張回路は、前記第1のレンダリングユニット及び前記第2のレンダリングユニットのうちいずれか一方からの伸張指示に基づいて、前記圧縮された画像データを伸張することを特徴とする請求項11に記載の画像処理装置。
  14. 印刷データに基づいて中間データをページ単位で生成する生成ユニットと、
    前記中間データに基づいてページ内の第1の領域をレンダリングする第1のレンダリングユニットと、
    前記中間データに基づいてページ内の第2の領域をレンダリングする第2のレンダリングユニットと、
    を備えた画像処理装置の制御方法であって、
    前記印刷データに基づいて前記第1の領域と前記第2の領域を跨る圧縮された画像データを含むページの中間データを前記生成ユニットに生成させるステップと、
    前記圧縮された画像データを伸長した画像データに基づいて前記第1のレンダリングユニットに前記第1の領域をレンダリングさせ、前記圧縮された画像データを伸長した画像データに基づいて前記第2のレンダリングユニットに前記第2の領域をレンダリングさせるステップと、
    を含むことを特徴とする制御方法。
  15. コンピュータを、請求項1乃至13のいずれか1項に記載の画像処理装置として機能させるためのプログラム。
  16. 印刷データに基づき、ページを第1の領域と第2の領域に分けてレンダリングする画像処理装置であって、
    前記第1の領域と前記第2の領域に跨って配置される画像データを格納するメモリと、
    前記画像データにアクセスし、前記画像データの全画素のうち前記第1の領域内の画素を用いてレンダリングする第1のレンダラと、
    前記画像データにアクセスし、前記画像データの全画素のうち前記第2の領域内の画素を用いてレンダリングする第2のレンダラと
    を備えたことを特徴とする画像処理装置。
  17. 前記第1のレンダラは、前記画像データのうち前記第1の領域における矩形領域の先端画素のメモリアドレス情報と、前記画像データのうち前記第2の領域における矩形領域の終端画素のメモリアドレス情報と、に基づいて、前記画像データの全画素のうちの前記第1の領域内の画素でレンダリングし、
    前記第2のレンダラは、前記画像データのうち前記第2の領域における矩形領域の先端画素のメモリアドレス情報と、前記画像データのうち前記第2の領域における矩形領域の終端画素のメモリアドレス情報と、に基づいて、前記画像データの全画素のうちの前記第2の領域内の画素でレンダリングする
    ことを特徴とする請求項16に記載の画像処理装置。
  18. 前記画像データの特定画素のメモリアドレス情報は、少なくとも前記画像データの先頭メモリアドレス情報に基づいて取得されることを特徴とする請求項17に記載の画像処理装置。
  19. 前記画像データの特定画素のメモリアドレス情報は、少なくとも前記第1の領域の領域情報に基づいて取得される請求項17に記載の画像処理装置。
  20. 前記画像データの特定画素のメモリアドレス情報は、少なくとも前記第2の領域の領域情報に基づいて取得される請求項17に記載の画像処理装置。
  21. 前記画像データの特定画素のメモリアドレス情報は、少なくとも前記画像データの前記矩形領域の先頭位置情報に基づいて取得される請求項17に記載の画像処理装置。
  22. 前記画像データの特定画素のメモリアドレス情報は、少なくとも前記画像データのチャンネル情報に基づいて取得される請求項17に記載の画像処理装置。
  23. 前記画像データの特定画素のメモリアドレス情報は、少なくとも前記画像データの前記矩形領域のサイズ情報に基づいて取得される請求項17に記載の画像処理装置。
  24. 前記第1の領域は前記ページをバンド単位で区切った複数バンド領域のうちの所定のバンド領域であり、前記第2の領域は前記複数バンド領域のうちの前記所定のバンド領域とは異なるバンド領域であることを特徴とする請求項16に記載の画像処理装置。
  25. 前記第1のレンダラのレンダリング結果と、前記第2のレンダラのレンダリング結果とに基づき、前記ページのラスタ形式の画像データが生成されることを特徴とする請求項16に記載の画像処理装置。
  26. 前記ページ内の画像データのうち圧縮された画像データを伸長する伸長回路を備え、
    前記第1のレンダラは、前記伸長回路で伸長された画像データに基づいて前記第1の領域をレンダリングし、
    前記第2のレンダラは、前記伸長回路で伸長された画像データに基づいて前記第2の領域をレンダリングする
    ことを特徴とする請求項16に記載の画像処理装置。
  27. 前記伸長回路で伸長された画像データを格納するメモリを備え、
    前記第1のレンダラは、前記メモリに格納された前記伸長された画像データに基づいて前記第1の領域をレンダリングし、
    前記第2のレンダラは、前記メモリに格納された前記伸長された画像データに基づいて前記第2の領域をレンダリングする
    ことを特徴とする請求項26に記載の画像処理装置。
JP2017019571A 2016-03-16 2017-02-06 画像処理装置、その制御方法、およびプログラム Active JP6904717B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/454,374 US10552717B2 (en) 2016-03-16 2017-03-09 Image processing apparatus, control method thereof, and storage medium
CN201710165979.1A CN107203354B (zh) 2016-03-16 2017-03-16 图像处理设备及其控制方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016052594 2016-03-16
JP2016052594 2016-03-16

Publications (3)

Publication Number Publication Date
JP2017170884A true JP2017170884A (ja) 2017-09-28
JP2017170884A5 JP2017170884A5 (ja) 2020-03-26
JP6904717B2 JP6904717B2 (ja) 2021-07-21

Family

ID=59970122

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017019571A Active JP6904717B2 (ja) 2016-03-16 2017-02-06 画像処理装置、その制御方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP6904717B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019155741A (ja) * 2018-03-13 2019-09-19 キヤノン株式会社 記録装置、制御方法およびプログラム
JP2021068071A (ja) * 2019-10-21 2021-04-30 コニカミノルタ株式会社 印刷制御システム、印刷制御方法及び印刷制御プログラム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000141811A (ja) * 1998-11-11 2000-05-23 Nec Corp プリンタシステム
JP2000238349A (ja) * 1999-02-24 2000-09-05 Nec Corp 画像形成装置及び方法
JP2001312383A (ja) * 2000-04-28 2001-11-09 Canon Inc 印刷装置、高速印刷方法、及び記憶媒体
JP2003072162A (ja) * 2001-08-31 2003-03-12 Canon Inc 印刷制御装置およびデータ処理方法および記憶媒体およびプログラム
US20040196483A1 (en) * 2003-04-07 2004-10-07 Jacobsen Dana A. Line based parallel rendering
KR20070013171A (ko) * 2005-07-25 2007-01-30 삼성전자주식회사 화상형성장치 및 그 자동 레지스터 설정방법
US20070229900A1 (en) * 2006-03-31 2007-10-04 Konica Minolta Systems Laboratory, Inc. Systems and methods for display list management
JP2008090377A (ja) * 2006-09-29 2008-04-17 Brother Ind Ltd ラスタライズ装置とプログラムと方法
JP2012111210A (ja) * 2010-11-29 2012-06-14 Konica Minolta Business Technologies Inc 印刷データ生成装置、印刷データ生成方法及びプログラム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000141811A (ja) * 1998-11-11 2000-05-23 Nec Corp プリンタシステム
JP2000238349A (ja) * 1999-02-24 2000-09-05 Nec Corp 画像形成装置及び方法
JP2001312383A (ja) * 2000-04-28 2001-11-09 Canon Inc 印刷装置、高速印刷方法、及び記憶媒体
JP2003072162A (ja) * 2001-08-31 2003-03-12 Canon Inc 印刷制御装置およびデータ処理方法および記憶媒体およびプログラム
US20040196483A1 (en) * 2003-04-07 2004-10-07 Jacobsen Dana A. Line based parallel rendering
KR20070013171A (ko) * 2005-07-25 2007-01-30 삼성전자주식회사 화상형성장치 및 그 자동 레지스터 설정방법
US20070229900A1 (en) * 2006-03-31 2007-10-04 Konica Minolta Systems Laboratory, Inc. Systems and methods for display list management
JP2008090377A (ja) * 2006-09-29 2008-04-17 Brother Ind Ltd ラスタライズ装置とプログラムと方法
JP2012111210A (ja) * 2010-11-29 2012-06-14 Konica Minolta Business Technologies Inc 印刷データ生成装置、印刷データ生成方法及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019155741A (ja) * 2018-03-13 2019-09-19 キヤノン株式会社 記録装置、制御方法およびプログラム
JP7030572B2 (ja) 2018-03-13 2022-03-07 キヤノン株式会社 画像処理装置、制御方法およびプログラム
JP2021068071A (ja) * 2019-10-21 2021-04-30 コニカミノルタ株式会社 印刷制御システム、印刷制御方法及び印刷制御プログラム

Also Published As

Publication number Publication date
JP6904717B2 (ja) 2021-07-21

Similar Documents

Publication Publication Date Title
JP5531531B2 (ja) 画像処理システム及び画像処理プログラム
US10762401B2 (en) Image processing apparatus controlling the order of storing decompressed data, and method thereof
JP6029344B2 (ja) 画像処理装置、画像処理方法、プログラム
US7869075B2 (en) Image processing apparatus and method thereof
US8842325B2 (en) Image processing apparatus, control method thereof, and storage medium
JP5394997B2 (ja) 印刷前の文書解析中における、改良されたカラー検出
JP6904717B2 (ja) 画像処理装置、その制御方法、およびプログラム
JP2017024321A (ja) 画像処理装置、画像形成装置及び画像処理時間予測方法及びプログラム
US10552717B2 (en) Image processing apparatus, control method thereof, and storage medium
US10593030B2 (en) Image forming apparatus capable of changing thickness of character, control method therefor, and storage medium storing control program therefor
JP5842590B2 (ja) 画像処理装置、及び画像処理装置の制御プログラム
JP6120824B2 (ja) 画像処理装置、画像処理方法、及びプログラム
US10579316B2 (en) Image processing apparatus that performs rendering processing, method of rendering processing, and storage medium
JP5936363B2 (ja) 画像処理装置及び画像処理方法
JP2005070957A (ja) 変換制御装置および変換制御プログラム
JP2016206934A (ja) 画像処理装置、画像処理方法及びプログラム
JP2013006338A (ja) レンダリングシステムの構成方法を切り替える画像処理装置
JP2013122661A (ja) 画像処理装置、画像処理方法、およびプログラム
JP2018110327A (ja) 画像処理装置及びプログラム
JP2017087514A (ja) 画像処理装置、画像処理方法、およびプログラム
JP2011197956A (ja) プリンタ制御装置、プリンタ装置およびその制御方法
JP2010171597A (ja) 画像処理装置
JP2009066926A (ja) 画像処理装置及び画像形成システム
JP2023077248A (ja) 画像形成装置とその制御方法、並びにプログラム
JP2014197349A (ja) 画像処理装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200204

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201214

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210624

R151 Written notification of patent or utility model registration

Ref document number: 6904717

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151