JP2014194635A - 画像形成装置及び画像形成方法ならびにプログラム - Google Patents

画像形成装置及び画像形成方法ならびにプログラム Download PDF

Info

Publication number
JP2014194635A
JP2014194635A JP2013070459A JP2013070459A JP2014194635A JP 2014194635 A JP2014194635 A JP 2014194635A JP 2013070459 A JP2013070459 A JP 2013070459A JP 2013070459 A JP2013070459 A JP 2013070459A JP 2014194635 A JP2014194635 A JP 2014194635A
Authority
JP
Japan
Prior art keywords
processing
rendering
processing method
group
data
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
JP2013070459A
Other languages
English (en)
Inventor
Morikazu Ito
盛一 伊藤
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 JP2013070459A priority Critical patent/JP2014194635A/ja
Publication of JP2014194635A publication Critical patent/JP2014194635A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

【課題】ディスプレイリストのレンダリング処理において、ディスプレイリストに含まれるオブジェクト数が多い場合、レンダリング処理に時間がかかり処理時間を保証する場合、保証時間内に終わらないという課題がある。更に、レンダリングを保証時間内で終了させた場合、ユーザーの意図しない描画結果が出力されるという課題がある。
【解決手段】レンダリング処理の入力されたディスプレイリストの処理予測時間とあらかじめ設定されているレンダリング処理保証時間を確認する。処理予測時間が保証時間を超える場合、ディスプレイリストに含まれるエッジをレベル順にレイヤー分割しレイヤー毎に優先する処理を設定する。ディスプレイリストを解釈する際、処理中のレイヤーに含まれるエッジのみをロードし設定した処理方法でレンダリングを行う。分割されたレイヤーは前面から背面に向けて処理されていき、生成されたページは前面から順番に重ね合わせ処理され最終的なページが生成される。
【選択図】図6

Description

