(57)【要約】      （修正有）【課題】無駄なバンドメモリ領域への処理を省略することができる画像処理装置及び画像処理プログラムを提供する。【解決手段】中間コードからバンド領域内のビットマップ画像データが存在する画像データ存在領域を求め，当該画像データ存在領域に対応する幅のバンドメモリ領域にビットマップ画像データを展開し，当該展開されたビットマップ画像データから生成される画像再生信号を印刷エンジンに出力する。ビットマップ画像データを展開するバンドメモリの容量を，画像データ存在領域に対応するバンド幅に制限し，そのバンドメモリ領域に中間コードから変換したビットマップ画像データを展開する。このバンド幅は，バンド領域内の画像データ存在領域が印刷プレーン幅よりも狭い場合は，バンドメモリ領域を小さくすることができ，無駄な初期化処理などを削減し，展開に必要な処理工数を低減することができる。【選択図】図１１
2006272557.tif 000002
【特許請求の範囲】
【請求項１】
印刷データから変換された中間コードに基づいて，印刷プレーンを複数に分割したバンド領域毎にビットマップ画像データを生成する画像処理装置において，
前記バンド領域内において前記ビットマップ画像データが存在する画像データ存在領域に対応する幅のバンドメモリ領域に，前記ビットマップ画像データを展開し，当該展開されたビットマップ画像データから生成される画像再生信号を印刷エンジンに出力し，
前記画像データ存在領域は，前記中間コードから求められることを特徴とする画像処理装置。
【請求項２】
請求項１において，
さらに，前記バンドメモリ領域内に展開されたビットマップ画像データを第１の色空間から第２の色空間に色変換する色変換処理と，当該色変換されたビットマップ画像データを圧縮する圧縮処理とを，いずれか一方または両方を行うことを特徴とする画像処理装置。
【請求項３】
請求項１または２において，
さらに，前記画像再生信号を，前記印刷プレーン内の前記画像データ存在領域の位置に応じて，印刷エンジンに出力することを特徴とする画像処理装置。
【請求項４】
請求項１または２において，
前記中間コードは，画像オブジェクトのバンド領域内の位置情報を有し，
当該位置情報に基づいて前記画像データ存在領域を求めることを特徴とする画像処理装置。
【請求項５】
請求項１または２において，
前記ビットマップ画像データの展開では，前記バンドメモリ領域に初期値を格納し，更に生成した前記ビットマップ画像データを格納することを特徴とする画像処理装置。
【請求項６】
請求項１または２において，
ホストコンピュータから前記印刷データを供給され，当該印刷データをバンド領域毎の中間コードに変換し，当該中間コードに基づいて前記バンド領域内の画像データ存在領域を求めることを特徴とする画像処理装置。
【請求項７】
請求項１または２において，
ホストコンピュータから前記バンド領域毎に前記中間コードと画像データ存在領域の情報を供給され，当該画像データ存在領域の情報に対応するバンド幅のバンドメモリ領域を確保することを特徴とする画像処理装置。
【請求項８】
印刷データから変換された中間コードに基づいて，印刷プレーンを複数に分割したバンド領域毎にビットマップ画像データを生成する画像処理プログラムにおいて，
前記中間コードから前記バンド領域内における前記ビットマップ画像データが存在する画像データ存在領域を求める工程と，
当該画像データ存在領域に対応する幅のバンドメモリ領域に，前記ビットマップ画像データを展開する工程とを，コンピュータに実行させる画像処理プログラム。
【請求項９】
請求項８において，
さらに，前記バンドメモリ領域内に展開されたビットマップ画像データを第１の色空間から第２の色空間に色変換する色変換工程と，
当該色変換されたビットマップ画像データを圧縮する圧縮処理工程とを，
いずれか一方または両方を，コンピュータに実行させる画像処理プログラム。
【請求項１０】
請求項８において，
前記ビットマップ画像データを，前記画像データ存在領域の情報と共に，画像形成装置に出力する出力工程を，コンピュータに実行させる画像処理プログラム。
【請求項１１】
請求項８において，
前記中間コードは，画像オブジェクトのバンド領域内の位置情報を有し，
さらに，当該位置情報に基づいて前記画像データ存在領域を求める工程を，コンピュータに実行させる画像処理プログラム。
【請求項１２】
請求項８において，
前記ビットマップ画像データの展開工程は，前記バンドメモリ領域に初期値を格納し，更に生成した前記ビットマップ画像データを格納する処理を含むことを特徴とする画像処理プログラム。
【請求項１３】
印刷データから，印刷プレーンを複数に分割したバンド領域毎にビットマップ画像データを生成する画像処理方法において，
前記印刷データから中間コードを前記バンド領域毎に生成する工程と，
前記バンド領域毎に前記ビットマップ画像データが存在する画像データ存在領域を求める工程と，
当該画像データ存在領域のバンド幅のバンドメモリ領域に，前記中間コードから生成したビットマップ画像データを展開する工程と，
前記ビットマップ画像データから生成した画像再生信号を，前記画像データ存在領域に応じて印刷エンジンに出力する工程とを有する画像処理方法。
【請求項１４】
前記展開工程では，前記バンドメモリ領域に初期値を格納し，さらに前記バンドメモリ領域に前記ビットマップ画像データを格納することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，画像処理装置及び画像処理プログラムに関し，特に，バンドバッファに画像を展開する画像処理装置及び画像処理プログラムに関する。
【背景技術】
【０００２】
プリンタなどの画像形成装置は，印刷データを画像処理する画像処理装置と，画像処理装置により生成された画像データに基づいて所望の画像を形成する印刷エンジンとを有する。画像処理装置は，ホストコンピュータからページ記述言語（ＰＤＬ）で記述された印刷データを入力し，当該印刷データをビットマップ画像データへの展開が容易な中間コードに変換する。そして，画像処理装置は，その中間コードからビットマップ画像データをバンドバッファ内に展開し，必要に応じて色変換や，圧縮などの処理を行い，最後に二値化などの必要な処理をした画像データを画像再生信号として印刷エンジンに出力する。
【０００３】
ビットマップ画像データは，画素に対応したＲＧＢの多階調データであり，１つの印刷プレーン分のデータを展開するためには大容量のメモリが必要になる。そこで，１印刷プレーン（印刷エンジンが１回の印刷処理で同時に印刷できる単位）を複数のバンド領域に分割し，バンド毎に中間コードからビットマップ画像データに展開している。つまり，１ページ分の全てのデータを処理すると大容量のメモリ領域が必要になるため，細分化されたバンド領域の単位で，中間コードからＲＧＢのビットマップ画像データへの展開や，ＣＭＹＫ画像データへの色変換や，圧縮などを行う。
【０００４】
図１は，バンド領域を説明するための図である。１つの印刷プレーン１内の画像は，文字「Ａ」２と，矩形図形４と，カエルのイメージ６とで構成されている。この１つの印刷プレーン分の画像を６つのバンド領域ＢＮＤ０〜ＢＮＤ５に分割すると，文字２，矩形図形４，イメージ６は，バンド領域ＢＮＤ０〜ＢＮＤ３内に位置し，バンド領域ＢＮＤ４，ＢＮＤ５には存在しない。
【０００５】
そこで，従来の画像処理装置は，１つの印刷プレーン分のＰＤＬ印刷データからバンド領域毎に中間コードを生成し，バンド領域単位で，中間コードからビットマップ画像データの展開，色変換，圧縮を行う。そして，画像処理装置は，１つの印刷プレーン分の圧縮された画像データの準備ができた段階でまたは一部の画像データの準備ができた段階で，その圧縮画像データを解凍し，二値化しながら画像再生信号を印刷エンジンに出力する。このように，バンド単位で中間コードを生成し，ビットマップ画像データの展開を行うプリントシステムについて，以下の特許文献１に記載されている。
【特許文献１】特開平１０−４００３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図２は，画像処理装置の課題を説明する図である。図１のバンド領域ＢＮＤ１，ＢＮＤ２について，バンド単位でビットマップ画像データを展開する場合，従来の画像処理装置では，バンド幅Ｗｂは全て印刷プレーン幅Ｗｐに固定されている。つまり，バンド単位でビットマップ画像データを展開する場合，画像処理装置は内部のメモリ領域に印刷プレーン幅Ｗｐ分の容量のバンドメモリ領域を確保し，中間コードから生成したビットマップ画像データをバンドメモリ領域内に展開する。このバンドメモリ領域への展開は，バンドメモリ領域内の全ての画素を初期値「白」に対応する画像データで初期化し（具体的には白データを書き込む），画像が存在する画素にＲＧＢのビットマップ画像データを展開する（具体的には画像データを書き込む）ことで行われる。
【０００７】
その場合，バンド領域ＢＮＤ１の場合は，文字２−２と矩形４−１とイメージ６−２が位置する領域以外の両端領域Ｅ１，Ｅ２は，初期値のままとなり，生成されたビットマップ画像データが書き込まれることはない。また，バンド領域ＢＮＤ２でも，矩形４−２とイメージ６−３が位置する領域以外の両端領域Ｅ３，Ｅ４は初期値のままとなる。
【０００８】
そして，その後のＲＧＢからＣＭＹＫへの色変換処理や，変換後のＣＭＹＫデータの圧縮処理は，バンドメモリ領域内の両端領域Ｅ１〜Ｅ４を含む全ての画素のデータに対して行われる。
【０００９】
しかしながら，両端領域Ｅ１〜Ｅ４は，実際には印刷用紙の色と同じ領域であり，画像形成装置において印刷用紙に何ら現像材を付着する必要のない領域であり，初期値がそのまま画像データとなるに過ぎない。ところが，従来例では，バンドメモリ領域を印刷プレーン幅Ｗｐ分だけ常に確保して，そのバンドメモリ領域全てに対して初期化，色変換，圧縮処理を行っているため，両端領域について，バンドメモリ領域が無駄に確保され，初期化，色変換，圧縮処理が無駄に行われている。
【００１０】
そこで，本発明の目的は，無駄なバンドメモリ領域への処理を省略することができる画像処理装置及び画像処理プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために，本発明の第１の側面によれば，印刷データから変換された中間コードに基づいて，印刷プレーンを複数に分割したバンド領域毎にビットマップ画像データを展開する画像処理装置において，前記中間コードから前記バンド領域内のビットマップ画像データが存在する画像データ存在領域を求め，当該画像データ存在領域に対応する幅のバンドメモリ領域に前記ビットマップ画像データを展開し，当該展開されたビットマップ画像データから生成される画像再生信号を印刷エンジンに出力することを特徴とする。
【００１２】
上記第１の側面によれば，ビットマップ画像データを展開するバンドメモリの容量を，画像データ存在領域に対応するバンド幅に制限し，そのバンドメモリ領域に中間コードから変換したビットマップ画像データを展開する。このバンド幅は，バンド領域内の画像データ存在領域が印刷プレーン幅よりも狭い場合は，バンドメモリ領域を小さくすることができ，無駄な初期化処理などを削減し，展開に必要な処理工数を低減することができる。また，バンド領域毎に，画像データ存在領域が異なり，それに伴ってバンドメモリ領域の容量も異なるので，最小の容量に対して，ビットマップ画像データの展開を含む画像処理が行われ，画像処理の負荷を軽減することができる。
【００１３】
上記第１の側面において，好ましい実施例によれば，画像処理装置は，更に，前記バンドメモリ領域内に展開されたビットマップ画像データを第１の色空間から第２の色空間に色変換する色変換処理と，当該色変換されたビットマップ画像データを圧縮する圧縮処理とを，いずれか一方または両方を行う。バンドメモリ領域をビットマップ画像データが展開されない両端領域を除いてビットマップ画像データを展開するのに必要な幅に限定したので，ビットマップ画像データの展開処理に加えて，その後行われる色変換処理や圧縮処理の対象となるデータ量を減らして，画像処理に要する負担を軽減することができる。
【００１４】
上記第１の側面において，より好ましい実施例によれば，画像処理装置は，前記バンドメモリ領域内のビットマップ画像データから生成される画像再生信号を，前記印刷プレーン内の前記画像データ存在領域の位置に応じて，印刷エンジンに出力する。これにより，印刷エンジンは，画像処理装置から印刷プレーン内の画像データ存在領域の位置に応じて出力される画像再生信号に基づいて，印刷媒体内の画像データ存在領域に画像を形成することができる。
【発明を実施するための最良の形態】
【００１５】
以下，図面にしたがって本発明の実施の形態について説明する。但し，本発明の技術的範囲はこれらの実施の形態に限定されず，特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１６】
図３は，本実施の形態における画像処理装置の概略構成図である。図３（Ａ）では，ホストコンピュータＨＯＳＴからページ記述言語の印刷データＰＤＬが，画像形成装置の一例であるプリンタ１０のコントローラ１２に供給される。コントローラ１２は，印刷データＰＤＬを中間コードに変換し，中間コードからビットマップ画像データをバンドメモリ領域Ｂ−ＢＵＦ内に展開し，展開されたビットマップ画像データから生成した画像再生信号１６を印刷エンジン２４に供給する。この場合，コントローラ１２が画像処理装置に対応する。
【００１７】
図３（Ｂ）では，ホストコンピュータＨＯＳＴ内のプリンタドライバＰ−ＤＲが，印刷データＰＤＬからバンド領域毎の中間コードＩＣを生成し，その中間コードＩＣをプリンタ１０のコントローラ１２に供給する。コントローラ１２は，供給された中間コードＩＣに基づいてビットマップ画像データをバンドメモリ領域Ｂ−ＢＵＦに展開し，展開されたビットマップ画像データから生成した画像再生信号１６を印刷エンジン２４に供給する。この場合も，コントローラ１２が画像処理装置に対応する。
【００１８】
さらに，図３（Ｃ）では，ホストコンピュータＨＯＳＴ内のプリンタドライバＰ−ＤＲが，印刷データからバンド領域毎の中間コードを生成し，その中間コードにもとづいてビットマップ画像データをバンドメモリ領域Ｂ−ＢＵＦに展開し，必要に応じて色変換，圧縮をして，圧縮されたビットマップ画像データＢＭをプリンタ１０内のコントローラ１２に出力する。コントローラ１２は，必要に応じて色変換，二値化処理を行い，画像再生信号１６を印刷エンジン２４に出力する。この場合は，プログラムであるプリンタドライバＰ−ＤＲが画像処理装置に対応する。
【００１９】
以上のように，本実施の形態の画像処理装置は，少なくとも中間コードからビットマップ画像データをバンドメモリ領域内に展開する部分に対応し，バンド単位の画像処理の対象となるバンドメモリ領域を，バンド領域内のビットマップ画像データが存在する領域に限定している。
【００２０】
図４は，本実施の形態におけるプリンタの構成図である。図４のプリンタ１０は，図３（Ａ）のプリンタ１０に対応する。プリンタ１０は，画像処理装置に対応するコントローラ１２と，印刷エンジン２４とで構成される。コントローラ１２は，ホストコンピュータからプリント制御言語の印刷データＰＤＬを受信するインターフェースＩＦと，印刷データＰＤＬをバンド領域毎の中間コードＩＣに変換する中央処理ユニットＣＰＵと，中間コードに基づいてビットマップ画像データを展開する展開ユニット１６と，ＲＧＢからＣＭＹＫの色変換を行う色変換ユニット１８と，ビットマップ画像データを圧縮する圧縮ユニット２０と，ビットマップ画像データを二値化する二値化ユニット２２と，二値化されたデータを画像再生信号であるパルス信号に変換するパルス変調ユニットＰＷＭとを有し，パルス変調ユニットにより生成される画像再生信号１６が印刷エンジン２４に供給される。さらに，コントローラ１２は，メモリユニット１４を有し，メモリユニット１４には，中間コードが格納される中間コードバッファＩＣ−ＢＵＦと，ビットマップ画像データが格納されるバンドメモリ領域（以下バンドバッファ）Ｂ−ＢＵＦとが確保される。
【００２１】
図４のプリンタ１０が，図３（Ｂ）のプリンタ１０に対応する場合は，コントローラ１２のインターフェースＩＦがホストコンピュータから中間コードＩＣを受信し，中間コードバッファＩＣ−ＢＵＦに格納する。そして，コントローラ１２は，展開ユニット１６により中間コードに基づいてバンドメモリ領域Ｂ−ＢＵＦ内にビットマップ画像データを展開する。
【００２２】
図４のプリンタ１０が，図３（Ｃ）のプリンタ１０に対応する場合は，コントローラ１２は，展開ユニット１６，色変換ユニット１８，圧縮ユニット２０などは設けられておらず，受信したビットマップ画像データを二値化して，画像再生信号１６を印刷エンジンに出力するだけである。
【００２３】
図５は，本実施の形態における印刷手順のフローチャート図である。また，図６は，メモリユニットの構成例を示す図である。図５の印刷手順は，図３のいずれのタイプにも適用することができるが，一例として図３（Ａ）に適用した場合にもとづいて，印刷手順を説明する。
【００２４】
ホストコンピュータによりＰＤＬ形式の印刷データが生成され（Ｓ１０），それがプリンタのコントローラ１２に供給される。コントローラ１２は，印刷データをバンド領域毎に中間コードに変換する（Ｓ１２）。このとき，コントローラ１２は，図６に示すように，メモリユニット１４内にバンド領域に対応したポインタ列の領域ＰＬと，中間コードバッファＩＣ−ＢＵＦを確保し，ポインタ列領域ＰＬに初期値としてＮＵＬＬコードを書き込んでおく。
【００２５】
コントローラ１２の中央処理ユニットＣＰＵは，印刷データを解釈し，印刷プレーン内のどこの領域にどのような文字，図形，イメージを印刷すべきかを検出し，バンド領域毎に印刷すべき文字，図形，イメージに対応する中間コードを生成する。そして，その中間コードを中間コードバッファＩＣ−ＢＵＦに書き込む。その時，図６に示すように，生成された中間コードのバンド領域に対応するポインタ列領域ＰＬ内に，中間コードバッファＩＣ−ＢＵＦ内のアドレスＡＤＤ１〜ＡＤＤ４が書き込まれる。
【００２６】
図１に示した画像の場合は，バンド領域ＢＮＤ１〜ＢＮＤ３に中間コードが生成されるので，ポインタ列ＰＬのバンド領域ＢＮＤ１〜３に対応する領域にアドレスＡＤＤ１〜ＡＤＤ４が書き込まれ，それ以外のバンド領域に対応する領域はＮＵＬＬコードのままとなる。したがって，このポインタ列ＰＬを参照することで，各バンド領域に中間コードが存在するか否かを識別することができると共に，形成すべき画像が存在するバンド領域の中間コードが格納されているバッファＩＣ−ＢＵＦ内のアドレスを取得することができる。
【００２７】
ＰＤＬ形式の印刷データは，通常１印刷プレーン（または１ページ）毎に区切られており，その印刷プレーン内の印刷データを解釈して中間コードに変換することで，１印刷ページ内の図形に対応する中間コードが全て中間コードバッファＩＣ−ＢＵＦに格納される。
【００２８】
次に，コントローラ１２は，バンド単位で画像処理を行う。まず，中央処理ユニットＣＰＵがポインタ列ＰＬからバンド領域ＢＮＤ１の中間コードＩＣ−ＢＵＦを読み出し，展開ユニット１６に与えて，ＲＧＢのビットマップ画像データを生成，バンドメモリ領域Ｂ−ＢＵＦ内に書き込む（Ｓ１４）。このＲＧＢのビットマップ画像データは，ＲＧＢの３つのプレーンについて，画素毎の多値階調データであり，例えば，それぞれ８ビット，２５６階調のデータである。このとき，後述するとおり，中央処理ユニットＣＰＵは，バンド領域ＢＮＤ１の中間コードＩＣ−ＢＵＦから，バンド領域内においてビットマップ画像データが存在する画像データ存在領域を求める。そして，その求めた画像データ存在領域に対応する容量（バンド幅）のバンドメモリ領域Ｂ−ＢＵＦをメモリユニット１４内に確保し，そこに中間コードから生成したビットマップ画像データを書き込む。ここで確保されるバンドメモリ領域は，図２に示す画像が形成されない両端領域Ｅ１，Ｅ２を含まない。つまり，印刷プレーン（印刷ページ）の幅より狭い幅のバンドメモリ領域が確保される。
【００２９】
コントローラ１２は，色変換ユニット１８によりバンドメモリ領域（バンドバッファ）Ｂ−ＢＵＦ内のＲＧＢビットマップ画像データを色変換し，ＣＭＹＫのビットマップ画像データに変換し，再度バンドバッファＢ−ＢＵＦ内に書き込む（Ｓ１６）。このビットマップ画像データも同様に画素毎の多値階調データであり，ＣＭＹＫの４つのプレーンについてそれぞれ８ビット，２５６階調のデータである。
【００３０】
さらに，コントローラ１２は，圧縮ユニット２０によりバンドメモリ領域Ｂ−ＢＵＦ内のＣＭＹＫビットマップ画像データを圧縮処理し，同じバンドメモリ領域またはメモリユニット１４内の別の領域に格納する（Ｓ１８）。そして，コントローラ１２は，メモリユニット内の圧縮されたＣＭＹＫビットマップ画像データを解凍し，二値化ユニット２２により二値化して，ＣＭＹＫの二値化ビットマップ画像データを画像再生データ２３としてパルス幅変調器ＰＷＭに出力する。そして，画像再生信号１６が印刷エンジン２４に供給される。
【００３１】
中間コードは，ビットマップ画像データを生成するために必要な情報を有するデータであり，中間コードの情報を解析することにより，バンド領域内のどの位置または領域にビットマップ画像データが生成されるかを検出することができる。これを利用することにより，図２に示した，バンド領域ＢＮＤ１，ＢＮＤ２内のビットマップ画像データが存在する画像データ領域ＢＭＲ１，ＢＭＲ２を検出し，その画像データ存在領域に対応したバンド幅のバンドメモリ領域Ｂ−ＢＵＦを確保することができる。それにより，画像処理対象のバンドメモリ領域の容量を減らすことができる。
【００３２】
図７は，中間コードを説明するための図である。図７には，バンド領域ＢＮＤ１の画像が示されている。図７（Ａ）に示されるように，バンド領域ＢＮＤ１は，左上を原点０とし，水平方向にＸ軸，垂直方向にＹ軸が割り当てられる。そして，この例では，バンド領域ＢＮＤ１内に，文字２−２，矩形４−１，イメージ６−２の画像オブジェクトが形成される。図７（Ｂ）には，文字２−２，矩形４−１，イメージ６−２が形成される位置を特定する情報が示される。すなわち，各画像オブジェクトの左上のＸＹ座標と幅および高さである。中間コードは，ビットマップ画像データを展開するためのコードであり，このバンド領域ＢＮＤ１内のＸＹ座標における各画像オブジェクトの位置を特定する画像左上のＸＹ座標と幅および高さの情報を有している。
【００３３】
中間コードは，上記のビットマップを展開するための画像中間コードと，その他，文字色設定，画像オブジェクトの合成方法（ラスターオペレーション）の設定，ハッチングパターンの設定など，ビットマップの展開に直接関連しない制御中間コードとを有する。本実施の形態では，制御中間コードは直接関係しないので，以下画像中間コードについて説明する。
【００３４】
図８は，矩形の中間コードの一例を示す図表である。この図表には，中間コード，コード例，その説明が示される。矩形の画像中間コードには，矩形オペコードとして「矩形ＩＤ」，矩形再現位置として「ｘrr，ｙrr」，矩形再現幅として「ｗr」，矩形再現高さとして「ｈr」が含まれる。これらの画像中間コードによれば，矩形４−１の画像が存在するバンド領域内の位置が特定され，その領域に矩形４−１のビットマップ画像データが展開される。
【００３５】
図９は，文字とイメージのソース画像データを示す図である。文字の場合は，あらかじめ生成されている文字ビットマップの画像データをソース画像データとして利用する。文字のビットマップは，アウトラインフォントデータから作成された画像データがコントローラ内のメモリユニット１４内に格納されているか，またはＲＯＭ内に格納されている。イメージの場合は，そのソース画像データがホストコンピュータから供給され，コントローラ内のメモリユニット１４内に格納されている。いずれのソース画像データも，ソース画像幅Ｗｓとソース画像高さＨｓと展開開始位置を示すソースデータへのポインタＰｓが特定されれば，展開すべきビットマップ画像データが特定される。したがって，それらに加えて，バンド領域内のビットマップ画像データを展開すべき位置を，バンド領域内のＸＹ座標上の左上座標と幅および高さで特定すれば，バンドメモリ領域Ｂ−ＢＵＦ内にビットマップ画像データを展開することができる。
【００３６】
図１０は，文字２−２（文字Ａの一部）とイメージ６−２（イメージの一部）の中間コードの一例を示す図表である。文字の画像中間コードには，矩形と同様に，オペコードとして「文字ＩＤ」，再現位置として「ｘcr，ｙcr」，再現幅として「ｗc」，再現高さとして「ｈc」が含まれ,
さらに，ソース画像幅として「Ｗｓ」，ソース画像高さとして「Ｈｓ」，ソースデータへのポインタとして「Ｐｓ」が含まれる。同様に，イメージの画像中間コードには，オペコードとして「イメージＩＤ」，再現位置として「ｘir，ｙir」，再現幅として「ｗi」，再現高さとして「ｈi」が含まれ,さらに，ソース画像幅として「Ｗｓ」，ソース画像高さとして「Ｈｓ」，ソースデータへのポインタとして「Ｐｓ」が含まれる。
【００３７】
前述したとおり，上記の中間コードによれば，ソース画像が特定され，バンド領域内の展開すべき位置が特定されるので，この中間コードに基づいて，図７に示した文字２−２とイメージ６−２のビットマップ画像データをバンドメモリＢ−ＢＵＦ内に展開することができる。
【００３８】
プリンタのコントローラ１２は，ホストコンピュータから供給される印刷データＰＤＬを，上記の中間コードに変換し，バンド領域毎にその中間コードをメモリユニット１４内に格納する。そして，中間コードには，図７〜９で示したとおり，バンド領域内に画像オブジェクトのビットマップ画像データを展開すべき位置または領域を特定する情報が含まれる。そこで，本実施の形態では，この中間コードの画像オブジェクトの位置情報に基づいて，バンド領域内の画像データ存在領域を検出し，不必要な両端領域を除いた画像データ存在領域に対応するバンド幅のバンドメモリ領域を確保する。
【００３９】
図１１は，バンド領域ＢＮＤ１におけるバンドメモリ領域ＢＭＲ１を示す図である。バンド領域ＢＮＤ１には，文字，矩形，イメージの３つの図形オブジェクトが存在する。図７（Ｂ）に示されるように，各画像オブジェクトが展開される領域（ｘ座標値）は，
文字２−２は，左端ｘcrから右端ｘcr＋ｗc−１の領域
矩形４−１は，左端ｘrrから右端ｘrr＋ｗr−１の領域
イメージ６−２は，左端ｘirから右端ｘir＋ｗi−１の領域
となる。
【００４０】
したがって，これらバンド内の複数の画像オブジェクトの展開領域の最小左端ｘ座標ＸＬと，最大右端ｘ座標ＸＲとを求めることで，画像オブジェクトのビットマップ画像データが存在する画像データ存在領域を検出することができる。上記の例では，ＸＬ＝ｘcr，ＸＲ＝ｘir＋ｗi−１となる。したがって，画像データ存在領域の幅は，ＢＭＲ１＝ＸＲ−ＸＬ＋１＝ｘir＋ｗi−ｘcrとなる。本実施の形態では，この画像データ存在領域の幅ＢＭＲ１に対応する容量が，バンドメモリ（バンドバッファ）Ｂ−ＢＵＦとしてメモリユニット１４内に確保される。この画像データ存在領域の幅ＢＭＲ１は，印刷プレーン（または印刷用紙）の幅よりも狭い。そして，このビットマップ画像データの展開に最小限必要なバンドメモリ内の画像データについて，展開処理，色変換処理，圧縮処理などの画像処理が行われる。したがって，バンド単位で行われる上記画像処理の負担を軽減することができ，画像処理速度を向上し，印刷速度を上げることができる。
【００４１】
図１２は，バンドメモリＢ−ＢＵＦ内の画像データと印刷用紙との関係を示す図である。印刷用紙１は，用紙の左端ＰＬＥＦＴに対して所定の余白を介して印刷開始位置ＬＦが定義される。この印刷開始位置ＬＦに基づいて，印刷エンジン２４は，印刷用紙１上への画像形成を行う。また，コントローラ１２は，各バンド領域の画像データを画像再生信号にして印刷エンジン２４に出力する。この画像再生信号は，印刷開始位置ＬＦを原点として出力されるので，印刷エンジン２４も，印刷開始位置ＬＦを基準として，受信する画像再生信号にしたがって画像形成を行う。
【００４２】
ところが，本実施の形態では，各バンド領域の画像データは，印刷用紙幅より狭い画像データ存在領域のみしか存在しない。したがって，コントローラ１２は，エンジン２４に画像再生信号をラスタ方向に点順次で出力するとき，各バンド領域の画像再生信号を印刷開始位置ＬＦから出力オフセットＯＦＦ１，ＯＦＦ２だけタイミングをずらして出力することが必要になる。つまり，コントローラ１２は，バンドメモリＢ−ＢＵＦの容量を印刷プレーン幅より狭い画像データ存在領域幅に限定して，バンド単位での画像処理を軽減するが，それに対応して，出力オフセットだけタイミングをずらして，画像再生信号を印刷エンジン２４に出力する。印刷エンジン２４は，出力オフセットだけタイミングがずれて受信される画像再生信号に応答して，印刷用紙への画像形成を行えばよい。
【００４３】
本実施の形態によれば，図５に示した印刷手順において，工程Ｓ１２で，中間コードを作成した段階で，各バンド領域の画像データ存在領域を中間コードから求め，工程Ｓ１４で，バンドメモリ（バンドバッファ）Ｂ−ＢＵＦの容量を画像データ存在領域の幅に限定する。そして，工程Ｓ１４，Ｓ１６，Ｓ１８，Ｓ２０の画像処理を，その限定されたバンドメモリ内のデータに対して行う。さらに，工程Ｓ２２において，二値ビットマップ画像データから生成される画像再生信号を，各バンド領域の出力オフセットだけずらしたタイミングで，印刷エンジン２４に出力する。
【００４４】
以下，本実施の形態による画像処理についてフローチャートを参照して詳細に説明する。以下の説明も，図３（Ａ）のプリンタのコントローラを例にして説明する。
【００４５】
図１３は，印刷データＰＤＬの１ページ分または１印刷プレーンの処理のフローチャート図である。コントローラ１２は，全てのバンド領域について，最小左端ｘ座標値ＸＬを出力用紙幅−１に，最大右端ｘ座標値を０にそれぞれ初期化する（Ｓ３０）。この座標値ＸＬ，ＸＲは，バンド領域内の画像データ存在領域を求めるためのデータである。そして，コントローラ１２は，そのページの印刷データＰＤＬを読み出し解釈する（Ｓ３２）。印刷データＰＤＬは，画像オブジェクトのデータと，制御用のデータとを有し，それらのデータが改ページコマンドまで並べられている。コントローラ１２が印刷データを解釈し，画像オブジェクトの場合は（Ｓ３４のＹＥＳ），文字，イメージ，図形（グラフィック）に対応する中間コードの作成と登録を行う（Ｓ４０，Ｓ４２，Ｓ４４）。また，画像オブジェクト以外の場合は（Ｓ３４のＮＯ），改ページコマンドでなければ（Ｓ４６のＮＯ），制御中間コマンドの作成と登録を行う（Ｓ４８）。上記の中間コードの作成と登録が，改ページコマンドまで行われる。その結果，１ページ分の中間コードがバンド領域毎に生成され登録される。
【００４６】
その後，コントローラ１２は，バンド領域毎にビットマップ画像データの展開処理と，色変換処理と圧縮処理とを行って，メモリユニット１４に格納する（Ｓ５０）。
【００４７】
図１４は，画像オブジェクトの中間コードの作成と登録のフローチャート図である。図５の中間コードの変換Ｓ１２及び図１３の工程Ｓ４０，Ｓ４２，Ｓ４４の中間コードの作成と登録の処理手順に対応する。コントローラ１２は，画像オブジェクトを形成すべきバンド領域を判別し，その画像オブジェクトを展開するための中間コードを登録すべきバンドを決定する（Ｓ６０）。図１の例では，文字２の画像オブジェクトは，バンドＢＮＤ０，ＢＮＤ１に形成されるので，その中間コードはバンドＢＮＤ０，ＢＮＤ１に登録される。
【００４８】
次に，コントローラ１２は，印刷データの画像オブジェクトについて中間コードを作成し，対応するバンドに登録する。具体的には，中間コードの作成は変換テーブルなどの参照により行われ，中間コードの登録は，図６に示した中間コードバッファＩＣ−ＢＵＦ内の対応するアドレスに中間コードを格納することにより行われる。
【００４９】
コントローラ１２は，画像オブジェクトの中間コードを作成し登録するときに，各バンドにビットマップ画像データが展開される領域，画像データ存在領域を求める。この画像データ存在領域の検出は，工程Ｓ６４〜Ｓ７０でのバンド内の最小左端ｘ座標ＸＬと最大右端ｘ座標ＸＲの検出により行われる。すなわち，作成された中間コードのオブジェクト左端ｘ座標が最小左端ｘ座標ＸＬ（初期値は出力用紙幅−１）より小さければ（Ｓ６４のＹＥＳ），最小左端ｘ座標ＸＬをそのオブジェクト左端ｘ座標に更新する（Ｓ６６）。一方で，作成された中間コードのオブジェクト右端ｘ座標が最大右端ｘ座標ＸＲ（初期値は０）より大きければ（Ｓ６８のＹＥＳ），最大右端ｘ座標ＸＲをそのオブジェクト右端ｘ座標に更新する（Ｓ７０）。これらの処理Ｓ６２〜Ｓ７０が，画像オブジェクトが形成されるべき全てのバンドに対して行われる（Ｓ７２，Ｓ７４）。
【００５０】
図７のバンドＢＮＤ１の場合を例にして説明すると，最小左端ｘ座標ＸＬは，文字２−２の左端ｘ座標ｘcrになり，最大右端ｘ座標ＸＲは，イメージの右端ｘ座標ｘir＋Ｗi−１になる。つまり，図１１で説明した通りである。
【００５１】
図１５は，ビットマップ画像データの展開，色変換，圧縮処理のフローチャート図である。この処理は，図１３の工程Ｓ５０に対応し，図５の工程Ｓ１４，Ｓ１６，Ｓ１８に対応する。１ページ内の複数バンドに対して中間コードが生成された状態で，最初にバンドbandNo=0が処理対象になる（Ｓ８０）。そして，コントローラ１２は，そのバンドに中間コードが登録されているか否かをチェックし，登録されていれば（Ｓ８２のＹＥＳ），工程Ｓ８４以下の処理を行い，登録されていなければ（Ｓ８２のＮＯ），そのバンドについての処理は行わず，次のバンドを選択する（Ｓ９８）。この工程Ｓ８２の判断は，図６のポインタ列ＰＬの対応するバンド内にアドレスＡＤＤが格納されているかＮＵＬＬコードのままかを確認することにより行われる。アドレスＡＤＤが格納されている場合は，中間コードバッファＩＣ−ＢＵＦ内にそのバンドに登録された中間コードが存在し，ＮＵＬＬコードのままの場合は，そのバンドに登録された中間コードは存在しない。中間コードが存在しない場合は，そのバンドの画像処理を行う必要はない。
【００５２】
処理中のバンドに中間コードが登録されている場合は（Ｓ８２のＹＥＳ），そのバンド領域内の画像データ存在領域の幅が，バンド幅として検出される。図１４の中間コードの作成と登録処理において，バンド領域内の最小左端ｘ座標ＸＬと最大右端ｘ座標ＸＲとが求められているので，それらの座標値ＸＬ，ＸＲから，バンド幅がＸＲ−ＸＬ＋１と求められる（Ｓ８４）。そして，このバンド幅分のバンドメモリ（バンドバッファ）の領域が，メモリユニット１４内に確保される（Ｓ８６）。これにより，バンドメモリの容量は，印刷プレーン幅より狭い画像データ存在領域の幅に減じられる。
【００５３】
次に，コントローラ１２は，メモリユニット１４内に確保したバンドメモリＢ−ＢＵＦに，「白」データを書き込んで初期化する（Ｓ８８）。この「白」データは，ＲＧＢ画像データであればそれぞれ「ＦＦ」，合計３バイトのデータからなり，さらに属性データＸが付随する場合は，属性データＸの初期値データ１バイトを加えて，合計４バイトのデータからなる。
【００５４】
初期化されたバンドメモリＢ−ＢＵＦ内に，中間コードに基づいてビットマップ画像データを展開する（Ｓ９０）。具体的には，バンドメモリＢ−ＢＵＦ内に，ビットマップ画像データを書き込む。但し，バンドメモリのバンド幅は，印刷プレーン幅より狭くなっているので，画像の印刷用紙上の再現位置から最小左端ｘ座標値ＸＬを減じたバンドメモリ内の位置に，画像データを書き込む必要がある。そして，この画像データのバンドバッファへの展開処理Ｓ９０は，処理中のバンドbandNoに登録された全ての中間コードに対して繰り返される（Ｓ９２）。なお，中間コードに基づく画素毎の画像データの生成は，図４の展開ユニット１６により行われる。
【００５５】
さらに，コントローラ１２は，バンドバッファＢ−ＢＵＦ内のＲＧＢの画像データを，印刷エンジンの色素剤に対応するＣＭＹＫの色空間の画像データに変換処理する（Ｓ９４）。この色変換処理は，図４の色変換ユニットにより行われる。この色変換されたＣＭＹＫの画像データは，再びバンドバッファ内に書き込まれる。そして，コントローラ１２は，色変換された画像データを圧縮処理して，メモリユニット１４内に書き込む。圧縮処理は，図４の圧縮ユニットにより行われる。なお，圧縮処理の前に，色変換後の画像データに対して二値化処理を行っても良い。
【００５６】
以上の画像処理が，全てのバンドに対して繰り返し行われる（Ｓ９９）。本実施の形態によれば，コントローラ１２は，工程Ｓ８６で，最小容量のバンドメモリ（バンドバッファ）をメモリユニット内に確保し，その容量に対して，初期化処理Ｓ８８，色変換処理Ｓ９４，圧縮処理Ｓ９６を行う。これらの処理対象のデータ容量が，従来の印刷用紙幅のバンド幅の場合よりも小さいので，この画像処理の負担を軽減することができる。
【００５７】
図１６は，印刷エンジンへの画像再生信号の出力処理のフローチャート図である。また，図１７は，同出力処理のタイミングを示す図である。コントローラ１２は，バンドメモリ内に展開したビットマップ画像データを色変換，圧縮などの画像処理を行ったあと，二値化ユニット２２で二値化し，パルス幅変調器ＰＷＭにより画像再生信号１６であるパルス信号に変換して，印刷エンジン２４に出力する。この印刷エンジンへの出力は，ＣＭＹＫの４つのプレーンについて行う。印刷エンジンが単一の感光体ドラムを有する場合は４つのプレーンの画像再生信号がシリアルに出力され，印刷エンジンが４つの感光体ドラムを有するタンデムタイプの場合は，４つのプレーンの画像再生信号がパラレルに出力される。
【００５８】
以下，４つのプレーンの画像再生信号がシリアルに出力される場合で説明する。まず，コントローラ１２は，出力プレーンを黄色Ｙのプレーンに選択する（Ｓ１００）。そして，その出力プレーンの先頭のバンドbndNo＝０の画像データが読み出され，前述の処理により画像再生信号として出力される。処理対象のバンドに画像データがある場合は（Ｓ１０４のＹＥＳ），出力オフセットをそのバンドの最小左端ｘ座標値ＸＬに設定し（Ｓ１０６），メモリユニット１４内に格納されている出力プレーンの画像データを読み出して伸張し（Ｓ１０８），二値化処理，パルス幅変調処理した画像再生信号を印刷エンジン２４に出力する（Ｓ１１０）。
【００５９】
図１７に示されるように，コントローラ１２は，印刷エンジン２４と共有している水平同期信号Hsyncに同期して，同期パルスのタイミングから各バンドの出力オフセットOFF1のタイミングだけずらして，画像再生信号を点順次で出力する。図１７の例では，バンドＢＮＤ１内の２ラスタ（２行）の画像再生信号が，同期パルスから出力オフセットOFF1のタイミングずらして出力されている。同様に，別のバンドであれば，それに対応する出力オフセットだけタイミングをずらして，画像再生信号が点順次で出力される。
【００６０】
コントローラ１２は，バンド内の画像データを全て印刷エンジンに出力すると，次のバンドに対して（Ｓ１１２，Ｓ１１４），同様の出力処理Ｓ１０４〜Ｓ１１０を行う。現在の出力プレーンの全てのバンドの出力が終了すると，次のプレーンについても同様の出力処理が行われる（Ｓ１１６，Ｓ１１８）。全てのプレーンについて画像データを出力すると，そのプレーンについての画像処理が終了する。
【００６１】
コントローラ１２は，次のページ（プレーン）についても，同様に印刷データＰＤＬから中間コードを生成し，各バッファに必要な最小のバンドメモリ（バンドバッファ）の容量を確保して，そのバンド単位で，初期化，展開，色変換，圧縮などの画像処理を行う。印刷データの全てのページ（プレーン）について終了すると，その印刷データの処理が終了する。
【００６２】
図３（Ｂ）に示したプリンタの構成では，ホストコンピュータＨＯＳＴ内のプリンタドライバＰ−ＤＲが，印刷データＰＤＬからバンド毎の中間コードＩＣを生成し，その中間コードＩＣをプリンタのコントローラ１２に供給する。その場合は，プリンタドライバＰ−ＤＲが，中間コードの生成と共に，各バンドの最小左端ｘ座標ＸＬと最大右端ｘ座標ＸＲとを求め，コントローラ１２に供給する。コントローラ１２は，その与えられた最小左端ｘ座標ＸＬと最大右端ｘ座標ＸＲに基づいて，バンド領域内の画像データ存在領域を特定し，必要なバンド幅のバンドメモリを確保し，そのバンドメモリ内にビットマップ画像データを展開し，その画像データに対して色変換，圧縮処理を行う。
【００６３】
したがって，図３（Ｂ）のプリンタの構成では，図１３，図１４の処理がプリンタドライバＰ−ＤＲにより行われ，図１５，図１６の処理がコントローラ１２により行われる。なお，各バンドの最小左端ｘ座標ＸＬと最大右端ｘ座標ＸＲを，コントローラ１２が受信した中間コードＩＣから求めても良い。
【００６４】
図３（Ｃ）に示したプリンタの構成では，ホストコンピュータＨＯＳＴ内のプリンタドライバＰ−ＤＲが，中間コードの生成，ビットマップ画像データの展開処理，色変換処理，圧縮処理を行い，圧縮されたビットマップ画像データＢＭをコントローラ１２に出力する。この場合は，プリンタドライバＰ−ＤＲが，図１３，図１４，図１５の処理を実行し，コントローラ１２にビットマップ画像データＢＭと各バンドの出力オフセット値とを出力する。そして，コントローラ１２は，出力オフセット値にしたがうタイミングで，図１６の出力処理を行う。
【００６５】
この場合は，プリンタドライバＰ−ＤＲが，バンドメモリの容量を画像データ存在領域の幅に限定して確保し，その容量のバンドデータについて画像処理を行うので，その画像処理のデータ量を軽減することができる。
【００６６】
以上のように，いずれのプリンタ構成であっても，本実施の形態を適用することができる。その場合，図１の画像のような場合は，バンドメモリのデータ量が印刷プレーン幅よりも狭いバンド幅のデータ量にされるので，バンド単位での画像処理の負担を軽減することができる。
【図面の簡単な説明】
【００６７】
【図１】バンド領域を説明するための図である。
【図２】画像処理装置の課題を説明する図である。
【図３】本実施の形態における画像処理装置の概略構成図である。
【図４】本実施の形態におけるプリンタの構成図である。
【図５】本実施の形態における印刷手順のフローチャート図である。
【図６】メモリユニットの構成例を示す図である。
【図７】中間コードを説明するための図である。
【図８】矩形の中間コードの一例を示す図表である。
【図９】文字とイメージのソース画像データを示す図である。
【図１０】文字とイメージの中間コードの一例を示す図表である。
【図１１】バンド領域ＢＮＤ１におけるバンドメモリ領域ＢＭＲ１を示す図である。
【図１２】バンドメモリＢ−ＢＵＦ内の画像データと印刷用紙との関係を示す図である。
【図１３】印刷データＰＤＬの１ページ分の処理のフローチャート図である。
【図１４】画像オブジェクトの中間コードの作成と登録のフローチャート図である。
【図１５】ビットマップ画像データの展開，色変換，圧縮処理のフローチャート図である。
【図１６】印刷エンジンへの画像再生信号の出力処理のフローチャート図である。
【図１７】印刷エンジンへの画像再生信号の出力処理のタイミングを示す図である。
【符号の説明】
【００６８】
ＢＮＤ１：バンド領域        ＢＭＲ１：画像データ存在領域（バンド幅）
ＸＬ：最小左端ｘ座標        ＸＲ：最大右端ｘ座標
１２：コントローラ（画像処理装置）
【図１】
2006272557.tif 000003
【図２】
2006272557.tif 000004
【図３】
2006272557.tif 000005
【図４】
2006272557.tif 000006
【図５】
2006272557.tif 000007
【図６】
2006272557.tif 000008
【図７】
2006272557.tif 000009
【図８】
2006272557.tif 000010
【図９】
2006272557.tif 000011
【図１０】
2006272557.tif 000012
【図１１】
2006272557.tif 000013
【図１２】
2006272557.tif 000014
【図１３】
2006272557.tif 000015
【図１４】
2006272557.tif 000016
【図１５】
2006272557.tif 000017
【図１６】
2006272557.tif 000018
【図１７】
2006272557.tif 000019