JP2017225132A - 低減された初期値セットを持つコンテキスト適応エントロピ・コーディング - Google Patents
低減された初期値セットを持つコンテキスト適応エントロピ・コーディング Download PDFInfo
- Publication number
- JP2017225132A JP2017225132A JP2017136834A JP2017136834A JP2017225132A JP 2017225132 A JP2017225132 A JP 2017225132A JP 2017136834 A JP2017136834 A JP 2017136834A JP 2017136834 A JP2017136834 A JP 2017136834A JP 2017225132 A JP2017225132 A JP 2017225132A
- Authority
- JP
- Japan
- Prior art keywords
- slice
- video data
- initial
- contexts
- video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
- H03M7/4012—Binary arithmetic codes
- H03M7/4018—Context adapative binary arithmetic codes [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
- H04N19/21—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with binary alpha-plane coding for video objects, e.g. context-based arithmetic encoding [CAE]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Abstract
【課題】異なるスライス・タイプを有するスライスのシンタックス要素をコーディングするために使用される初期値セットの数を低減する。
【解決手段】ビデオ・データをコーディングするための技法は、第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングすることを含む。さらに、第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、同じタイプのシンタックス要素にしたがう第2のシンタックス要素を、同じ初期値セットを用いてコーディングすることを含む。第1のスライス・タイプは、第2のスライス・タイプとは異なりうる。さらに、第1スライス・タイプおよび第2のスライス・タイプのうちの少なくとも1つは、時間的に予測されたスライス・タイプでありうる。
【選択図】図4
【解決手段】ビデオ・データをコーディングするための技法は、第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングすることを含む。さらに、第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、同じタイプのシンタックス要素にしたがう第2のシンタックス要素を、同じ初期値セットを用いてコーディングすることを含む。第1のスライス・タイプは、第2のスライス・タイプとは異なりうる。さらに、第1スライス・タイプおよび第2のスライス・タイプのうちの少なくとも1つは、時間的に予測されたスライス・タイプでありうる。
【選択図】図4
Description
本願は、おのおのの全体内容が参照によって本明細書に組み込まれている、2012年1月19日出願の米国仮出願61/588,604と、2012年1月19日出願の米国仮出願61/588,626との利益を主張する。
本開示は、ビデオ・コーディングに関し、特に、ビデオ・コーディング処理によって生成されたビデオ・データのエントロピ・コーディング・スライスに関する。
デジタル・ビデオ機能は、デジタル・テレビ、デジタル・ダイレクト・ブロードキャスト・システム、無線ブロードキャスト・システム、携帯情報端末(PDA)、ラップトップまたはデスクトップ・コンピュータ、タブレット・コンピュータ、eブック・リーダ、デジタル・カメラ、デジタル記録デバイス、デジタル・メディア・プレーヤ、ビデオ・ゲーム・デバイス、ビデオ・ゲーム・コンソール、セルラまたは衛星ラジオ電話、いわゆる「スマート・フォン」、ビデオ・テレビ会議デバイス、ビデオ・ストリーミング・デバイス等を含む広範囲のビデオに組み込まれうる。デジタル・ビデオ・デバイスは、例えば、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、パート10、アドバンスト・ビデオ・コーディング(AVC)、現在開発中の高効率ビデオ・コーディング(HEVC)規格、およびこれら規格の拡張版によって定義された規格において記載されているようなビデオ圧縮技法を実施する。ビデオ・デバイスは、このようなビデオ圧縮技法を実施することによって、デジタル・ビデオ情報をより効率的に送信、受信、エンコード、デコード、および/または、格納しうる。
ビデオ圧縮技法は、ビデオ・シーケンスに固有の冗長性を低減または除去するために、空間(イントラ・ピクチャ)予測、および/または、時間(インタ・ピクチャ)予測を行なう。ブロック・ベースのビデオ・コーディングのために、ビデオ・スライス(すなわち、ビデオ・フレーム、またはビデオ・フレームの一部分)が、ツリーブロック、コーディング・ユニット(CU)、および/または、コーディング・ノードとも称される複数のビデオ・ブロックへ分割されうる。ピクチャのイントラ・コード(I)スライスにおけるビデオ・ブロックは、同じピクチャ内の近隣ブロックにおける基準サンプルに対する空間予測を用いてエンコードされる。ピクチャのインタ・コード(PまたはB)スライスにおけるビデオ・ブロックは、同じピクチャ内の近隣ブロックにおける基準サンプルに対する空間予測を用いるか、別の基準ピクチャにおける基準サンプルに対する時間予測を用いうる。ピクチャは、フレームと称され、基準ピクチャは、基準フレームと称されうる。
空間予測または時間予測の結果、ブロックの予測ブロックがコーディングされるようになる。残余データは、コーディングされるべきオリジナルのブロックと、予測ブロックとの間のピクセル差分を表す。インタ・コード・ブロックは、予測ブロックを形成する基準サンプルのブロックを示す動きベクトルと、コーディングされたブロックと予測ブロックとの差分を示す残余データと、にしたがってエンコードされる。イントラ・コード・ブロックは、イントラ・コーディング・モードと残余データとにしたがってエンコードされる。さらなる圧縮のため、残余データは、ピクセル領域から変換領域へ変換され、残余変換係数となる。残余変換係数は、その後、量子化されうる。量子化された変換係数は、最初に、2次元配列に整えられ、1次元の変換係数ベクトルを生成するためにスキャンされうる。その後、エントロピ・コーディングが適用され、さらなる圧縮が達成されうる。
一例として、本開示の技法は、コンテキスト適応エントロピ・コーディング処理を実行することの一部として、ビデオ・データをコーディングするために使用される1または複数のコンテキストのための、初期確率に対応する初期コンテキスト状態を決定すること、を含む。いくつかの例では、コンテキスト適応エントロピ・コーディング処理は、コンテキスト適応二進法コーディング(CABAC)処理でありうる。例えば、開示された技法は、コンテキストの初期値に基づいて、1または複数のコンテキストの初期コンテキスト状態を決定すること、を含みうる。特に、この例では、1または複数のコンテキストのための初期値、またはその初期値「セット」が、ビデオ・データに関連付けられたスライス・タイプに基づいて選択されうる。例えば、ビデオ・データに関連付けられたスライス・タイプは、さまざまなスライス・タイプのうちの何れか(例えば、いくつかの例として、イントラ予測(I)スライス・タイプ、一方向インタ予測(P)スライス・タイプ、および双方向インタ予測(B)スライス・タイプ)を含みうる。さらに、この例ではまた、ビデオ・データに関連付けられたスライス・タイプが、前述されたスライス・タイプのうちの2またはそれ以上のうちの任意の1つである場合、同じ初期値セットが選択されうる。その結果、異なるスライス・タイプを有するスライスのシンタックス要素をコーディングするために使用される初期値セットの数が、他の技法と比べて低減されうる。
本開示の1つの例では、ビデオ・データをコーディングする方法は、第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングすること、を含む。この方法はさらに、第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、初期値セットを用いてコーディングすること、を含む。この例では、第1のスライス・タイプは、第2のスライス・タイプと異なる。さらに、この例では、第1のスライス・タイプと第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである。
この開示の別の例では、ビデオ・データをコーディングするように構成された装置が、ビデオ・コーダを含む。この例において、ビデオ・コーダは、第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングする、ように構成される。ビデオ・コーダはさらに、第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、初期値セットを用いてコーディングする、ように構成される。この例では、第1のスライス・タイプは、第2のスライス・タイプと異なる。さらに、この例では、第1のスライス・タイプと第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである。
本開示の別の例では、ビデオ・データをコーディングするように構成されたデバイスは、第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングする手段、を含む。このデバイスはさらに、第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、初期値セットを用いてコーディングする手段、を含む。この例では、第1のスライス・タイプは、第2のスライス・タイプと異なる。さらに、この例では、第1のスライス・タイプと第2のスライス・タイプとのうちの少なくとも1つは、テンポラリに予測されたスライス・タイプである。
本開示に記述された技法は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせで実施されうる。ハードウェアで実施される場合、装置は、集積回路、プロセッサ、ディスクリート・ロジック、またはこれらの任意の組み合わせで実施されうる。ソフトウェアで実施される場合、ソフトウェアは、例えば、マイクロプロセッサ、特定用途向けIC(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはデジタル信号プロセサ(DSP)のような1または複数のプロセッサにおいて実施されうる。これら技法を実行するソフトウェアは、最初に、有形のコンピュータ読取可能な媒体に格納されており、プロセッサにロードされ、実行されうる。
別の例では、コンピュータ読取可能な記憶媒体は、実行された場合に、1または複数のプロセッサに対して、ビデオ・データをコーディングさせる命令群を格納する。この例において、これら命令群は、1または複数のプロセッサに対して、第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングさせる。このコンピュータ読取可能な記憶媒体はさらに、1または複数のプロセッサに対して、第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、初期値セットを用いてコーディングさせる命令群を備える。この例では、第1のスライス・タイプは、第2のスライス・タイプと異なる。さらに、この例では、第1のスライス・タイプと第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである。
1または複数の例の詳細が、添付図面および以下の説明において述べられる。他の特徴、目的、および利点が、説明と図面から、および特許請求の範囲から明らかになるだろう。
一般に、本開示の技法は、コンテキスト適応二進法コーディング(CABAC)に関する。CABACは、一般に、例えば、ビデオ・データのスライスのような、ビデオ・ユニットのコーディング・シンタックス要素をコーディングすることを含む。CABAC技法は、特定のタイプのシンタックス要素をコーディングするために使用されるコンテキストが、例えば、同じタイプの以前のシンタックス要素のコーディングのような、履歴的なコーディング動作に基づいて変動しうる(すなわち、適応しうる)という点において「コンテキスト適応」であると考えられうる。本開示の技法は、一般に、さまざまなタイプのシンタックス要素のコンテキストの初期化に向けられている。
一例として、本明細書に開示された技法は、例えばCABACのようなコンテキスト適応エントロピ・コーディング処理を実行することの一部として、ビデオ・データのさまざまなタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのために、初期確率に対応する初期コンテキスト状態を決定すること、を含みうる。例えば、開示された技法は、コンテキストの初期値に基づいて、1または複数のコンテキストの初期コンテキスト状態を決定すること、を含みうる。特に、この例において、1または複数のコンテキストの、初期値、または、その初期値「セット」は、ビデオ・データに関連付けられたスライス・タイプに基づいて選択されうる。例えば、ビデオ・データに関連付けられたスライス・タイプは、さまざまなスライス・タイプのうちの何れか(例えば、いくつかの例として、イントラ予測(I)スライス・タイプ、一方向インタ予測(P)スライス・タイプ、および双方向インタ予測(B)スライス・タイプ)を含みうる。さらに、前述したスライス・タイプのうちの2またはそれ以上のために、同じ初期化値セットが選択されうる。その結果、異なるスライス・タイプを有するスライスのシンタックス要素をコーディングするために使用される初期値セットの数が、他の技法と比べて低減されうる。
言い換えれば、本開示の技法は、各タイプのスライスに個々の初期値セットを割り当てるのではなく、2またはそれ以上のタイプのスライスに、同じ初期値セットを割り当てることを含む。例えば、同じ初期値セットが、Iスライス・タイプおよびPスライス・タイプに割り当てられうる。別の例として、同じ初期値セットが、Iスライス・タイプおよびBスライス・タイプに割り当てられうる。また別の例として、同じ初期値セットが、Pスライス・タイプおよびBスライス・タイプに割り当てられうる。このように、同じ初期値セットが、2つの異なるスライス・タイプに割り当てられうる。そのうちの少なくとも1つは、インタ予測スライス・タイプであり、時間的に予測されたスライス・タイプとも称される。インタ予測すなわち時間的に予測されたスライス・タイプは、Pスライス・タイプおよびBスライス・タイプを含む。
別の例として、これら技法はさらに、前述した方式で、同じ初期値セットを用いてコーディングされたビデオ・データの各スライスについて、それぞれのスライスに関連付けられたスライス・タイプに少なくとも部分的に基づいて、1または複数のコンテキストの初期コンテキスト状態を決定すること、を含む。その結果、初期コンテキスト状態によって示された初期確率の精度が、他の技法と比較して改善されうる。
また別の例として、開示された技法は、ビデオ・データをコーディングするために使用されるコンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストの初期コンテキスト状態を決定するために初期値セットを適応的に選択すること、を含む。特に、この例では、ビデオ・データのスライスをコーディングするために使用される1または複数のコンテキストの初期値セットが、例えば、スライスに関連付けられたスライス・タイプではなく、スライスに関連付けられた初期インジケータ値を用いて示されうる。いくつかのケースでは、ビデオ・コーダが、異なるスライス・タイプを有するビデオ・データの複数のスライスのおのおのについて、同じ初期インジケータ値をコーディングしうる。この結果、おのおののスライス(したがって、異なるスライス・タイプの複数のスライス。これは、少なくとも1つのインタ予測スライスを含みうる)の1または複数のシンタックス要素をコーディングするために、同じ初期値セットを用いるようになる。
あるいは、さらに別の例として、異なるスライス・タイプを有するビデオ・データの複数のスライスの初期インジケータ値が、異なる初期インジケータ値でありうる。その結果、おのおののスライスの1または複数のシンタックス要素をコーディングするために、異なる初期値セットを用いるようになる。この例では、開示された技法は、それぞれのスライスに関連付けられたスライス・タイプではなく、おのおののスライスのための異なる初期インジケータ値に基づいて、1または複数のコンテキストの初期コンテキスト状態を判定することを含む。その結果、初期コンテキスト状態によって示される初期確率の精度が、他の技法と比較して改善されうる。
したがって、開示された技法は、いくつかのケースにおいて、ビデオ・データ(例えば、ビデオ・データの1または複数のブロックについての量子化された変換残余係数値またはその他のシンタックス情報)をより効率的にコーディングすることをイネーブルしうる。例えば、これら技法は、おのおののスライス・タイプのコンテキストについて、例えば、異なるコンテキスト初期値すなわち「初期値セット」を格納するシステムのように、他のシステムと比較して低い複雑度しか有さないコーディング・システムを用いてビデオ・データをコーディングすることをイネーブルしうる。さらに、これら技法は、類似のデータをコーディングするために、例えば、ビデオ・データに関連付けられたスライス・タイプ情報を考慮することなく、ビデオ・データをコーディングするために使用される初期コンテキスト状態を決定することを含む技法、または、スライス・タイプ情報に関わらず、初期コンテキスト状態を適応的に決定することを可能にしない技法、のような他の技法を用いた場合よりも、少ないビットを用いてビデオ・データをコーディングすることをイネーブルしうる。特に、開示された技法を用いた結果、コンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストを初期化することになりうる。これによって、これらコンテキストは、他の技法を用いて初期化されるコンテキストと比較して、相対的により精度の高い確率推定値を含むようになる。このように、本開示の技法を用いた場合、ビデオ・データをコーディングするために使用されるコーディング・システムの複雑さが相対的に低減されうるか、および/または、コーディングされたビデオ・データを含むコーディングされたビットストリームの相対的なビット節約がなされうる。
図1は、本開示の技法にしたがって、低減された初期値セットを用いたコンテキスト適応エントロピ・コーディングのための技法を実行しうるビデオ・エンコードおよびデコード・システムの例を例示するブロック図である。図1に図示されるように、システム10は、宛先デバイス14によって後にデコードされるべき、エンコードされるビデオ・データを生成するソース・デバイス12を含む。ソース・デバイス12および宛先デバイス14は、デスクトップ・コンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレット・コンピュータ、セット・トップ・ボックス、いわゆる「スマート」フォンのような電話ハンドセット、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイ・デバイス、デジタル・メディア・プレーヤ、ビデオ・ゲーミング・コンソール、ビデオ・ストリーミング・デバイス等を含む広範なデバイスのうちの何れかを備えうる。いくつかのケースでは、ソース・デバイス12および宛先デバイス14が無線通信のために装備されうる。
宛先デバイス14は、デコードされるべき、エンコードされたビデオ・データを、リンク16を介して受信しうる。リンク16は、エンコードされたビデオ・データを、ソース・デバイス12から宛先デバイス14へ移動させることができる任意のタイプの媒体またはデバイスを備えうる。一例では、リンク16は、エンコードされたビデオ・データを、ソース・デバイス12が、宛先デバイス14へリアル・タイムで送信することをイネーブルする通信媒体を備えうる。エンコードされたビデオ・データは、例えば無線通信プロトコルのような通信規格にしたがって変調され、宛先デバイス14へ送信されうる。通信媒体は、例えばラジオ周波数(RF)スペクトルまたは1または複数の物理送信ラインのような任意の無線または有線の通信媒体を備えうる。通信媒体は、例えば、ローカル・エリア・ネットワーク、広域ネットワーク、またはインターネットのようなグローバル・ネットワークのような、パケット・ベースのネットワークの一部を形成しうる。通信媒体は、ルータ、スイッチ、基地局、または、ソース・デバイス12から宛先デバイス14への通信を容易にするために有用でありうるその他任意の機器を含みうる。
あるいは、エンコードされたデータは、出力インタフェース22から、記憶デバイス24へ出力されうる。同様に、エンコードされたデータは、入力インタフェース26によって記憶デバイス24からアクセスされうる。記憶デバイス24は、例えば、ハード・ドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュ・メモリ、揮発性メモリまたは不揮発性メモリ、または、エンコードされたビデオ・データを格納するのに適したその他任意のデジタル記憶媒体のような、分散的にまたはローカルにアクセスされるさまざまなデータ記憶媒体のうちの何れかを含みうる。さらなる例では、記憶デバイス24は、ソース・デバイス12によって生成され、エンコードされるビデオを保持するファイル・サーバまたはその他の中間記憶デバイスに相当しうる。宛先デバイス14は、格納されたビデオ・データに、ストリーミングまたはダウンロードによって、記憶デバイス24からアクセスしうる。ファイル・サーバは、エンコードされたビデオ・データを格納することと、エンコードされたビデオ・データを宛先デバイス14へ送信することとが可能な任意のタイプのサーバでありうる。ファイル・サーバの例は、(例えば、ウェブサイト用の)ウェブ・サーバ、FTPサーバ、ネットワーク・アタッチ・ストレージ(NAS:network attached storage)デバイス、またはローカル・ディスク・ドライブを含む。宛先デバイス14は、エンコードされたビデオ・データに、インターネット接続を含む任意の標準的なデータ接続によってアクセスしうる。これは、無線チャネル(例えば、Wi−Fi接続)、有線接続(例えば、DSL、ケーブル・モデム等)、または、ファイル・サーバに格納されたエンコードされたビデオ・データにアクセスすることに適したこれら両方の組み合わせを含みうる。エンコードされたビデオ・データの記憶デバイス24からの送信は、ストリーミング送信、ダウンロード送信、またはこれら両方の組み合わせでありうる。
本開示の技法は、必ずしも無線のアプリケーションまたはセッティングに制限される必要はない。これら技法は、例えば、オーバ・ザ・エア・テレビ・ブロードキャスト、ケーブル・テレビ送信、衛星テレビ送信、例えばインターネットによるストリーミング・ビデオ送信、データ記憶媒体における記憶のためのデジタル・ビデオのエンコーディング、データ記憶媒体に記憶されたデジタル・ビデオのデコーディング、またはその他のアプリケーションのようなさまざまなマルチメディア・アプリケーションの何れかをサポートするビデオ・コーディングに適用されうる。いくつかの例において、システム10は、例えばビデオ・ストリーミング、ビデオ再生、ビデオ・ブロードキャスト、および/または、ビデオ・テレフォニのようなアプリケーションをサポートする1方向または2方向のビデオ送信をサポートするように構成されうる。
図1の例では、ソース・デバイス12は、ビデオ・ソース18、ビデオ・エンコーダ20、および出力インタフェース22を含む。いくつかのケースでは、出力インタフェース22は、変調器/復調器(モデム)および/または送信機を含みうる。ソース・デバイス12では、ビデオ・ソース18は、例えば、ビデオ・カメラ、以前にキャプチャされたビデオを含むビデオ・アーカイブ、ビデオ・コンテンツ・プロバイダからビデオを受信するためのビデオ・フィード・インタフェース、および/または、ソース・ビデオとしてコンピュータ・グラフィック・データを生成するためのコンピュータ・グラフィック・システム、または、これらソースの組み合わせのようなビデオ・キャプチャ・デバイスのようなソースを含みうる。一例として、ビデオ・ソース18がビデオ・カメラであれば、ソース・デバイス12および宛先デバイス14は、いわゆるカメラ電話またはビデオ電話を形成しうる。しかしながら、本開示に記載された技法は、一般に、ビデオ・コーディングに適用可能であり、無線アプリケーションおよび/または有線アプリケーションに適用されうる。
キャプチャされたビデオ、プリキャプチャされたビデオ、または、コンピュータによって生成されたビデオが、ビデオ・エンコーダ20によってエンコードされうる。エンコードされたビデオ・データは、ソース・デバイス12の出力インタフェース22を介して宛先デバイス14にダイレクトに送信されうる。エンコードされたビデオ・データはまた(あるいは、その代わりに)、デコードおよび/または再生のために、宛先デバイス14またはその他のデバイスによる後のアクセスのために、記憶デバイス24に格納されうる。
宛先デバイス14は、入力インタフェース26、ビデオ・デコーダ30、およびディスプレイ・デバイス28を含む。いくつかのケースでは、入力インタフェース26は、受信機および/またはモデムを含みうる。宛先デバイス14の入力インタフェース26は、エンコードされたビデオ・データを、リンク16を介して、または、記憶デバイス24から受信する。リンク16を介して通信された、または、記憶デバイス24に提供された、エンコードされたビデオ・データは、ビデオ・データをデコードする際に、例えばビデオ・デコーダ30のようなビデオ・デコーダによって使用されるための、ビデオ・エンコーダ20によって生成されたさまざまなシンタックス要素を含みうる。このようなシンタックス要素は、通信媒体で送信された、記憶媒体に格納された、または、ファイル・サーバに格納された、エンコードされたビデオ・データとともに含まれうる。
ディスプレイ・デバイス28は、宛先デバイス14と統合されうるか、または、宛先デバイス14の外部にありうる。いくつかの例において、宛先デバイス14は、統合ディスプレイ装置を含みうる。そして、外部ディスプレイ・デバイスとインタフェースするようにも構成されうる。別の例において、宛先デバイス14は、ディスプレイ・デバイスでありうる。一般に、ディスプレイ・デバイス28は、デコードされたビデオ・データをユーザへ表示しうる。そして、例えば、液晶ディスプレイ(LCD)、プラズマ・ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、またはその他のタイプのディスプレイ・デバイスのようなさまざまなディスプレイ・デバイスのうちの何かを備えうる。
ビデオ・エンコーダ20およびビデオ・デコーダ30は、例えば、ITU−Tビデオ・コーディング・エキスパート・グループ(VCEG)およびISO/IECモーション・ピクチャ・エキスパート・グループ(MPEG)のビデオ・コーディング(JCT−VC)におけるジョイント・コラボレート・チームによって現在開発中の高効率ビデオ・コーディング(HEVC)規格のようなビデオ圧縮規格にしたがって動作し、HEVCテスト・モデル(HM)に準拠しうる。あるいは、ビデオ・エンコーダ20およびビデオ・デコーダ30は、例えば、MPEG 4、パート10、アドバンスト・ビデオ・コーディング(AVC)とも称されるITU−T H.264規格のようなその他の独占規格または業界規格、または、これら規格の拡張版にしたがって動作しうる。しかしながら、本開示の技術は、任意の特定のコーディング規格に限定されない。画像圧縮規格の他の例は、MPEG2およびITU−T H.263を含む。「HEVCワーキング・ドラフト8」または「WD8」と称されるHEVC規格の最近のドラフトは、Brossらによる文献であるJCTVC−J1003_d7、「高効率ビデオ・コーディング(HEVC)テキスト仕様書ドラフト8」(High efficiency video coding (HEVC) text specification draft 8)、ITU−T SG16 WP3およびISO/IEC JCT1/SC29/WG11のビデオ・コーディングにおけるジョイント・コラボレート・チーム(JCT−VC) (Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11)、第10回ミーティング、於スウェーデン、ストックホルム、2012年7月11−20日開催、に記載されている。これは、2012年10月2日、http://phenix.int-evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zipからダウンロード可能である。
図1に図示されていないが、いくつかの態様では、ビデオ・エンコーダ20およびビデオ・デコーダ30はおのおの、オーディオ・エンコーダおよびデコーダと統合されうる。そして、共通のデータ・ストリームまたは個別のデータ・ストリームにおいて、オーディオとビデオとの両方のエンコードを取り扱うために、適切なMUX−DEMUXユニット、またはその他のハードウェアおよびソフトウェアを含みうる。適用可能であれば、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサ・プロトコル、または、例えばユーザ・データグラム・プロトコル(UDP)のようなその他のプロトコルに準拠しうる。
ビデオ・エンコーダ20およびビデオ・デコーダ30はおのおの、例えば、1または複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向けIC(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリート・ロジック、ソフトウェア、ハードウェア、ファームウェア、またはそれら任意の組み合わせのようなさまざまな適切なエンコーダ回路またはデコーダ回路のうちの何れかとして実現されうる。これら技法が部分的にソフトウェアで実現される場合、デバイスは、本開示の技法を実行するために、ソフトウェアのための命令群を、適切な非一時的なコンピュータ読取可能な媒体に格納し、1または複数のプロセッサを用いて、ハードウェアにおいて、これら命令群を実行しうる。ビデオ・エンコーダ20およびビデオ・デコーダ30のおのおのは、おのおのが、それぞれのデバイスにおける、結合されたエンコーダ/デコーダ(「コーデック」)の一部として統合されうる1または複数のエンコーダまたはデコーダに含まれうる。
HEVC規格化の努力は、HEVCテスト・モデル(HM)と呼ばれるビデオ・コーディング・デバイスの発展モデルに基づく。HMは、例えばITU−T H.264/AVCにしたがう既存のデバイスに対するビデオ・コーディング・デバイスのいくつかの追加機能であると考えられる。例えば、H.264は、9つのイントラ予測エンコード・モードを提供するが、HMは、35のイントラ予測エンコード・モードを提供しうる。
一般に、HMのワーキング・モデルは、ビデオ・モデルまたはピクチャが、輝度サンプルと彩度サンプルとの両方を含む最大コーディング・ユニット(LCU:largest coding unit)またはツリーブロックのシーケンスへ分割されうることを記載している。ツリーブロックは、H.264規格のマクロブロックと類似の目的を有する。スライスは、コーディング命令に、連続した多くのツリーブロックを含んでいる。ビデオ・フレームまたはピクチャは、1または複数のスライスへ分割されうる。おのおののツリーブロックは、クワッドツリーにしたがってコーディング・ユニット(CU)へ分割されうる。例えば、ツリーブロックは、クワッドツリーのルート・ノードとして、4つの子ノードへ分割される一方、おのおのの子ノードが親ノードとなり、別の4つの子ノードへ分割されうる。最後に、分割されない子ノードは、クワッドツリーのリーフ・ノードとして、コーディング・ノード、すなわち、コーディングされたビデオ・ブロックを備える。コーディングされたビットストリームに関連付けられたシンタックス・データは、ツリーブロックが分割されうる最大回数を規定し、また、コーディング・ノードの最小サイズをも規定しうる。
CUは、コーディング・ノードと、コーディング・ノードに関連付けられた変換ユニット(TU:transform unit)および予測ユニット(PU:prediction unit)を含む。CUのサイズは、コーディング・ノードのサイズに相当し、正方形の形状でなければならない。CUのサイズは、8×8ピクセルから、最大64×64またはそれ以上のピクセルを有するツリーブロックのサイズに及びうる。おのおののCUは、1または複数のPUおよび1または複数のTUを含みうる。CUに関連付けられたシンタックス・データは、例えば、CUを、1または複数のPUへ分割することを記述しうる。モードを分割することは、CUがスキップされるか、または、ダイレクト・モード・エンコードされるか、イントラ予測モード・エンコードされるか、インタ予測モード・エンコードされるかで異なりうる。PUは、非正方形の形状に分割されうる。CUに関連付けられたシンタックス・データはまた、例えば、クワッドツリーにしたがって、CUを1または複数のTUへ分割することを記述しうる。TUは、正方形の形状または非正方形の形状でありうる。
HEVC規格は、TUにしたがう変換を考慮している。これは異なるCUについて異なりうる。TUは、常にそうであるとは限らないが、一般に、分割されたLCUのために定義された所与のCU内のPUのサイズに基づいてサイズ化される。TUは、一般に、PUと同じサイズであるか、PUよりも小さい。いくつかの例において、CUに対応する残余サンプルは、「残余クワッドツリー」(RQT:residual quad tree)として知られているクワッドツリー構造を用いて、より小さなユニットに細分化されうる。RQTのリーフ・ノードは、TUと称されうる。TUに関連付けられたピクセル差分値は、変換係数を生成するために変換されうる。これは、量子化されうる。
一般に、PUは、予測処理に関連するデータを含む。例えば、PUが、イントラ・モード・エンコードされた場合、PUは、PUのためのイントラ予測モードを記述するデータを含みうる。別の例として、PUが、インタ・モード・エンコードされた場合、PUは、PUの動きベクトルを定義するデータを含みうる。PUの動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(例えば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが示す基準ピクチャ、および/または、動きベクトルの基準ピクチャ・リスト(例えば、リスト0、リスト1、またはリストC)、を記述しうる。
一般に、TUは、変換処理および量子化処理のために使用される。また、1または複数のPUを有する所与のCUは、1または複数のTUを含みうる。予測後、ビデオ・エンコーダ20は、PUに対応する残余値を計算しうる。残余値は、ピクセル差分値を備える。これは、変換係数へ変換され、量子化され、TUを用いてスキャンされて、エントロピ・コーディングのためのシリアル変換係数が生成される。本開示は一般に、CUのコーディング・ノードを称するために、「ビデオ・ブロック」、または、単に「ブロック」という用語を用いる。いくつかの特定のケースでは、本開示はまた、LCUまたはCUであるツリーブロックを称するために、「ビデオ・ブロック」という用語を用いる。これは、コーディング・ノードと、PUおよびTUを含む。
ビデオ・シーケンスは一般に、一連のビデオ・フレームまたはピクチャを含む。グループ・オブ・ピクチャ(GOP:group of pictures)は、一般に、1または複数のビデオ・ピクチャからなる一連のビデオ・ピクチャを備える。GOPは、GOPのヘッダ、ピクチャの1または複数のヘッダ、または別の何れかに、シンタックス・データを含みうる。これは、GOPに含まれるピクチャの数を記述している。ピクチャのおのおののスライスは、それぞれのスライスのためのエンコード・モードを記述するスライス・シンタックス・データを含みうる。ビデオ・エンコーダ20は一般に、ビデオ・データをエンコードするために、個々のビデオ・スライス内のビデオ・ブロックに対して動作する。ビデオ・ブロックは、CU内のコーディング・ノードに対応しうる。ビデオ・ブロックは、固定サイズまたは可変サイズを有しうる。そして、指定されたコーディング規格によってサイズが異なりうる。
例として、HMは、さまざまなPUサイズにおける予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NであるPUサイズではイントラ予測を、2N×2N、2N×N、N×2N、またはN×Nである対称なPUサイズではインタ予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズにおけるインタ予測のために、非対称分割をサポートする。非対称分割では、CUの1つの方向が分割されないが、他の方向が25%および75%へ分割される。25%分割に対応するCU部分は、“Up”、“Down”、“Left”、または“Right”を示すインジケーションが続く“n”によって示される。したがって、例えば、“2N×nU”は、トップにおいて2N×0.5N PUで、ボトムにおいて2N×1.5N PUを用いて水平的に分割される2N×2N CUを称する。
本開示では、“N×N”および“NバイN”は、例えば16×16ピクセルまたは16バイ16ピクセルのように、垂直寸法および水平寸法に関するビデオ・ブロックのピクセル寸法を称するために交換可能に使用されうる。一般に、16×16ブロックは、垂直方向に16ピクセル(y=16)と、水平方向に16ピクセル(x=16)を有するだろう。同様に、N×Nブロックは、一般に、垂直方向においてN個のピクセル、水平方向においてN個のピクセルを有する。ここで、Nは、負ではない正数値を表す。ブロックにおけるピクセルは、行と列とで構成されうる。さらに、ブロックは、必ずしも、垂直方向と同じ数のピクセルを、水平方向に有する必要はない。例えば、ブロックは、N×Mピクセルを備えうる。ここで、Mは、必ずしもNに等しくはない。
CUのPUを用いたイントラ予測コーディングまたはインタ予測コーディングの後、ビデオ・エンコーダ20は、CUのTUの残余データを計算しうる。PUは、(ピクセル領域とも称される)空間領域にピクセル・データを備えうる。そして、TUは、例えば、ディスクリート・コサイン変換(DCT)、整数変換、ウェーブレット変換、または、残余ビデオ・データへの概念的に類似の変換、のような変換の適用後、変換領域に係数を備えうる。残余データは、エンコードされていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応しうる。ビデオ・エンコーダ20は、CUのための残余データを含むTUを生成し、その後、TUを変換して、CUのための変換係数を生成する。
変換係数を生成するいずれの変換後も、ビデオ・エンコーダ20は、変換係数の量子化を実行しうる。量子化は一般に、変換係数が量子化され、恐らくは、さらなる圧縮によって、これら係数を表すために使用されるデータ量が低減される処理を称する。この量子化処理は、これら係数のうちのいくつかまたはすべてに関連付けられたビット・デプスを低減しうる。例えば、n−ビット値は、量子化中に、mビット値に丸められうる。ここで、nは、mよりも大きい。
いくつかの例において、ビデオ・エンコーダ20は、量子化された変換係数をスキャンするために、予め定義されたスキャニング、または、「スキャン」順を利用し、エントロピ・エンコードされうるシリアル・ベクトルが生成されうる。別の例では、ビデオ・エンコーダ20は、適応性スキャンを実行しうる。1次元ベクトルを生成するために、量子化された変換係数がスキャンされた後、ビデオ・エンコーダ20は、例えば、コンテキスト適応可変長コーディング、(CAVLC)、コンテキスト適応二進法コーディング、(CABAC)、シンタックス・ベース・コンテキスト適応二進法コーディング(SBAC)、確率インタバル分割エントロピ(PIPE)コーディング、または、その他のエントロピ・エンコード方法にしたがって、1次元ベクトルをエントロピ・エンコードしうる。ビデオ・エンコーダ20はさらに、ビデオ・データをデコードする際にビデオ・デコーダ30によって用いられるために、エンコードされたビデオ・データに関連付けられたシンタックス要素をエントロピ・エンコードしうる。
CABACを実行するために、ビデオ・エンコーダ20は、コンテキスト・モデル内のコンテキストを、送信されるべきシンボルへ割り当てうる。コンテキストは、例えば、シンボルの近隣値が、ゼロ値であるか否かに関連しうる。CAVLCを実行するために、ビデオ・エンコーダ20は、送信されるべきシンボルのために、可変長コードを選択しうる。VLCにおけるコードワードは、相対的に短いコードが、より確率の高いシンボルに対応する一方、相対的に長いコードが、より確率の低いシンボルに対応するように構築されうる。このように、VLCの使用は、例えば、送信されるべきおのおののシンボルについて、等しい長さのコードワードを使用することに対し、ビット節約を達成しうる。確率決定は、シンボルに割り当てられたコンテキストに基づきうる。
以下は、ビデオ・エンコーダ20およびビデオ・デコーダ30が、図2および図3に図示されるようなそのさまざまな構成要素として参照され、より詳細に後述される。前述したように、いくつかのビデオ・コーディング技法によれば、ビデオ・エンコーダ20では、オリジナルのビデオ・シーケンスのフレームが、長方形の領域、すなわち「ブロック」に分割されうる。これは、イントラ・モード(Iモード)コーディングまたはインタ・モード(PモードまたはBモード)コーディングを用いてコーディングされうる。これらブロックは、例えば、ディスクリート・コサイン変換(DCT)コーディングのようないくつかのタイプの変換コーディングを用いてコーディングされうる。しかしながら、純粋な変換ベースのコーディングは、ピクセルのブロック間相関を考慮せずに、特定のブロック内のピクセル間相関を低減するのみであり、送信のために、未だに、比較的高いビット・レートをもたらしうる。さらに、いくつかのデジタル画像コーディング規格もまた、ブロック間のピクセル値の相関を低減しうるいくつかの方法を開発しうる。
一般に、Pモードでエンコードされたブロックは、以前にコーディングされ、送信されたフレームのうちの1つから予測される。ブロックの予測情報は、二次元(2D)動きベクトルによって表わされる。Iモードでエンコードされたブロックについては、予測ブロックは、同じフレーム内の既にエンコードされた近隣ブロックからの空間予測を用いて生成される。予測誤差、すなわち、エンコードされているブロックと、予測ブロックとの間の差分は、いくつかのディスクリート変換の、重み付けられた基本関数のセットとして表される。この変換は、一般に、N×Nブロック・ベースで実行される。重み、すなわち、変換係数が、続いて量子化されうる。量子化は、情報の損失をもたらすので、量子化された係数は、オリジナルの係数よりも低い精度しか持たない。
量子化された変換係数は、動きベクトルおよびいくつかの制御情報とともに、完全にコーディングされたシーケンス表示を形成し、シンタックス要素と称される。ビデオ・エンコーダ20からビデオ・デコーダ30への送信に先立って、すべてのシンタックス要素は、これらの表示のために必要とされるビット数をさらに低減できるように、エントロピ・コーディングされる。
ビデオ・デコーダ30は、先ず、ビデオ・エンコーダ20を参照して前述されたものと同じ方式で予測ブロックを構築し、さらに、(残余ブロックによって表される)圧縮された予測誤差を予測ブロックへ加えることによって、現在のフレームにおけるブロックを得る。圧縮された予測誤差は、量子化された係数を用いて、変換ベースの関数を重み付けることによって得られる。再構築されたフレームとオリジナルのフレームとの間の差分は、再構築誤差と呼ばれる。
本開示は、例えばCABAC処理のようなコンテキスト適応エントロピ・コーディング処理を実行することの一部として、ビデオ・データをコーディングするために使用されるコンテキストの、初期コンテキスト状態、すなわち初期確率を決定するための技法に関する。算術的なコーディングは、高いコーディング効率を有する多くの圧縮アルゴリズムで使用されるエントロピ・コーディングの形態をとる。なぜなら、非整数長さのコードワードにシンボルをマップすることができるからである。算術的なコーディング・アルゴリズムの例は、H.264/AVCにおいて使用されるコンテキスト・ベースの(または、「コンテキスト適応」)二進法コーディング(CABAC)である。
一般に、CABACを用いてデータ・シンボルをコーディングすることは、以下のステップのうちの1または複数を含む。
(1)2値化:コーディングされるシンボルが非二進数値であれば、例えばビデオ・エンコーダ20またはビデオ・デコーダ30のようなビデオ・コーダは、このシンボルを、いわゆる「ビン」のシーケンスにマップする。おのおののビンは、「0」または「1」の値を有しうる。
(2)コンテキスト割当:ビデオ・コーダは、おのおののビンを(規則的なモードで)コンテキストに割り当てる。例えば、ビデオ・コーダは、以前にエンコードされたシンボルの値、またはビン数のような、ビンのために利用可能な情報に基づいて、所与のビンのコンテキストがどのようにして計算されるべきであるかを決定するために、コンテキスト・モデルを用いる。
(3)ビン・エンコード:例えば、ビデオ・エンコーダ20のような算術的なエンコーダが、ビンをエンコードする。ビンをエンコードするために、算術的なエンコーダ(例えば、ビデオ・エンコーダ20)は、ビンの値が“0”に等しい確率、および、ビンの値が “1”に等しい確率のようなビンの値の確率を入力として用いる。おのおののコンテキストの(推定された)確率は、「コンテキスト状態」と呼ばれる整数値によって表される。おのおののコンテキストは、状態を有しているので、この状態(すなわち、推定された確率)は、1つのコンテキストに割り当てられたビンのものと同じであり、コンテキスト毎に異なる。
(4)状態更新:ビデオ・コーダは、選択されたコンテキストの確率(状態)を、実際にコーディングされたビンの値に基づいて更新する(例えば、ビン値が“1”であれば、 “1”の確率が高められうる)。
(2)コンテキスト割当:ビデオ・コーダは、おのおののビンを(規則的なモードで)コンテキストに割り当てる。例えば、ビデオ・コーダは、以前にエンコードされたシンボルの値、またはビン数のような、ビンのために利用可能な情報に基づいて、所与のビンのコンテキストがどのようにして計算されるべきであるかを決定するために、コンテキスト・モデルを用いる。
(3)ビン・エンコード:例えば、ビデオ・エンコーダ20のような算術的なエンコーダが、ビンをエンコードする。ビンをエンコードするために、算術的なエンコーダ(例えば、ビデオ・エンコーダ20)は、ビンの値が“0”に等しい確率、および、ビンの値が “1”に等しい確率のようなビンの値の確率を入力として用いる。おのおののコンテキストの(推定された)確率は、「コンテキスト状態」と呼ばれる整数値によって表される。おのおののコンテキストは、状態を有しているので、この状態(すなわち、推定された確率)は、1つのコンテキストに割り当てられたビンのものと同じであり、コンテキスト毎に異なる。
(4)状態更新:ビデオ・コーダは、選択されたコンテキストの確率(状態)を、実際にコーディングされたビンの値に基づいて更新する(例えば、ビン値が“1”であれば、 “1”の確率が高められうる)。
CABAC処理を開始する前に、ビデオ・コーダは、初期コンテキスト状態を、おのおののコンテキストへ割り当てうる。現在開発中のHEVC規格のバージョン“HM4.0”およびH.264におけるおのおののコンテキストに初期コンテキスト状態を割り当てるために線形モデルが用いられている。具体的には、おのおののコンテキストに対して、予め定義されたパラメータである傾き(“m”)と交差(“n”)が存在しうる。これらは、初期値と称されうる。ビデオ・コーダは、以下の式を用いて、特定のコンテキストのための初期コンテキスト状態を導出しうる。
Int iInitState=((m*iQP)/16)+n; 式1
iInitState=min(max(1,iInitState)、126);式2
ここで、iQPは、コーディングされているビデオ・データに関連付けられた量子化パラメータ(しばしば、初期QPと称される)である。HEVCのバージョン“HM 5.0”では、おのおののコンテキストの初期値は、(H.264およびHM4.0におけるケースのようなmおよびnではなく)8ビットの整数値“m8”として表される。そして、CABAC初期コンテキスト状態を導出するために、(すなわち、m8値およびiQP値を用いて)ピース・ワイズの線形関数が使用される。
Int iInitState=((m*iQP)/16)+n; 式1
iInitState=min(max(1,iInitState)、126);式2
ここで、iQPは、コーディングされているビデオ・データに関連付けられた量子化パラメータ(しばしば、初期QPと称される)である。HEVCのバージョン“HM 5.0”では、おのおののコンテキストの初期値は、(H.264およびHM4.0におけるケースのようなmおよびnではなく)8ビットの整数値“m8”として表される。そして、CABAC初期コンテキスト状態を導出するために、(すなわち、m8値およびiQP値を用いて)ピース・ワイズの線形関数が使用される。
異なるスライス・タイプ(例えば、Iモード、Pモード、およびBモード)については、同じシンタックス要素のために、前述された推定確率は異なりうる。したがって、多くの既存のビデオ圧縮規格および/またはシステムが、異なるスライス・タイプのために、異なるセットの初期値を用いる。その結果、これらの規格および/またはシステムによって用いられる初期値の合計ストレージは、以下のように表わされうる。
初期値の数=コンテキストの数*スライス・タイプの数 式3
コンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストの初期コンテキスト状態を決定すること(一般に、1または複数のコンテキストを「初期化すること」)に関連する前述したさまざまなアプローチは、いくつかの欠点を有する。例えば、前述された式3における関係によって例示されているように、特定のコンテキスト適応エントロピ・コーディング処理の初期値の数(例えば、前述された式3の「初期値の数」)は、比較的大きくなり、相当な量のデータ・ストレージを必要としうる。
初期値の数=コンテキストの数*スライス・タイプの数 式3
コンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストの初期コンテキスト状態を決定すること(一般に、1または複数のコンテキストを「初期化すること」)に関連する前述したさまざまなアプローチは、いくつかの欠点を有する。例えば、前述された式3における関係によって例示されているように、特定のコンテキスト適応エントロピ・コーディング処理の初期値の数(例えば、前述された式3の「初期値の数」)は、比較的大きくなり、相当な量のデータ・ストレージを必要としうる。
本開示は、いくつかのケースでは、前述された欠点のうちのいくつかを低減または除去しうるいくつかの技法を記述する。例えば、本開示は、同じ、または「共通の」初期値(または初期値「セット」)を用いて、異なるスライス・タイプを有するビデオ・データのスライスのシンタックス要素のコンテキストの初期化を可能にすることによって、コンテキスト適応エントロピ・コーディング処理の初期値のために格納されるデータの量を低減するために使用されうるいくつかの技法を提供する。言い換えれば、開示された技法は、異なるスライス・タイプ間で1または複数の初期値セットを「共有」することによって、異なるスライス・タイプを有するビデオ・データのスライスをコーディングすることをイネーブルしうる。
一例として、例えば、SliceType_0、…、SliceType_M−1のような「M」個の異なるスライス・タイプと、例えば、InitializationSet_0、…、InitializationSet_N−1のような「N」個の初期値のセットとが使用されうる。異なるスライス・タイプを、異なる初期値セットへマップするために、例えば、“InitializationSet_k=f(SliceType_i))”のようなマッピングまたは「マッピング関数」が定義されうる。例えば、複数のスライス・タイプが同じ初期値セットにマップされた場合、前述されたデータ・ストレージ節約が達成されうる。
いくつかの例では、3つの異なるスライス・タイプ(例えば、Iモード、Pモード、およびBモード)と、2つの初期値セット、例えば、Set1およびSet2のみが使用されうる。これらの例において、Iモード・スライスおよびBモード・スライスが、初期値Set1を使用し、Pモード・スライスが、初期値Set2を使用しうる。他の例では、Pモード・スライスおよびBモード・スライスが、初期値Set1を使用し、Bモード・スライスが、初期値Set2を使用するという具合である。さらに別の例では、3つのスライス・タイプと1つの初期値セットのみが使用されうる。これらの例では、3つのスライス・タイプ(すなわち、Iモード、Pモード、およびBモード)はすべて、同じ初期値セットを使用しうる。
別の例として、前述したマッピング関数(すなわち、スライスの1または複数のシンタックス要素をコーディングするために使用される初期値セットへ、ビデオ・データのスライスのスライス・タイプをマップするために使用されるマッピング関数)は、予め定義されているか、または、「固定」されており、例えば、ビデオ・エンコーダ20とビデオ・デコーダ30との両方に既知でありうる。あるいは、マッピング関数は、ユーザ指定されるか、および/または、例えば、適応パラメータ・セット(APS)、ピクチャ・パラメータ・セット(PPS)、シーケンス・パラメータ・セット(SPS)、ビデオ・パラメータ・セット(VPS)、スライス・ヘッダ、フレーム・ヘッダ、シーケンス・ヘッダ等のようないくつかの高レベルなシンタックス情報を用いて、ビデオ・デコーダ30へ明示的にシグナルされうる。別の例では、マッピング関数は、適応的でありうる。これによって、例えば、マッピング関数は、ビデオ・データに関連付けられた、例えば、QP、フレーム解像度、GOP構造、またはその他の情報のような、ビデオ・データに関連付けられた「サイド」情報に依存するようになりうる。
さらに別の例として、以前の例を参照して前述された技法は、すべてのコンテキストのうちのサブセットにのみ適合しうる。例えば、合計コンテキストは、例えば、HM 5.0では、ctx0からctx252のような253のコンテキストを含みうる。一例として、合計コンテキストのサブセット、例えば、“CtxSubset”が定義されうる。そのため、このサブセットに属するコンテキストのみが、前述された方式で、すなわち、異なるスライス・タイプについて、同じ初期値セットを用いて初期化されうる。その他のコンテキスト(すなわち、このサブセットに属さないコンテキスト)の場合、初期値は、異なるスライス・タイプについて異なりうる。このようなコンテキストのサブセットの例は、例えば、最後の有意な係数位置データ(例えば、“last_significant_coeff_flag”)、有意なマップ・データ(例えば、“significant_coeff_flag”)、レベル・データ(例えば、“coeff_abs_level_minus1”および“coeff_sign_flag”)、「1より大きな」フラグ・データ(例えば、“larger_than_one_flag”)、「2より大きな」フラグ・データ(例えば、“「larger_than_two_flag”)等をコーディングするために使用されるコンテキストのような、係数コーディングに関連するコンテキストを含むサブセットである。言い換えれば、これらコンテキストのサブセットは、ビデオ・データに関連付けられたシンタックス要素の1または複数のタイプに対応しうる。
いくつかの例では、コンテキストの別のサブセットが、別の初期値セットに対応しうる。特に、一例として、コンテキストの第1のサブセット(例えば、“subset 1”)は、初期値セットのうちの第1のグループを用いて初期化されうる一方、コンテキストの第2のサブセット(例えば、“subset 2”)は、初期値セットのうちの、別の第2のグループを用いて初期化されうる。この例では、初期値セットのうちの第1のグループと第2のグループのおのおのが、1または複数の初期値セットを含みうる。
一例において、コンテキストのサブセットの定義は、予め定義されうるか、固定されており、例えば、ビデオ・エンコーダ20とビデオ・デコーダ30との両方に知られている。別の例において、コンテキストのサブセットの定義は、ユーザ選択されうるか、および/または、前述した高レベルなシンタックス情報内でビデオ・デコーダ30へ明示的にシグナルされうる。さらに、コンテキストのサブセットの定義は、適応的でもあり、これによって、例えば、この定義は、前述したサイド情報に依存するようになりうる。
さらに別の例として、例えば、“CtxSubseti”のようなコンテキストの複数のサブセットが定義され、コンテキストの異なるサブセットのための初期値共有のためのマッピング関数が、コンテキストの複数のサブセット間で異なりうる。前述した例に記載されたものと類似の方式で、コンテキストの複数のサブセットの定義が、予め定義されうるか、ユーザ指定されうるか、および/または、前述したように、ビデオ・データに関連付けられたサイド情報に依存しうる。さらに、マッピング関数が、予め定義されうるか、ユーザ指定されうるか、および/または、前述したように、ビデオ・データに関連付けられたサイド情報に依存しうる。
前述した式1および式2に例示されるように、初期CABAC状態(“iInitState”)値は、初期値(“InitValue”)(例えば、“m”値、“n”値、および“m8”値)と、“iQP”値との、(指定子“f”によって示されるような)関数、すなわち、iInitState=f(InitValue、iQP)である。開示された技法と一致する別の例として、異なるスライス・タイプに関連付けられているものの、同じ初期値(または、同じ初期値「セット」)を共有するコンテキストの場合、コンテキスト初期化処理は、スライス・タイプにも依存しうる。言い換えれば、コンテキスト初期化処理は、以下の関係を用いて実行されうる。
iInitState=G(InitValue,iQP,SliceType)
ここで、iInitStateは、InitValue、iQP、のみならず“SliceType”の関数(すなわち、指示子“G”によって示される)である。この例において、SliceTypeは、コーディングされているビデオ・データに関連付けられたスライス・タイプに対応する。
iInitState=G(InitValue,iQP,SliceType)
ここで、iInitStateは、InitValue、iQP、のみならず“SliceType”の関数(すなわち、指示子“G”によって示される)である。この例において、SliceTypeは、コーディングされているビデオ・データに関連付けられたスライス・タイプに対応する。
一例において、“QPOffset”または“dQP”が、おのおののスライス・タイプのために定義され、初期コンテキスト状態は、以下のように計算されうる。
Int iInitState=((m*(iQP+dQP))/16)+n; 式4
iInitState=min(max(1,iInitState),126);式5
一般に、Iモード・スライスのdQPの値は、いくつかの例において、Bモード・スライスおよびPモード・スライスに対するdQPの値よりも小さくなりうる。
Int iInitState=((m*(iQP+dQP))/16)+n; 式4
iInitState=min(max(1,iInitState),126);式5
一般に、Iモード・スライスのdQPの値は、いくつかの例において、Bモード・スライスおよびPモード・スライスに対するdQPの値よりも小さくなりうる。
別の例として、異なるスライス・タイプを有する複数のスライスが、同じ初期値セットを共有するが、おのおののスライスのコンテキスト初期化処理が、対応するスライス・タイプにも依存する前述した技法は、前述したものと類似した方式で、すべてのコンテキストのうちのサブセットにのみ適用されうる。
一例として、コンテキストのサブセットの定義は、例えば、ビデオ・エンコーダ20とビデオ・デコーダ30との両方に知られているように、予め定義されうる。別の例では、コンテキストのサブセットの定義は、ユーザ選択されうるか、および/または、前述した高レベルのシンタックス情報とともに、ビデオ・デコーダ30へ明示的にシグナルされうる。さらに、コンテキストのサブセットの定義は、適応的でもあり、この定義は、前述したサイド情報に依存するようになりうる。
前述した技法は一般に、1または複数のスライスに関連付けられたスライス・タイプ情報に基づいて、初期値セットを選択することによって、ビデオ・データの1または複数のスライスの1または複数のシンタックス要素をコーディングするために使用されるコンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストを初期化することに関連する。前述した技法に加えて、本開示はまた、1または複数のスライスに関連付けられた1または複数の初期インジケータ値に基づいて、初期値セットを選択することによって、ビデオ・データの1または複数のスライスの1または複数のシンタックス要素をコーディングするために使用されるコンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストを初期化するための技法をも含む。
特に、開示された技法にしたがって、ビデオ・エンコーダ20および/ビデオ・デコーダ30は、前述した例によって例示されるように、スライス・タイプに厳密に基づいて初期値セットを選択するのではなく、ビデオ・データのスライスの1または複数のシンタックス要素をコーディングするために使用される1または複数のコンテキストを初期化するために、1または複数の初期値セットを適応的に選択するように構成されうる。
一例として、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、前述したように、ビデオ・データに関連付けられたサイド情報に基づいて、ビデオ・データのスライスの初期値セットを推論するように構成されうる。この方式では、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、スライスの1または複数の特徴に基づいて、複数の初期値セットにおける初期値セットを決定しうる。ここで、初期値セットのおのおのは、ビデオ・データのスライスの1または複数のシンタックス要素のそれぞれの初期コンテキスト状態を定義している。この例では、前述した技法とは対照的に、1または複数の特徴は、ビデオ・データのスライスのスライス・タイプを含んでいない。また、この例では、ビデオ・エンコーダ20および/またはビデオ・デコーダ30はさらに、決定された初期値セットに基づいて、ビデオ・データのスライスの1または複数のシンタックス要素をコーディングするように構成されうる。
別の例として、ビデオ・データのおのおののスライスのために、ビデオ・エンコーダ20は、送信し、ビデオ・デコーダ30は、(すなわち、それぞれの「現在の」スライスに関連付けられた1または複数のシンタックス要素をコーディングするために使用される)ビデオ・データのそれぞれのスライスのためにどの特定の初期値セットが使用されるのかを指定するシンタックス要素タイプ“cabac_init_idc”のシンタックス要素(例えば、いわゆる「初期インジケータ値」)を受信しうる。例えば、「N」個の初期値セット、set0,set1,…,setN−1があると仮定されたい。この例におけるcabac_init_idcの値(すなわち、「初期インジケータ」値)の範囲は、 “0”から“N−1”でありうる。(現在のスライスについてコーディング/シグナルされたような)“cabac_init_idc i”」は、“seti”が、現在のスライスのために選択されていることを明示しうる。いくつかの例では、ビデオ・データの特定のスライスの初期値セットの選択は、スライスのスライス・タイプに関連していないかもしれないが、スライスのcabac_init_idcの値に純粋に依存しうる。選択された初期値セットは、いくつかの例では、set0,set1,…setN−1のうちの何れか1つでありうる。
いくつかの例において、cabac_init_idcの値は、前述した高レベルのシンタックスを用いて明示的に送信されうる。そして、生バイト・シーケンス・ペイロード(RBSP)として送信されうるか、固定長コード、可変長コード、または算術コードを用いてエンコードされうる。
さらに別の例では、前述したものと類似の方式で、シンタックス要素タイプの初期インジケータ値cabac_init_idcを参照して前述された技法は、すべてのコンテキストのうちのサブセットにのみ適用されうる。例えば、HM 5.0では、以前に説明されたように、ctx0からctx252として指定された253のコンテキストがある。253のコンテキストのうちの何れかのみを含む、コンテキストのサブセットCtxSubsetが、再度定義されうる。この例では、特定のシンタックス要素タイプをコーディングするために使用されるコンテキストが、コンテキストのこのサブセットに属する場合にのみ、コンテキストの初期値セットの選択は、cabac_init_idcの値に基づきうる(あるいは、前述したように、サイド情報に基づいて推論される)。その他のコンテキスト(すなわち、このサブセットに属さないコンテキスト)については、初期値または初期値セットは、例えば、H.264/AVCを参照して前述された技法のような、その他の技法を用いて決定または選択されうる。
一例において、コンテキストのサブセットの定義は、予め定義され、ビデオ・エンコーダ20とビデオ・デコーダ30との両方に利用可能でありうる。別の例において、コンテキストのサブセットの定義は、ユーザ選択されうるか、および/または、前述した高レベルのシンタックス内で、ビデオ・デコーダ30へ明示的にシグナルされうる。コンテキストのサブセットの定義は適応的でもありうる。これは、マッピングが、前述したサイド情報に依存しうることを意味しうる。
いくつかの例において、複数のシンタックス要素(例えば、cabac_init_idc0,cabac_init_idc1,…,cabac_init_idcN)が送信され、おのおのが、すべてのコンテキストのサブセットに対応しうる。例えば、“cabac_init_idc0”は、コンテキスト“CtxSubset0”のサブセットに対応しうる。これは、係数コーディング関連コンテキストを含みうる。“Cabac_init_idc0=i”は、係数コーディング関連コンテキストが、「i番目」の初期値セットを使用することを示しうる。同様に、その他のcabac_init_idc値は、その他のシンタックス要素サブセットに関連しうる。いくつかの例では、サブセットの定義が、予め定義され、ビデオ・エンコーダ20およびビデオ・デコーダ30の両方に知られている。その他の例において、サブセットの定義は、ユーザ選択され、前述した高レベルのシンタックス内で、ビデオ・デコーダ30へ明示的にシグナルされうる。コンテキストのサブセットの定義は、適応的でもあり、例えば、マッピングが、前述したサイド情報に依存しうる。
いくつかの例では、cabac_init_idcの値は、例えば、おのおののスライス・ヘッダにおいて、おのおののスライスのために送信されうる。その他の例では、cabac_init_idcの値は、例えば、Slice_0のような、現在のスライスのために送信されうる。その後、同じタイプのその後のスライスについて、初期値セットの選択は、以前の選択を無効にするためにあるポイントにおいてcabac_init_idcの新たな値が受信されるまで、Slice_0と同じでありうる。このように、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、現在のスライス後の1または複数の後続するスライスの第1のセットのデータを、現在のスライスのためにシグナルされた複数の初期値セットにおける第1の初期値セットに基づいてコーディングし、複数の初期値セットにおける第2の初期値セットを代表する第2の値をコーディングし、第2の初期値セットに基づいて、1または複数の後続するスライスの第2のセットをコーディングしうる。
いくつかの例において、cabac_init_idcの値は、複数のスライス・タイプに影響を有しうる。例えば、以下のスライスの場合、“cabac_init_idc=1”であれば、BスライスおよびIスライスによって現在使用されている初期値セットが交換されうる。別の例では、cabac_init_idcは、初期化値セットのシフトを引き起こしうる。例えば、Iスライス、Pスライス、およびBスライスは、現在、それぞれ、初期値セット0,1,2を使用しうる。cabc_init_idc=1を受信した後、Iスライス、Pスライス、およびBスライスはそれぞれ、初期セット1,2,0を使用しうる。
さらに、前述したように、いくつかの例では、cabac_init_idcの値(すなわち、シンタックス要素タイプに対応する初期インジケータ値cabac_init_idc)は、明示的に送信される必要はない。代わりに、これらの例では、cabac_init_idcの値は、前述したサイド情報を用いて推論されうる。
いくつかの例において、前述されたコンテキスト初期化技法は、CABAC、SBAC、PIPEを含む任意のコンテキスト適応エントロピ・コーディング方法、または、その他のコンテキスト適応エントロピ・コーディング方法と連携して使用されうる。CABACは、全体として、本開示において広く記載された技法に関し、例示のみの目的で、限定することなく、本開示において記載される。さらに、既に説明されたように、開示された技法は、一般に、例えば、ビデオ・データに加えて、または、ビデオ・データの代わりに、その他のタイプのデータのコーディングに適用されうる。
一例として、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、前述したように、ビデオ・データの1または複数のブロックをコーディングするように構成されうる。例えば、1または複数のブロックのおのおのは、ビデオ・データのフレームの特定のスライスに対応しうる。この例において、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、初期値セットを用いて、第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素をコーディングするように構成されうる。さらに、この例では、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、その後、初期値セットを用いて、第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、特定のタイプのシンタックス要素(すなわち、第1のシンタックス要素のものと同じタイプのシンタックス要素)にしたがう第2のシンタックス要素をコーディングするように構成されうる。
いくつかの例では、第1のスライス・タイプは、第2のスライス・タイプとは異なりうる。例えば、前述したように、第1のスライス・タイプは、空間的に予測された“I”スライス・タイプと、時間的に予測された“P”スライス・タイプおよび“B”スライス・タイプとのうちの何れか一方に対応しうる一方、第2のスライス・タイプは、前述したスライス・タイプのうちの他方に対応しうる。さらに、その他の例では、第1のスライス・タイプおよび第2のスライス・タイプのうちの少なくとも1つが、時間的に予測されたスライス・タイプでありうる。例えば、第1のスライス・タイプおよび第2のスライス・タイプのうちの少なくとも1つは、時間的に予測された“P”スライス・タイプおよび“B”スライス・タイプのうちの何れか1つに対応しうる。
前述した例によって例示されるように、ビデオ・エンコーダ20およびビデオ・デコーダ30のおのおのに起因するコーディング特性に加えて、本開示の技法はまた、ビデオ・データのスライスの、2またはそれ以上の異なるタイプを、共通の初期値セットに関連付けるコンフィギュレーション・データ(例えば、1または複数のシンタックス要素)を生成することを含む。このように、開示された技法は、ビデオ・エンコーダ20および/またはビデオ・デコーダ30が、コンフィギュレーション・データを解釈し、このコンフィギュレーション・データに基づいて、異なるスライス・タイプを有する2またはそれ以上の異なるスライスのシンタックス要素をコーディングするために同じ初期値セットを用いることをイネーブルしうる。
この方式では、本開示の技法は、第1のスライスおよび第2のスライスの第1のシンタックス要素および第2のシンタックス要素をコーディング(すなわち、エンコードおよび/またはデコード)するために、ビデオ・エンコーダ20および/またはビデオ・デコーダ30が、同じ、または、共通の初期値セットを用いることをイネーブルすることによって、例えばビデオ・データのようなデータをコーディングするためにビデオ・エンコーダ20および/またはビデオ・デコーダ30を用いる場合、ビデオ・エンコーダ20および/またはビデオ・デコーダ30の複雑さを低減しうる(例えば、処理および/またはストレージ・リソースを簡素化し、または、その使用量を低減しうる)。
さらに、開示された技法は、ビデオ・エンコーダ20および/またはビデオ・デコーダが、データをより効率的にコーディングすることをイネーブルしうる。例えば、これら技法は、ビデオ・エンコーダ20および/またはビデオ・デコーダ30が、データに関連付けられたスライス・タイプ情報、あるいは、データに関連付けられた1または複数の初期インジケータ値に基づいて、データをコーディングするために使用されるコンテキスト適応エントロピ・コーディング処理(例えば、CABAC処理)の1または複数のコンテキストを初期化することをイネーブルしうる。その結果、初期化されると、1または複数のコンテキストは、その他のコンテキスト初期化技法を用いて決定された確率推定値に対して、より正確な確率推定値を含みうる。そのため、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、他の技法と比べて、より効率的に(例えば、より少ないビットを用いて)データをコーディングしうる。
ビデオ・エンコーダ20およびビデオ・デコーダ30はおのおの、例えば、1または複数のマイクロプロセッサ、DSP、ASIC、FPGA、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせのような、さまざまな適切なエンコーダ回路またはデコーダ回路のうちの何れかとして適切に実現されうる。ビデオ・エンコーダ20およびビデオ・デコーダ30のおのおのは、1または複数のエンコーダまたはデコーダに含まれうる。これらの何れかは、結合されたビデオ・エンコーダ/デコーダ(コーデック)の一部として統合されうる。ビデオ・エンコーダ20および/またはビデオ・デコーダ30を含む装置は、集積回路(IC)、マイクロプロセッサ、および/または、例えばセルラ電話のような無線通信デバイスを備えうる。
図2は、本開示の技法と一致して、低減された初期値セットを用いたコンテキスト適応エントロピ・コーディングのための技法を実行しうるビデオ・エンコーダの例を例示するブロック図である。ビデオ・エンコーダ20は、ビデオ・スライス内で、ビデオ・ブロックのイントラ・コーディングおよびインタ・コーディングを実行しうる。イントラ・コーディングは、所与のビデオ・フレームまたはピクチャ内のビデオにおける空間冗長を低減または除去するために、空間予測に依存する。インタ・コーディングは、ビデオ・シーケンスの隣接するフレームまたはピクチャ内のビデオにおける時間冗長を低減または除去するために、時間予測に依存する。イントラ・モード(Iモード)は、いくつかの空間ベースの圧縮モードのうちの何れかを称しうる。例えば一方向予測(Pモード)または双方向予測(Bモード)のようなインタ・モードは、いくつかの時間ベースの圧縮モードのうちの何れかを称しうる。
図2の例では、ビデオ・エンコーダ20は、モード選択ユニット40、動き推定ユニット42、動き補償ユニット44、イントラ予測モジュール46、基準フレーム・メモリ64、加算器50、変換モジュール52、量子化ユニット54、およびエントロピ・エンコード・ユニット56を含む。ビデオ・ブロック再構築のために、ビデオ・エンコーダ20はまた、逆量子化ユニット58、逆変換ユニット・モジュール60、および加算器62を含んでいる。再構築されたビデオからのブロックノイズ・アーティファクトを除去するために、フィルタ・ブロック境界に、デブロッキング・フィルタも含まれうる。
図2に図示されるように、ビデオ・エンコーダ20は、エンコードされるべきビデオ・スライス内で、現在のビデオ・ブロックを受け取る。スライスは、複数のビデオ・ブロックに分割されうる。モード選択ユニット40は、誤り結果に基づいて、現在のビデオ・ブロックのために、イントラまたはインタであるコーディング・モードのうちの1つを選択しうる。イントラ・モードまたはインタ・モードが選択されているのであれば、モード選択ユニット40は、結果として得られたイントラ・コード・ブロックまたはインタ・コード・ブロックを、残余ブロック・データを生成するために加算器50へ提供し、エンコードされたブロックを、基準ピクチャとして使用するために再構築するために加算器62へ提供する。イントラ予測モジュール46は、同じフレームまたはスライス内の1または複数の近隣ブロックに対する現在のビデオ・ブロックのイントラ予測コーディングを、空間圧縮を提供するためにコーディングされるべき現在のブロックとして実行する。動き推定ユニット42および動き補償ユニット44は、時間圧縮を提供するために、1または複数の基準ピクチャ内の1または複数の予測ブロックに対する現在のビデオ・ブロックのインタ予測コーディングを実行する。
インタ・コーディングの場合、動き推定ユニット42は、ビデオ・シーケンスのために予め定められたパターンにしたがって、ビデオ・スライスのインタ予測モードを決定するように構成されうる。予め定められたパターンは、シーケンス内のビデオ・スライスを、Pスライス、Bスライス、またはGPBスライスとして指定しうる。動き推定ユニット42および動き補償ユニット44は、統合されうるが、概念的な目的のために、個別に例示されている。動き推定ユニット42によって実行される動き推定は、動きベクトルを生成する処理であり、ビデオ・ブロックの動きを推定する。例えば、動きベクトルは、基準ピクチャ内の予測ブロックに対する現在のビデオ・フレームまたはピクチャ内のビデオ・ブロックのPUの変位を示しうる。
予測ブロックは、ピクセル差分に関してコーディングされるべきビデオ・ブロックのPU近くに一致していることが発見されたブロックである。これは、絶対差分の総和(SAD)、平方差分の総和(SSD)、またはその他の差分メトリックによって決定されうる。いくつかの例では、ビデオ・エンコーダ20は、基準フレーム・メモリ64内に格納された基準ピクチャの整数未満のピクセル位置の値を計算しうる。例えば、ビデオ・エンコーダ20は、基準ピクチャの1/4ピクセル位置、1/8ピクセル位置、または、その他の分数のピクセル位置の値を計算しうる。したがって、動き推定ユニット42は、フル・ピクセル位置および分数ピクセル位置に対する動き探索を実行し、分数ピクセル精度を持つ動きベクトルを出力しうる。
動き推定ユニット42は、PUの位置を、基準ピクチャの予測ブロックの位置と比較することによって、インタ・コード・スライスにおけるビデオ・ブロックのPUの動きベクトルを計算する。基準ピクチャは、第1の基準ピクチャ・リスト(リスト0)または第2の基準ピクチャ・リスト(リスト1)から選択されうる。これらの基準ピクチャ・リストのおのおのは、基準フレーム・メモリ64に格納された1または複数の基準ピクチャを特定する。動き推定ユニット42は、計算された動きベクトルを、エントロピ・エンコード・ユニット56および動き補償ユニット44へ送信する。
動き補償ユニット44によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを含みうる。現在のビデオ・ブロックのPUの動きベクトルが受け取られると、動き補償ユニット44は、基準ピクチャ・リストのうちの1つにおいて動きベクトルが示す予測ブロックを位置決めしうる。ビデオ・エンコーダ20は、予測ブロックのピクセル値を、コーディングされている現在のビデオ・ブロックのピクセル値から引くことによって、残余ビデオ・ブロックを生成する。これは、ピクセル差分値を生成する。ピクセル差分値は、ブロックの残余データを生成し、輝度差分成分と彩度差分成分との両方を含みうる。加算器50は、この減算演算を実行する構成要素(単数または複数)を表す。動き補償ユニット44はまた、ビデオ・スライスのビデオ・ブロックをデコードする際に、ビデオ・デコーダ30によって使用するために、ビデオ・ブロックおよびビデオ・スライスに関連付けられたシンタックス要素を生成しうる。
動き補償ユニット44が、現在のビデオ・ブロックのための予測ブロックを生成した後、ビデオ・エンコーダ20が、現在のビデオ・ブロックから予測ブロックを引くことによって、残余ビデオ・ブロックを生成する。残余ブロックにおける残余ビデオ・データは、1または複数のTUに含まれ、変換モジュール52へ適用されうる。変換モジュール52は、例えば、ディスクリート・コサイン変換(DCT)または概念的に類似する変換のような変換を用いて、残余ビデオ・データを、残余変換係数へ変換する。変換モジュール52は、残余ビデオ・データを、ピクセル領域から、例えば周波数領域のような変換領域へ変換しうる。
変換モジュール52は、結果として得られた変換係数を量子化ユニット54へ送信しうる。量子化ユニット54は、さらにビット・レートを低減するために、この変換係数を量子化する。この量子化処理は、これら係数のうちのいくつかまたはすべてに関連付けられたビット・デプスを低減しうる。量子化の程度は、QPを調節することにより修正されうる。いくつかの例では、その後、量子化ユニット54は、量子化された変換係数を含むマトリックスのスキャンを実行しうる。あるいは、エントロピ・エンコード・ユニット56が、このスキャンを実行しうる。
量子化の後、エントロピ・エンコード・ユニット56は、量子化された変換係数を、エントロピ・エンコードする。例えば、エントロピ・エンコード・ユニット56は、CAVLC、CABAC、またはその他のエントロピ・エンコード技法を実行しうる。エントロピ・エンコード・ユニット56によるエントロピ・エンコードの後、エンコードされたビットストリームは、ビデオ・デコーダ30へ送信されるか、または、ビデオ・デコーダ30によるその後の送信または取得のためにアーカイブされうる。エントロピ・エンコード・ユニット56はまた、コーディングされている現在のビデオ・スライスの動きベクトルおよびその他のシンタックス要素をエントロピ・エンコードしうる。
逆量子化ユニット58および逆変換モジュール60は、基準ピクチャの基準ブロックとして後に使用するために、ピクセル領域内の残余ブロックを再構築するために、それぞれ、逆量子化および逆変換を適用する。動き補償ユニット44は、残余ブロックを、基準ピクチャ・リストのうちの1つ内の基準ピクチャのうちの1つの予測ブロックへ加えることによって、基準ブロックを計算しうる。動き補償ユニット44はまた、動き推定において使用するための整数未満のピクセル値を計算するために、1または複数の補間フィルタを、再構築された残余ブロックに適用しうる。加算器62は、基準ピクチャ・メモリ66内に格納するための基準ブロックを生成するために、動き補償ユニット44によって生成された動き補償予測ブロックへ、再構築された残余ブロックを加える。基準ブロックは、その後のビデオ・フレームまたはピクチャ内のブロックをインタ予測するための基準ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用されうる。
いくつかの例において、ビデオ・エンコーダ20は、例えば、ビデオ・デコーダ30および/または記憶デバイス24への、ビットストリームでの送信のために、ビデオ・コーディング処理の間、ビデオ・データのうちの1または複数のブロックをエンコードするように構成されうる。例えば、前述したように、1または複数のブロックが、ビデオ・データの1または複数のスライス内に含まれうる。一例として、ビデオ・エンコーダ20のエントロピ・エンコード・ユニット56は、第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてエンコードするように構成されうる。この例において、エントロピ・エンコード・ユニット56はさらに、第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、初期値セットを用いてエンコードするように構成されうる。例えば、前述したように、第1のスライス・タイプは、第2のスライス・タイプと異なりうる。さらに、前述したように、第1のスライス・タイプと第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプでありうる。
他の例では、エントロピ・エンコード・ユニット56はさらに、(1)ビデオ・データの第1のスライスの第1のスライス・タイプと、ビデオ・データの第2のスライスの第2のスライス・タイプ、および(2)ビデオ・データの第1のスライスの第1の初期インジケータ値と、ビデオ・データの第2のスライスの第2の初期インジケータ値、のうちの少なくとも一方に基づいて、第1のシンタックス要素および第2のシンタックス要素をエンコードするために使用される初期値セットを計算するように構成されうる。これらの例において、ビデオ・データの第1および第2のスライスのための、第1および第2の初期インジケータ値のおのおのは、対応するビデオ・データのスライスをコーディングするために使用される特定の初期値セットを示しうる。
いくつかの例において、エントロピ・エンコード・ユニット56はさらに、1または複数のマッピング関数のうちの第1のマッピング関数を用いて、ビデオ・データの第1のスライスの第1の初期インジケータ値と第1のスライス・タイプのうちの1または複数と、初期値セットと、の間の第1のマッピングを決定するように構成されうる。すなわち、エントロピ・エンコード・ユニット56は、スライス・タイプから初期値セットへのマッピング、初期インジケータ値から初期値セットへのマッピング、または、スライス・タイプと初期インジケータ値との両方から、初期値セットへのマッピング、を用いて構成されうる。いくつかの例において、エントロピ・エンコード・ユニット56はさらに、1または複数のマッピング関数のうちの第2のマッピング関数を用いて、ビデオ・データの第2のスライスの第2の初期インジケータ値と第2のスライス・タイプのうちの1または複数と、初期値セットと、の間の第2のマッピングを決定するように構成されうる。さらに、繰り返すが、これらの例では、ビデオ・データの第1および第2のスライスの、第1および第2の初期インジケータ値のおのおのが、ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示しうる。
前述した例では、エントロピ・エンコード・ユニット56(または、ビデオ・エンコーダ20の別の構成要素またはユニット)がさらに、1または複数のマッピング関数のうちの少なくとも1つを示す1または複数の値と、ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、VPS、APS、SPS、およびPPSのうちの少なくとも1つにおける第1および第2の初期インジケータ値とをエンコードするように構成されうる。
あるいは、前述した例では、エントロピ・エンコード・ユニット56はさらに、ユーザ入力と、ビデオ・データに関連付けられたGOP構造パラメータ、フレーム解像度パラメータ、およびQPのうちの1または複数に基づいて、第1および第2の初期インジケータ値と、1または複数のマッピング関数のうちの少なくとも1つを決定するように構成されうる。
他の例では、エントロピ・エンコード・ユニット56はさらに、第1および第2のスライスのおのおのをエンコードするために使用されるフル・セットのコンテキストのうちのコンテキストのサブセットを決定するように構成されうる。これらの例において、コンテキストのサブセットは、第1および第2のシンタックス要素のうち、特定のタイプのシンタックス要素をコーディングするために使用される少なくとも1つまたは複数のコンテキストを含みうる。さらに、これらの例において、初期値セットを用いて第1および第2のシンタックス要素をエンコードするために、エントロピ・エンコード・ユニット56は、初期値セットに基づいて、コンテキストのサブセットの1または複数のコンテキストを初期化するように構成されうる。
前述した例では、1または複数のマッピング関数と第1および第2の初期インジケータ値を参照して前述したものと同じ方式で、エントロピ・エンコード・ユニット56(または、ビデオ・エンコーダ20のその他の構成要素またはユニット)はさらに、ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、VPS、APS、SPS、およびPPSのうちの少なくとも1つにおけるコンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを示す1または複数の値をエンコードするように構成されうる。
いくつかの例ではさらに、1または複数のマッピング関数と第1および第2の初期インジケータ値を参照して前述したものと同じ方式で、エントロピ・エンコード・ユニット56は、フル・セットのコンテキストのうち、コンテキストのサブセットを決定するために、ユーザ入力と、ビデオ・データに関連付けられたGOP構造パラメータ、フレーム解像度パラメータ、およびQPのうちの1または複数に基づいて、コンテキストのサブセットに含まれているフル・セットのコンテキストのうちのコンテキストを決定するように構成されうる。
さらに、いくつかの例では、エントロピ・エンコード・ユニット56は、初期値セットを用いて第1のシンタックス要素および第2のシンタックス要素をエンコードするために、初期値セットと、それぞれのシンタックス要素が属するビデオ・データの第1および第2のスライスの、第1および第2のスライス・タイプのうちの対応する1つとに基づいて、第1および第2のシンタックス要素のうち、少なくとも特定のタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのおのおのの初期コンテキスト状態を決定するように構成されうる。これらの例において、ビデオ・エンコーダ20は、ビデオ・データの第1のスライスの第1のスライス・タイプと、ビデオ・データの第2のスライスの第2のスライス・タイプとに基づいて、初期値セットを決定しうる。
前述した例では、エントロピ・エンコード・ユニット56は、初期値セットと、第1および第2のスライス・タイプのうちの対応する1つとに基づいて、1または複数のコンテキストのおのおのの初期コンテキスト状態を決定するために、第1および第2のスライス・タイプのうちの対応する1つに基づいて決定されたQPオフセット値と、QP値と、初期値セットのうちの1または複数の値に基づいて、それぞれの初期コンテキスト状態を決定するように構成されうる。
前述したように、いくつかの例では、初期値セットは、(1)スロープ値および個別の交差値、および、(2)スロープ値と交差値との両方を表す単一の値、のうちの1つを含みうる。例えば、初期値セットは、いつくかの例では、スロープ値と交差値とからなる少なくとも1つの「ペア」、または、スロープ値と交差値との両方を表す少なくとも1つの単一の値、を含みうる。
前述した例によって例示されるように、本開示の技法は、ビデオ・エンコーダ20が、同じまたは共通の初期値セットに基づいて、コンテキスト適応エントロピ・コーディング処理(例えば、CABAC処理)を用いて、異なるスライス・タイプを有するビデオ・データの複数のスライスについて、おのおのが同じタイプのシンタックス要素にしたがう複数のシンタックス要素を(例えば、ビデオ・デコーダ30によるデコードのため、および/または、記憶デバイス24内への記憶のために)エンコードすることをイネーブルしうる。いくつかの例において、特定のタイプのシンタックス要素は、ビデオ・データの1または複数のブロックのための、1または複数の係数の値、または、その他のシンタックス情報を示すために使用されうる。具体的には、開示された技法によれば、ビデオ・エンコーダ20は、コンテキストを用いて複数のシンタックス要素のおのおのをエンコードする前に、コンテキスト適応エントロピ・コーディング処理のうちの1または複数のコンテキストのための初期コンテキスト状態を決定する(すなわち、「初期化」する)ために初期値セットを用いうる。その結果、本明細書に開示された技法は、いくつかのケースにおいて、ビデオ・データの複数のスライスのための複数のシンタックス要素をエンコードするために使用されるビデオ・エンコーダ20の複雑さを低減しうる(例えば、処理および/または格納リソースを単純化しうるか、または、その使用量を低減しうる)。
さらに、開示された技法は、ビデオ・エンコーダ20が、例えばビデオ・データのようなデータを、より効率的にエンコードすることをイネーブルしうる。例えば、これら技法は、ビデオ・エンコーダ20が、データに関連付けられたスライス・タイプ情報に基づいて、あるいは、データに関連付けられた1または複数の初期インジケータ値に基づいて、データをエンコードするために使用されるコンテキスト適応エントロピ・コーディング処理(例えば、CABAC処理)のうちの1または複数のコンテキストを初期化することをイネーブルしうる。その結果、1または複数のコンテキストは、初期化されると、その他のコンテキスト初期化技法を用いて決定された確率推定値に対してより正確である確率推定値を含みうる。そのため、ビデオ・エンコーダ20は、その他の技法と比較して、より効率的に(例えば、より少数のビットを用いて)データをエンコードしうる。
このように、ビデオ・エンコーダ20は、第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングし、第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、初期値セットを用いてコーディングする、ように構成されたビデオ・コーダの例を示す。ここで、第1のスライス・タイプは、第2のスライス・タイプとは異なり、第1のスライス・タイプと第2のスライス・タイプのうちの少なくとも1つは、時間的に予測されたスライス・タイプである。
図3は、本開示の技法にしたがって、低減された初期値セットを用いたコンテキスト適応エントロピ・コーディングのための技法を実行しうるビデオ・デコーダの例を例示するブロック図である。図3の例では、ビデオ・デコーダ30は、エントロピ・デコード・ユニット80、予測モジュール82、逆量子化ユニット88、逆変換モジュール90、加算器92、デブロッキング・フィルタ94、および基準ピクチャ・メモリ96を含んでいる。予測モジュール82は、動き補償ユニット84およびイントラ予測モジュール86を含んでいる。ビデオ・デコーダ30は、いくつかの例において、図2からのビデオ・エンコーダ20に関して記載されたエンコード・パスに一般に相補的なデコード・パスを実行しうる。
デコード処理中、ビデオ・デコーダ30は、関連付けられたシンタックス要素とエンコードされたビデオ・スライスのビデオ・ブロックを示す、エンコードされたビデオ・ビットストリームを、ビデオ・エンコーダ20から受け取る。ビットストリームにおいて表されたビデオ・ブロックが、圧縮されたビデオ・データを含んでいる場合、ビデオ・デコーダ30のエントロピ・デコード・ユニット80は、量子化された係数、動きベクトル、およびその他のシンタックス要素を生成するために、ビットストリームをエントロピ・デコードする。エントロピ・デコード・ユニット80は、動きベクトルおよびその他のシンタックス要素を、予測モジュール82へ転送する。ビデオ・デコーダ30は、ビデオ・スライス・レベルおよび/またはビデオ・ブロック・レベルにおいて、シンタックス要素を受け取りうる。
ビデオ・スライスが、イントラ・コード(I)スライスとしてコーディングされた場合、予測モジュール82のイントラ予測モジュール86は、現在のフレームまたはピクチャの以前にデコードされたブロックからの、シグナルされたイントラ予測モードおよびデータに基づいて、現在のビデオ・スライスのビデオ・ブロックの予測データを生成しうる。ビデオ・フレームが、インタ・コードされた(すなわち、B、P、またはGPB)スライスとしてコーディングされている場合、予測モジュール82の動き補償ユニット84は、エントロピ・デコード・ユニット80から受け取られた動きベクトルおよびその他のシンタックス要素に基づいて、現在のビデオ・スライスのビデオ・ブロックの予測ブロックを生成する。予測ブロックは、基準ピクチャ・リストのうちの1つ内の、基準ピクチャのうちの1つから生成されうる。ビデオ・デコーダ30は、基準ピクチャ・メモリ96に格納された基準ピクチャに基づいて、デフォルトの構築技法を用いて、基準フレーム・リスト、リスト0およびリスト1を構築しうる。
動き補償ユニット84は、動きベクトルおよびその他のシンタックス要素を解析することによって、現在のビデオ・スライスのビデオ・ブロックの予測情報を決定し、この予測情報を用いて、デコードされている現在のビデオ・ブロックの予測ブロックを生成する。例えば、動き補償ユニット84は、受け取ったシンタックス要素のうちのいくつかを用いて、ビデオ・スライスのビデオ・ブロック、インタ予測スライス・タイプ(例えば、Bスライス、Pスライス、またはGPBスライス)、スライスのための基準ピクチャ・リストのうちの1または複数の構築情報、スライスの各インタ・エンコード・ビデオ・ブロックの動きベクトル、スライスの各インタ・コード・ビデオ・ブロックのインタ予測状態、および、現在のビデオ・スライスにおけるビデオ・ブロックをデコードするためのその他の情報、をコーディングするために使用される予測モード(例えば、イントラ予測またはインタ予測)を決定する。
動き補償ユニット84はまた、補間フィルタに基づいて、補間を実行しうる。動き補償ユニット84は、基準ブロックの整数未満ピクセルの補間値を計算するために、ビデオ・ブロックのエンコード中、ビデオ・エンコーダ20によって使用されるような補間フィルタを使用しうる。動き補償ユニット84は、受け取られたシンタックス要素から、ビデオ・エンコーダ20によって使用される補間フィルタを決定し、この補間フィルタを用いて、予測ブロックを生成する。
逆量子化ユニット88は、ビットストリームで提供され、エントロピ・デコード・ユニット80によってデコードされた、量子化された変換係数を逆量子化、すなわちde quantizeする。逆量子化処理は、量子化の程度、および同様に、適用されるべき逆量子化の程度を決定するために、ビデオ・スライスにおけるおのおののビデオ・ブロックについて、ビデオ・エンコーダ20によって計算される量子化パラメータ(QP)を使用することを含みうる。逆変換モジュール90は、ピクセル領域における残余ブロックを生成するために、例えば、逆DCT、逆整数変換、または、概念的に類似の逆変換処理を、変換係数へ適用する。
動き補償ユニット84が、動きベクトルおよびその他のシンタックス要素に基づいて、現在のビデオ・ブロックの予測ブロックを生成した後、ビデオ・デコーダ30は、逆変換モジュール90からの残余ブロックと、動き補償ユニット84によって生成された対応する予測ブロックとを総和することによって、デコードされたビデオ・ブロックを生成する。加算器92は、この総和演算を実行する構成要素(単数または複数)を表わす。デブロッキング・フィルタ94は、ブロックノイズ・アーティファクトを除去するために、デコードされたブロックをフィルタするために適用される。所与のフレームまたはピクチャ内の、デコードされたビデオ・ブロックは、その後、基準ピクチャ・メモリ96に格納される。基準ピクチャ・メモリ96は、その後の動き補償のために使用される基準ピクチャを格納する。基準ピクチャ・メモリ96はまた、例えば、図1のディスプレイ・デバイス28のような、ディスプレイ・デバイスにおける後の表示のために、デコードされたビデオを格納する。
いくつかの例において、ビデオ・デコーダ30は、例えば、ビデオ・エンコーダ20および/または記憶デバイス24からのビットストリームで受け取られたビデオ・データの1または複数のエンコードされたブロックのような、ビデオ・コーディング処理中のビデオ・データの1または複数のブロックを、デコードするように構成されうる。例えば、ビデオ・エンコーダ20に関して前述されたような、1または複数のブロックは、ビデオ・データの1または複数のスライス内に含まれうる。一例として、ビデオ・デコーダ30のエントロピ・デコード・ユニット80は、第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてデコードするように構成されうる。この例では、エントロピ・デコード・ユニット80はさらに、第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、初期値セットを用いてデコードするように構成されうる。例えば、前述されたように、第1のスライス・タイプは、第2のスライス・タイプとは異なりうる。また、前述されたように、第1のスライス・タイプおよび第2のスライス・タイプのうちの少なくとも1つは、時間的に予測されたスライス・タイプでありうる。
いくつかの例において、エントロピ・デコード・ユニット80はさらに、(1)ビデオ・データの第1のスライスの第1のスライス・タイプと、ビデオ・データの第2のスライスの第2のスライス・タイプ、および、(2)ビデオ・データの第1のスライスの第1の初期インジケータ値と、ビデオ・データの第2のスライスの第2の初期インジケータ値、のうちの少なくとも1つに基づいて、第1および第2のシンタックス要素をデコードするために使用される初期値セットを決定するように構成されうる。これらの例において、ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示しうる。
一例として、第1および第2のスライスの、第1および第2の初期インジケータ値のおのおのが、対応するスライスをエンコードするためにビデオ・エンコーダ(例えば、ビデオ・エンコーダ20)によって使用された初期値セットを示しうる。この例では、ビデオ・デコーダ30および特定のエントロピ・デコード・ユニット80は、受け取ったビットストリームにおいて、第1および第2のスライスの第1および第2のスライス・タイプ(または、第1および第2のスライス・タイプを定義するデータ)を示すインジケーションのうちの1または複数と、第1および第2のスライスのための第1および第2の初期インジケータ値とを受け取るように構成されうる。例えば、第1および第2のスライスのおのおのについて、ビデオ・デコーダ30は、受け取ったビットストリームにおいて、前述されたインジケーションおよび値のうちの1または複数を、対応するスライスに関連付けられた1または複数のシンタックス要素として受け取るように構成されうる。
その他の例では、エントロピ・デコード・ユニット80はさらに、1または複数のマッピング関数のうちの第1のマッピング関数を用いて、ビデオ・データの第1のスライスの第1の初期インジケータ値と第1のスライス・タイプのうちの1または複数と、初期値セットと、の間の第1のマッピングを決定するように構成されうる。これらの例では、エントロピ・デコード・ユニット80さらにまた、1または複数のマッピング関数のうちの第2のマッピング関数を用いて、ビデオ・データの第2のスライスの第2の初期インジケータ値と第2のスライス・タイプのうちの1または複数と、初期値セットと、の間の第2のマッピングを決定するように構成されうる。繰り返すが、これらの例では、ビデオ・データの第1および第2のスライスの、第1および第2の初期インジケータ値のおのおのが、ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示しうる。
例えば、ビデオ・デコーダ30、および、特定のエントロピ・デコード・ユニット80では、受け取ったビットストリームにおいて、第1および第2のマッピング関数(または、このマッピング関数を定義するデータ)を示す1または複数のインジケーションを受け取るように構成されうる。この例では、第1および第2のスライスのおのおのについて、ビデオ・デコーダ30は、受け取ったビットストリーム内の第1および第2のマッピング関数のうちの対応する1つを示す1または複数のインジケーションを、それぞれのスライスに関連付けられた1または複数のシンタックス要素として受け取るように構成されうる。あるいは、ビデオ・デコーダ30は、受け取ったビットストリームの全体において、第1および第2のマッピング関数を含む1または複数のマッピング関数(または、このマッピング関数を定義するデータ)を示す1または複数のインジケーションを、例えば、第1および第2のスライスの1または両方に関連付けられた1または複数のシンタックス要素として受け取るように構成されうる。
一例として、エントロピ・デコード・ユニット80(または、ビデオ・デコーダ30のその他の構成要素またはユニット)は、第1および第2のマッピング関数のうちの少なくとも1つを示す1または複数の値(または、1または複数のマッピング関数の全体)と、(例えば、受け取られたビットストリームにおいて、ビデオ・エンコーダ20によってエンコードされたような)ビデオ・データに関連付けられた、シーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、VPS、APS、SPS、およびPPSのうちの少なくとも1つにおける第1および第2の初期インジケータ値とをデコードするように構成されうる。さらに、既に説明されたように、いくつかの例では、エントロピ・デコード・ユニット80はさらに、(例えば、ビデオ・データに関連付けられたスライス・ヘッダにおいて)受け取られたビットストリームにおける第1および第2のスライスの第1および第2のスライス・タイプを示す1または複数の値をデコードするように構成されうる。
あるいは、別の例として、エントロピ・デコード・ユニット80は、ユーザ入力と、(第1および第2のスライスに関連付けられたサイド情報のような、)ビデオ・データに関連付けられたGOP構造パラメータ、フレーム解像度パラメータ、およびQPのうちの1または複数に基づいて、第1および第2のマッピング関数のうちの少なくとも1つ(または、1または複数のマッピング関数全体)と、第1および第2の初期インジケータ値を決定または推論するように構成されうる。さらに、いくつかの例では、エントロピ・デコード・ユニット80はさらに、第1および第2のスライスに関連付けられたサイド情報を用いて、第1および第2のスライスの、第1および第2のスライス・タイプを決定または推論するように構成されうる。
いくつかの例において、エントロピ・デコード・ユニット80はさらに、第1および第2のスライスのおのおのをデコードするために使用されるフル・セットのコンテキストのうち、コンテキストのサブセットを決定するように構成されうる。これらの例において、コンテキストのサブセットは、第1および第2のシンタックス要素のうちの特定のタイプのシンタックス要素をコーディングするために使用される少なくとも1つまたは複数のコンテキストを含みうる。さらに、これらの例では、エントロピ・デコード・ユニット80は、初期値セットを用いて、第1および第2のシンタックス要素をデコードするために、初期値セットに基づいて、コンテキストのサブセットのうちの1または複数のコンテキストを初期化するように構成されうる。
前述した例では、ビデオ・デコーダ30、特に、エントロピ・デコード・ユニット80では、(例えば、受け取られたビットストリームにおいてビデオ・エンコーダ20によってエンコードされたような)受け取られたビットストリームにおけるコンテキストのサブセット(または、このサブセットを定義するデータ)を示す1または複数のインジケーションを受信しうるか、または、ビデオ・データに関連付けられたサイド情報(すなわち、第1および第2のスライス)を用いてコンテキストのサブセットを決定(または推論)するように構成されうる。一例として、エントロピ・デコード・ユニット(または、ビデオ・デコーダ30のその他の構成要素またはユニット)は、フル・セットのコンテキストのうち、コンテキストのサブセットを決定するために、1または複数のマッピング関数と、第1および第2の初期インジケータ値とを参照して前述されたものと類似の方式で、(例えば、受け取られたビットストリームにおいてビデオ・エンコーダ20によってエンコードされたような)ビデオ・データに関連付けられた、シーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、VPS、APS、SPS、およびPPSのうちの少なくとも1つで、コンテキストのサブセットに含まれているフル・セットのコンテキストのうちのコンテキストを示す1または複数の値をデコードするように構成されうる。
あるいは、別の例として、フル・セットのコンテキストのうち、コンテキストのサブセットを決定するために、さらに、1または複数のマッピング関数と、第1および第2の初期インジケータ値とを参照して前述したものと類似の方式で、エントロピ・デコード・ユニット80は、ユーザ入力と、(第1および第2のスライスに関連付けられたサイド情報のような)ビデオ・データに関連付けられたGOP構造パラメータ、フレーム解像度パラメータ、およびQPのうちの1または複数に基づいて、コンテキストのサブセットに含まれたフル・セットのコンテキストのうちのコンテキストを決定または推論するように構成されうる。
さらに、いくつかの例において、エントロピ・デコード・ユニット80は、初期値セットを用いて第1および第2のシンタックス要素をデコードするために、初期値セットと、それぞれのシンタックス要素が属するビデオ・データの第1および第2のスライスの第1および第2のスライス・タイプのうちの対応する1つに基づいて、第1および第2のシンタックス要素のうちの、少なくとも特定のタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのおのおのの初期コンテキスト状態を決定するように構成されうる。これらの例では、エントロピ・デコード・ユニット80は、ビデオ・データの第1のスライスの第1のスライス・タイプと、ビデオ・データの第2のスライスの第2のスライス・タイプとに基づいて、初期値セットを決定しうる。
前述した例では、エントロピ・デコード・ユニット80は、初期値セットと、第1および第2のスライス・タイプのうちの対応する1つとに基づいて、1または複数のコンテキストのおのおのの初期コンテキスト状態を決定するために、第1および第2のスライス・タイプのうちの対応する1つに基づいて決定されたQPオフセット値(例えば、dQP値)と、QP値(例えば、しばしば初期QPと称される特定のQP値、または、第1および第2のスライスのうちの対応する1つに関連付けられたiQP値)と、初期値セットのうちの1または複数の値(例えば、前述した“m”、“n”、および“m8”値のうちの1または複数)とに基づいて、それぞれのコンテキスト状態を決定するように構成されうる。
前述したように、いくつかの例では、初期値セットは、(1)スロープ値および個別の交差値、および、(2)スロープ値と交差値との両方を表す単一の値、のうちの1つを含みうる。例えば、いくつかの例において、初期値セットは、スロープ値と交差値とからなる少なくとも1つのペア、または、スロープ値と交差値との両方を表す少なくとも1つの単一の値、を含みうる。一例として、初期値セットは、おのおのがスロープ値と個別の交差値とを含み、それぞれ“m”および“n”と称されうる値からなる1または複数の値のペアを含みうる。別の例として、初期値セットは、おのおのがスロープ値と交差値とを表し“m8”と称されうる1または複数の単一の値を含みうる。
前述した例によって例示されるように、本開示の技法は、ビデオ・デコーダ30が、同じまたは共通の初期値セットに基づいて、コンテキスト適応エントロピ・コーディング処理(例えば、CABAC処理)を用いて、異なるスライス・タイプを有するビデオ・データの複数のスライスについて、おのおのが同じタイプのシンタックス要素にしたがう(例えば、ビデオ・エンコーダ20によってエンコードされた、および/または、記憶デバイス24によって提供された)複数のシンタックス要素をデコードすることをイネーブルしうる。いくつかの例において、特定のタイプのシンタックス要素は、ビデオ・データの1または複数のブロックについて、1または複数の係数の値、または、その他のシンタックス情報を示すために使用されうる。具体的には、ビデオ・デコーダ30は、開示された技法にしたがって、1または複数のコンテキストを用いて複数のシンタックス要素のおのおのをデコードする前に、コンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストのための初期コンテキスト状態を決定(すなわち、初期化)するために、初期値セットを使用しうる。その結果、本明細書に開示された技法は、いくつかのケースにおいて、ビデオ・データの複数のスライスのための複数のシンタックス要素をデコードするために使用されるビデオ・デコーダ30の複雑さを低減しうる(例えば、処理リソースおよび/または格納リソースを単純化するか、または、その使用量を低減する)。
さらに、開示された技法は、ビデオ・デコーダ30が、例えばビデオ・データのようなデータをより効率的にデコードすることをイネーブルしうる。例えば、これら技法は、ビデオ・デコーダ30が、データに関連付けられたスライス・タイプ情報、または、データに関連付けられた1または複数の初期インジケータ値に基づいて、データをデコードするために使用されるコンテキスト適応エントロピ・コーディング処理(例えば、CABAC処理)の1または複数のコンテキストを初期化することをイネーブルしうる。その結果、1または複数のコンテキストは、初期化されると、その他のコンテキスト初期化技法を用いて決定された確率推定値に対して、より精度の高い確率推定値を含みうる。そのため、ビデオ・デコーダ30は、その他の技法と比べて、データをより効率的に(例えば、より少ないビットを用いて)デコードしうる。
このように、ビデオ・デコーダ30は、第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングし、第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、初期値セットを用いてコーディングする、ように構成されたビデオ・コーダの例を示す。ここで、第1のスライス・タイプは、第2のスライス・タイプとは異なり、第1のスライス・タイプと第2のスライス・タイプのうちの少なくとも1つは、時間的に予測されたスライス・タイプである。
図4−6は、本開示の技法にしたがう、低減された初期値セットを用いたコンテキスト適応エントロピ・コーディングの方法の例を例示するフローチャートである。図4−6の技法は一般に、ハードウェア、ソフトウェア、ファームウェア、またはその組み合わせで実現されているかに関わらず、任意の処理ユニットまたはプロセッサによって実行されうる。そして、ソフトウェアまたはファームウェアで実現される場合、ソフトウェアまたはファームウェアのための命令群を実行するために、対応するハードウェアが提供されうる。例示目的のために、図4−6の技法は、ビデオ・エンコーダ20(図1および2)と、ビデオ・デコーダ30(図1および3)との両方のみならず、これらのさまざまな構成要素(例えば、エントロピ・エンコード・ユニット56およびエントロピ・デコード・ユニット80)に関して記載されているが、同様の技法を実行するためにその他のデバイスが構成されうることが理解されるべきである。すなわち、ビデオ・デコーダ30は、一般に、エントロピ・コーディングに関して、ビデオ・エンコーダ20によって実行されるものに対して相補的な方法を実行するように構成される。したがって、ビデオ・エンコーダ20およびビデオ・デコーダ30は、この例において、類似の(とはいえ、相補的な)エントロピ・コーディング処理を実行するように構成される。しかしながら、ビデオ・エンコーダおよび/またはビデオ・デコーダは、特定の方法を実行するように個別に構成されうることが理解されるべきである。さらに、図4−6に例示されるステップは、本開示の技法から逸脱することなく、異なる順序で、または並行して実行され、さらなるステップが追加されたり、いくつかのステップが省略されうる。
具体的には、図4は、一般に、ビデオ・エンコーダ20およびビデオ・デコーダ30の観点から、コーディング(すなわち、エンコードおよび/またはデコード)のコンテキストにおいて、低減された初期セットを用いたコンテキスト適応エントロピ・コーディングの方法の例を例示する。すなわち、図4の説明は、この方法をビデオ・エンコーダ20がどのように実行しうるかと、この方法をビデオ・デコーダ30がどのように実行しうるかとの両方を示す。さらに、図5および6は、ビデオ・デコーダ30の観点からのデコードと、ビデオ・エンコーダ20の観点からのエンコードとのコンテキストにおいて、低減された初期セットを用いたコンテキスト適応二進法コーディングの方法の例をそれぞれ例示する。
一例として、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、前述したように、ビデオ・コーディング処理の間、ビデオ・データの1または複数のブロックをコーディング(すなわち、エンコードおよび/またはデコード)しうる。例えば、1または複数のブロックは、1または複数のPU、TU、またはCUでありうる。そして、前述したように、ビデオ・データの1または複数のスライスに含まれうる。この例では、先ず、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングしうる(400)。
例えば、第1のシンタックス要素の、特定のタイプのシンタックス要素は、第1のスライスに関連付けられた任意のタイプのシンタックス要素に対応しうる。いくつかの例では、特定のタイプのシンタックス要素が、1または複数の係数の値(例えば、大きさおよび/または記号)のみならず、ビデオ・データの第1のスライスのうちの1または複数のブロックのその他のシンタックス情報(例えば、予測モードおよび/または動きベクトル情報を含む予測情報)をも示すために使用されうる。その他の例では、第1のスライス自身のためのさまざまなタイプのシンタックス情報(例えば、ビデオ・データの第1のスライスの複数のブロックに共通である情報)を示すために、特定のタイプのシンタックス要素が使用されうる。それに加えて、さらに別の例では、第1のスライスの第1のスライス・タイプは、図1−3を参照して前述されたものと類似の方式で、空間的に予測された“I”スライス・タイプと、時間的に予測された“P”および“B”スライス・タイプとのうちの任意の1つに対応しうる。
この例では、ビデオ・エンコーダ20および/またはビデオ・デコーダ30はさらに、第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、特定のタイプのシンタックス要素(すなわち、前述した第1のシンタックス要素のものと同じタイプのシンタックス要素)にしたがう第2のシンタックス要素を、初期セットを用いてコーディングしうる。この例では、第1のスライス・タイプは、第2のスライス・タイプとは異なりうる。さらに、この例では、第1のスライス・タイプおよび第2のスライス・タイプのうちの少なくとも1つは、時間的に予測されたスライス・タイプでありうる(402)。
この例では、別の方式で述べると、第1のスライス・タイプが、前述したように、空間的に予測された“I”スライス・タイプと、時間的に予測された“P”スライス・タイプおよび“B”スライス・タイプとのうちの何れか1つに対応する一方、第2のスライスの第2のスライス・タイプが、前述したスライス・タイプのうちの他方に対応しうる。このように、第1および第2のスライス・タイプは、互いに異なりうる。さらに、この例ではまた、第1および第2のスライスのうちの少なくとも1つは、時間的な予測を用いてコーディングされうる。言い換えれば、前述された第1および第2のスライス・タイプのうちの少なくとも1つは、時間的に予測された“P”スライス・タイプおよび“B”スライス・タイプのうちの何れか一方に対応しうる。この例では、第1および第2のスライスのうちの他の一方は、時間的または空間的な予測を用いてコーディングされうる(すなわち、第1および第2のスライス・タイプのうちの他の一方は、空間的に予測された“I”スライス・タイプと、時間的に予測された“P”スライス・タイプおよび“B”スライス・タイプのうちの何れか一方に対応しうる)。
このように、本開示の技法にしたがって、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、同じまたは共通の初期値セットに基づいて、コンテキスト適応エントロピ・コーディング処理(例えば、CABAC処理)を用いて、異なるスライス・タイプを有するビデオ・データの複数のスライスについて、おのおのが同じタイプのシンタックス要素にしたがう複数のシンタックス要素をコーディングしうる。いくつかの例では、ビデオ・データの1または複数のブロックについて、1または複数の係数の値、または、その他のシンタックス情報を示すために、特定のタイプのシンタックス要素が使用されうる。具体的には、開示された技法にしたがって、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、1または複数のコンテンツを用いて複数のシンタックス要素のおのおのをコーディングする前に、コンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストの初期コンテキスト状態を決定する(すなわち、「初期化する」)ために初期値セットを使用しうる。その結果、本明細書で開示された技法は、いくつかのケースでは、ビデオ・データの複数のスライスの複数のシンタックス要素をコーディングするために使用されるビデオ・エンコーダ20および/またはビデオ・デコーダ30の複雑さを低減しうる(例えば、処理リソースおよび/または格納リソースを単純化するか、または、その使用量を低減しうる)。
いくつかの例では、ビデオ・エンコーダ20および/またはビデオ・デコーダ30はさらに、(1)ビデオ・データの第1のスライスの第1のスライス・タイプと、ビデオ・データの第2のスライスの第2のスライス・タイプ、および、(2)ビデオ・データの第1のスライスの第1の初期インジケータ値と、ビデオ・データの第2のスライスの第2の初期インジケータ値、のうちの少なくとも1つに基づいて、第1および第2のシンタックス要素をコーディングするために使用される初期値セットを決定しうる。この例では、図1−3を参照して前述されたものと同様の方式で、ビデオ・データの第1および第2のスライスの、第1および第2の初期インジケータ値のおのおのは、ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示しうる。
一例として、前述したように、第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、例えば、“0”から“N−1”に及ぶ整数値を含むセットのような1または複数の整数値からなるセットから選択される整数値でありうる。ここで、“N”は、あるゼロではない整数値である。この例では、このセット内に含まれるおのおのの整数値(例えば、0,1,2・・・N−1)は、1または複数の初期値セットのうちの特定の初期値セット(例えば、Set(0)、Set(1)、Set(2)…Set(N−1))に対応するか、示しうる。さらに、前述されてもいるように、第1および第2のスライスの第1および第2の初期インジケータ値のおのおのが、例えば、シンタックス要素タイプcabac_init_idcのような特定のタイプのシンタックス要素、またはその他のシンタックス要素タイプを用いて、(例えば、ビデオ・エンコーダ20からビデオ・デコーダ30へ)ビットストリームでシグナルされうる。いくつかの例において、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、固定長コード、(例えば、VLCまたは類似の技法を用いた)可変長コード、または(例えば、CABAC、PIPE、または類似の技法のような)算術コードのうちの何れかを用いて、第1および第2の初期インジケータ値の1または複数をコーディングしうる。
このように、いくつかの例では、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、第1および第2のシンタックス要素のおのおのをコーディングするために、それぞれのシンタックス要素が属する第1および第2のスライスの、第1および第2の初期インジケータ値のうちの対応する1つに基づいて、初期値セットを決定しうる。例えば、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、第1および第2のスライスの第1および第2のスライス・タイプに関わらず、例えば、適応方式で、第1および第2の初期インジケータ値に基づいて、複数の初期値セットのグループから、初期値セットを選択しうる。
その結果、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、第1および第2のシンタックス要素を、より効率的にコーディングしうる。例えば、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、前述した方式で決定された初期値セットを用いて、第1および第2のシンタックス要素をコーディングするために使用されるコンテキスト適応エントロピ・コーディング処理(例えば、CABAC処理)の1または複数のコンテキストを初期化しうる。特に、この例では、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、第1および第2のシンタックス要素のおのおのをコーディングするために、それぞれのシンタックス要素が属する第1および第2のスライスの、第1および第2のスライス・タイプのうちの対応する1つに関わらず初期値セットを選択しうる。このため、初期値セットを用いて初期化されると、1または複数のコンテキストは、(例えば、スライスに関連付けられたスライス・タイプに基づいて、ビデオ・データのスライスのシンタックス要素をコーディングするための初期値セットを選択する技法のような)その他のコンテキスト初期化技法を用いて決定された確率推定値に対して、より正確である確率推定値を含みうる。このように、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、他の技法と比較して、第1および第2のシンタックス要素をより効率的に(例えば、より少ないビットを用いて)コーディングしうる。
しかしながら、その他の例では、前述したように、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、第1および第2のスライス・タイプに基づいて、複数の初期値セットのグループから、初期値セットを選択しうる。
他の例において、ビデオ・エンコーダ20および/またはビデオ・デコーダ30はさらに、1または複数のマッピング関数のうちの第1のマッピング関数を用いて、ビデオ・データの第1のスライスの第1の初期インジケータ値と第1のスライス・タイプのうちの1または複数と、初期値セットと、の間の第1のマッピングを決定するように構成されうる。これらの例において、ビデオ・エンコーダ20および/またはビデオ・デコーダ30はさらに、1または複数のマッピング関数のうちの第2のマッピング関数を用いて、ビデオ・データの第2のスライスの第2の初期インジケータ値と第2のスライス・タイプのうちの1または複数と、初期値セットと、の間の第2のマッピングを決定しうる。繰り返すが、これらの例では、ビデオ・データの第1および第2のスライスの、第1および第2の初期インジケータ値のおのおのは、ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示しうる。
いくつかの例では、1または複数のマッピング関数と、適用可能であれば、第1および第2の初期インジケータ値とが、定義または固定され、前述された方式で、初期値セットを決定する目的のために、ビデオ・エンコーダ20とビデオ・デコーダ30との両方に利用可能でありうる。しかしながら、他の例では、ビデオ・エンコーダ20は、ある方式において、第1および第2の初期インジケータ値と、1または複数のマッピング関数のうちの少なくとも1つを、第1および第2の要素をエンコードすることの一部として決定または操作しうる。これらの例において、ビデオ・エンコーダ20はさらに、ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、VPS、APS、SPS、およびPPSのうちの少なくとも1つにおける第1および第2の初期インジケータ値および1または複数のマッピング関数のうちの少なくとも1つを示す1または複数の値をエンコードしうる。
例えば、ビデオ・エンコーダ20は、ビットストリームにおいて、エンコードされた1または複数の値をシグナルしうる。これによって、ビデオ・デコーダ30は、ビットストリームを受け取り、1または複数の値をデコードするようになりうる。ビデオ・エンコーダ20はさらに、ビットストリームにおいて、エンコードされた第1および第2のシンタックス要素をシグナルしうる。これらの例では、ビデオ・デコーダ30は、デコードされた1または複数の値に基づいて、第1および第2の初期インジケータ値と1または複数のマッピング関数のうちの少なくとも1つを決定しうる。続いて、ビデオ・デコーダ30は、1または複数のマッピング関数、さらには、適用可能な場合には、第1および第2の初期インジケータ値に基づいて、初期値セットを決定しうる。ビデオ・デコーダ30は、ビットストリームにおいて、エンコードされた第1および第2のシンタックス要素を受け取り、決定された初期値セットに基づいて、第1および第2のシンタックス要素をデコードしうる。
他の例において、ビデオ・エンコーダ20および/またはビデオ・デコーダ30はさらに、ビデオ・データに関連付けられたGOP構造パラメータ、フレーム解像度パラメータ、およびQPのうちの1または複数に基づいて、1または複数のマッピング関数のうち少なくとも1つと、適用可能であれば、第1および第2の初期インジケータ値とを決定しうる。さらに別の例では、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、第1および第2のスライスのうちの1または複数に関連するその他の情報(しばしば、サイド情報と称される)に基づいて、1または複数のマッピング関数および第1および第2の初期インジケータ値を決定しうる。さらに、いくつかの例では、ビデオ・エンコーダ20および/またはビデオ・デコーダ30はさらに、ユーザ入力に基づいて、第1および第2の初期インジケータ値と、1または複数のマッピング関数のうちの少なくとも1つを決定しうる。言い換えれば、いくつかの例では、1または複数のマッピング関数、および、適用可能であれば、第1および第2の初期インジケータ値(例えば、第1および第2の初期インジケータ値の第1および第2のスライスへの割り当てまたは割り振り)は、ユーザによって指定されうる。
いくつかの例では、ビデオ・エンコーダ20および/またはビデオ・デコーダ30はさらに、1または複数の式と連携して、ビデオ・データの第1のスライスの第1の初期インジケータ値、ビデオ・データの第2のスライスの第2の初期インジケータ値、および、第1および第2のスライス・タイプのうちの1または複数に基づいて、初期値セットを決定しうる。繰り返すが、これらの例では、ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示しうる。例えば、1または複数の式が定義されるか、または、固定されうる。そして、前述した方式で、初期値セットを決定する目的のために、ビデオ・エンコーダ20とビデオ・デコーダ30との両方に利用可能でありうる。しかしながら、その他の例では、ビデオ・エンコーダ20は、ビットストリームにおいて、1または複数の式を示す1または複数の値をエンコードし、ビデオ・デコーダ30は、初期値セットを決定する目的で、ビットストリームにおいて、エンコードされた1または複数の値を受け取り、1または複数の値をデコードしうる。
いくつかの例において、ビデオ・エンコーダ20および/またはビデオ・デコーダ30はさらに、第1および第2のスライスのおのおのをコーディングするために使用されるフル・セットのコンテキストのうち、コンテキストのサブセットを決定しうる。これらの例において、コンテキストのサブセットは、第1および第2のシンタックス要素のうちの特定のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含みうる。言い換えれば、いくつかの例では、コンテキストのサブセットは、さらなるコンテキストを含みうる。何れの場合であれ、これらの例では、初期値セットを用いて第1および第2のシンタックス要素をコーディングするために、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、初期値セットに基づいて、コンテキストのサブセットのうちの1または複数のコンテキストを初期化しうる。このように、前述された初期値セットは、第1および第2のスライスのおのおのをコーディングするために使用されるフル・セットのコンテキストのうちのすべてのコンテキストではなく、コンテキストのサブセット内に含まれる制限された数のコンテキストに当てはまりうる(すなわち、その初期コンテキスト状態を決定するため、または「初期化するため」に使用されうる)。
一例として、コンテキストのサブセットは、ビデオ・データの1または複数のブロックのうちの係数、および/または、係数のコーディング、に関連するシンタックス要素の1または複数をコーディングするために使用される1または複数のコンテキストを含みうる。例えば、シンタックス要素のうちの1または複数のタイプは、有意な係数位置および最後の有意な係数位置(例えば、「有意マップ」)情報、係数レベル(例えば、大きさおよび記号)情報のみならず、ビデオ・データのブロックの係数をコーディングするために使用されるその他の情報を示すために使用されうる。いくつかの例において、シンタックス要素タイプは、“significant_coeff_flag”、“last_significant_coeff_flag”、“coeff_abs_level_minus1”、“coeff_sign_flag”、“larger_than_one_flag”、および“larger_than_two_flag”のみならず、任意の数のその他の等価または類似のシンタックス要素タイプを含みうる。
いくつかの例では、ビデオ・エンコーダ20および/またはビデオ・デコーダ30はさらに、1または複数のマッピング関数および第1および第2の初期インジケータ値を参照して前述したものと類似の方式で、ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、VPS、APS、SPS、およびPPSのうちの少なくとも1つにおけるコンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを示す1または複数の値をコーディングしうる。
他の例では、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、フル・セットのコンテキストのうちの、コンテキストのサブセットを決定するために、ビデオ・データに関連付けられたGOP構造パラメータ、フレーム解像度パラメータ、およびQPのうちの1または複数に基づいて、コンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを決定しうる。他の例として、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、フル・セットのコンテキストのうちの、コンテキストのサブセットを決定するために、第1および第2のスライスのうちの1または複数に関連するその他の情報(しばしば、サイド情報と称される)に基づいて、コンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを決定しうる。さらに、いくつかの例では、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、フル・セットのコンテキストのうち、コンテキストのサブセットを決定するために、ユーザ入力に基づいて、コンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを決定しうる。言い換えれば、いくつかの例において、コンテキストのサブセット(例えば、コンテキストのサブセットに含まれる、フル・セットのコンテキストのうちのコンテキスト)は、ユーザによって指定されうる。
いくつかの例では、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、初期値セットを用いて第1および第2のシンタックス要素をコーディングするために、第1および第2のシンタックス要素のうちの少なくとも特定のタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのおのおのの初期コンテキスト状態を決定しうる。例えば、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、初期値セットと、それぞれのシンタックス要素が属するビデオ・データの第1および第2のスライスの第1および第2のスライス・タイプのうちの対応する1つとに基づいて、それぞれの初期コンテキスト状態を決定しうる。これらの例において、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、第1のビデオ・データのスライスの第1のスライス・タイプと、第2のビデオ・データのスライスの第2のスライス・タイプとに基づいて、初期値セットを決定しうる。これらの例では、初期値セットと、第1および第2のスライス・タイプのうちの対応する1つとに基づいて、1または複数のコンテキストのおのおのの初期コンテキスト状態を決定するために、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、以下に基づいて、それぞれの初期コンテキスト状態を決定しうる。(1)初期値セットのうちの1または複数の値(例えば、前述した“m”、“n”、および“m8”のうちの1または複数);および、(2)QP値(例えば、第1および第2のスライスのうちの対応する1つに関連付けられ、しばしば初期QP値またはiQP値と称される特定のQP値)と、第1および第2のスライス・タイプのうちの対応する1つに基づいて決定されたQPオフセット値(例えば、dQP値)。例えば、前述されるように、以下に再び示される式4および式5に例示されるように、それぞれの初期コンテキスト状態(例えば、InitState)を決定するために使用されるQP値(例えば、QPまたはiQP)を補正または「オフセット」するために使用されうる。
Int iInitState=((m*(iQp+dQP))/16)+n; 式4
iInitState=min(max(1,iInitState),126);式5
その結果、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、第1および第2のシンタックス要素をより効率的にコーディングしうる。例えば、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、前述した方式で、初期値セット(すなわち、第1および第2のスライスの第1および第2のスライス・タイプに基づいて決定された同じ初期値セット)のみならず、第1および第2のスライス・タイプのうちの対応する1つを用いて、第1および第2のシンタックス要素をコーディングするために使用されるコンテキスト適応エントロピ・コーディング処理(例えば、CABAC処理)の1または複数のコンテキストを初期化しうる。そのため、初期値セットと、第1および第2のスライス・タイプとを用いて初期化されると、1または複数のコンテキストは、その他のコンテキスト初期化技法を用いて決定された確率推定値に対して、より正確な確率推定値を含みうる。具体的には、前述した技法は、ビデオ・エンコーダ20および/またはビデオ・デコーダ30が、同じ初期値セットを用いて、第1および第2のシンタックス要素の両方をコーディングし、ビデオ・エンコーダ20および/またはビデオ・デコーダ30の複雑さを潜在的に低減するのみならず、それぞれのシンタックス要素に関連付けられたスライス・タイプ情報を用いて、初期値セットを用いて決定された初期コンテキスト状態の精度を潜在的に高めることをイネーブルしうる。
Int iInitState=((m*(iQp+dQP))/16)+n; 式4
iInitState=min(max(1,iInitState),126);式5
その結果、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、第1および第2のシンタックス要素をより効率的にコーディングしうる。例えば、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、前述した方式で、初期値セット(すなわち、第1および第2のスライスの第1および第2のスライス・タイプに基づいて決定された同じ初期値セット)のみならず、第1および第2のスライス・タイプのうちの対応する1つを用いて、第1および第2のシンタックス要素をコーディングするために使用されるコンテキスト適応エントロピ・コーディング処理(例えば、CABAC処理)の1または複数のコンテキストを初期化しうる。そのため、初期値セットと、第1および第2のスライス・タイプとを用いて初期化されると、1または複数のコンテキストは、その他のコンテキスト初期化技法を用いて決定された確率推定値に対して、より正確な確率推定値を含みうる。具体的には、前述した技法は、ビデオ・エンコーダ20および/またはビデオ・デコーダ30が、同じ初期値セットを用いて、第1および第2のシンタックス要素の両方をコーディングし、ビデオ・エンコーダ20および/またはビデオ・デコーダ30の複雑さを潜在的に低減するのみならず、それぞれのシンタックス要素に関連付けられたスライス・タイプ情報を用いて、初期値セットを用いて決定された初期コンテキスト状態の精度を潜在的に高めることをイネーブルしうる。
このように、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、前述したように、第1および第2のシンタックス要素をコーディングするために使用されるビデオ・エンコーダ20および/またはビデオ・デコーダ30の複雑さを潜在的に低減させながら、第1および第2のシンタックス要素を、他の技法に比べてより効率的に(例えば、より少ないビットを用いて)コーディングしうる。
前述されたように、いくつかの例では、第1および第2のスライス・タイプのおのおのは、イントラ予測(I)スライス・タイプ、一方向インタ予測(P)スライス・タイプ、および双方向インタ予測(B)スライス・タイプのうちの1つでありうる。例えば、前述されたように、第1および第2のスライス・タイプのうちの一方は、(I)スライス・タイプ、(B)スライス・タイプ、および(P)スライス・タイプのうちの何れか1つでありうる一方、第1および第2のスライス・タイプのうちの他方は、前述したスライス・タイプのうちのその他の1つでありうる(すなわち、第1および第2のスライス・タイプは、互いに異なりうる)。さらに、前述されたように、第1および第2のスライス・タイプのうちの少なくとも1つは、時間的に予測されたスライス・タイプ(すなわち、(P)スライス・タプおよび(B)スライス・タイプのうちの1つ)でありうる。
さらに、前述されたように、いくつかの例において、初期値セットは、(1)スロープ値と個別の交差値、および(2)スロープ値と交差値の両方を表す単一の値のうちの1つを含みうる。一例として、HM 4.0を参照して前述されたものと類似の方式で、初期値セットは、1または複数の値のペアを含みうる。値の各ペアは、それぞれ“m”および “n”と称されうるスロープ値および個別の交差値を含む。別の例として、HM 5.0を参照して前述されたものと類似の方式で、初期値セットは、“m8”と称されうる1または複数の単一の値を含みうる。ここで、おのおのの単一の値は、スロープ値と交差値との両方を表す。
別の例として、ビデオ・デコーダ30は、受け取ったビットストリームにおいて、ビデオ・データの第1のスライスの第1のスライス・タイプ(または、この第1のスライス・タイプを定義するデータ)を示す第1のインジケーション、第1のスライスをコーディングするために使用される特定の初期値セットを示す第1のスライスの第1の初期インジケータ値、および、第1の1または複数の関数のうちの少なくとも1つを受け取りうる(500)。この例では前述した第1のスライスのシンタックス情報(すなわち、第1のスライス・タイプを示す第1のインジケーション、第1の初期インジケータ値、および第1の1または複数のマッピング関数)が、図6の例を参照して後述されるように、受け取られたビットストリーム内で、ビデオ・エンコーダ20によって、エンコードされうる。例えば、ビデオ・エンコーダ20は、ビデオ・デコーダ30への送信のため、および/または、記憶デバイス24内の格納のため、ビットストリームを生成しうる。この例ではまた、ビデオ・デコーダ30はさらに、第1のスライス・タイプを示す受け取られた第1のインジケーション、第1の初期インジケータ値、および第1の1または複数のマッピング関数のうちの1または複数に基づいて初期値セットを決定しうる(502)。例えば、ビデオ・デコーダ30は、第1の1または複数のマッピング関数を用いて、第1のスライス・タイプを、または、適用可能な場合には、第1の初期インジケータ値を、初期値セットへマップしうる。言い換えれば、第1の1または複数のマッピング関数を用いて、ビデオ・デコーダ30は、第1のスライス・タイプ、または、適用可能であれば、第1の初期インジケータ値を用いて、例えば、多くの初期値セットから、初期値セットを選択しうる。
初期値セットを決定または選択した後、ビデオ・デコーダ30は、初期値セットのうちの1または複数の値に基づいて、コンテキスト適応エントロピ・コーディング処理(例えば、CABAC処理)のうちの1または複数のコンテキストを初期化しうる(504)。例えば、ビデオ・デコーダ30は、初期値セットのうちの1または複数の値を用いて、1または複数のコンテキストのおのおのについて、初期確率に対応する初期コンテキスト状態を決定しうる。その後、ビデオ・デコーダ30は、初期化された1または複数のコンテキストに基づいて、コンテキスト適応エントロピ・コーディング処理を実行することによって、第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素をデコードしうる(506)。
その後、ビデオ・デコーダ30は、受け取ったビットストリームにおいて、ビデオ・データの第2のスライスの第2のスライス・タイプ(または、この第2のスライス・タイプを定義するデータ)を示す第2のインジケーション、第2のスライスをコーディングするために使用される特定の初期値セットを示す第2のスライスの第2の初期インジケータ値、および、第2の1または複数の関数、のうちの少なくとも1つを受け取りうる(508)。この例において、第1および第2のスライス・タイプは、異なりうる。そして、第1および第2のスライス・タイプのうちの少なくとも1つは、図4の例を参照して前述したように、時間的に予測されたスライス・タイプ(例えば、“P”スライス・タイプまたは“B”スライス・タイプ)でありうる。
この例では、第2のスライスの前述したシンタックス情報(すなわち、第2のスライス・タイプを示す第2のインジケーション、第2の初期インジケータ値、および第2の1または複数のマッピング関数)は、図6の例を参照して後述されるように、受け取られたビットストリーム内で、ビデオ・エンコーダ20によって、再びエンコードされうる。前述されたように、いくつかの例において、ビデオ・エンコーダ20は、ビデオ・デコーダ30への送信のため、および/または、記憶デバイス24内の格納のために、ビットストリームを生成しうる。
この例ではまた、ビデオ・デコーダ30はさらに、第2のスライス・タイプを示す受け取られた第2のインジケーション、第2の初期インジケータ値、および第2の1または複数のマッピング関数のうちの1または複数に基づいて初期値セットを決定しうる(510)。例えば、ビデオ・デコーダ30は、第2の1または複数のマッピング関数を用いて、第2のスライス・タイプ、または、適用可能であれば、第2の初期インジケータ値を、初期値セットへ再びマップしうる。別の方式で述べると、ビデオ・デコーダ30は、第2の1または複数のマッピング関数を用いて、例えば、多くの初期値セットから、第2のスライス・タイプ、または、適用可能であれば、第2の初期インジケータ値を用いて、初期値セットを選択しうる。
初期値セットを決定または選択した後、ビデオ・デコーダ30は、初期値セットのうちの1または複数の値に基づいて、コンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストを再び初期化、すなわち、「再初期化」しうる(512)。例えば、ビデオ・デコーダ30は、初期値セットのうちの1または複数の値を用いて、1または複数のコンテキストのおのおののために、初期確率に対応する初期コンテキスト状態を再び決定しうる。その後、ビデオ・デコーダ30は、再初期化された1または複数のコンテキストに基づいて、コンテキスト適応エントロピ・コーディング処理を実行することによって、第2のスライスの特定のタイプのシンタックス要素(すなわち、第1のシンタックス要素のものと同じタイプのシンタックス要素)にしたがう第2のシンタックス要素をデコードしうる(514)。前述した例では、第1および第2のスライス・タイプを示す第1および第2のインジケーションは、ビデオ・データのスライスに関連付けられたスライス・タイプを示すために使用される、同じ値の特定のシンタックス要素タイプに対応しうる。例えば、同じ値の特定のシンタックス要素は、第1および第2のスライスの各々に関連付けられうる。同様に、適用可能な場合、第1および第2のスライスの、第1および第2の初期インジケータ値はまた、第1および第2のスライスのおのおのに関連付けられた例えばcabac_init_idcのような同じ値の特定のシンタックス要素タイプに対応しうる。さらに、第1および第2の1または複数のマッピング関数は、同じ1または複数のマッピング関数でありうる。このように、ビデオ・デコーダ30は、第1および第2のスライス・タイプのおのおの、または、適用可能であれば、第1および第2の初期インジケータ値のおのおのを、第1および第2の1または複数のマッピング関数を用いて、初期値セットへマップしうる。
さらに別の例として、ビデオ・エンコーダ20は、ビデオ・データの第1のスライスの第1のスライス・タイプ、第1のスライスをコーディングするために使用される特定の初期値セットを示す第1のスライスの第1の初期インジケータ値、および、第1の1または複数のマッピング関数、のうちの少なくとも1つに基づいて、初期値セットを決定しうる(600)。この例において、第1のスライスの前述したシンタックス情報(すなわち、第1のスライス・タイプを示す第1のインジケーション、第1の初期インジケータ値、および第1の1または複数のマッピング関数)は、ビデオ・エンコーダ20によって(例えば、第1のスライスをエンコードすることの一部として)生成されるか、別のシステムまたはデバイスによってビデオ・エンコーダ20へ提供されうる。
例えば、図5の例を参照して前述されたように、ビデオ・エンコーダ20は、ビデオ・デコーダ30によって受け取られるべきビットストリーム内で、このシンタックス情報をエンコードしうる。いくつかの例において、ビデオ・エンコーダ20は、ビデオ・デコーダ30への送信、および/または、記憶デバイス24内の格納のために、ビットストリームを生成しうる。
この例において、ビデオ・エンコーダ20は、第1の1または複数のマッピング関数を用いて、第1のスライス・タイプを、または、適用可能であれば、第1の初期インジケータ値を、初期値セットへマップしうる。言い換えれば、第1の1または複数のマッピング関数を用いて、ビデオ・エンコーダ20は、例えば、多くの初期値セットから、第1のスライス・タイプ、または、適用可能であれば、第1の初期インジケータ値を用いて、初期値セットを選択しうる。
初期値セットを決定または選択した後、ビデオ・エンコーダ20は、初期値セットのうちの1または複数の値に基づいて、コンテキスト適応エントロピ・コーディング処理(例えば、CABAC処理)のうちの1または複数のコンテキストを初期化しうる(602)。例えば、ビデオ・エンコーダ20は、初期値セットのうちの1または複数の値を用いて、1または複数のコンテキストのおのおのについて、初期確率に対応する初期コンテキスト状態を決定しうる。その後、ビデオ・エンコーダ20は、初期化された1または複数のコンテキストに基づいて、コンテキスト適応エントロピ・コーディング処理を実行することによって、第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素をエンコードしうる(604)。さらに、ビデオ・エンコーダ20は、ビットストリームにおいて、第1のスライス・タイプを示す(または、第1のスライス・タイプを定義するデータ)を示す第1のインジケーション、第1の初期インジケータ値、および、第1の1または複数のマッピング関数のうちの少なくとも1つをエンコードしうる(606)。例えば、ビデオ・エンコーダ20は、図5の例を参照して前述されたように、ビデオ・デコーダ30による使用のため、および/または、記憶デバイス24内での格納のため、ビットストリーム内で、前述したシンタックス情報をエンコードしうる。
その後、ビデオ・エンコーダ20は、ビデオ・データの第2のスライスの第2のスライス・タイプ、第2のスライスをコーディングするために使用される特定の初期値セットを示す第2のスライスの第2の初期インジケータ値、および、第2の1または複数のマッピング関数のうちの少なくとも1つに基づいて、初期値セットを決定しうる(608)。この例において、第1および第2のスライス・タイプは、異なりうる。そして、第1および第2のスライス・タイプのうちの少なくとも1つは、図4の例を参照して前述されたように、時間的に予測されたスライス・タイプ(例えば、“P”スライス・タイプまたは“B”スライス・タイプ)でありうる。
この例において、前述した第2のスライスのシンタックス情報(すなわち、第2のスライス・タイプを示す第2のインジケーション、第2の初期インジケータ値、および、第2の1または複数のマッピング関数)は、ビデオ・エンコーダ20によって(第2のスライスをエンコードすることの一部として)再び生成されるか、または、別のシステムまたはデバイスによってビデオ・エンコーダ20へ提供されうる。例えば、図5の例を参照して前述されたように、ビデオ・デコーダ30によって受け取られるべきビットストリーム内で、このシンタックス情報を再びエンコードしうる。前述されたように、いくつかの例では、ビデオ・エンコーダ20は、ビデオ・デコーダ30への送信のため、および/または、記憶デバイス24内の格納のため、ビットストリームを生成しうる。
この例ではまた、ビデオ・エンコーダ20は、第2の1または複数のマッピング関数を用いて、第2のスライスを、または、適用可能であれば、第2の初期インジケータ値を、初期値セットへ再びマップしうる。言い換えれば、第2の1または複数のマッピング関数を用いて、ビデオ・エンコーダ20は、例えば、多くの初期値セットから、第2のスライス・タイプ、または、適用可能であれば、第2の初期インジケータ値を用いて、初期値セットを選択しうる。
初期値セットを決定または選択した後、ビデオ・エンコーダ20は、初期値セットの1または複数の値に基づいて、コンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストを初期化または再初期化しうる(610)。例えば、ビデオ・エンコーダ20は、初期値セットの1または複数の値を用いて、1または複数のコンテキストのおのおのについて、初期確率に対応する初期コンテキスト状態を再び決定しうる。ビデオ・エンコーダ20は、その後、再初期化された1または複数のコンテキストに基づいてコンテキスト適応エントロピ・コーディング処理を実行することによって、第2のスライスの特定のタイプのシンタックス要素(すなわち、第1のシンタックス要素のものと同じタイプのシンタックス要素)にしたがう第2のシンタックス要素をエンコードしうる(612)。さらに、ビデオ・エンコーダ20は、ビットストリームにおいて、第2のスライス・タイプ(または、第2のスライス・タイプを定義するデータ)を示す第2のインジケーション、第2の初期インジケータ値、および、第2の1または複数のマッピング関数のうちの少なくとも1つをエンコードしうる(614)。例えば、ビデオ・エンコーダ20は、図5の例を参照して前述されたように、ビデオ・デコーダ30による使用のため、および/または、記憶デバイス24内の格納のために、ビットストリームにおいて、前述したシンタックス情報をエンコードしうる。
前述した例では、第1および第2のスライス・タイプの第1および第2のインジケーションは再び、ビデオ・データのスライスに関連付けられたスライス・タイプを示すために使用される同じ値の特定のシンタックス要素タイプに対応する。例えば、同じ値の特定のシンタックス要素は、第1および第2のスライスのおのおのに関連付けられうる。同様に、適用可能な場合、第1および第2のスライスの第1および第2の初期インジケータ値はまた、第1および第2のスライスのおのおのに関連付けられた、例えば、cabac_init_idcのような、同じ値の特定のシンタックス要素タイプに対応しうる。さらに、第1および第2の1または複数のマッピング関数は、同じ1または複数のマッピング関数でありうる。このように、ビデオ・デコーダ30のように、ビデオ・エンコーダ20は、第1および第2のスライス・タイプのおのおの、または、適用可能であれば、第1および第2の初期インジケータ値のおのおのを、第1および第2の1または複数のマッピング関数を用いて、初期値セットへマップしうる。さらに別の例として、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、ビデオ・データのスライスのデータを受け取りうる(700)。例えば、ビデオ・データのスライスは、現在コーディングされているスライスでありうる。この例において、現在コーディングされているスライスのデータは、スライスに関連付けられた1または複数のシンタックス要素を含みうる。例として、1または複数のシンタックス要素は、スライスをエンコードするためにビデオ・エンコーダ(例えば、ビデオ・エンコーダ20)によって使用され、かつ、スライスをデコードするためにビデオ・デコーダ(例えば、ビデオ・デコーダ30)のために必要とされるさまざまなタイプの制御情報を含む、現在コーディングされているスライスに関するさまざまなタイプの情報を示しうる。
この例において、ビデオ・エンコーダ20および/またはビデオ・デコーダ30はさらに、受け取ったデータに基づいて、ビデオ・データのスライスに関連付けられた初期インジケータ値とスライス・タイプのうちの1つを決定しうる(702)。例えば、現在コーディングされているスライスに関連付けられた、決定されたスライス・タイプは、前述した“I”スライス・タイプ、“P”スライス・タイプ、および“B”スライス・タイプのうちの何れかでありうる。この例では、決定されたスライス・タイプは、現在コーディングされているスライスに関連付けられたシンタックス要素を用いて表されうる。別の例として、現在コーディングされているスライスに関連付けられた、決定された初期インジケータ値はまた、例えば、特定のシンタックス要素タイプにしたがうシンタックス要素を用いて表されうる。例えば、決定された初期インジケータ値は、現在コーディングされているスライスに関連付けられたシンタックス要素タイプcabac_init_idc、または、その他類似のシンタックス要素タイプの値でありうる。この例において、現在コーディングされているスライスに関連付けられた初期インジケータ値は、スライスをコーディングするために使用される特定の初期値セットを示しうる。
さらにこの例では、ビデオ・エンコーダ20および/またはビデオ・デコーダ30はまた、ビデオ・データのスライスに関連付けられたシンタックス要素を受け取りうる(704)。例えば、現在コーディングされているスライスに関連付けられたシンタックス要素は、スライスのために現在コーディングされているシンタックス要素でありうる。一例として、シンタックス要素は、現在コーディングされているスライスの係数情報(例えば、スライスのビデオ・データの1または複数のブロックの、係数値情報、または、関連するシンタックス情報)を表すために用いられるシンタックス要素タイプに対応しうる。
この例において、ビデオ・エンコーダ20および/またはビデオ・デコーダ30はさらに、初期インジケータ値とスライス・タイプのうちの決定された1つに基づいて、受け取られたシンタックス要素の初期値セットを決定しうる(706)。例えば、既に説明されたように、初期値セットは、コンテキスト適応エントロピ・コーディング処理(例えば、CABAC処理)の1または複数のコンテキストのおのおのの初期コンテキスト状態を決定(または「初期化」)するために使用されうる1または複数の初期値(例えば、前述した“m”値、“n”値、および“m8”値のうちの1または複数)を含みうる。
一例として、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、現在コーディングされているスライスに関連付けられた、決定されたスライス・タイプを、1または複数のマッピング関数を用いて初期値セットへマップすることによって、受け取られたシンタックス要素の初期値セットを決定しうる。別の例として、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、現在コーディングされているスライスに関連付けられたスライス・タイプとは独立して、受け取られたシンタックス要素の初期値セットを決定しうる。例えば、前述されたように、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、現在コーディングされているスライスに関連付けられたシンタックス要素タイプcabac_init_idcの値(すなわち、初期インジケータ値)を用いて初期値セットを決定しうる。何れの場合も、ビデオ・エンコーダ20および/またはビデオ・デコーダ30が、前述した方式で、受け取られたシンタックス要素の初期値セットを決定した結果として、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、異なるスライス・タイプを有するスライスを含む、ビデオ・データの複数のスライスについて、同じ初期値セットを決定しうる。
続いて、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、受け取られたシンタックス要素を、決定された初期値セットを用いてコーディングしうる(708)。特に、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、受け取られたシンタックス要素を、決定された初期値セットを用いてコーディングするために使用されるコンテキスト適応エントロピ・コーディング処理(例えば、CABAC処理)のうちの1または複数のコンテキスト(例えば、受け取られたシンタックス要素に対応する特定のシンタックス要素タイプをコーディングするために使用される1または複数のコンテキスト)を初期化し、受け取られたシンタックス要素を、初期化された1または複数のコンテキストを用いてコーディングしうる。
受け取られたシンタックス要素が、現在コーディングされているスライスに関連付けられた最後のシンタックス要素ではない(例えば、現在コーディングされているスライスの追加のシンタックス要素が存在する)(710の“NO”分岐)イベントでは、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、現在コーディングされているシンタックス要素に関して前述されたものと同じまたは実質的に同じ方式で、現在コーディングされているスライスに関連付けられた別のシンタックス要素のためのステップ(704)−(708)を実行しうる。
しかしながら、受け取られたシンタックス要素が、現在コーディングされているスライスに関連付けられた最後のシンタックス要素である(例えば、現在コーディングされているスライスの追加のシンタックス要素が存在しない)(710の“YES”分岐)イベントでは、ビデオ・エンコーダ20および/またはビデオ・デコーダ30はさらに、以下にさらに詳細に記載されるように、ビデオ・データの別のスライスのシンタックス要素がコーディングされるために利用可能であるか否かを判定しうる。
例えば、現在コーディングされている、すなわち「現在の」スライスが、ビデオ・データの最後のスライスではない(例えば、ビデオ・エンコーダ20および/またはビデオ・デコーダ30によってコーディングされているビデオ・データの「ピクチャ」、またはフレームのシーケンス、またはフレームの追加のスライスが存在する)(712の“NO”分岐)イベントでは、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、現在コーディングされているスライスに関して前述されたものと同じまたは実質的に類似した方式で、別の、その後コーディングされた、または「次の」ビデオ・データのスライスのためにステップ(700)−(710)を実行することに進みうる。
あるいは、現在コーディングされているスライスが、ビデオ・データの最後のスライス(例えば、ビデオ・エンコーダ20および/またはビデオ・デコーダ30によってコーディングされているビデオ・データのピクチャ、またはフレームのシーケンス、またはフレームの最後のスライス)(712の“Yes”分岐)であるイベントでは、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、ビデオ・データのコーディングを終了しうる(714)。いくつかの例において、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、例えば、コーディングされたビデオ・データを送信(または、「シグナリング」)し、格納し、および/または、1または複数のディスプレイ・デバイスを用いてユーザへ表示するようなその他のタスクを実行することに進みうる。
このように、図4−7の方法は、第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングすることと、第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、初期値セットを用いてコーディングすることと、を含む方法の例を示す。ここで、第1のスライス・タイプは、第2のスライス・タイプと異なり、第1のスライス・タイプと第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである。
1または複数の例では、本明細書に記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせで実現されうる。ソフトウェアで実現されるのであれば、これら機能は、コンピュータ読取可能な媒体におけるコードまたは1または複数の命令群で送信されるか格納され、ハードウェア・ベースの処理ユニットによって実行されうる。コンピュータ読取可能な媒体は、コンピュータ読取可能な記憶媒体を含みうる。これは、例えばデータ記憶媒体のような有形または非一時的な媒体、または、例えば通信プロトコルにしたがって、1つの場所から別の場所へのコンピュータ・プログラムの転送を容易にする任意の媒体を含む通信媒体に相当しうる。このように、コンピュータ読取可能な媒体は、一般に、(1)非一時的である有形のコンピュータ読取可能な記憶媒体、または、(2)例えば信号または搬送波のような通信媒体に対応しうる。データ記憶媒体は、本開示において記述された技法を実施するための命令群、コード、および/または、データ構造を検索するために1または複数のコンピュータまたは1または複数のプロセッサによってアクセスされうる任意の利用可能な媒体でありうる。コンピュータ・プログラム製品は、コンピュータ読取可能な媒体を含みうる。
例として、限定することなく、このようなコンピュータ読取可能な記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたはその他の光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶デバイス、フラッシュ・デバイス、あるいは、所望のプログラム・コード手段を命令群またはデータ構造の形式で搬送または格納するために使用され、しかも、コンピュータによってアクセスされうるその他任意の媒体を備えうる。さらに、いかなる接続も、コンピュータ読取可能な媒体として適切に称される。同軸ケーブル、光ファイバ・ケーブル、ツイスト・ペア、デジタル加入者線(DSL)、あるいは、例えば赤外線、無線およびマイクロ波のような無線技術を使用して、ウェブサイト、サーバ、あるいはその他の遠隔ソースから命令群が送信される場合、同軸ケーブル、光ファイバ・ケーブル、ツイスト・ペア、DSL、あるいは、例えば赤外線、無線およびマイクロ波のような無線技術が、媒体の定義に含まれる。しかしながら、コンピュータ読取可能な記憶媒体およびデータ記憶媒体は、コネクション、搬送波、信号、またはその他の過渡的な媒体を含まず、代わりに、非過渡的または非一時的な、有形の記憶媒体に向けられていることが理解されるべきである。本明細書で使用されるディスク(diskおよびdisc)は、コンパクト・ディスク(disc)(CD)、レーザ・ディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびブルー・レイ・ディスク(disc)を含む。これらdiscは、レーザを用いてデータを光学的に再生する。それに対して、diskは、通常、データを磁気的に再生する。前述した組み合わせもまた、コンピュータ読取可能な媒体の範囲内に含まれるべきである。
命令群は、例えば、1または複数の汎用マイクロプロセッサ、DSP、ASIC、FPGA、またはその他の等価な統合されたまたはディスクリートな論理回路のような1または複数のプロセッサによって実行されうる。したがって、用語「プロセッサ」は、ここで用いられるように、前述した構成のうちの何れか、または、本開示に記載された技法の実施に適したその他任意の構成を称しうる。さらに、いくつかの態様では、本明細書に記載された機能は、エンコードおよびデコードのために構成された専用のハードウェアおよび/またはソフトウェア・モジュール内に適用されうるか、または、結合されたコーデック内に組み込まれうる。さらに、これら技術は、1または複数の回路または論理要素で完全に実現されうる。
本開示の技法は、無線ハンドセット、IC、またはICのセット(例えば、チップ・セット)を含む広範なデバイスまたは装置において実現されうる。本開示において、さまざまな構成要素、モジュール、またはユニットは、開示された技法を実行するように構成されたデバイスの機能態様を協調するために記載されているが、必ずしも、別のハードウェア構成要素、モジュール、またはユニットによって実現されることを必要としない。むしろ、前述されたように、さまざまなユニットは、適切なソフトウェアおよび/またはハードウェアと連携する、前述されたような1または複数のプロセッサを含む共通のハードウェア・ユニットの集合によって提供されうるか、コーデック・ハードウェア・ユニットに結合されうる。
さまざまな例が記載された。これらの例およびその他の例は、以下の特許請求の範囲のスコープ内である。
図2の例では、ビデオ・エンコーダ20は、モード選択ユニット40、動き推定ユニット42、動き補償ユニット44、イントラ予測モジュール46、基準フレーム・メモリ64、加算器50、変換処理ユニット52、量子化ユニット54、およびエントロピ・エンコード・ユニット56を含む。ビデオ・ブロック再構築のために、ビデオ・エンコーダ20はまた、逆量子化ユニット58、逆変換処理ユニット60、および加算器62を含んでいる。再構築されたビデオからのブロックノイズ・アーティファクトを除去するために、フィルタ・ブロック境界に、デブロッキング・フィルタも含まれうる。
動き補償ユニット44が、現在のビデオ・ブロックのための予測ブロックを生成した後、ビデオ・エンコーダ20が、現在のビデオ・ブロックから予測ブロックを引くことによって、残余ビデオ・ブロックを生成する。残余ブロックにおける残余ビデオ・データは、1または複数のTUに含まれ、変換処理ユニット52へ適用されうる。変換処理ユニット52は、例えば、ディスクリート・コサイン変換(DCT)または概念的に類似する変換のような変換を用いて、残余ビデオ・データを、残余変換係数へ変換する。変換処理ユニット52は、残余ビデオ・データを、ピクセル領域から、例えば周波数領域のような変換領域へ変換しうる。
変換処理ユニット52は、結果として得られた変換係数を量子化ユニット54へ送信しうる。量子化ユニット54は、さらにビット・レートを低減するために、この変換係数を量子化する。この量子化処理は、これら係数のうちのいくつかまたはすべてに関連付けられたビット・デプスを低減しうる。量子化の程度は、QPを調節することにより修正されうる。いくつかの例では、その後、量子化ユニット54は、量子化された変換係数を含むマトリックスのスキャンを実行しうる。あるいは、エントロピ・エンコード・ユニット56が、このスキャンを実行しうる。
逆量子化ユニット58および逆変換処理ユニット60は、基準ピクチャの基準ブロックとして後に使用するために、ピクセル領域内の残余ブロックを再構築するために、それぞれ、逆量子化および逆変換を適用する。動き補償ユニット44は、残余ブロックを、基準ピクチャ・リストのうちの1つ内の基準ピクチャのうちの1つの予測ブロックへ加えることによって、基準ブロックを計算しうる。動き補償ユニット44はまた、動き推定において使用するための整数未満のピクセル値を計算するために、1または複数の補間フィルタを、再構築された残余ブロックに適用しうる。加算器62は、基準フレーム・メモリ64内に格納するための基準ブロックを生成するために、動き補償ユニット44によって生成された動き補償予測ブロックへ、再構築された残余ブロックを加える。基準ブロックは、その後のビデオ・フレームまたはピクチャ内のブロックをインタ予測するための基準ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用されうる。
図3は、本開示の技法にしたがって、低減された初期値セットを用いたコンテキスト適応エントロピ・コーディングのための技法を実行しうるビデオ・デコーダの例を例示するブロック図である。図3の例では、ビデオ・デコーダ30は、エントロピ・デコード・ユニット80、予測処理ユニット82、逆量子化ユニット88、逆変換処理ユニット90、加算器92、および基準フレーム・メモリ96を含んでいる。予測処理ユニット82は、動き補償ユニット84およびイントラ予測処理ユニット86を含んでいる。ビデオ・デコーダ30は、いくつかの例において、図2からのビデオ・エンコーダ20に関して記載されたエンコード・パスに一般に相補的なデコード・パスを実行しうる。
デコード処理中、ビデオ・デコーダ30は、関連付けられたシンタックス要素とエンコードされたビデオ・スライスのビデオ・ブロックを示す、エンコードされたビデオ・ビットストリームを、ビデオ・エンコーダ20から受け取る。ビットストリームにおいて表されたビデオ・ブロックが、圧縮されたビデオ・データを含んでいる場合、ビデオ・デコーダ30のエントロピ・デコード・ユニット80は、量子化された係数、動きベクトル、およびその他のシンタックス要素を生成するために、ビットストリームをエントロピ・デコードする。エントロピ・デコード・ユニット80は、動きベクトルおよびその他のシンタックス要素を、予測処理ユニット82へ転送する。ビデオ・デコーダ30は、ビデオ・スライス・レベルおよび/またはビデオ・ブロック・レベルにおいて、シンタックス要素を受け取りうる。
ビデオ・スライスが、イントラ・コード(I)スライスとしてコーディングされた場合、予測処理ユニット82のイントラ予測処理ユニット86は、現在のフレームまたはピクチャの以前にデコードされたブロックからの、シグナルされたイントラ予測モードおよびデータに基づいて、現在のビデオ・スライスのビデオ・ブロックの予測データを生成しうる。ビデオ・フレームが、インタ・コードされた(すなわち、B、P、またはGPB)スライスとしてコーディングされている場合、予測処理ユニット82の動き補償ユニット84は、エントロピ・デコード・ユニット80から受け取られた動きベクトルおよびその他のシンタックス要素に基づいて、現在のビデオ・スライスのビデオ・ブロックの予測ブロックを生成する。予測ブロックは、基準ピクチャ・リストのうちの1つ内の、基準ピクチャのうちの1つから生成されうる。ビデオ・デコーダ30は、基準フレーム・メモリ96に格納された基準ピクチャに基づいて、デフォルトの構築技法を用いて、基準フレーム・リスト、リスト0およびリスト1を構築しうる。
逆量子化ユニット88は、ビットストリームで提供され、エントロピ・デコード・ユニット80によってデコードされた、量子化された変換係数を逆量子化、すなわちde quantizeする。逆量子化処理は、量子化の程度、および同様に、適用されるべき逆量子化の程度を決定するために、ビデオ・スライスにおけるおのおののビデオ・ブロックについて、ビデオ・エンコーダ20によって計算される量子化パラメータ(QP)を使用することを含みうる。逆変換処理ユニット90は、ピクセル領域における残余ブロックを生成するために、例えば、逆DCT、逆整数変換、または、概念的に類似の逆変換処理を、変換係数へ適用する。
動き補償ユニット84が、動きベクトルおよびその他のシンタックス要素に基づいて、現在のビデオ・ブロックの予測ブロックを生成した後、ビデオ・デコーダ30は、逆変換処理ユニット90からの残余ブロックと、動き補償ユニット84によって生成された対応する予測ブロックとを総和することによって、デコードされたビデオ・ブロックを生成する。加算器92は、この総和演算を実行する構成要素(単数または複数)を表わす。デブロッキング・フィルタは、ブロックノイズ・アーティファクトを除去するために、デコードされたブロックをフィルタするために適用される。所与のフレームまたはピクチャ内の、デコードされたビデオ・ブロックは、その後、基準フレーム・メモリ96に格納される。基準フレーム・メモリ96は、その後の動き補償のために使用される基準ピクチャを格納する。基準ピクチャ・メモリ96はまた、例えば、図1のディスプレイ・デバイス28のような、ディスプレイ・デバイスにおける後の表示のために、デコードされたビデオを格納する。
さまざまな例が記載された。これらの例およびその他の例は、以下の特許請求の範囲のスコープ内である。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[1]
ビデオ・データをコーディングする方法であって、
第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングすることと、
第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、前記特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、前記初期値セットを用いてコーディングすることとを備え、
前記第1のスライス・タイプは、前記第2のスライス・タイプとは異なり、前記第1のスライス・タイプと前記第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである、方法。
[2]
前記ビデオ・データの第1のスライスの第1のスライス・タイプ、および、前記ビデオ・データの第2のスライスの第2のスライス・タイプと、
前記ビデオ・データの第1のスライスの第1の初期インジケータ値、および、前記ビデオ・データの第2のスライスの第2の初期インジケータ値と、
のうちの少なくとも1つに基づいて、前記第1および第2のシンタックス要素をコーディングするために使用される初期値セットを決定することをさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[1]に記載の方法。
[3]
1または複数のマッピング関数のうちの第1のマッピング関数を用いて、前記ビデオ・データの第1のスライスの第1の初期インジケータ値および前記第1のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第1のマッピングを決定することと、
前記1または複数のマッピング関数のうちの第2のマッピング関数を用いて、前記ビデオ・データの第2のスライスの第2の初期インジケータ値および前記第2のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第2のマッピングを決定することとをさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[1]に記載の方法。
[4]
前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおける前記第1および第2の初期インジケータ値、および、前記1または複数のマッピング関数のうちの少なくとも1つを示す1または複数の値をコーディングすること、をさらに備える[3]に記載の方法。
[5]
ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記第1および第2の初期インジケータ値と、前記1または複数のマッピング関数のうちの少なくとも1つを決定すること、をさらに備える[3]に記載の方法。
[6]
1または複数の式と、前記ビデオ・データの第1のスライスの第1の初期インジケータ値、前記ビデオ・データの第2のスライスの第2の初期インジケータ値、および前記第1および第2のスライス・タイプのうちの1または複数に基づいて前記初期値セットを決定することをさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[1]に記載の方法。
[7]
前記第1および第2のスライスのおのおのをコーディングするために使用されるフル・セットのコンテキストのうち、コンテキストのサブセットを決定することをさらに備え、
前記コンテキストのサブセットは、前記第1および第2のシンタックス要素の特定のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含み、
前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングすることは、前記初期値セットに基づいて、前記コンテキストのサブセットの、1または複数のコンテキストを初期化することを備える、[1]に記載の方法。
[8]
前記コンテキストのサブセットは、ビデオ・データのブロックの係数に関連する、1または複数のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含む、[7]に記載の方法。
[9]
前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおいて、前記コンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを示す1または複数の値をコーディングすること、をさらに備える[7]に記載の方法。
[10]
前記フル・セットのコンテキストのうち、コンテキストのサブセットを決定することは、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記コンテキストのサブセットに含まれる、前記フル・セットのコンテキストのうちのコンテキストを決定することを備える、[7]に記載の方法。
[11]
前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングすることは、それぞれのシンタックス要素が属するビデオ・データの前記第1および第2のスライスの前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記第1および第2のシンタックス要素のうち、少なくとも特定のタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのおのおのの初期コンテキスト状態を決定することを備える、[1]に記載の方法。
[12]
前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記1または複数のコンテキストのおのおのの初期コンテキスト状態を決定することは、前記第1および第2のスライス・タイプのうちの対応する1つに基づいて決定されたQPオフセット値と、量子化パラメータ(QP)値と、前記初期値セットの1または複数の値に基づいて、前記それぞれの初期コンテキスト状態を決定することを備える、[11]に記載の方法。
[13]
前記第1および第2のスライス・タイプのおのおのは、イントラ予測(I)スライス・タイプ、一方向インタ予測(P)スライス・タイプ、および双方向インタ予測(B)スライス・タイプのうちの1つを備える、[1]に記載の方法。
[14]
前記初期値セットは、スロープ値および個別の交差値と、スロープ値および交差値の両方を表す単一の値と、のうちの1つを備える、[1]に記載の方法。
[15]
前記コーディングは、デコードすることを備え、
前記初期値セットを用いて、前記第1および第2のシンタックス要素をデコードすることは、
受け取られたビットストリームにおいて、1または複数のマッピング関数、前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値、および、前記第1および第2のスライス・タイプのうちの少なくとも1つを受け取ることと、
1または複数のマッピング関数、第1および第2の初期インジケータ値、および、前記受け取られた第1および第2のスライス・タイプのうちの1または複数に基づいて、前記初期値セットを決定することと、
前記初期値セットの1または複数の値に基づいて、コンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストを初期化することと、
前記初期化された1または複数のコンテキストに基づいて、前記コンテキスト適応エントロピ・コーディング処理を実行することによって、前記第1および第2のシンタックス要素をデコードすることとを含む、[1]に記載の方法。
[16]
前記コーディングは、エンコードすることを備え、
前記初期値セットを用いて前記第1および第2のシンタックス要素をエンコードすることは、
1または複数のマッピング関数、前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値、および、前記第1および第2のスライス・タイプのうちの少なくとも1つに基づいて、前記初期値セットを決定することと、
前記初期値セットの1または複数の値に基づいて、コンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストを初期化することと、
前記初期化された1または複数のコンテキストに基づいて、前記コンテキスト適応エントロピ・コーディング処理を実行することによって、前記第1および第2のシンタックス要素をエンコードすることと、
ビットストリームにおいて、1または複数のマッピング関数、前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値、および、前記第1および第2のスライス・タイプのうちの少なくとも1つをエンコードすることとを含む、[1]に記載の方法。
[17]
ビデオ・データをコーディングするように構成された装置であって、
第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングし、
第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、前記特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、前記初期値セットを用いてコーディングするように構成されたビデオ・コーダを備え、
前記第1のスライス・タイプは、前記第2のスライス・タイプとは異なり、前記第1のスライス・タイプと前記第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである、装置。
[18]
前記ビデオ・コーダはさらに、
前記ビデオ・データの第1のスライスの第1のスライス・タイプ、および、前記ビデオ・データの第2のスライスの第2のスライス・タイプと、
前記ビデオ・データの第1のスライスの第1の初期インジケータ値、および、前記ビデオ・データの第2のスライスの第2の初期インジケータ値と、
のうちの少なくとも1つに基づいて、前記第1および第2のシンタックス要素をコーディングするために使用される初期値セットを決定するように構成され、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[17]に記載の装置。
[19]
前記ビデオ・コーダはさらに、
1または複数のマッピング関数のうちの第1のマッピング関数を用いて、前記ビデオ・データの第1のスライスの第1の初期インジケータ値および前記第1のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第1のマッピングを決定し、
前記1または複数のマッピング関数のうちの第2のマッピング関数を用いて、前記ビデオ・データの第2のスライスの第2の初期インジケータ値および前記第2のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第2のマッピングを決定するように構成され、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[17]に記載の装置。
[20]
前記ビデオ・コーダはさらに、前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおける前記第1および第2の初期インジケータ値、および、前記1または複数のマッピング関数のうちの少なくとも1つを示す1または複数の値をコーディングするように構成された、[19]に記載の装置。
[21]
前記ビデオ・コーダはさらに、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記第1および第2の初期インジケータ値と、前記1または複数のマッピング関数のうちの少なくとも1つを決定するように構成された、[19]に記載の装置。
[22]
前記ビデオ・コーダはさらに、前記第1および第2のスライスのおのおのをコーディングするために使用されるフル・セットのコンテキストのうち、コンテキストのサブセットを決定するように構成され、
前記コンテキストのサブセットは、前記第1および第2のシンタックス要素の特定のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含み、
前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングするために、前記ビデオ・コーダは、前記初期値セットに基づいて、コンテキストのサブセットのうちの1または複数のコンテキストを初期化するように構成された、[17]に記載の装置。
[23]
前記ビデオ・コーダはさらに、前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおいて、前記コンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを示す1または複数の値をコーディングするように構成された、[22]に記載の装置。
[24]
前記フル・セットのコンテキストのうち、コンテキストのサブセットを決定するために、前記ビデオ・コーダは、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記コンテキストのサブセットに含まれる、前記フル・セットのコンテキストのうちのコンテキストを決定するように構成された、[22]に記載の装置。
[25]
前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングするために、前記ビデオ・コーダは、前記初期値セットと、それぞれのシンタックス要素が属するビデオ・データの第1および第2のスライスの第1および第2のスライス・タイプのうちの対応する1つに基づいて、前記第1および第2のシンタックス要素のうちの、少なくとも特定のタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのおのおのの初期コンテキスト状態を決定するように構成された、[17]に記載の装置。
[26]
前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記1または複数のコンテキストのおのおのの初期コンテキスト状態を決定するために、前記ビデオ・コーダは、前記第1および第2のスライス・タイプのうちの対応する1つに基づいて決定されたQPオフセット値と、量子化パラメータ(QP)値と、前記初期値セットの1または複数の値に基づいて、前記それぞれの初期コンテキスト状態を決定するように構成された、[25]に記載の装置。
[27]
前記初期値セットは、スロープ値および個別の交差値と、スロープ値および交差値の両方を表す単一の値と、のうちの1つを備える、[17]に記載の装置。
[28]
集積回路と、マイクロプロセッサと、前記ビデオ・コーダを含んでいる無線通信デバイスとのうちの少なくとも1つを備える、[17]に記載の装置。
[29]
ビデオ・データをコーディングするように構成されたデバイスであって、
第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングする手段と、
第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、前記特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、前記初期値セットを用いてコーディングする手段とを備え、
前記第1のスライス・タイプは、前記第2のスライス・タイプとは異なり、前記第1のスライス・タイプと前記第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである、デバイス。
[30]
前記ビデオ・データの第1のスライスの第1のスライス・タイプ、および、前記ビデオ・データの第2のスライスの第2のスライス・タイプと、 前記ビデオ・データの第1のスライスの第1の初期インジケータ値、および、前記ビデオ・データの第2のスライスの第2の初期インジケータ値と、のうちの少なくとも1つに基づいて、前記第1および第2のシンタックス要素をコーディングするために使用される初期値セットを決定する手段をさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[29]に記載のデバイス。
[31]
1または複数のマッピング関数のうちの第1のマッピング関数を用いて、前記ビデオ・データの第1のスライスの第1の初期インジケータ値および前記第1のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第1のマッピングを決定する手段と、
前記1または複数のマッピング関数のうちの第2のマッピング関数を用いて、前記ビデオ・データの第2のスライスの第2の初期インジケータ値および前記第2のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第2のマッピングを決定する手段とをさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[29]に記載のデバイス。
[32]
前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおける前記第1および第2の初期インジケータ値、および、前記1または複数のマッピング関数のうちの少なくとも1つを示す1または複数の値をコーディングする手段、をさらに備える[31]に記載のデバイス。
[33]
ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記第1および第2の初期インジケータ値と、前記1または複数のマッピング関数のうちの少なくとも1つを決定する手段、をさらに備える[31]に記載のデバイス。
[34]
前記第1および第2のスライスのおのおのをコーディングするために使用されるフル・セットのコンテキストのうち、コンテキストのサブセットを決定する手段をさらに備え、
前記コンテキストのサブセットは、前記第1および第2のシンタックス要素の特定のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含み、前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングする手段は、前記初期値セットに基づいて、前記コンテキストのサブセットの、1または複数のコンテキストを初期化する手段を備える、[29]に記載のデバイス。
[35]
前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおいて、前記コンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを示す1または複数の値をコーディングする手段、をさらに備える[34]に記載のデバイス。
[36]
前記フル・セットのコンテキストのうち、コンテキストのサブセットを決定する手段は、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記コンテキストのサブセットに含まれる、前記フル・セットのコンテキストのうちのコンテキストを決定する手段を備える、[34]に記載のデバイス。
[37]
前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングする手段は、それぞれのシンタックス要素が属するビデオ・データの前記第1および第2のスライスの前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記第1および第2のシンタックス要素のうち、少なくとも特定のタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのおのおのの初期コンテキスト状態を決定する手段を備える、[29]に記載のデバイス。
[38]
前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記1または複数のコンテキストのおのおのの初期コンテキスト状態を決定する手段は、前記第1および第2のスライス・タイプのうちの対応する1つに基づいて決定されたQPオフセット値と、量子化パラメータ(QP)値と、前記初期値セットの1または複数の値に基づいて、前記それぞれの初期コンテキスト状態を決定する手段を備える、[37]に記載のデバイス。
[39]
前記初期値セットは、スロープ値および個別の交差値と、スロープ値および交差値の両方を表す単一の値と、のうちの1つを備える、[29]に記載のデバイス。
[40]
実行された場合、1または複数のプロセッサに対して、ビデオ・データをコーディングさせるための命令群を格納したコンピュータ読取可能な記憶媒体であって、
前記命令群は、前記1または複数のプロセッサに対して、
第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングさせ、
第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、前記特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、前記初期値セットを用いてコーディングさせ、
前記第1のスライス・タイプは、前記第2のスライス・タイプとは異なり、前記第1のスライス・タイプと前記第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである、コンピュータ読取可能な記憶媒体。
[41]
前記1または複数のプロセッサに対して、
前記ビデオ・データの第1のスライスの第1のスライス・タイプ、および、前記ビデオ・データの第2のスライスの第2のスライス・タイプと、
前記ビデオ・データの第1のスライスの第1の初期インジケータ値、および、前記ビデオ・データの第2のスライスの第2の初期インジケータ値と、
のうちの少なくとも1つに基づいて、前記第1および第2のシンタックス要素をコーディングするために使用される初期値セットを決定させるための命令群をさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[40]に記載のコンピュータ読取可能な記憶媒体。
[42]
前記1または複数のプロセッサに対して、
1または複数のマッピング関数のうちの第1のマッピング関数を用いて、前記ビデオ・データの第1のスライスの第1の初期インジケータ値および前記第1のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第1のマッピングを決定させ、
前記1または複数のマッピング関数のうちの第2のマッピング関数を用いて、前記ビデオ・データの第2のスライスの第2の初期インジケータ値および前記第2のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第2のマッピングを決定させるための命令群をさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[40]に記載のコンピュータ読取可能な記憶媒体。
[43]
前記1または複数のプロセッサに対して、前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおける前記第1および第2の初期インジケータ値、および、前記1または複数のマッピング関数のうちの少なくとも1つを示す1または複数の値をコーディングさせるための命令群をさらに備える、[42]に記載のコンピュータ読取可能な記憶媒体。
[44]
前記1または複数のプロセッサに対して、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記第1および第2の初期インジケータ値と、前記1または複数のマッピング関数のうちの少なくとも1つを決定させるための命令群をさらに備える、[42]に記載のコンピュータ読取可能な記憶媒体。
[45]
前記1または複数のプロセッサに対して、前記第1および第2のスライスのおのおのをコーディングするために使用されるフル・セットのコンテキストのうち、コンテキストのサブセットを決定させるための命令群をさらに備え、
前記コンテキストのサブセットは、前記第1および第2のシンタックス要素の特定のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含み、
前記1または複数のプロセッサに対して、前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングさせるための命令群は、前記1または複数のプロセッサに対して、前記初期値セットに基づいて、前記コンテキストのサブセットの、1または複数のコンテキストを初期化させるための命令群を備える、[40]に記載のコンピュータ読取可能な記憶媒体。
[46]
前記1または複数のプロセッサに対して、前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおいて、前記コンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを示す1または複数の値をコーディングさせるための命令群、をさらに備える[45]に記載のコンピュータ読取可能な記憶媒体。
[47]
前記1または複数のプロセッサに対して、前記フル・セットのコンテキストのうち、コンテキストのサブセットを決定させるための命令群は、前記1または複数のプロセッサに対して、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記コンテキストのサブセットに含まれる、前記フル・セットのコンテキストのうちのコンテキストを決定させるための命令群を備える、[45]に記載のコンピュータ読取可能な記憶媒体。
[48]
前記1または複数のプロセッサに対して、前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングさせるための命令群は、前記1または複数のプロセッサに対して、前記初期値セットと、それぞれのシンタックス要素が属するビデオ・データの第1および第2のスライスの第1および第2のスライス・タイプのうちの対応する1つに基づいて、前記第1および第2のシンタックス要素のうちの、少なくとも特定のタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのおのおのの初期コンテキスト状態を決定させるための命令群を備える、[40]に記載のコンピュータ読取可能な記憶媒体。
[49]
前記1または複数のプロセッサに対して、前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記1または複数のコンテキストのおのおのの初期コンテキスト状態を決定させるための命令群は、前記1または複数のプロセッサに対して、前記第1および第2のスライス・タイプのうちの対応する1つに基づいて決定されたQPオフセット値と、量子化パラメータ(QP)値と、前記初期値セットの1または複数の値に基づいて、前記それぞれの初期コンテキスト状態を決定させるための命令群を備える、[48]に記載のコンピュータ読取可能な記憶媒体。
[50]
前記初期値セットは、スロープ値および個別の交差値と、スロープ値および交差値の両方を表す単一の値と、のうちの1つを備える、[40]に記載のコンピュータ読取可能な記憶媒体。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[1]
ビデオ・データをコーディングする方法であって、
第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングすることと、
第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、前記特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、前記初期値セットを用いてコーディングすることとを備え、
前記第1のスライス・タイプは、前記第2のスライス・タイプとは異なり、前記第1のスライス・タイプと前記第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである、方法。
[2]
前記ビデオ・データの第1のスライスの第1のスライス・タイプ、および、前記ビデオ・データの第2のスライスの第2のスライス・タイプと、
前記ビデオ・データの第1のスライスの第1の初期インジケータ値、および、前記ビデオ・データの第2のスライスの第2の初期インジケータ値と、
のうちの少なくとも1つに基づいて、前記第1および第2のシンタックス要素をコーディングするために使用される初期値セットを決定することをさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[1]に記載の方法。
[3]
1または複数のマッピング関数のうちの第1のマッピング関数を用いて、前記ビデオ・データの第1のスライスの第1の初期インジケータ値および前記第1のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第1のマッピングを決定することと、
前記1または複数のマッピング関数のうちの第2のマッピング関数を用いて、前記ビデオ・データの第2のスライスの第2の初期インジケータ値および前記第2のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第2のマッピングを決定することとをさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[1]に記載の方法。
[4]
前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおける前記第1および第2の初期インジケータ値、および、前記1または複数のマッピング関数のうちの少なくとも1つを示す1または複数の値をコーディングすること、をさらに備える[3]に記載の方法。
[5]
ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記第1および第2の初期インジケータ値と、前記1または複数のマッピング関数のうちの少なくとも1つを決定すること、をさらに備える[3]に記載の方法。
[6]
1または複数の式と、前記ビデオ・データの第1のスライスの第1の初期インジケータ値、前記ビデオ・データの第2のスライスの第2の初期インジケータ値、および前記第1および第2のスライス・タイプのうちの1または複数に基づいて前記初期値セットを決定することをさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[1]に記載の方法。
[7]
前記第1および第2のスライスのおのおのをコーディングするために使用されるフル・セットのコンテキストのうち、コンテキストのサブセットを決定することをさらに備え、
前記コンテキストのサブセットは、前記第1および第2のシンタックス要素の特定のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含み、
前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングすることは、前記初期値セットに基づいて、前記コンテキストのサブセットの、1または複数のコンテキストを初期化することを備える、[1]に記載の方法。
[8]
前記コンテキストのサブセットは、ビデオ・データのブロックの係数に関連する、1または複数のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含む、[7]に記載の方法。
[9]
前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおいて、前記コンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを示す1または複数の値をコーディングすること、をさらに備える[7]に記載の方法。
[10]
前記フル・セットのコンテキストのうち、コンテキストのサブセットを決定することは、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記コンテキストのサブセットに含まれる、前記フル・セットのコンテキストのうちのコンテキストを決定することを備える、[7]に記載の方法。
[11]
前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングすることは、それぞれのシンタックス要素が属するビデオ・データの前記第1および第2のスライスの前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記第1および第2のシンタックス要素のうち、少なくとも特定のタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのおのおのの初期コンテキスト状態を決定することを備える、[1]に記載の方法。
[12]
前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記1または複数のコンテキストのおのおのの初期コンテキスト状態を決定することは、前記第1および第2のスライス・タイプのうちの対応する1つに基づいて決定されたQPオフセット値と、量子化パラメータ(QP)値と、前記初期値セットの1または複数の値に基づいて、前記それぞれの初期コンテキスト状態を決定することを備える、[11]に記載の方法。
[13]
前記第1および第2のスライス・タイプのおのおのは、イントラ予測(I)スライス・タイプ、一方向インタ予測(P)スライス・タイプ、および双方向インタ予測(B)スライス・タイプのうちの1つを備える、[1]に記載の方法。
[14]
前記初期値セットは、スロープ値および個別の交差値と、スロープ値および交差値の両方を表す単一の値と、のうちの1つを備える、[1]に記載の方法。
[15]
前記コーディングは、デコードすることを備え、
前記初期値セットを用いて、前記第1および第2のシンタックス要素をデコードすることは、
受け取られたビットストリームにおいて、1または複数のマッピング関数、前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値、および、前記第1および第2のスライス・タイプのうちの少なくとも1つを受け取ることと、
1または複数のマッピング関数、第1および第2の初期インジケータ値、および、前記受け取られた第1および第2のスライス・タイプのうちの1または複数に基づいて、前記初期値セットを決定することと、
前記初期値セットの1または複数の値に基づいて、コンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストを初期化することと、
前記初期化された1または複数のコンテキストに基づいて、前記コンテキスト適応エントロピ・コーディング処理を実行することによって、前記第1および第2のシンタックス要素をデコードすることとを含む、[1]に記載の方法。
[16]
前記コーディングは、エンコードすることを備え、
前記初期値セットを用いて前記第1および第2のシンタックス要素をエンコードすることは、
1または複数のマッピング関数、前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値、および、前記第1および第2のスライス・タイプのうちの少なくとも1つに基づいて、前記初期値セットを決定することと、
前記初期値セットの1または複数の値に基づいて、コンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストを初期化することと、
前記初期化された1または複数のコンテキストに基づいて、前記コンテキスト適応エントロピ・コーディング処理を実行することによって、前記第1および第2のシンタックス要素をエンコードすることと、
ビットストリームにおいて、1または複数のマッピング関数、前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値、および、前記第1および第2のスライス・タイプのうちの少なくとも1つをエンコードすることとを含む、[1]に記載の方法。
[17]
ビデオ・データをコーディングするように構成された装置であって、
第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングし、
第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、前記特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、前記初期値セットを用いてコーディングするように構成されたビデオ・コーダを備え、
前記第1のスライス・タイプは、前記第2のスライス・タイプとは異なり、前記第1のスライス・タイプと前記第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである、装置。
[18]
前記ビデオ・コーダはさらに、
前記ビデオ・データの第1のスライスの第1のスライス・タイプ、および、前記ビデオ・データの第2のスライスの第2のスライス・タイプと、
前記ビデオ・データの第1のスライスの第1の初期インジケータ値、および、前記ビデオ・データの第2のスライスの第2の初期インジケータ値と、
のうちの少なくとも1つに基づいて、前記第1および第2のシンタックス要素をコーディングするために使用される初期値セットを決定するように構成され、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[17]に記載の装置。
[19]
前記ビデオ・コーダはさらに、
1または複数のマッピング関数のうちの第1のマッピング関数を用いて、前記ビデオ・データの第1のスライスの第1の初期インジケータ値および前記第1のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第1のマッピングを決定し、
前記1または複数のマッピング関数のうちの第2のマッピング関数を用いて、前記ビデオ・データの第2のスライスの第2の初期インジケータ値および前記第2のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第2のマッピングを決定するように構成され、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[17]に記載の装置。
[20]
前記ビデオ・コーダはさらに、前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおける前記第1および第2の初期インジケータ値、および、前記1または複数のマッピング関数のうちの少なくとも1つを示す1または複数の値をコーディングするように構成された、[19]に記載の装置。
[21]
前記ビデオ・コーダはさらに、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記第1および第2の初期インジケータ値と、前記1または複数のマッピング関数のうちの少なくとも1つを決定するように構成された、[19]に記載の装置。
[22]
前記ビデオ・コーダはさらに、前記第1および第2のスライスのおのおのをコーディングするために使用されるフル・セットのコンテキストのうち、コンテキストのサブセットを決定するように構成され、
前記コンテキストのサブセットは、前記第1および第2のシンタックス要素の特定のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含み、
前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングするために、前記ビデオ・コーダは、前記初期値セットに基づいて、コンテキストのサブセットのうちの1または複数のコンテキストを初期化するように構成された、[17]に記載の装置。
[23]
前記ビデオ・コーダはさらに、前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおいて、前記コンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを示す1または複数の値をコーディングするように構成された、[22]に記載の装置。
[24]
前記フル・セットのコンテキストのうち、コンテキストのサブセットを決定するために、前記ビデオ・コーダは、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記コンテキストのサブセットに含まれる、前記フル・セットのコンテキストのうちのコンテキストを決定するように構成された、[22]に記載の装置。
[25]
前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングするために、前記ビデオ・コーダは、前記初期値セットと、それぞれのシンタックス要素が属するビデオ・データの第1および第2のスライスの第1および第2のスライス・タイプのうちの対応する1つに基づいて、前記第1および第2のシンタックス要素のうちの、少なくとも特定のタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのおのおのの初期コンテキスト状態を決定するように構成された、[17]に記載の装置。
[26]
前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記1または複数のコンテキストのおのおのの初期コンテキスト状態を決定するために、前記ビデオ・コーダは、前記第1および第2のスライス・タイプのうちの対応する1つに基づいて決定されたQPオフセット値と、量子化パラメータ(QP)値と、前記初期値セットの1または複数の値に基づいて、前記それぞれの初期コンテキスト状態を決定するように構成された、[25]に記載の装置。
[27]
前記初期値セットは、スロープ値および個別の交差値と、スロープ値および交差値の両方を表す単一の値と、のうちの1つを備える、[17]に記載の装置。
[28]
集積回路と、マイクロプロセッサと、前記ビデオ・コーダを含んでいる無線通信デバイスとのうちの少なくとも1つを備える、[17]に記載の装置。
[29]
ビデオ・データをコーディングするように構成されたデバイスであって、
第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングする手段と、
第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、前記特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、前記初期値セットを用いてコーディングする手段とを備え、
前記第1のスライス・タイプは、前記第2のスライス・タイプとは異なり、前記第1のスライス・タイプと前記第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである、デバイス。
[30]
前記ビデオ・データの第1のスライスの第1のスライス・タイプ、および、前記ビデオ・データの第2のスライスの第2のスライス・タイプと、 前記ビデオ・データの第1のスライスの第1の初期インジケータ値、および、前記ビデオ・データの第2のスライスの第2の初期インジケータ値と、のうちの少なくとも1つに基づいて、前記第1および第2のシンタックス要素をコーディングするために使用される初期値セットを決定する手段をさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[29]に記載のデバイス。
[31]
1または複数のマッピング関数のうちの第1のマッピング関数を用いて、前記ビデオ・データの第1のスライスの第1の初期インジケータ値および前記第1のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第1のマッピングを決定する手段と、
前記1または複数のマッピング関数のうちの第2のマッピング関数を用いて、前記ビデオ・データの第2のスライスの第2の初期インジケータ値および前記第2のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第2のマッピングを決定する手段とをさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[29]に記載のデバイス。
[32]
前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおける前記第1および第2の初期インジケータ値、および、前記1または複数のマッピング関数のうちの少なくとも1つを示す1または複数の値をコーディングする手段、をさらに備える[31]に記載のデバイス。
[33]
ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記第1および第2の初期インジケータ値と、前記1または複数のマッピング関数のうちの少なくとも1つを決定する手段、をさらに備える[31]に記載のデバイス。
[34]
前記第1および第2のスライスのおのおのをコーディングするために使用されるフル・セットのコンテキストのうち、コンテキストのサブセットを決定する手段をさらに備え、
前記コンテキストのサブセットは、前記第1および第2のシンタックス要素の特定のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含み、前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングする手段は、前記初期値セットに基づいて、前記コンテキストのサブセットの、1または複数のコンテキストを初期化する手段を備える、[29]に記載のデバイス。
[35]
前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおいて、前記コンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを示す1または複数の値をコーディングする手段、をさらに備える[34]に記載のデバイス。
[36]
前記フル・セットのコンテキストのうち、コンテキストのサブセットを決定する手段は、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記コンテキストのサブセットに含まれる、前記フル・セットのコンテキストのうちのコンテキストを決定する手段を備える、[34]に記載のデバイス。
[37]
前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングする手段は、それぞれのシンタックス要素が属するビデオ・データの前記第1および第2のスライスの前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記第1および第2のシンタックス要素のうち、少なくとも特定のタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのおのおのの初期コンテキスト状態を決定する手段を備える、[29]に記載のデバイス。
[38]
前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記1または複数のコンテキストのおのおのの初期コンテキスト状態を決定する手段は、前記第1および第2のスライス・タイプのうちの対応する1つに基づいて決定されたQPオフセット値と、量子化パラメータ(QP)値と、前記初期値セットの1または複数の値に基づいて、前記それぞれの初期コンテキスト状態を決定する手段を備える、[37]に記載のデバイス。
[39]
前記初期値セットは、スロープ値および個別の交差値と、スロープ値および交差値の両方を表す単一の値と、のうちの1つを備える、[29]に記載のデバイス。
[40]
実行された場合、1または複数のプロセッサに対して、ビデオ・データをコーディングさせるための命令群を格納したコンピュータ読取可能な記憶媒体であって、
前記命令群は、前記1または複数のプロセッサに対して、
第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングさせ、
第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、前記特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、前記初期値セットを用いてコーディングさせ、
前記第1のスライス・タイプは、前記第2のスライス・タイプとは異なり、前記第1のスライス・タイプと前記第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである、コンピュータ読取可能な記憶媒体。
[41]
前記1または複数のプロセッサに対して、
前記ビデオ・データの第1のスライスの第1のスライス・タイプ、および、前記ビデオ・データの第2のスライスの第2のスライス・タイプと、
前記ビデオ・データの第1のスライスの第1の初期インジケータ値、および、前記ビデオ・データの第2のスライスの第2の初期インジケータ値と、
のうちの少なくとも1つに基づいて、前記第1および第2のシンタックス要素をコーディングするために使用される初期値セットを決定させるための命令群をさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[40]に記載のコンピュータ読取可能な記憶媒体。
[42]
前記1または複数のプロセッサに対して、
1または複数のマッピング関数のうちの第1のマッピング関数を用いて、前記ビデオ・データの第1のスライスの第1の初期インジケータ値および前記第1のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第1のマッピングを決定させ、
前記1または複数のマッピング関数のうちの第2のマッピング関数を用いて、前記ビデオ・データの第2のスライスの第2の初期インジケータ値および前記第2のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第2のマッピングを決定させるための命令群をさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、[40]に記載のコンピュータ読取可能な記憶媒体。
[43]
前記1または複数のプロセッサに対して、前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおける前記第1および第2の初期インジケータ値、および、前記1または複数のマッピング関数のうちの少なくとも1つを示す1または複数の値をコーディングさせるための命令群をさらに備える、[42]に記載のコンピュータ読取可能な記憶媒体。
[44]
前記1または複数のプロセッサに対して、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記第1および第2の初期インジケータ値と、前記1または複数のマッピング関数のうちの少なくとも1つを決定させるための命令群をさらに備える、[42]に記載のコンピュータ読取可能な記憶媒体。
[45]
前記1または複数のプロセッサに対して、前記第1および第2のスライスのおのおのをコーディングするために使用されるフル・セットのコンテキストのうち、コンテキストのサブセットを決定させるための命令群をさらに備え、
前記コンテキストのサブセットは、前記第1および第2のシンタックス要素の特定のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含み、
前記1または複数のプロセッサに対して、前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングさせるための命令群は、前記1または複数のプロセッサに対して、前記初期値セットに基づいて、前記コンテキストのサブセットの、1または複数のコンテキストを初期化させるための命令群を備える、[40]に記載のコンピュータ読取可能な記憶媒体。
[46]
前記1または複数のプロセッサに対して、前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおいて、前記コンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを示す1または複数の値をコーディングさせるための命令群、をさらに備える[45]に記載のコンピュータ読取可能な記憶媒体。
[47]
前記1または複数のプロセッサに対して、前記フル・セットのコンテキストのうち、コンテキストのサブセットを決定させるための命令群は、前記1または複数のプロセッサに対して、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記コンテキストのサブセットに含まれる、前記フル・セットのコンテキストのうちのコンテキストを決定させるための命令群を備える、[45]に記載のコンピュータ読取可能な記憶媒体。
[48]
前記1または複数のプロセッサに対して、前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングさせるための命令群は、前記1または複数のプロセッサに対して、前記初期値セットと、それぞれのシンタックス要素が属するビデオ・データの第1および第2のスライスの第1および第2のスライス・タイプのうちの対応する1つに基づいて、前記第1および第2のシンタックス要素のうちの、少なくとも特定のタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのおのおのの初期コンテキスト状態を決定させるための命令群を備える、[40]に記載のコンピュータ読取可能な記憶媒体。
[49]
前記1または複数のプロセッサに対して、前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記1または複数のコンテキストのおのおのの初期コンテキスト状態を決定させるための命令群は、前記1または複数のプロセッサに対して、前記第1および第2のスライス・タイプのうちの対応する1つに基づいて決定されたQPオフセット値と、量子化パラメータ(QP)値と、前記初期値セットの1または複数の値に基づいて、前記それぞれの初期コンテキスト状態を決定させるための命令群を備える、[48]に記載のコンピュータ読取可能な記憶媒体。
[50]
前記初期値セットは、スロープ値および個別の交差値と、スロープ値および交差値の両方を表す単一の値と、のうちの1つを備える、[40]に記載のコンピュータ読取可能な記憶媒体。
Claims (50)
- ビデオ・データをコーディングする方法であって、
第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングすることと、
第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、前記特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、前記初期値セットを用いてコーディングすることとを備え、
前記第1のスライス・タイプは、前記第2のスライス・タイプとは異なり、前記第1のスライス・タイプと前記第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである、方法。 - 前記ビデオ・データの第1のスライスの第1のスライス・タイプ、および、前記ビデオ・データの第2のスライスの第2のスライス・タイプと、
前記ビデオ・データの第1のスライスの第1の初期インジケータ値、および、前記ビデオ・データの第2のスライスの第2の初期インジケータ値と、のうちの少なくとも1つに基づいて、前記第1および第2のシンタックス要素をコーディングするために使用される初期値セットを決定することをさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、請求項1に記載の方法。 - 1または複数のマッピング関数のうちの第1のマッピング関数を用いて、前記ビデオ・データの第1のスライスの第1の初期インジケータ値および前記第1のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第1のマッピングを決定することと、
前記1または複数のマッピング関数のうちの第2のマッピング関数を用いて、前記ビデオ・データの第2のスライスの第2の初期インジケータ値および前記第2のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第2のマッピングを決定することとをさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、請求項1に記載の方法。 - 前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおける前記第1および第2の初期インジケータ値、および、前記1または複数のマッピング関数のうちの少なくとも1つを示す1または複数の値をコーディングすること、をさらに備える請求項3に記載の方法。
- ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記第1および第2の初期インジケータ値と、前記1または複数のマッピング関数のうちの少なくとも1つを決定すること、をさらに備える請求項3に記載の方法。
- 1または複数の式と、前記ビデオ・データの第1のスライスの第1の初期インジケータ値、前記ビデオ・データの第2のスライスの第2の初期インジケータ値、および前記第1および第2のスライス・タイプのうちの1または複数に基づいて前記初期値セットを決定することをさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、請求項1に記載の方法。 - 前記第1および第2のスライスのおのおのをコーディングするために使用されるフル・セットのコンテキストのうち、コンテキストのサブセットを決定することをさらに備え、
前記コンテキストのサブセットは、前記第1および第2のシンタックス要素の特定のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含み、
前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングすることは、前記初期値セットに基づいて、前記コンテキストのサブセットの、1または複数のコンテキストを初期化することを備える、請求項1に記載の方法。 - 前記コンテキストのサブセットは、ビデオ・データのブロックの係数に関連する、1または複数のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含む、請求項7に記載の方法。
- 前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおいて、前記コンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを示す1または複数の値をコーディングすること、をさらに備える請求項7に記載の方法。
- 前記フル・セットのコンテキストのうち、コンテキストのサブセットを決定することは、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記コンテキストのサブセットに含まれる、前記フル・セットのコンテキストのうちのコンテキストを決定することを備える、請求項7に記載の方法。
- 前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングすることは、それぞれのシンタックス要素が属するビデオ・データの前記第1および第2のスライスの前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記第1および第2のシンタックス要素のうち、少なくとも特定のタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのおのおのの初期コンテキスト状態を決定することを備える、請求項1に記載の方法。
- 前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記1または複数のコンテキストのおのおのの初期コンテキスト状態を決定することは、前記第1および第2のスライス・タイプのうちの対応する1つに基づいて決定されたQPオフセット値と、量子化パラメータ(QP)値と、前記初期値セットの1または複数の値に基づいて、前記それぞれの初期コンテキスト状態を決定することを備える、請求項11に記載の方法。
- 前記第1および第2のスライス・タイプのおのおのは、イントラ予測(I)スライス・タイプ、一方向インタ予測(P)スライス・タイプ、および双方向インタ予測(B)スライス・タイプのうちの1つを備える、請求項1に記載の方法。
- 前記初期値セットは、スロープ値および個別の交差値と、スロープ値および交差値の両方を表す単一の値と、のうちの1つを備える、請求項1に記載の方法。
- 前記コーディングは、デコードすることを備え、
前記初期値セットを用いて、前記第1および第2のシンタックス要素をデコードすることは、
受け取られたビットストリームにおいて、1または複数のマッピング関数、前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値、および、前記第1および第2のスライス・タイプのうちの少なくとも1つを受け取ることと、
1または複数のマッピング関数、第1および第2の初期インジケータ値、および、前記受け取られた第1および第2のスライス・タイプのうちの1または複数に基づいて、前記初期値セットを決定することと、
前記初期値セットの1または複数の値に基づいて、コンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストを初期化することと、
前記初期化された1または複数のコンテキストに基づいて、前記コンテキスト適応エントロピ・コーディング処理を実行することによって、前記第1および第2のシンタックス要素をデコードすることとを含む、請求項1に記載の方法。 - 前記コーディングは、エンコードすることを備え、
前記初期値セットを用いて前記第1および第2のシンタックス要素をエンコードすることは、
1または複数のマッピング関数、前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値、および、前記第1および第2のスライス・タイプのうちの少なくとも1つに基づいて、前記初期値セットを決定することと、
前記初期値セットの1または複数の値に基づいて、コンテキスト適応エントロピ・コーディング処理の1または複数のコンテキストを初期化することと、
前記初期化された1または複数のコンテキストに基づいて、前記コンテキスト適応エントロピ・コーディング処理を実行することによって、前記第1および第2のシンタックス要素をエンコードすることと、
ビットストリームにおいて、1または複数のマッピング関数、前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値、および、前記第1および第2のスライス・タイプのうちの少なくとも1つをエンコードすることとを含む、請求項1に記載の方法。 - ビデオ・データをコーディングするように構成された装置であって、
第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングし、
第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、前記特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、前記初期値セットを用いてコーディングするように構成されたビデオ・コーダを備え、
前記第1のスライス・タイプは、前記第2のスライス・タイプとは異なり、前記第1のスライス・タイプと前記第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである、装置。 - 前記ビデオ・コーダはさらに、
前記ビデオ・データの第1のスライスの第1のスライス・タイプ、および、前記ビデオ・データの第2のスライスの第2のスライス・タイプと、
前記ビデオ・データの第1のスライスの第1の初期インジケータ値、および、前記ビデオ・データの第2のスライスの第2の初期インジケータ値と、のうちの少なくとも1つに基づいて、前記第1および第2のシンタックス要素をコーディングするために使用される初期値セットを決定するように構成され、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、請求項17に記載の装置。 - 前記ビデオ・コーダはさらに、
1または複数のマッピング関数のうちの第1のマッピング関数を用いて、前記ビデオ・データの第1のスライスの第1の初期インジケータ値および前記第1のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第1のマッピングを決定し、
前記1または複数のマッピング関数のうちの第2のマッピング関数を用いて、前記ビデオ・データの第2のスライスの第2の初期インジケータ値および前記第2のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第2のマッピングを決定するように構成され、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、請求項17に記載の装置。 - 前記ビデオ・コーダはさらに、前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおける前記第1および第2の初期インジケータ値、および、前記1または複数のマッピング関数のうちの少なくとも1つを示す1または複数の値をコーディングするように構成された、請求項19に記載の装置。
- 前記ビデオ・コーダはさらに、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記第1および第2の初期インジケータ値と、前記1または複数のマッピング関数のうちの少なくとも1つを決定するように構成された、請求項19に記載の装置。
- 前記ビデオ・コーダはさらに、前記第1および第2のスライスのおのおのをコーディングするために使用されるフル・セットのコンテキストのうち、コンテキストのサブセットを決定するように構成され、
前記コンテキストのサブセットは、前記第1および第2のシンタックス要素の特定のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含み、
前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングするために、前記ビデオ・コーダは、前記初期値セットに基づいて、コンテキストのサブセットのうちの1または複数のコンテキストを初期化するように構成された、請求項17に記載の装置。 - 前記ビデオ・コーダはさらに、前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおいて、前記コンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを示す1または複数の値をコーディングするように構成された、請求項22に記載の装置。
- 前記フル・セットのコンテキストのうち、コンテキストのサブセットを決定するために、前記ビデオ・コーダは、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記コンテキストのサブセットに含まれる、前記フル・セットのコンテキストのうちのコンテキストを決定するように構成された、請求項22に記載の装置。
- 前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングするために、前記ビデオ・コーダは、前記初期値セットと、それぞれのシンタックス要素が属するビデオ・データの第1および第2のスライスの第1および第2のスライス・タイプのうちの対応する1つに基づいて、前記第1および第2のシンタックス要素のうちの、少なくとも特定のタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのおのおのの初期コンテキスト状態を決定するように構成された、請求項17に記載の装置。
- 前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記1または複数のコンテキストのおのおのの初期コンテキスト状態を決定するために、前記ビデオ・コーダは、前記第1および第2のスライス・タイプのうちの対応する1つに基づいて決定されたQPオフセット値と、量子化パラメータ(QP)値と、前記初期値セットの1または複数の値に基づいて、前記それぞれの初期コンテキスト状態を決定するように構成された、請求項25に記載の装置。
- 前記初期値セットは、スロープ値および個別の交差値と、スロープ値および交差値の両方を表す単一の値と、のうちの1つを備える、請求項17に記載の装置。
- 集積回路と、マイクロプロセッサと、前記ビデオ・コーダを含んでいる無線通信デバイスとのうちの少なくとも1つを備える、請求項17に記載の装置。
- ビデオ・データをコーディングするように構成されたデバイスであって、
第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングする手段と、
第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、前記特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、前記初期値セットを用いてコーディングする手段とを備え、
前記第1のスライス・タイプは、前記第2のスライス・タイプとは異なり、前記第1のスライス・タイプと前記第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである、デバイス。 - 前記ビデオ・データの第1のスライスの第1のスライス・タイプ、および、前記ビデオ・データの第2のスライスの第2のスライス・タイプと、
前記ビデオ・データの第1のスライスの第1の初期インジケータ値、および、前記ビデオ・データの第2のスライスの第2の初期インジケータ値と、のうちの少なくとも1つに基づいて、前記第1および第2のシンタックス要素をコーディングするために使用される初期値セットを決定する手段をさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、請求項29に記載のデバイス。 - 1または複数のマッピング関数のうちの第1のマッピング関数を用いて、前記ビデオ・データの第1のスライスの第1の初期インジケータ値および前記第1のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第1のマッピングを決定する手段と、
前記1または複数のマッピング関数のうちの第2のマッピング関数を用いて、前記ビデオ・データの第2のスライスの第2の初期インジケータ値および前記第2のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第2のマッピングを決定する手段とをさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、請求項29に記載のデバイス。 - 前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおける前記第1および第2の初期インジケータ値、および、前記1または複数のマッピング関数のうちの少なくとも1つを示す1または複数の値をコーディングする手段、をさらに備える請求項31に記載のデバイス。
- ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記第1および第2の初期インジケータ値と、前記1または複数のマッピング関数のうちの少なくとも1つを決定する手段、をさらに備える請求項31に記載のデバイス。
- 前記第1および第2のスライスのおのおのをコーディングするために使用されるフル・セットのコンテキストのうち、コンテキストのサブセットを決定する手段をさらに備え、
前記コンテキストのサブセットは、前記第1および第2のシンタックス要素の特定のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含み、前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングする手段は、前記初期値セットに基づいて、前記コンテキストのサブセットの、1または複数のコンテキストを初期化する手段を備える、請求項29に記載のデバイス。 - 前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおいて、前記コンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを示す1または複数の値をコーディングする手段、をさらに備える請求項34に記載のデバイス。
- 前記フル・セットのコンテキストのうち、コンテキストのサブセットを決定する手段は、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記コンテキストのサブセットに含まれる、前記フル・セットのコンテキストのうちのコンテキストを決定する手段を備える、請求項34に記載のデバイス。
- 前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングする手段は、それぞれのシンタックス要素が属するビデオ・データの前記第1および第2のスライスの前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記第1および第2のシンタックス要素のうち、少なくとも特定のタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのおのおのの初期コンテキスト状態を決定する手段を備える、請求項29に記載のデバイス。
- 前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記1または複数のコンテキストのおのおのの初期コンテキスト状態を決定する手段は、前記第1および第2のスライス・タイプのうちの対応する1つに基づいて決定されたQPオフセット値と、量子化パラメータ(QP)値と、前記初期値セットの1または複数の値に基づいて、前記それぞれの初期コンテキスト状態を決定する手段を備える、請求項37に記載のデバイス。
- 前記初期値セットは、スロープ値および個別の交差値と、スロープ値および交差値の両方を表す単一の値と、のうちの1つを備える、請求項29に記載のデバイス。
- 実行された場合、1または複数のプロセッサに対して、ビデオ・データをコーディングさせるための命令群を格納したコンピュータ読取可能な記憶媒体であって、
前記命令群は、前記1または複数のプロセッサに対して、
第1のスライス・タイプにしたがうビデオ・データの第1のスライスの、特定のタイプのシンタックス要素にしたがう第1のシンタックス要素を、初期値セットを用いてコーディングさせ、
第2のスライス・タイプにしたがうビデオ・データの第2のスライスの、前記特定のタイプのシンタックス要素にしたがう第2のシンタックス要素を、前記初期値セットを用いてコーディングさせ、
前記第1のスライス・タイプは、前記第2のスライス・タイプとは異なり、前記第1のスライス・タイプと前記第2のスライス・タイプとのうちの少なくとも1つは、時間的に予測されたスライス・タイプである、コンピュータ読取可能な記憶媒体。 - 前記1または複数のプロセッサに対して、
前記ビデオ・データの第1のスライスの第1のスライス・タイプ、および、前記ビデオ・データの第2のスライスの第2のスライス・タイプと、
前記ビデオ・データの第1のスライスの第1の初期インジケータ値、および、前記ビデオ・データの第2のスライスの第2の初期インジケータ値と、のうちの少なくとも1つに基づいて、前記第1および第2のシンタックス要素をコーディングするために使用される初期値セットを決定させるための命令群をさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、請求項40に記載のコンピュータ読取可能な記憶媒体。 - 前記1または複数のプロセッサに対して、
1または複数のマッピング関数のうちの第1のマッピング関数を用いて、前記ビデオ・データの第1のスライスの第1の初期インジケータ値および前記第1のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第1のマッピングを決定させ、
前記1または複数のマッピング関数のうちの第2のマッピング関数を用いて、前記ビデオ・データの第2のスライスの第2の初期インジケータ値および前記第2のスライス・タイプのうちの1または複数と、前記初期値セットとの間の第2のマッピングを決定させるための命令群をさらに備え、
前記ビデオ・データの第1および第2のスライスの第1および第2の初期インジケータ値のおのおのは、前記ビデオ・データの対応するスライスをコーディングするために使用される特定の初期値セットを示す、請求項40に記載のコンピュータ読取可能な記憶媒体。 - 前記1または複数のプロセッサに対して、前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおける前記第1および第2の初期インジケータ値、および、前記1または複数のマッピング関数のうちの少なくとも1つを示す1または複数の値をコーディングさせるための命令群をさらに備える、請求項42に記載のコンピュータ読取可能な記憶媒体。
- 前記1または複数のプロセッサに対して、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記第1および第2の初期インジケータ値と、前記1または複数のマッピング関数のうちの少なくとも1つを決定させるための命令群をさらに備える、請求項42に記載のコンピュータ読取可能な記憶媒体。
- 前記1または複数のプロセッサに対して、前記第1および第2のスライスのおのおのをコーディングするために使用されるフル・セットのコンテキストのうち、コンテキストのサブセットを決定させるための命令群をさらに備え、
前記コンテキストのサブセットは、前記第1および第2のシンタックス要素の特定のタイプのシンタックス要素をコーディングするために使用される少なくとも1または複数のコンテキストを含み、
前記1または複数のプロセッサに対して、前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングさせるための命令群は、前記1または複数のプロセッサに対して、前記初期値セットに基づいて、前記コンテキストのサブセットの、1または複数のコンテキストを初期化させるための命令群を備える、請求項40に記載のコンピュータ読取可能な記憶媒体。 - 前記1または複数のプロセッサに対して、前記ビデオ・データに関連付けられたシーケンス・ヘッダ、フレーム・ヘッダ、スライス・ヘッダ、ビデオ・パラメータ・セット(VPS)、適応パラメータ・セット(APS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)のうちの少なくとも1つにおいて、前記コンテキストのサブセットに含まれるフル・セットのコンテキストのうちのコンテキストを示す1または複数の値をコーディングさせるための命令群、をさらに備える請求項45に記載のコンピュータ読取可能な記憶媒体。
- 前記1または複数のプロセッサに対して、前記フル・セットのコンテキストのうち、コンテキストのサブセットを決定させるための命令群は、前記1または複数のプロセッサに対して、ユーザ入力と、前記ビデオ・データに関連付けられたグループ・オブ・ピクチャ(GOP)構造パラメータ、フレーム解像度パラメータ、および量子化パラメータ(QP)のうちの1または複数とに基づいて、前記コンテキストのサブセットに含まれる、前記フル・セットのコンテキストのうちのコンテキストを決定させるための命令群を備える、請求項45に記載のコンピュータ読取可能な記憶媒体。
- 前記1または複数のプロセッサに対して、前記初期値セットを用いて前記第1および第2のシンタックス要素をコーディングさせるための命令群は、前記1または複数のプロセッサに対して、前記初期値セットと、それぞれのシンタックス要素が属するビデオ・データの第1および第2のスライスの第1および第2のスライス・タイプのうちの対応する1つに基づいて、前記第1および第2のシンタックス要素のうちの、少なくとも特定のタイプのシンタックス要素をコーディングするために使用される1または複数のコンテキストのおのおのの初期コンテキスト状態を決定させるための命令群を備える、請求項40に記載のコンピュータ読取可能な記憶媒体。
- 前記1または複数のプロセッサに対して、前記第1および第2のスライス・タイプのうちの対応する1つと、前記初期値セットに基づいて、前記1または複数のコンテキストのおのおのの初期コンテキスト状態を決定させるための命令群は、前記1または複数のプロセッサに対して、前記第1および第2のスライス・タイプのうちの対応する1つに基づいて決定されたQPオフセット値と、量子化パラメータ(QP)値と、前記初期値セットの1または複数の値に基づいて、前記それぞれの初期コンテキスト状態を決定させるための命令群を備える、請求項48に記載のコンピュータ読取可能な記憶媒体。
- 前記初期値セットは、スロープ値および個別の交差値と、スロープ値および交差値の両方を表す単一の値と、のうちの1つを備える、請求項40に記載のコンピュータ読取可能な記憶媒体。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261588604P | 2012-01-19 | 2012-01-19 | |
US201261588626P | 2012-01-19 | 2012-01-19 | |
US61/588,604 | 2012-01-19 | ||
US61/588,626 | 2012-01-19 | ||
US13/744,087 US9654772B2 (en) | 2012-01-19 | 2013-01-17 | Context adaptive entropy coding with a reduced initialization value set |
US13/744,087 | 2013-01-17 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014553452A Division JP2015504292A (ja) | 2012-01-19 | 2013-01-18 | 低減された初期値セットを持つコンテキスト適応エントロピ・コーディング |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017225132A true JP2017225132A (ja) | 2017-12-21 |
Family
ID=48797183
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014553452A Pending JP2015504292A (ja) | 2012-01-19 | 2013-01-18 | 低減された初期値セットを持つコンテキスト適応エントロピ・コーディング |
JP2017136834A Pending JP2017225132A (ja) | 2012-01-19 | 2017-07-13 | 低減された初期値セットを持つコンテキスト適応エントロピ・コーディング |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014553452A Pending JP2015504292A (ja) | 2012-01-19 | 2013-01-18 | 低減された初期値セットを持つコンテキスト適応エントロピ・コーディング |
Country Status (6)
Country | Link |
---|---|
US (1) | US9654772B2 (ja) |
EP (1) | EP2805420A1 (ja) |
JP (2) | JP2015504292A (ja) |
KR (1) | KR20140120337A (ja) |
CN (1) | CN104067524B (ja) |
WO (1) | WO2013109885A1 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2839560C (en) | 2011-06-16 | 2016-10-04 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Entropy coding of motion vector differences |
US11647197B2 (en) | 2011-06-30 | 2023-05-09 | Velos Media, Llc | Context initialization based on slice header flag and slice type |
US9338465B2 (en) | 2011-06-30 | 2016-05-10 | Sharp Kabushiki Kaisha | Context initialization based on decoder picture buffer |
UA114674C2 (uk) | 2011-07-15 | 2017-07-10 | ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі | Ініціалізація контексту в ентропійному кодуванні |
US9854237B2 (en) * | 2014-10-14 | 2017-12-26 | Qualcomm Incorporated | AMVP and merge candidate list derivation for intra BC and inter prediction unification |
CN106201768B (zh) * | 2015-04-29 | 2021-06-01 | 腾讯科技(深圳)有限公司 | 数据存储方法及装置 |
US11233998B2 (en) * | 2015-05-29 | 2022-01-25 | Qualcomm Incorporated | Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design |
US10032481B2 (en) * | 2016-03-22 | 2018-07-24 | Verizon Digital Media Services Inc. | Speedy clipping |
GB2599566B (en) * | 2016-09-08 | 2022-10-05 | V Nova Int Ltd | Data processing apparatuses, methods, computer programs and computer-readable media |
US10616582B2 (en) * | 2016-09-30 | 2020-04-07 | Qualcomm Incorporated | Memory and bandwidth reduction of stored data in image/video coding |
KR102302797B1 (ko) * | 2017-04-13 | 2021-09-16 | 엘지전자 주식회사 | 영상의 부호화/복호화 방법 및 이를 위한 장치 |
US11039143B2 (en) * | 2017-11-20 | 2021-06-15 | Qualcomm Incorporated | Memory reduction for context initialization with temporal prediction |
CN109819264B (zh) * | 2018-12-28 | 2020-05-12 | 杭州海康威视数字技术股份有限公司 | 编码方法、解码方法及装置 |
US11546402B2 (en) | 2019-01-04 | 2023-01-03 | Tencent America LLC | Flexible interoperability and capability signaling using initialization hierarchy |
US11178399B2 (en) * | 2019-03-12 | 2021-11-16 | Qualcomm Incorporated | Probability initialization for video coding |
US11330298B2 (en) * | 2019-06-25 | 2022-05-10 | Qualcomm Incorporated | Simplified intra chroma mode coding in video coding |
GB2596100A (en) * | 2020-06-17 | 2021-12-22 | Sony Group Corp | Data encoding and decoding |
GB2599447A (en) * | 2020-10-05 | 2022-04-06 | Sony Group Corp | Data encoding and decoding |
WO2024041369A1 (en) * | 2022-08-25 | 2024-02-29 | Mediatek Inc. | Method and apparatus of entropy coding for subpictures |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006279333A (ja) * | 2005-03-28 | 2006-10-12 | Victor Co Of Japan Ltd | 算術符号化装置及び算術符号化方法 |
JP2007074337A (ja) * | 2005-09-07 | 2007-03-22 | Matsushita Electric Ind Co Ltd | 符号化装置及び符号化方法 |
JP2010171655A (ja) * | 2009-01-21 | 2010-08-05 | Canon Inc | 算術符号化装置及び算術符号化方法 |
WO2011128268A1 (en) * | 2010-04-13 | 2011-10-20 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Probability interval partioning encoder and decoder |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7099387B2 (en) | 2002-03-22 | 2006-08-29 | Realnetorks, Inc. | Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses |
KR100701810B1 (ko) | 2002-04-26 | 2007-04-02 | 가부시키가이샤 엔티티 도코모 | 신호 부호화 방법, 신호 복호 방법, 신호 부호화 장치, 신호 복호 장치, 및 컴퓨터로 판독가능한 기록매체 |
US6894628B2 (en) * | 2003-07-17 | 2005-05-17 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables |
US7929776B2 (en) | 2005-03-10 | 2011-04-19 | Qualcomm, Incorporated | Method and apparatus for error recovery using intra-slice resynchronization points |
KR20070006445A (ko) * | 2005-07-08 | 2007-01-11 | 삼성전자주식회사 | 하이브리드 엔트로피 부호화, 복호화 방법 및 장치 |
US7777654B2 (en) | 2007-10-16 | 2010-08-17 | Industrial Technology Research Institute | System and method for context-based adaptive binary arithematic encoding and decoding |
US7932843B2 (en) * | 2008-10-17 | 2011-04-26 | Texas Instruments Incorporated | Parallel CABAC decoding for video decompression |
US8902988B2 (en) | 2010-10-01 | 2014-12-02 | Qualcomm Incorporated | Zero-out of high frequency coefficients and entropy coding retained coefficients using a joint context model |
US9313514B2 (en) | 2010-10-01 | 2016-04-12 | Sharp Kabushiki Kaisha | Methods and systems for entropy coder initialization |
US9420307B2 (en) * | 2011-09-23 | 2016-08-16 | Qualcomm Incorporated | Coding reference pictures for a reference picture set |
-
2013
- 2013-01-17 US US13/744,087 patent/US9654772B2/en not_active Expired - Fee Related
- 2013-01-18 CN CN201380005756.9A patent/CN104067524B/zh not_active Expired - Fee Related
- 2013-01-18 EP EP13702691.0A patent/EP2805420A1/en not_active Withdrawn
- 2013-01-18 WO PCT/US2013/022138 patent/WO2013109885A1/en active Application Filing
- 2013-01-18 JP JP2014553452A patent/JP2015504292A/ja active Pending
- 2013-01-18 KR KR1020147022719A patent/KR20140120337A/ko not_active Application Discontinuation
-
2017
- 2017-07-13 JP JP2017136834A patent/JP2017225132A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006279333A (ja) * | 2005-03-28 | 2006-10-12 | Victor Co Of Japan Ltd | 算術符号化装置及び算術符号化方法 |
JP2007074337A (ja) * | 2005-09-07 | 2007-03-22 | Matsushita Electric Ind Co Ltd | 符号化装置及び符号化方法 |
JP2010171655A (ja) * | 2009-01-21 | 2010-08-05 | Canon Inc | 算術符号化装置及び算術符号化方法 |
WO2011128268A1 (en) * | 2010-04-13 | 2011-10-20 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Probability interval partioning encoder and decoder |
Non-Patent Citations (9)
Title |
---|
BENJAMIN BROSS ET AL.: "WD4: Working Draft 4 of High-Efficiency Video Coding", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, vol. JCTVC-F803_d5, JPN6016045978, October 2011 (2011-10-01), pages pp.i,169-180 * |
CHUOHAO YEO ET AL.: "Non-CE1: On CABAC context initialization", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, vol. JCTVC-G155, JPN6015016523, November 2011 (2011-11-01), pages 1 - 13 * |
DETLEV MARPE ET AL.: "Final CABAC Cleanup", JOINT VIDEO TEAM (JVT) OF ISO/IEC MPEG & ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 AND ITU-T SG16 Q.6), vol. JVT-F039, JPN6016045977, December 2002 (2002-12-01), pages 1 - 21 * |
HEIKO SCHWARZ ET AL.: "CABAC and Slices", JOINT VIDEO TEAM (JVT) OF ISO/IEC MPEG & ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 AND ITU-T SG16 Q.6), vol. 4th Meeting: Klagenfurt, Austria, JPN6018017383, 2002, pages 1 - 14 * |
KIRAN MISRA AND ANDREW SEGAL: "On CABAC Init IDC", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, vol. JCTVC-G716, JPN6016045980, November 2011 (2011-11-01), pages 1 - 7 * |
KIRAN MISRA AND ANDREW SEGALL: "Improved CABAC Context Initialization", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, vol. JCTVC-F593_r1, JPN6016045984, July 2011 (2011-07-01), pages 1 - 3 * |
LIWEI GUO AND MARTA KARCZEWICZ: "On CABAC Initialization", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, vol. JCTVC-H0561_r2, JPN6016045985, February 2012 (2012-02-01), pages 1 - 8 * |
LIWEI GUO ET AL.: "Non-CE1: 8-bit Initialization for CABAC", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, vol. JCTVC-G837_r3, JPN6015016525, November 2011 (2011-11-01), pages 1 - 7 * |
THOMAS WIEGAND: "Editor’s Proposed Modifications to Joint Committee Draft (CD) of Joint Video Specification (ITU-T R", JOINT VIDEO TEAM (JVT) OF ISO/IEC MPEG & ITU-T VCEG, vol. JVT-D017d0_D019, JPN6018017384, 2002, pages 84 - 87 * |
Also Published As
Publication number | Publication date |
---|---|
WO2013109885A1 (en) | 2013-07-25 |
US20130188700A1 (en) | 2013-07-25 |
US9654772B2 (en) | 2017-05-16 |
KR20140120337A (ko) | 2014-10-13 |
CN104067524B (zh) | 2017-06-13 |
JP2015504292A (ja) | 2015-02-05 |
EP2805420A1 (en) | 2014-11-26 |
CN104067524A (zh) | 2014-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017225132A (ja) | 低減された初期値セットを持つコンテキスト適応エントロピ・コーディング | |
US9462275B2 (en) | Residual quad tree (RQT) coding for video coding | |
JP5964448B2 (ja) | コンテキスト適応型バイナリ算術コード化のためのコンテキスト削減 | |
JP5922245B2 (ja) | クロマ成分のための適応ループフィルタ処理 | |
US9667994B2 (en) | Intra-coding for 4:2:2 sample format in video coding | |
CA2913797C (en) | Rice parameter initialization for coefficient level coding in video coding process | |
JP5788520B2 (ja) | ビデオコーディングのためのシンタックス要素のジョイントコーディング | |
JP6046164B2 (ja) | ビデオコード化において変換係数データをコード化するためのコンテキストの決定 | |
JP6527877B2 (ja) | ビデオコーディングプロセスにおける係数レベルコーディング | |
JP5868995B2 (ja) | ビデオ符号化におけるビデオブロックの最後尾有意係数の位置の個別符号化 | |
JP6231109B2 (ja) | コンテキスト適応型、マルチレベル有意性コーディングに関するコンテキスト導出 | |
US9596463B2 (en) | Coding of loop filter parameters using a codebook in video coding | |
EP2984827B1 (en) | Sample adaptive offset scaling based on bit-depth | |
US20130114691A1 (en) | Adaptive initialization for context adaptive entropy coding | |
RU2629437C2 (ru) | Получение контекста для кодирования последней позиции при выполнении видеокодирования | |
JP2015516768A (ja) | 変換係数コーディング | |
RU2575409C2 (ru) | Сокращение контекста для контекстно-адаптивного бинарного арифметического кодирования |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180828 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180904 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190326 |