本開示は、ビデオデータのようなデータをコーディングするための技法を説明する。たとえば、本技法は、ビデオコーディングプロセスによって生成される、残差変換係数および/または他のシンタックス要素のような、ビデオデータをコーディングするために使用され得る。具体的には、本開示は、コンテキスト適応型エントロピーコーディングプロセスを使用してビデオデータの効率的なコーディングを促進し得る技法を説明する。本開示は、例示のみを目的にビデオコーディングを説明する。したがって、本開示で説明される技法は、他のタイプのデータのコーディングに適用可能であり得る。
本開示では、「コーディング」という用語は、エンコーダにおいて行われる符号化またはデコーダにおいて行われる復号を指す。同様に、「コーダ」という用語は、エンコーダ、デコーダ、または組み合わされたエンコーダ/デコーダ(たとえば、「コーデック」)を指す。本開示によれば、コーダ、エンコーダ、デコーダ、およびコーデックという用語はすべて、ビデオデータのようなデータのコーディング(すなわち、符号化および/または復号)のために設計された特定の機械を指す。
一例として、本開示の技法は、コーディングシステムまたはデバイスが、たとえば、ビデオデータのような様々なタイプのデータを、他の技法を使用した場合よりも効率的にコーディングすることを可能にし得る。具体的には、本明細書で説明される技法は、たとえば、コンテキスト適応型バイナリ算術コーディング(CABAC)プロセスのようなコンテキスト適応型エントロピーコーディングプロセスを使用してデータをコーディングすると、他のシステムまたはデバイスに対して、コーディングシステムまたはデバイスの複雑さが低くなることを可能にし得る。たとえば、本技法は、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化する目的で、コーディングシステムまたはデバイスの中に記憶される情報、および/または、コーディングシステムまたはデバイスへ、またはそれから送信される情報の量を、減らすことができる。一例として、情報の量は、初期化パラメータを直接記憶および/または送信するのではなく、コンテキストを初期化するために使用される初期化パラメータを示す初期化パラメータインデックス値を記憶および/または送信することによって、減らされ得る。
加えて、別の例として、本技法は、コーディングシステムまたはデバイスがコンテキスト適応型エントロピーコーディングプロセスを使用してデータをコーディングするように構成されると、データの圧縮を改善することができる。たとえば、本技法は、他のコンテキスト初期化技法を使用して決定された初期確率と比較して、コンテキストが相対的により正確な初期確率を含むように、コーディングシステムまたはデバイスがコンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化することを可能にすることによって、データの圧縮を改善することができる。具体的には、コンテキストは、参照コンテキスト状態と量子化パラメータ情報と様々な関係とを使用して、または、1つまたは複数の確率オフセットを使用して、データと関連付けられる時間レイヤ情報に基づいて初期化され得る。加えて、本技法はさらに、上で説明されたのと同じまたは同様の技法を使用すると、他のコンテキスト確率更新技法を使用して更新された確率と比較して、更新された確率が相対的により正確になるように、コーディングシステムまたはコーディングデバイスがコンテキストの確率を後で更新することを可能にすることによって、データの圧縮を改善することができる。
したがって、本開示の技法を使用すると、コーディングされたデータ、さらにはコーディングシステムまたはデバイスへ、またはそれから送信される他のシンタックス情報(たとえば、初期化パラメータインデックス値)を含む、コーディングされたビットストリームのためのビットが相対的に減り、データをコーディングするために使用されるコーディングシステムまたはデバイスの複雑さが相対的に下がり得る。
本開示の技法は、いくつかの例では、コンテキスト適応型可変長コーディング(CAVLC)、CABAC、シンタックスベースのコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のコンテキスト適応型エントロピーコーディング方法を含む、任意のコンテキスト適応型エントロピーコーディング方法とともに使用され得る。本明細書では、本開示で広範に説明される技法に関して限定することなく、例示のみを目的にCABACが説明される。また、本明細書で説明される技法は、たとえばビデオデータに加えて、他のタイプのデータ全般のコーディングに適用され得る。
図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は、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体のような、種々の分散されたデータ記憶媒体またはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、記憶デバイス24は、ソースデバイス12によって生成された符号化されたビデオを保持し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイス24から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス14に送信することが可能な、任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を通じて、符号化されたビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。記憶デバイス24からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
本開示の技法は、必ずしもワイヤレスの用途または設定に限定されるとは限らない。本技法は、無線を通じたテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の用途など、種々のマルチメディア用途のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
図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は、たとえばディスプレイデバイス28のような、一体化されたディスプレイデバイスを含んでよく、かつ/または、外部のディスプレイデバイスとインターフェースをとるように構成されてよい。他の例では、宛先デバイス14自体がディスプレイデバイスであり得る。一般に、ディスプレイデバイス28は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、種々のディスプレイデバイスのいずれかを備え得る。
ビデオエンコーダ20およびビデオデコーダ30は、ITU−T Video Coding Experts Group(VCEG)のJoint Collaborative Team on Video Coding(JCT−VC)によって現在開発中のHigh Efficiency Video Coding(HEVC)規格およびISO/IEC Motion Picture Experts Group(MPEG)のようなビデオ圧縮規格に従って動作してよく、HEVC Test Model(HM)に準拠してよい。あるいは、ビデオエンコーダ20およびビデオデコーダ30は、代替的にはMPEG−4、Part 10、Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格(以後、H.264/AVC)のような他のプロプライエタリ規格または産業規格、またはそのような規格の拡張に従って動作してよい。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例には、MPEG−2およびITU−T H.263がある。「HEVC Working Draft 8」または「WD8」と呼ばれるHEVC規格の最近のドラフトは、文書JCTVC−J1003_d7、Brossら、「High efficiency video coding (HEVC) text specification draft 8」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding (JCT−VC)、第10回会合:スウェーデン ストックホルム、2012年7月11〜20日に記載されている。
図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、各々オーディオエンコーダおよびデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含んでよい。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)のような他のプロトコルに準拠し得る。
ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せのような、種々の適切なエンコーダまたはデコーダ回路のいずれかとして実装され得る。本技法がソフトウェアで部分的に実装される場合、デバイスは、適切な非一時的コンピュータ可読記憶媒体にソフトウェアに対する命令を記憶し、1つまたは複数のプロセッサを使用してハードウェア中で命令を実行して、本開示の技法を実行することができる。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、これらのいずれかが、それぞれのデバイス中の組み合わされたエンコーダ/デコーダ(たとえば、コーデック)の一部として統合され得る。
HEVC規格化の取り組みは、HEVC Test Model(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264は9個のイントラ予測符号化モードを提供する一方、HMは35個ものイントラ予測符号化モードを提供し得る。
一般に、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマとクロマの両方のサンプルを含む一連のツリーブロックまたは最大コーディングユニット(LCU)に分割され得ることを記載する。ツリーブロックは、H.264規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割され得る。たとえば、4分木のルートノードとしてのツリーブロックは、4つの子ノードに分割されてよく、各子ノードが今度は親ノードとなり、別の4つの子ノードに分割されてよい。4分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード、すなわち、コーディングされたビデオブロックを備える。コーディングされたビットストリームと関連付けられるシンタックスデータは、ツリーブロックが分割され得る最大回数を定義することができ、コーディングノードの最小サイズも定義することができる。
CUは、コーディングノードと、コーディングノードと関連付けられる予測ユニット(PU)と変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が方形であり得る。CUのサイズは、8×8ピクセルから最大で64×64以上のピクセルをもつツリーブロックのサイズにまで及び得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。CUと関連付けられるシンタックスデータは、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかによって異なり得る。PUは、非方形の形状に区分され得る。CUと関連付けられるシンタックスデータは、たとえば、4分木に従って、CUを1つまたは複数のTUに区分することも記述し得る。TUは、形状が方形または非方形であり得る。
HEVC規格は、異なるCUに対しては異なり得るTUに従って、変換を実行する。TUは、一般に、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズが決定されるが、常にそうであるとは限らない。TUは通常、PUと同じサイズであるかまたはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT)として知られる4分木構造を使用してより小さいユニットに再分割され得る。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のコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示では、コーディングノードとPUとTUとを含む、ツリーブロック、すなわち、LCUまたはCUを指す、「ビデオブロック」という用語も使用し得る。
ビデオシーケンスは通常、一連のビデオフレームまたはピクチャを含む。ピクチャのグループ(GOP)は、一般に、一連の1つまたは複数のビデオピクチャを備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ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の一方向は区分されないが、他の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、または「Right」という表示によって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUとで水平方向に区分された2N×2N CUを指す。
本開示では、「N×N(NxN)」および「N×N(N by N)」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、16×16(16x16)ピクセルまたは16×16(16 by 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は、1つまたは複数の事前に定義された走査順序を使用して、量子化された変換係数を走査し、エントロピー符号化され得る直列化されたベクトルを生成することができる。事前に定義された走査順序は、コーディングプロセスにおいて使用されるコーディングモードまたは変換サイズまたは形状などの要因に基づいて変化し得る。さらに、他の例では、ビデオエンコーダ20は、たとえば、定期的に適応される走査順序を使用して、適応的な走査を実行することができる。走査順序は、たとえば、コーディングモードまたは他の要因に基づいて、異なるブロックに対しては異なるように適応し得る。いずれの場合でも、量子化された変換係数を走査して直列化された「1次元」ベクトルを形成した後で、ビデオエンコーダ20はさらに、たとえば、CAVLC、CABAC、SBAC、PIPE、または別のコンテキスト適応型エントロピーコーディング方法に従って、1次元ベクトルをエントロピー符号化することができる。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための、符号化されたビデオデータと関連付けられる他のシンタックス要素をエントロピー符号化することができる。さらに、ビデオデコーダ30は、ビデオエンコーダ20と同一のまたは同様のコンテキスト適応型エントロピーコーディング技法を実行して、ビデオデータと関連付けられる符号化されたビデオデータと任意の追加のシンタックス要素とを復号することができる。
一例では、CABACを実行するために、ビデオエンコーダ20は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当てることができる。コンテキストは、たとえば、シンボルの隣接値が0ではないかどうかに関係し得る。別の例では、CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに対する可変長コードを選択することができる。CAVLCにおけるコードワードおよび可変長コーディングは全般に、相対的により短いコードが優勢シンボルに対応し、一方相対的により長いコードが劣勢シンボルに対応するように、構築され得る。このようにして、CAVLCの使用は、たとえば、送信されるべき各シンボルに対する等長コードワードを使用することを通じて、ビットの節約を達成することができる。確率の決定は、シンボルに割り当てられるコンテキストに基づき得る。加えて、上で説明された技法は、上で説明された方式でビデオエンコーダ20によって符号化された1つまたは複数のシンボルを復号するために使用されるビデオデコーダ30に等しく適用可能である。
一般に、H.264/AVCおよび上で説明されたHEVCのいくつかのドラフトバージョンの技法によれば、CABACを使用してデータシンボル(たとえば、ビデオデータのコーディングされたブロックに対するシンタックス要素、またはシンタックス要素の一部)をコーディングすることは、以下のステップを伴い得る。
(1)2値化:コーディングされるべきシンボルが非2進値化された場合、そのシンボルは、いわゆる「ビン」のシーケンスにマッピングされる。各ビンは「0」または「1」の値を有し得る。
(2)コンテキスト割当て:各ビン(たとえば、いわゆる「通常の」コーディングモード)がコンテキストに割り当てられる。コンテキストモデルは、以前に符号化されたシンボルの値、またはビン番号(たとえば、ビンを含むビンのシーケンス内でのビンの位置)のような、ビンについて利用可能な情報に基づいて、どのようにコンテキストが所与のビンに対して計算される(たとえば、それに割り当てられる)かを決定する。
(3)ビン符号化:ビンは算術エンコーダによって符号化される。所与のビンを符号化するために、算術エンコーダは、ビンの値の確率(たとえば、推定される確率)、すなわち、ビンの値が「0」に等しい確率とビンの値が「1」に等しい確率とを、入力として必要とする。たとえば、ステップ(2)において上で説明されたように、ビンに割り当てられたコンテキストは、ビンの値のこの確率を示し得る。一例として、各コンテキストの確率(たとえば、各コンテキストによって示される推定される確率)は、コンテキスト「状態」と呼ばれる、コンテキストと関連付けられる整数値によって表され得る。各コンテキストは、コンテキスト状態(たとえば、任意の所与の時間における特定のコンテキスト状態)を有する。したがって、コンテキスト状態(すなわち、推定される確率)は、1つのコンテキストに割り当てられるビンに対しては同一であり、コンテキストにより異なる(たとえば、いくつかの場合には、時間とともに、所与のコンテキストに対する異なるコンテキストの間で変化する)。加えて、上で説明されたように、ビンを符号化するために、算術エンコーダはさらに、ビンの値を入力として必要とする。
(4)状態更新:選択されたコンテキストの確率(たとえば、コンテキスト状態)は、ビンの実際のコーディングされた値に基づいて更新される。たとえば、選択されたコンテキストに対して、ビンの値が「1」であった場合、「1」の確率が上がり、ビンの値が「0」であった場合、「0」の確率が上がる。
本開示の多くの態様は特に、CABACの文脈で説明される。加えて、PIPE、CAVLC、SBACまたは他のコンテキスト適応型エントロピーコーディング技法は、CABACに関して本明細書で説明されるものと同様の原理を使用することができる。具体的には、これらのまたは他のコンテキスト適応型エントロピーコーディング技法は、コンテキスト状態初期化を利用することができ、したがって、本開示の技法から利益を得ることができる。
さらに、上で説明されたように、H.264/AVCのCABAC技法は、コンテキスト状態の使用を含み、各コンテキスト状態は暗黙的に確率に関連する。以下でより詳しく説明されるように、所与のシンボルがコーディングされる確率(たとえば、「0」または「1」)が直接使用される、すなわち、確率(または確率の整数バージョン)がコンテキスト状態自体である、CABACの変形が存在する。
CABAC符号化または復号プロセスを開始する前に、初期コンテキスト状態が、CABACプロセスの各コンテキストに割り当てられる必要があり得る。H.264/AVCおよびHEVCのいくつかのドラフトバージョンでは、線形の関係、または「モデル」が、各コンテキストに対して初期コンテキスト状態を割り当てるために使用される。特に、各コンテキストに対して、コンテキストに対する初期コンテキスト状態を決定するために使用される、事前に定義された初期化パラメータ、傾き(「m」)、および切片(「n」)が存在する。たとえば、H.264/AVCおよびHEVCのいくつかのドラフトバージョンによれば、所与のコンテキストに対する初期コンテキスト状態は、以下の関係を使用して導出され得る。
式EQ.(1)において、「m」および「n」は、初期化されているコンテキストに対する初期化パラメータ(すなわち、コンテキストに対して決定されている初期コンテキスト状態「iInitState」)に対応する。さらに、初期化量子化パラメータ(QP)と呼ばれ得る「iQP」は、コーディングされているデータ(たとえば、ビデオデータのブロック)に対するQPに対応し得る。データに対するQPの値、したがってiQPの値は、たとえば、フレームごと、スライスごと、またはブロックごとに設定され得る。加えて、初期化パラメータ「m」および「n」の値は、異なるコンテキストに対しては変化し得る。さらに、式EQ.(2)は、「クリッピング」機能と呼ばれることがあり、これは、「iInitState」の値が「1」と「126」の間の範囲にあることを確実にするために使用されてよく、これにより、7ビットのデータを使用して値が表されることを可能にする。
いくつかの例では、「iInitState」はさらに、以下の式を使用して、CABACにおけるコンテキストの実際のコンテキスト状態、および、「優勢シンボル(MPS)/劣勢シンボル(LPS)」へと変換され得る。
ここで、「m_ucState」は、CABACおよびMPS/LPSシンボルにおける、コンテキストの実際のコンテキスト状態に対応する。
CABACのいくつかの例では、コンテキストに対するコンテキスト状態が、上で説明されたようにコンテキストの確率に直接対応する場合、以下の関係が、特定のコンテキストを初期化するために使用され得る。
値「iP0」は、所与のコンテキストに対するコンテキスト状態「c」によって直接示されるように、コーディングされているシンボルの確率を示し得る。したがって、この例では、上で説明されたように、シンボル「iP0」の確率をMPSおよびLPSというシンボルと実際のコンテキスト状態とに変換する必要はない。その上、示されるように、EQ.(3)の関係または「モデル」も線形であり、2つの初期化パラメータ、すなわち、「asCtxInit[0]」および「asCtxInit[1]」に依存する。たとえば、「iQP」はやはり、コーディングされているデータに対するQPに対応し得る。加えて、「iQPreper」は、いくつかの例では、iQPを修正するために使用される定数、たとえばオフセットに対応し得る。
上で説明された例では、シンボルiP0の確率は、15ビットのデータを使用して整数として表され、ここで最小の0ではない確率は「1」であり、最大の確率は「32767」である。この例では、「実際の」確率は、式「iP0/32768」を使用して導出される。加えて、式EQ.(4)も、「クリッピング」機能と呼ばれることがあり、「iP0」の値が「1」と「32767」の間の範囲にあることを確実にするために使用されてよく、これにより、15ビットのデータを使用して値が表されることを可能にする。
上で説明された手法には、いくつかの欠点がある。一例として、H.264/AVCおよびHEVCのいくつかのドラフトバージョンに関して上で説明されたCABACプロセスは、大量のコンテキスト(たとえば、369個ものコンテキスト)を含むので、各コンテキストは、ある特定のセット、すなわち初期化パラメータ「m」および「n」の「ペア」を使用して初期化され得る。その結果、大量の初期化パラメータ「m」および「n」(たとえば、初期化パラメータ「m」および「n」の369個もの異なるペア)が、コンテキストに対する初期コンテキスト状態を決定するために使用され得る。その上、初期化パラメータ「m」および「n」の各々は、8ビットものデータを使用して表され得るので、大量の情報(たとえば、多数のデータのビット)が、コンテキストに対する初期コンテキスト状態を決定する目的で初期化パラメータ「m」および「n」を記憶および/または送信するために必要とされ得る。たとえば、5904ビットものデータが、初期化パラメータ「m」および「n」の369個の異なるペアを記憶および/または送信するために必要とされることがあり、ペアは各々16ビットのデータを備える(すなわち、特定のペアの初期化パラメータ「m」および「n」の各々が8ビットのデータを備える)。
加えて、別の例として、H.264/AVCおよびHEVCのいくつかのドラフトバージョンに関して上でも説明されたような、コンテキストに対する初期コンテキスト状態を決定するために使用される線形の関係は、他の技法を使用して決定される初期確率よりも相対的に不正確な、初期コンテキスト状態によって示されるようなコンテキストの初期確率の決定をもたらし得る。一例として、上で説明された線形の関係を使用すると、初期確率は、コーディングされているデータ(たとえば、ビデオデータ)と関連付けられる時間レイヤをさらに考慮する線形の関係を使用して決定された初期確率よりも、相対的に不正確になり得る。別の例として、上で説明された線形の関係を使用すると、初期確率は、非線形の関係、部分的に非線形の関係、またはバイリニアの関係を使用して決定された初期確率よりも、相対的に不正確になり得る。さらに別の例として、コンテキストの初期確率が直接決定される(すなわち、コンテキストの初期確率を示す初期コンテキスト状態を決定するのではない)場合、初期確率は、初期確率を含む確率の範囲の上限と下限の1つまたは複数に対する近接度に基づいてさらに調整される初期確率と比較して、相対的により不正確であり得る(たとえば、歪みがあり得る)。
本開示は、いくつかの場合には、コンテキスト適応型エントロピーコーディングプロセスの、コンテキスト状態の初期化(すなわち、コンテキストに対する初期コンテキスト状態の決定、ここで初期コンテキスト状態はコンテキストの初期確率を示す)、および確率の初期化(すなわち、コンテキストの初期確率の直接の決定)に関して上で説明された欠点の一部を低減または除去することができるいくつかの技法を説明する。具体的には、本明細書で説明される技法は、たとえばビデオデータのようなデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディング(たとえば、CABAC、CAVLC、SBAC、PIPEなど)システムまたはデバイスが、他のシステムまたはデバイスに対してより複雑さが低くなることを可能にし得る。一例として、本開示の技法は、システムまたはデバイスが、上で説明された初期化パラメータ「m」および「m」を直接記憶および/または送信するのではなく、初期化パラメータを示す初期化パラメータインデックス値を記憶および/または送信することを可能にでき、初期化パラメータは、コンテキスト適応型エントロピーコーディングプロセスのコンテキストに対する初期コンテキスト状態を決定するために使用される。この例では、初期化パラメータインデックス値は、初期化パラメータよりも少ない情報(たとえば、より少数のデータのビット)を使用して表されてよく、システムまたはデバイス内に記憶される情報の量、および、いくつかの場合には、他のシステムまたはデバイスにシステムから送信される情報の量が、減る可能性がある。
加えて、本明細書で説明される技法は、コンテキストの初期確率が他の技法を使用して導出された初期確率と比べてより正確になるように、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化することによって、たとえばビデオデータのようなデータのより効率的なコンテキスト適応型エントロピーコーディングを可能にし得る。一例では、本開示の技法は、データと関連付けられる時間レイヤに基づいて、初期確率を示す、コンテキストに対する初期コンテキスト状態を決定することによって、相対的により正確な初期確率を有するように、コンテキストを初期化することを可能にし得る。別の例では、本技法は、参照コンテキスト状態と、対応する参照量子化パラメータ値とを使用して、コンテキストに対する初期コンテキスト状態を決定することによって、1つまたは複数のコンテキストを初期化することを可能にし得る。さらに別の例では、コンテキストの初期確率が直接決定される場合、本技法は、1つまたは複数の確率オフセットに基づいて、初期確率を決定することを可能にし得る。
一例として、本開示は、1つまたは複数の初期化パラメータインデックス値に基づいて、コンテキスト適応型エントロピーコーディングプロセスのための1つまたは複数の初期化パラメータを決定し、1つまたは複数の初期化パラメータに基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するための1つまたは複数の初期コンテキスト状態を決定し、1つまたは複数の初期コンテキスト状態に基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するための、技法を説明する。
たとえば、本開示の技法の開発は、いくつかの場合には、H.264/AVCおよびHEVCに関して上で説明されたように、コーディングされているデータ(たとえば、ビデオデータ)の初期コンテキスト状態とQPとの線形の関係を使用すると、他の技法を使用した場合と比較して、コンテキストの初期確率が相対的により不正確になり得ることを示している。その結果、初期コンテキスト状態によって示される初期確率は、コーディングされているデータの実際の確率とはかなり異なり得る。したがって、以下でより詳しく説明されるように、本開示は、コンテキストに対する初期化値(すなわち、初期コンテキスト状態、または直接的に初期確率)を生成または決定して、コンテキストのいわゆる初期「状態/確率推定値」(すなわち、確率)の精度を改善するいくつかの方法を提案する。加えて、本開示はまた、コンテキストに対する初期化情報(たとえば、初期化パラメータ「m」および「n」)を含む初期化テーブル(たとえば、テーブルのサイズ)のための記憶量が減らされ得るように、上で説明された線形モデルの初期化パラメータ(すなわち、「m」および「n」)のビット幅を減らすための技法を提案する。
たとえば、HMでは、上で説明された初期化パラメータ「m」および「n」は、16ビットの符号付きの整数を使用して記憶される。したがって、16ビットのデータが、初期化パラメータ「m」および「n」の各々を記憶するために使用される。H.264/AVCおよびHEVCのいくつかのドラフトバージョンの技法は369個ものコンテキストを含み得るので、初期化パラメータ「m」および「n」の369個ものセットまたは「ペア」(たとえば、369個の「(m,n)ペア」)が特定のコーダ内に記憶されることがあり、これにより、かなり大量のメモリまたは記憶容量を消費する。
いくつかの例では、本開示は、初期化パラメータ「m」および「n」の各々に対して4ビットのデータを使用することを説明する。十分に広範囲の傾き(「m」)および切片(「n」)の値をカバーするために、傾きを表すために「m」を、切片を表すために「n」を直接使用する代わりに、開示される技法は、傾きインデックスを表すために「m」を、切片インデックスを表すために「n」を使用することを提案する。この例では、実際の傾きの値は、以下の関係を使用して(すなわち、傾きテーブルを使用して)、初期化パラメータインデックス値「m」を使用して導出され得る。
同様に、実際の切片の値は、以下の関係を使用して(すなわち、切片テーブルを使用して)、初期化パラメータインデックス値「n」を使用して導出され得る。
言い換えると、開示される技法によれば、H.264/AVCおよびHEVCに関して上で説明された初期化パラメータ「m」および「n」は、初期化パラメータインデックス値「m」および「n」として再定義されてよく、初期化パラメータインデックス値が今度は初期化パラメータを示す(単に「傾き」および「切片」の初期化パラメータと呼ばれ得る)。しかしながら、他の例では、H.264/AVCおよびHEVCの初期化パラメータ「m」および「n」は、元の意味を保持してよく、一方本明細書で開示される技法の初期化パラメータインデックス値は、初期化パラメータインデックス値「idx_m」および「idx_n」と呼ばれ得る。次の例では、初期化パラメータインデックス値は、初期化パラメータインデックス値「m」および「n」と呼ばれる。
初期化パラメータインデックス値「m」および「n」を使用してそれぞれ決定される、傾きおよび切片の値を含む傾きテーブルおよび切片テーブルの例が、以下で示される。
いくつかの例では、4ビットの「m」および4ビットの「n」である初期化パラメータインデックス値は、8ビットのパラメータ「x」を使用して組み合わされてよく、ここで、「m=x>>4かつn=x&15」、または逆に「n=x>>4かつm=x&15」が、「x」を使用して「m」と「n」とを導出するために使用され得る。この例では、「>>」は右シフト演算を示し、「&」は論理積演算を示す。
他の例では、初期化パラメータインデックス値「m」および「n」を表すために、等しくない数のビットを使用することも可能である。たとえば、5ビットのデータが「m」を表すために使用されてよく、3ビットのデータが「n」を表すために使用されてよく、またはこの逆であってよい。
さらに他の例では、上で説明されたように傾きおよび切片の値のテーブルを記憶する代わりに、傾きおよび切片の値は、次の傾きおよび/または切片の関数のような、1つまたは複数の式または関数を使用して、対応する傾きまたは切片のインデックス値から計算され得る。
例として傾きを使用すると、傾きの関数は、たとえば次の式のような線形関数であってよい。
ここで、「c0」および「c1」は線形関数のパラメータである。
別の例では、傾きの関数は、たとえば次の式のような、シフトと加算の演算のみを含み得る。
ここで、「k」はシフトパラメータであり、「c1」は定数である。
に対して、「x」を含む次の関係が、初期化パラメータインデックス値「m」と「n」とを決定するために使用されてよく、初期化パラメータインデックス値が今度は、テーブルを使用してそれぞれの傾きおよび切片の値を決定するために使用され得る。
やはり、この例でも、「>>」は右シフト演算を示し、「&」は論理積演算を示す。
いくつかの例では、上で説明されたようにSlopeTableとIntersectionTableとを記憶する代わりに、傾きおよび切片の値は、次の式を使用して計算され得る。
他の例では、パラメータ「m」の4ビットおよびパラメータ「n」の4ビットは、8ビットのパラメータ「idx」へと組み合わされてよく、ここで、傾きおよび切片の値を決定するために2つの別個のインデックス値を使用する代わりに、単一のインデックス値(すなわち、「idx」)が、次の式において示されるように使用され得る。
別の例では、本開示はまた、1つまたは複数の初期化パラメータおよびビデオデータと関連付けられる時間レイヤパラメータに基づいて、ビデオデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するために、1つまたは複数の初期コンテキスト状態を決定し、1つまたは複数の初期コンテキスト状態に基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するための技法を説明する。
一例として、図4に示されるように、かつ以下でさらに詳しく説明されるように、ビデオデータのフレームは、階層的な構造で符号化され得る。たとえば、図4に示されるように、フレーム「0」、「4」、および「8」は時間レイヤ「0」でコーディングされ、フレーム「2」および「6」は時間レイヤ「1」でコーディングされ、残りのフレーム(すなわち、フレーム「1」、「3」、「5」、および「7」)は時間レイヤ「2」でコーディングされる。本開示の技法の開発は、ビデオデータの異なるフレームの間の依存関係が非対称的であり得ることを示している。たとえば、より低い時間レイヤに位置するビデオデータのフレームは、(たとえば、図4に示される矢印により示されるように)より高い時間レイヤに位置するビデオデータのフレームの参照フレームであり得る。やはり図4に示されるように、図4に示されるものとは逆の方向のそのような依存関係は、許容され得ない。結果として、ビデオデータの1つまたは複数のフレームをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスのコンテキストの初期確率は、ビデオデータのフレームと関連付けられる時間レイヤに応じて変化し得る。
したがって、本開示は、たとえば、次の式を使用して、H.264/AVCおよびHEVCに関して上で説明された線形の関係を使用して導出される初期コンテキスト状態にオフセットを加算するための技法を説明する。
一例では、「オフセット」の値は一定であってよく、コーディングされているデータ(たとえば、ビデオデータのフレーム)と関連付けられる現在のスライスの時間レイヤに依存してよい。たとえば、「オフセット」の値は、時間レイヤ「0」に対しては「−2」に、時間レイヤ「1」に対しては「2」に、時間レイヤ「2」に対しては「3」に、時間レイヤ「3」に対しては「4」に設定され得る。別の例では、「オフセット」は、たとえば次の式において示されるように、時間レイヤの関数であり得る。
ここで、「offset_base」は基本オフセット値に対応し、「temporal_layer」はコーディングされるデータと関連付けられる時間レイヤに対応し、「c0およびc1」は定数に対応し、「offset」は上で説明された線形のコンテキスト初期化の関係において使用される得られるオフセットに対応する。
別の例では、オフセットは、次の関係において示されるような方式で使用され得る。
いくつかの場合には、「offset」の値はまた、たとえば、スライスタイプ、フレームの解像度、参照フレームリストのサイズなどのような、コーディングされるデータと関連付けられる他の「副次的な」情報から導出され得る。
さらに別の例では、「offset」の値は、たとえば、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、適応パラメータセット(APS)のような高水準シンタックス、または、データと関連付けられる他のシンタックス情報、たとえば、別のパラメータセットまたは高水準シンタックスの位置においてシグナリングされ得る。
上の例では、コンテキストのすべてに対する「オフセット」の単一の値が存在してよく、または、「offset」の複数の値が存在してよく、ここで各々の値はコンテキストの特定のサブセットに適用される。一例では、コンテキストは、3つのグループ(すなわち、G1、G2、およびG3)に分割されてよく、以下の式において示されるように、「offset」の単一の値を使用してよい。
別の例として、初期コンテキスト状態の調整はまた、H.264/AVCおよびHEVCに関して上で説明された線形の関係において、QP、たとえばiQPを調整することによって達成され得る。たとえば、次の関係において示されるように、新たなパラメータ「iQp_new」が初期コンテキスト状態を計算するために使用されてよく、ここで「iQp_new」は、特定のフレーム(たとえば、初期コンテキスト状態が決定されるフレーム)のビデオデータを符号化するために使用されるQPとは異なり得る。
別の例では、次の関係において示されるように、H.264/AVCおよびHEVCに関して上で説明された線形の関係において、新たなパラメータ「QP_offset」が、QP、たとえばiQPを修正するために使用され得る。
さらに別の例では、「iQp_new」または「Qp_offset」の値は、たとえば、PPS、SPS、APSのような高水準シンタックス、または別のパラメータセットまたは高水準シンタックスの位置においてシグナリングされ得る。
上で説明された例では、コンテキストのすべてに対する「iQp_new」または「Qp_offset」の単一の値が存在してよく、または、「iQp_new」または「Qp_offset」の複数の値が存在してよく、ここで各々の値はコンテキストの特定のサブセットに適用される。
一例では、「Qp_offset」および/または「iQp_new」の値は一定であってよく、コーディングされるデータと関連付けられる現在のスライスの時間レイヤに依存してよい。たとえば、「Qp_offset」の値は、時間レイヤ「0」に対しては「−3」に、時間レイヤ「1」に対しては「0」に、時間レイヤ「2」に対しては「3」に、時間レイヤ「3」に対しては「6」に設定され得る。別の例では、「Qp_offset」は、たとえば次の関係において示されるように、時間レイヤの関数であり得る。
ここで、「Qp_offset_base」、「c0」、および「c1」は、関係のパラメータとして機能する定数である。同様に、「Qp_offset」および/または「iQp_new」の値はまた、たとえば、スライスタイプ、フレームの解像度、参照フレームリストのサイズなどのような他の「副次的な」情報から導出され得る。
さらに別の例として、1つまたは複数の初期化パラメータインデックス値に基づいてデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングの1つまたは複数のコンテキストを初期化することに関連する技法を含む、上で説明された技法は、コンテキスト適応型エントロピーコーディングプロセスのコンテキストのすべてに対して、またはコンテキストの一部(たとえば、サブセット)のみに対して使用され得る。たとえば、本技法は、いくつかのシンタックス要素のタイプ、たとえば、選択された色成分(たとえば、「ルーマ」または「クロマ」成分)、選択されたブロックサイズ、選択された変換サイズ、動き補償、または変換係数情報に対するシンタックス要素に関連するコンテキストに対して、使用され得る。
さらに別の例として、本開示は、第1の値を決定し、第1の値が、下限、上限、および下限と上限の1つまたは複数に対する1つまたは複数のオフセットによって定義される値の範囲内にある場合、第1の値を選択し、第1の値が値の範囲の外にある場合、第1の値とは異なる第2の値を選択し、選択された第1の値または第2の値に基づいて、コンテキスト適応型エントロピーコーディングプロセスのコンテキストの確率を初期化するための技法を説明する。
一例として、コンテキストの初期確率を決定する際に、コンテキストに対するコンテキスト状態がコンテキストの確率に直接対応する、CABACのバージョンに関して上で説明された技法では、コンテキストの初期確率の高度に歪んだ分布が発生し得る。たとえば、高度に歪んだ確率は、決定された初期確率が、初期確率を含む確率の範囲の上限および下限の1つまたは複数に近接していることから生じ得る。結果として、本開示の技法は、そのような歪んだ確率を低減または防止する、1つまたは複数のオフセットを導入することを提案する。たとえば、提案される技法は、次の関係を使用して実行され得る。
ここで、「offset」は整数値である。一例として、「256」に等しい「offset」の値は、高度に歪んだ値を伴わない初期確率を可能にし得る。
別の例として、「offset」の値は、確率更新プロセスと「一致」させられ得る。言い換えると、いくつかの例では、コンテキストに対する初期化された確率を後で更新する目的で、同一のまたは同様のオフセットが使用され得る。したがって、この更新プロセスも、コンテキストの「極端な」(たとえば、0%または100%に近い)確率(すなわち、高度に歪んだ確率)の回避をもたらし得る。結果として、確率を初期化することと後で更新することの両方(すなわち、上で説明された確率初期化プロセスおよび確率更新プロセス)は、コンテキストの極端な確率に対して同一の制限を課し得るので、コンテキストの高度に歪んだ確率が回避される可能性がある。例として、確率更新プロセスは、次の関係を使用して実行され得る。
ここで、ALPHA0は定数である。
これらの例では、上で示された関数または関係は、「記憶減衰指数」関数と呼ばれ得る。たとえば、特定の指数関数の漸近値(すなわち、可能な最小または最大の値)は、「offset」の値によって決まる。たとえば、「offset」の値は、上で説明された初期化プロセスと更新プロセスの両方に対して同一であり得る。
が、シンボル(たとえば、ビン)の値が「1」である確率を提供することなく、シンボルの値が「0」である確率を提供することができる。
一例として、次の初期化関数または関係が、シンボルの値が「1」である確率を得るために使用され得る。
ここで、確率の意味が逆になる。言い換えると、上記の関係は、「1」(すなわち、「1」の確率または100%)から、以前に説明された関係
を使用して導出される確率を引いた値を提供する。
さらに、この例では、「32768」が最大の確率であってよく、これは、「1」の確率(すなわち、100%の確率)と等価であり得る。
加えて、本開示はまた、3つ以上の参照QP値のそれぞれ1つに各々対応する3つ以上の参照コンテキスト状態を定義する初期化パラメータと、ビデオデータと関連付けられるQP値とに基づいて、ビデオデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスのコンテキストを初期化するための初期コンテキスト状態を決定し、初期コンテキスト状態に基づいて、コンテキスト適応型エントロピーコーディングプロセスのコンテキストを初期化するための技法を説明する。
たとえば、上で説明されたように、H.264/AVCおよびHEVCのいくつかのドラフトバージョンでは、コンテキストに対する初期コンテキスト状態は、線形の導出方法または関係に基づいて決定される。この方法は、2つの初期化パラメータ(すなわち、「m」および「n」)を使用し、これらの各々は少なくとも8ビットのデータを使用して表される。線形の関係または式は、これらの2つの初期化パラメータを使用して、コンテキストに対する初期コンテキスト状態として、たとえば、H.264/AVCにおいて許容される126個のコンテキスト状態の1つを導出する。
本開示の技法の開発は、非線形のモデルまたは関係が、H.264/AVCおよびHEVCに関して上で説明された線形の関係のような線形の関係よりも、コンテキストを初期化するのに効果的であり得ることを示している。具体的には、非線形の関係は、線形の関係を使用して決定された初期確率と比較して、コンテキストの初期確率を相対的により正確にし得る。したがって、本開示は、たとえば、限られた数のデータのビットを使用して、コンテキストに対する初期コンテキスト状態を決定するために、非線形の、または部分的に非線形の、方法または関係を使用することを提案する。いくつかの例では、本技法は、上で説明されたH.264/AVCおよびHEVCの技法において使用されるデータのビットの数と比較して、同数のまたはより少数のデータのビット、すなわち16ビット以下のデータを使用することを提案する。
一例として、16ビットのデータが、コンテキストに対する初期コンテキスト状態を決定するために使用され得る。16ビットの使用は、3つの部分に分割され得る。第1の部分は6ビットを含んでよく、所与のQP値(たとえば、QP=「26」)におけるコンテキスト状態を提供する。2つの連続するコンテキスト状態が同一の量子化されたコンテキスト状態を共有する(たとえば、6ビットのビット深度は、126個のコンテキスト状態の1つをシグナリングしなければならない64個のインデックスを提供するので)ように、このコンテキスト状態値が量子化されることに留意されたい。第2の部分は5ビットを含んでよく、第2のQP値(たとえば、前のQP値マイナス「8」)におけるコンテキスト状態を提供する。5ビットのビット深度は、126個のコンテキスト状態の1つをシグナリングしなければならない32個のインデックスを提供するので、やはり、これは量子化されたコンテキスト状態であり得る。この例では、4つのコンテキスト状態が同一の量子化されたコンテキスト状態を共有する。最後に、16ビットの第3の部分は、第3のQP値(たとえば、第1のQPプラス「8」)におけるコンテキスト状態を示す、5個の残りのビットを含み得る。
結果として、この例の初期化パラメータは、16ビットのデータを含んでよく、たとえば、InitParam=[x1x2x3]である。この例では、「x3」は、演算「x3=(InitParam&31)」を使用して取得され得る。同様に、「x2」は、演算「x2=((InitParam>>5)&31)」を使用して取得されてよく、「x1」は、演算「x1=(InitParam>>10)」を使用して取得されてよい。このようにして、パラメータ「InitParam」は、初期コンテキスト状態の導出に必要なパラメータを含む。やはり、この例でも、「>>」は右シフト演算を示し、「&」は論理積演算を示す。
全体で16ビットのデータを使用する、量子化されたコンテキスト状態のこれらの3つの値(すなわち、「x1」、「x2」、および「x3」)は、コンテキストに対するコンテキスト状態の補間のために使用され得る3つの点(たとえば、「x1」、「x2」、および「x3」のうちの1つと対応するQP値とを各々が含む、値の「ペア」)を、QP値の残りに提供する。言い換えると、参照コンテキスト状態値「x1」、「x2」、および「x3」、ならびに対応する参照QP値は、参照値の間を補間し、コンテキストに対する初期コンテキスト状態を決定するためにコーディングされているデータと関連付けられる実際のQPを使用することによって、コンテキストに対する初期コンテキスト状態を決定するために使用され得る。
一例として、上で説明された決定は、二重の線形近似(たとえば、スプライン)を使用して実行され得る。たとえば、次の関係が使用され得る。
この例では、「x1」、「x2」、および「x3」は、3つの異なるQP(すなわち、それぞれ「26」、「18」、および「34」)におけるコンテキスト状態の値を含む。さらに、変数「x」(すなわち、「x1」、「x2」、および「x3」)が、上で説明されたような正しいビット深度の値を含まない場合、何らかのビット左シフト演算を実行することが必要であり得る。
加えて、「8」による除算が、ビット右シフト演算として実行され得る。そのような例では、この例の技法は、次の式を使用して実施され得る。
上の式は、「x1」が6ビットの精度を有し、「x2」および「x3」が各々5ビットの精度を有することを前提とし得る。いくつかの例では、「8」で割るときに最も近い整数へと丸める目的で(たとえば、単に小さい方の整数に丸めるのではなく)、式における右シフト演算の前に、「4」の加算も含まれ得る。したがって、値が他のビット深度をサポートするように定義される場合、これらの式に対するわずかな修正が使用され得る。
上で説明された技法を使用すると、初期コンテキスト状態を決定するための二重の線形補間は、乗算または除算を伴わずに実行され得る。利用される複数のQP値の差が「2」の累乗であるために、この簡単な実装形態が可能になる。
他の例では、他のQP値も使用され得る。加えて、量子化されるコンテキスト状態の3つの値の各々に対する他のビット深度の分布も、使用され得る。加えて、3つよりも多くの点(たとえば、4つ以上の点)が使用されてよく、これは多重線形関数である(すなわち、いくつかの線形部分がまとめられる)。
さらに他の例では、パラボラ(たとえば、2次多項式)をフィッティングして他のQPにおけるコンテキスト状態を決定するために、3つの点が使用され得る。同様に、他の例では、3次多項式をフィッティングするために4つの点が使用され得る。
加えて、たとえば、以下で示される式を使用して実行されるクリッピング動作も、許可されていないコンテキスト状態値(たとえば、各値を表すのに7ビットよりも多くのデータを必要とするコンテキスト状態値)を回避するために、上で説明された非線形コンテキスト状態の導出プロセスに従って含まれ得る。
iInitState=min(max(1,iInitState),126)
したがって、本開示の技法に従ったいくつかの例では、ソースデバイス12のビデオエンコーダ20は、ビデオデータの1つまたは複数のブロック(たとえば、CUの1つまたは複数のTU)のようなデータを符号化するように構成されてよく、宛先デバイス14のビデオデコーダ30は、ビデオエンコーダ20から、符号化されたデータ、たとえば、ビデオデータの符号化された1つまたは複数のブロックを受信するように構成され得る。他の例では、上で説明されたように、本開示の技法は、たとえばビデオデータ以外の、多種多様なデータのいずれかをコーディングするためにコンテキスト適応型エントロピーコーディングを使用することに、適用可能であり得る。したがって、開示される技法に従ったいくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、この例で示されるように、ビデオ符号化および復号デバイス以外の、他の符号化および復号デバイスであり得る。
一例として、ビデオエンコーダ20および/またはビデオデコーダ30は、コンテキスト適応型エントロピーコーディングのために構成され得る。この例では、ビデオエンコーダ20とビデオデコーダ30の1つまたは複数は、1つまたは複数の初期化パラメータインデックス値に基づいて、コンテキスト適応型エントロピーコーディングプロセス(たとえば、CABAC、SBAC、PIPE、または別のプロセス)のために1つまたは複数の初期化パラメータを決定するように構成される、コーダ(たとえば、エントロピー符号化ユニット56またはエントロピー復号ユニット80)を含み得る。たとえば、以下でより詳しく説明されるように、ビデオエンコーダ20および/またはビデオデコーダ30は、1つまたは複数の初期化パラメータインデックス値を、1つまたは複数のテーブル中の1つまたは複数の初期化パラメータと対応付けることによって、1つまたは複数の初期コンテキスト状態を決定する(すなわち、1つまたは複数の初期化パラメータインデックス値に基づいて、1つまたは複数のテーブル中の1つまたは複数の初期化パラメータを特定する)ように、または、1つまたは複数の初期化パラメータインデックス値と1つまたは複数の式とを使用して1つまたは複数の初期化パラメータを計算することによって、1つまたは複数の初期コンテキスト状態を決定するように構成され得る。
ビデオエンコーダ20および/またはビデオデコーダ30はさらに、1つまたは複数の初期化パラメータに基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するための1つまたは複数の初期コンテキスト状態を決定するように構成され得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、1つまたは複数の初期化パラメータと、H.264/AVCおよびHEVCのいくつかのドラフトバージョンに関して上で説明された線形の関係のような関係とを使用して、1つまたは複数の初期コンテキスト状態を決定するように構成され得る。加えて、ビデオエンコーダ20および/またはビデオデコーダ30はまたさらに、1つまたは複数の初期コンテキスト状態に基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するように構成され得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、それぞれのコンテキストの現在のコンテキスト状態として、1つまたは複数の初期コンテキスト状態の対応する1つを割り当てることによって、1つまたは複数のコンテキストの各々を初期化するように構成され得る。
したがって、本開示の技法は、ビデオエンコーダ20および/またはビデオデコーダ30が、たとえば上で説明されたビデオデータのようなデータをコーディングするために使用されるとき、同様のデータをコーディングするために使用される他のシステムと比較して、相対的により複雑さが低くなることを可能にし得る。具体的には、本技法は、ビデオエンコーダ20および/またはビデオデコーダ30の中に記憶される、またはそれに送信され、もしくはそれから送信される、情報の量を減らすことができる。加えて、図6〜図8に関して以下でさらに詳しく説明されるように、本開示の技法はまた、ビデオエンコーダ20および/またはビデオデコーダ30が、他の技法よりも効率的にデータをコーディングすることを可能にし得る。このようにして、本開示の技法を使用すると、データをコーディングするために使用されるビデオエンコーダ20および/またはビデオデコーダ30の複雑さが相対的に下がり、コーディングされたデータを含むコーディングされたビットストリームのためのビットが相対的に減り得る。
ビデオエンコーダ20およびビデオデコーダ30は各々、適用可能な場合、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せのような、多種多様な適切なエンコーダまたはデコーダ回路のいずれかとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、これらのいずれかが、組み合わされたエンコーダ/デコーダ(たとえば、「コーデック」)の一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含む装置は、集積回路(IC)、マイクロプロセッサ、および/または携帯電話のようなワイヤレス通信デバイスを備え得る。
図2は、本開示の技法による、コンテキスト適応型エントロピーコーディングのためのコンテキスト状態および確率の初期化のための技法を実施できる、ビデオエンコーダの例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、空間的予測を利用して、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去する。インターコーディングは、時間的予測を利用して、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
図2の例では、ビデオ符号器20は、区分ユニット35と、予測モジュール41と、参照ピクチャメモリ64と、加算器50と、変換モジュール52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測モジュール41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測モジュール46とを含む。ビデオブロック再構成のために、ビデオ符号器20はまた、逆量子化ユニット58と、逆変換モジュール60と、加算器62とを含む。ブロック境界をフィルタリングして再構成されたビデオからブロッキネスアーティファクトを除去するために、デブロッキングフィルタ(図2に図示せず)も含まれ得る。望まれる場合、デブロッキングフィルタは通常、加算器62の出力をフィルタリングする。追加のループフィルタ(ループ内またはループ後)も、デブロッキングフィルタに加えて使用され得る。
図2に示されるように、ビデオエンコーダ20はビデオデータを受信し、区分ユニット35はデータをビデオブロックに区分する。この区分は、たとえば、LCUおよびCUの4分木構造に従った、スライス、タイル、または他のより大きいユニットへの区分、さらにはビデオブロック区分を含み得る。ビデオエンコーダ20は、符号化されるべきビデオスライス内のビデオブロックを符号化するコンポーネントを全般に示す。スライスは、複数のビデオブロックに(および、場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測モジュール41は、誤り結果(たとえば、コーディングレートおよび歪みのレベル)に基づいて、現在のビデオブロックに対して、複数のイントラコーディングモードのうちの1つ、または複数のインターコーディングモードのうちの1つのような、複数の可能なコーディングモードのうちの1つを選択し得る。予測モジュール41は、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを、加算器50に与えて残差ブロックデータを生成し、加算器62に与えて参照ピクチャとして使用するために符号化されたブロックを再構成することができる。
予測モジュール41内のイントラ予測モジュール46は、空間圧縮を行うために、コーディングされるべき現在のブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する現在のビデオブロックのイントラ予測コーディングを実行し得る。予測モジュール41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対する現在のビデオブロックのインター予測コーディングを実行する。
動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスをPスライス、BスライスまたはGPBスライスに指定し得る。動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。
予測ブロックは、絶対値差分和(SAD)、差分2乗和(SSD)、または他の差分尺度によって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUに厳密に一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ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は、この減算演算を実行する1つまたは複数のコンポーネントを表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
イントラ予測モジュール46は、上で説明されたように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測モジュール46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測モジュール46は、たとえば、別々の符号化パスの間などに、様々なイントラ予測モードを使用して、現在のブロックを符号化することができ、イントラ予測モジュール46(または、いくつかの例において、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。たとえば、イントラ予測モジュール46は、様々なテストされたイントラ予測モードのためのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択することができる。レート歪み分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み(または誤差)の量、ならびに、符号化されたブロックを生成するために使用されたビットレート(すなわち、ビット数)を決定する。イントラ予測モジュール46は、どのイントラ予測モードがブロックに対して最良のレート歪み値を呈するかを決定するために、様々な符号化されたブロックに対する歪みおよびレートから比率を計算することができる。
いずれの場合も、あるブロックに対するイントラ予測モードを選択した後、イントラ予測ユニットモジュール46は、ブロックに対する選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供することができる。エントロピー符号化ユニット56は、送信されるビットストリーム中に、選択されたイントラ予測モードを示す情報を符号化することができる。
予測モジュール41が、インター予測またはイントラ予測のいずれかを介して、現在のビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ20は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換モジュール52に適用され得る。変換モジュール52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換モジュール52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
変換モジュール52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部またはすべてと関連付けられるビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
量子化の後に、エントロピー符号化ユニット56は量子化された変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、CAVLC、CABAC、SBAC、PIPE、または別のエントロピー符号化方法もしくは技法を実行することができる。エントロピー符号化ユニット56によるエントロピー符号化の後に、符号化されたビットストリームは、ビデオデコーダ30に送信されてよく、またはビデオデコーダ30によって後で送信しまたは取り出すためにアーカイブされてよい。エントロピー符号化ユニット56はまた、コーディングされている現在のビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
逆量子化ユニット58および逆変換モジュール60は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ64に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット42と動き補償ユニット44とによって参照ブロックとして使用され得る。
一例として、エントロピー符号化ユニット56(たとえば、図1のソースデバイス12のビデオエンコーダ20)を含む装置は、コンテキスト適応型エントロピーコーディングのために構成され得る。たとえば、装置は、上で説明されたCABAC、SBAC、またはPIPEプロセスのいずれか、さらには、任意の他のコンテキスト適応型エントロピーコーディングプロセスを実行するために構成され得る。この例では、エントロピー符号化ユニット56は、1つまたは複数の初期化パラメータインデックス値(たとえば、図1に関して上で説明された1つまたは複数の「idx_m」および「idx_n」の値)に基づいて、コンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)に対する1つまたは複数の初期化パラメータ(たとえば、図1および図2に関してやはり上で説明された1つまたは複数のパラメータ「m」および「n」)を決定するように構成され得る。加えて、エントロピー符号化ユニット56はさらに、1つまたは複数の初期化パラメータに基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するための1つまたは複数の初期コンテキスト状態を決定するように構成され得る。エントロピー符号化ユニット56はまたさらに、1つまたは複数の初期コンテキスト状態に基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するように構成され得る。
いくつかの例では、1つまたは複数の初期化パラメータは、1つまたは複数のテーブルに含まれ得る。これらの例では、1つまたは複数の初期化パラメータインデックス値に基づいて1つまたは複数の初期化パラメータを決定するために、エントロピー符号化ユニット56は、1つまたは複数の初期化パラメータインデックス値を、1つまたは複数のテーブル中の1つまたは複数の初期化パラメータと対応付けるように構成され得る。言い換えると、1つまたは複数の初期化パラメータインデックス値に基づいて1つまたは複数の初期化パラメータを決定するために、エントロピー符号化ユニット56は、1つまたは複数の初期化パラメータインデックス値に基づいて、1つまたは複数のテーブル中の1つまたは複数の初期化パラメータを特定するように構成され得る。
あるいは、他の例では、1つまたは複数の初期化パラメータインデックス値に基づいて1つまたは複数の初期化パラメータを決定するために、エントロピー符号化ユニット56は、1つまたは複数の初期化パラメータインデックス値と1つまたは複数の式とを使用して、1つまたは複数の初期化パラメータを計算するように構成され得る。これらの例では、1つまたは複数の式の各々は、ビットシフト演算、加算演算、減算演算、乗算演算、および除算演算からなる群から各々選択された1つまたは複数の演算のみを使用して実施され得る。
さらに他の例では、1つまたは複数の初期化パラメータは、1つまたは複数の傾きの値と1つまたは複数の切片の値とを含んでよく、1つまたは複数の初期化パラメータインデックス値は、1つまたは複数の傾きのインデックス値と1つまたは複数の切片のインデックス値とを含んでよい。これらの例では、1つまたは複数の初期化パラメータインデックス値に基づいて1つまたは複数の初期化パラメータを決定するために、エントロピー符号化ユニット56は、1つまたは複数の傾きのインデックス値に基づいて1つまたは複数の傾きの値を決定し、1つまたは複数の切片のインデックス値に基づいて1つまたは複数の切片の値を決定するように構成され得る。
あるいは、いくつかの例では、1つまたは複数の初期化パラメータは、1つまたは複数の傾きの値と1つまたは複数の切片の値とを含み得る。これらの例では、1つまたは複数の初期化パラメータインデックス値に基づいて1つまたは複数の初期化パラメータを決定するために、エントロピー符号化ユニット56は、1つまたは複数の初期化パラメータインデックス値のただ1つに基づいて、1つまたは複数の傾きの値の少なくとも1つと1つまたは複数の切片の値の少なくとも1つとを決定するように構成され得る。
上で説明された例では、1つまたは複数の初期化パラメータインデックス値のそのただ1つは、1つまたは複数の傾きのインデックス値成分と1つまたは複数の切片のインデックス値成分とを含み得る。これらの例では、1つまたは複数の初期化パラメータインデックス値のそのただ1つに基づいて、1つまたは複数の傾きの少なくとも1つと1つまたは複数の切片の値の少なくとも1つとを決定するために、エントロピー符号化ユニット56は、1つまたは複数の傾きのインデックス値成分に基づいて1つまたは複数の傾きの値の少なくとも1つを決定し、1つまたは複数の切片のインデックス値成分に基づいて1つまたは複数の切片の値の少なくとも1つを決定するように構成され得る。
さらに、これらの例では、1つまたは複数の傾きのインデックス値成分に基づいて1つまたは複数の傾きの値の少なくとも1つを決定するために、かつ、1つまたは複数の切片のインデックス値成分に基づいて1つまたは複数の切片の値の少なくとも1つを決定するために、エントロピー符号化ユニット56は、1つまたは複数のビットシフト演算を使用して、1つまたは複数の初期化パラメータインデックス値のそのただ1つの、1つまたは複数の傾きのインデックス値成分と、1つまたは複数の切片のインデックス値成分とのうちの一方を決定し、1つまたは複数の論理積演算を使用して、1つまたは複数の初期化パラメータインデックス値のそのただ1つの、1つまたは複数の傾きのインデックス値成分と1つまたは複数の切片のインデックス値成分のうちの他方を決定するように構成され得る。
さらに他の例では、1つまたは複数の初期化パラメータインデックス値のそのただ1つは、所定の数のビットを含み得る。これらの例では、1つまたは複数の傾きのインデックス値成分と1つまたは複数の切片のインデックス値成分の各々は、所定の数のビットのそれぞれのサブセットを含み得る。またこれらの例では、1つまたは複数の傾きのインデックス値成分に対応するサブセットの各々は、1つまたは複数の切片のインデックス値成分に対応するサブセットの各々とは異なる数の、所定の数のビットを含み得る。
加えて、いくつかの例では、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストは、コンテキスト適応型エントロピーコーディングプロセスのコンテキストのサブセットを含み得る。たとえば、サブセットは、コンテキスト適応型エントロピーコーディングプロセスを使用してコーディングされるビデオデータと関連付けられるシンタックスタイプに対応し得る。いくつかの例では、シンタックスタイプは、ビデオデータと関連付けられる、コンポーネントタイプ、ブロックサイズ、変換サイズ、予測モード、動き情報、変換係数情報のうちの1つまたは複数を含み得る。
他の例では、エントロピー符号化ユニット56を含む装置(たとえば、図1のソースデバイス12のビデオエンコーダ20)は、ビデオエンコーダとして構成され得る。これらの例では、ビデオエンコーダは、コンテキスト適応型エントロピーコーディングプロセスの初期化された1つまたは複数のコンテキストに基づいて、ビデオデータのブロックと関連付けられる1つまたは複数のシンタックス要素を符号化し、ビットストリーム中の符号化された1つまたは複数のシンタックス要素を出力するように構成され得る。いくつかの例では、前に説明されたように、エントロピー符号化ユニット56を含む装置(たとえば、図1のソースデバイス12のビデオエンコーダ20)は、集積回路と、マイクロプロセッサと、エントロピー符号化ユニット56を含むワイヤレス通信デバイスとのうちの少なくとも1つを含み得る。
図5〜図8に関して以下でさらに詳しく説明されるように、他の例では、ビデオエンコーダ20、またはその様々なコンポーネント(たとえば、エントロピー符号化ユニット56)は、コンテキスト適応型エントロピーコーディングのためのコンテキスト状態および確率の初期化に関連する他の技法を実行するように構成され得る。たとえば、この例の技法に類似する、図5に関して以下で説明される技法、および、図6〜図8に関して以下で説明される追加の技法は、ビデオエンコーダ20、またはその任意のコンポーネントによって個々に、またはそれらの任意の組合せによって実行され得る。一例として、追加の技法の1つまたは複数は、1つまたは複数の初期化パラメータインデックス値に基づいてデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスのコンテキストを初期化することに関連する、この例(および図5の例)の技法と組み合わせて実行され得る。具体的には、図6〜図8に関して以下で説明される技法は、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化することに関し、他の技法を使用して決定された初期確率と比較して初期確率がより正確になるように、コンテキストの初期確率を示すコンテキストに対する初期コンテキスト状態を決定すること、または、コンテキストの初期確率を直接決定することを含む。
したがって、上の例により示されるように、かつ、図5〜図8の例により示されるように、本開示の技法は、ビデオエンコーダ20、またはその任意のコンポーネントが、たとえば上で説明されたビデオデータのような様々なタイプのデータを、他の方法を使用した場合よりも効率的に符号化することを可能にし得る。一例として、上の例により示されるように(かつ図5の例により示されるように)、本技法は、ビデオエンコーダ20が、コンテキスト適応型エントロピーコーディングプロセスを使用してデータを符号化する場合に、他のシステムに対して複雑さがより低くなることを可能にし得る。たとえば、本技法は、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化する目的でビデオエンコーダ20に記憶される、かつ/または、ビデオエンコーダ20からビデオデコーダ(たとえば、ビデオデコーダ30)に送信される、情報の量(たとえば、データのビットの数)を減らすことができる。具体的には、記憶される情報の量は、初期化パラメータを直接記憶および/または送信するのではなく、コンテキストを初期化するために使用される初期化パラメータを示す初期化パラメータインデックス値を記憶および/または送信することによって、減らされ得る。
いくつかの例では、記憶される情報の量は、初期化パラメータインデックス値が初期化パラメータよりも少量の情報(たとえば、より少数のデータのビット)を使用して表されるように、初期化パラメータインデックス値を定義することによって減らされ得る。結果として、初期化パラメータインデックス値は、初期化パラメータのサブセットのみに対応し得る。このようにして、初期化パラメータインデックス値によって示されるように、すべてよりも少数の初期化パラメータが、コンテキストを初期化するために使用され得る。たとえば、コンテキストの一部は、共通の初期化パラメータを使用して初期化され得る。それでも、初期化パラメータのすべてではなく初期化パラメータのサブセットを使用することと関連付けられる負の影響(たとえば、各コンテキストが固有の1つまたは複数の初期化パラメータを使用して初期化される、初期化パラメータのすべてを使用して決定される場合の初期確率と比較して、コンテキストの初期確率が相対的により不正確である)は、上で説明されたように、ビデオエンコーダ20に記憶される情報の量、および場合によっては、ビデオエンコーダ20からビデオデコーダに送信される情報の量が減ることを下回り得る。
このようにして、いくつかの例では、初期化パラメータのサブセットを示す初期化パラメータインデックス値、および初期化パラメータのサブセット自体が、ビデオエンコーダ20に記憶されてよく、これによって、ビデオエンコーダ20に記憶される情報の量が減る可能性がある。たとえば、いくつかの場合には、初期化パラメータインデックス値は、初期化パラメータよりも少量の情報を使用して表され得るので、かつ、初期化パラメータインデックス値は、初期化パラメータのサブセットのみに対応し得るので、初期化パラメータインデックス値と初期化パラメータのサブセットとをビデオエンコーダ20に記憶するために使用される情報の総量(たとえば、データのビットの総数)は、初期化パラメータのすべてをビデオエンコーダ20に記憶するために必要であろう情報の量に対して、減らされ得る。さらに、他の場合には、初期化パラメータではなく初期化パラメータインデックス値が、ビデオエンコーダ20からビデオデコーダに送信されてよく、これによって、ビデオエンコーダ20からビデオデコーダに送信される情報の総量が減る。
別の例として、図6〜図8の例により示されるように、本開示の技法は、ビデオエンコーダ20がコンテキスト適応型エントロピーコーディングプロセスを使用してデータを符号化するように構成されるときの、データの圧縮を改善することができる。たとえば、本技法は、他のコンテキスト初期化技法を使用して決定された初期確率と比較して、1つまたは複数のコンテキストが相対的により正確な初期確率を含むように、ビデオエンコーダ20またはその任意のコンポーネントがコンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化することを可能にすることによって、データの圧縮を改善することができる。加えて、いくつかの例では、本技法はさらに、他のコンテキスト確率更新技法を使用して更新された確率と比較して、更新された確率が相対的により正確になるように、ビデオエンコーダ20またはその任意のコンポーネントがコンテキストの確率を後で更新することを可能にすることによって、データの圧縮を改善することができる。
したがって、本開示の技法を使用すると、符号化されたデータと、場合によっては、ビデオエンコーダ20からビデオデコーダ(たとえば、ビデオデコーダ30)に送信される初期化パラメータインデックス値とを含むコーディングされたビットストリームのためのビットが相対的に減り、データを符号化するために使用されるビデオエンコーダ20の複雑さが相対的に低くなり得る。
このようにして、ビデオエンコーダ20は、コンテキスト適応型エントロピーコーディングのための装置の例を表し、この装置は、1つまたは複数の初期化パラメータインデックス値に基づいて、コンテキスト適応型エントロピーコーディングプロセスのための1つまたは複数の初期化パラメータを決定し、1つまたは複数の初期化パラメータに基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するための1つまたは複数の初期コンテキスト状態を決定し、1つまたは複数の初期コンテキスト状態に基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するように構成される、コーダを備える。
図3は、本開示の技法による、コンテキスト適応型エントロピーコーディングのためのコンテキスト状態および確率の初期化のための技法を実施できる、ビデオデコーダの例を示すブロック図である。図3の例では、ビデオ復号器30は、エントロピー復号ユニット80と、予測モジュール81と、逆量子化ユニット86と、逆変換ユニット88と、加算器90と、参照ピクチャメモリ92とを含む。予測モジュール81は、動き補償ユニット82と、イントラ予測モジュール84とを含む。ビデオデコーダ30は、いくつかの例では、図2のビデオエンコーダ20に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。
復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化されたビデオスライスのビデオブロックと関連するシンタックス要素とを表す、符号化されたビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット80は、量子化された係数と、動きベクトルと、他のシンタックス要素とを生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット80は、予測モジュール81に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、予測モジュール81のイントラ予測モジュール84は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成することができる。ビデオフレームがインターコーディングされた(すなわち、B、PまたはGPB)スライスとしてコーディングされるとき、予測モジュール81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ92に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構成し得る。
動き補償ユニット82は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されている現在のビデオブロックの予測ブロックを生成する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数のための構成情報と、スライスの各々のインター符号化されたビデオブロックのための動きベクトルと、スライスの各々のインターコーディングされたビデオブロックのためのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
動き補償ユニット82はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット82は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間された値を計算し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
逆量子化ユニット86は、ビットストリーム中で与えられエントロピー復号ユニット80によって復号された、量子化された変換係数を、逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を判定し、同様に、適用されるべき逆量子化の程度を判定するための、ビデオスライス中の各ビデオブロックに対してビデオエンコーダ20によって計算される量子化パラメータの使用を含み得る。逆変換モジュール88は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
動き補償ユニット82が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換モジュール88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数のコンポーネントを表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタリングするためのデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化し、または他の方法でビデオ品質を改善するために、(コーディングループ内またはコーディングループ後の)他のループフィルタも使用され得る。所与のフレームまたはピクチャの復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ92に記憶される。参照ピクチャメモリ92はまた、図1のディスプレイデバイス28などのディスプレイデバイス上での後の表示のために、復号されたビデオを記憶する。
一例として、エントロピー復号ユニット80(たとえば、図1の宛先デバイス14のビデオデコーダ30)を含む装置は、コンテキスト適応型エントロピーコーディングのために構成され得る。たとえば、装置は、上で説明されたCABAC、SBAC、またはPIPEプロセスのいずれかを実行するように構成され得る。この例では、エントロピー復号ユニット80は、1つまたは複数の初期化パラメータインデックス値(たとえば、図1に関して上で説明された1つまたは複数の「idx_m」および「idx_n」の値)に基づいて、コンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)に対する1つまたは複数の初期化パラメータ(たとえば、図1および図2に関してやはり上で説明された1つまたは複数のパラメータ「m」および「n」)を決定するように構成され得る。加えて、エントロピー復号ユニット80はさらに、1つまたは複数の初期化パラメータに基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するための1つまたは複数の初期コンテキスト状態を決定するように構成され得る。エントロピー復号ユニット80はまたさらに、1つまたは複数の初期コンテキスト状態に基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するように構成され得る。
いくつかの例では、1つまたは複数の初期化パラメータは、1つまたは複数のテーブルに含まれ得る。これらの例では、1つまたは複数の初期化パラメータインデックス値に基づいて1つまたは複数の初期化パラメータを決定するために、エントロピー復号ユニット80は、1つまたは複数の初期化パラメータインデックス値を、1つまたは複数のテーブル中の1つまたは複数の初期化パラメータと対応付けるように構成され得る。言い換えると、1つまたは複数の初期化パラメータインデックス値に基づいて1つまたは複数の初期化パラメータを決定するために、エントロピー復号ユニット80は、1つまたは複数の初期化パラメータインデックス値に基づいて、1つまたは複数のテーブル中の1つまたは複数の初期化パラメータを特定するように構成され得る。
あるいは、他の例では、1つまたは複数の初期化パラメータインデックス値に基づいて1つまたは複数の初期化パラメータを決定するために、エントロピー復号ユニット80は、1つまたは複数の初期化パラメータインデックス値と1つまたは複数の式とを使用して、1つまたは複数の初期化パラメータを計算するように構成され得る。これらの例では、1つまたは複数の式の各々は、ビットシフト演算、加算演算、減算演算、乗算演算、および除算演算からなる群から各々選択された1つまたは複数の演算のみを使用して実施され得る。
さらに他の例では、1つまたは複数の初期化パラメータは、1つまたは複数の傾きの値と1つまたは複数の切片の値とを含んでよく、1つまたは複数の初期化パラメータインデックス値は、1つまたは複数の傾きのインデックス値と1つまたは複数の切片のインデックス値とを含んでよい。これらの例では、1つまたは複数の初期化パラメータインデックス値に基づいて1つまたは複数の初期化パラメータを決定するために、エントロピー復号ユニット80は、1つまたは複数の傾きのインデックス値に基づいて1つまたは複数の傾きの値を決定し、1つまたは複数の切片のインデックス値に基づいて1つまたは複数の切片の値を決定するように構成され得る。
あるいは、いくつかの例では、1つまたは複数の初期化パラメータは、1つまたは複数の傾きの値と1つまたは複数の切片の値とを含み得る。これらの例では、1つまたは複数の初期化パラメータインデックス値に基づいて1つまたは複数の初期化パラメータを決定するために、エントロピー復号ユニット80は、1つまたは複数の初期化パラメータインデックス値のただ1つに基づいて、1つまたは複数の傾きの値の少なくとも1つと1つまたは複数の切片の値の少なくとも1つとを決定するように構成され得る。
上で説明された例では、1つまたは複数の初期化パラメータインデックス値のそのただ1つは、1つまたは複数の傾きのインデックス値成分と1つまたは複数の切片のインデックス値成分とを含み得る。これらの例では、1つまたは複数の初期化パラメータインデックス値のそのただ1つに基づいて、1つまたは複数の傾きの少なくとも1つと1つまたは複数の切片の値の少なくとも1つとを決定するために、エントロピー復号ユニット80は、1つまたは複数の傾きのインデックス値成分に基づいて1つまたは複数の傾きの値の少なくとも1つを決定し、1つまたは複数の切片のインデックス値成分に基づいて1つまたは複数の切片の値の少なくとも1つを決定するように構成され得る。
さらに、これらの例では、1つまたは複数の傾きのインデックス値成分に基づいて1つまたは複数の傾きの値の少なくとも1つを決定するために、かつ、1つまたは複数の切片のインデックス値成分に基づいて1つまたは複数の切片の値の少なくとも1つを決定するために、エントロピー復号ユニット80は、1つまたは複数のビットシフト演算を使用して、1つまたは複数の初期化パラメータインデックス値のそのただ1つの、1つまたは複数の傾きのインデックス値成分と、1つまたは複数の切片のインデックス値成分とのうちの一方を決定し、1つまたは複数の論理積演算を使用して、1つまたは複数の初期化パラメータインデックス値のそのただ1つの、1つまたは複数の傾きのインデックス値成分と1つまたは複数の切片のインデックス値成分のうちの他方を決定するように構成され得る。
さらに他の例では、1つまたは複数の初期化パラメータインデックス値のそのただ1つは、所定の数のビットを含み得る。これらの例では、1つまたは複数の傾きのインデックス値成分と1つまたは複数の切片のインデックス値成分の各々は、所定の数のビットのそれぞれのサブセットを含み得る。またこれらの例では、1つまたは複数の傾きのインデックス値成分に対応するサブセットの各々は、1つまたは複数の切片のインデックス値成分に対応するサブセットの各々とは異なる数の、所定の数のビットを含み得る。
加えて、いくつかの例では、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストは、コンテキスト適応型エントロピーコーディングプロセスのコンテキストのサブセットを含み得る。たとえば、サブセットは、コンテキスト適応型エントロピーコーディングプロセスを使用してコーディングされるビデオデータと関連付けられるシンタックスタイプに対応し得る。いくつかの例では、シンタックスタイプは、ビデオデータと関連付けられる、コンポーネントタイプ、ブロックサイズ、変換サイズ、予測モード、動き情報、変換係数情報のうちの1つまたは複数を含み得る。
他の例では、エントロピー復号ユニット80を含む装置(たとえば、図1の宛先デバイス14のビデオデコーダ30)は、ビデオデコーダとして構成され得る。これらの例では、ビデオデコーダは、ビットストリーム中のビデオデータのブロックと関連付けられる1つまたは複数の符号化されたシンタックス要素を受信し、コンテキスト適応型エントロピーコーディングプロセスの初期化された1つまたは複数のコンテキストに基づいて、1つまたは複数の符号化されたシンタックス要素を復号するように構成され得る。
いくつかの例では、前に説明されたように、エントロピー復号ユニット80を含む装置(たとえば、図1の宛先デバイス14のビデオデコーダ30)は、集積回路と、マイクロプロセッサと、エントロピー復号ユニット80を含むワイヤレス通信デバイスとのうちの少なくとも1つを含み得る。
図2に関して上で説明されたのと同様の方式で、かつ、図5〜図8に関して以下で説明されるように、他の例では、ビデオデコーダ30、またはその様々なコンポーネント(たとえば、エントロピー復号ユニット80)は、コンテキスト適応型エントロピーコーディングのためのコンテキスト状態および確率の初期化に関連する他の技法を実行するように構成され得る。たとえば、この例の技法に類似する、図5に関して以下で説明される技法、および、図6〜図8に関して以下で説明される追加の技法は、ビデオデコーダ30、またはその任意のコンポーネントによって個々に、またはそれらの任意の組合せによって実行され得る。一例として、追加の技法の1つまたは複数は、1つまたは複数の初期化パラメータインデックス値に基づいてデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスのコンテキストを初期化することに関連する、この例(および図5の例)の技法と組み合わせて実行され得る。具体的には、図6〜図8に関して以下で説明される技法は、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化することに関し、他の技法を使用して決定された初期確率と比較して初期確率がより正確になるように、コンテキストの初期確率を示すコンテキストに対する初期コンテキスト状態を決定すること、または、コンテキストの初期確率を直接決定することを含む。
したがって、上の例により示されるように、かつ、図5〜図8の例により示されるように、本開示の技法は、ビデオデコーダ30、またはその任意のコンポーネントが、たとえば上で説明された符号化されたビデオデータのような様々なタイプの符号化されたデータを、他の方法を使用した場合よりも効率的に復号することを可能にし得る。一例として、上の例により示されるように(かつ図5の例により示されるように)、本技法は、ビデオデコーダ30が、コンテキスト適応型エントロピーコーディングプロセスを使用して符号化されたデータを復号する場合に、他のシステムに対して複雑さがより低くなることを可能にし得る。たとえば、本技法は、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化する目的でビデオデコーダ30に記憶される、かつ/または、ビデオエンコーダ(たとえば、ビデオエンコーダ20)からビデオデコーダ30に送信される、情報の量を減らすことができる。具体的には、情報の量は、初期化パラメータを直接記憶および/または送信するのではなく、コンテキストを初期化するために使用される初期化パラメータを示す初期化パラメータインデックス値を記憶および/または送信することによって、減らされ得る。
図2に関して上で説明されたのと同様の方式で、いくつかの例では、初期化パラメータインデックス値が初期化パラメータよりも少量の情報を使用して表されるように、初期化パラメータインデックス値を定義することによって、情報の量は減らされ得る。結果として、初期化パラメータインデックス値は、初期化パラメータのサブセットのみに対応し得る。このようにして、初期化パラメータインデックス値によって示されるように、すべてよりも少数の初期化パラメータが、コンテキストを初期化するために使用され得る。たとえば、コンテキストの一部は、共通の初期化パラメータを使用して初期化され得る。それでも、初期化パラメータのすべてではなく初期化パラメータのサブセットを使用することと関連付けられる負の影響(たとえば、各コンテキストが固有の1つまたは複数の初期化パラメータを使用して初期化される、初期化パラメータのすべてを使用して決定される場合の初期確率と比較して、コンテキストの初期確率が相対的により不正確である)は、上で説明されたように、ビデオデコーダ30に記憶される情報の量、および場合によっては、ビデオエンコーダからビデオデコーダ30に送信される情報の量が減ることを下回り得る。
このようにして、いくつかの例では、初期化パラメータのサブセットを示す初期化パラメータインデックス値、および初期化パラメータのサブセット自体が、ビデオデコーダ30に記憶されてよく、これによって、ビデオデコーダ30に記憶される情報の量が減る可能性がある。たとえば、いくつかの場合には、初期化パラメータインデックス値は、初期化パラメータよりも少量の情報を使用して表され得るので、かつ、初期化パラメータインデックス値は、初期化パラメータのサブセットのみに対応し得るので、初期化パラメータインデックス値と初期化パラメータのサブセットとをビデオデコーダ30に記憶するために使用される情報の総量は、初期化パラメータのすべてをビデオデコーダ30に記憶するために必要であろう情報の量に対して、減らされ得る。さらに、他の場合には、初期化パラメータではなく初期化パラメータインデックス値が、ビデオエンコーダからビデオデコーダ30に送信されてよく、これによって、ビデオエンコーダからビデオデコーダ30に送信される情報の総量が減る。
別の例として、図6〜図8の例により示されるように、本開示の技法は、コンテキスト適応型エントロピーコーディングプロセスを使用して、ビデオエンコーダ(たとえば、ビデオエンコーダ20)がデータを符号化するように構成されるとき、およびビデオデコーダ30が符号化されたデータを復号するように構成されるときの、データの圧縮を改善することができる。たとえば、本技法は、他のコンテキスト初期化技法を使用して決定された初期確率と比較して、1つまたは複数のコンテキストが相対的により正確な初期確率を含むように、ビデオデコーダ30またはその任意のコンポーネントがコンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化することを可能にすることによって、データの圧縮を改善することができる。加えて、いくつかの例では、本技法はさらに、他のコンテキスト確率更新技法を使用して更新された確率と比較して、更新された確率が相対的により正確になるように、ビデオデコーダ30またはその任意のコンポーネントが1つまたは複数のコンテキストの確率を後で更新することを可能にすることによって、データの圧縮を改善することができる。
したがって、本開示の技法を使用すると、ビデオデコーダ30によって復号される符号化されたデータ、またはその任意のコンポーネント、および場合によっては、ビデオエンコーダ(たとえば、ビデオエンコーダ20)からビデオデコーダ30に送信される初期化パラメータインデックス値を含むコーディングされたビットストリームのためのビットが相対的に減り、符号化されたデータを復号するために使用されるビデオデコーダ30の複雑さが相対的に低くなり得る。
このようにして、ビデオデコーダ30は、コンテキスト適応型エントロピーコーディングのための装置の例を表し、この装置は、1つまたは複数の初期化パラメータインデックス値に基づいて、コンテキスト適応型エントロピーコーディングプロセスのための1つまたは複数の初期化パラメータを決定し、1つまたは複数の初期化パラメータに基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストのための1つまたは複数の初期コンテキスト状態を決定し、1つまたは複数の初期コンテキスト状態に基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するように構成される、コーダを備える。
図4は、本開示の技法による、スケーラブルビデオコーディング(SVC)を使用してコーディングされる、コーディングされたビデオシーケンス(CVS)の時間的な階層の例を示す概念図である。図4に示されるように、CVSは、複数のビデオフレーム、すなわち、出力順序または「表示」順序と呼ばれ得る時間的順序で並べられたフレーム1〜8を含み得る。図4に示されるように、CVSがSVCを使用してコーディングされる場合、CVSのフレームの一部、すなわちフレーム0、4、および8は、CVSの「基本レイヤ」と呼ばれ得るフレームのサブセットにおいてコーディングされてよく、一方、他のフレーム、すなわち、フレーム1〜3および5〜7は、各々がCVSの「強化レイヤ」と呼ばれ得る、CVSのフレームの1つまたは複数の追加のサブセットにおいてコーディングされてよい。たとえば、CVSの基本レイヤは、ディスプレイデバイスに送信され表示され得る。加えて、CVSの強化レイヤの1つまたは複数は、基本レイヤとともに、同じディスプレイデバイスに選択的に送信され表示され得る。このようにして、上で説明された基本レイヤと1つまたは複数の強化レイヤとを備える図4のCVSは、SVCを使用してコーディングされるCVSと呼ばれ得る。
図4の例により示されるように、SVCを使用してコーディングされるCVSの特定のビデオフレームは、階層的な構造においてコーディングされ得る。図4に示されるように、フレーム0、4、および8は、特定の時間レイヤ(たとえば、「レイヤ0」)においてコーディングされよく、フレーム2および6は、別の時間レイヤ(たとえば、「レイヤ1」)においてコーディングされてよく、残りのフレーム、すなわちフレーム1、3、5、および7は、さらに別の時間レイヤ(たとえば、「レイヤ2」)においてコーディングされてよい。図4の例では、レイヤ0が基本レイヤと呼ばれてよく、レイヤ1と2の各々が強化レイヤと呼ばれてよい。さらに、図4のフレーム間の依存関係は、対称的ではないことがある。言い換えると、より低い時間レイヤ(たとえば、レイヤ0)においてコーディングされるフレームは、図4に示される矢印により示されるように、より高い時間レイヤ(たとえば、レイヤ1および2)においてコーディングされるフレームに対する参照フレームとして機能し得る。逆に、より高い時間レイヤにおいてコーディングされるフレームは、より低い時間レイヤにおいてコーディングされるフレームに対する参照フレームとして機能しないことがある。
本開示の技法によれば、たとえばSVCを使用してコーディングされるCVSのビデオフレームのような、ビデオデータと関連付けられる時間レイヤは、ビデオデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)の1つまたは複数のコンテキストを初期化するために使用され得る。たとえば、時間レイヤパラメータを使用して表され得る、ビデオデータと関連付けられる時間レイヤは、図1〜図3に関して上で説明されたように、かつ、図5〜図8の例示的な方法に関して以下でより詳しく説明されるように、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストに対する初期コンテキスト状態を決定することの一部として使用され得る。このようにして、本開示の技法は、いくつかの場合には、1つまたは複数のコンテキストに対する初期コンテキスト状態によって示される初期確率が、他の技法(たとえば、コンテキスト適応型エントロピーコーディングプロセスを使用してビデオデータをコーディングするときにビデオデータと関連付けられる時間レイヤを考慮しない技法)を使用して決定される初期確率と比較して相対的により正確になるように、1つまたは複数のコンテキストを初期化することを可能にし得る。
図5〜図8は、本開示の技法による、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストと確率とを初期化する例示的な方法を示すフローチャートである。具体的には、図5、図6、および図8の例示的な方法の技法は、データ(たとえば、ビデオデータ)をコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)の1つまたは複数のコンテキストに対する初期コンテキスト状態を決定することを含む。加えて、図7の例示的な方法の技法は、データをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストの初期確率値を決定すること、さらには、データに基づいて初期確率値を更新することを含む。
図5〜図8の技法は一般に、ハードウェアで実装されるか、ソフトウェアで実装されるか、ファームウェアで実装されるか、またはこれらの組合せで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行されてよく、ソフトウェアまたはファームウェアで実装される場合、対応するハードウェアが、ソフトウェアまたはファームウェアのための命令を実行するために設けられ得る。例示を目的に、図5〜図8の技法は、ビデオエンコーダ20(図2)のエントロピーコーディングユニット56および/またはビデオデコーダ30(図3)のエントロピー復号ユニット80に関して説明されるが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、本開示の技法から逸脱することなく、図5〜図8に示されるステップは、異なる順序で、または並列に実行されてよく、追加のステップが追加されてよく、いくつかのステップが省略されてよい。加えて、本開示の技法によれば、図5〜図8の例示的な方法の技法の1つまたは複数を、順番に、または、図5〜図8の例示的な方法の技法の1つまたは複数の他の技法と並列に実行することを含め、図5〜図8の例示的な方法の技法は、個々に、または互いに組み合わせて実行され得る。
図5〜図8の各々の例では、最初に、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80がビデオデータのブロックを受信することができる。たとえば、前に説明されたように、ブロックは、マクロブロック、またはCUのTUを備え得る。いくつかの例では、エントロピー符号化ユニット56は、コンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を使用して、ビデオデータのブロックを符号化することができる。同様に、他の例では、ブロックがビデオデータの符号化されたブロックである例では、エントロピー復号ユニット80は、エントロピー符号化ユニット56に関して上で説明されたものと同一のまたは同様のコンテキスト適応型エントロピーコーディングプロセスを使用して、ブロックを復号することができる。さらに他の例では、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、コンテキスト適応型エントロピーコーディングプロセスを使用して、他のタイプのデータ、たとえばビデオデータ以外のデータを符号化または復号することができる。このようにして、図5〜図8の例示的な方法は、コンテキスト適応型エントロピーコーディングプロセスを使用してビデオデータをコーディングするように構成される、ビデオエンコーダ、ビデオデコーダ、またはこれらの任意の組合せを含む、任意のコーディングシステムに適用可能であり得る。加えて、図5〜図8の例示的な方法は、コンテキスト適応型エントロピーコーディングプロセスを使用して、ビデオデータ以外のデータを含む多種多様なデータのいずれかをコーディングするための技法に適用可能であり得る。
図5は、本開示の技法による、1つまたは複数の初期化パラメータインデックス値に基づいてデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化する例示的な方法を示す、フローチャートである。言い換えると、図5の例示的な方法の技法は、1つまたは複数の初期化パラメータを使用してデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストの各々に対する初期コンテキスト状態を決定することを含み、1つまたは複数の初期化パラメータは、1つまたは複数の初期化パラメータインデックス値を使用して決定される。
一例として、ビデオデータのブロック、または他のタイプのデータをコーディングするために、上で説明されたようなコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を使用して、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、1つまたは複数の初期化パラメータインデックス値に基づいて、コンテキスト適応型エントロピーコーディングプロセスに対する1つまたは複数の初期化パラメータを決定することができる(500)。たとえば、1つまたは複数の初期化パラメータは、上で説明された1つまたは複数のパラメータ「m」および「n」に対応し得る。やはり上で説明されたように、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、1つまたは複数のパラメータ「m」および「n」の値を使用して、たとえば、H.264/AVCおよびHEVCのいくつかのドラフトバージョンに関して上で説明された線形の関係を使用して、コンテキスト適応型エントロピーコーディングプロセスのコンテキストに対する初期コンテキスト状態を決定することができる。さらに、本開示の技法によれば、1つまたは複数の初期化パラメータインデックス値は、1つまたは複数の初期化パラメータの値を表すために使用される情報の量よりも少量の情報(たとえば、より少数のデータのビット)を使用して表され得る。
一例では、1つまたは複数の初期化パラメータが1つまたは複数のパラメータ「m」および「n」に対応する場合、1つまたは複数のパラメータ「m」および「n」の各々の値は、8ビットのデータを使用して表され得る。結果として、この例では、特定のコンテキストを初期化するために使用されるパラメータ値の「ペア」である「m」と「n」とを各々表すために、16ビットのデータが使用される。一例として、各初期化パラメータインデックス値が、1つまたは複数のパラメータ「m」および「n」の特定の1つの値を決定するために使用される場合、各初期化パラメータインデックス値は、4ビットのデータを使用して表されてよく、パラメータ値のペア「m」と「n」とを各々決定するために8ビットのデータを使用することになる。別の例として、各初期化パラメータインデックス値が、特定のパラメータ値のペア「m」および「n」を決定するために使用される場合、各初期化パラメータインデックス値は、8ビットのデータを使用して表されてよく、やはり、パラメータ値のペア「m」と「n」とを各々決定するために8ビットのデータを使用することになる。
このようにして、特定のコンテキストを初期化するために16ビットのデータを記憶および/または送信するのではなく、8ビットのデータのみが記憶および/または送信される。さらに、1つまたは複数の初期化パラメータインデックス値は、すべての可能な初期化パラメータのサブセットのみに対応し得るので、可能な初期化パラメータのすべてよりも少数のパラメータが、コンテキストを初期化するために使用され得る。たとえば、コンテキストの一部は、共通の初期化パラメータを使用して初期化され得る。それでも、上で説明されたように、可能な初期化パラメータのすべてではなく初期化パラメータのサブセットを使用することと関連付けられる負の影響は、記憶および/または送信される情報の量が減ることを下回り得る。
エントロピー符号化ユニット56および/またはエントロピー復号ユニット80はさらに、1つまたは複数の初期化パラメータに基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するための1つまたは複数の初期コンテキスト状態を決定することができる(502)。たとえば、前に説明されたように、符号化ユニット56および/またはエントロピー復号ユニット80は、たとえば、H.264/AVCおよびHEVCのいくつかのドラフトバージョンに関して上で説明された線形の関係のような1つまたは複数の関係を使用して、1つまたは複数の初期化パラメータに基づいて、1つまたは複数の初期コンテキスト状態を決定することができる。
エントロピー符号化ユニット56および/またはエントロピー復号ユニット80はまたさらに、1つまたは複数の初期コンテキスト状態に基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化することができる(504)。たとえば、やはり前に説明されたように、符号化ユニット56および/またはエントロピー復号ユニット80は、1つまたは複数の初期コンテキスト状態の対応する1つとして、1つまたは複数のコンテキストの特定の1つのコンテキスト状態を定義することができる。やはり前に説明されたように、1つまたは複数のコンテキストの特定の1つの初期化されたコンテキスト状態が、今度は、コンテキストの初期確率を示し得る。
いくつかの例では、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80はさらに、コンテキスト適応型エントロピーコーディングプロセスの初期化された1つまたは複数のコンテキストに基づいて、データ(たとえば、ビデオデータのブロックまたは他のタイプのデータ)をエントロピーコーディングすることができる(506)。たとえば、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、上で説明された初期化された1つまたは複数のコンテキストに基づいて、コンテキスト適応型エントロピーコーディングプロセスを実行することによって、データをコーディングすることができる。前に説明されたように、データは、たとえば、ビデオデータのブロック、および/または任意の他のタイプのデータのような、ビデオデータを含み得る。加えて、他の例では、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80はまたさらに、データに基づいて、コンテキスト適応型エントロピーコーディングプロセスの初期化された1つまたは複数のコンテキストのコンテキスト状態を更新することができる(508)。たとえば、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、データに基づいて(たとえば、データの1つまたは複数の値に基づいて)、上で説明された1つまたは複数の初期コンテキスト状態によって示されるように、初期化された1つまたは複数のコンテキストの初期確率を更新することができる。
いくつかの例では、1つまたは複数の初期化パラメータは、1つまたは複数のテーブルに含まれ得る。これらの例では、1つまたは複数の初期化パラメータインデックス値に基づいて1つまたは複数の初期化パラメータを決定するために、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、1つまたは複数の初期化パラメータインデックス値を、1つまたは複数のテーブル中の1つまたは複数の初期化パラメータと対応付けることができる。
他の例では、1つまたは複数の初期化パラメータインデックス値に基づいて1つまたは複数の初期化パラメータを決定するために、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、1つまたは複数の初期化パラメータインデックス値と1つまたは複数の式とを使用して、1つまたは複数の初期化パラメータを計算することができる。たとえば、1つまたは複数の式の各々は、ビットシフト演算、加算演算、減算演算、乗算演算、および除算演算からなる群から各々選択された1つまたは複数の演算のみを使用して実施され得る。
さらに他の例では、1つまたは複数の初期化パラメータは、1つまたは複数の傾きの値と1つまたは複数の切片の値とを含んでよく、1つまたは複数の初期化パラメータインデックス値は、1つまたは複数の傾きのインデックス値と1つまたは複数の切片のインデックス値とを含んでよい。これらの例では、1つまたは複数の初期化パラメータインデックス値に基づいて1つまたは複数の初期化パラメータを決定するために、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、1つまたは複数の傾きのインデックス値に基づいて1つまたは複数の傾きの値を決定し、1つまたは複数の切片のインデックス値に基づいて1つまたは複数の切片の値を決定することができる。
いくつかの例では、1つまたは複数の初期化パラメータはやはり、1つまたは複数の傾きの値と1つまたは複数の切片の値とを含み得る。これらの例では、1つまたは複数の初期化パラメータインデックス値に基づいて1つまたは複数の初期化パラメータを決定するために、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、1つまたは複数の初期化パラメータインデックス値のただ1つに基づいて、1つまたは複数の傾きの値の少なくとも1つと1つまたは複数の切片の値の少なくとも1つとを決定することができる。言い換えると、いくつかの例では、各初期化パラメータインデックス値は、1つまたは複数の傾きの値と1つまたは複数の切片の値とを決定するために使用され得る。一例として、各初期化パラメータインデックス値は、1つまたは複数のテーブル中の、1つまたは複数の傾きの値および1つまたは複数の切片の値と対応付けられ得る。別の例として、各初期化パラメータインデックス値は、1つまたは複数の式に基づいて、1つまたは複数の傾きの値と1つまたは複数の切片の値とを計算するために使用され得る。しかしながら、他の例では、各初期化パラメータインデックス値は、以下でより詳しく説明されるように、1つまたは複数の傾きの値と1つまたは複数の切片の値とを決定するために使用され得る、1つまたは複数の成分または「サブセット」を含み得る。
たとえば、いくつかの例では、1つまたは複数の初期化パラメータインデックス値のそのただ1つは、1つまたは複数の傾きのインデックス値成分と1つまたは複数の切片のインデックス値成分とを含み得る。これらの例では、1つまたは複数の初期化パラメータインデックス値のそのただ1つに基づいて、1つまたは複数の傾きの少なくとも1つと1つまたは複数の切片の値の少なくとも1つとを決定するために、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、1つまたは複数の傾きのインデックス値成分に基づいて1つまたは複数の傾きの値の少なくとも1つを決定し、1つまたは複数の切片のインデックス値成分に基づいて1つまたは複数の切片の値の少なくとも1つを決定することができる。
さらに、他の例では、1つまたは複数の傾きのインデックス値成分に基づいて1つまたは複数の傾きの値の少なくとも1つを決定するために、かつ、1つまたは複数の切片のインデックス値成分に基づいて1つまたは複数の切片の値の少なくとも1つを決定するために、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、1つまたは複数のビットシフト演算を使用して、1つまたは複数の初期化パラメータインデックス値のそのただ1つの、1つまたは複数の傾きのインデックス値成分と、1つまたは複数の切片のインデックス値成分とのうちの一方を決定し、1つまたは複数の論理積演算を使用して、1つまたは複数の初期化パラメータインデックス値のそのただ1つの、1つまたは複数の傾きのインデックス値成分と、1つまたは複数の切片のインデックス値成分とのうちの他方を決定することができる。
さらに他の例では、1つまたは複数の初期化パラメータインデックス値のそのただ1つは、所定の数のビットを含んでよく、1つまたは複数の傾きのインデックス値成分と1つまたは複数の切片のインデックス値成分の各々は、所定の数のビットのそれぞれのサブセットを含む。いくつかの例では、1つまたは複数の傾きのインデックス値成分に対応するサブセットの各々は、1つまたは複数の切片のインデックス値成分に対応するサブセットの各々とは異なる数の、所定の数のビットを含み得る。他の例では、1つまたは複数の傾きのインデックス値成分に対応するサブセットの各々は、1つまたは複数の切片のインデックス値成分に対応するサブセットの各々と同じ数の、所定の数のビットを含み得る。
加えて、いくつかの例では、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストは、コンテキスト適応型エントロピーコーディングプロセスのコンテキストのサブセットを含み得る。たとえば、サブセットは、コンテキスト適応型エントロピーコーディングプロセスを使用してコーディングされるビデオデータと関連付けられるシンタックスタイプに対応し得る。いくつかの例では、シンタックスタイプは、ビデオデータと関連付けられる、コンポーネントタイプ、ブロックサイズ、変換サイズ、予測モード、動き情報、変換係数情報のうちの1つまたは複数を含み得る。
このようにして、図5の方法は、コンテキスト適応型エントロピーコーディングの方法の例を表し、この方法は、1つまたは複数の初期化パラメータインデックス値に基づいて、コンテキスト適応型エントロピーコーディングプロセスのための1つまたは複数の初期化パラメータを決定することと、1つまたは複数の初期化パラメータに基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するための1つまたは複数の初期コンテキスト状態を決定することと、1つまたは複数の初期コンテキスト状態に基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化することとを備える。
図6は、本開示の技法による、ビデオデータと関連付けられる時間レイヤに基づいてビデオデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化する例示的な方法を示す、フローチャートである。言い換えると、図6の例示的な方法の技法は、1つまたは複数の初期化パラメータと、ビデオデータと関連付けられる時間レイヤを示す時間レイヤパラメータとを使用して、ビデオデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストの各々に対する初期コンテキスト状態を決定することを含む。
一例として、ビデオデータのブロック、または他のタイプのデータをコーディングするために、上で説明されたようなコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を使用して、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、1つまたは複数の初期化パラメータおよびビデオデータと関連付けられる時間レイヤパラメータに基づいて、ビデオデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するための、1つまたは複数の初期コンテキスト状態を決定することができる(600)。たとえば、時間レイヤパラメータは、ビデオデータに対するシンタックス要素に対応してよく、シンタックス要素の値は、ビデオデータと関連付けられる時間レイヤを示す。図4に関して上で説明されたように、ビデオデータと関連付けられる時間レイヤは、ビデオデータと関連付けられる時間階層内でのビデオデータの(たとえば、ビデオデータの特定のビデオフレームの)位置に対応し得る。
このように、1つまたは複数の初期コンテキスト状態により示されるような、1つまたは複数のコンテキストの初期確率は、他の技法、たとえば、ビデオデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスのコンテキストに対する初期コンテキスト状態を、ビデオデータと関連付けられる時間レイヤを考慮することなく決定する技法を使用して決定されるコンテキストの初期確率と比較して、相対的により正確であり得る。
その後、図5に関して上で説明されたように、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80はさらに、1つまたは複数の初期コンテキスト状態に基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化することができる(602)。加えて、図5に関して上で説明されたのと同様の方式で、いくつかの例では、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80はさらに、コンテキスト適応型エントロピーコーディングプロセスの初期化された1つまたは複数のコンテキストに基づいて、ビデオデータをエントロピーコーディングすることができ(604)、いくつかの例では、ビデオデータに基づいて、コンテキスト適応型エントロピーコーディングプロセスの初期化された1つまたは複数のコンテキストのコンテキスト状態を更新することができる(606)。
いくつかの例では、ビデオデータは、ビデオデータのフレームとビデオデータのフレームのスライスのうちの1つを含み得る。これらの例では、時間レイヤパラメータは、ビデオデータのそれぞれのフレームの時間レイヤを含み得る。
他の例では、1つまたは複数の初期化パラメータおよび時間レイヤパラメータに基づいて1つまたは複数の初期コンテキスト状態を決定するために、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、1つまたは複数の初期化パラメータに基づいて、かつ、時間レイヤパラメータに基づいて変化するオフセットパラメータと、時間レイヤパラメータに基づいて変化する初期化量子化パラメータ値とのうちの1つに基づいて、1つまたは複数の初期コンテキスト状態を決定することができる。
いくつかの例では、1つまたは複数の初期化パラメータおよびオフセットパラメータに基づいて、1つまたは複数の初期コンテキスト状態を決定するために、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、オフセットパラメータを使用して、ビデオデータと関連付けられる量子化パラメータ値を修正することができる。他の例では、オフセットパラメータおよび初期化量子化パラメータ値の1つまたは複数の各々はさらに、ビデオデータと関連付けられる、スライスタイプ、フレームの解像度、および参照フレームリストのサイズの1つまたは複数に基づいて変化し得る。さらに、いくつかの例では、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80はさらに、ビデオデータと関連付けられる、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、および適応パラメータセット(APS)の少なくとも1つに含まれるべき、または、たとえば別のパラメータセットもしくは高水準シンタックスの位置に含まれるべき、オフセットパラメータおよび初期化量子化パラメータ値の1つまたは複数をコーディングすることができる。
加えて、いくつかの例では、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストは、コンテキスト適応型エントロピーコーディングプロセスのコンテキストのサブセットを含み得る。一例として、サブセットは、ビデオデータと関連付けられるシンタックスタイプに対応し得る。別の例として、シンタックスタイプは、ビデオデータと関連付けられる、コンポーネントタイプ、ブロックサイズ、変換サイズ、予測モード、動き情報、および変換係数情報のうちの1つまたは複数を含み得る。
このようにして、図6の方法は、コンテキスト適応型エントロピーコーディングの方法の例を表し、この方法は、1つまたは複数の初期化パラメータおよびビデオデータと関連付けられる時間レイヤパラメータに基づいてビデオデータをコーディングするために使用される、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するために、1つまたは複数の初期コンテキスト状態を決定することと、1つまたは複数の初期コンテキスト状態に基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化することとを備える。
図7は、本開示の技法による、1つまたは複数の確率オフセットに基づくコンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化する例示的な方法を示す、フローチャートである。言い換えると、図7の例示的な方法の技法は、各コンテキストの初期確率が、下限および上限によって定義される確率値の範囲全体のサブセット内に位置するように、データをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストの各々の初期確率を決定することを含む。図7の例示的な方法では、サブセットは、確率値の範囲の下限および上限の1つまたは複数の対する、1つまたは複数の確率オフセットによって定義される。
一例として、上で説明されたようなコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を使用して、ビデオデータのブロック、または他のタイプのデータをコーディングするために、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、第1の値を決定することができる(700)。たとえば、第1の値は、所与のコンテキスト確率初期化技法を使用して導出されるコンテキスト適応型エントロピーコーディングプロセスの特定のコンテキストの初期確率に対応し得る。この例では、コンテキストの初期確率は、たとえば、H.264/AVCおよびHEVCに関して上で説明されたコンテキスト確率初期化技法を使用して導出される、「デフォルト」の初期確率に対応し得る。しかしながら、他の技法とは異なり、図7の例示的な方法の技法は、第1の値とは異なる第2の値が、コンテキストの相対的により正確な(たとえば、より歪みのない)初期確率をもたらし得るかどうかを判定することと、判定に基づいて、コンテキストの初期確率として第1の値または第2の値を選択することとを含む。
たとえば、第1の値が、下限、上限、および、下限と上限の1つまたは複数に対する1つまたは複数のオフセットによって定義される値の範囲内にある場合(702、「はい」)、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80はさらに、第1の値を選択することができる(704)。しかしながら、第1の値が値の範囲の外にある場合(702、「いいえ」)、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は代わりに、第1の値とは異なる第2の値を選択することができる(706)。上で説明されたように、第2の値が、第1の値に対応する確率に対してより正確であるコンテキストの異なる確率に対応することがあり、逆に第1の値が、第2の値に対応する確率に対してより正確であるコンテキストの異なる確率に対応することがある。
このようにして、コンテキストの初期確率は、他の技法、たとえば、確率値の範囲内での初期確率の相対的な位置を考慮することなく、データをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスのコンテキストの初期確率を決定する技法を使用して決定されるコンテキストの初期確率と比較して、相対的により正確であり得る。たとえば、いくつかの技法によれば、コンテキストの初期確率は、確率値の範囲の下限と上限のいずれかに相対的に近く位置することがあり、初期確率が不正確になる可能性がある。
その後、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、選択された第1の値または第2の値に基づいて、コンテキスト適応型エントロピーコーディングプロセスのコンテキストの確率を初期化することができる(708)。たとえば、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、選択された第1の値または第2の値としてコンテキストの確率を定義することによって、コンテキストの確率を初期化することができる。
いくつかの例では、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80はさらに、コンテキスト適応型エントロピーコーディングプロセスのコンテキストの初期化された確率に基づいて、データ(たとえば、ビデオデータのブロックまたは他のタイプのデータ)をエントロピーコーディングすることができる(710)。たとえば、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、上で説明された初期化された確率に基づいて、さらには、上で説明されたのと同じまたは同様の方式で初期化されたコンテキストの1つまたは複数の他の確率に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実行することによって、データをコーディングすることができる。
加えて、他の例では、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80はまたさらに、データおよび1つまたは複数のオフセットに基づいて、コンテキスト適応型エントロピーコーディングプロセスのコンテキストの初期化された確率を更新することができる(712)。たとえば、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、図5および図6に関して上で説明されたのと同様の方式で、データに基づいて(たとえば、データの1つまたは複数の値に基づいて)コンテキストの初期化された確率を更新することができる。加えて、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80はまた、下限および上限によって定義される確率値の範囲全体の以前に説明されたサブセット内に更新された確率も位置するように、1つまたは複数のオフセットに基づいてコンテキストの初期化された確率を更新することができる。言い換えると、いくつかの例では、図7の例示的な方法の技法は、特定のコンテキストの初期確率を決定すること、さらには、コンテキストの確率を継続的に更新することに適用可能であり得る。しかしながら、他の例では、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、図5および図6に関して上で説明されたのと同様の方式で、データのみに基づいてコンテキストの初期化された確率を更新することができる。
いくつかの例では、1つまたは複数のオフセットは、第1のオフセットと第2のオフセットとを含み得る。これらの例では、第1の値が値の範囲内にある場合に第1の値を選択するために、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、第1の値が、下限に第1のオフセットを足した値よりも大きく、上限から第2のオフセットを引いた値よりも小さい場合、第1の選択することができる。いくつかの例では、第1のオフセットは第2のオフセットと等しくてよい。他の例では、第1のオフセットは第2のオフセットとは異なっていてよい。
さらに他の例では、上ですでに説明されたように、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80はさらに、1つまたは複数のオフセットに基づいて、コンテキスト適応型エントロピーコーディングプロセスのコンテキストの確率を更新することができる。
このようにして、図7の方法は、コンテキスト適応型エントロピーコーディングの方法の例を表し、この方法は、第1の値を決定することと、第1の値が、下限、上限、および下限と上限の1つまたは複数に対する1つまたは複数のオフセットによって定義される値の範囲内にある場合、第1の値を選択することと、第1の値が値の範囲の外にある場合、第1の値とは異なる第2の値を選択することと、選択された第1の値または第2の値に基づいて、コンテキスト適応型エントロピーコーディングプロセスのコンテキストの確率を初期化することとを備える。
図8は、本開示の技法による、参照コンテキスト状態と、量子化パラメータ値と、1つまたは複数の関係とに基づいて、コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化する例示的な方法を示す、フローチャートである。言い換えると、図8の例示的な方法の技法は、参照コンテキスト状態値と、対応する参照量子化パラメータ値と、1つまたは複数の関係とを各々含む、値の3つ以上のセットを使用して、ビデオデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストの各々に対する初期コンテキスト状態を決定することを含む。
一例として、ビデオデータのブロック、または他のタイプのデータをコーディングするために、上で説明されたようなコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を使用して、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、3つ以上の参照量子化パラメータ値のそれぞれ1つに各々対応する3つ以上の参照コンテキスト状態を定義する初期化パラメータと、ビデオデータと関連付けられる量子化パラメータ値とに基づいて、ビデオデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスのコンテキストを初期化するための初期コンテキスト状態を決定することができる(800)。たとえば、3つ以上の参照コンテキスト状態および対応する3つ以上の参照量子化パラメータ値は、参照コンテキスト状態値と対応する参照量子化パラメータ値とを各々が含む、値の所定の3つ以上のセット、または「ペア」であり得る。一例として、各ペアの参照コンテキスト状態値は、それぞれのペアの対応する参照量子化パラメータ値と、1つまたは複数の関係とを使用して、ステップ(800)を実行する前に導出され得る。いくつかの例では、1つまたは複数の関係は、たとえば、H.264/AVCおよびHEVCのいくつかのドラフトバージョンに関して上で説明された線形の関係、ビデオデータと関連付けられる時間レイヤを考慮する図6の例示的な方法で使用される関係、または、量子化パラメータ値に基づいてコンテキストに対するコンテキスト状態を決定するために使用される任意の他の関係を含み得る。加えて、ビデオデータと関連付けられる量子化パラメータ値は、ビデオデータの1つまたは複数のフレーム、スライス、ブロック、または他の部分と関連付けられる、量子化パラメータ値であり得る。
このように、初期コンテキスト状態により示されるようなコンテキストの初期確率は、他の技法、たとえば、ビデオデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスのコンテキストに対する初期コンテキスト状態を、傾きおよび切片の値によって定義されかつビデオデータと関連付けられる量子化パラメータによって定義される線形の関係を使用して決定する、技法を使用して決定されるコンテキストの初期確率と比較して、相対的により正確であり得る。そのような線形の関係の一例が、H.264/AVCおよびHEVCのいくつかのドラフトバージョンに関して上で説明された。図8の例示的な方法の技法によれば、コンテキストの初期確率は、初期化パラメータと、ビデオデータと関連付けられる量子化パラメータ値とを、様々な(たとえば、線形の、および非線形の)補間技法とともに使用して導出されてよく、これにより、コンテキストの初期確率が相対的により正確になり得る。
その後、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、図5および図6に関して上で説明されたのと同様の方式で、初期コンテキスト状態に基づいて、コンテキスト適応型エントロピーコーディングプロセスのコンテキストを初期化することができる(802)。加えて、やはり図5および図6に関して上で説明されたのと同様の方式で、いくつかの例では、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80はさらに、コンテキスト適応型エントロピーコーディングプロセスの初期化されたコンテキストに基づいて、ビデオデータをエントロピーコーディングすることができ(804)、いくつかの例では、ビデオデータに基づいて、コンテキスト適応型エントロピーコーディングプロセスの初期化されたコンテキストのコンテキスト状態を更新することができる(806)。
いくつかの例では、初期化パラメータおよびビデオデータと関連付けられる量子化パラメータ値に基づいて初期コンテキスト状態を決定するために、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、ビデオデータと関連付けられる量子化パラメータ値を使用して、3つ以上の参照コンテキスト状態の間と、対応する3つ以上の参照量子化パラメータ値の間とを、線形に補間することができる。たとえば、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、線形の、任意の部分的に線形の補間技法を使用して、初期化パラメータおよびビデオデータと関連付けられる量子化パラメータ値に基づいて、初期コンテキスト状態を決定することができる。
他の例では、初期化パラメータおよびビデオデータと関連付けられる量子化パラメータ値に基づいて初期コンテキスト状態を決定するために、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、3つ以上の参照コンテキスト状態の間と、対応する3つ以上の参照量子化パラメータ値との間の曲線をフィッティングし、フィッティングされた曲線とビデオデータと関連付けられる量子化パラメータ値を使用して、3つ以上の参照コンテキスト状態の間と、対応する3つ以上の量子化パラメータ値の間とを、補間することができる。たとえば、エントロピー符号化ユニット56および/またはエントロピー復号ユニット80は、スプラインベースの、バイリニアの、または任意の非線形のまたは部分的に非線形の補間技法を使用して、初期化パラメータおよびビデオデータと関連付けられる量子化パラメータ値に基づいて、初期コンテキスト状態を決定することができる。
加えて、さらに他の例では、3つ以上の参照量子化パラメータ値の各々は、「2」の整数乗である値によって、3つ以上の参照量子化パラメータ値の別の1つに対してオフセットされてよい。たとえば、上で説明されたように、第1の参照量子化パラメータ値、たとえば「QP1」は「26」に等しくてよく、第2の参照量子化パラメータ値、たとえば「QP2」は「QP1−8」、すなわち「18」に等しくてよく、第3の参照量子化パラメータ値「QP3」は「QP1+8」、すなわち「34」に等しくてよい。この例では、参照量子化パラメータ値QP1、QP2、およびQP3の各々は、「2」の整数乗である値、この場合は「8」だけ互いに対してオフセットされる。他の例では、3つ以上の参照量子化パラメータ値の各々は、「2」の整数乗である任意の他の値を含む、任意の他の値だけ、互いに対してオフセットされてよい。
このように、図8の方法は、コンテキスト適応型エントロピーコーディングの方法の例を表し、この方法は、3つ以上の参照量子化パラメータ値のそれぞれ1つに各々対応する3つ以上の参照コンテキスト状態を定義する初期化パラメータと、ビデオデータと関連付けられる量子化パラメータ値とに基づいて、ビデオデータをコーディングするために使用されるコンテキスト適応型エントロピーコーディングプロセスのコンテキストを初期化するための初期コンテキスト状態を決定することと、初期コンテキスト状態に基づいて、コンテキスト適応型エントロピーコーディングプロセスのコンテキストを初期化することとを備える。
1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。各機能は、ソフトウェアで実装される場合、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されてよく、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は全般に、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書で説明される技法の実装に適切な他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内で提供されてよく、あるいは複合コーデックに組み込まれてよい。また、本技法は、1つまたは複数の回路または論理要素中で完全に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々なコンポーネント、モジュール、またはユニットが説明されたが、それらのコンポーネント、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットが、適切なソフトウェアおよび/またはファームウェアとともに、上で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされてもよく、または相互動作可能なハードウェアユニットの集合によって与えられてもよい。
様々な例が説明されてきた。これらおよび他の例は、以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
〔1〕
コンテキスト適応型エントロピーコーディングの方法であって、
1つまたは複数の初期化パラメータインデックス値に基づいて、コンテキスト適応型エントロピーコーディングプロセスのための1つまたは複数の初期化パラメータを決定することと、
前記1つまたは複数の初期化パラメータに基づいて、前記コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するための1つまたは複数の初期コンテキスト状態を決定することと、
前記1つまたは複数の初期コンテキスト状態に基づいて、前記コンテキスト適応型エントロピーコーディングプロセスの前記1つまたは複数のコンテキストを初期化することとを備える、方法。
〔2〕
前記1つまたは複数の初期化パラメータが1つまたは複数のテーブルに含まれ、前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定することが、前記1つまたは複数の初期化パラメータインデックス値に基づいて、前記1つまたは複数のテーブル中の前記1つまたは複数の初期化パラメータを特定することを備える、〔1〕に記載の方法。
〔3〕
前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定することが、前記1つまたは複数の初期化パラメータインデックス値と1つまたは複数の式とを使用して、前記1つまたは複数の初期化パラメータを計算することを備える、〔1〕に記載の方法。
〔4〕
前記1つまたは複数の式の各々が、
ビットシフト演算と、
加算演算と、
減算演算と、
乗算演算と、
除算演算とからなる群から各々選択される1つまたは複数の演算のみを使用して実施される、〔3〕に記載の方法。
〔5〕
前記1つまたは複数の初期化パラメータが、1つまたは複数の傾きの値と1つまたは複数の切片の値とを含み、前記1つまたは複数の初期化パラメータインデックス値が、1つまたは複数の傾きのインデックス値と1つまたは複数の切片のインデックス値とを含み、前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定することが、
前記1つまたは複数の傾きのインデックス値に基づいて前記1つまたは複数の傾きの値を決定することと、
前記1つまたは複数の切片のインデックス値に基づいて前記1つまたは複数の切片の値を決定することとを備える、〔1〕に記載の方法。
〔6〕
前記1つまたは複数の初期化パラメータが、1つまたは複数の傾きの値と1つまたは複数の切片の値とを含み、前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定することが、前記1つまたは複数の初期化パラメータインデックス値のただ1つに基づいて、前記1つまたは複数の傾きの値の少なくとも1つと前記1つまたは複数の切片の値の少なくとも1つとを決定することを備える、〔1〕に記載の方法。
〔7〕
前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つが、1つまたは複数の傾きのインデックス値成分と1つまたは複数の切片のインデックス値成分とを備え、前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つに基づいて、前記1つまたは複数の傾きの値の前記少なくとも1つと前記1つまたは複数の切片の値の前記少なくとも1つとを決定することが、
前記1つまたは複数の傾きのインデックス値成分に基づいて前記1つまたは複数の傾きの値の前記少なくとも1つを決定することと、
前記1つまたは複数の切片のインデックス値成分に基づいて前記1つまたは複数の切片の値の前記少なくとも1つを決定することとを備える、〔6〕に記載の方法。
〔8〕
前記1つまたは複数の傾きのインデックス値成分に基づいて前記1つまたは複数の傾きの値の前記少なくとも1つを決定することと、前記1つまたは複数の切片のインデックス値成分に基づいて前記1つまたは複数の切片の値の前記少なくとも1つを決定することとが、
1つまたは複数のビットシフト演算を使用して、前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つの、前記1つまたは複数の傾きのインデックス値成分と前記1つまたは複数の切片のインデックス値成分の一方を決定することと、
1つまたは複数の論理積演算を使用して、前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つの、前記1つまたは複数の傾きのインデックス値成分と前記1つまたは複数の切片のインデックス値成分の他方を決定することとを備える、〔7〕に記載の方法。
〔9〕
前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つが、所定の数のビットを備え、前記1つまたは複数の傾きのインデックス値成分および前記1つまたは複数の切片のインデックス値成分の各々が、前記所定の数のビットのそれぞれのサブセットを備え、前記1つまたは複数の傾きのインデックス値成分に対応する前記サブセットの各々が、前記1つまたは複数の切片のインデックス値成分に対応する前記サブセットの各々とは異なる数の前記所定の数のビットを含む、〔7〕に記載の方法。
〔10〕
前記コンテキスト適応型エントロピーコーディングプロセスの前記1つまたは複数のコンテキストが、前記コンテキスト適応型エントロピーコーディングプロセスのコンテキストのサブセットを備える、〔1〕に記載の方法。
〔11〕
前記コンテキスト適応型エントロピーコーディングプロセスの前記初期化された1つまたは複数のコンテキストに基づいて、ビデオデータのブロックと関連付けられる1つまたは複数のシンタックス要素を符号化することと、
ビットストリーム中の前記符号化された1つまたは複数のシンタックス要素を出力することとをさらに備える、〔1〕に記載の方法。
〔12〕
ビットストリーム中のビデオデータのブロックと関連付けられる1つまたは複数の符号化されたシンタックス要素を受信することと、
前記コンテキスト適応型エントロピーコーディングプロセスの前記初期化された1つまたは複数のコンテキストに基づいて、前記1つまたは複数の符号化されたシンタックス要素を復号することとをさらに備える、〔1〕に記載の方法。
〔13〕
コンテキスト適応型エントロピーコーディングのための装置であって、
1つまたは複数の初期化パラメータインデックス値に基づいて、コンテキスト適応型エントロピーコーディングプロセスのための1つまたは複数の初期化パラメータを決定し、
前記1つまたは複数の初期化パラメータに基づいて、前記コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するための1つまたは複数の初期コンテキスト状態を決定し、
前記1つまたは複数の初期コンテキスト状態に基づいて、前記コンテキスト適応型エントロピーコーディングプロセスの前記1つまたは複数のコンテキストを初期化するように構成されるコーダを備える、装置。
〔14〕
前記1つまたは複数の初期化パラメータが1つまたは複数のテーブルに含まれ、前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定するために、前記コーダが、前記1つまたは複数の初期化パラメータインデックス値に基づいて、前記1つまたは複数のテーブル中の前記1つまたは複数の初期化パラメータを特定するように構成される、〔13〕に記載の装置。
〔15〕
前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定するために、前記コーダが、前記1つまたは複数の初期化パラメータインデックス値と1つまたは複数の式とを使用して、前記1つまたは複数の初期化パラメータを計算するように構成される、〔13〕に記載の装置。
〔16〕
前記1つまたは複数の式の各々が、
ビットシフト演算と、
加算演算と、
減算演算と、
乗算演算と、
除算演算とからなる群から各々選択される1つまたは複数の演算のみを使用して実施される、〔15〕に記載の装置。
〔17〕
前記1つまたは複数の初期化パラメータが、1つまたは複数の傾きの値と1つまたは複数の切片の値とを含み、前記1つまたは複数の初期化パラメータインデックス値が、1つまたは複数の傾きのインデックス値と1つまたは複数の切片のインデックス値とを含み、前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定するために、前記コーダが、
前記1つまたは複数の傾きのインデックス値に基づいて前記1つまたは複数の傾きの値を決定し、
前記1つまたは複数の切片のインデックス値に基づいて前記1つまたは複数の切片の値を決定するように構成される、〔13〕に記載の装置。
〔18〕
前記1つまたは複数の初期化パラメータが、1つまたは複数の傾きの値と1つまたは複数の切片の値とを含み、前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定するために、前記コーダが、前記1つまたは複数の初期化パラメータインデックス値のただ1つに基づいて、前記1つまたは複数の傾きの値の少なくとも1つと前記1つまたは複数の切片の値の少なくとも1つとを決定するように構成される、〔13〕に記載の装置。
〔19〕
前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つが、1つまたは複数の傾きのインデックス値成分と1つまたは複数の切片のインデックス値成分とを備え、前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つに基づいて、前記1つまたは複数の傾きの値の前記少なくとも1つと前記1つまたは複数の切片の値の前記少なくとも1つとを決定するために、前記コーダが、
前記1つまたは複数の傾きのインデックス値成分に基づいて前記1つまたは複数の傾きの値の前記少なくとも1つを決定し、
前記1つまたは複数の切片のインデックス値成分に基づいて前記1つまたは複数の切片の値の前記少なくとも1つを決定するように構成される、〔18〕に記載の装置。
〔20〕
前記1つまたは複数の傾きのインデックス値成分に基づいて前記1つまたは複数の傾きの値の前記少なくとも1つを決定し、前記1つまたは複数の切片のインデックス値成分に基づいて前記1つまたは複数の切片の値の前記少なくとも1つを決定するために、前記コーダが、
1つまたは複数のビットシフト演算を使用して、前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つの、前記1つまたは複数の傾きのインデックス値成分と前記1つまたは複数の切片のインデックス値成分の一方を決定し、
1つまたは複数の論理積演算を使用して、前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つの、前記1つまたは複数の傾きのインデックス値成分と前記1つまたは複数の切片のインデックス値成分の他方を決定するように構成される、〔19〕に記載の装置。
〔21〕
前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つが、所定の数のビットを備え、前記1つまたは複数の傾きのインデックス値成分および前記1つまたは複数の切片のインデックス値成分の各々が、前記所定の数のビットのそれぞれのサブセットを備え、前記1つまたは複数の傾きのインデックス値成分に対応する前記サブセットの各々が、前記1つまたは複数の切片のインデックス値成分に対応する前記サブセットの各々とは異なる数の前記所定の数のビットを含む、〔19〕に記載の装置。
〔22〕
前記コンテキスト適応型エントロピーコーディングプロセスの前記1つまたは複数のコンテキストが、前記コンテキスト適応型エントロピーコーディングプロセスのコンテキストのサブセットを備える、〔13〕に記載の装置。
〔23〕
前記コーダがビデオエンコーダを備え、前記ビデオエンコーダがさらに、
前記コンテキスト適応型エントロピーコーディングプロセスの前記初期化された1つまたは複数のコンテキストに基づいて、ビデオデータのブロックと関連付けられる1つまたは複数のシンタックス要素を符号化し、
ビットストリーム中の前記符号化された1つまたは複数のシンタックス要素を出力するように構成される、〔13〕に記載の装置。
〔24〕
前記コーダがビデオデコーダを備え、前記ビデオデコーダがさらに、
ビットストリーム中のビデオデータのブロックと関連付けられる1つまたは複数の符号化されたシンタックス要素を受信し、
前記コンテキスト適応型エントロピーコーディングプロセスの前記初期化された1つまたは複数のコンテキストに基づいて、前記1つまたは複数の符号化されたシンタックス要素を復号するように構成される、〔13〕に記載の装置。
〔25〕
集積回路と、
マイクロプロセッサと、
前記コーダを含むワイヤレス通信デバイスとのうちの少なくとも1つを備える、〔13〕に記載の装置。
〔26〕
コンテキスト適応型エントロピーコーディングのためのデバイスであって、
1つまたは複数の初期化パラメータインデックス値に基づいて、コンテキスト適応型エントロピーコーディングプロセスのための1つまたは複数の初期化パラメータを決定するための手段と、
前記1つまたは複数の初期化パラメータに基づいて、前記コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するための1つまたは複数の初期コンテキスト状態を決定するための手段と、
前記1つまたは複数の初期コンテキスト状態に基づいて、前記コンテキスト適応型エントロピーコーディングプロセスの前記1つまたは複数のコンテキストを初期化するための手段とを備える、デバイス。
〔27〕
前記1つまたは複数の初期化パラメータが1つまたは複数のテーブルに含まれ、前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定するための前記手段が、前記1つまたは複数の初期化パラメータインデックス値に基づいて、前記1つまたは複数のテーブル中の前記1つまたは複数の初期化パラメータを特定するための手段を備える、〔26〕に記載のデバイス。
〔28〕
前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定するための前記手段が、前記1つまたは複数の初期化パラメータインデックス値と1つまたは複数の式とを使用して、前記1つまたは複数の初期化パラメータを計算するための手段を備える、〔26〕に記載のデバイス。
〔29〕
前記1つまたは複数の式の各々が、
ビットシフト演算と、
加算演算と、
減算演算と、
乗算演算と、
除算演算とからなる群から各々選択される1つまたは複数の演算のみを使用して実施される、〔28〕に記載のデバイス。
〔30〕
前記1つまたは複数の初期化パラメータが、1つまたは複数の傾きの値と1つまたは複数の切片の値とを含み、前記1つまたは複数の初期化パラメータインデックス値が、1つまたは複数の傾きのインデックス値と1つまたは複数の切片のインデックス値とを含み、前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定するための前記手段が、
前記1つまたは複数の傾きのインデックス値に基づいて前記1つまたは複数の傾きの値を決定するための手段と、
前記1つまたは複数の切片のインデックス値に基づいて前記1つまたは複数の切片の値を決定するための手段とを備える、〔26〕に記載のデバイス。
〔31〕
前記1つまたは複数の初期化パラメータが、1つまたは複数の傾きの値と1つまたは複数の切片の値とを含み、前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定するための前記手段が、前記1つまたは複数の初期化パラメータインデックス値のただ1つに基づいて、前記1つまたは複数の傾きの値の少なくとも1つと前記1つまたは複数の切片の値の少なくとも1つとを決定するための手段を備える、〔26〕に記載のデバイス。
〔32〕
前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つが、1つまたは複数の傾きのインデックス値成分と1つまたは複数の切片のインデックス値成分とを備え、前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つに基づいて、前記1つまたは複数の傾きの値の前記少なくとも1つと前記1つまたは複数の切片の値の前記少なくとも1つとを決定するための前記手段が、
前記1つまたは複数の傾きのインデックス値成分に基づいて前記1つまたは複数の傾きの値の前記少なくとも1つを決定するための手段と、
前記1つまたは複数の切片のインデックス値成分に基づいて前記1つまたは複数の切片の値の前記少なくとも1つを決定するための手段とを備える、〔31〕に記載のデバイス。
〔33〕
前記1つまたは複数の傾きのインデックス値成分に基づいて前記1つまたは複数の傾きの値の前記少なくとも1つを決定するための前記手段と、前記1つまたは複数の切片のインデックス値成分に基づいて前記1つまたは複数の切片の値の前記少なくとも1つを決定するための前記手段とが、
1つまたは複数のビットシフト演算を使用して、前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つの、前記1つまたは複数の傾きのインデックス値成分と前記1つまたは複数の切片のインデックス値成分の一方を決定するための手段と、
1つまたは複数の論理積演算を使用して、前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つの、前記1つまたは複数の傾きのインデックス値成分と前記1つまたは複数の切片のインデックス値成分の他方を決定するための手段とを備える、〔32〕に記載のデバイス。
〔34〕
前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つが、所定の数のビットを備え、前記1つまたは複数の傾きのインデックス値成分および前記1つまたは複数の切片のインデックス値成分の各々が、前記所定の数のビットのそれぞれのサブセットを備え、前記1つまたは複数の傾きのインデックス値成分に対応する前記サブセットの各々が、前記1つまたは複数の切片のインデックス値成分に対応する前記サブセットの各々とは異なる数の前記所定の数のビットを含む、〔32〕に記載のデバイス。
〔35〕
前記コンテキスト適応型エントロピーコーディングプロセスの前記1つまたは複数のコンテキストが、前記コンテキスト適応型エントロピーコーディングプロセスのコンテキストのサブセットを備える、〔26〕に記載のデバイス。
〔36〕
前記コンテキスト適応型エントロピーコーディングプロセスの前記初期化された1つまたは複数のコンテキストに基づいて、ビデオデータのブロックと関連付けられる1つまたは複数のシンタックス要素を符号化するための手段と、
ビットストリーム中の前記符号化された1つまたは複数のシンタックス要素を出力するための手段とをさらに備える、〔26〕に記載のデバイス。
〔37〕
ビットストリーム中のビデオデータのブロックと関連付けられる1つまたは複数の符号化されたシンタックス要素を受信するための手段と、
前記コンテキスト適応型エントロピーコーディングプロセスの前記初期化された1つまたは複数のコンテキストに基づいて、前記1つまたは複数の符号化されたシンタックス要素を復号するための手段とをさらに備える、〔26〕に記載のデバイス。
〔38〕
実行されると、1つまたは複数のプロセッサにコンテキスト適応型エントロピーコーディングを実行させる命令を記憶した、非一時的コンピュータ可読記憶媒体であって、前記命令が、前記1つまたは複数のプロセッサに、
1つまたは複数の初期化パラメータインデックス値に基づいて、コンテキスト適応型エントロピーコーディングプロセスのための1つまたは複数の初期化パラメータを決定させ、
前記1つまたは複数の初期化パラメータに基づいて、前記コンテキスト適応型エントロピーコーディングプロセスの1つまたは複数のコンテキストを初期化するための1つまたは複数の初期コンテキスト状態を決定させ、
前記1つまたは複数の初期コンテキスト状態に基づいて、前記コンテキスト適応型エントロピーコーディングプロセスの前記1つまたは複数のコンテキストを初期化させる、非一時的コンピュータ可読記憶媒体。
〔39〕
前記1つまたは複数の初期化パラメータが1つまたは複数のテーブルに含まれ、前記1つまたは複数のプロセッサに、前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定させる前記命令が、前記1つまたは複数のプロセッサに、前記1つまたは複数の初期化パラメータインデックス値に基づいて、前記1つまたは複数のテーブル中の前記1つまたは複数の初期化パラメータを特定させる命令を備える、〔38〕に記載の非一時的コンピュータ可読記憶媒体。
〔40〕
前記1つまたは複数のプロセッサに、前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定させる前記命令が、前記1つまたは複数のプロセッサに、前記1つまたは複数の初期化パラメータインデックス値と1つまたは複数の式とを使用して、前記1つまたは複数の初期化パラメータを計算させる命令を備える、〔38〕に記載の非一時的コンピュータ可読記憶媒体。
〔41〕
前記1つまたは複数の式の各々が、
ビットシフト演算と、
加算演算と、
減算演算と、
乗算演算と、
除算演算とからなる群から各々選択される1つまたは複数の演算のみを使用して実施される、〔40〕に記載の非一時的コンピュータ可読記憶媒体。
〔42〕
前記1つまたは複数の初期化パラメータが、1つまたは複数の傾きの値と1つまたは複数の切片の値とを含み、前記1つまたは複数の初期化パラメータインデックス値が、1つまたは複数の傾きのインデックス値と1つまたは複数の切片のインデックス値とを含み、前記1つまたは複数のプロセッサに、前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定させる前記命令が、前記1つまたは複数のプロセッサに、
前記1つまたは複数の傾きのインデックス値に基づいて前記1つまたは複数の傾きの値を決定させ、
前記1つまたは複数の切片のインデックス値に基づいて前記1つまたは複数の切片の値を決定させる命令を備える、〔38〕に記載の非一時的コンピュータ可読記憶媒体。
〔43〕
前記1つまたは複数の初期化パラメータが、1つまたは複数の傾きの値と1つまたは複数の切片の値とを含み、前記1つまたは複数のプロセッサに、前記1つまたは複数の初期化パラメータインデックス値に基づいて前記1つまたは複数の初期化パラメータを決定させる前記命令が、前記1つまたは複数のプロセッサに、前記1つまたは複数の初期化パラメータインデックス値のただ1つに基づいて、前記1つまたは複数の傾きの値の少なくとも1つと前記1つまたは複数の切片の値の少なくとも1つとを決定させる命令を備える、〔38〕に記載の非一時的コンピュータ可読記憶媒体。
〔44〕
前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つが、1つまたは複数の傾きのインデックス値成分と1つまたは複数の切片のインデックス値成分とを備え、前記1つまたは複数のプロセッサに、前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つに基づいて、前記1つまたは複数の傾きの値の前記少なくとも1つと前記1つまたは複数の切片の値の前記少なくとも1つとを決定させる前記命令が、前記1つまたは複数のプロセッサに、
前記1つまたは複数の傾きのインデックス値成分に基づいて前記1つまたは複数の傾きの値の前記少なくとも1つを決定させ、
前記1つまたは複数の切片のインデックス値成分に基づいて前記1つまたは複数の切片の値の前記少なくとも1つを決定させる命令を備える、〔43〕に記載の非一時的コンピュータ可読記憶媒体。
〔45〕
前記1つまたは複数のプロセッサに、前記1つまたは複数の傾きのインデックス値成分に基づいて前記1つまたは複数の傾きの値の前記少なくとも1つを決定させ、前記1つまたは複数の切片のインデックス値成分に基づいて前記1つまたは複数の切片の値の前記少なくとも1つを決定させる前記命令が、前記1つまたは複数のプロセッサに、
1つまたは複数のビットシフト演算を使用して、前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つの、前記1つまたは複数の傾きのインデックス値成分と前記1つまたは複数の切片のインデックス値成分の一方を決定させ、
1つまたは複数の論理積演算を使用して、前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つの、前記1つまたは複数の傾きのインデックス値成分と前記1つまたは複数の切片のインデックス値成分の他方を決定させる命令を備える、〔44〕に記載の非一時的コンピュータ可読記憶媒体。
〔46〕
前記1つまたは複数の初期化パラメータインデックス値の前記ただ1つが、所定の数のビットを備え、前記1つまたは複数の傾きのインデックス値成分および前記1つまたは複数の切片のインデックス値成分の各々が、前記所定の数のビットのそれぞれのサブセットを備え、前記1つまたは複数の傾きのインデックス値成分に対応する前記サブセットの各々が、前記1つまたは複数の切片のインデックス値成分に対応する前記サブセットの各々とは異なる数の前記所定の数のビットを含む、〔44〕に記載の非一時的コンピュータ可読記憶媒体。
〔47〕
前記コンテキスト適応型エントロピーコーディングプロセスの前記1つまたは複数のコンテキストが、前記コンテキスト適応型エントロピーコーディングプロセスのコンテキストのサブセットを備える、〔38〕に記載の非一時的コンピュータ可読記憶媒体。
〔48〕
前記1つまたは複数のプロセッサに、
前記コンテキスト適応型エントロピーコーディングプロセスの前記初期化された1つまたは複数のコンテキストに基づいて、ビデオデータのブロックと関連付けられる1つまたは複数のシンタックス要素を符号化させ、
ビットストリーム中の前記符号化された1つまたは複数のシンタックス要素を出力させる命令をさらに備える、〔38〕に記載の非一時的コンピュータ可読記憶媒体。
〔49〕
前記1つまたは複数のプロセッサに、
ビットストリーム中のビデオデータのブロックと関連付けられる1つまたは複数の符号化されたシンタックス要素を受信させ、
前記コンテキスト適応型エントロピーコーディングプロセスの前記初期化された1つまたは複数のコンテキストに基づいて、前記1つまたは複数の符号化されたシンタックス要素を復号させる命令をさらに備える、〔38〕に記載の非一時的コンピュータ可読記憶媒体。