画像形成装置及びその制御方法
【課題】ページ記述言語で記述された印刷データから中間データに変換しているときに、メモリオーバーフローが発生しても、画質劣化、プリントパフォーマンスの低下を抑制する。
【解決手段】ラスタイメージプロセッサ(RIP)216は、PDLデータを解釈して中間データを生成し、中間データメモリ領域306に格納する。そして、中間データメモリ領域306がオーバーフローしてしまった場合、生成された中間データに基づくレンダリング処理を実行させる。そして、JPEG XRに従ってレンダリングしたオブジェクトに接する外接矩形に応じてページをタイル分割し、各タイルに応じて符号化パラメータを決定し符号化処理を実行する。そして、その符号化画像データを、背景画像メモリ領域308bに格納する。後続する中間データの生成が完了すると、そのレンダリングを行うと共に、待避した画像と合成し、タイル分割の再設定を行って再符号化し、出力する。
【解決手段】ラスタイメージプロセッサ(RIP)216は、PDLデータを解釈して中間データを生成し、中間データメモリ領域306に格納する。そして、中間データメモリ領域306がオーバーフローしてしまった場合、生成された中間データに基づくレンダリング処理を実行させる。そして、JPEG XRに従ってレンダリングしたオブジェクトに接する外接矩形に応じてページをタイル分割し、各タイルに応じて符号化パラメータを決定し符号化処理を実行する。そして、その符号化画像データを、背景画像メモリ領域308bに格納する。後続する中間データの生成が完了すると、そのレンダリングを行うと共に、待避した画像と合成し、タイル分割の再設定を行って再符号化し、出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成装置及びその制御方法に関するものである。
【背景技術】
【0002】
プリンタ、複合機などの印刷機能を有する装置は、ページ記述言語で記述された印刷データを解釈し、その印刷データ中の描画コマンドをレンダリングに適した中間データに変換し、中間データを格納するメモリに格納していく。そして、メモリに格納された中間データに従って、描画メモリ上にビットマップデータをレンダリングする処理を行う。ここで、印刷データを解釈し、その中間データをメモリに格納しているときに、そのメモリが一杯(メモリオーバーフロー)になる場合がある。このような状態になった場合、印刷データの解釈及び中間データの生成処理を一時的に中断し、既にメモリに格納された中間データを用いてレンダリングを行う。そして、レンダリングによって得られた画像を、それ以降に生成される中間データの背景画像として、予め用意されたメモリに登録する。このような処理をフォールバック処理という。このフォールバック処理において、次の中間データを収めるメモリ領域を空ける為に、背景画像を圧縮符号化することが行われる。ここで、符号化処理に非可逆符号化を適用した場合には、画質の劣化が発生する。さらに、最初の非可逆符号化処理によって、圧縮イメージデータ保存領域に格納しきらない場合は、再度、中間データからレンダリングし、量子化係数を変更して、再圧縮する必要がある。
【0003】
従来から、圧縮イメージデータ保存領域に格納できない場合は、中間データに含まれるイメージデータに対して、圧縮率を高めていくという技術がある(例えば、特許文献1)。
【0004】
非特許文献1、2で紹介されているJPEG XRは、静止画像符号化方式のHD Photoをベースとしている。JPEG XRには、符号化処理される画像を可変サイズのタイル領域に分解するという特徴的な機能がある。例えば、中央部分を小領域とし画像の縁の部分を長細く大きな領域とすることで、関心領域と想定される画像中央部分に効率的にアクセスすることも可能である。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002-127510号公報
【非特許文献】
【0006】
【非特許文献1】『JPEG XR 標準化の最新動向』 画像電子学会 Vol.37 No4 502〜512頁 2008年7月25日発行
【非特許文献2】日経エレクトロニクス 2008年12月29日号 71〜77頁 2008年12月29日発行
【発明の概要】
【発明が解決しようとする課題】
【0007】
フォールバック処理において、レンダリングした背景画像一面の圧縮処理に、非可逆符号化を適用した場合には、画質の劣化が発生してしまうことがある。また、上記の先行技術のように中間コードのイメージデータに対して、非可逆符号化を適用する場合は、レンダリングを再度行う必要がある。さらに、複数回の画像符号化・復号化を必要とする可能性があるため、プリントパフォーマンスの低下を招いてしまう。
【0008】
本発明はかかる課題に鑑みなされたものである。そして、本発明は、ページ記述言語で記述された印刷データから中間データに変換しているときに、メモリオーバーフローが発生してフォールバック処理が発生したとしても、画質劣化、プリントパフォーマンスの低下を抑制する技術を提供する。
【課題を解決するための手段】
【0009】
この課題を解決するため、例えば本発明の画像形成装置は以下の構成を備える。すなわち、
ページ記述言語で記述された印刷データに基づき、記録媒体上に画像を形成する画像形成装置であって、
入力したページ記述言語の印刷データをレンダリングに適した中間データに変換し、変換して得られた中間データを予め設定された中間データメモリに格納する変換手段と、
該変換手段で得られた中間データに従って、ラスタイメージデータを生成すると共に画素単位に属性データを生成するレンダリング手段と、
タイル単位に符号化パラメータを設定でき、設定した符号化パラメータに従ってタイル単位に符号化して符号化データを生成し、生成された符号化データを予め設定された符号化データメモリに保存すると共に、前記符号化データメモリに保存された符号化データを復号可能な符号化/復号手段と、
前記変換手段により、1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に前記中間データメモリのオーバーフローが発生した場合、当該オーバーフローが着目ページの最初か2回め以降のオーバ−フローのいずれであるかを判定する判定手段と、
前記変換手段により、1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に前記中間データメモリのオーバーフローが発生した場合、前記判定手段の判定結果に応じて、フォールバック処理を実行するフォールバック処理手段と、
1ページ分の中間データに基づくレンダリング処理を終えたとき、レンダリング結果の画像データに基づき画像形成処理を実行する画像形成手段とを備え、
前記フォールバック処理手段は、
前記変換手段による1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に、前記中間データメモリのオーバーフローが発生した場合、前記レンダリング手段を制御し、前記中間データメモリに既に格納された中間データに従ってレンダリングを行なわせ、
前記判定手段による判定が最初のオーバーフローであることを示す場合、レンダリングして得られた画像データを、当該画像データの各オブジェクトの属性情報に従ってタイル分割し、各タイル毎に符号化パラメータを決定し、
前記判定手段による判定が2回め以降のオーバーフローであることを示す場合、レンダリングして得られた画像データと、前記符号化/復号手段による復号処理を実行させて得られた復号画像データとを合成すると共に、合成後の画像データの属性データに基づいてタイル分割し、各タイル毎に符号化パラメータを決定し、
前記符号化/復号手段を制御し、決定した符号化パラメータに従ってレンダリングした画像又は合成した画像を符号化し、得られた符号化データを前記符号化データメモリに格納させ、
前記中間データメモリをクリアして、前記変換手段による変換処理を再開させることを特徴とする。
【発明の効果】
【0010】
本発明によれば、ページ記述言語で記述された印刷データから中間データに変換しているときに、メモリオーバーフローが発生してフォールバック処理が発生したとしても、画質劣化、プリントパフォーマンスの低下を抑制することができる。
【図面の簡単な説明】
【0011】
【図1】実施形態が適用する画像形成装置としての複合機の断面構成図。
【図2】複合機のコントローラの回路構成図。
【図3】実施形態のけるラスタイメージプロセッサのブロック構成図。
【図4】印刷しようとする画像のサンプルを示す図。
【図5】図4のサンプルを印刷するためのページ記述言語の記述例を示す図。
【図6】フォールバック処理における画像符号化を説明するための図。
【図7】フォールバック処理後の画像の合成と再符号化を説明するための図。
【図8】ラスタイメージプロセッサの処理内容を示すフローチャート。
【図9】フォールバック処理を示すフローチャート。
【図10】タイル分割処理のフローチャート。
【発明を実施するための形態】
【0012】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。なお、実施形態では、画像形成装置として複合機(Multi Function Peripheral)に適用した例を説明する。
【0013】
実施形態が適用する複合機は、図1に示すように、装置全体の制御を司るコントローラをはじめ、原稿露光部、レーザ露光部、作像部、定着部、給紙/搬送部から構成される。原稿露光部は、原稿台に置かれた原稿に対して、照明を当てて原稿画像を光学的に読み取り、その像を電気信号に変換して画像データを作成する部分である。レーザ露光部は、前記画像データに応じて変調されたレーザ光などの光線を等角速度で回転する回転多面鏡(ポリゴンミラー)に入射させ、反射走査光として感光ドラムに照射する。作像部は、感光ドラムを回転駆動し、帯電器によって帯電させ、前記レーザ露光部によって感光ドラム上に形成された潜像をトナーによって現像化し、そのトナー像をシートに転写する。その際に転写されずに感光ドラム上に残った微小トナーを回収するといった一連の電子写真プロセスを実行して作像する。その際、シートが転写ベルトの所定位置に巻きつく。そして、4回転する間に、マゼンタ(M)、シアン(C)、イエロー(Y)、ブラック(K)のトナーを持つそれぞれの現像ユニット(現像ステーション)が入れ替わりで順次前述の電子写真プロセスを繰り返し実行する。4回転の後、4色のフルカラートナー像を転写されたシートは、転写ドラムを離れ、定着部へ搬送される。定着部は、ローラやベルトの組み合わせによって構成され、ハロゲンヒータなどの熱源を内蔵し、前記作像部によってトナー像が転写された記録媒体上(シート上)のトナーを、熱と圧力によって溶解、定着させる。給紙/搬送部は、シートカセットやペーパーデッキに代表されるシート収納庫を一つ以上持っており、前記プリンタ制御部の指示に応じてシート収納庫に収納された複数のシートの中から一枚分離し、作像部・定着部へ搬送する。シートは作像部の転写ドラムに巻きつけられ、4回転した後に定着部へ搬送される。4回転する間に前述のYMCK各色のトナー像がシートに転写される。また、シートの両面に画像形成する場合は、定着部を通過したシートを再度作像部へ搬送する搬送経路を通るように制御する。プリンタ制御部は、MFP全体を制御するMFP制御部と通信して、その指示に応じて制御を実行すると共に、前述のスキャナ、レーザ露光、作像、定着、給紙/搬送の各部の状態を管理しながら、全体が調和を保って円滑に動作できるよう指示を行う。以上が実施形態の装置における画像形成処理の説明である。
【0014】
図2は、本実施形態における複合機内のコントローラのブロック構成図である。図2において、コントローラ200は、画像入力デバイスであるスキャナ201や画像出力デバイスであるプリンタエンジン202と接続し、画像データの読み取りやプリント出力のための制御を行う。また、コントロールユニット200は、LAN10や公衆回線204と接続することで、画像情報やデバイス情報をLAN10経由で入出力するための制御を行う。
【0015】
CPU205はMFP全体を制御するための中央処理装置である。RAM206は、CPU205が動作するためのシステムワークメモリであり、入力された画像データを一時記憶するための画像メモリでもある。さらに、ROM207はブートROMであり、システムのブートプログラムが格納されている。HDD208はハードディスクドライブであり、各種処理のためのシステムソフトウェア及び入力された画像データを等格納する。操作部I/F209は、画像データ等を表示可能な表示画面を有する操作部210に対するインタフェース部であり、操作部210に対して操作画面データを出力する。また、操作部I/F209は、操作部210から操作者が入力した情報をCPU205に伝える役割をする。ネットワークインタフェース211は、例えばLANカード等で実現され、LAN10に接続して外部装置との間で情報の入出力を行う。さらにまた、モデム212は公衆回線204に接続し、外部装置との間で情報の入出力を行う。以上のユニットがシステムバス213上に配置されている。
【0016】
イメージバスI/F214は、システムバス213と画像データを高速で転送する画像バス215とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。画像バス215上には、ラスタイメージプロセッサ216、デバイスI/F217、スキャナ画像処理部218、プリンタ画像処理部219、画像編集用画像処理部220、カラーマネージメントモジュール230が接続される。
【0017】
ラスタイメージプロセッサ(RIP)216は、ページ記述言語(PDL)を解釈して、後述する中間データに変換し、それをレンダリングすることでラスタイメージに展開する。本実施形態が適用されるラスタイメージプロセッサ(RIP)216についての詳細は後述することとする。デバイスI/F部217は、スキャナ201やプリンタエンジン202とコントロール200とを接続し、画像データの同期系/非同期系の変換を行う。
【0018】
また、スキャナ画像処理部218は、スキャナ201から入力した画像データに対して、補正、加工、編集等の各種処理を行う。プリンタ画像処理部219は、プリント出力する画像データに対して、プリンタエンジンに応じた補正、解像度変換等の処理を行う。画像編集用画像処理220は、画像データの回転や、画像データの圧縮伸長処理等の各種画像処理を行う。CMM230は、画像データに対して、プロファイルやキャリブレーションデータに基づいた、色変換処理(色空間変換処理ともいう)を施す専用ハードウェアモジュールである。プロファイルとは、機器に依存した色空間で表現したカラー画像データを機器に依存しない色空間(例えばLabなど)に変換するための関数のような情報である。キャリブレーションデータとは、カラー複合機3におけるスキャナ部201やプリンタエンジン202の色再現特性を修正するためのデータである。
【0019】
次に、図3に従って、実施形態におけるラスタイメージプロセッサ(RIP)216を説明する。RIP216は、ページ記述言語(PDL)の描画コマンドに従って生成された中間データからラスタイメージを生成するレンダラ302を有する。また、RIP216は、メモリの管理を行うメモリ管理部303、メモリ領域304、及び、JPEG XR方式に従って画像データの符号化及び復号可能な画像符号化/復号部309を有する。ここで、メモリ領域304は、描画コマンドを受け取る入力データ用メモリ領域305と、中間データを保持する中間データ用メモリ領域306と、最終的なラスタイメージを格納する出力データ用メモリ領域307と、レンダリング時に使用されるレンダリング用メモリ領域308で構成される。レンダラ302は、レンダリングをハードウェアで行うハードウェアレンダラ302aと、ソフトウェアで行うソフトウェアレンダラ302bで構成される。さらに、レンダリング用メモリ領域308はレンダリング時ワークメモリとして使用されるワークメモリ領域308a、フォールバック処理が発生した場合に、それまでに生成された中間データにしたがってレンダリングして得られたラスタイメージデータを格納する背景画像メモリ用領域308b、そして、レンダリング時に付加されるオブジェクト属性情報を格納する領域308cで構成される。また、画像符号化/復号部309は、複数の画素で構成されるタイルを単位に符号化可能であり、且つ、各タイルは全て同じサイズでなくても構わず、タイル単位に可逆/非可逆符号化の設定が可能なJPEG XRを採用した。
【0020】
以下、実施形態におけるRIP216の処理の具体例を説明する。ここでは、図4に示すサンプル画像を印刷するため、図5に示すページ記述言語の印刷データを受信した場合を想定して説明する。図4に示すサンプル画像は、ページの上部にテキスト、ページ左部にグラフィック、ページ右部にイメージデータ(自然画)の3種類の属性を有することに注意されたい。また、印刷データは、図5に示すように、テキスト、グラフィック、イメージデータの順に各オブジェクトが記述されているので、RIP216はこの順番に中間データの生成、及び中間データメモリ領域306に格納する処理を行っていく点にも注意されたい。
【0021】
図6(a)は、フォールバックが発生した状態におけるワークメモリ308aにレンダリングされた画像の例を示している。同図は、図5のページ記述言語(PDL)を解釈し、グラフィックオブジェクトに相当する中間データを図3における中間データメモリ領域306に格納している際に、メモリオーバーフローが発生し、それまでに生成した中間データを用いてレンダラが一旦レンダリングした結果でもある。このようなフォールバック処理が発生した場合、ページ途中までの描画オブジェクトがレンダリングされる。図6(b)は、図6(a)のようなフォールバックが発生した状態において、オブジェクト属性メモリ領域308c内のオブジェクト属性ビットの分布を模式的に示した図である。RIP216は、レンダリング処理を行うとき、各画素の属性(テキスト、グラフィック、イメージ)をオブジェクト属性メモリ308cに格納していく。なお、図6(b)に示すように、レンダリング処理を行った領域以外は、図示の如く、デフォルトとしてイメージ属性と見なすものとした。図6(c)は、図6(a)のようなフォールバックが発生した状態において、オブジェクト単位に画像符号化方法を決定した状態を示している。テキスト属性の領域には、その文字や線などのエッジが鮮明であることが望まれるので、可逆符号化を行うことが望まれる。また、グラフィックやイメージ(自然画)は、エッジよりも階調性がその画質を決める要因であるので、非可逆符号化を行うことが望ましい。そこで、じっしれいでは、テキスト属性を持つ領域は可逆符号化、非テキスト(グラフィック及びイメージ)は非可逆符号化として決定する。また、グラフィックはイメージよりも出現色数が少なく高い圧縮率が得られることが多いので、非可逆符号化する際の量子化係数は、イメージの符号化の際にそれよりも小さい値に設定する。換言すれば、イメージの符号化の際の量子化係数の値は、グラフィックよりも大きな値に設定する。なお、この画像符号化方法の決定処理については、図9のフローチャートを用いて後述する。
【0022】
こうして、各オブジェクトの符号化方法(符号化の種類)の設定を終えると、画像符号化/復号部309の処理に適したタイル分割処理を行う。このタイル分割は、図6(b)(又は図6(c))のように、2つのオブジェクトそれぞれの外接矩形の各辺を延長させることで、タイル境界線を決定する。ただし、隣接するオブジェクトが、互いに同じ属性である場合にはそれらを1つのオブジェクトと見なした上でタイル分割する。
【0023】
図7(a)は、フォールバックが発生した後の、後続するページ記述言語(PDL)の描画コマンドから中間コードへと変換を再開し、ページが終了した状態におけるワークメモリ308a内にレンダリングした結果の画像である。このレンダリング画像は、最終的に画像符号化されて圧縮されている図6(a)のイメージデータを背景として合成して、画像符号化されたのちに、出力される。図7(b)は、フォールバック発生した後の図7(a)におけるオブジェクト属性画像である。図5のページ記述言語(PDL)で定義され、先立ってレンダリングされ圧縮された背景画像に含まれなかったグラフィック、イメージの各属性が画素単位で定義されている。フォールバックが発生し、中間データの生成及びレンダリングが再開され、そのレンダリングが完了(もしくは、メモリオーバーフローが再度発生)したとする。このとき、画像符号化/復号部309は、背景画像メモリ領域308b(符号化データメモリ)に格納された符号化画像データを復号し、それをワークメモリ領域308aに復元する。RIP216は、前回符号化した画像(復号画像データ)と今回のレンダリング結果の画像データとを合成する。この復号処理時、どのタイルが可逆符号化され、どのタイルが非可逆符号化されたのか、また、その際の量子化係数も判明する。従って、RIP216は、その際に得た情報に基づくタイル分割の結果と、今回のレンダリング処理によるタイル分割結果とから、合成後の画像の合成タイツ分割を得ることができる。図示で、フォールバック後の追加オブジェクトによって、追加されたタイルが実線で、背景画像の登録においてタイル分割されたものを破線で示している。RIP216は、図7(e)に示すように、フォールバックの発生後に追加されたタイル分割を再度設定し、最適化したタイル分割を行う。ここで、画像符号化形式が同一であるタイルが隣接している場合、それらを1つのタイルとして結合する、それ以外の場合は、結合しない、という処理により、タイル分割を再設定する。このタイル分割の再設定においても、JPEG XRの特徴を用い、各タイルを、任意のサイズにて画像を可変サイズのタイル領域に分割する。そして、画像符号化/復号部309は、再設定したタイル分割と、その際に決定した各タイルの符号化形式に従って再度符号化し、背景画像メモリ308bにその符号化画像データを格納(保存)する。このとき、符号化直前のレンダリングで、1ページのレンダリングが完了していた場合には、着目ページの符号化画像データとして画像編集用画像処理220に出力する。画像編集用画像処理220は先に説明したように、符号化画像データを復号(伸長)処理し、各種画像処理を行う。この後、プリンタ画像処理部219は、印刷用の色空間への変換や各種処理を行う。そして、デバイスI/F217は、この処理結果をプリンタエンジン202に出力し、印刷を行なわせる。
【0024】
図8は実施形態におけるRIP216の全体の処理手順を示すフローチャートである。以下、同図に従ってRIP216の処理を説明する。
【0025】
先ず、RIP216は、PDLデータ(ページ記述言語で記述されたデータ:図5参照)を入力し、入力データメモリ領域305に格納する(S801)。そして、そのPDLデータを解釈し、中間データを生成し、中間データメモリ領域306に格納する。ついで、中間データメモリ領域306がオーバーフローするか否かの判定、並びに、生成した中間データがページエンドを示すか否かを判定する(S803、S804)。オーバーフローは発生せず、且つ、ページエンドを示す中間データの生成もしていないと判断した場合には、ページの途中の処理であるので上記の処理(S801乃至S804)を繰り返す。
【0026】
上記のループにて、ページ途中で、中間データメモリ領域306にメモリオーバーフローが発生した場合、フォールバック処理を実行する(S805)。この詳細は後述するが、少なくともこのフォールバック処理によって、中間データメモリ領域306はクリアされ、後続するPDLデータから中間データの生成が再開できるので、処理はS801に戻ることになる。
【0027】
こうして、1ページ分の中間データの生成が終了した場合、RIP216は中間データメモリ領域306に格納された中間データに従い、ワークメモリ領域308aへのレンダリング処理を行う。また、RIP216はレンダリング処理と並行して、その際に各画素単位の属性データをオブジェクト属性メモリ領域308cに格納する。
【0028】
ここで注意したい点は、S806のレンダリング処理で用いられた中間データは、着目ページ全体の中間データである場合だけでない点である。すなわち、着目ページの途中でフォールバック処理を行ったことによる、ページ途中からのページエンドまでの中間データである場合もある。後者、すなわち、ページ途中からのページエンドまでの中間データにしたがってレンダリングした場合、そのページ途中以前にレンダリングした画像が、背景画像メモリ領域308bに背景画像の符号化データとして格納されていることになるので、S808の判定はYesとなる。それ故、背景画像メモリ領域308bに格納された符号化画像データを復号し、その復号画像とS806でレンダリングした結果と合成する(S809)。この際、復号処理において、符号化画像データにおけるタイル分割がどのように行われたを示す情報がえられるので、その情報と、S806でレンダリングした結果の画像によるタイル分割とに基づいて、1ページ分の画像のタイル再分割処理を行い(S810)、S811に処理を進める。
【0029】
一方、1ページ分の中間データの生成の途中で、フォールバック処理を一度も行っていない場合、S808の判定がNoとなり、S809、S810の処理は行なわず、S811に処理を進める。
【0030】
次いで、着目ページのレンダリング結果とタイル分割、並びに、各タイルの属性に応じて、各タイル毎に可逆/非可逆符号化のいずれを用いるのか、非可逆であれば量子化係数を決定することで、符号化処理を行う(S811)。実施形態では、画像を水平、垂直方向の任意の位置で分割でき、且つ、各分割領域(タイル)について可逆/非可逆の設定は勿論、非可逆であれば量子化係数をタイルに設定できるJPEG XRをもちいて符号化する。そして、RIP216は、符号化して得られた1ページ分の符号化データを、画像編集用画像処理220に出力する。
【0031】
ここで、上記の処理におけるフォールバック処理(S805)の詳細を図9のフローチャートに従って説明する。このフォールバック処理は、中間データメモリ領域306がオーバーフローした場合の処理であり、1ページの中間データを生成処理している最中に複数回発生することも起こり得る点に注意されたい。
【0032】
先ず、RIP216は、中間データメモリ領域306に既に格納された全中間データに従って、ワークメモリ領域308aに対してレンダリング処理を実行し、各画素の属性データをオブジェクト属性メモリ308に格納する(S901)。次いで、RIP216は、オブジェクト属性メモリ308を参照して、レンダリングした各オブイジェクトに接する外接矩形の各辺を延長し、タイル分割する。なお、隣接するオブジェクトが互いに同じ属性である場合、それらを1つのオブジェクトとして見なした上で、タイル分割する(S902)。
【0033】
次に、背景画像メモリ領域308bに背景画像の符号化画像データが格納されているか否かを判定する(S903)。つまり、今回のフォールバック処理が、着目ページの中間データの生成を開始してから少なくとも2回目以降であるか否かを判断する。最初のフォールバック処理の場合、それ以前にメモリオーバーフローがなく、背景画像メモリ領域308bに背景画像の符号化画像データは格納されてない。従って、この場合はS908の判定結果はNoとなる。また、今回のフォールバック処理が、着目ページの中間データの生成を開始してから少なくとも2回目以降である場合、それ以前に、一度はメモリオーバーフローが発生し、背景画像メモリ領域308bに背景画像の符号化画像データを格納していることになる。それ故、S908の判定結果はYesとなり、S904、S905の処理を実行する。このS904、S905の処理は、先に説明したS809、S810と同じである。すなわち、以前に符号化した画像(及び属性)と、今回、レンダリングした画像(及び属性)とを合成し、タイル分割の再設定処理を行う。
【0034】
そして、決定したタイル分割と、属性に応じて、タイル毎に符号化パラメータを決定JPEG XRに従った符号化処理を実行し、得られた符号化画像データを背景画像の符号化データとして背景画像メモリ領域308bに格納する(S906)。そして、中間データメモリ領域306をクリアし、本フォールバック処理を終える。
【0035】
なお、符号化画像データのデータ量が、背景画像メモリ領域308bの空き容量を上まわる場合が起こり得る。この場合、分割した各タイルを、イメージ、グラフィクス、テキストの属性順に並べ、先ず、「イメージ」に属するタイルについて量子化係数を予め設定された上限値に向けて徐々に挙げて符号化データ量を減らすようにする。途中、背景画像メモリ領域308bの空き容量を下回ると判断した場合には、その量子化係数に従ってイメージを符号化し背景画像メモリ領域308bに格納する。もし、量子化係数を予め設定された上限値に達しても、符号化データ量が背景画像メモリ領域308bの空き容量を下回らない場合には、今度は「グラフィクス」について同様の処理を行うものする。
【0036】
図10は、本実施形態におけるS810、S905のタイル再分割(タイル再設定)の処理を示すフローチャートである。図6(a)のようなフォールバックが発生した状態において、異なる画像符号化方法に対応すべく、オブジェクト属性ビットに基づいてラスタイメージをタイル分割するシーケンスを示したものである。同一の画像符号化方法の場合は、同一のタイルとなるが、それが異なる場合は、オブジェクトの区切りなどで分割する必要がある。まず、ワークメモリ領域308aと背景画像メモリ領域398bそれぞれからレンダリングした画像(一方は復号画像)を読み込む(S1001)。同様に、オブジェクト属性画像を図3におけるワークメモリ領域308aとオブジェクト属性メモリ領域398cのそれぞれからオブジェクト属性データを読み込む(S1002)。次に、オブジェクト属性において同じ属性を同一グループ化する(S1003)。次に、レンダリングされた画像をタイル分割する(S1004)。このタイル分割は、S1003のおいてグループ化された結果に基づく。各グループ化したオブジェクトに接する外接矩形(水平、垂直線分で構成される)の各辺を延長して定義づけられた各タイルに対する符号化の種別(可逆か非可逆か、及び、非可逆の場合には量子化係数)を決定する(S1005)。
【0037】
以上説明したように本実施形態によれば、ページ記述言語で記述された印刷データから中間データに変換し、更に、その中間データに基づいて印刷対象の画像をレンダリングする場合に、フォールバック処理が発生したとしても、属性に従って最適なタイルに分割し、且つ、タイル毎に最適な符号化パラメータを決定して符号化するので、画質劣化、プリントパフォーマンスの低下を抑制することが可能になる。
【0038】
なお、実施形態では、図1に示す複合機に適用した例を説明したが、印刷のみの機能を有する装置でも構わないので、上記実施形態によって本発明が限定されるものではない。
【技術分野】
【0001】
本発明は、画像形成装置及びその制御方法に関するものである。
【背景技術】
【0002】
プリンタ、複合機などの印刷機能を有する装置は、ページ記述言語で記述された印刷データを解釈し、その印刷データ中の描画コマンドをレンダリングに適した中間データに変換し、中間データを格納するメモリに格納していく。そして、メモリに格納された中間データに従って、描画メモリ上にビットマップデータをレンダリングする処理を行う。ここで、印刷データを解釈し、その中間データをメモリに格納しているときに、そのメモリが一杯(メモリオーバーフロー)になる場合がある。このような状態になった場合、印刷データの解釈及び中間データの生成処理を一時的に中断し、既にメモリに格納された中間データを用いてレンダリングを行う。そして、レンダリングによって得られた画像を、それ以降に生成される中間データの背景画像として、予め用意されたメモリに登録する。このような処理をフォールバック処理という。このフォールバック処理において、次の中間データを収めるメモリ領域を空ける為に、背景画像を圧縮符号化することが行われる。ここで、符号化処理に非可逆符号化を適用した場合には、画質の劣化が発生する。さらに、最初の非可逆符号化処理によって、圧縮イメージデータ保存領域に格納しきらない場合は、再度、中間データからレンダリングし、量子化係数を変更して、再圧縮する必要がある。
【0003】
従来から、圧縮イメージデータ保存領域に格納できない場合は、中間データに含まれるイメージデータに対して、圧縮率を高めていくという技術がある(例えば、特許文献1)。
【0004】
非特許文献1、2で紹介されているJPEG XRは、静止画像符号化方式のHD Photoをベースとしている。JPEG XRには、符号化処理される画像を可変サイズのタイル領域に分解するという特徴的な機能がある。例えば、中央部分を小領域とし画像の縁の部分を長細く大きな領域とすることで、関心領域と想定される画像中央部分に効率的にアクセスすることも可能である。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002-127510号公報
【非特許文献】
【0006】
【非特許文献1】『JPEG XR 標準化の最新動向』 画像電子学会 Vol.37 No4 502〜512頁 2008年7月25日発行
【非特許文献2】日経エレクトロニクス 2008年12月29日号 71〜77頁 2008年12月29日発行
【発明の概要】
【発明が解決しようとする課題】
【0007】
フォールバック処理において、レンダリングした背景画像一面の圧縮処理に、非可逆符号化を適用した場合には、画質の劣化が発生してしまうことがある。また、上記の先行技術のように中間コードのイメージデータに対して、非可逆符号化を適用する場合は、レンダリングを再度行う必要がある。さらに、複数回の画像符号化・復号化を必要とする可能性があるため、プリントパフォーマンスの低下を招いてしまう。
【0008】
本発明はかかる課題に鑑みなされたものである。そして、本発明は、ページ記述言語で記述された印刷データから中間データに変換しているときに、メモリオーバーフローが発生してフォールバック処理が発生したとしても、画質劣化、プリントパフォーマンスの低下を抑制する技術を提供する。
【課題を解決するための手段】
【0009】
この課題を解決するため、例えば本発明の画像形成装置は以下の構成を備える。すなわち、
ページ記述言語で記述された印刷データに基づき、記録媒体上に画像を形成する画像形成装置であって、
入力したページ記述言語の印刷データをレンダリングに適した中間データに変換し、変換して得られた中間データを予め設定された中間データメモリに格納する変換手段と、
該変換手段で得られた中間データに従って、ラスタイメージデータを生成すると共に画素単位に属性データを生成するレンダリング手段と、
タイル単位に符号化パラメータを設定でき、設定した符号化パラメータに従ってタイル単位に符号化して符号化データを生成し、生成された符号化データを予め設定された符号化データメモリに保存すると共に、前記符号化データメモリに保存された符号化データを復号可能な符号化/復号手段と、
前記変換手段により、1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に前記中間データメモリのオーバーフローが発生した場合、当該オーバーフローが着目ページの最初か2回め以降のオーバ−フローのいずれであるかを判定する判定手段と、
前記変換手段により、1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に前記中間データメモリのオーバーフローが発生した場合、前記判定手段の判定結果に応じて、フォールバック処理を実行するフォールバック処理手段と、
1ページ分の中間データに基づくレンダリング処理を終えたとき、レンダリング結果の画像データに基づき画像形成処理を実行する画像形成手段とを備え、
前記フォールバック処理手段は、
前記変換手段による1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に、前記中間データメモリのオーバーフローが発生した場合、前記レンダリング手段を制御し、前記中間データメモリに既に格納された中間データに従ってレンダリングを行なわせ、
前記判定手段による判定が最初のオーバーフローであることを示す場合、レンダリングして得られた画像データを、当該画像データの各オブジェクトの属性情報に従ってタイル分割し、各タイル毎に符号化パラメータを決定し、
前記判定手段による判定が2回め以降のオーバーフローであることを示す場合、レンダリングして得られた画像データと、前記符号化/復号手段による復号処理を実行させて得られた復号画像データとを合成すると共に、合成後の画像データの属性データに基づいてタイル分割し、各タイル毎に符号化パラメータを決定し、
前記符号化/復号手段を制御し、決定した符号化パラメータに従ってレンダリングした画像又は合成した画像を符号化し、得られた符号化データを前記符号化データメモリに格納させ、
前記中間データメモリをクリアして、前記変換手段による変換処理を再開させることを特徴とする。
【発明の効果】
【0010】
本発明によれば、ページ記述言語で記述された印刷データから中間データに変換しているときに、メモリオーバーフローが発生してフォールバック処理が発生したとしても、画質劣化、プリントパフォーマンスの低下を抑制することができる。
【図面の簡単な説明】
【0011】
【図1】実施形態が適用する画像形成装置としての複合機の断面構成図。
【図2】複合機のコントローラの回路構成図。
【図3】実施形態のけるラスタイメージプロセッサのブロック構成図。
【図4】印刷しようとする画像のサンプルを示す図。
【図5】図4のサンプルを印刷するためのページ記述言語の記述例を示す図。
【図6】フォールバック処理における画像符号化を説明するための図。
【図7】フォールバック処理後の画像の合成と再符号化を説明するための図。
【図8】ラスタイメージプロセッサの処理内容を示すフローチャート。
【図9】フォールバック処理を示すフローチャート。
【図10】タイル分割処理のフローチャート。
【発明を実施するための形態】
【0012】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。なお、実施形態では、画像形成装置として複合機(Multi Function Peripheral)に適用した例を説明する。
【0013】
実施形態が適用する複合機は、図1に示すように、装置全体の制御を司るコントローラをはじめ、原稿露光部、レーザ露光部、作像部、定着部、給紙/搬送部から構成される。原稿露光部は、原稿台に置かれた原稿に対して、照明を当てて原稿画像を光学的に読み取り、その像を電気信号に変換して画像データを作成する部分である。レーザ露光部は、前記画像データに応じて変調されたレーザ光などの光線を等角速度で回転する回転多面鏡(ポリゴンミラー)に入射させ、反射走査光として感光ドラムに照射する。作像部は、感光ドラムを回転駆動し、帯電器によって帯電させ、前記レーザ露光部によって感光ドラム上に形成された潜像をトナーによって現像化し、そのトナー像をシートに転写する。その際に転写されずに感光ドラム上に残った微小トナーを回収するといった一連の電子写真プロセスを実行して作像する。その際、シートが転写ベルトの所定位置に巻きつく。そして、4回転する間に、マゼンタ(M)、シアン(C)、イエロー(Y)、ブラック(K)のトナーを持つそれぞれの現像ユニット(現像ステーション)が入れ替わりで順次前述の電子写真プロセスを繰り返し実行する。4回転の後、4色のフルカラートナー像を転写されたシートは、転写ドラムを離れ、定着部へ搬送される。定着部は、ローラやベルトの組み合わせによって構成され、ハロゲンヒータなどの熱源を内蔵し、前記作像部によってトナー像が転写された記録媒体上(シート上)のトナーを、熱と圧力によって溶解、定着させる。給紙/搬送部は、シートカセットやペーパーデッキに代表されるシート収納庫を一つ以上持っており、前記プリンタ制御部の指示に応じてシート収納庫に収納された複数のシートの中から一枚分離し、作像部・定着部へ搬送する。シートは作像部の転写ドラムに巻きつけられ、4回転した後に定着部へ搬送される。4回転する間に前述のYMCK各色のトナー像がシートに転写される。また、シートの両面に画像形成する場合は、定着部を通過したシートを再度作像部へ搬送する搬送経路を通るように制御する。プリンタ制御部は、MFP全体を制御するMFP制御部と通信して、その指示に応じて制御を実行すると共に、前述のスキャナ、レーザ露光、作像、定着、給紙/搬送の各部の状態を管理しながら、全体が調和を保って円滑に動作できるよう指示を行う。以上が実施形態の装置における画像形成処理の説明である。
【0014】
図2は、本実施形態における複合機内のコントローラのブロック構成図である。図2において、コントローラ200は、画像入力デバイスであるスキャナ201や画像出力デバイスであるプリンタエンジン202と接続し、画像データの読み取りやプリント出力のための制御を行う。また、コントロールユニット200は、LAN10や公衆回線204と接続することで、画像情報やデバイス情報をLAN10経由で入出力するための制御を行う。
【0015】
CPU205はMFP全体を制御するための中央処理装置である。RAM206は、CPU205が動作するためのシステムワークメモリであり、入力された画像データを一時記憶するための画像メモリでもある。さらに、ROM207はブートROMであり、システムのブートプログラムが格納されている。HDD208はハードディスクドライブであり、各種処理のためのシステムソフトウェア及び入力された画像データを等格納する。操作部I/F209は、画像データ等を表示可能な表示画面を有する操作部210に対するインタフェース部であり、操作部210に対して操作画面データを出力する。また、操作部I/F209は、操作部210から操作者が入力した情報をCPU205に伝える役割をする。ネットワークインタフェース211は、例えばLANカード等で実現され、LAN10に接続して外部装置との間で情報の入出力を行う。さらにまた、モデム212は公衆回線204に接続し、外部装置との間で情報の入出力を行う。以上のユニットがシステムバス213上に配置されている。
【0016】
イメージバスI/F214は、システムバス213と画像データを高速で転送する画像バス215とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。画像バス215上には、ラスタイメージプロセッサ216、デバイスI/F217、スキャナ画像処理部218、プリンタ画像処理部219、画像編集用画像処理部220、カラーマネージメントモジュール230が接続される。
【0017】
ラスタイメージプロセッサ(RIP)216は、ページ記述言語(PDL)を解釈して、後述する中間データに変換し、それをレンダリングすることでラスタイメージに展開する。本実施形態が適用されるラスタイメージプロセッサ(RIP)216についての詳細は後述することとする。デバイスI/F部217は、スキャナ201やプリンタエンジン202とコントロール200とを接続し、画像データの同期系/非同期系の変換を行う。
【0018】
また、スキャナ画像処理部218は、スキャナ201から入力した画像データに対して、補正、加工、編集等の各種処理を行う。プリンタ画像処理部219は、プリント出力する画像データに対して、プリンタエンジンに応じた補正、解像度変換等の処理を行う。画像編集用画像処理220は、画像データの回転や、画像データの圧縮伸長処理等の各種画像処理を行う。CMM230は、画像データに対して、プロファイルやキャリブレーションデータに基づいた、色変換処理(色空間変換処理ともいう)を施す専用ハードウェアモジュールである。プロファイルとは、機器に依存した色空間で表現したカラー画像データを機器に依存しない色空間(例えばLabなど)に変換するための関数のような情報である。キャリブレーションデータとは、カラー複合機3におけるスキャナ部201やプリンタエンジン202の色再現特性を修正するためのデータである。
【0019】
次に、図3に従って、実施形態におけるラスタイメージプロセッサ(RIP)216を説明する。RIP216は、ページ記述言語(PDL)の描画コマンドに従って生成された中間データからラスタイメージを生成するレンダラ302を有する。また、RIP216は、メモリの管理を行うメモリ管理部303、メモリ領域304、及び、JPEG XR方式に従って画像データの符号化及び復号可能な画像符号化/復号部309を有する。ここで、メモリ領域304は、描画コマンドを受け取る入力データ用メモリ領域305と、中間データを保持する中間データ用メモリ領域306と、最終的なラスタイメージを格納する出力データ用メモリ領域307と、レンダリング時に使用されるレンダリング用メモリ領域308で構成される。レンダラ302は、レンダリングをハードウェアで行うハードウェアレンダラ302aと、ソフトウェアで行うソフトウェアレンダラ302bで構成される。さらに、レンダリング用メモリ領域308はレンダリング時ワークメモリとして使用されるワークメモリ領域308a、フォールバック処理が発生した場合に、それまでに生成された中間データにしたがってレンダリングして得られたラスタイメージデータを格納する背景画像メモリ用領域308b、そして、レンダリング時に付加されるオブジェクト属性情報を格納する領域308cで構成される。また、画像符号化/復号部309は、複数の画素で構成されるタイルを単位に符号化可能であり、且つ、各タイルは全て同じサイズでなくても構わず、タイル単位に可逆/非可逆符号化の設定が可能なJPEG XRを採用した。
【0020】
以下、実施形態におけるRIP216の処理の具体例を説明する。ここでは、図4に示すサンプル画像を印刷するため、図5に示すページ記述言語の印刷データを受信した場合を想定して説明する。図4に示すサンプル画像は、ページの上部にテキスト、ページ左部にグラフィック、ページ右部にイメージデータ(自然画)の3種類の属性を有することに注意されたい。また、印刷データは、図5に示すように、テキスト、グラフィック、イメージデータの順に各オブジェクトが記述されているので、RIP216はこの順番に中間データの生成、及び中間データメモリ領域306に格納する処理を行っていく点にも注意されたい。
【0021】
図6(a)は、フォールバックが発生した状態におけるワークメモリ308aにレンダリングされた画像の例を示している。同図は、図5のページ記述言語(PDL)を解釈し、グラフィックオブジェクトに相当する中間データを図3における中間データメモリ領域306に格納している際に、メモリオーバーフローが発生し、それまでに生成した中間データを用いてレンダラが一旦レンダリングした結果でもある。このようなフォールバック処理が発生した場合、ページ途中までの描画オブジェクトがレンダリングされる。図6(b)は、図6(a)のようなフォールバックが発生した状態において、オブジェクト属性メモリ領域308c内のオブジェクト属性ビットの分布を模式的に示した図である。RIP216は、レンダリング処理を行うとき、各画素の属性(テキスト、グラフィック、イメージ)をオブジェクト属性メモリ308cに格納していく。なお、図6(b)に示すように、レンダリング処理を行った領域以外は、図示の如く、デフォルトとしてイメージ属性と見なすものとした。図6(c)は、図6(a)のようなフォールバックが発生した状態において、オブジェクト単位に画像符号化方法を決定した状態を示している。テキスト属性の領域には、その文字や線などのエッジが鮮明であることが望まれるので、可逆符号化を行うことが望まれる。また、グラフィックやイメージ(自然画)は、エッジよりも階調性がその画質を決める要因であるので、非可逆符号化を行うことが望ましい。そこで、じっしれいでは、テキスト属性を持つ領域は可逆符号化、非テキスト(グラフィック及びイメージ)は非可逆符号化として決定する。また、グラフィックはイメージよりも出現色数が少なく高い圧縮率が得られることが多いので、非可逆符号化する際の量子化係数は、イメージの符号化の際にそれよりも小さい値に設定する。換言すれば、イメージの符号化の際の量子化係数の値は、グラフィックよりも大きな値に設定する。なお、この画像符号化方法の決定処理については、図9のフローチャートを用いて後述する。
【0022】
こうして、各オブジェクトの符号化方法(符号化の種類)の設定を終えると、画像符号化/復号部309の処理に適したタイル分割処理を行う。このタイル分割は、図6(b)(又は図6(c))のように、2つのオブジェクトそれぞれの外接矩形の各辺を延長させることで、タイル境界線を決定する。ただし、隣接するオブジェクトが、互いに同じ属性である場合にはそれらを1つのオブジェクトと見なした上でタイル分割する。
【0023】
図7(a)は、フォールバックが発生した後の、後続するページ記述言語(PDL)の描画コマンドから中間コードへと変換を再開し、ページが終了した状態におけるワークメモリ308a内にレンダリングした結果の画像である。このレンダリング画像は、最終的に画像符号化されて圧縮されている図6(a)のイメージデータを背景として合成して、画像符号化されたのちに、出力される。図7(b)は、フォールバック発生した後の図7(a)におけるオブジェクト属性画像である。図5のページ記述言語(PDL)で定義され、先立ってレンダリングされ圧縮された背景画像に含まれなかったグラフィック、イメージの各属性が画素単位で定義されている。フォールバックが発生し、中間データの生成及びレンダリングが再開され、そのレンダリングが完了(もしくは、メモリオーバーフローが再度発生)したとする。このとき、画像符号化/復号部309は、背景画像メモリ領域308b(符号化データメモリ)に格納された符号化画像データを復号し、それをワークメモリ領域308aに復元する。RIP216は、前回符号化した画像(復号画像データ)と今回のレンダリング結果の画像データとを合成する。この復号処理時、どのタイルが可逆符号化され、どのタイルが非可逆符号化されたのか、また、その際の量子化係数も判明する。従って、RIP216は、その際に得た情報に基づくタイル分割の結果と、今回のレンダリング処理によるタイル分割結果とから、合成後の画像の合成タイツ分割を得ることができる。図示で、フォールバック後の追加オブジェクトによって、追加されたタイルが実線で、背景画像の登録においてタイル分割されたものを破線で示している。RIP216は、図7(e)に示すように、フォールバックの発生後に追加されたタイル分割を再度設定し、最適化したタイル分割を行う。ここで、画像符号化形式が同一であるタイルが隣接している場合、それらを1つのタイルとして結合する、それ以外の場合は、結合しない、という処理により、タイル分割を再設定する。このタイル分割の再設定においても、JPEG XRの特徴を用い、各タイルを、任意のサイズにて画像を可変サイズのタイル領域に分割する。そして、画像符号化/復号部309は、再設定したタイル分割と、その際に決定した各タイルの符号化形式に従って再度符号化し、背景画像メモリ308bにその符号化画像データを格納(保存)する。このとき、符号化直前のレンダリングで、1ページのレンダリングが完了していた場合には、着目ページの符号化画像データとして画像編集用画像処理220に出力する。画像編集用画像処理220は先に説明したように、符号化画像データを復号(伸長)処理し、各種画像処理を行う。この後、プリンタ画像処理部219は、印刷用の色空間への変換や各種処理を行う。そして、デバイスI/F217は、この処理結果をプリンタエンジン202に出力し、印刷を行なわせる。
【0024】
図8は実施形態におけるRIP216の全体の処理手順を示すフローチャートである。以下、同図に従ってRIP216の処理を説明する。
【0025】
先ず、RIP216は、PDLデータ(ページ記述言語で記述されたデータ:図5参照)を入力し、入力データメモリ領域305に格納する(S801)。そして、そのPDLデータを解釈し、中間データを生成し、中間データメモリ領域306に格納する。ついで、中間データメモリ領域306がオーバーフローするか否かの判定、並びに、生成した中間データがページエンドを示すか否かを判定する(S803、S804)。オーバーフローは発生せず、且つ、ページエンドを示す中間データの生成もしていないと判断した場合には、ページの途中の処理であるので上記の処理(S801乃至S804)を繰り返す。
【0026】
上記のループにて、ページ途中で、中間データメモリ領域306にメモリオーバーフローが発生した場合、フォールバック処理を実行する(S805)。この詳細は後述するが、少なくともこのフォールバック処理によって、中間データメモリ領域306はクリアされ、後続するPDLデータから中間データの生成が再開できるので、処理はS801に戻ることになる。
【0027】
こうして、1ページ分の中間データの生成が終了した場合、RIP216は中間データメモリ領域306に格納された中間データに従い、ワークメモリ領域308aへのレンダリング処理を行う。また、RIP216はレンダリング処理と並行して、その際に各画素単位の属性データをオブジェクト属性メモリ領域308cに格納する。
【0028】
ここで注意したい点は、S806のレンダリング処理で用いられた中間データは、着目ページ全体の中間データである場合だけでない点である。すなわち、着目ページの途中でフォールバック処理を行ったことによる、ページ途中からのページエンドまでの中間データである場合もある。後者、すなわち、ページ途中からのページエンドまでの中間データにしたがってレンダリングした場合、そのページ途中以前にレンダリングした画像が、背景画像メモリ領域308bに背景画像の符号化データとして格納されていることになるので、S808の判定はYesとなる。それ故、背景画像メモリ領域308bに格納された符号化画像データを復号し、その復号画像とS806でレンダリングした結果と合成する(S809)。この際、復号処理において、符号化画像データにおけるタイル分割がどのように行われたを示す情報がえられるので、その情報と、S806でレンダリングした結果の画像によるタイル分割とに基づいて、1ページ分の画像のタイル再分割処理を行い(S810)、S811に処理を進める。
【0029】
一方、1ページ分の中間データの生成の途中で、フォールバック処理を一度も行っていない場合、S808の判定がNoとなり、S809、S810の処理は行なわず、S811に処理を進める。
【0030】
次いで、着目ページのレンダリング結果とタイル分割、並びに、各タイルの属性に応じて、各タイル毎に可逆/非可逆符号化のいずれを用いるのか、非可逆であれば量子化係数を決定することで、符号化処理を行う(S811)。実施形態では、画像を水平、垂直方向の任意の位置で分割でき、且つ、各分割領域(タイル)について可逆/非可逆の設定は勿論、非可逆であれば量子化係数をタイルに設定できるJPEG XRをもちいて符号化する。そして、RIP216は、符号化して得られた1ページ分の符号化データを、画像編集用画像処理220に出力する。
【0031】
ここで、上記の処理におけるフォールバック処理(S805)の詳細を図9のフローチャートに従って説明する。このフォールバック処理は、中間データメモリ領域306がオーバーフローした場合の処理であり、1ページの中間データを生成処理している最中に複数回発生することも起こり得る点に注意されたい。
【0032】
先ず、RIP216は、中間データメモリ領域306に既に格納された全中間データに従って、ワークメモリ領域308aに対してレンダリング処理を実行し、各画素の属性データをオブジェクト属性メモリ308に格納する(S901)。次いで、RIP216は、オブジェクト属性メモリ308を参照して、レンダリングした各オブイジェクトに接する外接矩形の各辺を延長し、タイル分割する。なお、隣接するオブジェクトが互いに同じ属性である場合、それらを1つのオブジェクトとして見なした上で、タイル分割する(S902)。
【0033】
次に、背景画像メモリ領域308bに背景画像の符号化画像データが格納されているか否かを判定する(S903)。つまり、今回のフォールバック処理が、着目ページの中間データの生成を開始してから少なくとも2回目以降であるか否かを判断する。最初のフォールバック処理の場合、それ以前にメモリオーバーフローがなく、背景画像メモリ領域308bに背景画像の符号化画像データは格納されてない。従って、この場合はS908の判定結果はNoとなる。また、今回のフォールバック処理が、着目ページの中間データの生成を開始してから少なくとも2回目以降である場合、それ以前に、一度はメモリオーバーフローが発生し、背景画像メモリ領域308bに背景画像の符号化画像データを格納していることになる。それ故、S908の判定結果はYesとなり、S904、S905の処理を実行する。このS904、S905の処理は、先に説明したS809、S810と同じである。すなわち、以前に符号化した画像(及び属性)と、今回、レンダリングした画像(及び属性)とを合成し、タイル分割の再設定処理を行う。
【0034】
そして、決定したタイル分割と、属性に応じて、タイル毎に符号化パラメータを決定JPEG XRに従った符号化処理を実行し、得られた符号化画像データを背景画像の符号化データとして背景画像メモリ領域308bに格納する(S906)。そして、中間データメモリ領域306をクリアし、本フォールバック処理を終える。
【0035】
なお、符号化画像データのデータ量が、背景画像メモリ領域308bの空き容量を上まわる場合が起こり得る。この場合、分割した各タイルを、イメージ、グラフィクス、テキストの属性順に並べ、先ず、「イメージ」に属するタイルについて量子化係数を予め設定された上限値に向けて徐々に挙げて符号化データ量を減らすようにする。途中、背景画像メモリ領域308bの空き容量を下回ると判断した場合には、その量子化係数に従ってイメージを符号化し背景画像メモリ領域308bに格納する。もし、量子化係数を予め設定された上限値に達しても、符号化データ量が背景画像メモリ領域308bの空き容量を下回らない場合には、今度は「グラフィクス」について同様の処理を行うものする。
【0036】
図10は、本実施形態におけるS810、S905のタイル再分割(タイル再設定)の処理を示すフローチャートである。図6(a)のようなフォールバックが発生した状態において、異なる画像符号化方法に対応すべく、オブジェクト属性ビットに基づいてラスタイメージをタイル分割するシーケンスを示したものである。同一の画像符号化方法の場合は、同一のタイルとなるが、それが異なる場合は、オブジェクトの区切りなどで分割する必要がある。まず、ワークメモリ領域308aと背景画像メモリ領域398bそれぞれからレンダリングした画像(一方は復号画像)を読み込む(S1001)。同様に、オブジェクト属性画像を図3におけるワークメモリ領域308aとオブジェクト属性メモリ領域398cのそれぞれからオブジェクト属性データを読み込む(S1002)。次に、オブジェクト属性において同じ属性を同一グループ化する(S1003)。次に、レンダリングされた画像をタイル分割する(S1004)。このタイル分割は、S1003のおいてグループ化された結果に基づく。各グループ化したオブジェクトに接する外接矩形(水平、垂直線分で構成される)の各辺を延長して定義づけられた各タイルに対する符号化の種別(可逆か非可逆か、及び、非可逆の場合には量子化係数)を決定する(S1005)。
【0037】
以上説明したように本実施形態によれば、ページ記述言語で記述された印刷データから中間データに変換し、更に、その中間データに基づいて印刷対象の画像をレンダリングする場合に、フォールバック処理が発生したとしても、属性に従って最適なタイルに分割し、且つ、タイル毎に最適な符号化パラメータを決定して符号化するので、画質劣化、プリントパフォーマンスの低下を抑制することが可能になる。
【0038】
なお、実施形態では、図1に示す複合機に適用した例を説明したが、印刷のみの機能を有する装置でも構わないので、上記実施形態によって本発明が限定されるものではない。
【特許請求の範囲】
【請求項1】
ページ記述言語で記述された印刷データに基づき、記録媒体上に画像を形成する画像形成装置であって、
入力したページ記述言語の印刷データをレンダリングに適した中間データに変換し、変換して得られた中間データを予め設定された中間データメモリに格納する変換手段と、
該変換手段で得られた中間データに従って、ラスタイメージデータを生成すると共に画素単位に属性データを生成するレンダリング手段と、
タイル単位に符号化パラメータを設定でき、設定した符号化パラメータに従ってタイル単位に符号化して符号化データを生成し、生成された符号化データを予め設定された符号化データメモリに保存すると共に、前記符号化データメモリに保存された符号化データを復号可能な符号化/復号手段と、
前記変換手段により、1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に前記中間データメモリのオーバーフローが発生した場合、当該オーバーフローが着目ページの最初か2回め以降のオーバ−フローのいずれであるかを判定する判定手段と、
前記変換手段により、1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に前記中間データメモリのオーバーフローが発生した場合、前記判定手段の判定結果に応じて、フォールバック処理を実行するフォールバック処理手段と、
1ページ分の中間データに基づくレンダリング処理を終えたとき、レンダリング結果の画像データに基づき画像形成処理を実行する画像形成手段とを備え、
前記フォールバック処理手段は、
前記変換手段による1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に、前記中間データメモリのオーバーフローが発生した場合、前記レンダリング手段を制御し、前記中間データメモリに既に格納された中間データに従ってレンダリングを行なわせ、
前記判定手段による判定が最初のオーバーフローであることを示す場合、レンダリングして得られた画像データを、当該画像データの各オブジェクトの属性情報に従ってタイル分割し、各タイル毎に符号化パラメータを決定し、
前記判定手段による判定が2回め以降のオーバーフローであることを示す場合、レンダリングして得られた画像データと、前記符号化/復号手段による復号処理を実行させて得られた復号画像データとを合成すると共に、合成後の画像データの属性データに基づいてタイル分割し、各タイル毎に符号化パラメータを決定し、
前記符号化/復号手段を制御し、決定した符号化パラメータに従ってレンダリングした画像又は合成した画像を符号化し、得られた符号化データを前記符号化データメモリに格納させ、
前記中間データメモリをクリアして、前記変換手段による変換処理を再開させる
ことを特徴とする画像形成装置。
【請求項2】
前記符号化/復号手段は、JPEG XRに従って符号化、及び、復号を行い、
前記フォールバック手段におけるタイル分割の境界線は、同じ属性の画素で構成されるオブジェクトに接する外接矩形の各辺の延長した線であることを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記属性には、テキスト、グラフィック、イメージの3種類が含まれ、
前記符号化パラメータには、可逆符号化、非可逆符号化のいずれにするかを示すパラメータが含まれ、
前記フォールバック手段は、テキストの属性を持つタイルは可逆符号化とするパラメータに決定し、グラフィック、及び、イメージの属性を持つタイルは非可逆符号化とするパラメータに決定することを特徴とする請求項2に記載の画像形成装置。
【請求項4】
前記フォールバック手段は、隣接する2つのオブジェクトが同じ属性を有するとき、当該2つのオブジェクトを1つのオブジェクトとして結合してから、タイル分割することを特徴とする請求項1乃至3のいずれか1項に記載の画像形成装置。
【請求項5】
ページ記述言語で記述された印刷データに基づき、記録媒体上に画像を形成する画像形成装置の制御方法であって、
変換手段が、入力したページ記述言語の印刷データをレンダリングに適した中間データに変換し、変換して得られた中間データを予め設定された中間データメモリに格納する変換工程と、
レンダリング手段が、該変換工程で得られた中間データに従って、ラスタイメージデータを生成すると共に画素単位に属性データを生成するレンダリング工程と、
符号化/復号手段が、タイル単位に符号化パラメータを設定でき、設定した符号化パラメータに従ってタイル単位に符号化して符号化データを生成し、生成された符号化データを予め設定された符号化データメモリに保存すると共に、前記符号化データメモリに保存された符号化データを復号可能な符号化/復号工程と、
前記変換工程により、1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に前記中間データメモリのオーバーフローが発生した場合、判定手段が、当該オーバーフローが着目ページの最初か2回め以降のオーバ−フローのいずれであるかを判定する判定工程と、
前記変換工程により、1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に前記中間データメモリのオーバーフローが発生した場合、フォールバック処理手段が、前記判定工程の判定結果に応じて、フォールバック処理を実行するフォールバック処理工程と、
画像形成手段が、1ページ分の中間データに基づくレンダリング処理を終えたとき、レンダリング結果の画像データに基づき画像形成処理を実行する画像形成工程とを備え、
前記フォールバック処理工程では、
前記変換工程による1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に、前記中間データメモリのオーバーフローが発生した場合、前記レンダリング工程を制御し、前記中間データメモリに既に格納された中間データに従ってレンダリングを行なわせ、
前記判定工程による判定が最初のオーバーフローであることを示す場合、レンダリングして得られた画像データを、当該画像データの各オブジェクトの属性情報に従ってタイル分割し、各タイル毎に符号化パラメータを決定し、
前記判定工程による判定が2回め以降のオーバーフローであることを示す場合、レンダリングして得られた画像データと、前記符号化/復号工程による復号処理を実行させて得られた復号画像データとを合成すると共に、合成後の画像データの属性データに基づいてタイル分割し、各タイル毎に符号化パラメータを決定し、
前記符号化/復号工程を制御し、決定した符号化パラメータに従ってレンダリングした画像又は合成した画像を符号化し、得られた符号化データを前記符号化データメモリに格納させ、
前記中間データメモリをクリアして、前記変換工程による変換処理を再開させる
ことを特徴とする画像形成装置の制御方法。
【請求項1】
ページ記述言語で記述された印刷データに基づき、記録媒体上に画像を形成する画像形成装置であって、
入力したページ記述言語の印刷データをレンダリングに適した中間データに変換し、変換して得られた中間データを予め設定された中間データメモリに格納する変換手段と、
該変換手段で得られた中間データに従って、ラスタイメージデータを生成すると共に画素単位に属性データを生成するレンダリング手段と、
タイル単位に符号化パラメータを設定でき、設定した符号化パラメータに従ってタイル単位に符号化して符号化データを生成し、生成された符号化データを予め設定された符号化データメモリに保存すると共に、前記符号化データメモリに保存された符号化データを復号可能な符号化/復号手段と、
前記変換手段により、1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に前記中間データメモリのオーバーフローが発生した場合、当該オーバーフローが着目ページの最初か2回め以降のオーバ−フローのいずれであるかを判定する判定手段と、
前記変換手段により、1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に前記中間データメモリのオーバーフローが発生した場合、前記判定手段の判定結果に応じて、フォールバック処理を実行するフォールバック処理手段と、
1ページ分の中間データに基づくレンダリング処理を終えたとき、レンダリング結果の画像データに基づき画像形成処理を実行する画像形成手段とを備え、
前記フォールバック処理手段は、
前記変換手段による1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に、前記中間データメモリのオーバーフローが発生した場合、前記レンダリング手段を制御し、前記中間データメモリに既に格納された中間データに従ってレンダリングを行なわせ、
前記判定手段による判定が最初のオーバーフローであることを示す場合、レンダリングして得られた画像データを、当該画像データの各オブジェクトの属性情報に従ってタイル分割し、各タイル毎に符号化パラメータを決定し、
前記判定手段による判定が2回め以降のオーバーフローであることを示す場合、レンダリングして得られた画像データと、前記符号化/復号手段による復号処理を実行させて得られた復号画像データとを合成すると共に、合成後の画像データの属性データに基づいてタイル分割し、各タイル毎に符号化パラメータを決定し、
前記符号化/復号手段を制御し、決定した符号化パラメータに従ってレンダリングした画像又は合成した画像を符号化し、得られた符号化データを前記符号化データメモリに格納させ、
前記中間データメモリをクリアして、前記変換手段による変換処理を再開させる
ことを特徴とする画像形成装置。
【請求項2】
前記符号化/復号手段は、JPEG XRに従って符号化、及び、復号を行い、
前記フォールバック手段におけるタイル分割の境界線は、同じ属性の画素で構成されるオブジェクトに接する外接矩形の各辺の延長した線であることを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記属性には、テキスト、グラフィック、イメージの3種類が含まれ、
前記符号化パラメータには、可逆符号化、非可逆符号化のいずれにするかを示すパラメータが含まれ、
前記フォールバック手段は、テキストの属性を持つタイルは可逆符号化とするパラメータに決定し、グラフィック、及び、イメージの属性を持つタイルは非可逆符号化とするパラメータに決定することを特徴とする請求項2に記載の画像形成装置。
【請求項4】
前記フォールバック手段は、隣接する2つのオブジェクトが同じ属性を有するとき、当該2つのオブジェクトを1つのオブジェクトとして結合してから、タイル分割することを特徴とする請求項1乃至3のいずれか1項に記載の画像形成装置。
【請求項5】
ページ記述言語で記述された印刷データに基づき、記録媒体上に画像を形成する画像形成装置の制御方法であって、
変換手段が、入力したページ記述言語の印刷データをレンダリングに適した中間データに変換し、変換して得られた中間データを予め設定された中間データメモリに格納する変換工程と、
レンダリング手段が、該変換工程で得られた中間データに従って、ラスタイメージデータを生成すると共に画素単位に属性データを生成するレンダリング工程と、
符号化/復号手段が、タイル単位に符号化パラメータを設定でき、設定した符号化パラメータに従ってタイル単位に符号化して符号化データを生成し、生成された符号化データを予め設定された符号化データメモリに保存すると共に、前記符号化データメモリに保存された符号化データを復号可能な符号化/復号工程と、
前記変換工程により、1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に前記中間データメモリのオーバーフローが発生した場合、判定手段が、当該オーバーフローが着目ページの最初か2回め以降のオーバ−フローのいずれであるかを判定する判定工程と、
前記変換工程により、1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に前記中間データメモリのオーバーフローが発生した場合、フォールバック処理手段が、前記判定工程の判定結果に応じて、フォールバック処理を実行するフォールバック処理工程と、
画像形成手段が、1ページ分の中間データに基づくレンダリング処理を終えたとき、レンダリング結果の画像データに基づき画像形成処理を実行する画像形成工程とを備え、
前記フォールバック処理工程では、
前記変換工程による1ページ分の中間データへの変換及び前記中間データメモリへの格納の処理を行っている間に、前記中間データメモリのオーバーフローが発生した場合、前記レンダリング工程を制御し、前記中間データメモリに既に格納された中間データに従ってレンダリングを行なわせ、
前記判定工程による判定が最初のオーバーフローであることを示す場合、レンダリングして得られた画像データを、当該画像データの各オブジェクトの属性情報に従ってタイル分割し、各タイル毎に符号化パラメータを決定し、
前記判定工程による判定が2回め以降のオーバーフローであることを示す場合、レンダリングして得られた画像データと、前記符号化/復号工程による復号処理を実行させて得られた復号画像データとを合成すると共に、合成後の画像データの属性データに基づいてタイル分割し、各タイル毎に符号化パラメータを決定し、
前記符号化/復号工程を制御し、決定した符号化パラメータに従ってレンダリングした画像又は合成した画像を符号化し、得られた符号化データを前記符号化データメモリに格納させ、
前記中間データメモリをクリアして、前記変換工程による変換処理を再開させる
ことを特徴とする画像形成装置の制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2011−61555(P2011−61555A)
【公開日】平成23年3月24日(2011.3.24)
【国際特許分類】
【出願番号】特願2009−209812(P2009−209812)
【出願日】平成21年9月10日(2009.9.10)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年3月24日(2011.3.24)
【国際特許分類】
【出願日】平成21年9月10日(2009.9.10)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]