(57)【要約】  スケーラブルビデオコーデックにおいて効率的な重要な係数コーディングの技術が説明される。１つの構成において、現在のフレームまたはスライスについての初期化テーブルを生成するための処理回路を含む装置が提供される。初期化テーブルは、スケーラブルビデオコーディングを使用して、前にフレームまたはスライスについての重要係数パスの統計量を有する。装置は、初期化テーブルを現在のフレームまたはスライスとともに復号器に送信するための送信機をさらに含む。復号器は、フレームまたはスライスを送信された初期化テーブルとともに復号することができる。復号器は、また常駐の省略時初期化テーブルを使用することができる。
2010528492.tif 000002
【特許請求の範囲】
【請求項１】
現在のフレームまたはスライスについての初期化テーブルを生成するために機能する命令のセットを有する処理回路と、前記初期化テーブルはスケーラブルビデオコーディングを使用して、前に符号化されたフレームまたはスライスについての重要係数パスの統計量を有し、
前記現在のフレームまたはスライスとともに前記初期化テーブルを復号器に送信する送信機と、
を含む装置。
【請求項２】
前記初期化テーブルは、スキャンインデックスを有し、
前記処理回路は、さらにスキャンインデックスを２つの値に制限するために機能する命令の第２セットを有し、ここで前記２つの値は0およびscanIndexを含む、
前記scanIndexは、前記重要係数パスのジグザグパターンの初期スキャン位置インデックスである請求項１に記載の装置。
【請求項３】
前記初期化テーブルは、可変長コーディング（ＶＬＣ）テーブル、ブロック終結（ＥＯＢ）シフトテーブルおよび特殊ブロック終結（ｓＥＯＢ）シフトテーブルを含む請求項２に記載の装置。
【請求項４】
前記処理回路は、cycle0の後に、0に等しいスキャンインデックスについて前記ＶＬＣテーブルが更新されていない場合、さらに命令の第３セットを含む請求項３に記載の装置。
【請求項５】
前記初期化テーブルは、輝度についてである請求項１に記載の装置。
【請求項６】
前記初期化テーブルは、輝度およびクロミナンスについてである請求項１に記載の装置。
【請求項７】
前記装置は、セルラー電話、無線装置、ハンドセット、無線通信装置、ビデオゲームコンソール、無線搭載個人用携帯型情報端末、ラップトップコンピュータ、または、使用可能装置である請求項１に記載の装置。
【請求項８】
現在のフレームまたはスライスについての初期化テーブルを生成するために機能する命命令のセットを有する処理回路と、前記初期化テーブルはスケーラブルビデオコーディングを使用して、前に符号化されたフレームおよびスライスについての重要係数パスの統計量を有し、
前記現在のフレームまたはスライスとともに前記初期化テーブルを復号器に送信する送信機と、
を含む集積回路。
【請求項９】
前記初期化テーブルは、スキャンインデックスを有し、
前記処理回路は、さらにスキャンインデックスを２つの値に制限するために機能する命令の第２セットを有し、ここで前記２つの値は0およびscanIndexを含む、
前記scanIndexは、前記重要係数パスのジグザグパターンの初期スキャン位置インデックスである請求項８に記載の集積回路。
【請求項１０】
前記初期化テーブルは、可変長コーディング（ＶＬＣ）テーブル、ブロック終結（ＥＯＢ）シフトテーブルおよび特殊ブロック終結（ｓＥＯＢ）シフトテーブルを含む請求項９に記載の集積回路。
【請求項１１】
前記処理回路は、cycle0の後に、0に等しいスキャンインデックスについて前記ＶＬＣテーブルが更新されていない場合、さらに命令の第３セットを含む請求項１０に記載の集積回路。
【請求項１２】
前記初期化テーブルは、輝度、クロミナンスまたは前記輝度および前記クロミナンスの両方についてである請求項１０に記載の集積回路。
【請求項１３】
現在のフレームまたはスライスについての初期化テーブルを生成するための生成手段と、前記初期化テーブルはスケーラブルビデオコーディングを使用して、前に符号化されたフレームおよびスライスについての重要係数パスの統計量を有し、
前記現在のフレームまたはスライスとともに前記初期化テーブルを復号器に送信する送信手段と、
を含む装置。
【請求項１４】
前記初期化テーブルは、スキャンインデックスを有し、
前記生成手段は、スキャンインデックスを２つの値に制限するための制限手段を含み、ここで前記２つの値は0およびscanIndexを含む、前記scanIndexは、前記重要係数パスのジグザグパターンの初期スキャン位置インデックスである請求項１３に記載の装置。
【請求項１５】
前記初期化テーブルは、可変長コーディング（ＶＬＣ）テーブル、ブロック終結（ＥＯＢ）シフトテーブルおよび特殊ブロック終結（ｓＥＯＢ）シフトテーブルを含む請求項１４に記載の装置。
【請求項１６】
前記初期化テーブルは、輝度、クロミナンスまたは前記輝度および前記クロミナンスの両方についてである請求項１５に記載の装置。
【請求項１７】
現在のフレームまたはスライスについての初期化テーブルを生成することと、前記初期化テーブルは、スケーラブルビデオコーディングを使用して、前に符号化されたフレームまたはスライスについての重要係数パスの統計量を有し、
前記現在のフレームまたはスライスとともに前記初期化テーブルを復号器に送信することと、
を生じさせる命令を有するコンピュータ可読媒体を含むコンピュータプログラムプロダクト。
【請求項１８】
前記初期化テーブルは、スキャンインデックスを有し、
前記生成させるための命令は、
スキャンインデックスを２つの値に限定すること、ここで前記２つの値は0およびscanIndexを含む、前記scanIndexは、前記重要係数パスのジグザグパターンの初期スキャン位置インデックスである、
をコンピュータに生じさせる命令を含む請求項１７のコンピュータプログラムプロダクト。
【請求項１９】
前記初期化テーブルは、可変長コーディング（ＶＬＣ）テーブル、ブロック終結（ＥＯＢ）シフトテーブルおよび特殊ＥＯＢ（ｓＥＯＢ）シフトテーブルを含む請求項１８のコンピュータプログラムプロダクト。
【請求項２０】
前記初期化テーブルは、輝度、クロミナンス、または、前記輝度および前記クロミナンスの両方についてである請求項１９のコンピュータプログラムプロダクト。
【請求項２１】
スケーラブルビデオコーディングを使用して現在のフレームまたはスライスを符号化することと、
前記現在のフレームまたはスライスについて初期化テーブルを生成することと、前記初期化テーブルは前記スケーラブルビデオコーディングを使用して、前に符号化されたフレームまたはスライスについての重要係数パスの統計量を有し、
前記現在のフレームおよびスライスとともに前記初期化テーブルを復号器に送信することと、
前記送信された初期化テーブルを使用して前記現在のフレームまたはスライスを前記復号器によって復号することと、
を含む方法。
【請求項２２】
前記初期化テーブルは、スキャンインデックスを有し、
前記生成することは、
スキャンインデックスを２つの値に限定すること、ここで前記２つの値は0およびscanIndexを含み、前記scanIndexは、前記重要係数パスのジグザグパターンの初期スキャン位置インデックスである、を含む請求項２１の方法。
【請求項２３】
前記送信することは、前記初期化テーブルにおいて、可変長コーディング（ＶＬＣ）テーブル、ブロック終結（ＥＯＢ）シフトテーブルおよび特殊ＥＯＢ（ｓＥＯＢ）シフトテーブルを送信することを含む請求項２１の方法。
【請求項２４】
前記送信することは、
輝度、クロミナンスまたは前記輝度および前記クロミナンスの両方についての前記初期化テーブルにおいて、可変コーディング（ＶＬＣ）テーブル、ブロック終結（ＥＯＢ）シフトテーブルおよび特殊ＥＯＢ（ｓＥＯＢ）シフトテーブルを送信することを含む請求項２３の方法。
【請求項２５】
前記復号することは、復号器における常駐の省略時テーブルを使用して、現在のフレームまたはスライスを復号器によって復号することを含む請求項２４の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、以下に十分に説明されているように、参照によって本明細書に引用されている２００６年１０月１３日に出願された仮特許出願第６０／８２９，４９０号の優先権を主張する。
【０００２】
本開示は、一般に、コーデックの分野に関し、より具体的には、スケーラブルビデオコーデック（scalable video codecs）における効率的な重要係数（significant coefficients）のコーディングについての技術に関する。
【背景技術】
【０００３】
ＭＰＥＧ−１，Ｈ．２６１／２６３／２６４などのような従来のビデオコーディング標準は、よく「固定ＱＰ符号化（fixed QP encoding）」と呼ばれる所定の品質の設計、または、レート制御メカニズムの使用を介して相対的に一定のビットレートのいずれかでビデオを符号化する。ある理由に関して、ビデオが異なる品質で送信または復号化される必要がある場合、そのときデータは最初に復号化され、そして適切な設計を使用して再び復号化されなくてはならない。ある筋書きにおいて、例えば低遅延リアルタイムアプリケーションにおいて、そのような「トランスコーディング（transcoding）」が実現化されないことがある。同様に、従来のビデオコーディング標準は、特定の空間的解像度でビデオを符号化する。ビデオが低い解像度で送信または復号化される必要がある場合、そのときデータは最初に復号化され、空間的にスケールされ、そして再び符号化されなければならない。また、このようなトランスコーディングは、ある筋書きにおいて、実現化しない。
【０００４】
すなわち、スケーラブルビデオコーデックにおける効率的な重要係数のコーディングについての技術の必要性がある。
【発明の概要】
【０００５】
スケーラブルビデオコーデックにおける効率的な重要係数のコーディングについての技術が提供される。１つの構成において、現在のフレームまたはスライスについて初期化テーブルを生成するための命令のセットを有する処理回路を含む装置と、スケーラブルビデオコーディングを使用して、前にフレームまたはスライスについて重要係数パスの統計量を有する初期化テーブルと、が提供される。装置は、現在のフレームまたはスライスとともに初期化テーブル（initialization table）を復号器に送信するための送信機をさらに含む。
【０００６】
他の構成において、現在のフレームまたはスライスについて初期化テーブルを生成することを生じさせる命令を有するコンピュータ可読媒体を含むコンピュータプログラムプロダクトと、スケーラブルビデオコーディングを使用して、前に符号化されたフレームまたはスライスについて重要係数パス（significant coefficient pass）の統計量（statistics）を有する初期化テーブルが提供される。
【０００７】
そのうえ、さらなる構成において、スケーラブルビデオコーディングを使用して現在のフレームまたはスライスを符号化する方法が提供される。方法は、現在のフレームまたはスライスについて初期化テーブルを生成することと、スケーラブルビデオコーディングを使用して、前に符号化されたフレームまたはスライスについて重要係数パスの統計量を有する初期化テーブルと、をさらに含む。方法は、現在のフレームおよびスライスとともに初期化テーブルを復号器に送信することと、送信された初期化テーブルを使用して現在のフレームまたはスライスを復号器によって復号することと、をさらに含む。
【０００８】
さらなる態様は、詳細な説明から、特に添付された図面と共に用いられるときに、より直ちに明らかになる。
【図面の簡単な説明】
【０００９】
本開示の態様および構成は、以下の詳細な説明から、全体に通して対応する要素の参考特徴を示すような図と共に用いられるときに、より直ちに明らかになる。
【図１】図１は、細粒度スケーラビリティ（Fine Granularity Scalability）（ＦＧＳ）使用する従来のスケーラブルビデオコーディング（scalable video coding）（ＳＶＣ）についての一般的なフローチャートを示す。
【図２】図２は、ＦＧＳとともにＳＶＣコードを示す。
【図３Ａ】図３Ａは、すべての係数が重要パス係数として分類されたブロックの一例を示す。
【図３Ｂ】図３Ｂは、すべての係数が重要パス係数として分類されたブロックの一例を示す。
【図３Ｃ】図３Ｃは、すべての係数が重要パス係数として分類されたブロックの一例を示す。
【図４Ａ】図４Ａは、重要パスおよびリファインメントパス（refinement pass）の係数の一例を示す。
【図４Ｂ】図４Ｂは、重要パスおよびリファインメントパスの係数の一例を示す。
【図４Ｃ】図４Ｃは、重要パスおよびリファインメントパスの係数の一例を示す。
【図５】図５は、従来のＳＶＣコーデックを示す。
【図６】図６は、ＳＶＣを使用してマクロブロックを符号化するための従来のＳＶＣの符号化処理の一般的なフローチャートを示す。
【図７】図７は、ＳＶＣの省略時初期化テーブルの一例を示す。
【図８】図８は、indexSを再び定義する処理の一般的なフローチャートを示す。
【図９】図９は、ＳＶＣおよび再び定義されたindexSを使用して、マクロブロックを符号化するための従来のＳＶＣの符号化処理の一般的なフローチャートを示す。
【図１０】図１０は、ＳＶＣおよび再び定義されたindexSを使用して、マクロブロックを符号化するためのＳＶＣの簡略化された符号化処理の一般的なフローチャートを示す。
【図１１】図１１は、効率的なＳＶＣコーデックのビット保存の第１レベルとともにＳＶＣフレーム送信についての一般的なブロック図を示す。
【図１２】図１２は、効率的なＳＶＣコーデックのビット保存の第２レベルとともにＳＶＣフレーム送信についての一般的なブロック図を示す。
【図１３】図１３は、効率的なＳＶＣコーデックのビット保存の第３レベルとともにＳＶＣフレーム送信についての一般的なブロック図を示す。
【図１４】図１４は、無線装置の構成のブロック図を示す。
【００１０】
図におけるイメージは、説明目的で簡略化されており、縮尺について描写していない。理解を容易にするために、なるべく、図に共通な同一要素を示すために、適切なときに要素を識別化するために接尾語が付加されることを除き、同一参考数字が使用されている。
【００１１】
添付された図面は、発明の模範的な構成を説明し、それ自体で、他の同様の効果的な構成を認めることができる発明の範囲を限定すると考慮されるべきではない。これは、１つの構成の特徴またはステップがさらなる詳説なしで他の構成に有利に組み込まれることが考慮されている。
【発明を実施するための形態】
【００１２】
本明細書で「模範的」の用語は、「見本、例、または実例としてサーブされる」を意味するために使用される。本明細書で「模範的」として説明されている任意の構成または設計は、他の構成または設計に対して好まれる、または、有利であると解釈される必要はなく、また、「コア（core）」、「エンジン」、「機械」、「プロセッサ」および「処理ユニット」の語は、互換性があるようにして使用される。
【００１３】
図１は、細粒度スケーラビリティ（Fine Granularity Scalability）（ＦＧＳ）を使用する従来のスケーラブルビデオコーディング（Scalable video coding）（ＳＶＣ）１０の一般的なフローチャートを示す。スケーラブルビデオコーディング（ＳＶＣ）１０は、トランスコーディング（tｒanscoding）の問題を克服する。ＳＶＣ１０についての処理は、図２と併用して説明される。図２は、ＦＧＳとともに従来のＳＶＣコードを示す。ＳＶＣ１０についての一般的な処理は、最小空間的解像度３００および品質３２０、ここで０は基底層を示す、で「基底層（base layer）」（図２）を符号化することによってブロック１２から開始する。ブロック１２は、空間的解像度３０１−３０ｍおよび／または品質３２１−３２ｍを最大レベルまで増加させるコーディング増加情報（enhancement information）が用意されるブロック１４によって後続される。したがって、空間的解像度の低減は、トランスコードする必要性なく、空間的増加情報を単純に処分することによって、達成することができる。
【００１４】
品質増加について、情報は、よく不連続（密接な間隔）な点で切り捨てられ、達成すべき「基底」および「最大」との間の中間品質を可能にすることによってさらなる柔軟性を提供する。品質のスケーラビリティを達成することを可能にするＦＧＳ増加層１−ｍは、ＦＧＳ（細粒度スケーラビリティ）（Fine Granularity Scalability）と称される。各ＦＧＳ層０−ｍは、量子化変換係数３４０−３４ｍ、おそらく無制限の運動ベクトルなどの他のシンタックス要素３６１−３６ｍを含む。
【００１５】
第ｍのＦＧＳ増加層における変換係数のコーディングは、通常、２つのパスで行われる−ブロック１８におけるリファインメント、および、ブロック１６における重要なパス。ブロック１６における重要なパスにおいて、全てのより低いＦＧＳ層の再構成されたゼロに等しい値である全ての係数はコードされる。残りの係数は、ブロック１８におけるリファインメントパスでコードされる。そして、ＦＧＳ増加層情報は、ブロック２０において送信されることがある。
【００１６】
図３Ａ、３Ｂおよび３Ｃは、全ての係数が重要なパス係数として分類されたブロックの例を示す。図３Ａに示すようなジグザグパターンは、全ての４×４ブロック４０Ａ、４０Ｂおよび４０Ｃについて使用される。図３Ａ、３Ｂおよび３Ｃの模範的なブロック４０Ａ、４０Ｂおよび４０Ｃは、係数が重要なパスとして分類された場合をそれぞれ示す。図３Ａ、３Ｂおよび３Ｃの各４×４ブロック４０Ａ、４０Ｂおよび４０Ｃにおいて、係数は、ラン値（run-value）ペアに分割される。図３Ａのブロック４０Ａにおいて、係数は、{1}、{0-1}、{1}、{0-0-1}に分割される。図３Ｂのブロック４０Ｂにおいて、係数は、{0-1}、{1}、{0-1}に分割される。図３Ｃのブロック４０Ｃにおいて、係数は、{000000001}である。
【００１７】
重要ランは、開始スキャンインデックス、０に等しい係数の数および終了値（terminating value）、または(p,r,v)トリプレット（triplet）によって十分に説明される。したがって、図３Ａのブロック４０Ａにおけるランは、(0,0,1)0、(1,1,1)0、(3,0,1)0および(4,2,1)0であり、図３Ｂのブロック４０Ｂについては、(0,1,1)1、(2,0,1)1および(3,1,1)1である。下付き文字は、ブロックインデックスを示し、明確にさせるために加えられた。第iのコーディング「cycle」において、p ≦ iである全てのランは、全てのブロックからからコードされる。この例において、各cycleのコードされたランは、
Cycle 0: (0,0,1)0, (0,1,1)1, (0,8,1)2
Cycle 1: (1,1,1)0
Cycle 2: (2,0,1)1
Cycle 3: (3,0,1)0, (3,1,1)1;and
Cycle 4: (4,2,1)0.
である。
【００１８】
図４Ａ、４Ｂおよび４Ｃは、重要パスおよびリファインメントパスの係数の例を示す。図４Ａに示すようなジグザグパターンは、全ての４×４ブロック５０Ａ、５０Ｂおよび５０Ｃに使用される。ブロック５０Ａ，５０Ｂおよび５０Ｃにおいて、シェーディングされた係数は、リファインメントパスに属する。リファインメントパス係数は、ランレングスを算出しているときスキップされる。それゆえ、この例において、第１のブロック５０Ａの重要ランは、(0,1,1)0、(1,2,1)0および(5,2,1)0である。第２のブロック５０Ｂについて重要ランは、(0,2,1)1および(2,1,1)1である。第３のブロック５０Ｃについて重要ランは、(0,6,1)2である。指定のスキャンインデックスでリファインメント係数を示すために、特殊なランレングス「Ｘ」を使用することは、各cycleにおいて、コードされた係数は、
Cycle 0: (0,0,1)0, (0,1,1)1, (0,5,1)2
Cycle 1: (1,1,1)0
Cycle 2: (2,0,1)1, (2,X,0)2
Cycle 3: (3,X,1)0, EOB1, (3,X,0)2
Cycle 4: (4,X,0)0, (4,X,1)1, (4,X,0)2;and
Cycle 5: (5,1,1)0
である。
【００１９】
シンボル「ＥＯＢｎ」は、ｎがブロックについてのカウンタであるブロックｎにおいて、コートされるべきゼロでない重要パス係数がもう残っていないことを意味する。ブロック終結（end-of-block）（ＥＯＢ）の他に、特殊（special）ＥＯＢ（ｓＥＯＢ）は、送信されることができる。これは、ブロックｎで、コードされるべきゼロでない重要パス係数がもう残っていないが、重要係数レベル絶対値のいくつかは１より大きいことを意味する。これらのブロックについて、さらなる情報は、送信される。
【００２０】
ＥＯＢおよびｓＥＯＢシンボルが現れる確率は、フレーム間で、フレームコンテントに依存する１つのシーケンスから他へと、変化する。(p, r, v)トリプレットによってランレングスを説明しているとき、rの値は、0と等しくなるようにコードされた係数の数に等しい。例えば、ラン{0, 0, 0, 1}は、トリプレット(0, 3, 1)を割り当てる。r=Cおよびr=Dの値は、ＥＯＢおよびｓＥＯＢシンボルについて許可するために確保されている。
【００２１】
コードの効率性は、可変長コード（variable length coded）（ＶＬＣ）テーブルがcycle数または開始スキャン位置に依存するＥＯＢおよびｓＥＯＢについて重要なランおよび値ＣおよびＤを符号化するために使用された場合、かなり改良される。
【００２２】
図５は、従来のＳＶＣコーデック６０を示す。スケーラブルビデオコーディング（ＳＶＣ）コーダ（corder）６０について１つの解決は、ＥＯＢ決定モジュール６２を用いて決定されるブロック終結（ＥＯＢ）を動的に決定すること、ｓＥＯＢがｓＥＯＢシフト決定モジュール６４をシフトすることを含み、コーディングがコーディングモジュール７４によって実行されている間、ＶＬＣテーブル1, 2, …, T、利用可能なＶＬＣテーブル７０の範囲外のセットは、統計量収集モジュール７２を介して収集された統計量に基づいて、重要ランをコードするために用いられるべきできる。ＶＬＣテーブル１、２、…、Ｔ、ＥＯＢおよびｓＥＯＢシフトは、以下の、
indexS = 0;
ただし、
( i=0; i<scanIndex; i++ ){if (!coeffBase[i] && coeff[i]){indexS = i + 1;}} (1)
ここでiは、重要係数パスのジグザグスキャンにおいて位置を示すためのカウンタであり、scanIndexは、重要係数パスの間のcycleについての開始スキャンインデックスであり、coeffBase[i]は、スキャン位置iで0からn-1のＦＧＳ層についての情報を使用して再構成された変換係数の値であり、現在のコードされた第ｎのＦＧＳ層についての係数のcoeff[i]レベル、「!」は、ビットフリップ（bit flip）を意味し、また&&は論理ＡＮＤ関数を表す、仮のcode(1)に応じて、indexSが計算されたindexSに依存する。本明細書で説明する方程式（equation）および表現式（expression）の多くは、CまたはC++のコンピュータプログラミング言語と同様のシンタックスを使用することを注意すべきである。表現式は、説明目的のためであり、異なるシンタックスについて他のコンピュータプログラミング言語において表すことができる。
【００２３】
ＳＶＣコーダ６０は、scanIndex７８Ａ、coeffBase[i]７８Ｂ、 coeff[i]７８ＣおよびindexS７８ＤをトラックするindexS計算機７６をさらに含む。符号器および復号器の両方において、および累算器８０は、異なるindexS値0、1、…、Max、ここでMaxは使用されたジグザグパターンにおけるスキャン位置の合計数の関数である、についてのシンボルの累算カウントを別々に記憶するために提供される。
【００２４】
図６は、ＳＶＣを使用してマクロブロックを符号化するための従来のＳＶＣの符号化処理９０についての一般的なフローチャートを示す。処理は、マクロブロックを符号化することをともなうブロック９１で開始される。ブロック９１で各マクロブロックが符号化された後、ＶＬＣテーブル、ＥＯＢおよびｓＥＯＢシフトは、各indexSの値について、９３Ａ、９３Ｂおよび９３Ｃでそれぞれ更新される。それゆえ、ブロック９１は、indexSが取得されるブロック９２によって後続される。ブロック９２は、ＶＬＣテーブル、ＥＯＢおよびｓＥＯＢシフトが更新されるブロック９３Ａ、９３Ｂおよび９３Ｃによって後続される。ブロック９３Ａ、９３Ｂおよび９３Ｃは、並列に示されている。ただし、説明図は、説明目的のためである。したがって、フローチャートブロックは、描写された順番で実行されることがあり、または、これらのブロックまたはそれらの部分は、並列に、または異なる順番に、同時に実行されることもある。ある例において、任意の１つのループ反復について、更新が要求されていない場合、ブロックは省略される。
【００２５】
ブロック９３Ａ、９３Ｂおよび９３Ｃは、indexSが増加されるブロック９４によって後続される。ブロック９４は、最後のindexSの値について、全てのＶＬＣテーブル、ＥＯＢおよびｓＥＯＢシフトが更新されたどうかの決定が行われるどうかのブロック９５によって後続される。決定が「いいえ」の場合、処理９０は、最後のindexSまで９３Ａ、９３Ｂ、９３Ｃ、９４および９５のループを繰り返すためにループバックする。ブロック９５で決定が「はい」の場合、処理９０は終了する。
【００２６】
上記の解決に関して不利点の１つは、適合の複雑性である。例えばcycle Xが符号化／復号化されたとき、indexSは、0からMaxまでの任意の値を取ることができる。それゆえ、各マクロブロック終結ＥＯＢ、ｓＥＯＢシフトおよびＶＬＣテーブル、indexS=0、1、…、Maxについて見つからなくてはならない。
【００２７】
低ビットレートで、および／またはスライスコーディング（例えばクォータ共通中間形式（Quarter Common Intermediate Format）QCIFスライス）に関連して、シンボル統計量に適合するために必要であるビットレートは、フレーム／スライスビットレートの実質的な量を表す。したがって、レートひずみ（rate-distortion）の性能は、不適切なＶＬＣテーブルまたはＥＯＢ／ｓＥＯＢシフト初期化が小さいスライスおよび／または低ビットレートについて使用される場合、落ちることがある。
【００２８】
図７は、ＳＶＣについて従来の省略時初期化テーブル９９の一例を示す。省略時初期化テーブル９９は、ＳＶＣについて従来のＶＬＣテーブルおよびＥＯＢシフト初期化方法を使用して生成される。ＳＶＣについて考慮された従来のＶＬＣテーブルインデックスおよびＥＯＢシフト初期化方法は、省略時初期化テーブルEOBshiftInit[D]、sEOBshiftInit[D]およびVLCtableSelectInit[D]、ここでＤは省略値を意味する、の単一セットのみサポートする。容易に見られるように、indexS=0について示されるEOBshiftInit[D]の値、ＥＯＢシフトは16と等しくなるべきである（現在のＳＶＣシンタックスＥＯＢは、indexS=0について決して信号を送られるべきでなく、これゆえ、ＥＯＢシフトの最大値が使用される）。indexS=0についてＥＯＢシフトは、2などと等しくなるべきである。VLCtableSelectInit[D]の値は、indexS=0、1および2について、ＶＬＣテーブルが使用されるべきであると指示し、indexS 3-15についてＶＬＣテーブル0が使用される。sEOBshiftInit[D]の値は、indexS=0についてｓＥＯＢシフトが16と、indexS=1-10について６と等しく、その後単調に減少すべきであると指示する。省略時テーブルは、ＳＶＣコーデック６０の復号器側で利用可能である。
【００２９】
図７の初期化テーブルは、輝度について使用され、他の初期化テーブル（図示しない）は、クロミナンスについて使用される。しかしながら、初期化テーブルの単一のセットを使用することは、広く変化するコンテントをともなうビデオ素材の符号化が本質的に変化するシンボル統計量をもたらすため、（そして、したがって、各indexSの値について実質的な変化するＶＬＣテーブル、ＥＯＢおよびｓＥＯＢシフトが選択される）十分でない。
【００３０】
図８は、indexSを再び定義する処理１００の一般的なフローチャートを示す。テーブルの適応の複雑性を減少させるため、以下の、
if(indexS>0){indexS=scanIndex;}                                              (2)
ここで、scanIndexはcycleについて初期スキャン位置インデックスである、模範的な仮のcode(2)に応じてindexSは、再び定義される。
【００３１】
一般的に、indexSを再び定義する処理１００は、indexSが０より大きいかどうかの決定が行われるブロック１０２で開始する。決定が「はい」である場合、そのとき、ブロック１０２は、indexSがscanIndexと等しいブロック１４によって後続される。しかしながら、決定が「いいえ」である場合、そのときブロック１０２は、indexSが0と等しいブロック１０６によって後続される。ブロック１０６は、追加的なステップを表すために点線で示されている。これは、indexSは0またはscanIndexとすることができることが仮コードから意味される。ブロック１０４および１０６が処理１００を終了する。
【００３２】
したがって、indexSは、scanIndexまたは0として意味される初期スキャンインデックスのみを等しくなるように再び定義される。これは、各cycleについてＶＬＣテーブルインデックス、ＥＯＢおよびｓＥＯＢシフトのindexSの２つの値のみについて計算されることを意味する。
【００３３】
図９は、ＳＶＣおよび再び定義されたindexSを使用してマクロブロックを符号化するためのＳＶＣの符号化処理１２０の一般的なフローチャートを示す。ＳＶＣの符号化処理１２０は、マクロブロックを符号化することをともなうブロック１２２で開始する。ブロック１２２で各マクロブロックが符号化された後、ブロック１２４で現在のcycleが0と等しくなるように設定される。ブロック１２４は、現在のcycleについての第１indexＳが取得されるブロック１２６によって後続される。これは、0でもよく、初期スキャンインデックスまたはcycleにおいてある他の数が上記のcode(1)に応じて計算される。ブロック１２６は、図８の処理１００に応じてindexSが再び定義されるブロック１２８によって後続される。ブロック１２８は、indexSの現在の値、ＶＬＣテーブル、ＥＯＢおよびｓＥＯＢシフトが更新されるブロック１３０、１３２および１３４によって後続される。ブロック１３０、１３２および１３４は並列に示されているが、必要ならば異なる順番に構成され、および／または、スキップされることがある。ブロック１３０、１３２および１３４は、cycleの終わりかどうか判断する決定が行われるブロック１３６によって後続される。決定が「いいえ」の場合、そのときブロック１３８で第２のindexSが取得される。ブロック１３８は、図８の処理１００に応じて現在のcycleについてindexSが計算されるブロック１４０によって後続される。ブロック１４０は、idexSの現在の値についてＶＬＣテーブル、ＥＯＢおよびｓＥＯＢシフトがまた更新されるようにブロック１３０、１３２および１３４に前にループバックする。
【００３４】
またブロック１３６に戻り、cycleの終わりは、いくつかの条件に基づいて決定されることがある。それでもなお、cycleの終わりは、indexSが２つの値0またはscanIndexのみを取るように決定されることがある。したがって、indexS=0およびscanIndexについて２つのループの繰り返しが完了した後、現在のcycleは、更新され、終了することがある。しかしながら、indexS=Oなしのcycleについて、cycleは、indexS=scanIndexについて１つの繰り返しのみの後に終わることがある。それに応じて、ブロック１３６での決定が「いいえ」の場合、そのときブロック１３６は、図１１に関連してさらに詳しく説明されるように、ＶＬＣテーブル、更新されたＥＯＮシフト、および更新されたｓＥＯＢシフトが送信のために集計されるブロック１４２によって後続される。
【００３５】
ブロック１４２は、最後のcycleに達したかどうかの決定が行われるブロック１４４によって後続される。ブロック１４４での決定が「はい」の場合、そのときブロック１４４は処理１２０を終了する。しかしながら、ブロック１４４での決定がさらなるcycleを意味する「いいえ」の場合、現在のcycleはブロック１４６で増加する。ブロック１４６は、indexS=0およびscanIndexについてＶＬＣテーブル、ＥＯＢおよびｓＥＯＢの更新の処理を繰り返すようにブロック１２６に戻る。
【００３６】
図１０は、ＳＶＣおよび再び定義されたindexSを使用してマクロブロックを符号化するためのＳＶＣの簡略化された符号化処理１５０の一般的なフローチャートを示す。さらに符号化処理１２０を簡略にするために、Cycle0の後、ＶＬＣテーブルは、0に等しいindexSについて適応されてない（ＥＯＢおよびｓＥＯＢは、現在のＳＶＣシンタックスの制約内においてCycle=0またはindexS=0について決して信号を送るべきではない）。したがって、ブロック１３２’および１３４’は、これらはcycle0について、すなわちindexS=0のとき、省略されることがあるため、幻想のように示されている。Cycle0について選択されたＶＬＣテーブルは、任意の他のCycleについてindexSが０に等しいとき、使用される。異なるCycleの並列にされた復号化が望まれる場合、indexS=0についてのＶＬＣテーブルインデックスは、復号器に送信されるべきである。 
図１０において、ＳＶＣの簡略的な符号化処理１５０は、ブロック１２９での条件が加えられたこと、および、ＶＬＣテーブル、ＥＯＢおよびｓＥＯＢが少し異なる順番で更新されることを除いては、図９における処理１２０と本質的に同じである。したがって、改良された、または、加えられたブロックのみが説明される。処理１５０の他のブロックは、図９において前に上記で説明された。図１０において、両方の現在のcycleが0より多く、indexSが=0でるかどうかを決定するためにブロック１２８の後に決定が行われる。決定が「いいえ」の場合、そのとき、ＶＬＣテーブルはブロック１３０’で更新される。ＶＬＣテーブルは、indexSが0に等しいとき、0より大きい任意のcycleについて、更新されない、または、変化されない。したがって、ブロック１２９での決定が「はい」である場合、このとき、ＥＯＢシフトおよびｓＥＯＢシフトのみがそれぞれブロック１３２’および１３４’で更新される。ブロック１３０は、ブロック１３２’および１３４’によって後続される。ブロック１３２’および１３４’は、ブロック１３６によって後続される。
【００３７】
さらなる別の構成において、indexSは、初期スキャン位置インデックスの値を割り当てることをいつもできる。このような構成において、indexS>0、ＥＯＢおよびｓＥＯＢが許されないときにおける係数について、重要ランについてのＶＬＣコードインデックスの割り当ては、適宜に改良されなくてはならない。例えば、indexS=4のとき、ＥＯＢおよびｓＥＯＢについて確保されるrの値は、(p,r,v)トリプレットにおいて、それぞれ0および5にそれぞれ等しい、また表１に応じて次のＶＬＣテーブルは選択される。
【表１】
2010528492.tif 000003
【００３８】
ＥＯＢおよびｓＥＯＢが許可されないときにおける係数について、ＶＬＣコードインデックスへのシンボルの割り当て（重要ラン）は、表２に応じて割り当てられる。
【表２】
2010528492.tif 000004
【００３９】
図１１は、効率的なＳＶＣコーテック２００のビット保存の第１レベルとともにＳＶＣフレーム送信についての一般的なブロック図を示す。効率的なＳＶＣコーデック２００は、
符号器２２０および復号器２４０を含む。本明細書で説明された適応のコーディング効率を増加させるために、効率的なＳＶＣコーデック２００は、フレーム／スライス[i]として意味される、各フレームまたはスライスについて初期化テーブル[i-1]２０４Ａを復号器２４０に送信する。初期化テーブル[i-1]２０４Ａは、１つ以上のシンタックス要素を含むことができる。例えば、初期化テーブル[i-1]２０４Ａは、輝度についての初期化テーブル[i-1]２０４ＡL、クロミナンスについての初期化テーブル[i-1]２０４Cを少なくとも含んでいる。初期化テーブル[i-1]２０４ＡLのみが示されている。初期化テーブル[i-1]２０４ＡLは、輝度についてのテーブルEOBshiftInit[i-1]、EOBshiftInit[i-1]およびEOBshiftInit[i-1]を含む。初期化テーブル[i-1]２０４Cも、クロミナンスについてのテーブルEOBshiftInit[i-1]、sEOBshiftInit[i-1]およびVLCtableSelectInit[i-1]を含むことができる。これらのテーブルは、例えば、省略時テーブルよりもよい現在のフレームの統計量を示すと保障するであろう前に符号化されたフレームまたはスライスについての統計量収集を使用することによって復号器２２０によって取得することができる。このような構成において、インディケータiは、現在のフレームまたはスライスを意味し、i-1は、前のフレームまたはスライスを意味する。インディケータMaxは、最後のindexSを意味する。
【００４０】
図１１において、符号器２２０から復号器２４０への送信は、初期化テーブル[i-1]２０４Ａによって後続される現在のフレーム／スライス[i]２０４Ａの代表的なビットストリームを含むであろう。ブロック２０６は、必要であればビットストリームにおいて他のデータが含まれることがあることを表すためのみに示されている。第２フレーム／スライス[i+1]２０２Ｂは、ブロック２０６または２０４Ａに続くであろう。第２フレーム／スライス[i+1]２０２Ｂに続くと、初期化テーブル[(i-1)+1]２０４Ｂは、復号器２４０と通信される。ビットストリームは、残りのフレームまたはスライスについてブロック２０６ありまたはなしのパターンを含む。この例において、情報は、単一のビットストリームにおいて示されている。しかしながら、フレーム／スライス情報は、初期化テーブルから分離されたストリームに送信されることがある。このような構成において、復号器２４０は、初期化テーブル[i-1]２０４Ａ、初期化テーブル[(i-1)+1]２４０Ｂなどにおいて送信された場合、輝度およびクロミナンスまたは他のシンタックス要素について省略時テーブルを使用することを必要とされないであろう。
【００４１】
図１２は、効率的なＳＶＣコーデック２００’のビット保存の第２レベルとともにＳＶＣのフレーム送信についての一般的なブロック図を示す。効率的なＳＶＣコーデック２００’において、初期化テーブル[i-1]２０４’は、輝度のみについて、テーブルEOBshiftInit[i-1]、sEOBshiftInit[i-1]およびVLCtableSelectInit[i-1]を含む。したがって、あるフレーム／スライス２０２Ａ’および２０２Ｂ’については、輝度のみについて初期化テーブル[i-1]２０４Ａ’および初期化テーブル[(i-1) +1]２０４’が送信される。このような構成において、復号器２４０は、フレーム／スライスを復号するために、復号器２４０に常駐する省略時初期化クロミナンステーブル２４４を使用するであろう。
【００４２】
図１３は、効率的なＳＶＣコーデック３００のビット保存の第３レベルともにＳＶＣフレーム送信の一般的なブロック図を示す。コーデック３００は、符号器３２０および復号器３４０を含む。初期化テーブル[i-1]３０４Ａを送信するために必要なビットの量を減らすために、EOBshiftInit[i-1]、sEOBshiftInit[i-1]およびVLCtableSelectInit[i-1]についてのテーブルは、あるindexS値についてのみ送信されることができる。例えば、indexS<Max1についてである。例えば、Max1は８であることがある。残りのindexSの値については、M+1, M+2, …Max2 として意味されるindexS > Max1 (M)について、省略時の値EOBshiftInit[D]、sEOBshiftInit[D]およびVLCtableSelectInit[D]をもつ省略時初期化テーブル３４４は、復号器３４０によって使用される。EOBshiftInit[i-1]、EOBshiftInit[i-1]およびVLCtableSelectInit[i-1]についてindexS値は、復号器３４０に送信され、符号器３２０において適応性のある決定することができ、フレームからフレームへ、または、スライスからスライスへと変動する。
【００４３】
図１３において、符号器３２０から復号器３４０までの送信は、初期化テーブル[i-1]３０４Ａによって後続される現在のフレーム／スライス[i]３０２Ａの代表的なビットストリームを含む。ブロック３０６は、ビットストリームにおいて他のデータが含まれることがあることを表すためのみに示されている。第２のフレーム／スライス[i+1]３０２Ｂは、ブロック３０６または３０４Ａに続くだろう。第２のフレーム／スライス[i+1]３０２Ｂに続くと、初期化テーブル[(i-1)+1]３０４Ｂは、復号器３４０と通信される。ストリームは、残りのフレームまたはスライスについてブロック３０６ありまたはなしのパターンを含む。このような構成において、情報は、単一のビットストリームとして示される。しかしながら、フレーム／スライス情報は、初期化テーブルから分離されたストリームにおいて送信されることがある。
【００４４】
さらに、フレーム／スライス内容に依存して、初期化テーブルは、あるシンタックス要素についてのみ、送信されることができ、残りのものについて、省略時初期化テーブルが使用されるべきである。例えば、図１２に示すように、あるスライス／フレームについて、ＥＯＢについての初期化テーブル、および、輝度についてのＶＬＣテーブルは送信されることができる。
【００４５】
これは、cycleの数またはindexSが増加しているとき、ＥＯＢシフトおよびｓＥＯＢ値がいつも単調に減少することが観察される。それゆえ、ＥＯＢシフトテーブルは、indexS=1について、ＥＯＢシフトの値がすべてのありうる値（例えば、0から１５まで）の１つを取得することを許可するによって通信されることがある。indexS>1について、ＥＯＢシフト値は、indexS-1についてのＥＯＢシフト値と同じ、または、より小さくなるように制限される。したがって、indexS>1について、ＥＯＢシフト値を送信するためにはindexSにつき１つのビットのみが必要とされる（例えば、0−ＥＯＢシフト値は同じのままである、１−ＥＯＢシフト値は１まで減少すべきである）。indexS=Maxについて、シフト値が０に達成するとき、Maxより大きいindexSについて、更なる情報が送信される必要はない。
【００４６】
記載された初期化テーブルを送信する方法は、適合あり、または、なしで使用することができる。後者の場合において、初期化テーブルにおいての任意の値は、全部のフレーム／スライスについて使用される。
【００４７】
上述の本明細書で説明された技術は、無線通信、コンピューティング（computing）、個人用エレクトロニクス（personal electronics）、などについて使用することができる。無線通信についての技術の模範的な使用は、以下に説明される。
【００４８】
図１４は、無線通信システムにおいて無線装置４００の構成のブロック図を示す。無線装置４００は、ハンドセット（handset）であってもよい。ハンドセットは、セルラー（cellular）またはカメラ電話、端末、無線搭載（wirelessly-equipped）個人用携帯型情報端末（personal digital assistant）（ＰＤＡ）、無線通信装置、ビデオゲームコンソール（video game console）、ラップトップコンピュータ、ビデオ使用可能装置（video-enabled device）またはある他の無線搭載装置であってもよい。無線通信システムは、符号分割多重アクセス（Code Division Multiple Access）（ＣＤＭＡ）システム、移動通信用グローバルシステム（Global System for Mobile Communications）（ＧＳＭ）システムまたはある他のシステムであってもよい。
【００４９】
無線装置４００は、受信パスおよび送信パスを介して両方向通信を提供することが可能である。受信パスでは、基地局によって送信された信号は、アンテナ４１２によって受信され、受信機（ＲＣＶＲ）４１４に提供される。受信機４１４は、受信された信号を調整およびデジタル化し、さらなる処理のためにサンプルをデジタルセクション４２０に提供する。送信パスで、送信機（ＴＭＴＲ）４１６は、デジタルセクション４２０から送信されるべきデータを受信し、データを処理および調整し、またアンテナ４１２を介して基地局に送信された変調信号を生成する。
【００５０】
デジタルセクション４２０は、例えばモデムプロセッサ４２２、ビデオプロセッサ４２４、コントローラ／プロセッサ４２６、ディスプレイプロセッサ４２８、ＡＲＭ／ＤＳＰ４３２、グラフィック処理ユニット（graphics processing unit）（ＧＰＵ）４３４、内部メモリ４３６、外部バスインタフェース（external bus interface）（ＥＢＩ）４３８などのさまざまな処理、インタフェースおよびメモリユニットを含む。モデムプロセッサ４２２は、データ送信および受信についての処理（例えば、符号化、変調、復調および復号）を実行する。ビデオプロセッサ４２４は、カムコーダ（camcorder）、ビデオプレイバック（video playback）およびビデオ協議（video conferencing）などのビデオアプリケーション（video applications）について、ビデオ内容（video content）（例えば、静止画像、ビデオ動画、テキスト動画）の処理を実行する。コントローラ／プロセッサ４２６は、さまざまな処理の動作、デジタルセクション４２０内におけるインタフェースユニットに導くことが可能である。ディスプレイプロセッサ４２８は、ビデオのディスプレイ、グラフィックおよびディスプレイユニット４３０のテキストを容易にする処理を実行する。ＡＲＭ／ＤＳＰ４３２は、無線装置４００について処理のさまざまなタイプを実行することができる。グラフィック処理装置４３４は、グラフィック処理を実行する。
【００５１】
本明細書で説明された技術は、デジタルセクション４２０において任意のプロセッサ、例えば、ビデオプロセッサ２４２について使用することができる。内部メモリ４３６は、デジタルセクション４２０内においてさまざまなユニットについてのデータおよび／または命令を記憶する。ＥＢＩ４３８は、デジタルセクション４２０（例えば、内部メモリ４３６）と、バスまたはデータラインＤＬに沿ったメインメモリ４４０との間のデータの送信を容易にする。
【００５２】
デジタルセクション４２０は、１つ以上のＤＳＰ、マイクロプロセッサ、ＲＩＳＣ、などとともに実装されることがある。デジタルセクション４２０は、１つ以上の特定用途向け集積回路（application specific integrated circuits）（ＡＳＩＣ）またはある他の集積回路（integrated circuits）ＩＣに製造されることがある。
【００５３】
本明細書で説明された技術は、さまざまなハードウェアユニットに実装されることがある。例えば、技術は、ＡＳＩＣ、ＤＳＰ、ＲＩＳＣ、ＡＲＭ、デジタル信号処理装置（digital signal processing devices）（ＤＳＰＤ）、プログラム可能論理装置（programmable logic devices）（ＰＬＤ）、フィールドプログラム可能ゲートアレイ（field programmable gate arrays）（ＦＰＧＡ）、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、および他のエレクトロユニットなどに実装されることがある。
【００５４】
1つ以上の模範的な構造において、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせに実装されていることがある。ソフトウェアに実装されている場合、機能は、１つ以上の命令またはコードのように、コンピュータ可読媒体に記憶または送信されることがある。コンピュータ可読媒体は、一方から他方へコンピュータの転送を容易にする任意の媒体を含むコンピュータ記憶媒体および通信メディアの両方を含む。記憶媒体は、コンピュータによってアクセスされることができる任意の利用可能な媒体であってもよい。例として、また限定でなく、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置（optical disk storage）、磁気ディスク記憶装置（magnetic disk storage）または他の磁気記憶装置（magnetic storage device）、または命令の形成またはデータ構成およびコンピュータによってアクセスされることができる望ましいプログラムコードを搬送または記憶するために使用することができる任意の他の媒体を備えることができる。また、任意の接続は、コンピュータ可読媒体と正確には呼ばれる。例えば、ソフトウェアがウェブサイト、サーバー、または同軸のケーブル（coaxial cable）を使用している他のリモートソース（remote source）、光ファイバケーブル（fiber optic cable）、ツイストペア線（twisted pair）、デジタル加入者線（digital subscriber line）（ＤＳＬ）または赤外線（infrared）、電波（radio）、マイクロ波（microwave）などの無線技術から転送された場合、そのとき、同軸ケーブル、光ファイバケーブル、ツイストペア線、または赤外線、電波、マイクロ波などの無線技術は、媒体の定義に含まれる。本明細書で使用されているように、ディスク（Disk）とディスク（Disc）は、データを磁気的に再生するディスク（Disk）であり、一方、ディスク（Disc）はレーザーを用いて光学的に再生する、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光ディスク、デジタル汎用ディスク（digital versatile disc）ＤＶＤ，フロッピー（登録商標）ディスクおよびブルーレイディスクを含む。上記の組み合わせは、コンピュータ可読媒体の範囲にも含まれるべきである。
【００５５】
含まれた構成の前の説明は、当業者が開示を築き、または、使用することを可能にするために提供される。これらの構成のさまざまな変形例は、当業者にとっては明らかであり、本明細書で定められた一般的な原理は、開示の意図または範囲からはずれることなく他の構成に適用されることがでる。したがって、この開示は、本明細書に示された構造に限定されることを意図しないが、本明細書に含まれた原理および斬新な特徴と矛盾しない最も幅広い範囲が与えられる。
【図１】
2010528492.tif 000005
【図２】
2010528492.tif 000006
【図３Ａ】
2010528492.tif 000007
【図３Ｂ】
2010528492.tif 000008
【図３Ｃ】
2010528492.tif 000009
【図４Ａ】
2010528492.tif 000010
【図４Ｂ】
2010528492.tif 000011
【図４Ｃ】
2010528492.tif 000012
【図５】
2010528492.tif 000013
【図６】
2010528492.tif 000014
【図７】
2010528492.tif 000015
【図８】
2010528492.tif 000016
【図９】
2010528492.tif 000017
【図１０】
2010528492.tif 000018
【図１１】
2010528492.tif 000019
【図１２】
2010528492.tif 000020
【図１３】
2010528492.tif 000021
【図１４】
2010528492.tif 000022