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

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

▶ ホアウェイ・テクノロジーズ・カンパニー・リミテッドの特許一覧

特開2023-169226現在のブロックについての補間フィルタインデックスを導出するための方法および装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023169226
(43)【公開日】2023-11-29
(54)【発明の名称】現在のブロックについての補間フィルタインデックスを導出するための方法および装置
(51)【国際特許分類】
   H04N 19/117 20140101AFI20231121BHJP
   H04N 19/52 20140101ALI20231121BHJP
【FI】
H04N19/117
H04N19/52
【審査請求】有
【請求項の数】13
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023144319
(22)【出願日】2023-09-06
(62)【分割の表示】P 2021562150の分割
【原出願日】2020-04-20
(31)【優先権主張番号】62/836,072
(32)【優先日】2019-04-19
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/845,938
(32)【優先日】2019-05-10
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/909,763
(32)【優先日】2019-10-02
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/909,761
(32)【優先日】2019-10-02
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133569
【弁理士】
【氏名又は名称】野村 進
(72)【発明者】
【氏名】ティモフェイ・ミハイロヴィチ・ソロヴィエフ
(72)【発明者】
【氏名】セルゲイ・ユリエヴィッチ・イコニン
(72)【発明者】
【氏名】ローマン・イゴレヴィチ・チェルニャック
(72)【発明者】
【氏名】アレクサンダー・アレクサンドロヴィッチ・カラブトフ
(72)【発明者】
【氏名】エレナ・アレクサンドロブナ・アルシナ
(72)【発明者】
【氏名】フアンバン・チェン
(57)【要約】      (修正有)
【課題】予測信号の品質およびコーディングの効率を改善するインター予測のための方法、エンコーダ、デコーダ、プログラム及び記憶媒体を提供する。
【解決手段】インター予測のための方法は、履歴に基づく動き情報(HMI)候補リストを構築するステップと、履歴に基づく動き情報候補リストからの1つまたは複数の履歴に基づく動き情報候補をブロックについての動き情報候補リストに追加するステップと、動き情報候補リストに基づいてブロックについての動き情報を導出するステップと、を含み、履歴に基づく動き情報候補リストが使用されるときに半ピクセル補間フィルタインデックスを継承し、デフォルトの補間フィルタの代わりに専用の補間フィルタを選択する。
【選択図】図14
【特許請求の範囲】
【請求項1】
履歴に基づく動き情報候補リストを構築するための方法であって、
履歴に基づく動き情報候補リストを取得するステップであって、前記履歴に基づく動き情報候補リストが、ブロックに先行するN個の先行ブロックの動き情報を含むN個の履歴に基づく動き情報候補Hkを含む順序付けられたリストであり、k=0, ... , N-1であり、Nが、0よりも大きい整数であり、各々の履歴に基づく動き情報候補が、要素、すなわち、
i) 1つまたは複数の動きベクトル(MV)、
ii) 前記1つまたは複数のMVに対応する1つまたは複数の参照ピクチャインデックス、および
iii) 補間フィルタインデックス
を含む動き情報を含む、ステップと、
前記ブロックの動き情報に基づいて前記履歴に基づく動き情報候補リストを更新するステップであって、前記ブロックの前記動き情報が、要素、すなわち、
i) 前記ブロックの1つまたは複数の動きベクトル(MV)、
ii) 前記ブロックの前記MVに対応する1つまたは複数の参照ピクチャインデックス、および
iii) 補間フィルタインデックス
を含む、ステップと、
を含む方法。
【請求項2】
前記履歴に基づく動き情報候補リストを更新するステップが、
前記履歴に基づく動き情報候補リストの各々の履歴に基づく動き情報候補の以下の要素、すなわち、
i) 前記1つまたは複数の動きベクトル(MV)、および
ii) 前記1つまたは複数のMVに対応する前記1つまたは複数の参照ピクチャインデックス
のうちの少なくとも1つが前記ブロックの前記動き情報の対応する要素と異なるならば、前記履歴に基づく動き情報候補リストに前記ブロックの前記動き情報を含む履歴に基づく動き情報候補Hkを追加するステップであって、k = Nである、ステップを含む、請求項1に記載の方法。
【請求項3】
前記履歴に基づく動き情報候補リストを更新するステップが、
前記履歴に基づく動き情報候補リストの履歴に基づく動き情報候補の以下の要素、すなわち、
i) 1つまたは複数の動きベクトル(MV)、および
ii) 前記1つまたは複数のMVに対応する1つまたは複数の参照ピクチャインデックス
が前記ブロックの前記動き情報の対応する要素と同じであるならば、前記履歴に基づく動き情報候補リストから前記履歴に基づく動き情報候補を削除し、前記履歴に基づく動き情報候補リストに前記ブロックの前記動き情報を含む履歴に基づく動き情報候補Hkを追加するステップであって、k = N-1である、ステップを含む、請求項1に記載の方法。
【請求項4】
前記履歴に基づく動き情報候補リストを更新するステップが、
Nが予め定義された数に等しいならば、前記履歴に基づく動き情報候補リストからk = 0である履歴に基づく動き情報候補Hkを削除し、前記履歴に基づく動き情報候補リストに前記ブロックの前記動き情報をk = N-1である履歴に基づく動き情報候補Hkとして追加するステップを含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記履歴に基づく動き情報候補リスト内の履歴に基づく動き情報候補の前記動きベクトルが前記ブロックの対応する前記動きベクトルと同じであるかどうかを比較するステップと、
前記履歴に基づく動き情報候補の前記参照ピクチャインデックスが前記ブロックの対応する前記参照ピクチャインデックスと同じであるかどうかを比較するステップと、
をさらに含む、請求項2または3に記載の方法。
【請求項6】
各々の履歴に基づく動き情報候補の前記動きベクトルのうちの少なくとも1つが前記ブロックの対応する前記動きベクトルと異なるかどうかを比較するステップと、
各々のHMVP候補の前記参照ピクチャインデックスのうちの少なくとも1つが前記ブロックの対応する前記参照ピクチャインデックスと異なるかどうかを比較するステップと、
をさらに含む、請求項2または3に記載の方法。
【請求項7】
前記履歴に基づく動き情報候補に含まれる前記補間フィルタインデックスが、1組の半サンプル補間フィルタの中の半サンプル補間フィルタを示し、前記半サンプル補間フィルタが、前記履歴に基づく動き情報候補の前記1つまたは複数のMVのうちの少なくとも1つが半サンプル位置を指すときのみ半サンプル値を補間するために適用される、請求項1から6のいずれか一項に記載の方法。
【請求項8】
ビデオ信号のフレーム内のブロックについてのインター予測のための方法であって、
履歴に基づく動き情報候補リストを構築するステップであって、前記履歴に基づく動き情報候補リストが、前記ブロックに先行するN個の先行ブロックの動き情報を含むN個の履歴に基づく動き情報候補Hkを含む順序付けられたリストであり、k=0, ... , N-1であり、Nが、0よりも大きい整数であり、各々の履歴に基づく動き情報候補が、要素、すなわち、
i) 1つまたは複数の動きベクトル(MV)、
ii) 前記MVに対応する1つまたは複数の参照ピクチャインデックス、および
iii) 補間フィルタインデックス
を含む、ステップと、
前記履歴に基づく動き情報候補リストからの1つまたは複数の履歴に基づく動き情報候補を前記ブロックについての動き情報候補リストに追加するステップと、
前記動き情報候補リストに基づいて前記ブロックについての動き情報を導出するステップと、
を含む方法。
【請求項9】
前記導出された動き情報の1つまたは複数のMVのうちの少なくとも1つが半サンプル位置を指すときのみ、代替的な半サンプル補間フィルタが適用され、前記代替的な半サンプル補間フィルタが、前記導出された動き情報に含まれる補間フィルタインデックスによって示される、請求項8に記載の方法。
【請求項10】
前記履歴に基づく動き情報候補に含まれる前記補間フィルタインデックスが、1組の半サンプル補間フィルタの中の半サンプル補間フィルタを示し、前記半サンプル補間フィルタが、前記履歴に基づく動き情報候補の前記1つまたは複数のMVのうちの少なくとも1つが半サンプル位置を指すときのみ半サンプル値を補間するために適用される、請求項8に記載の方法。
【請求項11】
前記履歴に基づく動き情報候補リストの各々の履歴に基づく動き情報候補の以下の要素、すなわち、
i) 前記1つまたは複数の動きベクトル(MV)、および
ii) 前記1つまたは複数のMVに対応する前記1つまたは複数の参照ピクチャインデックス
のうちの少なくとも1つが前記ブロックの前記動き情報の対応する要素と異なるならば、前記履歴に基づく動き情報候補リストに前記ブロックの前記動き情報を含む履歴に基づく動き情報候補Hkを追加するステップであって、k = Nである、ステップをさらに含む、請求項8から10のいずれか一項に記載の方法。
【請求項12】
前記履歴に基づく動き情報候補リストの履歴に基づく動き情報候補の以下の要素、すなわち、
i) 1つまたは複数の動きベクトル(MV)、および
ii) 前記MVに対応する1つまたは複数の参照ピクチャインデックス
が前記ブロックの前記動き情報の対応する要素と同じであるならば、前記履歴に基づく動き情報候補リストから前記履歴に基づく動き情報候補を削除し、前記履歴に基づく動き情報候補リストに前記ブロックの前記動き情報を含む履歴に基づく動き情報候補Hkを追加するステップであって、k = N-1である、ステップをさらに含む、請求項8から10のいずれか一項に記載の方法。
【請求項13】
Nが予め定義された数に等しいならば、前記履歴に基づく動き情報候補リストからk = 0である履歴に基づく動き情報候補Hkを削除し、前記履歴に基づく動き情報候補リストに前記ブロックの前記動き情報をk = N-1である履歴に基づく動き情報候補Hkとして追加するステップをさらに含む、請求項8から12のいずれか一項に記載の方法。
【請求項14】
前記履歴に基づく動き情報候補リスト内の履歴に基づく動き情報候補の前記動きベクトルが前記ブロックの対応する前記動きベクトルと同じであるかどうかを比較するステップと、
前記履歴に基づく動き情報候補の前記参照ピクチャインデックスが前記ブロックの対応する前記参照ピクチャインデックスと同じであるかどうかを比較するステップと、
をさらに含む、請求項11または12に記載の方法。
【請求項15】
各々の履歴に基づく動き情報候補の前記動きベクトルのうちの少なくとも1つが前記ブロックの対応する前記動きベクトルと異なるかどうかを比較するステップと、
各々のHMVP候補の前記参照ピクチャインデックスのうちの少なくとも1つが前記ブロックの対応する前記参照ピクチャインデックスと異なるかどうかを比較するステップと、
をさらに含む、請求項11または12に記載の方法。
【請求項16】
前記履歴に基づく動き情報候補リストが、Nの長さを有し、Nが、5または6である、請求項8から15のいずれか一項に記載の方法。
【請求項17】
前記動き情報候補リストが、マージモードまたはスキップモードについて使用される、請求項8から16のいずれか一項に記載の方法。
【請求項18】
前記動き情報候補リストに基づいて前記ブロックについての前記動き情報を導出するステップが、
候補インデックスによって参照される前記動き情報を前記動き情報候補リストから現在のブロックの前記動き情報として導出するステップを含む、請求項8から17のいずれか一項に記載の方法。
【請求項19】
前記導出された動き情報に含まれる1つまたは複数の動きベクトル(MV)のうちの少なくとも1つが半サンプル位置を指すとき、前記MVによって指される参照ピクチャのサンプル値に半サンプル補間フィルタを適用することによって前記ブロックの予測サンプル値を取得するステップであって、前記半サンプル補間フィルタが、前記導出された動き情報に含まれる半サンプル補間フィルタインデックスによって示され、前記参照ピクチャが、前記導出された動き情報に含まれる前記1つまたは複数の参照ピクチャインデックスによって示される、ステップをさらに含む、請求項8から18のいずれか一項に記載の方法。
【請求項20】
請求項1から19のいずれか一項に記載の方法を実行するための処理回路を含むエンコーダ(20)。
【請求項21】
請求項1から19のいずれか一項に記載の方法を実行するための処理回路を含むデコーダ(30)。
【請求項22】
請求項1から19のいずれか一項に記載の方法を実行するためのプログラムコードを含むコンピュータプログラム製品。
【請求項23】
1つまたは複数のプロセッサと、
前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを記憶した非一時的コンピュータ可読記憶媒体であって、前記プログラミングが、前記プロセッサによって実行されるとき、請求項1から19のいずれか一項に記載の方法を実行するようにデコーダを構成する、非一時的コンピュータ可読記憶媒体と、
を含むデコーダ。
【請求項24】
1つまたは複数のプロセッサと、
前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを記憶した非一時的コンピュータ可読記憶媒体であって、前記プログラミングが、前記プロセッサによって実行されるとき、請求項1から19のいずれか一項に記載の方法を実行するようにエンコーダを構成する、非一時的コンピュータ可読記憶媒体と、
を含むエンコーダ。
【請求項25】
コンピュータデバイスによって実行されるとき、前記コンピュータデバイスに請求項1から19のいずれか一項に記載の方法を実行させるプログラムコードを担持する非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本特許出願は、2019年4月19日に出願した米国特許仮出願第62/836,072号の優先権、2019年5月10日に出願した米国特許仮出願第62/845,938号の優先権、2019年10月2日に出願した米国特許仮出願第62/909,761号の優先権、および2019年10月2日に出願した米国特許仮出願第62/909,763号の優先権を主張する。上述の特許出願の開示は、参照によりそれらの全体が本明細書に組み込まれる。
【0002】
本開示の実施形態は、概して、ピクチャ処理の分野に関し、より詳細には、インター予測に関し、特に、切り替え可能な補間フィルタ(switchable interpolation filter)のパラメータのためのマージ手順などの、現在のブロックについての補間フィルタインデックスを導出するための方法および装置に関する。
【背景技術】
【0003】
ビデオコーディング(ビデオ符号化および復号)は、広範なデジタルビデオアプリケーション、たとえば、ブロードキャストデジタルTV、インターネットおよびモバイルネットワーク上のビデオ送信、ビデオチャットのようなリアルタイム会話アプリケーション、テレビ会議、DVDおよびブルーレイディスク、ビデオコンテンツ獲得および編集システム、ならびにセキュリティアプリケーションのカムコーダにおいて使用される。
【0004】
比較的短いビデオでさえも描くために必要とされるビデオデータの量はかなり多くなり得、それが、データが限られた帯域幅の容量を有する通信ネットワークを介してストリーミングされるかまたはそれ以外の方法で伝達されるべきであるときに困難をもたらし得る。したがって、ビデオデータは、概して、現代の通信ネットワークを介して伝達される前に圧縮される。メモリリソースが限られ得るので、ビデオが記憶デバイスに記憶されるとき、ビデオのサイズも問題となり得る。多くの場合、ビデオ圧縮デバイスは、送信または記憶の前にビデオデータをコーディングするためにソースにおいてソフトウェアおよび/またはハードウェアを使用し、それによって、デジタルビデオ画像を表現するために必要とされるデータの量を削減する。そして、圧縮されたデータが、ビデオデータを復号するビデオ解凍デバイスによって宛先において受信される。限られたネットワークリソースおよびより高いビデオ品質のますます増加する需要によって、ピクチャ品質をほとんどまたはまったく犠牲にせずに圧縮比を高める改善された圧縮および解凍技術が、望ましい。
【0005】
最近、半ピクセル(半ペル)位置のための切り替え可能な補間フィルタが、多目的ビデオコーディング(VVC: Versatile Video Coding)に導入された。半ペルルマ(luma)補間フィルタの切り替えは、動きベクトルの精度に応じて行われる。半ペルの動きベクトルの精度の場合、代替的な半ペル補間フィルタが、使用されることが可能であり、その代替的な半ペル補間フィルタは、どの補間フィルタが使用されるかを示す追加のシンタックス要素によって示され、したがって、シグナリングのオーバーヘッドが、増やされる。
【発明の概要】
【課題を解決するための手段】
【0006】
本出願の実施形態は、履歴に基づく動き情報(history-based motion information)候補リストが使用されるときに半ピクセル(半ペル)補間フィルタインデックスの継承が実現されることが可能であり、したがって、デフォルトの補間フィルタの代わりに専用の補間フィルタが選択され、それが、ひいては、予測信号の品質およびコーディングの効率を改善するように、履歴に基づく動き情報候補リストを構築するための装置および方法を提供することを目的とする。
【0007】
本出願の実施形態は、履歴に基づく動き情報候補リストが使用されるときに半ピクセル補間フィルタインデックスの継承が実現されることが可能であり、したがって、ビデオ信号の品質が改善され得るように、スキップ/マージモードでコーディングされる現在のブロックについてのインター予測のための装置および方法を提供することを目的とする。
【0008】
上述のおよびその他の目的は、独立請求項の主題により達成される。さらなる実装の形態は、従属請求項、明細書、および図面から明らかである。
【0009】
本発明の第1の態様によれば、履歴に基づく動き情報(HMI)候補リストを構築するための方法が、提供され、方法は、符号化装置または復号装置によって実行されることが可能であり、方法は、
履歴に基づく動き情報候補リストを取得するステップであって、HMIリストが、ブロックに先行する複数の先行ブロック(たとえば、N個の先行ブロック)の動き情報に関連する(またはそれを含む)N個の履歴に基づく動き情報候補Hkの順序付けられたリストであり、k=0, ... , N-1であり、Nが、0よりも大きい整数であり(たとえば、Nは、0よりも大きい整数であり、予め定義された数以下である(0<N<=5))、各々の履歴に基づく動き情報候補が、要素、すなわち、
i) 対応する先行ブロックの1つまたは複数の動きベクトルMV(1/16の分数(fractional)サンプル精度のルマ動きベクトルmvL0および/またはmvL1などであり、mvL0およびmvL1はL0およびL1参照ピクチャリストに対応する)、
ii) 対応する先行ブロックのMVに対応する1つまたは複数の参照ピクチャインデックス(参照ピクチャインデックスrefIdxL0および/またはrefIdxL1などであり、refIdxL0およびrefIdxL1はL0およびL1参照ピクチャリストに対応する)、ならびに
iii) 補間フィルタ(IF)インデックス(対応する先行ブロックのIFインデックスまたは対応する先行ブロックに関連するIFインデックスなど)
を含む対応する先行ブロックの動き情報を含む、ステップと、
ブロックの動き情報に基づいてHMIリストを更新するステップであって、ブロックの動き情報が、要素、すなわち、
i) ブロックの1つまたは複数の動きベクトルMV(1/16の分数サンプル精度のルマ動きベクトルmvL0および/またはmvL1など)、
ii) ブロックのMVに対応する1つまたは複数の参照ピクチャインデックス(参照インデックスrefIdxL0および/またはrefIdxL1など)、ならびに
iii) 補間フィルタインデックス(ブロックのIFインデックスまたはブロックに関連するIFインデックスなど)
を含む、ステップと、
を含む。
【0010】
例において、補間フィルタ(IF)インデックスは、分数サンプル補間フィルタ(IF)インデックスを指すことがあり、特に、IFインデックスは、半ピクセル(半ペル)補間フィルタインデックスまたは半サンプル補間フィルタインデックス(hpelIfIdx)を指す。用語「半ピクセル補間フィルタ」および「半サンプル補間フィルタ」は、本開示において交換可能なように使用され得る。半サンプル補間フィルタインデックスは、対応するブロックの動きベクトルのうちの少なくとも1つが半ピクセル位置を指す場合に半ピクセル値を補間するために使用される半ピクセル補間フィルタを示す。たとえば、履歴に基づく動き情報候補の1つまたは複数の動きベクトル(MV)(要素i)が半ピクセル位置を指す少なくとも1つのMVを有する場合、履歴に基づく動き情報候補の補間フィルタ(IF)インデックス(要素iii)は、半ピクセル値を補間するために使用される半ピクセル補間フィルタを示す(つまり、補間フィルタインデックス(要素iii)は、半ペルMVを含むHMI候補に関してのみ影響を与える)。履歴に基づく動き情報候補の1つまたは複数の動きベクトル(MV)(要素i)が半ピクセル位置を指すMVを持たない場合、履歴に基づく動き情報候補の補間フィルタ(IF)インデックス(要素iii)は、無意味になる(つまり、このIFインデックスは、非半ペルMVにいかなる影響も与えず、非半ペルMVに関するIFインデックスの値は、いかなる意味も持たない。その値は、任意の値に、たとえば、0/FALSEとして設定され得る)。この場合、補間フィルタ(IF)インデックス(要素iii)は、後のステップにおいて使用されないデフォルト値を割り振られる。同じことが、ブロックの動き情報に当てはまる。言い換えると、ブロックの動き情報の補間フィルタインデックス(要素iii)は、ブロックのMVのうちの少なくとも1つが半ピクセル位置を指すときに意味を持つ。MVのいずれも半ピクセル位置を指さない場合、動き情報の補間フィルタインデックス(要素iii)は、後のステップにおいて使用されないデフォルト値を割り振られる。1つの例示的な実装において、IFインデックスは、たとえIFインデックスが一部の場合に無意味であるとしても、MVの分数部分と無関係にHMIリストに常に記憶される。HMIリストは、設計の単純化に対して、このようにして実装され得る。対応するブロックの両方のMVが半ピクセル位置を指していない場合、IFインデックスに割り振られた値が復号結果にいかなる影響も与えないことは理解され得る。
【0011】
別の例示的な実装において、補間フィルタ(IF)インデックスは、補間フィルタ(IF)の組のインデックスによって置き換えられることが可能であり、IFの組のインデックスは、IFの複数の組の中の切り替え可能なIFの組を示す。例において、それぞれのIFの組は、それぞれの分数位置のための補間フィルタを含む。一方、同じ分数位置のためのIFは、いくつかのIFの組の間で等しいことが可能である。たとえば、IFの複数の組の間でいくつかの分数位置のための同じフィルタおよびいくつかの分数位置のための異なるフィルタが存在し、特に、それぞれの分数位置のためのIFはIFの組のインデックスに従って切り替えられ得る。場合によっては、補間フィルタの2つの組の間の切り替えは、2つの補間フィルタの間の切り替えと理解され得る。
【0012】
1つの例示的な実装において、半ピクセル補間フィルタインデックスは、1組の半ピクセル補間フィルタの中の半ピクセル補間フィルタを示し、半ピクセル補間フィルタは、1つまたは複数の動きベクトルのうちの少なくとも1つが半ピクセル位置を指すときのみ半ピクセル値を補間するために使用される。L0および/またはL1動きベクトルが半ピクセル(半ペル)位置を指す場合、補間フィルタが、半ピクセル補間フィルタインデックスに従って選択され、対応する予測リスト(予測方向)(L0および/またはL1)に関する動き補償中にサンプルの補間のために使用される。
【0013】
ブロックおよびN個の先行ブロックがフレームのスライス内にあり得るかまたはフレーム内にあり得ることは、留意され得る。例において、履歴に基づく動き情報候補リスト(テーブル)は、新しいスライスに行き当たるとき、空にされる。新しいスライスに行き当たるとき、構築プロセスが呼び出される。別の例において、HMIリスト/テーブルは、スライス内のそれぞれの新しいCTUの行においてリセットされ得る。
【0014】
N個の先行ブロックが1つまたは複数の先行ブロックであり得ることは、理解され得る。先行ブロックは、符号化または復号順で現在のブロックより前の既に符号化されたまたは復号されたブロックを指す。例において、ブロックPは、ブロックPの前の1つまたは複数のコーディングされた/復号されたブロックを含むHMVPテーブルを使用し得る。HMVPテーブルは、ブロックPの動き情報の導出後に更新される。HMVPテーブルが更新された後、ブロックPに続くブロックQが、更新されたHMVPテーブルを使用し得る。ブロックQは、復号または符号化順でブロックPの後に符号化されるかまたは復号される。
【0015】
HMVPリストを更新した後、更新されたHMVPリスト内にM個の履歴に基づく動き情報候補が存在することが可能であり、Mが予め定義された数(5など)以下であり、M>=Nであることは、理解され得る。
【0016】
HMIリストのインデックスが1から始まる場合、HMIリストがブロックに先行する複数の先行ブロックの動き情報に関連するN個の履歴に基づく動き情報候補Hkの順序付けられたリストであり、k=1, ... , Nであることは、さらに理解され得る。
【0017】
したがって、履歴に基づく動き情報候補リスト内で補間フィルタインデックスの継承を可能にする改善された方法が、提供される。特に、先行ブロックの補間フィルタ(IF)インデックスは、履歴に基づく動き情報候補リスト内の対応する履歴に基づく動き情報候補に記憶される。履歴に基づく動き情報候補リストがマージまたはスキップモードでコーディングされるブロックのインター予測のために直接的または間接的に使用されるとき、補間フィルタ(IF)インデックスは、別個のシンタックス要素を使用することなく対応する動き情報候補から借用され得る。履歴に基づく動き情報候補リストを通じてIFインデックスを伝搬することは、ブロックのために(予め定義された補間フィルタを使用する代わりに)適切な補間フィルタが使用されることを可能にし、これは、コーディングされた信号の品質を保証する。結果として、本明細書において提示されるテクノロジーは、コーディングの効率を改善し、ひいては、ビデオコーディング方法の圧縮性能全体を改善するという利点を提供する。
【0018】
本開示において使用される用語「ブロック」、「符号化ブロック(coding block)」、または「画像ブロック」は、変換ユニット(TU: transform unit)、予測ユニット(PU: prediction unit)、コーディングユニット(CU: coding unit)などを含み得ることが留意される。多目的ビデオコーディング(VVC)において、変換ユニットおよび符号化ユニットは、TUタイリング(tiling)または下位ブロック変換(SBT: sub block transform)が使用されるとき、いくつかのシナリオを除いて、たいてい位置を揃えられる。用語「ブロック」、「画像ブロック」、「符号化ブロック」、および「ピクチャブロック」が本明細書において交換可能なように使用され得ることは、理解され得る。用語「サンプル」および「ピクセル」も、本開示において交換可能なように使用され得る。用語「予測サンプル値」および「予測ピクセル値」は、本開示において交換可能なように使用され得る。用語「サンプル位置」および「ピクセル位置」は、本開示において交換可能なように使用され得る。
【0019】
用語「履歴に基づく動き情報候補リスト」、「HMIリスト」、「HMVPリスト」、「HMVPテーブル」、および「HMVP LUT」が、本開示において交換可能なように使用され得ることをさらに理解されたい。
【0020】
HMVPリストが、1つまたは複数のコーディングされた/復号された先行ブロックの動き情報を使用して構築されることを理解されたい。HMVPリストは、近隣のブロックからの(しかし、通常の空間的なマージ候補のように必ずしも隣接するブロックからとは限らない)動き情報を記憶するために使用される。HMVPの発想は、ブロックに空間的に近いが、ブロックに必ずしも隣接していない先行ブロック(何らかの空間的な近隣からのブロック)からの動き情報を使用することである。
【0021】
第1の態様自体による方法の可能な実装の形態において、HMIリストを更新するステップは、HMIリストの各々の履歴に基づく動き情報候補の以下の要素、すなわち、
i) 1つまたは複数の動きベクトルMV、および
ii) MVに対応する1つまたは複数の参照ピクチャインデックス
のうちの少なくとも1つがブロックの動き情報の対応する要素と異なるならば、HMIリストにブロックの動き情報を履歴に基づく動き情報候補Hkとして追加することであって、k = Nである、追加することを含む。
【0022】
HMIリストのインデックスが1から始まる場合、追加することは、HMIリストにブロックの動き情報を含む履歴に基づく動き情報候補Hkを追加することであって、k = N+1である、追加することを指し得ることが理解され得る。
【0023】
ブロックの動き情報をHMIリストの最後の位置の履歴に基づく動き情報候補として追加することが、可能にされる。
【0024】
第1の態様自体による方法の可能な実装の形態において、HMIリストを更新するステップは、
比較の結果として、HMIリストの履歴に基づく動き情報候補の以下の要素、すなわち、
i) 1つまたは複数の動きベクトルMV、および
ii) MVに対応する1つまたは複数の参照ピクチャインデックス
がブロックの動き情報の対応する要素と同じであるならば、HMIリストから履歴に基づく動き情報候補を削除し、HMIリストにブロックの動き情報を履歴に基づく動き情報候補Hkとして追加することを含み、k = N-1である。
【0025】
HMIリストのインデックスが1から始まる場合、追加することが、HMIリストにブロックの動き情報を履歴に基づく動き情報候補Hkとして追加することであって、k = Nである、追加することを指し得ることは理解され得る。
【0026】
ブロックの動き情報は、HMIリストの最後の位置の履歴に基づく動き情報候補として追加され得る。
【0027】
第1の態様のいずれかの上述の実装または第1の態様自体による方法の可能な実装の形態において、HMIリストを更新するステップは、
Nが予め定義された数に等しいならば、HMIリストからk = 0である履歴に基づく動き情報候補Hkを削除し、HMIリストにブロックの動き情報をk = N-1である履歴に基づく動き情報候補Hkとして追加するステップを含む。
【0028】
HMIリストのインデックスが1から始まる場合、削除することが、HMIリストから履歴に基づく動き情報候補Hkを削除することであって、k = 1である、削除することを指すことがあり、追加することが、HMIリストにブロックの動き情報を履歴に基づく動き情報候補Hkとして追加することであって、k = Nである、追加することを指すことは理解され得る。
【0029】
HMIリストの第1の位置の履歴に基づく動き情報候補を削除し、ブロックの動き情報をHMIリストの最後の位置の履歴に基づく動き情報候補として追加することが、可能にされる。
【0030】
第1の態様のいずれかの上述の実装または第1の態様自体による方法の可能な実装の形態において、方法は、
任意の履歴に基づく動き情報候補の動きベクトルがブロックの対応する動きベクトルと同じであるかどうかを比較するステップと、
任意の履歴に基づく動き情報候補の参照ピクチャインデックスがブロックの対応する参照ピクチャインデックスと同じであるかどうかを比較するステップとをさらに含む。
【0031】
代替的な設計において、方法は、
各々の履歴に基づく動き情報候補(すなわち、HMVP候補)の動きベクトルのうちの少なくとも1つがブロックの対応する動きベクトルと異なるかどうかを比較するステップと、
各々のHMVP候補の参照ピクチャインデックスのうちの少なくとも1つがブロックの対応する参照ピクチャインデックスと異なるかどうかを比較するステップとをさらに含む。
【0032】
したがって、補間フィルタインデックスを比較することなくHMVPテーブルを更新しながらプルーニング(pruning)プロセスにおいてMVおよび参照ピクチャインデックスのみを使用することが、可能にされる。したがって、複雑さとHMVP候補の多様性との間の良好なトレードオフが、達成され得る。特に、MVおよび参照ピクチャインデックスのみに基づく比較を可能にすることは、追加的な計算動作を避け、計算の複雑さを減らすことができる。各比較動作は、HMVPテーブル更新プロセスおよびマージ候補構築プロセス中の追加的な計算を招く。したがって、比較動作が削減され得るかまたは除去され得る場合、計算の複雑さが、削減されることが可能であり、それによって、コーディングの効率を高める。さらに、MVおよび参照ピクチャインデックスのみに基づく比較を可能にすることは、HMVPレコードの多様性を保つことができる。同じMVおよび参照インデックスを有し、それらのIFインデックスのみが異なる2つのHMVPレコードを有することは、これら2つのレコードが十分に異なっていないので非効率的である。したがって、HMVPテーブル更新プロセス中に、これらの2つのHMVPレコードが同じであるとみなすことが妥当である。この場合、既存のレコードとIFインデックスのみが異なる新しいレコードは、HMVPテーブルに追加されない。結果として、その他のレコードと「十分に異なって」いる(異なるMVまたは参照インデックスを有する)「古い」/既存のレコードが、維持される。言い換えると、新しいレコードがHMVPテーブルに追加されるために、この新しいレコードは、既存のレコードとビット単位で異なるだけではないべきであり、この新しいレコードは「大幅に異なって」いる必要がある。コーディングの効率の観点から見ると、IFインデックスのみが異なる2つのレコードではなく異なるMVまたは参照インデックスを有する2つのレコードをHMVPテーブル内に有する方が、より効率的である。
【0033】
第1の態様のいずれかの上述の実装または第1の態様自体による方法の可能な実装の形態において、予め定義された数は、5または6である。
【0034】
第1の態様のいずれかの上述の実装または第1の態様自体による方法の可能な実装の形態において、履歴に基づく動き情報候補に含まれる半サンプル補間フィルタインデックスは、1組の半サンプル補間フィルタの中の半サンプル補間フィルタを示し、半サンプル補間フィルタは、履歴に基づく動き情報候補の1つまたは複数のMVのうちの少なくとも1つが半サンプル位置を指すときのみ半サンプル値を補間するために適用される。
【0035】
従来技術においては、(デフォルトのIFに対応する)デフォルトのIFインデックスが、HMVPテーブルから取得されたマージ候補のために常に使用された。本発明によれば、IFインデックスが、HMVPテーブルを通じて伝搬され、したがって、1組の補間フィルタのうちの1つが、IFインデックスに従って使用されることが可能であり、例においては、2つの補間フィルタ(デフォルトの補間フィルタおよび代替的な補間フィルタ)のうちの1つが、IFインデックスに従って使用されることが可能である。したがって、専用の補間フィルタが、デフォルトの補間フィルタの代わりに選択され、それが、ひいては、参照の信頼性を高め、したがって、予測信号の品質およびコーディングの効率を改善する。
【0036】
用語「代替的な半ピクセル補間フィルタ」、「切り替え可能な補間フィルタ(SIF)」、または「半ピクセル補間フィルタ」は、本開示において交換可能なように使用され得ることが留意される。
【0037】
適切な補間フィルタ(IF)が、内容に応じて選択され得る。くっきりしたエッジを有する領域に関しては、通常のDCTに基づくIFが使用され得る。平滑な領域に関しては(またはくっきりしたエッジを維持することが必要とされない場合)、代替的な6タップIF(ガウスフィルタ)が使用され得る。マージモードに関して、このIFインデックスは、対応する動き情報候補から借用される。マージモードでコーディングされるブロックに関して、動き情報候補がHMVPテーブルから取得されるときは、代替的なIFが使用され得る。HMVPテーブルを通じてIFインデックスを伝搬することは、ブロックのための適切なIFの使用を可能にする。これは、コーディングの効率を高めるという利点をもたらす。提案されるメカニズムがなければ、(8タップのDCTに基づくIFに対応する)デフォルトのIFインデックスが、HMVPマージ候補のために常に使用され、現在のブロックの内容の詳細(くっきりしたエッジが維持される必要があるか否か)は、考慮され得ない。
【0038】
本発明の第2の態様によれば、ビデオ信号のフレーム内のブロックについてのインター予測のための方法が、提供され、方法は、
履歴に基づく動き情報候補(HMI)リストを構築するステップであって、HMIリストが、ブロックに先行する複数の先行ブロック(たとえば、N個の先行ブロック)の動き情報に関連する(またはそれを含む)N個の履歴に基づく動き情報候補Hkの順序付けられたリストであり、k=0, ... , N-1であり、Nが、0よりも大きい整数であり、各々の履歴に基づく動き情報候補が、先行ブロックに対応し、要素、すなわち、
i) 先行ブロックの1つまたは複数の動きベクトルMV、
ii) 先行ブロックのMVに対応する1つまたは複数の参照ピクチャインデックス、および
iii) 補間フィルタインデックス(先行ブロックの補間フィルタインデックスまたは先行ブロックに関連する補間フィルタインデックスなど)
を含む、ステップと、
HMIリストからの1つまたは複数の履歴に基づく動き情報候補をブロックについての動き情報候補リストに追加するステップと、
動き情報候補リストに基づいてブロックについての動き情報を導出するステップと、
を含む。
【0039】
動き情報候補リストは、マージ候補リストであり得る。
【0040】
代替的なまたは追加的な設計において、本発明の第2の態様によれば、ビデオ信号のフレーム内のブロックについてのインター予測のための方法が、提供され、方法は、
履歴に基づく動き情報候補リストを構築するステップであって、HMIリストが、ブロックに先行する複数の先行ブロック(たとえば、N個の先行ブロック)の動き情報に関連する(またはそれを含む)N個の履歴に基づく動き情報候補Hkの順序付けられたリストであり、k=0, ... , N-1であり、Nが、0よりも大きい整数であり、少なくとも1つの履歴に基づく動き情報候補が、
i) 1つまたは複数の動きベクトル(MV)であって、MVのうちの少なくとも1つが半ピクセル位置を指す、1つまたは複数の動きベクトル(MV)、
ii) 1つまたは複数のMVに対応する1つまたは複数の参照ピクチャインデックス、および
iii) 先行ブロックの補間フィルタインデックス
を含む、対応する先行ブロックについての要素を含む、ステップと、
HMIリストからの1つまたは複数の履歴に基づく動き情報候補をブロックについての動き情報候補リストに追加するステップと、
動き情報候補リストに基づいてブロックについての動き情報を導出するステップとを含む。
【0041】
動き情報候補リストは、マージ候補リストであり得る。
【0042】
履歴に基づく動き情報候補がマージ候補リストに履歴に基づくマージ候補として追加されることは、理解され得る。
【0043】
例において、HMIリストは、Nの長さを有し、Nは、5または6である。
【0044】
したがって、履歴に基づく動き情報候補リスト内で補間フィルタインデックスの継承を可能にする改善された方法が、提供される。特に、先行ブロックの補間フィルタ(IF)インデックスは、履歴に基づく動き情報候補リスト内の対応する履歴に基づく動き情報候補に記憶される。履歴に基づく動き情報候補リストがマージまたはスキップモードでコーディングされるブロックのインター予測のために直接的または間接的に使用されるとき、補間フィルタ(IF)インデックスは、別個のシンタックス要素を使用することなく対応する動き情報候補から借用され得る。履歴に基づく動き情報候補リストを通じてIFインデックスを伝搬することは、ブロックのために(予め定義された補間フィルタを使用する代わりに)適切な補間フィルタが使用されることを可能にし、これは、コーディングされた信号の品質を保証する。結果として、本明細書において提示されるテクノロジーは、コーディングの効率を改善し、ひいては、ビデオコーディング方法の圧縮性能全体を改善するという利点を提供する。
【0045】
第2の態様自体による方法の可能な実装の形態においては、導出された動き情報の1つまたは複数のMVのうちの少なくとも1つが半サンプル位置を指すときのみ、半サンプル補間フィルタが適用され、半サンプル補間フィルタは、導出された動き情報に含まれる半サンプル補間フィルタインデックスによって示される。
【0046】
第2の態様のいずれかの上述の実装または第2の態様自体による方法の可能な実装の形態において、履歴に基づく動き情報候補に含まれる半サンプル補間フィルタインデックスは、1組の半サンプル補間フィルタの中の半サンプル補間フィルタを示し、半サンプル補間フィルタは、履歴に基づく動き情報候補の1つまたは複数のMVのうちの少なくとも1つが半サンプル位置を指すときのみ半サンプル値を補間するために適用される。
【0047】
第2の態様のいずれかの上述の実装または第2の態様自体による方法の可能な実装の形態において、履歴に基づく動き情報候補は、1つまたは複数の双予測(bi-prediction)重みインデックスをさらに含む。双予測重みインデックスbcw_idxという用語は、一般化双予測重みインデックス(generalized bi-prediction weight index)GBIdxおよび/またはCUレベル重み付き双予測(BCW: Bi-prediction with CU-level Weights)インデックスとも呼ばれる。代替的に、このインデックスは、単に双予測重みインデックスとして言及するBWIと省略され得る。
【0048】
第2の態様のいずれかの上述の実装または第2の態様自体による方法の可能な実装の形態において、
HMIリストの各々の履歴に基づく動き情報候補の以下の要素、すなわち、
i) 1つまたは複数の動きベクトルMV、および
ii) MVに対応する1つまたは複数の参照ピクチャインデックス
のうちの少なくとも1つがブロックの動き情報の対応する要素と異なるならば、HMIリストにブロックの動き情報を履歴に基づく動き情報候補Hkとして追加することであって、k = Nである、追加することをさらに含む。
【0049】
第2の態様のいずれかの上述の実装または第2の態様自体による方法の可能な実装の形態において、
HMIリストの履歴に基づく動き情報候補の以下の要素、すなわち、
i) 1つまたは複数の動きベクトルMV、および
ii) MVに対応する1つまたは複数の参照ピクチャインデックス
がブロックの動き情報の対応する要素と同じであるならば、HMIリストから履歴に基づく動き情報候補を削除し、HMIリストにブロックの動き情報を履歴に基づく動き情報候補Hkとして追加することであって、k = N-1である、追加することをさらに含む。
【0050】
第2の態様のいずれかの上述の実装または第2の態様自体による方法の可能な実装の形態において、
Nが予め定義された数に等しいならば、HMIリストからk = 0である履歴に基づく動き情報候補Hkを削除し、HMIリストにブロックの動き情報をk = N-1である履歴に基づく動き情報候補Hkとして追加するステップをさらに含む。例において、予め定義された数は、5である。
【0051】
第2の態様のいずれかの上述の実装または第2の態様自体による方法の可能な実装の形態において、方法は、
任意の履歴に基づく動き情報候補の対応する動きベクトルがブロックの動きベクトルと同じであるかどうかを比較するステップと、
任意の履歴に基づく動き情報候補の対応する参照ピクチャインデックスがブロックの参照ピクチャインデックスと同じであるかどうかを比較するステップとをさらに含む。
【0052】
代替的な設計において、比較するステップは、
各々の履歴に基づく動き情報候補の動きベクトルのうちの少なくとも1つがブロックの対応する動きベクトルと異なるかどうかを比較することと、
各々のHMVP候補の参照ピクチャインデックスのうちの少なくとも1つがブロックの対応する参照ピクチャインデックスと異なるかどうかを比較するステップとを含む。
【0053】
第2の態様のいずれかの上述の実装または第2の態様自体による方法の可能な実装の形態において、動き情報候補リストは、マージモードまたはスキップモードについて使用される。言い換えると、現在のブロックは、マージモードまたはスキップモードでコーディングされる。
【0054】
第2の態様のいずれかの上述の実装または第2の態様自体による方法の可能な実装の形態において、動き情報候補リストに基づいてブロックについての動き情報を導出するステップは、
候補インデックスによって参照される動き情報を動き情報候補リストから現在のブロックの動き情報として導出することを含み、候補インデックスは、ビットストリームから解析されるかまたは導出される。
【0055】
第2の態様のいずれかの上述の実装または第2の態様自体による方法の可能な実装の形態において、
導出された動き情報に含まれる1つまたは複数の動きベクトルMVのうちの少なくとも1つが半ピクセル位置を指すとき、MVによって指される参照ピクチャのピクセル値に半ピクセル補間フィルタを適用することによってブロックの予測サンプル値を取得するステップであって、半ピクセル補間フィルタが、導出された動き情報に含まれる補間フィルタインデックスによって示される、ステップと、
導出された動き情報に含まれる動きベクトルMVが半ピクセル位置を指さないとき、MVによって指される参照ピクチャのピクセル値にデフォルトの補間フィルタを適用することによってブロックの予測サンプル値を取得するステップとをさらに含む。
【0056】
請求項、説明、および図において定義される符号化方法および復号方法は、それぞれ、符号化装置および復号装置によってそれぞれ実行され得る。
【0057】
本発明の第3の態様によれば、構築のための装置 履歴に基づく動き情報候補リストが、提供され、装置は、
履歴に基づく動き情報候補リストを取得するように構成された履歴に基づく動き情報候補リスト取得ユニットであって、HMIリストが、ブロックに先行する複数のブロックの動き情報に関連するN個の履歴に基づく動き情報候補Hkの順序付けられたリストであり、k=0, ... , N-1であり、Nが、0よりも大きい整数であり、各々の履歴に基づく動き情報候補が、要素、すなわち、
i) 1つまたは複数の動きベクトルMV、
ii) MVに対応する1つまたは複数の参照ピクチャインデックス、および
iii) 補間フィルタインデックス
を含む、履歴に基づく動き情報候補リスト取得ユニットと、
ブロックの動き情報に基づいてHMIリストを更新するように構成された履歴に基づく動き情報候補リスト更新ユニットであって、ブロックの動き情報が、要素、すなわち、
i) 1つまたは複数の動きベクトルMV、
ii) MVに対応する1つまたは複数の参照ピクチャインデックス、および
iii) 補間フィルタインデックス
を含む、履歴に基づく動き情報候補リスト更新ユニットとを含む。
【0058】
本発明の第1の態様による方法は、本発明の第3の態様による装置によって実行され得る。本発明の第3の態様による装置のさらなる特徴および実装の形態は、本発明の第1の態様による装置の特徴および実装の形態に対応する。
【0059】
本発明の第4の態様によれば、ブロックについてのインター予測のための装置が、提供され、装置は、
履歴に基づく動き情報候補リストを構築するように構成されたリスト管理ユニットであって、HMIリストが、ブロックに先行する複数のブロックの動き情報に関連するN個の履歴に基づく動き情報候補Hkの順序付けられたリストであり、k=0, ... , N-1であり、Nが、0よりも大きい整数であり、各々の履歴に基づく動き情報候補が、要素、すなわち、
i) 1つまたは複数の動きベクトルMV、
ii) MVに対応する1つまたは複数の参照ピクチャインデックス、および
iii) 補間フィルタインデックス
を含み、リスト管理ユニットであって、HMIリストからの1つまたは複数の履歴に基づく動き情報候補をブロックについての動き情報候補リストに追加するようにさらに構成される、リスト管理ユニットと、
動き情報候補リストに基づいてブロックについての動き情報を導出するように構成された動き情報導出ユニットと、
を含む。
【0060】
本発明の第2の態様による方法は、本発明の第4の態様による装置によって実行され得る。本発明の第4の態様による装置のさらなる特徴および実装の形態は、本発明の第2の態様による装置の特徴および実装の形態に対応する。
【0061】
第5の態様によれば、本発明は、第1のもしくは第2の態様自体またはそれらの実装の形態による方法を実行するための処理回路を含むエンコーダ(20)に関する。
【0062】
第6の態様によれば、本発明は、第1のもしくは第2の態様自体またはそれらの実装の形態による方法を実行するための処理回路を含むデコーダ(30)に関する。
【0063】
第7の態様によれば、本発明は、デコーダに関する。デコーダは、
1つまたは複数のプロセッサと、
プロセッサに結合され、プロセッサによって実行するためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体であって、プログラミングが、プロセッサによって実行されるときに、第1のもしくは第2の態様自体またはそれらの実装の形態による方法を実行するようにデコーダを構成する、非一時的コンピュータ可読記憶媒体とを含む。
【0064】
第8の態様によれば、本発明は、エンコーダに関する。エンコーダは、
1つまたは複数のプロセッサと、
プロセッサに結合され、プロセッサによって実行するためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体であって、プログラミングが、プロセッサによって実行されるときに、第1のもしくは第2の態様自体またはそれらの実装の形態による方法を実行するようにエンコーダを構成する、非一時的コンピュータ可読記憶媒体とを含む。
【0065】
第9の態様によれば、本発明は、上述の態様のいずれか1つの方法によって符号化された/復号されたビットストリームを含む非一時的記憶媒体に関する。
【0066】
ビデオストリームを符号化するためまたは復号するための装置は、プロセッサおよびメモリを含み得る。メモリは、上述の態様のいずれか1つによる方法をプロセッサに実行させる命令を記憶する。
【0067】
本明細書において開示される符号化または復号方法の各々に関して、コンピュータ可読記憶媒体が、提案され、記憶媒体は、実行されるときに1つまたは複数のプロセッサにビデオデータを符号化または復号させる命令をその上に記憶する。命令は、上述の態様のいずれか1つによる方法を1つまたは複数のプロセッサに実行させる。
【0068】
さらに、本明細書において開示される符号化または復号方法の各々に関して、コンピュータプログラム製品が、提案される。コンピュータプログラム製品は、上述の態様のいずれか1つによる方法を実行するためのプログラムコードを含む。
【0069】
1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。その他の特徴、目的、および利点は、明細書、図面、および特許請求の範囲から明らかになるであろう。
【0070】
以下で、本発明の実施形態が、添付の図および図面を参照してより詳細に説明される。
【図面の簡単な説明】
【0071】
図1A】本発明の実施形態を実装するように構成されたビデオコーディングシステムの例を示すブロック図である。
図1B】本発明の実施形態を実装するように構成されたビデオコーディングシステムの別の例を示すブロック図である。
図2】本発明の実施形態を実装するように構成されたビデオエンコーダの例を示すブロック図である。
図3】本発明の実施形態を実装するように構成されたビデオデコーダの例示的な構造を示すブロック図である。
図4】符号化装置または復号装置の例を示すブロック図である。
図5】符号化装置または復号装置の別の例を示すブロック図である。
図6】現在のブロックおよび現在のブロックの空間的な近隣のブロックの例を概略的に示す図である。
図7】現在のブロックおよび上の近隣のブロックを概略的に示す図である。
図8】本開示の実施形態による方法の流れ図である。
図9】コーディングツリーブロック(CTB: coding tree block)またはコーディングツリーユニット(CTU: coding tree unit)内の(符号化ユニットまたは符号化ブロックなどの)現在のブロックについての補間フィルタインデックスを導出するための方法を示すブロック図である。
図10】本開示の実施形態によるHMVPリストの構築の例を概略的に示す図である。
図11】本開示の実施形態によるHMVPリストの構築の別の例を概略的に示す図である。
図12】本開示の実施形態によるHMVPリストおよびその横断順の例を示す図である。
図13A】HMVPリスト構築方法の例を示す流れ図である。
図13B】HMVPリスト構築方法の別の例を示す流れ図である。
図14】ビデオ信号のフレーム内のブロックについてのインター予測のための方法の例を示す流れ図である。
図15】HMIリスト更新方法の例を示す流れ図である。
図16】本開示の実施形態による装置のブロック図である。
図17】本開示の実施形態による別の装置のブロック図である。
図18】コンテンツ配信サービスを実現するコンテンツ供給システムの例示的な構造を示すブロック図である。
図19】端末デバイスの例の構造を示すブロック図である。
【発明を実施するための形態】
【0072】
以下で、同一の参照符号は、別途明記されない場合、同一のまたは少なくとも機能的に等価な特徴を指す。
【0073】
以下の説明においては、本開示の一部を形成し、本発明の実施形態の特定の態様または本発明の実施形態が使用され得る特定の態様を例として示す添付の図面が参照される。本発明の実施形態は、その他の態様において使用され、図面に示されない構造的または論理的変更を含み得ることが理解される。したがって、以下の詳細な説明は、限定的意味に理解されるべきでなく、本発明の範囲は、添付の特許請求の範囲によって定義される。
【0074】
たとえば、説明される方法に関連する開示は、方法を実行するように構成された対応するデバイスまたはシステムにも当てはまることが可能であり、その逆も可能であることが理解される。たとえば、1つまたは複数の特定の方法のステップが説明される場合、対応するデバイスは、説明される1つまたは複数の方法のステップを実行するための1つまたは複数のユニット、たとえば、機能ユニット(たとえば、1つもしくは複数のステップを実行する1つのユニット、または複数のステップのうちの1つもしくは複数をそれぞれが実行する複数のユニット)を、たとえそのような1つまたは複数のユニットが明示的に説明されないかまたは図に示されないとしても含み得る。一方、たとえば、特定の装置が1つまたは複数のユニット、たとえば、機能ユニットに基づいて説明される場合、対応する方法は、1つまたは複数のユニットの機能を実行するための1つのステップ(たとえば、1つもしくは複数のユニットの機能を実行する1つのステップ、または複数のユニットのうちの1つもしくは複数の機能をそれぞれが実行する複数のステップ)を、たとえそのような1つまたは複数のステップが明示的に説明されないかまたは図に示されないとしても含み得る。さらに、本明細書において説明される様々な例示的な実施形態および/または態様の特徴は、そうでないことが明記されない限り互いに組み合わされ得ることが理解される。
【0075】
ビデオコーディングは、概して、ビデオまたはビデオシーケンスを形成するピクチャのシーケンスの処理を指す。用語「ピクチャ」の代わりに、用語「フレーム」または「画像」が、ビデオコーディングの分野において同義語として使用され得る。ビデオコーディング(または概してコーディング)は、2つの部分、ビデオ符号化およびビデオ復号を含む。ビデオ符号化は、ソース側で実行され、概して、(より効率的な記憶および/または送信のために)ビデオピクチャを表現するために必要とされるデータの量を減らすために元のビデオピクチャを(たとえば、圧縮によって)処理することを含む。ビデオ復号は、宛先側で実行され、概して、ビデオピクチャを再構築するためにエンコーダと比べて逆の処理を含む。ビデオピクチャ(または概してピクチャ)の「コーディング」に言及する実施形態は、ビデオピクチャまたはそれぞれのビデオシーケンスの「符号化」または「復号」に関すると理解される。符号化部分と復号部分との組み合わせは、コーデック(コーディングおよびデコーディング)とも呼ばれる。
【0076】
可逆ビデオコーディングの場合、(記憶または送信中に送信損失またはその他のデータ損失がないと仮定して)元のビデオピクチャが再構築されることが可能であり、つまり、再構築されたビデオピクチャは元のビデオピクチャと同じ品質を有する。不可逆ビデオコーディングの場合、ビデオピクチャを表現するデータの量を減らすために、たとえば、量子化によるさらなる圧縮が実行され、これは、デコーダにおいて完全に再構築され得ず、つまり、再構築されたビデオピクチャの品質は、元のビデオピクチャの品質に比べてより低いまたはより悪い。
【0077】
いくつかのビデオコーディング規格は、「不可逆ハイブリッドビデオコーデック」のグループに属する(つまり、サンプル領域(sample domain)における空間および時間予測と変換領域(transform domain)において量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各ピクチャは、概して、1組の重なり合わないブロックに区分けされ、コーディングは、概して、ブロックレベルで実行される。言い換えると、エンコーダにおいて、ビデオは、概して、たとえば、空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を使用して予測ブロック(prediction block)を生成し、現在のブロック(現在処理されている/処理されるブロック)から予測ブロックを差し引いて残差ブロックを取得し、残差ブロックを変換し、変換領域において残差ブロックを量子化して送信されるデータの量を削減する(圧縮)ことによってブロック(ビデオブロック)レベルで処理され、つまり、符号化され、一方、デコーダにおいては、表現するために現在のブロックを再構築するために、エンコーダと比べて逆の処理が、符号化されたまたは圧縮されたブロックに適用される。さらに、エンコーダは、後続のブロックを処理する、つまり、コーディングするために両方が同一の予測(たとえば、イントラおよびインター予測)ならびに/または再構築を生成するようにデコーダの処理ループを複製する。
【0078】
以下で、ビデオコーディングシステム10、ビデオエンコーダ20およびビデオデコーダ30の実施形態が、図1から図3に基づいて説明される。
【0079】
図1Aは、本出願の技術を利用し得る例示的なコーディングシステム10、たとえば、ビデオコーディングシステム10(または短くコーディングシステム10)を示す概略的なブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(または短くエンコーダ20)およびビデオデコーダ30(または短くデコーダ30)は、本出願において説明される様々な例による技術を実行するように構成され得るデバイスの例を示す。
【0080】
図1Aに示されるように、コーディングシステム10は、符号化されたピクチャデータ13を復号するために、たとえば、宛先デバイス14に符号化されたピクチャデータ21を提供するように構成されたソースデバイス12を含む。
【0081】
ソースデバイス12は、エンコーダ20を含み、追加的に、つまり、任意選択で、ピクチャソース16、プリプロセッサ(または前処理ユニット)18、たとえば、ピクチャプリプロセッサ18、および通信インターフェースまたは通信ユニット22を含み得る。
【0082】
ピクチャソース16は、任意の種類のピクチャ撮影デバイス、たとえば、実世界のピクチャを撮影するためのカメラ、ならびに/または任意の種類のピクチャ生成デバイス、たとえば、コンピュータによってアニメーションされるピクチャを生成するためのコンピュータグラフィックスプロセッサ、または実世界のピクチャ、コンピュータによって生成されたピクチャ(たとえば、画面コンテンツ(screen content)、仮想現実(VR)ピクチャ)、および/もしくはそれらの任意の組み合わせ(たとえば、拡張現実(AR)ピクチャ)を取得および/もしくは提供するための任意の種類のその他のデバイスを含むかまたはそのようなデバイスであり得る。ピクチャソースは、上述のピクチャのいずれかを記憶するための任意の種類のメモリまたは記憶装置であり得る。
【0083】
プリプロセッサ18および前処理ユニット18によって実行される処理と区別して、ピクチャまたはピクチャデータ17は、生ピクチャまたは生ピクチャデータ17とも呼ばれ得る。
【0084】
プリプロセッサ18は、(生)ピクチャデータ17を受け取り、ピクチャデータ17に対して前処理を実行して前処理されたピクチャ19または前処理されたピクチャデータ19を取得するように構成される。プリプロセッサ18によって実行される前処理は、たとえば、トリミング、(たとえば、RGBからYCbCrへの)カラーフォーマット変換、色補正、または雑音除去を含み得る。前処理ユニット18は、任意の構成要素であり得ることが理解され得る。
【0085】
ビデオエンコーダ20は、前処理されたピクチャデータ19を受け取り、符号化されたピクチャデータ21を提供するように構成される(さらなる詳細が、下で、たとえば、図2に基づいて説明される)。
【0086】
ソースデバイス12の通信インターフェース22は、符号化されたピクチャデータ21を受け取り、符号化されたピクチャデータ21(またはその任意のさらに処理されたバージョン)を、記憶するかまたは直接再構築するために別のデバイス、たとえば、宛先デバイス14または任意のその他のデバイスに通信チャネル13を介して送信するように構成され得る。
【0087】
宛先デバイス14は、デコーダ30(たとえば、ビデオデコーダ30)を含み、追加的に、つまり、任意選択で、通信インターフェースまたは通信ユニット28、ポストプロセッサ32(または後処理ユニット32)、およびディスプレイデバイス34を含み得る。
【0088】
宛先デバイス14の通信インターフェース28は、たとえば、ソースデバイス12から直接、または任意のその他のソース、たとえば、記憶デバイス、たとえば、符号化されたピクチャデータの記憶デバイスから符号化されたピクチャデータ21(またはその任意のさらに処理されたバージョン)を受信し、符号化されたピクチャデータ21をデコーダ30に提供するように構成される。
【0089】
通信インターフェース22および通信インターフェース28は、ソースデバイス12と宛先デバイス14との間の直接通信リンク、たとえば、直接有線もしくはワイヤレス接続を介して、あるいは任意の種類のネットワーク、たとえば、有線もしくはワイヤレスネットワークもしくはそれらの任意の組み合わせ、または任意の種類のプライベートおよびパブリックネットワーク、またはそれらの任意の種類の組み合わせを介して符号化されたピクチャデータ21または符号化されたデータ13を送信または受信するように構成され得る。
【0090】
通信インターフェース22は、たとえば、符号化されたピクチャデータ21を適切なフォーマット、たとえば、パケットにパッケージングする、および/または通信リンクもしくは通信ネットワークを介して送信するための任意の種類の送信の符号化もしくは処理を使用して符号化されたピクチャデータを処理するように構成され得る。
【0091】
通信インターフェース22の相手先を形成する通信インターフェース28は、たとえば、送信されたデータを受信し、任意の種類の対応する送信の復号もしくは処理および/またはパッケージングの解除を使用して送信データを処理して符号化されたピクチャデータ21を取得するように構成され得る。
【0092】
通信インターフェース22と通信インターフェース28との両方が、ソースデバイス12から宛先デバイス14の方を指す図1Aの通信チャネル13に関する矢印によって示される単方向通信インターフェース、または双方向通信インターフェースとして構成されることが可能であり、たとえば、接続をセットアップし、通信リンクおよび/またはデータ送信、たとえば、符号化されたピクチャデータの送信に関連する任意のその他の情報を確認し、やりとりするために、たとえば、メッセージを送信および受信するように構成され得る。
【0093】
デコーダ30は、符号化されたピクチャデータ21を受信し、復号されたピクチャデータ31または復号されたピクチャ31を提供するように構成される(さらなる詳細が、下で、たとえば、図3または図5に基づいて説明される)。
【0094】
宛先デバイス14のポストプロセッサ32は、復号されたピクチャデータ31(再構築されたピクチャデータとも呼ばれる)、たとえば、復号されたピクチャ31を後処理して後処理されたピクチャデータ33、たとえば、後処理されたピクチャ33を取得するように構成される。後処理ユニット32によって実行される後処理は、たとえば、(たとえば、YCbCrからRGBへの)カラーフォーマット変換、色補正、トリミング、またはリサンプリング、またはたとえばディスプレイデバイス34による表示のためにたとえば復号されたピクチャデータ31を準備するための任意のその他の処理を含み得る。
【0095】
宛先デバイス14のディスプレイデバイス34は、たとえば、ユーザまたは視聴者に対してピクチャを表示するために後処理されたピクチャデータ33を受け取るように構成される。ディスプレイデバイス34は、再構築されたピクチャを示すための任意の種類のディスプレイ、たとえば、一体型または外部ディスプレイもしくはモニタであるかまたはそのようなディスプレイもしくはモニタを含み得る。ディスプレイは、たとえば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オンシリコン(LCoS: liquid crystal on silicon)、デジタル光プロセッサ(DLP: digital light processor)、または任意の種類のその他のディスプレイを含み得る。
【0096】
図1Aはソースデバイス12および宛先デバイス14を別々のデバイスとして示すが、デバイスの実施形態は、両方または両方の機能、ソースデバイス12または対応する機能および宛先デバイス14または対応する機能を含むこともある。そのような実施形態において、ソースデバイス12または対応する機能および宛先デバイス14または対応する機能は、同じハードウェアおよび/もしくはソフトウェアを使用してまたは別々のハードウェアおよび/もしくはソフトウェアまたはそれらの任意の組み合わせによって実装され得る。
【0097】
説明に基づいて当業者に明らかになるように、異なるユニットの機能または図1Aに示されるソースデバイス12および/もしくは宛先デバイス14内の機能の存在および(厳密な)分割は、実際のデバイスおよびアプリケーションに応じて変わり得る。
【0098】
エンコーダ20(たとえば、ビデオエンコーダ20)またはデコーダ30(たとえば、ビデオデコーダ30)またはエンコーダ20とデコーダ30との両方は、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ハードウェア、それらのビデオコーディングに専用のまたは任意の組み合わせなどの、図1Bに示された処理回路によって実装され得る。エンコーダ20は、図2のエンコーダ20および/または本明細書において説明される任意のその他のエンコーダシステムもしくはサブシステムに関連して検討される様々なモジュールを具現化するために処理回路46によって実装され得る。デコーダ30は、図3のデコーダ30および/または本明細書において説明される任意のその他のデコーダシステムもしくはサブシステムに関連して検討される様々なモジュールを具現化するために処理回路46によって実装され得る。処理回路は、後で検討される様々な動作を実行するように構成され得る。図5に示されるように、技術が部分的にソフトウェアで実装される場合、デバイスは、好適な非一時的コンピュータ可読記憶媒体にソフトウェアのための命令を記憶することが可能であり、本開示の技術を実行するために1つまたは複数のプロセッサを使用するハードウェアにおいて命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30のどちらかが、たとえば、図1Bに示されるように単一のデバイス内の組み合わされたエンコーダ/デコーダ(コーデック)の一部として組み込まれ得る。
【0099】
ソースデバイス12および宛先デバイス14は、任意の種類のハンドヘルドまたは固定デバイス、たとえば、ノートブックまたはラップトップコンピュータ、モバイル電話、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ、ディスプレイデバイス、デジタルメディアプレーヤー、ビデオゲームコンソール、(コンテンツサービスサーバまたはコンテンツ配信サーバなどの)ビデオストリーミングデバイス、放送受信機デバイス、放送送信機デバイスなどを含む広範なデバイスのいずれかを含むことが可能であり、オペレーティングシステムを使用しないかまたは任意の種類のオペレーティングシステムを使用し得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対応し得る。したがって、ソースデバイス12および宛先デバイス14は、ワイヤレス通信デバイスであり得る。
【0100】
場合によっては、図1Aに示されたビデオコーディングシステム10は、例であるに過ぎず、本開示の技術は、符号化デバイスと復号デバイスとの間のいかなるデータ通信も含むとは限らないビデオコーディングの状況(たとえば、ビデオの符号化またはビデオの復号)に適用され得る。その他の例においては、データが、ローカルメモリから取り出される、またはネットワークを介してストリーミングされる、などである。ビデオ符号化デバイスが、データを符号化し、メモリに記憶することが可能であり、および/またはビデオ復号デバイスが、メモリからデータを取り出し、復号し得る。いくつかの例において、符号化および復号が、互いに通信せず、単にメモリにデータを符号化し、および/またはメモリからデータを取り出し、復号するデバイスによって実行される。
【0101】
説明の便宜上、本発明の実施形態は、たとえば、高効率ビデオコーディング(HEVC: High-Efficiency Video Coding)、または多目的ビデオコーディング(VVC: Versatile Video coding)、ITU-Tビデオコーディング専門家グループ(VCEG: Video Coding Experts Group)およびISO/IEC動画専門家グループ(MPEG: Motion Picture Experts Group)のビデオコーディングに関する共同作業チーム(JCT-VC: Joint Collaboration Team on Video Coding)によって開発された次世代ビデオコーディング規格の参照ソフトウェアを参照することによって本明細書において説明される。当業者は、本発明の実施形態がHEVCまたはVVCに限定されないことを理解するであろう。
【0102】
エンコーダおよび符号化方法
図2は、本出願の技術を実装するように構成される例示的なビデオエンコーダ20の概略的なブロック図を示す。図2の例において、ビデオエンコーダ20は、入力201(または入力インターフェース201)、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、ループフィルタユニット220、復号されたピクチャバッファ(DPB: decoded picture buffer)230、モード選択ユニット260、エントロピー符号化ユニット270、および出力272(または出力インターフェース272)を含む。モード選択ユニット260は、インター予測ユニット244、イントラ予測ユニット254、および区分けユニット262を含み得る。インター予測ユニット244は、動き推定ユニットおよび動き補償ユニット(図示せず)を含み得る。図2に示されたビデオエンコーダ20は、ハイブリッドビデオエンコーダまたはハイブリッドビデオコーデックによるビデオエンコーダとも呼ばれ得る。
【0103】
残差計算ユニット204、変換処理ユニット206、量子化ユニット208、モード選択ユニット260は、エンコーダ20の順方向信号経路を形成するとみなされることが可能であり、一方、逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、バッファ216、ループフィルタ220、復号されたピクチャバッファ(DPB)230、インター予測ユニット244、およびイントラ予測ユニット254は、ビデオエンコーダ20の逆方向信号経路を形成するとみなされることが可能であり、ビデオエンコーダ20の逆方向信号経路は、デコーダの信号経路(図3のビデオデコーダ30を参照されたい)に対応する。逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、ループフィルタ220、復号されたピクチャバッファ(DPB)230、インター予測ユニット244、およびイントラ予測ユニット254は、ビデオエンコーダ20の「内蔵デコーダ」を形成するともみなされる。
【0104】
ピクチャ&ピクチャの区分け(ピクチャ&ブロック)
エンコーダ20は、たとえば、入力201を介してピクチャ17(またはピクチャデータ17)、たとえば、ビデオまたはビデオシーケンスを形成するピクチャのシーケンスのピクチャを受け取るように構成され得る。受け取られたピクチャまたはピクチャデータは、前処理されたピクチャ19(または前処理されたピクチャデータ19)であることもある。簡単にするために、以下の説明は、ピクチャ17に言及する。ピクチャ17は、(特に、ビデオコーディングにおいて、現在のピクチャをその他のピクチャ、たとえば、同じビデオシーケンス、つまり、現在のピクチャも含むビデオシーケンスの既に符号化されたおよび/または復号されたピクチャと区別するために)現在のピクチャまたはコーディングされるピクチャとも呼ばれ得る。
【0105】
(デジタル)ピクチャは、強度(intensity)値を有するサンプルの2次元配列または行列とみなされるかまたはみなされ得る。配列のサンプルは、ピクセル(ピクチャエレメントの短縮形)またはペルとも呼ばれ得る。配列またはピクチャの水平および垂直方向(または軸)のサンプル数は、ピクチャのサイズおよび/または解像度を定義する。色の表現のために、概して、3つの色成分が使用され、つまり、ピクチャが表現されるかまたは3つのサンプル配列を含み得る。RBGフォーマットまたは色空間で、ピクチャは、対応する赤、緑、および青のサンプル配列を含む。しかし、ビデオコーディングにおいて、各ピクセルは、概して、輝度(luminance)およびクロミナンス(chrominance)フォーマットまたは色空間、たとえば、Y(代わりにLが使用されることもある)によって示される輝度成分ならびにCbおよびCrによって示される2つのクロミナンス成分を含むYCbCrで表される。輝度(または短くルマ(luma))成分Yは、明るさまたは(たとえば、グレースケールピクチャと同様の)グレーレベルの強度を表し、一方、2つのクロミナンス(または短くクロマ(chroma))成分CbおよびCrは、色度または色情報成分を表す。したがって、YCbCrフォーマットのピクチャは、輝度サンプル値(Y)の輝度サンプル配列およびクロミナンス値(CbおよびCr)の2つのクロミナンスサンプル配列を含む。RGBフォーマットのピクチャは、YCbCrフォーマットに変換される(converted)または変換される(transformed)ことが可能であり、その逆も可能であり、プロセスは、色変換(transformation)または変換(conversion)としても知られる。ピクチャがモノクロである場合、ピクチャは、輝度サンプル配列のみを含み得る。したがって、ピクチャは、たとえば、モノクロフォーマットにおいてはルマサンプルの配列であり、または4:2:0、4:2:2、および4:4:4カラーフォーマットにおいてはルマサンプルの配列およびクロマサンプルの2つの対応する配列であり得る。
【0106】
ビデオエンコーダ20の実施形態は、ピクチャ17を複数の(通常は重なり合わない)ピクチャブロック203に区分けするように構成されたピクチャ区分けユニット(図2に示さず)を含み得る。これらのブロックは、ルートブロック、マクロブロック(H.264/AVC)、またはコーディングツリーブロック(CTB: coding tree block)もしくはコーディングツリーユニット(CTU: coding tree unit)(H.265/HEVCおよびVVC)とも呼ばれ得る。ピクチャ区分けユニットは、ビデオシーケンスのすべてのピクチャおよびブロックサイズを定義する対応するグリッドに関して同じブロックサイズを使用するか、あるいはピクチャまたはピクチャのサブセットもしくはグループの間でブロックサイズを変更し、各ピクチャを対応するブロックに区分けするように構成され得る。
【0107】
さらなる実施形態において、ビデオエンコーダは、ピクチャ17のブロック203、たとえば、ピクチャ17を形成する1つの、いくつかの、またはすべてのブロックを直接受け取るように構成され得る。ピクチャブロック203は、現在のピクチャブロックまたはコーディングされるピクチャブロックとも呼ばれ得る。
【0108】
ピクチャ17と同様に、ピクチャブロック203は、ピクチャ17よりも寸法が小さいが、強度値(サンプル値)を有するサンプルの2次元配列または行列とやはりみなされるかまたはみなされ得る。言い換えると、ブロック203は、適用されるカラーフォーマットに応じて、たとえば、1つのサンプル配列(たとえば、モノクロピクチャ17の場合はルマ配列、またはカラーピクチャの場合はルマもしくはクロマ配列)、あるいは3つのサンプル配列(たとえば、カラーピクチャ17の場合はルマおよび2つのクロマ配列)、あるいは任意のその他の数および/または種類の配列を含み得る。ブロック203の水平および垂直方向(または軸)のサンプル数は、ブロック203のサイズを定義する。したがって、ブロックは、たとえば、サンプルのMxN(M列×N行)配列または変換係数のMxN配列であり得る。
【0109】
図2に示されたビデオエンコーダ20の実施形態は、ピクチャ17をブロック毎に符号化するように構成されることが可能であり、たとえば、符号化および予測が、ブロック203毎に実行される。
【0110】
残差の計算
残差計算ユニット204は、たとえば、サンプル毎に(ピクセル毎に)ピクチャブロック203のサンプル値から予測ブロック265のサンプル値を差し引いてサンプル領域において残差ブロック205を取得することによって、ピクチャブロック203および予測ブロック265(予測ブロック265についてのさらなる詳細は後で与えられる)に基づいて残差ブロック205(残差205とも呼ばれる)を計算するように構成され得る。
【0111】
変換
変換処理ユニット206は、残差ブロック205のサンプル値に対して変換、たとえば、離散コサイン変換(DCT)または離散サイン変換(DST)を適用して変換領域において変換係数207を取得するように構成され得る。変換係数207は、変換残差係数とも呼ばれ、変換領域において残差ブロック205を表現し得る。
【0112】
変換処理ユニット206は、H.265/HEVCのために規定された変換などのDCT/DSTの整数近似を適用するように構成され得る。直交DCT変換と比較して、そのような整数近似は、概して、特定の率でスケーリングされる。順および逆変換によって処理される残差ブロックのノルム(norm)を維持するために、追加的な倍率(scaling factor)が、変換プロセスの一部として適用される。倍率は、概して、倍率がシフト演算のために2の累乗であること、変換係数のビット深度、正確さと実装コストとの間のトレードオフなどのような特定の制約に基づいて選択される。たとえば、特定の倍率が、たとえば、逆変換処理ユニット212による逆変換(およびたとえば、ビデオデコーダ30における逆変換処理ユニット312による対応する逆変換)のために指定され、たとえば、エンコーダ20の変換処理ユニット206による順変換のための対応する倍率が、それに応じて指定され得る。
【0113】
ビデオエンコーダ20(それぞれ、変換処理ユニット206)の実施形態は、たとえば、ビデオデコーダ30が変換パラメータを受信し、復号のために使用し得るように、たとえば、そのままであるかまたはエントロピー符号化ユニット270によって符号化されるかもしくは圧縮される変換パラメータ、たとえば、ある種の1つの変換または複数の変換を出力するように構成され得る。
【0114】
量子化
量子化ユニット208は、たとえば、スカラー量子化またはベクトル量子化を適用することによって変換係数207を量子化して量子化された係数209を取得するように構成され得る。量子化された係数209は、量子化された変換係数209または量子化された残差係数209とも呼ばれ得る。
【0115】
量子化プロセスは、変換係数207の一部またはすべてに関連するビット深度を削減し得る。たとえば、nビットの変換係数が、量子化中にmビットの変換係数に切り捨てられることが可能であり、nは、mよりも大きい。量子化の度合いは、量子化パラメータ(QP: quantization parameter)を調整することによって修正され得る。たとえば、スカラー量子化に関して、より細かいまたはより粗い量子化を達成するために異なるスケーリングが適用され得る。より小さな量子化ステップサイズは、より細かい量子化に対応し、一方、より大きな量子化ステップサイズは、より粗い量子化に対応する。適用可能な量子化ステップサイズが、量子化パラメータ(QP)によって示され得る。量子化パラメータは、たとえば、適用可能な量子化ステップサイズの予め定義された組へのインデックスであり得る。たとえば、小さな量子化パラメータが、細かい量子化(小さな量子化ステップサイズ)に対応することが可能であり、大きな量子化パラメータが、粗い量子化(大きな量子化ステップサイズ)に対応することが可能であり、またはその逆であることが可能である。量子化は、量子化ステップサイズによる除算を含むことが可能であり、たとえば、逆量子化ユニット210による対応するおよび/または逆の量子化解除は、量子化ステップサイズによる乗算を含み得る。一部の規格、たとえば、HEVCによる実施形態は、量子化パラメータを使用して量子化ステップサイズを決定するように構成され得る。概して、量子化ステップサイズは、除算を含む等式の固定小数点近似(fixed point approximation)を使用して量子化パラメータに基づいて計算され得る。量子化ステップサイズおよび量子化パラメータに関する等式の固定小数点近似において使用されるスケーリングが原因で修正され得る残差ブロックのノルムを復元するために、量子化および量子化解除に関して追加的な倍率が導入され得る。1つの例示的な実装においては、逆変換および量子化解除のスケーリングが、組み合わされ得る。代替的に、カスタマイズされた量子化テーブルが使用され、たとえば、ビットストリーム内でエンコーダからデコーダにシグナリングされ得る。量子化は、不可逆演算であり、損失は、量子化ステップサイズが大きくなるにつれて増加する。
【0116】
ビデオエンコーダ20(それぞれ、量子化ユニット208)の実施形態は、たとえば、ビデオデコーダ30が量子化パラメータを受信し、復号のために適用し得るように、たとえば、そのままであるかまたはエントロピー符号化ユニット270によって符号化される量子化パラメータ(QP)を出力するように構成され得る。
【0117】
逆量子化
逆量子化ユニット210は、たとえば、量子化ユニット208と同じ量子化ステップサイズに基づいてまたはそれを使用して、量子化ユニット208により適用された量子化方式の逆を適用することによって、量子化された係数に量子化ユニット208の逆量子化を適用して量子化解除された係数211を取得するように構成される。量子化解除された係数211は、量子化解除された残差係数211とも呼ばれ、--量子化による損失が原因で概して変換係数と同一ではないが--変換係数207に対応し得る。
【0118】
逆変換
逆変換処理ユニット212は、変換処理ユニット206によって適用された変換の逆変換、たとえば、逆離散コサイン変換(DCT)または逆離散サイン変換(DST)またはその他の逆変換を適用してサンプル領域において再構築された残差ブロック213(または対応する量子化解除された係数213)を取得するように構成される。再構築された残差ブロック213は、変換ブロック(transform block)213とも呼ばれ得る。
【0119】
再構築
再構築ユニット214(たとえば、加算器または合算器214)は、たとえば、再構築された残差ブロック213のサンプル値と予測ブロック265のサンプル値とを--サンプル毎に--足すことによって予測ブロック265に変換ブロック213(すなわち、再構築された残差ブロック213)を足してサンプル領域において再構築されたブロック215を取得するように構成される。
【0120】
フィルタリング
ループフィルタユニット220(または短く「ループフィルタ」220)は、再構築されたブロック215をフィルタリングしてフィルタリングされたブロック221を取得する、または概して、再構築されたサンプルをフィルタリングしてフィルタリングされたサンプルを取得するように構成される。ループフィルタユニットは、たとえば、ピクセルの遷移を平滑化するかまたはそれ以外の方法でビデオの品質を改善するように構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応オフセット(SAO: sample-adaptive offset)フィルタ、または1つもしくは複数のその他のフィルタ、たとえば、バイラテラルフィルタ、適応ループフィルタ(ALF: adaptive loop filter)、鮮鋭化、平滑化フィルタ、もしくは共同フィルタ(collaborative filter)、もしくはこれらの任意の組み合わせなどの1つまたは複数のループフィルタを含み得る。ループフィルタユニット220は図2にループ内フィルタであるものとして示されるが、その他の構成において、ループフィルタユニット220は、ループ後フィルタとして実装され得る。フィルタリングされたブロック221は、フィルタリングされた再構築されたブロック221とも呼ばれ得る。
【0121】
ビデオエンコーダ20(それぞれ、ループフィルタユニット220)の実施形態は、たとえば、デコーダ30が同じループフィルタのパラメータまたはそれぞれのループフィルタを受信し、復号のために適用し得るように、たとえば、そのままであるかまたはエントロピー符号化ユニット270によって符号化される(サンプル適応オフセット情報などの)ループフィルタのパラメータを出力するように構成され得る。
【0122】
復号されたピクチャバッファ
復号されたピクチャバッファ(DPB)230は、ビデオエンコーダ20によってビデオデータを符号化するための参照ピクチャまたは概して参照ピクチャデータを記憶するメモリであり得る。DPB230は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗変化型RAM(RRAM: resistive RAM)、またはその他の種類のメモリデバイスなどの様々なメモリデバイスのいずれかによって形成され得る。復号されたピクチャバッファ(DPB)230は、1つまたは複数のフィルタリングされたブロック221を記憶するように構成され得る。復号されたピクチャバッファ230は、同じ現在のピクチャまたは異なるピクチャ、たとえば、既に再構築されたピクチャのその他の既にフィルタリングされたブロック、たとえば、既に再構築され、フィルタリングされたブロック221を記憶するようにさらに構成されることが可能であり、たとえば、インター予測のために、完全な既に再構築された、つまり、復号されたピクチャ(および対応する参照ブロックおよびサンプル)ならびに/または部分的に再構築された現在のピクチャ(および対応する参照ブロックおよびサンプル)を提供し得る。復号されたピクチャバッファ(DPB)230は、たとえば、再構築されたブロック215がループフィルタユニット220によってフィルタリングされない場合、1つもしくは複数のフィルタリングされていない再構築されたブロック215もしくは概してフィルタリングされていない再構築されたサンプルを記憶し、または再構築されたブロックもしくはサンプルの任意のその他のさらに処理されたバージョンを記憶するようにも構成され得る。
【0123】
モード選択(区分け&予測)
モード選択ユニット260は、区分けユニット262、インター予測ユニット244、およびイントラ予測ユニット254を含み、元のピクチャデータ、たとえば、元のブロック203(現在のピクチャ17の現在のブロック203)と、再構築されたピクチャデータ、たとえば、同じ(現在の)ピクチャの、および/またはたとえば復号されたピクチャバッファ230もしくはその他のバッファ(たとえば、図示されていないラインバッファ)からの1つもしくは複数の既に復号されたピクチャからのフィルタリングされたおよび/またはフィルタリングされていない再構築されたサンプルまたはブロックとを受け取るかまたは取得するように構成される。再構築されたピクチャデータは、予測ブロック265または予測子(predictor)265を取得するための予測、たとえば、インター予測またはイントラ予測のための参照ピクチャデータとして使用される。
【0124】
モード選択ユニット260は、(区分けを含まない)現在のブロックの予測モードのための区分けおよび予測モード(たとえば、イントラまたはインター予測モード)を決定するかまたは選択し、残差ブロック205の計算および再構築されたブロック215の再構築のために使用される対応する予測ブロック265を生成するように構成され得る。
【0125】
モード選択ユニット260の実施形態は、最良の一致もしくは言い換えると最小の残差(最小の残差は送信もしくは記憶のためのより優れた圧縮を意味する)または最小のシグナリングオーバーヘッド(最小のシグナリングオーバーヘッドは送信もしくは記憶のためのより優れた圧縮を意味する)を提供する、あるいはそれら両方を考慮するかまたは釣り合いを取る区分けおよび予測モードを(たとえば、モード選択ユニット260によってサポートされるかまたはモード選択ユニット260が利用可能な区分けおよび予測モードから)選択するように構成され得る。モード選択ユニット260は、レート歪み最適化(RDO)に基づいて区分けおよび予測モードを決定する、つまり、最小のレート歪みを提供する予測モードを選択するように構成され得る。この文脈の「最良の」、「最小の」、「最適な」などのような用語は、必ずしも全体の「最良の」、「最小の」、「最適な」などを指さず、値が閾値を超えることもしくは下回ることのような終了もしくは選択の基準、または潜在的に「準最適な選択」につながるが、複雑さおよび処理時間を削減するその他の制約を満たすことをも指すこともある。
【0126】
言い換えると、区分けユニット262は、たとえば、四分木区分け(QT)、二分区分け(BT)、または三分木区分け(TT)、またはこれらの任意の組み合わせを反復的に使用してブロック203を(やはりブロックを形成する)より小さなブロックの区分または下位ブロックに区分けし、たとえば、ブロックの区分または下位ブロックの各々に関して予測を実行するように構成されることが可能であり、モード選択は、区分けされたブロック203の木構造の選択を含み、予測モードは、ブロックの区分または下位ブロックの各々に適用される。
【0127】
以下で、例示的なビデオエンコーダ20によって実行される(たとえば、区分けユニット260による)区分けならびに(インター予測ユニット244およびイントラ予測ユニット254による)予測処理が、より詳細に説明される。
【0128】
区分け
区分けユニット262は、現在のブロック203をより小さな区分、たとえば、正方形または長方形のサイズのより小さなブロックに区分けする(または分割する)ことが可能である。これらのより小さなブロック(下位ブロックとも呼ばれ得る)は、より一層小さな区分にさらに区分けされ得る。これは、木区分けまたは階層的木区分けとも呼ばれ、たとえば、ルートツリーレベル0(階層レベル0、深さ0)のルートブロックが、再帰的に区分けされ、たとえば、次に低いツリーレベルの2つ以上のブロック、たとえば、ツリーレベル1(階層レベル1、深さ1)のノードに区分けされることが可能であり、これらのブロックが、次に低いレベル、たとえば、ツリーレベル2(階層レベル2、深さ2)の2つ以上のブロックに再び区分けされることが可能であり、たとえば、終了基準が満たされる、たとえば、最大のツリーの深さまたは最小のブロックサイズが達せられるので区分けが終了されるまで以下同様である。さらに区分けされないブロックは、木の葉ブロックまたは葉ノードとも呼ばれる。2つの区分への区分けを使用する木は、二分木(BT)と呼ばれ、3つの区分への区分けを使用する木は、三分木(TT)と呼ばれ、4つの区分への区分けを使用する木は、四分木(QT)と呼ばれる。
【0129】
上述のように、本明細書において使用される用語「ブロック」は、ピクチャの一部分、特に、正方形または長方形の一部分であり得る。たとえば、HEVCおよびVVCに関連して、ブロックは、コーディングツリーユニット(CTU)、コーディングユニット(CU: coding unit)、予測ユニット(PU: prediction unit)、および変換ユニット(TU: transform unit)、ならびに/または対応するブロック、たとえば、コーディングツリーブロック(CTB)、コーディングブロック(CB: coding block)、変換ブロック(TB)、または予測ブロック(PB)であるかまたはそれらに対応し得る。
【0130】
たとえば、コーディングツリーユニット(CTU)は、ルマサンプルのCTB、3つのサンプル配列を有するピクチャのクロマサンプルの2つの対応するCTB、またはモノクロピクチャもしくはサンプルをコーディングするために使用される3つの別々の色平面(colour plane)およびシンタックス(syntax)構造を使用してコーディングされるピクチャのサンプルのCTBであるかまたはそれらを含み得る。それに対応して、コーディングツリーブロック(CTB)は、構成要素のCTBへの分割が区分けであるようなNの何らかの値に関するサンプルのNxNのブロックであり得る。符号化ユニット(CU)は、ルマサンプルの符号化ブロック、3つのサンプル配列を有するピクチャのクロマサンプルの2つの対応する符号化ブロック、またはモノクロピクチャもしくはサンプルをコーディングするために使用される3つの別々の色平面およびシンタックス構造を使用してコーディングされるピクチャのサンプルの符号化ブロックであるかまたはそれらを含み得る。それに対応して、符号化ブロック(CB)は、CTBの符号化ブロックへの分割が区分けであるようなMおよびNの何らかの値に関するサンプルのMxNのブロックであり得る。
【0131】
たとえば、HEVCによる実施形態において、コーディングツリーユニット(CTU)は、コーディングツリーとして表される四分木構造を使用することによってCUに分割され得る。インターピクチャ(時間)予測を使用してピクチャエリアをコーディングすべきかまたはイントラピクチャ(空間)予測を使用してピクチャエリアをコーディングすべきかの判断は、CUレベルで行われる。各CUは、PU分割タイプに従って1つ、2つ、または4つのPUにさらに分割され得る。1つのPU内では、同じ予測プロセスが適用され、関連する情報がPUに基づいてデコーダに送信される。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CUは、CUに関するコーディングツリーと同様の別の四分木構造によって変換ユニット(TU)に区分けされ得る。
【0132】
たとえば、多目的ビデオコーディング(VVC)と呼ばれる現在開発されている最新のビデオコーディング規格による実施形態においては、四分木および二分木(QTBT)区分けが、符号化ブロックを区分けするために使用される。QTBTブロック構造において、CUは、正方形かまたは長方形かのどちらかの形状を持ち得る。たとえば、コーディングツリーユニット(CTU)が、まず、四分木構造によって区分けされる。四分木の葉ノードが、二分木または三分(ternary)(または三分(triple))木構造によってさらに区分けされる。区分けツリーの葉ノードは、符号化ユニット(CU)と呼ばれ、そのセグメント分けが、いかなるさらなる区分けもなしに予測および変換処理のために使用される。これは、CU、PU、およびTUがQTBT符号化ブロック構造において同じブロックサイズを有することを意味する。平行して、多区分、たとえば、三分木区分も、QTBTブロック構造と一緒に使用されるように提案された。
【0133】
一例において、ビデオエンコーダ20のモード選択ユニット260は、本明細書において説明される区分け技術の任意の組み合わせを実行するように構成され得る。
【0134】
上述のように、ビデオエンコーダ20は、1組の(予め決定された)予測モードから最良のまたは最適な予測モードを決定するまたは選択するように構成される。1組の予測モードは、たとえば、イントラ予測モードおよび/またはインター予測モードを含み得る。
【0135】
イントラ予測
1組のイントラ予測モードは、たとえばHEVCにおいて定義された35個の異なるイントラ予測モード、たとえば、DC(もしくは平均)モードおよび平面モードのような非方向性モード、または方向性モードを含むことが可能であり、あるいはたとえばVVCのために定義された67個の異なるイントラ予測モード、たとえば、DC(もしくは平均)モードおよび平面モードのような非方向性モード、または方向性モードを含み得る。
【0136】
イントラ予測ユニット254は、1組のイントラ予測モードのうちのイントラ予測モードによって、同じ現在のピクチャの近隣のブロックの再構築されたサンプルを使用してイントラ予測ブロック265を生成するように構成される。
【0137】
イントラ予測ユニット254(または概してモード選択ユニット260)は、たとえば、ビデオデコーダ30が予測パラメータを受信し、復号のために使用し得るように、符号化されたピクチャデータ21に含めるためにシンタックス要素266の形態でエントロピー符号化ユニット270にイントラ予測パラメータ(または概してブロックについての選択されたイントラ予測モードを示す情報)を出力するようにさらに構成される。
【0138】
インター予測
1組の(または可能な)インター予測モードは、利用可能な参照ピクチャ(つまり、たとえば、DBP230に記憶された前の少なくとも部分的に復号されたピクチャ)ならびにその他のインター予測パラメータ、たとえば、最もよく一致する参照ブロックを探索するために参照ピクチャ全体が使用されるのかもしくは参照ピクチャの一部のみ、たとえば、現在のブロックのエリアの周りの探索窓(search window)エリアのみが使用されるか、ならびに/またはたとえば、ピクセル補間、たとえば、半/セミペル(half/semi-pel)および/もしくは4分の1ペル補間が適用されるか否かに依存する。
【0139】
上述の予測モードに加えて、スキップモードおよび/またはダイレクトモードが、適用され得る。
【0140】
インター予測ユニット244は、動き推定(ME)ユニットおよび動き補償(MC)ユニット(どちらも図2に示さず)を含み得る。動き推定ユニットは、動き推定のために、ピクチャブロック203(現在のピクチャ17の現在のピクチャブロック203)および復号されたピクチャ231、または少なくとも1つのもしくは複数の既に再構築されたブロック、たとえば、1つもしくは複数のその他の/異なる既に復号されたピクチャ231の再構築されたブロックを受信するかまたは取得するように構成され得る。たとえば、ビデオシーケンスは、現在のピクチャおよび既に復号されたピクチャ231を含むことが可能であり、または言い換えると、現在のピクチャおよび既に復号されたピクチャ231は、ビデオシーケンスを形成するピクチャのシーケンスの一部であるかもしくはそのようなピクチャのシーケンスを形成し得る。
【0141】
エンコーダ20は、たとえば、複数のその他のピクチャのうちの同じまたは異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(もしくは参照ピクチャインデックス)および/または参照ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間オフセット)をインター予測パラメータとして動き推定ユニットに提供するように構成され得る。このオフセットは、動きベクトル(MV)とも呼ばれる。
【0142】
動き補償ユニットは、インター予測パラメータを取得、たとえば、受信し、インター予測パラメータに基づいてまたはインター予測パラメータを使用してインター予測を実行してインター予測ブロック265を取得するように構成される。動き補償ユニットによって実行される動き補償は、おそらくはサブピクセルの精度の補間を実行する動き推定によって決定された動き/ブロックベクトルに基づく予測ブロックのフェッチまたは生成を含み得る。補間フィルタリングが、知られているピクセルサンプルから追加的なピクセルサンプルを生成することが可能であり、したがって潜在的に、ピクチャブロックをコーディングするために使用され得る候補予測ブロックの数を増やす。下でより詳細に説明されるように、補間フィルタリングは、動きベクトルの精度に応じて1つまたは複数の代替的な補間フィルタを使用して実行され得る。現在のピクチャブロックのPUに関する動きベクトルを受信すると、動き補償ユニットは、参照ピクチャリストのうちの1つにおいて動きベクトルが指す予測ブロックを見つけ得る。
【0143】
動き補償ユニットは、ビデオスライスのピクチャブロックを復号する際にビデオデコーダ30によって使用するためのブロックおよびビデオスライスに関連するシンタックス要素も生成し得る。
【0144】
エントロピーコーディング
エントロピー符号化ユニット270は、たとえば、ビデオデコーダ30がパラメータを受信し、復号のために使用し得るように、たとえば、符号化されたビットストリーム21の形態で出力272を介して出力され得る符号化されたピクチャデータ21を得るために、量子化された係数209、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、および/またはその他のシンタックス要素に対して、たとえば、エントロピー符号化アルゴリズムもしくは方式(たとえば、可変長コーディング(VLC: variable length coding)方式、コンテキスト適応VLC方式(CAVLC: context adaptive VLC)、算術コーディング方式、2値化、コンテキスト適応2値算術コーディング(CABAC: context adaptive binary arithmetic coding)、シンタックスに基づくコンテキスト適応2値算術コーディング(SBAC: syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE: probability interval partitioning entropy) コーディング、もしくは別のエントロピー符号化方法もしくは技術)またはバイパス(bypass)(非圧縮)を適用するように構成される。符号化されたビットストリーム21は、ビデオデコーダ30に送信されるか、または後の送信またはビデオデコーダ30による取り出しのためにメモリに記憶され得る。
【0145】
ビデオエンコーダ20その他の構造の変化形が、ビデオストリームを符号化するために使用され得る。たとえば、変換に基づかないエンコーダ20は、特定のブロックまたはフレームに関して変換処理ユニット206なしに残差信号を直接量子化し得る。別の実装において、エンコーダ20は、単一のユニットに組み合わされた量子化ユニット208および逆量子化ユニット210を持ち得る。
【0146】
デコーダおよび復号方法
図3は、本出願の技術を実装するように構成されるビデオデコーダ30の例を示す。ビデオデコーダ30は、復号されたピクチャ331を取得するために、たとえば、エンコーダ20によって符号化された符号化されたピクチャデータ21(たとえば、符号化されたビットストリーム21)を受信するように構成される。符号化されたピクチャデータまたはビットストリームは、符号化されたピクチャデータ、たとえば、符号化されたビデオスライスのピクチャブロックならびに関連するシンタックス要素を表すデータを復号するための情報を含む。
【0147】
図3の例において、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構築ユニット314(たとえば、合算器314)、ループフィルタ320、復号されたピクチャバッファ(DBP)330、インター予測ユニット344、およびイントラ予測ユニット354を含む。インター予測ユニット344は、動き補償ユニットであるかまたは動き補償ユニットを含み得る。ビデオデコーダ30は、いくつかの例において、図2のビデオエンコーダ100に関連して説明された符号化パスと概して逆である復号パスを実行し得る。
【0148】
エンコーダ20に関連して説明されたように、逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、ループフィルタ220、復号されたピクチャバッファ(DPB)230、インター予測ユニット344、およびイントラ予測ユニット354は、ビデオエンコーダ20の「内蔵デコーダ」を形成するともみなされる。したがって、逆量子化ユニット310は、逆量子化ユニット110と機能的に同一であることが可能であり、逆変換処理ユニット312は、逆変換処理ユニット212と機能的に同一であることが可能であり、再構築ユニット314は、再構築ユニット214と機能的に同一であることが可能であり、ループフィルタ320は、ループフィルタ220と機能的に同一であることが可能であり、復号されたピクチャバッファ330は、復号されたピクチャバッファ230と機能的に同一であることが可能である。したがって、ビデオ20エンコーダのそれぞれのユニットおよび機能に関して与えられた説明が、ビデオデコーダ30のそれぞれのユニットおよび機能に準用される。
【0149】
エントロピー復号
エントロピー復号ユニット304は、ビットストリーム21(または概して符号化されたピクチャデータ21)を解析し、たとえば、符号化されたピクチャデータ21にエントロピー復号を実行して、たとえば、量子化された係数309ならびに/あるいは復号されたコーディングパラメータ(図3に示さず)、たとえば、インター予測パラメータ(たとえば、参照ピクチャインデックスおよび動きベクトル)、イントラ予測パラメータ(たとえば、イントラ予測モードもしくはインデックス)、変換パラメータ、量子化パラメータ、ループフィルタパラメータ、および/またはその他のシンタックス要素のいずれかまたはすべてを取得するように構成される。エントロピー復号ユニット304は、エンコーダ20のエントロピー符号化ユニット270に関連して説明された符号化方式に対応する復号アルゴリズムまたは方式を適用するように構成され得る。エントロピー復号ユニット304は、インター予測パラメータ、イントラ予測パラメータ、および/またはその他のシンタックス要素をモード選択ユニット360に提供し、その他のパラメータをデコーダ30のその他のユニットに提供するようにさらに構成され得る。ビデオデコーダ30は、ビデオスライスのレベルおよび/またはビデオブロックのレベルでシンタックス要素を受信し得る。
【0150】
逆量子化
逆量子化ユニット310は、(たとえば、エントロピー復号ユニット304によって、たとえば、解析および/または復号することによって)符号化されたピクチャデータ21から量子化パラメータ(QP)(または概して逆量子化に関連する情報)および量子化された係数を受け取り、復号された量子化された係数309に対して量子化パラメータに基づいて逆量子化を適用して、変換係数311とも呼ばれ得る量子化解除された係数311を取得するように構成され得る。逆量子化プロセスは、量子化の度合いと、同様に、適用されるべき逆量子化の度合いとを決定するために、ビデオスライス内の各ビデオブロックに関してビデオエンコーダ20によって決定された量子化パラメータを使用することを含み得る。
【0151】
逆変換
逆変換処理ユニット312は、変換係数311とも呼ばれる量子化解除された係数311を受け取り、サンプル領域において再構築された残差ブロック213を取得するために、量子化解除された係数311に変換を適用するように構成され得る。再構築された残差ブロック213は、変換ブロック313とも呼ばれ得る。変換は、逆変換、たとえば、逆DCT、逆DST、逆整数変換、または概念的に同様の逆変換プロセスであり得る。逆変換処理ユニット312は、量子化解除された係数311に適用される変換を決定するために、(たとえば、エントロピー復号ユニット304によって、たとえば、解析および/または復号することによって)符号化されたピクチャデータ21から変換パラメータまたは対応する情報を受け取るようにさらに構成され得る。
【0152】
再構築
再構築ユニット314(たとえば、加算器または合算器314)は、たとえば、再構築された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを足すことによって予測ブロック365に再構築された残差ブロック313を足してサンプル領域において再構築されたブロック315を取得するように構成され得る。
【0153】
フィルタリング
(コーディングループ内かまたはコーディングループの後かのどちらかの)ループフィルタユニット320は、たとえば、ピクセルの遷移を平滑化するかまたはそれ以外の方法でビデオの品質を改善するために再構築されたブロック315をフィルタリングしてフィルタリングされたブロック321を取得するように構成される。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ、または1つもしくは複数のその他のフィルタ、たとえば、バイラテラルフィルタ、適応ループフィルタ(ALF)、鮮鋭化、平滑化フィルタ、もしくは共同フィルタ、もしくはこれらの任意の組み合わせなどの1つまたは複数のループフィルタを含み得る。ループフィルタユニット320は図3にループ内フィルタであるものとして示されるが、その他の構成において、ループフィルタユニット320は、ループ後フィルタとして実装され得る。
【0154】
復号されたピクチャバッファ
それから、ピクチャの復号されたビデオブロック321は、その他のピクチャに関するその後の動き補償のための参照ピクチャとしておよび/またはディスプレイ上にそれぞれ出力するために復号されたピクチャ331を記憶する復号されたピクチャバッファ330に記憶される。
【0155】
デコーダ30は、復号されたピクチャ311を、ユーザへの提示または視聴のために、たとえば、出力312を介して出力するように構成される。
【0156】
予測
インター予測ユニット344は、インター予測ユニット244と(特に動き補償ユニットと)同一であることが可能であり、イントラ予測ユニット354は、インター予測ユニット254と機能的に同一であることが可能であり、(たとえば、エントロピー復号ユニット304によって、たとえば、解析および/または復号することによって)符号化されたピクチャデータ21から受け取られた区分けおよび/または予測パラメータまたはそれぞれの情報に基づいて分割または区分けの判断および予測を実行する。モード選択ユニット360は、予測ブロック365を得るために、(フィルタリングされたまたはフィルタリングされていない)再構築されたピクチャ、ブロック、またはそれぞれのサンプルに基づいてブロック毎に予測(イントラまたはインター予測)を実行するように構成され得る。
【0157】
ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、モード選択ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モードおよび現在のピクチャの既に復号されたブロックからのデータに基づいて現在のビデオスライスのピクチャブロックについての予測ブロック365を生成するように構成される。ビデオピクチャがインターコーディングされた(つまり、BまたはP)スライスとしてコーディングされるとき、モード選択ユニット360のインター予測ユニット344(たとえば、動き補償ユニット)は、エントロピー復号ユニット304から受け取られたモーションベクトルおよびその他のシンタックス要素に基づいて現在のビデオスライスのビデオブロックについての予測ブロック365を生成するように構成される。インター予測に関して、予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、DPB330に記憶された参照ピクチャに基づいてデフォルトの構築技術を使用して参照フレームリスト、List 0およびList 1を構築し得る。
【0158】
モード選択ユニット360は、動きベクトルおよびその他のシンタックス要素を解析することによって現在のビデオスライスのビデオブロックについての予測情報を決定し、予測情報を使用して、復号されている現在のビデオブロックについての予測ブロックを生成するように構成される。たとえば、モード選択ユニット360は、受信されたシンタックス要素の一部を使用して、ビデオスライスのビデオブロックをコーディングするために使用された予測モード(たとえば、イントラまたはインター予測)、インター予測のスライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスのための参照ピクチャリストのうちの1つまたは複数に関する構築情報、スライスのそれぞれのインターコーディングされたビデオブロックについての動きベクトル、スライスのそれぞれのインターコーディングされたビデオブロックについてのインター予測のステータス、および現在のビデオスライス内のビデオブロックを復号するためのその他の情報を決定する。
【0159】
ビデオデコーダ30のその他の変化形が、符号化されたピクチャデータ21を復号するために使用され得る。たとえば、デコーダ30は、ループフィルタリングユニット320なしで出力ビデオストリームを生成し得る。たとえば、変換に基づかないデコーダ30は、特定のブロックまたはフレームに関して逆変換処理ユニット312なしに残差信号を直接逆量子化し得る。別の実装において、ビデオデコーダ30は、単一のユニットに組み合わされた逆量子化ユニット310および逆変換処理ユニット312を持ち得る。
【0160】
エンコーダ20およびデコーダ30において、現在のステップの処理結果は、さらに処理され、それから次のステップに出力され得ることを理解されたい。たとえば、補間フィルタリング、動きベクトルの導出、またはループフィルタリングの後、Clipまたはシフトなどのさらなる演算が、補間フィルタリング、動きベクトルの導出、またはループフィルタリングの処理結果に対して実行され得る。
【0161】
さらなる演算が、(アフィンモードの制御点動きベクトル(control point motion vector)、アフィン、平面、ATMVPモードの下位ブロック動きベクトル、時間動きベクトル(temporal motion vector)などを含むがこれらに限定されない)現在のブロックの導出された動きベクトルに適用され得ることに留意されたい。たとえば、動きベクトルの値は、その表現ビットに従って所定の範囲に制約される。動きベクトルの表現ビットがbitDepthである場合、範囲は、-2^(bitDepth-1)~2^(bitDepth-1)-1であり、「^」は、累乗を意味する。たとえば、bitDepthが16に等しいように設定される場合、範囲は、-32768~32767であり、bitDepthが18に等しいように設定される場合、範囲は、-131072~131071である。
【0162】
図4は、本開示の実施形態によるビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、本明細書において説明されるように開示される実施形態を実装するのに好適である。実施形態において、ビデオコーディングデバイス400は、図1Aのビデオデコーダ30などのデコーダまたは図1Aのビデオエンコーダ20などのエンコーダであり得る。
【0163】
ビデオコーディングデバイス400は、データを受信するための着信ポート410(または入力ポート410)および受信機ユニット(Rx)420、データを処理するためのプロセッサ、論理ユニット、または中央演算処理装置(CPU)430、データを送信するための送信機ユニット(Tx)440および発信ポート450(または出力ポート450)、ならびにデータを記憶するためのメモリ460を含む。ビデオコーディングデバイス400は、光または電気信号の発信または着信のために着信ポート410、受信機ユニット420、送信機ユニット440、および発信ポート450に結合された光-電気(OE)構成要素および電気-光(EO)構成要素も含み得る。
【0164】
プロセッサ430は、ハードウェアおよびソフトウェアによって実装される。プロセッサ430は、1つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサとして)、FPGA、ASIC、およびDSPとして実装され得る。プロセッサ430は、着信ポート410、受信機ユニット420、送信機ユニット440、発信ポート450、およびメモリ460と通信する。プロセッサ430は、コーディングモジュール470を含む。コーディングモジュール470は、上述の開示された実施形態を実装する。たとえば、コーディングモジュール470は、様々なコーディング動作を実装するか、処理するか、準備するか、または提供する。したがって、コーディングモジュール470を含むことは、ビデオコーディングデバイス400の機能を大幅に改善し、ビデオコーディングデバイス400の異なる状態への転換をもたらす。代替的に、コーディングモジュール470は、メモリ460に記憶され、プロセッサ430によって実行される命令として実装される。
【0165】
メモリ460は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを含むことが可能であり、プログラムが実行するために選択されるときにそのようなプログラムを記憶するためならびにプログラムの実行中に読まれる命令およびデータを記憶するためのオーバーフローデータ記憶デバイス(over-flow data storage device)として使用され得る。メモリ460は、たとえば、揮発性および/または不揮発性であることが可能であり、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、3値連想メモリ(TCAM: ternary content-addressable memory)、および/またはスタティックランダムアクセスメモリ(SRAM)であり得る。
【0166】
図5は、例示的な実施形態による、図1のソースデバイス12および宛先デバイス14のどちらかまたは両方として使用され得る装置500の簡略化されたブロック図である。
【0167】
装置500のプロセッサ502は、中央演算処理装置であることが可能である。代替的に、プロセッサ502は、既存のまたは今後開発される、情報を操作または処理することができる任意のその他の種類の1つのデバイスまたは複数のデバイスであることが可能である。開示される実装は示されるように単一のプロセッサ、たとえば、プロセッサ502によって実施され得るが、2つ以上のプロセッサを使用することによって速度および効率面の利点が実現され得る。
【0168】
装置500のメモリ504は、実装において、読み出し専用メモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスであることが可能である。任意のその他の好適な種類の記憶デバイスが、メモリ504として使用され得る。メモリ504は、バス512を使用してプロセッサ502によってアクセスされるコードおよびデータ506を含み得る。メモリ504は、オペレーティングシステム508およびアプリケーションプログラム510をさらに含むことが可能であり、アプリケーションプログラム510は、プロセッサ502が本明細書において説明される方法を実行すること可能にする少なくとも1つのプログラムを含む。たとえば、アプリケーションプログラム510は、本明細書において説明される方法を実行するビデオコーディングアプリケーションをさらに含むアプリケーション1からNを含み得る。
【0169】
装置500は、ディスプレイ518などの1つまたは複数の出力デバイスも含み得る。ディスプレイ518は、一例において、ディスプレイをタッチ入力を感知するように動作可能であるタッチ感知要素と組み合わせるタッチ式ディスプレイであり得る。ディスプレイ518は、バス512を介してプロセッサ502に結合され得る。
【0170】
ここでは単一のバスとして示されるが、装置500のバス512は、複数のバスから構成され得る。さらに、二次記憶514は、装置500のその他の構成要素に直接結合されることが可能であり、またはネットワークを介してアクセスされることが可能であり、メモリカードなどの単一の統合されたユニットもしくは複数のメモリカードなどの複数のユニットを含むことが可能である。したがって、装置500は、多種多様な構成で実装され得る。
【0171】
以下で、本明細書において提示される概念をより詳細に説明する。
【0172】
動きベクトルの予測
現在のVVCの設計においては、空間的な動きベクトル予測が使用される。空間的な動きベクトル予測は、インター予測中に空間的な近隣のブロックの動き情報が現在のインターブロック(inter block)の動きベクトルを予測するために使用されることを意味する。特に、マージおよびスキップモードでは、現在のブロックの隣接する空間的な近隣のブロックからの動きベクトルが使用される。マージおよびスキップモードでは、いわゆるHMVP候補が使用され得る。HMVP候補は、履歴に基づく空間的な近隣のブロックからの動き情報を含む。「履歴に基づく」は、復号順で現在のブロックよりも前のブロックからの動き情報が使用されることを意味する。そのような先行ブロックは、現在のブロックと同じフレームからのものであり、現在のブロックの周りの何らかの空間的な近隣にあるが、必ずしも通常の空間的なマージ候補のような隣接したブロックではない。
【0173】
マージ候補リストの構築
マージ候補リストは、以下の候補に基づいて構築される。
図6に示されるように5つの空間的な近隣のブロックから導出される最大4つの空間的なマージ候補、
・2つの時間的な同じ場所にあるブロックから導出される1つの時間的なマージ候補、
・組み合わされた双予測候補およびゼロ動きベクトル候補を含む追加のマージ候補。マージ候補リストの構築は、図12を参照することによって下でより詳細に説明される。
【0174】
空間的候補
マージ候補リスト内の候補の第1の組は、図6に示されるように空間的な近隣のブロックである。インター予測のブロックのマージのために、最大4つの候補が、A1、B1、B0、A0、およびB2をこの順序で順番に調べることによってマージリストに挿入される。単に近隣のブロックが利用可能であり、動き情報を含むかどうかを調べる代わりに、近隣のブロックのすべての動きデータをマージ候補とみなす前に、さらなる冗長性の検査が実行される。これらの冗長性の検査は、以下の2つの異なる目的の2つのカテゴリに分けられ得る。
・HMIリスト内に冗長な動きデータを有する候補を持つことを避ける、
・冗長なシンタックスを生成する、その他の手段によって表現され得る2つの区分をマージすることを防止する。
【0175】
履歴に基づく動きベクトル予測(history-based motion vector prediction)
動きベクトル予測のさらなる改善のために、隣接しないCUからの動き情報(動き情報は1つの参照ピクチャインデックス/複数の参照ピクチャインデックスおよび1つの動きベクトル/複数の動きベクトルを含む)を使用する技術が、提案された。そのような技術のうちの1つが、履歴に基づく動きベクトル予測(HMVP)である。HMVPは、既にコーディングされたCUからの動き情報を含むルックアップテーブル(LUT)を使用する。基本的に、HMVPの方法は、以下の2つの主要な部分からなる。
1. 図10および図11に示されるHMVP LUT構築および更新方法、
2. 図12に示されるマージ候補リスト(またはAMVP候補リスト)を構築するためのHMVP LUTの使用。
【0176】
HMVP LUT構築および更新方法
LUTは、符号化および/または復号プロセス中に保守される。LUTは、新しいスライスに行き当たるとき、空にされる。現在のCUがインターコーディングされるときにはいつも、関連する動き情報が、新しいHMVP候補としてテーブルの最後のエントリに追加される。LUTのサイズ(Nと表記される)は、HMVPの方法のパラメータである。既にコーディングされたCUからのHMVP候補の数がこのLUTのサイズよりも多い場合、テーブル更新方法が適用され、したがって、このLUTは、常にN個以下の既にコーディングされた動き候補を含む。2つのテーブル更新方法が、提案された。
1. 図10に示される先入れ先出し(FIFO)LUT更新方法、
2. 図11に示される制約されたFIFO LUT更新方法。
【0177】
FIFO LUT更新方法
FIFO LUT更新方法によれば、新しい候補を挿入する前に、最も古い候補(第0のテーブルエントリ)が、テーブルから削除される。このプロセスは、図10に示される。この図において、H0は、最も古い(第0の)HMVP候補であり、Xは、新しい候補である。
【0178】
この更新方法は比較的複雑さが少ないが、この方法が適用されるとき、LUTの要素の一部が同じになり得る(同じ動き情報を含み得る)。したがって、LUT内のデータが、冗長になり得、LUT内の動き情報の多様性が、重複する候補が削除される方法よりも劣る。
【0179】
制約FIFO LUT更新方法
コーディングの効率をさらに改善するために、制約FIFO LUT更新方法が導入される。この方法によれば、冗長性の検査が、新しいHMVP候補をテーブルに挿入する前に適用される。冗長性の検査は、新しい候補Xからの動き情報がLUT内に既にある候補Hmに含まれる動き情報と一致するかどうかを知ることを意味する。そのような候補Hmが見つからなかった場合、単純なFIFOの方法が使用され、そうでない場合、以下の手順が実行される。
1. Hmの後のすべてのLUTのエントリが、位置を1つ左に(テーブルの始めの方に向かって)移動させられ、その結果、候補Hmが、テーブルから削除され、LUTの終わりの1つの位置が、解放される。
2. 新しい候補Xが、テーブルの最初の空の位置に追加される。
【0180】
制約FIFO LUT更新方法の使用の例は、図11に示される。
【0181】
動きベクトルのコーディングのためのHMVP LUTの使用
HMVP候補は、マージ候補リスト構築プロセスおよび/またはAMVP候補リスト構築プロセスにおいて使用され得る。
【0182】
マージ候補リストの構築におけるHMVP LUTの使用
一部の例において、HMVP候補は、時間的なマージ候補の後に最後のエントリから最初のエントリまで(たとえば、HN-1、HN-2、...、H0)マージリストに挿入される。LUTの横断順が、図12に示される。HMVP候補がマージリスト内に既に与えられた候補のうちの1つと等しい場合、そのようなHMVP候補は、HMVPリストに追加されない。マージリストの限られたサイズが原因で、一部のHMVP候補、特に、LUTの始めにあるHMVP候補は、現在のCUに関するマージリスト構築プロセスにおいて使用されないこともある。
【0183】
AMVP候補リスト構築プロセスにおけるHMVP LUTの使用
マージモードのために構築されるHMVP LUTは、AMVPのためにも使用され得る。違いは、このLUTからのいくつかのエントリのみがAMVP候補リストの構築のために使用されることである。より詳細には、HMVP LUTの最後のM個のエントリのみが使用される(たとえば、Mは4に等しい)。AMVP候補リスト構築プロセス中に、HMVP候補は、TMVP候補の後に最後から第(N-K)のエントリまで、つまり、HN-1、HN-2、...、HN-KがAMVP候補リストに挿入される。LUTの横断順が、図12に示される。
【0184】
AMVPの目標参照ピクチャと同じ参照ピクチャを有するHMVP候補のみが、使用される。HMVP候補がHMIリスト内に既に与えられた候補のうちの1つに等しい場合、このHMVP候補は、AMVP候補リストの構築のために使用されない。AMVP候補リストサイズの限られたサイズが原因で、一部のHMVP候補は、現在のCUに関するAMVPリスト構築プロセスにおいて使用されないことがある。
【0185】
切り替え可能な補間フィルタ
平行移動によるインター予測されたブロックの動きベクトルの差が、3つの異なる精度(すなわち、4分の1ペル、フルペル、および4ペル)で符号化され得る。それぞれの分数位置のために使用される補間フィルタ(IF)は、決まっている。本開示においては、切り替え可能な補間フィルタ(SIF)技術が、半ペル位置のための1つまたは2つの代替的なルマ補間フィルタの使用を可能にする。利用可能なルマ補間フィルタの間の切り替えは、CUのレベルで行われ得る。シグナリングのオーバーヘッドを減らすために、切り替えは、使用される動きベクトルの精度に依存する。その目的のために、適応的動きベクトル解像度(AMVR: Adaptive Motion Vector Resolution)方式が、半ペルのルマ動きベクトルの精度もサポートするように拡張される。この半ペルの動きベクトルの精度のモードの場合にのみ、代替的な半ペル補間フィルタが、使用されることが可能であり、その代替的な半ペル補間フィルタは、どの補間フィルタが使用されるかを示す追加のシンタックス要素によって示される。空間的なマージ候補を用いるスキップまたはマージモードでは、このシンタックス要素の値が、近隣のブロックから継承され得る。
【0186】
半ペルAMVRモード
半ペルの精度の動きベクトルの差のシグナリングを可能にする、非アフィン非マージインターコーディングされたCUのためのさらなるAMVRモードが、導入される。現在のVVCの草案の既存のAMVR方式が、以下のようにして簡単に拡張される。amvr_flag == 1である場合、シンタックス要素amvr_flagの直後に、新しいコンテキストモデル化された2値シンタックス要素hpel_amvr_flagが存在し、このhpel_amvr_flagは、hpel_amvr_flag == 1である場合、新しい半ペルAMVRモードの使用を示す。そうでない場合、つまり、hpel_amvr_flag == 0である場合、フルペルおよび4ペルAMVRモードの間の選択が、現在のVVCの草案と同様にシンタックス要素amvr_precision_flagによって示される。
【0187】
代替的なルマ半ペル補間フィルタ
半ペルの動きベクトルの精度(つまり、半ペルAMVRモード)を使用する非アフィン非マージインターコーディングされたCUに関して、HEVC/VVCの半ペルルマ補間フィルタと1つまたは複数の代替的な半ペル補間との間の切り替えが、新しいシンタックス要素if_idx(補間フィルタインデックス)の値に基づいて行われ得る。シンタックス要素if_idxは、半ペルAMVRモードの場合にのみシグナリングされる。空間的なマージ候補を使用するスキップ/マージモードの場合、補間フィルタインデックスの値は、近隣のブロックから継承される。
【0188】
動きベクトルの分数位置が、たとえば、分数サンプルを単位とするルマ位置(xFracL, yFracL)によって表され得ることは理解され得る。選択されたマージ候補の動きベクトルは、refMvLX[ 0 ]およびrefMvLX[ 1 ]によって表されることが可能であり、mvLX = mvL0またはmvL1である。
【0189】
例においては、
xFracL = refMvLX[ 0 ] & 15 (8-738)
yFracL = refMvLX[ 1 ] & 15 (8-739)
である。
【0190】
xFracL(またはyFracL)が0に等しい(つまり、MVが整数位置を指す)場合、補間は使用されない。そうでない(xFracLが[1, 15]の範囲内にある)場合、fL[ xFracL ]に指定された係数を有する補間フィルタが、使用される。それぞれの分数サンプル位置p(pは[1, 15]の範囲内にある)に関するルマ補間フィルタ係数fL[ p ]が、Table 8-8(表1)に規定される。
【0191】
このTable 8-8(表1)は、補間フィルタの組の例であり、分数位置に応じて、1つの補間フィルタが、選択される。1つの補間フィルタ(補間フィルタ係数)は、Table 8-8(表1)の1つのラインであり得る。例において、本開示の補間フィルタの組は、半サンプル位置(分数位置: 1/2)を除くすべての位置に関して同じ補間フィルタを有し得る。
【0192】
下のTable 8-8(表1)は、それぞれの分数サンプル位置p(pは[1, 15]の範囲内にあり、精度は1/16ペル(ピクセル)である)に関するHEVC/VVCの補間フィルタ係数fL[ p ]を示す。この表において、p=8のとき、補間フィルタ係数fL[ p ]は、半ペル補間フィルタ係数である。上で検討されたように、これらの半ペル補間フィルタの間の切り替えを可能にするために、この半ペル補間フィルタの代替としてさらなる補間フィルタが追加され得る。代替的な半ペル補間フィルタのいくつかの例が、以降で示される。
【0193】
【表1】
【0194】
1つの代替的な6タップ半ペル補間フィルタを用いる実装
例においては、Table 8-8(表1)に示された通常のHEVC/VVCの半ペル補間フィルタの代替として6タップ補間フィルタが使用され得る。下のTable 1(表2)は、シンタックス要素if_idx(または導出されたIFインデックス)の値と選択される半ペルルマ補間フィルタとの間のマッピングを示す。
【0195】
【表2】
【0196】
2つの代替的な8タップ半ペル補間フィルタを用いる実装
別の例においては、Table 8-8(表1)に示された通常のHEVC/VVCの半ペル補間フィルタの代替として2つの8タップ補間フィルタが使用され得る。下のTable 2(表3)は、シンタックス要素if_idxの値と選択される半ペルルマ補間フィルタとの間のマッピングを示す。
【0197】
【表3】
【0198】
2つの代替的な6タップ半ペル補間フィルタを用いる実装
別の例においては、Table 8-8(表1)に示された通常のHEVC/VVCの半ペル補間フィルタの代替として2つの6タップ補間フィルタが使用され得る。下のTable 3(表4)は、シンタックス要素if_idxの値と選択される半ペルルマ補間フィルタとの間のマッピングを示す。
【0199】
【表4】
【0200】
補間フィルタのTable 4(表5)に示されるように、半ペル位置のための補間フィルタ(このTable 4(表5)のライン「8」参照)が、本開示において切り替えられ得る。本開示においては、対応するMVが半サンプル位置を指すとき、半サンプルの値を補間するために代替的なまたは切り替え可能な半サンプル補間フィルタが、使用される。
【0201】
【表5】
【0202】
より詳細には、以下の態様が、説明される。
1. 履歴に基づく動き情報候補リスト(すなわち、HMIリスト)構築/更新方法の修正。ブロックに先行する1つまたは複数のコーディングされた/復号されたブロックの動き情報に加えて、先行ブロックの補間フィルタ(IF)インデックス(たとえば、半ペル補間フィルタインデックス(hpelIfIdx))が、HMIリストに記憶される。特に、IFインデックスは、HMIリストのHMI候補またはレコードにやはり記憶される。このようにして、IFインデックスが、HMIリストを通じて伝搬されることが可能であり、コーディングの一貫性およびより高いコーディングの効率を達成する。
2. マージモードのための補間フィルタインデックス(半ペル補間フィルタインデックス)導出手順。ブロックが履歴に基づく候補に対応するマージ候補インデックスを有する場合、この履歴に基づく候補のIFインデックス(半ペル補間フィルタインデックス)が、現在のブロックのために使用される。
3. CTUの境界をまたぐSIFインデックスの伝搬。現在のSIFの設計に基づいて、上の空間的な近隣のブロックから動き情報を継承するモードでSIF技術が適用されるとき、現在のブロックがCTUの上の境界にある場合、ラインメモリが増やされる。本明細書において提示される説明においては、現在のブロックの位置が、調べられる。現在のブロックがCTUの上の境界にある場合、左上(B0)、上(B1)、右上(B2)の近隣のブロックからの動き情報を継承するとき、IFインデックスは、継承しておらず、その代わりに、ラインメモリのコストを減らすためにデフォルト値を使用する。
【0203】
CTUの境界をまたぐSIFインデックスの伝搬の例が、図7に示される。この例において、動き情報は、現在のブロック700を包含するCTUと同じではないCTUに属するB1(上)の近隣のブロックから継承される。この場合、B1のブロックのSIFインデックスは、従来技術においてはラインバッファに記憶されなければならない。本発明は、そのような場合のSIFインデックスの伝搬を防止し、したがって、ラインバッファサイズの要件を下げる。マージリストの構築中に、現在のブロックの位置が、調べられる。図7に示されるように、現在のブロックがCTUの上の境界にある場合、左上(B0)、上(B1)、右上(B2)の近隣のブロックからの動き情報を継承する間に、IFインデックスは、継承しておらず、ラインメモリのコストを減らすためにデフォルト値を使用する。詳細は、図8および図9を参照して下のように説明される。
【0204】
図13Aは、履歴に基づく動き情報候補リスト(すなわち、HMIリスト)に関する構築方法1300の流れ図を示し、方法は、以下のステップを含む。
ステップ1301において、履歴に基づく動き情報候補リストを取得し、HMIリストは、ブロックに先行するN個の先行ブロックの動き情報に関連する(それらの動き情報を含む)N個の履歴に基づく動き情報候補Hkの順序付けられたリストであり、k=0, ... , N-1であり、Nは、0よりも大きい整数であり、それぞれの履歴に基づく動き情報候補は、以下の要素を含む。
i) 先行ブロックの1つまたは複数の動きベクトルMV、
ii) 先行ブロックのMVに対応する1つまたは複数の参照ピクチャインデックス、および
iii) 先行ブロックの補間フィルタインデックス。
ステップ1303において、ブロックの動き情報に基づいてHMIリストを更新し、ブロックの動き情報は、以下の要素を含む。
i) ブロックの1つまたは複数の動きベクトルMV、
ii) ブロックのMVに対応する1つまたは複数の参照ピクチャインデックス、および
iii) ブロックの補間フィルタインデックス。
【0205】
ブロックの1つまたは複数のMVがL0およびL1参照ピクチャリストに対応するMVを指すことは、留意され得る。参照ピクチャインデックスについても同じである。
【0206】
図13Bに示されるように、ステップ1301は、履歴に基づく動き情報候補リスト(HMIテーブル)をロードすることを含むステップ1311であることが可能であり、ステップ1303は、復号されたブロックの動き情報を使用して履歴に基づく動き情報候補リスト(テーブル)を更新することを含むステップ1313であり得る。複数のHMVP候補を有するHMIテーブルは、符号化/復号プロセス中に保守される。テーブルは、新しいスライスに行き当たるとき、空にされる。スライスのインターコーディングされたブロックが存在するとき、ブロックは、履歴に基づく動き情報候補を含む動き情報候補リストに基づいて復号され(ステップ1302)、ブロックの関連する動き情報は、新しいHMVP候補としてテーブルの最後のエントリに追加される(ステップ1303)。
【0207】
図14は、ビデオ信号のフレーム内のブロックについてのインター予測のための方法の流れ図を示し、方法は、以下のステップを含む。ステップ1401において、履歴に基づく動き情報候補リスト(すなわち、HMVPリスト)を構築し、HMIリストは、ブロックに先行する複数のブロックの動き情報に関連するN個の履歴に基づく動き情報候補Hkの順序付けられたリストであり、k=0, ... , N-1であり、Nは、0よりも大きい整数であり、それぞれの履歴に基づく動き情報候補は、以下の要素を含む。
i) 1つまたは複数の動きベクトルMV、
ii) MVに対応する1つまたは複数の参照ピクチャインデックス、および
iii) 補間フィルタインデックス。
ステップ1402において、HMIリストからの1つまたは複数の履歴に基づく動き情報候補をブロックについての動き情報候補リストに追加し、
ステップ1403において、動き情報候補リストに基づいてブロックについての動き情報を導出する。
【0208】
動き情報候補リストが以下のようにマージ候補リストを指すことは、理解され得る。
【0209】
履歴に基づくマージ候補がステップ1403において動き情報候補リストに含められることは、理解され得る。
【0210】
図15は、履歴に基づく動き情報候補リスト(すなわち、HMIリスト)を構築し、更新するための方法の流れ図を示す。ステップ1501において、HMIリストが構築される。ステップ1502において、HMVPリストのそれぞれの履歴に基づく動き情報候補の要素i)およびii)の少なくとも一方が、現在のブロックの対応する要素と比較される。ステップ1502は、履歴に基づく動き情報候補リスト内の履歴に基づく動き情報候補の動きベクトルがブロックの対応する動きベクトルと同じであるかどうかを比較することと、履歴に基づく動き情報候補の参照ピクチャインデックスがブロックの対応する参照ピクチャインデックスと同じであるかどうかを比較することとを含む。代替的な設計において、ステップ1502は、それぞれの履歴に基づく動き情報候補の動きベクトルのうちの少なくとも1つがブロックの対応する動きベクトルと異なるかどうかを比較することと、それぞれのHMVP候補の参照ピクチャインデックスのうちの少なくとも1つがブロックの対応する参照ピクチャインデックスと異なるかどうかを比較することとを含む。要素に基づく比較の結果は、図15において比較結果と呼ばれる。
【0211】
比較結果が、履歴に基づく動き情報候補リストのそれぞれの履歴に基づく動き情報候補の以下の要素i)およびii)のうちの少なくとも一方がブロックの動き情報の対応する要素と異なることである場合、現在のブロックの動き情報が、HMVPリストの最後の位置に追加される(ステップ1503)。そうではなく、履歴に基づく動き情報候補リストの履歴に基づく動き情報候補の以下の要素i)およびii)がブロックの動き情報の対応する要素と同じであるならば、履歴に基づく動き情報候補が履歴に基づく動き情報候補リストから削除され、履歴に基づく動き情報候補リストの最後の位置に、ブロックの動き情報を含む履歴に基づく動き情報候補Hkが追加され、k=N-1である(ステップ1504)。
【0212】
そして、上の比較は、IFインデックスの比較なしに、MVおよび参照ピクチャインデックスに関する違いを調べると実行されるだけである。
【0213】
さらなる実施形態は、以下の態様にまとめられる。
【0214】
本発明の第1の態様による、現在のブロックについての補間フィルタインデックス(または補間フィルタの組のインデックス)を導出する方法であって、
フレームのN個の先行ブロックに関連するN個の動きのレコードHkの順序付けられたリストである履歴に基づく動き情報リスト(history-based motion information list)(HMILまたはHMVPテーブル)を構築するステップであって、k=0, ... , N-1であり、Nが、1以上であり、それぞれの動きのレコードが、1つまたは複数の動きベクトル、1つまたは複数の動きベクトルに対応する1つまたは複数の参照ピクチャインデックス、および(2つのMVの両方に関して同じフィルタインデックスまたは同じフィルタの組のインデックスなどの)1つまたは複数の動きベクトルに対応する補間フィルタインデックス(または補間フィルタの組のインデックス)を含む、ステップと、
(HMVPリストまたはHMVPテーブルから現在のブロックについてのHMVP候補を決定するなど)履歴に基づく動き情報リストに基づいて現在のブロックについての(HMVP候補などの)履歴に基づく動き情報候補を決定するステップと、を含む方法。
【0215】
第1の態様自体によるデバイスの可能な実装の形態において、ここにおいて、履歴に基づく動き情報リストに基づいて現在のブロックについての履歴に基づく動き情報候補を決定するステップは、
現在のブロックについての補間フィルタインデックス(または補間フィルタの組のインデックス)としてレコードHkの補間フィルタインデックス(または補間フィルタの組のインデックス)を導出または推測または決定することであって、決定されたまたは選択された(HMVP候補などの)履歴に基づく動き情報候補が、レコードHkに対応する、導出または推測または決定することを含む。
【0216】
第1の態様のいずれかの上述の実装または第1の態様自体によるデバイスの可能な実装の形態において、ここにおいて、履歴に基づく動き情報リスト内の動きのレコードは、前記先行ブロックの動きのレコードがビットストリームから取得される順序で順序付けられる。
【0217】
第1の態様のいずれかの上述の実装または第1の態様自体によるデバイスの可能な実装の形態において、履歴に基づく動き情報リストは、Nの長さを有し、Nは、5である。
【0218】
第1の態様のいずれかの上述の実装または第1の態様自体によるデバイスの可能な実装の形態において、履歴に基づく動き情報リスト(HMVL)を構築するステップは、
現在のブロックの動き情報をHMVLに追加する前に、HMVLの各要素が現在のブロックの動き情報と異なるかどうかを調べることと、
HMVLの各要素が現在のブロックの動き情報と異なる場合にのみ、現在のブロックの動き情報をHMVLに追加することとを含む。
【0219】
第1の態様のいずれかの上述の実装または第1の態様自体によるデバイスの可能な実装の形態において、HMVLの各要素が現在のブロックの動き情報と異なるかどうかを調べることは、
対応する動きベクトルの比較、および
対応する参照ピクチャインデックスの比較を含む。
【0220】
第1の態様のいずれかの上述の実装または第1の態様自体によるデバイスの可能な実装の形態において、HMVLの各要素が現在のブロックの動き情報と異なるかどうかを調べることは、
補間フィルタインデックスの比較を含む。
【0221】
第1の態様のいずれかの上述の実装または第1の態様自体によるデバイスの可能な実装の形態において、第1のブロックの動き情報から動き情報を導出するステップであって、第1のブロックが、現在のブロックとの予め設定された空間的なまたは時間的な位置関係を有する、ステップをさらに含む。
【0222】
第1の態様のいずれかの上述の実装または第1の態様自体によるデバイスの可能な実装の形態において、
第2のブロックの動き情報から動き情報を導出するステップであって、第2のブロックが、現在のブロックの前に再構築される、ステップをさらに含む。
【0223】
第1の態様のいずれかの上述の実装または第1の態様自体によるデバイスの可能な実装の形態において、ここにおいて、履歴に基づく動き情報リスト(HMILまたはHMVPテーブル)は、現在のブロックがマージモードにあるとき、現在のブロックの候補動き情報リストのサブセットであり、または現在のブロックがAMVPモードにあるとき、現在のブロックの候補予測動き情報リストのサブセットである。
【0224】
第1の態様のいずれかの上述の実装または第1の態様自体によるデバイスの可能な実装の形態においては、ただ1つの補間フィルタの組のインデックスが、HMVP候補の1つもしくは複数の動きベクトルに対応する(2つのMVの両方に関して同じフィルタの組のインデックスなど)か、または
1つもしくは複数の補間フィルタの組のインデックスが、HMVP候補の1つもしくは複数の動きベクトルにそれぞれ対応する。
【0225】
本発明の第2の態様による、現在のブロックについてのインター予測の方法であって、
現在のブロックをインター予測するステップであって、現在のブロック関する補間フィルタインデックス(または補間フィルタの組のインデックス)を導出することを含む、ステップを含み、
現在のブロック関する補間フィルタインデックス(または補間フィルタの組のインデックス)を導出することが、
(HMVPテーブルなどの)HMVPリストから現在のブロックについてのHMVP候補を決定することであって、HMVP候補が、少なくとも1つの動きベクトル、少なくとも1つの動きベクトルに対応する少なくとも1つの参照ピクチャインデックス、および(候補全体に関してただ1つの補間フィルタインデックスまたはただ1つの補間フィルタの組のインデックスなどの)少なくとも1つの動きベクトルに対応する少なくとも1つの補間フィルタインデックス(または補間フィルタの組のインデックス)を含む、決定することと、
現在のブロックについての補間フィルタインデックス(または補間フィルタの組のインデックス)として、決定されたまたは選択されたHMVP候補の補間フィルタインデックス(または補間フィルタの組のインデックス)を導出または推測または決定することとを含み、
HMVPリストの1つまたは複数の候補(それぞれの候補など)は、少なくとも1つの動きベクトル、および少なくとも1つの動きベクトルに対応する補間フィルタインデックス(または少なくとも1つの補間フィルタの組のインデックス)を含む、方法。
【0226】
第2の態様自体による方法の可能な実装の形態においては、補間フィルタインデックス(もしくは補間フィルタの組のインデックス)が、HMVP候補の1つもしくは複数の動きベクトルに対応するか、または
1つもしくは複数の補間フィルタインデックス(または1つもしくは複数補間フィルタの組のインデックス)が、HMVP候補の1つもしくは複数の動きベクトルに対応する。
【0227】
本発明の第3の態様による、CTU内の現在の符号化ユニットの位置に基づいてマージモードでコーディングされる符号化ユニットのための補間フィルタを導出する方法であって、
ビットストリームから第1のマージインデックスを解析または導出するステップと、
第1のマージインデックスに従ってマージ候補リストからマージ候補を選択するステップと、
現在の符号化ユニットがCTUの上または左の境界と重なり合うかどうかを判定するステップと、
現在の符号化ユニットがCTUの上または左の境界と重なり合う場合、現在の符号化ユニットに関する補間フィルタインデックス(または補間フィルタの組のインデックス)を予め定義された値に設定するステップと、
そうでない場合、現在の符号化ユニットに関する補間フィルタインデックス(または補間フィルタの組のインデックス)を選択されたマージ候補の補間フィルタインデックス(または補間フィルタの組のインデックス)に等しいように設定するステップと、
補間フィルタインデックス(または補間フィルタの組のインデックス)に基づいて、(N個の予め定義された補間フィルタの組などの)N個の補間フィルタの組から第1の補間フィルタの組を選択するステップであって、Nが、2以上の整数である、ステップと、
選択されたマージ候補のそれぞれの動きベクトルに関して、動きベクトルの(分数サンプルを単位とするルマ位置(xFracL, yFracL)などの)分数位置に基づいて第1の補間フィルタの組から補間フィルタを選択するステップと、を含む方法。
【0228】
第3の態様自体による方法の可能な実装の形態において、
マージ候補リストを構築するステップであって、各候補が、1つまたは複数の動きベクトルおよび補間フィルタインデックス(または(N個の予め定義された補間フィルタの組などの)N個の補間フィルタの組のうちの1つを指定する補間フィルタの組のインデックス)を含む、ステップをさらに含む。
【0229】
第3の態様のいずれかの上述の実装または第3の態様自体による方法の可能な実装の形態において、ここにおいて、現在の符号化ユニットがCTBまたはCTUの上または左の境界と重なり合うかどうかを判定するステップは、現在のブロックの(現在のピクチャの左上のルマサンプルを基準として現在の符号化ブロックの左上のサンプルを指定するルマ位置(xCb, yCb)などの)左上の角が現在の符号化ユニットを含むCTUの上の境界と重なり合うかどうかを判定することを含む。
【0230】
第3の態様のいずれかの上述の実装または第3の態様自体による方法の可能な実装の形態において、現在のブロックの左上の角が現在の符号化ユニットを含むCTUの上の境界と重なり合うかどうかを判定することは、
現在のブロックの左上の角の垂直位置(y座標)を取得することと、
取得された垂直位置(y座標)をCTUの高さで割った後の余りを計算することと、
計算された余りが0に等しい場合、現在のブロックの左上の角が現在のCTUの上の境界と重なり合うと推測し、そうでない場合、現在の符号化ユニットの左上の角が現在のCTUの上の境界と重なり合わないと推測することとを含む。
【0231】
第3の態様のいずれかの上述の実装または第3の態様自体による方法の可能な実装の形態において、現在の符号化ユニットの左上の角が現在の符号化ユニットを含むCTUの上の境界と重なり合うかどうかを判定することは、
現在のブロックの左上の垂直座標(座標y)をCTUの高さで割った数のfloor値(floor value)として第1の値を計算することと、
継承された近隣のブロックの垂直方向のコーディネータの左上をCTUの高さで割った数のfloor値として第2の値を計算することと、
第2の値が第1の値と等しい場合、現在の符号化ユニットの左上の角が現在のCTUの上の境界と重なり合うと推測することとを含む。
【0232】
第3の態様のいずれかの上述の実装または第3の態様自体による方法の可能な実装の形態において、現在の符号化ユニットの左上の角が現在の符号化ユニットを含むCTUの上の境界と重なり合うかどうかを判定することは、
(yCb >> CtbLog2SizeY) << CtbLog2SizeYとして第3の値を計算することであって、yCbが、現在のブロックの左上の垂直座標(座標y)であり、「>>」が、論理または算術右ビットシフトであり、「<<」が、論理または算術左ビットシフトであり、CtbLog2SizeYが、CTUのサイズの2進対数スケールである、計算することと、
(yCb - 1)が第3の値未満である場合、現在の符号化ユニットの左上の角が現在のCTUの上の境界と重なり合うと推測することとを含む。
【0233】
第3の態様のいずれかの上述の実装または第3の態様自体による方法の可能な実装の形態において、第2の予め定義されたエリアは、現在のブロックを含むCTUの左上の角を含むまたは包含する。
【0234】
第3の態様のいずれかの上述の実装または第3の態様自体による方法の可能な実装の形態において、現在のブロックの左上の角が現在のブロックを含むCTUの左の境界と重なり合うかどうかを判定することは、
現在の符号化ユニットの左上の角の水平位置(x座標)を取得することと、
取得された水平位置(x座標)をCTUの幅で割った後の余りを計算することと、
計算された余りが0に等しい場合、現在の符号化ユニットの左上の角が現在のCTUの左の境界と重なり合うと推測することと、
そうでない場合、現在の符号化ユニットの左上の角が現在のCTUの左の境界と重なり合わないと推測することとを含む。
【0235】
第3の態様のいずれかの上述の実装または第3の態様自体による方法の可能な実装の形態において、現在の符号化ユニットの左上の角が現在の符号化ユニットを含むCTUの左の境界と重なり合うかどうかを判定することは、
floor値として第4の値を計算することであって、現在のブロックの左上の水平座標(座標x)がfloor値を取得するためにCTUの幅で割られる、計算することと、
floor値として第5の値を計算することであって、継承された近隣のブロックの垂直方向のコーディネータの左上がfloor値を取得するためにCTUの幅で割られる、計算することと、
第5の値が第4の値に等しい場合、現在の符号化ユニットの左上の角が現在のCTUの左の境界と重なり合うと推測することとを含む。
【0236】
第3の態様のいずれかの上述の実装または第3の態様自体による方法の可能な実装の形態において、現在の符号化ユニットの左上の角が現在の符号化ユニットを含むCTUの左の境界と重なり合うかどうかを判定することは、
( xCb >> CtbLog2SizeX ) << CtbLog2SizeXとして第6の値を計算することであって、xCbが、現在のブロックの左上の垂直座標(座標y)であり、「>>」が、論理または算術右ビットシフトであり、「<<」が、論理または算術左ビットシフトであり、CtbLog2SizeXが、CTUの幅の2進対数スケールである、計算することと、
(xCb - 1)が第6の値未満である場合、現在の符号化ユニットの左上の角が現在のCTUの左の境界と重なり合うと推測することとを含む。
【0237】
第3の態様のいずれかの上述の実装または第3の態様自体による方法の可能な実装の形態においては、Nビットに対する左および右シフト演算の組み合わせの代わりに、下N桁の位置にビット0を含み、それ以外の位置にビット1を含むビットマスクとの論理積(たとえば、( yCb >> CtbLog2SizeY ) << CtbLog2SizeYは、下CtbLog2SizeY桁の位置にビット0を含み、それ以外の位置にビット1を含むビットマスクとのyCbの論理積として計算され得る)。
【0238】
第3の態様のいずれかの上述の実装または第3の態様自体による方法の可能な実装の形態においては、選択された補間フィルタが、参照サンプルの間の分数位置になる予測されたサンプルを生成するために参照サンプルに適用されるか、または
選択された補間フィルタが、(現在の符号化ユニットの下位ブロックの予測サンプルを生成するなど)現在の符号化ユニット内の予測サンプルを生成するために使用される。
【0239】
本発明の第4の態様による、現在のブロックについてのインター予測の方法であって、
条件が満たされるとき、少なくとも2つのルマ位置が、同じ半サンプル補間フィルタインデックスおよび同じ双予測重みインデックスを有する、方法。
【0240】
第4の態様自体による方法の可能な実装の形態においては、-
availableA1がTRUEに等しいとき、ルマ位置( xNbA1, yNbA1 )および( xNbB1, yNbB1 )、またはルマ位置( xNbA1, yNbA1 )および( xNbB0, yNbB0 )、またはルマ位置( xNbA1, yNbA1 )および( xNbA0, yNbA0 )、またはルマ位置( xNbA1, yNbA1 )および( xNbA0, yNbA0 )、またはルマ位置( xNbA1, yNbA1 )および( xNbB2, yNbB2 )が、同じ双予測重みインデックスおよび同じ半サンプル補間フィルタインデックスを有する。
【0241】
第4の態様のいずれかの上述の実装または第4の態様自体による方法の可能な実装の形態においては、availableB1がTRUEに等しいとき、ルマ位置( xNbB1, yNbB1 )および( xNbB0, yNbB0 )、またはルマ位置( xNbB1, yNbB1 )および( xNbA0, yNbA0 )、またはルマ位置( xNbB1, yNbB1 )および( xNbB2, yNbB2 )が、同じ双予測重みインデックスおよび同じ半サンプル補間フィルタインデックスを有する。
【0242】
第4の態様のいずれかの上述の実装または第4の態様自体による方法の可能な実装の形態においては、availableB0がTRUEに等しいとき、ルマ位置( xNbB0, yNbB0 )および( xNbA0, yNbA0 )、またはルマ位置( xNbB0, yNbB0 )および( xNbB2, yNbB2 )が、同じ双予測重みインデックスおよび同じ半サンプル補間フィルタインデックスを有する。
【0243】
第4の態様のいずれかの上述の実装または第4の態様自体による方法の可能な実装の形態においては、availableA0がTRUEに等しいとき、ルマ位置( xNbA0, yNbA0 )および( xNbB2, yNbB2 )が、同じ双予測重みインデックスおよび同じ半サンプル補間フィルタインデックスを有する。
【0244】
本発明の第5の態様による、現在のブロックについてのインター予測の方法であって、
条件が満たされるとき、MVP候補およびマージ候補が同じ動きベクトルおよび同じ参照インデックスを有する、方法。
【0245】
第5の態様のいずれかの上述の実装または第5の態様自体による方法の可能な実装の形態において、半サンプル補間フィルタインデックスを取得すること、
条件が満たされるとき、MVP候補およびマージ候補は、同じ半サンプル補間フィルタインデックスならびに同じ動きベクトルおよび同じ参照インデックスを有する。
【0246】
第5の態様のいずれかの上述の実装または第5の態様自体による方法の可能な実装の形態において、半サンプル補間フィルタインデックスを取得すること、
半サンプル補間フィルタインデックスを含む条件が満たされるとき、MVP候補およびマージ候補は、同じ動きベクトルおよび同じ参照インデックスを有する。
【0247】
提案される方法のマージ候補リストに基づくブロックについての補間フィルタの組のインデックスを含む動き情報の導出(図14に示された方法1400のステップ1403参照)の可能な実装の詳細が、VVCの作業草案の仕様に対する修正の形式で以下の通り説明される。修正は、強調される。
【0248】
8.5.2 動きベクトル成分および参照インデックスに関する導出プロセス
8.5.2.1 概要
このプロセスへの入力は、以下である。
- 現在のピクチャの左上のルマサンプルを基準とする現在のルマ符号化ブロックの左上のサンプルのルマ位置( xCb, yCb )
- 現在の符号化ブロックの幅をルマサンプルで指定する変数cbWidth
- 現在の符号化ブロックの高さをルマサンプルで指定する変数cbHeight。
【0249】
このプロセスの出力は、以下である。
- 1/16の分数サンプル精度のルマ動きベクトルmvL0[ 0 ][ 0 ]およびmvL1[ 0 ][ 0 ]
- 参照インデックスrefIdxL0およびrefIdxL1
- 予測リスト利用フラグpredFlagL0[ 0 ][ 0 ]およびpredFlagL1[ 0 ][ 0 ]
- 半サンプル補間フィルタインデックスhpelIfIdx
- 双予測重みインデックスbcwIdx。
【0250】
変数LXが現在のピクチャのRefPicList[ X ]であり、Xは0または1であるものとする。
【0251】
変数mvL0[ 0 ][ 0 ]およびmvL1[ 0 ][ 0 ]、refIdxL0およびrefIdxL1、ならびにpredFlagL0[ 0 ][ 0 ]およびpredFlagL1[ 0 ][ 0 ]の導出のために、以下が適用される。
- general_merge_flag[ xCb ][ yCb ]が1に等しい場合、8.5.2.2項に規定されたマージモードのためのルマ動きベクトルに関する導出プロセスが、ルマ位置( xCb, yCb )、変数cbWidthおよびcbHeightを入力として呼び出され、出力は、ルマ動きベクトルmvL0[ 0 ][ 0 ]、mvL1[ 0 ][ 0 ]、参照インデックスrefIdxL0、refIdxL1、予測リスト利用フラグpredFlagL0[ 0 ][ 0 ]およびpredFlagL1[ 0 ][ 0 ]、半サンプル補間フィルタインデックスhpelIfIdx、双予測重みインデックスbcwIdx、ならびにマージ候補リストmergeCandListである。
- それ以外の場合、以下が適用される。
- 変数predFlagLX[ 0 ][ 0 ]、mvLX[ 0 ][ 0 ]、およびrefIdxLXにおいて、PRED_LXにおいて、ならびにシンタックス要素ref_idx_lXおよびMvdLXにおいて0かまたは1かのどちらかによって置き換えられるXに関して、以下の順序付けられたステップが適用される。
1. 変数refIdxLX and predFlagLX[ 0 ][ 0 ]が、以下のように導出される。
- inter_pred_idc[ xCb ][ yCb ]がPRED_LXまたはPRED_BIに等しい場合、
refIdxLX = ref_idx_lX[ xCb ][ yCb ] (8-292)
predFlagLX[ 0 ][0 ] = 1 (8-293)
- それ以外の場合、変数refIdxLXおよびpredFlagLX[ 0 ][0 ]が、以下によって規定される。
refIdxLX = -1 (8-294)
predFlagLX[ 0 ][ 0 ] = 0 (8-295)
2. 変数mvdLXが、以下のように導出される。
mvdLX[ 0 ] = MvdLX[ xCb ][ yCb ][ 0 ] (8-296)
mvdLX[ 1 ] = MvdLX[ xCb ][ yCb ][ 1 ] (8-297)
3. predFlagLX[ 0 ][ 0 ]が1に等しいとき、8.5.2.8項のルマ動きベクトル予測のための導出プロセスが、ルマ符号化ブロックの位置( xCb, yCb )、符号化ブロックの幅cbWidth、符号化ブロックの高さcbHeight、および変数refIdxLXを入力として呼び出され、出力は、mvpLXである。
4. predFlagLX[ 0 ][ 0 ]が1に等しいとき、ルマ動きベクトルmvLX[ 0 ][ 0 ]が、以下のように導出される。
uLX[ 0 ] = ( mvpLX[ 0 ] + mvdLX[ 0 ] + 218 ) % 218 (8-298)
mvLX[ 0 ][ 0 ][ 0 ] = ( uLX[ 0 ] >= 217 ) ? ( uLX[ 0 ] - 218 ) : uLX[ 0 ] (8-299)
uLX[ 1 ] = ( mvpLX[ 1 ] + mvdLX[ 1 ] + 218 ) % 218 (8-300)
mvLX[ 0 ][ 0 ][ 1 ] = ( uLX[ 1 ] >= 217 ) ? ( uLX[ 1 ] - 218 ) : uLX[ 1 ] (8-301)
注1 - 上で規定されたmvLX[ 0 ][ 0 ][ 0 ]およびmvLX[ 0 ][ 0 ][ 1 ]の結果として得られる値は、常に、-217および217-1を含んで-217から217-1までの範囲内に入る。
- 半サンプル補間フィルタインデックスhpelIfIdxが、以下のように導出される。
hpelIfIdx = AmvrShift == 3 ? 1 : 0 (8-302)
- 双予測重みインデックスbcwIdxが、bcw_idx[ xCb ][ yCb ]に等しいように設定される。
【0252】
以下の条件のすべてが真であるとき、refIdxL1が、-1に等しいように設定され、predFlagL1が、0に等しいように設定され、bcwIdxが、0に等しいように設定される。
- predFlagL0[ 0 ][ 0 ]が1に等しい
- predFlagL1[ 0 ][ 0 ]が1に等しい
- (cbWidth + cbHeight)の値が12に等しい。
【0253】
8.5.2.16項に規定された履歴に基づく動きベクトル予測子リストに関する更新プロセスが、ルマ動きベクトルmvL0[ 0 ][ 0 ]およびmvL1[ 0 ][ 0 ]、参照インデックスrefIdxL0およびrefIdxL1、予測リスト利用フラグpredFlagL0[ 0 ][ 0 ]およびpredFlagL1[ 0 ][ 0 ]、双予測重みインデックスbcwIdx、ならびに半サンプル補間フィルタインデックスhpelIfIdxを用いて呼び出される。
【0254】
方法が単予測(uni prediction)と双予測との両方のために適用されることは、理解され得る。VVCの作業草案の仕様においては2つの参照インデックスおよび2つの予測リスト利用フラグが転送されるが、単予測の場合、predFlagL1が0に等しいように設定され、これは、L1予測が使用されず、この場合、refIdxL1が-1に等しいように設定されることを意味することは、理解され得る。
【0255】
提案される方法の履歴に基づくマージ候補の導出(図14に示された方法1400のステップ1402参照)の可能な実装の詳細が、VVCの草案の仕様の修正の形式で以下の通り説明される。修正は、強調される。
【0256】
8.5.2.6 履歴に基づくマージ候補に関する導出プロセス
このプロセスへの入力は、以下である。
- マージ候補リストmergeCandList
- リスト内の利用可能なマージ候補の数numCurrMergeCand。
【0257】
このプロセスへの出力は、以下である。
- 修正されたマージ候補リストmergeCandList
- リスト内のマージ候補の修正された数numCurrMergeCand。
【0258】
変数isPrunedA1およびisPrunedB1は、両方ともFALSEに等しいように設定される。
インデックスhMvpIdx = 1..NumHmvpCandを有するHmvpCandList[ hMvpIdx ]内の各候補に関して、numCurrMergeCandがMaxNumMergeCand - 1に等しくなるまで、以下の順序付けられたステップが繰り返される。
1. 変数sameMotionが、以下のように導出される。
- NがA1またはB1であるものとして任意のマージ候補Nに関して以下の条件のすべてが真である場合、sameMotionおよびisPrunedNが、両方ともTRUEに等しいように設定される。
- hMvpIdxが2以下である
- 候補HmvpCandList[ NumHmvpCand - hMvpIdx ]およびマージ候補Nが同じ動きベクトルおよび同じ参照インデックスを有する
- isPrunedNがFALSEに等しい
- それ以外の場合、sameMotionが、FALSEに等しいように設定される。
2. sameMotionがFALSEに等しいとき、候補HmvpCandList[ NumHmvpCand - hMvpIdx ]が、以下のようにマージ候補リストに追加される。
mergeCandList[ numCurrMergeCand++ ] = HmvpCandList[ NumHmvpCand - hMvpIdx ] (8-381)
【0259】
提案される方法の履歴に基づく動き情報(HMVP)候補リストの更新(図13Aおよび図13Bに示されたステップ1303、1313参照)の第1の可能な実装の詳細が、VVCの草案の仕様の修正の形式で以下の通り説明される。修正は、強調される。
【0260】
8.5.2.16 履歴に基づく動きベクトル予測子候補リストに関する更新プロセス
このプロセスへの入力は、以下である。
- 1/16の分数サンプル精度のルマ動きベクトルmvL0およびmvL1
- 参照インデックスrefIdxL0およびrefIdxL1
- 予測リスト利用フラグpredFlagL0およびpredFlagL1
- 双予測重みインデックスgbiIdx
- 半サンプル補間フィルタの組のインデックスhpelIfIdx
【0261】
MVP候補hMvpCandは、ルマ動きベクトルmvL0およびmvL1、参照インデックスrefIdxL0およびrefIdxL1、予測リスト利用フラグpredFlagL0およびpredFlagL1、双予測重みインデックスgbiIdx、ならびに半サンプル補間フィルタの組のインデックスhpelIfIdxからなる。
【0262】
候補リストHmvpCandListは、以下の順序付けられたステップによって候補hMvpCandを使用して修正される。
1. 変数identicalCandExistが、FALSEに等しいように設定され、変数removeIdxが、0に等しいように設定される。
2. NumHmvpCandが0よりも大きいとき、hMvpIdx = 0..NumHmvpCand - 1である各インデックスhMvpIdxに関して、identicalCandExistがTRUEに等しくなるまで、以下のステップが適用される。
- hMvpCandがHmvpCandList[ hMvpIdx ]に等しいとき、identicalCandExistが、TRUEに等しいように設定され、removeIdxが、hMvpIdxに等しいように設定される。
3. 候補リストHmvpCandListが、以下のように更新される。
- identicalCandExistがTRUEに等しいかまたはNumHmvpCandがMaxNumMergeCand - 1に等しい場合、以下が適用される。
- i = ( removeIdx + 1 )..( NumHmvpCand - 1 )である各インデックスiに関して、HmvpCandList[ i - 1 ]がHmvpCandList[ i ]に等しいように設定される。
- HmvpCandList[ NumHmvpCand - 1 ]がmvCandに等しいように設定される。
- そうでない(identicalCandExistがFALSEに等しく、NumHmvpCandがMaxNumMergeCand - 1未満である)場合、以下が適用される。
- HmvpCandList[ NumHmvpCand++ ]がmvCandに等しいように設定される。
【0263】
提案される方法の履歴に基づく動き情報(HMVP)候補リストの更新(図13Aおよび図13Bに示されたステップ1303、1313参照、図15に示されたステップ1502~1504参照)の第2の可能な実装の詳細が、VVCの草案の仕様の修正の形式で以下の通り説明される。修正は、強調される。
【0264】
8.5.2.16 履歴に基づく動きベクトル予測子候補リストに関する更新プロセス
このプロセスへの入力は、以下である。
- 1/16の分数サンプル精度のルマ動きベクトルmvL0およびmvL1
- 参照インデックスrefIdxL0およびrefIdxL1
- 予測リスト利用フラグpredFlagL0およびpredFlagL1
- 双予測重みインデックスbcwIdx
- 半サンプル補間フィルタインデックスhpelIfIdx。
【0265】
MVP候補hMvpCandは、ルマ動きベクトルmvL0およびmvL1、参照インデックスrefIdxL0およびrefIdxL1、予測リスト利用フラグpredFlagL0およびpredFlagL1、双予測重みインデックスbcwIdx、ならびに半サンプル補間フィルタインデックスhpelIfIdxからなる。
【0266】
候補リストHmvpCandListは、以下の順序付けられたステップによって候補hMvpCandを使用して修正される。
4. 変数identicalCandExistが、FALSEに等しいように設定され、変数removeIdxが、0に等しいように設定される。
5. NumHmvpCandが0よりも大きいとき、hMvpIdx = 0..NumHmvpCand - 1である各インデックスhMvpIdxに関して、identicalCandExistがTRUEに等しくなるまで、以下のステップが適用される。
- hMvpCandおよびHmvpCandList[hMvpIdx]が同じ動きベクトルおよび同じ参照インデックスを有するとき、identicalCandExistがTRUEに等しいように設定され、removeIdxがhMvpIdxに等しいように設定される。
6. 候補リストHmvpCandListが、以下のように更新される。
- identicalCandExistがTRUEに等しいかまたはNumHmvpCandが5に等しい場合、以下が適用される。
- i = ( removeIdx + 1 )..( NumHmvpCand - 1 )である各インデックスiに関して、HmvpCandList[ i - 1 ]がHmvpCandList[ i ]に等しいように設定される。
- HmvpCandList[ NumHmvpCand - 1 ]がhMvpCandに等しいように設定される。
- そうでない(identicalCandExistがFALSEに等しく、NumHmvpCandが5未満である)場合、以下が適用される。
- HmvpCandList[ NumHmvpCand++ ]がhMvpCandに等しいように設定される。
【0267】
以上から分かるように、第2の実装は、HMVP候補の比較される要素i)およびii)を指定し、一方、第1の実装は、HMVP候補の比較されるすべての要素(要素i)、ii)、およびiii)などを指定する。
【0268】
実施形態および例示的な実施形態は、それらのそれぞれの方法を有し、対応する装置を有する。
【0269】
図16は、HMIリスト取得ユニット1601およびHMIリスト更新ユニット1603を含む、履歴に基づく動き情報候補リストを構築するための装置1600の図を示す。
【0270】
履歴に基づく動き情報(HMI)候補リスト取得ユニット1601は、履歴に基づく動き情報候補リストを取得するように構成され、HMIリストは、ブロックに先行する複数のブロックの動き情報に関連するN個の履歴に基づく動き情報候補Hkの順序付けられたリストであり、k=0, ... , N-1であり、Nは、0よりも大きい整数であり、それぞれの履歴に基づく動き情報候補は、要素、すなわち、
iv) 1つまたは複数の動きベクトルMV、
v) MVに対応する1つまたは複数の参照ピクチャインデックス、および
vi) 補間フィルタインデックス
を含み、履歴に基づく動き情報候補リスト更新ユニット1603は、ブロックの動き情報に基づいてHMIリストを更新するように構成され、ブロックの動き情報は、要素、すなわち、
iv) 1つまたは複数の動きベクトルMV、
v) MVに対応する1つまたは複数の参照ピクチャインデックス、および
vi) 補間フィルタインデックス
を含む。
【0271】
本出願のこの実施形態において提供されるエンコーダ20またはデコーダ30の(インター予測モジュールに対応する)HMIリスト取得ユニット1601およびHMIリスト更新ユニット1603が、上述の対応する方法に含まれる様々な実行ステップを実施するための機能エンティティであり、つまり、本出願の方法のステップならびにこれらのステップの拡張および変形を完全に実施するための機能エンティティを有することは理解されるであろう。詳細に関しては、対応する方法の上述の説明を参照されたい。簡潔にするために、詳細は本明細書において再度説明されない。
【0272】
図17は、本開示の実施形態によるインター予測装置1700の図を示す。装置1700は、フレームの現在のブロックについての動き情報を決定するために提供される。装置1700は、現在のブロックに先行するフレームのN個の先行ブロックの動き情報に関連するN個の履歴に基づく候補Hkの順序付けられたリストであるHMVPリストを構築するように構成されたリスト管理ユニット1701であって、k=0, ... , N-1であり、Nが、1以上であり、それぞれのまたは少なくとも1つの履歴に基づく候補が、要素i)1つまたは複数の動きベクトルMV、ii)MVに対応する1つまたは複数の参照ピクチャインデックス、およびiii)(半ペル補間フィルタインデックスなどの)補間フィルタインデックスまたは補間フィルタの組のインデックスを含む動き情報を含み、HMVPリスト管理ユニット1701が、HMVPリストからの1つまたは複数の履歴に基づく候補を現在のブロックのための動き情報候補リストに追加するようにさらに構成される、リスト管理ユニット1701と、動き情報候補リストに基づいて動き情報を導出するように構成された情報導出ユニット1703とを含む。
【0273】
実装において、リスト管理ユニット1701は、HMIリストのそれぞれの履歴に基づく候補の要素のうちの少なくとも1つを現在のブロックの対応する要素と比較するように構成される。動き情報追加ユニットが、比較の結果としてHMIリストの履歴に基づく候補の各々の要素のうちの少なくとも1つが現在のブロックの動き情報の対応する要素と異なる場合に現在のブロックの動き情報をHMIリストに追加するように構成される。
【0274】
それに対応して、一例において、装置1700の例示的な構造は、図2のエンコーダ20に対応し得る。別の例において、装置1700の例示的な構造は、図3のデコーダ30に対応し得る。
【0275】
別の例において、装置1700の例示的な構造は、図2のインター予測ユニット244に対応し得る。別の例において、装置1700の例示的な構造は、図3のインター予測ユニット344に対応し得る。
【0276】
本出願のこの実施形態において提供されるエンコーダ20またはデコーダ30の(インター予測モジュールに対応する)リスト管理ユニット1701および情報導出ユニット1703が、上述の対応する方法に含まれる様々な実行ステップを実施するための機能エンティティであり、つまり、本出願の方法のステップならびにこれらのステップの拡張および変形を完全に実施するための機能エンティティを有することは理解されるであろう。詳細に関しては、対応する方法の上述の説明を参照されたい。簡潔にするために、詳細は本明細書において再度説明されない。
【0277】
より詳細には、CTUの境界をまたぐSIFインデックスの伝搬に関連する以下の態様が、説明される。
【0278】
上述のように、現在のSIFの設計に基づいて、上の空間的な近隣のブロックから動き情報を継承するモードでSIF技術が適用されるとき、現在のブロックがCTU/CTBの上の境界にある場合、ラインメモリが増やされる。本明細書において提示される説明においては、現在のブロックの位置が、調べられる。現在のブロックがCTU/CTBの上の境界にある場合、左上(B0)、上(B1)、右上(B2)の近隣のブロックからの動き情報を継承するとき、IFインデックスは、近隣のブロックから継承しておらず、その代わりに、ラインメモリの使用を減らすためにデフォルト値を使用する。
【0279】
本開示の態様においては、現在のブロックについてのインター予測の方法が提供され、方法は、
コーディングツリーブロック(CTB)またはコーディングツリーユニット(CTU)内の(符号化ユニットまたは符号化ブロックなどの)現在のブロックの位置および選択されたマージ候補から継承された補間フィルタインデックスに基づいて現在のブロックについての補間フィルタインデックスを導出することを含む、ブロックをインター予測するステップを含む。
【0280】
図8は、以下を含む、コーディングツリーブロック(CTB)またはコーディングツリーユニット(CTU)内の(符号化ユニットまたは符号化ブロックなどの)現在のブロックについての補間フィルタの組のインデックスを導出するための方法の流れ図を示す。
【0281】
ステップ803において、方法は、現在のブロックが(CTBまたはCTUの上または左の境界などの)CTBまたはCTUの予め定義されたエリアと重なり合うかどうかを判定するステップを含む。
【0282】
ステップ804において、方法は、現在のブロックがCTUの予め定義されたエリアと重なり合わない(たとえば、現在のブロックがCTBまたはCTUの上または左の境界と重なり合わない)場合、現在のブロックの補間フィルタの組のインデックスを選択された候補の補間フィルタの組のインデックスとして設定するステップを含む。選択された候補は、たとえば、選択されたマージ候補または選択されたMVP候補であることが可能である。選択された候補は、選択されたマージ候補に対応する近隣のブロックであることも可能である。
【0283】
ステップ805において、方法は、現在のブロックが(CTBまたはCTUの上または左の境界などの)CTBまたはCTUの予め定義されたエリアと重なり合う場合、現在のブロックについての補間フィルタの組のインデックスを予め定義された値に設定するステップを含む。
【0284】
さらに、ステップ801~802において、方法は、候補リストの構築を含む。簡潔にするために、詳細は本明細書において再度説明されない。
【0285】
現在のブロックがCTU 900の上の境界にあるかどうかを判断するために、図9に示されるように、現在のブロックの左上の角の垂直座標(yCb)が、調べられる。CTU 900のサイズが(1 << CtbLog2SizeY)x(1 << CtbLog2SizeY)に等しいとすると、( yCb >> CtbLog2SizeY ) << CtbLog2SizeYがyCbに等しくない場合、現在のブロックは、CTU 900の上の境界になく(シナリオ1)、そうでない場合(( yCb >> CtbLog2SizeY ) << CtbLog2SizeYがyCbに等しい場合)、現在のブロックは、CTU 900の上の境界にある(シナリオ2)。
【0286】
本開示の実施形態によれば、(選択されたマージ候補などの)選択された候補は、空間的なマージ候補である。
【0287】
本開示の実施形態によれば、空間的なマージ候補に関連する垂直位置が、現在のブロックの垂直位置未満であるか、または空間的なマージ候補に対応する近隣のブロックの垂直位置が、現在のブロックの垂直位置未満である。
【0288】
本開示の実施形態によれば、空間的なマージ候補は、右上の候補(図6に示されたB0)、上の候補(図6に示されたB1)、または左上の候補(図6に示されたB2)である。
【0289】
本開示の実施形態によれば、ここにおいて、マージ候補は、アフィンマージ候補である。アフィンマージ候補は、継承されたアフィンマージ候補であり、「継承された」は、(i)候補が近隣のアフィンブロックに基づいて導出されるか、(ii)現在のブロックのアフィンモデルが近隣のアフィンブロックのアフィンモデルから継承されるか、または(iii)現在のブロックのアフィンパラメータが近隣のアフィンブロックのアフィンパラメータに基づいて導出されることを意味する。
【0290】
本開示の実施形態によれば、継承されたアフィンマージ候補は、空間的な近隣のブロックのうちの1つに基づいて導出され、空間的な近隣のブロックは、(図6に示されたA0などの)左下のブロック、(図6に示されたA1などの)左のブロック、(図6に示されたB0などの)右上のブロック、(図6に示されたB1などの)上のブロック、または(図6に示されたB2などの)左上のブロックを含む。
【0291】
本開示の実施形態によれば、継承されたアフィンマージ候補は、現在のブロックの垂直位置未満の垂直位置を有するブロックに基づいて導出される。
【0292】
本開示の実施形態によれば、継承されたアフィンマージ候補は、(図6に示されたB0などの)右上のブロック、(図6に示されたB1などの)上のブロック、または(図6に示されたB2などの)左上のブロックに基づいて導出される。
【0293】
本開示の実施形態によれば、(選択されたマージ候補などの)選択された候補は、下位ブロックマージ候補である。
【0294】
本開示の実施形態によれば、ここにおいて、CTUの予め定義されたエリアは、CTBまたはCTUと一致する。
【0295】
本開示の実施形態によれば、現在のブロックが予め定義されたエリアと重なり合うかどうかを判定するステップは、(現在のブロックの左上のサンプルの水平位置および垂直位置などの)符号化ユニットの左上の角の位置(現在のピクチャの左上のルマサンプルを基準とする現在のブロックの左上のサンプルを指定するルマ位置( xCb, yCb )など)に基づいて実行される。
【0296】
本開示の実施形態によれば、現在のブロックは、現在のブロックの左上の角が(CTUの左上の角などの)第2の予め定義されたエリアと重なり合う場合に(CTUの上の境界などの)予め定義されたエリアと重なり合っていると推測される。
【0297】
本開示の実施形態によれば、第2の予め定義されたエリアは、現在のブロックを含むCTUの上の境界を含むまたは包含する(たとえば、CTUの左上の角は、現在のブロックを含むCTUの上の境界または左の境界を含むかまたは包含する)。
【0298】
本開示の実施形態によれば、現在のブロックがCTBまたはCTUの予め定義されたエリアと重なり合うかどうかを判定するステップは、現在のブロックの(現在のピクチャの左上のルマサンプルを基準として現在のブロックの左上のサンプルを指定するルマ位置( xCb, yCb )などの)左上の角が現在の符号化ユニットを含むCTUの上の境界と重なり合うかどうかを判定することを含む。
【0299】
本開示の実施形態によれば、現在のブロックの左上の角が現在の符号化ユニットを含むCTUの上の境界と重なり合うかどうかを判定することは、
現在のブロックの左上の角の垂直位置(y座標)を取得することと、
取得された垂直位置(y座標)をCTUの高さで割った後の余りを計算することと、
計算された余りが0に等しい場合、現在のブロックの左上の角が現在のCTUの上の境界と重なり合うと推測し、そうでない場合、現在の符号化ユニットの左上の角が現在のCTUの上の境界と重なり合わないと推測することとを含む。
【0300】
本開示の実施形態によれば、現在の符号化ユニットの左上の角が現在の符号化ユニットを含むCTUの上の境界と重なり合うかどうかを判定することは、
floor値として第1の値を計算することであって、現在のブロックの左上の垂直座標(座標y)がfloor値を取得するためにCTUの高さで割られる、計算することと、
floor値として第2の値を計算することであって、継承された近隣のブロックの垂直方向のコーディネータの左上がfloor値を取得するためにCTUの高さで割られる、計算することと、
第2の値が第1の値と等しい場合、現在の符号化ユニットの左上の角が現在のCTUの上の境界と重なり合うと推測することとを含む。
【0301】
本開示の実施形態によれば、現在の符号化ユニットの左上の角が現在の符号化ユニットを含むCTUの上の境界と重なり合うかどうかを判定することは、
( yCb >> CtbLog2SizeY ) << CtbLog2SizeYとして第3の値を計算することであって、yCbが、現在のブロックの左上の垂直座標(座標y)であり、「>>」が、論理または算術右ビットシフトであり、「<<」が、論理または算術左ビットシフトであり、CtbLog2SizeYが、CTUまたはCTBのサイズの2進対数スケールである、計算することと、
(yCb - 1)が第3の値未満である場合、現在の符号化ユニットの左上の角が現在のCTUの上の境界と重なり合うと推測することとを含む。
【0302】
本開示の実施形態によれば、第2の予め定義されたエリアは、現在のブロックを含むCTUの左上の角を含むまたは包含する。
【0303】
本開示の実施形態によれば、現在のブロックの左上の角が現在のブロックを含むCTUの左の境界と重なり合うかどうかを判定することは、
現在の符号化ユニットの左上の角の水平位置(x座標)を取得することと、
取得された水平位置(x座標)をCTUの幅で割った後の余りを計算することと、
計算された余りが0に等しい場合、現在の符号化ユニットの左上の角が現在のCTUの左の境界と重なり合うと推測することと、
そうでない場合、現在の符号化ユニットの左上の角が現在のCTUの左の境界と重なり合わないと推測することとを含む。
【0304】
本開示の実施形態によれば、現在の符号化ユニットの左上の角が現在の符号化ユニットを含むCTUの左の境界と重なり合うかどうかを判定することは、
floor値として第4の値を計算することであって、現在のブロックの左上の水平座標(座標x)がfloor値を取得するためにCTUの幅で割られる、計算することと、
floor値として第5の値を計算することであって、継承された近隣のブロックの垂直方向のコーディネータの左上がfloor値を取得するためにCTUの幅で割られる、計算することと、
第5の値が第4の値に等しい場合、現在の符号化ユニットの左上の角が現在のCTUの左の境界と重なり合うと推測することとを含む。
【0305】
本開示の実施形態によれば、現在の符号化ユニットの左上の角が現在の符号化ユニットを含むCTUの左の境界と重なり合うかどうかを判定することは、
( xCb >> CtbLog2SizeX ) << CtbLog2SizeXとして第6の値を計算することであって、xCbが、現在のブロックの左上の垂直座標(座標y)であり、「>>」が、論理または算術右ビットシフトであり、「<<」が、論理または算術左ビットシフトであり、CtbLog2SizeXが、CTUの幅の2進対数スケールである、計算することと、
(xCb - 1)が第6の値未満である場合、現在の符号化ユニットの左上の角が現在のCTUの左の境界と重なり合うと推測することとを含む。
【0306】
本開示の実施形態によれば、Nビットに対する左および右シフト演算の組み合わせの代わりに、下N桁の位置にビット0を含み、それ以外の位置にビット1を含むビットマスクとの論理積(たとえば、( yCb >> CtbLog2SizeY ) << CtbLog2SizeYは、下CtbLog2SizeY桁の位置にビット0を含み、それ以外の位置にビット1を含むビットマスクとのyCbの論理積として計算され得る)。たとえば、yCbが[0, 232 - 1]の範囲内にあり、CtbLog2SizeYが7に等しい場合、( yCb >> CtbLog2SizeY ) << CtbLog2SizeYの代わりにyCb & 0xFFFFFF80の値が計算され得る。ここで、0xFFFFFF80は、下7桁の位置に0を含み、それ以外の位置に1を含むビットマスクである。
【0307】
本開示の実施形態によれば、除算の結果のfloor値を計算するために、論理または算術シフトが使用される。(たとえば、a/2nの例示的なfloor値は、a >> nとして計算され得る)。
【0308】
本開示の実施形態によれば、第2の予め定義されたエリアは、現在のブロックを含むCTUの上の境界のみを含むまたは包含する。
【0309】
本開示の実施形態によれば、第2の予め定義されたエリアは、現在のブロックを含むCTUの左の境界のみを含むまたは包含する。
【0310】
本開示の実施形態によれば、第2の予め定義されたエリアは、現在のブロックを含むCTUの上および左の境界のみを含むまたは包含する。
【0311】
本開示の実施形態によれば、現在のブロックについての補間フィルタの組のインデックスを予め定義された値に設定するステップは、
現在のブロックについての補間フィルタの組のインデックスを第7の値に設定することであって、第7の値がマージリストの構築の前に決定される、設定することを含む。
【0312】
本開示の実施形態によれば、第7の値を決定することは、
現在のブロックの空間的な近隣のブロックのうちの1つの補間フィルタの組のインデックスを決定することと、第7の値を決定された補間フィルタの組のインデックスに等しいように設定することとを含む。
【0313】
本開示の実施形態によれば、「空間的な近隣のブロックのうちの1つ」は、左の近隣のブロックを意味する(このブロックは、図6においてA1として参照される)。
【0314】
提案される方法のCTUの境界をまたぐSIFインデックスの伝搬(プロセスは図8および図9に示される)の可能な実装の詳細が、SIFの提案の作業草案の仕様の修正の形式で以下の通り説明される)。修正は、強調される。
【0315】
8.5.2.3 空間的なマージ候補に関する導出プロセス
このプロセスへの入力は、以下である。
- 現在のピクチャの左上のルマサンプルを基準とする現在のルマ符号化ブロックの左上のサンプルのルマ位置( xCb, yCb )
- 現在の符号化ブロックの幅をルマサンプルで指定する変数cbWidth
- 現在の符号化ブロックの高さをルマサンプルで指定する変数cbHeight。
【0316】
このプロセスの出力は、Xが0または1であるものとして以下の通りである。
- 近隣の符号化ユニットの可用性のフラグavailableFlagA0、availableFlagA1、availableFlagB0、availableFlagB1、およびavailableFlagB2
- 近隣の符号化ユニットの参照インデックスrefIdxLXA0、refIdxLXA1、refIdxLXB0、refIdxLXB1、およびrefIdxLXB2
- 近隣の符号化ユニットの予測リスト利用フラグpredFlagLXA0、predFlagLXA1、predFlagLXB0、predFlagLXB1、およびpredFlagLXB2
- 近隣の符号化ユニットの1/16の分数サンプル精度の動きベクトルmvLXA0、mvLXA1、mvLXB0、mvLXB1、およびmvLXB2
- 半サンプル補間フィルタインデックスhpelIfIdxA0、hpelIfIdxA1、hpelIfIdxB0、hpelIfIdxB1、およびhpelIfIdxB2
- 双予測重みインデックスgbiIdxA0、gbiIdxA1、gbiIdxB0、gbiIdxB1、およびgbiIdxB2
【0317】
availableFlagA1、refIdxLXA1、predFlagLXA1、およびmvLXA1の導出のために、以下が適用される。
- 近隣のルマ符号化ブロック内のルマ位置( xNbA1, yNbA1 )が( xCb - 1, yCb + cbHeight - 1 )に等しいように設定される。
- 6.4項に規定されたブロックについての可用性導出プロセスが、( xCb, yCb )に等しいように設定された現在のルマ位置( xCurr, yCurr )および近隣のルマ位置( xNbA1, yNbA1 )を入力として呼び出され、出力が、ブロックの可用性フラグavailableA1に割り振られる。
- 変数availableFlagA1、refIdxLXA1、predFlagLXA1、およびmvLXA1が、以下のように導出される。
- availableA1がFALSEに等しい場合、availableFlagA1が、0に等しいように設定され、mvLXA1の両方の成分が、0に等しいように設定され、refIdxLXA1が、-1に等しいように設定され、predFlagLXA1が、0に等しいように設定され、Xは、0または1であり、gbiIdxA1が、0に等しいように設定される。
- それ以外の場合、availableFlagA1が1に等しいように設定され、以下の割り振りがなされる。
mvLXA1 = MvLX[ xNbA1 ][ yNbA1 ] (8-294)
refIdxLXA1 = RefIdxLX[ xNbA1 ][ yNbA1 ] (8-295)
predFlagLXA1 = PredFlagLX[ xNbA1 ][ yNbA1 ] (8-296)
hpelIfIdxA1 = HpelIfIdx[ xNbA1 ][ yNbA1 ] (8-297)
gbiIdxA1 = GbiIdx[ xNbA1 ][ yNbA1 ] (8-297)
【0318】
availableFlagB1、refIdxLXB1、predFlagLXB1、およびmvLXB1の導出のために、以下が適用される。
- 近隣のルマ符号化ブロック内のルマ位置( xNbB1, yNbB1 )が( xCb + cbWidth - 1, yCb - 1 )に等しいように設定される。
- 6.4項に規定されたブロックについての可用性導出プロセスが、( xCb, yCb )に等しいように設定された現在のルマ位置( xCurr, yCurr )および近隣のルマ位置( xNbB1, yNbB1 )を入力として呼び出され、出力が、ブロックの可用性フラグavailableB1に割り振られる。
- 変数availableFlagB1、refIdxLXB1、predFlagLXB1、およびmvLXB1が、以下のように導出される。
- 下の条件のうちの1つまたは複数が真である場合、availableFlagB1が、0に等しいように設定され、mvLXB1の両方の成分が、0に等しいように設定され、refIdxLXB1が、-1に等しいように設定され、predFlagLXB1が、0に等しいように設定され、Xは、0または1であり、gbiIdxB1が、0に等しいように設定される。
- availableB1がFALSEに等しい。
- availableA1がTRUEに等しく、ルマ位置( xNbA1, yNbA1 )および( xNbB1, yNbB1 )が同じ動きベクトルおよび同じ参照インデックスを有する。
- それ以外の場合、availableFlagB1が1に等しいように設定され、以下の割り振りがなされる。
mvLXB1 = MvLX[ xNbB1 ][ yNbB1 ] (8-298)
refIdxLXB1 = RefIdxLX[ xNbB1 ][ yNbB1 ] (8-299)
predFlagLXB1 = PredFlagLX[ xNbB1 ][ yNbB1 ] (8-300)
( yCb - 1 ) < ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY )である場合、
hpelIfIdxB1 = 2
それ以外の場合、
hpelIfIdxB1 = HpelIfIdx[ xNbB1 ][ yNbB1 ]
gbiIdxB1 = GbiIdx[ xNbB1 ][ yNbB1 ] (8-301)
【0319】
availableFlagB0、refIdxLXB0、predFlagLXB0、およびmvLXB0の導出のために、以下が適用される。
- 近隣のルマ符号化ブロック内のルマ位置( xNbB0, yNbB0 )が( xCb + cbWidth, yCb - 1 )に等しいように設定される。
- 6.4項に規定されたブロックについての可用性導出プロセスが、( xCb, yCb )に等しいように設定された現在のルマ位置( xCurr, yCurr )および近隣のルマ位置( xNbB0, yNbB0 )を入力として呼び出され、出力が、ブロックの可用性フラグavailableB0に割り振られる。
- 変数availableFlagB0、refIdxLXB0、predFlagLXB0、およびmvLXB0が、以下のように導出される。
- 下の条件のうちの1つまたは複数が真である場合、availableFlagB0が、0に等しいように設定され、mvLXB0の両方の成分が、0に等しいように設定され、refIdxLXB0が、-1に等しいように設定され、predFlagLXB0が、0に等しいように設定され、Xは、0または1であり、gbiIdxB0が、0に等しいように設定される。
- availableB0がFALSEに等しい。
- availableB1がTRUEに等しく、ルマ位置( xNbB1, yNbB1 )および( xNbB0, yNbB0 )が同じ動きベクトルおよび同じ参照インデックスを有する。
- availableA1がTRUEに等しく、ルマ位置( xNbA1, yNbA1 )および( xNbB0, yNbB0 )が同じ動きベクトルおよび同じ参照インデックスを有し、merge_triangle_flag[ xCb ][ yCb ]が1に等しい。
- それ以外の場合、availableFlagB0が1に等しいように設定され、以下の割り振りがなされる。
mvLXB0 = MvLX[ xNbB0 ][ yNbB0 ] (8-302)
refIdxLXB0 = RefIdxLX[ xNbB0 ][ yNbB0 ] (8-303)
predFlagLXB0 = PredFlagLX[ xNbB0 ][ yNbB0 ] (8-304)
( yCb - 1 ) < ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY )である場合、
hpelIfIdxB0 = 2
それ以外の場合、
hpelIfIdxB0 = HpelIfIdx[ xNbB0 ][ yNbB0 ] (8-305)
gbiIdxB0 = GbiIdx[ xNbB0 ][ yNbB0 ] (8-305)
【0320】
availableFlagA0、refIdxLXA0、predFlagLXA0、およびmvLXA0の導出のために、以下が適用される。
- 近隣のルマ符号化ブロック内のルマ位置( xNbA0, yNbA0 )が( xCb - 1, yCb + cbWidth )に等しいように設定される。
- 6.4項に規定されたブロックについての可用性導出プロセスが、( xCb, yCb )に等しいように設定された現在のルマ位置( xCurr, yCurr )および近隣のルマ位置( xNbA0, yNbA0 )を入力として呼び出され、出力が、ブロックの可用性フラグavailableA0に割り振られる。
- 変数availableFlagA0、refIdxLXA0、predFlagLXA0、およびmvLXA0が、以下のように導出される。
- 下の条件のうちの1つまたは複数が真である場合、availableFlagA0が、0に等しいように設定され、mvLXA0の両方の成分が、0に等しいように設定され、refIdxLXA0が、-1に等しいように設定され、predFlagLXA0が、0に等しいように設定され、Xは、0または1であり、gbiIdxA0が、0に等しいように設定される。
- availableA0がFALSEに等しい。
- availableA1がTRUEに等しく、ルマ位置( xNbA1, yNbA1 )および( xNbA0, yNbA0 )が同じ動きベクトルおよび同じ参照インデックスを有する。
- availableB1がTRUEに等しく、ルマ位置( xNbB1, yNbB1 )および( xNbA0, yNbA0 )が同じ動きベクトルおよび同じ参照インデックスを有し、merge_triangle_flag[ xCb ][ yCb ]が1に等しい。
- availableB0がTRUEに等しく、ルマ位置( xNbB0, yNbB0 )および( xNbA0, yNbA0 )が同じ動きベクトルおよび同じ参照インデックスを有し、merge_triangle_flag[ xCb ][ yCb ]が1に等しい。
- それ以外の場合、availableFlagA0が1に等しいように設定され、以下の割り振りがなされる。
mvLXA0 = MvLX[ xNbA0 ][ yNbA0 ] (8-306)
refIdxLXA0 = RefIdxLX[ xNbA0 ][ yNbA0 ] (8-307)
predFlagLXA0 = PredFlagLX[ xNbA0 ][ yNbA0 ] (8-308)
hpelIfIdxA0 = HpelIfIdx[ xNbA0 ][ yNbA0 ] (8-309)
gbiIdxA0 = GbiIdx[ xNbA0 ][ yNbA0 ] (8-309)
【0321】
availableFlagB2、refIdxLXB2、predFlagLXB2、およびmvLXB2の導出のために、以下が適用される。
- 近隣のルマ符号化ブロック内のルマ位置( xNbB2, yNbB2 )が( xCb - 1, yCb - 1 )に等しいように設定される。
- 6.4項に規定されたブロックについての可用性導出プロセスは、( xCb, yCb )に等しいように設定された現在のルマ位置( xCurr, yCurr )および近隣のルマ位置( xNbB2, yNbB2 )を入力として呼び出され、出力が、ブロックの可用性フラグavailableB2に割り振られる。
- 変数availableFlagB2、refIdxLXB2、predFlagLXB2、およびmvLXB2が、以下のように導出される。
- 下の条件のうちの1つまたは複数が真である場合、availableFlagB2が、0に等しいように設定され、mvLXB2の両方の成分が、0に等しいように設定され、refIdxLXB2が、-1に等しいように設定され、predFlagLXB2が、0に等しいように設定され、Xは、0または1であり、gbiIdxB2が、0に等しいように設定される。
- availableB2がFALSEに等しい。
- availableA1がTRUEに等しく、ルマ位置( xNbA1, yNbA1 )および( xNbB2, yNbB2 )が同じ動きベクトルおよび同じ参照インデックスを有する。
- availableB1がTRUEに等しく、ルマ位置( xNbB1, yNbB1 )および( xNbB2, yNbB2 )が同じ動きベクトルおよび同じ参照インデックスを有する。
- availableB0がTRUEに等しく、ルマ位置( xNbB0, yNbB0 )および( xNbB2, yNbB2 )が同じ動きベクトルおよび同じ参照インデックスを有し、merge_triangle_flag[ xCb ][ yCb ]が1に等しい。
- availableA0がTRUEに等しく、ルマ位置( xNbA0, yNbA0 )および( xNbB2, yNbB2 )が同じ動きベクトルおよび同じ参照インデックスを有し、merge_triangle_flag[ xCb ][ yCb ]が1に等しい。
- availableFlagA0 + availableFlagA1 + availableFlagB0 + availableFlagB1が4に等しく、merge_triangle_flag[ xCb ][ yCb ]が0に等しい。
- それ以外の場合、availableFlagB2が1に等しいように設定され、以下の割り振りがなされる。
mvLXB2 = MvLX[ xNbB2 ][ yNbB2 ] (8-310)
refIdxLXB2 = RefIdxLX[ xNbB2 ][ yNbB2 ] (8-311)
predFlagLXB2 = PredFlagLX[ xNbB2 ][ yNbB2 ] (8-312)
( yCb - 1 ) < ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY )である場合、
hpelIfIdxB2 = 2
それ以外の場合、
hpelIfIdxB2 = HpelIfIdx[ xNbB2 ][ yNbB2 ] (8-313)
gbiIdxB2 = GbiIdx[ xNbB2 ][ yNbB2 ] (8-313)
【0322】
上記の内容から理解され得るように、現在のブロックの近隣のブロックの半ピクセル補間フィルタインデックスが、現在のブロックがCTUの境界と重なり合うかどうかに基づいて決定される。たとえば、式(8-298)~(8-301)は、近隣のブロックB1の半ピクセル補間フィルタインデックスを決定するためのステップを示す(図8および図9参照)。式(8-302)~(8-305)は、近隣のブロックB0の半ピクセル補間フィルタインデックスを決定するためのステップを示す(図8および図9参照)。式(8-310)~(8-313)は、近隣のブロックB2の半ピクセル補間フィルタインデックスを決定するためのステップを示す(図8および図9参照)。
【0323】
上記の内容に基づいて、本開示は、SIFインデックスをHMVPテーブルに記憶すること(またはSIFインデックスをHMVPテーブルを介して伝搬すること)およびマージリスト構築プロセスにおいてHMVP候補のためにそのSIFインデックスを使用することを対象とする。SIFの方法は、内容に応じて適切な補間フィルタ(IF)を選択するために使用され、つまり、くっきりしたエッジを有する領域に関しては、通常のDCTに基づくIFが使用され、平滑な領域に関しては(またはくっきりしたエッジを維持することが必要とされない場合)、代替的な6タップIF(ガウスフィルタ)が使用される。通常のインター予測に関して、IFインデックスが明示的にシグナリングされる一方、マージモードに関しては、MVおよび参照ピクチャインデックスが対応するマージの空間的な候補(HMVPマージ候補)から借用されるだけでなく、IFインデックスも対応するマージの空間的な候補から借用される。これは、IFインデックスがHMVPテーブルを介して伝搬されなかった通常の設計とは対照的である。したがって、通常の設計において、マージモードでコーディングされたブロックおよびHMVPテーブルから取得されたマージ候補に関して、代替的なIFは、使用されないことがある。HMVPテーブルは、近隣のブロックからの(しかし、通常の空間的なマージ候補のように必ずしも隣接するブロックからとは限らない)動き情報を記憶するために使用される。HMVPの発想は、現在のブロックに空間的に近いが、必ずしも隣接していないブロック(何らかの空間的な近隣からのブロック)からの動き情報を使用することである。したがって、たとえば、現在のブロックが平滑な内容を含み、隣接するブロックがほとんどくっきりした内容を含む場合、隣接するブロックからIFインデックスを借用することは、効率的でない。しかし、平滑な内容が、現在のブロックの何らかの空間的な近隣のブロック内にあり得、そのようなブロックの動き情報が、HMVPテーブルに記憶され得る。本明細書に示されるようにHMVPテーブルを通じてIFインデックスを伝搬することは、現在のブロックのための適切なIFの使用を可能にする(たとえば、ガウスフィルタが、平滑な内容のためにまたはくっきりしたエッジを維持することが必要とされない場合のために選択され得る)。これは、コーディングの効率を高めるという利点をもたらす。本発明がなければ、(8タップのDCTに基づくIFに対応する)デフォルトのIFインデックスが、HMVPマージ候補のために常に使用され、現在のブロックの内容の詳細(くっきりしたエッジが維持される必要があるか否か)は、考慮され得ない。
【0324】
さらに、本開示は、HMVPテーブルの更新中のプルーニングプロセスにおいて(SIFインデックスを使用せず)MVおよび参照ピクチャインデックスのみを使用することも対象とする。
【0325】
新しい要素がHMVPレコードに追加されるとき、この新しい要素がレコードの比較に使用されるか否かが、判断される必要がある。単純な手法は、レコードの比較(デフォルトのC式(C-style)の構造の比較)においてHMVPレコードのすべての要素を使用することである。しかし、本開示においては、IFインデックスが、HMVPレコードの比較に使用されない。この設計には2つの理由がある。
【0326】
第1の理由は、追加的な計算の複雑さを避けるためである。各比較動作は、HMVPテーブル更新プロセスおよびマージ候補構築プロセスにおいて追加的な計算動作を招く。したがって、比較動作が削減され得るかまたは除去され得る場合、計算の複雑さが、削減されることが可能であり、それによって、コーディングの効率を高める。実装の観点から見ると、ここで不必要な比較が回避され得る場合、より優れた実装が、実現されることが可能である。したがって、HMVPレコードのデフォルトのC式の構造体の比較の代わりに、HMVPレコードの要素が、2つのサブセット、すなわち、レコードの比較に使用される要素およびレコードの比較に使用されない要素に分けられる。
【0327】
第2の理由は、HMVPレコードの多様性を維持するためである。たとえば、同じMVおよび参照インデックスを有し、それらのIFインデックスのみが異なる2つのHMVPレコードを有することは、これら2つのレコードが「十分に異なって」いないので効率的でない。その代わりに、HMVPテーブル更新プロセス中に、それらのHMVPレコードが同じであるとみなすことがより効率的である。この場合、既存のレコードとIFインデックスのみが異なる新しいレコードは、HMVPテーブルに追加されない。結果として、その他のレコードと「十分に異なって」いる(異なるMVまたは参照インデックスを有する)「古い」レコードが、維持される。言い換えると、新しいレコードがHMVPテーブルに追加されるために、この新しいレコードは、既存のレコードとビット単位で異なるだけではないべきであり、この新しいレコードは「大幅に異なって」いる必要がある。コーディングの効率の観点から見ると、IFインデックスのみが異なる2つのレコードではなく異なるMVまたは参照インデックスを有する2つのレコードをHMVPテーブル内に有する方が、より効率的である。
【0328】
さらに、本開示は、ラインメモリを節約するための、切り替え可能な補間フィルタ(SIF)のパラメータのマージに関する制約も対象とする。SIFの以前の設計と比較して、示される開示は、ラインメモリの帯域幅を節約する、増やされたラインメモリなしに動き情報の継承ツールとともにSIFを適用するための方法を導入する。高解像度の場合に関して、ラインメモリの節約は、オンチップのメモリのコストを大幅に削減する。
【0329】
修正されたIFインデックス導出方法は、マージモードでコーディングされ、履歴に基づくマージ候補に対応するマージインデックスを有するCUのためにより適切なIFインデックスを使用することによりコーディングの効率を改善する。
【0330】
本出願において使用される数学演算子は、Cプログラミング言語において使用される数学演算子に似ており、HEVC規格の仕様の数学演算子を指し得る。しかし、整数の除算および算術シフト演算の結果は、より厳密に定義され、累乗および実数値の除算などの追加の演算が、定義される。付番およびカウントの規則は、概して0から始まり、たとえば、「第1」は、0番と等価であり、「第2」は、1番と等価であり、以下同様である。
【0331】
以下は、上述の実施形態において示された符号化方法および復号方法の応用ならびにそれらを使用するシステムの説明である。
【0332】
図18は、コンテンツ配信サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、キャプチャデバイス3102、端末デバイス3106を含み、任意選択でディスプレイ3126を含む。キャプチャデバイス3102は、通信リンク3104を介して端末デバイス3106と通信する。通信リンクは、上述の通信チャネル13を含み得る。通信リンク3104は、WIFI、イーサネット、ケーブル、ワイヤレス(3G/4G/5G)、USB、またはこれらの任意の種類の組み合わせなどを含むがこれらに限定されない。
【0333】
キャプチャデバイス3102は、データを生成し、上の実施形態に示された符号化方法によってデータを符号化し得る。代替的に、キャプチャデバイス3102は、データをストリーミングサーバ(図示せず)に配信することが可能であり、サーバが、データを符号化し、符号化されたデータを端末デバイス3106に送信する。キャプチャデバイス3102は、カメラ、スマートフォンもしくはスマートパッド、コンピュータもしくはラップトップ、テレビ会議システム、PDA、車載デバイス、またはこれらのいずれかの組み合わせなどを含むがこれらに限定されない。たとえば、キャプチャデバイス3102は、上述のソースデバイス12を含み得る。データがビデオを含むとき、キャプチャデバイス3102に含まれるビデオエンコーダ20が、ビデオ符号化処理を実際に実行し得る。データがオーディオ(つまり、声)を含むとき、キャプチャデバイス3102に含まれるオーディオエンコーダが、オーディオ符号化処理を実際に実行し得る。いくつかの実際のシナリオに関して、キャプチャデバイス3102は、符号化されたビデオおよびオーディオデータを一緒に多重化することによってそれらのデータを配信する。その他の実際のシナリオに関して、たとえば、テレビ会議システムにおいて、符号化されたオーディオデータおよび符号化されたビデオデータは、多重化されない。キャプチャデバイス3102は、符号化されたオーディオデータおよび符号化されたビデオデータを端末デバイス3106に別々に配信する。
【0334】
コンテンツ供給システム3100において、端末デバイス310は、符号化されたデータを受信し、再生する。端末デバイス3106は、上述の符号化されたデータを復号することができるスマートフォンもしくはスマートパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV 3114、セットトップボックス(STB)3116、テレビ会議システム3118、ビデオ監視システム3120、携帯情報端末(PDA)3122、車載デバイス3124、またはこれらのいずれかの組み合わせなどの、データ受信および復元能力を有するデバイスであることが可能である。たとえば、端末デバイス3106は、上述の宛先デバイス14を含み得る。符号化されたデータがビデオを含むとき、端末デバイスに含まれるビデオデコーダ30が、ビデオの復号を実行するために優先される。符号化されたデータがオーディオを含むとき、端末デバイスに含まれるオーディオデコーダが、オーディオ復号処理を実行するために優先される。
【0335】
ディスプレイを有する端末デバイス、たとえば、スマートフォンもしくはスマートパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV 3114、携帯情報端末(PDA)、または車載デバイス3124に関して、端末デバイスは、復号されたデータをその端末デバイスのディスプレイに供給することができる。ディスプレイを備えていない端末デバイス、たとえば、STB 3116、テレビ会議システム3118、またはビデオ監視システム3120に関しては、外部ディスプレイ3126に連絡を取り、復号されたデータが受信され示される。
【0336】
このシステムの各デバイスが符号化または復号を実行するとき、上述の実施形態において示されたピクチャ符号化デバイスまたはピクチャ復号デバイスが、使用され得る。
【0337】
図19は、端末デバイス3106の例の構造を示す図である。端末デバイス3106がキャプチャデバイス3102からストリームを受信した後、プロトコル進行ユニット3202が、ストリームの送信プロトコルを分析する。プロトコルは、リアルタイムストリーミングプロトコル(RTSP)、ハイパーテキスト転送プロトコル(HTTP)、HTTPライブストリーミングプロトコル(HLS)、MPEG-DASH、リアルタイムトランスポートプロトコル(RTP)、リアルタイムメッセージングプロトコル(RTMP)、またはこれらの任意の種類の組み合わせなどを含むがこれらに限定されない。
【0338】
プロトコル進行ユニット3202がストリームを処理した後、ストリームファイルが生成される。ファイルは、多重化解除ユニット3204に出力される。多重化解除ユニット3204は、多重化されたデータを符号化されたオーディオデータおよび符号化されたビデオデータに分離することができる。上述のように、いくつかの実際のシナリオに関して、たとえば、テレビ会議システムにおいて、符号化されたオーディオデータおよび符号化されたビデオデータは、多重化されない。この状況では、符号化されたデータは、多重化解除ユニット3204を通さずにビデオデコーダ3206およびオーディオデコーダ3208に送信される。
【0339】
多重化解除処理によって、ビデオエレメンタリストリーム(ES)、オーディオES、および任意選択で字幕が生成される。上述の実施形態において説明されたビデオデコーダ30を含むビデオデコーダ3206は、上述の実施形態において示された復号方法によってビデオESを復号してビデオフレームを生成し、このデータを同期ユニット3212に供給する。オーディオデコーダ3208は、オーディオESを復号してオーディオフレームを生成し、このデータを同期ユニット3212に供給する。代替的に、ビデオフレームは、そのビデオフレームを同期ユニット3212に供給する前に、(図19に示されていない)バッファに記憶され得る。同様に、オーディオフレームは、そのオーディオフレームを同期ユニット3212に供給する前に、(図Yに示されていない)バッファに記憶され得る。
【0340】
同期ユニット3212は、ビデオフレームとオーディオフレームとを同期し、ビデオ/オーディオをビデオ/オーディオディスプレイ3214に供給する。たとえば、同期ユニット3212は、ビデオ情報およびオーディオ情報の提示を同期する。情報は、コーディングされたオーディオデータおよびビジュアルデータの提示に関するタイムスタンプならびにデータストリームの配信自体に関するタイムスタンプを使用するシンタックスにおいてコーディングし得る。
【0341】
字幕がストリームに含まれる場合、字幕デコーダ3210が、字幕を復号し、その字幕をビデオフレームおよびオーディオフレームと同期し、ビデオ/オーディオ/字幕をビデオ/オーディオ/字幕ディスプレイ3216に供給する。
【0342】
本発明は、上述のシステムに限定されず、上述の実施形態のピクチャ符号化デバイスかまたはピクチャ復号デバイスかのどちらかが、その他のシステム、たとえば、自動車のシステムに組み込まれ得る。
【0343】
本発明の実施形態が主にビデオコーディングに基づいて説明されたが、コーディングシステム10、エンコーダ20、およびデコーダ30(およびそれに対応してシステム10)の実施形態、ならびに本明細書において説明されたその他の実施形態は、静止ピクチャの処理またはコーディング、つまり、ビデオコーディングと同様のいかなる先行するまたは連続するピクチャからも独立した個々のピクチャの処理またはコーディングのために構成されることもあることに留意されたい。概して、ピクチャの処理コーディングが単一のピクチャ17に制限される場合、インター予測ユニット244(エンコーダ)および344(デコーダ)のみが、利用可能でないことがある。ビデオエンコーダ20およびビデオデコーダ30のすべてのその他の機能(ツールまたはテクノロジーとも呼ばれる)、たとえば、残差計算204/304、変換206、量子化208、逆量子化210/310、(逆)変換212/312、区分け262/362、イントラ予測254/354、および/またはループフィルタ220、320、およびエントロピーコーディング270、およびエントロピー復号304が、静止ピクチャの処理のために等しく使用され得る。
【0344】
たとえば、エンコーダ20およびデコーダ30、ならびにたとえばエンコーダ20およびデコーダ30に関連して本明細書において説明された機能の実施形態は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせで実装され得る。ソフトウェアに実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるかまたは通信媒体上で送信され、ハードウェアに基づく処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応するコンピュータ可読記憶媒体、またはたとえば通信プロトコルによるある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、概して、コンピュータ可読媒体は、(1)非一時的である有形のコンピュータ可読記憶媒体または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示において説明された技術の実装のための命令、コード、および/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0345】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくはその他の光ディスク記憶、磁気ディスク記憶もしくはその他の磁気記憶デバイス、フラッシュメモリ、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用されることが可能であり、コンピュータによってアクセスされることが可能である任意のその他の媒体を含み得る。また、任意の接続が、適切にコンピュータ可読媒体と呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、ラジオ波、およびマイクロ波などのワイヤレステクノロジーを用いてウェブサイト、サーバ、またはその他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、ラジオ波、およびマイクロ波などのワイヤレステクノロジーは、媒体の定義に含まれる。しかし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、またはその他の一時的媒体を含まず、その代わりに、非一時的な有形の記憶媒体を対象とすることを理解されたい。本明細書において使用されるとき、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD: compact disc)、レーザディスク(laser disc)、光ディスク(optical disc)、デジタルバーサタイルディスク(DVD: digital versatile disc)、フロッピーディスク(floppy disk)、およびブルーレイディスク(Blu-ray(登録商標) disc)を含み、ディスク(disk)が、通常、磁気的にデータを再生する一方、ディスク(disc)は、レーザを用いて光学的にデータを再生する。上記のものの組み合わせも、コンピュータ可読媒体の範囲に含まれるべきである。
【0346】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、またはその他の等価な集積もしくはディスクリート論理回路などの1つまたは複数のプロセッサによって実行され得る。したがって、用語「プロセッサ」は、本明細書において使用されるとき、上述の構造または本明細書において説明された技術の実装に好適な任意のその他の構造のいずれかを指し得る。加えて、一部の態様において、本明細書において説明された機能は、符号化および復号のために構成された専用のハードウェアおよび/もしくはソフトウェアモジュール内に提供されるか、または組み合わされたコーデックに組み込まれ得る。また、技術は、1つまたは複数の回路または論理要素にすべて実装され得る。
【0347】
本開示の技術は、ワイヤレスハンドセット、集積回路(IC)、または1組のIC(たとえば、チップセット)を含む多種多様なデバイスまたは装置に実装され得る。様々な構成要素、モジュール、またはユニットが、開示された技術を実行するように構成されたデバイスの機能の態様を強調するために本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上述のように、様々なユニットが、コーデックハードウェアユニットにおいて組み合わされるか、または好適なソフトウェアおよび/もしくはファームウェアと連携した、上述の1つもしくは複数のプロセッサを含む相互運用性のあるハードウェアユニットの集合によって提供され得る。
【符号の説明】
【0348】
10 ビデオコーディングシステム、コーディングシステム
12 ソースデバイス
13 符号化されたピクチャデータ、通信チャネル
14 宛先デバイス
16 ピクチャソース
17 ピクチャ、ピクチャデータ、生ピクチャ、生ピクチャデータ、モノクロピクチャ、カラーピクチャ、現在のピクチャ
18 プリプロセッサ、前処理ユニット、ピクチャプリプロセッサ
19 前処理されたピクチャ、前処理されたピクチャデータ
20 ビデオエンコーダ、エンコーダ
21 符号化されたピクチャデータ、符号化されたビットストリーム
22 通信インターフェース、通信ユニット
28 通信インターフェース、通信ユニット
30 デコーダ、ビデオデコーダ
31 復号されたピクチャデータ、復号されたピクチャ
32 ポストプロセッサ、後処理ユニット
33 後処理されたピクチャデータ、後処理されたピクチャ
34 ディスプレイデバイス
46 処理回路
100 ビデオエンコーダ
201 入力、入力インターフェース
203 ピクチャブロック、元のブロック、現在のブロック、区分けされたブロック、現在のピクチャブロック
204 残差計算ユニット、残差計算
205 残差ブロック、残差
206 変換処理ユニット、変換
207 変換係数
208 量子化ユニット、量子化
209 量子化された係数、量子化された変換係数、量子化された残差係数
210 逆量子化ユニット、逆量子化
211 量子化解除された係数、量子化解除された残差係数
212 逆変換処理ユニット、(逆)変換
213 再構築された残差ブロック、量子化解除された係数、変換ブロック
214 再構築ユニット、加算器、合算器
215 再構築されたブロック
216 バッファ
220 ループフィルタユニット、ループフィルタ
221 フィルタリングされたブロック、フィルタリングされた再構築されたブロック
230 復号されたピクチャバッファ(DPB)
231 復号されたピクチャ
244 インター予測ユニット
254 イントラ予測ユニット、インター予測ユニット、イントラ予測
260 モード選択ユニット
262 区分けユニット、区分け
265 予測ブロック、予測子
266 シンタックス要素
270 エントロピー符号化ユニット、エントロピーコーディング
272 出力、出力インターフェース
304 エントロピー復号ユニット、残差計算、エントロピー復号
309 量子化された係数
310 逆量子化ユニット、逆量子化
311 量子化解除された係数、変換係数
312 逆変換処理ユニット、(逆)変換、出力
313 再構築された残差ブロック
314 再構築ユニット、合算器、加算器
315 再構築されたブロック
320 ループフィルタ、ループフィルタユニット、ループフィルタリングユニット
321 フィルタリングされたブロック、復号されたビデオブロック
330 復号されたピクチャバッファ(DPB)、復号されたピクチャバッファ(DBP)
331 復号されたピクチャ
344 インター予測ユニット
354 イントラ予測ユニット、イントラ予測
360 モード選択ユニット
362 区分け
365 予測ブロック
400 ビデオコーディングデバイス
410 着信ポート、入力ポート
420 受信機ユニット(Rx)
430 プロセッサ、論理ユニット、中央演算処理装置(CPU)
440 送信機ユニット(Tx)
450 発信ポート、出力ポート
460 メモリ
470 コーディングモジュール
500 装置
502 プロセッサ
504 メモリ
506 データ
508 オペレーティングシステム
510 アプリケーションプログラム
512 バス
514 二次記憶
518 ディスプレイ
700 現在のブロック
900 CTU
1300 構築方法
1400 方法
1600 装置
1601 HMIリスト取得ユニット
1603 HMIリスト更新ユニット
1700 インター予測装置
1701 リスト管理ユニット
1703 情報導出ユニット
3100 コンテンツ供給システム
3102 キャプチャデバイス
3104 通信リンク
3106 端末デバイス
3108 スマートフォン、スマートパッド
3110 コンピュータ、ラップトップ
3112 ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)
3114 TV
3116 セットトップボックス(STB)
3118 テレビ会議システム
3120 ビデオ監視システム
3122 携帯情報端末(PDA)
3124 車載デバイス
3126 ディスプレイ
3202 プロトコル進行ユニット
3204 多重化解除ユニット
3206 ビデオデコーダ
3208 オーディオデコーダ
3210 字幕デコーダ
3212 同期ユニット
3214 ビデオ/オーディオディスプレイ
3216 ビデオ/オーディオ/字幕ディスプレイ
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13A
図13B
図14
図15
図16
図17
図18
図19
【手続補正書】
【提出日】2023-09-26
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオ信号のフレーム内のブロックについてのインター予測のための方法であって、
履歴に基づく動き情報候補リストを構築するステップであって、前記履歴に基づく動き情報候補リストが、前記ブロックに先行するN個の先行ブロックの動き情報を含むN個の履歴に基づく動き情報候補Hkを含む順序付けられたリストであり、k=0, ... , N-1であり、Nが、0よりも大きい整数であり、前記N個の先行ブロックが前記ブロックと同じフレームからのものであり、前記N個の先行ブロックが前記ブロックの隣接しないブロックを含み、前記履歴に基づく動き情報候補リストがNの長さを有し、Nが5であり、各々の履歴に基づく動き情報候補が、要素、すなわち、
i) 1つまたは複数の動きベクトル(MV)、
ii) 前記MVに対応する1つまたは複数の参照ピクチャインデックス、および
iii) 補間フィルタインデックス
を含む、ステップと、
前記履歴に基づく動き情報候補リストからの1つまたは複数の履歴に基づく動き情報候補を前記ブロックについての動き情報候補リストに追加するステップと、
前記動き情報候補リストに基づいて前記ブロックについての動き情報を導出するステップと
前記導出された動き情報に含まれる1つまたは複数の動きベクトル(MV)のうちの少なくとも1つが半サンプル位置を指すとき、前記MVによって指される参照ピクチャのサンプル値に半サンプル補間フィルタを適用することによって前記ブロックの予測サンプル値を取得するステップであって、前記半サンプル補間フィルタが、前記導出された動き情報に含まれる半サンプル補間フィルタインデックスによって示され、前記参照ピクチャが、前記導出された動き情報に含まれる前記1つまたは複数の参照ピクチャインデックスによって示される、ステップと、
を含む方法。
【請求項2】
前記導出された動き情報の1つまたは複数のMVのうちの少なくとも1つが半サンプル位置を指すときのみ、代替的な半サンプル補間フィルタが適用され、前記代替的な半サンプル補間フィルタが、前記導出された動き情報に含まれる補間フィルタインデックスによって示される、請求項1に記載の方法。
【請求項3】
前記履歴に基づく動き情報候補に含まれる前記補間フィルタインデックスが、1組の半サンプル補間フィルタの中の半サンプル補間フィルタを示し、前記半サンプル補間フィルタが、前記履歴に基づく動き情報候補の前記1つまたは複数のMVのうちの少なくとも1つが半サンプル位置を指すときのみ半サンプル値を補間するために適用される、請求項1に記載の方法。
【請求項4】
前記履歴に基づく動き情報候補リストの各々の履歴に基づく動き情報候補の以下の要素、すなわち、
i) 前記1つまたは複数の動きベクトル(MV)、および
ii) 前記1つまたは複数のMVに対応する前記1つまたは複数の参照ピクチャインデックス
のうちの少なくとも1つが前記ブロックの前記動き情報の対応する要素と異なるならば、前記履歴に基づく動き情報候補リストに前記ブロックの前記動き情報を含む履歴に基づく動き情報候補Hkを追加するステップであって、k = Nである、ステップをさらに含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記履歴に基づく動き情報候補リストの履歴に基づく動き情報候補の以下の要素、すなわち、
i) 1つまたは複数の動きベクトル(MV)、および
ii) 前記MVに対応する1つまたは複数の参照ピクチャインデックス
が前記ブロックの前記動き情報の対応する要素と同じであるならば、前記履歴に基づく動き情報候補リストから前記履歴に基づく動き情報候補を削除し、前記履歴に基づく動き情報候補リストに前記ブロックの前記動き情報を含む履歴に基づく動き情報候補Hkを追加するステップであって、k = N-1である、ステップをさらに含む、請求項1から3のいずれか一項に記載の方法。
【請求項6】
Nが予め定義された数に等しいならば、前記履歴に基づく動き情報候補リストからk = 0である履歴に基づく動き情報候補Hkを削除し、前記履歴に基づく動き情報候補リストに前記ブロックの前記動き情報をk = N-1である履歴に基づく動き情報候補Hkとして追加するステップをさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記履歴に基づく動き情報候補リスト内の履歴に基づく動き情報候補の前記動きベクトルが前記ブロックの対応する前記動きベクトルと同じであるかどうかを比較するステップと、
前記履歴に基づく動き情報候補の前記参照ピクチャインデックスが前記ブロックの対応する前記参照ピクチャインデックスと同じであるかどうかを比較するステップと、
をさらに含む、請求項4または5に記載の方法。
【請求項8】
各々の履歴に基づく動き情報候補の前記動きベクトルのうちの少なくとも1つが前記ブロックの対応する前記動きベクトルと異なるかどうかを比較するステップと、
各々のHMVP候補の前記参照ピクチャインデックスのうちの少なくとも1つが前記ブロックの対応する前記参照ピクチャインデックスと異なるかどうかを比較するステップと、
をさらに含む、請求項4または5に記載の方法。
【請求項9】
前記動き情報候補リストが、マージモードまたはスキップモードについて使用される、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記動き情報候補リストに基づいて前記ブロックについての前記動き情報を導出するステップが、
候補インデックスによって参照される前記動き情報を前記動き情報候補リストから現在のブロックの前記動き情報として導出するステップを含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
請求項1から10のいずれか一項に記載の方法を実行するための処理回路を含むエンコーダ(20)。
【請求項12】
請求項1から10のいずれか一項に記載の方法を実行するための処理回路を含むデコーダ(30)。
【請求項13】
請求項1から10のいずれか一項に記載の方法によって符号化/復号されたビットストリームを含む非一時的記憶媒体
【外国語明細書】