(57)【要約】【課題】  システム構成を複雑にすることなく、画像データおよび非画像データが混在したデータを高い圧縮率で圧縮することができるデータ圧縮システムを提供する。【解決手段】  ＤＷＴ、量子化および係数ビットモデリングにより画像データを２値化処理する画像データ処理部１２と、２値化データを算術符号化する算術符号化部１６とを有する算術符号化器を利用して、制御データおよび画像データを含む印刷データを圧縮してプリンタ２００に送信する。まず、印刷データから制御データおよび画像データをそれぞれ抽出し、抽出した画像データを画像データ処理部１２に出力する。また、抽出した制御データに含まれる制御コードに対して、２値化データにおけるビットの出現確率が偏るように圧縮コードを割り当てることにより制御データを算術符号化用に２値化処理し、２値化処理した２値化データを算術符号化部１６に出力する。【選択図】  図１
2005312013.tif 000002
【特許請求の範囲】
【請求項１】
画像データを２値化処理する画像データ処理手段と、前記画像データ処理手段で２値化処理した２値化データを符号化する符号化手段とを有する符号化器を利用して、多ビットコードからなるコード部、および前記画像データを含む圧縮対象データを圧縮するデータ圧縮システムであって、
前記圧縮対象データから前記コード部を抽出するデータ抽出手段と、
前記データ抽出手段で抽出したコード部を２値化処理し、２値化処理した２値化データを前記符号化手段に出力するコード部処理手段とを備え、
前記コード部処理手段は、前記コード部に含まれる多ビットコードに対して、前記２値化データにおけるビットの出現確率が偏るように圧縮コードを割り当てるようになっていることを特徴とするデータ圧縮システム。
【請求項２】
画像データを算術符号化用に２値化処理する画像データ処理手段と、前記画像データ処理手段で２値化処理した２値化データを算術符号化する算術符号化手段とを有する算術符号化器を利用して、多ビットコードからなるコード部、および前記画像データを含む圧縮対象データを圧縮するデータ圧縮システムであって、
前記圧縮対象データから前記コード部および前記画像データをそれぞれ抽出し、抽出した画像データを前記画像データ処理手段に出力するデータ抽出手段と、
前記データ抽出手段で抽出したコード部を算術符号化用に２値化処理し、２値化処理した２値化データを前記算術符号化手段に出力するコード部処理手段とを備え、
前記コード部処理手段は、前記コード部に含まれる多ビットコードに対して、前記２値化データにおけるビットの出現確率が偏るように圧縮コードを割り当てるようになっていることを特徴とするデータ圧縮システム。
【請求項３】
請求項２において、
前記コード部処理手段は、前記コード部における出現確率が高い多ビットコードほど、「０」および「１」のいずれか一方のビットが出現する個数の多いビット列の圧縮コードを割り当てるようになっていることを特徴とするデータ圧縮システム。
【請求項４】
請求項３において、
前記コード部処理手段は、前記多ビットコードの種別ごとに、当該種別の多ビットコードに対して、前記複数のビット列の圧縮コードのうちいずれか１つを対応付けた圧縮コード対応テーブルのなかから、前記多ビットコードに対応する圧縮コードを選択し、前記多ビットコードに対して前記選択した圧縮コードを割り当て、前記コード部における前記多ビットコードの出現頻度に応じて前記圧縮コード対応テーブルの対応付けを変更するようになっていることを特徴とするデータ圧縮システム。
【請求項５】
請求項４において、
前記コード部処理手段は、前記コード部における出現頻度が高い多ビットコードほど、前記一方のビットが出現する個数の多いビット列の圧縮コードを対応付けるようになっていることを特徴とするデータ圧縮システム。
【請求項６】
請求項３において、
前記コード部処理手段は、前記多ビットコードの種別ごとに、当該種別の多ビットコードに対して、前記複数のビット列の圧縮コードのうちいずれか１つを対応付けた圧縮コード対応テーブルのなかから、前記多ビットコードに対応する圧縮コードを選択し、前記多ビットコードに対して前記選択した圧縮コードを割り当て、前記コード部における前記多ビットコードの出現順位に応じて前記圧縮コード対応テーブルの対応付けを変更するようになっていることを特徴とするデータ圧縮システム。
【請求項７】
請求項６において、
前記一方のビットが出現する個数の多い順に前記複数の圧縮コードを順位付けし、
前記コード部処理手段は、前記圧縮コード対応テーブルにおいて直前に参照した前記多ビットコードに対しては、前記複数の圧縮コードのうち１番目の順位のものを対応付け、かつ、前記直前に参照した多ビットコードに割り当てられていた圧縮コードよりも順位が高い圧縮コードが対応付けられている前記多ビットコードに対しては、前記複数の圧縮コードのうち当該順位よりも１つ低いものを対応付けるようになっていることを特徴とするデータ圧縮システム。
【請求項８】
請求項２ないし４および６のいずれか１項において、
前記算術符号化手段は、前記コード部処理手段から直前に入力したビットまたはビット列の値に基づいて、内容の異なる複数の算術符号化テーブルのなかからいずれか１つを選択し、選択した算術符号化テーブルに基づいて前記２値化データを算術符号化するようになっていることを特徴とするデータ圧縮システム。
【請求項９】
請求項８において、
前記コード部処理手段は、前記一方のビットが出現する個数が同一のビット列の圧縮コードについては、前記コード部における出現確率が高い多ビットコードほど、「０」および「１」のいずれか他方のビットが連続で出現する個数の多いビット列からなる圧縮コードを割り当てるようになっていることを特徴とするデータ圧縮システム。
【請求項１０】
請求項２において、
前記コード部処理手段は、前記コード部における出現確率が低い多ビットコードほど、「０」および「１」のいずれか一方のビットが出現する個数の多いビット列の圧縮コードを割り当てるようになっていることを特徴とするデータ圧縮システム。
【請求項１１】
画像データを２値化処理する画像データ処理手段と、前記画像データ処理手段で２値化処理した２値化データを符号化する符号化手段とを有する符号化器を利用して、多ビットコードからなるコード部、および前記画像データを含む圧縮対象データを圧縮するデータ圧縮プログラムであって、
前記圧縮対象データから前記コード部を抽出するデータ抽出ステップと、
前記データ抽出ステップで抽出したコード部を２値化処理し、２値化処理した２値化データを前記符号化手段に出力するコード部処理ステップとからなる処理をコンピュータに実行させるためのプログラムを含み、
前記コード部処理ステップは、前記コード部に含まれる多ビットコードに対して、前記２値化データにおけるビットの出現確率が偏るように圧縮コードを割り当てることを特徴とするデータ圧縮プログラム。
【請求項１２】
画像データを算術符号化用に２値化処理する画像データ処理手段と、前記画像データ処理手段で２値化処理した２値化データを算術符号化する算術符号化手段とを有する算術符号化器を利用して、多ビットコードからなるコード部、および前記画像データを含む圧縮対象データを圧縮するデータ圧縮プログラムであって、
前記圧縮対象データから前記コード部および前記画像データをそれぞれ抽出し、抽出した画像データを前記画像データ処理手段に出力するデータ抽出ステップと、
前記データ抽出ステップで抽出したコード部を算術符号化用に２値化処理し、２値化処理した２値化データを前記算術符号化手段に出力するコード部処理ステップとからなる処理をコンピュータに実行させるためのプログラムを含み、
前記コード部処理ステップは、前記コード部に含まれる多ビットコードに対して、前記２値化データにおけるビットの出現確率が偏るように圧縮コードを割り当てることを特徴とするデータ圧縮プログラム。
【請求項１３】
画像データを２値化処理する画像データ処理手段と、前記画像データ処理手段で２値化処理した２値化データを符号化する符号化手段とを有する符号化器を利用して、多ビットコードからなるコード部、および前記画像データを含む圧縮対象データを圧縮するデータ圧縮方法であって、
前記圧縮対象データから前記コード部を抽出するデータ抽出ステップと、
前記データ抽出ステップで抽出したコード部を２値化処理し、２値化処理した２値化データを前記符号化手段に出力するコード部処理ステップとを含み、
前記コード部処理ステップは、前記コード部に含まれる多ビットコードに対して、前記２値化データにおけるビットの出現確率が偏るように圧縮コードを割り当てることを特徴とするデータ圧縮方法。
【請求項１４】
画像データを算術符号化用に２値化処理する画像データ処理手段と、前記画像データ処理手段で２値化処理した２値化データを算術符号化する算術符号化手段とを有する算術符号化器を利用して、多ビットコードからなるコード部、および前記画像データを含む圧縮対象データを圧縮するデータ圧縮方法であって、
前記圧縮対象データから前記コード部および前記画像データをそれぞれ抽出し、抽出した画像データを前記画像データ処理手段に出力するデータ抽出ステップと、
前記データ抽出ステップで抽出したコード部を算術符号化用に２値化処理し、２値化処理した２値化データを前記算術符号化手段に出力するコード部処理ステップとを含み、
前記コード部処理ステップは、前記コード部に含まれる多ビットコードに対して、前記２値化データにおけるビットの出現確率が偏るように圧縮コードを割り当てることを特徴とするデータ圧縮方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データおよび非画像データが混在したデータを圧縮するシステムおよびプログラム、並びに方法に係り、特に、システム構成を複雑にすることなく、画像データおよび非画像データが混在したデータを高い圧縮率で圧縮することができるデータ圧縮システムおよびデータ圧縮プログラム、並びにデータ圧縮方法に関する。
【背景技術】
【０００２】
従来、データ圧縮の技術としては、例えば、ＪＰＥＧ（Joint Photographic coding Experts Group）２０００という圧縮アルゴリズムが知られている。
ＪＰＥＧ２０００では、画像データに対して、色空間変換、離散ウェーブレット変換（ＤＷＴ：Discrete Wavelet Transformation）、量子化および係数ビットモデリング（ＣＢＭ：Coefficient Bit Modeling）を行うことにより画像データを算術符号化用に２値化処理する。そして、２値化処理した２値化データに対してMQ-coder による算術符号化を行うことにより画像データを圧縮する。ＪＰＥＧ２０００では、２値（モノクロ）の画像または多値（カラー）の画像を画一的な手法で２値化処理するので、２値・多値の画像をシームレスに、さらに、圧縮率と再現画質のバランスを保ちながら圧縮することができる。
【０００３】
このような特徴からプリンタに応用した場合は、想定されるあらゆる画像データを１つの圧縮アルゴリズムで対応することができるので実用性が高い。また、ＪＰＥＧ２０００では、２値・多値の画像をシームレスに圧縮することができるだけではなく、データの可逆・不可逆も同じアルゴリズムで実現することができる。例えば、解像度が非常に高く、プリンタが対応可能なデータ容量よりも大きいデータ量の画像は、すべてのデータをプリンタに送信しても意味がないので、プリンタが対応可能なデータ容量までデータ量を削って送ることも同じアルゴリズムで実現することができる。
【０００４】
しかしながら、プリンタに送信される印刷データには、画像データのほかに、制御コードや文字コード等の非画像データが含まれているため、ＪＰＥＧ２０００を印刷データの圧縮に利用した場合、画像データについては高い圧縮率を実現することはできるものの、非画像データについては、ＪＰＥＧ２０００の対象となっていないのでデータ圧縮ができない。一般に、画像データと非画像データの性質は異なるので、高い圧縮率を実現するためには、画像データおよび非画像データのそれぞれについて異なる圧縮アルゴリズムを適用する必要がある。
【０００５】
画像データおよび非画像データが混在するデータを圧縮する技術としては、例えば、特許文献１に開示されているデータ圧縮方法があった。
特許文献１記載の発明は、画像データと制御データを、その制御データに基づいて、外部プロセッサの介在なしに高速に処理する方法を実現している。これにより、プロセッサにて画像・制御コードを意識せずに圧縮符号化できる。
【特許文献１】特開２００２−５１２２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１記載の発明にあっては、プロセッサ内に着目すると、画像データ圧縮用の符号化器と、制御コード圧縮用の符号化器が用意され、それぞれがまったく関連することなく動作している。そのため、特許文献１記載の発明をプリンタに応用した場合、ホスト端末では、データ圧縮のための符号化器が２種類必要となり、プリンタでも、データ復号のための符号化器が２種類必要となるので、システム構成が複雑になるという問題があった。
【０００７】
また、ＪＰＥＧ２０００では、２値にのみ対応した算術符号化を行うため、制御コードや文字コードといった多ビットからなるコードを単にビット列として符号化しても、高い圧縮率を実現することはできない。
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、システム構成を複雑にすることなく、画像データおよび非画像データが混在したデータを高い圧縮率で圧縮することができるデータ圧縮システムおよびデータ圧縮プログラム、並びにデータ圧縮方法を提供することを目的としている。
【課題を解決するための手段】
【０００８】
〔形態１〕  上記目的を達成するために、形態１のデータ圧縮システムは、
画像データを２値化処理する画像データ処理手段と、前記画像データ処理手段で２値化処理した２値化データを符号化する符号化手段とを有する符号化器を利用して、多ビットコードからなるコード部、および前記画像データを含む圧縮対象データを圧縮するデータ圧縮システムであって、
前記圧縮対象データから前記コード部を抽出するデータ抽出手段と、
前記データ抽出手段で抽出したコード部を２値化処理し、２値化処理した２値化データを前記符号化手段に出力するコード部処理手段とを備え、
前記コード部処理手段は、前記コード部に含まれる多ビットコードに対して、前記２値化データにおけるビットの出現確率が偏るように圧縮コードを割り当てるようになっていることを特徴とする。
【０００９】
このような構成であれば、コード部および画像データを含む圧縮対象データを圧縮する場合、まず、データ抽出手段により、圧縮対象データからコード部が抽出され、コード部処理手段により、抽出されたコード部に含まれる多ビットコードに対して、２値化データにおけるビットの出現確率が偏るように圧縮コードが割り当てられることによりコード部が２値化され、２値化処理された２値化データが符号化手段に出力される。また、圧縮対象データに含まれる画像データを画像データ処理手段に出力すると、符号化器では、画像データ処理手段により、与えられた画像データが２値化処理される。このように、コード部処理手段および画像データ処理手段で２値化処理が行われると、符号化器では、符号化手段により、それら２値化処理された２値化データが符号化される。
【００１０】
これにより、符号化器に対してデータ抽出手段およびコード部処理手段を付加するだけでよいので、２種類の符号化器を設ける構成に比して、システム構成を簡素化することができるという効果が得られる。また、多ビットコードに対して、２値化データにおけるビットの出現確率が偏るように圧縮コードが割り当てられた上で符号化が行われるので、多ビットコードを単にビット列として符号化する構成に比して、符号化効率が向上し、コード部に対して高い圧縮率を実現することができるという効果も得られる。
【００１１】
ここで、多ビットコードとしては、例えば、文字コードまたは制御コードが含まれる。以下、形態２のデータ圧縮システム、形態１１および１２のデータ圧縮プログラム、並びに形態２１および２２のデータ圧縮方法において同じである。
また、本発明は、ビットの出現確率が偏る度合いを限定するものではないが、圧縮効率を向上する観点からは、ビットの出現確率が８割以上偏るのが望ましい。より望ましくは、９割５分以上偏ることである。以下、形態２のデータ圧縮システム、形態１１および１２のデータ圧縮プログラム、並びに形態２１および２２のデータ圧縮方法において同じである。
【００１２】
また、本システムは、単一の装置、端末その他の機器として実現するようにしてもよいし、複数の装置、端末その他の機器を通信可能に接続したネットワークシステムとして実現するようにしてもよい。後者の場合、各構成要素は、それぞれ通信可能に接続されていれば、複数の機器等のうちいずれに属していてもよい。以下、形態２のデータ圧縮システムにおいて同じである。
【００１３】
〔形態２〕  さらに、形態２のデータ圧縮システムは、
画像データを算術符号化用に２値化処理する画像データ処理手段と、前記画像データ処理手段で２値化処理した２値化データを算術符号化する算術符号化手段とを有する算術符号化器を利用して、多ビットコードからなるコード部、および前記画像データを含む圧縮対象データを圧縮するデータ圧縮システムであって、
前記圧縮対象データから前記コード部および前記画像データをそれぞれ抽出し、抽出した画像データを前記画像データ処理手段に出力するデータ抽出手段と、
前記データ抽出手段で抽出したコード部を算術符号化用に２値化処理し、２値化処理した２値化データを前記算術符号化手段に出力するコード部処理手段とを備え、
前記コード部処理手段は、前記コード部に含まれる多ビットコードに対して、前記２値化データにおけるビットの出現確率が偏るように圧縮コードを割り当てるようになっていることを特徴とする。
【００１４】
このような構成であれば、コード部および画像データを含む圧縮対象データを圧縮する場合、まず、データ抽出手段により、圧縮対象データからコード部および画像データがそれぞれ抽出され、抽出された画像データが画像データ処理手段に出力される。算術符号化器では、画像データが与えられると、画像データ処理手段により、与えられた画像データが算術符号化用に２値化処理される。また、コード部処理手段により、抽出されたコード部に含まれる多ビットコードに対して、２値化データにおけるビットの出現確率が偏るように圧縮コードが割り当てられることによりコード部が算術符号化用に２値化され、２値化処理された２値化データが算術符号化手段に出力される。このように、コード部処理手段および画像データ処理手段で２値化処理が行われると、算術符号化器では、算術符号化手段により、それら２値化処理された２値化データが算術符号化される。
【００１５】
これにより、算術符号化器に対してデータ抽出手段およびコード部処理手段を付加するだけでよいので、２種類の符号化器を設ける構成に比して、システム構成を簡素化することができるという効果が得られる。また、多ビットコードに対して、２値化データにおけるビットの出現確率が偏るように圧縮コードが割り当てられた上で算術符号化が行われるので、多ビットコードを単にビット列として算術符号化する構成に比して、符号化効率が向上し、コード部に対して高い圧縮率を実現することができるという効果も得られる。
【００１６】
〔形態３〕  さらに、形態３のデータ圧縮システムは、形態２のデータ圧縮システムにおいて、
前記コード部処理手段は、前記コード部における出現確率が高い多ビットコードほど、「０」および「１」のいずれか一方のビットが出現する個数の多いビット列の圧縮コードを割り当てるようになっていることを特徴とする。
【００１７】
このような構成であれば、コード部処理手段により、コード部における出現確率が高い多ビットコードほど、「０」および「１」のいずれか一方のビットが出現する個数の多いビット列の圧縮コードが割り当てられる。
これにより、２値化データにおけるビットの出現確率を効果的に偏らせることができるので、符号化効率が向上し、コード部に対してさらに高い圧縮率を実現することができるという効果が得られる。
【００１８】
〔形態４〕  さらに、形態４のデータ圧縮システムは、形態３のデータ圧縮システムにおいて、
前記コード部処理手段は、前記多ビットコードの種別ごとに、当該種別の多ビットコードに対して、前記複数のビット列の圧縮コードのうちいずれか１つを対応付けた圧縮コード対応テーブルのなかから、前記多ビットコードに対応する圧縮コードを選択し、前記多ビットコードに対して前記選択した圧縮コードを割り当て、前記コード部における前記多ビットコードの出現頻度に応じて前記圧縮コード対応テーブルの対応付けを変更するようになっていることを特徴とする。
【００１９】
このような構成であれば、コード部処理手段により、圧縮コード対応テーブルのなかから、多ビットコードに対応する圧縮コードが選択され、その多ビットコードに対して、選択された圧縮コードが割り当てられる。そして、コード部における多ビットコードの出現頻度に応じて圧縮コード対応テーブルの対応付けが変更される。
これにより、コード部における多ビットコードの出現頻度に応じて、多ビットコードに割り当てられる圧縮コードが変更されるので、２値化データにおけるビットの出現確率をさらに効果的に偏らせることができる。したがって、符号化効率が向上し、コード部に対してさらに高い圧縮率を実現することができるという効果が得られる。
【００２０】
ここで、コード部処理手段は、圧縮コードの割当および対応付けの変更を行うようになっていればどのような構成であってもよく、圧縮コードの割当および対応付けの変更をそれぞれ独立に行うようになっていてもよいし、それらを所定順序で行うようになっていてもよい。後者の場合、対応付けの変更は、圧縮コードの割当の１回の実行に対して必ずしも１回行わなくてもよく、数回の実行に対して１回行ってもよい。また、圧縮コードの割当についても同様で、対応付けの変更の数回の実行に対して１回行ってもよい。以下、形態６のデータ圧縮システムにおいて同じである。
【００２１】
〔形態５〕  さらに、形態５のデータ圧縮システムは、形態４のデータ圧縮システムにおいて、
前記コード部処理手段は、前記コード部における出現頻度が高い多ビットコードほど、前記一方のビットが出現する個数の多いビット列の圧縮コードを対応付けるようになっていることを特徴とする。
【００２２】
このような構成であれば、コード部処理手段により、コード部における出現頻度が高い多ビットコードほど、一方のビットが出現する個数の多いビット列の圧縮コードが対応付けられる。
これにより、２値化データにおけるビットの出現確率をさらに効果的に偏らせることができるので、符号化効率が向上し、コード部に対してさらに高い圧縮率を実現することができるという効果が得られる。
【００２３】
〔形態６〕  さらに、形態６のデータ圧縮システムは、形態３のデータ圧縮システムにおいて、
前記コード部処理手段は、前記多ビットコードの種別ごとに、当該種別の多ビットコードに対して、前記複数のビット列の圧縮コードのうちいずれか１つを対応付けた圧縮コード対応テーブルのなかから、前記多ビットコードに対応する圧縮コードを選択し、前記多ビットコードに対して前記選択した圧縮コードを割り当て、前記コード部における前記多ビットコードの出現順位に応じて前記圧縮コード対応テーブルの対応付けを変更するようになっていることを特徴とする。
【００２４】
このような構成であれば、コード部処理手段により、圧縮コード対応テーブルのなかから、多ビットコードに対応する圧縮コードが選択され、その多ビットコードに対して、選択された圧縮コードが割り当てられる。そして、コード部における多ビットコードの出現順位に応じて圧縮コード対応テーブルの対応付けが変更される。
これにより、コード部における多ビットコードの出現順位に応じて、多ビットコードに割り当てられる圧縮コードが変更されるので、２値化データにおけるビットの出現確率を効果的に偏らせることができるとともに、多ビットコードの統計をとらずにすみ、コード部を逐次的に処理することができる。したがって、圧縮コードの割当処理を比較的簡単に行うことができるので、圧縮コードの割当処理に対する処理負荷を低減することができるという効果が得られる。
【００２５】
〔形態７〕  さらに、形態７のデータ圧縮システムは、形態６のデータ圧縮システムにおいて、
前記一方のビットが出現する個数の多い順に前記複数の圧縮コードを順位付けし、
前記コード部処理手段は、前記圧縮コード対応テーブルにおいて直前に参照した前記多ビットコードに対しては、前記複数の圧縮コードのうち１番目の順位のものを対応付け、かつ、前記直前に参照した多ビットコードに割り当てられていた圧縮コードよりも順位が高い圧縮コードが対応付けられている前記多ビットコードに対しては、前記複数の圧縮コードのうち当該順位よりも１つ低いものを対応付けるようになっていることを特徴とする。
【００２６】
このような構成であれば、コード部処理手段により、圧縮コード対応テーブルにおいて直前に参照された多ビットコードに対しては、複数の圧縮コードのうち１番目の順位のものが対応付けられ、かつ、直前に参照された多ビットコードに割り当てられていた圧縮コードよりも順位が高い圧縮コードが対応付けられている多ビットコードに対しては、複数の圧縮コードのうち当該順位よりも１つ低いものが対応付けられる。
これにより、圧縮コードの割当処理をより簡単に行うことができるので、圧縮コードの割当処理に対する処理負荷をさらに低減することができるという効果が得られる。
【００２７】
〔形態８〕  さらに、形態８のデータ圧縮システムは、形態２ないし４および６のいずれか１のデータ圧縮システムにおいて、
前記算術符号化手段は、前記コード部処理手段から直前に入力したビットまたはビット列の値に基づいて、内容の異なる複数の算術符号化テーブルのなかからいずれか１つを選択し、選択した算術符号化テーブルに基づいて前記２値化データを算術符号化するようになっていることを特徴とする。
【００２８】
このような構成であれば、算術符号化手段により、コード部処理手段から直前に入力されたビットまたはビット列の値に基づいて、内容の異なる複数の算術符号化テーブルのなかからいずれか１つが選択され、選択された算術符号化テーブルに基づいて２値化データが算術符号化される。
これにより、コード部処理手段から直前に入力されたビットまたはビット列の値に基づいて比較的適切な算術符号化テーブルが選択されるので、符号化効率が向上し、コード部および画像データに対して高い圧縮率を実現することができるという効果が得られる。
【００２９】
〔形態９〕  さらに、形態９のデータ圧縮システムは、形態８のデータ圧縮システムにおいて、
前記コード部処理手段は、前記一方のビットが出現する個数が同一のビット列の圧縮コードについては、前記コード部における出現確率が高い多ビットコードほど、「０」および「１」のいずれか他方のビットが連続で出現する個数の多いビット列からなる圧縮コードを割り当てるようになっていることを特徴とする。
【００３０】
このような構成であれば、コード部処理手段により、一方のビットが出現する個数が同一のビット列の圧縮コードについては、コード部における出現確率が高い多ビットコードほど、「０」および「１」のいずれか他方のビットが連続で出現する個数の多いビット列からなる圧縮コードが割り当てられる。
これにより、「０」および「１」のいずれか他方のビットが発生した場合に、そのビットを連続して発生させることができるので、２値化データにおけるビットの出現確率を効果的に偏らせることができる。したがって、符号化効率が向上し、コード部および画像データに対してさらに高い圧縮率を実現することができるという効果が得られる。
【００３１】
〔形態１０〕  さらに、形態１０のデータ圧縮システムは、形態２のデータ圧縮システムにおいて、
前記コード部処理手段は、前記コード部における出現確率が低い多ビットコードほど、「０」および「１」のいずれか一方のビットが出現する個数の多いビット列の圧縮コードを割り当てるようになっていることを特徴とする。
【００３２】
このような構成であれば、コード部処理手段により、コード部における出現確率が低い多ビットコードほど、「０」および「１」のいずれか一方のビットが出現する個数の多いビット列の圧縮コードが割り当てられる。
これにより、２値化データにおけるビットの出現確率を効果的に偏らせることができるので、符号化効率が向上し、コード部に対してさらに高い圧縮率を実現することができるという効果が得られる。
【００３３】
〔形態１１〕  一方、上記目的を達成するために、形態１１のデータ圧縮プログラムは、
画像データを２値化処理する画像データ処理手段と、前記画像データ処理手段で２値化処理した２値化データを符号化する符号化手段とを有する符号化器を利用して、多ビットコードからなるコード部、および前記画像データを含む圧縮対象データを圧縮するデータ圧縮プログラムであって、
前記圧縮対象データから前記コード部を抽出するデータ抽出ステップと、
前記データ抽出ステップで抽出したコード部を２値化処理し、２値化処理した２値化データを前記符号化手段に出力するコード部処理ステップとからなる処理をコンピュータに実行させるためのプログラムを含み、
前記コード部処理ステップは、前記コード部に含まれる多ビットコードに対して、前記２値化データにおけるビットの出現確率が偏るように圧縮コードを割り当てることを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態１のデータ圧縮システムと同等の作用および効果が得られる。
【００３４】
〔形態１２〕  さらに、形態１２のデータ圧縮プログラムは、
画像データを算術符号化用に２値化処理する画像データ処理手段と、前記画像データ処理手段で２値化処理した２値化データを算術符号化する算術符号化手段とを有する算術符号化器を利用して、多ビットコードからなるコード部、および前記画像データを含む圧縮対象データを圧縮するデータ圧縮プログラムであって、
前記圧縮対象データから前記コード部および前記画像データをそれぞれ抽出し、抽出した画像データを前記画像データ処理手段に出力するデータ抽出ステップと、
前記データ抽出ステップで抽出したコード部を算術符号化用に２値化処理し、２値化処理した２値化データを前記算術符号化手段に出力するコード部処理ステップとからなる処理をコンピュータに実行させるためのプログラムを含み、
前記コード部処理ステップは、前記コード部に含まれる多ビットコードに対して、前記２値化データにおけるビットの出現確率が偏るように圧縮コードを割り当てることを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態２のデータ圧縮システムと同等の作用および効果が得られる。
【００３５】
〔形態１３〕  さらに、形態１３のデータ圧縮プログラムは、形態１２のデータ圧縮プログラムにおいて、
前記コード部処理ステップは、前記コード部における出現確率が高い多ビットコードほど、「０」および「１」のいずれか一方のビットが出現する個数の多いビット列の圧縮コードを割り当てることを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態３のデータ圧縮システムと同等の作用および効果が得られる。
【００３６】
〔形態１４〕  さらに、形態１４のデータ圧縮プログラムは、形態１３のデータ圧縮プログラムにおいて、
前記コード部処理ステップは、前記多ビットコードの種別ごとに、当該種別の多ビットコードに対して、前記複数のビット列の圧縮コードのうちいずれか１つを対応付けた圧縮コード対応テーブルのなかから、前記多ビットコードに対応する圧縮コードを選択し、前記多ビットコードに対して前記選択した圧縮コードを割り当て、前記コード部における前記多ビットコードの出現頻度に応じて前記圧縮コード対応テーブルの対応付けを変更することを特徴とする。
【００３７】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態４のデータ圧縮システムと同等の作用および効果が得られる。
ここで、コード部処理ステップは、圧縮コードの割当および対応付けの変更を行えばどのような形態であってもよく、圧縮コードの割当および対応付けの変更をそれぞれ独立に行ってもよいし、それらを所定順序で行ってもよい。後者の場合、対応付けの変更は、圧縮コードの割当の１回の実行に対して必ずしも１回行わなくてもよく、数回の実行に対して１回行ってもよい。また、圧縮コードの割当についても同様で、対応付けの変更の数回の実行に対して１回行ってもよい。以下、形態１６のデータ圧縮プログラム、並びに形態２４および２６のデータ圧縮方法において同じである。
【００３８】
〔形態１５〕  さらに、形態１５のデータ圧縮プログラムは、形態１４のデータ圧縮プログラムにおいて、
前記コード部処理ステップは、前記コード部における出現頻度が高い多ビットコードほど、前記一方のビットが出現する個数の多いビット列の圧縮コードを対応付けることを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態５のデータ圧縮システムと同等の作用および効果が得られる。
【００３９】
〔形態１６〕  さらに、形態１６のデータ圧縮プログラムは、形態１３のデータ圧縮プログラムにおいて、
前記コード部処理ステップは、前記多ビットコードの種別ごとに、当該種別の多ビットコードに対して、前記複数のビット列の圧縮コードのうちいずれか１つを対応付けた圧縮コード対応テーブルのなかから、前記多ビットコードに対応する圧縮コードを選択し、前記多ビットコードに対して前記選択した圧縮コードを割り当て、前記コード部における前記多ビットコードの出現順位に応じて前記圧縮コード対応テーブルの対応付けを変更することを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態６のデータ圧縮システムと同等の作用および効果が得られる。
【００４０】
〔形態１７〕  さらに、形態１７のデータ圧縮プログラムは、形態１６のデータ圧縮プログラムにおいて、
前記一方のビットが出現する個数の多い順に前記複数の圧縮コードを順位付けし、
前記コード部処理ステップは、前記圧縮コード対応テーブルにおいて直前に参照した前記多ビットコードに対しては、前記複数の圧縮コードのうち１番目の順位のものを対応付け、かつ、前記直前に参照した多ビットコードに割り当てられていた圧縮コードよりも順位が高い圧縮コードが対応付けられている前記多ビットコードに対しては、前記複数の圧縮コードのうち当該順位よりも１つ低いものを対応付けることを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態７のデータ圧縮システムと同等の作用および効果が得られる。
【００４１】
〔形態１８〕  さらに、形態１８のデータ圧縮プログラムは、形態１２ないし１４および１６のいずれか１のデータ圧縮プログラムにおいて、
前記算術符号化手段は、前記コード部処理ステップから直前に入力したビットまたはビット列の値に基づいて、内容の異なる複数の算術符号化テーブルのなかからいずれか１つを選択し、選択した算術符号化テーブルに基づいて前記２値化データを算術符号化するようになっていることを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態８のデータ圧縮システムと同等の作用および効果が得られる。
【００４２】
〔形態１９〕  さらに、形態１９のデータ圧縮プログラムは、形態１８のデータ圧縮プログラムにおいて、
前記コード部処理ステップは、前記一方のビットが出現する個数が同一のビット列の圧縮コードについては、前記コード部における出現確率が高い多ビットコードほど、「０」および「１」のいずれか他方のビットが連続で出現する個数の多いビット列からなる圧縮コードを割り当てることを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態９のデータ圧縮システムと同等の作用および効果が得られる。
【００４３】
〔形態２０〕  さらに、形態２０のデータ圧縮プログラムは、形態１２のデータ圧縮プログラムにおいて、
前記コード部処理ステップは、前記コード部における出現確率が低い多ビットコードほど、「０」および「１」のいずれか一方のビットが出現する個数の多いビット列の圧縮コードを割り当てることを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態１０のデータ圧縮システムと同等の作用および効果が得られる。
【００４４】
〔形態２１〕  一方、上記目的を達成するために、形態２１のデータ圧縮方法は、
画像データを２値化処理する画像データ処理手段と、前記画像データ処理手段で２値化処理した２値化データを符号化する符号化手段とを有する符号化器を利用して、多ビットコードからなるコード部、および前記画像データを含む圧縮対象データを圧縮するデータ圧縮方法であって、
前記圧縮対象データから前記コード部を抽出するデータ抽出ステップと、
前記データ抽出ステップで抽出したコード部を２値化処理し、２値化処理した２値化データを前記符号化手段に出力するコード部処理ステップとを含み、
前記コード部処理ステップは、前記コード部に含まれる多ビットコードに対して、前記２値化データにおけるビットの出現確率が偏るように圧縮コードを割り当てることを特徴とする。
これにより、形態１のデータ圧縮システムと同等の効果が得られる。
【００４５】
〔形態２２〕  さらに、形態２２のデータ圧縮方法は、
画像データを算術符号化用に２値化処理する画像データ処理手段と、前記画像データ処理手段で２値化処理した２値化データを算術符号化する算術符号化手段とを有する算術符号化器を利用して、多ビットコードからなるコード部、および前記画像データを含む圧縮対象データを圧縮するデータ圧縮方法であって、
前記圧縮対象データから前記コード部および前記画像データをそれぞれ抽出し、抽出した画像データを前記画像データ処理手段に出力するデータ抽出ステップと、
前記データ抽出ステップで抽出したコード部を算術符号化用に２値化処理し、２値化処理した２値化データを前記算術符号化手段に出力するコード部処理ステップとを含み、
前記コード部処理ステップは、前記コード部に含まれる多ビットコードに対して、前記２値化データにおけるビットの出現確率が偏るように圧縮コードを割り当てることを特徴とする。
これにより、形態２のデータ圧縮システムと同等の効果が得られる。
【００４６】
〔形態２３〕  さらに、形態２３のデータ圧縮方法は、形態２２のデータ圧縮方法において、
前記コード部処理ステップは、前記コード部における出現確率が高い多ビットコードほど、「０」および「１」のいずれか一方のビットが出現する個数の多いビット列の圧縮コードを割り当てることを特徴とする。
これにより、形態３のデータ圧縮システムと同等の効果が得られる。
【００４７】
〔形態２４〕  さらに、形態２４のデータ圧縮方法は、形態２３のデータ圧縮方法において、
前記コード部処理ステップは、前記多ビットコードの種別ごとに、当該種別の多ビットコードに対して、前記複数のビット列の圧縮コードのうちいずれか１つを対応付けた圧縮コード対応テーブルのなかから、前記多ビットコードに対応する圧縮コードを選択し、前記多ビットコードに対して前記選択した圧縮コードを割り当て、前記コード部における前記多ビットコードの出現頻度に応じて前記圧縮コード対応テーブルの対応付けを変更することを特徴とする。
これにより、形態４のデータ圧縮システムと同等の効果が得られる。
【００４８】
〔形態２５〕  さらに、形態２５のデータ圧縮方法は、形態２４のデータ圧縮方法において、
前記コード部処理ステップは、前記コード部における出現頻度が高い多ビットコードほど、前記一方のビットが出現する個数の多いビット列の圧縮コードを対応付けることを特徴とする。
これにより、形態５のデータ圧縮システムと同等の効果が得られる。
【００４９】
〔形態２６〕  さらに、形態２６のデータ圧縮方法は、形態２３のデータ圧縮方法において、
前記コード部処理ステップは、前記多ビットコードの種別ごとに、当該種別の多ビットコードに対して、前記複数のビット列の圧縮コードのうちいずれか１つを対応付けた圧縮コード対応テーブルのなかから、前記多ビットコードに対応する圧縮コードを選択し、前記多ビットコードに対して前記選択した圧縮コードを割り当て、前記コード部における前記多ビットコードの出現順位に応じて前記圧縮コード対応テーブルの対応付けを変更することを特徴とする。
これにより、形態６のデータ圧縮システムと同等の効果が得られる。
【００５０】
〔形態２７〕  さらに、形態２７のデータ圧縮方法は、形態２６のデータ圧縮方法において、
前記一方のビットが出現する個数の多い順に前記複数の圧縮コードを順位付けし、
前記コード部処理ステップは、前記圧縮コード対応テーブルにおいて直前に参照した前記多ビットコードに対しては、前記複数の圧縮コードのうち１番目の順位のものを対応付け、かつ、前記直前に参照した多ビットコードに割り当てられていた圧縮コードよりも順位が高い圧縮コードが対応付けられている前記多ビットコードに対しては、前記複数の圧縮コードのうち当該順位よりも１つ低いものを対応付けることを特徴とする。
これにより、形態７のデータ圧縮システムと同等の効果が得られる。
【００５１】
〔形態２８〕  さらに、形態２８のデータ圧縮方法は、形態２２ないし２４および２６のいずれか１のデータ圧縮方法において、
前記算術符号化手段により前記２値化データを算術符号化する算術符号化ステップを含み、
前記算術符号化ステップは、前記コード部処理ステップから直前に入力したビットまたはビット列の値に基づいて、内容の異なる複数の算術符号化テーブルのなかからいずれか１つを選択し、選択した算術符号化テーブルに基づいて前記２値化データを算術符号化することを特徴とする。
これにより、形態８のデータ圧縮システムと同等の効果が得られる。
【００５２】
〔形態２９〕  さらに、形態２９のデータ圧縮方法は、形態２８のデータ圧縮方法において、
前記コード部処理ステップは、前記一方のビットが出現する個数が同一のビット列の圧縮コードについては、前記コード部における出現確率が高い多ビットコードほど、「０」および「１」のいずれか他方のビットが連続で出現する個数の多いビット列からなる圧縮コードを割り当てることを特徴とする。
これにより、形態９のデータ圧縮システムと同等の効果が得られる。
【００５３】
〔形態３０〕  さらに、形態３０のデータ圧縮方法は、形態２２のデータ圧縮方法において、
前記コード部処理ステップは、前記コード部における出現確率が低い多ビットコードほど、「０」および「１」のいずれか一方のビットが出現する個数の多いビット列の圧縮コードを割り当てることを特徴とする。
これにより、形態１０のデータ圧縮システムと同等の効果が得られる。
【発明を実施するための最良の形態】
【００５４】
以下、本発明の第１の実施の形態を図面を参照しながら説明する。図１ないし図７は、本発明に係るデータ圧縮システムおよびデータ圧縮プログラム、並びにデータ圧縮方法の第１の実施の形態を示す図である。
本実施の形態は、本発明に係るデータ圧縮システムおよびデータ圧縮プログラム、並びにデータ圧縮方法を、図１に示すように、ホスト端末１００が印刷データを圧縮してプリンタ２００に送信する場合について適用したものである。
【００５５】
まず、本発明を適用するネットワークシステムの機能概要を図１を参照しながら説明する。
図１は、本発明を適用するネットワークシステムの機能概要を示す機能ブロック図である。
ネットワーク１９９には、図１に示すように、印刷を要求するホスト端末１００と、印刷要求に応じて印刷を行うプリンタ２００とが接続されている。
【００５６】
ホスト端末１００は、文書作成アプリケーション等により作成した文書データに基づいて、印刷制御のための複数の制御コードからなる制御データ、および印刷画像を構成する画像データを含む印刷データを生成し、生成した印刷データを圧縮し、圧縮して得られた圧縮印刷データを印刷要求とともにプリンタ２００に送信するようになっている。
ホスト端末１００は、印刷データから制御データおよび画像データをそれぞれ抽出するデータ抽出部１０と、データ抽出部１０で抽出した画像データを算術符号化用に２値化処理する画像データ処理部１２と、データ抽出部１０で抽出した制御データを算術符号化用に２値化処理する制御データ処理部１４と、画像データ処理部１２および制御データ処理部１４で２値化処理した２値化データを算術符号化する算術符号化部１６と、算術符号化部１６で算術符号化して得られた圧縮印刷データをプリンタ２００に送信する圧縮印刷データ送信部１８とを有して構成されている。ここで、画像データ処理部１２および算術符号化部１６は、ＪＰＥＧ２０００等の公知の算術符号化器を構成している。
【００５７】
画像データ処理部１２は、画像データに対してＤＷＴを行うＤＷＴ処理部１２ａと、ＤＷＴ処理部１２ａの処理結果に対して量子化を行う量子化処理部１２ｂと、量子化処理部１２ｂの処理結果に対して係数ビットモデリングを行う係数ビットモデリング処理部１２ｃとで構成されている。これら処理部１２ａ〜１２ｃは、例えば、ＪＰＥＧ２０００におけるＤＷＴ処理、量子化処理および係数ビットモデリング処理と同様に構成することができる。
【００５８】
制御データ処理部１４は、制御データに含まれる制御コードに対して、２値化データにおけるビットの出現確率が偏るように圧縮コードを割り当てるようになっている。
プリンタ２００は、印刷要求とともに圧縮印刷データを受信したときは、受信した圧縮印刷データを復号し、復号して得られた印刷データに基づいて印刷を行うようになっている。
【００５９】
次に、ホスト端末１００の構成を図２ないし図５を参照しながら詳細に説明する。
図２は、ホスト端末１００のハードウェア構成を示すブロック図である。
ホスト端末１００は、図２に示すように、制御プログラムに基づいて演算およびシステム全体を制御するＣＰＵ３０と、所定領域にあらかじめＣＰＵ３０の制御プログラム等を格納しているＲＯＭ３２と、ＲＯＭ３２等から読み出したデータやＣＰＵ３０の演算過程で必要な演算結果を格納するためのＲＡＭ３４と、外部装置に対してデータの入出力を媒介するＩ／Ｆ３８とで構成されており、これらは、データを転送するための信号線であるバス３９で相互にかつデータ授受可能に接続されている。
【００６０】
Ｉ／Ｆ３８には、外部装置として、ヒューマンインターフェースとしてデータの入力が可能なキーボードやマウス等からなる入力装置４０と、データやテーブル等をファイルとして格納する記憶装置４２と、画像信号に基づいて画面を表示する表示装置４４と、ネットワーク１９９に接続するための信号線とが接続されている。
記憶装置４２は、制御データに含まれる制御コードに対して割り当てる圧縮コードを定義した圧縮コード定義テーブル４００を記憶している。
【００６１】
図３は、圧縮コード定義テーブル４００のデータ構造を示す図である。
圧縮コード定義テーブル４００は、図３に示すように、所定ビット数（図３の例では、４ビット）で構成可能なすべてのビット列を、ビットの値が「０」となる個数の多い順に配列してそれらを圧縮コードとして定義している。圧縮コード定義テーブル４００には、各圧縮コードごとに１つのレコードが登録されている。各レコードは、圧縮コードを一意に識別するための圧縮コード番号を登録したフィールド４０２と、圧縮コードを登録したフィールド４０４とを含んで構成されている。
【００６２】
図３の例では、第１段目のレコードには、ビットの値が「０」となる個数が４つのビット列「００００」が、第２〜第５段目のレコードには、ビットの値が「０」となる個数が３つのビット列「０００１」、「００１０」、「０１００」および「１０００」がそれぞれ圧縮コードとして登録されており、その順で「０」〜「４」の圧縮コード番号が設定されている。これは、圧縮コード番号が若いほど、ビットの値が「０」となる個数が多いビット列の圧縮コードが対応していることを示している。
【００６３】
記憶装置４２は、さらに、制御コードに対して圧縮コードを対応付けて登録した圧縮コード対応テーブル４２０を記憶している。
図４は、圧縮コード対応テーブル４２０のデータ構造を示す図である。
圧縮コード対応テーブル４２０は、図４に示すように、所定ビット数（図４の例では、４ビット）で構成可能なすべてのビット列を、想定されるすべての種類の制御コードとして定義し、各制御コードに対して、圧縮コード定義テーブル４００における圧縮コードのうちいずれか１つを対応付けて登録している。圧縮コード対応テーブル４２０には、各制御コードごとに１つのレコードが登録されている。各レコードは、制御コードを登録したフィールド４２２と、圧縮コード番号を登録したフィールド４２４とを含んで構成されている。
【００６４】
図４の例では、第１段目のレコードには、制御コードとして「０」が、圧縮コード番号として「０」がそれぞれ登録されている。これは、制御コード「０」に対しては、圧縮コード番号「０」に対応する圧縮コード「００００」が割り当てられることを示している。
図２に戻り、ＣＰＵ３０は、マイクロプロセッシングユニット（ＭＰＵ）等からなり、ＲＯＭ３２の所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図５のフローチャートに示す印刷データ圧縮処理を実行するようになっている。
【００６５】
図５は、印刷データ圧縮処理を示すフローチャートである。
印刷データ圧縮処理は、データ抽出部１０および制御データ処理部１４として実現される処理であって、ＣＰＵ３０において実行されると、図５に示すように、まず、ステップＳ１００に移行するようになっている。以下、制御コードをＣ、圧縮コード番号をＥ、圧縮コード対応テーブル４２０において制御コードＣに対応する圧縮コード番号をＥ（Ｃ）、圧縮コード対応テーブル４２０において圧縮コード番号Ｅに対応する制御コードをＣ（Ｅ）、制御コードＣの出現回数ｎ（Ｃ）と表記する。
【００６６】
ステップＳ１００では、ユーザからの印刷要求を入力装置４０から入力したか否かを判定し、ユーザからの印刷要求を入力したと判定したとき(Yes)は、ステップＳ１０２に移行するが、そうでないと判定したとき(No)は、ユーザからの印刷要求を入力するまでステップＳ１００で待機する。
ステップＳ１０２では、印刷データから画像データを抽出し、ステップＳ１０４に移行して、抽出した画像データを画像データ処理部１２に出力し、ステップＳ１０６に移行して、印刷データから制御データを抽出し、ステップＳ１０８に移行する。
【００６７】
ステップＳ１０８では、抽出した制御データから先頭の制御コードＣを読み出し、ステップＳ１１０に移行して、制御コードＣの出現回数ｎ（Ｃ）を「１」加算し、ステップＳ１１２に移行する。
ステップＳ１１２では、圧縮コード対応テーブル４２０に基づいて、圧縮コード定義テーブル４００における圧縮コードのなかから、制御コードＣに対応する圧縮コードを選択し、ステップＳ１１４に移行して、制御コードＣに対して、選択した圧縮コード（以下、選択圧縮コードという。）を割り当て、ステップＳ１１６に移行する。
【００６８】
ステップＳ１１６では、制御コードＣに対応する圧縮コード番号Ｅ（Ｃ）が「０」よりも大きいか否かを判定し、圧縮コード番号Ｅ（Ｃ）が「０」よりも大きいと判定したとき(Yes)は、ステップＳ１１８に移行する。
ステップＳ１１８では、出現回数ｎ（Ｃ）が、圧縮コード番号Ｅ（Ｃ）よりも１つ若い圧縮コード番号に対応する制御コードＣ（Ｅ（Ｃ）−１）の出現回数ｎ（Ｃ（Ｅ（Ｃ）−１））よりも大きいか否かを判定し、出現回数ｎ（Ｃ）が出現回数ｎ（Ｃ（Ｅ（Ｃ）−１））よりも大きいと判定したとき(Yes)は、ステップＳ１２０に移行する。
【００６９】
ステップＳ１２０では、圧縮コード対応テーブル４２０において、圧縮コード番号Ｅ（Ｃ）と、制御コードＣ（Ｅ（Ｃ）−１）に対応する圧縮コード番号Ｅ（Ｃ（Ｅ（Ｃ）−１））とを入れ替え、ステップＳ１１６に移行する。
一方、ステップＳ１１８で、出現回数ｎ（Ｃ）が出現回数ｎ（Ｃ（Ｅ（Ｃ）−１））以下であると判定したとき(No)は、ステップＳ１２２に移行して、抽出した制御データのなかで未処理の制御コードＣが存在するか否かを判定し、未処理の制御コードＣが存在しないと判定したとき(No)は、ステップＳ１２４に移行して、２値化した２値化データを算術符号化部１６に出力し、一連の処理を終了して元の処理に復帰させる。
【００７０】
一方、ステップＳ１１２で、未処理の制御コードＣが存在すると判定したとき(Yes)は、ステップＳ１２６に移行して、抽出した制御データから次の制御コードＣを読み出し、ステップＳ１１０に移行する。
一方、ステップＳ１１６で、圧縮コード番号Ｅ（Ｃ）が「０」であると判定したとき(No)は、ステップＳ１１２に移行する。
【００７１】
次に、本実施の形態の動作を図６および図７を参照しながら説明する。
以下、制御コードとして「２」、「５」、「１」、「１」、「２」、「２」および「３」を含む制御データを２値化処理する場合を例にとって説明する。また、制御コードおよび圧縮コードはいずれも４ビットで構成されているとし、圧縮コード対応テーブル４２０は、初期状態として、制御コード「０」〜「１５」に対してその順で圧縮コード番号「０」〜「１５」が対応付けられているとする。
【００７２】
ホスト端末１００では、ユーザからの印刷要求が入力されると、ステップＳ１０２，Ｓ１０４を経て、印刷データから画像データが抽出され、抽出された画像データが画像データ処理部１２に出力される。算術符号化器では、画像データが与えられると、画像データ処理部１２により、与えられた画像データに対してＤＷＴ処理、量子化処理および係数ビットモデリング処理が行われて画像データが算術符号化用に２値化処理される。
【００７３】
また、ホスト端末１００では、ステップＳ１０６〜Ｓ１２６を経て、印刷データから制御データが抽出され、抽出された制御データが算術符号化用に２値化処理される。
図６は、圧縮コード対応テーブル４２０の登録内容が変化する様子を示す図である。
（１）まず、ステップＳ１０８を経て、制御データから先頭の制御コード「２」が読み出される。圧縮コード対応テーブル４２０を参照すると、制御コード「２」には圧縮コード番号「２」が対応付けられているので、制御コード「２」は、ステップＳ１１２，Ｓ１１４を経て、圧縮コード番号「２」に対応する圧縮コード「００１０」に変換される。
【００７４】
これにより、制御コード「２」の出現回数が「１」となり最も大きいので、ステップＳ１１６〜Ｓ１１２を繰り返し経て、圧縮コード対応テーブル４２０において、制御コード「２」には圧縮コード番号「０」が対応付けられる。また、制御コード「２」に対して今回割り当てた圧縮コード番号「２」よりも若いすべての圧縮コード番号が「１」増加する。圧縮コード対応テーブル４２０において、制御コード「０」および「１」には圧縮コード番号「０」および「１」が対応付けられているので、これらが対象となりそれぞれ「１」増加する。その結果、圧縮コード対応テーブル４２０は、図６の２段目の登録内容となる。
（２）次に、ステップＳ１２２，Ｓ１２６を経て、制御コード「５」が読み出される。圧縮コード対応テーブル４２０を参照すると、制御コード「５」には圧縮コード番号「５」が対応付けられているので、制御コード「５」は、圧縮コード番号「５」に対応する圧縮コード「００１１」に変換される。
【００７５】
これにより、制御コード「５」の出現回数が「１」となり２番目に大きい（同一出現回数の制御コードが複数存在する場合は、先に出現した順で順位が高くなる。以下、同様。）ので、圧縮コード対応テーブル４２０において、制御コード「５」には圧縮コード番号「１」が対応付けられる。また、制御コード「５」に対して今回割り当てた圧縮コード番号「５」よりも若く、かつ、制御コード「５」に対して次回割当予定の圧縮コード番号「１」以上のすべての圧縮コード番号が「１」増加する。圧縮コード対応テーブル４２０において、制御コード「０」、「１」、「３」および「４」には圧縮コード番号「１」〜「４」が対応付けられているので、これらが対象となりそれぞれ「１」増加する。その結果、圧縮コード対応テーブル４２０は、図６の３段目の登録内容となる。
（３）次に、制御コード「１」が読み出される。圧縮コード対応テーブル４２０を参照すると、制御コード「１」には圧縮コード番号「２」が対応付けられているので、制御コード「１」は、圧縮コード番号「２」に対応する圧縮コード「００１０」に変換される。
【００７６】
これにより、制御コード「１」の出現回数が「１」となり３番目に大きいので、制御コード「１」には圧縮コード番号「２」が対応付けられる。その結果、圧縮コード対応テーブル４２０は、図６の４段目の登録内容となる。
（４）次に、制御コード「１」が読み出される。圧縮コード対応テーブル４２０を参照すると、制御コード「１」には圧縮コード番号「２」が対応付けられているので、制御コード「１」は、圧縮コード番号「２」に対応する圧縮コードに変換される。
【００７７】
これにより、制御コード「１」の出現回数が「２」となり最も大きいので、制御コード「１」には圧縮コード番号「０」が対応付けられる。また、制御コード「１」に対して今回割り当てた圧縮コード番号「２」よりも若いすべての圧縮コード番号が「１」増加する。その結果、圧縮コード対応テーブル４２０は、図６の５段目の登録内容となる。
（５）次に、制御コード「２」が読み出される。圧縮コード対応テーブル４２０を参照すると、制御コード「２」には圧縮コード番号「１」が対応付けられているので、制御コード「２」は、圧縮コード番号「１」に対応する圧縮コード「０００１」に変換される。
【００７８】
これにより、制御コード「２」の出現回数が「２」となり２番目に大きいので、制御コード「２」には圧縮コード番号「１」が対応付けられる。その結果、圧縮コード対応テーブル４２０は、図６の６段目の登録内容となる。
（６）次に、制御コード「２」が読み出される。圧縮コード対応テーブル４２０を参照すると、制御コード「２」には圧縮コード番号「１」が対応付けられているので、制御コード「２」は、圧縮コード番号「１」に対応する圧縮コードに変換される。
【００７９】
これにより、制御コード「２」の出現回数が「３」となり最も大きいので、制御コード「２」には圧縮コード番号「０」が対応付けられる。また、制御コード「２」に対して今回割り当てた圧縮コード番号「１」よりも若いすべての圧縮コード番号が「１」増加する。その結果、圧縮コード対応テーブル４２０は、図６の７段目の登録内容となる。
（７）次に、制御コード「３」が読み出される。圧縮コード対応テーブル４２０を参照すると、制御コード「３」には圧縮コード番号「４」が対応付けられているので、制御コード「３」は、圧縮コード番号「４」に対応する圧縮コード「０１００」に変換される。
【００８０】
これにより、制御コード「３」の出現回数が「１」となり３番目に大きいので、制御コード「３」には圧縮コード番号「３」が対応付けられる。また、制御コード「３」に対して今回割り当てた圧縮コード番号「４」よりも若く、かつ、制御コード「３」に対して次回割当予定の圧縮コード番号「３」以上のすべての圧縮コード番号が「１」増加する。その結果、圧縮コード対応テーブル４２０は、図６の８段目の登録内容となる。
【００８１】
そして、制御データが２値化処理されると、ステップＳ１２４を経て、２値化された２値化データが算術符号化部１６に出力される。算術符号化器では、画像データおよび制御データが２値化処理されると、算術符号化部１６により、それら２値化データが算術符号化される。
ホスト端末１００では、圧縮印刷データ送信部１８により、算術符号化して得られた圧縮印刷データが印刷要求とともにプリンタ２００に送信される。
【００８２】
プリンタ２００では、印刷要求とともに圧縮印刷データを受信すると、受信した圧縮印刷データが上記同様のアルゴリズムにより復号され、復号して得られた印刷データに基づいて印刷が行われる。
図７は、本実施の形態に係る圧縮アルゴリズムの圧縮効果を説明するための図である。
本実施の形態に係る圧縮アルゴリズムにより、内容の異なる５種類の印刷データ「J1.doc」、「J2.doc」、「J3.doc」、「J4.doc」および「J6.doc」を圧縮した場合、その圧縮率は、それぞれ「65.0％」、「66.7％」、「66.0％」、「68.6％」および「75.3％」となった。
【００８３】
このようにして、本実施の形態では、印刷データから制御データおよび画像データをそれぞれ抽出し、抽出した画像データを画像データ処理部１２に出力し、抽出した制御データに含まれる制御コードに対して、２値化データにおけるビットの出現確率が偏るように圧縮コードを割り当てることにより制御データを算術符号化用に２値化処理し、２値化処理した２値化データを算術符号化部１６に出力するようになっている。
【００８４】
これにより、算術符号化器に対してデータ抽出部１０および制御データ処理部１４を付加するだけでよいので、２種類の符号化器を設ける構成に比して、システム構成を簡素化することができる。また、制御コードに対して、２値化データにおけるビットの出現確率が偏るように圧縮コードが割り当てられた上で算術符号化が行われるので、制御コードを単にビット列として算術符号化する構成に比して、符号化効率が向上し、制御データに対して高い圧縮率を実現することができる。
【００８５】
さらに、本実施の形態では、出現回数が高い制御コードほど、ビットの値が「０」となる個数の多いビット列の圧縮コードを割り当てるようになっている。
これにより、２値化データにおけるビットの出現確率を効果的に偏らせることができるので、符号化効率が向上し、制御データに対してさらに高い圧縮率を実現することができる。
【００８６】
さらに、本実施の形態では、圧縮コード対応テーブル４２０に基づいて、制御コードに対応する圧縮コードを選択し、制御コードに対して選択圧縮コードを割り当て、制御コードの出現回数に応じて圧縮コード対応テーブル４２０の対応付けを変更するようになっている。
これにより、制御コードの出現回数に応じて、制御コードに割り当てられる圧縮コードが変更されるので、２値化データにおけるビットの出現確率をさらに効果的に偏らせることができる。したがって、符号化効率が向上し、制御データに対してさらに高い圧縮率を実現することができる。
【００８７】
さらに、本実施の形態では、出現回数が高い制御コードほど、ビットの値が「０」となる個数の多いビット列の圧縮コードを対応付けるようになっている。
これにより、２値化データにおけるビットの出現確率をさらに効果的に偏らせることができるので、符号化効率が向上し、制御データに対してさらに高い圧縮率を実現することができる。
【００８８】
上記第１の実施の形態において、データ抽出部１０およびステップＳ１０２〜Ｓ１０６は、形態１または２のデータ抽出手段に対応し、ステップＳ１０２〜Ｓ１０６は、形態１１、１２、２１または２２のデータ抽出ステップに対応し、画像データ処理部１２は、形態１、２、１１、１２、２１または２２の画像データ処理手段に対応している。また、制御データ処理部１４およびステップＳ１０８〜Ｓ１２６は、形態１ないし５のコード部処理手段に対応し、ステップＳ１０８〜Ｓ１２６は、形態１１ないし１５、２１ないし２５のコード部処理ステップに対応し、算術符号化部１６は、形態１、１１若しくは２１の符号化手段、または形態２、１２若しくは２２の算術符号化手段に対応している。
【００８９】
また、上記第１の実施の形態において、印刷データは、形態１、２、１１、１２、２１または２２の圧縮対象データに対応し、制御データは、形態１ないし５、１１ないし１５、２１ないし２５のコード部に対応し、制御コードは、形態１ないし５、１１ないし１５、２１ないし２５の多ビットコードに対応している。
次に、本発明の第２の実施の形態を図面を参照しながら説明する。図８ないし図１０は、本発明に係るデータ圧縮システムおよびデータ圧縮プログラム、並びにデータ圧縮方法の第２の実施の形態を示す図である。
【００９０】
本実施の形態は、本発明に係るデータ圧縮システムおよびデータ圧縮プログラム、並びにデータ圧縮方法を、ホスト端末１００が印刷データを圧縮してプリンタ２００に送信する場合について適用したものであり、上記第１の実施の形態と異なるのは、制御データにおける制御コードの出現順位に応じて圧縮コード対応テーブル４２０を更新する点にある。なお、以下、上記第１の実施の形態と異なる部分についてのみ説明し、上記第１の実施の形態と重複する部分については同一の符号を付して説明を省略する。
【００９１】
ＣＰＵ３０は、ＲＯＭ３２の所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図５のフローチャートに示す印刷データ圧縮処理に代えて、図８のフローチャートに示す印刷データ圧縮処理を実行するようになっている。
図８は、印刷データ圧縮処理を示すフローチャートである。
印刷データ圧縮処理は、データ抽出部１０および制御データ処理部１４として実現される処理であって、ＣＰＵ３０において実行されると、図８に示すように、まず、ステップＳ２００に移行するようになっている。
【００９２】
ステップＳ２００では、ユーザからの印刷要求を入力装置４０から入力したか否かを判定し、ユーザからの印刷要求を入力したと判定したとき(Yes)は、ステップＳ２０２に移行するが、そうでないと判定したとき(No)は、ユーザからの印刷要求を入力するまでステップＳ２００で待機する。
ステップＳ２０２では、印刷データから画像データを抽出し、ステップＳ２０４に移行して、抽出した画像データを画像データ処理部１２に出力し、ステップＳ２０６に移行して、印刷データから制御データを抽出し、ステップＳ２０８に移行する。
【００９３】
ステップＳ２０８では、抽出した制御データから先頭の制御コードＣを読み出し、ステップＳ２１０に移行して、圧縮コード対応テーブル４２０に基づいて、圧縮コード定義テーブル４００における圧縮コードのなかから、制御コードＣに対応する圧縮コードを選択し、ステップＳ２１２に移行して、制御コードＣに対して選択圧縮コードを割り当て、ステップＳ２１４に移行する。
【００９４】
ステップＳ２１４では、制御コードＣに対応する圧縮コード番号Ｅ（Ｃ）をカウンタ変数ｉに設定し、ステップＳ２１６に移行して、変数ｉの値が「０」よりも大きいか否かを判定し、変数ｉの値が「０」よりも大きいと判定したとき(Yes)は、ステップＳ２１８に移行する。
ステップＳ２１８では、変数ｉの値から「１」を減算した値を変数ｉの新たな値として設定し、ステップＳ２２０に移行して、圧縮コード対応テーブル４２０において、変数ｉの値と一致する圧縮コード番号Ｅ（Ｃ（ｉ））に「１」を加算し、ステップＳ２１６に移行する。
【００９５】
一方、ステップＳ２１６で、変数ｉの値が「０」であると判定したとき(No)は、ステップＳ２２２に移行して、制御コードＣに対応する圧縮コード番号Ｅ（Ｃ）に「０」を設定し、ステップＳ２２４に移行する。
ステップＳ２２４で、抽出した制御データのなかで未処理の制御コードＣが存在するか否かを判定し、未処理の制御コードＣが存在しないと判定したとき(No)は、ステップＳ２２６に移行して、２値化した２値化データを算術符号化部１６に出力し、一連の処理を終了して元の処理に復帰させる。
【００９６】
一方、ステップＳ２２４で、未処理の制御コードＣが存在すると判定したとき(Yes)は、ステップＳ２２８に移行して、抽出した制御データから次の制御コードＣを読み出し、ステップＳ２１０に移行する。
次に、本実施の形態の動作を図９および図１０を参照しながら説明する。
以下、制御コードとして「２」、「５」、「１」、「１」、「２」、「２」および「３」を含む制御データを２値化処理する場合を例にとって説明する。また、制御コードおよび圧縮コードはいずれも４ビットで構成されているとし、圧縮コード対応テーブル４２０は、初期状態として、制御コード「０」〜「１５」に対してその順で圧縮コード番号「０」〜「１５」が対応付けられているとする。
【００９７】
ホスト端末１００では、ステップＳ２０８〜Ｓ２２８を経て、印刷データから制御データが抽出され、抽出された制御データが算術符号化用に２値化処理される。
図９は、圧縮コード対応テーブル４２０の登録内容が変化する様子を示す図である。
（１）まず、ステップＳ２０８を経て、制御データから先頭の制御コード「２」が読み出される。圧縮コード対応テーブル４２０を参照すると、制御コード「２」には圧縮コード番号「２」が対応付けられているので、制御コード「２」は、ステップＳ２１０，Ｓ２１２を経て、圧縮コード番号「２」に対応する圧縮コード「００１０」に変換される。
【００９８】
そして、ステップＳ２１６〜Ｓ２２０を繰り返し経て、圧縮コード対応テーブル４２０において、制御コード「２」には圧縮コード番号「０」が対応付けられる。また、今回割り当てた圧縮コード番号「２」よりも若いすべての圧縮コード番号が「１」加算される。圧縮コード対応テーブル４２０において、制御コード「０」および「１」には圧縮コード番号「０」および「１」が対応付けられているので、これらが加算対象となりそれぞれ「１」加算される。その結果、圧縮コード対応テーブル４２０は、図９の２段目の登録内容となる。
（２）次に、ステップＳ２２８を経て、制御データから次の制御コード「５」が読み出される。圧縮コード対応テーブル４２０を参照すると、制御コード「５」には圧縮コード番号「５」が対応付けられているので、制御コード「５」は、圧縮コード番号「５」に対応する圧縮コード「００１１」に変換される。
【００９９】
そして、圧縮コード対応テーブル４２０において、制御コード「５」には圧縮コード番号「０」が対応付けられる。また、今回割り当てた圧縮コード番号「５」よりも若いすべての圧縮コード番号が「１」加算される。圧縮コード対応テーブル４２０において、制御コード「０」〜「４」には圧縮コード番号「１」、「２」、「０」、「３」および「４」が対応付けられているので、これらが加算対象となりそれぞれ「１」加算される。その結果、圧縮コード対応テーブル４２０は、図９の３段目の登録内容となる。
（３）次に、制御コード「１」が読み出される。圧縮コード対応テーブル４２０を参照すると、制御コード「１」には圧縮コード番号「３」が対応付けられているので、制御コード「１」は、圧縮コード番号「３」に対応する圧縮コード「０１００」に変換される。そして、制御コード「１」には圧縮コード番号「０」が対応付けられる。また、今回割り当てた圧縮コード番号「３」よりも若いすべての圧縮コード番号が「１」加算される。その結果、圧縮コード対応テーブル４２０は、図９の４段目の登録内容となる。
（４）次に、制御コード「１」が読み出される。圧縮コード対応テーブル４２０を参照すると、制御コード「１」には圧縮コード番号「０」が対応付けられているので、制御コード「１」は、圧縮コード番号「０」に対応する圧縮コード「００００」に変換される。そして、制御コード「１」には圧縮コード番号「０」が対応付けられる。その結果、圧縮コード対応テーブル４２０は、図９の５段目の登録内容となる。
（５）次に、制御コード「２」が読み出される。圧縮コード対応テーブル４２０を参照すると、制御コード「２」には圧縮コード番号「２」が対応付けられているので、制御コード「２」は、圧縮コード番号「２」に対応する圧縮コードに変換される。そして、制御コード「２」には圧縮コード番号「０」が対応付けられる。また、今回割り当てた圧縮コード番号「２」よりも若いすべての圧縮コード番号が「１」加算される。その結果、圧縮コード対応テーブル４２０は、図９の６段目の登録内容となる。
（６）次に、制御コード「２」が読み出される。圧縮コード対応テーブル４２０を参照すると、制御コード「２」には圧縮コード番号「０」が対応付けられているので、制御コード「２」は、圧縮コード番号「０」に対応する圧縮コードに変換される。そして、制御コード「２」には圧縮コード番号「０」が対応付けられる。その結果、圧縮コード対応テーブル４２０は、図９の７段目の登録内容となる。
（７）次に、制御コード「３」が読み出される。圧縮コード対応テーブル４２０を参照すると、制御コード「３」には圧縮コード番号「４」が対応付けられているので、制御コード「３」は、圧縮コード番号「４」に対応する圧縮コード「１０００」に変換される。そして、制御コード「３」には圧縮コード番号「０」が対応付けられる。また、今回割り当てた圧縮コード番号「３」よりも若いすべての圧縮コード番号が「１」加算される。その結果、圧縮コード対応テーブル４２０は、図９の８段目の登録内容となる。
【０１００】
図１０は、本実施の形態に係る圧縮アルゴリズムの圧縮効果を説明するための図である。
本実施の形態に係る圧縮アルゴリズムにより、内容の異なる５種類の印刷データ「J1.doc」、「J2.doc」、「J3.doc」、「J4.doc」および「J6.doc」を圧縮した場合、その圧縮率は、それぞれ「74.9％」、「78.0％」、「78.3％」、「76.4％」および「81.3％」となった。また、上記第１の実施の形態に比して圧縮率は低くなるが、制御コードの統計をとらず画一的な手順で圧縮コード対応テーブル４２０を更新することができるので、圧縮コードの割当処理を比較的簡単に行うことができる。
【０１０１】
このようにして、本実施の形態では、圧縮コード対応テーブル４２０に基づいて、制御コードに対応する圧縮コードを選択し、制御コードに対して選択圧縮コードを割り当て、制御コードの出現順位に応じて圧縮コード対応テーブル４２０の対応付けを変更するようになっている。
これにより、制御コードの出現順位に応じて、制御コードに割り当てられる圧縮コードが変更されるので、２値化データにおけるビットの出現確率を効果的に偏らせることができるとともに、制御コードの統計をとらずにすみ、制御データを逐次的に処理することができる。したがって、圧縮コードの割当処理を比較的簡単に行うことができるので、圧縮コードの割当処理に対する処理負荷を低減することができる。
【０１０２】
さらに、本実施の形態では、圧縮コード対応テーブル４２０において直前に参照した制御コードに対しては圧縮コード番号「０」を対応付け、かつ、直前に参照した制御コードに対して割り当てられていた圧縮コードに対応する圧縮コード番号よりも若いすべての圧縮コード番号を「１」加算するようになっている。
これにより、圧縮コードの割当処理をより簡単に行うことができるので、圧縮コードの割当処理に対する処理負荷をさらに低減することができる。
【０１０３】
上記第２の実施の形態において、制御データ処理部１４およびステップＳ２０８〜Ｓ２２８は、形態６または７のコード部処理手段に対応し、ステップＳ２０８〜Ｓ２２８は、形態１６、１７、２６または２７のコード部処理ステップに対応し、制御データは、形態６、１６または２６のコード部に対応している。また、制御コードは、形態６、７、１６、１７、２６または２７の多ビットコードに対応している。
【０１０４】
なお、上記第１および第２の実施の形態においては、算術符号化部１６の構成については算術符号化器の算術符号化テーブルが１つの場合について説明したが、これに限らず、算術符号化部１６を次のような構成とすることもできる。
符号化効率を向上させるために、直前に入力したビットの値によって、算術符号化部１６で算術符号化に用いる算術符号化テーブルを切り換える。
【０１０５】
算術符号化部１６は、内容の異なる２つの算術符号化テーブルを備え、直前に入力したビットの値が「０」であると判定したときは、第１算術符号化テーブルを選択し、直前に入力したビットの値が「１」であると判定したときは、第２算術符号化テーブルを選択する。そして、選択した算術符号化テーブルに基づいて２値化データを算術符号化する。
上記第１および第２の実施の形態では、単純に「０」と「１」の出現頻度のみによって圧縮効率がコントロールされている。これに対し、算術符号化テーブルを切り換える構成では、「０」が出現した後の「０」と「１」の出現頻度と、「１」が出現した後の「０」と「１」の出現頻度によって、圧縮効率がコントロールされることになる。「１」が多く出現する圧縮コードを算術符号化する場合、単一の算術符号化テーブルを用いる場合と比較して、符号化効率の改善を見込むことができる。これは、算術符号化テーブルのインデックスを２種類もつだけでよいので、符号化の負荷もほとんど変化しない。
【０１０６】
しかしながら、単純に算術符号化テーブルを切り換えるだけでは、効果的な圧縮効率改善を望むことが難しい。算術符号化テーブルを切り換える構成では、「１」が出現した後と「０」が出現した後の出現頻度に偏りが発生するほど、効率的な圧縮が期待できる。そこで、「１」が出現した後により「１」が出現しやすくなるように圧縮コード定義テーブル４００を構成するのが好ましい。
【０１０７】
図１１は、圧縮コード定義テーブル４００のデータ構造を示す図である。
圧縮コード定義テーブル４００は、図１１に示すように、所定ビット数（図１１の例では、４ビット）で構成可能なすべてのビット列を、ビットの値が「０」となる個数の多い順に、かつ、ビットの値が「０」となる個数が同一のビット列については、「１」のビットが連続で出現する個数の多い順に配列し、それらを圧縮コードとして定義している。
【０１０８】
図１２は、算術符号化テーブルを切り換える場合における圧縮効果を説明するための図である。
図３の圧縮コード定義テーブル４００を利用して算術符号化テーブルを切り換えながら、内容の異なる５種類の印刷データ「J1.doc」、「J2.doc」、「J3.doc」、「J4.doc」および「J6.doc」を上記第１の実施の形態に係る圧縮アルゴリズムにより圧縮した場合、その圧縮率は、それぞれ「64.8％」、「66.5％」、「65.8％」、「68.3％」および「74.9％」となり、上記第１の実施の形態に比して、いずれも高い圧縮率が実現されていることが分かる。
【０１０９】
図１１の圧縮コード定義テーブル４００を利用して算術符号化テーブルを切り換えながら、上記第１の実施の形態に係る圧縮アルゴリズムにより同印刷データを圧縮した場合、その圧縮率は、それぞれ「64.3％」、「66.3％」、「65.5％」、「67.9％」および「74.9％」となり、さらに高い圧縮率が実現されていることが分かる。
図３の圧縮コード定義テーブル４００を利用して算術符号化テーブルを切り換えながら、上記第２の実施の形態に係る圧縮アルゴリズムにより同印刷データを圧縮した場合、その圧縮率は、それぞれ「72.2％」、「77.1％」、「76.8％」、「74.7％」および「79.2％」となり、上記第２の実施の形態に比して、いずれも高い圧縮率が実現されていることが分かる。
【０１１０】
図１１の圧縮コード定義テーブル４００を利用して算術符号化テーブルを切り換えながら、上記第２の実施の形態に係る圧縮アルゴリズムにより同印刷データを圧縮した場合、その圧縮率は、それぞれ「72.0％」、「76.1％」、「75.9％」、「74.1％」および「78.9％」となり、さらに高い圧縮率が実現されていることが分かる。
これにより、直前に入力されたビットの値に基づいて比較的適切な算術符号化テーブルが選択されるので、符号化効率が向上し、制御データおよび画像データに対して高い圧縮率を実現することができる。また、「１」のビットが発生した場合に、そのビットを連続して発生させることができるので、２値化データにおけるビットの出現確率を効果的に偏らせることができる。したがって、符号化効率が向上し、制御データおよび画像データに対してさらに高い圧縮率を実現することができる。
【０１１１】
この場合において、算術符号化部１６は、形態８、１８または２８の算術符号化手段に対応し、制御データは、形態９、１９または２９のコード部に対応し、制御コードは、形態９、１９または２９の多ビットコードに対応している。
また、算術符号化テーブルを切り換える構成においては、内容の異なる２つの算術符号化テーブルを備え、直前に入力したビットの値に基づいて算術符号化テーブルを選択するように構成したが、これに限らず、符号化効率をさらに向上させるためには、内容の異なる３つ以上の算術符号化テーブルを備え、直前に入力した多数のビットの値に基づいて算術符号化テーブルを選択するように構成することができる。
【０１１２】
また、上記第１および第２の実施の形態においては、出現回数が高い制御コードほど、ビットの値が「０」となる個数の多いビット列の圧縮コードを割り当てるように構成したが、これに限らず、出現回数が低い制御コードほど、ビットの値が「０」となる個数の多いビット列の圧縮コードを割り当てるように構成することもできる。
このような構成であっても、上記第１および第２の実施の形態と同等の効果が得られる。
【０１１３】
この場合において、制御データ処理部１４は、形態１０のコード部処理手段に対応し、制御データは、形態１０、２０または３０のコード部に対応し、制御コードは、形態１０、２０または３０の多ビットコードに対応している。
また、上記第１および第２の実施の形態においては、制御コードを圧縮するように構成したが、これに限らず、中間言語により記述された中間印刷データを圧縮する場合、中間印刷データには、文字コードからなる文字データが含まれているので、文字コードを圧縮するように構成することもできる。もちろん、文字コードに限らず、多ビットのコードであればどのようなコードでも圧縮することができる。
【０１１４】
また、上記第１および第２の実施の形態において、図５および図８のフローチャートに示す処理を実行するにあたってはいずれも、ＲＯＭ３２にあらかじめ格納されている制御プログラムを実行する場合について説明したが、これに限らず、これらの手順を示したプログラムが記憶された記憶媒体から、そのプログラムをＲＡＭ３４に読み込んで実行するようにしてもよい。
【０１１５】
ここで、記憶媒体とは、ＲＡＭ、ＲＯＭ等の半導体記憶媒体、ＦＤ、ＨＤ等の磁気記憶型記憶媒体、ＣＤ、ＣＤＶ、ＬＤ、ＤＶＤ等の光学的読取方式記憶媒体、ＭＯ等の磁気記憶型／光学的読取方式記憶媒体であって、電子的、磁気的、光学的等の読み取り方法のいかんにかかわらず、コンピュータで読み取り可能な記憶媒体であれば、あらゆる記憶媒体を含むものである。
【０１１６】
また、上記第１および第２の実施の形態においては、本発明に係るデータ圧縮システムおよびデータ圧縮プログラム、並びにデータ圧縮方法を、図１に示すように、ホスト端末１００が印刷データを圧縮してプリンタ２００に送信する場合について適用したが、これに限らず、本発明の主旨を逸脱しない範囲で他の場合にも適用可能である。例えば、次の３つの構成を提案することができる。
【０１１７】
第１の構成として、テキストデータおよび画像データを含む電子メールを送信する電子メール送受信装置に適用することができる。この場合、電子メール送受信装置は、データ抽出部１０、画像データ処理部１２、制御データ処理部１４、算術符号化部１６および圧縮印刷データ送信部１８を有して構成される。そして、上記実施の形態に係る圧縮アルゴリズムにより電子メールを圧縮し、圧縮して得られた圧縮電子メールを送信する。また、圧縮電子メールを受信したときは、同様のアルゴリズムにより圧縮電子メールを復号する。
【０１１８】
第２の構成として、ＪＰＥＧ２０００のＭＲＣ（Mixed Raster Content）のように、レイヤごとにテキストデータや画像データを分割して保存するデータ形式のデータを圧縮するデータ圧縮装置に適用することができる。この場合、データ圧縮装置は、データ抽出部１０、画像データ処理部１２、制御データ処理部１４、算術符号化部１６および圧縮印刷データ送信部１８を有して構成される。
【０１１９】
第３の構成として、データを圧縮して保存するページプリンタに適用することができる。この場合、ページプリンタは、データ抽出部１０、画像データ処理部１２、制御データ処理部１４、算術符号化部１６および圧縮印刷データ送信部１８を有して構成される。
【図面の簡単な説明】
【０１２０】
【図１】本発明を適用するネットワークシステムの機能概要を示す機能ブロック図である。
【図２】ホスト端末１００のハードウェア構成を示すブロック図である。
【図３】圧縮コード定義テーブル４００のデータ構造を示す図である。
【図４】圧縮コード対応テーブル４２０のデータ構造を示す図である。
【図５】印刷データ圧縮処理を示すフローチャートである。
【図６】圧縮コード対応テーブル４２０の登録内容が変化する様子を示す図である。
【図７】本実施の形態に係る圧縮アルゴリズムの圧縮効果を説明するための図である。
【図８】印刷データ圧縮処理を示すフローチャートである。
【図９】圧縮コード対応テーブル４２０の登録内容が変化する様子を示す図である。
【図１０】本実施の形態に係る圧縮アルゴリズムの圧縮効果を説明するための図である。
【図１１】圧縮コード定義テーブル４００のデータ構造を示す図である。
【図１２】算術符号化テーブルを切り換える場合における圧縮効果を説明するための図である。
【符号の説明】
【０１２１】
１００…ホスト端末，  １０…データ抽出部，  １２…画像データ処理部，  １２ａ…ＤＷＴ処理部，  １２ｂ…量子化処理部，  １２ｃ…係数ビットモデリング処理部，  １４…制御データ処理部，  １６…算術符号化部，  １８…圧縮印刷データ送信部，  ３０…ＣＰＵ，  ３２…ＲＯＭ，  ３４…ＲＡＭ，  ３８…Ｉ／Ｆ，  ３９…バス，  ４０…入力装置，  ４２…記憶装置，  ４４…表示装置，  ４００…圧縮コード定義テーブル，  ４２０…圧縮コード対応テーブル，  ２００…プリンタ，  １９９…ネットワーク
【図１】
2005312013.tif 000003
【図２】
2005312013.tif 000004
【図３】
2005312013.tif 000005
【図４】
2005312013.tif 000006
【図５】
2005312013.tif 000007
【図６】
2005312013.tif 000008
【図７】
2005312013.tif 000009
【図８】
2005312013.tif 000010
【図９】
2005312013.tif 000011
【図１０】
2005312013.tif 000012
【図１１】
2005312013.tif 000013
【図１２】
2005312013.tif 000014