本発明の実施の形態は、図面を参照することにより最もよく理解されるであろう。なお、図面においては、同様の部分には、同様の番号を付すことにする。また、上記の図面は、明示的に詳細な説明の一部に組み込まれる。
本明細書の図面において一般的に記述および説明がなされているように、本発明の各要素は、様々な構成においてアレンジおよび設計が可能であることが容易に理解されるであろう。従って、以下に述べる、本発明に係る方法およびシステムの実施の形態についてのより詳細な記載は、本発明の範囲を限定するものではなく、単に、現段階における好ましい実施の形態を表現しているに過ぎない。
本発明の実施の形態における各要素は、ハードウエア、ファームウエア、および/または、ソフトウエアによって実現されてもよい。本明細書において例示的に開示される実施の形態は、これらの形態の一つを記述しているに過ぎず、当業者であれば、本発明の範囲内において、各要素を、これらの形態の何れにおいても実現することができることが理解されるものとする。
エントロピー符号化/復号を用いる任意のコーダ(coder)/デコーダ(decoder)(コーデック)は、本発明の実施の形態に含まれるが、本発明の多くの例示的な実施の形態は、H.264/AVCのエンコーダ、および、H.264/AVCのデコーダとの関連において説明される。これは、本発明の説明のためであり、本発明を限定するものではない。
本発明の多くの例示的な実施の形態は、基本ユニット(elementary unit)としてのマ
クロブロックに関して記述されている。これは、説明のためであり、限定するものではない。
2008年3月28日に出願された"Methods and Systems for Parallel Video Encoding and Decoding"というタイトルの米国特許出願第12/058,301号明細書は、参照することにより、その全体が本明細書に組み込まれるものとする。また、2009年10月14日に出願された"Methods and Systems for Parallel Video Encoding and Decoding"というタイトルの米国特許出願第12/579,236号明細書は、参照することにより、その全体が本明細書に組み込まれるものとする。
H.264/MPEG−4 AVC(H.264/AVC)、およびTMuC等の最新の動画像符号化方法および規格は、複雑度が増大することを代償として、旧来の方法および規格に比べて、より高い符号化効率を提供する。動画像符号化方法および規格において画質および解像度に関する要求が増していることも、複雑度を増大させる要因である。並列復号処理をサポートしているデコーダにおいては、復号速度が向上し、必要なメモリ量が削減される。加えて、マルチコアプロセッサの進歩は、並列復号処理をサポートしているエンコーダおよびデコーダを望ましいものにしている。
H.264/AVC、および、その他多くの動画像符号化規格および方法は、ブロックに基づくハイブリッド動画像符号化のアプローチに基づいている。それらにおいて、情報源符号化(source-coding)アルゴリズムは、(a)画像間(inter-picture、フレーム間(inter-frame)ともいう)予測、(b)画像内(intra-picture、フレーム内(intra-frame)ともいう)予測、および、(c)予測残差(prediction-residual)の変換符号化(transform coding)、のハイブリッドである。フレーム間予測は、時間方向の冗長性を利用するものであり、フレーム内および予測残差の変換符号化は、空間方向の冗長性を利用するものである。
図1は、例示的なH.264/AVC動画像エンコーダ2のブロック図である。入力フレームと捉えることもできる入力画像(input picture、入力ピクチャ)4が、符号化の対象として存在している。予測信号(predicted signal)6、および、残差信号(residual signal)8が生成される。ここで、予測信号6は、フレーム間予測(inter-frame prediction)10またはフレーム内予測(intra-frame prediction)12の何れかに基づくものである。フレーム間予測10は、蓄積された参照画像16(参照フレームともいう)、および、入力フレーム(入力画像)4と参照フレーム(参照画像)16との間の、動き検出処理を実行する動き検出18の処理によって決定された動き情報19、を用いる動き補償部14によって決定される。フレーム内予測12は、フレーム内予測部20により復号信号22を用いて決定される。残差信号8は、予測信号6から入力画像4を減算することによって決定される。残差信号8は、変換/スケール/量子化部24により変換・スケール・量子化され、これにより、量子化された変換係数26が生成される。復号信号22は、量子化された変換係数26を用いる逆(変換/スケール/量子化)部30により生成される信号28に、予測信号6を加算することによって生成される。動き情報19、および、量子化された変換係数26は、エントロピー符号化部32によりエントロピー符号化され、圧縮された動画像ビットストリーム34に書き込まれる。出力画像領域38(例えば、参照フレームの一部)は、再構成されかつ予めフィルタリングされた信号22を用いるデブロッキングフィルタ部36によりエンコーダ2にて生成される。
図2は、例示的な264/AVC動画像デコーダ50のブロック図である。ビットストリームと捉えることもできる入力信号52が、復号の対象として存在している。受信されたシンボルは、エントロピー復号部54によりエントロピー復号され、これにより、(1)動き情報56、および、(2)量子化およびスケーリングされた変換係数58が生成される。動き情報56は、動き補償部60により、フレームメモリ64内の参照フレーム84の一部と結合され、フレーム間予測68が生成される。量子化およびスケーリングされた変換係数58は、逆(変換/スケール/量子化)部62により逆量子化、(逆)スケーリング、および、逆変換され、これにより、復号された残差信号70が生成される。残差信号70は、予測信号78に加算される。ここで、予測信号78は、フレーム間予測信号68、または、フレーム内予測信号76の何れかである。フレーム内予測信号76は、現フレームにおいて既に復号された情報72からフレーム内予測部74により予測される。加算された信号72は、デブロッキングフィルタ80によってフィルタされ、フィルタ済みの信号82は、フレームメモリ64に書き込まれる。
H.264/AVCにおいては、入力ピクチャは、固定サイズのマクロブロックに分割され、各マクロブロックは、輝度成分について16×16サンプル、および、2つの色差成分の各々について8×8サンプルの矩形状の画像領域をカバーする。他のコーデックおよび規格においては、マクロブロックとは異なる基本ユニットまたは基本的符号化ユニット、例えば符号化ツリーブロック(Coding Tree Block)を用いてもよい。H.264/AVC規格における復号処理は、マクロブロックを単位として処理を行う仕様である。エントロピーデコーダ54は、圧縮された動画像ビットストリーム52のシンタックス要素を構文解析し、それらを逆多重化する。H.264/AVCは、エントロピー復号として、異なる2つの方法を用いる仕様である。その1つは、CAVLCと呼ばれる、コンテキストを適応的に切り替える可変長符号のセットを利用することに基づく複雑性の低い技術であり、もう1つは、CABACと呼ばれる、コンテキストに基づく適応的なバイナリー算術符号化を行う、より多くの計算量を要するアルゴリズムである。双方のエントロピー復号方法において、現シンボルの復号処理は、前に正しく復号されたシンボル、および、適応的にアップデートされるコンテキストモデルに依存する。加えて、例えば、予測データ情報、残差データ情報、および、異なる色平面(color planes)等の異なるデータ情報が共に多重化される。逆多重化は、各要素がエントロピー復号されるまで終了しない。
エントロピー復号の後、マクロブロックは、(1)逆量子化および逆変換を経た残差信号、および、(2)フレーム内予測信号およびフレーム間予測信号の何れかである予測信号、を得ることにより再構成される。ブロック歪みは、復号された各マクロブロックに対してデブロッキングフィルタを作用させることにより低減される。入力信号がエントロピー復号されるまでは、如何なる処理も始まることはない。したがって、エントロピー復号は、復号処理において、潜在的なボトルネックとなっている。
同様に、例えば、H.264/AVCにおけるレイヤ間予測、および、その他のスケーラブルなコーデックにおけるレイヤ間予測のような互いに異なる予測のメカニズムが許されるコーデックにおいて、エントロピー復号は、デコーダにおける全ての処理に先立って行う必要がある。したがって、エントロピー復号は、復号処理において、潜在的なボトルネックとなっている。
H.264/AVCにおいて、複数のマクロブロックを含む入力ピクチャは、1または複数のスライスに分割される。エンコーダおよびデコーダにて用いられる参照画像が同一であるとすると、1枚のスライスが示す画像の領域におけるサンプルの値は、他のスライスのデータを用いることなく正しく復号される。したがって、1枚のスライスに対するエントロピー復号、および、マクロブロックの再構成は、他のスライスに依存しない。特に、各スライスの開始において、エントロピー符号化の状態はリセットされる。他のスライスのデータは、エントロピー復号および再構成の双方に対して近傍の利用可能性を定義するときに、利用不可能とマークされる。H.264/AVCにおいて、スライスは、並列的にエントロピー復号および再構成される。スライス境界を跨ぐイントラ(画面内)予測および動きベクトル予測は、禁止されている。デブロッキングフィルタは、スライス境界を跨いだ情報を用いることができる。
図3は、例示的なビデオ画像(ビデオピクチャ)90を示している。ビデオ画像90は、水平方向に11個、垂直方向に9個のマクロブロックを含んでいる(9個の例示的なマクロブロックに91〜99の番号を付している)。図3には、3枚の例示的なスライス:“スライス#0”100と示されている第1のスライス、“スライス#1”101と示されている第2のスライス、および、“スライス#2”102と示されている第3のスライス、が示されている。H.264/AVCデコーダは、3枚のスライス100、101、102を並列的に復号および再構成することができる。各スライスの復号/再構成の処理の最初に、コンテキストモデルが初期化若しくはリセットされ、他のスライス内のマクロブロックは、エントロピー復号およびマクロブロックの再構成の双方に対して、利用不可能とマークされる。したがって、“スライス#1”内のマクロブロック、例えば、93の番号が付されたマクロブロック、に対して、“スライス#0”内のマクロブロック(例えば、91および92の番号が付されたマクロブロック)は、コンテキストモデルの選択、および、再構成に用いられない。一方で、“スライス#1”内のマクロブロック、例えば、95の番号が付されたマクロブロックに対して、“スライス#1”内の他のマクロブロック(例えば、93および94の番号が付されたマクロブロック)は、コンテキストモデルの選択、および、再構成に用いられる。従って、エントロピー復号、および、マクロブロックの再構成は、スライス内で、逐次的(serially)に行われる必要がある。スライスがフレキシブルなマクロブロック順序付け(flexible macroblock ordering(FMO))を用いて定義されているものでない限り、スライス内のマクロブロックは、ラスタスキャン順に処理される。
フレキシブルなマクロブロック順序付けは、1枚のピクチャのスライスへの分割の態様を変更するスライスグループ(slice group)を定義する。スライスグループ内のマクロブロックは、マクロブロックからスライスグループへのマップ(macroblock-to-slice-group map)によって定義される。ここで、マクロブロックからスライスグループへのマップは、スライスヘッダにおけるピクチャパラメータセットおよび追加情報の内容によって示される。マクロブロックからスライスグループへのマップは、ピクチャ内の各マクロブロックについてのスライスグループ識別番号(slice-group identification number)に
より構成されている。スライスグループ識別番号は、各マクロブロックがどのスライスに属するものであるかを特定する。各スライスグループは、1または複数のスライスに分割が可能である。ここで、スライスは、あるスライスグループのマクロブロックのセットにおいてラスタスキャン順に処理される同じスライスグループ内の一連のマクロブロックよりなる。エントロピー復号、および、マクロブロックの再構成は、スライス内で、逐次的に行われる必要がある。
図4は、3つのスライスグループ:“スライスグループ#0”103と示される第1のスライスグループ、“スライスグループ#1”104と示される第2のスライスグループ、および、“スライスグループ#2”105と示される第3のスライスグループ、への例示的なマクロブロックの配置を示している。これらのスライスグループ103、104、105は、それぞれ、ピクチャ90における2つの前景領域(foreground regions)および、1つの背景領域(background region)に関連付けられている。
本発明のいくつかの実施の形態は、ピクチャを1または複数の再構成スライス(reconstruction slice)へ分割することを含んでいる。ここで、エンコーダおよびデコーダにて用いられる参照画像が同一であるとすると、再構成スライスは、該ピクチャ上の該再構成スライスによって表される領域におけるサンプルの値が他の再構成スライスからのデータを用いることなく正しく再構成されるという点で、自己完結的である。再構成スライスにおけるすべての再構成されたマクロブロックは、再構成のための近傍の定義付けにおいて、利用可能である。
本発明のいくつかの実施の形態は、再構成スライスを1より多くのエントロピースライス(entropy slice)に分割することを含んでいる。ここで、エントロピースライスは、該ピクチャ上の該エントロピースライスによって表される領域におけるシンボルの値が他のエントロピースライスからのデータを用いることなく正しくエントロピー復号されるという点で、自己完結的である。本発明のいくつかの実施の形態においては、各エントロピースライスの復号開始において、エントロピー符号化の状態はリセットされる。本発明のいくつかの実施の形態において、他のエントロピースライスのデータは、エントロピー復号のための近傍の利用可能性を定義するときに、利用不可能とマークされる。本発明のいくつかの実施の形態においては、他のエントロピースライスにおけるマクロブロックは、現ブロックのコンテキストモデルの選択において用いられることはない。本発明のいくつかの実施の形態において、コンテキストモデルは、エントロピースライス内においてのみアップデートされる。本発明のこれらの実施の形態において、1枚のエントロピースライスに用いられる各エントロピーデコーダは、コンテキストモデルについての、自身のセットを保持する。
ITU電気通信標準化部門(ITU Telecommunication Standardization Sector)の研究班16(Study Group 16)による、2008年4月の「並列的なエントロピー復号のためのエントロピースライス(Entropy slices for parallel entropy decoding)」と題された寄書405は、参照することによりその全体が本明細書に組み込まれるものとする。
本発明のいくつかの実施の形態は、CABAC符号化/復号を含んでいる。CABAC符号化処理は、以下の4つの基本的なステップ、すなわち、バイナリゼーション、コンテキストモデル選択、2値算術符号化、および確率のアップデートを含んでいる。
・バイナリゼーション(binarization):2進値でないシンボル(non-binary-valued symbol)(例えば、変換係数、動きベクトル、または、その他の符号化データ)は、ビンストリング(bin string)、または、2値化シンボルとも呼ばれる2進符号(binary code)に変換される。2進値のシンタックス要素が与えられるとき、バイナリゼーションの最初のステップは省略されてもよい。2進値のシンタックス要素、または、2値化シンボルの要素が、ビンと見なされ得る。
各ビンに対して、以下のステップが実行される。
・コンテキストモデル選択:コンテキストモデルは、1またはそれ以上のビンに対しての確率モデルである。コンテキストモデルは、各ビンについて、該ビンが“1”および“0”の何れであるかの確率を含んでいる。モデルの選択は、直近に符号化されたデータシンボルの統計に依存して、通常、左隣および上隣のシンボルが利用可能であればそれらに基づいて、利用可能な複数のモデルの選択肢に対して行われる。
・2値算術符号化:算術コーダ(arithmetic coder)は、選択された確率モデルに従い、再帰的な区間の再分割に基づいて、各ビンを符号化する。
・確率のアップデート:選択されたコンテキストモデルは、実際の符号化された値に基づいてアップデートされる。
コンテキストの適応は、近傍のシンボルの値に基づくコンテキストモデル状態の選択処理、及び与えられたシンボルに割り当てられたモデル確率分布のアップデート処理を参照してもよい。ここで、コンテキストモデル状態は、単に、状態とも呼ばれ、ビンに関連付けられている。近傍のシンボルの位置は、コンテキストテンプレート(context template)にしたがって定義される。
CABAC符号化/復号を含む本発明のいくつかの実施の形態においては、エントロピースライスの復号開始において、全てのコンテキストモデルは初期化されるか、または、所定のモデルにリセットされる。
本発明のいくつかの実施の形態は、図5との関係において理解される。図5は、例示的なビデオフレーム(video frame、動画像フレーム)110を示している。ビデオフレーム110は、水平方向に11個、垂直方向に9個のマクロブロックを含んでいる(9個の例示的なマクロブロックに115〜123の番号を付している)。図5には、3枚の例示的な再構成スライス:“R_スライス#0”111と示されている第1の再構成スライス、“R_スライス#1”112と示されている第2の再構成スライス、および、“R_スライス#2”113と示されている第3の再構成スライス、が示されている。図5には、さらに、第2の再構成スライス“R_スライス#1”112の、3枚のエントロピースライス:クロスハッチで表されており“E_スライス#0”と示されている第1のエントロピースライス114、垂直ハッチで表されており“E_スライス#1”と示されている第2のエントロピースライス115、および、斜めハッチで表されており“E_スライス#2”と示されている第3のエントロピースライス116、への分割が示されている。各エントロピースライス114、115、116は、並列的にエントロピー復号される。
本発明のいくつかの実施の形態においては、エントロピースライス内のマクロブロックからのデータのみが、該エントロピースライスのエントロピー復号を行っている間のコンテキストモデルの選択に対して利用可能である。他の全てのマクロブロックは、利用不可能とマークされる。この例示的な分割においては、117および118の番号が付されたマクロブロックは、119の番号が付されたマクロブロックの領域に対応するシンボルを復号するときには、コンテキストモデルの選択に利用不可能である。これは、117および118の番号が付されたマクロブロックは、マクロブロック119を含む該エントロピースライスの外に位置しているからである。しかしながら、これらのマクロブロック117、118は、マクロブロック119が再構成されるときには利用可能である。
本発明のいくつかの実施の形態においては、エンコーダは、再構成スライスをエントロピースライスに分割するか否かを決定し、その決定をシグナルとしてビットストリーム中に含める。本発明のいくつかの実施の形態においては、そのシグナルは、エントロピースライスフラグ(entropy-slice frag)を含んでいる。本発明のいくつかの実施の形態においては、該エントロピースライスフラグは、“entropy_slice_frag”と表される。
本発明のいくつかのデコーダの実施の形態は、図6との関係において記述される。これらの実施の形態においては、エントロピースライスフラグが分析(examine)され(ステップ130)、もし、該エントロピースライスフラグが、ピクチャまたは再構成スライスに関連付けられたエントロピースライスが存在しないことを示していれば(分岐132)、ヘッダは、標準的スライスヘッダ(regular slice header)として構文解析(parse)される(ステップ134)。エントロピーデコーダの状態はリセットされ(ステップ136)、エントロピー復号および再構成のための近傍情報(neighbor information)が定義される(ステップ138)。そして、スライスのデータがエントロピー復号され(ステップ140)、スライスが再構成される(ステップ142)。もし、該エントロピースライスフラグが、ピクチャに関連付けられたエントロピースライスが存在していることを示していれば(分岐146)、ヘッダは、エントロピースライスヘッダ(entropy-slice header)として構文解析される(ステップ148)。エントロピーデコーダの状態はリセットされ(ステップ150)、エントロピー復号のための近傍情報が定義され(ステップ152)、エントロピースライスのデータがエントロピー復号される(ステップ154)。そして、再構成のための近傍情報が定義され(ステップ156)、スライスが再構成される(ステップ142)。ステップ142におけるスライスの再構成の後に、次のスライスまたはピクチャが分析される(矢印158)。
本発明の他のいくつかのデコーダの実施の形態は、図7との関係において記述される。これらの実施の形態においては、デコーダは、並列的な復号を行うことが可能であり、自身の並列度(degree of parallelism)を定義する。例えば、並列的にN枚のエントロピースライスを復号することが可能なデコーダを考える。該デコーダは、N枚のエントロピースライスを識別する(ステップ170)。本発明のいくつかの実施の形態においては、現ピクチャ若しくは再構成スライスにおいて、N枚よりも少ないエントロピースライスが利用可能なとき、該デコーダは、次のピクチャ若しくは再構成スライスが利用可能であれば、それらからのエントロピースライスを復号する。他の実施の形態においては、デコーダは、次のピクチャ若しくは再構成スライスの一部を復号する前に、現ピクチャ若しくは再構成スライスが完全に処理されるまで待機する。N枚までのエントロピースライスを識別した後(ステップ170)、識別されたエントロピースライスの各々は、独立にエントロピー復号される。第1のエントロピースライスが復号される(ステップ172〜ステップ176)。第1のエントロピースライスの復号(ステップ172〜ステップ176)は、該デコーダの状態をリセットすることを含んでいる(ステップ172)。CABACエントロピー復号を含むいくつかの実施の形態においては、CABACの状態がリセットされる。第1のエントロピースライスのエントロピー復号のための近傍情報が定義され(ステップ174)、第1のエントロピースライスのデータが復号される(ステップ176)。N枚までのエントロピースライスの各々に対して、これらのステップが行われる(N番目のエントロピースライスに対してのステップ178〜ステップ182)。本発明のいくつかの実施の形態において、デコーダは、すべてのエントロピースライスがエントロピー復号されたときに、該エントロピースライスを再構成する(ステップ184)。本発明の他の実施の形態においては、デコーダは、1またはそれ以上のエントロピースライスが復号された後に、再構成(ステップ184)を開始する。
本発明のいくつかの実施の形態においては、N枚より多くのエントロピースライスが存在するときには、復号スレッド(decode thread)は、エントロピースライスのエントロピー復号が終了次第、次のエントロピースライスのエントロピー復号を開始する。従って、スレッドが複雑性の低いエントロピースライスのエントロピー復号を完了したとき、該スレッドは、他のスレッドが復号を完了するのを待つことなく、さらなるエントロピースライスの復号を開始する。
既存の規格若しくは方法を含む本発明のいくつかの実施の形態において、エントロピースライスは、そのような規格もしくは方法に従った標準的スライス(regular slice)の
スライス特性(slice attributes)の多くを共有している。したがって、エントロピースライスは、小さなヘッダを必要とする。本発明のいくつかの実施の形態においては、エントロピースライスヘッダは、デコーダがエントロピースライスの始まりを識別し、エントロピー復号を開始することを許可する。いくつかの実施の形態においては、ピクチャ若しくは再構成スライスの始まりにおいて、エントロピースライスヘッダは、標準的ヘッダ(regular header)若しくは再構成スライスヘッダ(reconstruction slice header)である。
H.264/AVCコーデックを含む本発明のいくつかの実施の形態において、エントロピースライスは、既存のスライスヘッダに新たなビット“entropy_slice_flag”を追加することによって通知される。表1は、本発明の実施の形態に従ったエントロピースライスヘッダのシンタックスのリストを示している。表1においては、Cは、カテゴリ(Category)を示しており、記述子(Descriptor)u(1)、ue(v)は、固定長(fixed length)または可変長(variable length)の復号方法を示している。“entropy_slice_flag”を含む本発明の実施の形態により、改善された符号化効率が実現される。
“first_mb_in_slice”は、エントロピースライスヘッダに関連付けられたエントロピースライスにおける最初のマクロブロックのアドレスを特定する。いくつかの実施の形態においては、エントロピースライスは、一連のマクロブロックを含んでいる。
“cabac_init_idc”は、コンテキストモードの初期化処理に用いられる初期化テーブル(initialization table)を決定するためのインデックスを特定する。
本発明のいくつかの実施の形態においては、エントロピースライスには、標準的スライスとは異なるネットワーク抽象レイヤ(NAL:networkabstraction layer)ユニットタイプが割り当てられる。これらの実施の形態においては、デコーダは、標準的スライスと、エントロピースライスとを、NALユニットタイプに基づいて識別することができる。これらの実施の形態においては、ビットフィールド(bit field)“entropy_slice_flag”は必要とされない。
本発明のいくつかの実施の形態においては、ビットフィールド“entropy_slice_flag”は全てのプロファイルにおいて送信されるわけではない。本発明のいくつかの実施の形態においては、ビットフィールド“entropy_slice_flag”は全てのベースラインプロファイルにおいて送信されるわけではないが、該ビットフィールド“entropy_slice_flag”は主要なプロファイル、拡張されたプロファイル、または専門的プロファイルのような高度なプロファイルにおいて送信される。本発明のいくつかの実施の形態においては、ビットフィールド“entropy_slice_flag”は、固定的な特性値よりも大きい特性に関連したビットストリームにおいて送信されるのみである。例示的な特性としては、空間解像度、フレームレート、ビット深度、ビットレート、および他のビットストリームの特性が挙げられる。本発明のいくつかの実施の形態においては、ビットフィールド“entropy_slice_flag”は、インタレース方式の1920×1080よりも大きい空間解像度に関連したビットストリームにおいて送信されるのみである。本発明のいくつかの実施の形態においては、ビットフィールド“entropy_slice_flag”は、プログレッシブ方式の1920×1080よりも大きい空間解像度に関連したビットストリームにおいて送信されるのみである。本発明のいくつかの実施の形態においては、ビットフィールド“entropy_slice_flag”が送信されない場合、デフォルト値が用いられる。
本発明のいくつかの実施の形態においては、エントロピースライスは、データ多重化を変更することによって構成される。本発明のいくつかの実施の形態においては、エントロピースライスに含まれる一群のシンボルはマクロブロックレベルで多重化される。本発明の別の実施の形態においては、エントロピースライスに含まれる一群のシンボルはピクチャレベルで多重化される。本発明の他の別の実施の形態においては、エントロピースライスに含まれる一群のシンボルはデータタイプにより多重化される。本発明の更なる別の実施の形態においては、エントロピースライスに含まれる一群のシンボルは上述したものの組み合わせによって多重化される。
ピクチャレベルでの多重化に基づきエントロピースライスを構成することを含む本発明のいくつかの実施の形態は、図8および図9との関係において理解される。図8に示されている本発明のいくつかの実施の形態においては、予測データ(prediction data)190、および、残差データ(residual data)192は、予測エンコーダ(prediction encoder)194、および、残差エンコーダ(residual encoder)196によって個別にエントロピー符号化され、符号化された予測データ、および、符号化された残差データは、ピクチャレベルマルチプレクサ(picture-level multiplexer)198によって、ピクチャレベルで多重化される。本発明のいくつかの実施の形態においては、ピクチャについての予測データ190は、第1のエントロピースライスに関連付けられており、ピクチャについての残差データ192は、第2のエントロピースライスに関連付けられている。符号化された予測データ、および、符号化されたエントロピーデータは、並列的に復号される。本発明のいくつかの実施の形態においては、予測データまたは残差データを含む各パーティションは、並列的に復号される複数のエントロピースライスに分割される。
図9に示されている本発明のいくつかの実施の形態においては、各色平面の残差、例えば、輝度残差200、および、2つの色差残差202、204は、Yエンコーダ206、Uエンコーダ208、および、Vエンコーダ210によって個別にエントロピー符号化され、エントロピー符号化された各々の残差は、ピクチャレベルマルチプレクサ212によって、ピクチャレベルで多重化される。本発明のいくつかの実施の形態においては、ピクチャ200についての輝度残差は、第1のエントロピースライスに関連付けられており、ピクチャ202についての第1の色差残差は、第2のエントロピースライスに関連付けられており、ピクチャ204についての第2の色差残差は、第3のエントロピースライスに関連付けられている。3枚の色平面についての符号化された残差データは、並列的に復号される。本発明のいくつかの実施の形態においては、色平面残差データを含む各パーティションは、並列的に復号される複数のエントロピースライスに分割される。本発明のいくつかの実施の形態においては、輝度残差200は、色差残差202、204に比べて、相対的に多くのエントロピースライスを有している。
本発明のいくつかの実施の形態においては、圧縮された動画像(compressed-video)のビットストリームは、エントロピースライスを含むようにトランスコード(tran-scode)され、それによって、上述した本発明の実施の形態に含まれる、並列的なエントロピー復号が行われる。本発明のいくつかの実施の形態は、図10との関係において記述される。エントロピースライスを有しない入力ビットストリームは、図10に従って、ピクチャ毎に処理される。本発明のこれらの実施の形態においては、該入力ビットストリームからのピクチャは、エントロピー復号される(ステップ220)。符号化されたデータ、例えば、モードデータ、動き情報、残差情報、および、その他のデータが取得される。エントロピースライスが、該データから1枚ずつ構成される(ステップ222)。エントロピースライスに対応するエントロピースライスヘッダが、新たなビットストリームに書き込まれる(ステップ224)。エンコーダの状態がリセットされ、近傍情報が定義される(ステップ226)。エントロピースライスがエントロピー符号化され(ステップ228)、該新たなビットストリームに書き込まれる。構成されたエントロピースライスに取り込まれて(consumed)いないピクチャデータが存在する場合には(分岐232)、他のエントロピースライスがステップステップ222にて構成され、構成されたエントロピースライスに全てのピクチャデータが取り込まれる(分岐234)まで、ステップ224〜ステップ230の処理が続けられ、その後、次のピクチャが処理される。
本発明のいくつかの実施の形態においては、エンコーダが、再構成スライスを複数のエントロピースライスに分割する。各エントロピースライスのサイズは、ビンの固定的な数よりも小さいか、または、ビンの固定的な数を越えない。いくつかの実施の形態においては、エンコーダが各エントロピースライスのサイズを制限し、ビンの最大数がビットストリームにおいて通知される。他の実施の形態においては、エンコーダが各エントロピースライスのサイズを制限し、ビンの最大数が該エンコーダのプロファイルおよびレベルコンフォーマンスポイントにより規定される。例えば、H.264/AVC動画像符号化用仕様書の付録Aは、エントロピースライスにおいて許されるビンの最大数の規定を有するように拡張される。
本発明のいつくかの実施の形態においては、例えば、表2に示されるような表により、エントロピースライスにおいて許されるビンの最大数がエンコーダの各レベルコンフォーマンスポイントに対して示される。Mm.nは、レベルm.nのコンフォーマンスポイントに対する、エントロピースライスにおいて許されるビンの最大数を示す。
エントロピースライスにおいて許されるビンの最大数の例としては、M1.1=1,000ビン、M1.2=2,000ビン、...、およびM5.1=40,000ビンが挙げられる。エントロピースライスにおいて許されるビンの最大数の他の例としては、M1.1=2,500ビン、M1.2=4,200ビン、...、およびM5.1=150,000ビンが挙げられる。
いくつかの実施の形態においては、エントロピースライスにおいて許されるビンの最大数のセットが、ビットレート、画像サイズ、マクロブロックの数、および、他の符号化パラメータに基づいて、全てのレベルに対して規定される。本発明のいくつかの実施の形態において、エントロピースライスにおいて許されるビンの最大数は、全てのレベルに対して、同一の数に設定される。値の例としては、38,000ビンおよび120,000ビンが挙げられる。
本発明のいくつかの実施の形態においては、エンコーダが、マクロブロックに関連したビンの最悪の場合の数を決定し、該エンコーダが、ESLICE_MaxNumberBins/BinsPerMB、で表されるマクロブロックに関連したビンを各エントロピースライスに書き込む。ここで、ESLICE_MaxNumberBinsは、エントロピースライスにおいて許されるビンの最大数を示し、BinsPerMBは、マクロブロックに関連したビンの最悪の場合の数を示す。いくつかの実施の形態においては、マクロブロックは、ラスタスキャン順に選択される。他の実施の形態においては、マクロブロックは、所定の他の順に選択される。いくつかの実施の形態においては、マクロブロックに関連したビンの最悪の場合の数は、固定的な数である。他の実施の形態においては、エンコーダは、予め処理されたマクロブロックのサイズの計測に基づいて、最悪の場合の数をアップデートする。
本発明のいくつかの実施の形態が、図11に関連して記述される。これらの実施の形態においては、エンコーダが、再構成スライスに対して、該再構成スライスを複数のエントロピースライスに分割する。何れのエントロピースライスも、ビンの既定の数よりも大きいサイズではない。該エンコーダは、現エントロピースライスにおけるビンの数に関連したカウンタを0に初期化する(ステップ240)。カウンタ値は、図11に関連して記述される本発明の実施の形態に係る以下の記述において、説明のためにAと表記される。次のマクロブロックのシンタックス要素が得られる(ステップ242)。次のマクロブロックは、所定のマクロブロックの処理順に従って決定される。いくつかの実施の形態においては、マクロブロックの処理順は、ラスタスキャン順に対応するものである。マクロブロックにおける2進値でないシンタックス要素は、ビンストリングに変換される(ステップ244)。2進値のシンタックス要素は、変換を必要としない。マクロブロックに関連したビンの数が決定される(ステップ246)。マクロブロックに関連したビンの数には、2進値のシンタックス要素のビンと、2進値でないシンタックス要素に関連したビンストリングにおけるビンとが含まれる。マクロブロックに関連したビンの数は、図11に関連して記述される本発明の実施の形態に関する以下の記述において、説明のためにnumと示される。
マクロブロックに関連したビンの数が、エントロピースライスに対し許されるビンの最大数を超過することなく(分岐249)、現エントロピースライスに関連した、蓄積されたビンの数に加算される(ステップ248)場合、現エントロピースライスに関連した蓄積されたビンの数が、マクロブロックに関連するビンを含むようにアップデートされる(ステップ250)。マクロブロックに関連したビンが、エントロピーエンコーダによりビットストリームに書き込まれ(ステップ252)、現エントロピースライスに関連付けられる。次のマクロブロックのシンタックス要素が得られ(ステップ242)、分割処理が続行される。
ステップ248において、マクロブロックに関連したビンの数の合計が、現エントロピースライスに関連した蓄積されたビンの数が、エントロピースライスに対して許されるビンの最大数を超過する(分岐253)場合、エンコーダは、現再構成スライスに関連した新エントロピースライスの処理を開始し(ステップ254)、現エントロピースライスの処理を終了する。その後、新しく開始されたエントロピースライスにおけるビンの数に関連したカウンタを0に初期化する(ステップ256)。現エントロピースライスに関連した蓄積されたビンの数は、マクロブロックに関連したビンを含むようにアップデートされる(ステップ250)。マクロブロックに関連したビンが、エントロピーエンコーダによりビットストリームに書き込まれ(ステップ252)、現エントロピースライスに関連付けられる。次のマクロブロックのシンタックス要素が得られ(ステップ242)、分割処理が続行される。
本発明のいくつかの実施の形態が、図12に関連して記述される。これらの実施の形態においては、エンコーダが、再構成スライスに対し、該再構成スライスを複数のエントロピースライスに分割する。何れのエントロピースライスも、ビンの既定の最大数よりも大きいサイズではない。これらの実施の形態においては、エントロピースライスのサイズが、エントロピースライスにおいて許されるビンの既定の最大数に関連した閾値に到達するまで、エンコーダは、マクロブロックのシンタックス要素をエントロピースライスに関連付ける。いくつかの実施の形態においては、該閾値は、エントロピースライスにおいて許されるビンの最大数(the maximum number of bins)の割合である。1つの例示的な実施の形態においては、マクロブロックにおいて予想されるビンの最多数(the greatest number of bins)が、エントロピースライスにおいて許されるビンの最大数の10%未満であるとすると、閾値は、エントロピースライスにおいて許されるビンの最大数の90%である。他の例示的な実施の形態においては、閾値は、エントロピースライスにおいて許されるビンの最大数の割合である。該割合は、マクロブロックにおいて予想されるビンの最多数に基づくものである。これらの実施の形態においては、エントロピースライスのサイズが閾値サイズを超過すると、他のエントロピースライスが生成される。閾値サイズは、エントロピースライスがエントロピースライスにおいて許されるビンの最大数を超過しないことを保証するように選択される。いくつかの実施の形態においては、閾値サイズは、エントロピースライスにおいて許されるビンの最大数、および、マクロブロックに対し予想されるビンの最大数の推測値の関数である。
エンコーダは、現エントロピースライスにおけるビンの数に関係したカウンタを0に初期化する(ステップ270)。カウンタ値は、図12に関連して記述される本発明の実施の形態に係る以下の記述において、説明のためにAと表記される。次のマクロブロックのシンタックス要素が得られる(ステップ272)。次のマクロブロックが、所定のマクロブロックの処理順に従って決定される。いくつかの実施の形態においては、マクロブロックの処理順は、ラスタスキャン順と対応するものである。マクロブロックにおける2進値でないシンタックス要素が、ビンストリングに変換される(ステップ274)。2進値のシンタックス要素は、変換の必要がない。マクロブロックに関連したビンが、エントロピーエンコーダによりビットストリームに書き込まれ(ステップ276)、現エントロピースライスに関連付けられる。マクロブロックに関連したビンの数が決定され(ステップ278)、現エントロピースライスに関連した蓄積されたビンの数が、マクロブロックに関連したビンを含むようにアップデートされる(ステップ280)。ステップ282において、現エントロピースライスに関連した蓄積されたビンの数が、エントロピースライスにおいて許されるビンの最大数に基づいた、TH(MaxNumBins)と表記される閾値よりも大きい(分岐284)場合、エンコーダは新規のエントロピースライスの処理を開始し(ステップ286)、現エントロピースライスの処理を終了する。その後、新しく開始された現エントロピースライスにおけるビンの数に関連したカウンタを0に初期化する(ステップ288)。次のマクロブロックのシンタックス要素が得られ(ステップ272)、分割処理が続行される。現エントロピースライスに関連した蓄積されたビンの数が、エントロピースライスにおいて許されるビンの最大数に基づいた閾値以下である場合(分岐283)、次のマクロブロックのシンタックス要素が得られ(ステップ272)、分割処理が続行される。
本発明のいくつかの実施の形態においては、既定の数のマクロブロックが現再構成スライスに割り当てられたとき、エンコーダは、現再構成スライスの処理を終了し、新規の再構成スライスの処理を開始する。
本発明のいくつかの実施の形態が、図13に関連して記述される。これらの実施の形態においては、既定の数のマクロブロックが現再構成スライスに割り当てられたとき、エンコーダは、現再構成スライスの処理を終了し、新規の再構成スライスの処理を開始する。エンコーダは、現再構成スライスにおけるマクロブロックの数に関連したカウンタを0に初期化する(ステップ300)。カウンタ値は、図13に関連して記述される本発明の実施の形態に係る以下の記述において、説明のためにAMBと表記される。エンコーダは、現エントロピースライスにおけるビンの数に関連したカウンタを0に初期化する(ステップ310)。カウンタ値は、図13に関連して記述される本発明の実施の形態に係る以下の記述において、説明のためにABinと表記される。ステップ312において、現再構成スライスにおけるマクロブロックの数に関連したカウンタのカウンタ値が、再構成スライスにおいて許されるマクロブロックの既定の最大数以上(分岐331)である場合、新規のエントロピースライスの処理が開始され(ステップ332)、現再構成スライスの処理、および、現エントロピースライスの処理を終了し、新規の再構成スライスの処理が開始される(ステップ334)。再構成スライスにおいて許されるマクロブロックの最大数は、図13に関連して記述される本発明の実施の形態に係る以下の記述において、説明のためにMaxMBperRSliceと表記される。
現再構成スライスにおけるマクロブロックの数に関連したカウンタのカウンタ値が、再構成スライスにおいて許されるマクロブロックの既定の最大数未満である場合(分岐313)、次のマクロブロックのシンタックス要素が得られる(ステップ314)。次のマクロブロックは、所定のマクロブロックの処理順に従って決定される。いくつかの実施の形態においては、マクロブロックの処理順は、ラスタスキャン順に対応するものである。マクロブロックにおける2進値でないシンタックス要素が、ビンストリングに変換される(ステップ316)。2進値のシンタックス要素は、変換の必要がない。マクロブロックに関連したビンの数が決定される(ステップ318)。マクロブロックに関連したビンの数には、2進値のシンタックス要素のビンと、2進値でないシンタックス要素に関連したビンストリングにおけるビンとが含まれる。マクロブロックに関連したビンの数は、図13に関連して記述される本発明の実施の形態に係る以下の記述において、説明のためにnumと表記される。
マクロブロックに関連したビンの数が、エントロピースライスに対し許されるビンの最大数を超過することなく(分岐321)、現エントロピースライスに関連した蓄積されたビンの数に追加される(ステップ320)場合、現エントロピースライスに関連した蓄積されたビンの数が、マクロブロックに関連したビンを含むようにアップデートされる(ステップ322)。マクロブロックに関連したビンが、エントロピーエンコーダによりビットストリームに書き込まれ(ステップ324)、現エントロピースライスに関連付けられる。現再構成スライスに関連したマクロブロックの数がインクリメントされる(ステップ326)。現再構成スライスに関連したマクロブロックの数が、再構成スライスにおいて許されるマクロブロックの既定の最大数と比較され(ステップ312)、分割処理が続行される。
ステップ320において、マクロブロックに関連したビンの数と、現エントロピースライスに関連した蓄積されたビンの数との合計が、エントロピースライスに対し許されるビンの最大数を超過する場合(分岐327)、エンコーダが、現再構成スライスに関連した現在の新規のエントロピースライスの処理を開始し(ステップ328)、現エントロピースライスにおけるビンの数に関連したカウンタが0に初期化される(ステップ330)。現エントロピースライスに関連した蓄積されたビンの数が、マクロブロックに関連したビンを含むようにアップデートされる(ステップ322)。マクロブロックに関連したビンが、エントロピーエンコーダによりビットストリームに書き込まれ(ステップ324)、現エントロピースライスに関連付けられる。現再構成スライスに関連したマクロブロックの数がインクリメントされる(ステップ326)。現再構成スライスに関連したマクロブロックの数が、再構成スライスにおいて許されるマクロブロックの既定の最大数と比較され(ステップ312)、分割処理が続行される。
本発明のいくつかの実施の形態が、図14に関連して記述される。これらの実施の形態においては、既定の数のマクロブロックが現再構成スライスに割り当てられたとき、エンコーダが新規の再構成スライスの処理を開始する。これらの実施の形態において、エントロピースライスのサイズが、エントロピースライスにおいて許されるビンの既定の最大数に関連した閾値に到達するまで、エンコーダは、マクロブロックのシンタックス要素をエントロピースライスに関連付ける。いくつかの実施の形態において、該閾値は、エントロピースライスにおいて許されるビンの最大数の割合である。1つの例示的な実施の形態においては、マクロブロックにおいて予想されるビンの最多数が、エントロピースライスにおいて許されるビンの最大数の10%未満であるとすると、閾値は、エントロピースライスにおいて許されるビンの最大数の90%である。他の例示的な実施の形態においては、閾値は、エントロピースライスにおいて許されるビンの最大数の割合である。該割合は、マクロブロックにおいて予想されるビンの最多数に基づくものである。これらの実施の形態においては、エントロピースライスのサイズが閾値サイズを超過すると、他のエントロピースライスが生成される。閾値サイズは、エントロピースライスがエントロピースライスにおいて許されるビンの最大数を超過しないことを保証するように選択される。いくつかの実施の形態においては、閾値サイズは、エントロピースライスにおいて許されるビンの最大数、および、マクロブロックに対し予想されるビンの最大数の推測値の関数である。
エンコーダは、現再構成スライスにおけるマクロブロックの数に関連したカウンタを0に初期化する(ステップ350)。カウンタ値は、図14に関連して記述される本発明の実施の形態に係る以下の記述において、説明のためにAMBと表記される。エンコーダは、現エントロピースライスにおけるビンの数に関連したカウンタを0に初期化する(ステップ352)。カウンタ値は、図14に関連して記述される本発明の実施の形態に係る以下の記述において、説明のためにABinと表記される。ステップ354において、現再構成スライスにおけるマクロブロックの数に関連したカウンタのカウンタ値が、再構成スライスにおいて許されるマクロブロックの既定の最大数以上である場合(分岐373)、新規のエントロピースライスの処理が開始され(ステップ374)、新規の再構成スライスの処理が開始される(ステップ376)。再構成スライスにおいて許されるマクロブロックの最大数は、図14に関連して記述される本発明の実施の形態に係る以下の記述において、説明のためにMaxMBperRSliceと表記される。
現再構成スライスにおけるマクロブロックの数に関連したカウンタのカウンタ値が、再構成スライスにおいて許されるマクロブロックの既定の最大数未満である場合(分岐355)、次のマクロブロックのシンタックス要素が得られる(ステップ356)。次のマクロブロックは、マクロブロックの所定の処理順に従って決定される。いくつかの実施の形態においては、マクロブロックの処理順は、ラスタスキャン順に対応するものである。マクロブロックにおける2進値でないシンタックス要素が、ビンストリングに変換される(ステップ358)。2進値のシンタックス要素は、変換の必要がない。マクロブロックに関連したビンが、エントロピーエンコーダによりビットストリームに書き込まれ(ステップ360)、現エントロピースライスに関連付けられる。マクロブロックに関連したビンの数が決定される(ステップ362)。現エントロピースライスに関連した蓄積されたビンの数が、マクロブロックに関連したビンを含むようにアップデートされる(ステップ364)。ステップ366において、現エントロピースライスに関連した蓄積されたビンの数が、エントロピースライスにおいて許されるビンの最大数に基づいた、TH(MaxNumBins)と表記される閾値よりも大きい場合(分岐369)、エンコーダは新規のエントロピースライスの処理を開始し(ステップ370)、現エントロピースライスにおけるビンの数に関連したカウンタを0に初期化する(ステップ372)。現再構成スライスに関連したマクロブロックの数がインクリメントされる(ステップ368)。現再構成スライスに関連したマクロブロックの数が、再構成スライスにおいて許されるマクロブロックの既定の最大数と比較され(ステップ354)、分割処理が続行される。現エントロピースライスに関連した蓄積されたビンの数が、エントロピースライスにおいて許されるビンの最大数に基づいた閾値以下である場合(分岐367)、現再構成スライスに関連したマクロブロックの数がインクリメントされ(ステップ368)、現再構成スライスに関連したマクロブロックの数が、再構成スライスにおいて許されるマクロブロックの既定の最大数と比較され(ステップ354)、分割処理が続行される。
本発明の他の実施の形態においては、エンコーダが再構成スライスを複数のエントロピースライスに分割する。各エントロピースライスは、所定の数以下のビットに関係付けられる。
本発明のいくつかの実施の形態が、図15に関連して記述される。これらの実施の形態においては、エンコーダが、再構成スライスに対し、該再構成スライスを複数のエントロピースライスに分割する。何れのエントロピースライスも、既定の(所定の)ビットの数よりも大きいサイズではない。エンコーダは、現エントロピースライスにおけるビットの数に関連したカウンタを0に初期化する(ステップ400)。カウンタ値は、図15に関連して記述される本発明の実施の形態に係る以下の記述において、説明のためにAと表記される。次のマクロブロックのシンタックス要素が得られる(ステップ402)。次のマクロブロックは、マクロブロックの所定の処理順に従って決定される。いくつかの実施の形態においては、マクロブロックの処理順は、ラスタスキャン順に対応するものである。マクロブロックにおける2進値でないシンタックス要素が、ビンストリングに変換される(ステップ404)。2進値のシンタックス要素は、変換の必要がない。変換された2進値でない要素および2進値の要素である、マクロブロックに関連したビンが、エントロピーエンコーダに提供され、ビンがエントロピー符号化される(ステップ406)。マクロブロックに関連したビットの数が決定される(ステップ408)。マクロブロックに関連したビットの数は、図15に関連して記述される本発明の実施の形態に係る以下の記述において、説明のためにnumと表記される。
マクロブロックに関連したビットの数が、エントロピースライスに対し許されるビットの最大数(the maximum number of bits)を超過することなく(分岐411)、現エントロピースライスに関連した蓄積されたビットの数に追加される場合(ステップ410)、現エントロピースライスに関連した蓄積されたビットの数が、マクロブロックに関連したビットを含むようにアップデートされる(ステップ412)。マクロブロックに関連したビットが、ビットストリームに書き込まれ(ステップ414)、現エントロピースライスに関連付けられる。次のマクロブロックのシンタックス要素が得られ(ステップ402)、分割処理が続行される。
ステップ410において、マクロブロックに関連したビットの数と、現エントロピースライスに関連した蓄積されたビットの数との合計が、エントロピースライスに対し許されるビットの最大数を超過する場合(分岐415)、エンコーダが、現再構成スライスに関連した新規のエントロピースライスの処理を開始し(ステップ416)、現エントロピースライスにおけるビットの数に関連したカウンタが0に初期化される(ステップ418)。現エントロピースライスに関連した蓄積されたビットの数が、マクロブロックに関連したビットを含むようにアップデートされる(ステップ412)。マクロブロックに関連したビットが、ビットストリームに書き込まれ(ステップ414)、現エントロピースライスに関連付けられる。次のマクロブロックのシンタックス要素が得られ(ステップ402)、分割処理が続行される。
本発明のいくつかの実施の形態が、図16に関連して記述される。これらの実施の形態においては、エンコーダが、再構成スライスに対し、該再構成スライスを複数のエントロピースライスに分割する。何れのエントロピースライスも、ビットの既定の最大数よりも大きいサイズではない。これらの実施の形態においては、エントロピースライスのサイズが、エントロピースライスにおいて許されるビットの既定の最大数に関連した閾値に到達するまで、エンコーダは、マクロブロックのシンタックス要素をエントロピースライスに関連付ける。いくつかの実施の形態において、閾値は、エントロピースライスにおいて許されるビットの最大数の割合である。1つの例示的な実施の形態においては、マクロブロックにおいて予想されるビットの最多数(the greatest number of bits)が、エントロピ
ースライスにおいて許されるビットの最大数の10%未満であるとすると、閾値は、エントロピースライスにおいて許されるビットの最大数の90%である。他の例示的な実施の形態においては、該閾値は、エントロピースライスにおいて許されるビットの最大数の割合である。該割合は、マクロブロックにおいて予想されるビットの最多数に基づくものである。これらの実施の形態においては、エントロピースライスのサイズが閾値サイズを超過すると、他のエントロピースライスが生成される。閾値サイズは、エントロピースライスがエントロピースライスにおいて許されるビットの最大数を超過しないことを保証するように選択される。いくつかの実施の形態においては、閾値サイズは、エントロピースライスにおいて許されるビットの最大数、および、マクロブロックに対し予想されるビット最大数の推測値の関数である。
エンコーダは、現エントロピースライスにおけるビットの数に関連したカウンタを0に初期化する(ステップ440)。カウンタ値は、図16に関連して記述される本発明の実施の形態に係る以下の記述において、説明のためにAと表記される。次のマクロブロックのシンタックス要素が得られる(ステップ442)。次のマクロブロックは、マクロブロックの所定の処理順に従って決定される。いくつかの実施の形態においては、マクロブロックの処理順は、ラスタスキャン順に対応するものである。マクロブロックにおける2進値でないシンタックス要素が、ビンストリングに変換される(ステップ444)。2進値のシンタックス要素は、変換の必要がない。マクロブロックに関連したビンがエントロピー符号化され(ステップ446)、マクロブロックに関連したビンの数が決定される(ステップ448)。現エントロピースライスに関連した蓄積されたビットの数が、マクロブロックに関連したビンを含むようにアップデートされ(ステップ450)、マクロブロックに関連したエントロピー符号化されたビンが、ビットストリームに書き込まれる(ステップ452)。ステップ454において、現エントロピースライスに関連した蓄積されたビットの数が、エントロピースライスにおいて許されるビットの最大数に基づいた閾値よりも大きい場合(分岐456)、エンコーダが、新規のエントロピースライスの処理を開始し(ステップ458)、現エントロピースライスにおけるビットの数に関連したカウンタを0に初期化する(ステップ460)。次のマクロブロックのシンタックス要素が得られ(ステップ442)、分割処理が続行される。現エントロピースライスに関連した蓄積されたビットの数が、エントロピースライスにおいて許されるビットの最大数に基づいた閾値以下である場合(分岐455)、次のマクロブロックのシンタックス要素が得られ(ステップ442)、分割処理が続行される。
本発明の他の実施の形態においては、エンコーダが再構成スライスを複数のエントロピースライスに分割する。各エントロピースライスは、所定の数以下のマクロブロックに関連付けられる。
本発明のいくつかの実施の形態においては、エントロピースライスのサイズの制限に加えて、再構成スライスにおけるマクロブロックの最大数の制限が課せられる。
本発明のいくつかの実施の形態においては、エンコーダが再構成スライスを複数のエントロピースライスに分割する。各エントロピースライスのサイズは、マクロブロックの所定の数未満およびビンの所定の数未満に制限される。
本発明のいくつかの実施の形態においては、エンコーダが再構成スライスを複数のエントロピースライスに分割する。各エントロピースライスのサイズは、マクロブロックの所定の数未満およびビットの所定の数未満に制限される。
本発明のいくつかの実施の形態においては、エンコーダが再構成スライスを複数のエントロピースライスに分割する。各エントロピースライスのサイズは、マクロブロックの所定の数未満、ビンの所定の数未満、およびビットの所定の数未満に制限される。
本発明のいくつかの実施の形態においては、エントロピーコーダ(entropy coder)内のビン符号化(bin coding)は、並列化され、1以上のビンの並列符号化が許される。これは、符号化時間を短縮する。本発明のこれらの実施の形態は、図17に示されたエントロピーコーダとの関係において理解される。これらの実施の形態において、エントロピーコーダ480は、コンテキスト適応ユニット(context-adaptation unit)482、状態に基づくビンコーダセレクタ(bin-coder selector)484、および複数(3つ図示)のビンコーダ(bin coder)486、488、500を備えている。複数のビンコーダ48
6、488、500は、ビンコーダユニット(bi-coder unit)とも呼ばれ、並列的に動作する。ビン502は、入力シンボル506からビン502を生成する二値化器(binarizer)504によって、エントロピーコーダ480が利用可能である。ビン502は、コンテキスト適応ユニット482、および、状態に基づくビンコーダセレクタ484が利用可能である。コンテキスト適応ユニット482は、コンテキストの適応処理を実行し、モデル状態(単に状態とも呼ぶ)508を生成する。モデル状態508は、ビン502が、ビンコーダ486、488、500のうち、いずれに入力されるのかを選択するために用いられる。状態に基づくビンコーダセレクタ484は、ビン502を符号化するために、ビンコーダ486、488、500のうち、生成されたモデル状態508に関連したビンコーダを選択する。いくつかの実施の形態(不図示)においては、生成された状態508は、選択されたビンコーダが利用可能になる。出力ビット510、512、514は、ビンコーダ486、488、500により生成され、ビットストリームに含められる。本発明のいくつかの実施の形態においては、出力ビット510、512、514は、バッファされ、連結されてビットストリームに含められる。他の実施の形態においては、出力ビット510、512、514は、バッファされ、インターリーブ法に従ってビットストリームに含められる。
図17に関連して記述された本発明の実施の形態によれば、第1のビンは、第1のビンに関連して生成された第1のモデル状態に応じて、第1のビンコーダに送られる。コンテキスト適応ユニット482は、第1のビンの処理が完了すると、第2のビンの処理を開始する。ここで、第2のビンの処理とは、第2のビンに関連して生成された第2のモデル状態に応じて第2のビンを第2のビンコーダに送る処理であり、1以上のビンの並列的な処理が実質的に許されている。
本発明の他の実施の形態においては、エントロピーコーダは、並列処理が可能な複数のコンテキスト適応ユニットと、1つのビンコーダを備えている。コンテキスト適応ユニットが、ビンコーダよりも長い処理時間を必要とするシステムにおいては、複数のコンテキスト適応ユニットが並列的に処理することにより、符号化時間を短縮する。本発明のこれらの実施の形態のいくつかは、図18に示されたエントロピーコーダとの関係において理解される。これらの実施の形態において、エントロピーコーダ530は、複数(3つ図示)のコンテキスト適応ユニット(context-adaptation unit)532、534、536、コンテキスト適応ユニットセレクタ(context-adaptation unit selector)538、状態セレクタ(state selector)540、および、ビンコーダ(bin coder)542を備えている。ビン544は、入力シンボル548からビン544を生成する二値化器(binarizer)546によって、エントロピーコーダ530が利用可能である。ビン544は、コンテキスト適応ユニットセレクタ538、状態セレクタ540、および、ビンコーダ542が利用可能である。コンテキスト適応ユニットセレクタ538は、ビン544が入力され、状態値(state value)550、552、554を生成するコンテキスト適応ユニット532、534、536を選択またはスケジューリングするために用いられる。いくつかの例示的な実施の形態においては、コンテキスト適応ユニットセレクタ538は、ビンに関連したシンタックスに基づいて、コンテキスト適応ユニット532、534、536のうち、1つのコンテキスト適応ユニットを選択する。例えば、コンテキスト適応ユニット識別子(context-adaptation unit identifier)は、処理のためにビンが入力されるコンテキスト適応ユニットを識別するビンに関連付けられる。他の例示的な実施の形態においては、コンテキスト適応ユニットセレクタ538は、スケジューリング手順(schedulingprotocol)または、コンテキスト適応ユニット532、534、536に関連した負荷バランシング制約(load-balancing constraint)に基づいて、コンテキスト適応ユニット532、534、536のうち、1つのコンテキスト適応ユニットを選択する。いくつかの実施の形態において、生成された状態値は、ビンコーダ542に渡される適切なタイミングにおいて、コンテキスト適応ユニットセレクタ538に用いられる判断基準に従って、状態セレクタ540により選択される。ビンコーダ542は、ビン544の符号化において、状態セレクタ540によって渡された状態値556を用いる。本発明の他の実施の形態(不図示)において、状態値は、ビンコーダにより要求されない。したがって、状態値は、ビンコーダが利用可能ではない。出力ビット558は、ビンコーダ542により生成され、ビットストリームに含められる。本発明のいくつかの実施の形態においては、出力ビット558は、バッファされ、連結されてビットストリームに含められる。他の実施の形態においては、出力ビット558は、バッファされ、インターリーブ法に従ってビットストリームに含められる。
本発明のさらなる他の実施の形態においては、エントロピーコーダは、並列処理が可能な複数のコンテキスト適応ユニットと、並列処理が可能な複数のビンコーダを備えている。本発明のこれらの実施の形態のいくつかは、図19に示された例示的なエントロピーコーダとの関係において理解される。これらの実施の形態において、エントロピーコーダ570は、複数(3つ図示)のコンテキスト適応ユニット(context-adaptation unit)572、574、576、コンテキスト適応ユニットセレクタ(context-adaptation unit selector)578、状態セレクタ(state selector)580、状態に基づくビンコーダセレクタ(bin coder selector)582、および、複数の(3つ図示)ビンコーダ(bin coder)584、586、588を備えている。ビン590は、入力シンボル594からビン590を生成する二値化器(binarizer)592によって、エントロピーコーダ570が利用可能である。ビン590は、コンテキスト適応ユニットセレクタ578、状態セレクタ580、および、ビンコーダセレクタ582が利用可能である。コンテキスト適応ユニットセレクタ578は、ビン590が入力され、状態値(state value)596、598、600を生成するコンテキスト適応ユニット572、574、576を選択またはスケジューリングするために用いられる。生成された状態値は、状態に基づくビンコーダセレクタ582に渡される適切なタイミングにおいて、状態セレクタ580により選択される。状態に基づくビンコーダセレクタ582は、ビンコーダ584、586、588の中からビン590が入力されるビンコーダを選択するために、状態セレクタ580により渡された状態値602を用いる。他の実施の形態(不図示)においては、状態値602は、選択されたビンコーダが利用可能になる。ビン590の符号化において、選択されたビンコーダは、状態値602を用いる。本発明の他の実施の形態(不図示)においては、状態値は、ビンコーダにより要求されない。したがって、状態値はビンコーダが利用可能である。出力ビット604、606、608は、ビンコーダ584、586、558により生成され、ビットストリームに含められる。本発明のいくつかの実施の形態においては、出力ビット604、606、608は、バッファされ、連結されてビットストリームに含められる。他の実施の形態においては、出力ビット604、606、608は、バッファされ、インターリーブ法に従ってビットストリームに含められる。
本発明の例示的な実施の形態は、並列処理が可能な複数の可変長符号化コーデックを備えている。
本発明の1つの例示的な実施の形態においては、ビンコーダは2値算術符号化(binaryarithmetic coding)を備えている。本発明の他の実施の形態においては、ビンコーダは可変長符号化(variable length coding)を備えている。さらに、本発明の他の実施の形態においては、ビンコーダは、固定長符号化(fixed length coding)を備えている。
一般的に、エントロピーコーダは、Nca個(Ncaは1以上の整数)のコンテキスト適応ユニット、およびNbc個(Nbcは1以上の整数)のビンコーダユニットを備えている。
本発明のいくつかの実施の形態においては、エンコーダは、再構成スライスを複数のエントロピースライスに分割する。エントロピースライスの処理中に、Nca個のコンテキスト適応ユニット、およびNbc個のビンコーダユニットのうちの1つまたはそれ以上のユニットの各々が処理するビンの数が制限数を越えないように、各エントロピースライスのサイズは制限される。そのように制限されたコンテキスト適応ユニット、およびビンコーダユニットは、制限されたエントロピーコーダユニット(restricted entropy-coder unit)と呼称してもよい。
本発明のいくつかの実施の形態においては、エンコーダは、再構成スライスを複数のエントロピースライスに分割する。各エントロピースライスのサイズは、エントロピースライスの処理中に、Nca個のコンテキスト適応ユニットのうちのどのユニットも、Bca個を超えるビンを処理しないように制限される。本発明のいくつかの実施の形態においては、Bcaの値は例えば、ビットストリームにおいて、プロファイル制約(profile constraint)、レベル制約(level constraint)、または、他の標準メカニズム(normative mechanism)などにシグナル化される。
本発明の他の実施の形態においては、エンコーダは、再構成スライスを複数のエントロピースライスに分割する。各エントロピースライスのサイズは、エントロピースライスの処理中に、Nbc個のビンコーダユニットのうちどのユニットも、Bbc個を超えるビンを処理しないように制限される。本発明のいくつかの実施の形態においては、Bbcの値は例えば、ビットストリームにおいて、プロファイル制約(profile constraint)、レベル制約(level constraint)、または、他の標準メカニズム(normative mechanism)などにシグナル化される。
本発明のさらなる他の実施の形態においては、エンコーダは、再構成スライスを複数のエントロピースライスに分割する。エントロピースライスの処理中に、Nca個のコンテキスト適応ユニットのうちのどのユニットも、Bca個を超えるビンを処理しないように、そして、Nbc個のビンコーダユニットのうちのどのユニットも、Bbc個を超えるビンを処理しないように、各エントロピースライスのサイズは制限される。本発明のいくつかの実施の形態においては、Bbcの値、およびBcaの値は例えば、ビットストリームにおいて、プロファイル制約(profile constraint)、レベル制約(level constraint)、または、他の標準メカニズム(normative mechanism)などにシグナル化される。
本発明のさらなる他の実施の形態においては、エンコーダは、再構成スライスを複数のエントロピースライスに分割する。エントロピースライスの処理中に、1からNcaまでの各iについてNca個のコンテキスト適応ユニットのうちNca (i)で示されるi番目のコン
テキスト適応ユニットがBca(i)個を超えるビンを処理しないように、そして、1からNbcまでの各iについてNbc個のビンコーダユニットのうちNbc (i)で示されるi番目のビンコーダユニットがBbc(i)個を超えるビンを処理しないように、各エントロピースライスのサイズは制限される。本発明のいくつかの実施の形態においては、Bbc(i)の値、およびBca(i)の値は例えば、ビットストリームにおいて、プロファイル制約(profile constraint)、レベル制約(level constraint)、または、他の標準メカニズム(normative mechanism)などにシグナル化される。
本発明のいくつかの例示的な実施の形態を、図20に関連して説明する。これらの実施の形態においては、エンコーダが、ある再構成スライスについて、その再構成スライスを複数のエントロピースライスに分割する。Nca個のコンテキスト適応ユニット、およびNbc個のビンコーダユニットのうちの1つまたはそれ以上のユニットが制限数以下のビンを処理するように、各エントロピースライスのサイズは制限される。エンコーダは、現エントロピースライスにおいて処理されたビンの数に関連した各制限されたエントロピーコーダユニットのカウンタを0に初期化する(ステップ650)。カウンタ値は、図20に関連して記述される本発明の実施の形態に係る記述において、説明のためにAと表記される。Aは、現エントロピースライスについて、制限されたエントロピーユニットによって処理されたビンの累積数に応じた各ベクトル成分を含むベクトルを表す。次のマクロブロックのシンタックス要素が得られる(ステップ652)。次のマクロブロックは、所定のマクロブロックの処理順に従って決定される。いくつかの実施の形態においては、マクロブロックの処理順は、ラスタスキャン順に対応するものである。マクロブロックにおける2進値でないシンタックス要素は、ビンストリングに変換される(ステップ654)。2進値のシンタックス要素は、変換を必要としない。各制限されたエントロピーコーダユニットにより処理される、マクロブロックに関連したビンの数が決定される(ステップ656)。マクロブロックに関連したビンの数には、2進値のシンタックス要素のビンと、2進値でないシンタックス要素に関連したビンストリングにおけるビンとが含まれる。各制限されたエントロピーコーダユニットにより処理されたマクロブロックに関連したビンの数は、図20に関連して記述される本発明の実施の形態に関する以降の記述において、説明のためにnumと表記される。numは、現マクロブロックについて、制限されたエントロピーコーダユニットにより処理されたビンの数に対応する各ベクトル成分を含むベクトルを表す。
各制限されたエントロピーコーダユニットのマクロブロックに関連したビンの数が、いずれの制限されたエントロピーコーダユニットに対して許されるビンの最大数を超過することなく(分岐659)、各制限されたエントロピーコーダユニットの現エントロピースライスに関連した、蓄積されたビンの数に加算される(ステップ658)場合、現エントロピースライスに関連した蓄積されたビンの数が、マクロブロックに関連するビンを含むようにアップデートされる(ステップ660)。そして、マクロブロックに関連したビンが、エントロピーエンコーダによりビットストリームに書き込まれ(ステップ662)、現エントロピースライスに関連付けられる。次のマクロブロックのシンタックス要素が得られ(ステップ652)、分割処理が続行される。
ステップ658において、マクロブロックに関連したビンの数の合計、および、現エントロピースライスに関連した蓄積されたビンの数が、いずれの制限されたエントロピーコーダユニットに対して許されるビンの最大数を超過する(分岐663)場合、エンコーダは、現再構成スライスに関連した新しいエントロピースライスの処理を開始し(ステップ664)、現エントロピースライスにおけるビンの数に関連したカウンタを0に初期化する(ステップ666)。現エントロピースライスに関連した蓄積されたビンの数は、マクロブロックに関連したビンを含むようにアップデートされる(ステップ660)。マクロブロックに関連したビンは、エントロピーエンコーダによりビットストリームに書き込まれ(ステップ662)、現エントロピースライスに関連付けられる。次のマクロブロックのシンタックス要素が得られ(ステップ652)、分割処理が続行される。
本発明のいくつかの実施の形態が、図21に関連して記述される。これらの実施の形態においては、エンコーダが、ある再構成スライスについて、その再構成スライスを複数のエントロピースライスに分割する。Nca個のコンテキスト適応ユニット、およびNbc個のビンコーダユニットのうちの1つまたはそれ以上のユニットが処理するビンの数が制限数を越えないように、各エントロピースライスのサイズは制限される。エンコーダは、現エントロピースライスにおいて各制限されたエントロピーコーダユニットにより処理されたビンの数に関連した各制限されたエントロピーコーダユニットのカウンタを0に初期化する(ステップ700)。カウンタ値は、図21に関連して記述される本発明の実施の形態に係る以降の記述において、説明のためにAと表記される。Aは、現エントロピースライスの、制限されたエントロピーユニットによって処理されたビンの蓄積数に対応した各ベクトル成分を含むベクトルを表す。これらの実施の形態においては、制限されたエントロピーコーダユニットにより処理されたビンの数が、エントロピースライスにおいて、その制限されたエントロピーコーダユニットにより処理されることを許されるビンの既定の最大数に関連した閾値に到達するまで、エンコーダは、マクロブロックのシンタックス要素をエントロピースライスに関連付ける。いくつかの実施の形態においては、該閾値は、エントロピースライスにおいて、制限されたエントロピーコーダユニットにより処理されることを許されるビンの最大数(the maximum number of bins)の割合である。1つの例示的な実施の形態においては、マクロブロックにおいて、制限されたエントロピーコーダユニットにより処理されることが予想されるビンの最多数(the greatest number of bins)が、エントロピースライスにおいて、制限されたエントロピーコーダユニットにより処理されることを許されるビンの最大数の10%未満であるとすると、閾値は、エントロピースライスにおいて、制限されたエントロピーコーダユニットにより処理されることを許されるビンの最大数の90%である。他の例示的な実施の形態においては、閾値は、エントロピースライスにおいて、制限されたエントロピーコーダユニットにより処理されることを許されるビンの最大数の割合である。該割合は、マクロブロックにおいて、制限されたエントロピーコーダユニットにより処理されることが予想されるビンの最多数に基づくものである。これらの実施の形態においては、エントロピースライスのサイズが閾値サイズを超過すると、他のエントロピースライスが生成される。エントロピースライスが、そのエントロピースライスにおいて制限されたエントロピーコーダユニットのいずれか1つにより処理されることを許されるビンの最大数を超過しないことを保証するように、閾値サイズは選択される。いくつかの実施の形態においては、閾値サイズは、エントロピースライスにおいて許されるビンの最大数と、マクロブロックに対し予想されるビンの最大数の推測値との関数である。
次のマクロブロックのシンタックス要素が得られる(ステップ702)。次のマクロブロックが、所定のマクロブロックの処理順に従って決定される。いくつかの実施の形態においては、マクロブロックの処理順は、ラスタスキャン順と対応するものである。マクロブロックにおける2進値でないシンタックス要素が、ビンストリングに変換される(ステップ704)。2進値のシンタックス要素は、変換の必要がない。マクロブロックに関連したビンが、エントロピーエンコーダによりビットストリームに書き込まれ(ステップ706)、現エントロピースライスに関連付けられる。各制限されたエントロピーコーダユニットにより処理されたマクロブロックに関連したビンの数が決定される(ステップ708)。マクロブロックに関連したビンの数には、2進値のシンタックス要素のビンと、2進値でないシンタックス要素に関連したビンストリングにおけるビンとが含まれる。各制限されたエントロピーコーダユニットにより処理されたマクロブロックに関連したビンの数は、図21に関連して記述される本発明の実施の形態に関する以降の記述において、説明のためにnumと示される。numは、現マクロブロックについて、対応する制限されたエントロピーコーダユニットにより処理されたビンの数に対応する各ベクトル成分を含むベクトルを表す。各制限されたエントロピーコーダユニットにより処理された現エントロピースライスに関連した蓄積されたビンの数が、マクロブロックに関連したビンを含むようにアップデートされる(ステップ710)。ステップ712において、制限されたエントロピーコーダユニットにより処理された現エントロピースライスに関連した蓄積されたビンの数が、ある制限されたエントロピーコーダユニット i に対してTH(MaxNumBins)(i)と表記される閾値よりも大きい(分岐714)場合、エンコーダは新規のエントロピースライスの処理を開始し(ステップ716)、現エントロピースライスにおいて各制限されたエントロピーコーダユニットにより処理されたビンの数に関連したカウンタを0に初期化する(ステップ718)。次のマクロブロックのシンタックス要素が得られ(ステップ702)、分割処理が続行される。制限されたエントロピーコーダユニットにより処理された現エントロピースライスに関連した蓄積されたビンの数が、その閾値以下である場合(分岐713)、次のマクロブロックのシンタックス要素が得られ(ステップ702)、分割処理が続行される。
本発明のいくつかの実施の形態は、上述したエントロピースライスの分割のための判断基準の組み合わせを備えている。
本発明のいくつかの実施の形態では、エントロピースライスのサイズが第1の所定のサイズ未満に制限されるが、同様に、エントロピースライスのサイズが第2の所定のサイズを超過しないように制限されてもよいことは理解されるであろう。本明細書に記述されている実施の形態は、本発明に係る例示的な実施の形態であり、当業者であれば、エントロピースライスのサイズを制限する、本発明に係る均等な実施の形態が存在することは理解できるであろう。
本発明のいくつかの実施の形態においては、新規のエントロピースライスの開始処理は、現スライスの終了処理、および、新規のエントロピースライスを現エントロピースライスとみなす処理を含んでいる。
本発明のいくつかの実施の形態においては、エントロピースライス内の複数のビット復号は、複数のビンデコーダを備えるエントロピーデコーダ内において並列化されており、復号時間を短縮してもよい。本発明の例示的な実施の形態は、図22に示された例示的なエントロピーデコーダ(entropy decoder)750との関係において理解される。エントロピーデコーダ750は、複数(3つ図示)のビンデコーダ(bin decoder)762、764、766を備えている。エントロピースライス内のビット752、および既に復号されたシンボル754は、エントロピーデコーダ750が利用可能である。コンテキスト適応ユニット(context-adaptation unit)760から生成されるコンテキスト状態(context state)758に基づいて、ビンデコーダ762、764、766のうち、いずれかを選択するビンデコーダセレクタ(bin-decoder selector)756は、ビット752を利用可能である。コンテキスト適応ユニット760は、コンテキスト適応ユニット760が利用可能なように予め復号されたシンボル754に基づいて、コンテキスト状態758を生成する。ビンデコーダセレクタ756は、コンテキスト状態758に基づいて、ビンデコーダ762、764、766のうち1つを割り当てる。復号されるビット752は、ビンデコーダセレクタ756により選択されたビンデコーダに渡される。ビンデコーダ762、764、766は復号されたビン768、770、772を生成する。復号されたビン768、770、772は、マルチプレクサ(multiplexer)774により多重化され、多重化されたビン776は、記号化器(symbolizer)778に送られる。記号化器778は、ビン776に対応するシンボル754を生成する。
本発明のいくつかの実施の形態においては、エントロピースライス内の複数のビット復号は、複数のコンテキスト適応ユニットを備えるエントロピーデコーダ内において並列化されており、復号時間を短縮する。本発明の例示的な実施の形態は、図23に示された例示的なエントロピーデコーダ800との関係において理解される。エントロピーデコーダ(entropy decoder)800は、複数(3つ図示)のコンテキスト適応ユニット(context-adaptation unit)814、816、818を備えている。エントロピースライス内のビット802、および既に復号されたシンボル810は、エントロピーデコーダ800が利用可能である。ビット802は、複数のコンテキスト適応ユニット814、816、818から、入力ビットの復号処理のための1つのコンテキスト適応ユニットを選択するコンテキスト適応ユニットセレクタ(context-adaptation unit selector)812が利用可能である。本発明のいくつかの実施の形態においては、コンテキスト適応ユニットセレクタ812は、N番目のビットを受信する毎に、N番目のコンテキスト適応ユニットを選択する。選択されたコンテキスト適応ユニットは、選択されたコンテキスト適応ユニットが利用可能な既に復号されたシンボル810に基づいて、コンテキスト状態820、822、824を生成する。状態セレクタ826は、適切なタイミングで、入力ビットに関連して生成されたコンテキスト状態を選択する。本発明のいくつかの実施の形態においては、状態セレクタ826は、コンテキスト適応ユニットセレクタ812と同様の手順に従って、N番目のビットを受信する毎に、N番目のコンテキスト適応ユニットを選択する。選択された状態828は、ビンデコーダ804が利用可能になる。ビンデコーダ804は、ビット802を復号し、復号されたビン806を記号化器808に送る。記号化器808は、復号されたビン806に対応するシンボル810を生成する。
本発明のいくつかの実施の形態においては、エントロピースライス内の複数のビット復号は、複数のコンテキスト適応ユニットと、複数のビンデコーダと、を備えるエントロピーデコーダ内において並列化されており、復号時間を短縮する。本発明の例示的な実施の形態は、図24に示された例示的なエントロピーデコーダ850との関係において理解される。エントロピーデコーダ(entropy decoder)850は、複数(3つ図示)のコンテキスト適応ユニット(context-adaptation unit)852、854、856、および複数(3つ図示)のビンデコーダ(bin decoder)858、860、862を備えている。エントロピースライス内のビット864、および既に復号されたシンボル866は、エントロピーデコーダ850が利用可能になっている。ビット864は、複数のコンテキスト適応ユニット852、854、856から、入力ビットの復号処理のための1つのコンテキスト適応ユニットを選択するコンテキスト適応ユニットセレクタ(context-adaptation unit selector)868が利用可能になっている。本発明のいくつかの実施の形態においては、コンテキスト適応ユニットセレクタ868は、N番目のビットを受信する毎に、N番目のコンテキスト適応ユニットを選択する。選択されたコンテキスト適応ユニットは、選択されたコンテキスト適応ユニットが利用可能な既に復号されたシンボル866に基づいて、コンテキスト状態870、872、874を生成する。状態セレクタ876は、適切なタイミングで、入力ビットに関連して生成されたコンテキスト状態を選択する。本発明のいくつかの実施の形態においては、状態セレクタ876は、コンテキスト適応ユニットセレクタ868と同様の手順に従って、N番目のビットを受信する毎に、N番目のコンテキスト適応ユニットを選択する。選択された状態878は、ビンデコーダセレクタ(bin-decoder selector)880が利用可能になっている。ビンデコーダセレクタ880は、選択されたコンテキスト状態878に基づいて、ビンデコーダ858、860、862のうち1つを選択する。ビンデコーダセレクタ880は、コンテキスト状態878に基づいて、ビンデコーダ858、860、862のうち1つを割り当てる。復号されるビット864は、ビンデコーダセレクタ880により選択されたビンデコーダに渡される。ビンデコーダ858、860、862は、復号されたビン882、884、886を生成する。復号されたビン882、884、886は、マルチプレクサ888により多重化され、多重化されたビン890は、記号化器892へ送られる。記号化器892は、復号されたビン890に対応するシンボル866を生成する。
本発明のいくつかの実施の形態においては、エンコーダは、再構成スライスを複数のエントロピースライスに分割する。該エントロピースライス内のマクロブロック群は、切れ目なく連続している。図25は、クロスハッチ952で表されたエントロピースライス0、白色954で表されたエントロピースライス1、およびドットハッチ956で表されたエントロピースライス2、の3つのエントロピースライスに分割された例示的な再構成スライス950を示す。この例示的な再構成スライス950においては、エントロピースライス952、954、956の各エントロピースライス内のマクロブロック群は切れ目なく連続している。
本発明の他の実施の形態においては、エンコーダは、再構成スライスを複数のエントロピースライスに分割する。該エントロピースライス内のマクロブロック群は、切れ目なく連続してはいない。図26は、クロスハッチ962で表されたエントロピースライス0、白色964で表されたエントロピースライス1、およびドットハッチ966で表されたエントロピースライス2、の3つのエントロピースライスに分割された例示的な再構成スライス960を示す。この例示的な再構成スライス960においては、エントロピースライス962、964、966内のマクロブロック群は切れ目なく連続してはいない。エントロピースライス内のマクロブロック群が切れ目なく連続していない再構成スライスの分割は、インターリーブ分割(interleaved partition)と呼称してもよい。
本発明のいくつかの実施の形態においては、エントロピースライス内の現ブロックのエントロピー復号の間、デコーダは、現ブロックのエントロピー復号に関係する情報を予測するために同じエントロピースライスの他のブロックを用いる。本発明のいくつかの実施の形態においては、再構成スライス内の現ブロックの再構成の間、同じ再構成スライス内の他のブロックは現ブロックの再構成に関係する情報を予測するために用いられる。
再構成スライスがインターリーブ分割を含んでいる本発明のいくつかの実施の形態においては、エントロピースライス内の現ブロックの復号において用いられるエントロピースライス内の近傍ブロック群は、直接的に隣接していない(すなわち、切れ目なく連続していない)。図27は、図26に示された例示的なインターリーブ分割の状態を図示したものである図27において、エントロピースライス964内の現ブロック970に関して、現ブロック970のエントロピー復号に用いられる、エントロピースライス964内の左隣のブロック972は切れ目なく隣接している。現ブロック970のエントロピー復号に用いられる、同じエントロピースライス964内の上隣のブロック974は切れ目なく隣接してはいない。現ブロック970の再構成に関しては、再構成スライス960内の左隣のブロック972は切れ目なく隣接しており、再構成スライス960内の上隣のブロック976は切れ目なく隣接している。
再構成スライスがインターリリーブ分割を含んでいる本発明のいくつかの実施の形態においては、エントロピースライス内の現ブロックの復号において用いられる、エントロピースライス内の適切な近傍ブロックが存在しないことがある。図28は、図26に示された例示的なインターリーブ分割に関し、このような状況を図示したものである。
図28において、エントロピースライス964内の現ブロック980に関して、現ブロック980のエントロピー復号に用いられる、エントロピースライス964内の左隣のブロックが存在しない。現ブロック980のエントロピー復号に用いられる、同じエントロピースライス964内の上隣のブロック982は切れ目なく隣接してはいない。現ブロック980の再構成に関しては、再構成スライス960内の左隣のブロック984は切れ目なく隣接しており、再構成スライス960内の上隣のブロック986は切れ目なく隣接している。
本発明のいくつかの形態においては、デコーダは、エントロピースライスのロケーション(location)を識別するために、完全な入力ビットストリーム(incoming bitstream)を予め処理する。本発明のいくつかの実施の形態においては、デコーダは、再構成スライス内のエントロピースライスのロケーションを特定するために、再構成スライス全体に前処理を施す。いくつかの実施の形態においては、エントロピースライスのロケーションは、エントロピースライスヘッダのロケーションを特定することにより判定される。これらの実施の形態においては、デコーダは、ビットストリームにおけるビットを読み出し、既定のスタートコード値(start-code values)が識別される。
他の実施の形態においては、エントロピースライスヘッダは、入力ビットストリーム内の既定の位置にあるビット範囲に制約される。他の実施の形態においては、エントロピースライスヘッダは、入力ビットストリーム内の既定の位置にあるバイト範囲に制約される。これらの実施の形態においては、ビットアラインの場合であってもバイトアラインの場合であっても、デコーダは、エントロピースライスの位置を判定するために入力ビットストリームの非常に多くの部分に前処理を施す必要がない。
本発明のいくつかの実施の形態においては、エンコーダは、ビットストリームにおいて、エントロピースライスロケーション変数(entropy-slice-location parameter)とも呼ばれるエントロピースライスロケーション情報(entropy-slice-location information)を通知する。ここで、エントロピースライスロケーション情報は、エントロピースライスヘッダのロケーションを制限するものであり、例えば、オフセットおよび範囲の情報である。他の実施の形態においては、エントロピースライスロケーション情報は、ビットストリームにおいて通知されるのではなく、エントロピースライス変数(entropy-slice parameter)から決定される。ここで、エントロピースライス変数は、例えば、任意のエントロピースライスに許されるビンの固定数、任意のエントロピースライスに許されるビットの固定数、および他のエントロピースライス変数である。本発明のさらなる他の実施の形態においては、エントロピースライスロケーション情報は、他の標準の手段(normative means)により定義される。例えば、該情報は、プロファイル制約(profile constraint)、レベル制約(level constraint)、アプリケーション制約(application constraint)またはその他の制約において規定される。あるいは、該情報は、補足情報として通知されるか、または他の範囲外(out-of-bound)の手段によって通知される。
本発明のいくつかの実施の形態においては、エントロピースライスロケーション変数の値の1セットは、ビットストリーム内の全てのエントロピースライスのために用いられる。他の実施の形態においては、エントロピースライスロケーション変数の値は、シーケンスの一部により表されるピクセル群について定義される。他の実施の形態においては、エントロピースライスロケーション変数の値は、ビットストリーム内の各画像について定義され、対応する画像内の全てのエントロピースライスのために用いられる。他の実施の形態においては、エントロピースライスロケーション変数の値は、ビットストリーム内の各再構成スライスについて定義され、対応する再構成スライス内の全てのエントロピースライスのために用いられる。さらなる他の実施の形態においては、エントロピースライスロケーション変数の値の複数のセットは、デコーダによって用いられる。さらなる他の実施の形態においては、エントロピースライスロケーション変数の値は、エントロピースライス識別子(entropy-slice identifier)に割り当てられる。例えば、第1のエントロピースライスヘッダはエントロピースライスロケーション変数の値の第1のセットを用い、第2のエントロピースライスヘッダはエントロピースライスロケーション変数の値の第2のセットを用い、一般的には、第N番目のエントロピースライスヘッダはエントロピースライスロケーション変数の値の第N番目のセットを用いる。本発明のいくつかの実施の形態においては、エントロピースライス変数の値は、フレーム識別子(frame identifier)に割り当てられる。1つの例示的な実施の形態においては、第1の画像は、エントロピースライス変数の値の第1のセットを用い、第2の画像は、エントロピースライス変数の値の第2のセットを用い、一般的には、第N番目の画像は、エントロピースライス変数の値の第N番目のセットを用いる。他の例示的な実施の形態においては、第1の形式の画像は、エントロピースライスロケーション変数の値の第1のセットを用い、第2の形式の画像は、エントロピースライスロケーション変数の値の第2のセットを用いる。画像の例示的な形式は、イントラ画像、予測画像、およびその他の形式の画像である。
H.264/AVCコーデックを含む本発明のいくつかの実施の形態においては、エントロピースライスオフセット(entropy-slice offset)、およびエントロピースライス範囲(entropy-slice range)は、シーケンスパラメータセット(sequence parameter set)に“entropy_slice_offset”パラメータ、および、“entropy_slice_range”を追加することにより、シーケンスパラメータセットのローバイトシーケンスペイロード(RBSP:Raw Byte Sequence Payload)において通知される。表3は、本発明の実施の形態による、例示的なシーケンスパラメータセットのRBSPのシンタックスを示している。
H.264/AVCコーデックを含む本発明のいくつかの実施の形態においては、エントロピースライスオフセット、およびエントロピースライス範囲は、ピクチャパラメータセット(picture parameter set)に“entropy_slice_offset”パラメータ、および“entropy_slice_range”を追加することにより、ピクチャパラメータセットのローバイトシーケンスペイロード(RBSP:Raw Byte Sequence Payload)において通知される。表4は、本発明の実施の形態による、例示的なピクチャパラメータセットのRBSPのシンタックスを示している。
H.264/AVCコーデックを含む本発明のいくつかの実施の形態においては、エントロピースライスオフセット、およびエントロピースライス範囲は、スライスヘッダ(slice header)に“entropy_slice_offset”パラメータ、および“entropy_slice_range”を追加することにより、スライスヘッダにおいて通知される。表5は、本発明の実施の形態による、例示的なスライスヘッダのシンタックスを示している。
本発明のいくつかの実施の形態においては、例えば、表6に示されるような表の通りに、エントロピースライスオフセット、およびエントロピースライス範囲が、エンコーダの各レベルのコンフォーマンスポイントについて示される。表6において、Om.nは、レベルm.nのコンフォーマンスポイントのエントロピースライスオフセットを表しており、Rm.nは、m.nのコンフォーマンスポイントのエントロピースライス範囲を表している。
いくつかの実施の形態において、エントロピースライスロケーション情報は、エントロピースライスヘッダのロケーションを制約する情報を含んでいる。1つの例においては、エントロピースライスロケーション情報は、期間オフセットまたは基本オフセット(period or base offset)としても参照されるオフセットの値(offset value)、および、期間の偏差(deviation)またはオフセットとしても参照される範囲の値(range value)を含んでいる。エントロピースライスヘッダロケーションは、オフセット値および範囲値に基づいて制約される。
本発明のいくつかの実施の形態においては、オフセット値および範囲値は、明示的に定義される。本発明の他の実施の形態においては、オフセット値および範囲値は、最小オフセット値および最大オフセット値として、非明示的に(implicitly)定義される。本発明のさらなる他の実施の形態においては、オフセット値および範囲値は、最大オフセット値および、最大オフセット値と最小オフセット値との差分(difference)として非明示的に定義される。本発明のさらなる他の実施の形態においては、オフセット値および範囲値は、最小オフセット値および、最小オフセット値と最大オフセット値との差分として非明示的に定義される。他の実施の形態においては、オフセット値および範囲値は、第3の値および、第3の値と、最大オフセット値と、最小オフセット値との差分として非明示的に定義される。さらなる他の実施の形態においては、オフセット値および範囲値は、対応する最小ビット値および最大ビット値(minimum and maximum bit-values)を制約するルックアップテーブル(a look-up table)へのインデックスによって定義される。いくつかの実施の形態においては、オフセット値および範囲値は、ルックアップツリー(look-up tree)に基づくオフセットを用いることにより定義される。いくつかの実施の形態においては、オフセット値および範囲値は、費用最小化インデックス法(cost-minimizing indexing)を用いることにより定義される。当業者であれば、範囲値およびオフセット値を非明示的に定義し、エンコーダおよびデコーダが既定のオフセット値および範囲値と同じ値により動作することを保障するための方法が対象分野において多数知られていることがわかるであろう。
本発明のいくつかの実施の形態においては、範囲値の通知は任意である。いくつかの実施の形態においては、範囲値が通知されない場合、該範囲値は、既定の値に設定される。例示的な実施の形態においては、該既定の値は、0である。他の例示的な実施の形態においては、該既定の値は、0でない整数値である。
図29に関連して記述される例示的な実施の形態においては、再構成スライス内のスライス番号Nのエントロピースライスに関連したエントロピースライスヘッダは、再構成スライスヘッダの先頭からNk−pビット目以降から、または、再構成スライスヘッダ内の他の固定ロケーションの後ろから開始するように制約される。ここで、kはオフセット値を表し、pは範囲を表す。Nk−pビット後のロケーションは測定され、参照ロケーション(reference location)として参照される。他の実施の形態においては、参照ロケーションは、特定の再構成スライスに対応しておらず、ビットストリーム内における、全てのエントロピースライスに対して同一の固定ロケーションである。他の実施の形態においては、エントロピースライスヘッダは、バイトアラインされて(byte aligned)おり、制約は、バイト数に関連する。図29に関連して示された例は、ビットに関して記述されているが、当業者は他のバイトアラインの実施の形態を理解するであろう。
図29は、例示的なビットストリームの例示的な一部(portion)1000の図の説明である。ビットストリームの一部1000は、黒色で塗りつぶされた長方形で表された1つの再構成スライスヘッダ1002と、灰色で塗りつぶされた長方形で表された4つのエントロピースライスヘッダと、白と黒との薄い縞で表されたエントロピースライスの残りの部分とを含んでいる。第0番目のエントロピースライス1003に対応するエントロピースライスヘッダは、第0番目のエントロピースライスヘッダとして参照され、第1番目のエントロピースライス1004に対応するエントロピースライスヘッダは、第1番目のエントロピースライスヘッダとして参照され、第2番目のエントロピースライス1005に対応するエントロピースライスヘッダは、第2番目のエントロピースライスヘッダとして参照され、第3番目のエントロピースライス1006に対応するエントロピースライスヘッダは、第3番目のエントロピースライスヘッダとして参照される。この例において、参照ロケーションは、再構成スライスヘッダ1002の先頭1001である。本発明のいくつかの実施の形態においては、第0番目のエントロピースライス1003に対応するエントロピースライスヘッダは、再構成スライスヘッダ1002の直後に位置するように制約される。本発明のいくつかの実施の形態においては、第0番目のエントロピースライスに対応するエントロピースライスヘッダは、再構成スライスヘッダの一部である。すなわち、再構成スライスヘッダは、第0番目のエントロピースライスに対応するエントロピースライスヘッダとしての役目を果たすこともできる。これらの実施の形態においては、再構成スライスヘッダは、1つの再構成部(reconstruction portion)と、1つのエントロピー部(entropy portion)とを含んでいる。図29に示された本発明のいくつかの実施の形態においては、第1のエントロピースライスヘッダ1004は、参照ロケーション1001からk−pビット目1007の後に位置するように制約され、第2のエントロピースライスヘッダ1005は、参照ロケーション1001から2k−pビット目1008の後に位置するように制約され、第2のエントロピースライスヘッダ1006は、参照ロケーション1001から3k−pビット目1009の後に位置するように制約される。これらの実施の形態においては、エントロピースライスNの復号処理を割り当てられたエントロピーデコーダは、参照ロケーション1001からNk−pビット目の後に位置する対応するエントロピースライスヘッダのサーチを開始する。
本発明の他の実施の形態においては、エントロピースライスロケーション情報は、範囲パラメータ(range parameter)を含んでいない。これらの実施の形態においては、エントロピーデコーダは、参照ロケーションからNkビット目の後にあるN番目のエントロピースライスヘッダのサーチを開始する。
図30に関連して記述される他の例示的な実施の形態においては、再構成スライス内のスライス番号Nのエントロピースライスに関連したエントロピースライスヘッダは、再構成スライスヘッダの先頭からNk−pビット目以降から、または、再構成スライスヘッダ内の他の固定ロケーションの後ろから開始するように制約される。ここで、kはオフセット値を表し、pは範囲を表す。エントロピースライスヘッダはさらに、制約された開始ロケーション(constrained starting location)から2pのビット範囲内に存在するように制約される。Nk−pビット後のロケーションは測定され、参照ロケーション(reference location)として参照される。他の実施の形態においては、参照ロケーションは、特定の再構成スライスに対応しておらず、ビットストリーム内の全てのエントロピースライスに対して同一の固定ロケーションである。他の実施の形態においては、エントロピースライスヘッダは、バイトアラインされ(byte aligned)おり、制約は、バイト数に関連する。図30に関連して示された例は、ビットに関して記述されているが、当業者は他のバイトアラインの実施の形態を理解するであろう。
図30は、例示的なビットストリームの例示的な一部1020の図の説明である。ビットストリームの一部1020は、黒色で塗りつぶされた長方形で表された1つの再構成スライスヘッダ1022と、灰色で塗りつぶされた長方形で表された4つのエントロピースライスヘッダと、白と黒との薄い縞で表されたエントロピースライスの残りの部分とを含んでいる。第0番目のエントロピースライス1023に対応するエントロピースライスヘッダは、第0番目のエントロピースライスヘッダとして参照され、第1番目のエントロピースライス1024に対応するエントロピースライスヘッダは、第1番目のエントロピースライスヘッダとして参照され、第2番目のエントロピースライス1025に対応するエントロピースライスヘッダは、第2番目のエントロピースライスヘッダとして参照され、第3番目のエントロピースライス1026に対応するエントロピースライスヘッダは、第3番目のエントロピースライスヘッダとして参照される。この例において、参照ロケーションは、再構成スライスヘッダ1022の先頭1021である。本発明のいくつかの実施の形態においては、第0番目のエントロピースライス1023に対応するエントロピースライスヘッダは、再構成スライスヘッダ1022の直後に位置するように制約される。本発明のいくつかの実施の形態においては、第0番目のエントロピースライスに対応するエントロピースライスヘッダは、再構成スライスヘッダの一部である。これらの実施の形態においては、再構成スライスヘッダは、1つの再構成部(reconstruction portion)と、1つのエントロピー部(entropy portion)とを含んでいる。図30に示された本発明のいくつかの実施の形態においては、第1のエントロピースライスヘッダ1024は、参照ロケーション1021から数えてk−pビット目1027からの2pビット1031の範囲内に位置するように制約され、第2のエントロピースライスヘッダ1025は、参照ロケーション1021から数えて2k−pビット目1028からの2pビット1032の範囲内に位置するように制約され、第2のエントロピースライスヘッダ1026は、参照ロケーション1021から数えて3k−pビット目1029からの2pビット1033の範囲内に位置するように制約される。これらの実施の形態においては、エントロピースライスNの復号処理を割り当てられたエントロピーデコーダは、参照ロケーション1001からNk−pビット目より後ろにある対応するエントロピースライスヘッダのサーチを開始する。エントロピーデコーダは、エントロピースライスヘッダを特定するか、または、2pビット分をサーチした後にサーチを終了する。
本発明のいくつかの実施の形態は、図31との関係において記述される。これらの実施の形態においては、エントロピーデコーダは、エントロピー復号するための現再構成ブロックにおけるエントロピースライスの番号を示すエントロピースライスナンバーを受信する(ステップ1050)。エントロピーデコーダは、エントロピースライスロケーション情報を特定する(ステップ1052)。本発明のいくつかの実施の形態においては、エントロピースライスロケーションパラメータとしても参照されるエントロピースライスロケーション情報は、ビットストリームにおいて通知される。デコーダは、ビットストリームの分析により、エントロピースライス情報を特定する(ステップ1052)。他の実施の形態においては、エントロピースライスロケーション情報は、ビットストリームにおいて通知されないが、エントロピースライスパラメータから、デコーダにより特定される(ステップ1052)。エントロピースライスパラメータは、例えば、任意のエントロピースライスに許されるビンの固定数、任意のエントロピースライスに許されるビットの固定数、および、その他のエントロピースライスパラメータである。本発明のさらなる他の実施の形態においては、エントロピースライスロケーション情報は、他の標準の手段(normative means)により定義され、特定される(ステップ1052)。例えば、該情報は、プロファイル制約(profile constraint)、レベル制約(level constraint)、アプリケーション制約(application constraint)、または他の制約において規定される。あるいは、該情報は、補足情報として通知されるか、または他の範囲外(out-of-bound)の手段によって通知される。
エントロピーデコーダは、ビットストリームにおいて、エントロピースライスヘッダがエンコーダにより書き込まれてから制限される前にエントロピースライスサーチ開始ロケーションを計算する(ステップ1054)。本発明のいくつかの実施の形態においては、エントロピースライスサーチ開始ロケーションは、エントロピースライスロケーション情報により決定される、オフセット値および範囲値を用いることにより計算される(ステップ1054)。本発明の他の実施の形態においては、エントロピースライスサーチ開始ロケーションは、エントロピースライスロケーション情報により決定されるオフセット値を用いることにより計算される(ステップ1054)。エントロピーデコーダは、ビットストリームにおいて、エントロピースライスサーチ開始ロケーションに進み(ステップ1056)、ビットストリームを分析することでエントロピースライスヘッダを探す(ステップ1058)。本発明のいくつかの実施の形態においては、エントロピースライスヘッダは、スタートコード(start code)により示される。
本発明のいくつかの実施の形態は、図32との関係において記述される。これらの実施の形態においては、エントロピーデコーダは、現再構成ブロックにおけるエントロピー復号すべきエントロピースライスの番号を示すエントロピースライスナンバーを受信する(ステップ1070)。エントロピーデコーダは、エントロピースライスロケーション情報を特定する(ステップ1072)。本発明のいくつかの実施の形態においては、エントロピースライスロケーションパラメータとしても参照されるエントロピースライスロケーション情報は、ビットストリームにおいて通知される。デコーダは、ビットストリームの分析により、エントロピースライス情報を特定する(ステップ1072)。他の実施の形態においては、エントロピースライスロケーション情報は、ビットストリームにおいて通知されないが、エントロピースライスパラメータから、デコーダにより特定される(ステップ1072)。エントロピースライスパラメータは、例えば、任意のエントロピースライスに許されるビンの固定数、任意のエントロピースライスに許されるビットの固定数、および、その他のエントロピースライスパラメータである。本発明のさらなる他の実施の形態においては、エントロピースライスロケーション情報は、他の標準の手段(normative means)により定義され、特定される(ステップ1072)。例えば、該情報は、プロファイル制約(profile constraint)、レベル制約(level constraint)、アプリケーション制約(application constraint)、または他の制約において規定される。あるいは、該情報は、補足情報として通知されるか、または他の範囲外(out-of-bound)の手段によって通知される。
エントロピーデコーダは、ビットストリームにおいて、エントロピースライスヘッダがエンコーダにより書き込まれてから制限される前にエントロピースライスサーチ開始ロケーションを計算する(ステップ1074)。本発明のいくつかの実施の形態においては、エントロピースライスサーチ開始ロケーションは、エントロピースライスロケーション情報により決定される、オフセット値および範囲値を用いることにより計算される(ステップ1074)。本発明の他の実施の形態においては、エントロピースライスサーチ開始ロケーションは、エントロピースライスロケーション情報により決定されるオフセット値を用いることにより計算される(ステップ1074)。エントロピーデコーダは、ビットストリームにおいて、エントロピースライスサーチ開始ロケーションに進み(ステップ1076)、ビットストリームを分析することでエントロピースライスヘッダを探す(ステップ1078)。本発明のいくつかの実施の形態においては、エントロピースライスヘッダは、スタートコード(start code)により示される。
ビットストリームにおけるビットは、上記エントロピースライスサーチ開始ロケーションから始まるシーケンスにおいて分析される(ステップ1078)。ステップ1080において、エントロピースライスヘッダが特定される場合(分岐1081)、エントロピーデコーダは、特定されたエントロピースライスヘッダに対応するエントロピースライスをエントロピー復号する(ステップ1082)。ステップ1080において、エントロピースライスヘッダが特定されない場合(分岐1083)、エントロピーデコーダは、サーチを終了する(ステップ1084)。いくつかの実施の形態においては、エントロピースライスヘッダが1つも特定されない場合(ステップ1083)、エントロピーデコーダはエラーを示す。
本発明のいくつかの実施の形態は、図33との関係において記述される。これらの実施の形態においては、エントロピーデコーダは、現再構成ブロックにおけるエントロピー復号すべきエントロピースライスの番号を示すエントロピースライスナンバーを受信する(ステップ1100)。エントロピーデコーダは、エントロピースライスロケーション情報を特定する(ステップ1102)。本発明のいくつかの実施の形態においては、エントロピースライスロケーションパラメータとしても参照されるエントロピースライスロケーション情報は、ビットストリームにおいて通知される。デコーダは、ビットストリームの分析により、エントロピースライス情報を特定する(ステップ1102)。他の実施の形態においては、エントロピースライスロケーション情報は、ビットストリームにおいて通知されないが、エントロピースライスパラメータから、デコーダにより特定される(ステップ1102)。エントロピースライスパラメータは、例えば、任意のエントロピースライスに許されるビンの固定数、任意のエントロピースライスに許されるビットの固定数、および、その他のエントロピースライスパラメータである。本発明のさらなる他の実施の形態においては、エントロピースライスロケーション情報は、他の標準の手段(normative means)により定義され、特定される(ステップ1102)。例えば、該情報は、プロファイル制約(profile constraint)、レベル制約(level constraint)、アプリケーション制約(application constraint)、またはその他の制約において規定される。あるいは、該情報は、補足情報として通知されるか、または他の範囲外(out-of-bound)の手段によって通知される。
エントロピーデコーダは、ビットストリームにおいて、エントロピースライスヘッダがエンコーダにより書き込まれてから制限される前にエントロピースライスサーチ開始ロケーションを計算する(ステップ1104)。本発明のいくつかの実施の形態においては、エントロピースライスサーチ開始ロケーションは、エントロピースライスロケーション情報により決定される、オフセット値および範囲値を用いることにより計算される(ステップ1104)。本発明の他の実施の形態においては、エントロピースライスサーチ開始ロケーションは、エントロピースライスロケーション情報により決定されるオフセット値を用いることにより計算される(ステップ1104)。エントロピーデコーダは、ビットストリームにおいて、エントロピースライスサーチ開始ロケーションに進み(ステップ1106)、ビットストリームを分析することでエントロピースライスヘッダを探す(ステップ1108)。本発明のいくつかの実施の形態においては、エントロピースライスヘッダは、スタートコード(start code)により示される。
ビットストリームにおけるビットは、上記エントロピースライスサーチ開始ロケーションから始まるシーケンスにおいて分析される(ステップ1108)。ステップ1110において、エントロピースライスヘッダが特定される場合(分岐1111)、エントロピーデコーダは、特定されたエントロピースライスヘッダに対応するエントロピースライスをエントロピー復号する(ステップ1112)。ステップ1110において、エントロピースライスヘッダが特定されない場合(分岐1113)であって、ステップ1114においてサーチ基準を満足した場合(分岐1115)、エントロピーデコーダは終了する(ステップ1116)。サーチ基準は、エントロピースライスヘッダの先頭にサーチすべき妥当なロケーション(valid locations)が残っているか否かを判定するための基準となる。図示しないいくつかの実施の形態においては、サーチ基準は、妥当なロケーションがまだ分析されていない場合に満足される。他の実施の形態においては、サーチ基準は、まだ分析(分岐1115)されていない妥当なロケーションが存在しない場合に満足され、サーチは終了する(ステップ1116)。いくつかの実施の形態においては、エントロピースライスヘッダが1つも特定されない場合(ステップ1115)、エントロピーデコーダはエラーを示す。ステップ1114において、サーチ基準を満足しない場合(分岐1117)、ビットストリームにおいて次のサーチロケーションに進んだ(ステップ1118)後に、ビットストリームの分析(ステップ1108)は継続する。
本発明のいくつかの実施の形態においては、サーチ基準は、範囲値に関係している。例えば、エントロピースライスヘッダの開始のロケーションは、Nkを中心とした2pビットの範囲に制約される。ここで、kはオフセット値を表し、pは範囲値を表し、Nは再構成スライス内のエントロピースライスナンバーを表す。これらの実施の形態においては、エントロピースライスNに関連するエントロピースライスヘッダの開始のロケーションは、Nk−pからNk+pまでの範囲に制約される。いくつかの実施の形態においては、サーチ基準は、エントロピースライスのサイズに関する1または複数の制約に関係する。いくつかの実施の形態においては、サーチ基準は複数の制約の組み合わせに関係する。
本発明のいくつかの実施の形態においては、エンコーダは、次のエントロピースライスヘッダに関する制約条件を満たすために、エントロピースライスにパディング処理(pad)を施す。
本発明のいくつかの実施の形態においては、エンコーダは、次のエントロピースライスヘッダのロケーションに関する制約条件を満たすために、他のエントロピースライスサイズの制約条件(entropy-slice size restrictions)が満たされる前にエントロピースライスを終了する。
本発明のいくつかの実施の形態においては、再構成スライス内の最後のエントロピースライスが、次のエントロピースライスヘッダのロケーションに関する制約を満たすために必要なビット数(または、バイトアラインの実施の形態においてはバイト数)を含んでいない場合、エンコーダは、次のエントロピースライスヘッダのロケーションに関する制約条件を満たすために、再構成スライス内の最後のエントロピースライスにパディング処理を施す。
他の実施の形態においては、エントロピースライスヘッダは、ラストエントロピースライスフラグ(last-entropy-slice flag)を含んでいる。ラストエントロピースライスフラグの値は、エントロピースライスヘッダに対応するエントロピースライスが、再構成スライスにおける最後のエントロピースライスであるか否かを示している。いくつかの実施の形態においては、0のラストエントロピースライスフラグ値は、最後のエントロピースライスに対応する。他の実施の形態においては、1のラストエントロピースライスフラグ値が、最後のエントロピースライスに対応する。いくつかの実施の形態においては、エントロピースライスが再構成スライスにおける最後のエントロピースライスであることをラストエントロピースライスフラグの値が示している場合、続くエントロピースライスヘッダは、パディング処理が行われていない現エントロピースライスのすぐ後に位置される。
表7は、“next_entropy_slice_flag”として参照されるラストエントロピースライスフラグを通知するための例示的なシンタックスおよびセマンティックスを示している。表7に示された例示的なシンタックスおよびセマンティックスを含む例示的な実施の形態においては、“next_entropy_slice_flag”フラグは、現再構成スライスに対する追加のエントロピースライスが存在するか否かを示している。現再構成スライスに対する追加のエントロピースライスが存在しないことを“next_entropy_slice_flag”フラグが示している場合、ビットストリームにおける次のエントロピースライスヘッダのロケーションは、エントロピースライスロケーションパラメータにより制約されない。
本発明のいくつかの実施の形態においては、エントロピースライスヘッダのロケーションは、エントロピースライスヘッダロケーションを指し示すルートノード(root node)を含むツリー形式にまとめられる。いくつかの実施の形態においては、ルートノードによって指し示されたエントロピースライスヘッダロケーションは、相対値(relative)である。他の実施の形態においては、ルートノードによって指し示されたエントロピースライスヘッダロケーションは、絶対値(absolute)である。ツリーの残りのノードは、親ノードに対するオフセット距離(offset distance)を含んでいる。ツリーは設計制約(design constraint)に従って、設計される。設計制約は、例えば、エントロピースライスヘッダロケーションを特定する平均時間を短縮するための制約、エントロピースライスヘッダロケーションを特定するために要する最長の時間を抑制するための制約、エントロピースライスの復号の好ましい順序を通知するための制約、ツリーの記憶コスト(ストレージコスト、storage cost)を最小化するための制約、および他の設計制約である。いくつかの実施の形態においては、ツリーにおける各ノードの子ノードの数は、エントロピースライスヘッダロケーションを特定する上で望ましい並列レベルに基づいて制御される。
本発明のいくつかの実施の形態においては、コンテキストモデルリセット条件(context-model-reset condition)を満たした時は必ず、エントロピースライス内のコンテキストモデルはリセットされる。これらの実施の形態のいくつかにおいては、コンテキストモデルのリセット後の値は、エントロピースライス内の近傍の基本ユニットのコンテキストモデルに基づく。近傍の基本ユニットが該エントロピースライス内に存在しない場合、デフォルト値が用いられる。他の実施の形態においては、コンテキストモデルはデフォルト値にリセットされる。さらなる他の実施の形態においては、コンテキストモデルは、識別子がビットストリーム内で通知されるコンテキストモデルに基づいてリセットされる。上記識別子は、複数の既定のコンテキストモデルのうちのいずれかを示している。既定のコンテキストモデルは、ビットストリームにおける1または複数のパラメータに依存する。例示的な実施の形態においては、コンテキストモデルは、複数の既定のコンテキストモデルのいずれかを示す、ビットストリーム内の通知された“cabac_init_idc”の値に基づいてリセットされる。
いくつかの実施の形態においては、コンテキストテーブルは複数のコンテキストモデルの初期化のために用いられる。コンテキストテーブルは、コンテキストモデルのセットを参照する。いくつかの実施の形態においては、コンテキストテーブルにおけるコンテキストモデルのセットは、ビットストリームにおける1または複数のパラメータに基づく適応(adaptation)を受ける。上記のパラメータは、例えば、量子化パラメータ(quantization parameter)、スライスタイプパラメータ(slice type parameter)、または、その他のパラメータである。
図34に示された1つの例示的な実施の形態においては、エントロピースライス内のコンテキストモデルは、エントロピースライス内の先頭マクロブロックにおいてリセットされるのに加え、現マクロブロックが行の最初のマクロブロックである場合にもリセットされる。図34は、3つのエントロピースライスに分割された、48個のマクロブロック1208〜1255を含む例示的な再構成スライス1200を示している。3つのエントロピースライスは、クロスハッチで示されているエントロピースライス“0”1202、白色で示されているエントロピースライス“1”1204、および、ドットハッチで示されているエントロピースライス“2”1206である。エントロピースライス“0”1202は、15個のマクロブロック1208〜1222を含んでいる。エントロピースライス“1”1204は、17個のマクロブロック1223〜1239を含んでおり、エントロピースライス“2”1206は、16個のマクロブロック1240〜1255を含んでいる。コンテキストモデルがリセットされるマクロブロックは、太い黒色のエッジ1260〜1266で示されており、各エントロピースライスの先頭のマクロブロック1208、1223、1240、および、各行の最初のマクロブロック1216、1224、1232、1240、1248である。
基本ユニット、例えば、エントロピースライスの先頭のマクロブロックは、スライス先頭基本ユニット(slice-start elementary unit)として呼称される。例えば、図34の例示的な再構成スライス1200におけるエントロピースライス1202、104、1206に対応するスライス開始基本ユニットは、それぞれ、1208、1223、および、1240である。エントロピースライスの行における最初の基本ユニットは、行先頭基本ユニット(row-start elementary unit)と呼称される。行先頭基本ユニットは、例えば、図34におけるマクロブロック1208、1216、1224、1232、1240、および1248である。
いくつかの実施の形態においては、コンテキストモデルは、近傍マクロブロックがエントロピースライス内に存在する場合は、近傍マクロブロックのコンテキストモデルに基づいてリセットされ、近傍マクロブロックがエントロピースライス内に存在しない場合には、デフォルト値に基づいてリセットされる。例えば、コンテキストモデルは、現マクロブロックの上隣のマクロブロックが同一のエントロピースライス内に存在する場合、現マクロブロックの上隣のマクロブロックのコンテキストモデルに基づいてリセットされるが、現マクロブロックの上隣のマクロブロックが同一のエントロピースライス内に存在しない場合、デフォルト値に設定される。
他の例示的な実施の形態においては、エントロピースライス内のコンテキストモデルは、現基本ユニットが行の最初の基本ユニットである場合、リセットされる。他の実施の形態においては、コンテキストモデルリセット条件は、他の基準、例えば、エントロピースライス内で処理されるビンの数、スライス内で処理されるビットの数、現基本ユニットの空間的なロケーション、および、その他の基準に基づく。
本発明のいくつかの実施の形態においては、コンテキストモデルリセットフラグ(context-model-reset flag)は、コンテキストモデルリセット条件を満たした時に必ず、エントロピースライス内のコンテキストモデルがリセットされるか否かを示すために用いられる。いくつかの実施の形態においては、コンテキストモデルリセットフラグは、エントロピースライスヘッダ内に存在する。他の実施の形態においては、コンテキストモデルリセットフラグは、再構成スライスヘッダ内に存在する。いくつかの実施の形態においては、コンテキストモデルリセットフラグは、二進値のフラグであり、コンテキストモデルリセット条件は、デフォルト条件(default condition)である。他の実施の形態においては、コンテキストモデルリセットフラグは、コンテキストモデルリセット条件をさらに示す多値のフラグである。
コンテキスト適応符号化(context-adaptive coding)、例えば、CABAC符号化、CAV2V符号化、および、他のコンテキスト適応符号化を含む1つの例示的な実施の形態においては、“lcu_row_cabac_init_flag”フラグは、エントロピー復号が最大符号化ユニット(LCU:largest coding unit)行の先頭において初期化されるか否かを示している。いくつかの実施の形態においては、LCUは、H.264において用いられるマクロブロックの概念をHigh Efficiency Video Coding(HEVC)のために一般化したものであり、画像は、LCUのシーケンスで構成される複数のスライスに分割される。他の実施の形態においては、LCUは、単一の伝送されるモード値(transmitted mode value)で表される、複数の画素ロケーションからなる最大ブロックである。他の実施の形態においては、LCUは、単一の伝送される予測モード値(transmitted prediction mode value)で表される複数の画素ロケーションからなる最大ブロックである。本発明のいくつかの実施の形態においては、“1”という“lcu_row_cabac_init_flag”フラグの値は、エントロピー符号化コンテキスト(entropy coding context)をリセットすることを示す。エントロピー符号化コンテキストは、エントロピーコーダに関連するすべてのコンテキストモデルのセットを表す。本発明のいくつかの実施の形態においては、“1”という “lcu_row_cabac_init_flag”フラグの値は、エントロピー符号化コンテキストをリセットし、適応スキャニング(adaptive scanning)をリセットすることを示す。適応スキャニングとは、既に伝送された変換係数(transform coefficient)の値に基づいて、コーデックが変換係数のスキャン順を適応させる処理を指す。参照によりその全体が本明細書に組み込まれる、JCTVC−B205_draft005における第7.6.1節は、近隣する有意係数(significant coefficients)に基づいて、2つの異なるスキャン順のうち適応スキャニングを選択する例が記載されている。1つの実施の形態においては、既定のスキャン順を選ぶことによって、各LCU行の始まりにおいて適応スキャニングがリセットされる。1つの実施の形態においては、スキャン順は、係数重要度マップ(coefficient significance map)を生成することにより決定され、既定の値より大きい係数重要度(coefficient significance values)の値に対応する変換係数の値は、既定の値以下の係数重要度の値に対応する変換係数の値に先んじて伝送される。1つの実施の形態においては、既定の値より大きい変換係数の値に対応する係数重要度の値は、次第に増加する。他の実施の形態においては、既定の値以下の変換係数の値に対応する係数重要度の値は、次第に減少する。適応スキャニング処理は、係数重要度マップを既定の値に設定することによりリセットされる。いくつかの実施の形態においては、フラグが送られない場合における“lcu_row_cabac_init_flag”フラグのデフォルト値は、は“0”である。“lcu_row_cabac_init_idc_flag”フラグは、cabac_init_idcの値が各LCU行の始まりにおいて伝送されるか否かを示している。いくつかの実施の形態においては、“lcu_row_cabac_init_idc_flag”フラグの値が“1”の場合に、cabac_init_idcの値は、各LCU行の先頭において伝送される。いくつかの実施の形態においては、フラグが送られない場合における“lcu_row_cabac_init_idc_flag”フラグのデフォルト値は“0”である。いくつかの実施の形態においては、“cabac_init_idc_present_flag”フラグは、LCUに関するcabac_init_idcの値が伝送されるか否かを示している。いくつかの実施の形態においては、LCUに関するcabac_init_idcの値が伝送されない場合に、エントロピー符号化コンテキストは、ビットストリームにおけるcabac_init_idcに関する以前の値を用いることによりリセットされる。本発明のいくつかの実施の形態においては、“lcu_row_cabac_init_flag”、および、“lcu_row_cabac_init_idc_flag”は、通常のスライスヘッダにおいて、例えば、“entropy_slice_flag”の値が“0”の場合に通知される。表8および表9は、これらの実施の形態のための例示的なシンタックスを示している。本発明のいくつかの実施の形態においては、“lcu_row_cabac_init_flag”、および、“lcu_row_cabac_init_idc_flag”は、エントロピースライスヘッダにおいて、例えば、“entropy_slice_flag”の値が“1”の場合に通知される。表8は、例示的なスライスヘッダのシンタックスを示し、表9は、例示的なスライスデータのシンタックス(coding_unit)を示す。
例えば、CABAC符号化、CAV2V符号化、および、その他のコンテキスト適応符号化といったコンテキスト適応符号化を含む1つの例示的な実施の形態においては、“mb_row_cabac_init_flag”フラグは、エントロピー復号が行の最初のマクロブロックにおいて初期化されるか否かを示している。本発明のいくつかの実施の形態においては、“1”という“mb_row_cabac_init_flag”フラグの値は、各マクロブロック行の始まりにおいてエントロピー符号化コンテキストがリセットされることを示している。本発明の他の実施の形態においては、“1”という“mb_row_cabac_init_flag”フラグの値は、各マクロブロック行の始まりにおいてエントロピー符号化コンテキストがリセットされ、適応スキャニングがリセットされることを示している。いくつかの実施の形態においては、フラグが送られない場合における“mb_row_cabac_init_flag”フラグのデフォルト値は“0”である。“mb_row_cabac_init_idc_flag”フラグは、cabac_init_idcの値が各マクロブロック行の始まりにおいて伝送されるか否かを示している。いくつかの実施の形態においては、“mb_row_cabac_init_idc_flag”の値が“1”の場合に、cabac_init_valuesの値は、各マクロブロック行の始まりにおいて伝送される。いくつかの実施の形態においては、フラグが送られない場合における“mb_row_cabac_init_idc_flag”フラグのデフォルト値は“0”である。いくつかの実施の形態においては、“cabac_init_idc_present_flag”フラグは、マクロブロックに関するcabac_init_idcの値が伝送されるか否かを示している。いくつかの実施の形態においては、マクロブロックに関するcabac_init_idcの値が伝送されない場合に、エントロピー符号化コンテキストは、ビットストリームにおけるcabac_init_idcに関する以前の値を用いることによりリセットされる。本発明のいくつかの実施の形態においては、“mb_row_cabac_init_flag”フラグ、および、“mb_row_cabac_init_idc_flag”フラグは、通常のスライスヘッダにおいて、例えば、“entropy_slice_flag”の値が“0”の場合に通知される。本発明のいくつかの実施の形態においては、“mb_row_cabac_init_flag”フラグ、および、“mb_row_cabac_init_idc_flag”フラグは、エントロピースライスヘッダにおいて、例えば、“entropy_slice_flag”の値が“1”の場合に通知される。表10および表11は、これらの実施の形態のための例示的なシンタックスを示している。表10は、例示的なスライスヘッダのシンタックスを示し、表11は、例示的なスライスデータのシンタックス(coding_unit)を示す。
本発明のいくつかの実施の形態においては、ビットストリームにおけるエントロピースライスのロケーションは、ビットストリームにおいて通知される。いくつかの実施の形態においては、ビットストリームにおけるエントロピースライスのロケーションがビットストリームにおいて通知されるか否かを示すためにフラグが用いられる。いくつかの例示的な実施の形態は、“真”の場合に、ビットストリームにおけるエントロピースライスのロケーションがビットストリームにおいて通知されることを示す“entropy_slice_locations_flag”を含んでいる。いくつかの実施の形態においては、ロケーションデータ(location data)は、異なる方式で復号される。いくつかの実施の形態においては、ロケーションデータは、各再構成スライスにおいて送られる。他の実施の形態においては、ロケーションデータは、画像ごとに1度送られる。
本発明のいくつかの実施の形態においては、ビットストリームにおけるLCU行のロケーションは、ビットストリームにおいて通知される。いくつかの実施の形態においては、ビットストリームにおける各行の最初のLCUのロケーションがビットストリームにおいて通知されるか否かを示すためにフラグが用いられる。いくつかの例示的な実施の形態は、“真”の場合に、ビットストリームにおける各行の最初のLCUのロケーションがビットストリームにおいて通知されることを示す“lcu_row_locations_flag”を含んでいる。いくつかの実施の形態においては、ロケーションデータは、異なる方式で復号される。いくつかの実施の形態においては、ロケーションデータは、各エントロピースライスにおいて送られる。他の実施の形態においては、ロケーションデータは、再構成スライスごとに1度送られる。
表12は、ビットストリームにおけるLCU行およびエントロピースライスのロケーションを通知するための例示的なシンタックス表を示している。この例示的なシンタックスに対するセマンティックスは以下の通りである。
・“entropy_slice_locations_flag”は、エントロピースライスヘッダロケーションが伝送されるか否かを示している。“entropy_slice_locations_flag”の値が“1”に設定される場合に、エントロピースライスヘッダロケーションは伝送され、そうでない場合には伝送されない。“entropy_slice_locations_flag”のデフォルト値は“0”である。
・“num_of_entropy_slice_minus1”は、再構成スライス内のエントロピースライスの数より1小さい値を示す。
・“entropy_slice_offset[i]”は、i番目のエントロピースライスの前のエントロピースライスからのオフセットを示している。
・“lcu_row_locations_flag”は、LCU行のロケーション情報が伝送されるか否かを示している。“lcu_row_locations_flag”の値が“1”に設定される場合に、LCU行のロケーション情報は伝送され、そうでない場合には伝送されない。“lcu_row_locations_flag”のデフォルト値は“0”である。
・“num_of_lcu_rows_minus1”は、エントロピースライス内のLCU行の数より1小さい値を示す。
・“lcu_row_offset[i]”は、i番目のLCU行の前のLCU行からのオフセットを示している。
本発明のいくつかの実施の形態においては、表12における“lcu”は、“macroblock”に置き換えられる。例えば、表12における“first_lcu_in_slice”、“lcu_row_cabac_init_flag”、“lcu_row_cabac_init_idc_flag”、“lcu_row_locations_flag”、“lcu_row_locations()”、“num_of_lcu_rows_minus1”、および、“lcu_row_offset[i]”は、それぞれ、“first_mb_in_slice”、“mb_row_cabac_init_flag”、“mb_row_cabac_init_idc_flag”、“mb_row_locations_flag”、“mb_row_locations()”、“num_of_mb_rows_minus1”、および、“mb_row_offset[i]”に置き換えられる。
エンコーダからデコーダへの残差データの効率的な送信は、基本ユニット、例えば、マクロブロックに関して、変換係数の値がゼロの位置と非ゼロ変換係数のレベル値とを通知することによって達成される。多くの符号化システムは、基本ユニットに関して、残差データの終端に、変換係数の値がゼロの位置を割り当てるので、残りの変換係数の値がゼロであることを効率的に通知するために、最後の有意変換係数(significant transform coefficient)の後に“end-of-block”符号が使用可能である。
いくつかの符号化システムでは、既に処理された基本ユニットに関して、既に送信された残差データにおける変換係数の値がゼロの位置を追跡し、後続の残差データは、前の変換係数値がゼロの位置を“last”で送信できる。代わりに、いくつかの符号化システムでは、既に送信された残差データにおける非ゼロ変換係数の位置を追跡する。これは、符号化効率を改善するが、現在の残差データを復号するために前の残差データを完全に復号することが必要となる。その理由は、残差データの符号化が、変換係数識別子によって決定される確率モデルとも呼ばれるコンテキストモデルを用いて、変換係数識別子の送信は、残差データの終端で識別される位置の知識によってのみ決定できる、という事実によるものである。
例えば、図35に示されるように、現在の基本ユニットに関連するエントロピー符号化処理において、適応走査が、走査順S={coeff0,coeff10,coeff1,...}を作成した場合、変換係数coeff0を符号化するために、coeff0に対応するコンテキストctxt0を取得(fetch)する必要がある。ここで、coeffiは第i番目の変換係数である。次に変換係数coeff10を符号化するために、coeff10に対応するコンテキストctxt10を取得する必要がある。このように、前の基本ユニットが符号化されるまで取得できない走査順S={coeff0,coeff10,coeff1,...}を知る必要があるため、基本ユニットの符号化に関する時間的な順序付けが強制される。
本発明のいくつかの実施の形態では、エントロピースライスの並列符号化を可能にするために、各エントロピースライスのスライス開始基本ユニットにおいて、適応走査をエントロピースライスデフォルト走査順にリセットし、これにより、別個のエントロピースライスを並列に符号化することができる。
本発明のいくつかの実施の形態では、エントロピースライス内の各LCU行の行が開始される基本ユニットにおいて、適応走査算出の走査順を、行デフォルト走査順とも呼ばれる既知の走査順に設定する。
本発明の他の実施の形態では、ブロック変換係数走査順と、変換係数を符号化するために取得されるコンテキストでもある対応するコンテキストモデルとを分離し、並列符号化を可能とする。これらの実施の形態では、ビットストリーム中の第1の位置に配置された変換係数は、ビットストリーム中の他の変換係数に対応する位置に基づいて、コンテキスト取得順に対応して配置されるコンテキストに関連させる。これらの実施の形態では、F={ctxtA,ctxtB,ctxtC,...}と示されるコンテキスト取得順を予め規定する。ctxtは、変換ドメインにおける変換係数の位置に関連するのではなく、むしろビットストリーム中の変換係数の相対位置に関連するコンテキストを示す。このように、例示的な変換係数走査順S={coeff0,coeff10,coeff1,...}に対して、符号化処理は、ctxtAを用いてcoeff0、ctxtBを用いてcoeff10、ctxtCを用いてcoeff1などを符号化する。これらの実施の形態において、エントロピー符号化処理は、走査順とは独立に動作する。いくつかのエンコーダの実施の形態は、図36との関係において記述される。エンコーダは、符号化すべき次の変換係数を取得し(ステップ1280)、所定のコンテキストの取得リストから次のコンテキストを取得する(ステップ1282)。取得されたコンテキストを用いて、取得された変換係数をエントロピー符号化し(ステップ1284)、符号化すべき有意変換係数が残っているか否かについて判定を下す(ステップ1286)。符号化すべき有意変換係数が残っている場合(分岐1287)、次の有意変換係数を取得し(ステップ1280)、処理を継続する。もしなければ(分岐1289)、処理を終了する(ステップ1290)。いくつかのデコーダの実施の形態は、図37との関係において記述される。デコーダは、次のコンテキストを取得し(ステップ1300)、取得されたコンテキストを用いて、ビットストリームからの次の有意変換係数を復号する(ステップ1302)。復号された変換係数を蓄積し(ステップ1304)、復号すべき有意変換係数が残っているか否かについて判定を下す(ステップ1306)。もし残っていれば(分岐1307)、次のコンテキストを取得し(ステップ1300)、処理を継続する。もしなければ(分岐1309)、処理を終了する(ステップ1310)。
本発明の他の実施の形態において、係数走査順は、すべての可能な走査の組み合わせのサブセットに制限され、明示的に通知される。エントロピースライスの開始において、走査順は、通知された走査順に設定される。いくつかの実施の形態では、走査順は、標準的なシンタックスとして通知される。他の実施の形態では、走査順は、非標準的なメッセージ、例えば、SEIメッセージまたは他の非標準的なメッセージを用いて通知される。
本発明の他の実施の形態では、係数走査順は、すべての可能な走査の組み合わせのサブセットに制限され、明示的に通知される。エントロピースライス中のLCU行の開始において、走査順は、通知された走査順に設定される。いくつかの実施の形態では、走査順は、標準的なシンタックスとして通知される。他の実施の形態では、走査順は、非標準的なメッセージ、例えば、SEIメッセージまたは他の非標準的なメッセージを用いて通知される。
本発明のさらなる他の実施の形態では、エントロピースライスの開始において、係数走査順は、既に復号された基本ユニットの走査順に設定される。いくつかの実施の形態では、走査順は、上の基本ユニットに用いられた走査順に設定される。他の実施の形態では、走査順は、上および右側の基本ユニットに用いられた走査順に設定される。
本発明のさらなる他の実施の形態では、エントロピースライス中のLCU行の開始において、係数走査順は、既に復号された基本ユニットの走査順に設定される。いくつかの実施の形態では、走査順は、上の基本ユニットに用いられた走査順に設定される。他の実施の形態では、走査順は、上および右側の基本ユニットに用いられた走査順に設定される。
図43を参照すると、本発明のいくつかの実施の形態において、P−スライスのためのコンテキストの初期化法は、順方向予測されたB−スライスに適用される。B−スライスに与えられた大きな自由度およびB−予測(B-predictions)の複数参照の特質ゆえに、より高い圧縮効率がもたらされる。順方向予測されたB−スライスに用いられる参照スライスは、参照を時間的に将来および/または過去のフレーム/ピクチャから選ぶ通常のB−スライスと区別される時間的により早いフレーム/ピクチャからのものである。このように、順方向予測されたB−スライスは、通常のB−スライスのものとは異なった統計的特性をもつ残差データを有する。図43に示されるように、本技術は、B−スライス、P−スライス、およびI−スライスを受信し、受信したスライスのタイプに基づいて、コンテキストの初期化技術を選択する。加えて、順方向予測されたB−スライスの場合には、P−スライスのためのコンテキストの初期化技術が用いられる。より具体的には、以下のステップが行われる。
ステップ4301:ビットストリームからスライスタイプを復号する。
ステップ4302:スライスタイプがB−スライスか否かを判定する。
ステップ4303:スライスタイプがB−スライスである(ステップ4302においてYes)場合、スライスが順方向予測されているか否かを判定する。スライスが順方向予測されていれば、第2の初期化技術を用いてコンテキストの初期化を行う。スライスが順方向予測されていなければ、第1の初期化技術を用いてコンテキストの初期化を行う。
ステップ4304:スライスタイプがB−スライスでない(ステップ4302においてNo)場合、スライスタイプがP−スライスか否かを判定する。スライスタイプがP−スライスであれば、第2の初期化技術を用いてコンテキストの初期化を行う。
ステップ4305:スライスタイプがP−スライスでない(ステップ4304においてNo)場合、スライスタイプがI−スライスか否かを判定する。スライスタイプがI−スライスであれば、第3の初期化技術を用いてコンテキストの初期化を行う。
本発明の一様態に従って、順方向予測されたBフレームのみに対するトレーニングによって、エントロピーコーダを初期化するために使用される初期確率分布が生成される。本発明の別の態様に従って、現在のビデオデータを符号化するために使用される量子化パラメータQPに基づいて、コンテキストの初期化が適応される。
本発明のいくつかの実施の形態において、エンコーダは、P−スライスのコンテキストの初期化方法を順方向予測されたB−スライスに択一的に適用し、変更の発生を通知する。本発明のいくつかの実施の形態では、通知は、明示的であってもよい。本発明の他の実施の形態では、通知は、暗黙的であってもよい。明示的な通知を含む場合、P−スライスが順方向予測されたB−スライスに置き換えられるときに、フラグがデコーダへ送られる。これらのいくつかの実施の形態では、フラグが標準的なシンタックスとして通知される。他の実施の形態では、フラグが非標準的なメッセージ、例えば、SEIメッセージまたは他の非標準的なメッセージ内で通知されても構わない。
図41を参照すると、本発明のいくつかの実施の形態では、P−スライスのためのコンテキストの初期化方法は、単予測されたB−スライスに適用される。B−スライスに与えられた大きい自由度ゆえに、より高い圧縮効率がもたらされる。単予測されたB−スライスに使用される参照スライスは、時間的により早いフレーム/ピクチャ、または時間的により遅いフレーム/ピクチャのいずれか一方である。このように、単予測されたB−スライスは、双方向のB−スライスのものとは異なった統計的特性をもつ残差データを含む。時間的にとは、復号されたピクチャ/フレームの表示順のことを指す。図41に示されるように、本技術は、B−スライス、P−スライス、およびI−スライスを受信し、受信したスライスのタイプに基づいて、コンテキストの初期化技術が選択される。加えて、単予測されたB−スライスの場合には、P−スライスのコンテキストの初期化技術が用いられる。より具体的には、以下のステップが行われる。
ステップ4101:ビットストリームからスライスタイプを復号する。
ステップ4102:スライスタイプがB−スライスか否かを判定する。
ステップ4103:スライスタイプがB−スライスである(ステップ4102においてYes)場合、スライスが順方向または逆方向のいずれか一方の方向に予測されたかどうかを判定する。スライスが順方向または逆方向のいずれか一方の方向に予測されていれば、第2の初期化技術を用いてコンテキストの初期化を行う。スライスが順方向または逆方向のいずれか一方の方向に予測されていなければ第1の初期化技術を用いてコンテキストの初期化を行う。
ステップ4104:スライスタイプがB−スライスでない(ステップ4102においてNo)場合、スライスタイプがP−スライスか否かを判定する。スライスタイプがP−スライスであれば、第2の初期化技術を用いてコンテキストの初期化を行う。
ステップ4105:スライスタイプがP−スライスでない(ステップ4104においてるNo)場合、スライスタイプがI−スライスか否かを判定する。スライスタイプがI−スライスであれば、第3の初期化技術を用いてコンテキストの初期化を行う。
図42を参照すると、本発明のいくつかの実施の形態では、順方向予測されたB−スライスは、逆方向予測されたB−スライスおよび/または双方向予測されたB−スライスとは異なる方法で初期化され、これにより、B−スライスに与えられた異なった自由度ゆえに、より高い圧縮効率がもたらされる。順方向予測されたB−スライスに用いられる参照スライスは、時間的により早いフレーム/ピクチャの一つである。このように、順方向予測されたB−スライスは、逆方向および/または双方向のB−スライスのものとは異なった統計的特性をもつ残差データを有する。時間的にとは、復号されたピクチャ/フレームの表示順のことを指す。図42に示されるように、本技術は、B−スライス、P−スライス、およびI−スライスを受信し、受信したスライスのタイプに基づいて、コンテキストの初期化技術を選択する。加えて、順方向予測されたB−スライスの場合には、B−スライス、P−スライス、およびI−スライスとは異なったコンテキストの初期化技術を用いる。より具体的には、以下のステップが行われる。
ステップ4201:ビットストリームからスライスタイプを復号する。
ステップ4202:スライスタイプがB−スライスか否かを判定する。
ステップ4203:スライスタイプがB−スライスである(ステップ4202においてYes)場合、スライスが順方向予測されているか否かを判定する。スライスが順方向予測されていれば、第4の初期化技術を用いてコンテキストの初期化を行う。スライスが順方向予測されていなければ、第1の初期化技術を用いてコンテキストの初期化を行う。
ステップ4204:スライスタイプがB−スライスでない(ステップ4202においてNo)場合、スライスタイプがP−スライスか否かを判定する。スライスタイプがP−スライスであれば、第2の初期化技術を用いてコンテキストの初期化を行う。
ステップ4205:スライスタイプがP−スライスでない(ステップ4204においてNo)場合、スライスタイプがI−スライスか否かを判定する。スライスタイプがI−スライスであれば、第3の初期化技術を用いてコンテキストの初期化を行う。
コンテキストの初期化方法は、エントロピーコーダの動作に必要なエントロピーコーダの値の設定から構成される。例えば、算術コーダにおけるように、データを符号化すべく確率推定値を使用するエントロピーコーダのために、第1の確率推定値を設定する。コンテキストの初期化方法は、初期化技術を用いて値を決定する。一実施形態において、第1の初期化方法は、予め計算された値の第1の表を用いて値を設定する。同様に、第2の初期化方法は、予め計算された値の第2の表を用いて値を設定することに対応する。他の実施の形態において、第1の初期化方法は、値を設定するために、フレーム間の1以上の予測に用いるフレームのために設計された、予め計算済みの値の第1の表を用いて値を設定する。ここで予測に用いるフレーム(1つまたは複数)は、表示順に並べたときに、現フレームに対し時間的に前と後の両方の予測を用いる。第2の初期化方法は、値を設定するために、フレーム間の1以上の予測を用いるフレームから設計された、予め計算済みの値の第2の表を用いて値を設定する。ここで予測に用いるフレームは、表示順に並べたときに、現フレームに対し時間的に前か後のいずれか一方に位置するフレームを用いる。第3の初期化方法は、フレーム間の多くとも1つの予測を用いるフレームのために設計された、予め計算済みの値の第3の表を用いて値を設定する。第4の初期化方法は、フレーム間の予測を用いないフレームのために設計された、予め計算された値の第4の表を用いて値を設定する。
本発明の一実施形態において、RefPicList0は、現フレームより後に表示される既復号フレームのリストに先行する、現フレームより前に表示される既復号フレームのリストを含み、RefPicList1は、現フレームより前に表示される既復号フレームのリストに先行する、現フレームより後に表示される既復号フレームのリストを含む。この実施の形態では、現フレームより後に表示される、既復号フレームの数がゼロであるか、あるいは現フレームより前に表示される、復号されたフレームの数がゼロであるので、上記の条件(2)は、単方向B−スライスに関して真である。本発明の別の実施の形態において、PicOrderCntは、復号されたフレームの表示順を示す。この実施の形態では、復号されたフレームが現フレームの表示の前か、あるいは現フレームの表示の後にすべて表示されるので、上記の条件(3)は、単方向B−スライスに関して真である。
暗黙的な通知を含む場合、P−スライスのコンテキストの初期化方法を順方向予測されたB−スライスに適用することは、予測に用いる参照スライス(フレーム/ピクチャ)がすべて過去のスライス(フレーム/ピクチャ)であるときに、スライスが表示されることになる順に基づいてデコーダにおいて推測される。いくつかの実施の形態において、P−スライスが単方向B−スライスによって置き換えられることは、以下の条件が真である場合、すなわち、(1)参照ピクチャリストRefPicList1が1つ以上のエントリを有し、(2)参照ピクチャリストRefPicList1およびRefPicList0がピクチャの同じセットを含み、(3)参照ピクチャリストRefPicList1およびRefPicList0におけるすべてのフレームが、現フレームのPicOrderCntより小さいPicOrderCntを有する(但しPicOrderCntがフレームの表示順を昇順に指示する)ときに推測される。いくつかの実施の形態において、P−スライスが単方向B−スライスによって置き換えられることは、以下の条件が真である場合、すなわち、(1)参照ピクチャリストRefPicList1が1つ以上のエントリを有し、(2)参照ピクチャリストRefPicList1およびRefPicList0がピクチャの同じセットを含み、(3)参照ピクチャリストRefPicList1およびRefPiList0におけるすべてのフレームが、現フレームのPicOrderCntより大きいPicOrderCntを有する(但しPicOrderCntがフレームの表示順を昇順に指示する)ときに推測される。いくつかの実施の形態において、P−スライスが単方向B−スライスによって置き換えられることは、以下の条件が真である場合、すなわち、(1)参照ピクチャリストRefPicList1が1つ以上のエントリを有し、(2)参照ピクチャリストRefPicList1における第1のフレームおよびRefPicList0における第1のフレームが、現フレームのPicOrderCntより小さい(またはより大きい)PicOrderCntを有する(但しPicOrderCntがフレームの表示順を昇順に指示する)ときに推測される。いくつかの実施の形態において、P−スライスが単方向B−スライスによって置き換えられることは、以下の条件が真である場合、すなわち、(1)参照ピクチャリストRefPicList1が1つより多いエントリを有し、(2)参照ピクチャリストRefPicList1におけるフレーム[0,N]およびRefPicList0におけるフレーム[0,N]が、現フレームのPicOrderCntより小さい(またはより大きい)PicOrderCntを有する(但しPicOrderCntがフレームの表示順を昇順に指示する)ときに推測される。いくつかの実施の形態において、P−スライスが単方向B−スライスによって置き換えられることは、以下の条件が真である場合、すなわち、(1)参照ピクチャリストRefPicList1が1つ以上のエントリを有し、(2)参照ピクチャリストRefPicList1における第1のフレームが、参照ピクチャリストRefPicList0における第2のフレームと同じであり、(3)参照ピクチャリストRefPicList1における第2のフレームが、参照ピクチャリストRefPicList0における第1のフレームと同じであり、(4)参照ピクチャリストRefPicList1におけるフレーム[0,N]およびRefPicList0におけるフレーム[0,N]が、現フレームのPicOrderCntより小さい(またはより大きい)PicOrderCntを有する(但しPicOrderCntがフレームの表示順を昇順に指示する)ときに推測される。いくつかの実施の形態において、RefPicList0およびRefPicList1における順は、同一かつピクチャの同じセットを含む必要はない。例となる実施の形態において、参照ピクチャリストRefPicList1が1以上のエントリを有し、RefPicList1が参照ピクチャリストRefPicLis0と同一であるときには、最初の2つのエントリRefPicList1[0]およびRefPicList1[1]が入れ替え(switch)られる。Nは、参照ピクチャリストにおける全フレーム/ピクチャの数よりも少ない数を指す。PicOrderCntは、デコーダピクチャバッファにおける相対的な表示順も指す。
P−スライスが順方向予測されたB−スライスによって置き換えらたことが示されたとき、P−スライスの方法を用いてエントロピースライスのコンテキストが初期化される。他の実施の形態では、P−スライスの方法を用いてスライスのコンテキストが初期化される。
表13は、B−スライスの最初のコンテキストが、P−スライスの方法を用いて初期化することを明示的に通知するための例示的なシンタックスを示す。表13に関連する例示的な実施の形態においては、“cabac_init_P_flag”は、B−スライスのエントロピーエンコーダを初期化するために、B−スライスの方法か、P−スライスの方法のいずれか一方を示すフラグである。いくつかの実施の形態において、“cabac_init_P_flag”の値が“0”である場合、初期化方法としてB−スライスの方法が選択され、“cabac_init_P_flag”の値が“1”である場合、初期化方法としてP−スライスの方法が選択される。
本発明のいくつかの実施の形態において、エントロピースライスのコンテキストの初期化の状態は、エントロピーコーダによって処理されたビンの数に基づく。エントロピーエンコーダは、正確に初期化されたときに、情報源の統計値により迅速に収束する。より迅速な収束によって、浪費されるビットが少なくなり、延いては圧縮効率が高くなる。本発明のいくつかの実施の形態では、送信されるビンの数を推定し、ビンの推定数が第1の判定基準を満たすときには、第1の初期化方法を用いる。ビンの推定数が第1の判定基準を満たさないときは、第2の初期化方法を用いる。
本発明の例示的な実施の形態は、図38に関連して理解される。これらの実施の形態では、処理されたビンの数を推定する(ステップ1320)。処理されたビンの推定数Nbinsは、閾値Tbinsと比較する(ステップ1322)。処理されたビンの数が増加するほど、QPに基づくコンテキストの初期化の予測精度は減少する。コンテキストの初期化の予測精度が高いほど、より良好な圧縮効率をもたらす。処理されたビンの推定数が閾値より大きい場合(分岐1324)、単一のコンテキストの初期化値を選択する(ステップ1326)。処理されたビンの推定数が閾値より小さい場合(分岐1328)、QPに基づいてコンテキストを適応的に初期化する(ステップ1330)。単一のコンテキストの初期化値は、選択されたメトリック、例えば、2乗誤差、相対エントロピー、および他の距離メトリックのトレーニングおよび最適化に基づいて選択する。適応的なQPに基づく初期化は、CA*QP+CB形式のアフィン適応(affine adaptation)である。ここでCAおよびCBは定数である。いくつかの実施の形態では、前のスライスにおいて処理されたビンの数に基づいて、ビンの数を推定する。他の実施の形態では、前のフレームにおけるビン処理の数に基づいて、ビンの数を推定する。
処理されたビンの数の範囲1340を図示した図39に関連して記述される本発明のいくつかの実施の形態において、1340は処理されたビンの数の範囲を示す。処理されたビンの数の複数の交わらない範囲(1342、1344、1346で示される3つ)は閾値の数(1348、1350の2つ)に対して決定かつ表現される。そして範囲1342、1344、1346のいずれに入るかに基づいてコンテキストの初期化値を選択する。例えば、3つの範囲に関して、Nbins≦Tminである(範囲1:1342)とき、コンテキストは、QPに基づいて適応的に初期化され、Tmin<Nbins≦T1である(範囲2:1344)とき、コンテキストは、第1の固定コンテキスト値に初期化し、T1<Nbinsである(範囲3:1346)とき、コンテキストは、第2の異なる固定コンテキスト値に初期化される。
本発明の別の他の例となる実施の形態は、図40に関連して理解される。この例示的な実施の形態において、QPの値を決定する(ステップ1400)。TQPと示される閾値に対して検査する(ステップ1402)。一般に、QPが減少するほど、処理されるビンの数は増加する。QPが該閾値より小さくない(分岐1404)場合、コンテキストをQPに基づいて適応的に初期化する(ステップ1406)。QPの値が閾値より小さい(分岐1408)場合、単一のコンテキストの初期化値を選択する(ステップ1410)。単一のコンテキストの初期化値は、選択されたメトリック、例えば、2乗誤差、相対エントロピーおよび他の距離メトリックのトレーニングおよび最適化に基づいて選択しても構わない。
本発明のいくつかの実施の形態では、重ならない複数のQPの範囲が決定され、QP値が範囲のいずれに入るかに基づいて、コンテキストの初期化値を選択しても構わない。
表14は、全イントラ符号化に対するレート歪み性能の比較を示している。第3列の2つのサブ列に示した第1の比較は、スライスに対するエントロピー復号および再構成されたマクロブロックが他のスライスに依存しない複数のスライスを用いる符号化と、スライスを用いない符号化との比較である。この比較では、H.264/AVCジョイントモデル(JM)ソフトウエアバージョン13.0が用いられている。同一のビットレートに対しては、スライスを用いない符号化よりも複数のスライスを用いて符号化することにより、クオリティが平均的に−0.3380dB低下する。同一のクオリティレベルに対しては、スライスを用いない符号化よりも複数のスライスを用いて符号化することにより、ビットレートが平均的に7%増加する。
第4列の2つのサブ列に示した第2の比較は、本発明の実施の形態に係る、複数のエントロピースライス(エントロピースライス毎に2行のマクロブロック)に分割された1つの再構成スライスを用いる符号化と、スライスを伴わないJM13.0を用いる符号化との比較である。同一のビットレートに対しては、スライスを用いない符号化よりも複数のエントロピースライスを伴う1つの再構成スライスを用いて符号化することにより、クオリティが平均的に−0.0860dB低下する。同一のクオリティレベルに対しては、スライスを用いない符号化よりも複数のエントロピースライスを伴う1つの再構成スライスを用いて符号化することにより、ビットレートが平均的に1.83%増加する。
表15は、IBBP符号化に対するレート歪み性能の比較を示している。第3列の2つのサブ列に示した第1の比較は、スライスに対するエントロピー復号およびマクロブロックの再構成が他のスライスに依存しない複数のスライスを用いる符号化とスライスを用いない符号化との比較である。この比較では、H.264/AVCジョイントモデル(JM)ソフトウエアバージョン13.0が用いられている。同一のビットレートに対しては、複数のスライスを用いて符号化することにより、クオリティが平均的に−0.5460dB低下する。同一のクオリティレベルに対しては、スライスを用いない符号化よりも複数のスライスを用いて符号化することにより、ビットレートが平均的に21.41%増加する。
第4列の2つのサブ列に示した第2の比較は、本発明の実施の形態に係る、複数のエントロピースライス(エントロピースライス毎に2行のマクロブロック)に分割された1つの再構成スライスを用いる符号化と、スライスを伴わないJM13.0を用いる符号化との比較である。同一のビットレートに対しては、スライスを用いない符号化よりも複数のエントロピースライスを伴う1つの再構成スライスを用いて符号化することにより、クオリティが平均的に−0.31dB低下する。同一のクオリティレベルに対しては、スライスを用いない符号化よりも複数のエントロピースライスを伴う1つの再構成スライスを用いて符号化することにより、ビットレートが平均的に11.45%増加する。
結果を比較すると、1つの再構成スライスにおいて複数のエントロピースライスを用いる符号化は、全イントラ符号化およびIBBP符号化の場合、それぞれ5.17%および9.96%のビットレートが低減される。これは、スライスに対するエントロピー復号および再構成が他のスライスに依存しないスライスを用いる符号化に対する比較である。但し、並列的な復号は、双方共に可能である。
表16は、全イントラ符号化およびIBBP符号化に対するレート歪み性能の比較を示している。本表における比較は、スライスを用いない符号化と、本発明の実施の形態に係る、エントロピースライス毎に26kのビンである最大サイズのエントロピースライスに分割された1つの再構成スライスを用いる符号化との比較である。第2列の2つのサブ列に見られる第1の比較は、全イントラ符号化を用いた比較である。同一のビットレートに対しては、複数のエントロピースライスを伴う再構成スライスを用いて符号化することにより、クオリティが平均的に−0.062dB低下する。同一のクオリティレベルに対しては、複数のエントロピースライスを伴う再構成スライスを用いて符号化することにより、ビットレートが平均的に1.86%増加する。このようにして、2行のマクロブロックである固定的なエントロピースライスサイズのエントロピースライスよりも、エントロピースライス毎に26kのビンである最大サイズのエントロピースライスを用いる全イントラ符号化に対して、約0.64%の平均的なビットレートの省力が存在する。
第3列の2つのサブ列に見られる第2の比較は、IBBP符号化を用いた比較である。同一のビットレートに対しては、スライスを用いない符号化よりも複数のエントロピースライスを伴う1つの再構成スライスを用いて符号化することにより、クオリティが平均的に−0.022dB低下する。同一のクオリティレベルに対しては、スライスを用いない符号化よりも複数のエントロピースライスを伴う1つの再構成スライスを用いて符号化することにより、ビットレートが平均的に0.787%増加する。このようにして、2行のマクロブロックである固定的なエントロピースライスサイズのエントロピースライスよりも、エントロピースライス毎に26kのビンである最大サイズのエントロピースライスを用いるIBBP符号化に対して、凡そ10.66%である平均的なビットレートの省力が存在する。
エントロピースライスを用いることにより、並列的な復号が可能になり、再構成スライスを、マクロブロックの固定的な数であるエントロピースライスよりも各エントロピースライスがビンの最大数未満であるエントロピースライスに分割する符号化により、著しいビットレートの省力を提供する。
図面におけるフローチャートおよび図が特定の実行順を示しているが、該実行順が、図示されたものと異なってもよいことは理解されるであろう。1つの例としては、ブロックの実行順は、図示された順に関して変更されてもよい。また、他の例としては、図面において連続して図示された2つ以上のブロックは、同時に、または略同時に実行されてもよい。本明細書に記述の様々な論理的機能を実行するためのソフトウエア、ハードウエア、および/またはファームウエアは、先行技術の1つにより生成され得ることは、当業者であれば理解できるであろう。
本発明のいくつかの実施の形態は、本明細書に記載した何れかの特徴および方法をコンピュータに実行させるためのプログラムに用いられる指令が記録されたコンピュータ読み取り可能な記録媒体を含むコンピュータプログラム製品を含んでいる。コンピュータ読み取り可能な記録媒体の例としては、フラッシュメモリ装置、ディスク型記録媒体(例えば、フロッピー(登録商標)ディスク、光ディスク、光磁気ディスク、DVD、CD、マイクロドライブ(micro-drive)、および、その他のディスク型記録媒体)、ROM、PR
OM、EPROM、EEPROM(登録商標)、RAM、VRAM、DRAM、および、指令および/またはデータを記録するために適した媒体または装置などが挙げられるが、これらに限定されない。
本発明のいくつかの実施の形態では、エントロピースライスの開始において走査パターンを初期化する。
本発明のいくつかの実施の形態では、エントロピースライスにおける行の開始基本ユニットにおいて走査パターンを初期化する。
本発明のいくつかの実施の形態では、エントロピースライスの開始において適応走査算出に関連する状態を初期化する。
本発明のいくつかの実施の形態では、エントロピースライスにおける行の開始基本ユニットにおいて適応走査算出に関連する状態を初期化する。
本発明のいくつかの実施の形態では、係数走査順をコンテキスト取得順から分離する。
本発明のいくつかの実施の形態では、順方向予測されたB−スライスを検出し、順方向予測されたB−スライスのエントロピー符号化に関連するコンテキストをP−スライスの方法に従って初期化する。
本発明のいくつかの実施の形態では、ビンカウントに基づいてコンテキストを初期化する。
本発明のいくつかの実施の形態では、量子化パラメータ値に基づいてコンテキストを初期化する。
本発明の一実施形態は、動画像シーケンスの動画像フレームを復号するための方法を開示し、この方法は、
(a)ビデオデコーダにおいてスライスを受信するステップと、
(b)スライスが順方向予測B−スライス、あるいは逆方向予測B−スライスのいずれであるか、および順方向および逆両方向に予測されたB−スライスではないことを識別するステップと、
(c)P−スライスの技術を用いて、スライスに関連するコンテキストを初期化するステップとを有する。
本発明のいくつかの実施の形態において、逆方向予測されたB−スライスのみを用いて識別する。
本発明のいくつかの実施の形態において、以下に基づいて識別する。(1)参照ピクチャを識別する第1のリストは、少なくとも1つのエントリを有し、(2)第1のリストと参照ピクチャを識別する第2のリストとは、ピクチャの同じセットを含み、(3)第1のリストおよび第2のリストにおけるすべてのピクチャは、現在のスライスの前に表示されることになる。
本発明のいくつかの実施の形態において、以下に基づいて識別する。(1)参照ピクチャを識別する第1のリストは、少なくとも1つのエントリを有し、(2)第1のリストと参照ピクチャを識別する第2のリストとは、ピクチャの同じセットを含み、(3)第1のリストおよび第2のリストにおけるすべてのピクチャは、現在のスライスの後に表示されることになる。
本発明のいくつかの実施の形態において、以下に基づいて識別する。(1)参照ピクチャを識別する第1のリストは、少なくとも1つのエントリを有し、(2)第1のリストと参照ピクチャを識別する第2のリストとは、同一の領域をもたないピクチャセットを含み、同一の領域をもたないピクチャセットは、現在のスライスの前に表示されることになる。
本発明のいくつかの実施の形態において、以下に基づいて識別する。(1)参照ピクチャを識別する第1のリストは、少なくとも1つのエントリを有し、(2)第1のリストと参照ピクチャを識別する第2のリストとは、同一の領域をもたないピクチャセットを含み、同一の領域をもたないピクチャセットは、現在のスライスの後に表示されることになる。
本発明のいくつかの実施の形態において、以下に基づいて識別する。(1)参照ピクチャを識別する第1のリストは、少なくとも1つのエントリを有し、(2)第1のリストにおける第1の参照ピクチャは、第2のリストにおける第2の参照ピクチャと同じであり、(3)第2のリストにおける第1の参照ピクチャは、第1のリストにおける第2の参照ピクチャと同じであり、(4)第1のリストと参照ピクチャを識別する第2のリストとは、同一の領域をもたないピクチャセットを含み、同一の領域をもたないピクチャセットは、現在のスライスの前に表示されることになる。
本発明の一実施の形態は、動画像シーケンスの動画像フレームを復号するための方法を開示し、この方法は、
(a)ビデオデコーダにおいてスライスを受信する工程と、
(b)スライスが順方向予測されたBスライスかどうかを識別する工程と、
(c)B−スライス、P−スライス、およびI−スライスのいずれかに用いる技術とは異なる技術を用いて、スライスに関連するコンテキストを初期化する工程とを有する。
上記明細書において用いられた用語および表現は、あくまで説明のための用語として用いられているものであり、限定のためのものとして用いられているものではない。また、それらの用語および表現は、上述した特性若しくはその一部の等価性を排除するために用いられているものではない。本発明の範囲は、請求項によって定義され、また、請求項によってのみ限定されるものである。