[0027]全般に、本開示は、高効率ビデオコード化(HEVC)及び他のビデオコード化規格におけるイントラ予測を改善するための技法を説明する。イントラ予測は、現在のピクチャ中のサンプル値に基づいて、現在のピクチャのビデオブロックのための予測ブロックを生成する処理である。従って、現在のピクチャのビデオブロックがイントラ予測を使用して符号化されるとき、ビデオエンコーダは、ビデオブロックのための予測ブロックを生成し、又は別様に特定するために、他のピクチャからのサンプル値を使用しない。
[0028]予測ブロックを生成した後で、ビデオエンコーダは、残差サンプルのブロック(即ち、残差ブロック)を決定するために、予測ブロックを使用することができる。残差ブロック中の残差サンプルは、予測ブロック中のサンプルとビデオブロックの対応する元のサンプルとの差を示し得る。ビデオエンコーダは、残差ブロックに変換を適用することによって、変換係数ブロックを生成することができる。変換は、残差サンプルを画素領域から変換領域に転換し得る。ビデオエンコーダは次いで、変換係数のビット深度を低減するために、変換係数ブロック中の変換係数を量子化することができる。ビデオエンコーダは、量子化された変換係数を表すシンタックス要素をエントロピー符号化し、得られたエントロピー符号化されたシンタックス要素をビットストリームに含めることができる。
[0029]ビデオデコーダは、この処理の逆を実行することができる。即ち、ビデオデコーダは、量子化された変換係数を決定するために、ビットストリーム中のシンタックス要素をエントロピー復号することができる。ビデオデコーダは次いで、変換係数を決定するために、量子化された変換係数を逆量子化することができる。更に、ビデオデコーダは、残差ブロックを決定するために、逆変換を変換係数に適用することができる。加えて、ビデオデコーダは、予測ブロックを(例えば、イントラ予測を使用して)決定することができる。ビデオデコーダは、ビデオブロックのサンプルを再構成するために、予測ブロック中のサンプルと残差ブロック中の対応する残差サンプルとを使用することができる。
[0030]変換の適用及び量子化の使用は情報の損失を引き起こす。従って、ビデオデコーダによって再構成されるビデオブロックのサンプルは、ビデオブロックの元のサンプルと同じレベルの精度を有しないことがある。従って、変換の適用及び量子化の使用は、ある形態の「非可逆」コード化であり得る。幾つかの例では、ビデオエンコーダは、可逆符号化を使用してビデオブロックを符号化することができる。ビデオエンコーダが可逆符号化を使用してビデオブロックを符号化するとき、ビデオエンコーダは、変換を残差サンプルに適用せず、残差サンプルを量子化しない。同様に、ビデオデコーダは、逆量子化又は逆変換を適用しない。結果として、ビデオデコーダによって再構成されるビデオブロックのサンプルは、ビデオブロックの元のサンプルと同じレベルの精度を有し得る。
[0031]他の例では、ビデオエンコーダは、ビデオエンコーダが変換を残差サンプルに適用しないが残差サンプルを量子化する、ある種の非可逆コード化(lossy coding)を実行することができる。同様に、ビデオデコーダは、逆量子化を残差サンプルに適用することができ、逆変換を残差サンプルに適用しない。ビデオエンコーダはそれでも量子化を残差サンプルに適用するので、ビデオデコーダによって再構成されるサンプルは、元のサンプルよりも低い精度を有し得るが、精度の損失は、変換が適用された場合よりも場合によっては少なくなり得る。
[0032]上で示されたように、ビデオコーダ(例えば、ビデオエンコーダ又はビデオデコーダ)は、予測ブロックを生成するためにイントラ予測を使用し得る。より具体的には、ビデオコーダは、予測ブロックを生成するために、複数の利用可能なイントラ予測モードの中から特定のイントラ予測モードを使用する。HEVC及び他のビデオコード化規格では、イントラ予測モードは、複数の方向的イントラ予測モード(directional intra prediction modes)と、平面的イントラ予測モードと、DCイントラ予測モードとを含む。一般に、ビデオコーダが平面的イントラ予測モードを使用して予測ブロックを生成するとき、予測ブロックのサンプルは、線形投影(linear projections)の組合せに基づいて決定され得る。ビデオコーダがDCイントラ予測モードを使用して予測ブロックを生成するとき、ビデオコーダは、DCイントラ予測値を決定することができる。DCイントラ予測値は、予測ブロックの左端及び上端に隣接するサンプルの平均値であり得る。ビデオコーダは、DCイントラ予測値に等しく予測ブロック中の各サンプル値を設定することができる。
[0033]本開示の幾つかの技法は、ビデオコーダが可逆コード化(lossless coding)を使用するときに、DCイントラ予測モードに改善をもたらす。可逆コード化では、ビデオエンコーダは、予測ブロック中のサンプルの値を決定するためにDCイントラ予測モードを使用するとき、サンプルの元の値を使用することができる。非可逆コード化では、ビデオデコーダは、予測ブロック中のサンプルの値を決定するためにDCイントラ予測を使用するとき、サンプルの元の値を入手できない。しかしながら、可逆コード化では、ビデオデコーダは、予測ブロック中の値を決定するためにDCイントラ予測を使用するとき、サンプルの再構成された値を入手できる。可逆コード化では、サンプルの再構成された値は、サンプルの元の値と同じである。
[0034]本明細書で説明されるように、ビデオコーダは予測ブロックを生成することができる。予測ブロックを生成することの一部として、ビデオコーダは、現在のサンプルのDC予測のために、予測ブロックの現在の行の中の現在のサンプルの左にある可逆的に再構成されたサンプルと、現在の行の上の予測ブロックの行のための可逆的に再構成されたサンプルとの少なくとも1つを使用することができる。更に、幾つかの例では、このことは、ビデオデコーダが予測ブロック中のサンプル値の決定をパイプライン化することを可能にし得る。
[0035]更に、上で示されたように、ビデオエンコーダは、量子化が使用されるが変換がスキップされる形態の非可逆コード化を実行することができ、これは変換スキップコード化と呼ばれ得る。本開示の1つ又は複数の追加の技法によれば、ビデオエンコーダは、変換されないが量子化される、コード化のための残差サンプルを準備するために、ある形態の残差差動パルス符号変調(DPCM)を適用することができる。この形態の残差DPCMは、本開示の他の箇所で詳細に説明される。非可逆イントラコード化においてDPCMを使用するための他の提案とは対照的に、本開示で説明されるこの形態の残差DPCMは、ビデオエンコーダ及び/又はビデオデコーダのスループットを向上させ得る。
[0036]上で示されたように、ビデオエンコーダは、量子化された変換係数を表すシンタックス要素をエントロピー符号化することができる。可逆コード化において、又は変換がスキップされるときは非可逆コード化において、同じシンタックス要素が残差サンプルを表すために使用され得る。HEVC及び他のビデオコード化規格では、変換係数又は残差サンプルを表すシンタックス要素は、変換係数又は残差サンプルが正か負かを示す記号シンタックス要素を含み得る。幾つかの例では、変換係数又は残差サンプルが正か負かを示すために記号シンタックス要素を含めることは不要であり得る。むしろ、変換係数又は残差サンプルが正か負かを示す情報は、変換係数又は残差サンプルのための他のシンタックス要素の値に埋め込まれ得る。記号シンタックス要素を信号伝達(signaling)する代わりに、他のシンタックス要素の値へそのような情報を埋め込むことは、記号データ隠匿と呼ばれ得る。
[0037]しかしながら、記号データ隠匿は、変換がスキップされ、平面的イントラ予測モード、DCイントラ予測モード(例えば、予測ブロック中のサンプルに対応する再構成されたサンプルが予測ブロック中の予測サンプルの値を決定するために使用される、DCイントラ予測モード)、又は残差DPCMが使用される、非可逆コード化を使用してコード化されるブロックに対しては、実装することが困難であり得る。更に、変換スキップコード化では、記号データ隠匿は、残差DPCMが適用されるときに合成される残差値に誤差をもたらし得る。そのような誤差は、後続の残差サンプルに伝播し、性能の劣化をもたらし得る。従って、本開示の1つ又は複数の技法によれば、記号データ隠匿は、記号データ隠匿がそのようなブロックに対して有効にされることを1つ又は複数のシンタックス要素が示す場合であっても、そのようなブロックに対して規範的に無効にされ得る。
[0038]例えば、幾つかの例では、現在のブロックが残差データへの変換の適用を伴わずに非可逆コード化を使用して生成され、残差DPCMが使用されるイントラ予測モードを使用して現在のブロックがイントラ予測される場合、記号データ隠匿が現在のブロックに対して無効にされることを、ビデオデコーダは決定する。そのような例では、記号データ隠匿が現在のブロックに対して無効にされるとき、ビデオデコーダは、ビットストリームから、ブロック中の各々のそれぞれの有意な値に対して、それぞれの有意な値が正か負かを示すそれぞれのシンタックス要素を取得することができる。
[0039]図1は、本開示の技法を利用できる例示的なビデオコード化システム10を示すブロック図である。本明細書で説明されるように、「ビデオコーダ」という用語は、総称的にビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコード化」又は「コード化」という用語は、ビデオ符号化又はビデオ復号を総称的に指し得る。
[0040]図1に示されるように、ビデオコード化システム10は、発信源機器12と宛先機器14とを含む。発信源機器12は、符号化されたビデオデータを生成する。従って、発信源機器12は、ビデオ符号化機器又はビデオ符号化装置と呼ばれ得る。宛先機器14は、発信源機器12によって生成された符号化されたビデオデータを復号することができる。従って、宛先機器14は、ビデオ復号機器又はビデオ復号装置と呼ばれ得る。発信源機器12及び宛先機器14は、ビデオコード化機器又はビデオコード化装置の例であり得る。
[0041]発信源機器12及び宛先機器14は、デスクトップコンピュータ、モバイルコンピューティング機器、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲の機器を備え得る。
[0042]宛先機器14は、チャネル16を介して発信源機器12から符号化されたビデオデータを受信し得る。チャネル16は、発信源機器12から宛先機器14に符号化されたビデオデータを移すことが可能な1つ又は複数の媒体又は機器を備え得る。一例では、チャネル16は、発信源機器12が符号化されたビデオデータを宛先機器14にリアルタイムで直接送信することを可能にする1つ又は複数の通信媒体を備え得る。この例では、発信源機器12は、ワイヤレス通信プロトコルなどの通信規格に従って、符号化されたビデオデータを変調することができ、変調されたビデオデータを宛先機器14に送信することができる。1つ又は複数の通信媒体は、高周波(RF)スペクトル又は1つ又は複数の物理伝送線路のような、ワイヤレス及び/又は有線の通信媒体を含み得る。1つ又は複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はグローバルネットワーク(例えば、インターネット)のような、パケットベースネットワークの一部を形成し得る。チャネル16は、発信源機器12から宛先機器14への通信を容易にするルータ、スイッチ、基地局、又は他の機器のような、様々なタイプの機器を含み得る。
[0043]別の例では、チャネル16は、発信源機器12によって生成された符号化されたビデオデータを記憶する記憶媒体を含み得る。この例では、宛先機器14は、例えば、ディスクアクセス又はカードアクセスを介して、記憶媒体にアクセスし得る。記憶媒体は、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、又は符号化されたビデオデータを記憶するための他の適切なデジタル記憶媒体のような、種々のローカルにアクセスされるデータ記憶媒体を含み得る。
[0044]更なる例では、チャネル16は、発信源機器12によって生成された符号化されたビデオデータを記憶するファイルサーバ又は別の中間記憶装置を含み得る。この例では、宛先機器14は、ストリーミング又はダウンロードを介して、ファイルサーバ又は他の中間記憶装置に記憶された、符号化されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶することと、符号化されたビデオデータを宛先機器14に送信することとが可能なタイプのサーバであり得る。例示的なファイルサーバは、(例えば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続記憶(NAS)装置、ローカルディスクドライブなどを含む。
[0045]宛先機器14は、インターネット接続のような標準的なデータ接続を通じて、符号化されたビデオデータにアクセスし得る。例示的なタイプのデータ接続は、ファイルサーバに記憶されている符号化されたビデオデータにアクセスするのに適した、ワイヤレスチャネル(例えば、Wi−Fi(登録商標)接続)、有線接続(例えば、DSL、ケーブルモデムなど)、又はその両方の組合せを含み得る。ファイルサーバからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、又は両方の組合せであり得る。
[0046]本開示の技法は、ワイヤレスの用途又は設定に限定されない。本技法は、無線テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、又は他の用途などの様々なマルチメディア用途をサポートするビデオコード化に適用され得る。幾つかの例では、ビデオコード化システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、及び/又はビデオ電話などの用途をサポートするために、単方向又は双方向のビデオ送信をサポートするように構成され得る。
[0047]図1の例では、発信源機器12は、ビデオ発信源18と、ビデオエンコーダ20と、出力インターフェース22とを含む。幾つかの例では、出力インターフェース22は、変調器/復調器(モデム)及び/又は送信機を含み得る。ビデオ発信源18は、ビデオキャプチャ機器、例えばビデオカメラ、以前に撮影されたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するビデオフィードインターフェース、及び/又は、ビデオデータを生成するためのコンピュータグラフィックスシステム、若しくはそのようなビデオデータの発信源の組合せを含み得る。
[0048]ビデオエンコーダ20は、ビデオ発信源18からのビデオデータを符号化することができる。幾つかの例では、発信源機器12は、出力インターフェース22を介して宛先機器14に符号化されたビデオデータを直接送信する。他の例では、符号化されたビデオデータはまた、復号及び/又は再生のための宛先機器14による後のアクセスのために記憶媒体又はファイルサーバ上に記憶され得る。
[0049]図1の例では、宛先機器14は、入力インターフェース28と、ビデオデコーダ30と、表示装置32とを含む。幾つかの例では、入力インターフェース28は、受信機及び/又はモデムを含む。入力インターフェース28は、チャネル16を通じて符号化されたビデオデータを受信し得る。表示装置32は、宛先機器14に統合されることがあり、又はその外部にあることがある。一般に、表示装置32は、復号されたビデオデータを表示する。表示装置32は、液晶表示器(LCD)、プラズマ表示器、有機発光ダイオード(OLED)表示器、又は別のタイプの表示装置のような、様々な表示装置を備え得る。
[0050]図1は例にすぎず、本開示の技法は、ビデオ符号化機器とビデオ復号機器との間のデータ通信を必ずしも含まないビデオコード化設定(例えば、ビデオ符号化又はビデオ復号)に適用され得る。他の例では、データがローカルメモリから取り出されること、ネットワークを通じてストリーミングされることなどが行われる。ビデオ符号化機器はデータを符号化し、メモリに記憶することができ、及び/又は、ビデオ復号機器はメモリからデータを取り出し、復号することができる。多くの例では、ビデオ符号化及びビデオ復号は、互いに通信しないが、メモリにデータを符号化し、及び/又はメモリからデータを取り出して復号するだけである、機器によって実行される。
[0051]ビデオエンコーダ20及びビデオデコーダ30は各々、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ハードウェアのような、様々な好適な回路のいずれか、又はそれらの任意の組合せとして実装され得る。本技法がソフトウェアにおいて部分的に実装される場合、機器は、適切な非一時的コンピュータ可読記憶媒体にソフトウェアのための命令を記憶することができ、本開示の技法を実行するために、1つ又は複数のプロセッサを使用してその命令をハードウェア中で実行することができる。(ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組合せなどを含む)上記のいずれもが、1つ又は複数のプロセッサであると見なされ得る。ビデオエンコーダ20及びビデオデコーダ30の各々は、1つ又は複数のエンコーダ又はデコーダに含まれることがあり、両者のいずれかがそれぞれの機器内の複合エンコーダ/デコーダ(CODEC)の一部として組み込まれることがある。
[0052]本開示は一般に、特定の情報を「信号伝達する(signaling)」ビデオエンコーダ20に言及し得る。「信号伝達」という用語は一般に、圧縮されたビデオデータを復号するために使用されるシンタックス要素及び/又は他のデータの通信を指し得る。そのような通信は、リアルタイム又はほぼリアルタイムで発生し得る。代替的に、そのような通信は、符号化のときに符号化されたビットストリーム中でシンタックス要素をコンピュータ可読記憶媒体に記憶するときに発生し得るなど、ある長さの時間にわたって発生することがあり、次いで、ビデオ復号機器が、シンタックス要素を、この媒体に記憶された後の任意の時間に取り出し得る。
[0053]幾つかの例では、ビデオエンコーダ20及びビデオデコーダ30は、高効率ビデオコード化(HEVC)規格などのビデオ圧縮規格に従って動作する。「HEVCワーキングドラフト(Working Draft)6」と呼ばれるHEVC規格のドラフトは、Bross他、「High Efficiency Video Coding (HEVC) text specification draft 6」、ITU−T SG16 WP3及びISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT−VC)、第7回会議:ジュネーブ、スイス、2011年11月に記載されており、その内容の全体が参照によって本明細書に組み込まれる。2013年4月5日時点で、HEVCワーキングドラフト6は、http://phenix.int−evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC−H1003−v22.zipからダウンロード可能である。「HEVCワーキングドラフト9」と呼ばれるHEVC規格の別のドラフトは、Bross他、「High Efficiency Video Coding (HEVC) text specification draft 9」、ITU−T SG16 WP3及びISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT−VC)、第11回会議:上海、中国、2012年10月に記載されており、その内容の全体が参照によって本明細書に組み込まれる。2014年3月24日時点で、HEVCワーキングドラフト9は、http://phenix.int−evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC−K1003−v8.zipからダウンロード可能である。「HEVCワーキングドラフト10」と呼ばれるHEVCの別のドラフトは、Bross他、「High Efficiency Video Coding(HEVC) text specification draft 10(for FDIS & Consent)」、ITU−T SG16 WP3及びISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT−VC)、第12回会議:ジュネーブ、スイス、2013年1月14〜23日に記載されており、その内容の全体が参照によって本明細書に組み込まれる。2014年3月24日時点で、HEVCワーキングドラフト10は、http://phenix.int−evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC−L1003−v20.zipからダウンロード可能である。しかしながら、本開示の技法は、いかなる特定のコード化規格又はコード化技法にも限定されない。
[0054]更に、範囲拡張規格が、HEVCのために開発されている。範囲拡張規格は、4:0:0、4:2:0、4:2:2、及び4:4:4のクロマサンプリングのような、代替的なサンプリングモードを規定する。Flynn他、「High Efficiency Video Coding(HEVC) Range Extensions text specification:Draft 3」、ITU−T SG16 WP3及びISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT−VC)、第13回会議:仁川、韓国、2013年4月18〜26日(以後、「JCTVC−M1005_v2」)が、HEVCのための範囲拡張規格のドラフトである。2014年3月24日現在、JCTVC−M1005_v2は、http://phenix.int−evry.fr/jct/doc_end_user/documents/13_Incheon/pending/JCTVC−M1005−v2.zipにおいて利用可能である。JCTVC−M1005_v2の内容全体が、参照によって本明細書に組み込まれる。
[0055]上で簡単に言及されたように、ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは、1つ又は複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。ビデオエンコーダ20がビデオデータを符号化するとき、ビデオエンコーダ20はビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化された表現を形成する、ビットのシーケンスを含み得る。ビットストリームは、コード化されたピクチャと、関連付けられるデータとを含み得る。コード化されたピクチャは、ピクチャのコード化された表現である。関連付けられるデータは、シーケンスパラメータセット(SPS)と、ピクチャパラメータセット(PPS)と、他のシンタックス構造とを含み得る。SPSは、0個以上のピクチャのシーケンスに適用可能なパラメータを含み得る。PPSは、0個以上のピクチャに適用可能なパラメータを含み得る。
[0056]ピクチャは、SL、SCb、及びSCrと示される3つのサンプルアレイを含み得る。SLは、ルーマサンプルの2次元アレイ(即ち、ブロック)である。ルーマサンプルは、本明細書では「Y」サンプルと呼ばれることもある。SCbは、Cbクロミナンスサンプルの2次元アレイである。SCrは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルとも呼ばれることもある。Cbクロミナンスサンプルは、本明細書では「Uサンプル」と呼ばれることがある。Crクロミナンスサンプルは、本明細書では「Vサンプル」と呼ばれることがある。
[0057]幾つかの例において、ビデオエンコーダ20は、ピクチャのクロマアレイ(即ち、SCb及びSCr)をダウンサンプリングすることができる。例えば、ビデオエンコーダ20は、YUV4:2:0ビデオフォーマット、YUV4:2:2ビデオフォーマット、又は4:4:4ビデオフォーマットを使用することができる。YUV4:2:0ビデオフォーマットにおいて、ビデオエンコーダ20は、クロマアレイの高さ及び幅がルーマアレイの2分の1になるようにクロマアレイをダウンサンプリングすることができる。YUV4:2:2ビデオフォーマットにおいて、ビデオエンコーダ20は、クロマアレイの幅がルーマアレイの2分の1になり、クロマアレイの高さがルーマアレイと同じになるようにクロマアレイをダウンサンプリングすることができる。YUV4:4:4ビデオフォーマットにおいて、ビデオエンコーダ20は、クロマアレイをダウンサンプリングしない。
[0058]ピクチャの符号化された表現を生成するために、ビデオエンコーダ20はコード化ツリー単位(CTU)のセットを生成し得る。CTUの各々は、ルーマサンプルのコード化ツリーブロック、クロマサンプルの2つの対応するコード化ツリーブロック、及びコード化ツリーブロックのサンプルをコード化するために使用されるシンタックス構造であり得る。コード化ツリーブロックは、サンプルのN×Nのブロックであり得る。CTUは「ツリーブロック」又は「最大コード化単位」(LCU)とも呼ばれることがある。HEVCのCTUは、H.264/AVCのような、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、CTUは、必ずしも特定のサイズには限定されず、1つ又は複数のコード化単位(CU)を含み得る。
[0059]ピクチャを符号化することの一部として、ビデオエンコーダ20は、ピクチャの各スライスの符号化された表現(即ち、コード化されたスライス)を生成することができる。コード化されたスライスを生成するために、ビデオエンコーダ20は、一連のCTUを符号化することができる。本開示は、CTUの符号化された表現をコード化されたCTUと呼ぶことがある。幾つかの例では、スライスの各々は、整数個のコード化されたCTUを含む。
[0060]コード化されたCTUを生成するために、ビデオエンコーダ20は、コード化ツリーブロックをコード化ブロックに分割するように、CTUのコード化ツリーブロックに対して4分木区分を再帰的に実行することができ、従って「コード化ツリー単位」という名称である。コード化ブロックは、サンプルのN×Nのブロックである。CUは、ルーマサンプルアレイと、Cbサンプルアレイ及びCrサンプルアレイと、コード化ブロックのサンプルをコード化するために使用されるシンタックス構造とを有するピクチャの、ルーマサンプルの1つのコード化ブロック及びクロマサンプルの2つの対応するコード化ブロックであり得る。モノクロームピクチャでは、又は別々のカラープレーンを使用してコード化されるピクチャでは、CUは、サンプルの単一のコード化ブロックと、コード化ブロックをコード化するために使用されるシンタックス構造とからなり得る。ビデオエンコーダ20は、CUのコード化ブロックを1つ又は複数の予測ブロックに区分することができる。予測ブロックは、同じ予測が適用されるサンプルの矩形(即ち、正方形又は非正方形)ブロックであり得る。CUの予測単位(PU)は、ルーマサンプルの予測ブロック、ピクチャのクロマサンプルの2つの対応する予測ブロック、予測ブロックサンプルを予測するために使用されるシンタックス構造であり得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、及びCr予測ブロックのための、予測ルーマブロック、予測Cbブロック、及び予測Crブロックを生成することができる。モノクロームピクチャでは、又は別々のカラープレーンを使用してコード化されるピクチャでは、CUは、サンプルの単一のコード化ブロックと、コード化ブロックをコード化するために使用されるシンタックス構造とからなり得る。
[0061]ビデオエンコーダ20は、PUのための予測ブロックを生成するために、イントラ予測又はインター予測を使用することができる。ビデオエンコーダ20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUと関連付けられるピクチャの復号されたサンプルに基づいて、PUの予測ブロックを生成することができる。
[0062]ビデオエンコーダ20がPUの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、PUと関連付けられるピクチャ以外の1つ又は複数のピクチャの復号されたサンプルに基づいて、PUの予測ブロックを生成することができる。ビデオエンコーダ20は、PUの予測ブロックを生成するために単予測又は双予測を使用することができる。ビデオエンコーダ20が、PUのための予測ブロックを生成するために単予測を使用するとき、PUは単一の動きベクトルを有し得る。ビデオエンコーダ20が、PUのための予測ブロックを生成するために単予測を使用するとき、PUは2つの動きベクトルを有し得る。
[0063]ビデオエンコーダ20がCUの1つ又は複数のPUのための予測ブロック(例えば、ルーマブロック、Cbブロック、及びCrブロック)を生成した後、ビデオエンコーダ20はCUのための残差ブロックを生成することができる。例えば、ビデオエンコーダ20はCUのためのルーマ残差ブロックを生成することができる。CUのルーマ残差ブロック中の各サンプルは、CUの予測ルーマブロックの1つの中のルーマサンプルとCUの元のルーマコード化ブロック中の対応するサンプルとの差を示す。加えて、ビデオエンコーダ20は、CUのためのCb残差ブロックを生成することができる。CUのCb残差ブロック中の各サンプルは、CUの予測Cbブロックの1つの中のCbサンプルと、CUの元のCbコード化ブロック中の対応するサンプルとの間の差を示し得る。ビデオエンコーダ20はまた、CUのためのCr残差ブロックを生成することができる。CUのCr残差ブロック中の各サンプルは、CUの予測Crブロックの1つの中のCrサンプルと、CUの元のCrコード化ブロック中の対応するサンプルとの間の差を示し得る。
[0064]更に、ビデオエンコーダ20は、CUの残差ブロックを変換ブロックへ分解するために、4分木区分を使用することができる。例えば、ビデオエンコーダ20は、CUのルーマ残差ブロック、Cb残差ブロック、及びCr残差ブロックを、ルーマ変換ブロック、Cb変換ブロック、及びCr変換ブロックに分解するために、4分木区分を使用することができる。変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであり得る。CUの変換単位(TU)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、変換ブロックサンプルを変換するために使用されるシンタックス構造であり得る。従って、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、及びCr変換ブロックと関連付けられ得る。TUと関連付けられるルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロームピクチャでは、又は別々のカラープレーンを使用して符号化されるピクチャでは、TUは、単一の変換ブロックと、その変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。TUのサイズは、TUの変換ブロックのサイズであり得る。
[0065]ビデオエンコーダ20は、TUのための係数ブロックを生成するために、TUの変換ブロックに1回又は複数回の変換を適用することができる。例えば、ビデオエンコーダ20は、TUのためのルーマ係数ブロックを生成するために、TUのルーマ変換ブロックに1回又は複数回の変換を適用することができる。係数ブロックは、変換係数の2次元アレイであり得る。変換係数は、スカラー量であり得る。加えて、ビデオエンコーダ20は、TUのためのCb係数ブロックを生成するために、TUのCb変換ブロックに1回又は複数回の変換を適用することができる。ビデオエンコーダ20は、TUのためのCr係数ブロックを生成するために、TUのCr変換ブロックに1回又は複数回の変換を適用することができる。
[0066]係数ブロック(例えば、ルーマ係数ブロック、Cb係数ブロック、又はCr係数ブロック)を生成した後で、ビデオエンコーダ20は、係数ブロックを量子化することができる。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、更なる圧縮を実現する処理を指す。ビデオエンコーダ20が係数ブロックを量子化した後で、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素をエントロピー符号化することができる。例えば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コード化(CABAC)を実行することができる。ビデオエンコーダ20は、エントロピー符号化されたシンタックス要素をビットストリーム中に出力することができる。
[0067]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信することができる。加えて、ビデオデコーダ30は、ビットストリームからシンタックス要素を復号するために、ビットストリームを解析することができる。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構成することができる。ビデオデータを再構成するための処理は、全般に、ビデオエンコーダ20によって実行される処理の逆であり得る。例えば、ビデオデコーダ30は、現在のCUのPUのための予測ブロックを決定するために、PUの動きベクトルを使用することができる。加えて、ビデオデコーダ30は、現在のCUのTUと関連付けられる変換係数ブロックを逆量子化することができる。ビデオデコーダ30は、現在のCUのTUと関連付けられる変換ブロックを再構成するために、係数ブロックに対して逆変換を実行することができる。ビデオデコーダ30は、現在のCUのPUのための予測ブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに加算することによって、現在のCUのコード化ブロックを再構成することができる。ピクチャの各CUのためのコード化ブロックを再構成することによって、ビデオデコーダ30はピクチャを再構成することができる。
[0068]上で示されたように、ビデオエンコーダ20又はビデオデコーダ30のようなビデオコーダは、現在のPUのための予測ブロックを生成するために、イントラ予測を使用することができる。ビデオコーダが現在のPUのための予測ブロックを生成するためにイントラ予測を使用するとき、ビデオコーダは、参照サンプルのセットを使用して、予測ブロック中のサンプルの値を決定することができる。例えば、HEVCイントラ予測では、上側及び左側の隣接ブロックからすでに再構成されたサンプルが、予測のために使用され得る。これらの再構成されたサンプルは、参照サンプルと呼ばれ得る。
[0069]図2は、HEVCイントラ予測のためのブロックの参照サンプルを示す。言い換えると、図2は、サイズがM(高さ)×N(幅)であるブロックを示す概念図である。図2では、Mは行を示し、Nは列を示す。更に、図2では、ブロックのサンプルはPi,jによって示され、ここで0≦i≦(M−1)及び0≦j≦(N−1)である。本開示では、「サンプル」という用語は、入力成分の元の画素値(RGBピクチャにおけるR、G、又はB、YCbCrピクチャにおけるY、Cb、又はCrなど)を、又は、入力成分に色変換を適用した後の成分のサンプル値を指し得る。図2の例では、参照画素は−1≦j<2NであるP-i,j及び−1≦i<2MであるPi,-1によって示される。
[0070]図2の例に示されるように、参照サンプルは、現在のPUの左にある参照サンプルのセットと、現在のPUの上にある参照サンプルのセットとを含み得る。本開示は、現在のPUの上にある参照サンプルのセットを、上側予測子と呼び得る。本開示は、現在のPUの左にある参照サンプルのセットを、左側予測子と呼び得る。言い換えると、HEVCイントラ予測では、左側隣接ブロック及び上側隣接ブロックからすでに再構成されたサンプルが、予測のために使用される(「上側」隣接ブロックは、「上部」隣接ブロックとも呼ばれ得る)。これらのサンプルは、参照サンプルと呼ばれる。幾つかの例では、参照画素が利用可能ではない場合、HEVCを使用するビデオコーダは、欠けている参照サンプルを生成するために、特定のパディング処理(padding process)を使用することができる。
[0071]ビデオコーダが予測ブロックを生成するためにイントラ予測を使用するとき、ビデオコーダは、複数の利用可能なイントラ予測モードからのイントラ予測モードに従って、予測ブロックを生成することができる。イントラ予測モードは、複数の方向的(即ち、角度的)イントラ予測モードを含み得る。例えば、HEVCの幾つかのバージョンでは、33個の方向的イントラ予測モードがある。方向的イントラ予測モードの各々は、異なる方向に対応する。図3は、例示的なイントラ予測モード方向を示す概念図である。ビデオコーダが方向的イントラ予測モードに従って予測ブロックを生成するとき、ビデオコーダは、予測ブロックの各々のそれぞれのサンプルに対して、方向的イントラ予測モードに対応する方向にそれぞれのサンプルと揃っている参照サンプル(又は参照サンプルの重み付けられた組合せ)の値を、それぞれのサンプルに割り当てることができる。ビデオコーダが現在のブロックのための予測ブロックを生成するために方向的(即ち、角度的)イントラ予測モードを使用するとき、ビデオコーダは、角度的イントラ予測を実行すると言われ得る。
[0072]更に、HEVCの幾つかのバージョンでは、イントラ予測モードは、DCイントラ予測モードを含む。HEVCのそのようなバージョンでは、ビデオコーダが予測ブロックを生成するためにDCイントラ予測を使用するとき、ビデオコーダは、参照サンプルの平均値を決定することができる。ビデオコーダは次いで、予測ブロック中の各サンプルが決定された平均値を有すると決定することができる。従って、ビデオコーダが予測ブロックを生成するためにDCイントラ予測を使用するとき、予測ブロックの全てのサンプルは同じ値を有する。例えば、パディング処理が完了しているので全ての参照サンプルが利用可能であると仮定する。この例では、図2の例に示される4×4のブロックに関して、DC予測は
として形成されてよく、ここで、>>は、ビットごとの右シフト演算を示す。
[0073]HEVCの幾つかのバージョンでは、イントラ予測モードは、平面的イントラ予測モードを含む。ビデオコーダが平面的イントラ予測モードを使用してPUのための予測ブロックを生成するとき、ビデオコーダは、隣接サンプルのセット、p[x][y]を決定することができ、x=−1、y=−1...nTbS*2−1及び、x=0...nTbS*2−1、y=−1であり、ここでnTbSは現在のPUのサイズである。更に、predSamples[x][y]は、予測ブロックの位置x、yにおけるサンプルの値を示し得る。ビデオコーダは、予測ブロックのサンプルを次のように決定することができる。
一般的に、平面的イントラ予測モードが使用されるとき、予測ブロックのサンプルの値は、値の2つの線形補間の平均である。第1の線形補間では、xの値が予測ブロックの行にわたって左から右に向かって増大するにつれて、行の左にある参照サンプルに与えられる重みは減少し、一方、予測ブロックの右上の角の上及び右にある参照サンプルに与えられる重みは増大する。第2の線形補間では、yの値が予測ブロックの列の下に向かって増大するにつれて、列の上にある参照サンプルに与えられる重みは減少し、一方、予測ブロックの左下の角の下及び左にあるサンプルに与えられる重みは増大する。
[0074]図2の例では、平面的イントラ予測は、垂直方向に双線形予測を生成するために、0≦j≦(N−1)であるサンプルP
-1,jとP
M,-1とを使用することができる。同様に、0≦i≦(M−1)であるサンプルP
i,-1及びP
-1,Nが、水平方向に双線形予測を生成するために使用され得る。最後に、この例では、水平方向の予測及び垂直方向の予測が平均化され得る(又は、場合によっては別の数学的演算によって組み合わされ得る)。例えば、平面的に予測される値がT
i,jにより示されるものとし、ブロックが正方形、即ちM=Nであると仮定する。この例では、T
i,jは次のように決定され得る。
この例では、*は積を示し、>>はビットごとの右シフト演算を示し、上付き文字H及びVは、それぞれ、水平方向及び垂直方向の予測を示す。
[0075]幾つかの場合には、ビデオエンコーダ20及びビデオデコーダ30は、本明細書で説明されるような可逆コード化モードを実装する。通常、ビデオエンコーダ20がブロックを符号化するとき、ビデオエンコーダ20は、ブロックのための残差データ(即ち、予測誤差)を(例えば、離散コサイン変換を使用して)変換し、量子化する。言い換えると、予測誤差は変換され量子化される。しかしながら、ビデオエンコーダ20が可逆コード化を使用してブロック(例えば、CU)を符号化するとき、ビデオエンコーダ20は、ブロックのための残差データに変換又は量子化を適用しなくてよい。言い換えると、可逆コード化モード(例えば、あるCU又はピクチャ全体のための)では、変換及び量子化のステップはスキップされ得る。代わりに、ビデオエンコーダ20は、量子化された変換係数と同じ方式で、残差データのサンプル値を扱うことができる。例えば、ビデオエンコーダ20は、残差データのサンプル値を表すシンタックス要素をエントロピー符号化し、ビットストリームに得られたデータを含めることができる。従って、残差データは、変換又は量子化による情報の損失をまったく受けない。
[0076]同様に、ビデオデコーダ30が、可逆符号化を使用して符号化されたブロック(例えば、CU)を復号する幾つかの例では、ビデオデコーダ30は、ブロックのための残差データに逆量子化又は逆変換を適用しなくてよい。代わりに、ビデオデコーダ30は、残差データのサンプル値を表すシンタックス要素をエントロピー復号し、次いで、残差データのサンプル値に少なくとも一部基づいて、ブロックのサンプル値を再構成することができる。
[0077]本開示の幾つかの例示的な技法は、可逆符号化に関する。本明細書で説明されるように、予測のために隣接ブロックからの参照サンプルを使用する代わりに、現在のブロックからのサンプルが改善された予測のために使用され得る。例えば、本開示の幾つかの例示的な技法は、HEVC規格における可逆コード化のためのイントラDC予測モードに適用可能であり得る修正を説明する。更に、本開示の幾つかの例示的な技法は、HEVC規格における可逆コード化のためのイントラ平面的予測モードに適用可能であり得る修正を説明する。本開示の技法は、他のタイプの予測にも適用可能であってよく、他のコード化規格にも適用可能であってよい。
[0078]可逆コード化では、予測のために隣接ブロックからの参照サンプルを使用する代わりに、現在のブロックからのサンプルが改善された予測のために使用され得る。例えば、非可逆コード化モード、更には変換がスキップされるときの可逆コード化モードのための、角度的イントラ予測のための技法が、Lan他、「Intra and inter coding tools for screen contents」、ITU−T SG16 WP3及びISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT−VC)、第5回会議、ジュネーブ、スイス、2011年3月16〜23日、文書JCTVC−E145(以後、「JCTVC−E145」)において述べられている。更に、可逆コード化では、変換及び量子化のステップがスキップされるので、イントラDCモードを使用するときに予測ブロックのサンプルを決定するための処理を改善することが可能であり得る。
[0079]本開示の1つ又は複数の技法によれば、予測ブロックの計算のために、行に沿ったラスタースキャンにおいてサンプルが処理されると想定され得る。しかしながら、他の例では、同じ技法が、列に沿ったラスタースキャンに(また更には、対角方向又はジグザグのスキャンに、しかし本技法の並列化の可能性をある程度失う)拡張され得る。可逆モードにおいて変換又は量子化が予測誤差に適用されないとき、予測誤差(即ち、残差)のエントロピー復号の後で、元のサンプルが可逆的に再構成され得ると想定され得る。従って、可逆コード化の状況では、「元のサンプル」又は「元のサンプル値」という用語は、実際の元のサンプル値と再構成されたサンプル値(即ち、非残差サンプル)のいずれかを指し得る。行に沿ったラスタースキャンが原因で、前の行からの全てのサンプル、更には、現在の行からの現在のサンプルの左にある全てのサンプルが、DC予測のために利用可能である。本開示の1つ又は複数の技法は、DCイントラ予測モードを使用してイントラ予測を改善するために、上記のことを利用する。
[0080]本開示は、幾つかの例示的なイントラ予測モードを説明する。本開示のイントラ予測モードは、平面的イントラ予測モードを置き換えることができ、又は、平面的イントラ予測モードとして理解され得る。従って、本開示のイントラ予測モードは、可逆コード化のためのHEVCにおける現在の平面的モードを置き換えることができる。本開示の例で説明される詳細は、本開示の他の例の1つ又は複数の詳細と組み合わされ得る。即ち、詳細は、更に他の例を達成するために、多種多様な異なる方法のいずれかで組み合わされ得る。
[0081]ビデオコーダ(例えば、ビデオエンコーダ20又はビデオデコーダ30)がDCイントラ予測モードを使用して予測ブロックを生成する本開示の幾つかの例によれば、ビデオコーダは、ラスタースキャン順序で予測ブロックのサンプルを処理することができる。ビデオコーダが予測ブロックのサンプルを処理するとき、ビデオコーダは、サンプルのためのDC予測値を形成するために、予測ブロックのサンプルの原因となる近隣を使用することができる。一般に、予測ブロック中のサンプルの原因となる近隣は、すでに決定されている予測ブロック中のサンプルに対応する再構成されたサンプル(例えば、非残差((non-residual))サンプル、非予測サンプル(non-predictive samples))のセットである。例えば、予測ブロックの左上のサンプルから開始する、行に沿ったラスタースキャン順序を使用するとき、予測ブロック中のサンプルの原因となる近隣は、サンプルの上及び左の位置に対応する再構成されたサンプルを含み得る。1つのそのような例では、ビデオコーダがDCイントラ予測モードを使用して予測ブロックを生成するとき、ビデオコーダは、0≦1≦(M−1)及び0≦j≦(N−1)として、現在のサンプルP
i,jに対して、DC予測値DC
i,jを
として計算する。
従って、式(4)及び(5)において、予測ブロック中の各々のそれぞれのサンプルに対して、ビデオエンコーダ20は、それぞれのサンプルのためのDCイントラ予測値(即ち、DCi,k)を、それぞれのサンプルの上にあるサンプルの再構成された値(即ち、Pi,j-1)とそれぞれのサンプルの左にあるサンプルの再構成された値(即ち、Pi-1,j)との平均として、決定することができる。ビデオエンコーダ20は可逆コード化を使用しているので、それぞれのサンプルの左にあるサンプルの再構成された値及びそれぞれのサンプルの上にあるサンプルの再構成された値は、それぞれのサンプルの左にあるサンプルの元の値及びそれぞれのサンプルの上にあるサンプルの元の値と同じである。同様に、式(4)及び(5)において、予測ブロック中の各々のそれぞれのサンプルに対して、ビデオデコーダ30は、それぞれのサンプルのためのDCイントラ予測値(即ち、DCi,k)を、それぞれのサンプルの上にあるサンプルの再構成された値(即ち、Pi,j-1)とそれぞれのサンプルの左にあるサンプルの再構成された値(即ち、Pi-1,j)との平均として、決定することができる。ビデオデコーダ30は可逆コード化を使用しているので、それぞれのサンプルの上にあるサンプルの再構成された値及びそれぞれのサンプルの左にあるサンプルの再構成された値は、それぞれのサンプルの上にあるサンプルの元の値及びそれぞれのサンプルの左にあるサンプルの元の値と同じである。
[0082]ラスタースキャン及び参照サンプルに対するパディング処理により、再構成されるサンプルP
i,j-1及びP
i-1,jは常に利用可能であり得る。言い換えると、現在のサンプルの上にあるサンプル及び現在のサンプルの左にある参照サンプルは常に利用可能であり得る。更に、DC予測値DC
i,jを計算する際に使用される右シフト演算の非線形な性質により、ビデオデコーダ30が複数のサンプルを並列に処理することは困難であり得る。例えば、DC
i,j+1は、
として表され得る。
上の式では、Ri,jは、位置(i,j)におけるサンプルのための予測残差である。右方向のビットシフトは非線形の処理であるので、DCi,jの計算を終了する前にDCi,j+1を計算する方法はないことがある。例えば、ビデオデコーダ30が予測ブロックの複数のサンプルを並列に処理することは、困難であり得る。
[0083]ビデオデコーダ30が可逆コード化を使用してコード化される現在のブロックのコード化された表現を復号するとき、ビデオデコーダ30は、ビットストリームから、現在のブロックの残差サンプル値を示すシンタックス要素を取得することができる。従って、現在のブロックが可逆コード化を使用してコード化されるとき、ビデオデコーダ30は、現在のブロックの残差サンプル値を決定するために、逆量子化又は逆変換を適用する必要がない。ビットストリームからシンタックス要素を取得することは、シンタックス要素をエントロピー復号することを伴い得る。従って、現在のブロックが可逆コード化又は非可逆コード化を使用してコード化されるとき、現在のブロックの予測残差(即ち、予測誤差)はすでにエントロピー復号されていると想定され得る。
[0084]従って、現在のブロックが可逆コード化又は非可逆コード化を使用してコード化されるとき、予測残差は、ビデオデコーダ30が現在のブロックのための予測ブロックのサンプルのためのDC予測値を決定する際に使用する、サンプルの再構成された値を決定する際に使用することが可能である。予測残差がすでにエントロピー復号されていると仮定すると、1サンプルの遅延を伴って、異なる行のサンプルの処理をパイプライン化することが可能であり得る。従って、本開示の1つ又は複数の技法によれば、ビデオデコーダ30は、第1の行からの1つのサンプルが再構成された後で、サンプルの第2の行の処理を開始することができる。このようにして、ビデオデコーダ30は、サンプルの複数の行を並列に処理することができる。従って、予測ブロックを生成することの一部として、ビデオコーダは、予測ブロックの異なる行のサンプルの処理をパイプライン化することができ、DC予測のための1周期の遅延が予測ブロックの行と行の間に存在する。
[0085]別の例では、ビデオコーダ(例えば、ビデオエンコーダ20又はビデオデコーダ30)は、0≦i≦(M−1)及び0≦j≦(N−1)として、DC予測値DCi,jを、
として計算することができる。
従って、この例では、予測ブロックの各々のそれぞれのサンプルに対して、ビデオエンコーダ20は、それぞれのサンプルのためのDC予測値(即ち、DCi,j)を、それぞれのサンプルの上にあるサンプルの再構成された値(即ち、Pi,j-1)とそれぞれのサンプルの左にあるサンプルの再構成された値(即ち、Pi-1,j)との合計から、それぞれのサンプルのすぐ左上にあるサンプルの元の値(即ち、Pi-1,j-1)を引いたものとして、決定することができる。同様に、予測ブロックの各々のそれぞれのサンプルに対して、ビデオデコーダ30は、それぞれのサンプルのためのDC予測値(即ち、DCi,j)を、それぞれのサンプルの上にあるサンプルの再構成された値(即ち、Pi,j-1)とそれぞれのサンプルの左にあるサンプルの再構成された値(即ち、Pi-1,j)との合計から、それぞれのサンプルのすぐ左上にあるサンプルの再構成された値(即ち、Pi-1,j-1)を引いたものとして、決定することができる。可逆コード化が使用されているので、サンプルの再構成された値は、サンプルの元の値と同じである。
[0086]この例では、追加の論理を使用することによって、行の中の複数のサンプル値を処理することがより簡単になり得る。例えば、ビデオコーダは、次のように、P
i,jを待機することなく、予測ブロックの現在のサンプルP
i,jのためのDC
i,j+1を計算することができる。DC
i,j+1は、
として表され得る。
式(7)は、次のように書き換えられ得る。
式(7)及び(8)において、ri,jは、サンプルPi,jに対する予測誤差残差である。従って、この例では、位置(i,j+1)における特定のサンプルのためのDCイントラ予測値(即ち、DCi,j+1)の計算は、特定のサンプルの左にあるサンプルの再構成された値に依存しない。むしろ、特定のサンプルのためのDCイントラ予測値DCi,j+1の計算は、すぐ上のサンプルのための再構成された値、更には、現在のサンプルの左にある全てのサンプルのための残差値、及び同じ行及び上の行の中の参照サンプルに依存し得る。このことは、ビデオデコーダ30(更にはビデオエンコーダ20)が、ブロックの行の中の全てのサンプルのためのDC予測値を、行全体に対する残差がすでに復号されていると仮定すると、並列に計算することを可能にし得る。
[0087]可逆コード化が使用されているので、サンプルの再構成された値(即ち、Pi,j-1、Pi-1,j、及びPi-1,j-1)は、サンプルの元の値と同じである。本開示の他の箇所で更に説明されるように、本技法は、非可逆コード化に適用され得る。その場合、並列化を維持するために、DC予測のために左にあるサンプルに対して切り捨てられていない再構成された値を使用することが必要である。上の行からの再構成されたサンプルは、切り捨てられることがあり、又は切り捨てられないことがある。例えば、8ビットのビデオシーケンスでは、再構成されたサンプルは、間隔[0,255]へと切り捨てられる。
[0088]別の例では、左の、左上の、上の、及び右上のサンプルが、DCイントラ予測値を決定する際に使用される。この例では、ビデオコーダは、0≦1≦(M−1)及び0≦j≦(N−1)として、予測ブロックの現在のサンプルP
i,jに対して、DC予測値DC
i,jを、
として計算することができる。
従って、式(9)及び式(10)の例では、予測ブロックの各々のそれぞれのサンプルに対して、それぞれのサンプルのためのDCイントラ予測値(即ち、DCi,j)は、それぞれのサンプルの上にある再構成されたサンプル(即ち、Pi,j-1)と、それぞれのサンプルの左にある再構成されたサンプル(即ち、Pi-1,j)と、それぞれのサンプルの左上にある再構成されたサンプル(即ち、Pi-1,j-1)と、それぞれのサンプルの右上にある再構成されたサンプル(即ち、Pi-1,j+1)との平均である。可逆コード化が使用されているので、サンプルの再構成された値(即ち、Pi,j-1、Pi-1,j、Pi-1,j-1、及びPi-1,j+1)は、サンプルの元の値と同じである。
[0089]DCイントラ予測値を決定するために式(9)又は(10)を使用する例では、最後の列の中のサンプル(j=(N−1)、i>0)に対して、右上のサンプルは利用不可能である。これを克服するために、ビデオコーダは、上及び右上にあるサンプル(即ち、それぞれPi-1,j及びPi-1,j+1)が同じ値を有すると仮定し得る。DCイントラ予測値を決定するためにビデオコーダが式(9)又は(10)を使用する別の例では、ビデオコーダは、利用可能なサンプルのみを使用するようにDC予測を修正することができる。幾つかの例では、サンプルは、サンプルが現在のスライス又はピクチャの境界内にない場合、又はまだコード化されていない場合は、利用不可能であり得る。
[0090]更に、本開示の別の例によれば、ビデオコーダは、TUのサイズより小さいブロックサイズに対してDCイントラ予測を実行することができる。例えば、TUのサイズとは無関係に、ビデオコーダは、2×2のブロックに対してDCイントラ予測を実行することができる。ビデオコーダは、ラスタースキャン順序で、予測ブロックの2×2のブロックを処理することができる。この例では、例えば、サンプルP
2i,2j、P
2i,2j+1、P
2i+1,2j、及びP
2i+1,2j+1に対して、ビデオコーダは、DCイントラ予測値を、
として計算する。
この例では、0≦1≦((M/2)−1)及び0≦j≦((N/2)−1)であり、Mはブロックの高さであり、Nはブロックの幅である。更に、この例では、MとNがともに偶数であると仮定される。この例では、ビデオコーダは、4つのサンプルを並列に処理することができる。この例では、ビデオコーダは、2×2のブロックの4つのサンプルの各々のDCイントラ予測値を並列に決定することが可能であり得る。同様の例では、ビデオコーダは、2×2のブロックの代わりに、4×4のブロック又は8×8のブロックを使用することができる。
[0091]本開示の別の例によれば、通常のDC予測を実行した後の残差間の相関が利用される。例えば、0≦i≦(M−1)及び0≦j≦(N−1)として、r
i,jを、HEVC(例えば、HEVCワーキングドラフト10)において規定されるようなDCイントラ予測を実行した後の予測残差とする。例えば、r
i,jは、4×4のブロックに対して、上の式(1)で説明されるようにDCイントラ予測を実行した後の予測残差値であり得る。この例では、ビデオコーダは次いで、中間値s
i,jを生成することができ、ここで0≦i≦(M−1)及び0≦j≦(N−1)である。ビデオコーダは、中間値s
i,jを
として生成することができる。
上の式(13)において、0≦i≦(M−1)及び0≦j≦((N/2)−1)である。
[0092]ビデオコーダは次いで、修正された残差値t
i,jを次のように生成することができ、ここで0≦i≦(M−1)及び0≦j≦(N−1)である。
式(14)において、0≦i≦((M/2)−1)及び0≦j≦(N−1)である。
[0093]ビデオエンコーダは、通常のHEVC(例えば、HEVCワーキングドラフト10)において説明されるように、修正された残差t
i,jをエントロピー符号化することができる。デコーダ側で(例えば、ビデオデコーダ30において)、この処理の逆が行われる。例えば、ビデオデコーダ30は、
を決定することができ、ここで0≦i≦((M/2)−1)及び0≦j≦(N−1)である。ビデオデコーダ30はまた、
を決定することができ、ここで0≦i≦(M−1)及び0≦j≦((N/2)−1)である。この例は、MとNがともに偶数であると仮定する。
[0094]本開示の別の例では、単純な差分をとる代わりに、より良好である可能性のある予測子が使用され得る。例えば、ビデオコーダは、s
i,jを次のように決定することができる。
上の式(17)において、0≦i≦M、0≦j<(N/2)である。上の式(18)において、0≦i<M/2、0≦j<Nである。
[0095]本開示の様々な他の例で説明される技法は、変換がスキップされるときに、非可逆コード化におけるDCイントラ予測モードを改善するために適用され得る。言い換えると、本開示の様々な他の例は、ビデオエンコーダが変換ブロックの残差サンプルに変換を適用しないが変換ブロックの残差サンプルを量子化するときに、DCイントラ予測モードを改善するために適用され得る。例えば、上の段落[0081]で説明される例では、現在のサンプルのためのDC予測値を計算するために、原因となる近隣が使用される。この例では、可逆コード化の場合に行われるようにDC予測値を計算するために元のサンプル値を使用する代わりに、原因となる近隣における再構成された(量子化された)サンプル値が使用され得る。変換の適用がスキップされるので、原因となる近隣における再構成された値は利用可能である。並列化の利益を保つために、行全体の処理が完了するまで、現在の行からの再構成された値に切り捨て演算が適用されることに留意されたい。上の行に対しては、切り捨てられた再構成された値と、切り捨てられない再構成された値のいずれかが使用され得る。
[0096]同様に、上の段落[0090]で説明されたように、TUはより小さなブロック(例えば、2×2のブロック)に分割され、DC予測値が各々のより小さなブロックに対して計算される。可逆コード化の場合に行われるようにDC予測値を計算するために元のサンプル値を使用する代わりに、変換がスキップされる非可逆コード化の場合、再構成された(量子化された)サンプル値が使用され得る。
[0097]非可逆コード化の技法が、本開示において上で説明される。幾つかのそのような技法によれば、0≦1≦(M−1)及び0≦j≦(N−1)として、P
i,jを、元のサンプル値を示すものとする。更に、Q(P
i,j)を、P
i,jの量子化されたバージョンを示すものとする。次いで、非可逆コード化を使用する本開示の追加の例によれば、ビデオコーダは、DC予測値DC
i,jを、
として計算することができる。
サンプル値(即ち、Pi,j-1、Pi-1,j、及びPi-1,j-1)が量子化され次いで逆量子化されることを除き、式DC1は上の式(6)と同様であることに留意されたい。本開示は、そのようなサンプルを、量子化されたサンプル又は元のサンプルの量子化されたバージョンと呼び得る。従って、式DC1では、予測ブロックの各々のそれぞれのサンプルに対して、ビデオコーダは、それぞれのサンプルのためのDC予測値を、それぞれのサンプルの上にある元のサンプルの量子化されたバージョン(即ち、Q(Pi,j-1))とそれぞれのサンプルの左にある元のサンプルの量子化されたバージョン(即ち、Q(Pi-1,j))との合計から、それぞれのサンプルの左上にある元のサンプルの量子化されたバージョン(即ち、Q(Pi-1,j-1))を引いたものとして、計算することができる。式DC1では、Q(Pi,j)という形式の項が再構成されたサンプルである。ビデオコーダは次いで、予測残差を、ri,j=Pi,j−DCi,jとして計算することができる。言い換えると、残差値ri,jは、サンプル値Pi,jから対応するDCイントラ予測値DCi,jを引いたものに等しい。量子化及び逆量子化の後の再構成された残差は、Q(ri,j)によって示される。
[0098]前の段落で説明された例は、デコーダ側で幾つかの望ましいスループット特性を有し得る。例えば、ビデオデコーダ30が、ブロックの行(又は列)の中の全てのサンプルのための再構成されるサンプル値を同時に計算することが可能であり得る。例えば、ビデオデコーダ30は、再構成されるサンプル値を、
として取得することができる。
式DC2において、Q(Pi-1,j)は、適切に切り捨てられ得る再構成されたサンプルを示す。例えば、8という入力ビット深度を伴う再構成された値を適切に切り捨てるために、Q(Pi-1,j)の値は0と255の間に切り捨てられる。
[0099]更に、幾つかの例では、Q(Pi-1,j)の切り捨てられないバージョンを使用することが望ましいことがある。他の値、Q(Pi-1,-1)及びQ(Pi,-1)は、以前に再構成されたブロックに属し、すでに切り捨てられている。そのような例では、式DC2の中の再構成されたサンプルQ(Pi-1,j)は切り捨てられていないが、スループットに影響を与えることなく適切に切り捨てられ得る。ビデオデコーダが再構成のために式DC2を使用する場合、式DC1において規定される予測だけが適切である。切り捨てられたバージョンであるQ(Pi,j-1)の代わりに切り捨てられていないバージョンが使用されるので、式DC1における予測のみが適切である。そのような場合、Q(Pi,j-1)の切り捨てられていないバージョンは、エンコーダとデコーダとの間のドリフトを避けるようにDC予測を生成するために、エンコーダ側でも使用され得る。切り捨てられたバージョンを使用することは可能であるが、そうすると、サンプルは1つずつ再構成されなければならないので、スループットに影響を与える。これは、その場合、式DC1が再構成のために使用される必要があり得るからである。これは、サンプルの再構成がサンプルの左にあるサンプルの再構成の完了に依存し得ることを意味する。本開示では、サンプルの行がどのように並列に再構成され得るかが説明されてきた。列の中の全てのサンプルを並列に再構成するために、同様の処理がたどられ得る。より低い並列性が望まれる場合、加算の項がより小さなチャンクへと分解されてよく、これによって、場合によってはスループットが低下するが、サンプルを再構成するために必要とされる加算演算の平均の数が減る。
[0100]従って、上で説明された非可逆コード化の例の少なくとも幾つかにおいて、ビデオコーダは予測ブロックを生成することができる。予測ブロックを生成することの一部として、ビデオコーダは、予測ブロックの現在のサンプルのDC予測のために、第1の再構成されるサンプル(例えば、Q(Pi-1,j))と第2の再構成されるサンプル(例えば、Q(Pi,j-1))の少なくとも1つを使用することができる。第1の再構成されるサンプルは、予測ブロックの現在の行の中の現在のサンプルの左にあるサンプルに対応し得る。第2の再構成されるサンプルは、現在の行の上の予測ブロックの行の中のサンプルに対応し得る。ビデオコーダは、予測ブロックのサンプルを対応する残差サンプルに加算することによって、非可逆コード化を使用してコード化されたものコード化ブロックを再構成することができる。
[0101]更に、上で説明された非可逆コード化の例の少なくとも幾つかでは、ビデオコーダは、現在のサンプルの上にあるサンプルに対応する再構成される値Q(P
i,j-1)を決定することができる。加えて、ビデオコーダは、現在のサンプルの左にあるサンプルに対応する再構成される値Q(P
i-1,j)を決定することができる。ビデオコーダはまた、現在のサンプルの左上にあるサンプルに対応する再構成される値Q(P
i-1,j-1)を決定することができる。ビデオコーダは、現在のサンプルP
i,jのためのDC予測値DC
i,jを、
として計算することができる。
[0102]上で説明された非可逆コード化の例の少なくとも幾つかでは、ビデオコーダは、Q(P
i,j-1)、Q(P
i-1,j)、及びQ(P
i-1,j-1)の中からの各々のそれぞれの再構成される値に対して、次の方法の1つでそれぞれの再構成される値を決定することができる。第1に、ビデオコーダは、それぞれの再構成される値を、所与のサンプルのための逆量子化された残差値(例えば、Q(r
i,j))に、対応するサンプルのためのDC予測値(例えば、DC
i,j)を足したものとして、それぞれの再構成される値を決定することができる。
この例では、所与のサンプルは、それぞれの再構成された値に対応する。幾つかのそのような例では、ビデオコーダは、所与のサンプルの左にあるサンプルに対応する再構成された値を切り捨てることができる。
[0103]本開示の別の例は、平面的モードのための予測処理に対する修正を提案する。平面的モードのための式(例えば、式(2))を見ると、最後の行からの元のサンプルがPM-1を使用する代わりに垂直方向の予測を実行するために使用される場合、垂直方向の予測はより正確であり得る。同様に、最後の列からの元のサンプルがP-1,Nを使用する代わりに水平方向の予測を実行するために使用される場合、水平方向の予測はより正確であり得る。イントラ平面的モードにおける元のサンプルの使用は、本開示の1つ又は複数の例の背後にある基本的な考えである。
[0104]例えば、ビデオエンコーダ(例えば、ビデオエンコーダ20)は、最後の行及び列、即ち、i=(M−1)又はj=(N−1)であるT
i,jに対する、HEVC平面的予測(例えば、HEVCワーキングドラフト10に記載されるような平面的予測)を使用することができる。ビデオコーダは、最後の行及び列のための残差を生成するために、元のサンプル値から予測値を差し引くことができる。即ち、ビデオエンコーダはr
i,jを決定することができ、ここでi=(M−1)又はj=(N−1)である。ビデオエンコーダは次いで、予測値T
i,jを次のように生成することができ、ここで0≦i≦(M−2)及び0≦j≦(N−2)である。
この例は、M=Nであると仮定する。しかしながら、長方形のブロックへのこの概念の拡張は単純である。ビデオエンコーダは、元のサンプル値から予測値を差し引くことによって、残りの残差ri,jを生成することができ、ここで0≦i≦(M−2)及び0≦j≦(N−2)である。ビデオエンコーダは、HEVC(例えば、HEVCワーキングドラフト10)におけるように、残差のブロック全体ri,jをエントロピー符号化することができ、ここで0≦i≦(M−1)及び0≦j≦(N−1)である。
[0105]この例では、デコーダ側において、ビデオデコーダ(例えば、ビデオデコーダ30)は、残差値ri,jを生成するために、予測残差のブロック全体をエントロピー復号することができ、ここで0≦i≦(M−1)及び0≦j≦(N−1)である。ビデオデコーダは次いで、ブロックの最後の行及び列の中のサンプルのためにHEVC平面的予測を実行することができる。即ち、ビデオコーダはHEVC(例えば、HEVCワーキングドラフト10)において規定されるようにTi,jを決定することができ、ここでi=(M−1)又はj=(N−1)である。例えば、ビデオコーダは、上の式(3)を使用してTi,jを決定することができる。更に、この例では、ビデオデコーダは、最後の行及び列のための元のサンプル値を再構成するために、最後の行及び列のための残差値を上記の予測値に加算する。その後、ビデオデコーダは、予測値Ti,jを上記のエンコーダ側の場合と同じように生成し、ここで0≦i≦(M−2)及び0≦j≦(N−2)である。ビデオデコーダは、ブロック中の残りのサンプル位置のためのサンプル値を再構成するために、残差値ri,jを予測値に加算し、ここで0≦i≦(M−2)及び0≦j≦(N−2)である。
[0106]本開示の別の例では、ビデオエンコーダ(ビデオエンコーダ20のような)は、最後の行及び列の要素、即ち、i=(M−1)及びj=(N−1)であるT
i,jに対する、HEVC平面的予測(例えば、HEVCワーキングドラフト10に記載されるような平面的予測)を使用する。この例では、ビデオエンコーダは、ある位置のための残差値を生成するために、その位置のための元のサンプル値からその位置のための予測値を差し引く。ビデオエンコーダは次いで、最後の行及び列の要素を、
として、双線形的に予測することができる。
更に、この例では、ビデオエンコーダは、予測値T
i,jを次のように生成し、ここで0≦i≦(M−2)及び0≦j≦(N−2)である。
この例では、ビデオエンコーダは、元のサンプル値から予測値を差し引くことによって、残差値ri,jを生成し、ここで0≦i≦(M−1)及び0≦j≦(N−1)である。更に、この例では、ビデオエンコーダは、HEVC(例えば、HEVCワーキングドラフト10)におけるように、残差のブロック全体ri,jをエントロピー符号化し、ここで0≦i≦(M−1)及び0≦j≦(N−1)である。
[0107]本開示の別の例は、前のサンプルに対する精緻化を提供する。この例では、本開示の予測技法による残差の分布は、変換が利用されるときのビデオ圧縮における一般的な分布の逆となる傾向がある。一般的には、残差は、より低い周波数においてより大きな値を有し、より高い周波数においてより低い予想される値を有する。上の例から来る残差については、最後の行及び列がより大きな値を有する傾向がある。変換残差のために設計されたエントロピーコード化方法を利用しながら性能を向上させるための手法は、上で提供された例の予測から来る残差を回転することである。即ち、左上の部分が右下になり、右下の部分が左上になるように、残差は180度回転される。次いで、この回転された残差はエントロピーコード化される。これに対応して、デコーダにおいて、残差が取得され、次いで180度回転される。
[0108]本開示の他の例では、平面的予測処理が次のように修正される。第1の行及び列に対して、T
i,j及びr
i,jを生成するために、HEVC平面的モード(例えば、HEVCワーキングドラフト10において記載されるような平面的モード)の場合のように予測が実行され、i=0又はj=0である。この例では、第1の行及び列に対する予測を生成するためのHEVC方法(例えば、HEVCワーキングドラフト10において記載される方法、式(3)など)を使用する代わりに、他の方法が使用される。例えば、P
0,0は、(P
-1,0+P
0,-1+1)>>1として予測され得る。第1の列における残りのサンプルは、同じ行の中の左のサンプルを使用して予測され得る。同様に、第1の行における残りのサンプルは、同じ列の中の上のサンプルを使用して予測され得る。残りの位置に対して、平面的予測T
i,jが次のように生成され、ここで1≦i≦(M−1)及び1≦j≦(N−1)である。
式(22)において、wv及びwhは重みである。幾つかの例では、0.5という値がwvとwhの両方に対して使用され、それは0.5という値がビットシフトとして実装され得るからである。残りの残差(即ち、ri,j、但し1≦i≦(M−1)及び1≦j≦(N−1))が、元のサンプル値から予測値を差し引くことによって生成される。残差のブロック全体(即ち、ri,j、但し0≦i≦(M−1)及び0≦j≦(N−1))が、HEVC(例えば、HEVCワーキングドラフト10)におけるように、エントロピーコード化され得る。
[0109]この例では、デコーダ側において、ビデオデコーダ(例えば、ビデオデコーダ30)は、残差値(即ち、ri,j、但し0≦i≦(M−1)及び0≦j≦(N−1))を生成するために、予測残差のブロック全体をエントロピー復号することができる。次いで、ビデオデコーダは、HEVC(例えば、HEVCワーキングドラフト10)において規定されるように、又は上で説明されたように、ビデオエンコーダによって使用される任意の他の方法によって、第1の行及び列の中のサンプル(即ち、Ti,j、但しi=0又はj=0)に対して平面的予測を実行する。更に、この例では、ビデオデコーダは、最初の行及び列のための元のサンプル値を再構成するために、最初の行及び列のための残差値を上記の予測値に加算する。その後、ビデオデコーダは、予測値(即ち、Ti,j、但し1≦i≦(M−1)及び1≦j≦(N−1))を上記のエンコーダ側の場合と同じように生成する。この例では、ビデオデコーダは、ブロック中の残りの位置のためのサンプル値を再構成するために、残差値(即ち、ri,j、但し1≦i≦(M−1)及び1≦j≦(N−1))を予測値に加算する。
[0110]上の段落は、可逆コード化のための平面的予測を実行する様々な方法を説明する。本開示の追加の例では、一番右の列及び一番下の行は、HEVC(例えば、HEVCワーキングドラフト10)に記載されるような平面的予測手順を使用して予測される。この例では、一番右の列及び一番下の行に対する元のサンプル値は次いで、ブロックの残りのサンプルのための平面的予測又は角度的予測を実行するために使用される。一番右の列及び一番下の行に対する元のサンプル値を使用する代わりに、変換がスキップされるときの可逆コード化の場合、再構成された(量子化された)サンプル値が、残りのサンプルに対する平面的予測又は角度的予測を実行するために使用され得る。
[0111]HEVC(例えば、HEVCワーキングドラフト10)では、第1の行及び列のためのDC予測値はフィルタリングされる(DC予測フィルタリング)。同様に、水平方向のイントラ予測モード及び垂直方向のイントラ予測モードでは、予測値の第1の行及び列がそれぞれフィルタリングされる(勾配フィルタリング)。上で説明される方法がDCイントラ予測モード、水平イントラ予測モード、又は垂直イントラ予測モードのために可逆コード化に適用されるとき、及び、変換がスキップされるとき、DC予測フィルタリング又は勾配フィルタリングはスキップされ得る。
[0112]本開示の別の例では、平面的予測モードを変更する代わりに、同じ概念が角度的イントラ予測モードに適用される。各々の角度的モードに対して、最後の行及び列は、HEVC(例えば、HEVCワーキングドラフト10、式(3)など)において規定されるように予測される。次いで、最後の行及び列のための元のサンプル値は、参照サンプルに加えてイントラ予測を実行するために使用される。図4は、予測のために使用されるサンプルを示す。図4の影付きの位置は、予測を実行するための参照サンプルとして使用される位置である。特定の予測方向及び特定の位置に対して、N≦j≦2Nである参照サンプルP-1,j(又はそれらの双線形補間)が予測値として使用された場合、右の列からの元のサンプル値(即ち、Pi,N-1、0≦i≦M−1)が代わりに使用される。予測角度が一番右の列と交わる位置が分数である場合、双線形補間又は任意の他の適切な補間方法が使用され得る。例として、4×4のブロックを考える。イントラ予測モード34では、サンプル(2,2)に対して、対応する参照サンプルはP-1,6である。従って、モード34では、HEVC予測はT2,2=P-1,5である。代わりに、この例ではT2,2=P1,3である。
[0113]同様に、特定の予測方向及び特定の位置に対して、M≦j≦2Mである参照サンプルPi,-1(又はそれらの双線形補間)が予測値として使用された場合、一番下の行からの元のサンプル値(即ち、PM-1,j、0≦j≦N−1)が代わりに使用される。予測角度が一番下の行と交わる位置が分数である場合、双線形補間又は別の適切な補間技法が使用され得る。例として、4×4のブロックを考える。この例では、イントラ予測モード2では、サンプル(2,1)に対して、対応する参照サンプルはP4,-1である。従って、モード2に対するHEVC予測はT2,1=P4,-1である。代わりに、この例ではT2,1=P3,0である。
[0114]本開示の幾つかの追加の例では、ビデオエンコーダ20及びビデオデコーダ30は、ブロック内の他のサンプル値の予測を実行するために、ビデオデータのブロック内の1つ又は複数の元のサンプル値を使用するコード化を実行することができる。元のサンプル値は、ブロックの最後の行及び最後の列(例えば、ブロックの一番下の行及び一番右の列)に対応し得る。別の例として、元のサンプル値は、ブロックの最初の行及び最初の列(例えば、一番上の行及び一番左の列)に対応し得る。図4は、他のサンプル値の予測を実行するために使用される、サンプル値の一例を示す。この例では、ビデオコーダは、可逆コード化モードを実行することができ、可逆コード化モードは、平面的コード化モード、角度的イントラコード化モード、又は別のモードを備え得る。幾つかの例では、本技法は更に、予測によって生成される残差値のセットに対する回転演算と、それに続く、残差値の回転されたセットに関するエントロピーコード化とを含み得る。
[0115]差動パルス符号変調(DPCM)の方法は、Lee他、「AHG7: Residual DPCM for HEVC lossless coding」、ITU−T SG16 WP3及びISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT−VC)、第12回会議:ジュネーブ、スイス、2013年1月14〜23日、文書番号JCTVC−L0117(以後、「JCTVC−L0117」)において提案されている。JCTVC−L0117は、可逆コード化のためのHEVCにおける水平モード(例えば、イントラ予測モード10)及び垂直モード(例えば、イントラ予測モード26)のためのイントラ予測に対する改善を提案した。この改善は、残差DPCMによって示された。JCTVC−L0117では、CUが可逆的にコード化されているときに、残差DPCMが適用される。残差DPCMの基本的な考えは、垂直モードのために現在の画素を予測するのに上側の行の画素を使用し、垂直モードのために現在の画素を予測するのに左側の列の画素を使用することである。
[0116]JCTVC−L0117において記載されるように、残差DPCMは次のように説明され得る。サイズがM(行)×N(列)であるブロックを考える。0≦i≦(M−1)及び0≦j≦(N−1)として、r
i,jを、HEVCワーキングドラフト10において規定されるようなイントラ予測を実行した後の予測残差とする。これは、図5A及び図5Bに示される。ブロックは、任意の成分(例えば、ルーマ、クロマ、R、G、Bなど)を表し得る。
これは、垂直予測モードではPi,jのための予測としてPi-1,jを使用し、水平予測モードではPi,jのための予測としてPi,j-1を使用することと等価であり得る。
[0117]更に、JCTVC−L0117において提案される方法では、デコーダ側において、イントラ予測モードが垂直モードであるとき、元の残差サンプルは、修正された残差サンプルが構文解析された後で、次のように再構成され得る。
イントラ予測モードが水平モードであるとき、元の残差サンプルは、修正された残差サンプルが構文解析された後で、次のように再構成され得る。
[0118]更に、本開示は、水平イントラ予測モード及び垂直イントラ予測モードのためのJCTVC−L0117において提案された残差DPCM技法を、可逆コード化のための他の角度的イントラ予測モードに拡張するための方法を論じる。コード化が可逆であるので、(コード化の因果順序の)元の隣接サンプル、更には対応する予測残差が、(変換及び量子化がスキップされるので)予測のために利用可能である。
[0119]第1の例では、残差DPCM技法は、他の角度的イントラ予測モードに拡張され得る。図3は、様々な角度的予測モード(2から34)のためのイントラ予測方向を示す。22と30の間のモードをここで考える。これらのモードの各々について、予測方向は垂直に近い(ほぼ垂直)であると考えられ得る。22及び30という数字は例にすぎない。他の範囲(例えば、24と28の間のイントラ予測モード)も選ばれ得る。ここで、0≦i≦(M−1)及び0≦j≦(N−1)として、残差r
i,jが、HEVC(例えば、HEVCワーキングドラフト10)において規定されるように計算されると考える。即ち、予測は角度的モードに従って実行され、残差r
ijを得るために元のサンプル値から差し引かれる。
[0120]同様に、この第1の例では、6と14の間の方向的イントラ予測モードを考える。これらのイントラ予測モードの各々について、予測方向は水平に近い(ほぼ水平)であると考えられ得る。6及び14という数字は例にすぎない。他の例では、他の範囲(例えば、8と12の間のイントラ予測モード)が使用され得る。ここで、0≦i≦(M−1)及び0≦j≦(N−1)として、残差r
i,jが、HEVC(例えば、HEVCワーキングドラフト10)において規定されるように計算されると考える。即ち、予測は角度的モードに従って実行され、予測は残差r
i,jを決定するために元のサンプル値から差し引かれる。
[0121]更に、この第1の例では、デコーダ側において、元の残差サンプルは、修正された残差サンプルが解析された後で、次のように再構成され得る。イントラ予測モードがほぼ垂直である(両端を含めてモード22から30)とき、元の残差サンプルは、
として再構成され得る。
イントラ予測モードがほぼ水平である(両端を含めてモード6から14)とき、元の残差サンプルは、
として再構成され得る。
残差ri,jが計算されると、残差ri,jは、元のサンプルを取得するために、角度的モードに従って実行される予測に加算される。水平モード及び垂直モードのための予測を取得するとき、第1の列(垂直モードの場合)又は第1の行(水平モードの場合)のための予測に対する勾配項の加算を有効又は無効にすることが可能であり得る。
[0122]残差DPCM技法が可逆コード化のための角度的イントラ予測モードに拡張される第2の例では、イントラ予測モード18、又は、イントラ予測モード18の対角右下方向の予測方向に近い予測方向を伴うイントラ予測モードについて(図3参照)、残差は次の方法で修正され得る。まず、0≦i≦(M−1)及び0≦j≦(N−1)として、残差r
i,jが、HEVCワーキングドラフト10において規定されるように計算され得る。即ち、予測は角度的モードに従って実行されてよく、予測は残差r
i,jを得るために元のサンプル値から差し引かれてよい。
デコーダ側において、ビデオデコーダは、ビデオデコーダが修正された残差サンプルを解析した後で、元の残差サンプルを次のように再構成することができる。イントラ予測方向が対角右下方向の予測方向に近いとき、ビデオデコーダは、元の残差サンプルを、
として再構成することができる。
[0124]更に、この第2の例では、残差ri,jが計算されると、ri,jは、元のサンプルを取得するために、角度的モードに従って実行される予測に加算され得る。残差ri,jを計算する際に、ri-1,j-1が利用可能である必要があり得る。このことは、真の残差が行ごと又は列ごとに計算される場合には、常に真であり得る。従って、行(又は列)の中の全てのサンプルのための真の残差ri,jを並列に計算することが可能であり得る。
[0125]残差DPCM技法が可逆コード化のための角度的イントラ予測モードに拡張される第3の例では、イントラ予測モード34、又は、イントラ予測モード34の対角左下方向の予測方向に近い予測方向を伴うイントラ予測モードについて(図3参照)、残差は次の方法で修正され得る。まず、0≦i≦(M−1)及び0≦j≦(N−1)として、残差r
i,jが、HEVC(HEVCワーキングドラフト10)において規定されるように計算され得る。即ち、予測は角度的モードに従って実行されてよく、予測は残差r
i,jを決定するために元のサンプル値から差し引かれてよい。
デコーダ側において、ビデオデコーダは、ビデオデコーダが修正された残差サンプルを解析した後で、元の残差サンプルを次のように再構成することができる。イントラ予測方向が対角左下方向の予測方向(モード34)に近いとき、ビデオデコーダは、元の残差サンプルを、次の式を使用して再構成することができる。
[0127]この第3の例では、残差ri,jが計算されると、ri,jは、元のサンプルを取得するために、角度的モードに従って実行される予測に加算され得る。残差ri,jを計算する際に、ri-1,j+1が利用可能である必要があり得る。このことは、真の残差が行ごとに計算される場合には、常に真であり得る。従って、行の中の全てのサンプルのための真の残差ri,jを並列に計算することが可能であり得る。
[0128]残差DPCM技法が可逆コード化のための角度的イントラ予測モードに拡張される第4の例では、イントラ予測モード2、又は、モード2の対角右上方向の予測方向に近い予測方向を伴うイントラ予測モードについて(図3参照)、残差は次の方法で修正され得る。まず、0≦i≦(M−1)及び0≦j≦(N−1)として、残差r
i,jが、HEVC(HEVCワーキングドラフト10)において規定されるように計算され得る。即ち、予測は角度的モードに従って実行されてよく、予測は残差r
ijを決定するために元のサンプル値から差し引かれてよい。
デコーダ側において、ビデオデコーダは、ビデオデコーダが修正された残差サンプルを解析した後で、元の残差サンプルを次のように再構成することができる。イントラ予測方向が対角右上方向の予測方向(モード2)に近いとき、ビデオデコーダは、元の残差サンプルを、次の式に従って再構成することができる。
[0130]更に、この第4の例では、残差ri,jが計算されると、残差ri,jは、元のサンプルを取得するために、角度的モードに従って実行される予測に加算され得る。残差ri,jを計算する際に、ri+1,j-1が利用可能である必要があり得る。このことは、真の残差が列ごとに計算される場合には、常に真であり得る。従って、列の中の全てのサンプルのための真の残差ri,jを並列に計算することが可能であり得る。残差DPCM技法が可逆コード化のための角度的イントラ予測モードに拡張される第1の例、第2の例、第3の例、及び第4の例は、各実施形態のための予測モードの範囲が重複しない限り、同時に利用され得る。
[0131]残差DPCM技法が可逆コード化のための角度的イントラ予測モードに拡張される第5の例において説明されるように、JCTVC−L0117において提案される残差DPCM方法では、垂直モードについて、第1の行のための残差は修正されない。水平モードについて、同様の考察が真である。その場合、第1の列のための残差は修正されない。残差DPCM技法が可逆コード化のための角度的イントラ予測モードに拡張される第1の例の場合、ほぼ垂直モード及びほぼ水平モードについて同様の考察が真である。残差DPCM技法が可逆コード化のための角度的イントラ予測モードに拡張される第5の例は、残差DPCMの概念を、垂直イントラ予測モード又はほぼ垂直イントラ予測モードのために第1の行へ、及び水平イントラ予測モード又はほぼ水平イントラ予測モードのために第1の列へ拡張することを提案する。垂直モード又はほぼ垂直モードを考える。この場合、まず、0≦i≦(M−1)及び0≦j≦(N−1)として、残差r
i,jが、HEVC(HEVCワーキングドラフト10)において規定されるように計算され得る。即ち、予測は角度的モードに従って実行されてよく、予測は残差r
i,jを決定するために元のサンプル値から差し引かれてよい。
式(37)において、r-1,jは、上側のブロックからの残差を指す。上側のブロックが利用可能ではない場合、又は、上側のブロックが異なるLCUに属する場合、第1の行に対して残差DPCMを実行することは可能ではないことがある。
デコーダ側において、ビデオデコーダは、ビデオデコーダが修正された残差サンプルを解析した後で、元の残差サンプルを次のように再構成することができる。イントラ予測モードが垂直又はほぼ垂直であるとき、元の残差サンプルは、次のように再構成され得る。
水平モード及びほぼ水平モードに対して同様の戦略が使用されてよく、ここで、
である。
この手法は、残差DPCM技法が上で説明されたように可逆コード化のための角度的イントラ予測モードに拡張される、第2の例、第3の例、及び第4の例と同様の方式で拡張される。
[0133]残差DPCM技法が可逆コード化のために角度的イントラ予測モードに拡張される第6の例では、JCTVC−L0117において提案される残差DPCM方法は、DCイントラモード(例えば、HEVCにおけるモード1)及び平面的モード(例えば、HEVCにおけるモード0)にも適用され得る。例えば、垂直方向(又は水平方向)の残差予測は、DCイントラ予測が行われた後で適用され得る。更に、垂直方向の残差予測と水平方向の残差予測が両方とも適用されてよく、まず垂直方向(水平方向)のDCPMを適用し、次いで水平方向(垂直方向)のDPCMを第1のDCPMの出力に適用する。
[0134]残差DPCM技法が可逆コード化のための角度的イントラ予測モードに拡張される第7の例は、残差DPCM技法が可逆コード化のために角度的イントラ予測モードに拡張される第6の例と、2つ以上のDPCMが残差に適用され得るという点で同様である。例えば、2つの対角方向のDPCMが、残差DPCM技法が平面的モードへ、次いで、水平方向のDPCM及び垂直方向のDPCMへ、可逆コード化のための角度的イントラ予測モードに拡張される第3の例及び第4の例で説明される。
[0135]本開示において説明される様々な技法はまた、変換がスキップされるとき、非可逆イントラコード化に拡張され得る。例えば、HEVC(例えば、HEVCワーキングドラフト10)では、変換は4×4のブロックについてはスキップされ得る。本開示では、「変換スキップブロック」という用語は、変換の適用がスキップされるブロックに用いる。しかしながら、残差DPCM技法が可逆コード化のための角度的イントラ予測モードに拡張される、上で説明された提案された技法は、変換がスキップされる場合はより大きなブロックサイズに対して使用され得る。例えば、JCTVC−E145は、変換がスキップされるときの非可逆イントラコード化にこれらの技法を拡張するための1つの方法を論じている。一般に、JCTVC−E145において提案された考えは、図2に示されるようにイントラ予測のために参照サンプルを使用する代わりに、原因となる近隣からの再構成されたサンプル値がイントラ予測を実行するために使用され得るというものである。しかしながら、これは、予測処理が各サンプルに対して繰り返されなければならないので、計算負荷が高いことがある。更に、DCイントラ予測モード及び平面的イントラ予測モードに対して、これがどのように機能するかが不明確である。
[0136]本開示の1つ又は複数の技法は、非可逆コード化のための残差DPCMに関する。例えば、本開示の幾つかの例では、変換がスキップされるブロックのための、ほぼ水平イントラ予測モード及びほぼ垂直イントラ予測モードが考慮される。本開示では、ほぼ垂直モード(near-vertical mode)は、予測方向がほぼ垂直であるイントラ予測モードとして定義される。ほぼ垂直モードの例は、図3に示されるような、22と30の間の全てのイントラ予測モードであり得る。同様に、ほぼ水平モード(near-horizontal mode)は、予測方向がほぼ水平であるイントラ予測モードとして定義され得る。ほぼ水平イントラ予測モードの例は、図3に示されるような、6と14の間の全てのイントラ予測モードであり得る。更に、サイズがM(行)×N(列)であるブロックを考える。0≦i≦(M−1)及び0≦j≦(N−1)として、ri,jを、HEVC(例えば、HEVCワーキングドラフト10)において規定されるようなイントラ予測を実行した後の予測残差とする。これは、図5A及び図5Bに示される。ブロックは、任意の成分(例えば、ルーマ、クロマ、R、G、Bなど)を表し得る。
[0137]具体的には、図5Aは、ほぼ垂直モードのための残差DPCM方向を示す。図5Bは、ほぼ垂直モードのための残差DPCM方向を示す。図5A及び図5Bの各々のそれぞれの正方形は、それぞれの残差サンプルri,jに対応する。図5Aの各列の中の垂直な矢印は、ほぼ垂直モードのための残差DPCM方向を示す。図5Bの各行の中の水平な矢印は、ほぼ水平モードのための残差DPCM方向を示す。DPCM方向は、残差DPCMを適用するときの、ビデオコーダがサンプルを処理するとともに方向(例えば、水平方向又は垂直方向)である。
[0138]更に、ほぼ垂直モードを考え、0≦i≦(M−1)及び0≦j≦(N−1)として、Q(r
i,j)を、残差r
i,jの量子化されたバージョンを示すものとする。残差値のブロックは、Rと示され得る。言い換えると、残差r
i,jは、量子化と逆量子化とを経ている。
として取得され得る。
[0139]従って、上の例では、イントラ予測モードが垂直又はほぼ垂直であるとき、
同様に、イントラ予測モードが水平又はほぼ水平であるとき、
イントラ予測モードが垂直であるとき、再構成される残差サンプルQ(r
i,j)は、
とも書かれ得る。
同様に、モードが水平であるとき、再構成される残差サンプルQ(r
i,j)は、
とも書かれ得る。
[0141]従って、イントラ予測モードが垂直又はほぼ垂直であるとき、Rの一番左の列の中の残差値に対応する再構成された残差値は、
しかしながら、Rの一番左の列の右にあるRの各列の中の各々のそれぞれの残差値について、ビデオエンコーダ20は、対応する再構成される残差値を、
同様に、イントラ予測モードが水平又はほぼ水平であるとき、Rの一番上の行の中の残差値に対応する再構成された残差値は、
しかしながら、Rの一番上の行の下にあるRの各行の中のRの各々のそれぞれの残差値について、ビデオエンコーダ20は、対応する再構成される残差値を、
[0142]デコーダ側では、計算(43)及び(44)が、再構成された残差サンプルQ(ri,j)を生成するために繰り返され、ここで0≦i≦(M−1)及び0≦j≦(N−1)である。ビデオデコーダ30は、再構成されるサンプル値を生成するために、再構成された残差サンプル値を元の予測値に加算することができる。例えば、ビデオデコーダ30は、現在のブロック(例えば、現在のCU)のサンプル値を再構成するために、予測ブロックの対応するサンプルに再構成された残差サンプルQ(ri,j)を加算することができる。DPCMを使用して符号化される残差値から再構成される残差値を決定する処理は、本明細書では「逆RDPCM」と呼ばれ得る。通常は、ビデオエンコーダ20とビデオデコーダ30の両方が、再構成されたサンプルを適切なビット深度へと切り捨てる。しかしながら、この場合は、切り捨て演算は、量子化された残差を再構成するための逆RDPCM処理の後で実行される。
[0143]上の例は、対角方向にも単純な方式で拡張され得る。例えば、一例では、イントラ予測方向が対角右下方向に近いとき(例えば、イントラ予測モード18)、
として決定され得る。
再構成される残差サンプルQ(r
i,j)は、
として決定され得る。
他の概対角モード(例えば、概左下モード(モード34)及び概右上モード(モード2))は同様に扱われ得る。
[0144]更に、幾つかの例では、DPCMを再構成された残差に適用する代わりに、DPCMは、再構成された残差のビットシフトされたバージョンに適用され得る。例えば、変換スキップブロックに対して、ビデオデコーダ30は、各サンプルに対して、逆量子化演算と、7の左シフトと、次いで、(20−ビット深度)の右シフト(例えば、オフセットを加算した後で)とを実行することができる。この文脈では、ビット深度は、サンプル値又は変換係数を表すために使用されるビットの数を指し得る。逆量子化演算では、オフセットを加算した後で、bdShift分の右シフトがある。
[0145]例えば、JCTVC−M1005_v2のセクション8.6.2(即ち、HEVCのための範囲拡張規格のドラフト)は、TUの変換ブロックの変換係数レベルのアレイに基づいて残差サンプルのアレイを決定する、スケーリング及び変換の処理を記述する。JCTVC−M1005_v2のセクション8.6.2では、変換係数レベルのアレイは、変換及び量子化が変換ブロックに適用されない場合、残差サンプル値を含み得る。JCTVC−M1005_v2のセクション8.6.2のある部分が以下で転載される。
残差サンプルrの(nTbS)x(nTbS)のアレイは、次のように導出される。
−cu_transquant_bypass_flagが1に等しい場合、(nTbS)x(nTbS)のアレイrは、変換係数の(nTbS)x(nTbS)のアレイTransCoeffLevel[xTbY][yTbY][cIdx]に等しく設定される。
−それ以外の場合、以下の順序のステップが適用される。
1.8.6.3項において規定されるような変換係数のためのスケーリング処理が、変換ブロック位置(xTbY,yTbY)、変換ブロックのサイズnTbS、色成分変数cIdx、及び量子化パラメータqPを入力として呼び出され、出力は、スケーリングされた変換係数dの(nTbS)x(nTbS)のアレイである。
2.残差サンプルrの(nTbS)x(nTbS)のアレイは、次のように導出される。
−transform_skip_flag[xTbY][yTbY][cIdx]が1に等しい場合、x=0...nTbS−1、y=0...nTbS−1として、残差サンプルアレイ値r[x][y]は次のように導出される。
−それ以外の(transform_skip_flag[xTbY][yTbY][cIdx]が0に等しい)場合、8.6.4項において規定されるようなスケーリングされた変換係数のための変換処理が、変換ブロック位置(xTbY,yTbY)、変換ブロックのサイズnTbS、色成分変数cIdx、及びスケーリングされた変換係数dの(nTbS)x(nTbS)のアレイを入力として呼び出され、出力は、残差サンプルrの(nTbS)x(nTbS)のアレイである。
3.変数bdShiftは次のように導出される。
4.x=0...nTbS−1、y=0...nTbS−1として、残差サンプル値r[x][y]は次のように修正される。
[0146]上で示されたように、JCTVC−M1005_v2のセクション8.6.2は、変換及び量子化が変換ブロックに適用される場合、JCTVC−M1005_v2のセクション8.6.3が呼び出されることを規定する。JCTVC−M1005_v2のセクション8.6.3は、変換係数のためのスケーリング処理を記述する。JCTVC−M1005_v2のセクション8.6.3が以下で転載される。
この処理への入力は以下の通りである。
−現在のピクチャの左上のルーマサンプルに対する現在のルーマ変換ブロックの左上のサンプルを規定するルーマ位置(xTbY,yTbY)、
−現在の変換ブロックのサイズを規定する変数nTbS、
−現在のブロックの色成分を規定する変数cIdx、
−量子化パラメータを規定する変数qP。
この処理の出力は、要素d[x][y]を伴うスケーリングされた変換係数の(nTbS)x(nTbS)のアレイdである。
変数bdShiftは次のように導出される。
−cIdxが0に等しい場合、
リストlevelScale[]は、levelScale[k]={40,45,51,57,64,72}として規定され、k=0...5である。
x=0...nTbS−1、y=0...nTbS−1として、スケーリングされた変換係数d[x][y]の導出について、次のことが当てはまる。
−スケーリング係数m[x][y]は次のように導出される。
−scaling_list_enabled_flagが0に等しい場合、
−それ以外の場合(scaling_list_enabled_flagが1に等しい)、
ここで、sizeIDは、(nTbS)x(nTbS)に等しい量子化行列のサイズについて表7−3において規定され、matrixIdは、sizeId、CuPredMode[xTbY][yTbY]、及びcIdxのために、それぞれ、表7−4において規定される。
−スケーリングされた変換係数d[x][y]は次のように導出される。
[0147]JCTVC−M1005_v2のセクション8.6.3において示されるように、ビデオデコーダ30は、JCTVC−M1005_v2の式8−274を使用して、スケーリングされた変換係数d[x][y]を決定することができる。式8−274において、Clip3(...)関数が、
として定義される。
[0148]本開示の1つ又は複数の技法によれば、逆DPCMを再構成された残差に適用する代わりに、逆DPCMは、左シフトを適用する前に逆量子化されたサンプル値に適用され得る。同様に、変換係数の代わりに、7の左シフトが、逆量子化の後に適用され得る。例えば、x=0...nTbS−1、y=0...nTbS−1として、残差サンプルのアレイr[x][y]は、JCTVC−M1005_v2の式8−267に示されるように導出され得る。
[0149]幾つかの例では、逆DPCMは、逆量子化の後で、又は7の左シフトの後で、サンプルに適用される。同様に、オフセットを加算した後で(20−ビット深度)の右シフトが、残差を再構成するために、処理の最後で適用される。例えば、x=0...nTbS−1及びy=0...nTbS−1として、残差サンプルr[x][y]は、JCTVC−M1005_v2の式8−269に示されるように修正され得る。
その場合、逆DPCMは、より良好な精度を保つために、(20−ビット深度)未満の量の右シフトの後で適用されてよく、その後、全体の右シフトの量が(20−ビット深度)となるように、残りの右シフトを適用する。
[0150]幾つかの例では、ビデオエンコーダ20は、変換ブロックの残差サンプルに変換を適用しないが、変換ブロックの残差サンプルを量子化する。言い換えると、ビデオエンコーダ20は、変換がスキップされる、ある形態の非可逆コード化を適用し得る。そのような例では、ビデオデコーダ30は、ビットストリーム中のシンタックス要素から、変換ブロックの量子化された残差サンプルを決定し、変換ブロックに逆変換を適用することなく変換ブロックの残差サンプルを再構成するために変換ブロックの量子化された残差サンプルを逆量子化することができる。
[0151]代替的に、元のサンプル値の代わりに再構成された(量子化された)サンプル値を使用して、勾配フィルタリングが、本明細書で説明されるように修正され得る。HEVC(例えば、HEVCワーキングドラフト10)では、水平モード及び垂直モードのための予測を取得するとき、勾配項が、(垂直モードでは)第1の列、又は(水平モードでは)第1の行のための予測に加算される。これは、勾配フィルタリングと呼ばれ得る。勾配項の加算は、残差DPCMを使用するときに有効又は無効にされ得る。本開示は、残差予測が使用されるときに、水平イントラ予測モード及び垂直イントラ予測モードのための勾配フィルタリングに対する改善を提案する。
[0152]例えば、JCTVC−L0117において提案されるような残差DPCMが使用されていることを考える。HEVCワーキングドラフト10では、ルーマ成分に対して、及び、32よりも小さなブロックサイズに対して、垂直イントラ予測モードについて、0≦i≦M−1であるサンプルP
i,0のための予測は、
によって与えられる。
上の式では、>>はビットごとの右シフトを表し、Clip演算は、予測値をサンプル値の範囲へと切り捨てる。残差DPCMでは、垂直イントラ予測モードについて、サンプルP
i,jのための予測はP
i-1,jであるので、第1の列の中のサンプルに対する勾配項は、((P
i,-1−P
i-1,-1)>>1)として修正される。従って、0≦i≦M−1として、サンプルP
i,0のための予測は、
である。
[0153]更に、勾配フィルタリングは、次のように、垂直イントラ予測モードのために他の列に拡張され得る。左及び左上の元のサンプルが可逆モードにおいて利用可能であるので、勾配項は、垂直イントラ予測モードでは、任意の列のための予測に加算され得る。従って、垂直イントラ予測モードについて、0≦i≦M−1、0≦j≦N−1として、サンプルP
i,jのための予測は、
へと修正され得る。
垂直イントラ予測モードのための修正された勾配フィルタリングは、任意の成分及び任意のブロックサイズに適用され得る。
[0154]この概念は、水平イントラ予測モードにも拡張され得る。HEVCワーキングドラフト10では、ルーマ成分に対して、及び、32よりも小さなブロックサイズに対して、水平イントラ予測モードについて、0≦j≦N−1であるサンプルP
0,jのための予測は、
によって与えられる。
上の式では、>>はビットごとの右シフトを表し、Clip演算は、予測値をサンプル値の範囲へと切り捨てる。残差DPCMでは、水平イントラ予測モードについて、サンプルP
i,jのための予測はP
i,j-1であるので、第1の行の中のサンプルに対する勾配項は、((P
-i,j−P
-1,j-1)>>1)へと修正され得る。0≦j≦N−1として、サンプルP
0,jのための予測は、
によって決定され得る。
[0155]勾配フィルタリングは、次のように、水平イントラ予測モードのために他の列に拡張され得る。上及び左上の元のサンプルが可逆モードにおいて常に利用可能であるので、勾配項は、水平イントラ予測モードでは、任意の行のための予測に加算され得る。従って、水平イントラ予測モードについて、0≦i≦M−1、0≦j≦N−1として、サンプルP
i,jのための予測は、
によって与えられ得る。
[0156]JCTVC−M1005_v2のセクション7.3.2.3において記載されるように、PPSは、記号データ隠匿有効化シンタックス要素(sign data hiding enabled syntax element)(例えば、sign_data_hiding_enabled_flag)を含み得る。更に、JCTVC−M1005_v2のセクション7.3.8.11に示されるように、記号データ隠匿有効化シンタックス要素が特定の値(例えば、1)を有するとき、変換係数の正/負の記号を示すシンタックス要素(例えば、coeff_sign_flagシンタックス要素)はTUから省略され得る。従って、ビデオエンコーダ20は、ビットストリームにおいて、記号データ隠匿が現在のピクチャに対して、従って現在のピクチャ内の現在のブロックに対して有効にされるという明示的な指示(例えば、sign_data_hiding_enabled_flag)を信号伝達することができる。同様に、ビデオデコーダ30は、ビットストリームから、記号データ隠匿が現在のピクチャに対して、従って現在のピクチャ中の現在のブロックに対して有効にされるという明示的な指示(例えば、sign_data_hiding_enabled_flag)を取得することができる。JCTVC−M1005_v2のセクション7.3.8.11が以下で転載される。
[0157]JCTVC−M1005_v2のセクション7.4.3.3において規定されるように、0に等しいsign_data_hiding_enabled_flagは、記号ビット隠匿(sign bit hiding)(即ち、記号データ隠匿(sign data hiding))が無効にされることを規定する。1に等しいsign_data_hiding_enabled_flagは、記号ビット隠匿が有効にされることを規定する。本開示は、「記号ビット隠匿」及び「記号データ隠匿」という用語を交換可能に使用し得る。更に、ビデオコーダは、サブブロックスキャン順序に従って、変換係数を表すシンタックス要素を編成することができる。サブブロックスキャン順序では、ビデオコーダは変換係数ブロックをサブブロックに分割し、サブブロックは幅が変換係数4個分であり高さが変換係数4個分である。ビデオコーダは、サブブロックの各々のために記号隠匿変数(即ち、signHidden)を決定することができる。変換係数ブロックの4×4のサブブロック中の最初の有意な(即ち、0ではない)変換係数と変換係数ブロックの4×4のサブブロック中の最後の有意な変換係数との間の位置の差が3より大きく(即ち、lastSignScanPos−firstSigScanPos>3)、変換及び量子化のステップが現在のCUについて迂回されない(即ち、スキャンされない)(即ち、!cu_transquant_bypass_flag)とき、ビデオコーダは、4×4のサブブロックのための記号隠匿変数(即ち、signHidden)が1に等しいと決定することができる。変換がスキップ又は迂回される場合、変換係数は実際に予測残差である。
[0158]4×4のサブブロック中の各々のそれぞれの変換係数について、それぞれの変換係数のための記号シンタックス要素(例えば、coeff_sign_flag[n])は、それぞれの変換係数が有意である(即ち0ではない)場合、及び、記号ビット隠匿が有効にされないことをsign_data_hiding_enabled_flagが規定し、4×4のサブブロックのための記号隠匿変数が1に等しくなく、又はそれぞれの変換係数が4×4のサブブロック中の最初の有意な変換係数ではない場合、ビットストリーム中で信号伝達される。例えば、記号ビット隠匿が有効にされることをsign_data_hiding_enabled_flagが示し、4×4のサブブロックの最初の有意な係数と4×4のサブブロックの最後の有意な係数との間の位置の差が3より大きく、4×4のサブブロックが変換及び量子化迂回コード化(例えば、可逆コード化)を使用して生成されたものではなく、それぞれの変換係数が4×4のサブブロックの最初の有意な変換係数である場合、有意な変換係数の記号は信号伝達されない。
[0159]JCTVC−M1005_v2のセクション7.4.3.3において規定されるように、coeff_sign_flag[n]は、スキャン位置nのための変換係数レベルの記号を次のように規定する。coeff_sign_flag[n]が0に等しい場合、対応する変換係数レベルは正の値を有する。それ以外の(coeff_sign_flag[n]が1に等しい)場合、対応する変換係数レベルは負の値を有する。coeff_sign_flag[n]が存在しないとき、coeff_sign_flag[n]は0に等しいと推測される。
[0160]記号データ隠匿が有効にされるとき、ビデオエンコーダ20は、変換係数の値/残差サンプル値自体に、変換係数/残差サンプルの記号を示すデータを埋め込むことができる。例えば、ビデオエンコーダ20は、4×4のサブブロック中の第1の有意な係数が正か負かを決定するためにパリティ情報がビデオデコーダ30によって使用され得るように、変換係数/残差サンプルを表す1つ又は複数のビットを修正することができる。例えば、4×4のサブブロック中の変換係数の絶対値の合計が偶数である場合、記号は正であると推測され、それ以外の場合、記号は負であると推測される。通常、ビデオエンコーダ20は、4×4のサブブロック中の量子化された変換係数/残差サンプルの1つの表現の最下位ビットを変更することができる。その結果、ユーザは、ビデオエンコーダ20が変換係数/残差サンプルの記号を示すために変換係数/残差サンプルの表現のビットを修正したことによる、視覚的品質の低下を知覚することが可能ではなくなり得る。
[0161]可逆コード化のために本開示の説明される技法を使用するとき、説明された技法が適用されるブロックのために記号データ隠匿を実装することは、ビデオエンコーダにとって困難であり得る。これらは、変換がスキップされ、モードが、平面的であり、及び/又はDCであり、及び/又は残差DPCMが適用されるモードである、イントラブロックである。変換係数/残差サンプルの記号を示すためにビデオエンコーダ20が変換係数/残差サンプルの表現中のビットの値を変更することによって、誤差がもたらされ得る。更に、これらの技法を使用すると、1つの修正された残差サンプルの誤差が後続の残差サンプルに伝播し得る。そのような誤差は、残差DPCMが適用されるときにより大きくなることがあり、それは、残差DPCMが、変換係数/残差サンプルを決定するためにビデオデコーダ30が複数の変換係数/残差サンプルを一緒に加算することに依存し得るからである。従って、記号データ隠匿は実際に、性能の劣化をもたらし得る。そのような場合、記号データ隠匿は規範的には無効にされ得る。これは、記号データ隠匿が使用されていることがビットストリーム中で(又はデフォルトの選択として)示されていても、記号データ隠匿があるブロックに対しては無効にされることを意味する。
[0162]一例では、ビデオコーダは、ビデオコーダが変換をブロックに適用しない場合、ブロックが平面的イントラ予測モード又はDCイントラ予測モードを使用してイントラ予測される場合、又は、ウィズ残差DPCMが適用されるのためのイントラ予測モードを使用してブロックがイントラ予測される場合、そのブロックのための記号データ隠匿を無効にすることができる。例えば、幾つかの例では、記号データ隠匿は、変換がスキップされるとき、及びブロックがイントラコード化されるとき、及びイントラモードが平面的イントラ予測であるとき、無効にされ得る。その上、幾つかの例では、記号データ隠匿は、変換がスキップされるとき、及びブロックがイントラコード化されるとき、及びイントラモードがDCイントラ予測であるとき、無効にされ得る。更に、幾つかの例では、記号データ隠匿は、変換がスキップされるとき、及びブロックがイントラコード化されるとき、及びイントラモードが残差DPCMの適用されるモードであるとき、無効にされ得る。
[0163]例えば、ビデオエンコーダ20は、現在のブロックが残差データへの変換(例えば、離散コサイン変換、方向的変換、又は他の変換)の適用を伴わずに非可逆コード化を使用して生成され、残差DPCMが使用されるイントラ予測モードを使用して現在のブロックがイントラ予測される場合、記号データ隠匿が現在のブロックに対して無効にされると決定することができる。記号データ隠匿が現在のブロックに対して無効にされるとき、ビデオエンコーダ20は、ビットストリームに、現在のブロック中の各々のそれぞれの有意な値に対して、それぞれの有意な値が正か負かを示すそれぞれのシンタックス要素を含めることができる。同様に、この例では、ビデオデコーダ30は、現在のブロックが残差データへの変換(例えば、離散コサイン変換、方向的変換、又は他の変換)の適用を伴わずに非可逆コード化を使用して生成され、残差DPCMが使用されるイントラ予測モードを使用して現在のブロックがイントラ予測される場合、記号データ隠匿が現在のブロックに対して無効にされると決定することができる。そのような例では、記号データ隠匿が現在のブロックに対して無効にされるとき、ビデオデコーダ30は、ビットストリームから、ブロック中の各々のそれぞれの有意な値に対して、それぞれの有意な値が正か負かを示すそれぞれのシンタックス要素を取得する。
[0164]他の例では、記号データ隠匿は、変換がスキップされるときにあるブロックに対して、ブロックがイントラコード化されるときにあるブロックに対して、又は全ての変換スキップブロックに対して、無効にされ得る。従って、この例では、記号データ隠匿は、どのイントラ予測モードが使用されるかとは無関係に無効にされ得る。例えば、ビデオコーダは、現在のブロックの残差データへの変換の適用を伴わずに現在のブロックがコード化される場合、及び、現在のブロックがDCイントラ予測モード又は平面的イントラ予測モードを使用してイントラコード化される場合、記号データ隠匿が現在のブロックに対して無効にされると決定することができる。
[0165]本開示は、残差DPCMのための技法とDC及び平面的に対する修正とを論じたことに留意されたい。これらの技法の任意の1つ又は組合せが使用され得る。
[0166]図6は、本開示の技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。図6は、説明のために提供されるものであり、本開示で広く例示され説明される技法を限定するものと見なされるべきではない。説明の目的で、本開示は、HEVCコード化の文脈においてビデオエンコーダ20を説明する。しかしながら、本開示の技法は、他のコード化規格又は方法に適用可能であり得る。
[0167]図6の例において、ビデオエンコーダ20は、予測処理ユニット100と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換処理ユニット110と、再構成ユニット112と、フィルタユニット114と、復号ピクチャバッファ116と、エントロピー符号化ユニット118とを含む。予測処理ユニット100は、インター予測処理ユニット120と、イントラ予測処理ユニット126とを含む。インター予測処理ユニット120は、動き推定ユニット122と、動き補償ユニット124とを含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、又は異なる機能コンポーネントを含み得る。
[0168]ビデオエンコーダ20は、ビデオデータを受信することができる。ビデオエンコーダ20は、ビデオデータのピクチャのスライス中の各CTUを符号化することができる。CTUの各々は、等しいサイズのルーマコード化ツリーブロック(CTB)及びピクチャの対応するCTBと関連付けられ得る。CTUを符号化することの一部として、予測処理ユニット100は、CTUのCTBを徐々により小さくなるブロックに分割するために、4分木区分を実行することができる。より小さいブロックは、CUのコード化ブロックであり得る。例えば、予測処理ユニット100は、CTUと関連付けられたCTBを4つの等しいサイズのサブブロックに区分することができ、サブブロックの1つ又は複数を4つの等しいサイズのサブサブブロックに区分することができ、以下同様である。
[0169]ビデオエンコーダ20は、CUの符号化された表現(即ち、コード化されたCU)を生成するために、CTUのCUを符号化することができる。CUを符号化することの一部として、予測処理ユニット100は、CUの1つ又は複数のPUの間で、CUと関連付けられたコード化ブロックを区分することができる。従って、各PUは、ルーマ予測ブロック及び対応するクロマ予測ブロックと関連付けられ得る。ビデオエンコーダ20及びビデオデコーダ30は、様々なサイズを有するPUをサポートし得る。上で示されたように、CUのサイズはCUのルーマコード化ブロックのサイズを指すことがあり、PUのサイズはPUのルーマ予測ブロックのサイズを指すことがある。特定のCUのサイズを2N×2Nと仮定すると、ビデオエンコーダ20及びビデオデコーダ30は、イントラ予測の場合は2N×2N又はN×NのPUサイズをサポートすることができ、インター予測の場合は2N×2N、2N×N、N×2N、N×N、又は同様の対称のPUサイズをサポートすることができる。ビデオエンコーダ20及びビデオデコーダ30はまた、インター予測のための2N×nU、2N×nD、nL×2N、及びnR×2NのPUサイズについて非対称区分をサポートすることができる。
[0170]インター予測処理ユニット120は、CUの各PUに対してインター予測を実行することによって、PUのための予測データを生成することができる。PUのための予測データは、PUの予測サンプルブロック(即ち、予測ブロック)とPUのための動き情報とを含み得る。インター予測ユニット121は、PUがIスライス中にあるか、Pスライス中にあるか、又はBスライス中にあるかに応じて、CUのPUについて異なる演算を実行することができる。Iスライス中では、全てのPUがイントラ予測される。従って、PUがIスライス中にある場合、インター予測ユニット121は、PUに対してインター予測を実行しない。従って、Iモードで符号化されたブロックに対して、予測ブロックは、同じフレーム内の以前に符号化された隣接ブロックからの空間的予測を使用して形成される。
[0171]PUがPスライス中にある場合、動き推定ユニット122は、PUのための参照領域について参照ピクチャのリスト(例えば、「RefPicList0」)中の参照ピクチャを探索し得る。PUのための参照領域は、PUのサンプルブロックに最も密接に対応するサンプル(例えば、サンプルブロック)を含む参照ピクチャ内の領域であり得る。動き推定ユニット122は、PUのための参照領域を含んでいる参照ピクチャのRefPicList0中での位置を示す参照インデックスを生成することができる。加えて、動き推定ユニット122は、PUのコード化ブロックと参照領域と関連付けられた参照位置との間の空間変位を示す動きベクトルを生成することができる。例えば、動きベクトルは現在の復号されたピクチャ中の座標から参照ピクチャ内の座標までのオフセットを提供する、2次元ベクトルであり得る。動き推定ユニット122は、PUの動き情報として参照インデックスと動きベクトルとを出力することができる。動き補償ユニット124は、PUの動きベクトルによって示された参照位置における実際の又は補間されたサンプルに基づいて、PUの予測サンプルブロックを生成することができる。
[0172]PUがBスライス中にある場合、動き推定ユニット122は、PUのために単予測又は双予測を実行することができる。PUのための単予測を実行するために、動き推定ユニット122は、PUのための参照領域についてRefPicList0又は第2の参照ピクチャリスト(「RefPicList1」)の参照ピクチャを探索することができる。動き推定ユニット122は、PUの動き情報として、参照領域を含んでいる参照ピクチャのRefPicList0又はRefPicList1中での位置を示す参照インデックス、PUのサンプルブロックと参照領域と関連付けられた参照位置との間の空間変位を示す動きベクトル、及び参照ピクチャがRefPicList0中にあるかRefPicList1中にあるかを示す1つ又は複数の予測方向インジケータを、出力することができる。動き補償ユニット124は、PUの動きベクトルによって示される参照領域における実際のサンプル又は補間されたサンプルに少なくとも部分的に基づいて、PUの予測サンプルブロックを生成することができる。
[0173]PUのための双方向インター予測を実行するために、動き推定ユニット122は、PUのための参照領域についてRefPicList0中の参照ピクチャを探索することができ、また、PUのための別の参照領域についてRefPicList1中の参照ピクチャを探索することができる。動き推定ユニット122は、参照領域を含んでいる参照ピクチャのRefPicList0及びRefPicList1中での位置を示す参照ピクチャインデックス(即ち、参照インデックス)を生成することができる。加えて、動き推定ユニット122は、参照領域と関連付けられる参照位置とPUの予測ブロックとの間の空間変位を示す動きベクトルを生成することができる。PUの動き情報は、PUの参照インデックスと動きベクトルとを含み得る。動き補償ユニット124は、PUの動きベクトルによって示される参照領域における実際のサンプル又は補間されたサンプルに少なくとも部分的に基づいて、PUの予測サンプルブロックを生成することができる。
[0174]本開示の1つ又は複数の技法によれば、予測処理ユニット100内の1つ又は複数のユニット(イントラ予測処理ユニット126のような)が、ビデオ符号化処理の一部として、本明細書で説明される技法の1つ又は複数を実行することができる。
[0175]イントラ予測処理ユニット126は、PUに対してイントラ予測を実行することによって、PUのための予測データを生成することができる。PUのための予測データは、PUのための予測ブロックと、様々なシンタックス要素とを含み得る。イントラ予測処理ユニット126は、Iスライス中、Pスライス中、及びBスライス中のPUに対してイントラ予測を実行することができる。
[0176]PUに対してイントラ予測を実行するために、イントラ予測処理ユニット126は、PUのための予測データの複数のセットを生成するために、複数のイントラ予測モードを使用することができる。PUのための予測データのセットを生成するために幾つかのイントラ予測モードを使用するために、イントラ予測処理ユニット126は、そのイントラ予測モードと関連付けられた方向へ、PUのサンプルブロック全体にわたって、隣接するPUのサンプルブロックからのサンプルを拡張することができる。隣接するPUは、PU、CU、及びCTUについて左から右、上から下の符号化順序を仮定すると、PUの上、右上、左上、又は左にあり得る。イントラ予測処理ユニット126は、様々な数のイントラ予測モード、例えば33個の方向のイントラ予測モードを使用することができる。幾つかの例では、イントラ予測モードの数は、PUと関連付けられる領域のサイズに依存し得る。その上、本明細書で説明されるように、イントラ予測処理ユニット126は、そのようなコード化モードを改善するために、可逆コード化モードと本明細書で説明される修正とを実装することができる。本開示の幾つかの技法によれば、イントラ予測処理ユニット126は、あるブロック内の他のサンプル値のイントラDC予測を実行するために、そのブロック内の1つ又は複数の元のサンプル値を使用することができる。
[0177]予測処理ユニット100は、PUのためにインター予測処理ユニット120によって生成された予測データ、又はPUのためにイントラ予測処理ユニット126によって生成された予測データの中から、CUのPUのための予測データを選択することができる。幾つかの例では、予測処理ユニット100は、予測データのセットのレート/歪みの尺度に基づいて、CUのPUのための予測データを選択する。選択された予測データの予測サンプルブロックは、本明細書では、選択された予測サンプルブロックと呼ばれ得る。
[0178]残差生成ユニット102は、CUのコード化ブロック(例えば、ルーマコード化ブロック、Cbコード化ブロック、及びCrコード化ブロック)、並びにCUのPUの選択された予測ブロック(例えば、ルーマブロック、Cbブロック、及びCrブロック)に基づいて、CUのための残差ブロック(例えば、ルーマ残差ブロック、Cb残差ブロック、及びCr残差ブロック)を生成することができる。例えば、残差生成ユニット102は、残差ブロック中の各サンプルが、CUのコード化ブロック中のサンプルとCUのPUの対応する選択された予測ブロック中の対応するサンプルとの間の差分に等しい値を有するように、CUの残差ブロックを生成することができる。
[0179]変換処理ユニット104は、CUと関連付けられる残差ブロックをCUのTUと関連付けられる変換ブロックに区分するために、4分木区分を実行することができる。従って、TUは、ルーマ変換ブロック及び2つのクロマ変換ブロックと関連付けられ得る。CUのTUのルーマ変換ブロック及びクロマ変換ブロックのサイズ及び位置は、CUのPUの予測ブロックのサイズ及び位置に基づくことも基づかないこともある。「残差4分木」(RQT)として知られる4分木構造は、領域の各々と関連付けられたノードを含み得る。CUのTUは、RQTのリーフノードに対応し得る。
[0180]変換処理ユニット104は、TUの変換ブロックに1つ又は複数の変換を適用することによって、CUの各々のTUのための変換係数ブロックを生成することができる。変換処理ユニット104は、TUと関連付けられる変換ブロックに様々な変換を適用することができる。例えば、変換処理ユニット104は、離散コサイン変換(DCT)、方向的変換、又は概念的に同様の変換を変換ブロックに適用することができる。幾つかの例において、変換処理ユニット104は変換ブロックに変換を適用しない。そのような例では、変換ブロックは変換係数ブロックとして扱われ得る。
[0181]量子化ユニット106は、係数ブロック中の変換係数を量子化することができる。量子化処理は、変換係数の一部又は全てと関連付けられるビット深度を低減し得る。例えば、量子化の間にnビットの変換係数がmビット変換係数へと切り捨てられてよく、このとき、nはmよりも大きい。量子化ユニット106は、CUと関連付けられる量子化パラメータ(QP)値に基づいて、CUのTUと関連付けられる係数ブロックを量子化することができる。ビデオエンコーダ20は、CUと関連付けられたQP値を調整することによって、CUと関連付けられた係数ブロックに適用される量子化の程度を調整することができる。量子化は情報の損失をもたらすことがあり、従って、量子化された変換係数は、元の係数よりも低い精度を有することがある。
[0182]本開示の幾つかの例によれば、0≦i≦(M−1)及び0≦j≦(N−1)に対して次のことが実行されてよく、ここでMはブロックの高さであり、Nはブロックの幅である。そのような例では、ブロックは、イントラ予測を使用して生成される予測ブロック中のサンプル値と元のサンプル値との差を示す残差値を含む、残差ブロックである。更に、そのような例では、ブロックは変換スキップブロックである。
として定義される。
上の式では、Q(r
(i-1),j)は、残差値r
i,jの一列左の残差値r
i-1,jのための再構成された残差値を示す。ブロックが水平イントラ予測モードを使用してコード化される場合、
として定義される。
上の式では、Q(r
i,(j-1))は、残差値r
i,jの一行上の残差値r
i,j-1のための再構成された残差値を示す。
[0183]逆量子化ユニット108及び逆変換処理ユニット110は、係数ブロックから残差ブロックを再構成するために、それぞれ、係数ブロックに逆量子化と逆変換とを適用することができる。再構成ユニット112は、TUと関連付けられる再構成された変換ブロックを生成するために、再構成された残差ブロックを、予測処理ユニット100によって生成された1つ又は複数の予測ブロックからの対応するサンプルに加算することができる。このようにCUの各TUのための変換ブロックを再構成することによって、ビデオエンコーダ20は、CUのコード化ブロックを再構成することができる。
[0184]フィルタユニット114は、CUと関連付けられるコード化ブロック中のブロッキングアーティファクトを低減するために、1つ又は複数のデブロッキング動作を実行することができる。復号ピクチャバッファ116は、フィルタユニット114が再構成されたコード化ブロックに対して1つ又は複数のデブロッキング動作を実行した後、再構成されたコード化ブロックを記憶することができる。インター予測処理ユニット120は、他のピクチャのPUに対してインター予測を実行するために、再構成されたコード化ブロックを含んでいる参照ピクチャを使用することができる。加えて、イントラ予測処理ユニット126は、CUと同じピクチャ中の他のPUに対してイントラ予測を実行するために、復号ピクチャバッファ116中の再構成されたコード化ブロックを使用することができる。
[0185]エントロピー符号化ユニット118は、ビデオエンコーダ20の他の機能コンポーネントからデータを受信することができる。例えば、エントロピー符号化ユニット118は、量子化ユニット106から係数ブロックを受信することができ、予測処理ユニット100からシンタックス要素を受信することができる。エントロピー符号化ユニット118は、エントロピー符号化されたデータを生成するために、データに対して1つ又は複数のエントロピー符号化演算を実行することができる。例えば、エントロピー符号化ユニット118は、コンテキスト適応型可変長コード化(CAVLC)演算、CABAC演算、variable−to−variable(V2V)lengthコード化演算、シンタックスベースコンテキスト適応型バイナリ算術コード化(SBAC)演算、確率間隔区分エントロピー(PIPE)コード化演算、指数ゴロム符号化演算、又は別のタイプのエントロピー符号化演算をデータに対して実行することができる。ビデオエンコーダ20は、エントロピー符号化ユニット118によって生成されたエントロピー符号化されたデータを含むビットストリームを出力することができる。例えば、ビットストリームはCUのRQTを表すデータを含み得る。
[0186]本開示の幾つかの例によれば、現在のブロックが残差データへの変換の適用を伴わずに生成され、残差DPCMが使用されるイントラ予測モードを使用して現在のブロックがイントラ予測される場合、エントロピー符号化ユニット118は、記号データ隠匿が現在のブロックに対して無効にされると決定することができる。記号データ隠匿が現在のブロックに対して無効にされるとき、エントロピー符号化ユニット118は、ビットストリームに、現在のブロック中の値が正か負かを示すシンタックス要素を含めることができる。
[0187]図6の要素130は、可逆コード化と非可逆コード化のどちらかを選択するためのスイッチ(又は概念的なスイッチ)を表し得る。制御信号132は、可逆コード化又は非可逆コード化を決定する予測処理ユニット100からの信号を表すことができ、要素134は、逆変換と逆量子化の処理を迂回する復号ループを表すことができる。幾つかの例では、可逆コード化は、変換と量子化とをなくす。他の例では、可逆コード化は、変換を実行して量子化処理だけをなくす。更に他の例では、可逆コード化は、変換及び量子化の使用とともに実施され得るが、量子化パラメータは、あらゆる量子化データ損失を避けるように選択され得る。これら及び他の例は、本開示の範囲内にある。
[0188]要素136及び138は、変換スキップモードを実施するために使用され得るスイッチ(又は概念的なスイッチ)を表す。変換スキップモードでは、残差データは変換処理ユニット104によって実行されないが、量子化ユニット106によって量子化される。従って、要素136の破線は2つの可能なデータパスを表す。1つのデータでは、残差データは量子化ユニット106によって量子化され、他のデータパスでは、残差データは量子化ユニット106によって量子化されない。同様に、ビデオエンコーダ20の復号ループにおいて、残差データは逆量子化ユニット108によって逆量子化されるが、逆変換処理ユニット110によって変換されない。従って、要素138の破線は、残差データが逆量子化ユニット108によって逆量子化されるが、逆変換処理ユニット110によって変換されない、代替的なデータパスを表す。
[0189]図7は、本開示の技法を実装するように構成された例示的なビデオデコーダ30を示すブロック図である。図7は、説明を目的に提供されるものであり、本開示において広く例示され説明される技法を限定するものではない。説明の目的で、本開示は、HEVCコード化の状況においてビデオデコーダ30を説明する。しかしながら、本開示の技法は、他のコード化規格又は方法に適用可能であり得る。
[0190]図7の例では、ビデオデコーダ30は、エントロピー復号ユニット150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構成ユニット158と、フィルタユニット160と、復号ピクチャバッファ162とを含む。予測処理ユニット152は、動き補償ユニット164とイントラ予測処理ユニット166とを含む。他の例では、ビデオデコーダ30は、より多数の、より少数の、又は異なる機能コンポーネントを含み得る。
[0191]ビデオデコーダ30は、ビットストリームを受信することができる。エントロピー復号ユニット150は、ビットストリームからシンタックス要素を復号するためにビットストリームを解析することができる。エントロピー復号ユニット150は、ビットストリーム中のエントロピー符号化されたシンタックス要素をエントロピー復号することができる。予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット156、再構成ユニット158、及びフィルタユニット160は、ビットストリームから抽出されたシンタックス要素に基づいて、復号されたビデオデータを生成することができる。
[0192]ビットストリームは、一連のNAL単位を備え得る。ビットストリームのNAL単位は、コード化されたスライスNAL単位を含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット150は、コード化されたスライスNAL単位からシンタックス要素を抽出し、エントロピー復号することができる。コード化されたスライスの各々は、スライスヘッダと、スライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含み得る。スライスヘッダ中のシンタックス要素は、スライスを含むピクチャと関連付けられるPPSを識別するシンタックス要素を含み得る。
[0193]本開示の幾つかの例によれば、現在のブロックが残差データへの変換の適用を伴わずに生成され、残差DPCMが使用されるイントラ予測モードを使用して現在のブロックがイントラ予測される場合、エントロピー復号ユニット150は、記号データ隠匿が現在のブロックに対して無効にされると決定する。そのような例では、記号データ隠匿が現在のブロックに対して無効にされるとき、エントロピー復号ユニット150は、ビットストリームから、ブロック中の各々のそれぞれの有意な値に対して、それぞれの有意な値が正か負かを示すそれぞれのシンタックス要素を取得する。
[0194]ビットストリームからのシンタックス要素を復号する(即ち、取得する)ことに加えて、ビデオデコーダ30は、区分されていないCUに対して再構成動作を実行することができる。区分されていないCUに対して再構成動作を実行するために、ビデオデコーダ30は、CUの各TUに対して再構成動作を実行することができる。CUの各TUについて再構成動作を実行することによって、ビデオデコーダ30はCUの残差ブロックを再構成することができる。
[0195]CUのTUに対して再構成動作を実行することの一部として、逆量子化ユニット154は、TUと関連付けられる係数ブロックを逆の量子化(inverse quantize)、即ち逆量子化(de-quantize)することができる。逆量子化ユニット154は、量子化の程度と、同様に、逆量子化ユニット154が適用するための逆量子化の程度とを決定するために、TUのCUと関連付けられるQPの値を使用することができる。即ち、圧縮比、即ち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるQPの値を調整することによって制御され得る。圧縮比はまた、採用されるエントロピーコード化の方法に依存し得る。
[0196]逆量子化ユニット154が係数ブロックを逆量子化した後、逆変換処理ユニット156は、TUと関連付けられる残差ブロックを生成するために、係数ブロックに1つ又は複数の逆変換を適用することができる。例えば、逆変換処理ユニット156は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向性変換、又は別の逆変換を、係数ブロックに適用することができる。
[0197]イントラ予測を使用してPUが符号化される場合、イントラ予測処理ユニット166は、PUのための予測ブロックを生成するために、イントラ予測を実行することができる。イントラ予測処理ユニット166は、空間的に隣接するPUの予測ブロックに基づいて、PUのための予測ブロック(例えば、予想ルーマブロック、予測Cbブロック、及び予測Crブロック)を生成するために、イントラ予測モードを使用することができる。イントラ予測処理ユニット166は、ビットストリームから復号された1つ又は複数のシンタックス要素に基づいて、PUのためのイントラ予測モードを決定することができる。本開示の幾つかの技法によれば、イントラ予測処理ユニット166は、あるブロック内の他のサンプル値のイントラDC予測を実行するために、そのブロック内の1つ又は複数の元のサンプル値を使用することができる。即ち、イントラ予測処理ユニット166は、予測ブロックを生成することができる。予測ブロックを生成することの一部として、イントラ予測処理ユニット166は、現在のサンプルのDC予測のために、予測ブロックの現在の行の中の現在のサンプルの左にある可逆的に再構成されたサンプルと、現在の行の上の予測ブロックの行のための可逆的に再構成されたサンプルとの少なくとも1つを使用することができる。
[0198]予測処理ユニット152は、ビットストリームから抽出されたシンタックス要素に基づいて、第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを構築することができる。更に、PUがインター予測を使用して符号化される場合、エントロピー復号ユニット150は、PUのための動き情報を抽出することができる。動き補償ユニット164は、PUの動き情報に基づいて、PUのための1つ又は複数の参照領域を決定することができる。動き補償ユニット164は、PUのための1つ又は複数の参照ブロックにおけるサンプルブロックに基づいて、PUのための予測ブロック(例えば、ルーマブロック、Cbブロック、及びCrブロック)を生成することができる。本開示の1つ又は複数の技法によれば、予測処理ユニット152内の1つ又は複数のユニット(イントラ予測処理ユニット166のような)が、ビデオ復号処理の一部として、本明細書で説明される技法を実行することができる。
[0199]再構成ユニット158は、CUのコード化ブロック(例えば、ルーマコード化ブロック、Cbコード化ブロック、及びCrコード化ブロック)を再構成するために、適宜、CUのTUと関連付けられる変換ブロック(例えば、ルーマ変換ブロック、Cb変換ブロック、及びCr変換ブロック)と、CUのPUの予測ブロック(例えば、ルーマ予測ブロック、Cb予測ブロック、及びCr予測ブロック)とを、即ち、イントラ予測データとインター予測データのいずれかを使用することができる。例えば、再構成ユニット158は、CUのルーマコード化ブロックと、Cbコード化ブロックと、Crコード化ブロックとを再構成するために、ルーマ変換ブロック、Cb変換ブロック、及びCr変換ブロックのサンプルを、予測ルーマブロック、予測Cbブロック、及び予測Crブロックの対応するサンプルに加算することができる。
[0200]本開示の幾つかの例によれば、エントロピー復号ユニット150は、残差値のブロックを生成することができる。このブロックは、変換スキップブロックであり得る。更に、そのブロックは、元のサンプル値と、イントラ予測を使用して生成された予測ブロック中のサンプル値との差を示す、残差値を含む残差ブロックであり得る。更に、Mがブロックの高さでありNがブロックの幅であるとして、0≦i≦(M−1)及び0≦j≦(N−1)に対して、逆量子化ユニット154は、ブロック中の残差値r
i,jのための再構成された残差値Q(r
i,j)を計算することができる。ブロックが垂直イントラ予測モード(又は幾つかの例では、ほぼ垂直イントラ予測モード)を使用してコード化される場合、Q(r
i,j)は、
エントロピー復号ユニット150は、エントロピー復号ユニット150がQ(r
i,j)を決定するのと同じ方式で、以前にQ(r
i-1,j)を決定していることがある。ブロックが水平イントラ予測モードを使用してコード化される場合、Q(r
i,j)は、
として定義される。
上の式では、Q(ri,j-1)は、残差値ri,jの一行上の残差値のための再構成された残差値である。エントロピー復号ユニット150は、エントロピー復号ユニット150がQ(ri,j)を決定するのと同じ方式で、以前にQ(ri,j-1)を決定していることがある。再構成ユニット158は、サンプル値を再構成するために、再構成された残差値Q(ri,j)を予測値に加算することができる。
[0201]フィルタユニット160は、CUのコード化ブロック(例えば、ルーマコード化ブロック、Cbコード化ブロック、及びCrコード化ブロック)と関連付けられるブロッキングアーティファクトを低減するために、デブロッキング動作を実行することができる。ビデオデコーダ30は、CUのコード化ブロック(例えば、ルーマコード化ブロック、Cbコード化ブロック、及びCrコード化ブロック)を復号ピクチャバッファ162に記憶することができる。復号ピクチャバッファ162は、後続の動き補償、イントラ予測、及び図1の表示装置32のような表示装置上での提示のために、参照ピクチャを提供することができる。例えば、ビデオデコーダ30は、復号ピクチャバッファ162中のブロック(例えば、ルーマブロック、Cbブロック、及びCrブロック)に基づいて、他のCUのPUに対してイントラ予測演算又はインター予測演算を実行することができる。このようにして、ビデオデコーダ30は、有意なルーマ係数ブロックの変換係数レベルをビットストリームから抽出し、変換係数レベルを逆量子化し、変換ブロックを生成するため、変換ブロックに少なくとも部分的に基づいてコード化ブロックを生成するため、及びコード化ブロックを表示のために出力するために、変換係数レベルに変換を適用することができる。
[0202]要素170は、非可逆圧縮のための通常のコード化パスを表すことができ、要素172は、逆変換と逆量子化の処理を迂回する迂回コード化パスを表すことができる。これらの異なるパスは単に例示的なものであり、可逆コード化は迂回を伴わずに実行され得る。幾つかの例では、可逆コード化は、変換と量子化とをなくす。他の例では、可逆コード化は、変換を実行して量子化処理だけをなくす。更に他の例では、可逆コード化は、変換及び量子化の使用とともに実施され得るが、量子化パラメータは、あらゆる量子化データ損失を避けるように選択され得る。要素174は、変換スキップモードのために使用され得るパスの例を表す。変換スキップモードでは、残差データは逆量子化ユニット154によって逆量子化され得るが、逆変換処理ユニット156の逆変換はスキップされ得る。これら及び他の例は、本開示の範囲内にある。
[0203]図8Aは、本開示の1つ又は複数の技法による、ビデオエンコーダ20の例示的な動作を示すフローチャートである。本開示の他の例では、図8Aの動作と同様の動作は、より多数の、より少数の、又は異なる活動を含み得る。更に、幾つかの例では、図8Aの動作の1つ又は複数の活動は、省略され、又は並べ替えられ得る。例えば、図8A及び図8Bにおいて、破線は幾つかの例において実行されない活動を示す。
[0204]図8Aの例では、ビデオエンコーダ20は、予測ブロックを生成することができる(200)。予測ブロックを生成することの一部として、ビデオエンコーダ20は、現在のサンプルのDC予測のために、予測ブロックの現在の行の中の現在のサンプルの左にある可逆的に再構成されたサンプルと、現在の行の上の予測ブロックの行のための可逆的に再構成されたサンプルとの少なくとも1つを使用することができる(202)。幾つかの例では、ビデオデコーダ30は、水平方向のラスタースキャン順序で、垂直方向のラスタースキャン順序で、対角方向のスキャン順序で、又はジグザグのスキャン順序で、予測ブロック中のサンプルを処理する。そのような例では、予測ブロック中のサンプルを処理することは、サンプルのためのDC予測を決定すること、更に、サンプルを可逆的に再構成することを備え得る。更に、図8Aの例では、ビデオエンコーダ20は、コード化ブロック中のサンプルと予測ブロック中の対応するサンプルとの差に等しい値を有する残差サンプルを生成することができる。
[0205]図8Bは、本開示の1つ又は複数の技法による、ビデオデコーダ30の例示的な動作を示すフローチャートである。本開示の他の例では、図8Bの動作と同様の動作は、より多数の、より少数の、又は異なる活動を含み得る。更に、幾つかの例では、図8Bの動作の1つ又は複数の活動は、省略され、又は並べ替えられ得る。
[0206]図8Bの例では、ビデオデコーダ30は、予測ブロックを生成することができる(250)。予測ブロックを生成することの一部として、ビデオデコーダ30は、現在のサンプルのDC予測のために、予測ブロックの現在の行の中の現在のサンプルの左にある可逆的に再構成されたサンプルと、現在の行の上の予測ブロックの行のための可逆的に再構成されたサンプルとの少なくとも1つを使用することができる(252)。幾つかの例では、ビデオデコーダ30は、水平方向のラスタースキャン順序で、垂直方向のラスタースキャン順序で、対角方向のスキャン順序で、又はジグザグのスキャン順序で、予測ブロック中のサンプルを処理する。そのような例では、予測ブロック中のサンプルを処理することは、サンプルのためのDC予測を決定することを備え得る。更に、図8Bの例では、ビデオデコーダ30は、予測ブロックのサンプルを対応する残差サンプルに加算することによって、コード化ブロックを再構成することができる(254)。
[0207]図9Aは、本開示の1つ又は複数の技法による、ビデオエンコーダ20の例示的な動作を示すフローチャートである。本開示の他の例では、図9Aの動作と同様の動作は、より多数の、より少数の、又は異なる活動を含み得る。更に、幾つかの例では、図9Aの動作の1つ又は複数の活動は、省略され、又は並べ替えられ得る。図9Aの例は、図6に示されるコンポーネントに関して説明される。しかしながら、図9Aの動作は、図6に示されるもの以外のコンポーネント及びビデオエンコーダのタイプによって実行され得る。
[0208]図9Aの例において示されるように、ビデオエンコーダ20の残差生成ユニット102は、残差値のブロックを生成することができる(350)。この例では、残差値のブロックは変換スキップブロックである。そのブロックは、元のサンプル値と、イントラ予測を使用して生成された予測ブロック中のサンプル値との差を示す、残差値を含む残差ブロックであり得る。Mがブロックの高さであり、Nがブロックの幅であるとして、ビデオコーダは、0≦i≦(M−1)及び0≦j≦(N−1)であるブロックの各位置(i,j)に対して、図9Aの残りの活動を実行することができる。
[0209]更に、ビデオエンコーダ20の残差生成ユニット102は、ブロック(352)において、
ブロックが垂直イントラ予測モードを使用してコード化される場合、又は幾つかの例では、
として定義される。
Q(r
(i-1),j)は、残差値r
i-1,jのための(即ち、それに対応する)再構成された残差値を示す。ブロックが水平イントラ予測モードを使用してコード化される場合、又は幾つかの例では、
として定義される。
Q(ri,(j-1))は、残差値ri,j-1のための再構成された残差値を示す。
この例では、ビデオエンコーダ20のエントロピー符号化ユニット118は、1つ又は複数のシンタックス要素をエントロピー符号化することができ、得られたデータをビットストリームに含めることができる。
[0211]更に、図9Aの例では、ビデオエンコーダ20は、再構成された残差値Q(r
i,j)を計算することができる(358)。幾つかの例では、ビデオエンコーダ20は、更なるイントラ予測又はインター予測において使用するための再構成されたサンプル値を決定するために、フィードバックループの一部として、再構成された残差値Q(r
i,j)を計算することができる。ブロックが垂直イントラ予測モード(又は幾つかの例では、ほぼ垂直イントラ予測モード)を使用してコード化される場合、再構成された残差値Q(r
i,j)は、
として定義され得る。
ブロックが水平イントラ予測モード(又は幾つかの例では、ほぼ水平イントラ予測モード)を使用してコード化される場合、Q(r
i,j)は、
として定義され得る。
[0212]ブロックは変換スキップブロックであるので、逆変換処理ユニット110は、逆変換を残差値ri,jに適用しない。従って、ビデオエンコーダ20の再構成ユニット112は、再構成されるサンプル値を決定するために、再構成された残差値Q(ri,j)を予測値に加算することができる(360)。予測値は、予測ブロック中のサンプルであり得る。ビデオエンコーダ20の予測処理ユニット100は、他のブロックのイントラ予測又はインター予測のために、再構成されたサンプル値を使用することができる(362)。
[0213]図9Bは、本開示の1つ又は複数の技法による、ビデオデコーダ30の例示的な動作を示すフローチャートである。本開示の他の例では、図9Bの動作と同様の動作は、より多数の、より少数の、又は異なる活動を含み得る。更に、幾つかの例では、図9Bの動作の1つ又は複数の活動は、省略され、又は並べ替えられ得る。図9Bの例は、図7に示されるコンポーネントに関して説明される。しかしながら、図9Bの動作は、図7に示されるもの以外のコンポーネント及びビデオデコーダのタイプによって実行され得る。
[0214]Mがブロックの高さであり、Nがブロックの幅であるとして、ビデオデコーダ30は、0≦i≦(M−1)及び0≦j≦(N−1)である変換スキップブロックの各位置(i,j)に対して、図9Bの動作を実行することができる。そのブロックは、元のサンプル値と、イントラ予測を使用して生成された予測ブロック中のサンプル値との差を示す、残差値を含む残差ブロックであり得る。
エントロピー復号ユニット150は、1つ又は複数のシンタックス要素の一部又は全てをエントロピー復号することができる。
[0215]更に、図9Bの例では、ビデオデコーダ30の逆量子化ユニット154は、残差値r
i,jのための再構成された残差値Q(r
i,j)を計算することができる(402)。幾つかの例では、残差値r
i,jは、本開示の他の箇所で説明されるようなビットシフトされた残差値である。ブロックが垂直イントラ予測モードを使用してコード化される場合、Q(r
i,j)は、
ブロックが水平イントラ予測モードを使用してコード化される場合、Q(r
i,j)は、
として定義される。
Q(ri,j-1)は、残差値ri,jの一行上の残差値のための再構成された残差値である。
[0216]ブロックが垂直イントラ予測モードを使用してコード化される場合、
として定義される。
ブロックが水平イントラ予測モードを使用してコード化される場合、
として定義される。
[0217]ブロックは変換スキップブロックであるので、逆変換処理ユニット156は、逆変換を再構成された残差値Q(ri,j)に適用しない。ビデオデコーダ30の再構成ユニット158は、サンプル値を再構成するために、再構成された残差値Q(ri,j)を予測値に加算することができる(406)。予測値は、予測ブロック中のサンプルであり得る。
[0218]図10Aは、本開示の1つ又は複数の技法による、記号データ隠匿のための例示的なビデオエンコーダ動作を示すフローチャートである。本開示の他の例では、図10Aの動作と同様の動作は、より多数の、より少数の、又は異なる活動を含み得る。更に、幾つかの例では、図10Aの動作の1つ又は複数の活動は、省略され、又は並べ替えられ得る。
[0219]図10Aの例では、ビデオエンコーダ20は、ビデオデータのコード化された表現を形成するビットのシーケンスを含む、ビットストリームを生成する(600)。ビットストリームを生成することの一部として、現在のブロックが残差データへの変換の適用を伴わずに生成され、残差DPCM技法が使用されるイントラ予測モードを使用して現在のブロックがイントラ予測される場合、ビデオエンコーダ20は、記号データ隠匿が現在のブロックに対して無効にされると決定することができる(602)。図10Aの状況では、現在のブロックは、残差DPCM技法が適用された残差サンプルのブロックの4×4のサブブロックであり得る。その後、図10Aの例では、ビデオエンコーダ20は、ビットストリームを出力することができる(604)。
[0220]幾つかの例では、記号データ隠匿が現在のブロックに対して無効にされるとき、ビデオエンコーダ20は、ビットストリームの中で、現在のブロック中の各々のそれぞれの有意な残差値に対して、それぞれの有意な残差値が正か負かを示すシンタックス要素を信号伝達することができる。そのような例では、記号データ隠匿が現在のブロックに対して無効にされないとき、ビデオエンコーダ20は、ビットストリームの中で、現在のブロック中の少なくとも1つの有意な残差値又は変換係数の値が正か負かを示すシンタックス要素を信号伝達しなくてよい。
[0221]図10Bは、本開示の1つ又は複数の技法による、記号データ隠匿のための例示的なビデオデコーダ動作を示すフローチャートである。本開示の他の例では、図10Bの動作と同様の動作は、より多数の、より少数の、又は異なる活動を含み得る。更に、幾つかの例では、図10Bの動作の1つ又は複数の活動は、省略され、又は並べ替えられ得る。
[0222]図10Bの例では、ビデオデコーダ30は、ビデオデータのコード化された表現を形成するビットのシーケンスを含む、ビットストリームからシンタックス要素を取得する(650)。ビットストリームからシンタックス要素を取得することの一部として、現在のブロックが残差データへの変換の適用を伴わずに生成され、残差DPCM技法が使用されるイントラ予測モードを使用して現在のブロックがイントラ予測される場合、ビデオデコーダ30は、記号データ隠匿が現在のブロックに対して無効にされると決定することができる(652)。図10Bの状況では、現在のブロックは、残差DPCM技法が適用された残差サンプルのブロックの4×4のサブブロックであり得る。その後、図10Bの例では、ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構成することができる(654)。
[0223]幾つかの例では、記号データ隠匿が現在のブロックに対して無効にされるとき、ビデオデコーダ30は、ビットストリームから、現在のブロック中の各々のそれぞれの有意な残差値に対して、それぞれの有意な残差値が正か負かを示すシンタックス要素を取得することができる。そのような例では、記号データ隠匿が現在のブロックに対して無効にされないとき、ビデオデコーダ30は、ビットストリームから、現在のブロック中の有意な残差値の値が正か負かを示すシンタックス要素を取得しなくてよい。
[0224]以下の段落は、本開示の1つ又は複数の技法による第1の一連の例を提供する。
[0225]例1. ビデオデータのあるブロック内の他のサンプル値のイントラDC予測を実行するために、そのブロック内の1つ又は複数の元のサンプル値を使用することを備える、ビデオデータをコード化する方法。
[0226]例2. ブロック内の他のサンプル値の予測を実行するためにブロック内の1つ又は複数の元のサンプル値を使用することが、スキャン順序でより後に発生するサンプル値を予測するために、スキャン順序でより前に発生する元のサンプル値を使用することを備える、例1に記載の方法。
[0227]例3. ブロック内の他のサンプルの予測を実行するためにブロック内の1つ又は複数の元のサンプル値を使用することが、後でスキャンされる行のサンプル値を予測するために、以前にスキャンされた行の元のサンプル値を使用することを備える、例1に記載の方法。
[0228]例4. ブロック内の他のサンプルの予測を実行するためにブロック内の1つ又は複数の元のサンプル値を使用することが、あるサンプルのためのサンプル値を予測するために、そのサンプルの原因となる近隣に対応する元のサンプル値を使用することを備える、例1に記載の方法。
[0229]例5. 0≦i≦(M−1)、0≦j≦(N−1)である現在のサンプルPi,jに対して、DC予測値DCi,jが、DCi,j=(Pi,j-1+Pi-1,j+1)>>1として計算される、例1から4のいずれかに記載の方法。
[0230]例6. 0≦i≦(M−1)、0≦j≦(N−1)である現在のサンプルPi,jに対して、DC予測値DCi,jが、DCi,j=(Pi,j-1+Pi-1,j+1)>>1として計算される、例1から4のいずれかに記載の方法。
[0231]例7. DC予測をパイプライン化された方式で実行することを更に備える、例1から6のいずれかに記載の方法。
[0232]例8. DC予測の1周期の遅延がブロックの行間に存在する、例7に記載の方法。
[0233]例9. 0≦i≦(M−1)、0≦j≦(N−1)であるDC予測値DCi,jが、DCi,j=(Pi,j-1+Pi-1,j−Pi-1,j-1)として計算される、例1から4のいずれかに記載の方法。
[0234]例10. Pi,jを待機することなく、DCi,j+1が、DCi,j+1=((Pi,j-1+Pi-1,j−Pi-1,j-1)+ri,j+Pi-1,j+1−Pi-1,j)として計算されてよく、ri,jがサンプルPi,jのための予測誤差残差である、例9に記載の方法。
[0235]例11. 左のサンプル、左上のサンプル、及び右上のサンプルのうちの利用可能な1つが、DC予測のために使用される、例1から4のいずれかに記載の方法。
[0236]例12. 0≦i≦(M−1)、0≦j≦(N−1)であるDC予測値DCi,jが、DCi,j=(Pi,j-1+Pi-1,j+Pi-1,j-1+Pi-1,j+1+2)>>2、又はDCi,j=(Pi,j-1+Pi-1,j+Pi-1,j-1+Pi-1,j+1)>>2の1つとして計算される、例11に記載の方法。
[0237]例13. 最後の列の中のサンプル(j=(N−1)、i>0)に対して、右上のサンプルが利用可能ではなく、上のサンプル及び右上のサンプル(Pi-1,j及びPi-1,j+1)が同じ値を有する、例12に記載の方法。
[0238]例14. 右上のサンプルがDC予測のために使用されない、例13に記載の方法。
[0239]例15. 変換単位(TU)のサイズより小さいブロックサイズに対してDC予測を実行することを備える、ビデオデータをコード化する方法。
[0240]例16. TUのサイズとは無関係に、DC予測が2×2のブロックサイズに対して実行され、少なくとも幾つかのTUのサイズが2×2のブロックサイズより大きい、例15に記載の方法。
[0241]例17. サンプルP2i,2j、P2i,2j+1、P2i+1,2j、及びP2i+1,2j+1に対して、DC予測値が、(P2i-1,2j+P2i-1,2j+1+P2i,2j-1+P2i+1,2j-1+2)>>2、又は(P2i-1,2j+P2i-1,2j+1+P2i,2j-1+P2i+1,2j-1)>>2の1つとして計算され、0≦i≦((M/2)−1)、0≦j≦((N/2)−1)である、例15又は16に記載の方法。
[0242]例18. MとNがともに偶数である、例17に記載の方法。
[0243]例19. 4つのサンプルが並列に処理され得る、例18に記載の方法。
[0244]例20. 変換単位(TU)のサイズとは無関係に、2×2のブロックサイズに対してDC予測を実行することを備える、ビデオデータをコード化する方法。
[0245]例21. 通常のDC予測を実行した後の残差間の相関を利用することを備える、ビデオデータをコード化する方法。
[0246]例22. 0≦i≦(M−1)、0≦j≦(N−1)であるri,jが、HEVC規格に従って規定されるようなDC予測を実行した後の予測残差を表し、0≦i≦(M−1)、0≦j≦(N−1)として、中間値si,jを、0≦i≦(M−1)、0≦j≦((N/2)−1)としてsi,j=ri.2j、si,(j+(N/2))=ri,2j−ri,2j+1に従って生成することを更に備える、例21に記載の方法。
[0247]例23. 0≦i≦(M−1)、0≦j≦(N−1)として、修正された残差ti,jを、0≦i≦((M/2)−1)、0≦j≦(N−1)として、ti,j=s2i,j、t(j+(M/2)),j=s2i,j−s2i+1,jに従って生成することを更に備える、例22に記載の方法。
[0248]例24. 修正された残差ti,jがエントロピーコード化される、例23に記載の方法。
である、例21に記載の方法。
[0250]例26. MとNがともに偶数である、例25に記載の方法。
である、例21に記載の方法。
[0252]例28. 例1から27の方法の任意の組合せ。
[0253]例29. エンコーダによって実行され、コード化が符号化を指す、例1から24及び27又はこれらの組合せのいずれかの方法。
[0254]例30. デコーダによって実行され、コード化が復号を指す、例1から21及び25から27又はこれらの組合せのいずれかの方法。
[0255]例31. 例1から27又はこれらの組合せのいずれかの方法を実行するように構成されるシステム。
[0256]例32. 実行されると、1つ又は複数のプロセッサに、例1から27又はこれらの組合せのいずれかの方法を実行させる命令を記憶した、非一時的コンピュータ可読記憶媒体。
[0257]例33. 例1から24及び27又はこれらの組合せのいずれかの方法を実行するように構成されるビデオ符号化機器。
[0258]例34. 例1から21及び25から27又はこれらの組合せのいずれかの方法を実行するように構成されるビデオ復号機器。
[0259]例35. 例1から24及び27又はこれらの組合せのいずれかの方法のステップを実行するための手段を備えるビデオ符号化機器。
[0260]例36. 例1から21及び25から27又はこれらの組合せのいずれかの方法のステップを実行するための手段を備えるビデオ復号機器。
[0261]以下の段落は、本開示の1つ又は複数の技法による第2の一連の例を提供する。
[0262]例1. ビデオデータのあるブロック内の他のサンプル値の予測を実行するために、そのブロック内の1つ又は複数の元のサンプル値を使用することを備える、ビデオデータをコード化する方法。
[0263]例2. ブロック内の他のサンプル値の予測を実行するためにブロック内の1つ又は複数の元のサンプル値を使用することが、他のサンプル値の予測を実行するために、ブロックの最後の行及び最後の列に対応する元のサンプル値を使用することを備える、例1に記載の方法。
[0264]例3. ブロック内の他のサンプル値の予測を実行するために、ブロック内の1つ又は複数の元のサンプル値を使用することが、他のサンプル値の予測を実行するために、ブロックの第1の行及び第1の列に対応する元のサンプル値を使用することを備える、例1に記載の方法。
[0265]例4. 図4が他のサンプル値の予測を実行するために使用されるサンプル値のサンプル位置を示す、例1から3のいずれかに記載の方法。
[0266]例5. 可逆コード化モードのために実行される、例1から4のいずれかに記載の方法。
[0267]例6. 平面的コード化モードのために実行される、例1から5のいずれかに記載の方法。
[0268]例7. 角度的イントラコード化モードのために実行される、例1から5のいずれかに記載の方法。
[0269]例8. 予測によって生成される残差値のセットに対する回転演算を実行することと、残差値の回転されたセットに関するエントロピーコード化を実行することとを更に備える、例1から7のいずれかに記載の方法。
[0270]例9. 残差値のセットが変換された値である、例8に記載の方法。
[0271]例10. 元のサンプル値をコード化するために予測処理を実行することを更に備える、例1から9のいずれかに記載の方法。
[0272]例11. 例1から10の任意の組合せの方法。
[0273]例12. エンコーダによって実行され、コード化が符号化を指す、例1から10又はこれらの組合せのいずれかの方法。
[0274]例13. デコーダによって実行され、コード化が復号を指す、例1から10又はこれらの組合せのいずれかの方法。
[0275]例14. 例1から10又はこれらの組合せのいずれかの方法を実行するように構成されるシステム。
[0276]例15. 実行されると、1つ又は複数のプロセッサに、例1から10又はこれらの組合せのいずれかの方法を実行させる命令を記憶した、非一時的コンピュータ可読記憶媒体。
[0277]例16. 例1から10又はこれらの組合せのいずれかの方法を実行するように構成されるビデオ符号化機器。
[0278]例17. 例1から10又はこれらの組合せのいずれかの方法を実行するように構成されるビデオ復号機器。
[0279]例18. 例1から10又はこれらの組合せのいずれかの方法のステップを実行するための手段を備えるビデオ符号化機器。
[0280]例19. 例1から10又はこれらの組合せのいずれかの方法のステップを実行するための手段を備えるビデオ復号機器。
[0281]例20. 本開示で説明される任意の機器又は方法。
[0282]以下の段落は、本開示の1つ又は複数の技法による第3の一連の例を提供する。
[0283]例1. 残差サンプルの修正されたアレイを決定することと、修正された残差サンプルのために、残差サンプルの逆量子化されたバージョンを決定することと、再構成された値を決定するために、残差サンプルの逆量子化されたバージョンを予測値に加算することとを備える、ビデオデータをコード化する方法。
[0284]例2. DPCMを使用して逆量子化された残差値をコード化することを更に備える、例1に記載の方法。
[0285]例3. DPCMを使用して逆量子化された残差値のビットシフトされたバージョンをコード化することを更に備える、例1に記載の方法。
[0286]例4. ほぼ垂直イントラ予測モードのために実行される、例1から3のいずれかに記載の方法。
[0287]例5. ほぼ水平イントラ予測モードのために実行される、例1から3のいずれかに記載の方法。
[0288]例6. 記号データ隠匿を無効にすることを更に備える、例1から5のいずれかに記載の方法。
[0289]例7. ブロックタイプに基づいて記号データ隠匿を無効にすることを更に備える、例1から5のいずれかに記載の方法。
[0290]例8. 記号データ隠匿を選択的に無効にすることを更に備える、例1から5のいずれかに記載の方法。
[0291]例9. 本開示で説明される任意の技法を更に備える、例1から8のいずれかに記載の方法。
[0292]例10. 残差サンプルの修正されたアレイを決定することと、修正された残差サンプルのために、残差サンプルの量子化されたバージョンを決定することと、残差サンプルの量子化されたバージョンを符号化されたビットストリームの中で信号伝達することとを備える、ビデオデータをコード化する方法。
[0293]例11. ほぼ垂直イントラ予測モードのために実行される、例10に記載の方法。
[0294]例12. ほぼ水平イントラ予測モードのために実行される、例10に記載の方法。
[0295]例13. 本開示で説明される任意の技法を更に備える、例10から12のいずれかに記載の方法。
[0296]例14. エンコーダによって実行され、コード化が符号化を指す、例10から13又はこれらの組合せのいずれかの方法。
[0297]例15. デコーダによって実行され、コード化が復号を指す、例1から9又はこれらの組合せのいずれかの方法。
[0298]例16. 例1から15又はこれらの組合せのいずれかの方法を実行するように構成されるシステム。
[0299]例17. 実行されると、1つ又は複数のプロセッサに、例1から13又はこれらの組合せのいずれかの方法を実行させる命令を記憶した、非一時的コンピュータ可読記憶媒体。
[0300]例18. 例10から13又はこれらの組合せのいずれかの方法を実行するように構成されるビデオ符号化機器。
[0301]例19. 例1から9又はこれらの組合せのいずれかの方法を実行するように構成されるビデオ復号機器。
[0302]例20. 例10から13又はこれらの組合せのいずれかの方法のステップを実行するための手段を備えるビデオ符号化機器。
[0303]例21. 例1から9又はこれらの組合せのいずれかの方法のステップを実行するための手段を備えるビデオ復号機器。
[0304]例22. 本開示に含む本開示で説明される任意の機器又は方法。
[0305]以下の段落は、本開示の1つ又は複数の技法による第4の一連の例を提供する。
[0306]例1. 可逆コード化とイントラ予測とを使用して符号化されるビデオデータのブロックを受信することと、残差差分パルス符号変調(DPCM)処理に従って、ビデオデータの可逆的にコード化されたブロックから残差サンプルを再構成することと、再構成されたビデオサンプルを生成するために、残差サンプルを使用してイントラ予測モードに従ってイントラ予測を実行することとを備え、イントラ予測モードが垂直イントラ予測モードと水平イントラ予測モードの1つではない、ビデオデータを復号するための方法。
[0307]例2. イントラ予測モードが、ほぼ垂直イントラ予測モードとほぼ水平イントラ予測モードの1つである、例1に記載の方法。
[0308]例3. イントラモードがHEVCワーキングドラフト9において記載されるように、ほぼ垂直イントラ予測モードがイントラ予測モード22から30の1つであり、ほぼ水平イントラ予測モードがイントラ予測モード6から14の1つである、例2に記載の方法。
[0309]例4. 残差DPCM処理がほぼ垂直イントラ予測モードのための垂直残差DPCM処理であり、残差DPCM処理がほぼ水平イントラ予測モードのための水平残差DPCM処理である、例2に記載の方法。
[0310]例5. イントラ予測モードが対角右下イントラ予測モードであり、残差DPCM処理に従って残差サンプルを再構成することが、式
例1に記載の方法。
[0311]例6. イントラ予測モードが対角左下イントラ予測モードであり、残差DPCM処理に従って残差サンプルを再構成することが、式
例1に記載の方法。
[0312]例7. イントラ予測モードが対角右上イントラ予測モードであり、残差DPCM処理に従って残差サンプルを再構成することが、式
例1に記載の方法。
[0313]例8. 例1から7の任意の組合せの方法。
[0314]例9. イントラ予測モードがほぼ垂直イントラ予測モードであり、ビデオデータの可逆的にコード化されたブロックの第1の行のための残差DPCM処理に従って残差サンプルを再構成しないことを更に備える、例1に記載の方法。
[0315]例10. イントラ予測モードがほぼ水平イントラ予測モードであり、ビデオデータの可逆的にコード化されたブロックの第1の列のための残差DPCM処理に従って残差サンプルを再構成しないことを更に備える、例1に記載の方法。
[0316]例11. イントラ予測モードがDCイントラ予測モードと平面的イントラ予測モードの1つであり、残差DPCM処理に従って残差サンプルを再構成することが、垂直残差DPCM処理と水平DPCM処理の1つに従って残差サンプルを再構成することを備える、例1に記載の方法。
[0317]例12. イントラ予測モードがDCイントラ予測モードと平面的イントラ予測モードの1つであり、残差DPCM処理に従って残差サンプルを再構成することが、垂直残差DPCM処理と水平DPCM処理の両方に従って残差サンプルを再構成することを備える、例1に記載の方法。
[0318]例13. イントラ予測モードが平面的イントラ予測モードであり、残差DPCM処理に従って残差サンプルを再構成することが、対角DPCM処理、水平DPCM処理、及び垂直DPCM処理に従って残差サンプルを再構成することを備える、例1に記載の方法。
[0319]例14. ビデオデータのブロックを受信することと、サンプルの予測ブロックと残差サンプルとを生成するために、イントラ予測モードに従ってビデオデータのブロックに対してイントラ予測を実行することと、ここにおいて、イントラ予測モードは垂直イントラ予測モードと水平イントラ予測モードの1つではない、残差作動パルス符号変調(DPCM)処理を使用して、残差サンプルからビデオデータの可逆的にコード化されたブロックを生成することとを備える、ビデオデータを符号化するための方法。
[0320]例15. イントラ予測モードが、ほぼ垂直イントラ予測モードとほぼ水平イントラ予測モードの1つである、例14に記載の方法。
[0321]例16. ほぼ垂直イントラ予測モードがイントラ予測モード22から30の1つであり、ほぼ水平イントラ予測モードがイントラ予測モード6から14の1つである、例15に記載の方法。
[0322]例17. 残差DPCM処理がほぼ垂直イントラ予測モードのための垂直残差DPCM処理であり、残差DPCM処理がほぼ水平イントラ予測モードのための水平残差DPCM処理である、例15に記載の方法。
[0323]例18. イントラ予測モードが対角右下イントラ予測モードであり、残差DPCM処理を使用して残差サンプルからビデオデータの可逆的にコード化されたブロックを生成することが、式
例14に記載の方法。
[0324]例19. イントラ予測モードが対角右下イントラ予測モードであり、残差DPCM処理を使用して残差サンプルからビデオデータの可逆的にコード化されたブロックを生成することが、式
例14に記載の方法。
[0325]例20. イントラ予測モードが対角右下イントラ予測モードであり、残差DPCM処理を使用して残差サンプルからビデオデータの可逆的にコード化されたブロックを生成することが、式
例14に記載の方法。
[0326]例21. 例14から20の任意の組合せの方法。
[0327]例22. イントラ予測モードがほぼ垂直イントラ予測モードであり、ビデオデータのブロックの第1の行のための残差DPCM処理を使用してビデオデータの可逆的にコード化されるブロックを生成しないことを更に備える、例14に記載の方法。
[0328]例23. イントラ予測モードがほぼ水平イントラ予測モードであり、ビデオデータのブロックの第1の列のための残差DPCM処理を使用してビデオデータの可逆的にコード化されるブロックを生成しないことを更に備える、例14に記載の方法。
[0329]例24. イントラ予測モードがDCイントラ予測モードと平面的イントラ予測モードの1つであり、残差DPCM処理を使用して残差サンプルからビデオデータの可逆的にコード化されるブロックを生成することが、垂直残差DPCM処理と水平DPCM処理の1つに従って残差サンプルからビデオデータの可逆的にコード化されるブロックを生成することを備える、例14に記載の方法。
[0330]例25. イントラ予測モードがDCイントラ予測モードと平面的イントラ予測モードの1つであり、残差DPCM処理を使用して残差サンプルからビデオデータの可逆的にコード化されるブロックを生成することが、垂直残差DPCM処理と水平DPCM処理の両方に従って残差サンプルからビデオデータの可逆的にコード化されるブロックを生成することを備える、例14に記載の方法。
[0331]例26. イントラ予測モードが平面的イントラ予測モードであり、残差DPCM処理を使用して残差サンプルからビデオデータの可逆的にコード化されるブロックを生成することが、対角DPCM処理、水平DPCM処理、及び垂直DPCM処理に従って残差サンプルからビデオデータの可逆的にコード化されるブロックを生成することを備える、例14に記載の方法。
[0332]例27. 可逆コード化とイントラ予測とを使用して符号化されるビデオデータのブロックを受信するための手段と、残差差分パルス符号変調(DPCM)処理に従って、ビデオデータの可逆的にコード化されたブロックから残差サンプルを再構成するための手段と、再構成されたビデオサンプルを生成するために、残差サンプルを使用してイントラ予測モードに従ってイントラ予測を実行するための手段とを備え、イントラ予測モードが垂直イントラ予測モードと水平イントラ予測モードの1つではない、ビデオデータを復号するように構成される装置。
[0333]例28. イントラ予測モードが、ほぼ垂直イントラ予測モードとほぼ水平イントラ予測モードの1つである、例27に記載の装置。
[0334]例29. ほぼ垂直イントラ予測モードがイントラ予測モード22から30の1つであり、ほぼ水平イントラ予測モードがイントラ予測モード6から14の1つである、例28に記載の装置。
[0335]例30. 残差DPCM処理がほぼ垂直イントラ予測モードのための垂直残差DPCM処理であり、残差DPCM処理がほぼ水平イントラ予測モードのための水平残差DPCM処理である、例28に記載の装置。
[0336]例31. イントラ予測モードが対角右下イントラ予測モードであり、残差DPCM処理に従って残差サンプルを再構成するための手段が、式
例27に記載の装置。
[0337]例32. イントラ予測モードが対角左下イントラ予測モードであり、残差DPCM処理に従って残差サンプルを再構成するための手段が、式
例27に記載の装置。
[0338]例33. イントラ予測モードが対角右上イントラ予測モードであり、残差DPCM処理に従って残差サンプルを再構成するための手段が、式
例27に記載の装置。
[0339]例34. 例27から33の任意の組合せの装置。
[0340]例35. イントラ予測モードがほぼ垂直イントラ予測モードであり、ビデオデータの可逆的にコード化されたブロックの第1の行のための残差サンプル一致した残差DPCM処理を再構成しないための手段を更に備える、例27に記載の装置。
[0341]例36. イントラ予測モードがほぼ水平イントラ予測モードであり、ビデオデータの可逆的にコード化されたブロックの第1の列のための残差サンプル一致した残差DPCM処理を再構成しないための手段を更に備える、例27に記載の装置。
[0342]例37. イントラ予測モードがDCイントラ予測モードと平面的イントラ予測モードの1つであり、残差DPCM処理に従って残差サンプルを再構成するための手段が、垂直残差DPCM処理と水平DPCM処理の1つに従って残差サンプルを再構成するための手段を備える、例27に記載の装置。
[0343]例38. イントラ予測モードがDCイントラ予測モードと平面的イントラ予測モードの1つであり、残差DPCM処理に従って残差サンプルを再構成するための手段が、垂直残差DPCM処理と水平DPCM処理の両方に従って残差サンプルを再構成するための手段を備える、例27に記載の装置。
[0344]例39. イントラ予測モードが平面的イントラ予測モードであり、残差DPCM処理に従って残差サンプルを再構成するための手段が、対角DPCM処理、水平DPCM処理、及び垂直DPCM処理に従って残差サンプルを再構成するための手段を備える、例27に記載の装置。
[0345]例40. ビデオデータのブロックを受信するための手段と、残差サンプルを生成するために、イントラ予測モードに従ってビデオデータのブロックに対してイントラ予測を実行するための手段と、ここにおいて、イントラ予測モードは垂直イントラ予測モードと水平イントラ予測モードの1つではない、残差作動パルス符号変調(DPCM)処理を使用して、残差サンプルからビデオデータの可逆的にコード化されたブロックを生成するための手段とを備える、ビデオデータを符号化するように構成される装置。
[0346]例41. イントラ予測モードが、ほぼ垂直イントラ予測モードとほぼ水平イントラ予測モードの1つである、例40に記載の装置。
[0347]例42. ほぼ垂直イントラ予測モードがイントラ予測モード22から30の1つであり、ほぼ水平イントラ予測モードがイントラ予測モード6から14の1つである、例41に記載の装置。
[0348]例43. 残差DPCM処理がほぼ垂直イントラ予測モードのための垂直残差DPCM処理であり、残差DPCM処理がほぼ水平イントラ予測モードのための水平残差DPCM処理である、例41に記載の装置。
[0349]例44. イントラ予測モードが対角右下イントラ予測モードであり、残差DPCM処理を使用して残差サンプルからビデオデータの可逆的にコード化されたブロックを生成するための手段が、式
例40に記載の装置。
[0350]例45. イントラ予測モードが対角右下イントラ予測モードであり、残差DPCM処理を使用して残差サンプルからビデオデータの可逆的にコード化されたブロックを生成するための手段が、式
例40に記載の装置。
[0351]例46. イントラ予測モードが対角右下イントラ予測モードであり、残差DPCM処理を使用して残差サンプルからビデオデータの可逆的にコード化されたブロックを生成するための手段が、式
例40に記載の装置。
[0352]例47. 例40から46の任意の組合せの装置。
[0353]例48. イントラ予測モードがほぼ垂直イントラ予測モードであり、ビデオデータのブロックの第1の行のための残差DPCM処理を使用してビデオデータの可逆的にコード化されるブロックを生成しないための手段を更に備える、例40に記載の装置。
[0354]例49. イントラ予測モードがほぼ水平イントラ予測モードであり、ビデオデータのブロックの第1の列のための残差DPCM処理を使用してビデオデータの可逆的にコード化されるブロックを生成しないための手段を更に備える、例40に記載の装置。
[0355]例50. イントラ予測モードがDCイントラ予測モードと平面的イントラ予測モードの1つであり、残差DPCM処理を使用して残差サンプルからビデオデータの可逆的にコード化されるブロックを生成するための手段が、垂直残差DPCM処理と水平DPCM処理の1つに従って残差サンプルからビデオデータの可逆的にコード化されるブロックを生成するための手段を備える、例40に記載の装置。
[0356]例51. イントラ予測モードがDCイントラ予測モードと平面的イントラ予測モードの1つであり、残差DPCM処理を使用して残差サンプルからビデオデータの可逆的にコード化されるブロックを生成するための手段が、垂直残差DPCM処理と水平DPCM処理の両方に従って残差サンプルからビデオデータの可逆的にコード化されるブロックを生成するための手段を備える、例40に記載の装置。
[0357]例52. イントラ予測モードが平面的イントラ予測モードであり、残差DPCM処理を使用して残差サンプルからビデオデータの可逆的にコード化されるブロックを生成するための手段が、対角DPCM処理、水平DPCM処理、及び垂直DPCM処理に従って残差サンプルからビデオデータの可逆的にコード化されるブロックを生成するための手段を備える、例40に記載の装置。
[0358]例53. 例1から13の方法の任意の組合せを実行するように構成されるビデオデコーダ。
[0359]例54. 例14から26の方法の任意の組合せを実行するように構成されるビデオエンコーダ。
[0360]例55. 実行されると、ビデオデータを復号するように構成された機器の1つ又は複数のプロセッサに、例1から13の方法の任意の組合せを実行させる命令を記憶した、コンピュータ可読記憶媒体。
[0361]例56. 実行されると、ビデオデータを符号化するように構成された機器の1つ又は複数のプロセッサに、例14から26の方法の任意の組合せを実行させる命令を記憶した、コンピュータ可読記憶媒体。
[0362]以下の段落は、本開示の1つ又は複数の技法による第5の一連の例を提供する。
[0363]例1. ビデオデータのブロックの水平イントラコード化のための予測サンプルを生成することを備え、ビデオデータのブロックの各列に対して、予測サンプルが勾配項を含む、ビデオデータをコード化する方法。
[0364]例2. 初期の行の中の予測サンプルに対する勾配項が((P-1,j−P-1,j-1)>>1)によって与えられる、例1に記載の方法。
[0365]例3. P0,j,0≦j≦N−1のための予測サンプルが、Clip(P0,j-1+((P-1,j−P-1,j-1)>>1))である、例1と2のいずれかに記載の方法。
[0366]例4. Pi,j,0≦i≦M−1、0≦j≦N−1のための予測サンプルが、Clip(Pi,j-1+((Pi-1,j−Pi-1,j-1)>>1))によって与えられる、例1から3のいずれかに記載の方法。
[0367]例5. 可逆水平イントラコード化のために適用される、例5から8のいずれかに記載の方法。
[0368]例6. ビデオデータのブロックの垂直イントラコード化のための予測サンプルを生成することを備え、ビデオデータのブロックの各行に対して、予測サンプルが勾配項を含む、ビデオデータをコード化する方法。
[0369]例7. 初期の列の中の予測サンプルに対する勾配項が((Pi,-1Pi-1,-1)>>1)として与えられる、例6に記載の方法。
[0370]例8. Pi,0,0≦i≦M−1のための予測サンプルが、Clip(Pi-1,0+((Pi,-1−Pi-1,-1)>>1))である、例6と7のいずれかに記載の方法。
[0371]例9. Pi,j,0≦i≦M−1、0≦j≦N−1のための予測サンプルが、Clip(Pi-1,j+((Pi,j-1−Pi-1,j-1)>>1))によって与えられる、例6から8のいずれかに記載の方法。
[0372]例10. 可逆水平イントラコード化のために適用される、例6から9のいずれかに記載の方法。
[0373]例11. 例1から10の方法の任意の組合せ。
[0374]例12. エンコーダによって実行され、コード化が符号化を指す、例1から10又はこれらの組合せのいずれかの方法。
[0375]例13. デコーダによって実行され、コード化が復号を指す、例1から10又はこれらの組合せのいずれかの方法。
[0376]例14. 例1から10又はこれらの組合せのいずれかの方法を実行するように構成されるシステム。
[0377]例15. 実行されると、1つ又は複数のプロセッサに、例1から10又はこれらの組合せのいずれかの方法を実行させる命令を記憶した、非一時的コンピュータ可読記憶媒体。
[0378]例16. 例1から10又はこれらの組合せのいずれかの方法を実行するように構成されるビデオ符号化機器。
[0379]例17. 例1から10又はこれらの組合せのいずれかの方法を実行するように構成されるビデオ復号機器。
[0380]例18. 例1から10又はこれらの組合せのいずれかの方法のステップを実行するための手段を備えるビデオ符号化機器。
[0381]例19. 例1から10又はこれらの組合せのいずれかの方法のステップを実行するための手段を備えるビデオ復号機器。
[0382]1つ又は複数の例では、本明細書で説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つ又は複数の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、又はコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、例えば、データ記憶媒体などの有形媒体、又は、例えば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体に対応する、コンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、又は、(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法を実装するための命令、コード及び/又はデータ構造を取り出すために、1つもしくは複数のコンピュータ、又は1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
[0383]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROM又は他の光ディスク記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶装置、フラッシュメモリ、又は、命令若しくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモート発信源から送信される場合には、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まず、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)及びBlu−ray(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0384]命令は、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、又は他の等価な集積回路若しくはディスクリート論理回路のような、1つ以上のプロセッサによって実行され得る。従って、本明細書で使用される「プロセッサ」という用語は、前述の構造、又は本明細書で説明される技法の実装に好適な任意の他の構造のいずれかを指し得る。加えて、幾つかの態様では、本明細書で説明された機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内に設けられてよく、又は複合コーデックに組み込まれてよい。また、本技法は、1つ又は複数の回路又は論理要素の中で完全に実装され得る。
[0385]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置の中で実装され得る。本開示では、開示された技法を実行するように構成された機器の機能的態様を強調するために、様々なコンポーネント、モジュール、又はユニットが説明されるが、それらのコンポーネント、モジュール、又はユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上で説明された1つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられ、又は相互動作ハードウェアユニットの集合によって与えられ得る。
[0386]様々な例が説明されてきた。これら及び他の例は、以下の特許請求の範囲内にある。