(57)【特許請求の範囲】
【請求項１】
一連のデータをハフマン符号に符号化するハフマン符号化装置であって、
ＤＣＴ係数を予め定められた量子化係数を用いて量子化し、量子化されたＤＣＴ係数に整数化処理を行わず一連のデータを出力する量子化手段と、
一連のデータの各々が所定範囲内にあるか否かを判定する判定手段と、
前記一連のデータのうち前記所定範囲内にあるデータを無効係数とするとともに前記所定範囲内にないデータを整数化処理して有効係数とし、連続する無効係数の数と有効係数との組み合わせを用いて符号化を行う符号化手段とを備えたことを特徴とするハフマン符号化装置。
【請求項２】
一連のデータをハフマン符号に符号化するハフマン符号化方法であって、
ＤＣＴ係数を予め定められた量子化係数を用いて量子化し、量子化されたＤＣＴ係数に整数化処理を行わず一連のデータを出力し、一連のデータの各々が所定範囲内にあるか否かを判定し、前記一連のデータのうち前記所定範囲内にあるデータを無効係数とするとともに前記所定範囲内にないデータを整数化処理して有効係数とし、連続する無効係数の数と有効係数との組み合わせを用いて符号化を行うことを特徴とするハフマン符号化方法。
【請求項３】
演算処理装置が読み込み可能なハフマン符号化処理プログラムを記録した記録媒体であって、
前記ハフマン符号化処理プログラムは、
ＤＣＴ係数を予め定められた量子化係数を用いて量子化し、量子化されたＤＣＴ係数に整数化処理を行わず一連のデータを出力する処理と、
一連のデータの各々が所定範囲内にあるか否かを判定する処理と、
前記一連のデータのうち前記所定範囲内にあるデータを無効係数とするとともに前記所定範囲内にないデータを整数化処理して有効係数とし、連続する無効係数の数と有効係数との組み合わせを用いて符号化を行う処理とを、前記演算処理装置に実行させることを特徴とするハフマン符号化処理プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、離散コサイン変換されたデータをハフマン符号に符号化するハフマン符号化装置、ハフマン符号化方法およびハフマン符号化処理プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
画像データは非常に多くの情報量を含んでいる。そのため、画像データをそのままの形で処理するのは、メモリ容量および通信速度の点で実用的ではない。そこで、画像データ圧縮技術が重要となる。
【０００３】
画像データ圧縮の国際標準の一つとしてＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）がある。ＪＰＥＧでは、非可逆符号化を行うＤＣＴ（離散コサイン変換）方式と、二次元空間でＤＰＣＭ（Ｄｉｆｆｅｒｅｎｔｉａｌ  ＰＣＭ）  を行う可逆符号化方式が採用されている。以下、ＤＣＴ方式の画像データ圧縮を説明する。
【０００４】
図７はＤＣＴ方式の画像データ圧縮を実行するハフマン符号化装置のブロック図である。
【０００５】
ＤＣＴ変換器１００は、入力される原画像データを離散コサイン変換（以下、ＤＣＴ変換と呼ぶ）し、ＤＣＴ係数を出力する。このＤＣＴ変換では、まず、図８に示すように、画像データを複数の８×８画素ブロックに分割する。図９に示すように、１つの８×８画素ブロック内には、６４個の画素データＰＸＹ（Ｘ，Ｙ＝０，…，７）が含まれる。分割された８×８画素ブロックに対して二次元ＤＣＴ変換を行うと、６４個のＤＣＴ係数ＳＵＶ（Ｕ，Ｖ＝０，…，７）が得られる。
【０００６】
ＤＣＴ係数Ｓ００はＤＣ係数と呼ばれ、残りの６３個のＤＣＴ係数はＡＣ係数と呼ばれる。図９に示すように、ＤＣＴ変換されたブロックの左から右に進むにつれて高周波の水平周波数成分を多く含み、上から下へ進むにつれて高周波の垂直周波数成分を多く含むことになる。
【０００７】
図７の量子化器１１０は、ＤＣＴ変換器１００から出力されたＤＣＴ係数を８×８個の量子化係数ＱＵＶ（Ｕ，Ｖ＝０，…，７）からなる量子化テーブルを用いて次式により量子化し、量子化されたＤＣＴ係数γＵＶ（Ｕ，Ｖ＝０，…，７）を出力する。
【０００８】
γＵＶ＝ｒｏｕｎｄ（ＳＵＶ／ＱＵＶ）  …（１）
ここで、ｒｏｕｎｄは最も近い整数への整数化処理を示す。この量子化により画質および符号化情報量が制御される。図１０に量子化器１１０から出力されるＤＣＴ係数の一例を示す。図１０において“Ａ”，“Ｂ”，“Ｃ”，“Ｄ”，“Ｅ”，“Ｆ”は“０”以外の値を表している。
【０００９】
図７のハフマン符号化部１２０は、量子化器１１０から出力されたＤＣＴ係数γＵＶをハフマン符号に符号化し、符号化データを出力する。ＤＣ係数の符号化では、１つ前のブロックのＤＣ係数と現在のブロックのＤＣ係数との差分値を求め、その差分値を符号化する。この場合、ＤＣ係数の差分値がグループ分けされ、各差分値にグループ番号ＳＳＳＳが割り当てられ、各グループ番号ＳＳＳＳに対してハフマン符号が割り当てられる。
【００１０】
ＡＣ係数の符号化では、図１１に示すように、ＡＣ係数が、まず、ジグザグスキャンによって一次元に配列される。この一次元に配列されたＡＣ係数は、連続する“０”の係数（無効係数）の数を示すラン長ＮＮＮＮと“０”以外の係数（有効係数）の値とを用いて符号化される。この場合、有効係数はグループ分けされ、各有効係数にグループ番号ＳＳＳＳが割り当てられる。ＡＣ係数の符号化では、ラン長ＮＮＮＮとグループ番号ＳＳＳＳとの組み合わせに対してハフマン符号が割り当てられる。
【００１１】
図１２にＤＣ係数のためのハフマン符号テーブルの一例を示す。例えば、グループ番号ＳＳＳＳが“０”であるＤＣ係数の差分値には符号長が２のハフマン符号“００”が割り当てられ、グループ番号ＳＳＳＳが“１”であるＤＣ係数の差分値には符号長が３のハフマン符号“０１０”が割り当てられ、グループ番号ＳＳＳＳが“２”であるＤＣ係数の差分値には符号長が３のハフマン符号“０１０”が割り当てられている。
【００１２】
なお、図１２のハフマン符号テーブルにおいて、グループ番号ＳＳＳＳはＤＣ係数の差分値が属するグループを限定するだけである。１つのグループに属するＤＣ係数のうちの１つを特定するために付加ビットが用いられる。
【００１３】
図１３にＡＣ係数のためのハフマン符号テーブルの一例を示す。例えば、ラン長とグループ番号との組み合わせＮＮＮＮ／ＳＳＳＳが“０／０”であるＡＣ係数には符号長が４のハフマン符号“１０１０”が割り当てられ、ＮＮＮＮ／ＳＳＳＳが“０／１”であるＡＣ係数には符号長が２のハフマン符号“００”が割り当てられ、ＮＮＮＮ／ＳＳＳＳが“０／２”であるＡＣ係数には符号長が２のハフマン符号“０１”が割り当てられている。
【００１４】
なお、図１３のハフマン符号テーブルにおいて、グループ番号ＳＳＳＳは有効係数が属するグループを限定するだけである。１つのグループに属する有効係数のうちの１つを特定するために付加ビットが用いられる。
【００１５】
【発明が解決しようとする課題】
図１４は図７に示した従来のハフマン符号化装置におけるハフマン符号化処理の一例を示す模式図である。
【００１６】
図１４に示すように、ＤＣＴ係数ＳＵＶに上式（１）により量子化を行い、量子化されたＤＣＴ係数γＵＶを得る。図１４の例では、ＤＣＴ係数Ｓ００が“２６０”であり、量子化係数Ｑ００が“１６”である場合に、量子化されたＤＣＴ係数γ００は“１６”となる。同様にして、γ０１＝４、γ０２＝−２、γ１０＝−７、γ１１＝３、γ２１＝−１、γ３０＝−１となり、他の量子化されたＤＣＴ係数γＵＶは０となる。
【００１７】
量子化されたＤＣＴ係数γＵＶをジグザグスキャンにより一次元に配列し、連続する“０”の係数の数を示すラン長および有効係数を求める。最初の有効係数（ＤＣ係数）は“１６”となる。以降、ラン長と有効係数との組み合わせは、“０／４”、“０／−７”、“１／３”、“０／−２”、“２／−１”、“０／−１”となり、最後のラン長は“５４”となる。
【００１８】
上記の従来のハフマン符号化装置において、データの圧縮率を変更する場合には、量子化テーブルに含まれる８×８個の量子化係数ＱＵＶを変える必要がある。そのため、データの圧縮率を制御するための処理が煩雑となる。
【００１９】
本発明の目的は、データの圧縮率を容易に変更することが可能なハフマン符号化装置、ハフマン符号化方法およびハフマン符号化処理プログラムを記録した記録媒体を提供することである。
【００２０】
【課題を解決するための手段および発明の効果】
（１）第１の発明
第１の発明に係るハフマン符号化装置は、一連のデータをハフマン符号に符号化するハフマン符号化装置であって、ＤＣＴ係数を予め定められた量子化係数を用いて量子化し、量子化されたＤＣＴ係数に整数化処理を行わず一連のデータを出力する量子化手段と、一連のデータの各々が所定範囲内にあるか否かを判定する判定手段と、一連のデータのうち所定範囲内にあるデータを無効係数とするとともに所定範囲内にないデータを整数化処理して有効係数とし、連続する無効係数の数と有効係数との組み合わせを用いて符号化を行う符号化手段とを備えたものである。
【００２１】
本発明に係るハフマン符号化装置においては、ＤＣＴ係数が予め定められた量子化係数を用いて量子化され、量子化されたＤＣＴ係数に整数化処理が行われず一連のデータが量子化手段により出力される。判定手段により一連のデータの各々が所定範囲内にあるか否かが判定される。そして、符号化手段において、一連のデータのうち所定範囲内にあるデータが無効係数とされ、所定範囲内にないデータが整数化処理されて有効係数とされ、連続する無効係数の数と有効係数との組み合わせを用いて符号化が行われる。
【００２２】
この場合、判定手段における所定範囲を任意に変更することにより無効係数の数を任意に調整することができる。したがって、データの圧縮率を容易に変更することが可能となる。
【００２４】
また、判定手段における所定範囲を任意に変更することにより無効係数の数を任意に調整することができるので、量子化手段において量子化係数を変えることなくデータの圧縮率を容易に変更することができる。
【００２５】
（２）第２の発明
第２の発明に係るハフマン符号化方法は、ＤＣＴ係数を予め定められた量子化係数を用いて量子化し、量子化されたＤＣＴ係数に整数化処理を行わず一連のデータを出力し、一連のデータをハフマン符号に符号化するハフマン符号化方法であって、一連のデータの各々が所定範囲内にあるか否かを判定し、一連のデータのうち所定範囲内にあるデータを無効係数とするとともに所定範囲内にないデータを整数化処理して有効係数とし、連続する無効係数の数と有効係数との組み合わせを用いて符号化を行うものである。
【００２６】
本発明に係るハフマン符号化方法においては、ＤＣＴ係数が予め定められた量子化係数を用いて量子化され、量子化されたＤＣＴ係数に整数化処理が行われず一連のデータが出力される。一連のデータの各々が所定範囲内にあるか否かが判定され、一連のデータのうち所定範囲内にあるデータが無効係数とされ、所定範囲内にないデータが整数化処理されて有効係数とされる。そして、連続する無効係数の数と有効係数との組み合わせを用いて符号化が行われる。
【００２７】
この場合、所定範囲を任意に変更することにより無効係数の数を任意に調整することができる。したがって、データの圧縮率を容易に変更することが可能となる。
【００２９】
また、所定範囲を任意に変更することにより無効係数の数を任意に調整することができるので、量子化係数を変えることなくデータの圧縮率を容易に変更することが可能となる。
【００３０】
（３）第３の発明
第３の発明に係るハフマン符号化処理プログラムを記録した記録媒体は、演算処理装置が読み込み可能なハフマン符号化処理プログラムを記録した記録媒体であって、ＤＣＴ係数を予め定められた量子化係数を用いて量子化し、量子化されたＤＣＴ係数に整数化処理を行わず一連のデータを出力する処理と、ハフマン符号化処理プログラムは、一連のデータの各々が所定範囲内にあるか否かを判定する処理と、一連のデータのうち所定範囲内にあるデータを無効係数とするとともに所定範囲内にないデータを整数化処理して有効係数とし、連続する無効係数の数と有効係数との組み合わせを用いて符号化を行う処理とを、演算処理装置に実行させるものである。
【００３１】
本発明に係るハフマン符号化処理プログラムによれば、ＤＣＴ係数が予め定められた量子化係数を用いて量子化され、量子化されたＤＣＴ係数に整数化処理が行われず一連のデータが出力される。一連のデータの各々が所定範囲内にあるか否かが判定され、一連のデータのうち所定範囲内にあるデータが無効係数とされ、所定範囲内にないデータが整数化処理されて有効係数とされる。そして、連続する無効係数の数と有効係数との組み合わせを用いて符号化が行われる。
【００３２】
この場合、所定範囲を任意に変更することにより無効係数の数を任意に調整することができる。したがって、データの圧縮率を容易に変更することが可能となる。
【００３４】
また、所定範囲を任意に変更することにより無効係数の数を任意に調整することができるので、量子化係数を変えることなくデータの圧縮率を容易に変更することができる。
【００３５】
【発明の実施の形態】
図１は本発明の一実施例におけるハフマン符号化装置の構成を示すブロック図である。
【００３６】
図１において、ハフマン符号化装置１は、ＤＣＴ変換器１０、量子化器２０、比較器３０、ラン長カウンタ４０および符号化器５０を含む。比較器３０、ラン長カウンタ４０および符号化器５０がハフマン符号化部６０を構成する。
【００３７】
ＤＣＴ変換器１０は、入力される原画像データを離散コサイン変換（以下、ＤＣＴ変換と呼ぶ）し、ＤＣＴ係数を出力する。このＤＣＴ変換では、まず、図８に示したように画像データを複数の８×８画素ブロックに分割する。図９に示したように、１つの８×８画素ブロック内には、６４個の画素データＰＸＹ（Ｘ，Ｙ＝０，…，７）が含まれる。分割された８×８画素ブロックに対して二次元ＤＣＴ変換を行うと、６４個のＤＣＴ係数ＳＵＶ（Ｕ，Ｖ＝０，…，７）が得られる。上述したように、ＤＣＴ係数Ｓ００はＤＣ係数と呼ばれ、残りの６３個のＤＣＴ係数はＡＣ係数と呼ばれる。
【００３８】
量子化器２０は、ＤＣＴ変換器１０から出力されたＤＣＴ係数ＳＵＶを８×８個の量子化係数ＱＵＶ（Ｕ，Ｖ＝０，…，７）からなる量子化テーブルを用いて次式により量子化し、量子化されたＤＣＴ係数γＵＶ（Ｕ，Ｖ＝０，…，７）を出力する。
【００３９】
γＵＶ＝ＳＵＶ／ＱＵＶ  …（２）
本実施例の量子化では、ＳＵＶ／ＱＵＶの計算結果に整数化処理を行っていない。したがって、量子化されたＤＣＴ係数γＵＶは小数点以下の値を有する。
【００４０】
比較器３０には、調整可能なしきい値ＴＨが設定されている。比較器３０は、量子化器２０から出力されるＤＣＴ係数γＵＶが次式を満足するか否かを判定する。
【００４１】
｜γＵＶ｜≦ＴＨ  …（３）
この比較器３０は、量子化されたＤＣＴ係数γＵＶが上式（３）を満足する場合には、その量子化されたＤＣＴ係数γＵＶを無効係数とみなす。この場合、比較器３０は、無効係数の検出を示す検出信号ＣＴを出力する。また、比較器３０は、量子化されたＤＣＴ係数γＵＶが上式（３）を満足しない場合には、その量子化されたＤＣＴ係数γＵＶを有効係数とみなす。この場合、比較器３０は、量子化されたＤＣＴ係数γＵＶを最も近い整数へ整数化し、整数化されたＤＣＴ係数を有効係数ＶＣとして出力するとともに、リセット信号ＲＳを出力する。また、比較器３０は、１ブロック分の８×８個の量子化されたＤＣＴ係数γＵＶの処理が終了したときにもリセット信号ＲＳを出力する。
【００４２】
ラン長カウンタ４０は、比較器３０から出力される検出信号ＣＴをカウントし、カウント結果をラン長ＲＬとして出力する。また、ラン長カウンタ４０は、比較器３０から出力されるリセット信号ＲＳに応答してカウント結果を０にリセットする。ラン長ＲＬは、連続する無効係数の数、すなわち上式（３）を満足する連続するＤＣＴ係数γＵＶの数を表わしている。
【００４３】
符号化器５０は、比較器３０から出力される有効係数ＶＣおよびラン長カウンタ４０から出力されるラン長ＲＬに基づいてハフマン符号化を行い、符号化データを出力する。
【００４４】
ＤＣ係数の符号化では、１つ前のブロックのＤＣ係数と現在のブロックのＤＣ係数との差分値を求め、その差分値を符号化する。この場合、ＤＣ係数の差分値はグループ分けされ、各差分値にグループ番号ＳＳＳＳが割り当てられ、各グループ番号ＳＳＳＳに対してハフマン符号が割り当てられる。
【００４５】
ＡＣ係数の符号化では、図１１に示したように、ＡＣ係数が、まず、ジグザグスキャンによって一次元に配列される。この一次元に配列されたＡＣ係数は、連続する無効係数の数を示すラン長ＲＬと有効係数ＶＣとを用いて符号化される。この場合、有効係数ＶＣはグループ分けされ、各有効係数ＶＣにグループ番号ＳＳＳＳが割り当てられる。ＡＣ係数の符号化では、ラン長ＲＬとグループ番号ＳＳＳＳとの組み合わせに対してハフマン符号が割り当てられる。
【００４６】
図２に図１のハフマン符号化装置１において用いられるＡＣ係数のためのハフマン符号テーブルの一例を示す。例えば、ラン長とグループとの組み合わせＲＬ／ＳＳＳＳが“０／０”であるＡＣ係数には符号長が４のハフマン符号“１０１０”が割り当てられ、ＲＬ／ＳＳＳＳが“０／１”であるＡＣ係数には符号長が２のハフマン符号“００”が割り当てられ、ＲＬ／ＳＳＳＳが“０／２”であるＡＣ係数には符号長が２のハフマン符号“０１”が割り当てられている。
【００４７】
なお、図２のハフマン符号テーブルにおいて、グループ番号ＳＳＳＳは有効係数が属するグループを限定するだけである。１つのグループに属する有効係数のうちの１つを特定するために付加ビットが用いられる。
【００４８】
実際の符号化処理では、１つのブロック内の最後の量子化されたＤＣＴ係数γ７７が無効係数の場合には、最後の有効係数の直後にＥＯＢ（Ｅｎｄ  ｏｆ  Ｂｌｏｃｋ）を付け、ブロックの符号化を終了する。１つのブロック内の最後の量子化されたＤＣＴ係数γ７７が有効係数の場合にはＥＯＢを付けない。また、１つのブロック内の連続する無効係数の数が１５を超える場合には、連続する１６個の無効係数のラン長ＲＬを表わすＺＲＬを残りのラン長ＲＬが１５以下になるまで繰り返して付与する。
【００４９】
本実施例では、比較器３０が判定手段に相当し、ラン長カウンタ４０および符号化器５０が符号化手段を構成する。また、量子化器２０が量子化手段に相当する。
【００５０】
図１のハフマン符号化装置におけるＤＣＴ変換器１０、量子化器２０およびハフマン符号化部６０は、集積回路等のハードウェアにより実現することができ、あるいはコンピュータ等のハードウェアおよびソフトウェアにより実現することもできる。
【００５１】
次に、図１のハフマン符号化装置１をハードウェアおよびソフトウェアにより実現した例を示す。図３は図１のハフマン符号化装置１のハードウェア構成を示すブロック図である。
【００５２】
ハフマン符号化装置１は、ＣＰＵ（中央演算処理装置）１１、ＲＡＭ（ランダムアクセスメモリ）１２、ＲＯＭ（リードオンリメモリ）１３および外部記憶装置１４により構成される。外部記憶装置１４は、ハードディスクドライブ、フロッピィディスクドライブ、ＣＤ−ＲＯＭドライブ等の記録媒体駆動装置１５、およびハードディスク、フロッピィディスク、ＣＤ−ＲＯＭ等の記録媒体１６からなる。
【００５３】
ＲＯＭ１３には、システムプログラムが格納されている。また、記録媒体１６にはハフマン符号化処理プログラムが記録されている。ＣＰＵ１１は、ＲＯＭ１３に格納されたシステムプログラムに従って動作し、記録媒体１６に記録されたハフマン符号化処理プログラムを記録媒体駆動装置１５を介して読み込み、そのハフマン符号化処理プログラムをＲＡＭ１２上で実行する。
【００５４】
それにより、図１のＤＣＴ変換器１０によるＤＣＴ変換処理、量子化器２０による量子化処理およびハフマン符号化部６０による符号化処理が実現される。この符号化処理には、ラン長ＲＬおよび有効係数ＶＣの出力処理が含まれる。
【００５５】
図４は図３の記録媒体１６に記録されたハフマン符号化処理プログラムにおけるラン長ＲＬおよび有効係数ＶＣの出力処理を示すフローチャートである。
【００５６】
まず、ラン長ＲＬを０に設定する（ステップＳ１）。次に、量子化器２０により量子化されたＤＣＴ係数γＵＶを入力する（ステップＳ２）。そして、量子化されたＤＣＴ係数γＵＶの絶対値がしきい値ＴＨ以下であるか否かであるかを判別する（ステップＳ３）。
【００５７】
量子化されたＤＣＴ係数γＵＶの絶対値がしきい値ＴＨ以下の場合には、その量子化されたＤＣＴ係数γＵＶを無効係数とみなし、ラン長ＲＬに１を加算し（ステップＳ４）、ステップＳ２に戻る。
【００５８】
ステップＳ３において、量子化されたＤＣＴ係数γＵＶの絶対値がしきい値ＴＨよりも大きい場合には、その量子化されたＤＣＴ係数γＵＶを整数化して有効係数ＶＣとして出力する（ステップＳ５）。また、現在のラン長ＲＬを出力する（ステップＳ６）。そして、ステップＳ１に戻り、次の量子化されたＤＣＴ係数γＵＶについてステップＳ１〜Ｓ６の処理を実行する。
【００５９】
なお、上述のように、実際の符号化処理では、１つのブロック内の連続する無効係数の数が１５を越える場合には、連続する１６個の無効係数のラン長を表すＺＲＬを残りのラン長が１５以下になるまで繰り返して出力する。
【００６０】
上記の例では、ハフマン符号化処理プログラムが外部記憶装置１４の記録媒体１６に記録されているが、ハフマン符号化処理プログラムをＲＯＭ１３に格納し、ＣＰＵ１１がＲＯＭ１３に格納されたハフマン符号化処理プログラムを読み込んでＲＡＭ１２上で実行してもよい。また、通信回線等の通信媒体を介して受信したハフマン符号化処理プログラムをＲＡＭ１２上で実行してもよい。この場合には、通信媒体が記録媒体となる。
【００６１】
図５は図１のハフマン符号化装置１におけるハフマン符号化処理の一例を示す模式図である。図５の例では、しきい値ＴＨが０．２に設定されている。
【００６２】
図５に示すように、ＤＣＴ係数ＳＵＶに上式（２）により量子化を行い、量子化されたＤＣＴ係数γＵＶを得る。
【００６３】
図５の例では、ＤＣＴ係数Ｓ００が“２６０”であり、量子化係数Ｑ００が“１６”である場合に、量子化されたＤＣＴ係数γ００は“１６．３”となる。同様にして、γ０１＝４．４、γ０２＝−１．６、γ０３＝０．３、γ１０＝−６．６、γ１１＝３．０、γ１３＝−０．４、γ２１＝−０．６、γ３０＝−０．６、γ４１＝−０．３となり、これらの量子化されたＤＣＴ係数γＵＶは上式（３）を満足しないため、有効係数とみなす。他の量子化されたＤＣＴ係数γＵＶは上式（３）を満足するため、無効係数とみなす。
【００６４】
量子化されたＤＣＴ係数γＵＶをジグザグスキャンにより一次元に配列し、上式（３）を満足する連続する無効係数の数を示すラン長ＲＬを求めるとともに、上式（３）を満足しない量子化されたＤＣＴ係数γＵＶを４捨５入により整数化して有効係数ＶＣとして求める。この場合、整数化により“０”となる量子化されたＤＣＴ係数γＵＶは“１”に切り上げて有効係数ＶＣとして出力する。例えば、量子化されたＤＣＴ係数γＵＶ＝０．３は“１”として出力する。
【００６５】
ブロック内の先頭の有効係数ＶＣ（ＤＣ係数）は“１６”となる。先頭の有効係数ＶＣの前にはラン長ＲＬが存在しない。以降、ラン長ＲＬと有効係数ＶＣとの組み合わせは、“０／４”、“０／−７”、“１／３”、“０／−２”、“０／１”、“１／−１”、“０／１”、“３／１”、“５／１”となり、最後のラン長ＲＬは“４４”となる。図５の例では、データの圧縮率が図１４の例に比べて低くなっている。
【００６６】
図６は図１のハフマン符号化装置１におけるハフマン符号化処理の他の例を示す模式図である。図６の例では、しきい値ＴＨが１．５に設定されている。
【００６７】
図６に示すように、ＤＣＴ係数ＳＵＶに上式（２）により量子化を行い、量子化されたＤＣＴ係数γＵＶを得る。
【００６８】
図６の例では、ＤＣＴ係数Ｓ００が“２６０”であり、量子化係数Ｑ００が“１６”である場合に、量子化されたＤＣＴ係数γ００は“１６．３”となる。同様にして、γ０１＝４．４、γ０２＝−１．６、γ１０＝−６．６、γ１１＝３．０となり、これらの量子化されたＤＣＴ係数γＵＶは上式（３）を満足しないため、有効係数とみなす。他の量子化されたＤＣＴ係数γＵＶは上式（３）を満足するため、無効係数とみなす。
【００６９】
量子化されたＤＣＴ係数γＵＶをジグザグスキャンにより一次元に配列し、上式（３）を満足する連続する無効係数の数を示すラン長ＲＬを求めるとともに、上式（３）を満足しない量子化されたＤＣＴ係数γＵＶを４捨５入により整数化して有効係数ＶＣとして求める。
【００７０】
ブロック内の先頭の有効係数ＶＣ（ＤＣ係数）は“１６”となる。先頭の有効係数ＶＣの前にはラン長ＲＬが存在しない。以降、ラン長ＲＬと有効係数ＶＣとの組み合わせは、“０／４”、“０／−７”、“１／３”、“０／−２”となり、最後のラン長ＲＬは“５９”となる。図６の例では、データの圧縮率が図１４の例に比べて高くなっている。
【００７１】
上記のように、本実施例のハフマン符号化装置１においては、しきい値ＴＨを任意に調整することにより量子化器２０から出力される量子化されたＤＣＴ係数γＵＶのうち無効係数とみなすＤＣＴ係数γＵＶの数を任意に調整することができ、連続する無効係数の数を示すラン長ＲＬを任意に調整することができる。したがって、量子化テーブルに含まれる８×８個の量子化係数ＱＵＶを変えることなくデータの圧縮率を容易に変更することが可能となる。
【００７２】
なお、上記実施例では、量子化器２０による量子化においてＳＵＶ／ＱＵＶの計算結果に整数化処理を行っていないが、量子化の際に上式（１）で示したようにＳＵＶ／ＱＵＶの計算結果に整数化処理を行ってもよい。
【００７３】
また、上記実施例では、量子化されたＤＣＴ係数γＵＶの絶対値がしきい値ＴＨ以下の場合にそのＤＣＴ係数γＵＶを無効係数とみなしているが、無効係数とみなす量子化されたＤＣＴ係数γＵＶの範囲は、任意に設定することができる。
【図面の簡単な説明】
【図１】本発明の一実施例におけるハフマン符号化装置の構成を示すブロック図である。
【図２】図１のハフマン符号化装置に用いられるＡＣ係数のためのハフマン符号テーブルの一例を示す図である。
【図３】図１のハフマン符号化装置のハードウェア構成を示すブロック図である。
【図４】図３の記録媒体に記録されたハフマン符号化処理プログラムにおけるラン長および有効係数の出力処理を示すフローチャートである。
【図５】図１のハフマン符号化装置におけるハフマン符号化処理の一例を示す模式図である。
【図６】図１のハフマン符号化装置におけるハフマン符号化処理の他の例を示す模式図である。
【図７】従来のハフマン符号化装置の構成を示すブロック図である。
【図８】画像データのブロック化を示す図である。
【図９】８×８画素ブロックおよびＤＣＴ変換されたブロックを示す図である。
【図１０】量子化されたＤＣＴ係数の一例を示す図である。
【図１１】ジグザグスキャンを説明するための図である。
【図１２】ＤＣ係数のためのハフマン符号テーブルの一例を示す図である。
【図１３】従来のハフマン符号化装置に用いられるＡＣ係数のためのハフマン符号テーブルの一例を示す図である。
【図１４】従来のハフマン符号化装置におけるハフマン符号化処理の一例を示す模式図である。
【符号の説明】
１  ハフマン符号化装置
１０  ＤＣＴ変換器
１１  ＣＰＵ
１２  ＲＡＭ
１３  ＲＯＭ
１４  外部記憶装置
１５  記録媒体駆動装置
１６  記録媒体
２０  量子化器
３０  比較器
４０  ラン長カウンタ
５０  符号化器
６０  ハフマン符号化部
【図１】
0003603000.tif 000002
【図２】
0003603000.tif 000003
【図３】
0003603000.tif 000004
【図４】
0003603000.tif 000005
【図５】
0003603000.tif 000006
【図６】
0003603000.tif 000007
【図７】
0003603000.tif 000008
【図８】
0003603000.tif 000009
【図９】
0003603000.tif 000010
【図１０】
0003603000.tif 000011
【図１１】
0003603000.tif 000012
【図１２】
0003603000.tif 000013
【図１３】
0003603000.tif 000014
【図１４】
0003603000.tif 000015