(57)【要約】  Ｈ．２６４動画像復号に対するコンテキスト適応２値算術符号化（ＣＡＢＡＣ）を最適化するための技術を利用する装置が提供される。該装置は、複数のビンを同時に復号するための、そして、該複数のビンが復号された後、オフセット・レジスタとレンジ・レジスタを再正規化するための、諸命令のセットを実行するために機能する、処理回路を含む。該レンジ・レジスタと該オフセット・レジスタは３２ビット又は６４ビットであることが出来る。より大きなレンジ・レジスタの使用は、十分なビットが未だ該レンジ・レジスタ内にある場合、再正規化が省略されることを可能にする。
2011501896.tif 000002
【特許請求の範囲】
【請求項１】
複数のビンを同時に復号するための、そして、該複数のビンが復号された後、オフセット・レジスタとレンジ・レジスタを再正規化するための、諸命令のセットを実行するために機能する処理回路、及び
該処理回路に接続されるメモリ
を具備する装置。
【請求項２】
再正規化するための諸命令の該セットは、該レンジ・レジスタと該オフセット・レジスタを複数ビット・アラインするために必要とされる左シフトの量を計算するための、先行ゼロ・カウント命令を含む、請求項１に従う装置。
【請求項３】
該レンジ・レジスタは、先行ゼロ部分、９ビット部分、及び末尾ゼロ部分に分割される、複数のビットを具備する、請求項２に従う装置。
【請求項４】
該複数のビンは指数ゴロム（exponential Golomb）２値化（ＥＧ）符号で表わされる、請求項１に従う装置。
【請求項５】
複数のビンを復号するための諸命令の該セットは、連続する上限１６ビンを同時に復号するための命令を含む、請求項１に従う装置。
【請求項６】
複数のビンを復号するための諸命令の該セットは、コンテキスト適応２値算術符号（Context-based Adaptive Binary Arithmetic Coding）（ＣＡＢＡＣ）を復号するために構成される、請求項１に従う装置。
【請求項７】
該処理回路は２つの連続する標準モード・シンボルを同時に復号するための命令を更に具備する、請求項６に従う装置。
【請求項８】
該装置は、セルラ電話、無線装置、無線通信装置、ビデオ・ゲーム・コンソール、無線装備された携帯情報端末（ＰＤＡ）、ラップトップ・コンピュータ、又はビデオ機能付き装置、を具備する、請求項１に従う装置。
【請求項９】
複数のビンを同時に復号するための復号手段、及び
該複数のビンが復号された後、オフセット・レジスタとレンジ・レジスタを複数ビット・アラインするための再正規化手段
を具備する装置。
【請求項１０】
該再正規化手段は、該レンジ・レジスタと該オフセット・レジスタを複数ビット・アラインするために必要とされる、左シフトの量を計算するための計算手段を含む、請求項９に従う装置。
【請求項１１】
該復号手段は、指数ゴロム２値化（ＥＧ）符号を復号するための手段を含む、請求項９に従う装置。
【請求項１２】
該復号手段は、コンテキスト適応２値算術符号（ＣＡＢＡＣ）を復号するための手段を具備する、請求項９に従う装置。
【請求項１３】
該復号手段は、２つの連続する標準モード・シンボルを同時に復号するための手段を含む、請求項１２に従う装置。
【請求項１４】
オフセット・レジスタとレンジ・レジスタを有する、及び、複数のビンを同時に復号しそして該複数のビンが復号された後オフセット・レジスタとレンジ・レジスタを再正規化する、復号器、及び
該復号器に接続されるメモリ
を具備する装置。
【請求項１５】
該復号器は、該レンジ・レジスタと該オフセット・レジスタを複数ビット・アラインするために必要とされる、左シフトの量を計算する、請求項１４に従う装置。
【請求項１６】
該レンジ・レジスタは、先行ゼロ部分、９ビット部分、末尾ゼロ部分に分割される、複数のビットを具備する、請求項１４に従う装置。
【請求項１７】
該復号器は指数ゴロム２値化（ＥＧ）符号を復号する、請求項１４に従う装置。
【請求項１８】
複数のビンを同時に復号すること、及び
該複数のビンが復号された後オフセット・レジスタとレンジ・レジスタを複数ビット・アラインするために再正規化すること
をコンピュータに行わせるための諸命令を有する、コンピュータ可読媒体を含むコンピュータ・プログラム製品。
【請求項１９】
再正規化するための該諸命令は、該レンジ・レジスタと該オフセット・レジスタを複数ビット・アラインするために必要とされる、左シフトの量を計算するための命令を含む、請求項１８に従うコンピュータ・プログラム製品。
【請求項２０】
復号するための該諸命令は、指数ゴロム２値化（ＥＧ）符号を復号するための命令を含む、請求項１８に従うコンピュータ・プログラム製品。
【請求項２１】
復号するための該諸命令は、コンテキスト適応２値算術符号（ＣＡＢＡＣ）を復号するための命令を含む、請求項１８に従うコンピュータ・プログラム製品。
【請求項２２】
複数のビンを同時に復号すること、及び
該復号の後オフセット・レジスタとレンジ・レジスタを複数ビット・アラインするために再正規化すること
を具備する方法。
【請求項２３】
該再正規化することは、該レンジ・レジスタと該オフセット・レジスタを複数ビット・アラインするために必要とされる、左シフトの量を計算することを含む、請求項２２に従う方法。
【請求項２４】
該復号することは指数ゴロム２値化（ＥＧ）符号を復号することを含む、請求項２３に従う方法。
【請求項２５】
該復号することはコンテキスト適応２値算術符号（ＣＡＢＡＣ）を復号することを含む、請求項２３に従う方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に動画像復号の分野に係り、特に、Ｈ．２６４動画像復号に対するコンテキスト適応２値算術符号化（Context-based Adaptive Binary Arithmetic Coding）（ＣＡＢＡＣ）を最適化するための技術に関する。
【背景技術】
【０００２】
Ｈ．２６４メイン・プロファイル（main profile）をサポートするために、コンテキスト適応２値算術符号化（ＣＡＢＡＣ）は技術上の挑戦的課題である。２値算術符号化処理の基本思想は再帰的区間分割（recursive interval division）である。算術復号エンジン・コア（engine core）は２つのレジスタ（registers）を保持する。第１レジスタは９ビットを持つレンジ・レジスタ（range register）である。第２レジスタは、標準モードでは９ビット、バイパス・モードでは１０ビットである、オフセット・レジスタ（offset register）である。レンジ・レジスタは現在区間の幅のトラック（track）を保持する。オフセットはビット・ストリームからのオフセットであって、レンジ内の現在位置を指示する。あるビン（bin）を復号する場合、レンジは、該具体的なビンを復号するためのコンテキストに従って、２つの副区間に分割される。該ビンが決定された後、レンジとオフセットは更新される。１つのビンを復号した後、レンジとオフセットは次のビンを復号するための精度を維持するために再正規化される。それは９ビット・レジスタのレンジの最上位ビットが常に１であることを保証する。従って、ＣＡＢＡＣコアにおける夥しい数のビット演算、頻繁な再正規化とビット・ストリームからのビット読み取りが存在することになり、これ等全てはコンピュータにとって高コストである。
【０００３】
従って、Ｈ．２６４動画像復号に対するコンテキスト適応２値算術符号化（ＣＡＢＡＣ）を最適化するための技術に対する、相変らぬ必要性がある。
【発明の概要】
【０００４】
Ｈ．２６４動画像復号に対するコンテキスト適応２値算術符号化（ＣＡＢＡＣ）を最適化するための技術である。１つの構成では、複数のビンを同時に復号するための、そして、該複数のビンが復号された後、オフセット・レジスタとレンジ・レジスタを再正規化するための、諸命令のセットを実行するために機能する処理回路を具備する装置が提供される。該装置は又該処理回路に接続されるメモリを含む。
【０００５】
別の態様では、複数のビンを同時に復号するための、そして、該複数のビンが復号された後、オフセット・レジスタとレンジ・レジスタを再正規化するための、諸命令のセットを実行するために機能する処理回路を具備する集積回路が提供される。該集積回路は又該処理回路に接続されるメモリを含む。
【０００６】
更に別の態様では、コンピュータに複数のビンを同時に復号させるための諸命令を有するコンピュータ可読媒体を含む、コンピュータ・プログラム製品が提供される。該コンピュータ・プログラム製品は又、該複数のビンが復号された後、オフセット・レジスタとレンジ・レジスタを複数ビット・アライン（multi-bit align）するために再正規化するための諸命令を含む。
【０００７】
更なる諸態様は、詳細な説明から、特に添付図と共に検討される場合、更に容易に明らかになるであろう。
【０００８】
本開示の態様と構成は、下記に説明される詳細な説明から、添付図と共に検討される場合、更に明らかになるであろう。図面では、同じ参照符号が一貫して対応する構成要素を特定する。
【図面の簡単な説明】
【０００９】
【図１】図１は無線装置の一般的なブロック図である。
【図２Ａ】図２Ａは具体例のＨ．２６４標準のレンジ・レジスタを示す。
【図２Ｂ】図２Ｂは具体例のＨ．２６４標準のオフセット・レジスタを示す。
【図２Ｃ】図２Ｃは具体例のＨ．２６４標準のＭＰＳの場合を示す。
【図２Ｄ】図２Ｄは具体例のＨ．２６４標準のＬＰＳの場合を示す。
【図３】図３は１つのビンに対するＨ．２６４標準の算術復号処理の見本的（擬似コード）命令セットを示す。
【図４】図４はＨ．２６４標準の再正規化処理の流れ図を示す。
【図５】図５はＨ．２６４標準の標準復号モード処理の流れ図を示す。
【図６】図６はＨ．２６４標準のバイパス復号モード処理の流れ図を示す。
【図７】図７はＨ．２６４標準のターミネート（terminate）復号処理の流れ図を示す。
【図８Ａ】図８Ａは修正されたレンジ・レジスタを示す。
【図８Ｂ】図８Ｂは修正されたオフセット・レジスタを示す。
【図８Ｃ】図８Ｃは図８Ａと図８Ｂの修正されたレンジ・レジスタとオフセット・レジスタを使用する画像プロセッサのブロック図を示す。
【図９】図９は標準復号モード処理の流れ図を示す。
【図１０Ａ】図１０Ａは第１再正規化処理の流れ図を示す。
【図１０Ｂ】図１０Ｂは第２再正規化処理の流れ図を示す。
【図１０Ｃ】図１０Ｃは第３再正規化処理の流れ図を示す。
【図１１】図１１はバイパス復号モード処理の流れ図を示す。
【図１２】図１２はターミネート復号処理の流れ図を示す。
【図１３Ａ】図１３Ａはプレフィックス（prefix）ＥＧ符号復号処理のための見本的（擬似コード）命令セットを示す。
【図１３Ｂ】図１３Ｂは図１３ＡのプレフィックスＥＧ符号復号処理のためのレンジとオフセットの相関図を示す。
【図１４Ａ】図１４Ａはサフィックス（suffix）ＥＧ符号の復号処理のための見本的（擬似コード）命令セットを示す。
【図１４Ｂ】図１４Ｂは図１４ＡのサフィックスＥＧ符号の復号処理のためのレンジとオフセットの相関図を示す。
【図１５Ａ】図１５ＡはプレフィックスＥＧＫ符号の復号処理の流れ図を示す。
【図１５Ｂ】図１５ＢはサフィックスＥＧＫ符号の復号処理の流れ図を示す。
【図１６Ａ】図１６ＡはＣＡＢＡＣ残差ブロック・シンタックス（syntax）配列を示す。
【図１６Ｂ】図１６ＢはＣＡＢＡＣ残差ブロック・シンタックス配列を示す。
【図１６Ｃ】図１６ＣはＣＡＢＡＣ残差ブロック・シンタックス配列を示す。
【発明を実施するための形態】
【００１０】
図面中の諸画像は例示目的のために単純化されており、正確な縮尺率では描かれてない。理解を容易にするために、同一の参照番号は、可能な場合、諸図面に共通である同一の構成要素を指定するように使用されたが、例外として、そのような諸構成要素を区別するために、適切な場合、サフィックスを付加されることがある。
【００１１】
添付図は本発明の具体例の構成を例示し、従って、他の同様に効果的な構成を可能にすることが出来る本発明の範囲を制限するものとして考えられるべきではない。１つの構成の諸特徴又は諸ステップは、特に断らなくても、他の構成に有益に組み込まれることが出来ることが予期される。
【００１２】
“具体例の（exemplary）”という用語は本明細書中では“例、例証、又は実例として働く”ということを意味するために使用される。本明細書中で“具体例の”と記載される何れの構成又は設計も、他の構成又は設計に対して優位である又は有利であると解釈される必要はない。
【００１３】
本明細書に記載される諸技術は、無線通信、コンピューティング（computing）、家電、等々のために使用されることが出来る。無線通信のための本技術の具体例の使用が下記に説明される。
【００１４】
図１は無線通信システムにおける無線装置１０の構成のブロック図を示す。無線装置１０は、セルラ又はカメラ電話、端末、ハンドセット（handset）、携帯情報端末（personal digital assistant）（ＰＤＡ）、或いは何か他の装置であることが出来る。無線通信システムは符号分割多元接続（Code Division Multiple Access）（ＣＤＭＡ）システム、グローバル・システム・フォー・モバイル・コミュニケーションズ（Global system for Mobile communications）（ＧＳＭ）システム、或いは何か他のシステムであることが出来る。ハンドセットは、セルラ電話、無線装置、無線通信装置、ビデオ・ゲーム・コンソール（console）、無線装備された携帯情報端末（ＰＤＡ）、ラップトップ・コンピュータ、又はビデオ機能付き（video-enabled）装置、であることが出来る。
【００１５】
無線装置１０は受信路と送信路を介して双方向通信を提供することが出来る。受信路上では、基地局によって送信される信号はアンテナ１２によって受信されて、受信器（ＲＣＶＲ）１４に供給される。受信機１４は該受信信号を調整およびデジタル化して、サンプルを更なる処理のためにデジタル・セクション２０に供給する。送信路上では、送信機（ＴＭＴＲ）１６は送信されるべきデータをデジタル・セクション２０から受信し、該データを処理及び調整して、変調信号を生成する。該変調信号はアンテナ１２を介して基地局に送信される。
【００１６】
デジタル・セクション２０は、例えば、モデム・プロセッサ（modem processor）２２、画像プロセッサ２４、制御器／プロセッサ２６、表示プロセッサ２８、ＡＲＭ／ＤＳＰ３２、グラフィック処理ユニット（ＧＰＵ）３４、内部メモリ３６、及び外部バス・インターフェース（ＥＢＩ）３８のような、種々の処理ユニット、インターフェース・ユニット及びメモリ・ユニットを含む。モデム・プロセッサ２２はデータの送受信のための処理（例えば、符号化、変調、復調、及び復号）を実行する。画像プロセッサ２４は、ビデオカメラ、ビデオ再生、及びビデオ会議のような、画像アプリケーションのための画像コンテント（content）（例えば、静止画、動画像、及びムービング・テキスト（moving text））上での処理を実行する。制御器／プロセッサ２６はデジタル・セクション２０内の種々の処理ユニットやインターフェース・ユニットの動作を命令することが出来る。表示プロセッサ２８は表示ユニット３０上での画像、グラフィックス、及びテキストの表示を容易にするための処理を実行する。ＡＲＭ／ＤＳＰ３２は無線装置１０のための種々の型の処理を実行することが出来る。グラフィック処理ユニット３４はグラフィック処理を実行する。
【００１７】
本明細書記載の諸技術はデジタル・セクション２０内の任意のプロセッサ、例えば、画像プロセッサ２４、に対して使用されることが出来る。内部メモリ３６はデジタル・セクション２０内の種々のユニットに対するデータ及び／又は命令を記憶する。ＥＢＩ３８は、バス又はデータ・ラインＤＬを介する、デジタル・セクション２０（例えば、内部メモリ３６）と主メモリ４０との間の、データの転送を容易にする。
【００１８】
デジタル・セクション２０は１又は複数のＤＳＰ、マイクロプロセッサ、ＲＩＳＣ、等々を用いて実装されることが出来る。デジタル・セクション２０は又、１又は複数の特定用途向け集積回路（application specific integrated circuit）（ＡＳＩＣ）又は何か他の型の集積回路（ＩＣ）上で組み立てられることが出来る。
【００１９】
本明細書記載の諸技術は種々のハードウェア・ユニットにおいて実現されることが出来る。例えば、該技術は、ＡＳＩＣ、ＤＳＰ、ＲＩＳＣ、ＡＲＭ、デジタル信号処理装置（ＤＳＰＤ）、プログラム可能論理装置（programmable logic device）（ＰＬＤ）、フィールド・プログラマブル・ゲート・アレイ（field programmable gate array）（ＦＰＧＡ）、プロセッサ、制御器、マイクロ制御器、マイクロプロセッサ、及びその他の電子ユニット、において実現されることが出来る。
【００２０】
図２Ａは具体例のＨ．２６４標準のレンジ・レジスタ５０を示し、そして図２Ｂは具体例のＨ．２６４標準のオフセット・レジスタ６０を示す。２値算術符号化処理の基本思想は再帰的区間分割である。算術復号エンジン・コアは２つのレジスタを保持する。第１レジスタは９ビットを用いるレンジ・レジスタ５０である。第２レジスタは、標準モードでは９ビットでバイパス・モードでは１０ビットである、オフセット・レジスタ６０である。
【００２１】
図２Ｃは、参照番号５０Ａによって一般的に示される、具体例のＨ．２６４標準の優勢確率シンボル（most probability symbol）（ＭＰＳ）の場合を示し、そして図２Ｄは、参照番号５０Ｂによって一般的に示される、具体例のＨ．２６４標準の劣勢確率シンボル（least probability symbol）（ＬＰＳ）の場合を示す。レンジ・レジスタは現在区間の幅のトラックを保持する。オフセットはビット・ストリームからのオフセットであって、レンジ内の現在位置までの点である。下記に説明される多くの数式と表現はＣ又はＣ＋＋コンピュータ・プログラミング語と同様なシンタックスを使用する、ということが注意されるべきである。該表現は例示目的のためであって、異なるシンタックスを用いる他のコンピュータ・プログラミング語で表現されることが出来る。
【００２２】
ある１つのビンを復号するとき、具体的なビンを復号するためのコンテキスト（context）に応じて、レンジは２つの副区間ｒＬＰＳ５２とｒＭＰＳ５４に分割される。副区間ｒＬＰＳ５２とｒＭＰＳ５４は数式（１）と数式（２）で定義される。
【００２３】
ｒＬＰＳ＝ｒａｎｇｅ＊ｐＬＰＳ                                          （１）
ｒＭＰＳ＝ｒａｎｇｅ＊ｐＭＰＳ＝ｒａｎｇｅ＊（１−ｐＬＰＳ）
＝ｒａｎｇｅ−ｒＬＰＳ                                          （２）
上式でｐＬＰＳは劣勢確率シンボルの確率であり、そして、ｐＭＰＳは優勢確率シンボルの確率である。オフセットが位置する、副区間ｒＬＰＳ５２とｒＭＰＳ５４は、該ビンがＭＰＳビンであるかＬＰＳビンであるかを決定する。もし、オフセット≧ｒＭＰＳ、であるならば、該ビンはＬＰＳビンである。その他の場合は、該ビンはＭＰＳビンである。ビンが決定された後、レンジとオフセットは更新される。ｐＭＰＳ項は確率である。確率は０〜１の範囲内にあるべきである。ｒＭＰＳ項は、レンジ＊ｐＭＰＳ、である。ＭＰＳとＬＰＳの確率の和は、１に等しくなければならない。
【００２４】
下記の種々の構成では、流れ図の諸ブロックは図示された順序で実行される。或いは、これ等の諸ブロック又はそれ等の諸部分は同時に、並列して、又は異なる順序で、実行されることが出来る。
【００２５】
図３は１つのビンに対するＨ．２６４標準の算術復号処理１００の見本的（擬似コード）命令セットである。該命令セットは、レンジ・レジスタ５０とオフセット・レジスタ６０の双方が９ビットである、ということを示す。レンジ・レジスタ５０の構成も又示される。該命令セットは、該レンジが、２８≦レンジ＜２９、の範囲内にある、ということを示す。算術復号処理１００は省記されて、レンジ＞オフセット≧０、であるかどうかの判定が行われる命令で始まる。もし該判定が“否”であるならば、該処理１００は終了する。しかしながら、もし該判定が“肯”であるならば、次の命令セットはｉｆ−ｅｌｓｅセットである。該ｉｆ文は、オフセット≧ｒＭＰＳ、であるかどうかを見るために検査する。もし該判定が“肯”であるならば、該ビンはＬＰＳの場合である。この場合該レンジは、副区間ｒＬＰＳ（図２Ｄ）に等しいと設定される、新しいレンジ（ｒａｎｇｅ＿ｎｅｗ）に更新され、そして新しいオフセット（ｏｆｆｓｅｔ＿ｎｅｗ）が（オフセット−ｒＭＰＳ）に等しいと設定される。
【００２６】
もし該ｉｆ条件が“否”であるならば、その場合該ビンはＭＰＳの場合である。この場合該レンジは、副区間ｒＭＰＳに等しいと設定される、新しいレンジ（ｒａｎｇｅ＿ｎｅｗ）に更新され、そして新しいオフセット（ｏｆｆｓｅｔ＿ｎｅｗ）がオフセットに等しいと設定される。
【００２７】
図４はＨ．２６４標準の再正規化処理１５０の流れ図を示す。１つのビンを復号した後、レンジとオフセットは、次のビンを復号するための精度を維持するために、再正規化される。該標準の再正規化処理１５０は、図２Ａに表わされるように、９ビット・レンジ・レジスタ５０の最上位ビット（ＭＳＢ）が常に１である、ことを保証する。該標準の再正規化処理１５０は、レンジ＜０Ｘ１００、であるかどうかの判定が行われる、ブロック１５２で開始する。ブロック１５２では、レンジの値が２５６（即ち、０ｘ１００）と比較される。もし該判定が“否”であるならば、処理１５０は終了する。しかしながら、もしブロック１５２での該判定が“肯”であるならば、その場合ブロック１５２はブロック１５４によって引き継がれる。ブロック１５４では、レンジは、ｒａｎｇｅ＝ｒａｎｇｅ＜＜１、によって示される、１ビットだけ左シフトされる。同様に、オフセットは、ｏｆｆｓｅｔ＝ｏｆｆｓｅｔ＜＜１、によって示される、１ビットだけ左シフトされる。該オフセットは又、ｏｆｆｓｅｔ（ビット演算ＯＲ）ｒｅａｄ＿ｂｉｔｓ（１）、に設定される。表示ｏｆｆｓｅｔ（ビット演算ＯＲ）ｒｅａｄ＿ｂｉｔｓ（１）は１ビットだけ左シフトされたレンジ／オフセット・レジスタの値を表す。該シフトの後、最下位（右端）ビットは０である。表示ｒｅａｄ＿ｂｉｔｓ（１）、はビットストリームから１ビットを読み込み、そしてこの１ビットはオフセット・レジスタ６０の最下位（右端）ビットに加算される。
【００２８】
ブロック１５４は上記で説明されたブロック１５２にループ・バック（loop back）する。ブロック１５２とブロック１５４のループは、ブロック１５２における該判定が“否”になるまで、繰返され、該判定“否”は再正規化処理１５０を完了させる。
【００２９】
図５はＨ．２６４標準の標準復号モード処理２００の流れ図を示す。該標準の復号モード処理２００では、乗算を避けるために、６４×４ルック・アップ・テーブル（look up table）（ＬＵＴ）が、上記数式(１)で説明されたｒＬＰＳを近似するために、使用される。レンジは、９ビット・レンジ・レジスタ５０を４個のセルへ等分割することによって、近似される。ｐＬＰＳは６ビットのコンテキスト状態によってインデックスを与えられる６４個の量子化された値によって近似される。従って、ブロック２０２において、ｒＬＰＳは数式（３）に従って計算される。
【００３０】
ｒＬＰＳ＝ｌｕｔＬＰＳ［ｃｔｘＩｄｘ−＞ｓｔａｔｅ］［（ｒａｎｇｅ＞＞６）＆３］
（３）
ここに、ｃｔｘＩｄｘは処理２００への入力であって、該コンテキスト状態に対するインデックスを表し、そして、状態情報を提供する。ｒａｎｇｅ＞＞６は、６ビットの右方シフト即ち２６による除算、を表す。そして、（ｒａｎｇｅ＞＞６）＆３の結果は、ＬＵＴをアドレス指定するために使用されるレンジ・レジスタ５０において、ビット７〜６（ＭＳＢの２ビット後）を抽出する。表示ｃｔｘＩｄｘ−＞ｓｔａｔｅは、ｒＬＰＳを得るために６４×４ＬＵＴで使用される、０〜６３の値をとることが出来る。例えば、レンジが０ｂ１  ｘｘ  ｙｙ  ｙｙｙｙであるならば、該レンジは０ｘ１００〜０ｘ１ＦＥの範囲にあり、そして（ｒａｎｇｅ＞＞６）＆３は該レンジの“ｘｘ”を得るために使用される。表示＆はビット演算ＡＮＤ関数である。
【００３１】
ブロック２０２では、ｒＭＰＳが又、数式（４）に従って計算される。
【００３２】
ｒＭＰＳ＝ｒａｎｇｅ−ｒＬＰＳ                                          （４）
ここで、ｒＬＰＳは数式（３）で計算される。
【００３３】
ブロック２０２は、オフセット≧ｒＭＰＳ、であるかどうかの判定が行われる、ブロック２０４によって引き継がれる。もし該判定が“肯”であるならば、次にブロック２０４はブロック２０６によって引き継がれ、ブロック２０６ではビン、レンジ、オフセットが数式（５）、（６）及び（７）に従って計算される。
【００３４】
ｂｉｎ＝！ｃｔｘＩｄｘ−＞ｖａｌＭＰＳ                                  （５）
ｒａｎｇｅ＝ｒＬＰＳ                                                    （６）
ｏｆｆｓｅｔ＝ｏｆｆｓｅｔ−ｒＭＰＳ                                    （７）
ここに、！ｃｔｘＩｄｘ−＞ｖａｌＭＰＳは、ｃｔｘＩｄｘ−＞ｖａｌＭＰＳは値０又は１を取ることが出来て“！”はビット反転を意味する、という表示を示す。ｃｔｘＩｄｘ項は該関数への入力パラメータであって、それは状態とｖａｌＭＰＳ情報を提供する。ｖａｌＭＰＳ項はＭＰＳの場合におけるビン出力を表す。
【００３５】
ブロック２０６はブロック２０８によって引き継がれ、ブロック２０８では、ｃｔｘＩｄｘ−＞ｓｔａｔｅが０に等しいかどうか、の判定が行われる。もしブロック２０８での該判定が“肯”であるならば、次にブロック２０８はブロック２１０によって引き継がれ、ブロック２１０では、ｃｔｘＩｄｘ−＞ｖａｌＭＰＳは！ｃｔｘＩｄｘ−＞ｖａｌＭＰＳを代入される。ブロック２１０はブロック２１２によって引き継がれる。更に、もしブロック２０８での該判定が“否”であるならば、その場合ブロック２０８もブロック２１２によって引き継がれる。ブロック２１２では、ｃｔｘＩｄｘ−＞ｓｔａｔｅはＴｒａｎｓＩｎｄｅｘＬＰＳ（ｃｔｘＩｄｘ−＞ｓｔａｔｅ）を代入される。それぞれのビンが復号された後、それぞれのｃｔｘＩｄｘに関連付けられるｓｔａｔｅ／ｖａｌＭＰＳは更新される必要がある。ＴｒａｎｓＩｎｄｅｘＬＰＳ項／ＴｒａｎｓＩｎｄｅｘＭＰＳ項は将に、状態遷移を計算するためにＨ．２６４で定義された、２つのＬＵＴである。
【００３６】
再びブロック２０４に戻って、もしブロック２０４での該判定が“否”であるならば、その場合ブロック２０４はブロック２１４によって引き継がれ、ブロック２１４ではビンとレンジが数式（８）と（９）に従って計算される。
【００３７】
ｂｉｎ＝ｃｔｘＩｄｘ−＞ｖａｌＭＰＳ                                    （８）
ｒａｎｇｅ＝ｒＭＰＳ                                                    （９）
ブロック２１４はブロック２１６によって引き継がれ、ブロック２１６ではｃｔｘＩｄｘ−＞ｓｔａｔｅはＴｒａｎｓＩｎｄｅｘＬＰＳ（ｃｔｘＩｄｘ−＞ｓｔａｔｅ）を代入される。ブロック２１２とブロック２１６は双方ともに、再正規化処理１５０が行われる、ブロック２１８へ進む。ブロック２１８は処理２００を終了させる。
【００３８】
図６はＨ．２６４標準のバイパス復号モード処理２５０の一般的な流れ図を示す。バイパス復号モード処理２５０のために。Ｈ．２６４標準のバイパス復号モード処理２５０では、オフセットは１ビットだけ左シフトされ、そして１ビットがビット・ストリームから読み込まれる。新しいオフセットはレンジと比較されて、該ビンが１であるか０であるか、を判定する。
【００３９】
該標準のバイパス復号モード処理２５０はブロック２５２で開始し、ブロック２５２ではオフセットは、ｏｆｆｓｅｔ＜＜１、に等しいと設定される。ここに、＜＜１は、２による乗算すなわち１だけ左シフト、を表す。更にオフセットは、ｏｆｆｓｅｔ（ビット演算ＯＲ）ｒｅａｄ＿ｂｉｔｓ（１）、に等しいと設定される。ブロック２５２はブロック２５４によって引き継がれ、ブロック２５４では、オフセット≧レンジ、かどうかの判定が行われる。もし該判定が“肯”であるならば、次にブロック２５４はブロック２５６によって引き継がれ、ブロック２５６では、ビンとオフセットが数式（１０）と（１１）に従って計算される。
【００４０】
Ｂｉｎ＝１                                                            （１０）
Ｏｆｆｓｅｔ＝ｏｆｆｓｅｔ−ｒａｎｇｅ                                （１１）
もし該判定が“否”であるならば、その場合ブロック２５４はブロック２５８によって引き継がれ、ブロック２５８では、該ビンはゼロ（０）に等しいと設定される。ブロック２５６とブロック２５８は処理２５０を終了させる。用語ビンは又ビットと同じであることが注意されるべきである。
【００４１】
図７はＨ．２６４標準のターミネート（terminate）復号処理３００の流れ図を示す。ｅｎｄ＿ｏｆ＿ｓｌｉｃｅ＿ｆｌａｇ及びＩパルス符号変調（I-Pulse Code Modulation）（Ｉ＿ＰＣＭ）モードを示すビットを復号するとき、特別な復号ルーチン該標準のターミネート復号処理３００が呼び出される。該標準のターミネート復号処理３００はブロック３０２で開始し、ブロック３０２ではレンジは２だけデクリメント（decrement）される（ｒａｎｇｅ＝ｒａｎｇｅ−２）。ブロック３０２はブロック３０４によって引き継がれ、ブロック３０４では、オフセット≧レンジ、であるかどうかの判定が行われる。もしブロック３０４での該判定が“肯”であるならば、次に該ビンは、ブロック３０６において、１に等しいと設定される。しかしながら、もしブロック３０４での該判定が“否”であるならば、その場合ブロック３０４はブロック３０８によって引き継がれ、ブロック３０８では、該ビンはゼロ（０）に等しいと設定される。ブロック３０８は、再正規化処理１５０（図４）が実行される、ブロック３１０によって引き継がれる。ブロック３０６とブロック３１０は両方ともＨ．２６４標準のターミネート復号処理３００を終了させる。
【００４２】
ＣＡＢＡＣの最初のステージの間、レンジ・レジスタ５０（図２Ａ）は０ｘ１ＦＥに設定され、ビットストリームから９ビットが読み込まれて初期オフセット・レジスタ６０を設定する。
【００４３】
上記から容易に理解されるように、該９ビットはレンジとオフセット双方を表すために使用される。従って、ＣＡＢＡＣコアの処理におけるビット単位演算は夥しい数になる。
【００４４】
Ｈ．２６４標準の標準復号モード処理２００（図５）では、ＬＰＳの場合は常に、ＬＰＳの確率＜０．５であるから、新レンジ＜０ｘ１００となる。従って、レンジ≧０ｘ１００とするためには、再正規化が必要とされる。新しい具体例の構成では、ループを使用することに代わり、必要とされる左シフト量を計算するために、先行ゼロ・カウント（count_leading_zero）（ＣＬＺ）命令が使用される。ＭＰＳの場合は常に、ＭＰＳの確率≧０．５であるから、新レンジは０ｘ０８０から０ｘ１ＦＥまでの間にある。それ故、最上位ビット（ＭＳＢ）を１にするために、高々１の左シフトが再正規化にとって必要とされるに過ぎない。同時に、オフセットが同じ量だけ左シフトされて、新しいビットが該オフセットを満たすためにビット・ストリームから読み込まれる。
【００４５】
更に、Ｈ．２６４標準のバイパス復号モード処理２５０では、オフセットは常に１だけ左シフトされ、そして１ビットがビット・ストリームから読み込まれる。これは非常に頻繁な再正規化とビット・ストリームからのビットの読み込みを必要とし、その両者はコンピュータにとって非常に高コストである。
【００４６】
図８Ａと図８Ｂは具体例の構成の修正されたレンジ・レジスタ４００と修正されたオフセット・レジスタ４１０を示す。該レンジ・レジスタ４００と該オフセット・レジスタ４１０は３２ビット又は６４ビットであることが出来る。例示的目的のために、本開示は３２ビットのレンジ・レジスタ４００とオフセット・レジスタ４１０の実装を説明する。
【００４７】
ＣＡＢＡＣコアの最初のステージの期間、レンジ・レジスタ４００は、０ｘＦＦ００００００＝０ｘ１ＦＥ＜＜２３、に設定され、オフセット・レジスタ４１０は、ＣＡＢＡＣパートのビットストリームの開始ビット位置がバイト列なので、ビットストリームから最初の４バイトに設定される。
【００４８】
図８Ａで示されるように、レンジ・レジスタ４００は複数の部分から構成されている。具体例の構成では、該３２ビットは、先行０部分４０２、有効な９ビット部分４０４、及び末尾０部分４０６に分割される。ｂｉｔｐｏｓ（ビット位置）は先行０部分４０２における先行０ビットの数によって示され、先行ゼロ・カウント命令を使用して計算される。３２ビット実装におけるｂｉｔｐｏｓは１１ビットである。末尾０部分４０６における末尾０の数は、（３２−９−ｂｉｔｐｏｓ）＝（２３−ｂｉｔｐｏｓ）、である。レンジ・レジスタ４００の少なくとも１つの部分で、ビット数は変更されることが出来る。
【００４９】
最上位ビット（ＭＳＢ）からの最初のビット１の後の２ビットがレンジ・レジスタ４００から抽出されて、ｒＬＰＳを検索するために使用される。該検索された値は、レンジ・レジスタ４００中の９ビット部分４０４とアラインするために、（２３−ｂｉｔｐｏｓ）だけ左シフトされる。残りのアルゴリズムは、更に効率的な再正規化が使用されることを除けば、ほとんど同じである。レンジが０ｘ１００より小である場合は常に、レンジとオフセットは双方とも２４ビット（３バイト）だけ左シフトされて、余分な３バイトがビット・ストリームから読み込まれ、そして、オフセット・レジスタ４１０に付加される。従って、全てのビット・ストリームへのアクセスはバイト単位である。この具体例の構成は例示目的のための具体例である。その上、３２ビットの代わりに、より多い又は少ないビットが使用されることが出来る。更に、本明細書中の説明は８ビットであるバイトを記述するけれども、本明細書記載のバイト配列の代わりに、任意の個数の複数ビットが、反復ループを伴わない再正規化処理において、使用されることが出来る。
【００５０】
図８Ｃは、処理回路２４Ａと復号エンジン２４Ｂを有する、画像プロセッサ２４のブロック図を示す。復号エンジン２４Ｂはレンジ・レジスタ及びオフセット・レジスタ４００と４１０を有する。画像プロセッサ２４は、ｒＬＰＳのために、ルック・アップ・テーブル（ＬＵＴ）４２０と通信する。箱４２０が点線で示されて、それが画像プロセッサ２４の内部あるいは画像プロセッサ２４の外部にあることができることを示す。画像プロセッサ２４は下記に説明される処理を実行する。
【００５１】
図９は標準復号モード処理４５０の流れ図を示す。標準復号モード処理４５０は標準復号モード処理２００（図５）に類似する。主要な相違はブロック４５２と４６０を含む。ブロック４５２では、ｂｉｔｐｏｓはｃｏｕｎｔ＿ｌｅａｄｉｎｇ＿ｚｅｒｏｓ（ｒａｎｇｅ）に等しいと設定される。更に、ｒＬＰＳは数式（１２）に従って計算される。
【００５２】
ｒＬＰＳ＝ｌｕｔＬＰＳ［ｃｔｘＩｄｘ−＞ｓｔａｔｅ］［（ｒａｎｇｅ＞＞
（２９−ｂｉｔｐｏｓ））＆３］＜＜（２３−ｂｉｔｐｏｓ）      （１２）
ここに、ｃｔｘＩｄｘは処理４５０への入力であり、コンテキスト状態へのインデックス（index）を表し、そして状態情報を供給する。ｒａｎｇｅ＞＞（２９−ｂｉｔｐｏｓ）＆３の結果は先頭の１に続く２ビットを抽出する。表示、＜＜（２３−ｂｉｔｐｏｓ）はレンジとアラインするために使用される。表示、ｃｔｘＩｄｘ−＞ｓｔａｔｅは、ｒＬＰＳを得るために６４×４ＬＵＴで使用される、０から６３までの値を取ることが出来る。
【００５３】
図９では、ブロック２０４、２０６、２０８、２１０、２１２、２１４と２１６は図５における同じ番号のブロックに対応する。従って、更なる議論は不要である。しかしながら、図５における再正規化ブロック２１２は図１０Ａの再正規化処理５００と置き換えられる。
【００５４】
図１０Ａは第１再正規化（再正規化１）処理５００の流れ図を示す。第１正規化処理５００は、レンジ＜０Ｘ１００、であるかどうかの判定が行われる、ブロック５０２で開始する。もし該判定が“否”であるならば、処理５００は終了する。しかしながら、もしブロック５０２での該判定が“肯”であるならば、その場合ブロック５０２はブロック５０４によって引き継がれる。ブロック５０４では、レンジは、ｒａｎｇｅ＝ｒａｎｇｅ＜＜２４、によって示される２４ビットだけシフトされる。同様に、オフセットは、ｏｆｆｓｅｔ＝ｏｆｆｓｅｔ＜＜２４、によって示される２４ビットだけシフトされる。該オフセットは又ｏｆｆｓｅｔ（ビット演算ＯＲ）ｒｅａｄ＿ｂｙｔｅｓ（３）に設定される。
【００５５】
従って、オフセットが２４ビットだけ左シフトされた後では、オフセット・レジスタ４１０の右端２４ビットは全て０である。次に３バイト（２４ビット）がビット・ストリームから読み込まれ、そしてこれがオフセット・レジスタ４１０に加算される。理解されるように、第１正規化（正規化１）処理５００は、反復ループ演算を用いることなく、レジスタの複数ビット・アラインメントを同時に実行する。具体例の構成では、レンジ・レジスタ４００と４１０の複数ビット・アラインメントは複数バイトの間隔で行われる。
【００５６】
図１０Ｂは第２再正規化（再正規化２）処理６００の流れ図を示す。第２正規化処理６００は、レンジ＜０Ｘ２００、であるかどうかの判定が行われる、ブロック６０２で開始する。もし該判定が“否”であるならば、処理６００は終了する。しかしながら、もしブロック６０２での該判定が“肯”であるならば、その場合ブロック６０２はブロック６０４によって引き継がれる。ブロック６０４では、レンジは、ｒａｎｇｅ＝ｒａｎｇｅ＜＜１６、によって示される１６ビットだけシフトされる。同様に、オフセットは、ｏｆｆｓｅｔ＝ｏｆｆｓｅｔ＜＜１６、によって示される１６ビットだけシフトされる。該オフセットは又ｏｆｆｓｅｔ（ビット演算ＯＲ）ｒｅａｄ＿ｂｙｔｅｓ（２）に設定される。従って、オフセットが１６ビットだけ左シフトされた後では、オフセット・レジスタ４１０の右端１６ビットは全て０である。次に２バイト（１６ビット）がビット・ストリームから読み込まれ、そしてこれがオフセット・レジスタ４１０に加算される。
【００５７】
図１０Ｃは第３再正規化（再正規化３）処理７００の流れ図を示す。第３正規化処理７００は、レンジ＜０Ｘ１００００００、であるかどうかの判定が行われる、ブロック７０２で開始する。もし該判定が“否”であるならば、処理７００は終了する。しかしながら、もしブロック７０２での該判定が“肯”であるならば、その場合ブロック７０２はブロック７０４によって引き継がれる。ブロック７０４では、レンジは、ｒａｎｇｅ＝ｒａｎｇｅ＜＜８、によって示される８ビットだけシフトされる。同様に、オフセットは、ｏｆｆｓｅｔ＝ｏｆｆｓｅｔ＜＜８、によって示される８ビットだけシフトされる。該オフセットは又ｏｆｆｓｅｔ（ビット演算ＯＲ）ｒｅａｄ＿ｂｙｔｅｓ（１）に設定される。従って、オフセットが８ビットだけ左シフトされた後では、オフセット・レジスタ４１０の右端８ビットは全て０である。次に１バイト（８ビット）がビット・ストリームから読み込まれ、そしてこれがオフセット・レジスタ４１０に加算される。
【００５８】
図１１はバイパス復号モード処理８００の流れ図を示す。バイパス復号モード処理８００では、レンジは１だけ右シフトされてオフセット・レジスタ４１０と比較される。かくして、第２再正規化処理６００がブロック８０２で最初に実行される。これは、レンジ・レジスタ及びオフセット・レジスタ４００と４１０中に少なくとも１０ビットがある、即ち、右シフトの前に、レンジ≧０ｘ２００、であること、を保証することである。ブロック８０２はブロック８０４によって引き継がれ、ブロック８０４ではレンジはｒａｎｇｅ＞＞１に等しいと設定される。
【００５９】
図１１ではブロック２５４、２５６と２５８は図６における同一番号のブロックに対応する。従って、更なる議論は不要である。
【００６０】
図１２はターミネート復号処理９００の流れ図を示す。ターミネート復号処理９００はブロック９０２で開始し、ブロック９０２では、ｂｉｔｐｏｓはＣｏｕｎｔ＿ｌｅａｄｉｎｇ＿ｚｅｒｏｓ（ｒａｎｇｅ）に等しいと設定され、そして、（２＜＜（２３−ｂｉｔｐｏｓ））だけデクリメントされたレンジが設定される。ブロック９０２はブロック３０４によって引き継がれ、ブロック３０４では、オフセット≧レンジ、であるかどうかの判定が行われる。
【００６１】
図１２では、ステップ３０４、３０６と３０８は図７における同一番号のブロックに対応する。従って、更なる議論は不要である。図７と同様、ブロック３０８の後、正規化が行われる。しかしながら、図１２では、図１０Ａの第１正規化処理５００がブロック９１０で用いられる、ここにブロック９１０はブロック３０８を引き継ぐ。ブロック３０６とブロック９１０の双方はターミネート復号処理９００を終了させる。
【００６２】
バイパス・モードに対する複数シンボル復号
バイパス復号モード処理８００は２つの場合、サイン又は指数ゴロム（exponential Golomb）２値化（ＥＧ）符号、の何れかに適用する。バイパス・ビンがサインである場合に対しては、唯一のバイパス・ビンが、それぞれの動きベクトル差分（motion vector difference）（ｍｖｄ）又はｃｏｅｆｆ＿ｌｅｖｅｌ＿ｍｉｎｕｓ１に対して、復号される。ＥＧ符号は、絶対動きベクトル差分（ａｂｓ＿ｍｖｄ）又はａｂｓ＿ｃｏｅｆｆ＿ｌｅｖｅｌ＿ｍｉｎｕｓ１、のビン・ストリングス（bin strings）のサフィックス（suffix）としてのみ現れる。そして、ａｂｓ＿ｍｖｄ＞８又はａｂｓ＿ｃｏｅｆｆ＿ｌｅｖｅｌ＿ｍｉｎｕｓ１＞１３、であるようなビンのみがＥＧ符号のサフィックスを含む。表１は、ａｂｓ＿ｃｏｅｆｆ＿ｌｅｖｅｌ＿ｍｉｎｕｓ１に対して、プレフィックス（prefix）とサフィックスを持つビン・ストリングを特定する。表２は、ａｂｓ＿ｍｖｄに対して、プレフィックスとサフィックスを持つビン・ストリングを特定する。用語ｃｏｅｆｆ＿ｌｅｖｅｌ＿ｍｉｎｕｓ１は変換係数レベルからの値であり、そしてａｂｓは絶対値を表す。表３はＥＧ符号のプレフィックスとサフィックスをまとめる。
【００６３】
ビット・レート（bit rate）が増大（量子化ステップＱＰが低減、残差係数レベルが上昇）するに従い、それに比例して残差係数の復号が増加することが予期される。その理由は、主要な増加はａｂｓ＿ｃｏｅｆｆ＿ｌｅｖｅｌ＿ｍｉｎｕｓ１のＥＧ符号の増加だからである。ソフトウェアの実装においては、複数のビンを同時に復号することによってＥＧ復号を改良することが重要である。ハードウェアの実装においては、もし、複数のビンが１サイクル以内で復号されることが出来るように、ハードウェア（ＨＷ）が設計されているならば、任意のビットレートのビットストリームのＣＡＢＡＣ復号に上限を設けることが出来る。バイパス・モードに含まれるコンテキストはないのであるから、３２ビットのレンジ・レジスタ及びオフセット・レジスタの使用は、１ショット（shot）での、複数のバイパス・ビンの復号を可能にする。ＥＣ符号、及び、用語、残差係数レベル上昇と残差係数復号はＨ．２６４標準で既知である。用語“１ショット”は、１つずつ復号する代わりに、符号語の全ビットを同時に復号することを意味する。本明細書における説明から理解されるように、本具体例の構成はＥＧ符号復号速度を向上することが出来る。
【表１】
2011501896.tif 000003
【表２】
2011501896.tif 000004
【表３】
2011501896.tif 000005
【００６４】
表１と表２に示されるように、ＥＧ符号はプレフィックスと、多くの場合、サフィックスを含む。該プレフィックスは単項符号化される。サフィックス中のビン数はプレフィックスによって決定される。下記の表３に明記された例では、もしＥＧ符号プレフィックスが“１０”であれば、その場合ＥＧ０／ＥＧ３サフィックス中のビット数は、表３の第２行に明記されているように、１／４である。表３はＥＧ０符号とＥＧ３符号のプレフィックスとサフィックスをまとめる。理論的には、プレフィックス部分／サフィックス部分は、図１３Ａと図１４Ａにおけるように、復号されることが出来る。
【００６５】
図１３ＡはプレフィックスＥＧ符号の復号処理１０００のための見本的命令セットを示す。図１３Ｂは図１３ＡのプレフィックスＥＧ符号復号処理のためのレンジとオフセットの相関図を示す。処理１０００のための見本的命令セットは、オフセットが閾値Ｔ１、Ｔ２、Ｔ３及びＴ４のセットより小であるかどうか、を評価する。ここに、Ｔ１はレンジの１／２に等しく、Ｔ２はレンジの３／４であり、Ｔ３はレンジの７／８であり、そしてＴ４はレンジの１５／１６である。もしオフセットがＴ１より小であれば、レンジは１だけ右シフトされてビット０が返される。もしオフセットがＴ２より小であれば、ｏｆｆｓｅｔ＝ｏｆｆｓｅｔ−Ｔ１、とし、レンジは２だけ右シフトされてビット１０が返される。もしオフセットがＴ３より小であれば、オフセットはＴ２を減算・代入され、レンジは３だけ右シフトされてビット１１０が返される。もしオフセットがＴ４より小であれば、オフセットはＴ３を減算・代入され、レンジは４だけ右シフトされてビット１１１０が返される。
【００６６】
図１３Ｂでは、Ｔ１、Ｔ２、Ｔ３及びＴ４におけるオフセットの値がレンジに関して示される。
【００６７】
図１４ＡはサフィックスＥＧ符号の復号処理１０１０のための見本的命令セットを示す。図１４Ｂは図１４ＡのサフィックスＥＧ符号復号処理のためのレンジとオフセットの相関図を示す。図１４ＡはサフィックスＥＧ符号の復号処理１０１０のための見本的命令セットを示す。処理１０１０のための見本的命令セットは、オフセットが閾値Ｔ１、Ｔ２、Ｔ３、Ｔ４、Ｔ５、Ｔ６及びＴ７のセットより小であるかどうか、を評価する。ここに、Ｔ１はレンジの１／８に等しく、Ｔ２はレンジの２／８であり、Ｔ３はレンジの３／８であり、Ｔ４はレンジの４／８であり、Ｔ５はレンジの５／８であり、Ｔ６はレンジの６／８であり、そしてＴ７はレンジの７／８である。もしオフセットがＴ１より小であれば、ビット０００が返される。もしオフセットがＴ２より小であれば、ｏｆｆｓｅｔ＝ｏｆｆｓｅｔ−Ｔ１、として、ビット００１が返される。もしオフセットがＴ３より小であれば、オフセットはＴ２を減算・代入されて、ビット０１０が返される。もしオフセットがＴ４より小であれば、オフセットはＴ３を減算・代入されて、ビット０１１が返される。もしオフセットがＴ５より小であれば、オフセットはＴ４を減算・代入されて、ビット１００が返される。もしオフセットがＴ６より小であれば、オフセットはＴ５を減算・代入されて、ビット１０１が返される。もしオフセットがＴ７より小であれば、オフセットはＴ６を減算・代入されて、ビット１１０が返される。さもなければオフセットはオフセット減算・代入Ｔ７であって、ビット１１１が返される。何れのビットを返す処理（return）後も、レンジは３だけ右シフトされる。
【００６８】
図１４Ｂでは、Ｔ１、Ｔ２、Ｔ３、Ｔ４、Ｔ５、Ｔ６及びＴ７における、オフセットの値がレンジに関して示される。
【００６９】
図１５ＡはプレフィックスＥＧＫ符号の復号処理１１００の流れ図を示す。図１５ＢはサフィックスＥＧＫ符号の復号処理１２００の流れ図を示す。プレフィックス或いはサフィックスを復号するための具体例のソフトウェアの実行が示される。それぞれのビンを復号することはレンジを１だけ右シフトすることであり、そして、末尾のビンを復号後、レンジ≧０ｘ１００、でなければならないが故に、レンジ≧０ｘ１００００００、となるように、レンジ／オフセットは最初に再正規化される。このようにして、連続する上限１６個のビンを復号することに対応することが出来る。シミュレーションでは、ＱＰは１に設定され、ＥＧ符号プレフィックス／サフィックス中のビンの最大記録個数は９であった。例えば、それぞれのビットを復号することはレンジ・レジスタにおいて１ビットを消費する。もし、レンジ≧０ｘ１００００００、であれば、最終ビットを復号後、レンジ≧０ｘ１００となるであろう。従って、復号されることが出来る１６ビットがある。これは３２ビットのレンジ・レジスタ４００を用いて可能である。
【００７０】
プレフィックスＥＧＫ符号の復号処理１１００は、第３再正規化処理７００が行われる、ブロック１１０２で開始する。ブロック１１０２はブロック１１０４に引き継がれ、ブロック１１０４では、閾値はレンジと指定され、レンジは１だけ右シフトされる。更に、プレフィックスは０と指定される。ブロック１１０４はブロック１１０６に引き継がれ、ブロック１１０６では、オフセット≧閾値であるかどうか、の判定が行われる。もしブロック１１０６における該判定が“肯”であるならば、ブロック１１０６はブロック１１０８に引き継がれる。ブロック１１０８では、レンジは１だけ右シフトされ、閾値はレンジだけ増分を与えられ、ｐｒｅｆｉｘ＋＝（１＜＜ｋ）とされ、そして、ｋ＋＋となる。表示、ｐｒｅｆｉｘ＋＝（１＜＜ｋ）、は本質的に、ｐｒｅｆｉｘ＝ｐｒｅｆｉｘ＋（１＜＜ｋ）と表わされ、ｋ＋＋はループのためにｋに１だけ増分を与える。
【００７１】
ブロック１１０８はブロック１１１０によって引き継がれ、ブロック１１１０ではオフセットは、ｏｆｆｓｅｔ−＝（ｔｈｒｅｓｈｏｌｄ−ｒａｎｇｅ）、とされる。表示、ｏｆｆｓｅｔ−＝（ｔｈｒｅｓｈｏｌｄ−ｒａｎｇｅ）は又、ｏｆｆｓｅｔ＝ｏｆｆｓｅｔ−（ｔｈｒｅｓｈｏｌｄ−ｒａｎｇｅ）と表わされる。ブロック１１１０は処理１１００を終了させる。ブロック１１０６において、もし該判定が“否”であるならば、ブロック１１０６はブロック１１１０に進む。ｋの項はＤｅｃｏｄｅＥＧＫＰｒｅｆｉｘ関数及びＤｅｃｏｄｅＥＧＫＳｕｆｆｉｘ関数への入力である。ＤｅｃｏｄｅＥＧＫＰｒｅｆｉｘ関数への入力としては、ｋはＥＧ０符号に対しては０、そして、ＥＧ３符号に対しては３であるべきである。ＤｅｃｏｄｅＥＧＫＳｕｆｆｉｘ関数への入力はＤｅｃｏｄｅＥＧＫＰｒｅｆｉｘ関数から出る値ｋである。表示、ｐｒｅｆｉｘ＋＝（１＜＜ｋ）は又下記の表３でも示される。例えば、１１１０（４行目）は、ＥＧ０符号に対してプレフィックスは７である、ということを意味し、それは、０ｂ１１１＝（１＜＜０）＋（１＜＜１）＋（１＜＜２）、である。表示ｏｆｆｓｅｔ−＝（ｔｈｒｅｓｈｏｌｄ−ｒａｎｇｅ）は、ｏｆｆｓｅｔ＝ｏｆｆｓｅｔ−（ｔｈｒｅｓｈｏｌｄ−ｒａｎｇｅ）、と同一である。
【００７２】
サフィックスＥＧＫ符号の復号処理１２００は、第３再正規化処理７００が行われる、ブロック１２０２で開始する。ブロック１２０２はブロック１２０４に引き継がれ、ブロック１２０４ではサフィックスが０に設定される。ブロック１２０４はブロック１２０６に引き継がれ、ブロック１２０６では、ｋが０より大であるかどうか、の判定が行われる。もし該判定が“否”であれば、処理１２００は終了する。
【００７３】
しかしながら、もし該判定が“肯”であれば、その場合ブロック１２０６はブロック１２０８に引き継がれ、ブロック１２０８では、レンジが１だけ右シフトされ、そしてｋが１だけデクリメントされる。ブロック１２０８はブロック１２１０に引き継がれ、ブロック１２１０では、オフセット≧レンジであるかどうか、の判定が行われる。もし該判定が“否”であれば、その場合ブロック１２１０はブロック１２０６に戻る。しかしながら、もしブロック１２１０での該判定が“肯”であれば、ブロック１２１０はブロック１２１２に引き継がれ、ブロック１２１２では、サフィックスは（１＜＜ｋ）を加算代入され、そしてオフセットはレンジを減算代入される。表示、ｓｕｆｆｉｘ＋＝（１＜＜ｋ）、は２値ストリングの値を計算する。例えば、０ｂ１０１０＝（１＜＜３）＋（１＜＜１）、であり、Ｏｆｆｓｅｔ＝ｏｆｆｓｅｔ−ｒａｎｇｅ、である。ブロック１０８はブロック１１１０によて引き継がれ、ブロック１１１０では、ｏｆｆｓｅｔ−＝（ｔｈｒｅｓｈｏｌｄ−ｒａｎｇｅ）、とされる。ブロック１１１０は処理１１００を終了させる。ブロック１１０６において、もし該判定が“否”であるならば、ブロック１１０６はブロック１１１０に進む。
【００７４】
実験結果
表４と表５は、標準コアと新しい最適化されたコア間の、ＭＩＰＳの比較およびサイクル／関数呼び出しの比較、を示す。これ等の数値はＤＳＰシミュレータ上で、レベル３コンパイラ最適化を用い、そして、デフォルトのデータ・キャッシュ・サイズ及び命令キャッシュ・サイズを用いて、Ｋａｙａｋシーケンスに関して得られている。
【表４】
2011501896.tif 000006
【表５】
2011501896.tif 000007
【００７５】
表４と表５は、図５と図９の決定復号処理２００と４５０に対する、ビット・レート、量子化ステップ・サイズＱＰの比較を示す。表４と表５は又、図６と図１１のバイパス復号処理２５０と８００に対する比較およびＥＧＫ符号の復号処理に対する比較、を含む。表４は又ＭＩＰＳの結果も示す。
【００７６】
もし６４ビット・レジスタが使用され、且つ、ＣＡＢＡＣの初期段階で特別な注意が払われれば、４バイト並べて読み込むことを可能にして更にサイクルを節約できる。図１０Ａ、図１０Ｂ及び図１０Ｃで示される第１、第２及び第３再正規化処理５００、６００及び７００を行うための閾値は、通常の再正規化ルーチンが適用されるように、０ｘ１００００００００に変更されることが出来る。これはビットストリームからバイトを読み込む頻度を変更する。それは再正規化のチェック頻度も変更することが出来る。例えば、図１５Ｂの開始におけるブロック１２０２での再正規化のチェックは省略されることが出来る。
【００７７】
図９では、ブロック４６０で実行される第１再正規化処理５００は、標準復号モード処理４５０の開始に移されることが出来る。もし３２ビット・レンジ・レジスタが使用されて再正規化閾値が０ｘ１００００であれば、最初のシンボルを復号の後、可能な最小レンジ・レジスタは０ｘ６００である。０ｘ６００のレンジ・レジスタはそれでも＞０ｘ１００であって、再正規化なしで次のシンボルを復号することが出来る。それ故、９ビット超のレンジ／オフセット・レジスタを用いれば、再正規化なしで複数のビンを復号することを可能にする。オリジナルの再正規化はビット単位であり、それ故、それは非常に高コストである。従って、レンジ・レジスタ４００の配置はハードウェア・アーキテクチャを単純化して、２つの連続する標準モード・シンボルを復号することが出来る。
【００７８】
図１６Ａ、図１６Ｂと図１６ＣはＣＡＢＡＣ残差ブロックのシンタックス配列を示す。２つの連続する標準モード・シンボルを復号するために、図１６Ａと図１６Ｂに見られるように、有意係数フラグ（significant_coeff_flag）と最終有意係数フラグ（last_significant_coeff_flag）が対で復号される。もし有意係数フラグが０であれば、これは該係数がゼロ係数であることを意味し、最終有意係数フラグはない。もし有意係数フラグが１であれば、これは該係数が非ゼロ係数であることを意味し、復号すべき次のシンボルは最終有意係数フラグである。従って、該対の値は０又は１０又は１１の何れかを取ることが出来る。該対は４×４ブロックのそれぞれの残差係数に対して復号される必要があるが故に、速度向上／節約の潜在的可能性は極めて顕著である。用語、有意係数フラグと最終有意係数フラグはＨ．２６４標準で定義されている。
【００７９】
図１６Ｃにおけるマトリクス又はブロック１４００はデータ・セットの具体例の例示である。図１６Ｂにおける表１３５０中の値は図１６Ｃのデータ・セットから抽出される。シンタックス要素ストリーム１３００は１３５０の表から抽出される。
【００８０】
レンジ・レジスタ／オフセット・レジスタに十分なビットがある限り、再正規化のチェックは飛ばされることが出来る。
【００８１】
１又は複数の具体例の構成において、説明された諸機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれ等の任意の組合せで実装されることが出来る。ソフトウェアで実装される場合、該諸機能は、コンピュータ可読媒体上の１又は複数の命令またはコードとして、記憶される又は転送されることが出来る。コンピュータ可読媒体は、コンピュータ記憶媒体と、１つの場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体、双方を含む。記憶媒体はコンピュータによってアクセスされることが出来る任意の利用可能な媒体であることが出来る。限定としてではなく例として、このようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光学ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置、或いは、所望のプログラム・コードを諸命令の形式で搬送又は記憶するために又はデータ構造を搬送又は記憶するために使用されることが出来て、コンピュータによってアクセスされることが出来るその他任意の媒体、を含むことが出来る。又、任意の接続は適切にコンピュータ可読媒体と呼ばれる。例えば、もしソフトウェアが、ウェブサイト、サーバ或いは他の遠隔情報源から、同軸ケーブル、光ファイバ・ケーブル、ツイスト・ペア、デジタル加入者線（digital subscriber line）（ＤＳＬ）、或いは赤外、無線、及びマイクロ波のような無線技術、を使用して伝送されるならば、その場合、同軸ケーブル、光ファイバ・ケーブル、ツイスト・ペア、ＤＳＬ、或いは赤外、無線、及びマイクロ波のような無線技術、は媒体の定義に含まれる。本明細書中で使用される、ディスク（ｄｉｓｋ及びｄｉｓｃ）は、コンパクト・ディスク（ＣＤ）、レーザ・ディスク、光学ディスク、デジタル多用途ディスク（digital versatile disc）（ＤＶＤ）、フロッピー（登録商標）・ディスク及びブルーレイ・ディスクを含み、ここにｄｉｓｋは通常データを磁気的に再製するが、他方、ｄｉｓｃはデータをレーザを用いて光学的に再製する。上記の組合せも又コンピュータ可読媒体の範囲に含まれるべきである。
【００８２】
本開示された構成の前記の説明は当業者の誰もが本開示を作製する又は使用することを可能にする。これ等の構成への様々な修正は、当業者等には容易に明らかであり、そして本明細書中で明確にされた包括的な原理は、本発明の精神と範囲を逸脱することなく他の構成に適用されることが可能である。かくして、本開示は、本明細書中で示される諸構成に限定されることを意図されるのではなく、本明細書で開示された原理及び新規性と首尾一貫する最も広い範囲を認容されるべきである。
【図１】
2011501896.tif 000008
【図２Ａ】
2011501896.tif 000009
【図２Ｂ】
2011501896.tif 000010
【図２Ｃ】
2011501896.tif 000011
【図２Ｄ】
2011501896.tif 000012
【図３】
2011501896.tif 000013
【図４】
2011501896.tif 000014
【図５】
2011501896.tif 000015
【図６】
2011501896.tif 000016
【図７】
2011501896.tif 000017
【図８Ａ】
2011501896.tif 000018
【図８Ｂ】
2011501896.tif 000019
【図８Ｃ】
2011501896.tif 000020
【図９】
2011501896.tif 000021
【図１０Ａ】
2011501896.tif 000022
【図１０Ｂ】
2011501896.tif 000023
【図１０Ｃ】
2011501896.tif 000024
【図１１】
2011501896.tif 000025
【図１２】
2011501896.tif 000026
【図１３Ａ】
2011501896.tif 000027
【図１３Ｂ】
2011501896.tif 000028
【図１４Ａ】
2011501896.tif 000029
【図１４Ｂ】
2011501896.tif 000030
【図１５Ａ】
2011501896.tif 000031
【図１５Ｂ】
2011501896.tif 000032
【図１６Ａ】
2011501896.tif 000033
【図１６Ｂ】
2011501896.tif 000034
【図１６Ｃ】
2011501896.tif 000035
【手続補正書】
【提出日】平成22年8月5日(2010.8.5)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
ｂｉｎ＝ｃｔｘＩｄｘ−＞ｖａｌＭＰＳ                                    （８）
ｒａｎｇｅ＝ｒＭＰＳ                                                    （９）
ブロック２１４はブロック２１６によって引き継がれ、ブロック２１６ではｃｔｘＩｄｘ−＞ｓｔａｔｅはＴｒａｎｓＩｎｄｅｘＭＰＳ（ｃｔｘＩｄｘ−＞ｓｔａｔｅ）を代入される。ブロック２１２とブロック２１６は双方ともに、再正規化処理１５０が行われる、ブロック２１８へ進む。ブロック２１８は処理２００を終了させる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
図９では、ブロック２０４、２０６、２０８、２１０、２１２、２１４と２１６は図５における同じ番号のブロックに対応する。従って、更なる議論は不要である。しかしながら、図５における再正規化ブロック２１８は図１０Ａの再正規化処理５００と置き換えられる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
ビット・レート（bit rate）が増大（量子化ステップＱＰが低減、残差係数レベルが上昇）するに従い、それに比例して残差係数の復号が増加することが予期される。その理由は、主要な増加はａｂｓ＿ｃｏｅｆｆ＿ｌｅｖｅｌ＿ｍｉｎｕｓ１のＥＧ符号の増加だからである。ソフトウェアの実装においては、複数のビンを同時に復号することによってＥＧ復号を改良することが重要である。ハードウェアの実装においては、もし、複数のビンが１サイクル以内で復号されることが出来るように、ハードウェア（ＨＷ）が設計されているならば、任意のビットレートのビットストリームのＣＡＢＡＣ復号に上限を設けることが出来る。バイパス・モードに含まれるコンテキストはないのであるから、３２ビットのレンジ・レジスタ及びオフセット・レジスタの使用は、１ショット（shot）での、複数のバイパス・ビンの復号を可能にする。ＥＧ符号、及び、用語、残差係数レベル上昇と残差係数復号はＨ．２６４標準で既知である。用語“１ショット”は、１つずつ復号する代わりに、符号語の全ビットを同時に復号することを意味する。本明細書における説明から理解されるように、本具体例の構成はＥＧ符号復号速度を向上することが出来る。
【表１】
2011501896.tif 000036
【表２】
2011501896.tif 000037
【表３】
2011501896.tif 000038
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
図１４ＡはサフィックスＥＧ符号の復号処理１０１０のための見本的命令セットを示す。図１４Ｂは図１４ＡのサフィックスＥＧ符号復号処理のためのレンジとオフセットの相関図を示す。処理１０１０のための見本的命令セットは、オフセットが閾値Ｔ１、Ｔ２、Ｔ３、Ｔ４、Ｔ５、Ｔ６及びＴ７のセットより小であるかどうか、を評価する。ここに、Ｔ１はレンジの１／８に等しく、Ｔ２はレンジの２／８であり、Ｔ３はレンジの３／８であり、Ｔ４はレンジの４／８であり、Ｔ５はレンジの５／８であり、Ｔ６はレンジの６／８であり、そしてＴ７はレンジの７／８である。もしオフセットがＴ１より小であれば、ビット０００が返される。もしオフセットがＴ２より小であれば、ｏｆｆｓｅｔ＝ｏｆｆｓｅｔ−Ｔ１、として、ビット００１が返される。もしオフセットがＴ３より小であれば、オフセットはＴ２を減算・代入されて、ビット０１０が返される。もしオフセットがＴ４より小であれば、オフセットはＴ３を減算・代入されて、ビット０１１が返される。もしオフセットがＴ５より小であれば、オフセットはＴ４を減算・代入されて、ビット１００が返される。もしオフセットがＴ６より小であれば、オフセットはＴ５を減算・代入されて、ビット１０１が返される。もしオフセットがＴ７より小であれば、オフセットはＴ６を減算・代入されて、ビット１１０が返される。さもなければオフセットはオフセット減算・代入Ｔ７であって、ビット１１１が返される。何れのビットを返す処理（return）後も、レンジは３だけ右シフトされる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
しかしながら、もし該判定が“肯”であれば、その場合ブロック１２０６はブロック１２０８に引き継がれ、ブロック１２０８では、レンジが１だけ右シフトされ、そしてｋが１だけデクリメントされる。ブロック１２０８はブロック１２１０に引き継がれ、ブロック１２１０では、オフセット≧レンジであるかどうか、の判定が行われる。もし該判定が“否”であれば、その場合ブロック１２１０はブロック１２０６に戻る。しかしながら、もしブロック１２１０での該判定が“肯”であれば、ブロック１２１０はブロック１２１２に引き継がれ、ブロック１２１２では、サフィックスは（１＜＜ｋ）を加算代入され、そしてオフセットはレンジを減算代入される。表示、ｓｕｆｆｉｘ＋＝（１＜＜ｋ）、は２値ストリングの値を計算する。例えば、０ｂ１０１０＝（１＜＜３）＋（１＜＜１）、であり、Ｏｆｆｓｅｔ＝ｏｆｆｓｅｔ−ｒａｎｇｅ、である。ブロック１２１２はブロック１２０６に戻る。
【国際調査報告】
2011501896.tif 000039
2011501896.tif 000040