本発明は、画像形成装置及び画像形成方法に関し、特にレンダリングに要する時間を一定の時間に収めた画像形成装置及び画像形成方法に関するものである。
印刷装置には、いわゆるページ記述言語で記述された印刷データをレンダリング処理によって画素により構成された画像データに変換し、それを印刷するものがある。近年アプリケーションの描画能力向上に伴い、エッジ数が多いデータが増えてきており、レンダリングが長時間にわたるデータもある。印刷プロセスの効率化のために、レンダリングを先行させつつ印刷プロセスを並列に進行させることが行われるが、レンダリング処理に長時間を要するために印刷プロセスに追いつかれると、その時点で印刷プロセスを中断しなければならない。しかし電子写真方式のように画像形成の途中で中断が困難な方式では、レンダリング途中の画像が印刷される可能性がある。また中断できたとしても中断箇所で画像が劣化する可能性もある。そこでレンダリング処理の完了時刻を予測し、レンダリングが印刷プロセスに間に合わない場合、に完了しない場合、レンダリングが間に合わない画像の印刷プロセスの開始前に、ページ間など中断可能な箇所で印刷エンジンを停止して印刷プロセスを一時的に中断するいわゆるサイクルダウンを起こさせる方法が提案されている(例えば、特許文献1参照)。
特開2011−126090号公報
特許文献1に記載の技術では、レンダリング処理の予測完了時間に応じて印刷エンジンのサイクルダウンをあらかじめ起こさせることにより、レンダリングに長時間を要する印刷データであっても、レンダリングが間に合わないことに起因する印刷の失敗を回避することが出来る。しかし、レンダリング処理に要する時間については変わることはない。
本発明は上記従来例に鑑みてなされたもので、レンダリング処理の所要時間を短縮することを目的とする。
上記目的を達成するために本発明は以下の構成を有する。
すなわち、中間データに含まれる複数のオブジェクトのデータのレンダリング処理を行う画像処理方法であって、
前記複数のオブジェクトのレンダリング処理が所定時間内に終了するか判定するステップと、
前記複数のオブジェクトのデータのレンダリング処理が所定時間内に終了しないと判定された場合、前記中間データに含まれる複数のオブジェクトのデータを複数のグループに分割する分割ステップと、
前記分割されたグループごとにレンダリング処理方式を設定する設定ステップと、
グループごとに設定されたレンダリング処理方式に従って、前記グループに含まれるオブジェクトのデータのレンダリング処理をグループごとに行って各グループのビットマップデータを生成する生成ステップと、
前記各グループのビットマップデータを合成するステップとを有する。
本発明によれば、生成される画像品質の劣化を抑制しつつ、レンダリング処理の所要時間を短縮することができ、例えば所要時間を上限値に収めることが可能になる。
実施形態における各機器のコントロールユニットの構成例を示すブロック図 実施形態におけるシステム構成の一例を示す図 実施形態におけるディスプレイリストのレンダリング処理工程を示す図 実施形態におけるレンダリングのパイプライン処理の一例を示す図 実施形態におけるエッジのレイヤー分割処理を示す図 実施形態におけるエッジのレイヤー分割による処理時間保証処理のフローを示す図 実施形態におけるリアルタイムな処理速度の最適度合い変更を示す図 実施形態におけるリアルタイムな処理速度の最適度合い変更処理のフローを示す図 実施形態におけるレイヤーに関係ない特定オブジェクトの優先処理設定について説明する図 実施形態におけるレイヤーに関係ない文字オブジェクトの優先処理設定のフローを示す図 速度優先時のグラフィックスオブジェクトのエッジ処理の一例を示す図 本実施形態における速度優先時のグラフィックスオブジェクトのエッジ処理フローを示す図 実施形態における背景が特定出来るデータの優先処理設定方法を示す図 実施形態における背景が特定出来るデータの優先処理設定フローを示す図
以下、本発明を実施するための最良の形態について図面を用いて説明する。
[実施形態1]
<システム構成>
図1は本発明の実施形態に係る画像処理システムの構成を示すブロック図である。このシステムではホストコンピュータ130及び2台の画像処理装置として例えばディジタル複合機(MFP)100,110がLAN140に接続されているが、本実施形態における画像処理システムにおいては、これらの接続数に限られることはない。また、本実施形態では接続方法としてLANを適用しているが、これに限られることはない。例えば、WAN(公衆回線)などの任意のネットワーク、USBなどのシリアル伝送方式、セントロニクスやSCSIなどのパラレル伝送方式なども適用可能である。
ホストコンピュータ(以下、PCと称する)130はパーソナルコンピュータの機能を有している。このPC130はLAN140やWANを介してFTPやSMBプロトコルを用いファイルを送受信したり電子メールを送受信したりすることができる。さらには、PC130はMFP100、110に対して、プリンタドライバを介した印刷命令を行うことも可能となっている。
MFP100、110は同じ構成で、スキャナ部とプリンタ部とを有する。以下では、説明の簡単のために、MFP100、110のうちのMFP110に注目して、その構成を詳細に説明する。MFP110は、画像入力デバイスであるスキャナ部201、画像出力デバイスであるプリンタ部202、MFP110全体の動作制御を司るコントローラ200、ユーザインターフェース(UI)である操作部210とを有する。
<コントローラユニットの構成>
図2は、本実施形態におけるMFP110のコントロールユニット(コントローラ)200の一構成例を示すブロック図である。図2において、コントロールユニット200は、画像入力デバイスであるスキャナ201や画像出力デバイスであるプリンタエンジン202と接続し、画像データの読み取りやプリント出力のための制御を行う。また、コントロールユニット200は、LAN N1や公衆回線204と接続することで、画像情報やデバイス情報をLAN N1経由で入出力するための制御を行う。プリンタエンジン(プリンタ部)202はデバイスI/F217と結合されるプリンタエンジンで、コントロールユニット200で生成された描画データを紙に出力する処理を行う。
RIP216内のCPUはMFP全体を制御するための中央処理装置である。RAM206は、RIP216内のCPUが動作するためのシステムワークメモリであり、入力された画像データを一時記憶するための画像メモリでもある。さらに、ROM207はブートROMであり、システムのブートプログラムが格納されている。HDD208はハードディスクドライブであり、各種処理のためのシステムソフトウェア及び入力された画像データを等格納する。操作部I/F209は、画像データ等を表示可能な表示画面を有する操作部210に対するインタフェース部であり、操作部210に対して操作画面データを出力する。また、操作部I/F209は、操作部210から操作者が入力した情報をRIP216内のCPUに伝える役割をする。ネットワークインタフェース211は、例えばLANカード等で実現され、LAN N1に接続して外部装置との間で情報の入出力を行う。さらにまた、モデム212は公衆回線204に接続し、外部装置との間で情報の入出力を行う。以上のユニットがシステムバス213上に配置されている。
イメージバスI/F214は、システムバス213と画像データを高速で転送する画像バス215とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。画像バス215上には、ラスタイメージプロセッサ216、デバイスI/F217、スキャナ画像処理部218、プリンタ画像処理部219、画像編集用画像処理部220、カラーマネージメントモジュール(CMM)230が接続される。
ラスタイメージプロセッサ(RIP)216は、ページ記述言語(PDLデータ)コードや後述するベクトルデータを含む印刷データに対してレンダリング処理を施し、画素で構成されたイメージ(画像データ)に展開する。デバイスI/F217は、スキャナ201やプリンタエンジン202とコントロールユニット200とを接続し、画像データの同期系/非同期系の変換を行う。なおベクトルデータには、テキストや図形、ビットマップを含み、それぞれの輪郭や位置、レベルなどが指定される。
また、スキャナ画像処理部218は、スキャナ201から入力した画像データに対して、補正、加工、編集等の各種処理を行う。プリンタ画像処理部219は、プリント出力する画像データに対して、プリンタエンジンに応じた補正、解像度変換等の処理を行う。画像編集用画像処理部220は、画像データの回転や、画像データの圧縮伸長処理等の各種画像処理を行う。CMM230は、画像データに対して、プロファイルやキャリブレーションデータに基づいた、色変換処理(色空間変換処理ともいう)を施す専用ハードウェアモジュールである。プロファイルとは、機器に依存した色空間で表現したカラー画像データを機器に依存しない色空間(例えばLabなど)に変換するための関数のような情報である。キャリブレーションデータとは、カラー複合機3におけるスキャナ201やプリンタエンジン202の色再現特性を修正するためのデータである。
<本実施形態における用語の定義>
ここで本実施形態における用語の定義について説明する。
エッジとは、ページ内に描画するオブジェクトとオブジェクト、またはオブジェクトと背景の境目を指す。ただし、本実施形態ではオブジェクトはすべてベクトルオブジェクトであるものとし、したがってエッジはオブジェクトの輪郭を表すベクトルそのものということができる。したがって、本実施形態では、エッジとオブジェクトのベクトルとを区別せずにエッジと称することもある。またエッジはオブジェクトとオブジェクト、またはオブジェクトと背景の境目であるから、ビットマップオブジェクトについてもエッジはそのビットマップオブジェクトの輪郭であり、その内部にはエッジは含まれない。
スパンとは、エッジ間で囲まれる閉領域、特にスキャンラインの閉領域を指す。
レベルとは、ページ内に描画するオブジェクト間の上下関係、すなわち重なり順を示すもので、各オブジェクトには必ずレベル番号が割り振られている。またオブジェクトの輪郭すなわちエッジも、当該オブジェクトに応じたレベルに属することになる。
フィルとはスパンで囲まれる塗りのことで、ビットマップ画像やシェーディングのように1ピクセル毎に異なる色値を持つフィルやベタ塗りのようにスパン中で色値の変化がないフィルがある。
スキャンラインとは、主走査方向の画素(ピクセル)の並びであり、スキャンラインの高さは1ピクセルとなっている。また複数のスキャンラインを束ねたものをバンドと呼ぶ。
レイヤーとは、複数のエッジをエッジの属するレベル昇順にグループ化した1つのグループのことをいう。例えば、画像内にレベル番号が1から3000までのレベルに属するエッジが1つずつ存在し、最低レベルのレベル1から1000、レベル1001から2000、レベル2001から最高レベルのレベル3000の3レイヤーを定義したとする。最背面のレイヤーにはレベル番号が1から1000までのエッジが含まれる。次に一つ上位面のレイヤーにはレベル番号が1001から2000までのエッジが含まれる。最上位面のレイヤーにはレベル番号が2001から3000までのエッジが含まれる。
<ディスプレイリストのレンダリング処理方法について>
図3はスキャンラインレンダリングと呼ばれる本実施形態のベースとなるレンダリング処理方法について説明した図である。画像形成装置であるMFP110には、PC130からページ記述言語で記述された印刷データが送信される。MFP110はページ記述言語で記述された印刷データを解釈して印刷ジョブを実行する。印刷データはベクトルオブジェクトによって構成され、いったん中間形式の中間データに変換されてからレンダリングされる。この中間形式がディスプレイリストであり、ディスプレイリストには、たとえばページ単位およびバンド単位のベクトルオブジェクトが、それぞれの位置やレベルを示す情報とともに含まれている。RIP216は、入力されたオブジェクトを、その位置やレベルに応じたスキャンラインレンダリングを行ってラスタデータを生成する。図3に示すように、レンダリング処理は大きく分けて、エッジ処理301、レベル処理302、フィル処理303、コンポジット処理304の4つに分かれており以下に各処理の詳細を記載する。
エッジ処理301は大きく、エッジロード、X座標算出、エッジソート、エッジトラッキング、エッジ削除の5つの処理に分けられる。エッジロードとはディスプレイリスト(DL)からエッジ情報をメモリ上へロードする処理のことをいう。エッジ情報はベクトルオブジェクトの輪郭を示すベクトル情報である。次にX座標算出処理を行ってロードされたエッジ情報に基づいて、スキャンライン毎にエッジの傾きや塗りルールを元に、当該スキャンラインにおけるエッジのX座標を算出する。処理中のスキャンラインに現れるエッジ情報はActiveEdgeList(AEL)と呼ばれるリンクリストで主走査方向にX座標昇順でソートされている。エッジ同士がクロスした場合や新たにエッジが出現/消滅した場合、AELのリンク情報をソートし直して更新する必要がありこれをエッジソートと呼んでいる。エッジソートが終わったAELはレベル処理部にX座標昇順でエッジおよびそのレベル情報を渡す処理を行っており、これをエッジトラッキングと呼んでいる。最後に描画が終了したエッジはエッジ削除処理により削除される。
次にレベル処理302は大きくレベル追加、レベル削除、レベルソートの3つの処理に分けられる。レベル追加とは、エッジ処理から送られてきたエッジ情報に含まれたエッジの向きやクリップ情報を基に、当該エッジ情報が描画対象のエッジ情報であるか否かを判定し、描画対象だった場合ActiveLevelList(ALL)と呼ばれるリンクリストに追加する処理である。また、レベル削除処理は、レベル追加処理と逆で、エッジの向きやクリップ情報を基にそれまで描画対象だったエッジが描画対象でなくなった場合ALLから削除する処理のことを言う。ALLはレベル番号昇順に常にソートされており、レベルの追加や削除があった場合、レベルソートと呼ばれるALLのソート処理が行われる。これらの処理を行ったレベル情報はスパン単位でフィル処理に渡している。
次にフィル処理303は大きく画像拡縮、画像回転、ピクセル生成という3つの処理に分けられる。ベクトルデータに含まれたビットマップ画像には、そのエッジの情報に加えて、拡大縮小や回転などのための指定をふくむことができる。画像拡縮はディスプレイリストに含まれているビットマップ画像に拡大率が指定されていた場合、指定に応じてフィルを生成する処理である。画像回転はディスプレイリストに含まれているビットマップ画像に回転情報が指定されていた場合、指定に応じてフィルを生成する処理である。ピクセル生成はディスプレイリストにある色値ともう一つのある色値と変化情報とが指定されていた場合、指定に応じてフィルを生成する処理である。
最後に、コンポジット処理304では、レベル処理で確定したレベルの上下関係とフィル処理で生成したピクセルとを基に、ディスプレイリストに指定されている重ね合わせ処理を行ってビットマップデータ(BMP)を生成して出力する。
上記で記載した各処理は、図4に示したようにスパンを単位としてパイプラインで並列に実行される。まず1スキャンライン目の1番目のスパン411がエッジ処理301で処理され、ついでレベル処理302に渡される。同時に2スキャンライン目の1番目のスパン421がエッジ処理301に渡されて処理され、ついでレベル処理302に渡されるのと同じ時にスパン411がレベル処理302からフィル処理303に渡される。同時にスパン422がエッジ処理401に渡され、エッジ処理が開始される。同様にして各処理部で処理されているスパンの処理結果が同期して次段の処理部に転送され、併せて次のスパン例えばスパン423がエッジ処理部301に入力される。以下同様に図で表すように各スパンが各処理部で並列に処理される。 <エッジのレイヤー分割による処理時間保証>
次に、図5を使って本実施形態におけるエッジのレイヤー分割による処理時間保証について説明する。ここでは、丸、三角、四角がそれぞれ1000個ずつ同一箇所に重なっている場合を例にとり説明する。
入力されたディスプレイリストに含まれるオブジェクトはレベル番号1から1000が振られた四角形1000個、レベル番号1001から2000が振られた三角形1000個、レベル番号2001から3000が振られた丸1000個である。
まず、入力されたディスプレイリストに含まれるエッジとオブジェクトのレベル番号に基づいて、各々のエッジがどのレイヤーに属するべきか判定する。この例では、レベル番号1から1000の四角計オブジェクトのエッジが最下位レイヤーに、レベル番号1001から2000の三角形オブジェクトのエッジが中間レイヤーに、レベル番号2001から3000の丸オブジェクトのエッジが最上位レイヤーに属すると判定する。またその際、各レイヤーに属するエッジを処理するにあたり、当該レイヤーが画質優先なのか処理速度優先なのか等の優先すべき項目を決めておく。本実施形態では、デフォルトの設定すなわち通常の処理方式は画質優先とし、画質優先の設定では、設定されてレイヤーのオブジェクトは記述されたとおりに何も省略されることなくレンダリングされる。レンダリングが所定の時間(たとえば保証した処理時間)に間に合わない場合、描画が下に来る下位レイヤーから順次速度優先、すなわち簡易な処理方式を設定する。従ってレンダリング所要時間に余裕があり、所定の時間内にレンダリングが完了するのであれば、全てのレイヤーで画質優先としてもよいし、すべてのレイヤーを速度優先としなければならないこともあり得る。
各レイヤーについては、図3、図4を参照した前述のセクション<ディスプレイリストのレンダリング処理方法について>に記載したレンダリング処理方法を適用するが、この処理方法はレイヤーごとに適用される。すなわち、本実施形態では、ディスプレイリストを解釈する際、レイヤーごとにオブジェクトのエッジ情報に着目し、着目した処理対象のレイヤーに属するエッジ情報のみをロードして図3に示したパイプラインでレンダリング処理を行う。こうすることで、着目したレイヤーに属するエッジ、すなわち着目したレイヤーに属するレベルのオブジェクトに関しては共通の優先設定でレンダリングできる。優先設定は、本実施形態では速度又は画質のいずれかを優先するよう設定するもので、設定内容に応じたレンダリング処理方式によってレンダリング処理が実行される。また、各レイヤー内では当該レイヤーに属するエッジについてレベル処理が行われるので、ディスプレイリストに記載された順番に処理を進めて行けばよい。
まず最上位レイヤーに属するエッジ情報のみをロードしてレンダリング処理を行う。次に中間レイヤーも最上位レイヤーと同様、中間レイヤーに属するエッジのみをロードしてレンダリング処理を行う。その後、最上位レイヤーのレンダリング後画像と中間レイヤーのレンダリング後画像の重ね合わせを行い、最上位レイヤーと中間レイヤーに属する画像が生成される。以下同様に最下位レイヤーまでレンダリングと重ね合わせを繰り返す。ここで、本実施形態では、各レイヤーの処理について、画質優先か速度優先かいずれに設定されているかが相違することがある。
<エッジのレイヤー分割による処理時間保証フロー>
次に、図6を使って本実施形態におけるエッジのレイヤー分割による処理時間保証をフローチャートで説明する。この処理は、図1のRIP216内のRAMにロードされ、RIP216内のCPU上で動作する。以下の説明におけるRIP216内のCPUとは、パイプラインでレンダリング処理を行うプロセッサではなく、エッジロードや優先設定、レイヤー分割などを行うプロセッサである。処理余力があれば同じプロセッサであってもよいが、この例では別々のものとして説明する。なお図6の手順では入力はディスプレイリストである。
エッジのレイヤー分割処理はS601で開始される。RIP216内のCPUはS603においてレンダリング対象のディスプレイリストとレンダリング処理の保証時間をS602から受信しRIP216内のRAMに格納する。S604においてRIP216内のCPUは入力されたディスプレイリストの情報からレンダリングに要する処理時間の予測を行う。処理時間の予測は、例えば、優先設定やオブジェクト種類ごとに予め決めておいたオブジェクトの処理所要時間を、レンダリング対象のオブジェクト全体について積算することで行う。またS604では、通常のレンダリングすなわち全てのレイヤーについて後述する画質優先のレンダリングをした場合の所要時間が予想される。S605においてRIP216内のCPUはS603で受信したレンダリング処理の保証時間とS604で算出したレンダリング処理予想時間とを比較して、保証時間内にレンダリングが終了するか判定する。S605において保証時間内にレンダリング処理が終了すると判定された場合、RIP216内のCPUは図4を参照した前述のセクション<ディスプレイリストのレンダリング処理方法について>で記載したレンダリング処理をS616で行い、S617において処理を終了させる。
一方S605において保証時間内にレンダリング処理が終了出来ないことが予想される場合、S606においてRIP216内のCPUはディスプレイリストに含まれているエッジを、オブジェクトのレベルに関連付けて定義したレイヤーに分類し、レイヤー毎に優先事項を設定する。本実施形態では、優先設定は画質優先と速度優先の二種類であり、初めは最下位のレイヤーについて着目し、着目レイヤー(着目グループ)について速度優先が設定され、その他のレイヤーについて画質優先が設定される。なおレイヤーとレベルとの関連付けは予め行っておいてもよいし、処理対象のディスプレイリストに含まれたオブジェクトのレベルを、所定数のレイヤーに動的に分割して関連付けてもよい。レイヤーは、たとえば上位、中位、下位の3レイヤーとし、各レイヤーに均等の数のレベルが属するようにレイヤーとレベルとを関連付けてもよい。また最下位のレイヤーから順次着目して、着目レイヤー(着目グループ)について、優先設定を画質優先から速度優先に変更する。
S607においてRIP216内のCPUはS606で設定した優先する処理方法を元にレンダリング時間を予測する。ここでS604に先行してS606のレイヤー分割をして、予測をレイヤーごとに行えば、各レイヤーについて画質優先の処理予測時間はS604で求まっているので、S607においては、優先設定を変更した最下位のレイヤーについてのみ処理時間を予測し、その他のレイヤーについては既に得られている予測処理時間を用いてそれらを合算することで予測処理時間を得ることができる。S608においてRIP216内のCPUはS602から受信したレンダリング処理の保証時間とS607で算出したレンダリング処理予想時間とを比較する。S608において保証時間内にレンダリング処理が終了しないことが予想される場合、S606において再度レイヤー毎の優先処理を設定する。ここでは、現在画質優先が設定されているレイヤーのうち最も低いレイヤー、すなわち着目レイヤーより一段階上位のレイヤーの優先設定を速度優先に変更する。そしてS607で、優先設定を変更したレイヤーについて予測処理時間を求め、その他のレイヤーの予測処理時間とあわせてページ全体の予測処理時間を求める。S606からS608のループを、最上位のレイヤーの優先設定が速度優先になる、すなわち全レイヤーの優先設定が速度優先になるか、あるいは予測処理時間が保証処理時間より短くなるまで繰り返す。なお全レイヤーを速度優先としても予測処理時間が保証処理時間を超える場合には、図6には現れていないが、例えばいったんレンダリング処理を中断し、予測処理時間が保証処理時間を超える旨をCPU205に通知して警告表示を行い、指示に応じて印刷を中止し、或いは続行する。その際レンダリング予想処理時間を出力してもよい。
一方S608において保証時間内にレンダリング処理が終了することが予想される場合、まずレイヤーのひとつ、例えば最上位レイヤーに着目して当該レイヤーについてS609からS613を実行する。S609においてRIP216内のCPUはディスプレイリストの解釈処理を行う。S610においてRIP216内のCPUは解釈したディスプレイリスト内に含まれるエッジが現在処理中のレイヤーに属するか判定する。S610において処理エッジが処理中のレイヤーに属する場合S611においてRIP216内のCPUはエッジをRIP216内のRAMにロードする。S610において処理エッジが処理中のレイヤーに属さない場合S612に飛ぶ。S612においては、図4を参照して説明したセクション<ディスプレイリストのレンダリング処理方法について>に記載したようにパイプラインによるレンダリング処理を行い処理中のレイヤーのページを生成する。なおS611におけるエッジロード後のレンダリング処理は、パイプラインにより当該レイヤーの優先設定に従って行われる。したがってS610において着目エッジが着目レイヤーに属していないと判定した場合に分岐するS612のレンダリング処理は、新たなエッジロードは行わないが、パイプライン処理を止めることなく続行することを意味している。また、レイヤーごとの優先設定を示す優先設定情報は、その優先設定が適用されるエッジ情報とともにパイプラインを流れるように構成し、パイプラインの各工程において必要に応じてその優先設定情報を参照するよう構成すれば、より効率的にパイプライン処理を遂行できる。
S613においてRIP216内のCPUは、処理中の着目レイヤーの全エッジ処理が終了したか否かを判定し、終わっていたらS614に飛び、終わっていなかったらS609に飛び処理を継続する。S614においてRIP216内のCPUは、S608からS612で生成されたレイヤーに属するレベルのビットマップデータを、既にレンダリングされている上位レイヤーに属するレベルのビットマップデータに重ね合わせる重ね合わせ処理を行う。S615においてRIP216内のCPUは処理中のディスプレイリストに含まれる全てのレイヤーのレンダリング処理が終了したか否かを判定し、終わっていたらS617に飛び、終わっていなかったらS609に飛び、次のレイヤーに着目してS609から処理を継続する。全てのレイヤーのレンダリングおよび重ね合わせが終了したらS617においてレンダリング処理を終了させる。
以上のようにして例えば1ページの画像のレンダリングを実行する。この結果、処理時間が所定の保証時間を超えることが予想されると、下位レイヤーから順に速度優先として処理時間を短縮するため、レンダリング処理時間を短縮できる。次に、速度優先設定がされているエッジのレンダリングについて説明する。
<画質優先処理と速度優先処理の例>
ここで、画質優先処理と速度優先処理の例を説明する。画質優先処理はこれまで行ってきたレンダリング処理そのものをいう。一方、速度優先処理の例としては下記のようなものをさす。グラフィックスについては、簡易X座標算出処理、ピクセルプレースメント処理をスキップ、所定の長さ以下の場合セグメント切り替え処理をスキップ、エッジ長が所定の長さ以下の場合スキップ、N個に1個エッジを無視などがあげられる。イメージについては、解像度を低減しての処理、N画素以下の画像の処理のスキップ、Nピクセルおきに処理を実行などがあげられる。コンポジットすなわち合成については、強制的にCOPYPEN(前景による背景の上書き)、Nピクセルおきに処理を実行、透過処理(アルファブレンディングなど)をROP(ANDまたはORなどの論理演算)に置き換えた処理などがあげられる。その他では属性処理をスキップなどがあげられる。更に画質を向上させるために以下のようなエッジ処理をおこなってもよい。
<速度優先時のグラフィックスオブジェクトのエッジ処理>
ここで、図11を使って速度優先時のグラフィックスオブジェクトのエッジ処理の一例について説明する。
グラフィックスオブジェクトの場合、ベクタデータをラスタデータに変換する際、ピクセルとピクセルの中間にエッジが現れることがある。この場合、ピクセルプレースメントと呼ぶPDL種に応じてどのピクセルを塗る、塗らないという決められたルールがある。
画質優先処理の場合は上記処理を行って画像を出力するが、速度優先の場合、小数部の一律切り上げ、もしくは切り捨てという簡易処理を行ってエッジ処理の速度向上を行う。
しかしオブジェクトとオブジェクトが隣接したエッジでは、本来のピクセルプレースメントではくっついているものが、簡易処理によると1ピクセル離れてしまい白線が出てしまう可能性がある。これを防止する為に、図11に示すように左エッジのX座標値は切り捨て、右エッジのX座値標は切り上げることによりX座標を決定し、白線が表れてしまうのを防止することが出来る。
<速度優先時のグラフィックスオブジェクトのエッジ処理フロー>
次に、図12を使って本実施形態における速度優先時のグラフィックスオブジェクトのエッジ処理フローをフローチャートで説明する。この処理は、図6のS612で行われるレンダリング処理のうちエッジ処理の詳細である。S612はレンダリングパイプラインで実行され、図12はそのうち特にエッジ処理301のX座標算出処理における処理である。以下の説明ではRIP216内のCPUにより実行されるものとしているが、レンダリングパイプライン中のエッジ処理を実行するプロセッサにより実行される。
速度優先時のグラフィックスオブジェクトのエッジ処理はS1201で開始される。S1201はS611の処理に引き続きの処理になる。RIP216内のCPUはS1202において現在の処理がレンダリング処理中のエッジ座標算出処理か否かを判定する。エッジ座標算出処理でない場合、RIP216内のCPUはS1203においてその他のレンダリング処理を行い、S1208に飛ぶ。なお図12がたとえば独立して実行されるX座標算出プロセスの一部として行われるのであれば、S1202は不要である。エッジ座標算出処理の場合、RIP216内のCPUはS1204において処理中のエッジが速度優先で行われているか否かを判定する。この判定基準は現在の処理対象のレイヤーに関して例えば予め設定された優先設定情報である。速度優先でない場合は、RIP216内のCPUはS1206において通常のピクセルプレースメント処理を行いS1207に飛ぶ。速度優先の場合は、RIP216内のCPUはS1205において左エッジは切り捨て、右エッジは切り上げてエッジのX座標を設定しS1207に飛ぶ。RIP216内のCPUはS1207において全レンダリング処理が終了したか否かを判定し、終了していない場合は、S1202に飛びレンダリング処理を続行する。もちろんX座標算出が終えたなら、引き続きレンダリングパイプラインにより処理が続行される。レンダリングが終了した場合S1208に飛び引き続きS613の処理を行う。
以上のようにして、本実施形態によれば、ベクトルオブジェクトのエッジを、オブジェクトレベルに応じたレイヤーに分類し、レイヤーごとに、画質優先モード又は速度優先モードでレンダリングする。また他のオブジェクトの下となるレベルの低いオブジェクトを低いレイヤーに分類し、低いレイヤーのエッジを速度優先としてレンダリングする。そして、レンダリング処理時間が所定時間に収まらない場合には、デフォルトの画質優先設定を、下位のレイヤーから順に、レンダリング処理時間が所定時間に収まるまで速度優先設定に変更する。これにより、画質とレンダリング所要時間の短縮とを両立できる。
[実施形態2]
<リアルタイムな処理速度の最適度合い変更>
ここで、実施形態2として、図7を使ってリアルタイムな処理速度の最適度合い変更について説明する。なお実施形態1と共通する構成や処理については説明を省略する。
実施形態1では<エッジのレイヤー分割による処理時間保証>を用いて保証時間内にレンダリング処理が終了する方法を述べてきた。しかし、レイヤー毎に設定した優先処理の時間予測(S607)の精度が低い場合、予測時間と実際の処理時間とに乖離が出てきてしまう。
そこで、レイヤー毎の処理時間予測と実際の処理時間を比較し、処理をそのまま進めて行くと保証時間内に処理が完了出来ないことが判明した場合、その時点で、まだ処理をしていない下位レイヤーの優先度を画質から処理速度に変更し、レンダリング時間の短縮を行う。
<リアルタイムな処理速度の最適度合い変更処理フロー>
図8を使って本実施形態におけるリアルタイムな処理速度の最適度合い変更処理をフローチャートで説明する。この処理は、図1のRIP216内のRAMにロードされ、RIP216内のCPU上で動作する。
リアルタイムな処理速度の最適度合い変更処理はS801で開始される。S801は実施形態1のS614の処理に引き続きの処理になる。RIP216内のCPUはS802において全レイヤーの処理が完了したか判定する。処理が完了した場合S808に飛び引き続きS617の処理を行う。S802が未完了だった場合、S803においてRIP216内のCPUは処理開始から現在までの実時間とこれから行う処理の予測時間が保証時間内に収まるか判定し、収まる場合S807に飛び引き続きS609の処理を行う。S803が収まらない場合RIP216内のCPUはS804において未処理かつ画質優先が設定されているレイヤーの優先設定を、下位のレイヤーから画質優先から速度優先に変更する。次にS805においてRIP216内のCPUは変更した優先度を元に未処理レイヤーのレンダリング処理時間予測を行う。S806においてRIP216内のCPUはS805で予測した処理時間とこれまでの経過時間が保証時間内に収まるか確認し、収まらない場合はS804に飛び再度優先度の変更を行う。S806で収まる場合、S807に飛び引き続きS609の処理を行う。
以上のようにして、実際に要した処理時間が予測処理時間を超えているためにレンダリング実行前に設定した優先設定では所定時間内にレンダリングが完了しない場合でも、レンダリング中に動的に優先設定を変更することで、レンダリング所要時間を短縮し、所定時間内にレンダリングを完了させることができる。
[実施形態3]
<レイヤーに関係ない特定オブジェクトの優先処理設定>
ここで、図9を使ってレイヤーに関係ない特定オブジェクトの優先処理設定について説明する。なお実施形態1と共通する構成や処理については説明を省略する。
これまで<エッジのレイヤー分割による処理時間保証>を用いて上位レイヤーほど画質を優先する処理を選択してきた。しかし、例えば文字の場合視認性が高い、また重要な情報である可能性が高いので例え中間や下位レイヤーに属していたとしても画質優先で処理を行う方がページ全体の品質向上につながることが考えられる。
図9のように丸が上位レイヤー、文字「ABC,あいう」が中間レイヤー、四角が下位レイヤーだとする。この場合中間レイヤー「ABC,あいう」は上述した実施形態では、下位レイヤーの四角を速度優先モードとしただけではレンダリングが所定時間に間に合わないと速度優先モードとされてしまう。しかしこのオブジェクトは文字なので中間レイヤーだが品質優先(画質優先)で処理を行うように設定する。このことにより処理予想時間が保証時間範囲外になった場合は、中間レイヤーをとばして上位レイヤーの優先設定を画質優先から速度優先に変更し、レンダリング処理時間が保証時間内に収まるように設定する。このように品質を優先すべきオブジェクト、たとえば文字オブジェクトを品質優先とし、それ以外のオブジェクトを速度優先としてレンダリング処理時間を保証時間内に収めることもできる。
上記は文字のように品質を優先して処理すべきオブジェクトについて記載したが、逆にJPEGイメージに様に画質を落として処理しても全体の品質に影響が少ない場合は、上位レイヤーにあっても速度優先で処理しても構わない。
<レイヤーに関係ない特定オブジェクトの優先処理設定フロー>
次に、図10を使って本実施形態におけるレイヤーに関係ない文字オブジェクトの優先処理設定をフローチャートで説明する。この処理は、図1のRIP216内のRAMにロードされ、RIP216内のCPU上で動作する。
レイヤーに関係ない文字オブジェクトの優先処理設定はS1001で開始される。S1001はS605の処理に引き続きの処理になる。RIP216内のCPUはS1002においてレイヤー分割中のレベルに文字が含まれるか判定する。含まれている場合、S1003においてRIP216内のCPUは文字を含むレベルのみを一つのレイヤーに分類し、S1005に飛ぶ。含まれていない場合は、所定のレベル数毎にレイヤーを設定してS1005に飛ぶ。S1005において全てのレベルのレイヤー分割が完了したか判定し完了していない場合は、S1002に飛びレイヤー分割を継続する。完了した場合は、S1006に飛びレイヤー毎に優先処理設定を行う。
S1006においてCPU206は優先処理設定のレイヤーが文字を含むレイヤーか否かを判定する。文字を含むレイヤーの場合、S1007においてそのレイヤーは必ず画質優先に設定してS1009に飛ぶ。文字を含まないレイヤーの場合、S1008でレイヤーの上位、下位により優先度を設定しS1009に飛ぶ。このS1008における設定は、図6の手順で説明した通り、レンダリングの予測処理時間が所定時間に収まるまで、下位のレイヤから順に速度優先設定に変更しているように行われる。S1009においてRIP216内のCPUは全てのレイヤーの優先設定が済んだか判定し、設定してない場合S1006に飛びレイヤー毎の優先設定を続ける。設定した場合S1010で終了し引き続きS607の処理を行う。
以上の手順により、文字を含むレイヤについては、オブジェクトのレベルに関わらず画質優先でレンダリングされるため、印刷される画像品質を保ちつつレンダリング時間の短縮を図ることができる。なお本実施形態は実施形態2と組み合わせることもできる。
[実施形態4]
<背景が特定出来るデータの優先処理設定方法>
ここで図13を使って背景が特定出来るデータの優先処理設定方法について説明する。なお実施形態1と共通する構成や処理については説明を省略する。
パワーポイントのデータのように背景が同じで全面に描画されるデータが異なる場合がある。この場合、背面のテンプレートには重要な情報はなく前面のデータに重要な情報が含まれていることが多い。
図13の元画像1301は、前面画像1302を背景画像1303に重ね合わせて構成されている。この場合、前景画像1302は画質優先で処理を行う。背面画像1303は速度優先で処理を行う。このためには、背景画像として特定できるオブジェクトのレベルが、最も低いレイヤーに含まれるようにオブジェクトレベルはレイヤーに分類される。
<背景が特定出来るデータの優先処理設定フロー>
次に、図14を使って本実施形態における背景が特定出来るデータの優先処理設定フローをフローチャートで説明する。この処理は、図1のRIP216内のRAMにロードされ、RIP216内のCPU上で動作する。
背景が特定出来るデータの優先処理設定処理はS1401で開始される。S1401はS605の処理に引き続きの処理になる。RIP216内のCPUはS1402において入力されたデータが前面と背面が分離可能か否かを判定する。分離可能でない場合、RIP216内のCPUはS1403において各エッジをレイヤーに分割しレイヤー毎に優先処理を設定し、S1407に飛ぶ。分離可能の場合、RIP216内のCPUはS1404において、優先処理設定の対象データが全面画像のエッジか否かを判定する。前面画像でない場合は、RIP216内のCPUはS1406において該当エッジのレイヤーを速度優先処理に設定しS1407に飛ぶ。前面画像の場合は、RIP216内のCPUはS1205において該当エッジのレイヤーを速度優先処理に設定しS1407に飛ぶ。S1407に飛び引き続きS607の処理を行う。
以上の手順により背景画像の優先設定を速度優先に、前景画像の優先設定を画質優先に設定することで、見た目の画質の低下を防止しつつ処理時間を短縮することができる。
[その他の実施例]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (9)

  1. 中間データに含まれる複数のオブジェクトのデータのレンダリング処理を行う画像処理方法であって、
    前記複数のオブジェクトのレンダリング処理が所定時間内に終了するか判定するステップと、
    前記複数のオブジェクトのデータのレンダリング処理が所定時間内に終了しないと判定された場合、前記中間データに含まれる複数のオブジェクトのデータを複数のグループに分割する分割ステップと、
    前記分割されたグループごとにレンダリング処理方式を設定する設定ステップと、
    グループごとに設定されたレンダリング処理方式に従って、各グループに含まれるオブジェクトのデータのレンダリング処理をグループごとに行って各グループのビットマップデータを生成する生成ステップと、
    前記各グループのビットマップデータを合成するステップと
    を有することを特徴とする画像処理方法。
  2. 前記分割ステップでは、前記複数のオブジェクトのデータを、オブジェクトの重なり順に複数のグループに分割し、
    前記設定ステップでは、重なり順が下位のグループから順次着目して着目グループについては、レンダリング処理方式を通常の処理方式から簡易な処理方式に変更してレンダリング処理を行った場合の処理時間を予想し、予想処理時間が前記所定時間を超えない場合には前記生成ステップによりビットマップデータを生成し、前記予想処理時間が前記所定時間を超える場合には、一段階上位のグループを着目グループとして処理時間を予想することを特徴とする請求項1に記載の画像処理方法。
  3. 前記分割ステップでは、文字オブジェクトをひとつのグループとし、
    前記設定ステップでは、前記文字オブジェクトのグループについては、その重なり順に関わらず通常の処理方式を設定し、それ以外のオブジェクトのグループについては簡易な処理方式を設定することを特徴とする請求項1に記載の画像処理方法。
  4. 前記設定ステップでは、オブジェクトを前面のオブジェクトと背面のオブジェクトとを区別できる場合、前記前面のオブジェクトのグループについては通常の処理方式を設定し、前記背面のオブジェクトのグループについては簡易な処理方式を設定することを特徴とする請求項1に記載の画像処理方法。
  5. 前記生成ステップでは、前記レンダリング処理方式が前記簡易な処理方式の場合、図形のオブジェクトに対しては、簡易なX座標算出処理、ピクセルプレースメント処理のスキップ、所定の長さ以下のセグメント切り替え処理のスキップ、所定の長さ以下のエッジのスキップ、N個に1個エッジのスキップの少なくともいずれかを行い、画像のオブジェクトに対しては、解像度の低減、N画素以下の画像のスキップ、Nピクセルおきの処理の実行の少なくともいずれかを行い、オブジェクトの合成においては、上書き、Nピクセルおきの処理、透過処理を論理演算に置き換えての処理の少なくともいずれかを行うことを特徴とする請求項2乃至4のいずれか一項に記載の画像処理方法。
  6. 前記生成ステップでは、オブジェクトのエッジの座標算出を行う際、簡易な処理方式では、左エッジは算出されたX座標値の小数部を切り捨て、右エッジは切り上げでX座標を決定することを特徴とする請求項2乃至5のいずれか一項に記載の画像処理方法。
  7. 前記生成ステップではさらに、各グループのビットマップデータを生成しつつ処理時間を予想し、前記予想処理時間が前記所定時間を超える場合には、未処理かつ通常の処理方式が設定されている最も下位のグループの処理方式を、前記簡易な処理方式として当該グループのビットマップデータを生成することを特徴とする請求項2乃至6のいずれか一項に記載の画像処理方法。
  8. 中間データに含まれる複数のオブジェクトのデータのレンダリング処理を行う画像処理装置であって、
    前記複数のオブジェクトのレンダリング処理が所定時間内に終了するか判定する手段と、
    前記複数のオブジェクトのデータのレンダリング処理が所定時間内に終了しないと判定された場合、前記中間データに含まれる複数のオブジェクトのデータを複数のグループに分割する手段と、
    前記分割されたグループごとにレンダリング処理方式を設定する手段と、
    グループごとに設定されたレンダリング処理方式に従って、前記グループに含まれるオブジェクトのデータのレンダリング処理をグループごとに行って各グループのビットマップデータを生成する手段と、
    前記各グループのビットマップデータを合成する手段と
    を有することを特徴とする画像処理装置。
  9. 請求項1乃至7のいずれか一項に記載した画像処理方法をコンピュータにより実行させるためのプログラム。
