(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-26
(54)【発明の名称】ビデオコーディングにおける参照ピクチャリサンプリング技法とテンプレートベースのインター予測技法との間の相互作用
(51)【国際特許分類】
H04N 19/109 20140101AFI20241219BHJP
H04N 19/157 20140101ALI20241219BHJP
H04N 19/172 20140101ALI20241219BHJP
H04N 19/176 20140101ALI20241219BHJP
H04N 19/46 20140101ALI20241219BHJP
H04N 19/503 20140101ALI20241219BHJP
H04N 19/52 20140101ALI20241219BHJP
【FI】
H04N19/109
H04N19/157
H04N19/172
H04N19/176
H04N19/46
H04N19/503
H04N19/52
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024535280
(86)(22)【出願日】2022-11-22
(85)【翻訳文提出日】2024-06-12
(86)【国際出願番号】 US2022080331
(87)【国際公開番号】W WO2023114627
(87)【国際公開日】2023-06-22
(32)【優先日】2021-12-16
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-11-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】チュン-チ・チェン
(72)【発明者】
【氏名】ハン・フアン
(72)【発明者】
【氏名】ジ・ジャン
(72)【発明者】
【氏名】ヤオ-ジェン・チャン
(72)【発明者】
【氏名】ヤン・ジャン
(72)【発明者】
【氏名】ヴァディム・セレジン
(72)【発明者】
【氏名】マルタ・カルチェヴィッチ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LB01
5C159MA03
5C159MA12
5C159NN11
5C159NN21
5C159NN31
5C159RC11
5C159RC16
5C159TA26
5C159TB08
5C159TC12
5C159TC27
5C159TC42
5C159UA02
5C159UA05
5C159UA11
5C159UA22
(57)【要約】
ビデオエンコーダおよびビデオデコーダは、参照ピクチャリサンプリングまたは重み付け予測が使用されているかどうかに基づいて、テンプレートベースのインター予測技法を有効または無効にすることを決定し得る。ビデオエンコーダおよびビデオデコーダは、参照ピクチャリサンプリングモードが有効にされていると決定し、参照ピクチャリサンプリングモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定し、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータをコーディングし得る。
【特許請求の範囲】
【請求項1】
ビデオデータを復号する方法であって、
参照ピクチャリサンプリング(RPR)モードが有効にされていると決定するステップと、
前記RPRモードが有効にされているステップに基づいて、テンプレートベースのインター予測技法を前記ビデオデータに適用しないと決定するステップと、
前記テンプレートベースのインター予測技法を適用せずに、インター予測を使用して前記ビデオデータを復号するステップと
を含む、方法。
【請求項2】
前記テンプレートベースのインター予測技法が、局所照明補償(LIC)である、請求項1に記載の方法。
【請求項3】
前記テンプレートベースのインター予測技法を適用せずに前記ビデオデータを復号するステップが、
LICを前記ビデオデータのインター予測仮説に適用しないステップを含む、請求項2に記載の方法。
【請求項4】
RPRモードが、前記ビデオデータの参照ピクチャが前記ビデオデータの現在のピクチャとは異なるサイズであるステップに基づいて有効にされる、請求項1に記載の方法。
【請求項5】
前記インター予測が、レギュラーマージモード、レギュラー高度動きベクトル予測(AMVP)モード、アフィンマージモード、またはアフィンAMVPモードのうちの1つである、請求項1に記載の方法。
【請求項6】
RPRが現在のブロックの参照ピクチャに使用されているステップに基づいて、局所照明補償(LIC)フラグの値を推測するステップ
をさらに含む、請求項5に記載の方法。
【請求項7】
前記インター予測が、マージモードであり、前記方法が、
前記ビデオデータのブロックのためのマージ候補リストを構成するステップと、
プルーニングされたマージ候補リストを作成するために前記マージ候補リストをプルーニングするステップであって、前記ビデオデータの現在のピクチャとは異なるサイズである少なくとも1つの参照ピクチャを有するマージ候補を除去するステップを含む、ステップと、
前記プルーニングされたマージ候補リストを使用して前記ビデオデータの前記ブロックを復号するステップと
をさらに含む、請求項5に記載の方法。
【請求項8】
前記インター予測が、マージモードであり、前記方法が、
前記ビデオデータのブロックのためのマージ候補リストを構成するステップと、
プルーニングされたマージ候補リストを作成するために前記マージ候補リストをプルーニングするステップであって、前記ビデオデータの現在のピクチャとは異なるサイズである全ての参照ピクチャを有するマージ候補を除去するステップを含む、ステップと、
前記プルーニングされたマージ候補リストを使用して前記ビデオデータの前記ブロックを復号するステップと
をさらに含む、請求項5に記載の方法。
【請求項9】
前記インター予測が双方向予測であり、前記RPRモードが、複数の参照ピクチャのうちの少なくとも1つの参照ピクチャが前記ビデオデータの現在のピクチャとは異なるサイズであるステップに基づいて有効にされる、請求項1に記載の方法。
【請求項10】
前記テンプレートベースのインター予測技法が、テンプレートマッチング(TM)予測である、請求項1に記載の方法。
【請求項11】
前記ビデオデータのピクチャを表示するステップ
をさらに含む、請求項1に記載の方法。
【請求項12】
ビデオデータを復号するように構成される装置であって、
前記ビデオデータを記憶するように構成されるメモリと、
回路において実装され、かつ前記メモリと通信する1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサが、
参照ピクチャリサンプリング(RPR)モードが有効にされていると決定し、
前記RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法を前記ビデオデータに適用しないと決定し、
前記テンプレートベースのインター予測技法を適用せずに、インター予測を使用して前記ビデオデータを復号する
ように構成される、装置。
【請求項13】
前記テンプレートベースのインター予測技法が、局所照明補償(LIC)である、請求項12に記載の装置。
【請求項14】
前記テンプレートベースのインター予測技法を適用せずに前記ビデオデータを復号するために、前記1つまたは複数のプロセッサが、
LICを前記ビデオデータのインター予測仮説に適用しない
ようにさらに構成される、請求項13に記載の装置。
【請求項15】
RPRモードが、前記ビデオデータの参照ピクチャが前記ビデオデータの現在のピクチャとは異なるサイズであることに基づいて有効にされる、請求項12に記載の装置。
【請求項16】
前記インター予測が、レギュラーマージモード、レギュラー高度動きベクトル予測(AMVP)モード、アフィンマージモード、またはアフィンAMVPモードのうちの1つである、請求項12に記載の装置。
【請求項17】
前記1つまたは複数のプロセッサが、
RPRが現在のブロックの参照ピクチャに使用されていることに基づいて、局所照明補償(LIC)フラグの値を推測する
ようにさらに構成される、請求項16に記載の装置。
【請求項18】
前記インター予測が、マージモードであり、前記1つまたは複数のプロセッサが、
前記ビデオデータのブロックのためのマージ候補リストを構成することと、
プルーニングされたマージ候補リストを作成するために前記マージ候補リストをプルーニングすることであって、前記ビデオデータの現在のピクチャとは異なるサイズである少なくとも1つの参照ピクチャを有するマージ候補を除去することを含む、ことと、
前記プルーニングされたマージ候補リストを使用して前記ビデオデータの前記ブロックを復号することと
を行うようにさらに構成される、請求項16に記載の装置。
【請求項19】
前記インター予測が、マージモードであり、前記1つまたは複数のプロセッサが、
前記ビデオデータのブロックのためのマージ候補リストを構成することと、
プルーニングされたマージ候補リストを作成するために前記マージ候補リストをプルーニングすることであって、前記ビデオデータの現在のピクチャとは異なるサイズである全ての参照ピクチャを有するマージ候補を除去することを含む、ことと、
前記プルーニングされたマージ候補リストを使用して前記ビデオデータの前記ブロックを復号することと
を行うようにさらに構成される、請求項16に記載の装置。
【請求項20】
前記インター予測が双方向予測であり、前記RPRモードが、複数の参照ピクチャのうちの少なくとも1つの参照ピクチャが前記ビデオデータの現在のピクチャとは異なるサイズであることに基づいて有効にされる、請求項12に記載の装置。
【請求項21】
前記テンプレートベースのインター予測技法が、テンプレートマッチング(TM)予測である、請求項12に記載の装置。
【請求項22】
前記ビデオデータのピクチャを表示するように構成されるディスプレイ
をさらに備える、請求項12に記載の装置。
【請求項23】
ビデオデータを符号化する方法であって、
参照ピクチャリサンプリング(RPR)モードが有効にされていると決定するステップと、
前記RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法を前記ビデオデータに適用しないと決定するステップと、
前記テンプレートベースのインター予測技法を適用せずに、インター予測を使用して前記ビデオデータを符号化するステップと
を含む、方法。
【請求項24】
ビデオデータを符号化するように構成される装置であって、
前記ビデオデータを記憶するように構成されるメモリと、
回路において実装され、かつ前記メモリと通信する1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサが、
参照ピクチャリサンプリング(RPR)モードが有効にされていると決定し、
前記RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法を前記ビデオデータに適用しないと決定し、
前記テンプレートベースのインター予測技法を適用せずに、インター予測を使用して前記ビデオデータを符号化する
ように構成される、装置。
【請求項25】
ビデオデータを復号する方法であって、
参照ピクチャリサンプリング(RPR)モードが有効にされていると決定するステップと、
前記RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法を前記ビデオデータに適用するステップと
を含む、方法。
【請求項26】
前記RPRモードが有効にされていることに基づいて、前記テンプレートベースのインター予測技法を前記ビデオデータに適用するステップが、
補間フィルタを前記テンプレートベースのインター予測技法の参照テンプレートブロックに適用するステップを含み、前記補間フィルタが、前記RPRモードに使用されるものと同じである、
請求項25に記載の方法。
【請求項27】
前記テンプレートベースのインター予測技法が、テンプレートマッチング(TM)予測である、請求項25に記載の方法。
【請求項28】
ビデオデータを復号するように構成される装置であって、
前記ビデオデータを記憶するように構成されるメモリと、
回路において実装され、かつ前記メモリと通信する1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサが、
参照ピクチャリサンプリング(RPR)モードが有効にされていると決定し、
前記RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法を前記ビデオデータに適用する
ように構成される、装置。
【請求項29】
前記RPRモードが有効にされていることに基づいて、前記テンプレートベースのインター予測技法を前記ビデオデータに適用するために、前記1つまたは複数のプロセッサが、
補間フィルタを前記テンプレートベースのインター予測技法の参照テンプレートブロックに適用する
ようにさらに構成されており、前記補間フィルタが、前記RPRモードに使用されるものと同じである、
請求項28に記載の装置。
【請求項30】
前記テンプレートベースのインター予測技法が、テンプレートマッチング(TM)予測である、請求項28に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2022年11月21日に出願された米国特許出願第18/057,500号および2021年12月16日に出願された米国仮出願第63/265,555号の優先権を主張するものであり、その内容全体が参照により本明細書に組み込まれる。2022年11月21日に出願された米国特許出願第18/057,500号は、2021年12月16日に出願された米国特許仮出願第63/265,555号の利益を主張する。
【0002】
本開示は、ビデオ符号化およびビデオ復号に関する。
【背景技術】
【0003】
デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(personal digital assistants、PDAs)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスの中に組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part10、アドバンストビデオコーディング(Advanced Video Coding、AVC)、ITU-T H.265/高効率ビデオコーディング(High Efficiency Video Coding、HEVC)、ITU-T H.266/バーサタイルビデオコーディング(Versatile Video Coding、VVC)によって定義された規格、およびそのような規格の拡張、並びにAlliance for Open Mediaによって開発されたAOMedia Video1(AV1)などのプロプライエタリビデオコーデック/フォーマットに記載されているビデオコーディング技法などの、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶する場合がある。
【0004】
ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を含む。ブロックベースのビデオコーディングの場合、ビデオスライス(例えば、ビデオピクチャまたはビデオピクチャの一部分)は、ビデオブロックに分割されてもよく、ビデオブロックは、コーディングツリーユニット(coding tree units、CTUs)、コーディングユニット(coding units、CUs)および/またはコーディングノードと呼ばれることもある。ピクチャのイントラコーディングされた(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコーディングされた(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれる場合があり、参照ピクチャは参照フレームと呼ばれる場合がある。
【発明の概要】
【0005】
概して、本開示は、ビデオデータをコーディングするための技法について説明する。特に、本開示は、参照ピクチャリサンプリング(reference picture resampling、RPR)および/または重み付け予測(weighted prediction、WP)と、テンプレートベースのインター予測技法との間の相互作用を処理することに関する技法について説明する。テンプレートベースのインター予測技法は、局所照明補償(local illumination compensation、LIC)および/またはテンプレートマッチング(template matching、TM)インター予測を含み得る。特に、本開示は、ビデオデータをコーディングするためにRPRまたはWPが有効にされている特定の環境において、テンプレートベースのインター予測技法の使用を無効にすることを含む技法について説明する。本開示の技法は、RPRまたはWPとともにテンプレートベースのインター予測技法を実装する計算の複雑さを低減し得る。加えて、本開示の技法は、RPRまたはWPが有効にされている状況においてコーディング効率を改善し得る。
【0006】
本開示の技術は、HEVC(High Efficiency Video Coding)、VVC(Versatile Video Coding)、およびエッセンシャルビデオコーディング(Essential Video Coding、EVC)などの任意の既存のビデオコーデックに対する拡張として適用されてもよく、または未来のビデオコーディング規格における効率的なコーディングツールになり得る。
【0007】
一例では、本開示は、ビデオデータを復号する方法について説明し、方法は、RPRモードが有効にされていると決定することと、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定することと、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを復号することと、を含む。
【0008】
別の例では、本開示は、ビデオデータを復号するように構成される装置について説明し、装置は、ビデオデータを記憶するように構成されるメモリと、回路に実装され、かつメモリと通信する1つまたは複数のプロセッサと、を備え、1つまたは複数のプロセッサは、RPRモードが有効にされていると決定し、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定し、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを復号する、ように構成される。
【0009】
別の例では、本開示は、ビデオデータを復号するように構成される装置について説明し、装置は、RPRモードが有効にされていると決定するための手段と、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定するための手段と、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを復号するための手段と、を備える。
【0010】
別の例では、本開示は、命令を記憶する非一時的コンピュータ可読記憶媒体について説明し、命令は、実行されたときに、ビデオデータを復号するように構成される1つまたは複数のデバイスに、RPRモードが有効にされていると決定させ、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定させ、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを復号させる。
【0011】
別の例では、本開示は、ビデオデータを符号化する方法について説明し、方法は、RPRモードが有効にされていると決定することと、RPRモードが有効にされていること基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定することと、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを符号化することと、を含む。
【0012】
別の例では、本開示は、ビデオデータを符号化するように構成される装置について説明し、装置は、ビデオデータを記憶するように構成されるメモリと、回路において実装され、かつメモリと通信する1つまたは複数のプロセッサと、を備え、1つまたは複数のプロセッサは、RPRモードが有効にされていると決定し、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定し、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを符号化する、ように構成される。
【0013】
別の例では、本開示は、ビデオデータを符号化するように構成される装置について説明し、装置は、RPRモードが有効にされていると決定するための手段と、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定するための手段と、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを符号化するための手段と、を備える。
【0014】
別の例では、本開示は、命令を記憶する非一時的コンピュータ可読記憶媒体について説明し、命令は、実行されたときに、ビデオデータを符号化するように構成される1つまたは複数のデバイスに、RPRモードが有効にされていると決定させ、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定させ、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを符号化させる。
【0015】
1つまたは複数の例の詳細が、添付図面および以下の説明に記載されている。他の特徴、目的、および利点が、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0016】
【
図1】本開示の技法を実行し得る例示的なビデオ符号化および復号システムを示すブロック図である。
【
図2】例示的なマージおよび高度動きベクトル予測モードのための空間隣接動きベクトル候補を示す図である。
【
図3】時間動きベクトル予測子候補および動きベクトルスケーリングの例を示す図である。
【
図4】照明補償モデルのための例示的な隣接サンプルを示す図である。
【
図5】照明補償モデルのための隣接サンプルの別の例を示す図である。
【
図6】テンプレートマッチングの一例を示す図である。
【
図7】本開示の技法を実行し得る、例示的なビデオエンコーダを示すブロック図である。
【
図8】本開示の技法を実行し得る、例示的なビデオデコーダを示すブロック図である。
【
図9】本開示の技法による、現在のブロックを符号化するための例示的な方法を示すフローチャートである。
【
図10】本開示の技法による、現在のブロックを復号するための例示的な方法を示すフローチャートである。
【
図11】本開示の技法による、ビデオデータのための別の例示的な方法を示すフローチャートである。
【
図12】本開示の技法による、ビデオデータを復号するための別の例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【0017】
ビデオコーダ(例えば、エンコーダおよびデコーダ)は、ネガティブなまたは予期しない方法で他のコーディングモードと相互作用し得る様々なインター予測モードを使用してビデオデータをコーディングするように構成され得る。例えば、特定のテンプレートベースのインター予測技法は、参照ピクチャに対するスケーリングプロセスを伴うコーディング技法とともに適用される場合、実装するのがより複雑になり得る、またはコーディング効率を失い得る。例示的なテンプレートベースのコーディング技法は、局所照明補償(LIC)および/またはテンプレートマッチング(TM)インター予測を含み得る。参照ピクチャのスケーリングを含む例示的なビデオコーディング技法は、参照ピクチャリサンプリング(RPR)および/または重み付け予測(WP)を含み得る。
【0018】
いくつかの例示的なビデオコーデックでは、RPRおよび/またはWPが使用される場合、テンプレートベースのインター予測技法(例えば、LICおよびTMインター予測)のそれぞれのプロセスは、完全には定義されない。したがって、テンプレートベースのインター予測技法とRPR/WPとの両方を使用するビデオコーディングプロセスは、実装および/または準最適コーディング効率を提供するのがより複雑であり得る。
【0019】
本開示は、ビデオデータをコーディングするための技法について説明する。特に、本開示は、RPRおよび/またはWPとテンプレートベースのインター予測技法との間の相互作用を処理することに関する技法について説明する。特に、本開示は、ビデオデータをコーディングするためにRPRまたはWPが有効にされている特定の環境において、テンプレートベースのインター予測技法の使用を無効にすることを含む技法について説明する。本開示の技法は、RPRまたはWPとともにテンプレートベースのインター予測技法を実装する計算の複雑さを低減し得る。加えて、本開示の技法は、RPRまたはWPが有効にされている状況においてコーディング効率を改善し得る。
【0020】
図1は、本開示の技法を実行し得る例示的なビデオ符号化および復号システム100を示すブロック図である。本開示の技法は、一般に、ビデオデータをコーディングする(符号化および/または復号)することを対象とする。一般に、ビデオデータは、ビデオを処理するための任意のデータを含む。したがって、ビデオデータは、未加工の符号化されていないビデオ、符号化されたビデオ、復号された(例えば、再構成される)ビデオ、およびシグナリングデータなどのビデオメタデータを含んでよい。
【0021】
図1に示されるように、この例では、システム100は、デスティネーションデバイス116によって復号され表示されるべき、符号化されたビデオデータを提供するソースデバイス102を含む。具体的には、ソースデバイス102は、コンピュータ可読媒体110を介してデスティネーションデバイス116にビデオデータを提供する。ソースデバイス102およびデスティネーションデバイス116は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、モバイルデバイス、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、表示デバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、放送受信機デバイスなどを含む、広範囲にわたるデバイスのうちのいずれかを備えてもよい。場合によっては、ソースデバイス102およびデスティネーションデバイス116は、ワイヤレス通信に対応し得るので、ワイヤレス通信デバイスと呼ばれ得る。
【0022】
図1の例では、ソースデバイス102は、ビデオソース104、メモリ106、ビデオエンコーダ200、および出力インターフェース108を含む。デスティネーションデバイス116は、入力インターフェース122、ビデオデコーダ300、メモリ120、および表示デバイス118を含む。本開示によれば、ソースデバイス102のビデオエンコーダ200およびデスティネーションデバイス116のビデオデコーダ300は、参照ピクチャリサンプリングおよびテンプレートベースのインター予測技法を使用してビデオデータをコーディングするための技法を適用するように構成され得る。したがって、ソースデバイス102はビデオ符号化デバイスの例を表し、一方でデスティネーションデバイス116はビデオ復号化デバイスの例を表す。他の例では、ソースデバイスおよびデスティネーションデバイスは、他の構成要素または構成を含み得る。例えば、ソースデバイス102は、外部カメラなどの外部ビデオソースからビデオデータを受信してもよい。同様に、デスティネーションデバイス116は、一体型表示デバイスを含むのではなく、外部表示デバイスとインターフェースしてもよい。
【0023】
図1に示すようなシステム100は一例にすぎない。一般に、任意のデジタルビデオ符号化および/または復号デバイスは、参照ピクチャリサンプリングおよびテンプレートベースのインター予測技法を使用するための技法を実行し得る。ソースデバイス102およびデスティネーションデバイス116は、ソースデバイス102がデスティネーションデバイス116へ送信するためのコーディングされたビデオデータを生成するような、コーディングデバイスの例にすぎない。本開示は、データのコーディング(符号化および/または復号)を実行するデバイスを「コーディング」デバイスと呼ぶ。したがって、ビデオエンコーダ200およびビデオデコーダ300は、コーディングデバイス、具体的には、それぞれ、ビデオエンコーダおよびビデオデコーダの例を表す。いくつかの例では、ソースデバイス102およびデスティネーションデバイス116は、ソースデバイス102およびデスティネーションデバイス116の各々がビデオ符号化および復号構成要素を含むように、実質的に対称的な方式で動作し得る。したがって、システム100は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のための、ソースデバイス102とデスティネーションデバイス116との間での一方向または両方向のビデオ送信をサポートし得る。
【0024】
一般に、ビデオソース104は、ビデオデータ(すなわち、未加工の符号化されていないビデオデータ)のソースを表し、ビデオデータの連続した一連のピクチャ(「フレーム」とも呼ばれる)をビデオエンコーダ200に提供し、ビデオエンコーダ200は、ピクチャのためのデータを符号化する。ソースデバイス102のビデオソース104は、ビデオカメラなどの、ビデオキャプチャデバイス、以前にキャプチャされた未加工のビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。更なる代替として、ビデオソース104は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオ、アーカイブされたビデオ、およびコンピュータ-生成されたビデオの組み合わせを生成し得る。各場合において、ビデオエンコーダ200は、キャプチャされたビデオデータ、事前にキャプチャされたビデオデータ、またはコンピュータ生成されたビデオデータを符号化する。ビデオエンコーダ200は、受信された順序(「表示順序」と呼ばれることがある)からコーディングのためのコーディング順序へと、ピクチャを並べ替え得る。ビデオエンコーダ200は、符号化されたビデオデータを含むビットストリームを生成し得る。ソースデバイス102は次いで、例えばデスティネーションデバイス116の入力インターフェース122によって受信および/または取り出すために、出力インターフェース108を介してコンピュータ可読媒体110へと、符号化されたビデオデータを出力し得る。
【0025】
ソースデバイス102のメモリ106およびデスティネーションデバイス116のメモリ120は、汎用メモリを表す。いくつかの例では、メモリ106、120は、未加工のビデオデータ、例えば、ビデオソース104からの未加工のビデオと、ビデオデコーダ300からの未加工の復号されたビデオデータと、を記憶し得る。追加または代替として、メモリ106、120は、例えばビデオエンコーダ200およびビデオデコーダ300によってそれぞれ実行可能なソフトウェア命令を記憶し得る。メモリ106およびメモリ120は、この例ではビデオエンコーダ200およびビデオデコーダ300とは別個に示されるが、ビデオエンコーダ200およびビデオデコーダ300がまた、機能的に類似のまたは等価な目的のために内部メモリを含み得ることを理解されたい。さらに、メモリ106、120は、例えばビデオエンコーダ200から出力されビデオデコーダ300へ入力される、符号化されたビデオデータを記憶し得る。いくつかの例では、メモリ106、120の部分は、例えば、未加工の復号ビデオデータおよび/または符号化されたビデオデータを記憶するための、1つまたは複数のビデオバッファとして割り振られ得る。
【0026】
コンピュータ可読媒体110は、ソースデバイス102からデスティネーションデバイス116に符号化されたビデオデータを移すことが可能な任意のタイプの媒体またはデバイスを表し得る。一例では、コンピュータ可読媒体110は、ソースデバイス102が、例えば、無線周波数ネットワークまたはコンピュータベースのネットワークを介して、符号化されたビデオデータをデスティネーションデバイス116にリアルタイムで直接送信することを可能にするための通信媒体を表す。出力インターフェース108は、符号化されたビデオデータを含む送信信号を変調してもよく、入力インターフェース122は、ワイヤレス通信プロトコルなどの通信規格に従って、受信された送信信号を復調してもよい。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路などの、任意のワイヤレスまたは有線の通信媒体を備えてよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成してよい。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス102からデスティネーションデバイス116への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【0027】
いくつかの例では、ソースデバイス102は、出力インターフェース108から記憶デバイス112に符号化されたデータを出力し得る。同様に、デスティネーションデバイス116は、入力インターフェース122を介して、記憶デバイス112からの符号化されたデータにアクセスし得る。記憶デバイス112は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性若しくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散されたデータ記憶媒体またはローカルでアクセスされるデータ記憶媒体のうちのいずれかを含み得る。
【0028】
いくつかの例では、ソースデバイス102は、符号化されたビデオデータを、ソースデバイス102によって生成された符号化されたビデオデータを記憶し得るファイルサーバ114または別の中間記憶デバイスに出力し得る。デスティネーションデバイス116は、ストリーミングまたはダウンロードを介して、ファイルサーバ114からの記憶されたビデオデータにアクセスし得る。
【0029】
ファイルサーバ114は、符号化されたビデオデータを記憶し、その符号化されたビデオデータをデスティネーションデバイス116に送信することが可能な任意のタイプのサーバデバイスであり得る。ファイルサーバ114は、(例えば、ウェブサイトのための)ウェブサーバ、(ファイル転送プロトコル(File Transfer Protocol、FTP)または片方向伝送路上ファイル配信(File Delivery over Unidirectional Transport、FLUTE)プロトコルなどの)ファイル転送プロトコルサービスを提供するように構成されるサーバ、コンテンツ配信ネットワーク(content delivery network、CDN)デバイス、ハイパーテキスト転送プロトコル(hypertext transfer protocol、HTTP)サーバ、マルチメディアブロードキャストマルチキャストサービス(Multimedia Broadcast Multicast Service、MBMS)若しくは拡張MBMS(Enhanced MBMS、eMBMS)サーバ、および/またはネットワークアタッチトストレージ(network attached storage、NAS)デバイスを表し得る。ファイルサーバ114は、追加または代替として、HTTP経由動的適応ストリーミング(Dynamic Adaptive Streaming over HTTP、DASH)、HTTPライブストリーミング(HTTP Live Streaming、HLS)、リアルタイムストリーミングプロトコル(Real Time Streaming Protocol、RTSP)、HTTP動的ストリーミング(HTTP Dynamic Streaming)などの1つまたは複数のHTTPストリーミングプロトコルを実装し得る。
【0030】
デスティネーションデバイス116は、インターネット接続を含む任意の標準的なデータ接続を通じて、ファイルサーバ114からの符号化されたビデオデータにアクセスし得る。これは、ワイヤレスチャネル(例えば、Wi-Fi接続)、有線接続(例えば、デジタル加入者線(digital subscriber line、DSL)、ケーブルモデムなど)、またはファイルサーバ114に記憶されている符号化されたビデオデータにアクセスするのに適した、両方の組み合わせを含み得る。入力インターフェース122は、ファイルサーバ114からメディアデータを取り出すか若しくは受信するための上述の様々なプロトコル、またはメディアデータを取り出すための他のそのようなプロトコルのうちのいずれか1つまたは複数に従って動作するように構成され得る。
【0031】
出力インターフェース108および入力インターフェース122は、ワイヤレス送信機/受信機、モデム、有線ネットワーク構成要素(例えば、Ethernetカード)、様々なIEEE802.11規格のうちのいずれかに従って動作するワイヤレス通信構成要素、または他の物理構成要素を表してもよい。出力インターフェース108および入力インターフェース122がワイヤレス構成要素を備える例では、出力インターフェース108および入力インターフェース122は、4G、4G-LTE(ロングタームエボリューション(Long-Term Evolution))、LTEアドバンスト、5Gなどのセルラー通信規格に従って、符号化されたビデオデータなどのデータを転送するように構成され得る。出力インターフェース108がワイヤレス送信機を備えるいくつかの例では、出力インターフェース108および入力インターフェース122は、IEEE802.11仕様、IEEE802.15仕様(例えば、ZigBee(商標))、Bluetooth(商標)規格などの他のワイヤレス規格に従って、符号化ビデオデータなどのデータを転送するように構成され得る。いくつかの例では、ソースデバイス102および/またはデスティネーションデバイス116は、それぞれのシステムオンチップ(system-on-a-chip、SoC)デバイスを含み得る。例えば、ソースデバイス102は、ビデオエンコーダ200および/または出力インターフェース108に起因する機能を実行するためのSoCデバイスを含んでもよく、デスティネーションデバイス116は、ビデオデコーダ300および/または入力インターフェース122に起因する機能を実行するためのSoCデバイスを含んでもよい。
【0032】
本開示の技法は、オーバージエアテレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、HTTP経由動的適応ストリーミング(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のうちのいずれかをサポートするビデオコーディングに適用されてよい。
【0033】
デスティネーションデバイス116の入力インターフェース122は、コンピュータ可読媒体110(例えば、通信媒体、記憶デバイス112、ファイルサーバ114など)から、符号化されたビデオビットストリームを受信する。符号化されたビデオビットストリームは、ビデオブロックまたは他のコードディングされたユニット(例えば、スライス、ピクチャ、ピクチャグループ、シーケンスなど)の特性および/または処理を記述する値を有するシンタックス要素などの、ビデオデコーダ300によっても使用される、ビデオエンコーダ200によって定義されるシグナリング情報を含んでもよい。表示デバイス118は、復号されたビデオデータの復号されたピクチャをユーザに表示する。表示デバイス118は、液晶ディスプレイ(liquid crystal display、LCD)、プラズマディスプレイ、有機発光ダイオード(organic light emitting diode、OLED)ディスプレイ、または別のタイプの表示デバイスなどの、様々な表示デバイスのうちのいずれかを表し得る。
【0034】
図1には示されないが、いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は各々、オーディオエンコーダおよび/またはオーディオデコーダと統合されてもよく、共通のデータストリームにおいてオーディオとビデオの両方を含む多重化されたストリームを扱うために、適切なMUX-DEMUXユニット、または他のハードウェアおよび/若しくはソフトウェアを含んでもよい。
【0035】
ビデオエンコーダ200およびビデオデコーダ300は各々、1つ若しくは複数のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processors、DSPs)、特定用途向け集積回路(application specific integrated circuits、ASICs)、フィールドプログラマブルゲートアレイ(field programmable gate arrays、FPGAs)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせなどの、様々な適切なエンコーダおよび/またはデコーダ回路のうちのいずれかとして実装され得る。技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ200およびビデオデコーダ300の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてもよく、それらのいずれもが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック(CODEC))の一部として統合されてもよい。ビデオエンコーダ200および/またはビデオデコーダ300を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備えてもよい。
【0036】
ビデオエンコーダ200およびビデオデコーダ300は、High Efficiency Video Coding(HEVC)とも呼ばれるITU-T H.265などのビデオコーディング規格、または、マルチビューおよび/若しくはスケーラブルビデオコーディング拡張などのそれらの拡張規格に従って動作し得る。代替として、ビデオエンコーダ200およびビデオデコーダ300は、Versatile Video Coding(VVC)とも呼ばれるITU-T H.266などの、他のプロプライエタリ規格または業界規格に従って動作し得る。他の例では、ビデオエンコーダ200およびビデオデコーダ300は、AOMedia Video1(AV1)、AV1の拡張、および/またはAV1の後継バージョン(例えば、AV2)などの、プロプライエタリビデオコーデック/フォーマットに従って動作し得る。他の例では、ビデオエンコーダ200およびビデオデコーダ300は、他のプロプライエタリフォーマットまたは業界規格に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格またはフォーマットにも限定されない。一般に、ビデオエンコーダ200およびビデオデコーダ300は、参照ピクチャリサンプリングおよびテンプレートベースのインター予測技法を使用する任意のビデオコーディング技法と組み合わせて本開示の技法を実行するように構成され得る。
【0037】
一般に、ビデオエンコーダ200およびビデオデコーダ300は、ピクチャのブロックベースのコーディングを実行してもよい。「ブロック」という用語は、一般に、処理される(例えば、符号化、復号、またはそうでなければ符号化および/または復号プロセスにおいて使用される)べきデータを含む構造を指す。例えば、ブロックは、ルミナンスおよび/またはクロミナンスデータのサンプルの2次元行列を含んでもよい。一般に、ビデオエンコーダ200およびビデオデコーダ300は、YUV(例えば、Y、Cb、Cr)フォーマットで表されるビデオデータをコーディングし得る。すなわち、ピクチャのサンプルに対する赤、緑、および青(RGB)のデータをコーディングするのではなく、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分およびクロミナンス成分をコーディングしてもよく、クロミナンス成分は、赤色と青色の両方のクロミナンス成分を含み得る。いくつかの例では、ビデオエンコーダ200は、受信されたRGBフォーマットされたデータを符号化する前にYUV表現に変換し、ビデオデコーダ300は、YUV表現をRGBフォーマットに変換する。代替として、前処理ユニットおよび後処理ユニット(図示せず)が、これらの変換を実行してもよい。
【0038】
本開示は、一般に、ピクチャのデータを符号化または復号するプロセスを含むものとして、ピクチャのコーディング(例えば、符号化および復号)に言及することがある。同様に、本開示は、ブロックのためのデータを符号化または復号するプロセス、例えば予測および/または残差コーディングを含むものとして、ピクチャのブロックのコーディングに言及することがある。符号化されたビデオビットストリームは、一般に、コーディング決定(例えば、コーディングモード)およびブロックへのピクチャの分割を表すシンタックス要素のための一連の値を含む。したがって、ピクチャまたはブロックをコーディングすることへの言及は、一般に、ピクチャまたはブロックを形成するシンタックス要素のためのコーディング値として理解されるべきである。
【0039】
HEVCは、コーディングユニット(CUs)、予測ユニット(prediction units、PUs)、および変換ユニット(transform units、TUs)を含む、様々なブロックを定義する。HEVCによると、(ビデオエンコーダ200などの)ビデオコーダは、四分木構造に従ってコーディングツリーユニット(CTU)をCUに分割する。すなわち、ビデオコーダは、CTUおよびCUを4個の等しい重複しない正方形に分割し、四分木の各ノードは、0個または4個のいずれかの子ノードを有する。子ノードがないノードは「リーフノード」と呼ばれることがあり、そのようなリーフノードのCUは、1つまたは複数のPU、および/または、1つまたは複数のTUを含んでもよい。ビデオコーダは、PUおよびTUをさらに分割し得る。例えば、HEVCでは、残差四分木(residual quadtree、RQT)はTUの分割を表す。HEVCでは、PUはインター予測データを表し、TUは残差データを表す。イントラ予測されるCUは、イントラモード指示などのイントラ予測情報を含む。
【0040】
別の例として、ビデオエンコーダ200およびビデオデコーダ300は、VVCに従って動作するように構成され得る。VVCに従って、(ビデオエンコーダ200などの)ビデオコーダは、ピクチャを複数のコーディングツリーユニット(CTUs)に分割する。ビデオエンコーダ200は、四分木二分木(quadtree-binary tree、QTBT)構造またはマルチタイプツリー(Multi-Type Tree、MTT)構造などの木構造に従って、CTUを分割し得る。QTBT構造は、HEVCのCU、PU、およびTUの間の分離などの、複数の分割タイプの概念を排除する。QTBT構造は、2つのレベル、すなわち、四分木分割に従って分割された第1のレベル、および二分木分割に従って分割された第2のレベルを含む。QTBT構造のルートノードは、CTUに対応する。二分木のリーフノードは、コーディングユニット(CUs)に対応する。
【0041】
MTT分割構造では、ブロックは、四分木(quadtree、QT)分割、二分木(binary tree、BT)分割、および1つまたは複数のタイプの三分木(triple tree、TT)(三元木(ternary tree、TT)とも呼ばれる)分割を使用して分割され得る。三分木分割または三元木分割は、ブロックが3個のサブブロックに分けられる分割である。いくつかの例では、三分木分割または三元木分割は、中心を通って元のブロックを分けることなく、ブロックを3個のサブブロックに分ける。MTTにおける分割タイプ(例えば、QT、BT、およびTT)は、対称または非対称であり得る。
【0042】
AV1コーデックに従って動作する場合、ビデオエンコーダ200およびビデオデコーダ300は、ブロック中のビデオデータをコーディングするように構成され得る。AV1では、処理され得る最大コーディングブロックは、スーパーブロックと呼ばれる。AV1では、スーパーブロックは、128×128ルーマサンプルまたは64×64ルーマサンプルのいずれかであり得る。しかしながら、後継ビデオコーディングフォーマット(例えば、AV2)では、スーパーブロックは、異なる(例えば、より大きい)ルーマサンプルサイズによって定義され得る。いくつかの例では、スーパーブロックは、ブロック四分木のトップレベルである。ビデオエンコーダ200は、さらに、スーパーブロックをより小さいコーディングブロックに分割し得る。ビデオエンコーダ200は、正方形または非正方形分割を使用してスーパーブロックおよび他のコーディングブロックをより小さいブロックに分割し得る。非正方形ブロックは、N/2×N、N×N/2、N/4×N、およびN×N/4ブロックを含み得る。ビデオエンコーダ200およびビデオデコーダ300は、コーディングブロックの各々に対して別個の予測および変換プロセスを実行し得る。
【0043】
AV1はまた、ビデオデータのタイルを定義する。タイルは、他のタイルとは無関係にコーディングされ得るスーパーブロックの矩形アレイである。すなわち、ビデオエンコーダ200およびビデオデコーダ300は、他のタイルからのビデオデータを使用せずにタイル内のコーディングブロックを、それぞれ、符号化および復号し得る。ただし、ビデオエンコーダ200およびビデオデコーダ300は、タイル境界にわたってフィルタ処理を実行し得る。タイルは、サイズが均一であっても不均一であってもよい。タイルベースのコーディングは、エンコーダおよびデコーダ実装形態のために、並列処理および/またはマルチスレッディングを可能にし得る。
【0044】
いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分およびクロミナンス成分の各々を表すために単一のQTBT構造またはMTT構造を使用してもよく、他の例では、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分のための1つのQTBT/MTT構造および両方のクロミナンス成分のための別のQTBT/MTT構造(またはそれぞれのクロミナンス成分のための2つのQTBT/MTT構造)などの、2つ以上のQTBTまたはMTT構造を使用してもよい。
【0045】
ビデオエンコーダ200およびビデオデコーダ300は、四分木分割、QTBT分割、MTT分割、スーパーブロック分割、または他の分割構造を使用するように構成され得る。
【0046】
いくつかの例では、CTUは、ルーマサンプルのコーディングツリーブロック(CTB)、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するCTB、またはモノクロームピクチャ若しくはサンプルをコーディングするために使用される3つの別個の色平面およびシンタックス構造を使用してコーディングされたピクチャのサンプルのCTBを含む。CTBは、成分をCTBに分けるように分割するような、いくつかのNの値に対するサンプルのN×Nのブロックであってもよい。成分は、1つのアレイまたは4:2:0、4:2:2、若しくは4:4:4カラーフォーマットでピクチャを構成する3つのアレイ(ルーマおよび2つのクロマ)のうちの1つからの単一のサンプル、あるいはアレイまたはモノクロームフォーマットでピクチャを構成するアレイの単一のサンプルである。いくつかの例では、コーディングブロックは、CTBをコーディングブロックに分けるように分割するような、いくつかのMおよびNの値に対するサンプルのM×Nのブロックである。
【0047】
ブロック(例えば、CTUまたはCU)は、ピクチャの中で様々な方法でグループ化され得る。一例として、ブリックは、ピクチャの中の特定のタイル内のCTU行の長方形領域を指すことがある。タイルは、ピクチャの中の特定のタイル列および特定のタイル行内のCTUの長方形領域であり得る。タイル列は、ピクチャの高さに等しい高さおよび(例えば、ピクチャパラメータセットの中などの)シンタックス要素によって指定される幅を有する、CTUの長方形領域を指す。タイル行は、(例えば、ピクチャパラメータセットの中などの)シンタックス要素によって指定される高さおよびピクチャの幅に等しい幅を有する、CTUの長方形領域を指す。
【0048】
いくつかの例では、タイルは複数のブリックに分割されてもよく、ブリックの各々はタイル内の1つまたは複数のCTU行を含み得る。複数のブリックに分割されないタイルも、ブリックと呼ばれることがある。しかしながら、タイルの真のサブセットであるブリックは、タイルと呼ばれないことがある。ピクチャの中のブリックは、スライスとしても並べられ得る。スライスは、単一のネットワークアブストラクションレイヤ(network abstraction layer、NAL)ユニットの中に独占的に含まれ得る、ピクチャの整数個のブリックであってよい。いくつかの例では、スライスは、いくつかの完全なタイル、または、1つのタイルの一連の連続する完全なブリックのみの、いずれかを含む。
【0049】
本開示は、垂直次元および水平次元において(CUまたは他のビデオブロックなどの)ブロックのサンプル次元を指すために、互換的に「N×N」および「N掛けるN」、例えば、16×16サンプルまたは16掛ける16サンプルを使用してもよい。一般に、16×16のCUは、垂直方向に16個のサンプル(y=16)および水平方向に16個のサンプル(x=16)を有する。同様に、N×NのCUは、一般に、垂直方向にN個のサンプルおよび水平方向にN個のサンプルを有し、Nは非負の整数値を表す。CUの中のサンプルは、行および列をなして並べられてよい。その上、CUは、必ずしも水平方向において垂直方向における数と同じ数のサンプルを有する必要があるとは限らない。例えば、CUはN×Mのサンプルを備えてもよく、Mは必ずしもNに等しいとは限らない。
【0050】
ビデオエンコーダ200は、予測および/または残差情報、並びに他の情報を表すCUのためのビデオデータを符号化する。予測情報は、CUに対する予測ブロックを形成するためにCUがどのように予測されることになるのかを示す。残差情報は、一般に、符号化する前のCUのサンプルと予測ブロックとの間のサンプルごとの差分を表す。
【0051】
CUを予測するために、ビデオエンコーダ200は、一般に、インター予測またはイントラ予測を通してCUに対する予測ブロックを形成してよい。インター予測とは、一般に、以前にコーディングされたピクチャのデータからCUを予測することを指し、イントラ予測とは、一般に、同じピクチャの以前にコーディングされたデータからCUを予測することを指す。インター予測を実行するために、ビデオエンコーダ200は、1つまたは複数の動きベクトルを使用して予測ブロックを生成してもよい。ビデオエンコーダ200は、一般に、例えば、CUと参照ブロックとの間の差分に関してCUに厳密に一致する参照ブロックを識別するために、動き探索を実行し得る。ビデオエンコーダ200は、参照ブロックが現在のCUと厳密に一致するかどうかを決定するために、差分絶対値和(sum of absolute difference、SAD)、差分二乗和(sum of squared differences、SSD)、平均絶対差(mean absolute difference、MAD)、平均二乗差(mean squared differences、MSD)、または他のそのような差分計算を使用して差分メトリックを計算し得る。いくつかの例では、ビデオエンコーダ200は、単方向予測または双方向予測を使用して現在のCUを予測し得る。
【0052】
VVCのいくつかの例はまた、インター予測モードと見なされ得るアフィン動き補償モードを提供する。アフィン動き補償モードでは、ビデオエンコーダ200は、ズームイン若しくはズームアウト、回転、遠近移動、または他の不規則な動きタイプなどの、非並進運動を表す2つ以上の動きベクトルを決定し得る。
【0053】
イントラ予測を実行するために、ビデオエンコーダ200は、予測ブロックを生成するためにイントラ予測モードを選択してもよい。VVCのいくつかの例は、様々な方向モードを含む67個のイントラ予測モード、並びに平面モードおよびDCモードを提供する。一般に、ビデオエンコーダ200は、現在のブロック(例えば、CUのブロック)に対する隣接サンプルを記述し、そこから現在のブロックのサンプルを予測する、イントラ予測モードを選択する。ビデオエンコーダ200がラスター走査順序(左から右、上から下)でCTUおよびCUをコーディングすると仮定すると、そのようなサンプルは一般に、現在のブロックと同じピクチャにおいて、現在のブロックの上、上および左、または左にあり得る。
【0054】
ビデオエンコーダ200は、現在のブロックに対する予測モードを表すデータを符号化する。例えば、インター予測モードの場合、ビデオエンコーダ200は、様々な利用可能なインター予測モードのうちのどれが使用されるのか、並びに対応するモードに対する動き情報を表すデータを符号化してもよい。単方向または双方向インター予測の場合、例えば、ビデオエンコーダ200は、高度動きベクトル予測(advanced motion vector prediction、AMVP)モードまたはマージモードを使用して動きベクトルを符号化してもよい。ビデオエンコーダ200は、アフィン動き補償モードのための動きベクトルを符号化するために類似のモードを使用してもよい。
【0055】
AV1は、ビデオデータのコーディングブロックを符号化および復号するための2つの一般的な技法を含む。2つの一般的な技法は、イントラ予測(例えば、イントラフレーム予測または空間予測)およびインター予測(例えば、インターフレーム予測または時間予測)である。AV1のコンテキストでは、イントラ予測モードを使用するビデオデータの現在のフレームのブロックを予測する場合、ビデオエンコーダ200およびビデオデコーダ300は、ビデオデータの他のフレームからのビデオデータを使用しない。たいていのイントラ予測モードでは、ビデオエンコーダ200は、現在のブロック内のサンプル値と、同じフレーム内の参照サンプルから生成される予測値との間の差分に基づいて、現在のフレームのブロックを符号化する。ビデオエンコーダ200は、イントラ予測モードに基づいて参照サンプルから生成される予測値を決定する。
【0056】
ブロックのイントラ予測またはインター予測などの予測に続いて、ビデオエンコーダ200はブロックのための残差データを計算してもよい。残差ブロックなどの残差データは、ブロックと、対応する予測モードを使用して形成されたそのブロックに対する予測ブロックとの間の、サンプルごとの差分を表す。ビデオエンコーダ200は、サンプル領域ではなく変換領域において変換データを生成するために、1つまたは複数の変換を残差ブロックに適用してよい。例えば、ビデオエンコーダ200は、離散コサイン変換(discrete cosine transform、DCT)、整数変換、ウェーブレット変換、または概念的に類似の変換を残差ビデオデータに適用してよい。加えて、ビデオエンコーダ200は、モード依存非分離可能二次変換(mode-dependent non-separable secondary transform、MDNSST)、信号依存変換、カルーネンレーベ変換(Karhunen-Loeve transform、KLT)などの二次的な変換を、最初の変換に続いて適用し得る。ビデオエンコーダ200は、1つまたは複数の変換の適用に続いて、変換係数を生成する。
【0057】
上述のように、変換係数を生成するための任意の変換に続いて、ビデオエンコーダ200は、変換係数の量子化を実行してよい。量子化とは、一般に、変換係数を表すために使用されるデータの量をできる限り低減するために変換係数が量子化され、更なる圧縮を行うプロセスを指す。量子化プロセスを実行することによって、ビデオエンコーダ200は、変換係数の一部または全てに関連付けられたビット深度を低減し得る。例えば、ビデオエンコーダ200は、量子化の間にnビット値をmビット値に切り捨てることがあり、nはmよりも大きい。いくつかの例では、量子化を実行するために、ビデオエンコーダ200は、量子化されるべき値のビットごとの右シフトを実行し得る。
【0058】
量子化に続いて、ビデオエンコーダ200は、変換係数を走査してもよく、量子化された変換係数を含む2次元行列から1次元ベクトルを生成する。走査は、より高いエネルギー(したがって、より低い周波数)の変換係数をベクトルの前方に置き、より低いエネルギー(したがって、より高い周波数)の変換係数をベクトルの後方に置くように設計され得る。いくつかの例では、ビデオエンコーダ200は、シリアル化ベクトルを生成し、次いで、ベクトルの量子化された変換係数をエントロピー符号化するために、量子化された変換係数を走査するためのあらかじめ定義された走査順序を使用し得る。他の例では、ビデオエンコーダ200は、適応走査を実行してよい。1次元ベクトルを形成するために量子化された変換係数を走査した後、ビデオエンコーダ200は、例えば、コンテキスト適応型バイナリ算術コーディング(context-adaptive binary arithmetic coding、CABAC)に従って、1次元ベクトルをエントロピー符号化してよい。ビデオエンコーダ200はまた、ビデオデータを復号する際にビデオデコーダ300によって使用するための符号化されたビデオデータに関連付けられたメタデータを記述するシンタックス要素に対する値をエントロピー符号化し得る。
【0059】
CABACを実行するために、ビデオエンコーダ200は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当ててよい。コンテキストは、例えば、シンボルの隣接値が0値化されているか否かに関係し得る。確率判断は、シンボルに割り当てられたコンテキストに基づき得る。
【0060】
ビデオエンコーダ200はさらに、ビデオデコーダ300への、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびシーケンスベースのシンタックスデータなどのシンタックスデータを、例えば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、または、シーケンスパラメータセット(sequence parameter set、SPS)、ピクチャパラメータセット(picture parameter set、PPS)、若しくはビデオパラメータセット(video parameter set、VPS)などの他のシンタックスデータにおいて生成し得る。ビデオデコーダ300は、そのようなシンタックスデータを同様に復号して、対応するビデオデータをどのように復号すべきかを決定してよい。
【0061】
このようにして、ビデオエンコーダ200は、符号化されたビデオデータ、例えば、ブロック(例えば、CU)へのピクチャの分割並びにブロックに対する予測情報および/または残差情報を記述するシンタックス要素を含む、ビットストリームを生成し得る。最終的に、ビデオデコーダ300は、ビットストリームを受信してよく、符号化されたビデオデータを復号してもよい。
【0062】
一般に、ビデオデコーダ300は、ビデオエンコーダ200によって実行されるプロセスへの相反プロセスを実行して、ビットストリームの符号化されたビデオデータを復号する。例えば、ビデオデコーダ300は、ビデオエンコーダ200のCABAC符号化プロセスとは相反ではあるが実質的に類似の方式で、CABACを使用してビットストリームのシンタックス要素に対する値を復号してよい。シンタックス要素は、CTUのCUを定義するために、CTUへのピクチャの分割およびQTBT構造などの対応する分割構造に従った各CTUの分割のための、分割情報を定義し得る。シンタックス要素は、ビデオデータのブロック(例えば、CU)に対する予測情報および残差情報をさらに定義し得る。
【0063】
残差情報は、例えば、量子化された変換係数によって表され得る。ビデオデコーダ300は、ブロックの量子化された変換係数を逆量子化し逆変換して、ブロックのための残差ブロックを再生し得る。ビデオデコーダ300は、シグナリングされた予測モード(イントラ予測またはインター予測)および関連する予測情報(例えば、インター予測のための動き情報)を使用して、ブロックに対する予測ブロックを形成する。ビデオデコーダ300は次いで、予測ブロックと残差ブロックとを(サンプルごとに)組み合わせて、元のブロックを再生し得る。ビデオデコーダ300は、ブロックの境界に沿った視覚アーチファクトを低減するためのデブロッキングプロセスを実行するなどの、追加の処理を実行してよい。
【0064】
本開示は全般に、シンタックス要素などの何らかの情報を「シグナリングすること」に言及することがある。「シグナリング」という用語は、一般に、シンタックス要素に対する値、および/または符号化されたビデオデータを復号するために使用される他のデータの通信を指すことがある。すなわち、ビデオエンコーダ200は、ビットストリームにおいてシンタックス要素に対する値をシグナリングし得る。一般に、シグナリングとは、ビットストリームにおいて値を生成することを指す。上で述べられたように、ソースデバイス102は、実質的にリアルタイムで、または非リアルタイムでビットストリームをデスティネーションデバイス116に転送してもよく、これは、デスティネーションデバイス116によって後で取り出すためにシンタックス要素を記憶デバイス112に記憶するときなどに起こることがある。
【0065】
以下でより詳細に説明されるように、本開示の技法は、参照ピクチャリサンプリング(RPR)とテンプレートベースのインター予測技法(例えば、テンプレートマッチングおよび局所照明補償(LIC))との間の相互作用を処理することに関する。本開示の技法は、HEVC(High Efficiency Video Coding)、VVC(Versatile Video Coding)、Essential Video Coding(EVC)などの既存のビデオコーデックのうちのいずれかに拡張として適用されてもよく、または未来のビデオコーディング規格における効率的なコーディングツールになり得る。一般的な例では、ビデオエンコーダ200およびビデオデコーダは、RPRモードが有効にされていると決定し、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定し、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを復号する、ように構成され得る。
【0066】
CU構造および動きベクトル予測
いくつかのビデオコーディングプロセス(例えばHEVC)では、スライス内の最大のコーディングユニット(largest coding unit、LCU)は、コーディングツリーブロック(CTB)またはコーディングツリーユニット(CTU)と呼ばれる。CTBは四分木を含み、そのノードはコーディングユニット(CUs)と呼ばれる。
【0067】
CTBのサイズは、HEVCメインプロファイルでは(技術的には8×8のCTBサイズがサポートされ得るが)16×16サンプルから64×64サンプルにわたり得る。CUは、CTBと同じサイズから、8×8サンプル程度の小さいサイズであってもよい。各CUは、コーディングモード(例えば、インター、イントラ、または別のコーディングモード)を用いてコーディングされる。CUがインターコーディングされる場合、CUは、2つまたは4つの予測ユニット(PUs)へとさらに分割され得るか、または更なる分割が適用されない場合には1つだけのPUになり得る。1つのCU内に2つのPUが存在する場合、2つのPUは、1/2サイズの長方形、またはCUのサイズの1/4若しくは3/4のサイズを有する2つの長方形であり得る。
【0068】
CUがインターコーディングされる場合、各PUは、ビデオデコーダ300が固有のインター予測モードを用いて導出し得る、動き情報の1つのセットを有する。
【0069】
動きベクトル予測
いくつかのビデオコーディングプロセス(例えばHEVC規格)では、それぞれ、マージモード(スキップはマージの特別な場合であると見なされる)および高度動きベクトル予測(AMVP)モードと名付けられた、PUに対する2つのインター予測モードが存在する。
【0070】
AMVPモードまたはマージモードのいずれにおいても、動きベクトル(motion vector、MV)候補リストが複数の動きベクトル予測子のために維持される。現在のPUの動きベクトル並びにマージモードにおける参照インデックスは、MV候補リストから1つの候補を取ることによって生成される。
【0071】
MV候補リストは、マージモードのための最大で5つの候補、およびAMVPモードのための2つのみの候補を含む。マージ候補は、動き情報のセット、例えば、参照ピクチャリスト(リスト0およびリスト1)と参照インデックスとの両方に対応する動きベクトルを含み得る。マージインデックスによってマージ候補が識別される場合、現在のブロックの予測に使用される参照ピクチャ並びに関連する動きベクトルが決定される。一方、AMVPモード下では、AMVP候補が動きベクトルのみを含むため、リスト0またはリスト1のいずれかからの可能性のある各予測方向に対し、参照インデックスは、MV候補リストへのMV予測子(MV predictor、MVP)インデックスとともに明示的にシグナリングされる。AMVPモードでは、予測された動きベクトルがさらに精緻化され得る。
【0072】
マージモードとAMVPモードとの両方に対する候補は、同じ空間隣接ブロックおよび時間隣接ブロックから同様に導出され得る。
【0073】
空間隣接候補
図2に示されるように、空間MV候補は、特定のPU(PU
0)に対して隣接ブロックから導出されるが、ブロックから候補を生成するための方法は、マージモードとAMVPモードとで異なる。
【0074】
マージモードでは、最大で4つの空間MV候補が、
図2に示される順序を使用してPU0 400に対して導出され得る。
図2に示されるように、その順序は、左隣接ブロック(0、A1)、上隣接ブロック(1、B1)、上右隣接ブロック(2、B0)、下左隣接ブロック(3、A0)、および上左隣接ブロック(4、B2)である。
【0075】
AVMPモードでは、PU0 402の隣接ブロックは、隣接ブロック0および1を含む左グループと、隣接ブロック2、3、および4を含む上グループとの2つのグループに分割される。各グループに対して、シグナリングされる参照インデックスによって示されるものと同じ参照ピクチャを参照する隣接ブロックの中の可能性のある候補が、グループの最終候補を形成するために選ばれるべき最も高い優先度を有する。全ての隣接ブロックが、同じ参照ピクチャを指し示す動きベクトルを含まない可能性があり得る。したがって、そのような候補を見出すことができない場合、第1の利用可能な候補が、最終候補を形成するようにスケーリングされ、したがって、時間距離の差分が補償され得る。
【0076】
時間動きベクトル予測
時間動きベクトル予測子(temporal motion vector predictor、TMVP)候補は、有効かつ利用可能である場合、空間動きベクトル候補の後にMV候補リストに追加される。TMVP候補のための動きベクトル導出のプロセスは、マージモードとAMVPモードの両方について同じである。しかしながら、マージモードにおけるTMVP候補のための目標参照インデックスは、常に0に設定される。
【0077】
TMVP候補導出のための主要ブロックの位置は、空間隣接候補を生成するために使用される上ブロックおよび左ブロックへのバイアスを補償するために、
図3ではブロック410(「T」)として示されている、同一位置PUの外側の右下ブロックである。しかしながら、そのブロックが現在のCTB行の外側に位置するか、または動き情報が利用可能でない場合、ブロックは、PUの中心ブロック412と置換される。
【0078】
TMVP候補のための動きベクトルは、スライスレベルで示される、同一位置ピクチャの同一位置PUから導出される。同一位置PUのための動きベクトルは、同一位置MVと呼ばれる。
【0079】
AVCにおける時間ダイレクトモードと同様に、TMVP候補動きベクトルを導出するために、同一位置MVは、
図3のプロセス450に示されるように、時間距離差分を補償するためにスケーリングされ得る。
【0080】
動き予測の他の態様
マージモードおよびAMVPモードのいくつかの他の態様が、以下で説明される。
【0081】
動きベクトルスケーリング:動きベクトルの値が表示時間におけるピクチャの距離に比例することが想定される。動きベクトルは、2つのピクチャ、すなわち、参照ピクチャと、動きベクトルを含んでいるピクチャ(すなわち、保有ピクチャ(containing picture))とを関連付ける。他の動きベクトルを予測するためにある動きベクトルが利用される場合、保有ピクチャと参照ピクチャの距離は、ピクチャ順序カウント(Picture Order Count、POC)値に基づいて計算される。
【0082】
予測されるべき動きベクトルに対して、その関連する保有ピクチャと参照ピクチャの両方が異なる場合がある。したがって、(POCに基づく)新たな距離が計算される。動きベクトルは、これらの2つのPOC距離に基づいてスケーリングされる。空間隣接候補について、2つの動きベクトルのための保有ピクチャは同じであるが、参照ピクチャは異なる。HEVCでは、動きベクトルのスケーリングは、空間隣接候補および時間隣接候補のためのTMVPとAMVPの両方に適用される。
【0083】
疑似的動きベクトル候補の生成:動きベクトル候補リストが完全でない(例えば、所定の最大数未満の候補を含む)場合、疑似的動きベクトル候補が生成され、リストが最大数の候補を有するまでリストの最後に挿入される。
【0084】
マージモードでは、2つのタイプの擬似MV候補、すなわち、Bスライスについてのみ導出された組み合わされた候補と、第1のタイプが十分な擬似候補を与えない場合にAMVPのためにのみ使用されるゼロ候補とがある。
【0085】
すでに候補リストの中にあり必要な動き情報を有する候補の各ペアに対して、双方向の組み合わされた動きベクトル候補が、リスト0内のピクチャを参照する第1の候補の動きベクトルと、リスト1内のピクチャを参照する第2の候補の動きベクトルとの組み合わせによって導出される。
【0086】
候補挿入のためのプルーニング(pruning)プロセス:異なるブロックからの候補が偶然同じである場合があり、これは、マージ/AMVP候補リストの効率を下げる。この問題に対処するためにプルーニングプロセスが適用される。プルーニングプロセスは、同一の候補を挿入することを回避するために、1つの候補を現在の候補リスト中の他の候補と比較する。複雑さを低減するために、各々の可能性のある候補を全ての他の既存の候補と比較する代わりに、限られた数のプルーニングプロセスのみが適用される。
【0087】
参照ピクチャリサンプリング
いくつかのビデオコーディングプロセス(例えば、HEVC)では、新しいシーケンスパラメータセット(SPS)を使用する新しいシーケンスがイントラランダムアクセスポイント(intra random access point、IRAP)ピクチャから開始しない限り、ピクチャの空間解像度は変化し得ない。VVCは、常にイントラコーディングされるIRAPピクチャを符号化することなく、ある位置においてシーケンス内のピクチャ解像度の変更を可能にする。参照ピクチャが復号されている現在のピクチャとは異なる解像度を有する場合、RPRがインター予測に使用される参照ピクチャのリサンプリングを含むため、この特徴は、参照ピクチャリサンプリング(RPR)と呼ばれることがある。追加の処理ステップを回避するために、VVCにおけるRPRプロセスは、動き補償プロセスに組み込まれて、ブロックレベルで実行されるように設計されている。動き補償段階では、補間プロセスで使用される参照ピクチャ内の参照サンプルの位置を特定するために、動き情報とともにスケーリング比が使用される。
【0088】
VVCでは、スケーリング比は、1/2(参照ピクチャから現在のピクチャへの2倍のダウンサンプリング)以上、8(8倍のアップサンプリング)以下に制限される。異なる周波数カットオフを有するリサンプリングフィルタの3つのセットが、参照ピクチャと現在のピクチャとの間の様々なスケーリング比を処理するために指定される。リサンプリングフィルタの3つのセットは、それぞれ、1/2~1/1.75、1/1.75~1/1.25、および1/1.25~8の範囲のスケーリング比に適用される。
【0089】
リサンプリングフィルタの各セットは、ルーマ成分のための16の位相とクロマ成分のための32の位相とを有し、これは、動き補償補間フィルタの場合と同じである。通常の動き補償補間のフィルタセットは、スケーリング比が1/1.25~8の範囲である場合に使用される。実際には、通常の動き補償補間プロセスは、1/1.25~8の範囲のスケーリング比を有するリサンプリングプロセスの特別な場合と見なされ得る。従来の並進ブロック動きに加えて、アフィンモードは、RPRにおける異なるスケーリング比をカバーするためにルーマ成分に使用される6タップ補間フィルタの3つのセットを有する。水平および垂直スケーリング比は、ピクチャ幅および高さ、並びに参照ピクチャおよび現在のピクチャに対して指定された左、右、上、および下スケーリングオフセットに基づいて導出される。
【0090】
この特徴をサポートするために、ピクチャ解像度および対応する適合窓は、SPSにおいてではなくピクチャパラメータセット(PPS)においてシグナリングされる一方で、最大ピクチャ解像度は、SPSにおいてシグナリングされる。
【0091】
重み付け予測
いくつかのビデオ符号化プロセス(例えば、HEVC)では、重み付け予測(Weighted Prediction、WP)がサポートされ、その場合、(aによって示される)スケーリング係数、(sによって示される)シフト数、および(bによって示される)オフセットが、動き補償プロセスにおいて使用される。参照ピクチャの位置(x,y)におけるピクセル値がp(x,y)である場合、動き補償における予測値として、p(x,y)の代わりに、関数p’(x,y)=((a*p(x,y)+(1<<(s-1)))>>s)+bが使用される。
【0092】
WPが有効にされている場合、現在のスライスの各参照ピクチャに対して、ビデオエンコーダ200は、WPが参照ピクチャに適用されるか否かを示すフラグをシグナリングする。WPが1つの参照ピクチャに適用される場合、WPパラメータのセット(例えば、a、s、およびb)がビデオデコーダ300に送信され、参照ピクチャからの動き補償に使用される。ルーマおよびクロマ成分のためのWPをフレキシブルにオン/オフするために、WPフラグおよびWPパラメータは、ルーマ成分とクロマ成分とに対して別個にシグナリングされる。
【0093】
WPの一例では、WPパラメータの1つの同じセットが、1つの参照ピクチャ内の全てのピクセルに使用される。
【0094】
HEVCにおける局所照明補償(IC)
1つの例示的なプロセスでは、分割ベースの照明補償(partition-based illumination compensation、PBIC)が使用される。使用のために有効/無効にされて、スライスレベルでパラメータがシグナリングされる重み付け予測(WP)とは異なり、PIBCが有効/無効にされ、そのモデルパラメータは、局所照明変動を処理するためにPUレベルでシグナリングされる。
【0095】
WPと同様に、照明補償はまた、スケーリング係数(aによっても示される)およびオフセット(bによっても示される)を有し、シフト数は6に固定される。ICフラグは、ICが現在のPUに適用されるか否かを示すために各PUに対してコーディングされる。ICがPUに適用される場合、ICパラメータのセット(例えば、aおよびb)がビデオデコーダ300にシグナリングされ、動き補償に使用される。双方向予測の場合、2つのスケーリング係数(予測方向ごとに1つ)および1つのオフセットがシグナリングされる。
【0096】
一例では、ICパラメータに費やされるビットを節約するために、クロマ成分は、ルーマ成分とスケーリング係数を共有し、固定オフセット128が使用される。
【0097】
3D-HEVCにおける局所照明補償
3D-HEVCでは、ICがビュー間予測のために有効にされる。ICパラメータを明示的にシグナリングするWPおよびPBICとは異なり、3D-HEVCは、現在のCUの隣接サンプルおよび参照ブロックの隣接サンプルに基づいて、ICパラメータを導出することを含む。
【0098】
ICは、2N×2N分割モードにのみ適用される。AMVPモードの場合、ビュー間参照ピクチャから予測される各CUごとに1つのICフラグがシグナリングされる。マージモードの場合、ビットを節約するために、PUのマージインデックスが0に等しくない場合にのみ、ICフラグがシグナリングされる。一例では、ICは、時間参照ピクチャのみから予測されるCUには適用されない。
【0099】
ビュー間予測において使用される線形ICモデルが、以下の式(1)に示されている。(1):
p(i,j)=a*r(i+dvx,j+dvy+b),where(i,j)∈PUc (1)
【0100】
ここで、PUcは、現在のPUであり、(i,j)は、PUc中のピクセルの座標であり、(dvx,dvy)は、PUcの視差ベクトルである。p(i,j)は、PUcの予測であり、rは、隣接ビューからのPUの参照ピクチャであり、aおよびbは線形ICモデルのパラメータである。
【0101】
PUのためのパラメータaおよびbを推定するために、
図4に示されるように、ピクセルの2つのセットが使用される。ピクセルの第1のセットは、現在のCU 460(現在のPUを含んでいるCU)の左の列および上の行内の利用可能な再構成される隣接ピクセル(Rec
neig)460である。ピクセルの第2のセットは、現在のCUの参照ブロックの対応する隣接ピクセル(Rec
refneig)462である。現在のCUの参照ブロックは、現在のPUの視差ベクトルを使用することによって見出される。
【0102】
RecneigおよびRecrefneigが、それぞれ、現在のCUおよびその参照ブロックの隣接ピクセルセットを示すものとし、2Nが、RecneigおよびRecrefneig内のピクセル番号を示すものとする。したがって、aおよびbは、以下のように計算され得る。
【0103】
【0104】
場合によっては、aのみが線形モデルにおいて使用されてbは常に0に等しく設定され、またはbのみが使用されてaは常に1に等しく設定される。
【0105】
JVETにおける局所照明補償
局所照明補償(LIC)は、スケーリング係数a(シフト数が6に固定されている)およびオフセットbを使用する、照明変化の線形モデルに基づく。一例では、LICは、各インターモードコーディングされたCUに対して適応的に有効または無効にされる。
【0106】
LICがCUに適用される場合、最小二乗誤差法が、現在のCUの隣接サンプルおよびそれらの対応する参照サンプルを使用することによってパラメータaおよびbを導出するために採用される。より詳細には、
図5に示されるように、CUのサブサンプリングされた(2:1サブサンプリング)隣接サンプル500、および参照ピクチャ内の(現在のCUまたはサブCUの動き情報によって識別される)対応するピクセル502が使用される。ICパラメータは、各予測方向に対して別々に導出され適用される。
【0107】
CUがマージモードでコーディングされる場合、LICフラグは、マージモードにおける動き情報コピーと同様の方法で、隣接ブロックからコピーされ、そうでなければ、LICフラグは、LICが適用されるか否かを示すためにCUに対してシグナリングされる。
【0108】
テンプレートマッチング予測
テンプレートマッチング(TM)予測は、フレームレートアップ変換(Frame-Rate Up Conversion、FRUC)技法に基づく特別なマージモードである。このモードでは、ブロックの動き情報はシグナリングされないが、ビデオデコーダ300において導出される。TMは、AMVPモードおよびレギュラーマージモードの両方に適用されてもよい。AMVPモードでは、MVP候補の選択は、現在のブロックテンプレートと参照ブロックテンプレートの差分が最小になるMVP候補を選ぶために、テンプレートマッチングに基づいて決定される。レギュラーマージモードでは、TMの使用を示すためにTMモードフラグがシグナリングされ、次いで、MV精緻化のためにマージインデックスによって示されるマージ候補にTMが適用される。
【0109】
図6に示されるように、テンプレートマッチングは、現在のピクチャ内の現在のテンプレート520(現在のCUの上および/または左隣接ブロック)と、参照ピクチャ内のブロック(例えば、現在のテンプレート520と同じサイズの参照テンプレート525)との間の最も近い一致を見出すことによって、現在のCUの動き情報を導出するために使用される。初期マッチング誤差に基づいて選択されたAMVP候補を用いて、そのMVPがテンプレートマッチングによって精緻化される。シグナリングされたマージインデックスによって示されるマージ候補を用いて、L0およびL1に対応するそのマージされたMVが、テンプレートマッチングによって独立して精緻化され、次いで、より正確ではないMVが、より良いMVを優先して用いてさらに再精緻化される。
【0110】
コスト関数:動きベクトルが小数サンプル位置を指し示す場合、動き補償補間が使用される。複雑度を低減するために、テンプレートマッチングのために標準8タップDCT-IF補間の代わりに双線形補間が使用されて、参照ピクチャ上にテンプレートを生成する。テンプレートマッチングのマッチングコストCは、次のように計算される。
【0111】
【数2】
式中、wは、経験的に4に設定される重み付け係数であり、MVおよびMV
sは、現在テストされているMVおよび初期MV(すなわち、AMVPモードにおけるMVP候補またはマージモードにおけるマージされた動き)をそれぞれを示す。テンプレートマッチングのマッチングコストとして、SADが使用される。
【0112】
TMが使用される場合、ルーマサンプルだけを使用することによって動きが精緻化される。導出される動きは、動き補償インター予測のためのルーマおよびクロマの両方に使用されることになる。MVが導出された後に、ルーマに対して8タップ補間フィルタ、およびクロマに対して4タップ補間フィルタを使用して、最終動き補償が実行される。
【0113】
探索方法:MV精緻化は、テンプレートマッチングコストの基準および階層構造を用いたパターンベースのMV探索である。MV精緻化に対して、ダイヤモンド探索および交差探索という、2つの探索パターンがサポートされる。階層構造は、粗いMVD精度(例えば、1/4ペル(pel))において開始し、細かいMVD精度(例えば、1/8ペル)において終了する、MVを精緻化するための反復プロセスを指定する。MVは、ダイヤモンドパターンを用いて1/4ルーマサンプルMVD精度で直接探索され、その後、交差パターンを用いて1/4ルーマサンプルMVD精度で探索される。この後に、交差パターンを用いた1/8ルーマサンプルMVD精緻化が続く。MV精緻化の探索範囲は、初期MVの周りの(-8,+8)ルーマサンプルに等しく設定される。現在のブロックが双方向予測のものである場合、両方のMVが独立して改善され、次いで、それらのうちの(マッチングコストに関して)最良のものが、BCW重み値を用いて他のMVをさらに精緻化するために優先して設定される。
【0114】
課題
RPRおよび/またはWPが使用される場合、上述のテンプレートベースのインター予測技法(例えば、LICおよびTMインター予測)のそれぞれのプロセスは、完全には定義されない。したがって、テンプレートベースのインター予測技法とRPR/WPとの両方を使用するビデオコーディングプロセスは、実装および/または準最適コーディング効率を提供するのがより複雑であり得る。
【実施例】
【0115】
一般に、本開示の以下の技法は、任意のテンプレートベースのインター予測技法に適用され得る。一般性を失うことなく、本開示は、RPRおよびWPがどのようにLICおよびTMと相互作用することができるかを指定するためのLICおよびTMの例を示している。
【0116】
セクション1-テンプレートベースのインター予測の有効化条件
以下に列挙される例は、現在のピクチャおよび参照ピクチャ(単数または複数)のそれぞれのピクチャサイズに基づいてLICが適用され得るか否かを決定するための、LICに対するRPR制限を説明している。
【0117】
一例では、インター予測ブロックのコーディングモードがAMVPモードまたはマージモード(例えば、レギュラーAMVP/マージモードまたはアフィンAMVP/マージモードのいずれか)である場合、LICは、インター予測仮説を生成する際に使用される対応する参照ピクチャが現在のピクチャよりも小さいまたは大きい(例えば、参照ピクチャが現在のピクチャとは異なるサイズである)場合、ブロックのインター予測仮説に適用されない(例えば、無効にされる)。対応する参照ピクチャが現在のピクチャとは異なるサイズである場合、RPRは通常、有効にされる。したがって、本開示の一例では、ビデオエンコーダ200およびビデオデコーダ300は、RPRが有効にされているときにLICを適用しないように構成され得る。言い換えれば、ビデオエンコーダ200およびビデオデコーダ300は、LICに使用される対応する参照ピクチャが、コーディングされているビデオデータのブロックを含んでいる現在のピクチャとは異なるサイズである(例えば、より大きいまたはより小さい)場合、LICを適用しないように構成され得る。
【0118】
したがって、本開示の一例では、ビデオエンコーダ200およびビデオデコーダは、RPRモードが有効にされていると決定し、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定し、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを復号する、ように構成され得る。
【0119】
双方向予測の一例では、ビデオエンコーダ200およびビデオデコーダ300は、2つの異なる参照ピクチャリストからの動きベクトルに基づいて、2つの予測仮説を形成し得る。いくつかの例では、第1の参照ピクチャリストからの動きベクトルは、現在のピクチャとは異なるサイズを有する参照ピクチャを指し得、第2の参照ピクチャリストからの別の動きベクトルは、現在のピクチャと同じサイズを有する参照ピクチャを指し得る。上記で説明したように、ビデオエンコーダ200およびビデオデコーダ300は、現在のピクチャとは異なるサイズを有する参照ピクチャに基づく予測仮説に対してLICを無効にし得る。しかしながら、本開示の別の例では、ビデオエンコーダ200およびビデオデコーダ300は、他の参照ピクチャリストに対応するその参照ピクチャが現在のピクチャと同じピクチャサイズである場合、LICを他のインター予測仮説に適用し得る。すなわち、LICは、動きベクトルによって指し示される参照ピクチャが現在のピクチャと同じサイズである場合、参照ピクチャリストのうちの1つに関連付けられた動きベクトルに対する予測仮説に対して実行され得る。したがって、一例では、LICは、双方向予測のための1つの予測仮説に対して実行され得るが、他の予測仮説に対しては実行され得ない。
【0120】
(レギュラーまたはアフィン)AMVPモードでは、インター予測ブロックの全ての参照ピクチャが現在のピクチャとは異なるピクチャサイズを有する場合、ビデオエンコーダ200は、符号化ビデオビットストリームにおいてブロックレベル(またはCUレベル)LICフラグをシグナリングしないように構成され得る。代わりに、この状況では、ビデオデコーダ300は、LICフラグの値が0である(例えば、LICが適用されない)と推測するように構成される。例えば、単方向予測ブロックの参照ピクチャが現在のピクチャよりも小さいまたは大きい場合、LICフラグはシグナリングされず、双方向予測ブロックの参照ピクチャのいずれも現在のピクチャと同じサイズでない場合、LICフラグはシグナリングされない。一般に、ビデオデコーダ300は、RPRが現在のブロックの参照ピクチャに用いられていることに基づいて、LICフラグの値を推測するように構成され得る。
【0121】
別の例では、双方向予測の場合、ビデオエンコーダ200およびビデオデコーダ300は、双方向予測において使用される参照ピクチャのうちの少なくとも1つが現在のピクチャとは異なるピクチャサイズを有する場合、LICをインターブロックに適用しないように構成される。この場合も、CUレベルLICフラグはシグナリングされず、代わりに、ビデオデコーダは、LICフラグの値が0である(例えば、LICが適用されないことを意味する)と推測する。
【0122】
別の例では、いずれの参照ピクチャリスト中の参照ピクチャのいずれも現在のピクチャと同じピクチャサイズでない場合、スライスレベルLICフラグはシグナリングされず、0の値を有すると推測され得る。
【0123】
以下に列挙する例は、LICおよびRPRモードの相互作用に関連する上記の例をWPモードに拡張している。以下の例は、LICに対するWP制限と呼ばれる。
【0124】
一例では、インター予測ブロックのコーディングモードがAMVPまたはマージモード(例えば、レギュラーAMVP/マージモードまたはアフィンAMVP/マージモードのいずれか)である場合、WPが、対応する参照ピクチャに適用される場合、LICは、インター予測仮説に適用されない。加えて、双方向予測の場合、WPが、インター予測仮説に対応する参照ピクチャリストに対応する参照ピクチャに適用されない場合、LICは、インター予測仮説に適用され得る。
【0125】
(レギュラーまたはアフィン)AMVPモードでは、WPが、インター予測ブロックの全ての参照ピクチャに適用される場合、ブロックレベル(またはCUレベル)LICフラグは、ビットストリームにおいてシグナリングされず、ビデオデコーダ300において0として推測される。例えば、WPが、単方向予測ブロックの参照ピクチャに適用される場合、LICフラグはシグナリングされず、WPが、双方向予測ブロックの両方の参照ピクチャに適用される場合、LICフラグはシグナリングされない。
【0126】
別の例では、双方向予測の場合、ビデオエンコーダ200およびビデオデコーダ300は、WPが、参照ピクチャのうちの少なくとも1つに適用される場合、LICをインターブロックに適用しない。対応するCUレベルLICフラグは、シグナリングされず、0として推測される。
【0127】
別の例では、WPが両方の参照ピクチャリストの全ての参照ピクチャに適用される場合、スライスレベルLICフラグは、シグナリングされず、0として推測され得る。
【0128】
以下に列挙される例は、現在のピクチャおよび参照ピクチャ(単数または複数)のそれぞれのピクチャサイズに基づいてテンプレートマッチング(TM)が適用され得るか否かを決定するための、TM予測に対するRPR制限を説明する。
【0129】
一例では、インター予測ブロックのコーディングモードがAMVPモード(例えば、レギュラーAMVPモードまたはアフィンAMVPモードのいずれか)である場合、ビデオエンコーダ200およびビデオデコーダ300は、TMをバイパスする(例えば、TMを無効にするまたは適用しない)ことができ、対応する参照ピクチャが現在のピクチャよりも小さいまたは大きい場合(例えば、RPRが有効にされているとき)、現在のブロックのためのMV予測子のいずれも、TMを使用して精緻化されない。TMがバイパスされることは、AMVP候補インデックスがTMによって決定されることができず、かつ現在のブロックのMVおよびMV予測子がもはや精緻化されないことを意味する。TMがバイパスされる場合、AMVPインデックスは、AMVP候補リスト中のMV予測子のうちのどれが使用されるかを示すために、ビデオエンコーダ200によってビットストリームにおいてシグナリングされ、ビデオデコーダ300によってパースされ得る。
【0130】
更なる例では、双方向予測の場合、現在のピクチャサイズに対する参照ピクチャサイズに応じて、TMは、一方の参照ピクチャに対応するMV予測子にのみ適用され、他方のMV予測子に対してバイパスされることが可能である。例えば、単方向予測ブロックの参照ピクチャが現在のピクチャよりも小さいまたは大きい場合、TMはバイパスされ、AMVPインデックスがシグナリングされる。双方向予測ブロックの参照ピクチャのいずれも現在のピクチャと同じピクチャサイズを有しない場合、TMは、両方の参照ピクチャのMV予測子に対してバイパスされ、それぞれのAMVPインデックスがシグナリングされる。双方向予測ブロックの参照ピクチャのうちの1つのみが現在のピクチャと同じピクチャサイズである(一方、他の参照ピクチャは同じピクチャサイズではない)場合、現在のピクチャと同じサイズである参照ピクチャに関連付けられたMV予測子のみが、TMによって精緻化される(したがって、そのAMVPインデックスはTMによって決定され、AMVPインデックスはシグナリングされる必要がない)一方で、TMは、現在のピクチャと同じサイズではない参照ピクチャに関連付けられた他のMV予測子に対してバイパスされ、そのAMVPインデックスがシグナリングされる。
【0131】
別の例では、双方向予測の場合、ビデオエンコーダ200およびビデオデコーダ300は、参照ピクチャのうちの少なくとも1つが現在のピクチャとは異なるピクチャサイズを有する場合、TMをインターブロック(レギュラーAMVPモードとアフィンAMVPモードの両方)に適用しないように構成される。
【0132】
別の例では、参照ピクチャサイズが現在のピクチャのサイズとは異なることに起因してTMがバイパスされる場合、ビデオデコーダ300は、AMVPインデックスの値が0であると推測するように構成され得る。ビデオエンコーダ200は、この状況ではAMVPインデックスをシグナリングしないことになる。
【0133】
別の例では、インター予測ブロックのコーディングモードがマージモード(例えば、レギュラーマージモードまたはアフィンマージモードのいずれか)である場合、ビデオエンコーダ200およびビデオデコーダ300は、TMをバイパスするように構成され得、対応する参照ピクチャが現在のピクチャよりも小さいまたは大きい場合、現在のブロックの動きベクトルのいずれも精緻化されない。加えて、双方向予測の場合、TMは、現在のピクチャサイズに対する参照ピクチャサイズに全て依存して、1つの参照ピクチャに対応するMVにのみ適用され、他のMVに対してはバイパスされることが可能である。例えば、単方向予測ブロックの参照ピクチャが現在のピクチャよりも小さいまたは大きい場合、TMはバイパスされる。双方向予測ブロックの参照ピクチャのいずれも現在のピクチャと同じピクチャサイズでない場合、TMは、両方の参照ピクチャの動きベクトルに対してバイパスされる。双方向予測ブロックの参照ピクチャのうちの1つのみが現在のピクチャと同じピクチャサイズである(一方、他の参照ピクチャは同じピクチャサイズではない)場合、参照ピクチャに関連付けられた動きベクトルのみがTMによって精緻化される一方で、TMは、他の動きベクトルに対してバイパスされる。
【0134】
別の例では、双方向予測の場合、ビデオエンコーダ200およびビデオデコーダ300は、参照ピクチャのうちの少なくとも1つが現在のピクチャとは異なるピクチャサイズである場合、レギュラーマージモードとアフィンマージモードの両方に対して、TMをインターブロックに適用しない。
【0135】
別の例では、ジオメトリック(geometric、GEO)分割の動きベクトルは、その対応する参照ピクチャサイズが現在のピクチャサイズと異なる場合、TMによって精緻化されない場合がある。
【0136】
別の例では、動きベクトル差分を有するマージモード(merge mode with motion vector difference、MMVD)候補は、参照ピクチャサイズが現在のピクチャと異なる場合、TMコストに基づいてソートされない。代わりに、(例えば、より小さいMVDから大きいMVDへ)デフォルト順序が全てのMMVD候補に割り当てられる。
【0137】
別の例では、ビデオエンコーダおよびビデオデコーダ300は、両方の参照ピクチャリスト中の参照ピクチャのいずれも現在のピクチャと同じピクチャサイズでない場合、スライスレベルにおいてTMを完全に無効にするように構成され得る。したがって、マージモードのためのCUレベルTMフラグはシグナリングされず、0であると推測される(例えば、TMモードが適用されない)。
【0138】
以下に列挙する実施例は、上記の実施例をTMに拡張する。以下、この拡張をTMに対するWP制限と呼ぶ。
【0139】
一例では、インター予測ブロックのコーディングモードがAMVPモード(例えば、レギュラーAMVPモードまたはアフィンAMVPモードのいずれか)である場合、TMはバイパスされ得、対応する参照ピクチャにWPが適用される場合、現在のブロックMV予測子のいずれも精緻化されない。特に、TMがバイパスされる場合(これは、AMVP候補インデックスがTMによって決定されることができず、現在のブロックのMVおよびMV予測子がもはや精緻化されないことを暗示する)、AMVPインデックスは、ビデオエンコーダ200においてビットストリームにおいてシグナリングされ、AMVP候補リスト中のどのMV予測子が使用されるかを示すためにビデオデコーダ300によってパースされる。
【0140】
双方向予測の別の例では、WPが参照ピクチャに適用されるかどうかに応じて、TMは、一方の参照ピクチャに対応するMV予測子にのみ適用され、他方のMV予測子に対してはバイパスされることが可能である。例えば、WPが、単方向予測ブロックの参照ピクチャに適用されるとき場合、TMはバイパスされ、AMVPインデックスがシグナリングされる。双方向予測ブロックの参照ピクチャのいずれもWPを適用されていない場合、TMは、両方の参照ピクチャのMV予測子に対してバイパスされ、それぞれのAMVPインデックスがシグナリングされる。双方向予測ブロックの参照ピクチャのうちの1つのみがWPを適用されている(一方、他の参照ピクチャはWPを適用されていない)場合、WPが適用されていない参照ピクチャに関連付けられたMV予測子のみがTMによって精緻化される(したがって、そのAMVPインデックスはTMによって決定され、AMVPインデックスはシグナリングされる必要がない)一方で、TMは、WPが参照ピクチャに適用されてそのAMVPインデックスがシグナリングされる他のMV予測子に対してはバイパスされる。
【0141】
別の例では、双方向予測の場合、ビデオエンコーダ200およびビデオデコーダ300は、WPが、参照ピクチャのうちの少なくとも1つに適用される場合、TMをインターブロック(レギュラーおよびアフィンの両方の)AMVPモードに適用しない。
【0142】
別の例では、WPが参照ピクチャに適用されていることに起因してTMがバイパスされる場合、AMVPインデックスは、ビデオデコーダ300において0として推測され得、ビデオエンコーダ200によってシグナリングされる必要はない。
【0143】
インター予測ブロックのコーディングモードがマージモード(例えば、レギュラーマージまたはアフィンマージモードのいずれか)である場合、TMはバイパスされ得、WPが対応する参照ピクチャに適用される場合、現在のブロックの動きベクトルのいずれも精緻化されない。加えて、双方向予測の場合、WPが参照ピクチャに適用されるかどうかに応じて、TMは、一方の参照ピクチャに対応する動きベクトルに対してのみ適用され、他方の動きベクトルに対してはバイパスされることが可能である。例えば、単方向予測ブロックの参照ピクチャがWPを適用されている場合、TMはバイパスされる。双方向予測ブロックの参照ピクチャのいずれもWPを適用されていない場合、TMは、両方の参照ピクチャの動きベクトルに対してバイパスされる。双方向予測ブロックの参照ピクチャのうちの1つのみがWPを適用されていない(一方、他の参照ピクチャにWPが適用されている)場合、参照ピクチャに関連付けられた動きベクトルのみがTMによって精緻化され、一方で、TMは、他のMVに対してバイパスされる。
【0144】
別の例では、GEO分割のMVは、その対応する参照ピクチャがWPを適用されている場合、TMによって精緻化されない場合がある。
【0145】
別の例では、MMVD候補は、参照ピクチャがWPを適用されている場合、TMコストに基づいてソートされない。代わりに、(例えば、より小さいMVDから大きいMVDへ)デフォルトの順序が、全てのMMVD候補に用いられる。
【0146】
別の例では、両方の参照ピクチャリスト中の全ての参照ピクチャがWPを適用されている場合、TMは、スライスレベルにおいて完全に無効にされ得る。したがって、マージモードのためのCUレベルTMフラグは、シグナリングされる必要がなく、0の値を有すると推測される(例えば、TMはバイパスされて適用されない)。
【0147】
セクション2-マージモードの候補リスト構成
セクション1で開示されたような制限は、マージモード(例えば、レギュラーマージモード、アフィンマージモード、TMマージモード、GEOマージモード、MMVDモード)のマージ候補リストが、スケーリングされた(例えば、RPRによってスケーリングされた)参照ピクチャサイズ(単数若しくは複数)および/または重み予測された参照ピクチャ(単数若しくは複数)を有するいかなる候補も含まない場合、テンプレートベースのインター予測を用いるマージモードに対して回避され得る。言い換えれば、マージ候補は、そのような候補がセクション1で開示されたような制限をトリガする場合、マージ候補リストに挿入される前にプルーニングされ得る。
【0148】
一例では、ビデオエンコーダ200およびビデオデコーダ300は、特定のマージ候補に関連付けられた参照ピクチャのサイズに基づいて、マージ候補リスト(例えば、レギュラーマージ、TMマージ、またはアフィンマージのいずれか)にプルーニングプロセスを適用するように構成され得る。例えば、ビデオエンコーダ200およびビデオデコーダ300は、現在のピクチャとは異なるサイズを有する少なくとも1つの参照ピクチャに関連付けられている動きベクトル候補をマージ候補リストからプルーニングする(例えば、除去する)ように構成され得る。
【0149】
この例では、ビデオエンコーダ200およびビデオデコーダ300は、ビデオデータのブロックのためのマージ候補リストを構成するように構成され得る。マージ候補リストは、レギュラーマージモード、TMマージモード、およびアフィンマージモードを含む、任意のインター予測モードのためのものであり得る。ビデオエンコーダ200およびビデオデコーダ300は、プルーニングされたマージ候補リストを作成するためにマージ候補リストをプルーニングし得る。このコンテキストでは、マージ候補リストをプルーニングすることは、ビデオデータの現在のピクチャとは異なるサイズである少なくとも1つの参照ピクチャを有するマージ候補を除去することを含む。ビデオエンコーダ200およびビデオデコーダ300は、次いで、プルーニングされたマージ候補リストを使用してビデオデータのブロックをコーディングし得る。
【0150】
別の例では、ビデオエンコーダ200およびビデオデコーダ300は、現在のピクチャとは異なるピクチャサイズである全ての参照ピクチャを有する動きベクトル候補をプルーニングするために、プルーニング方法をマージ候補リスト(例えば、レギュラーマージ、TMマージ、またはアフィンマージのいずれか)に適用するように構成され得る。
【0151】
別の例では、に、マージ候補が、現在のピクチャとは異なるピクチャサイズの1つの参照ピクチャ(および現在のピクチャと同じサイズの他の参照ピクチャ)のみを用いて双方向予測される場合、ビデオエンコーダ200およびビデオデコーダ300は、現在のピクチャに対して等しくないサイズの参照ピクチャに関連付けられた動きベクトルを除去することによって、双方向予測候補を単方向予測候補になるように縮退するように構成され得る。
【0152】
別の例では、ビデオエンコーダ200およびビデオデコーダ300は、WPが適用された少なくとも1つの参照ピクチャを有する動きベクトル候補をプルーニングするために、プルーニング方法をマージ候補リスト(例えば、レギュラーマージ、TMマージ、またはアフィンマージのいずれか)に適用するように構成され得る。
【0153】
別の例では、ビデオエンコーダ200およびビデオデコーダ300は、WPが適用されている全ての参照ピクチャを有する動きベクトル候補をプルーニングするために、プルーニング方法をマージ候補リスト(例えば、レギュラーマージ、TMマージ、またはアフィンマージのいずれか)に適用するように構成され得る。
【0154】
別の例では、マージ候補が、WPが適用されている1つの参照ピクチャのみを用いて双方向予測される(および他の参照ピクチャがWPを適用されていない)場合、ビデオエンコーダ200およびビデオデコーダ300は、WPが適用された参照ピクチャに関連付けられた動きベクトルを除去することによって、双方向予測候補を単方向予測候補になるように縮退するように構成され得る。
【0155】
別の例では、マージ候補リスト中の全ての候補がプルーニングされた場合、マージ候補構成プロセスが再び開始し、前述のプルーニングプロセスは適用されない。そのようなマージ候補のうちのいずれか1つが使用された場合、セクション1で開示されたそれぞれの制限が適用される。
【0156】
別の例では、レギュラーマージリスト構成プロセスに適用される上記の変更を用いて生成された結果として生じる候補リストは、GEO候補動きおよびMMVD候補動きを生成するために、GEOおよびMMVDなどの他のマージモードに直接使用され得る。
【0157】
代替的に、いくつかの例示的なビデオ技法は、マージモード(例えば、レギュラーマージ)のマージ候補リスト構成プロセスを変更のないまま保持し得る。しかしながら、ビデオエンコーダ200は、現在のピクチャとは異なるサイズの参照ピクチャおよび/またはWPが適用されている参照ピクチャに関連付けられたマージ候補リストから候補を選ばないように構成され得る。
【0158】
一例では、GEO候補リスト構成プロセスを実行する際に、ビデオエンコーダ200およびビデオデコーダ300は、現在のピクチャよりも大きいまたは小さいサイズを有する参照ピクチャを指している動きベクトル候補をサンプリングすることをスキップし得る。例えば、候補が、スケーリングされた参照ピクチャサイズを指している単方向予測動きを用いてコーディングされる場合、この候補はスキップされる。別の例では、候補が双方向予測動きを用いてコーディングされる場合、考慮されるべき3つの異なるケースが存在する。(1)候補の両方の動きベクトルがスケーリングされた参照ピクチャを指している場合、この候補はスキップされる。(2)候補の一方の動きベクトルのみが、スケーリングされた参照ピクチャを指している場合、候補の他方の動きベクトルはGEO候補リストに挿入される。(3)候補の両方の動きベクトルがスケーリングされていない参照ピクチャに関連付けられている場合、VVCテストモデル(VVC Test Model、VTM)と同じパリティベースの選択が適用される。
【0159】
別の例では、MMVDベース候補リスト(例えば、レギュラーマージ候補リストの最初の1つまたは2つの候補)に対して、ビデオエンコーダ200およびビデオデコーダ300は、現在のピクチャよりも大きいまたは小さいサイズを有する参照ピクチャを指している動きベクトル候補をサンプリングすることをスキップし得る。例えば、候補が、スケーリングされた参照ピクチャサイズを指している単方向予測動きを用いてコーディングされる場合、この候補はスキップされる。別の例では、候補が双方向予測動きを用いてコーディングされる場合、考慮されるべき3つの異なるケースが存在する。(1)候補の両方の動きベクトルがスケーリングされた参照ピクチャに関連付けられている場合、この候補はスキップされる。(2)候補の一方の動きベクトルのみが、スケーリングされた参照ピクチャに関連付けられている場合、この候補は、スケーリングされた参照ピクチャに関連付けられた動きベクトルを除去することによって、単方向予測候補に縮退される。(3)候補の両方の動きベクトルがスケーリングされていない参照ピクチャに関連付けられている場合、この候補は、変更なしでMMVDに直接使用され得る。別の例では、MMVDプロセスは、レギュラーマージ候補リスト中の最初の2つの候補のうちの少なくとも1つが完全にプルーニングされる場合、レギュラーマージ候補リストの最初の1つおよび2つの候補を超えてより多くの候補をチェックすることを含み得る。
【0160】
別の例では、GEO候補リスト構成プロセスの場合、ビデオエンコーダ200およびビデオデコーダ300は、WPが適用されている参照ピクチャを指している動きベクトル候補をサンプリングすることをスキップし得る。例えば、WPが適用された参照ピクチャを指している単方向予測動きを用いて候補がコーディングされる場合、この候補はスキップされる。別の例では、候補が双方向予測動きを用いてコーディングされる場合、考慮されるべき3つの異なるケースが存在する。(1)候補の両方の動きベクトルが、WPが適用された参照ピクチャを指している場合、この候補はスキップされる。(2)候補の一方の動きベクトルのみが、WPが適用された参照ピクチャを指している場合、候補の他方の動きベクトルはGEO候補リストに挿入される。(3)候補の動きベクトルのいずれも、WPが適用された参照ピクチャを指していない場合、VTMと同じパリティベースの選択が適用される。
【0161】
別の例では、MMVDベース候補リスト(例えば、レギュラーマージ候補リストの最初の1つまたは2つの候補)に対して、ビデオエンコーダ200およびビデオデコーダ300は、WPが適用された参照ピクチャを指している動きベクトル候補をサンプリングすることをスキップし得る。例えば、WPが適用された参照ピクチャを指している単方向予測動きを用いて候補がコーディングされる場合、この候補はスキップされる。別の例では、候補が双方向予測動きを用いてコーディングされる場合、考慮されるべき3つの異なるケースが存在する。(1)候補の両方の動きベクトルが、WPが適用された参照ピクチャを指している場合、この候補はスキップされる。(2)候補の一方の動きベクトルのみが、WPが適用された参照ピクチャを指している場合、この候補は、WPが適用されている動きベクトルを除去することによって、単方向予測候補に縮退される。(3)候補の両方の動きベクトルが、WPが適用されていない参照ピクチャを指している場合、この候補は、変更なしでMMVDに直接使用され得る。別の例では、MMVDプロセスは、レギュラーマージ候補リスト中の最初の2つの候補のうちの少なくとも1つが完全にプルーニングされる場合、レギュラーマージ候補リストの最初の1つおよび2つの候補を超えてより多くの候補をチェックすることを含み得る。
【0162】
セクション2テンプレートベースのインター予測の例外処理
セクション1とは異なり、ビデオエンコーダ200およびビデオデコーダ300は、前述の制限がトリガされるか否かにかかわらず、テンプレートベースのインター予測技法を無効化もバイパスもしないように構成される。言い換えれば、ビデオエンコーダ200およびビデオデコーダ300は、必要に応じて、テンプレートベースのインター予測技法を実行し、シンタックス要素をコーディングし、および/または候補をソートするように構成される。
【0163】
一例では、現在のピクチャサイズが参照ピクチャサイズと異なる場合、ビデオエンコーダ200およびビデオデコーダ300は、RPRのそれぞれの補間フィルタを使用して参照テンプレートブロックに対して動き補償を依然として実行する。したがって、参照テンプレートブロックサイズは現在のテンプレートブロックに一致し、したがって、テンプレートベースのインター予測技法は依然として実行され得る。
【0164】
別の例では、WPがインターブロックの参照ピクチャに適用される場合、ビデオエンコーダ200およびビデオデコーダ300は、WPパラメータを用いて参照テンプレートブロックに対して動き補償を依然として実行し得、次いで、テンプレートベースのインター予測技法が依然として実行され得る。
【0165】
代替的に、別の例では、ビデオエンコーダ200およびビデオデコーダ300は、参照テンプレートブロックが動き補償される場合、WPパラメータを使用しない。
【0166】
図7は、本開示の技法を実行し得る、例示的なビデオエンコーダ200を示すブロック図である。
図7は、説明のために提供され、本開示において広く例示されて説明される技法を限定するものと見なされるべきでない。説明のために、本開示は、VVC(開発中のITU-T H.266)およびHEVC(ITU-T H.265)の技法によるビデオエンコーダ200を説明する。しかしながら、本開示の技法は、他のビデオコーディング規格、並びに、AV1およびAV1の後継のビデオコーディングフォーマットなどのビデオコーディングフォーマットに構成される、ビデオ符号化デバイスによって実施され得る。
【0167】
図7の実施例では、ビデオエンコーダ200は、ビデオデータメモリ230、モード選択ユニット202、残差生成ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、フィルタユニット216、復号ピクチャバッファ(decoded picture buffer、DPB)218、およびエントロピー符号化ユニット220を含む。ビデオデータメモリ230、モード選択ユニット202、残差生成ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、フィルタユニット216、DPB218、およびエントロピー符号化ユニット220のうちのいずれかまたは全てが、1つ若しくは複数のプロセッサにおいてまたは処理回路において実装され得る。例えば、ビデオエンコーダ200のユニットは、ハードウェア回路の一部としての1つまたは複数の回路若しくは論理要素として、またはプロセッサ、ASIC、若しくはFPGAの一部として実装され得る。その上、ビデオエンコーダ200は、これらおよび他の機能を実行するための追加または代替のプロセッサまたは処理回路を含んでもよい。
【0168】
ビデオデータメモリ230は、ビデオエンコーダ200のコンポーネントによって符号化されるべきビデオデータを記憶し得る。ビデオエンコーダ200は、ビデオデータメモリ230に記憶されたビデオデータを、例えば、ビデオソース104(
図1)から受信し得る。DPB218は、ビデオエンコーダ200によって後続のビデオデータの予測において使用するための参照ビデオデータを記憶する、参照ピクチャメモリとして機能してもよい。ビデオデータメモリ230およびDPB218は、同期ダイナミックランダムアクセスメモリ(synchronous dynamic random access memory、SDRAM)を含むDRAM、磁気抵抗RAM(magnetoresistive RAM、MRAM)、抵抗RAM(resistive RAM、RRAM)、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ230およびDPB218は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ230は、示されるように、ビデオエンコーダ200の他の構成要素とともにオンチップであってもよく、またはそれらの構成要素に対してオフチップであってもよい。
【0169】
本開示では、ビデオデータメモリ230への言及は、そのように特に記載されない限り、ビデオエンコーダ200の内部のメモリに、またはそのように特に記載されない限り、ビデオエンコーダ200の外部のメモリに限定されるものとして、解釈されるべきではない。むしろ、ビデオデータメモリ230への言及は、ビデオエンコーダ200が符号化のために受信するビデオデータ(例えば、符号化されるべき現在のブロックに対するビデオデータ)を記憶する参照メモリとして理解されるべきである。
図1のメモリ106はまた、ビデオエンコーダ200の様々なユニットからの出力の一時的な記憶域を提供し得る。
【0170】
図7の様々なユニットは、ビデオエンコーダ200によって実行される動作を理解する助けとなるように示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組み合わせとして実装され得る。固定機能回路は、特定の機能を提供する回路を指し、実行され得る動作があらかじめ決められている。プログラマブル回路は、様々なタスクを実行するようにプログラムされ得る回路を指し、実行され得る動作においてフレキシブルな機能を提供する。例えば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義される方式で、プログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は(例えば、パラメータを受信するためまたはパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が実行する動作のタイプは一般に不変である。いくつかの例では、ユニットのうちの1つまたは複数は、異なる回路ブロック(固定機能またはプログラマブル)であってもよく、いくつかの例では、ユニットのうちの1つまたは複数は集積回路であってもよい。
【0171】
ビデオエンコーダ200は、算術論理ユニット(arithmetic logic units、ALUs)、基本機能ユニット(elementary function units、EFUs)、デジタル回路、アナログ回路、および/または、プログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオエンコーダ200の動作がプログラマブル回路によって実行されるソフトウェアを使用して実行される例では、メモリ106(
図1)が、ビデオエンコーダ200が受信および実行するソフトウェアの命令(例えば、オブジェクトコード)を記憶してもよく、またはビデオエンコーダ200内の別のメモリ(図示せず)が、そのような命令を記憶してもよい。
【0172】
ビデオデータメモリ230は、受信されたビデオデータを記憶するように構成される。ビデオエンコーダ200は、ビデオデータメモリ230からビデオデータのピクチャを取り出してもよく、ビデオデータを残差生成ユニット204およびモード選択ユニット202に提供してもよい。ビデオデータメモリ230中のビデオデータは、符号化されるべき未加工のビデオデータであってもよい。
【0173】
モード選択ユニット202は、動き推定ユニット222、動き補償ユニット224、およびイントラ予測ユニット226を含む。モード選択ユニット202は、他の予測モードに従ってビデオ予測を実行するための追加の機能ユニットを含んでもよい。例として、モード選択ユニット202は、パレットユニット、(動き推定ユニット222および/または動き補償ユニット224の一部であり得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(linear model、LM)ユニットなどを含んでもよい。
【0174】
モード選択ユニット202は一般に、複数の符号化パスを協調させて、符号化パラメータの組み合わせと、そのような組み合わせに対して結果として得られるレート歪み値を試験する。符号化パラメータは、CUへのCTUの分割、CUに対する予測モード、CUの残差データに対する変換タイプ、CUの残差データに対する量子化パラメータなどを含んでもよい。モード選択ユニット202は最終的に、他の試験された組み合わせより良いレート歪み値を有する符号化パラメータの組み合わせを選択し得る。
【0175】
ビデオエンコーダ200は、ビデオデータメモリ230から取り出されたピクチャを一連のCTUに分割してもよく、1つまたは複数のCTUをスライス内にカプセル化してよい。モード選択ユニット202は、上述のMTT構造、QTBT構造、スーパーブロック構造、またはクワッドツリー構造などの、ツリー構造に従ってピクチャのCTUを分割し得る。上記で説明したように、ビデオエンコーダ200は、ツリー構造に従ってCTUを分割することから1つまたは複数のCUを形成し得る。そのようなCUは、一般に、「ビデオブロック」または「ブロック」と呼ばれることもある。
【0176】
一般に、モード選択ユニット202はまた、現在のブロック(例えば、現在のCU、またはHEVCでは、PUおよびTUの重複部分)に対する予測ブロックを生成するように、その構成要素(例えば、動き推定ユニット222、動き補償ユニット224、およびイントラ予測ユニット226)を制御する。現在のブロックのインター予測の場合、動き推定ユニット222は、1つまたは複数の参照ピクチャ(例えば、DPB218内に記憶されている1つまたは複数の以前にコーディングされたピクチャ)の中の1つまたは複数の厳密に一致する参照ブロックを特定するために、動き探索を実行し得る。具体的には、動き推定ユニット222は、例えば、差分絶対値和(SAD)、差分二乗和(SSD)、平均絶対差(MAD)、平均二乗差(MSD)などに従って、可能性のある参照ブロックが現在のブロックとどれだけ類似しているかを表す値を計算し得る。動き推定ユニット222は一般に、現在のブロックと検討されている参照ブロックとの間のサンプルごとの差分を使用して、これらの計算を実行し得る。動き推定ユニット222は、現在のブロックと最もよく一致する参照ブロックを示す、これらの計算に起因する最低の値を有する参照ブロックを特定し得る。
【0177】
動き推定ユニット222は、現在のピクチャの中の現在のブロックの位置に対する参照ピクチャの中の参照ブロックの位置を定義する、1つまたは複数の動きベクトル(MVs)を形成し得る。動き推定ユニット222は、次いで、動きベクトルを動き補償ユニット224に提供し得る。例えば、単方向のインター予測の場合、動き推定ユニット222は単一の動きベクトルを提供してもよく、一方、双方向インター予測の場合、動き推定ユニット222は2つの動きベクトルを提供してもよい。動き補償ユニット224は、次いで、動きベクトルを使用して予測ブロックを生成し得る。例えば、動き補償ユニット224は、動きベクトルを使用して参照ブロックのデータを取り出してよい。別の例として、動きベクトルが小数サンプル精度を有する場合、動き補償ユニット224は、1つまたは複数の補間フィルタに従って、予測ブロックに対する値を補間し得る。その上、双方向インター予測の場合、動き補償ユニット224は、それぞれの動きベクトルによって特定される2つの参照ブロックに対するデータを取り出し、例えば、サンプルごとの平均または加重平均を通じて、取り出されたデータを組み合わせ得る。
【0178】
動き推定ユニット222および動き補償ユニット224は、上記で説明したように、LICおよびTMインター予測などの、1つまたは複数のテンプレートベースのインター予測技法を実行するように構成され得る。動き推定ユニット222および動き補償ユニット224は、どのテンプレートベースのインター予測技法がRPRおよび/またはWPとともに使用されるかを定義する上記の技法のいずれかを実行するように構成され得る。
【0179】
動き推定ユニット222および動き補償ユニット224は、AV1ビデオコーディングフォーマットに従って動作する場合、並進動き補償、アフィン動き補償、重複ブロック動き補償(overlapped block motion compensation、OBMC)、および/または合成インター-イントラ予測を使用して、ビデオデータのコーディングブロック(例えば、ルーマコーディングブロックとクロマコーディングブロックの両方)を符号化するように構成され得る。
【0180】
別の例として、イントラ予測またはイントラ予測コーディングの場合、イントラ予測ユニット226は、現在のブロックに隣接サンプルから予測ブロックを生成し得る。例えば、指向性モードの場合、イントラ予測ユニット226は一般に、予測ブロックを作り出すために、隣接サンプルの値を数学的に組み合わせて、現在のブロックにわたって定められた方向においてこれらの計算された値をポピュレートし得る。別の例として、DCモードの場合、イントラ予測ユニット226は、現在のブロックに隣接サンプルの平均を計算し、予測ブロックの各サンプルに対するこの得られた平均を含むように予測ブロックを生成し得る。
【0181】
イントラ予測ユニット226は、AV1ビデオコーディングフォーマットに従って動作する場合、方向性イントラ予測、非方向性イントラ予測、再帰的フィルタイントラ予測、ルーマからクロマ(chroma-from-luma、CFL)予測、イントラブロックコピー(intra block copy、IBC)、および/またはカラーパレットモードを使用して、ビデオデータのコーディングブロック(例えば、ルーマコーディングブロックとクロマコーディングブロックとの両方)を符号化するように構成され得る。モード選択ユニット202は、他の予測モードに従ってビデオ予測を実行するための追加の機能ユニットを含んでもよい。
【0182】
モード選択ユニット202は、予測ブロックを残差生成ユニット204に提供する。残差生成ユニット204は、ビデオデータメモリ230から現在のブロックの未加工の符号化されていないバージョンを受信し、モード選択ユニット202から予測ブロックを受信する。残差生成ユニット204は、現在のブロックと予測ブロックとのサンプルごとの差分を計算する。得られるサンプルごとの差分は、現在のブロックに対する残差ブロックを定義する。いくつかの例では、残差生成ユニット204はまた、残差差分パルスコード変調(residual differential pulse code modulation、RDPCM)を使用して残差ブロックを生成するために、残差ブロックの中のサンプル値の間の差分を決定し得る。いくつかの例では、残差生成ユニット204は、バイナリ減算を実行する1つまたは複数の減算器回路を使用して形成され得る。
【0183】
モード選択ユニット202がCUをPUへと分割する例では、各PUは、ルーマ予測ユニットおよび対応するクロマ予測ユニットと関連付けられ得る。ビデオエンコーダ200およびビデオデコーダ300は、様々なサイズを有するPUをサポートすることができる。前述のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指すことがあり、PUのサイズは、PUのルーマ予測ユニットのサイズを指すことがある。特定のCUのサイズが2N×2Nであることを想定すると、ビデオエンコーダ200は、イントラ予測に対して2N×2NまたはN×NのPUサイズ、およびインター予測に対して2N×2N、2N×N、N×2N、N×N、または類似の、対称のPUサイズをサポートし得る。ビデオエンコーダ200およびビデオデコーダ300はまた、インター予測に対して2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズのための非対称分割をサポートし得る。
【0184】
モード選択ユニット202がCUをPUにさらに分割しない例では、各CUはルーマコーディングブロックおよび対応するクロマコーディングブロックと関連付けられてもよい。上記のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指すことがある。ビデオエンコーダ200およびビデオデコーダ300は、2N×2N、2N×N、またはN×2NのCUサイズをサポートしてよい。
【0185】
いくつかの例として、イントラブロックコピーモードコーディング、アフィンモードコーディング、および線形モデル(LM)モードコーディングなどの他のビデオコーディング技法の場合、モード選択ユニット202は、コーディング技法に関連付けられたそれぞれのユニットを介して、符号化されている現在のブロックに対する予測ブロックを生成する。パレットモードコーディングなどのいくつかの例では、モード選択ユニット202は、予測ブロックを生成しなくてもよく、代わりに、選択されたパレットに基づいてブロックを再構成するための方式を示すシンタックス要素を生成してよい。そのようなモードでは、モード選択ユニット202は、これらのシンタックス要素が符号化されるようにエントロピー符号化ユニット220に提供し得る。
【0186】
上記で説明したように、残差生成ユニット204は、現在のブロックおよび対応する予測ブロックに対するビデオデータを受信する。残差生成ユニット204は次いで、現在のブロックのための残差ブロックを生成する。残差ブロックを生成するために、残差生成ユニット204は、予測ブロックと現在のブロックとのサンプルごとの差を計算する。
【0187】
変換処理ユニット206は、変換係数のブロック(本明細書で「変換係数ブロック」と呼ばれる)を生成するために、1つまたは複数の変換を残差ブロックに適用する。変換処理ユニット206は、変換係数ブロックを形成するために、様々な変換を残差ブロックに適用し得る。例えば、変換処理ユニット206は、離散コサイン変換(DCT)、方向変換、カルーネンレーベ変換(KLT)、または概念的に類似の変換を残差ブロックに適用し得る。いくつかの例では、変換処理ユニット206は、複数の変換、例えば、1次変換および回転変換などの2次変換を、残差ブロックに対して実行してよい。いくつかの例では、変換処理ユニット206は、変換を残差ブロックに適用しない。
【0188】
変換処理ユニット206は、AV1に従って動作する場合、(本明細書では「変換係数ブロック」と呼ばれる)変換係数のブロックを生成するために、1つまたは複数の変換を残差ブロックに適用し得る。変換処理ユニット206は、変換係数ブロックを形成するために、様々な変換を残差ブロックに適用し得る。例えば、変換処理ユニット206は、離散コサイン変換(DCT)と、非対称離散サイン変換(asymmetric discrete sine transform、ADST)と、反転ADST(例えば、逆順におけるADST)と、恒等変換(identity transform、IDTX)と、を含み得る水平/垂直変換組み合わせを適用し得る。恒等変換を使用する場合、変換は、垂直方向または水平方向のうちの1つにおいてスキップされる。いくつかの例では、変換処理はスキップされ得る。
【0189】
量子化ユニット208は、変換係数ブロックにおける変換係数を量子化して量子化された変換係数ブロックを生成してもよい。量子化ユニット208は、現在のブロックに関連付けられた量子化パラメータ(quantization parameter、QP)値に従って、変換係数ブロックの変換係数を量子化し得る。ビデオエンコーダ200は(例えば、モード選択ユニット202を介して)、CUに関連付けられたQP値を調整することによって、現在のブロックに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。量子化は情報の損失をもたらすことがあり、したがって、量子化された変換係数は、変換処理ユニット206によって生成される元の変換係数より精度が低いことがある。
【0190】
逆量子化ユニット210および逆変換処理ユニット212は、それぞれ、逆量子化および逆変換を量子化された変換係数ブロックに適用して、変換係数ブロックから残差ブロックを再構成し得る。再構成ユニット214は、モード選択ユニット202によって生成される再構成される残差ブロックおよび予測ブロックに基づいて、(ある程度の歪みを伴う可能性があるが)現在のブロックに対応する再構成されるブロックを生成し得る。例えば、再構成ユニット214は、再構成されるブロックを生成するために、再構成される残差ブロックのサンプルを、モード選択ユニット202によって生成された予測ブロックからの対応するサンプルに加算し得る。
【0191】
フィルタユニット216は、再構成されるブロックに対して1つまたは複数のフィルタ動作を実行し得る。例えば、フィルタユニット216は、CUのエッジに沿ったブロッキネスアーチファクトを低減するためにデブロッキング動作を実行し得る。フィルタユニット216の動作は、いくつかの例では、スキップされ得る。
【0192】
フィルタユニット216は、AV1に従って動作する場合、再構成されるブロックに対して1つまたは複数のフィルタ動作を実施し得る。例えば、フィルタユニット216は、CUのエッジに沿ったブロッキネスアーチファクトを低減するためにデブロッキング動作を実行し得る。他の例では、フィルタユニット216は、制約付き方向性強調フィルタ(constrained directional enhancement filter、CDEF)を適用してもよく、これは、デブロッキングの後に適用されてもよく、推定されたエッジ方向に基づく、分離不可能、非線形、ローパス方向性フィルタの適用を含み得る。フィルタユニット216はまた、ループ復元フィルタを含んでもよく、これは、CDEFの後に適用され、分離可能対称正規化ウィーナーフィルタまたはデュアル自己誘導フィルタを含み得る。
【0193】
ビデオエンコーダ200は、再構成されるブロックをDPB218に記憶する。例えば、フィルタユニット216の動作が実行されない例では、再構成ユニット214が再構成されるブロックをDPB218に記憶し得る。フィルタユニット216の動作が実行される例では、フィルタユニット216が、フィルタ処理された再構成されるブロックをDPB218に記憶し得る。動き推定ユニット222および動き補償ユニット224は、後で符号化されるピクチャのブロックをインター予測するために、再構成される(かつ、フィルタ処理された可能性のある)ブロックから形成された参照ピクチャをDPB218から取り出し得る。加えて、イントラ予測ユニット226は、現在のピクチャの中の他のブロックをイントラ予測するために、DPB218内の、現在のピクチャの再構成されるブロックを使用し得る。
【0194】
一般に、エントロピー符号化ユニット220は、ビデオエンコーダ200の他の機能構成要素から受信されたシンタックス要素をエントロピー符号化し得る。例えば、エントロピー符号化ユニット220は、量子化ユニット208からの量子化された変換係数ブロックをエントロピー符号化し得る。別の例として、エントロピー符号化ユニット220は、モード選択ユニット202からの予測シンタックス要素(例えば、インター予測のための動き情報またはイントラ予測のためのイントラモード情報)をエントロピー符号化し得る。エントロピー符号化ユニット220は、エントロピー符号化データを生成するために、ビデオデータの別の例であるシンタックス要素に対して1つまたは複数のエントロピー符号化動作を実行し得る。例えば、エントロピー符号化ユニット220は、コンテキスト適応可変長コーディング(context-adaptive variable length coding、CAVLC)動作、CABAC動作、可変長-可変長(variable-to-variable、V2V)コーディング動作、シンタックスベースコンテキスト適応バイナリ算術コーディング(syntax-based context-adaptive binary arithmetic coding、SBAC)動作、確率間隔分割エントロピー(Probability Interval Partitioning Entropy、PIPE)コーディング動作、指数ゴロム符号化動作、または別のタイプのエントロピー符号化動作を、データに対して実行し得る。いくつかの例では、エントロピー符号化ユニット220は、シンタックス要素がエントロピー符号化されないバイパスモードで動作し得る。
【0195】
ビデオエンコーダ200は、スライスまたはピクチャのブロックを再構成するために必要とされるエントロピー符号化シンタックス要素を含むビットストリームを出力し得る。具体的には、エントロピー符号化ユニット220がビットストリームを出力してもよい。
【0196】
エントロピー符号化ユニット220は、AV1に従って、シンボル対シンボル適応マルチシンボル算術コーダ(symbol-to-symbol adaptive multi-symbol arithmetic coder)として構成され得る。AV1におけるシンタックス要素はN個の要素のアルファベットを含み、コンテキスト(例えば、確率モデル)はN個の確率のセットを含む。エントロピー符号化ユニット220は、確率をnビット(例えば、15ビット)累積分布関数(cumulative distribution functions、CDFs)として記憶し得る。エントロピー符号化ユニット22は、コンテキストを更新するために、アルファベットサイズに基づく更新ファクタを用いて、再帰的スケーリングを実施し得る。
【0197】
上記で説明した動作は、ブロックに関して説明される。そのような説明は、ルーマコーディングブロックおよび/またはクロマコーディングブロックのための動作であるものとして理解されるべきである。上記で説明したように、いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、CUのルーマ成分およびクロマ成分である。いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、PUのルーマ成分およびクロマ成分である。
【0198】
いくつかの例では、ルーマコーディングブロックに関して実行される動作は、クロマコーディングブロックに対して繰り返される必要はない。一例として、ルーマコーディングブロックのための動きベクトル(MV)および参照ピクチャを特定するための動作が、クロマブロックのためのMVおよび参照ピクチャを特定するために繰り返される必要はない。むしろ、ルーマコーディングブロックのためのMVは、クロマブロックのためのMVを決定するためにスケーリングされてもよく、参照ピクチャも同じであってもよい。別の例として、イントラ予測プロセスは、ルーマコーディングブロックおよびクロマコーディングブロックについて同じであってもよい。
【0199】
ビデオエンコーダ200は、ビデオデータを記憶するように構成されるメモリと、回路に実装され、かつ本開示の参照ピクチャリサンプリングおよびテンプレートベースのインター予測技法を実行するように構成される1つまたは複数の処理ユニットと、を含む、ビデオデータを符号化するように構成されるデバイスの一例を表す。例えば、ビデオエンコーダ200は、RPRモードが有効にされていると決定し、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定し、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを符号化する、ように構成され得る。
【0200】
図8は、本開示の技法を実行し得る、例示的なビデオデコーダ300を示すブロック図である。
図8は、説明のために提供され、本開示において広く例示されて説明される技法を限定するものではない。説明のために、本開示は、VVC(開発中のITU-T H.266)、およびHEVC(ITU-T H.265)の技法によるビデオデコーダ300について説明する。しかしながら、本開示の技法は、他のビデオコーディング規格に従って構成されるビデオコーディングデバイスによって実行され得る。
【0201】
図8の実施例では、ビデオデコーダ300は、コーディング済ピクチャバッファ(coded picture buffer、CPB)メモリ320、エントロピー復号ユニット302、予測処理ユニット304、逆量子化ユニット306、逆変換処理ユニット308、再構成ユニット310、フィルタユニット312、および復号ピクチャバッファ(decoded picture buffer、DPB)314を含む。CPBメモリ320、エントロピー復号ユニット302、予測処理ユニット304、逆量子化ユニット306、逆変換処理ユニット308、再構成ユニット310、フィルタユニット312、およびDPB314のいずれかまたは全てが、1つまたは複数のプロセッサにおいて、または処理回路において実装され得る。例えば、ビデオデコーダ300のユニットは、ハードウェア回路の一部としての1つまたは複数の回路若しくは論理要素として、またはプロセッサ、ASIC、若しくはFPGAの一部として実装され得る。その上、ビデオデコーダ300は、これらの機能および他の機能を実行するための追加または代替のプロセッサまたは処理回路を含んでもよい。
【0202】
予測処理ユニット304は、動き補償ユニット316およびイントラ予測ユニット318を含む。予測処理ユニット304は、他の予測モードに従って予測を実行するための追加のユニットを含み得る。例として、予測処理ユニット304は、パレットユニット、(動き補償ユニット316の一部を形成し得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含んでもよい。他の例では、ビデオデコーダ300は、より多い、より少ない、または異なる機能構成要素を含んでもよい。
【0203】
動き補償ユニット316は、上記で説明したように、LICおよびTMインター予測などの、1つまたは複数のテンプレートベースのインター予測技法を実行するように構成され得る。動き補償ユニット316は、どのテンプレートベースのインター予測技法がRPRおよび/またはWPとともに使用されるかを定義する上記の技法のいずれかを実行するように構成され得る。
【0204】
補償ユニット316は、AV1に従って動作する場合、上記で説明されたように、並進動き補償、アフィン動き補償、OBMC、および/または合成インター-イントラ予測を使用して、ビデオデータのコーディングブロック(例えば、ルーマコーディングブロックとクロマコーディングブロックの両方)を復号するように構成され得る。イントラ予測ユニット318は、上記で説明したように、方向性イントラ予測、非方向性イントラ予測、再帰的フィルタイントラ予測、CFL、イントラブロックコピー(IBC)、および/またはカラーパレットモードを使用して、ビデオデータのコーディングブロック(例えば、ルーマコーディングブロックとクロマコーディングブロックの両方)を復号するように構成され得る。
【0205】
CPBメモリ320は、ビデオデコーダ300の構成要素によって復号されるべき符号化されたビデオビットストリームなどのビデオデータを記憶してよい。CPBメモリ320内に記憶されたビデオデータは、例えば、コンピュータ可読媒体110(
図1)から取得され得る。CPBメモリ320は、符号化されたビデオビットストリームからの符号化されたビデオデータ(例えば、シンタックス要素)を記憶するCPBを含んでもよい。また、CPBメモリ320は、ビデオデコーダ300の様々なユニットからの出力を表す一時的なデータなどの、コーディングされたピクチャのシンタックス要素以外のビデオデータを記憶してもよい。DPB314は、一般に、符号化されたビデオビットストリームの後続のデータまたはピクチャを復号するときにビデオデコーダ300が参照ビデオデータとして出力および/または使用し得る復号されたピクチャを記憶する。CPBメモリ320およびDPB314は、SDRAM、MRAM、RRAM、または他のタイプのメモリデバイスなどを含め、DRAMなどの様々なメモリデバイスのうちのいずれかによって形成され得る。CPBメモリ320およびDPB314は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、CPBメモリ320は、ビデオデコーダ300の他の構成要素とともにオンチップであってもよく、またはそれらの構成要素に対してオフチップであってよい。
【0206】
追加または代替として、いくつかの例では、ビデオデコーダ300は、メモリ120(
図1)からコーディングされたビデオデータを取り出し得る。すなわち、メモリ120は、CPBメモリ320について上述されたようなデータを記憶し得る。同様に、メモリ120は、ビデオデコーダ300の機能の一部または全てがビデオデコーダ300の処理回路によって実行されるべきソフトウェアにおいて実装される場合、ビデオデコーダ300によって実行されるべき命令を記憶してもよい。
【0207】
図8に示される様々なユニットは、ビデオデコーダ300によって実行される動作を理解する助けとなるように示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組み合わせとして実装され得る。
図7と同様に、固定機能回路は、特定の機能を提供する回路を指し、実行され得る動作があらかじめ設定されている。プログラマブル回路は、様々なタスクを実行するようにプログラムされ得る回路を指し、実行され得る動作においてフレキシブルな機能を提供する。例えば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義される方式で、プログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は(例えば、パラメータを受信するためまたはパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が実行する動作のタイプは一般に不変である。いくつかの例では、ユニットのうちの1つまたは複数は、異なる回路ブロック(固定機能またはプログラマブル)であってもよく、いくつかの例では、ユニットのうちの1つまたは複数は集積回路であってもよい。
【0208】
ビデオデコーダ300は、ALU、EFU、デジタル回路、アナログ回路、および/または、プログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオデコーダ300の動作が、プログラマブル回路上で実行するソフトウェアによって実行される例では、オンチップメモリまたはオフチップメモリが、ビデオデコーダ300が受信および実行するソフトウェアの命令(例えば、オブジェクトコード)を記憶してもよい。
【0209】
エントロピー復号ユニット302は、シンタックス要素を再生するために、符号化されたビデオデータをCPBから受信しビデオデータをエントロピー復号してもよい。予測処理ユニット304、逆量子化ユニット306、逆変換処理ユニット308、再構成ユニット310、およびフィルタユニット312は、ビットストリームから抽出されたシンタックス要素に基づいて、復号されたビデオデータを生成してよい。
【0210】
一般に、ビデオデコーダ300は、ブロックごとにピクチャを再構成する。ビデオデコーダ300は、各ブロックに対する再構成動作を個別に実行し得る(現在再構成されるブロック、すなわち復号されているブロックは、「現在のブロック」と呼ばれ得る)。
【0211】
エントロピー復号ユニット302は、量子化された変換係数ブロックの量子化された変換係数、並びに量子化パラメータ(QP)および/または変換モード指示などの変換情報を規定する、シンタックス要素をエントロピー復号してよい。逆量子化ユニット306は、量子化の程度、および同様に逆量子化ユニット306が適用すべき逆量子化の程度を決定するために、量子化変換係数ブロックに関連付けられたQPを使用してもよい。逆量子化ユニット306は、例えば、量子化された変換係数を逆量子化するために、ビット単位の左シフト演算を実行してよい。それによって、逆量子化ユニット306は、変換係数を含む変換係数ブロックを形成し得る。
【0212】
逆量子化ユニット306が変換係数ブロックを形成した後、逆変換処理ユニット308は、現在のブロックに関連付けられた残差ブロックを生成するために、変換係数ブロックに1つまたは複数の逆変換を適用し得る。例えば、逆変換処理ユニット308は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、または別の逆変換を変換係数ブロックに適用し得る。
【0213】
さらに、予測処理ユニット304は、エントロピー復号ユニット302によってエントロピー復号された予測情報シンタックス要素に従って予測ブロックを生成する。例えば、現在のブロックがインター予測されることを、予測情報シンタックス要素が示す場合、動き補償ユニット316は、予測ブロックを生成し得る。この場合、予測情報シンタックス要素は、参照ブロックをそこから取り出すべきDPB314内の参照ピクチャ、並びに、現在のピクチャの中の現在のブロックの位置に対する参照ピクチャの中の参照ブロックの位置を特定する動きベクトルを示し得る。動き補償ユニット316は、一般に、動き補償ユニット224(
図7)に関して説明した方式と実質的に同様の方式で、インター予測プロセスを実行することができる。
【0214】
別の例として、現在のブロックがイントラ予測されることを、予測情報シンタックス要素が示す場合、イントラ予測ユニット318は、予測情報シンタックス要素によって示されるイントラ予測モードに従って、予測ブロックを生成し得る。この場合も、イントラ予測ユニット318は、一般に、イントラ予測ユニット226(
図7)に関して説明した方式と実質的に同様の方式で、イントラ予測プロセスを実行することができる。イントラ予測ユニット318は、現在のブロックに隣接サンプルのデータをDPB314から取り出し得る。
【0215】
再構成ユニット310は、予測ブロックと残差ブロックとを使用して現在のブロックを再構成し得る。例えば、再構成ユニット310は、現在のブロックを再構成するために、予測ブロックの対応するサンプルに残差ブロックのサンプルを追加し得る。
【0216】
フィルタユニット312は、再構成されるブロックに対して1つまたは複数のフィルタ動作を実行してもよい。例えば、フィルタユニット312は、再構成されるブロックのエッジに沿ったブロッキネスアーチファクトを低減するために、デブロッキング動作を実行してよい。フィルタユニット312の動作は必ずしも全ての例において実行される必要はない。
【0217】
ビデオデコーダ300は、再構成されるブロックをDPB314内に記憶してもよい。例えば、フィルタユニット312の動作が実行されない例では、再構成ユニット310は再構成されるブロックをDPB314に記憶し得る。フィルタユニット312の動作が実行される例では、フィルタユニット312は、フィルタ処理された再構成されるブロックをDPB314に記憶し得る。上記で説明したように、DPB314は、イントラ予測のための現在のピクチャおよび後続の動き補償のための以前に復号されたピクチャのサンプルなどの参照情報を、予測処理ユニット304に提供してもよい。さらに、ビデオデコーダ300は、
図1の表示デバイス118などの表示デバイス上に後で表示するための復号されたピクチャ(例えば、復号されたビデオ)を、DPB314から出力し得る。
【0218】
このようにして、ビデオデコーダ300は、ビデオデータを記憶するように構成されるメモリと、回路に実装され、かつ本開示の参照ピクチャリサンプリング技法およびテンプレートベースのインター予測技法を実行するように構成される1つまたは複数の処理ユニットとを含む、ビデオ復号化デバイスの一例を表す。例えば、ビデオデコーダ300は、RPRモードが有効にされていると決定し、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定し、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを復号する、ように構成され得る。
【0219】
図9は、本開示の技法による、現在のブロックを符号化するための例示的な方法を示すフローチャートである。現在のブロックは、現在のCUを備え得る。ビデオエンコーダ200(
図1および
図7)に関して説明されているが、他のデバイスを
図9の方法と同様の方法を実行するように構成することができることを理解されたい。
【0220】
この例では、ビデオエンコーダ200は最初に、現在のブロックを予測する(350)。例えば、ビデオエンコーダ200は、現在のブロックに対する予測ブロックを形成することができる。次いで、ビデオエンコーダ200は、現在のブロックに対する残差ブロックを算出することができる(352)。残差ブロックを計算するために、ビデオエンコーダ200は、元の符号化されていないブロックと現在のブロックに対する予測ブロックとの間の差分を計算することができる。ビデオエンコーダ200は、次いで、残差ブロックを変換し、残差ブロックの変換係数を量子化することができる(354)。次に、ビデオエンコーダ200は、残差ブロックの量子化された変換係数を走査することができる(356)。走査の間または走査に続いて、ビデオエンコーダ200は、変換係数をエントロピー符号化することができる(358)。例えば、ビデオエンコーダ200は、CAVLCまたはCABACを使用して変換係数を符号化することができる。ビデオエンコーダ200は、次いで、ブロックのエントロピー符号化されたデータを出力することができる(360)。
【0221】
図10は、本開示の技法による、ビデオデータの現在のブロックを復号するための例示的な方法を示すフローチャートである。現在のブロックは、現在のCUを備え得る。ビデオデコーダ300(
図1および
図8)に関して説明されているが、他のデバイスを
図10の方法と同様の方法を実行するように構成することができることを理解されたい。
【0222】
ビデオデコーダ300は、エントロピー符号化された予測情報および現在のブロックに対応する残差ブロックの変換係数のエントロピー符号化されたデータなどの、現在のブロックのためのエントロピー符号化されたデータを受信することができる(370)。ビデオデコーダ300は、現在のブロックに対する予測情報を決定し、残差ブロックの変換係数を再生するために、エントロピー符号化されたデータをエントロピー復号することができる(372)。ビデオデコーダ300は、現在のブロックに対する予測ブロックを計算するために、例えば、現在のブロックに対する予測情報によって示されるようなイントラ予測モードまたはインター予測モードを使用して、現在のブロックを予測することができる(374)。ビデオデコーダ300は、次いで、量子化された変換係数のブロックを作成するために、再生された変換係数を逆走査することができる(376)。ビデオデコーダ300は、次いで、残差ブロックを生成するために、変換係数を逆量子化し、変換係数に逆変換を適用することができる(378)。ビデオデコーダ300は、予測ブロックおよび残差ブロックを合成することによって、現在のブロックを最終的に復号することができる(380)。
【0223】
図11は、本開示の技法による、ビデオデータのための別の例示的な方法を示すフローチャートである。
図11の技法は、動き推定ユニット222および/または動き補償ユニット224を含む、ビデオエンコーダ200の1つまたは複数の構造構成要素によって実行され得る。
【0224】
本開示の一例では、ビデオエンコーダ200は、参照ピクチャリサンプリング(RPR)モードが有効にされていると決定する(1100)ように構成され得る。一例では、ビデオエンコーダ200は、ビデオデータの参照ピクチャがビデオデータの現在のピクチャとは異なるサイズであることに基づいて、RPRモードが有効にされていると決定するように構成され得る。別の例では、ビデオエンコーダ200は、双方向予測を使用してビデオデータをコーディングするように構成される。この例では、RPRモードは、複数の参照ピクチャのうちの少なくとも1つの参照ピクチャがビデオデータの現在のピクチャとは異なるサイズであることに基づいて有効にされる。
【0225】
ビデオエンコーダ200は、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定する(1102)ようにさらに構成され得る。一例では、テンプレートベースのインター予測技法は、局所照明補償(LIC)である。別の例では、テンプレートベースのインター予測技法は、テンプレートマッチング(TM)予測である。インター予測は、レギュラーマージモード、レギュラー高度動きベクトル予測(AMVP)モード、アフィンマージモード、またはアフィンAMVPモードのうちの1つであり得る。
【0226】
ビデオエンコーダ200は、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを符号化する(1104)ようにさらに構成され得る。例えば、ビデオエンコーダ200は、LICをビデオデータのインター予測仮説に適用しない場合がある。
【0227】
図12は、本開示の技法による、ビデオデータを復号するための別の例示的な方法を示すフローチャートである。
図12の技法は、動き補償ユニット316を含む、ビデオデコーダ300の1つまたは複数の構造構成要素によって実行することができる。
【0228】
本開示の一例では、ビデオデコーダ300は、参照ピクチャリサンプリング(RPR)モードが有効にされていると決定する(1200)ように構成され得る。一例では、ビデオデコーダ300は、ビデオデータの参照ピクチャがビデオデータの現在のピクチャとは異なるサイズであることに基づいて、RPRモードが有効にされていると決定するように構成され得る。別の例では、ビデオデコーダ300は、双方向予測を使用してビデオデータをコーディングするように構成される。この例では、RPRモードは、複数の参照ピクチャのうちの少なくとも1つの参照ピクチャがビデオデータの現在のピクチャとは異なるサイズであることに基づいて有効にされる。
【0229】
ビデオデコーダ300は、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定する(1202)ようにさらに構成され得る。一例では、テンプレートベースのインター予測技法は、局所照明補償(LIC)である。別の例では、テンプレートベースのインター予測技法は、テンプレートマッチング(TM)予測である。インター予測は、レギュラーマージモード、レギュラー高度動きベクトル予測(AMVP)モード、アフィンマージモード、またはアフィンAMVPモードのうちの1つであり得る。
【0230】
ビデオデコーダ300は、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを復号する(1204)ようにさらに構成され得る。例えば、ビデオデコーダ300は、LICをビデオデータのインター予測仮説に適用しない場合がある。
【0231】
別の例では、ビデオデコーダ300は、RPRが現在のブロックの参照ピクチャに使用されていることに基づいて、局所照明補償(LIC)フラグの値を推測するように構成され得る。
【0232】
別の例では、インター予測がマージモードである場合、ビデオデコーダ300は、ビデオデータのブロックのためのマージ候補リストを構成し、プルーニングされたマージ候補リストを作成するためにマージ候補リストをプルーニングし、マージ候補リストをプルーニングすることが、ビデオデータの現在のピクチャとは異なるサイズである少なくとも1つの参照ピクチャを有するマージ候補を除去することを含み、プルーニングされたマージ候補リストを使用してビデオデータのブロックを復号する、ように構成され得る。
【0233】
別の例では、インター予測がマージモードである場合、ビデオデコーダ300は、ビデオデータのブロックのためのマージ候補リストを構成し、プルーニングされたマージ候補リストを作成するためにマージ候補リストをプルーニングし、マージ候補リストをプルーニングすることが、ビデオデータの現在のピクチャとは異なるサイズである全ての参照ピクチャを有するマージ候補を除去することを含み、プルーニングされたマージ候補リストを使用してビデオデータのブロックを復号する、ように構成され得る。
【0234】
本開示の他の例示的な態様が以下で説明される。
【0235】
態様1A-ビデオデータをコーディングする方法であって、参照ピクチャリサンプリング(RPR)モードが有効にされているか否かに基づいて、局所照明補償(LIC)モードをビデオデータに適用するか否かを決定することと、決定することに基づいて、LICモードおよび/またはRPRモードを使用してビデオデータをコーディングすることと、を含む、方法。
【0236】
態様2A-ビデオデータをコーディングする方法であって、重み付け予測(WP)モードが有効にされているか否かに基づいて、局所照明補償(LIC)モードをビデオデータに適用するか否かを決定することと、決定することに基づいて、LICモードおよび/またはWPモードを使用してビデオデータをコーディングすることと、を含む、方法。
【0237】
態様3A-ビデオデータをコーディングする方法であって、参照ピクチャリサンプリング(RPR)モードが有効にされているか否かに基づいて、テンプレートマッチング(TM)モードをビデオデータに適用するか否かを決定することと、決定することに基づいて、TMモードおよび/またはRPRモードを使用してビデオデータをコーディングすることと、を含む、方法。
【0238】
態様4A-ビデオデータをコーディングする方法であって、重み付け予測(WP)モードが有効にされているか否かに基づいて、テンプレートマッチング(TM)モードをビデオデータに適用するか否かを決定することと、決定することに基づいて、TMモードおよび/またはWPモードを使用してビデオデータをコーディングすることと、を含む、方法。
【0239】
態様5A-態様1A~4Aの任意の組み合わせの方法。
【0240】
態様6A-コーディングすることが、復号することを含む、請求項1A~5Aのいずれかに記載の方法。
【0241】
態様7A-コーディングすることが、符号化することを含む、態様1A~5Aのいずれかに記載の方法。
【0242】
態様8A-ビデオデータをコーディングするためのデバイスであって、態様1A~7Aのいずれかに記載の方法を実行するための1つまたは複数の手段を備える、デバイス。
【0243】
態様9A-1つまたは複数の手段が、回路構成において実装された1つまたは複数のプロセッサを備える、態様8Aに記載のデバイス。
【0244】
態様10A-ビデオデータを記憶するためのメモリをさらに備える、態様8Aまたは9Aに記載のデバイス。
【0245】
態様11A-復号されたビデオデータを表示するように構成されるディスプレイをさらに備える、態様8A~10Aのいずれかに記載のデバイス。
【0246】
態様12A-デバイスが、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、態様8A~11Aのいずれかに記載のデバイス。
【0247】
態様13A-デバイスが、ビデオデコーダを備える、態様8A~12Aのいずれかに記載のデバイス。
【0248】
態様14A-デバイスが、ビデオエンコーダを備える、態様8A~13Aのいずれかに記載のデバイス。
【0249】
態様15A-命令を記憶した、コンピュータ可読記憶媒体であって、命令が実行されたときに、1つまたは複数のプロセッサに、態様1A~7Aのいずれかに記載の方法を実行させる、コンピュータ可読記憶媒体。
【0250】
態様1B-ビデオデータを復号する方法であって、参照ピクチャリサンプリング(RPR)モードが有効にされていると決定することと、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定することと、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを復号することと、を含む、方法。
【0251】
態様2B-テンプレートベースのインター予測技法が、局所照明補償(LIC)である、態様1Bに記載の方法。
【0252】
態様3B-テンプレートベースのインター予測技法を適用せずにビデオデータを復号することが、LICをビデオデータのインター予測仮説に適用しないことを含む、態様2Bに記載の方法。
【0253】
態様4B-RPRモードが、ビデオデータの参照ピクチャがビデオデータの現在のピクチャとは異なるサイズであることに基づいて有効にされる、態様1Bに記載の方法。
【0254】
態様5B-インター予測が、レギュラーマージモード、レギュラー高度動きベクトル予測(AMVP)モード、アフィンマージモード、またはアフィンAMVPモードのうちの1つである、態様1Bに記載の方法。
【0255】
態様6B-RPRが現在のブロックの参照ピクチャに使用されていることに基づいて、局所照明補償(LIC)フラグの値を推測すること、をさらに含む、態様5Bに記載の方法。
【0256】
態様7B-インター予測がマージモードであり、方法が、ビデオデータのブロックのためのマージ候補リストを構成することと、プルーニングされたマージ候補リストを作成するためにマージ候補リストをプルーニングすることであって、ビデオデータの現在のピクチャとは異なるサイズである少なくとも1つの参照ピクチャを有するマージ候補を除去することを含む、プルーニングすることと、プルーニングされたマージ候補リストを使用してビデオデータのブロックを復号することと、をさらに含む、態様5Bに記載の方法。
【0257】
態様8B-インター予測がマージモードであり、方法が、ビデオデータのブロックのためのマージ候補リストを構成することと、プルーニングされたマージ候補リストを作成するためにマージ候補リストをプルーニングすることであって、ビデオデータの現在のピクチャとは異なるサイズである全ての参照ピクチャを有するマージ候補を除去することを含む、プルーニングすることと、プルーニングされたマージ候補リストを使用してビデオデータのブロックを復号することと、をさらに含む、態様5Bに記載の方法。
【0258】
態様9B-インター予測が双方向予測であり、RPRモードが、複数の参照ピクチャのうちの少なくとも1つの参照ピクチャがビデオデータの現在のピクチャとは異なるサイズであることに基づいて有効にされる、態様1Bに記載の方法。
【0259】
態様10B-テンプレートベースのインター予測技法が、テンプレートマッチング(TM)予測である、態様1Bに記載の方法。
【0260】
態様11B-ビデオデータのピクチャを表示すること、をさらに含む、態様1Bに記載の方法。
【0261】
態様12B-ビデオデータを復号するように構成される装置であって、ビデオデータを記憶するように構成されるメモリと、回路において実装され、かつメモリと通信する1つまたは複数のプロセッサと、を備え、1つまたは複数のプロセッサが、参照ピクチャリサンプリング(RPR)モードが有効にされていると決定し、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定し、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを復号する、ように構成される、装置。
【0262】
態様13B-テンプレートベースのインター予測技法が、局所照明補償(LIC)である、態様12Bに記載の装置。
【0263】
態様14B-テンプレートベースのインター予測技法を適用せずにビデオデータを復号するために、1つまたは複数のプロセッサが、LICをビデオデータのインター予測仮説に適用しない、ようにさらに構成される、態様13Bに記載の装置。
【0264】
態様15B-RPRモードが、ビデオデータの参照ピクチャがビデオデータの現在のピクチャとは異なるサイズであることに基づいて有効にされる、態様12Bに記載の装置。
【0265】
態様16B-インター予測が、レギュラーマージモード、レギュラー高度動きベクトル予測(AMVP)モード、アフィンマージモード、またはアフィンAMVPモードのうちの1つである、態様12Bに記載の装置。
【0266】
態様17B-1つまたは複数のプロセッサが、RPRが現在のブロックの参照ピクチャに使用されていることに基づいて、局所照明補償(LIC)フラグの値を推測する、ようにさらに構成される、態様16Bに記載の装置。
【0267】
態様18B-インター予測がマージモードであり、1つまたは複数のプロセッサが、ビデオデータのブロックのためのマージ候補リストを構成し、プルーニングされたマージ候補リストを作成するためにマージ候補リストをプルーニングし、マージ候補リストをプルーニングすることが、ビデオデータの現在のピクチャとは異なるサイズである少なくとも1つの参照ピクチャを有するマージ候補を除去することを含み、プルーニングされたマージ候補リストを使用してビデオデータのブロックを復号する、ようにさらに構成される、態様16Bに記載の装置。
【0268】
態様19B-インター予測がマージモードであり、1つまたは複数のプロセッサが、ビデオデータのブロックのためのマージ候補リストを構成し、プルーニングされたマージ候補リストを作成するためにマージ候補リストをプルーニングし、マージ候補リストをプルーニングすることが、ビデオデータの現在のピクチャとは異なるサイズである全ての参照ピクチャを有するマージ候補を除去することを含み、プルーニングされたマージ候補リストを使用してビデオデータのブロックを復号する、ようにさらに構成される、態様16Bに記載の装置。
【0269】
態様20B-インター予測が双方向予測であり、RPRモードが、複数の参照ピクチャのうちの少なくとも1つの参照ピクチャがビデオデータの現在のピクチャとは異なるサイズであることに基づいて有効にされる、態様12Bに記載の装置。
【0270】
態様21B-テンプレートベースのインター予測技法が、テンプレートマッチング(TM)予測である、態様12Bに記載の装置。
【0271】
態様22B-ビデオデータのピクチャを表示するように構成されるディスプレイ、をさらに備える、態様12Bに記載の装置。
【0272】
態様23B-ビデオデータを符号化する方法であって、参照ピクチャリサンプリング(RPR)モードが有効にされていると決定することと、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定することと、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを符号化することと、を含む、方法。
【0273】
態様24B-ビデオデータを符号化するように構成される装置であって、ビデオデータを記憶するように構成されるメモリと、回路において実装され、かつメモリと通信する1つまたは複数のプロセッサと、を備え、1つまたは複数のプロセッサが、参照ピクチャリサンプリング(RPR)モードが有効にされていると決定し、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定し、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを符号化する、ように構成される、装置。
【0274】
態様25B-ビデオデータを復号する方法であって、参照ピクチャリサンプリング(RPR)モードが有効にされていると決定することと、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用することと、を含む、方法。
【0275】
態様26B-RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用することが、補間フィルタをテンプレートベースのインター予測技法の参照テンプレートブロックに適用することを含み、補間フィルタが、RPRモードに使用されるものと同じである、態様25Bに記載の方法。
【0276】
態様27B-テンプレートベースのインター予測技法が、テンプレートマッチング(TM)予測である、態様25Bに記載の方法。
【0277】
態様28B-ビデオデータを復号するように構成される装置であって、ビデオデータを記憶するように構成されるメモリと、回路において実装され、かつメモリと通信する1つまたは複数のプロセッサと、を備え、1つまたは複数のプロセッサが、参照ピクチャリサンプリング(RPR)モードが有効にされていると決定し、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用する、ように構成される、装置。
【0278】
態様29B-RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用するために、1つまたは複数のプロセッサが、補間フィルタをテンプレートベースのインター予測技法の参照テンプレートブロックに適用する、ようにさらに構成されており、補間フィルタが、RPRモードに使用されるものと同じである、態様28Bに記載の装置。
【0279】
態様30B-テンプレートベースのインター予測技法が、テンプレートマッチング(TM)予測である、態様28Bに記載の装置。
【0280】
態様1C-ビデオデータを復号する方法であって、参照ピクチャリサンプリング(RPR)モードが有効にされていると決定することと、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定することと、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを復号することと、を含む、方法。
【0281】
態様2C-テンプレートベースのインター予測技法が、局所照明補償(LIC)である、態様1Cに記載の方法。
【0282】
態様3C-テンプレートベースのインター予測技法を適用せずにビデオデータを復号することが、LICをビデオデータのインター予測仮説に適用しないことを含む、態様2Cに記載の方法。
【0283】
態様4C-RPRモードが、ビデオデータの参照ピクチャがビデオデータの現在のピクチャとは異なるサイズであることに基づいて有効にされる、態様1C~3Cのいずれかに記載の方法。
【0284】
態様5C-インター予測が、レギュラーマージモード、レギュラー高度動きベクトル予測(AMVP)モード、アフィンマージモード、またはアフィンAMVPモードのうちの1つである、態様1C~4Cのいずれかに記載の方法。
【0285】
態様6C-RPRが現在のブロックの参照ピクチャに使用されていることに基づいて、局所照明補償(LIC)フラグの値を推測すること、をさらに含む、態様5Cに記載の方法。
【0286】
態様7C-インター予測がマージモードであり、方法が、ビデオデータのブロックのためのマージ候補リストを構成することと、プルーニングされたマージ候補リストを作成するためにマージ候補リストをプルーニングすることであって、ビデオデータの現在のピクチャとは異なるサイズである少なくとも1つの参照ピクチャを有するマージ候補を除去することを含む、プルーニングすることと、プルーニングされたマージ候補リストを使用してビデオデータのブロックを復号することと、をさらに含む、態様5Cに記載の方法。
【0287】
態様8C-インター予測がマージモードであり、方法が、ビデオデータのブロックのためのマージ候補リストを構成することと、プルーニングされたマージ候補リストを作成するためにマージ候補リストをプルーニングすることであって、ビデオデータの現在のピクチャとは異なるサイズである全ての参照ピクチャを有するマージ候補を除去することを含む、プルーニングすることと、プルーニングされたマージ候補リストを使用してビデオデータのブロックを復号することと、をさらに含む、態様5Cに記載の方法。
【0288】
態様9C-インター予測が双方向予測であり、RPRモードが、複数の参照ピクチャのうちの少なくとも1つの参照ピクチャがビデオデータの現在のピクチャとは異なるサイズであることに基づいて有効にされる、態様1C~8Cのいずれかに記載の方法。
【0289】
態様10C-テンプレートベースのインター予測技法が、テンプレートマッチング(TM)予測である、態様1C~9Cのいずれかに記載の方法。
【0290】
態様11C-ビデオデータのピクチャを表示すること、をさらに含む、態様1C~10Cのいずれかに記載の方法。
【0291】
態様12C-ビデオデータを復号するように構成される装置であって、ビデオデータを記憶するように構成されるメモリと、回路において実装され、かつメモリと通信する1つまたは複数のプロセッサと、を備え、1つまたは複数のプロセッサが、参照ピクチャリサンプリング(RPR)モードが有効にされていると決定し、RPRモードが有効にされていることに基づいて、テンプレートベースのインター予測技法をビデオデータに適用しないと決定し、テンプレートベースのインター予測技法を適用せずに、インター予測を使用してビデオデータを復号する、ように構成される、装置。
【0292】
態様13C-テンプレートベースのインター予測技法が、局所照明補償(LIC)である、態様12Cに記載の装置。
【0293】
態様14C-テンプレートベースのインター予測技法を適用せずにビデオデータを復号するために、1つまたは複数のプロセッサが、LICをビデオデータのインター予測仮説に適用しない、ようにさらに構成される、態様13Cに記載の装置。
【0294】
態様15C-RPRモードが、ビデオデータの参照ピクチャがビデオデータの現在のピクチャとは異なるサイズであることに基づいて有効にされる、態様12C~14Cのいずれかに記載の装置。
【0295】
態様16C-インター予測が、レギュラーマージモード、レギュラー高度動きベクトル予測(AMVP)モード、アフィンマージモード、またはアフィンAMVPモードのうちの1つである、態様12C~15Cのいずれかに記載の装置。
【0296】
態様17C-1つまたは複数のプロセッサが、RPRが現在のブロックの参照ピクチャに使用されていることに基づいて、局所照明補償(LIC)フラグの値を推測するようにさらに構成される、態様16Cに記載の装置。
【0297】
態様18C-インター予測がマージモードであり、1つまたは複数のプロセッサが、ビデオデータのブロックのためのマージ候補リストを構成し、プルーニングされたマージ候補リストを作成するためにマージ候補リストをプルーニングし、マージ候補リストをプルーニングすることが、ビデオデータの現在のピクチャとは異なるサイズである少なくとも1つの参照ピクチャを有するマージ候補を除去することを含み、プルーニングされたマージ候補リストを使用してビデオデータのブロックを復号する、ようにさらに構成される、態様16Cに記載の装置。
【0298】
態様19C-インター予測がマージモードであり、1つまたは複数のプロセッサが、ビデオデータのブロックのためのマージ候補リストを構成し、プルーニングされたマージ候補リストを作成するためにマージ候補リストをプルーニングし、マージ候補リストをプルーニングすることが、ビデオデータの現在のピクチャとは異なるサイズである全ての参照ピクチャを有するマージ候補を除去することを含み、プルーニングされたマージ候補リストを使用してビデオデータのブロックを復号する、ようにさらに構成される、態様16Cに記載の装置。
【0299】
態様20C-インター予測が双方向予測であり、RPRモードが、複数の参照ピクチャのうちの少なくとも1つの参照ピクチャがビデオデータの現在のピクチャとは異なるサイズであることに基づいて有効にされる、態様12C~19Cのいずれかに記載の装置。
【0300】
態様21C-テンプレートベースのインター予測技法が、テンプレートマッチング(TM)予測である、態様12C~20Cのいずれかに記載の装置。
【0301】
態様22C-ビデオデータのピクチャを表示するように構成されるディスプレイ、をさらに備える、態様12C~21Cのいずれかに記載の装置。
【0302】
例に応じて、本明細書において説明された技法のうちのいずれかのいくつかの行為またはイベントが、異なる順序で実行されることが可能であり、追加、統合、または完全に除外されてもよい(例えば、説明された全ての行為またはイベントが技法の実践に必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、例えば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて並行して実行されてもよい。
【0303】
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装されてよい。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されてもよく、またはコンピュータ可読媒体を介して送信されてもよく、ハードウェアベースの処理ユニットによって実行されてもよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に相当するコンピュータ可読記憶媒体、または、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このように、コンピュータ可読媒体は一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号または搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法を実装するための命令、コード、および/またはデータ構造を取り出すために、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であってもよい。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0304】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令若しくはデータ構造の形態の所望のプログラムコードを記憶するために使用でき、コンピュータによってアクセスすることができる任意の他の媒体を備えてもよい。また、任意の接続がコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義の中に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まず、代わりに非一時的な有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、一方で、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記のものの組み合わせもコンピュータ可読媒体の範囲内に含まれるべきである。
【0305】
命令は、1つまたは複数のDSP、汎用マイクロプロセッサ、ASIC、FPGA、または他の均等な集積論理回路若しくはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」および「処理回路」という用語は、上記の構造、または本明細書で説明された技法の実装に適した任意の他の構造のうちのいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成される専用のハードウェアモジュールおよび/若しくはソフトウェアモジュール内で提供されてもよく、または複合コーデックの中に組み込まれてもよい。また、技法は、1つまたは複数の回路または論理要素において完全に実装されてもよい。
【0306】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(例えば、チップセット)を含む、多種多様なデバイスまたは装置において実装されてもよい。開示された技法を実行するように構成されるデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットについて本開示で説明したが、それらは必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わせられてもよく、または好適なソフトウェアおよび/若しくはファームウェアと連携して、上記で説明したような1つまたは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてもよい。
【0307】
様々な例が説明されてきた。これらおよび他の例が以下の特許請求の範囲内に入る。
【国際調査報告】