(57)【特許請求の範囲】
【請求項１】
画像を主走査方向に走査し、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離する第１の領域分離ステップと，
前記第１の領域分離ステップで得られた少なくとも１行は黒画素を含むＬ（Ｌは２以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に走査し、１列単位に黒画素を含む領域と黒画素を含まない領域に分離する第２の領域分離ステップと，
前記第２の領域分離ステップによる分離結果に基づき，前記論理行中に離散的に存在する前記黒画素を含む列の列数が一致し、且つ前記列数の領域内の画素パターンが一致する同一パターンを、複数の前記論理行を対象として、分離する同一パターン分離ステップと、
前記第１の領域分離ステップ及び第２の領域分離ステップと、前記同一パターン分離ステップで得られた各領域を要素として符号化を行う符号化ステップとを有し、
前記符号化ステップは，
前記同一パターンの分離ステップで分離した２個目以降の同一パターンを、１個目の同一パターンを参照する参照情報を用いて符号化するステップと、
前記第１の領域分離ステップで分離された前記黒画素を含まない領域を、行数を指定して、白スキップするよう符号化するステップと、
前記第２の領域分離ステップで分離された前記黒画素を含まない領域を、列数を指定して、白スキップするよう符号化するステップとを含む
ことを特徴とする画像圧縮方法。
【請求項２】
前記同一パターン分離ステップは、
黒画素を含む領域の列数と画素パターンを、パターンテーブルに登録されたパターンの列数と画素パターンと照合するステップと、
照合により一致しない領域の列数と参照情報を前記パターンテーブルに登録するステップと、
照合により一致した領域を、同一パターンとして分離するステップからなる
ことを特徴とする請求項１の画像圧縮方法。
【請求項３】
画像を主走査方向に、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離し、少なくとも１行は黒画素を含むＬ（Ｌは２以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に、１列単位に黒画素を含む領域と黒画素を含まない領域に分離し、且つ前記論理行中に離散的に存在する前記黒画素を含む列の列数が一致し、且つ前記列数の領域内の画素パターンが一致する同一パターンを、複数の前記論理行を対象として、分離し、前記分離された各領域を要素として符号化され、且つ前記同一パターンとして分離された２個目以降の同一パターンを、１個目の同一パターンを参照する参照情報を用いて符号化された圧縮データを復元する画像復元方法であって、
前記圧縮データから前記領域の符号語を解析するステップと、
前記解析により前記同一パターンと判定された場合に、前記符号語に続く参照情報から、前記１個目の同一パターンを用いて、前記領域の画素パターンを復元するステップとからなる
ことを特徴とする画像復元方法。
【請求項４】
コンピュータに、画像を主走査方向に走査し、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離する第１の領域分離ステップと，
前記第１の領域分離ステップで得られた少なくとも１行は黒画素を含むＬ（Ｌは２以上の整数で、Ｋより大きい）行で定義される論理行の中で，該主走査方向と直交する副走査方向に走査し、１列単位に黒画素を含む領域と黒画素を含まない領域に分離する第２の領域分離ステップと，
前記第２の領域分離ステップによる分離結果に基づき，前記論理行中に離散的に存在する前記黒画素を含む列の列数が一致し、且つ前記列数の領域内の画素パターンが一致する同一パターンを、複数の前記論理行を対象として、分離する同一パターン分離ステップと、
前記同一パターンの分離ステップで分離した２個目以降の同一パターンを、１個目の同一パターンを参照する参照情報を用いて符号化するステップと、
前記第１の領域分離ステップで分離された前記黒画素を含まない領域を、行数を指定して、白スキップするよう符号化するステップと、
前記第２の領域分離ステップで分離された前記黒画素を含まない領域を、列数を指定して、白スキップするよう符号化するステップとを実行させる
ことを特徴とする画像圧縮プログラム。
【請求項５】
画像を主走査方向に、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離し、少なくとも１行は黒画素を含むＬ（Ｌは２以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に、１列単位に黒画素を含む領域と黒画素を含まない領域に分離し、且つ前記論理行中に離散的に存在する前記黒画素を含む列の列数が一致し、且つ前記列数の領域内の画素パターンが一致する同一パターンを、複数の前記論理行を対象として、分離し、前記分離された各領域を要素として符号化され、且つ前記同一パターンとして分離された２個目以降の同一パターンを、１個目の同一パターンを参照する参照情報を用いて符号化された圧縮データを復元する画像復元プログラムであって、
コンピュータに、前記圧縮データから前記領域の符号語を解析するステップと、
前記解析により前記同一パターンと判定された場合に、前記符号語に続く参照情報から、前記１個目の同一パターンを用いて、前記領域の画素パターンを復元するステップとを実行させる
ことを特徴とする画像復元プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，２値のビットマップ画像の圧縮率を向上するための画像圧縮方法、その復元方法及びそのプログラムに関し、特に、水平及び垂直方向の白スキップを行う画像圧縮方法、その復元方法及びそのプログラムに関する。
【０００２】
【従来の技術】
近年の画像の高解像度化に伴い、２値ビットマップ画像の転送や格納のため、データ圧縮技術が利用されている。従来の２値ビットマップ画像の圧縮方法としては，ＭＨ（Modified Huffman），ＭＲ（Modified READ），ＭＭＲ（Modified Modified READ），ＪＢＩＧ（Joint Bi-level Image Group）等が提案されており、ファイルへの格納やＦＡＸ等に広く使用されている。
【０００３】
これらの圧縮方法は、圧縮率を高くするため、符号化処理が複雑であり、高解像度の画像を処理するのに時間がかかる。このため、処理速度の高速化を狙ったビットマップデータの圧縮方法が、提案されている（例えば、特開平８−５１５４５号公報）。
【０００４】
図１３は、かかる従来技術の画像圧縮方法の説明図である。図１３に示すように、まず入力画像Ａを主走査方向に、Ｌ（Ｌは、１以上の整数）ライン単位に走査し、所定のライン数Ｋ単位（例えば、８ライン単位）に、行間のように連続する空白ラインを垂直スキップとして符号化し，空白ライン以外の領域を論理行Ｂとして分離する。
【０００５】
次に、分離した論理行を１列単位に垂直方向に走査して、文字間のように黒画素を含まない空白領域をスキップし，空白領域以外の黒画素を含む領域を分離する。
【０００６】
そして，各論理行において、白画素のみからなる領域（空白領域）と，黒画素のみからなる領域とを、それぞれ列数を指定して、スキップするよう符号化する。更に、同じ画素値の列が連続する領域を、その画素値と繰り返し回数により符号化する。黒画素を含むそれ以外の領域は、その領域内の画素データを、その列数と共にそのまま符号データとして出力する。
【０００７】
このような圧縮方法では、比較的空白が多い、テキスト文書を高速にデータ圧縮するのに適している。
【０００８】
【発明が解決しようとする課題】
しかしながら、前述のビットマップデータの圧縮方法では，図１３に示したように、論理行Ｂ−１，Ｂ−２において、黒画素を含むそれ以外の領域が、パターン１，２，４，６、３，５のように、同一パターンであっても、それぞれを個別に独立して符号化していたため、これらを圧縮することが出来ず、画像の圧縮率を向上する点で改良すべき問題があった。
【０００９】
本発明の目的は、垂直スキップ及び水平スキップする画像圧縮の圧縮率を更に向上するための画像圧縮方法、復元方法及びそのプログラムを提供することにある。
【００１０】
本発明の他の目的は、垂直スキップ及び水平スキップした残りの黒画素を含む領域の圧縮率を更に向上するための画像圧縮方法、復元方法及びそのプログラムを提供することにある。
【００１１】
本発明の更に他の目的は、垂直スキップ及び水平スキップした残りの黒画素を含む領域で、同じ形状の同一パターンが離散的に繰り返し出現する場合の圧縮率を更に向上するための画像圧縮方法、復元方法及びそのプログラムを提供することにある。
【００１２】
【課題を解決するための手段】
この目的の達成のため、本発明の画像圧縮方法は、画像を主走査方向に走査し、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離する第１の領域分離ステップと，前記第１の領域分離ステップで得られた少なくとも１行は黒画素を含むＬ（Ｌは２以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に走査し、１列単位に黒画素を含む領域と黒画素を含まない領域に分離する第２の領域分離ステップと，前記第２の領域分離ステップによる分離結果に基づき，前記論理行中に離散的に存在する前記黒画素を含む列の列数が一致し、且つ前記列数の領域内の画素パターンが一致する同一パターンを、複数の前記論理行を対象として、分離する同一パターン分離ステップと、前記第１の領域分離ステップ及び第２の領域分離ステップと、前記同一パターン分離ステップで得られた各領域を要素として符号化を行う符号化ステップとを有し、前記符号化ステップは，前記同一パターンの分離ステップで分離した２個目以降の同一パターンを、１個目の同一パターンを参照する参照情報を用いて符号化するステップと、前記第１の領域分離ステップで分離された前記黒画素を含まない領域を、行数を指定して、白スキップするよう符号化するステップと、前記第２の領域分離ステップで分離された前記黒画素を含まない領域を、列数を指定して、白スキップするよう符号化するステップとを含むことを特徴とする。
【００１３】
又、本発明の画像復元方法は、画像を主走査方向に、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離し、少なくとも１行は黒画素を含むＬ（Ｌは２以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に、１列単位に黒画素を含む領域と黒画素を含まない領域に分離し、且つ前記論理行中に離散的に存在する前記黒画素を含む列の列数が一致し、且つ前記列数の領域内の画素パターンが一致する同一パターンを、複数の前記論理行を対象として、分離し、前記分離された各領域を要素として符号化され、且つ前記同一パターンとして分離された２個目以降の同一パターンを、１個目の同一パターンを参照する参照情報を用いて符号化された圧縮データを復元する画像復元方法であって、前記圧縮データから前記領域の符号語を解析するステップと、前記解析により前記同一パターンと判定された場合に、前記符号語に続く参照情報から、前記１個目の同一パターンを用いて、前記領域の画素パターンを復元するステップとからなることを特徴とする。
【００１４】
又、本発明の画像圧縮プログラムは、コンピュータに、画像を主走査方向に走査し、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離する第１の領域分離ステップと，前記第１の領域分離ステップで得られた少なくとも１行は黒画素を含むＬ（Ｌは２以上の整数で、Ｋより大きい）行で定義される論理行の中で，該主走査方向と直交する副走査方向に走査し、１列単位に黒画素を含む領域と黒画素を含まない領域に分離する第２の領域分離ステップと，前記第２の領域分離ステップによる分離結果に基づき，前記論理行中に離散的に存在する前記黒画素を含む列の列数が一致し、且つ前記列数の領域内の画素パターンが一致する同一パターンを、複数の前記論理行を対象として、分離する同一パターン分離ステップと、前記同一パターンの分離ステップで分離した２個目以降の同一パターンを、１個目の同一パターンを参照する参照情報を用いて符号化するステップと、前記第１の領域分離ステップで分離された前記黒画素を含まない領域を、行数を指定して、白スキップするよう符号化するステップと、前記第２の領域分離ステップで分離された前記黒画素を含まない領域を、列数を指定して、白スキップするよう符号化するステップとを実行させることを特徴とする。
【００１５】
又、本発明の画像復元プログラムは、画像を主走査方向に、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離し、少なくとも１行は黒画素を含むＬ（Ｌは２以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に、１列単位に黒画素を含む領域と黒画素を含まない領域に分離し、且つ前記論理行中に離散的に存在する前記黒画素を含む列の列数が一致し、且つ前記列数の領域内の画素パターンが一致する同一パターンを、複数の前記論理行を対象として、分離し、前記分離された各領域を要素として符号化され、且つ前記同一パターンとして分離された２個目以降の同一パターンを、１個目の同一パターンを参照する参照情報を用いて符号化された圧縮データを復元する画像復元プログラムであって、コンピュータに、前記圧縮データから前記領域の符号語を解析するステップと、前記解析により前記同一パターンと判定された場合に、前記符号語に続く参照情報から、前記１個目の同一パターンを用いて、前記領域の画素パターンを復元するステップとを実行させることを特徴とする。
【００１６】
本発明の画像圧縮方法によれば，垂直及び水平白スキップを行うとともに、それ以外の領域は、同一の文字のような画像中に離散的に存在する同一パターンを検出して、参照情報で符号化するため、画像の圧縮率を向上させることができる。このため，データを格納するための記憶容量の削減やデータ転送時間の短縮に大きく寄与する。又、復元も容易に、且つ高速に実現できる。
【００１７】
更に、本発明の画像圧縮方法では、好ましくは、前記同一パターン分離ステップは、黒画素を含む領域の列数と画素パターンを、パターンテーブルに登録されたパターンの列数と画素パターンと照合するステップと、照合により一致しない領域の列数と参照情報を前記パターンテーブルに登録するステップと、照合により一致した領域を同一パターンとして分離するステップからなることを特徴とする。これにより、パターンテーブルとの照合により、容易に同一パターンを検出できる。
【００１８】
更に、本発明では、好ましくは、前記符号化ステップは，異なる種類のパターンを検出するごとに、該パターンに割り当てた一連番号を，前記参照情報として符号化を行うステップを含むことを特徴とする。これにより、小さい負荷量で実現できる。
【００１９】
更に、本発明では、前記符号化ステップは，異なる種類の同一パターンを検出するごとに、各種類の最初に検出された同一パターンの画像データ内における位置を，前記参照情報として符号化を行うステップを含むことを特徴とする。これにより、少ないメモリ容量で実現できる。
【００２０】
更に、本発明では、前記符号化ステップは，異なる種類の同一パターンを検出するごとに、各種類の最初に検出された同一パターンの符号データが格納される符号データ内における位置を，前記参照情報として符号化を行うステップを含むことを特徴とする。これにより、少ないメモリ容量で実現できる。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態を、画像圧縮方法、適用システム、圧縮処理方法、復元処理方法、他の実施の形態の順で説明する。
【００２２】
［画像圧縮方法］
図１は、本発明の一実施の形態の画像圧縮方法の全体処理フロー図、図２は、図１の圧縮方法の説明図、図３は、図２のパターンテーブルの構成例の説明図、図４は、図２の同一パターンの符号データの説明図である。図２を参照して、図１により、全体処理を説明する。
【００２３】
（Ｓ１０１）まず、入力された画像Ａを水平方向（主走査方向）に走査する。
【００２４】
（Ｓ１０２）主走査により、所定数Ｌのライン（例えば、図１３と同様に、８ライン）毎に、黒画素を全く含まない領域と、黒画素を含む領域とに分離し、行間のように連続する空白ラインを垂直スキップする。一方，黒画素を含む領域を、論理行Ｂ−１、Ｂ−２として分離する。
【００２５】
（Ｓ１０３）次に、分離した論理行Ｂ−１，Ｂ−２の中で、１列単位に、垂直方向（副走査方向）に走査する。
【００２６】
（Ｓ１０４）垂直走査により、１列単位に、黒画素を含む領域と、黒画素を含まない領域とに分離し、文字間のように、黒画素を含まない空白領域をスキップし、空白領域以外の黒画素を含む領域を分離する。図２では、水平スキップ領域と、それ以外の領域（パターン）１〜６に分離する。
【００２７】
（Ｓ１０５）Ｓ１０４の領域分離結果を利用して、同一サイズ（列数）及び同一の画素値（画素パターン）を持つパターンを同一パターンとして分離する。
【００２８】
（Ｓ１０６）Ｓ１０２，Ｓ１０４，Ｓ１０５で分離した，各領域を要素として符号化を行う。
【００２９】
即ち、本発明は、前述の従来提案に、ステップＳ１０５を追加し，ステップＳ１０６を変更したものであり、図２により、ステップＳ１０５，１０６を詳細に説明する。図２に示すように、パターン１，２，４，６は、同一のパターンであり、パターン３，５は、別の同一のパターンである。先ず、パターン２，４，６が、パターン１と同一パターンであることを検出し（同一パターンとして分離し）、パターン２，４，６は、パターン１を参照するように、参照情報で符号化する。
【００３０】
パターン２，４，６を復元する時は、復元済みパターン１の画像を参照情報で呼び出し、その画像をそのままコピーすることで、元の画像を復元できる。パターン３，５に関しても、同様である。
【００３１】
このように、検出した２個目以降の同一パターンを、１個目のパターンを参照する参照情報により、符号化することにより、２個目以降のパターンの符号データサイズを大幅に削減できる。
【００３２】
この検出及び符号化のために、１個目のパターンの長さ（列数）と参照情報を登録するパターンテーブルＣを用意する。分離された黒画素を含む領域の列数を、パターンテーブルに登録されたパターンの列数と照合し、更に列数が一致する場合には、その領域の画素パターンと列数が一致したパターンの画素パターンと照合する。
【００３３】
照合により一致しない場合には、新規パターンであると判断し、参照領域の列数と参照情報をパターンテーブルＣに登録し、その領域のパターン自体を符号化する（パターン１，３）。一方、照合により一致した場合には、既存パターンと判定し、その領域を同一パターンとして分離する。この既存パターンについては、パターン自体を符号化せず、パターンテーブルＣの当該パターンの参照情報を符号化する。
【００３４】
即ち、図２の例では、パターン２，４，６は、符号語（分離パターン）とパターン１の参照情報を符号データとする。パターン５は、符号語（分離パターン）とパターン３の参照情報を符号データとする。これにより、パターンテーブルとの照合により、容易に同一パターンを検出できる。
【００３５】
同一パターンを参照して特定するための参照情報を説明する。第１に、この参照番号として，同一パターンが検出されるごとに割り当てた一連の番号を用いることができる。同一パターン１，２，４，６には、一連番号として「１」を割り当て，同一パターン２，５には、一連番号として「２」を割り当てる。そしてパターン２，４，６は一連番号「１」を，パターン５は一連番号「２」を使用して符号化することで，各同一パターンの最初のパターンを特定することが可能となる。
【００３６】
また，第２に、上記の一連番号を使用する替わりに，最初の同一パターンの画像データ内における位置を示す座標値を使用できる。第３に，該最初の同一パターンが符号出力された符号データ内における位置を参照情報として使用することもできる。
【００３７】
次に、最初の同一パターンの画像データと照合するため、第１の参照情報である一連番号を用いる場合には，２個目以降の同一パターンを検出するために、最初の同一パターンの画像データとそのサイズを、別途切り出して、記憶しておく必要がある。
【００３８】
一方，参照情報として最初の同一パターンの画像データ内における位置または符号データ内における位置を用いる第２、第３の参照情報の場合には，先頭のパターン自体を、画像データや符号データで参照することができるため，一連番号を用いる際のようにパターンデータを別途記憶しておく必要がない。
【００３９】
ただし，最初の同一パターンの符号データ内における位置を、参照情報として用いる第３の場合には，符号データ内でパターンが符号化されている場合があるため、検索時に元のパターンの画像に復元しなければならない場合がある。
【００４０】
以上のように，使用するメモリ量と処理負荷に応じて参照情報を選択することができる。
【００４１】
次に、図３により、本発明で用いる参照情報を得るためのパターンテーブルの構成例を説明する。先ず、パターンテーブルＣには、新しい同一パターンを検出するごとに（パターンテーブルＣに登録されていないパターンを検出するごとに），最初のパターンに関する情報を追加して格納する。
【００４２】
図３（Ａ）は，同一パターンを一連番号を使って符号化する際のパターンテーブルのデータ構成例である。パターンを新たに追加登録するごとに，一連の番号を割り当て，パターンの画素幅（列数）Ｗ１…と，パターンの画像データそのものＤ１［Ｗ１］…を格納する。
【００４３】
図３（Ｂ）は、同一パターンの画像内における位置を使って符号化する際のパターンテーブルのデータ構成例である。パターンの画素幅Ｗ１…と，該パターンの入力画像中における座標値（Ｐ１ｘ，Ｐ１ｙ）…を格納する。
【００４４】
図３（Ｃ）は，同一パターンの符号データ内における位置を使って符号化する際のパターンテーブルのデータ構成例である。パターンの画素幅Ｗ１…に加え，符号データ内における該パターンが格納されている位置Ｑ１…を格納する。
【００４５】
このパターンテーブルを使用した、既存の同一パターンが存在するか否かの検出方法を説明する。まず、パターンテーブルを参照して、対象パターンの画素幅と、画素幅が比較して一致するパターンの有無を検出し，画素幅が一致した場合には、更に対象パターンの画素データと、その一致したパターンの画素データを比較して、一致するか否かを検出することで行う。
【００４６】
次に、このパターンテーブルを使用した符号化例を説明する。図４に本発明による同一パターンの符号語の構成例を示す。図４（Ａ），（Ｂ），（Ｃ）の符号語は，それぞれ図３（Ａ），（Ｂ），（Ｃ）のパターンテーブルを用いる場合に対応している。
【００４７】
図４（Ａ）では、符号語（同一パターンの識別子）に加え，一連番号を追加し，符号データを構成する。図４（Ｂ）の符号語構成例では，符号語に、パターン長と最初の同一パターンの画像内における位置を追加している。図４（Ｃ）の符号語構成例では，符号語に、最初の同一パターンの符号データ内における格納位置と，現在符号化しようとしているパターンの符号データが出力される符号データ内における格納位置との相対位置を追加して、符号語を構成する。
【００４８】
この圧縮方法の効果を説明する。従来技術では、図１３に示すように、最初のパターン１、３の幅（列数）Ｗ１、Ｗ２を、それぞれ１２画素、９画素とし、論理行の高さを８ラインとした条件で、パターン１〜６をそのまま符号化する場合には、パターン１〜６の符号データサイズは、合計６６バイトとなる。
【００４９】
一方、本発明では、図２に示すように、同一条件で、参照情報を２バイトとした場合には、パターン１〜６の符号データサイズは、合計２９バイトで済み、大幅なデータ圧縮が可能となる。
【００５０】
以上のように、論理行内で分離された黒画素を含む領域を、パターンのまま符号化せず、同一のパターンは、最初のパターン以外を、最初のパターンの参照情報で符号化するため、同一パターンが多数出現するテキスト等で、大幅なデータ圧縮が可能となる。このため、２値ビットマップデータのファイル格納容量を削減でき、又転送時間を短縮できる。
【００５１】
［適用システム］
図５は、本発明の画像圧縮、復元方法を適用するのに好適なシステム構成図である。パーソナルコンピュータ等のクライアント１と、プリンタ２とが、ネットワーク（例えば、ＬＡＮ）３で接続されている。クライアント１は、デイスプレイ１０と、データ処理ユニット１１とを有する。データ処理ユニット１１には、プリンタドライバ１２がインストールされている。
【００５２】
プリンタドライバ１２には、ビットマップ展開プログラム１３と画像圧縮プログラム１４が設けられている。ビットマップ展開プログラム１３は、クライアント１の印刷すべきデータを指定解像度のビットマップデータに展開する。画像圧縮プログラム１４は、本発明に従い、ビットマップデータ（入力画像）を圧縮して、ネットワーク３を介しプリンタ２に転送する。
【００５３】
プリンタ２には、画像復元プログラム２０と、ビットマップメモリ２１と、プリンタエンジン２２とを有する。画像復元プログラム２０は、転送された圧縮データを復元し、ビットマップメモリ２１に展開する。プリンタエンジン２２は、例えば、電子写真プリンタエンジンで構成され、ビットマップメモリ２１に展開されたビットマップデータを、印刷媒体に印刷する。
【００５４】
このシステムでは、クライアント１で、ビットマップ展開した印刷データを作成する。一方、プリンタ２は、ビットマップ展開した印刷データを受信し、印刷動作を行う。このシステムは、近年のパーソナルコンピュータの高速化に伴い、画像処理性能が向上している点に着目し、高解像度（例えば、１２００ｄｐｉ）のビットマップデータの作成を、クライアント１で負担する。
【００５５】
このため、プリンタ２に、かかる高解像度のビットマップデータ生成機能を持たせなくも、高解像度の印刷が可能となる。即ち、プリンタ２に高解像度の描画機能を必要とせず、安価なプリンタで高解像の印刷ができる。しかも、クライアント１の性能は、向上しているため、ビットマップ展開時間は、早くなる。但し、高解像度のビットマップデータを転送すると転送時間が長くなる。この転送時間を短縮するため、画像圧縮、復元する。これにより、クライアント１から見た印刷時間も短縮できる。
【００５６】
［圧縮処理方法］
次に、本発明の一実施の形態の画像圧縮処理を説明する。図６は、本発明の一実施の形態の画像圧縮処理フロー図であり、図７は、図６のパターン抽出処理フロー図、図８は、図６のパターン登録処理フロー図、図９は、図６の抽出パターン符号化処理フロー図である。図６により、全体処理を説明する。
【００５７】
（Ｓ２０１）入力画像を１ライン単位に走査して，論理行（８ライン単位で、黒画素を含む行）を抽出する。
【００５８】
（Ｓ２０２）論理行抽出時に検出された黒画素を含まないラインを垂直スキップとして符号出力する。これらは、既存の方法により行うことができる（例えば、特開平８−５１５４５号公報）。
【００５９】
（Ｓ２０３）Ｓ２０１で抽出した論理行を１列単位に走査し，該論理行から黒画素を含む複数列からなる部分領域をパターンとして抽出する。本処理についての詳細は、図７で後述する。
【００６０】
（Ｓ２０４）Ｓ２０３により、パターンが抽出された否かを判断し，パターンが抽出されなかった場合（論理行の全列が、白画素）には、処理をＳ２０５に移し，パターンが抽出された場合には，処理をＳ２０６に進める。
【００６１】
（Ｓ２０５）現処理中の論理行の中で符号化処理を行っていない部分を従来の符号化方法により符号化する。
【００６２】
（Ｓ２０６）抽出したパターンと同じパターンが以前に符号化されていないか否かを，該抽出パターンとパターンテーブルを照合して確認する。本処理についても詳細を、図８で後述する。
【００６３】
（Ｓ２０７）Ｓ２０６の照合結果に基づき，同一パターンの符号化を行う。本処理についても詳細を、図９で後述する。
【００６４】
（Ｓ２０８）論理行の最後の列まで符号化処理が行われたか否かを判断し，論理行の最後まで符号化処理が行われていない場合には、Ｓ２０３に処理を戻し，論理行の最後まで符号化処理が行われている場合には，処理をＳ２０９に進める。
【００６５】
（Ｓ２０９）入力画像内の全論理行の抽出が終了したか否かを判断し，全論理行の抽出が終わっていなければ，処理をＳ２０１に戻し，全論理行の抽出処理が終わった場合には，該入力画像の圧縮処理を完了する。
【００６６】
次に，S203，S206，S207の各処理の実施例について、図７、図８、図９を用いて、順番に詳細を説明する。
【００６７】
図７は、論理行からパターンを抽出する処理の実施例を示し，図６のS203の処理に対応する。
【００６８】
（S301）論理行の先頭であるか否かを判断し，論理行の先頭である場合にはS302に処理を進め，論理行の先頭でない場合には処理をS303に進める。
【００６９】
（S302）参照する列を示す変数ｍを「１」，すなわち論理行の先頭列を指し示すように初期化する。
【００７０】
（S303）検出処理を開始した列を保持しておくための変数ｋにｍを設定する。
【００７１】
（S304）論理行のｍ列目の画像が全て白画素であるか否かを判断し，全てが白画素である場合には、処理をS305に進め，全てが白画素でない場合には、処理をS308に分岐する。
【００７２】
（S305）ｍ列目が論理行の最後であるか否かを判断し，論理行の最後でない場合には、処理をS306に進め，論理行の最後である場合には、処理をS307に分岐する。
【００７３】
（S307）抽出パターンが検出されなかったことを通知してパターン抽出処理を終了する。
【００７４】
（S306）次の列を参照するためｍに１を加えた後，処理をS304に戻す。S304からS306の処理を行うことにより，連続する複数列からなる空白領域が検出される。
【００７５】
（S308)S304からS306の処理により空白領域が検出されたかを判断するため、変数ｋとｍを比較する。ｋ＜ｍの場合には、空白領域が検出されたと判断して、処理をS309に進め，ｍ≦ｋの場合には、空白領域が検出されなかったと判断して、処理をS310に進める。
【００７６】
（S309）ｋ列目からｍ−１列目までを空白領域として従来の符号化方法により水平スキップとして符号化する。
【００７７】
（S310）抽出するパターンの先頭列を保持するためｋにｍを設定する。
【００７８】
（S311）ｍ列目が論理行の最後か否かを判断し，論理行の最後でない場合には、処理をS312に進め，論理行の最後である場合には、S315に分岐する。
【００７９】
（S312）次の列を参照するためｍに１を加える。
【００８０】
（S313）論理行のｍ列目の画像が全て白画素であるか否かを判断し，全て白画素の場合には、処理をS314に進め，黒画素が含まれる場合には、処理をS311に戻す。S311からS313までの処理を繰り返し行うことで，黒画素を含む連続する複数の列からなる領域がパターンとして検出される。
【００８１】
（S314）ｋ列目からｍ−１列目までをパターンとして抽出する。
【００８２】
（S315）ｋ列目からｍ列目，すなわち論理行の最後の列までをパターンとして抽出する。
【００８３】
（S316）パターンが抽出されたことを通知すると同時に，抽出したパターンを出力し，パターン抽出処理を完了する。
【００８４】
以上の処理により，論理行から黒画素を含む一連の領域がパターンとして抽出される。
【００８５】
次に、図８は抽出したパターンをパターンテーブルに登録する処理の実施例を示し，図６のS206の処理に対応する。
【００８６】
（S401）パターンテーブル内に登録されているパターンが存在するか否かを判断し，パターンが存在する場合には、処理をS402に進め，パターンが存在しない場合には、S407に処理を分岐する。
【００８７】
（S402）パターンテーブル内のテーブル番号を指定するための変数ｎに「１」，すなわちテーブルの先頭を指し示すように設定する。
【００８８】
（S403）図６のS203で抽出したパターンと、パターンテーブルのｎ番目に登録されているパターンとを比較して、パターンの列数およびパターンの画素値が一致するか否かを判断する。両者が一致する場合には、S404に処理を分岐し，一致しない場合には、処理をS405に進める。
【００８９】
（S404）抽出パターンに一致する登録パターンが存在することを通知すると同時に，参照情報を出力してパターンテーブルへの登録処理を終了する。出力する参照情報は，使用するパターンテーブルの種類に応じて異なる。図３（Ａ）のパターンテーブルを使用する場合には、ｎ番目の登録パターンに割り当てられた一連番号（すなわちｎ）である。図３（Ｂ）のパターンテーブルを使用する場合には，参照情報は、ｎ番目のパターンの画像内における座標である。図３（Ｃ）のパターンテーブルを使用する場合には，参照情報は、ｎ番目のパターンの符号データ内における位置と，現在符号化処理を行っている抽出パターンが出力される符号データ内における位置との相対位置となる。
【００９０】
（S405）ｎに「１」を加えて、パターンテーブルに登録されている次のパターンを参照するようにする。
【００９１】
（S406）パターンテーブル内に登録されている全てのパターンを，抽出パターンと照合したか否かを判断し，全てのパターンとの照合が完了していれば、処理をS407に進める。これは，抽出パターンに一致するパターンが、パターンテーブル内に存在しないことを意味する。登録されている全パターンとの照合が完了していなければ、処理をS403に戻す。
【００９２】
抽出パターンとパターンテーブル内に登録されている全てのパターンとの照合が完了するか，もしくは抽出パターンに一致するパターンがパターンテーブル内に見つかるまでS403，S405，S406を繰り返し行う。
【００９３】
（S407）抽出パターンをパターンテーブルに新たに登録する。登録する際に格納する情報は，使用するパターンテーブルの種類に応じて異なる。図３（Ａ）のパターンテーブルを使用する場合には，抽出パターンの画素幅（＝列数）と，新たに該抽出パターンに割り当てた一連番号，および抽出パターン自体を格納する。図３（Ｂ）のパターンテーブルを使用する場合には，画素幅と，抽出パターンの入力画像データ内における座標とを格納する。図３（Ｃ）のパターンテーブルを使用する場合には，画素幅と，符号化した抽出パターンが出力される符号データ内における位置を格納する。
【００９４】
（S408）抽出パターンに一致するパターンが，パターンテーブル内に存在しないことを通知してパターンテーブルへの登録処理を終了する。
【００９５】
以上の処理により，抽出したパターンが、パターンテーブルと照合され，新たなパターンであった場合には、パターンテーブルに登録され，同一のパターンが既に登録されていた場合には、その登録されているパターンの参照情報が得られる。
【００９６】
次に、図９は、抽出したパターンを符号化する処理の実施例を示し，図６のS207の処理に対応する。
【００９７】
（S501）図６のS206による抽出パターンに一致するパターンが，パターンテーブル内に存在するか否かの検出結果に基づき，存在する場合には，処理をS502に移し，存在しない場合には，処理をS503に進める。
【００９８】
（S502）図６のS206で得た参照情報を使用して、抽出パターンを符号化して出力する。使用する符号語には，使用するパターンテーブル（図３（Ａ）乃至図３（Ｃ））に応じて，それぞれ，図４（Ａ）乃至図４（Ｃ）のものを用いる。
【００９９】
（S503）抽出パターンを既存の圧縮方法によりデータ圧縮する。既存の圧縮方法として，例えば各列の画素値を要素としてランレングス符号化を適用できる。
【０１００】
（S504）S503による圧縮の結果に基づいて、圧縮効果があったか否かを判断し，圧縮効果があった場合には、処理をS505に進め，圧縮効果が無かった場合には、処理をS506に進める。
【０１０１】
（S505）S503で得られた抽出パターンを圧縮したデータと、圧縮したデータのサイズとを、符号語と共に符号データとして出力する。
【０１０２】
（S506）抽出パターンそのものと、抽出パターンのサイズとを、符号語と共に符号データとして出力する。
【０１０３】
以上の処理により，抽出パターンの符号化が行われる。
【０１０４】
図１０は、本発明の圧縮方法に好適な入力画像と圧縮動作の説明図である。図１０の入力画像に示すように、金額の「００００」等は、論理行Ｂ内に、同一パターンが出現しやすい。この同一パターン＃１〜＃４では、最初のパターン＃１と同一のパターン＃２〜＃４は、パターン自体を符号化する必要がなく、パターン＃１の参照情報を符号化する。
【０１０５】
ここでは、パターン＃２の参照情報に、論理行における、最初のパターン＃１の位置ｓから同一パターン＃２の先頭位置までの相対位置ｄ１を使用する。同様に、パターン＃３の参照情報に、論理行における、前も同一パターン＃２の先頭位置から同一パターン＃３の先頭位置までの相対位置ｄ２を使用し、パターン＃４の参照情報に、論理行における、前の同一パターン＃３の先頭位置から同一パターン＃４の先頭位置までの相対位置ｄ３を使用する。このような金額や英字は、本発明の圧縮効果が大きい。
【０１０６】
図１１は、本発明の圧縮方法に好適な他の入力画像と圧縮動作の説明図である。図１１の入力画像Ａに示すように、斜体文字等は、論理行Ｂ内に、同一パターンが出現しやすい。この同一パターン＃１と＃３，＃２と＃４では、最初のパターン＃１又は＃３と同一のパターン＃２、＃４は、パターン自体を符号化する必要がなく、パターン＃１又は＃３の参照情報を符号化する。このような斜体文字は、本発明の圧縮効果が大きい。
【０１０７】
ここでは、最初のパターン＃１を、パターンテーブルＤに、圧縮後の符号データＣの符号先頭からのパターン＃１の符号データの位置（ｓ１バイト）と長さ（列数）ｗ１を格納する。同一パターン＃３は、既存パターンである符号語（ＰＲＢＬＫ）と、パターン＃１の符号データの位置からの相対位置ｄ１で符号化する。パターン＃４も、パターン＃２の既存パターンとして、同様に符号化する。
【０１０８】
［復元処理方法］
図１２は、本発明の画像圧縮されたデータを復元するための復元処理フロー図である。
【０１０９】
（Ｓ１）パターンテーブルをクリアして，パターンが何も登録されていない状態にする。
【０１１０】
（Ｓ２）現在の復元位置に応じて，復元した画像を出力する領域を設定する。
【０１１１】
（Ｓ３）符号データ中における現在の復号位置にある符号データを解析して符号語（垂直スキップ、水平スキップ、離散パターン）の種類を識別する。
【０１１２】
（Ｓ４）Ｓ３の解析結果に基づき，解析した符号語が、本発明により符号化されているか否かを識別し，本発明による符号されていた場合（離散パターン）には、処理をＳ５に進め，それ以外の場合には、処理をＳ１０に移す。
【０１１３】
（Ｓ５）本発明による符号語の構成から，新規のパターンであるか，または既存のパターンであるかを識別し，新規のパターンである場合には，処理をＳ６に進め，既存のパターンである場合には，処理をＳ８に移す。
【０１１４】
（Ｓ６）符号データからパターンデータを読み出す。
【０１１５】
（Ｓ７）Ｓ６で読み出したパターンデータに一連番号を割り当て，パターンデータと該一連番号を対にしてパターンテーブルに登録する。
【０１１６】
（Ｓ８）一方、既存のパターンであった場合には，符号データからパターンの一連番号を読み出し，パターンテーブルから該一連番号に対応するパターンデータを読み出す。
【０１１７】
（Ｓ９）符号データから新規パターンとして読み出したパターンデータ，またはパターンテーブルから既存パターンとして読み出したパターンデータを，復元画像書き込み領域に出力する。
【０１１８】
（Ｓ１０）本発明によらない符号語の場合（垂直スキップ、水平スキップ）には，従来の復元方法による復号処理を行い，復元した画像データを復元画像書き込み領域に出力する。
【０１１９】
（Ｓ１１）論理行の最後に達したか否かを識別し，論理行の最後まで達していない場合には，処理をＳ２に戻し，論理行の最後に達していた場合には、処理をＳ１２に進める。
【０１２０】
（Ｓ１２）全ての論理行の復元処理が完了したか否かを識別し，終了していない場合には、処理をＳ２に戻し，終了した場合には復号処理を完了する。
【０１２１】
以上の処理により，本発明により符号化された画像データを元の画像に復元することができる。
【０１２２】
［他の実施の形態］
前述の実施の形態では、論理行の黒画素を含む領域を、全て同一パターンの照合対象として、符号化していたが、この領域の内、領域全体が黒画素のものや、領域に決められた横線を有するものを、この照合対象から外し、別途符号化することもできる。
【０１２３】
又、圧縮の適応例を印刷データの転送で説明したが、ファイルへの格納等にも適用できる。
【０１２４】
以上、本発明を実施の形態で説明したが、本発明の趣旨の範囲内において、種々の変形が可能であり、これらを本発明の範囲から排除するものではない。
【０１２５】
（付記１）画像を主走査方向に走査し、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離する第１の領域分離ステップと，前記第１の領域分離ステップで得られた少なくとも１行は黒画素を含むＬ（Ｌは１以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に走査し、１列単位に黒画素を含む領域と黒画素を含まない領域に分離する第２の領域分離ステップと，前記第２の領域分離ステップによる分離結果に基づき，前記論理行中に離散的に存在する列数および画素パターンが一致する同一パターンを分離する同一パターン分離ステップと、前記第１の領域分離ステップおよび第２の領域分離ステップと，前記同一パターン分離ステップで得られた各領域を要素として符号化を行う符号化ステップとを有し、前記符号化ステップは，前記同一パターン分離ステップで分離した２個目以降の同一パターンを、１個目のパターンを参照する参照情報を用いて符号化するステップを含むことを特徴とする画像圧縮方法。
【０１２６】
（付記２）前記同一パターン分離ステップは、黒画素を含む領域の列数と画素パターンを、パターンテーブルに登録されたパターンの列数と画素パターンと照合するステップと、照合により一致しない領域の列数と参照情報を前記パターンテーブルに登録するステップと、照合により一致した領域を同一パターンとして分離するステップからなることを特徴とする付記１の画像圧縮方法。
【０１２７】
（付記３）前記符号化ステップは，異なる種類のパターンを検出するごとに、該パターンに割り当てた一連番号を，前記参照情報として符号化を行うステップを含むことを特徴とする付記１の画像圧縮方法。
【０１２８】
（付記４）前記符号化ステップは，異なる種類の同一パターンを検出するごとに、各種類の最初に検出された同一パターンの画像データ内における位置を，前記参照情報として符号化を行うステップを含むことを特徴とする付記１の画像圧縮方法。
【０１２９】
（付記５）前記符号化ステップは，異なる種類の同一パターンを検出するごとに、各種類の最初に検出された同一パターンの符号データが格納される符号データ内における位置を，前記参照情報として符号化を行うステップを含むことを特徴とする付記１の画像圧縮方法。
【０１３０】
（付記６）画像を主走査方向に、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離し、少なくとも１行は黒画素を含むＬ（Ｌは１以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に、１列単位に黒画素を含む領域と黒画素を含まない領域に分離し、且つ前記論理行中に離散的に存在する列数および画素パターンが一致する同一パターンを分離し、各分離された領域を要素として符号化をされた圧縮データを復元する画像復元方法であって、前記圧縮データから前記領域の符号語を解析するステップと、前記解析により前記同一パターンと判定された場合に、前記符号語に続く参照情報から前記領域の画素パターンを復元するステップとからなることを特徴とする画像復元方法。
【０１３１】
（付記７）前記復元ステップは、前記解析により、既存パターンか新規パターンかを判定するステップと、前記新規パターンと判定された時に、前記符号語に続くパターンをパターンテーブルに登録するステップと、前記既存パターンと判定された時に、前記符号語に続く参照情報により前記パターンテーブルの前記既存パターンを呼び出し、復元するステップからなることを特徴とする付記６の画像復元方法。
【０１３２】
（付記８）画像を主走査方向に走査し、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離する第１の領域分離プログラムデータと，前記第１の領域分離ステップで得られた少なくとも１行は黒画素を含むＬ（Ｌは１以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に走査し、１列単位に黒画素を含む領域と黒画素を含まない領域に分離する第２の領域分離プログラムデータと，前記第２の領域分離ステップによる分離結果に基づき，前記論理行中に離散的に存在する列数および画素パターンが一致する同一パターンを分離する同一パターンプログラムデータと、前記第１の領域分離および第２の領域分離，前記同一パターン分離プログラムデータで得られた各領域を要素として符号化を行う符号化プログラムデータとを有し、前記符号化プログラムデータは，前記同一パターン分離ステップで分離した２個目以降の同一パターンを、１個目の同一パターンを参照する参照情報を用いて符号化するプログラムデータを含むことを特徴とする画像圧縮プログラム。
【０１３３】
（付記９）画像を主走査方向に、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離し、少なくとも１行は黒画素を含むＬ（Ｌは１以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に、１列単位に黒画素を含む領域と黒画素を含まない領域に分離し、且つ前記論理行中に離散的に存在する列数および画素パターンが一致する同一パターンを分離し、各分離された領域を要素として符号化をされた圧縮データを復元する画像復元プログラムであって、前記圧縮データから前記領域の符号語を解析するプログラムデータと、前記解析により前記同一パターンと判定された場合に、前記符号語に続く参照情報から前記領域の画素パターンを復元するプログラムデータとからなることを特徴とする画像復元プログラム。
【０１３４】
【発明の効果】
以上説明したように，本発明の画像圧縮方法によれば，垂直及び水平白スキップを行うとともに、それ以外の領域は、同一の文字のような画像中に離散的に存在する同一パターンを検出して、参照情報で符号化するため、画像の圧縮率を向上させることができる。このため，データを格納するための記憶容量の削減やデータ転送時間の短縮に大きく寄与する。
【図面の簡単な説明】
【図１】本発明の一実施の形態の画像圧縮方法の全体処理フロー図である。
【図２】図１の画像圧縮方法の説明図である。
【図３】図１の画像圧縮方法のパターンテーブルの構成図である。
【図４】図１の画像圧縮方法の符号データの説明図である。
【図５】本発明の画像圧縮方法の適用システムの説明図である。
【図６】本発明の一実施の形態の画像圧縮処理フロー図である。
【図７】図６のパターン抽出処理フロー図である。
【図８】図６のパターン照合処理フロー図である。
【図９】図６のパターン符号化処理フロー図である。
【図１０】本発明の一実施の形態の適用例の説明図である。
【図１１】本発明の一実施の形態の他の適用例の説明図である。
【図１２】本発明の一実施の形態の画像復元処理フロー図である。
【図１３】従来の画像圧縮方法の説明図である。
【符号の説明】
１  クライアント
２  プリンタ
３  ネットワーク
１１  処理ユニット
１２  プリンタドライバ
１３  ビットマップ展開プログラム
１４  データ圧縮プログラム
２１  データ復元プログラム
Ａ  入力画像
Ｂ  論理行
Ｃ  パターンテーブル
【図１】
0004001482.tif 000002
【図２】
0004001482.tif 000003
【図３】
0004001482.tif 000004
【図４】
0004001482.tif 000005
【図５】
0004001482.tif 000006
【図６】
0004001482.tif 000007
【図７】
0004001482.tif 000008
【図８】
0004001482.tif 000009
【図９】
0004001482.tif 000010
【図１０】
0004001482.tif 000011
【図１１】
0004001482.tif 000012
【図１２】
0004001482.tif 000013
【図１３】
0004001482.tif 000014