(57)【特許請求の範囲】
【請求項１】
画像を主走査方向に走査し、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離する第１の領域分離ステップと，
前記第１の領域分離ステップで得られた少なくとも１行は黒画素を含むＬ（Ｌは２以上の整数で、Ｋより大きい）行で定義される論理行の中で，該主走査方向と直交する副走査方向に走査し、１列単位に黒画素を含む領域と黒画素を含まない領域に分離する第２の領域分離ステップと，
前記第２の領域分離ステップによる分離結果に基づき，前記黒画素を含む領域内で副走査方向の同一方向に連続して黒画素が増加又は減少し、且つ前記Ｌ行の最も上又は下の行で、前記黒画素が連続する領域を分離する第３の領域分離ステップと、
前記第１、第２、第３の領域分離ステップで得られた各領域を要素として符号化を行う符号化ステップとを有し、
前記符号化ステップは，
前記第３の領域分離ステップで分離した前記黒画素が増加又は減少する領域を、前記領域の列数と、前記領域の先頭列の画素値と、前記領域の２列目以降の各列の直前の列に対する黒画素の変化量とで、符号化するステップと、
前記第１の領域分離ステップで分離された前記黒画素を含まない領域を、行数を指定して、白スキップするよう符号化するステップと、
前記第２の領域分離ステップで分離された前記黒画素を含まない領域を、列数を指定して、白スキップするよう符号化するステップとを含む
ことを特徴とする画像圧縮方法。
【請求項２】
前記第３の領域分離ステップは、前記黒画素を含む領域内の隣接する列の画素値の関係から、前記同一方向に連続して黒画素が増加又は減少する領域を分離するステップからなる
ことを特徴とする請求項１の画像圧縮方法。
【請求項３】
画像を主走査方向に、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離し、少なくとも１行は黒画素を含むＬ（Ｌは２以上の整数で、Ｋより大きい）行で定義される論理行の中で，該主走査方向と直交する副走査方向に、１列単位に黒画素を含む領域と黒画素を含まない領域に分離し、且つ前記論理行内で副走査方向の同一方向に連続して黒画素が増加又は減少する領域を分離し、前記分離された各領域を要素として符号化された圧縮データを復元する画像復元方法であって、
前記圧縮データから前記領域の符号語を解析するステップと、
前記解析により、前記符号語の前記領域の列数と、前記領域の先頭列の画素値と、前記領域の２列目以降の各列の直前の列に対する黒画素の変化量とから、前記領域の画素パターンを復元するステップとからなる
ことを特徴とする画像復元方法。
【請求項４】
コンピュータに、画像を主走査方向に走査し、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離する第１の領域分離ステップと，
前記第１の領域分離ステップで得られた少なくとも１行は黒画素を含むＬ（Ｌは２以上の整数で、Ｋより大きい）行で定義される論理行の中で，該主走査方向と直交する副走査方向に走査し、１列単位に黒画素を含む領域と黒画素を含まない領域に分離する第２の領域分離ステップと，
前記第２の領域分離ステップによる分離結果に基づき，前記黒画素を含む領域内で副走査方向の同一方向に連続して黒画素が増加又は減少し、且つ前記Ｌ行の最も上又は下の行で、前記黒画素が連続する領域を分離する第３の領域分離ステップと、
前記第３の領域分離ステップで分離した前記黒画素が増加又は減少する領域を、前記領域の列数と、前記領域の先頭列の画素値と、前記領域の２列目以降の各列の直前の列に対する黒画素の変化量とで、符号化するステップと、
前記第１の領域分離ステップで分離された前記黒画素を含まない領域を、行数を指定して、白スキップするよう符号化するステップと、
前記第２の領域分離ステップで分離された前記黒画素を含まない領域を、列数を指定して、白スキップするよう符号化するステップとを実行させる
ことを特徴とする画像圧縮プログラム。
【請求項５】
画像を主走査方向に、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離し、少なくとも１行は黒画素を含むＬ（Ｌは２以上の整数で、Ｋより大きい）行で定義される論理行の中で，該主走査方向と直交する副走査方向に、１列単位に黒画素を含む領域と黒画素を含まない領域に分離し、且つ前記論理行内で副走査方向の同一方向に黒画素が増加又は減少する領域を分離し、各分離された領域を要素として符号化をされた圧縮データを復元する画像復元プログラムであって、
コンピュータに、前記圧縮データから前記領域の符号語を解析するステップと、
前記解析により、前記論理行内で副走査方向の同一方向に連続して黒画素が増加又は減少する領域を、前記符号語に含まれる前記領域の列数と、前記領域の先頭列の画素値と、
前記領域の２列目以降の各列の直前の列に対する黒画素の変化量とから、復元するステップとを実行させる
ことを特徴とする画像復元プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，２値のビットマップ画像の圧縮率を向上するための画像圧縮方法、その復元方法及びそのプログラムに関し、特に、水平及び垂直方向の白スキップを行う画像圧縮方法、その復元方法及びそのプログラムに関する。
【０００２】
【従来の技術】
近年の画像の高解像度化に伴い、２値ビットマップ画像の転送や格納のため、データ圧縮技術が利用されている。従来の２値ビットマップ画像の圧縮方法としては，ＭＨ（Modified Huffman），ＭＲ（Modified READ），ＭＭＲ（Modified Modified READ），ＪＢＩＧ（Joint Bi-level Image Group）等が提案されており、ファイルへの格納やＦＡＸ等に広く使用されている。
【０００３】
これらの圧縮方法は、圧縮率を高くするため、符号化処理が複雑であり、高解像度の画像を処理するのに時間がかかる。このため、処理速度の高速化を狙ったビットマップデータの圧縮方法が、提案されている（例えば、特開平８−５１５４５号公報）。
【０００４】
図１５は、かかる従来技術の画像圧縮方法の説明図である。図１５に示すように、まず入力画像Ａを所定のライン数Ｋ単位（例えば、１ライン単位）に、水平（主走査）方向に走査して、所定のライン数Ｌ単位（例えば、８ライン単位）に、行間のように連続する空白ラインを垂直スキップとして符号化し，空白ライン以外の領域を論理行Ｂとして分離する。
【０００５】
次に、分離した論理行Ｂを１列単位に垂直（副走査）方向に走査して、文字間のように黒画素を含まない空白領域を水平スキップし，空白領域以外の黒画素を含む領域を分離する。
【０００６】
そして，各論理行において、白画素のみからなる領域（空白領域）と，黒画素のみからなる領域とを、それぞれ列数を指定して、スキップするよう符号化する。更に、同じ画素値の列が連続する領域Ｃ，Ｅを、その画素値と繰り返し回数により符号化する。黒画素を含むそれ以外の領域Ｄは、その領域内の画素データを、その列数と共にそのまま符号データとして出力する。
【０００７】
このような圧縮方法では、比較的空白が多い、テキスト文書を高速にデータ圧縮するのに適している。
【０００８】
【発明が解決しようとする課題】
前述のビットマップデータの圧縮方法では，図１５に示したように、黒画素を含むそれ以外の領域Ｃ，Ｄ，Ｅの内、副走査方向に一定の高さ（画素値）を持つ領域Ｃ，Ｅは、高さ（画素値）と列数とで符号化して、圧縮できる。しかし、文字の輪郭部分などのように、画素値がなだらかに変化する領域Ｄは、画素値が変化するため、同じ画素列が連続する部分だけを圧縮する従来の方法では、圧縮することが出来ず、画像データをそのまま出力しなければならず、画像の圧縮率を向上する点で改良すべき問題があった。
【０００９】
本発明の目的は、垂直スキップ及び水平スキップする画像圧縮の圧縮率を更に向上するための画像圧縮方法、復元方法及びそのプログラムを提供することにある。
【００１０】
本発明の他の目的は、垂直スキップ及び水平スキップした残りの黒画素を含む領域の圧縮率を更に向上するための画像圧縮方法、復元方法及びそのプログラムを提供することにある。
【００１１】
本発明の更に他の目的は、垂直スキップ及び水平スキップした残りの黒画素を含む領域で、画素値が徐々に変化する部分の符号化して、圧縮率を更に向上するための画像圧縮方法、復元方法及びそのプログラムを提供することにある。
【００１２】
【課題を解決するための手段】
この目的の達成のため、本発明の画像圧縮方法は、画像を主走査方向に走査し、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離する第１の領域分離ステップと，前記第１の領域分離ステップで得られた少なくとも１行は黒画素を含むＬ（Ｌは１以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に走査し、１列単位に黒画素を含む領域と黒画素を含まない領域に分離する第２の領域分離ステップと，前記第２の領域分離ステップによる分離結果に基づき，前記論理行内で副走査方向の同一方向に連続して黒画素が増加又は減少する領域を分離する第３の領域分離ステップと、前記第１、第２、第３の領域分離ステップで得られた各領域を要素として符号化を行う符号化ステップとを有し、前記符号化ステップは，前記第３の領域分離ステップで分離した領域を、前記領域の列数と、前記領域の先頭列の画素値と、前記領域の２列目以降の各列の直前の列に対する黒画素の変化量とで、符号化するステップを含むことを特徴とする。
【００１３】
又、本発明の画像復元方法は、画像を主走査方向に、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離し、少なくとも１行は黒画素を含むＬ（Ｌは１以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に、１列単位に黒画素を含む領域と黒画素を含まない領域に分離し、且つ前記論理行内で副走査方向の同一方向に連続して黒画素が増加又は減少する領域を分離し、前記分離された各領域を要素として符号化された圧縮データを復元する画像復元方法であって、前記圧縮データから前記領域の符号語を解析するステップと、前記解析により、前記符号語前記論理行内で副走査方向の同一方向に連続して黒画素が増加又は減少する領域を、前記符号語に含まれる前記領域の列数と、前記領域の先頭列の画素値と、前記領域の２列目以降の各列の直前の列に対する黒画素の変化量とから、復元するステップとからなることを特徴とする。
【００１４】
又、本発明の画像圧縮プログラムは、画像を主走査方向に走査し、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離する第１の領域分離プログラムデータと，前記第１の領域分離ステップで得られた少なくとも１行は黒画素を含むＬ（Ｌは１以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に走査し、１列単位に黒画素を含む領域と黒画素を含まない領域に分離する第２の領域分離プログラムデータと，前記第２の領域分離ステップによる分離結果に基づき，前記論理行内で副走査方向の同一方向に連続して黒画素が増加又は減少する領域を分離する第３の領域プログラムデータと、前記第１、第２、第３の領域分離プログラムデータステップで得られた各領域を要素として符号化を行う符号化プログラムデータとを有し、前記符号化プログラムデータは，前記第３の領域分離ステップで分離した領域を、前記領域の列数と、前記領域の先頭列の画素値と、前記領域の２列目以降の各列の直前の列に対する黒画素の変化量とで、符号化するプログラムデータを含むことを特徴とする。
【００１５】
又、本発明の画像復元プログラムは、画像を主走査方向に、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離し、少なくとも１行は黒画素を含むＬ（Ｌは１以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に、１列単位に黒画素を含む領域と黒画素を含まない領域に分離し、且つ前記論理行内で副走査方向の同一方向に連続して黒画素が増加又は減少する領域を分離し、分離された各領域を要素として符号化された圧縮データを復元する画像復元プログラムであって、前記圧縮データから前記領域の符号語を解析するプログラムデータと、前記解析により、前記論理行内で副走査方向の同一方向に連続して黒画素が増加又は減少する領域を、前記符号語に含まれる前記領域の列数と、前記領域の先頭列の画素値と、前記領域の２列目以降の各列の直前の列に対する黒画素の変化量とから、復元するプログラムデータとからなることを特徴とする。
【００１６】
本発明の画像圧縮方法によれば，垂直及び水平白スキップを行うとともに、それ以外の領域は、特定の方向に画素値が徐々に変化する領域を分離し，黒画素の変化方向と変化量とにより符号化するため，従来は符号化しないで出力していた文字の境界部分のように画素値の変化が特定の条件を満たす部分の圧縮率を向上できる。このため，データを格納するための記憶容量の削減やデータ転送時間の短縮に寄与する。
【００１７】
更に、本発明の画像圧縮方法では、好ましくは、前記第３の領域分離ステップは、前記黒画素を含む領域の隣接する列の画素値の関係から、前記同一方向に連続して黒画素が増加又は減少する領域を分離するステップからなることを特徴とする。
【００１８】
更に、本発明では、好ましくは、前記第３の領域分離ステップは、２つの列の画素値に対応した検出対象を示す情報と変化方向と変化量を格納する分離基準テーブルを、隣接する列の画素値で参照して、前記同一方向に連続して黒画素が増加又は減少する領域を分離するステップからなることを特徴とする。
【００１９】
更に、本発明では、好ましくは、前記符号化ステップは，前記第３の領域分離ステップにより分離した領域内の各列における黒画素の変化量が一定である場合、該変化量を示す１個の符号を使用して符号化するステップからなることを特徴とする。
更に、本発明では、好ましくは、前記符号化ステップは，前記第３の領域分離ステップにより分離した領域内における各列の黒画素数の変化量が最大Ｍ画素である場合に，各列の黒画素数の変化量を示す符号をＭ≦2N-1を満たすＮビット（Ｎは1以上の整数）で表すステップを含むことを特徴とする。
【００２０】
【発明の実施の形態】
以下、本発明の実施の形態を、画像圧縮方法、適用システム、圧縮処理方法、復元処理方法、他の実施の形態の順で説明する。
【００２１】
［画像圧縮方法］
図１は、本発明の一実施の形態の画像圧縮方法の全体処理フロー図、図２は、図１の圧縮方法の説明図、図３、図４は、図２の符号化方法の説明図である。図２を参照して、図１により、全体処理を説明する。
【００２２】
（Ｓ１０１）まず、入力された画像ＡをＫライン（例えば、１ライン）単位で、水平方向（主走査方向）に走査する。
【００２３】
（Ｓ１０２）主走査により、所定数Ｌのライン（例えば、図１５と同様に、８ライン）毎に、黒画素を全く含まない領域と、黒画素を含む領域とに分離し、行間のように連続する空白ラインを垂直スキップする。一方，黒画素を含む領域を、論理行Ｂとして分離する。
【００２４】
（Ｓ１０３）次に、分離した論理行（８ライン）Ｂの中で、１列単位に、垂直方向（副走査方向）に走査する。
【００２５】
（Ｓ１０４）垂直走査により、１列単位に、黒画素を含む領域と、黒画素を含まない領域とに分離し、文字間のように、黒画素を含まない空白領域をスキップし、空白領域以外の黒画素を含む領域を分離する。図２では、水平スキップ領域と、それ以外の領域Ｃ，Ｄ，Ｅに分離する。
【００２６】
（Ｓ１０５）Ｓ１０４の領域分離結果を利用して、領域Ｄを副走査方向の同一方向に連続して黒画素を増加又は減少する領域Ｆ，Ｇに分離する。
【００２７】
（Ｓ１０６）Ｓ１０２，Ｓ１０４，Ｓ１０５で分離した，各領域を要素として符号化を行う。
【００２８】
即ち、本発明は、前述の従来提案に、ステップＳ１０５を追加し，ステップＳ１０６の符号化を更に追加したものであり、図３により、ステップＳ１０５，１０６を詳細に説明する。図３には、図２の領域ＦおよびＧについて，列ごとに前列との黒画素の変化量を数値で示してある。
【００２９】
即ち、領域の先頭列から順次、前の列の画素値（黒画素の長さ）と，現在の列との画素値との関係から、黒画素が同一方向に連続して増減するかを判定し、黒画素が同一方向に連続して増加する画素列と、黒画素が同一方向に連続して減少する画素列とに分離する。
【００３０】
そして、分離された領域を、領域の先頭列の画素値と、該領域の列数および各列の黒画素の変化量により符号化する。これにより、この領域の符号データサイズが小さくなる。
【００３１】
例えば、図４に示すように、符号データは、符号語（当該パターンの識別子）と、開始値（先頭列の画素値）と、画素値の変化方向と、列数Ｍと、シフト画素数（黒画素の変化量）とで構成される。図４や図３の領域Ｇのように，前列に対する黒画素の変化量が異なる場合には、先頭列以外の各列の前列に対する変化画素数Ｎ１，Ｎ２…で、シフト画素数を構成する。
【００３２】
一方、図５に示すように、図３の領域Ｆのように、前列に対する黒画素の変化量が全て同じである場合，各列ごとの変化量を符号化する替わりに１個の変化量Ｎだけを使って符号化する。これにより，さらに符号データサイズが小さくなる。
このシフト画素数のビット数として、領域の黒画素の最大変化量をＭ画素とし，Ｍ＝２N−１を満たすＮビットを割り当てる。黒画素の変化量が最大Ｍ＝１画素の場合には、Ｎ＝１ビット，同Ｍ＝３画素までの場合には、２ビット，同７画素までの場合には、Ｎ＝３ビットを割り当てる。これにより，黒画素の変化量を示す符号に割り当てるビット数を必要最小限にする。
【００３３】
以上のように、論理行内で分離された黒画素を含む領域を、パターンのまま符号化せず、領域の各列が、黒画素が、列の同一方向に連続的に増加又は減少するものであるかを調べ、列の同一方向に連続して黒画素が増加又は減少する領域を抽出し、この領域を先頭列の画素値と変化量で符号化する。このため、文字の輪郭等の画素値がなだらかに変化する部分で、大幅なデータ圧縮が可能となる。従って、２値ビットマップデータのファイル格納容量を削減でき、又転送時間を短縮できる。
【００３４】
［適用システム］
図６は、本発明の画像圧縮、復元方法を適用するのに好適なシステム構成図である。パーソナルコンピュータ等のクライアント１と、プリンタ２とが、ネットワーク（例えば、ＬＡＮ）３で接続されている。クライアント１は、デイスプレイ１０と、データ処理ユニット１１とを有する。データ処理ユニット１１には、プリンタドライバ１２がインストールされている。
【００３５】
プリンタドライバ１２には、ビットマップ展開プログラム１３と画像圧縮プログラム１４が設けられている。ビットマップ展開プログラム１３は、クライアント１の印刷すべきデータを指定解像度のビットマップデータに展開する。画像圧縮プログラム１４は、本発明に従い、ビットマップデータ（入力画像）を圧縮して、ネットワーク３を介しプリンタ２に転送する。
【００３６】
プリンタ２には、画像復元プログラム２０と、ビットマップメモリ２１と、プリンタエンジン２２とを有する。画像復元プログラム２０は、転送された圧縮データを復元し、ビットマップメモリ２１に展開する。プリンタエンジン２２は、例えば、電子写真プリンタエンジンで構成され、ビットマップメモリ２１に展開されたビットマップデータを、印刷媒体に印刷する。
【００３７】
このシステムでは、クライアント１で、ビットマップ展開した印刷データを作成する。一方、プリンタ２は、ビットマップ展開した印刷データを受信し、印刷動作を行う。このシステムは、近年のパーソナルコンピュータの高速化に伴い、画像処理性能が向上している点に着目し、高解像度（例えば、１２００ｄｐｉ）のビットマップデータの作成を、クライアント１で負担する。
【００３８】
このため、プリンタ２に、かかる高解像度のビットマップデータ生成機能を持たせなくも、高解像度の印刷が可能となる。即ち、プリンタ２に高解像度の描画機能を必要とせず、安価なプリンタで高解像の印刷ができる。しかも、クライアント１の性能は、向上しているため、ビットマップ展開時間は、早くなる。但し、高解像度のビットマップデータを転送すると転送時間が長くなる。この転送時間を短縮するため、画像圧縮、復元する。これにより、クライアント１から見た印刷時間も短縮できる。
【００３９】
［圧縮処理方法］
次に、本発明の一実施の形態の画像圧縮処理を説明する。図７は、本発明の一実施の形態の画像圧縮処理フロー図であり、図８は、図７の検出パターンの一例の隣接列の画素値の変化パターンの説明図、図９は、図７の分離判断テーブルの構成図である。
【００４０】
図７は、図１に示した全体処理におけるステップＳ１０５の処理に対応し、ステップＳ１０５の処理を、図８および図９を参照して説明する。
【００４１】
（Ｓ２０１）参照列番号を示す変数ｋに，論理行の最初の列を示す「０」を設定する。
【００４２】
（Ｓ２０２）分離したパターンの個数を示す変数ｍを「０」にクリアする。
【００４３】
（Ｓ２０３）分離したパターンの列数を示す変数ｎを「０」にクリアする。
【００４４】
（Ｓ２０４）現在の参照列ｋと次の列ｋ＋１とが、分離するパターンに該当するか否かを判断する。両列が分離するパターンに該当しないと判断した場合には、処理をＳ２０５に進め，該当すると判断した場合には、処理をＳ２０７に移す。この判断基準を、図８（Ａ）乃至図８（Ｄ）で説明する。分離するパターンである場合は，列ｋと列ｋ＋１の関係が、図８（Ａ）〜図８（Ｄ）のいずれかのパターンに該当する。即ち、列ｋ＋１の画素値が列ｋに対して，図８（Ａ）は列の上方向に黒画素がｘ画素増加するパターン，図８（Ｂ）は列の下方向に黒画素がｘ個増加するパターン，図８（Ｃ）は列の下方向に黒画素がｘ個減少するパターン，図８（Ｄ）は列の上方向に黒画素がｘ個減少するパターンである。このｘは、「０」以上の整数である。
【００４５】
この該当可否の判断には、図９に示す分離判断テーブルを使用するとよい。本テーブルは、図９（Ａ）に示すように、２列の画素値Ａ，Ｂをアドレスとしており，各列の画素値の組み合わせに対し、該当可否（検出対象か否かを示す）フラグ，黒画素の変化方向，変化画素数を格納する。
【００４６】
即ち、対象となる２列の画素値をアドレスとして、テーブルを参照すると、該当可否、黒画素の変化方向、変化画素数を同時に得ることができるように構成している。
【００４７】
なお，図７の処理を開始する前に，図８の列の関係に基づいて、テーブルの内容をあらかじめ設定しておく。例えば、論理行を８ライン、即ち、１列８ビットの画素値とすると、図９（Ｂ）に示すように、２５６×２５６の組み合わせのテーブルＴが構成される。この各々の組み合わせに、該当可否（検出対象か否かを示す）フラグ，黒画素の変化方向，変化画素数を設定する。例えば、ｘ＝１とすると、図８（Ａ）乃至図８（Ｄ）の検出内容は、テーブルＴの各々１０２、１００、１０６、１０４の欄に相当する。同様に、ｘ＝０の場合（同じ値の列が続く場合）にも、検出対象として、フラグを「１」に、テーブルＴにセットする。
【００４８】
（Ｓ２０５）次の列を参照するために，列番号ｋに「１」を加える。
【００４９】
（Ｓ２０６）列ｋ＋１が最終列を超えているか否かを判断し，超えている場合には、処理を完了する。最終行を超えていない場合には、処理をＳ２０４に戻す。
【００５０】
（Ｓ２０７）Ｓ２０４において、列ｋと列ｋ＋１の画素値をアドレスとして、図９（Ｂ）のテーブルＴを参照することで得た黒画素の変化方向を、Ｄ［ｍ］に格納する。Ｄ［ｍ］は，分離したパターンを符号化する際に使用する。
【００５１】
（Ｓ２０８）分離するパターンの先頭の論理行内における列番号となるｋを、Ｐｓ［ｍ］に格納する。
【００５２】
（Ｓ２０９）Ａ［ｍ］［ｎ］に、列ｋに対する列ｋ＋１の変化画素数を格納する。本画素数も、列ｋと列ｋ＋１の画素数をアドレスとして、図９（Ｂ）のテーブルＴを参照した際に得られる。
【００５３】
（Ｓ２１０）ｎが１以上であるか否か，即ち，検出した分離するパターンの列数が２列以上であるか否かを判断する。列数が２以上であれば、処理をＳ２１１に進め，列数が２未満であれば、Ｓ２１１とＳ２１２の処理をスキップして、処理をＳ２１３に移す。
【００５４】
（Ｓ２１１）Ｂ［ｍ］に、変化画素数Ａ［ｍ］［ｋ−１］と変化画素数Ａ［ｍ］［ｋ］の大きいほうを格納する。Ｂ［ｍ］には、最終的に分離したパターンの各列の変化画素数の最大値が格納され，後の符号化処理により使用する。
【００５５】
（Ｓ２１２）Ｐｅ［ｍ］に、現在の列番号ｋを格納する。Ｐｅ［ｍ］には、最終的に分離したパターンの論理行内における最後の列番号が格納される。Ｐｅ［ｍ］とＰｓ［ｍ］とをあわせて，抽出したパターンの論理行内における位置を特定するとともに、該分離したパターンの列数を得ることができ，符号化の際に使用する。
【００５６】
（Ｓ２１３）分離されたパターンの列数を示す変数ｎに「１」を加える。
【００５７】
（Ｓ２１４）論理行内における参照列番号を示す変数ｋに「１」を加える。
【００５８】
（Ｓ２１５）列ｋ＋１が最終列を超えているか否かを判断し，超えている場合には、処理を完了する。最終列を超えていない場合には、処理をＳ２１６に進める。
【００５９】
（Ｓ２１６）Ｓ２０４と同様に，現在の参照列ｋと次の列ｋ＋１が、分離するパターンに該当するか否かを、図９（Ｂ）のテーブルＴを参照して判断する。両列が分離するパターンに該当しないと判断した場合には，処理をＳ２１８に進め，該当すると判断した場合には、処理をＳ２１７進める。
【００６０】
（Ｓ２１７）Ｓ２１６におけるテーブル参照の結果得られた列ｋに対する列ｋ＋１の画素変化方向が、Ｄ［ｍ］と一致するか否かを判断する。即ち，黒画素の変化する方向が、上から下，あるいは下から上に切り替わったか否かを判断する。黒画素の変化方向が切り替わったと判断した場合には、現在検出中のパターンの処理を終了し、処理をＳ２１８に進める。黒画素の変化方向が同じであると判断した場合には，現在分離中のパターンがまだ継続することから、処理をＳ２０９に戻す。
【００６１】
（Ｓ２１８）分離したパターンの個数を示す変数ｍに「１」を加え，処理をＳ２０３に戻して、次のパターンの分離処理を開始する。
【００６２】
以上の処理を行うことにより，論理行の中から目的とする黒画素が同一方向に増加または減少する領域が、個々のパターンとして分離される。
【００６３】
次に、分離されたパターンの符号化を説明する。図１０は、本発明の符号語のビット構成の実施の形態を示す図である。図７の分離処理による分離結果に基づいて、分離した各領域を符号化する。
【００６４】
先頭ビットＢ１は，変化画素数の最大値から決まるビット長を示すビットであり，後述する各列の変化画素数の最大ビット数Ｂ［ｍ］を表す。次のビットＢ２は，パターンの種類を指定するビットであり、「０」ならば、各列の画素値の変化量が異なるパターン，「１」ならば、全ての列の画素値の変化量が同じであるパターンを表す。前者の場合には、各列ごとに画素値の変化量を符号出力するが，後者の場合には、各列の画素値の変化量を符号出力しない。
【００６５】
次のビットＢ３は、列内における画素値の変化方向を指定するビットであり，黒画素の変化方向が、図８（Ａ）、図８（Ｄ）のように、列の上方向の場合には「０」，同図（Ｂ）、（Ｃ）のように、列の下方向の場合には、「１」を指定する。
【００６６】
次のビットＢ４は，分離したパターンの列数を示すビットである。次のビットＢ５は，分離したパターンの先頭の列の画素値を指定するビットである。次のビットＢ６は、分離したパターンの先頭列以降の各列について前列との変化画素数を指定するビットであり，（Ｂ４で指定した列数−１）個の符号が出力される。各列の変化画素数を示すビット長は，Ｂ１で指定したビット長となる。
【００６７】
図１１は、本発明の圧縮方法の効果を説明する適用例を示す図であり、図１２は、この画像を本発明で符号化した場合の説明図、図１３は、この画像を従来の方法で符号化した場合の説明図である。
【００６８】
図１１は、漢字文字Ｒの飾り部分の台形Jを拡大したものである。論理行のライン数Ｌが「８」の場合、この台形は、１９列８ラインの画像である。即ち、各列は、８ビットの画素値を持つ。
【００６９】
図１２に示すように、本発明では、この台形は、パターンＡおよびパターンＢの２個のパターンに分離され、パターンＡは、８列で、先頭列の画素値が１６進表示で、0x01、２進表示で、00000001，パターンＢは、１１列で、先頭列の画素値が１６進表示で、0xff、２進表示で、=11111111である。
【００７０】
各パターンＡ，Ｂを，図１０の符号語により符号化すると，図１２に示したように、パターンＡは１６ビット，パターンＢは２６ビットの符号サイズのデータで済む。一方，従来の画像圧縮方法による符号化では，図１３に示すように、１９列の画像がそのまま出力されるため，符号サイズは１９×８＝１５２ビットとなる。このように、約１／１０にデータ圧縮でき、大幅なデータ圧縮が可能となる。
【００７１】
［復元処理方法］
図１４は、本発明の画像圧縮されたデータを復元するための復元処理フロー図である。
【００７２】
（Ｓ１）パターンテーブルをクリアして，パターンが何も登録されていない状態にする。
【００７３】
（Ｓ２）現在の復元位置に応じて，復元した画像を出力する領域を設定する。
【００７４】
（Ｓ３）符号データ中における現在の復号位置にある符号データを解析して符号語（垂直スキップ、水平スキップ、分離パターン）の種類を識別する。
【００７５】
（Ｓ４）Ｓ３の解析結果に基づき，解析した符号語が、本発明により符号化されているか否かを識別し，本発明による符号されていた場合（分離パターン）には、処理をＳ５に進め，それ以外の場合には、処理をＳ７に移す。
【００７６】
（Ｓ５）本発明による符号語の構成から，その領域の各列の画素値を計算し、ビットマップパターンデータを生成する。即ち、先頭列の画素値に対し、変化方向と変化量から各列の画素値を計算する。
【００７７】
（Ｓ６）この画素値のパターンデータを，復元画像書き込み領域に出力する。
【００７８】
（Ｓ７）本発明によらない符号語の場合（垂直スキップ、水平スキップ）には，従来の復元方法による復号処理を行い，復元した画像データを復元画像書き込み領域に出力する。
【００７９】
（Ｓ８）論理行の最後に達したか否かを識別し，論理行の最後まで達していない場合には，処理をＳ２に戻し，論理行の最後に達していた場合には、処理をＳ９に進める。
【００８０】
（Ｓ９）全ての論理行の復元処理が完了したか否かを識別し，終了していない場合には、処理をＳ２に戻し，終了した場合には復号処理を完了する。
【００８１】
以上の処理により，本発明により符号化された画像データを元の画像に復元することができる。
【００８２】
［他の実施の形態］
前述の実施の形態では、論理行の黒画素を含む領域を、全て対象として、符号化していたが、この領域の内、領域全体が黒画素のものや、領域に決められた横線を有するものを、この照合対象から外し、別途符号化することもできる。
【００８３】
又、圧縮の適応例を印刷データの転送で説明したが、ファイルへの格納等にも適用できる。
【００８４】
以上、本発明を実施の形態で説明したが、本発明の趣旨の範囲内において、種々の変形が可能であり、これらを本発明の範囲から排除するものではない。
【００８５】
（付記１）画像を主走査方向に走査し、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離する第１の領域分離ステップと，前記第１の領域分離ステップで得られた少なくとも１行は黒画素を含むＬ（Ｌは１以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に走査し、１列単位に黒画素を含む領域と黒画素を含まない領域に分離する第２の領域分離ステップと，前記第２の領域分離ステップによる分離結果に基づき，前記論理行内で副走査方向の同一方向に連続して黒画素が増加又は減少する領域を分離する第３の領域分離ステップと、前記第１、第２、第３の領域分離ステップで得られた各領域を要素として符号化を行う符号化ステップとを有し、前記符号化ステップは，前記第３の領域分離ステップで分離した領域を、前記領域の列数と、前記領域の先頭列の画素値と、前記領域の２列目以降の各列の直前の列に対する黒画素の変化量とで、符号化するステップを含むことを特徴とする画像圧縮方法。
【００８６】
（付記２）前記第３の領域分離ステップは、前記黒画素を含む領域の隣接する列の画素値の関係から、前記同一方向に連続して黒画素が増加又は減少する領域を分離するステップからなることを特徴とする付記１の画像圧縮方法。
【００８７】
（付記３）前記第３の領域分離ステップは、２つの列の画素値に対応した検出対象を示す情報と変化方向と変化量を格納する分離基準テーブルを、隣接する列の画素値で参照して、前記同一方向に連続して黒画素が増加又は減少する領域を分離するステップからなることを特徴とする付記１の画像圧縮方法。
【００８８】
（付記４）前記符号化ステップは，前記第３の領域分離ステップにより分離した領域内の各列における黒画素の変化量が一定である場合、該変化量を示す１個の符号を使用して符号化するステップからなることを特徴とする付記１の画像圧縮方法。
【００８９】
（付記５）前記符号化ステップは，前記第３の領域分離ステップにより分離した領域内における各列の黒画素数の変化量が最大Ｍ画素である場合に，各列の黒画素数の変化量を示す符号をＭ≦2N-1を満たすＮビット（Ｎは1以上の整数）で表すステップを含むことを特徴とする付記１の画像圧縮方法。
【００９０】
（付記６）画像を主走査方向に、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離し、少なくとも１行は黒画素を含むＬ（Ｌは１以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に、１列単位に黒画素を含む領域と黒画素を含まない領域に分離し、且つ前記論理行内で副走査方向の同一方向に連続して黒画素が増加又は減少する領域を分離し、各分離された領域を要素として符号化をされた圧縮データを復元する画像復元方法であって、前記圧縮データから前記領域の符号語を解析するステップと、前記解析により、前記符号語の前記領域の先頭列の画素値、列数、画素変化量から前記領域の各列の画素パターンを復元するステップとからなることを特徴とする画像復元方法。
【００９１】
（付記７）画像を主走査方向に走査し、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離する第１の領域分離プログラムデータと，前記第１の領域分離ステップで得られた少なくとも１行は黒画素を含むＬ（Ｌは１以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に走査し、１列単位に黒画素を含む領域と黒画素を含まない領域に分離する第２の領域分離プログラムデータと，前記第２の領域分離ステップによる分離結果に基づき，前記論理行内で副走査方向の同一方向に連続して黒画素が増加又は減少する領域を分離する第３の領域分離プログラムデータと、前記第１、第２、第３の領域分離プログラムデータで得られた各領域を要素として符号化を行う符号化プログラムデータとを有し、前記符号化プログラムデータは，前記第３の領域分離プログラムデータで分離した領域を、前記領域の列数と、前記領域の先頭列の画素値と、前記領域の２列目以降の各列の直前の列に対する黒画素の変化量とで、符号化するプログラムデータを含むことを特徴とする画像圧縮プログラム。
【００９２】
（付記８）画像を主走査方向に、Ｋ（Ｋは１以上の整数）行単位に黒画素を含む領域と黒画素を含まない領域とに分離し、少なくとも１行は黒画素を含むＬ（Ｌは１以上の整数）行で定義される論理行の中で，該主走査方向と直交する副走査方向に、１列単位に黒画素を含む領域と黒画素を含まない領域に分離し、且つ前記論理行内で副走査方向の同一方向に連続して増加又は減少する領域を分離し、各分離された領域を要素として符号化をされた圧縮データを復元する画像復元プログラムであって、前記圧縮データから前記領域の符号語を解析するプログラムデータと、前記解析により、前記符号語の前記領域の列数と、前記領域の先頭列の画素値と、前記領域の２列目以降の各列の直前の列に対する黒画素の変化量とから前記領域の画素パターンを復元するプログラムデータとからなることを特徴とする画像復元プログラム。
【００９３】
【発明の効果】
以上説明したように，本発明の画像圧縮方法によれば，垂直及び水平白スキップを行うとともに、それ以外の領域は、特定の方向に画素値が徐々に変化する領域を分離し，黒画素の変化方向と変化量とにより符号化するため，従来は符号化しないで出力していた文字の境界部分のように画素値の変化が特定の条件を満たす部分の圧縮率を向上できる。このため，データを格納するための記憶容量の削減やデータ転送時間の短縮に寄与する。
【図面の簡単な説明】
【図１】本発明の一実施の形態の画像圧縮方法の全体処理フロー図である。
【図２】図１の画像圧縮方法の説明図である。
【図３】図２の画像圧縮のパターンの構成図である。
【図４】図１の符号化データの説明図である。
【図５】図１の他の符号化データの説明図である。
【図６】本発明の画像圧縮方法の適用システムの説明図である。
【図７】本発明の一実施の形態の画像圧縮処理フロー図である。
【図８】図７の検出パターンの説明図である。
【図９】図７の分離判断テーブルの構成図である。
【図１０】図１の符号化ステップの説明図である。
【図１１】本発明の一実施の形態の適用画像例の説明図である。
【図１２】本発明の一実施の形態の適用例の説明図である。
【図１３】本発明の比較例の圧縮方法による符号化の説明図である。
【図１４】本発明の一実施の形態の画像復元処理フロー図である。
【図１５】従来の画像圧縮方法の説明図である。
【符号の説明】
１  クライアント
２  プリンタ
３  ネットワーク
１１  処理ユニット
１２  プリンタドライバ
１３  ビットマップ展開プログラム
１４  データ圧縮プログラム
２１  データ復元プログラム
【図１】
0003901514.tif 000002
【図２】
0003901514.tif 000003
【図３】
0003901514.tif 000004
【図４】
0003901514.tif 000005
【図５】
0003901514.tif 000006
【図６】
0003901514.tif 000007
【図７】
0003901514.tif 000008
【図８】
0003901514.tif 000009
【図９】
0003901514.tif 000010
【図１０】
0003901514.tif 000011
【図１１】
0003901514.tif 000012
【図１２】
0003901514.tif 000013
【図１３】
0003901514.tif 000014
【図１４】
0003901514.tif 000015
【図１５】
0003901514.tif 000016