(57)【特許請求の範囲】
【請求項１】
画像データを符号化して圧縮し符号化データを出力する圧縮手段と、前記圧縮手段から出力される符号化データを格納する記憶手段と、前記記憶手段に格納されている符号化データを復号し出力画像データを生成する伸長手段と、前記画像データの値を判断し該判断結果に従って前記圧縮手段における圧縮処理を省略して前記記憶手段に前記圧縮手段における符号化方式に対応した終了符号を符号化データとして前記記憶手段に格納する処理手段を有し、前記処理手段は、ページ記述言語から中間言語を生成するデコンポーズ処理と、前記中間言語から画像データを生成するレンダリング処理を行い、前記デコンポーズ処理によって前記中間言語を生成する際に該中間言語からレンダリング処理により生成される画像データの値の判断を行い、前記レンダリング処理と前記圧縮手段における圧縮処理を省略することを特徴とする画像処理装置。
【請求項２】
前記画像データは、１ページ分の画像を複数の領域に分割したバンド単位のデータであることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記処理手段は、前記画像データの値が全て０であるか否かを判断することを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記伸長手段は、連続する終了符号を検出した場合は、伸長を停止し、所定数の０を出力画像データとして生成することを特徴とする請求項１ないし請求項３のいずれか１項に記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリンタ装置に用いて好適な画像処理装置に関するものであり、特に、画像データを圧縮し、再び伸長して出力する画像処理装置に関するものである。
【０００２】
【従来の技術】
レーザープリンタなどでは、ホストコンピュータからイーサネットなどの回線を介し、ページ記述言語（ＰＤＬ）を受信し、プリンタコントローラ部において、より画像データに変換しやすい中間言語に変換（デコンポーズ処理）したのち、中間言語からプリントイメージを生成（レンダリング処理）する。この時、１ページ分のプリントする画像データをメモリに格納するとカラー画像などの場合、ビットマップ画像ではＡ３サイズ、解像度６００ｄｐｉで３２Ｍバイト以上のメモリが必要となる。
【０００３】
このように多大なメモリを用意しなくても済むように、例えば画像データを圧縮して格納し、プリント時に伸長して出力することが考えられている。この場合、例えば１ページを所定のライン数ごとに複数の領域（バンド）に分割（バンディング処理）し、各バンド毎に圧縮してゆく手法が用いられている。
【０００４】
圧縮を用いた一般的なバンディング処理を説明する。まず、デコンポーザ処理として、入力されたＰＤＬを解読し、バンドごとの中間言語を生成し、全１ページ分のバンドごとの中間言語をメモリに格納する。次に、バンド単位でレンダリングを実施し、プリントイメージである画像データを、メモリに格納する。１バンドの画像データが作成できたら、圧縮してメモリに格納する。これを１ページ分のすべてのバンドについて実施する。１ページの圧縮が終了した後、伸長器にてリアルタイム伸長し、プリントエンジンに画像データを出力して画像を形成する。これにより、１ページ分の画像データをメモリに展開することなく、画像を形成することができる。
【０００５】
しかし、このように１ページ分の画像データを圧縮したのち伸長する方式では、圧縮、伸長処理にそれぞれ時間がかかるという問題がある。例えば、Ａ３サイズ、解像度６００ｄｐｉの原稿を、２０Ｍビット／ｓ程度の速度でリアルタイムに圧縮及び伸長処理を行ったとしても、白黒画像で約３秒、カラー画像ならば１２秒を要してしまう。ＰＤＬを受信して画像を形成する場合には、これに加え、デコンポーズ処理やレンダリング処理の時間も必要となるため、プリント処理を開始するまでに大幅に時間がかかってしまうという問題があった。
【０００６】
レンダリング性能を向上させ、圧縮及び伸長処理を行わずに、プリントエンジンに中間言語からリアルタイムに画像を出力する方式も提案されている。しかし、画像データによりレンダリング処理に要する時間が変わってしまう。例えば特開平８−２２４９１７号公報に記載されている印刷装置などでは、バンドごとのレンダリングに要する時間を見積もり、プリントエンジンの処理速度に届かない場合には、イメージデータ展開後、圧縮し、プリント時に伸長する方式も提案されている。しかし、このような方式では、中間言語と符号データが混在し、プリントエンジンに出力する際に中間言語と符号データの切り替えを行いながら画像データを生成する必要があるため、処理が複雑になるという問題がある。
【０００７】
一方、圧縮技術においては、２値画像の高能率圧縮手法として、国際標準であるＪＢＩＧなどが知られている。ＪＢＩＧにおいては、エントロピー符号化部に算術符号化方式が採用されている。算術符号化方式は、Ｅｌｉａｓにより無記憶情報源に対する理想的符号化方式として提案され、Ｌａｎｇｄｏｎ、Ｒｉｓｓａｎｅｎにより実用可能な形に再編成された。
【０００８】
図９は、算術符号化方式の説明図である。まず数直線上の領域［０，１）をＰ０，Ｐ１に分割し、領域Ａ０，Ａ１を作る（この領域をオージェンドと呼ぶ）。次に、情報源からの１番目のシンボルＸ１が“０”であれば領域Ａ０を、“１”であれば領域Ａ１を選ぶ。図９に示す例では、Ｘ１＝“０”であり、領域Ａ０が選ばれた例を示している。選ばれた領域にはハッチングを施して示している。
【０００９】
次に領域Ａ０を２番目のシンボルＸ２の生起確率により分割し、領域Ａ００，Ａ０１を作る。ここで、Ｘ２＝“０”であれば領域Ａ００，Ｘ２＝“１”であれば領域Ａ０１を選ぶ。図９に示す例では、Ｘ２＝“１”であり、領域Ａ０１が選ばれた例を示している。
【００１０】
このような領域の分割および分割された領域の選択処理を、情報源の出力系列の分だけ行い、最終段の分割で得られた領域内の一点の２進少数表示によって出力系列を表す。ｎ番目のシンボルがＸｎとして、ｎ−１番目のシンボルを符号化した時のオージェンドをＡ（ｎ−１）、劣勢シンボル（ＬＰＳ）“１”の生起確率をＰ（１）とするとｎ番目のオージェンドＡ（ｎ）は、
Ｘｎ＝１の時    Ａ（ｎ）＝Ａ（ｎ−１）×Ｐ（１）
Ｘｎ＝０の時    Ａ（ｎ）＝Ａ（ｎ−１）−｛Ａ（ｎ−１）×Ｐ（１）｝
但しＬＰＳ＝１
となる。また、ｎ−１番目のシンボルを符号化した時の符号系列をＣ（ｎ−１）とすると、ｎ番目の符号系列 Ｃ（ｎ）は、
Ｘｎ＝１の時    Ｃ（ｎ）＝Ｃ（ｎ−１）＋｛Ａ（ｎ−１）×Ｐ（１）｝
Ｘｎ＝０の時    Ｃ（ｎ）＝Ｃ（ｎ−１）
但しＬＰＳ＝１
となる。
【００１１】
ＪＢＩＧでは上述のような乗算を伴う演算を行わず、確率推定値に対応するグループ毎に予めオージェンドの値をテーブルとして用意しておくことで、減算だけで確率演算が行われる減算型算術符号を採用した。このＪＢＩＧで採用する符号器をＱＭ−Ｃｏｄｅｒと呼ぶ。これにより符号化効率は落ちるがハードウエアが簡易化される。ＱＭ−Ｃｏｄｅｒでのオージェンド、符号演算を以下に示す。
0004009808.tif 000002
【００１２】
また、ＪＢＩＧにおいては、シンボル系列は注目画素と周囲の画素値からの予測結果で生成される。この予測値は、予測結果をフィードバックする学習型の予測テーブルで随時更新しながら生成される。ＪＢＩＧの規定により、この予測テーブルは、初期状態ですべて０である。つまり、注目画素がすべて０であれば、この予測テーブルの予測値も０のままであり、予測が全て的中する。これにより、先のシンボルＸｎ系列はすべて０となり、Ｃ（ｎ）＝Ｃ（ｎ−１）、Ｃ（０）＝０であるから、最終的な符号系列も０となるという特徴がある。この場合、生成される符号は終了マーカ（‘ＦＦ０２’）のみとしている。このようにＪＢＩＧでは、学習型予測器と、算術符号化により、高能率な圧縮を達成している。
【００１３】
また、圧縮にＪＢＩＧなどの高能率圧縮を用いた場合、圧縮率は稼げるが、反面、高速化に難点がある。例えば特開平６−３１１０４５号公報などにおいて算術演算部を高速化する技術が提案されているが、予測結果をフィードバックする学習型の予測器を用いていることと、１シンボルごとにオージェンドの計算を行う必要があるため、複数画素の並列処理ができず、高速化できないという問題があった。
【００１４】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、ＪＢＩＧなどの高能率な方式を用いて圧縮伸長を行う画像処理装置であって、高速に符号化データを生成し、全体のスループットを向上させた画像処理装置を提供することを目的とするものである。
【００１５】
【課題を解決するための手段】
本発明は、ページ記述言語からデコンポーズ処理により中間言語を生成し、さらにデコンポーズ処理によって生成された前記中間言語からレンダリング処理により画像データを生成し、その画像データを圧縮手段で符号化して記憶手段に格納し、その後、記憶手段に格納されている圧縮された符号化データを伸長手段で復号して出力画像データを生成する画像処理装置であって、デコンポーズ処理によって中間言語を生成する際に、レンダリング処理により生成される画像データの値を判断し、その判断結果に従って、レンダリング処理と圧縮手段における圧縮処理を省略して記憶手段に前記圧縮手段における符号化方式に対応した終了符号を符号化データとして記憶手段に格納することを特徴とするものである。例えば画像データの値が全て０であるか否かを判断し、すべて０であれば、例えば圧縮手段における符号化方式に対応した終了符号を伸長手段に入力すればよい。伸長手段では、例えば終了符号が連続するなど、所定の値が入力されたとき値が０である所定のサイズの出力画像データを生成すればよい。
【００１６】
これによって、圧縮処理を省略した分だけ高速化することができ、しかも符号化データは圧縮手段で符号化した場合と同様のデータとなるため復号手段はそのまま用いることも可能になる。例えば入力される画像データが、１ページ分の画像を複数の領域に分割したバンド単位の画像を示すデータである場合には、１バンド内の画像データがすべて０である確率が高く、高速化の効果は顕著となる。さらに、伸長手段では所定の値が入力されたとき値が０である所定のサイズの出力画像データを生成することによって、復号に要する時間を削減することができる。
【００１７】
画像データは、例えばページ記述言語から一旦中間言語を生成し、この中間言語から生成するが、この中間言語の生成時に画像データの値の判断を行うことによって、圧縮処理とともに、中間言語からの画像データを生成するレンダリング処理も省略することができる。
【００１８】
【発明の実施の形態】
図１は、本発明の画像処理装置の実施の一形態を示すブロック図である。図中、１は画像処理装置、２はホストコンピュータ群、３は印字部、１１はＣＰＵ、１２はＣＰＵブリッジ、１３はメインメモリ、１４は通信インタフェース、１５はバス、１６はＪＢＩＧ圧縮器、１７はＪＢＩＧ伸長器である。この実施の一形態における本発明の画像処理装置１は、ホストコンピュータ群２から、例えばＰＤＬ等によって記述されたデータを受け取り、ＰＤＬに従って描画処理を行って、画像データを印字部３に対して出力する。もちろん、ホストコンピュータ群２から画像データを直接受け取るなど、受け取るデータはＰＤＬに限らない。
【００１９】
ＣＰＵ１１は、画像処理装置１全体を制御するとともに処理手段として機能し、ホストコンピュータ群２から送られてくるＰＤＬ等のデータに従って描画処理を行い、画像データをＪＢＩＧ圧縮器１６を用いて圧縮し、圧縮された符号化データをメインメモリ１３に蓄積する。そして、印字部３に画像データを出力する際にＪＢＩＧ伸長器１７により符号化データを伸長処理して出力させる。描画処理は、ＰＤＬから画像データを直接生成してもよいし、デコンポーズ処理によって一旦中間言語に変換してから、レンダリング処理によって画像データを生成してもよい。また、画像データは、１ページ単位、あるいは、１ページ分の画像を複数の領域に分割したバンド単位で生成することができる。また、ＰＤＬから画像データを直接生成する際、あるいはデコンポーズ処理によって一旦中間言語に変換する際に、画像データの値を判断する。例えば画像データの値がすべて０か否かを判断する。そして、判断結果に応じ、例えば画像データの値がすべて０であると判断される場合には、ＪＢＩＧ圧縮器１６による圧縮処理を行わずに、所定の値、例えばＪＢＩＧでは終了符号（“ＦＦ０２”）のみを符号化データとする。なお、ＣＰＵ１１はＣＰＵブリッジ１２を介してバス１５に接続されている。
【００２０】
メインメモリ１３には、ＣＰＵ１１が実行するプログラムや、各種のデータを格納することができる。特に、ホストコンピュータ群２から送られてくるＰＤＬのデータや、中間言語、生成された画像データ、符号化データなどを格納することができる。
【００２１】
通信インタフェース１４は、ホストコンピュータ群２との通信を行い、ＰＤＬのデータを受信する。
【００２２】
バス１５は、通信インタフェース１４，ＪＢＩＧ圧縮器１６，ＪＢＩＧ伸長器１７を相互に接続するとともに、ＣＰＵブリッジ１２を介してＣＰＵ１１及びメインメモリ１３とも接続している。もちろん、その他の種々の機器がバス１５に接続されていてもよい。
【００２３】
ＪＢＩＧ圧縮器１６は、バス１５を介して送られてくる画像データをＪＢＩＧ方式によって圧縮し、符号化データを生成する。また、ＪＢＩＧ伸長器１７は、バス１５を介して送られてくる符号化データをＪＢＩＧ方式に従って伸長して出力画像データを生成し、印字部３に対して出力する。なお、終了符号が続けて送られてくる場合には、強制的にすべての値が０の画像データを出力するように構成しておくことができる。
【００２４】
図２は、本発明の画像処理装置の実施の一形態における動作の一例を示すフローチャートである。ここでは、ＣＰＵ１１において、ホストコンピュータ群２から送られてきたＰＤＬのデータをデコンポーズ処理により中間言語に変換してから、レンダリング処理によって画像データを生成する場合を示している。また、画像データの生成をバンド単位で行うものとする。
【００２５】
ホストコンピュータ群２からＰＤＬのデータが送られてくると、通信インタフェース１４でこれを受信し、バス１５、ＣＰＵブリッジ１２を介して、受信したＰＤＬのデータをメインメモリ１３へ転送して格納する。
【００２６】
ＣＰＵ１１は、メインメモリ１３に格納されたＰＤＬのデータを参照し、Ｓ３１においてデコンポーズ処理を行い、ＰＤＬのデータをバンドごとの中間言語に変換する。一般にＰＤＬのデータはページ単位であり、これをバンドごとのデータに変換することによって、バンド単位での画像データの生成を容易にしている。
【００２７】
このデコンポーズ処理によってバンド単位の中間言語を生成した時点で、Ｓ３２において該バンドの画像データの値を判定する。例えばバンドごとの中間言語を参照し、描画すべきオブジェクトが当該バンドに存在するか否かを判定すれば、画像データが生成されたときに画像データの値がすべて０であるか否かを判定することができる。当該バンドに描画すべきオブジェクトが存在し、画像データの値が０でない画素が存在すると判定する場合には、Ｓ３３において、レンダリング処理により中間言語から１バンド分の画像データを生成する。生成された画像データは、ＣＰＵブリッジ１２，バス１５を介してＪＢＩＧ圧縮器１６に送られ、ＪＢＩＧ圧縮器１６によってＪＢＩＧ方式により圧縮され、符号化データとなる。符号化データは、再びバス１５，ＣＰＵブリッジ１２を介してメインメモリ１３に格納される。
【００２８】
生成される画像データの値がすべて０であると判定される場合には、レンダリング処理を行わず、またＪＢＩＧ圧縮器１６による画像データの圧縮処理も行わずに、Ｓ３４において、所定の値を符号化データとしてメインメモリ１３に格納する。所定の値は、符号化方式によって予め設定しておけばよい。ＪＢＩＧ方式では、上述のように画像データがすべて０の時は圧縮結果が終了符号のみになることに着目し、終了符号（“ＦＦ０２”）を所定の値としてメインメモリ１３に格納すればよい。これによって、レンダリング処理とＪＢＩＧ圧縮器１６における圧縮処理に要する時間を必要とせず、処理全体の高速化を図ることができる。特にバンドごとに処理を行う場合、バンド内の画像データがすべて０になることが多く発生するため、高速化の効果が顕著となる。また、ＪＢＩＧにおいては、終了符号のみでも伸長処理は正常に行うことができるので、ＪＢＩＧ伸長器１７として特別な構成を有していなくても伸長処理を行うことができる。
【００２９】
Ｓ３５において、１ページ内のすべてのバンドについて上述の処理を行ったか否かを判定し、未処理のバンドが残っている場合には、そのバンドについてＳ３１から処理を行う。
【００３０】
すべてのバンドについて符号化データが得られたら、Ｓ３６において、各バンドごとの符号化データを順にメインメモリ１３からＣＰＵブリッジ１２，バス１５を介してＪＢＩＧ伸長器１７に転送し、ＪＢＩＧ伸長器１７において伸長処理を行って出力画像データを印字部３に対して出力する。なお、１ページ分の符号化データが揃った後でなくても、印字部３への出力が間に合うタイミングでＪＢＩＧ伸長器１７による伸長処理を開始させ、出力画像データを印字部３に出力してもよい。この場合には、ＪＢＩＧ圧縮器１６による圧縮処理とＪＢＩＧ伸長器１７による伸長処理とを並行して行うことになる。
【００３１】
なお、上述の例では、ＪＢＩＧ圧縮器１６で圧縮した符号化データを一旦メインメモリ１３に格納してからＪＢＩＧ伸長器１７に転送しているが、これに限らず、ＪＢＩＧ圧縮器１６で圧縮した一部またはすべての符号化データを、直接、ＪＢＩＧ伸長器１７に転送してもよい。この場合、生成された画像データの値がすべて０であると判定された場合には、ＣＰＵ１１からＣＰＵブリッジ１２，バス１５を介して、直接、所定の値がＪＢＩＧ伸長器１７に転送されることになる。また、上述の例では各バンドごとにデコンポーズ処理を行っているが、すべてのバンドについて先にデコンポーズ処理を行い、その結果を順次参照して画像データの値がすべて０であるか否かの判断を行ってもよい。この場合、Ｓ３５からの戻り先はＳ３２となる。もちろん、上述の処理はバンド単位でなくてもよく、白紙ページなどが含まれている場合、ページ単位でも高速化を図ることが可能である。
【００３２】
具体例を用いて上述の動作をさらに説明する。図３は、画像データの一例の説明図、図４は、符号化データの一例の説明図、図５は、メインメモリにおける画像データの格納状態の一例の説明図である。ここでは、図３に示すように、１ページを３つのバンド、すなわちバンド１、バンド２，バンド３に分割して処理するものとする。ホストコンピュータ群２から、例えば図３に示すような画像を描画するためのＰＤＬのデータが転送されてくると、デコンポーズ処理により、転送されてきたＰＤＬのデータを各バンドごとの中間言語に変換する。この時点では、まだ図３に示すような画像データは生成されていないが、中間言語における描画すべきオブジェクトを調べることによって、各バンドに描画すべき図形が存在するか否かを判定することができる。この判定によって、バンド１及びバンド２には描画される図形が存在し、バンド３については描画すべき図形が存在せず、生成される画像データはすべて０であると判定される。
【００３３】
このような判定結果に従い、バンド１及びバンド２に関する処理では、レンダリング処理によって図３におけるバンド１及びバンド２に示すような画像データが中間言語から生成され、ＪＢＩＧ圧縮器１６に転送され、圧縮処理される。例えばバンド１については“０１２３４５６０”という符号列に圧縮され、バンド２については“５６４０”という符号列に圧縮されたとする。それぞれの符号列には終了符号“ＦＦ０２”が付加され、図４にバンド１符号、バンド２符号として示す符号化データがメインメモリ１３に転送される。
【００３４】
バンド３については、上述のように画像データの値はすべて０であると判定される。そのため、レンダリング処理による画像データの生成は行わず、また、画像データの圧縮処理も行わない。かわりに、図４にバンド３符号として示すように、終了符号“ＦＦ０２”のみを符号化データとしてメインメモリ１３に格納する。
【００３５】
メインメモリ１３では、ＪＢＩＧ圧縮器１６で圧縮されたデータや、ＣＰＵ１１から書き込まれる終了符号などの所定の値を、符号化データとして格納する。このとき、ＪＢＩＧなどの可逆圧縮では、圧縮してみないと圧縮率が分からず、各バンドごとに圧縮された符号化データのデータ量が分からない。そのため、メインメモリ１３には各バンドごとに適当なメモリ空間を予め確保しておき、バンドに対応するメモリ空間に符号化データを格納する。図５に示す例では、１つのバンドに対して０１００（ｈ）分のメモリ領域を確保した例を示している。なお、（ｈ）は１６進数であることを示している。
【００３６】
まず、メモリアドレス００００（ｈ）から、ＪＢＩＧ圧縮器１６から出力される１バンド目の符号化データが格納される。すなわち、図４にバンド１符号として示す“０１２３４５６０ＦＦ０２”が格納される。図５においてその後に付加されている“Ｘ”は符号化データ以外のゴミデータである。次に、２バンド目の符号についても、メモリアドレス０１００（ｈ）にＪＢＩＧ圧縮器１６から出力される符号化データ（“５６４０ＦＦ０２”）が格納される。３バンド目については、画像データの値がすべて０であったため、ＪＢＩＧ圧縮器１６を通さず、ＣＰＵ１１からダイレクトにメモリアドレス０２００（ｈ）に終了符号“ＦＦ０２”を符号化データとして書き込む。このようにして各バンドごとの符号化データが、例えば図５に示すようにメインメモリ１３に格納される。
【００３７】
伸長時には、このようにしてメインメモリ１３に格納された各アドレスの符号化データを連続して読み出し、途中のゴミデータを読み捨て、図４に示す例のような符号列をＪＢＩＧ伸長器１７に転送する。ゴミデータについては、読み出さないように制御してもよい。符号列の転送を受けたＪＢＩＧ伸長器１７では、順次符号化データを復号して伸長し、バンドごとの出力画像データを生成して印字部３に対して出力する。このようにして、印字部３では、画像データの値がすべて０のバンドを含め、画像データを受け取って画像を形成することができる。
【００３８】
図６は、本発明の画像処理装置の実施の一形態における動作の別の例を示すフローチャートである。図２に示した動作例では、ホストコンピュータ群２から送られてきたＰＤＬのデータをデコンポーズ処理により中間言語に変換してから、レンダリング処理によって画像データを生成する場合を示した。この例では、ＰＤＬのデータから直接、バンドごとの画像データを生成する場合の動作例を示す。
【００３９】
ホストコンピュータ群２からＰＤＬのデータが送られてくると、通信インタフェース１４でこれを受信し、バス１５、ＣＰＵブリッジ１２を介して、受信したＰＤＬのデータをメインメモリ１３へ転送して格納する。
【００４０】
ＣＰＵ１１は、メインメモリ１３に格納されたＰＤＬのデータを参照し、Ｓ４１においてバンドごとの画像データを生成する。画像データを生成する処理過程中、あるいは生成した画像データを参照することにより、当該バンドの画像データの値をＳ４２において判定する。例えば生成した画像データの値がすべて０か否かを判定すればよい。生成した画像データ中に０以外の値が含まれていると判定された場合には、Ｓ４３において、生成した画像データをＣＰＵブリッジ１２，バス１５を介してＪＢＩＧ圧縮器１６に送り、ＪＢＩＧ圧縮器１６によってＪＢＩＧ方式により圧縮処理し、符号化データを生成する。符号化データは、再びバス１５，ＣＰＵブリッジ１２を介してメインメモリ１３に格納される。
【００４１】
生成した画像データの値がすべて０であると判定される場合には、ＪＢＩＧ圧縮器１６による画像データの圧縮処理を行わずに、Ｓ４４において、所定の値を符号化データとしてメインメモリ１３に格納する。所定の値は、符号化方式によって予め設定しておけばよく、ＪＢＩＧ方式では、終了符号（“ＦＦ０２”）を所定の値としてメインメモリ１３に格納すればよい。これによって、ＪＢＩＧ圧縮器１６における圧縮処理に要する時間を必要とせず、処理全体の高速化を図ることができる。また、ＪＢＩＧにおいては、終了符号のみでも伸長処理は正常に行うことができるので、ＪＢＩＧ伸長器１７として特別な構成を有していなくても伸長処理を行うことができる。
【００４２】
Ｓ４５において、１ページ内のすべてのバンドについて上述の処理を行ったか否かを判定し、未処理のバンドが残っている場合には、そのバンドについてＳ４１から処理を行う。
【００４３】
すべてのバンドについて符号化データが得られたら、Ｓ４６において、各バンドごとの符号化データを順にメインメモリ１３からＣＰＵブリッジ１２，バス１５を介してＪＢＩＧ伸長器１７に転送し、ＪＢＩＧ伸長器１７において伸長処理を行って出力画像データを印字部３に対して出力する。なお、この例においても、１ページ分の符号化データが揃った後でなくても、印字部３への出力が間に合うタイミングでＪＢＩＧ伸長器１７による伸長処理を開始させ、出力画像データを印字部３に出力してもよい。また、ＪＢＩＧ圧縮器１６で圧縮した符号化データを一旦メインメモリ１３に格納するほか、ＪＢＩＧ圧縮器１６で圧縮した一部またはすべての符号化データを、直接、ＪＢＩＧ伸長器１７に転送してもよい。この場合、生成された画像データの値がすべて０であると判定された場合には、ＣＰＵ１１からＣＰＵブリッジ１２，バス１５を介して、直接、所定の値が符号化データとしてＪＢＩＧ伸長器１７に転送されることになる。
【００４４】
なお、デコンポーズ処理によって中間言語に変換した後、レンダリング処理によって画像データを生成する場合でも、レンダリング処理時に画像データの値の判定を行う場合には、図６に示した動作と同様の動作となる。また、例えばホストコンピュータ群２から送られてくるデータが画像データである場合には、図６におけるＳ４１の処理を行わないだけで、以降の処理を同様に行えばよい。
【００４５】
また、上述のように画像データになってから値の判定を行う場合には、例えばＪＢＩＧ圧縮器１６に、転送されてきた画像データの判定を行う機構を設け、ＪＢＩＧ圧縮器１６が実際の圧縮処理を行わずに終了符号などの所定の値を出力するように構成してもよい。この場合、画像データの値の判定や所定の値の生成などをＣＰＵ１１が行わなくてよく、ＣＰＵ１１は通常の圧縮処理を行わせるように制御するだけで高速化を図ることができる。
【００４６】
図７は、ＪＢＩＧ伸長器の一例を示すブロック図である。図中、２１は符号入力部、２２はバンドサイズ設定部、２３は復号部、２４は単体終了符号検出部、２５は規定数０出力部、２６はセレクタである。ＪＢＩＧ伸長器１７は、一般的に用いられているＪＢＩＧ方式の伸長器をそのまま利用してもよいが、例えば図７に示すような構成とすることによって、さらなる高速化が可能である。
【００４７】
符号入力部２１は、バス１５を介して転送されてくる符号化データを受け取る。もちろん、この中にはＪＢＩＧ圧縮器１６を用いずに生成した所定の値が含まれていてよい。受け取った符号化データは、復号部２３及び単体終了符号検出部２４に送られる。
【００４８】
バンドサイズ設定部２２は、バンドごとに処理を行っている場合に、そのバンドのサイズが予め設定される。
【００４９】
復号部２３は、符号化データを復号する。ここではＪＢＩＧ方式に従って復号処理を行う。復号の際には、バンドサイズ設定部２２に設定されているバンドサイズを参照し、バンドサイズ分の画像データが生成されるまで、復号処理を行う。
【００５０】
単体終了符号検出部２４は、入力される符号化データを監視し、バンド中の画像データの値がすべて０の場合に生成された所定の値として、終了符号を検出する。終了符号のみが生成されたことを検出した場合には、検出信号を規定数０出力部２５及びセレクタ２６に出力する。
【００５１】
規定数０出力部２５は、単体終了符号検出部２４から検出信号が出力されたとき、バンドサイズ設定部２２に設定されているバンドサイズに対応する画素数だけ、値が０の画像データを出力する。
【００５２】
セレクタ２６は、通常は復号部２３から出力される復号された画像データを選択して出力画像データとして出力している。単体終了符号検出部２４から検出信号が出力されたときには、規定数０出力部２５から出力される値が０の画像データを選択し、出力画像データとして出力する。
【００５３】
図８は、ＪＢＩＧ伸長器の一例における動作の一例を示すフローチャートである。図７に示すＪＢＩＧ伸長器１７において、メインメモリ１３から読み出された符号化データがＣＰＵブリッジ１２及びバス１５を介して転送されてくると、符号入力部２１において、これを受け取る。例えば図５に示すようにゴミデータ（“Ｘ”で示されている）が付加されたまま転送されてくる場合には、ゴミデータを取り除き、例えば図４に示すような純粋なＪＢＩＧ符号系列に変換する処理を行ってもよい。もちろん、ＪＢＩＧ符号系列として転送されてくる場合にはそのまま受け取ればよい。符号入力部２１で受け取った符号化データは、復号部２３及び単体終了符号検出部２４に入力される。
【００５４】
単体終了符号検出部２４は、Ｓ５１において、１バンド分の符号化データが終了符号のみであるか否かを判定する。この判定は、終了符号が連続して出現したか否かにより行うことができる。１バンド分の符号化データが終了符号のみではない場合には、Ｓ５２においてそのまま復号部２３に符号化データの復号処理を行わせる。復号部２３は、バンドサイズ設定部２２に設定されているバンドサイズに対応する画素数の画像データを出力してゆく。復号部２３から出力される復号データをセレクタ２６で選択し、出力画像データとして出力する。
【００５５】
単体終了符号検出部２４により１バンド分の符号化データが終了符号のみであることが検出された場合は、そのバンドの画像データの値はすべて０である。この場合には、Ｓ５３において、単体終了符号検出部２４は検出信号を規定数０出力部２５に送り、バンドサイズ設定部２２に設定されているバンドサイズに対応する画素数だけの値が０の画像データを出力させる。また、セレクタ２６に対しても検出信号を送り、規定数０出力部２５の出力を選択させる。これによって、値がすべて０の１バンド分の画像データが出力画像データとして出力される。
【００５６】
Ｓ５４において、すべてのバンドについて伸長処理を終えたか否かを判定し、未処理のバンドが残っている場合にはＳ５１に戻り、それらのバンドについての伸長処理を行う。すべてのバンドについて伸長することにより、１ページ分の出力画像データが印字部３に送られ、画像が形成されることになる。
【００５７】
このようにして、１バンドの画像データの値がすべて０である場合には、復号部２３における復号処理を行わず、規定数０出力部２５から値０を出力するので、復号処理を省略した分だけ高速化することができる。また、このような場合に復号部２３の動作を停止させれば、消費電力の低減を図ることができる。
【００５８】
上述の説明では、符号化方式としてＪＢＩＧを用いる場合を例にして説明した。しかし本発明はこれに限るものではなく、ＪＰＥＧなど他の符号化方式を利用する場合にも応用できる。ＪＰＥＧなど、算術符号化を採用しない符号化については、バンドサイズにより値がすべて０であることをあらわす符号が異なってくるため、バンドサイズに応じて所定の値を設定しておく必要がある。伸長時にはこの所定の値を認識し、値がすべて０であるバンドサイズ分の出力画像データを出力するように構成することができる。
【００５９】
なお、本発明はモノクロの画像だけでなく、カラー画像についても同様に処理を行うことができ、モノクロプリンタだけでなく、ＹＭＣＫを取り扱うカラープリンタに対しても適用することができる。
【００６０】
【発明の効果】
以上の説明から明らかなように、本発明によれば、圧縮処理あるいはさらにレンダリング処理についても一部の画像データについて省略することができるので、装置全体の高速化を図ることができるという効果がある。さらに伸長時にも、伸長処理の省略が可能であり、さらに高速化を図ることが可能である。特に１ページの画像をいくつかのバンドに分割して処理する場合には、バンド内の画像データの値がすべて０となるバンドが多数存在するため、本発明による高速化の効果がより顕著となる。
【図面の簡単な説明】
【図１】  本発明の画像処理装置の実施の一形態を示すブロック図である。
【図２】  本発明の画像処理装置の実施の一形態における動作の一例を示すフローチャートである。
【図３】  画像データの一例の説明図である。
【図４】  符号化データの一例の説明図である。
【図５】  メインメモリにおける画像データの格納状態の一例の説明図である。
【図６】  本発明の画像処理装置の実施の一形態における動作の別の例を示すフローチャートである。
【図７】  ＪＢＩＧ伸長器の一例を示すブロック図である。
【図８】  ＪＢＩＧ伸長器の一例における動作の一例を示すフローチャートである。
【図９】  算術符号化方式の説明図である。
【符号の説明】
１…画像処理装置、２…ホストコンピュータ群、３…印字部、１１…ＣＰＵ、１２…ＣＰＵブリッジ、１３…メインメモリ、１４…通信インタフェース、１５…バス、１６…ＪＢＩＧ圧縮器、１７…ＪＢＩＧ伸長器、２１…符号入力部、２２…バンドサイズ設定部、２３…復号部、２４…単体終了符号検出部、２５…規定数０出力部、２６…セレクタ。
【図１】
0004009808.tif 000003
【図２】
0004009808.tif 000004
【図３】
0004009808.tif 000005
【図４】
0004009808.tif 000006
【図５】
0004009808.tif 000007
【図６】
0004009808.tif 000008
【図７】
0004009808.tif 000009
【図８】
0004009808.tif 000010
【図９】
0004009808.tif 000011