(57)【特許請求の範囲】
【請求項１】
画像形成に用いる１ページ分の画像データを複数の主走査線ラインからなるバンドに分割して処理する画像処理装置において、
前記バンドに対応して設けられた複数のバンドバッファと、
前記バンドに含まれる描画オブジェクトのオブジェクト属性情報をバンド毎に集計情報として集計する集計手段と、
ページ記述言語で記載されたコード画像データを中間コード画像データに変換する第１の変換手段と、
前記第１の変換手段によって変換された中間コード画像データに含まれる画像情報と前記オブジェクト属性情報とをビットマップデータに変換し、前記バンドバッファに展開する第２の変換手段と、
前記第２の変換手段が前記展開を行う際に、バンドの未描画部分のオブジェクト属性情報を前記集計情報に基づいて決定する未描画属性決定手段と
を具備することを特徴とする画像処理装置。
【請求項２】
画像形成に用いる１ページ分の画像データを複数の主走査線ラインからなるバンドに分割して処理する画像処理装置において、
前記バンドに対応して設けられた複数のバンドバッファと、
前記バンドに含まれる描画オブジェクトのオブジェクト属性情報をバンド毎に集計情報として集計する集計手段と、
ページ記述言語で記載されたコード画像データを中間コード画像データに変換する第１の変換手段と、
前記第１の変換手段によって変換された中間コード画像データに含まれる画像情報と前記オブジェクト属性情報とをビットマップデータに変換し、前記バンドバッファに展開する第２の変換手段と、
前記第２の変換手段が前記展開を行う際に、バンドの未描画部分の属性情報を前記集計情報に基づいて決定する未描画属性決定手段と
前記集計手段の集計結果に基づいて、画像形成の際の画像形成条件の少なくとも１条件をバンド単位で変化させるか固定とするかを決定するバンド単位条件変化決定手段と
を具備することを特徴とする画像処理装置。
【請求項３】
前記集計手段の集計結果に基づいて、画像形成の際の画像形成条件の少なくとも１条件をページ単位で変化させるか固定とするかを決定するページ単位条件変化決定手段を具備することを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記集計手段は、各描画オブジェクトの展開処理における前記バンドバッファへの書き込みバイト数と、各描画オブジェクトがカラーであるか白黒であるかを区別する情報とを集計情報として集計することを特徴とする請求項１ないし３のいずれかに記載の画像処理装置。
【請求項５】
前記バンド単位条件変化手段は、前記画像形成条件の少なくとも１条件として、前記画像形成手段におけるスクリーンを切り替えるか否かを決定することを特徴とする請求項２記載の画像処理装置。
【請求項６】
前記ページ単位条件変化手段は、前記画像形成条件の少なくとも１条件として、前記画像形成手段において白黒出力とするか、あるいはカラー出力とするかを決定することを特徴とする請求項３記載の画像処理装置。
【請求項７】
前記ページ単位条件変化手段は、前記画像形成条件の少なくとも１条件として、中間コード画像データを直接ラスタデータに変換して出力するか、あるいはバンド単位に圧縮したものを伸張して出力するかを決定することを特徴とする請求項３記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、１枚分のラスタデータ保持用のメモリを持たず、入力された描画オブジェクトの画像情報と属性情報とを中間コード画像データとして保持し、上記属性情報に基づいて上記画像情報を加工する画像処理装置に関する。
【０００２】
【従来の技術】
従来より、ページ記述言語（ＰＤＬ）等で生成された書類を受信し、該ＰＤＬファイルを解釈して忠実に再現する画像処理装置が知られている。該画像処理装置では、１枚分のラスタデータ保持用のメモリを持たず、入力された描画オブジェクトの画像情報と属性情報とを中間コード画像データとして保持し、上記属性情報に基づいて上記画像情報に対して加工を行う。
【０００３】
例えば、特開平６−３２０８０２号公報には、部分画像を構成する各画素の画像情報とその属性情報とを表すオブジェクトリストを生成／保持し、展開時において、オブジェクトリストから画像データとその属性情報とを表すタグビットを生成／出力し、画像データに対し、そのタグビットに基づいて画像処理を行う画像処理装置が開示されている。
【０００４】
【発明が解決しようとする課題】
しかしながら、上述した従来の画像処理装置では、オブジェクトリスト（＝中間コード画像データ）の形で保持されている画像データとその属性情報とを１度に読み出せる機能を備え、バンド単位で属性情報に従って画像情報を加工する場合には問題ないが、そのような機能を備えていない場合には、画像データを読み出す前に属性情報を読み出す必要があり、その分、処理時間が長くなるという問題があった。
【０００５】
また、画像データとその属性情報を１度に読み出せる機能を備えていても、未描画部分の属性情報を未定義であり、またページ単位で画像データを加工（操作）する場合には、プリンタ起動前に、画像データを読み出す前に属性情報を読み出す必要があり、その分、処理時間が長くなるという問題があった。
【０００６】
また、属性情報をオブジェクトリストに保持しているため、処理途中において何らかの理由によりオブジェクトリストを保持できなくなった場合には、画像データの加工を行えなくなるという問題があった。
【０００７】
その対策として、属性情報を記憶する属性情報記憶領域（属性情報をオブジェクトリストに含めない）を備える画像処理装置が提案されている。しかしながら、プリンタの解像度が上がると、各画像毎の属性情報を記憶する領域のサイズが大きくなるため、例えば、Ａ４／６００ｄｐｉで１画素当たり８ビットの属性情報を持たせたとすると、約３０Ｍバイトのメモリが必要となり、大容量の記憶媒体が必要となるという問題があった。
【０００８】
この発明は上述した事情に鑑みてなされたもので、１枚分のラスタデータ保持用のメモリを持たず、入力された描画オブジェクトの画像情報と属性情報とを中間コード画像データとして保持し、上記属性情報に基づいて上記画像情報に対して加工を行う場合、属性情報の取り出しの高速化および未描画部分の属性情報の最適化を行うことができる画像処理装置を提供することを目的としている。
【０００９】
【課題を解決するための手段】
上述した問題点を解決するため、本発明は、画像形成に用いる１ページ分の画像データを複数の主走査線ラインからなるバンドに分割して処理する画像処理装置において、前記バンドに対応して設けられた複数のバンドバッファと、前記バンドに含まれる描画オブジェクトのオブジェクト属性情報をバンド毎に集計情報として集計する集計手段と、ページ記述言語で記載されたコード画像データを中間コード画像データに変換する第１の変換手段と、前記第１の変換手段によって変換された中間コード画像データと属性情報とをビットマップデータに変換し、前記バンドバッファに展開する第２の変換手段と、前記第２の変換手段が展開する際に、バンドの未描画部分の属性情報を前記集計情報に基づいて決定する未描画属性決定手段とを具備することを特徴とする。
【００１０】
この発明によれば、１枚分のラスタデータ保持用のメモリを持たず、入力された描画オブジェクトの画像情報と属性情報とを中間コード画像データとして保持し、上記属性情報に基づいて上記画像情報に対して加工を行う場合、属性情報の取り出しの高速化および未描画部分の属性情報の最適化を行うことが可能となる。
【００１１】
【発明の実施の形態】
次に図面を参照してこの発明の実施形態について説明する。
【００１２】
Ａ．実施形態の構成
図１は本発明の実施形態による画像処理装置１の構成を示すブロック図である。図において、上位処理部２は、入力されたコード画像データを内蔵されたソフトウェア（一般にはデコンポーザ）で解釈し、コード画像データの内容が描画オブジェクトの場合には、その画像処理装置独自の中間コード画像データフォーマットに変換し、生成した中間コード画像データをバンド毎で中間コード画像データ管理部５に供給するとともに、属性情報を属性情報管理部６に供給する。
【００１３】
属性情報管理部６は、中間コード画像データ生成時において現在処理中の描画オブジェクトの内容が通知されると、その内容を集計する。属性情報管理部６がバンド毎に集計する内容は以下の通りである。
【００１４】
tol_c_graphic;      /*  色成分がＫ以外のGraphicsの総ランレングス  */
tol_c_font;         /*  色成分がＫ以外のFontの総ランレングス  *//
tol_c_image;        /*  色成分がＫ以外のImageの総ランレングス  */
tol_k_graphic;      /*  色成分がＫのGraphicsの総ランレングス  */
tol_k_font;         /*  色成分がＫのFontの総ランレングス  *//
tol_k_image;        /*  色成分がＫのImageの総ランレングス  */
mergeflag;          /*  重畳図形処理済みの場合にはＬＳＢに１をセット*/
【００１５】
上記集計内容に示すように、属性情報管理部６は、描画オブジェクト内容以外に、各描画オブジェクトのランレングス（展開処理におけるメモリへの書き込みバイト数）と、それらのランレングスがカラーであるか、あるいは白黒であるかを区別するための情報とを集計する。
【００１６】
重畳図形処理部３は、コード画像データの解釈中において中間コード画像データを保持する領域が不足した場合、これを回避するために、中間コード画像データ管理部５からの指示に従って、描画オブジェクトの重なりをなくす重畳図形処理を実行する。この場合、上記集計情報は更新されなければならないので、中間コード画像データ管理部５において、重畳図形処理を行ったバンドに対しては上記集計情報が更新されるとともに、重畳図形処理済みであることを示すために、上記集計情報の「mergeflag」フィールドに「１」が設定される。ちなみに、「mergeflag」フィールドに「１」が設定されているバンドに対して中間コード画像データが１つでも生成された場合には、「mergeflag」フィールドの値はクリアされる。
【００１７】
展開部４は、上位処理部２による１ページ分のコード画像データの解釈が完了すると（複数ページの場合には、上記処理を繰り返すか、あるいは１ページ毎に処理を行う）、属性情報管理部６から全てのバンドにおける上記集計情報を得て、まず、全てのバンドの集計情報に従ってページ単位の処理の決定（切り替え）を行う。
【００１８】
ページ単位の処理として挙げられるのが、プリンタの出力モード（白黒／カラー）とか、出力形態（リアルタイムに中間コードをバンドバッファに展開しながらプリンタへラスタデータを送信／事前にバンド単位に中間コード画像データを展開して圧縮したものを伸張しながらプリンタに送信）であり、出力モードに関しては、上記集計情報の色成分Ｋ以外のそれぞれの描画オブジェクトのランレングス情報が全て「０」の場合には、白黒の描画オブジェクトによりページが描画されていることになるので、プリンタコマンドとして白黒モードを設定し、そうでない場合には、プリンタコマンドとしてカラーモードを設定する。
【００１９】
また、出力形態に関しては、描画オブジェクトにイメージが含まれると、イメージ自体は中間コード画像データで表現されず、プリンタの解像度にもよるが、近年のプリンタでは、６００ｄｐｉの解像度を有するのが普通であり、それに対し、コスト削減のため、プリンタの搭載メモリ量を少なく抑えるため、イメージを圧縮した状態で保持する。
【００２０】
このため、イメージを含むページにおいて、リアルタイムで中間コードをバンドバッファに展開しながらプリンタへラスタデータを送信する場合には、白抜けを起こす危険性があり、リアルタイム性を保証することは困難である。その対応策としては、事前にバンド単位で中間コード画像データを展開し、また、圧縮されたイメージを、伸張されて中間コード画像データで表現されたグラフィックやフォントと、バンドバッファ（あるいは展開領域）上で描画順を考慮してマージし、バンド単位で圧縮し、プリンタへの出力時においては、順に伸張しながらプリンタにラスタデータを送信することにより、リアルタイム性を保証している。上記出力形態の切り替えは、全てのバンドの集計情報のイメージのランレングスの値が「０」か否かで判定することが可能である。
【００２１】
また、展開部４は、上述したページ単位の処理が決定した後は、バンド単位で処理の決定（切り替え）を行う。本実施形態においては、上記集計情報を用いて描画オブジェクトに対応したプリンタのスクリーンの切り替えを行う。
【００２２】
属性情報および画像データを含む中間コード画像データをリアルタイムに処理可能なハードウェアが備わっているシステムでは問題ないが、一般的にはコストの面で全てのプリンタにおいて装備されているわけではない。したがって、上記出力形態で説明したように、リアルタイム性を保証するために、画像データを事前に展開して圧縮した状態で保持したように、属性情報に関しても、事前に展開して圧縮した状態で保持することにより、属性情報に応じて、処理をリアルタイムで切り替えることができ、また、属性情報を保持する領域（記憶媒体の記憶容量）を少なくすることができる。
【００２３】
そこで、展開部４は、まず、バンド毎の集計情報から、そのバンドを構成する描画オブジェクトが単一の描画オブジェクトであるか、あるいは描画オブジェクトが全く存在しないかを判定し、単一の描画オブジェクトであるか、あるいは描画オブジェクトが全く存在しない場合には、そのバンドの中間コード画像データを読み出して、その属性情報を解釈する必要がないので、計算により属性情報の圧縮コードを生成する。ここで、圧縮方式は規定しないが、可逆方式である必要がある。描画オブジェクトに対応した属性情報という性質上、ランレングス圧縮などが最適であり、ランレングス圧縮方式ならば、上述した処理での計算による圧縮コードの生成は可能であり、高速に圧縮コードの生成が可能となる。
【００２４】
一方、バンドを構成する描画オブジェクトが複数の描画オブジェクトからなる場合には、中間コード画像データを読み出して解釈する必要があり、バンドの全ての領域が描画されている保証はないので、まず属性情報の展開領域を初期化しなければならない。通常、画像データの展開時におけるバンドバッファの初期化においては、「０」の値でバンドバッファをクリアするが、属性情報の場合には、以下の理由により「０」でクリアしない。
【００２５】
（１）圧縮率を上げるため
ほとんどの場合において、バンドの全ての領域が描画されているわけではなく、未描画部分が存在し、その未描画部分への属性情報の割り当て次第で、圧縮率は変化する。そこで、上記集計情報に基づいて、バンド内で一番大きいランレングスを持つ描画オブジェクトの属性情報を割り当てるとか、また圧縮方式にもよるが、フォントが存在し、かつ圧縮方式としてランレングス方式を採用している場合には、フォントの形状は複雑であるという理由により、未描画部分への属性情報の割り当てとしてフォントの属性情報を割り当てる。これにより、圧縮率を高めることが可能となる。
【００２６】
（２）バンドバッファへの書き込み回数を削減するため
重畳図形処理を行ったバンドにおいては、展開領域のクリア値と同一内容の属性情報を持つ描画オブジェクトに対して、展開領域にその属性情報を書き込む必要はない。
【００２７】
そこで、上記（１）の場合に対しては、上記集計情報の各描画オブジェクトのランレングスの合計値を比較するか、あるいは描画オブジェクトとしてフォントが存在するか否かをチェックし、その属性情報の値で展開領域をクリアすることにより、圧縮率を高めている。また、上記（２）の場合に対しては、上記集計情報の「mergeflag」フィールドの値をチェックし、重畳図形処理が行われていて、かつ展開領域のクリア値と同一の属性情報を持つ描画オブジェクトに対しては、展開領域への属性情報の書き込みを省略することで、処理速度を向上させている。
【００２８】
転送部７は、展開部４からの画像データと展開情報（タグビット）とをスクリーン切替機構８に転送する。スクリーン切替機構８は、上記展開情報（タグ）に従って、スクリーンを切り替える。プリンタエンジン９は、切り替えられるスクリーンに従って画像データを印字出力する。圧縮部１０は、展開部４による、対応するバンドの全ての中間コード画像データの属性情報の展開が完了すると、属性情報圧縮し、圧縮コードをメモリ上の指定領域あるいは図示する外部記憶装置１２に保持する。伸張部１１は、メモリ上の指定領域あるいは図示する外部記憶装置１２に保持された圧縮コードを読み出し、伸張した後、展開部４に供給する。
【００２９】
Ｂ．実施形態の動作
次に、本実施形態の動作を説明する。
本実施形態では、描画オブジェクトに依存してプリンタのスクリーンの切り替えを行うシステムについて説明する。ここで、図２〜図５は、上記画像処理装置の処理シーケンスを示すフローチャートである。
【００３０】
ネットあるいはスプールディスクから送信されたページ記述言語で記述されたコード画像データが画像処理装置１に入力されることにより、画像処理装置１が起動され、そして、入力されたコード画像データを上位処理部２内のソフトウェア（一般にはデコンポーザ）が解釈を行い、コード画像データの内容が描画オブジェクトの場合には、その画像処理装置独自の中間コード画像データフォーマットに変換され、生成された中間コード画像データはバンド毎に中間コード画像データ管理部５の管理下に置かれる。
【００３１】
まず、ステップＳ１で、未処理のコード画像データがあるか否かを判断し、未処理のコード画像データがある場合には、ステップＳ２で、描画オブジェクト命令かどうかを判断する。そして、描画オブジェクト命令の場合には、ステップＳ３で、中間コード画像データに変換する。次に、ステップＳ４で、コード画像データの解釈中において中間コード画像データを保持する領域が不足するのを回避するために、メモリに空きがあるか否かを判断する。そして、領域が不足するようであれば、ステップＳ５に進み、描画オブジェクトの重なりをなくす重畳図形処理を実行する。この場合、上記集計情報は更新されなければならないので、中間コード画像データ管理部５において、重畳図形処理を行ったバンドに対しては上記集計情報が更新されるとともに、重畳図形処理済みであることを示すために、上記集計情報の「mergeflag」フィールドに「１」が設定される。その後、ステップＳ１に戻り、上記処理を繰り返す。
【００３２】
一方、中間コード画像データを保持する領域が確保可能であれば、ステップＳ６に進み、描画オブジェクトの内容（種類）が、グラフィックス、フォント、イメージのいずれであるかを判断する。そして、描画オブジェクトがグラフィックスである場合には、ステップＳ７に進み、白黒であるか、カラーであるかを判断する。描画オブジェクトが白黒のグラフィックスである場合には、ステップＳ８へ進み、属性情報を「白黒グラフィックス」とし、ステップＳ１５で、属性情報管理部６に属性情報を設定する。一方、描画オブジェクトがカラーのグラフィックスである場合には、ステップＳ９へ進み、属性情報を「カラーグラフィックス」とし、ステップＳ１５で、属性情報管理部６に属性情報を設定する。
【００３３】
また、描画オブジェクトがフォントである場合には、ステップＳ１０に進み、白黒であるか、カラーであるかを判断する。描画オブジェクトが白黒のフォントである場合には、ステップＳ１１へ進み、属性情報を「白黒フォント」とし、ステップＳ１５で、属性情報管理部６に属性情報を設定する。一方、描画オブジェクトがカラーのフォントである場合には、ステップＳ１２へ進み、属性情報を「カラーフォント」とし、ステップＳ１５で、属性情報管理部６に属性情報を設定する。
【００３４】
また、描画オブジェクトがイメージである場合には、ステップＳ１３に進み、白黒／カラーであるか、圧縮イメージであるか否かを判断する。そして、ステップＳ１４で、図２では省略しているが、描画オブジェクトがイメージである場合、上記判断結果のそれぞれのケースに応じて、属性情報をセットしている。すなわち、描画オブジェクトが白黒のイメージである場合には、属性情報を「白黒イメージ」とし、描画オブジェクトがカラーのイメージである場合には、属性情報を「カラーイメージ」、描画オブジェクトが白黒の圧縮イメージである場合には、属性情報を「白黒圧縮イメージ」、描画オブジェクトがカラーの圧縮イメージである場合には、属性情報を「白黒カラーイメージ」としてステップＳ１５で、属性情報管理部６に属性情報を設定する。
【００３５】
属性情報管理部６では、描画オブジェクトの内容に応じて設定された描画情報に基づいて集計を行う。そして、ステップＳ１に戻り、未処理のコード画像データがなくなるまで、上述したステップＳ１〜Ｓ１５を繰り返し実行する。
【００３６】
そして、未処理のコード画像データがなくなると、ステップＳ１から図３に示すステップＳ２０に進む。ステップＳ２０では、属性情報管理部６から全てのバンドにおける上記集計情報を獲得し、全てのバンドの集計情報に従ってページ単位の処理の決定（切り替え）を行うために、ステップＳ２１で、白黒であるか否かを判断する。そして、白黒でなければ、すなわちカラーであれば、ステップＳ２２で、プリンタコマンドをカラーモードに設定する。一方、白黒であれば、ステップＳ２３で、プリンタコマンドを白黒モードに設定する。
【００３７】
次に、ステップＳ２４で、属性情報管理部６から全てのバンドにおける上記集計情報を獲得し、圧縮イメージがあるか否かを判断する。そして、圧縮イメージがある場合には、ステップＳ２６で、全てのバンドの画像データの展開および圧縮を行った後、次のステップに進む。一方、圧縮イメージがない場合には、そのまま次のステップに進む。
【００３８】
図４のステップＳ２７では、対応するバンドの集計情報を獲得し、ステップＳ２８で、そのバンドを構成する描画オブジェクトが単一の描画オブジェクトであるか、あるいは描画オブジェクトが全く存在しないかを判断する。そして、単一の描画オブジェクトであるか、あるいは描画オブジェクトが全く存在しない場合には、ステップＳ２９で、そのバンドの中間コード画像データを読み出し、その属性情報を解釈する必要がないので、計算により属性情報の圧縮コードを生成する。
【００３９】
一方、バンドを構成する描画オブジェクトが複数の描画オブジェクトからなる場合には、中間コード画像データの読み出して解釈する必要があり、かつバンドの全ての領域が描画されている保証はないので、ステップＳ３０で、属性情報の展開領域を上述した方式でクリアする。次に、ステップＳ３１で、上記集計情報の「mergeflag」フィールドの値をチェックし、重畳図形処理が行われていて、かつ展開領域のクリア値と同一の属性情報を持つ描画オブジェクトであるか否かを判断する。そして、重畳図形処理が行われておらず、あるいは展開領域のクリア値と同一の属性情報を持つ描画オブジェクトでない場合には、ステップＳ３２へ進み、描画オブジェクトタグを展開領域に展開する。一方、重畳図形処理が行われていて、かつ展開領域のクリア値と同一の属性情報を持つ描画オブジェクトに対しては、展開領域への属性情報の書き込みを省略することで、処理速度を向上させている。
【００４０】
次に、ステップＳ３３で、未処理の中間コード画像データがあるか否かを判断し、未処理の中間コード画像データがある場合には、ステップＳ３１に戻り、ステップＳ３１〜Ｓ３２を繰り返し、実行する。一方、未処理の中間コード画像データがない場合には、ステップＳ３４で、圧縮されたイメージを、伸張されて中間コード画像データで表現されたグラフィックやフォントと、バンドバッファ（あるいは展開領域）上で描画順を考慮してマージし、バンド単位で圧縮する。次に、図５のステップＳ３５で、圧縮コード保持領域を獲得し、圧縮コードを格納した後、ステップＳ３６で、未処理のバンドがあるか否かを判断し、未処理のバンドがあれば、ステップＳ２７に戻り、以下、未処理のバンドがなくなるまで、ステップＳ２７〜Ｓ３５を繰り返し実行する。そして、全てのバンドに対する処理が終了すると、当該処理を終了する。
【００４１】
以上、本実施形態によれば、属性情報の取り出しの高速化、および未描画部分の属性情報の最適化を行うことにより、属性情報の圧縮を行った場合において、圧縮率を高めることができ、メモリ使用量を削減することができる。
【００４２】
【発明の効果】
以上、説明したように、本発明によれば、描画オブジェクトの属性情報の取り出しの高速化および未描画部分の属性情報の最適化を行うことができるという利点が得られる。
【図面の簡単な説明】
【図１】  本発明の実施形態による画像処理装置の構成を示すブロック図である。
【図２】  描画オブジェクトの属性情報の集計処理を説明するためのフローチャートである。
【図３】  描画オブジェクトの属性情報の集計情報に基づいてページ単位の画像データの加工（操作）処理を説明するためのフローチャートである。
【図４】  描画オブジェクトの属性情報の集計情報に基づいてバンド単位の画像データの加工（操作）処理を説明するためのフローチャートである。
【図５】  描画オブジェクトの属性情報の集計情報に基づいてバンド単位の画像データの加工（操作）処理を説明するためのフローチャートである。
【符号の説明】
２  上位処理部（第１の変換手段）
３  重畳図形処理部
４  展開部（第２の変換手段、バンド単位条件変化決定手段、ページ単位条件変化決定手段、未描画属性決定手段）
５  中間コード画像データ管理部（複数のバンドバッファ）
６  属性情報管理部（集計手段）
７  転送部
８  スクリーン切替機構
９  プリンタエンジン（画像形成手段）
１０  圧縮部
１１  伸張部
１２  外部記憶装置
【図１】
0003663853.tif 000002
【図２】
0003663853.tif 000003
【図３】
0003663853.tif 000004
【図４】
0003663853.tif 000005
【図５】
0003663853.tif 000006