(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-01-09
(54)【発明の名称】インター予測におけるデコーダ側の動きベクトルリストの修正の方法及び装置
(51)【国際特許分類】
H04N 19/513 20140101AFI20241226BHJP
H04N 19/46 20140101ALI20241226BHJP
H04N 19/577 20140101ALI20241226BHJP
【FI】
H04N19/513 200
H04N19/46
H04N19/577
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024536314
(86)(22)【出願日】2022-12-29
(85)【翻訳文提出日】2024-06-17
(86)【国際出願番号】 KR2022021608
(87)【国際公開番号】W WO2023132564
(87)【国際公開日】2023-07-13
(31)【優先権主張番号】10-2022-0003247
(32)【優先日】2022-01-10
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2022-0187975
(32)【優先日】2022-12-28
(33)【優先権主張国・地域又は機関】KR
(81)【指定国・地域】
(71)【出願人】
【識別番号】591251636
【氏名又は名称】現代自動車株式会社
【氏名又は名称原語表記】HYUNDAI MOTOR COMPANY
【住所又は居所原語表記】12, Heolleung-ro, Seocho-gu, Seoul, Republic of Korea
(71)【出願人】
【識別番号】500518050
【氏名又は名称】起亞株式会社
【氏名又は名称原語表記】KIA CORPORATION
【住所又は居所原語表記】12, Heolleung-ro, Seocho-gu, Seoul, Republic of Korea
(71)【出願人】
【識別番号】518357128
【氏名又は名称】イファ ユニバーシティ-インダストリー コラボレーション ファウンデーション
【氏名又は名称原語表記】EWHA UNIVERSITY - INDUSTRY COLLABORATION FOUNDATION
【住所又は居所原語表記】52, Ewhayeodae-gil Seodaemun-gu Seoul 03760, Republic of Korea
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100127465
【氏名又は名称】堀田 幸裕
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100124372
【氏名又は名称】山ノ井 傑
(72)【発明者】
【氏名】カン、ジェウォン
(72)【発明者】
【氏名】リー、チョンキョン
(72)【発明者】
【氏名】ホ、ジン
(72)【発明者】
【氏名】パク、スンウク
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159MA04
5C159MA05
5C159MC11
5C159ME01
5C159PP04
5C159RC11
5C159TA30
5C159TB08
5C159TC02
5C159TC42
5C159TD05
5C159TD15
5C159UA02
5C159UA05
(57)【要約】
インター予測でデコーダ側動きベクトルリスト修正方法に関する開示として、本実施例は、インター予測のマージモード及びAMVP(Advanced Motion Vector Prediction)モードにおいて、テンプレートマッチング方法又は双方向マッチング方法に基づいてデコーダ側で動きベクトルリストに対して候補を追加、プルーニング(pruning)、及び並べ替えのうちの1つ以上を遂行するビデオコーディング方法及び装置を提供する。
【特許請求の範囲】
【請求項1】
映像復号化装置が遂行する、現在ブロックをインター予測する方法において、
ビットストリームから候補インデックスを復号化するステップであって、前記候補インデックスは候補リスト内の複数の候補のうちの1つを指示し、各候補は双方向予測の動きベクトルペアを表す、ステップと、
前記現在ブロックの周辺情報を用いて前記候補リストを生成するステップと、
MBM(Multi-pass Bilateral Matching)の多重パス及びMBM費用に基づいて前記候補リストを修正するステップであって、前記多重パスのうち、1番目のパスは前記現在ブロック、2番目のパスは前記現在ブロック内のサブブロック、及び3番目のパスは前記サブブロックよりも小さいサイズの下位ブロックに対し、前記MBM費用に基づいて動きベクトルペアを探索し、前記MBM費用は、各パスに対して前記探索された動きベクトルペアが指示する2つのブロック間の差に依存する、ステップと、
前記候補インデックスを用いて前記修正された候補リストから前記現在ブロックの動きベクトルペアを抽出するステップと、
前記抽出された動きベクトルペアを用いて前記現在ブロックの予測ブロックを生成するステップと、
を含むことを特徴とする、方法。
【請求項2】
前記修正するステップは、
前記多重パスを用い、前記各候補に対して前記MBM費用を最小にする改善動きベクトルペアを生成することを特徴とする、請求項1に記載の方法。
【請求項3】
前記修正するステップは、
前記候補リストが一般マージ候補リストである場合、前記1番目のパス又は2番目のパスを用いて前記改善動きベクトルペアを生成し、前記候補リストがサブブロック基盤候補リストである場合、前記1番目のパス又は2番目のパス以外に、前記3番目のパスを用いて前記改善動きベクトルペアを生成することを特徴とする、請求項2に記載の方法。
【請求項4】
前記修正するステップは、
前記改善動きベクトルペアを前記候補リスト内の固定された位置に追加することを特徴とする、請求項2に記載の方法。
【請求項5】
前記修正するステップは、
前記改善動きベクトルペアと対応候補との間のMBM費用差を計算して代替又は削除を遂行することを特徴とする、請求項2に記載の方法。
【請求項6】
前記代替は、
前記改善動きベクトルペアが前記対応候補よりも前記MBM費用の側面で良い場合、前記候補リストで前記対応候補を前記改善動きベクトルペアと交替することを特徴とする、請求項5に記載の方法。
【請求項7】
前記削除は、
前記候補の改善動きベクトルペアが追加された候補リストに対し、前記MBM費用の側面で最良の候補を前記候補リストのサイズだけ残し、残りの候補を除去することを特徴とする、請求項5に記載の方法。
【請求項8】
前記修正するステップは、
前記MBM費用に基づいて前記候補リスト内の候補を昇順に並べ替えることを特徴とする、請求項1に記載の方法。
【請求項9】
前記修正するステップは、
前記候補リストが一般マージ候補リストである場合、予め設定された条件を考慮し、前記改善動きベクトルペアを前記候補リストの特定の順位に追加することを特徴とする、請求項2に記載の方法。
【請求項10】
前記修正するステップは、
前記特定の順位の以前候補と前記改善動きベクトルペアとの間のMBM費用差を計算した後、前記MBM費用差が予め設定された閾値以上である場合、前記改善動きベクトルペアを前記特定の順位に位置させ、前記MBM費用差が前記予め設定された閾値よりも小さい場合、前記特定の順位の次の順位に対して前記予め設定された条件を再び考慮することを特徴とする、請求項9に記載の方法。
【請求項11】
前記修正するステップは、
前記候補リストが一般マージ候補リストである場合、前記改善動きベクトルペアをHMVP(History-based Motion Vector Predictor)テーブルに追加することを特徴とする、請求項2に記載の方法。
【請求項12】
前記修正するステップは、
前記候補リストが一般マージ候補リストである場合、前記MBM費用に基づいてHMVPテーブル内の動きベクトルペアを並べ替えることを特徴とする、請求項1に記載の方法。
【請求項13】
前記修正するステップは、
前記候補リストが幾何学的分割モード(geometric partitioning mode)候補リストである場合、一般マージ候補リスト内の動き情報に対して前記MBM費用に基づいて優先順位を付与することによって前記候補リストを構成することを特徴とする、請求項1に記載の方法。
【請求項14】
前記修正するステップは
前記候補リストがアフィンマージ候補リストである場合、組合せアフィン候補決定時に、前記現在ブロックの周辺ブロックの可用な動きベクトルを前記MBM費用に基づいて並べ替えた後、優先順位によって前記組合せアフィン候補を構成する制御点動きベクトル(control point motion vectors)を決定することを特徴とする、請求項1に記載の方法。
【請求項15】
前記修正するステップは、
前記候補リストがアフィンマージ候補リストである場合、
前記候補インデックスを用いて前記候補リストから前記現在ブロックの動きベクトルペアを抽出するステップと、
前記現在ブロックの動きベクトルペアに対して前記1番目のパスを用いて前記MBM費用を最小にする改善動きベクトルペアを生成するステップであって、前記改善動きベクトルペアは前記現在ブロックの動きベクトルペア及び改善値で構成される、ステップと、
前記現在ブロックの周辺ブロックから制御点動きベクトルを選択するステップと、
前記制御点動きベクトルに前記改善値を加算するステップと、
を含むことを特徴とする、請求項1に記載の方法。
【請求項16】
映像符号化装置が遂行する、現在ブロックをインター予測する方法において、
前記現在ブロックの周辺情報を用いて前記候補リストを生成するステップと、
候補インデックスを決定するステップであって、前記候補インデックスは候補リスト内の複数の候補のうちの1つを指示し、各候補は双方向予測の動きベクトルペアを表す、ステップと、
MBM(Multi-pass Bilateral Matching)の多重パス及びMBM費用に基づいて前記候補リストを修正するステップであって、前記多重パスのうち、1番目のパスは前記現在ブロック、2番目のパスは前記現在ブロック内のサブブロック、及び3番目のパスは、前記サブブロックよりも小さいサイズの下位ブロックに対し、前記MBM費用に基づいて動きベクトルペアを探索し、前記MBM費用は、各パスに対して前記探索された動きベクトルペアが指示する2つのブロック間の差に依存する、ステップと、
前記候補インデックスを用いて前記修正された候補リストから前記現在ブロックの動きベクトルペアを抽出するステップと、
前記抽出された動きベクトルペアを用いて前記現在ブロックの予測ブロックを生成するステップと、
前記候補インデックスを符号化するステップと、
を含むことを特徴とする、方法
【請求項17】
映像符号化方法によって生成されたビットストリームを保存する、コンピュータの読み取り可能な記録媒体であって、前記映像符号化方法は、
現在ブロックの周辺情報を用いて前記候補リストを生成するステップと、
候補インデックスを決定するステップであって、前記候補インデックスは候補リスト内の複数の候補のうちの1つを指示し、各候補は双方向予測の動きベクトルペアを表す、ステップと、
MBM(Multi-pass Bilateral Matching)の多重パス及びMBM費用に基づいて前記候補リストを修正するステップであって、前記多重パスのうち、1番目のパスは前記現在ブロック、2番目のパスは前記現在ブロック内のサブブロック、及び3番目のパスは、前記サブブロックよりも小さいサイズの下位ブロックに対し、前記MBM費用に基づいて動きベクトルペアを探索し、前記MBM費用は、各パスに対して前記探索された動きベクトルペアが指示する2つのブロック間の差に依存する、ステップと、
前記候補インデックスを用いて前記修正された候補リストから前記現在ブロックの動きベクトルペアを抽出するステップと、
前記抽出された動きベクトルペアを用いて前記現在ブロックの予測ブロックを生成するステップと、
前記候補インデックスを符号化するステップと、
を含むことを特徴とする、記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、インター予測におけるデコーダ側の動きベクトルリストの修正方法に関する。
【背景技術】
【0002】
以下に記述される内容は、単に本発明に関連される背景情報のみを提供するだけで従来技術を構成するものではない。
【0003】
ビデオデータは音声データや静止画データなどに比べて多くのデータ量を有するため、圧縮のための処理なしにそれ自体を保存又は伝送するためにはメモリを含む多くのハードウェアリソースが必要となる。
【0004】
したがって、通常、ビデオデータを保存又は伝送するときに、符号化器を使用してビデオデータを圧縮して保存又は伝送し、復号化器では圧縮されたビデオデータを受信して圧縮を解除して再生する。このようなビデオ圧縮技術としては、H.264/AVC、HEVC(High Efficiency Video Coding)などをはじめ、HEVCに比べて約30%以上の符号化効率を向上させたVVC(Versatile Video Coding)が存在する。
【0005】
しかしながら、映像のサイズ及び解像度、フレームレートが徐々に増加しており、それに応じて符号化すべきデータ量も増加しているため、既存の圧縮技術よりも符号化効率が良く、画質改善効果も高い新たな圧縮技術が求められている。特に、インター予測で、ビデオ符号化効率を向上させて画質を改善するために、動きベクトルリストの効率的な運用が考慮される必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本開示は、インター予測のマージモード及びAMVP(Advanced Motion Vector Prediction)モードにおいて、テンプレートマッチング方法又は双方向マッチング方法に基づいてデコーダ側で動きベクトルリストに対して候補を追加、プルーニング(pruning)及び並べ替えのうちの1つ以上を遂行するビデオコーディング方法及び装置を提供することに目的がある。
【課題を解決するための手段】
【0007】
本開示の実施例によると、映像復号化装置が遂行する、現在ブロックをインター予測する方法において、ビットストリームから候補インデックスを復号化するステップであって、前記候補インデックスは候補リスト内の複数の候補のうちの1つを指示し、各候補は双方向予測の動きベクトルペアを表す、ステップと、前記現在ブロックの周辺情報を用いて前記候補リストを生成するステップと、MBM(Multi-pass Bilateral Matching)の多重パス及びMBM費用に基づいて前記候補リストを修正するステップであって、前記多重パスのうち、1番目のパスは前記現在ブロック、2番目のパスは前記現在ブロック内のサブブロック、及び3番目のパスは前記サブブロックよりも小さいサイズの下位ブロックに対し、前記MBM費用に基づいて動きベクトルペアを探索し、前記MBM費用は、各パスに対して前記探索された動きベクトルペアが指示する2つのブロック間の差に依存する、ステップと、前記候補インデックスを用いて前記修正された候補リストから前記現在ブロックの動きベクトルペアを抽出するステップと、前記抽出された動きベクトルペアを用いて前記現在ブロックの予測ブロックを生成するステップと、を含むことを特徴とする、方法を提供する。
【0008】
本開示の他の実施例によると、映像符号化装置が遂行する現在ブロックをインター予測する方法において、前記現在ブロックの周辺情報を用いて前記候補リストを生成するステップと、候補インデックスを決定するステップであって、前記候補インデックスは候補リスト内の複数の候補のうちの1つを指示し、各候補は双方向予測の動きベクトルペアを表す、ステップと、MBM(Multi-pass Bilateral Matching)の多重パス及びMBM費用に基づいて前記候補リストを修正するステップであって、前記多重パスのうち、1番目のパスは前記現在ブロック、2番目のパスは前記現在ブロック内のサブブロック、及び3番目のパスは、前記サブブロックよりも小さいサイズの下位ブロックに対し、前記MBM費用に基づいて動きベクトルペアを探索し、前記MBM費用は、各パスに対して前記探索された動きベクトルペアが指示する2つのブロック間の差に依存する、ステップと、前記候補インデックスを用いて前記修正された候補リストから前記現在ブロックの動きベクトルペアを抽出するステップと、前記抽出された動きベクトルペアを用いて前記現在ブロックの予測ブロックを生成するステップと、前記候補インデックスを符号化するステップと、を含むことを特徴とする、方法を提供する。
【0009】
本開示の他の実施例によると、映像符号化方法によって生成されたビットストリームを保存する、コンピュータの読み取り可能な記録媒体であって、前記映像符号化方法は、現在ブロックの周辺情報を用いて前記候補リストを生成するステップと、候補インデックスを決定するステップであって、前記候補インデックスは候補リスト内の複数の候補のうちの1つを指示し、各候補は双方向予測の動きベクトルペアを表す、ステップと、MBM(Multi-pass Bilateral Matching)の多重パス及びMBM費用に基づいて前記候補リストを修正するステップであって、前記多重パスのうち、1番目のパスは前記現在ブロック、2番目のパスは前記現在ブロック内のサブブロック、及び3番目のパスは、前記サブブロックよりも小さいサイズの下位ブロックに対し、前記MBM費用に基づいて動きベクトルペアを探索し、前記MBM費用は、各パスに対して前記探索された動きベクトルペアが指示する2つのブロック間の差に依存する、ステップと、前記候補インデックスを用いて前記修正された候補リストから前記現在ブロックの動きベクトルペアを抽出するステップと、前記抽出された動きベクトルペアを用いて前記現在ブロックの予測ブロックを生成するステップと、前記候補インデックスを符号化するステップと、を含むことを特徴とする、記録媒体を提供する。
【発明の効果】
【0010】
以上説明したように、本実施例によると、インター予測のマージモード及びAMVPモードにおいて、テンプレートマッチング方法又は双方向マッチング方法に基づいてデコーダ側で動きベクトルリストに対して候補を追加、プルーニング、及び並び替えのうちの1つ以上を遂行するビデオコーディング方法及び装置を提供することにより、ビデオ符号化効率を向上させてビデオ画質を改善することが可能となる効果がある。
【図面の簡単な説明】
【0011】
【
図1】
図1は、本開示の技術を具現できる映像符号化装置に関する例示的なブロック図である。
【
図2】
図2は、QTBTTT構造を用いてブロックを分割する方法を説明するための図である。
【
図3a】
図3aは、広角イントラ予測モードを含む複数のイントラ予測モードを示す図である。
【
図3b】
図3bは、広角イントラ予測モードを含む複数のイントラ予測モードを示す図である。
【
図4】
図4は、現在ブロックの周辺ブロックに関する例示図である。
【
図5】
図5は、本開示の技術を具現できる映像復号化装置の例示的なブロック図である。
【
図6a】
図6aは、本開示の一実施例に係るアフィン動き予測を説明するための例示図である。
【
図6b】
図6bは、本開示の一実施例に係るアフィン動き予測を説明するための例示図である。
【
図7】
図7は、アフィン動き予測のための組合せアフィンマージ候補を誘導する方法を説明するための例示図である。
【
図8】
図8は、本開示の一実施例に係る、アフィンAMVPモードでアフィンAMVP候補を探索する過程を示すフローチャートである。
【
図9】
図9は、本開示の一実施例に係る、幾何学的分割モードでサポートされる三角分割類型を示す例示図である。
【
図10】
図10は、本開示の一実施例に係る、幾何学的分割モードで用いられる加重値を示す例示図である。
【
図11】
図11は、本開示の一実施例に係る、GPM候補リストを示す例示図である。
【
図12】
図12は、本開示の一実施例に係る、イントラ予測におけるテンプレートマッチングを示す例示図である。
【
図13】
図13は、本開示の一実施例に係る、双方向予測におけるテンプレートマッチングを示す例示図である。
【
図14】
図14は、本開示の一実施例に係る、双方向マッチングAMVP - MERGEモードを示す例示図である。
【
図15】
図15は、本開示の一実施例に係る、動き情報候補リストを誘導するための周辺ブロックを示す例示図である。
【
図16】
図16は、本開示の一実施例に係る、空間的候補を誘導するための周辺ブロックを示す例示図である。
【
図17】
図17は、本開示の一実施例に係る、継承アフィンAMVP候補の並べ替えを含む、アフィンAMVP候補を探索する過程を示すフローチャートである。
【
図18】
図18は、本開示の一実施例に係る、映像符号化装置が現在ブロックをインター予測する方法を示すフローチャートである。
【
図19】
図19は、本開示の一実施例に係る、映像復号化装置が現在ブロックをインター予測する方法を示すフローチャートである。
【
図20】
図20は、本開示の他の実施例に係る、映像符号化装置が現在ブロックをインター予測する方法を示すフローチャートである。
【
図21】
図21は、本開示の他の実施例に係る、映像復号化装置が現在ブロックをインター予測する方法を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明の実施例を例示的な図面を参照して詳しく説明する。各図面の構成要素に参照符号を付加するにあたり、同一の構成要素に対しては、たとえ他の図面に表示されても可能な限り同一の符号を有するようにしていることに留意されたい。なお、本実施例を説明するにあたり、関連された公知の構成又は機能についての具体的な説明が本実施例の要旨を曖昧にすると判断される場合には、その詳しい説明は省く。
【0013】
図1は、本開示の技術を具現することができる映像符号化装置についての例示的なブロック図である。以下では、
図1の図示を参照して映像符号化装置とこの装置の下位構成について説明する。
【0014】
映像符号化装置は、ピクチャ分割部110、予測部120、減算器130、変換部140、量子化部145、並べ替え部150、エントロピー符号化部155、 逆量子化部160、逆変換部165、加算器170、ループフィルタ部180、及びメモリ190を含むように構成される。
【0015】
映像符号化装置の各構成要素は、ハードウェア又はソフトウェアで具現されてもよく、ハードウェア及びソフトウェアの組み合わせで具現されてもよい。さらに、各構成要素の機能がソフトウェアで具現され、マイクロプロセッサが各構成要素に対応するソフトウェアの機能を実行するように具現されてもよい。
【0016】
1つの映像(ビデオ)は、複数のピクチャを含む1つ以上のシーケンスで構成される。各ピクチャは複数の領域に分割され、各領域ごとに符号化が遂行される。例えば、1つのピクチャは、1つ以上のタイル(Tile)又は/及びスライス(Slice)に分割される。ここで、1つ以上のタイルをタイルグループ(Tile Group)として定義する。各タイル又は/及びスライスは、1つ以上のCTU(Coding Tree Unit)に分割される。そして、各CTUはツリー構造によって1つ以上のCU(Coding Unit)に分割される。各CUに適用される情報はCUのシンタックスとして符号化され、1つのCTUに含まれるCUに共通に適用される情報はCTUのシンタックスとして符号化される。さらに、1つのスライス内のすべてのブロックに共通に適用される情報はスライスヘッダのシンタックスとして符号化され、1つ以上のピクチャを構成するすべてのブロックに適用される情報はピクチャパラメータセット(PPS、Picture Parameter Set)あるいはピクチャ ヘッダに符号化される。さらに、複数のピクチャが共通に参照する情報は、シーケンスパラメータセット(SPS、Sequence Parameter Set)に符号化される。そして、1つ以上のSPSが共通に参照する情報は、ビデオパラメータセット(VPS、Video Parameter Set)に符号化される。さらに、1つのタイル又はタイルグループに共通に適用される情報は、タイル又はタイルグループヘッダのシンタックスとして符号化されてもよい。SPS、PPS、スライスヘッダ、タイル又はタイルグループヘッダに含まれるシンタックスは、上位水準(high level)のシンタックスと称する。
【0017】
ピクチャ分割部110は、CTU(Coding Tree Unit)のサイズを決定する。CTUのサイズに関する情報(CTU size)は、SPS又はPPSのシンタックスとして符号化されて映像復号化装置に伝達される。
【0018】
ピクチャ分割部110は、映像を構成する各ピクチャ(picture)を予め決定されたサイズを有する複数のCTU(Coding Tree Unit)に分割した以降に、ツリー構造(tree structure)を用いてCTUを繰り返し(recursively)分割する。ツリー構造におけるリーフノード(leaf node)が符号化の基本単位であるCU(coding unit)となる。
【0019】
ツリー構造では、上位ノード(あるいは親ノード)が同じサイズの4つの下位ノード(あるいは子ノード)に分割されるクワッドツリー(Quad Tree、QT)、又は上位ノードが2つの下位ノードに分割されるバイナリツリー(Binary Tree、BT)、又は上位ノードが1:2:1の比率で3つの下位ノードに分割されるターナリーツリー(Ternary Tree、TT)、又はこれらのQT構造、BT構造、及びTT構造のうちの2つ以上を混用した構造である。例えば、QTBT(Quad Tree plus Binary Tree)構造が用いられてもよく、あるいはQTBTTT(Quad Tree plus Binary Tree Ternary Tree)構造が用いられてもよい。ここで、BTTTを合わせてMTT(Multiple-Type Tree)と称される。
【0020】
図2は、QTBTTT構造を用いてブロックを分割する方法を説明するための図である。
【0021】
図2に図示されたように、CTUは最初にQT構造に分割される。クワッドツリー分割は、分割ブロック(splitting block)のサイズがQTで許容されるリーフノードの最小ブロックサイズMinQTSizeに到達するまで繰り返される。QT構造の各ノードが下位レイヤの4つのノードに分割されるか否かを指し示す第1のフラグQT_split_flagは、エントロピー符号化部155によって符号化されて映像復号化装置にシグナリングされる。QTのリーフノードがBTで許容されるルートノードの最大ブロックサイズMaxBTSizeよりも大きくない場合、BT構造又はTT構造のうちのいずれか1つ以上にさらに分割される。BT構造及び/又はTT構造では、複数の分割方向が存在する。例えば、該当ノードのブロックが横に分割される方向と縦に分割される方向の2つが存在する。
図2に示すように、MTT分割が開始されると、ノードが分割されたか否かを指し示す第2のフラグmtt_split_flagと、分割されたら追加的に分割方向(verticalあるいはhorizontal)を示すフラグ及び/又は分割タイプ(BinaryあるいはTernary)を示すフラグがエントロピー符号化部155によって符号化されて映像復号化装置にシグナリングされる。
【0022】
代替的に、各ノードが下位レイヤの4つのノードに分割されるか否かを指し示す第1のフラグQT_split_flagを符号化する前に、そのノードが分割されるか否かを指し示すCU分割フラグsplit_cu_flagが符号化されてもよい。CU分割フラグsplit_cu_flag値が分割されていないことを指し示す場合、該当ノードのブロックが分割ツリー構造におけるリーフノード(leaf node)となり、符号化の基本単位であるCU(coding unit)となる。CU分割フラグsplit_cu_flag値が分割されることを指し示す場合、映像符号化装置は、上述した方式で第1のフラグから符号化を開始する。
【0023】
ツリー構造の他の例示としてQTBTが使用される場合、該当ノードのブロックを同一サイズの2つのブロックに横に分割するタイプ(すなわち、symmetric horizontal splitting)と縦に分割するタイプ(すなわち、symmetric vertical splitting)の2つが存在する。BT構造の各ノードが下位レイヤのブロックに分割されるか否かを指し示す分割フラグsplit_flag及び、分割されるタイプを指し示す分割タイプ情報がエントロピー符号化部155によって符号化されて映像復号化装置に伝達される。一方、該当ノードのブロックを互いに非対称形態の2つのブロックに分割するタイプが追加でさらに存在してもよい。非対称形態には、該当ノードのブロックを1:3のサイズ比率を有する2つの長方形ブロックに分割する形態が含まれてもよく、あるいは該当ノードのブロックを対角線方向に分割する形態が含まれてもよい。
【0024】
CUは、CTUからのQTBT又はQTBTTT分割に応じて様々なサイズを有する。以下では、符号化又は復号しようとするCU(すなわち、QTBTTTのリーフノード)に該当するブロックを「現在ブロック」と称する。QTBTTT分割の採用に応じ、現在ブロックの形状は正方形だけでなく長方形であってもよい。
【0025】
予測部120は、現在ブロックを予測して予測ブロックを生成する。予測部120は、イントラ予測部122とインター予測部124を含む。
【0026】
一般に、ピクチャ内の現在ブロックはそれぞれ予測的にコーディングされる。一般に、現在ブロックの予測は(現在ブロックを含むピクチャからのデータを使用する)イントラ予測技術又は(現在ブロックを含むピクチャ以前にコーディングされたピクチャからのデータを使用する)インター予測技術を使用して遂行される。インター予測は、一方向予測と双方向予測の両方を含む。
【0027】
イントラ予測部122は、現在ブロックが含まれた現在ピクチャ内で現在ブロックの周辺に位置するピクセル(参照ピクセル)を用いて現在ブロック内のピクセルを予測する。予測方向によって複数のイントラ予測モードが存在する。例えば、
図3aに見られるように、複数のイントラ予測モードは、プラナー(planar)モードとDCモードを含む2つの非方向性モードと65個の方向性モードを含む。各予測モードによって使用する周辺ピクセルと演算式が異なるように定義される。
【0028】
長方形形状の現在ブロックに対する効率的な方向性予測のために、
図3bに破線の矢印で図示された方向性モード(67~80番、-1~-14番イントラ予測モード)が追加で使用される。これらは、「広角イントラ予測モード(wide angle intra-prediction modes)」と称される。
図3bで矢印は、予測に使用される対応する参照サンプルを指すものであり、予測方向を示すものではない。予測方向は、矢印が指す方向と反対である。広角イントラ予測モードは、現在ブロックが長方形のときに追加のビット伝送なしに特定の方向性モードを反対方向で予測を遂行するモードである。このとき、広角イントラ予測モードのうちから、長方形の現在ブロックの幅と高さの比率により、現在ブロックに利用可能な一部の広角イントラ予測モードが決定される。例えば、45度より小さい角度を有する広角イントラ予測モード(67~80番イントラ予測モード)は、現在ブロックが、高さが幅より小さい長方形の形態であるときに利用可能であり、-135度より大きい角度を有する広角イントラ予測モード(-1~-14番イントラ予測モード)は、現在ブロックが、幅が高さよりも大きい長方形の形態であるときに利用可能である。
【0029】
イントラ予測部122は、現在ブロックを符号化するのに使用するイントラ予測モードを決定する。一部の例で、イントラ予測部122は、色々なイントラ予測モードを使用して現在ブロックをエンコーディングし、テストされたモードから使用する適切なイントラ予測モードを選択してもよい。例えば、イントラ予測部122は、色々にテストされたイントラ予測モードに対するビットレート歪み(rate-distortion)分析を用いてビットレート歪み値を計算し、テストされたモードの中で最善のビットレート歪み特徴を有するイントラ予測モードを選択してもよい。
【0030】
イントラ予測部122は、複数のイントラ予測モードの中から1つのイントラ予測モードを選択し、選択されたイントラ予測モードによって決定される周辺ピクセル(参照ピクセル)と演算式を用いて現在ブロックを予測する。選択されたイントラ予測モードに関する情報は、エントロピー符号化部155によって符号化されて映像復号化装置に伝達される。
【0031】
インター予測部124は、動き補償プロセスを用いて現在ブロックに対する予測ブロックを生成する。インター予測部124は、現在ピクチャより先に符号化及び復号化された参照ピクチャ内で現在ブロックと最も類似したブロックを探索し、その探索されたブロックを用いて現在ブロックに対する予測ブロックを生成する。そして、現在ピクチャ内の現在ブロックと参照ピクチャ内の予測ブロックとの間の変位(displacement)に該当する動きベクトル(Motion Vector:MV)を生成する。一般に、動き推定はルマ(luma)成分に対して遂行され、ルマ成分に基づいて計算された動きベクトルはルマ成分及びクロマ成分の両方に対して使用される。現在ブロックを予測するために使用された参照ピクチャに関する情報及び、動きベクトルに関する情報を含む動き情報は、エントロピー符号化部155によって符号化されて映像復号化装置に伝達される。
【0032】
インター予測部124は、予測の正確性を高めるために、参照ピクチャ又は参照ブロックに対する補間を遂行してもよい。すなわち、連続する2つの整数サンプル間のサブサンプルは、その2つの整数サンプルを含む連続された複数の整数サンプルにフィルタ係数を適用して補間される。補間された参照ピクチャに対して現在ブロックと最も類似したブロックを検索するステップを遂行すると、動きベクトルは整数サンプル単位の精度(precision)ではなく小数単位の精度まで表現される。動きベクトルの精度又は解像度(resolution)は、符号化しようとする対象領域、例えばスライス、タイル、CTU、CUなどの単位ごとに異なるように設定される。このような適応的動きベクトル解像度(Adaptive Motion Vector Resolution:AMVR)が適用される場合、各対象領域に適用する動きベクトル解像度に関する情報は、対象領域ごとにシグナリングされなければならない。例えば、対象領域がCUである場合、各CUごとに適用された動きベクトル解像度に関する情報がシグナリングされる。動きベクトル解像度に関する情報は、後述する差分動きベクトルの精度を示す情報である。
【0033】
一方、インター予測部124は、双方向予測(bi-prediction)を用いてインター予測を遂行する。双方向予測の場合、2つの参照ピクチャと、各参照ピクチャ内で現在ブロックと最も類似したブロック位置を表す2つの動きベクトルが用いられる。インター予測部124は、参照ピクチャリスト0(RefPicList0)及び参照ピクチャリスト1(RefPicList1)からそれぞれ第1の参照ピクチャ及び第2の参照ピクチャを選択し、各参照ピクチャ内で現在ブロックと類似したブロックを探索して第1の参照ブロックと第2の参照ブロックを生成する。そして、第1の参照ブロックと第2の参照ブロックを平均又は加重平均して現在ブロックに対する予測ブロックを生成する。そして、現在ブロックを予測するために使用した2つの参照ピクチャに関する情報及び、2つの動きベクトルに関する情報を含む動き情報を符号化部150に伝達する。ここで、参照ピクチャリスト0は、予め復元されたピクチャのうち、ディスプレイ順序で現在ピクチャ以前のピクチャで構成され、参照ピクチャリスト1は、予め復元されたピクチャのうち、ディスプレイ順序で現在ピクチャ以降のピクチャで構成される。しかしながら、必ずしもこれに限定されるわけではなく、ディスプレイ順序上で現在ピクチャ以降の既復元のピクチャが参照ピクチャリスト0に追加でさらに含まれてもよく、逆に現在ピクチャ以前の既復元のピクチャが参照ピクチャリスト1に追加でさらに含まれてもよい。
【0034】
動き情報を符号化するのに必要とされるビット量を最小化するために多様な方法が用いられる。
【0035】
例えば、現在ブロックの参照ピクチャと動きベクトルが、周辺ブロックの参照ピクチャ及び動きベクトルと同一の場合には、その周辺ブロックを識別できる情報を符号化することで、現在ブロックの動き情報を映像復号化装置に伝達することができる。この方法を「マージモード(merge mode)」とする。
【0036】
マージモードで、インター予測部124は、現在ブロックの周辺ブロックから予め決定された個数のマージ候補ブロック(以下、「マージ候補」という)を選択する。
【0037】
マージ候補を誘導するための周辺ブロックとしては、
図4に示されたように、現在ピクチャ内で現在ブロックに隣接する左側ブロックA0、左下段ブロックA1、上段ブロックB0、右上段ブロックB1、及び左上段ブロックA2のうちの全部又は一部が使用される。さらに、現在ブロックが位置する現在ピクチャではなく、参照ピクチャ(現在ブロックを予測するために使用された参照ピクチャと同一であってもよいし異なってもよい)内に位置するブロックがマージ候補として使用されてもよい。例えば、参照ピクチャ内で現在ブロックと同一の位置にあるブロック(co-located block)又はその同一の位置のブロックに隣接するブロックがマージ候補として追加でさらに使用される。以上で記述された方法によって選定されたマージ候補の個数が予め設定された個数より小さいと、0ベクトルをマージ候補に追加する。
【0038】
インター予測部124は、このような周辺ブロックを用いて予め決定された個数のマージ候補を含むマージリストを構成する。マージリストに含まれたマージ候補の中から現在ブロックの動き情報として使用するマージ候補を選択し、選択された候補を識別するためのマージインデックス情報を生成する。生成されたマージインデックス情報は、符号化部150によって符号化されて映像復号化装置に伝達される。
【0039】
マージスキップ(merge skip)モードはマージモードの特別な場合であり、量子化を遂行した後、エントロピー符号化のための変換係数が全て零(zero)に近いとき、残差信号の伝送なしに周辺ブロック選択情報のみを伝送する。マージスキップモードを用いることで、動きの少ない映像、静止画、スクリーンコンテンツ映像などで相対的に高い符号化効率を達成することができる。
【0040】
以下、マージモードとマージスキップモードを総称し、マージ/スキップモードで表す。
【0041】
動き情報を符号化するためのまた別の方法は、AMVP(Advanced Motion Vector Prediction)モードである。
【0042】
AMVPモードで、インター予測部124は、現在ブロックの周辺ブロックを用いて現在ブロックの動きベクトルに対する予測動きベクトル候補を誘導する。予測動きベクトル候補を誘導するために使用される周辺ブロックとしては、
図4に図示された現在ピクチャ内で現在ブロックに隣接する左側ブロックA0、左下段ブロックA1、上段ブロックB0、右上段ブロックB1、及び左上段ブロックA2のうち、全部又は一部が用いられる。さらに、現在ブロックが位置する現在ピクチャではなく、参照ピクチャ(現在ブロックを予測するために使用された参照ピクチャと同じであってもよく異なってもよい)内に位置するブロックが、予測動きベクトル候補を誘導するために使用される周辺ブロックとして使用されてもよい。例えば、参照ピクチャ内で現在ブロックと同じ位置にあるブロック(collocated block)、又はその同じ位置のブロックに隣接するブロックが使用される。以上で記述された方法によって動きベクトル候補の個数が予め設定された個数より小さいと、0ベクトルを動きベクトル候補に追加する。
【0043】
インター予測部124は、この周辺ブロックの動きベクトルを用いて予測動きベクトル候補を誘導し、予測動きベクトル候補を用いて現在ブロックの動きベクトルに対する予測動きベクトルを決定する。そして、現在ブロックの動きベクトルから予測動きベクトルを減算して差分動きベクトルを算出する。
【0044】
予測動きベクトルは、予測動きベクトル候補に予め定義された関数(例えば、中央値、平均値演算など)を適用して求める。この場合、映像復号化装置も予め定義された関数を知っている。また、予測動きベクトル候補を誘導するために使用する周辺ブロックは既に符号化及び復号化が完了されたブロックであるため、映像復号化装置もその周辺ブロックの動きベクトルも既に知っている。したがって、映像符号化装置は、予測動きベクトル候補を識別するための情報を符号化する必要がない。したがって、この場合には、差分動きベクトルに関する情報と、現在ブロックを予測するために使用した参照ピクチャに関する情報が符号化される。
【0045】
一方、予測動きベクトルは、予測動きベクトル候補のうちのいずれか1つを選択する方式で決定されてもよい。この場合には、差分動きベクトルに関する情報及び現在ブロックを予測するために使用した参照ピクチャに関する情報と共に、選択された予測動きベクトル候補を識別するための情報が追加で符号化される。
【0046】
減算器130は、現在ブロックからイントラ予測部122又はインター予測部124によって生成された予測ブロックを減算して残差ブロックを生成する。
【0047】
変換部140は、空間領域のピクセル値を有する残差ブロック内の残差信号を周波数ドメインの変換係数に変換する。変換部140は、残差ブロックの全体サイズを変換単位として使用して残差ブロック内の残差信号を変換してもよく、あるいは残差ブロックを複数個のサブブロックに分割してそのサブブロックを変換単位として使用して変換してもよい。あるいは、変換領域及び、非変換領域である2つのサブブロックに区分し、変換領域サブブロックのみを変換単位として使用して残差信号を変換してもよい。ここで、変換領域サブブロックは、横軸(又は縦軸)基準1:1のサイズ比率を有する2つの長方形ブロックのうちの1つである。この場合、サブブロックのみを変換したことを指し示すフラグcu_sbt_flag、方向性(vertical/horizontal)情報cu_sbt_horizontal_flag、及び/又は位置情報cu_sbt_pos_flagがエントロピー符号化部155によって符号化されて映像復号化装置にシグナリングされる。また、変換領域サブブロックのサイズは、横軸(あるいは縦軸)基準1:3のサイズ比率を有し、このような場合、該当分割を区分するフラグcu_sbt_quad_flagが追加的にエントロピー符号化部155によって符号化されて映像復号化装置にシグナリングされる。
【0048】
一方、変換部140は、残差ブロックに対して横方向と縦方向に個別に変換を遂行する。変換のために、様々なタイプの変換関数又は変換行列が用いられる。例えば、横方向変換と縦方向変換のための変換関数の対をMTS(Multiple Transform Set)と定義する。変換部140は、MTSのうち、変換効率が最も良い1つの変換関数対を選択し、横及び縦方向にそれぞれ残差ブロックを変換する。MTSのうちから選択された変換関数対に関する情報mts_idxは、エントロピー符号化部155によって符号化されて映像復号化装置にシグナリングされる。
【0049】
量子化部145は、変換部140から出力される変換係数を、量子化パラメータを用いて量子化し、量子化された変換係数をエントロピー符号化部155に出力する。量子化部145は、任意のブロックあるいはフレームに対し、変換なしに、関連された残差ブロックを直ちに量子化してもよい。量子化部145は、変換ブロック内の変換係数の位置に応じて互いに異なる量子化係数(スケーリング値)を適用してもよい。二次元に配置された量子化された変換係数に適用される量子化行列は符号化されて映像復号化装置にシグナリングされる。
【0050】
並べ替え部150は、量子化された残差値に対して係数値の並べ替えを遂行する。
【0051】
並べ替え部150は、係数走査(coefficient scanning)を用いて2次元の係数アレイを1次元の係数シーケンスに変更する。例えば、並べ替え部150では、千鳥状スキャン(zig-zag scan)又は対角線スキャン(diagonal scan)を用いてDC係数から高周波数領域の係数までスキャンして1次元の係数シーケンスを出力する。変換単位のサイズ及びイントラ予測モードによって千鳥状スキャンの代わりに2次元の係数アレイを列方向にスキャンする垂直スキャン、2次元のブロック形態係数を行方向にスキャンする水平スキャンが使用されてもよい。すなわち、変換単位のサイズ及びイントラ予測モードによって千鳥状スキャン、対角線スキャン、垂直方向スキャン、及び水平方向スキャンのうちから使用されるスキャン方法が決定されてもよい。
【0052】
エントロピー符号化部155は、CABAC(Context-based Adaptive Binary Arithmetic Code)、指数ゴロム(Exponential Golomb)などの様々な符号化方式を用い、並べ替え部150から出力された1次元の量子化された変換係数のシーケンスを符号化することによってビットストリームを生成する。
【0053】
また、エントロピー符号化部155は、ブロック分割に関連されたCTUサイズ、CU分割フラグ、QT分割フラグ、MTT分割タイプ、MTT分割方向などの情報を符号化し、映像復号化装置が映像符号化装置と同様にブロックを分割できるようにする。また、エントロピー符号化部155は、現在ブロックがイントラ予測によって符号化されたか、それともインター予測によって符号化されたかの如何を指し示す予測タイプに関する情報を符号化し、予測タイプによってイントラ予測情報(すなわち、イントラ予測モードに関する情報)又はインター予測情報(動き情報の符号化モード(マージモード又はAMVPモード)、マージモードの場合はマージインデックス、AMVPモードの場合は参照ピクチャインデックス及び差分動きベクトルに関する情報)を符号化する。また、エントロピー符号化部155は、量子化に関連された情報、すなわち量子化パラメータに関する情報及び量子化行列に関する情報を符号化する。
【0054】
逆量子化部160は量子化部145から出力される量子化された変換係数を逆量子化して変換係数を生成する。逆変換部165は、逆量子化部160から出力される変換係数を周波数ドメインから空間ドメインに変換して残差ブロックを復元する。
【0055】
加算部170は、復元された残差ブロックと予測部120によって生成された予測ブロックを加算して現在ブロックを復元する。復元された現在ブロック内のピクセルは、次の順序のブロックをイントラ予測するときに参照ピクセルとして使用される。
【0056】
ループ(loop)フィルタ部180は、ブロックベースの予測及び変換/量子化によって発生するブロッキングアーチファクト(blocking artifacts)、リンギングアーチファクト(ringing artifacts)、ぼかしアーチファクト(blurring artifacts)等を減らすために復元されたピクセルに対するフィルタリングを遂行する。フィルタ部180は、インループ(in-loop)フィルタとしてデブロックフィルタ182、SAO(Sample Adaptive Offset)フィルタ184、及びALF(Adaptive Loop Filter)186の全部又は一部を含む。
【0057】
デブロックフィルタ182は、ブロック単位の符号化/復号化によって発生するブロッキング現象(blocking artifact)を除去するために復元されたブロック間の境界をフィルタリングし、SAOフィルタ184及びalf186は、 デブロックフィルタリングされた映像に対して追加のフィルタリングを遂行する。SAOフィルタ184及びalf186は、損失符号化(lossy coding)によって発生する復元されたピクセルと元本ピクセルとの間の差を補償するために使用されるフィルタである。SAOフィルタ184は、CTU単位でオフセットを適用することで、主観的な画質だけでなく符号化効率も向上させる。これに比べ、ALF186はブロック単位のフィルタリングを遂行し、該当ブロックのエッジ及び変化量の程度を区分して異なるフィルタを適用して歪みを補償する。ALFに使用されるフィルタ係数に関する情報は符号化されて映像復号化装置にシグナリングされる。
【0058】
デブロックフィルタ182、SAOフィルタ184、及びALF186を介してフィルタリングされた復元ブロックはメモリ190に保存される。あるピクチャ内のすべてのブロックが復元されると、復元されたピクチャは、後に符号化しようとするピクチャ内のブロックをインター予測するための参照ピクチャとして使用される。
【0059】
図5は、本開示の技術を具現することができる映像復号化装置の例示的なブロック図である。以下では、
図5を参照して映像復号化装置とこの装置の下位構成について説明することにする。
【0060】
映像復号化装置は、エントロピー復号化部510、並べ替え部515、逆量子化部520、逆変換部530、予測部540、加算器550、ループフィルタ部560、及びメモリ570を含むように構成される。
【0061】
図1の映像符号化装置と同様に、映像復号化装置の各構成要素はハードウェア又はソフトウェアで具現されてもよく、ハードウェア及びソフトウェアの組み合わせで具現されてもよい。さらに、各構成要素の機能がソフトウェアで具現され、マイクロプロセッサが各構成要素に対応するソフトウェアの機能を実行するように具現されてもよい。
【0062】
エントロピー復号化部510は、映像符号化装置によって生成されたビットストリームを復号化してブロック分割に関連された情報を抽出することで、復号化しようとする現在ブロックを決定し、現在ブロックを復元するために必要な予測情報と、残差信号に関する情報などを抽出する。
【0063】
エントロピー復号化部510は、SPS(Sequence Parameter Set)又はPPS(Picture Parameter Set)からCTUサイズに関する情報を抽出してCTUのサイズを決定し、ピクチャを決定されたサイズのCTUに分割する。そして、CTUをツリー構造の最上位レイヤ、すなわちルートノードとして決定し、CTUに関する分割情報を抽出することで、ツリー構造を用いてCTUを分割する。
【0064】
例えば、QTBTTT構造を用いてCTUを分割する場合、まずQTの分割に関連された第1のフラグQT_split_flagを抽出して各ノードを下位レイヤの4つのノードに分割する。そして、QTのリーフノードに該当するノードに対しては、MTTの分割に関連された第2のフラグMTT_split_flag及び分割方向(vertical/horizontal)及び/又は分割タイプ(binary/ternary)情報を抽出して該当リーフノードをMTT構造に分割する。これにより、QTのリーフノード以下の各ノードをBT又はTT構造に繰り返し(recursively)分割する。
【0065】
また他の例として、QTBTTT構造を用いてCTUを分割する場合、まずCUの分割可否を指し示すCU分割フラグsplit_cu_flagを抽出し、該当ブロックが分割された場合、第1のフラグQT_split_flagを抽出してもよい。分割の過程で、各ノードは、0回以上の繰り返しのQT分割後に0回以上の繰り返しのMTT分割が発生する。例えば、CTUはすぐにMTT分割が発生してもよく、逆に複数回のQT分割のみが発生してもよい。
【0066】
別の例として、QTBT構造を用いてCTUを分割する場合、QTの分割に関連された第1のフラグQT_split_flagを抽出して各ノードを下位レイヤの4つのノードに分割する。そして、QTのリーフノードに該当するノードに対しては、BTでさらに分割されるか否かを指し示す分割フラグsplit_flag及び分割方向情報を抽出する。
【0067】
一方、エントロピー復号化部510は、ツリー構造の分割を用いて復号化しようとする現在ブロックを決定すると、現在ブロックがイントラ予測されたかそれともインター予測されたかを指し示す予測タイプに関する情報を抽出する。予測タイプ情報がイントラ予測を指し示す場合、エントロピー復号化部510は、現在ブロックのイントラ予測情報(イントラ予測モード)に関するシンタックス要素を抽出する。予測タイプ情報がインター予測を指し示す場合、エントロピー復号化部510は、インター予測情報に関するシンタックス要素、すなわち、動きベクトル及び、その動きベクトルが参照する参照ピクチャを表す情報を抽出する。
【0068】
また、エントロピー復号化部510は、量子化関連の情報、及び残差信号に関する情報として現在ブロックの量子化された変換係数に関する情報を抽出する。
【0069】
並べ替え部515は、映像符号化装置によって遂行された係数走査順序の逆順で、エントロピー復号化部510でエントロピー復号化された1次元の量子化された変換係数のシーケンスを再び2次元の係数アレイ(すなわち、ブロック)に変更することができる。
【0070】
逆量子化部520は、量子化された変換係数を逆量子化し、量子化パラメータを用いて量子化された変換係数を逆量子化する。逆量子化部520は、二次元に配列された量子化された変換係数に対して互いに異なる量子化係数(スケーリング値)を適用してもよい。逆量子化部520は、映像符号化装置から量子化係数(スケーリング値)の行列を量子化された変換係数の2次元アレイに適用して逆量子化を遂行する。
【0071】
逆変換部530は、逆量子化された変換係数を周波数ドメインから空間ドメインに逆変換して残差信号を復元することで、現在ブロックに対する残差ブロックを生成する。
【0072】
また、逆変換部530は、変換ブロックの一部領域(サブブロック)のみ逆変換する場合、変換ブロックのサブブロックのみを変換したことを指し示すフラグcu_sbt_flag、サブブロックの方向性(vertical/horizontal)情報cu_sbt_horizontal_flag及び/又はサブブロックの位置情報cu_sbt_pos_flagを抽出し、該当サブブロックの変換係数を周波数ドメインから空間ドメインに逆変換することによって残差信号を復元し、逆変換されない領域に対しては残差信号で「0」値を満たすことによって現在ブロックに対する最終残差ブロックを生成する。
【0073】
また、MTSが適用された場合、逆変換部530は、映像符号化装置からシグナリングされたMTS情報mts_idxを用いて横及び縦方向にそれぞれ適用する変換関数又は変換行列を決定し、決定された変換関数を用いて横及び縦方向に変換ブロック内の変換係数に対して逆変換を遂行する。
【0074】
予測部540は、イントラ予測部542及びインター予測部544を含む。イントラ予測部542は、現在ブロックの予測タイプがイントラ予測であるときに活性化され、インター予測部544は、現在ブロックの予測タイプがインター予測であるときに活性化される。
【0075】
イントラ予測部542は、エントロピー復号化部510から抽出されたイントラ予測モードに対するシンタックス要素から複数のイントラ予測モードのうちの現在ブロックのイントラ予測モードを決定し、イントラ予測モードに応じて現在ブロック周囲の参照ピクセルを用いて現在ブロックを予測する。
【0076】
インター予測部544は、エントロピー復号化部510から抽出されたインター予測モードに対するシンタックス要素を用いて現在ブロックの動きベクトルと、その動きベクトルが参照する参照ピクチャを決定し、動きベクトルと参照ピクチャを用いて現在ブロックを予測する。
【0077】
加算器550は、逆変換部から出力される残差ブロックと、インター予測部又はイントラ予測部から出力される予測ブロックを加算して現在ブロックを復元する。復元された現在ブロック内のピクセルは、後で復号化するブロックをイントラ予測するときの参照ピクセルとして活用される。
【0078】
ループフィルタ部560は、インループフィルタとしてデブロックフィルタ562、SAOフィルタ564及びALF566を含む。デブロックフィルタ562は、ブロック単位の復号化に因って発生するブロッキング現象(blocking artifact)を除去するために、復元されたブロック間の境界をデブロックフィルタリングする。SAOフィルタ564及びALF566は、損失符号化(lossy coding)に因って発生する復元されたピクセルと元本ピクセルとの間の差を補償するために、デブロックフィルタリング以降の復元されたブロックに対して追加のフィルタリングを遂行する。ALFのフィルタ係数は、ビットストリームから復号したフィルタ係数に関する情報を用いて決定される。
【0079】
デブロックフィルタ562、SAOフィルタ564、及びALF566を介してフィルタリングされた復元ブロックはメモリ570に保存される。あるピクチャ内のすべてのブロックが復元されると、復元されたピクチャは、後で符号化しようとするピクチャ内のブロックをインター予測するための参照ピクチャとして使用される。
【0080】
本実施例は、以上で説明したような映像(ビデオ)の符号化及び復号化に関する。より詳しくは、インター予測のマージモード及びAMVP(Advanced Motion Vector Prediction)モードにおいて、テンプレートマッチング方法又は双方向マッチング方法に基づいてデコーダ側で動きベクトルリストに対して候補を追加、プルーニング(pruning)及び並べ替えのうちの1つ以上を遂行するビデオコーディング方法及び装置を提供する。
【0081】
以下の実施例は、映像符号化装置(video encoding device)内のインター予測部124によって遂行される。また、映像復号化装置(video decoding device)内のインター予測部544によって遂行される。
【0082】
映像符号化装置は、現在ブロックの符号化において、ビットレート歪曲最適化の側面から本実施例に関連されたシグナリング情報を生成する。映像符号化装置は、エントロピー符号化部155を用いてこれを符号化した後、映像復号化装置に伝送する。映像復号化装置は、エントロピー復号化部510を用いてビットストリームから現在ブロックの復号化に関連されたシグナリング情報を復号化する。
【0083】
以下の説明で、「対象ブロック」という用語は、現在ブロック又はコーディングユニット(CU,Coding Unit)と同じ意味で使用されてもよく、又はコーディングユニットの一部の領域を意味してもよい。
【0084】
また、1つのフラグの値が真であることは、フラグが1に設定される場合を示す。また、1つのフラグの値が偽であることは、フラグが0に設定される場合を示す。
【0085】
I. イントラブロックコピー (Intra Block Copy, IBC)
IBCは、ブロックベクトルを用いて同一フレーム内の参照ブロックをコピーして現在ブロックの予測ブロックを生成することにより、現在ブロックのイントラ予測を遂行する。
【0086】
映像符号化装置は、ブロックマッチング(block matching)を遂行して最適なブロックベクトルを導出する。ここで、ブロックベクトルは、現在ブロックから参照ブロックまでの変位(displacement)を表す。映像符号化装置は、符号化効率を高めるために、ブロックベクトルをそのまま伝送せずに、ブロックベクトル予測子(Block Vector Predictor,BVP)とブロックベクトル差分(Block Vector Difference,BVD)に分割し、これらを符号化した後、映像復号化装置に伝送する。
【0087】
以下、BVDの空間解像度とブロックベクトルの空間解像度は同一であると看做す。
【0088】
ブロックベクトルを用いるという側面で、IBCはインター予測の特徴を有する。したがって、IBCはIBCマージ/スキップモード及びIBC AMVPモードに区分される。
【0089】
IBCマージ/スキップモードの場合、まず映像符号化装置はIBCマージリスト(merge list)を構成する。符号化効率最適化の側面から、映像符号化装置は、IBCマージリストに含まれる候補のうちの1つのブロックベクトルを選択した後、それをブロックベクトル予測子(BVP)として使用する。映像符号化装置は、選択されたブロックベクトルを指示するマージインデックスを決定する。しかし、映像符号化装置はBVDを生成しない。映像符号化装置は、マージインデックスを符号化して映像復号化装置に伝送する。IBCマージリストは、映像符号化装置と映像復号化装置によって同じ方法で構成される。映像復号化装置は、マージインデックスを復号化した後、マージインデックスを用いてIBCマージリストからブロックベクトルを生成する。
【0090】
映像符号化装置は、IBCスキップモードの場合、IBCマージモードと同じブロックベクトルの伝送方法を用いるが、現在ブロックと予測ブロックとの間の差に該当する残差ブロックを伝送しない。
【0091】
IBC AMVPモードの場合、符号化効率最適化の側面から、映像符号化装置は動きベクトルを決定し、IBC AMVPリストを構成する。映像復号化装置は、IBC AMVPリストに含まれる候補ブロックベクトルのうちの1つをBVPとして指示する候補インデックスを決定する。映像符号化装置は、BVPと動きベクトルとの間の差であるBVDを算定する。その後、映像符号化装置は、候補インデックス及びBVDを符号化して映像復号化装置に伝送する。
【0092】
一方、映像復号化装置は、候補インデックス及びBVDを復号化する。映像復号化装置は、IBC AMVPリストから候補インデックスが指示するBVPを獲得した後、BVPとBVDを加算して動きベクトルを復元する。
【0093】
以下のインター予測技術は、符号化効率を向上させ、インター予測の精度を向上させるために使用される。このような技術は、映像符号化装置内のインター予測部124によって遂行されるが、前述したように映像復号化装置内のインター予測部544によっても遂行される。
【0094】
II-1. マージ/スキップモード、MMVD、AMVPモード及びAMVR
マージ/スキップモードは、一般マージ(regular merge)モード、MMVD(Merge mode with Motion Vector Difference)モード、CIIP(Combined Inter and Intra Prediction)モード、幾何学的分割モード(Geometric Partitioning Mode,GPM)、及びサブブロックマージ(subblock merge)モードを含む。このとき、サブブロックマージモードはSbTMVP(Subblock-based Temporal Motion Vector Prediction)とアフィンマージモードに区分される。
【0095】
一方、AMVP(Advanced Motion Vector Prediction)モードは、一般AMVP(regular AMVP)モード、SMVD(Symmetric MVD)モード、及びアフィンAMVPモードを含む。
【0096】
以下、一般マージ/スキップモードで動き情報のマージ候補リストを構成する方法を説明する。マージ/スキップモードをサポートするために、映像符号化装置内インター予測部124は、予め設定された個数(例えば、6つ)のマージ候補を選定してマージ候補リストを構成する。
【0097】
インター予測部124は、空間的(spatial)マージ候補を探索する。インター予測部124は、
図4に例示されたような周辺ブロックから空間的マージ候補を探索する。空間的マージ候補は最大4個まで選定される。空間的マージ候補はSMVP(Spatial MVP)とも称される。
【0098】
インター予測部124は、時間的(temporal)マージ候補を探索する。インター予測部124は、対象ブロックが位置する現在ピクチャではなく、参照ピクチャ(現在ブロックを予測するために使用される参照ピクチャと同じでもよく異なってもよい)内の現在ブロックと同じ位置にあるブロック(co-located block)を時間的マージ候補として追加する。時間的マージ候補は1個が選定される。時間的マージ候補は、TMVP(Temporal MVP)とも称される。
【0099】
インター予測部124は、HMVP(History-based Motion Vector Predictor)候補を探索する。インター予測部124は、以前h(ここで、hは自然数)個のCUの動きベクトルをテーブルに保存した後、マージ候補として用いる。テーブルのサイズは6であり、FIFO(First-in First Out)方式に従って以前CUの動きベクトルを保存する。これは、HMVP候補が最大6個までテーブルに保存されることを示す。インター予測部124は、テーブルに保存されたHMVP候補のうち、最近の動きベクトルをマージ候補として設定する。
【0100】
インター予測部124は、PAMVP(Pairwise Average MVP)候補を探索する。インター予測部124は、マージ候補リストで、1番目の候補と2番目の候補の動きベクトル平均をマージ候補に設定する。
【0101】
前述した探索過程を全て遂行してもマージ候補リストを満たすことができない場合(すなわち、予め設定された個数を充足できない場合)、インター予測部124は、ゼロ(zero)動きベクトルをマージ候補として追加する。
【0102】
符号化効率最適化の側面から、インター予測部124は、マージ候補リスト内の1つの候補を指示するマージインデックスを決定する。インター予測部124は、マージインデックスを用いてマージ候補リストから動きベクトル予測子(MVP、Motion Vector Predictor)を誘導した後、MVPを現在ブロックの動きベクトルとして決定する。また、映像符号化装置は、マージインデックスを映像復号化装置にシグナリングする。
【0103】
映像符号化装置は、スキップモードの場合、マージモードと同じ動きベクトルの伝送方法を用いるが、現在ブロックと予測ブロックとの間の差に該当する残差ブロックを伝送しない。
【0104】
前述したマージ候補リストを構成する方法は、映像復号化装置内のインター予測部544によって同様に遂行される。映像復号化装置はマージインデックスを復号化する。インター予測部544は、マージインデックスを用いてマージ候補リストからMVPを誘導した後、MVPを現在ブロックの動きベクトルとして決定する。
【0105】
一方、MMVD技術を用いる場合、インター予測部124は、マージインデックスを用いてマージ候補リストからMVPを誘導する。例えば、マージ候補リストの1番目又は2番目の候補がMVPとして用いられる。また、符号化効率最適化の側面から、インター予測部124は、サイズインデックス(magnitude index)及び方向インデックス(distance index)を決定する。インター予測部124は、サイズインデックス及び方向インデックスを用いて動きベクトル差分(Motion Vector Difference,MVD)を誘導した後、MVDとMVPを合算して現在ブロックの動きベクトルを復元する。さらに、映像符号化装置は、マージインデックス、サイズインデックス、及び方向インデックスを映像復号化装置にシグナリングする。
【0106】
前述したMMVD技術は、映像復号化装置内のインター予測部544によって同様に遂行される。映像復号化装置は、マージインデックス、サイズインデックス、及び方向インデックスを復号化する。インター予測部544は、マージ候補リストを構成した後、マージインデックスを用いてマージ候補リストからMVPを誘導する。インター予測部544は、サイズインデックス及び方向インデックスを用いてMVDを誘導した後、MVDとMVPを合算して現在ブロックの動きベクトルを復元する。
【0107】
以下、インター予測のAMVPモードで動き情報の候補リストを構成する方法を説明する。AMVPモードをサポートするために、映像符号化装置内インター予測部124は、予め設定された個数(例えば、2個)の候補を選定して候補リストを構成する。
【0108】
インター予測部124は、空間的候補を探索する。インター予測部124は、
図4に例示されたような周辺ブロックから空間的候補を探索する。空間的候補は最大2個まで選定される。
【0109】
インター予測部124は、時間的候補を探索する。映像符号化装置は、対象ブロックが位置する現在ピクチャではなく、参照ピクチャ(現在ブロックを予測するために使用される参照ピクチャと同じであってもよく異なってもよい)内の現在ブロックと同じ位置にあるブロックを時間的候補として追加する。時間的候補は1個が選定される。
【0110】
前述した探索過程を全て遂行しても候補リストを満たすことができない場合(すなわち、予め設定された個数を充足できない場合)、インター予測部124は、ゼロ動きベクトルを候補として追加する。
【0111】
符号化効率最適化の側面から、インター予測部124は、候補リスト内の1つの候補を指示する候補インデックスを決定する。インター予測部124は、候補インデックスを用いて候補リストからMVPを誘導する。また、符号化効率最適化の側面から、インター予測部124は、動きベクトルを決定した後、動きベクトルからMVPを減算してMVDを算定する。映像符号化装置は、候補インデックス及びMVDを映像復号化装置にシグナリングする。
【0112】
前述したAMVP候補リストを構成する方法は、映像復号化装置内のインター予測部544によって同様に遂行される。映像復号化装置は、候補インデックス及びMVDを復号化する。インター予測部544は、候補インデックスを用いて候補リストからMVPを誘導する。インター予測部544は、MVDとMVPを合算して現在ブロックの動きベクトルを復元する。
【0113】
一方、映像符号化装置は、MVDと共にMVDの空間解像度を決定する情報を伝送する。AMVR技術が使用する場合、映像符号化装置はビットレート歪曲最適化の側面からMVDの適応的空間解像度を決定する。このとき、MVDの空間解像度と動きベクトルの空間解像度は同一である。
【0114】
映像符号化装置は、AMVR技術を用いる場合、amvr_flagとamvr_precision_idxを映像復号化装置に信号することにより、MVDの空間解像度を知らせる。即ち、amvr_flagが0と信号されると、映像復号化装置は、MVDを1/4-pel空間解像度に設定する。一方、amvr_flagが0でないと、映像復号化装置はamvr_precision_idxによってMVDの空間解像度を決定する。このとき、AMVRが適用される予測方法によって選択可能なMVDの空間解像度が変わり得る。AMVRが適用可能な予測方法は、一般AMVPモード、アフィン(affine)AMVPモード、IBC AMVPモードなどである。
【0115】
II-2. アフィンマージモード及びアフィンAMVPモード
インター予測は、並進運動(translation motion)モデルを反映する動き予測である。すなわち、水平方向(x軸方向)及び垂直方向(y軸方向)への動きを予測する技法である。しかしながら、実際には、並進運動以外に、回転(rotation)、ズームイン(zoom-in)、又はズームアウト(zoom-out)などの様々な形態の動きが存在する。アフィン動き予測(affine motion prediction)は、このような様々な形態の動きを反映する。
【0116】
図6a及び
図6bは、本開示の一実施例に係る、アフィン動き予測を説明するための例示図である。
【0117】
アフィン動き予測のための2つのタイプのモデルが存在する。1つは、
図6aの例示のように、現在符号化しようとする対象ブロックの左上耳(top-left corner)と右上耳(top-right corner)の2個の制御点動きベクトル(Control Point Motion Vectors,CPMVs)、すなわち、4個のパラメータを用いるモデルである。もう1つは、
図6bの例示のように、対象ブロックの左上耳、右上耳、左下耳(bottom-left corner)の3個の制御点動きベクトル、すなわち6個のパラメータを用いるモデルである。
【0118】
4パラメータアフィンモデルは、式1に示すように表現される。対象ブロック内のサンプル位置(x,y)における動きは、式1に示すように演算される。ここで、対象ブロックの左上段サンプルの位置は(0,0)と仮定される。
【0119】
【0120】
また、6パラメータアフィンモデルは、式2に示すように表現される。対象ブロック内のサンプル位置(x,y)における動きは、式2に示すように演算される。
【0121】
【0122】
ここで、(MV0x,MV0y)は左上耳制御点動きベクトルであり、(MV1x,MV1y)は右上耳制御点動きベクトルであり、(mv2x,mv2y)は左下耳制御点動きベクトルである。Wは対象ブロックの横の長さであり、Hは対象ブロックの縦の長さである。
【0123】
アフィン動き予測は、対象ブロック内の各サンプルごとに式1又は式2によって演算された動きベクトルを用いて遂行される。代案的に、演算の複雑度を減らすために、例えば対象ブロックを4×4サイズのサブブロックに分割した後、サブブロック単位で遂行されてもよい。
【0124】
動きベクトル(mvx,mvy)は、1/16サンプル精度(precision)を有するように設定される。この場合、式1又は2によって算出された動きベクトル(mvx,mvy)は、1/16サンプル単位に丸められる。
【0125】
映像符号化装置は、イントラ予測、インター予測(並進動き予測)、アフィン動き予測などを遂行し、RD(rate-distortion)コスト(cost)を演算して最適な予測方法を選択する。アフィン動き予測を遂行するために、映像符号化装置のインター予測部124は、2つのタイプのモデルのうち、どのタイプを使用するかを決定し、決定されたタイプによって2個又は3個の制御点を決定する。インター予測部124は、制御点動きベクトルを用いて対象ブロック内のサブブロックのそれぞれに対する動きベクトル(mvx,mvy)を演算する。そして、各サブブロックの動きベクトル(mvx,mvy)を用いてサブブロック単位で、参照ピクチャ内で動き補償を遂行することで、対象ブロック内の各サブブロックに対する予測ブロックを生成する。
【0126】
映像符号化装置は、対象ブロックにアフィン動き予測が適用されたか否かを示すフラグ、アフィンモデルのタイプを示すタイプ情報、及び各制御点の動きベクトルを示す動き情報等を含むアフィン関連シンタックス要素を符号化して映像復号化装置に伝達する。タイプ情報と制御点の動き情報は、アフィン動き予測が遂行される場合にシグナリングされ、制御点の動きベクトルはタイプ情報によって決定された個数だけシグナリングされる。
【0127】
映像復号化装置は、シグナリングされたシンタックスを用いてアフィンモデルのタイプと制御点動きベクトル(control point motion vectors)を決定し、式1又は式2を用いて対象ブロック内の各4×4サブブロックに対して動きベクトル (mvx,mvy)を演算する。もし、対象ブロックのアフィン動きベクトルに対する動きベクトル解像度情報がシグナリングされた場合、動きベクトル(mvx,mvy)は丸めなどの演算を用いて動きベクトル解像度情報によって識別される精度で修正される。
【0128】
映像復号化装置は、各サブブロックに対する動きベクトル(mvx,mvy)を用いて参照ピクチャ内で動き補償を遂行することで、各サブブロックに対する予測ブロックを生成する。
【0129】
制御点動きベクトルを符号化するために必要とされるビット量を減らすために、前述したところのように一般的なインター予測(並進動き予測)の方式が適用される。
【0130】
一例として、アフィンマージモードの場合、映像符号化装置のインター予測部124は、予め定義された個数(例えば、5個)のアフィンマージ候補リストを構成する。まず、映像符号化装置のインター予測部124は、対象ブロックの周辺ブロックから継承(inherited)アフィンマージ候補を誘導する。例えば、
図4に図示された対象ブロックの周辺サンプルA0、A1、B0、B1、B2から予め定義された個数の継承アフィンマージ候補を誘導することで、マージ候補リストを生成する。候補リストに含まれる継承アフィンマージ候補のそれぞれは、2個又は3個のCPMVsの組合せに対応する。
【0131】
インター予測部124は、対象ブロックの周辺ブロックのうち、アフィンモードで予測された周辺ブロックの制御点動きベクトルから継承アフィンマージ候補を誘導する。一部の実施例で、アフィンモードで予測された周辺ブロックから誘導されるマージ候補の個数は制限される。例えば、インター予測部124は、A0とA1のうちの1つ、そしてB0、B1、及びB2のうちの1つ、合計2個の継承アフィンマージ候補をアフィンモードで予測された周辺ブロックから誘導する。優先順位は、A0、A1の順序、そしてB0、B1、B2の順序である。
【0132】
一方、マージ候補の総個数が3個以上である場合、インター予測部124は、周辺ブロックの並進動きベクトル(translational motion vector)から不足する個数だけの組合せ(constructed)アフィンマージ候補を誘導する。
【0133】
図7は、アフィン動き予測のための組合せアフィンマージ候補を誘導する方法を説明するための例示図である。
【0134】
インター予測部124は、周辺ブロックグループ{B2、B3、A2}、周辺ブロックグループ{B1、B0}、周辺ブロックグループ{A1、A0}からそれぞれ1つずつの制御点動きベクトルCPMV1、CPMV2、CPMV3を誘導する。1つの例示として、各周辺ブロックグループ内での優先順位は、B2、B3、A2の順序、B1、B0の順序、そしてA1、A0の順序である。さらに、参照ピクチャ内の同一位置ブロック(collocated block)Tからもう1つの制御点動きベクトルCPMV4を誘導する。インター予測部124は、4個の制御点動きベクトルのうちから2個又は3個の制御点動きベクトルを組合せて不足する個数だけの組合せアフィンマージ候補を生成する。組合せの優先順位は下の通りである。各グループ内の要素は、左上耳、右上耳、左下耳制御点動きベクトルの順に並べられている。
【0135】
{CPMV1,CPMV2,CPMV3}、{CPMV1,CPMV2,CPMV4}、{CPMV1,CPMV3,CPMV4}、
{CPMV2,CPMV3,CPMV4}、{CPMV1,CPMV2}、{CPMV1,CPMV3}
【0136】
継承アフィンマージ候補及び組合せアフィンマージ候補を用いてマージ候補リストを埋めることができない場合、インター予測部124は、ゼロ動きベクトルを候補として追加する。
【0137】
インター予測部124は、符号化効率最適化の側面からマージ候補リストからマージ候補を選択し、これを指示するマージインデックスを決定する。インター予測部124は、選択されたマージ候補を用いて対象ブロックに対するアフィン動き予測を遂行する。マージ候補が2個の制御点動きベクトルからなる場合、4パラメータモデルを用いてアフィン動き予測を遂行する。一方、マージ候補が3個の制御点動きベクトルで構成された場合、6パラメータモデルを用いてアフィン動き予測を遂行する。映像符号化装置は、マージインデックスを符号化して映像復号化装置にシグナリングする。
【0138】
映像復号化装置はマージインデックスを復号化する。映像復号化装置のインター予測部544は、映像符号化装置と同一の方式でマージ候補リストを構成し、マージインデックスによって指示されるマージ候補に対応する制御点動きベクトルを用いてアフィン動き予測を遂行する。
【0139】
別の例として、アフィンAMVPモードの場合、符号化効率最適化の側面から映像符号化装置のインター予測部124は、対象ブロックに対してアフィンモデルのタイプとそれによる実際の制御点動きベクトルを決定する。映像符号化装置のインター予測部124は、各制御点に対して実際の制御点動きベクトルと各制御点のMVPとの間の差であるMVDを算定した後、各制御点のMVDを符号化する。各制御点のMVPを誘導するために、インター予測部124は、予め定義された個数(例えば、2個)のアフィンAMVP候補リストを構成する。対象ブロックが4パラメータタイプの場合、リストに含まれる候補はそれぞれ2個の制御点動きベクトルのペアからなる。一方、対象ブロックが6パラメータタイプの場合、リストに含まれる候補はそれぞれ3個の制御点動きベクトルのペアからなる。
【0140】
以下、
図8の例示を用い、アフィンAMVPモードで候補リストを構成する方法を説明する。アフィンAMVP候補リストは、前述したアフィンマージ候補リストを構成する方法と同様に誘導される。
【0141】
図8は、本開示の一実施例に係る、アフィンAMVPモードでアフィンAMVP候補を探索する過程を示すフローチャートである。
【0142】
インター予測部124は、継承アフィンAMVP候補の参照ピクチャと現在ブロックの参照ピクチャが同じであるか否かを確認する(S800)。ここで、継承アフィンAMVP候補は、前述したアフィンマージモードでのように、
図4に図示された対象ブロックの周辺ブロックA0、A1、B0、B1、B2のうち、アフィンモードで予測されたブロックである。
【0143】
継承アフィンAMVP候補の参照ピクチャと現在ブロックの参照ピクチャが同じである場合、インター予測部124は、該当される継承アフィンAMVP候補を追加する(S802)。
【0144】
継承アフィンAMVP候補の参照ピクチャと現在ブロックの参照ピクチャが同一でない場合、インター予測部124は、組合せアフィンAMVP候補の全てのCPMVsの参照ピクチャと現在ブロックの参照ピクチャが同一であるか否かを確認する(S804)。ここで、組合せアフィンAMVP候補の全てのCPMVsは、前述したアフィンマージモードでのように、
図7に図示された周辺サンプルの動きベクトルから誘導される。
【0145】
組合せアフィンAMVP候補の全てのCPMVの参照ピクチャと現在ブロックの参照ピクチャが同じである場合、インター予測部124は、該当される組合せアフィンAMVP候補を追加する(S806)。
【0146】
このとき、対象ブロックのアフィンモデルタイプが考慮されなければならない。映像符号化装置は、対象ブロックのアフィンモデルタイプが4パラメータタイプの場合、周辺ブロックのアフィンモデルを用いて2個の制御点動きベクトル(対象ブロックの左上耳及び右上耳制御点動きベクトル)を誘導する。対象ブロックのアフィンモデルタイプが6パラメータタイプの場合、周辺ブロックのアフィンモデルを用いて3個の制御点動きベクトル(対象ブロックの左上耳、右上耳及び左下耳制御点動きベクトル)を誘導する。
【0147】
全てのCPMVsの参照ピクチャと現在ブロックの参照ピクチャが同一でない場合、インター予測部124は、アフィンAMVP候補として並進動きベクトルを追加する(S808)。並進動きベクトルは、MV0、MV1、mv2の順序で現在ブロックのCPMVを予測するために用いられる。
【0148】
上の処理(S800ないしS808)を全て遂行しても候補リストを埋めることができない場合(すなわち、予め設定された個数を充足できない場合)、インター予測部124は、ゼロ動きベクトルをアフィンAMVP候補として追加する(S810)。
【0149】
インター予測部124は、アフィンAMVPリストから1つの候補を選択し、選択された候補を指示する候補インデックスを決定する。このとき、選択された候補の各制御点動きベクトルが各制御点のMVPに該当する。符号化効率インター予測部124は、対象ブロックの各制御点に対して実際の制御点動きベクトルを決定した後、実際の制御点動きベクトルと制御点のMVPとの間のMVDを算定する。映像符号化装置は、対象ブロックのアフィンモデルタイプ、候補インデックス、及び各制御点のMVDを符号化して映像復号化装置にシグナリングする。
【0150】
映像復号化装置は、アフィンモデルタイプ、候補インデックス及び各制御点のMVDを復号化する。映像復号化装置のインター予測部544は、映像符号化装置と同じ方式でアフィンAMVPリストを生成し、アフィンAMVPリスト内で候補インデックスによって指示される候補を選択する。映像復号化装置のインター予測部544は、選択された候補の各制御点のMVPに対応するMVDを加算して各制御点の動きベクトルを復元する。インター予測部544は、復元された制御点動きベクトルを用いてアフィン動き予測を遂行する。
【0151】
II-3. 幾何学的分割モード(Geometric Partitioning Mode, GPM)
図9は、本開示の一実施例に係る、幾何学的分割モードでサポートされる三角分割類型を示す例示図である。
【0152】
GPMで、インター予測部124は、現在ブロックが分割された三角ブロックに基づいてインター予測を遂行する。GPMは、
図9の例示のように、2つの三角分割類型をサポートする。各三角分割類型で2個の三角領域に対し、インター予測部124は、異なる動き情報(すなわち、動きベクトル)を用いてインター予測を遂行する。
【0153】
インター予測部124は、分割領域間の境界における不連続性を最小化するために、各領域の予測信号を加重合して最終予測信号を生成する。最終予測信号の生成に用いられる加重値は、
図10のように例示される。
図10の例示で、P
1は右上段三角ブロックの動き情報に基づく現在ブロックの予測子であり、P
2は左下段三角ブロックの動き情報に基づく現在ブロックの予測子を表す。
【0154】
図11は、本開示の一実施例に係る、GPM候補リストを示す例示図である。
【0155】
GPM候補リストを構成する際の各分割領域の動き情報は、
図11に例示されたように、一般マージ候補リストから誘導される。マージ候補リストのうち、インデックスが偶数の場合、L0(1番目の参照リスト)に存在する動き情報が選択され、奇数の場合にはL1(2番目の参照リスト)に存在する動き情報が選択される。
【0156】
II-4. テンプレートマッチング
図12は、本開示の一実施例に係る、イントラ予測におけるテンプレートマッチングを示す例示図である。
【0157】
テンプレートマッチング(Template Matching,TM)モードで、映像符号化装置内イントラ予測部122は、
図12の例示のように、現在フレームの復元された領域でテンプレートを用いて最適な参照ブロックを探索し、最適な参照ブロックを予測ブロックとして適用する。L字型テンプレートが現在テンプレートとどの程度一致するかを計算して現在テンプレートと最も類似した類似テンプレートを検索し、類似テンプレートに対応するブロックを予測ブロックとして使用する。テンプレートの検索範囲は事前に設定され、予め設定された検索範囲に基づいて現在ブロックの予測が遂行される。
【0158】
一方、テンプレートマッチング基盤マージ候補の並べ替え(adaptive reordering of merge candidates with template matching,ARMC)技法は、前述したテンプレートマッチングに基づいてインター予測のマージ候補を適応的に並べ替える。マージ候補の並べ替え方式は、一般マージモード、テンプレートマッチングマージモード、又はアフィンマージモード(SbTMVP候補を除く)に適用される。
【0159】
例えば、テンプレートマッチングマージモードの場合、映像符号化装置内インター予測部124は、マージ候補リストを構成してマージ候補をサイズが5の下位グループに分割した後、各下位グループに対してマージ候補をテンプレートマッチング費用(以下、TM費用)に応じて昇順に(すなわち、費用が増加する順に)並べ替える。TM費用は、現在ブロックのテンプレートサンプルと対応する参照サンプルとの間の絶対差分値の和(sum of absolute differences,SAD)、又は差分値の二乗和(Sum of Squared Error,SSE)として定義される。
【0160】
一方、マージ候補が双方向予測を使用する場合、インター予測部124は、
図13に図示されたように、マージ候補テンプレートの参照サンプルを双方向予測によって誘導する。
【0161】
II-5. DMVR及び多重パスデコーダ側の動きベクトルの改善
デコーダ側動きベクトル改善(Decoder-side Motion Vector Refinement,DMVR)は、双方向マッチング(Bilateral Matching,BM)技術を用いて双方向予測の動きベクトル(MV0及びMV1)を微細に調節することで、デコーダ側で動きベクトルを改善する方法である。以下、双方向予測の動きベクトルは動きベクトルペア(pair)と互換的に用いられる。
【0162】
画像符号化装置は、双方向予測において、参照リストL0及びL1の参照ピクチャから生成した初期動きベクトルの周囲で精製された(refined)動きベクトルを検索する。ここで、初期動きベクトルは、双方向予測の2個の動きベクトルMV0及びMV1を意味する。BM技術では、L0及びL1の参照ピクチャ内の2個の候補ブロック間の歪曲であるBM費用が算定される。このとき、BM費用として2個の候補ブロック間のSAD、又はSSEが算定される。映像符号化装置は、式3に示すように、最小BM費用を有する動きベクトル候補を精製された動きベクトルとして生成する。
【0163】
【0164】
ここで、MV_offsetは、動きベクトル精製の進行に伴う初期動きベクトルに適用されるオフセット(offset)であり、候補動きベクトルと初期動きベクトルとの差である。そのようなオフセットは、整数サンプル単位の整数オフセット(integer offset)、及び副画素(sub-pixel又はsub-pel)サンプル単位の副画素オフセットの和で形成される。式3に示すように、2つの動きベクトルの候補のオフセットに対してミラーリング規則((mirroring rule)に従う。
【0165】
一方、多重パスデコーダ側の動きベクトル改善(Multi-pass decoder-side motion vector refinement)は、BM技術を用いてデコーダ側から多重パスに動きベクトルを改善する方法である。以下、BM技術を用いる多重パスデコーダ側動きベクトルの改善を多重パス双方向マッチング(Multi-pass Bilateral Matching,MBM)と称する。
【0166】
映像符号化装置は、MBMの多重パスのうち、1番目のパスで、CU単位で動きベクトルを探索し、2番目のパスでCU内の各16×16サブブロックに対して動きベクトルを探索する。映像符号化装置は、3番目のパスでBDOF(Bi-directional Optical Flow)を適用して各8×8の下位ブロックに対して動きベクトルを探索する。そのような探索によって改善された動きベクトルは空間及び時間動きベクトルの予測のために保存される。ここで、BDOFは、映像を構成するサンプル又は客体が一定の速度で移動してサンプル値の変化がほとんどないという仮定を基盤に、双方向動き予測を用いて予測されたサンプルの動きを追加で補償する技術である。
【0167】
多重パスデコーダ側の動きベクトル改善は、具体的には次のような過程を遂行する。
【0168】
1番目のパスで、映像符号化装置は、参照リストL0及びL1の参照ピクチャから生成した双方向予測の動きベクトル(MV0及びMV1)を初期値として用い、その周囲で改善された動きベクトル(MV0_pass1及び MV1_pass1)を生成する。このとき、改善された動きベクトルは、L0及びL1の2つの参照ブロックに対して最小BM費用に基づき、式4のように生成される。
【0169】
【0170】
ここで、deltaMVは初期値の周囲で整数サンプルの精度を有し、初期MVの周囲で3×3の正方形検索パターンによって探索される。
【0171】
2番目のパスで、映像符号化装置は16×16サブブロックに対してBMを適用する。映像符号化装置は、各サブブロックに対し、1番目のパスで参照リストL0とL1から獲得したMV0_pass1とMV1_pass1の周囲で動きベクトルを改善してMV0_pass2及びMV1_pass2を生成する。このとき、整数サンプル精度で動きベクトルが探索される。その後、映像符号化装置は、DMVR技術によるサブサンプル単位改善過程を用い、式5のようにdeltaMV(sbIdx2)を生成する。
【0172】
【0173】
ここで、sbIdx2は16×16サブブロックのインデックスを表す。
【0174】
3番目のパスで、映像符号化装置は8×8サブブロックにBDOFを適用して最終動きベクトルを導出する。映像符号化装置は、各8×8サブブロックに対し、2番目のパスで獲得した動きベクトルにBDOFを適用する。3番目のパスで生成された最終動きベクトルであるMV0_pass3及びMV1_pass3は、式6のように表現される。
【0175】
【0176】
ここで、sbIdx3は8×8サブブロックのインデックスを表し、bioMVはBDOF適用による補正値を表す。
【0177】
以下、各パスに対し、MBM費用は、探索された動きベクトルが指示する2つのブロック間のブロックマッチング費用を表す。また、deltaMV、deltaMV(sbIdx2)及びbioMVを通称して改善動きベクトルの改善値、又は「改善値」として表す。さらに、1番目のパスの初期動きベクトルに対し、改善値は、deltaMV、deltaMV(sbIdx2)、及びbioMVの全体又は一部の和を表す。
【0178】
II-6. 双方向マッチングAMVP-MERGEモード
図14は、本開示の一実施例に係る、双方向マッチングAMVP-MERGEモードを示す例示図である。
【0179】
双方向マッチングAMVP-MERGEモード(BM AMVP-MERGEモード)で、映像符号化装置は、LX(X=0 or 1)方向の参照ピクチャに対して一方向のAMVPモードが選択された場合、時間上で等距離に位置する反対方向の参照ピクチャに対してマージ候補の動きベクトルを改善する。改善時に、双方向マッチング技術が用いられる。
【0180】
映像符号化装置は、双方向マッチング基盤動きベクトルの改善のために、LX方向のAMVPベクトルとL1-X方向のマージ候補動きベクトルを初期値として多重パスデコーダ側動きベクトルの改善を適用して改善された動きベクトルを生成する。このとき、AMVP動きベクトルは、マージ候補動きベクトルが改善されるだけ変更される。例えば、AMVP動きベクトル改善値がMVD0である場合、マージ候補動きベクトルの改善値MVD1は-MVD0になる。
【0181】
III. 動きベクトルリスト内候補の追加、プルーニング、及び並べ替え
以下、本開示に係る実現例は、映像符号化装置を中心に記述されるが、映像復号化装置にも適用される。
【0182】
以下、動きベクトルリストは候補を含む。実現例1及び実現例3で、各候補は双方向予測の動きベクトル(MV0及びMV1)、すなわち動きベクトルペアである。実現例2で、各候補は、動き情報として動きベクトルペア又は一方向予測の動きベクトルを含む。
【0183】
<実現例1>MBMを用いるマージ及びAMVP候補リストの修正方法
映像符号化装置は、MBMを用いて次のようにマージ候補リスト及びAMVP候補リストを修正(modify)する。
【0184】
まず、映像符号化装置は、MBMの3段階多重パスを用いて各候補動きベクトルペアを改善する。このとき、映像符号化装置は、3番目のパスで生成された最終動きベクトルを用いることができるが、各段階別動きベクトルを選択的にAMVP候補リスト又はマージ候補リストに追加することができる。例えば、一般マージモードの場合、CU単位で生成された1番目のパスの改善動きベクトル又は16×16単位のサブブロックで生成された2番目のパスの改善された動きベクトルが候補リストに追加される。
【0185】
DMVRモードが適用される場合、1番目のパスの改善動きベクトルが用いられる。
【0186】
さらに、DMVRモード及びアフィンマージモードが適用される場合、1番目のパスで生成された改善動きベクトルの改善値(deltaMV)がアフィンマージ候補リスト内の各組合せアフィン候補のすべてのCPMVsに加算される。
【0187】
さらに、サブブロック基盤マージモードやアフィン基盤の動きベクトル候補のようにサブブロック単位で候補を決定する場合、1番目のパス及び2番目のパス以外にも、3番目のパスの改善された動きベクトルが候補リストに追加される。
【0188】
一方、AMVRが適用される場合、映像符号化装置は、amvr_precision_idxによる最小ルマサンプル単位より大きい、又は同じ動きベクトルのみを追加する。このために、該当CUに対してMBMの多重パスが適応的に選択される。
【0189】
一例として、映像符号化装置は、MBMを用いてAMVP候補リストに対して次のように候補追加、リスト並べ替え、リストプルーニング(pruning)などを遂行する。
【0190】
前述したように、映像符号化装置は、MBMの3段階多重パスを用いて既存の動きベクトルペアMV0、MV1を改善することで、改善された動きベクトルMV0_passN、MV1_passNを生成する。ここで、既存の動きベクトルペアは、AMVP候補リストに含まれる候補として双方向予測の動きベクトルを表す。既存の動きベクトルペアMV0、MV1に対し、映像符号化装置は、1つの改善された動きベクトルペアMV0_passN、MV1_passNを生成するが、必ずしもこれに限定されない。すなわち、多重パスの適用によって既存の動きベクトルペアに対し、1つ以上の改善された動きベクトルペアが生成される。
【0191】
候補追加のために、映像符号化装置は、改善された動きベクトルMV0_passN、MV1_passNを既存のAMVP候補リストに追加する。リストに追加するとき、改善された動きベクトルは固定された位置に追加される。例えば、改善された動きベクトルはリストの最後に位置する。あるいは、改善された動きベクトルはリストの最優先順位に位置する。
【0192】
さらに、AMVP候補リストのプルーニングのために、映像符号化装置は、リストで既存の動きベクトルを改善された動きベクトルに代替又は削除する。このとき、改善された動きベクトルと既存の動きベクトルとの間の費用の差を計算して代替又は削除の如何が選択される。ここで、費用はMBM費用を表す。
【0193】
代替は、改善された動きベクトルが既存の動きベクトルよりも費用の側面でよい場合、リストで既存の動きベクトルを改善された動きベクトルに交替することである。削除は、改善された動きベクトルが既存の動きベクトルよりも費用の側面で良くない場合、改善された動きベクトルをリストに追加しないことである。あるいは、削除は、候補の改善された動きベクトルペアが追加された候補リストに対し、MBM費用の側面から最良の候補をリストのサイズだけ残し、残りの候補を除去することを意味する。このとき、既存の動きベクトルペアに対してdeltaMVを0と仮定した後、MBM費用が算定される。
【0194】
さらに、リストの並べ替えのために、映像符号化装置は、MBM費用に基づいてAMVP候補リストの動きベクトル候補を並べ替える。例えば、MBM費用に基づいて候補が昇順に整列されることで、候補の優先順位が決定される。さらに、映像符号化装置は、候補が追加又はプルーニングされたAMVP候補リストに対し、MBM費用に基づいて候補を並べ替える。
【0195】
別の例として、映像符号化装置は、MBMを用いて一般マージ候補リストに対して次のように候補追加、リスト並べ替え、リストプルーニングなどを遂行する。
【0196】
前述したように、映像符号化装置は、MBMの3段階多重パスを用いて既存の動きベクトルペアMV0、MV1を改善することで改善された動きベクトルMV0_passN、MV1_passNを生成する。ここで、既存の動きベクトルペアは、マージ候補リストに含まれる候補として双方向予測の動きベクトルを表す。
【0197】
候補追加のために、映像符号化装置は、改善された動きベクトルMV0_passN、MV1_passNを既存のマージ候補リストに追加する。リストに追加するとき、改善された動きベクトルは固定された位置に追加される。例えば、改善された動きベクトルはリストの最後に位置してもよく、最優先順位に位置してもよい。
【0198】
あるいは、映像符号化装置は、予め設定された条件を考慮し、改善された動きベクトルをマージ候補リストの特定の順位に追加する。映像符号化装置は、リスト内候補に対してMBM費用を計算してその多様性(diversity)を考慮する。例えば、映像符号化装置は、特定順位の以前候補と改善された動きベクトルとの間の費用差を計算した後、それを予め設定された閾値と比較する。特定の順位が最優先順位である場合、最優先順位の候補と改善された動きベクトルとの間の費用差が計算される。映像符号化装置は、計算された費用差が閾値以上である場合、改善された動きベクトルを特定の順位に位置させる。一方、計算された費用差が閾値よりも小さい場合、映像符号化装置は、改善された動きベクトルが以前の候補と重複性があると判断し、特定の順位の次の順位に対して前述した過程を繰り返す。
【0199】
ここで、閾値は量子化パラメータに基づいて設定される。例えば、閾値は、ビットレート-歪曲最適化に使用するラグランジュパラメータ(Lagrangian parameter)に設定される。
【0200】
さらに、マージ候補リストのプルーニングのために、映像符号化装置は、リストで既存の動きベクトルを改善された動きベクトルに代替又は削除する。このとき、改善された動きベクトルと既存の動きベクトルとの間の費用差を計算して代替又は削除の如何が選択される。ここで、費用はMBM費用を表す。
【0201】
代替は、改善された動きベクトルが既存の動きベクトルよりも費用の側面でよい場合、リストで既存の動きベクトルを改善された動きベクトルに交替することである。削除は、改善された動きベクトルが既存の動きベクトルよりも費用の側面で良くない場合、改善された動きベクトルをリストに追加しないことである。あるいは、削除は、候補の改善された動きベクトルペアが追加された候補リストに対し、MBM費用の側面から最良の候補をリストのサイズだけ残し、残りの候補を除去することを意味する。このとき、既存の動きベクトルに対してdeltaMVを0と仮定した後、MBM費用が算定される。
【0202】
あるいは、リストの並べ替えのために、映像符号化装置は、MBM費用に基づいてマージ候補リストの動きベクトル候補を並べ替える。例えば、MBM費用に基づいて候補が昇順に整列されることによって候補の優先順位が決定される。さらに、映像符号化装置は、候補が追加又はプルーニングされたマージ候補リストに対し、MBM費用に基づいて候補を並べ替える。
【0203】
一方、映像符号化装置は、符号化された動きベクトルをHMVPテーブルに保存するとき、TM、BM、又はMBMによって改善された動きベクトルを追加する。また、既存のHMVPテーブルはFIFO形式にアップデートされるが、本実現例ではTM費用又はMBM費用に基づいてHMVPテーブル内の動きベクトルが並べ替えられる。
【0204】
また、映像符号化装置は、次のようにGPM候補リストを並べ替える。
【0205】
既存の方法では、GPM候補リストを構成するとき、現在ブロックが斜線に分割された2つの領域に対して各領域の動き情報は一般マージモード候補リストから誘導される。すなわち、インデックスが偶数/奇数であるかによってL0/L1にある動き情報を用いて候補リストが構成される。本実施例で、映像符号化装置は、このような構成方法の代わりに、マージモード候補リスト内の動き情報に対してMBM費用に基づいて優先順位を付与することで候補リストを構成することができる。この場合、MBM費用は、2つの領域の動き情報(すなわち、動きベクトル)に基づいて算定される。
【0206】
あるいは、2つの領域に対してそれぞれ動き情報を選択するために、映像符号化装置は、TM費用が最も小さい参照ブロックを選択する。各参照ブロックの一方向の動き情報は、
図15の例示のように、現在ブロックの周辺ブロックから誘導された動き情報候補リストから選択される。符号化効率を向上させるために、映像符号化装置は、TM費用を基盤にして動き情報に優先順位を付与することで候補リストを構成することができる。
【0207】
既存のGPMでは、
図9の例示のように左上側から右下側の斜線又は右上側から左下側の斜線を用いる2つの分割方法によってブロックが分割される。本実施例に係るテンプレートマッチングでは、現在ブロックに隣接するピクセルが存在する左上側から右下側の斜線を用いる分割方法のみが考慮される。
【0208】
映像符号化装置は、GPMに対し、並べ替え方法の使用如何を指示するフラグをシグナリングする。
【0209】
あるいは、映像符号化装置は、GPMの動き情報候補リストを構成する際にTM/BM基盤方法を用いる。このとき、現在ブロックのテンプレートは、一般的なTM/BM方法によって上段と左側参照サンプルを用いるが、参照ブロックのテンプレートは、現在ブロックの境界に隣接するサブブロックから派生された動きベクトルのそれぞれが指示する位置のサンプルを用いる。GPMのテンプレートマッチング探索過程で、映像符号化装置は、2個の三角分割領域のうちの1つの三角分割領域の動き情報を維持したまま他の三角分割領域に対してマッチング検索を遂行する。映像符号化装置は、すべての一般マージモード候補に対して前述したテンプレートマッチング探索過程を繰り返す。
【0210】
また別の例として、映像符号化装置はMBMを用いてアフィンマージ/AMVP候補リストを並べ替える。
【0211】
アフィンモード過程で、映像符号化装置は、継承アフィン候補と組合せアフィン候補等で候補リストを構成する。このとき、MBM方法に基づいてリスト内の候補間の優先順位が決定される。
【0212】
映像符号化装置は、組合せアフィン候補決定時に、
図7の例示のように周辺ブロックB2→B3→A2順に動きベクトルの存在如何を確認して1番目の可用動きベクトルをCPMV1に設定する。このとき、映像符号化装置は、MBM費用に基づいて可用の動きベクトルを並べ替えた後、優先順位によってCPMV1を決定する。同様に、映像符号化装置は、B1→B0順に動きベクトルを確認してCPMV2を設定し、A1→A0順に動きベクトルを確認してCPMV3に設定し、MBM費用に基づいてCPMVs(CPMV2及びCPMV3)を決定する。できる。
【0213】
アフィンマージモードの場合、映像符号化装置は、現在ブロックに対してMBMの1番目のパスを用いて改善動きベクトルを生成した後、リスト内の各組合せアフィン候補の全てのCPMVsに改善動きベクトルの改善値deltaMVを加算する。このとき、1番目のパスを適用するための初期値としては、現在ブロックの動きベクトルペアが用いられる。
【0214】
あるいは、アフィンマージモードの場合、映像符号化装置は、現在ブロックに対してMBMの1番目のパスを用いて改善動きベクトルを生成した後、周辺ブロックから選択されたCPMVsに改善動きベクトルの改善値deltaMVを加算する。
【0215】
映像符号化装置は、組合せアフィン候補決定時に、
図7の例示のように候補ブロックB2→B3→A2順に動きベクトルの存在如何を確認して1番目の可用動きベクトルをCPMV1に設定する。同様に、映像符号化装置は、B1→B0順に動きベクトルを確認してCPMV2を設定し、A1→A0順に動きベクトルを確認してCPMV3に設定する。このとき、映像符号化装置は固定されたCPMVsを使用するのではなく、現在ブロックの周辺ブロックの動きベクトルを用いてアフィンパラメータを推定する回帰モデルを計算し、該当モデルから現在ブロックの修正されたCPMVsを再び計算する。映像符号化装置は、現在ブロックに対してMBMの1番目のパスを用いて改善動きベクトルを生成した後、修正されたCPMVsに改善動きベクトルの改善値deltaMVを加算する。
【0216】
<実現例2> TMを用いたマージ及びAMVP候補リストの修正方法
映像符号化装置は、AMVP/マージリスト内の各候補に対してテンプレートマッチングを遂行してテンプレート費用を計算する。その後、映像符号化装置は、TM費用が小さい順でリストを並べ替える。
【0217】
一例として、映像符号化装置は、テンプレートマッチングを基盤にして一般AMVP候補リスト内の候補を並べ替える。
【0218】
映像符号化装置は、空間的候補と時間的候補にHMVP候補を追加して最大2個の予測候補を含むようにAMVP候補リストを構成する。その後、映像符号化装置は、TM費用を用いて候補の順序を並べ替える。あるいは、映像符号化装置は、リスト内候補選択時にTM費用を基準に候補を選択する。
【0219】
映像符号化装置は、左側と上段ブロックを参照してそれぞれ1つずつ最大2個の候補を空間的候補として用いる。映像符号化装置は、
図16の例示のように左側に位置するA
m及びA
m+1のうちの1つを候補として選択し、上段に位置するB
-1、B
n及びB
n+1のうちの1つを候補として選択する。以降、映像符号化装置は、ビットレート歪曲最適化に通じて符号化を進行する。本実現例で、映像符号化装置は、左側及び上段で候補を決定する際に、TM費用に基づいて候補を決定する。
【0220】
別の例として、映像符号化装置は、テンプレートマッチングを基盤にしてアフィンAMVP/マージ候補を並べ替える。
【0221】
アフィンモード過程で、映像符号化装置は、継承アフィン候補、組合せアフィン候補などを含むようにアフィンAMVP候補リストを構成する。このとき、映像符号化装置は、TMを用いて候補間の優先順位を決定する。
【0222】
映像符号化装置は、組合せアフィン候補決定時に、
図7の例示のように候補ブロックB2→B3→A2順に動きベクトルの存在如何を確認して1番目の可用動きベクトルをCPMV1に設定する。このとき、映像符号化装置は、TM費用に基づいて動きベクトルを並べ替えた後、優先順位によってCPMV1を決定する。同様に、映像符号化装置は、B1→B0順に動きベクトルを確認してCPMV2を設定し、A1→A0順に動きベクトルを確認してCPMV3に設定し、TM費用に基づいてCPMVsを決定する。
【0223】
継承アフィン候補や組合せアフィン候補が1つ以上であれば、それぞれはサブグループに分割される。以降、映像符号化装置は、サブグループ内で、テンプレートマッチング基盤で優先順位を決定することで、リストを並べ替える。
【0224】
図17は、本開示の一実施例に係る、継承アフィンAMVP候補の並べ替えを含む、アフィンAMVP候補を探索する過程を示すフローチャートである。
【0225】
図17の例示で、映像符号化装置は、継承アフィンAMVP候補を含むサブグループに対してテンプレートマッチング基盤で優先順位を決定することで、サブグループ内の継承アフィンAMVP候補を並べ替える(S1703)。
図17の例示で残りのステップは
図8の例示と同じであるので、詳しい技術を省略する。
【0226】
また別の例として、映像符号化装置は、TM AMVP/TMマージ候補リスト内の候補を並べ替える。
【0227】
映像符号化装置は、TM AMVP/TMマージリスト内の各候補に対してテンプレートマッチングを遂行し、TM費用を計算する。その後、映像符号化装置は、TM費用が小さい順でリスト内の候補を並べ替える。
【0228】
映像符号化装置は、TMを用いて既存の動き情報を改善することで改善動き情報を生成する。ここで、既存の動き情報は、候補リストに含まれる一方向予測の動きベクトル又は双方向予測の動きベクトルペアMV0、MV1を示す。
【0229】
TMを用いて候補動き情報を改善する場合、映像符号化装置は現在ブロックの形状を反映してTM費用を計算する。例えば、ブロックが横方向に長い場合はテンプレートの上段サンプルが用いられ、縦方向に長い場合は左側サンプルが用いられる。
【0230】
TMを用いて改善動き情報を生成するとき、映像符号化装置は、TM費用が予め設定された閾値より大きい場合、改善動き情報をリストに追加しない。このとき、閾値は、1番目の候補のTM費用を考慮して算定する。例えば、1番目の候補のTM費用にN(例えば、N=5)を乗算して閾値が設定される。
【0231】
また別の例として、映像符号化装置は、TMを基盤にして一般マージ候補リストに対して次のように候補追加、リスト並べ替え、リストプルーニングなどを遂行する。以下、動き情報は、一方向予測の動きベクトル又は双方向予測の動きベクトルペアMV0、MV1を示す。
【0232】
まず、映像符号化装置は、TMを用いて既存の動き情報を改善することで、改善された動き情報を生成する。
【0233】
候補追加のために、映像符号化装置は、改善された動き情報を既存のマージ候補リストに追加する。リストに追加するとき、改善された動き情報は固定された位置に追加される。例えば、改善された動き情報はリストの最後に位置したり、リストの最優先順位に位置したりする。
【0234】
あるいは、映像符号化装置は、予め設定された条件を考慮し、改善された動き情報をマージ候補リストの特定の順位に追加する。映像符号化装置は、リスト内の候補に対してTM費用を計算し、その多様性を考慮する。例えば、映像符号化装置は、特定の順位の以前候補と改善された動き情報との間の費用差を計算した後、それを予め設定された閾値と比較する。特定の順位が最優先順位である場合、最優先順位の候補と改善された動き情報との間の費用差が計算される。映像符号化装置は、計算された費用差が閾値以上である場合、改善された動き情報を特定の順位に位置させる。一方、計算された費用差が閾値より小さい場合、映像符号化装置は、改善された動き情報が先行する候補と重複性があると判断し、特定順位の次の順位に対して前述した過程を繰り返す。
【0235】
ここで、閾値は量子化パラメータに基づいて設定される。例えば、閾値は、ビットレート-歪曲最適化に使用するラグランジュパラメータに設定される。
【0236】
さらに、マージ候補リストのプルーニングのために、映像符号化装置は、リストで既存の動き情報を改善された動き情報に代替又は削除する。このとき、改善された動き情報と既存の動き情報との間の費用差を計算して代替又は削除の如何が選択される。ここで、費用はTM費用を表す。
【0237】
代替は、改善された動き情報が既存の動き情報よりも費用の側面で良い場合、リストで既存の動き情報を改善された動き情報に交替することである。削除は、改善された動き情報が既存の動き情報よりも費用の側面で良くない場合、改善された動き情報をリストに追加しないことである。あるいは、削除は、改善された動き情報までを含むリスト候補に対し、TM費用の側面から最良の候補をリストのサイズだけ残し、残りの候補を除去することを意味する。このとき、既存の動き情報に対してdeltaMVを0と仮定した後、TM費用が算定される。
【0238】
あるいは、リストの並べ替えのために、映像符号化装置は、TM費用に基づいてマージ候補リストの動きベクトル候補を並べ替える。例えば、TM費用に基づいて候補が昇順に整列されることで、候補の優先順位が決定される。
【0239】
<実現例3> BM AMVP-MERGEモードで候補リストを修正する方法
以下、BM AMVP-MERGEモードで動きベクトル候補を追加し、候補リストを並べ替える方法を記述する。
【0240】
BM AMVP-MERGEモードによるL0方向とL1方向の動きベクトルをそれぞれMV0_passNとMV1_passNと称する。MV0_passNとMV1_passNは、MBMの多重パスのうちのいずれか1つの過程によって生成された改善された動きベクトルである。
【0241】
映像符号化装置は、既存のAMVP/マージ候補のうち、MV0とMV1を代替してMV0_passNとMV1_passNを用いる。例えば、HMVP候補の場合、代替された動きベクトルは、現在ブロック以外にも、以降ブロックの動きベクトルの予測のために使用される。
【0242】
映像符号化装置は、既存のAMVP/マージ候補のうち、MV0とMV1にMV0_passNとMV1_passNを追加して使用する。例えば、HMVP候補の場合、追加された動きベクトルは、現在ブロック以外にも以降ブロックの動きベクトルの予測のために使用される。
【0243】
代替又は追加の後、映像符号化装置はリスト内の候補の順位を並べ替える。例えば、映像符号化装置は、MV0_passNとMV1_passNを最も高い順位に置く。あるいは、BM、MBM、又はTMに基づいて候補の順位が適応的に配置される。
【0244】
映像符号化装置は、MV0_passNとMV1_passNをHMVPに保存して使用する。映像符号化装置は、MV0_passNとMV1_passNを既存のHMVPに保存する方式以外に別途保存し、次のブロックの動きベクトル予測に用いる。
【0245】
映像符号化装置は、MV0_passNとMV1_passNをそれぞれL0とL1方向の予測に候補動きベクトルとして用いるが、逆にL1とL0方向の予測に候補動きベクトルとして用いる。このとき、候補動きベクトルの符号が反対に変更される。例えば、L1方向には-MV0_passNを使用し、L0方向には-MV1_passNが使用される。このような方式は、前述したすべての場合に対応して適用される。
【0246】
MV0_passNとMV1_passNは、元のL0とL1方向の候補動きベクトルであるMV0とMV1で改善された動きベクトルであるが、MV0_passNはMV0と同じ値であるか、又はMV1_passNはMV1と同じ値である。このような値は、前述したすべての場合に対応して適用される。
【0247】
映像符号化装置は、予測ユニット(Prediction Unit、PU)単位の追加フラグを用いて前述した実施例の使用可否を決定する。
【0248】
以下、
図18及び
図19に図示により、MBMの多重パス及びMBM費用に基づいて映像符号化装置又は映像復号化装置が現在ブロックをインター予測する方法を記述する。
【0249】
図18は、本開示の一実施例に係る、映像符号化装置が現在ブロックをインター予測する方法を示すフローチャートである。
【0250】
映像符号化装置は候補インデックスを決定する(S1800)。ここで、候補インデックスは候補リスト内の複数の候補のうちの1つを指示し、各候補は双方向予測の動きベクトルペアを表す。
【0251】
マージモードの場合、候補リストは、一般マージ候補リスト、GPM候補リスト、又はアフィンマージ候補リストである。AMVPモードの場合、候補リストは一般AMVP候補リスト又はアフィンAMVP候補リストである。
【0252】
映像符号化装置は、現在ブロックの周辺情報を用いて候補リストを生成する(S1802)。
【0253】
映像符号化装置は、MBMの多重パス及びMBM費用に基づいて候補リストを修正する(S1804)。ここで、多重パスのうちの1番目のパスは現在ブロック、2番目のパスは現在ブロック内のサブブロック、及び3番目のパスはサブブロックより小さいサイズの下位ブロックに対し、MBM費用に基づいて動きベクトルペアを探索する。MBM費用は、各パスに対して探索された動きベクトルペアが指示する2つのブロック間の差に依存する。
【0254】
映像符号化装置は、多重パスを用い、各候補に対してMBM費用を最小にする改善された動きベクトルペアを生成する。映像符号化装置は、生成された改善動きベクトルペアを候補リストに追加する。映像符号化装置は、改善動きベクトルペアと対応候補との間のMBM費用差を計算し、前述したように代替又は削除を遂行する。あるいは、映像符号化装置は、MBM費用に基づいて候補リスト内の候補を昇順に並べ替える。
【0255】
映像符号化装置は、候補インデックスを用いて修正された候補リストから現在ブロックの動きベクトルペアを抽出する(S1806)。
【0256】
映像符号化装置は、抽出された動きベクトルペアを用いて現在ブロックの予測ブロックを生成する(S1808)。
【0257】
映像符号化装置は候補インデックスを符号化する(S1810)。
【0258】
図19は、本開示の一実施例に係る、映像復号化装置が現在ブロックをインター予測する方法を示すフローチャートである。
【0259】
映像復号化装置は、ビットストリームから候補インデックスを復号化する(S1900)。ここで、候補インデックスは候補リスト内の複数の候補のうちの1つを指示し、各候補は双方向予測の動きベクトルペアを表す。
【0260】
マージモードの場合、候補リストは、一般マージ候補リスト、GPM候補リスト、又はアフィンマージ候補リストである。AMVPモードの場合、候補リストは一般AMVP候補リスト又はアフィンAMVP候補リストである。
【0261】
映像復号化装置は、現在ブロックの周辺情報を用いて候補リストを生成する(S1902)。
【0262】
映像復号化装置は、MBMの多重パス及びMBM費用に基づいて候補リストを修正する(S1904)。ここで、多重パスのうちの1番目のパスは現在ブロック、2番目のパスは現在ブロック内のサブブロック、及び3番目のパスはサブブロックより小さいサイズの下位ブロックに対し、MBM費用に基づいて動きベクトルペアを探索する。MBM費用は、各パスに対して探索された動きベクトルペアが指示する2つのブロック間の差に依存する。
【0263】
映像復号化装置は、多重パスを用い、各候補に対してMBM費用を最小にする改善動きベクトルペアを生成する。映像復号化装置は、生成された改善動きベクトルペアを候補リストに追加する。映像復号化装置は、改善動きベクトルペアと対応候補との間のMBM費用差を計算し、前述したように代替又は削除を遂行する。あるいは、映像復号化装置は、MBM費用に基づいて候補リスト内の候補を昇順に並べ替える。
【0264】
映像復号化装置は、候補インデックスを用いて修正された候補リストから現在ブロックの動きベクトルペアを抽出する(S1906)。
【0265】
映像復号化装置は、抽出された動きベクトルペアを用いて現在ブロックの予測ブロックを生成する(S1908)。
【0266】
以下、
図20及び
図21に図示により、TM及びTM費用に基づいて映像符号化装置と映像復号化装置が現在ブロックをインター予測する方法を記述する。
【0267】
図20は、本開示の他の実施例に係る、映像符号化装置が現在ブロックをインター予測する方法を示すフローチャートである。
【0268】
映像符号化装置は候補インデックスを決定する(S2000)。ここで、候補インデックスは候補リスト内の複数の候補のうちの1つを指示し、各候補は、動き情報として双方向予測の動きベクトルペア又は一方向予測の動きベクトルを含む。
【0269】
マージモードの場合、候補リストは、一般マージ候補リスト、GPM候補リスト、TMマージ候補リスト、又はアフィンマージ候補リストである。AMVPモードの場合、候補リストは、一般AMVP候補リスト、TM AMVP候補リスト、又はアフィンAMVP候補リストである。
【0270】
映像符号化装置は、現在ブロックの周辺情報を用いて候補リストを生成する(S2002)。
【0271】
映像符号化装置は、TM及びTM費用に基づいて候補リストを修正する(S2004)。ここで、TMは、既復元領域で現在ブロックのテンプレートに対応する類似テンプレートを探索する。TM費用は、現在ブロックのテンプレート内サンプルと類似テンプレート内サンプルとの間の差に依存する。
【0272】
映像符号化装置は、TM費用に基づいて候補リスト内の候補を昇順に並べ替える。
【0273】
一般マージ候補リストの場合、映像符号化装置は、TMを用い、各候補に対してTM費用を最小にする改善動き情報を生成する。映像符号化装置は、生成された改善動き情報を候補リストに追加する。映像符号化装置は、改善動き情報と対応候補との間のTM費用差を計算し、前述したように代替又は削除を遂行する。
【0274】
映像符号化装置は、候補インデックスを用いて修正された候補リストから現在ブロックの動き情報を抽出する(S2006)。
【0275】
映像符号化装置は、抽出された動き情報を用いて現在ブロックの予測ブロックを生成する(S2008)。
【0276】
映像符号化装置は候補インデックスを符号化する(S2010)。
【0277】
図21は、本開示の他の実施例に係る、映像復号化装置が現在ブロックをインター予測する方法を示すフローチャートである。
【0278】
映像復号化装置は、ビットストリームから候補インデックスを復号化する(S2100)。ここで、候補インデックスは候補リスト内の複数の候補のうちの1つを指示し、各候補は動き情報として双方向予測の動きベクトルペア又は一方向予測の動きベクトルを含む。
【0279】
マージモードの場合、候補リストは、一般マージ候補リスト、GPM候補リスト、TMマージ候補リスト、又はアフィンマージ候補リストである。AMVPモードの場合、候補リストは、一般AMVP候補リスト、TM AMVP候補リスト、又はアフィンAMVP候補リストである。
【0280】
映像復号化装置は、現在ブロックの周辺情報を用いて候補リストを生成する(S2102)。
【0281】
映像復号化装置は、TM及びTM費用に基づいて候補リストを修正する(S2104)。ここで、TMは、既復元領域で現在ブロックのテンプレートに対応する類似テンプレートを探索する。TM費用は、現在ブロックのテンプレート内サンプルと類似テンプレート内サンプルとの間の差に依存する。
【0282】
映像復号化装置は、TM費用に基づいて候補リスト内の候補を昇順に並べ替える。
【0283】
一般マージ候補リストの場合、映像復号化装置はTMを用い、各候補に対してTM費用を最小にする改善動き情報を生成する。映像復号化装置は、生成された改善動き情報を候補リストに追加する。映像復号化装置は、改善動き情報と対応候補との間のTM費用差を計算し、前述したように代替又は削除を遂行する。
【0284】
映像復号化装置は、候補インデックスを用いて修正された候補リストから現在ブロックの動き情報を抽出する(S2106)。
【0285】
映像復号化装置は、抽出された動き情報を用いて現在ブロックの予測ブロックを生成する(S2108)。
【0286】
本明細書のフローチャート/タイミング図では、各過程を順次実行するものとして記載しているが、これは、本開示の一実施例の技術思想を例示的に説明したものにすぎない。言い換えれば、本開示の一実施例が属する技術分野にて通常の知識を有する者であれば、本開示の一実施例の本質的な特性から逸脱しない範囲でフローチャート/タイミング図に記載された順序を変更して実行するか、又は各過程のうちの1つ以上の過程を並列的に実行することで、様々に修正及び変形して適用可能であるので、フローチャート/タイミング図は時系列的な順序に限定されるものではない。
【0287】
以上の説明における例示的な実施例は、多くの他の方式で具現されることを理解されたい。1つ以上の例示で説明された機能あるいは方法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで具現される。本明細書で説明させた機能的コンポーネントは、それらの具現独立性を特に強調するために「…部(unit)」とラベル付けされることを理解されたい。
【0288】
一方、本実施例で説明された様々な機能あるいは方法は、1つ以上のプロセッサによって読み取られて実行される非一時的記録媒体に保存された命令語で具現されてもよい。非一時的記録媒体は、例えばコンピュータシステムによって読み取り可能な形態でデータが保存されるあらゆる種類の記録装置を含む。例えば、非一時的記録媒体は、EPROM(erasable programmable read only memory)、フラッシュドライブ、光学ドライブ、磁気ハードドライブ、ソリッドステートドライブ(SSD)のような保存媒体を含む。
【0289】
以上の説明は、本実施例の技術思想を例示的に説明したものに過ぎず、本実施例が属する技術分野で通常の知識を有する者であれば、本実施例の本質的な特性から逸脱しない範囲で様々な修正及び変形が可能であろう。したがって、本実施例は、本実施例の技術思想を限定するものではなく説明するためのものであり、このような実施例によって本実施例の技術思想の範囲が限定されるものではない。本実施例の保護範囲は、特許請求の範囲によって解釈されるべきであり、それと同等の範囲内にあるすべての技術思想は、本実施例の権利範囲に含まれるものと解釈されるべきである。
【0290】
CROSS-REFERENCE TO RELATED APPLICATION
2022年1月10日付にて韓国に出願した特許出願番号第10-2022-0003247号、2022年12月28日付にて韓国に出願した特許出願番号第10-2022-0187975号に対して優先権を主張し、そのすべての内容は参考文献として本特許出願に併合される。
【符号の説明】
【0291】
124 インター予測部
155 エントロピー符号化部
510 エントロピー復号化部
544 インター予測部
【国際調査報告】