(57)【要約】  ビデオデコーダは、ビデオデータの現在ピクチャの現在ブロックがP×Qのサイズを有すると判定することであって、Pが、現在ブロックの幅に対応する第1の値であり、Qが、現在ブロックの高さに対応する第2の値であり、PがQに等しくなく、現在ブロックが短辺および長辺を含み、第2の値に加算される第1の値が、2の冪である値に等しくない、判定することと、イントラDCモード予測を使用してビデオデータの現在ブロックを復号することであって、DC値を計算するためにシフト動作を実行することと、計算されたDC値を使用して、ビデオデータの現在ブロックに対する予測ブロックを生成することと、復号することと、現在ピクチャの復号バージョンを出力することとを含む、復号することを行う。
2020503815.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
前記ビデオデータの現在ピクチャの現在ブロックがP×Qのサイズを有すると判定するステップであって、Pが、前記現在ブロックの幅に対応する第1の値であり、Qが、前記現在ブロックの高さに対応する第2の値であり、PがQに等しくなく、前記現在ブロックが短辺および長辺を含み、前記第1の値足す前記第2の値が、2の冪である値に等しくない、判定するステップと、
イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するステップであって、
DC値を計算するためにシフト動作を実行するステップと、
前記計算されたDC値を使用して、ビデオデータの前記現在ブロックに対する予測ブロックを生成するステップと、
前記現在ブロックの復号バージョンを含む、前記現在ピクチャの復号バージョンを出力するステップと
を含む、復号するステップと
を含む、方法。
【請求項２】
前記イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するステップが、
前記シフト動作を使用して、前記短辺の近隣のサンプルに関する第1の平均値を判定するステップと、
前記シフト動作を使用して、前記長辺の近隣のサンプルに関する第2の平均値を判定するステップと、
前記シフト動作を使用して、前記第1の平均値および前記第2の平均値の平均値を判定することによって、前記DC値を計算するステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
前記第1の平均値および前記第2の平均値の前記平均値を判定するステップが、前記第1の平均値および前記第2の平均値の加重平均値を判定するステップを含む、請求項2に記載の方法。
【請求項４】
前記イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するステップが、
前記長辺の近隣のダウンサンプリングされるサンプルの数および前記短辺の近隣のサンプルの数の組合せが2の冪である値に等しいように、前記長辺の近隣のサンプルの数をダウンサンプリングして前記長辺の近隣のダウンサンプリングされたサンプルの前記数を判定するステップ
をさらに含む、請求項1に記載の方法。
【請求項５】
前記イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するステップが、
前記短辺の近隣のアップサンプリングされるサンプルの数および前記長辺の近隣のサンプルの前記数の組合せが2の冪である値に等しいように、前記短辺の近隣のサンプルの前記数をアップサンプリングして前記短辺の近隣のアップサンプリングされたサンプルの前記数を判定するステップ
をさらに含む、請求項1に記載の方法。
【請求項６】
前記イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するステップが、
前記短辺の近隣のアップサンプリングされるサンプルの数および前記長辺の近隣のダウンサンプリングされるサンプルの数の組合せが2の冪である値に等しいように、
前記短辺の近隣のサンプルの前記数をアップサンプリングして前記短辺の近隣のアップサンプリングされるサンプルの前記数を判定するステップと、
前記長辺の近隣のサンプルの前記数をダウンサンプリングして前記長辺の近隣のダウンサンプリングされたサンプルの前記数を判定するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
前記イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するステップが、
前記短辺の近隣のダウンサンプリングされるサンプルの数および前記長辺の近隣のダウンサンプリングされるサンプルの数の組合せが2の冪である値に等しいように、
前記短辺の近隣のサンプルの前記数をダウンサンプリングして前記短辺の近隣のダウンサンプリングされたサンプルの数を判定するステップと、
前記長辺の近隣のサンプルの前記数をダウンサンプリングして前記長辺の近隣のダウンサンプリングされたサンプルの前記数を判定するステップ
をさらに含む、請求項1に記載の方法。
【請求項８】
前記復号する方法が、ビデオ符号化プロセスの復号ループの一部として実行され、前記現在ピクチャの前記復号バージョンを出力するステップが、前記ビデオデータの別のピクチャを符号化する際に使用するための参照ピクチャとして前記現在ピクチャの前記復号バージョンを記憶するステップを含む、請求項1に記載の方法。
【請求項９】
前記現在ピクチャの前記復号バージョンを出力するステップが、前記現在ピクチャの前記復号バージョンをディスプレイデバイスに出力するステップを含む、請求項1に記載の方法。
【請求項１０】
ビデオデータを復号するためのデバイスであって、
前記ビデオデータを記憶するように構成される1つまたは複数の記憶媒体と、
1つまたは複数のプロセッサとを含み、前記1つまたは複数のプロセッサが、
前記ビデオデータの現在ピクチャの現在ブロックがP×Qのサイズを有すると判定することであって、Pが、前記現在ブロックの幅に対応する第1の値であり、Qが、前記現在ブロックの高さに対応する第2の値であり、PがQに等しくなく、前記現在ブロックが短辺および長辺を含み、前記第1の値足す前記第2の値が、2の冪である値に等しくない、判定することと、
イントラDCモード予測を使用し、ビデオデータの前記現在ブロックを復号することであって、
DC値を計算するためにシフト動作を実行することと、
前記計算されたDC値を使用して、ビデオデータの前記現在ブロックに対する予測ブロックを生成することと、
前記現在ブロックの復号バージョンを含む、前記現在ピクチャの復号バージョンを出力することと
を含む、復号することと
を行うように構成される、デバイス。
【請求項１１】
前記イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するために、前記1つまたは複数のプロセッサが、
前記シフト動作を使用して、前記短辺の近隣のサンプルに関する第1の平均値を判定することと、
前記シフト動作を使用して、前記長辺の近隣のサンプルに関する第2の平均値を判定することと、
前記シフト動作を使用して、前記第1の平均値および前記第2の平均値の平均値を判定することによって、前記DC値を計算することと
を行うようにさらに構成される、請求項10に記載のデバイス。
【請求項１２】
前記第1の平均値および前記第2の平均値の前記平均値を判定するために、前記1つまたは複数のプロセッサが、前記第1の平均値および前記第2の平均値の加重平均値を判定するようにさらに構成される、請求項11に記載のデバイス。
【請求項１３】
前記イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するために、前記1つまたは複数のプロセッサが、
前記長辺の近隣のダウンサンプリングされるサンプルの数および短辺の近隣のサンプルの数の組合せが2の冪である値に等しいように、前記長辺の近隣のサンプルの数をダウンサンプリングして前記長辺の近隣のダウンサンプリングされたサンプルの前記数を判定する
ようにさらに構成される、請求項10に記載のデバイス。
【請求項１４】
前記イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するために、前記1つまたは複数のプロセッサが、
前記短辺の近隣のアップサンプリングされたサンプルの数および前記長辺の近隣のサンプルの前記数の組合せが2の冪である値に等しいように、前記短辺の近隣のサンプルの前記数をアップサンプリングして前記短辺の近隣のアップサンプリングされたサンプルの前記数を判定する
ようにさらに構成される、請求項10に記載のデバイス。
【請求項１５】
前記イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するために、前記1つまたは複数のプロセッサが、
前記短辺の近隣のアップサンプリングされるサンプルの数および前記長辺の近隣のダウンサンプリングされるサンプルの数の組合せが2の冪である値に等しいように、
前記短辺の近隣のサンプルの前記数をアップサンプリングして前記短辺の近隣のアップサンプリングされたサンプルの前記数を判定することと、
前記長辺の近隣のサンプルの前記数をダウンサンプリングして前記長辺の近隣のダウンサンプリングされたサンプルの前記数を判定することと
を行うようにさらに構成される、請求項10に記載のデバイス。
【請求項１６】
前記イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するために、前記1つまたは複数のプロセッサが、
前記短辺の近隣のダウンサンプリングされるサンプルの数および前記長辺の近隣のダウンサンプリングされるサンプルの数の組合せが2の冪である値に等しいように、
前記短辺の近隣のサンプルの前記数をダウンサンプリングして前記短辺の近隣のダウンサンプリングされたサンプルの数を判定することと、
前記長辺の近隣のサンプルの前記数をダウンサンプリングして前記長辺の近隣のダウンサンプリングされたサンプルの前記数を判定することと
を行うようにさらに構成される、請求項10に記載のデバイス。
【請求項１７】
前記現在ピクチャの前記復号バージョンを出力するために、前記1つまたは複数のプロセッサが、前記ビデオデータの別のピクチャを符号化する際に使用するための参照ピクチャとして前記現在ピクチャの前記復号バージョンを記憶するようにさらに構成される、請求項10に記載のデバイス。
【請求項１８】
前記現在ピクチャの前記復号バージョンを出力するために、前記1つまたは複数のプロセッサが、前記現在ピクチャの前記復号バージョンをディスプレイデバイスに出力するようにさらに構成される、請求項10に記載のデバイス。
【請求項１９】
前記デバイスが、符号化ビデオデータを送信するように構成された送信機をさらに備えるワイヤレス通信デバイスを備える、請求項10に記載のデバイス。
【請求項２０】
前記ワイヤレス通信デバイスが電話ハンドセットを備え、前記送信機が、ワイヤレス通信規格に従って、前記符号化ビデオデータを含む信号を変調するように構成される、請求項19に記載のデバイス。
【請求項２１】
前記デバイスが、符号化ビデオデータを受信するように構成された受信機をさらに備えるワイヤレス通信デバイスを備える、請求項10に記載のデバイス。
【請求項２２】
前記ワイヤレス通信デバイスが電話ハンドセットを備え、前記受信機が、ワイヤレス通信規格に従って、前記符号化ビデオデータを含む信号を復調するように構成される、請求項21に記載のデバイス。
【請求項２３】
ビデオデータを復号するための装置であって、
前記ビデオデータの現在ピクチャの現在ブロックがP×Qのサイズを有すると判定するための手段であって、Pが、前記現在ブロックの幅に対応する第1の値であり、Qが、前記現在ブロックの高さに対応する第2の値であり、PがQに等しくなく、前記現在ブロックが短辺および長辺を含み、前記第1の値足す前記第2の値が、2の冪である値に等しくない、判定するための手段と、
イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するための手段であって、
DC値を計算するためにシフト動作を実行するための手段と、
前記計算されたDC値を使用して、ビデオデータの前記現在ブロックに対する予測ブロックを生成するための手段と、
前記現在ブロックの復号バージョンを含む、前記現在ピクチャの復号バージョンを出力するための手段と
を備える、装置。
【請求項２４】
前記イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するための手段が、
前記シフト動作を使用して、前記短辺の近隣のサンプルに関する第1の平均値を判定するための手段と、
前記シフト動作を使用して、前記長辺の近隣のサンプルに関する第2の平均値を判定するための手段と、
前記シフト動作を使用して、前記第1の平均値および前記第2の平均値の平均値を判定することによって、前記DC値を計算するための手段と
をさらに含む、請求項23に記載の装置。
【請求項２５】
前記第1の平均値および前記第2の平均値の前記平均値を前記判定するための手段が、前記第1の平均値および前記第2の平均値の加重平均値を判定するための手段を含む、請求項24に記載の装置。
【請求項２６】
前記イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するための手段が、
前記長辺の近隣のダウンサンプリングされるサンプルの数および前記短辺の近隣のサンプルの数の組合せが2の冪である値に等しいように、前記長辺の近隣のサンプルの数をダウンサンプリングして前記長辺の近隣のダウンサンプリングされたサンプルの前記数を判定するための手段
をさらに含む、請求項23に記載の装置。
【請求項２７】
前記イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するための手段が、
前記短辺の近隣のアップサンプリングされるサンプルの数および前記長辺の近隣のサンプルの前記数の組合せが2の冪である値に等しいように、前記短辺の近隣のサンプルの前記数をアップサンプリングして前記短辺の近隣のアップサンプリングされたサンプルの前記数を判定するための手段
をさらに含む、請求項23に記載の装置。
【請求項２８】
前記イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するための手段が、
前記短辺の近隣のアップサンプリングされるサンプルの数および前記長辺の近隣のダウンサンプリングされるサンプルの数の組合せが2の冪である値に等しいように、
前記短辺の近隣のサンプルの前記数をアップサンプリングして前記短辺の近隣のアップサンプリングされたサンプルの前記数を判定するための手段と、
前記長辺の近隣のサンプルの前記数をダウンサンプリングして前記長辺の近隣のダウンサンプリングされたサンプルの前記数を判定するための手段と
をさらに備える、請求項23に記載の装置。
【請求項２９】
前記イントラDCモード予測を使用してビデオデータの前記現在ブロックを復号するための手段が、
前記短辺の近隣のダウンサンプリングされるサンプルの数および前記長辺の近隣のダウンサンプリングされるサンプルの数の組合せが2の冪である値に等しいように、
ために、前記短辺の近隣のサンプルの前記数をダウンサンプリングして前記短辺の近隣のダウンサンプリングされたサンプルの数を判定する手段と、
前記長辺の近隣のサンプルの前記数をダウンサンプリングして前記長辺の近隣のダウンサンプリングされたサンプルの前記数を判定するための手段と
をさらに備える、請求項23に記載の装置。
【請求項３０】
前記現在ピクチャの前記復号バージョンを前記出力するための手段が、前記ビデオデータの別のピクチャを符号化する際に使用するための参照ピクチャとして前記現在ピクチャの前記復号バージョンを記憶するための手段を備える、請求項23に記載の装置。
【請求項３１】
前記現在ピクチャの前記復号バージョンを前記出力するための手段が、前記現在ピクチャの前記復号バージョンをディスプレイデバイスに出力するための手段を含む、請求項23に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれている、2017年1月11日に出願した米国仮特許出願第62/445,207号の利益を主張するものである。
【０００２】
本開示は、ビデオ符号化およびビデオ復号など、ビデオコーディングに関する。
【背景技術】
【０００３】
デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part 10、アドバンストビデオコーディング(AVC:Advanced Video Coding)、高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法などのビデオコーディング技法を実施する。ビデオデバイスは、そのようなビデオコーディング技法を実施することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
【０００４】
ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を含む。ブロックベースのビデオコーディングの場合、ビデオスライス(たとえば、ビデオフレーム、またはビデオフレームの一部分)は、ビデオブロックに区分されてよく、ビデオブロックは、ツリーブロック、CU、および/またはコーディングノードと呼ばれることもある。ピクチャは、フレームと呼ばれることがある。参照ピクチャは、参照フレームと呼ばれることがある。
【０００５】
空間予測または時間予測は、コーディングされるべきブロックの予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらし得、残差変換係数は、次いで、量子化され得る。なお一層の圧縮を達成するために、エントロピーコーディングが適用されてよい。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】J. An他、「Block partitioning structure for next generation video coding」、国際電気通信連合、COM16-C966、2015年9月
【非特許文献２】H. Huang、K. Zhang、Y.-W. Huang、S. Lei、「EE2.1: Quadtree plus binary tree structure integration with JEM tools」、JVET-C0024、2016年6月
【非特許文献３】J. Chen、E. Alshina、G. J. Sullivan、J.-R. Ohm、J. Boyce、「Algorithm Description of Joint Exploration Test Model 4」、JVET-D1001、2016年10月
【非特許文献４】F. Le Leannec、T. Poirier、F. Urban、「Asymmetric Coding Units in QTBT」、JVET-D0064、成都、2016年10月
【発明の概要】
【課題を解決するための手段】
【０００７】
本開示は、イントラ予測を使用してビデオデータのブロックをコーディングするための技法について説明する。たとえば、本開示の技法は、ビデオデータのブロックが矩形であるとき、イントラDCモード予測を使用してビデオデータのブロックをコーディングするステップを含む。
【０００８】
一例によれば、ビデオデータを復号するための方法は、ビデオデータの現在ピクチャの現在ブロックがP×Qのサイズを有すると判定するステップであって、Pが、現在ブロックの幅に対応する第1の値であり、Qが、現在ブロックの高さに対応する第2の値であり、PがQに等しくなく、現在ブロックが短辺および長辺を含み、第2の値に加算される第1の値が、2の冪である値に等しくない、判定するステップと、イントラDCモード予測を使用してビデオデータの現在ブロックを復号するステップであって、DC値を計算するためにシフト動作を実行するステップと、計算されたDC値を使用して、ビデオデータの現在ブロックに対する予測ブロックを生成するステップと、現在ブロックの復号バージョンを含む、現在ピクチャの復号バージョンを出力するステップとを含む、復号するステップとを含む。
【０００９】
別の例によれば、ビデオデータを復号するためのデバイスは、ビデオデータを記憶するように構成された1つまたは複数の記憶媒体と、1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサが、ビデオデータの現在ピクチャの現在ブロックがP×Qのサイズを有すると判定することであって、Pが、現在ブロックの幅に対応する第1の値であり、Qが、現在ブロックの高さに対応する第2の値であり、PがQに等しくなく、現在ブロックが短辺および長辺を含み、第2の値に加算される第1の値が、2の冪である値に等しくない、判定することと、イントラDCモード予測を使用してビデオデータの現在ブロックを復号することであって、DC値を計算するためにシフト動作を実行することと、計算されたDC値を使用して、ビデオデータの現在ブロックに対する予測ブロックを生成することと、現在ブロックの復号バージョンを含む、現在ピクチャの復号バージョンを出力することとを含む、復号することとを行うように構成される。
【００１０】
別の例によれば、ビデオデータを復号するための装置は、ビデオデータの現在ピクチャの現在ブロックがP×Qのサイズを有すると判定するための手段であって、Pが、現在ブロックの幅に対応する第1の値であり、Qが、現在ブロックの高さに対応する第2の値であり、PがQに等しくなく、現在ブロックが短辺および長辺を含み、第2の値に加算される第1の値が、2の冪である値に等しくない、判定するための手段と、イントラDCモード予測を使用してビデオデータの現在ブロックを復号するための手段であって、DC値を計算するためにシフト動作を実行するための手段と、計算されたDC値を使用して、ビデオデータの現在ブロックに対する予測ブロックを生成するための手段と、現在ブロックの復号バージョンを含む、現在ピクチャの復号バージョンを出力する手段とを含む、復号する手段とを含む。
【００１１】
1つまたは複数の例の詳細が、添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】本開示の技法を実施するように構成された例示的なビデオ符号化および復号システムを示すブロック図である。
【図２】高効率ビデオコーディング(HEVC)内のコーディングユニット(CU)構造を示す概念図である。
【図３】インター予測モードの場合の例示的な区分タイプを示す概念図である。
【図４Ａ】4分木2分木(QTBT:quad-tree-binary-tree)構造を使用したブロック区分の例を示す概念図である。
【図４Ｂ】図4AのQTBT構造を使用したブロック区分に対応する例示的なツリー構造を示す概念図である。
【図５】QTBT区分の一例による、例示的な非対称区分を示す概念図である。
【図６Ａ】本開示の一例によるイントラ予測の基本的な例を示す図である。
【図６Ｂ】本開示の一例によるイントラ予測の33個の異なる角度モードの一例を示す図である。
【図６Ｃ】本開示の一例によるイントラ平面モード予測の一例を示す図である。
【図６Ｄ】本開示の一例による、現在ブロックに境界を接する上の近隣サンプルおよび左の近隣サンプルを示す図である。
【図７】本開示の一例による、現在ブロックに境界を接する上の近隣サンプルのダウンサンプリングの一例を示す図である。
【図８】本開示の一例による、現在ブロックに境界を接する左の近隣サンプルを拡張する一例を示す図である。
【図９】分割除去技法の一例を示す図である。
【図１０】ビデオエンコーダの一例を示すブロック図である。
【図１１】ビデオデコーダの一例を示すブロック図である。
【図１２】本開示の技法による、ビデオデコーダの例示的な動作を示すフローチャートである。
【図１３】本開示の技法による、ビデオデコーダの例示的な動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
本開示は、イントラ予測を使用して、ビデオデータのブロックをコーディングするための技法について説明し、より詳細には、本開示は、非正方形矩形ブロック、すなわち、ブロックの幅に等しくない高さを有するブロックのコーディングに関する技法について説明する。たとえば、本発明の技法は、イントラDC予測モードを使用して、またはイントラストロングフィルタ(intra strong filter)を使用して、ビデオデータの非正方形矩形ブロックをコーディングするステップを含む。本明細書で説明する技法は、シフト動作の使用を可能にし得、それ以外の場合、分割動作が必要とされる場合があり、それにより、所望のコーディング効率を維持しながら、計算の複雑さを潜在的に低減する。
【００１４】
本開示で使用するビデオコーディングという用語は、総称的に、ビデオ符号化またはビデオ復号のいずれかを指す。同様に、ビデオコーダという用語は、総称的に、ビデオエンコーダまたはビデオデコーダを指すことがある。その上、ビデオ復号に関して本開示で説明するいくつかの技法は、ビデオ符号化に適用されてもよく、その逆も同様である。たとえば、しばしば、ビデオエンコーダおよびビデオデコーダは、同じプロセス、または逆のプロセスを実行するように構成される。また、ビデオエンコーダは、典型的には、ビデオデータをどのように符号化するのかを判定するプロセスの一部として、ビデオ復号を実行する。したがって、それに反する記載がない限り、ビデオ復号に関して説明する技法を、やはりビデオ符号化の一部としても実行することができないと仮定すべきではなく、その逆も同様である。
【００１５】
本開示はまた、現在レイヤ、現在ブロック、現在ピクチャ、現在スライスなどの用語を使用することがある。本開示の文脈では、現在という用語は、たとえば、以前にまたはすでにコーディングされたブロック、ピクチャ、およびスライス、またはまだコーディングされていないブロック、ピクチャ、およびスライスとは対照的に、現在コーディングされているブロック、ピクチャ、スライスなどを識別することが意図されている。
【００１６】
図1は、ビデオデータのブロックが矩形であるとき、イントラDCモード予測を使用してビデオデータのブロックをコーディングするために本開示の技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを提供するソースデバイス12を含む。詳細には、ソースデバイス12は、コンピュータ可読媒体16を介して宛先デバイス14にビデオデータを提供する。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、タブレットコンピュータ、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのうちのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。したがって、ソースデバイス12および宛先デバイス14は、ワイヤレス通信デバイスであり得る。ソースデバイス12は、例示的なビデオ符号化デバイス(すなわち、ビデオデータを符号化するためのデバイス)である。宛先デバイス14は例示的なビデオ復号デバイス(たとえば、ビデオデータを復号するためのデバイスまたは装置)である。
【００１７】
図1の例では、ソースデバイス12は、ビデオソース18、ビデオデータを記憶するように構成された記憶媒体20、ビデオエンコーダ22、および出力インターフェース24を含む。宛先デバイス14は、入力インターフェース26、符号化ビデオデータを記憶するように構成された記憶媒体28、ビデオデコーダ30、およびディスプレイデバイス32を含む。他の例では、ソースデバイス12および宛先デバイス14は、他の構成要素または構成を含む。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス14は、統合されたディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースしてもよい。
【００１８】
図1の図示されるシステム10は一例にすぎない。ビデオデータを処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスまたは装置によって実行され得る。概して、本開示の技法はビデオ符号化デバイスおよびビデオ復号デバイスによって実行されるが、技法はまた、典型的には「コーデック」と呼ばれる複合ビデオエンコーダ/デコーダによって実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14への送信のために符号化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、ソースデバイス12および宛先デバイス14は、ソースデバイス12および宛先デバイス14の各々がビデオ符号化および復号構成要素を含むように、実質的に対称的様式で動作する。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のための、ソースデバイス12と宛先デバイス14との間での一方向または双方向のビデオ送信をサポートし得る。
【００１９】
ソースデバイス12のビデオソース18は、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブされたビデオとコンピュータで生成されたビデオとの組合せを生成し得る。ソースデバイス12は、ビデオデータを記憶するように構成された1つまたは複数のデータ記憶媒体(たとえば、記憶媒体20)を備え得る。本開示で説明する技法は、ビデオコーディングに概して適用可能であり得、ワイヤレスおよび/または有線の適用例に適用され得る。各々の場合において、キャプチャされた、事前にキャプチャされた、またはコンピュータで生成されたビデオが、ビデオエンコーダ22によって符号化され得る。出力インターフェース24は、符号化ビデオ情報をコンピュータ可読媒体16に出力することができる。
【００２０】
宛先デバイス14は、コンピュータ可読媒体16を介して、復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。いくつかの例では、コンピュータ可読媒体16は、ソースデバイス12がリアルタイムで宛先デバイス14に符号化ビデオデータを直接送信することを可能にする通信媒体を含む。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路などの、任意のワイヤレスまたは有線通信媒体を含み得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含む場合がある。宛先デバイス14は、符号化ビデオデータおよび復号ビデオデータを記憶するように構成された1つまたは複数のデータ記憶媒体を備え得る。
【００２１】
いくつかの例では、符号化データ(たとえば、符号化ビデオデータ)は、出力インターフェース24から記憶デバイスに出力され得る。同様に、符号化されたデータは、入力インターフェース26によって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、Blu-rayディスク、DVD、CD-ROM、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体などの、分散されるかまたはローカルにアクセスされる様々なデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイスは、ソースデバイス12によって生成された符号化されたビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して記憶デバイスからの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶するとともにその符号化ビデオデータを宛先デバイス14へ送信することが可能な、任意のタイプのサーバであってよい。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワークアタッチストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、またはファイルサーバ上に記憶された符号化ビデオデータにアクセスするのに適した両方の組合せを含み得る。記憶デバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【００２２】
本開示の技法は、オーバージエアテレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されているデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００２３】
コンピュータ可読媒体16は、ワイヤレスブロードキャストもしくは有線ネットワーク送信などの一時的媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu-rayディスク、もしくは他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)が、たとえば、ネットワーク送信を介して、ソースデバイス12から符号化ビデオデータを受信してよく、符号化ビデオデータを宛先デバイス14に提供してよい。同様に、ディスクスタンピング設備などの媒体製造設備のコンピューティングデバイスが、ソースデバイス12から符号化ビデオデータを受信してよく、符号化ビデオデータを含むディスクを製造してよい。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むものと理解されてよい。
【００２４】
宛先デバイス14の入力インターフェース26は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ブロックおよび他のコーディングされたユニット、たとえば、ピクチャグループ(GOP:groups of pictures)の特性および/または処理を記述するシンタックス要素を含む、ビデオエンコーダ22によって定義されるとともに、ビデオデコーダ30によって同様に使用されるシンタックス情報を含み得る。記憶媒体28は、入力インターフェース26によって受信された符号化ビデオデータを記憶し得る。ディスプレイデバイス32は、復号ビデオデータをユーザに表示する。ディスプレイデバイス32は、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを備え得る。
【００２５】
ビデオエンコーダ22およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路またはデコーダ回路のいずれかとして実装され得る。技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体内にソフトウェア用の命令を記憶することができ、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行することができる。ビデオエンコーダ22およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダ内に含まれてよく、そのいずれもが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されてよい。
【００２６】
いくつかの例では、ビデオエンコーダ22およびビデオデコーダ30は、ビデオコーディング規格に従って動作し得る。例示的なビデオコーディング規格は、限定はしないが、そのスケーラブルビデオコーディング(SVC)拡張およびマルチビュービデオコーディング(MVC)拡張を含む、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、およびITU-T H.264(ISO/IEC MPEG-4 AVCとしても知られている)を含む。ビデオコーディング規格、高効率ビデオコーディング(HEVC)またはITU-T H.265が、その範囲拡張、スクリーンコンテンツコーディング拡張、3Dビデオコーディング(3D-HEVC)拡張、およびマルチビュー拡張(MV-HEVC)ならびにスケーラブル(SHVC)拡張を含めて、ITU-Tビデオコーディングエキスパーツグループ(VCEG:Video Coding Experts Group)およびISO/IECモーションピクチャエキスパーツグループ(MPEG:Motion Picture Experts Group)のビデオコーディング共同研究部会(JCT-VC:Joint Collaboration Team on Video Coding)によって最近開発された。以下でHEVC WDと呼ばれる最新のHEVCドラフト仕様は、http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zipから入手可能である。
【００２７】
HEVCおよび他のビデオコーディング仕様では、ビデオシーケンスは、典型的には、一連のピクチャを含む。ピクチャは、「フレーム」と呼ばれることもある。ピクチャは、SL、SCb、およびSCrと示される3つのサンプルアレイを含み得る。SLは、ルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbは、Cbクロミナンスサンプルの2次元アレイである。SCrは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロームであることがあり、ルーマサンプルのアレイしか含まないことがある。
【００２８】
さらに、HEVCおよび他のビデオコーディング仕様では、ピクチャの符号化表現を生成するために、ビデオエンコーダ22はコーディングツリーユニット(CTU)のセットを生成し得る。CTUの各々は、ルーマサンプルのコーディングツリーブロック、クロマサンプルの2つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。モノクロームピクチャ、または3つの別個の色平面を有するピクチャでは、CTUは、単一のコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。コーディングツリーブロックは、サンプルのN×Nブロックであり得る。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)と呼ばれる場合もある。HEVCのCTUは、H.264/AVCなどの他の規格のマクロブロックに概して類似し得る。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含んでよい。スライスは、ラスタ走査順序で連続的に順序付けられた整数個のCTUを含み得る。
【００２９】
HEVCに従って動作する場合、コーディングされたCTUを生成するために、ビデオエンコーダ22は、CTUのコーディングツリーブロック上で4分木区分を再帰的に実行して、コーディングツリーブロックをコーディングブロックに分割することができ、したがって、「コーディングツリーユニット」という名前である。コーディングブロックは、サンプルのN×Nブロックである。CUは、ルーマサンプルアレイ、Cbサンプルアレイ、およびCrサンプルアレイを有するピクチャのルーマサンプルのコーディングブロックおよびクロマサンプルの2つの対応するコーディングブロック、ならびにコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、CUは、単一のコーディングブロック、およびコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。
【００３０】
ビットストリーム内のシンタックスデータも、CTUに関するサイズを定義し得る。スライスは、コーディング順序において連続するいくつかのCTUを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。上述のように、各ツリーブロックは、4分木に従ってCUに分割され得る。概して、4分木データ構造はCU当たり1つのノードを含み、ルートノードはツリーブロックに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。
【００３１】
4分木データ構造の各ノードは、対応するCUにシンタックスデータを提供し得る。たとえば、4分木内のノードは、ノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのためのシンタックス要素は再帰的に定義されることがあり、CUがサブCUに分割されるかどうかに依存することがある。CUがさらに分割されない場合、それはリーフCUと呼ばれる。CUのブロックがさらに分割される場合、それは、概して、非リーフCUと呼ばれ得る。本開示のいくつかの例では、リーフCUの4つのサブCUはまた、元のリーフCUの明示的な分割がなくてもリーフCUと呼ばれる。たとえば、16×16サイズにおけるCUがさらに分割されない場合、16×16CUはまったく分割されなかったが、4つの8×8サブCUもリーフCUと呼ばれ得る。
【００３２】
CUは、CUがサイズの区別をもたないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは4つの子ノード(サブCUとも呼ばれる)に分割されてよく、各子ノードは、次には親ノードであってよく別の4つの子ノードに分割され得る。最後の、4分木のリーフノードと呼ばれる分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コーディングされたビットストリームに関連するシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズも定義し得る。したがって、ビットストリームはまた、最小コーディングユニット(SCU)を定義し得る。本開示は、HEVCのコンテキストにおけるCU、PU、もしくはTUのいずれか、または、他の規格のコンテキストにおける同様のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそのサブブロック)を指すために、「ブロック」という用語を使用する。
【００３３】
CUは、コーディングノード、ならびにコーディングノードに関連する予測ユニット(PU)および変換ユニット(TU)を含む。CUのサイズは、コーディングノードのサイズに対応し、いくつかの例では、形状が正方形であり得る。HEVCの例では、CUのサイズは、8×8ピクセルから、最大64×64ピクセル以上のツリーブロックのサイズまでの範囲であってもよい。各CUは、1つまたは複数のPUおよび1つまたは複数のTUを含み得る。CUに関連するシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を記述し得る。区分モードは、CUがスキップモード符号化または直接モード符号化されているのか、イントラ予測モード符号化されているのか、またはインター予測モード符号化されているのかの間で異なり得る。PUは、形状が非正方形であるように区分されてよい。CUに関連するシンタックスデータはまた、たとえば、4分木に従った1つまたは複数のTUへのCUの区分を記述してもよい。TUは、形状が正方形または非正方形(たとえば、矩形)であることが可能である。
【００３４】
HEVC規格は、TUに従った変換を可能にする。TUは、異なるCUに対して異なり得る。TUは、典型的には、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズが決められるが、これは必ずしもそうではないことがある。TUは、典型的には、PUと同じサイズであるか、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT)と呼ばれることがある4分木構造を使用して、より小さい単位に再度分割されてよい。RQTのリーフノードは、TUと呼ばれることがある。TUに関連するピクセル差分値は、量子化されてもよい変換係数を生成するために変換されてもよい。
【００３５】
リーフCUは、1つまたは複数のPUを含み得る。概して、PUは、対応するCUのすべてまたは一部分に対応する空間領域を表し、PUのための参照サンプルを取り出すためのデータを含む場合がある。その上、PUは予測に関連するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUに対するデータは、PUに対応するTU用のイントラ予測モードを記述するデータを含み得るRQT内に含まれてよい。別の例として、PUがインターモード符号化されるとき、PUは、PUに関する1つまたは複数の動きベクトルを定義するデータを含む場合がある。PUに関する動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、4分の1ピクセル精度もしくは8分の1ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルのための参照ピクチャリスト(たとえば、リスト0、リスト1、もしくはリストC)を記述してもよい。
【００３６】
1つまたは複数のPUを有するリーフCUはまた、1つまたは複数のTUを含み得る。TUは、上で論じたように、RQT(TU4分木構造とも呼ばれる)を使用して指定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを示し得る。いくつかの例では、各変換ユニットは、さらなるサブTUにさらに分割され得る。TUは、それ以上分割されないとき、リーフTUと呼ばれ得る。概して、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは、同じイントラ予測モードから作り出された残差データを含む。すなわち、同じイントラ予測モードは、概して、リーフCUのすべてのTU内で変換されることになる予測される値を計算するために適用される。イントラコーディングの場合、ビデオエンコーダ22は、各リーフTUに対する残差値を、TUに対応するCUの部分と元のブロックとの間の差としてイントラ予測モードを使用して計算してもよい。TUは、必ずしもPUのサイズに限定されるとは限らない。したがって、TUは、PUよりも大きくてもまたは小さくてもよい。イントラコーディングの場合、PUは、同じCUに対して対応するリーフTUとコロケートされてよい。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
【００３７】
その上、リーフCUのTUはまた、それぞれのRQT構造に関連付けられ得る。すなわち、リーフCUは、リーフCUがTUにどのように区分されるかを示す4分木を含み得る。TU4分木のルートノードは、概して、リーフCUに対応し、一方、CU4分木のルートノードは、概して、ツリーブロック(またはLCU)に対応する。
【００３８】
上記で論じたように、ビデオエンコーダ22は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックである。CUのPUは、ルーマサンプルの予測ブロック、クロマサンプルの2つの対応する予測ブロック、および予測ブロックを予測するために使用されるシンタックス構造を備え得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、PUは、単一の予測ブロック、および予測ブロックを予測するために使用されるシンタックス構造を備え得る。ビデオエンコーダ22は、CUの各PUの予測ブロック(たとえば、ルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロック)に対して、予測ブロック(たとえば、ルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロック)を生成し得る。
【００３９】
ビデオエンコーダ22は、イントラ予測またはインター予測を使用して、PU用の予測ブロックを生成し得る。ビデオエンコーダ22がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ22は、PUを含むピクチャの復号サンプルに基づいて、PUの予測ブロックを生成し得る。
【００４０】
ビデオエンコーダ22がCUの1つまたは複数のPUに対する予測ブロック(たとえば、ルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロック)を生成した後、ビデオエンコーダ22は、CUに対して1つまたは複数の残差ブロックを生成し得る。たとえば、ビデオエンコーダ22は、CUのルーマ残差ブロックを生成し得る。CUのルーマ残差ブロック内の各サンプルは、CUの予測ルーマブロックのうちの1つの中のルーマサンプルとCUの元のルーマコーディングブロック内の対応するサンプルとの間の差分を示す。加えて、ビデオエンコーダ22は、CUに対してCb残差ブロックを生成し得る。CUのCb残差ブロック内の各サンプルは、CUの予測Cbブロックのうちの1つの中のCbサンプルとCUの元のCbコーディングブロック内の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ22はまた、CUに対してCr残差ブロックを生成し得る。CUのCr残差ブロック内の各サンプルは、CUの予測Crブロックのうちの1つの中のCrサンプルと、CUの元のCrコーディングブロック内の対応するサンプルとの間の差分を示し得る。
【００４１】
さらに、上記で論じたように、ビデオエンコーダ22は、4分木区分を使用して、CUの残差ブロック(たとえば、ルーマ残差ブロック、Cb残差ブロック、およびCr残差ブロック)を1つまたは複数の変換ブロック(たとえば、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロック)に分解し得る。変換ブロックとは、同じ変換が適用されるサンプルの矩形(たとえば、正方形または非正方形)ブロックである。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、およびそれらの変換ブロックサンプルを変換するために使用されるシンタックス構造を備え得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックを有し得る。TUのルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、TUは、単一の変換ブロック、および変換ブロックのサンプルを変換するために使用されるシンタックス構造を含み得る。
【００４２】
ビデオエンコーダ22は、TUに対して係数ブロックを生成するために、1つまたは複数の変換をTUの変換ブロックに適用し得る。たとえば、ビデオエンコーダ22は、TUに対してルーマ係数ブロックを生成するために、1つまたは複数の変換をTUのルーマ変換ブロックに適用し得る。係数ブロックは変換係数の2次元アレイであり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ22は、TUに対するCb係数ブロックを生成するために、TUのCb変換ブロックに1つまたは複数の変換を適用し得る。ビデオエンコーダ22は、TUに対するCr係数ブロックを生成するために、TUのCr変換ブロックに1つまたは複数の変換を適用し得る。
【００４３】
いくつかの例では、ビデオエンコーダ22は、変換ブロックへの変換の適用をスキップする。そのような例では、ビデオエンコーダ22は、変換係数と同じ方法で残差サンプル値を扱い得る。したがって、ビデオエンコーダ22が変換の適用をスキップする例では、変換係数および係数ブロックの以下の議論は、残差サンプルの変換ブロックに適用可能であり得る。
【００４４】
係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、ビデオエンコーダ22は、係数ブロックを量子化して、場合によっては、係数ブロックを表すために使用されるデータの量を低減し、潜在的に、さらなる圧縮を実現し得る。量子化は、概して、値の範囲が単一の値に圧縮されるプロセスを指す。たとえば、量子化は、定数によって値を除算し、次いで、最も近い整数に丸めることによって行われ得る。係数ブロックを量子化するために、ビデオエンコーダ22は、係数ブロックの変換係数を量子化し得る。ビデオエンコーダ22が係数ブロックを量子化した後、ビデオエンコーダ22は、量子化された変換係数を示すシンタックス要素をエントロピー符号化することができる。たとえば、ビデオエンコーダ22は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC:Context-Adaptive Binary Arithmetic Coding)または他のエントロピーコーディング技法を実行することができる。
【００４５】
ビデオエンコーダ22は、コーディングされたピクチャの表現および関連するデータを形成するビットのシーケンスを含むビットストリームを出力することができる。したがって、ビットストリームは、ビデオデータの符号化表現を含む。ビットストリームは、ネットワーク抽象化レイヤ(NAL)ユニットのシーケンスを含み得る。NALユニットは、NALユニット内のデータのタイプの指示、および必要に応じてエミュレーション防止ビットが散在させられているローバイトシーケンスペイロード(RBSP:raw byte sequence payload)の形態でそのデータを含むバイトを含む、シンタックス構造である。NALユニットの各々は、NALユニットヘッダを含むことができ、RBSPをカプセル化し得る。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含み得る。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化されている整数個のバイトを含むシンタックス構造であり得る。いくつかの事例では、RBSPは0ビットを含む。
【００４６】
ビデオデコーダ30は、ビデオエンコーダ22によって生成されたビットストリームを受信し得る。ビデオデコーダ30は、ビットストリームを復号してビデオデータのピクチャを再構築し得る。ビットストリームを復号することの一部として、ビデオデコーダ30は、ビットストリームをパースしてビットストリームからシンタックス要素を取得し得る。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構築することができる。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ22によって実行されるプロセスの逆であってよい。たとえば、ビデオデコーダ30は、現在CUのPUの予測ブロックを判定するために、PUの動きベクトルを使用することができる。加えて、ビデオデコーダ30は、現在CUのTUの係数ブロックを逆量子化し得る。ビデオデコーダ30は、係数ブロックに対して逆変換を実行して、現在CUのTUの変換ブロックを再構築し得る。ビデオデコーダ30は、現在CUのPUの予測ブロックのサンプルを、現在CUのTUの変換ブロックの対応するサンプルに加算することによって、現在CUのコーディングブロックを再構築し得る。ピクチャのCUごとにコーディングブロックを再構築することによって、ビデオデコーダ30はピクチャを再構築し得る。
【００４７】
HEVCの一般的な概念および一定の設計態様について、ブロック区分に関する技法に焦点を当てて、以下で説明する。HEVCでは、スライス内の最大のコーディングユニットはCTUと呼ばれる。CTUのサイズは、HEVCメインプロファイルにおいて16×16から64×64の範囲であってよいが、8×8CTUサイズがサポートされてもよい。したがって、HEVCにおけるCTUのサイズは、8×8から64×64の範囲であってよい。いくつかの例では、CUは、CTUと同じサイズであり得る。各CUは、イントラコーディングモードまたはインターコーディングモードなどの、1つのコーディングモードでコーディングされる。スクリーンコンテンツに対するコーディングモード(たとえば、イントラブロックコピーモード、パレットベースのコーディングモードなど)を含めて、他のコーディングモードも可能である。CUがインターコーディングされる(すなわち、インターモードが適用される)とき、CUは予測ユニット(PU)にさらに区分され得る。たとえば、CUは2つまたは4つのPUに区分され得る。別の例では、さらなる区分が適用されないとき、CU全体が単一のPUとして扱われる。HEVCの例では、1つのCU内に2つのPUが存在するとき、2つのPUは、CUの半分のサイズの矩形であってもよく、またはCUの1/4もしくは3/4のサイズを有する2つの矩形サイズであってよい。CTUは、各ルーマ成分およびクロマ成分に対してコーディングツリーブロック(CTB)を含み得る。CTBは、1つまたは複数のコーディングブロック(CB)を含み得る。CBは、いくつかの例では、CUと呼ばれることもある。いくつかの例では、CUという用語は、二分木リーフノードを指すために使用され得る。
【００４８】
Iスライスの場合、ルーマ-クロマ分離ブロック区分構造が提案される。1つのCTUのルーマ成分(すなわち、ルーマCTB)は、QTBT構造によって、ルーマCBに区分され、そのCTUの2つのクロマ成分(たとえば、CrおよびCb)(すなわち、2つのクロマCTB)は、別のQTBT構造によってクロマCBに区分される。
【００４９】
PスライスおよびBスライスの場合、ルーマおよびクロマのためのブロック区分構造は共有される。すなわち、1つのCTU(ルーマとクロマの両方を含む)が、1つのQTBT構造によってCUに区分される。
【００５０】
CUがインターコーディングされるとき、PUごとに動き情報の1つのセット(たとえば、動きベクトル、予測方向、および参照ピクチャ)が存在する。加えて、各PUは、動き情報のセットを導出するために一意のインター予測モードでコーディングされる。しかしながら、2つのPUが一意にコーディングされる場合ですら、2つのPUは、いくつかの状況において、依然として同じ動き情報を有し得ることを理解されたい。
【００５１】
J. An他、「Block partitioning structure for next generation video coding」、国際電気通信連合、COM16-C966、2015年9月(以後、「VCEG提案COM16-C966」)において、HEVCを超えた将来のビデオコーディング規格のための4分木2分木(QTBT)区分技法が提案された。提案されたQTBT構造は、使用されるHEVCにおいて4分木構造より効率的であることを、シミュレーションが示している。H. Huang、K. Zhang、Y.-W. Huang、S. Lei、「EE2.1: Quadtree plus binary tree structure integration with JEM tools」、JVET-C0024、2016年6月に記載されるようなQTBT構造がJEMソフトウェアにおいて採用される。JEMソフトウェアにおけるQTBT構造の採用は、J. Chen、E. Alshina、G. J. Sullivan、J.-R. Ohm、J. Boyce、「Algorithm Description of Joint Exploration Test Model 4」、JVET-D1001、2016年10月に記載されている。JEMソフトウェアは、ジョイントビデオエクスプロレーションチーム(JVET:Joint Video Exploration Team)グループ用の参照ソフトウェアであるHEVCモデル(HM)ソフトウェアに基づく。
【００５２】
QTBT構造では、4分木のルートノードであるCTU(または、Iスライスに対するCTB)は、4分木構造によって最初に区分される。4分木リーフノードは、2分木構造によってさらに区分され得る。さらなる区分を伴わない予測および変換のために、2分木リーフノード、すなわち、コーディングブロック(CB)が使用され得る。PスライスおよびBスライスの場合、1つのCTU内のルーマCTBおよびクロマCTBは、同じQTBT構造を共有する。Iスライスの場合、ルーマCTBは、QTBT構造によってCBに区分され得、2つのクロマCTBは、別のQTBT構造によってクロマCBに区分され得る。
【００５３】
最小の許容される4分木リーフノードサイズは、シンタックス要素MinQTSizeの値によってビデオデコーダに示され得る。4分木リーフノードサイズが最大の許容される2分木ルートノードサイズ(たとえば、シンタックス要素MaxBTSizeにより示されるような)より大きくない場合、4分木リーフノードはさらに、2分木区分を使用して区分され得る。ノードが最小の許容される2分木リーフノードサイズ(たとえば、シンタックス要素MinBTSizeにより示されるような)または最大の許容される2分木深度(たとえば、シンタックス要素MaxBTDepthにより示されるような)に達するまで、1つのノードの2分木区分が繰り返され得る。CU(または、Iスライスに対するCB)など、2分木リーフノードは、さらなる区分を伴わない予測(たとえば、イントラピクチャ予測またはインターピクチャ予測)および変換のために使用されることになる。概して、QTBT技法によれば、対称的な水平の分割および対称的な垂直の分割という、2分木分割のための2つの分割タイプがある。各々の場合において、ブロックは、水平または垂直のいずれかに、ブロックを中心で分割することによって分割される。
【００５４】
QTBT区分構造の一例では、CTUサイズは128×128(たとえば、128×128ルーマブロック、対応する64×64クロマCrブロック、および対応する64×64クロマCbブロック)として設定され、MinQTSizeは16×16として設定され、MaxBTSizeは64×64として設定され、MinBTSize(幅と高さの両方のための)は4として設定され、MaxBTDepthは4として設定される。4分木リーフノードを生成するために、4分木区分がまずCTUに適用される。4分木リーフノードは、16×16(すなわち、MinQTSizeは16×16)から128×128(すなわち、CTUサイズ)のサイズを有し得る。QTBT区分の一例によれば、リーフ4分木ノードが128×128である場合、リーフ4分木ノードをさらに2分木によって分割することはできず、それは、リーフ4分木ノードのサイズがMaxBTSize(すなわち、64×64)を超えるからである。それ以外の場合、リーフ4分木ノードはさらに2分木によって区分される。したがって、4分木リーフノードは2分木のルートノードでもあり、その2分木深度は0として定義される。MaxBTDepth(たとえば、4)に達する2分木深度は、さらなる分割がないことを示唆する。MinBTSize(たとえば、4)に等しい幅を有する2分木ノードは、さらなる水平の分割がないことを示唆する。同様に、MinBTSizeに等しい高さを有する2分木ノードは、さらなる垂直の分割がないことを示唆する。2分木のリーフノード(たとえば、CU)はさらに、さらなる区分なしで(たとえば、予測プロセスおよび変換プロセスを実行することによって)処理される。
【００５５】
図2に示すように、区分の各レベルは、4つのサブブロックへの4分木分割である。黒いブロックは、リーフノード(すなわち、さらに分割されないブロック)の一例である。CTUは、そのノードがコーディングユニットである4分木構造に従って分割される。4分木構造内の複数のノードは、リーフノードおよび非リーフノードを含む。リーフノードは、ツリー構造内に子ノードを有さない(すなわち、リーフノードはさらに分割されない)。非リーフノードは、ツリー構造のルートノードを含む。ルートノードは、ビデオデータの最初のビデオブロック(CTB)に対応する。複数のノードの各それぞれの非ルートノードごとに、それぞれの非ルートノードは、それぞれの非ルートノードのツリー構造内の親ノードに対応するビデオブロックのサブブロックであるビデオブロックに対応する。複数の非リーフノードの各それぞれの非リーフノードは、ツリー構造内に1つまたは複数の子ノードを有する。
【００５６】
図3に示すように、HEVCにおいて、インター予測モードでコーディングされるCUに対して8つの予測モード、すなわち、PART_2N×2N、PART_2N×N、PART_N×2N、PART_N×N、PART_2N×nU、PART_2N×nD、PART_nL×2N、およびPART_nR×2Nがある。図3に示すように、区分モードPART_2N×2NでコーディングされたCUはさらに分割されない。すなわち、CU全体が単一のPU(PU0)として扱われる。区分モードPART_2N×NでコーディングされたCUは、2つのPU(PU0およびPU1)に対称的に水平に分割される。区分モードPART_N×2NでコーディングされたCUは、2つのPUに対称的に垂直に分割される。区分モードPART_N×NでコーディングされたCUは、4つの等しいサイズのPU(PU0、PU1、PU2、PU3)に対称的に分割される。
【００５７】
区分モードPART_2N×nUでコーディングされたCUは、CUのサイズの1/4を有する1つのPU0(上側PU)およびCUのサイズの3/4を有する1つのPU1(下側PU)に非対称的に水平に分割される。区分モードPART_2N×nDでコーディングされたCUは、CUのサイズの3/4を有する1つのPU0(上側PU)およびCUのサイズの1/4を有する1つのPU1(下側PU)に非対称的に水平に分割される。区分モードPART_nL×2NでコーディングされたCUは、CUのサイズの1/4を有する1つのPU0(左PU)およびCUのサイズの3/4を有する1つのPU1(右PU)に非対称的に垂直に分割される。区分モードPART_nR×2NでコーディングされたCUは、CUのサイズの3/4を有する1つのPU0(左PU)およびCUのサイズの1/4を有する1つのPU1(右PU)に非対称的に垂直に分割される。
【００５８】
図4Aは、QTBT区分技法を使用して区分されたブロック50(たとえば、CTB)の一例を示す。図4Aに示すように、QTBT区分技法を使用して、得られるブロックの各々は、各ブロックの中心を通って対称的に分割される。図4Bは、図4Aのブロック区分に対応するツリー構造を示す。図4Bの実線は4分木分割を示し、点線は2分木分割を示す。一例では、2分木の各分割(すなわち、非リーフ)ノードにおいて、実行される分割のタイプ(たとえば、水平または垂直)を示すために、シンタックス要素(たとえば、フラグ)がシグナリングされ、ここで0は水平の分割を示し、1は垂直の分割を示す。4分木分割では、4分木分割は常に等しいサイズの4つのサブブロックにブロックを水平および垂直に分割するので、分割タイプを示す必要はない。
【００５９】
図4Bに示すように、ノード70において、ブロック50は、QT区分を使用して、図4Aに示す4つのブロック51、52、53、および54に分割される。ブロック54はさらに分割されず、したがって、リーフノードである。ノード72において、ブロック51は、BT区分を使用して2つのブロックにさらに分割される。図4Bに示すように、ノード72には、垂直分割を示す1がつけられている。したがって、ノード72での分割は、ブロック57と、ブロック55と56の両方を含むブロックとをもたらす。ブロック55および56は、ノード74におけるさらなる垂直分割によって生成される。ノード76において、ブロック52は、BT区分を使用して2つのブロック58および59にさらに分割される。図4Bに示すように、ノード76には、水平分割を示す1がつけられている。
【００６０】
ノード78において、ブロック53は、QT区分を使用して4つの等しいサイズのブロックに分割される。ブロック63および66は、このQT区分から生成され、さらに分割されない。ノード80において、左上のブロックがまず垂直の2分木分割を使用して分割されて、ブロック60および右側の垂直ブロックをもたらす。次いで、右側の垂直ブロックが水平の2分木分割を使用してブロック61および62に分割される。ノード78における4分木分割から生成される右下のブロックはノード84において、水平の2分木分割を使用してブロック64および65に分割される。
【００６１】
本開示の技法による一例では、ビデオエンコーダ22および/またはビデオデコーダ30は、P×Qのサイズを有するビデオデータの現在ブロックを受信するように構成され得る。いくつかの例では、ビデオデータの現在ブロックは、ビデオデータの現在ブロックのコーディングされた表現と呼ばれることがある。いくつかの例では、Pは、現在ブロックの幅に対応する第1の値であってよく、Qは、現在ブロックの高さに対応する第2の値であってよい。現在ブロックの高さおよび幅、たとえば、PおよびQに関する値は、サンプルの数で表現され得る。いくつかの例では、PはQに等しくなくてもよく、そのような例では、現在ブロックは短辺および長辺を含む。たとえば、Qの値がPの値よりも大きい場合、ブロックの左側が長辺であり、上側が短辺である。たとえば、Qの値がPの値よりも小さい場合、ブロックの左側が短辺であり、上側が長辺である。
【００６２】
ビデオエンコーダ22および/またはビデオデコーダ30は、イントラDCモード予測を使用してビデオデータの現在ブロックを復号するように構成され得る。いくつかの例では、イントラDCモード予測を使用したビデオデータの現在ブロックのコーディングは、第1の値足す第2の値が2の冪に等しくないことを判定することと、サンプリングされる近隣サンプルの数を生成するために、短辺に隣接するサンプルの数または長辺に隣接するサンプルの数のうちの少なくとも1つをサンプリングすることと、サンプリングされる近隣サンプルの数を使用してDC値を計算することによって、ビデオデータの現在ブロックに対する予測ブロックを生成することとを含み得る。
【００６３】
したがって、一例では、ビデオエンコーダ22は、ビデオデータの最初のビデオブロック(たとえば、コーディングツリーブロックすなわちCTU)の符号化表現を生成し得る。最初のビデオブロックの符号化表現を生成する一部として、ビデオエンコーダ22は、複数のノードを含むツリー構造を判定する。たとえば、ビデオエンコーダ22は、QTBT構造を使用して、ツリーブロックを区分することができる。
【００６４】
QTBT構造内の複数のノードは、複数のリーフノードおよび複数の非リーフノードを含み得る。リーフノードは、ツリー構造内に子ノードを有さない。非リーフノードはツリー構造のルートノードを含む。ルートノードは、最初のビデオブロックに対応する。複数のノードのそれぞれの非ルートノードごとに、それぞれの非ルートノードは、それぞれの非ルートノードのツリー構造内の親ノードに対応するビデオブロックのサブブロックであるビデオブロック(たとえば、コーディングブロック)に対応する。複数の非リーフノードの各それぞれの非リーフノードは、ツリー構造内に1つまたは複数の子ノードを有する。いくつかの例では、ピクチャ境界における非リーフノードは、強制分割により1つの子ノードのみを含む場合があり、子ノードのうちの1つは、ピクチャ境界外部のブロックに対応する。
【００６５】
F. Le Leannec、T. Poirier、F. Urban、「Asymmetric Coding Units in QTBT」、JVET-D0064、成都、2016年10月(以下で「JVET-D0064」)で、QTBTに関連して非対称コーディングユニットを使用することが提案された。新しい分割構成を可能にするために、4つの新しい2分木分割モード(たとえば、区分タイプ)がQTBTフレームワークに導入された。図5に示すような、QTBTにおいてすでに利用可能な分割モードに加えて、いわゆる非対称分割モードが提案された。図5に示すような、HOR_UP、HOR_DOWN、VER_LEFT、およびVER_RIGHT区分タイプは非対称分割モードの例である。
【００６６】
追加された非対称分割モードによれば、サイズSを有するコーディングユニットは、水平(たとえば、HOR_UPまたはHOR_DOWN)方向または垂直(たとえば、VER_LEFTまたはVER_RIGHT)方向のいずれかで、サイズS/4および3.S/4を有する2つのサブCUに分割される。JVET-D0064では、新たに追加されたCU幅または高さは、12または24のみであり得る。
【００６７】
非対称コーディングユニット(たとえば、図5に示すような非対称コーディングユニット)では、12および24など、2の冪に等しくないサイズを有する変換が導入される。したがって、そのような非対称的コーディングユニットは、変換プロセスにおいて補償され得ない、より多くの係数を導入する。そのような非対称コーディングユニットに関して、変換または逆変換を実行するために、追加の処理が必要な場合がある。
【００６８】
概して、イントラ予測を参照して、ビデオコーダ(たとえば、ビデオエンコーダ22および/またはビデオデコーダ30)は、イントラ予測を実行するように構成され得る。イントラ予測は、空間的に隣接する再構築された画像サンプルを使用して、画像ブロック予測を実行するとして説明される場合がある。図6Aは、16×16ブロックに対するイントラ予測の例を示す。図6Aの例では、16×16ブロック(正方形202の)は、選択された予測方向(矢印204によって示す)に沿って上の行および左の列内に位置する上、左、および左上の近隣の再構成されたサンプル(参照サンプル)から予測される。
【００６９】
HEVCでは、イントラ予測は、中でも、35個の異なるモードを含む。例示的な35個の異なるモードは、平面モード、DCモード、および33個の角度モードを含む。図6Bは、33個の異なる角度モードを示す。
【００７０】
平面モードの場合、予測サンプルは、図6Cに示すように生成される。N×Nブロックのために平面予測を実行するために、(x,y)に位置する各サンプルpxyに対して、双線形フィルタを用いて、4つの特定の隣接する再構築されたサンプル、すなわち参照サンプルを使用して予測値が計算される。4個の参照サンプルは、右上の再構成されたサンプルTR、左下の再構成されたサンプルBL、Lによって示す現在サンプルの同じ列(rx,-1)に位置する再構成されたサンプル、およびTによって示す現在サンプルの行(r-1,y)に位置する再構成されたサンプルを含む。平面モードは、等式(1)に従って下記のように定式化され得る:
pxy=((N-x-1)・L+(N-y-1)・T+(x+1)・TR+(y+1)・BL)>>(Log2(N)+1)
【００７１】
DCモードの場合、予測ブロックはDC値で満たされる。いくつかの例では、DC値は、等式(2)による、近隣の再構成されたサンプルの平均値を指す場合がある:
【数１】
2020503815.tif 000003
【００７２】
等式(2)を参照すると、図6Dに示すように、Mは、上の近隣の再構成されたサンプルの数であり、Nは、左の近隣の再構成されたサンプルの数であり、Akは、第k番目の上の近隣の再構成されたサンプルを表し、Lkは、第k番目の左の近隣の再構成されたサンプルを表す。いくつかの例では、近隣のサンプルのすべてが利用可能でない(たとえば、存在しない、またはまだコーディング/復号されていない)場合、1<<(bitDepth-1)のデフォルト値を各利用不可能なサンプルに割り当てることができる。そのような例では、可変bitDepthは、ルーマ成分またはクロマ成分のいずれかのビット深度を示す。近隣サンプルの部分数が利用可能でないとき、利用不可能なサンプルは、利用可能なサンプルによってパディングされ得る。これらの例に合わせて、Mは、上の近隣サンプルの数をより広く指すことがあり、ここで、上の近隣サンプルの数は、1つまたは複数の再構成されたサンプル、割り当てられたデフォルト値(たとえば、1<<(bitDepth-1)に従って割り当てられたデフォルト値)を有する1つまたは複数のサンプル、および/または1つまたは複数の利用可能なサンプルによってパディングされる1つまたは複数のサンプルを含む。同様に、Nは、左の近隣サンプルの数をより広く指すことがあり、左の近隣サンプルの数は、1つまたは複数の再構成されたサンプル、割り当てられたデフォルト値(たとえば、1<<(bitDepth-1)に従って割り当てられたデフォルト値)を有する1つまたは複数のサンプル、および/または1つまたは複数の利用可能なサンプルによってパディングされる1つまたは複数のサンプルを含む。この点で、近隣サンプルの参照は、利用可能な近隣サンプルおよび/または利用不可能な近隣サンプルを指すことがあるが、これは利用不可能な近隣サンプルに関する値の代用/置換によることが理解される。同様に、Akは、したがって、第k番目の上の近隣サンプルを示し、第k番目の上の近隣サンプルが利用可能でない場合、代用/置換値(たとえば、デフォルト値またはパディングされる値)を代わりに使用することができる。同様に、Lkは、したがって、第k番目の左の近隣サンプルを示し、第k番目の左の近隣サンプルが利用可能でない場合、代用/置換値(たとえば、デフォルト値またはパディングされる値)
を代わりに使用することができる。
【００７３】
イントラDCモード予測に従ってビデオデータをコーディングするためのいくつかの現在の提案に関して、以下の問題が観測されている。第1の問題は、Tとして示された近隣サンプルの総数がいずれの2kにも等しくないとき(ここで、kは整数である)、近隣の再構成されたサンプルの平均値の計算における分割動作をシフト動作によって置換することができないことを含む。分割動作は、製品設計において計算の複雑さが他の動作よりもはるかに高いため、これは問題になる。第2の問題は、分割動作は、何らかの補間が必要なときにも生じるが、近隣サンプルの数は2の冪に等しくない(たとえば、いずれの2kにも等しくなく、ここで、kは整数である)ことを含む。たとえば、参照サンプルは、一方の端からもう一方の端までの距離に従って線形に補間され得(ストロングイントラフィルタが適用されるときなど)、最後のサンプルが入力として使用され、他のサンプルは、それらの最後のサンプル間にあるとして補間される。この例では、長さ(たとえば、一方の端からもう一方の端までの距離)が2の冪でない場合、分割動作が必要とされる。
【００７４】
上述の問題に対処するために、以下の技法が提案される。ビデオエンコーダ22およびビデオデコーダ30は、以下の技法を実行するように構成され得る。いくつかの例では、ビデオエンコーダ22およびビデオデコーダ30は、以下の技法を逆の様式で実行するように構成され得る。たとえば、ビデオエンコーダ22は、以下の技法を実行するように構成され得、ビデオデコーダ30は、ビデオエンコーダ22に対して逆の様式でそれらの技法を実行するように構成され得る。以下の箇条書きにされる技法は、個別に適用され得る。加えて、以下の技法の各々は、任意の組合せで一緒に使用されてもよい。下記で説明する技法は、分割動作の代わりのシフト動作を使用することを可能にし、それにより、計算の複雑性を低減し、これにより、より高いコーディング効率を可能にする。
【００７５】
本開示の一例によれば、サイズP×Qを有するブロックに対してイントラDCモード予測が適用されるとき、(P+Q)が2の冪でない場合、ビデオエンコーダ22および/またはビデオデコーダ30は、下記で説明する1つまたは複数の技法を使用してDC値を導出することができる。サイズP×Qを有するブロックに対してイントラDCモード予測が適用されるとき、(P+Q)が2の冪ではなく、左の近隣サンプルと上の近隣サンプルの両方が利用可能である場合、下記で説明する1つまたは複数の技法を適用することができる。下記で説明する1つまたは複数の例示的な技法では、等式(2)は以下を指す:
【数２】
2020503815.tif 000004
式中、図6Dに示すように、Mは、上の近隣の再構成されたサンプルの数であり、Nは、左の近隣の再構成されたサンプルの数であり、Akは、第k番目の上の近隣の再構成されたサンプルを表し、Lkは、第k番目の左の近隣の再構成されたサンプルを表す。いくつかの例では、近隣のサンプルのすべてが利用可能でない(たとえば、存在しない、またはまだコーディング/復号されていない)場合、1<<(bitDepth-1)のデフォルト値を各利用不可能なサンプルに割り当てることができる。そのような例では、可変bitDepthは、ルーマ成分またはクロマ成分のいずれかのビット深度を示す。
【００７６】
近隣サンプルの部分数が利用可能でないとき、利用不可能なサンプルは、利用可能なサンプルによってパディングされ得る。これらの例に合わせて、Mは、上の近隣サンプルの数をより広く指すことがあり、ここで、上の近隣サンプルの数は、1つまたは複数の再構成されたサンプル、割り当てられたデフォルト値(たとえば、1<<(bitDepth-1)に従って割り当てられたデフォルト値)を有する1つまたは複数のサンプル、および/または1つまたは複数の利用可能なサンプルによってパディングされる1つまたは複数のサンプルを含む。同様に、Nは、左の近隣サンプルの数をより広く指すことがあり、左の近隣サンプルの数は、1つまたは複数の再構成されたサンプル、割り当てられたデフォルト値(たとえば、1<<(bitDepth-1)に従って割り当てられたデフォルト値)を有する1つまたは複数のサンプル、および/または1つまたは複数の利用可能なサンプルによってパディングされる1つまたは複数のサンプルを含む。この点で、近隣サンプルの参照は、利用可能な近隣サンプルおよび/または利用不可能な近隣サンプルを指すことがあるが、これは利用不可能な近隣サンプルに関する値の代用/置換によることが理解される。同様に、Akは、したがって、第k番目の上の近隣サンプルを示し、第k番目の上の近隣サンプルが利用可能でない場合、代用/置換値(たとえば、デフォルト値またはパディングされる値)を代わりに使用することができる。同様に、Lkは、したがって、第k番目の左の近隣サンプルを示し、第k番目の左の近隣サンプルが利用可能でない場合、代用/置換値(たとえば、デフォルト値またはパディングされる値)を代わりに使用することができる。
【００７７】
本開示の第1の例示的な技法では、DC値を計算するために等式(2)を使用するとき、ビデオエンコーダ22および/またはビデオデコーダ30は、ダウンサンプリングされる(サブサンプリングされると呼ばれることもある)境界上の近隣サンプルの数がより短い境界上の近隣サンプルの数に等しい(すなわち、min(M,N))ように、非正方形ブロック(たとえば、P×Qブロック、ここで、PはQに等しくない)のより長い辺の境界(長い境界またはより長い境界と呼ばれることもある)上の近隣サンプルをダウンサンプリングし得る。いくつかの例では、min(M,N)はmin(P,Q)に等しくてよい。第1の例示的な技法は、DC値を計算するために、近隣サンプルの自然数(native number)の代わりに近隣サンプルのサブサンプリングされた数を使用することを含む。この例ならびに他の例に関して本明細書で使用する、近隣サンプルの自然数は、それに対して何らかのサンプリング(たとえば、ダウンサンプリングまたはアップサンプリング)が実行される前の近隣サンプルの数を指す。利用不可能な近隣サンプルに値を割り当てることは、サンプリングプロセスにならないことが理解される。いくつかの例では、サブサンプリングプロセスは、デシメーションサンプリングプロセスまたは補間サンプリングプロセスであり得る。いくつかの例では、より短い境界上の近隣サンプルの数に等しくなるように、より長い辺上の近隣サンプルをサブサンプリングする技法は、min(M,N)が2の冪であるときのみ起動される。他の例では、より短い境界上の近隣サンプルの数に等しくなるように、より長い辺上の近隣サンプルをサブサンプリングする技法は、min(P,Q)が2の冪であるときのみ起動される。
【００７８】
図7は、本明細書で説明する、分割のないDC値計算技法を使用してより長い辺の境界上の近隣サンプルをサブサンプリングする例示的な技法を示す。図7の例では、黒いサンプルはDC値を計算することに関連し、示すように、より長い辺上の近隣サンプルは、8個の近隣サンプルから4個の近隣サンプルにサブサンプリングされる。さらに説明すると、図7は、P×Qブロック内で、Pが8に等しく、Qが4に等しい、第1の例示的な技法の一例を示す。図7の例では、P×Qブロックのより長い辺上の近隣サンプルは、DC値を計算する前にデシメーションサンプリングプロセスに従ってサブサンプリングされているとして示されており、これは、DC値を計算する際に、近隣サンプルの自然数の代わりに、近隣サンプルのサブサンプリングされる数が使用されることを意味する。図7のP×Qブロックの例では、Mは8に等しく、Nは4に等しく、Mは、上の近隣サンプルの数がより短い辺上のサンプルの数、この例では4、に等しいように、サブサンプリングされているとして示される。さらに説明すると、近隣サンプルのサブサンプルリングされる数は、8個の近隣サンプル(4個のサブサンプリングされる左の近隣サンプルおよび4個のサブサンプリングされる上の近隣サンプル)を含み、近隣サンプルの自然数は、12個の近隣サンプル(8個の自然な上の近隣サンプルおよび4個の自然な左の近隣サンプル)を含む。
【００７９】
図7に示す例とは異なる例によれば、ビデオエンコーダ22および/またはビデオデコーダ30は、P×Qブロックのより長い辺とより短い辺の両方に位置する近隣サンプルをアップサンプリングすることができる。いくつかの例では、より長い辺上のサブサンプリング比は、より短い辺上のサブサンプリング比とは異なってよい。いくつかの例では、ダウンサンプリング後のより短い辺およびより長い辺における近隣サンプルの総数は、2の冪に等しくなることが必要とされる場合があり、2の冪は2kとして説明される場合があり、ここで、kは整数である。いくつかの例では、kの値は、P×Qのブロックサイズに依存し得る。たとえば、kの値は、Pおよび/またはQの値に依存し得る。たとえば、kの値は、(P-Q)の絶対値に等しくてよい。いくつかの例では、より短い境界および/またはより長い境界上の近隣サンプルをサブサンプリングする技法は、min(M,N)が2の冪であるときのみ起動され得る。他の例では、より短い境界および/またはより長い境界上の近隣サンプルをサブサンプリングする技法は、min(P,Q)が2の冪であるときのみ起動され得る。
【００８０】
本開示の第2の例示的な技法では、DC値を計算するために等式(2)を使用するとき、ビデオエンコーダ22および/またはビデオデコーダ30は、アップサンプリングされる境界上の近隣サンプルの数がより長い境界上の近隣サンプルの数に等しい(すなわち、max(M,N))ように、非正方形ブロック(たとえば、P×Qブロック、ここで、PはQに等しくない)のより短い辺の境界(短い境界またはより短い境界と呼ばれることもある)上の近隣サンプルをアップサンプリングすることができる。いくつかの例では、max(M,N)は、max(P,Q)に等しくてよい。第2の例示的な技法は、DC値を計算するために、近隣サンプルの自然数の代わりに近隣サンプルのアップサンプリングされた数を使用することを含む。いくつかの例では、アップサンプリングプロセスは、デュプリケータサンプリング(duplicator sampling)プロセスまたは補間サンプリングプロセスであり得る。いくつかの例では、より長い境界上の近隣サンプルの数に等しくなるように、より短い辺上の近隣サンプルをアップサンプリングする技法は、max(M,N)が2の冪であるときのみ起動され得る。他の例では、より長い境界上の近隣サンプルの数に等しくなるように、より短い辺上の近隣サンプルをアップサンプリングする技法は、max(P,Q)が2の冪であるときのみ起動される。
【００８１】
他の例では、ビデオエンコーダ22および/またはビデオデコーダ30は、P×Qブロックのより長い辺とより短い辺の両方に位置する近隣サンプルをアップサンプリングすることができる。いくつかの例では、より長い辺上のアップサンプリング比は、より短い辺上のサブサンプリング比とは異なってよい。いくつかの例では、アップサンプリング後のより短い辺およびより長い辺における近隣サンプルの総数は、2の冪に等しくなることが必要とされる場合があり、2の冪は2kとして説明される場合があり、ここで、kは整数である。いくつかの例では、kの値は、P×Qのブロックサイズに依存し得る。たとえば、kの値は、Pおよび/またはQの値に依存し得る。たとえば、kの値は、(P-Q)の絶対値に等しくてよい。いくつかの例では、より短い境界および/またはより長い境界上の近隣サンプルをアップサンプリングする技法は、max(M,N)が2の冪であるときのみ起動され得る。他の例では、より短い境界および/またはより長い境界上の近隣サンプルをアップサンプリングする技法は、max(P,Q)が2の冪であるときのみ起動され得る。
【００８２】
本開示の第3の例示的な技法では、DC値を計算するために等式(2)を使用するとき、ビデオエンコーダ22および/またはビデオデコーダ30は、アップサンプリングされるより短い境界上の近隣サンプルの数がサブサンプリングされるより長い境界上の近隣サンプルの数に等しいように、非正方形ブロック(たとえば、P×Qブロック、ここで、PはQに等しくない)のより短い辺の境界(短い境界またはより短い境界と呼ばれることもある)上の近隣サンプルをアップサンプリングし、より長い辺の境界(長い境界またはより長い境界と呼ばれることがある)上の近隣サンプルをダウンサンプリングすることができる。いくつかの例では、アップサンプリングプロセスは、デュプリケータサンプリングプロセスまたは補間サンプリングプロセスであり得る。いくつかの例では、サブサンプリングプロセスは、デシメーションサンプリングプロセスまたは補間サンプリングプロセスであり得る。いくつかの例では、サブサンプリングおよびアップサンプリング後の近隣サンプルの総数は、2の冪を必要とされる場合があり、2の冪は2kとして説明される場合があり、ここで、kは整数である。いくつかの例では、kの値は、P×Qのブロックサイズに依存し得る。たとえば、kの値は、Pおよび/またはQの値に依存し得る。たとえば、kの値は、(P-Q)の絶対値に等しくてよい。
【００８３】
本開示の第4の例示的な技法では、ビデオエンコーダ22および/またはビデオデコーダ30は、近隣サンプルをサブサンプリングおよび/またはアップサンプリングする異なるやり方を適用し得る。一例では、サブサンプリングおよび/またはアップサンプリングプロセスは、ブロックサイズ(たとえば、P×Qのサイズを有するブロックのPおよび/またはQの値)に依存し得る。いくつかの例では、ブロックサイズは予測ユニットサイズに対応し得るが、これはブロックが予測ユニットであるためである。別の例では、サブサンプリングおよび/またはアップサンプリングプロセスは、ビデオエンコーダ22によって、シーケンスパラメータセット、ピクチャパラメータセット、ビデオパラメータセット、適応パラメータセット、ピクチャヘッダ、またはスライスヘッダのうちの少なくとも1つの中でシグナリングされ得る。
【００８４】
本開示の第5の例示的な技法では、ビデオエンコーダ22および/またはビデオデコーダ30は、両方のダウンサンプリングされる境界上の近隣サンプルの数が、2の冪である最大値に等しくなるように、両辺(たとえば、より短い辺およびより長い辺)をダウンサンプリングすることができ、ここで、最大値は、2つの辺の公倍数である。辺上に何の変更もないことは、ダウンサンプリング係数が1である、特殊ダウンサンプリングと見なされ得る。別の例では、両方のダウンサンプリングされる境界上の近隣サンプルの数が2つの辺同士の間の最大公倍数に等しくなるように、両辺(たとえば、より短い辺およびより長い辺)をダウンサンプリングすることができる。いくつかの例では、2つの辺同士の間の最大公倍数は、2の冪であることが必要とされる場合がある。たとえば、ブロックが8×4のサイズを有する一例では、2つの辺同士の間の最大公倍数は4であり、4もまた2の冪である。この例では、4のより短い辺に対するダウンサンプリング係数は1に等しくてよく、8のより長い辺に対するダウンサンプリング係数は2に等しくてよい。
【００８５】
本開示の第6の例示的な技法では、ビデオエンコーダ22および/またはビデオデコーダ30は、両方のアップサンプリングされる境界上の近隣サンプルの数が2の冪である最小値に等しくなるように、両辺(たとえば、より短い辺およびより長い辺)をアップサンプリングすることができ、ここで、最小値は、2つの辺の公倍数である。辺上に何の変更もないことは、アップサンプリング係数が1である、特殊アップサンプリングと見なされ得る。別の例では、両方のアップサンプリングされる境界上の近隣サンプルの数が2つの辺同士の間の最小公倍数に等しくなるように、両辺(たとえば、より短い辺およびより長い辺)をアップサンプリングすることができる。いくつかの例では、2つの辺同士の間の最小公倍数は、2の冪であることが必要とされる場合がある。たとえば、ブロックが8×4のサイズを有する一例では、2つの辺同士の間の最小公倍数は8であり、8もまた2の冪である。この例では、8のより長い辺に対するアップサンプリング係数は1に等しくてよく、4のより短い辺に対するアップサンプリング係数は2に等しくてよい。
【００８６】
本開示の第7の例示的な技法では、DC値を計算するために等式(2)を使用する代わりに、ビデオエンコーダ22および/またはビデオデコーダ30は、等式(3)または等式(4)に従って、次のように、近隣サンプルのより長い辺の平均値としてDC値を計算することができる:
【数３】
2020503815.tif 000005
または
【数４】
2020503815.tif 000006
【００８７】
本開示の第8の例示的な技法では、DC値を計算するために等式(2)を使用する代わりに、ビデオエンコーダ22および/またはビデオデコーダ30は、等式(5)または等式(6)に従って、次のように、2つの辺の近隣サンプルの2つの平均値の平均値としてDC値を計算することができる:
【数５】
2020503815.tif 000007
または
【数６】
2020503815.tif 000008
【００８８】
等式(3)、等式(4)、等式(5)、および等式(6)では、変数M、N、Ak、およびLkは、上記の等式(2)に関するのと同じ様式で定義され得る。変数off1は、0または(1<<(m-1))など、整数であり得る。変数off2は、0または(1<<(n-1))など、整数であり得る。
【００８９】
本開示の第9の例示的な技法では、DC値を計算するために等式(2)を使用する代わりに、ビデオエンコーダ22および/またはビデオデコーダ30は、等式(7)または等式(8)に従って、次のように、DC値を計算することができる:
【数７】
2020503815.tif 000009
または
【数８】
2020503815.tif 000010
【００９０】
等式(7)および等式(8)では、変数M、N、Ak、およびLkは、上記の等式(2)に関するのと同じ様式で定義され得る。変数off1は、0または(1<<m)など、整数であり得る。変数off2は、0または(1<<n)など、整数であり得る。
【００９１】
本開示の第10の例示的な技法では、DC値を計算するために等式(2)を使用するとき、ビデオエンコーダ22および/またはビデオデコーダ30は、現在ブロック(たとえば、P×Qを有する非正方形ブロック)のより短い辺の境界上の近隣サンプルを拡張することができる。図8は、第10の例示的な技法による一例を示す。たとえば、図8は、本明細書で説明する、分割のないDC値計算技法を使用して、より短い辺の境界上の近隣サンプルを拡張する一例を示す。図8の例では、黒いサンプルはDC値を計算することに関連し、示すように、より短い辺の近隣境界は、例示的な様式で拡張される。いくつかの例では、1つの辺が拡張された後、2つの辺における近隣サンプルの総数は2の冪に等しくなることが必要とされる場合があり、2の冪は2kとして説明される場合があり、ここで、kは整数である。いくつかの例では、kの値は、P×Qのブロックサイズに依存し得る。たとえば、kの値は、Pおよび/またはQの値に依存し得る。たとえば、kの値は、(P-Q)の絶対値に等しくてよい。
【００９２】
本開示の第11の例示的な技法では、拡張近隣サンプルに関連する例示的な技法において1つまたは複数の拡張近隣サンプルが利用可能でない場合、ビデオエンコーダ22および/またはビデオデコーダ30は、1つまたは複数の利用不可能な拡張近隣サンプルをパディングすることができる。いくつかの例では、1つまたは複数の利用不可能な拡張近隣サンプルは、(i)利用可能な近隣サンプルによって、(ii)利用可能な近隣サンプルから1つまたは複数の利用不可能な拡張近隣サンプルをミラーリングすることによって、パディングされ得る。
【００９３】
本開示の第12の例示的な技法では、ビデオエンコーダ22および/またはビデオデコーダ30は、分割動作を回避するために、DC値を計算するために等式(2)を使用するとき、コーデックによってサポートされるブロックサイズまたは変換サイズに基づくエントリを有するルックアップテーブルを適用し得る。
【００９４】
本開示の第13の例示的な技法では、現在ブロック(たとえば、P×Qのサイズを有する非正方形ブロック)の左側が短辺であり、左の近隣サンプルのうちの1つまたは複数が利用不可能である場合、ビデオエンコーダ22および/またはビデオデコーダ30は、1つまたは複数の利用不可能な左の近隣サンプルを置換/代用するために、現在ブロックの左に対して2つの列に位置する1つまたは複数のサンプルを使用することができる。いくつかの例では、利用不可能である1つまたは複数の左の近隣サンプルは、左下の近隣サンプルである。同様に、現在ブロックの上側が短辺であり、上部サンプルのうちの1つまたは複数が利用不可能である場合、ビデオエンコーダ22および/またはビデオデコーダ30は、1つまたは複数の利用不可能な上の近隣サンプルを置換/代用するために、現在ブロックの上の2つの行に位置する1つまたは複数のサンプルを使用することができる。いくつかの例では、利用不可能である1つまたは複数の上の近隣サンプルは、右上の近隣サンプルである。いくつかの例では、1つまたは複数の利用不可能な近隣サンプルの置換/代用の後、左側および上側の近隣サンプルの総数は2の冪に等しくなることが必要とされる場合があり、2の冪は2kとして説明される場合があり、ここでkは整数である。いくつかの例では、kの値は、P×Qのブロックサイズに依存し得る。たとえば、kの値は、Pおよび/またはQの値に依存し得る。たとえば、kの値は、(P-Q)の絶対値に等しくてよい。
【００９５】
本開示の第14の例示的な技法によれば、ビデオエンコーダ22および/またはビデオデコーダ30は、単純平均の代わりに加重平均を使用することができ、加重の和は2の冪に等しくてよく、2の冪は2kとして説明される場合があり、kは整数である。いくつかの例では、加重は、近隣サンプルの品質を示す基準に基づき得る。たとえば、1つまたは複数の加重は、以下の基準のうちの1つまたは複数に基づき得る:すなわち、QP値、変換サイズ、予測モード、または近隣ブロックの残差係数に費やされるビットの総数、である。いくつかの例では、より良い品質基準を有するサンプルにより大きな値を置くことができる。第14の例示的な技法によれば、DC値を計算するために等式(2)を使用する代わりに、等式(9)に従って、次のように、DC値を計算することができる。
【数９】
2020503815.tif 000011
いくつかの例では、加重係数の事前定義されたセットを記憶することができ、ビデオエンコーダ22は、SPS、PPS、VPS、またはスライスヘッダを介して、セットインデックスをシグナリングするように構成され得る。
【００９６】
本開示の第15の例示的な技法では、現在ブロックの幅または高さが2の冪に等しくない場合、分割動作をどのように回避するかに関して、いくつかの例を開示する。これらの例は、ストロングイントラフィルタに限定されず、代わりに、本明細書で説明する例は、同様の問題が発生する何らかの他の事例に適用され得る。距離(幅または高さ)による分割が必要とされ、距離が2の冪でない場合、次の3つの異なる態様を別個にまたは任意の組合せで適用することができる。
【００９７】
本開示の第15の例示的な技法の第1の態様では、ビデオエンコーダ22および/またはビデオデコーダ30は、分割のために使用されるべき初期距離を2の冪である最も近い距離に丸めることができる。いくつかの例では、初期距離は実際の距離と呼ばれることがあるが、これは初期距離が何らの丸めが生じる前の距離を指すことがあるためである。丸められた距離は、初期距離よりも短くても長くてもよい。近隣サンプルが新しく丸められた距離まで計算されるとき、新しく丸められた距離は2の冪であるため、分割動作はシフト動作によって置換される。いくつかの例では、新しく丸められた距離が初期距離よりも短い場合、新しく丸められた距離を超える場所内に位置する隣接サンプルに、図9に示す上の例にあるように、デフォルト値が割り当てられてよい。図9の上の例では、初期距離は6に等しく、新しく丸められた距離は4である。この例では、新しく丸められた距離を超える場所内に位置する近隣サンプルは、デフォルト値が割り当てられているとして示される。いくつかの例では、割り当てられるデフォルト値は、最後に計算されたサンプル(たとえば、最後に計算されたサンプルは繰り返され得る)の値を含んでよいか、または計算されたサンプルの平均値が割り当てられてよい。他の例では、新しく丸められた距離が初期距離よりも長い場合、計算された近隣サンプルの数は、必要とされるよりも長い場合があり、図9に示した下の例にあるように。いくつかの近隣サンプルは無視されてよい。図9の下の例では、初期距離は6に等しく、新しく丸められた距離は8である。この例では、6の初期距離を超える近隣サンプルは、無視されているとして示される。
【００９８】
本開示の第15の例示的な技法の第2の態様では、ビデオエンコーダ22および/またはビデオデコーダ30は、その方向に対して分割動作が必要とされる場合、現在ブロックの方向(たとえば、水平または垂直)にコーディング技法(たとえば、ストロングイントラ予測フィルタまたは他のツール)を適用することができない。別用に説明すると、分割がシフト動作として表され得る場合のみ、コーディング技法(たとえば、ストロングイントラ予測フィルタまたは他のツール)が現在ブロックに適用され得る。
【００９９】
本開示の第15の例示的な技法の第3の態様では、ビデオエンコーダ22および/またはビデオデコーダ30は、再帰的計算を使用することができる。この態様では、初期距離は、2の冪である、最も近い最小距離に丸められてよい。たとえば、初期距離が6である場合、6の値は、8の代わりに4に丸められることになるが、これは、4の値は、2の冪である、最も近い最小距離であるためである。近隣サンプルは、新しく丸められた距離まで計算され得る。プロセスが繰り返すとき、最後に計算された近隣サンプルを第1の近隣サンプルとして使用することができ、初期距離は、丸められた最短距離まで削減され得る。削減された距離が1に等しいとき、プロセスを終了することができる。本開示の技法は、上記で論じた異なる例で説明した特徴または技法の任意の組合せをやはり企図する。
【０１００】
図10は、本開示の技法を実装することができる例示的なビデオエンコーダ22を示すブロック図である。図10は説明のために提供され、広く例示されるとともに本開示において説明されるような技法の限定と見なされるべきでない。本開示の技法は、様々なコーディング規格または方法に適用可能であり得る。
【０１０１】
図10の例では、ビデオエンコーダ22は、予測処理ユニット100、ビデオデータメモリ101、残差生成ユニット102、変換処理ユニット104、量子化ユニット106、逆量子化ユニット108、逆変換処理ユニット110、再構成ユニット112、フィルタユニット114、復号ピクチャバッファ116、およびエントロピー符号化ユニット118を含む。予測処理ユニット100は、インター予測処理ユニット120およびイントラ予測処理ユニット126を含む。インター予測処理ユニット120は、動き推定ユニットおよび動き補償ユニット(図示せず)を含み得る。
【０１０２】
ビデオデータメモリ101は、ビデオエンコーダ22の構成要素によって符号化されるべきビデオデータを記憶するように構成され得る。ビデオデータメモリ101内に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。復号ピクチャバッファ116は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ22によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する、参照ピクチャメモリであり得る。ビデオデータメモリ101および復号ピクチャバッファ116は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ101および復号ピクチャバッファ116は、同一のメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例において、ビデオデータメモリ101は、ビデオエンコーダ22の他の構成要素とともにオンチップであってもよく、または、これらの構成要素に対してオフチップであってもよい。ビデオデータメモリ101は、図1の記憶媒体20と同じであることがあり、またはその一部であることがある。
【０１０３】
ビデオエンコーダ22は、ビデオデータを受け取る。ビデオエンコーダ22は、ビデオデータのピクチャのスライス内の各CTUを符号化し得る。CTUの各々は、ピクチャの、等しいサイズのルーマCTBおよび対応するCTBと関連付けられ得る。CTUを符号化することの一部として、予測処理ユニット100は、区分を実行して、CTUのCTBを次第に小さくなるブロックに分割することができる。より小さいブロックは、CUのコーディングブロックであり得る。たとえば、予測処理ユニット100は、CTUに関連するCTBをツリー構造に従って区分し得る。本開示の1つまたは複数の技法によれば、ツリー構造の各深度レベルにおけるツリー構造のそれぞれの非リーフノードごとに、それぞれの非リーフノードに対して複数の許容分割パターンがあり、それぞれの非リーフノードに対応するビデオブロックは、複数の許容可能な分割パターンのうちの1つに従って、それぞれの非リーフノードの子ノードに対応するビデオブロックに区分される。一例では、予測処理ユニット100またはビデオエンコーダ22の別の処理ユニットは、本明細書で説明した技法の任意の組合せを実行するように構成され得る。
【０１０４】
ビデオエンコーダ22は、CTUのCUを符号化して、CUの符号化表現(すなわち、コーディングされたCU)を生成し得る。CUを符号化することの一部として、予測処理ユニット100は、CUの1つまたは複数のPUの間でCUに関連付けられたコーディングブロックを区分し得る。本開示の技法によれば、CUは単一のPUのみを含み得る。すなわち、本開示のいくつかの例では、CUは、別個の予測ブロックに分割されず、むしろ、CU全体に対して予測プロセスが実行される。したがって、各CUは、ルーマ予測ブロックおよび対応するクロマ予測ブロックと関連付けられ得る。ビデオエンコーダ22およびビデオデコーダ30は、様々なサイズを有するCUをサポートし得る。上記のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指してよく、ルーマ予測ブロックのサイズを指してもよい。上記で論じたように、ビデオエンコーダ22およびビデオデコーダ30は、本明細書で説明した例示的な区分技法の任意の組合せによって定義されるCUサイズをサポートし得る。
【０１０５】
インター予測処理ユニット120は、CUの各PUに対してインター予測を実行することによって、PUに関する予測データを生成し得る。本明細書で説明したように、本開示のいくつかの例では、CUは、単一のPUのみを含んでよく、すなわち、CUおよびPUは同期し得る。PUに対する予測データは、PUの予測ブロックおよびPUに関する動き情報を含み得る。インター予測処理ユニット120は、PUがIスライス内にあるのか、Pスライス内にあるのか、それともBスライス内にあるのかに応じて、PUまたはCUに対して異なる動作を実行し得る。Iスライス内では、すべてのPUがイントラ予測される。したがって、PUがIスライス内にある場合、インター予測処理ユニット120は、インター予測をPUに対して実行しない。したがって、Iモードで符号化されるブロックの場合、予測されるブロックは、同じフレーム内の以前に符号化された近隣ブロックから空間予測を使用して形成される。PUがPスライス内にある場合、インター予測処理ユニット120は、単方向インター予測を使用してPUの予測ブロックを生成し得る。PUがBスライス内にある場合、インター予測処理ユニット120は、単方向または双方向インター予測を使用してPUの予測ブロックを生成し得る。
【０１０６】
イントラ予測処理ユニット126は、PUに対してイントラ予測を実行することによって、PUの予測データを生成し得る。PUに関する予測データは、PUの予測ブロックおよび様々なシンタックス要素を含み得る。イントラ予測処理ユニット126は、Iスライス、Pスライス、およびBスライス内のPUに対して、イントラ予測を実行し得る。
【０１０７】
イントラ予測をPUに対して実行するために、イントラ予測処理ユニット126は、複数のイントラ予測モードを使用して、PUの予測データの複数のセットを生成し得る。イントラ予測処理ユニット126は、近隣PUのサンプルブロックからのサンプルを使用して、PUに対する予測ブロックを生成し得る。PU、CU、およびCTUに対して左から右、上から下への符号化順序を仮定すると、近隣PUは、PUの上、右上、左上、または左であり得る。イントラ予測処理ユニット126は、様々な数のイントラ予測モード、たとえば、33個の方向性イントラ予測モードを使用することができる。いくつかの例では、イントラ予測モードの数は、PUに関連する領域のサイズに依存し得る。
【０１０８】
予測処理ユニット100は、PUに対してインター予測処理ユニット120によって生成された予測データ、またはPUに対してイントラ予測処理ユニット126によって生成された予測データの中から、CUのPUに関する予測データを選択し得る。いくつかの例では、予測処理ユニット100は、予測データのセットのレート/ひずみの尺度に基づいて、CUのPUに関する予測データを選択する。選択される予測データの予測ブロックは、本明細書で選択予測ブロックと呼ばれることがある。
【０１０９】
残差生成ユニット102は、CUに対するコーディングブロック(たとえば、ルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロック)およびCUのPUに対する選択予測ブロック(たとえば、予測ルーマブロック、予測Cbブロック、および予測Crブロック)に基づいて、CUに対する残差ブロック(たとえば、ルーマ残差ブロック、Cb残差ブロック、およびCr残差ブロック)を生成し得る。たとえば、残差生成ユニット102は、残差ブロック内の各サンプルがCUのコーディングブロック内のサンプルとCUのPUの対応する選択予測ブロック内の対応するサンプルとの間の差分に等しい値を有するように、CUの残差ブロックを生成し得る。
【０１１０】
変換処理ユニット104は、4分木区分を実行して、CUに関連する残差ブロックをCUのTUに関連する変換ブロックに区分し得る。したがって、TUは、ルーマ変換ブロックおよび2つのクロマ変換ブロックに関連付けられ得る。CUのTUのルーマ変換ブロックおよびクロマ変換ブロックのサイズおよび位置は、CUのPUの予測ブロックのサイズおよび位置に基づいても基づかなくてもよい。「残差4分木」(RQT)として知られる4分木構造が、領域の各々に関連するノードを含み得る。CUのTUは、RQTのリーフノードに相当し得る。別の例では、変換処理ユニット104は、本明細書で説明した区分技法に従って、TUを区分するように構成され得る。たとえば、ビデオエンコーダ22は、RQT構造を使用して、CUをTUにさらに分割することができない。したがって、一例では、CUは単一のTUを含む。
【０１１１】
変換処理ユニット104は、TUの変換ブロックに1つまたは複数の変換を適用することによって、CUのTUごとに変換係数ブロックを生成し得る。変換処理ユニット104は、TUに関連する変換ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット104は、離散コサイン変換(DCT)、方向変換、または概念的に類似の変換を、変換ブロックに適用し得る。いくつかの例では、変換処理ユニット104は、変換ブロックに変換を適用しない。そのような例では、変換ブロックは、変換係数ブロックとして扱われ得る。
【０１１２】
量子化ユニット106は、係数ブロック内の変換係数を量子化し得る。量子化プロセスは、変換係数の一部または全部に関連するビット深度を低減し得る。たとえば、nビットの変換係数は、量子化中にmビットの変換係数に切り捨てられてよく、nはmよりも大きい。量子化ユニット106は、CUに関連する量子化パラメータ(QP)値に基づいて、CUのTUに関連する係数ブロックを量子化し得る。ビデオエンコーダ22は、CUに関連するQP値を調整することによって、CUに関連する係数ブロックに適用される量子化の程度を調整し得る。量子化は、情報の喪失をもたらし得る。したがって、量子化された変換係数は、元の精度よりも精度が低いことがある。
【０１１３】
逆量子化ユニット108および逆変換処理ユニット110は、係数ブロックから残差ブロックを再構成するために、係数ブロックにそれぞれ逆量子化および逆変換を適用することができる。再構成ユニット112は、予測処理ユニット100によって生成された1つまたは複数の予測ブロックからの対応するサンプルに、再構成された残差ブロックを加算して、TUに関連する再構成された変換ブロックを生成し得る。このようにしてCUのTUごとに変換ブロックを再構築することによって、ビデオエンコーダ22は、CUのコーディングブロックを再構築し得る。
【０１１４】
フィルタユニット114は、1つまたは複数のデブロッキング動作を実行して、CUに関連するコーディングブロックにおけるブロッキングアーティファクトを低減し得る。フィルタユニット114が、再構成されたコーディングブロックに対して1つまたは複数のデブロッキング動作を実行した後、復号ピクチャバッファ116は、再構成されたコーディングブロックを記憶し得る。インター予測処理ユニット120は、再構成されたコーディングブロックを含む参照ピクチャを使用して、他のピクチャのPUに対してインター予測を実行し得る。加えて、イントラ予測処理ユニット126は、復号ピクチャバッファ116内の再構成されたコーディングブロックを使用して、CUと同じピクチャ内の他のPUに対してイントラ予測を実行し得る。
【０１１５】
エントロピー符号化ユニット118は、ビデオエンコーダ22の他の機能構成要素からデータを受信し得る。たとえば、エントロピー符号化ユニット118は、量子化ユニット106から係数ブロックを受信してよく、予測処理ユニット100からシンタックス要素を受信してよい。エントロピー符号化ユニット118は、データに対して1つまたは複数のエントロピー符号化動作を実行して、エントロピー符号化データを生成し得る。たとえば、エントロピー符号化ユニット118は、CABAC動作、コンテキスト適応型可変長コーディング(CAVLC)動作、可変長対可変(V2V)長コーディング動作、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)動作、確率区間区分エントロピー(PIPE)コーディング動作、指数ゴロム符号化動作、または別のタイプのエントロピー符号化動作を、データに対して実行し得る。ビデオエンコーダ22は、エントロピー符号化ユニット118によって生成されたエントロピー符号化されたデータを含むビットストリームを出力し得る。たとえば、ビットストリームは、本開示の技法によるCUに対する区分構造を表すデータを含み得る。
【０１１６】
図11は、本開示の技法を実施するように構成された例示的なビデオデコーダ30を示すブロック図である。図11は説明のために提供され、本開示において広く例示され説明されるような技法の限定でない。説明のために、本開示は、HEVCコーディングのコンテキストにおいてビデオデコーダ30について説明する。しかしながら、本開示の技法は、他のコーディング標準規格または方法に適用可能とすることができる。
【０１１７】
図11の例において、ビデオデコーダ30は、エントロピー復号ユニット150、ビデオデータメモリ151、予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット156、再構成ユニット158、フィルタユニット160、および復号ピクチャバッファ162を含む。予測処理ユニット152は、動き補償ユニット164およびイントラ予測処理ユニット166を含む。他の例では、ビデオデコーダ30は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【０１１８】
ビデオデータメモリ151は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどの符号化ビデオデータを記憶し得る。ビデオデータメモリ151内に記憶されるビデオデータは、たとえば、カメラなどのローカルビデオソースから、ビデオデータの有線ネットワーク通信もしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって、たとえば、コンピュータ可読媒体16から取得され得る。ビデオデータメモリ151は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコーディングされたピクチャバッファ(CPB:coded picture buffer)を形成し得る。復号ピクチャバッファ162は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを復号する際に使用するための、または出力のための、参照ビデオデータを記憶する参照ピクチャメモリであってよい。ビデオデータメモリ151および復号ピクチャバッファ162は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM)、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ151および復号ピクチャバッファ162は、同じメモリデバイスまたは別個のメモリデバイスによって設けられてよい。様々な例では、ビデオデータメモリ151は、ビデオデコーダ30の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってよい。ビデオデータメモリ151は、図1の記憶媒体28と同じであってよく、またはその一部であってもよい。
【０１１９】
ビデオデータメモリ151は、ビットストリームの符号化ビデオデータ(たとえば、NALユニット)を受信して記憶する。エントロピー復号ユニット150は、符号化ビデオデータ(たとえば、NALユニット)をビデオデータメモリ151から受信し得、NALユニットをパースしてシンタックス要素を取得し得る。エントロピー復号ユニット150は、NALユニット内のエントロピー符号化されたシンタックス要素をエントロピー復号し得る。予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット156、再構成ユニット158、およびフィルタユニット160は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成し得る。エントロピー復号ユニット150は、エントロピー符号化ユニット118のプロセスとは全般的に逆のプロセスを実行し得る。
【０１２０】
本開示のいくつかの例によれば、エントロピー復号ユニット150、またはビデオデコーダ30の別の処理ユニットは、ビットストリームからシンタックス要素を取得することの一部として、ツリー構造を判定することができる。ツリー構造は、CTBなどの最初のビデオブロックが、コーディングユニットなどのより小さいビデオブロックにどのように区分されるのかを指定し得る。本開示の1つまたは複数の技法によれば、ツリー構造の各深度レベルにおけるツリー構造のそれぞれの非リーフノードごとに、それぞれの非リーフノードに対して複数の許容区分タイプがあり、それぞれの非リーフノードに対応するビデオブロックは、複数の許容可能な分割パターンのうちの1つに従って、それぞれの非リーフノードの子ノードに対応するビデオブロックに区分される。
【０１２１】
ビットストリームからシンタックス要素を取得することに加えて、ビデオデコーダ30は、区分されていないCUに対して再構築動作を実行し得る。CUに対して再構築動作を実行するために、ビデオデコーダ30は、CUの各TUに対して再構築動作を実行し得る。CUのTUごとに再構築動作を実行することによって、ビデオデコーダ30は、CUの残差ブロックを再構築し得る。上記で論じたように、本開示の一例では、CUは単一のTUを含む。
【０１２２】
CUのTUに対して再構成動作を実行することの一部として、逆量子化ユニット154は、TUに関連する係数ブロックを逆量子化(inverse quantize)、すなわち逆量子化(de-quantize)し得る。逆量子化ユニット154が係数ブロックを逆量子化した後、逆変換処理ユニット156は、TUに関連する残差ブロックを生成するために、係数ブロックに1つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット156は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、または別の逆変換を係数ブロックに適用し得る。
【０１２３】
CUまたはPUがイントラ予測を使用して符号化されている場合、イントラ予測処理ユニット166は、イントラ予測を実行してPUの予測ブロックを生成し得る。イントラ予測処理ユニット166は、イントラ予測モードを使用して、空間的に近隣するブロックのサンプルに基づいて、PUの予測ブロックを生成し得る。イントラ予測処理ユニット166は、ビットストリームから取得された1つまたは複数のシンタックス要素に基づいて、PU用のイントラ予測モードを判定することができる。
【０１２４】
PUがインター予測を使用して符号化されている場合、エントロピー復号ユニット150は、PUに関する動き情報を判定することができる。動き補償ユニット164は、PUの動き情報に基づいて、1つまたは複数の参照ブロックを判定することができる。動き補償ユニット164は、1つまたは複数の参照ブロックに基づいて、PUに対する予測ブロック(たとえば、予測ルーマブロック、予測Cbブロック、および予測Crブロック)を生成し得る。上記で論じたように、CUは単一のPUのみを含む。すなわち、CUを複数のPUに分割することはできない。
【０１２５】
再構成ユニット158は、CUのTUに対する変換ブロック(たとえば、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロック)、およびCUのPUの予測ブロック(たとえば、ルーマブロック、Cbブロック、およびCrブロック)、すなわち、適用可能な場合、イントラ予測データまたはインター予測データのいずれかを使用して、CUに対するコーディングブロック(たとえば、ルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロック)を再構成し得る。たとえば、再構成ユニット158は、変換ブロック(たとえば、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロック)のサンプルを、予測ブロック(たとえば、ルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロック)の対応するサンプルに加算して、CUのコーディングブロック(たとえば、ルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロック)を再構成し得る。
【０１２６】
フィルタユニット160は、デブロッキング動作を実行して、CUのコーディングブロックに関連するブロッキングアーティファクトを低減し得る。ビデオデコーダ30は、CUのコーディングブロックを復号ピクチャバッファ162内に記憶し得る。復号ピクチャバッファ162は、後続の動き補償、イントラ予測、および図1のディスプレイデバイス32などのディスプレイデバイス上での提示のために、参照ピクチャを提供し得る。たとえば、ビデオデコーダ30は、復号ピクチャバッファ162内のブロックに基づいて、他のCUのPUに対してイントラ予測動作またはインター予測動作を実行し得る。
【０１２７】
図12は、本開示の技法による、ビデオデータを復号するためのビデオデコーダの例示的な動作を示すフローチャートである。図12に関して説明するビデオデコーダは、表示可能な復号ビデオを出力するための、たとえば、ビデオデコーダ30などのビデオデコーダであってよいか、または、その一部分が、予測処理ユニット100および加算器112を含む、ビデオエンコーダ22の復号ループなど、ビデオエンコーダ内で実装されるビデオデコーダであってもよい。
【０１２８】
図12の技法によれば、ビデオデコーダは、ビデオデータの現在ピクチャの現在ブロックがP×Qのサイズを有すると判定し、Pは、現在ブロックの幅に対応する第1の値であり、Qは、現在ブロックの高さに対応する第2の値である(202)。現在ブロックが短辺および長辺を含むように、PはQに等しくなく、第1の値足す第2の値は、2の冪である値に等しくない。ビデオデコーダは、イントラDCモード予測を使用してビデオデータの現在ブロックを復号する(204)。イントラDCモード予測を使用してビデオデータの現在ブロックを復号するために、ビデオデコーダは、DC値を計算するためにシフト動作を実行し(206)、計算されたDC値を使用して、ビデオデータの現在ブロックに対する予測ブロックを生成する(208)。
【０１２９】
一例では、イントラDCモード予測を使用してビデオデータの現在ブロックを復号するために、ビデオデコーダは、シフト動作を使用して、短辺の近隣のサンプルに関する第1の平均値を判定し、シフト動作を使用して、長辺の近隣のサンプルに関する第2の平均値を判定し、シフト動作を使用して、第1の平均値および第2の平均値の平均値を判定することによって、DC値を計算する。第1の平均値および第2の平均値の平均値を判定するために、ビデオデコーダは、第1の平均値および第2の平均値の加重平均値を判定することができる。別の例では、イントラDCモード予測を使用してビデオデータの現在ブロックを復号するために、ビデオデコーダは、長辺の近隣のダウンサンプリングされるサンプルの数および短辺の近隣のサンプルの数の組合せが2の冪である値に等しいように、長辺の近隣のサンプルの数をダウンサンプリングして長辺の近隣のダウンサンプリングされたサンプルの数を判定する。別の例では、イントラDCモード予測を使用してビデオデータの現在ブロックを復号するために、ビデオデコーダは、短辺の近隣のアップサンプリングされるサンプルの数および長辺の近隣のサンプルの数の組合せが2の冪である値に等しいように、短辺の近隣のサンプルの数をアップサンプリングして短辺の近隣のアップサンプリングされたサンプルの数を判定する。
【０１３０】
別の例では、イントラDCモード予測を使用してビデオデータの現在ブロックを復号するために、ビデオデコーダは、短辺の近隣のアップサンプリングされるサンプルの数および長辺の近隣のダウンサンプリングされるサンプルの数の組合せが2の冪である値に等しいように、短辺の近隣のサンプルの数をアップサンプリングして短辺の近隣のアップサンプリングされたサンプルの数を判定し、長辺の近隣のサンプルの数をダウンサンプリングして長辺の近隣のダウンサンプリングされたサンプルの数を判定する。
【０１３１】
別の例では、イントラDCモード予測を使用してビデオデータの現在ブロックを復号するために、ビデオデコーダは、短辺の近隣のダウンサンプリングされるサンプルの数および長辺の近隣のダウンサンプリングされるサンプルの数の組合せが2の冪である値に等しいように、短辺の近隣のサンプルの数をダウンサンプリングして短辺の近隣のダウンサンプリングされたサンプルの数を判定し、長辺の近隣のサンプルの数をダウンサンプリングして長辺の近隣のダウンサンプリングされたサンプルの数を判定する。
【０１３２】
ビデオデコーダは、現在ブロックの復号バージョンを含む、現在ピクチャの復号バージョンを出力する(210)。ビデオデコーダが表示可能な復号ビデオを出力するように構成されたビデオデコーダであるとき、ビデオデコーダは、たとえば、現在ピクチャの復号バージョンをディスプレイデバイスに出力することができる。復号がビデオ符号化プロセスの復号ループの一部として実行されるとき、ビデオデコーダは、ビデオデータの別のピクチャを符号化する際に使用するための参照ピクチャとして現在ピクチャの復号バージョンを記憶することができる。
【０１３３】
図13は、本開示の技法による、ビデオデータを復号するためのビデオデコーダの例示的な動作を示すフローチャートである。図13に関して説明するビデオデコーダは、表示可能な復号ビデオを出力するための、たとえば、ビデオデコーダ30などのビデオデコーダであってよいか、または、その一部分が、予測処理ユニット100および加算器112を含む、ビデオエンコーダ22の復号ループなど、ビデオエンコーダ内で実装されるビデオデコーダであってもよい。
【０１３４】
図13の技法によれば、ビデオデコーダは、ビデオデータの現在ピクチャの現在ブロックがP×Qのサイズを有すると判定し、Pは、現在ブロックの幅に対応する第1の値であり、Qは、現在ブロックの高さに対応する第2の値であり、PはQに等しくない(222)。現在ブロックは短辺および長辺を含み、第1の値足す第2の値は、2の冪である値に等しくない。
【０１３５】
ビデオデコーダは、ビデオデータの現在ブロックに対してフィルタリング動作を実行する(224)。ビデオデータの現在ブロックに対してフィルタリング動作を実行するために、ビデオデコーダは、フィルタ値を計算するためにシフト動作を実行し(226)、計算されたフィルタ値を使用して、ビデオデータの現在ブロックに対してフィルタリングされたブロックを生成する(228)。ビデオデータの現在ブロックに対してフィルタリング動作を実行するために、ビデオデコーダは、たとえば、長辺の近隣のダウンサンプリングされるサンプルの数および短辺の近隣のサンプルの数の組合せが2の冪である値に等しいように、長辺の近隣のサンプルの数をダウンサンプリングして長辺の近隣のダウンサンプリングされたサンプルの数を判定する。長辺の近隣のサンプルの数をダウンサンプリングするために、ビデオデコーダは、たとえば、いくつかのサンプルを無視することができる。ビデオデータの現在ブロックに対してフィルタリング動作を実行するために、ビデオデコーダは、たとえば、短辺の近隣のアップサンプリングされるサンプルの数および長辺の近隣のサンプルの数の組合せが2の冪である値に等しいように、短辺の近隣のサンプルの数をアップサンプリングして短辺の近隣のアップサンプリングされたサンプルの数を判定する。短辺の近隣のサンプルの数をアップサンプリングするために、ビデオデコーダは、たとえば、対応する実際の値なしに、デフォルト値をサンプルに割り当てることができる。
【０１３６】
ビデオデコーダは、現在ブロックの復号バージョンを含む、現在ピクチャの復号バージョンを出力する(230)。ビデオデコーダが表示可能な復号ビデオを出力するように構成されたビデオデコーダであるとき、ビデオデコーダは、たとえば、現在ピクチャの復号バージョンをディスプレイデバイスに出力することができる。復号がビデオ符号化プロセスの復号ループの一部として実行されるとき、ビデオデコーダは、ビデオデータの別のピクチャを符号化する際に使用するための参照ピクチャとして現在ピクチャの復号バージョンを記憶することができる。
【０１３７】
本開示のいくつかの態様は、説明を目的にHEVC規格の拡張に関して説明されている。しかしながら、本開示において説明される技法は、まだ開発されていない他の標準的なまたは独自のビデオコーディングプロセスを含む、他のビデオコーディングプロセスにとって有用であり得る。
【０１３８】
本開示で説明したようなビデオコーダは、ビデオエンコーダまたはビデオデコーダを指すことがある。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指すことがある。同様に、ビデオコーディングは、適用可能な場合、ビデオ符号化またはビデオ復号を指すことがある。本開示では、「に基づいて」という句は、「だけに基づいて」、「に少なくとも一部基づいて」、または「何らかの形で基づいて」を示し得る。本開示は、サンプルの1つまたは複数のブロックのサンプルをコーディングするために使用される1つまたは複数のサンプルブロックおよびシンタックス構造を指すために、「ビデオ単位」または「ビデオブロック」または「ブロック」という用語を使用することがある。例示的なタイプのビデオ単位は、CTU、CU、PU、変換ユニット(TU)、マクロブロック、マクロブロック区分などを含み得る。いくつかのコンテキストでは、PUの議論はマクロブロックまたはマクロブロック区分の議論と相互に交換され得る。例示的なタイプのビデオブロックは、コーディングツリーブロック、コーディングブロック、およびビデオデータの他のタイプのブロックを含み得る。
【０１３９】
例に応じて、本明細書で説明した技法のいずれかのいくつかの行為またはイベントが、異なるシーケンスで実行されてよく、追加、併合、または完全に除外されてよい(たとえば、説明したすべての行為またはイベントが技法の実践にとって必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて並行して実行されてよい。
【０１４０】
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せとして実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を通じて送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このように、コンピュータ可読媒体は、概して、(1)非一時的な有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応する場合がある。データ記憶媒体は、本開示で説明した技法の実装のための命令、コード、および/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１４１】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびBlu-ray(登録商標)ディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１４２】
命令は、1つもしくは複数のDSP、汎用マイクロプロセッサ、ASIC、FPGA、または他の等価な集積論理回路もしくはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または本明細書で説明した技法の実装に適した任意の他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内で与えられることがあり、または複合コーデックに組み込まれることがある。また、技法は、1つまたは複数の回路または論理要素で全体的に実装され得る。
【０１４３】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置に実装され得る。開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットについて本開示で説明したが、それらは必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わされてよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、上で説明されたような1つまたは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【０１４４】
様々な例が記載されている。これらおよび他の例は、以下の特許請求の範囲内に入る。
【符号の説明】
【０１４５】
10  ビデオ符号化および復号システム
12  ソースデバイス
14  宛先デバイス
16  コンピュータ可読媒体
18  ビデオソース
20  記憶媒体
22  ビデオエンコーダ
24  出力インターフェース
26  入力インターフェース
28  記憶媒体
30  ビデオデコーダ
32  ディスプレイデバイス
50  ブロック
51  ブロック
52  ブロック
53  ブロック
54  ブロック
55  ブロック
56  ブロック
57  ブロック
58  ブロック
59  ブロック
60  ブロック
61  ブロック
62  ブロック
63  ブロック
64  ブロック
65  ブロック
66  ブロック
70  ノード
72  ノード
74  ノード
76  ノード
78  ノード
78  ノード
80  ノード
84  ノード
100  予測処理ユニット
101  ビデオデータメモリ
102  残差生成ユニット
104  変換処理ユニット
106  量子化ユニット
108  逆量子化ユニット
110  逆変換処理ユニット
112  再構成ユニット
114  フィルタユニット
116  復号ピクチャバッファ
118  エントロピー符号化ユニット
120  インター予測処理ユニット
126  イントラ予測処理ユニット
150  エントロピー復号ユニット
151  ビデオデータメモリ
152  予測処理ユニット
154  逆量子化ユニット
156  逆変換処理ユニット
158  再構成ユニット
160  フィルタユニット
162  復号ピクチャバッファ
164  動き補償ユニット
166  イントラ予測処理ユニット
【図１】
2020503815.tif 000012
【図２】
2020503815.tif 000013
【図３】
2020503815.tif 000014
【図４Ａ】
2020503815.tif 000015
【図４Ｂ】
2020503815.tif 000016
【図５】
2020503815.tif 000017
【図６Ａ】
2020503815.tif 000018
【図６Ｂ】
2020503815.tif 000019
【図６Ｃ】
2020503815.tif 000020
【図６Ｄ】
2020503815.tif 000021
【図７】
2020503815.tif 000022
【図８】
2020503815.tif 000023
【図９】
2020503815.tif 000024
【図１０】
2020503815.tif 000025
【図１１】
2020503815.tif 000026
【図１２】
2020503815.tif 000027
【図１３】
2020503815.tif 000028
【国際調査報告】
2020503815.tif 000029
2020503815.tif 000030
2020503815.tif 000031