JP2013070459A 2013-03-28 2013-03-28 画像形成装置及び画像形成方法ならびにプログラム Pending JP2014194635A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013070459A JP2014194635A (ja) 2013-03-28 2013-03-28 画像形成装置及び画像形成方法ならびにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013070459A JP2014194635A (ja) 2013-03-28 2013-03-28 画像形成装置及び画像形成方法ならびにプログラム

Publications (1)

Publication Number Publication Date
JP2014194635A true JP2014194635A (ja) 2014-10-09

Family

ID=51839855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013070459A Pending JP2014194635A (ja) 2013-03-28 2013-03-28 画像形成装置及び画像形成方法ならびにプログラム

Country Status (1)

Country Link
JP (1) JP2014194635A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110211211A (zh) * 2019-04-25 2019-09-06 北京达佳互联信息技术有限公司 图像处理方法、装置、电子设备及存储介质
WO2019168298A1 (en) * 2018-02-28 2019-09-06 Samsung Electronics Co., Ltd. Method and apparatus for correcting computed tomography image
CN113610699A (zh) * 2021-07-19 2021-11-05 广州致远电子有限公司 一种硬件图层渲染调度方法、装置、设备及储存介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019168298A1 (en) * 2018-02-28 2019-09-06 Samsung Electronics Co., Ltd. Method and apparatus for correcting computed tomography image
US10952694B2 (en) 2018-02-28 2021-03-23 Hitachi, Ltd. Method and apparatus for correcting computed tomography image
CN110211211A (zh) * 2019-04-25 2019-09-06 北京达佳互联信息技术有限公司 图像处理方法、装置、电子设备及存储介质
CN110211211B (zh) * 2019-04-25 2024-01-26 北京达佳互联信息技术有限公司 图像处理方法、装置、电子设备及存储介质
CN113610699A (zh) * 2021-07-19 2021-11-05 广州致远电子有限公司 一种硬件图层渲染调度方法、装置、设备及储存介质

