(57)【要約】【課題】高頻度に出現する列数１の非圧縮領域の符号化効率を向上させる。【解決手段】第１領域分離部１８はビットマップデータを主走査方向に走査し、１以上の整数である論理行単位に黒画素を含む領域と黒画素を含まない領域とに分離し、第１符号化部２０は第１領域分離部１８で得られた黒画素を含まない領域を符号化する。第２領域分離部２２は第１領域分離部１８で分離された黒画素を含む論理行を副走査方向に走査して１列単位に黒画素を含む領域と黒画素を含まない領域とに分離し、第２符号化部２４は第２領域分離部２２で分離された連続する列数２以上の黒画素を含む領域を符号化する。第３領域分離部２６は第２符号化部２４で符号化されなかった領域から、予め定めた列数１の参照パターンに一致する領域を分離し、第３符号化部２８は第３領域分離部２６で分離された参照パターンに一致する領域を符号化する．【選択図】          図１
2004304424.tif 000002
【特許請求の範囲】
【請求項１】
第１領域分離部により、ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
第１符号化部により、前記第１領域分離ステップで分離された黒画素を含まない領域を要素として符号化する第１符号化ステップと、
第２領域分離部により、前記第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
第２符号化部により、前記第２領域分離ステップで分離された連続する列数２以上の黒画素を含む領域を要素として符号化する第２符号化ステップと、
第３領域分離部により、前記第２符号化ステップで符号化されなかった領域から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
第３符号化部により、前記第３領域分離ステップで分離された前記参照パターンに一致する領域を符号化する第３符号化ステップと、
を備えたことを特徴とする画像圧縮方法。
【請求項２】
第１領域分離部により、ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
第２領域分離部により、前記第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
第３領域分離部により、前記第２領域分離ステップで分離された列数１の黒画素を含む領域の中から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
符号化部により、前記第１乃至第３領域分離ステップで分離された各領域を要素として符号化する符号化ステップと、
を備えることを特徴とする画像圧縮方法。
【請求項３】
コンピュータに、
ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
前記第１領域分離ステップで分離された黒画素を含まない領域を要素として符号化する第１符号化ステップと、
前記第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
前記第２領域分離ステップで分離された連続する列数２以上の黒画素を含む領域を要素として符号化する第２符号化ステップと、
前記第２符号化ステップで符号化されなかった領域から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
前記第３領域分離ステップで分離された前記参照パターンに一致する領域を符号化する第３符号化ステップと、
を実行させることを特徴とするプログラム。
【請求項４】
コンピュータに、
ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
前記第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
前記第２領域分離ステップで分離された列数１の黒画素を含む領域の中から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
前記第１乃至第３領域分離ステップで分離された各領域を要素として符号化する符号化ステップと、
を実行させるプログラムを格納したコンピュータ読出し可能な記録媒体。
【請求項５】
ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離部と、
前記第１領域分離部で分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離部と、
前記第２領域分離部で分離された列数１の黒画素を含む領域の中から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離部と、
前記第１乃至第３領域分離部で分離された各領域を要素として符号化する符号化部と、
を備えたことを特徴とする画像圧縮装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フォントを持たないプリンタに圧縮したビットマップ画像を直接転送して印刷を行う画像圧縮方法、プログラム、記憶媒体及び装置に関し、特に列数１の黒画素を含む領域を含めて効率的に圧縮する画像圧縮方法、プログラム、記憶媒体及び装置に関する。
【０００２】
【従来の技術】
従来のビットマップ画像の圧縮方法としては、ＭＨ（Ｍｏｄｉｆｉｅｄ  Ｈｕｆｆｍａｎ）やＭＲ（Ｍｏｄｉｆｉｅｄ  ＲＥＡＤ）、ＭＭＲ（Ｍｏｄｉｆｉｅｄ  Ｍｏｄｉｆｉｅｄ  ＲＥＡＤ）、ＪＢＩＧ（Ｊｏｉｎｔ  Ｂｉ−Ｌｅｖｅｌ  Ｉｍａｇｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）等があり、ＦＡＸ通信や画像ファイリングに広く使用されている。
【０００３】
これらの圧縮方法はビット処理を多用するなど高速な符号化処理に向かないことから、高速処理を狙ったビットマップデータの圧縮方法及び圧縮装置が提案されている（特許文献１）。
【０００４】
この画像圧縮方法では、図１８（Ａ）のように、入力画像１４２を水平方向に走査して黒画素を含む領域１４６−１，１４６−２を分離し、この分離した画像を図１８（Ｂ）のように垂直方向に走査して黒画素を含む領域１５２−１〜１５２−３を分離する。図１８（Ａ）の黒画素を含まない領域１４４−１は垂直水平方向へのスキップ１４８として符号化し、図１８（Ｂ）の黒画素を含まない領域１５０−１，１５０−２は水平方向へのスキップ１５１−１，１５１−２として符号化する。
【０００５】
分離された黒画素を含む領域１５２−１〜１５２−３は、同一画素値を持つ列が連続する同一列パターン１５４を列の画素値と繰り返し回数により符号化し、それ以外は圧縮できない非圧縮領域として画素値をそのまま符号出力する。
【０００６】
更に図１８（Ｂ）のように分離された黒画素を含む領域１５２−１〜１５２−３の圧縮率を向上させるために、列の画素値が階段状に変化する階段状パターン１５６を圧縮する方法（特願２００１−３１７７１４号）や、一定の列と幅のパターンが連続して繰り返し出現する反復パターン１５８を圧縮する方法（特願２００１−３８８９３１号）、更に離散的に出現する同一パターンを圧縮する方法（特願２００１−３９７７１５号）を提案している。これらの画像圧縮方法を適用した後に残った領域は、圧縮できない非圧縮領域として画素値に非圧縮を示す種別符号語を付けてそのまま符号出力する。
【０００７】
【特許文献１】
特許第２７８２９８号公報
【０００８】
【発明が解決しようとする課題】
しかしながら、このような従来の画像圧縮方法では、圧縮できなかった非圧縮領域を符号出力する際に、他の符号と区別するため非圧縮であることを示す種別符号語を付加する必要があるため、元データサイズよりもデータ量が増加してしまう。
【０００９】
例えば図１８（Ｃ）のように非圧縮領域１６０−１〜１６０−５が残った場合、１列の黒画素を含む非圧縮領域を１バイト、非圧縮を示す種別符号語を１バイトとすると、図１８（Ｄ）の符号データにおいては１バイトの種別符号語が付加されることで、１バイトが２バイトに、連続する２バイトは３バイトとなり、符号化前は５バイトであったものが、符号データになると９バイトに増加してしまう。
【００１０】
また、図１８（Ｃ）のような非圧縮領域は、一般的に列数が少ないものほど出現頻度が高く、列数１の領域の出現頻度を最大として列数の増加に従って出現頻度が減少する傾向がある。このため、出現頻度が最も多い列数ｌの非圧縮領域は種別符号語を付加することで符号サイズが２倍に増加し、符号化効率が著しく低くなるという問題があった。
【００１１】
本発明は、高頻度に出現する列数１の非圧縮領域の符号化効率を向上させる圧縮方法、プログラム、記憶媒体及び装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
図１は本発明の原理説明図である。本発明は、画像圧縮方法を提供する。この画像圧縮方法は、
第１領域分離部１８により、ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
第１符号化部２０により、第１領域分離ステップで分離された黒画素を含まない領域を要素として符号化する第１符号化ステップと、
第２領域分離部２２により、第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
第２符号化部２４により、第２領域分離ステップで分離された連続する列数２以上の黒画素を含む領域を選択して符号化する第２符号化ステップと、
第３領域分離部２６により、第２符号化ステップで符号化されなかった領域から予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
第３符号化部２８により、第３領域分離ステップで分離された参照パターンに一致する領域を符号化する第３符号化ステップと、
を備えることを特徴とする。
【００１３】
このように本発明は、画像を主走査（水平）方向に走査して黒画素を含む領域と黒画素を含まない領域に分離し、黒画素を含む領域を更に副走査（垂直）方向に走査して黒画素を含む領域と黒画素を含まない領域に分離して分離された各領域を要素として符号化する際に、非圧縮領域として残る領域について、列数が短いほど出現頻度が高く、列数１の領域の出現頻度が最大となりという特徴に着目し、非圧縮領域の中で出現頻度の最も高い列数１の画像に符号を割り当てることで、従来非圧縮で出力していた領域を符号化して圧縮し、圧縮率を高める。
【００１４】
ここで列数１の黒画素を含む非圧縮領域の符号化のために分離する参照パターンは、第２符号化ステップにより符号化されずに残った列数１の黒画素を含む領域の中で出現頻度が高い方から所定数選択した複数種類のパターンであり、第３符号化ステップは、第３領域分離ステップで分離された列数１の黒画素を含む領域を、一致する参照パターンのパターン番号を示す符号と符号種別を示す符号を用いて符号化する。
【００１５】
１列の非圧縮領域と比較する参照パターンとしては、出現頻度の高いパターンが既知の場合には、既知のパターンを用いてもよいが、入力画像は多様で特徴も異なることから、画像ごとに最適なパターンが存在する可能性がある。そこで、符号化の際に入力画像から得た１列の非圧縮領域の出現頻度を求め、この中から出現頻度が高いパターンを参照パターンとして動的に選択・決定することで、画像ごとに符号化効率を高めるのに好適な参照パターンを選択できる。
【００１６】
勿論、参照パターンは、第３領域分離ステップで分離される列数１の黒画素を含む領域について予め統計的に求めた出現頻度が高い方から所定数選択した複数種類の既知パターンであっても良い。
【００１７】
また参照パターンを、１列内の黒画素が連続して１又は複数含まれるパターンとし、第３符号化ステップは、第３領域分離ステップで分離された列数１の黒画素を含む領域を、一致する参照パターンの１列内の黒画素の位置と連続数を示す符号及び符号種別を示す符号を用いて符号化しても良い。
【００１８】
これは列数１の画素パターンの一般的な出現頻度は、黒画素を１個だけ含むパターンの出現頻度が最大で、次いで２個以上の隣接する黒画素を含むパターンの出現頻度が高いという特徴がある。このことから、列数１の黒画素を含む領域を、連続する黒画素の数と黒画素の位置を示す符号を用いて符号化で圧縮率を更に高める。
【００１９】
また参照パターンを、１列内の黒画素が１個含まれるパターンに絞り、第３符号化ステップは、第３領域分離ステップで分離された列数１の黒画素を含む領域を、一致する参照パターンの１列内の黒画素の位置を示す符号及び符号種別を示す符号とを用いて符号化するようにしても良い。
【００２０】
これは連続する複数の黒画素の数と位置を示す符号に割り当てるビットの余裕がない場合に好適であり、黒画素を１個だけ含むパターンのみを符号化する。この場合も、一般に列数１の領域の中で黒画素を１画素だけ含むパターンの出現頻度が最大であることから、複数の連続する黒画素を符号化する場合には劣るものの、十分な圧縮効果が得られる。
【００２１】
更に、符号種別を示す符号ビットに余裕がある場合には、参照パターンを、１列内の黒画素が１又は複数含まれるパターンとし、第３符号化ステップは、第３領域分離ステップで分離された列数１の黒画素を含む領域を、１列内の黒画素の位置を示す符号及び黒画素連続数と符号種別を示す符号を用いて符号化しても良い。
【００２２】
第１符号化ステップは、第１領域分離ステップで得られた黒画素を含まない領域をスキップ行数で符号化し、第２符号化ステップは、第２領域分離ステップで得られた黒画素を含まない領域をスキップ列数で符号化すると共に、第２領域分離ステップで分離された連続する２列以上の黒画素を含む領域を、同一列パターン、階段状パターン又は反復パターンに分けてそれぞれ符号化する。
【００２３】
本発明の画像圧縮装置の別の形態にあっては、
第１領域分離部１８により、ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
第２領域分離部２２により、第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
第３領域分離部２６により、第２領域分離ステップで分離された列数１の黒画素を含む領域の中から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
符号化部により、第１乃至第３領域分離ステップで分離された各領域を要素として符号化する符号化ステップと、
を備えることを特徴とする。
【００２４】
本発明は、画像圧縮用のプログラムを提供する。このプログラムは、コンピュータに、
ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
第１領域分離ステップで分離された黒画素を含まない領域を要素として符号化する第１符号化ステップと、
第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
第２領域分離ステップで分離された連続する列数２以上の黒画素を含む領域を要素として符号化する第２符号化ステップと、
第２符号化ステップで符号化されなかった領域から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
第３領域分離ステップで分離された前記参照パターンに一致する領域を符号化する第３符号化ステップと、
を実行させることを特徴とする。
【００２５】
本発明による画像圧縮用のプログラムの別の形態にあっては、コンピュータに、
ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
第２領域分離ステップで分離された列数１の黒画素を含む領域の中から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
第１乃至第３領域分離ステップで分離された各領域を要素として符号化する符号化ステップと、
を実行させることを特徴とする。
【００２６】
本発明は、画像圧縮用のプログラムを格納したコンピュータ読出し可能な記憶媒体を提供する。この記憶媒体には、コンピュータに、
ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
第１領域分離ステップで分離された黒画素を含まない領域を要素として符号化する第１符号化ステップと、
第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
第２領域分離ステップで分離された連続する列数２以上の黒画素を含む領域を要素として符号化する第２符号化ステップと、
第２符号化ステップで符号化されなかった領域から予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
前記第３領域分離ステップで分離された前記参照パターンに一致する領域を符号化する第３符号化ステップと、
を実行させるプログラムを格納する。
【００２７】
本発明は、画像圧縮用のプログラムを格納したコンピュータ読出し可能な記憶媒体の別の形態にあっては、コンピュータに、
ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
第２領域分離ステップで分離された列数１の黒画素を含む領域の中から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
第１乃至第３領域分離ステップで分離された各領域を要素として符号化する符号化ステップと、
を実行させるプログラムを格納する。
【００２８】
本発明は画像圧縮装置を提供する。この画像圧縮装置は、ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離部１８と、
第１領域分離部１８で分離された黒画素を含まない領域を要素として符号化する第１符号化部２０と、第１領域分離部１８で分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離部２２と、第２領域分離部２２で分離された連続する列数２以上の黒画素を含む領域を要素として符号化する第２符号化部２４と、第２符号化部２４で符号化されなかった領域から予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離部２６と、第３領域分離部２６で分離された参照パターンに一致する領域を符号化する第３符号化部２８とを備える。
【００２９】
本発明の画像圧縮装置の別の形態にあっては、ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離部と、第１領域分離部で分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離部と、第２領域分離部で分離された列数１の黒画素を含む領域の中から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離部と、第１乃至第３領域分離部で分離された各領域を要素として符号化する符号化部とを備えたことを特徴とする。
【００３０】
なお、本発明におけるプログラム、記憶媒体及び画像記憶装置の詳細は、画像圧縮方法と基本的に同じになる。
【００３１】
【発明の実施の形態】
図２は、本発明による画像圧縮装置の実施形態を示した機能構成のブロック図である。本発明の画像圧縮装置１０は、パーソナルコンピュータ１１におけるプログラムの実行により機能として実現され、プリンタ１２側に本発明の画像圧縮装置１０に対応して画像復元装置３６を設けている。
【００３２】
画像圧縮装置１０は、パーソナルコンピュータ１１で印刷のために生成された２値のビットマップデータを画像データとして入力し、この画像データを圧縮してプリンタ１２に転送する。プリンタ１２はフォントを持たないプリンタであり、パーソナルコンピュータ１１からのビットマップ画像の直接転送を受けて印刷を行う。
【００３３】
本発明の画像圧縮装置１０に対してはバッファメモリ１４が設けられ、バッファメモリ１４にはプリンタ１２に転送する２値ビットマップデータが保持される。画像圧縮装置１０で圧縮された符号化データはプリンタインタフェース３２からプリンタ１２に転送され、プリンタ１２のプリンタインタフェース３４で受信されて、画像復元装置３６で元の２値ビットマップデータに復元される。画像復元装置３６で復元されたビットマップデータは、コントローラ３８からプリンタエンジン４０に与えられて印刷動作が行われる。
【００３４】
パーソナルコンピュータ１１側の画像圧縮装置１０には、第１領域分離部１８，第１符号化部２０，第２領域分離部２２，第２符号化部２４，第３領域分離部２６，第３符号化部２８、更に参照パターンファイル３０が設けられている。
【００３５】
第１領域分離部１８は、バッファメモリ１４に保持されたビットマップデータを主走査方向（水平方向）に走査することにより、１以上の整数であるＫ行の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する。第１符号化部２０は、第１領域分離部１８で分離された黒画素を含まない領域を要素として符号化する。
【００３６】
第２領域分離部２２は、第１領域分離部１８で分離された黒画素を含む論理行を主走査方向と交差する副走査方向（垂直方向）に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する。第２符号化部２４は、第２領域分離部２２で分離された連続する列数２以上の黒画素を含む領域を要素として符号化する。
【００３７】
第３領域分離部２６は、第２符号化部２４で符号化されなかった黒画素を含む領域から、参照パターンファイル３０に登録されている予め定めた列数１の参照パターンに一致する領域を分離する。第３符号化部２８は、第３領域分離部２６により分離された参照パターンに一致する領域を符号化する。
【００３８】
図２における本発明の画像圧縮装置の機能を備えたパーソナルコンピュータは，例えば図３のようなコンピュータのハードウェア資源により実現される。
【００３９】
図３のコンピュータにおいて、ＣＰＵ２００のバス２０１にはＲＡＭ２０２、ハードディスドコントローラ（ソフト）２０４、フロッピィディスクドライバ（ソフト）２１０、ＣＤ−ＲＯＭドライバ（ソフト）２１４、マウスコントローラ２１８、キーボードコントローラ２２２、ディスプレイコントローラ２２６、通信用ボード２３０、プリンタドライバ２３４が接続される。
【００４０】
ハードディスクコントローラ２０４はハードディスクドライブ２０６を接続し、本発明の画像圧縮処理を実行するアプリケーションプログラムをローディングしており、コンピュータの起動時にハードディスクドライブ２０６から必要なプログラムを呼び出して、ＲＡＭ２０２上に展開し、ＣＰＵ２００により実行することにより、プリンタドライバ２３４における画像圧縮を行う。
【００４１】
フロッピィディスクドライバ２１０にはフロッピィディスクドライブ（ハード）２１２が接続され、フロッピィディスク（Ｒ）に対する読み書きができる。ＣＤ−ＲＯＭドライバ２１４に対しては、ＣＤドライブ（ハード）２１６が接続され、ＣＤに記憶されたデータやプログラムを読み込むことができる。マウスコントローラ２１８はマウス２２０の入力操作をＣＰＵ２００に伝える。
【００４２】
キーボードコントローラ２２２はキーボード２２４の入力操作をＣＰＵ２００に伝える。ディスプレイコントローラ２２６は表示部２２８に対して表示を行う。通信用ボード２３０は通信回線２３２を使用し、インターネット等のネットワークを介して他のコンピュータやサーバとの間で通信を行う。
【００４３】
プリンタドライバ２３４は本発明の画像圧縮装置により画像圧縮された符号データをプリンタ１２に転送し、プリンタ１２側に設けた符号データを復元して印刷させる。
【００４４】
図４は、本発明の画像圧縮装置１０によるビットマップ画像の圧縮処理の説明図である。本発明の画像圧縮処理にあっては、図４（Ａ）のように、入力画像４２を主走査方向（水平方向）に走査して、１以上の整数Ｋとなる論理行単位に、黒画素を含まない領域４４−１，４４−２と黒画素を含む領域４６−１，４６−２とに分離する。
【００４５】
この例ではＫ＝８ラインを論理行とした場合を例に取っている。この入力画像４２の主走査方向の走査で分離された黒画素を含まない領域４４−１，４４−２については、例えば領域４４−１について示すように、垂直方向のスキップ４８として符号化する。
【００４６】
次に、入力画像４２の主走査方向の走査で分離された黒画素を含む領域４６−１，４６−２について、例えば領域４６−１を例に取ると、図４（Ｂ）のように論理行として与えられる黒画素を含む領域４６−１を、主走査方向に直交する副走査方向（垂直方向）に走査して、黒画素を含まない領域５０−１，５０−２と黒画素を含む領域５２−１〜５２−３に分離し、各領域５０−１，５０−２及び５２−１〜５２−３を要素として符号化する。
【００４７】
この符号化は、黒画素を含まない領域５０−１，５０−２については、水平方向のスキップ５１−１，５１−２として符号化する。また黒画素を含む領域５２−１〜５２−３については、同一列パターン５４、階段状パターン５６及び反復パターン５８の領域に分け、各領域を要素として符号化する。
【００４８】
即ち、同一列パターン５４は、図５（Ａ）の符号語７２のように、同一列パターンを示す種別符号、列の反復回数、及び一列のパターンで符号化する。また階段状パターン５６については、図５（Ｂ）の符号語７４に階段状パターンを示す種別符号、先頭の一列についてのヘッドパターン、階段のアップまたはダウン列数、前段との差分で符号化する。更に反復パターン５８については、図５（Ｃ）の符号語７６のように、反復パターンを示す種別符号、反復を繰り返す反復列数、１回のパターンで符号化する。
【００４９】
このような副走査方向に分離された黒画素を含む領域の符号化は、列数２以上の領域についての符号化処理であり、ここまでの符号化により圧縮できなかった部分が図４（Ｃ）のように非圧縮領域６０−１〜６０−５として残る。
【００５０】
図４（Ｃ）のように非圧縮領域６０−１〜６０−５として残る列数の出現頻度は、本願発明者による考察によれば図６のようになる。図６は横軸に非圧縮領域の列数を示し、縦軸に出現頻度を表わしている。この図６の特性から明らかなように、非圧縮領域の列数の出現頻度は、列数が短いほど出現頻度が高く、列数１の領域の出現頻度が最大となり、列数が長くなるにつれて出現頻度が低下するという特徴がある。
【００５１】
また、出現頻度が最大となる列数１に含まれる黒画素の画素パターンの出現頻度は図７のようになる。図７は８ビットの並びを持つ列数１の非圧縮領域の画素値に対する出現頻度であり、ある特定のパターンの出現頻度が高くなり、パターンの出現頻度に偏りが存在するという特徴がある。なお図７にあっては、画素パターンにおけるビット１となる黒画素の数を出現頻度の対応点の横に数字で表わしている。
【００５２】
そこで本発明にあっては、図６，図７における非圧縮領域の画像の特徴に着目し、非圧縮領域の中で出現頻度の最も高い列数１の画像に符号を割り当てることにより、非圧縮のまま出力していた領域を符号化して出力することで、圧縮率を向上する。
【００５３】
符号化対象となる１列の非圧縮領域と比較する参照パターンとしては、出現頻度の高いパターンを統計的に求めることにより、既知のパターンを固定的に用いてもよい。しかしながら、入力画像は多様で特徴も異なることから、画像ごとに最適な参照パターンが存在する可能性がある。
【００５４】
そこで本発明にあっては、非圧縮領域を符号化する際に、入力画像から得た１列の非圧縮領域の出現頻度を例えば図８のように求め、この中から出現頻度が高いパターンを参照パターンとして選択して決定することで、画像ごとに符号化率を高めるに好適な参照パターンを選択することができる。
【００５５】
図８は、図７の列数１の非圧縮領域の画素値に対する出現頻度について、出現頻度の高い順に参照パターンを登録した参照パターンファイル３０の例であり、パターン番号と出現頻度の高い順に並べられたパターンで構成されている。この参照パターンファイル３０に登録するパターンの数は、パターン番号に割り当てることのできる符号語のビット数に応じて決まることになる。
【００５６】
また図７の列数１の非圧縮領域の出現頻度を見ると、列数１の画素パターンの出現頻度は黒画素を１個だけ含むパターンの出現頻度が最大で、続いて２個以上の連続する黒画素を含むパターンの出現頻度が高いという特徴が見られる。このことから、連続するＭ個（Ｍは１以上の整数）の黒画素を含む列数１の非圧縮領域を、黒画素の数Ｎと黒画素の位置Ｍを用いて符号化することにより、更に圧縮率を高めることができる。
【００５７】
また、連続するＮ個の黒画素が存在する位置を示す符号に割り当てられるビットの余裕がない場合には、Ｍ＝１即ち黒画素１個だけを含むパターンのみを符号化してもよい。更に、符号の種別を示す種別符号に余裕がある場合には、黒画素の数を含めた種別符号を準備し、これに黒画素の位置を示す符号のみを割り当てて符号化するようにしてもよい。これら１列の非圧縮領域の符号化の具体例は、後の説明で更に詳細に説明される。
【００５８】
このような本発明の列数１の黒画素を含む非圧縮領域に対する符号化により、例えば図４（Ｃ）の非圧縮領域６０−１〜６０−５について、黒画素を１個含むパターンを参照パターンとした符号化を行ったとすると、非圧縮領域６０−１，６０−４，６０−５について符号化６４−１，６４−２，６４−３が行われ、それぞれ１バイトの符号語６８−１，６８−２，６８−３となる。
【００５９】
一方、非圧縮領域６０−２，６０−３については、参照パターンに一致しないことから非圧縮出力６６となり、非圧縮を示す１バイトの符号語が付加されることで３バイトとなる。
【００６０】
この図４における入力画像４２は、図１８に示した従来例における入力画像１４２と同じ画像データであり、図１８（Ｄ）の符号データにあっては、図１８（Ｃ）の非圧縮領域の全てが非圧縮出力となることで、符号データは９バイトであったものが、図４（Ｄ）の本発明による符号データにあっては６バイトとなって、圧縮率が大幅に向上している。
【００６１】
図９は、本発明による画像圧縮処理の第１実施形態のフローチャートである。この画像圧縮処理にあっては、列数１の非圧縮領域の中の出現頻度の高い参照パターンを用いて符号化を行うことを特徴とする。即ち、図９の画像圧縮処理を、図４を参照して説明すると、次のようになる。
【００６２】
ステップＳ１：
図４（Ａ）の入力画像４２を主走査方向（水平方向）に走査して、黒画素を含まない領域４４−１，４４−２と黒画素を含む領域４６−１，４６−２とに分離する。この主走査方向の走査による分離は、Ｋ＝８ラインもしくはその倍数の論理行単位に行う。この主走査方向の走査により、例えば文書画像であれば行間と文字を含む行とに分離される。
【００６３】
ステップＳ２：
ステップＳ１で分離された黒画素を含まない領域４４−１，４４−２を、例えば領域４４−１のように垂直方向のスキップ４８として、黒画素を含まないライン数を用いて符号化する。
【００６４】
ステップＳ３：
ステップＳ１で分離された黒画素を含む領域４６−１，４６−２を、例えば図４（Ｂ）の領域４６−１のように、列単位となる主走査方向に直交する副走査方向即ち垂直方向に走査して、黒画素を含まない領域５０−１，５０−２と黒画素を含む領域５２−１〜５２−３に分離する。この走査を行うことにより、例えば文書画像であれば文字間と文字部分とに分離される。
【００６５】
ステップＳ４：
ステップＳ３で分離された黒画素を含まない領域５０−１，５０−２を、水平方向のスキップ５１−１，５１−２として、黒画素を含まない列数を用いて符号化する。
【００６６】
ステップＳ５：
ステップ３で分離された黒画素を含む領域５２−１〜５２−３に対し、連続する同一列パターン５４、階段状パターン５６、反復パターン５８などの圧縮できる部分に分離して符号化し、圧縮できなかった部分を図４（Ｃ）のように非圧縮領域６０−１〜６０−５として分離する。
【００６７】
ステップＳ６：
ステップＳ５で分離された非圧縮領域６０−１〜６０−５の中で、列数１の非圧縮領域単位に１列の画像パターンの出現頻度を例えば図７のように計数し、出現頻度の高い順に予め定めたＰ個を選択して、図８の参照パターンファイル３０のように参照パターンを設定する。
【００６８】
ステップＳ７：
ステップＳ６で選択された参照パターンと列数１の非圧縮領域６０−１〜６０−５を比較し、いずれかの参照パターンに一致する領域を選択する。選択された列数１の非圧縮領域は、参照パターンの番号を用いて例えば図１０の符号語７６−１により符号化する。この符号語７６−１は、符号語の種別を示す４ビットの種別符号７８と参照パターンの番号を示す４ビットの参照パターン番号８０を割り当てており、参照パターン番号８０には４ビットが割り当てられていることから３２個の参照パターンを使用して符号化することができる。この符号語７６−１における参照パターン番号８０に割り当てる符号のビット長は、他の符号に割り当てるビット長を考慮して決定する。
【００６９】
ステップＳ８：
ステップ７で符号化されなかった列数１の非圧縮領域及び連続する列数２以上の非圧縮領域は、非圧縮領域であることを示す符号語を付加して符号データとして出力する。
【００７０】
図１１は、本発明による画像圧縮処理の第２実施形態を示したフローチャートである。この実施形態にあっては、列数１の非圧縮領域の中で連続する黒画素を含むパターンを参照パターンに用いて符号化を行うようにしたことを特徴とする。
【００７１】
図１１において、ステップＳ１〜Ｓ５及びステップＳ７の処理は、図９におけるステップＳ１〜Ｓ５及びステップＳ８の処理と同一である。図１１におけるステップＳ６の処理は、ステップＳ５で分離された非圧縮領域の中で列数１の非圧縮領域について列内の黒画素が１〜Ｎ個連続している列を選択する。
【００７２】
選択された列数１の非圧縮領域は、列に含まれる黒画素の個数Ｎと黒画素の存在する位置を表わす情報Ｍを用いて、例えば図１２の符号語７６−２により符号化する。この符号語７６−２は、種別符号８２に３ビット、黒画素数８４に２ビット、黒画素位置８６に３ビットを割り当てている。
【００７３】
黒画素数８４を示す２ビットには（黒画素数−１）の値を格納する。即ち、黒画素数が１画素の場合には００、２画素では０１、３画素では１０、４画素では１１を格納する。
【００７４】
黒画素位置８６を示す３ビットには、図１３（Ａ）（Ｂ）（Ｃ）（Ｄ）のように、黒画素数１，２，３，４に対応したＮ＝０，１，２，３のそれぞれにおける８ビットパターンの黒画素の位置を示すＭの値を２進数で格納する。例えば図１３（Ａ）の黒画素数１の場合にあっては、黒画素の位置はＭ＝０〜Ｍ＝７の８種類であり、２進数で表わすと０００から１１１のいずれかの値を格納する。
【００７５】
なお図１３（Ｂ）（Ｃ）（Ｄ）の黒画素数が２以上の場合には、黒画素数の位置を示す符号として未使用になる値が存在するが、これらは第１実施形態で示したような、それ以外の出現頻度の高い参照パターンの番号に用いるなど、別途利用することもできる。
【００７６】
図１４は、図１１の第２実施形態の画像圧縮処理で、列数１で黒画素数１の非圧縮領域を符号化する他の符号語７６−３であり、この例では種別符号８８に５ビットが割り当てられており、残り３ビットを黒画素位置９０としている。即ち、この符号語７６−３にあっては、図１２のように連続するＭ個の黒画素の数と位置を示す符号に割り当てるビットに余裕がない場合の符号語であり、参照パターンを図１５のように黒画素数１の非圧縮領域のみを対象として設定し、黒画素位置９０のみで符号化する。
【００７７】
図１６は、図１４の符号語７６−３を応用して更に圧縮率を高めるようにした符号語の例である。図１６（Ａ）（Ｂ）の符号語７６−３１，７６−３２は、図１４の符号語と同様、種別符号に５ビットを割り当て、画素位置に３ビットを割り当てている。
【００７８】
しかしながら、５ビットの種別符号について、図１６（Ａ）の符号語７６−３１は１黒画素種別符号９２−１とし、その後ろの３ビットを黒画素位置９４−１としている。また図１６（Ｂ）の符号語７６−３２は、先頭の５ビットを２黒画素種別符号９２−２としており、その後ろを黒画素位置９４−２としている。
【００７９】
図１６（Ａ）の符号語７６−３１に対応して、図１７（Ａ）の黒画素数１の列内黒画素位置が異なるＭ＝０〜Ｍ＝７の８種類の参照パターンが準備されており、黒画素位置９２−１に一致する参照パターンの番号を２進で０００〜１１１の範囲で格納する。
【００８０】
一方、図１６（Ｂ）の符号語７６−３２に対応して、図１７（Ｂ）の黒画素数２の７種類のＭ＝０〜Ｍ＝６となる参照パターンが準備されており、黒画素位置９２−２には参照パターン番号Ｍ＝０〜６に対応した０００〜１１０のいずれかを格納する。
【００８１】
このように列数１内における黒画素数の連続数に対応した種別符号に黒画素位置を組み合わせた符号語を用いることで、実質的に図１２と同じ種別符号８２、黒画素数８４及び黒画素位置８６で構成される符号語７６−２と同じ非圧縮領域の符号化が実現できる。
【００８２】
また本発明は、画像圧縮プログラムを格納したコンピュータ読み取り可能な記憶媒体を提供し、このための記録媒体としてはＣＤ−ＲＯＭ、フロッピィディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどのの可搬型記憶媒体やコンピュータシステムの内外に備えられたハードディスク、ＨＤＤなどの記憶装置の他、回線を介してプログラムを保持するデータベース、あるいは他のコンピュータシステム並びにそのデータベースや、更に回線上の伝送媒体を含むものである。
【００８３】
なお上記の実施形態にあっては、まず図１８（Ａ）のように、垂直方向に走査して黒画素を含まない領域と黒画素を含む領域に分離して符号化を行った後に、符号化できなかった非圧縮領域について参照パターンを用いて符号化する本発明の処理を行っているが、逆に垂直方向に走査して分離した黒画素を含む領域について列数１の非圧縮領域を分離し、参照パターンに一致する領域を選択して符号化する処理を先に行った後に、残った非圧縮領域について図１８（Ｂ）のような同一列パターン、階段状パターンあるいは反復パターンを選択して符号化する処理を行うようにしてもよい。ただし、順番を入れ替えて圧縮率が向上しないような画像データについては適用しないようにする。
【００８４】
また図２の実施形態にあっては、第１領域分離部１８、第２領域分離部２２、第３領域分離部２６のそれぞれで領域を分離するごとに符号化を行っているが、先に分離処理を行い、分離処理が済んだ後に各分離領域について第１符号化部２０、第２符号化部２４、更に第３符号化部２８による符号化処理を一括して行うようにしてもよい。
【００８５】
また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【００８６】
ここで本発明の特徴をまとめて列挙すると、次の付記のようになる。
（付記）
（付記１）
第１領域分離部により、ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
第１符号化部により、前記第１領域分離ステップで分離された黒画素を含まない領域を要素として符号化する第１符号化ステップと、
第２領域分離部により、前記第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
第２符号化部により、前記第２領域分離ステップで分離された連続する列数２以上の黒画素を含む領域を要素として符号化する第２符号化ステップと、
第３領域分離部により、前記第２符号化ステップで符号化されなかった領域から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
第３符号化部により、前記第３領域分離ステップで分離された前記参照パターンに一致する領域を符号化する第３符号化ステップと、
を備えたことを特徴とする画像圧縮方法。（１）
【００８７】
（付記２）
付記１記載の画像圧縮方法に於いて、
前記参照パターンは、前記第２符号化ステップにより符号化されずに残った列数１の黒画素を含む領域の中で出現頻度が高い方から所定数選択した複数種類のパターンであり、
前記第３符号化ステップは、前記第３領域分離ステップで分離された列数１の黒画素を含む領域を、一致する参照パターンのパターン番号を示す符号と符号種別を示す符号を用いて符号化することを特徴とする画像圧縮方法。
【００８８】
（付記３）
付記２記載の画像圧縮方法に於いて、前記参照パターンは、前記第３領域分離ステップで分離される列数１の黒画素を含む領域について予め統計的に求めた出現頻度が高い方から所定数選択した複数種類のパターンであることを特徴とする画像圧縮方法。
【００８９】
（付記４）
付記１記載の画像圧縮方法に於いて、
前記参照パターンは、１列内の黒画素が連続して１又は複数含まれるパターンであり、
前記第３符号化ステップは、前記第３領域分離ステップで分離された列数１の黒画素を含む領域を、一致する参照パターンの１列内の黒画素の位置と連続数を示す符号及び符号種別を示す符号を用いて符号化することを特徴とする画像圧縮方法。
【００９０】
（付記５）
付記１記載の画像圧縮方法に於いて、
前記参照パターンは、１列内の黒画素が１個含まれるパターンであり、
前記第３符号化ステップは、前記第３領域分離ステップで分離された列数１の黒画素を含む領域を、一致する参照パターンの１列内の黒画素の位置を示す符号及び符号種別を示す符号とを用いて符号化することを特徴とする画像圧縮方法。
【００９１】
（付記６）
付記１記載の画像圧縮方法に於いて、
前記参照パターンは、１列内の黒画素が１又は複数含まれるパターンであり、
前記第３符号化ステップは、前記第３領域分離ステップで分離された列数１の黒画素を含む領域を、１列内の黒画素の位置を示す符号及び黒画素連続数と符号種別を示す符号語を用いて符号化することを特徴とする画像圧縮方法。
【００９２】
（付記７）
付記１記載の画像圧縮方法に於いて、
第１符号化ステップは、前記第１領域分離ステップで得られた黒画素を含まない領域をスキップ行数で符号化し
前記第２符号化ステップは、前記第２領域分離ステップで得られた黒画素を含まない領域をスキップ列数で符号化すると共に、第２領域分離ステップで得られた連続する２列以上の黒画素を含む領域を、同一列パターン、階段状パターン又は反復パターンに分けてそれぞれ符号化することを特徴とする画像圧縮方法。
【００９３】
（付記８）
第１領域分離部により、ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
第２領域分離部により、前記第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
第３領域分離部により、前記第２領域分離ステップで分離された列数１の黒画素を含む領域の中から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
符号化部により、前記第１乃至第３領域分離ステップで分離された各領域を要素として符号化する符号化ステップと、
を備えることを特徴とする画像圧縮方法。（２）
【００９４】
（付記９）
コンピュータに、
ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
前記第１領域分離ステップで分離された黒画素を含まない領域を要素として符号化する第１符号化ステップと、
前記第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
前記第２領域分離ステップで分離された連続する列数２以上の黒画素を含む領域を要素として符号化する第２符号化ステップと、
前記第２符号化ステップで符号化されなかった領域から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
前記第３領域分離ステップで分離された前記参照パターンに一致する領域を符号化する第３符号化ステップと、
を実行させることを特徴とするプログラム。（３）
【００９５】
（付記１０）
コンピュータに、
ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
前記第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
前記第２領域分離ステップで分離された列数１の黒画素を含む領域の中から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
前記第１乃至第３領域分離ステップで分離された各領域を要素として符号化する符号化ステップと、
を実行させることを特徴とするプログラム。
【００９６】
（付記１１）
コンピュータに、
ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
前記第１領域分離ステップで分離された黒画素を含まない領域を要素として符号化する第１符号化ステップと、
前記第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
前記第２領域分離ステップで分離された連続する列数２以上の黒画素を含む領域を要素として符号化する第２符号化ステップと、
前記第２符号化ステップで符号化されなかった領域から予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
前記第３領域分離ステップで分離された前記参照パターンに一致する領域を符号化する第３符号化ステップと、
を実行させるプログラムを格納したコンピュータ読出し可能な記録媒体。
【００９７】
（付記１２）
コンピュータに、
ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離ステップと、
前記第１領域分離ステップで分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離ステップと、
前記第２領域分離ステップで分離された列数１の黒画素を含む領域の中から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離ステップと、
前記第１乃至第３領域分離ステップで分離された各領域を要素として符号化する符号化ステップと、
を実行させるプログラムを格納したコンピュータ読出し可能な記録媒体。（４）
【００９８】
（付記１３）
ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離部と、
前記第１領域分離部で分離された黒画素を含まない領域を要素として符号化する第１符号化部と
前記第１領域分離部で分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離部と、
前記第２領域分離部で分離された連続する列数２以上の黒画素を含む領域を要素として符号化する第２符号化部と
前記第２符号化部で符号化されなかった領域から予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離部と、
前記第３領域分離部で分離された前記参照パターンに一致する領域を符号化する第３符号化部と、
を備えたことを特徴とする画像圧縮装置。
【００９９】
（付記１４）
ビットマップデータを主走査方向に走査することにより、１以上の整数である所定数の論理行単位に、黒画素を含む領域と黒画素を含まない領域とに分離する第１領域分離部と、
前記第１領域分離部で分離された黒画素を含む論理行を、主走査方向と交差する副走査方向に走査することにより、１列単位に黒画素を含む領域と黒画素を含まない領域とに分離する第２領域分離部と、
前記第２領域分離部で分離された列数１の黒画素を含む領域の中から、予め定めた列数１の参照パターンに一致する領域を分離する第３領域分離部と、
前記第１乃至第３領域分離部で分離された各領域を要素として符号化する符号化部と、
を備えたことを特徴とする画像圧縮装置。（５）
【０１００】
【発明の効果】
以上説明してきたように本発明によれば、同一列パターン、階段状パターンあるいは反復パターンに該当せずに、圧縮されずにそのまま符号として出力されていた領域の中で、特に出現頻度の高い黒画素を含む１列の画像を符号化することで圧縮率を高めることができる。
【０１０１】
例えば、圧縮されずにそのまま符号として出力されている列１の画像は、非圧縮であることを示す符号語を付加することで１バイトが２バイトの符号データとなるが、本発明によれば、列数１の非圧縮領域のうち出現頻度の高いものについて符号化することで、非圧縮を示す符号語の付加が不要となり、符号化による１バイトだけで済み、これによって圧縮率を高めることができる。
【０１０２】
その結果、プリンタに転送する印刷画像の符号データの容量が削減され、プリンタへの転送時間が短くなり、プリンタの印刷速度を向上することができる。
【図面の簡単な説明】
【図１】本発明の原理説明図
【図２】本発明の実施形態を示した機能構成のブロック図
【図３】本発明が適用されるコンピュータのハードウェア環境の説明図
【図４】本発明によるビットマップ画像の圧縮処理の説明図
【図５】図４の処理で２列以上の黒画素を含む領域を分離して符号化する際の符号語の説明図
【図６】非圧縮領域の列数と出現頻度の関係を示したグラフ図
【図７】列数１の非圧縮領域の画素値と出現頻度との関係を示した分布図
【図８】出現頻度の高い順に参照パターンを登録した参照パターンファイルの説明図
【図９】図８の参照パターンファイルを使用する本発明の画像圧縮処理の第１実施形態を示したフローチャート
【図１０】図９の処理で列数１の黒画素を含む領域を分離して一致する参照パターンにより符号化する符号語の説明図
【図１１】本発明の画像圧縮処理の第２実施形態を示したフローチャート
【図１２】図１１の処理で列数１の黒画素を含む領域を分離して符号化する符号語の説明図
【図１３】図１２の符号語に使用する黒画素数に応じた黒画素位置の指定情報の説明図
【図１４】図１１の処理で列数１で黒画素数１の領域を分離して符号化する他の符号語の説明図
【図１５】図１４の符号語に使用する黒画素位置の指定情報の説明図
【図１６】図１１の処理で列数１で黒画素の領域を分離して符号化する他の符号語の説明図
【図１７】図１６の符号語に使用する黒画素数を種別符号とした黒画素位置の指定情報の説明図
【図１８】列数１の黒画素を含む領域を非圧縮領域として符号化する画像圧縮処理の説明図
【符号の説明】
１０：パーソナルコンピュータ
１２：プリンタ
１４：バッファメモリ
１６：画像圧縮装置
１８：第１領域分離部
２０：第１符号化部
２２：第２領域分離部
２４：第２符号化部
２６：第３領域分離部
２８：第３符号化部
３０：参照パターンファイル
３２，３４：プリンタインタフェース
３６：画像復元装置
３８：コントローラ
４０：プリンタエンジン
４２：入力画像
４４：４４−１，４４−２：空白行領域
４６−１，４６−２：黒画素論理行
５４：同一列パターン
５６：階段状パターン
５８：反復パターン
６０−１〜６０−５：非圧縮領域
６４−１〜６４−３：符号化
６６：非圧縮出力
６８−１〜６８−３，７６−１〜７６−３：符号語
７８，８２，８８：種別符号
８０：参照パターン番号
８４：黒画素数
８６，９０，９４−１，９４−２：黒画素位置
９２−１：１黒画素用種別符号
９２−２：２黒画素用種別符号
【図１】
2004304424.tif 000003
【図２】
2004304424.tif 000004
【図３】
2004304424.tif 000005
【図４】
2004304424.tif 000006
【図５】
2004304424.tif 000007
【図６】
2004304424.tif 000008
【図７】
2004304424.tif 000009
【図８】
2004304424.tif 000010
【図９】
2004304424.tif 000011
【図１０】
2004304424.tif 000012
【図１１】
2004304424.tif 000013
【図１２】
2004304424.tif 000014
【図１３】
2004304424.tif 000015
【図１４】
2004304424.tif 000016
【図１５】
2004304424.tif 000017
【図１６】
2004304424.tif 000018
【図１７】
2004304424.tif 000019
【図１８】
2004304424.tif 000020
【手続補正書】
【提出日】平成16年2月13日(2004.2.13)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
更に図１８（Ｂ）のように分離された黒画素を含む領域１５２−１〜１５２−３の圧縮率を向上させるために、列の画素値が階段状に変化する階段状パターン１５６を圧縮する方法（特願２００１−３９７７１４号）や、一定の列と幅のパターンが連続して繰り返し出現する反復パターン１５８を圧縮する方法（特願２００１−３８８９３１号）、更に離散的に出現する同一パターンを圧縮する方法（特願２００１−３９７７１５号）を提案している。これらの画像圧縮方法を適用した後に残った領域は、圧縮できない非圧縮領域として画素値に非圧縮を示す種別符号語を付けてそのまま符合出力する。


【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
【特許文献１】
特許第３２７８２９８号公報