(57)【特許請求の範囲】
【請求項１】
各画素が、一定のビット数を有する少なくとも１つのカラーチャネル値により規定される画素値を有する走査線上の画素のデジタル連続階調画像を圧縮する方法であって、当該方法は、圧縮された画像データを生成し、
符号化対象となる実際の画素値を有する現在画素に対して、同一画像からの少なくとも１つの前に処理された画素の画素値に基づき予測画素値を予測するステップと、
前記予測画素値と前記現在画素の実際の画素値との差分に基づき差分数を決定するステップと、
ゼロに等しい値を有する最上位ビットの中断されない系列の存在のため、前記差分数を調べるステップと、
前記最上位ゼロビットの少なくとも一部を削除するステップと、
所定の境界内にいくつかのビットが残っている場合、所定の固定長を有し、前記残りのビットのビット数を示す圧縮コードを生成するステップと、
から構成され、
小さな絶対値を有する差分が小さな値を有する一意的な差分数に変換される方法。
【請求項２】
圧縮コードは、コードタイプ表示と残りのビットの個数の表示とを有する、請求項１記載の方法。
【請求項３】
前記圧縮コードに加えて、少なくとも１つのデータコードを生成し、前記残りのビットを前記データコードに含めるステップをさらに有する、請求項１記載の方法。
【請求項４】
前記圧縮コードと前記データコードはすべて、等しい一定のビット数を有する、請求項３記載の方法。
【請求項５】
前記コードはそれぞれ４ビットを有する、請求項４記載の方法。
【請求項６】
前記データコードは可変数のビットを有する、請求項３記載の方法。
【請求項７】
前記画素値は、各カラーチャネルが等しいビット数を有する少なくとも２つのカラーチャネルにより規定され、
前記差分数を決定するステップでは、各画素値は、まず所定の方式に従って相関解除変換によって変換される、
請求項１乃至６何れか一項記載の方法。
【請求項８】
前記画素値は、各カラーチャネルが等しいビット数を有する少なくとも２つのカラーチャネルにより規定され、
前記差分数を決定するステップはさらに、所定の置換方式に従って各カラーチャネルの前記差分のビットを連結することによって、各カラーチャネルの前記差分又は各カラーチャネルの前記変換された画素値の差分をそれぞれ合成することを有し、
各チャネルの最下位ビットは、前記合成された差分の最下位ビットサイドで構成される、
請求項１乃至７何れか一項記載の方法。
【請求項９】
同一走査線上の前に符号化された近傍画素の画素値が、前記予測画素値として利用される、請求項１記載の方法。
【請求項１０】
前記現在画素の実際の画素値が、同一走査線上にあって、前記現在画素の画素値と異なる画素値を有する１つの画素又は前記現在画素の画素値と異なる等しい画素値をすべてが有している複数の画素によって、前記現在画素と分離されている前に符号化された画素の画素値と等しいかチェックするステップと、
そうである場合、前記現在画素に対して専用の汎用コードを生成するステップと、
をさらに有する、請求項１記載の方法。
【請求項１１】
圧縮対象となる現在画素が、それの前に処理された近傍画素の所定の特定の１つと比較され、それらの画素値が等しい場合、符号化対象となる次の画素に対して前記比較ステップを繰り返し、これにより、それぞれ前記所定の特定の近傍画素に等しい値を有する同一走査線上の画素のランレングスを最大化するランレングス符号化ステップと、
前記画素に対して、各ビットグループが前記ランレングス符号化ステップのランレングスをビット表現により規定するランレングス表示とコードタイプ表示とを有する固定長の１以上のビットグループを有するランレングスコードを生成するステップと、
をさらに有する、請求項１記載の方法。
【請求項１２】
前記ランレングスビット表現が、１つのランレングス表示に収容可能なものより長いとき、前記ランレングスビット表現は、連続するビットグループのランレングス表示に分割される、請求項１１記載の方法。
【請求項１３】
請求項１乃至１２何れか一項記載の方法を実行するためのコンピュータ可読コードを有するコンピュータプログラム。
【請求項１４】
各画素が、一定のビット数を有する少なくとも１つのカラーチャネル値により規定される画素値を有する走査線上の画素のデジタル連続階調画像を圧縮する装置であって、当該装置は、圧縮された画像データを生成し、
実際の画素値を有する現在画素を符号化する符号化モジュールと、
同一画像からの少なくとも１つの前に処理された画素の画素値に基づき予測画素値を予測する予測装置と、
前記予測画素値と前記現在画素の実際の画素値との差分に基づき差分数を決定する差分数決定装置と、
ゼロに等しい値を有する最上位ビットの中断されない系列の存在のため、前記差分数を調べるチェックモジュールと、
前記最上位ゼロビットの少なくとも一部を削除する切り捨てモジュールと、
所定の境界内にいくつかのビットが残っている場合、所定の固定長を有し、前記残りのビットのビット数を示す残りのビット表示とコードタイプ表示とを含む圧縮コードを生成する圧縮コード生成装置と、
を有し、
小さな絶対値を有する差分が小さな値を有する一意的な差分数に変換される装置。
【請求項１５】
圧縮対象となる現在画素をそれの前に処理された近傍画素の所定の特定の１つと比較し、それらの画素値が等しい場合、符号化対象となる次の画素に対して前記比較ステップを繰り返し、これにより、それぞれ前記所定の特定の近傍画素に等しい値を有する同一走査線上の画素のランレングスを最大化するランレングスチェック装置と、
前記ランレングスチェック装置により検出された画素に対して、各ビットグループが前記ランレングス符号化ステップのランレングスをビット表現により規定するランレングス表示とコードタイプ表示とを有する固定長の１以上のビットグループを前記ランレングスコードに含めることによって、ランレングスコードを生成するランレングスコード生成装置と、
をさらに有する、請求項１４記載の装置。
【請求項１６】
前記ランレングスビット表現が、１つのランレングス表示に収容可能なものより長いとき、前記ランレングスコード生成装置は、前記ランレングスビット表現を連続するビットグループのランレングス表示に分割する、請求項１５記載の装置。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
本発明は、連続階調画像の可逆圧縮に関する。より詳細には、本発明は、各画素がＢビット（Ｂ＞１）の精度を有する少なくとも１つのカラーチャネル値により規定される画素値を有する走査線上にある画素のデジタル連続階調画像を圧縮する方法を提供する。カラーチャネルはまた、単一の白黒チャネルを有するようにしてもよいということが理解されるべきである。
【０００２】
本発明はまた、上記方法が実現されるコンピュータ及び装置、特に印刷コントローラ上で実行される際、上記方法を実行するためのコンピュータプログラムプロダクトに関する。最終的には、本発明は、本発明により圧縮された画像データを解凍する方法に関する。
【０００３】
［背景］
プリンタに送信されたページは、一般にページ記述言語（ＰＤＬ）により規定されている。ＰＤＬの具体例として、Ａｄｏｂｅ  Ｓｙｓｔｅｍｓ  Ｉｎｃ．からのＰｏｓｔＳｃｒｉｐｔがある。コンピュータ上で実行されるＰＤＬインタプリタがＰＤＬを解釈し、印刷される各ページのデジタルページ画像が生成される。ページ画像は、印刷エンジンに直接わたすことができる形式をとることが可能であるか、あるいはそれらが印刷エンジンにわたされる前にさらに処理される可能性があるデジタル連続階調画像の形式により格納することが可能である。後者のアプローチは、例えば、特殊な画像処理、すなわち、印刷エンジンによって受け付け可能なフォーマットへの連続階調画像を変換など、ＰＤＬインタプリタにおいて利用可能でない画像処理が必要とされるときなどに利用することができる。
【０００４】
後者のアプローチを利用するカラープリンタについて、連続階調画像が格納され、おそらく画像処理ハードウェアに送信される必要がある。しかしながら、連続階調画像に対するデータ量は、例えば、１４０Ｍｂｙｔｅが必要となるＡ４サイズの６００ｄｐｉ連続階調（１つのカラーチャネル毎に８ビット）ＣＭＹＫ画像などに対して、極めて大きなものとなりうる。このことは、画像を格納するのに比較的大きな格納量と、それを転送するのに比較的長い時間がかかることを意味する。この問題に対する一般的な解決策は、連続階調画像を圧縮することである。
【０００５】
例えば、図１１は、「ラスタ画像プロセッサ（ＲＩＰ）」又は「カラーサーバ」としても知られている印刷コントローラの概略を示す。印刷コントローラは、印刷ジョブ（ＰｏｓｔＳｃｒｉｐｔにより規定される）を解釈し、ページ画像をディスクに格納し、必要に応じてそこからプリンタに転送する。
【０００６】
カラー印刷コントローラは、入力される印刷ジョブを解釈し、それを未圧縮の連続階調カラーページ画像に変換するＰＤＬインタプリタ１１２を有する。当該ページ画像の生成後に直接的に、それらは本発明の圧縮装置１４により圧縮される。結果として得られる圧縮されたページ画像は、ページストアを構成するハードディスク１１６に格納される。エンジンが当該ジョブを印刷することを必要とするとき、圧縮されたページ画像がハードディスクから読み出され、プリンタインタフェースケーブル１１８（ファイアウォールなど）を介し当該エンジンに転送される。
【０００７】
図１２は、プリンタインタフェースケーブル１１８を介し図１１の印刷コントローラに接続されるプリンタを示す。
【０００８】
印刷コントローラからの圧縮されたページ画像は、バッファ１２２に受け取られる。そこから、圧縮された画像データは、当該圧縮ページ画像を解凍された画像に変換する解凍装置１２４にわたされる。この解凍された画像は、それを印刷エンジン１２８を駆動するのに利用される具体的ビットマップに変換するため、画像処理モジュール１２６を介しわたされる。
【０００９】
画像データがＰＤＬインタプリタの後に直接圧縮されるという事実は、ハードディスクに対する当該画像の転送において帯域幅を節約し、未圧縮データに対して必要とされるものより低速なディスクが利用されることを可能にする。それはまた、より小型のディスクを可能にする。また、プリンタインタフェースケーブルを介し画像を転送するのに必要とされる帯域幅が低減し、これにより、より利用性の低い帯域幅とのインタフェースが利用可能となる。
【００１０】
各種可逆画像圧縮技術が、ＪＰＥＧ−ＬＳなどの連続階調画像の圧縮に利用可能である。
【００１１】
ＪＰＥＧ−ＬＳは、ＨＰのＬＯＣＯ−Ｉアルゴリズムに基づくものであり、連続階調画像の可逆圧縮に対する規格としてＩＳＯ／ＩＴＵ−Ｔにより選択されたものである。当該アルゴリズムについての記載は、“ｗｗｗ．ｈｐｌ．ｈｐ．ｃｏｍ／ｌｏｃｏ／ＨＰＬ−９８−１９３Ｒ１．ｐｄｆ”から利用可能なＭ．Ｗｅｉｎｂｅｒｇｅｒ、Ｇ．Ｓｅｒｏｕｓｓｉ及びＧ．Ｓａｉｐｉｒｏによる“ＬＯＣＯ−Ｉ：Ａ  Ｌｏｗ  Ｃｏｍｐｌｅｘｉｔｙ，Ｃｏｎｔｅｘｔ−Ｂａｓｅｄ，Ｌｏｓｓｌｅｓｓ  Ｉｍａｇｅ  Ｃｏｍｐｒｅｓｓｉｏｎ  Ａｌｇｏｒｉｔｈｍ”に与えられている。
【００１２】
しかしながら、妥当な圧縮量を提供する圧縮技術は、ＰＤＬインタプリタが同じコンピュータ上で実行されるときに同一の画像を生成するのに要する時間より、かなり多くの画像圧縮時間がかかる。このことは、このような圧縮方法がページ画像を圧縮するのに利用される場合、プリンタのパフォーマンスが許容できないレベルに低下することを意味する。
【００１３】
十分高速な既存の技術は（例えば、シンプルな１次元ランレングス圧縮など）、平均して十分な圧縮を提供しない。
【００１４】
本発明の課題は、汎用プロセッサ上で効率的に実現可能であって、ＰＤＬにより生成される画像の可逆圧縮を、ＰＤＬインタプリタが当該画像を同一のコンピュータ上で生成するのに要する時間よりかなり短い実行時間により可能にする複雑さの小さいソフトウェア手段を提供することである。
【００１５】
これは、さらなるハードウェア及び大きなパフォーマンスペナルティなく、ＰＤＬインタプリタを実行するのに使用されるものと同じコンピュータ上で圧縮が実現されることを可能にするであろう。
【００１６】
本発明のさらなる課題は、最新の可逆画像圧縮アルゴリズムと少なくとも同程度に良好な圧縮ファクタを有する複雑さの小さな圧縮装置を提供することである。
【００１７】
本発明のさらなる課題は、解凍装置のシンプルなハードウェアによる実現を可能にすることである。
【００１８】
上記及び他の課題は、請求項１記載の圧縮方法によって実現される。
【００１９】
本方法によると、画素値が近傍の画素に基づき予測された予測画素値と比較される。多くの場合、画素値は位置に関して急激には変化しないため、実際の画素値と予測画素値との差は通常は小さなものであり、多くはないが、いくつかの先頭ゼロビットを有するであろう。先頭ゼロビットをカットすることによって、データはより少ないビットとなり、効果的な圧縮が導かれる。
【００２０】
さらなる効果的な特徴が、従属項において記載される。それらは、実際の画素値と予測画素値との間の結果として得られる差がかなり小さくなるように、さらなる良好な圧縮を提供するように、画像データを準備するのに利用されるステップを特定する。
【００２１】
当該圧縮は、ＰＤＬにより生成される画像について最適化されるが、それはまた、スキャン画像など他のタイプのデジタル画像にも効果的に適用可能である。
【００２２】
［好適実施例の詳細な説明］
本発明による圧縮の一般的特徴
本発明は、基本的にＰＤＬ（ＰｏｓｔＳｃｒｉｐｔなどのページ記述言語）インタプリタによって生成されるページ画像の圧縮のためのものである。このような画像は、後述される固有の特徴を有している。これらの画像に対して圧縮が最適化されるが、それはまた、スキャン画像などの他のタイプのデジタル画像に適用可能である。後者のケースでは、スキャナノイズが圧縮比に悪影響を与えるが、テストにより、妥当な圧縮比が依然として実現可能であることが明らかにされている。この場合、ノイズ抑制のための前処理は、当該圧縮はもはや可逆ではなくなるが、ランレングス圧縮に対する機会を増大させるため、当該結果を向上させることとなる。
【００２３】
さらに、本発明による圧縮装置は、画像を圧縮するのに要する実行時間が、同じコンピュータ上でＰＤＬインタプリタにより同一画像を生成するのにかかる時間より、平均してはるかに短い時間となるように、ソフトウェアにより実現される。これは、圧縮装置がさらなるハードウェア及び大きなパフォーマンスペナルティなしに、ＰＤＬインタプリタを実行する同一コンピュータ上で実現されることを可能にする。
【００２４】
圧縮フォーマットは、解凍装置のハードウェアによりシンプルな実現を可能にするためシンプルなものとされる。このことは、解凍装置に要するメモリ量を限定することできることを意味する。
【００２５】
また、圧縮装置は、ハードウェアにより実現される解凍装置が固定レートにより解凍された画素を生成することを可能にするよう構成されている。このことは、圧縮されたデータの最大ローカル拡張が限定される必要があることを意味する。
【００２６】
圧縮対象となる画像の画像特性
圧縮対象となる画像は、好ましくは、ＰＤＬインタプリタにより生成されるカラー又は白黒連続階調画像である。特段記載がない場合、「カラー」という用語は、以下の説明においては、リアルカラートーン及び白黒グレイティントの両方に関する。ＰＤＬにより生成される画像は、ある典型的な特性を有している。
・一定のカラーの領域では（多くのページの白色の背景など）、ノイズはない。このことは、一定のカラーの領域を圧縮するため、ランレングス圧縮符号化などのシンプルな機構を利用可能であることを意味する。
・サンプリング画像をデバイス解像度にスケーリングするため、ほとんどのＰＤＬ（ＰｏｓｔＳｃｒｉｐｔなど）は、最近傍補間を利用している。最近傍補間は、デバイス画素に最も近いオリジナル画素のカラーをデバイス画素に与える。例えば、図１に示されるように、６００ｄｐｉの装置上で印刷されるＰｏｓｔＳｃｒｉｐｔジョブにおける３００ｄｐｉ画像については、各オリジナル画素は２×２のデバイス画素にマッピングされる。
【００２７】
カラー画像用の圧縮方法である本発明の第１実施例が、説明される。
第１実施例による圧縮画像フォーマット
圧縮画像フォーマットは、各バイトが２つの４ビットニブルを含むバイトシーケンスから構成される。各バイトの第１ニブルは、当該バイトの上位４ビットであり、各バイトの第２ニブルは、当該バイトの下位４ビットである。ニブルは、第１実施例の圧縮画像フォーマットにおける最小のデータユニットである。ビットでなく最小データユニットしてニブルにより実行する理由は、ニブルは１ビットより汎用プロセッサ上でより効率的に扱うことが可能であるためである。複数のニブルから構成されるすべての数は、最初に最上位のニブル、最後に最下位のニブルにより表現される。
【００２８】
圧縮画像フォーマットは、走査線がページ上で出現する順序により、各情報ブロックが１つの走査線を記述する情報ブロックシーケンスとして構成される。走査線単位による構成（ページ単位の構成に対して）を選択した理由は、それが完全な圧縮ページ画像を格納する必要なく走査線に基づく処理を可能にするためである。
【００２９】
図２は、ある走査線に対する情報ブロックの基本形の一例を示す。各情報ブロックは、コードブロックの直前にあるデータブロックから構成される。
【００３０】
データブロックとコードブロックの双方の最初の４ニブルのそれぞれは、８バイトの倍数によるデータ／コードブロックの長さを規定する長さフィールドを構成する。この長さフィールドは、実際のコード／データニブルに続く。ブロックのエンドにおける未使用のニブル値は、「０」に設定される。データ／コードブロックは、高々（２＾１６−１）＊８＝５２４，２８８バイト長となりうる。長さフィールドは、走査線単位の圧縮データのナビゲーションを可能にする（走査線データの高速スキップ）。
【００３１】
コードブロックは、生成される画素を指定し、走査線の第１画素からスタートし、最後の画素に向かって進捗する解凍装置に対する命令であるコードニブルシーケンスを含む。
【００３２】
コードブロックのいくつかのコードは、付加的データを必要とする。この付加的データは、対応するコードが同一の走査線に対してコードブロックにおいて出現するのと同じ順序によりデータブロックに格納される。
【００３３】
第１実施例において利用される圧縮コード
ＰＤＬにより生成される画像（ノイズのない一定カラーの大きな領域）の性質が与えられると、２次元ランレングス符号化もまた多くのＰＤＬにより生成された画像を圧縮するであろう。しかしながら、サンプリング画像（写真など）を含むページは、一般に多数の異なるカラーを有し、多くの画素が以前に処理された近傍画素とは等しくないカラーを有する。従って、ランレングス符号化もまた良好に機能しない。付加的コードがこのような状況に対して必要となる。本発明は、上記状況の双方において良好に機能する方法を提供する。
【００３４】
まず、本発明による専用コードによる基本的な２次元ランレングス圧縮方法が説明される。
【００３５】
・ＬＥＦＴコード
現在画素がそれの左近傍と同じカラーを有することを示すコード“ＬＥＦＴ”を規定する。当該コードが複数回繰り返されるべきことを示すため、ランレングスを当該コードに追加する。これは、第１次元におけるランレングス符号化である。走査線上の第１ランとしてのコード“ＬＥＦＴ”は、対応する画素が白色を有することを示す。
【００３６】
・ＴＯＰコード
ランレングス符号化を２次元にするため、現在画素が上方画素と同じカラーを有することを示すコード“ＴＯＰ”を規定する。当該コードが複数回繰り返されるべきことを示すため、ランレングスに当該コードを追加する。これは、第２次元におけるランレングス符号化である。第１走査線上のコード“ＴＯＰ”は、対応する画素が白色を有することを示す。
【００３７】
当該コードがデバイス解像度の１／２などのサンプリング画像を含むページの圧縮に大変有効であることに留意されたい。ＰｏｓｔＳｃｒｉｐｔ／ＰＤＦの最近傍補間により、デバイス解像度へのスケーリング後、このような画像に対して、２つ毎の走査線が上方の走査線と同一となる（図１を参照せよ）。このことは、このケースでは、このような画像内の２つ毎の走査線が、ＴＯＰランを用いて圧縮可能であることを意味する。
【００３８】
・ＮＥＷコード
コード“ＴＯＰ”と“ＬＥＦＴ”を利用してすべての画素を符号化することはできないため、圧縮データにおいて指定される新しいカラーの画素を生成するコードを追加する必要がある。コード“ＮＥＷ”は、現在画素がまず上位ニブルによるＣ、Ｍ、Ｙ、Ｋの順序によりデータブロックの未圧縮カラー値として規定されるカラーを有することを示す。４つのカラーチャネルのそれぞれに対して、「０」の値はインクカバレッジがないことに対応し、「２５５」の値はフルインクカバレッジに対応する。
【００３９】
圧縮フォーマットのワーストケースの拡張を低減するため（シンプルなハードウェアにより解凍装置を可能にするため）、当該コードが複数回繰り返されるべきであることを示すため、ランレングスに当該コードを追加する。
【００４０】
・ランレングスの追加
上述したように、“ＬＥＦＴ”、“ＴＯＰ”及び“ＮＥＷ”の各コードは、ランレングスが追加されている。ランレングス値の確率分布は、ほぼ負の指数（ｎｅｇａｔｉｖｅ−ｅｘｐｏｎｅｎｔｉａｌ）タイプである。
【００４１】
ランレングスを追加するシンプルな方法は、ランレングスを指定する付加的ニブルを追加することである。しかしながら、このことは、各コードが２ニブル長（コードに対する第１ニブルとランレングスに対する第２ニブル）となることを意味する。それはまた、例えば、ランレングス１のコード“ＴＯＰ”の直前のランレングス１のコード“ＴＯＰ”がランレングス２のコード“ＴＯＰ”と同じ意味を有するため、コードにかなりの冗長さが存在することを意味する。
【００４２】
これらの問題を回避するため、同一コードの連続した出現を１つのランとして解釈する。コード“ＬＥＦＴ”、“ＴＯＰ”及び“ＮＥＷ”に対する各コード値において、ランレングスに対して“Ｌ”と呼ばれる１ビットを確保する。
【００４３】
複数の連続するコード“ＬＥＦＴ”、“ＴＯＰ”及び“ＮＥＷ”は、２進数を構成するよう各コードのランレングスビットを連結することにより共に解釈される。連続するコードの個数に依存するオフセット値が、実際のランレングス値を構成するよう当該数に加えられる。
【００４４】
この結果、１つのコードニブルによって、長さ１又は２の“ＬＥＦＴ”、“ＴＯＰ”又は“ＮＥＷ”ランを指定することができる。２つのニブルにより、長さ３、４、５又は６などのランを指定することができる。
【００４５】
以下のテーブル１は、連結されたランレングスビットの解釈を示す。
【００４６】
【表１】
0005432450.tif 000002
【００４７】
図３において、“ＬＥＦＴ”、“ＴＯＰ”及び“ＮＥＷ”のコードとそれらのランレングスのシーケンスがどのように解釈されるかの一例が示される。一例として、１６進数の文字列“ＥＤＣＣＤＤＢＡ”を復号化している。
【００４８】
次に、上述した“ＬＥＦＴ”、“ＴＯＰ”及び“ＮＥＷ”に加えて利用可能な非ランレングスコードが説明される。
【００４９】
ページに対してフル解像度のバイナリサンプリング画像の効率的な圧縮を可能にするため、以下において規定されるようなカラー“ＰＲＥＶ”を有する１つの画素を生成するコード“ＰＥＶ”が追加される。
【００５０】
まず各走査線に対して、“ＰＲＥＶ”カラーがＫブラック（Ｃ＝０，Ｍ＝０，Ｙ＝０，Ｋ＝２５５）に設定される。
【００５１】
“ＬＥＦＴ”カラーが異なるカラーに変化する毎に、“ＰＲＥＶ”カラーは“ＬＥＦＴ”カラーの以前の値に設定される。
【００５２】
図４は、第１の５つの画素が黄色を有し、第２の５つの画素がシアンを有し、第３の５つの画素がマゼンタを有する一例となる走査線を示す。このとき、第１画素では、カラー“ＰＲＥＶ”はＫブラックであり、カラー“ＬＥＦＴ”は白色である。第２〜第６画素では、カラー“ＰＲＥＶ”は白色であり、カラー“ＬＥＦＴ”は黄色である。第７〜第１１画素では、カラー“ＰＲＥＶ”は黄色であり、カラー“ＬＥＦＴ”はシアンである。第１２〜第１６画素では、カラー“ＰＲＥＶ”はシアンであり、カラー“ＬＥＦＴ”はマゼンタである。
【００５３】
ある走査線上のカラーが２つのカラー（黒色と白色など）の間で交互とされる場合、コード“ＰＲＥＶ”は、当該走査線に関するすべてのカラー遷移についてカラーを指定するのに利用可能である。当該コードは１つの画素を生成し、これにより、ランレングスは不要となる。
【００５４】
・ＴＯＰＬ及びＴＯＰＲコード
コード“ＴＯＰＬ”は、現在画素がそれの北西方向の近傍と同じカラーを有することを規定する。コード“ＴＯＰＲ”は、現在画素がそれの北東方向の近傍と同じカラーを有することを規定する。これらのコードは１画素を生成し、このため、ランレングスは不要となる。
【００５５】
以下のテーブル２は、ここまで規定したコードを示す。この番号付けは任意であり、コードの最終的な番号付けを反映する。コード１〜７（“０００１”〜“０１１１”）は依然として利用可能である。
【００５６】
【表２】
0005432450.tif 000003
【００５７】
カラー値を圧縮するための付加的コード
ここまで規定されたコードは、大部分のシンプルなページの圧縮を可能にする。しかしながら、サンプリング画像（写真など）を含むページは、それらの以前に処理された近傍画像と異なるカラーを有する多数の画素を含む。従って、それらはコード“ＮＥＷ”を用いて表現され、これにより、圧縮の代わりに拡張が行われる。サンプリング画像の連続するカラー値はしばしば類似しているため、これらのカラー値を圧縮する可能性がある。
【００５８】
図６を参照して、高い相関を有するカラー値の圧縮のための本発明による方法が説明される。
【００５９】
基本的な方針は、以下のステップから構成される。
１）以前の値に基づき当該値を予測する
２）予測値と実際の値との差を決定する
３）通常発生する値（小さな差）に対する短いコードと、通常はあまり発生しない値に対する長いコードを用いてこの差を符号化する
【００６０】
各種可逆画像圧縮アルゴリズム（ＪＰＥＧ可逆、ＪＰＥＧ−ＬＳなど）は、類似した方針を利用する。この差は、ほとんどは予測装置の構成と差分の符号化によるものである。
【００６１】
印刷される各ページは圧縮装置を通過する必要があるため、圧縮時間は小さなものでなければならない。このことは、汎用プロセッサ上で効率的に実現可能な差分のシンプルな符号化及びシンプルな予測装置を利用する必要があるということを意味している。
【００６２】
考慮される画素のグレイ値は、近傍の画素値に関して符号化されるため、現在画素の値がアクセスされるだけでなく（図６のステップＳ１）、以前に処理された所定の近傍画素値もまたアクセスされる（これらの画素値はまた、解凍ステップにおいても利用可能である）。これらの近傍画素値は、予測ステップにおける予測画素値を準備するのに利用される。
【００６３】
・予測ステップ（図６：Ｓ２）
画素Ｘの値を画素Ｘの北、西及び北西方向の以前に復号化された画素の値に基づき予測するための各種方法が、文献において提案されてきた。図５では、ＪＰＥＧ可逆に用いられる予測値が示される。他のアルゴリズムは、より複雑な（非線形の）予測値（ＪＰＥＧ−ＬＳなど）又は画像圧縮中に変更される適応的予測値を利用する。
【００６４】
高速なアルゴリズムを必要とするため、本実施例では、画素Ｘの左の画素のカラー（又はＸが走査線上の第１画素である場合には白色）というシンプルな予測値を利用する。より高度な予測値もまた選ぶことができる。この選択は、一般にはこのような予測値は圧縮ファクタを増大させるが、圧縮装置の実行時間もまた増大させるため、状況に応じて行われるべきである。
【００６５】
・カラー差を決定するステップ
大部分の可逆圧縮アルゴリズムは、グレイスケール画像に対して規定され、その差は、予測値と実際の画素値との間のグレイレベルによる差となる。カラー画像を圧縮するため、当該アルゴリズムは、各カラーチャネルに別々に適用される。このようなアプローチの欠点は、カラーチャネルが一般には強く相関しているため、最適とならないということである。
【００６６】
本発明による符号化方法では、すべてのカラーチャネル値を一緒に利用する。基本的に、ＣＭＹＫ画像の場合、４つのカラー差分を決定し、それらを単一のカラー差分に合成する。Ｎ個のカラーチャネルによる画像の圧縮のためには、Ｎ個のカラーチャネル差分を決定し、これらを単一のカラー差分に合成することに留意されたい。
【００６７】
低いインクカバレッジ値では、Ｋチャネルは多くのＣＭＴＫプリンタに対してしばしば「０」となる。これを最適利用するため、ＣＭＹモードとＣＭＴＫモードのカラー差分を規定する２つのモードを規定した。
【００６８】
ＣＭＹＫモードでは、４つすべてのカラーチャネルに対するカラー差を決定する。
【００６９】
ＣＭＹモードは、Ｋチャネル値が変化しないときに利用可能である。ＣＭＹモードでは、３つのチャネルに対してカラー差を決定する（Ｋは、予測されたＫ値と同じである）。
【００７０】
・相関解除（図６：Ｓ３、Ｓ４）
カラーチャネルの値は一般には相関しているため、オリジナルのチャネル値のカラー差分を決定せず、まずこれらを以下のように変換する。
【００７１】
ＣＭＹＫモードでは、
Ｃ１＝Ｍ
Ｃ２＝（Ｋ−Ｍ＋１２８）ｍｏｄ  ２５６
Ｃ３＝（Ｃ−Ｍ＋１２８）ｍｏｄ  ２５６
Ｃ４＝（Ｙ−Ｍ＋１２８）ｍｏｄ  ２５６
ＣＭＹモードでは、
Ｃ１＝Ｍ
Ｃ２＝（Ｙ−Ｍ＋１２８）ｍｏｄ  ２５６
Ｃ３＝（Ｃ−Ｍ＋１２８）ｍｏｄ  ２５６
この相関解除ステップは、大きなパフォーマンスのペナルティなく圧縮を向上させる。他の変換もまた、カラーチャネルの相関解除に利用可能である。
【００７２】
・差の決定
相関解除ステップＳ３が、予測カラー値Ｃ＊、Ｍ＊、Ｙ＊及びＫ＊に適用され、相関解除された予測値Ｃ１＊、Ｃ２＊、Ｃ３＊及びＣ４＊を提供する。同様に、相関解除ステップＳ４は、圧縮対象となる画素の実際のカラー値Ｃ、Ｍ、Ｙ及びＫに適用され、相関解除された予測値Ｃ１、Ｃ２、Ｃ３及びＣ４を提供する。
【００７３】
その後、差分ΔＣ１、ΔＣ２、ΔＣ３及びΔＣ４が、結果として得られる相関解除されたカラー値の間で決定される。理解されるように、ＣＭＹモードでは、３つの差分ΔＣ１、ΔＣ２、ΔＣ３のみが決定される。
【００７４】
・カラー差を符号化するステップ
相関解除されたカラー値のチャネル差ΔＣ１、ΔＣ２、ΔＣ３（及びΔＣ４）を典型的には小さな単一の合成された値ΔＣ（ＣＭＹモードでは２４ビット、ＣＭＹＫモードでは３２ビット）に符号化することを目標とする。その後、この値は、先頭ゼロニブルを切り捨てることによって、効率的に符号化することができる。
【００７５】
・差分の変換（図６：Ｓ６）
チャネル差分ΔＣ１、ΔＣ２、ΔＣ３及びΔＣ４をそれぞれを、何れか可能なカラー差分を表現可能であって、小さなカラー差に対しては小さな値となる各バイト値ΔＣ１’、ΔＣ２’、ΔＣ３’及びΔＣ４’に変換することにより開始される。
【００７６】
チャネル毎の差分は、正又は負である可能性がある。これらの値を１つのカラー差分に合成するため、当該値をその差分の絶対値が小さいときには小さくなる正の値に変換する。これは、可能性のない差分がスキップされるようにして、差分０，１，−１，２，−２などを０，１，２，３，４，５などの値に変換することによって実行可能である。例えば、相関解除された予測チャネルＣ１＊、Ｃ２＊、Ｃ３＊及びＣ４＊の１つの値が「２」であるとき、「−２」以下の負の差分ΔＣ１、ΔＣ２、ΔＣ３及びΔＣ４と、２５３以上の正の差分は、出現する可能性がないため変換されない（すべてのカラーチャネル値は、０〜２５５の範囲内となる）。
【００７７】
この変換は、以下の式を用いて実行することができる。すなわち、Ｐを相関解除された予測値のカラーチャネルのバイト値とし、Ａを相関解除された実際のカラーチャネルの対応するカラーチャネルのバイト値とする。このとき、以下のＣ言語表現が、上述した変換を実行する。
【００７８】
【表３】
0005432450.tif 000004
【００７９】
実際の圧縮装置のソフトウェアでは、これらの値は、予め計算され、２５６×２５６バイトのルックアップテーブルに格納される。
【００８０】
あるいは、差分０，−１，１，−２，２などを０，１，２，３，４，５などの値に変換する変換もまた利用可能である。実際の文書から収集され、２５６×２５６ルックアップテーブルに格納されている統計量に基づく変換など、他の同様の変換もまた可能である。
【００８１】
それが復号化処理にくると、解凍装置はこの変換を以下のように逆にすることができる。
【００８２】
Ｐを相関解除された予測値のカラーチャネルのバイト値とし、Ｃは変換されたカラー差分とすると、以下のＣ言語関数が、相関解除された実際のカラーチャネル値のカラーチャネル値を決定するのに利用可能である。
【００８３】
【表４】
0005432450.tif 000005
【００８４】
この関数は、当該変換がハードウェアにより実現可能とされる方法を反映している。
【００８５】
カラーチャネルの差（ΔＣ１、ΔＣ２、ΔＣ３及びΔＣ４）に変換を適用することによって、カラー差を規定し、典型的には小さな３つ（ＣＭＹモード）又は４つ（ＣＭＹＫモード）のカラー差バイト値ΔＣ１’、ΔＣ２’、ΔＣ３’（及びΔＣ４’）を取得することができる。
【００８６】
・カラーチャネルの合成（図６：Ｓ７）
次のステップＳ７において、変換された差分ΔＣ１’、ΔＣ２’、ΔＣ３’（及びΔＣ４’）が、典型的には小さな１つの数ΔＣに合成される。これを実行するため、図７Ａ（ＣＭＹＫ）及び７Ｂ（ＣＭＹ）に示されるように、各値のビットがマージされる。
【００８７】
図７Ａに示されるように、ＣＭＹＫモードでは、４つのカラー差分ΔＣ１’、ΔＣ２’、ΔＣ３’及びΔＣ４’のビットを単にインタリーブしている。ＣＭＹモード（図７Ｂ）では、各差分のビットを単にインタリーブしている。その理由は、ΔＣ１’の値は典型的にはその他のチャネルの値より大きいためである。これらのビットの最適な順序付けは、代表的なテスト画像セットに対して実験的に決定された。ＣＭＹＫモードでは、これはまた、インタリーブの代わりとして実行されるかもしれない。
【００８８】
マージの結果は、カラー差を表し、小さなカラー差については小さな値を有する単一の２４又は３２ビット数ΔＣとなる。
【００８９】
本発明の範囲内の他のアプローチは、カラーチャネル数であるＣによりＣ次元ルックアップテーブルを利用することである。ルックアップテーブルは、Ｃ個のカラー差分によりインデックス処理され、テーブルの各エントリは、頻繁に出現するカラー差が小さな値を有し、頻繁には出現しないカラー差がより大きな値を有するような一意的な値を含む。テーブルは、テスト画像から収集される統計量に基づき充填することができる。
【００９０】
・差分の符号化（図６：Ｓ８／Ｓ９）
最後のステップは、ΔＣから上位の「０」を削除し（Ｓ８）、残りの値に対してコードを生成する（Ｓ９）ことによって、数ΔＣを圧縮形式に効率的に符号化することである。符号化ステップＳ９において、１つのコードニブルが生成され、コードブロック（図２）に格納され、関連するデータニブルの整数値が生成され、データブロックに格納される。
【００９１】
１、２、３，４、５又は６つの追加的なデータニブルを用いてカラー差ΔＣを表すのに６つのコードニブル値を利用することによって、カラー差分を符号化し、圧縮をアーカイブすることができる。ＣＭＹＫモードにおいて、カラー差ΔＣが６つのデータニブルを用いて表すことができない場合、オリジナルコード“ＮＥＷ”が、圧縮されていないカラー値を表すのに利用される（カラー値に対して８つのデータニブル、すなわち、各カラーチャネルに対して２つを利用して）。
【００９２】
これら６つの新たなコードは、“ＮＥＷ１”から“ＮＥＷ６”と呼ばれ、カラー差分ΔＣを表すため、１データニブルを有する“ＮＥＷ１”と６データニブルを有する“ＮＥＷ６”によるコード値１から６を有することとなる。
【００９３】
７番目のフリーなコードニブルが、“ＮＥＷ６”と同様の新たなコード“ＮＥＭ６”について使用されるが、それはまたＣＭＹモードとＣＭＹＫモードの間でモード切替を行う。
【００９４】
・新たなコードによって生成される画素数
コード“ＮＥＷ１”から“ＮＥＷ６”及びコード“ＮＥＭ６”のそれぞれは、各コードに１つの画素を生成することが可能である。しかしながら、ページ上の大部分のサンプリング画像は、デバイス解像度より低い解像度を有している。
【００９５】
ＰｏｓｔＳｃｒｉｐｔインタプリタは、最近傍補間を利用して画像をスケールアップする。これにより、同一の値を有する行に複数の画素が生成される（図１を参照されたい）。圧縮装置は、“ＬＥＦＴ”コードを使用してこれを圧縮することが可能であるが、“ＮＥＷ１”から“ＮＥＷ６”及び“ＮＥＭ６”のコードがＮ個の同一画素のランを生成することが可能である場合には、それはより効率的となる。まず各画像に対して、Ｎが非明示的に「１」に設定される。
【００９６】
このことは、Ｎを変更することを可能にするコードを追加する必要があることを意味する。これは頻繁には起こらないため、Ｎを変更するのに短いコードを必要とはしない。
【００９７】
これを可能にするため、上記規定した“ＮＥＷ１”から“ＮＥＷ６”の符号化されたコード差分のいくつかは出現しないという事実を利用する。
【００９８】
・Ｆｉｒｓｔ  ｎｉｂｂｌｅ  ０（ｃｏｄｅ  ＮＥＷｉ＊）：Ｎ→１
決して出現しない引数が、ゼロとなる第１ニブルを有する引数となる（符号化前に当該値から先頭ゼロニブルを切り離しているため）。これらの引数を使用して、ニブルコード値２〜６の意味を以下のように変更する。
【００９９】
引数の第１ニブルがゼロである場合、コード２から６は、コード“ＮＥＷ２＊”から“ＮＥＷ６＊”として解釈される。これらのコードは、それらが常にＮ画素（現在のＮ値）の代わりに１つの画素しか生成しないということを除いて、コード“ＮＥＷ２”から“ＮＥＷ６”と同じ意味を有し、またＮを「１」に設定する。
【０１００】
・Ｃｏｄｅ  ＩＮＣ：Ｎ→Ｎ＋１
決して出現しない他の組み合わせは、ゼロの引数を有するコードニブル１である。なぜなら、このことは、当該画素のカラーがその西方向の近傍と同じであり、コード“ＬＥＦＴ”を用いて当該ケースを符号化することを意味するためである。この組み合わせを用いて、左の画素と同一のカラーを有する１画素を生成し、Ｎを１だけインクリメントする新たなコード“ＩＮＣ”を規定する。
【０１０１】
・コードＮＥＷ
当該カラーが６つのニブルでは表現できない場合、圧縮装置が“ＮＥＷ１＊”から“ＮＥＷ６＊”の１つを用いてＮを１にリセットすることが常に可能であるとは限らない。従って、複数の新たなカラー値（すなわち、Ｌ＞１）によるコード“ＮＥＷ”はまた、Ｎを１に設定することとなる。
【０１０２】
【表５】
0005432450.tif 000006
【０１０３】
本発明による圧縮方法
圧縮される画像フォーマットが規定されたため、本発明による一例となる圧縮装置が当該フォーマットを生成するのに利用可能な方法を説明する。図８が参照される。
【０１０４】
・画素処理順序
一例となる圧縮装置は、画像の第１走査線からスタートし、すべての走査線が処理されるまで続けることによって、走査線毎に画像を処理する（ステップＳ２６〜Ｓ２９）。各走査線に対して、圧縮装置は、走査線上の最左画素からスタートし、走査線上のすべての画素が処理されるまで、すべての画素を処理する。新たな走査線のスタートにより、“ＰＲＥＶ”及び“ＬＥＦＴ”画素が、初期化ステップＳ１１において「白色」に設定される。
【０１０５】
・各画素に対するステップ
圧縮装置は、以下の一定の順序により画素を圧縮するため異なるコードを適用しようとすることによって、すべての次の画素を圧縮しようとする。
１）当該画素がＴＯＰカラーと比較される（Ｓ１２）。これは、北方向の近傍画素のカラーであり、又は現在画素が第１走査線上にある場合、白色となる。一致が検出されると、圧縮装置は、１以上のＴＯＰコードを生成することによってＴＯＰランを生成し、ＴＯＰランにより符号化可能な以下のすべての画素を当該ランに加えることによって、当該ランの長さを最大化する（Ｓ１３）。その後、当該処理は、ステップ１において次の未圧縮画素から再スタートする（Ｓ２６、Ｓ２７）。
２）上記ステップが当該画素の符号化を許可しない場合、当該画素は“ＬＥＦＴ”カラーと比較される（Ｓ１４）。これは、西方向の近傍画素のカラーであるか、又は現在画素が走査線のスタートである場合、白色となる。一致が検出されると、圧縮装置は、１以上の“ＬＥＦＴ”コードを生成することにより“ＬＥＦＴ”ランを生成し、“ＬＥＦＴ”ランにより符号化可能な以下のすべての画素を当該ランに加えることによって、当該ランの長さを最大化する（Ｓ１５）。その後、当該処理は、ステップ１において次の未圧縮画素から再スタートする（Ｓ２６、Ｓ２７）。
３）上記ステップが当該画素の符号化を許可しない場合、当該画素は“ＰＲＥＶ”カラーと比較される（Ｓ１６）。“ＰＲＥＶ”カラーの値は、前述されている。一致が検出されると、圧縮装置は“ＰＲＥＶ”コードを生成する（Ｓ１７）。その後、当該処理は、ステップ１において次の未圧縮画素から再スタートする（Ｓ２６、Ｓ２７）。
４）上記ステップが、当該画素の符号化を許可しない場合、当該画素は“ＴＯＰＬ”カラーと比較される（Ｓ１８）。これは、北西方向の近傍画素のカラーであるか、又はそれが存在しない場合には、白色となる。一致が検出されると、圧縮装置は“ＴＯＰＬ”コードを生成する（Ｓ１９）。その後、当該処理は、ステップ１において次の未圧縮画素から再スタートする（Ｓ２６、Ｓ２７）。
５）上記ステップが、当該画素の符号化を許可しない場合、当該画素は“ＴＯＰＲ”カラーと比較される（Ｓ２０）。これは、北東方向の近傍画素のカラーであるか、又はそれが存在しない場合には、白色となる。一致が検出されると、圧縮装置は“ＴＯＰＲ”コードを生成する（Ｓ２１）。その後、当該処理は、ステップ１において次の未圧縮画素から再スタートする（Ｓ２６、Ｓ２７）。
６）上記ステップが、当該画素の符号化を許可しない場合、「カラー値を圧縮するための付加的コード」のセクションにおいて上述されたカラー値を圧縮する方法が適用される（Ｓ２２）。Ｋチャネル値が予測されるＫチャネル値と同じである場合、ＣＭＹモードがカラーを圧縮するのに利用され、そうでない場合、ＣＭＹＫモードが利用される。その後、それが許容可能な“ＮＥＷｉ”コード、すなわち、モード変更のない６以下のニブルのカラー差分を生成する。そうである場合、“ＮＥＷ１”から“ＮＥＷ６”の適切な１つが、カラー差ニブルと共に生成される（Ｓ２４）。そうでない場合、コード“ＮＥＷ”が生成され、新たなカラー値がデータブロックに未圧縮で書き込まれる（Ｓ２５）。
【０１０６】
前のモードが画素を圧縮するのに使用されるモードと異なる場合であって、カラー差分の長さが６以下のニブルである場合には、コード“ＮＥＭ６”はカラー差ニブルと共に生成される。カラー差分が６より長いニブルである場合、コード“ＮＥＷ”が生成され、新たなカラー値がデータブロックに未圧縮により書き込まれる。これらのステップは、図８には明示的には示されていないが、ステップＳ２４とＳ２５の一部を構成すると考えられる。
【０１０７】
Ｎの値が当該カラーを有する連続する画素の個数より大きく、カラー差分が５以下のニブル長を有する場合、コード“ＮＥＷ２＊”から“ＮＥＷ６＊”の適切な１つが、ヌルニブルにより先行されるカラー差ニブルと共に生成される。これが可能でない場合、現在画素と次の画素に対してコード“ＮＥＷ”が生成され、現在画素と次の画素のカラー値がデータブロックに未圧縮により書き込まれる。これらのステップは、図８には明示的には示されていないが、ステップＳ２４とＳ２５の一部を構成すると考えられる。
【０１０８】
その後、当該処理は、ステップＳ１１において次の未圧縮画素から再スタートする（Ｓ２６、Ｓ２７）。
【０１０９】
少なくとも２であるランレングスを有するコード“ＮＥＷ”は、Ｎを１にリセットさせる。
【０１１０】
圧縮装置が必要に応じてＮをインクリメントするため、“ＬＥＦＴ”ランが１から６の範囲でコードに従うときは常に（新たなカラーを示す）、圧縮装置は、それの状態を格納する（３２画素未満により状態がすでに格納されていない場合）。この観点から、走査線上の同一カラーを有する最小数Ｍの連続する画素を追跡する。
【０１１１】
圧縮装置が、Ｎのインクリメントがより良好な圧縮を可能にすると判断すると、それの状態を以前に格納した状態に復元し（これにより、当該状態の格納後にそれが生成した出力を破棄する）、１以上の“ＩＮＣ”コードを生成することによって、ＮがＭの値にインクリメントされる。その後、圧縮が格納されている状態により示されるポイントから再スタートされる。
【０１１２】
本発明の範囲内の可能性のある簡単化の例
圧縮ステップ３、４及び５は、圧縮の大きなロスなく異なる順序により実行可能である。
【０１１３】
圧縮ステップ３、４及び５は、大部分の画像に対する圧縮の大きなロスなく圧縮装置から取り除くことが可能である。このとき、対応するコード“ＰＲＥＶ”、“ＴＯＰＬ”及び“ＴＯＰＲ”を圧縮されたフォーマットから削除することができる。
【０１１４】
圧縮ステップ１及び２は、圧縮における大きな変更なく交換することができる。
【０１１５】
ＣＭＹＫ及びＣＭＹモードを有する代わりに、ＣＭＹＫモードのみが、ある程度の圧縮ロスはあるが機能する。１つのモードでは、コード“ＮＥＭ６”が圧縮されたフォーマットから削除することが可能である。
【０１１６】
ある程度の圧縮ロスはあるいが、Ｎを１に固定することが可能である。このとき、コード“ＩＮＣ”及び“ＮＥＷ２＊”から“ＮＥＷ５＊”は、圧縮されたフォーマットから削除することができる。
【０１１７】
コード“ＮＥＷ”は、圧縮されたフォーマットの最大拡張を低減するためランレングスを有する。最大拡張に対する要求がない場合、ランレングスはコード“ＮＥＷ”について不要となるであろう。
【０１１８】
本発明による解凍方法
連続する各走査線に対して、画像の第１走査線からスタートし、最後の走査線に進捗して、解凍装置はコードブロックからのコードニブルを処理し、データブロックから対応するデータニブルを取得する。それは、最左画素からスタートし、解凍されたカラー値を当該走査線上の連続画素に割り当てる。
【０１１９】
各画素には、ちょうど１回だけカラーが割り当てられる。
・解凍装置がコード“ＰＲＥＶ”に遭遇すると、それは、“ＰＲＥＶ”カラー（それが追跡する）を現在画素に割り当てる。“ＰＲＥＶ”カラーの値は上述された。
・解凍装置が１（１６進数では「０００１」）〜６（１６進数では「０１１０」）のコード値の１つに遭遇すると、それはデータブロックの次のデータニブルの値をチェックする。
【０１２０】
当該データニブルが非ゼロである場合、当該コードはコード“ＮＥＷ１”から“ＮＥＷ６”の１つとして解釈される。この場合、解凍装置は、圧縮装置によって適用される変換ステップを逆転することによって、現在のモードに従ってデータブロックに格納されている差分と共に予測値のカラー値から次の画素のカラー値を再構成する。その後、このカラー値は、現在画素からスタートするＮ個の連続する画素に割り当てられる。
【０１２１】
予測値のカラー値は、走査線上の以前の解凍された画素のカラーであるか、又は現在画素が走査線上の最初のものである場合には白色となる。
【０１２２】
データニブルがゼロであって、コード値が１より大きい場合、当該コードはコード“ＮＥＷ２＊”から“ＮＥＷ６＊”の１つとして解釈される。この場合、解凍装置は、圧縮装置によって適用される変換ステップを逆転することによって、現在のモードに従ってデータブロックに格納されている差分と共に予測値のカラー値から当該カラー値を再構成する。その後、このカラー値が現在画素に割り当てられる。さらに、解凍装置はＮを１に設定する。
【０１２３】
データニブルがゼロであって、コード値が１である場合、当該コードは、コード“ＩＮＣ”と解釈される。この場合、解凍装置は、以前に解凍された画素のカラーを現在画素に割り当てる（又は、現在画素が走査線上の最初のものである場合には、白色とされる）。さらに、それはＮを１だけインクリメントする。
・解凍装置がコード“ＮＥＭ６”（コード値「０１１１」）に遭遇すると、それは現在モードを切り替え、圧縮装置によって適用される変換ステップを逆転することによって、現在モードに従ってデータブロックに格納されている差分と共に予測値のカラー値から当該カラー値を再構成する。その後、このカラー値は、現在画素からスタートするＮ個の連続する画素に割り当てられる。
・解凍装置がコード“ＴＯＰＬ”（コード値「１０００」）に遭遇すると、それは、以前に解凍された北西方向の近傍画素からのカラーをコピーし、それを現在画素に割り当てる。このような近傍画素が存在しない場合、それは現在画素に白色を割り当てる。
・解凍装置がコード“ＴＯＰＲ”（コード値「１００１」）に遭遇すると、それは、以前に解凍された北東方向の近傍画素からのカラーをコピーし、それを現在画素に割り当てる。そのような近傍画素が存在しない場合、現在画素に白色を割り当てる。
・解凍装置がコード“ＴＯＰ”（コード値「１０１Ｌ」）に遭遇すると、それは、コードブロックから直後のすべての“ＴＯＰ”コードを収集し、上述した方法を利用してランレングスＲを決定する。その後、現在画素からスタートするＲ個の画素のそれぞれに、それの北方向の近傍画素からのカラーが割り当てられる。解凍装置が第１走査線に対して解凍を実行している場合、Ｒ個のすべての画素に白色が割り当てられる。
・解凍装置がコード“ＬＥＦＴ”（コード値「１１０Ｌ」）に遭遇すると、それは、コードブロックから直後のすべての“ＬＥＦＴ”コードを収集し、上述した方法を利用してランレングスＲを決定する。その後、現在画素からスタートするＲ個の画素には、それの左方向の近傍画素からのカラーが割り当てられる。現在画素が走査線上の最初の画素である場合、Ｒ個のすべての画素には白色が割り当てられる。
・解凍装置がコード“ＮＥＷ”（コード値「１１１Ｌ」）に遭遇すると、それは、コードブロックから直後のすべての“ＮＥＷ”コードを収集し、上述した方法を利用してランレングスを決定する。その後、解凍装置は、データブロックからＲ個の未圧縮カラー値を取得し、現在画素からスタートして以下のＲ個の画素にそれらを割り当てる。ランレングスＲが１より大きい場合、解凍装置はＮを１に設定する。
【０１２４】
圧縮方法の評価
圧縮方法のパフォーマンスを評価するため、圧縮装置を用いて画像のある領域を圧縮し、その結果（圧縮時間及び圧縮係数）をＪＰＥＧ−ＬＳにより同じ画像を圧縮した結果と比較した。また、この圧縮時間をＡｄｏｂｅ  ＰｏｓｔＳｃｒｉｐｔインタプリタがページを生成するのに要した時間と比較した。
【０１２５】
すべてのテストは、２．４ＧＨｚペンティアム（登録商標）４上で実行された。ＰｏｓｔＳｃｒｉｐｔテストファイルは、Ａｄｏｂｅ  ＰｏｓｔＳｃｒｉｐｔインタプリタ上で実行され、結果として得られた６００ｄｐｉ連続階調ＣＭＹＫビットマップが圧縮された。ビットマップのサイズはＡ４（４，９５８×７，０４０画素）であり、未圧縮の１３６，３４５Ｋｂｙｔｅのサイズが生成された。ＰｏｓｔＳｃｒｉｐｔインタプリタでは、デバイスＲＧＢの補間はｓＲＧＢに設定され、デバイスＣＭＹＫの補間はＥｕｒｏｓｃａｌｅに設定された。Ｅｕｒｏｓｃａｌｅ出力プロファイルが利用された。
【０１２６】
使用されたＰｏｓｔＳｃｒｉｐｔテストファイルは、複雑であるが、現実的なページ記述を含む。多くの高精細な詳細（多数の極めて小さな画像から構成されるページサイズ画像を含むフォトモザイクページ）を有する一例となる複雑なページを含む特別に構成されたＰｏｓｔＳｃｒｉｐｔファイル（ｃｈｒｉｓＡ４．ｐｓ）が含まれた。これは、あまり現実的なページではないが、圧縮性の境界を調べるのに利用される。
【０１２７】
可逆画像圧縮における最新のものと新しい圧縮装置の圧縮パフォーマンスを比較するため、当該結果をＪＰＥＧ−ＬＳにより生成されたものと比較した。
【０１２８】
ＪＰＥＧ−ＬＳは、ＨＰのＬＯＣＯ−Ｉアルゴリズムに基づくものであり、連続階調画像の可逆圧縮に対する規格としてＩＳＯ／ＩＴＵ−Ｔにより選択されたものである。このアルゴリズムの説明は、“ｗｗｗ．ｈｐｌ．ｈｐ．ｃｏｍ／ｌｏｃｏ／ＨＰＬ−９８−１９３Ｒ１．ｐｄｆ”から利用可能なＭ．Ｗｅｉｎｂｅｒｇｅｒ、Ｇ．Ｓｅｒｏｕｓｓｉ及びＧ．Ｓａｉｐｉｒｏによる“ＬＯＣＯ−Ｉ：Ａ  Ｌｏｗ  Ｃｏｍｐｌｅｘｉｔｙ，Ｃｏｎｔｅｘｔ−Ｂａｓｅｄ，Ｌｏｓｓｌｅｓｓ  Ｉｍａｇｅ  Ｃｏｍｐｒｅｓｓｉｏｎ  Ａｌｇｏｒｉｔｈｍ”に与えられている。
【０１２９】
他の可逆連続階調画像圧縮アルゴリズム（可逆ＪＰＥＧ、ＣＡＬＩＣ、ＦＥＬＩＣＳ）と比較して、ＪＰＥＧ−ＬＳは比較的シンプルかつ高速であり、より良好な圧縮を生成する。ＪＰＥＧ−ＬＳの圧縮パフォーマンスは、ＪＰＥＧ２０００可逆に対して若干良好である（“ｗｗｗ．ｊｐｅｇ．ｏｒｇ／ｐｕｂｌｉｃ／ｗｇ１ｎ１８１５．ｐｄｆ”から利用可能なＤｉｅｇｏ  Ｓａｎｔａ  Ｃｒｕｚ、Ｔｏｕｒａｄｊ  Ｅｂｒａｈｉｍｉによる“Ａｎ  ａｎａｌｉｔｉｃａｌ  ｓｔｕｄｙ  ｏｆ  ＪＰＥＧ２０００  ｆｕｎｃｔｉｏｎａｌｉｔｉｅｓ”を参照されたい）。
【０１３０】
ＪＰＥＧ−ＬＳをテストするため、ＡｄｏｂｅフォトショップのＪＰＥＧ−ＬＳプラグインを選択した。それは、ページに要求される圧縮時間を報告する効率的な実現形態である。それは、“ｈｔｔｐ：／／ｗｗｗ．ｈｐｌ．ｈｐ．ｃｏｍ／ｌｏｃｏ”から利用可能である。ＪＰＥＧ−ＬＳは、ＰＤＬにより生成された連続階調画像の圧縮に特化してはいないが、汎用的な可逆連続階調画像圧縮技術として構成された。
【０１３１】
以下のテーブル４に、詳細な測定結果が提示される。
【０１３２】
【表６】
0005432450.tif 000007
【０１３３】
第１カラムは、テストページの名称をリストしている。この名称は、当該文献が格納される際にたまたまその名称となったという以外の特別な意味はない。第２カラムは、ページのＰｏｓｔＳｃｒｉｐｔ記述を圧縮対象となる画像に変換するため、最新のＡｄｏｂｅ  ＰｏｓｔＳｃｒｉｐｔインタプリタの実行時間を示す。第３カラムは、新規な圧縮方法の実行時間を示し、第４カラムは、結果として得られる圧縮データのデータ量を示す。第５カラムは、ＪＰＥＧ−ＬＳ圧縮装置の実行時間を示し、第６カラムは、結果として得られる圧縮データのデータ量を示す。テーブルの最後のラインは、すべてのテスト画像に対する平均を示す。
【０１３４】
新規な方法に対する平均圧縮時間は０．６秒であり、これは、ＰｏｓｔＳｃｒｉｐｔインタプリタがページを生成するための実行時間の約２０％である。ＪＰＥＧ−ＬＳの平均圧縮時間は８．１２秒であり、これは、新規な圧縮方法より約１３．５倍低速である。これらの結果から、ＪＰＥＧ−ＬＳが当方の要求を実現しないということが明らかである。なぜなら、ＰＤＬ解釈時間と比較してあまりに遅すぎるためである。
【０１３５】
新規な圧縮により生成される圧縮データのデータ量は、平均してＪＰＥＧ−ＬＳにより生成されるデータ量より少ない。デバイス解像度と等しい解像度によるサンプリング画像を含むいくつかの極めて複雑なページ（“ｃｈｒｉｓＡ４．ｐｓ”及び“ｍｏｄｅｌ−ｐｕｚｚｌｅ．ｐｓ”）については、ＪＰＥＧ−ＬＳは新規な方法より少ない圧縮データを生成するが、そのようなページは実際的にはまれである。
【０１３６】
ハードウェア実現形態
圧縮されたフォーマットは、ハードウェアによる解凍装置のシンプルな実現を可能にする複数の性質を有する。
【０１３７】
長さ３の“ＮＥＷ”コードの直後に“ＮＥＷ６”又は“ＮＥＭ６”コードが続くとき、当該フォーマットの最大ローカル拡張が発生する。コード“ＮＥＷ”は、２つのコードニブル＋３＊８のデータニブルをとる。コード“ＮＥＷ６”又は“ＮＥＭ６”は、１つのコードニブル＋６つのデータニブルをとる。このことは、この場合、４つのＣＭＹＫ画素値を生成するため、合計で３３のニブルが必要となり、これにより、ワーストケースローカル拡張は１／３２＝３．１％となることを意味する。このことは、未圧縮データが処理に要するスピードが、未圧縮画素が生成されるレートより高々３．１％だけ高いことを意味する。
【０１３８】
圧縮されたフォーマットは、各コードが少なくとも１つの画素を生成するように構成されている。
【０１３９】
コードの連続する出現が全体として解釈されることが要求されるコード“ＬＥＦＴ”、“ＴＯＰ”及び“ＮＥＷ”に対して、特殊なケースのみが行われる。これらのコードの１つに対する第１コードが解釈されたとき、連続するカラー値のソースは、コード“ＬＥＦＴ”については、すべてが左のカラーと同じとされ、コード“ＴＯＰ”については、すべてがターゲットとなる画素の上方の画素からとされ、コード“ＮＥＷ”については、すべてが圧縮されたデータストリームからとされるためクリアである。
【０１４０】
この点で、カラーの新たな画素への移転をスタートすることができ、コード解釈と並行して進めることができる。コードインタプリタは、異なるコードに遭遇するまで連続するコードを合成し続けることができる。その後、それは、いくつかの画素が生成される必要があるか知ることとなる。これらのコードにより生成される画素数は、当該画素数を符号化するのに必要とされるニブルの個数より速く増大するため、コードインタプリタは、当該数の新たなコード値が転送される前に画素数を決定することを常に完了しているであろう。従って、コードインタプリタは、正確な数の画素が生成された後、カラー値の新たな画素への転送を停止することができる。
【０１４１】
連続白黒（グレイ値）画像のための圧縮方法である本発明の第２実施例が説明される。
【０１４２】
第２実施例において用いられる機構は、上述した第１実施例のものと同じである。すなわち、
・圧縮はライン単位に実行される。各ラインに対して、圧縮されたデータが、「データブロック」と「コードブロック」の２つの部分により構成される。
・各画素又は各同一画素セットに対して、コード又はコード系列が、コードブロックにおいて生成される。いくつかのコード（“ＮＥＷｉ”コード）に対しては、データブロックに格納される付加的データが必要となる。各走査線のエンドにおいて、現在のラインに対する圧縮されたデータを生成するため、データブロックとコードブロックが合成される。
【０１４３】
第２実施例は、縮小されたコードセットを利用し、ビット指向なものである（ニブル指向の第１実施例と対照的に）。より詳細には、コードは常に３ビット長であるが、データブロックの関連する部分は（ビット数）可変長である。第２実施例において利用されるコードは、以下のように定義される。
・コード“ＴＯＰ”、“ＬＥＦＴ”及び“ＰＲＥＶ”は、第１実施例と同じ意味を有する。すなわち、それらはそれぞれ、上方、左方又は前のカラーに対する画素と同一の画素ランを符号化する。
・コード“ＮＥＷ”は、新たなカラーを符号化する。すなわち、このコードは、ランレングス規定機構が第１実施例と異なるが、後述されるように、同一画素のランを規定することが可能である。
・コード“ＮＥＷ１”から“ＮＥＷ４”並びに“ＮＥＷ３＊”及び“ＮＥＷ４＊”は、それぞれ１〜４ビット又は２若しくは３ビットに適した量だけ予測値（本例では、左方の画素）のものと異なるグレイ値を有する画素又は同一画素のランを符号化する（正の整数に変換されると）。
【０１４４】
コードワードは３ビット長であり、以下のテーブル５にリストされた値の何れかをとりうる。
【０１４５】
【表７】
0005432450.tif 000008
【０１４６】
コードの定義は、以下の通りである。
・“ＬＥＦＴ”及び“ＴＯＰ”コード：関連付けされたデータパートはない。いくつかの同一のコードが一緒に解釈され、第１実施例とほぼ同様に、対応する個数の画素を符号化するため、“Ｌ”ビットが利用される。
・“ＰＲＥＶ”コード：関連付けされたデータパートはない。それは、現時点での前のカラーによる画素を生成する。
・“ＮＥＷ１／ＮＥＷ２／ＮＥＷ３／ＮＥＷ４”コード：符号化対象となる現在画素が“ＬＥＦＴ”、“ＴＯＰ”又は“ＰＲＥＶ”コードにより表現することができないとき、現在画素と左の画素のカラー値の差が計算され、その後、正の整数に変換される（第１実施例と同じ機構によって）。この差分（８ビット整数）が先頭ゼロビットの切り捨て後に１、２、３又は４ビットに適合することが可能である場合、対応する“ＮＥＷｉ”コードが選択される。さらに、当該差分に対応し、そのためそれぞれ１、２、３又は４ビット長である関連付けされたデータパートが構成される。コード“ＮＥＷ１”から“ＮＥＷ４”は、その長さ（Ｎにより参照される）が文書の処理中に維持される画素のランを生成する。
・“ＩＮＣ／ＮＥＷ３＊／ＮＥＷ４＊”コード：現在のランレングスの値Ｎは当初は１に設定され、左方のカラーの画素を生成する“ＩＮＣ”コードにより１だけ増加される。この値が大きくなりすぎると（すなわち、Ｎ個の画素のセットが入力データに適合しないとき）、Ｎは１にリセットすることができる。このため、“ＮＥＷｉ＊”コードがオリジナルフォーマットと同様に利用される。デコーダは、“ＮＥＷｉ＊”コードが０から始まる関連付けされたデータパートをＭＳＢ（最上位ビット）として有するため、これらのコードを認識する。
・“ＮＥＷ”コード：新たなカラー値が前のコードの１つにより符号化できないとき、“ＮＥＷ”コードが利用される。“ＮＥＷ”コードのデータパートは、新たなグレイ位置（８ビット）を有するが、後述されるように、ランレングス情報を含むかもしれない。最終的に、第１実施例と同様に、少なくとも２つの“ＮＥＷ”コードの連続したものがＮの値を１にリセットする。
【０１４７】
これらのコードは、それらのデータパートにより区別される。
【０１４８】
・コード「０００」：“ＮＥＷ１／ＰＲＥＶ”
当該コードに係るデータは、１ビット長である。それは、現在画素とそれの左方画素との差分が１ビットのみにより表現可能であることを意味する。データビットが０に設定されるケースは、それが上記２つの画素の間に差がないことを意味するため、不可能である。従って、この可能性は、“ＰＲＥＶ”コードを符号化するのに利用される。
【０１４９】
・コード「００１」：“ＮＥＷ２／ＮＥＷ”
当該コードに係るデータは２ビット長である。それは、現在画素とそれの左方画素との差分が２ビットのみにより表現可能であることを意味する。データパートのＭＳＢ（最上位ビット）が０となるケースが、“ＮＥＷ”コードに対して利用される。このケースでは、２ビット長のデータパートのＬＳＢ（最下位ビット）は、“ＬＥＦＴ”及び“ＴＯＰ”コードのＬビットとほぼ同様に、いくつかの“ＮＥＷ”コードをグループ化するのに利用されるランレングスビットとなる（これらのコードでは、Ｌビットがコード自体にあるが）。グループ化されたいくつかの“ＮＥＷ”コードの場合、すべての“ＮＥＷ”コードの２ビットデータパートがグループ化され、データブロックにおかれ、その後、すべての“ＮＥＷ”カラー値（それぞれ８ビット）がデータブロックにおかれる。
【０１５０】
しかしながら、“ＮＥＷ”コードに続くコード“ＮＥＷ２”は、“ＮＥＷ”カラー値に応じてデコーダにより誤って解釈される可能性があることに留意されたい。従って、コード“ＮＥＷ２”が何れかの“ＮＥＷ”コードに続くことを回避する。
【０１５１】
・コード「０１０」：“ＮＥＷ３／ＮＥＷ３＊”
当該コードの関連付けされたデータパートは３ビット長である。このコードは、現在画素とそれの左方画素との差分が３ビットにより表現可能であるときに利用される。コード“ＮＥＷ３＊”は、それのＭＳＢが０に設定されているデータパートを有する“ＮＥＷ３”コードである。それは、Ｎの値を１にリセットするのに利用され、追加的な２データビットにより差分を符号化する。本実施例では、“ＮＥＷ２＊”コードは利用可能でないため、“ＮＥＷ３＊”がまた、１ビットにより表現可能な差分に対して使用される。
【０１５２】
・コード「０１１」：“ＮＥＷ４／ＮＥＷ４＊／ＩＮＣ”
当該コードの関連付けされたデータパートは４ビット長である。当該コードは、現在画素とそれの左方画素の差分が４ビット長により表現可能であるときに使用される。“ＮＥＷ４＊”コードは、それのＭＳＢが０に設定されているデータパートを有する“ＮＥＷ４”コードである。それは、Ｎの値を１にリセットするのに使用され、追加的な３データビットにより差分を符号化する。“ＩＮＣ”コードは、０に等しいデータパートを有する“ＮＥＷ４”コードである（すべて４ビット）。それは、Ｎの値を１だけインクリメントし、左方画素と同じカラーを有する画素を生成するのに使用される。
【０１５３】
・コード「１０Ｌ」：“ＬＥＦＴ”
当該コードに関連付けされたデータはない。それは、符号化する画素がそれの左方画素と同じカラーを有するときに使用される。「Ｌ」ビットは、いくつかの“ＬＥＦＴ”コードをグループ化するのに利用されるランレングスビットである（第１実施例と同じ機構）。
【０１５４】
・コード「１１Ｌ」：“ＴＯＰ”
当該コードに関連付けされたデータはない。それは、符号化する画素が上方の画素と同じカラーを有するときに使用される。「Ｌ」ビットは、いくつかの“ＴＯＰ”コードをグループ化するのに使用されるランレングスビットである（第１実施例と同じ機構）。
【０１５５】
図９は、本発明の第２実施例による一般的な符号処理のフローチャートを示す。当該処理は、より少ないコードが使用されるため、ステップの一部は欠落しているが、図８を参照して説明された第１実施例と大部分は同様である。従って、上述したコードの記載に基づき容易に理解されるため、図９の完全な記載はここでは省略される。
【０１５６】
当該処理の各ステップは、図８の対応するステップに従って番号付けされた。図９の参照番号には、アクセントが設けられた。
【０１５７】
図１０は、図９における参照番号Ｓ２２’により参照される第２実施例による基本的な“ＮＥＷｉ”コード構成処理を記載する。当該処理は１つのコードチャネルのみに対して動作するため、第１実施例のいくつかのステップは余分なものとなる。残されたステップは、図６と同様の対応する参照番号にアクセントが設けられて番号付けされ、以下にリストされている。各ステップの詳細な説明のため、図６と第２実施例のコードの記載が参照される。
【０１５８】
対象となる画素の実際の値がステップＳ１’において評価され、ステップＳ２’において、予測値が近傍画素から決定される（例えば、左方画素など）。その後、ステップＳ５’において、実際の値と予測値の差分が決定され、ステップＳ６’において、当該値は小さな差分に対しては小さく、大きな差分に対しては大きな正の整数に変換される。実際の変換は、一般的又は専用の変換データセットにより以前に充填されているかもしれないルックアップテーブル（ＬＵＴ）の使用に基づくかもしれない。
【０１５９】
その後、結果として得られる差分は、先頭ゼロビットを切り捨てることにより切り捨てられ（Ｓ８’）、上述されたように、残りの非ゼロビットがステップＳ９’において、“ＮＥＷｉ”コードにおいて符号化される。
【０１６０】
２つの実施例が詳細に上述された本発明は、（好ましくは）ＰＤＬにより生成される連続階調ページ画像データのための可逆圧縮解凍方法のための新規な圧縮方法及びフォーマットを提供する。
【０１６１】
ＪＰＥＧ−ＬＳなどの最新の可逆画像圧縮アルゴリズムと比較して、この新規な方法は、代表的なテスト文書セットに対して測定されるように、平均的により高速化される。これは、追加的なハードウェア及び大きなパフォーマンスペナルティなしに、ＰＤＬインタプリタを実行するのに利用されるのと同一のコンピュータ上で圧縮を実現可能にする。
【０１６２】
本発明が説明されたが、同じものが多数の方法により変更可能であるということは明らかであろう。当業者に明らかであるこのような変更及び改良は、以下の請求項の範囲内に含まれるべきである。
【０１６３】
さらに、上記説明は、各カラーチャネルに対して８ビットのＣＭＹＫカラー画像と、８ビットの連続階調白黒画像の圧縮に着目している。しかしながら、当業者は、それがＲＧＢ連続階調カラー画像、各カラー値に対して４より多くのチャネルを有する連続階調カラー画像、８ビット以外の精度のカラーチャネルを有する画像、又は他の連続階調シングルカラー（グレイスケール）画像など、他の多くの連続階調画像を圧縮するよう改良可能であると理解するであろう。
【０１６４】
また、第１実施例及び第２実施例に記載されるような実際のコード形式は、他の同様のコードにより置換可能であり、第１実施例のコードはまた、第２実施例に利用可能であり、逆も可能である。
【図面の簡単な説明】
【０１６５】
【図１】図１は、典型的なＰＤＬインタプリタによって２倍の解像度にスケーリングされた画像画素を示す。
【図２】図２は、本発明により生成されるような走査線に対するデータブロックとコードブロックの構成を示す。
【図３】図３は、本発明によるランレングスコードのランレングスフィールドの解釈の一例を示す。
【図４】図４は、画素の走査線におけるＰＲＥＶ及びＬＥＦＴカラーの説明を示す。
【図５】図５は、予測値の具体例を示す。
【図６】図６は、本発明の第１実施例によるカラー値に対する圧縮方法を記載するフローチャートである。
【図７】図７Ａ及びＢは、第１実施例によるカラーチャネルデータの合成の概略図である。
【図８】図８は、本発明の第１実施例による完全な圧縮方法を記載するフローチャートである。
【図９】図９は、本発明の第２実施例による完全な圧縮方法を記載するフローチャートである。
【図１０】図１０は、本発明の第２実施例によるグレイ値に対する圧縮方法を記載するフローチャートである。
【図１１】図１１は、印刷コントローラの概略図である。
【図１２】図１２は、プリンタの概略図である。
【図１】
0005432450.tif 000009
【図２】
0005432450.tif 000010
【図３】
0005432450.tif 000011
【図４】
0005432450.tif 000012
【図５】
0005432450.tif 000013
【図６】
0005432450.tif 000014
【図７】
0005432450.tif 000015
【図８】
0005432450.tif 000016
【図９】
0005432450.tif 000017
【図１０】
0005432450.tif 000018
【図１１】
0005432450.tif 000019
【図１２】
0005432450.tif 000020