(57)【要約】【課題】動画フォーマットの可変長符号化（ＶＬＣ）デコーダのデコード処理を高速化する。【解決手段】動画フォーマット上での画素データ係数列を格納する入力データ用メモリ４０と、テーブル参照データＡＲＧを記憶し、入力データ用メモリ４０からメモリデータＩＭＤを受信するテーブル参照装置４２と、パラメータデータＰＤを記憶し、テーブル参照装置４２からテーブル参照データＡＲＧを受信し，テーブル参照装置４２にパラメータデータＰＤを送信する参照テーブルを備えたテーブル格納メモリ４６と、テーブル参照装置４２から出力される係数フラグ，最終係数フラグからなる参照テーブルデータＲＴＤを受信する出力データ用メモリ４４とを備えることを特徴とする可変長符号化デコーダ。【選択図】図６
2006166344.tif 000002
【特許請求の範囲】
【請求項１】
動画フォーマット上での画素データ係数列を格納する入力データ用メモリと、
テーブル参照データを記憶し、前記入力データ用メモリからメモリデータを受信するテーブル参照装置と、
パラメータデータを記憶し、前記テーブル参照装置から前記テーブル参照データを受信し，前記テーブル参照装置に前記パラメータデータを送信する参照テーブルを備えたテーブル格納メモリと、
前記テーブル参照装置から出力される係数フラグ，前記出力される係数フラグと対応した最終係数フラグからなる参照テーブルデータを受信する出力データ用メモリ
とを備えることを特徴とする可変長符号化デコーダ。
【請求項２】
前記参照テーブルは、複数ビットの画素データ係数列をインデックスとして、前記画素データ係数列の先頭から取得できる係数フラグの数，前記画素データ係数列の先頭から取得できる係数フラグと対応した最終係数フラグの数の和，および前記最終係数フラグが“１”であるかを表すフラグを備えることを特徴とする請求項１記載の可変長符号化デコーダ。
【請求項３】
前記参照テーブルは、複数ビットの画素データ係数列をインデックスとして、出力される係数フラグの数，前記出力される係数フラグの値自身，前記出力される係数フラグと対応した最終係数フラグの数の和，および前記最終係数フラグが“１”であるかを表すフラグを備えることを特徴とする請求項１記載の可変長符号化デコーダ。
【請求項４】
内部で使用する変数,データおよび、係数フラグ、最終係数フラグを各々“０”で初期化し、画素データ係数列の先頭から判定に用いるビット数ｍを、“ｎ”で初期化するステップと、
前記画素データ係数列からデータをｍビット取得し、一時変数データへ格納するステップと、
前記データをインデックスとして、参照テーブルから各変数として、画素データ係数列の先頭から取得できる係数フラグの数、画素データ係数列の先頭から取得できる係数フラグと対応した最終係数フラグの数の和、最終係数フラグが“１”であるかを表すフラグを得るステップと、
参照テーブルから得られた変数から係数フラグ、ループの次の処理に必要な変数データ、ビット数ｍを求めるステップと、
前記出力できる係数フラグの個数の係数フラグをデータの上位ビットから切り出し格納し、前記出力できる係数フラグと対応した最終係数フラグの数の和であるシフト分データは処理されたことから、データをシフトビット分、左にシフトし、下位ｎビットを保持するステップと、
前記最終係数フラグが“１”であるか否かを判断するステップと、
前記最終係数フラグが“０”の場合には、ループを介して、前記画素データ係数列からデータをｍビット取得し、一時変数データへ格納するステップに戻るステップと、
前記最終係数フラグが“１”の場合には、ループ内で得られた係数フラグが最後の非ゼロ係数であるので、前記最終係数フラグを“１”とするステップ
とを備えることを特徴とする可変長符号化デコード方法。
【請求項５】
内部で使用する変数,データおよび、係数フラグ、最終係数フラグを各々“０”で初期化をし、画素データ係数列の先頭から判定に用いるビット数ｍを“ｎ”で初期化するステップと、
前記画素データ係数列からデータをｍビット取得し、一時変数データへ格納するステップと、
前記データをインデックスとして、参照テーブルから出力できる係数フラグの数、前記出力できる係数フラグと対応した最終係数フラグの数の和、前記最終係数フラグが“１”であるかを表すフラグ、前記出力できる係数フラグの値を得るステップと、
前記参照テーブルから得られた変数から係数フラグ、ループの次の処理に必要な変数データ、ビット数ｍを求めるステップと、
前記出力できる係数フラグの個数の係数フラグへ対応する値を格納し、前記出力できる係数フラグの数と対応した最終係数フラグの数の和であるシフト分データは処理されたことから、データをシフトビット分、左にシフトし、下位ｎビットを保持するステップと、
最終係数フラグが“１”であるか否かを判断するステップと、
最終係数フラグが“０”場合には、ループを介して、画素データ係数列からデータをｍビット取得し、一時変数データへ格納するステップへ戻るステップと、
最終係数フラグが“１”の場合には、ループ内で得られた係数フラグが最後の非ゼロ係数であるので、最終係数フラグを“１”とし、処理を終了するステップ
とを備えることを特徴とする可変長符号化デコード方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画フォーマットＨ．２６４上での画素データ係数列（ｂｉｎ ｓｔｒｉｎｇ）の可変長符号化（ＶＬＣ:Ｖａｒｉａｂｌｅ Ｌｅｎｇｔｈ Ｃｏｄｅ）デコーダおよびデコード方法に関する。
【背景技術】
【０００２】
オーディオ・ビジュアル（ＡＶ）・マルチメディア・システムの分野において、高度動画像圧縮符号化標準（ＡＶＣ：Ａｄｖａｎｃｅｄ Ｖｉｄｅｏ Ｃｏｄｉｎｇ）は、Ｈ．２６４／ＡＶＣと呼ばれている（非特許文献１参照）。
【０００３】
Ｈ．２６４／ＡＶＣでは、離散コサイン変換（ＤＣＴ：Ｄｉｓｃｒｅｔｅ Ｃｏｓｉｎｅ Ｔｒａｎｓｆｏｒｍ）係数や動きベクトルなど、シンタックスで伝送することが規定されている情報である，シンタックス要素のエントリピー符号化（可変長符号化）方式として、単純な表による変換の他に高効率な符号化方式が用意されており、高い符号化効率が必要とされるＤＣＴ係数の符号化時などに適用される。
【０００４】
規格では、指数ゴロム（Ｅｘｐｏｎｅｎｔｉａｌ Ｇｏｌｏｍｂ）符号と呼ばれる基本的な符号の他に、コンテキスト適応型可変長符号化方式（ＣＡＶＬＣ：Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ Ｖａｒｉａｂｌｅ Ｌｅｎｇｔｈ Ｃｏｄｉｎｇ）と呼ばれる可変長符号化方式、コンテキスト適応型２値算術符号化方式（ＣＡＢＡＣ：Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ Ｂｉｎａｒｙ Ａｒｉｔｈｍｅｔｉｃ Ｃｏｄｉｎｇ）と呼ばれる算術符号化方式の２種類の高能率符号化方式が用意されている。ここで、コンテキスト適応型とは、周囲の状況に応じて効率の良い符号化方式を適応的に選択する方式をいう。ＣＡＢＡＣはＨ．２６４／ＡＶＣのメイン・プロファイルにおいてのみ使用可能で、その場合、ピクチャ・パラメータ・セット中のフラグの値によって、ＣＡＶＬＣかＣＡＢＡＣの内の一方が選択され、高能率エントロピー符号化方式として適用される。
【０００５】
ＣＡＶＬＣは、ＤＣＴ係数値の符号化にのみ用いられる。ＣＡＶＬＣでは、ＤＣＴ係数をジグザグ・スキャン（ジグザグ走査）によって一次元のベクトルとした後、係数値や連続する‘０’の長さ（ラン）など、復号に必要な情報を符号化している。Ｈ．２６４／ＡＶＣでは、ＭＰＥＧ（Ｍｏｖｉｎｇ Ｐｉｃｔｕｒｅ Ｅｘｐｅｒｔｓ Ｇｒｏｕｐ）−２などのようにランとレベルを組み合わせたものに対する符号化を行うのではなく、ランとレベルそれぞれのＶＬＣ（可変長符号化）テーブルを用いてスキャンの逆順方向から別々に符号化し、復号側ではそれらを組み合わせることで係数値の復号を行う。ランとレベルの復号に用いるＶＬＣテーブルと復号の概要は非特許許文献１に開示されている通りである。ランとレベル以外の情報である、非ゼロ係数の個数（ＴｏｔａｌＣｏｅｆｆ）と最後に連続する絶対値１の係数の個数（ＴｒａｉｌｉｎｇＯｎｅｓ）の符号化の際には、周囲のマクロブロック（ＭＢ）の状態に応じて、複数のＶＬＣテーブルの内の１つを適応的に選択して符号化を行う。これが、ＣＡＶＬＣの符号化効率が高い理由の１つである。
【０００６】
ＣＡＢＡＣは、通常の２値算術符号化器に加えて、多値信号（例えば、−３或いは＋６などの信号）を２値信号（０と１の信号）に変換するための２値化部と、符号化すべき２値信号の発生確率を周囲の状況に応じて計算・更新するコンテキスト計算部を備えている（非特許文献１参照）。
【非特許文献１】大久保  栄、角野  眞也、菊池  義浩、鈴木  輝彦他、「インプレス標準教科書シリーズ  Ｈ．２６４／ＡＶＣ教科書」株式会社インプレスネットビジネスカンパニー発行、２００４年８月１１日、ｐ．３−４，１４４−１５７，２７２−２７９
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、動画フォーマットＨ．２６４上での画素データ係数列から非ゼロ係数の有無、および最終非ゼロ係数のフラグ（ｆｌａｇ）をデコードずる際に適用されるＶＬＣデコーダのＶＬＣデコード部分の処理において、一定のパラメータを持つ参照テーブル（表）を用いることで処理を高速化させるＶＬＣデコーダおよびデコード方法を提供する。
【課題を解決するための手段】
【０００８】
本発明の実施の形態の第１の特徴は、（イ）動画フォーマット上での画素データ係数列を格納する入力データ用メモリと、（ロ）テーブル参照データを記憶し、入力データ用メモリからメモリデータを受信するテーブル参照装置と、（ハ）パラメータデータを記憶し、テーブル参照装置からテーブル参照データを受信し，テーブル参照装置にパラメータデータを送信する参照テーブルを備えたテーブル格納メモリと、（ニ）テーブル参照装置から出力される係数フラグ，出力される係数フラグと対応した最終係数フラグからなる参照テーブルデータを受信する出力データ用メモリとを備える可変長符号化デコーダであることを要旨とする。
【０００９】
本発明の実施の形態の第２の特徴は、（イ）内部で使用する変数,データおよび、係数フラグ、最終係数フラグを各々“０”で初期化し、画素データ係数列の先頭から判定に用いるビット数ｍを、“ｎ”で初期化するステップと、（ロ）画素データ係数列からデータをｍビット取得し、一時変数データへ格納するステップと、（ハ）データをインデックスとして、参照テーブルから各変数として、画素データ係数列の先頭から取得できる係数フラグの数、画素データ係数列の先頭から取得できる係数フラグと対応した最終係数フラグの数の和、最終係数フラグが“１”であるかを表すフラグを得るステップと、（ニ）参照テーブルから得られた変数から係数フラグ、ループの次の処理に必要な変数データ、ビット数ｍを求めるステップと、（ホ）出力できる係数フラグの個数の係数フラグをデータの上位ビットから切り出し格納し、出力できる係数フラグと対応した最終係数フラグの数の和であるシフト分データは処理されたことから、データをシフトビット分、左にシフトし、下位ｎビットを保持するステップと、（へ）最終係数フラグが“１”であるか否かを判断するステップと、（ト）最終係数フラグが“０”の場合には、ループを介して、画素データ係数列からデータをｍビット取得し、一時変数データへ格納するステップに戻るステップと、（チ）最終係数フラグが“１”の場合には、ループ内で得られた係数フラグが最後の非ゼロ係数であるので、前記最終係数フラグを“１”とするステップとを備える可変長符号化デコード方法であることを要旨とする。
【００１０】
本発明の実施の形態の第３の特徴は、（イ）内部で使用する変数,データおよび、係数フラグ、最終係数フラグを各々“０”で初期化をし、画素データ係数列の先頭から判定に用いるビット数ｍを“ｎ”で初期化するステップと、（ロ）画素データ係数列からデータをｍビット取得し、一時変数データへ格納するステップと、（ハ）データをインデックスとして、参照テーブルから出力できる係数フラグの数、出力できる係数フラグと対応した最終係数フラグの数の和、最終係数フラグが“１”であるかを表すフラグ、出力できる係数フラグの値を得るステップと、（ニ）参照テーブルから得られた変数から係数フラグ、ループの次の処理に必要な変数データ、ビット数ｍを求めるステップと、（ホ）出力できる係数フラグの個数の係数フラグへ対応する値を格納し、出力できる係数フラグの数と対応した最終係数フラグの数の和であるシフト分データは処理されたことから、データをシフトビット分、左にシフトし、下位ｎビットを保持するステップと、（へ）最終係数フラグが“１”であるか否かを判断するステップと、（ト）最終係数フラグが“０”場合には、ループを介して、画素データ係数列からデータをｍビット取得し、一時変数データへ格納するステップへ戻るステップと、（チ）最終係数フラグが“１”の場合には、ループ内で得られた係数フラグが最後の非ゼロ係数であるので、最終係数フラグを“１”とし、処理を終了するステップとを備える可変長符号化デコード方法であることを要旨とする。
【発明の効果】
【００１１】
本発明のＶＬＣデコーダおよびデコード方法によれば、動画フォーマットＨ．２６４上での画素データ係数列から非ゼロ係数の有無、および最終非ゼロ係数のフラグをデコードずる際に適用されるＶＬＣデコーダのデコード部分の処理において、一定のパラメータを持つ参照テーブルを用いることで処理を高速化させることができる。
【発明を実施するための最良の形態】
【００１２】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は模式的なものであり、各ブロックの平面寸法、各参照テーブルのサイズ、画素データ係数列の長さ等は現実のものとは異なることに留意すべきである。又、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることはもちろんである。
【００１３】
また、以下に示す実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、各ブロックの構成部品の配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【００１４】
Ｈ．２６４動画フォーマットの画素データ係数列から非ゼロ係数の有無、および最終非ゼロ係数のフラグをデコードずる際に適用されるＶＬＣデコーダのデコード部分の処理において、１ビット毎に判定を行った場合と比較して、高速に動作させることができるＶＬＣデコーダおよびデコード方法を提供することができる。一度に複数ビット（Ｎビット）の画素データ係数列を判定する場合、処理速度は最大でＮ倍となる。
【００１５】
Ｈ．２６４動画フォーマットの画素データ係数列から非ゼロ係数の有無、および最終非ゼロ係数のフラグをデコードずる際に適用されるＶＬＣデコーダのデコード部分の処理において、更に、特定の画素データ係数列のパターンで、より高速化されるＶＬＣデコーダおよびデコード方法を提供することができる。例えば、一度に４ビットの画素データ係数列を判定させる場合、判定対象の画素データ係数列が２進数で“１０１０”であれば、次処理に読み込まれる画素データ係数列のビット数が、２ビットの場合に比較し４ビットとなり、一度の判定において多くの画素データ係数列を処理することができる。
【００１６】
以下の説明において、「significant_coeff_flag」は、適宜「係数フラグ」、「last_significant_coeff_flag」は、「最終係数フラグ」と呼称する。
【００１７】
本発明の実施の形態に係るＶＬＣデコーダおよびデコード方法は、ＣＡＢＡＣデコード後のデータから、パラメータとして、係数フラグ、および最終係数フラグをＶＬＣデコードする際に適用されるものである。
【００１８】
[第１の実施の形態]
（ＶＬＣデコード方法）
本発明の第１の実施の形態に係るＶＬＣデコード方法は、図１に示すように、ＣＡＢＡＣデコード後の画素データ係数列が非ゼロ係数であるかを示すパラメータデータ（係数フラグＡ）と、最終非ゼロ係数であるかを示すパラメータデータ（最終係数フラグＢ）を、可変長符号化デコード（ＶＬＣデコード）する際に参照テーブル１５を用いて高速化処理する方法に特徴を有する。
【００１９】
図１（ａ）は、係数列パラメータＡＢＣＤの定義を表しており、Ａは非ゼロ係数であれば“１”と表示される値であることを意味する。Ｂは最後の非ゼロ係数であれば“１”と表示される値であることを意味する。Ｃは係数の絶対値マイナス１の値が表示されることを意味する。Ｄは係数の符号として“０”でプラスを表示し、“１”でマイナスを表示することを意味する。図１（ｂ）は、ＶＬＣデコード方法におけるデコード処理の流れを模式的に説明する図であり、図１（ｃ）は、画素データ係数列を模式的に示している。
【００２０】
図１（ｂ）に示すように、ビットストリーム（Ｈ．２６４データ列）格納部１０に格納されたＨ．２６４データ列は、ＣＡＢＡＣデコーダ１２においてＣＡＢＡＣデコードされ，その結果、画素データ係数列が画素データ係数列格納部１４に格納される。
【００２１】
ビットストリーム格納部１０に格納されたＨ．２６４データ列中からＨ．２６４の係数データを取り出し、画素データへと復号する際、ビットストリーム(Ｈ．２６４データ列)はＣＡＢＡＣデコーダ１２においてＣＡＢＡＣデコード（復号）され、一旦、図１（ｃ）に示すような画素データ係数列となり、画素データ係数列格納部１４に蓄積される。画素データ係数列格納部１４に接続された参照テーブル１５を介して、ＣＡＢＡＣデコード後の画素データ係数列が非ゼロ係数であるかを示すパラメータデータ（係数フラグＡ）と、最終非ゼロ係数であるかを示すパラメータデータ（最終係数フラグＢ）を作成する。
【００２２】
図１（ｃ）に示すＣＡＢＡＣデコード後の画素データ係数列の中から、ＡＢ列１８の内容のデータ部分が参照テーブル１５の経路を介して発生される。画素データをデコードするには、図１（ｂ）に示すように、別に生成されたＣＤ列１６と、参照テーブル１５の経路を介して発生されたＡＢ列１８との合成によって、係数列２０を作成し、結果として係数列マトリックス２２を得る。尚、ＶＬＣデコーダについては、後述する本発明の第４乃至第６の実施の形態に係るＶＬＣデコーダの説明において、図６乃至図９を用いて、詳述する。
【００２３】
（画素データ係数列のデコード方法）
次に、一般的に考えられる画素データ係数列のＶＬＣデコードを行う際に用いられるＶＬＣデコード方法を図２に表すフローチャートを用いて説明する。
【００２４】
（ａ）ステップＳ１で処理を開始する。
【００２５】
（ｂ）ステップＳ２でまず、内部状態の初期化を行う。即ち、significant_coeff_flag[０・・・１５]＝０，last_significant_coeff_flag[０・・・１５]＝０，ｎ＝０と設定する。
【００２６】
（ｃ）ステップＳ３で、画素データ係数列から１ビットのデータを読み込む。
【００２７】
（ｄ）次に、ステップＳ４において、読み込んだ１ビットのデータが“１”か否かを判断する。
【００２８】
（ｅ）読み込んだ１ビットのデータが“０”の場合、ステップＳ６で、significant_coeff_flag[ｎ]＝０となる。
【００２９】
（ｆ）次に、ステップＳ１０において、ｎをインクリメントし、処理をステップＳ３へ戻す。この場合、last_significant_coeff_flag[ｎ]＝０である。
【００３０】
（ｇ）一方、ステップＳ４でデータが“１”の場合は、ステップＳ５において、significant_coeff_flag[ｎ]＝１となり、最終係数フラグの判定へと移行する。
【００３１】
（ｈ）次に、ステップＳ７において、更に画素データ係数列から１ビットのデータを取得する。
【００３２】
（ｉ）次に、ステップＳ８において、画素データ係数列から取得した１ビットのデータが“１”か否かを判断する。
【００３３】
（ｊ）次に、ステップＳ８において、データが“１”の場合は、ステップＳ９において、last_significant_coeff_flag[ｎ]＝１となる。
【００３４】
（ｋ）ステップＳ１１において、処理を終了する。
【００３５】
（ｌ）ステップＳ８において、データが“０”の場合は、ステップＳ１０において、ｎを
インクリメントし、処理をステップＳ３へ戻す。
【００３６】
このように、一般的に考えられる画素データ係数列のＶＬＣデコードを行う際に用いられるＶＬＣデコード方法を用いた場合、画素データ係数列内の係数フラグ、最終係数フラグを構成するビットの分だけ処理ステップが必要である。
【００３７】
本発明の第１の実施の形態に係るＶＬＣデコーダおよびデコード方法は、Ｈ．２６４動画フォーマットにおけるＣＡＢＡＣデコーダ１２においてデコードされた後のデータから、パラメータsignificant_coeff_flag[]，last_significant_coeff_flag[]をＶＬＣデコード（可変長符号デコード）する際に適用される。以下、具体的にＶＬＣデコード方法を説明する。
【００３８】
（３ビットの画素データ係数列を判定するＶＬＣデコード方法）
本発明の第１の実施の形態に係るＶＬＣデコード方法を説明する。参照テーブルを用いて一度に３ビットの画素データ係数列を判定するＶＬＣデコード方法は、図３（ａ）に示すフローチャートおよび図３（ｂ）に示す参照テーブルＩを用いる。
【００３９】
一度に３ビットの画素データ係数列を判定する，画素データ係数列のＶＬＣデコード方法おいて、複数（Ｎ）ビットの画素データ係数列をインデックスとして、画素データ係数列の先頭から取得できる係数フラグの数，画素データ係数列の先頭から取得できる係数フラグと対応した最終係数フラグの数の和，および最終係数フラグが”1”であるかを表すフラグとを引くことのできる参照テーブルＩを用いた場合を説明する。
【００４０】
図３（ａ）は、入力として画素データ係数列が用いられ、これより画素データが非ゼロ係数か否かを示すフラグを格納する配列significant_coeff_flag[１６]、最終非ゼロ係数かどうかを表すフラグを格納する配列last_significant_coeff_flag[１６]を求めるフローチャートである。データの判定は３ビット単位で行い、必要な参照テーブルとして図３（ｂ）に示すような参照テーブルＩを用意する。
【００４１】
（ａ）ステップＳ２０で処理を開始する。
【００４２】
（ｂ）ステップＳ２１において、内部で使用する変数ｎ,ｄａｔａおよび、結果が格納されるsignificant_coeff_flag[]、last_significant_coeff_flag[]を各々“０”で初期化をする。ｍは画素データ係数列の先頭から判定に用いるビット数を表しており、ここでは、“３”で初期化する。
【００４３】
（ｃ）次に、ステップＳ２２において、画素データ係数列からデータをｍビット取得し、一時変数ｄａｔａへＯＲで格納する。
【００４４】
（ｄ）次に、ステップＳ２３において、ｄａｔａをインデックスとして、参照テーブルＩから各変数として、ｏｕｔｎｕｍ(画素データ係数列の先頭から取得できる係数フラグの数)、ｓｈｉｆｔ(画素データ係数列の先頭から取得できる係数フラグと対応した最終係数フラグの数の和)、ｅｎｄ(最終係数フラグが“１”であるかを表すフラグ)を得る。
【００４５】
（ｅ）次に、ステップＳ２４において、参照テーブルＩから得られた変数からsignificant_coeff_flag[]、ループＬの次の処理に必要な変数ｄａｔａ、ｍを求める。
【００４６】
ｏｕｔｎｕｍは画素データ係数列の先頭から取得できる係数フラグの数を表しており、図３（ｂ）では、ｄａｔａの上位からｏｕｔｎｕｍビットが相当している。よって、ステップＳ２４内のｆｏｒ(ｉ＝０・・・)文でｏｕｔｎｕｍ個の係数フラグをｄａｔａの上位ビットから切り出し格納する。画素データ係数列の先頭から取得できる係数フラグと対応した最終係数フラグの数の和であるｓｈｉｆｔ分、ｄａｔａは処理されたことから、ｄａｔａをｓｈｉｆｔビット分、左にシフトし、下位３ビットを保持しておく。ｍは次ループＬで読み込まれるべき画素データ係数列のビット数を表している。
【００４７】
（ｆ）次に、ステップＳ２５において、最終係数フラグｅｎｄが“１”であるか否かを判断する。
【００４８】
（ｇ）次に、ステップＳ２５において、最終係数フラグｅｎｄ＝０の場合には、ループＬを介して、ステップＳ２２に戻る。
【００４９】
（ｈ）次に、ステップＳ２５において、最終係数フラグｅｎｄ＝１の場合には、ステップＳ２６に移行する。
【００５０】
（ｉ）次に、ステップＳ２６において、ループＬ内で得られた係数フラグが最後の非ゼロ係数であるので、last_significant_coeff_flag[ｎ−１]を“１”とする。
【００５１】
（ｊ）次に、ステップＳ２７において、処理を終了する。
【００５２】
本発明の第１の実施の形態に係るＶＬＣデコード方法によれば、参照テーブルＩを用いることにより、最大３ビットの画素データ係数列を１回の判定で、ＶＬＣデコードすることができる。
【００５３】
[第２の実施の形態]
（４ビットの画素データ係数列を判定するＶＬＣデコード方法）
本発明の第２の実施の形態に係るＶＬＣデコード方法を説明する。参照テーブルを用いて一度に４ビットの画素データ係数列を判定するＶＬＣデコード方法は、図４（ａ）に示す擬似コード例および図４（ｂ）に示す参照テーブルＩを用いる。
【００５４】
一度に４ビットの画素データ係数列を判定する，画素データ係数列のＶＬＣデコードおいて、複数（Ｎ）ビットの画素データ係数列をインデックスとして、画素データ係数列の先頭から取得できる係数列フラグの数，画素データ係数列の先頭から取得できる係数列フラグと対応した最終係数列フラグの数の和，および最終係数列フラグが“１”であるかを表すフラグとを引くことのできる参照テーブルＩを用いた場合を説明する。参照テーブルＩにおいて、＊は“０又は１”を意味する。
【００５５】
（ａ）まず、擬似コードＡにおいて、使用する変数を初期化する。出力はsignificalt_coeff_flag[０…１５]、last_significalt_coeff_flag[０…１５]であり、significalt_coeff_flag[０…１５]へはデコード後の画素データが非ゼロであるか否か(非ゼロの場合は“１”、それ以外は“０”)、last_significant_coeff_flag[０…１５]へは、最終非ゼロ係数の場合“１”が入り、それ以外は“０”となる。
【００５６】
（ｂ）次に、擬似コードＢにおいて、エンドフラグｅｎｄｆが“０”である間、ループＬでＶＬＣデコードを行う。ｇｅｔ_ｂｉｔ(ｍ)でｍビット分のデータを入力からロードし、変数ｄａｔａとＯＲを取り、参照テーブルＩのインデックスとする。
【００５７】
（ｃ）次に、擬似コードＣにおいて、ｇｅｔ_ｂｉｔ(ｍ)関数は、入力ビットストリームである画素データ係数列の先頭からｍビットを取り出してくる関数である。
【００５８】
（ｄ）次に、擬似コードＤにおいて、ｄａｔａをインデックスとして、参照テーブルＩを引き、ｏｕｔｎｕｍ、ｓｈｉｆｔ，ｅｎｄの各パラメータを得る。
【００５９】
ｏｕｔｎｕｍは画素データ係数列の先頭から出力できる係数列フラグの数を表しており、図４（ｂ）では、ｄａｔａの上位からｏｕｔｎｕｍビットの値が対応している。
【００６０】
（ｅ）次に、擬似コードＥにおいて、ｆｏｒ(ｉ＝０・・・)文でｏｕｔｎｕｍ個の係数列フラグをｄａｔａから切り出し格納する。処理に使用されず、次の処理に残しておくｄａｔａのサイズは、図４（ｂ）において、ｓｈｉｆｔで表されている。ｓｈｉｆｔは、画素データ係数列の先頭から出力できる係数列フラグの数と対応する最終係数列フラグの数に対応する。
【００６１】
（ｆ）次に、擬似コードＦにおいて、ｄａｔａをｓｈｉｆｔビット分、左にシフトし、下位４ビットを保持しておく。ｍは次ループＬで読み込まれるべき画素データ係数列のビット数を表している。
【００６２】
（ｇ）次に、擬似コードＧおよびＨにおいて、参照テーブルＩから引いたｅｎｄが“１”の場合、最後に得た係数列フラグが最終非ゼロ係数となるので、significant_coeff_flag[ｎ−１]を“１”とする。この結果、ループＬを抜け、処理を終了する。
【００６３】
本発明の第２の実施の形態に係るＶＬＣデコード方法によれば、参照テーブルＩを用いることにより、最大４ビットの画素データ係数列を１回の判定で、ＶＬＣデコードすることができる。
【００６４】
[第３の実施の形態]
（４ビットの画素データ係数列を判定するＶＬＣデコード方法）
本発明の第３の実施の形態に係るＶＬＣデコード方法として、参照テーブルを用いて一度に４ビットの画素データ係数列を判定する別のＶＬＣデコード方法は、図５（ａ）に示すフローチャートおよび図５（ｂ）に示す参照テーブルＩを用いる。
【００６５】
一度に４ビットの画素データ係数列を判定する画素データ係数列のＶＬＣデコードおいて、複数（Ｎ）ビットの画素データ係数列をインデックスとして、出力される係数フラグの数，出力される係数フラグの値自身，および出力される係数フラグと対応した最終係数フラグの数の和，最終係数フラグが“１”であるかを表すフラグとを引くことのできる参照テーブルＩを用いた場合を図５に示す。図５（ａ）はフローチャート例を示し、図５（ｂ）は参照テーブルＩを示す。参照テーブルＩにおいて、＊は“０又は１”を意味する。
【００６６】
図５（ａ）および（ｂ）は、入力として画素データ係数列が用いられ、これより画素データが非ゼロ係数か否かを示すフラグを格納する配列significant_coeff_flag[１６]、最終非ゼロ係数かどうかを表すフラグを格納する配列last_significant_coeff_flag[１６]を求めるものである。データの判定は４ビット単位で行い、必要参照テーブルとして参照テーブルＩを用意する。
【００６７】
（ａ）ステップＳ３０で処理を開始する。
【００６８】
（ｂ）ステップＳ３１において、内部で使用する変数ｎ,データ（ｄａｔａ）および、結果が格納されるsignificant_coeff_flag[０・・・１５]、last_significant_coeff_flag[０・・・１５]を各々“０”で初期化をする。ｍは画素データ係数列の先頭から判定に用いるビット数を表しており、本実施の形態の場合“４”で初期化する。
【００６９】
（ｃ）次に、ステップＳ３２において、画素データ係数列からデータをｍビット取得し、一時変数ｄａｔａへＯＲで格納する。
【００７０】
（ｄ）次に、ステップＳ３３において、ｄａｔａをインデックスとして、図５（ｂ）に示す参照テーブルＩから各変数ｏｕｔｎｕｍ(出力できる係数フラグの数)、ｓｈｉｆｔ(出力できる係数フラグと対応した最終係数フラグの数の和)、ｅｎｄ(最終係数フラグが“１”であるかを表すフラグ)、ｏｕｔｐａｔｔｅｒｎ(出力できる係数フラグの値)を得る。
【００７１】
（ｅ）次に、ステップＳ３４において、参照テーブルＩから得られた変数からsignificant_coeff_flag[]、ループＬの次の処理に必要な変数ｄａｔａ、ｍを求める。ｏｕｔｎｕｍ、ｏｕｔｐａｔｔｅｒｎはそれぞれ出力できる係数フラグの数、値を表しており、ステップＳ３４内のｆｏｒ(ｉ＝０・・・)文でｏｕｔｎｕｍ個の係数フラグへ対応する値を格納する。出力できる係数フラグの数と対応した最終係数フラグの数の和であるｓｈｉｆｔ分ｄａｔａは処理されたことから、ｄａｔａをｓｈｉｆｔビット分、左にシフトし、下位３ビットを保持しておく。ｍは次ループＬで読み込まれるべき画素データ係数列のビット数を表している。
【００７２】
（ｆ）次に、ステップＳ３５において、最終係数フラグｅｎｄが“１”であるか否かを判断する。
【００７３】
（ｆ）次に、ステップＳ３５において、最終係数フラグｅｎｄ＝０の場合には、ループＬを介して、ステップＳ３２に戻る。
【００７４】
（ｇ）次に、ステップＳ３５において、最終係数フラグｅｎｄ＝１の場合には、ステップＳ３６に移行する。
【００７５】
（ｈ）次に、ステップＳ３６において、ループＬ内で得られた係数フラグが最後の非ゼロ係数であるので、last_significant_coeff_flag[ｎ−１]を“１”とする。
【００７６】
（ｉ）次に、ステップＳ３７において、処理を終了する。
【００７７】
本発明の第３の実施の形態に係るＶＬＣデコード方法によれば、参照テーブルを用いることにより、最大４ビットの画素データ係数列を１回の判定で、ＶＬＣデコードすることができる。
【００７８】
[第４の実施の形態]
（ＶＬＣデコーダ）
動画フォーマットＨ．２６４上での画素データ係数列におけるＶＬＣデコードの方法を適用するＶＬＣデコーダの模式的な全体ブロック構成は、図６に示すように、入力データ用メモリ４０と、入力データ用メモリ４０に接続され，入力データ用メモリ４０からメモリデータＩＭＤを受信するテーブル参照装置４２と、テーブル参照装置４２に接続され，テーブル参照装置４２から引数ＡＲＧを受信し，テーブル参照装置４２に対してパラメータデータＰＤを送信するテーブル格納メモリ４６と、テーブル参照装置４２に接続され，参照テーブルデータＲＴＤを受信する出力データ用メモリ４４とを備える。
【００７９】
動画フォーマットＨ．２６４上での画素データ係数列におけるＶＬＣデコードの方法を適用するＶＬＣデコーダの詳細な全体ブロック構成は、図７に示すように、入力データ用メモリ４０と、入力データ用メモリ４０に接続され，入力データ用メモリ４０からメモリデータ信号ＩＭＤを受信する入力データ結合装置４１と、入力データ結合装置４１に接続され，入力データ結合装置４１から参照データＲＤを受信するテーブル参照装置４２と、テーブル参照装置４２に接続され，テーブル参照装置４２からテーブル参照データＴＲＤを受信し，テーブル参照装置４２に対してパラメータデータＰＤを送信するテーブル格納メモリ４６と、テーブル参照装置４２に接続され，テーブル参照装置４２から参照テーブルデータＲＴＤを表すsignificant_coeff_flag[]とlast_significant_coeff_flag[]を受信する出力データ用メモリ４４と、テーブル参照装置４２に接続され，テーブル参照装置４２から参照データＳＲＤを受信する第１のシフト回路４８とを備える。入力データ結合装置４１は、第１のシフト回路４８から受信するシフトデータＳＤと、入力データ用メモリ４０から受信するメモリデータ信号ＩＭＤとを結合する機能を有する。図７において、テーブル参照装置４２からテーブル格納メモリ４６に転送されるテーブル参照データＴＲＤは、図６の引数ＡＲＧに相当する。実際に設計するときは、テーブル参照データＴＲＤ自身を引数ＡＲＧとして参照テーブルＩを参照する方法を採用することもある。
【００８０】
本発明の第４の実施の形態に係るＶＬＣデコーダによれば、上述した第１乃至第３の実施の形態に係るＶＬＣデコード方法を適用することによって、参照テーブルを用いることにより、複数ビットの画素データ係数列を１回の判定で、ＶＬＣデコードすることができる。
【００８１】
[第５の実施の形態]
（ＶＬＣデコーダ）
本発明の第５の実施の形態に係るＶＬＣデコーダは、図８に示すように、画素データ係数列（ｂｉｎｓｔｒｉｎｇ）を格納する入力データ用メモリ４０と、入力データ用メモリ４０に結合される入力データ結合装置４１と、入力データ結合装置４１に接続されるテーブル参照装置４２と、テーブル参照装置４２に接続され，テーブル参照装置４２からテーブル参照データＴＲＤを表すビットパターン（ｂｉｔｐａｔｔｅｒｎ）を受信し，テーブル参照装置４２に対してｓｈｉｆｔ(出力できる係数フラグと対応した最終係数フラグの数の和)，ｏｕｔｎｕｍ(出力できる係数フラグの数)，ｅｎｄ(最終係数フラグが“１”であるかを表すフラグ)を送信する参照テーブル５２と、テーブル参照装置４２に接続され，テーブル参照装置４２から画素データ係数列（ｂｉｎｓｔｒｉｎｇ），ｏｕｔｎｕｍを受信する第２のシフト回路５６と、第２のシフト回路５６に接続され，significant_coeff_flag[]を格納するsignificant_coeff_flag[]格納メモリ５７と、テーブル参照装置４２に接続され，テーブル参照装置４２からｅｎｄを受信し、last_significant_coeff_flag[]を格納するlast_significant_coeff_flag[]格納メモリ５７と、テーブル参照装置４２に接続され，テーブル参照装置４２からｂｉｎｓｔｒｉｎｇ，ｓｈｉｆｔを受信し、入力データ結合装置４１にシフトデータＳＤを送信する第１のシフト回路４８とを備える。
【００８２】
本発明の第５の実施の形態に係るＶＬＣデコーダによれば、上述した第１乃至第２の実施の形態に係るＶＬＣデコード方法を適用することによって、参照テーブルを用いることにより、複数ビットの画素データ係数列を１回の判定で、ＶＬＣデコードすることができる。
【００８３】
[第６の実施の形態]
（ＶＬＣデコーダ）
本発明の第６の実施の形態に係るＶＬＣデコーダは、図９に示すように、画素データ係数列（ｂｉｎｓｔｒｉｎｇ）を格納する入力データ用メモリ４０と、入力データ用メモリ４０に結合される入力データ結合装置４１と、入力データ結合装置４１に接続されるテーブル参照装置４２と、テーブル参照装置４２に接続され，テーブル参照装置４２からｂｉｔｐａｔｔｅｒｎを受信し，テーブル参照装置４２に対してｓｈｉｆｔ，ｏｕｔｎｕｍ，ｅｎｄ,ｏｕｔｐａｔｔｅｒｎ(出力できる係数フラグの値)を送信する参照テーブル５２と、テーブル参照装置４２に接続され，テーブル参照装置４２からｏｕｔｐａｔｔｅｒｎを受信し、significant_coeff_flag[]を格納するsignificant_coeff_flag[]格納メモリ５７と、テーブル参照装置４２に接続され，テーブル参照装置４２からｅｎｄを受信し、last_significant_coeff_flag[]を格納するlast_significant_coeff_flag[]格納メモリ５７と、テーブル参照装置４２に接続され，テーブル参照装置４２からｂｉｎｓｔｒｉｎｇ，ｓｈｉｆｔを受信し、入力データ結合装置４１にシフトデータＳＤを送信する第１のシフト回路４８とを備える。
【００８４】
本発明の第６の実施の形態に係るＶＬＣデコーダによれば、上述した第３の実施の形態に係るＶＬＣデコード方法を適用することによって、参照テーブルを用いることにより、複数ビットの画素データ係数列を１回の判定で、ＶＬＣデコードすることができる。
【００８５】
[その他の実施の形態]
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施の形態及び運用技術が明らかとなろう。
【００８６】
本発明の第１乃至第３の実施の形態の説明において、参照テーブルを用いることにより、３ビット，或いは４ビットの画素データ係数列を１回の判定で、ＶＬＣデコードすることができることを説明したが、同様にして、Ｎビット（Ｎ＞４）の画素データ係数列を１回の判定で、ＶＬＣデコードすることもできることは明らかである。
【００８７】
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００８８】
【図１】本発明の第１の実施の形態に係るＶＬＣデコード方法を説明する模式的ブロック構成図であって、（ａ）係数列パラメータＡＢＣＤの説明図、（ｂ）ＶＬＣデコード方法の処理フロー図、（ｃ）画素データ係数列の模式図。
【図２】一般的に考えられる画素データ係数列のＶＬＣデコード方法のフローチャート図。
【図３】本発明の第１の実施の形態に係るＶＬＣデコード方法の説明図であって、（ａ）参照テーブルを用いて一度に３ビットの画素データ係数列を判定するＶＬＣデコード方法のフローチャート図、（ｂ）その参照テーブルＩ。
【図４】本発明の第２の実施の形態に係るＶＬＣデコード方法の説明図であって、（ａ）参照テーブルを用いて一度に４ビットの画素データ係数列を判定するＶＬＣデコード方法の擬似コードリスト例、（ｂ）その参照テーブルＩ。
【図５】本発明の第３の実施の形態に係るＶＬＣデコード方法の説明図であって、（ａ）参照テーブルを用いて一度に４ビットの画素データ係数列を判定する別のＶＬＣデコード方法のフローチャート図、（ｂ）その参照テーブルＩ。
【図６】動画フォーマットＨ．２６４上での画素データ係数列におけるＶＬＣデコード方法を適用する，本発明の第４の実施の形態に係るＶＬＣデコーダの模式的な全体ブロック構成図。
【図７】動画フォーマットＨ．２６４上での画素データ係数列におけるＶＬＣデコード方法を適用する，本発明の第４の実施の形態に係るＶＬＣデコーダの詳細なブロック構成図。
【図８】動画フォーマットＨ．２６４上での画素データ係数列におけるＶＬＣデコード方法を適用する，本発明の第５の実施の形態に係るＶＬＣデコーダの詳細なブロック構成図。
【図９】動画フォーマットＨ．２６４上での画素データ係数列におけるＶＬＣデコード方法を適用する，本発明の第６の実施の形態に係るＶＬＣデコーダの詳細なブロック構成図。
【符号の説明】
【００８９】
１４…画素データ係数列格納部
１５，５２…参照テーブル
４０…入力データ用メモリ
４１…入力データ結合装置
４２…テーブル参照装置
４４…出力データ用メモリ
４６…テーブル格納メモリ
４８…第１のシフト回路
５６…第２のシフト回路
５７…significant_coeff_flag[]格納メモリ
５８…last_significant_coeff_flag[]格納メモリ
Ｓ２０〜Ｓ２７，Ｓ３０〜Ｓ３７…ステップ
【図１】
2006166344.tif 000003
【図２】
2006166344.tif 000004
【図３】
2006166344.tif 000005
【図４】
2006166344.tif 000006
【図５】
2006166344.tif 000007
【図６】
2006166344.tif 000008
【図７】
2006166344.tif 000009
【図８】
2006166344.tif 000010
【図９】
2006166344.tif 000011