(57)【特許請求の範囲】
【請求項１】
入力画像データを圧縮し、マーカーコードが付加された圧縮画像データを出力する画像圧縮手段と、
前記画像圧縮手段から出力された圧縮画像データを格納する圧縮画像バッファと、
前記圧縮画像バッファの空き領域に関する情報を管理するバッファレジスタテーブルと、
前記バッファレジスタテーブルで管理される情報を参照し、前記圧縮画像バッファの空き領域の容量が新たな圧縮画像データを格納するのに足りず、前記圧縮画像バッファに格納されている圧縮画像データの容量が所定の閾値より少ないと判断した場合、前記圧縮画像バッファに格納されている圧縮画像データから前記マーカーコードを削除して、前記圧縮画像バッファに格納し直すマーカーコード削除手段と、
前記バッファレジスタテーブルで管理される情報を参照し、前記圧縮画像バッファの空き領域の容量が新たな圧縮画像データを格納するのに足りず、前記圧縮画像バッファに格納されている圧縮画像データの容量が前記所定の閾値以上であると判断した場合、前記圧縮画像バッファに格納されている圧縮画像データを伸長して、より圧縮レベルの高い再圧縮を行い、前記圧縮画像バッファに格納する再圧縮手段と、
前記マーカーコード削除手段によって前記マーカーコードが削除された圧縮画像データの格納場所とサイズと前記マーカーコードが削除されたことを管理する画像管理テーブルと
を備えていることを特徴とする画像処理装置。
【請求項２】
前記再圧縮手段によって前記圧縮画像バッファに格納されている圧縮画像データの再圧縮を行った場合、前記画像圧縮手段は前記新たな圧縮画像データを前記再圧縮と同じ圧縮レベルで圧縮して出力する
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記バッファレジスタテーブルは、前記再圧縮手段によって前記圧縮画像バッファに格納されている圧縮画像データを再圧縮したことを示すフラッグを管理しており、
前記画像圧縮手段は、前記バッファレジスタテーブルのフラッグによって再圧縮があったことを判断した場合、前記新たな圧縮画像データを前記再圧縮と同じ圧縮レベルで圧縮して出力する
ことを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記圧縮画像バッファから圧縮画像データを読み出して伸長する画像伸長手段を備えており、
前記画像伸長手段は、前記圧縮画像データの伸長を行うにあたり前記画像管理テーブルを参照し、前記マーカーコードが削除されていると判断した場合には、前記画像管理テーブルを参照して伸長の対象となる圧縮画像データの格納場所とサイズとによって当該圧縮画像データを読み出して前後に新たなマーカーコードを付加し、このマーカーコードが付加された圧縮画像データを伸長する
ことを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記所定の閾値は、定数もしくは変数から成る
ことを特徴とする請求項１記載の画像処理装置。
【請求項６】
前記画像管理テーブルを参照して、前記圧縮画像バッファに格納された圧縮画像データのマーカーコードが削除されていると判断した場合、前記圧縮画像データに新たなマーカーコードを付加するマーカーコード付加手段と、
前記マーカーコード付加手段によりマーカーコードが付加された圧縮画像データを入力して画像データを生成する画像伸長手段と
を備えることを特徴とする請求項１記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文字、図形、画像に対する所定の描画命令で記述されているデータをビットマップに展開して出力する画像処理装置に関する。
【０００２】
【従来の技術】
ワードプロセッサや図形エディタなどで処理された文書は、プリンタやディスプレイ装置に出力するために、ページ記述言語（以下、単に「ＰＤＬ」と言う。）などに変換される。ＰＤＬにおいて、画像はビット列を与えるコマンドによって表現され、文字、図形はベクターデータを作成するコマンドによって表現されている。したがって、プリンタなどの出力装置では、ＰＤＬを受け取りそれぞれのコマンドを解釈し、出力装置の解像度と色値とに対応したビットマップデータを作成する手段が必要となる。
【０００３】
こうした処理において、近年のカラープリンタは高速化および高解像度化が進んできている。そのため、メモリ量削減のための圧縮技術、それに付随した高速化のハードウェアが重要になってきている。これに関する技術として、出力装置の解像度相当のページメモリではなく、ページをスキャンラインによって数十から数百の短冊状に分割したバンドと呼ばれる単位のメモリ（バンドバッファ）を数個持ち、中間的に図形、文字、画像に対する圧縮データを１ページ分作成して、中間データからバンドバッファに繰り返しビットマップデータを生成して、１ページ分の画像を出力することが行われてきている。
【０００４】
これは、バンディングと呼ばれる技術であるが、中間データの展開処理（ビットマップ化）には高速化が要求されるため、ハードウェアで構成することが多い。
【０００５】
中間データの圧縮形式としては、文字、図形、画像のページ上の位置を示すためのデータとして、各描画要素の描画領域を各スキャンラインの始点と長さで表したデータ（ＭＨ（Modified Huffman）、ＭＲ（Modified READ ）に行われているランレングス）を使用し、さらに画像に関しては、実際に描画するデータをＪＰＥＧ（Joint Photographic Experts Group）などの画像圧縮技術を使った圧縮画像データを使用して表現することが多い。
【０００６】
また、中間データは、本来メモリ削減のための技術であるため、ランレングスデータバッファ、画像圧縮バッファは有限の容量で制限され、それを越えてしまう場合には、フォールバック処理と呼ばれる処理を行い、制限されたバッファの容量に収まるようにしている。
【０００７】
従来、特にメモリ使用量と処理時間とが大きいために問題となっている画像データの画像圧縮バッファに対するフォールバック処理に関して、特開平５−６４００１号公報などでは、画像圧縮バッファがあふれた場合は、直ちにより圧縮率の高いパラメータによって画像圧縮バッファに収まるまで、再圧縮を繰り返すことが行われている。
【０００８】
また、画像の一部分を圧縮し得られたデータ量から画像の全体の圧縮データ量を予測して、画像圧縮バッファに収まるようなパラメータを設定して圧縮することも行われている。
【０００９】
【発明が解決しようとする課題】
上記従来技術の課題として、ＰＤＬになった画像は、各アプリケーションやオペレーティングシステムの制限によって一つの画像をいくつもの部分画像に分解して表現していることが多い。そのために、１ページに数千、数万単位で画像データが埋め込まれていることがある。また、処理の高速化が要求されるために、現実的にハードウェアを使って圧縮伸長を行っているが、効率的なハードウェアの使用のために、各圧縮画像データの先頭と終わりに、圧縮画像データの区切りを示すマーカーコードが必要で、挿入されている。
【００１０】
図１３は、圧縮画像バッファの使用状態を示す模式図である。この図で斜線で示す部分がマーカーコード＋バディングで、白部分（空き領域以外）が圧縮画像データ本体である。従来では、これらの考慮がなされていないために、圧縮バッファ内の圧縮画像データのうち、実際の画像に対するデータの占める割合に比べてマーカーコードの占める割合が大きくなってしまっている。
【００１１】
また、このためにより高い圧縮率で再圧縮しても、実質的なデータの削減の効果が少なくなり、フォールバック処理が頻繁に発生して、画質低下や処理時間の増大を招いている。
【００１２】
【課題を解決するための手段】
本発明は、このような課題を解決するために成された画像処理装置である。すなわち、本発明の画像処理装置は、入力画像データを圧縮し、マーカーコードが付加された圧縮画像データを出力する画像圧縮手段と、画像圧縮手段から出力された圧縮画像データを格納する圧縮画像バッファと、圧縮画像バッファの空き領域に関する情報を管理するバッファレジスタテーブルと、バッファレジスタテーブルで管理される情報を参照し、圧縮画像バッファの空き領域の容量が新たな圧縮画像データを格納するのに足りず、圧縮画像バッファに格納されている圧縮画像データの容量が所定の閾値より少ないと判断した場合、圧縮画像バッファに格納されている圧縮画像データからマーカーコードを削除して、圧縮画像バッファに格納し直すマーカーコード削除手段と、バッファレジスタテーブルで管理される情報を参照し、圧縮画像バッファの空き領域の容量が新たな圧縮画像データを格納するのに足りず、圧縮画像バッファに格納されている圧縮画像データの容量が所定の閾値以上であると判断した場合、圧縮画像バッファに格納されている圧縮画像データを伸長して、より圧縮レベルの高い再圧縮を行い、圧縮画像バッファに格納する再圧縮手段と、マーカーコード削除手段によってマーカーコードが削除された圧縮画像データの格納場所とサイズとマーカーコードが削除されたことを管理する画像管理テーブルとを備えている。
【００１３】
このような本発明では、画像圧縮手段から出力される圧縮画像データを圧縮画像バッファに格納し、バッファ管理手段においてその圧縮画像バッファの空き領域に関する情報を管理している。そして、バッファ管理手段により、圧縮画像バッファの空き領域を増やしたほうが良いと判断した場合、マーカーコード削除手段が圧縮画像バッファに記憶されている圧縮画像データからマーカーコードを削除して、圧縮画像バッファに格納し直している。これにより、削除したマーカーコードの領域だけ圧縮画像バッファの空き領域が増えることになる。
【００１４】
また、本発明は、上記構成に加え、バッファレジスタテーブルで管理される情報を参照し、圧縮画像バッファの空き領域の容量が新たな圧縮画像データを格納するのに足りず、圧縮画像バッファに格納されている圧縮画像データの容量が前記所定の閾値より大きいと判断した場合、圧縮画像バッファに格納されている圧縮画像データを伸長して、より圧縮レベルの高い再圧縮を行う再圧縮手段を備える画像処理装置である。
【００１５】
このような本発明では、バッファ管理手段により、圧縮画像バッファの空き領域を増やしたほうが良いと判断した場合、圧縮画像管理手段によって、マーカーコードを削除するか、再圧縮を行うかの判断を行っており、マーカーコードを削除すると判断した場合には、マーカーコード削除手段で圧縮画像データのマーカーコードを削除して圧縮画像バッファに格納し直し、再圧縮すると判断した場合には、再圧縮手段で圧縮画像データを伸長し再圧縮を行っている。これにより、マーカーコードを削除した分、または再圧縮前と後との差分だけ圧縮画像バッファの空き領域を増やすことができるようになる。
【００１６】
また、本発明は、再圧縮手段によって前記圧縮画像バッファに格納されている圧縮画像データの再圧縮を行った場合、画像圧縮手段が新たな圧縮画像データを再圧縮と同じ圧縮レベルで圧縮して出力する画像処理装置であったり、バッファレジスタテーブルが、再圧縮手段によって圧縮画像バッファに格納されている圧縮画像データを再圧縮したことを示すフラッグを管理しており、画像圧縮手段が、バッファレジスタテーブルのフラッグによって再圧縮があったことを判断した場合、新たな圧縮画像データを再圧縮と同じ圧縮レベルで圧縮して出力する画像処理装置である。
【００１７】
また、本発明は、圧縮画像バッファから圧縮画像データを読み出して伸長する画像伸長手段を備えており、画像伸長手段が、圧縮画像データの伸長を行うにあたり画像管理テーブルを参照し、マーカーコードが削除されていると判断した場合には、画像管理テーブルを参照して伸長の対象となる圧縮画像データの格納場所とサイズとによって当該圧縮画像データを読み出し、新たにマーカーコードを付加した状態で伸長を行う画像処理装置である。
【００１８】
【発明の実施の形態】
以下、本発明の画像処理装置における実施の形態を図に基づいて説明する。図１は、本実施形態の画像処理装置を説明するブロック図である。すなわち、この画像処理装置は、主としてＰＤＬ解釈部１、ベクター処理部２、画像処理部３、中間データ生成部４、画像圧縮部５、中間データ展開部６および出力装置部７を備えた構成となっている。
【００１９】
このうち、中間データ生成部４は、エッジデータ生成部４１、エッジデータバッファ部４２を備え、画像圧縮部５は、圧縮制御部５１、画像バッファ５２、圧縮伸長Ｈ／Ｗ（ハードウェア）部５３、マーカーコード制御部５４および圧縮画像バッファ５５を備えている。また、中間データ展開部６は、描画処理部６１、出力データバッファ６２を備えている。
【００２０】
ここで、本実施形態の画像処理装置におけるデータの流れを説明する。ＰＤＬは基本的に図形描画、文字描画、画像描画のコマンドで構成される。ＰＤＬ解釈部１では、入力されたＰＤＬから各種描画コマンドおよびそれに付加されているパラメータを順番に解釈する。そして、それぞれに必要なパラメータを整理して、内部コマンドを作成し、ベクター処理部２および画像処理部３へ内部コマンドを送る。
【００２１】
ベクター処理部２では、受け取った内部コマンドから、それぞれの描画要素のページ上での外縁を表すベクターデータを生成し、このベクターデータを、与えられた内部コマンドのパラメータに含まれる色情報とともに中間データ生成部４へ送る。
【００２２】
画像処理部３では、内部コマンドのパラメータとして付加された画像データと画像処理パラメータとを使って画像処理を行い、ページ上に置かれるべき画像データ（画像処理済みデータ）を生成する。
【００２３】
中間データ生成部４では、エッジデータ生成部４１が、受け取ったデータから、図２に示すようなスキャンライン毎に始点と長さとで領域を表すエッジデータを生成し、エッジデータバッファ４２に蓄える。例えば、図２に示す図形で、６番目のスキャンラインのエッジとしては、エッジ（１）…始点１、長さ４、エッジ（２）…始点７、長さ１の２個が生成される。この処理は、各描画コマンド（要素）毎に行われ、通常１ページ分、ページに描画されるべき描画要素が全てエッジデータバッファ４２に蓄えられるまで繰り返し行われる。エッジの集合には、属性として色情報（色値または画像ＩＤ）が付加される。
【００２４】
画像圧縮部５では、圧縮制御部５１の制御のもとに、画像処理部３で処理された画像データを一旦画像バッファ５２に格納し、圧縮伸長Ｈ／Ｗ部５３を使って圧縮画像データを生成して圧縮画像バッファ５３に格納する。この時の圧縮画像データは、図３に示すように、圧縮伸長Ｈ／Ｗ部５３で圧縮画像データをハンドリングするために必要なマーカーコード（ＳＯＤ、ＥＯＤ）が実際の圧縮画像データの前後に挿入されている。
【００２５】
このような圧縮処理は、通常１ページ分、ページに描画されるべき圧縮画像データが全て圧縮画像バッファ５５にに蓄えられるまで繰り返し行われ、順番に圧縮画像バッファ５５の空き領域に格納されていく。ただし、途中で圧縮画像バッファ５５の空き領域がなくなってしまった時などは、圧縮画像バッファ５５に空き領域を作る処理を行う。
【００２６】
この処理を圧縮画像バッファ５５に対するフォールバック処理と呼ぶが、圧縮制御部５１によって、マーカーコード制御部５４で圧縮画像バッファ５５に蓄えられた圧縮画像データのマーカーコード部分を取り除いて、再び圧縮画像バッファ５５に書き戻す処理、または圧縮画像バッファ５５に蓄えられた圧縮画像データを一旦伸長し、より高い圧縮率のパラメータで再圧縮する処理のいずれかが選択される。
【００２７】
さらに、画像圧縮部５では、中間データ展開部６の描画処理部６１が実際の出力データバッファ６２に画像を書き込む際、必要となる圧縮画像データを伸長する処理も行う。中間データ展開部６では、１ページ分のエッジデータと圧縮画像データとがそれぞれ圧縮画像バッファ５５に蓄えられてから処理が開始される。ここで、出力データバッファ６２は、ページをスキャンラインと平行にいくつかの領域に分割したバンドという単位のバッファである。これは、ページをＮ分割した場合には、１／Ｎの容量で済むことになる。
【００２８】
描画処理部６１では、エッジデータバッファ部４２からエッジデータを読み出して、現在の出力データバッファ６２に描画すべきエッジのみを選択し、選択されたエッジから出力データバッファ６２に書き込むためのアドレス計算を行い、そのエッジに対応した色もしくは画像データで、対応する出力データバッファ６２のアドレスに書き込む。これをエッジデータバッファ部４２に蓄えられた全てのエッジに対して行う。
【００２９】
その後、出力データバッファ６２のデータは、出力装置部７へ送られる。これを１ページ分必要なバンド数分繰り返し、１ページ分の描画データが全て出力装置部７へ送られることによって、出力装置部７から描画されたページが出力されることになる。
【００３０】
次に、本実施形態の画像処理装置における主要部である画像圧縮部６について詳細に説明する。すなわち、画像処理部３では、実際に出力装置部７に出力するための解像度、向きなどに変換した画像データを作成し、画像圧縮部５へ渡している。
【００３１】
この画像圧縮部５へ渡すデータには２種類あり、一つは実際の画像データで画像バッファ５２に蓄えられる。もう一つは、画像データに対する属性であり、圧縮制御部５１へ送られる。画像データは、予め画像バッファ５２の最大サイズを越えないように、ＰＤＬ作成時（プリンタドライバで画像処理装置のリソースを管理して実現）または画像処理部３で分割され、画像バッファ５２に入力される。ここでは、ＰＤＬ作成時に制御されているものとする。
【００３２】
また、出力装置部７がカラーである場合には、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（黄）、Ｋ（黒）の各々に対して一つずつ計４面分入力され、モノクロの場合には１面分入力される。なお、本実施形態では、１面分を前提にして説明するものとする。
【００３３】
画像データに対する属性とは、図４に示すように、画像の幅Ｗ、高さＨ、画像のページ上の位置（左上の座標：ＯＸ，ＯＹ）、画像を識別するためのＩＤ（ＩＩＤ）といった情報である。
【００３４】
ここで、画像圧縮部５の圧縮制御部５１について説明する。図５は圧縮制御部の構成を説明するブロック図である。圧縮制御部５１は、画像管理テーブル５１１、バッファレジスタテーブル５１２、フォールバック閾値レジスタテーブル５１３および動作シーケンス制御部５１４から構成される。
【００３５】
画像管理テーブル５１１は、画像圧縮部５（図１参照）に入力された画像毎に、先ほど説明した属性と画像圧縮を行った時のパラメータＩＤ、圧縮された後の圧縮画像データの実際の画像データに対する容量およびＳＯＤ、ＥＯＤ、パディング（図３参照）まで含めたデータ容量をテーブルとして記憶している。初期状態ではテーブルが空の状態であり、画像が追加されるたびに新しいデータが順番に登録されていく。
【００３６】
バッファレジスタテーブル５１２は、圧縮画像バッファ５５（図１参照）おび図７に示すマーカーコード制御部５４のテンポラリバッファ５４２に関する情報を記憶するレジスタ群であり、圧縮画像バッファ５５の先頭アドレス、圧縮画像バッファ５５の容量、使用量、空き容量、フォールバック処理が行われたかどうかの情報と、テンポラリバッファ５４２のサイズが記憶されている。圧縮画像バッファ５５の使用量、空き容量、フォールバック処理が行われたかどうかの情報のレジスタは、圧縮画像バッファ５５に圧縮画像データが書き込まれるたびに更新されていく。
【００３７】
フォールバック閾値レジスタテーブル５１３は、圧縮画像バッファ５５のフォールバック処理の内容を決定するために使用される各種閾値が記憶されたレジスタ群である。圧縮画像バッファ５５のフォールバック処理とは、圧縮画像データの容量が、圧縮画像バッファ５５の容量を越えるまたは越えそうだと判断される時に、圧縮画像バッファ５５の空き領域を拡げるための処理である。この処理には、高い圧縮率で再圧縮を行う場合と、マーカーコードを削除する場合とがあり、選択できるようになっている。このフォールバック閾値レジスタテーブル５１３には、フォールバック処理を開始する圧縮画像バッファの空き容量値と圧縮画像データ量に応じて異なったフォールバック処理を行うための閾値とが記憶されている。
【００３８】
動作シーケンス制御部５１４は、画像圧縮部５全体の動作を制御する。ここでは、図１に示す画像処理部３、圧縮伸長Ｈ／Ｗ部５３、マーカーコード制御部５４などから画像データ、圧縮画像データに関する情報が入力され、それらの値を画像管理テーブル５１１、バッファレジスタテーブル５１２、フォールバック閾値レジスタテーブル５１３などに書き込む処理と、逆にそれらの値から処理の内容を決定して、圧縮伸長Ｈ／Ｗ部５３やマーカーコード制御部５４を動作させるパラメータを生成して、命令を出す役割を持っている。
【００３９】
次に、図１に示す圧縮伸長Ｈ／Ｗ部５３の説明を行う。圧縮伸長Ｈ／Ｗ部５３は、画像圧縮および画像伸長を行うハードウェアである。圧縮時には、入力画像データのバッファの先頭アドレスと入力画像データのサイズ、入力画像データの幅と高さ、圧縮率を制御する圧縮パラメータ、圧縮画像データを出力するバッファの先頭アドレスと、圧縮画像データを出力するバッファの残り容量を受け取る。
【００４０】
データ転送はＤＭＡ転送で行われ、圧縮伸長Ｈ／Ｗ部５３で決められたアライメント単位にデータ転送が行われることから、入力されるアドレスや各種サイズはすべてこのアライメントの倍数になっている必要がある。本実施形態では、アライメントを６４バイトとして説明する。したがって、入力画像データの各種サイズが６４バイトの倍数でない場合には、画像処理部３の処理の中でパディングを行っている。図６はパディングを説明する図で、画像データが６４バイトの倍数に満たない部分にパディングデータ部（図中斜線部参照）を付加している。
【００４１】
圧縮伸長Ｈ／Ｗ部５３は、画像データを与えられた入力バッファから６４バイト単位で読み出し、画像の高さ、幅などの情報を使って圧縮処理を行う。また、圧縮画像データの出力も６４バイト単位で行われるが、図３に示すように、圧縮画像データの最初にはＳＯＤ（２４バイト）、終わりにはＥＯＤ（２４バイト）を付加する。これは、画像によらず同じ値のもので、伸長時の制御を単純にしてハードウェアを高速に動作させるためのものである。また、ＳＯＤ＋圧縮画像データ＋ＥＯＤの合計が６４バイトの倍数にならないときは、ＥＯＤの後にパディングデータを付加して出力を行う。
【００４２】
そして、圧縮結果の情報として、圧縮画像データの実際の画像データに対する容量およびＳＯＤ、ＥＯＤ、パディングまで含めたデータ容量を動作シーケンス制御部５１４（図５参照）へ返す。この時、与えられた圧縮画像バッファ５５の残り容量を越えてしまった場合には、ただちに圧縮処理を中断して、動作シーケンス制御部５１４へは圧縮画像バッファ５５（図１参照）の残り容量＋１の容量を返す。
【００４３】
伸長時には、動作シーケンス制御部５１４から圧縮画像データの先頭アドレス、伸長した画像データを書き出す出力バッファのアドレスが入力されて伸長が行われる。伸長時もこれらの値は６４バイトの倍数である必要がある。この時、圧縮伸長Ｈ／Ｗ部５３は、ＳＯＤを受け取ることによって、自動的に初期化を行い、引き続く圧縮画像データを伸長し、ＥＯＤを受け取ることによって、伸長処理を自動的に打ち切り、伸長処理を完了する。
【００４４】
次に、マーカーコード制御部の説明を行う。図７はマーカーコード制御部の構成を説明するブロック図である。すなわち、マーカーコード制御部５４は、読み出し書き込み制御部５４１とテンポラリバッファ５４２とから構成される。
【００４５】
読み出し書き込み制御部５４１の動作には、マーカーコード削除読み込みモード、マーカーコード付加読み込みモード、書き込みモードの３つの動作モードを持っている。このうち、マーカーコード削除読み込みモードでは、動作シーケンス制御部５１４（図５参照）から同モード指定と圧縮画像データをどこから読み出すかのアドレスを受け取る。そして、読み出し始めのＳＯＤ（２４バイト）部分を読み飛ばし、その次に続くデータからＥＯＤを認識する前のデータまで、順番に読み込んだデータをテンポラリバッファ５４２へ順次書き込む。そして、ＥＯＤを認識して処理を終了する。これにより、テンポラリバッファ５４２には、マーカーコードが削除された圧縮画像データが格納されることになる。なお、この時、読み込んだサイズを動作シーケンス制御部５１４へ戻しておく。
【００４６】
マーカーコード付加読み込みモードの場合は、動作シーケンス制御部５１４から、同モード指定と圧縮画像データをどこから読み出すかのアドレスと、読み込むサイズとを受け取る。そして、先ず、テンポラリバッファ５４２へＳＯＤを書き込んで、その後読み出しサイズ分の圧縮画像データを読み出して、順次テンポラリバッファ５４２へ書き込みを行う。そして、引き続きＥＯＤをテンポラリバッファ５４２へ書き込む。この際、ＳＯＤのサイズ＋与えられた圧縮画像データのサイズ＋ＥＯＤのサイズが６４バイトの倍数になるようにパディングデータもテンポラリバッファ５４２へ書き込む。その後、トータルの書き込みバイト数を動作シーケンス制御部５１４へ返す。
【００４７】
また、書き込みモードの場合には、動作シーケンス制御部５１４から、同モード指定と書き込み先の先頭アドレスと書き込みサイズとを受け取り、単純にテンポラリバッファ５４２の内容を書き込み先の先頭アドレスからコピーするだけである。
【００４８】
次に、フォールバック処理の説明を行う。図８は、圧縮制御部のレジスタの初期設定内容を示す図である。ここで、図８（ａ）に示す画像管理テーブルは何も画像が登録されていないので、空の状態を示している。また、図８（ｂ）に示すバッファレジスタテーブルは、圧縮画像バッファの容量が１ＭＢであり、使用されたサイズは０バイト、空きサイズが１ＭＢ、フォールバックは起きていないことを示している。さらに、図８（ｃ）に示すフォールバック閾値レジスタテーブルは、圧縮画像バッファの空き容量サイズが０バイト未満（あふれた場合に相当）になったらフォールバック処理を行うことを示し、また圧縮画像データのサイズが１０２４バイト未満の場合に、マーカーコードを取り除くフォールバック処理を行うことを示している。
【００４９】
これらの閾値は常に一定の値でも、入力画像データや圧縮画像データの状況に応じて途中で変更される変数であってもよい。
【００５０】
次に、このような状態からスタートして、非常に大きな２つの画像（ＩＩＤ：１、ＩＩＤ：２）を処理したときの圧縮制御部のレジスタの内容を図９に示す。また、この時の圧縮画像バッファの状態を図１０に示す。そして、この画像ＩＩＤ：１とＩＩＤ：２とが圧縮画像バッファに格納された状態で、大きな画像（ＩＩＤ：３）が入力された場合の処理を説明する。
【００５１】
先ず、画像バッファ５２（図１参照）へ蓄えられた画像に対する圧縮指示を動作シーケンス制御部５１４（図５参照）が圧縮伸長Ｈ／Ｗ部５３へ伝える。圧縮伸長Ｈ／Ｗ部５３では、画像バッファ５２から画像データを読み出して、画像圧縮処理を行い圧縮画像バッファ５５への書き込みを行う。ところが、書き込みの途中で圧縮データ量が圧縮画像バッファ５５の残り容量を越えてしまったため、途中で圧縮処理を中断して、動作シーケンス制御部５１４へ、圧縮画像バッファ５の残り容量＋１（１３１０７３）を返す。
【００５２】
動作シーケンス制御部５１４では、圧縮制御部５１内のバッファレジスタテーブル５１２の残り容量から、受け取ったサイズを引いて、その値（−１）とフォールバック閾値レジスタテーブル５１３の開始バッファ空きサイズ（０）とを比較して、小さいのでフォールバック処理を開始する。
【００５３】
このとき、動作シーケンス制御部５１４は、画像管理テーブル５１１のＩＩＤ：１の画像の圧縮データサイズ（５２４２８８）とフォールバック閾値レジスタテーブル５１３のＭＣコード削除データサイズ（１０２４）とを比較して、圧縮データサイズのほうが大きいので、フォールバック処理として再圧縮処理を選択する。
【００５４】
再圧縮処理が選択された場合、圧縮伸長Ｈ／Ｗ部５３は、圧縮画像バッファ内のＩＩＤ：１に対して、出力先として画像バッファ５２を示した伸長処理を行う。伸長が終了した後は、画像管理テーブル５１１のＩＩＤ：１に対応する圧縮ＩＤ（１）を見て、それよりも高いレベルの圧縮パラメータにより圧縮伸長Ｈ／Ｗ部５３で再圧縮処理を行い、圧縮画像バッファ５５へ再圧縮後の圧縮画像データを上書きする。この再圧縮処理では、圧縮前よりも小さいデータサイズになるため、上書きによる画像ＩＩＤ：２のデータへの影響はない。
【００５５】
次に、画像ＩＩＤ：２に対応する圧縮画像データについても同様にフォールバック処理を行う。画像ＩＩＤ：２についても、圧縮画像データのサイズ（３９３２１６）のほうがＭＣコード削除データサイズ（１０２４）よりも大きいので、先と同様に再圧縮処理を選択する。
【００５６】
フォールバック処理後の各テーブルの状態を図１１に、圧縮画像バッファの状態を図１２に示す。そして、動作シーケンス制御部５１４は、画像処理部５３に対して再度画像ＩＩＤ：３の画像入力を要求する。この状態以降の画像入力処理は、動作シーケンス制御部５１４が、バッファレジスタテーブル５１２のＦＢ  ＦＬＡＧを参照し、ＯＮになっていることを認識して、最初からフォールバックされた圧縮画像データと同じ圧縮レベルで圧縮するよう指示を与える。なお、デフォルトの圧縮レベルから圧縮を開始してもよい。
【００５７】
このようなフォールバック処理により、圧縮画像バッファの空き領域を増やして圧縮画像データを効率良く格納できるようになる。
【００５８】
次に、図１３に示すように、圧縮画像バッファに非常に細かな圧縮画像データが多数収められている時のフォールバック処理について説明する。なお、これらの圧縮画像データは、フォールバック閾値レジスタテーブル５１３のＭＣコード削除データサイズ（１０２４）小さいものとする。
【００５９】
この状態で、先と同じような条件でフォールバック処理が開始されると、動作シーケンス制御部５１４は、画像管理テーブル５１１の画像の圧縮データサイズとフォールバック閾値レジスタテーブル５１３のＭＣコード削除データサイズ（１０２４）とを比較するが、この場合、ＭＣコード削除データサイズ（１０２４）より画像の圧縮データサイズのほうが小さいので、動作シーケンス制御部５１４からマーカーコード制御部５４へ圧縮画像バッファ５５の対応するデータに対してマーカーコード削除読み込みが指示され、その後、圧縮画像バッファ５５への書き込みが指示される。
【００６０】
これを順番に処理することによって、圧縮画像バッファ５５は図１４に示すような状態となる。動作シーケンス制御部５１４は、画像処理部５３に再度フォールバックを起こした画像の入力を要求するが、この状態以降の画像入力処理は、動作シーケンス制御部５１４がバッファレジスタテーブル５１２のＦＢ  ＦＬＡＧを参照し、ＯＮになっていることを認識して、最初からマーカーコードを削除するようにもできるし、デフォルトのままでもよい。
【００６１】
このようなフォールバック処理により、圧縮画像バッファの大部分を占めていたマーカーコードを削除して、圧縮画像バッファの空き領域を増やし、圧縮画像データを効率良く格納できるようになる。
【００６２】
なお、上記説明したフォールバック処理では、各画像単位でサイズと閾値とを比較したが、動作シーケンス制御部５１４がフォールバックを起こすときに、画像管理テーブル５１１を予め全て操作してからフォールバック処理の選択を総合的に判断するようにしてもよい。
【００６３】
また、伸長時の処理において、動作シーケンス制御部５１４が画像管理テーブル５１１の圧縮ＩＤを参照してマーカーコードが削除された画像について、マーカーコード付加読み込みをモードを実施する場合、圧縮伸長Ｈ／Ｗ部５３に対してマーカーコード制御部５４のテンポラリバッファ５４２から圧縮画像データを入力するように指示することによって、マーカーコードを削除された画像についても問題なく伸長処理を行うことができる。
【００６４】
さらに、フォールバック閾値レジスタテーブルに、入力画像データのサイズによって、▲１▼圧縮しない、▲２▼圧縮する、▲３▼圧縮を行いさらにマーカーコードも削除する、といった処理が区別できるような閾値を設けておき、最初の圧縮時からマーカーコードを削除するようにしてもよい。また、マーカーコードを削除するか否かは、入力画像データのサイズのほか、フォールバック時と同じように圧縮画像データのサイズで判断するようにしてもよい。
【００６５】
【発明の効果】
以上説明したように、本発明の画像処理装置によれば次のような効果がある。すなわち、圧縮画像バッファのフォールバック処理で、マーカーコードを削除して圧縮画像バッファの空き領域を増やすようにしているため、特に小さなサイズの圧縮画像データを多数格納する場合など、効果的なフォールバック処理を行うことができ、フォールバックの回数を削減できるようになる。これにより、処理時間の短縮、画質の向上を図ることが可能となる。さらに、最初の圧縮時からマーカーコードを削除することで、高速な処理および圧縮画像バッファの使用容量の削減を実現できるようになる。
【図面の簡単な説明】
【図１】  本実施形態の画像処理装置を説明するブロック図である。
【図２】  エッジデータを説明する模式図である。
【図３】  圧縮画像データを説明する模式図である。
【図４】  画像データに与えられる属性を説明する図である。
【図５】  圧縮制御部の構成を説明するブロック図である。
【図６】  パディングを説明する図である。
【図７】  マーカーコード制御部の構成を説明するブロック図である。
【図８】  圧縮制御部のレジスタの初期設定内容を示す図である。
【図９】  圧縮制御部のレジスタの内容を示す図である。
【図１０】  圧縮画像バッファの状態を示す模式図である。
【図１１】  フォールバック処理後の各テーブルの状態を示す図である。
【図１２】  フォールバック処理後の圧縮画像バッファの状態を示す模式図である。
【図１３】  細かな圧縮画像データが収められている場合の圧縮画像バッファの状態を示す模式図である。
【図１４】  フォールバック処理後の圧縮画像バッファの状態を示す模式図である。
【符号の説明】
１…ＰＤＬ解釈部、２…ベクター処理部、３…画像処理部、４…中間データ生成部、５…画像圧縮部、６…中間データ展開部、７…出力装置部、５１…圧縮制御部、５３…圧縮伸長Ｈ／Ｗ部、５４…マーカーコード制御部、５５…圧縮画像バッファ
【図１】
0004078747.tif 000002
【図２】
0004078747.tif 000003
【図３】
0004078747.tif 000004
【図４】
0004078747.tif 000005
【図５】
0004078747.tif 000006
【図６】
0004078747.tif 000007
【図７】
0004078747.tif 000008
【図８】
0004078747.tif 000009
【図９】
0004078747.tif 000010
【図１０】
0004078747.tif 000011
【図１１】
0004078747.tif 000012
【図１２】
0004078747.tif 000013
【図１３】
0004078747.tif 000014
【図１４】
0004078747.tif 000015