(57)【要約】【課題】本発明は、Ｈ.２６４復号処理におけるRun_before復号処理にかかるサイクル数を短縮することを目的とする。【解決手段】上記課題を解決するために本発明における可変長符号装置では、Run_before復号処理おいて参照する復号ルックアップテーブルの最適化を行うことにより、ルックアップテーブルへのアクセス回数を減らし、これまで最大１４サイクルかかっていた復号処理サイクルを１サイクルに短縮することを可能とする。【選択図】図１
2011188431.tif 000002
【特許請求の範囲】
【請求項１】
符号化ストリームを入力し、Coeff_token復号部と、Trailing_ones復号部と、レベル復号部と、Total_zeros復号部と、前記レベル係数とゼロ係数が隣接するかどうかの判断を、高周波成分側にあるレベル係数から順にRun_beforeを復号することなく前記ゼロ係数が配列される位置とその配列個数が特定できるように復号ルックアップテーブルの最適化を行うRun_before復号部と、レベル係数部と、結合情報記憶部と、結合部を有したことを特徴とする可変長復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可変長復号装置に関わり、特に、Ｈ.２６４可変長符号化ストリームの復号処理における処理サイクル数の短縮に関するものである。
【背景技術】
【０００２】
Ｈ.２６４符号化方式には、適応可変調符号化（ＣＡＶＬＣ）と算術符号化（ＣＡＢＡＣ）の２つのエントロピー符号化が採用されており、これらエントロピー符号化により生成された符号化ストリームの復号プロセスについては、ＩＳＯ／ＩＥＣ１４４９６-１０規格に記載がある。本発明はこのうちＣＡＶＬＣに関係するものであり、ここでは、従来のＣＡＶＬＣの復号プロセスについて説明する。
ＣＡＶＬＣとは、context-based adaptive variable length codingの略であり、入力される符号化ストリーム中の符号化コードと、復号プロセスで得られる復号シンボルを使い参照する復号テーブルの参照先アドレスを適応的に変化させて、符号化ストリーム中の符号化コードを復号していくものである。
【０００３】
図３Ａは、従来の可変長復号装置の一例の構成を示すブロック図である。図３Ａを用いて、従来の可変長復号装置における復号プロセスを説明する。３００は従来の可変長復号装置、１０１〜１０４および３０５は復号部、１０６はレベル係数部、３０８は結合部である。
５つの復号部１０１〜１０４、および３０５は、前段に位置する復号部から順に以下の復号を行う。即ち、復号部１０１は入力された符号化ストリームのCoeff_token係数のシンボルを復号し、復号部１０２はTrailing_ones係数シンボルを復号し、復号部１０３はレベル係数シンボルを復号し、復号部１０４はTotal_zeros係数シンボルを復号し、復号部３０５はラン係数のシンボルを復号する。各復号部は、前段の復号プロセスが完了すると、その復号シンボルを使って復号処理が開始できるようになっている。
一連の復号処理は、サブマクロブロック（ＳＭＢ）と呼ばれる４画素×４画素のブロック単位で行われる。そして、復号部１０１と復号部１０２は、それぞれ、上記Coeff_token係数とTotal_zeros係数を１ＳＭＢあたりに１回、復号処理する。また復号部１０３、１０４および３０５は、それぞれ、Trailing_ones係数、レベル係数、ラン係数について、入力符号化ストリームに応じ、繰り返し、シンボルの復号処理を行う。従って、１ＳＭＢの復号処理を行うには、複数回にわたり復号テーブルにアクセスしなければならない。
【０００４】
図３Ａの可変長復号装置３００において、符号化ストリームは復号部（Coeff_token復号部）１０１に入力する。復号部１０１は、これから復号を開始するＳＭＢ内にあるレベル係数の数を示すシンボルTotal_coeffのシンボルの復号処理を実行する。図３ＢにCoeff_token復号部１０１の内部機能構成を示す。
Coeff_token復号部１０１は、符号化ストリームをバッファリングしておくためのストリーム記憶手段１２０と、シフトレジスタなどで構成されるストリーム供給手段１２１、ＩＳＯ／ＩＥＣ１４４９６-１０規格のＪＶＴ−Ｇ０５０１に記載があるCoeff_token復号テーブル１２２、および、復号シンボルを一時記憶するためのTotal_coeff記憶手段１２３からなる。
【０００５】
Coeff_token復号部１０１の処理動作を、図３ＢのCoeff_token復号部１０１を用いて説明する。
図３Ｂにおいて、ストリーム記憶手段１２０は、符号化ストリームをバッファリングする。ストリーム供給手段１２１は、ストリーム記憶手段１２０から、復号する符号化ストリームを取り込み、Coeff_token復号テーブル１２２に出力する。
Coeff_token復号テーブル１２２は、入力されたストリームを、先頭ビットから順々にマッチングし、一致すると、対応付けされた値がシンボルとしてTotal_coeffとなる。復号されたTotal_coeffは、ＳＭＢ内のレベル係数の総数を示すもので、後段の復号部で必要なシンボルである。このため、Total_coeff記憶手段１２３に出力され、Total_coeff記憶手段１２３はこのシンボルを記憶する。またこの時、Coeff_token復号テーブル１２２は、一致した符号化コードのビット長を、消費ビットとして、ストリーム供給手段１２１に出力（フィードバック）する。
ストリーム供給手段１２１は、フィードバックされる消費ビット長分、次のストリームの読み出し位置をシフトさせ、符号化ストリームを次の符号化コードの先頭から読み出せるようにしている。
ストリーム供給手段１２１で、消費ビット長分ストリームがシフトすると、Coeff_token復号部１０１の処理が完了したとして、Trailing_ones復号部１０２に処理が移行する。
【０００６】
Trailing_ones復号部１０２は、上記Total_coeff記憶手段１２３に一時記憶されたTotal_coeffが示すレベル係数において係数“１”の符号に関するシンボルを復号する復号部で、上記Coeff_token復号部１０１と同様、復号テーブルを使った処理が行われる。
【０００７】
次に、レベル復号部１０３の処理動作を、図３Ｃに示すレベル復号部の内部機能ブロック図を用いて説明する。
レベル復号部１０３は、レベル係数に関する復号処理であり、Ｈ.２６４符号化方式における符号なしゴロム復号にあたる。ここでは、符号なしゴロム復号の一般的な復号方法について説明する。
【０００８】
レベル復号部１０３は、前述したCoeff_token復号部１０１と共通のストリーム記憶手段１２０とストリーム供給手段１２１を備え、そのほかにプレフィックス復号部１３０、プレフィックス記憶手段１３１、サフィックス復号手段１３３およびレベルコード演算手段１３２、消費ビット選択手段１３４を備える。
図３Ｂと同様に、ストリーム記憶手段１２０は、符号化ストリームをバッファリングする。ストリーム供給手段１２１は、ストリーム記憶手段１２０から、復号する符号化ストリームを取り込み、プレフィックス復号部１３０とサフィックス復号手段１３３に出力する。
ストリーム供給手段１２１からストリーム記憶手段１２０の符号化ストリームが供給されると、はじめにプレフィックス処理を行う。プレフィックス復号部１３０は、供給されたストリームを復号テーブルであらかじめ用意されているプレフィックス値に対応したビット列と照合し、プレフィックス値と完全に一致したストリームのビット長を求める。一致したプレフィックス値は、プレフィックス記憶手段１３１に一時記憶されると共に、ビット長の情報は、消費ビット選択手段１３４を経由しストリーム供給手段１２１出力される。
ストリーム供給手段１２１は、消費ビット選択手段１３４から入力されてくるビット長分、符号化ストリームをシフトさせ、次のサイクルからサフィックスに対応する符号化コードの復号をスタートさせる。通常は、外部から入力するタイミング信号に基づいて、プレフィックス復号手段１３０が終了した次のサイクルから、サフィックス復号手段１３３が有効になるように制御を切り替えている。
一方、サフィックス復号手段１３３は、プレフィックス記憶手段１３１に記憶されたプレフィックス値をもとに、供給されてくる符号化ストリームの有効ビットを認識し処理を行う。また、レベルコード演算手段１３２は、プレフィックス記憶手段１３１に格納されているプレフィックス復号シンボルと、サフィックス復号手段１３３で復号された復号シンボルを使い、所定の演算処理を行い、レベル係数を復号結果として出力する。同時にサフィックス復号手段１３３は、消費したビット長を消費ビット選択手段１３４に出力する。
消費ビット選択手段１３４は、上記タイミング信号に従い、有効中の復号手段がプレフィックス復号手段１３０なのか、サフィックス復号手段１３３なのかに判断し、入力される消費ビットをストリーム供給手段１２１へ出力する。１シンボルの復号で、ストリーム供給手段１２１は、プレフィックスの復号とサフィックスの復号の２回ストリームを読み出さなければならないため、２サイクル必要となる。また、レベル復号部の繰り返し処理は、レベル係数の数に一致し、１ＳＭＢあたりの最大復号シンボル数は１５係数であるため、レベル復号部１０３で想定される処理サイクル数は最大３０サイクルとなる。なお、符号なしゴロム復号方法については、プレフィックスとサフィックスを同時処理させ、サイクルを短くするための提案もいくつか出ており、一例としては、特許文献１などがある。
【０００９】
次に、Total_zeros復号部１０４の処理動作を、図３Ｄに示すTotal_zeros復号部の内部機能ブロック図を用いて説明する。復号されるシンボルのTotal_zerosは、４×４のＳＭＢを高周波成分側から逆スキャンした際にもっとも高周波成分側に位置する有意係数からＤＣ成分までの１次元配列において存在するゼロ係数の数を表すものである。図３Ｄに示すように、上記Coeff_token復号部１０１と同様に、ストリーム記憶手段１２０から符号化ストリームをストリーム供給手段１２１に取り込み、ＩＳＯ／ＩＥＣ１４４９６-１０規格のＪＶＴ−Ｇ０５０１に記載があるTotal_zeros復号テーブル１４０とのマッチングにより、Total_zerosと一致した符号化ストリームのビット長を求める。
【００１０】
Total_zerosは、Total_zeros記憶手段１４１に一時記憶され、ビット長は先に説明した各復号部１０１〜１０３と共通のストリーム供給手段１２１へ送られる。ストリーム供給手段１２１はTotal_zeros復号テーブル１４０から受け取った消費ビット長分、次のストリームの読み出し位置をシフトさせることにより、次の復号部であるRun_before復号部３０５では符号化コードの先頭から始まる符号化ストリームを入力できるようになる。
つまり、ストリーム供給手段１２１が、ストリームを消費ビット数分シフトすると、Total_zeros復号部１０４の処理は完了となり、Run_before復号部３０５に処理が移る。１ＳＭＢあたりに行うTotal_zeros復号部１０４の処理が１回であることから、Total_zeros復号部１０４での処理サイクル回数は１サイクルとなる。
【００１１】
最後に、Run_before復号部３０５について説明する。図３Ａの可変長復号装置３００から最終的に出力される伸張ストリームは、４×４のＳＭＢを高周波成分側から逆スキャンして並べた一次係数列である。
１６個の係数列の並びは、入力符号化ストリームにより変動し、先にレベル復号部１０３にて復号されたシンボルのレベル係数は、この係数列を構成する非ゼロ係数に該当する。例えば、レベル復号部１０３にて復号されたレベル係数のシンボル数が１６個未満のときには、ゼロ係数がこのレベル係数との間に挿入されることになる。つまり、Run_before復号部３０５は、先にレベル復号部１０３で復号されたレベル係数とTotal_zeros復号部１０４で復号されたゼロ係数を配列するためのシンボルを復号し、一次係数列にする際にゼロ係数の挿入位置とその挿入数に関するシンボルとなる。このシンボルを使い結合部３０８でレベル係数とゼロ係数の配列をおこない最終的な伸張ストリームが出力されることになる。
【００１２】
Run_before復号部３０５の内部機能ブロック図を図３Ｅに示す。Run_before復号部３０５は、ストリーム記憶手段１２０、ストリーム供給手段１２１、アドレス生成手段１５０、ＩＳＯ／ＩＥＣ１４４９６-１０規格のＪＶＴ−Ｇ０５０１に記載があるRun_before復号テーブル１５１、およびZeros記憶手段１５２からなる。
アドレス生成手段１５０は、ストリーム記憶手段１２０からストリーム供給手段１２１に取り込まれた符号化ストリームと、Zeros記憶手段１５２から入力されるZeros_leftとに基づいて、Run_before復号テーブル１５１の参照アドレスを決定する。Run_before復号テーブル１５１は、ゼロ係数の挿入の有無と挿入時の個数を示すシンボルとなるRun_beforeを復号し、Run_before積算手段１５３および結合部３０８に出力する。またRun_before復号テーブル１５１は、消費ビット数をストリーム供給手段１２１を介してスタート記憶手段１２０に出力し、スタート記憶手段１２０に記憶させる。同様に、Run_before積算手段１５３は、入力されたシンボルRun_beforeを積算し、Zeros記憶手段１５２に出力し、Zeros記憶手段１５２のデータを更新する（詳細は後述する）。
【００１３】
Run_before復号処理は、アドレス生成手段１５０に入力されるZeros_leftが更新されゼロになるまで繰り返される。
即ち、Run_before復号部３０５は、Run_before復号テーブル１５１にアクセスし、１シンボルずつ復号されるたびに、消費したビット長がRun_before復号テーブル１５１からストリーム供給手段１２１に送られ、ストリーム供給手段１２１にて消費ビット長分、次のストリームの読み出し位置がシフトするようになっている。
また、復号開始時は、Total_zeros復号部１０４で復号されたシンボルTotal_zerosがZeros_leftの初期値となりRun_before復号テーブル１５１の参照アドレスを確定する。また、２回目以降は、シンボルを繰り返して復号する際には、復号したシンボルRun_beforeをRun_before積算手段１５３で累積加算したシンボルZerosを、Zeros記憶手段１５２に記憶されているシンボルZeros_leftから減算し、減算結果に置き換えて更新したシンボルZeros_leftを使い、Run_before復号テーブル１５１の参照アドレスを適応的に変えていく。
【００１４】
従来のRun_before復号テーブル１５１の一例を図４に示す。図４を用いて、従来例として、具体的に入力符号化ストリームを“１００１００００・・・”、Total_zeros=“７”とした場合の復号処理について説明する。
上述のように、復号開始時は、Total_zerosの値がZeros_leftの初期値になる。そして、ストリーム供給手段１２１から供給されるビット列の先頭が“１００・・”である。このことから、図４のRun_before復号テーブルで復号される最初のシンボルRun_before（０）の値は“３”となる。一方、復号結果のRun_before（０）値は、Run_before積算手段１５３にも出力され、累積加算されたZerosが後段のZeros記憶手段１５２に出力される。Zeros記憶手段１５２は、入力されたZerosをTotal_zerosの値から減算し、この減算結果（=“７”−“３”）をあらたなZeros_leftとして記憶する。Zeros_left≠”０”であることから２回目の復号処理が始まる。
引き続き行われる２番目のシンボルRun_before（１）の復号は、Zeros_left=“４”、ストリーム供給手段１２１で消費ビット分シフトされ“１０”からビット列がはじまることから、Run_before（１）=“１”となる。また、同時にZeros記憶手段１５２のZeros_leftは“３”（=“４”−“１”）に更新される。
以下同様、３番目のRun_before（２）の値の復号については、Zeros_left=“３”、ストリーム供給手段１２１で消費ビット分シフトされ“００”からビット列がはじまることから、Run_before（２）=“３”となる。また、Zeros記憶手段１５２のZeros_leftは“０”（=“３”−“３”）となる。上記一連の処理を繰り返し、Zeros_leftが“０”になると同時にRun_beforeに関する復号が完了する。
上記例では、Zeros_left が“０”になるまでに３つのシンボルRun_before（０）、Run_before（１）、Run_before（２）が復号され、Run_before復号テーブル１５１に３回のサイクルかかったことを意味する。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００７−６０１９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
上述した説明のように、４×４のＳＭＢの伸張処理では、５つの復号部において若しくは５つの復号プロセスを経て、必要なシンボルを復号する。このときの各復号部若しくは各復号プロセスに必要な処理サイクル数は、Coeff_token復号部１０１、および、Total_zeros復号部１０４で１サイクルずつ、それ以外の復号部においては、入力符号化ストリームによって変動するものの、テーブルアクセス回数から換算した最大のサイクル数は、Trailing_ones復号部１０２で３サイクル、レベル復号部１０３で３０サイクル、Run_before復号部３０５で１４サイクルとなる。
従って、従来の構成では、１ＳＭＢの符号化ストリームを復号処理するには最大で約５０サイクル必要であることになる。特に、従来のRun_before復号部３０５の処理においては、レベル係数とゼロ係数が隣接するかどうかを、Run_beforeの復号結果をもとに、高周波成分側にあるレベル係数から１レベル係数ずつ順にチェックしていかねばならず、レベル係数が連続し、ゼロ係数が隣接しない場合であっても、「レベル係数の隣にゼロ係数はない」ということをシンボルとして復号しなければならない。このため、Run_before復号テーブル１５１へのアクセス回数がレベル係数の数だけ発生し、サイクル数が長くなるという問題があった。
そこで、本発明は、Run_before復号部３０５における、上記問題を解決し、１ＳＭＢあたりの処理に要するサイクル数を低減することを目的とする。具体的には、Ｈ.２６４可変長復号処理のRun_before復号処理おいて、非ゼロ係数（レベル係数）とゼロ係数との並び関係を示すラン係数に加え、単位ブロック中にあるゼロ係数の総数（Total_Zeros）からラン係数を減算したZerosシンボルと、連続してならぶレベル係数の数を示すSkipシンボルを出力するルックアップテーブルを使い、復号処理を行い、１ＳＭＢあたりのサイクル数を短くすることを目的とする。
【課題を解決するための手段】
【００１７】
上記の課題を解決するために、本発明の可変長符号装置は、符号化ストリームを入力し、Coeff_token係数のシンボルを復号するCoeff_token復号部と、Trailing_ones係数シンボルを復号するTrailing_ones復号部と、レベル係数シンボルを復号するレベル復号部と、Total_zeros係数シンボルを復号するTotal_zeros復号部と、前記レベル係数とゼロ係数が隣接するかどうかの判断を、高周波成分側にあるレベル係数から順にRun_beforeを復号することなく前記ゼロ係数が配列される位置とその配列個数が特定できるように復号ルックアップテーブルの最適化を行うRun_before復号部と、レベル係数部と、結合情報記憶部と、結合部を有したことを特徴とし、処理にかかるサイクル数を短縮するものである。
【００１８】
上記の課題を解決するために、本発明の可変長符号装置は、Ｈ.２６４可変長復号装置の復号処理において、参照する復号テーブルへのアクセス回数を減らし、単位ブロックあたりの復号処理サイクル数を短縮することを特徴とする。
Ｈ.２６４可変長復号処理のRun_before復号処理おいて、非ゼロ係数（レベル係数）とゼロ係数との並び関係を示すラン係数に加え、単位ブロック中にあるゼロ係数の総数（Total_Zeros）からラン係数を減算したZerosシンボルと、連続して並ぶレベル係数の数を示すSkipシンボルを出力する復号ルックアップテーブルを使い、復号処理を行うことを特徴とする。
【００１９】
Ｈ.２６４可変長復号処理のRun_before復号処理おいて、復号されるTotal_zerosに応じ、適応的に処理サイクル数を減らし、復号ルックアップテーブルへのアクセス回数を減らし消費電力を下げることを特徴とした可変長復号装置。
【発明の効果】
【００２０】
本発明によれば、Ｈ.２６４可変長復号処理のRun_before復号処理おいて、復号ルックアップテーブルの最適化を行うことにより、ルックアップテーブルへのアクセス回数を減らしこれまで最大１４サイクルかかっていた復号処理サイクルを１サイクルに短縮することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明における可変長復号装置の一実施例の構成を示すブロック図である。
【図２】本発明の可変長復号装置のRun_before復号部の一実施例の内部機能ブロックを示す図である。
【図３Ａ】従来の可変長復号装置の一実施例の構成を示すブロック図である。
【図３Ｂ】従来のCoeff_token復号部の内部機能構成を示すブロック図である。
【図３Ｃ】従来のレベル復号部の内部機能ブロック図である。
【図３Ｄ】従来のTotal_zeros復号部の内部機能ブロック図である。
【図３Ｅ】従来のRun_before復号部の内部機能ブロック図である。
【図４】従来のRun_before復号テーブルである。
【図５Ａ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｂ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｃ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｄ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｅ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｆ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｇ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｈ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｉ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｊ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｋ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｌ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｍ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｎ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｏ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｐ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｑ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｒ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｓ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｔ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｕ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｖ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｗ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【図５Ｘ】本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
【発明を実施するための形態】
【００２２】
以下に本発明の一実施形態を図面等を用いて説明する。なお、以下の説明は、本発明の一実施形態を説明するためのものであり、本願発明の範囲を制限するものではない。従って、当業者であればこれらの各要素若しくは全要素をこれと均等なものに置換した実施形態を採用することが可能であり、これらの実施形態も本願発明の範囲に含まれる。
また、本書では、既に説明した図３Ａ〜図３Ｅ、および図４を含め、以降の各図の説明において、共通な機能を有する構成要素には同一の参照番号を付し、説明を省略する。
【００２３】
図１は、本発明における可変長復号装置の一実施例の構成を示すブロック図である。図１を用いて、本発明の可変長復号装置における復号プロセスの一実施例を説明する。１００は本発明の可変長復号装置、１０５は復号部（Run_before復号部）、１０７は結合情報記憶部、１０８は結合部である。図１の可変長復号装置１００は、従来の可変長復号装置３００と比較し（図３Ａ参照）、復号部３０５の替わりに復号部１０５を設け、結合部３０８の替わりに結合部１０８を設け、復号部１０５と結合部１０８の間に結合情報記憶部１０７を設けたものである。
【００２４】
５つの復号部１０１〜１０５は、上位に位置する復号部から順に、Coeff_token係数、Trailing_ones係数、レベル係数、Total_zeros係数、ラン係数の各シンボルを復号する。各復号部１０１〜１０５は、上位の復号プロセスが完了すると、その復号シンボルを使って復号処理が開始できるようになっている点は、従来の復号プロセスと変わらず、復号部１０１〜１０４、レベル係数記憶部１０６に関しては、従来の図３Ａの可変長復号装置３００のものと、構成および機能とも全く同じである。従ってここでは、従来と異なるRun_before復号部１０５と、結合記憶部１０７および結合部１０８について説明する。
【００２５】
はじめに、図２を用いて、本発明におけるRun_before復号部１０５の構成および動作について説明する。図２は、本発明の可変長復号装置のRun_before復号部１０５の一実施例の内部機能ブロックを示す図である。２５１はRun_before復号ルックアップテーブル、２５２はZeros_left選択手段、２５３はZeros_left記憶手段である。図２のRun_before復号部１０５は、従来のRun_before復号部３０５と比較し（図３Ｅ参照）、ＩＳＯ／ＩＥＣ１４４９６-１０規格のＪＶＴ−Ｇ０５０１に記載があるRun_before復号テーブル１５１の替わりにRun_before復号ルックアップテーブル２５１を設け、Zeros_left選択手段１５２の替わりにZeros_left選択手段２５２を設け、Zeros_left積算手段１５３の替わりにZeros_left記憶手段２５３を設けたものである。
【００２６】
図２の実施例において、ストリーム記憶手段１２０、ストリーム供給手段１２１、および、アドレス生成手段１５０については従来と変わらない。そして、Zeros_left選択手段２５２、Run_before復号ルックアップテーブル２５１、およびZeros_left記憶手段２５３が、本発明の特徴となる部分である。
ストリーム記憶手段１２０からストリーム供給手段１２１に取り込んだ符号化ストリーム、および、Zeros_left選択手段２５２に記憶されているZeros_leftが、アドレス生成手段１５０に入力され、Run_before復号ルックアップテーブル２５１の参照アドレスを生成する。
Run_before復号ルックアップテーブル２５１は、従来の復号テーブルとインタフェースは変わらず、Zeros_leftに応じてRun_beforeの復号テーブルが変わる点は同じである。ただし、本発明のRun_before復号ルックアップテーブル２５１は、従来の復号テーブルを、最適化し、符号化ストリームとのマッチングを行う際に、符号化ストリームの先頭から連続して並ぶ“１”のビット列に着目し、全ビットサーチを行う。この結果、従来のRun_before復号テーブル１５１と異なり、Run_before値に加え、一致コードに対応付けられた、レベル係数とゼロ係数の並びを示すSkip値、および、新zeos_leftを同時に復号結果として出力することができる。
【００２７】
図５Ａ〜図５Ｘを用いて、本発明の復号ルックアップテーブルの一実施例を説明する。図５Ａ〜図５Ｘは、本発明の可変長復号装置における復号ルックアップテーブルの一実施例を示す図である。
図５Ａ〜図５Ｘ、復号ルックアップテーブル入力されるZeros_leftに応じて分類し、Zeros_left＝１からZeros_left＝１４までの１４種類のテーブルを持つ。また、１サイクルで参照する符号ストリームの最大ビット幅は、符号化ストリームの先頭から２５ビットであり、この２５ビットにおける“１”、“０”の並びに対応付けられた次の３つのシンボル、Skip、Run_before、Next_Zeros_leftがアクセスのたびに同時に出力される。
ここで、Skipとは復号されたレベル係数が複数ある場合に、これらレベル係数が連続した係数列になるかどうかを意味するシンボルであり、Skip＝“０”の時は、レベル係数は連続して並ばず、このとき同時に復号されたRun_beforeが示す数だけゼロ係数がこの間挿入されることを意味する。
また、復号シンボルのNext_Zeros_leftは、Run_beforeの復号において、次のサイクルが必要かを判断するためのシンボルであり、Zeros_leftから、Run_beforeを減算した値があらかじめ、Next_Zeros_leftに割り当てられており、Next_Zeros_left＝“０”となるまでRun_before復号処理が繰り返される。
【００２８】
一方、Next_Zeros_left≠“０”の場合には、Run_before復号ルックアップテーブル２５１は、Zeros_left記憶手段２５３に、上記Next_Zeros_left値を出力し、Zeros_left記憶手段２５３は、入力された上記Next_Zeros_left値を記憶する。また同時に、Run_before復号ルックアップテーブル２５１は、Run_before復号ルックアップテーブル２５１で消費したビット長を、ストリーム供給手段１２１に出力する。そして、消費ビット長分、読み出し位置がシフトした次の符号化ストリームが、ストリーム供給手段１２１から供給される際に、Zeros_left記憶手段２５３に記憶された上記Next_Zeros_left値は、Zeros_left選択手段２５２を経由し、新たなZeros_leftとして出力される。
Run_before復号処理により復号されたSkip、Run_before、Next_Zeros_leftのシンボルは、後段の結合情報記憶部１０７に記憶される。
最後に、結合部１０８は、上記結合情報記憶部１０７の結果と照らし合わせて、レベル係数記憶部１０６に記憶されているレベル係数に、ゼロ係数を挿入し一次元の係数列に結合した伸張ストリームを出力する。
【００２９】
以下、上記実施例を、従来復号テーブルを使ったRun_before復号処理に比べて、Run_before復号処理の処理リサイクル数を比較してみる。
４×４のＳＭＢにおいて、すでにレベル係数復号部１０３で復号されたレベル係数が１５ヶあり、Total_zeros=“１”で、入力符号化ストリームが“１１１１１１１１１１１１１０・・・・”というケースを説明する。
従来技術で説明したように、復号開始時には、Total_zerosの値がZeros_leftの初期値になっている。そして、ストリーム供給手段１２１から供給されるビット列の先頭が“１・・”であることから、図４のRun_before復号テーブルで復号される最初のシンボルRun_before（０）の値は“０”となる。
【００３０】
一方、復号結果のRun_before（０）値は、Run_before積算手段１５３にも送られ、累積加算されたZerosが後段のZeros記憶手段１５２に渡される。Zeros記憶手段１５２は、入力されたZerosをTotal_zerosの値から減算し、この減算結果（=“１”−“０”）をあらたなZeros_leftとして記憶する。Zeros_left≠“０”であることから２回目の復号処理が始まる。引き続き行われる２番目のシンボルRun_before（１）の復号は、Zeros_left=“１”、ストリーム供給手段１２１で消費ビット分シフトされ再び“１・・”からはじまることから、Run_before（１）=“０”となる。また、同時にZeros記憶手段１５２のZeros_leftは、“１”（=“１”−“０”）に更新される。
【００３１】
入力符号化ストリームにおいて、以降も“１”が“１１１１１１１１１１１０・・・・”と１１ヶ続くため、同様にRun_before（２）=“０”、Run_before（３）=“０”、Run_before（４）=“０”、・・・・Run_before（１２）=“０”、となり１３回、復号テーブルにアクセスした後、入力符号化ストリームの先頭ビットが“０・・・”となり、Run_before（１３）=“１”となり、Run_before積算手段１５３に送られ、累積加算されたZerosが“１”と変わって、後段のZeros記憶手段１５２に渡される。Zeros記憶手段１５２は、入力されたZerosをTotal_zerosの値から減算し、この結果、Zeros_left=“０”（=“１”−“１”）となり、Run_beforeの復号処理が終了する。この間、１４ケの復号シンボル（Run_before(０)〜Run_before(１３)）を復号し、結果的に復号までに１４サイクル要する。
【００３２】
一方、本発明における復号ルックアップテーブルを使った場合、Zeros_left＝１からZeros_left＝１４まである４種類のテーブルのうち、Zeros_left＝１の復号ルックアップテーブルを参照することになる。この結果、符号ストリームを先頭ビットからパターン検索し、全ビットパターンがマッチする符号列“１１１１１１１１１１１１１０・・・・”を１サイクルで見つけ出し、Skip＝“１３”、Run_before＝“１”、Next_Zeros_left＝“０”を復号する。Next_Zeros_left＝“０”であることから、Run_before復号処理は終了する。また、このシンボルを用い、結合部４は、Skipシンボルと同数（=１３ヶ）、レベル係数が連続した後に、Run_beforeシンボルと同数（＝０ヶ）、ゼロ系数が挿入された係数列に結合が可能となる。
【００３３】
以上説明したように、上記実施例によれば、Ｈ.２６４可変長復号処理のRun_before復号処理おいて、復号ルックアップテーブルの最適化を行うことにより、ルックアップテーブルへのアクセス回数を減らしこれまで最大１４サイクルかかっていた復号処理サイクルを１サイクルに短縮することができる。
【符号の説明】
【００３４】
１０１〜１０５：復号部、  １０６：レベル係数部、  １０７：結合記憶部、  １０８：結合部、  １２０：ストリーム記憶手段、  １２１：ストリーム供給手段、  １２２：Coeff_token復号テーブル、  １２３：Total_coeff記憶手段、  ３００：従来の可変長復号装置、  ３０５：復号部、  ３０８：結合部、  １３０：プレフィックス復号部、  １３１：プレフィックス記憶手段、  １３２：レベルコード演算手段、  １３３：サフィックス復号手段、  １３４：消費ビット選択手段、  １５０：アドレス生成手段、  １５１：Run_before復号テーブル、  １５２：Zeros記憶手段、  １５３：Run_before積算手段、  ２５１：Run_before復号ルックアップテーブル、  ２５２：Zeros_left選択手段、  ２５３：Zeros_left記憶手段。
【図１】
2011188431.tif 000003
【図２】
2011188431.tif 000004
【図３Ａ】
2011188431.tif 000005
【図３Ｂ】
2011188431.tif 000006
【図３Ｃ】
2011188431.tif 000007
【図３Ｄ】
2011188431.tif 000008
【図３Ｅ】
2011188431.tif 000009
【図４】
2011188431.tif 000010
【図５Ａ】
2011188431.tif 000011
【図５Ｂ】
2011188431.tif 000012
【図５Ｃ】
2011188431.tif 000013
【図５Ｄ】
2011188431.tif 000014
【図５Ｅ】
2011188431.tif 000015
【図５Ｆ】
2011188431.tif 000016
【図５Ｇ】
2011188431.tif 000017
【図５Ｈ】
2011188431.tif 000018
【図５Ｉ】
2011188431.tif 000019
【図５Ｊ】
2011188431.tif 000020
【図５Ｋ】
2011188431.tif 000021
【図５Ｌ】
2011188431.tif 000022
【図５Ｍ】
2011188431.tif 000023
【図５Ｎ】
2011188431.tif 000024
【図５Ｏ】
2011188431.tif 000025
【図５Ｐ】
2011188431.tif 000026
【図５Ｑ】
2011188431.tif 000027
【図５Ｒ】
2011188431.tif 000028
【図５Ｓ】
2011188431.tif 000029
【図５Ｔ】
2011188431.tif 000030
【図５Ｕ】
2011188431.tif 000031
【図５Ｖ】
2011188431.tif 000032
【図５Ｗ】
2011188431.tif 000033
【図５Ｘ】
2011188431.tif 000034