Similar Documents

Publication Publication Date Title
JP6029344B2 (ja) 画像処理装置、画像処理方法、プログラム
US7680358B2 (en) Image processing apparatus and control method thereof, and program
US8842325B2 (en) Image processing apparatus, control method thereof, and storage medium
US10762401B2 (en) Image processing apparatus controlling the order of storing decompressed data, and method thereof
JP2008276407A (ja) 画像処理装置及びその方法
JP4766657B2 (ja) 画像処理装置及びその制御方法、プログラム
US9600747B2 (en) Image forming apparatus and control method that execute a plurality of rendering processing units in parallel
JP2014194635A (ja) 画像形成装置及び画像形成方法ならびにプログラム
JP2014002591A (ja) 画像処理装置、画像処理方法、コンピュータプログラム
JP2017024321A (ja) 画像処理装置、画像形成装置及び画像処理時間予測方法及びプログラム
CN110618796A (zh) 图像形成装置、其控制方法及存储其控制程序的存储介质
US9716810B2 (en) Image processing apparatus configured to perform smoothing based on analysis of PDL data, and storage medium storing program therefor
JP6904717B2 (ja) 画像処理装置、その制御方法、およびプログラム
US9672454B2 (en) Image processing apparatus for rendering plurality of objects by dividing plurality of objects into plurality of groups, and image processing method
JP2011053944A (ja) 画像形成装置、画像形成方法及び制御プログラム
US10579316B2 (en) Image processing apparatus that performs rendering processing, method of rendering processing, and storage medium
JP2015075839A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2021022024A (ja) 画像処理装置、画像処理方法およびプログラム
JP6614941B2 (ja) 画像処理装置および画像処理方法
JP6809158B2 (ja) 画像処理装置及びプログラム
JP2023077248A (ja) 画像形成装置とその制御方法、並びにプログラム
JP2017087514A (ja) 画像処理装置、画像処理方法、およびプログラム
JP2013008247A (ja) 画像処理装置、画像処理方法、およびプログラム
JP2016055536A (ja) 画像形成装置、プログラム、および画像形成装置の制御方法
JP2007081886A (ja) 描画処理装置