(57)【要約】      （修正有）【課題】より少ない計算量と記憶量で効率的に符号化／復号化することができる順方向にも逆方向にも復号可能な可変長符号化／復号化装置を提供する。【解決手段】順方向にも逆方向にも復号可能な第１の符号語の先頭および末尾の少なくとも一方に、順方向にも逆方向にも復号可能な第２の符号語を付加して構成された符号語を含む符号語で構成された可変長符号からなる。この可変長復号化装置は、符号化データを階層毎に分離する分離手段と、同期区間を検出する同期区間検出手段と、符号化データを順方向から復号する順方向復号化手段と、符号化データを逆方向から復号する逆方向復号化手段と、前記順方向復号化手段および逆方向復号化手段により得られた階層毎の復号結果を合成する合成手段と、を備える。【選択図】図１
2006217613.tif 000002
【特許請求の範囲】
【請求項１】
順方向にも逆方向にも復号可能な符号語であって、順方向にも逆方向にも復号可能な第１の符号語の先頭および末尾の少なくとも一方に、順方向にも逆方向にも復号可能な第２の符号語を付加して構成された符号語を含む符号語で構成された可変長符号からなり、階層化された情報シンボルに対応する符号語により作成され、かつ多重化された符号化データを復号する可変長復号化装置において、
前記符号化データを階層毎に分離する分離手段と、
前記分離手段により分離された符号化データの同期区間を検出する同期区間検出手段と、
前記同期区間検出手段により検出された同期区間の符号化データを順方向から復号する順方向復号化手段と、
前記同期区間検出手段により検出された同期区間の符号化データを逆方向から復号する逆方向復号化手段と、
前記順方向復号化手段および逆方向復号化手段により得られた階層毎の復号結果を合成する合成手段と、
を有することを特徴とする可変長復号化装置。
【請求項２】
順方向にも逆方向にも復号可能な符号語であって、順方向にも逆方向にも復号可能な第１の符号語の各ビットの直前および直後の少なくとも一方に、順方向にも逆方向にも復号可能な第２の符号語を付加して構成された符号語を含む符号語で構成された可変長符号からなり、階層化された情報シンボルに対応する符号語により作成され、かつ多重化された符号化データを所定の同期区間毎に復号する可変長復号化装置において、
前記多重化された符号化データを階層毎に分離する分離手段と、
前記分離手段により分離された符号化データの同期区間を検出する同期区間検出手段と、
前記同期区間検出手段により検出された同期区間の符号化データを順方向から復号する順方向復号化手段と、
前記同期区間検出手段により検出された同期区間の符号化データを逆方向から復号する逆方向復号化手段と、
前記順方向復号化手段および逆方向復号化手段により得られた階層毎の復号結果を合成する合成手段と、
を有することを特徴とする可変長復号化装置。
【請求項３】
順方向にも逆方向にも復号可能な符号語であって、順方向にも逆方向にも復号可能な第１の符号語の先頭および末尾の少なくとも一方に、順方向にも逆方向にも復号可能な第２の符号語を付加して構成された符号語を含む符号語で構成された可変長符号からなり、階層化された情報シンボルに対応する符号語により作成され、かつ多重化された符号化データを所定の同期区間毎に復号する可変長復号化装置において、
前記多重化された符号化データを階層毎に分離する分離手段と、
前記分離手段により分離された符号化データの同期区間を検出する同期区間検出手段と、
前記同期区間検出手段により検出された同期区間の符号化データを順方向から復号する順方向復号化手段と、
前記同期区間検出手段により検出された同期区間の符号化データを逆方向から復号する逆方向復号化手段と、
前記順方向復号化手段および逆方向復号化手段により得られた階層毎の復号結果から復号値を判定して最終的な復号結果を出力する復号値判定手段と、
前記復号値判定手段により得られた階層毎の最終的な復号結果を合成する合成手段と、
を有することを特徴とする可変長復号化装置。
【請求項４】
順方向にも逆方向にも復号可能な符号語であって、順方向にも逆方向にも復号可能な第１の符号語の各ビットの直前および直後の少なくとも一方に、順方向にも逆方向にも復号可能な第２の符号語を付加して構成された符号語を含む符号語で構成された可変長符号からなり、階層化された情報シンボルに対応する符号語により作成され、かつ多重化された符号化データを所定期間毎に復号する可変長復号化装置において、
前記多重化された符号化データを階層毎に分離する分離手段と、
前記分離手段により分離された符号化データの同期区間を検出する同期区間検出手段と、
前記同期区間検出手段により検出された同期区間の符号化データを順方向から復号する順方向復号化手段と、
前記同期区間検出手段により検出された同期区間の符号化データを逆方向から復号する逆方向復号化手段と、
前記順方向復号化手段および逆方向復号化手段により得られた階層毎の復号結果から復号値を判定して最終的な復号結果を出力する復号値判定手段と、
前記復号値判定手段により得られた階層毎の最終的な復号結果を合成する合成手段と、
を有することを特徴とする可変長復号化装置。
【請求項５】
順方向にも逆方向にも復号可能で、符号語の予め定められた重みによって符号語の区切りが分かるように構成された符号語を含む複数の符号語であって、順方向にも逆方向にも復号可能な第１の符号語の各ビットの直前および直後の少なくとも一方に、順方向にも逆方向にも復号可能な第２の符号語を付加して構成された符号語は、順方向にも逆方向にも復号可能な前記第１の符号語の各ビットの間に、固定長符号の符号語が所定ビットずつ挿入された前記第２の符号語であることを特徴とする請求項１ないし請求項４の何れかに記載の可変長復号化装置。
【請求項６】
順方向にも逆方向にも復号可能で、符号語の予め定められた重みによって符号語の区切りが分かるように構成された符号語を含む複数の符号語であって、順方向にも逆方向にも復号可能な第１の符号語の各ビットの直前および直後の少なくとも一方に、順方向にも逆方向にも復号可能な第２の符号語を付加して構成された符号語は、順方向にも逆方向にも復号可能な前記第１の符号語の各ビットの間に、順方向にも逆方向にも復号可能な符号語が所定ビットずつ挿入された前記第２の符号語であることを特徴とする請求項１ないし請求項４の何れかに記載の可変長復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動画像信号などの圧縮符号化／復号化に用いられる可変長符号化／復号化装置に係り、特に順方向からも逆方向からも復号化可能な可変長符号化／復号化装置およびこの装置で用いられるデータまたはプログラムを記録する記録媒体に関する。
【背景技術】
【０００２】
可変長符号は、シンボルの発生頻度に基づいて、頻繁に出現するシンボルは短い符号長の符号、希にしか出現しないシンボルは長い符号長の符号をそれぞれ割り当てることにより、平均的に短い符号長となるようにした符号系である。したがって、可変長符号を用いると、符号化前のデータと比較して、データ量を大幅に圧縮することができる。このような可変長符号の構成方法としては、無記録情報源で最適なハフマンのアルゴリズムが知られている。
【０００３】
可変長符号の一般的な問題として、符号化データの伝送路誤りやその他の理由により符号内に誤りが混入した場合に、誤りが混入した後のデータはその影響が伝搬することにより復号化装置で正しく復号することができなくなってしまうという点が挙げられる。この問題を避けるため、伝送路において誤りが生じる可能性がある場合には、ある間隔で同期符号を挿入し、誤りの伝搬を防止する方法がとられるのが一般的である。同期符号には、可変長符号の組み合わせでは出現しないようなビットパターンが割り当てられる。この方法によれば、符号化データに誤りが生じ、復号できなくなったとしても、次の同期符号を見つけることにより、誤りの伝搬を防止し、正しく復号を行なうことができる。
【０００４】
しかし、同期符号を用いた場合でも、図７１（ａ）に示すように誤りが生じて正しく復号できない箇所から、次の同期符号が見つかる箇所までの間の符号化データについては、復号を行なうことができない。
【０００５】
そこで、可変長符号を図７２に示す通常の構成から図７３に示すように変更して、図７１（ｂ）に示すように通常の順方向から復号可能な性質だけでなく、逆方向からも復号可能な符号構成にする方法が知られている。また、このような符号は符号化データを逆方向からも読めることから、符号化データを蓄積するディスクメモリなどの蓄積媒体において逆転再生に用いることもできる。このような順方向のみならず逆方向からも復号可能な可変長符号のことを、ここではリバーシブル符号と呼ぶこととする。
【０００６】
リバーシブル符号の一例は、例えば特開平５−３０００２７号公報「可逆可変長符号化方式」に記載されている。この公知例のリバーシブル符号は、図７２に示した順方向から復号可能な可変長符号であるハフマン符号の符号語の末尾に、図７３に示すようにそれぞれの符号語がそれより符号長の長い他の符号語の末尾と一致しない条件でビットを追加することによって、逆方向からも復号可能とした可変長符号である。しかし、このリバーシブル符号は順方向からのみ復号可能な可変長符号の符号語の末尾にビットを付加するために、無駄なビットが多くなって平均符号長が長くなる。この結果、順方向からのみ復号可能な可変長符号と比較して符号化効率が大きく低下してしまう。
【０００７】
また、従来のリバーシブル符号では一定区間を単位に同期区間を設定すると、逆方向で復号ができないという問題点があった。例えば、ＩＴＵ−Ｔ  Ｈ．２６３（１９９６）では、同期符号を８ビット（＝１バイト）毎にアライメントする、すなわち同期符号の挿入可能位置を１バイト単位の位置に設定することが可能となっている。このような同期区間のアライメントを実現するために、同期符号の前に図３４に示すようなスタッフィング符号を挿入している。このような場合、従来のリバーシブル符号では、スタッフィング符号のために逆方向復号を行なうことができなくなるという問題点があった。
【０００８】
さらに、単純にリバーシブル符号を復号する場合には、通常の順方向のみ復号可能な可変長符号の復号化装置と比較すると、逆方向に復号する分だけ２倍の回路規模と演算量を必要とするという問題点があった。  従来のリバーシブル符号のもう一つの問題点としては、入力される情報のシンタクスによって逆方向からの復号ができない場合が存在することが挙げられる。例えば図７５（ａ）のシンタクスを持つ情報シンボルの場合、シンボルＡによってシンボルＢの符号が決定される。このようなシンタクスを持つ情報シンボルを符号化した符号化データは、図７５（ｂ）のようにＡが先に復号できていなければＢを復号できないので、逆方向からは復号できないことになる。
【０００９】
また、情報シンボル数が大きい場合に適用される符号化方式として、エスケープ符号を用いた方式がある。このエスケープ符号を用いた方式は、少数の出現頻度の高い情報シンボルに対する符号語を符号語テーブルとして持ち、大多数の出現頻度の低い情報シンボルをエスケープ符号と固定長符号の組み合わせで符号化する方法である。このエスケープ符号を用いた方式においても、順方向にも逆方向にも復号可能な可変長符号の場合と同様に固定長符号の先頭と末尾にエスケープ符号を付ける方式が提案されている。
【００１０】
従来のエスケープ符号を用いた符号化／復号化方式では、符号語テーブルに存在する符号語とエスケープ符号を用いて符号化する符号語を区別するために、何らかの方法で、符号語テーブルに符号語が存在するか検索する必要があった。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、少ない計算量と記憶量で効率的に符号化／復号化することができる順方向にも逆方向にも復号可能な可変長符号化／復号化装置を提供することを目的とする。
【００１２】
つまり、上述したように、従来技術によるリバーシブル符号、すなわち順方向からも逆方向からも復号可能な可変長符号は、順方向からのみ復号可能な可変長符号の符号語の末尾にビットを付加することによってリバーシブル符号を構成するため、無駄なビットパターンが多くなって平均符号長が長くなり、順方向からのみ復号可能な可変長符号と比較して符号化効率の低下が著しくなるという問題があり、また、スタッフィング符号を用いて同期区間を一定区間を単位に設定すると、スタッフィング符号のためにリバーシブル符号の逆方向復号ができなくなるという問題があり、さらに、単純にリバーシブル符号を復号する場合には、通常の順方向のみ復号可能な可変長符号の復号化装置と比較すると、逆方向に復号する分だけ２倍の回路規模と演算量を必要とし、また入力される情報シンボルのシンタクスによっては逆方向からの復号が不可能である場合が存在するという問題点があった。
【００１３】
本発明は、無駄なビットパターンを減らして符号化効率を高め、しかもスタッフィング符号を用いて一定区間を単位として同期区間を設定する場合でも、順方向にも逆方向にも復号可能な可変長符号化／復号化装置を提供することを目的とする。
【００１４】
また、本発明は無駄なビットパターンを減らして符号化効率を高めると共に、逐次的に復号処理を行なうことで回路規模と演算量を削減して効率的に復号できる、順方向にも逆方向にも復号可能な可変長符号化／復号化装置を提供することを目的とする。
【００１５】
さらに、本発明は入力される情報シンボルのシンタクスによらず順方向にも逆方向にも復号可能であって、より誤りに強い可変長符号化／復号化装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の第１構成に係る可変長復号化装置は、順方向にも逆方向にも復号可能な符号語であって、順方向にも逆方向にも復号可能な第１の符号語の先頭および末尾の少なくとも一方に、順方向にも逆方向にも復号可能な第２の符号語を付加して構成された符号語を含む符号語で構成された可変長符号からなり、階層化された情報シンボルに対応する符号語により作成され、かつ多重化された符号化データを復号する可変長復号化装置において、  前記符号化データを階層毎に分離する分離手段と、前記分離手段により分離された符号化データの同期区間を検出する同期区間検出手段と、前記同期区間検出手段により検出された同期区間の符号化データを順方向から復号する順方向復号化手段と、前記同期区間検出手段により検出された同期区間の符号化データを逆方向から復号する逆方向復号化手段と、前記順方向復号化手段および逆方向復号化手段により得られた階層毎の復号結果を合成する合成手段と、を有することを特徴とする。
【００１７】
本発明の第２構成に係る可変長復号化装置は、順方向にも逆方向にも復号可能な符号語であって、順方向にも逆方向にも復号可能な第１の符号語の各ビットの直前および直後の少なくとも一方に、順方向にも逆方向にも復号可能な第２の符号語を付加して構成された符号語を含む符号語で構成された可変長符号からなり、階層化された情報シンボルに対応する符号語により作成され、かつ多重化された符号化データを所定の同期区間毎に復号する可変長復号化装置において、前記多重化された符号化データを階層毎に分離する分離手段と、前記分離手段により分離された符号化データの同期区間を検出する同期区間検出手段と、前記同期区間検出手段により検出された同期区間の符号化データを順方向から復号する順方向復号化手段と、前記同期区間検出手段により検出された同期区間の符号化データを逆方向から復号する逆方向復号化手段と、前記順方向復号化手段および逆方向復号化手段により得られた階層毎の復号結果を合成する合成手段とを有することを特徴とする。
【００１８】
本発明の第３構成に係る可変長復号化装置は、順方向にも逆方向にも復号可能な符号語であって、順方向にも逆方向にも復号可能な第１の符号語の先頭および末尾の少なくとも一方に、順方向にも逆方向にも復号可能な第２の符号語を付加して構成された符号語を含む符号語で構成された可変長符号からなり、階層化された情報シンボルに対応する符号語により作成され、かつ多重化された符号化データを所定の同期区間毎に復号する可変長復号化装置において、前記多重化された符号化データを階層毎に分離する分離手段と、前記分離手段により分離された符号化データの同期区間を検出する同期区間検出手段と、前記同期区間検出手段により検出された同期区間の符号化データを順方向から復号する順方向復号化手段と、前記同期区間検出手段により検出された同期区間の符号化データを逆方向から復号する逆方向復号化手段と、前記順方向復号化手段および逆方向復号化手段により得られた階層毎の復号結果から復号値を判定して最終的な復号結果を出力する復号値判定手段と、前記復号値判定手段により得られた階層毎の最終的な復号結果を合成する合成手段と、を有することを特徴とする。
【００１９】
本発明の第４構成に係る可変長復号化装置は、順方向にも逆方向にも復号可能な符号語であって、順方向にも逆方向にも復号可能な第１の符号語の各ビットの直前および直後の少なくとも一方に、順方向にも逆方向にも復号可能な第２の符号語を付加して構成された符号語を含む符号語で構成された可変長符号からなり、階層化された情報シンボルに対応する符号語により作成され、かつ多重化された符号化データを所定期間毎に復号する可変長復号化装置において、前記多重化された符号化データを階層毎に分離する分離手段と、  前記分離手段により分離された符号化データの同期区間を検出する同期区間検出手段と、  前記同期区間検出手段により検出された同期区間の符号化データを順方向から復号する順方向復号化手段と、前記同期区間検出手段により検出された同期区間の符号化データを逆方向から復号する逆方向復号化手段と、前記順方向復号化手段および逆方向復号化手段により得られた階層毎の復号結果から復号値を判定して最終的な復号結果を出力する復号値判定手段と、前記復号値判定手段により得られた階層毎の最終的な復号結果を合成する合成手段と、を有することを特徴とする。
【００２０】
第１ないし第４構成の何れかの可変長復号化装置において、順方向にも逆方向にも復号可能で、符号語の予め定められた重みによって符号語の区切りが分かるように構成された符号語を含む複数の符号語であって、順方向にも逆方向にも復号可能な第１の符号語の各ビットの直前および直後の少なくとも一方に、順方向にも逆方向にも復号可能な第２の符号語を付加して構成された符号語は、順方向にも逆方向にも復号可能な前記第１の符号語の各ビットの間に、固定長符号の符号語が所定ビットずつ挿入された前記第２の符号語であることを特徴としてもよい。
【００２１】
第１ないし第４構成の何れかの可変長復号化装置において、順方向にも逆方向にも復号可能で、符号語の予め定められた重みによって符号語の区切りが分かるように構成された符号語を含む複数の符号語であって、順方向にも逆方向にも復号可能な第１の符号語の各ビットの直前および直後の少なくとも一方に、順方向にも逆方向にも復号可能な第２の符号語を付加して構成された符号語は、順方向にも逆方向にも復号可能な前記第１の符号語の各ビットの間に、順方向にも逆方向にも復号可能な符号語が所定ビットずつ挿入された前記第２の符号語であることを特徴としてもよい。
【００２２】
ここで、符号語が２進符号である場合には、符号語の最小値はオール“０”であり、最大値はオール“１”であるから、符号語の重みは“１”または“０”の数に相当する。この符号語の重みが予め定められた値になった位置が可変長符号における符号の区切りを示している。
【００２３】
この可変長復号化装置では、符号語の重みという符号語の順序関係に依存しない値によって符号の区切り、つまりは符号長が定められた符号語からなる可変長符号を構成する。したがって、この可変長符号は順方向からも逆方向からも符号の区切りが分かるので、これらの両方向から復号可能なリバーシブル符号となる。また、従来のリバーシブル符号のような順方向にのみ復号可能な可変長符号の末尾にビットを付加する符号と異なり、余分なビットを付加することなく、初めからリバーシブル符号を構成するので、無駄なビットパターンが少なく符号化効率の高い可変長符号が得られる。
【００２４】
さらに、この可変長復号化装置では、一定区間単位の同期区間の設定を行なう場合でも逆方向に復号可能なスタッフィング符号を用いることにより、リバーシブル符号を逆方向に復号してもよい。すなわち、リバーシブル符号を逆方向復号する場合、リバーシブル符号の末尾（逆方向に見たときは先頭）が分かる必要があるが、逆方向に復号可能なスタッフィング符号を用いれば、リバーシブル符号の末尾が分かるので、リバーシブル符号の逆方向復号が実現できることになる。
【００２５】
この可変長復号化装置では、入力された情報シンボルを階層化した上で先と同様の符号化テーブルを用いて可変長符号化を行ない、さらに階層毎に同期区間を設定することによって、入力された情報シンボルのシンタクスによらず順方向にも逆方向にも復号可能であって、より誤りに強い可変長符号化が可能となる。
【００２６】
上記構成の可変長復号化装置において、符号語テーブルに格納された複数の符号語のうち、順方向にも逆方向にも復号可能であって、符号語の予め定められた重みによって符号語の区切りが分かるように構成された符号語は、好ましくは、例えば順方向にも逆方向にも復号可能な第１の符号語の先頭および末尾の少なくとも一方に、順方向にも逆方向にも復号可能な第２の符号語を付加して構成されるか、または順方向にも逆方向にも復号可能な第１の符号語の各ビットの直前および直後の少なくとも一方に、順方向にも逆方向にも復号可能な第２の符号語を付加して構成される。
【００２７】
このように符号語を構成すると、より幅広い情報シンボルの確率分布に対応することができるため、符号化効率が向上し、また符号語のビットパターンの自由度が高い符号設計ができるため、同期符号を用いて同期区間の設定を行なう場合でも、同期符号と符号語のビットパターンが一致することによる擬似同期の問題を回避できる。
【００２８】
また、上記構成の可変長復号化装置において、符号語テーブルに格納された複数の符号語のうち、順方向にも逆方向にも復号可能であって、符号語の予め定められた重みによって符号語の区切りが分かるように構成された符号語は、順方向にも逆方向にも復号可能な符号語の各ビットの間に、固定長符号の符号語が所定ビットずつ挿入された符号語であってもよい。
【００２９】
また、符号語テーブルに格納された複数の符号語のうち、順方向にも逆方向にも復号可能であって、符号語の予め定められた重みによって符号語の区切りが分かるように構成された符号語は、第１の順方向にも逆方向にも復号可能な符号語の各ビットの間に、第２の順方向にも逆方向にも復号可能な符号語が挿入された符号語であってもよい。
【００３０】
このように符号語を構成すると、より幅広い情報シンボルの確率分布に対応することができるため、符号化効率が向上し、また符号語のビットパターンの自由度が高い符号設計ができるため、同期符号を用いて同期区間の設定を行なう場合でも、同期符号と符号語のビットパターンが一致することによる擬似同期の問題を回避できる。
【００３１】
本発明に係る可変長復号化装置は、可変長符号化装置に対応した可変長復号化装置であり、順方向にも逆方向にも復号可能であって、所定の同期区間毎に逆方向に復号可能なスタッフィング符号が挿入された符号語を含む符号語で構成された可変長符号からなる符号化データを復号する可変長復号化装置において、符号化データの同期区間を検出する同期区間検出手段と、この同期区間検出手段により検出された同期区間の符号化データを順方向から復号する順方向復号化手段と、同期区間検出手段により検出された同期区間の符号化データを逆方向から復号する逆方向復号化手段とを有することを特徴とする。
【００３２】
この可変長復号化装置は、順方向復号化手段および逆方向復号化手段の復号結果から復号値を判定する復号値判定手段を有してもよい。
【００３３】
ここで、同期区間検出手段は、例えばスタッフィング符号を逆方向から復号することで、符号化データのビット数を検出する。
【００３４】
また、順方向復号化手段および逆方向復号化手段の少なくとも一方は、可変長符号の符号語テーブルに存在しない符号語が符号化データに出現したとき、該符号語を誤りとして検出する可変長符号の符号語テーブルに存在しない符号語が符号化データに出現によって誤りを検出するか、あるいは復号した符号化データのビット数が伝送されてきた符号化データのビット数と一致しない場合、誤りと検出する。
【００３５】
また、順方向復号化手段および逆方向復号化手段の少なくとも一方は、符号化データを復号して得られた復号値が不適な場合に、復号処理の誤りとして検出する。
【００３６】
一方、復号値判定手段は、例えば順方向復号化手段および逆方向復号化手段の少なくとも一方で誤りが検出された場合は、順方向復号化手段および逆方向復号化手段の復号結果のうち正しいと推定される復号結果を使用し、いずれの復号結果でも復号できなかった部分は放棄する。
【００３７】
具体的には、
（ａ）前記順方向復号化手段および逆方向復号化手段の両方で前記誤りが検出され、かつそれらの誤り検出位置が交差しない場合は、誤りが検出されなかった復号結果のみ復号値として使用し、
（ｂ）前記順方向復号化手段および逆方向復号化手段の両方で前記誤りが検出され、かつそれらの誤りが検出され、かつそれらの誤りが検出された位置が交差する場合は、順方向復号化手段で誤りが発見された位置の直前までの符号語に対する復号値は順方向の復号結果を使用し、それ以後の符号語に対する復号値は逆方向の復号結果を使用し、
（ｃ）前記順方向復号化手段および逆方向復号化手段のいずれか一方のみで前記誤りが検出された場合は、該誤りが検出された位置の直前までの符号語に対する復号値は順方向の復号結果を使用し、それ以後の符号語に対する復号値は逆方向の復号結果を使用し、
（ｄ）前記順方向復号化手段および逆方向復号化手段で同一の符号語について前記誤りが検出された場合は、該誤りが検出された位置の符号語に対する復号値を放棄し、それ以後の符号語に対する復号値は逆方向の復号結果を使用する。
【００３８】
なお、復号値判定手段は、順方向復号化手段および逆方向復号化手段の少なくとも一方で誤りが検出された場合は、誤りが入っている可能性のある部分を全て放棄する構成でもよい。
【００３９】
この可変長復号化装置では、可変長符号の符号語の誤り検出機能を有する順方向復号化手段および逆方向復号化手段の復号結果から復号値を判定する際、順方向復号化手段および逆方向復号化手段での誤り検出結果に応じて、符号化データの復号値を判定することにより、上記のような可変長符号化装置から出力されるリバーシブル符号を伝送路誤りに対して効果的に復号することが可能となる。
【００４０】
また、スタッフィング符号として逆方向に復号可能な符号を用いているため、スタッフィング符号を用いて一定区間単位の同期区間の設定が行なわれている場合でも、リバーシブル符号の逆方向復号が可能となる。
【００４１】
本発明に係る可変長復号化装置は、順方向にも逆方向にも復号可能な可変長符号からなり、所定の同期区間毎に逆方向に復号可能なスタッフィング符号が挿入された符号化データを復号する可変長復号化装置において、符号化データの同期区間を検出する同期区間検出手段と、この同期区間検出手段により検出された同期区間の符号化データを復号する順方向および逆方向の両方向の復号が可能な双方向復号化手段とを有することを特徴とする。
【００４２】
ここで、双方向復号化手段は、順方向の復号処理および逆方向の復号処理の少なくとも一方において、符号化データを復号して得られた復号値が不適な場合、復号処理の誤りとして検出する。
【００４３】
双方向復号化手段の復号方法としては、以下の方法を用いることができる：
（ａ）順方向の復号処理を行なった後、符号化データの末尾より逆方向の復号処理を行なう；
（ｂ）順方向の復号処理で誤りを検出した場合に、該順方向の復号処理を中止し、符号化データの末尾より逆方向の復号処理を行なう；
（ｃ）順方向の復号処理で誤りを検出した場合に、該誤り位置より任意の距離離れた位置から順方向の復号処理を再開する；
（ｄ）順方向の復号処理で誤りを検出した場合に、該誤り位置より任意の距離離れた位置から該誤り位置まで逆方向の復号処理を行なう；
（ｅ）順方向の復号処理において符号化データの末尾で誤りを検出した場合に限り、逆方向の復号処理を行なう。
【００４４】
この可変長復号化装置においても、順方向復号化手段および逆方向復号化手段の復号結果から復号値を判定する復号値判定手段を有してもよい。
【００４５】
この可変長復号化装置では、可変長符号の符号語の誤り検出機能を有する双方向復号化手段で復号処理を行なう際に、順方向復号処理での誤り検出結果に応じて符号化データの復号処理を切り替えることにより、順方向と逆方向の復号処理手段を共用できることから、回路規模や演算量を大幅に増加させることなく、上記のような可変長符号化装置から出力されるリバーシブル符号を伝送路誤りに対して効果的に復号することが可能となる。
【００４６】
本発明に係る可変長復号化装置は、可変長符号化装置に対応した可変長復号化装置であり、順方向にも逆方向にも復号可能な符号語を含む符号語で構成された可変長符号からなり、階層化された情報シンボルに対応する符号語により作成され、かつ多重化された符号化データを所定の同期区間毎に復号する可変長復号化装置において、多重化された符号化データを階層毎に分離する分離手段と、この分離手段により分離された符号化データの同期区間を検出する同期区間検出手段と、この同期区間検出手段により検出された同期区間の符号化データを順方向から復号する順方向復号化手段と、同期区間検出手段により検出された同期区間の符号化データを逆方向から復号する逆方向復号化手段と、これら順方向復号化手段および逆方向復号化手段により得られた階層毎の復号結果を合成する合成手段とを有することを特徴とする。
【００４７】
この可変長復号化装置においても、順方向復号化手段および逆方向復号化手段の復号結果から復号値を判定する復号値判定手段を有してもよい。
【００４８】
この可変長復号化装置を対応する構成の可変長符号化装置と合わせて用いることによって、情報シンボルのシンタクスによらず順方向にも逆方向にも復号可能であって、より誤りに強い可変長符号化／復号化装置を実現することができる。
【００４９】
また、本発明に係る可変符号化／復号化装置が入出力可能な可変長符号化データを記録した記録媒体において、順方向にも逆方向にも復号可能であって、符号語の予め定められた重みによって符号語の区切りがわかるように構成された符号語を含む符号化データと、前記符号化データに所定の同期区間毎に逆方向に復号可能なスタッフィング符号を挿入したデータを記録した読み取り可能であることを特徴とする。
【００５０】
さらに、本発明に係る可変長符号化／復号化装置を適応した画像符号化／復号化装置でブロック単位の直交変換を行なって生成され得る変換係数データを記録した記録媒体において、前記変換係数データは、前記画像符号化／復号化装置がもつ複数の符号化モード毎に、順方向にも逆方向にも復号可能である複数の符号語を、ブロックの最後以外の直交変換係数のうち出現頻度の高いものに対してそれぞれ対応させたデータと、前記画像符号化／復号化装置の複数の符号化モードに対して共通に設けられて、順方向にも逆方向にも復号可能で複数の符号語を、ブロックの最後の直交変換係数のうち出現頻度の高いものに対してそれぞれ対応させたデータと、出現頻度の低い変換係数データを固定長符号で記述し、その先頭と末尾に順方向にも逆方向にも復号可能な符号語を付加したデータと、前記符号化データに所定の同期区間毎に逆方向に復号可能なスタッフィング符号を挿入したデータを記録した読み取り可能であることを特徴とする。
【００５１】
また、本発明に係る可変符号化／復号化装置が入出力可能な可変長符号化データを記録した記録媒体は、順方向にも逆方向にも復号可能であって、符号語の予め定められた重みによって符号語の区切りがわかるように構成された符号語を含む符号化データと、前記符号化データに所定の同期区間毎に逆方向に復号可能なスタッフィング符号を挿入したデータと、を記録することを特徴としている。
【００５２】
さらに、本発明に係る画像符号化／復号化装置でブロック単位の直交変換を行なって生成され得る変換係数データを記録した記録媒体は、前記変換係数データが前記画像符号化／復号化装置がもつ複数の符号化モード毎に、順方向にも逆方向にも復号可能である複数の符号語を、ブロックの最後以外の直交変換係数のうち出現頻度の高いものに対してそれぞれ対応させたデータと、前記画像符号化／復号化装置の複数の符号化モードに対して共通に設けられ、順方向にも逆方向にも復号可能である複数の符号語を、ブロックの最後の直交変換係数のうち出現頻度の高いものに対してそれぞれ対応させたデータと、出現頻度の低い変換係数データを固定長符号で記述し、その先頭と末尾に順方向にも逆方向にも復号可能な符号語を付加したデータと、前記符号化データに所定の同期区間毎に逆方向に復号可能なスッフィング符号を挿入したデータと、を記録することを特徴としている。
【００５３】
また、複数の情報シンボルに対して該情報シンボルの生起確率に応じた符号長を有する符号語をそれぞれ割り当て、入力された情報シンボルに対応した符号語を符号化データとして出力する可変長符号化装置で用いられるプログラムを記録した記録媒体は、順方向にも逆方向にも復号可能であって、符号語の予め定められた重みによって符号語の区切りが分かるように構成された符号語を含む複数の符号語を情報シンボルにそれぞれ対応させた符号語テーブルを格納する手順と、前記符号語テーブルから前記入力された情報シンボルに対応する符号語を選択する手順と、前記符号語を選択する手順により選択された符号語を用いて所定の同期区間毎に符号化データを作成すると共に、逆方向に復号可能なスタッフィング符号を挿入することにより前記符号語に同期区間を設定する手順と、を少なくとも含むプログラムを記録することを特徴としている。
【００５４】
さらに、順方向にも逆方向にも復号可能な符号語を含む符号語で構成された可変長符号からなり、所定の同期区間毎に逆方向に復号可能なスタッフィング符号が挿入された符号化データを復号する可変長復号化装置で用いられるプログラムを記録した記録媒体は、前記符号化データの同期区間を検出する手順と、前記手順により検出された同期区間の符号化データを順方向から復号する手順と、前記同期区間を検出する手順により検出された同期区間の符号化データを逆方向から復号する手順と、を少なくとも含むプログラムを記録することを特徴とする。
【発明の効果】
【００５５】
以上、説明したように本発明によれば、より少ない計算量と記憶量で効率的に符号化／復号化することができる順方向にも逆方向にも復号可能な可変長符号化／復号化装置を提供することができる。
【００５６】
また、本発明によれば無駄なビットパターンを減らして符号化効率を高め、しかもスタッフィング符号を用いて一定区間を単位に同期区間を設定する場合でも、順方向にも逆方向にも復号可能な可変長符号化／復号化装置を提供することができる。
【００５７】
また、本発明における符号語の構成方法によれば、より幅広い情報シンボルの確率分布に対応でき、従来適用することのできなかったような情報シンボル数が大きな符号化に対しても適用が可能となる。具体的には、動画像符号化／復号化システムにも適用することが可能であり、誤りに強い動画像符号化／復号化システムを提供することができる。
【００５８】
しかも、この符号語の構成法によれば符号化効率が向上し、また符号語のビットパターンの自由度が高い符号設計ができるため、同期符号を用いて同期区間の設定を行なう場合でも、同期符号と符号語のビットパターンが一致することによる疑似同期の問題を回避することができる。
【００５９】
さらに、本発明によれば順方向および逆方向の復号結果から復号値を判定する際、順方向および逆方向復号を行なう際の誤り検出結果に応じて、符号化データの復号値を判定することにより、リバーシブル符号を伝送路誤りに対して効果的に復号することが可能となる。
【００６０】
また、本発明によれば可変長符号の符号語の誤り検出機能を有する双方向復号化手段で復号処理を行なう際に、順方向復号処理での誤り検出結果に応じて符号化データの復号処理を切り替えることで、順方向と逆方向の復号処理を共用することができることから、回路規模や演算量を大幅に増加させることなく、伝送路誤りに対して効果的に復号を行なうことができる。
【００６１】
さらに、本発明によれば符号化側で情報シンボルを重要度に応じて階層化した上で可変長符号化を行ない、同期区間毎に階層毎の符号化データを作成し、かつ階層毎の符号化データを多重化することにより、情報シンボルのシンタクスによらず順方向にも逆方向にも復号可能であって、より誤りに強い可変長符号化／復号化を行なうことが可能となる。
【発明を実施するための最良の形態】
【００６２】
以下、図面を参照して本発明の実施形態を説明する。
【００６３】
（第１実施形態）
図１は、本発明の第１実施形態の可変長符号化／復号化装置の構成を示すブロック図である。
【００６４】
第１実施形態の可変長符号化／復号化装置は、大きく分けて符号語テーブル作成部１０１、符号化部１１３、伝送系または蓄積系１０５および復号化部１１４からなる。まず、これら各部の機能について簡単に説明すると、符号語テーブル作成部１０１は情報シンボルの生起確率に基づいて符号語テーブルを作成し、符号化部１１３内の符号語テーブル１０２と、復号化部１１４内の順方向符号語テーブル１１１および逆方向符号語テーブル１１２に符号語を送る。
【００６５】
符号化部１１３は、情報シンボルを可変長符号に符号化し、その可変長符号を符号化データとして伝送系または蓄積系１０５へ出力する。復号化部１１４は、伝送系または蓄積系１０５を介して入力されてきた符号化データを復号して元の情報シンボルを再生する。
【００６６】
次に、この第１実施形態の各部の詳細な構成と動作を説明する。  
符号化部１１３において、入力された情報シンボルは符号化器１０３に入力される。符号化部１１３は、符号語テーブル１０２と符号化器１０３および同期区間設定部１０４により構成される。符号語テーブル１０２は、符号語テーブル作成部１０１によって予め作成された情報シンボルと可変長符号の符号語とを対応させて格納している。符号化器１０３は、符号語テーブル１０２に格納されている符号語の中から、入力された情報シンボルに対応した符号語を選択して出力する。同期区間設定部１０４では、符号化器１０３が選択した符号語を同期区間毎にまとめ、さらに順方向にも逆方向にも復号可能なスタッフィング符号を挿入して、同期区間毎に符号化データを出力する。この符号化データは、伝送系または蓄積系１０５を通して復号化部１１４に送られる。
【００６７】
前記復号化部１１４は、同期区間検出部１０６、バッファ１０７、順方向復号化器１０８、逆方向復号化器１０９、復号値判定部１１０、順方向復号化テーブル１１１および逆方向復号化テーブル１１２により構成される。復号化部１１４では、伝送系または蓄積系１０５より入力された符号化データから同期区間検出部１０６で符号化データの同期区間を検出し、符号化データをバッファ１０７に蓄積する。順方向復号化器１０８では、バッファ１０７に蓄積された符号化データの先頭から復号を開始する。逆方向復号化器１０９では、バッファ１０７に蓄積された符号化データの末尾から復号を開始する。
【００６８】
順方向復号化器１０８では、符号化データに順方向符号語テーブル１１１に存在しないビットパターンが出現した場合、およびバッファ１０７のビット数と異なるビット数の符号化データが復号された場合、誤り検出と判定する。同様に逆方向復号化器１０９でも、符号化データに逆方向符号語テーブル１１２に存在しないビットパターンが出現した場合、およびバッファ１０７のビット数と異なるビット数の符号化データが復号された場合には、誤り検出と判定する。
【００６９】
復号値判定部１１０は、順方向復号化器１０８によって得られた復号結果（順方向復号結果という）と、逆方向復号化器１０９によって得られた復号結果（逆方向復号器という）から復号値を判定し、最終的な復号結果を出力する。図２は符号語テーブル作成部１０１の構成を示すブロック図である。符号選択部２１は情報シンボルの生起確率の情報が入力され、選択可能な符号系の中から最も平均符号長の小さいものを選択して、選択結果を符号語構成部２２に送る。符号語構成部２２では、符号語選択部２１で選択された符号の符号語を構成する。
【００７０】
符号語構成部２２で構成される符号語は、符号語の予め定められた重みにより符号の区切りが分かるように構成された順方向にも逆方向にも復号可能な可変長符号（以下、リバーシブル符号という）であり、例えば特願平７−８９７７２、特願平７−２６０３８３に記載された符号である。
【００７１】
この第１実施形態においては、より幅広い確率分布に対応し、符号語のビットパターンの自由度を上げるために、符号語構成部２２における符号語の構成方法として以下に示す方法を用いている。
【００７２】
図３は、符号語構成部２２におけるリバーシブル符号の符号語の第１の構成方法を示している。まず、図３の左側に示すように、符号長が短い順にそれぞれの系列の重み（この場合、“１”の数）が一定で異なる重みを持つ２つの２進系列（この場合、重みは０個と１個）を作成する。次に、図３の中央に示すように、この２進系列のそれぞれ先頭と末尾に“１”を追加して２進系列のビットを反転させた後、これら２つの２進系列を図３の右側に示すように合成する。
【００７３】
この可変長符号では、各符号の最初にあるシンボルの個数をカウントすることによって符号長が分かる。図３の例では、最初が“０”ならば、“０”が２つ出現したら符号の区切り（符号長）が分かり、最初が“１”ならば、“１”が３つ出現したら符号の区切りが分かる符号構成となっている。また、この図３に示す可変長符号は、全ての情報シンボルＡ〜Ｊに対応する符号語が図４（ａ）に示す順方向の復号木の葉にも、図４（ｂ）の逆方向の復号木の葉にも割り当てられることから、順方向にも逆方向にも復号可能であることが分かる。
【００７４】
図５は、符号語構成部２２におけるリバーシブル符号の符号語の第２の構成方法を示している。まず、図５の左側に示すように、第１のリバーシブル符号と第２のリバーシブル符号を用意する。次に、図５の中央に示すように、第１のリバーシブル符号の全ての符号語の末尾に、第２のリバーシブル符号の最初の１つの符号語を追加する。以下、同様に第１のリバーシブル符号の全ての符号語の末尾に、第２のリバーシブル符号の全ての符号語を１つずつ追加した後、図５の右側に示すように並べ替えを行なって、新たなリバーシブル符号を構成する。このような構成方法によって、第１のリバーシブル符号の符号語数Ａ（この例ではＡ＝９）と第２のリバーシブル符号の符号語数Ｂ（この例ではＢ＝３）を乗算した数Ａ×Ｂ個（この例では２７個）の新たなリバーシブル符号を構成することができる。
【００７５】
この構成方法によるリバーシブル符号の復号に当たっては、順方向から復号する時は、まず第１のリバーシブル符号を復号し、次に第２のリバーシブル符号を復号するようにする。逆方向から復号する時は、まず第２のリバーシブル符号を復号し、次に第１のリバーシブル符号を復号する。従って、順方向にも逆方向にも復号可能であることが分かる。
【００７６】
なお、この例では第１のリバーシブル符号の符号語の末尾に第２のリバーシブル符号を追加したが、第１のリバーシブル符号の先頭に、第２のリバーシブル符号を追加してもよく、また、第１のリバーシブル符号の末尾と先頭の両方に固定長符号を追加しても構わない。また、この例では第１のリバーシブル符号と第２のリバーシブル符号は異なるものを用いたが、同一のものを使用しても構わない。さらに、本実施形態では第１のリバーシブル符号も第２のリバーシブル符号も可変長符号を用いたが、どちらかを固定長符号に変更しても構わない。
【００７７】
図６は、符号語構成部２１におけるリバーシブル符号の第３の符号構成方法を示している。まず、図６の左側に示すように、可変長のリバーシブル符号と固定長のリバーシブル符号を用意する。次に、図６の右側に示すように、リバーシブル符号の符号語の各ビットの直後に固定長のリバーシブル符号を追加する。この構成方法により、Ｋビットの固定長のリバーシブル符号を用いた場合、Ｈビットの符号語を（Ｋ＋１）Ｈビットにして符号語数を２ＫＨ倍にすることができる。なお、この例ではリバーシブル符号の符号語の各ビット毎の直後に固定長符号を追加したが、各ビットの直前に固定長符号を追加してもよく、また直前と直後の両方に固定長符号を追加しても構わない。
【００７８】
次に、図７を用いて同期区間設定部１０４における符号化データの同期区間の設定方法の具体例について説明する。図７（ａ）は、同期符号を挿入することにより同期区間を設定する方法を示している。この場合、同期区間検出部１０６では符号化データの最初と最後の同期符号を検出することにより、同期区間を検出することができる。ここで、同期符号の挿入可能位置をある一定区間単位（この場合は、Ｍビット単位）に設定するようにするため、符号化データの末尾に１〜Ｍビットのスタッフィング符号を挿入している。
【００７９】
図７（ｂ）は、符号化データの先頭に同期区間の符号量を記述する方法、言い換えれば同期区間の終了位置を示すポインタを挿入する方法を示している。この場合、同期区間検出部１０６では、まず符号化データの先頭の同期区間の符号量の記述を復号することで、同期区間を検出することができる。そして、符号量の記述の単位はＭビット単位となっているため、符号化データの末尾に１〜Ｍビットのスタッフィング符号を挿入する。
【００８０】
ここで、図７（ａ）（ｂ）で用いられるスタッフィング符号は、少なくとも逆方向に復号可能な構成となっていることが特徴である。図８は、このようなスタッフィング符号の具体例を示した図であり、このスタッフィング符号は順方向にも逆方向にも復号可能に構成されている。このスタッフィング符号の場合、１ビットの時は“１”が出現すればそれが区切りで、それ以外では“０”が２度出現すると区切りが分かるような、順方向にも逆方向にも復号可能な可変長符号となっていて、同期区間の最後からも逆方向に復号可能となっていると同時に、符号化データのビット数を計算することが可能になっている。符号化データのビット数の計算結果は、後述する誤り検出に用いられる。
【００８１】
なお、この例ではスタッフィング符号を符号化データの末尾に挿入したが、符号化データの先頭でも符号化データの内部でもよく、同期区間の内部で文法上特に問題ない位置ならば、その挿入位置はどこでもよい。また、スタッフィング符号は図９に示すような逆方向にのみ復号可能な符号でもよい。この符号の場合は、逆方向から復号して“０”が出現したら区切りになるような符号となっている。
【００８２】
次に、図１０を用いて、復号値判定部１１０における復号値の判定方法について説明する。図１０（ａ）に示すように、順方向復号結果と逆方向復号結果で誤りが検出される復号語の位置（誤り検出位置）が交差しない場合は、誤りが検出されなかった復号結果のみを復号値として使用し、２つの誤り検出位置の復号結果は復号値として使用せず放棄する。また、図１０（ｂ）に示すように、順方向復号結果と逆方向復号結果の誤り検出位置が交差する場合は、順方向復号結果の誤り検出位置までの復号値は順方向復号結果を使用し、それ以降の部分は逆方向復号結果を復号値として使用する。
【００８３】
なお、逆方向復号結果を優先して、逆方向復号結果の誤り検出位置までの復号値としては逆方向復号結果を使用し、それ以前の部分は順方向復号結果を復号値として使用してもよい。
【００８４】
また、図１０（ｃ）に示すように、順方向復号結果および逆方向復号結果のうち片方向の復号結果にしか誤りが検出されない場合（この例では、順方向復号結果のみ誤りが検出されている）は、誤り検出位置までの復号値は、順方向復号結果を使用し、それ以降の部分は逆方向復号結果を復号値として使用する。さらに、図１０（ｄ）に示すように、同一の符号語について順方向復号結果および逆方向復号結果の両方に誤りが検出される場合は、誤り検出位置の符号語に対する復号値を放棄し、それ以後の符号語に対する復号値として、逆方向復号結果を使用する。なお、順方向復号化器１０８および逆方向復号化器１０９での誤り判定に際しては、符号語として存在しないビットパターンが生じた場合、検出位置はその場所とし、前記の判定方法で誤りが検出されない場合で、復号したビット数が同期区間内の符号化データのビット数と一致しない場合は、復号化の最初の位置を誤り検出位置とする。
【００８５】
この第１実施形態では、４つの誤り検出位置のパターンによる復号値判定方法の１つの例を示したが、復号値判定部は順方向復号結果および逆方向復号結果の両方あるいはいずれか一方で誤りが検出された場合は、正しいと推定される順方向復号結果もしくは逆方向復号結果を使用し、いずれの復号結果でも復号できなかった部分は放棄すれば、どのような方法でもよいことはいうまでもない。
【００８６】
（第２実施形態）
次に、本発明の第２実施形態として本発明による可変長符号化／復号化装置の応用例について説明する。図１１は、本発明の第２実施形態に係る可変長符号化／復号化装置が組み込まれた動画像符号化／復号化システムの概念図である。まず、動画像符号化器７０９においては、情報源符号化器７０２で符号化されたデータに対して動画像多重化器７０３で可変長符号化と多重化等が行なわれ、送信バッファ７０４で平滑化された後、符号化データとして伝送系または蓄積系７０５に送り出される。符号化制御部７０１は、送信バッファ７０４のバッファ量を考慮して、情報源符号化器７０２と動画像多重化器７０３の制御を行なう。
【００８７】
一方、動画像復号化器７１０においては、伝送系または蓄積系７０５からの符号化データが受信バッファ７０６に溜められ、動画像多重化分離器７０７で符号化データの多重化分離と可変長復号化が行なわれた後、情報源復号化器７０８に送られ、最終的に動画像情報が復号化される。ここで、動画像多重化器７０３および動画像多重化分離器７０７には第１実施形態で説明した可変長符号化／復号化装置が適用されている。
【００８８】
図１２は、第２実施形態における動画像多重化器７０３および動画像多重化分離器７０７における動画像符号化方式のシンタクスを示している。マクロブロックのモード情報、動きベクトル情報およびＩＮＴＲＡ  ＤＣ（フレーム内符号化におけるＤＣＴ係数の直流成分）の情報を上位階層とし、ＩＮＴＲＡ  ＤＣ以外のＤＣＴ係数情報を下位階層として下位階層にリバーシブル符号を適用している。
【００８９】
図１３（ａ）（ｂ）は、この第２実施形態における動画像多重化器７０３および動画像多重化分離器７０７の構成を示すブロック図である。
【００９０】
図１３（ａ）に示す動画像多重化器７０３においては、図１１中の情報源符号化器７０２で符号化されたデータのうち、マクロブロックのモード情報、動きベクトル情報およびＩＮＴＲＡ  ＤＣなどの情報を上位階層とし、上位階層可変長符号化器９０１で通常の可変長符号化が行なわれ、多重化器９０３に送られる。また、情報源符号化器７０２で符号化されたデータのうち、ＩＮＴＲＡ  ＤＣ以外のＤＣＴ係数は下位階層可変長符号化器９０３においてリバーシブル符号で符号化され、多重化器９０３に送られる。多重化器９０３では、上位階層の符号化データと下位階層の符号化データを多重化し、送信バッファ７０４に送る。
【００９１】
一方、図１３（ｂ）に示す動画像復号化器７０７においては、上位階層の符号化データと下位階層の符号化データが多重化分離部９０４により分離され、これらが上位階層可変長復号化器９０５および下位階層可変長復号化器９０６によりそれぞれ可変長復号化される。
【００９２】
図１４〜図１６、図１７〜図１８および図１９は、下位階層可変長符号化器９０２で用いられる符号語テーブルの一例である。この符号語テーブルに格納された符号は、前述した符号語構成部２２におけるリバーシブル符号の符号語の第１の構成方法によって作成した符号を末尾に２ビットの固定長符号を追加した符号である。
【００９３】
情報源符号化器７０２では、量子化後の８×８のＤＣＴ係数のブロック毎にブロック内のスキャンを行ない、ＬＡＳＴ（０：ブロックの最後でない非零係数、１：ブロックの最後の非零係数）、ＲＵＮ（非零係数までの零ランの数）およびＬＥＶＥＬ（係数の量子化値）を求め、動画像多重化部７０３に送る。
【００９４】
動画像多重化部７０３内の下位階層可変長符号化器９０２は、図１４〜図１６に示すＩＮＴＲＡ（フレーム内符号化）およびＩＮＴＥＲ（フレーム間符号化）の非ＬＡＳＴ係数、ＲＵＮ、ＬＥＶＥＬにリバーシブル符号の符号語（ＶＬＣ_ ＣＯＤＥ）を対応させた非ＬＡＳＴ係数の符号語テーブルと、図１７〜図１８に示すＩＮＴＲＡおよびＩＮＴＥＲのＬＡＳＴ係数、ＲＵＮ、ＬＥＶＥＬにリバーシブル符号の符号語（ＶＬＣ_ ＣＯＤＥ）を対応させたＬＡＳＴ係数の符号語テーブルを持っている。
【００９５】
そして、モード情報に基づいて、ＩＮＴＲＡの時はＩＮＴＲＡの非ＬＡＳＴ係数とＬＡＳＴ係数の符号語テーブル、ＩＮＴＥＲの時はＩＮＴＥＲの非ＬＡＳＴ係数とＬＡＳＴ係数の符号語テーブルを選択して符号化を行なう。符号語の最終ビットの“ｓ”は、ＬＥＶＥＬの符号を表し、“ｓ”が“０”の時、ＬＥＶＥＬの符号は正、“ｓ”が“１”の時、ＬＥＶＥＬの符号は負である。
【００９６】
また、この符号語テーブルに存在しない係数は、図２０に示すようにＬＡＳＴ係数かどうかの１ビットとＲＵＮとＬＥＶＥＬの絶対値を固定長符号化し、この固定長符号部の先頭に２つのエスケープ符号のうち、“００００１”を付加し、末端にもエスケープ符号を付加する。図１９は、エスケープ符号の符号語テーブルであり、エスケープ（ＥＳＣＡＰＥ）符号として用いられるＶＬＣ_ ＣＯＤＥの最終ビットの“ｓ”はＬＥＶＥＬの符号を表し、“ｓ”が“０”ならばＬＥＶＥＬは正、“１”ならばＬＥＶＥＬは負である。
【００９７】
図２１はこの符号語テーブルを用いた時の零ランが最大になる場合を示している。通常、同期符号は零ランが続いた後に“１”を付加するビットパターンが選択されている。例えばＩＴＵ−Ｔ  Ｈ．２６３では１６個の“０”の後に“１”が付くようなビットパターンが同期符号となっている。ＤＣＴ係数の可変長符号化では、零ランが最大になるのを、エスケープ符号を使う係数で、ＬＥＶＥＬが＋６４で、次もエスケープ符号を使う符号が出現する場合で、１５個“０”が連続するのが最大となる。ゆえに“０”が１６個連続するようなビットパターンを同期符号にすれば、擬似同期符号が生じるおそれはない。
【００９８】
復号値判定部１１０では、順方向復号化器１０８により得られた復号結果（順方向復号結果という）と、逆方向復号化器１０９により得られた復号結果（逆方向復号結果という）から復号値を判定し、最終的な復号結果を出力する。
【００９９】
順方向復号化器１０８および逆方向復号化器１０９での誤り判定は、符号語として存在しないビットパターンが生じた場合、およびチェックビット等で誤りを検出した場合、検出位置はその場所とし、前記の判定方法で誤りが検出されない場合で、復号したビット数が同期区間内の符号化データのビット数と一致しない場合は、復号化の最初の位置を誤り検出位置とする。
【０１００】
図２２は、下位階層の復号値判定方法を示している。まず、図２２（ａ）に示すように、順方向復号結果と逆方向復号結果で誤りが検出されるマクロブロック（ＭＢ）の位置（誤り検出位置）が交差しない場合は、誤りが検出されなかったマクロブロックの復号結果のみを復号値として使用し、二つの誤り検出位置の復号結果は復号値として使用せず、上位階層のモード情報の復号結果に基づいて、ＩＮＴＲＡマクロブロック（フレーム内符号化されたマクロブロック）については前フレームをそのまま表示するように、ＩＮＴＥＲマクロブロック（フレーム間符号化されたマクロブロック）については前フレームより動き補償のみで表示するように、上位階層の復号結果を書き換える。
【０１０１】
また、図２２（ｂ）に示すように、順方向復号結果と逆方向復号結果の誤りの検出位置が交差する場合は、順方向復号の結果で誤りが検出されたマクロブロックまでの復号値は、順方向復号結果を使用し、それ以降の部分は、逆方向復号結果を復号値として使用する。なお、逆方向復号結果を優先して、逆方向復号の結果で誤りが検出されたマクロブロックまでの復号値は、逆方向復号結果を使用し、それ以前の部分は、順方向復号結果を復号値として使用してもよい。
【０１０２】
また、図２２（ｃ）に示すように、順方向復号結果および逆方向復号結果のうち片方向の復号結果にしか誤りが検出されない場合（この例では、順方向復号結果のみ誤りが検出されている）は、誤り検出位置以降のマクロブロックに対する復号値は逆方向の復号結果を使用する。さらに、図２２（ｄ）に示すように、同一のマクロブロックで順方向復号結果および逆方向復号結果の両方に誤りが検出される場合は、誤り検出位置のマクロブロックの復号値は放棄し、復号値として使用せずに、上位階層のモード情報の復号結果に基づいて、ＩＮＴＲＡマクロブロックについては前フレームをそのまま表示するように、ＩＮＴＥＲマクロブロックについては前フレームよりの動き補償のみで表示するように、上位階層の復号結果を書き換え、それ以降のマクロブロックに対する復号値は逆方向の復号結
果を使用する。
【０１０３】
なお、図２２の復号値判定方法では、マクロブロックを単位に復号値の判定を行なったが、ブロックの単位あるいは符号語の単位で判定を行なってもよい。また、この第２実施形態ではＤＣＴ係数の可変長符号化に本発明を適用したが、可変長符号化を行なう場合には、他の情報シンボルについても適用することができることは言うまでもない。
【０１０４】
（第３実施形態）
次に、図２３を参照しながら本発明の第３実施形態に係る可変長符号化／復号化装置について説明する。
【０１０５】
この第３実施形態に係る可変長符号化／復号化装置は、大きく分けて符号語テーブル作成部１０１、符号化部１１３、伝送系または蓄積系１０５および復号化部１２１からなる。まず、これら各部の機能について簡単に説明すると、符号語テーブル作成部１０１は情報シンボルの生起確率に基づいて符号語テーブルを作成し、符号化部１１３内の符号語テーブル１０２と、復号化部１２１内の順方向符号語テーブル１１１および逆方向符号語テーブル１１２に符号語を送る。符号化部１１３は、情報シンボルを可変長符号に符号化し、その可変長符号を符号化データとして伝送系または蓄積系１０４へ出力する。復号化部１２１は、伝送系または蓄積系１０５を介して入力されてきた符号化データを復号して元の情報シンボルを再生する。
【０１０６】
次に、第３実施形態の各部の詳細な構成と動作を説明する。符号化部１１３は図１に示した第１実施形態と同様である。すなわち、符号化部１１３において、入力された情報シンボルは符号化器１０３に入力される。符号語テーブル１０２は、符号語テーブル作成部１０１によって予め作成された情報シンボルと可変長符号の符号語とを対応させて格納している。符号化器１０３は符号語テーブル１０２に格納されている符号語の中から、入力された情報シンボルに対応した符号語を選択する。同期区間設定部１０４では、符号化器１０３が選択した符号語を同期区間毎にまとめ、さらに順方向にも逆方向にも復号可能なスタッフィング符号を挿入して、同期区間毎に符号化データを出力する。この符号化データは、伝送系または蓄積系１０４を通して復号化部１２１に送られる。
【０１０７】
復号化部１２１は、同期区間検出部１０６、バッファ１０７、符号化データ切替器１２２、復号化器１２４、符号語テーブル切替器１２５、復号値判定部１１０、順方向復号化テーブル１１１および逆方向復号化テーブル１１２により構成される。符号化データ切替器１２２および符号語テーブル切替器１２５は、復号化器１２４により制御されて切り替わる。
【０１０８】
復号化部１２１では、伝送系または蓄積系１０５より入力された符号化データから同期区間検出部１０６で符号化データの同期区間を検査しながら、符号化データを復号化器１２４へ入力する。その際、符号化データをバッファ１０７にも蓄積する。復号化器１２４は、入力された符号化データの復号（順方向復号化という）を開始する。ここで、復号化器１２４は符号化データに順方向符号語テーブル１１１に存在しないビットパターンが出現した場合、およびバッファ１０７のビット数と異なるビット数の符号化データが復号された場合、誤り検出と判定する。
【０１０９】
誤り検出と判定された場合、復号化器１２４は符号語テーブル切替器１２３で符号語テーブルを順方向符号語テーブル１１１から逆方向符号語テーブル１１２に切り替えると同時に、符号化データ切替器１２２により復号化器１２４への入力をバッファ１０７側に切り替える。バッファ１０７は、同期区間検出部１０６により次の同期を検出した場合、蓄積した符号化データを末尾から読み出し、復号化器１２４へ出力する。復号化器１２４では、入力された符号化データの復号（逆方向復号化という）を開始する。ここで、復号化器１２４は順方向復号化と同様に、符号化データに逆方向符号語テーブル１１２に存在しないビットパターンが出現した場合、およびバッファ１０７のビット数と異なるビット数の符号化データが復号された場合、誤り検出と判定する。復号値判定部１１０では、順方
向復号化によって得られた復号結果（順方向復号結果という）と、逆方向復号化によって得られた復号結果（逆方向復号結果という）から復号値を判定し、最終的な復号結果を出力する。
【０１１０】
この第３実施形態における符号語テーブル作成部１０１は、基本的に第１の実施形態と同様であり、図２に示したように、情報シンボルの生起確率の情報を入力し、選択可能な符号系の中から最も平均符号長の小さいものを選択する符号選択部２１と、この符号語選択部２１で選択された符号の符号語を構成する符号語構成部２２からなる。ただし、本実施形態ではより幅広い確率分布に対応し、符号語のビットパターンを自由度を上げるために、符号語構成部２２における符号語の構成方法として以下の方法を用いている。
【０１１１】
図２４は、符号語構成部２２におけるリバーシブル符号の符号語の第１の構成方法を示している。まず、図２４の左側に示すように、第１のリバーシブル符号を用意する。次に、図２４の中央に示すように、第１のリバーシブル符号のそれぞれの符号語に対して、破線で囲まれた（符号長−１）ビットの固定長符号を用意し、図２４の右側に示すように、第１のリバーシブル符号の符号語の各ビットの間に固定長符号の符号語を破線で囲むように１ビットずつ挿入する。この図２４の可変長符号は、第１のリバーシブル符号を復号しながら、１ビット毎に固定長符号を復号することにより、順方向にも逆方向にも復号可能であることが分かる。図２４の例では、第１のリバーシブル符号の符号語の各ビットの間に固定長符号の符号語を１ビットずつ挿入したが、第１のリバーシブル符号のそれぞれの
符号語に対して、（符号長−１）×ｎビットの固定長符号を用意し、第１のリバーシブル符号の符号語の各ビットの間に固定長符号の符号語をｎビットずつ付加してもよい。
【０１１２】
図２５は、符号語構成部２２におけるリバーシブル符号の符号語の第２の構成方法を示している。図２５の左側に示すように、第１のリバーシブル符号を用意する。次に、図２５の上側に破線で囲んで示すように、第２のリバーシブル符号を用意し、図２５の右側に示すように、第１のリバーシブル符号の符号語の各ビットの間に破線で囲んだように第２のリバーシブル符号を挿入する。この図２５の可変長符号は、第１のリバーシブル符号を復号しながら、１ビット毎に第２のリバーシブル符号を復号することにより、順方向にも逆方向にも復号可能であることが分かる。なお、図２５の例においては、第１のリバーシブル符号と第２のリバーシブル符号を同じ符号として示したが、異なる符号を用いても構わない。
【０１１３】
この第３実施形態においては、図２６に示すように図２３中の順方向符号語テーブル１１１と逆方向符号語テーブル１１２を共通化した双方向符号語テーブル５１を用いてもよい。この場合、図２３中の復号化器１２４から順方向復号化／逆方向復号化の区別を示す識別信号５３を入力し、この識別信号５３によりアドレス変換器５２を動作させて、双方向符号語テーブル５１から符号語を読み出すためのアドレスを生成する。そして、このアドレスに対応する符号値を双方向符号語テーブル５１から読み出す。
【０１１４】
また、この第３実施形態においては、図２７に示すように復号化器１２４に誤り検出機能が付加される。復号化器６１に接続された誤り検出部６２は、復号化器６１の内部状態を監視し、これが異常となった場合、誤り検出信号を出力する。異常な内部状態とは、例えば以下のような状態をいう：
（１）符号語テーブルに存在しない符号化データを受信した場合；
（２）符号化データの長さと、実際に復号化器６１で復号したデータの長さが一致しない場合；
（３）符号語テーブルには値が存在するため復号値を求めることは可能であるが、その値が不適な値である場合。この項目（３）の具体例としては（３−１）復号値が存在範囲を超えている場合、（３−２）データの個数が上限を超えた場合、および（３−３）前に復号した復号値と整合性の合わない復号値を出力した場合等が挙げられる；
（４）誤り検出符号等により、誤りを検出した場合。
【０１１５】
次に、図２８を用いてこの第３実施形態における復号方法を説明する。先の説明では、復号化器１２４での順方向および逆方向の復号処理は図２８（ａ）に示すように順方向、逆方向双方で復号処理を並行して同時に行ない、それぞれが誤りを検出するまで復号を実行し復号値を求めていた。本実施形態はこれに限られず、図２８（ｂ）（ｃ）（ｄ）に示すような方法で復号を行なってもよい。なお、図２８（ａ）（ｂ）（ｃ）（ｄ）において、Ｘは誤り検出点を示し、また右側に向かう矢印は順方向の復号処理、左側に示す矢印は逆方向の復号処理をそれぞれ示している。
【０１１６】
図２８（ｂ）に示す方法では、順方向の復号処理を行ない、誤りが検出された場合は、そこで順方向の復号処理を停止し、同期区間の符号化データの末尾から逆方向に、誤りが検出されるまで復号処理を行なう。図２８（ｃ）に示す方法では、順方向の復号処理で誤りが検出された場合、その誤り検出位置のｎビット先から順方向の復号処理を再開する。この処理を現在の同期区間内の符号化データを全て処理するまで繰り返し行なう。順方向の復号処理の最後に、もし同期区間の符号化データ数と復号処理により復号を行なったデータ数とが一致しない場合は誤り検出とみなし、符号化データの末尾から逆方向の復号処理を誤りが発見されるまで行なう。図２８（ｄ）に示す方法では、順方向の復号処理で誤りが検出された場合、一旦その誤り検出位置のｎビット先から逆方向にｎビット分復号処理を行なう。その後、順方向の復号処理を誤り検出位置のｎビット先（逆方向の復号処理を開始した位置）から行なう。この処理を現在の同期区間内の符号化データを全て処理するまで繰り返し行なう。最後に、もし同期区間の符号化データ数と復号処理により復号を行なったデータ数が一致しない場合は誤り検出とみなし、符号化データの末尾から逆方向の復号処理を誤りが発見されるまで行なう。
【０１１７】
次に、図２９を用いてこの第３実施形態における復号値判定部１１１での復号値の判定方法を説明する。なお、復号値判定部１１１で最終的に利用する復号値の選択にも、以下のような方法を用いることができる。図２９（ａ）に示された復号値判定方法は、誤りを検出した場合、それ以降は復号を行なわない方法である。すなわち、誤りを検出した場合には、それ以降の復号は誤復号する可能性があるため、そのような誤復号の可能性のある復号値は利用せず、誤り検出位置までの復号値のみを利用する。
【０１１８】
図２９（ｂ）に示す復号値判定方法は、誤りを検出しても復号を続けてなるべく復号を行ない、利用できる復号値は全て利用するようにする方法である。可変長符号には、同期が外れた場合でも復号処理を続けると、自動的に同期が回復する特徴を有する符号が存在する。これを自己同期回復性と呼ぶ。この自己同期回復能力が高い符号語の場合には、図２９（ａ）のように誤り検出後に復号処理を停止せずに、図２９（ｂ）のようにそのまま復号を続けることで正しい復号値をより多く得ることができる。ただし、この場合には復号値に誤って復号された値を含む可能性がある。このような誤復号の可能性を許容するシステムにおいては、図２９（ｂ）の復号値判定方法を用いることも可能である。
【０１１９】
（第４実施形態）
次に、図３０を参照しながら本発明の第４実施形態に係る可変長符号化／復号化装置について説明する。
【０１２０】
第４実施形態の可変長符号化／復号化装置は、大きく分けて符号語テーブル作成部２０１、符号化部２１３、伝送系または蓄積系２０５および復号化部２１４からなる。まず、これら各部の機能について簡単に説明すると、符号語テーブル作成部２０１は情報シンボルの生起確率に基づいて符号語テーブルを作成し、符号化部２１３内の符号語テーブル、復号化部２１４内の順方向符号語テーブルおよび逆方向符号語テーブルに符号語を送る。
【０１２１】
符号化部２１３は、入力データとして与えられる情報シンボルを階層化して、各階層毎に可変長符号に符号化し、それらの可変長符号を多重化して符号化データとして伝送系または蓄積系２０５へ出力する。復号化部２１４は、伝送系または蓄積系２０５を介して入力されてきた符号化データを多重化分離し、各階層毎に可変長復号を行ない、階層毎の復号結果を合成して元の情報シンボルを再生し、再生データを出力する。
【０１２２】
次に、第４実施形態の各部の詳細な構成と動作を説明する。符号化部２１３においては入力データである情報シンボルはデータ階層化部２０２により重要度に応じて１からｎまで（ｎは２以上の自然数）の階層に分離される。分離された各階層ｉ（ｉ＝１，２，…，ｎ）の情報シンボルは、階層ｉ毎に用意された可変長符号化部２０３−ｉに入力され、符号化される。可変長符号化部２０３−ｉで得られた各階層ｉの符号化データは、多重化部２０４で多重化され、伝送系または蓄積系２０５を通して復号化部２１４に送られる。
【０１２３】
復号化部２１４では、伝送系または蓄積系２０５より入力された符号化データが多重化分離部２０６で各階層ｉの符号化データに分離される。分離された各階層の符号化データは、階層ｉ毎に用意された可変長復号化部２０７−ｉに入力され、復号化される。可変長復号化部２０７−ｉで得られた各階層ｉの復号結果はデータ合成部２０８で合成され、再生データとして出力される。
【０１２４】
符号語テーブル作成部２０１の構成は、第１の実施形態で用いた図２に示した符号語テーブル作成部１０１と同様であり、情報シンボルの生起確率の情報に基づいて、選択可能な符号系の中から最も平均符号長の小さいものを選択し、選択した符号の符号語を構成する。その符号語は、符号語の予め定められた重みによって符号の区切りが分かるように構成された順方向にも逆方向にも復号可能な可変長符号（リバーシブル符号）である。
【０１２５】
次に、図３０中の各階層ｉの可変長符号化部２０３−ｉの構成は図３１に示す通りであり、図１中に示した符号化部１１３と同様に、符号語テーブル１０２と符号化器１０３および同期区間設定部１０４により構成される。すなわち、図３０中のデータ階層化部２０２から入力された情報シンボルは、符号化器１０３に入力される。符号語テーブル１０２は、図３０中の符号語テーブル作成部２０１によって予め作成された情報シンボルと可変長符号の符号語とを対応させて格納している。
【０１２６】
符号化器１０３は、符号語テーブル１０２に格納されている符号語の中から、データ階層化部２０２より入力された情報シンボルに対応した符号語を選択して出力する。同期区間設定部１０４では、符号化器１０３が選択した符号語を同期区間毎にまとめ、さらに必要に応じて順方向にも逆方向にも復号可能なスタッフィング符号を挿入して、同期区間毎に符号化データを出力する。この符号化データは図３０中の多重化部２０４に送られる。
【０１２７】
一方、図３０中の各階層ｉの可変長復号化部２０７−ｉの構成は図３２に示す通りであり、図１中に示した復号化部１１４と同様に、同期区間検出部１０６、バッファ１０７、順方向復号化器１０８、逆方向復号化器１０９、復号値判定部１１０、順方向復号化テーブル１１１および逆方向復号化テーブル１１２により構成される。すなわち、可変長復号化部２０７−ｉでは、伝送系または蓄積系２０５より入力された符号化データから同期区間検出部１０６で符号化データの同期区間を検出して、符号化データをバッファ１０７に蓄積する。順方向復号化器１０８では、バッファ１０７に蓄積された符号化データの先頭から復号を開始する。逆方向復号化器１０９では、バッファ１０７に蓄積された符号化データの末尾から復号を開始する。
【０１２８】
順方向復号化器１０８では、符号化データに順方向符号語テーブル１１１に存在しないビットパターンが出現した場合、およびバッファ１０７のビット数と異なるビット数の符号化データが復号された場合、誤り検出と判定する。同様に逆方向復号化器１０９でも、符号化データに逆方向符号語テーブル１１２に存在しないビットパターンが出現した場合、およびバッファ１０７のビット数と異なるビット数の符号化データが復号された場合、誤り検出と判定する。復号値判定部１１０では、順方向復号化器１０８によって得られた復号結果（順方向復号結果）と、逆方向復号化器１０９によって得られた復号結果（逆方向復号値）から復号値を判定し、最終的な復号結果を出力する。これらの各階層ｉの復号結果は、データ合成部２０８に送られる。
【０１２９】
図３３に、データ階層化部２０２でのデータ階層化および多重化部２０４で多重化の例を示す。図３３（ａ）に示すようなｎ階層に分けることが可能なシンタクスの入力データ（情報シンボル列）があるとすると、データ階層化部２０２では図３３（ｂ）に示すように各階層ｉ毎に入力データが繰り返されるようにシンタクスを変更してデータ階層化を行ない、各階層ｉ毎の情報シンボルを可変長符号化部２０３−ｉに送る。多重化部２０４では、図３３（ｃ）に示すように可変長符号化部２０３−ｉにより階層ｉ毎に可変長符号化され、かつ同期符号ｉの付加により同期区間が設定された符号化データを多重化して出力する。
【０１３０】
図３４は、図３２中の復号値判定部１１０での復号値の判定方法の例を示している。各階層ｉ毎の可変長復号化部２０７−ｉでは、それぞれ双方向復号が行なわれる。もし、ある階層の可変長復号化部に入力される符号化データに誤りがあった場合、その影響は当該階層より上位の階層と下位の階層の復号値に影響を与えるので、各階層ｉの可変長復号化部２０７−ｉ内の復号値判定部１１０で情報をやりとりして、最終的な復号値を決定するようにする。
【０１３１】
この図３４の例では、上位階層に誤りがあり、復号できない部分がある場合、それに関連する下位階層の符号化データで復号できない部分ができる。また、下位階層の符号化データに誤りがあり、復号できない部分がある場合、それに対応する上位階層の符号化データの復号値を変更するようにする。図３４はあくまで復号値判定方法の一つの例であり、各階層ｉの可変長復号化部２０７−ｉ内の復号値判定部１１０では、上位階層と下位階層の復号結果を用いて順方向復号結果および逆方向復号結果の少なくとも一方で誤りが検出された場合は、順方向復号結果および逆方向復号結果のうち正しいと推定される方の復号結果を使用し、順方向復号および逆方向復号のいずれでも復号ができなかった部分については、その復号結果を放棄する方法であれば、どのような方法でもよいことはいうまでもない。また、この第４実施形態では全ての階層で順方向にも逆方向にもリバーシブル符号を用いる構成としたが、一部の階層のみにリバーシブル符号を用いる構成でも構わない。
【０１３２】
（第５実施形態）
次に、図１１に示した動画像符号化／復号化システムの動画像多重化部７０３および動画像多重化分離部７０７に第４実施形態で説明した可変長符号化／復号化装置を適用した第５実施形態について説明する。この場合の動画像符号化／復号化システムの基本的な構成と動作は第２の実施形態と同様であり、動画像多重化部７０３および動画像多重化分離部７０７における可変長符号化および可変長復号化の処理が階層毎に行なわれる点が異なる。
【０１３３】
図３５、図３６、図３７および図３８は、第５実施形態における動画像多重化部７０３での動画像符号化方式のシンタクスの種々の例を示している。まず、図３５に示すシンタクスについて説明する。このシンタクスでは、符号化データである入力された情報シンボルを上位階層と下位階層の２つに階層化し、それぞれに対して同期符号ＲＭおよびＭＭにより同期区間を設定している。下位階層のシンタクスの末尾のＳＴは、図９に示したような逆方向から復号可能なスタッフィング符号である。
【０１３４】
上位階層は、図３５（ａ）に示したようにヘッダ情報と、マクロブロック毎の符号化モード、各ブロックを符号化するか否かの情報およびＩＮＴＲＡ  ＤＣの値をモード情報として先頭側に固めて、これらを通常の順方向復号が可能な可変長符号で記述し、その後に動きベクトル情報を図３９〜図４６に示した符号化テーブルによりリバーシブル符号に可変長符号化して配置する。図３９〜図４６に示す符号化テーブルにおいて、“ＶＥＣＴＯＲ  ＤＩＦＦＥＲＥＮＣＥＳ”は動きベクトルの予測値（差分値）、“ＢＩＴ  ＮＵＭＢＥＲ”は可変長符号の符号長、そして“ＶＬＣ  ＣＯＤＥ”は可変長符号を表す。
【０１３５】
ここで、動きベクトルは図４７に示すように一次元予測により得られ、予測値は差分値で表される。動きベクトルの予測方向を図４７中に矢印で示す。図４７に示すように、動きベクトルはマクロブロック（図４７中に大きな四角で示す）に１本存在する場合と、各輝度ブロック（図４７中に小さな四角で示す）毎に各１本の計４本存在する場合とがあるが、これらについて一次元予測を行ない、予測値を図３９〜図４６に示した符号化テーブルに従って可変長符号で記述する。なお、予測で得られない動きベクトルについては、その動きベクトルの値そのものを図３９〜図４６に示した符号化テーブルに従って可変長符号により記述する。図３５（ａ）の末尾の動きベクトル情報がこれに相当する。一方、下位階層は図３５（ｂ）に示したようにＩＮＴＲＡ  ＤＣを除くＤＣＴ係数情報であり、例えば図１４〜図２０や特願平７−２６０３８３に記載されたリバーシブル符号で記述される。
【０１３６】
次に、図３６に示すシンタクスについて説明する。このシンタクスでは、上位階層は図３６（ａ）に示すようにヘッダ情報とマクロ符号化毎の動きベクトルの数を表したモード情報１を先頭側に固めて、通常の順方向復号が可能な可変長符号で記述し、その後に動きベクトル情報の可変長符号を記述する。動きベクトル情報の可変長符号は、図３５のシンタクスと同様である。下位階層は、図３６（ｂ）に示すように各ブロックのＤＣＴ係数があるか否かを示すモード情報２およびＩＮＴＲＡ  ＤＣを先頭側に固めて、これらを通常の順方向復号が可能な可変長符号で記述し、その後にＩＮＴＲＡ  ＤＣを除くＤＣＴ係数情報を図３５のシンタクスと同様にリバーシブル符号で記述する。
【０１３７】
次に、図３７に示すシンタクスについて説明する。このシンタクスでは、上位階層に順方向復号が可能な可変長符号のみを用いている。すなわち、上位階層は図３７（ａ）に示すように、ヘッダ情報、モード情報および動きベクトル情報を順方向復号が可能な可変長符号で記述し、下位階層は図３７（ｂ）に示すように、ＤＣＴ係数情報を図３５のシンタクスと同様にリバーシブル符号により記述している。
【０１３８】
図３８に示すシンタックスも、上位階層に順方向復号が可能な可変長符号のみを用いている。すなわち、上位階層は図３８（ａ）に示すように、ヘッダ情報、マクロ符号化毎の動きベクトルの数を表したモード情報１および動きベクトル情報を順方向復号可能な可変長符号で記述する。下位階層は図３８（ｂ）に示すように、各ブロックのＤＣＴ係数があるか否かを示すモード情報２およびＩＮＴＲＡ  ＤＣを先頭側に固めて、これらを通常の順方向復号が可能な可変長符号で記述し、その後にＩＮＴＲＡ  ＤＣ以外のＤＣＴ係数情報を図３６のシンタクスと同様にリバーシブル符号で記述する。
【０１３９】
第５実施形態における動画像多重化部７０３および動画像多重化分離部７０７の基本構成は図１３（ａ）（ｂ）に示す通りであるが、上位階層可変長符号化器９０１、下位階層可変長符号化器９０３および上位階層可変長復号化器９０５、下位階層可変長復号化器９０６の構成が第２実施形態とは異なっている。すなわち、情報源符号化器７０２で符号化されたデータのうち、例えば図３５（ａ）または図３６（ａ）のシンタクスで示された上位階層のデータが上位階層可変長符号化器９０１で可変長符号化され、多重化部９０３に送られる。また、情報源符号化器７０２で符号化されたデータのうち、図３５（ｂ）または図３６（ｂ）のシンタクスで示された下位階層のデータが可変長符号化器９０３で可変長符号化され、多重化部９０３に送られる。多重化部９０３では、上位階層の符号化データおよび下位階層の符号化データを多重化し、送信バッファ７０４に送る。
【０１４０】
そして、この第５実施形態では上位階層可変長復号化器９０５および下位階層可変長復号化器９０６内の図３２中に示した復号値判定部１１０では、順方向復号化器１０８によって得られた順方向復号結果から復号値を判定し、最終的な復号結果を出力する。各階層の順方向復号化器１０８および逆方向復号化器１０９での誤り判定は、符号語として存在しないビットパターンが出現した場合、およびチェックビット等で誤りを検出した場合には、検出位置はその場所とし、前記の判定方法で誤りが検出されない場合で、復号したビット数が同期区間内の符号化データのビット数と一致しない場合は、復号化の最初の位置を誤り検出位置とする。
【０１４１】
次に、第５実施形態における復号値判定方法について説明する。図４８は、動画像多重化部７０３での動画像符号化方式のシンタクスが図３５に示すシンタクスである場合の復号値判定方法を示している。図３５のシンタクスでは、上位階層の動きベクトル情報と下位階層のＤＣＴ係数情報にリバーシブル符号を用いているので、上位階層および下位階層の両者で双方向復号が可能である。
【０１４２】
上位階層では、まずヘッダ情報とモード情報が復号される。ヘッダ情報やモード情報で誤りが発見されて全てが復号できない場合、誤りが生じた同期区間のマクロブロックの復号値は全てＮｏｔ  Ｃｏｄｅｄとされ、前画面がそのまま表示される。もし、ヘッダ情報とモード情報が全て復号できた場合は、次に動きベクトル情報が双方向復号される。動きベクトル情報で復号ができない部分については、やはりＮｏｔ  Ｃｏｄｅｄとされる。下位階層では、動きベクトルまで復号できたマクロブロックについてのみ、下位階層のＤＣＴ係数情報を使用される。誤りのためにＤＣＴ係数情報を放棄したマクロブロックは、Ｎｏｔ  Ｃｏｄｅｄとされる。
【０１４３】
図４９は、動画像多重化部７０３での動画像符号化方式のシクタクスが図３６に示すシンタクスである場合の復号値判定方法を示している。図３６のシンタクスによると、上位階層ではまずヘッダ情報とモード情報１が復号される。ヘッダ情報やモード情報１で誤りが発見され、全てが復号できない場合は、誤りが生じた同期区間のマクロブロックの復号値は全てＮｏｔ  Ｃｏｄｅｄとされ、前画面がそのまま表示される。もし、ヘッダ情報とモード情報１が全て復号できた場合は、次に動きベクトル情報が双方向復号される。この動きベクトル情報で復号ができない部分については、やはりＮｏｔ  Ｃｏｄｅｄとされる。下位階層では、動きベクトルまで復号できたマクロブロックについてのみ下位階層のＤＣＴ係数情報が使用される。誤りのためにＤＣＴ係数情報を放棄したマクロブロックは、Ｎｏｔ  Ｃｏｄｅｄとされる。
【０１４４】
なお、図４８および図４９に示した復号値判定方法では、マクロブロック単位に復号値の判定を行なったが、ブロック単位でも符号語の単位で復号値の判定を行なってもよい。また、この第５実施形態では動きベクトル情報とＤＣＴ係数情報の可変長符号化に本発明を適用した場合について述べたが、可変長符号化を行なう他の情報シンボルについても本発明を適用できることはいうまでもない。
【０１４５】
（第６実施形態）
次に、本発明の第６実施形態に係る可変長符号化／復号化装置について説明する。この第６実施形態の基本的な構成は第１実施形態の構成を示す図１のブロック図と同一なので、図１を参照しながら説明する。
【０１４６】
符号化部１１３において、入力された情報シンボルは符号化器１０３に入力される。符号語テーブル１０２は、符号語テーブル作成部１０１によって予め作成された情報シンボルと可変長符号の符号語とを対応させて格納している。符号化器１０３は符号語テーブル１０２に格納されている符号語の中から、入力された情報シンボルに対応した符号語を選択する。同期区間設定部では、符号化器が選択した符号語を同期区間毎にまとめて符号化データとして出力する。この符号化データは、伝送系または蓄積系１０４を通して復号化部１１１に送られる。
【０１４７】
復号化部１１４では、伝送系または蓄積系１０５より入力された符号化データから同期区間検出部１０６で符号化データの同期区間を検出し、符号化データをバッファ１０７に蓄積する。順方向復号化器１０９では、バッファに蓄積された符号化データの先頭から復号を開始し、逆方向復号化器１１１では、バッファに蓄積された符号化データの末尾から復号を開始する。
【０１４８】
順方向復号化器では、符号化データに、順方向符号語テーブルに存在しないビットパターンが出現した場合、及びバッファのビット数と異なるビット数の符号化データが復号された場合、誤り検出と判定する。同様に逆方向復号化器でも、符号化データに、逆方向符号語テーブルに存在しないビットパターンが出現した場合、及びバッファのビット数と異なるビット数の符号化データが復号された場合、誤り検出と判定する。
【０１４９】
復号値判定部では、順方向復号化器によって得られた復号結果（順方向復号結果という）と、逆方向復号化器によって得られた復号結果（逆方向復号値という）から復号値を判定し、最終的な復号結果を出力する。
【０１５０】
図５０は、符号語テーブル作成部１０１のブロック図である。情報シンボルの生起確率は、確率モデル作成部２３に入力され、確率モデルを作成し、符号選択部２１に入力され、選択可能な符号系の中から最も平均符号長の小さいものを選択し、選択結果を符号語構成部２２に送る。符号語構成部２２では、符号語選択部２１で選択された符号の符号語を構成する。
【０１５１】
この第６実施形態における確率モデルの設計方法は以下の通りである。第６実施形態では、様々な情報源の確率分布に対して、より汎用的で符号化効率のより確率モデルの設計方法について示す。
【０１５２】
まず、記法を示す：
θi             情報源（ｉ＝１，…，ｎ）
Ｘ              情報源の情報シンボルＸ＝（ｘ1 ，ｘ2 ，…，ｘm ）
Ｐ（Ｘ| θi ）  θi の頻度分布
一例としては、複数のテスト画像を情報源として、そのテスト画像を符号化して得られた頻度分布を考えればよい。
【０１５３】
ここで、設計する確率モデルＱ（Ｘ）は、複数の情報源から得られた頻度分布を重み付けして平均して求めるものとする：
Ｑ（Ｘ）＝ｗ（θ1 ）Ｐ（Ｘ| θ1 ）＋…＋ｗ（θn ）Ｐ（Ｘ| θn ）
n
＝Σｗ（θi ）Ｐ（Ｘ| θi ）
i=1
ｗ（θi ）    重み付け係数  ｗ（θ1 ）＋…＋ｗ（θn ）＝１
この時、いかに重み付け係数ｗ（θi ）を求めるかが問題となる。
【０１５４】
情報源θi をＱ（Ｘ）で符号化した時の理想符号長Ｌ（Ｘ| θi ）は、
m
Ｌ（Ｘ| θi ）＝−ΣＰ（Ｘ| θi ）log2（θ（Ｘ））
j=1
となる。各情報源に対して平均的に理想符号長Ｌ（Ｘ| θi ）を最小化するには、
n   m
Ｍ（Ｘ）＝−（１／ｎ）Σ  ΣＰ（Ｘ| θi ）log2（Ｑ（Ｘ））
i=1 j=1
m
＝−ΣＵ（Ｘ）log2（Ｑ（Ｘ））
j=1
n
で、この時、Ｕ（Ｘ）＝（１／ｎ）ΣＰ（Ｘ| θi ）とする。
i=1
【０１５５】
この関数が最小になるのは、Ｕ（Ｘ）＝Ｑ（Ｘ）の時で、
ｗ（θ1 ）＝…＝ｗ（θn ）＝１／ｎ
となる。
【０１５６】
別の確率モデルＱ（Ｘ）の設計方法として、最悪の情報源を想定して確率モデルＱ（Ｘ）を設計する手法を示す。
【０１５７】
情報源θi をＱ（Ｘ）で符号化した時の冗長度Ｒ（Ｘ| θi ）は、
m
Ｒ（Ｘ| θi ）＝Ｌ（Ｘ| θi ）＋ΣＰ（Ｘ| θi ）log2（Ｐ（Ｘ| θi ））  
j=1
となる。この冗長度の各情報源に対する重みづけ平均Ｓ（Ｘ）は、
n
Ｓ（Ｘ）＝Σｗ（θi ）Ｒ（Ｘ| θi ）
i=1
n             m
＝Σｗ（θi ）ΣＰ（Ｘ| θi ）
i=1           j=1
n
log2（Ｐ（Ｘ| θi ）／Σｗ（θi ）Ｐ（Ｘ| θi ））
i=1
となって、事象Ｘと事象θの相互情報量を示す関数になっている。この関数の最大値を求める方法は、S.Arimoto, "An algorithm for computing the capacity of arbitrary discrete memoryless channels,"IEEE Trans.Inform.Theory,Vol.IT-18,pp.14-20,1972. R.E. Blahut, "Computation of channel capacity and rate-distortion functions, "IEEE Trans.Inform.Theory,Vol.IT-18,pp.460-473,1972.に示されるArimoto-Blahutのアルゴリズム等が知られており、これらのアルゴリズムによってＳ（Ｘ）を最大化するつまり最悪の場合のｗ（θi ）（i=1,…n ）を求めることができる。
【０１５８】
確率モデルＱ（Ｘ）の設計方法として、理想符号長を平均的に最小にする方法と、平均的に最悪を想定する方法を示したが、２つの方法を組み合わせて、情報源をグループ化して前者の方法で確率モデルをいくつか作成し、その確率モデルに対して後者の方法を用いるなどの方法を適用してもよい。
【０１５９】
図５０に示す符号選択部２１では、確率モデル作成部２３で作成した確率モデルＱ（Ｘ）を、情報シンボルＸを確率の高い順にソーティングしたＱ（Ｙ）を作成し、一方、符号構成部２２で作成されたリバーシブル符号の符号長を短い順にソーティングしたものＦ（Ｚ）を作成し、
m
ΣＱ（Ｙ）Ｆ（Ｚ）
j=1
を計算して最も値が小さいものを選択し、情報シンボルと符号語を対応させて符号語テーブルを作成する。
【０１６０】
符号語構成部２２で構成する符号は、例えば特願平７−８９７７２および特願平７−２６０３８３並びに第１および第３実施形態で示されている符号語の重みを用いた順方向にも逆方向にも復号可能な可変長符号が用いられる。
【０１６１】
（第７実施形態）
次に、本発明の第７実施形態を説明する。図５１は、本発明の第７実施形態による可変長符号化／復号化装置が組み込まれた動画像符号化／復号化装置の概念図である。動画像符号化器７０９では、情報源符号化器７０２で符号化されたデータは、動画像多重化部７０３で可変長符号化、多重化等がおこなわれ、伝送バッファ７０４で平滑化された後に、符号化データとして、伝送系または蓄積系７０５に送り出される。符号化制御部７０１は、伝送バッファ７０４のバッファ量を考慮して、情報源符号化器７０２、動画像多重化部７０３の制御を行なう。
【０１６２】
一方、動画像復号化器７１０では、伝送系または蓄積系７０５からの符号化データを受信バッファ７０６にためてから、動画像多重化分離部７０７で、符号化データの多重化分離、可変長復号化が行なわれ、情報源復号化器７０８に送られ、最終的に動画像が復号化される。
【０１６３】
第７実施形態において追加されたシンタクスについて説明する。図５３は、第７実施形態における動画像多重化部７０３および、動画像多重化分離部７０７での動画像符号化方式のシンタクスを示している。符号化データは、上位階層と下位階層に階層化し、それぞれを同期符号ＲＭとＭＭによって、同期区間を設定している。また、下位階層のＳＴは、図６２で示すような逆方向から復号可能なスタッフィング符号である。フレーム内符号化フレームは、図６３のように、マクロブロックのモード情報の一部とＩＮＴＲＡ  ＤＣを上位階層とし、モード情報の一部とＡＣ−ＤＣＴ係数情報を下位階層として、ＡＣ−ＤＣＴ係数情報にリバーシブル符号を適用している。フレーム間符号化フレームは、図６４のように、マクロブロックのモード情報の一部と動きベクトル情報を上位階層とし、モード情報の一部とＩＮＴＲＡ  ＤＣとＡＣ−ＤＣＴ係数情報を下位階層として、ＡＣ−ＤＣＴ係数情報にリバーシブル符号を適用している。
【０１６４】
図５３に示す上位階層と下位階層の符号化および復号化は、図５２に示す動画像多重化部とにより行なわれている。これらの構成は、第５実施形態に係る符号化装置／復号化装置の構成と略同一である。すなわち、図５１の動画像多重化部７０３および動画像多重化分離部７０７の基本構成は、図５３（ａ）（ｂ）に示す通りであるが、上位階層可変長符号化器８０１、下位階層可変長符号化器８０３および上位階層可変長復号化器８０５、下位階層可変長復号化器８０６の構成が第２実施形態とは異なっている。すなわち、情報源符号化器７０２で符号化されたデータのうち、例えば図５３（ａ）のシンタクスで示された上位階層のデータが上位階層可変長符号化器８０１で可変長符号化され、多重化部８０３に送られる。また、情報源符号化器７０２で符号化されたデータのうち、図５３（ｂ）のシンタクスで示された下位階層のデータが可変長符号化器８０３で可変長符号化され、多重化部８０３に送られる。多重化部８０３では、上位階層の符号化データおよび下位階層の符号化データを多重化し、送信バッファ７０４に送る。
【０１６５】
そして、この第７実施形態では上位階層可変長復号化器８０５および下位階層可変長復号化器８０６内の図３２中に示した復号値判定部１１０では、順方向復号化器１０８によって得られた順方向復号結果から復号値を判定し、最終的な復号結果を出力する。各階層の順方向復号化器１０８および逆方向復号化器１０９での誤り判定は、符号語として存在しないビットパターンが出現した場合、およびチェックビット等で誤りを検出した場合には、検出位置はその場所とし、前記の判定方法で誤りが検出されない場合で、復号したビット数が同期区間内の符号化データのビット数と一致しない場合は、復号化の最処理位置を誤り検出位置とする。
【０１６６】
（第８実施形態）
図５４，図５５は、本発明の第８実施形態に係る符号化／復号化装置における情報源符号化器７０２，情報源復号化器７０８の一例をそれぞれ示している。まず、図５４において、入力画像信号は、ブロック化回路４０１でマクロブロックに分割される。マクロブロックに分割された入力画像信号は、減算器４０２に入力され、予測画像信号との差分がとられて、予測残差信号が生成される。この予測残差信号と、ブロック化回路４０１からの入力画像信号のいずれか一方を、モード選択スイッチ４０３により選択し、ＤＣＴ（離散コサイン変換）回路４０４により離散コサイン変換される。ＤＣＴ回路で得られたＤＣＴ係数データは、量子化回路４０５で量子化される。量子化されたデータは、２分岐され、一方はＤＣＴ係数情報として、動画像多重化器７０３に送られる。もう一方は逆量子化回路４０６およびＩＤＣＴ（逆離散コサイン変換）回路４０７により量子化回路４０５およびＤＣＴ回路４０６の処理と逆の処理が順次行なわれた後、加算器４０８でスイッチ４１０を介して入力される予測画像信号と加算されることにより局部復号信号が生成される。この局部復号信号は、フレームメモリに蓄えられ、動き補償回路４１１に入力される。動き補償回路Ａ０１０では、入力画像信号と局部復号信号との間で動き補償を行ない、動きベクトルを求め、予測画像信号を生成する。このとき求められた動きベクトル情報は、動画像多重化器７０３に送られる。モード選択回路４１２では、動き補償回路４１０からの情報に基づいて、各マクロブロックをどのような予測方式で符号化するかを決定し、その結果が量子化パラメータ等ともにモード情報として動画像多重化器７０３に送られる。なお、図５４において、出力される符号化データはＤＣＴ符号化係数、動きベクトル情報、モード情報の３つが１つに纏められたデータである。
【０１６７】
次に、図５４により符号化されたデータを復号化する情報源復号化器７０８の構成について図５５を参照しながら説明する。図５５は、図５４に対応する情報源復号化器７０８の一例を示している。図５５において、情報源復号化器７０８は、動画像多重化分離回路７０７で分離したモード情報、動きベクトル情報、ＤＣＴ係数情報等が入力される。
【０１６８】
モード情報が入力されるモード判定回路５０４では、モード情報がＩＮＴＲＡならば、モード切替スイッチ５０５をオフに選択して、ＤＣＴ係数情報を、逆量子化回路５０１で逆量子化し、ＩＤＣＴ回路５０２で逆離散コサイン変換処理を行なうことにより、再生画像信号を生成させる。この再生画像信号は、フレームメモリ５０６に参照画像として蓄積される一方、再生画像信号として出力する。モード情報かＩＮＴＥＲならば、モード切替スイッチ５０５をオフに選択して、ＤＣＴ係数情報を、逆量子化回路５０１で逆量子化し、ＩＤＣＴ回路５０２で逆離散コサイン変換処理を行ない、動きベクトル情報に基づいて、フレームメモリ５０４において参照画像を動き補償し、加算器５０３で足しあわせて、再生画像信号を生成させる。この再生画像信号は、フレームメモリ５０４に参照画像として蓄積される一方、再生画像信号として出力する。
【０１６９】
（第９実施形態）
次に、本発明の応用例として、図５６を用いて、本発明の可変長符号化／復号化装置が組み込まれた第９実施形態に係る動画像符号化／復号化システムを適用した画像送受信装置を説明する。パーソナルコンピュータ（ＰＣ）１００１に備え付けられたカメラ１００２より入力された画像信号は、ＰＣ１００１に組み込まれた動画像符号化器７０９によって符号化される。動画像符号化器７０９から出力される符号化データは、他の音声やデータの情報と多重化された後、無線機１００３より無線で送信され、他の無線機１００４によって受信される。無線機１００４で受信された信号は、画像信号の符号化データおよび音声データに分解される。これらのうち、画像信号の符号化データはワークステーション（ＥＷＳ）１００５に組み込まれた動画像復号化器７１０によって復号され、ＥＷＳ１００５のディスプレイに表示される。
【０１７０】
一方、ＥＷＳ１００５に備え付けられたカメラ１００６より入力された画像信号は、ＥＷＳ１００５に組み込まれた動画像符号化器７０９を用いて上記と同様に符号化される。符号化データは、他の音声やデータの情報と多重化され、無線機１００４により無線で送信され、無線機１００３によって受信される。無線機１００３によって受信された信号は、画像信号の符号化データおよび音声やデータの情報に分解される。これらのうち、画像信号の符号化データはＰＣ１００１に組み込まれた動画像復号化器７１０によって復号され、ＰＣ１００１のディスプレイに表示される。
【０１７１】
（第１０実施形態）
なお、上述した第１ないし第９実施形態に係る動画像符号化／復号化装置は、ハードウェアとしての構成として発明を捉えていたが、本発明はこれを発展させて上記各々の実施形態に係る符号化／復号化装置において用いられるデータまたはプログラムを記録する記録媒体としても捉えることができる。以下、第１０実施形態に係るデータまたはプログラムを記録した記録媒体について説明する。
【０１７２】
図５１に示す情報源符号化器７０２では、量子化語の８×８のＤＣＴ係数のブロックについてブロックないのスキャンを行なって、ＬＡＳＴ（０：ブロックの最後でない非零係数，１：ブロックの最後の非零係数），ＲＵＮ（非零係数までの零ランの数）及びＬＥＶＥＬ（係数の量子化値）を求め、動画像多重化部７０３に送る。
【０１７３】
動画像多重化部７０３内の下位階層可変長符号化器８０２は、図６０に示すＩＮＴＲＡ（フレーム内符号化）の非ＬＡＳＴ係数のＲＵＮ，ＬＥＶＥＬにリバーシブル符号の符号語（ＶＬＣ＿ＣＯＤＥ）のＩＮＤＥＸを対応させたＩＮＤＥＸテーブルと、図６１に示すＩＮＴＥＲ（フレーム間符号化）の非ＬＡＳＴ係数のＲＵＮ，ＬＥＶＥＬにリバーシブル符号の符号語（ＶＬＣ＿ＣＯＤＥ）のＩＮＤＥＸを対応させたＩＮＤＥＸにテーブルと、図６２に示すＩＮＴＲＡ，ＩＮＴＥＲ共通のＬＡＳＴ係数のＲＵＮ，ＬＥＶＥＬにリバーシブル符号の符号語（ＶＬＣ−ＣＯＤＥ）のＩＮＤＥＸを対応させたＩＮＤＥＸテーブルと、図６３，図６４に示すＩＮＤＥＸ値と符号語を対応させた符号語テーブルを持っている。
【０１７４】
下位階層可変長符号化器８０２の動作を、図５７のフローチャートに従って説明する。まず、モード情報に基づいて、ＩＮＴＥＲの時はＩＮＴＲＡの非ＬＡＳＴ係数とＬＡＳＴ係数の符号語テーブル，ＩＮＴＥＲの時はＩＮＴＥＲの非ＬＡＳＴ係数とＬＡＳＴ係数のＩＮＤＥＸテーブルを選択する。（Ｓ１０１）
【０１７５】
次に、符号語テーブルを用いて符号化するにあたって、（ＲＵＮ，ＬＥＶＥＬ）がＩＮＤＥＸテーブルのＲＵＮの最大値Ｒ＿ｍａｘ，ＬＥＶＥＬの最大値Ｌ＿ｍａｘと比較して、ＩＮＤＥＸテーブル内に存在するかどうか確認する（Ｓ１０２）。
【０１７６】
もし、存在した場合、図６０〜図６２のＩＮＤＥＸテーブルを引きＩＮＤＥＸの値が０であるかどうかチェックを行ない（Ｓ１０４），０でなければ、図１２の符号語テーブルのＩＮＤＥＸの符号語を出力する。符号語テーブルの符号語の最終ビットの“ｓ”は、ＬＥＶＥＬの符号を表し、“ｓ”が“０”のときは、ＬＥＶＥＬの符号は正、“ｓ”が“１”のときは、ＬＥＶＥＬの符号は負である（Ｓ１０５）。ＩＮＤＥＸの値が０であった場合と、範囲外であった場合は、符号語テーブルに存在しない係数で、図６７に示すようにＥＳＣＡＰＥ符号を続けて、ＬＡＳＴ係数かどうかの１ビットと図６５および図６６のＲＵＮとＬＥＶＥＬの絶対値を固定長符号化し、この固定長符号化部の先頭に２つのエスケープのうち“００００１”を付加し、末端にもエスケープ符号を付加する。図６３，図６４のＩＮＤＥＸ値が０の符号語が、エスケープ符号であり、エスケープ（ＥＳＣＡＰＥ）符号として用いられるＶＬＣ＿ＣＯＤＥの最終ビット“ｓ”はＬＥＶＥＬの符号を表し、“ｓ”が“０”ならばＬＥＶＥＬは正、“１”ならばＬＥＶＥＬは負である（Ｓ１０６）。
【０１７７】
以上説明したように、ＩＮＤＥＸテーブルを用いることにより、ＥＳＣＡＰＥ符号を用いた場合にも、探索することなく効率的に、符号語を出力できる。下位階層可変長復号化器８０２は、図６８，図６９の復号値テーブルを備えており、可変長符号を復号した結果得られるＩＮＤＥＸ値に基づいて動作する。
【０１７８】
次に、下位階層可変長復号化器の動作を、図５８と図５９のフローチャートに従って説明する。図５８は、順方向の場合の復号動作である。まず、可変長復号を順方向復号する（Ｓ２０１）。次に、復号して得られたＩＮＤＥＸ値が０かどうかをチェックし（Ｓ２０２）、０以外の場合は、上位階層のモード情報に基づいて、図６８の復号値テーブルのＩＮＴＲＡとＩＮＴＥＲを選択して、ＬＡＳＴ，ＲＵＮ，ＬＥＶＥＬの復号値を得る（Ｓ２０３）。ＩＮＤＥＸ値が０の場合は、ＥＳＡＰＥ符号であるから、次に続く固定長符号を復号して、ＬＡＳＴ，ＲＵＮ，ＬＥＶＥＬの復号値を得る（Ｓ２０４）。つづいて、末尾のＥＳＣＡＰＥ符号を復号する（Ｓ２０５）。ＬＥＶＥＬの正負は、符号語の最終ビットが“０”ならば、正であり、“１”ならば、負である（Ｓ２０６）。
【０１７９】
図５９は、逆方向の場合の復号動作である。まず、符号語の最初の１ビットで、ＬＥＶＥＬの正負を決定する。もし、“０”ならば、正であり、“１”ならば負である（Ｓ３０１）。次に可変長符号を逆方向復号する（Ｓ３０２）。逆方向復号して得られたＩＮＤＥＸ値が０かどうかチェックし（Ｓ３０３）、０以外の場合は、上位階層のモード情報に基づいて、図６８の復号値テーブルのＩＮＴＲＡとＩＮＴＥＲを選択して、ＬＡＳＴ，ＲＵＮ，ＬＥＶＥＬの復号値を得る（Ｓ３０４）。ＩＮＤＥＸ値が０の場合には、ＥＳＣＡＰＥ符号であるから、次に続く固定長符号を復号して、ＬＥＶＥＬ，ＲＵＮ，ＬＡＳＴの復号値を得る（Ｓ３０５）。つづいて、先頭のＥＳＣＡＰＥ符号を復号する（Ｓ３０６）。以上説明したように、復号値テーブルを用いることで、ＥＳＣＡＰＥ符号を使った場合にも記憶量を節約し、効率的に双方向に復号することができる。
【０１８０】
上記第１０実施形態におけるデコードプロセスの補強例について説明する。すなわち、動画像多重化部７０３での動画像符号化方式のシンタクスが図５３に示すシンタクスである場合の復号値判定方法について説明する。
【０１８１】
フレーム内符号化フレームでは、まず、上位階層のモード情報１とＩＮＴＲＡＤＣが復号される。もし、誤りが発見されて全てを復号できない場合は、誤りの生じた同期区間のマクロブロックの復号値を全てＮｏｔ  Ｃｏｄｅｄとする。もし、符号化が最初のフレームで時間的に前のフレームが存在しない場合は、灰色あるいは特定の色でマクロブロックを埋める。
【０１８２】
下位階層では、モード情報２が誤りのため復号できない場合、下位階層の符号化データを全て放棄し、上位階層の復号値を書き換えて、Ｎｏｔ  Ｃｏｄｅｄとするか、ＩＮＴＲＡ  ＤＣのみで表示する。また、誤りのためＤＣＴ係数を放棄したマクロブロックは、Ｎｏｔ  Ｃｏｄｅｄとするか、ＩＮＴＲＡ  ＤＣのみで表示する。
【０１８３】
また、ＩＮＴＲＡモードのマクロブロックで、ＡＣ−ＤＣＴ係数の予測を行なっているマクロブロックがある場合は、可変長符号は復号できるが、周辺のマクロブロックからの予測を行なっているので、周辺のマクロブロックが復号できていないために復号できない場合、Ｎｏｔ  Ｃｏｄｅｄとする。
【０１８４】
フレーム間符号化フレームでは、まず、上位階層のモード情報１と動きベクトルが復号される。もし、誤りが発見されて全てを復号できない場合は、誤りが生じた同期区間のマクロブロックの復号値は全てＮｏｔ  Ｃｏｄｅｄとされる。もし、全て復号できた場合、同期符号ＭＭが存在することを確認し、もし、存在しなければ、やはり、同期区間のマクロブロックの復号値を全てＮｏｔ  Ｃｏｄｅｄとする。
【０１８５】
下位階層では、モード情報２及びＩＮＴＲＡ  ＤＣで誤りのため復号されない場合、下位階層の符号化データを放棄し、Ｎｏｔ  Ｃｏｄｅｄと表示するか、または、前フレームからの動き補償のみでの表示（ＭＣ  Ｎｏｔ  Ｃｏｄｅｄ）に上位階層の復号値を書き換える。また、誤りのためＤＣＴ係数を放棄したマクロブロックは、ＭＣ  Ｎｏｔ  Ｃｏｄｅｄとする。
【０１８６】
また、ＩＮＴＲＡモードのマクロブロックで、ＡＣ−ＤＣＴ係数の予測を行なっているマクロブロックがある場合は、可変長符号は復号できるが、周辺のマクロブロックからの予測を行なっているので、周辺のマクロブロックが復号できていないために復号できない場合、Ｎｏｔ  Ｃｏｄｅｄとする。
【０１８７】
図７０はフレーム間符号化フレームのＡＣ−ＤＣＴ係数部の詳しい復号値判定方法を示している。
【０１８８】
まず、図７０（ａ）に示すように順方向復号結果と逆方向復号結果で誤りが検出されるマクロブロックの位置（誤り検出位置）が交差しない場合は、誤りが検出されなかったマクロブロックの復号結果のみを復号値として使用し、二つの誤り検出位置の復号結果は復号値として使用せず、上位階層のモード情報の復号結果に基づいて、ＩＮＴＲＡマクロブロックについては、前フレームをそのまま表示するように、ＩＮＴＲＡマクロブロックについては、前フレームより動き補償のみで表示するように、上位階層の復号結果を書き換える。
【０１８９】
また、図７０（ｂ）に示すように順方向復号結果と逆方向復号結果の誤りの検出位置が交差する場合は、順方向復号の結果で誤りが検出されたマクロブロックまでの復号値は、順方向復号結果を使用し、それ以降の部分は、逆方向復号結果を復号値として使用する。
【０１９０】
なお、逆方向復号結果を優先して、逆方向復号の結果で誤りが検出されたマクロブロックまでの復号値は、逆方向復号結果を使用し、それ以前の部分は、順方向復号結果を復号値として使用してもよい。
【０１９１】
さらに、図７０（ｃ）に示すように同一のマクロブロックで順方向復号結果および逆方向復号結果の両方に誤りが検出される場合は、誤り検出位置のマクロブロックの復号値は放棄し、復号値として使用せずに、上位階層のモード情報の復号結果に基づいて、ＩＮＴＲＡマクロブロックについては、前フレームをそのまま表示するように、ＩＮＴＥＲマクロブロックについては、前フレームよりの動き補償のみで表示するように、上位階層の復号結果を書き換え、それ以後のマクロブロックに対する復号値は逆方向の復号結果を使用する。
【０１９２】
また、図７０（ｄ）に示すようにスタッフィング符号で誤りが検出され、逆方向に復号できない場合は、順方向復号のみ復号を行ない、誤りが検出された場合、誤り検出位置以降のマクロブロックは、上位階層のモード情報の復号結果に基づいて、ＩＮＴＲＡマクロブロックについては、前フレームをそのまま表示するように、ＩＮＴＥＲマクロブロックについては、前フレームよりの動き補償のみで表示するように、上位階層の復号結果を書き換え、それ以後のマクロブロックに対する復号値は逆方向の復号結果を使用する。
【０１９３】
図７０の復号値判定方法では、マクロブロックを単位に復号値の判定をおこなったが、ブロックの単位でも、符号語の単位で判定をおこなってもよい。
【０１９４】
以上実施形態で説明したように、本発明の可変長符号化／復号化装置は、従来と比較して、より少ない計算量と記憶量で十分であり、効率的である。
【０１９５】
具体的には、動画像符号化／復号化装置にも適用することが可能であり、より少ない計算量と記憶量で効率的な動画像符号化／復号化装置を提供することができる。
【図面の簡単な説明】
【０１９６】
【図１】本発明の第１実施形態に係る可変長符号化／復号化装置の構成を示すブロック図。
【図２】図１における符号語テーブル作成部を示すブロック図。
【図３】図２における符号語構成部での第１の符号語構成方法を説明する図。
【図４】第１の符号構成方法で構成した符号語から作成した順方向および逆方向の復号木を示す図。
【図５】図２における符号語構成部での第２の符号語構成方法を説明する図。
【図６】図２における符号語構成部での第３の符号語構成方法を説明する図。
【図７】図２における同期区間設定部での同期区間設定方法を説明する図。
【図８】スタッフィング符号の第１の例を示す図。
【図９】スタッフィング符号の第２の例を示す図。
【図１０】図２における復号値判定部の動作を説明する図。
【図１１】本発明の第２実施形態に係る動画像符号化／復号化システムの概略構成を示すブロック図。
【図１２】第２実施形態に係る動画像符号化／復号化システムにおける符号化データのシンタックスを示す図。
【図１３】図１１における動画像多重化部および動画像多重化分離部の構成を示すブロック図。
【図１４】第２実施形態におけるＩＮＴＲＡおよびＩＮＴＥＲの非ＬＡＳＴ係数の符号語テーブルの一部を示す図。
【図１５】第２実施形態におけるＩＮＴＲＡおよびＩＮＴＥＲの非ＬＡＳＴ係数の符号語テーブルの他の一部を示す図。
【図１６】第２実施形態におけるＩＮＴＲＡおよびＩＮＴＥＲの非ＬＡＳＴ係数の符号語テーブルのさらに別の一部を示す図。
【図１７】第２実施形態におけるＩＮＴＲＡおよびＩＮＴＥＲのＬＡＳＴ係数の符号語テーブルの一部を示す図。
【図１８】第２実施形態におけるＩＮＴＲＡおよびＩＮＴＥＲのＬＡＳＴ係数の符号語テーブルの他の一部を示す図。
【図１９】第２実施形態におけるエスケープ符号の符号語テーブルを示す図。
【図２０】第２実施形態における符号語テーブルにない符号語の符号化方式を示す図。
【図２１】第２実施形態における最大の零ランの場合を示す図。
【図２２】第２実施形態における復号値判定部の動作を説明するための図。
【図２３】本発明の第３実施形態に係る可変長符号化／復号化装置の構成を示すブロック図。
【図２４】図２３における符号語構成部での第１の符号語構成方法を説明する図。
【図２５】図２３における符号語構成部での第２の符号語構成方法を説明する図。
【図２６】順方向符号語テーブルと逆方向符号語テーブルを共通化した双方向符号語テーブルの構成を示す図。
【図２７】復号化器に誤り検出部を付加した場合の構成を示すブロック図。
【図２８】第３実施形態における復号化方法を説明する図。
【図２９】第３実施形態における復号値判定部の復号値判定方法を説明するための図。
【図３０】本発明の第４の実施形態に係る可変長符号化／復号化装置の構成を示すブロック図。
【図３１】図３０における一つの階層の可変長符号化部の構成を示すブロック図。
【図３２】図３０における一つの階層の可変長復号化部の構成を示すブロック図。
【図３３】図３０におけるデータ階層化部および多重化部でのデータ階層化および多重化の例を示す図。
【図３４】図３２における復号値判定部の復号値判定方法の例を示す図。
【図３５】第４実施形態に係る可変長符号化／復号化装置を図１１の動画像符号化／復号化システムに組み込んだ場合の動画像多重化部および動画像多重化分離部での動画像符号化方式のシンタックスの第１の例を示す図。
【図３６】第４実施形態に係る可変長符号化／復号化装置を図１１の動画像符号化／復号化システムに組み込んだ場合の動画像多重化部および動画像多重化分離部での動画像符号化方式のシンタックスの第２の例を示す図。
【図３７】第４実施形態に係る可変長符号化／復号化装置を図１１の動画像符号化／復号化システムに組み込んだ場合の動画像多重化部および動画像多重化分離部での動画像符号化方式のシンタックスの第３の例を示す図。
【図３８】第４実施形態に係る可変長符号化／復号化装置を図１１の動画像符号化／復号化システムに組み込んだ場合の動画像多重化部および動画像多重化分離部での動画像符号化方式のシンタックスの第４の例を示す図。
【図３９】第４実施形態における動きベクトルの符号化テーブルを示す図。
【図４０】第４実施形態における動きベクトルの符号化テーブルを示す図。
【図４１】第４実施形態における動きベクトルの符号化テーブルを示す図。
【図４２】第４実施形態における動きベクトルの符号化テーブルを示す図。
【図４３】第４実施形態における動きベクトルの符号化テーブルを示す図。
【図４４】第４実施形態における動きベクトルの符号化テーブルを示す図。
【図４５】第４実施形態における動きベクトルの符号化テーブルを示す図。
【図４６】第４実施形態における動きベクトルの符号化テーブルを示す図。
【図４７】第４実施形態における動きベクトルの一次元予測を説明するための図。
【図４８】図３５のシンタクスの場合の復号値判定方法を説明する図。
【図４９】図３６のシンタクスの場合の復号値判定方法を説明する図。
【図５０】本発明の第６実施形態に係る符号化／復号化装置であり、図１における符号語テーブル作成部の詳細構成を示すブロック図。
【図５１】本発明の第７実施形態に係る動画像符号化／復号化システムの概略構成を示すブロック図。
【図５２】図５０における動画像多重化部および動画像多重化分離部の構成を示すブロック図。
【図５３】第７実施形態に係る動画像多重化部および動画像多重化分離部での動画像符号化方式のシンタクスの例を示す図。
【図５４】本発明の第８実施形態に係る情報源符号化器の一例を示すブロック図。
【図５５】本発明の第８実施形態に係る情報源復号化器の一例を示すブロック図。
【図５６】本発明の第９実施形態に係る可変長符号化／復号化装置が組み込まれるシステムの一例を示す図。
【図５７】本発明の第１０実施形態の可変長符号化器の動作を示すフローチャート。
【図５８】第１０実施形態の順方向可変長復号化器の動作を示すフローチャート。
【図５９】第１０実施形態の逆方向可変長復号化器の動作を示すフローチャート。
【図６０】ＩＮＴＲＡ係数のＩＮＤＥＸテーブルを示す図。
【図６１】ＩＮＴＥＲ係数のＩＮＤＥＸテーブルを示す図。
【図６２】ＬＡＳＲ係数のＩＮＤＥＸテーブルを示す図。
【図６３】第１０実施形態における符号語テーブルを示す図。
【図６４】第１０実施形態における符号語テーブルを示す図。
【図６５】第１０実施形態におけるＲＵＮの固定長符号語テーブルを示す図。
【図６６】第１０実施形態におけるＬＥＶＥＬの固定長符号語テーブルを示す図。
【図６７】符号語テーブルにない符号語の符号化方式を示す図
【図６８】第１０実施形態における復号値テーブルを示す図。
【図６９】第１０実施形態における復号値テーブルを示す図。
【図７０】復号値判定部の動作を説明するための図
【図７１】リバーシブル符号の一般的な復号方法を示す図。
【図７２】通常の可変長符号の説明図。
【図７３】従来のリバーシブル符号の説明図。
【図７４】従来のスタッフィング符号を示す図。
【図７５】従来の逆復号ができない情報シンボルのシンタックスを説明するための図。
【符号の説明】
【０１９７】
５１  双方向符号語テーブル
５２  アドレス変換器
５３  識別信号
６１  誤り検出部
１０１  符号語テーブル作成部
１０２  符号語テーブル
１０３  符号化器
１０４  同期区間設定部
１０５，２０５，７０５  伝送系または蓄積系
１０６  同期区間検出部
１０７  バッファ
１０８  順方向復号化器
１０９  逆方向復号化器
１１０  復号値判定部
１１１  順方向符号語テーブル
１１２  逆方向符号語テーブル
１１３，２１３  符号化部
１１４，１２１，２１４  復号化部
１２２  符号化データ切替器
１２３  符号語テーブル切替器
１２４，６２  復号化器
２０１  符号化テーブル作成部
２０２  データ階層化部
２０３  階層別可変長符号化部
２０４  多重化部
２０６  多重化分離部
２０７  階層別復号化部
２０８  データ合成部
４０１  ブロック化回路
４０２  減算器
４０３  モード選択スイッチ
４０４  ＤＣＴ回路
４０５  量子化回路
４０６  逆量子化回路
４０７  ＩＤＣＴ回路
４０８  加算器
４０９  フレームメモリ
４１０  動き補償回路
４１１  スイッチ
４１２  モード選択回路
５０１  逆量子化回路
５０２  ＩＤＣＴ回路
５０３  加算器
５０４  モード判定回路
５０５  モード切替スイッチ
５０６  フレームメモリ
７０１  符号化制御部
７０２  情報源符号化器
７０３  動画像多重化器
７０４  送信バッファ
７０６  受信バッファ
７０７  動画像多重化分離器
７０８  情報源復号化器
７０９  動画像符号化器
７１０  動画像復号化器
９０１  上位階層可変長符号化器
９０２  下位階層可変長符号化器
９０３  多重化器
９０４  多重化分離器
９０５  上位階層可変長復号化器
９０６  下位階層可変長復号化器
１００１  パーソナルコンピュータ
１００２  ワークステーション
１００３，１００４  無線機
１００５，１００６  カメラ
【図１】
2006217613.tif 000003
【図２】
2006217613.tif 000004
【図３】
2006217613.tif 000005
【図４】
2006217613.tif 000006
【図５】
2006217613.tif 000007
【図６】
2006217613.tif 000008
【図７】
2006217613.tif 000009
【図８】
2006217613.tif 000010
【図９】
2006217613.tif 000011
【図１０】
2006217613.tif 000012
【図１１】
2006217613.tif 000013
【図１２】
2006217613.tif 000014
【図１３】
2006217613.tif 000015
【図１４】
2006217613.tif 000016
【図１５】
2006217613.tif 000017
【図１６】
2006217613.tif 000018
【図１７】
2006217613.tif 000019
【図１８】
2006217613.tif 000020
【図１９】
2006217613.tif 000021
【図２０】
2006217613.tif 000022
【図２１】
2006217613.tif 000023
【図２２】
2006217613.tif 000024
【図２３】
2006217613.tif 000025
【図２４】
2006217613.tif 000026
【図２５】
2006217613.tif 000027
【図２６】
2006217613.tif 000028
【図２７】
2006217613.tif 000029
【図２８】
2006217613.tif 000030
【図２９】
2006217613.tif 000031
【図３０】
2006217613.tif 000032
【図３１】
2006217613.tif 000033
【図３２】
2006217613.tif 000034
【図３３】
2006217613.tif 000035
【図３４】
2006217613.tif 000036
【図３５】
2006217613.tif 000037
【図３６】
2006217613.tif 000038
【図３７】
2006217613.tif 000039
【図３８】
2006217613.tif 000040
【図３９】
2006217613.tif 000041
【図４０】
2006217613.tif 000042
【図４１】
2006217613.tif 000043
【図４２】
2006217613.tif 000044
【図４３】
2006217613.tif 000045
【図４４】
2006217613.tif 000046
【図４５】
2006217613.tif 000047
【図４６】
2006217613.tif 000048
【図４７】
2006217613.tif 000049
【図４８】
2006217613.tif 000050
【図４９】
2006217613.tif 000051
【図５０】
2006217613.tif 000052
【図５１】
2006217613.tif 000053
【図５２】
2006217613.tif 000054
【図５３】
2006217613.tif 000055
【図５４】
2006217613.tif 000056
【図５５】
2006217613.tif 000057
【図５６】
2006217613.tif 000058
【図５７】
2006217613.tif 000059
【図５８】
2006217613.tif 000060
【図５９】
2006217613.tif 000061
【図６０】
2006217613.tif 000062
【図６１】
2006217613.tif 000063
【図６２】
2006217613.tif 000064
【図６３】
2006217613.tif 000065
【図６４】
2006217613.tif 000066
【図６５】
2006217613.tif 000067
【図６６】
2006217613.tif 000068
【図６７】
2006217613.tif 000069
【図６８】
2006217613.tif 000070
【図６９】
2006217613.tif 000071
【図７０】
2006217613.tif 000072
【図７１】
2006217613.tif 000073
【図７２】
2006217613.tif 000074
【図７３】
2006217613.tif 000075
【図７４】
2006217613.tif 000076
【図７５】
2006217613.tif 000077