(57)【要約】【課題】予測符号化方式で圧縮されたデータをさらに圧縮するデータ圧縮装置を提供する。【解決手段】画像処理装置２は、予測符号化方式で生成された被符号化シンボルのうち、予測が外れた部分に相当するシンボル（例えば、画素値そのもの）を抽出し、抽出された予測外れのシンボルの少なくとも一部を、予測が的中した場合に生成されるシンボル（例えば、ラン）で置換する。予測符号化方式では、予測が的中した場合に生成されるシンボルは、予測外れのシンボルよりも短い符号を割り当てられる場合が多いため、予測外れのシンボルが予測的中のシンボルで置換されることにより、符号量が小さくなる。【選択図】図２
2007104271.tif 000002
【特許請求の範囲】
【請求項１】
予測符号化方式で圧縮された圧縮データのうち、圧縮前のデータと予測データとが連続して一致する連続一致長が既定の基準値以下である圧縮データを抽出するデータ抽出手段と、
前記データ抽出手段により抽出された圧縮データの少なくとも一部を、予測データが圧縮前のデータと連続して一致した場合に生成される圧縮データで置換するデータ置換手段と
を有するデータ圧縮装置。
【請求項２】
前記データ置換手段は、前記基準値よりも長い連続一致長に対応する圧縮データで置換する
請求項１に記載のデータ圧縮装置。
【請求項３】
前記データ抽出手段により抽出された圧縮データの中から、既定の下限数以上連続する圧縮データ列を選択するデータ列選択手段
をさらに有し、
前記データ置換手段は、前記データ列選択手段により選択された圧縮データ列の少なくとも一部を置換する
請求項１又は２に記載のデータ圧縮装置。
【請求項４】
前記データ抽出手段は、圧縮前のデータと予測データとが一致しない場合に相当する圧縮データを抽出し、
前記データ列選択手段は、圧縮前のデータと予測データとが一致しない場合に相当する圧縮データの中から、前記下限数以上連続する圧縮データ列を選択する
請求項３に記載のデータ圧縮装置。
【請求項５】
前記データ列選択手段により選択された圧縮データ列に対応するデータ値の変化度合いを判定する変化判定手段
をさらに有し、
前記データ置換手段は、前記変化判定手段による判定結果に応じて、前記圧縮データ列の少なくとも一部を置換する
請求項３に記載のデータ圧縮装置。
【請求項６】
前記データ置換手段は、前記データ列選択手段により選択された圧縮データ列のうち、前記変化判定手段によりデータ値の変化範囲が既定の範囲内となる圧縮データ列を置換する
請求項５に記載のデータ圧縮装置。
【請求項７】
前記圧縮データは、予測符号化方式で圧縮された画像データであり、
前記データ抽出手段は、画像データに含まれる画素値と予測画素値とが連続して一致する連続一致長が既定の基準値以下である画素の圧縮画像データを抽出し、
前記データ列選択手段は、前記データ抽出手段により抽出された圧縮画像データの中から、既定の下限数以上連続する画素群の圧縮画像データを選択し、
前記データ置換手段は、連続する画素群の圧縮画像データの少なくとも一部を、予測画素値と圧縮前の画素値とが連続して一致する場合に生成される圧縮データで置換する
請求項３に記載のデータ圧縮装置。
【請求項８】
予測符号化方式で圧縮された圧縮データのうち、圧縮前のデータと予測データとが連続して一致する連続一致長が既定の基準値以下である圧縮データを抽出し、
抽出された圧縮データの少なくとも一部を、予測データが圧縮前のデータと連続して一致した場合に生成される圧縮データで置換する
データ圧縮方法。
【請求項９】
予測符号化方式で圧縮された圧縮データのうち、圧縮前のデータと予測データとが連続して一致する連続一致長が既定の基準値以下である圧縮データを抽出するステップと、
抽出された圧縮データの少なくとも一部を、予測データが圧縮前のデータと連続して一致した場合に生成される圧縮データで置換するステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、予測符号化方式で圧縮されたデータをさらに圧縮するデータ圧縮装置に関する。
【背景技術】
【０００２】
例えば、特許文献１は、第１のパラメータＱ１で画像を符号化し、この符号化結果を、第２のパラメータＱ２で再符号化する画像符号化装置を開示する。
【特許文献１】特開２００３−２８３８４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、上述した背景からなされたものであり、予測符号化方式で圧縮されたデータをさらに圧縮するデータ圧縮装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
［データ圧縮装置］
上記目的を達成するために、本発明にかかるデータ圧縮装置は、予測符号化方式で圧縮された圧縮データのうち、圧縮前のデータと予測データとが連続して一致する連続一致長が既定の基準値以下である圧縮データを抽出するデータ抽出手段と、前記データ抽出手段により抽出された圧縮データの少なくとも一部を、予測データが圧縮前のデータと連続して一致した場合に生成される圧縮データで置換するデータ置換手段とを有する。
【０００５】
好適には、前記データ置換手段は、前記基準値よりも長い連続一致長に対応する圧縮データで置換する。
【０００６】
好適には、前記データ抽出手段により抽出された圧縮データの中から、既定の下限数以上連続する圧縮データ列を選択するデータ列選択手段をさらに有し、前記データ置換手段は、前記データ列選択手段により選択された圧縮データ列の少なくとも一部を置換する。
【０００７】
好適には、前記データ抽出手段は、圧縮前のデータと予測データとが一致しない場合に相当する圧縮データを抽出し、前記データ列選択手段は、圧縮前のデータと予測データとが一致しない場合に相当する圧縮データの中から、前記下限数以上連続する圧縮データ列を選択する。
【０００８】
好適には、前記データ列選択手段により選択された圧縮データ列に対応するデータ値の変化度合いを判定する変化判定手段をさらに有し、前記データ置換手段は、前記変化判定手段による判定結果に応じて、前記圧縮データ列の少なくとも一部を置換する。
【０００９】
好適には、前記データ置換手段は、前記データ列選択手段により選択された圧縮データ列のうち、前記変化判定手段によりデータ値の変化範囲が既定の範囲内となる圧縮データ列を置換する。
【００１０】
好適には、前記圧縮データは、予測符号化方式で圧縮された画像データであり、前記データ抽出手段は、画像データに含まれる画素値と予測画素値とが連続して一致する連続一致長が既定の基準値以下である画素の圧縮画像データを抽出し、前記データ列選択手段は、前記データ抽出手段により抽出された圧縮画像データの中から、既定の下限数以上連続する画素群の圧縮画像データを選択し、前記データ置換手段は、連続する画素群の圧縮画像データの少なくとも一部を、予測画素値と圧縮前の画素値とが連続して一致する場合に生成される圧縮データで置換する。
【００１１】
［データ圧縮方法］
また、本発明にかかるデータ圧縮方法は、予測符号化方式で圧縮された圧縮データのうち、圧縮前のデータと予測データとが連続して一致する連続一致長が既定の基準値以下である圧縮データを抽出し、抽出された圧縮データの少なくとも一部を、予測データが圧縮前のデータと連続して一致した場合に生成される圧縮データで置換する。
【００１２】
［プログラム］
また、本発明にかかるプログラムは、予測符号化方式で圧縮された圧縮データのうち、圧縮前のデータと予測データとが連続して一致する連続一致長が既定の基準値以下である圧縮データを抽出するステップと、抽出された圧縮データの少なくとも一部を、予測データが圧縮前のデータと連続して一致した場合に生成される圧縮データで置換するステップとをコンピュータに実行させる。
【発明の効果】
【００１３】
本発明のデータ圧縮装置によれば、予測符号化方式で圧縮されたデータをさらに圧縮することができる。
【発明を実施するための最良の形態】
【００１４】
まず、本発明の理解を助けるために、その背景及び概略を説明する。
いわゆる量子化処理を含む符号化方式では、量子化間隔の大きさを変更することにより、符号量の制御を行うことができる。例えば、ＪＰＥＧ方式などでは、量子化間隔を２のべき乗で増加させることにより、圧縮率を制御することができる。
【００１５】
しかしながら、予測符号化方式では、明確な量子化処理が設けられていないため、上記のような符号量制御を行うことができない。
ここで、予測符号化方式とは、少なくとも１つの既出の画素値に基づいて注目画素値の予測値を算出し、注目画素値と予測値とが一致したことを示す一致情報を用いた表現に置き換える符号化方式を意味する。例えば、ランレングス符号化方式及びＬＺ符号化方式などが予測符号化方式に含まれ、ＪＰＥＧ−Ｓｐａｔｉａｌ方式のように予測誤差（注目画素値とその予測値との差分）のみを符号化する方式は、本例における予測符号化方式に含まれない。
【００１６】
そこで、本実施形態における画像処理装置２は、予測符号化方式で生成された圧縮データのうち、予測が外れた部分の圧縮データ（例えば、画素値そのもの、又は、予測誤差）を抽出し、抽出された圧縮データ（予測外れに相当するシンボル）の少なくとも一部を、予測が的中した場合に生成される圧縮データ（一致情報）で置換することにより、符号量制御を行う。ここで、圧縮データとは、例えば、予測符号化方式で生成される被符号化シンボル（例えば、一致情報、予測誤差又は画素値そのものなど）である。また、以下の説明において、予測符号化処理で予測が的中する場合（すなわち、元のデータと、このデータに対する予測データとが一致する場合）に生成されるシンボルをランとよび、ランには、予測が連続して的中する数（ラン数）などが含まれる。
【００１７】
例えば、画像処理装置２は、変換係数の量子化の代わりに、解像度の量子化によって予測符号化の符号量制御を行う。ここで、解像度の量子化とは、独立した画素群をひとつの画素であるかのようにまとめる処理を意味する。空間的に近い画素値（例えば、隣接する画素の画素値）を同一の画素値で塗りつぶすことによって、解像度の量子化が実現される。同一の画素値による塗りつぶしによって、実効の解像度は低下するが、データ量としては元の解像度を保持するので、一般にいう解像度変換にはあたらない。
なお、このとき塗りつぶす画素の範囲は固定でなくてもよい。例えば視覚への感度、つまり、物理量でいえば画素値の変化の度合いや、含まれる周波数成分などによって塗りつぶす領域を増減してよい。また、塗りつぶしに用いる画素値は、塗りつぶしを開始する画素の画素値でもよいし、塗りつぶす画素群の平均値でもよい。画素群の平均値を適用した場合には、塗りつぶし開始位置の画素値をそのまま適用する場合よりも、画質としては望ましいが、処理負荷が増加する。
【００１８】
予測符号化方式では、予測が的中した場合（すなわち、元のデータと予測データとが一致する場合）には、一致した旨を示す符号（ランの符号など）で表現するが、そのような表現は、一般に、予測が的中しない場合より短い符号が割り当てられる。これによって、予測符号化方式では、予測の的中率が高いほど圧縮率が向上するという性質を持つ。
解像度の量子化は、同一画素値の連続を発生するが、予測符号化方式では、このような同一画素値が連続する画像領域で予測が的中する予測式を有することが多い。例えば、ランレングス符号化方式及びＬＺ符号化方式では、処理対象となる注目データの直前に処理したデータをそのまま予測データとするため、同一の画素値が画像の走査方向に連続していると予測が的中する。
なお、予測式によっては、連続値が必ずしも的中するとは限らないが、この場合には、予測が的中しない画素のうちの一部を、予測が的中するように画素値を埋めるようにする。
【００１９】
次に、本実施形態における画像処理装置２のハードウェア構成を説明する。
図１は、本発明にかかるデータ圧縮方法が適応される画像処理装置２（データ圧縮装置）のハードウェア構成を、制御装置２１を中心に例示する図である。
図１に例示するように、画像処理装置２は、ＣＰＵ２１２及びメモリ２１４などを含む制御装置２１、通信装置２２、ＨＤＤ・ＣＤ装置などの記録装置２４、並びに、ＬＣＤ表示装置あるいはＣＲＴ表示装置およびキーボード・タッチパネルなどを含むユーザインターフェース装置（ＵＩ装置）２５から構成される。
画像処理装置２は、例えば、本発明にかかるデータ圧縮プログラム５（後述）がプリンタドライバの一部としてインストールされた汎用コンピュータであり、通信装置２２又は記録装置２４などを介して符号データを取得し、取得された符号データを再符号化してプリンタ装置３に送信する。
【００２０】
［データ圧縮プログラム］
図２は、制御装置２１（図１）により実行され、本発明にかかるデータ圧縮方法を実現する第１のデータ圧縮プログラム５の機能構成を例示する図である。
図２に例示するように、データ圧縮プログラム５は、エントロピー復号部５００、ショートラン抽出部５１０、データ列選択部５２０、データ列置換部５３０、及びエントロピー符号化部５４０を有する。
【００２１】
データ圧縮プログラム５において、エントロピー復号部５００は、既定の符号表を参照して、入力された予測符号化方式の符号データを被符号化シンボル（圧縮データ）に変換する。
本例ではランレングス符号化方式を適用する場合を具体例として説明するので、本例のエントロピー復号部５００は、入力された符号データを復号化して、被符号化シンボル（画素値及び一致情報）をショートラン抽出部５１０に出力する。以下、被符号化シンボルとして存在する画素値又は予測誤差をリテラルとよぶ。
なお、エントロピー復号部５００は、入力された符号データのうち、予測外れの画像領域に相当する符号（すなわち、リテラル）のみを復号化するようにしてもよい。
【００２２】
ショートラン抽出部５１０は、エントロピー復号部５００から入力された被符号化シンボル（圧縮データ）のうち、圧縮前のデータ（元のデータ）とその予測データとが連続して一致する連続一致長が既定の基準値以下である被符号化シンボルをショートランとして抽出し、連続一致長が既定の基準値よりも大きな被符号化シンボルをロングランとして抽出する。ショートランには、基準値以下の連続一致長を示すシンボルと、リテラルに相当するシンボルとが含まれる。ロングランには、基準値よりも長い連続一致長を示すシンボルが含まれる。
本例では基準値が１である場合を具体例として説明するため、本例のショートラン抽出部５１０は、エントロピー復号部５００から入力された被符号化シンボルのうち、リテラル（画素値）をショートランとして抽出して、抽出された画素値をデータ列選択部５２０に出力し、ランをロングランとして抽出し、抽出されたランを被符号化シンボルとしてエントロピー符号化部５４０に出力する。
【００２３】
データ列選択部５２０は、ショートラン抽出部５１０によりショートランとして抽出された被符号化シンボルの中から、既定数以上連続するシンボル群を選択し、選択されたシンボル群をデータ列置換部５３０に出力し、既定数以上連続しないシンボル群を被符号化シンボルとしてエントロピー符号化部５４０に出力する。すなわち、データ列選択部５２０は、ショートランに含まれるシンボルの中から、連続するシンボル群（圧縮データ列）を選択する。
本例のデータ列選択部５２０は、ショートラン抽出部５１０から入力されたリテラル（画素値）の中から、Ｌ個以上連続する画素群を置換候補として選択し、Ｌ個以上連続しない画素群を被符号化シンボルとしてエントロピー符号化部５４０に出力する。
また、本例のデータ列選択部５２０は、置換候補として選択された画素群（Ｌ個以上の画素）の中から、Ｗ個（ＷはＬ以下）の連続する画素群を置換対象として切り出し、切り出された置換対象の画素値をデータ列置換部５３０に出力する。なお、置換対象の画素群は、置換候補の画素群の中から、できるだけ多く切り出され、Ｗ個に満たない置換候補の画素群は、エントロピー符号化部５４０に被符号化シンボルとして出力される。
【００２４】
データ列置換部５３０は、データ列選択部５２０により選択されたシンボル群の少なくとも一部を、圧縮前のデータと予測データとが連続して一致した場合に生成されるシンボルで置換する。圧縮前のデータと予測データとが連続して一致した場合に生成されるシンボルとは、例えば、置換されるシンボル群の数に対応する長さのランである。
すなわち、データ列置換部５３０は、ショートランとして抽出されたシンボル群のうち、連続するシンボル群を、より長いランで置換する。
本例のデータ列置換部５３０は、データ列選択部５２０により置換対象として切り出された画素群（Ｗ個の連続する画素）を、この画素群の最初の画素の画素値で塗りつぶした場合のシンボル（すなわち、ラン数がＷで、画素値が最初の画素の画素値）で置換する。
なお、データ列置換部５３０は、置換対象として切り出された画素群を、この画素群の平均画素値又は中央値などのランで置換してもよい。
【００２５】
エントロピー符号化部５４０は、符号表を用いて、ショートラン抽出部５１０から入力される被符号化シンボル（ロングラン）、データ列選択部５２０から入力される被符号化シンボル（Ｌ個以上連続しないリテラル）、及び、データ列置換部５３０から入力される被符号化シンボル（置換されたラン）を統合し、統合された被符号化シンボルをエントロピー符号化する。
【００２６】
図３は、本例のデータ圧縮プログラム５によるデータ圧縮処理の概要を説明する図であり、図３（Ａ）は、全てリテラルで表現された画像データを例示し、図３（Ｂ）は、ランで置換された場合の画像データを例示する。
連続的に変化する画像データをランレングス符号化方式で符号化すると、符号化処理の過程で生成されるシンボルは、全ての画素で予測が外れるため、図３（Ａ）に例示するように、全てリテラル（画素値）となる。したがって、連続的に変化する画像データの符号量は大きくなる。
そこで、本データ圧縮プログラム５において、ショートラン抽出部５１０は、図３（Ａ）に例示するシンボル群の中からリテラルを抽出し、データ列選択部５２０は、抽出されたリテラル群の中から、連続するリテラル列を選択し、選択されたリテラル列からＷ画素ずつ置換対象のリテラル列を切り出し、データ列置換部５３０は、図３（Ｂ）に例示するように、切り出されたリテラル列をそれぞれのリテラル列の先頭画素の画素値のランで置換する。
【００２７】
図４は、データ圧縮プログラム５（図２）によるデータ圧縮処理（Ｓ１０）のフローチャートである。
図４に示すように、ステップ１００（Ｓ１００）において、エントロピー復号部１００（図２）は、入力された符号データ（ランレングス符号）をエントロピー復号化して、復号化されたシンボル（ラン及びリテラル）をショートラン抽出部５１０に出力する。
【００２８】
ステップ１０５（Ｓ１０５）において、データ圧縮プログラム５は、復号化されたシンボルの中から順に注目シンボルを設定する。
【００２９】
ステップ１１０（Ｓ１１０）において、ショートラン抽出部５１０は、注目シンボルがリテラルであるかランであるかを判断し、注目シンボルがリテラルである場合には、この注目シンボル（リテラル）をデータ列選択部５２０に出力する。
データ圧縮プログラム５は、注目シンボルがリテラルである場合に、Ｓ１１５の処理に移行し、注目シンボルがランである場合に、Ｓ１２５の処理に移行する。
【００３０】
ステップ１１５（Ｓ１１５）において、データ列選択部５２０は、ショートラン抽出部５１０からリテラルが入力されると、リテラルの連続数を１つカウントアップする。
なお、リテラルの連続数（リテラル連続数）のカウント値は、注目シンボルがランである場合（Ｓ１１０でＮｏ）に初期化される。
【００３１】
ステップ１２０（Ｓ１２０）において、データ列選択部５２０は、入力された注目シンボル（リテラル）を保留シンボルとして保持する。
【００３２】
ステップ１２５（Ｓ１２５）において、データ列選択部５２０は、リテラル連続数のカウント値が下限値Ｌ以上であるか否かを判断する。
データ圧縮プログラム５は、リテラル連続数のカウント値がＬ以上である場合（すなわち、リテラルがＬ個以上連続している場合）に、Ｓ１３０の処理に移行し、リテラル連続数のカウント値がＬ未満である場合（すなわち、リテラルがＬ個以上連続していない場合）に、Ｓ１４５の処理に移行して、保持されている保留シンボル及び注目シンボルの出力を行う。
【００３３】
ステップ１３０（Ｓ１３０）において、データ列選択部５２０は、保持されている保留シンボル（Ｌ個以上連続するシンボル群）の先頭から、Ｗ個の連続するリテラル（リテラル列）を切り出し、切り出されたリテラル列を置換対象としてデータ列置換部５３０に出力する。
なお、切り出されたリテラルは、保留シンボルから除かれる。
【００３４】
ステップ１３５（Ｓ１３５）において、データ列置換部５３０（図２）は、データ列選択部５２０から入力された置換対象のリテラル列を、ラン数Ｗのランで置換し、このランを被符号化シンボルとしてエントロピー符号化部５４０に出力する。
データ列置換部５３０により置換されるランには、置換対象のリテラル列の先頭画素の画素値と、ラン数Ｗとが含まれている。
【００３５】
ステップ１４０（Ｓ１４０）において、データ列選択部５２０は、残っている保留シンボルの数がＷ以上であるか否かを判断する。
データ圧縮プログラム５は、残っている保留シンボルの数がＷ以上である場合に、Ｓ１３０の処理に戻って、次のリテラル列を切り出し、残っている保留シンボルの数がＷ未満である場合に、Ｓ１４５の処理に移行する。
【００３６】
ステップ１４５（Ｓ１４５）において、データ列選択部５２０は、保持されている保留シンボル（Ｌ個以上又はＷ個以上連続しないリテラル）を被符号化シンボルとしてエントロピー符号化部５４０に出力する。
次に、ショートラン抽出部５１０は、注目シンボル（すなわち、ラン）を被符号化シンボルとしてエントロピー符号化部５４０に出力する。
【００３７】
ステップ１５０（Ｓ１５０）において、データ圧縮プログラム５は、復号化された全シンボルの処理が完了したか否かを判断し、未処理のシンボルが存在する場合に、Ｓ１０５の処理に戻って、次のシンボルを処理し、未処理のシンボルが存在しない場合に、Ｓ１５５の処理に移行する。
【００３８】
ステップ１５５（Ｓ１５５）において、エントロピー符号化部５４０は、ショートラン抽出部５１０、データ列選択部５２０及びデータ列置換部５３０から順に入力された被符号化シンボルをエントロピー符号化し記録装置２４又は通信装置２２に出力する。
【００３９】
このように、データ圧縮プログラム５は、ランレングス符号において、リテラル（画素値）が連続して存在する場合に、これらのリテラル列を、単一画素値のランで置換する。
これにより、被符号化シンボルの中には、リテラルが多数連続することがなくなり（本例では、リテラルがＷ個以上連続することがなくなる）、符号量が小さくなる。
また、ロングラン（本例では、ラン）は、そのまま被符号化シンボルとして出力されるため、もともと圧縮率の高い符号データを高速に処理することができる。
【００４０】
図５は、再圧縮前後の符号量を示すグラフである。なお、本図の符号量は、種々の画像（画像＃１〜＃８）をランレングス符号化方式で符号化した場合の値を示す。また、本図では、Ｌ＝３かつＷ＝３として再圧縮した場合の符号量が示されている。
図５に示すように、いずれの画像についても、本実施形態における再圧縮処理（図４のデータ圧縮処理）により符号量が減少している。
【００４１】
以上説明したように、本実施形態における画像処理装置２は、復号化されたシンボルのうち、リテラルの少なくとも一部をランで置換することにより、より圧縮率の高い符号データを生成することができる。
また、本画像処理装置２は、入力された符号データ全体を画像データに復号化することなく、より圧縮率の高い符号データに変換することができる。
【００４２】
［変形例］
次に、上記実施形態の変形例を説明する。
上記実施形態では、リテラルがＬ個以上連続する場合には、一律にランで置換していたが、これに限定されるものではなく、例えば、リテラル列におけるリテラルの変化度合いに応じて、置換するか否かを切り替えてもよい。
例えば、画素値が急激に変化している領域（すなわち、画素値の変化量が大きい領域）は、画像のエッジ部分に相当する可能性が高く、このような画像領域においてリテラル（画素値）をランで置換すると、エッジ部分で実行解像度が低下して画質劣化として顕在化する可能性がある。
そこで、本変形例における画像処理装置２は、リテラル列におけるリテラルの変化量が既定の範囲内である場合に、このリテラル列をランで置換し、リテラル列におけるリテラルの変化量が既定の範囲を超える場合に、このリテラル列の置換を禁止する。
また、本変形例の画像処理装置２は、リテラルだけでなく、ラン数が基準値Ｒ未満のランをショートランとして置換対象にする。
【００４３】
図６は、第２のデータ圧縮プログラム５２の機能構成を例示する図である。なお、本図に示された各構成のうち、図２に示された構成と実質的に同一のものには同一の符号が付されている。
図６に例示するように、第２のデータ圧縮プログラム５２は、図２に示された第１のデータ圧縮プログラム５に変化量判定部５５０を追加した構成をとる。
【００４４】
データ圧縮プログラム５２において、変化量判定部５５０は、データ列選択部５２０により選択されたシンボル群について、データの変化度合いを判定し、変化度合いの判定結果をデータ列置換部５３０に出力する。この場合に、データ列置換部５３０は、変化度合いの判定結果に応じて、データ列選択部５２０により選択されたシンボル群の少なくとも一部を、より長いランで置換する。
例えば、変化量判定部５５０は、データ列選択部５２０により選択された画素群について、画素値の変化量を判定し、画素群における画素値の変化量が既定の範囲内である場合に、この画素群をランで置換するようデータ列置換部５３０に指示し、画素群における画素値の変化量が既定の範囲外である場合に、この画素群の置換を禁止して、この画素群の画素値をそのまま符号化するようエントロピー符号化部５４０に出力する。
本例の変化量判定部５５０は、データ列選択部５２０により置換対象として切り出されたＷ個の画素群（走査方向に連続するＷ個の画素）について、画素値の変化量累積値（隣接画素間の画素値変化量（差分）を累積したもの）を算出し、算出された変化量累積値が既定の許容値Ｖ以下である場合に、この置換対象の画素群をデータ列置換部５３０に出力し、画素値の変化量累積値が許容値Ｖを超える場合に、データ列選択部５２０に対して、置換対象となる画素群の切出しをやり直すよう指示する。この場合に、データ列選択部５２０は、変化量判定部５５０からの指示に応じて、画素群の切出し位置を変更して、再度画素群を切り出し、切り出された画素群を置換対象として変化量判定部５５０に出力する。
【００４５】
なお、本例の変化量判定部５５０は、データの変化度合いとして、画素群における画素値の変化量累積値を算出しているが、画素群における画素値の変化範囲（最大画素値と最小画素値との差分）、又は、周波数変換で得られる高域成分の量を変化度合いとして算出してもよい。
また、変化量判定部５５０は、データ列置換部５３０により置換された場合の画素群と、置換されない場合の画素群（置換される前の画素群）とのＳＮＲ（Signal to Noise Ratio）を算出し、算出されるＳＮＲに応じて、データ列置換部５３０による置換の可否を判断してもよい。
【００４６】
図７は、データ圧縮プログラム５２（図６）によるデータ圧縮処理（Ｓ２０）のフローチャートである。なお、本図に示された各処理のうち、図４に示された処理と実質的に同一のものには同一の符号が付されている。
図７に示すように、Ｓ１００において、エントロピー復号部１００（図６）は、入力された符号データ（ランレングス符号）をエントロピー復号化して、復号化されたシンボル（ラン及びリテラル）をショートラン抽出部５１０に出力する。
Ｓ１０５において、データ圧縮プログラム５２は、復号化されたシンボルの中から順に注目シンボルを設定する。
【００４７】
ステップ２００（Ｓ２００）において、ショートラン抽出部５１０（図６）は、注目シンボルが基準値Ｒよりも長いラン（すなわち、ロングラン）であるか基準値Ｒ以下のラン（すなわち、ショートラン）であるかを判断し、注目シンボルがショートランである場合には、この注目シンボル（連続長がＲ以下のラン、又は、リテラル）をデータ列選択部５２０に出力する。
データ圧縮プログラム５２は、注目シンボルがショートランである場合に、Ｓ２０５の処理に移行し、注目シンボルがロングランである場合に、Ｓ１２５の処理に移行する。
【００４８】
ステップ２０５（Ｓ２０５）において、データ列選択部５２０（図６）は、ショートラン抽出部５１０から注目シンボル（リテラル、又は、連続長がＲ以下のラン）が入力されると、リテラルの連続数をカウントアップする。より具体的には、データ列選択部５２０（図６）は、ショートラン抽出部５１０から入力された注目シンボルがリテラルである場合に、リテラル連続数のカウント値を１つ増加させ、ショートラン抽出部５１０から入力された注目シンボルがラン（連続長Ｒ以下）である場合に、ラン数だけ、リテラル連続数のカウント値を増加させる。
【００４９】
ステップ２１０（Ｓ２１０）において、データ列選択部５２０は、入力された注目シンボル（ショートラン）を保留シンボルとして保持する。より具体的には、データ列選択部５２０は、入力された注目シンボルがリテラルである場合に、入力されたリテラルを保留シンボルとして保持し、入力された注目シンボルがラン（連続長Ｒ以下）である場合に、ランを展開して複数のリテラルを生成し、生成された複数のリテラルを保留シンボルとして保持する。ランの展開は、ランに含まれる画素値をラン数だけ複製することによりなされる。
【００５０】
Ｓ１２５において、データ列選択部５２０は、リテラル連続数のカウント値が下限値Ｌ以上であるか否かを判断する。
データ圧縮プログラム５２は、リテラル連続数のカウント値がＬ以上である場合に、Ｓ１３０の処理に移行し、リテラル連続数のカウント値がＬ未満である場合に、Ｓ１４５の処理に移行して、保持されている保留シンボル及び注目シンボルの出力を行う。
【００５１】
Ｓ１３０において、データ列選択部５２０は、保持されている保留シンボル（Ｌ個以上連続するシンボル群）の先頭から、Ｗ個の連続するリテラル（リテラル列）を切り出し、切り出されたリテラル列を置換対象として変化量判定部５５０に出力する。
なお、切り出されたリテラルは、保留シンボルから除かれる。
【００５２】
ステップ２１５（Ｓ２１５）において、変化量判定部５５０（図６）は、データ列選択部５２０から入力された置換対象のリテラル列について、画素値の変化量累積値（隣接画素間の画素値変化量（差分）を累積したもの）を算出し、算出された変化量累積値が既定の許容値Ｖ以下である場合に、この置換対象の画素群をデータ列置換部５３０に出力する。
データ圧縮プログラム５２は、算出された変化量累積値が許容値Ｖ以下である場合に、Ｓ１３５の処理に移行し、算出された変化量累積値が許容値Ｖを超える場合に、Ｓ２２０の処理に移行する。
【００５３】
ステップ２２０（Ｓ２２０）において、変化量判定部５５０は、置換対象としてデータ列選択部５２０から入力された画素群のうち、先頭にある画素の画素値をエッジ領域の画素の画素値であると判定し、この画素の画素値を被符号化シンボルとしてエントロピー符号化部５４０に出力し、この画素（置換対象の先頭画素）を保留シンボルから除くようデータ列選択部５２０に指示する。
すなわち、変化量判定部５５０は、置換対象において変化量累積値が許容値Ｖを超える場合に、保留シンボルの先頭の画素を除いて、置換対象となる画素群を再度切り出すようデータ列選択部５２０に指示する。
【００５４】
Ｓ１３５において、データ列置換部５３０（図６）は、データ列選択部５２０から入力された置換対象のリテラル列を、ラン数Ｗのランで置換し、このランを被符号化シンボルとしてエントロピー符号化部５４０に出力する。
【００５５】
Ｓ１４０において、データ列選択部５２０は、残っている保留シンボルの数がＷ以上であるか否かを判断する。
データ圧縮プログラム５２は、残っている保留シンボルの数がＷ以上である場合に、Ｓ１３０の処理に戻って、次のリテラル列を切り出し、残っている保留シンボルの数がＷ未満である場合に、Ｓ１４５の処理に移行する。
【００５６】
Ｓ１４５において、データ列選択部５２０は、保持されている保留シンボルを被符号化シンボルとしてエントロピー符号化部５４０に出力する。
次に、ショートラン抽出部５１０は、注目シンボル（すなわち、ロングラン）を被符号化シンボルとしてエントロピー符号化部５４０に出力する。
【００５７】
Ｓ１５０において、データ圧縮プログラム５２は、復号化された全シンボルの処理が完了したか否かを判断し、未処理のシンボルが存在する場合に、Ｓ１０５の処理に戻って、次のシンボルを処理し、未処理のシンボルが存在しない場合に、Ｓ１５５の処理に移行する。
【００５８】
Ｓ１５５において、エントロピー符号化部５４０は、ショートラン抽出部５１０、データ列選択部５２０、変化量判定部５５０及びデータ列置換部５３０から順に入力された被符号化シンボルをエントロピー符号化し記録装置２４又は通信装置２２に出力する。
【００５９】
このように、本変形例のデータ圧縮プログラム５２は、置換対象として切り出された画素群（連続するＷ個の画素）における画素値の変化量を判定し、判定された変化量に応じて、この置換対象の画素値をラン（ラン数Ｗのラン）で置換するか否か切り替えている。すなわち、データ圧縮プログラム５２は、図８（Ａ）に例示するように、画素値の変化量が小さい画素群（許容範囲内の画素群）をランで置換することにより、図８（Ｂ）に例示するように、この画素群を単一の画素値で塗りつぶし、画素値の変化量が大きい画素群（許容範囲外の画素群）については置換の対象外とすることにより、図８（Ｂ）に例示するように、画素群に含まれる各画素をリテラルとしてそのまま符号化する。
これにより、画素値が大きく変化している画像領域については、ランでの置換により画素値が変化することが防止されるため、エッジ領域などの画質劣化が抑制される。
また、本変形例のデータ圧縮プログラム５２は、ラン数がＲ以下のランも置換の対象とすることにより、より圧縮率を改善できる。
【００６０】
［その他の変形例］
上記実施形態ではランレングス符号化方式に適用する形態を説明したが、他の予測符号化方式でも適用可能である。
そこで、一例としてＬＺ７７方式に適用する場合を以下説明する。
ＬＺ７７方式では、注目画素値列を、既出の画素値列へのオフセット（距離）と連続長（連続一致長）とからなるシンボルで置換する。このような既出画素値列への参照範囲は限定されており、この参照範囲はウィンドウと呼ばれる。また、シンボルで置換できない場合や連続長が短く不効率な場合には、ランレングス符号化方式と同様に、リテラル（画素値）そのものをシンボルとする。リテラルが少なく連続長の長いシンボルが多いほど圧縮率が高いという性質は、ランレングス符号化と同様である。
ランレングス符号化方式に適用する場合は、リテラルあるいはショートランを対象に、ランの結合を図ったが、ＬＺ７７方式に適用する場合にも基本的な構成は同様であり、リテラルあるいは短い連続長からなるシンボル列をより長い連続長のシンボルに置換する。
ＬＺ７７方式とランレングス符号化方式との大きな違いは、ランレングス符号化方式では直左画素値の連続だけが候補なのに対し、ＬＺ７７方式では参照ウィンドウに含まれる画素値列の全てが候補となる点である。
【００６１】
しかしながら、リテラルまたは短い連続長をより長い連続長で置換することが目的なので、全ての候補（参照ウインドウ内の全画素値列）に選択の可能性を残す必要はなく、例えば、上記実施形態（ランレングス符号化方式に適用する場合）と同様に、直左画素値での塗りつぶしによる置換だけを候補としてよい。そのような画素値の連続列、つまりランレングス符号化方式におけるランは、ＬＺ７７方式では、オフセットが−1のシンボル（１つ前の画素と注目画素とが一致することを示すシンボル）として表現できる。
【００６２】
なお、ＬＺ７７方式では、シンボルを拡大する処理でもよい。
例えば、オフセットＸ及び連続長Ｙのシンボルを（Ｘ，Ｙ）と表記し、リテラルを画素値Ｚを使って（Ｚ，０）と書くことにする。この場合に、データ列置換部５３０は、連続するシンボル列（３２，２)、（１００，０）、（２０，１）を、シンボル（３２，４）で置換することにより、圧縮率を向上させることができる。
このように、画像処理装置２は、ＬＺ７７方式が適用される場合にも、上記実施形態と同様に、シンボル群の中から、連続長Ｙの短いシンボル群を抽出し、抽出されたシンボル群の中から、連続する複数のシンボルをシンボル列として選択し、選択されたシンボル列を、より連続長の長いシンボルで置換することにより、符号量制御を行うことができる。
【図面の簡単な説明】
【００６３】
【図１】本発明にかかるデータ圧縮方法が適応される画像処理装置２（データ圧縮装置）のハードウェア構成を、制御装置２１を中心に例示する図である。
【図２】制御装置２１（図１）により実行され、本発明にかかるデータ圧縮方法を実現する第１のデータ圧縮プログラム５の機能構成を例示する図である。
【図３】本例のデータ圧縮プログラム５によるデータ圧縮処理の概要を説明する図であり、（Ａ）は、全てリテラルで表現された画像データを例示し、（Ｂ）は、ランで置換された場合の画像データを例示する。
【図４】データ圧縮プログラム５（図２）によるデータ圧縮処理（Ｓ１０）のフローチャートである。
【図５】再圧縮前後の符号量を示すグラフである。
【図６】第２のデータ圧縮プログラム５２の機能構成を例示する図である。
【図７】データ圧縮プログラム５２（図６）によるデータ圧縮処理（Ｓ２０）のフローチャートである。
【図８】画素値の変化量に応じたリテラルの置換処理を説明する図である。
【符号の説明】
【００６４】
２・・・画像処理装置
５，５２・・・データ圧縮プログラム
５００・・・エントロピー復号部
５１０・・・ショートラン抽出部
５２０・・・データ列選択部
５３０・・・データ列置換部
５４０・・・エントロピー符号化部
５５０・・・変化量判定部
【図１】
2007104271.tif 000003
【図２】
2007104271.tif 000004
【図３】
2007104271.tif 000005
【図４】
2007104271.tif 000006
【図５】
2007104271.tif 000007
【図６】
2007104271.tif 000008
【図７】
2007104271.tif 000009
【図８】
2007104271.tif 000010