IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッドの特許一覧

特表2022-541687三角分割を用いたビデオ符号化の方法および装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-09-26
(54)【発明の名称】三角分割を用いたビデオ符号化の方法および装置
(51)【国際特許分類】
   H04N 19/52 20140101AFI20220915BHJP
   H04N 19/70 20140101ALI20220915BHJP
   H04N 19/91 20140101ALI20220915BHJP
【FI】
H04N19/52
H04N19/70
H04N19/91
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022521768
(86)(22)【出願日】2020-10-12
(85)【翻訳文提出日】2022-05-19
(86)【国際出願番号】 US2020055259
(87)【国際公開番号】W WO2021072375
(87)【国際公開日】2021-04-15
(31)【優先権主張番号】62/913,710
(32)【優先日】2019-10-10
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/948,781
(32)【優先日】2019-12-16
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521248394
【氏名又は名称】ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO.,LTD.
(74)【代理人】
【識別番号】110001519
【氏名又は名称】特許業務法人太陽国際特許事務所
(72)【発明者】
【氏名】ワン、シアンリン
(72)【発明者】
【氏名】チェン、イー-ウェン
(72)【発明者】
【氏名】シウ、シアオユイ
(72)【発明者】
【氏名】マー、ツォン-チョアン
(72)【発明者】
【氏名】チュー、ホン-チェン
(72)【発明者】
【氏名】ユイ、ピン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC04
5C159LC09
5C159MA05
5C159ME11
5C159NN10
5C159NN11
5C159RC16
5C159UA02
5C159UA05
(57)【要約】
ビデオ符号化のための方法および装置が提供される。本方法は、ビデオピクチャを複数のCUに分割し、複数のCUの少なくとも1つが、少なくとも1つの幾何学的形状PUを含む、2つのPUにさらに分割され、複数の候補を含む第1マージリストを構築し、候補の各々がList0MVおよび/またはList1MVを含むMVであり、第1インデックスおよび第2インデックスによって、第1PUの第1候補および第2PUの第2候補を各々検出し、第1バイナリ参照リスト指示フラグによって第1候補のListX1MVを選択することにより第1PUの第1ユニ予測MVを取得し、第2バイナリ参照リスト指示フラグによって第2候補のListX2MVを選択することにより第2PUの第2ユニ予測MVを取得する。
【特許請求の範囲】
【請求項1】
ビデオピクチャを複数の符号化ユニット(CU)に分割し、複数の前記符号化ユニットの少なくとも1つは、少なくとも1つの幾何学的形状予測ユニット(PU)を含む2つのPU、第1PUおよび第2PU、にさらに分割され、
レギュラーマージ予測のためのマージリスト構築プロセスに基づいて、複数の候補を含む第1マージリストを構築し、複数の前記候補の各々は、List0MVおよび/またはList1MVを含む動きベクトル(MV)であり、
第1インデックスによって前記第1PUの第1候補を検出し、
第2インデックスによって前記第2PUの第2候補を検出し、
第1バイナリ参照リスト指示フラグによって前記第1候補のListX1MVを選択することにより前記第1PUの第1ユニ予測MVを取得し、X1は0または1の値をとり、前記第1バイナリ参照リスト指示フラグによって示され、
第2バイナリ参照リスト指示フラグによって前記第2候補のListX2MVを選択することにより前記第2PUの第2ユニ予測MVを取得し、X2は0または1の値をとり、前記第2バイナリ参照リスト指示フラグによって示される、
幾何学的分割を用いたビデオ符号化方法。
【請求項2】
前記第1インデックスと前記第2インデックスとが同じであると判定された場合に、前記第2バイナリ参照リスト指示フラグは前記第1バイナリ参照リスト指示フラグに対して反対の値を有すると決定される、
請求項1に記載の幾何学的分割を用いたビデオ符号化方法。
【請求項3】
前記第1候補の前記ListX1MVが存在しないと判定した場合に、前記第1ユニ予測MVとしてユニ予測ゼロMVを選択するか、または、
前記第2候補の前記ListX2MVが存在しないと判定した場合に、前記第2ユニ予測MVとしてユニ予測ゼロMVを選択する、
請求項1に記載の幾何学的分割を用いたビデオ符号化方法。
【請求項4】
前記第1候補の前記ListX1MVが存在しないと判定した場合に、前記第1候補のList(1-X1)MVを選択することにより前記第1PUの前記第1ユニ予測MVを取得するか、または、
前記第2候補の前記ListX2MVが存在しないと判定した場合に、前記第2候補のList(1-X2)MVを選択することにより前記第2PUの前記第2ユニ予測MVを取得する、
ことをさらに含む、請求項1に記載の幾何学的分割を用いたビデオ符号化方法。
【請求項5】
現在のピクチャに後方予測が使用されていると判定された場合に、前記第2バイナリ参照リスト指示フラグは前記第1バイナリ参照リスト指示フラグに対して反対の値を有すると決定され、
前記現在のピクチャに後方予測が使用されていないと判定された場合に、前記第2バイナリ参照リスト指示フラグは前記第1バイナリ参照リスト指示フラグと同じ値を有すると決定される、
請求項1に記載の幾何学的分割を用いたビデオ符号化方法。
【請求項6】
前記第1バイナリ参照リスト指示フラグおよび前記第2バイナリ参照リスト指示フラグは各々前記第1インデックスおよび前記第2インデックスの値に基づいて決定されるか、または、
前記第1バイナリ参照リスト指示フラグおよび前記第2バイナリ参照リスト指示フラグはCABACコンテキストビンとして符号化される、
請求項1に記載の幾何学的分割を用いたビデオ符号化方法。
【請求項7】
現在のピクチャに後方予測が使用されていると判定された場合に、前記第1マージリストの前記第1候補および前記第2候補のインデックス値のパリティに基づいて、前記第1バイナリ参照リスト指示フラグおよび前記第2バイナリ参照リスト指示フラグが各々決定され、
前記現在のピクチャに後方予測が使用されていないと判定された場合に、前記第1バイナリ参照リスト指示フラグおよび前記第2バイナリ参照リスト指示フラグが0または1の同じ値を有すると決定される、
請求項1に記載の幾何学的分割を用いたビデオ符号化方法。
【請求項8】
1以上のプロセッサと、
1以上の前記プロセッサによって実行可能な命令を格納するように構成されたメモリと、
を含み、
1以上の前記プロセッサは、前記命令が実行されると、
ビデオピクチャを複数の符号化ユニット(CU)に分割し、複数の前記符号化ユニットの少なくとも1つは、少なくとも1つの幾何学的形状予測ユニット(PU)を含む2つのPU、第1PUおよび第2PU、にさらに分割され、
レギュラーマージ予測のためのマージリスト構築プロセスに基づいて、複数の候補を含む第1マージリストを構築し、複数の前記候補の各々は、List0MVおよび/またはList1MVを含む動きベクトル(MV)であり、
第1インデックスによって前記第1PUの第1候補を検出し、
第2インデックスによって前記第2PUの第2候補を検出し、
第1バイナリ参照リスト指示フラグによって前記第1候補のListX1MVを選択することにより前記第1PUの第1ユニ予測MVを取得し、X1は0または1の値をとり、前記第1バイナリ参照リスト指示フラグによって示され、
第2バイナリ参照リスト指示フラグによって前記第2候補のListX2MVを選択することにより前記第2PUの第2ユニ予測MVを取得し、X2は0または1の値をとり、前記第2バイナリ参照リスト指示フラグによって示される、
ように構成されている、
幾何学的分割を用いたビデオ符号化装置。
【請求項9】
前記第1インデックスと前記第2インデックスとが同じであると判定された場合に、前記第2バイナリ参照リスト指示フラグは、前記第1バイナリ参照リスト指示フラグに対して反対の値を有すると決定される、
請求項8に記載の幾何学的分割を用いたビデオ符号化装置。
【請求項10】
前記第1候補の前記ListX1MVが存在しないと判定した場合に、前記第1ユニ予測MVとしてユニ予測ゼロMVを選択するか、または、
前記第2候補の前記ListX2MVが存在しないと判定した場合に、前記第2ユニ予測MVとしてユニ予測ゼロMVを選択する、
請求項8に記載の幾何学的分割を用いたビデオ符号化装置。
【請求項11】
1以上の前記プロセッサは、
前記第1候補の前記ListX1MVが存在しないと判定した場合に、前記第1候補のList(1-X1)MVを選択することにより前記第1PUの前記第1ユニ予測MVを取得するか、または、
前記第2候補の前記ListX2MVが存在しないと判定した場合に、前記第2候補のList(1-X2)MVを選択することにより前記第2PUの前記第2ユニ予測MVを取得する、
ようにさらに構成されている、請求項8に記載の幾何学的分割を用いたビデオ符号化装置。
【請求項12】
現在のピクチャに後方予測が使用されていると判定された場合に、前記第2バイナリ参照リスト指示フラグは前記第1バイナリ参照リスト指示フラグに対して反対の値を有すると決定され、
前記現在のピクチャに後方予測が使用されていないと判定された場合に、前記第2バイナリ参照リスト指示フラグは前記第1バイナリ参照リスト指示フラグと同じ値を有すると決定される、
請求項8に記載の幾何学的分割を用いたビデオ符号化装置。
【請求項13】
前記第1バイナリ参照リスト指示フラグおよび前記第2バイナリ参照リスト指示フラグは各々前記第1インデックスおよび前記第2インデックスの値に基づいて決定されるか、または、
前記第1バイナリ参照リスト指示フラグおよび前記第2バイナリ参照リスト指示フラグはCABACコンテキストビンとして符号化される、
請求項8に記載の幾何学的分割を用いたビデオ符号化装置。
【請求項14】
現在のピクチャに後方予測が使用されていると判定された場合に、前記第1マージリストの前記第1候補および前記第2候補のインデックス値のパリティに基づいて、前記第1バイナリ参照リスト指示フラグおよび前記第2バイナリ参照リスト指示フラグが各々決定され、
前記現在のピクチャに後方予測が使用されていないと判定された場合に、前記第1バイナリ参照リスト指示フラグおよび前記第2バイナリ参照リスト指示フラグが0または1の同じ値を有すると決定される、
請求項8に記載の幾何学的分割を用いたビデオ符号化装置。
【請求項15】
1以上のコンピュータプロセッサによって実行されると、
ビデオピクチャを複数の符号化ユニット(CU)に分割し、複数の前記符号化ユニットの少なくとも1つは、少なくとも1つの幾何学的形状予測ユニット(PU)を含む2つのPU、第1PUおよび第2PU、にさらに分割され、
レギュラーマージ予測のためのマージリスト構築プロセスに基づいて、複数の候補を含む第1マージリストを構築し、複数の前記候補の各々は、List0MVおよび/またはList1MVを含む動きベクトル(MV)であり、
第1インデックスによって前記第1PUの第1候補を検出し、
第2インデックスによって前記第2PUの第2候補を検出し、
第1バイナリ参照リスト指示フラグによって前記第1候補のListX1MVを選択することにより前記第1PUの第1ユニ予測MVを取得し、X1は0または1の値をとり、前記第1バイナリ参照リスト指示フラグによって示され、
第2バイナリ参照リスト指示フラグによって前記第2候補のListX2MVを選択することにより前記第2PUの第2ユニ予測MVを取得し、X2は0または1の値をとり、前記第2バイナリ参照リスト指示フラグによって示される、
動作を、1以上の前記コンピュータプロセッサに実行させる、コンピュータ実行可能命令を格納する幾何学的分割を用いたビデオ符号化の非一時的コンピュータ可読記憶媒体。
【請求項16】
前記第1インデックスと前記第2インデックスとが同じであると判定された場合に、前記第2バイナリ参照リスト指示フラグは、前記第1バイナリ参照リスト指示フラグに対して反対の値を有すると決定される、
請求項15に記載の幾何学的分割を用いたビデオ符号化の非一時的コンピュータ可読記憶媒体。
【請求項17】
前記第1候補の前記ListX1MVが存在しないと判定した場合に、前記第1ユニ予測MVとしてユニ予測ゼロMVを選択するか、または、
前記第2候補の前記ListX2MVが存在しないと判定した場合に、前記第2ユニ予測MVとしてユニ予測ゼロMVを選択する、
請求項15に記載の幾何学的分割を用いたビデオ符号化の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記動作は、
前記第1候補の前記ListX1MVが存在しないと判定した場合に、前記第1候補のList(1-X1)MVを選択することにより前記第1PUの前記第1ユニ予測MVを取得するか、または、
前記第2候補の前記ListX2MVが存在しないと判定した場合に、前記第2候補のList(1-X2)MVを選択することにより前記第2PUの前記第2ユニ予測MVを取得する、
ことをさらに含む、請求項15に記載の幾何学的分割を用いたビデオ符号化の非一時的コンピュータ可読記憶媒体。
【請求項19】
現在のピクチャに後方予測が使用されていると判定された場合に、前記第2バイナリ参照リスト指示フラグは前記第1バイナリ参照リスト指示フラグに対して反対の値を有すると決定され、
前記現在のピクチャに後方予測が使用されていないと判定された場合に、前記第2バイナリ参照リスト指示フラグは前記第1バイナリ参照リスト指示フラグと同じ値を有すると決定される、
請求項15に記載の幾何学的分割を用いたビデオ符号化の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記第1バイナリ参照リスト指示フラグおよび前記第2バイナリ参照リスト指示フラグは各々前記第1インデックスおよび前記第2インデックスの値に基づいて決定されるか、または、
前記第1バイナリ参照リスト指示フラグおよび第2バイナリ参照リスト指示フラグはCABACコンテキストビンとして符号化される、
請求項15に記載の幾何学的分割を用いたビデオ符号化の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、一般に、ビデオ符号化および圧縮に関し、詳細には、ビデオ符号化において三角予測ユニット(すなわち、幾何学的分割予測ユニットの特別な場合)を使用する動き補償予測のための方法および装置に関するが、これに限定されない。
【背景技術】
【0002】
デジタルビデオは、デジタルテレビ、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録装置、デジタルメディアプレーヤ、ビデオゲームコンソール、スマートフォン、ビデオテレビ会議装置、ビデオストリーミング装置等の様々な電子装置によってサポートされる。電子装置は、ビデオ圧縮/解凍を実装することによって、デジタルビデオデータを送信、受信、符号化、復号化、および/または記憶する。デジタルビデオデバイスは、VVC(Versatile Video Coding)、JEM(Joint Exploration Test Model)、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part 10、AVC(Advanced Video Coding)、ITU-T H.265/HEVC(High Efficiency Video Coding)、およびそのような規格の拡張によって定義された規格に記述されるようなビデオ符号化技術を実装する。
【0003】
ビデオ符号化は一般に、ビデオピクチャ又はシーケンスに存在する冗長性を利用する予測方法(例えば、インター予測、イントラ予測)を利用する。ビデオ符号化技術の重要な目標はビデオ品質の劣化を回避または最小限に抑えながら、ビデオデータをより低いビットレートを使用する形式に圧縮することである。進化し続けるビデオサービスが利用可能になるにつれて、より良好な符号化効率を有する符号化技術が必要とされている。各規格におけるブロック分割スキームも発展している。
【0004】
ビデオ圧縮は、レギュラー、ビデオデータに固有の冗長性を低減または除去するために、空間(イントラフレーム)予測および/または時間(インターフレーム)予測を実行することを含む。ブロックベースのビデオ符号化の場合、ビデオフレームは1以上のスライスに分割され、各スライスは符号化ツリーユニット(CTU)とも呼ばれ得る複数のビデオブロックを有する。各CTUは、1つのCUを含むか、または、所定の最小符号化ユニット(CU)サイズに達するまで、より小さなCUに再帰的に分割することができる。各CU(リーフCUとも呼ばれる)は1以上の変換ユニット(TU)を含み、各CUは、1以上の予測ユニット(PU)も含む。各CUは、イントラモード、インターモード、またはIBCモードで符号化され得る。ビデオフレームのイントラ符号化(I)スライス内のビデオブロックは、同じビデオフレーム内の近傍ブロック内の参照サンプルに関する空間予測を使用して符号化される。ビデオフレームのインター符号化(PまたはB)スライス内のビデオブロックは、同じビデオフレーム内の近傍ブロック内の参照サンプルに関する空間予測、または他の以前および/または将来の参照ビデオフレーム内の参照サンプルに関する時間予測を使用することができる。
【0005】
以前に符号化された参照ブロック、例えば、近傍ブロックに基づく空間的または時間的予測は、符号化されるべき現在のビデオブロックのための予測ブロックをもたらす。参照ブロックを見つけるプロセスは、ブロックマッチングアルゴリズムによって達成することができる。符号化される現在のブロックと予測ブロックとの間のピクセル差を表す残差データは、残差ブロックまたは予測誤差と呼ばれる。インター符号化されたブロックは、予測ブロックを形成する参照フレーム内の参照ブロック、および残差ブロックを指し示す動きベクトルに従って符号化される。動きベクトルを決定するプロセスは、典型的には動き推定と呼ばれる。イントラ符号化ブロックは、イントラ予測モードおよび残差ブロックに従って符号化される。さらなる圧縮のために、残差ブロックは、ピクセル領域から変換領域、例えば周波数領域に変換され、結果として残差変換係数が得られ、次いで、量子化され得る。量子化された変換係数は、最初に2次元アレイに配置され、変換係数の1次元ベクトルを生成するために走査され、次いで、ビデオビットストリームにエントロピー符号化されて、さらに多くの圧縮を達成することができる。
【0006】
次いで、符号化されたビデオビットストリームはデジタルビデオ機能を有する別の電子装置によってアクセスされるか、または、有線または無線で電子装置に直接送信されるように、コンピュータ可読記憶媒体(例えば、フラッシュメモリ)に保存される。次いで、電子装置はビットストリームから構文要素を得るために符号化ビデオビットストリームを構文解析し、ビットストリームから得られた構文要素に少なくとも部分的に基づいて符号化ビデオビットストリームから元のフォーマットにデジタルビデオデータを再構成することによって、ビデオ解凍(上述のビデオ圧縮とは反対のプロセスである)を実行し、再構成されたデジタルビデオデータを電子装置のディスプレイ上にレンダリングする。
【0007】
高精細度から4K×2Kまたは8K×4Kに至るデジタルビデオ品質では、符号化/復号化されるビデオデータの量は指数関数的に増大する。これは、復号化されたビデオデータの画質を維持しつつ、ビデオデータをより効率的に符号化/復号化する方法に関して常に課題である。
【0008】
JVET(Joint Video Experts Team)会議において、JVETは、VVC(Versatile Video Coding)の第1ドラフトおよびVTM1(VVC Test Model 1)符号化方法を定義した。VVCの初期の新しい符号化特徴として、ブロック構造を符号化する2分木と3分木を用いたネストマルチタイプツリーを持つ4分木を含むことにした。その後、JVET会議中に、符号化方法およびVVC復号化プロセスドラフトを実施するための参照ソフトウェアVTMが開発された。
【発明の概要】
【発明が解決しようとする課題】
【0009】
一般に、本開示は、ビデオ符号化における幾何学的形状予測ユニットを使用する動き補償予測に関連する技術の例を記載する。
【課題を解決するための手段】
【0010】
本開示の第1態様によれば、ビデオピクチャを複数の符号化ユニット(CU)に分割し、複数の前記符号化ユニットの少なくとも1つは、少なくとも1つの幾何学的形状予測ユニット(PU)を含む2つのPU、第1PUおよび第2PU、にさらに分割され、レギュラーマージ予測のためのマージリスト構築プロセスに基づいて、複数の候補を含む第1マージリストを構築し、複数の前記候補の各々は、List0MVおよび/またはList1MVを含む動きベクトル(MV)であり、第1インデックスによって前記第1PUの第1候補を検出し、第2インデックスによって前記第2PUの第2候補を検出し、第1バイナリ参照リスト指示フラグによって前記第1候補のListX1MVを選択することにより前記第1PUの第1ユニ予測MVを取得し、X1は0または1の値をとり、前記第1バイナリ参照リスト指示フラグによって示され、第2バイナリ参照リスト指示フラグによって前記第2候補のListX2MVを選択することにより前記第2PUの第2ユニ予測MVを取得し、X2は0または1の値をとり、前記第2バイナリ参照リスト指示フラグによって示される、幾何学的分割を用いたビデオ符号化方法が提供される。
【0011】
本開示の第2態様によれば、1以上のプロセッサと、1以上の前記プロセッサによって実行可能な命令を格納するように構成されたメモリと、を含み、1以上の前記プロセッサは、前記命令が実行されると、ビデオピクチャを複数の符号化ユニット(CU)に分割し、複数の前記符号化ユニットの少なくとも1つは、少なくとも1つの幾何学的形状予測ユニット(PU)を含む2つのPU、第1PUおよび第2PU、にさらに分割され、レギュラーマージ予測のためのマージリスト構築プロセスに基づいて、複数の候補を含む第1マージリストを構築し、複数の前記候補の各々は、List0MVおよび/またはList1MVを含む動きベクトル(MV)であり、第1インデックスによって前記第1PUの第1候補を検出し、第2インデックスによって前記第2PUの第2候補を検出し、第1バイナリ参照リスト指示フラグによって前記第1候補のListX1MVを選択することにより前記第1PUの第1ユニ予測MVを取得し、X1は0または1の値をとり、前記第1バイナリ参照リスト指示フラグによって示され、第2バイナリ参照リスト指示フラグによって前記第2候補のListX2MVを選択することにより前記第2PUの第2ユニ予測MVを取得し、X2は0または1の値をとり、前記第2バイナリ参照リスト指示フラグによって示される、ように構成されている、幾何学的分割を用いたビデオ符号化装置が提供される。
【0012】
本開示の第3態様によれば、1以上のコンピュータプロセッサによって実行されると、ビデオピクチャを複数の符号化ユニット(CU)に分割し、複数の前記符号化ユニットの少なくとも1つは、少なくとも1つの幾何学的形状予測ユニット(PU)を含む2つのPU、第1PUおよび第2PU、にさらに分割され、レギュラーマージ予測のためのマージリスト構築プロセスに基づいて、複数の候補を含む第1マージリストを構築し、複数の前記候補の各々は、List0MVおよび/またはList1MVを含む動きベクトル(MV)であり、第1インデックスによって前記第1PUの第1候補を検出し、第2インデックスによって前記第2PUの第2候補を検出し、第1バイナリ参照リスト指示フラグによって前記第1候補のListX1MVを選択することにより前記第1PUの第1ユニ予測MVを取得し、X1は0または1の値をとり、前記第1バイナリ参照リスト指示フラグによって示され、第2バイナリ参照リスト指示フラグによって前記第2候補のListX2MVを選択することにより前記第2PUの第2ユニ予測MVを取得し、X2は0または1の値をとり、前記第2バイナリ参照リスト指示フラグによって示される、動作を、1以上の前記コンピュータプロセッサに実行させる、コンピュータ実行可能命令を格納する幾何学的分割を用いたビデオ符号化の非一時的コンピュータ可読記憶媒体が提供される。
【図面の簡単な説明】
【0013】
図1】本開示のいくつかの実装による例示的なビデオエンコーダを示すブロック図である。
図2】本開示のいくつかの実装による例示的なビデオデコーダを示すブロック図である。
図3】本開示の幾つかの実装による、4分木プラス二分木(QTBT)構造を示す概略図である。
図4】本開示のいくつかの実装によるCTUに分割されたピクチャの例を示す概略図である。
図5】本開示のいくつかの実装によるマルチタイプツリー分割モードを示す概略図である。
図6】本開示のいくつかの実装による、CUを三角予測ユニットに分割することを示す概略図である。
図7】本開示のいくつかの実装による、近傍ブロックの位置を示す概略図である。
図8】本開示のいくつかの実装による幾何学的分割の例を示す概略図である。
図9】本開示のいくつかの実装による幾何学的分割表現の例を示す概略図である。
図10】本開示のいくつかの実装による空間マージ候補の位置を示す概略図である。
図11】本開示のいくつかの実装による、時間マージ候補のための動きベクトルスケーリングを示す概略図である。
図12】本開示のいくつかの実装による、時間マージ候補の候補位置を示す概略図である。
図13A】本開示のいくつかの実装による、三角予測モードのためのユニ予測動きベクトル(MV)選択の例を示す概略図である。
図13B】本開示のいくつかの実装による、三角予測モードのためのユニ予測動きベクトル(MV)選択の例を示す概略図である。
図14A】本開示のいくつかの実装による、三角予測モードのためのユニ予測MV選択の例を示す概略図である。
図14B】本開示のいくつかの実装による、三角予測モードのためのユニ予測MV選択の例を示す概略図である。
図14C】本開示のいくつかの実装による、三角予測モードのためのユニ予測MV選択の例を示す概略図である。
図14D】本開示のいくつかの実装による、三角予測モードのためのユニ予測MV選択の例を示す概略図である。
図15A】本開示のいくつかの実装による、三角予測モードのためのユニ予測MV選択の例を示す概略図である。
図15B】本開示のいくつかの実装による、三角予測モードのためのユニ予測MV選択の例を示す概略図である。
図16】本開示のいくつかの実装による、三角予測モードのためのフレキシブルユニ予測MV選択の例を示す概略図である。
図17】本開示のいくつかの実装による、ビデオ符号化のための例示的な装置を示すブロック図である。
図18】本開示のいくつかの実装に従った、幾何学的予測ユニットを使用する動き補償予測のためのビデオ符号化の例示的プロセスを示すフローチャートである。
【発明を実施するための形態】
【0014】
本開示の実施例のより詳細な説明は、添付の図面に示される特定の実施例を参照することによって行われる。これらの図面はいくつかの例のみを示し、したがって、範囲を限定すると見なされず、添付の図面を使用することによって、さらなる具体性および詳細を伴って、例を記載し、説明する。
【0015】
ここで、特定の実施例を詳細に参照し、その例を添付の図面に示す。以下の詳細な説明では、本明細書で提示される主題の理解を助けるために、多数の非限定的な特定の詳細が記載される。しかし、当業者には、様々な代替物を使用できることが明らかであろう。例えば、本明細書で提示される主題はデジタルビデオ機能を有する多くのタイプの電子装置上で実施され得ることが、当業者には明らかであろう。
【0016】
本明細書全体を通して、「一実施形態」、「一例」、「いくつかの実施形態」、「いくつかの例」、または同様の語への言及は、記載された特定の特徴、構造、または特性が少なくとも1つの実施形態または例に含まれることを意味する。1つまたはいくつかの実施形態に関連して説明された特徴、構造、要素、または特性は特に明記しない限り、他の実施形態にも適用可能である。
【0017】
本開示全体を通して、用語「第1」、「第2」、「第3」などは、特に明記しない限り、空間的または時系列的順序を暗示することなく、関連する要素、例えば、装置、構成要素、組成物、ステップなどへの参照のためだけに、すべて命名として使用される。例えば、「第1デバイス」および「第2デバイス」は2つの別々に形成されたデバイス、または同じデバイスの2つの部分、構成要素、または動作状態を指すことができ、任意に命名することができる。
【0018】
本明細書で使用されるように、用語「ならば」または「である場合」は、文脈に応じて「する際に」または「に応じて」を意味すると理解され得る。これらの用語は、請求項に現れる場合、関連する限定または特徴が条件付きまたは任意選択であることを示さないことがある。
【0019】
「モジュール」、「サブモジュール」、「回路」、「サブ回路」、「ユニット」、または「サブユニット」という用語は、1以上のプロセッサによって実行され得るコードまたは命令を格納するメモリ(共有、専用、またはグループ)を含むことができる。モジュールは、格納されたコードまたは命令を有する、または有さない1以上の回路を含むことができる。モジュールまたは回路は、直接的または間接的に接続された1以上の構成要素を含むことができる。これらの構成要素は、互いに物理的に取り付けられていても、隣接して配置されていてもよいし、いなくてもよい。
【0020】
ユニットまたはモジュールは、ソフトウェアだけによって、ハードウェアだけによって、またはハードウェアとソフトウェアの組み合わせによって実装されてもよい。ソフトウェアだけの実装では、例えば、ユニットまたはモジュールは特定の機能を実行するために、互いに直接的または間接的にリンクされた、機能的に関連した符号化ブロックまたはソフトウェアコンポーネントを含むことができる。
【0021】
図1は、ブロックベースのプロセスを使用する多くのビデオ符号化規格と併せて使用され得る、例示的なブロックベースのハイブリッドビデオエンコーダ100を示すブロック図を示す。エンコーダ100において、ビデオフレームは、プロセスのために複数のビデオブロックに分割される。与えられた各ビデオブロックに対して、インター予測アプローチまたはイントラ予測アプローチのいずれかに基づいて予測が形成される。インター予測では、1以上の予測子が以前に再構成されたフレームからのピクセルに基づいて、動き推定および動き補償によって形成される。イントラ予測では、予測子が現在のフレーム内の再構成されたピクセルに基づいて形成される。モード決定により、現在のブロックを予測するために最良の予測子を選択することができる。
【0022】
現在のビデオブロックとその予測子との差を表す予測残差が、変換回路102に送られる。次いで、変換係数はエントロピー低減のために、変換回路102から量子化回路104に送られる。次いで、量子化された係数がエントロピー符号化回路106に供給され、圧縮ビデオビットストリームを生成する。図1に示すように、ビデオブロック分割情報、動きベクトル、参照ピクチャインデックス、およびイントラ予測モードなどの、インター予測回路および/またはイントラ予測回路112からの予測関連情報110も、エントロピー符号化回路106を通して供給され、圧縮ビデオビットストリーム114に保存される。
【0023】
エンコーダ100では、予測の目的でピクセルを再構成するために、デコーダ関連の回路も必要である。まず、予測残差が、逆量子化116および逆変換回路118を通して再構成される。この再構成された予測残差をブロック予測子120と組み合わせて、現在のビデオブロックについて、フィルタ処理されていない再構成ピクセルを生成する。
【0024】
空間予測(または「イントラ予測」)は、現在のビデオブロックと同じビデオフレーム内の既に符号化された近傍ブロック(参照サンプルと呼ばれる)のサンプルからのピクセルを使用して、現在のビデオブロックを予測する。
【0025】
時間予測(「インター予測」とも呼ばれる)は、既に符号化されたビデオピクチャからの再構成ピクセルを使用して、現在のビデオブロックを予測する。時間的予測は、ビデオ信号に固有の時間的冗長性を低減する。所与の符号化ユニット(CU)または符号化ブロックに対する時間予測信号は、通常、現在のCUとその時間基準との間の動きの量および方向を示す1以上の動きベクトル(MV)によってシグナリングされる。さらに、複数の参照ピクチャがサポートされる場合、1つの参照ピクチャインデックスがさらに送信され、参照ピクチャインデックスは、参照ピクチャストア内のどの参照ピクチャから時間予測信号が到来するかを識別するために使用される。
【0026】
空間的および/または時間的予測が実行された後、エンコーダ100内のインターモード/インターモード決定回路121は例えば、レート歪み最適化法に基づいて、最良の予測モードを選択する。次いで、ブロック予測子120は現在のビデオブロックから減算され、結果として生じる予測残差は変換回路102および量子化回路104を使用して、非相関化される。得られた量子化残差係数は逆量子化回路116によって逆量子化され、逆変換回路118によって逆変換されて再構成された残差を形成し、次いで、予測ブロックに加算されて、CUの再構成された信号を形成する。デブロッキングフィルタ、サンプル適応オフセット(SAO)、および/または適応インループフィルタ(ALF)などのさらなるインループフィルタリング115を、再構成されたCUがピクチャバッファ117の参照ピクチャストアに入れられ、将来のビデオブロックを符号化するために使用される前に、再構成されたCUに適用することができる。出力ビデオビットストリーム114を形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数はすべて、エントロピー符号化ユニット106に送られ、さらに圧縮され、パックされてビットストリームを形成する。
【0027】
例えば、デブロッキングフィルタは、AVC、HEVC、並びにVVCの現在のバージョンにおいて利用可能である。HEVCでは、符号化効率をさらに改善するために、SAO(サンプル適応オフセット)と呼ばれる追加のインループフィルタが定義される。現在のVVC規格では、ALF(適応インループフィルタ)と呼ばれるさらに別のインループフィルタが活発に検討されており、最終規格に含まれる可能性が高い。
【0028】
これらのインループフィルタ動作はオプションである。これらの動作を実行することは、符号化効率および視覚品質を改善するのに役立つ。それらはまた、エンコーダ100によって実行される決定としてオフにされて、計算の複雑さを節約することができる。
【0029】
イントラ予測は、通常、フィルタリングされていない再構成ピクセルに基づいており、一方、インター予測は、これらのフィルタオプションがエンコーダ100によってオンにされた場合、フィルタリングされた再構成ピクセルに基づいていることに留意されたい。
【0030】
図2は、多くのビデオ符号化規格と共に使用され得る例示的なブロックベースのビデオデコーダ200を示すブロック図である。このデコーダ200は、図1のエンコーダ100内に存在する再構成関連部分に類似している。デコーダ200において、入力ビデオビットストリーム201は量子化された係数レベルおよび予測関連情報を導出するために、エントロピー復号化202を介して最初に復号化される。次いで、量子化された係数レベルは、逆量子化204および逆変換206を介して処理され、再構成された予測残差を得る。イントラ/インターモードセレクタ212で実施されるブロック予測機構は、復号化された予測情報に基づいて、イントラ予測208または動き補償210のいずれかを実行するように構成される。逆変換206からの再構成予測残差とブロック予測子機構により生成された予測出力とを加算することにより、加算器214を用いて、フィルタプロセスされない再構成ピクセルの集合が得られる。
【0031】
再構成されたブロックは参照ピクチャストアとして機能するピクチャバッファ213に格納される前に、インループフィルタ209をさらに通過することができる。ピクチャバッファ213内の再構成されたビデオは、将来のビデオブロックを予測するために使用されるだけでなく、ディスプレイデバイスを駆動するために送信されてもよい。インループフィルタ209がオンになっている状況では、最終的な再構成ビデオ出力222を導出するために、これらの再構成ピクセルに対してフィルタリング操作が行われる。
【0032】
VVC、JEM、HEVC、MPEG-4、パート10などの上述のビデオ符号化/復号化規格は、概念的に類似している。例えば、それらは全てブロックベースのプロセスを使用する。いくつかの規格におけるブロック分割スキームは、以下に詳述される。
【0033】
HEVC (High Efficient Video Coding)
HEVCは、ハイブリッドブロックベースの動き補償変換符号化アーキテクチャに基づく。圧縮のための基本ユニットは、符号化ツリーユニット(CTU)と呼ばれる。最大CTUサイズは、4:2:0彩度フォーマットに対して、32×32彩度ピクセルの2つのブロック、および、64×64までの輝度ピクセルとして定義される。各CTUは、1つの符号化ユニット(CU)を含むか、所定の最小CUサイズに達するまで、4つのより小さいCUに再帰的に分割することができる。各CU(リーフCUとも呼ばれる)は、1以上の予測ユニット(PU)と、変換ユニットのツリー(TU)とを含む。
【0034】
一般に、モノクロコンテンツを除いて、CTUは1つの輝度符号化ツリーブロック(CTB)および2つの対応する彩度CTBを含むことができ、CUは1つの輝度符号化ブロック(CB)および2つの対応する彩度CBを含むことができ、PUは1つの輝度予測ブロック(PB)および2つの対応する彩度PBを含むことができ、TUは、1つの輝度変換ブロック(TB)および2つの対応する彩度TBを含むことができる。しかしながら、最小TBサイズが輝度および彩度の両方に対して4×4であり(すなわち、4:2:0カラーフォーマットに対して2×2の彩度TBがサポートされていない)、各イントラ彩度CBは、対応するイントラ輝度CB内のイントラ輝度PBの数にかかわらず、常に1つのイントラ彩度PBのみを有するので、例外が発生し得る。
【0035】
イントラCUの場合、輝度CBは1つまたは4つの輝度PBによって予測されてもよく、2つの彩度CBのそれぞれは常に、1つの彩度PBによって予測され、各輝度PBは1つのイントラ輝度予測モードを有し、2つの彩度PBは1つのイントラ彩度予測モードを共有する。さらに、イントラCUについては、TBサイズをPBサイズよりも大きくすることができない。各PBにおいて、イントラ予測は、TBの近傍する再構成されたサンプルからPB内部の各TBのサンプルを予測するために適用される。各PBについて、33の方向のイントラ予測モードに加えて、DCおよび平面モードも、それぞれ、平坦領域および徐々に変化する領域を予測するためにサポートされる。
【0036】
各インターPUについて、インター、スキップ、およびマージを含む3つの予測モードのうちの1つを選択することができる。一般的に言えば、動きベクトル競合(MVC)方式を導入して、空間的および時間的動き候補を含む所与の候補セットから動き候補を選択する。動き推定に対する複数の参照は2つの可能な再構成された参照ピクチャリスト(すなわち、List0およびList1)において最良の参照を見つけることを可能にする。インターモード(AMVPモードと呼ばれ、AMVPは高度動きベクトル予測を表す)の場合、インター予測インジケータ(List0、List1、または双方向予測)、参照インジケータ、動き候補インジケータ、動きベクトル差分(MVD)、および予測残差が送信される。スキップモードおよびマージモードに関してはマージインデックスのみが送信され、現在のPUは符号化されたマージインデックスによって参照される近傍のPUからインター予測インジケータ、参照インデックス、および動きベクトルを継承する。スキップ符号化されたCUの場合、残差信号も省略される。
【0037】
JEM(共同探査試験モデル)
JEM(Joint Exploration Test Model)は、HEVCテストモデルの上に構築されている。HEVCの基本的な符号化および復号化フローチャートはJEMでは変更されないままであるが、ブロック構造、イントラ予測およびインター予測、残差変換、ループフィルタおよびエントロピー符号化のモジュールを含む最も重要なモジュールの設計要素はいくらか修正され、追加的な符号化ツールが追加される。JEMには、以下の新しい符号化機能が含まれている。
【0038】
HEVCでは、CTUが様々なローカル特性に適応するために、符号化ツリーとして表される4分木構造を使用することによって、CUに分割される。ピクチャ間(時間的)予測またはピクチャ内(空間的)予測を使用してピクチャ領域を符号化するかどうかの決定は、CUレベルで行われる。各CUは、PU分割タイプに従って、1つ、2つ、または4つのPUにさらに分割されてもよい。1つのPU内では、同じ予測プロセスが適用され、関連情報がPUベースでデコーダに送信される。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CUは、CUのための符号化ツリーに類似する別の4分木構造に従って変換ユニット(TU)に分割され得る。HEVC構造の重要な特徴の1つは、CU、PU、およびTUを含む複数分割概念を有することである。
【0039】
図3は、本開示のいくつかの実装による、4分木プラス二分木(QTBT)構造を示す概略図である。
【0040】
QTBT構造は複数の分割タイプの概念を取り除く。すなわち、CU、PUおよびTU概念の分離を取り除き、CU分割形状をよりフレキシブルにサポートする。QTBTブロック構造では、CUが正方形または長方形のいずれかの形状を有することができる。図3に示すように、符号化ツリーユニット(CTU)は最初に、4分木(すなわち、クアッドツリー)構造によって分割される。4分木リーフノードは、2分木構造によってさらに分割することができる。2分木分割には、対称水平分割と対称垂直分割の2つの分割タイプがある。2分木リーフノードは符号化ユニット(CU)と呼ばれ、そのセグメント化はさらなる分割なしに予測および変換プロセスのために使用される。これは、QTBT符号化ブロック構造において、CU、PUおよびTUが同じブロックサイズを有することを意味する。JEMではCUが異なる色成分の符号化ブロック(CB)から構成されることがあり、例えば、1つのCUは4:2:0彩度フォーマットのPスライスおよびBスライスの場合に1つの輝度CBおよび2つの彩度CBを含み、単一成分のCBから構成されることがあり、例えば、1つのCUはIスライスの場合に1つの輝度CBのみ又は2つの彩度CBのみを含む。
【0041】
QTBT分割スキームには、次のパラメータが定義されている。
- CTUサイズ: 4分木のルートノードサイズ、HEVCと同じ概念;
- MinQTSize: 許容される4分木リーフノードの最小サイズ;
- MaxBTSize: 最大許容2分木ルートノードサイズ;
- MaxBTDepth: 最大許容2分木深さ;
- MinBTSize: 最小許容2分木リーフノードサイズ。
【0042】
QTBT分割構造の一例では、CTUサイズが彩度サンプルの2つの対応する64×64ブロック(4:2:0彩度フォーマットを有する)を有する128×128輝度サンプルとして設定され、MinQTSizeは16×16として設定され、MaxBTSizeは64×64として設定され、MinBTSize(幅および高さの両方について)は4×4として設定され、MaxBTDepthは4として設定される。4分木分割は、まず4分木リーフノードを生成するためにCTUに適用される。4分木リーフノードは16×16(すなわち、MinQTSize)から128×128(すなわち、CTUサイズ)までのサイズを有することがある。4分木リーフノードが128×128の場合、サイズがMaxBTSize(すなわち64×64)を超えるため、2分木によってそれ以上分割されない。そうでない場合、4分木リーフノードは、2分木によってさらに分割化される可能性がある。したがって、4分木リーフノードは2分木のルートノードでもあり、2分木の深さは0である。2分木の深さがMaxBTDepth(すなわち、4)に達すると、それ以上の分割は考慮されない。2分木ノードがMinBTSize(すなわち、4)に等しい幅を有する場合、それ以上の水平分割は考慮されない。同様に、2分木ノードがMinBTSizeに等しい高さを有する場合、それ以上の垂直分割は考慮されない。2分木のリーフノードは、さらに分割することなく、予測および変換プロセスによってさらに処理される。JEMでは、最大CTUサイズは256×256輝度サンプルである。
【0043】
QTBTスキームを使用することによるブロック分割の例と、対応するツリー表現が図3に示されている。実線は4分木分割を示し、点線は二分木分割を示す。図3に示すように、符号化ツリーユニット300はまず、4分木構造によって分割され、4つの4分木リーフノード302、304、306、308のうちの3つは、さらに、4分木構造または2分木構造によって分割される。例えば、4分木リーフノード306は4分木分割によってさらに分割され、4分木リーフノード304は2分木分割によって2つのリーフノード304a、304bにさらに分割され、4分木リーフノード302もまた、2分木分割によってさらに分割される。2分木の各分割(すなわち、非リーフ)ノードでは、どの分割タイプ(すなわち、水平または垂直)が使用されるかを示すために1つのフラグがシグナリングされ、0は水平分割を示し、1は垂直分割を示す。例えば、4分木リーフノード304については水平分割を示すために0がシグナリングされ、4分木リーフノード302については垂直分割を示すために1がシグナリングされる。4分木分割の場合、4分木分割は常にブロックを水平方向と垂直方向の両方に分割し、同じサイズの4つのサブブロックを生成するため、分割タイプを示す必要はない。
【0044】
さらに、QTBTスキームは、輝度および彩度が別個のQTBT構造を有する能力をサポートする。現在、PスライスおよびBスライスの場合、1つのCTU内の輝度CTBおよび彩度CTBは、同じQTBT構造を共有する。しかしながら、Iスライスの場合、輝度CTBはQTBT構造によってCUに分割され、彩度CTBは別のQTBT構造によって彩度CUに分割される。これは、Iスライス内のCUが輝度成分の符号化ブロック又は2つの彩度成分の符号化ブロックからなり、P又はBスライス内のCUが3つの色成分全ての符号化ブロックからなることを意味する。
【0045】
VVC(Versatile Video Coding)
JVET(Joint Video Experts Team)会議において、JVETは、VVC(Versatile Video Coding)およびVVCテストモデル1(VTM1)符号化方法の最初のドラフトを定義した。VVCの初期の新しい符号化特徴として、ブロック構造を符号化する2分と3分を用いたネストマルチタイプツリーを持つ4分木を含むことにした。
【0046】
VVCでは、ピクチャ分割構造が入力ビデオを符号化ツリーユニット(CTU)と呼ばれるブロックに分割する。CTUはネストされたマルチタイプツリー構造を有する4分木を用いて、同一の予測モード(例えば、イントラまたはインター)を共有する領域を定義するリーフ符号化ユニット(CU)を有する符号化ユニット(CU)に分割される。用語「ユニット」は全ての成分をカバーするピクチャの領域を画定し、用語「ブロック」は特定の成分(例えば、輝度)をカバーする領域を画定するために使用され、4:2:0のような彩度サンプリングフォーマットを考慮する場合、空間位置が異なってもよい。
【0047】
ピクチャのCTUへの分割
図4は、本開示のいくつかの実装によるCTUに分割されたピクチャの例を示す概略図である。
【0048】
VVCではピクチャがCTUのシーケンスに分割され、CTUの概念はHEVCの概念と同じである。3つのサンプルアレイを有するピクチャの場合、CTUは、輝度サンプルのN×Nブロックと、彩度サンプルの2つの対応するブロックとからなる。図4は、CTU402に分割されたピクチャ400の例を示す。
【0049】
CTU内の輝度ブロックの最大許容サイズは、128×128に特定される(輝度変換ブロックの最大サイズは64×64であるが)。
【0050】
ツリー構造を使用したCTUの分割
図5は、本開示のいくつかの実装によるマルチタイプツリー分割モードを示す概略図である。
【0051】
HEVCでは、CTUが様々な局所特性に適応するために、符号化ツリーとして示される4分木構造を使用することによって、CUに分割される。ピクチャ間(時間的)予測またはピクチャ内(空間的)予測を使用してピクチャ領域を符号化するかどうかの決定は、リーフCUレベルで行われる。各リーフCUは、PU分割タイプに従って、1つ、2つ、または4つのPUにさらに分割されてもよい。1つのPU内では、同じ予測プロセスが適用され、関連情報がPUベースでデコーダに送信される。PU分割タイプに基づく予測プロセスを適用することによって残差ブロックを取得した後、リーフCUは、CUの符号化ツリーと同様の別の4分木構造に従って変換ユニット(TU)に分割され得る。HEVC構造の重要な特徴の一つは、CU、PU,TUを含む複数の分割概念を持つことである。
【0052】
VVCでは、2分割および3分割セグメンテーション構造を使用したネストマルチタイプツリーによる4分木が複数分割ユニットタイプの概念を置き換える、すなわち、最大変換長には大きすぎるサイズを持つCUを除いて、CU、PUおよびTUの概念の分離を排除し、CU分割形状のさらなるフレキシビリティをサポートする。符号化ツリー構造において、CUは、正方形または長方形のいずれかの形状を有することができる。符号化ツリーユニット(CTU)はまず、4分木(すなわち、クアッドツリー)構造によって分割される。次に、4分木リーフノードは、マルチタイプツリー構造によってさらに分割されてもよい。図5に示すように、マルチタイプツリー構造には、垂直2分割502(SPLIT_BT_VER)、水平2分割504(SPLIT_BT_HOR)、垂直3分割506(SPLIT_TT_VER)、水平3分割508(SPLIT_TT_HOR)の4つの分割タイプがある。マルチタイプのツリーリーフノードは符号化ユニット(CU)と呼ばれ、CUが最大変換長に対して大き過ぎない限り、このセグメンテーションは、さらなる分割なしに予測および変換プロセスのために使用される。つまり、ほとんどの場合、ネストマルチタイプツリー符号化ブロック構造を持つ4分木では、CU、PU、およびTUのブロックサイズが同じになる。この例外は、サポートされる最大変換長がCUの色成分の幅または高さよりも小さい場合に発生する。VTM1では、CUが異なる色成分の符号化ブロック(CB)からなり、例えば、1つのCUは1つの輝度CBおよび2つの彩度CBを含む(ビデオがモノクロで、即ち、1つの色成分のみを有する場合を除く)。
【0053】
複数の予測ユニットへのCUの分割
VVCでは上述の構造に基づいて分割された各CUについて、ブロックコンテンツの予測はCUブロック全体に対して、または以下の段落で説明するサブブロック方式で実行することができる。このような予測の操作ユニットを予測ユニット(またはPU)と呼ぶ。
【0054】
イントラ予測(またはフレーム内予測)の場合、通常、PUのサイズはCUのサイズに等しい。すなわち、CUブロック全体に対して予測が行われる。インター予測(またはフレーム間予測)の場合、PUのサイズは、CUのサイズ以下であってもよい。言い換えれば、予測のために、CUが複数のPUに分割され得る場合がある。
【0055】
PUサイズをCUサイズより小さくする例としては、アフィン予測モード、ATMVP(Advanced Temporal Level Motion Vector Prediction)モード、三角予測モードなどがある。
【0056】
アフィン予測モードの下では、CUが予測のために複数の4×4PUに分割され得る。動きベクトルは各4×4PUについて導出されてもよく、動き補償は4×4PUに対してそれに応じて実行されてもよい。ATMVPモードの下では、CUが予測のために1以上の8×8PUに分割され得る。動きベクトルは各8×8PUについて導出され、動き補償はそれに応じて8×8PU上で実行されてもよい。三角予測モードの下で、CUを2つの三角形状予測ユニットに分割することができる。各PUに対して動きベクトルが導出され、それに応じて動き補償が実行される。三角予測モードは、インター予測のためにサポートされる。三角予測モードのさらなる詳細を以下に示す。
【0057】
三角予測モード
図6は、本開示のいくつかの実装による、CUを三角予測ユニットに分割することを示す概略図である。
【0058】
三角予測モードの概念は、動き補償予測のために三角分割を導入することである。また、三角予測モードは、三角予測ユニットモードと名付けることができる。図6に示すように、CU602または604は対角線方向または逆対角線方向のいずれかで、2つの三角予測ユニットPU1およびPU2に分割される(すなわち、CU602に示すように左上隅から右下隅に分割するか、またはCU604に示すように右上隅から左下隅に分割する)。CU内の各三角予測ユニットは、ユニ予測候補リストから導かれる独自のユニ予測動きベクトルと参照フレームインデックスを用いてインター予測される。三角予測ユニットを予測した後、対角エッジに適応重み付けプロセスを実行する。次に、変換と量子化過程をCU全体に適用する。このモードは、現在のVVCにおけるスキップモードおよびマージモードにのみ適用されることに留意されたい。図6ではCUが正方形ブロックとして示されているが、三角予測モードは同様に、非正方形(すなわち、長方形)形状CUにも適用されてもよい。
【0059】
ユニ予測候補リストは1以上の候補を含むことができ、各候補は、動きベクトルとすることができる。したがって、本開示全体を通して、用語「ユニ予測候補リスト」、「ユニ予測動きベクトル候補リスト」、および「ユニ予測マージリスト」は互換的に使用され得、用語「ユニ予測マージ候補」および「ユニ予測動きベクトル」は互換的に使用され得る。
【0060】
ユニ予測動きベクトル候補リスト
図7は、本開示のいくつかの実装による、近傍ブロックの位置を示す概略図である。
【0061】
いくつかの例では、ユニ予測動きベクトル候補リストが2つから5つのユニ予測動きベクトル候補を含むことができる。いくつかの他の例では、他の数も可能であり得る。それは、近傍ブロックから導出される。ユニ予測動きベクトル候補リストは図7に示すように、5つの空間的近傍ブロック(1から5)および2つの時間的同一位置ブロック(6から7)を含む7つの近傍ブロックから導出される。7つの近傍ブロックの動きベクトルは、第1マージリストに収集される。そして、特定の順序に従って、第1マージリスト動きベクトルに基づいて、ユニ予測候補リストが形成される。順序に基づいて、最初のマージリストからのユニ予測動きベクトルを、まずユニ予測動きベクトル候補リストに入れ、次に、バイ予測動きベクトルの参照ピクチャList0またはL0動きベクトル、次に、バイ予測動きベクトルの参照ピクチャList1またはL1動きベクトル、次に、バイ予測動きベクトルのL0およびL1動きベクトルの平均化動きベクトルが続く。その時点で、候補の数が依然として目標数(5であってもよい)未満である場合、目標数を満たすためにゼロ動きベクトルがリストに追加される。
【0062】
予測子は、その動きベクトルに基づいて三角PUの各々について導出される。導出された予測子は実際の三角PUよりも大きな領域をカバーし、その結果、2つの三角PUの共有対角エッジに沿った2つの予測子の重なり合った領域が存在することに注目する価値がある。2つの予測子間の対角エッジ領域に重み付けプロセスを適用して、CUの最終予測を導出する。輝度サンプルおよび彩度サンプルに現在使用されている重み係数は、それぞれ{7/8、6/8、5/8、4/8、3/8、2/8、1/8}および{6/8、4/8、2/8}である。
【0063】
三角予測モード構文およびシグナリング
三角予測モードは、三角予測フラグを使用してシグナリングされる。三角予測フラグは、CUがスキップモードまたはマージモードのいずれかで符号化されたときに通知される。所与のCUについて、三角予測フラグが1の値を有する場合、それは、対応するCUが三角予測モードを使用して符号化されることを意味する。そうでない場合、CUは、三角予測モード以外の予測モードを使用して符号化される。
【0064】
たとえば、三角予測フラグは、スキップモードまたはマージモードのいずれかで条件付きでシグナリングされる。第1に、三角予測ツールの有効/無効フラグがシーケンスパラメータセット(またはSPS)で通知される。この三角予測ツール有効/無効フラグが真である場合にのみ、三角予測フラグがCUレベルでシグナリングされる。第2に、三角予測ツールは、Bスライスにおいてのみ許可される。従って、Bスライスにおいてのみ、三角予測フラグはCUレベルでシグナリングされる。第3に、三角予測モードは、特定のしきい値以上のサイズを有するCUについてのみシグナリングされる。CUがそのしきい値よりも小さいサイズを有する場合、三角予測フラグはシグナリングされない。第4に、アフィンモードとATMVPモードの両方を含むサブブロックマージモードでCUが符号化されていない場合にのみ、CUに対して三角予測モードをシグナリングすることができる。上記の4つの場合において、三角予測フラグがシグナリングされないとき、それはデコーダ側で0として推論される。
【0065】
三角予測フラグがシグナリングされると、それは、特定のコンテキストを有するCABAC(Context-adaptive binary arithmetic coding)エントロピーコーダを使用してシグナリングされる。コンテキストは、現在のCUの左および上のブロックの三角予測フラグ値に基づいて形成される。
【0066】
現在のブロック(または現在のCU)の三角予測フラグを符号化(すなわち、符号化または復号化)するために、左および上のブロック(またはCU)の両方からの三角予測フラグが導出され、それらの値が合計される。これにより、次の場合に対応する3つのコンテキストが可能になる:
1) 左ブロックおよび上ブロックは共に、0の三角予測フラグを有する;
2) 左ブロックおよび上ブロックは共に、1の三角予測フラグを有する;
3) その他。
【0067】
別々の確率が、3つのコンテキストのそれぞれについて維持される。現在のブロックについてコンテキスト値が決定されると、現在のブロックの三角予測フラグは、そのコンテキスト値に対応するCABAC確率モデルを使用して符号化される。
【0068】
三角予測フラグが真である場合、三角分割配向フラグは、分割が左上隅から右下隅に配向されているか、または右上隅から左下隅に配向されているかを示すようにシグナリングされる。
【0069】
CUに三角予測モードが使用される場合、2つのインデックス値が、三角予測のための第1および第2ユニ予測マージ候補のインデックス値をそれぞれ示すようにシグナリングされる。これらの2つのインデックス値は、第1および第2分割について、それぞれ、上述のユニ予測動きベクトル候補リストから2つのマージ候補を見つけるために使用される。三角予測の場合、2つのインデックス値は、2つの三角分割の2つの予測子が互いに異なるように、異なる必要がある。その結果、第1インデックス値が直接シグナリングされる。第2インデックス値をシグナリングするために、第2インデックス値が第1インデックス値よりも小さい場合、その値が直接シグナリングされる。そうでない場合には、その値がデコーダにシグナリングされる前に1だけ減算される。デコーダ側では、第1インデックスが復号化され、直接使用される。第2インデックス値を復号化するために、「idx」として示される値が、最初にCABACエンジンから復号化される。idxが第1インデックス値よりも小さい場合、第2インデックス値はidxの値に等しくなる。そうでない場合、第2インデックス値は(idx+1)に等しくなる。
【0070】
幾何学的マージモード
幾何学的マージモード(すなわち、GEO)の下で、幾何学的分割に従って、CUを2つの予測ユニット(すなわち、幾何学的PU)に分割することができる。図8は、本開示のいくつかの実装による幾何学的分割のいくつかの例を示す。図8に示されるように、CUは正確に対角でない線に沿って2つのPUに分割されてもよく、2つのPUは三角形、楔形、または台形形状などの幾何学的形状を有する可能性がある。幾何学的マージモードは、三角予測モードの拡張、または三角予測モードのスーパーセットと考えることができる。
【0071】
図9は、本開示のいくつかの実装による、幾何学的分割表現の例を示す概略図である。図9に示すように、GEO分割が与えられると、分割のシグナリングには角度αに対するシグナリングと、ρと表記される分離線変位とが、ブロックの中心に対して相対的に必要である。ここで、αは0~360度の間の量子化された角度を表す。
【0072】
三角予測モードと同様に、GEO分割の下では2つのGEO分割の各々に対してユニ予測のみが許され、その結果、このモードの下でのメモリ帯域幅要件はデコーダ側でのバイ予測ブロックに対するものを超えない。GEO分割のための動きベクトル予測を三角予測モードに併せる。また、三角予測モードと同様に、加重平均に基づくブレンディング動作を、幾何学的マージモードにおける2つの分割間の内側境界に適用することができる。従って、三角予測ユニットを用いた動き補償予測に関連する技術は、幾何形状予測ユニットを用いた動き補償予測にも適用できる。
【0073】
レギュラーマージモード動きベクトル候補リスト
現在のVVCによれば、1つ以上のPUに分割することなくCU全体が予測されるレギュラーマージモードの下で、動きベクトル候補リストまたはマージ候補リストは、三角予測モードとは異なる手順を使用して構築される。
【0074】
まず、本開示のいくつかの実施形態による空間マージ候補の位置を示す概略図である図10に示すように、近傍ブロックからの動きベクトルに基づいて、空間動きベクトル候補が選択される。現在のブロック1002の空間マージ候補の導出では、図10に示すような位置にある候補の中から最大4つのマージ候補が選択される。これらの候補は、ある順序に従って選択される。導出の1つの例示的順序はA1→B1→B0→A0→(B2)である。位置B2は、位置A1、B1、B0、A0のいずれかのPUが利用できないか、またはイントラ符号化されている場合にのみ考慮される。他の異なる順序が使用されてもよいことに留意されたい。
【0075】
次に、時間マージ候補を導出する。時間マージ候補の導出において、スケーリングされた動きベクトルは、所与の参照ピクチャリスト内の現在のピクチャとの最小ピクチャ順序カウント(POC)差を有するピクチャに属する同じ位置に配置されたPUに基づいて導出される。同一位置に配置されたPUの導出に使用される参照ピクチャリストは、スライスヘッダにおいて明示的にシグナリングされる。時間マージ候補のためのスケーリングされた動きベクトルは、本開示のいくつかの実装による時間マージ候補のための動きベクトルスケーリングを示す図11の点線によって示されるように得られる。時間マージ候補のためのスケーリングされた動きベクトルはPOC距離tbおよびtdを使用して、同じ位置に配置されたPU col_PUの動きベクトルからスケーリングされ、ここで、tbは現在のピクチャの参照ピクチャcurr_refと現在のピクチャcurr_picとの間のPOC差であると定義され、tdは同じ位置に配置されたピクチャの参照ピクチャcol_refと同じ位置に配置されたピクチャcol_picとの間のPOC差であると定義される。時間マージ候補の参照ピクチャインデックスは、ゼロに等しく設定される。スケーリングプロセスの実用的な実現については、HEVCドラフト仕様で記述される。Bスライスの場合、2つの動きベクトル、すなわち、参照ピクチャList0用の一方と、参照ピクチャList1用の他方と、が得られ、結合されて、バイ予測マージ候補が作成される。
【0076】
図12は、本開示のいくつかの実装による、時間マージ候補の候補位置を示す概略図である。
【0077】
同じ位置にあるPUの位置は図12に示すように、2つの候補位置C3とHとの間で選択される。位置HのPUが利用可能でないか、またはイントラ符号化されているか、または現在のCTUの外側にある場合、位置C3は、時間マージ候補の導出のために使用される。さもなければ、位置Hは、時間マージ候補の導出のために使用される。
【0078】
上述したように、マージ候補リストに空間動きベクトルと時間動きベクトルの両方を挿入した後、履歴ベースのマージ候補が追加される。いわゆる履歴ベースのマージ候補は以前に符号化されたCUからの動きベクトルを含み、これらの動きベクトルは、別個の動きベクトルリストに保持され、ある規則に基づいて管理される。
【0079】
履歴ベースの候補を挿入した後、マージ候補リストがフルでない場合、ペアワイズ平均動きベクトル候補がリストにさらに追加される。その名前が示すように、このタイプの候補は、現在のリストにすでにある候補を平均化することによって構築される。より具体的には、ある順序または規則に基づいて、マージ候補リスト内の2つの候補が毎回取り出され、2つの候補の平均動きベクトルが現在のリストに追加される。
【0080】
ペアワイズ平均動きベクトルを挿入した後、マージ候補リストがまだフルでない場合、リストがフルにするためにゼロ動きベクトルが追加される。
【0081】
レギュラーマージリスト構築プロセスを使用する、三角予測のための第1マージリストの構築
現在のVVCにおける三角予測モードは、予測子を形成する際のその全体的な手順において、レギュラーマージ予測モードと幾つかの類似性を共有する。例えば、両方の予測モードの下で、マージリストは、少なくとも現在のCUの近傍の空間動きベクトルおよび同じ位置にある動きベクトルに基づいて構築される必要がある。同時に、三角予測モードは、レギュラーマージ予測モードとは異なるいくつかの態様も有する。
【0082】
例えば、三角予測モードとレギュラーマージ予測モードの両方の下でマージリストを構築する必要があるが、そのようなリストを構築する詳細な手順は異なる。
【0083】
これらの差異は、追加のロジックが必要とされるので、コーデック実装に追加のコストを招く。マージリストを構築する手順およびロジックは、三角予測モードとレギュラーマージ予測モードとの間で統一され、共有されてもよい。
【0084】
いくつかの例では三角予測モードのための単方向予測(ユニ予測とも呼ばれる)マージリストを形成する際に、新しい動きベクトルをマージリストに追加する前に、新しい動きベクトルはリスト内に既にある動きベクトルに対してフルにプルーニングされる。言い換えれば、新しい動きベクトルは、既にユニ予測マージリストにある各動きベクトルと比較され、そのマージリスト内のすべての動きベクトルと異なる場合にのみリストに追加される。そうでない場合、新しい動きベクトルはリストに追加されない。
【0085】
本開示のいくつかの例によれば、三角予測モードの下では、単方向予測マージリストがレギュラーマージリストと呼ばれ得るレギュラーマージモード動きベクトル候補リストから構築される。
【0086】
具体的には、まず、三角予測モード用のマージ候補リストを構築するために、レギュラーマージ予測用のマージリスト構築プロセスに基づいて、第1マージリストを構築する。第1マージリストは、それぞれが動きベクトルである複数の候補を含む。そして、第1マージリストの動きベクトルを用いて、三角予測モード用の単方向予測マージリストをさらに構築する。
【0087】
この場合に構築される第1マージリストは、一般的なマージモードまたはレギュラーマージモードとは異なるリストサイズを選択する可能性があることに注意する。本開示の一例では、第1マージリストが一般マージモードのサイズと同じサイズを有する。本開示の別の例では、構築された第1マージリストが一般マージモードのリストサイズとは異なるリストサイズを有する。
【0088】
第1マージリストからの単方向予測マージリストの構築
本開示のいくつかの例によれば、三角予測モードのための単方向予測マージリストは、以下の方法のうちの1つに基づいて第1マージリストから構築され得る。
【0089】
本開示の一例では、単方向予測マージリストを構築するために、第1マージリスト内の候補の予測List0動きベクトルがチェックされ、最初に単方向予測マージリストに選択される。このプロセスの後、単方向予測マージリストがフルでない(例えば、このリスト内の候補の数が依然として目標数未満である)場合、第1マージリスト内の候補の予測List1動きベクトルがチェックされ、単方向予測マージリストに選択される。単方向予測マージリストがまだフルでない場合、予測List0ゼロベクトルが単方向予測マージリストに追加される。単方向予測マージリストがまだフルでない場合、予測List1ゼロベクトルが単方向予測マージリストに追加される。
【0090】
本開示の別の例では、第1マージリスト内の各候補について、その予測List0動きベクトルおよび予測List1動きベクトルがインタリーブ方式で単方向予測マージリストに追加される。より具体的には、第1マージリスト内の各候補について、候補が単方向予測動きベクトルである場合、それは単方向予測マージリストに直接追加される。そうでない場合、候補が第1マージリスト内の双方向予測動きベクトルである場合、その予測List0動きベクトルが、最初に単方向予測マージリストに追加され、続いてその予測List1動きベクトルが追加される。第1マージリスト内のすべての動きベクトル候補がチェックされ、追加されるが、単方向予測マージリストがまだフルではない場合、単方向予測ゼロ動きベクトルを追加することができる。例えば、各参照フレームインデックスについて、予測List0ゼロ動きベクトルおよび予測List1ゼロ動きベクトルは、リストがフルになるまで、単方向予測マージリストに別々に追加されてもよい。
【0091】
本開示のさらに別の例では、第1マージリストからの単方向予測動きベクトルが、まず、単方向予測マージリストに選択される。このプロセスの後、単方向予測マージリストがフルでない場合、第1マージリスト内の各双方向予測動きベクトルについて、その予測List0動きベクトルが、まず、単方向予測マージリストに追加され、続いてその予測List1動きベクトルが追加される。このプロセスの後、単方向予測マージリストがまだフルでない場合、単方向予測ゼロ動きベクトルを追加することができる。例えば、各参照フレームインデックスについて、予測List0ゼロ動きベクトルおよび予測List1ゼロ動きベクトルは、リストがフルになるまで、単方向予測マージリストに別々に追加されてもよい。
【0092】
以上の説明では、単方向予測マージリストに単方向予測動きベクトルが追加された場合に、追加される新たな動きベクトルが既に単方向予測マージリストにある動きベクトルと異なることを確認するために、動きベクトルプルーニングプロセスが実行されてもよい。そのような動きベクトルプルーニングプロセスは複雑さをより低減するために部分的に実行されてもよく、例えば、単方向予測マージリスト内に既にある全てではないがいくつかの動きベクトルに対してのみ追加されるべき新しい動きベクトルをチェックする。極端な場合には、プロセスにおいて動きベクトルプルーニング(すなわち、動きベクトル比較操作)は行われない。
【0093】
ピクチャ予測構成に基づく第1マージリストからの単方向予測マージリストの構築
本開示のいくつかの例では、ユニ予測マージリストが現在のピクチャが後方予測を使用するかどうかに基づいて、適応的な方法で構築され得る。例えば、ユニ予測マージリストは、現在のピクチャが後方予測を使用するかどうかに応じて、異なる方法を使用して構築されてもよい。全ての参照ピクチャのピクチャ順序カウント(POC)値が現在のピクチャのPOC値よりも大きくない場合、現在のピクチャは後方予測を使用しないことを意味する。
【0094】
本開示の一例では、現在のピクチャが後方予測を使用しない場合、または現在のピクチャが後方予測を使用しないと判定された場合、第1マージリスト内の候補の予測List0動きベクトルが最初にチェックされ、単方向予測マージリストに選択され、その後に、それらの候補の予測List1動きベクトルが続き、単方向予測マージリストがまだフルでない場合、単方向予測ゼロ動きベクトルが追加され得る。そうでない場合、現在のピクチャが後方予測を使用する場合、第1マージリスト内の各候補の予測List0およびList1動きベクトルをチェックし、上述のようにインタリーブ方式で単方向予測マージリストに選択することができ、すなわち、第1マージリスト内の第1候補の予測List0動きベクトルを追加し、続いて第1候補の予測List1動きベクトルを追加し、次に第2候補の予測List0動きベクトルを追加し、続いて第2候補の予測List1動きベクトルを追加する。プロセスの最後に、単方向予測マージリストがまだフルでない場合、単方向予測ゼロベクトルを追加することができる。
【0095】
本開示の別の例では、現在のピクチャが後方予測を使用しない場合、第1マージリスト内の候補の予測List1動きベクトルがチェックされ、まず、単方向予測マージリストに選択され、その後、それらの候補の予測List0動きベクトルが続き、単方向予測マージリストがまだフルでない場合、単方向予測ゼロ動きベクトルが追加され得る。そうでなく、現在のピクチャが後方予測を使用する場合、第1マージリスト内の各候補の予測List0およびList1動きベクトルをチェックし、上述のようにインタリーブ方式で単方向予測マージリストに選択することができ、すなわち、第1マージリスト内の第1候補の予測List0動きベクトルを追加し、続いて第1候補の予測List1動きベクトルを追加し、次に第2候補の予測List0動きベクトルを追加し、続いて第2候補の予測List1動きベクトルを追加する。プロセスの最後に、単方向予測マージリストがまだフルでない場合、単方向予測ゼロベクトルを追加することができる。
【0096】
本開示のさらに別の例では、現在のピクチャが後方予測を使用しない場合、第1マージリスト内の候補の予測List0動きベクトルのみがチェックされ、まず、単方向予測マージリストに選択され、単方向予測マージリストがまだフルでない場合、単方向予測ゼロ動きベクトルを追加することができる。そうでなく、現在のピクチャが後方予測を使用する場合、第1マージリスト内の各候補の予測List0およびList1動きベクトルをチェックし、上述のようにインタリーブ方式で単方向予測マージリストに選択することができ、すなわち、第1マージリスト内の第1候補の予測List0動きベクトルを追加し、続いて第1候補の予測List1動きベクトルを追加し、次に第2候補の予測List0動きベクトルを追加し、続いて第2候補の予測List1動きベクトルを追加する。プロセスの最後に、単方向予測マージリストがまだフルでない場合、単方向予測ゼロベクトルを追加することができる。
【0097】
本開示のさらに別の例では、現在のピクチャが後方予測を使用しない場合、第1マージリスト内の候補の予測List1動きベクトルのみがまずチェックされ、単方向予測マージリストに選択され、単方向予測マージリストがまだフルでない場合、単方向予測ゼロ動きベクトルが追加され得る。そうでなく、現在のピクチャが後方予測を使用する場合、第1マージリスト内の各候補の予測List0およびList1動きベクトルをチェックし、上述のようにインタリーブ方式で単方向予測マージリストに選択することができ、すなわち、第1マージリスト内の第1候補の予測List0動きベクトルを追加し、続いて第1候補の予測List1動きベクトルを追加し、次に第2候補の予測List0動きベクトルを追加し、続いて第2候補の予測List1動きベクトルを追加する。プロセスの最後に、単方向予測マージリストがまだフルでない場合、単方向予測ゼロベクトルを追加することができる。
【0098】
上記の例では、三角予測のための単方向予測マージリストが第1マージリストから単方向予測マージリストに動きベクトルを選択することによって構築される。しかしながら、実際には、方法が物理的に形成されている単方向予測(またはユニ予測)マージリストを用いて、または用いずに、異なる方法で実施されてもよい。いくつかの例では、第1マージリストが単方向予測マージリストを物理的に作成することなく、直接使用することができる。例えば、第1マージリスト内の各候補のList0および/またはList1の運動ベクトルは、単に特定の順序に基づいてインデックスされ、第1マージリストから直接アクセスされ得る。すなわち、レギュラーマージ予測のためのマージリスト構築プロセスに基づいて、それぞれが1以上の動きベクトルである複数の候補を含む第1マージリストを構築した後、単方向予測マージリストを構築せず、代わりに、それぞれが第1マージリスト内の候補の動きベクトルへの参照である複数の参照インデックスを含むインデックスリストを構築する。インデックス付けの順序は、単方向予測マージリストが構築される例で説明される選択順序のいずれにも従うことができることに留意されたい。
【0099】
本開示の一例では、現在のピクチャが後方予測を使用しない場合、第1マージリスト内の候補の予測List0動きベクトルが第1マージリスト内のものと同じインデックス順序に従ってインデックス付けされた単方向予測マージ候補として使用される。すなわち、現在のピクチャのPOCが参照ピクチャの各POCよりも大きいと判定された場合、参照インデックスは、第1マージリスト内の候補のList0動きベクトルの同じ順序に従って配置される。そうでなく、現在のピクチャが後方予測を使用する場合、第1マージリスト内の各候補のList0およびList1動きベクトルがインタリーブ方式に基づいてインデックス付けされた単方向予測マージ候補として使用され、すなわち、第1マージリスト内の第1候補のList0動きベクトルに続いて第1候補のList1動きベクトル、次に第2候補のList0動きベクトルに続いて、第2候補のList1、以下同様である。すなわち、現在のピクチャのPOCが参照ピクチャのPOCのうちの少なくとも1つよりも小さいと判定された場合、参照インデックスは、第1マージリスト内の各候補のList0およびList1動きベクトルのインタリーブ方式に従って配置され、候補は双方向予測動きベクトルである。第1マージリスト内の候補が単方向動きベクトルである場合、その候補の動きベクトルに続く単方向予測マージ候補として、ゼロ動きベクトルがインデックス付けされる。これにより、現在のピクチャが後方予測を使用する場合、第1マージリスト内の各候補は、それが双方向または単方向予測動きベクトルであるにもかかわらず、2つの単方向動きベクトルを単方向予測マージ候補として提供することが保証される。
【0100】
本開示の別の例では、現在のピクチャが後方予測を使用しない場合、第1マージリスト内の候補の予測List0動きベクトルが第1マージリスト内のものと同じインデックス順序に従ってインデックス付けされた単方向予測マージ候補として使用される。そうでなく、現在のピクチャが後方予測を使用する場合、第1マージリスト内の各候補のList0およびList1動きベクトルが単方向予測マージ候補として使用され、上述のようにインタリーブ方式に基づいてインデックス付けされ、すなわち、第1マージリスト内の第1候補のList0動きベクトルに続いて第1候補のList1動きベクトル、次いで第2候補のList0動きベクトルに続いて第2候補のList1動きベクトルが続く。第1マージリスト内の候補が単方向動きベクトルである場合、一定の動きオフセットを加えた動きベクトルが、候補の動きベクトルに続く単方向予測マージ候補としてインデックス付けされる。
【0101】
以上のプロセスにおいて、単方向予測マージリストに追加する新たな動きベクトルを調べる際に、プルーニングをフルに行ってもよいし、部分的に行ってもよい。それが部分的に実行される場合、それは、新しい動きベクトルが既にユニ予測マージリストにある動きベクトルの全てではないがいくつかと比較されることを意味する。極端な場合には動きベクトルプルーニング(すなわち、動きベクトル比較操作)はこのプロセスにおいて実行されない。
【0102】
動きベクトルプルーニングはまた、現在のピクチャが後方予測を使用するか否かに基づいて、ユニ予測マージリストを形成する際に適応的に実行されてもよい。例えば、ピクチャ予測構成に基づくインデックスリスト構成に関する本開示の例では、現在のピクチャが後方予測を使用しない場合、動きベクトルプルーニング操作がフルにまたは部分的に実行される。現在のピクチャが後方予測を使用している場合、動きベクトルプルーニング操作は実行されない。
【0103】
三角予測モードのためのユニ予測マージ候補の選択
上記の例に加えて、ユニ予測マージリスト構築またはユニ予測マージ候補選択の他の方法が開示される。
【0104】
本開示の一例では、レギュラーマージモードのための第1マージリストが構築されると、以下の規則に従って、三角予測のためにユニ予測マージ候補を選択することができる。
【0105】
第1マージリスト内の動きベクトル候補について、そのList0またはList1の動きベクトルのうちの1つのみが、三角予測のために使用される。
【0106】
第1マージリスト内の所与の動きベクトル候補について、リスト内のそのマージインデックス値が偶数である場合、そのList0動きベクトルは利用可能であれば三角予測に使用され、この動きベクトル候補がList1動きベクトルを含まない場合、そのList0動きベクトルは三角予測に使用される。
【0107】
第1マージリスト内の所与の動きベクトル候補について、リスト内のそのマージインデックス値が奇数である場合、そのList1動きベクトルは利用可能であれば三角予測に使用され、この動きベクトル候補がList1動きベクトルを含まない場合、そのList0動きベクトルは三角予測に使用される。
【0108】
図13Aは、三角予測モードのためのユニ予測動きベクトル(MV)選択(またはユニ予測マージ候補選択)の例を示す。この例では、第1マージリストで導出された第1のN(例えば、Nは5に等しい)のマージMV候補が0から(N-1)までインデックスされ、各行には2つの列があり、第1マージリストの候補に対してそれぞれList0とList1の動きベクトルを表す。リスト内の各候補は、ユニ予測でもバイ予測でもよい。ユニ予測候補については、それはList0またはList1の動きベクトルのみを有するが、両方は有しない。バイ予測候補については、それはList0およびList1の両方の動きベクトルを有する。図13Aでは、各マージインデックスについて、「×」でマークされた動きベクトルは利用可能であれば、三角予測のためにまず使用される動きベクトルである。「×」でマークされた動きベクトルが利用可能でない場合、同じマージインデックスに対応するマークされていない動きベクトルが、三角予測のために使用される。
【0109】
上記の概念は、他の例に拡張することができる。図13Bは、三角予測モードのためのユニ予測動きベクトル(MV)選択の別の例を示す。図13Bによれば、三角予測のためのユニ予測マージ候補を選択する規則は、以下の通りである。
【0110】
第1マージリスト内の動きベクトル候補について、そのList0またはList1の動きベクトルのうちの1つのみが、三角予測のために使用される。
【0111】
第1マージリスト内の所与の動きベクトル候補について、リスト内のそのマージインデックス値が偶数である場合、そのList1動きベクトルは利用可能であれば三角予測に使用され、この動きベクトル候補がList1動きベクトルを含まない場合、そのList0動きベクトルが三角予測に使用される。
【0112】
第1マージリスト内の所与の動きベクトル候補について、リスト内のそのマージインデックス値が奇数である場合、そのList0動きベクトルが利用可能であれば三角予測に使用され、この動きベクトル候補がList0動きベクトルを含まない場合、そのList1動きベクトルが三角予測に使用される。
【0113】
いくつかの例では、第1マージリスト内の動きベクトル候補から三角予測のためのユニ予測マージ候補を選択するために、他の異なる順序を定義し、使用することができる。より具体的には、第1マージリスト内の所与の動きベクトル候補について、そのList0またはList1の動きベクトルが三角予測に利用可能なときにまず使用されるかどうかの判定は上述のように、第1マージリスト内の候補のインデックス値のパリティに依存する必要はない。例えば、以下の規則を使用することもできる。
【0114】
第1マージリスト内の動きベクトル候補について、そのList0またはList1の動きベクトルのうちの1つのみが、三角予測のために使用される。
【0115】
所定のパターンに基づいて、第1マージリスト内のいくつかの動きベクトル候補について、それらのList0動きベクトルは利用可能であれば、三角予測に使用され、List0動きベクトルが存在しない場合、対応するList1動きベクトルが三角予測に使用される。
【0116】
同じ所定のパターンに基づいて、第1マージリスト内の残りの動きベクトル候補について、それらのList1動きベクトルは利用可能であれば三角予測に使用され、List1動きベクトルが存在しない場合、対応するList0動きベクトルが三角予測に使用される。
【0117】
図14A~14Dは、三角予測モードのためのユニ予測動きベクトル(MV)選択における、所定のパターンのいくつかの例を示す。各マージインデックスについて、「×」でマークされた動きベクトルは、それらが利用可能である場合には三角予測のためにまず使用される動きベクトルである。「×」でマークされた動きベクトルが利用可能でない場合、同じマージインデックスに対応するマークされていない動きベクトルが、三角予測のために使用される。
【0118】
図14Aでは、第1マージリスト内の最初の3つの動きベクトル候補について、それらのList0動きベクトルがまずチェックされる。List0動きベクトルが利用可能でない場合にのみ、対応するList1動きベクトルが三角予測に使用される。第1マージリスト内の第4および第5の動きベクトル候補について、それらのList1動きベクトルがまずチェックされる。List1動きベクトルが利用可能でない場合にのみ、対応するList0動きベクトルが三角予測に使用される。図14B図14Dは、第1マージリストからユニ予測マージ候補を選択する際の他の3つのパターンを示す。図面に示される例は、限定的なものではなく、さらなる例が存在する。例えば、図14A図14Dに示されるパターンの水平および/または垂直にミラーリングされたバージョンを使用することもできる。
【0119】
いくつかの実施例によって例示される概念は、本開示のいくつかの他の実施例によって例示される概念と一緒に使用されてもよい。本開示の一例によれば、第1マージリスト内の所与の動きベクトル候補について、そのList0またはList1の動きベクトルが三角形および/または幾何学的予測に利用可能なときにまず使用されるかどうかの決定は、現在のピクチャおよび/またはスライスが後方予測を使用するかどうかにさらに依存し得る。図15A図15Bは、本開示のいくつかの実装による、三角予測モードのためのユニ予測MV選択の例を示す概略図である。図15Aに示すように、現在のピクチャおよび/またはスライスが後方予測を使用する場合、候補のList0およびList1の動きベクトルの間の選択順序は、第1マージリスト内の候補のインデックス値のパリティに基づく。現在のピクチャおよび/またはスライスが後方予測を使用しない場合、候補のListx(xは0または1である)動きベクトルが好ましく、利用可能であればまず選択され、xが0に等しい例が図15Bに示される。先に説明した他の例と同様に、第1マージリスト内のある候補についてユニ予測動きベクトルが利用可能でない場合、他の参照リストから同じ候補の対応するユニ予測動きベクトルが選択される。その結果、第1マージリスト内の各候補について、ユニ予測動きベクトルを取得し、三角および/または幾何学的予測モードに使用することができる。得られたユニ予測動きベクトルは、第1マージリストのマージ候補と同じインデックス値を共有する。
【0120】
三角予測モードのためのフレキシブルマージリスト構築および候補インデックスシグナリング
本開示の一例では、レギュラーマージモードのための第1マージリストが構築されると、そのリストから直接三角予測のためにユニ予測動きベクトルが選択される。三角予測に使用されるあるList0またはList1の動きベクトルを示すために、まず、第1マージリストからどの候補が選択されるかを示すためにインデックス値がシグナリングされる。次に、バイナリ参照リスト指示フラグ(L0L1_flagと呼ばれる)は、三角予測の第1分割に対して、最初のマージリストから選択された候補のList0またはList1動きベクトルが選択されているかどうかを示すために信号が送られる。同じシグナリング方法が、三角予測の第2分割に使用される第2List0またはList1の動きベクトルを示すために使用される。例えば、三角モード符号化CUのためにシグナリングされる構文は、index1、L0L1_flag1、index2、L0L1_flag2を含むことができる。ここで、index1およびindex2は、それぞれ第1および第2分割の最初のマージリストから選択された2つの候補のマージインデックス値である。index1およびindex2はそれぞれ第1分割および第2分割の候補(つまり、最初の候補と2番目の候補)を見つけるために使用される。L0L1_flag1は、最初のマージリストのindex1に基づいて選択された候補のList0またはList1動きベクトルが選択されているかどうかを示す、第1分割のバイナリフラグである。L0L1_flag2は、1番目のマージリストのindex2に基づいて選択された候補のList0またはList1動きベクトルが選択されているかどうかを示す第2分割のバイナリフラグである。第1分割に対するユニ予測MVは、第1バイナリ参照リスト指示フラグL0L1_flag1に従って第1候補のListX1MVを選択することにより得られる。ここで、X1は0または1の値をとる。第2分割のユニ予測MVは、第2バイナリ参照リスト指示フラグL0L1_flag2に従って第2候補のListX2MVを選択することにより得られる。ここで、X2は0または1の値をとる。
【0121】
図16は、本開示のいくつかの実装による、三角予測モードのためのフレキシブルユニ予測MV選択の例を示す概略図である。図16に示されるように、矩形ボックス内のシンボル「×」で示されるすべてのList0および/またはList1動きベクトルは第1分割の予測を導出するためにデコーダに示され/シグナリングされてもよく、矩形ボックス内のシンボル「×」で示されるすべてのList0および/またはList1動きベクトルは三角予測モードの下で第2分割の予測を導出するためにデコーダに示され/シグナリングされてもよい。その結果、第1マージリストからのユニ予測動きベクトルの選択は、非常にフレキシブルになる。N個の候補のサイズを有する第1マージリストが与えられると、2N個までのユニ予測動きベクトルが、2つの三角分割のそれぞれに対して使用され得る。三角予測モード下の2つの分割の2つのマージインデックス値は、互いに異なる必要はない。言い換えれば、それらは同じ値をとることができる。インデックス値は、シグナリングの前に調整することなく直接シグナリングされる。より具体的には現在のVVCで定義されているものとは異なり、第2インデックス値はシグナリングの前に値に対するいかなる調整も実行することなく、直接デコーダにシグナリングされる。
【0122】
開示の別の例では、2つのインデックス値が同じである場合、第2分割L0L1_flag2のバイナリフラグをシグナリングする必要はない。その代わりに、第1分割L0L1_flag1のバイナリフラグに対して逆の値があると推測される。言い換えれば、この場合、L0L1_flag2は、(1-L0L1_flag1)の値をとることができる。
【0123】
本開示のさらに別の例ではバイナリ参照リスト指示フラグ、すなわち、L0L1_flag1およびL0L1_flag2はCABACコンテキストビンとして符号化され得る。L0L1_flag1に使用されるコンテキストは、L0L1_flag2に使用されるコンテキストとは別であってもよい。各コンテキストの下でのCABAC確率は、ビデオシーケンスの開始時、および/又はピクチャの開始時、および/又はタイルグループの開始時に初期化することができる。この例では、これら2つのフラグを符号化するために、異なるコンテキストモデリング方法を使用することができる。ある方法では、第2フラグに対するコンテキストモデル選択が第1フラグの値に依存してもよい。言い換えると、少なくとも2つのコンテキストモデルが第2フラグを符号化するために使用され得、そのコンテキストモデルは、シグナリングされた第1フラグの値に基づいて選択される。別の方法では、各コンテキストモデルの下のCABAC確率が現在のピクチャが後方予測を使用するか否かに応じて異なるように初期化され得る。ピクチャが後方予測を使用する場合、確率は特定のリスト、例えば、List0を示すために、フラグに対して、より高く初期化される可能性がある。さらに別の方法では、第1フラグはバイパスビンとして符号化されてもよく、第2フラグのみがコンテキストビンとして符号化されてもよい。ここで言及した方法は、別々にまたは一緒に使用することができる。
【0124】
開示のさらに別の例では、マージインデックス値によって示される動きベクトルと、関連するバイナリ参照リスト指示フラグ、すなわちL0L1_flagが存在しないとき、代わりに、ユニ予測ゼロ動きベクトルが使用されてもよい。すなわち、第1候補のListX1MVが存在しないと判断した場合には第1分割のユニ予測MVとしてユニ予測ゼロMVが選択され、第2候補のListX2MVが存在しないと判断した場合には第2分割のユニ予測MVとしてユニ予測ゼロMVが選択される。
【0125】
本開示のさらに別の例ではマージインデックス値および関連するL0L1_flagによって示される動きベクトルが存在しない場合、同じマージインデックス値によって示されるが、他のリスト、すなわち、List(1-L0L1_flag)から示される対応する動きベクトルが代わりに使用されてもよい。すなわち、第1候補のListX1MVが存在しないと判定したときに第1候補のリスト(1-X1)MVを選択することにより、第1分割のユニ予測MVを求め、第2候補のListX2MVが存在しないと判定したときに第2候補のリスト(1-X2)MVを選択することにより、第2分割のユニ予測MVを求める。
【0126】
本開示のさらに別の例では三角モード符号化CUの場合、第2インデックス(すなわち、index2)に関連付けられた第2L0L1_flag(すなわち、L0L1_flag2)はシグナリングされず、常に推論される。この場合でも、index1、L0L1_flag1、およびindex2構文をシグナリングする必要がある。1つの方法では、L0L1_flag2がL0L1_flag1の値と、現在のピクチャが後方予測を使用するかどうかとに基づいて推論される。より具体的には三角モード符号化CUの場合、現在のピクチャが後方予測を使用する場合、L0L1_flag2の値はL0L1_flag1の反対のバイナリ値(すなわち、1-L0L1_flag1)であると推論され、現在のピクチャが後方予測を使用しない場合、L0L1_flag2の値はL0L1_flag1と同じであると推論される。さらに、現在のピクチャが後方予測を使用しない場合、2つの動きベクトル(各三角分割に1つ)の両方が同じ予測リストからのものであるため、index2の値がindex1の値と異なることをさらに強制することができる。index2がindex1に等しい値を有する場合、それは同じ動きベクトルが両方の三角分割に使用されることを意味し、これは符号化効率の観点から有用ではない。この場合、index2の値をシグナリングする際に、index2シグナリングのための現在のVVC設計と同じでインデックス2値化の前のindex2の値に対する対応する調整が実行され得る。例えば、index1の実際の値がindex2の値より小さい場合、(index2-1)に対応するCABAC2値化符号化ワードがindex2の値をシグナリングするために使用され、そうでない場合、index2に対応するCABAC2値化符号化ワードがindex2の値をシグナリングするために使用される。本開示のこの例に基づいて、代替的に、index1とは異なる値を有するindex2を強制することはCABAC2値化のための同じindex2の値調整と共に、現在のピクチャが後方予測を使用する場合にも適用され得る。
【0127】
開示のさらに別の例では、三角モードで符号化されたCUについてはL0L1_flagのいずれもシグナリングされない。その代わりに、それらは両方とも推測される。この場合、index1構文とindex2構文は、第1分割と第2分割の最初のマージリストからそれぞれ選択された2つの候補のマージインデックス値を表すシグナリングを行う必要がある。マージ候補インデックス値が与えられると、第1リストからの対応するマージ候補のList0動きベクトルまたはList1動きベクトルが三角モード予測のために選択されるかどうかを決定する際に、いくつかのアプローチが定義または使用され得る。1つのアプローチではindex1については図13Aに示されるパターンがどの予測リストからマージ候補の動きベクトルが三角モード予測のために選択されるかを決定する際に使用され、index2については図13Bに示されるパターンがどの予測リストからマージ候補の動きベクトルが三角モード予測のために選択されるかを決定する際に使用される。すなわち、index1が偶数値であれば、index1が示す候補のList0動きベクトルを選択し、index1が奇数値であれば、index1が示す候補のList1動きベクトルを選択する。index2は偶数値であればList1の動きベクトルを選択し、奇数値であればList0の動きベクトルを選択する。ある予測リストに対応する動きベクトルが存在しない場合、代わりに、あるデフォルト動きベクトル、例えば、ゼロ動きベクトル、または他の予測リストからの対応する動きベクトルなどを使用することができる。また、図13Bに示すパターンをindex1に用い、図13Aに示すパターンをindex2に用いて、どの予測リストからマージ候補の動きベクトルを選択して三角モード予測を行うかを決定するようにしてもよい。すなわち、L0L1_flagは、index1およびindex2の値に基づいて決定されてもよい。
【0128】
本開示における方法は一例として、三角予測モードを使用して例示されるが、幾何学的マージモードを三角予測モードの拡張またはスーパーセットとみなすことができ、本開示において例示される方法は同様に、幾何学的マージモードにも当然に適用可能である。本開示に示される全てのマージリスト構築方法は、いかなる変更もなしに幾何学的マージモードのために当然に使用されることができる。同様に、本開示に示されるすべてのマージインデックスシグナリング方法はいかなる修正もなしに、幾何学的マージモードのために当然に使用され得る。一例では、図13Aによる同じマージリスト構築プロセスが幾何学的マージモードに使用される。別の例では、図13Bによる同じマージリスト構築プロセスが幾何学的マージモードに使用される。また、VVCに両方のモードが存在する場合、同じマージリスト構築プロセスを共有し、三角予測モードおよび幾何学的マージモードの両方に使用することができることに言及する価値がある。
【0129】
本開示のいくつかの例では5つのマージ候補を含む第1マージリストが使用されるが、実際には第1マージリストのサイズが異なるように定義されてもよく、例えば、6または4、あるいはいくつかの他の値であることに留意されたい。実施例に示す方法は、第1マージリストが5以外のサイズを有する場合に適用可能である。
【0130】
上記の例では、動きベクトルプルーニングも実行することができる。このようなプルーニングは、フルに、または部分的に行うことができる。それが部分的に実行される場合、それは、新しい動きベクトルがユニ予測マージリストに既にある動きベクトルの全てではないがいくつかに対して比較されることを意味する。これはまた、三角予測のためのマージ候補として使用される前に、すべてではないがいくつかの新しい動きベクトルのみが、プルーニングのためにチェックされる必要があることを意味し得る。1つの特定の例は第2動きベクトルのみが、三角予測のためのマージ候補として使用される前に、プルーニングのために第1動きベクトルに対してチェックされ、他のすべての動きベクトルはプルーニングのためにチェックされないことである。極端な場合には動きベクトルプルーニング(すなわち、動きベクトル比較操作)はこのプロセスでは実行されない。
【0131】
図17は、本開示のいくつかの実装による、ビデオ符号化のための装置を示すブロック図である。装置1700は、携帯電話、タブレットコンピュータ、デジタルブロードキャスト端末、タブレットデバイス、またはパーソナルデジタルアシスタントなどの端末であってもよい。
【0132】
図17に示すように、装置1700は、処理コンポーネント1702、メモリ1704、電源コンポーネント1706、マルチメディアコンポーネント1408、オーディオコンポーネント1710、入出力(I/O)インターフェース1712、センサコンポーネント1714、および通信コンポーネント1716のうちの1以上を含むことができる。
【0133】
処理コンポーネント1702は、通常、表示、通話、データ通信、カメラ動作、および記録動作に関連する動作など、装置1700の動作全体を制御する。処理コンポーネント1702は、上記の方法のステップの全部または一部を完了するための命令を実行するための1以上のプロセッサ1720を含むことができる。さらに、処理コンポーネント1702は、処理コンポーネント1702と他のコンポーネントとの間のインタラクションを容易にするために1以上のモジュールを含むことができる。例えば、処理コンポーネント1702は、マルチメディアコンポーネント1708と処理コンポーネント1702との間のインタラクションを容易にするためにマルチメディアモジュールを含むことができる。
【0134】
メモリ1704は、装置1700の動作をサポートするために異なるタイプのデータを記憶するように構成される。そのようなデータの例には、装置1700上で動作する任意のアプリケーションまたは方法のための命令、連絡先データ、電話帳データ、メッセージ、写真、ビデオなどが含まれる。メモリ1704は任意のタイプの揮発性または不揮発性記憶装置またはその組み合わせによって実現することができ、メモリ1704は、SRAM(Static Random Access Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、EPROM(Erasable Programmable Read-Only Memory)、PROM(Programmable Read-Only Memory)、ROM(Read-Only Memory)、磁気メモリ、フラッシュメモリ、磁気ディスクまたはコンパクトディスクであってよい。
【0135】
電源コンポーネント1706は、装置1700の異なるコンポーネントのために電力を供給する。電源コンポーネント1706は電源管理システム、1以上の電源、および装置1700のための電力を生成し、管理し、配電することに関連する他のコンポーネントを含むことができる。
【0136】
マルチメディアコンポーネント1708は、装置1700とユーザとの間の出力インターフェースを提供するスクリーンを含む。いくつかの例では、スクリーンが液晶ディスプレイ(LCD)およびタッチパネル(TP)を含んでもよい。スクリーンがタッチパネルを含む場合、スクリーンは、ユーザから入力信号を受信するタッチスクリーンとして実装されてもよい。タッチパネルは、タッチパネル上のタッチ、スライド、およびジェスチャを感知するための1以上のタッチセンサを含むことができる。タッチセンサは、タッチまたはスライド動作の境界を感知するだけでなく、タッチまたはスライド動作に関連する持続時間および圧力を検出することもできる。いくつかの例では、マルチメディアコンポーネント1708はフロントカメラおよび/またはリアカメラを含むことができる。装置1700が撮影モードまたはビデオモードなどの動作モードにある場合、フロントカメラおよび/またはリアカメラは、外部マルチメディアデータを受信することができる。
【0137】
オーディオコンポーネント1710は、オーディオ信号を出力および/または入力するように構成される。例えば、オーディオコンポーネント1710は、マイクロフォン(MIC)を含む。装置1700が通話モード、録音モード、および音声認識モードなどの動作モードにある場合、マイクロフォンは、外部オーディオ信号を受信するように構成される。受信されたオーディオ信号は、メモリ1704にさらに格納されてもよく、または通信コンポーネント1716を介して送信されてもよい。いくつかの例では、オーディオコンポーネント1710がオーディオ信号を出力するためのスピーカをさらに含む。
【0138】
I/Oインターフェース1712は、処理コンポーネント1702と周辺インターフェースモジュールとの間のインターフェースを提供する。上記周辺インターフェースモジュールは、キーボード、クリックホイール、ボタン等であってもよい。これらのボタンはホームボタン、音量ボタン、スタートボタン、およびロックボタンを含むことができるが、これらに限定されない。
【0139】
センサコンポーネント1714は、装置1700に対して異なる態様で状態評価を提供するための1つ以上のセンサを含む。例えば、センサコンポーネント1714は、装置1700のオン/オフ状態、およびコンポーネントの相対位置を検出することができる。例えば、コンポーネントは、装置1700のディスプレイおよびキーパッドである。また、センサコンポーネント1714は、装置1700のコンポーネントまたは装置1700の位置変化、装置1700へのユーザの接触の有無、装置1700の方向または加速/減速、および装置1700の温度変化を検出してもよい。センサコンポーネント1714はいかなる物理的タッチもなしに、付近の物体の存在を検出するように構成された近接センサを含んでもよい。センサコンポーネント1714はさらに、撮像アプリケーションで使用されるCMOSまたはCCD撮像素子などの光学センサを含んでもよい。いくつかの例では、センサコンポーネント1714が加速度センサ、ジャイロスコープセンサ、磁気センサ、圧力センサ、又は温度センサをさらに含んでもよい。
【0140】
通信コンポーネント1716は、装置1700と他のデバイスとの間の有線または無線通信を容易にするように構成される。装置1700は、WiFi、4G、またはそれらの組合せなどの通信規格に基づいて無線ネットワークにアクセスすることができる。一例では、通信コンポーネント1716がブロードキャストチャネルを介して外部ブロードキャスト管理システムからブロードキャスト信号またはブロードキャスト関連情報を受信する。一例では、通信コンポーネント1716は短距離通信を促進するための近距離通信(NFC)モジュールをさらに含むことができる。例えば、NFCモジュールは、RFID(Radio Frequency Identification)技術、IrDA(infrared data association)技術、UWB(Ultra-Wide Band)技術、BT(Bluetooth(登録商標))技術、および他の技術に基づいて実装され得る。
【0141】
一例では、装置1700が上記の方法を実行するために、ASIC(Application Specific Integrated Circuits)、DSP(Digital Signal Processors)、DSPD(Digital Signal Processing Devices)、PLD(Programmable Logic Devices),FPGA(Field Programmable Gate Arrays )、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子要素のうちの1以上によって実装され得る。
【0142】
非一時的コンピュータ可読記憶媒体は例えば、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、フラッシュメモリ、SSHD(Hybrid Drive or Solid-State Hybrid Drive)、ROM(Read-Only Memory)、CD-ROM(Compact Disc Read-Only Memory)、磁気テープ、フロッピー(登録商標)ディスクなどであってよい。
【0143】
図18は、本開示のいくつかの実装による、幾何学的分割を使用する動き補償予測のためのビデオ符号化の例示的なプロセスを示すフローチャートである。
【0144】
ステップ1802において、プロセッサ1720はビデオピクチャを複数の符号化ユニット(CU)に分割し、符号化ユニット(CU)のうちの少なくとも1つは、2つの予測ユニット(PU)にさらに分割される。2つのPUは、少なくとも1つの幾何学的形状のPUを含むことができる。例えば、幾何学的形状PUは、一対の三角形状PU、一対の楔形PU、または他の幾何学的形状PUを含んでもよい。
【0145】
ステップ1804において、プロセッサ1720は複数の候補を含む第1マージリストを構築し、各候補は、List0動きベクトルおよび/またはList1動きベクトルを含む動きベクトルである。例えば、プロセッサ1720は、レギュラーマージ予測のためのマージリスト構築プロセスに基づいて第1マージリストを構築することができる。プロセッサ1720は、同様に他の電子装置または記憶装置から第1マージリストを取得してもよい。
【0146】
ステップ1806において、プロセッサ1720は、第1インデックスに従って、第1PUのための第1候補を検出する。
【0147】
ステップ1808において、プロセッサ1720は、第2インデックスに従って、第2PUのための第2候補を検出する。
【0148】
ステップ1810において、プロセッサ1720は第1バイナリ参照リスト指示フラグに従って第1候補のListX1MVを選択することによって、第1PUに対する第1ユニ予測MVを取得し、X1は0または1の値をとり、第1バイナリ参照リスト指示フラグによって示される。
【0149】
ステップ1812において、プロセッサ1720は第2バイナリ参照リスト指示フラグに従って第2候補のListX2MVを選択することによって、第2PUに対する第2ユニ予測MVを取得し、X2は0または1の値をとり、第2バイナリ参照リスト指示フラグによって示される。
【0150】
いくつかの例では、ビデオ符号化のための装置が提供される。この装置はプロセッサ1720と、プロセッサによって実行可能な命令を記憶するように構成されたメモリ1704とを含み、プロセッサは命令の実行時に、図18に示すような方法を実行するように構成される。
【0151】
他のいくつかの例では、そこに記憶された命令を有する、非一時的コンピュータ可読記憶媒体1704が提供される。命令がプロセッサ1720によって実行されると、命令は、図18に示すような方法をプロセッサに実行させる。
【0152】
本開示の説明は例示の目的で提示されており、網羅的であることも、本開示に限定されることも意図されていない。前述の説明および関連する図面に提示された教示の恩恵を受ける当業者には、多くの修正形態、変形形態、および代替実施形態が明らかであろう。
【0153】
実施例は本開示の原理を説明するために、また、他の当業者が様々な実施のために本開示を理解し、意図される特定の使用に適した様々な修正を伴う基礎となる原理および様々な実施を最良に利用することを可能にするために、選択され、説明された。したがって、本開示の範囲は開示された実装の特定の例に限定されるべきではなく、修正および他の実装は本開示の範囲内に含まれることが意図されることを理解されたい。
【0154】
〔関連出願の相互参照〕
本出願は2019年10月10日に出願された「三角予測を用いたビデオ符号化」という名称の米国仮出願第62/913,710号、および2019年12月16日に出願された「三角予測を用いたビデオ符号化」という名称の米国仮出願第62/948,781号の優先権を主張し、これらの両方の全体は、すべての目的のために参照によって組み込まれる。

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13A
図13B
図14A
図14B
図14C
図14D
図15A
図15B
図16
図17
図18
【手続補正書】
【提出日】2022-05-19
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオピクチャを複数の符号化ユニット(CU)に分割し、複数の前記符号化ユニットの少なくとも1つは、少なくとも1つの幾何学的形状予測ユニット(PU)を含む2つのPU、第1PUおよび第2PU、にさらに分割され、
レギュラーマージ予測のためのマージリスト構築プロセスに基づいて、複数の候補を含む第1マージリストを構築し、複数の前記候補の各々は、List0MVまたはList1MVを含む動きベクトル(MV)であり、
第1インデックスによって前記第1PUの第1候補を検出し、
第2インデックスによって前記第2PUの第2候補を検出し、
第1バイナリ参照リスト指示フラグによって前記第1候補のListX1MVを選択することにより前記第1PUの第1ユニ予測MVを取得し、X1は0または1の値をとり、前記第1バイナリ参照リスト指示フラグによって示され、
第2バイナリ参照リスト指示フラグによって前記第2候補のListX2MVを選択することにより前記第2PUの第2ユニ予測MVを取得し、X2は0または1の値をとり、前記第2バイナリ参照リスト指示フラグによって示される、
幾何学的分割を用いたビデオ復号化方法。
【請求項2】
前記第1インデックスと前記第2インデックスとが同じであると判定された場合に、前記第2バイナリ参照リスト指示フラグは前記第1バイナリ参照リスト指示フラグに対して反対の値を有すると決定される、
請求項1に記載の幾何学的分割を用いたビデオ復号化方法。
【請求項3】
前記第1候補の前記ListX1MVが存在しないと判定した場合に、前記第1ユニ予測MVとしてユニ予測ゼロMVを選択するか、または、
前記第2候補の前記ListX2MVが存在しないと判定した場合に、前記第2ユニ予測MVとしてユニ予測ゼロMVを選択する、
請求項1に記載の幾何学的分割を用いたビデオ復号化方法。
【請求項4】
現在のピクチャに後方予測が使用されていると判定された場合に、前記第2バイナリ参照リスト指示フラグは前記第1バイナリ参照リスト指示フラグに対して反対の値を有すると決定され、
前記現在のピクチャに後方予測が使用されていないと判定された場合に、前記第2バイナリ参照リスト指示フラグは前記第1バイナリ参照リスト指示フラグと同じ値を有すると決定される、
請求項1に記載の幾何学的分割を用いたビデオ復号化方法。
【請求項5】
前記第1バイナリ参照リスト指示フラグおよび前記第2バイナリ参照リスト指示フラグは各々前記第1インデックスおよび前記第2インデックスの値に基づいて決定される、
請求項1に記載の幾何学的分割を用いたビデオ復号化方法。
【請求項6】
前記第1バイナリ参照リスト指示フラグおよび前記第2バイナリ参照リスト指示フラグはCABACコンテキストビンとして符号化される、
請求項1に記載の幾何学的分割を用いたビデオ復号化方法。
【請求項7】
前記第1マージリストの前記第1候補および前記第2候補のインデックス値のパリティに基づいて、前記第1バイナリ参照リスト指示フラグおよび前記第2バイナリ参照リスト指示フラグが各々決定される、
請求項1に記載の幾何学的分割を用いたビデオ復号化方法。
【請求項8】
1以上のプロセッサと、
1以上の前記プロセッサによって実行可能な命令を格納するように構成されたメモリと、
を含み、
1以上の前記プロセッサは、前記命令が実行されると、
ビデオピクチャを複数の符号化ユニット(CU)に分割し、複数の前記符号化ユニットの少なくとも1つは、少なくとも1つの幾何学的形状予測ユニット(PU)を含む2つのPU、第1PUおよび第2PU、にさらに分割され、
レギュラーマージ予測のためのマージリスト構築プロセスに基づいて、複数の候補を含む第1マージリストを構築し、複数の前記候補の各々は、List0MVまたはList1MVを含む動きベクトル(MV)であり、
第1インデックスによって前記第1PUの第1候補を検出し、
第2インデックスによって前記第2PUの第2候補を検出し、
第1バイナリ参照リスト指示フラグによって前記第1候補のListX1MVを選択することにより前記第1PUの第1ユニ予測MVを取得し、X1は0または1の値をとり、前記第1バイナリ参照リスト指示フラグによって示され、
第2バイナリ参照リスト指示フラグによって前記第2候補のListX2MVを選択することにより前記第2PUの第2ユニ予測MVを取得し、X2は0または1の値をとり、前記第2バイナリ参照リスト指示フラグによって示される、
ように構成されている、
幾何学的分割を用いたビデオ復号化装置。
【請求項9】
前記第1インデックスと前記第2インデックスとが同じであると判定された場合に、前記第2バイナリ参照リスト指示フラグは、前記第1バイナリ参照リスト指示フラグに対して反対の値を有すると決定される、
請求項8に記載の幾何学的分割を用いたビデオ復号化装置。
【請求項10】
前記第1候補の前記ListX1MVが存在しないと判定した場合に、前記第1ユニ予測MVとしてユニ予測ゼロMVを選択するか、または、
前記第2候補の前記ListX2MVが存在しないと判定した場合に、前記第2ユニ予測MVとしてユニ予測ゼロMVを選択する、
請求項8に記載の幾何学的分割を用いたビデオ復号化装置。
【請求項11】
現在のピクチャに後方予測が使用されていると判定された場合に、前記第2バイナリ参照リスト指示フラグは前記第1バイナリ参照リスト指示フラグに対して反対の値を有すると決定され、
前記現在のピクチャに後方予測が使用されていないと判定された場合に、前記第2バイナリ参照リスト指示フラグは前記第1バイナリ参照リスト指示フラグと同じ値を有すると決定される、
請求項8に記載の幾何学的分割を用いたビデオ復号化装置。
【請求項12】
前記第1バイナリ参照リスト指示フラグおよび前記第2バイナリ参照リスト指示フラグは各々前記第1インデックスおよび前記第2インデックスの値に基づいて決定される、
請求項8に記載の幾何学的分割を用いたビデオ復号化装置。
【請求項13】
前記第1バイナリ参照リスト指示フラグおよび前記第2バイナリ参照リスト指示フラグはCABACコンテキストビンとして符号化される、
請求項8に記載の幾何学的分割を用いたビデオ復号化装置。
【請求項14】
前記第1マージリストの前記第1候補および前記第2候補のインデックス値のパリティに基づいて、前記第1バイナリ参照リスト指示フラグおよび前記第2バイナリ参照リスト指示フラグが各々決定される、
請求項8に記載の幾何学的分割を用いたビデオ復号化装置。
【請求項15】
1以上のコンピュータプロセッサによって実行されると、請求項1~請求項7のいずれか1項に記載のビデオ復号化方法を、1以上の前記コンピュータプロセッサに実行させる、コンピュータ実行可能命令を格納する、幾何学的分割を用いたビデオ復号化の非一時的コンピュータ可読記憶媒体。
【請求項16】
請求項1~請求項7のいずれか1項に記載のビデオ復号化方法によって復号化可能なビットストリームを格納する、デコーダ可読記憶媒体。
【国際調査報告】