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

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

▶ 鴻穎創新有限公司の特許一覧

特許7429297ビデオデータをコーディングするためのデバイス及び方法
<>
  • 特許-ビデオデータをコーディングするためのデバイス及び方法 図1
  • 特許-ビデオデータをコーディングするためのデバイス及び方法 図2
  • 特許-ビデオデータをコーディングするためのデバイス及び方法 図3
  • 特許-ビデオデータをコーディングするためのデバイス及び方法 図4
  • 特許-ビデオデータをコーディングするためのデバイス及び方法 図5
  • 特許-ビデオデータをコーディングするためのデバイス及び方法 図6
  • 特許-ビデオデータをコーディングするためのデバイス及び方法 図7
  • 特許-ビデオデータをコーディングするためのデバイス及び方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-30
(45)【発行日】2024-02-07
(54)【発明の名称】ビデオデータをコーディングするためのデバイス及び方法
(51)【国際特許分類】
   H04N 19/105 20140101AFI20240131BHJP
   H04N 19/70 20140101ALI20240131BHJP
   H04N 19/172 20140101ALI20240131BHJP
   H04N 19/176 20140101ALI20240131BHJP
【FI】
H04N19/105
H04N19/70
H04N19/172
H04N19/176
【請求項の数】 11
(21)【出願番号】P 2022542730
(86)(22)【出願日】2021-03-19
(65)【公表番号】
(43)【公表日】2023-03-13
(86)【国際出願番号】 CN2021081709
(87)【国際公開番号】W WO2021185345
(87)【国際公開日】2021-09-23
【審査請求日】2022-07-12
(31)【優先権主張番号】62/992,092
(32)【優先日】2020-03-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518446879
【氏名又は名称】鴻穎創新有限公司
【氏名又は名称原語表記】FG INNOVATION COMPANY LIMITED
【住所又は居所原語表記】Flat 2623,26/F Tuen Mun Central Square,22 Hoi Wing Road,Tuen Mun,New Territories,The Hong Kong Special Administrative Region of the People’s Republic of China
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】ヤン,ユチァオ
(72)【発明者】
【氏名】テン,チユ
【審査官】松元 伸次
(56)【参考文献】
【文献】特表2023-517085(JP,A)
【文献】Olena Chubach et al.,CE4-related: On maximum number of subblock-based merging candidates,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 16th Meeting: Geneva, CH, 1-11 October 2019,JVET-P0152-v1,2019年10月04日,pp.1-2
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
電子デバイスによってビットストリームを復号化する方法であって、前記方法は、
前記ビットストリームを受信する工程、
前記ビットストリームからの1つ又は複数の画像フレームに対応するアフィン有効化フラグを決定する工程、
前記アフィン有効化フラグが真であるとき、前記ビットストリームからの前記1つ又は複数の画像フレームに対応する最大インデックスを決定する工程であって、
前記最大インデックスのインデックス値は、0からN-Kのインデックス範囲内にあり、Nは、第1の整数であり、Kは、Nより小さい第2の整数であり、
前記最大インデックスの前記インデックス値は、Kが1であるとき、0からN-1の前記インデックス範囲内にある、工程、
前記アフィン有効化フラグが真であり、Kが1であるとき、ゼロ以上のサブブロックベースマージ動きベクトル予測子(MVP)候補の最大数は、1からNの数値範囲であり、Nから前記最大インデックスの前記インデックス値を減算することによって生成されることを決定する工程、及び
ゼロ以上のサブブロックベースマージMVP候補の前記最大数に基づいて、前記1つ又は複数の画像フレームを再構成する工程、
を含む、方法。
【請求項2】
Nは、5である、請求項1に記載の方法。
【請求項3】
前記アフィン有効化フラグが偽のとき、前記ビットストリームから前記最大インデックスを決定せずに、サブブロックベース一時的MVPフラグおよび一時的MVPフラグに基づいて前記最大数を決定する工程、
を更に含む、請求項1に記載の方法。
【請求項4】
前記アフィン有効化フラグ、前記サブブロックベース一時的MVPフラグ及び前記最大インデックスは、前記ビットストリームのシーケンスパラメータセット(SPS)に含まれ、
前記一時的MVPフラグは、前記ビットストリームのピクチャヘッダに含まれ、
前記1つ又は複数の画像フレームのそれぞれは、前記SPSに基づいて再構成され、且つ
前記ピクチャヘッダに基づいて、前記1つ又は複数の画像フレームの少なくとも1つは、再構成される
、請求項3に記載の方法。
【請求項5】
前記最大数は、Kが1と異なるとき、KからNの数値範囲である、請求項に記載の方法。
【請求項6】
ビットストリームを復号化するための電子デバイスであって、前記電子デバイスは、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに結合され、前記少なくとも1つのプロセッサによって実行されるとき、前記電子デバイスに、
前記ビットストリームを受信すること、
前記ビットストリームからの1つ又は複数の画像フレームに対応するアフィン有効化フラグを決定すること、
前記アフィン有効化フラグが真であるとき、前記ビットストリームからの前記1つ又は複数の画像フレームに対応する最大インデックスを決定することであって、
前記最大インデックスのインデックス値は、0からN-Kのインデックス範囲内にあり、Nは、第1の整数であり、Kは、Nより小さい第2の整数であり、
前記最大インデックスの前記インデックス値は、Kが1であるとき、0からN-1の前記インデックス範囲内にある、こと、
前記アフィン有効化フラグが真であり、Kが1であるとき、ゼロ以上のサブブロックベースマージ動きベクトル予測子(MVP)候補の最大数は、1からNの数値範囲であり、Nから前記最大インデックスの前記インデックス値を減算することによって生成されることを決定すること、及び
ゼロ以上のサブブロックベースマージMVP候補の前記最大数に基づいて、前記1つ又は複数の画像フレームを再構成すること、
を実行させるプログラムを保存する、記憶デバイスと、
を含む、電子デバイス。
【請求項7】
Nは、5である、請求項に記載の電子デバイス。
【請求項8】
前記最大数は、Kが1と異なるとき、KからNの数値範囲である、請求項に記載の電子デバイス。
【請求項9】
前記プログラムは、前記少なくとも1つのプロセッサに実行されるとき、前記電子デバイスに、
前記アフィン有効化フラグが偽のとき、前記ビットストリームから前記最大インデックスを決定せずに、サブブロックベース一時的MVPフラグおよび一時的MVPフラグに基づいた前記最大数を決定することを実行させる、請求項に記載の電子デバイス
【請求項10】
電子デバイスによってビットストリームを復号化する方法であって、前記方法は、
前記ビットストリームを受信する工程、
前記ビットストリームからの1つ又は複数の画像フレームに対応する最大インデックスを決定する工程であって、前記最大インデックスのインデックス値は、0からN-Kのインデックス範囲内にあり、Nは、第1の整数であり、Kは、Nより小さい第2の整数である、工程、
前記最大インデックスのインデックス値をNから減算することによって、ゼロ以上のサブブロックベースマージ動きベクトル予測子(MVP)候補の最大数を決定し、前記最大インデックスの前記インデックス値は、0からN-1の前記インデックス範囲内にあり、前記最大数は、Kが1であるとき、1からNの数値範囲内にある、工程、及び
ゼロ以上のサブブロックベースマージMVP候補の前記最大数に基づいて前記1つ又は複数の画像フレームを再構成する工程、
を含む、方法。
【請求項11】
前記ビットストリームからの前記1つ又は複数の画像フレームに対応するアフィン有効化フラグを決定する工程を更に含み、
前記アフィン有効化フラグが真のとき、前記最大インデックスは、前記ビットストリームから決定され、
前記アフィン有効化フラグが偽のとき、前記ビットストリームから前記最大インデックスを決定せずに、サブブロックベース一時的MVPフラグおよび一時的MVPフラグに基づいて前記最大数を決定する、請求項10に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
〔関連出願の相互参照〕
本開示は、2020年3月19日に出願された“High Level Syntax for Merge Modes”という名称の米国仮特許出願第62/992092号(以下、「092仮特許」と称する)の利益及び優先権を主張する。‘092仮特許の開示は、参照により本開示に完全に組み込まれる。
【0002】
〔分野〕
本開示は一般に、ビデオコーディングに関し、特に、高レベルシンタックスを使用し、マージ候補の数を決定するための技術に関する。
【背景技術】
【0003】
従来のビデオコーディング方法において、エンコーダは、ビデオデータを符号化し、複数のフラグ及び複数のインデックスを有する符号化されたデータを生成し、符号化されたデータをデコーダに提供することができる。フラグは、複数のコーディングモードが有効であるか否かを示してよい。例えば、符号化されたデータは、いくつかの画像フレームのためにアフィンモードが有効かを示すアフィン有効化フラグを含んでよい。その上、インデックスは、コーディングモードのためのモード候補の最大数を示すことができる。
【0004】
符号化されたデータは、異なるレベルのシンタックス要素の各々において、コーディングモード毎にフラグ及びインデックスを含むことができるが、コーディング効率が低下することがある。従って、エンコーダ及びデコーダは、符号化されたデータ内のビット数が過度に増加することを防止するために、フラグ及びインデックスをより効率的に使用するための方法を有する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示は、マージ候補の数を決定するために高レベルシンタックスを使用するためのデバイス及び方法を対象とする。
【0006】
本開示の第1の態様において、ビットストリームを復号化するための方法、及び本方法を実行するための電子デバイスが、提供される。本方法は、ビットストリームを受信する工程、ビットストリームからの1つ又は複数の画像フレームに対応するアフィン有効化フラグを決定する工程、アフィン有効化フラグが真であるとき、ビットストリームからの1つ又は複数の画像フレームに対応する最大インデックスを決定する工程であって、最大インデックスのインデックス値は、0からN-Kのインデックス範囲内にあり、Nは、第1の整数であり、Kは、Nより小さい第2の整数である、工程、アフィン有効化フラグが真であるとき、最大インデックスに基づいて、ゼロ以上のサブブロックベースマージ動きベクトル予測子(MVP)候補の最大数を決定する工程、及びゼロ以上のサブブロックベースマージMVP候補の最大数に基づいて、1つ又は複数の画像フレームを再構成する工程を含む。
【0007】
本開示の第2の態様において、ビットストリームを復号化するための方法、及び本方法を実行するための電子デバイスが、提供される。本方法は、ビットストリームを受信する工程、ビットストリームからの1つ又は複数の画像フレームに対応する最大インデックスを決定する工程であって、最大インデックスのインデックス値は、0からN-Kのインデックス範囲内にあり、Nは、第1の整数であり、Kは、Nより小さい第2の整数である、工程、Nから最大インデックスのインデックス値を減算することによってゼロ以上のサブブロックベースマージ動きベクトル予測子(MVP)候補の最大数を決定する工程、及びゼロ以上のサブブロックベースマージMVP候補の最大数に基づいて、1つ又は複数の画像フレームを再構成する工程を含む。
【図面の簡単な説明】
【0008】
本開示の態様は、以下の詳細な開示及び対応する図面から最もよく理解される。様々な特徴は、縮尺通りに描かれておらず、様々な特徴の寸法は、議論を明確にするために任意に増減されてもよい。
図1図1は、本開示の一実施形態に従った、ビデオデータを符号化及び復号化するように設定されたシステムのブロック図を示す。
図2図2は、本開示の一実施形態に従った、図1に示される第2の電子デバイスのデコーダモジュールのブロック図を示す。
図3図3は、本開示の一実施形態に従った、電子デバイスによるビデオデータを復号化するための方法のフローチャートを示す。
図4図4は、本開示の一実施形態に従った、電子デバイスによるビデオデータを復号化するための方法のフローチャートを示す。
図5図5は、本開示の一実施形態に従った、電子デバイスによるビデオデータを復号化するための方法のフローチャートを示す。
図6図6は、本開示の一実施形態に従った、電子デバイスによるビデオデータを復号化するための方法のフローチャートを示す。
図7図7は、本開示の一実施形態に従った、電子デバイスによるビデオデータを復号化するための方法のフローチャートを示す。
図8図8は、本開示の一実施形態に従った、図1に示される第1の電子デバイスのエンコーダモジュールのブロック図を示す。
【発明を実施するための形態】
【0009】
以下の開示は、本開示における実施形態に関連する特定の情報を含む。図面及び対応する詳細な開示は、例としての実施形態に向けられる。しかしながら、本開示は、これらの例としての実施形態に限定されない。本開示の他の変形例及び実施形態は、当業者に想起されるであろう。
【0010】
特に断りのない限り、図中の同様の又は対応する要素は、同様の又は対応する参照符号によって示され得る。本開示における図面及び例示は、概して、縮尺通りではなく、実際の相対的寸法に対応することを意図していない。
【0011】
一貫性の目的及び理解の容易さのために、同様の特徴は、例示的な図において(いくつかの実施例において、図示されていないが)参照符号によって識別されている。しかしながら、異なる実施形態における特徴は、他の点で異なってよく、図に示されるものに狭く限定されるべきではない。
【0012】
本開示は、「一実施形態において」又は「いくつかの実施形態において」という語句を使用し、同一又は異なる実施形態の一つ又は複数を参照することがある。用語「結合された」は、直接的であろうと間接的であろうと、介在する部品を介して接続されたものとして定義され、必ずしも物理的接続に限定されない。用語「備える」は、「含むが、必ずしもそれに限定されない」ことを意味し、特に、そのように記載された組み合わせ、群、グループ、シリーズ及び等価物におけるオープンエンドの包含又はメンバーシップを示す。
【0013】
説明及び非限定の目的のために、開示された技術の理解を提供するための機能エンティティ、技法、プロトコル、及び規格といった特定の詳細は、記載される。周知の方法、技術、システム、及びアーキテクチャの詳細な開示は、本開示を不必要な詳細で曖昧にしないように省略される。
【0014】
当業者は、本開示に記載された任意の開示されたコーディング機能又はアルゴリズムが、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアとの組み合わせによって実施され得ることを直ちに認識するであろう。開示される機能は、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組合せであるモジュールに対応し得る。
【0015】
ソフトウェア実施形態は、メモリ又は他の種類の記憶装置といったコンピュータ可読媒体上に記憶されたコンピュータ実行可能命令を有するプログラムを含み得る。例えば、通信処理能力を有する1つ又は複数のマイクロプロセッサ又は汎用コンピュータは、実行可能命令でプログラムされ、開示された機能又はアルゴリズムを実行することができる。
【0016】
マイクロプロセッサ又は汎用コンピュータは、特定用途向け集積回路(ASIC)、プログラマブル論理アレイ、及び/又は1つ又は複数のデジタル信号プロセッサ(DSP)を使用して形成することができる。開示されている実施形態のいくつかは、コンピュータハードウェア上にインストールされ実行されるソフトウェアを指向しているが、ファームウェアとして、又はハードウェアとして、又はハードウェアとソフトウェアの組合せとして実施される代替的な実施形態は、十分に本開示の範囲内にある。コンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、コンパクトディスク読取り専用メモリ(CD-ROM)、磁気カセット、磁気テープ、磁気ディスク記憶、又はコンピュータ可読命令を記憶することができる他の任意の同等の媒体を含むが、これらに限定されない。
【0017】
図1は、本開示の一実施形態に従った、ビデオデータを符号化及び復号化するように構成されたシステム100のブロック図を示す。システム100は、第1の電子デバイス110、第2の電子デバイス120、及び通信媒体130を含む。
【0018】
第1の電子デバイス110は、ビデオデータを符号化し、符号化されたビデオデータを通信媒体130に送信するように構成された任意のデバイスを含むソースデバイスであってよい。第2の電子デバイス120は、通信媒体130を介して符号化されたビデオデータを受信し、符号化されたビデオデータを復号化するように構成された任意のデバイスを含む宛先デバイスであってよい。
【0019】
第1の電子デバイス110は、通信媒体130を介して第2の電子デバイス120と有線又は無線で通信することができる。第1の電子デバイス110は、ソースモジュール112、エンコーダモジュール114、及び第1のインターフェース116を含むことができる。第2の電子デバイス120は、ディスプレイモジュール122、デコーダモジュール124、及び第2のインターフェース126を含むことができる。第1の電子デバイス110は、ビデオエンコーダであってよく、第2の電子デバイス120は、ビデオデコーダであってよい。
【0020】
第1の電子デバイス110及び/又は第2の電子デバイス120は、携帯電話、タブレット、デスクトップ、ノートブック、又は他の電子デバイスであってよい。図1は、第1の電子デバイス110及び第2の電子デバイス120の1つの実施例を示す。第1の電子デバイス110及び第2の電子デバイス120は、図示されたものよりも多い又は少ない部品を含むことができ、又は様々な図示された部品の異なる構成を有することができる。
【0021】
ソースモジュール112は、新しいビデオをキャプチャするためのビデオキャプチャデバイス、以前にキャプチャされたビデオを格納するためのビデオアーカイブ、及び/又はビデオコンテンツプロバイダーからビデオを受信するためのビデオフィードインターフェースを含むことができる。ソースモジュール112は、ソースビデオとしてコンピュータグラフィックスベースのデータを生成する、又はソースビデオとしてライブビデオ、アーカイブビデオ、及びコンピュータ生成されたビデオの組み合わせを生成することができる。ビデオキャプチャデバイスは、電荷結合デバイス(CCD)イメージセンサ、相補型金属酸化膜半導体(CMOS)イメージセンサ、又はカメラであってよい。
【0022】
エンコーダモジュール114及びデコーダモジュール124は、それぞれ、1つ又は複数のマイクロプロセッサ、中央処理装置(CPU)、グラフィック処理装置(GPU)、システムオンチップ(SoC)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組合せといった、様々な適切な符号化/復号化回路のいずれかとして実施され得る。ソフトウェアで部分的に実施されるとき、デバイスは、ソフトウェアのための命令を有するプログラムを適切な非一時的コンピュータ可読媒体に記憶し、開示された方法を実行するために1つ又は複数のプロセッサを用いてハードウェアで命令を実行することができる。エンコーダモジュール114及びデコーダモジュール124の各々は、1つ又は複数のエンコーダ又はデコーダに含まれてもよく、これらのエンコーダ又はデコーダの内の任意のものは、デバイス内の複合エンコーダ/デコーダ(CODEC)の一部として統合されてよい。
【0023】
第1のインターフェース116及び第2のインターフェース126は、イーサネット、IEEE 802.11又はIEEE 802.15シリーズ、無線USB又は通信規格、移動通信のためのグローバルシステム(GSM)、符号分割多元接続2000(CDMA2000)、時分割同期符号分割多元接続(TD-SCDMA)、マイクロ波アクセスのための世界的相互運用性(WiMAX)、第3世代パートナーシッププロジェクトロングタームエボリューション(3GPP-LTE)又は時分割LTE(TD-LTE)を含むが、これらに限定されない、カスタマイズされたプロトコルを利用する、又はデファクトスタンダードに従うことができる。第1のインターフェース116及び第2のインターフェース126は、それぞれ、通信媒体130を介して準拠したビデオビットストリームを送信し及び/又は格納するように構成され、且つ、通信媒体130を介して準拠したビデオビットストリームを受信するように構成された任意のデバイスを含んでよい。
【0024】
第1のインターフェース116及び第2のインターフェース126は、準拠したビデオビットストリームを記憶装置に記憶すること、又は記憶装置から受信することを可能にするコンピュータシステムインターフェースを含んでよい。例えば、第1のインターフェース116及び第2のインターフェース126は、ペリフェラルコンポーネントインターコネクト(PCI)及びペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)バスプロトコル、独自のバスプロトコル、ユニバーサルシリアルバス(USB)プロトコル、I2C、又はピアデバイスを相互接続するために使用することができる他の任意の論理及び物理構造をサポートするチップセットを含むことができる。
【0025】
ディスプレイモジュール122は、液晶ディスプレイ(LCD)技術、プラズマディスプレイ技術、有機発光ダイオード(OLED)ディスプレイ技術、又は発光ポリマーディスプレイ(LPD)技術を用いたディスプレイを、他の実施形態で使用される他のディスプレイ技術と共に含んでもよい。ディスプレイモジュール122は、高精細ディスプレイ又は超高精細ディスプレイを含むことができる。
【0026】
図2は、本開示の一実施形態に従った、図1に示される第2の電子デバイス120のデコーダモジュール124のブロック図を示す。デコーダモジュール124は、エントロピーデコーダ(例えば、エントロピー復号化ユニット2241)、予測プロセッサ(例えば、予測プロセスユニット2242)、逆量子化/逆変換プロセッサ(例えば、逆量子化/逆変換ユニット2243)、加算器(例えば、加算器2244)、フィルタ(例えば、フィルタリングユニット2245)、及び復号化された画像バッファ(例えば、復号化された画像バッファ2246)を含む。予測プロセスユニット2242は、イントラ予測プロセッサ(例えば、イントラ予測ユニット22421)、及びインター予測プロセッサ(例えば、インター予測ユニット22422)を更に含む。デコーダモジュール124は、ビットストリームを受信し、ビットストリームを復号化して、復号化されたビデオを出力する。
【0027】
エントロピー復号化ユニット2241は、図1において第2のインターフェース126から複数のシンタックス要素を含むビットストリームを受信し、ビットストリームからシンタックス要素を抽出するパーシング動作をビットストリーム上で実行してよい。パーシング動作の一部として、エントロピー復号化ユニット2241は、ビットストリームをエントロピー復号化し、量子化変換係数、量子化パラメータ、変換データ、動きベクトル、イントラモード、分割情報、及び他のシンタックス情報を生成することができる。
【0028】
エントロピー復号化ユニット2241は、量子化変換係数を生成するために、コンテキスト適応可変長符号化(CAVLC)、コンテキスト適応2進算術符号化(CABAC)、シンタックスベースのコンテキスト適応2進算術符号化(SBAC)、確率間隔分割エントロピー(PIPE)符号化、又は別のエントロピーコーディング技法を実行することができる。エントロピー復号化ユニット2241は、量子化された変換係数、量子化パラメータ、及び変換データを逆量子化/逆変換ユニット2243に提供し、動きベクトル、イントラモード、分割情報、及び他のシンタックス情報を予測処理ユニット2242に提供することができる。
【0029】
予測プロセスユニット2242は、エントロピー復号化ユニット2241から、動きベクトル、イントラモード、分割情報、及び他のシンタックス情報などのシンタックス要素を受信することができる。予測プロセスユニット2242は、分割情報を含むシンタックス要素を受信し、分割情報に従って画像フレームを分割することができる。
【0030】
各画像フレームは、分割情報に従って少なくとも1つの画像ブロックに分割されてよい。少なくとも1つの画像ブロックは、複数の輝度サンプルを再構成するための輝度ブロック、及び複数の色差サンプルを再構成するための少なくとも1つの色差ブロックを含んでよい。輝度ブロック及び少なくとも1つの色差ブロックは、マクロブロック、コーディングツリーユニット(CTU)、コーディングブロック(CB)、そのサブ分割、及び/又は別の同等のコーディングユニットを生成するために、更に分割されてもよい。
【0031】
復号化プロセスの間、予測プロセスユニット2242は、画像フレームの内の特定の1つの現在の画像ブロックのためのイントラモード又は動きベクトルを含む予測されたデータを受信することができる。現在の画像ブロックは、輝度ブロックであっても、特定の画像フレームの中の色差ブロックの一つであってもよい。
【0032】
イントラ予測ユニット22421は、予測されたブロックを生成するために、イントラモードに関連するシンタックス要素に基づいて、現在のブロックユニットと同じフレーム内の1つ又は複数の隣接ブロックに対する現在のブロックユニットのイントラ予測コーディングを実行することができる。イントラモードは、現在のフレーム内の隣接ブロックから選択された参照サンプルの位置を指定することができる。イントラ予測ユニット22421は、クロマ成分が予測プロセスユニット2242によって再構成されるとき、現在のブロックユニットの複数のルマ成分に基づいて、現在のブロックユニットの複数のクロマ成分を再構成してよい。
【0033】
イントラ予測ユニット22421は、予測プロセスユニット2242によって、現在のブロックのルマ成分が再構成されるとき、現在のブロックユニットの複数のルマ成分に基づいて、現在のブロックユニットの複数のクロマ成分を再構成することができる。
【0034】
インター予測ユニット22422は、予測されたブロックを生成するために、動きベクトルに関連するシンタックス要素に基づいて、1つ又は複数の参照画像ブロック内の1つ又は複数のブロックに対する現在のブロックユニットのインター予測コーディングを実行することができる。
【0035】
動きベクトルは、参照画像ブロック内の参照ブロックユニットに対する現在の画像ブロック内の現在のブロックユニットの変位を示すことができる。参照ブロックユニットは、現在のブロックユニットと密接に一致するように決定されたブロックである。
【0036】
インター予測ユニット22422は、復号化された画像バッファ2246に格納された参照画像ブロックを受信し、受信した参照画像ブロックに基づいて現在のブロックユニットを再構成してもよい。
【0037】
逆量子化/逆変換ユニット2243は、逆量子化及び逆変換を適用し、画素領域内の残差ブロックを再構成してもよい。逆量子化/逆変換ユニット2243は、残差量子化変換係数に逆量子化を適用して残差変換係数を生成し、次いで残差変換係数に逆変換を適用して画素領域内の残差ブロックを生成してもよい。
【0038】
逆変換は、離散コサイン変換(DCT)、離散サイン変換(DST)、適応多重変換(AMT)、モード依存非分離二次変換(MDNSST)、ハイパーキューブギブンス変換(HyGT)、信号依存変換、カルマンローブ変換(KLT)、ウェーブレット変換、整数変換、サブバンド変換又は概念的に類似した変換のような変換プロセスによって逆に適用することができる。逆変換は、周波数ドメインといった変換領域からの残差情報を画素領域に戻すように変換してもよい。逆量子化の度合いは、量子化パラメータを調整することによって修正されてもよい。
【0039】
加算器2244は、再構成された残差ブロックを、予測プロセスユニット2242から提供される予測されたブロックに追加し、再構成されたブロックを生成する。
【0040】
フィルタリングユニット2245は、再構成されたブロックからブロッキングアーチファクトを除去するために、デブロッキングフィルタ、サンプル適応オフセットフィルタ、バイラテラルフィルタ、及び/又は適応ループフィルタ(ALF)を含んでもよい。デブロッキングフィルタ、SAOフィルタ、バイラテラルフィルタ、及びALFに加えて、追加のフィルタ(ループ又はポストループ)を使用することもできる。このようなフィルタは、簡潔にするために明示的に示されていないが、加算器2244の出力をフィルタリングすることができる。フィルタリングユニット2245は、フィルタリングユニット2245が特定の画像フレームの再構成されたブロックに対するフィルタリングプロセスを実行した後、復号化されたビデオをディスプレイモジュール122又は他のビデオ受信ユニットに出力することができる。
【0041】
復号化された画像バッファ2246は、(インターコーディングモードで)ビットストリームを復号化する際に予測プロセスユニット2242による使用のための参照ブロックを格納する参照画像メモリであってもよい。復号化された画像バッファ2246は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、又は他の種類のメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)といった、様々なメモリデバイスのいずれかによって形成され得る。復号化された画像バッファ2246は、デコーダモジュール124の他の部品とオンチップであってもよく、又はそれらの部品に対してオフチップであってもよい。
【0042】
図3は、本開示の一実施形態に従った、電子デバイスによるビデオデータを復号化する方法300のフローチャートを示す。方法300は、ビデオデータの復号化を実行する様々な方法があるため、単なる一実施例である。
【0043】
方法300は、図1及び図2に示される設定を使用して実行されてもよく、これらの図の様々な要素は、方法300に関して参照される。図3に示される各ブロックは、実行される1つ又は複数のプロセス、方法、又はサブルーチンを表すことができる。
【0044】
図3内のブロックの順序は、例示的なものにすぎず、変更できる。本開示から逸脱することなく、追加のブロックが追加されてもよく、又はより少ないブロックが利用されてもよい。
【0045】
ブロック310において、デコーダモジュール124は、ビデオデータを受信する。ビデオデータは、ビットストリームであってよい。
【0046】
図1及び図2を参照すると、第2の電子デバイス120は、第1の電子デバイス110といったエンコーダ、又は第2のインターフェース126を介して他のビデオプロバイダーからビットストリームを受信することができる。第2のインターフェース126は、ビットストリームをデコーダモジュール124に提供することができる。
【0047】
エントロピー復号化ユニット2241は、ビットストリームを復号化して、複数のビデオ画像のための複数の予測インディケーション及び複数の分割インディケーションを決定することができる。次いで、デコーダモジュール124は、予測インディケーション及び分割インディケーションに基づいて、複数のビデオ画像を更に再構成することができる。予測インディケーション及び分割インディケーションは、複数のフラグ及び複数のインデックスを含むことができる。
【0048】
ブロック320において、デコーダモジュール124は、ビデオデータからの1つ又は複数の画像フレームに対応するアフィン有効化フラグを決定する。更に図1及び図2を参照すると、デコーダモジュール124は、ビットストリームから1つ又は複数の画像フレームを決定し、1つ又は複数の画像フレームに対応する第1のパラメータセットを決定することができる。
【0049】
第1のパラメータセットは、複数の第1の予測インディケーション及び複数の第1の分割インディケーションを含むことができる。ビットストリームは、前記1つ又は複数の画像フレームを除く他の画像フレームの内の1つ又は複数に対応する第2のパラメータセットを更に含むことができる。
【0050】
第1のパラメータセットと第2のパラメータセットの両方は、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、画像パラメータセット(PPS)、及び画像ヘッダ(PH)のいずれかである。例えば、アフィン有効化フラグがSPSに含まれているとき、アフィン有効化フラグは、フラグsps_affine_enabled_flagであってよい。1つ又は複数の画像フレームの各々は、第1のパラメータセットがSPSであるとき、SPSに基づいて再構成される。
【0051】
デコーダモジュール124は、ビットストリームの第1のパラメータセットからの1つ又は複数の画像フレームに対応するアフィン有効化フラグを決定することができる。アフィン有効化フラグは、1つ又は複数の画像フレームのためにアフィンモデルベースの動き補償が有効であるかどうかを決定するために使用される。ビットストリーム内のブロックベースシンタックスは、アフィン有効化フラグが1に等しいとき、1つ又は複数の画像フレームの1つから分割された画像ブロックのためにアフィンモデルベースの動き補償が使用されるかどうかを決定するためのブロックベースのアフィンフラグを更に含むことができる。アフィンモデルベースの動き補償は、アフィンマージ予測子(複数の継承アフィンマージ候補から選択された複数のアフィンマージ候補、複数の構築されたアフィンマージ候補、及び少なくとも1つのゼロ動きベクトル(MV)候補を有する)、及びアフィンアドバンスド動きベクトル予測子(AMVP)予測子(複数の継承アフィンAMVP候補から選択された複数のアフィンAMVP候補、複数の構築されたアフィンAMVP候補、隣接ブロックから決定された翻訳MV候補、及びゼロMV候補を有する)を含むことができる。
【0052】
ブロック330において、デコーダモジュール124は、アフィン有効化フラグが真であるかどうかを決定する。方法300は、アフィン有効化フラグが真であるとデコーダモジュール124が決定したとき、ブロック340に進むことができる。方法300は、アフィン有効化フラグが偽であるとデコーダモジュール124が決定したとき、ブロック350に進むことができる。
【0053】
デコーダモジュール124は、アフィン有効化フラグが1に等しいとき、アフィン有効化フラグが真であると決定する。デコーダモジュール124は、アフィン有効化フラグがゼロに等しいとき、アフィン有効化フラグが偽であると決定する。
【0054】
アフィン有効化フラグは、アフィン有効化フラグがVPSに含まれているとき、フラグvps_affine_enabled_flagである。アフィン有効化フラグは、アフィン有効化フラグがSPSに含まれているとき、フラグsps_affine_enabled_flagである。アフィン有効化フラグは、アフィン有効化フラグがPPSに含まれているとき、フラグpps_affine_enabled_flagである。アフィン有効化フラグは、アフィン有効化フラグがPHに含まれているとき、フラグph_affine_enabled_flagである。
【0055】
ブロック340において、デコーダモジュール124は、ビデオデータから1つ又は複数の画像フレームに対応する最大インデックスを決定する。図1及び図2を更に参照すると、デコーダモジュール124は、アフィン有効化フラグが真であるとき、1つ又は複数の画像フレームに対応する第1のパラメータセットから最大インデックスを決定することができる。従って、最大インデックスは、1つ又は複数の画像フレームにも対応する。アフィン有効化フラグがSPSに含まれているとき、最大インデックスは、SPSに含まれる。
【0056】
最大インデックスは、アフィン有効化フラグが真であるとき、ゼロ以上のサブブロックベースマージ動きベクトル予測子(MVP)候補の最大数を計算するために使用される。最大数は、MaxNumSubblockMergeCandとして表すことができる。最大インデックスのインデックス値は、0からN1-Kのインデックス範囲であってよい。数N1は、第1の整数であり、数Kは、数N1より小さい第2の整数である。最大インデックスは、SPSに最大インデックスが含まれているとき、インデックスsps_N1_minus_max_num_subblock_merge_candである。最大インデックスは、最大インデックスがSPSに含まれ、数N1が5に等しいとき、インデックスsps_five_minus_max_num_subblock_merge_candである。最大インデックスがPPSに含まれ、数N1が6に等しいとき、最大インデックスは、インデックスpps_six_minus_max_num_subblock_merge_candになる。
【0057】
数Kは、ゼロ又は1に等しくてよい。数Kがゼロに等しいとき、最大インデックスのインデックス値は、0から5のインデックス範囲内であってよい。数Kが1に等しいとき、最大インデックスのインデックス値は、0から4のインデックス範囲内にあってよい。
【0058】
ブロック350において、デコーダモジュール124は、ビデオデータから最大インデックスを決定することなく、サブブロックベース一時的MVP(sbTMVP)フラグ及び一時的MVP(TMVP)フラグに基づいて、1つ又は複数の画像フレームのために、ゼロ又は複数のサブブロックベースマージMVP候補の最大数を決定する。
【0059】
最大数は、アフィン有効化フラグが偽のとき、ビデオデータから最大インデックスを決定することなく、sbTMVPフラグ及びTMVPフラグに基づいて計算される。sbTMVPフラグは、一つ又は複数の画像フレームに対応する第1のパラメータセットから決定されてよい。従って、sbTMVPは、1つ又は複数の画像フレームに対応してもよい。
【0060】
sbTMVPフラグは、アフィン有効化がSPSに含まれているとき、SPSに含まれるフラグsps_sbtmvp_enabled_flagであってよい。TMVPフラグは、別のレベルのパラメータセットから決定してもよい。
【0061】
例えば、TMVPフラグは、TMVPフラグが1つ又は複数の画像フレームの内の少なくとも1つに対応する画像ヘッダに含まれるとき、フラグph_temporal_mvp_enabled_flagであってよい。従って、TMVPフラグは、1つ又は複数の画像フレームの内の少なくとも1つに対応してよい。1つ又は複数の画像フレームの内の少なくとも1つは、1つ又は複数の画像フレームの内の少なくとも1つに対応する画像ヘッダに基づいて再構成される。
【0062】
sbTMVPフラグは、1又はゼロに等しくてよく、TMVPフラグは、1又はゼロに等しくてよい。アフィン有効化フラグが偽であるとき、MaxNumSubblockMergeCandの最大数は、(sbTMVPフラグ&&TMVPフラグ)に等しくてよい。論理演算子&&は、2つの値のブール論理“及び(and)”である。従って、アフィン有効化フラグが偽であり、sbTMVPフラグとTMVPフラグがそれぞれ1に等しいとき、最大数MaxNumSubblockMergeCandは、1に等しくてよい。
【0063】
換言すると、アフィン有効化フラグが偽であり、sbTMVPフラグ及びTMVPフラグの内の少なくとも1つがゼロであるとき、最大数MaxNumSubblockMergeCandは、ゼロに等しくてよい。従って、アフィン有効化フラグが偽のとき、最大数MaxNumSubblockMergeCandは、次のように導出されてよい:
MaxNumSubblockMergeCand = sps_sbtmvp_enabled_flag && ph_temporal_mvp_enable_flag。
【0064】
ブロック360において、デコーダモジュール124は、最大インデックスに基づいて最大数を決定する。最大数は、アフィン有効化フラグが真のとき、数N1から最大インデックスを引くことによって計算されてよい。従って、最大数は、アフィン有効化フラグが真であり、数N1が5に等しいとき、5から最大インデックスを引くことによって計算されてよい。換言すると、アフィン有効化フラグが真であり、数N1が5に等しい場合、MaxNumSubblockMergeCandの最大数は、次のように導出される:
MaxNumSubblockMergeCand = 5-sps_five_minus_max_num_subblock_merge_cand。
【0065】
アフィン有効化フラグが真であるとき、最大インデックスのインデックス値は、0からN1-Kのインデックス範囲内であってよく、最大数は、数N1から最大インデックスを減算することによって計算されてよい。従って、最大数の値は、N1-(N1-K)からN1の値範囲(すなわち、KからN1の値範囲)内にある。アフィン有効化フラグが真であり、数Kが1に等しいとき、最大数の値は、1からN1の値範囲内にあり、最大インデックスのインデックス値は、0からN1-1のインデックス範囲内にある。アフィン有効化フラグが真であり、数Kが0に等しいとき、最大数の値は、0からN1の値範囲内にあってよく、最大インデックスのインデックス値は、0からN1のインデックス範囲内にある。その上、最大数の値は、1から5の値範囲内であり、最大インデックスのインデックス値は、0から4のインデックス範囲内であり、アフィン有効化フラグが真であるとき、数N1は、5に等しく、数Kは、1に等しい。最大数の値は、0から5の値の値範囲内であってよく、最大インデックスのインデックス値は、0から5のインデックス範囲内であり、アフィン有効化フラグが真であるとき、数N1は、5に等しく、数Kは、0に等しい。
【0066】
図3のブロック330から350を参照すると、最大数MaxNumSubblockMergeCandは、次のように導出できる:
【0067】
【数1】
【0068】
デコーダモジュール124は、最大数が値範囲内に含まれるかどうかを決定することができる。最大数が値範囲から除外されるとデコーダモジュール124が決定したとき、デコーダモジュール124は、ビデオデータがデコーダモジュール124に準拠していないと決定することができる。
【0069】
従って、デコーダモジュール124は、1つ又は複数の画像フレームのエラー信号を出力することができる。換言すると、デコーダモジュール124は、最大数が値範囲内に含まれているとデコーダモジュール124が決定したとき、ビデオデータがデコーダモジュール124に準拠していると決定することができる。従って、デコーダモジュール124は、ビットストリームを復号化して、1つ又は複数の画像フレームを再構成してよい。
【0070】
デコーダモジュール124は、アフィン有効化フラグが真であるとき、最大インデックスがインデックス範囲内に含まれるかどうかを決定することができる。最大インデックスがインデックス範囲から除外されるとデコーダモジュール124が決定したとき、デコーダモジュール124は、ビデオデータがデコーダモジュール124に準拠していないと決定することができる。従って、デコーダモジュール124は、1つ又は複数の画像フレームのエラー信号を出力することができる。上述した決定は、汎用ビデオコーディング(VVC)といったビデオコーディング規格におけるビットストリーム適合要件の内の1つとすることができる。
【0071】
換言すると、デコーダモジュール124は、最大インデックスがインデックス範囲内に含まれるとデコーダモジュール124が決定したとき、ビデオデータがデコーダモジュール124に準拠していると決定することができる。従って、デコーダモジュール124は、ビットストリームを復号化して、1つ又は複数の画像フレームを再構成してよい。
【0072】
ブロック370において、デコーダモジュール124は、ゼロ以上のサブブロックベースマージMVP候補の最大数に基づいて、1つ又は複数の画像フレームを再構成する。図1及び図2を更に参照すると、デコーダモジュール124は、1つ又は複数の画像フレーム中の複数の画像ブロックのそれぞれのために、ゼロ以上のサブブロックベースマージMVP候補を含む複数のモード候補から予測モードを選択し、予測モードに基づいて複数の予測ブロックを決定することができる。1つ又は複数の画像フレーム内の各画像ブロックのためにゼロ以上のサブブロックベースマージMVP候補の数は、最大数によって制限される。従って、デコーダモジュール124は、最大数によって制限されるゼロ以上のサブブロックベースマージMVP候補に基づいて、1つ又は複数の画像フレームを再構成する。ゼロ以上のサブブロックベースマージMVP候補は、ゼロ以上の複数のsbTMVP候補、複数のアフィンマージ予測子候補、及び少なくとも1つのゼロパディング候補を含んでよい。デコーダモジュール124は、画像ブロックの各々のために、ビットストリームから複数の残差成分を決定し、残差成分を予測されたブロックの対応する1つに加算して、画像ブロックを再構成することができる。デコーダモジュール222は、ビデオ画像を再構成するために画像フレームの全てを再構成することができる。
【0073】
高効率ビデオコーディング(HEVC)及びVVCといったビデオコーディング規格において、サブブロックベースマージMVP候補を含むサブブロックベースマージモードの複数の第1の検索候補は、アフィンAMVP予測子の複数の第2の検索候補よりも効率的であり得る。しかしながら、サブブロックベースマージモードの第1の検索候補の数は、最大数MaxNumSubblockMergeCandによって制限されてよい。従って、エンコーダの複雑さのために、最大数MaxNumSubblockMergeCandは、アフィンモデルベースの動き補償が有効にされるとき、サブブロックベースのマージモードは、最大数だけ無効にされないことを保証するようにセットされ得る。従って、最大数MaxNumSubblockMergeCandは、数Kがゼロよりも大きくなるようにセットされるとき、1よりも大きくなる。最大数がゼロに等しく、サブブロックベースマージモードを無効にするという条件は、存在しないため、最大インデックスのシグナリングは、無用でなく、浪費されない。
【0074】
複雑さを低減するために、サブブロックベースマージモードは、アフィン有効化フラグが真であるとき、使用されてよい。アフィン有効化フラグが真であるとき、最大数MaxNumSubblockMergeCandの値範囲を変更するために、数Kは、1に等しくてよい。しかしながら、サブブロックベースマージモードが他の方法のために既に無効にされているとき、サブブロックベースマージMVP候補のための候補を予約する必要はない。従って、サブブロックベースのマージモードが無効にされたとき、値範囲を変化させないように維持するために、数Kは、ゼロに等しくてよい。従って、数Kは、サブブロックベースマージモードのためにセットされてよい。
【0075】
図4は、本開示の一実施形態に従った、電子デバイスによるビデオデータを復号化する方法400のフローチャートを示す。方法400は、ビデオデータを復号化するための様々な方法があるため、ただの一実施例である。
【0076】
ビットストリームを復号化し、ブロックユニットを再構成するための方法400は、図1及び図2に示される設定を使用して実行されてよく、これらの図の様々な要素は、方法400に関して参照される。図4に示される各ブロックは、実行される1つ又は複数のプロセス、方法、又はサブルーチンを表すことができる。
【0077】
図4内のブロックの順序は、例示的なものにすぎず、変更することができる。本開示から逸脱することなく、追加のブロックは、追加されてよく、又はより少ないブロックが利用されてよい。
【0078】
ブロック410において、デコーダモジュール124は、ビデオデータを受信する。ビデオデータは、ビットストリームであってよい。図1及び図2を参照すると、第2の電子デバイス120は、第1の電子デバイス110といったエンコーダ、又は第2のインターフェース126を介して他のビデオプロバイダーからビットストリームを受信することができる。第2のインターフェース126は、ビットストリームをデコーダモジュール124に提供することができる。
【0079】
ブロック420において、デコーダモジュール124は、ビデオデータから、1つ又は複数の画像フレームに対応する最大インデックスを決定する。図1及び図2を更に参照して、デコーダモジュール124は、ビットストリームから1つ又は複数の画像フレームを決定し、1つ又は複数の画像フレームに対応する第1のパラメータセットを決定することができる。ビットストリームは、1つ又は複数の画像フレームを除く他の画像フレームの内の1つ又は複数に対応する第2のパラメータセットを更に含むことができる。第1のパラメータセット及び第2のパラメータセットの両方は、VPS、SPS、PPS、及びPHの内の1つであってよい。
【0080】
デコーダモジュール124は、1つ又は複数の画像フレームに対応する第1のパラメータセットから最大インデックスを決定することができる。従って、最大インデックスは、1つ又は複数の画像フレームにも対応する。第1のパラメータセットがSPSのとき、最大インデックスは、SPSに含まれてもよい。
【0081】
最大インデックスは、ゼロ以上のマージ動きベクトル予測子(MVP)候補の最大数を計算するために使用される。最大数は、MaxNumMergeCandとして表すことができる。最大インデックスのインデックス値は、0からN2のインデックス範囲であってよい。数値N2は、整数である。
【0082】
最大インデックスがSPSに含まれているとき、最大インデックスは、インデックスsps_N2_minus_max_num_merge_candであってよい。最大インデックスは、最大インデックスがSPSに含まれ、数N2が6に等しいとき、インデックスsps_six_minus_max_num_merge_candであってよい。最大インデックスがPPSに含まれ、数N2が5に等しいとき、最大インデックスは、インデックスpps_five_minus_max_num_merge_candであってよい。
【0083】
ブロック430において、デコーダモジュール124は、最大インデックスに基づいて、ゼロ以上のマージMVP候補の最大数を決定する。最大数は、1つ又は複数の画像フレームに対応し、ゼロを含む値範囲内にある最大数の数値を有する。
【0084】
最大数は、数N2から最大インデックスを減算することによって計算することができる。従って、最大数は、数N2が6に等しいとき、6から最大インデックスを減算することによって計算されてよい。換言すると、数N2が6に等しいとき、最大数MaxNumMergeCandは、以下のように導出されてもよい:
MaxNumMergeCand = 6-sps_six_minus_max_num_merge_cand。
【0085】
最大インデックスのインデックス値は、0からN2のインデックス範囲であってよい。従って、最大数の値は、0からN2の値範囲内であり、0は、値範囲内に含まれる。最大数の値は、数N2が6に等しい場合、0から6の値範囲内にある。
【0086】
デコーダモジュール124は、最大数が値範囲内に含まれるかを決定することができる。デコーダモジュール124は、最大数が値範囲から除外されるとデコーダモジュール124が決定したとき、ビデオデータがデコーダモジュール124に準拠していないと決定することができる。従って、デコーダモジュール124は、前記1つ又は複数の画像フレームのエラー信号を出力することができる。
【0087】
デコーダモジュール124は、最大インデックスがインデックス範囲内に含まれるかどうかを決定することができる。デコーダモジュール124は、最大インデックスがインデックス範囲から除外されるとデコーダモジュール124が決定したとき、ビデオデータがデコーダモジュール124に準拠していないと決定することができる。従って、デコーダモジュール124は、1つ又は複数の画像フレームのエラー信号を出力することができる。
【0088】
ブロック440において、デコーダモジュール124は、最大数に基づいて1つ又は複数の画像フレームを再構成する。図1及び図2を更に参照すると、デコーダモジュール124は、ゼロ以上のマージMVP候補を含む複数のモード候補から、1つ以上の画像フレーム内の複数の画像ブロックの各々のために予測モードを選択し、予測モードに基づいて複数の予測されたブロックを決定することができる。ゼロ以上のマージMVP候補は、ゼロ以上の複数の空間MVP候補、複数の一時的MVP候補、複数の履歴ベースMVP候補、複数のペアワイズ平均MVP候補、及びゼロMV候補を含むことができる。空間MVP候補は、空間隣接ブロックの動きベクトルから決定されてもよく、一時的MVP候補は、並置されたブロックの動きベクトルから決定されてもよく、履歴ベースのMVP候補は、先入れ先出し(FIFO)表から決定されてもよい。
【0089】
デコーダモジュール124は、各画像ブロックのためにビットストリームから複数の残差成分を決定し、残差成分を予測されたブロックの対応する1つに追加し、画像ブロックを再構成することができる。デコーダモジュール222は、ビデオ画像を再構成するために画像フレームの全てを再構成することができる。
【0090】
HEVC及びVVCといった、ビデオコーディング規格において、インター予測モードが有効化されるとき、マージMVP候補を含む通常マージモードも有効化され得る。しかしながら、マージ候補を復号化し構築するためのプロセスは、通常インターモードを復号化するためのプロセスよりも複雑であり得る。従って、パイプライン遅延も問題であり、パイプライン遅延を低減するために、通常マージモードは、直接的に無効化され得る。
【0091】
通常マージモードは、VPS、SPS、PPSといった高レベルシンタックスによって直接的に無効化することができる。ゼロが値範囲内に含まれるとき、最大数は、通常マージモードを直接的に無効化するためにゼロに等しくてよい。従って、通常マージモードは、最大インデックスを含む第1のパラメータセットが1つ又は複数の画像フレームに対応するため、最大インデックスによってのみ1つ又は複数の画像フレームで無効化することが許される。
【0092】
図5は、本開示の一実施形態に従った、電子デバイスによるビデオデータを復号化するための方法500のフローチャートを示す。方法500は、ビデオデータを復号化するための様々な方法が存在するため、一実施例にすぎない。
【0093】
ビットストリームを復号化し、ブロックユニットを再構成するための方法500は、図1及び図2に示される設定を使用して実行されてもよく、これらの図の様々な要素は、方法500に関して参照される。図5に示される各ブロックは、実行される1つ又は複数のプロセス、方法、又はサブルーチンを表すことができる。
【0094】
図5内のブロックの順序は、例示的なものにすぎず、変更することができる。本開示から逸脱することなく、追加のブロックは、追加されてよく、又はより少ないブロックが利用されてよい。
【0095】
ブロック510において、デコーダモジュール124は、ビデオデータを受信する。ビデオデータは、ビットストリームであってよい。図1及び図2を参照すると、第2の電子デバイス120は、第1の電子デバイス110といったエンコーダ、又は第2のインターフェース126を介して他のビデオプロバイダーからビットストリームを受信することができる。第2のインターフェース126は、ビットストリームをデコーダモジュール124に提供することができる。
【0096】
ブロック520において、デコーダモジュール124は、ビデオデータからの1つ又は複数の画像フレームに対応する通常マージ有効化フラグを決定する。更に図1及び図2を参照すると、デコーダモジュール124は、ビットストリームから1つ又は複数の画像フレームを決定し、1つ又は複数の画像フレームに対応する第1のパラメータセットを決定することができる。第1のパラメータセットは、複数の第1の予測インディケーション及び複数の第1の分割インディケーションを含むことができる。ビットストリームは、1つ又は複数の画像フレームを除く他の画像フレームの内の1つ又は複数に対応する第2のパラメータセットを更に含むことができる。
【0097】
第1のパラメータセット及び第2のパラメータセットの両方は、VPS、SPS、PPS、及びPHの内の1つであり得る。例えば、通常マージ有効化フラグがSPSに含まれているとき、通常マージ有効化フラグは、フラグsps_regular_merge_enabled_flagであってよい。
【0098】
デコーダモジュール124は、ビットストリームの第1のパラメータセットからの1つ又は複数の画像フレームに対応する通常マージ有効化フラグを決定することができる。通常マージ有効化フラグは、1つ又は複数の画像フレームのために通常マージモードが有効かどうかを決定するために使用される。ビットストリーム内のブロックベースシンタックスは、通常マージ有効化フラグが1に等しいとき、1つ又は画像フレームの1つから分割された画像ブロックのために通常マージモードが使用されるかどうかを決定するためのブロックベース通常マージフラグを更に含んでもよい。
【0099】
通常マージモードは、複数のマージMVP候補を含むことができる。マージMVP候補は、複数の空間MVP候補、複数の一時的MVP候補、複数の履歴ベースMVP候補、複数のペアワイズ平均MVP候補、及びゼロMV候補をゼロ以上含むことができる。空間MVP候補は、空間隣接ブロックの動きベクトルから決定されてもよく、一時的MVP候補は、並置されたブロックの動きベクトルから決定されてもよく、履歴ベースのMVP候補は、FIFO表から決定されてもよい。
【0100】
通常マージ有効化フラグが存在しないとき、通常マージ有効化フラグは、ゼロに等しいと推測される。換言すると、デコーダモジュール124は、通常マージ有効化フラグが存在しないとき、通常マージ有効化フラグが偽であると決定してよい。
【0101】
ブロック530において、デコーダモジュール124は、通常マージ有効化フラグが真であるかどうかを決定する。方法500は、通常マージ有効化フラグが真であるとデコーダモジュール124が決定したとき、ブロック540に進むことができる。方法500は、通常マージ有効化フラグが偽であるとデコーダモジュール124が決定したとき、ブロック550に進むことができる。
【0102】
デコーダモジュール124は、通常マージ有効化フラグが1に等しいとき、通常マージ有効化フラグが真であると決定する。デコーダモジュール124は、通常マージ有効化フラグがゼロに等しいとき、通常マージ有効化フラグが偽であると決定する。通常マージ有効化フラグは、通常マージ有効化フラグがSPSに含まれているとき、フラグsps_regular_merge_enabled_flagであってよい。
【0103】
ブロック540において、デコーダモジュール124は、ビデオデータから1つ又は複数の画像フレームに対応する最大インデックスを決定する。図1及び図2に更に参照して、デコーダモジュール124は、通常マージ有効化フラグが真であるとき、1つ又は複数の画像フレームに対応する第1のパラメータセットから最大インデックスを決定することができる。従って、最大インデックスは、1つ又は複数の画像フレームにも対応する。通常マージ有効化フラグがSPSに含まれているとき、最大インデックスは、SPSに含まれる。
【0104】
最大インデックスは、通常マージ有効化フラグが真のとき、マージMVP候補のゼロ以上の最大数を計算するために使用される。最大数は、MaxNumMergeCandとして表すことができる。
【0105】
最大インデックスのインデックス値は、0からN3-Pのインデックス範囲であってよい。数N3は、第1の整数であってよく、数Pは、数N3より小さい第2の整数であってよい。
【0106】
最大インデックスがSPSに含まれているとき、最大インデックスは、インデックスsps_N3_minus_max_num_merge_candであってよい。最大インデックスは、最大インデックスがSPSに含まれ、数N3が6に等しいとき、インデックスsps_six_minus_max_num_merge_candであってよい。最大インデックスがPPSに含まれ、数Nが5に等しいとき、最大インデックスは、インデックスpps_five_minus_max_num_merge_candであってよい。
【0107】
数Pは、正の整数であってよい。例えば、数Pは、1に等しくてよい。数Pが1に等しく、数N3が6に等しいとき、最大インデックスのインデックス値は、0から5のインデックス範囲内であってよい。
【0108】
ブロック550において、デコーダモジュール124は、ビデオデータから最大インデックスを決定することなく、1つ又は複数の画像フレームのために、ゼロに等しいゼロ以上のマージMVP候補の最大数を決定する。
【0109】
通常マージ有効化フラグが偽であるとき、最大数は、ビデオデータから最大インデックスを決定せずに、ゼロとして直接的に決定される。通常マージ有効化フラグが偽であるとき、通常マージモードは、1つ又は複数の画像フレーム内で無効になる。従って、1つ又は複数の画像フレームから分割された複数のブロックの全てを予測するために、マージMVP候補の全ては、使用することはできず、通常マージ有効化フラグが偽であるとき、第1のパラメータセットからの任意のフラグ又はインデックスを更にパリングすることなく、最大数は、直接的にゼロとしてセットすることができる。
【0110】
ブロック560において、デコーダモジュール124は、最大インデックスに基づいて最大数を決定する。最大数は、通常マージ有効化フラグが真であるとき、数N3から最大インデックスを減算することによって計算できる。従って、通常マージ有効化フラグが真であり、数N3が6に等しいとき、最大数は、6から最大インデックスを減算することによって計算できる。換言すると、通常マージ有効化フラグが真であり、数N3が6に等しいとき、最大数MaxNumMergeCandは、以下のように導出されてよい:
MaxNumMergeCand = 6-sps_six_minus_max_num_merge_cand。
【0111】
最大インデックスのインデックス値は、0からN3-Pのインデックス範囲であってよい。従って、通常有効化フラグが真であるとき、最大数の値は、PからN3の値範囲内である。通常マージ有効化フラグが真であり、数N3は、6に等しく、数Pは、1に等しいとき、最大数の値は、1から6の値範囲内にある。従って、通常マージ有効化フラグが真であるとき、最大数は、ゼロに等しくないことがある。
【0112】
図5内のブロック530-560を参照すると、最大数MaxNumMergeCandは、以下のように導出され得る:
【0113】
【数2】
【0114】
デコーダモジュール124は、最大数が値範囲内に含まれるかどうかを決定することができる。最大数が値範囲から除外されるとデコーダモジュール124が決定したとき、デコーダモジュール124は、ビデオデータがデコーダモジュール124に準拠していないと決定することができる。従って、デコーダモジュール124は、1つ又は複数の画像フレームのエラー信号を出力することができる。
【0115】
デコーダモジュール124は、最大インデックスがインデックス範囲内に含まれるかどうかを決定することができる。最大インデックスがインデックス範囲から除外されるとデコーダモジュール124が決定したとき、デコーダモジュール124は、ビデオデータがデコーダモジュール124に準拠していないと決定することができる。従って、デコーダモジュール124は、1つ又は複数の画像フレームのエラー信号を出力することができる。
【0116】
ブロック570において、デコーダモジュール124は、ゼロ以上のマージMVP候補の最大数に基づいて、1つ又は複数の画像フレームを再構成する。
【0117】
図1及び図2を更に参照すると、デコーダモジュール124は、ゼロ以上のマージMVP候補を含む複数のモード候補から、1つ以上の画像フレーム内の複数の画像ブロックのそれぞれのために予測モードを選択し、予測モードに基づいて複数の予測ブロックを決定することができる。デコーダモジュール124は、各画像ブロックのためにビットストリームから複数の残差成分を決定し、残差成分を予測されたブロックの対応する1つに追加し、画像ブロックを再構成することができる。デコーダモジュール222は、ビデオ画像を再構成するために画像フレームの全てを再構成することができる。
【0118】
通常マージモードは、VPS、SPS、PPSといった高レベルシンタックスによって直接的に無効化され、パイプライン遅延を減少させることができる。従って、高レベルシンタックスは、マージMVP候補が1つ又は複数の画像フレーム内で有効になっているかどうかを決定するために、通常マージ有効化フラグを含むことができる。その上、通常マージモードが、通常マージ有効化フラグによって直接的に無効化されうるため、通常マージモードを無効化するために最大数の値範囲は、ゼロを含む必要はない。従って、数Pは、1といった、正の整数であってよい。
【0119】
図6は、本開示の一実施形態に従った、電子デバイスによるビデオデータを復号化する方法600のフローチャートを示す。方法600は、方法を実行する様々な方法が存在するため、一実施例にすぎない。
【0120】
ビットストリームを復号化し、ブロックユニットを再構成するための方法600は、図1及び図2に示される構成を使用して実行されてもよく、これらの図の様々な要素は、方法600に関して参照される。図6に示される各ブロックは、実行される1つ又は複数のプロセス、方法、又はサブルーチンを表すことができる。
【0121】
図6内のブロックの順序は、例示的なものにすぎず、変更することができる。本開示から逸脱することなく、追加のブロックは、追加されてよく、又はより少ないブロックは、利用されてよい。
【0122】
ブロック610において、デコーダモジュール124は、ビデオデータを受信する。ビデオデータは、ビットストリームであってよい。図1及び図2を参照すると、第2の電子デバイス120は、第1の電子デバイス110といった、エンコーダ、又は第2のインターフェース126を介して他のビデオプロバイダーからビットストリームを受信することができる。第2のインターフェース126は、ビットストリームをデコーダモジュール124に提供することができる。
【0123】
ブロック620において、デコーダモジュール124は、ビデオデータからイントラブロックコピー(IBC)有効化フラグを決定する。更に図1及び図2を参照すると、デコーダモジュール124は、ビットストリームから1つ又は複数の画像フレームを決定し、1つ又は複数の画像フレームに対応する第1のパラメータセットを決定することができる。第1のパラメータセットは、VPS、SPS、PPS、及びPHの内の1つであってよい。例えば、IBC有効化フラグがSPSに含まれるとき、IBC有効化フラグは、フラグsps_ibc_enabled_flagであってよい。
【0124】
デコーダモジュール124は、ビットストリームからIBC有効化フラグを決定してよい。デコーダモジュール124は、ビットストリーム内にセットされた第1のパラメータからIBC有効化フラグを決定してよい。第1のパラメータセットが一つ又は複数の画像フレームに対応するため、IBC有効化フラグは、一つ又は複数の画像フレームにも対応することがある。
【0125】
IBC有効化フラグは、1つ又は複数の画像フレームのためにIBC予測モードが有効化されることを決定するために使用される。IBC予測モードは、ブロックレベルコーディングモードとして実行される。従って、一つ又は複数の画像フレームから分割された複数の画像ブロックの各々のために、最適なブロックベクトルを見つけるために、エンコーダでブロックマッチングは、行われる。ブロックベクトルは、現在の画像フレーム内の現在の画像ブロックから、現在の画像内で既に再構成されている参照画像ブロックへの変位を示すために使用される。
【0126】
ブロック630において、デコーダモジュール124は、IBC有効化フラグが真であるかどうかを判定する。方法600は、IBC有効化フラグが真であるとデコーダモジュール124が決定したとき、ブロック640に進むことができる。方法600は、IBC有効化フラグが偽であるとデコーダモジュール124が決定したとき、ブロック650に進むことができる。
【0127】
IBC有効化フラグが1に等しいとき、デコーダモジュール124は、IBC有効化フラグが真であると決定する。IBC有効化フラグがゼロに等しいとき、デコーダモジュール124は、IBC有効化フラグが偽であると決定する。IBC有効化フラグがSPSに含まれているとき、IBC有効化フラグは、フラグsps_ibc_enabled_flagであってよい。
【0128】
ブロック640において、デコーダモジュール124は、ビデオデータから最大インデックスを決定する。図1及び図2を更に参照すると、デコーダモジュール124は、IBC有効化フラグが真であるとき、ビデオデータから最大インデックスを決定することができる。最大インデックスは、VPS、SPS、PPS、及びPHの内の1つに含まれてよい。
【0129】
最大インデックスは、IBC有効化フラグが真であるとき、ゼロ以上のIBCマージブロックベクトル予測子(BVP)候補の最大数を計算するために使用されてよい。最大数は、MaxNumIbcMergeCandとして表すことができる。
【0130】
最大インデックスのインデックス値は、0からN4のインデックス範囲であり得る。数N4は、整数であってよい。
【0131】
最大インデックスがSPSに含まれているとき、最大インデックスは、インデックスsps_N4_minus_max_ibc_num_merge_candであってよい。最大インデックスは、最大インデックスがSPSに含まれ、数Nが6に等しいとき、インデックスsps_six_minus_max_ibc_num_merge_candであってよい。最大インデックスがPPSに含まれ、数Nが5に等しいとき、最大インデックスは、インデックスpps_five_minus_max_ibc_num_merge_candであってよい。
【0132】
ブロック650において、デコーダモジュール124は、ビデオデータから最大インデックスを決定せずに、ゼロ以上のIBCマージBVP候補の最大数がゼロに等しいことを決定する。最大数は、数N4から最大インデックスを減算することによって計算することができる。従って、数N4が6に等しいとき、最大数は、6から最大インデックスを減算することによって計算されてよい。換言すると、数N4が6に等しいとき、最大数MaxNumIbcMergeCandは、以下のように導出されてよい:
MaxNumIbcMergeCand = 6 - sps_six_minus_max_ibc_num_merge_cand。
【0133】
最大インデックスのインデックス値は、0からN4のインデックス範囲であってよい。従って、最大数の値は、0からN4の値範囲内であってよく、ゼロは、値範囲内に含まれる。最大数の値は、数N4が6に等しいとき、0から6の値範囲内であってよい。
【0134】
ブロック660において、デコーダモジュール124は、最大インデックスに基づいて最大数を決定し、最大数は、ゼロを含む値範囲内の数値を有する。最大数は、IBC有効化フラグが真のとき、数N4から最大インデックスを減算することによって計算できる。従って、IBC有効化フラグが真であり、数N4が6に等しいとき、最大数は、6から最大インデックスを減算することによって計算できる。換言すると、最大数MaxNumIbcMergeCandは、以下のように導出されてよい:
MaxNumIbcMergeCand = 6 - sps_six_minus_max_ibc_num_merge_cand。
【0135】
最大インデックスのインデックス値は、0からN4のインデックス範囲であってよい。従って、IBC有効化フラグが真であるとき、最大数の値は、0からN4の値範囲内であってよい。したがって、IBC有効化フラグが真であるとき、ゼロは、値範囲内に依然として含まれる。一実施形態において、数N4が6に等しいとき、最大数の値は、0から6の値範囲であってよい。
【0136】
図6内のブロック630-660を参照すると、最大数MaxNumIbcMergeCandは、以下のように導出されてよい:
【0137】
【数3】
【0138】
デコーダモジュール124は、最大数が値範囲内に含まれるかどうかを決定することができる。最大数が値範囲から除外されるとデコーダモジュール124が決定したとき、デコーダモジュール124は、ビデオデータがデコーダモジュール124に準拠していないと決定することができる。従って、デコーダモジュール124は、エラー信号を出力することができる。
【0139】
IBC有効化フラグが真であるとき、デコーダモジュール124は、最大インデックスがインデックス範囲内に含まれるかどうかを決定することができる。最大インデックスがインデックス範囲から除外されるとデコーダモジュール124が決定したとき、デコーダモジュール124は、ビデオデータがデコーダモジュール124に準拠していないと決定することができる。従って、デコーダモジュール124は、エラー信号を出力することができる。
【0140】
ブロック670において、デコーダモジュール124は、最大数に基づいて、画像フレームから分割され、最大数に対応する画像ブロックを再構成する。
【0141】
更に図1及び図2を参照すると、デコーダモジュール124は、ゼロ以上のIBCマージBVP候補を含む複数のモード候補から、1つ以上の画像フレームの内の1つから分割された画像ブロックの予測モードを選択し、予測モードに基づいて予測されたブロックを決定することができる。ゼロ以上のIBCマージBVP候補は、ゼロ以上の複数の空間IBC MVP候補、複数の履歴ベースMVP候補、及び複数のペアワイズ平均MVP候補を含むことができる。
【0142】
空間MVP候補は、空間隣接ブロックの動きベクトルから決定されてもよく、履歴ベースのMVP候補は、FIFO表から決定されてもよい。デコーダモジュール124は、画像ブロックのビットストリームから複数の残差成分を決定し、残差成分を予測ブロックに追加して画像ブロックを再構成することができる。
【0143】
デコーダモジュール222は、ビデオ画像を再構成するために画像フレームの全てを再構成することができる。HEVC及びVVCといった、ビデオコーディング規格において、IBC予測モードは、IBCインターモード及びIBCマージ候補を有するIBCマージモードを含むことができる。しかしながら、IBCマージBVP候補を復号化し、構築するためのプロセスは、IBCインターモードを復号化するためのプロセスよりも複雑であり得る。従って、パイプライン遅延も問題であり、パイプライン遅延を低減するためにIBCマージモードを直接的に無効化することができる。
【0144】
IBCマージモードは、VPS、SPS、PPSといった、高レベルシンタックスによって直接的に無効化することができる。ゼロが値範囲内に含まれるとき、最大数は、IBCマージモードを直接的に無効化するためにゼロに等しくなるように許可されてもよい。従って、最大インデックス及びIBC有効化フラグの両方が第1のパラメータに含まれているとき、IBCマージモードは、1つ又は複数の画像フレームにおいて1つの最大インデックスのみによって無効化することができる。
【0145】
例えば、最大インデックス及びIBC有効化フラグの両方は、SPSに含まれる。IBC有効化フラグのシンタックスレベルが最大インデックスのシンタックスレベルよりも高い場合、IBCマージモードは、1又は複数の画像フレームの一部で異なる最大インデックスによって無効化することができる。例えば、最大インデックスは、PPSに含まれ、IBC有効化フラグは、SPSに含まれる。
【0146】
図7は、本開示の一実施形態に従って、電子デバイスによってビデオデータを復号化するための方法700のフローチャートを示す。方法700は、ビデオデータを復号化するための様々な方法が存在するため、一実施例にすぎない。
【0147】
ビットストリームを復号化し、ブロックユニットを再構成するための方法700は、図1及び図2に示される設定を使用して実行されてもよく、これらの図の様々な要素は、方法700に関して参照される。図7に示される各ブロックは、実行される1つ又は複数のプロセス、方法、又はサブルーチンを表すことができる。
【0148】
図7内のブロックの順序は、例示的なものにすぎず、変更することができる。本開示から逸脱することなく、追加のブロックは、追加されてよく、又はより少ないブロックは、利用されてもよい。
【0149】
ブロック710において、デコーダモジュール124は、ビデオデータを受信する。ビデオデータは、ビットストリームであってよい。図1及び図2を参照すると、第2の電子デバイス120は、第1の電子デバイス110といった、エンコーダ、又は第2のインターフェース126を介して他のビデオプロバイダーからビットストリームを受信することができる。第2のインターフェース126は、ビットストリームをデコーダモジュール124に提供することができる。
【0150】
ブロック720において、デコーダモジュール124は、ビデオデータから、複数のマージモードの全てが有効であるかどうかを示す汎用マージ有効化フラグを決定する。更に図1及び図2を参照すると、デコーダモジュール124は、ビットストリームから1つ又は複数の画像フレームを決定し、1つ又は複数の画像フレームに対応する第1のパラメータセットを決定することができる。第1のパラメータセットは、VPS、SPS、PPS、及びPHの内の1つであってよい。
【0151】
デコーダモジュール124は、ビットストリームから汎用マージ有効化フラグを決定することができる。デコーダモジュール124は、ビットストリーム内にセットされた第1のパラメータから汎用マージ有効化フラグを決定してよい。第1のパラメータセットは、一つ又は複数の画像フレームに対応するため、汎用マージ有効化フラグは、一つ又は複数の画像フレームにも対応してよい。
【0152】
汎用マージ有効化フラグは、一つ又は複数の画像フレームのために有効化されたマージモードの全てを決定するために使用されることがある。マージモードは、通常マージモード、アフィンマージモード、IBCマージモード、及び他のマージモードを含むことができる。
【0153】
汎用マージ有効化フラグが偽のとき、全てのマージモードは、1つ又は複数のマージモードで無効になってよい。汎用マージ有効化フラグが真のとき、マージモードは、1つ又は複数のマージモードで有効になってよい。汎用マージ有効化フラグが真のとき、その他のフラグがあるため、ゼロ以上のマージモードは、1つ又は複数のマージモードにおいて、無効になってよい。例えば、汎用マージ有効化フラグが真のとき、IBC有効化フラグがあるため、IBCマージモードは、無効になってよい。
【0154】
汎用マージ有効化フラグが存在しないとき、汎用マージ有効化フラグは、ゼロに等しいと推論される。換言すると、汎用マージ有効化フラグが存在しないとき、デコーダモジュール124は、汎用マージ有効化フラグがゼロに等しいと推論されることを決定してよい。
【0155】
ブロック730において、デコーダモジュール124は、汎用マージ有効化フラグに基づいて、マージモードの特定の1つにおいてゼロ以上の特定マージ候補の最大数を決定する。図1及び図2を更に参照すると、デコーダモジュール124は、最大数のために、1つ又は複数の画像フレームに対応する第1のパラメータセットから最大インデックスを決定することができる。従って、最大インデックスは、1つ又は複数の画像フレームにも対応する。第1のパラメータセットがSPSであるとき、最大インデックスは、SPSに含まれる。しかしながら、最大インデックスが存在しないとき、最大インデックスは、推定値に等しくてよい。
【0156】
最大インデックスは、特定マージモードにおいてゼロ以上の特定マージ候補の最大数を計算するために使用される。最大インデックスのインデックス値は、インデックス範囲内にあってよく、従って、最大数の値は、値範囲内にあってよい。ビデオデータがデコーダモジュール124に準拠しているかどうかを決定するために、デコーダモジュール124は、最大数を値範囲と比較する、又は最大インデックスをインデックス範囲と比較することができる。
【0157】
一実施形態において、特定マージモードが通常マージモードであるとき、最大インデックスは、ゼロ以上のマージMVP候補の最大数を計算するために使用されてよい。最大数は、MaxNumMergeCandとして表すことができる。最大インデックスがSPSに含まれているとき、最大インデックスは、インデックスsps_N5_minus_max_num_merge_candであってよい。数N5は、正の整数であってよい。
【0158】
汎用マージ有効化フラグが真であるとき、デコーダモジュール124は、ビデオデータから通常マージモードの最大インデックスを決定してよい。汎用マージ有効化フラグが偽であるとき、デコーダモジュール124は、ビデオデータから最大インデックスをパーシングせずに、最大インデックスの推論された値が数N5に等しいと決定してよい。
【0159】
最大インデックスがSPSに含まれ、数N5が6に等しいとき、最大インデックスは、インデックスsps_six_minus_max_num_merge_candであってよい。通常マージモードの最大数は、数N5から最大インデックスを減算することによって計算することができる。従って、最大数MaxNumMergeCandは、以下のように導出されてよい:
【0160】
【数4】
【0161】
一実施形態において、特定マージモードがアフィンマージモードであるとき、最大インデックスは、ゼロ以上のサブブロックベースのマージMVP候補の最大数を計算するために使用されてよい。最大数は、MaxNumSubblockMergeCandとして表すことができる。最大インデックスがSPSに含まれているとき、最大インデックスは、インデックスsps_N6_minus_max_num_subblock_merge_candであってよい。数N6は、正の整数であってよい。
【0162】
アフィン有効化フラグ及び汎用マージ有効化フラグの両方が真であるとき、デコーダモジュール124は、ビデオデータから最大インデックスを決定してよい。アフィン有効化フラグ又は汎用マージモードが偽であるとき、デコーダモジュール124は、最大インデックスをパーシングせずに、推論された値が数N6に等しいと決定してよい。最大インデックスがSPSに含まれ、数N6が5に等しいとき、アフィンマージモードの最大インデックスは、インデックスsps_five_minus_max_num_subblock_merge_candであってよい。
【0163】
アフィン有効化フラグが真であるとき、アフィンマージモードの最大数は、数N6から最大インデックスを減算することによって計算されてよい。アフィン有効化フラグが偽であるとき、アフィンマージモードの最大数は、汎用マージ有効化フラグ、サブブロックベース一時的MVP(sbTMVP)フラグ、及び一時的MVP(TMVP)フラグに基づいて計算することができる。例えば、最大数MaxNumSubblockMergeCandは、以下のように導出されてよい:
【0164】
【数5】
【0165】
一実施形態において、特定マージモードがIBCマージモードであるとき、最大インデックスは、ゼロ以上のIBCマージBVP候補の最大数を計算するために使用されてよい。最大数は、MaxNumIbcMergeCandとして表すことができる。最大インデックスがSPSに含まれているとき、最大インデックスは、インデックスsps_N7_minus_max_ibc_num_merge_candであってよい。数N7は、正の整数であってよい。
【0166】
IBC有効化フラグ及び汎用マージ有効化フラグの両方が真であるとき、デコーダモジュール124は、ビデオデータから最大インデックスを決定してよい。IBC有効化フラグ又は汎用マージモードが偽のとき、デコーダモジュール124は、最大インデックスをパーシングせずに、推論された値が数N7に等しいと決定してよい。
【0167】
最大インデックスがSPSに含まれ、数N7が6に等しいとき、IBCマージモードの最大インデックスは、インデックスsps_six_minus_max_ibc_num_merge_candであってよい。IBC有効化フラグが真のとき、IBCマージモードの最大数は、数N7から最大インデックスを減算することによって計算できる。アフィン有効化フラグが偽のとき、IBCマージモードの最大数は、汎用マージ有効化フラグに基づいて決定できる。例えば、最大数MaxNumIbcMergeCandは、次のように導出されてよい:
【0168】
【数6】
【0169】
別の実施形態において、デコーダモジュール124は、汎用マージ有効化フラグに基づいて、方法700の第1から第3の実施形態の少なくとも2つに従って、異なるマージモードに対してそれぞれ複数の最大数を決定してよい。例えば、デコーダモジュール124は、汎用マージ有効化フラグに基づいて、通常マージモードの最大数及びIBCマージモードの最大数を決定することができる。
【0170】
ブロック740において、デコーダモジュール124は、最大数に基づいて、画像フレームから分割された画像ブロックを再構成する。図1及び図2を更に参照すると、デコーダモジュール124は、ゼロ又は複数の固有のマージ候補を含む複数のモード候補から、1又は複数の画像フレーム中の複数の画像ブロックの各々について予測モードを選択し、予測モードに基づいて複数の予測ブロックを決定することができる。デコーダモジュール124は、画像ブロックの各々のためにビットストリームから複数の残差成分を決定し、残差成分を予測ブロックの対応する1つに加算して、画像ブロックを再構成することができる。デコーダモジュール222は、ビデオ画像を再構成するために画像フレームの全てを再構成することができる。
【0171】
全てのマージモードは、VPS、SPS、PPSといった、高レベルシンタックスによって直接的に無効化され、パイプライン遅延を削減できる。従って、高レベルシンタックスは、全てのマージモードが1つ又は複数の画像フレームにおいて有効であるか否かを決定するために、汎用マージ有効化フラグを含むことができる。その上、マージモードの各最大数は、コーディング効率を更に向上させるために、汎用マージ有効化フラグによって制御されてもよい。
【0172】
図8は、本開示の一実施形態に従った、図1に示される第1の電子デバイスのエンコーダモジュール114のブロック図を示す。エンコーダモジュール114は、予測プロセッサ(例えば、予測プロセスユニット8141)、少なくとも第1の加算器(例えば、第1の加算器8142)及び第2の加算器(例えば、第2の加算器8145)、変換/量子化プロセッサ(例えば、変換/量子化ユニット8143)、逆量子化/逆変換プロセッサ(例えば、逆量子化/逆変換ユニット8144)、フィルタ(例えば、フィルタリングユニット8146)、復号化された画像バッファ(例えば復号化された画像バッファ8147)、エントロピーエンコーダ(例えば、エントロピー符号化ユニット8148)を含んでよい。エンコーダモジュール114の予測プロセスユニット8141は、分割プロセッサ(例えば、分割ユニット81411)、イントラ予測プロセッサ(例えば、イントラ予測ユニット81412)、及びインター予測プロセッサ(例えば、インター予測ユニット81413)を更に含むことができる。
【0173】
エンコーダモジュール114は、ソースビデオを受信し、ビットストリームを出力するためにソースビデオを符号化することができる。エンコーダモジュール114は、複数の画像フレームを含むソースビデオを受信し、次いで、符号化構造に従って画像フレームを分割することができる。各画像フレームは、少なくとも1つの画像ブロックに分割されてよい。
【0174】
少なくとも1つの画像ブロックは、複数の輝度サンプルを有する輝度ブロックと、複数の色差サンプルを有する少なくとも1つの色差ブロックとを含み得る。輝度ブロック及び少なくとも1つの色差ブロックは、マクロブロック、コーディングツリーユニット(CTU)、コーディングブロック(CB)、そのサブ分割、及び/又は別の同等のコーディングユニットを生成するために、更に分割されてよい。
【0175】
エンコーダモジュール114は、ソースビデオの追加のサブ分割を実行することができる。開示された実施形態は、符号化の前に及び/又は間にソースビデオがどのように分割されるかにかかわらず、一般にビデオコーディングに適用可能であることに留意されたい。
【0176】
符号化プロセスの間、予測プロセスユニット8141は、画像フレームの内の特定の1つの画像フレームの現在の画像ブロックを受信することができる。現在の画像ブロックは、特定の画像フレーム内の輝度ブロックであっても、色差ブロックの一つであってもよい。
【0177】
分割ユニット81411は、現在の画像ブロックを複数のブロックユニットに分割する。イントラ予測ユニット81412は、空間予測を提供するために、現在のブロックユニットと同じフレーム内の1つ又は複数の隣接ブロックに対する現在のブロックユニットのイントラ予測コーディングを実行してよい。インター予測ユニット81413は、1つ又は複数の参照画像ブロック内の1つ又は複数のブロックに対して、現在のブロックユニットのインター予測コーディングを実行して、一時的予測を提供してよい。
【0178】
予測プロセスユニット8141は、コスト関数といった、モード選択方法に基づいて、イントラ予測ユニット81412及びインター予測ユニット81413によって生成されるコーディング結果の内の1つを選択してよい。モード選択方法は、レート歪み最適化(RDO)プロセスであってよい。
【0179】
予測プロセスユニット8141は、選択されたコーディング結果を決定し、残留ブロックを生成するための第1の加算器8142と、符号化されたブロックユニットを再構築するための第2の加算器8145とに、選択されたコーディング結果に対応する予測されたブロックを提供してよい。予測プロセスユニット8141は、動きベクトル、イントラモードインジケータ、分割情報、及び他のシンタックス情報といった、シンタックス要素をエントロピー符号化ユニット8148に更に提供することができる。
【0180】
イントラ予測ユニット81412は、現在のブロックユニットをイントラ予測することができる。イントラ予測ユニット81412は、現在のブロックユニットを符号化するために、現在のブロックユニットに隣接する再構築されたサンプルに向けられたイントラ予測モードを決定することができる。
【0181】
イントラ予測ユニット81412は、様々なイントラ予測モードを使用して、現在のブロックユニットを符号化することができる。イントラ予測ユニット81412又は予測プロセスユニット8141は、選択されたモードから、適切なイントラ予測モードを選択することができる。イントラ予測ユニット81412は、交差成分予測モードを使用して、現在のブロックユニットのルマ成分に基づいて、現在のブロックユニットの2つのクロマ成分のうちの1つを予測するために、現在のブロックユニットを符号化することができる。イントラ予測ユニット81412は、現在のブロックユニットの2つのクロマ成分の内の2番目のクロマ成分に基づいて、現在のブロックユニットの2つのクロマ成分の内の1番目の1つを予測することができる。
【0182】
インター予測ユニット81413は、イントラ予測ユニット81412によって実行されるイントラ予測の代替として、現在のブロックユニットをインター予測してもよい。インター予測ユニット81413は、動き推定を実行し、動きベクトルを生成するための現在のブロックユニットの動きを推定してもよい。
【0183】
動きベクトルは、参照画像ブロック内の参照ブロックユニットに対する、現在の画像ブロックユニット内の現在のブロックユニットの変位を示すことができる。インター予測ユニット81413は、復号化された画像バッファ8147に保存された少なくとも1つの参照画像ブロックを受信し、受信された参照画像ブロックに基づいて動きを推定し、動きベクトルを生成することができる。
【0184】
第1の加算器8142は、予測プロセスユニット8141によって決定される予測ブロックを、元の現在のブロックユニットから減算することによって、残留ブロックを生成してもよい。第1の加算器8142は、この減算を実行する部品を表すことができる。
【0185】
変換/量子化ユニット8143は、残差変換係数を生成し、次いで、残差変換係数を量子化し、ビットレートを更に低減するために、残差ブロックに変換を適用してもよい。変換は、DCT、DST、AMT、MDNSST、HyGT、信号依存変換、KLT、ウェーブレット変換、整数変換、サブバンド変換、又は概念的に同様の変換の内の1つとすることができる。
【0186】
変換は、残差情報をピクセル値領域から、周波数ドメインといった、変換領域に変換することができる。量子化の度合いは、量子化パラメータを調整することによって修正されてもよい。
【0187】
変換/量子化ユニット8143は、量子化変換係数を含むマトリックスの走査を行ってよい。また、エントロピー符号化ユニット8148は、走査を行ってもよい。
【0188】
エントロピー符号化ユニット8148は、予測プロセスユニット8141及び変換/量子化ユニット8143から、量子化パラメータ、変換データ、動きベクトル、イントラモード、分割情報、及び他のシンタックス情報を含む複数のシンタックス要素を受信することができる。エントロピー符号化ユニット8148は、シンタックス要素をビットストリームに符号化してもよい。
【0189】
エントロピー符号化ユニット8148は、符号化されたビットストリームを生成するために、CAVLC、CABAC、SBAC、PIPEコーディング、又は別のエントロピーコーディング技法を実行することによって、量子化された変換係数をエントロピー符号化することができる。符号化されたビットストリームは、別のデバイス(すなわち、図1内の第2の電子デバイス120)に送信されてもよく、又は後の伝送又は検索のためにアーカイブされてもよい。
【0190】
逆量子化/逆変換ユニット8144は、逆量子化及び逆変換を適用し、後で参照ブロックとして使用するために、画素領域内の残留ブロックを再構成することができる。第2の加算器8145は、復号化された画像バッファ8147に格納するための再構成ブロックを生成するために、再構成された残差ブロックを、予測プロセスユニット8141から提供された予測ブロックに追加することができる。
【0191】
フィルタリングユニット8146は、再構成されたブロックからブロッキングアーチファクトを除去するために、デブロッキングフィルタ、SAOフィルタ、バイラテラルフィルタ、及び/又はALFを含むことができる。デブロッキングフィルタ、SAOフィルタ、バイラテラルフィルタ、及びALFに加えて、追加のフィルタ(ループ又はポストループ)を使用することができる。このようなフィルタは、簡潔にするために図示されておらず、第2の加算器8145の出力をフィルタリングすることができる。
【0192】
復号化された画像バッファ8147は、イントラ又はインターコーディングモードといった、ビデオを符号化するためのエンコーダモジュール114によって使用される参照ブロックを保存する参照画像メモリとすることができる。復号化された画像バッファ8147は、(SDRAM、MRAM、RRAM、又は他のタイプのメモリデバイスを含む)DRAMといった様々なメモリデバイスを含むことができる。復号化された画像バッファ8147は、エンコーダモジュール114の他の部品とオンチップであってもよく、又はこれらの部品に対してオフチップであってもよい。
【0193】
エンコーダモジュール114は、ビデオデータを受信し、複数の予測モードを使用し、ビデオデータ内の複数の画像フレームを予測することができる。予測モードは、複数のマージ候補を有する複数のマージモードを含んでよい。エンコーダモジュール114は、予測結果に基づいて、対応するモードが1つ以上の画像フレームに対して有効であるかどうかを決定するために、図3内のアフィン有効化フラグ、図5内の通常マージ有効化フラグ、図6内のIBC有効化フラグ、及び図7内の汎用マージ有効化フラグの内の少なくとも1つをシグナルし得る。
【0194】
エンコーダモジュール114は、予測結果に基づいて、対応する最大数を決定するために図3から7の方法300から700に対する最大インデックスをシグナルすることができる。その上、図3を参照すると、エンコーダモジュール114は、アフィンマージMVP候補の最大数を決定するために、サブブロックベース一時的MVPフラグ及び一時的MVPフラグをシグナルすることができる。次に、エンコーダモジュール114は、フラグ及びインデックスを含む符号化されたデータを、デコーダモジュール124に提供するためにビットストリームに追加することができる。
【0195】
開示された実施形態は、全ての点で、例示的なものと見なされるべきであり、限定的なものと見なされるべきではない。また、本開示は、特定の開示された実施形態に限定されず、本開示の範囲から逸脱することなく、多くの再設計、修正、及び置換が可能であることを理解されたい。
図1
図2
図3
図4
図5
図6
図7
図8