(57)【特許請求の範囲】
【請求項１】
圧縮された信号を適応的に可変長符号化する装置であって、前記信号は、符号ワードが、フレーム内符号化に関連付けられた第１の処理方法およびフレーム間符号化に関連付けられた第２の処理方法のいずれにより生成されたかに従って、符号ワードの相互に排他的なブロックに配置された符号ワードから成り、および前記第１または第２の処理方法を識別するために前記符号ワードのブロックの各々に指標が関連付けられ、および各符号ワードは、ＲＵＮとＬＥＶＥＬにそれぞれ対応する第１および第２の信号成分を含む、装置において、
前記圧縮された信号から成る入力符号ワードのソースと、
第１の状態ＶＬＣ０における第１の入力符号ワードと出力符号ワードとの対応関係に従って、および第２の状態ＶＬＣ１における第２の入力符号ワードと出力符号ワードとの対応関係に従って、前記入力符号ワードを選択的に可変長符号化する可変長符号化手段と、
前記指標に応答して、前記第１の処理方法および前記第２の処理方法でそれぞれ処理された前記ブロックに対応する各ブロックに対して、前記第１および第２の状態のうちの１つの状態に、前記可変長符号化手段を初期化する手段であって、前記ブロックに関連付けられた指標が前記第１の処理方法を示す場合に、前記可変長符号化手段を前記第２の状態に初期化し、前記ブロックに関連付けられた指標が前記第２の処理方法を示す場合に、前記可変長符号化手段を前記第１の状態に初期化する手段と、
それぞれの符号ワードの前記第１および第２の信号成分をそれぞれ第１および第２の基準値と比較し、前記可変長符号化手段が前記第１の状態にあり、および前記第１の信号成分が前記第１の基準値より小さいか等しく、且つ前記第２の信号成分が前記第２の基準値より大きい場合に、状態を切り換えるように前記可変長符号化手段を条件付けする比較手段と
を備えたことを特徴とする適応可変長符号化装置。
【請求項２】
前記比較手段は、前記可変長符号化手段が前記第２の状態にあり、および前記第１の信号成分が前記第１の基準値より大きく、且つ前記第２の信号成分が前記第２の基準値より小さいか等しい場合に、状態を切り換えるように前記可変長符号化手段を条件付けする手段をも含むことを特徴とする請求項１に記載の適応可変長符号化装置。
【請求項３】
前記符号ワードのブロックはマクロブロックを含み、当該マクロブロックのそれぞれは複数のサブブロックを含み、当該サブブロックのそれぞれはブロック終了符号を含み、
それぞれのブロック終了符号の生起を検出し、および前記ブロック終了符号の検出に応答して、前記可変長符号化手段を、前記第１および第２の状態のうちの予め定められた１つにリセットする手段
をさらに備えたことを特徴とする請求項１に記載の適応可変長符号化装置。
【請求項４】
前記符号ワードのブロックはマクロブロックを含み、当該マクロブロックのそれぞれは複数の、予め定めたシーケンスで生起する、サブブロックを含み、
マクロブロックの最初に生起するサブブロックのうちの予め定めた入力符号ワードを符号化するのに用いられる前記可変長符号化手段の前記状態ＶＬＣｉ（ｉは、１または０）の指標を格納する記憶手段と、
前記指標に応答して、マクロブロックの残余のサブブロックのそれぞれにおける対応する予め定められた入力符号ワードを符号化する直前に、前記可変長符号化手段を前記状態ＶＬＣｉに条件付けする手段と
をさらに備えたことを特徴とする請求項１に記載の適応可変長符号化装置。
【請求項５】
前記符号ワードのブロックはマクロブロックを含み、当該マクロブロックのそれぞれは複数の、予め定めたシーケンスで生起する、サブブロックを含み、
マクロブロックの最初に生起するサブブロックのうちの予め定めた入力符号ワードを符号化するのに用いられる前記可変長符号化手段の前記状態ＶＬＣｉ（ｉは、１または０）の指標を格納し、および後続するサブブロックの生起時に、前記後続するサブブロックの対応する予め定めた入力符号ワードにおいて、前記可変長符号化手段を前記状態ＶＬＣｉに再初期化する記憶手段と、
をさらに備えたことを特徴とする請求項１に記載の適応可変長符号化装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、圧縮ビデオ信号を可変長符号化するための装置に関し、特に、自己適応形の可変長符号化／復号化装置に関する。
【０００２】
【発明の背景】
可変長または統計的エンコーダは、信号伝送もしくは信号蓄積のために、固定長の符号ワードを可変長符号ワードで符号化するために設計される。平均して、この技術は伝送もしくは貯えようとするデータ量を減少させる。可変長符号化（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ：ＶＬＣ）は符号化しようとする信号のダイナミックレンジ内において各振幅値の発生頻度を識別するために信号タイプの全体的な統計を決定し、次いで同様のダイナミックレンジを表わす可変長符号ワードのコードセットを形成することから成る。その後、最高頻度で生じる入力符号ワードが、より短いビット幅の可変長符号に割り当てられるように、固定長の入力符号ワードと可変長符号ワード間に対応関係が設定される。最も頻繁に生ずる入力符号ワードには、より少ないビット幅の可変長符号ワードが割り当てられ、それによって、入力符号ワードは平均してデータ減少をもたらす。通常、可変長符号ワードと入力符号ワードとの対応関係が一度設定されると、可変長符号は、この対応関係に従ってメモリ中のアドレス・ロケーションにロード（ｌｏａｄ）される。入力符号ワードは、メモリに対するアドレスとして供給され、メモリからの出力は可変長符号により符号化された信号を供給する。復号化は、受信側においてメモリ中の逆テーブルを使って行なわれる。
【０００３】
個々の可変長符号化が少しも効率とならないように、信号統計が変化することはそう珍しいことではない。この事態は、入力信号統計を絶えず監視し、入力信号統計が或る所定の基準まで変化したとき、可変長符号を更に効率のよい可変長符号に変えることにより解決することができる。各符号は、テーブル選択がより上位のメモリのアドレスビットに供給される制御信号により実現される状態で、符号化／復号化用メモリ中に個別のテーブルとしてロードされる。（共通のメモリ中の各種のテーブルを選択することは、よく知られた技法である。）
【０００４】
信号を符号化する為に、複数のテーブルを使用しようとするならば、エンコーダにおける可変長符号化テーブルの変更は受信側に伝えられなければならない。或る種のシステムでは、可変長符号化スイッチが作動される度に復号化テーブルが伝送される。しかし、信号の統計が頻繁に変化する場合、この方法は実用的ではない。また或る種のシステムでは、符号スイッチが作動しており、復号化するために複数のテーブルの中のどのテーブルを使用すべきかを受信側に伝えるために、符号化されたデータと共にテーブル・タイプの符号ワードを伝送する。頻繁な可変長符号化の変更が必要であり、利用可能な信号オーバーヘッドがほとんどないようなシステムの場合、先に述べたテーブル・タイプの符号ワードはこの種のシステムに過度の負担をかける。また先に述べた可変長符号化の変更についての複数のタイプを設けることなく、システムの信号プロトコルが標準化されており、そのプロトコルを使用するシステムにおいても、可変長符号化の変更を使用することが望ましい場合もある。このようなシステム／プロトコルの一例は、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）として知られる国際標準化機構（ＩＳＯ）の動画専門家グループにより設定された圧縮ビデオ信号フォーマットである。
【０００５】
【発明の概要】
本発明は、階層化信号フォーマットと共に使用され、追加の信号オーバーヘッドなしで可変長符号化の変更を適応的に与える可変長符号化／復号化システムである。可変長符号化による複数の符号化テーブルが設けられ、各テーブルは予測される信号統計に関連づけられる可変長符号化符号で予めプログラムされる。階層化された信号は、共通のパラメータを前提とするデータのブロックを含んでおり、このパラメータは信号統計に関連づけられる。データのブロックは、この種のパラメータを表わす情報を含んでいる。各パケットは共通のパラメータについて検査され、この検査に応じてデフォルト可変長符号化／復号化テーブルが割り当てられる。別の実施例において、連続する各符号ワードについて使用される可変長符号化テーブルは、最後の符号ワードおよび最後の符号ワードの相対値について用いられるテーブルに依存している。
【０００６】
【実施例】
本発明は、ＭＰＥＧと類似のビデオ信号の圧縮／伝送システムを背景にして説明されるが、共通の特性を有するデータがそれぞれのグループに合併されるような別の圧縮方法を使用することにより本発明を実施できることを理解すべきである。本発明を説明する前に、本明細書で使用される用語を理解するための情報を与えるために、図１と図２を参照しながらＭＰＥＧと類似の圧縮信号フォーマットについて説明する。ＭＰＥＧプロトコルは、順次生じるフレームをフレームのシーケンスすなわちフレームのグループ（ｇｒｏｕｐｓ ｏｆ ｆｒａｍｅｓ：ＧＯＦ）に区分けする。それぞれのＧＯＦにおけるフレームは、３つの処理法、すなわちフレーム内符号化（Ｉフレーム）、順方向フレーム間符号化（Ｐフレーム）および順方向／逆方向フレーム間符号化（Ｂフレーム）により圧縮される。符号化データの各フレームは、例えば、１６本の画像ラインを表わすスライスに区分けされる。各スライスは複数のマクロブロックに区分けされる。各マクロブロックは、例えば、１６×１６のピクセルのマトリックスを表わす。各マクロブロックは、ルミナンス信号に関する情報の４つのブロックとクロミナンス信号に関する情報の２つのブロックとを含む６つのブロックに分割される。ルミナンス情報とクロミナンス情報は個別に符号化され、その後合成されて伝送される。ルミナンスのブロックは、それぞれ８×８のピクセル・マトリックスに関連するデータを含んでいる。クロミナンスの各ブロックは、マクロブロックにより表わされる１６×１６のピクセルのマトリックスの全体に関するデータの８×８のマトリックスから成る。
【０００７】
フレーム内符号化に従って符号化されたデータのブロックは、離散余弦係数（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｃｏｅｆｆｉｃｉｅｎｔｓ）のマトリックスから成る。すなわち、８×８のピクセルから成る各ブロックは、符号化信号を発生するために離散余弦変換（ＤＣＴ：Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）を受ける。離散余弦係数は、適応形量子化を受け、ランレングス（Ｒｕｎ−Ｌｅｎｇｔｈ）および可変長（Ｖａｒｉａｂｌｅ−Ｌｅｎｇｔｈ）符号化される。従って、伝送されたデータの各ブロックは、８×８の符号ワードのマトリックスより少なく含んでいる。フレーム内符号化データのマクロブロックには、使用される量子化レベルを決める情報、マクロブロックのアドレスすなわちロケーション・インディケータ、マクロブロックのタイプ（フレーム内符号化）、およびマクロブロック内の６つのブロックの各々についてのＤＣＴ係数が含まれている。各マクロブロックの後にはブロックの終り（Ｅｎｄ  ｏｆ  Ｂｌｏｃｋ：ＥＯＢ）符号が続く。
【０００８】
ＰもしくはＢのフレーム間符号化に従って符号化されたデータのブロックも離散余弦係数のマトリックスから成る。しかしながら、この場合、係数は予測した８×８のピクセル・マトリックスと実際の８×８のピクセル・マトリックス間の残余すなわち差を表わす。これらの係数も量子化とランレングスおよび可変長符号化を受ける。フレームシーケンスにおいて、ＩフレームとＰフレームはアンカー（ａｎｃｈｏｒ）フレームと呼ばれる。各Ｐフレームは、最後に生じるアンカーフレームから予測される。各Ｂフレームは、それらの間に配置されることになる２つのアンカーフレームの一方もしくは２つのアンカーフレームの両方から予測される。予測符号処理には、アンカーフレームのどのマクロブロックが現在符号されつつある予測フレームのマクロブロックに最もよく一致するかを示す変位ベクトルを発生することが含まれる。アンカーフレームにおける一致したブロックのピクセルデータは、残余を発生するために、符号化されつつあるフレームのブロックからピクセル毎に引き算される。残余は離散余弦変換され、変換された残余および動きベクトルは予測フレームのための符号化データを構成する。フレームは予測符号化されるけれども、適当なブロックの一致が見つからなければ、予測フレーム中の個々のブロックもしくはマクロブロックはフレーム内符号化される。また、マクロブロックの或るものは符号化されないこともある。マクロブロックは、符号化された次のマクロブロックのアドレスを増加させることにより飛ばされる。フレーム間符号化されたデータのマクロブロックには、使用される量子化レベルを決める情報、マクロブロックのアドレスすなわちロケーション・インディケータ、マクロブロックのタイプ（フレーム内符号化、フレーム間符号化）、およびマクロブロック内における６つのブロックの各々についてのＤＣＴ係数が含まれている。各マクロブロックの後にはブロックの終了符号（Ｅｎｄ  ｏｆ  Ｂｌｏｃｋ：ＥＯＢ）が続く。
【０００９】
ビデオデータは符号化された後、ＭＰＥＧと類似のプロトコルに従って構成される。ＭＰＥＧの階層化フォーマットは複数の層を含んでおり、各層はそれぞれヘッダ情報を有する。通常、各ヘッダは、開始符号、各層に関連するデータ、ヘッダ拡張を加えるための項目を含んでいる。ヘッダ情報の多くは同期をとるために必要なものである。
【００１０】
図３は、可変長エンコーダを含んでいる例示的ＭＰＥＧエンコーダの一部を示す。図３において、離散余弦変換、すなわちＤＣＴ装置（図示せず）からの変換係数は、各ＤＣＴ係数の値を制限する量子化器９に供給される。量子化処理により、ＤＣＴ係数の多くが零の値に減じられる。量子化された係数はランレングス・エンコーダ１０に結合される。ランレングス・エンコーダ１０の出力は、固定で一定のビット幅の符号ワードである。この固定のビット幅の各符号ワードは、ここではＲＵＮと呼ぶが、最後の非零値の係数と次の非零値の係数との間の零値の係数の数に関する情報を伝える第１の部分と、ここではＬＥＶＥＬと呼ぶが、非零値の各係数の値に対応する第２の部分とを含んでいる。これらの符号ワードは可変長エンコーダ（ＶＬＣ）１１に結合される。可変長エンコーダ１１は、各アドレス・ロケーションにおいてブログラムされたメモリであって、アドレス値に対応する可変長符号ワードを有する。このメモリは、互いに排他的な２つのテーブルの中に少なくとも２組の可変長符号化符号ワードを含んでいる。それぞれのテーブルは、アドレス値の最上位ビットに選択ビットを加えることにより選択される。この例では、選択ビットは可変長符号化テーブル論理回路（ＶＬＣ  Ｔａｂｌｅ  Ｌｏｇｉｃ）１５から供給される。
【００１１】
可変長符号化により符号化されたデータはデータ・フォーマット回路１２に結合される。データ・フォーマット回路１２は、フォーマット制御回路１３と協働して、ＭＰＥＧプロトコルに従って、処理済みのデータを形成する。フォーマット制御回路１３は、システム全体のコントローラ１４により制御される。コントローラ１４は、Ｉフレーム、Ｐフレーム、Ｂフレーム等のフレームのグループを設定するために、より高レベルのコマンドによりプログラムされている。フォーマット制御回路１３は、コントローラ１４に応答して適当なデータ・シーケンスを形成する。シーケンスを決めるデータには、可変長エンコーダ１１からの可変長符号化により符号化された係数、動きベクトル、マクロブロックの符号化／非符号化符号ワード、予測エンコーダ（図示せず）からのマクロブロックの符号化タイプ（フレーム内、フレーム間など）、フォーマット回路１２内のテーブルから得られるか、あるいはフォーマット制御回路１３またはフォーマット回路１２内で発生されるヘッダデータの個別のタイプが含まれる。
【００１２】
可変長符号化テーブル論理回路１５は、ランレングス・エンコーダ１０およびフォーマット制御回路１３からデータを受け取り、それぞれの符号ワードに使用される可変長符号化テーブルを決める。可変長符号化テーブルが、符号化データに依存して選択されるから、適応形可変長エンコーダすなわちＡＶＬＣと呼ばれる。
【００１３】
図４は図３に示す適応形可変長エンコーダと逆の動作を実行するように構成された可変長デコーダ（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｄｅｃｏｄｅｒ：ＶＬＤ）を示す。テーブル選択論理回路３０がなければ、図４の各要素は典型的な可変長デコーダを示す。可変長符号化されたデータは、母線２５に供給され、デコーダ／制御回路２７およびビットシフター２６に結合される。制御回路２７は、データ・ストリーム中の個々の符号ワード（例えば、ヘッダ）を識別し、装置全体の同期をとる。制御回路２７は、同期用符号ワードに応答して状態装置（ｓｔａｔｅ  ｍａｃｈｉｎｅ）をセットし、復号化を開始する。
【００１４】
可変長デコーダへの入力は、明らかなワード境界のないビット・ストリームである。ＶＬＤは、符号ワードを復号化し、その長さを決定し、そして次の符号ワードを復号化する前に、復号化された符号ワードの長さに対応するビット数だけ入力ビット・ストリームをシフトするという順次のシーケンスを実行する。状態装置２９は、プログラムされた復号化テーブルが入っているメモリ２８のアドレス入力ポートに可変長符号化コードの順次のシーケンスを供給するように条件づける。復号化テーブルは、復号化されたデータを供給するだけでなく、対応する符号化された可変長符号化コードのビット幅も供給する。ビット幅情報は状態装置２９に供給され、装置２９はこのビット幅情報を使ってビットシフターに供給される順次の制御値を計算する。状態装置２９は、正しい符号化シーケンスを維持するために、符号化されたデータに応答して入力データ・タイプにおけるシフトを予測する。状態装置２９が符号化されたデータに応答するかどうかは、制御回路２７に割り当てられた符号化作業に依存する。
【００１５】
このシステムの場合、テーブル選択論理回路３０がなくても、メモリ２８は所定の間隔で生ずる個別のタイプのデータを符号化するための複数の符号化テーブルを含んでいる。この例では、制御回路２７もしくは状態装置２９の何れかが、先に述べた間隔を判別し、および符号化テーブル間の切り換えをするように構成されている。この種の符号化テーブルの切り換えは、図３に関連して説明したような方法で符号化された適応形可変長符号化コードの復号化とは区別され、別個のものである。
【００１６】
この可変長デコーダは、テーブル選択論理回路３０により適応形可変長デコーダすなわちＡＶＬＤとして構成される。テーブル選択論理回路３０は、符号化データに応答し、次の可変長符号ワードを復号化するために、メモリ２８中に入っている複数の復号化テーブルの中のどれを使用すべきであるかを決める。
【００１７】
この例では、適応形可変長符号化／適応形可変長デコーダは、２つの符号化／復号化テーブルを使用する。これらのテーブル中、一方はＶＬＣ０（ＶＬＤ０）と呼ばれ、他方はＶＬＣ１（ＶＬＤ１）と呼ばれる。ＶＬＣ０（および逆関係にあるＶＬＤ０）のテーブルは、より小さい値の係数について最適化されており、ＶＬＣ１（ＶＬＤ１）のテーブルは、より大きい値の係数について最適化されている。このＶＬＣ０のテーブルは、ＭＰＥＧにより推奨された可変長符号化用の符号化テーブルと実質的に同様なものである。
【００１８】
可変長符号化／復号化の適応性は、ブロック・タイプ（フレーム内符号化ルミナンスとクロミナンス、あるいはフレーム間符号化ルミナンスとクロミナンス）およびランレングス符号化器から供給される各符号ワードに含まれている情報に依存する。ランレングス符号化器から供給される各符号ワードはＲＵＮ成分とＬＥＶＥＬ成分を持っていることを思い出されたい。フレーム間符号化データについてのＤＣＴ係数は、残余を表わすから、それらの各値はフレーム内符号化データの係数よりも小さくなる傾向がある。連続する各符号ワードについて符号化／復号化テーブルを選択する第２の基準は、直前の符号ワードの特性である。この例では、ＲＵＮ成分とＬＥＶＥＬ成分の値が検査される。エンコーダ（デコーダ）が符号化／復号化テーブルＶＬＣ０を使用するように現在条件づけられ、且つＲＵＮの値が零で、ＬＥＶＥＬの値が所定値Ｖ（例えば、Ｖ＝１）より大きいならば、符号化／復号化は符号化／復号化テーブルＶＬＣ１に切り換えられる。エンコーダ（デコーダ）が符号化／復号化テーブルＶＬＣ１を使用するように現在条件づけられており、且つＲＵＮが１より大きく、ＬＥＶＥＬの値がＶより小さいかＶに等しいと、このシステムは符号化／復号化テーブルＶＬＣ０に切り換わる。最後に、前の符号ワードがブロック終了（ＥＯＢ）のコードならば、システムは符号化／復号化テーブルＶＬＣ０にリセットする。
【００１９】
各マクロブロックの始まりにおいて、符号化テーブルはデフォルト・テーブルに設定され、マクロブロックがフレーム内で符号化されているならば、符号化テーブルはＶＬＣ１（ＶＬＤ１）に設定され、マクロブロックがフレーム間で符号化されているならば、符号化テーブルはＶＬＣ０（ＶＬＤ０）に設定され、マクロブロック内の各ブロックの終りに、符号化テーブルはＶＬＣ０（ＶＬＤ０）に再設定される。このようにして、各ブロックのＤＣ係数は、これらの予め設定されたテーブルに従って符号化される。マクロブロック中の最初のブロックの最初のＡＣ符号ワードが符号化された後、現テーブル・タイプおよびＲＵＮとＬＥＶＥＬの値が分析され、マクロブロック中の最初のブロックの第３番目の符号ワードについて使用されるテーブルＶＬＣｉが決定される。指標ｉは保持され、マクロブロック中の残りのブロックの最初の符号ワード（ＤＣ係数を除く）に対してテーブルＶＬＣｉを最初に使用するようにエンコーダがセットされる
【００２０】
図５は、適応形可変長符号化装置／適応形可変長デコーダ装置の両方についてのテーブル論理回路の動作を示す。両方のシステムは、ブロック１０７を除くと同様に動作する。適応形可変長デコーダ装置において、このブロック１０７は現符号ワードを可変長符号化／復号化する過程である。符号化／復号化システムはシステム全体のコントローラにより初期化される［１００］。次いで、エンコーダ（デコーダ）は、最初に生じるマクロブロックＭＢを待ち［１０２］、それが生じると、そのタイプを決める［１０３］。マクロブロックＭＢのタイプが検査され［１０４］、そのタイプがフレーム間（フレーム内）符号化されたものであることを示すと、ＶＬＣ０（ＶＬＣ１）符号化／復号化テーブルを使用するようエンコーダ（デコーダ）を条件づける［１０５，１０６］。マクロブロックＭＢ中の最初の係数は、このテーブルを使用して符号化／復号化される［１０７］。符号ワードはＥＯＢコードであるかどうかを決めるために検査される［１０８］。もし符号ワードがＥＯＢであるならば、次のブロックにおける最初の符号ワードについてシステムを条件づけるテーブルＶＬＣ０にリセットする［１０９］。もし最後の符号ワードがＥＯＢであるならば、ＥＯＢコードがマクロブロックＭＢの終りに生じたかどうかを決定するために検査が行われる［１１０］。もしそうであるならば、次のマクロブロックＭＢを待つようにシステムは条件づけられ、そうでなければ、次の符号ワードを符号化（復号化）するようにシステムは条件づけられる。
【００２１】
符号ワードが可変長符号化（復号化）［１０７］された後、ＲＵＮおよびＬＥＶＥＬ成分がアクセスされる［１１１］。次いで、システムが符号化（復号化）テーブルＶＬＣ０を使用するように現在条件づけられており［１１２］、最後（最新）の符号ワードのＲＵＮの値が例えば零に等しく［１１３］、ＬＥＶＥＬの値がＶより大きいと、次の符号ワードを符号化／復号化１するために［１０７］、テーブルＶＬＣ１を使用するようにシステムは切り換えられる［１１５］。現テーブルがＶＬＣ０であって、後の２つの条件が満たされなければ、システムはテーブルＶＬＣ０を使用しつづける［１１６Ａ，１１６Ｂ］。
【００２２】
あるいは、テーブルＶＬＣ１を使って符号化（復号化）するようにシステムが現在条件づけられており、且つＲＵＮ成分が１より大きく［１１７］、ＬＥＶＥＬ成分がＶに等しいかＶより小さいと、テーブルＶＬＣ０を使って符号化（復号化）するようにシステムは切り換えられる［１２０］。テーブルＶＬＣ１を使って符号化（復号化）するようにシステムが現在条件づけられており、且つ後の２つの条件が満たされなければ、システムはテーブルＶＬＣ１を使用し続ける［１１８，１２１］。
【００２３】
図６は、図５におけるサブルーチン［１５０］のフローチャートである。このサブルーチンは、マクロブロックの順次の各ブロックにおいて、最初のＡＣ係数用の符号化テーブルを、マクロブロックの最初のブロックの第３番目の符号ワード（ＤＣ係数後の第２番目の符号ワード）用に定められたテーブルＶＬＣｉに設定する。初期化［１００］（図５参照）の間、サブルーチンは指標ＢとＷを零にリセットすることにより初期化される［２００］。この例において、指標ＢとＷは、ブロックと符号ワードの計数値に対応する。各入力符号ワードが符号化されると、ワード計数値は増加され［２０１］、また各ＥＯＢの後にブロック計数値が増加される［２０２］。マクロブロック中のすべてのブロックが処理されたかどうかを決定するために指標Ｂが検査される［２０３］。すべてのブロックが処理済みであれば、指標ＢとＷは零にリセットされる。すべてのブロックが符号化されていなければ、エンコーダがマクロブロックの最初のブロック（Ｂ＝０）を符号化しているかどうかを決定する為に指標Ｂが検査される［２０５］。もしシステムが最初のブロックを符号化しているならば、最初のブロックにおける第２番目の符号ワード（ＤＣ係数を除いて）が最後に符号化されたかどうかを決定するために指標Ｗが検査される［２０６］。もし最初のブロックにおける第２番目の符号ワードが最後に符号化されたものであれば、第２番目の符号ワードを符号化するために、決定されたテーブルに対応する指標ｉが保持される［２０７］。もしそうでなければ、システムは次の符号ワードの符号化を続ける。
【００２４】
システムが、マクロブロックの最初のブロックを符号化しているのでなくて、マクロブロックの続いているブロックの中の１つを符号化しているならば、処理しようとする次の符号ワードがそのブロックの最初のＡＣ係数に対応するものであるかどうかを決定するために、指標Ｗが検査される［２０８］。もし対応するものであれば、ステップ［２０７］で蓄積された指標ｉが、そのブロックの最初のＡＣ係数に対応する符号ワードについてＶＬＣｉを使用するようにエンコーダをセットする［２０９］ために使われる。
【００２５】
図７は、適応形可変長エンコーダ（適応形可変長デコーダ）を自己適応形にするためのテーブル選択機能回路の別の好ましい実例を例示するフローチャートである。この実施例において、それぞれの復号化テーブルはスライスの始まりに在り、その後選択されたテーブルは予測値に依存する。先の例の場合のように、テーブルの切り換えは、使用中の現テーブルおよびＲＵＮとＬＥＶＥＬの値により決定される。しかしながら、この実施例の場合、ブロック・タイプの第２番目の符号ワード（フレーム内ＤＣ係数を除く）を符号化するのに使われるテーブルは、マクロブロック毎ではなくてスライス全体内における同じタイプの続いてのブロックの符号化を再初期化するために使用される。
【００２６】
以下の説明において、エンコーダは常にテーブルＶＬＣｉまたはＶＬＤｉに従って符号化し、且つ指標ｉは各ブロックおよび符号ワードについて決定されるものとする。この指標は、各ブロックの符号化の始まりにおいて、可変予測指標プレドｐｒｅｄ（ＭＢＢＴＹＰＥ）に予めセットされる。プレド（ＭＢＢＴＹＰＥ）の値は、各スライスの始まりにおいてデフォルト値にセットされる。その後、これらの指標は、それぞれのブロック・タイプの中の例えば第２番目の符号ワードを復号化するために使用される指標ｉにセットされる。すなわち、ルマ・フレーム内ブロックに遭遇する最初の時、そのブロック・タイプに対応するプレド（ＭＢＢＴＹＰＥ）は、そのブロックの第２番目の符号ワードを符号化するのに使われる指標ｉにリセットされる。同様に、フレーム間ルマ、フレーム内クロマ、フレーム内クロマのブロックの何れかが最初に生じたとき、各プレド（ＭＢＢＴＹＰＥ）は対応する指標ｉに更新され、フレームの残りの間保持される。新しいブロックが符号化のために生じる度に、テーブル指標はその新しいブロックのタイプに対応する各プレド（ＭＢＢＴＹＰＥ）にセットされる。
【００２７】
フレーム内符号化ルミナンス、フレーム間符号化ルミナンス、フレーム内符号化クロミナンス、およびフレーム間符号化クロミナンスの４つのプレド（ＭＢＢＴＹＰＥ）がある。これら４つのフォーマットに対するデフォルト・プレド（ＭＢＢＴＹＰＥ）は、それぞれ１，０，１，０である。これらのデフォルト値は、符号化／復号化しようとする圧縮ビデオ信号の各スライスの開始時に各プレド（ＭＢＢＴＹＰＥ）にロードされる。
【００２８】
図７を参照すると、符号化の開始［６００］時に内部指標は初期値にセットされる。圧縮ビデオ信号のスライスが発生すると［６０２］、各プレド（ＭＢＢＴＹＰＥ）はデフォルト値にセットされる［６０４］。マクロブロックのヘッダはそのタイプ、従ってそのブロック・タイプについて検査される［６０５］。その“タイプ”の変数はブロックが符号化されるかどうかを決定するために検査され［６０６］、符号化されなければ、対応するプレド（ＭＢＢＴＹＰＥ）は零にセットされる。ブロックが符号化されるならば、指標ｉはそのブロック・タイプに対応するプレド（ＭＢＢＴＹＰＥ）の値にセットされる。符号ワード指標Ｎは、各符号化ブロックの始まりにおいて１にセットされる［６０９］。次いで、符号ワードＮが符号化される［６１０］。各符号ワードが符号化された後、それがＥＯＢコードであったかどうかを決定するために検査が行われる［６１２］。ＥＯＢコードでなかったならば、ＲＵＮおよびＬＥＶＥＬの値が読み出され、図５のステップ［１１１−１２１］に関連して説明した条件つき切換えと同様に、指標ｉが条件つきで切り換えられる［６１４−６２０］。符号ワードがブロックの最初の符号ワードであったかどうかを決定するために、符号ワード指数Ｎが検査される［６２２］。（フレーム内符号化ＤＣ係数は符号ワードＮの考察部分ではないことに注意されたい。）指標が１に等しくなければ、インデックスＮは１だけ増加され、次の符号ワードが符号化される。指標Ｎが１ならば、適当なプレド（ＭＢＢＴＹＰＥ）は、最後に決定された指標ｉにセットされる［６２４］。しかしながら、それぞれのｐｒｅｄ（ＭＢＢＴＹＰＥ）は、スライス毎に一括して更新せざるを得ないことに注意されたい。次いで、指標Ｎは増加され、次の符号ワードが符号化される。
【００２９】
ステップ［６１２］において、最後の符号化された符号ワードがＥＯＢコードであるならば、指標ｉは零にセットされる［６３０］。指標Ｎが検査され［６３２］、Ｎが１に等しくないとステップ［６０２］を続行し、次のデータ・ブロックを取ってくるように条件づけられる。指標Ｎが１に等しいと、適当なプレド（ＭＢＢＴＹＰＥ）は最後に使用された指標ｉにセットされる。
【００３０】
以上説明した各例においては、符号化／復号化テーブルの切り換えは、ＲＵＮおよびＬＥＶＥＬ変数の関数となっており、システム全体の符号化効率を高める傾向にある。もしＲＵＮの値が大きいと、係数は零に近いものであると予測することができる。実際、ＬＥＶＥＬの値が小さいことが分ると、次の符号ワードは同様な属性を有するとが予測できる。従って、同様な属性を利用するためにシステムを切り換えることができる。この場合、順次の符号ワードの相対統計は前の符号ワードの値から推定され、統計の推定に基づいて符号化テーブルは選択される。変数ＬＥＶＥＬの値に関係なく、変数ＲＵＮの値に基づいて、別の可変長符号化／復号化システムが適応形のものになることに注目されたい。
【００３１】
符号化装置と復号化装置は同様なものであり、可変長エンコーダ（可変長デコーダ）の適応性を有効にするためには、同じ基本パラメータが同じ基本方法で使用される。従って、特許請求の範囲において、可変長エンコーダまたはコーダという用語は符号化装置あるいは復号化装置の両方を含むものであることに注意されたい。
【図面の簡単な説明】
【図１】ＭＰＥＧと類似の信号符号化階層を絵画で表したものである。
【図２】圧縮ビデオデータの転送パケットのフォーマットと内容を絵画で表したものである。
【図３】本発明を具体化する可変長符号化装置のブロック図である。
【図４】本発明を具体化する可変長復号化装置のブロック図である。
【図５】図３および図４に示すテーブル論理機能の動作を説明するフローチャートである。
【図６】図５に示すサブルーチン・ステップのフローチャートである。
【図７】テーブル論理機能の別の実施例の動作を説明するフローチャートである。
【符号の説明】
９      量子化器
１０    ランレングス・エンコーダ
１１    可変長符号化（ＶＬＣ）テーブル
１２    フォーマット回路
１３    フォーマット制御回路
１４    システム・コントローラ
１５    可変長符号化（ＶＬＣ）テーブル論理回路
【図１】
0003699136.tif 000002
【図２】
0003699136.tif 000003
【図３】
0003699136.tif 000004
【図４】
0003699136.tif 000005
【図５】
0003699136.tif 000006
【図６】
0003699136.tif 000007
【図７】
0003699136.tif 000008