(57)【要約】  ビデオコーディングの方法を提供する。方法は、第1のブロックのインター予測処理を行うステップであって、インター予測処理が参照ブロックのサンプルのサブピクセル補間フィルタリングを含む、ステップと、第2のブロックのイントラ予測処理を行うステップであって、イントラ予測処理が参照サンプルのサブピクセル補間フィルタリングを含む、ステップとを含む。方法は、整数参照サンプル位置と分数参照サンプルの位置との間のサブピクセルオフセットに基づいて、サブピクセル補間フィルタリングに対する補間フィルタ係数を選択するステップであって、同じサブピクセルオフセットに対して、同じ補間フィルタ係数がイントラ予測処理およびインター予測処理に対して選択される、ステップをさらに含む。【特許請求の範囲】
【請求項１】
ビデオコーディングの方法であって、前記方法は、
第1のブロックのインター予測処理を行うステップであって、前記インター予測処理が参照ブロックのサンプルのサブピクセル補間フィルタリングを含む、ステップと、
第2のブロックのイントラ予測処理を行うステップであって、前記イントラ予測処理が参照サンプルのサブピクセル補間フィルタリングを含む、ステップと
を含み、前記方法は、
整数参照サンプル位置と分数参照サンプルの位置との間のサブピクセルオフセットに基づいて、前記サブピクセル補間フィルタリングに対する補間フィルタ係数を選択するステップであって、同じサブピクセルオフセットに対して、同じ補間フィルタ係数がイントラ予測処理およびインター予測処理に対して選択される、ステップ
をさらに含む、方法。
【請求項２】
選択された前記同じ補間フィルタ係数が、インター予測処理用のクロマサンプルおよびイントラ予測処理用のルマサンプルの前記サブピクセル補間フィルタリングのために使用される、請求項1に記載の方法。
【請求項３】
前記インター予測処理が、イントラブロックコピー処理である、請求項1または2に記載の方法。
【請求項４】
インター予測処理およびイントラ予測処理において使用される前記補間フィルタ係数が、ルックアップテーブルからフェッチされる、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記サブピクセル補間フィルタリングのために4タップフィルタが使用される、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記補間フィルタ係数を選択するステップが、サブピクセルオフセットと補間フィルタ係数との間の以下の関係に基づいて、前記補間フィルタ係数を選択するステップを含み、
【表１】
2021533607.tif 000039
前記サブピクセルオフセットが、1/32サブピクセル解像度で定義され、c0からc3が、前記補間フィルタ係数を表す、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記補間フィルタ係数を選択するステップが、サブピクセルオフセットと補間フィルタ係数との間の以下の関係に基づいて、分数位置に対する前記補間フィルタ係数を選択するステップを含み、
【表２】
2021533607.tif 000040
前記サブピクセルオフセットが、1/32サブピクセル解像度で定義され、c0からc3が、前記補間フィルタ係数を表す、請求項1から6のいずれか一項に記載の方法。
【請求項８】
請求項1から7のいずれか一項に記載の方法を実行するための処理回路を備える、エンコーダ。
【請求項９】
請求項1から7のいずれか一項に記載の方法を実行するための処理回路を備える、デコーダ。
【請求項１０】
請求項1から7のいずれか一項に記載の方法を実行するためのプログラムコードを含む、コンピュータプログラム。
【請求項１１】
デコーダであって、
1つまたは複数のプロセッサと、
前記プロセッサに接続され、前記プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体と
を備え、前記プログラミングは、前記プロセッサによって実行されると、請求項1から7のいずれか一項に記載の方法を実行するように前記デコーダを構成する、デコーダ。
【請求項１２】
エンコーダであって、
1つまたは複数のプロセッサと、
前記プロセッサに接続され、前記プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体と
を備え、前記プログラミングは、前記プロセッサによって実行されると、請求項1から7のいずれか一項に記載の方法を実行するように前記エンコーダを構成する、エンコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像および/またはビデオのコーディングおよび復号の技術分野に関し、詳細には、イントラ予測およびインター予測のために使用される補間フィルタリングのための方法および装置に関する。
【背景技術】
【０００２】
DVDディスクの導入以来、デジタルビデオは広く使用されている。ビデオは、送信媒体を使用して符号化され送信される。視聴者はビデオを受信し、視聴デバイスは、ビデオを復号し表示するために使用される。長年にわたり、ビデオの品質は、たとえば、より高い解像度、色深度およびフレームレートにより、改善されてきた。これは、今日では一般的にインターネットおよびモバイル通信ネットワークを介して移送される、より大きなデータストリームをもたらしている。
【０００３】
しかしながら、より高い解像度のビデオはより多くの情報を有するため、これらのビデオは、一般に、より多くの帯域幅を必要とする。帯域幅要件を低減するために、ビデオの圧縮に関連するビデオコーディング規格が導入されている。ビデオが符号化されるので、帯域幅要件(または、記憶の場合、対応するメモリ要件)が低減される。この低減はしばしば品質を犠牲にする。したがって、ビデオコーディング規格は、帯域幅要件と品質の間の均衡を見出すことを試みる。
【０００４】
高効率ビデオコーディング(HEVC: High Efficiency Video Coding)は、当業者に一般に知られているビデオコーディング規格の一例である。HEVCでは、コーディングユニット(CU)は、予測ユニット(PU)または変換ユニット(TU)に分割される。多目的ビデオコーディング(VVC: Versatile Video Coding)次世代規格は、ジョイントビデオ調査チーム(JVET: Joint Video Exploration Team)とも呼ばれるパートナーシップでともに作業する、ITU-Tビデオコーディングエキスパートグループ(VCEG: Video Coding Experts Group)標準化組織およびISO/IECムービングピクチャエキスパートグループ(MPEG: Moving Picture Experts Group)標準化組織の最近のジョイントビデオプロジェクトである。VVCは、ITU-T H.266/次世代ビデオコーディング(NGVC: Next Generation Video Coding)規格とも呼ばれる。VVCでは、最大変換長に対して大き過ぎるサイズを有するCUが必要な場合を除いて、複数の区分化タイプの概念、すなわち、CU概念、PU概念、およびTU概念の分離、を取り除くことができ、CU区分化形状に対してより高い柔軟性をサポートする。
【０００５】
これらのコーディングユニット(CU)(ブロックとも呼ばれる)の処理は、エンコーダによって指定される、それらのサイズ、空間位置、およびコーディングモードに依存する。コーディングモードは、予測のタイプ、すなわち、イントラ予測モードおよびインター予測モードに従って、2つのグループに分類され得る。イントラ予測モードは、再構築されているブロックのサンプルに対する予測値を計算するために、同じピクチャ(フレームまたは画像とも呼ばれる)のサンプルを使用して、参照サンプルを生成する。イントラ予測は、空間予測と呼ばれる。インター予測モードは、時間予測のために設計され、現在ピクチャのブロックのサンプルを予測するために、前の、現在の(同じ)、または次のピクチャの参照サンプルを使用する。
【０００６】
ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC 1/SC 29/WG 11)は、現在のHEVC規格(スクリーンコンテンツコーディングおよびハイダイナミックレンジコーディングに対するその現在の拡張および短期の拡張を含む)の圧縮能力を著しく超える圧縮能力を備えた将来のビデオコーディング技術の標準化に対する潜在的な必要性を研究している。これらのグループは、この分野の専門家によって提案された圧縮技術設計を評価するための、ジョイントビデオ調査チーム(JVET)と呼ばれるジョイントコラボレーション取組みにおいてこの調査活動にともに取り組んでいる。
【０００７】
VTM(多目的テストモデル)規格は、35個のイントラモードを使用するが、BMS(ベンチマークセット)は、67個のイントラモードを使用する。
【０００８】
BMSにおいて現在説明しているイントラモードコーディング方式は、複雑であると見なされ、無選択モードセットの欠点は、指標リストが、常に一定であり、(たとえば、その近接するブロックイントラモードに対する)現在のブロック属性に基づいて適応的でないことである。
【発明の概要】
【課題を解決するための手段】
【０００９】
イントラ予測およびインター予測のための補間フィルタリングのための装置および方法が開示される。この装置および方法は、同じサンプル補間プロセスを使用して、インター予測およびイントラ予測のための計算手順を統合し、これは、コーディング効率を改善することを可能にする。保護の範囲は、特許請求の範囲によって定義される。
【００１０】
前述のおよび他の目的は、独立請求項の主題によって達成される。さらなる実装形態は、従属請求項、明細書、および図面から明らかである。
【００１１】
特定の実施形態は添付の独立請求項において概説され、他の実施形態は従属請求項において概説される。
【００１２】
第1の態様によれば、本発明は、ビデオコーディングの方法に関し、この方法は、
−  (ピクチャまたはビデオの)第1のブロックのインター予測処理を行うステップであって、インター予測処理が(第1のブロックのまたは第1のブロックに対する)参照ブロックのサンプルの(分数位置に対する)サブピクセル補間フィルタリングを含む、ステップと、
−  (ピクチャまたはビデオの)第2のブロックのイントラ予測処理を行うステップであって、イントラ予測処理が(第2のブロックのまたは第2のブロックに対する)参照サンプルの(分数位置に対する)サブピクセル補間フィルタリングを含む、ステップと
を含み、この方法は、
−  整数参照サンプル位置と分数参照サンプルの位置との間のサブピクセルオフセットに基づいて、サブピクセル補間フィルタリングに対する補間フィルタ係数を選択するステップであって、同じサブピクセルオフセットに対して、同じ補間フィルタ係数がイントラ予測処理およびインター予測処理に対して選択される、ステップをさらに含む。
それぞれの値は、一般に、たとえば、復号ピクチャバッファ(DPB)から利用可能でないため、サブピクセル補間フィルタリングは、分数の、すなわち、非整数の参照サンプル位置に対して実行される。整数参照サンプル位置の値は、一般に、たとえば、DPBから直接的に利用可能であり、したがって、それらの値を取得するために補間フィルタリングは必要とされない。第1の態様による方法は、ビデオコーディングに対するインター予測処理およびイントラ予測処理のための方法、またはビデオコーディングに対するインター予測処理およびイントラ予測処理のためのサブピクセル補間フィルタリングのための方法と呼ばれることもあり得る。
第1の態様による実装形態では、この方法は、たとえば、整数参照サンプル位置と分数参照サンプルの位置との間の第1のサブピクセルオフセットに基づいて、(たとえば、クロマサンプルの)インター予測のためのサブピクセル補間フィルタリングに対する補間フィルタ係数(たとえば、c0からc3)の第1のセットを選択するステップと、サブピクセルオフセットが第1のサブピクセルオフセットと同じである場合、(たとえば、ルマサンプルの)イントラ予測のためのサブピクセル補間フィルタリングに対する補間フィルタ係数(c0からc3)の同じ第1のセットを選択するステップとを含み得る。
【００１３】
第1の態様による方法の可能な実装形態では、選択されたフィルタ係数は、インター予測処理用のクロマサンプルおよびイントラ予測処理用のルマサンプルのサブピクセル補間フィルタリングのために使用される。
【００１４】
第1の態様による方法の可能な実装形態では、インター予測処理は、イントラブロックコピー処理である。
【００１５】
第1の態様による方法の可能な実装形態では、インター予測処理およびイントラ予測処理において使用される補間フィルタリング係数は、ルックアップテーブルからフェッチされる。
【００１６】
第1の態様による方法の可能な実装形態では、サブピクセル補間フィルタリングに対して4タップフィルタが使用される。
【００１７】
第1の態様による方法の可能な実装形態では、補間フィルタ係数を選択するステップは、サブピクセルオフセットと補間フィルタ係数との間の以下の関係に基づいて、補間フィルタ係数を選択するステップを含む:
【００１８】
【表１】
2021533607.tif 000002
【００１９】
サブピクセルオフセットは、1/32サブピクセル解像度で定義され、c0からc3は、補間フィルタ係数を表す。
【００２０】
第1の態様による方法の可能な実装形態では、補間フィルタ係数を選択するステップは、サブピクセルオフセットと補間フィルタ係数との間の以下の関係に基づいて、分数位置に対する補間フィルタ係数を選択するステップを含む:
【００２１】
【表２】
2021533607.tif 000003
【００２２】
サブピクセルオフセットは、1/32サブピクセル解像度で定義され、c0からc3は、補間フィルタ係数を表す。
【００２３】
第2の態様によれば、本発明は、現在コーディングブロックの予測されたサンプル値を取得するビデオコーディングの方法に関し、この方法は、
現在コーディングブロックの予測されたサンプルがインター予測プロセスを使用して得られるとき、インター予測されたサンプル値を取得するために、
第1のサブピクセルオフセット値に基づいて、ルックアップテーブルからフィルタ係数を取得するプロセス(または、ステップ)、および
フィルタ係数に従って、インター予測されたサンプル値を取得するプロセス(または、ステップ)
を実行するステップと、
現在コーディングブロックの予測されたサンプルがイントラ予測プロセスを使用して得られるとき、イントラ予測されたサンプル値を取得するために、
第2のサブピクセルオフセット値に基づいて、ルックアップテーブルからフィルタ係数を取得するプロセス(または、ステップ)であって、インター予測のために使用されるルックアップテーブルがイントラ予測に対して再使用される、取得するプロセス(または、ステップ)、および
フィルタ係数に従って、イントラ予測されたサンプル値を取得するプロセス(または、プロセス)
を実行するステップとを含む。
第1の態様に関して説明したように、それぞれの値は、一般に、たとえば、復号ピクチャバッファ(DPB)から利用可能でないため、サブピクセル補間フィルタリングは、分数の、すなわち、非整数の参照サンプル位置に対して実行される。整数参照サンプル位置の値は、一般に、たとえば、DPBから直接的に利用可能であり、したがって、それらの値を取得するために補間フィルタリングは必要とされない。第2の態様による方法は、ビデオコーディングに対するインター予測処理およびイントラ予測処理のための方法、またはビデオコーディングに対するインター予測処理およびイントラ予測処理のためのサブピクセル補間フィルタリングのための方法と呼ばれることもあり得る。
【００２４】
第2の態様による方法の可能な実装形態では、ルックアップテーブルからのフィルタ係数は、イントラ予測プロセスまたはインター予測プロセスのいずれかに対する分数サンプル位置補間において使用される。
【００２５】
第2の態様による方法の可能な実装形態では、イントラ予測プロセスにおいてまたはイントラ予測プロセスのために使用されるルックアップテーブルは、インター予測プロセスにおいてまたはインター予測プロセスのために使用されるルックアップテーブルと同じである。
【００２６】
第2の態様による方法の可能な実装形態では、ルックアップテーブルは、以下のように記述される:
【００２７】
【表３】
2021533607.tif 000004
【００２８】
「サブピクセルオフセット」欄は、1/32サブピクセル解像度で定義され、c0、c1、c2、c3は、フィルタ係数である。
【００２９】
第2の態様による方法の可能な実装形態では、ルックアップテーブルは、以下のように記述される:
【００３０】
【表４】
2021533607.tif 000005
【００３１】
「サブピクセルオフセット」欄は、1/32サブピクセル解像度で定義され、c0、c1、c2、c3は、フィルタ係数である。
【００３２】
第2の態様による方法の可能な実装形態では、インター予測されたサンプル値は、現在コーディングブロックのクロマ成分に対して使用される。
【００３３】
第2の態様による方法の可能な実装形態では、イントラ予測されたサンプル値は、現在コーディングブロックのルマ成分に対して使用される。
【００３４】
第2の態様による方法の可能な実装形態では、イントラ予測において使用されるルックアップテーブルは、イントラ予測において使用される主参照側のサイズがしきい値以下であるとき、選択される。
【００３５】
第2の態様による方法の可能な実装形態では、しきい値は、8個のサンプルである。
【００３６】
第2の態様による方法の可能な実装形態では、インター予測プロセスは、イントラブロックコピープロセスである。
【００３７】
第3の態様によれば、本発明は、第1の態様、第2の態様、第1の態様の任意の可能な実施形態、または第2の態様の任意の可能な実施形態による方法を実行するための処理回路を備えたエンコーダに関する。
【００３８】
第4の態様によれば、本発明は、第1の態様、第2の態様、第1の態様の任意の可能な実施形態、または第2の態様の任意の可能な実施形態による方法を実行するための処理回路を備えたデコーダに関する。
【００３９】
第5の態様によれば、本発明は、ビデオストリームを復号するための装置に関し、装置はプロセッサおよびメモリを含む。メモリは、第1の態様、第2の態様、第1の態様の任意の可能な実施形態、または第2の態様の任意の可能な実施形態による方法をプロセッサに実行させる命令を記憶する。
【００４０】
第6の態様によれば、本発明は、ビデオストリームを復号するための装置に関し、装置はプロセッサおよびメモリを含む。メモリは、第1の態様、第2の態様、第1の態様の任意の可能な実施形態、または第2の態様の任意の可能な実施形態による方法をプロセッサに実行させる命令を記憶する。
【００４１】
第7の態様によれば、実行されると、ビデオデータをコーディングするように構成された1つまたは複数のプロセッサをもたらす命令を記憶した、コンピュータ可読記憶媒体が提案される。これらの命令は、1つまたは複数のプロセッサに、第1の態様、第2の態様、第1の態様の任意の可能な実施形態、または第2の態様の任意の可能な実施形態による方法を実行させる。
【００４２】
第8の態様によれば、本発明は、コンピュータ上で実行されると、第1の態様、第2の態様、第1の態様の任意の可能な実施形態、または第2の態様の任意の可能な実施形態による方法を実行するためのプログラムコードを備えたコンピュータプログラムに関する。
【００４３】
1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、明細書、図面、および特許請求の範囲から明らかになるであろう。
【００４４】
本発明の以下の実施形態は、添付の図面(figures)および図面(drawings)を参照してより詳細に説明される。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施形態を実装するように構成されたビデオコーディングシステムの一例を示すブロック図である。
【図２】本発明の実施形態を実装するように構成されたビデオエンコーダの一例を示すブロック図である。
【図３】本発明の実施形態を実装するように構成されたビデオデコーダの1つの例示的な構造を示すブロック図である。
【図４】67個のイントラ予測モードの一例を示す図である。
【図５】インター予測およびイントラ予測において使用される補間フィルタの一例を示す図である。
【図６】インター予測およびイントラ予測において使用される補間フィルタの別の例を示す図である。
【図７】インター予測およびイントラ予測において使用される補間フィルタの別の例を示す図である。
【図８】インター予測およびイントラ予測のために4タップ補間フィルタを再使用する本発明の一実施形態を示す図である。
【図９】インター予測およびイントラ予測のために4タップ補間フィルタを再使用する本発明の別の実施形態を示す図である。
【図１０】インター予測およびイントラ予測のために4タップ係数を再使用する本発明の一実施形態を示す図である。
【図１１】35イントラ予測モードの一例を示す図である。
【図１２】補間フィルタ選択の一例を示す図である。
【図１３】四分木区分化および二分木区分化の一例を示す図である。
【図１４】矩形ブロックの配向に関する例を示す図である。
【図１５】補間フィルタ選択の別の例を示す図である。
【図１６】補間フィルタ選択の別の例を示す図である。
【図１７】補間フィルタ選択の別の例を示す図である。
【図１８】ネットワークデバイスの概略図である。
【図１９】装置のブロック図である。
【図２０】本発明の一実施形態に関する流れ図である。
【発明を実施するための形態】
【００４６】
以下では、同一の参照符号は、別段明示的に規定されない限り、同一、または少なくとも機能的に同等の特徴を指す。
【００４７】
以下の説明において、添付の図面を参照し、これらの図面は、本開示の部分を形成し、例として、本発明の実施形態の特定の態様または本発明の実施形態が使用され得る特定の態様を示す。本発明の実施形態は、他の態様において使用可能であり、図面に示されていない構造的または論理的変更を含むことが理解される。したがって、以下の詳細な説明は、限定的な意味で理解すべきではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。
【００４８】
たとえば、説明する方法に関する本開示は、この方法を実行するように構成された、対応するデバイスまたはシステムにも有効であり得、逆も同様であることが理解される。たとえば、1つまたは複数の特定の方法ステップについて説明する場合、対応するデバイスは、そのような1つまたは複数のユニットが図面において明示的に説明または示されていない場合であっても、説明する1つまたは複数の方法ステップを実行するための1つまたは複数のユニット(たとえば、1つまたは複数のステップを実行する1つのユニット、または複数のステップのうちの1つまたは複数を各々が実行する複数のユニット)、たとえば、機能ユニットを含み得る。他方、たとえば、特定の装置について1つまたは複数のユニット、たとえば、機能ユニットに基づいて説明する場合、対応する方法は、そのような1つまたは複数のステップが図面において明示的に説明または示されていない場合であっても、1つまたは複数のユニットの機能性を実行するための1つのステップ(たとえば、1つまたは複数のユニットの機能性を実行する1つのステップ、または複数のユニットのうちの1つまたは複数のユニットの機能性を各々が実行する複数のステップ)を含み得る。さらに、本明細書で説明する様々な例示的な実施形態および/または態様の特徴は、別段特に記載されない限り、互いに組み合わされてよいことが理解される。
【００４９】
頭字語および用語の定義
JEM  ジョイント調査モデル(将来のビデオコーディング調査用のソフトウェアコードベース)
JVET  ジョイントビデオエキスパートチーム
LUT  ルックアップテーブル
QT  四分木
QTBT  四分木および二分木
RDO  レート歪み最適化
ROM  読取り専用メモリ
VTM  VVCテストモデル
VVC  多用途ビデオコーディング、標準化プロジェクトはJVETにより開発された
CTU/CTB  コーディングツリーユニット/コーディングツリーブロック
CU/CB  コーディングユニット/コーディングブロック
PU/PB  予測ユニット/予測ブロック
TU/TB  変換ユニット/変換ブロック
HEVC  高効率ビデオコーディング
【００５０】
H.264/AVCおよびHEVCなどのビデオコーディング方式は、ブロックベースのハイブリッドビデオコーディングの成功原理に沿って設計されている。この原理を使用して、ピクチャは最初にブロックに区分化され、次いで、イントラピクチャ予測またはインターピクチャ予測を使用することによって、各ブロックが予測される。
【００５１】
H.261以来、いくつかのビデオコーディング規格は、「損失のある(lossy)ハイブリッドビデオコーデック」のグループに属する(すなわち、サンプル領域内の空間予測および時間予測と変換領域内で量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各ピクチャは、一般に、重複しないブロックのセットに区分化され、コーディングは、一般に、ブロックレベルで実行される。言い換えれば、エンコーダにおいて、ビデオは、一般に、たとえば、予測ブロックを生成するために空間(イントラピクチャ)予測および時間(インターピクチャ)予測を使用し、残差ブロックを取得するために予測ブロックを現在ブロック(現在処理されている/処理されることになるブロック)から減算し、残差ブロックを変換し、送信されることになるデータ量を低減する(圧縮)ために変換領域内で残差ブロックを量子化することによって、ブロック(ピクチャブロック)レベルで処理される、すなわち、符号化されるが、デコーダにおいて、エンコーダと対照的に、表現のために現在ブロックを再構築するために、符号化または圧縮されたブロックに逆処理が部分的に適用される。さらに、エンコーダは、両方が同一の予測(たとえば、イントラ予測およびインター予測)および/または後続ブロックを処理、すなわち、コーディングするための再構築を生成することになるように、デコーダ処理ループを複製する。
【００５２】
本明細書で使用する「ブロック」という用語は、ピクチャまたはフレームの一部分であり得る。説明の便宜上、本発明の実施形態は、本明細書において、ITU-Tビデオコーディングエキスパートグループ(VCEG)およびISO/IECモーションピクチャエキスパートグループ(MPEG: Motion Picture Experts Group)のビデオコーディングに対するジョイントコラボレーションチーム(JCT-VC)によって開発された、高効率ビデオコーディング(HEVC)または多目的ビデオコーディング(VVC)の基準ソフトウェアを参照しながら説明される。本発明の実施形態はHEVCまたはVVCに限定されないことを当業者は理解するであろう。当業者は、CU、PU、およびTUを参照することがある。HEVCでは、CTUは、コーディングツリーとして示される四分木構造を使用することによってCUに分割される。インターピクチャ(時間)予測を使用してピクチャエリアをコーディングするか、またはイントラピクチャ(空間)予測を使用してピクチャエリアをコーディングするかに関する判断は、CUレベルで行われる。各CUは、PU分割タイプに従って、1個、2個、または4個のPUにさらに分割され得る。1個のPUの中で、同じ予測プロセスが適用され、関連情報がPUベースでデコーダに送信される。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを得た後、CUは、CUに対するコーディングツリーと同様の別の四分木構造に従って、変換ユニット(TU)に区分化され得る。最新のビデオ圧縮テクニカル開発では、コーディングブロックを区分化するために、四分木および二分木(QTBT)区分化が使用される。QTBTブロック構造において、CUは、正方形または矩形のいずれかの形状を有し得る。たとえば、コーディングツリーユニット(CTU)は、四分木構造によって最初に区分化される。四分木リーフノードは、二分木構造によってさらに区分化される。二分木リーフノードは、コーディングユニット(CU)と呼ばれ、さらなる区分化なしに、予測および変換処理のために、そのセグメント化が使用される。これは、CU、PU、およびTUがQTBTコーディングブロック構造において同じブロックサイズを有することを意味する。同時に、QTBTブロック構造とともに使用されるべく複数の区分化、たとえば、三分木区分化も提案された。
【００５３】
ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC 1/SC 29/WG 11)は、現在のHEVC規格(スクリーンコンテンツコーディングおよびハイダイナミックレンジコーディングに対するその現在の拡張および短期の拡張を含む)の圧縮能力を著しく超える圧縮能力を備えた将来のビデオコーディング技術の標準化に対する潜在的な必要性を研究している。これらのグループは、この分野の専門家によって提案された圧縮技術設計を評価するための、ジョイントビデオ調査チーム(JVET)と呼ばれるジョイントコラボレーション取組みにおいてこの調査活動にともに取り組んでいる。
【００５４】
VTM(多目的テストモデル)は、35個のイントラモードを使用するが、BMS(ベンチマークセット)は、67個のイントラモードを使用する。イントラ予測は、所与のフレームのみが必要とされ得る場合、圧縮効率を高めるために、多くのビデオコーディングフレームワークにおいて使用される機構である。
【００５５】
本明細書で使用するビデオコーディングは、ビデオまたはビデオシーケンスを形成する、ピクチャのシーケンスの処理を指す。ピクチャ、画像、またはフレームという用語は、ビデオコーディングの分野において、ならびに本出願において、同義語として使用され得／使用される。各ピクチャは、一般に、重複しないブロックのセットに区分化される。ピクチャの符号化/復号は、一般に、ブロックレベルに対して実行され、ブロックレベルで、たとえば、予測ブロックを現在ブロック(現在処理されている/処理されることになるブロック)から減算して、送信されることになるデータ量を低減する（圧縮）ためにさらに変換され量子化される残差ブロックを取得するために、インターフレーム予測またはイントラフレーム予測を使用して予測ブロックを生成し、他方で、デコーダサイドにおいて、表現のためにブロックを再構築するために、符号化/圧縮されたブロックに逆処理が適用される。
【００５６】
図1は、例示的なコーディングシステム10、たとえば、本出願(本開示)の技法を利用し得るビデオコーディングシステム10を示す概略的ブロック図である。ビデオコーディングシステム10のエンコーダ20(たとえば、ビデオエンコーダ20)およびデコーダ30(たとえば、ビデオデコーダ30)は、本出願で説明する様々な例による技法を実行するように構成され得るデバイスの例を表す。図1に示すように、コーディングシステム10は、たとえば符号化されたデータ13を復号するための宛先デバイス14に、符号化されたデータ13たとえば符号化されたピクチャ13を提供するように構成された、ソースデバイス12を備える。
【００５７】
ソースデバイス12は、エンコーダ20を備え、追加として、すなわち、随意に、ピクチャソース16、事前処理ユニット18、たとえば、ピクチャ事前処理ユニット18、および通信インターフェースまたは通信ユニット22を備えてよい。
【００５８】
ピクチャソース16は、たとえば、実世界ピクチャをキャプチャするための、任意の種類のピクチャキャプチャデバイス、ならびに/あるいは任意の種類のピクチャまたはコメント(スクリーンコンテンツコーディングに関する、スクリーン上の一部のテキストも符号化されることになるピクチャまたは画像の一部分と見なされる)生成デバイス、たとえば、コンピュータ動画ピクチャを生成するためのコンピュータグラフィックスプロセッサ、あるいは実世界ピクチャ、コンピュータ動画ピクチャ(たとえば、スクリーンコンテンツ、仮想現実(VR)ピクチャ)、および/またはそれらの任意の組合せ(たとえば、拡張現実(AR)ピクチャ)を取得および/または提供するための任意の種類のデバイスを含んでよいか、またはそれらであってよい。
【００５９】
(デジタル)ピクチャは、強度値を有するサンプルの二次元アレイまたは二次元行列であるか、またはその二次元アレイまたは二次元行列と見なされてよい。アレイ内のサンプルは、ピクセル(ピクチャ要素の略式)またはペル(pel)と呼ばれることもある。アレイまたはピクチャの水平方向および垂直方向(または、軸)のサンプル数は、ピクチャのサイズおよび/または解像度を定義する。色を表現するために、一般に、3つの色成分が採用され、すなわち、ピクチャは、表現され得るか、または3つのサンプルアレイを含み得る。RBGフォーマットまたは色空間では、ピクチャは、対応する赤、緑、および青のサンプルアレイを含む。しかしながら、ビデオコーディングでは、各ピクセルは、一般に、輝度/色度フォーマットまたは色空間、たとえば、Y(ときには、代わりに、Lも使用される)によって示される輝度成分、ならびにCbおよびCrによって示される2つの色度成分を含む、YCbCrで表される。輝度(または、短く、ルマ)成分Yは、明るさまたは階調強度(たとえば、グレイスケールピクチャにおけるような)を表し、2つの色度(または、短く、クロマ)成分CbおよびCrは、色度または色情報成分を表す。したがって、YCbCrフォーマットのピクチャは、輝度サンプル値(Y)の輝度サンプルアレイ、および色度値(CbおよびCr)の2つの色度サンプルアレイを含む。RGBフォーマットのピクチャは、YCbCrフォーマットに変換(converted)または変換(transformed)されることが可能であり、逆も同様であり、このプロセスは、色変換(transformation)または色変換(conversion)とも呼ばれる。ピクチャがモノクロである場合、ピクチャは、輝度サンプルアレイのみを含み得る。
【００６０】
ピクチャソース16(たとえば、ビデオソース16)は、たとえば、ピクチャをキャプチャするためのカメラ、メモリ、たとえば、前にキャプチャまたは生成されたピクチャを含むかまたはそれを記憶するピクチャメモリ、および/またはピクチャを取得または受信するための任意の種類のインターフェース(内部または外部)であってよい。たとえば、カメラは、ローカルカメラ、または、ソースデバイス内に一体化された一体化カメラであってよく、メモリは、ローカルメモリ、または、たとえばソースデバイス内に一体化された、一体化メモリであってよい。たとえば、インターフェースは、外部ビデオソース、たとえば、カメラなどの外部ピクチャキャプチャデバイス、外部メモリ、または外部コンピュータグラフィックスプロセッサなどの外部ピクチャ生成デバイス、コンピュータ、あるいはサーバから、ピクチャを受信するための外部インターフェースであってよい。インターフェースは、任意の種類のインターフェース、たとえば、任意の特性を有するかまたは標準化されたインターフェースプロトコルによる、ワイヤードインターフェースまたはワイヤレスインターフェース、光インターフェースであってよい。ピクチャデータ17を取得するためのインターフェースは、通信インターフェース22と同じインターフェースであってよく、または通信インターフェース22の一部分であってもよい。
【００６１】
事前処理ユニット18および事前処理ユニット18によって実行される処理と対照的に、ピクチャまたはピクチャデータ17(たとえば、ビデオデータ16)は、生ピクチャまたは生ピクチャデータ17と呼ばれることもある。
【００６２】
事前処理ユニット18は、(生)ピクチャデータ17を受信し、ピクチャデータ17に対して事前処理を実行して、事前処理ピクチャ19または事前処理ピクチャデータ19を取得するように構成される。事前処理ユニット18によって実行される事前処理は、たとえば、トリミング、カラーフォーマット変換(たとえば、RGBからYCbCrへの)、色補正、またはノイズ除去を含んでよい。事前処理ユニット18は任意選択の構成要素であってよいことが理解され得る。
【００６３】
エンコーダ20(たとえば、ビデオエンコーダ20)は、事前処理ピクチャデータ19を受信し、符号化されたピクチャデータ21を提供するように構成される(さらなる詳細は、以下で、たとえば、図2に基づいて説明される)。
【００６４】
ソースデバイス12の通信インターフェース22は、符号化されたピクチャデータ21を受信すること、および、それを、記憶または直接的再構築のために、別のデバイス、たとえば、宛先デバイス14または任意の他のデバイスに送信すること、または、符号化されたデータ13を記憶し、かつ/または符号化されたデータ13を別のデバイス、たとえば、宛先デバイス14または復号もしくは記憶のための任意の他のデバイスに送信する前のそれぞれのために、符号化されたピクチャデータ21を処理することを行うように構成され得る。
【００６５】
宛先デバイス14は、デコーダ30(たとえば、ビデオデコーダ30)を備え、追加で、すなわち、任意選択で、通信インターフェースまたは通信ユニット28、後処理ユニット32、およびディスプレイデバイス34を備え得る。
【００６６】
宛先デバイス14の通信インターフェース28は、符号化されたピクチャデータ21または符号化されたデータ13を、たとえば、ソースデバイス12から直接的に、または任意の他のソース、たとえば、記憶デバイス、たとえば、符号化されたピクチャデータ記憶デバイスから受信するように構成される。
【００６７】
通信インターフェース22および通信インターフェース28は、ソースデバイス12と宛先デバイス14との間の直接的な通信リンク、たとえば、直接的なワイヤード接続またはワイヤレス接続を介して、または、任意の種類のネットワーク、たとえば、ワイヤードネットワークもしくはワイヤレスネットワークもしくはそれらの任意の組合せ、または任意の種類のプライベートネットワークおよびパブリックネットワーク、またはそれらの任意の種類の組合せを介して、符号化されたピクチャデータ21または符号化されたデータ13を送信または受信するように構成され得る。
【００６８】
通信インターフェース22は、たとえば、通信リンクまたは通信ネットワークを介して送信するために、符号化されたピクチャデータ21を適切なフォーマット、たとえば、パケットにパッケージングするように構成される。
【００６９】
通信インターフェース22の対応物を形成する通信インターフェース28は、たとえば、符号化されたピクチャデータ21を取得するために、符号化されたデータ13をパッケージング解除するように構成され得る。
【００７０】
通信インターフェース22と通信インターフェース28は両方とも、ソースデバイス12から宛先デバイス14を指す、図1Aの符号化されたピクチャデータ13に対する矢印によって示されるような一方向通信インターフェース、または双方向通信インターフェースとして構成されてよく、たとえば、接続をセットアップして、通信リンクおよび/またはデータ送信、たとえば、符号化されたピクチャデータ送信に関する任意の他の情報を肯定応答および交換するために、たとえば、メッセージを送信および受信するように構成されてよい。
【００７１】
デコーダ30は、符号化されたピクチャデータ21を受信し、復号されたピクチャデータ31または復号されたピクチャ31を提供するように構成される(さらなる詳細は、以下で、たとえば、図3に基づいて説明される)。
【００７２】
宛先デバイス14のポストプロセッサ32は、後処理ピクチャデータ33、たとえば、後処理ピクチャ33を取得するために、復号されたピクチャデータ31(再構築されたピクチャデータとも呼ばれる)、たとえば、復号されたピクチャ31を後処理するように構成される。後処理ユニット32によって実行される後処理は、たとえば、ディスプレイデバイス34による、たとえば、表示のために復号されたピクチャデータ31を準備するための、たとえば、カラーフォーマット変換(たとえば、YCbCrからRGBへの)、色補正、トリミング、もしくはリサンプリング、または、任意の他の処理を含み得る。
【００７３】
宛先デバイス14のディスプレイデバイス34は、ピクチャを、たとえば、ユーザまたは視聴者に表示するための後処理ピクチャデータ33を受信するように構成される。ディスプレイデバイス34は、再構築されたピクチャを表すための任意の種類のディスプレイ、たとえば、一体化されたまたは外部のディスプレイまたはモニタであってよいか、またはそれを備えてよい。ディスプレイは、たとえば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オンシリコン(LCoS: liquid crystal on silicon)、デジタルライトプロセッサ(DLP: digital light processor)、または任意の種類の他のディスプレイを含み得る。
【００７４】
図1は、ソースデバイス12および宛先デバイス14を別個のデバイスとして示すが、デバイスの実施形態は、両方または両方の機能性、ソースデバイス12または対応する機能性、および宛先デバイス14または対応する機能性を備えてもよい。そのような実施形態では、ソースデバイス12または対応する機能性および宛先デバイス14または対応する機能性は、同じハードウェアおよび/またはソフトウェアを使用して、あるいは別個のハードウェアおよび/またはソフトウェア、またはそれらの任意の組合せによって実装され得る。
【００７５】
説明に基づいて当業者に明らかになるように、図1に示すような、異なるユニットの機能性またはソースデバイス12および/または宛先デバイス14内の機能性の存在および(正確な)分離は、実際のデバイスおよび適用例に応じて異なり得る。
【００７６】
エンコーダ20(たとえば、ビデオエンコーダ20)およびデコーダ30(たとえば、ビデオデコーダ30)は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ハードウェア、またはそれらの任意の組合せなど、様々な好適な回路のうちのいずれかとして実装され得る。これらの技法が部分的にソフトウェアにおいて実装される場合、デバイスは、好適な、非一時的コンピュータ可読記憶媒体内にソフトウェアに対する命令を記憶することができ、本開示の技法を実行するために、1つまたは複数のプロセッサを使用してハードウェア内で命令を実行し得る。(ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組合せなどを含む)前述のうちのいずれかは、1つまたは複数のプロセッサと見なされ得る。ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のエンコーダまたはデコーダ内に含まれてよく、それらのいずれもそれぞれのデバイス内に組み込まれたエンコーダ/デコーダ(CODEC)の部分として一体化され得る。
【００７７】
図2は、本出願の技法を実装するように構成された例示的なビデオエンコーダ20の概略/概念ブロック図を示す。図2の例では、ビデオエンコーダ20は、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、および逆変換処理ユニット212、再構築ユニット214、バッファ216、ループフィルタユニット220、復号ピクチャバッファ(DPB)230、予測処理ユニット260、およびエントロピー符号化ユニット270を備える。予測処理ユニット260は、インター予測ユニット244、イントラ予測ユニット254、およびモード選択ユニット262を含み得る。インター予測ユニット244は、動き推定ユニットおよび動き補償ユニット(図示せず)を含み得る。図2に示すビデオエンコーダ20は、ハイブリッドビデオエンコーダまたはハイブリッドビデオコーデックによるビデオエンコーダと呼ばれることもあり得る。
【００７８】
たとえば、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、予測処理ユニット260、およびエントロピー符号化ユニット270は、エンコーダ20の順方向信号経路を形成し、一方、たとえば、逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(DPB)230、予測処理ユニット260は、エンコーダの逆方向信号経路を形成し、エンコーダの逆方向信号経路は、デコーダ(図3のデコーダ30を参照されたい)の信号経路に対応する。
【００７９】
エンコーダ20は、たとえば、入力202によって、ピクチャ201、またはピクチャ201のブロック203、たとえば、ビデオまたはビデオシーケンスを形成するピクチャのシーケンスのピクチャを受信するように構成される。ピクチャブロック203は、現在ピクチャブロックまたはコーディングされることになるピクチャブロックと呼ばれることもあり、ピクチャ201は、現在ピクチャ、または(特に、同じビデオシーケンス、すなわち、現在ピクチャも含むビデオシーケンスの、前に符号化および/または復号されたピクチャなどの他のピクチャから、現在ピクチャを区別するためのビデオコーディングにおいて)コーディングされることになるピクチャと呼ばれることもある。
【００８０】
ブロック予測処理ユニット260とも呼ばれる予測処理ユニット260は、ブロック203(現在ピクチャ201の現在ブロック203)および再構築されたピクチャデータ、たとえば、同じ(現在)ピクチャの参照サンプルをバッファ216から、かつ/または参照ピクチャデータ231を復号ピクチャバッファ230からの1つまたは複数の前に復号されたピクチャから受信または取得し、予測のために、すなわち、インター予測されたブロック245またはイントラ予測されたブロック255であってよい予測ブロック265を提供するために、そのようなデータを処理するように構成される。
【００８１】
モード選択ユニット262は、残差ブロック205の計算のために、かつ再構築されたブロック215の再構築のために、予測モード(たとえば、イントラ予測モードまたはインター予測モード)および/または予測ブロック265として使用されることになる対応する予測ブロック245または255を選択するように構成され得る。
【００８２】
モード選択ユニット262の実施形態は、最良の整合、もしくは言い換えれば、最小残差(最小残差は、送信または記憶のためのより良好な圧縮を意味する)、または最小シグナリングオーバヘッド(最小シグナリングオーバヘッドは、送信または記憶のためのより良好な圧縮を意味する)を提供する、または両方を考慮するかもしくは両方の均衡をとる、区分化および予測モードを(たとえば、予測処理ユニット260によってサポートされる予測モードから)選択するように構成され得る。モード選択ユニット262は、レート歪み最適化(RDO: rate distortion optimization)に基づいて予測モードを決定するように、すなわち、最小レート歪み最適化を提供する、または関連するレート歪みが少なくとも予測モード選択基準を実現する、予測モードを選択するように構成され得る。この文脈における「最良」、「最小」、「最適」などの用語は、すべての「最良」、「最小」、「最適」などを必ずしも指すとは限らず、「準最適選択」を潜在的にもたらすが、複雑性と処理時間を低減する、しきい値または他の制約を超える値またはそれに満たない値などの終了基準または選択基準の履行を指すこともある。
【００８３】
イントラ予測ユニット254は、イントラ予測パラメータ、たとえば、選択されたイントラ予測モードに基づいて、イントラ予測ブロック255を決定するようにさらに構成される。いずれの場合も、ブロックに対するイントラ予測モードを選択した後、イントラ予測ユニット254はまた、イントラ予測パラメータ、すなわち、ブロックに対する選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット270に提供するように構成される。一例では、イントラ予測ユニット254は、後で説明するイントラ予測技法のいずれかの組合せを実行するように構成され得る。
【００８４】
図3は、本出願の技法を実装するように構成された例示的なビデオデコーダ30を示す。ビデオデコーダ30は、復号されたピクチャ131を取得するために、たとえば、エンコーダ100によって符号化された、符号化されたピクチャデータ(たとえば、符号化されたビットストリーム)21を受信するように構成される。復号プロセス中、ビデオデコーダ30は、ビデオデータ、たとえば、符号化されたビデオスライスのピクチャブロックおよび関連するシンタックス要素を表す、符号化されたビデオビットストリームをビデオエンコーダ100から受信する。
【００８５】
図3の例では、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構築ユニット314(たとえば、加算器314)、バッファ316、ループフィルタ320、復号ピクチャバッファ330、および予測処理ユニット360を備える。予測処理ユニット360は、インター予測ユニット344、イントラ予測ユニット354、およびモード選択ユニット362を含み得る。ビデオデコーダ30は、いくつかの例では、図2からのビデオエンコーダ100に関して説明した符号化経路に一般に逆の復号経路を実行し得る。
【００８６】
エントロピー復号ユニット304は、たとえば、量子化係数309および/または復号されたコーディングパラメータ(図3に示されず)、たとえば、インター予測パラメータのうちの(復号された)いずれかまたはすべて、イントラ予測パラメータ、ループフィルタパラメータ、および/または他のシンタックス要素を取得するために、符号化されたピクチャデータ21に対してエントロピー復号を実行するように構成される。エントロピー復号ユニット304は、インター予測パラメータ、イントラ予測パラメータ、および/または他のシンタックス要素を予測処理ユニット360に転送するようにさらに構成される。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
【００８７】
逆量子化ユニット310は、逆量子化ユニット110と機能が同一であってよく、逆変換処理ユニット312は、逆変換処理ユニット112と機能が同一であってよく、再構築ユニット314は、再構築ユニット114と機能が同一であってよく、バッファ316は、バッファ116と機能が同一であってよく、ループフィルタ320は、ループフィルタ120と機能が同一であってよく、復号ピクチャバッファ330は、復号ピクチャバッファ130と機能が同一であってよい。
【００８８】
予測処理ユニット360は、インター予測ユニット344およびイントラ予測ユニット354を備えてよく、インター予測ユニット344は、インター予測ユニット144に機能が類似してよく、イントラ予測ユニット354は、イントラ予測ユニット154に機能が類似してよい。予測処理ユニット360は、一般に、ブロック予測を実行しおよび/または予測ブロック365を符号化されたデータ21から取得するように、ならびに予測関連パラメータおよび/または選択された予測モードに関する情報を、たとえば、エントロピー復号ユニット304から(明示的にまたは暗示的に)受信または取得するように構成される。
【００８９】
ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、予測処理ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モード、および現在フレームまたは現在ピクチャの前に復号されたブロックからのデータに基づいて、現在ビデオスライスのピクチャブロックに対する予測ブロック365を生成するように構成される。ビデオフレームがインターコーディングされた(すなわち、B、またはP)スライスとしてコーディングされるとき、予測処理ユニット360のインター予測ユニット344(たとえば、動き補償ユニット)は、動きベクトル、およびエントロピー復号ユニット304から受信された他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックに対する予測ブロック365を作成するように構成される。インター予測の場合、予測ブロックは、参照ピクチャリストのうちの1個の中の参照ピクチャのうちの1つから作成され得る。ビデオデコーダ30は、DPB330内に記憶された参照ピクチャに基づいて、デフォルト構築技法を使用して、参照フレームリスト、すなわち、リスト0およびリスト1を構築し得る。
【００９０】
予測処理ユニット360は、動きベクトルおよび他のシンタックス要素をパースすることによって、現在ビデオスライスのビデオブロックに対する予測情報を決定するように構成され、予測情報を使用して、復号されている現在ビデオブロックに対する予測ブロックを作成する。たとえば、予測処理ユニット360は、受信されたシンタックス要素のうちのいくつかを使用して、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスに対する参照ピクチャリストのうちの1つまたは複数に関する構築情報、スライスの各インター符号化されたビデオブロックに対する動きベクトル、スライスの各インターコーディングされたビデオブロックに対するインター予測状態、および現在ビデオスライス内のビデオブロックを復号するための他の情報を決定する。
【００９１】
逆量子化ユニット310は、ビットストリーム内で提供され、エントロピー復号ユニット304によって復号された量子化変換係数を逆量子化する、すなわち、量子化解除する(de-quantize)ように構成される。逆量子化プロセスは、ビデオスライス内の各ビデオブロックに対してビデオエンコーダ100によって計算された量子化パラメータを使用して、量子化の程度、および同様に、適用されるべき逆量子化の程度を決定することを含み得る。
【００９２】
逆変換処理ユニット312は、ピクセル領域内で残差ブロックを作成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用するように構成される。
【００９３】
再構築ユニット314(たとえば、加算器314)は、たとえば、再構築された残差ブロック313のサンプル値および予測ブロック365のサンプル値を加算することによって、逆変換ブロック313(すなわち、再構築された残差ブロック313)を予測ブロック365に加えて、サンプル領域内で再構築されたブロック315を取得するように構成される。
【００９４】
ループフィルタユニット320は(コーディングループ中またはコーディングループ後のいずれかに)、たとえば、ピクセル遷移を平滑にするために、またはさもなければ、ビデオ品質を改善するために、再構築されたブロック315をフィルタリングして、フィルタリングされたブロック321を取得するように構成される。一例では、ループフィルタユニット320は、後で説明するフィルタリング技法のいずれかの組合せを実行するように構成され得る。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応オフセット(SAO: sample-adaptive offset)フィルタ、または他のフィルタ、たとえば、バイラテラルフィルタもしくは適応ループフィルタ(ALF: adaptive loop filter)もしくは鮮明化(sharpening)フィルタもしくは平滑化フィルタもしくは協調フィルタなど、1つまたは複数のループフィルタを表すことが意図される。ループフィルタユニット320はループフィルタであるとして、図3に示されるが、他の構成では、ループフィルタユニット320は、ポストループフィルタとして実装されてよい。
【００９５】
所与のフレームまたはピクチャ内の復号ビデオブロック321は、次に復号ピクチャバッファ330内に記憶され、復号ピクチャバッファ330は、後続の動き補償のために使用される参照ピクチャを記憶する。
【００９６】
デコーダ30は、ユーザに表すため、またはユーザの視聴のために、復号されたピクチャ331を、たとえば出力332を介して出力するように構成される。
【００９７】
ビデオデコーダ30の他の変形形態は、圧縮されたビットストリームを復号するために使用され得る。たとえば、デコーダ30は、ループフィルタリングユニット320なしに、出力ビデオストリームを作成し得る。たとえば、非変換ベースのデコーダ30は、一定のブロックまたはフレームに対する逆変換処理ユニット312なしに、残差信号を直接的に逆量子化し得る。別の実装形態では、ビデオデコーダ30は、単一のユニットに組み合わされた、逆量子化ユニット310および逆変換処理ユニット312を有し得る。
【００９８】
図4は、たとえば、VVCに対して提案されるような、67個のイントラ予測モードの一例を示し、67個のイントラ予測モードの複数のイントラ予測モードは、平面モード(指標0)、dcモード(指標1)、および指標2から66を有する角度モードを含み、図4の左下の角度モードは、指標2を指し、指標の番号付けは、指標66が図4の右上の最鋭角モードになるまで増分される。
【００９９】
図4に示すように、JEMの最新版は、スキューイントラ予測方向に対応するいくつかのモードを有する。これらのモードのうちのいずれかの1つに対して、ブロック内のサンプルを予測するために、ブロックサイド内の対応する位置が分数である場合、近接する参照サンプルのセットの補間が実行されるべきである。2個の隣接する参照サンプルの間の線形補間がHEVCおよびVVCにおいて使用される。精巧な4タップ補間フィルタがJEMにおいて使用される。フィルタ係数は、ブロックの幅値に応じて、またはブロックの高さ値に応じて、ガウスまたはキュービック(Cubic)のいずれになるように選択される。幅を使用するかまたは高さを使用するかに関する判断は、主参照側選択に関する判断と調和される。イントラ予測モードの値が対角モードの値以上であるとき、参照サンプルの上側は主参照側になるように選択され、使用中の補間フィルタを決定するための幅値が選択される。イントラ予測モードの値が対角モードの値よりも小さいとき、ブロックの左側から主側参照が選択され、フィルタ選択プロセスを制御するために高さ値が使用される。具体的には、選択された側の長さが8個のサンプル以下である場合、4タップキュービックフィルタが適用される。選択された側の長さが8個のサンプルを超える場合、補間フィルタとして4タップガウスフィルタが使用される。
【０１００】
JEMにおいて使用される特定のフィルタ係数は、表1に与えられている。予測されたサンプルは、以下のようにサブピクセルオフセットおよびフィルタタイプに従って、表1から選択された係数で畳み込むことによって計算される:
【０１０１】
【数１】
2021533607.tif 000006
【０１０２】
この式では、「≫」は、ビット単位の右シフト演算を示す。
【０１０３】
キュービックフィルタが選択された場合、予測されたサンプル(サンプル値)は、シーケンスパラメータセット(SPS)において定義されるか、または選択された成分のビット深度から導出されるか、のいずれかである許容値範囲にさらに切り捨てられる。
【０１０４】
【表５】
2021533607.tif 000007
【０１０５】
参照ブロックのピクセルの変位が分数であるとき、動き補償プロセスは、フィルタリングも利用して、サンプル値を予測する。JEMにおいて、輝度成分に対して8タップフィルタリングが使用され、色度成分に対して4タップ長フィルタリングが使用される。動き補間フィルタは、最初に水平に適用され、水平フィルタリングの出力が垂直にさらにフィルタリングされる。4タップ色度フィルタの係数は、表2において与えられている。
【０１０６】
【表６】
2021533607.tif 000008
【０１０７】
イントラ予測およびインター予測のために異なる補間フィルタを使用する多くのビデオコーディング解決策も存在する。具体的には、図5〜図7は、補間フィルタの異なる例を示す。図5は、JEMにおいて使用される補間フィルタの一例を示す。図6は、ITU-JVET K1023において開示される、コア実験(Core-experiment)CE3-3.1.3に対して提案される補間フィルタの別の例を示す。図7は、ITU-JVET K0064において提案される補間フィルタの別の例を示す。
【０１０８】
本発明の実施形態の基本的な発想は、イントラ予測内のピクセル値が参照サンプル同士の間の分数位置に入る場合、それらのピクセル値を補間するために、ルックアップテーブルおよび/またはクロマ動き補償サブペル(sub-pel)フィルタのハードウェアモジュールを再使用することである。インター予測とイントラ予測の両方に対して同じハードウェアが使用されることが意図されるため、フィルタ係数の精度は首尾一貫すべきである、すなわち、イントラ参照サンプル補間に対するフィルタ係数を表すためのビット数は、動きサブペル動き補償補間フィルタリングの係数精度に整合すべきである。
【０１０９】
図8は、提案される発明の一実施形態を示す。破線の「クロマに対する6ビット係数を有する4タップ補間フィルタ」(さらに「統合イントラ/インターフィルタ」と呼ばれる)が両方のプロセス、すなわち、イントラ予測されたサンプルおよびインター予測されたサンプルの補間のために使用され得る。
【０１１０】
この設計を利用する特定の実施形態が図9に示される。この実装形態では、フィルタリングモジュールは、動き補償における色度サンプルの予測と、イントラ予測を実行しているときの予測している輝度サンプルおよび色度サンプルとの両方に従事している別個のユニットとして実装されている。この実装形態では、ハードウェアフィルタリング部分は、イントラ予測プロセスとインター予測プロセスの両方において使用される。
【０１１１】
図10は、フィルタ係数のLUTのみが再使用されるとき(図10を参照されたい)の別の実施形態を示す。図10は、LUT係数の再使用に基づいて提案される適用例の例示的な実装形態である。この実装形態では、ハードウェアフィルタリングモジュールは、ROM内に記憶されたLUTから係数をロードする。イントラ予測プロセスに対して示されるスイッチは、イントラ予測プロセスに対して選択された主な側の長さに応じて、使用されることになるフィルタタイプを決定する。
【０１１２】
提案される適用例の実際の実施形態は、以下の係数(表3を参照されたい)を使用し得る。
【０１１３】
【表７】
2021533607.tif 000009
【０１１４】
イントラ予測されたサンプルは、以下のように、サブピクセルオフセットおよびフィルタタイプに従って表3から選択された係数で畳み込むことによって計算される:
【０１１５】
【数２】
2021533607.tif 000010
【０１１６】
この式では、「≫」は、ビット単位の右シフト演算を示す。
【０１１７】
「統合イントラ/インターフィルタ」フィルタが選択される場合、予測されたサンプルは、SPSにおいて定義されるか、または選択された成分のビット深度から導出されるか、のいずれかである、許容値範囲にさらに切り捨てられる。
【０１１８】
提案される発明の実施形態の顕著な特徴は、以下の通りである:
【０１１９】
イントラ参照サンプル補間およびサブペル動き補償補間の場合、ハードウェアモジュールを再使用し、必要とされるメモリの総サイズを削減するために、同じフィルタが使用され得る。
【０１２０】
再使用フィルタに加えて、イントラ参照サンプル補間のために使用されるフィルタ係数の精度は、上述の再使用フィルタの係数の精度に整合すべきである。
【０１２１】
動き補償におけるルマ処理は、必ずしも8タップフィルタリングを使用するとは限らず、4タップフィルタリングに対しても動作し得る。この場合、4タップフィルタは、統合されるように選択され得る。
【０１２２】
本発明の実施形態は、補間を必要とし得るイントラ予測プロセスの異なる部分に適用され得る。具体的には、主参照サンプルを拡張するとき、側参照サンプルも、統合補間フィルタを使用してフィルタリングされ得る(詳細については、JVET-K0211の節2.1、3.1、4.1、および5を参照されたい)。
【０１２３】
イントラブロックコピー動作は、提案される発明を使用し得る補間ステップも必要とする(イントラブロックコピーの説明については、「Xiaozhong Xu、Shan Liu、Tzu-Der Chuang、Yu-Wen Huang、Shawmin Lei、Krishnakanth Rapaka、Chao Pang、Vadim Seregin、Ye-Kui Wang、Marta Karczewicz: Intra Block Copy in HEVC Screen Content Coding Extensions. IEEE J. Emerg. Sel. Topics Circuits Syst. 6(4): 409-419 (2016年)」を参照されたい)。
【０１２４】
さらなる実施形態は、イントラ予測のためのアスペクト率依存型フィルタリングのための方法であって、
ブロックのアスペクト比に応じて予測されることになるブロックに対する補間フィルタを選択するステップを含む方法を含み得る。
【０１２５】
一例では、補間フィルタの選択は、予測されることになるブロックのイントラ予測モードをしきい値設定する方向に依存する。
【０１２６】
一例では、この方向は、予測されることになるブロックの主対角線の角度に対応する。
【０１２７】
一例では、この方向の角度は、以下のように計算される:
【０１２８】
【数３】
2021533607.tif 000011
【０１２９】
ここで、W、Hは、それぞれ、予測されることになるブロックの幅および高さである。
【０１３０】
一例では、たとえば、以下の式に対応するアスペクト比RAが決定される。
【０１３１】
RA=log2(W)-log2(H)、式中、W、Hは、それぞれ、予測されることになるブロックの幅および高さである。
【０１３２】
一例では、予測されることになるブロックの主対角線の角度は、アスペクト比に基づいて決定される。
【０１３３】
一例では、ブロックのイントラ予測モードのしきい値は、予測されることになるブロックの主対角線の角度に基づいて決定される。
【０１３４】
一例では、補間フィルタの選択は、使用される参照サンプルがどちらの側に属するかに依存する。
【０１３５】
一例では、イントラ方向に対応する角度を備えた直線は、ブロックを2つのエリアに分割する。
【０１３６】
一例では、異なるエリアに属する参照サンプルは、異なる補間フィルタを使用して予測される。
【０１３７】
一例では、フィルタは、キュービック補間フィルタまたはガウス補間フィルタを含む。
【０１３８】
本出願の一実装形態では、フレームはピクチャと同じである。
【０１３９】
本出願の一実装形態では、VER_IDXに対応する値は50であり、HOR_IDXに対応する値は18であり、VDIA_IDXに対応する値は66であって、かつこの値は、角度モードに対応する値の中で最大値であり得、イントラモード2に対応する値2は、角度モードに対応する値の最小値であり得、DIA_IDXに対応する値は34である。
【０１４０】
本開示の実施形態は、イントラモードシグナリング方式における改善を目標とし得る。本開示において、ビデオ復号方法およびビデオデコーダが提案される。
【０１４１】
図4は、67個のイントラ予測モードの一例を示し、たとえば、VVCに対して提案されるように、67個のイントラ予測モードの複数のイントラ予測モードは、平面モード(指標0)、dcモード(指標1)、および指標2から66を有する角度モードを含み、図4の左下角度モードは、指標2を指し、指標の番号付けは、指標66が図4の右上の最鋭角モードになるまで増分される。
【０１４２】
本出願の別の態様では、上記の復号方法を実行するように構成された、処理回路を備えたデコーダが開示される。
【０１４３】
本出願の別の態様では、上記の復号方法を実行するためのプログラムコードを備えた、コンピュータプログラム製品が開示される。
【０１４４】
本出願の別の態様では、ビデオデータを復号するためのデコーダが開示され、デコーダは、1つまたは複数のプロセッサと、プロセッサに接続され、プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体とを備え、プログラミングは、プロセッサによって実行されると、上記の復号方法を実行するようにデコーダを構成する。
【０１４５】
処理回路は、ハードウェアにおいて、またはハードウェアとソフトウェアの組合せにおいて、たとえば、ソフトウェアプログラマブルプロセッサなどによって実装され得る。
【０１４６】
処理回路は、たとえば、ソフトウェアプログラマブルプロセッサなどによって、ハードウェアにおいて、またはハードウェアとソフトウェアの組合せにおいて、実装され得る。
【０１４７】
図11は、別の実施形態によって使用され得る、HEVC UIP方式において使用される複数のイントラ予測モードの概略図を示す。輝度ブロックの場合、イントラ予測モードは、3個の無指向性モードおよび33個の指向性モードを含み得る、最高で36個のイントラ予測モードを含み得る。無指向性モードは、平面予測モード、平均(DC)予測モード、およびルマ(LM)予測モードからのクロマを含み得る。平面予測モードは、ブロックの境界から導出される水平勾配および垂直勾配を有するブロック振幅面を仮定することによって予測を実行し得る。DC予測モードは、ブロック境界の平均値に整合する値を有する平坦ブロック面を仮定することによって予測を実行し得る。LM予測モードは、ブロックに対するクロマ値がブロックに対するルマ値に整合すると仮定することによって予測を実行し得る。指向性モードは、図11に示すように隣接するブロックに基づいて予測を実行し得る。
【０１４８】
H.264/AVCおよびHEVCは、イントラ予測プロセスにおいて使用されるのに先立って、ローパスフィルタが参照サンプルに適用され得ることを指定する。参照サンプルフィルタを使用するか否かに関する判断は、イントラ予測モードおよびブロックサイズによって決定される。この機構は、モード依存イントラ平滑化(MDIS: Mode Dependent Intra Smoothing)と呼ばれることがある。MDISに関する複数の方法も存在する。たとえば、適用参照サンプル平滑化(ARSS: Adaptive Reference Sample Smoothing)方法は、予測サンプルがフィルタリングされているかどうかを明示的に(すなわち、フラグがビットストリーム内に含まれている)または暗示的に(すなわち、たとえば、シグナリングオーバヘッドを低減するためにフラグをビットストリーム内に入れることを回避するために、データ隠蔽が使用される)シグナリングし得る。この場合、エンコーダは、すべての潜在的なイントラ予測モードに対するレート歪み(RD)コストを試験することによって、平滑化に対して判断し得る。
【０１４９】
図4に示すように、JEMの最新版(JEM-7.2)は、スキューイントラ予測方向に対応するいくつかのモードを有する。これらのモードのいずれに対しても、ブロックサイド内の対応する位置が分数である場合、ブロック内のサンプルを予測するために、近接する参照サンプルのセットの補間が実行されるべきである。HEVCおよびVVCは、2個の隣接する参照サンプル同士の間で線形補間を使用する。JEMは、より精巧な4タップ補間フィルタを使用する。フィルタ係数は、幅値または高さ値に応じて、ガウスフィルタまたはキュービックのフィルタ係数のいずれかになるように選択される。幅を使用するかまたは高さを使用するかの判断は、主参照側選択に対する判断で調和され、イントラ予測モードが対角モード以上であるとき、参照サンプルの上側が主参照側になるように選択され、使用中の補間フィルタを決定するための幅値が選択される。さもなければ、ブロック左側から主側参照が選択され、高さがフィルタ選択プロセスを制御する。具体的には、選択された側の長さが8個のサンプル以下である場合、キュービック補間4タップが適用される。さもなければ、4タップガウスが補間フィルタとして使用される。
【０１５０】
32x4ブロックの場合の対角線モード(45°として示す)よりも小さいモードおよびそれよりも大きいモードに対する補間フィルタ選択の一例が、図12に示される。
【０１５１】
VVCでは、QTBTと呼ばれる、四分木および二分木の両方に基づく区分化機構が使用される。図13に示すように、QTBT区分化は、正方形ブロックだけではなく矩形ブロックも同様に提供し得る。当然、HEVC/H.265規格において使用されるような従来の四分木ベースの区分化と比較して、エンコーダ側における何らかのシグナリングオーバヘッドおよび増大した計算複雑性がQTBT区分化の対価である。それでもなお、QTBTベースの区分化はより良いセグメント化特性を備え、したがって、従来の四分木よりもかなり高いコーディング効率を明示する。
【０１５２】
しかしながら、VVCは、その現在の状態で、同じフィルタを参照サンプルの両側(左側および上側)に適用する。ブロックが垂直に配向されるか水平に配向されるかにかかわらず、参照サンプルフィルタは、参照サンプルの両側に対して同じになる。
【０１５３】
本文書では、「垂直配向ブロック」(「ブロックの垂直配向」)および「水平配向ブロック」(「ブロックの水平配向」)という用語がQTBTフレームワークによって生成される矩形ブロックに適用される。これらの用語は、図14に示すのと同じ意味を有する。
【０１５４】
本開示の実施形態は、ブロックの配向を考慮するために、異なる参照サンプルフィルタを選択するための機構を提案する。具体的には、予測されることになるブロックの異なる側の上に位置する参照サンプルに異なる参照サンプルフィルタが適用されるように、ブロックの幅および高さが独立して検査される。
【０１５５】
いくつかの例では、補間フィルタ選択が主参照側選択に対する判断と調和されることが説明された。これらの判断は両方とも、現在、対角線(45度)方向を有するイントラ予測モードの比較に依存する。
【０１５６】
しかしながら、この設計は細長いブロックに対して深刻な欠陥を有することに注目されたい。図15から、モード比較基準を使用して、より短い側が主参照として選択される場合であっても、予測されるピクセルの大部分は、より長い側(破線エリアとして示される)の参照サンプルから依然として導出されることになることが観測され得る。図15は、側面長依存参照フィルタ選択に関する一例を示す。
【０１５７】
本開示は、補間フィルタ選択プロセス中にイントラ予測モードをしきい設定するために代替方向を使用することを提案する。具体的には、方向は、予測されることになるブロックの主対角線の角度に対応する。たとえば、サイズ32x4および4x32のブロックの場合、参照サンプルフィルタを決定するために使用されるしきい値モードmTは、図16に示されるように定義される。
【０１５８】
しきい値イントラ予測角度の特定の値は、以下の式を使用して計算され得る:
【０１５９】
【数４】
2021533607.tif 000012
【０１６０】
式中、WおよびHは、それぞれ、ブロック幅およびブロック高さである。
【０１６１】
本開示の別の実施形態は、使用されている参照サンプルがどちらの側に属するかに応じて、異なる補間フィルタを使用することである。この決定の一例が図17に示される。図17は、使用された参照サンプルがどちらの側に属するかに応じた、異なる補間サンプルの使用に関する一例を示す。
【０１６２】
イントラ方向mに対応する角度を有する直線は、予測されたブロックを2つのエリアに分割する。異なるエリアに属するサンプルは、異なる補間フィルタを使用して予測される。
【０１６３】
(BMS1.0において定義されるイントラ予測モードのセットに対する)例示的なmTの値および対応する角度が表4に与えられる。角度αは、図16に示すように与えられる。
【０１６４】
【表８】
2021533607.tif 000013
【０１６５】
既存の技術および解決策と比較すると、本開示は、異なる補間フィルタを使用して予測されたブロック内のサンプルを使用し、サンプルを予測するために使用される補間フィルタは、ブロック形状、水平であるまたは垂直である配向、およびイントラ予測モード角度に従って選択される。
【０１６６】
本開示は、参照サンプルフィルタリングの段階において適用され得る。具体的には、補間フィルタ選択プロセスに関して上記で説明した同様の規則を使用して、参照サンプル平滑化フィルタを決定することが可能である。
【０１６７】
図18は、本開示の一実施形態によるネットワークデバイス1300(たとえば、コーディングデバイス)の概略図である。ネットワークデバイス1300は、本明細書で説明するように、開示される実施形態を実装するのに好適である。ネットワークデバイス1300は、データを受信するための入口ポート1310および受信機ユニット(Rx)1320と、データを処理するためのプロセッサ、論理ユニット、または中央処理ユニット(CPU)1330と、データを送信するための送信機ユニット(Tx)1340および出口ポート1350と、データを記憶するためのメモリ1360とを備える。ネットワークデバイス1300はまた、光信号または電気信号の出入に対する、入口ポート1310、受信機ユニット1320、送信機ユニット1340、および出口ポート1350に接続された、光対電気(OE)構成要素および電気対光(EO)構成要素を備え得る。
【０１６８】
プロセッサ1330は、ハードウェアおよびソフトウェアによって実装される。プロセッサ1330は、1つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサとして)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、およびデジタル信号プロセッサ(DSP)として実装され得る。プロセッサ1330は、入口ポート1310、受信機ユニット1320、送信機ユニット1340、出口ポート1350、およびメモリ1360と通信している。プロセッサ1330は、コーディングモジュール1370を備える。コーディングモジュール1370は、上記で説明した、開示される実施形態を実装する。たとえば、コーディングモジュール1370は、様々なネットワーキング機能を実装、処理、準備、または提供する。コーディングモジュール1370の包含は、したがって、ネットワークデバイス1300の機能性にかなりの改善を提供し、異なる状態へのネットワークデバイス1300の変換をもたらす。代替として、コーディングモジュール1370は、メモリ1360内に記憶され、プロセッサ1330によって実行される命令として実装される。
【０１６９】
メモリ1360は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを備え、プログラムが実行のために選択されるとき、そのようなプログラムを記憶するために、またプログラム実行中に読み取られる命令およびデータを記憶するために、オーバーフローデータ記憶デバイスとして使用され得る。メモリ1360は、揮発性および/または不揮発性であってよく、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、3値連想メモリ(TCAM: ternary content-addressable memory)、および/またはスタティックランダムアクセスメモリ(SRAM)であってよい。
【０１７０】
いくつかの実施形態が本開示において提供されているが、開示されるシステムおよび方法は、本開示の趣旨または範囲から逸脱せずに、多くの他の特定の形態で実施され得ることを理解されたい。本例は、限定的ではなく、例示的と見なされるべきであり、本明細書で与えられる詳細に対する限定であることを意図しない。たとえば、様々な要素または構成要素は、別のシステム内で組み合わされてよくまたは一体化されてよく、または一定の特徴は、省かれてよく、または実装されなくてよい。
【０１７１】
加えて、様々な実施形態で、個別または別個として説明しおよび例示した、技法、システム、サブシステム、および方法は、本開示の範囲から逸脱せずに、他のシステム、モジュール、技法、または方法と組み合わされてよく、または一体化されてよい。互いに結合され、または直接結合され、または通信しているとして、示しまたは論じた他の項目は、電気的であれ、機械的であれ、またはそれ以外であれ、何らかのインターフェース、デバイス、または中間構成要素を通して、間接的に結合されるかまたは通信していることがある。変更、置換、および改変の他の例は、当業者によって確認可能であり、本明細書で開示される趣旨および範囲から逸脱せずに行われ得る。
【０１７２】
以下の説明において、添付の図面を参照し、これらの図面は、本開示の部分を形成し、例として、本発明が提起され得る特定の態様を示す。
【０１７３】
HEVC/H.265規格によれば、35個のイントラ予測モードが利用可能である。図11に示すように、このセットは、以下のモード、すなわち、平面モード(イントラ予測モード指標は0)、DCモード(イントラ予測モード指標は1)、および図11において黒の矢印によって示される、180°範囲を対象とし、2から34の範囲のイントラ予測モード指標値を有する指向性(角度のある)モードを含む。自然ビデオ内に存在する任意のエッジ方向をキャプチャするために、指向性イントラモードの数は、HEVCにおいて使用される33から65に拡張される。追加の指向性モードが図4において点線矢印によって示され、平面モードおよびDCモードは同じ状態に留まる。イントラ予測モードが対象とする範囲は180°より広くてよいことは留意に値する。具体的には、3から64の指標値を有する62個の指向性モードは、およそ230°の範囲を対象とし、すなわち、モードのいくつかの対は、反対の方向性を有する。HEVCリファレンスモデル(HM)およびJEMプラットフォームの場合、図4に示すように、角度モードの1対のみ(すなわち、モード2および66)が反対の方向性を有する。予測器を構築するために、従来の角度モードは、参照サンプルを利用し、(必要に応じて)それらをフィルタリングして、サンプル予測器を得る。予測器を構築するために必要とされる参照サンプルの数は、補間のために使用されるフィルタの長さに依存する(たとえば、バイリニアフィルタおよびキュービックフィルタは、それぞれ、2および4の長さを有する)。
【０１７４】
実施形態では、たとえば、多目的ビデオコーディング(VVC)と呼ばれる、現在開発中の最新ビデオコーディング規格によれば、バイナリおよびターナリ分割セグメント化構造を使用して組み合わされた四分木ネスト型マルチタイプツリー(Quad-tree nested multi-type tree)が、たとえば、コーディングツリーユニットを区分化するために使用される。コーディングツリーユニット内のコーディングツリー構造において、CUは、正方形形状または矩形形状のいずれかを有し得る。たとえば、コーディングツリーユニット(CTU)は、最初に、四分(quaternary)木によって区分化される。次いで、四分木リーフノードは、マルチタイプツリー構造によってさらに区分化され得る。マルチタイプツリー構造において、4つの分割タイプ、すなわち、垂直バイナリ分割(SPLIT_BT_VER)、水平バイナリ分割(SPLIT_BT_HOR)、垂直ターナリ分割(SPLIT_TT_VER)、および水平ターナリ分割(SPLIT_TT_HOR)が存在し得る。マルチタイプツリーリーフノードは、コーディングユニット(CU)と呼ばれ、CUが最大変換長に対して大き過ぎることがない限り、さらなる区分化もなしに、予測および変換処理に対してこのセグメント化が使用される。これは、多くの場合、CU、PU、およびTUは、ネスト型マルチタイプツリーコーディングブロック構造を有する四分木内に同じブロックサイズを有することを意味する。サポートされる最大変換長がCUの色成分の幅または高さよりも小さいとき、例外が生じる。ネスト型マルチタイプツリーコーディングツリー構造を有する四分木内の区分化分割情報の一意のシグナリング機構。このシグナリング機構において、コーディングツリーユニット(CTU)は、四分木のルートとして扱われ、四分木構造によって最初に区分化される。各四分木リーフノードは(それを可能にするために十分大きいとき)、次いで、マルチタイプツリー構造によってさらに区分化される。マルチタイプツリー構造において、ノードがさらに区分化されるかどうかを示すために第1のフラグ(mtt_split_cu_flag)がシグナリングされ、ノードがさらに区分化されるとき、分割方向を示すために第2のフラグ(mtt_split_cu_vertical_flag)がシグナリングされ、次いで、分割がバイナリ分割であるかまたはターナリ分割であるかを示すために、第3のフラグ(mtt_split_cu_binary_flag)がシグナリングされる。mtt_split_cu_vertical_flagおよびmtt_split_cu_binary_flagの値に基づいて、事前定義された規則またはテーブルに基づいて、CUのマルチタイプツリー分割モード(MttSplitMode)がデコーダによって導出され得る。図6に示すように、ルマコーディングブロックの幅または高さのいずれかが64よりも大きいとき、一定の設計に対して、たとえば、VVCハードウェアデコーダ内の64×64ルマブロックおよび32×32クロマパイプライン設計に対して、TT分割は禁じられることに留意されたい。クロマコーディングブロックの幅または高さのいずれかが32よりも大きいとき、TT分割も禁じられる。パイプライニング設計は、ピクチャ内の重複しないユニットとして定義される仮想パイプラインデータユニットs(VPDU)にピクチャを分割することになる。ハードウェアデコーダにおいて、連続するVPDUは、複数のパイプライン段階によって同時に処理され得る。VPDUサイズは、多くのパイプライン段階におけるバッファサイズにおよそ比例し、したがって、VPDUサイズを小さく維持することが重要である。大部分のハードウェアデコーダにおいて、VPDUサイズは、最大変換ブロック(TB)サイズに設定され得る。しかしながら、VVCでは、三分木(TT)および二分木(BT)区分化は、VPDUサイズの増大をもたらし得る。
【０１７５】
加えて、ツリーノードブロックの一部分が下部または右のピクチャ境界を超えるとき、すべてのコーディングされたCUのすべてのサンプルがピクチャ境界内に位置するまで、ツリーノードブロックは分割を余儀なくされることに留意されたい。
【０１７６】
一例として、イントラ下位区分化(ISP)ツールは、ブロックサイズに応じて、ルマイントラ予測されたブロックを垂直または水平に2または4個の下位区分に分割し得る。
【０１７７】
イントラ予測
【０１７８】
イントラ予測モードのセットは、35個の異なるイントラ予測モード、たとえば、DC(または、平均)モードおよび平面モードなどの無指向モード、または、たとえば、HEVCにおいて定義されるような指向性モードを含み得るか、または67個の異なるイントラ予測モード、たとえば、DC(または、平均)モードおよび平面モードなどの無指向性モード、または、たとえば、VVCに対して定義されるような、指向性モードを含み得る。一例として、いくつかの従来の角度イントラ予測モードは、たとえば、VVCで定義されるように、非正方形ブロックに対して広角イントラ予測モードで適応的に置換される。別の例として、DC予測のための分割動作を回避するために、非正方形ブロックに対する平均を計算するためにより長い側のみが使用される。また、平面モードのイントラ予測の結果は、位置依存イントラ予測組合せ(PDPC: position dependent intra prediction combination)方法によってさらに修正され得る。
【０１７９】
イントラ予測ユニットは、イントラ予測モードのセットのイントラ予測モードに従って、イントラ予測ブロックを生成するために、同じ現在ピクチャの近接するブロックの再構築されたサンプルを使用するように構成される。
【０１８０】
イントラ予測ユニット(または概して、モード選択ユニット)は、たとえば、ビデオデコーダが復号のための予測パラメータを受信して使用することができるように、イントラ予測パラメータ(または、概して、ブロックに対して選択されたイントラ予測モードを示す情報)を、符号化されたピクチャデータ内に含めるためにシンタックス要素の形でエントロピー符号化ユニットに出力するようにさらに構成される。
【０１８１】
インター予測
【０１８２】
インター予測モードのセット（または可能なインター予測モードのセット）は、利用可能な参照ピクチャ(すなわち、たとえば、DBP内に記憶された、前の少なくとも部分的に復号されたピクチャ)、および他のインター予測パラメータ、たとえば、参照ブロックに対する最良の整合を検索するために、参照ピクチャの参照ピクチャ全体が使用されるか、もしくは一部分、たとえば、現在ブロックのエリアの周囲の検索ウィンドウエリアのみが使用されるかのいずれであるか、かつ/または、たとえば、ピクセル補間、たとえば、ハーフ/セミペル(semi-pel)補間、1/4ペル補間、および/もしくは1/16ペル補間が適用されるか否か、に依存する。
【０１８３】
上記の予測モードに加えて、スキップモード、直接モード、および/または他のインター予測モードが適用され得る。
【０１８４】
たとえば、拡張マージ予測(Extended merge prediction)の場合、以下の5つのタイプの候補を順番に含めることによって、そのようなモードのマージ候補リストが構築され、すなわち、空間近接CUからの空間MVP、同一位置のCUからの時間MVP、FIFOテーブルからの履歴ベースのMVP、ペアワイズ平均MVPおよびゼロMV、である。マージモードのMVの精度を高めるために、バイラテラル整合ベースのデコーダ側動きベクトル改善(DMVR: decoder side motion vector refinement)が適用され得る。動きベクトル差異を有するマージモードからもたらされる、MVDを有するマージモード(MMVD)。MMVDフラグは、MMVDモードがCUに対して使用されるかどうかを指定するために、スキップフラグおよびマージフラグを送った直後にシグナリングされる。また、CUレベルの適応動きベクトル解像度(AMVR: adaptive motion vector resolution)方式が適用され得る。AMVRは、異なる精度でCUのMVDがコーディングされることを可能にする。現在CUに対する予測モードに応じて、現在CUのMVDが適応的に選択され得る。CUがマージモードでコーディングされるとき、現在CUに組合せインター/イントラ予測(CIIP: combined inter/intra prediction)モードが適用され得る。CIIP予測を得るために、インター予測信号およびイントラ予測信号の加重平均化が実行される。アフィン動き補償予測、すなわちブロックのアフィン動きフィールドは、2つの制御点動きベクトル(4パラメータ)または3つの制御点動きベクトル(6パラメータ)の動き情報によって説明される。HEVCにおける時間動きベクトル予測(TMVP)と同様であるサブブロックベースの時間動きベクトル予測(SbTMVP: subblock-based temporal motion vector prediction)は、現在CU内のサブCUの動きベクトルを予測するにすぎない。前にBIOと呼ばれた、双方向オプティカルフロー(BDOF: bi-directional optical flow)は、特に、乗算の数および乗算器のサイズの点で、はるかに少ない計算を必要とする、よ
り単純なバージョンである。三角形区分化モード、そのようなモードでは、CUは、対角分割または反対角分割のいずれかを使用して、2つの三角形状区分に等しく分割される。その上、双予測モードは、単純な平均化を超えて拡張されて、2個の予測信号の加重平均を可能にする。
【０１８５】
インター予測ユニットは、動き推定(ME)ユニットおよび動き補償(MC)ユニット(両方とも図2に示さず)を含み得る。動き推定ユニットは、ピクチャブロック(現在ピクチャの現在ピクチャブロック)および復号されたピクチャ、または動き推定のために、少なくとも1つまたは複数の前に再構築されたブロック、たとえば、1つまたは複数の他の/異なる前に復号されたピクチャの再構築されたブロック、を受信または取得するように構成され得る。たとえば、ビデオシーケンスは、現在ピクチャおよび前に復号されたピクチャを含んでよく、または、言い換えれば、現在ピクチャおよび前に復号されたピクチャは、ビデオシーケンスを形成するピクチャのシーケンスの部分であり得るか、またはそれを形成し得る。
【０１８６】
エンコーダは、たとえば、複数の他のピクチャの同じまたは異なるピクチャの複数の参照ブロックから1個の参照ブロックを選択し、参照ピクチャ(または、参照ピクチャ指標)および/または参照ブロックの位置(x座標、y座標)と現在ブロックの位置との間のオフセット(空間オフセット)をインター予測パラメータとして動き推定ユニットに提供するように構成され得る。このオフセットは、動きベクトル(MV)とも呼ばれる。
【０１８７】
動き補償ユニットは、インター予測パラメータを取得し、たとえば、受信し、インター予測パラメータに基づいて、またはそれを使用して、インター予測を実行して、インター予測ブロックを取得するように構成される。動き補償ユニットによって実行される動き補償は、動き推定によって決定された動き/ブロックベクトルに基づいて、場合によっては、サブピクセル精度に対する補間を実行して、予測ブロックをフェッチまたは生成することを必要とし得る。補間フィルタリングは、既知のピクセルサンプルから追加のピクセルサンプルを生成し、それにより、潜在的に、ピクチャブロックをコーディングするために使用され得る候補予測ブロックの数を増大し得る。現在ピクチャブロックのPUに対する動きベクトルの受信時に、動き補償ユニットは、参照ピクチャリストのうちの1つの中で動きベクトルが指す予測ブロックを位置特定し得る。
【０１８８】
動き補償ユニットは、ブロックに関連するシンタックス要素およびビデオスライスのピクチャブロックを復号する際にビデオデコーダ30によって使用するためのビデオスライスを生成することもできる。スライスおよびそれぞれのシンタックス要素に加えて、またはそれに対する代替として、タイルグループおよび/またはタイル、ならびにそれぞれのシンタックス要素が生成または使用され得る。
【０１８９】
図20に示すように、本発明の実施形態では、ビデオコーディングの方法は、以下を含み得る。
【０１９０】
S2001:ビデオビットストリームを取得する。
【０１９１】
デコーダ側は、符号化されたビデオビットストリームを別の側(エンコーダ側またはネットワーク送信機側)から受信するか、またはデコーダ側は、デコーダ側のメモリ内に記憶された、符号化されたビデオビットストリームを読み取る。
【０１９２】
符号化されたビデオビットストリームは、符号化されたピクチャデータを復号するための情報、たとえば、符号化されたビデオのピクチャブロックおよび関連するシンタックス要素を表すデータを含む。
【０１９３】
S2002:ビデオビットストリームに従って、現在コーディングブロックの予測されたサンプルが、イントラ予測を使用して取得されたか、またはインター予測を使用して取得されたかを決定する。
【０１９４】
デコーダ側において、現在コーディングブロックは、デコーダによって現在再構築されているブロックである。現在コーディングブロックは、ビデオのフレームまたはピクチャの中にある。
【０１９５】
ビデオビットストリーム内のシンタックス要素に従って、現在コーディングブロックの予測されたサンプルがイントラ予測を使用して取得されるか、またはインター予測を使用して取得されるかが決定され得る。
【０１９６】
ビデオビットストリーム内の1つのシンタックス要素が、インター予測またはイントラ予測を使用して現在コーディングブロックを示すために使用されることがあり得る。たとえば、ビットストリーム内の1つのフラグが、現在コーディングブロックに対してイントラ予測プロセスまたはインター予測プロセスが使用されることを示すために使用されることがある。フラグの値が1(または、他の値)に等しいとき、現在コーディングブロックの予測されたサンプルは、イントラ予測を使用して取得され、フラグの値が0(または、他の値)に等しいとき、現在コーディングブロックの予測されたサンプルは、インター予測を使用して取得される。
【０１９７】
2つ以上のシンタックス要素が、インター予測またはイントラ予測を使用して現在コーディングブロックを示すために使用されることもあり得る。たとえば、ビットストリーム内の1つの指示情報(たとえば、フラグ)が、イントラ予測プロセスが現在コーディングブロックに対して使用されるか否かを示すために使用されることがあり、また、ビットストリーム内の別の指示情報(たとえば、別のフラグ)が、インター予測プロセスが現在コーディングブロックに対して使用されるか否かを示すために使用されることがある。
【０１９８】
現在コーディングブロックの予測されたサンプルがイントラ予測を使用して取得されると決定されるとき、ステップS2003に進む。現在コーディングブロックの予測されたサンプルがインター予測を使用して取得されると決定されるとき、ステップS2006に進む。
【０１９９】
S2003:現在コーディングブロックのイントラ予測モードおよび現在コーディングブロック内の予測されたサンプルの位置に従って、第1のサブピクセルオフセット値を取得する。
【０２００】
一例では、現在コーディングブロックのイントラ予測モードは、ビデオビットストリームに従って取得されてもよい。
図4は、たとえば、VVCに対して提案されるような、67個のイントラ予測モードの一例を示し、67個のイントラ予測モードの複数のイントラ予測モードは、平面モード(指標0)、dcモード(指標1)、および指標2から66を有する角度モードを含み、図4の左下角度モードは、指標2を指し、指標の番号付けは、指標66が図4の右上の最鋭角モードになるまで増分される。
図11は、HEVC UIP方式において使用される複数のイントラ予測モードの概略図を示す。輝度ブロックの場合、イントラ予測モードは、3個の無指向性モードおよび33個の指向性モードを含み得る、最高で36個のイントラ予測モードを含み得る。無指向性モードは、平面予測モード、平均(DC)予測モード、およびルマ(LM)予測モードからのクロマを含み得る。平面予測モードは、ブロックの境界から導出される水平勾配および垂直勾配を有するブロック振幅面を仮定することによって予測を実行し得る。DC予測モードは、ブロック境界の平均値に整合する値を有する平坦ブロック面を仮定することによって予測を実行し得る。LM予測モードは、ブロックに対するクロマ値がブロックに対するルマ値に整合すると仮定することによって予測を実行し得る。指向性モードは、図11に示すように隣接するブロックに基づいて予測を実行し得る。
【０２０１】
現在コーディングブロックのイントラ予測モードは、現在コーディングブロックに対するビデオビットストリームをパースするために応じて取得され得る。一例では、現在コーディングブロックに対する最確モード(MPM: Most Probable Modes)フラグの値がビデオビットストリームに従って取得される。一例では、MPMフラグの値が真(たとえば、MPMフラグの値が1である)とき、指標の値が取得され、指標の値は、MPMにおける現在コーディングブロックのイントラ予測モード値を示すために使用される。
【０２０２】
別の例では、MPMフラグの値が真(たとえば、MPMフラグの値が1)であるとき、第2のフラグ(たとえば、平面フラグ)の値が取得される。第2のフラグの値が偽であるとき(一例では、第2のフラグの値は偽であることは、現在コーディングブロックのイントラ予測モードが平面モードでないことを示す)、指標の値が取得され、指標の値は、MPMにおける現在コーディングブロックのイントラ予測モード値を示すために使用される。
【０２０３】
一例では、シンタックス要素intra_luma_mpm_flag[x0][y0]、intra_luma_mpm_idx[x0][y0]、およびintra_luma_mpm_remainder[x0][y0]は、ルマサンプルに対するイントラ予測モードを指定する。アレイ指標x0、y0は、ピクチャの左上ルマサンプルに対して考慮される予測ブロックの左上ルマサンプルの場所(x0, y0)を指定する。intra_luma_mpm_flag[x0][y0]が1に等しいとき、イントラ予測モードは、近接するイントラ予測された予測ユニットから推論される。
【０２０４】
一例では、MPMフラグの値が偽である(たとえば、MPMフラグの値が0である)とき、指標の値が取得され、指標の値は、非MPMにおける現在コーディングブロックのイントラ予測モード値を示すために使用される。
【０２０５】
現在コーディングブロック内の予測されたサンプルの位置は、イントラ予測モードの勾配に従って取得される。整数値の対(xp,yp)による左上の予測されたサンプルの位置に対する予測されたブロック(たとえば、現在コーディングブロック)内のサンプルの位置が定義され、xpは、左上の予測されたサンプルに対する予測されたサンプルの水平オフセットであり、ypは、左上の予測されたサンプルに対する予測されたサンプルの垂直オフセットである。左上の予測されたサンプルは、xp=0、yp=0として定義される位置を有する。
【０２０６】
参照サンプルから予測されたサンプルを生成するために、以下のステップが実行される。イントラ予測モードの2つの範囲を定義する。イントラ予測モードの第1の範囲は、垂直配向予測に対応し、イントラ予測モードの第2の範囲は、水平配向モードに対応する。予測されたブロックに対して指定されたイントラ予測モードがイントラ予測モードの第1の範囲に属するとき、予測されたサンプルのブロックは、位置(x,y)でさらにアドレス指定され、xはxpに等しく設定され、yはypに等しく設定される。予測されたブロックに対して指定されたイントラ予測モードがイントラ予測モードの第2の範囲に属するとき、予測されたサンプルのブロックは、位置(x,y)でさらにアドレス指定され、xはypに等しく設定され、yはxpに等しく設定される。いくつかの例では、イントラ予測モードの第1の範囲は、[34,80]と定義される。イントラ予測モードの第2の範囲は、[-14,-1]∪[1,33]と定義される。
【０２０７】
逆角度パラメータinvAngleは、以下のようにintraPredAngleに基づいて導出される:
【０２０８】
【数５】
2021533607.tif 000014
【０２０９】
各イントラ予測モードは、「intraPredAngle」とさらに呼ばれる、関連するイントラ予測変数を有する。この関連付けは表8-8に示される。
【０２１０】
「iFact」と示され、さらに「第1のサブピクセルオフセット値」とも呼ばれるサブピクセルオフセットは、以下の式を使用して定義される:
【０２１１】
iFact=((y+1+refIdx)*intraPredAngle)&31
【０２１２】
この式では、refIdxは、予測されたブロックの境界からの参照サンプルセットのオフセットを示す。ルマ成分の場合、この値は、たとえば、以下のように取得され得る:
【０２１３】
【表９】
2021533607.tif 000015
【０２１４】
シンタックス要素の値「intra_luma_ref_idx」は、ビットストリーム内でシグナリングされる。
【０２１５】
予測されたサンプルを取得するためのプロセスの一実施形態(説明されるVVC規格、すなわちJVET-O2001のような)がさらに与えられ、位置(x,y)は、イントラ予測モードが水平に配向されるか垂直に配向されるかに依存せずに、常に、x=xpおよびy=ypとして定義される：
x=0..nTbW-1、y=0..nTbH-1である、予測サンプルの値predSamples[x][y]が以下のように導出される:
−  predModeIntraが34以上である場合、以下の順序ステップが適用される:
1.  参照サンプルアレイref[x]が以下のように指定される:
−  以下が適用される:
x=0..nTbW+refIdx+1である、ref[x]=p[-1-refIdx+x][-1-refIdx]
−  intraPredAngleが0に満たない場合、主参照サンプルアレイは以下のように拡張される:
x=-nTbH..1である、ref[x]=p[-1-refIdx][-1-refIdx+Min((x*invAngle+256)>>9、nTbH)]
−  そうでない場合、
x=nTbW+2+refIdx..refW+refIdxである、ref[x]=p[-1-refIdx+x][-1-refIdx]
−  x=1..(Max(1、nTbW/nTbH)*refIdx+2)である、追加サンプルref[refW+refIdx+x]が以下のように導出される:
ref[refW+refIdx+x]=p[-1+refW][-1-refIdx]
2.  x=0..nTbW-1、y=0..nTbH-1である、予測サンプルの値predSamples[x][y]が以下のように導出される:
−  指標変数iIdxおよび増倍率iFactが以下のように導出される:
iIdx=(((y+1+refIdx)*intraPredAngle)>>5)+refIdx
iFact=((y+1+refIdx)*intraPredAngle)&31
−  cIdxが0に等しい場合、以下が適用される:
−  j=0..3である補間フィルタ係数fT[j]が以下のように導出される:
fT[j]=filterFlag?fG[iFact][j]:fC[iFact][j]
−  予測サンプルの値predSamples[x][y]が以下のように導出される:
【０２１６】
【数６】
2021533607.tif 000016
【０２１７】
−  そうでない場合(cIdxが0に等しくない場合)、iFactの値に応じて、以下が適用される:
−  iFactが0に等しくない場合、予測サンプルの値predSamples[x][y]が以下のように導出される:
predSamples[x][y]=((32-iFact)*ref[x+iIdx+1]+iFact*ref[x+iIdx+2]+16)>>5
−  そうでない場合、予測サンプルの値predSamples[x][y]が以下のように導出される:
predSamples[x][y]=ref[x+iIdx+1]
−  そうでない場合(predModeIntraが34に満たない場合)、以下の順序ステップが適用される:
1.  参照サンプルアレイref[x]が以下のように指定される:
−  以下が適用される:
x=0..nTbH+refIdx+1である、ref[x]=p[-1-refIdx][-1-refIdx+x]
−  intraPredAngleが0に満たない場合、主参照サンプルアレイは以下のように拡張される:
x=-nTbW..-1である、ref[x]=p[-1-refIdx+Min((x*invAngle+256)>>9、nTbW)][-1-refIdx]
−  そうでない場合、
x=nTbH+2+refIdx..refH+refIdxである、ref[x]=p[-1-refIdx][-1-refIdx+x]
−  x=1..(Max(1、nTbW/nTbH)*refIdx+2)である、追加サンプルref[refH+refIdx+x]が以下のように導出される:
ref[refH+refIdx+x]=p[-1+refH][-1-refIdx]
2.  x=0..nTbW-1、y=0..nTbH-1である、予測サンプルの値predSamples[x][y]が以下のように導出される:
−  指標変数iIdxおよび増倍率iFactが以下のように導出される:
iIdx=(((x+1+refIdx)*intraPredAngle)>>5)+refIdx
iFact=((x+1+refIdx)*intraPredAngle)&31
−  cIdxが0に等しい場合、以下が適用される:
−  j=0..3である、補間フィルタ係数fT[j]が以下のように導出される:
fT[j]=filterFlag?fG[iFact][j]:fC[iFact][j]
−  予測サンプルの値predSamples[x][y]が以下のように導出される:
【０２１８】
【数７】
2021533607.tif 000017
【０２１９】
−  そうでない場合(cIdxが0に等しくない場合)、iFactの値に応じて、以下が適用される:
−  iFactが0に等しくない場合、予測サンプルの値predSamples[x][y]が以下のように導出される:
predSamples[x][y]=((32-iFact)*ref[y+iIdx+1]+iFact*ref[y+iIdx+2]+16)>>5
−  そうでない場合、予測サンプルの値predSamples[x][y]が以下のように導出される:
predSamples[x][y]=ref[y+iIdx+1]
【０２２０】
S2004:第1のサブピクセルオフセット値に基づいて、フィルタ係数を取得する。
【０２２１】
一例では、第1のサブピクセルオフセット値に基づいて、フィルタ係数を取得することは、事前定義されたルックアップテーブルおよび第1のサブピクセルオフセット値に基づいて、フィルタ係数を取得することを意味する。一例では、第1のサブピクセルオフセット値は指標として使用され、事前定義されたルックアップテーブルは、フィルタ係数とサブピクセルオフセットとの間のマッピング関係を記述するために使用される。
【０２２２】
一例では、事前定義されたルックアップテーブルは、以下のように記述される:
【０２２３】
【表１０】
2021533607.tif 000018
【０２２４】
「サブピクセルオフセット」欄は、1/32サブピクセル解像度で定義され、c0、c1、c2、c3は、フィルタ係数である。
【０２２５】
別の例では、事前定義されたルックアップテーブルは、以下のように記述される:
【０２２６】
【表１１】
2021533607.tif 000019
【０２２７】
「サブピクセルオフセット」欄は、1/32サブピクセル解像度で定義され、c0、c1、c2、c3は、フィルタ係数である。
【０２２８】
別の可能な実装形態では、イントラ予測とインター予測の両方に対する補間フィルタ係数導出プロセスの結果は、4タップフィルタの係数である。
【０２２９】
1つの可能な実装形態では、補間フィルタ係数導出プロセスは、イントラ予測において使用される主参照側のサイズがしきい値以下であるときに選択される。
【０２３０】
一例では、フィルタ係数は、ブロックの幅値またはブロックの高さ値に応じて、ガウスまたはキュービックのいずれかになるように選択される。幅を使用するか、または高さを使用するかに関しての判断は、主参照側選択に対する判断と調和される。イントラ予測モードの値が対角モードの値以上であるとき、参照サンプルの上側が主参照側になるように選択され、幅値は、使用中の補間フィルタを決定するために選択される。イントラ予測モードの値が対角モードの値よりも小さい場合、主側参照は、ブロックの左側から選択され、高さ値は、フィルタ選択プロセスを制御するために使用される。具体的には、選択された側の長さが8個のサンプル以下である場合、4タップキュービックフィルタが適用される。選択された側の長さが8個のサンプルよりも大きい場合、補間フィルタは、4タップガウスフィルタである。
【０２３１】
各イントラ予測モードの場合、1つのイントラ予測モードに対応する1つの値が存在する。したがって、主側参照を選択するために、異なるイントラ予測モード値間の値関係(たとえば、それに満たない、それに等しい、またはそれよりも大きい)が使用され得る。
【０２３２】
図12は、32x4ブロックの場合の対角線モード(45°と示される)よりも小さいモードおよびそれよりも大きいモードに対する選択の一例を示す。図12に示すように、現在コーディングブロックのイントラ予測モードに対応する値が対角線モードに対応する値よりも小さい場合、現在コーディングブロックの左側(高さ)が主参照側として選択される。この場合、予測されたブロックに対して指定されたイントラ予測モードが水平に配向される、すなわち、このイントラ予測モードは、イントラ予測モードの第2の範囲に属する。左側は、しきい値(たとえば、8個のサンプル)よりも小さい4個のサンプルを有するため、したがって、キュービック補間フィルタが選択される。
【０２３３】
現在コーディングブロックのイントラ予測モードに対応する値が対角線モードに対応する値以上である場合、現在コーディングブロックの上側(幅)が主参照側として選択される。この場合、予測されたブロックに対して指定されたイントラ予測モードが垂直に配向される、すなわち、このイントラ予測モードは、イントラ予測モードの第1の範囲に属する。上側は、しきい値(たとえば、8個のサンプル)以上である32個のサンプルを有するため、したがって、ガウス補間フィルタが選択される。
【０２３４】
一例では、キュービックフィルタが選択される場合、予測されたサンプルは、シーケンスパラメータセットSPS内で定義されるか、または選択された成分のビット深度から導出されるかのいずれかである、許容値範囲にさらに切り捨てられる。
【０２３５】
一例では、図8に示すように、両方のプロセス、すなわち、イントラ予測されたサンプルおよびインター予測されたサンプルの補間に対して、「クロマに対する6ビット係数を有する4タップ補間フィルタ」(さらに「統合イントラ/インターフィルタ」と呼ばれる)が使用され得る。
【０２３６】
この設計を利用する実施形態を図9に示す。この実装形態では、フィルタリングモジュールは、動き補償906における色度サンプルの予測と、イントラ予測907を実行しているときの予測している輝度サンプルおよび色度サンプルとの両方に従事している別個のユニットとして実装されている。この実装形態では、イントラ予測プロセスとインター予測プロセスの両方において、ハードウェアフィルタリング部分(たとえば、4タップフィルタ904)が使用されている。
【０２３７】
別の実施形態は、フィルタ係数のLUTが再使用されるときの実装形態を示す(図10を参照されたい)。図10は、LUT係数の再使用に基づいて提案される適用例の例示的な実装形態である。この実装形態では、ハードウェアフィルタリングモジュールは、ROM内に記憶されたLUTから係数をロードする。イントラ予測プロセスにおいて示されるスイッチは、イントラ予測プロセスに対して選択された主な側の長さに応じて、使用されているフィルタタイプを決定する。
【０２３８】
別の例では、フィルタ係数は、しきい値に応じて、ガウスまたはキュービックのいずれかになるように選択される。
【０２３９】
いくつかの例では、サイズ32x4および4x32のブロックに対して、参照サンプルフィルタを決定するために使用されるしきい値モードmTは、図16に示されるように定義される。
【０２４０】
しきい値イントラ予測角度の値は、以下の式を使用して計算され得る:
【０２４１】
【数８】
2021533607.tif 000020
【０２４２】
式中、WおよびHは、それぞれ、ブロックの幅および高さである。
【０２４３】
一例では、INTRA_ANGULAR2..INTRA_ANGULAR66イントラ予測モードの仕様。
このプロセスに対する入力は、以下である:
−  イントラ予測モードpredModeIntra
−  イントラ予測参照ライン指標を指定する変数refIdx
−  変換ブロック幅を指定する変数nTbW
−  変換ブロック高さを指定する変数nTbH
−  参照サンプル幅を指定する変数refW
−  参照サンプル高さを指定する変数refH
−  コーディングブロック幅を指定する変数nCbW
−  コーディングブロック高さを指定する変数nCbH
−  参照フィルタフラグの値を指定する変数refFilterFlag
−  現在ブロックの色成分を指定する変数cIdx
−  x=-1-refIdx、y=-1-refIdx..refH-1、およびx=-refIdx..refW-1、y=-1-refIdxである、近接するサンプルp[x][y]
このプロセスの出力は、x=0..nTbW-1、y=0..nTbH-1である、予測されたサンプルpredSamples[x][y]である。
変数nTbSは、(Log2(nTbW)+Log2(nTbH))>>1に等しく設定される。
変数filterFlagが以下のように導出される:
−  以下の条件のうちの1つまたは複数が真である場合、filterFlagは0に等しく設定される。
−  refFilterFlagが1に等しい
−  refIdxが0に等しくない
−  IntraSubPartitionsSplitTypeがISP_NO_SPLITに等しくない
−  そうでない場合、以下が適用される:
−  変数minDistVerHorが、Min(Abs(predModeIntra-50)、Abs(predModeIntra-18))に等しく設定される。
−  変数intraHorVerDistThres[nTbS]が表8-7に指定される。
−  変数filterFlagが以下のように導出される:
−  minDistVerHorがintraHorVerDistThres[nTbS]よりも大きく、refFilterFlagが0に等しい場合、filterFlagは1に等しく設定される。
−  そうでない場合、filterFlagは0に等しく設定される。
【０２４４】
【表１２】
2021533607.tif 000021
【０２４５】
表8-8は、predModeIntraと角度パラメータintraPredAngleとの間のマッピングテーブルを指定する。
【０２４６】
【表１３】
2021533607.tif 000022
【０２４７】
逆角度パラメータinvAngleは、以下のようにintraPredAngleに基づいて導出される:
【０２４８】
【数９】
2021533607.tif 000023
【０２４９】
phase=0..31およびj=0..3である、補間フィルタ係数fC[phase][j]およびfG[phase][j]が表8-9に指定される。
【０２５０】
【表１４】
2021533607.tif 000024
【０２５１】
S2005:フィルタ係数に従って、イントラ予測されたサンプル値を取得する。
イントラ予測されたサンプル値は、現在コーディングブロックのルマ成分に対して使用される。
一実施形態では、イントラ予測されたサンプルは、以下のように、サブピクセルオフセットおよびフィルタタイプに従って、表3から選択された係数で畳み込むことによって計算される。
【０２５２】
【数１０】
2021533607.tif 000025
【０２５３】
この式で「≫」は、ビット単位の右シフト演算を示し、ciは、第1のサブピクセルオフセット値を使用して導出されるフィルタ係数のセットの係数を示し、s(x)は、位置(x,y)においてイントラ予測されたサンプルを示し、refi+xは、参照サンプルのセットを示し、ref1+xは、位置(xr,yr)に位置し、参照サンプルのこの位置は以下のように定義される:
【０２５４】
xr=(((y+1+refIdx)*intraPredAngle)>>5)+refIdx
【０２５５】
yr=≫-1-refIdx
一例では、x=0..nTbW-1、y=0..nTbH-1である、予測サンプルの値predSamples[x][y]が以下のように導出される:
−  predModeIntraが34以上である場合、以下の順序ステップが適用される:
3.  参照サンプルアレイref[x]が以下のように指定される:
−  以下が適用される:
x=0..nTbW+refIdx+1である、ref[x]=p[-1-refIdx+x][-1-refIdx]
−  intraPredAngleが0に満たない場合、主参照サンプルアレイが以下のように拡張される:
x=-nTbH..1である、ref[x]=p[-1-refIdx][-1-refIdx+Min((x*invAngle+256)>>9、nTbH)]
−  そうでない場合、
x=nTbW+2+refIdx..refW+refIdxである、ref[x]=p[-1-refIdx+x][-1-refIdx]
−  x=1..(Max(1,nTbW/nTbH)*refIdx+2)である、追加サンプルref[refW+refIdx+x]が以下のように導出される:
ref[refW+refIdx+x]=p[-1+refW][-1-refIdx]
4.  x=0..nTbW-1、y=0..nTbH-1である、予測サンプルの値predSamples[x][y]が以下のように導出される:
−  指標変数iIdxおよび増倍率iFactが以下のように導出される:
iIdx=(((y+1+refIdx)*intraPredAngle)>>5)+refIdx
iFact=((y+1+refIdx)*intraPredAngle)&31
−  cIdxが0に等しい場合、以下が適用される:
−  j=0..3である、補間フィルタ係数fT[j]が以下のように導出される:
fT[j]=filterFlag?fG[iFact][j]:fC[iFact][j]
−  予測サンプルの値predSamples[x][y]が以下のように導出される:
【０２５６】
【数１１】
2021533607.tif 000026
【０２５７】
−  そうでない場合(cIdxが0に等しくない場合)、iFactの値に応じて、以下が適用される:
−  iFactが0に等しくない場合、予測サンプルの値predSamples[x][y]が以下のように導出される:
predSamples[x][y]=((32-iFact)*ref[x+iIdx+1]+iFact*ref[x+iIdx+2]+16)>>5
−  そうでない場合、予測サンプルの値predSamples[x][y]が以下のように導出される:
predSamples[x][y]=ref[x+iIdx+1]
−  そうでない場合(predModeIntraが34に満たない場合)、以下の順序ステップが適用される:
3.  参照サンプルアレイref[x]が以下のように指定される:
−  以下が適用される:
x=0..nTbH+refIdx+1である、ref[x]=p[-1-refIdx][-1-refIdx+x]
−  intraPredAngleが0に満たない場合、主参照サンプルアレイが以下のように拡張される:
x=-nTbW..-1である、ref[x]=p[-1-refIdx+Min((x*invAngle+256)>>9、nTbW)][-1-refIdx]
−  そうでない場合、
x=nTbH+2+refIdx..refH+refIdxである、ref[x]=p[-1-refIdx][-1-refIdx+x]
−  x=1..(Max(1,TbW/nTbH)*refIdx+2)である、追加サンプルref[refH+refIdx+x]が以下のように導出される:
ref[refH+refIdx+x]=p[-1+refH][-1-refIdx]
4.  x=0..nTbW-1、y=0..nTbH-1である、予測サンプルの値predSamples[x][y]が以下のように導出される:
−  指標変数iIdxおよび増倍率iFactが以下のように導出される:
iIdx=(((x+1+refIdx)*intraPredAngle)>>5)+refIdx
iFact=((x+1+refIdx)*intraPredAngle)&31
−  cIdxが0に等しい場合、以下が適用される:
−  j=0..3である、補間フィルタ係数fT[j]が以下のように導出される:
fT[j]=filterFlag?fG[iFact][j]:fC[iFact][j]
−  予測サンプルの値predSamples[x][y]が以下のように導出される:
【０２５８】
【数１２】
2021533607.tif 000027
【０２５９】
−  そうでない場合(cIdxが0に等しくない場合)、iFactの値に応じて、以下が適用される:
−  iFactが0に等しくない場合、予測サンプルの値predSamples[x][y]が以下のように導出される:
predSamples[x][y]=((32-iFact)*ref[y+iIdx+1]+iFact*ref[y+iIdx+2]+16)>>5
−  そうでない場合、予測サンプルの値predSamples[x][y]が以下のように導出される:
predSamples[x][y]=ref[y+iIdx+1]
【０２６０】
S2006:現在コーディングブロックの動き情報に従って、第2のサブピクセルオフセット値を取得する。
現在コーディングブロックの動き情報は、ビットストリーム内でシグナリングされる。動き情報は、インター予測において使用される、動きベクトルおよび他のシンタックス要素を含み得る。
一例では、第1のサブピクセルオフセット値は、第2のサブピクセルオフセット値に等しくてよい。別の例では、第1のサブピクセルオフセット値は、第2のサブピクセルオフセット値と異なり得る。
【０２６１】
S2007:第2のサブピクセルオフセット値に基づいて、フィルタ係数を取得する。
【０２６２】
可能な実装形態では、インター予測において使用される補間フィルタ係数導出プロセスにおいて、イントラ予測において使用される同じ事前定義されたルックアップテーブルが実行される。この例では、第2のサブピクセルオフセット値に基づいて、フィルタ係数を取得することは、事前定義されたルックアップテーブルおよび第2のサブピクセルオフセット値に基づいて、フィルタ係数を取得することを意味する。一例では、第2のサブピクセルオフセット値は指標として使用され、事前定義されたルックアップテーブルは、フィルタ係数とサブピクセルオフセットとの間のマッピング関係を記述するために使用される。
【０２６３】
一例では、事前定義されたルックアップテーブルは、以下のように記述される:
【０２６４】
【表１５】
2021533607.tif 000028
【０２６５】
「サブピクセルオフセット」欄は、1/32サブピクセル解像度で定義され、c0、c1、c2、c3は、フィルタ係数である。
【０２６６】
別の例では、事前定義されたルックアップテーブルは、以下のように記述される:
【０２６７】
【表１６】
2021533607.tif 000029
【０２６８】
「サブピクセルオフセット」欄は、1/32サブピクセル解像度で定義され、c0、c1、c2、c3は、フィルタ係数である。
サブピクセルオフセットの値が0に等しいとき、フィルタ係数は、インター予測されたサンプルを取得することは必要とされない。第1の代替実施形態では、以下のステップが実行され得る:
【０２６９】
【数１３】
2021533607.tif 000030
【０２７０】
第2の代替実施形態では、以下のステップが実行され得る:
【０２７１】
【数１４】
2021533607.tif 000031
【０２７２】
第3の代替実施形態では、以下のステップが実行され得る:
−  n=0..3である、サンプルアレイtemp[n]が以下のように導出される:
【０２７３】
【数１５】
2021533607.tif 000032
【０２７４】
−  予測されたクロマサンプル値predSampleLXCが以下のように導出される:
predSampleLXC=(fC[yFracC][0]*temp[0]+
fC[yFracC][1]*temp[1]+
fC[yFracC][2]*temp[2]+
fC[yFracC][3]*temp[3])>>shift2
すべての3つの上記で開示された代替実施形態では、yFracCおよびxFracCは0に等しく設定され、fC[0][0]=0、fC[0][1]=64、fC[0][2]=0、fC[0][3]=0である。
【０２７５】
別の可能な実装形態では、イントラ予測とインター予測の両方に対する補間フィルタ係数導出プロセスの結果は、4タップフィルタの係数である。
【０２７６】
S2008:フィルタ係数に従って、インター予測されたサンプル値を取得する。
【０２７７】
可能な実装形態では、現在コーディングブロックのクロマ成分に対してインター予測されたサンプル値が使用される。
【０２７８】
一例では、クロマサンプル補間プロセスが開示される。
このプロセスに対する入力は、以下である:
−  フルサンプルユニット内のクロマ位置(xIntC,yIntC)、
−  1/32分数サンプルユニット内のクロマ位置(xFracC,yFracC)、
−  参照ピクチャの左上クロマサンプルに対する参照サンプルパディングのための境界ブロックの左上サンプルを指定する、フルサンプルユニット内のクロマ位置(xSbIntC,ySbIntC)、
−  現在サブブロックの幅を指定する変数sbWidth、
−  現在サブブロックの高さを指定する変数sbHeight、
−  クロマ参照サンプルアレイrefPicLXC。
このプロセスの出力は、予測されるクロマサンプル値predSampleLXCである。
変数shift1、shift2、およびshift3が、以下のように導出される:
−  変数shift1は、Min(4,BitDepthC-8)に等しく設定され、変数shift2は、6に等しく設定され、変数shift3は、Max(2,14-BitDepthC)に等しく設定される。
−  変数picWCは、pic_width_in_luma_samples/SubWidthCに等しく設定され、変数picHCは、pic_height_in_luma_samples/SubHeightCに等しく設定される。
xFracCまたはyFracCに等しい各1/32分数サンプル位置pに対するクロマ補間フィルタ係数fC[p]は、表8-13に指定されている。
変数xOffsetは、(sps_ref_wraparound_offset_minus1+1)*MinCbSizeY)/SubWidthCに等しく設定される。
フルサンプルユニット内のクロマ位置(xInti,yInti)は、i=0..3に対して、以下のように導出される:
−  subpic_treated_as_pic_flag[SubPicIdx]が1に等しい場合、以下が適用される:
xInti=Clip3(SubPicLeftBoundaryPos/SubWidthC,SubPicRightBoundaryPos/SubWidthC,xIntL+i)
yInti=Clip3(SubPicTopBoundaryPos/SubHeightC,SubPicBotBoundaryPos/SubHeightC,yIntL+i)
−  そうでない場合(subpic_treated_as_pic_flag[SubPicIdx]が0に等しい場合)、以下が適用される:
xInti=Clip3(0,picWC-1,sps_ref_wraparound_enabled_flag?ClipH(xOffset,picWC,xIntC+i-1):xIntC+i-1)
yInti=Clip3(0,picHC-1,yIntC+i-1)
フルサンプルユニット内のクロマ位置(xInti,yInti)は、i=0..3に対して、以下のようにさらに修正される:
xInti=Clip3(xSbIntC-1,xSbIntC+sbWidth+2,xInti)
yInti=Clip3(ySbIntC-1,ySbIntC+sbHeight+2,yInti)
予測されたクロマサンプル値predSampleLXCが以下のように導出される:
−  xFracCとyFracCが両方とも0に等しい場合、predSampleLXCの値が以下のように導出される:
predSampleLXC=refPicLXC[xInt1][yInt1]<<shift3
−  そうでない場合、xFracCが0に等しくなく、yFracCが0に等しい場合、predSampleLXCの値が以下のように導出される:
【０２７９】
【数１６】
2021533607.tif 000033
【０２８０】
−  そうでない場合、xFracCが0に等しく、yFracCが0に等しくない場合、predSampleLXCの値が以下のように導出される:
【０２８１】
【数１７】
2021533607.tif 000034
【０２８２】
−  そうでない場合、xFracCが0に等しくなく、yFracCが0に等しくない場合、predSampleLXCの値が以下のように導出される:
−  n=0..3である、サンプルアレイtemp[n]が以下のように導出される:
【０２８３】
【数１８】
2021533607.tif 000035
【０２８４】
−  予測されるクロマサンプル値predSampleLXCが以下のように導出される:
predSampleLXC=(fC[yFracC][0]*temp[0]+
fC[yFracC][1]*temp[1]+
fC[yFracC][2]*temp[2]+
fC[yFracC][3]*temp[3])>>shift2
【０２８５】
デコーダは、上記の方法を実行するように構成された処理回路を備える。
【０２８６】
本開示において、上記の方法を実行するための、プログラムコードを備えたコンピュータプログラム製品が開示される。
【０２８７】
本開示において、ビデオデータを復号するためのデコーダが開示され、デコーダは、1つまたは複数のプロセッサと、プロセッサに接続され、プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体とを備え、プログラミングは、プロセッサによって実行されると、上記の方法を実行するようにデコーダを構成する。
【０２８８】
図18は、本開示の一実施形態によるネットワークデバイス1300の概略図である。ネットワークデバイス1300は、本明細書で説明するように、開示される実施形態を実装するのに好適である。ネットワークデバイス1300は、データを受信するための入口ポート1310および受信機ユニット(Rx)1320と、データを処理するためのプロセッサ、論理ユニット、または中央処理ユニット(CPU)1330と、データを送信するための送信機ユニット(Tx)1340および出口ポート1350と、データを記憶するためのメモリ1360とを備える。ネットワークデバイス1300はまた、光信号または電気信号の出入に対する、入口ポート1310、受信機ユニット1320、送信機ユニット1340、および出口ポート1350に接続された、光対電気(OE)構成要素および電気対光(EO)構成要素を備え得る。
【０２８９】
プロセッサ1330は、ハードウェアおよびソフトウェアによって実装される。プロセッサ1330は、1つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサとして)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、およびデジタル信号プロセッサ(DSP)として実装され得る。プロセッサ1330は、入口ポート1310、受信機ユニット1320、送信機ユニット1340、出口ポート1350、およびメモリ1360と通信している。プロセッサ1330は、コーディングモジュール1370を備える。コーディングモジュール1370は、上記で説明した、開示される実施形態を実装する。たとえば、コーディングモジュール1370は、様々なネットワーキング機能を実装、処理、準備、または提供する。コーディングモジュール1370の包含は、したがって、ネットワークデバイス1300の機能性にかなりの改善を提供し、異なる状態へのネットワークデバイス1300の変換をもたらす。代替として、コーディングモジュール1370は、メモリ1360内に記憶され、プロセッサ1330によって実行される命令として実装される。
【０２９０】
メモリ1360は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを備え、プログラムが実行のために選択されるとき、そのようなプログラムを記憶するために、またプログラム実行中に読み取られる命令およびデータを記憶するために、オーバーフローデータ記憶デバイスとして使用され得る。メモリ1360は、揮発性および/または不揮発性であってよく、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、3値連想メモリ(TCAM)、および/またはスタティックランダムアクセスメモリ(SRAM)であってよい。
【０２９１】
図19は、様々な実施形態を実装するために使用され得る装置1500のブロック図である。装置1500は、図1に示したようなソースデバイス102、または図2に示したようなビデオエンコーダ200、または図1に示したような宛先デバイス104、または図3に示したようなビデオデコーダ300であってよい。加えて、装置1100は、説明する要素のうちの1つまたは複数をホストし得る。いくつかの実施形態では、装置1100は、スピーカ、マイクロフォン、マウス、タッチスクリーン、キーパッド、キーボード、プリンタ、ディスプレイなど、1つまたは複数の入出力デバイスを備える。装置1500は、バスに接続された、1つまたは複数の中央処理ユニット(CPU)1510、メモリ1520、大容量記憶装置1530、ビデオアダプタ1540、およびI/Oインターフェース1560を含み得る。バスは、メモリバスまたはメモリコントローラ、周辺バス、ビデオバスなどを含む、任意のタイプのいくつかのバスアーキテクチャのうちの1つまたは複数である。
【０２９２】
CPU1510は、任意のタイプの電子データプロセッサを有し得る。メモリ1520は、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、同期DRAM(SDRAM)、読取り専用メモリ(ROM)、それらの組合せなど、任意のタイプのシステムメモリを有し得るか、またはそれらであってよい。一実施形態では、メモリ1520は、起動に使用するためのROMと、プログラムを実行する間に使用するためのプログラムおよびデータを記憶するためのDRAMとを含み得る。実施形態では、メモリ1520は、非一時的である。大容量記憶装置1530は、データ、プログラム、および他の情報を記憶する、またバスを介してデータ、プログラム、および他の情報をアクセス可能にするための、任意のタイプの記憶デバイスを含む。大容量記憶装置1530は、たとえば、ソリッドステートドライブ、ハードディスクドライブ、磁気ディスクドライブ、光ディスクドライブなどのうちの1つまたは複数を含む。
【０２９３】
ビデオアダプタ1540およびI/Oインターフェース1560は、外部の入力デバイスおよび出力デバイスを装置1100に接続するためのインターフェースを提供する。たとえば、装置1100は、SQLコマンドインターフェースをクライアントに提供し得る。示すように、入力デバイスおよび出力デバイスの例は、ビデオアダプタ1540に接続されたディスプレイ1590、およびI/Oインターフェース1560に接続されたマウス/キーボード/プリンタ1570の任意の組合せを含む。他のデバイスが装置1100に接続されてよく、追加のまたはより少ないインターフェースカードが利用されてよい。たとえば、プリンタ用のシリアルインターフェースを提供するために、シリアルインターフェースカード(図示せず)が使用され得る。
【０２９４】
装置1100は、1つまたは複数のネットワークインターフェース1550を含んでもよく、ネットワークインターフェースは、たとえばEthernet(登録商標)ケーブルなどのワイヤードリンク、および/またはアクセスノードもしくは1つまたは複数のネットワーク1580に対するワイヤレスリンクを含む。ネットワークインターフェース1550は、装置1100がネットワーク1580を介してリモートユニットと通信することを可能にする。たとえば、ネットワークインターフェース1550は、データベースに対する通信を提供し得る。一実施形態では、装置1100は、データ処理、および他の処理ユニット、インターネット、リモート記憶設備などのリモートデバイスとの通信のために、ローカルエリアネットワークまたは広域ネットワークに接続される。
【０２９５】
所与のブロック内のピクセルを予測するために必要とされる加重係数の値を計算するために、区分的線形近似が導入される。区分的線形近似は、一方で、簡単な加重係数計算と比較して距離加重の予測機構の計算複雑性をかなり低減し、他方で、先行技術の単純化と比較して加重係数値のより高い精度を達成するのに役立つ。
【０２９６】
これらの実施形態は、他の双方向イントラ予測技法および位置依存イントラ予測技法(たとえば、PDPCの異なる修正)、ならびにピクチャの異なる部分を混合する(たとえば、画像処理におけるいくつかの混合方法)ために、あるピクチャから別のピクチャへの距離に依存する加重係数を使用する機構に適用され得る。
【０２９７】
本主題の実装形態および本開示において説明した動作は、デジタル電子回路において、または本開示で開示された構造およびそれらの構造的な均等物を含む、コンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つまたは複数の組合せにおいて実装され得る。本開示において説明した本主題の実装形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはその動作を制御するために、コンピュータ記憶媒体上で符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替または追加として、プログラム命令は、データ処理装置による実行のために好適な受信機装置への送信のための情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば、機械生成された電子信号、光信号、または電磁信号に対して符号化される。コンピュータ記憶媒体、たとえば、コンピュータ可読媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムアクセスメモリアレイもしくはランダムアクセスメモリデバイスまたはシリアルアクセスメモリアレイもしくはシリアルアクセスメモリデバイスデバイス、またはそれらのうちの1つまたは複数の組合せであってよいか、またはそれらの中に含まれてよい。その上、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号内で符号化されたコンピュータプログラム命令のソースまたは宛先であってよい。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理的および/もしくは非一時的構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であってよいか、あるいはそれらの中に含まれてよい。
【０２９８】
いくつかの実装形態では、本開示において説明した動作は、クラウドコンピューティングネットワーク内のサーバ上で提供される、ホストされたサービスとして実装され得る。たとえば、コンピュータ可読記憶媒体は、クラウドコンピューティングネットワーク内で論理的にグループ化され得るか、またはアクセス可能であり得る。クラウドコンピューティングネットワーク内のサーバは、クラウドベースのサービスを提供するためのクラウドコンピューティングプラットフォームを含み得る。「クラウド」、「クラウドコンピューティング」、および「クラウドベース」という用語は、本開示の範囲から逸脱せずに、適宜に互換的に使用され得る。クラウドベースのサービスは、クライアントコンピュータ上で局所的に実行されるアプリケーションを拡張、補間、または置換するために、サーバによって提供され、ネットワーク上で、クライアントプラットフォームに配信される、ホストされたサーバであり得る。回路は、さもなければ、リソースが回路に配信され得るまでに非常に長い時間期間を必要とすることになる、ソフトウェア更新、アプリケーション、および他のリソースを迅速に受信するためにクラウドベースのサービスを使用し得る。
【０２９９】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイル型言語もしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む、任意の形態のプログラミング言語で書き込まれてよく、コンピュータプログラムは、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、オブジェクト、もしくはコンピューティング環境で使用するのに好適な他のユニットとして含む、任意の形態で展開され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、そうでなくてもよい。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語文書内に記憶された1つまたは複数のスクリプト)を保持するファイルの一部分の中に、当該プログラム専用の単一のファイルの中に、または複数の協調ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)の中に記憶され得る。コンピュータプログラムは、1つのコンピュータ上にあるいは1つの場所に位置するか、または複数の場所にわたって分散され、通信ネットワークによって相互接続された、複数のコンピュータ上で実行されるように展開され得る。
【０３００】
本開示において説明したプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって動作を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行され得る。プロセスおよび論理フローは、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されてもよく、装置はそれらとして実装されてもよい。
【０３０１】
コンピュータプログラムの実行に好適なプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、読取り専用メモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受信することになる。コンピュータの必須要素は、命令に従って動作を実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。概して、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクも含むことになるか、またはデータをそこから受信し、データをそこに転送するように動作可能に接続されることになるか、もしくはその両方である。しかしながら、コンピュータは、そのようなデバイスを有さなくてもよい。その上、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオプレーヤもしくはモバイルビデオプレーヤ、ゲーム機、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)内に埋め込まれてよい。コンピュータプログラム命令およびデータを記憶するのに好適なデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスと、磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスクと、光磁気ディスクと、CDROMディスクおよびDVD-ROMディスクとを含む、すべての形態の不揮発性メモリデバイス、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完されてよく、またはその中に組み込まれてよい。
【０３０２】
本開示は、多くの特定の実装形態の詳細を包含するが、これらは、実装形態の範囲に対する、または特許請求され得るものの限定と解釈されるべきではなく、むしろ、特定の実装形態の特定の実装形態に特定な特徴の記述と解釈すべきである。本開示において別個の実装形態の文脈で説明したいくつかの特徴は、単一の実装形態において組み合わせて実装されてもよい。逆に、単一の実装形態の文脈で説明した様々な特徴は、複数の実装形態において別個に、または任意の好適な下位組合せで実装されてもよい。その上、特徴はいくつかの組合せで動作するとして上記で説明されることがあり、さらに当初はそのように特許請求されることがあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除されてよく、特許請求される組合せは、下位組合せ、または下位組合せの変形形態を対象とすることがある。
【０３０３】
同様に、図面において動作は特定の順序で示されるが、これはそのような動作が、示される特定の順序で、または順番に実行されること、あるいは所望の結果を達成するために、すべての例示された動作が実行されること、を必要とすると理解すべきではない。状況によっては、マルチタスキングおよび並列処理が有利であり得る。その上、上記で説明した実装形態における様々なシステム構成要素の分離は、すべての実装形態でそのような分離を必要とすると理解すべきではなく、説明したプログラム構成要素およびシステムは、概して、単一のソフトウェア製品内に一緒に一体化されてよいか、または複数のソフトウェア製品にパッケージングされてよいことを理解されたい。
【０３０４】
以上、主題の特定の実装形態が説明された。他の実装形態は、以下の請求項の範囲内である。場合によっては、請求項において列挙される動作は、異なる順序で実行され、依然として、所望の結果を達成し得る。加えて、添付の図面に示したプロセスは、所望の結果を達成するために、示した特定の順序、または順番を必ずしも必要としない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利であり得る。
【０３０５】
いくつかの実施形態が本開示において提供されているが、開示されるシステムおよび方法は、本開示の趣旨または範囲から逸脱せずに、多くの他の特定の形態で実施され得ることを理解されたい。本例は、限定的ではなく、例示的と見なされるべきであり、本明細書で与えられる詳細に対する限定であることを意図しない。たとえば、様々な要素または構成要素は、別のシステム内で組み合わされてよくまたは一体化されてよく、または一定の特徴は、省かれてよく、または実装されなくてよい。
【０３０６】
加えて、様々な実施形態で、個別または別個として説明しおよび例示した、技法、システム、サブシステム、および方法は、本開示の範囲から逸脱せずに、他のシステム、モジュール、技法、または方法と組み合わされてよく、または一体化されてよい。互いに結合され、または直接結合され、または通信しているとして、示しまたは論じた他の項目は、電気的であれ、機械的であれ、またはそれ以外であれ、何らかのインターフェース、デバイス、または中間構成要素を通して、間接的に結合されるかまたは通信していることがある。変更、置換、および改変の他の例は、当業者によって確認可能であり、本明細書で開示される趣旨および範囲から逸脱せずに行われ得る。
以下において、本発明のさらなる実施形態が説明され、実施形態の番号付けは、前のテキスト内で使用された番号付けと必ずしも整合するとは限らない。
【０３０７】
実施形態1．イントラ予測のための方法であって、
ブロックのイントラ予測のための補間フィルタとして色度成分に対する補間フィルタを使用するステップを含む、方法。
【０３０８】
実施形態2．色度成分に対する補間フィルタのルックアップテーブルが、イントラ予測のための補間フィルタのルックアップテーブルと同じである、実施形態1に記載の方法。
【０３０９】
実施形態3．色度成分に対する補間フィルタのルックアップテーブルが、イントラ予測のための補間フィルタのルックアップテーブルと同じではない、実施形態1に記載の方法。
【０３１０】
実施形態4．補間フィルタが、4タップフィルタである、実施形態1から3のいずれか1つに記載の方法。
【０３１１】
実施形態5．色度成分に対する補間フィルタのルックアップテーブルが以下である、実施形態1から4のいずれか1つに記載の方法。
【０３１２】
【表１７】
2021533607.tif 000036
【０３１３】
実施形態6．イントラ予測のための方法であって、
ブロックのイントラ予測のための補間フィルタのセットから補間フィルタを選択するステップを含む、方法。
【０３１４】
実施形態7．補間フィルタのセットが、ガウスフィルタおよびキュービックフィルタを含む、実施形態6に記載の方法。
【０３１５】
実施形態8．選択された補間フィルタのルックアップテーブルが、色度成分に対する補間フィルタのルックアップテーブルと同じである、実施形態6または7に記載の方法。
【０３１６】
実施形態9．選択された補間フィルタが、4タップフィルタである、実施形態6から8のいずれか1つに記載の方法。
【０３１７】
実施形態10．選択された補間フィルタが、キュービックフィルタである、実施形態6から9のいずれか1つに記載の方法。
【０３１８】
実施形態11．選択された補間フィルタのルックアップテーブルが以下である、実施形態6から10のいずれか1つに記載の方法。
【０３１９】
【表１８】
2021533607.tif 000037
【０３２０】
実施形態12．実施形態1から11のいずれか1つによる方法を実行するための処理回路を備える、エンコーダ。
【０３２１】
実施形態13．実施形態1から11のいずれか1つによる方法を実行するための処理回路を備える、デコーダ。
【０３２２】
実施形態14．実施形態1から11のいずれか1つによる本方法を実行するためのプログラムコードを備える、コンピュータプログラム。
【０３２３】
実施形態15．デコーダであって、
1つまたは複数のプロセッサと、
プロセッサに接続され、プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体と
を備え、プログラミングが、プロセッサによって実行されると、実施形態1から11のいずれか1つによる方法を実行するようにデコーダを構成する、デコーダ。
【０３２４】
実施形態16．エンコーダであって、
1つまたは複数のプロセッサと、
プロセッサに接続され、プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体と
を備え、プログラミングが、プロセッサによって実行されると、実施形態1から11のいずれか1つによる方法を実行するようにエンコーダを構成する、エンコーダ。
【０３２５】
一実施形態では、ビデオコーディングの方法が開示され、
参照ブロックの輝度サンプルおよび色度サンプルに適用されるサブピクセル補間フィルタ(たとえば、MC補間に対して、1つの、または概していくつかのフィルタが定義され得る)を備えた、ブロックのインター予測プロセスと、
輝度参照サンプルおよび色度参照サンプルに適用されるサブピクセル補間フィルタ(たとえば、イントラ参照サンプル補間に対して、1つ、または概していくつかのフィルタが定義され得る)を備えた、ブロックのイントラ予測プロセスと
を含み、
サブピクセル補間フィルタが、参照サンプルの位置と補間サンプルの位置との間のサブピクセルオフセットに基づいて選択され、イントラ予測プロセスおよびインター予測プロセスにおいて等しい前記サブピクセルオフセットに対して、イントラ予測プロセスのフィルタ(たとえば、イントラ参照サンプル補間の場合、1つまたは複数のフィルタが使用され得る)がインター予測プロセスのためのフィルタと同じになるように選択される、方法。
【０３２６】
別の実施形態では、所与のサブピクセルオフセットに対するイントラ予測プロセスのフィルタ(たとえば、唯一のフィルタまたはフィルタセットの1個のフィルタがイントラ予測プロセスのために使用され得る)がフィルタのセットから選択され(たとえば、1つまたはいくつかのフィルタがMC補間に対して利用可能であり得る)、そのうちの1つはインター予測プロセスのためのフィルタと同じである。
【０３２７】
別の実施形態では、インター予測プロセスにおいて色度サンプルに適用されるフィルタは、イントラ予測プロセスにおいて輝度参照サンプルおよび色度参照サンプルに適用されるフィルタと同じである。
【０３２８】
別の実施形態では、インター予測プロセスにおいて輝度サンプルおよび色度サンプルに適用されるフィルタは、イントラ予測プロセスにおいて輝度参照サンプルおよび色度参照サンプルに適用されるフィルタと同じである。
【０３２９】
別の実施形態では、イントラ予測プロセスのフィルタは、イントラ予測プロセスにおいて使用される主参照側のサイズがしきい値に満たない場合、インター予測プロセスのためのフィルタと同じになるように選択される。
【０３３０】
別の実施形態では、側面サイズしきい値は、16個のサンプルである。
【０３３１】
別の実施形態では、インター予測プロセスは、イントラブロックコピープロセスである。
【０３３２】
別の実施形態では、インター予測プロセスおよびイントラ予測プロセスにおいて使用されるフィルタは、有限インパルス応答フィルタであり、それらの係数は、ルックアップテーブルからフェッチされる。
【０３３３】
別の実施形態では、イントラ予測プロセスにおいて使用される補間フィルタは、4タップフィルタである。
【０３３４】
別の実施形態では、フィルタの係数は、以下のようなサブピクセルオフセットに依存する:
【０３３５】
【表１９】
2021533607.tif 000038
【０３３６】
「サブピクセルオフセット」欄は、1/32サブピクセル解像度で定義される。
【０３３７】
別の実施形態では、フィルタのセットは、ガウスフィルタおよびキュービックフィルタを含む。
【０３３８】
別の実施形態では、エンコーダは、上記の方法を実行するための処理回路を備える。
【０３３９】
別の実施形態では、デコーダは、上記の方法を実行するための処理回路を備える。
【０３４０】
別の実施形態では、コンピュータプログラム製品は、上記の方法を実行するためのプログラムコードを備える。
【０３４１】
別の実施形態では、デコーダは、1つまたは複数のプロセッサと、プロセッサに接続され、プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体とを備え、プログラミングは、プロセッサによって実行されると、上記の方法を実行するようにデコーダを構成する。
【０３４２】
別の実施形態では、エンコーダは、1つまたは複数のプロセッサと、プロセッサに接続され、プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体とを備え、プログラミングは、プロセッサによって実行されると、上記の方法を実行するようにエンコーダを構成する。
【符号の説明】
【０３４３】
10  コーディングシステム
12  ソースデバイス
13  符号化されたピクチャデータ
14  宛先デバイス
16  ピクチャソース
17  ピクチャデータ
18  ピクチャ事前処理ユニット
19  事前処理ピクチャデータ
20  ビデオエンコーダ
21  符号化されたピクチャデータ
22  通信ユニット、通信インターフェース
28  通信ユニット、通信インターフェース
30  ビデオデコーダ
31  復号されたピクチャデータ
32  後処理ユニット、ポストプロセッサ
33  後処理ピクチャデータ
34  ディスプレイデバイス
201  現在ピクチャ
202  入力
203  現在ピクチャブロック
204  残差計算ユニット
205  残差ブロック
206  変換処理ユニット
208  量子化ユニット
210  逆量子化ユニット
212  逆変換処理ユニット
214  再構築ユニット
215  再構築されたブロック
216  バッファ
220  ループフィルタユニット、ループフィルタ
230  復号ピクチャバッファ(DPB)
231  参照ピクチャデータ
244  インター予測ユニット
245  インター予測されたブロック、インター予測ブロック
254  イントラ予測ユニット
255  イントラ予測されたブロック、イントラ予測ブロック
260  ブロック予測処理ユニット
262  モード選択ユニット
265  予測ブロック
270  エントロピー符号化ユニット
304  エントロピー復号ユニット
309  量子化係数
310  逆量子化ユニット
312  逆変換処理ユニット
313  逆変換ブロック、再構築された残差ブロック
314  再構築ユニット、加算器
315  再構築されたブロック
316  バッファ
320  ループフィルタユニット、ループフィルタ
321  フィルタリングされたブロック、復号されたビデオブロック
330  復号ピクチャバッファ(DPB)
331  復号されたピクチャ
332  出力
344  インター予測ユニット
354  イントラ予測ユニット
360  予測処理ユニット
362  モード選択ユニット
365  予測ブロック
904  4タップフィルタ
906  動き補償
907  イントラ予測
1300  ネットワークデバイス
1310  入口ポート
1320  受信機ユニット(Rx)
1330  論理ユニット、プロセッサ、中央処理ユニット(CPU)
1340  送信機ユニット(Tx)
1350  出口ポート
1360  メモリ
1370  コーディングモジュール
1500  装置
1510  中央処理ユニット(CPU)
1520  メモリ
1530  大容量記憶装置
1540  ビデオアダプタ
1550  ネットワークインターフェース
1560  I/Oインターフェース
1570  マウス/キーボード/プリンタ
1580  ネットワーク
1590  ディスプレイ
【図１】
2021533607.tif 000041
【図２】
2021533607.tif 000042
【図３】
2021533607.tif 000043
【図４】
2021533607.tif 000044
【図５】
2021533607.tif 000045
【図６】
2021533607.tif 000046
【図７】
2021533607.tif 000047
【図８】
2021533607.tif 000048
【図９】
2021533607.tif 000049
【図１０】
2021533607.tif 000050
【図１１】
2021533607.tif 000051
【図１２】
2021533607.tif 000052
【図１３】
2021533607.tif 000053
【図１４】
2021533607.tif 000054
【図１５】
2021533607.tif 000055
【図１６】
2021533607.tif 000056
【図１７】
2021533607.tif 000057
【図１８】
2021533607.tif 000058
【図１９】
2021533607.tif 000059
【図２０】
2021533607.tif 000060
【国際調査報告】
2021533607.tif 000061
2021533607.tif 000062