(57)【要約】  一例では、ビデオデータをコーディングする方法は、符号化ビデオビットストリームから、ビデオデータの現在コーディングユニット(CU)の現在予測ユニット(PU)の複数のサブPUのうちの1つまたは複数の中にあるビデオデータのラインの数を示すシンタックス要素をコーディングすることを含む。この例では、方法は、複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定することをさらに含む。この例では、方法は、ビデオデータのそれぞれの予測子ブロックに基づいて、複数のサブPUのうちの各サブPUを復元することをさらに含む。
2018507616.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
符号化ビデオビットストリームから、ビデオデータの現在コーディングユニット(CU)の現在予測ユニット(PU)の複数のサブPUのうちの1つまたは複数の中にあるビデオデータのラインの数を示すシンタックス要素を復号するステップと、
前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定するステップと、
ビデオデータの前記それぞれの予測子ブロックに基づいて、前記複数のサブPUのうちの各サブPUを復元するステップと
を含む、方法。
【請求項２】
前記複数のサブPU用の前記それぞれの予測子ブロックが、ビデオデータの前記現在CUを含むピクチャの中にある、請求項1に記載の方法。
【請求項３】
前記複数のサブPUが多くとも2つのサブPUを含む、請求項1に記載の方法。
【請求項４】
前記複数のサブPUのうちの1つまたは複数の中にあるラインの前記数を示す前記シンタックス要素を復号するステップが、
前記複数のサブPUのうちの最後のサブPUを除く前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUの中にあるラインのそれぞれの数を示すそれぞれのシンタックス要素を復号するステップ
を含み、前記方法が、
前記現在PUに含まれるラインの数と前記複数のサブPUのうちの他のサブPUに含まれるラインの数との間の差分に基づいて、前記複数のサブPUのうちの前記最後のサブPUの中にあるラインの数を特定するステップ
をさらに含む、請求項1に記載の方法。
【請求項５】
前記現在PUが前記複数のサブPUに水平方向または垂直方向のどちらで分割されているかの指示を復号するステップをさらに含む、請求項1に記載の方法。
【請求項６】
分割されていないPUおよびサブPUを合わせた総数が多くとも4であり、分割されていないPUがサブPUを含まない、請求項1に記載の方法。
【請求項７】
前記複数のサブPUのうちの前記1つまたは複数の中にあるラインの前記数を示す前記シンタックス要素が第1のシンタックス要素であり、前記方法が、
前記符号化ビデオビットストリームから、ビデオデータの前記現在CUの前記現在PUについて、前記現在PUが前記複数のサブPUに分割されているか否かを示す第2のシンタックス要素を復号するステップ
をさらに含み、
前記第1のシンタックス要素を復号するステップが、前記現在PUが前記複数のサブPUに分割されていることを前記第2のシンタックス要素が示すことに応答して前記第1のシンタックス要素を復号するステップを含む、
請求項1に記載の方法。
【請求項８】
前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUとそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定するステップが、
前記複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのベクトル予測子を特定するステップと、
前記複数のサブPUのうちのそれぞれのサブPUごとに、各々がそれぞれのベクトルと前記それぞれのベクトル予測子との間のそれぞれの差分を示すそれぞれのベクトル差分(VD)を特定するステップと、
それぞれのサブPUごとに、前記それぞれのベクトル予測子および前記それぞれのVDに基づいて前記それぞれのベクトルを特定するステップと
を含む、請求項1に記載の方法。
【請求項９】
前記それぞれのベクトル予測子を特定するステップが、候補ベクトル予測子のそれぞれのリストを決定するステップを含み、前記方法が、
現在サブPUの候補ベクトル予測子の前記それぞれのリストの中に、前にコーディングされたサブPU用の前記それぞれのベクトルを含めるステップ
をさらに含む、請求項8に記載の方法。
【請求項１０】
ビデオデータを符号化する方法であって、
ビデオデータの現在コーディングユニット(CU)の現在予測ユニット(PU)を複数のサブPUに分割すると決定するステップと、
前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定するステップと、
符号化ビデオビットストリーム内で、前記複数のサブPUのうちの1つまたは複数の中にあるビデオデータのラインの数を示すシンタックス要素を符号化するステップと
を含む、方法。
【請求項１１】
前記複数のサブPU用の前記それぞれの予測子ブロックが、ビデオデータの前記現在CUを含むピクチャの中にある、請求項10に記載の方法。
【請求項１２】
前記複数のサブPUが多くとも2つのサブPUを含む、請求項10に記載の方法。
【請求項１３】
前記複数のサブPUのうちの1つまたは複数の中にあるラインの前記数を示す前記シンタックス要素を符号化するステップが、
前記複数のサブPUのうちの最後のサブPUを除く前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUの中にあるラインのそれぞれの数を示すそれぞれのシンタックス要素を符号化するステップ
を含む、請求項10に記載の方法。
【請求項１４】
前記現在PUが前記複数のサブPUに水平方向または垂直方向のどちらで分割されているかの指示を符号化するステップをさらに含む、請求項10に記載の方法。
【請求項１５】
分割されていないPUおよびサブPUを合わせた総数が多くとも4であり、分割されていないPUがサブPUを含まない、請求項10に記載の方法。
【請求項１６】
前記複数のサブPUのうちの前記1つまたは複数の中にあるラインの前記数を示す前記シンタックス要素が第1のシンタックス要素であり、前記方法が、
前記符号化ビデオビットストリーム内で、ビデオデータの前記現在CUの前記現在PUについて、前記現在PUが前記複数のサブPUに分割されているか否かを示す第2のシンタックス要素を符号化するステップ
をさらに含み、
前記第1のシンタックス要素を符号化するステップが、前記現在PUを前記複数のサブPUに分割するとの決定に応答して前記第1のシンタックス要素を符号化するステップを含む、
請求項10に記載の方法。
【請求項１７】
前記複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのベクトル予測子を特定するステップと、
前記複数のサブPUのうちのそれぞれのサブPUごとに、各々がそれぞれのベクトルと前記それぞれのベクトル予測子との間のそれぞれの差分を示すそれぞれのベクトル差分(VD)を特定するステップと、
前記符号化ビデオビットストリーム内で、それぞれのサブPUごとに、前記それぞれのVDの指示および前記それぞれのベクトル予測子の指示を符号化するステップと
をさらに含む、請求項10に記載の方法。
【請求項１８】
前記それぞれのベクトル予測子を特定するステップが、候補ベクトル予測子のそれぞれのリストを決定するステップを含み、前記方法が、
現在サブPUの候補ベクトル予測子の前記それぞれのリストの中に、前にコーディングされたサブPU用の前記それぞれのベクトルを含めるステップ
をさらに含む、請求項17に記載の方法。
【請求項１９】
ビデオデータを符号化または復号するためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサが、
符号化ビデオビットストリームから、前記ビデオデータの現在コーディングユニット(CU)の現在予測ユニット(PU)の複数のサブPUのうちの1つまたは複数の中にあるラインの数を示すシンタックス要素を符号化または復号することと、
前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定することと、
ビデオデータの前記それぞれの予測子ブロックに基づいて、前記複数のサブPUのうちの各サブPUを復元することと
を行うように構成される、デバイス。
【請求項２０】
前記複数のサブPU用の前記それぞれの予測子ブロックが、ビデオデータの前記現在CUを含むピクチャの中にある、請求項19に記載のデバイス。
【請求項２１】
前記複数のサブPUが多くとも2つのサブPUを含む、請求項19に記載のデバイス。
【請求項２２】
前記複数のサブPUのうちの1つまたは複数の中にあるラインの前記数を示す前記シンタックス要素を符号化または復号するために、前記1つまたは複数のプロセッサが、
前記複数のサブPUのうちの最後のサブPUを除く前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUの中にあるラインのそれぞれの数を示すそれぞれのシンタックス要素を符号化または復号するように構成される、
請求項19に記載のデバイス。
【請求項２３】
前記現在PUが前記複数のサブPUに水平方向または垂直方向のどちらで分割されているかの指示を符号化または復号するように、前記1つまたは複数のプロセッサがさらに構成される、請求項19に記載のデバイス。
【請求項２４】
分割されていないPUおよびサブPUを合わせた総数が多くとも4であり、分割されていないPUがサブPUを含まない、請求項19に記載のデバイス。
【請求項２５】
前記複数のサブPUのうちの前記1つまたは複数の中にあるラインの前記数を示す前記シンタックス要素が第1のシンタックス要素であり、前記1つまたは複数のプロセッサが、
前記符号化ビデオビットストリームから、ビデオデータの前記現在CUの前記現在PUについて、前記現在PUが前記複数のサブPUに分割されているか否かを示す第2のシンタックス要素を符号化または復号するようにさらに構成され、
前記1つまたは複数のプロセッサが、前記現在PUが前記複数のサブPUに分割されていることを示す前記第2のシンタックス要素に基づいて、前記第1のシンタックス要素を符号化または復号するようにさらに構成される、
請求項19に記載のデバイス。
【請求項２６】
前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUとそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定するために、前記1つまたは複数のプロセッサが、
前記複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのベクトル予測子を特定することと、
前記複数のサブPUのうちのそれぞれのサブPUごとに、各々がそれぞれのベクトルと前記それぞれのベクトル予測子との間のそれぞれの差分を示すそれぞれのベクトル差分(VD)を特定することと、
それぞれのサブPUごとに、前記それぞれのベクトル予測子および前記それぞれのVDに基づいて前記それぞれのベクトルを特定することと
を行うように構成される、請求項19に記載のデバイス。
【請求項２７】
前記それぞれのベクトル予測子を特定するために、前記1つまたは複数のプロセッサが候補ベクトル予測子のそれぞれのリストを決定するように構成され、前記1つまたは複数のプロセッサが、
現在サブPUの候補ベクトル予測子の前記それぞれのリストの中に、前にコーディングされたサブPU用の前記それぞれのベクトルを含めるようにさらに構成される、
請求項26に記載のデバイス。
【請求項２８】
前記デバイスがビデオデコーダを備え、前記シンタックス要素を符号化または復号するために、前記1つまたは複数のプロセッサが前記シンタックス要素を復号するように構成される、請求項19に記載のデバイス。
【請求項２９】
前記デバイスがビデオエンコーダを備え、前記シンタックス要素を符号化または復号するために、前記1つまたは複数のプロセッサが前記シンタックス要素を符号化するように構成される、請求項19に記載のデバイス。
【請求項３０】
実行されると、ビデオ符号化デバイスまたはビデオ復号デバイスの1つまたは複数のプロセッサに、
ビデオデータの現在コーディングユニット(CU)の現在予測ユニット(PU)の複数のサブPUのうちの1つまたは複数の中にあるラインの数を示すシンタックス要素を符号化または復号することと、
前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定することと、
ビデオデータの前記それぞれの予測子ブロックに基づいて、前記複数のサブPUのうちの各サブPUを復元することと
を行わせる命令を記憶する、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれる、2015年1月30日に出願された米国仮出願第62/110,401号の利益を主張するものである。
【０００２】
本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、携帯電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込むことができる。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part 10、アドバンストビデオコーディング(AVC)、現在開発中の高効率ビデオコーディング(HEVC)規格、およびそのような規格の拡張によって定義された規格に記載されるものなどのビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することにより、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶することができる。
【０００４】
ビデオ圧縮技法は、空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を実施して、ビデオシーケンスに固有の冗長性を低減または除去する。ブロックベースのビデオコーディングの場合、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部分)は、ビデオブロックに区分化される場合があり、ビデオブロックは、ツリーブロック、コーディングユニット(CU)、予測ユニット(PU)、および/またはコーディングノードと呼ばれる場合もある。ピクチャのイントラコーディングされた(I)スライスの中のビデオブロックは、同じピクチャにおける隣接ブロックの中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコーディングされた(PまたはB)スライスの中のビデオブロックは、同じピクチャにおける隣接ブロックの中の参照サンプルに対する空間予測、または他の参照ピクチャの中の参照サンプルに対する時間予測を使用することができる。空間予測または時間予測は、コーディングされるべきブロックに対する予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データはピクセル領域から変換領域に変換され、残差変換係数をもたらす場合があり、次いで、残差変換係数が量子化される場合がある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ITU-T H.265、Series H:Audiovisual and Multimedia Systems、Infrastructure of Audiovisual Services-Coding of Moving Video、2015年4月、http://www.itu.int/rec/T-REC-H.265-201504-I/en
【非特許文献２】Caoら、「CE6.b1 Report on Short Distance Intra Prediction Method」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング合同研究部会(JCT-VC)、第5回会合、ジュネーブ、2011年3月16〜23日、文書JCTVC-E278
【非特許文献３】Joshiら、「High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 1」、文書JCTVC-R1005_v3、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJCT-VC、第18回会合、札幌、日本、2014年6月30日〜7月9日
【非特許文献４】Pangら、「Non-RCE3: Intra Motion Compensation with 2-D MVs」、文書JCTVC-N0256、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJCT-VC、第14回会合、ウィーン、オーストリア、2013年7月25日〜8月2日
【非特許文献５】JCTVC-S1015、「Common conditions for screen content coding tests」、ストラスブール、フランス、2014年10月17〜24日、phenix.it-sudparis.eu/jct/doc_end_user/documents/19_Strasbourg/wg11/JCTVC-S1015-v2.zip
【発明の概要】
【課題を解決するための手段】
【０００６】
概して、本開示は、ビデオコーディングを実施するための技法を記載する。より詳細には、本開示は、コーディングユニット(CU)の予測ユニット(PU)の2つ以上のサブPUへの柔軟な分割を容易にするための技法を記載する。
【０００７】
一例では、ビデオデータを復号するための方法は、符号化ビデオビットストリームから、ビデオデータの現在CUの現在PUの複数のサブPUのうちの1つまたは複数の中にあるビデオデータのラインの数を示すシンタックス要素を復号することと、複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定することと、ビデオデータのそれぞれの予測子ブロックに基づいて、複数のサブPUのうちの各サブPUを復元することとを含む。
【０００８】
別の例では、ビデオデータを符号化するための方法は、ビデオデータの現在CUの現在PUを複数のサブPUに分割すると決定することと、複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定することと、符号化ビデオビットストリーム内で、複数のサブPUのうちの1つまたは複数の中にあるビデオデータのラインの数を示すシンタックス要素を符号化することとを含む。
【０００９】
別の例では、ビデオデータを符号化または復号するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、1つまたは複数のプロセッサとを含む。この例では、1つまたは複数のプロセッサは、符号化ビデオビットストリームから、ビデオデータの現在CUの現在PUの複数のサブPUのうちの1つまたは複数の中にあるラインの数を示すシンタックス要素を符号化または復号することと、複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定することと、ビデオデータのそれぞれの予測子ブロックに基づいて、複数のサブPUのうちの各サブPUを復元することとを行うように構成される。
【００１０】
別の例では、ビデオデータを符号化または復号するためのデバイスは、符号化ビデオビットストリームから、ビデオデータの現在CUの現在PUの複数のサブPUのうちの1つまたは複数の中にあるラインの数を示すシンタックス要素を符号化または復号するための手段と、複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定するための手段と、ビデオデータのそれぞれの予測子ブロックに基づいて、複数のサブPUのうちの各サブPUを復元するための手段とを含む。
【００１１】
別の例では、コンピュータ可読記憶媒体は、実行されると、符号化ビデオビットストリームから、ビデオデータの現在CUの現在PUの複数のサブPUのうちの1つまたは複数の中にあるラインの数を示すシンタックス要素を符号化または復号することと、複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定することと、ビデオデータのそれぞれの予測子ブロックに基づいて、複数のサブPUのうちの各サブPUを復元することとを、ビデオ符号化デバイスまたはビデオ復号デバイスの1つまたは複数のプロセッサに行わせる命令を記憶する。
【００１２】
本開示の1つまたは複数の態様の詳細が、添付の図面および下記の説明において記載される。本開示に記載される技法の他の特徴、目的、および利点は、これらの説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１３】
【図１】本開示に記載される技法を利用することができる、例示的なビデオ符号化および復号システムを示すブロック図である。
【図２】本開示に記載される技法を実装することができる、例示的なビデオエンコーダを示すブロック図である。
【図３】本開示に記載される技法を実装することができる、例示的なビデオデコーダを示すブロック図である。
【図４】本開示の技法による、イントラBCを含むイントラ予測プロセスの一例を示す図である。
【図５Ａ】本開示の技法により、コーディングユニットが予測ユニットにどのように区分化され得るかの例を示す図である。
【図５Ｂ】本開示の技法により、コーディングユニットが予測ユニットにどのように区分化され得るかの例を示す図である。
【図５Ｃ】本開示の技法により、コーディングユニットが予測ユニットにどのように区分化され得るかの例を示す図である。
【図５Ｄ】本開示の技法により、コーディングユニットが予測ユニットにどのように区分化され得るかの例を示す図である。
【図６Ａ】本開示の技法により、予測ユニットがサブ予測ユニットにどのように再分割され得るかの例を示す図である。
【図６Ｂ】本開示の技法により、予測ユニットがサブ予測ユニットにどのように再分割され得るかの例を示す図である。
【図６Ｃ】本開示の技法により、予測ユニットがサブ予測ユニットにどのように再分割され得るかの例を示す図である。
【図６Ｄ】本開示の技法により、予測ユニットがサブ予測ユニットにどのように再分割され得るかの例を示す図である。
【図７】本開示の1つまたは複数の技法による、ビデオエンコーダがPUを複数のサブPUに柔軟に区分化する例示的な動作を示すフロー図である。
【図８】本開示の1つまたは複数の技法による、ビデオデコーダがPUを複数のサブPUに柔軟に区分化する例示的な動作を示すフロー図である。
【発明を実施するための形態】
【００１４】
ビデオシーケンスは、一般に、ピクチャのシーケンスとして表される。通常、ブロックベースのコーディング技法は、個々のピクチャの各々をコーディングするために使用される。すなわち、各ピクチャはブロックに分割され、ブロックの各々は個別にコーディングされる。ビデオデータのブロックをコーディングすることは、一般に、ブロック内のピクセルのための予測値を形成することと、残差値をコーディングすることとに関与する。予測値は、1つまたは複数の予測ブロック内のピクセルサンプルを使用して形成される。残差値は、元のブロックのピクセル値と予測ピクセル値との間の差分を表す。具体的には、ビデオデータの元のブロックはピクセル値のアレイを含み、予測ブロックは予測ピクセル値のアレイを含む。残差値は、元のブロックのピクセル値と予測ピクセル値との間のピクセルごとの差分を表す。
【００１５】
ビデオデータのブロックのための予測技法は、一般に、イントラ予測およびインター予測として分類される。イントラ予測または空間予測は、任意の参照ピクチャからの予測を含まず、代わりに、ブロックは隣接する前にコーディングされたブロックのピクセル値から予測される。インター予測または時間予測は、一般に、1つまたは複数の前にコーディングされた参照ピクチャ(たとえば、フレームまたはスライス)のピクセル値からブロックを予測することに関与する。
【００１６】
様々な予測技法に加えて、ビデオエンコーダは、ビデオデータを符号化するときに様々なブロックサイズを利用することもできる。たとえば、高効率ビデオコーディング(HEVC)ビデオコーディング規格(http://www.itu.int/rec/T-REC-H.265-201504-I/enにおいて入手可能な、ITU-T H.265、Series H:Audiovisual and Multimedia Systems、Infrastructure of Audiovisual Services-Coding of Moving Video、2015年4月)の下でイントラ予測を使用してビデオデータを符号化するとき、ビデオエンコーダは、ビデオピクチャをツリーブロックまたは最大コーディングユニット(LCU)のシーケンスに分割することができ、それらは4分木に従ってコーディングユニット(CU)に分割され得る。一般に、4分木データ構造はCU当たり1つのノードを含み、ルートノードはツリーブロックに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。CUは、ルーマサンプルアレイ、Cbサンプルアレイ、およびCrサンプルアレイを有するピクチャの、ルーマサンプルのコーディングブロック、およびクロマサンプルの2つの対応するコーディングブロック、ならびにコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備える場合がある。白黒ピクチャ、または3つの別個の色平面を有するピクチャでは、CUは、単一のコーディングブロックと、コーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える場合がある。コーディングブロックは、サンプルのN×Nブロックである。
【００１７】
4分木データ構造の各ノードは、対応するCUにシンタックスデータを提供することができる。たとえば、4分木内のノードは、ノードに対応するCUがサブCUに分割されているかどうかを示す分割フラグを含む場合がある。CUのためのシンタックス要素は再帰的に定義される場合があり、CUがサブCUに分割されているかどうかに依存する場合がある。CUがそれ以上分割されない場合、それはリーフCUと呼ばれる。本開示では、リーフCUの4つのサブCUはまた、元のリーフCUの明示的な分割が存在しない場合でも、リーフCUと呼ばれる。たとえば、16×16サイズのCUがそれ以上分割されない場合、4つの8×8サブCUもリーフCUと呼ばれるが、16×16CUは決して分割されない。
【００１８】
HEVC規格におけるCUは、H.264規格のマクロブロックの目的と同様の目的を有する。しかしながら、CUはサイズの区別をもたない。たとえば、ツリーブロックは、4つの(サブCUとも呼ばれる)子ノードに分割される場合があり、各子ノードは、次に親ノードになり、別の4つの子ノードに分割される場合がある。最後の、4分木のリーフノードと呼ばれる分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コード化ビットストリームと関連付けられたシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割され得る最大回数を規定することができ、コーディングノードの最小サイズを規定することもできる。したがって、ビットストリームは、最小コーディングユニット(SCU)を規定することもできる。本開示は、HEVCのコンテキストにおけるCU、PU、もしくはTU、または他の規格のコンテキストにおける同様のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそれらのサブブロック)のうちのいずれかを指すために、「ブロック」という用語を使用する。
【００１９】
CUは、コーディングノードと、コーディングノードに関連付けられた予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。CUのサイズは、8×8ピクセルから、最大64×64ピクセルまたはそれ以上のツリーブロックのサイズまでの範囲であり得る。各CUは、1つまたは複数のPUおよび1つまたは複数のTUを含む場合がある。
【００２０】
一般に、PUは、対応するCUのすべてまたは一部分に対応する空間領域を表し、PUのための参照サンプルを取り出すためのデータを含む場合がある。その上、PUは予測に関連するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUに関するデータは、PUに対応するTUに関するイントラ予測モードを記述するデータを含む場合がある、残差4分木(RQT)に含まれる場合がある。別の例として、PUがインターモード符号化されるとき、PUは、PUに関する1つまたは複数の動きベクトルを定義するデータを含む場合がある。予測ブロックは、同じ予測が適用されるサンプルの長方形(すなわち、正方形または非正方形)ブロックであり得る。CUのPUは、ピクチャのルーマサンプルの予測ブロック、およびクロマサンプルの2つの対応する予測ブロック、ならびに予測ブロックサンプルを予測するために使用されるシンタックス構造を備える場合がある。白黒ピクチャ、または3つの別個の色平面を有するピクチャでは、PUは、単一の予測ブロックと、予測ブロックサンプルを予測するために使用されるシンタックス構造とを備える場合がある。
【００２１】
TUは、変換、たとえば、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または残差ビデオデータへの概念的に同様の変換の適用に続く変換領域における係数を含む場合がある。残差データは、符号化されていないピクチャのピクセル値と、PUに対応する予測値との間のピクセル差分に対応する場合がある。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、TUを変換して、CUのための変換係数を生成することができる。変換ブロックは、同じ変換が適用されるサンプルの長方形ブロックであり得る。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備える場合がある。白黒ピクチャ、または3つの別個の色平面を有するピクチャでは、TUは、単一の変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備える場合がある。
【００２２】
HEVCは、パーティションモードとも呼ばれる、様々なあらかじめ定義されたPUサイズにおける予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HEVCは、2N×2NまたはN×NのPUサイズにおけるイントラ予測と、2N×2N、2N×N、N×2N、またはN×Nの対称PUサイズにおけるインター予測とをサポートする(ここで、NはCUの側部の長さの半分を表す)。HEVCはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズにおけるインター予測のための非対称の動き区分化(AMP)をサポートする。非対称区分化では、CUの1つの方向は区分化されないが、他の方向は25%と75%に区分化される。25%パーティションに対応するCUの部分は、「上」、「下」、「左」、または「右」の指示がその後に続く「n」によって示される。したがって、たとえば、「2N×nU」は、上に2N×0.5NのPUおよび下に2N×1.5NのPUで水平方向に区分化された2N×2NのCUを指す。
【００２３】
一般に、CUをPUに区分化すると、ビデオエンコーダがより良い予測を取得し、残差値を最小化することが可能になる。しかしながら、いくつかの例では、ビデオエンコーダがビデオデータのCUを分割するとき、PUサイズのあらかじめ定義されたセットに限定されることは、望ましくない場合がある。たとえば、コンテキスト内の急激な変化を表すスクリーンコンテンツのシーケンスを符号化するとき、固定されたPUパーティションサイズは効率的でない場合がある。
【００２４】
いくつかの例では、ビデオエンコーダは、短距離イントラ予測(SDIP)を利用することができる。SDIPは、たとえば、Caoら、「CE6.b1 Report on Short Distance Intra Prediction Method」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング合同研究部会(JCT-VC)、第5回会合、ジュネーブ、2011年3月16〜23日、文書JCTVC-E278(以下、「JCTVC-E278」)によって記述されたような技法であり、そこでは、32×32よりも小さい1つのN×Nの正方形ブロックが長方形の形状を有するいくつかのラインまたは非正方形ブロックに分割され、ラインごとまたは長方形ごとにピクセルが予測および復元される。一例として、JCTVC-E278は、16×16のCUを4つの8×8のPUに分割するだけでなく、4つの4×16/16×4のPUにも分割することができ、4×16/16×4のPUを4つの1×16/16×1のパーティションにさらに分割することができることを規定する。別の例として、JCTVC-E278は、8×8のCUを4つの2×8/8×2のPUに分割することができ、あらゆる4×4のPUを4つの1×4/4×1のパーティションにさらに分割することができることを規定する。要約すると、JCTVC-E278は、SDIPにおいて2つのタイプのPUがサポートされ、1番目はhN×2N/2N×hNと命名された長方形PUであり、ここで、hは半分(1/2)を意味し、2番目は1×N/N×1と命名されたラインベースのPUであることを規定する。いくつかの例では、SDIPは、残差値が低減されたビデオデータをビデオエンコーダが符号化することを可能にすることができ、得られるコーディングの複雑度および帯域幅の要件は望ましくない場合がある。
【００２５】
本開示の1つまたは複数の技法によれば、固定サイズのPU(たとえば、2N×2N、2N×N、N×2N、N×N、2N×nU、2N×nD、nL×2N、およびnR×2N)、またはラインベースのPUに限定されること(たとえば、SDIP)とは対照的に、ビデオエンコーダは、各々が調整可能な数のライン(すなわち、行または列)を含む複数のサブPUにPUが分割され得る、柔軟な区分化方式を実装することができる。一例として、ビデオエンコーダは、32×32のCUを4つの16×16のPU(たとえば、N×N)に分割し、16×16のPUのうちの少なくとも1つを1つの3×16のサブPUおよび1つの13×16のサブPUにさらに分割することができる。別の例として、ビデオエンコーダは、16×16のCUを1つの12×16のPUおよび1つの4×16のPU(たとえば、nR×2N)に分割し、12×16のPUを1つの5×16のサブPUおよび1つの11×16のサブPUにさらに分割することができる。このようにして、ビデオエンコーダは、より良い予測を取得し、残差値を最小化することができる。
【００２６】
いくつかの例では、本開示の技法は、イントラブロックコピーイング(BC)に適用可能であり得る。リモートデスクトップ、リモートゲーム、ワイヤレスディスプレイ、車載インフォテインメント、クラウドコンピューティングなどの多くの用途は、日々の生活の中で日常的になってきている。これらの用途におけるビデオコンテンツは、通常、自然なコンテンツ、テキスト、人工グラフィックスなどの組合せである。テキストおよび人工グラフィックスの領域では、(文字、アイコン、シンボルなどの)繰返しパターンがしばしば存在する。イントラBCは、ビデオコーダがそのような冗長性を除去し、イントラピクチャコーディング効率を改善することを可能にすることができる技法である。いくつかの例では、イントラBCは、代替として、イントラ動き補償(MC)と呼ばれる場合がある。
【００２７】
いくつかのイントラBC技法を使用してビデオデータの現在ブロックを予測するために、ビデオコーダは、ビデオデータの現在ブロックと同じピクチャ内にあるビデオデータの予測ブロック(すなわち、前にコーディングされたビデオデータのブロック)を識別するブロックベクトルを特定することができる。一例として、ビデオエンコーダは、ビデオデータの現在ブロックと厳密に一致することが判明した、前にコーディングされたビデオデータのブロックとして予測ブロックを選択し、現在ブロックに対する予測ブロックの位置を示すベクトルを生成することができる。別の例として、ビデオデコーダは、現在ブロックに対する予測ブロックの位置を示すベクトルの指示を受信することができる。
【００２８】
いくつかの例では、圧縮しないでブロックベクトルの値を単純に符号化することとは対照的に、ビデオエンコーダは、圧縮方式を実装して、ブロックベクトルとブロックベクトル予測子との間の差分としてブロックベクトルの値を符号化することができる。いくつかの例では、ブロックベクトル予測子は、(すなわち、コーディング順序において)前にコーディングされたブロックベクトルであり得る。たとえば、現在ブロックのブロックベクトルの値を符号化するために、ビデオエンコーダは、ブロックベクトルと前にコーディングされたブロックベクトルとの間の差分を特定し、ブロックベクトルと前にコーディングされたブロックベクトルとの間の差分を示す1つまたは複数のシンタックス要素を符号化することができる。
【００２９】
現在ブロック用のブロックベクトルの値を復号するために、ビデオデコーダは、相補型プロセスを実施することができる。たとえば、ビデオデコーダは、ブロックベクトルと前にコーディングされたブロックベクトルとの間の差分を示す1つまたは複数のシンタックス要素を受信し、前にコーディングされたブロックベクトルおよび1つまたは複数のシンタックス要素に基づいて、現在ブロック用のブロックベクトルの値を決定することができる。このようにして、ビデオコーダは、ブロックベクトルをコーディングするために使用されるデータの量を低減することができる。
【００３０】
しかしながら、いくつかの例では、前にコーディングされたブロックベクトル以外のブロックベクトル予測子を利用することが望ましい場合がある。一例として、いくつかのブロックの場合、ブロックベクトル予測子として隣接ブロックのブロックベクトルを使用することが望ましい場合がある。たとえば、現在ブロックのブロックベクトルと隣接ブロックのブロックベクトルとの間の差分は、現在ブロックのブロックベクトルと前にコーディングされたブロックベクトルとの間の差分よりも小さい場合がある。別の例として、いくつかのブロックの場合、ブロックベクトル予測子として前にコーディングされたブロックベクトルまたは隣接ブロックのブロックベクトルのいずれかを使用することは可能ではない場合がある。たとえば、イントラBCを使用してコーディングされたコーディングツリーユニット(CTU)内の最初のブロック用のブロックベクトル予測子としての使用に利用可能な、前にコーディングされたブロックベクトルまたは隣接ブロックのブロックベクトルが存在しない場合がある。
【００３１】
いくつかの例では、ビデオデータのブロックを符号化するときのブロックベクトル予測子として前にコーディングされたブロックベクトルを常に使用することとは対照的に、ビデオエンコーダは、複数のソースから選択された複数のブロックベクトル予測子の候補を利用することができる。たとえば、ビデオエンコーダは、隣接ブロックのブロックベクトル、前に復号されたブロックのブロックベクトル、およびデフォルトのブロックベクトルから選択され得る複数のブロックベクトル予測子の候補を生成し、複数のブロックベクトル予測子の候補のうちの特定のブロックベクトル予測子の候補を選択し、複数のブロックベクトル予測子の候補のうちのどのブロックベクトル予測子の候補が選択されたか、およびブロックベクトルと選択されたブロックベクトル予測子の候補との間の差分を示す複数のシンタックス要素を符号化することができる。
【００３２】
現在ブロック用のブロックベクトルの値を復号するために、ビデオデコーダは、相補型プロセスを実施することができる。たとえば、ビデオデコーダは、複数のシンタックス要素を受信し、(すなわち、ビデオエンコーダと同様の技法を使用して)複数のブロックベクトル予測子の候補を生成し、複数のブロックベクトル予測子の候補のうちのどのブロックベクトル予測子の候補がビデオエンコーダによって選択されたかを示す複数のシンタックス要素のうちのシンタックス要素に基づいて、複数のブロックベクトル予測子の候補のうちの特定のブロックベクトル予測子の候補を選択し、特定のブロックベクトル予測子の候補およびブロックベクトルと選択されたブロックベクトル予測子の候補との間の差分を示す1つまたは複数のシンタックス要素に基づいて、現在ブロック用のブロックベクトルの値を決定することができる。このようにして、ビデオコーダは、ブロックベクトルをコーディングするために使用されるデータの量をさらに低減することができる。
【００３３】
いくつかの例では、イントラBCは、インター予測モードと「マージ」される場合がある。たとえば、現在ピクチャは、現在ピクチャのブロックの予測中に使用される参照ピクチャリスト(RPL)に加えられる場合があり、その結果、現在ピクチャ内のブロック用の動きベクトルは、同様に現在ピクチャ内に存在する予測ブロックを指す場合がある。
【００３４】
いくつかの例では、ブロックベクトルは複数の成分を有する場合がある。たとえば、ブロックベクトルは、水平成分(x)および垂直成分(y)を有する場合がある。したがって、いくつかの例では、ビデオエンコーダは、ブロックベクトルのそれぞれの成分の値を集合的に表すそれぞれの複数のシンタックス要素を生成することにより、ブロックベクトルの各それぞれの成分の値を符号化することができる。いくつかの例では、ビデオエンコーダは、複数の成分の各々に対して同じブロックベクトル予測子の候補を使用することができる。いくつかの例では、ビデオエンコーダは、複数の成分の各々に対して異なるブロックベクトル予測子の候補を使用することができる。ビデオデコーダは、相補的な方式を実装して、複数のシンタックス要素をブロックベクトルの成分のそれぞれの値に復号することができる。
【００３５】
Joshiら、「High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 1」、文書JCTVC-R1005_v3、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJCT-VC、第18回会合、札幌、日本、2014年6月30日〜7月9日(以下、「SCC Draft 1」)によって記述されたように、イントラBCはCUとPUの両方のレベルにおいて有効である。PUレベルのイントラBCの場合、2N×NおよびN×2NのPUパーティションが、すべてのCUサイズに対してサポートされる。加えて、CUが最小のCUであるとき、N×NのPUパーティションがサポートされる。イントラBCのPUパーティションサイズは、常に規則的(すなわち、対称)である。
【００３６】
いくつかの例では、ビデオエンコーダは、イントラBCのコンテキストにおいて本開示の柔軟な区分化方式を実装することができる。たとえば、CUをあらかじめ定義された通常のPUに分割するように限定されることとは対照的に、ビデオエンコーダは、各々が調整可能な数のライン(すなわち、行または列)を含む複数のサブPUに、PUを分割することができる。サブPUのうちのそれぞれのサブPUごとに、ビデオエンコーダは、CUと同じピクチャ内に存在するそれぞれの予測子ブロックの位置を示すブロックベクトルの指示をシグナリングすることができる。
【００３７】
サブPUはPUからさらに分割され、この分割はビットストリーム内でシグナリングされる。いくつかの例では、PUモード情報のシグナリングに対する変更は存在しない場合がある(すなわち、PUモード情報はPUが再分割されるかどうかにかかわらず、同じようにシグナリングされる場合がある)。各サブPUは、PUと同様のライン内の関連ベクトルを有する場合がある。いくつかの例では、ブロック動き補償は、SCC Draft 1と同じ場合があり、変更されない場合がある。この柔軟な区分化は、CU内のすべてのPUに対して、またはCU内のいくつかの特定のPUパーティションのみに対して、またはいくつかの特定のCUサイズ、たとえば16×16を超えるCUサイズに対して有効であり得る。別の例では、サブPUは、CUが2PUを有するときのみ有効であり得る。別の代替では、サブPU分割は、2N×NまたはN×2Nに対して有効であり、2N×2N、N×N、またはAMPパーティションに対して有効でないことがあり得る。
【００３８】
ビデオコーダは、PU用のモードをシグナリング/コーディングすることができる。たとえば、ビデオコーダは、適応型区分化が有効か否かを示す、PUレベルにおけるフラグをコーディングすることができる。適応型区分化が有効であるとき、ビデオコーダはサブパーティション情報をコーディングすることができる。有効でないとき、ビデオコーダは、PU内にサブパーティションが存在しないと仮定することができる。いくつかの例では、このモードは、N×NのPUモードに対して無効であり得る(すなわち、ビデオコーダは、PUモードがN×Nであるとき、フラグをコーディングしない場合がある)。いくつかの例では、ビデオコーダは、CU内のPUのすべてがサブパーティション情報を有するか否かを示す、CUレベルにおけるフラグをコーディングすることができる。
【００３９】
いくつかの例では、最大2つのサブPUをPUごとに有効にすることができ、分割情報はビデオコーダによってコーディングされる場合がある。いくつかの例では、PU用の(1、2、3、4、…最大PU内のラインの数などの)サブPUの数は、シーケンスレベル、ピクチャレベル、またはスライスレベル(SPS、PPS、またはスライスヘッダ)においてコーディングすることができ、対応するPU分割情報は、PUごとにコーディングされる場合がある。
【００４０】
いくつかの例では、ビデオコーダは、サブPUの最大数をCUに対して4つに制限することができる。いくつかの例では、ビデオコーダは、PU用の(1、2、3、4、…最大PU内のラインの数などの)サブPUの最大数を、シーケンスレベル、ピクチャレベル、またはスライスレベル(SPS、PPS、またはスライスヘッダ)においてコーディングすることができる。
【００４１】
いくつかの例では、ビデオコーダは他の制限を加えることができる。たとえば、ビデオコーダは、各サブPU内の行(列)の数がN(N=1、2、3、4、5…など)よりも大きいことを要求することができる。
【００４２】
いくつかの例では、サブPU用のブロックベクトルは、(すなわち、ブロックベクトル予測子に基づいて)予測される場合がある。いくつかの例では、サブPUごとのブロックベクトル予測子は、現在PUの予測子と同じ場合がある。いくつかの例では、現在PUの予測子は、SCC Draft 1におけるように導出される場合がある。いくつかの例では、1番目ではないサブPUは、予測子として前のサブPUのすでに復号されたブロックベクトルのいずれかを使用することができる。前のサブPUのすでに復号されたブロックベクトルは、空間(すなわち、隣接)候補の後に候補リストに加えられる場合がある。いくつかの例では、1番目ではないサブPUは、予測子として前のサブPUの前に(最後の)すでにコーディングされたブロックベクトルのみを使用することができる。いくつかの例では、ブロックベクトルのマージは、マージを使用するべきか否かを示すことができるmerge_flag、および候補セットの中でどのマージ候補が使用されるべきかを示すことができるmerge_idxとともに導入することができる。この場合、BVDニーズはコーディングされなくてよい。マージ候補セットは、N個の前にコーディングされたBVのみを使用して構築することができるか、またはHEVCマージにおけるように、空間ネイバーまたは時間ネイバーを含むことができる。1番目のサブPU用の候補セットと1番目ではないサブPU用の候補セットは異なることが起こり得る。たとえば、1番目のサブPUはHEVCマージとして候補セットを使用することができ、1番目ではないサブPUは前にコーディングされたBVのみを使用することができる。
【００４３】
本開示は、それぞれのサブPU用のそれぞれのブロックベクトル差分(BVD)値をコーディングするためのいくつかの技法を提案する。本開示の第1の技法によれば、ビデオコーダは、1つのビンb0をコーディングして、BVDの値が0よりも大きいか否かを示すことができる。次いで、ビデオコーダは、1つのビンb1をコーディングして、BVDの値がNよりも大きいか否かを示すことができる。いくつかの例では、BVDの値がN(N=1、2、3、4、…)よりも大きい場合、ビデオコーダは、次数K(K=0、1、2、3、4、…)を有する指数ゴロム(EG)コードを使用して、余り(BVDマイナスN)をコーディングすることができる。他の例では、ビデオコーダは、Nに基づく長さを有するバイパスコーディングされた固定長(FL)コードを使用して、BVDの値マイナス1をコーディングすることができる。他の例では、ビデオコーダは、切頂コードを使用して、BVDの値マイナス1をコーディングすることができる。いくつかの例では、ビデオコーダは、コンテキストコーディングまたはバイパスコーディングを使用して、ビンb0をコーディングすることができる。同様に、ビデオコーダは、コンテキストコーディングまたはバイパスコーディングを使用して、ビンb1をコーディングすることができる。
【００４４】
本開示の第2の技法によれば、ビデオコーダは、1つのビンb0をコーディングして、BVDの値が0よりも大きいか否かを示すことができる。BVDの値がゼロに等しくない場合、ビデオコーダは、次数K(K=0、1、2、3、4、…)を有するEGコードを使用して、余り(BVDマイナス1)をコーディングすることができる。
【００４５】
本開示の第3の技法によれば、ビデオコーダは、(第1の技法および第2の技法に関して上記で説明されたように)コンテキストコーディングされたビンを使用して、第1のサブPUのBVDをコーディングすることができる。ビデオコーダは、(第1の技法および第2の技法に関して上記で説明されたように)バイパスコーディングされたビンを使用して、残りのサブPUのBVDをコーディングすることができる。
【００４６】
上記で説明されたように、ビデオコーダはサブPU用の分割情報をコーディングすることができる。いくつかの例では、ビデオコーダは、サブPU内のライン(たとえば、行または列)の数をコーディングすることにより、サブPU用の分割情報をコーディングすることができる。いくつかの例では、ビデオコーダは、最後のサブPUを除くPU内のサブPUごとにこの分割情報をコーディングすることができ、その場合、ラインの数は、他のサブPUに割り振られたラインよりも少ないPU内のラインの総数に基づいて推論することができる。
【００４７】
たとえば、現在PUの中に2つのサブPUが存在し、第1のサブPUが3つのラインを含み、第2のサブPUが残りのラインを含むようなパーティションである場合、ビデオコーダは、第1のサブPUが3つのラインを含むことを明示的にシグナリングし、第2のサブPUに含まれるラインの数を明示的にシグナリングしない場合がある。
【００４８】
いくつかの例では、ビデオコーダは、切頂単項コードを使用して、サブPU内のラインの数をコーディングすることができる。そのような例のうちのいくつかでは、切頂単項コードの最大長は、PU内の行の数に基づく場合がある。
【００４９】
別の例では、ビデオコーダは、固定長コードを使用して、サブPU内のラインの数をコーディングすることができる。そのような例のうちのいくつかでは、固定長コードの長さは、PU内の行の数に基づく場合がある。
【００５０】
いくつかの例では、ビデオコーダは、いずれかの方向(水平または垂直)にPU内のサブPUを区分化することができる。いくつかの例では、ビデオコーダは、(たとえば、1ビットのバイパスコーディングされたフラグを使用して)ビットストリーム内のパーティション方向の指示をコーディングすることができる。
【００５１】
いくつかの例では、ビデオコーダは、サブPU分割に対して1つまたは複数の制限を課する場合がある。一例として、ビデオコーダは、PUが分割されていないこと(すなわち、サブPUのうちの1つがゼロの高さまたは幅を有すること)を示さないように、分割を防止することができる。別の例として、ビデオコーダは、PUが垂直方向に配向した場合水平方向に分割されるように、またはPUが水平方向に配向した場合垂直方向に分割されるように、サブPUの区分化を制限することができる。そのような例のうちのいくつかでは、ビデオコーダは、パーティション方向を明示的にコーディングしない場合がある。
【００５２】
いくつかの例では、ビデオコーダは、あらかじめ定義されたシンタックス構造を使用して分割情報をコーディングすることができる。一例として、ビデオコーダは、下記のTable 1(表1)に示されたシンタックス構造を使用して分割情報をコーディングすることができる。Table 1(表1)では、サブPUの数は2のサイズに固定されているが、サブPUの数が別のサイズ(たとえば、1、2、3、4、5、…最大PU内の行/列の数)に固定されている同様の例を示すことができる。
【００５３】
【表１】
2018507616.tif 000003
【００５４】
sub_pu_present_flag:PU内にサブPUが存在するか否かを指定する。sub_pu_present_flagは、2N×2NのPU、AMPのPU、N×NのPUなどのいくつかのPUにシグナリングされない場合があり、フラグは、存在しない場合ゼロ(分割なし)であると推論される。
【００５５】
sub_pu_type:シンタックス要素num_sub_pu_linesが行に対応するか、列に対応するかを指定する。
【００５６】
num_sub_pu_lines:サブPU内の(シンタックスsub_pu_typeに基づく)行/列の数を指定する。
【００５７】
図1は、ビデオデータの予測ユニット(PU)をビデオデータの複数のサブPUに柔軟に分割するための技法を利用することができる、例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されたように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを供給するソースデバイス12を含む。詳細には、ソースデバイス12は、コンピュータ可読媒体16を介して宛先デバイス14にビデオデータを供給する。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのうちのいずれかを備える場合がある。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信向けに装備されている場合がある。
【００５８】
宛先デバイス14は、コンピュータ可読媒体16を介して、復号されるべき符号化ビデオデータを受信することができる。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動させることが可能な任意のタイプの媒体またはデバイスを備える場合がある。一例では、コンピュータ可読媒体16は、ソースデバイス12がリアルタイムで宛先デバイス14に直接符号化ビデオデータを送信することを可能にするために通信媒体を備える場合がある。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信される場合がある。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレス通信媒体または有線通信媒体を備える場合がある。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースのネットワークの一部を形成する場合がある。通信媒体は、ルータ、スイッチ、基地局、または、ソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含む場合がある。
【００５９】
いくつかの例では、符号化データは、出力インターフェース22からストレージデバイス32に出力される場合がある。同様に、符号化データは、入力インターフェースによってストレージデバイス32からアクセスされる場合がある。ストレージデバイス32は、ハードドライブ、Blu-ray（登録商標）ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または、符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散された、または局所的にアクセスされるデータ記憶媒体のうちのいずれかを含む場合がある。さらなる例では、ストレージデバイス32は、ソースデバイス12によって生成された符号化ビデオを記憶することができる、ファイルサーバまたは別の中間ストレージデバイスに対応する場合がある。
【００６０】
宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイス32からの記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバには、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブが含まれる。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を介して、符号化ビデオデータにアクセスすることができる。これには、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せが含まれ得る。ストレージデバイス32からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【００６１】
本開示の技法は、必ずしもワイヤレスの適用例または設定に限定されるとは限らない。技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のうちのいずれかをサポートするビデオコーディングに適用される場合がある。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオ放送、および/またはビデオ電話などの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成される場合がある。
【００６２】
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス31とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、ビデオコーディングにおける変換を実施するための技法を適用するように構成される場合がある。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または配置を含む場合がある。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソース18からビデオデータを受信することができる。同様に、宛先デバイス14は、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースすることができる。
【００６３】
図1の例示的なシステム10は一例にすぎない。ビデオコーディングを実施するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実施されてもよい。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14に送信するためのコード化ビデオデータを生成する、そのようなコーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素およびビデオ復号構成要素を含むように、実質的に対称的な方式で動作することができる。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオ放送、またはビデオ電話のための、ビデオデバイス12、14間の一方向または双方向のビデオ送信をサポートすることができる。
【００６４】
ソースデバイス12のビデオソース18は、ビデオカメラ、前にキャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するビデオ供給インターフェースなどの、ビデオキャプチャデバイスを含む場合がある。さらなる代替として、ビデオソース18は、ソースビデオとしてコンピュータグラフィックスベースのデータを、または、ライブビデオ、アーカイブされたビデオ、およびコンピュータ生成されたビデオの組合せを生成することができる。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成することができる。しかしながら、上述されたように、本開示に記載される技法は、一般に、ビデオコーディングに適用可能であってもよく、ワイヤレス用途および/または有線用途に適用されてもよい。各場合において、キャプチャされた、事前にキャプチャされた、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化される場合がある。次いで、符号化されたビデオ情報は、出力インターフェース22によって、コンピュータ可読媒体16に出力される場合がある。
【００６５】
コンピュータ可読媒体16は、ワイヤレス放送もしくは有線ネットワーク送信などの一時的媒体、または、ハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu-ray（登録商標）ディスク、もしくは他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含む場合がある。いくつかの例では、ネットワークサーバ(図示せず)は、ソースデバイス12から符号化ビデオデータを受信し、たとえば、ネットワーク送信を介して、宛先デバイス14に符号化ビデオデータを供給することができる。同様に、ディスクスタンピング設備などの媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、符号化ビデオデータを含むディスクを製造することができる。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むと理解されてもよい。
【００６６】
宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20によって規定され、ビデオデコーダ30によっても使用される、シンタックス情報を含む場合があり、シンタックス情報は、ブロックおよび他のコード化ユニット、たとえばGOPの特性および/または処理を記述するシンタックス要素を含む。ディスプレイデバイス31は、復号ビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのうちのいずれかを備える場合がある。
【００６７】
ビデオエンコーダ20およびビデオデコーダ30は、各々、該当する場合、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路またはデコーダの回路のうちのいずれかとして実装される場合がある。技法が部分的にソフトウェアに実装されると、デバイスは、適切な非一時的コンピュータ可読媒体内にソフトウェア用の命令を記憶し、1つまたは複数のプロセッサを使用してハードウェア内で命令を実行して、本開示の技法を実施することができる。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれる場合があり、それらのいずれかは、組み合わされたビデオエンコーダ/デコーダ(コーデック)の一部として統合される場合がある。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/または、携帯電話などのワイヤレス通信デバイスを備える場合がある。
【００６８】
図1に示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、各々、オーディオエンコーダおよびオーディオデコーダと一体化される場合があり、共通のデータストリームまたは別個のデータストリームの中のオーディオとビデオの両方の符号化を処理するために、適切なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含む場合がある。該当する場合、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、または、ユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠することができる。
【００６９】
本開示は、全体的に、ビデオデコーダ30などの別のデバイスに特定の情報を「シグナリング」するビデオエンコーダ20に言及する場合がある。しかしながら、ビデオエンコーダ20は、特定のシンタックス要素をビデオデータの様々な符号化部分と関連付けることにより、情報をシグナリングできることが理解されるべきである。すなわち、ビデオエンコーダ20は、ビデオデータの様々な符号化部分のヘッダに特定のシンタックス要素を格納することにより、データを「シグナリング」することができる。場合によっては、そのようなシンタックス要素は、ビデオデコーダ30によって受信および復号される前に、符号化および記憶(たとえば、ストレージデバイス32に記憶)される場合がある。したがって、「シグナリング」という用語は、一般に、そのような通信がリアルタイムもしくはほぼリアルタイムで生じるか、ある時間の期間にわたって生じるかにかかわらず、符号化の時点で、媒体にシンタックス要素を記憶するときに生じてもよいような、圧縮されたビデオデータを復号するためのシンタックスまたは他のデータの通信を指す場合があり、シンタックス要素は、次いで、この媒体に記憶された後の任意の時間に、復号デバイスによって取り出される場合がある。
【００７０】
ビデオエンコーダ20およびビデオデコーダ30は、HEVC規格などのビデオ圧縮規格に従って動作することができる。本開示の技法は、いかなる特定のコーディング規格にも限定されないが、技法は、HEVC規格に関連する場合がある。HEVCの規格化作業は、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスのモデルに基づいている。HMは、たとえば、ITU-T H.264/AVCによる既存のデバイスに対して、ビデオコーディングデバイスのいくつかの追加機能を仮定する。たとえば、H.264は、9個のイントラ予測符号化モードを規定するが、HMは、35個ものイントラ予測符号化モードを規定することができる。
【００７１】
一般に、HMの作業モデルは、ビデオピクチャがルーマサンプルとクロマサンプルの両方を含むツリーブロックまたは最大コーディングユニット(LCU)のシーケンスに分割され得ることを記述している。ビットストリーム内のシンタックスデータは、ピクセル数の観点から最大コーディングユニットであるLCU用のサイズを定義することができる。スライスは、いくつかの連続するコーディングツリーユニット(CTU)を含む。CTUの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの2つの対応するコーディングツリーブロックと、コーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える場合がある。白黒ピクチャ、または3つの別個の色平面を有するピクチャでは、CTUは、単一のコーディングツリーブロックと、コーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える場合がある。
【００７２】
ビデオピクチャは、1つまたは複数のスライスに区分化される場合がある。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割される場合がある。一般に、4分木データ構造はCU当たり1つのノードを含み、ルートノードはツリーブロックに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。CUは、ルーマサンプルアレイ、Cbサンプルアレイ、およびCrサンプルアレイを有するピクチャの、ルーマサンプルのコーディングブロック、およびクロマサンプルの2つの対応するコーディングブロック、ならびにコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備える場合がある。白黒ピクチャ、または3つの別個の色平面を有するピクチャでは、CUは、単一のコーディングブロックと、コーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える場合がある。コーディングブロックは、サンプルのN×Nブロックである。
【００７３】
4分木データ構造の各ノードは、対応するCUにシンタックスデータを提供することができる。たとえば、4分木内のノードは、ノードに対応するCUがサブCUに分割されているかどうかを示す分割フラグを含む場合がある。CUのためのシンタックス要素は再帰的に定義される場合があり、CUがサブCUに分割されているかどうかに依存する場合がある。CUがそれ以上分割されない場合、それはリーフCUと呼ばれる。本開示では、リーフCUの4つのサブCUはまた、元のリーフCUの明示的な分割が存在しない場合でも、リーフCUと呼ばれる。たとえば、16×16サイズのCUがそれ以上分割されない場合、4つの8×8サブCUもリーフCUと呼ばれるが、16×16CUは決して分割されない。
【００７４】
HEVCにおけるCUは、CUがサイズの区別をもたないことを除いて、H.264規格のマクロブロックの目的と同様の目的を有する。たとえば、ツリーブロックは、4つの(サブCUとも呼ばれる)子ノードに分割される場合があり、各子ノードは、次に親ノードになり、別の4つの子ノードに分割される場合がある。最後の、4分木のリーフノードと呼ばれる分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コード化ビットストリームと関連付けられたシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割され得る最大回数を規定することができ、コーディングノードの最小サイズを規定することもできる。したがって、ビットストリームは、最小コーディングユニット(SCU)を規定することもできる。本開示は、HEVCのコンテキストにおけるCU、PU、もしくはTU、または他の規格のコンテキストにおける同様のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそれらのサブブロック)のうちのいずれかを指すために、「ブロック」という用語を使用する。
【００７５】
CUは、コーディングノードと、コーディングノードに関連付けられた予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。CUのサイズは、8×8ピクセルから、最大64×64ピクセルまたはそれ以上のツリーブロックのサイズまでの範囲であり得る。各CUは、1つまたは複数のPUおよび1つまたは複数のTUを含む場合がある。
【００７６】
一般に、PUは、対応するCUのすべてまたは一部分に対応する空間領域を表し、PUのための参照サンプルを取り出すためのデータを含む場合がある。その上、PUは予測に関連するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUに関するデータは、PUに対応するTUに関するイントラ予測モードを記述するデータを含む場合がある、残差4分木(RQT)に含まれる場合がある。別の例として、PUがインターモード符号化されるとき、PUは、PUに関する1つまたは複数の動きベクトルを定義するデータを含む場合がある。予測ブロックは、同じ予測が適用されるサンプルの長方形(すなわち、正方形または非正方形)ブロックであり得る。CUのPUは、ピクチャのルーマサンプルの予測ブロック、およびクロマサンプルの2つの対応する予測ブロック、ならびに予測ブロックサンプルを予測するために使用されるシンタックス構造を備える場合がある。白黒ピクチャ、または3つの別個の色平面を有するピクチャでは、PUは、単一の予測ブロックと、予測ブロックサンプルを予測するために使用されるシンタックス構造とを備える場合がある。
【００７７】
TUは、変換、たとえば、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または残差ビデオデータへの概念的に同様の変換の適用に続く変換領域における係数を含む場合がある。残差データは、符号化されていないピクチャのピクセル値と、PUに対応する予測値との間のピクセル差分、たとえば、元の符号化されていないピクセルのルーマ値およびクロマ値の元の予測されていない値と、予測ピクセルと間の差分に対応する場合がある。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、TUを変換して、CUのための変換係数を生成することができる。変換ブロックは、同じ変換が適用されるサンプルの長方形ブロックであり得る。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備える場合がある。白黒ピクチャ、または3つの別個の色平面を有するピクチャでは、TUは、単一の変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備える場合がある。
【００７８】
変換に続いて、ビデオエンコーダ20は、変換係数の量子化を実施することができる。量子化は、一般に、係数を表すために使用されるデータの量をできる限り低減するために変換係数が量子化され、さらなる圧縮を提供するプロセスを指す。量子化プロセスは、係数の一部またはすべてに関連付けられたビット深度を低減することができる。たとえば、nビット値は、量子化の間にmビット値に丸められる場合があり、ここで、nはmよりも大きい。
【００７９】
ビデオエンコーダ20は、量子化変換係数を含む2次元行列から1次元ベクトルを生成して、変換係数を走査することができる。走査は、アレイの前方により高いエネルギー(したがって、より低い周波数)の係数を配置し、アレイの後方により低いエネルギー(したがって、より高い周波数)の係数を配置するように設計される場合がある。いくつかの例では、ビデオエンコーダ20は、あらかじめ定義された走査順序を利用して、エントロピー符号化され得る直列化ベクトルを生成するために量子化変換係数を走査することができる。他の例では、ビデオエンコーダ20は、適応走査を実施することができる。
【００８０】
量子化変換係数を走査して1次元ベクトルを形成した後、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースのコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分化エントロピー(PIPE)コーディング、または別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化することができる。ビデオエンコーダ20は、ビデオデータを復号する際に、ビデオデコーダ30によって使用するための符号化ビデオデータに関連付けられたシンタックス要素をエントロピー符号化することもできる。
【００８１】
ビデオエンコーダ20は、さらに、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびピクチャのグループ(GOP)ベースのシンタックスデータなどのシンタックスデータを、たとえば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダ内で、ビデオデコーダ30に送ることができる。GOPシンタックスデータは、それぞれのGOP内のピクチャの数を記述することができ、ピクチャシンタックスデータは、対応するピクチャを符号化するために使用される符号化/予測モードを示すことができる。
【００８２】
ビデオデコーダ30は、コード化ビデオデータを取得すると、ビデオエンコーダ20に関して記載された符号化パスと全体的に相反する復号パスを実施することができる。たとえば、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化ビデオビットストリームを取得することができる。ビデオデコーダ30は、ビットストリームに含まれたデータを使用して、元の符号化されていないビデオシーケンスを復元することができる。
【００８３】
ビデオエンコーダ20およびビデオデコーダ30は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実施することができる。イントラコーディングは、所与のビデオピクチャ内のビデオにおける空間冗長性を低減または除去するために、空間予測に依存する。インターコーディングは、ビデオシーケンスの隣接ピクチャ内のビデオにおける時間冗長性を低減もしくは除去するために、または、他のビューにおけるビデオによる冗長性を低減もしくは除去するために、時間予測またはビュー間予測に依存する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのうちのいずれか(すなわち、DC、プレーナ、および複数の角度モード)を指す場合がある。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのうちのいずれかを指す場合がある。
【００８４】
リモートデスクトップ、リモートゲーム、ワイヤレスディスプレイ、車載インフォテインメント、クラウドコンピューティングなどの多くの用途は、日々の生活の中で日常的になってきている。これらの用途におけるビデオコンテンツは、通常、自然なコンテンツ、テキスト、人工グラフィックスなどの組合せである。テキストおよび人工グラフィックスでは、コンテンツの領域は、(いくつか例を挙げると、文字、アイコン、およびシンボルなどの)繰返しパターンを含む場合がある。イントラブロックコピーイング(BC)は、たとえば、Pangら、「Non-RCE3: Intra Motion Compensation with 2-D MVs」、文書JCTVC-N0256、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJCT-VC、第14回会合、ウィーン、オーストリア、2013年7月25日〜8月2日(以下、「JCTVC-N0256」)に記述されたように、この種類の冗長性の除去を可能にし、それにより、イントラピクチャコーディング効率を潜在的に改善する技法である。最近のJCT-VC会合において、イントラBCプロセスは、(その後HEVCのスクリーンコンテンツコーディング(SCC)拡張に進展した)HEVC範囲拡張規格において採用された。
【００８５】
図2の例においてより詳細に示されたように、イントラBCを使用してコーディングされた現在コーディングユニット(CU)(たとえば、図4の現在ビデオブロック102)の場合、ビデオエンコーダ20は、同じピクチャ内の探索領域(たとえば、図4の探索領域108)から、(「予測ブロック」と呼ばれる場合もある)予測信号(たとえば、図4の予測ブロック104)を取得することができる。場合によっては、ビデオエンコーダ20は、現在CUから変位された予測ブロックの位置を示す、ベクトル、たとえば、図4のブロックベクトル106を符号化することができる。いくつかの例では、ブロックベクトルは、現在CUの左上隅の位置に対する予測ブロックの左上隅の位置を示すことができる。ブロックベクトルは、場合によっては、オフセットベクトル、変位ベクトル、または動きベクトルと呼ばれる場合もある。ビデオエンコーダ20は、ブロックベクトルによって識別された予測ブロックを使用して現在ブロックを符号化することができる。たとえば、ビデオエンコーダ20は、予測ブロックと現在ブロックとの間のピクセル差分を表す残差ブロックを決定し、予測ブロックを識別する符号化ブロックベクトルとともに、決定された残差ブロックを符号化することができる。
【００８６】
ビデオデコーダ30も、ビデオエンコーダ20に関して上述された技法と全体的に相反する技法を使用するように構成される場合がある。この点において、ビデオデコーダ30は、イントラBCプロセスを実施して、ブロックベクトルによって識別された予測ブロックを使用してピクチャのコード化現在ブロックを復号するように構成される場合がある。たとえば、ビデオデコーダ30は、予測ブロックと現在ブロックとの間のピクセル差分を表す残差ブロックに基づいて、現在ブロックを生成することができる。
【００８７】
上記で説明されたように、ビデオエンコーダ20は、コーディングユニット(CU)を予測ユニット(PU)に区分化することができる。一般に、CUをPUに区分化すると、ビデオエンコーダ20がより良い予測を取得し、残差値を最小化することが可能になり、そのことは、ビットストリームのサイズを低減することができる。しかしながら、いくつかの例では、ビデオエンコーダ20がビデオデータのCUを分割するとき、PUサイズのあらかじめ定義されたセットに限定されることは、望ましくない場合がある。たとえば、コンテキスト内の急激な変化を表すスクリーンコンテンツのシーケンスを符号化するとき、固定されたPUパーティションサイズは効率的でない場合がある。
【００８８】
本開示の1つまたは複数の技法によれば、固定サイズのPUまたはラインベースのPUに限定されること(たとえば、SDIP)とは対照的に、ビデオエンコーダ20は、各々がサンプルまたはピクセルの調整可能な数のライン(すなわち、行または列)を含む複数のサブPUにPUが分割され得る、柔軟な区分化方式を実装することができる。一例として、ビデオエンコーダ20は、32×32のCUを4つの16×16のPU(たとえば、N×N)に分割し、16×16のPUのうちの少なくとも1つを1つの3×16のサブPUおよび1つの13×16のサブPUにさらに分割することができる。別の例として、ビデオエンコーダ20は、16×16のCUを1つの12×16のPUおよび1つの4×16のPU(たとえば、nR×2N)に分割し、12×16のPUを1つの5×16のサブPUおよび1つの11×16のサブPUにさらに分割することができる。また別の例として、ビデオエンコーダ20は、16×16のCUを1つの16×12のPUおよび1つの16×4のPU(たとえば、2N×nD)に分割し、16×4のPUを1つの16×1のサブPUおよび1つの16×3のサブPUにさらに分割することができる。このようにして、ビデオエンコーダ20は、より良い予測を取得し、残差値を最小化することができる。
【００８９】
いくつかの例では、ビデオエンコーダ20は、ビデオデータの現在CUの現在PUの複数のサブPUのうちの1つまたは複数の中にあるサンプル(またはピクセル)の連続するラインの数を示すシンタックス要素を符号化することにより、PU分割情報をシグナリングすることができる。一例として、ビデオエンコーダ20は、第1のサブPUが現在CUの5つの連続するラインを含むことを示す第1のシンタックス要素、および第2のサブPUが現在CUの3つの連続するラインを含むことを示す第2のシンタックス要素を符号化することができる。いくつかの例では、ビデオエンコーダ20は、それぞれのサブPUごとに、それぞれのサブPUの中にあるラインのそれぞれの数を示す別個のシンタックス要素を符号化することができる。いくつかの例では、ビデオエンコーダ20は、現在PUの最後のサブPUを除く現在PUのそれぞれのサブPUごとに、それぞれのサブPUの中にあるラインのそれぞれの数を示す別個のシンタックス要素を符号化することができる。そのような例では、現在PUの最後のサブPUに含まれるラインの数は、現在PUに含まれるラインの総数および現在PUの他のサブPUに含まれるラインの総数に基づいて、推論される場合がある。
【００９０】
いくつかの例では、ビデオエンコーダ20は、現在PUが複数のサブPUに水平方向または垂直方向のどちらで分割されているかの指示を符号化することができる。現在PUが水平方向に分割されている場合、ビデオエンコーダ20は、サブPU内のラインがビデオデータの行であると判断することができる。同様に、現在PUが垂直方向に分割されている場合、ビデオエンコーダ20は、サブPU内のラインがビデオデータの列であると判断することができる。
【００９１】
いくつかの例では、ビデオデータの現在CUの現在PUの複数のサブPUのうちの1つまたは複数の中にあるラインの数を示す、ビデオエンコーダ20によって符号化されたシンタックス要素は、ルーマサンプルのラインの数を示す場合がある。クロマピクセルの数がルーマサンプルの数と同じである場合(すなわち、4:4:4の輪郭)などのいくつかの例では、各サブPUは、同一の数のクロマサンプルのラインおよびルーマサンプルのラインを含む場合がある。クロマピクセルの数がルーマサンプルの数と異なる場合(すなわち、4:4:4ではない輪郭)などのいくつかの例では、各サブPUは、異なる数のクロマサンプルのラインおよびルーマサンプルのラインを含む場合がある。たとえば、4:2:2の輪郭では、ビデオエンコーダ20は、16×16のPUを、ルーマサンプルの4ラインおよびクロマサンプルの2ラインを含む4×16のサブPU、ならびに各々がルーマサンプルの6ラインおよびクロマサンプルの3ラインを含む2つの6×16のサブPUに分割し、第1のサブPUがルーマサンプルの4ラインを含むことを示す第1のシンタックス要素、第2のサブPUがルーマサンプルの6ラインを含むことを示す第2のシンタックス要素、および16×16のPUがサブPUに垂直方向に分割されていることを示す第3のシンタックス要素を符号化することができる。
【００９２】
ビデオエンコーダ20は、複数のサブPUのサブPUごとに予測情報をシグナリングすることができる。たとえば、ビデオエンコーダ20は、複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUとそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルの指示をシグナリングすることができる。いくつかの例では、ビデオエンコーダ20は、複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUのピクセルとそれぞれの予測子ブロックとの間のピクセル差分を表すそれぞれの残差ブロックをシグナリングすることができる。
【００９３】
いくつかの例では、ビデオエンコーダ20は、特定のPUに柔軟な区分化方式が適用されるか否かの指示をシグナリングすることができる。たとえば、ビデオエンコーダ20は、現在PUが複数のサブPUに分割されているか否かを示すシンタックス要素をシグナリングすることができる。柔軟な区分化が有効である場合、ビデオエンコーダ20は、サブパーティション情報(たとえば、PU分割情報および予測情報)をシグナリングすることができる。
【００９４】
いずれの場合も、ビデオデコーダ30は、ビデオエンコーダ20に対する相補型プロセスを実装することができる。たとえば、ビデオデコーダ30は、各々が調整可能な数のライン(すなわち、行または列)を含む複数のサブPUにPUが分割され得る、柔軟な区分化方式を実装することができる。
【００９５】
いくつかの例では、ビデオデコーダ30は、PU分割情報に基づいて、現在PUを複数のサブPUに分割することができる。たとえば、ビデオデコーダ30は、ビデオデータの現在CUの現在PUの複数のサブPUのうちの1つまたは複数の中にあるラインの数を示すシンタックス要素を復号することができる。一例として、ビデオデコーダ30は、第1のサブPUが現在CUの5ラインを含むことを示す第1のシンタックス要素を復号し、第2のサブPUが現在CUの3ラインを含むことを示す第2のシンタックス要素を復号することができる。いくつかの例では、ビデオデコーダ30は、それぞれのサブPUごとに、それぞれのサブPUの中にあるラインのそれぞれの数を示す別個のシンタックス要素を復号することができる。いくつかの例では、ビデオデコーダ30は、現在PUの最後のサブPUを除く現在PUのそれぞれのサブPUごとに、それぞれのサブPUの中にあるラインのそれぞれの数を示す別個のシンタックス要素を復号することができる。そのような例では、ビデオデコーダ30は、現在PUに含まれるラインの総数および現在PUの他のサブPUに含まれるラインの総数に基づいて、現在PUの最後のサブPUに含まれるラインの数を推論することができる。
【００９６】
いくつかの例では、ビデオデコーダ30は、現在PUが複数のサブPUに水平方向または垂直方向のどちらで分割されているかの指示を復号することができる。現在PUが水平方向に分割されている場合、ビデオデコーダ30は、サブPU内のラインがビデオデータの行であると判断することができる。同様に、現在PUが垂直方向に分割されている場合、ビデオデコーダ30は、サブPU内のラインがビデオデータの列であると判断することができる。
【００９７】
ビデオデコーダ30は、複数のサブPUのサブPUごとに予測情報を受信することができる。たとえば、ビデオデコーダ30は、複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUとそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルの指示を復号することができる。いくつかの例では、ビデオデコーダ30は、複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUのピクセルとそれぞれの予測子ブロックとの間のピクセル差分を表すそれぞれの残差ブロックを復号することができる。
【００９８】
いくつかの例では、ビデオデコーダ30は、特定のPUに柔軟な区分化方式が適用されるか否かの指示を復号することができる。たとえば、ビデオデコーダ30は、現在PUが複数のサブPUに分割されているか否かを示すシンタックス要素を復号することができる。柔軟な区分化が有効である場合、ビデオデコーダ30は、サブパーティション情報(たとえば、PU分割情報および予測情報)を復号することができる。
【００９９】
図2は、本開示に記載される技法を実装することができる、例示的なビデオエンコーダを示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実施することができる。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオにおける空間冗長性を低減または除去するために空間予測に依存する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオにおける冗長性を低減または除去するために、時間予測またはビュー間予測に依存する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのうちのいずれかを指す場合がある。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのうちのいずれかを指す場合がある。ビデオエンコーダ20は、本明細書に記載されたように、同じピクチャ内のビデオデータの予測ブロックから、ビデオデータのブロックのイントラ予測用のモード、たとえば、イントラBCモードを利用するように構成される場合もある。
【０１００】
図2の例では、ビデオエンコーダ20は、区分化ユニット35と、予測処理ユニット41と、復元領域メモリ64と、フィルタ処理ユニット66と、参照ピクチャメモリ68と、加算器50と、変換処理ユニット52と、量子化処理ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測処理ユニット46と、イントラブロックコピー(イントラBC)ユニット48とを含む。ビデオブロック復元のために、ビデオエンコーダ20はまた、逆量子化処理ユニット58と、逆変換処理ユニット60と、加算器62とを含む。
【０１０１】
様々な例では、ビデオエンコーダ20のユニットは、本開示の技法を実施するように仕事を課せられる場合がある。また、いくつかの例では、本開示の技法は、ビデオエンコーダ20のユニットのうちの1つまたは複数の間で分配される場合がある。たとえば、イントラBCユニット48は、本開示の技法を単独で実施するか、または、動き推定ユニット42、動き補償ユニット44、イントラ予測処理ユニット46、復元領域メモリ64、およびエントロピー符号化ユニット56などの、ビデオエンコーダの他のユニットとの組合せで実施することができる。
【０１０２】
図2に示されたように、ビデオエンコーダ20はビデオデータを受信し、区分化ユニット35はデータをビデオブロックに区分化する。この区分化は、スライス、タイル、または他のより大きい単位への区分化、ならびに、たとえば、LCUおよびCUの4分木構造によるビデオブロック区分化を含む場合もある。ビデオエンコーダ20は、全体的に、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロック(および、場合によっては、タイルと呼ばれるビデオブロックのセット)に分割される場合がある。
【０１０３】
予測処理ユニット41は、レートひずみ結果(たとえば、コーディングビットレートおよびひずみのレベル)に基づいて、現在ビデオブロックのための、複数のイントラコーディングモードのうちの1つ、複数のインターコーディングモードのうちの1つ、またはイントラBCモードなどの、複数の可能なコーディングモードのうちの1つを選択することができる。予測処理ユニット41は、たとえば、参照ピクチャとして、残差ブロックデータを生成するために加算器50に、他のビデオブロックの予測において使用するための現在ブロックを復元するために加算器62に、得られた予測ブロックを供給することができる。
【０１０４】
コーディングモードを選択することに加えて、予測処理ユニット41は、区分化ユニット35と連携して、ビデオデータのブロックをサブブロックに区分化することができる。たとえば、区分化ユニット35は、最初にフレームまたはスライスをLCUに区分化し、レートひずみ分析(たとえば、レートひずみ最適化)に基づいて、LCUの各々をCUに区分化することができる。
【０１０５】
予測処理ユニット41内のイントラ予測処理ユニット46は、空間圧縮を実現するために、コーディングされるべき現在ブロックと同じフレームまたはスライス内の1つまたは複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コーディングを実施することができる。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、たとえば、時間圧縮を実現するために、1つまたは複数の参照ピクチャの中の1つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実施する。
【０１０６】
動き推定ユニット42は、ビデオシーケンス用の所定のパターンに従って、ビデオスライスのためのインター予測モードを決定するように構成される場合がある。動き推定ユニット42および動き補償ユニット44は高度に集積される場合があるが、概念的な目的のために別々に示されている。動き推定ユニット42によって実施される動き推定は、ビデオブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示すことができる。同様に、本開示の技法によるイントラBCに使用されるブロックベクトルは、同じフレームまたはピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示す。イントラBCユニット48は、インター予測のための動き推定ユニット42による動きベクトルの特定と同様の方式で、イントラBCコーディングのためのベクトル、たとえばブロックベクトルを特定することができるか、または動き推定ユニット42を利用してブロックベクトルを特定することができる。
【０１０７】
たとえば、インター予測またはイントラBC予測のために動き推定ユニット42および/またはイントラBCユニットによって識別された予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUと厳密に一致することが判明したブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ68に記憶された参照ピクチャのサブ整数ピクセル位置、または復元領域メモリ64記憶された現在ピクチャの復元領域についての値を計算することができる。たとえば、ビデオエンコーダ20は、参照ピクチャの4分の1ピクセル位置、8分の1ピクセル位置、または他の分数ピクセル位置の値を補間することができる。したがって、動き推定ユニット42および/またはイントラBCユニット48は、フルピクセル位置および分数ピクセル位置に対する予測ブロックの探索を実施し、分数ピクセル精度でベクトルを出力することができる。
【０１０８】
動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することにより、インターコーディングされたスライス内のビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、その各々が参照ピクチャメモリ68に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0もしくはRefPicList0)または第2の参照ピクチャリスト(リスト1もしくはRefPicList1)から選択される場合がある。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44に送る。
【０１０９】
動き補償ユニット44によって実施される動き補償は、場合によっては、サブピクセル精度への補間を実施する、動き推定によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴う場合がある。現在ビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうちの1つにおいて動きベクトルが指す予測ブロックの位置を特定することができる。
【０１１０】
いくつかの例では、イントラBCユニット48は、動き推定ユニット42および動き補償ユニット44に関して上述された方式と同様の方式でベクトルを生成し、予測ブロックをフェッチすることができるが、予測ブロックは現在ブロックと同じピクチャまたはフレームの中にあり、ベクトルは動きベクトルの対語としてブロックベクトルと呼ばれる。他の例では、イントラBCユニット48は、動き推定ユニット42および動き補償ユニット44を使用して、全体的または部分的に、本明細書に記載された技法によるイントラBC予測のためのそのような機能を実施することができる。いずれの場合も、イントラBCの場合、予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロックと厳密に一致することが判明したブロックの場合があり、ブロックの識別は、サブ整数ピクセル位置についての値の計算を含む場合がある。
【０１１１】
いずれの場合も、ビデオエンコーダ20は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することにより、残差ビデオブロックを形成することができる。ピクセル差分値はブロックのための残差データを形成し、ルーマ成分差とクロマ成分差の両方を含む場合がある。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表す。イントラBCユニット48および/または動き補償ユニット44は、ビデオスライスのビデオブロックを復号する際に、ビデオデコーダ30などのビデオデコーダによって使用するための、ビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成することもできる。シンタックス要素には、たとえば、予測ブロックを識別するために使用されるベクトルを定義するシンタックス要素、予測モードを示す任意のフラグ、または本開示の技法に関して記載された任意の他のシンタックスが含まれ得る。
【０１１２】
イントラ予測処理ユニット46は、上述されたように、動き推定ユニット42および動き補償ユニット44によって実施されるインター予測、またはイントラBCユニット48によって実施されるイントラBC予測の代替として、現在ブロックをイントラ予測することができる。詳細には、イントラ予測処理ユニット46は、現在ブロックを符号化するために使用するイントラ予測モードを決定することができる。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別々の符号化パスの間、様々なイントラ予測モードを使用して現在ビデオブロックを符号化することができ、イントラ予測処理ユニット46(または、いくつかの例では、予測処理ユニット41)は、テストされたモードから使用する適切なイントラ予測モードを選択することができる。たとえば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードに対してレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中から最良のレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、一般に、符号化ブロックと、符号化ブロックを生成するために符号化された、元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックのための最良のレートひずみ値を表すかを判定するために、様々な符号化ブロックに関するひずみおよびレートから比を計算することができる。
【０１１３】
いずれの場合も、ブロックのためのイントラ予測モードを選択した後、イントラ予測処理ユニット46は、エントロピー符号化ユニット56にブロックのための選択されたイントラ予測モードを示す情報を提供することができる。エントロピー符号化ユニット56は、本開示の技法に従って選択されたイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ20は、(コードワードマッピングテーブルとも呼ばれる)複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブルを含む場合がある送信されたビットストリーム構成データの中に、コンテキストの各々のために使用する、様々なブロックのための符号化コンテキストの定義と、最も可能性の高いイントラ予測モードの指示と、イントラ予測モードインデックステーブルと、修正されたイントラ予測モードインデックステーブルとを含める場合がある。
【０１１４】
予測処理ユニット41が、インター予測、イントラ予測、またはイントラBC予測を介して、現在ビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ20は、たとえば、加算器50を介して、現在ビデオブロックから予測ブロックを減算することにより、残差ビデオブロックを形成する。残差ブロックの中の残差ビデオデータは、1つまたは複数のTUに含められ、変換処理ユニット52に適用される場合がある。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換することができる。
【０１１５】
変換処理ユニット52は、得られた変換係数を量子化処理ユニット54に送ることができる。量子化処理ユニット54は、変換係数を量子化してビットレートをさらに低減する。量子化プロセスは、係数の一部またはすべてに関連付けられたビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって修正される場合がある。いくつかの例では、量子化処理ユニット54は、次いで、量子化変換係数を含む行列の走査を実施することができる。代替として、エントロピー符号化ユニット56が走査を実施することができる。
【０１１６】
量子化に続いて、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースのコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分化エントロピー(PIPE)コーディング、または別のエントロピー符号化の方法もしくは技法を実施することができる。エントロピー符号化ユニット56は、イントラBCモードによる予測のための、ベクトル成分、フラグ、および他のシンタックス要素を含む、シンタックス要素をバイナリ化および符号化するための、本明細書に記載された技法のうちのいずれかを実施することができる。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化ビデオビットストリームは、ビデオデコーダ30に送信されるか、または、ビデオデコーダ30による後の送信もしくは検索のためにアーカイブされる場合がある。
【０１１７】
逆量子化処理ユニット58および逆変換処理ユニット60は、それぞれ、逆量子化および逆変換を適用して、他のビデオブロックの予測のための参照ブロックとして後で使用するための、ピクセル領域における残差ブロックを復元する。動き補償ユニット44および/またはイントラBCユニット48は、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することにより、参照ブロックを計算することができる。動き補償ユニット44および/またはイントラBCユニット48は、復元残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算することもできる。
【０１１８】
加算器62は、動き補償ユニット44および/またはイントラBCユニット48によって生成された、動き補償された予測ブロックに復元残差ブロックを加算して、復元ビデオブロックを生成する。復元領域メモリ64は、本明細書に記載されたように、ビデオエンコーダ20、たとえばイントラBCユニット48による現在ビデオブロックのイントラBC用の復元領域の定義に従って、復元ビデオブロックを記憶する。復元領域メモリ64は、フィルタ処理ユニット66によってループ内フィルタリングされていない復元ビデオブロックを記憶することができる。加算器62は、復元領域メモリ64と同時にフィルタ処理ユニット66に復元ビデオブロックを供給することができ、または復元領域メモリ64は、イントラBCのための復元領域がもはや必要とされないとき、フィルタ処理ユニット66に復元ビデオブロックを解放することができる。いずれの場合も、イントラBCユニット48は、現在ビデオブロックと同じピクチャ内の予測ビデオブロックを求めて復元領域メモリ64内の復元ビデオブロックを探索して、現在ビデオブロックを予測することができる。
【０１１９】
フィルタ処理ユニット66は、復元ビデオブロックに対してループ内フィルタリングを実施することができる。ループ内フィルタリングは、ブロック境界をフィルタリングして復元ビデオからブロッキネスアーティファクトを除去するデブロックフィルタリングを含む場合がある。ループ内フィルタリングは、復元ビデオを改善するSAOフィルタリングを含む場合もある。そのうちの一部がループ内フィルタリングされ得る復元ブロックは、参照ピクチャとして参照ピクチャメモリ68に記憶される場合がある。参照ピクチャは、後続のビデオフレームまたはピクチャの中のブロックをインター予測するために予測ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用され得る復元ブロックを含む場合がある。
【０１２０】
いくつかの例では、エントロピー符号化ユニット56は、HEVCにおける動きベクトル差分(MVD)コーディング方法を使用して、ブロックベクトルの値を符号化することができる。いくつかの例では、HEVCにおけるMVDコーディング方法を使用してブロックベクトルの値を符号化することとは対照的に、エントロピー符号化ユニット56は、ブロックベクトルの特性に調整された符号化方法を使用して、ブロックベクトルの値を符号化することができる。このようにして、本開示の技法は、ブロックベクトルの値を符号化するために使用されるシンタックス要素の数を低減することができ、そのことはコーディング効率を改善することができる。
【０１２１】
ブロックベクトルは、水平成分および垂直成分を含む2次元ブロックベクトルの場合があるか、またはブロックベクトルは、水平成分もしくは垂直成分を含む1次元ブロックベクトルの場合がある。水平成分は、ビデオデータの予測ブロックとビデオデータの現在ブロックとの間の水平変位を表すことができる。垂直成分は、ビデオデータの予測ブロックとビデオデータの現在ブロックとの間の垂直変位を表すことができる。ビデオデータの予測ブロックは、ビデオデータの現在ブロックと同じフレーム内にあり得る。イントラBCユニット48は、水平成分および垂直成分のうちの1つまたは両方のための複数のシンタックス要素を出力することができる。
【０１２２】
いくつかの例では、ブロックベクトルの値を表すためにシンタックス要素を符号化することとは対照的に、エントロピー符号化ユニット56は、ブロックベクトルの値とブロックベクトル予測子との間の差分を表すためにシンタックス要素を符号化することができる。いくつかの例では、ブロックベクトル予測子は、(すなわち、コーディング順序において)前にコーディングされたブロックベクトルであり得る。たとえば、現在ブロック用のブロックベクトルの値を符号化するために、イントラBCユニット48は、ブロックベクトルと前にコーディングされたブロックベクトルとの間の差分を特定し、ブロックベクトルと前にコーディングされたブロックベクトルとの間の差分を示す1つまたは複数のシンタックス要素をエントロピー符号化ユニット56に符号化させることができる。このようにして、イントラBCユニット48は、ブロックベクトルを符号化するために使用されるデータの量を低減することができる。
【０１２３】
いくつかの例では、イントラBCユニット48は、複数のブロックベクトル予測子の候補から特定のブロックベクトル予測子の候補を選択することができる。たとえば、イントラBCユニット48は、現在ブロック用のブロックベクトルと最も良く一致する複数のブロックベクトル予測子の候補からのブロックベクトル予測子の候補として、特定のブロックベクトル予測子の候補を選択することができる。たとえば、イントラBCユニット48は、複数のブロックベクトル予測子の候補からのどのブロックベクトル予測子の候補が、現在ブロック用のブロックベクトルの値に最も近い値を有するかを判定することができる。
【０１２４】
上記で説明されたように、いくつかの例では、イントラBCはインター予測モードと「マージ」される場合がある。そのような例では、イントラBCユニット48によって実施されるものとして記載された動作のうちの1つまたは複数は、動き推定ユニット42および/または動き補償ユニット44などの、ビデオエンコーダ20の1つまたは複数の他の構成要素によって実施される場合がある。
【０１２５】
上記で説明されたように、予測処理ユニット41および/または区分化ユニット35は、ビデオデータのブロックをサブブロックに区分化することができる。たとえば、予測処理ユニット41および/または区分化ユニット35は、ビデオデータのピクチャをLCUおよびCUに区分化することができ、CUをPUにさらに区分化することができる。いくつかの例では、予測処理ユニット41および/または区分化ユニット35がビデオデータのCUを分割するとき、PUサイズのあらかじめ定義されたセットに限定されることは、望ましくない場合がある。たとえば、コンテキスト内の急激な変化を表すスクリーンコンテンツのシーケンスを符号化するとき、固定されたPUパーティションサイズは効率的でない場合がある。
【０１２６】
本開示の1つまたは複数の技法によれば、固定サイズのPUまたはラインベースのPUに限定されること(たとえば、SDIP)とは対照的に、処理ユニット41および/または区分化ユニット35は、各々が調整可能な数のライン(すなわち、行または列)を含む複数のサブPUにPUが分割され得る、柔軟な区分化方式を実装することができる。一例として、処理ユニット41および/または区分化ユニット35は、32×32のCUを4つの16×16のPU(たとえば、N×N)に分割し、16×16のPUのうちの少なくとも1つを1つの3×16のサブPUおよび1つの13×16のサブPUにさらに分割することができる。別の例として、処理ユニット41および/または区分化ユニット35は、16×16のCUを1つの12×16のPUおよび1つの4×16のPU(たとえば、nR×2N)に分割し、12×16のPUを1つの5×16のサブPUおよび1つの11×16のサブPUにさらに分割することができる。柔軟な区分化方式のさらなる例および詳細が、図6A〜図6Dを参照して下記で説明される。
【０１２７】
詳細には、予測処理ユニット41は、ビデオデータのブロック(たとえば、CUまたはコーディングツリーユニット(CTU))のための様々な符号化パスを実行することができる。各パスの間、予測処理ユニット41は、ブロックの区分化、予測モード(たとえば、イントラ予測およびインター予測)などの、様々な符号化判断をテストすることができる。そのような符号化は、サンプルの特定の数のラインを有するサブPUにPUを再分割することを含む場合がある。各パスの最後に、予測処理ユニット41は、そのパス用のレートひずみメトリックを計算することができる。最終的に、予測処理ユニット41は、優良のレートひずみ特性を生じる符号化パスをもたらした符号化判断の組合せを選択することができる。
【０１２８】
いずれの場合も、PUをサブPUに分割する選択肢を有することにより、処理ユニット41および/または区分化ユニット35は、サブPU内のピクセルとより厳密に一致するピクセルを有するサブPUごとに、予測子ブロックの位置を特定することができる場合がある。このようにして、処理ユニット41および/または区分化ユニット35は、より良い予測を取得し、残差値を最小化することができる。このようにして残差値を最小化すると、最終的に、符号化ビデオデータを含む得られたビットストリームのビットレートを低減することができる。
【０１２９】
図3は、本開示に記載された技法を実装することができる、例示的なビデオデコーダ30を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化処理ユニット86と、逆変換処理ユニット88と、加算器90と、復元領域メモリ92と、フィルタ処理ユニット94と、参照ピクチャメモリ96とを含む。予測処理ユニット81は、動き補償ユニット82と、イントラ予測処理ユニット84と、イントラブロックコピー(イントラBC)ユニット85とを含む。ビデオデコーダ30は、いくつかの例では、図2からのビデオエンコーダ20に関して記載された符号化パスと全体的に相反する復号パスを実施することができる。
【０１３０】
様々な例では、ビデオデコーダ30のユニットは、本開示の技法を実施するように仕事を課せられる場合がある。また、いくつかの例では、本開示の技法は、ビデオデコーダ30のユニットのうちの1つまたは複数の間で分配される場合がある。たとえば、イントラBCユニット85は、本開示の技法を単独で実施するか、または、動き補償ユニット82、イントラ予測処理ユニット84、復元領域メモリ92、およびエントロピー復号ユニット80などの、ビデオデコーダ30の他のユニットとの組合せで実施することができる。
【０１３１】
復号プロセスの間、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット80は、ビットストリームをエントロピー復号して、量子化係数、インター予測用の動きベクトル、イントラBC予測用のブロックベクトル、および本明細書に記載された他のシンタックス要素を生成する。エントロピー復号ユニット80は、イントラBCモードによる予測のための、ベクトル成分、フラグ、および他のシンタックス要素を含むシンタックス要素をバイナリ化および符号化するための、本明細書に記載された技法のうちのいずれかの逆を実施することができる。エントロピー復号ユニット80は、予測処理ユニット81にベクトルおよび他のシンタックス要素を転送する。ビデオデコーダ30は、シーケンスレベル、ピクチャレベル、ビデオスライスレベル、および/またはビデオブロックレベルにおいてシンタックス要素を受信することができる。
【０１３２】
本開示に記載された技法の1つまたは複数の態様によれば、HEVCにおける動きベクトル差分(MVD)コーディング方法を使用してブロックベクトルの値を復号することとは対照的に、エントロピー復号ユニット80は、イントラBCモードのためのブロックベクトルの特性に調整された復号方法を使用して、ブロックベクトルの値を復号することができる。たとえば、4つのシンタックス要素に基づいてブロックベクトルの値を復号することとは対照的に、エントロピー復号ユニット80は、3つのシンタックス要素に基づいてブロックベクトルの値を復号することができる。
【０１３３】
いくつかの例では、エントロピー復号ユニット80は、HEVCにおける動きベクトル差分(MVD)コーディング方法を使用して、ブロックベクトルの値を復号することができる。いくつかの例では、HEVCにおけるMVDコーディング方法を使用してブロックベクトルの値を復号することとは対照的に、エントロピー復号ユニット80は、ブロックベクトルの特性に調整された復号方法を使用して、ブロックベクトルの値を復号することができる。このようにして、本開示の技法は、ブロックベクトルの値を復号するために使用されるシンタックス要素の数を低減することができ、そのことはコーディング効率を改善することができる。
【０１３４】
本開示の1つまたは複数の技法によれば、ビデオデコーダ30は、適応型PU区分化方式を実装することができる。たとえば、予測処理ユニット81は、ビデオデータの現在CUの現在PUを複数のサブPUに分割することができる。いくつかの例では、予測処理ユニット81は、符号化ビデオビットストリーム内で、現在PUのために、現在PUが分割されていることの指示を受信することに応答して、現在PUを複数のサブPUに分割することができる。たとえば、予測処理ユニット81は、エントロピー復号ユニット80から、ビデオデータの現在CUのPUの複数のサブPUのうちの1つまたは複数の中にあるラインの数を示すシンタックス要素を受信することができる。柔軟な区分化方式のさらなる例および詳細が、図6A〜図6Dを参照して下記で説明される。
【０１３５】
ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされたとき、予測処理ユニット81のイントラ予測ユニット84は、シグナリングされたイントラ予測モード、および現在のフレームまたはピクチャの前に復号されたブロックからのデータに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成することができる。ビデオフレームがインターコーディングされた(すなわち、BまたはP)スライスとしてコーディングされたとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成される場合がある。ビデオデコーダ30は、参照ピクチャメモリ96に記憶された参照ピクチャに基づいて、デフォルトの構築技法または任意の他の技法を使用して、参照フレームリスト、RefPicList0およびRefPicList1を構築することができる。ビデオブロックが本明細書に記載されたイントラBCモードに従ってコーディングされると、予測処理81のイントラBCユニット85は、エントロピー復号ユニット80から受信されたブロックベクトルおよび他のシンタックス要素に基づいて、現在ビデオブロックのための予測ブロックを生成する。予測ブロックは、ビデオエンコーダ20によって規定された現在ビデオブロックと同じピクチャ内の復元領域の中にあり、復元領域メモリ92から取り出される場合がある。
【０１３６】
動き補償ユニット82およびイントラBCユニット85は、ベクトルおよび他のシンタックス要素を構文解析することにより、現在ビデオスライスのビデオブロックについての予測情報を特定し、予測情報を使用して復号されている現在ビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット82は、受信されたシンタックス要素のうちのいくつかを使用して、現在ビデオスライス内のビデオブロックを復号するために、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)、スライス用の参照ピクチャリストのうちの1つまたは複数のための構築情報、スライスのインター符号化ビデオブロックごとの動きベクトル、スライスのインターコード化ビデオブロックごとのインター予測状態、および他の情報を特定する。同様に、イントラBCユニット85は、受信されたシンタックス要素のうちのいくつか、たとえばフラグを使用して、現在ビデオスライス内のビデオブロックを復号するために、イントラBCモード、ピクチャのどのビデオブロックが復元領域内にあり、復元領域メモリ92に記憶されるべきかを示す構築情報、スライスのイントラBC予測ビデオブロックごとのブロックベクトル、スライスのイントラBC予測ビデオブロックごとのイントラBC予測状況、および他の情報を使用して、現在ビデオブロックが予測されたと判断することができる。
【０１３７】
動き補償ユニット82およびイントラBCユニット85は、補間フィルタに基づいて補間を実施することもできる。動き補償ユニット82およびイントラBCユニット85は、ビデオブロックの符号化の間にビデオエンコーダ20によって使用されるように補間フィルタを使用して、予測ブロックのサブ整数ピクセルに関する補間値を計算することができる。この場合、動き補償ユニット82およびイントラBCユニット85は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを特定し、補間フィルタを使用して予測ブロックを生成することができる。
【０１３８】
逆量子化処理ユニット86は、ビットストリーム内で供給され、エントロピー復号ユニット80によって復号された量子化変換係数を逆量子化、すなわち逆量子化解除する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライス内のビデオブロックごとにビデオエンコーダ20によって計算された量子化パラメータの使用を含む場合がある。逆変換処理ユニット88は、ピクセル領域における残差ブロックを生成するために、変換係数に逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを適用する。
【０１３９】
動き補償ユニット82またはイントラBCユニット85が、ベクトルまたは他のシンタックス要素に基づいて現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを、動き補償ユニット82およびイントラBCユニット85によって生成された対応する予測ブロックと加算することにより、復号ビデオブロックを形成する。加算器90は、この加算演算を実施して復元ビデオブロックを生成する1つまたは複数の構成要素を表す。
【０１４０】
復元領域メモリ92は、本明細書に記載されたように、ビデオエンコーダ20による現在ビデオブロックのイントラBC用の復元領域の定義に従って、復元ビデオブロックを記憶する。復元領域メモリ92は、フィルタ処理ユニット94によってループ内フィルタリングされていない復元ビデオブロックを記憶することができる。加算器90は、復元領域メモリ92と同時にフィルタ処理ユニット94に復元ビデオブロックを供給することができ、または復元領域メモリ92は、イントラBCのための復元領域がもはや必要とされないとき、フィルタ処理ユニット94に復元ビデオブロックを解放することができる。いずれの場合も、イントラBCユニット85は、復元領域メモリ92から現在ビデオブロックのための予測ビデオブロックを取り出す。
【０１４１】
フィルタ処理ユニット94は、復元ビデオブロックに対してループ内フィルタリングを実施することができる。ループ内フィルタリングは、ブロック境界をフィルタリングして復元ビデオからブロッキネスアーティファクトを除去するデブロックフィルタリングを含む場合がある。ループ内フィルタリングは、復元ビデオを改善するSAOフィルタリングを含む場合もある。そのうちの一部がループ内フィルタリングされ得る復元ブロックは、参照ピクチャとして参照ピクチャメモリ68に記憶される場合がある。参照ピクチャは、後続のビデオフレームまたはピクチャの中のブロックをインター予測するために参照ブロックとして、動き補償ユニット82によって使用され得る復元ブロックを含む場合がある。参照ピクチャメモリ96は、図1のディスプレイデバイス31などのディスプレイデバイス上で後に提示するための復号ビデオも記憶する。
【０１４２】
上記で説明されたように、いくつかの例では、イントラBCはインター予測モードと「マージ」される場合がある。そのような例では、イントラBCユニット85によって実施されるものとして記載された動作のうちの1つまたは複数は、動き補償ユニット82などの、ビデオデコーダ30の1つまたは複数の他の構成要素によって実施される場合がある。
【０１４３】
図4は、本開示の技法による、イントラBCを含むイントラ予測プロセスの一例を示す。1つの例示的なイントラ予測プロセスによれば、ビデオエンコーダ20は、たとえば、ビデオデータの前にコーディングされ、復元されたブロックのセットから、予測子ビデオブロックを選択することができる。図4の例では、復元領域108は、前にコーディングされ、復元されたビデオブロックのセットを含む。復元領域108内のブロックは、ビデオデコーダ30によって復号および復元され、復元領域メモリ92に記憶されたブロック、または、ビデオエンコーダ20の復元ループ内で復号および復元され、復元領域メモリ64に記憶されたブロックを表すことができる。現在ブロック102は、コーディングされるべき現在ビデオブロックを表す。予測子ブロック104は、現在ブロック102のイントラBC予測のために使用される、現在ブロック102と同じピクチャ内の1つまたは複数の復元ビデオブロックを表す。予測子ブロック104は、必ずしも、ビデオデータの単一の前にコーディングされたブロック(たとえば、CUまたはPU)を表す必要はなく、代わりに、復元され、場合によってはブロッキネスアーティファクトを除去するためにデブロッキングフィルタ処理された、前にコーディングされたブロックと重なる場合があることが理解されるべきである。
【０１４４】
例示的なイントラ予測プロセスでは、ビデオエンコーダ20は、ブロックベクトル106を特定および符号化することができ、ブロックベクトル106は、残差信号と一緒に、現在ブロック102に対する予測子ブロック104の位置を示す。たとえば、図4によって示されたように、ブロックベクトル106は、現在ブロック102の左上隅に対する予測子ブロック104の左上隅の位置を示すことができる。上記で説明されたように、ブロックベクトル106は、オフセットベクトル、変位ベクトル、動きベクトル(MV)、または単にベクトルと呼ばれる場合もある。ビデオデコーダ30は、現在CUを復号するために符号化情報を利用する。
【０１４５】
図5A〜図5Dは、本開示の技法により、コーディングユニットが予測ユニットにどのように区分化され得るかの例を示す。上記で説明されたように、ビデオコーダ(たとえば、図1および図2のビデオエンコーダ20ならびに/または図1および図3のビデオデコーダ30)は、CUを1つまたは複数のPUに分割することができる。たとえば、SCC Draft 1では、ビデオコーダは、CUのサイズにかかわらず、CUを2つの2N×NのPUまたは2つのN×2NのPUに分割することができる(ここで、NはCUの側部の長さの半分を表す)。加えて、CUが最も小さいCUであるとき、ビデオコーダは、SCC Draft 1の下で、代替として、CUを4つのN×NのPUに分割することができる。
【０１４６】
図5Aの例に示されたように、ビデオコーダは、2N×2NのCU500を単一の2N×2NのPU(PU0 502)に分割することができる。図5Bの例に示されたように、ビデオコーダは、2N×2NのCU504を2つのN×2NのPU(PU0 506およびPU1 508)に分割することができる。図5Cの例に示されたように、ビデオコーダは、2N×2NのCU510を2つの2N×NのPU(PU0 512およびPU1 514)に分割することができる。図5Dの例に示されたように、ビデオコーダは、2N×2NのCU516を4つのN×NのPU(PU0 518、PU1 520、PU2 522、およびPU3 524)に分割することができる。
【０１４７】
図6A〜図6Dは、本開示の技法により、予測ユニットがサブ予測ユニットにどのように再分割され得るかの例を示す。上記で説明されたように、本開示の1つまたは複数の技法によれば、固定サイズのPU(たとえば、2N×2N、2N×N、N×2N、N×N、2N×nU、2N×nD、nL×2N、およびnR×2N)、またはラインベースのPUに限定されること(たとえば、SDIP)とは対照的に、ビデオコーダは、各々が調整可能な数のライン(すなわち、行または列)を含む複数のサブPUにPUが分割され得る、柔軟な区分化方式を実装することができる。
【０１４８】
図6Aの例では、図5Aの例と同様に、ビデオコーダは、2N×2NのCU600を、単一の2N×2NのPUであるPU0 602に分割することができる。しかしながら、図6Aの例では、ビデオコーダは、PU0 602をnL×2NのサブPU0 604およびnR×2NのサブPU1 606にさらに分割することができる(ここで、nLはサブPU0 604に含まれる列の数であり、nRはサブPU1 606に含まれる列の数である)。
【０１４９】
図6Bの例では、図5Aの例と同様に、ビデオコーダは、2N×2NのCU608を、単一の2N×2NのPUであるPU0 610に分割することができる。しかしながら、図6Bの例では、ビデオコーダは、PU0 610を2N×nUのサブPU0 612および2N×nRのサブPU1 614にさらに分割することができる(ここで、nUはサブPU0 612に含まれる行の数であり、nRはサブPU1 614に含まれる行の数である)。
【０１５０】
図6Cの例では、図5Bの例と同様に、ビデオコーダは、2N×2NのCU616を、両方ともN×2NのPUであるPU0 618およびPU1 620に分割することができる。しかしながら、図6Cの例では、ビデオコーダは、PU1 620を2N×nL-NのサブPU0 622および2N×nRのサブPU1 624にさらに分割することができる(ここで、nL-NはサブPU0 622に含まれる列の数であり、nRはサブPU1 624に含まれる列の数である)。
【０１５１】
図6Dの例では、図5Cの例と同様に、ビデオコーダは、2N×2NのCU626を、両方とも2N×NのPUであるPU0 628およびPU1 630に分割することができる。しかしながら、図6Dの例では、ビデオコーダは、PU0 628をnL×NのサブPU0 632およびnR×NのサブPU1 634にさらに分割することができる(ここで、nLはサブPU0 632に含まれる列の数であり、nRはサブPU1 634に含まれる列の数である)。
【０１５２】
図6A〜図6Dの各々では、ビデオコーダは、分割情報を示すために1つまたは複数のシンタックス要素をコーディングすることができる。いくつかの例では、ビデオコーダは、サブPUの中にあるライン(すなわち、行および列)の数を示す1つまたは複数のシンタックス要素をコーディングすることができる。たとえば、図6Aの例では、ビデオコーダは、いくつのラインがサブPU0に含まれるかを示す(すなわち、nLの値を指定する)シンタックス要素をコーディングすることができる。いくつかの例では、ビデオコーダは、現在PUが水平方向に分割されているか、垂直方向に分割されているかを示すシンタックス要素をコーディングすることができる。たとえば、図6Aの例では、ビデオコーダは、PU0 602が垂直方向に分割されていることを指定するシンタックス要素をコーディングすることができる。いくつかの例では、ビデオコーダは、現在PUが複数のサブPUに分割されているかどうかを指定するシンタックス要素をコーディングすることができる。たとえば、図6A〜図6Dの例では、ビデオコーダは、現在PUが複数のサブPUに分割されていることを示すシンタックス要素をコーディングすることができる。
【０１５３】
図7は、本開示の1つまたは複数の技法による、ビデオエンコーダがPUを複数のサブPUに柔軟に区分化する例示的な動作を示すフロー図である。図7の技法は、図1および図2に示されたビデオエンコーダ20などの、1つまたは複数のビデオエンコーダによって実施される場合がある。例示の目的で、図7の技法はビデオエンコーダ20のコンテキスト内で記載されるが、ビデオエンコーダ20の構成とは異なる構成を有するビデオエンコーダが、図7の技法を実施してもよい。
【０１５４】
本開示の1つまたは複数の技法によれば、ビデオエンコーダ20は、現在予測ユニット(PU)を複数のサブPUに分割するべきかどうかを判定することができる(702)。たとえば、ビデオエンコーダ20の予測処理ユニット41および/または区分化ユニット35は、レートひずみ分析(たとえば、レートひずみ最適化)に基づいて、現在PUを複数のサブPUに分割するべきかどうかを判定することができる。
【０１５５】
いくつかの例では、ビデオエンコーダ20は、単一のPUが分割され得るサブPUの数を制限することができる。たとえば、いくつかの例では、ビデオエンコーダ20は、単一のPUを多くとも2つのサブPUに分割することができる。いくつかの例では、ビデオエンコーダ20は、CUが分割され得るPUパーティションの総数を制限することができる。たとえば、いくつかの例では、ビデオエンコーダ20は、分割されていないPU(すなわち、それ以上サブPUに分割されないPU)および単一のCU内のPUの総数を4であるように(すなわち、CU内の分割されていないPUの数プラスCU内のサブPUの数が4よりも小さいかまたはそれに等しいように)制限することができる。
【０１５６】
いくつかの例では、ビデオエンコーダ20は、いくつかの状況においてPUを分割することを控える場合がある。たとえば、ビデオエンコーダ20は、N×NのPUをさらに分割することを控える場合がある(すなわち、N×NのPUモードに対してサブPU分割が有効でない場合がある)。
【０１５７】
ビデオエンコーダ20は、複数のサブPUの各々についてそれぞれの予測モードを決定することができる(704)。たとえば、予測処理ユニット41は、サブPUごとに、複数のイントラコーディングモードのうちの1つ、複数のインターコーディングモードのうちの1つ、またはイントラBCモードなどの、複数の可能なコーディングモードのうちの1つを選択することができる。いくつかの例では、予測処理ユニット41は、レートひずみ結果(すなわち、コーディングビットレートおよびひずみレベル)に基づいて、コーディングモードを選択することができる。
【０１５８】
ビデオエンコーダ20は、サブPUごとに、それぞれのサブPUとそれぞれの予測子ブロックとの間のそれぞれの差分を計算することができる(706)。たとえば、予測処理ユニット41は、サブPUごとの予測子ブロックを加算器50に供給することができ、加算器50は、それぞれのサブPUとそれぞれの予測子ブロックとの間のそれぞれの差分を表すそれぞれの残差ブロックを生成することができる。
【０１５９】
ビデオエンコーダ20は、符号化ビットストリーム内で、現在PUが複数のサブPUに分割されているかどうかを示すシンタックス要素を符号化することができる(708)。たとえば、予測処理ユニット41は、適応型区分化が有効である(すなわち、現在PUが複数のサブPUに分割されている)ことを示す値を有する、PUレベルにおけるフラグ(たとえば、Table 1(表1)のsub_pu_present_flag)を、エントロピー符号化ユニット56に符号化させることができる。
【０１６０】
ビデオエンコーダ20は、符号化ビデオビットストリーム内で、複数のサブPUのサブPUのうちの1つまたは複数の中にあるラインの数を示すシンタックス要素を符号化することができる(710)。たとえば、予測処理ユニット41は、複数のサブPUのうちの特定のサブPUの中にあるラインの数を示すシンタックス要素(たとえば、Table 1(表1)のnum_sub_pu_lines)を、エントロピー符号化ユニット56に符号化させることができる。いくつかの例では、予測処理ユニット41は、複数のサブPUのうちの各それぞれのサブPUの中にあるラインのそれぞれの数を示す別個のそれぞれのシンタックス要素を、エントロピー符号化ユニット56に符号化させることができる。いくつかの例では、予測処理ユニット41は、複数のサブPUのうちの最後のサブPUを除く複数のサブPUのうちの各それぞれのサブPUの中にあるラインのそれぞれの数を示す別個のそれぞれのシンタックス要素を、エントロピー符号化ユニット56に符号化させることができる。
【０１６１】
いくつかの例では、ビデオエンコーダ20は、符号化ビデオビットストリームから、現在PUが複数のサブPUに水平方向または垂直方向のどちらで分割されているかの指示を復号することができる。たとえば、予測処理ユニット41は、現在PUが複数のサブPUに水平方向または垂直方向のどちらで分割されているかを示すシンタックス要素(たとえば、Table 1(表1)のsub_pu_type)を、エントロピー符号化ユニット56に符号化させることができる。
【０１６２】
いくつかの例では、ビデオエンコーダ20は、複数のサブPUのうちのそれぞれのサブPUごとに、複数の前に符号化されたブロックから、それぞれの予測子ブロックを選択することができる。たとえば、レートひずみ分析の一部として、予測処理ユニット41は、複数のサブPUのうちのそれぞれのサブPUごとに、ビデオデータの現在CUが現れるピクチャ内のビデオデータの複数の前に符号化されたブロックから、それぞれの予測子ブロックを選択することができる。選択された予測子ブロックに基づいて、ビデオエンコーダ20は、複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUとそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定することができる。
【０１６３】
ビデオエンコーダ20は、符号化ビデオビットストリーム内で、それぞれのサブPUごとに、それぞれのサブPUとそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルの指示を符号化することができる(712)。いくつかの例では、ビデオエンコーダ20は、ベクトルの値とベクトル予測子の値との間の差分を表すベクトル差分(VD)値を符号化することにより、サブPUと予測子ブロックとの間の変位を表すベクトルの指示を符号化することができる。
【０１６４】
予測処理ユニット41は、複数のサブPUのうちのそれぞれのサブPUごとのそれぞれのベクトル予測子を決定することができる。いくつかの例では、予測処理ユニット41は、候補ベクトル予測子のそれぞれのリストからサブPUごとのそれぞれのベクトル予測子を選択し、ベクトル予測子が選択されたかどうかの指示を符号化することができる。いくつかの例では、予測処理ユニット41は、SCC Draft 1の技法と同様の技法を使用して、候補ベクトル予測子のリストを決定することができる。いくつかの例では、予測処理ユニット41は、サブPUごとのベクトル予測子として、現在PUのベクトル予測子を使用することができる。いくつかの例では、予測処理ユニット41は、現在PUの現在サブPUの候補ベクトル予測子のそれぞれのリストの中に、現在PUの前にコーディングされたサブPU用のそれぞれのベクトルを含めることができる。このようにして、1番目ではないサブPUは、ベクトル予測子として前のサブPUのすでに復号されたブロックベクトルのうちのいずれかを使用することができる。
【０１６５】
予測処理ユニット41は、ベクトルの値とベクトル予測子の値との間の差分を表すベクトル差分(VD)値を、エントロピー符号化ユニット56に符号化させることができる。本開示の第1の技法によれば、予測処理ユニット41は、1つのビンb0をコーディングしてVDの値が0よりも大きいか否かを示すことを、エントロピー符号化ユニット56に行わせることができる。次いで、予測処理ユニット41は、1つのビンb1をコーディングしてVDの値がNよりも大きいか否かを示すことを、エントロピー符号化ユニット56に行わせることができる。いくつかの例では、VDの値がN(N=1、2、3、4、…)よりも大きい場合、予測処理ユニット41は、次数K(K=0、1、2、3、4、…)を有する指数ゴロム(EG)コードを使用して余り(VDマイナスN)をコーディングすることを、エントロピー符号化ユニット56に行わせることができる。他の例では、予測処理ユニット41は、Nに基づく長さを有するバイパスコーディングされた固定長(FL)コードを使用してVDの値マイナス1をコーディングすることを、エントロピー符号化ユニット56に行わせることができる。他の例では、予測処理ユニット41は、切頂コードを使用してVDの値マイナス1をコーディングすることを、エントロピー符号化ユニット56に行わせることができる。いくつかの例では、予測処理ユニット41は、コンテキストコーディングまたはバイパスコーディングを使用してビンb0をコーディングすることを、エントロピー符号化ユニット56に行わせることができる。同様に、予測処理ユニット41は、コンテキストコーディングまたはバイパスコーディングを使用してビンb1をコーディングすることを、エントロピー符号化ユニット56に行わせることができる。
【０１６６】
本開示の第2の技法によれば、予測処理ユニット41は、1つのビンb0をコーディングしてVDの値が0よりも大きいか否かを示すことを、エントロピー符号化ユニット56に行わせることができる。VDの値がゼロに等しくない場合、予測処理ユニット41は、次数K(K=0、1、2、3、4、…)を有するEGコードを使用して余り(VDマイナス1)をコーディングすることを、エントロピー符号化ユニット56に行わせることができる。
【０１６７】
本開示の第3の技法によれば、予測処理ユニット41は、1番目のサブPUのVDを(第1の技法および第2の技法に関して上記で説明されたように)コンテキストコーディングされたビンを使用してコーディングすることを、エントロピー符号化ユニット56に行わせることができる。予測処理ユニット41は、(第1の技法および第2の技法に関して上記で説明されたように)バイパスコーディングされたビンを使用して残りのサブPUのVDをコーディングすることを、エントロピー符号化ユニット56に行わせることができる。
【０１６８】
いずれの場合も、ビデオエンコーダ20は、符号化ビデオビットストリーム内で、それぞれのサブPUごとに、それぞれのサブPUとそれぞれの予測子ブロックとの間の差分を表す残差ブロックを符号化することができる(714)。たとえば、予測処理ユニット41が、インター予測、イントラ予測、またはイントラBC予測を介して、現在ビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ20は、たとえば、加算器50を介して、現在ビデオブロックから予測ブロックを減算することにより、残差ビデオブロックを形成する。変換処理ユニット52は、得られた変換係数を量子化処理ユニット54に送ることができ、量子化処理ユニット54は、変換係数を量子化してビットレートをさらに低減することができる。量子化に続いて、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。
【０１６９】
図8は、本開示の1つまたは複数の技法による、ビデオデコーダがPUを複数のサブPUに柔軟に区分化する例示的な動作を示すフロー図である。図8の技法は、図1および図3に示されたビデオデコーダ30などの、1つまたは複数のビデオデコーダによって実施される場合がある。例示の目的で、図8の技法はビデオデコーダ30のコンテキスト内で記載されるが、ビデオデコーダ30の構成とは異なる構成を有するビデオデコーダが、図8の技法を実施してもよい。
【０１７０】
本開示の1つまたは複数の技法によれば、ビデオデコーダ30は、符号化ビットストリームから、現在CUの現在PUが複数のサブPUに分割されているかどうかを示すシンタックス要素を復号することができる(802)。たとえば、エントロピー復号ユニット80は、適応型区分化が有効である(すなわち、現在PUが複数のサブPUに分割されている)ことを示す値を有する、PUレベルにおけるフラグ(たとえば、Table 1(表1)のsub_pu_present_flag)を復号し、予測処理ユニット81に供給することができる。
【０１７１】
ビデオデコーダ30は、符号化ビデオビットストリームから、サブPUのうちの1つまたは複数の中にあるラインの数を示すシンタックス要素を復号することができる(804)。たとえば、エントロピー復号ユニット80は、複数のサブPUのうちの特定のサブPUの中にあるラインの数を示すシンタックス要素(たとえば、Table 1(表1)のnum_sub_pu_lines)を復号し、予測処理ユニット81に供給することができる。いくつかの例では、エントロピー復号ユニット80は、複数のサブPUのうちの各それぞれのサブPUの中にあるラインのそれぞれの数を示す別個のそれぞれのシンタックス要素を復号することができる。いくつかの例では、エントロピー復号ユニット80は、複数のサブPUのうちの最後のサブPUを除く複数のサブPUのうちの各それぞれのサブPUの中にあるラインのそれぞれの数を示す別個のそれぞれのシンタックス要素を復号することができる。
【０１７２】
いくつかの例では、ビデオデコーダ30は、符号化ビデオビットストリームから、現在PUが複数のサブPUに水平方向または垂直方向のどちらで分割されているかの指示を復号することができる。たとえば、エントロピー復号ユニット80は、現在PUが複数のサブPUに水平方向または垂直方向のどちらで分割されているかを示すシンタックス要素(たとえば、Table 1(表1)のsub_pu_type)を復号し、予測処理ユニット81に供給することができる。
【０１７３】
ビデオデコーダ30は、符号化ビデオビットストリームから、それぞれのサブPUごとに、それぞれのサブPUとそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルの指示を復号することができる(806)。いくつかの例では、ビデオデコーダ30は、ベクトルの値とベクトル予測子の値との間の差分を表すベクトル差分(VD)値を復号することにより、サブPUと予測子ブロックとの間の変位を表すベクトルの指示を復号することができる。
【０１７４】
予測処理ユニット81は、複数のサブPUのうちのそれぞれのサブPUごとのそれぞれのベクトル予測子を決定することができる。いくつかの例では、予測処理ユニット81は、候補ベクトル予測子のそれぞれのリストから、サブPUごとのそれぞれのベクトル予測子を選択することができる。たとえば、予測処理ユニット81は、候補ベクトル予測子のリストを生成することができ、エントロピー復号ユニット80は、リスト内の項目を指定するシンタックス要素を受信することができ、予測処理ユニット81は、指定された項目内のベクトル予測子を利用してベクトルを特定することができる。
【０１７５】
いくつかの例では、予測処理ユニット81は、SCC Draft 1の技法と同様の技法を使用して、候補ベクトル予測子のリストを決定することができる。いくつかの例では、予測処理ユニット81は、サブPUごとのベクトル予測子として、現在PUのベクトル予測子を使用することができる。いくつかの例では、予測処理ユニット81は、現在PUの現在サブPUの候補ベクトル予測子のそれぞれのリストの中に、現在PUの前にコーディングされたサブPU用のそれぞれのベクトルを含めることができる。このようにして、1番目ではないサブPUは、ベクトル予測子として前のサブPUのすでに復号されたブロックベクトルのうちのいずれかを使用することができる。
【０１７６】
エントロピー復号ユニット80は、ベクトルの値とベクトル予測子の値との間の差分を表すベクトル差分(VD)値を復号し、予測処理ユニット81に供給することができる。いくつかの例では、エントロピー復号ユニット80は、上記で説明された技法のうちのいずれかを使用してVD値を復号することができる。
【０１７７】
ビデオデコーダ30は、符号化ビデオビットストリームから、それぞれのサブPUごとに、それぞれのサブPUとそれぞれの予測子ブロックとの間の差分を表す残差ブロックを復号することができる(808)。たとえば、逆量子化処理ユニット86は、ビットストリーム内で供給され、エントロピー復号ユニット80によって復号された量子化変換係数を逆量子化することができる。次いで、逆変換処理ユニット88は、ピクセル領域における残差ブロックを復元するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様な逆変換プロセスを適用して、係数を変換することができる。
【０１７８】
ビデオデコーダ30は、ビデオデータのそれぞれの予測子ブロックに基づいて各サブPUを復元することができる(810)。たとえば、加算器90は、逆変換処理ユニット88からの残差ブロックを予測処理ユニット81によって生成された対応する予測子ブロックと加算することにより、復号ビデオブロックを形成することができる。
【０１７９】
以下の番号付けされた例は、本開示の1つまたは複数の態様を例示することができる。
【０１８０】
例1.ビデオデータを復号する方法であって、符号化ビデオビットストリームから、ビデオデータの現在コーディングユニット(CU)の現在予測ユニット(PU)の複数のサブPUのうちの1つまたは複数の中にあるビデオデータのラインの数を示すシンタックス要素を復号することと、複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定することと、ビデオデータのそれぞれの予測子ブロックに基づいて、複数のサブPUのうちの各サブPUを復元することとを含む、方法。
【０１８１】
例2.複数のサブPU用のそれぞれの予測子ブロックが、ビデオデータの現在CUを含むピクチャの中にある、例1の方法。
【０１８２】
例3.複数のサブPUが多くとも2つのサブPUを含む、例1〜例2の任意の組合せの方法。
【０１８３】
例4.複数のサブPUのうちの1つまたは複数の中にあるラインの数を示すシンタックス要素を復号することが、複数のサブPUのうちの最後のサブPUを除く複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUの中にあるラインのそれぞれの数を示すそれぞれのシンタックス要素を復号することを含み、方法が、現在PUに含まれるラインの数と複数のサブPUのうちの他のサブPUに含まれるラインの数との間の差分に基づいて、複数のサブPUのうちの最後のサブPUの中にあるラインの数を特定することをさらに含む、例1〜例3の任意の組合せの方法。
【０１８４】
例5.現在PUが複数のサブPUに水平方向または垂直方向のどちらで分割されているかの指示を復号することをさらに含む、例1〜例4の任意の組合せの方法。
【０１８５】
例6.分割されていないPUおよびサブPUを合わせた総数が多くとも4であり、分割されていないPUがサブPUを含まない、例1〜例5の任意の組合せの方法。
【０１８６】
例7.複数のサブPUのうちの1つまたは複数の中にあるラインの数を示すシンタックス要素が第1のシンタックス要素であり、方法が、符号化ビデオビットストリームから、ビデオデータの現在CUの現在PUについて、現在PUが複数のサブPUに分割されているか否かを示す第2のシンタックス要素を復号することをさらに含み、第1のシンタックス要素を復号することが、現在PUが複数のサブPUに分割されていることを第2のシンタックス要素が示すことに応答して第1のシンタックス要素を復号することを含む、例1〜例6の任意の組合せの方法。
【０１８７】
例8.複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUとそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定することが、複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのベクトル予測子を特定することと、複数のサブPUのうちのそれぞれのサブPUごとに、各々がそれぞれのベクトルとそれぞれのベクトル予測子との間のそれぞれの差分を示すそれぞれのベクトル差分(VD)を特定することと、それぞれのサブPUごとに、それぞれのベクトル予測子およびそれぞれのVDに基づいてそれぞれのベクトルを特定することとを含む、例1〜例7の任意の組合せの方法。
【０１８８】
例9.それぞれのベクトル予測子を特定することが、候補ベクトル予測子のそれぞれのリストを決定することを含み、方法が、現在サブPUの候補ベクトル予測子のそれぞれのリストの中に、前にコーディングされたサブPU用のそれぞれのベクトルを含めることをさらに含む、例1〜例8の任意の組合せの方法。
【０１８９】
例10.ビデオデータを復号するためのデバイスであって、ビデオデータを記憶するように構成されたメモリと、例1〜例9の任意の組合せの方法を実施するように構成された1つまたは複数のプロセッサとを備える、デバイス。
【０１９０】
例11.ビデオデータを復号するためのデバイスであって、例1〜例9の任意の組合せの方法を実施するための手段を備える、デバイス。
【０１９１】
例12.実行されると、ビデオ復号デバイスの1つまたは複数のプロセッサに例1〜例9の任意の組合せの方法を実施させる命令を記憶する、コンピュータ可読記憶媒体。
【０１９２】
例13.ビデオデータを符号化する方法であって、ビデオデータの現在コーディングユニット(CU)の現在予測ユニット(PU)を複数のサブPUに分割すると決定することと、複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定することと、符号化ビデオビットストリーム内で、複数のサブPUのうちの1つまたは複数の中にあるビデオデータのラインの数を示すシンタックス要素を符号化することとを含む、方法。
【０１９３】
例14.複数のサブPU用のそれぞれの予測子ブロックが、ビデオデータの現在CUを含むピクチャの中にある、例13の方法。
【０１９４】
例15.複数のサブPUが多くとも2つのサブPUを含む、例13〜例14の任意の組合せの方法。
【０１９５】
例16.複数のサブPUのうちの1つまたは複数の中にあるラインの数を示すシンタックス要素を符号化することが、複数のサブPUのうちの最後のサブPUを除く複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUの中にあるラインのそれぞれの数を示すそれぞれのシンタックス要素を符号化することを含む、例13〜例15の任意の組合せの方法。
【０１９６】
例17.現在PUが複数のサブPUに水平方向または垂直方向のどちらで分割されているかの指示を符号化することをさらに含む、例13〜例16の任意の組合せの方法。
【０１９７】
例18.分割されていないPUおよびサブPUを合わせた総数が多くとも4であり、分割されていないPUがサブPUを含まない、例13〜例17の任意の組合せの方法。
【０１９８】
例19.複数のサブPUのうちの1つまたは複数の中にあるラインの数を示すシンタックス要素が第1のシンタックス要素であり、方法が、符号化ビデオビットストリーム内で、ビデオデータの現在CUの現在PUについて、現在PUが複数のサブPUに分割されているか否かを示す第2のシンタックス要素を符号化することをさらに含み、第1のシンタックス要素を符号化することが、現在PUを複数のサブPUに分割するとの決定に応答して第1のシンタックス要素を符号化することを含む、例13〜例18の任意の組合せの方法。
【０１９９】
例20.複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのベクトル予測子を特定することと、複数のサブPUのうちのそれぞれのサブPUごとに、各々がそれぞれのベクトルとそれぞれのベクトル予測子との間のそれぞれの差分を示すそれぞれのベクトル差分(VD)を特定することと、符号化ビデオビットストリーム内で、それぞれのサブPUごとに、それぞれのVDの指示およびそれぞれのベクトル予測子の指示を符号化することとをさらに含む、例13〜例19の任意の組合せの方法。
【０２００】
例21.それぞれのベクトル予測子を特定することが、候補ベクトル予測子のそれぞれのリストを決定することを含み、方法が、現在サブPUの候補ベクトル予測子のそれぞれのリストの中に、前にコーディングされたサブPU用のそれぞれのベクトルを含めることをさらに含む、例13〜例20の任意の組合せの方法。
【０２０１】
例22.ビデオデータを符号化するためのデバイスであって、ビデオデータを記憶するように構成されたメモリと、例13〜例21の任意の組合せの方法を実施するように構成された1つまたは複数のプロセッサとを備える、デバイス。
【０２０２】
例23.ビデオデータを符号化するためのデバイスであって、例13〜例21の任意の組合せの方法を実施するための手段を備える、デバイス。
【０２０３】
例24.実行されると、ビデオ符号化デバイスの1つまたは複数のプロセッサに例13〜例21の任意の組合せの方法を実施させる命令を記憶する、コンピュータ可読記憶媒体。
【０２０４】
以下の番号付けされた節は、本開示の1つまたは複数の態様を例示することができる。
【０２０５】
節1.ビデオデータを符号化する方法であって、ビデオデータの現在コーディングユニット(CU)の現在予測ユニット(PU)を分割するとの決定に応答して、現在PUを複数のサブ予測ユニット(サブPU)に分割することと、複数のサブPUのうちのそれぞれのサブPUごとに、ビデオデータの現在CUが現れるピクチャ内のビデオデータの複数の前に符号化されたブロックからそれぞれの予測子ブロックを選択することと、複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのサブPUとそれぞれの予測子ブロックとの間の変位を表すそれぞれのブロックベクトルを特定することと、現在PUが複数のサブPUに分割されていることの指示、および複数のサブPUのうちのそれぞれのサブPUごとのそれぞれのブロックベクトルの指示を表すデータを符号化することとを含む、方法。
【０２０６】
節2.現在PUを複数のサブPUに分割することが、現在PUを2つのサブPUに分割することを含む、節1の方法。
【０２０７】
節3.複数のサブPUのうちのそれぞれのサブPUごとのそれぞれのブロックベクトルの指示が、1つまたは複数のブロックベクトル予測子に基づいて符号化される、節1〜節2の任意の組合せの方法。
【０２０８】
節4.符号化することが、PUのブロックベクトル予測子を使用して、複数のサブPUのうちのそれぞれのサブPUごとのそれぞれのブロックベクトルの指示を表すデータを符号化することを含む、節1〜節3の任意の組合せの方法。
【０２０９】
節5.複数のサブPUのうちのそれぞれのサブPUごとのそれぞれのブロックベクトルの指示が、様々なブロックベクトル予測子を使用する、節1〜節4の任意の組合せの方法。
【０２１０】
節6.符号化することが、同じブロックベクトル予測子を使用して、複数のサブPUのうちのそれぞれのサブPUごとのそれぞれのブロックベクトルの指示を表すデータを符号化することを含む、節1〜節5の任意の組合せの方法。
【０２１１】
節7.符号化することが、それぞれのブロックベクトルとそれぞれのブロックベクトル予測子との間のそれぞれの差分を各々が示すそれぞれのブロックベクトル差分(BVD)として、複数のサブPUのうちのそれぞれのサブPUごとのそれぞれのブロックベクトルの指示を表すデータを符号化することを含む、節1〜節6の任意の組合せの方法。
【０２１２】
節8.複数のサブPUのうちの第1のサブPU用のBVDを符号化することが、複数のサブPUのうちの第2のサブPU用のBVDに基づいてBVDを符号化することを含む、節1〜節7の任意の組合せの方法。
【０２１３】
節9.現在PUが複数のサブPUに水平方向または垂直方向のどちらで分割されているかの指示を符号化することをさらに含む、節1〜節8の任意の組合せの方法。
【０２１４】
節10.複数のサブPUのうちの1つまたは複数の中にある行/列の数の指示を符号化することをさらに含む、節1〜節9の任意の組合せの方法。
【０２１５】
節11.複数のサブPUのうちの1つまたは複数の中にある行/列の数の指示を符号化することが、複数のサブPUのうちの最後のサブPUを除く複数のサブPUのうちの各サブPUの中にいくつの行/列があるかの指示を符号化することを含む、節1〜節10の任意の組合せの方法。
【０２１６】
節12.複数のサブPUのうちの1つまたは複数の中にある行/列の数の指示を符号化することが、切頂単項コードを使用して複数のサブPUのうちの1つまたは複数の中にある行/列の数の指示を符号化することを含む、節1〜節11の任意の組合せの方法。
【０２１７】
節13.複数のサブPUのうちの1つまたは複数の中にある行/列の数の指示を符号化することが、PU内の行/列の数に基づく最大長を有する切頂単項コードを使用して、複数のサブPUのうちの1つまたは複数の中にある行/列の数の指示を符号化することを含む、節1〜節12の任意の組合せの方法。
【０２１８】
節14.複数のサブPUのうちの1つまたは複数の中にある行/列の数の指示を符号化することが、固定長コードを使用して複数のサブPUのうちの1つまたは複数の中にある行/列の数の指示を符号化することを含む、節1〜節13の任意の組合せの方法。
【０２１９】
節15.複数のサブPUのうちの1つまたは複数の中にある行/列の数の指示を符号化することが、PU内の行/列の数に基づく長さを有する固定長コードを使用して、複数のサブPUのうちの1つまたは複数の中にある行/列の数の指示を符号化することを含む、節1〜節14の任意の組合せの方法。
【０２２０】
節16.現在PUが複数のサブPUに分割されていることの指示を符号化することが、現在PUがサブPUに分割されているかどうかを指定するシンタックス要素を符号化することを含む、節1〜節15の任意の組合せの方法。
【０２２１】
節17.イントラブロックコピー(BC)を使用してビデオデータを復号するための方法であって、符号化ビデオビットストリーム内で、ビデオデータの現在コーディングユニット(CU)の現在予測ユニット(PU)について、現在PUが分割されていることの指示を受信することに応答して、少なくとも、複数のサブPUのうちのそれぞれのサブPUごとに、ビデオデータの現在CUが存在するピクチャ内のビデオデータの複数の前に符号化されたブロックから、それぞれのサブPUとそれぞれの予測子ブロックとの間の変位を表すそれぞれのブロックベクトルを特定すること、およびビデオデータのそれぞれの予測子ブロックに基づいて複数のサブPUのうちの各サブPUを復元することにより、現在PUを複数のサブ予測ユニット(サブPU)に分割することを含む、方法。
【０２２２】
節18.節1〜節16の任意の組合せの方法をさらに含む、節17の方法。
【０２２３】
上記で説明されたように、本開示の技法は、ビデオデータを表すために必要とされるデータの量を低減することができる。下記のTable 2(表2)〜Table 4(表4)は、phenix.it-sudparis.eu/jct/doc_end_user/documents/19_Strasbourg/wg11/JCTVC-S1015-v2.zipにおいて入手可能な、JCTVC-S1015、「Common conditions for screen content coding tests」、ストラスブール、フランス、2014年10月17〜24日によって記述された、ビデオデータテストシーケンスを表すために必要とされるデータの量における例示的な低減を実証するいくつかの例示的なテスト結果を表す。詳細には、Table 2(表2)は、すべてのイントラモード符号化についてJCTVC-S1015によって記述された、ビデオデータテストシーケンスを表すために必要とされるデータの量における例示的な低減を実証する例示的なテスト結果を示す。
【０２２４】
【表２】
2018507616.tif 000004
【０２２５】
【表３】
2018507616.tif 000005
【０２２６】
【表４】
2018507616.tif 000006
【０２２７】
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  出力インターフェース
28  入力インターフェース
30  ビデオデコーダ
31  ディスプレイデバイス
32  ストレージデバイス
35  区分化ユニット
41  予測処理ユニット
42  動き推定ユニット
44  動き補償ユニット
46  イントラ予測処理ユニット
48  イントラブロックコピー(イントラBC)ユニット
50  加算器
52  変換処理ユニット
54  量子化処理ユニット
56  エントロピー符号化ユニット
58  逆量子化処理ユニット
60  逆変換処理ユニット
62  加算器
64  復元領域メモリ
66  フィルタ処理ユニット
68  参照ピクチャメモリ
80  エントロピー復号ユニット
81  予測処理ユニット
82  動き補償ユニット
84  イントラ予測処理ユニット
85  イントラブロックコピー(イントラBC)ユニット
86  逆量子化処理ユニット
88  逆変換処理ユニット
90  加算器
92  復元領域メモリ
94  フィルタ処理ユニット
96  参照ピクチャメモリ
102  現在ブロック
104  予測子ブロック
106  ブロックベクトル
108  復元領域
500  CU
502  PU0
504  CU
506  PU0
508  PU1
510  CU
512  PU0
514  PU1
516  CU
518  PU0
520  PU1
522  PU2
524  PU3
600  CU
602  PU0
604  サブPU0
606  サブPU1
608  CU
610  PU0
612  サブPU0
614  サブPU1
616  CU
618  PU0
620  PU1
622  サブPU0
624  サブPU1
626  CU
628  PU0
630  PU1
632  サブPU0
634  サブPU1
【図１】
2018507616.tif 000007
【図２】
2018507616.tif 000008
【図３】
2018507616.tif 000009
【図４】
2018507616.tif 000010
【図５Ａ】
2018507616.tif 000011
【図５Ｂ】
2018507616.tif 000012
【図５Ｃ】
2018507616.tif 000013
【図５Ｄ】
2018507616.tif 000014
【図６Ａ】
2018507616.tif 000015
【図６Ｂ】
2018507616.tif 000016
【図６Ｃ】
2018507616.tif 000017
【図６Ｄ】
2018507616.tif 000018
【図７】
2018507616.tif 000019
【図８】
2018507616.tif 000020
【手続補正書】
【提出日】平成29年8月1日(2017.8.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
符号化ビデオビットストリームから、ビデオデータの現在コーディングユニット(CU)の現在予測ユニット(PU)について、前記現在PUの複数のサブPUのうちのサブPUの中にあるビデオデータのラインの数を明示的に示すシンタックス要素を復号するステップであって、ラインの前記数が、ラインのしきい値の数よりも大きく前記現在PUに含まれるラインの数よりも小さいラインの任意の数を含むように選択される、ステップと、
前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定するステップと、
ビデオデータの前記それぞれの予測子ブロックに基づいて、前記複数のサブPUのうちの各サブPUを復元するステップと
を含む、方法。
【請求項２】
前記複数のサブPU用の前記それぞれの予測子ブロックが、ビデオデータの前記現在CUを含むピクチャの中にある、請求項1に記載の方法。
【請求項３】
前記複数のサブPUが多くとも2つのサブPUを含む、請求項1に記載の方法。
【請求項４】
前記複数のサブPUのうちの最後のサブPUを除く前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUの中にあるラインのそれぞれの数を明示的に示すそれぞれのシンタックス要素を復号するステップ
をさらに含み、前記方法が、
前記現在PUに含まれるラインの数と前記複数のサブPUのうちの他のサブPUに含まれるラインの数との間の差分に基づいて、前記複数のサブPUのうちの前記最後のサブPUの中にあるラインの数を特定するステップ
をさらに含む、請求項1に記載の方法。
【請求項５】
前記現在PUが前記複数のサブPUに水平方向または垂直方向のどちらで分割されているかの指示を復号するステップをさらに含む、請求項1に記載の方法。
【請求項６】
分割されていないPUおよびサブPUを合わせた総数が多くとも4であり、分割されていないPUがサブPUを含まない、請求項1に記載の方法。
【請求項７】
前記複数のサブPUのうちの前記サブPUの中にあるラインの前記数を明示的に示す前記シンタックス要素が第1のシンタックス要素であり、前記方法が、
前記符号化ビデオビットストリームから、ビデオデータの前記現在CUの前記現在PUについて、前記現在PUが前記複数のサブPUに分割されているか否かを示す第2のシンタックス要素を復号するステップ
をさらに含み、
前記第1のシンタックス要素を復号するステップが、前記現在PUが前記複数のサブPUに分割されていることを前記第2のシンタックス要素が示すことに応答して前記第1のシンタックス要素を復号するステップを含む、
請求項1に記載の方法。
【請求項８】
前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUとそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定するステップが、
前記複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのベクトル予測子を特定するステップと、
前記複数のサブPUのうちのそれぞれのサブPUごとに、各々がそれぞれのベクトルと前記それぞれのベクトル予測子との間のそれぞれの差分を示すそれぞれのベクトル差分(VD)を特定するステップと、
それぞれのサブPUごとに、前記それぞれのベクトル予測子および前記それぞれのVDに基づいて前記それぞれのベクトルを特定するステップと
を含む、請求項1に記載の方法。
【請求項９】
前記それぞれのベクトル予測子を特定するステップが、候補ベクトル予測子のそれぞれのリストを決定するステップを含み、前記方法が、
現在サブPUの候補ベクトル予測子の前記それぞれのリストの中に、前にコーディングされたサブPU用の前記それぞれのベクトルを含めるステップ
をさらに含む、請求項8に記載の方法。
【請求項１０】
ビデオデータを符号化する方法であって、
ビデオデータの現在コーディングユニット(CU)の現在予測ユニット(PU)を、ラインのしきい値の数よりも大きく前記現在PUに含まれるラインの数よりも小さい数のラインを各々が含む複数のサブPUに分割すると決定するステップと、
前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定するステップと、
符号化ビデオビットストリーム内で、前記複数のサブPUのうちのサブPUの中にあるビデオデータのラインの数を明示的に示すシンタックス要素を符号化するステップと
を含む、方法。
【請求項１１】
前記複数のサブPU用の前記それぞれの予測子ブロックが、ビデオデータの前記現在CUを含むピクチャの中にある、請求項10に記載の方法。
【請求項１２】
前記複数のサブPUが多くとも2つのサブPUを含む、請求項10に記載の方法。
【請求項１３】
前記複数のサブPUのうちの最後のサブPUを除く前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUの中にあるラインのそれぞれの数を明示的に示すそれぞれのシンタックス要素を符号化するステップ
をさらに含む、請求項10に記載の方法。
【請求項１４】
前記現在PUが前記複数のサブPUに水平方向または垂直方向のどちらで分割されているかの指示を符号化するステップをさらに含む、請求項10に記載の方法。
【請求項１５】
分割されていないPUおよびサブPUを合わせた総数が多くとも4であり、分割されていないPUがサブPUを含まない、請求項10に記載の方法。
【請求項１６】
前記複数のサブPUのうちの前記サブPUの中にあるラインの前記数を明示的に示す前記シンタックス要素が第1のシンタックス要素であり、前記方法が、
前記符号化ビデオビットストリーム内で、ビデオデータの前記現在CUの前記現在PUについて、前記現在PUが前記複数のサブPUに分割されているか否かを示す第2のシンタックス要素を符号化するステップ
をさらに含み、
前記第1のシンタックス要素を符号化するステップが、前記現在PUを前記複数のサブPUに分割するとの決定に応答して前記第1のシンタックス要素を符号化するステップを含む、
請求項10に記載の方法。
【請求項１７】
前記複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのベクトル予測子を特定するステップと、
前記複数のサブPUのうちのそれぞれのサブPUごとに、各々がそれぞれのベクトルと前記それぞれのベクトル予測子との間のそれぞれの差分を示すそれぞれのベクトル差分(VD)を特定するステップと、
前記符号化ビデオビットストリーム内で、それぞれのサブPUごとに、前記それぞれのVDの指示および前記それぞれのベクトル予測子の指示を符号化するステップと
をさらに含む、請求項10に記載の方法。
【請求項１８】
前記それぞれのベクトル予測子を特定するステップが、候補ベクトル予測子のそれぞれのリストを決定するステップを含み、前記方法が、
現在サブPUの候補ベクトル予測子の前記それぞれのリストの中に、前にコーディングされたサブPU用の前記それぞれのベクトルを含めるステップ
をさらに含む、請求項17に記載の方法。
【請求項１９】
ビデオデータを符号化または復号するためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサが、
符号化ビデオビットストリームから、ビデオデータの現在コーディングユニット(CU)の現在予測ユニット(PU)について、前記現在PUの複数のサブPUのうちのサブPUの中にあるビデオデータのラインの数を明示的に示すシンタックス要素を符号化または復号することであって、ラインの前記数が、ラインのしきい値の数よりも大きく前記現在PUに含まれるラインの数よりも小さいラインの任意の数を含むように選択される、符号化または復号することと、
前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定することと、
ビデオデータの前記それぞれの予測子ブロックに基づいて、前記複数のサブPUのうちの各サブPUを復元することと
を行うように構成される、デバイス。
【請求項２０】
前記複数のサブPU用の前記それぞれの予測子ブロックが、ビデオデータの前記現在CUを含むピクチャの中にある、請求項19に記載のデバイス。
【請求項２１】
前記複数のサブPUが多くとも2つのサブPUを含む、請求項19に記載のデバイス。
【請求項２２】
前記1つまたは複数のプロセッサが、
前記複数のサブPUのうちの最後のサブPUを除く前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUの中にあるラインのそれぞれの数を明示的に示すそれぞれのシンタックス要素を符号化または復号するようにさらに構成される、
請求項19に記載のデバイス。
【請求項２３】
前記現在PUが前記複数のサブPUに水平方向または垂直方向のどちらで分割されているかの指示を符号化または復号するように、前記1つまたは複数のプロセッサがさらに構成される、請求項19に記載のデバイス。
【請求項２４】
分割されていないPUおよびサブPUを合わせた総数が多くとも4であり、分割されていないPUがサブPUを含まない、請求項19に記載のデバイス。
【請求項２５】
前記複数のサブPUのうちの前記サブPUの中にあるラインの前記数を明示的に示す前記シンタックス要素が第1のシンタックス要素であり、前記1つまたは複数のプロセッサが、
前記符号化ビデオビットストリームから、ビデオデータの前記現在CUの前記現在PUについて、前記現在PUが前記複数のサブPUに分割されているか否かを示す第2のシンタックス要素を符号化または復号するようにさらに構成され、
前記1つまたは複数のプロセッサが、前記現在PUが前記複数のサブPUに分割されていることを示す前記第2のシンタックス要素に基づいて、前記第1のシンタックス要素を符号化または復号するようにさらに構成される、
請求項19に記載のデバイス。
【請求項２６】
前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUとそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定するために、前記1つまたは複数のプロセッサが、
前記複数のサブPUのうちのそれぞれのサブPUごとに、それぞれのベクトル予測子を特定することと、
前記複数のサブPUのうちのそれぞれのサブPUごとに、各々がそれぞれのベクトルと前記それぞれのベクトル予測子との間のそれぞれの差分を示すそれぞれのベクトル差分(VD)を特定することと、
それぞれのサブPUごとに、前記それぞれのベクトル予測子および前記それぞれのVDに基づいて前記それぞれのベクトルを特定することと
を行うように構成される、請求項19に記載のデバイス。
【請求項２７】
前記それぞれのベクトル予測子を特定するために、前記1つまたは複数のプロセッサが候補ベクトル予測子のそれぞれのリストを決定するように構成され、前記1つまたは複数のプロセッサが、
現在サブPUの候補ベクトル予測子の前記それぞれのリストの中に、前にコーディングされたサブPU用の前記それぞれのベクトルを含めるようにさらに構成される、
請求項26に記載のデバイス。
【請求項２８】
前記デバイスがビデオデコーダを備え、前記シンタックス要素を符号化または復号するために、前記1つまたは複数のプロセッサが前記シンタックス要素を復号するように構成される、請求項19に記載のデバイス。
【請求項２９】
前記デバイスがビデオエンコーダを備え、前記シンタックス要素を符号化または復号するために、前記1つまたは複数のプロセッサが前記シンタックス要素を符号化するように構成される、請求項19に記載のデバイス。
【請求項３０】
実行されると、ビデオ符号化デバイスまたはビデオ復号デバイスの1つまたは複数のプロセッサに、
ビデオデータの現在コーディングユニット(CU)の現在予測ユニット(PU)について、前記現在PUの複数のサブPUのうちのサブPUの中にあるビデオデータのラインの数を明示的に示すシンタックス要素を符号化または復号することであって、ラインの前記数が、ラインのしきい値の数よりも大きく前記現在PUに含まれるラインの数よりも小さいラインの任意の数を含むように選択される、符号化または復号することと、
前記複数のサブPUのうちのそれぞれのサブPUごとに、前記それぞれのサブPUとビデオデータの複数の前に復号されたブロックからのそれぞれの予測子ブロックとの間の変位を表すそれぞれのベクトルを特定することと、
ビデオデータの前記それぞれの予測子ブロックに基づいて、前記複数のサブPUのうちの各サブPUを復元することと
を行わせる命令を記憶する、コンピュータ可読記憶媒体。
【国際調査報告】
2018507616.tif 000021
2018507616.tif 000022
2018507616.tif 000023