(57)【要約】【課題】画像符号化における効率の良い可変長コード生成。【解決手段】可変長符号化装置（３）において、ラン・コード生成部（１０）が、入力したＤＣＴ係数のラン長の属するラン・グループを定め、その定めたグループを表すラン可変長コードを生成し、かつ、ラン長の値を表すラン固定長コードを生成して、ラン・コードを発生する。同様にレベル・コード生成部（１２）が独立にＤＣＴ係数のレベルからレベルコードを発生する。合成部（１３）が最終的な可変長コードを生成する。【選択図】図２
2006157944.tif 000002
【特許請求の範囲】
【請求項１】
可変長部分と固定長部分を組み合わせて可変長コードとして出力する可変長コード生成方法であって、
表現する数値が属するグループに対応する可変長部分を構成するビットと、前記表現する数値に対応する固定長部分を構成するビットとを一定の割合で交互に折り合わせて合成し、前記合成したビット群を可変長コードとして出力するステップを含む可変長コード生成方法。
【請求項２】
数値を可変長コードに符号化する符号化装置であって、
前記数値のサイズに対応する第１のコードを構成するビットと、前記数値の値に対応する第２のコードを構成するビットとを一定の割り合いで交互に折り合わせて前記可変長コードを生成する符号化装置。
を有する
【請求項３】
前記第１のコードのビット長をＭ、前記第２のビット長をＬとする場合に、ｇ×Ｍ＝ｈ×Ｌ＋１（ｇ，ｈは自然数、ｉは整数）の関係式が成立する請求項２に記載の符号化装置。
【請求項４】
前記第１のコードが最上位ビット側と最下位ビット側から対称の構成となっている請求項３に記載の符号化装置。
【請求項５】
前記第１のコードを構成するビットの数が前記第２のコードを構成するビットの数よりも１ビット多く、前記第１のコードを構成するビットと前記第２のコードを構成するビットとが１ビットずつ交互に折り合わされて可変長コードが生成される請求項２に記載の符号化装置。
【請求項６】
前記第１のコードにおいて、最上位ビットと最下位ビットとが０であり、それ以外のビットが１である請求項５に記載の符号化装置。
【請求項７】
可変長コードに変換された数値を復号する復号装置であって、
前記数値のサイズに対応する第１のコードを構成するビットと、前記数値の値に対応する第２のコードを構成するビットとが一定の割り合いで交互に折り合わされた前記可変長コードから、前記第１のコードと前記第２のコードとを抽出して前記数値を復号する復号装置。
【請求項８】
前記第１のコードのビット長をＭ、前記第２のビット長をＬとする場合に、ｇ×Ｍ＝ｈ×Ｌ＋１（ｇ，ｈは自然数、ｉは整数）の関係式が成立する請求項７に記載の復号装置。
【請求項９】
前記第１のコードが最上位ビット側と最下位ビット側から対称の構成となっている請求項８に記載の復号装置。
【請求項１０】
前記可変長コードにおいて、前記第１のコードを構成するビットの数が前記第２のコードを構成するビットの数よりも１ビット多く、前記第１のコードを構成するビットと前記第２のコードを構成するビットとが１ビットずつ交互に折り合わされている請求項７に記載の復号装置。
【請求項１１】
前記第１のコードにおいて、最上位ビットと最下位ビットとが０であり、それ以外のビットが１である請求項１０に記載の復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化における可変長コードの生成に関する。
【背景技術】
【０００２】
画像符号化においては、ＤＣＴ（離散コサイン変換（Discrete CosineTransform ））が広く用いられている。この手法は、人間の視覚に敏感な成分（低周波成分）とそうでない成分（高周波成分）とに分ける作用がある。ＤＣＴを施した後の成分はＤＣＴ係数と呼ばれ、低周波成分の方から優先的に伝送することにより少ない情報量で見た目に自然な画像が伝送できる。
ＤＣＴ係数は、周波数を表すラン長（正確には低周波側の直前の成分からの距離）と信号の強度を表すレベルの組合せ、すなわち、（ラン長、レベル）で表現される。通常、８×８画素の領域（これを、ブロックという）でＤＣＴが施されるためラン長は０から６３の値を、また、レベルは−１２７から＋１２７の値をとる。
【０００３】
そして、全体的な伝送符号量を削減するため、ラン長及びレベルについて、絶対値が小さい係数ほど出現する確率が高くなるという性質を利用して可変長符号化（エントロピー符号化ともいう）を行なう。まず、各（ラン長、レベル）の出現確率に応じた長さの可変長コードを決め、その対応関係を予めテーブルにしておく。（これを、ハフマン・テーブルという）。通常、出現確率の高い係数ほど短いコードを割り当てて全体的な符号量を削減する。そして、符号化する際はＤＣＴ係数の（ラン長、レベル）に対応する可変長コードをハフマン・テーブル（通常１２０個程度の要素から成る）から読み出して出力する（これを、テーブル参照という）。また、ハフマン・テーブルにはＥＯＢ（End Of Block）という特殊なコードがあり、ブロックのなかの最後の係数の直後に挿入することによってブロック境界を表している。画像符号化では、この一連の処理が画像内の全ブロックに対して行なわれる。
【０００４】
しかし、規格化された画像符号化法を用いるときは、それに規定されているハフマン・テーブルを使用しなければならず、種々の状況に柔軟に対応できないことがある。例えば、ＥＯＢが４ビットのコードであるにも関わらず、ほとんどのブロックでＤＣＴ係数が伝送されない場合はブロック当たり約４ビット消費することになる。このＥＯＢを２ビットにすればブロック当たり２ビット削減することができ、圧縮効果が上がる。しかし、現行の規格では、せいぜい２種類のハフマン・テーブルを選択できるようにしてあるのが最善の対処であり、より柔軟な対応は不可能である。
【０００５】
又、ハフマン・テーブルを複数個用意すると別の弊害が発生する。すなわち、符号器と復号器共にハフマン・テーブルをメモリー（記憶素子）に保持する必要があり、それだけ多くのメモリー容量を要する。また、復号器側では可変長コードの連鎖であるビット列を元の（ラン長、レベル）の表現に戻すためにハフマン・テーブルの中を検索する必要があり、テーブルの要素の数に比例して復号に要する時間が増大することになる。
上述のように、ＤＣＴ係数の可変長符号化においては種々の課題がある。すなわち、既定のハフマン・テーブルを使用すると画像の種類や符号化パラメータの変化に対して柔軟に対応できない。また、これを解決するためにハフマン・テーブルを複数用意すると要素の数に比例して装置の複雑さが増し、かつ動作速度も遅くなる。
【０００６】
本発明の目的は、ハフマン・テーブルの要素数を削減しつつ、画像の種類や符号化パラメータの変化に対して柔軟に対応する機能を提供することである。このことにより、符号化・復号化装置の簡略化と復号化処理の高速化が同時に達成できる。
本発明の他の目的は、狭帯域（６４キロビット毎秒以下）の通信回線を用いて画像伝送を行なう携帯端末に搭載する画像符号化装置における可変長符号化及び復号化の部分を簡略化し、かつ、高速化する機能を提供することである。
【発明の開示】
【課題を解決するための手段】
【０００７】
本発明は、入力したＤＣＴ係数のラン長の値の属するラン・グループを定め、その定めたグループを表すラン可変長コードを生成し、かつ、前記ラン長の値を表すラン固定長コードを生成して、前記ラン可変長コードと前記ラン固定長コードを合成してラン・コードを生成するラン・コード生成部と、入力したＤＣＴ係数のレベルの値の属するレベル・グループを定め、その定めたグループを表すレベル可変長コードを生成し、かつ、前記レベルの値を表すレベル固定長コードを生成して、前記レベル可変長コードと前記レベル固定長コードを合成してレベル・コードを生成するレベル・コード生成部と、前記ラン・コード及び前記レベル・コードに基いて可変長コードを生成する合成部を含む可変長コード生成装置を提供する。
【０００８】
又、画素信号からＤＣＴ変換によりＤＣＴ係数を生成し、その生成したＤＣＴ係数から可変長コードを出力する可変長コード生成方法であって、ブロック内の最後のＤＣＴ係数であることを意味するコード、又は、ブロック内にＤＣＴ係数が継続して存在することを意味するコードのいずれか一方のコードを、ブロック内のＤＣＴ係数の数に従って付加して可変長コードとして出力するステップを含む可変長コード生成方法を提供する。
更に、可変長部分と固定長部分を組合わせて可変長コードとして出力する可変長コード生成方法であって、表現する数値が属するグループに対応する可変長部分を構成するビットと、前記表現する数値に対応する固定長部分を構成するビットとを一定の割合で交互に折り合わせて合成し、前記合成したビット群を可変長コードとして出力するステップを含む可変長コード生成方法を提供する。
【０００９】
一実施例において、ハフマン・テーブルを持たず、その代わりに１０個程度の“コードの種”を規定する。そして、符号化時に、“コードの種”の組合せにより１６，０００種類にも及ぶコードを構成する。また、従来手法では、１６，０００種類の中の１２０個のコードをハフマン・テーブルで表し、その他は、エスケープ・シーケンスを用いている。これは、出現確率の低いＤＣＴ係数をエスケープ・コード（７ビットの可変長コード）に続くラン長とレベルを表す固定長のコード（ラン長は６ビット、レベルは８ビット）で表現するものである。この際、可変長符号化器では、エスケープ・コードを使用するか否かを判定するための１６，０００ビット相当の付加テーブルが必要になる。これに対し、“コードの種”の組合せを用いることにより、ハフマン・テーブルと同等なコード表を表現するためのメモリー容量が１／５０以下に縮小できる。
【００１０】
また、ブロック境界を表すＥＯＢを“コードの種”の１つに割り当て、このコード長を可変にすることによりブロック内のＤＣＴ係数の個数の変化に柔軟に対応できる。このＥＯＢコードの特殊な場合として、ｎＥＯＢ（ネガティブＥＯＢ）を当該ブロック内に符号化・復号化されるべきＤＣＴ係数が存在することを意味するコードとして定義する。これにより、ブロック当たりの平均ＤＣＴ係数が１に近いような状況（低ビットレートで符号化する際などに発生）に対応できる。
そして、ラン長とレベルを独立に符号化・復号化する。この際、ラン長とレベルともに同様の符号構成を採用し、また“コードの種”を共有することによって装置を簡略化できる。これにより復号化側は従来１つのＤＣＴ係数につき最大１２０回の照合を要していたところを、ラン長とレベルで最大合計２０回の照合で実現でき、復号に要する時間を１／６程度にまで削減が可能である。
副次的な作用として、１６×１６画素単位のＤＣＴ（現行は、８×８画素単位）への拡張性がある。すなわち、１６×１６画素単位のＤＣＴの場合はラン長が最大２５５となるが、既定のハフマン・テーブルでは６３以上のラン長には対応できない。本発明では、“コードの種”を２つ加えるだけで対応が可能となる。
また、双方向から復号可能な可変長コードの生成方法も提供する。伝送路上でビット列に誤りが生じた場合、誤りが生じた部分を回避して次の既知のコード（これを同期コードという）まで飛び越し、そこから逆方向（すなわち過去に溯る方向）に復号を行なう。これにより従来破棄せざるを得なかった復号不可能なビット列を回復でき、誤りの影響を最小限に抑制できる。
【発明の効果】
【００１１】
本発明によれば、画像情報を符号化・復号化する際に、画像の種類や符号化パラメータの変化に対して柔軟に対応する機能が提供できるとともに、符号化・復号化装置の簡略化と復号化処理の高速化が同時に達成できる。また、符号量削減の効果は、現行標準と同等の性能が得られる。
【実施例】
【００１２】
以下、本発明の実施例について図面を参照して詳細に説明する。
図１は、本発明の可変長符号化を適用した画像符号化装置の構成例を示すブロック図である。同図において、ＤＣＴ部１が８×８画素ブロックをＤＣＴ（離散コサイン変換）処理し、量子化部２において、ＤＣＴ係数を人間の視覚に適合するように低周波成分が精度良く量子化される。そして可変長符号化部３が（ラン長、レベル）で表された各ＤＣＴ係数を可変長コード化する。可変長符号化部３と接続する符号化制御部４は、画像単位で最適な符号化モードを決定する。符号化制御部４からの出力として示されているｎＥＯＢフラッグ及びＥＯＢコード長は、符号量を最小にするモードを示しており、通常画像単位で切替える。これに対して、量子化部２からの出力として示されているブロック境界信号は符号量制御を目的にしたものではなく、ブロック内のＤＣＴ係数の分布から一意に決定される。
【００１３】
図２は図１の可変長符号化部を説明するためのブロック図である。この可変長符号化部では、ラン長及びレベルを独立に符号化した後にラン長、レベルの順にそれぞれのコードを合成し、最終的な可変長コードを出力する。ラン長及びレベルともに２段階でコードを生成する。まず、第１段階では、入力値の属するグループを求め、そのグループを表す可変長コードを出力する。第２段階では、入力値そのものを表す固定長コードを出力する。すなわち、ラン長を表すラン・コードはラン可変長コードとラン固定長コードからなり、レベルを表すレベル・コードはレベル可変長コードとレベル固定長コードからなる。
即ち、ラン・コード生成部１０では量子化部２から入力したラン長に基きコード表に従ってラン可変長コードとラン固定長コードを生成し、それらを合成したラン・コードを合成部１３に送る。レベル・コード生成部１２は、量子化部２から入力したレベルに基きコード表に従ってレベル可変長コードとレベル固定長コードを生成し、それらを合成したレベル・コードを合成部１３に送る。
なお、それぞれのコードを合成するに当って、ラン長、レベルという順序で送ることは必ずしも必要でない。この順序は逆もあり得るし、又、ラン長を１ブロック分（最大６４個）低周波側から順々に伝送した後に、同じ数のレベルをラン長の順番に対応させて伝送することも可能である。また、このラン長とレベルをブロック単位ではなく画像単位でまとめて伝送することも可能である。
【００１４】
なお、ラン長及びレベルを独立に符号化することの利点は次の通りである。ＤＣＴ係数を表すラン長とレベルをエラー耐性（エラーが発生したときに復号画像に致命的な影響を与えないようにする機能）の面から考慮するとラン長の方が重要である。従って、ラン長とレベルでエラー訂正の強度（エラーが発生したときにそれを検出し、また、訂正する能力の度合）を変えて伝送する手法が有効である。この場合は、重要な情報であるラン長のエラー訂正の強度をより強くする（これは同時に冗長なビットを増やして符号化効率を下げることになる）ことで効率的にエラー耐性を向上させることができる。例えば、あるＤＣＴ係数（Ｒ、Ｌ）を想定し、ラン長が１だけずれたもの（Ｒ＋１、Ｌ）とレベルが１だけずれたもの（Ｒ、Ｌ＋１）とを考える。エラーが発生した２つの係数を逆ＤＣＴ（ＤＣＴ係数をブロック画像に変換する処理）を施して比較すると、（Ｒ、Ｌ）に逆ＤＣＴを施した元の画像に近いのは（Ｒ、Ｌ＋１）の方である。つまり、ラン長に強いエラー耐性をかければラン長に誤りが発生し難くなり、仮にレベルにエラーが発生してもラン長のエラーほど致命的な影響を与えない。
【００１５】
又、本実施例では、ブロック境界を表すＥＯＢコードをレベル可変長コードの１つとして割り当てる。このＥＯＢコード長を変更することによってブロック内のＤＣＴ係数の個数の変化に対応する。ＥＯＢコード長の決定は符号化制御部４（符号化側）で実施し、画像内符号化か画像間符号化の区別、対象とする画像の種類及び符号化レート（消費できる符号量）などを考慮して行なう。一般に、画像の内容が複雑なほど、また、符号化レートを大きくするほどＤＣＴ係数の個数が増加するので、このような場合はＥＯＢコード長を長くする。ほとんどの場合、ＥＯＢコード長は画像内符号化で３もしくは４ビット、画像間符号化で２ビットに設定すれば適切に動作する。画像内符号化でのＥＯＢコード長の切替えは、ブロック内のＤＣＴ係数の平均個数が８個以内であれば３ビット、８個以上であれば４ビットにするという判定基準を用いれば確率論的な意味で適切である。通常モード（ＥＯＢモードと呼び、ｎＥＯＢフラッグがＯＦＦの状態をいう）においては、ブロック境界信号がＯＮのときＥＯＢコードをラン・コードとレベル・コードの間に挿入する。なおこのブロック境界信号は、ブロック内の最後のＤＣＴ係数であるときのみＯＮになる。即ち、量子化部２では、ブロック内のＤＣＴ係数を低周波側から順に１個ずつ（８×８ブロックの場合は最大６４個のＤＣＴ係数を１個ずつ）可変長符号化部３に出力するが、あるブロックの処理を開始するときは常にブロック境界信号をＯＦＦにし、最後のＤＣＴ係数のときにＯＮにする。
【００１６】
即ち図２において、ＥＯＢコード生成部１１は符号化制御部４から入力したｎＥＯＢフラッグ、ＥＯＢコード長に基きコード表に従ってＥＯＢコードを生成し、合成部１３へ送る。ＥＯＢコードの生成については後述する。
そして合成部１３から最終的な可変長コードが出力される。
本実施例におけるラン長及びレベルのコード決定、並びにＥＯＢコードの生成について以下に説明する。
【００１７】
本実施例では、ＤＣＴ係数の出現確率について次のようなモデルを仮定し、ラン長及びレベルのコードを決定した。
（１）  ラン長の確率モデル
ラン長＝０を表す可変長コードを０とする（出現確率１／２に相当）。
以下、２のべき乗で表される範囲のラン長を１グループとし可変長コードに１を加える。
（２）  レベルの確率モデル
レベルの絶対値＝１を表す可変長コードを０とする（出現確率１／２に相当）。
以下、２のべき乗で表される範囲の絶対値レベルを１グループとし可変長コードに１を加える。
【００１８】
このモデルは、ハフマン・テーブルほど最適化はなされていないが、出現頻度の高い（つまり、ラン長、絶対値レベルともに小さい値を持つ）ＤＣＴ係数については、ほぼハフマン・テーブルに近い性能を示す。表１、２に上記モデルに基いたラン長及びレベルのコード表（“コードの種”の組合せ表）を示す。この表は、ブロック内のＤＣＴ係数が比較的多い画像内符号化に適合させるため、ＥＯＢコード長を３ビットに設定している。例えば、ＤＣＴ係数（３、−５）を可変長符号化する場合を考える。表１よりランの値３を含むグループ２のラン可変長コードは“１１０”、ラン固定長コードは“１”（３を表す２進数“１１”の最上位ビットを除いたビット列）となり、ラン・コード“１１０１”を得る。また、表２よりレベルの値−５を含むグループ２のレベル可変長コードは“１１１０”、レベル固定長コードは“１０１”（最上位ビットは負を表す）となり、レベル・コード“１１１０１０１”を得る。そして、ラン・コード、レベル・コードの順に合成すると、ＤＣＴ係数（３、−５）を表す可変長コード“１１０１１１１０１０１”を得る。また、これがブロック内の最後（ブロック境界）の係数であれば、ラン・コードとレベル・コードの間にＥＯＢコード“１１０”を入れて“１１０１１１０１１１０１０１”となる。
【００１９】
なお同じラングループ２に属する異なるラン長（ランの値２）を有するＤＣＴ係数（２，−５）の場合は、ＤＣＴ係数（３，−５）とはラン固定長コードのみが異なることになる。即ち、そのラン固定長コードは“０”（２を表す２進数“１０”の最上位ビットを除いたビット列）となり、ＤＣＴ係数（２，−５）を表す可変長コードは“１１００１１１０１０１”となり、先頭から４ビット目だけがＤＣＴ係数（３，−５）を表す可変長コードと異なる。
また、表３にブロック内のＤＣＴ係数が比較的少ない画像間符号化に適合させるため、ＥＯＢコード長を２ビットに設定した“コードの種”を示す。このように画像単位でＥＯＢコード長を変更することによって最適化が可能であり、しかも、これは８個の“コードの種”からなるレベル可変長コードを入れ換えるだけで実現できる。従来のハフマン・テーブルを用いる方法でＥＯＢコード長を変化させると全ての可変長コードを入れ換える必要があり、結局テーブルを複数持たざるを得ない。
【００２０】
【表１】
2006157944.tif 000003
【００２１】
【表２】
2006157944.tif 000004
【００２２】
【表３】
2006157944.tif 000005
【００２３】
次に、ブロック内のＤＣＴ係数の平均個数が１に近い場合についての効果的な対策を考える。この状況は、特に低符号化レートで画像間符号化したときに発生しやすい。表４は４ブロックにおけるＤＣＴ係数の分布例を示し、４個のブロック中３ブロックがＤＣＴ係数１個で、残りの１ブロックがＤＣＴ係数２個ある場合を示している。上述のように、ＥＯＢコード長を２ビットに設定した場合、ブロック内のＤＣＴ係数が１個のときブロック境界を示すために２ビットを要する。ＥＯＢコード長が２ビットというのは、ブロック内のＤＣＴ係数の平均個数が４程度を仮定しており確率論的な意味で不適切である。表５に対策を施さずに表４のＤＣＴ係数を可変長符号化した結果を示す。
【００２４】
【表４】
2006157944.tif 000006
【表５】
2006157944.tif 000007
【００２５】
上述の対策として、ＥＯＢと反対の意味を持つコードを定義してブロック境界を示すのに要するビット数を軽減する。これをｎＥＯＢ（ネガティブＥＯＢ）と呼び、コードはＥＯＢと同じものを使用する。ＥＯＢモードとｎＥＯＢモードの画像単位での切替えは、符号化制御部（符号化側）で行なう。ｎＥＯＢモードでは、ブロック内のＤＣＴ係数が１の場合ｎＥＯＢコードを送る必要がない。つまり、ｎＥＯＢコードはＤＣＴ係数が２個以上存在する場合のみ“継続”を表すコードとして挿入される。表６にｎＥＯＢモードにより表４のＤＣＴ係数を可変長符号化した結果を示す。表５と表６の結果から、表４のようにブロック内のＤＣＴ係数の平均個数が１に近い状況ではｎＥＯＢモードはＥＯＢモードと比較して符号量を２０％程度削減できる。ｎＥＯＢモード（ｎＥＯＢフラッグがＯＮ）においては、ブロック境界信号がＯＦＦのときラン・コードとレベル・コードの間にＥＯＢコードが挿入される。
【００２６】
【表６】
2006157944.tif 000008
【００２７】
本発明と従来のハフマン・テーブルを用いた場合の可変長符号化装置の複雑さ及び処理速度について比較する。必要となるメモリー容量に関しては、本発明ではハフマン・テーブルを用いた従来手法と比較して、符号化側では１／５０以下、また、復号化側では１／１０程度まで縮小できる。処理速度に関しては、本発明では従来手法と比較して、符号化側では同等、また、復号化側では従来１つのＤＣＴ係数につき最大１２０回の照合を要していたところを、本発明ではラン長とレベルで合計１５回の照合で実現でき、８倍程度の速度向上が可能である。
次に、本発明の第２の実施例について説明する。
この実施例では、１６×１６画素単位のＤＣＴ（現行は、８×８画素単位）への拡張を実現している。すなわち、１６×１６画素単位のＤＣＴの場合はラン長が最大２５５となるが、既定のハフマン・テーブルでは６３以上のラン長には対応できない。本発明では、“コードの種”を２つ加えるだけで対応が可能となる。
【００２８】
表７に１６×１６ＤＣＴ拡張版ラン・コード表を示す。同様にしてより大きなブロック単位でのＤＣＴに対しても拡張可能である。
【表７】
2006157944.tif 000009
【００２９】
また、レベルについても“コードの種”を追加するだけで拡張が可能となる。表８に絶対値２５５までのレベルに拡張対応したレベルのコード表を示す。
【表８】
2006157944.tif 000010
【００３０】
本実施例の性能評価のためコンピュータによる実験を行なった。比較の対象として、低ビットレートでの動画像伝送標準であるＨ．２６３を用いた。本実施例では、画像内符号化ではＥＯＢモードでＥＯＢコード長を３ビット、また、画像間符号化ではｎＥＯＢ（ネガティブＥＯＢ）モードでＥＯＢコード長を２ビットに設定した。テスト画像としては、標準画像であるマザー＆ドーターとフォアマンの２つを用いた。表９に各画像においてＤＣＴ係数を符号化するのに要したビット数を示す。
【表９】
2006157944.tif 000011
【００３１】
この結果から本実施例は、従来標準であるＨ．２６３と比較して、画像内符号化、画像間符号化ともに１ないし３％の性能向上が確認できる。仮に性能が同等であっても、符号化装置の簡略化と処理速度の向上が達成できる本実施例の方が有利であると判断できる。Ｈ．２６３のハフマン・テーブルは画像間符号化用に最適化されたものであるが、本実施例は更にそれを上回っている。これは、ｎＥＯＢモードが効果的に働いているためである。
【００３２】
次に、伝送路上の雑音成分などによりビット列が影響を受け可変長コードに誤りが生じた場合の復号処理を図3 に示す。同図（ａ）は一方向（前方向）に復号可能な可変長コードを用いた誤り回避のみによる復号処理である。ビット列中に誤りが発生した場合、復号化側では別の可変長コードとして復号されるか、もしくは、該当する可変長コードが存在しないという理由で復号を中止することになる。前者の場合、仮にコード長が正しければ誤りは伝播しないが、ほとんどの場合最終的には後者のケースに至る。そして、後者の場合、次の同期コードを探して復号を再開する。しかし、前方向にのみ復号可能な従来の可変長コードでは同期コードから逆方向に復号することができないため、誤り発生箇所から同期コードまでのビット列は破棄せざるを得ず、この間のビット列が正常であっても誤りの影響を受けることになる。この例では、可変長コードａからｅまでが破棄されることになる。
【００３３】
誤りの影響を抑制する方法として、図３（ｂ）に示すように以前から双方向に復号可能な可変長コードを使って同期コードから逆方向（すなわち過去に溯る方向）にも復号を行う双方向復号方式が検討されている。この例では、後方向復号（誤り回復）により可変長コードｂからｅまでが復号可能であり、破棄されるのは可変長コードａのみである。しかし、一般に双方向復号方式では前方向用と後方向用のハフマン・テーブルを別個に持つ必要があり、復号化装置がその分複雑になる。
【００３４】
そこで、“コードの種”とそれによって長さが規定される固定長コードとの組合せにより伝送すべき可変長コードを構成するという上述の発明の特徴を活かし、“コードの種”と固定長コードとを一定の割合で交互に折り合わせることにより（例えば、“コードの種”と固定長コードから１ビットずつ順に重ね合わせる）双方向に復号可能な可変長コードを作成する。表１０に“コードの種”（可変長部分）と固定長コード（固定長部分）を１ビットずつ交互に折り合わせた可変長コードの一例を示す。例えば、可変長コード“０１１１０”は可変長部分が“０１０”。固定長部分が“１１”に相当するので６を表していることになる。表１０を用いて双方向復号可能な可変長コードを作成した例（０、２、１０、５を符号化）を図４に示す。
【００３５】
【表１０】
2006157944.tif 000012
【００３６】
この際、全ての可変長コードにおいて可変長部分のビット長：Ｍと固定長部分のビット長：Ｌとが１次式の関係（すなわち、ｇＭ＝ｈＬ＋ｉ、ここでｇ，ｈは自然数，ｉは整数）にあること及び可変長部分が対称（前方向、後方向のいずれから見ても等しい）になっていることが双方向に復号可能な可変長コードを生成する条件となる。表１０の場合はＭ＝Ｌ＋１の関係になっている。この条件のもとに作成された可変長コードは、前方向、後方向のいずれから見ても可変長部分と固定長部分とがｈ対ｇの割合で重ね合わされた形になっている。
上述の様に実施例に関し詳述したが、本発明はこれに限られるものではない。
【図面の簡単な説明】
【００３７】
【図１】本発明の可変長コード生成技術を適用した画像符号化装置の構成例を示すブロック図。
【図２】可変長符号化部のブロック図。
【図３】双方向復号を用いた復号処理を説明する図。
【図４】双方向復号可能な可変長コードを示す図。
【符号の説明】
【００３８】
１  ＤＣＴ部
２  量子化部
３  可変長符号化部
４  符号化制御部
１０  ラン・コード生成部
１１  ＥＯＢコード生成部
１２  レベル・コード生成部
１３  合成部
【図１】
2006157944.tif 000013
【図２】
2006157944.tif 000014
【図３】
2006157944.tif 000015
【図４】
2006157944.tif 000016