(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-28
(45)【発行日】2024-04-05
(54)【発明の名称】ビデオ・コーディングのための方法及び装置
(51)【国際特許分類】
H04N 19/59 20140101AFI20240329BHJP
H04N 19/46 20140101ALI20240329BHJP
H04N 19/52 20140101ALI20240329BHJP
H04N 19/513 20140101ALI20240329BHJP
【FI】
H04N19/59
H04N19/46
H04N19/52
H04N19/513
(21)【出願番号】P 2022560925
(86)(22)【出願日】2021-09-30
(86)【国際出願番号】 US2021052967
(87)【国際公開番号】W WO2022154835
(87)【国際公開日】2022-07-21
【審査請求日】2022-10-05
(32)【優先日】2021-01-14
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-09-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】イエア,セフーン
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リウ,シャン
【審査官】田部井 和彦
(56)【参考文献】
【文献】国際公開第2019/197674(WO,A1)
【文献】特表2013-518463(JP,A)
【文献】国際公開第2019/197661(WO,A1)
【文献】特表2021-520741(JP,A)
【文献】国際公開第2022/139934(WO,A1)
【文献】特表2023-517350(JP,A)
【文献】米国特許出願公開第2008/0130745(US,A1)
【文献】米国特許出願公開第2015/0350672(US,A1)
【文献】特表2009-540666(JP,A)
【文献】特表2019-515587(JP,A)
【文献】Jianping Lin et al.,Convolutional Neural Network-Based Block Up-Sampling for HEVC [online],Published in: IEEE Transactions on Circuits and Systems for Video Technology (Volume: 29, Issue: 12, December 2019), [2023年10月10日検索],2018年11月30日,pp.3701-3715,インターネット <URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8554306>,DOI: 10.1109/TCSVT.2018.2884203
【文献】Siwei Ma et al.,Block Adaptive Super Resolution Video Coding [online],Springer-Verlag Berlin Heidelberg 2009, [2023年10月10日検索],2009年,pp.1048-1057,インターネット <URL: http://idm.pku.edu.cn/__local/9/44/B4/CA50FE0A998ED2347F096BFA5D8_D40DDFC7_3285C.pdf?e=.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/59
H04N 19/46
H04N 19/52
H04N 19/513
(57)【特許請求の範囲】
【請求項1】
デコーダにおけるビデオ復号化方法であって:
ビデオ・ビットストリームを復号化して、現在のブロックに対する減少解像度の残差ブロックを取得するステップ;
ブロック・レベル・フラグは事前に定義された値に設定されていると判断するステップであって、前記事前に定義された値は、前記現在のブロックが減少解像度コーディングでコーディングされていることを示す、ステップ;
前記ブロック・レベル・フラグに基づいて、前記現在のブロックのフル解像度の参照ブロックをダウン・サンプリングすることによって、前記現在のブロックに対する減少解像度の予測ブロックを生成するステップ;
前記減少解像度の予測ブロックと前記減少解像度の残差ブロックとに基づいて、前記現在のブロックに対する減少解像度の再構成ブロックを生成するステップ;及び
前記減少解像度の再構成ブロックをアップ・サンプリングすることによって、前記現在のブロックに対するフル解像度の再構成ブロックを生成するステップ;
を含む方法
であって、前記方法は、
前記現在のブロックの第1隣接ブロックの動きベクトルを、前記現在のブロックと前記第1隣接ブロックのダウン・サンプリング率の比率であるスケーリング係数に基づいてスケーリングするステップ;及び
前記現在のブロックに対する第1動きベクトル候補リストを構築するステップであって、前記第1動きベクトル候補リストは前記第1隣接ブロックのスケーリングされた動きベクトルを含む、ステップ;
を更に含み、前記現在のブロックの再構成のために選択される場合に、前記第1隣接ブロックからの動きベクトル候補であって前記現在のブロックと同じダウン・サンプリング率を有するものが、より高い優先度を有するように、前記現在のブロック及び前記第1隣接ブロックのダウン・サンプリング率に基づいて、前記第1動きベクトル候補リスト内での前記スケーリングされた動きベクトルの優先度が決定される、方法。
【請求項2】
請求項1に記載の方法において、前記減少解像度の予測ブロックを生成するステップは:
前記フル解像度の参照ブロックのサイズと前記現在のブロックのダウン・サンプリング率とに基づいて、前記減少解像度の予測ブロックのサイズを決定するステップ;
を含む、方法。
【請求項3】
請求項1に記載の方法において、前記判断するステップは:
前記現在のブロックに対する前記ブロック・レベル・フラグを、前記ビデオ・ビットストリームから復号化するステップを含み、前記ブロック・レベル・フラグは、前記現在のブロックが前記減少解像度コーディングでコーディングされていることを示す、方法。
【請求項4】
請求項1に記載の方法において、前記判断するステップは:
フィルタ係数又は前記フィルタ係数のインデックスのうちの1つを、前記ビデオ・ビットストリームから復号化するステップを更に含み、前記フィルタ係数は、前記減少解像度の再構成ブロックをアップ・サンプリングする際に使用される、方法。
【請求項5】
請求項
1に記載の方法において、前記スケーリングするステップは:
前記スケーリング係数が2の冪乗であることに応じて、前記スケーリングされた動きベクトルを、シフト演算に基づいて決定するステップ;及び
前記スケーリング係数が2の冪乗でないことに応じて、前記スケーリングされた動きベクトルを、ルック・アップ・テーブルに基づいて決定するステップ;
を含む、方法。
【請求項6】
請求項1に記載の方法において:
前記現在のブロックの1つ以上の第2隣接ブロックに基づいて、前記現在のブロックに対する第2動きベクトル候補リストを構築するステップであって、前記1つ以上の第2隣接ブロックの各々は、前記現在のブロックと同じダウン・サンプリング率を有する、ステップ;及び
前記現在のブロックの1つ以上の第3隣接ブロックに基づいて、前記現在のブロックに対する第3動きベクトル候補リストを構築するステップであって、前記1つ以上の第3隣接ブロックの各々は、前記現在のブロックとは異なるダウン・サンプリング率を有する、ステップ;
を更に含む方法。
【請求項7】
請求項
6に記載の方法において:
指定された数より少ない、前記第2動きベクトル候補リスト内の動きベクトル候補の数に基づいて、前記第3動きベクトル候補リストをスキャニングするステップ;
を更に含む、方法。
【請求項8】
請求項
6に記載の方法において:
前記第2動きベクトル候補リストと前記第3動きベクトル候補リストとをインターリーブ方式でマージすることによって、前記現在のブロックに対する第4動きベクトル候補リストを決定するステップ;
を更に含む、方法。
【請求項9】
請求項1に記載の方法において:
前記現在のブロックのダウン・サンプリング率に基づいて、前記現在のブロックのアフィン・パラメータを決定するステップ;
を更に含む方法。
【請求項10】
請求項1ないし
9のうちの何れか一項に記載の方法を実行するように構成された処理回路を含む装置。
【請求項11】
請求項1ないし
9のうちの何れか一項に記載の方法をコンピュータのプロセッサに実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 参照による援用
本願は、2021年9月28日付で出願された米国特許出願第17/488,027号「ビデオ・コーディングのための方法及び装置」に対する優先権を主張しており、同出願は、2021年1月14日付で出願された米国仮出願第63/137,350号「CUベースの超解像度コーディングのための混合解像度予測」に対する優先権を主張している。先の出願の開示は、それら全体で参照により本願に組み込まれる。
【0002】
[0002] 技術分野
本開示は概してビデオ・コーディングに関連する実施形態を説明している。
【背景技術】
【0003】
[0003] 本願で行われる背景の説明は、本開示の状況を一般的に提示するためのものである。目下の発明者名の下になされる仕事は、その仕事がこの背景のセクションだけでなく、別の方法で出願時における先行技術としての適格性を付与されない記述の態様で説明される範囲において、本開示に対する先行技術として、明示的にも暗示的にも認められていない。
【0004】
[0004] ビデオ符号化及び復号化は、動き補償を伴うインター・ピクチャ予測を用いて実行されることが可能である。非圧縮デジタル・ビデオは一連のピクチャを含むことが可能であり、各ピクチャは、例えば1920×1080のルミナンス・サンプル及び関連するクロミナンス・サンプルの空間次元を有する。一連のピクチャは、例えば60ピクチャ/秒、即ち60Hzの固定された又は可変のピクチャ・レート(非公式に、フレーム・レートとして知られている)を有することが可能である。非圧縮ビデオは、かなりのビットレート要件を有する。例えば、サンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzのフレーム・レートで1920×1080のルミナンス・サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。このようなビデオの1時間は、600Gバイトを超える記憶スペースを必要とする。
【0005】
[0005] ビデオ符号化及び復号化の目的の1つは、圧縮による入力ビデオ信号の冗長性の低減であるということができる。圧縮は、場合によっては、2桁以上の大きさで、前述の帯域幅又は記憶スペース要件を低減するのに役立つ可能性がある。ロスレス及び非ロスレス圧縮の両方、並びにそれらの組み合わせを用いることができる。ロスレス圧縮とは、元の信号の正確なコピーが、圧縮された元の信号から再構成することができる技術をいう。非ロスレス圧縮を使用する場合、再構成された信号は、元の信号と同一ではないかもしれないが、元の信号と再構成された信号との間の歪は、再構成された信号が、意図される用途にとって有用である程度に十分に小さい。ビデオの場合、非ロスレス圧縮が広く用いられている。許容される歪の量は、用途に依存し、例えば特定の消費者ストリーミング・アプリケーションのユーザーは、テレビ配信アプリケーションのユーザーよりも高い歪に耐え得る可能性がある。達成可能な圧縮比は、より高い許容可能な/耐え得る歪はより高い圧縮比をもたらし得る、ということを反映することが可能である。
【0006】
[0006] ビデオ・エンコーダ及びデコーダは、例えば、動き補償、変換、量子化、及びエントロピー・コーディングを含む幾つかの広範なカテゴリからの技術を利用することができる。
【0007】
[0007] ビデオ・コーデック技術は、イントラ・コーディングとして知られる技術を含むことが可能である。イントラ・コーディングでは、サンプル値は、以前に再構成された参照画像からのサンプル又はその他のデータを参照することなく、表現される。幾つかのビデオ・コーデックでは、ピクチャはサンプルのブロックに空間的に分割される。サンプルの全てのブロックがイントラ・モードでコーディングされる場合、そのピクチャはイントラ・ピクチャとすることが可能である。イントラ・ピクチャとその派生物、例えば独立デコーダ・リフレッシュ・ピクチャは、デコーダ状態をリセットするために使用されることが可能であり、従って、コーディングされたビデオ・ビットストリーム及びビデオ・セッションにおける最初のピクチャとして、又は静止画像として使用されることが可能である。イントラ・ブロックのサンプルに変換を施すことが可能であり、変換係数はエントロピー符号化の前に量子化されることが可能である。イントラ予測は、変換前のドメインにおけるサンプル値を最小化する技術である可能性がある。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピー符号化後にブロックを表現するために所与の量子化ステップ・サイズで必要とされるビット数は少ない。
【0008】
[0008] 例えばMPEG-2世代コーディング技術で知られているような伝統的なイントラ・コーディングは、イントラ予測を使用しない。しかしながら、幾つかの新しいビデオ圧縮技術は、例えば、データ・ブロックの空間的に隣接し且つ復号化順で先行するものの符号化及び/又は復号化の際に得られた周辺サンプル・データ及び/又はメタデータから、サンプル値を予測しようとする技術を含む。このような技術は以後「イントラ予測」技術と呼ばれる。少なくとも幾つかのケースでは、イントラ予測は、参照ピクチャからではなく、再構成中の現在のピクチャからの参照データのみを使用していることに留意されたい。
【0009】
[0009] 様々な多数の形式のイントラ予測が存在し得る。所与のビデオ・コーディング技術において、1つより多くのそのような技術が使用される可能性がある場合、使用する技術は、イントラ予測モードでコーディングすることができる。ある場合には、モードは、サブモード及び/又はパラメータを有することが可能であり、それらは、個別にコーディングすることが可能であり、又はモード・コードワードに含めることが可能である。所与のモード、サブモード、及び/又はパラメータの組み合わせに使用するコードワードは、イントラ予測を通じてコーディング効率ゲインに効果をもたらし、また、コードワードをビットストリームに変換するために使用されるエントロピー・コーディング技術についても同様である。
【0010】
[0010] 特定のイントラ予測モードがH.264で導入され、H.265で改良され、共同探査モデル(JEM)、汎用ビデオ・コーディング(VVC)、及びベンチマーク・セット(BMS)のようなより新しいコーディング技術で更に改良されている。予測子ブロック(predictor block)は、既に利用可能なサンプルに属する隣接するサンプル値を使用して形成されることが可能である。隣接するサンプルのサンプル値は、ある方向に従って予測子ブロックにコピーされる。使用中の方向に対するリファレンスは、ビットストリームでコーディングされてもよいし、又はそれ自身予測されてもよい。
【0011】
[0011]
図1Aを参照すると、右下に示されているものは、(35個のイントラ・モードのうちの33個の角度モードに対応する)H.265の33個の可能な予測子方向から分かる9個の予測子方向のサブセットである。矢印が集まる点(101)は、予測されるサンプルを表現する。矢印は、サンプルが予測される元ととなる方向を示しています。例えば、矢印(102)は、サンプル(101)が、水平から45度の角度で、1つのサンプル又は複数のサンプルから右上に向かって予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平から22.5度の角度で、1つのサンプル又は複数のサンプルからサンプル(101)の左下に向かって予測されることを示す。
【0012】
[0012] 引き続き
図1Aを参照すると、左上には、4×4サンプルの正方形ブロック(104)が示されている(破線の太線で示されている)。正方形ブロック(104)は、16個のサンプルを含み、各々は、“S”と、Y次元におけるその位置(例えば、行インデックス)と、X次元におけるその位置(例えば、列インデックス)とでラベル付けされている。例えば、サンプルS21は、Y次元の第2サンプル(上から)及びX次元の第1サンプル(左から)にある。同様に、サンプルS44は、Y及びX次元の両方においてブロック(104)の第4サンプルである。ブロックのサイズは4×4サンプルであるので、S44は右下にある。更に、同様の番号付け方式に従う参照サンプルが示されている。参照サンプルはRと、ブロック(104)に対するY位置(例えば、行インデックス)と、X位置(列インデックス)とでラベル付けされている。H.264とH.265の両方において、予測サンプルは再構成中にブロックに隣接しており;従って、負の値が使用される必要はない。
【0013】
[0013] イントラ・ピクチャ予測は、シグナリングされた予測方向よって必要に応じて隣接サンプルから参照サンプル値をコピーすることによって処理することができる。例えば、コーディングされたビデオ・ビットストリームは、このブロックについて、矢印(102)と一致する予測方向を示すシグナリングを含むことを仮定し、即ち、サンプルは、水平方向から45度の角度で、1つ又は複数の予測サンプルから右上に向かって予測される。その場合、サンプルS41、S32、S23、及びS14は、同じ参照サンプルR05から予測される。そして、サンプルS44は参照サンプルR08から予測される。
【0014】
[0014] ある場合には、特に方向が45度で均一に分割できない場合には、ある参照サンプルを計算するために、複数の参照サンプルの値が、例えば補間によって組み合わせられることが可能である。
【0015】
[0015] 可能な方向の数は、ビデオ・コーディング技術が発達するにつれて増加している。H.264(2003年)では、9つの異なる方向を表現することができた。これは、H.265(2013年)で33まで増やされ、本開示時の時点におけるJEM/VVC/BMSは、65個に及ぶ方向をサポートすることができる。最も可能性の高い方向を同定するために実験が行われ、より可能性の高い方向を少数のビットで、より可能性の低い方向についてはあるペナルティを受け入れて表現するために、エントロピー・コーディングにおいてある技術が使用される。更に、方向それ自体が、隣接する、既に復号化されたブロックで使用された隣接方向から予測できる場合が多い。
【0016】
[0016]
図1Bは、JEMによる65個のイントラ予測方向を示す概略(105)を示しており、徐々に増加する予測方向数を示す。
【0017】
[0017] 方向を表すコーディングされたビデオ・ビットストリームにおけるイントラ予測方向ビットのマッピングは、ビデオ・コーディング技術ごとに異なる可能性があり;例えば、予測方向のイントラ予測モードへの、コードワードへのシンプルな直接的なマッピングから、最も可能性の高いモードを含む複雑な適応方式や、類似の技術に及ぶ可能性がある。しかしながら、全てのケースにおいて、ビデオ・コンテンツにおいて、特定の他の方向よりも統計的に起こりにくい特定の方向が存在する可能性がある。ビデオ圧縮のゴールは冗長性の低減であるので、良好に動作するビデオ・コーディング技術においては、より可能性の低い方向は、より可能性の高い方向より多くのビット数で表現される。
【0018】
[0018] 動き補償は、非ロスレス圧縮技術である可能性があり、動きベクトル(以下、MVとする)で示される方向に空間的にシフトした後に、以前に再構成されたピクチャ又はその一部(参照ピクチャ)からのサンプル・データのブロックが、新たに再構成されるピクチャ又はピクチャの一部分の予測に使用される技術に関連付けることが可能である。場合によっては、参照ピクチャは、現在再構成中のピクチャと同じである可能性がある。MVは、2つの次元X及びY、又は3次元を有する可能性があり、第3の次元は、使用中の参照ピクチャを指し示すものである(後者は、間接的に、時間次元であるとすることが可能である)。
【0019】
[0019] 一部のビデオ圧縮技術では、サンプル・データの特定のエリアに適用可能なMVは、他のMVから、例えば、再構成中のエリアに空間的に隣接するサンプル・データの他のエリアに関連するものであって復号化の順番でそのMVに先行するものから、予測することが可能である。このようにすると、MVをコーディングするために必要なデータ量を大幅に削減することができ、それによって冗長性を除去し、圧縮を高めることができる。例えば、カメラ(ナチュラル・ビデオとして知られる)から導出される入力ビデオ信号をコーディングする際に、単一のMVが適用可能であるエリアよりも大きなエリアが、同様な方向に移動する統計的な尤度が存在し、従って場合によっては、隣接するエリアのMVから導出される同様な動きベクトルを用いて予測することが可能であるので、MV予測は効果的に機能する可能性がある。これは、与えられたエリアに対して、周囲のMVから予測されるMVに類似する又は同一であると見出されるMVをもたらし、それは、エントロピー・コーディングの後に、MVを直接的にコーディングする場合に使用されるものよりも、より少ないビット数で表現されることが可能である。場合によっては、MV予測は、元の信号(即ち、サンプル・ストリーム)から導出される信号(即ち、MV)のロスレス圧縮の一例である可能性がある。他の場合に、MV予測それ自体は、例えば幾つかの周囲のMVから予測子を計算する際に、丸め誤差に起因して非ロスレスである可能性がある。
【0020】
[0020] 様々なMV予測メカニズムは、H.265/HEVC(ITU-T Rec.H.265,“High Efficiency Video Coding”,December 2016)に記載されている。H.265が提供する多くのMV予測メカニズムのうち、本願で説明されるものは、今後「空間マージ」と呼ばれる技術である。
【0021】
[0021]
図1を参照すると、現在のブロック(カレント・ブロック)(111)は、空間的にシフトされた同じサイズの以前のブロックから予測可能であるように動き探索プロセス中にエンコーダによって発見されているサンプルを含む。そのMVを直接的にコーディングする代わりに、MVは、1つ以上の参照ピクチャに関連付けられたメタデータから、例えばA0、A1、及びB0、B1、B2と示される5つの周辺サンプル(それぞれ112ないし116)の何れかに関連付けられたMVを使用して、(復号化の順序で)最新の参照ピクチャから、導出されることが可能である。H.265では、MV予測は、隣接ブロックが使用しているものと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0022】
[0022] 本開示の態様は、ビデオ符号化/復号化のための装置を提供する。装置は、ビデオ・ビットストリームを復号化して、現在のブロックに対する減少解像度の残差ブロック(reduced-resolution residual block)を取得する処理回路を含む。処理回路は、ブロック・レベル・フラグは事前に定義された値に設定されていると判断する。事前に定義された値は、現在のブロックが減少解像度コーディングでコーディングされていることを示す。処理回路は、ブロック・レベル・フラグに基づいて、現在のブロックのフル解像度の参照ブロック(full-resolution reference block)をダウン・サンプリングすることによって、現在のブロックに対する減少解像度の予測ブロックを生成する。処理回路は、減少解像度の予測ブロックと減少解像度の残差ブロックとに基づいて、現在のブロックに対する減少解像度の再構成ブロックを生成する。処理回路は、減少解像度の再構成ブロックをアップ・サンプリングすることによって、現在のブロックに対するフル解像度の再構成ブロックを生成する。
【0023】
[0023] 実施形態において、処理回路は、フル解像度の参照ブロックのサイズと現在のブロックのダウン・サンプリング率とに基づいて、減少解像度の予測ブロックのサイズを決定する。
【0024】
[0024] 実施形態において、処理回路は、現在のブロックに対するブロック・レベル・フラグを、ビデオ・ビットストリームから復号化する。ブロック・レベル・フラグは、現在のブロックが減少解像度コーディングでコーディングされていることを示す。
【0025】
[0025] 実施形態において、処理回路は、フィルタ係数又は前記フィルタ係数のインデックスのうちの1つを、ビデオ・ビットストリームから復号化する。フィルタ係数は、減少解像度の再構成ブロックをアップ・サンプリングする際に使用される。
【0026】
[0026] 実施形態において、処理回路は、現在のブロックの第1隣接ブロックの動きベクトルを、現在のブロックと第1隣接ブロックのダウン・サンプリング率の比率であるスケーリング係数に基づいてスケーリングする。処理回路は、現在のブロックに対する第1動きベクトル候補リストを構築する。第1動きベクトル候補リストは第1隣接ブロックのスケーリングされた動きベクトルを含む。
【0027】
[0027] 実施形態において、処理回路は、スケーリング係数が2の冪乗であることに応じて、スケーリングされた動きベクトルを、シフト演算に基づいて決定する。一例では、スケーリング係数が2Nである場合に、スケーリングされた動きベクトルを得るために、動きベクトルの水平成分の下位Nビットと動きベクトルの垂直成分の下位Nビットは破棄される。別の例において、スケーリング係数が2Nである場合に、先ず、動きベクトルは丸め係数(例えば、2N-1)とともに加算され、次いで、動きベクトルの水平成分の下位Nビットと動きベクトルの垂直成分の下位Nビットが、スケーリングされた動きベクトルを得るために破棄される。
【0028】
[0028] 実施形態において、処理回路は、スケーリング係数が2の冪乗でないことに応じて、スケーリングされた動きベクトルを、ルック・アップ・テーブルに基づいて決定する。
【0029】
[0029] 実施形態において、処理回路は、第1動きベクトル候補リスト内でのスケーリングされた動きベクトルの優先度を、現在のブロックと第1隣接ブロックのダウン・サンプリング率に基づいて決定する。
【0030】
[0030] 実施形態において、処理回路は、現在のブロックの1つ以上の第2隣接ブロックに基づいて、現在のブロックに対する第2動きベクトル候補リストを構築する。1つ以上の第2隣接ブロックの各々は、現在のブロックと同じダウン・サンプリング率を有する。処理回路は、現在のブロックの1つ以上の第3隣接ブロックに基づいて、現在のブロックに対する第3動きベクトル候補リストを構築する。1つ以上の第3隣接ブロックの各々は、現在のブロックとは異なるダウン・サンプリング率を有する。
【0031】
[0031] 実施形態において、処理回路は、指定された数より少ない、第2動きベクトル候補リスト内の動きベクトル候補の数に基づいて、第3動きベクトル候補リストをスキャンする。
【0032】
[0032] 実施形態において、処理回路は、第2動きベクトル候補リストと第3動きベクトル候補リストとをインターリーブ方式でマージすることによって、現在のブロックに対する第4動きベクトル候補リストを決定する。
【0033】
[0033] 実施形態において、処理回路は、現在のブロックのダウン・サンプリング率に基づいて、現在のブロックのアフィン・パラメータを決定する。
【0034】
[0034] 本開示の態様は、ビデオ符号化/復号化のための方法を開示する。方法において、ビデオ・ビットストリームは、現在のブロックに対する減少解像度の残差ブロックを取得するために復号化される。事前に定義された値に設定されているブロック・レベル・フラグが決定される。事前に定義された値は、現在のブロックが減少解像度コーディングでコーディングされていることを示す。ブロック・レベル・フラグに基づいて、現在のブロックのフル解像度の参照ブロックをダウン・サンプリングすることによって、現在のブロックに対する減少解像度の予測ブロックが生成される。減少解像度の予測ブロックと減少解像度の残差ブロックとに基づいて、減少解像度の再構成ブロックが現在のブロックに対して生成される。減少解像度の再構成ブロックをアップ・サンプリングすることによって、フル解像度の再構成ブロックが現在のブロックに対して生成される。
【0035】
[0035] また、本開示の態様は、命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体も提供し、命令は少なくとも1つのプロセッサにより実行されると、少なくとも1つのプロセッサに、ビデオ符号化/復号化のための方法のうちの任意の1つ又はそれらの組み合わせを実行させる。
【図面の簡単な説明】
【0036】
[0036] 開示される対象事項の更なる特徴、性質、及び種々の利点は、以下の詳細な説明及び添付の図面から更に明らかになるであろう。
【
図1A】[0037]
図1Aは、イントラ予測モードの例示的なサブセットの概略図である。
【
図1B】[0038]
図1Bは、例示的なイントラ予測方向の例示である。
【
図1C】[0039]
図1Cは、一例における現在のブロック及びその周囲の空間マージ候補の概略図である。
【
図2】[0040]
図2は、実施形態による通信システムの簡略化されたブロック図の概略図である。
【
図3】[0041]
図3は、実施形態による通信システムの簡略化されたブロック図の概略図である。
【
図4】[0042]
図4は、実施形態によるデコーダの簡略化されたブロック図の概略図である。
【
図5】[0043]
図5は、実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【
図6】[0044]
図6は、他の実施形態によるエンコーダのブロック図を示す。
【
図7】[0045]
図7は、他の実施形態によるデコーダのブロック図を示す。
【
図8】[0046]
図8は、本開示の幾つかの実施形態による例示的なブロック・パーティションを示す。
【
図9A】[0047]
図9Aは、本開示の実施形態によるクワッド・ツリー・プラス・バイナリ・ツリー(QTBT)及び対応するツリー構造を使用する例示的なブロック・パーティショニングを示す。
【
図9B】[0047]
図9Bは、本開示の実施形態によるクワッド・ツリー・プラス・バイナリ・ツリー(QTBT)及び対応するツリー構造を使用する例示的なブロック・パーティショニングを示す。
【
図10】[0048]
図10は、本開示の実施形態による例示的な公称角度を示す。
【
図11】[0049]
図11は、本開示の実施形態による現在のブロックにおける1ピクセルに対する上、左、及び左部サンプルの位置を示す。
【
図12】[0050]
図12は、本開示の実施形態による例示的な再帰フィルタ・イントラ・モードを示す
【
図13】[0051]
図13は、本開示の実施形態による例示的なマルチ・レイヤ参照フレーム構造を示す。
【
図14】[0052]
図14は、本開示の実施形態による例示的な候補動きベクトル・リスト構築プロセスを示す。
【
図15】[0053]
図15は、本開示の実施形態による例示的なモーション・フィールド推定プロセスを示す。
【
図16A】[0054]
図16A及び16Bはそれぞれ上隣接ブロック及び左隣接ブロックを使用して予測される例示的なオーバーラップした領域(陰影領域)を示す。
【
図16B】[0054]
図16A及び16Bはそれぞれ上隣接ブロック及び左隣接ブロックを使用して予測される例示的なオーバーラップした領域(陰影領域)を示す。
【
図17】[0055]
図17は、水平剪断に続いて垂直剪断が行われる例示的な2ステップワーピング・プロセスを示す。
【
図18】[0056]
図18は、AV1におけるフレーム・レベル超解像度を含む全体的なループ・フィルタリング・パイプラインを示す。
【
図19】[0057]
図19は、本開示の実施形態によるブロック・レベル・フラグを使用する例示的な実装を示す。
【
図20】[0058]
図20は、本開示の実施形態による例示的な空間的に隣接する動きベクトルの参照を示す。
【
図21】[0059]
図21は、本開示の実施形態による例示的な時間的に隣接する動きベクトルの参照を示す。
【
図22】[0060]
図22は、本開示の実施形態によるアフィン動き予測のために参照する例示的な空間的に隣接する動きベクトルの参照を示す。
【
図23】[0061]
図23は、実施形態による例示的なフローチャートを示す。
【
図24】[0062]
図24は、実施形態によるコンピュータ・システムの概略図である。
【発明を実施するための形態】
【0037】
[0063] I. ビデオ・デコーダ及びエンコーダ・システム
[0064]
図2は、本開示の実施形態による通信システム(200)の簡略化されたブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して互いに通信することが可能な複数の端末デバイスを含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された第1ペアの端末デバイス(210)及び(220)を含む。
図2の例では、第1ペアの端末デバイス(210)及び(220)は、データの一方向送信を行う。例えば、端末デバイス(210)は、ネットワーク(250)を介する他の端末デバイス(220)への伝送のために、ビデオ・データ(例えば、端末デバイス(210)によって捕捉されたビデオ・ピクチャのストリーム)をコーディングすることができる。符号化されたビデオ・データは、1つ以上のコーディングされたビデオ・ビットストリームの形態で送信することができる。端末デバイス(220)は、コーディングされたビデオ・データをネットワーク(250)から受信し、コーディングされたビデオ・データを復号化して、ビデオ・ピクチャを復元し、復元されたビデオ・データに従ってビデオ・ピクチャを表示することができる。一方向性データ伝送は、メディア・サービング・アプリケーション等において一般的なものであってもよい。
【0038】
[0065] 別の例では、通信システム(200)は、例えば、ビデオ・カンファレンス中に発生する可能性があるコーディングされたビデオ・データの双方向伝送を行う第2ペアの端末デバイス(230)及び(240)を含む。データの双方向伝送に関し、例えば、端末デバイス(230)及び(240)の各端末デバイスは、ネットワーク(250)を介して端末デバイス(230)及び(240)のうちの他方の端末デバイスへ伝送するために、ビデオ・データ(例えば、端末デバイスによって捕捉されるビデオ・ピクチャのストリーム)をコーディングすることができる。端末デバイス(230)及び(240)の各端末デバイスもまた、端末デバイス(230)及び(240)の他方の端末デバイスによって送信されたコーディングされたビデオ・データを受信することが可能であり、コーディングされたビデオ・データを復号化してビデオ・ピクチャを復元することが可能であり、復元されたビデオ・データに従って、アクセス可能なディスプレイ・デバイスでビデオ・ピクチャを表示することが可能である。
【0039】
[0066]
図2の例では、端末デバイス(210)、(220)、(230)、及び(240)は、サーバー、パーソナル・コンピュータ、スマートフォンとして示されているが、本開示の原理はそのように限定されない。本開示の実施形態は、ラップトップ・コンピュータ、タブレット・コンピュータ、メディア・プレーヤ、及び/又は専用のビデオ・カンファレンス装置のアプリケーションを見出している。ネットワーク(250)は、例えば有線(配線されたもの)及び/又は無線通信ネットワークを含む、コーディングされたビデオ・データを端末デバイス(210)、(220)、(230)、及び(240)の間で運ぶ任意数のネットワークを表現する。通信ネットワーク(250)は、回線交換及び/又はパケット交換型のチャネルでデータを交換することができる。代表的なネットワークは、テレコミュニケーション・ネットワーク、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、及び/又はインターネットを含む。本開示の目的に関し、ネットワーク(250)のアーキテクチャ及びトポロジーは、以下において説明されない限り、本開示の動作にとって重要ではない可能性がある。
【0040】
[0067]
図3は、開示される対象事項の適用例として、ストリーミング環境におけるビデオ・エンコーダ及びビデオ・デコーダの配置を示す。開示される対象事項は、例えば、ビデオ・カンファレンス、デジタルTV、圧縮されたビデオのデジタル・メディア(CD、DVD、メモリ・スティック等を含む)での記憶などを含む、他のビデオの利用が可能なアプリケーションにも等しく適用することが可能である。
【0041】
[0068] ストリーミング・システムは、ビデオ・ソース(301)、例えばデジタル・カメラを含むことが可能であり、例えば非圧縮のビデオ・ピクチャ(302)のストリームを生成することが可能なキャプチャ・サブシステム(313)を含んでもよい。一例では、ビデオ・ピクチャのストリーム(302)は、デジタル・カメラによって撮影されるサンプルを含む。符号化されたビデオ・データ(304)(又はコーディングされたビデオ・ビットストリーム)と比較した場合に、より多くのデータ量を強調するために太い線として描かれているビデオ・ピクチャのストリーム(302)は、ビデオ・ソース(301)に結合されたビデオ・エンコーダ(303)を含む電子デバイス(320)によって処理されることが可能である。ビデオ・エンコーダ(303)は、ハードウェア、ソフトウェア、又はそれらの組み合わせを含み、以下で詳細に説明されるような開示される対象事項の態様を動作可能にする又は実現することが可能である。ビデオ・ピクチャ(302)のストリームと比較した場合に、より少ないデータ量を強調するために細い線として描かれている符号化されたビデオ・データ(304)(又は符号化されたビデオ・ビットストリーム(304))は、将来の使用のためにストリーミング・サーバー(305)に記憶されることが可能である。
図3のクライアント・サブシステム(306)及び(308)のような1つ以上のストリーミング・クライアント・サブシステムは、ストリーミング・サーバー(305)にアクセスして、符号化されたビデオ・データ(304)のコピー(307)及び(309)を取り出すことができる。クライアント・サブシステム(306)は、例えば電子デバイス(330)内にビデオ・デコーダ(310)を含むことができる。ビデオ・デコーダ(310)は、符号化されたビデオ・データの到来するコピー(307)を復号化し、ディスプレイ(312)(例えばディスプレイ・スクリーン)又は他のレンダリング・デバイス(不図示)でレンダリングすることができるビデオ・ピクチャの出力ストリーム(311)を生成する。幾つかのストリーミング・システムでは、符号化されたビデオ・データ(304)、(307)、及び(309)(例えば、ビデオ・ビットストリーム)は、特定のビデオ・コーディング/圧縮規格に従って符号化することができる。これらの規格の例は、ITU-T勧告H.265を含む。一例において、開発中のビデオ・コーディング規格は、多用途ビデオ・コーディング(VVC)として非公式に知られている。開示される対象事項はVVCの状況で使用されてもよい。
【0042】
[0069] 電子デバイス(320)及び(330)は、他のコンポーネント(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(320)は、ビデオ・デコーダ(不図示)を含むことが可能であり、電子デバイス(330)は、ビデオ・エンコーダ(不図示)を含むことも可能である。
【0043】
[0070]
図4は本開示の実施形態によるビデオ・デコーダ(410)のブロック図を示す。ビデオ・デコーダ(410)は、電子デバイス(430)に含まれることが可能である。電子デバイス(430)は、受信機(431)(例えば、受信回路)を含むことが可能である。ビデオ・デコーダ(410)は、
図3の例におけるビデオ・デコーダ(310)の代わりに使用することが可能である。
【0044】
[0071] 受信機(431)は、ビデオ・デコーダ(410)によって復号化されるべき1つ以上のコーディングされたビデオ・シーケンスを受信することが可能であり;同じ又は別の実施形態において、各々のコーディングされたビデオ・シーケンスの復号化が、他のコーディングされたビデオ・シーケンスから独立している場合には、一度に1つのコーディングされたビデオ・シーケンスを受信することが可能である。コーディングされたビデオ・シーケンスは、チャネル(401)から受信することが可能であり、このチャネルは、符号化されたビデオ・データを記憶するストレージ・デバイスへのハードウェア/ソフトウェア・リンクであってもよい。受信機(431)は、符号化されたビデオ・データを、他のデータ、例えばコーディングされたオーディオ・データ及び/又は補助的なデータ・ストリームとともに受信することが可能であり、これらのデータは、それぞれのエンティティ(不図示)を使用して転送されることが可能である。受信機(431)は、コーディングされたビデオ・シーケンスを他のデータから分離することができる。ネットワーク・ジッタに対処するために、バッファ・メモリ(415)は、受信機(431)とエントロピー・デコーダ/パーサー(420)(以後「パーサー(420)」と言及する)との間に結合されてもよい。特定のアプリケーションでは、バッファ・メモリ(415)はビデオ・デコーダ(410)の一部である。他の場合において、それはビデオ・デコーダ(410)の外側にある可能性がある(不図示)。更に別の例では、例えばネットワーク・ジッタに対処するために、ビデオ・デコーダ(410)の外側にバッファ・メモリ(不図示)が、更には、例えば再生タイミングを取り扱うためにビデオ・デコーダ(410)の内側に別のバッファ・メモリ(415)が、存在することが可能である。受信機(431)が、十分な帯域幅及び制御可能性を有するストア/フォワード・デバイスから、又は同期ネットワークから、データを受信している場合、バッファ・メモリ(415)は必要とされない可能性があり、又は小さくすることが可能である。インターネットのようなベスト・エフォート・パケット・ネットワークでの使用のために、バッファ・メモリ(415)が必要とされるかもしれず、それは比較的大きい可能性があり、有利なことに適応的なサイズであるとすることが可能であり、ビデオ・デコーダ(410)の外側のオペレーティング・システム又は類似の要素(不図示)において少なくとも部分的に実装されてもよい。
【0045】
[0072] ビデオ・デコーダ(410)は、コーディングされたビデオ・シーケンスからシンボル(421)を再構成するためにパーサー(420)を含むことができる。これらのシンボルのカテゴリは、ビデオ・デコーダ(410)の動作を管理するために使用される情報、及び潜在的には、
図4に示されているように、電子デバイス(430)の不可欠な部分ではないが電子デバイス(430)に結合されることが可能なレンダリング・デバイス(412)(例えば、ディスプレイ・スクリーン)のようなレンダリング・デバイスを制御するための情報を含む。レンダリング・デバイスの制御情報は、サプルメンタル・エンハンスメント情報(SEIメッセージ)又はビデオ・ユーザビリティ情報(VUI)パラメータ・セット・フラグメント(不図示)の形態におけるものであってもよい。パーサー(420)は、受信したコーディングされたビデオ・シーケンスを解析/エントロピー復号化することができる。コーディングされるビデオ・シーケンスのコーディングは、ビデオ・コーディング技術又は規格に従うことが可能であり、可変長コーディング、ハフマン・コーディング、コンテキストの影響を伴う又は伴わない算術コーディング等を含む種々の原理に従うことが可能である。パーサー(420)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオ・デコーダ内のピクセルのサブグループの少なくとも1つに対するサブグループ・パラメータのセットを、コーディングされたビデオ・シーケンスから抽出することができる。サブグループは、グループ・オブ・ピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディング・ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等を含むことが可能である。パーサー(420)はまた、変換係数、量子化パラメータ値、動きベクトル等のようなコーディングされたビデオ・シーケンス情報から抽出することも可能である。
【0046】
[0073] パーサー(420)は、シンボル(421)を生成するために、バッファ・メモリ(415)から受信したビデオ・シーケンスに対してエントロピー復号化/解析処理を実行することが可能である。
【0047】
[0074] シンボル(421)の再構成は、コーディングされたビデオ・ピクチャ又はその部分のタイプ(例えば:インター及びイントラ・ピクチャ、インター及びイントラ・ブロック)及び他の要因に応じて、複数の異なるユニットを含むことが可能である。どのユニットがどのように包含されるかは、コーディングされたビデオ・シーケンスからパーサー(420)によって解析されたサブグループ制御情報によって制御されることが可能である。パーサー(420)と以降の複数ユニットとの間のこのようなサブグループ制御情報の流れは、明確性のために描かれていない。
【0048】
[0075] ビデオ・デコーダ(410)は、既に述べた機能ブロックを超えて更に、以下に説明するような複数の機能ユニットに概念的に細分されることが可能である。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることが可能である。しかしながら、開示される対象事項を説明する目的に関し、以下の機能ユニットへの概念的な細分は適切なことである。
【0049】
[0076] 第1ユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、量子化された変換係数だけでなく制御情報(使用する変換、ブロック・サイズ、量子化因子、量子化スケーリング行列などを含む)も、パーサー(420)からシンボル(421)として受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力されることが可能なサンプル値を含むブロックを出力することが可能である。
【0050】
[0077] 場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラ・コーディングされたブロック:即ち、以前に再構成されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することは可能であるブロックに関連する可能性がある。このような予測情報は、イントラ・ピクチャ予測ユニット(452)によって提供することが可能である。場合によっては、イントラ・ピクチャ予測ユニット(452)は、現在のピクチャのバッファ(458)から取り出された既に再構成された周囲の情報を使用して、再構成中のブロックの同じサイズ及び形状のブロックを生成する。現在のピクチャ・バッファ(458)は、例えば、部分的に再構成された現在のピクチャ及び/又は完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(455)は、場合によっては、サンプル毎に、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供されるような出力サンプル情報に加える。
【0051】
[0078] それ以外の場合には、スケーラ/逆変換ユニット(451)の出力サンプルは、インター・コーディングされた動き補償される可能性のあるブロックに関連する可能性がある。このような場合において、動き補償予測ユニット(453)は、予測に使用されるサンプルを取り出すために、参照ピクチャ・メモリ(457)にアクセスすることが可能である。ブロックに関連するシンボル(421)に従って、取り出されたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(455)によって、スケーラ/逆変換ユニット(451)の出力に加えられ(この場合、残差サンプル又は残差信号と呼ばれる)、出力サンプル情報を生成する。動き補償予測ユニット(453)が予測サンプルを取り出す元である参照ピクチャ・メモリ(457)内のアドレスは、例えばX、Y、及び参照ピクチャ成分を有することが可能であるシンボル(421)の形態で、動き補償予測ユニット(453)にとって利用可能な動きベクトルによって制御されることが可能である。また、動き補償は、サブ・サンプルの正確な動きベクトルが使用される場合に、参照ピクチャ・メモリ(457)から取り出されるようなサンプル値の補間、動きベクトル予測メカニズム等を含むことが可能である。
【0052】
[0079] アグリゲータ(455)の出力サンプルは、ループ・フィルタ・ユニット(456)内の様々なループ・フィルタリング技術の影響を受けることが可能である。ビデオ圧縮技術は、コーディングされたビデオ・シーケンス(コーディングされたビデオ・ビットストリームとも呼ばれる)に含まれ、且つパーサー(420)からのシンボル(421)としてループ・フィルタ・ユニット(456)にとって利用可能にされるパラメータによって制御されるが、コーディングされたピクチャ又はコーディングされたビデオ・シーケンスの(復号化の順番で)以前の部分の復号化の間に取得されたメタ情報に応答することが可能であるとともに、以前に再構成されたループ・フィルタリングされたサンプル値にも応答することが可能である、ループ内フィルタ技術を含むことが可能である。
[0080] ループ・フィルタ・ユニット(456)の出力は、レンダリング・デバイス(412)に出力できるだけでなく、将来のインター・ピクチャ予測に使用するために参照ピクチャ・メモリ(457)に格納することも可能なサンプル・ストリームであるとすることが可能である。
【0053】
[0081] 所定のコーディングされたピクチャは、いったん完全に再構成されると、将来の予測のための参照ピクチャとして使用することが可能である。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサー(420)によって)参照ピクチャとして識別されると、現在のピクチャのバッファ(458)は参照ピクチャ・メモリ(457)の一部となることが可能であり、新しい現在のピクチャのバッファは、以後のコーディングされたピクチャの再構成を開始する前に、再割り当てされることが可能である。
[0082] ビデオ・デコーダ(410)は、ITU-T Rec.H.265のような規格における所定のビデオ圧縮技術に従って復号化動作を実行することが可能である。コーディングされたビデオ・シーケンスは、コーディングされたビデオ・シーケンスが、ビデオ圧縮技術又は規格のシンタックス、及びビデオ圧縮技術又は規格で文書化されているようなプロファイルの両方に従うという意味で、使用されているビデオ圧縮技術又は規格によって指定されたシンタックスに準拠することが可能である。具体的には、プロファイルは、特定のツールを、そのプロファイルの下で使用できる唯一のツールとして、ビデオ圧縮技術又は規格で使用可能なすべてのツールから選択することが可能である。また、コンプライアンスのために必要なことは、コーディングされたビデオ・シーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルによって定義される範囲内に収まることである。場合によっては、そのレベルは、最大ピクチャ・サイズ、最大フレーム・レート、最大再構成サンプル・レート(例えば、毎秒当たりのメガサンプルで測定される)、最大参照ピクチャ・サイズ等を制限する。レベルによって設定される限界は、場合によっては、コーディングされたビデオ・シーケンスでシグナリングされるHRDバッファ管理のための仮想リファレンス・デコーダ(HRD)仕様及びメタデータによって更に制限される可能性がある。
【0054】
[0083] 実施形態では、受信機(431)は、符号化されたビデオとともに追加的(冗長的)なデータを受信する可能性がある。追加的なデータは、コーディングされたビデオ・シーケンスの一部として含まれる可能性がある。追加的なデータは、データを適切に復号化するため、及び/又は元のビデオ・データをより正確に再構成するために、ビデオ・デコーダ(410)によって使用されてもよい。追加的なデータは、例えば、時間、空間、又は信号雑音比(SNR)エンハンスメント・レイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正コード等の形態におけるものとすることが可能である。
【0055】
[0084]
図5は、本開示の実施形態によるビデオ・エンコーダ(503)のブロック図を示す。ビデオ・エンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信機(540)(例えば、送信回路)を含む。ビデオ・エンコーダ(503)は、
図3の例におけるビデオ・エンコーダ(303)の代わりに使用することが可能である。
【0056】
[0085] ビデオ・エンコーダ(503)は、ビデオ・エンコーダ(503)によってコーディングされるべきビデオ画像を捕捉することが可能なビデオ・ソース(501)(
図5の例では電子デバイス(520)の一部ではない)から、ビデオ・サンプルを受信することが可能である。別の例では、ビデオ・ソース(501)は、電子デバイス(520)の一部である。
【0057】
[0086] ビデオ・ソース(501)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 YCrCB、RGB、...)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であるとすることが可能なデジタル・ビデオ・サンプル・ストリームの形態で、ビデオ・エンコーダ(503)によってコーディングされるべきソース・ビデオ・シーケンスを提供することが可能である。メディア・サービング・システムにおいて、ビデオ・ソース(501)は、事前に準備されたビデオを記憶するストレージ・デバイスであってもよい。ビデオ・カンファレンス・システムでは、ビデオ・ソース(501)は、ローカルな画像情報をビデオ・シーケンスとして捕捉するカメラであってもよい。ビデオ・データは、シーケンスで見た場合に動きを伝える複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、ピクセルの空間アレイとして組織されることが可能であり、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことが可能である。当業者は、ピクセルとサンプルとの間の関係を容易に理解することが可能である。以下の説明は、サンプルに焦点を当てている。
【0058】
[0087] 実施形態によれば、ビデオ・エンコーダ(503)は、リアルタイムに、又はアプリケーションによって要求される他の任意の時間制約の下で、ソース・ビデオ・シーケンスのピクチャを、コーディングされたビデオ・シーケンス(543)にコーディングして圧縮することが可能である。適切なコーディング速度を強制することは、コントローラ(550)の1つの機能である。幾つかの実施形態において、コントローラ(550)は、以下で説明されるように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。その結合は明確性のために描かれていない。コントローラ(550)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャ・スキップ、量子化器、レート歪最適化技術のラムダ値、...)、ピクチャ・サイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことが可能である。コントローラ(550)は、特定のシステム設計のために最適化されたビデオ・エンコーダ(503)に関連する他の適切な機能を有するように構成することが可能である。
【0059】
[0088] 幾つかの実施形態では、ビデオ・エンコーダ(503)は、コーディング・ループで動作するように構成される。極端に単純化された説明として、一例において、コーディング・ループは、ソース・コーダ(530)(例えば、コーディングされるべき入力ピクチャ及び参照ピクチャに基づいて、シンボル・ストリームのようなシンボルを生成する責任がある)と、ビデオ・エンコーダ(503)に組み込まれた(ローカル)デコーダ(533)とを含むことが可能である。デコーダ(533)は、(リモート)デコーダが生成するのと同様な方法で、サンプル・データを生成するためにシンボルを再構成する(シンボルとコーディングされたビデオ・ビットストリームとの間の任意の圧縮は、開示される対象事項で考慮されるビデオ圧縮技術ではロスレスであるからである)。再構成されたサンプル・ストリーム(サンプル・データ)は、参照ピクチャ・メモリ(534)に入力される。シンボル・ストリームの復号化は、デコーダの位置(ローカル又はリモート)に依存しないビット・イグザクト(bit-exact)な結果をもたらすので、参照ピクチャ・メモリ(534)中の内容もまた、ローカル・エンコーダとリモート・エンコーダとの間でビット・イグザクトである。言い換えると、エンコーダの予測部は、デコーダが復号化中に予測を使用する場合に「見る(see)」ものと厳密に同じサンプル値を、参照ピクチャ・サンプルとして「見る」。参照ピクチャ同期のこの基本原理(及び、例えばチャネル・エラーに起因して同期性が維持できない場合には、結果としてドリフトが生じる)は、幾つかの関連技術においても同様に使用される。
【0060】
[0089] 「ローカル」デコーダ(533)の動作は、
図4に関連して上記で詳細に既に説明されているビデオ・デコーダ(410)のような「リモート」デコーダのものと同じであるとすることが可能である。しかしながら、
図4も簡単に参照すると、シンボルが利用可能であり、且つエントロピー・コーダ(545)及びパーサー(420)によるシンボルのコーディングされたビデオ・シーケンスへの符号化/復号化はロスレスであるとすることが可能であるので、バッファ・メモリ(415)及びパーサー(420)を含むビデオ・デコーダ(410)のエントロピー復号化部は、ローカル・デコーダ(533)では完全には実現されない可能性がある。
【0061】
[0090] この時点で行うことが可能な観察は、デコーダに存在する解析/エントロピー復号化以外の任意のデコーダ技術は、必然的に、実質的に同一の機能形態で、対応するエンコーダにも存在する必要があるということである。この理由のために、開示される対象事項はデコーダの動作に焦点を当てている。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるので、省略することが可能である。特定のエリアにおいてのみ、より詳細な説明が必要とされ、以下で与えられる。
【0062】
[0091] 動作中に、ソース・コーダ(530)は、幾つかの例において、「参照ピクチャ」として指定されたビデオ・シーケンスからの1つ以上の以前にコーディングされたピクチャを参照して、入力ピクチャを予測符号化する、動き補償された予測コーディングを実行することが可能である。このようにして、コーディング・エンジン(532)は、入力ピクチャのピクセル・ブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセル・ブロックとの間の差分をコーディングする。
【0063】
[0092] ローカル・ビデオ・デコーダ(533)は、ソース・コーダ(530)によって生成されたシンボルに基づいて、参照ピクチャとして指定されることが可能なピクチャのコーディングされたビデオ・データを復号化することが可能である。コーディング・エンジン(532)の動作は、有利なことに、非ロスレス・プロセスであってもよい。コーディングされたビデオ・データがビデオ・デコーダ(
図5には示されていない)で復号化されることが可能である場合、再構成されたビデオ・シーケンスは、典型的には、幾らかのエラーを伴うソース・ビデオ・シーケンスのレプリカである可能性がある。ローカル・ビデオ・デコーダ(533)は、リファレンス・ピクチャにおいてビデオ・デコーダによって実行されることが可能な復号化プロセスを繰り返し、再構成された参照ピクチャが、参照ピクチャ・キャッシュ(534)に記憶されることを引き起こすことが可能である。このように、ビデオ・エンコーダ(503)は、遠方端のビデオ・デコーダによって得られる再構成された参照ピクチャとして、共通の内容を有する再構成された参照ピクチャのコピーを、局所的に記憶することが可能である(伝送エラーはないものとする)。
【0064】
[0093] 予測器(535)は、コーディング・エンジン(532)のために予測探索を行うことが可能である。即ち、コーディングされるべき新しいピクチャについて、予測器(535)は、サンプル・データ(候補の参照ピクセル・ブロックとして)又は所定のメタデータ(参照ピクチャ動きベクトル、ブロック形状など)について、参照ピクチャ・メモリ(534)を探索することができ、これらは、新しいピクチャについての適切な予測参照として役立つ可能性がある。予測器(535)は、適切な予測参照を見出すために、サンプル・ブロック-ピクセル・ブロック・ベースで動作することが可能である。場合によっては、予測器(535)によって得られた探索結果によって決定されるように、入力ピクチャは、参照ピクチャ・メモリ(534)に記憶された複数の参照ピクチャから引き出される予測参照を有する可能性がある。
【0065】
[0094] コントローラ(550)は、例えば、ビデオ・データを符号化するために使用されるパラメータ及びサブグループ・パラメータの設定を含む、ソース・コーダ(530)のコーディング動作を管理することが可能である。
【0066】
[0095] 前述の機能ユニットのすべての出力は、エントロピー・コーダ(545)においてエントロピー符号化を受けることが可能である。エントロピー・コーダ(545)は、ハフマン・コーディング、可変長コーディング、算術コーディング等の技術に従って、シンボルをロスレス圧縮することによって、種々の機能ユニットによって生成されたシンボルを、コーディングされたビデオ・シーケンスに変換する。
【0067】
[0096] 送信機(540)は、エントロピー・コーダ(545)によって作成されるようなコーディングされたビデオ・シーケンスをバッファリングして、通信チャネル(560)を介する送信の準備を行うことが可能であり、通信チャネル(560)は、符号化されたビデオ・データを記憶する記憶デバイスへのハードウェア/ソフトウェア・リンクであってもよい。送信機(540)は、ビデオ・コーダ(503)からのコーディングされたビデオ・データを、例えばコーディングされたオーディオ・データ及び/又は補助的なデータ・ストリーム(ソースは不図示)のような送信されるべき他のデータとマージすることが可能である。
【0068】
[0097] コントローラ(550)は、ビデオ・エンコーダ(503)の動作を管理することができる。コーディングの間に、コントローラ(550)は、コーディングされたピクチャの各々に、特定のコーディングされたピクチャ・タイプを割り当てることが可能であり、これは、各ピクチャに適用されることが可能なコーディング技術に影響を及ぼす可能性がある。例えば、ピクチャは、しばしば、次のピクチャ・タイプの1つとして割り当てられてもよい。
【0069】
[0098] イントラ・ピクチャ(Iピクチャ)は、シーケンス内の如何なる他のピクチャも予測のソースとして使用せずに、符号化及び復号化されることが可能なものである。幾つかのビデオ・コーデックは、例えば、独立デコーダ・リフレッシュ(“IDR”)ピクチャを含む異なるタイプのイントラ・ピクチャを許容する。当業者は、Iピクチャのこれらの変形例、並びにそれら各自の用途及び特徴を認識している。
【0070】
[0099] 予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、高々1つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号化されることが可能なものである。
【0071】
[0100] 双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、高々2つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号化されることが可能なものである。同様に、複数の予測ピクチャは、1つのブロックの再構成のために、2つより多い参照ピクチャ及び関連するメタデータを使用することが可能である。
【0072】
[0101] ソース・ピクチャは、通常、複数のサンプル・ブロック(例えば、4×4、8×8、4×8、又は16×16サンプルのブロック)に空間的に細分され、ブロック毎にコーディングされることが可能である。ブロックは、ブロックそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックを参照して予測符号化されることが可能である。例えば、Iピクチャのブロックは、非予測符号化されてもよいし、又は、それらは同じピクチャの既にコーディングされたブロックを参照して予測符号化されてもよい(空間予測又はイントラ予測)。Pピクチャのピクセル・ブロックは、以前にコーディングされた1つの参照ピクチャを参照して、空間的な予測又は時間的な予測により予測符号化されてもよい。Bピクチャのブロックは、1つ又は2つの以前にコーディングされた参照ピクチャを参照して、空間的な予測又は時間的な予測により予測符号化されてもよい。
【0073】
[0102] ビデオ・エンコーダ(503)は、ITU-T Rec.H.265のような所定のビデオ・コーディング技術又は規格に従ってコーディング動作を行うことが可能である。この動作において、ビデオ・エンコーダ(503)は、入力ビデオ・シーケンスにおける時間的及び空間的な冗長性を活用する予測コーディング動作を含む種々の圧縮動作を実行することが可能である。コーディングされたビデオ・データは、従って、使用されているビデオ・コーディング技術又は規格によって指定されたシンタックスに準拠することが可能である。
【0074】
[0103] 実施形態では、送信機(540)は、符号化されたビデオとともに追加データを送信することが可能である。ソース・コーダ(530)は、そのようなデータを、コーディングされたビデオ・シーケンスの一部として含むことが可能である。追加データは、時間的/空間的/SNRエンハンスメント・レイヤ、他の形式の冗長データ(冗長ピクチャ及びスライス、SEIメッセージ、VUIパラメータ・セット・フラグメント等)を含む可能性がある。
【0075】
[0104] ビデオは、時間シーケンスにおける複数のソース・ピクチャ(ビデオ・ピクチャ)として捕捉することが可能である。イントラ・ピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間相関を利用しており、インター・ピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例では、現在のピクチャと呼ばれる符号化/復号化の下にある特定のピクチャは、ブロックにパーティション化される。現在のピクチャ内のブロックが、ビデオにおいて以前にコーディングされ且つ依然としてバッファリングされている参照ピクチャの中の参照ブロックに類似している場合、現在のピクチャ内のブロックは、MVと呼ばれるベクトルによってコーディングされることが可能である。MVは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する第3の次元を有することが可能である。
【0076】
[0105] 幾つかの実施形態では、インター・ピクチャ予測に双-予測技術を用いることが可能である。双-予測技術によれば、ビデオ内で現在のピクチャに対して復号化順序で両方とも先行している(ただし、表示順序ではそれぞれ過去及び将来におけるものである可能性がある)第1参照ピクチャ及び第2参照ピクチャのような2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1参照ピクチャ内の第1参照ブロックを指す第1動きベクトルと、第2参照ピクチャ内の第2参照ブロックを指す第2動きベクトルとによってコーディングされることが可能である。ブロックは、第1参照ブロックと第2参照ブロックとの組み合わせによって予測されることが可能である。
【0077】
[0106] 更に、コーディング効率を改善するために、インター・ピクチャ予測にマージ・モード技術を用いることが可能である。
【0078】
[0107] 本開示の幾つかの実施形態によれば、インター・ピクチャ予測及びイントラ・ピクチャ予測のような予測は、ブロックの単位で実行される。例えば、HEVC規格によれば、ビデオ・ピクチャのシーケンス中のピクチャは、圧縮のためにコーディング・ツリー・ユニット(CTU)にパーティション化され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセルのような同じサイズを有する。一般に、CTUは、1つのルマCTBと2つのクロマCTBである3つのコーディング・ツリー・ブロック(CTB)を含む。各CTUは、1つ又は複数のコーディング・ユニット(CU)に再帰的に4分木分割されることが可能である。例えば、64×64ピクセルのCTUは、64×64ピクセルの1個のCU、32×32ピクセルの4個のCU、又は16×16ピクセルの16個のCUに分割されることが可能である。一例では、各CUは、インター予測タイプ又はイントラ予測タイプのような、CUの予測タイプを決定するために分析される。CUは、時間的及び/又は空間的な予測可能性に依存して1つ以上の予測ユニット(PU)に分割される。一般に、各PUはルマ予測ブロック(PB)と2つのクロマPBを含む。実施形態では、コーディング(符号化/復号化)における予測動作は、予測ブロックの単位で実行される。予測ブロックの一例としてルマ予測ブロックを用いると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル等のような、ピクセルに対する値(例えば、ルマ値)のマトリクスを含む。
【0079】
[0108]
図6は本開示の別の実施形態によるビデオ・エンコーダ(603)の図を示す。ビデオ・エンコーダ(603)は、ビデオ・ピクチャのシーケンス内の現在のビデオ・ピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コーディングされたビデオ・シーケンスの一部であるコーディングされたピクチャに符号化するように構成される。一例では、ビデオ・エンコーダ(603)は、
図3の例のビデオ・エンコーダ(303)の代わりに使用される。
【0080】
[0109] HEVCの例では、ビデオ・エンコーダ(603)は、8×8サンプルの予測ブロック等のような処理ブロックのサンプル値のマトリクスを受信する。ビデオ・エンコーダ(603)は、イントラ・モード、インター・モード、又は双-予測モードを使用して、例えばレート歪最適化を使用して、処理ブロックが最良にコーディングされるかどうかを決定する。処理ブロックがイントラ・モードでコーディングされるべき場合、ビデオ・エンコーダ(603)は、処理ブロックを、コーディングされたピクチャに符号化するためにイントラ予測技術を使用することが可能であり;処理ブロックがインター・モード又は双-予測モードで符号化されるべき場合、ビデオ・エンコーダ(603)は、処理ブロックを、コーディングされたピクチャに符号化するために、それぞれインター予測技術又は双-予測技術を使用することが可能である。特定のビデオ・コーディング技術では、マージ・モードがインター予測ピクチャ・サブモードである可能性があり、その場合、動きベクトルは、予測器外部のコーディングされた動きベクトル成分の恩恵なしに、1つ以上の動きベクトル予測子から導出される。特定の他のビデオ・コーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在する可能性がある。一例では、ビデオ・エンコーダ(603)は、処理ブロックのモードを決定するためにモード決定モジュール(不図示)のような他のコンポーネントを含む。
【0081】
[0110]
図6の例では、ビデオ・エンコーダ(603)は、インター・エンコーダ(630)、イントラ・エンコーダ(622)、残差計算器(623)、スイッチ(626)、残差エンコーダ(624)、汎用コントローラ(621)、及びエントロピー・エンコーダ(625)を、
図6に示されるように共に結合して含んでいる。
【0082】
[0111] インター・エンコーダ(630)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを、参照ピクチャ内の1つ以上の参照ブロック(例えば、以前のピクチャのブロック及び以後のピクチャ内のブロック)と比較し、インター予測情報(例えば、符号化技術による冗長情報の記述、動きベクトル、マージ・モード情報)を生成し、任意の適切な技術を用いてインター予測情報に基づいて、インター予測結果(例えば、予測ブロック)を計算するように構成される。幾つかの例では、参照ピクチャは、符号化されたビデオ情報に基づいて復号化された復号化済み参照ピクチャである。
【0083】
[0112] イントラ・エンコーダ(622)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によってはブロックを、同じピクチャ内で既にコーディングされたブロックと比較し、変換後に量子化された係数を生成し、場合によってはイントラ予測情報(例えば、1つ以上のイントラ符号化技術に従ったイントラ予測方向情報)も生成するように構成される。一例では、イントラ・エンコーダ(622)はまた、同じピクチャ内のイントラ予測情報及び参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0084】
[0113] ジェネラル・コントローラ(621)は、一般的な制御データを決定し、一般的な制御データに基づいてビデオ・エンコーダ(603)の他のコンポーネントを制御するように構成される。一例では、ジェネラル・コントローラ(621)は、ブロックのモードを決定し、そのモードに基づいてスイッチ(626)に制御信号を提供する。例えば、モードがイントラ・モードである場合、ジェネラル・コントローラ(621)は、スイッチ(626)を制御して、残差計算器(623)による使用のためにイントラ・モード結果を選択し、且つエントロピー・エンコーダ(625)を制御して、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含め;モードがインター・モードである場合、ジェネラル・コントローラ(621)は、スイッチ(626)を制御して、残差計算器(623)による使用のためにインター予測結果を選択し、且つエントロピー・エンコーダ(625)を制御して、インター予測情報を選択し、インター予測情報をビットストリームに含める。
【0085】
[0114] 残差計算器(623)は、受信ブロックと、イントラ・エンコーダ(622)又はインター・エンコーダ(630)から選択された予測結果との間の差分(残差データ)を計算するように構成される。残差エンコーダ(624)は、残差データを符号化して変換係数を生成するために、残差データに基づいて動作するように構成される。一例では、残差エンコーダ(624)は、残差データを空間ドメインから周波数ドメインへ変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化された変換係数を得るために量子化処理を施される。様々な実施形態では、ビデオ・エンコーダ(603)はまた、残差デコーダ(628)も含む。残差デコーダ(628)は、逆変換を実行し、復号化された残差データを生成するように構成される。復号化された残差データは、イントラ・エンコーダ(622)及びインター・エンコーダ(630)によって適切に使用することが可能である。例えば、インター・エンコーダ(630)は、復号化された残差データ及びインター予測情報に基づいて、復号化されたブロックを生成することが可能であり、イントラ・エンコーダ(622)は、復号化された残差データ及びイントラ予測情報に基づいて、復号化されたブロックを生成することが可能である。復号化されたブロックは、復号化されたピクチャを生成するために適切に処理され、復号化されたピクチャは、メモリ回路(不図示)内でバッファリングされ、幾つかの例では参照ピクチャとして使用することが可能である。
【0086】
[0115] エントロピー・エンコーダ(625)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピー・エンコーダ(625)は、HEVC規格のような適切な規格に従って種々の情報を含むように構成される。一例では、エントロピー・エンコーダ(625)は、一般的な制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及びその他の適切な情報をビットストリームに含めるように構成される。開示される対象事項に従って、インター・モード又は双-予測モードの何れかのマージ・サブモードにおけるブロックをコーディングする場合に、残差情報は存在しないことに留意されたい。
【0087】
[0116]
図7は、本開示の別の実施形態によるビデオ・デコーダ(710)の図を示す。ビデオ・デコーダ(710)は、コーディングされたビデオ・シーケンスの一部であるコーディングされたピクチャを受信し、コーディングされたピクチャを復号化して、再構成されたピクチャを生成するように構成される。一例では、ビデオ・デコーダ(710)は、
図3の例におけるビデオ・デコーダ(310)の代わりに使用される。
【0088】
[0117]
図7の例では、ビデオ・デコーダ(710)は、エントロピー・デコーダ(771)、インター・デコーダ(780)、残差デコーダ(773)、再構成モジュール(774)、及びイントラ・デコーダ(772)を、
図7に示されるように共に結合して含んでいる。
【0089】
[0118] エントロピー・デコーダ(771)は、コーディングされたピクチャを作り上げるシンタックス要素を表す特定のシンボルを、コーディングされたピクチャから再構成するように構成されることが可能である。このようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラ・モード、インター・モード、双-予測モード、マージ・サブモード又は別のサブモードにおける後者の2つ)、イントラ・デコーダ(772)又はインター・デコーダ(780)それぞれによって予測のために使用される特定のサンプル又はメタデータを識別することが可能な予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報(例えば、量子化された変換係数の形式におけるもの)等を含むことが可能である。一例において、予測モードがインター又は双-予測モードである場合には、インター予測情報がインター・デコーダ(780)に提供され;予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラ・デコーダ(772)に提供される。残差情報は、逆量子化を施されることが可能であり、残差デコーダ(773)に提供される。
【0090】
[0119] インター・デコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0091】
[0120] イントラ・デコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0092】
[0121] 残差デコーダ(773)は、逆量子化を実行して非-量子化された変換係数を抽出し、非-量子化された変換係数を処理して残差を周波数ドメインから空間ドメインへ変換するように構成される。残差デコーダ(773)はまた、特定の制御情報(量子化パラメータ(QP)を含む)を必要とする可能性があり、その情報は、エントロピー・デコーダ(771)によって提供されてもよい(これは、僅かな量の制御情報でしかない可能性があるので、データ経路は描かれていない)。
【0093】
[0122] 再構成モジュール(774)は、空間ドメインにおいて、残差デコーダ(773)による出力としての残差と、予測結果(場合によっては、インター又はイントラ予測モジュールによって出力されるもの)とを組み合わせて、再構成されたブロックを形成するように構成されており、再構成されたブロックは再構成されたピクチャの一部であり、再構成されたピクチャは再構成されたビデオの一部である可能性がある。デブロッキング処理などのような他の適切な処理が、視覚的な品質を改善するために実行される可能性があることに留意されたい。
[0123] ビデオ・エンコーダ(303)、(503)、及び(603)、並びにビデオ・デコーダ(310)、(410)、及び(710)は、任意の適切な技術を用いて実現することが可能であることに留意されたい。実施形態では、ビデオ・エンコーダ(303)、(503)、及び(603)、並びにビデオ・デコーダ(310)、(410)、及び(710)は、1つ以上の集積回路を使用して実現することが可能である。別の実施形態では、ビデオ・エンコーダ(303)、(503)、及び(603)、並びにビデオ・デコーダ(310)、(410)、及び(710)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実現することが可能である。
【0094】
[0124] II. ブロック・パーティション
[0125]
図8は、本開示の幾つかの実施形態による例示的なブロック・パーティションを示す。
【0095】
[0126] AOMedia(Alliance for Open Media)によって提案されたVP9のような幾つかの関連する事例では、4通りのパーティション・ツリーを使用することが可能であり、
図8に示されているように、64×64レベルから始まって4×4レベルまで下がり、8×8以下のブロックに対する幾つかの追加の制限が伴う。Rで指定されるパーティションは、再帰的パーティションと呼ぶことが可能である。即ち、最低の4×4レベルに達するまで、同じパーティション・ツリーがより低いスケールで繰り返される。
【0096】
[0127] AOMediaによって提案され且つVP9に基づくAV1のような幾つかの関連する事例では、パーティション・ツリーは、
図8に示すように10通りの構造に拡張することが可能であり、最大コーディング・ブロック・サイズ(VP9/AV1用語ではスーパーブロック(superblock)と呼ばれる)は、128x128から開始するように増加されている。4:1/1:4の長方形パーティションはAV1に含まれるが、VP9には含まれないことに留意されたい。長方形パーティションは、更に細分化することはできない。更に、8×8レベル以下のパーティションの使用の際にAV1ではより豊富な柔軟性をサポートすることが可能であり、なぜなら場合によっては、2×2クロマ・ブロックに対してインター予測を実行することが可能だからである。
【0097】
[0128] HEVCのような幾つかの関連する事例では、様々な局所的な特徴に適応するために、コーディング・ツリーとして示される四分木構造を使用することによって、CTUはCUに分割されることが可能である。インター・ピクチャ(時間的)又はイントラ・ピクチャ(空間的)予測を使用してピクチャ・エリアをコーディングするかどうかの決定は、CUレベルで行うことができる。各CUは、PU分割タイプに応じて、1つ、2つ、又は4つのPUに更に分割されることが可能である。1つのPUの中で、同じ予測プロセスが適用されることが可能であり、関連情報はPUベースでデコーダに送信されることが可能である。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CUは、CUに関するコーディング・ツリーのような別の四分木構造に従ってTUにパーティション化されることが可能である。HEVC構造の重要な特徴の1つは、CU、PU、及びTUを含む複数のパーティション概念を有することである。HEVCでは、CU又はTUは正方形の形状とすることしかできないが、PUは、インター予測ブロックの場合に正方形又は長方形の形状とすることが可能である。HEVCでは、1つのコーディング・ブロックが4つの正方形サブ・ブロックに更に分割されることが可能であり、変換プロセスは各サブ・ブロック、即ちTUに関して実行されることが可能である。各TUは、更に再帰的に(例えば、四分木分割を使用して)より小さなTUに分割されることが可能である。四分木分割は残差四分木(residual quadtree, RQT)と呼ぶことが可能である。
【0098】
[0129] ピクチャ境界では、HEVCは暗黙の四分木分割をし、その結果、ブロックのサイズがピクチャ境界に適合するまで、ブロックは四分木分割を実行し続けることができる。
【0099】
[0130] VVCのような幾つかの関連する事例では、クアッド・ツリー・プラス・バイナリ・ツリー(QTBT)パーティショニング構造を適用することができる。クアッド・ツリー・プラス・バイナリ・ツリー(QTBT)構造は、複数のパーティション・タイプの概念を除去し(即ち、CU、PU、及びTUの概念の区別を除去し)、CUパーティション形状に対する豊富な柔軟性をサポートする。
【0100】
[0131]
図9A及び9Bは、QTBT及び対応するツリー構造を使用する本開示の実施形態による例示的なブロック・パーティショニングを示す。実線はQT分割を示し、点線はBT分割を示す。BTの各々の分割(即ち、非リーフ)ノードにおいて、どの分割タイプ(即ち、水平又は垂直)が使用されるかを示すために、1つのフラグがシグナリングされる。
図9Bにおいて、0は水平分割を示し、1は垂直分割を示す。QT分割の場合には、分割タイプを指定する必要はなく、なぜならQT分割は常にブロックを水平及び垂直方向の両方で分割し、同じサイズの4つのサブ・ブロックを生成するからである。
【0101】
[0132] QTBT構造では、CUは正方形又は長方形の何れかの形状を有することが可能である。
図9Aと9Bに示されているように、CTUは先ずQT構造によってパーティション化される。QTリーフ・ノードは、BT構造によって更に分割することが可能である。BT分割には、対称水平分割と対称垂直分割という2つの分割タイプがある。BTリーフ・ノードはCUであり、如何なる別のパーティション化も行うことなく、2つのCUへのセグメンテーションが、予測及び変換処理に使用される。従って、CU、PU、及びTUは、QTBT構造体において同じブロック・サイズを有することが可能である。
【0102】
[0133] CUは、JEMでのような異なる色成分のCBを含むことが可能である。例えば、4:2:0のクロマ・フォーマットを用いるP及びBスライスの場合に、1つのCUは、1つのルマCBと2つのクロマCBを含むことが可能である。他の例では、CUは、単一成分のCBを含むことが可能であり、例えば、1つのCUは、Iスライスの場合に、1つのルマCBのみ、又は2つのクロマCBのみを含むことが可能である。
【0103】
[0134] QTBTパーティショニング方式については以下のパラメータが定義されている:CTUサイズ(例えばHEVCでのような、QTのルート・ノード・サイズ)、MinQTSize(最小許容QTリーフ・ノード・サイズ)、MaxBTSize(最大許容BTルート・ノード・サイズ)、MaxBTDepth(最大許容BT深度)、MinBTSize(最小許容BTリーフ・ノード・サイズ)。
【0104】
[0135] QTBTパーティショニング構造の一例では、CTUサイズは128×128ルマ・サンプルとして設定され、クロマ・サンプルの対応する2つの64×64ブロックがあり、MinQTSizeは16×16に設定され、MaxBTSizeは64×64に設定され、MinBTSizeは(幅と高さの両方について)4×4に設定され、MaxBTDepthは4に設定される。QTパーティショニングは、先ずCTUに適用されてQTリーフ・ノードを生成する。QTリーフ・ノードは、16×16(即ち、MinQTSize)から128×128(即ち、CTUサイズ)までのサイズを有する可能性がある。リーフQTノードが128×128である場合、サイズはMaxBTSize(即ち64×64)を超えるので、BTによって更には分割されないことになる。そうではない場合、リーフQTノードは、BTツリーによって更に分割されることが可能である。従って、QTリーフ・ノードはBTのルート・ノードでもあり、0というBT深度を有する。BT深度がMaxBTDepth(即ち、4)に到達した場合、それ以上の分割は考慮されない。BTノードが、MinBTSize(即ち、4)に等しい幅を有する場合、それ以上の水平分割は考慮されない。同様に、BTノードがMinBTSizeに等しい高さを有する場合、それ以上の垂直分割は考慮されない。BTのリーフ・ノードは、如何なる別のパーティションも伴うことなく、予測及び変換処理によって更に処理される。例えば、最大CTUサイズは、JEMでのような256×256ルマ・サンプルである。
【0105】
[0136] III. AV1における予測
[0137] VP9のような幾つかの関連する事例では、45度から207度までの角度に対応する8つの方向モードがサポートされている。AV1のような幾つかの関連する事例では、より多様な方向性テクスチャの空間冗長性を利用するために、方向性イントラ・モードは、より細かい粒度を有する角度セットに拡張される。オリジナルの8つの角度は、僅かに変更されて公称角度と言及され、これら8つの角度は、V_PRED, H_PRED, D45_PRED, D135_PRED, D113_PRED, D157_PRED, D203_PRED, 及びD67_PREDと命名される。
【0106】
[0138]
図10は、本開示の実施形態による例示的な公称角度を示す。各々の公称角度は、7つのより細い角度に関連付けることが可能であるので、AV1のような幾つかの関連する事例では、トータルで56個の方向角度が存在し得る。予測角度は、公称イントラ角度プラス角度デルタによって表現されることが可能である。角度デルタは、3度のステップ・サイズを掛けた係数に等しい。係数は、-3ないし3の範囲内にある可能性がある。AV1では、8つの公称モードが5つの非方向性平滑モード(non-angular smooth modes)とともに最初にシグナリングされる。次いで、現在のモードが角度モードである場合、対応する公称角度に対する角度デルタを示すために、インデックスが更にシグナリングされる。一般的な方法でAV1における方向予測モードを実装するために、AV1における56個全ての方向性イントラ予測角度は、統一方向性予測器を用いて実現されることが可能であり、これは、各ピクセルを参照サブ・ピクセル位置に投影し、参照サブ・ピクセルを2タップ・バイリニア・フィルタによって補間する。
【0107】
[0139] AV1のような幾つかの関連する事例では、5つの無指向性平滑イントラ予測モードがあり、それらはDC, PAETH, SMOOTH, SMOOTH_V, 及びSMOOTH_Hである。DC予測のために、左上の隣接サンプルの平均が、予測される対象のブロックの予測子として使用される。PAETH予測では、先ず、上、左、左上の参照サンプルが取り出され、次いで、(上 + 左 - 左上)に最も近い値が、予測される対象のピクセルの予測子として設定される。
【0108】
[0140]
図11は、本開示の実施形態による、現在のブロックにおける1つのピクセルについての、上、左、及び左上サンプルの位置を示す。SMOOTH, SMOOTH_V, 及びSMOOTH_Hモードの場合、ブロックは、垂直又は水平方向の2次補間、又は両方向の平均を使用して予測される。
【0109】
[0141] AV1のような幾つかの関連する事例では、再帰的フィルタリングに基づくイントラ予測モードを使用することができる。
【0110】
[0142]
図12は、本開示の実施形態による例示的な再帰的フィルタ・イントラ・モードを示す。
【0111】
[0143] エッジにおけるリファレンスとの減衰空間相関(decaying spatial correlation)を捉えるために、FILTER INTRAモードがルマ・ブロック用に設計されている。AV1では、5つのフィルタ・イントラ・モードが定義されており、各モードは、4x2パッチとパッチの7つの近隣とのピクセル間の相関を反映する8つの7タップ・フィルタのセットにより表現される。例えば、7タップ・フィルタの重み付け係数は位置に依存する。
図12に示すように、8×8ブロックは、8つの4×2パッチに分割され、それらは、B0、B1、B2、B3、B4、B5、B6、及びB7によって示される。各パッチについて、R0~R7により示される7つの近隣が、それぞれのパッチ内のピクセルを予測するために使用される。パッチB0の場合、全ての近隣が既に再構築されている。しかしながら、他のパッチでは、全ての近隣が再構成されているというわけではなく、直前の近隣の予測値が参照値として使用される。例えば、パッチB7の全ての近隣が再構成されているわけではないので、パッチB7の近隣(即ち、B5及びB6)の予測サンプルが、代わりに使用される。
【0112】
[0144] VP9のような幾つかの関連する事例では、3つの参照フレームがインター予測のために使用されることが可能である。3つの参照フレームは、LAST(最も近い過去)、GOLDEN(遠い過去)、ALTREF(時間的にフィルタリングされる将来)フレームを含む。
【0113】
[0145] AV1のような幾つかの関連する事例では、拡張された参照フレームを使用することができる。例えば、VP9で使用される3つの参照フレームに加えて、AV1では更に4つのタイプの参照フレームを使用することができる。更なる4種類の参照フレームは、LAST2、LAST3、BWDREF、及びALTREF2フレームを含む。LAST2とLAST3のフレームは、2つの近い過去のフレームであり、BWDREF及びALTREF2フレームは2つの将来のフレームである。更に、BWDREFフレームは、時間的フィルタリングなしでコーディングされたルック・アヘッド・フレームであり、比較的短い距離における後方参照としてより有用である。ALTREF2フレームは、GOLDENフレームとALTREFフレームとの間の中間的なフィルタリングされた将来の参照フレームである。
【0114】
[0146]
図13は、本開示の実施形態による例示的なマルチ・レイヤ参照フレーム構造を示す。
図13において、適応的な数のフレームは、同じGOLDEN及びALTREFフレームを共有する。BWDREFフレームは、時間的フィルタリングを適用せずに直接的にコーディングされたルック・アヘッド・フレームであり、従って比較的短い距離における後方参照としてより適用可能である。ALTREF2フレームは、GOLDENフレームとALTREFフレームとの間の中間的なフィルタリングされた将来のリファレンスとして機能する。全ての新しいリファレンスは、単一の予測モードによって選択されることが可能であり、あるいは複合モードを形成するためにペアに組み合わせられることも可能である。AV1は、豊富な参照フレーム・ペアのセットを提供し、双方向の複合予測と単方向の複合予測の両方をもたらし、従って動的な時間相関特性を有する種々のビデオをより適応的で最適な方法でコーディングすることができる。
【0115】
[0147]
図14は、本開示の実施形態による例示的な候補動きベクトル・リスト構築プロセスを示す。空間的及び時間的な参照動きベクトルは、それらがどこに登場するか(最も近い空間的な近隣、及びその他)に基づいて、2つのカテゴリに分類されることが可能である。幾つかの関連する事例では、現在のブロックの直前の上、左、及び右上の隣接するブロックからの動きベクトルは、その他ブロックよりも高い、現在のブロックとの相関を有することが可能であり、従って、より高い優先度を有すると考えられる。各カテゴリの中で、動きベクトルは、それらの出現カウントの降順に、空間的及び時間的な探索レンジ内でランク付けされる。より高い出現カウントを有する動きベクトル候補は、ローカルな領域において“ポピュラー”である、即ちより高い事前確率(prior probability)であると考えることができる。2つのカテゴリは連結され、ランク付けされたリストが形成される。
【0116】
[0148]
図15は、本開示の実施形態による例示的なモーション・フィールド推定プロセスを示す。
【0117】
[0149] AV1のような幾つかの関連する事例では、動的な空間的及び時間的動きベクトル参照を使用することができる。例えば、動きベクトルを効率的にコーディングするために、動きベクトル参照選択方式を組み込むことができる。動きベクトル参照選択方式では、空間的な近隣は、VP9で使用されるものよりも広範に及ぶ可能性がある。更に、モーション・フィールド推定プロセスを用いて、時間的な動きベクトル参照候補を見出すことができる。モーション・フィールド推定プロセスは、動きベクトル・バッファリング、動き軌跡作成、及び動きベクトル射影の3段階で動作する可能性がある。先ず、コーディングされたフレームの各々に対して、それぞれのコーディングされたフレームの参照フレーム・インデックス及び関連する動きベクトルが、記憶されることが可能である。記憶された情報は、次のコーディング・フレームによって参照され、次のコーディング・フレームのモーション・フィールドを生成することができる。モーション・フィールド推定は、例えば、
図15において、ある参照フレームRef2内のブロックから別の参照フレームRef0
ref2を目指す運動軌跡(例えば、MV
Ref2)を調べることができる。次に、モーション・フィールド推定プロセスは、それぞれ64×64処理ユニットを通る全ての運動軌跡を8×8ブロック解像度で、コロケーションされた128×128エリアを通じて探索する。次いで、コーディング・ブロック・レベルにおいて、参照フレームが決定されると、通過する運動軌跡を所望の参照フレームに線形に投影することによって、例えば、
図15においてMV
ref2をMV
0又はMV
1に変換することによって、動きベクトル候補を導出することができる。
【0118】
[0150] 候補の動きベクトルが全て発見されると、候補の動きベクトルはソートされ、マージされ、ランク付けされて、4つの最終候補まで増やされることが可能である。次いで、リストから選択された参照動きベクトルのインデックスをシグナリングすることが可能であり、オプションとして、動きベクトル差をコーディングすることが可能である。
【0119】
[0151] AV1のような幾つかの関連する事例では、隣接する動きベクトルから得られた予測を組み合わせることによって、ブロック境界周辺の予測誤差を低減するために、ブロック・ベースの予測は、垂直及び水平方向それぞれにおいて1-Dフィルタを適用することによって、上端及び左端からのセカンダリ予測子と組み合わせることができる。この方法は、オーバーラップしたブロック動き補償(overlapped block motion compensation, OBMC)と言及することが可能である。
【0120】
[0152]
図16A及び16Bはそれぞれ、上隣接ブロック(2)及び左隣接ブロック(4)を使用して予測される例示的な重複した領域(陰影領域)を示す。予測ブロック(0)の陰影領域は、1‐Dレイズド・コサイン・フィルタにより混合予測サンプルを再帰的に生成することによって予測されることが可能である。
【0121】
[0153] AV1のような幾つかの関連する事例では、グローバル・ワープ動き補償及びローカル・ワープ動き補償(global warped motion compensation and a local warped motion compensation)と呼ばれる2つのアフィン予測モデルを使用することができる。前者は、フレームとその参照との間のフレーム・レベルのアフィン・モデルをシグナリングし、後者は変動するローカルな動きを暗黙のうちに最小のオーバーヘッドで処理する。ローカル運動パラメータは、原因の近隣からの2D動きベクトルを使用することによって、ブロック・レベルで導出されることが可能である。このアフィン・モデルは、1/64ピクセル精度における8タップ補間フィルタに基づいて連続的な水平及び垂直剪断動作(shearing operation)により実現される。
【0122】
[0154]
図17は、水平剪断の後に垂直剪断が続く例示的な2段階のワーピング・プロセスを示す。
図17において、アフィン・モデルは、最初に水平剪断、次いで垂直剪断を実行するローカルワーピング動き補償で実現される。
【0123】
[0155] IV. AV1におけるフレーム・ベースの超解像度
[0156]
図18は、AV1におけるフレーム・レベルの超解像度を含む全体的なループ・フィルタリング・パイプラインを示す。エンコーダ側において、ソース・フレームは、先ず、非規範的な方法(non-normative way)でダウン・スケーリングされ、より低い解像度でエンコードされることが可能である。デコーダ側では、デブロッキング・フィルタと制限付き方向強調フィルタ(constrained directional enhancement filter, CDEF)を適用して、コーディング・アーチファクトを除去する一方、エッジを低い解像度で保存することができる。次いで、線形アップ・サンプリング・フィルタを水平方向のみに沿って適用して、フル解像度の再構成を得ることができる。ダウン・サンプリング及び量子化の際に失われた高周波の詳細を回復させるために、オプションとして、ループ復元フィルタがその後にフル解像度で適用されることが可能である。
【0124】
[0157] AV1のような幾つかの関連する事例では、超解像度はフレーム・レベルでシグナリングされる特殊モードである。各々のコーディングされたフレームは、比率制約の範囲内にある任意の解像度で、水平方向のみの超解像モードを使用することができる。復号化後に線形アップ・サンプリングを適用するかどうか及び使用されるスケーリング比は、シグナリングされることが可能である。アップ・サンプリング比は、d=8, 9,...及び16の場合にd/8として与えられる9つの可能な値を有する可能性がある。符号化の前の対応するダウン・サンプリング比は、8/dであるとすることが可能である。
【0125】
[0158] 出力フレーム寸法WxH及びアップ・サンプリング比dが与えられた場合に、エンコーダ及びデコーダは両方とも、低解像度のコーディングされたフレーム寸法をwxHとして計算することが可能であり、ここで、低減された幅は、w=(8W+d/2)/dである。線形アップ・スケーリング・プロセスは、減少解像度のフレームwxHを取り込み、フレームヘッダで指定される寸法WxHのフレームを出力する。AV1における規範的水平線形アップ・スケーラは、各行の補間に1/16フェーズの線形8タップ・フィルタを使用する。
【0126】
[0159] V. CUベースの超解像度コーディング
[0160] AV1のような幾つかの関連する事例では、超解像はフレーム・レベルで実行される。即ち、一定のスケーリング比を有するピクチャの全てのエリアに超解像が適用される。しかしながら、ピクチャ内の異なるエリアにおける信号の統計値は、大きく異なる可能性がある。従って、ダウン・サンプリング及び/又はアップ・サンプリングを全てのエリアに適用することは、必ずしも良いレート歪トレード・オフではない可能性がある。
【0127】
[0161] ダウン・サンプリング及び/又はアップ・サンプリングをピクチャ領域に適応的に適用することは、ダウン・サンプリング及び/又はアップ・サンプリング用のピクチャ領域を選択するために、マスク及び/又はセグメント情報を使用する等の前処理アプローチ及び/又は後処理アプローチを使用して実行することができる。しかしながら、このプロセスは、レート歪パフォーマンスの改善が、超解像度を使用しない他のコーディング方法を上回ることを保証できない。
【0128】
[0162] 本開示は、ブロック・レベル超解像コーディングの方法を含む。
【0129】
[0163] 本開示の態様によれば、混合解像度予測(mixed-resolution prediction)を使用して、ブロック・レベルで使用するように適合されたフレーム・レベルの超解像度をエミュレートすることができる。
【0130】
[0164] 一実施形態では、ブロック・レベル・フラグを使用して、低減解像度のコーディングが、コーディング・ブロックに使用されるか否かを指定することができる。例えば、ブロック・レベル・フラグが第1の事前に定義された値(例えば、1)に設定されている場合、減少解像度のコーディングがそのブロックに対してイネーブルにされる。上記のようなAV1における予測手順のような予測サンプル生成は、減少解像度における参照サンプル又はピクチャを使用して、コーディング・ブロックに対する低解像度の予測ブロックを生成することによって、実行することができる。次いで、低減解像度の予測ブロックを用いて、コーディング・ブロックに対する低減解像度の再構成ブロックを生成することができる。最終的に、減少解像度の再構成ブロックは、コーディング・ブロックに対するフル解像度の再構成ブロックまでアップ・サンプリングされることが可能である。
【0131】
[0165] 一実施形態において、ブロック・レベル・フラグが第2の予め定義された値(例えば、0)に設定されている場合には、予測サンプル生成は、フル解像度(又はオリジナル解像度)で実行され、その後にフル解像度の再構成に続く。
【0132】
[0166]
図19は、本開示の実施形態によるブロック・レベル・フラグを使用する例示的な実装を示す。ブロック・レベル・フラグがオンである場合、例えばブロック・レベル・フラグが第1の予め定義された値に等しい場合、エンコーダ側のソース・ブロック(1901)は、ダウン・サンプラ・モジュール(1920)によりダウン・サンプリングされて、ダウン・サンプリングされたソース・ブロック(1902)を生成することができる。ダウン・サンプリングされたソース・ブロック(1902)は、ダウン・サンプリングされた残差ブロック(1904)を生成するために、低解像度の予測ブロック(1903)と組み合わせられることが可能である。次いで、ダウン・サンプリングされた残差ブロック(1904)は、変換、量子化、及びエントロピー符号化プロセスを含むモジュール(又は、
図19には示されていない複数のモジュール)により、コーディングされたビデオ・ビットストリームにコーディングされることが可能である。ソース・ブロック(1901)をデコードするために、デコーダ側で受信されたコーディング済みビデオ・ビットストリームは、エントロピー復号化、逆量子化、及び逆変換プロセスにより処理されて、ダウン・サンプリングされた残差ブロック(1911)を生成することができる。ダウン・サンプリングされた残差ブロック(1911)は、減少解像度の予測ブロック(1912)と組み合わせられて、ダウン・サンプリングされた再構成ブロック(1913)を生成することが可能である。ダウン・サンプリングされた再構成ブロック(1913)は、アップ・サンプリングされたモジュール(1930)によりアップ・サンプリングされ、ソース・ブロック(1901)に対するフル解像度の再構成ブロック(1914)を生成することが可能である。低減解像度の予測ブロック(1912)は、ダウン・サンプラ・モジュール(1940)により、ソース・ブロック(1901)の参照ブロックについてのフル解像度の再構成ブロックをダウン・サンプリングすることによって、生成できることに留意されたい。
【0133】
[0167] ブロック・レベル・フラグがオフである場合、例えば、ブロック・レベル・フラグが第2の予め定義された値に等しい場合、
図19のダウン・サンプル・モジュール(1920),(1940)及びアップ・サンプラ・モジュール(1930)は適用されない。ダウン・サンプリングされた又は低減解像度のブロック(1902)-(1904)及び(1911)-(1913)は、対応するフル解像度のものなることが可能である。
【0134】
[0168] 一実施形態では、MxNのサイズを有するコーディング・ブロックについては、MxNのサイズを有する参照ブロックは、水平及び垂直方向に沿ってダウン・サンプリング率Dx及びDyでそれぞれダウン・サンプリングされ、(M/Dx)×(N/Dy)のサイズを有する低減解像度の予測ブロックを生成することができる。M及びNの例示的な値は、256、128、64、32、16、及び8を含む可能性があるが、これらに限定されない。ダウン・サンプリング率Dx及びDyは、2、4及び8を含む整数であるが、これらに限定されない
[0169] 一実施形態において、ブロック・レベル・フラグは、CU、スーパーブロック、予測ブロック、変換ブロック、タイル、コーディングされたセグメント、フレーム、又はシーケンス・ベース毎に、適応的にシグナリングされたり又は推定されたりすることが可能である。
【0135】
[0170] 一実施形態では、低減解像度の再構成ブロックをアップ・サンプリングするために使用されるアップ・サンプラ・モジュール(1930)に関し、アップ・サンプリング・フィルタ係数は、直接的にシグナリングされることが可能であるし、又は、事前に定義された係数の複数のセットのうちのフィルタ係数のセットのインデックスが、シグナリングされることが可能である。
【0136】
[0171] 本開示の態様によれば、現在のブロックの動きベクトルによって参照されるために、現在のブロックの空間的及び/又は時間的に隣接するブロックの動きベクトルは、現在のブロックと同じ又は異なる解像度でスケーリングすることができる。
【0137】
[0172] 例えば、現在のブロックがサンプリング比(又はダウン・サンプリング率)Dx及びDyで水平及び垂直方向に沿ってそれぞれコーディングされている場合、サンプリング比Dref,x及びDref,yを有する空間的及び/又は時間的に隣接するブロックの動きベクトルは、水平及び垂直成分それぞれについて
【0138】
【数1】
によってスケーリングされることが可能である。
【0139】
[0173]
図20は、本開示の実施形態による例示的な空間的に隣接する動きベクトルの参照を示す。
【0140】
[0174] 実施形態では、AV1における空間的に隣接する動きベクトル参照方法のような動きベクトル参照方法に基づいて、参照動きベクトル・リスト構築プロセスは、
図20に示される(1)ないし(8)の順序で、WxHルマ・サンプル単位で隣接領域を探索することができる。上のWxH領域T
ij、左のWxH領域L
ij、左上のWxH領域TL、及び右上のWxH領域TRに対する動きベクトルは、候補リスト内の参照動きベクトルとして使用される前に、
【0141】
【数2】
によってスケーリングされ、ここで、D
refはWxH領域のサンプリング比であり、D
curは現在のブロックに使用されるべきサンプリング比である。WxHの例示的な値は、8×8を含むが、これに限定されない。
【0142】
[0175]
図21は、本開示の実施形態による例示的な時間的に隣接する動きベクトルの参照を示す。
【0143】
[0176] 一実施形態において、AV1における時間的に隣接する動きベクトル参照方法のような動きベクトル参照方法に基づいて、現在のフレーム内で(blk_row, blk_col)に位置する現在のブロックに対する動きベクトルmf_mv_1及びmf_mv_2は、以下のようにして取得することが可能である。
【0144】
[0177]
図21に示すように、参照フレーム(reference_frame1)の指定されたサーチ・エリア内の(ref_blk_row, ref_blk_col)に位置するWxH領域に対する動きベクトルref_mvは、以前のフレーム(prior_frame)に向かう運動軌跡を見出すために使用される。軌道が(blk_row, blk_col)に位置する現在のブロックと交わる場合、reference_frame1 及びreference_frame2に対する動きベクトルmf_mv_1 及びmf_mv_2は次のように与えられる:
【0145】
【数3】
ここで、‘x’及び‘y’はそれぞれ動きベクトルの水平及び垂直成分を表す。
【0146】
[0178] 導出された動きベクトルmf_mv_1 及びmf_mv_2は、候補リスト内の参照動きベクトルとして使用される前に、
【0147】
【数4】
によって更にスケーリングされ、ここで、D
refはWxHブロックのサンプリング比であり、D
curは現在のフレームの(blk_row, blk_col)の位置にある現在のブロックに使用されるべきサンプリング比である。WxHの例示的な値は、8×8を含むが、これに限定されない。
【0148】
[0179] 本開示の態様によれば、現在のブロックの動きベクトル候補は、2つの(又は複数の)カテゴリに分類することができる。
図14に示すように、現在のブロックの直近の上の行、直近の左の列、及び右上コーナーに位置する空間的に隣接するブロックの動きベクトルは、現在のブロックの動きベクトル候補の第1カテゴリ(例えば、カテゴリ1)として分類されることが可能である一方、他の全ての候補は第2カテゴリ(例えば、カテゴリ2)として分類される。各カテゴリの中で、動きベクトル候補は、各候補が現れるカウント番号の降順にソートされることが可能である。即ち、候補リスト内の第2動きベクトル候補よりも頻繁に現れる第1動きベクトル候補が、候補リストの中で第2動ベクトル候補の前に配置される。更に、第1カテゴリ(例えば、カテゴリ1)の候補リストは、第2カテゴリ(例えば、カテゴリ2)の候補リストと連結されて、単一の候補リストを形成することが可能である。
【0149】
[0180] 幾つかの実施形態において、カテゴリ及び各カテゴリ内のカウント番号に加えて、動きベクトル候補に使用されるサンプリング比が、候補リストを構築する際に組み込まれることが可能である。
【0150】
[0181] 一実施形態において、現在のブロックと同じサンプリング率を有する隣接ブロックからの動きベクトル候補は、同じ出現回数の下では、各カテゴリの候補リスト内で選択されることに関してより高い優先度を有することが可能である。
【0151】
[0182] 一実施形態において、2つの別個の候補リストを構築することができる。第1候補リストは、同じサンプリング比を有する隣接ブロックからの候補動きベクトルのみを含むことが可能である。第2候補リストは、異なるサンプリング比を有する隣接ブロックからの候補動きベクトルを含むことが可能である。どの候補リストが使用されるかは、候補リスト内の選択された参照動きベクトルのインデックスのシグナリングに加えて、シグナリング又は推測されることが可能である。
【0152】
[0183] 一実施形態では、第1候補リスト内の候補の数が、インデックスを付されてシグナリングされる参照動きベクトルの指定された数より小さい場合に限り、第2候補リストはスキャンされることが可能である。
【0153】
[0184] 一実施形態では、インターリーブ方式に基づいて、2つの別々の候補リストはマージされて単一のリストを形成することができる。例えば、両方のリストからの候補の総数が、参照動きベクトルの指定された数以上である場合、第1候補リストからのものと、第2候補リストからの別のものとは、結合されたリスト内の参照動きベクトルの指定された数に到達するまで、リスト内にエントリ位置の昇順に選択されることが可能である。
【0154】
[0185]
図22は、本開示の実施形態によるアフィン動き予測のための例示的な空間的に隣接する動きベクトルの参照を示す。
【0155】
[0186] 一実施形態では、AV1におけるアフィン動き予測方法のような動きベクトル参照方法に基づいて、現在のブロック内で(x, y)にあるサンプルを、参照フレーム内で(x’, y’)にある参照ブロック内の予測サンプルに投影するアフィン・モデルは、以下のように与えられる:
【0156】
【数5】
[0187] アフィン・パラメータ{h
ij:i = 1, 2 及び j = 1, 2}は以下のようにして取得されることが可能である。現在のフレーム内のサンプル位置は、(a
k, b
k) = (x
k, y
k) - (x
0, y
0) のように定義され、ここで、kは、現在のブロックと同じ参照フレームを有する隣接ブロックのインデックスである(k = 0は現在のブロックに対応する)。
図22の例では、k = 2, 3, 5, 6である。
【0157】
[0188] 次いで、参照フレーム内の対応するサンプル位置は次のように与えられる:
【0158】
【数6】
ここで、mv
k・x及びmv
k・yはそれぞれ隣接するブロックkの動きベクトルの水平及び垂直成分である(k = 0は現在のブロックに対応する)。D
ref,k及びD
curはそれぞれ隣接ブロックkと現在のブロックのサンプリング比である。
【0159】
[0189] 最小二乗解は、以下のようにして取得することが可能である:
【0160】
【数7】
ここで、P, q, rは、
図22に示される例では、以下のように与えられる:
【0161】
【数8】
[0190] 上記の説明では、アフィン・パラメータ(h
13, h
23)は、フル解像度における並進動きベクトルに対応することが仮定されている。サンプリング比Dを用いた減少解像度の予測が、ブロックに適用される場合、(h
13, h
23)はそれに応じて
【0162】
【数9】
のようにスケーリングされることを必要とする。このようなダウン・スケーリング演算は、動きベクトルの数値精度を低下させる可能性がある(例えば、動きベクトルを2
Nの因子でダウン・スケーリングすることは、動きベクトルに、その下位Nビットを破棄させることができる)。フル解像度のドメインにおけるものと同じ精度を維持するために、動きベクトルの元の解像度を増加させることができる。
【0163】
[0191] 本開示の態様によれば、減少解像度のコーディング・モードを使用してブロックをコーディングするために隣接する動きベクトルをスケーリングする場合、スケーリングされた動きベクトルの水平及び垂直成分は、以下のアプローチのうちの1つを使用して導出することができる。
【0164】
[0192] 第1アプローチでは、スケーリング係数が2の冪乗(例えば、2N)である場合に、動きベクトルの水平成分の下位Nビットと、動きベクトルの垂直成分の下位Nビットとが、スケーリングされた動きベクトルを得るために破棄される。
【0165】
[0193] 第2アプローチでは、スケーリング係数が2の冪乗(例えば、2N)である場合に、先ず、動きベクトルは丸め係数(例えば、2N-1)と加算され、次いで、動きベクトルの水平成分の下位Nビットと、動きベクトルの垂直成分の下位Nビットが、スケーリングされた動きベクトルを得るために破棄される。
【0166】
[0194] 第3アプローチでは、スケーリング係数が2の冪乗ではない場合に、ルック・アップ・テーブルを使用して、スケーリングされた動きベクトルの水平成分及び垂直成分の値を導出することができる。
【0167】
[0195] VI. フローチャート
[0196]
図23は、本開示の実施形態による例示的なプロセス(2300)の概要を示すフローチャートを示す。様々な実施形態では、プロセス(2300)は、端末デバイス(210),(220),(230),(240)の処理回路、ビデオ・エンコーダ(303)の機能を実行する処理回路、ビデオ・デコーダ(310)の機能を実行する処理回路、ビデオ・デコーダ(410)の機能を実行する処理回路、イントラ予測モジュール(452)の機能を実行する処理回路、ビデオ・エンコーダ(503)の機能を実行する処理回路、予測器(535)の機能を実行する処理回路、イントラ・エンコーダ(622)の機能を実行する処理回路、イントラ・デコーダ(772)の機能を実行する処理回路のような処理回路によって実行される。幾つかの実施形態では、プロセス(2300)はソフトウェア命令で実装され、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(2300)を実行する。
【0168】
[0197] プロセス(2300)は一般にステップ(S2310)で開始されることが可能であり、ここで、プロセス(2300)は、ビデオ・ビットストリームを復号化して、現在のブロックに対する低解像度の残差ブロックを取得する。次いで、プロセス(2300)はステップ(S2320)に進む。
【0169】
[0198] ステップ(S2330)において、プロセス(2300)は、ブロック・レベル・フラグが事前に定義された値に設定されていると判断する。事前に定義された値は、現在のブロックが減少解像度コーディングでコーディングされていることを示す。次いで、プロセス(2300)はステップ(S2330)に進む。
【0170】
[0199] ステップ(2330)において、プロセス(2300)は、現在のブロックのフル解像度の参照ブロックをダウン・サンプリングすることによって、現在のブロックに対する減少解像度の予測ブロックを生成する。次いで、プロセス(2300)はステップ(S2340)に進む。
【0171】
[0200] ステップ(S2340)において、プロセス(2300)は、減少解像度の予測ブロックと減少解像度の残差ブロックとに基づいて、現在のブロックに対する減少解像度の再構成ブロックを生成する。次いで、プロセス(2300)はステップ(S2350)に進む。
【0172】
[0201] ステップ(2350)において、プロセス(2300)は、減少解像度の再構成ブロックをアップ・サンプリングすることによって、現在のブロックに対するフル解像度の再構成ブロックを生成する。次いで、プロセス(2300)は終了する。
【0173】
[0202] 実施形態において、プロセス(2300)は、フル解像度の参照ブロックのサイズと現在のブロックのダウン・サンプリング率とに基づいて、減少解像度の予測ブロックのサイズを決定する。
【0174】
[0203] 実施形態において、プロセス(2300)は、現在のブロックに対するブロック・レベル・フラグを、ビデオ・ビットストリームから復号化する。ブロック・レベル・フラグは、現在のブロックが減少解像度コーディングでコーディングされていることを示す。
【0175】
[0204] 実施形態において、プロセス(2300)は、フィルタ係数又はフィルタ係数のインデックスのうちの1つを、ビデオ・ビットストリームから復号化する。フィルタ係数は、減少解像度の再構成ブロックをアップ・サンプリングする際に使用される。
【0176】
[0205] 実施形態において、プロセス(2300)は、現在のブロックの第1隣接ブロックの動きベクトルを、現在のブロックと第1隣接ブロックのダウン・サンプリング率の比率であるスケーリング係数に基づいてスケーリングする。プロセス(2300)は、現在のブロックに対する第1動きベクトル候補リストを構築する。第1動きベクトル候補リストは第1隣接ブロックのスケーリングされた動きベクトルを含む。
【0177】
[0206] 実施形態において、プロセス(2300)は、スケーリング係数が2の冪乗であることに応じて、スケーリングされた動きベクトルを、シフト演算に基づいて決定する。一例では、スケーリング係数が2Nである場合に、スケーリングされた動きベクトルを得るために、動きベクトルの水平成分の下位Nビットと動きベクトルの垂直成分の下位Nビットは破棄される。別の例において、スケーリング係数が2Nである場合に、先ず、動きベクトルは丸め係数(例えば、2N-1)とともに加算され、次いで、動きベクトルの水平成分の下位Nビットと動きベクトルの垂直成分の下位Nビットが、スケーリングされた動きベクトルを得るために破棄される。
【0178】
[0207] 実施形態において、プロセス(2300)は、スケーリング係数が2の冪乗でないことに応じて、スケーリングされた動きベクトルを、ルック・アップ・テーブルに基づいて決定する。
【0179】
[0208] 実施形態において、プロセス(2300)は、第1動きベクトル候補リスト内でのスケーリングされた動きベクトルの優先度を、現在のブロックと第1隣接ブロックのダウン・サンプリング率に基づいて決定する。
【0180】
[0209] 実施形態において、プロセス(2300)は、現在のブロックの1つ以上の第2隣接ブロックに基づいて、現在のブロックに対する第2動きベクトル候補リストを構築する。1つ以上の第2隣接ブロックの各々は、現在のブロックと同じダウン・サンプリング率を有する。プロセス(2300)は、現在のブロックの1つ以上の第3隣接ブロックに基づいて、現在のブロックに対する第3動きベクトル候補リストを構築する。1つ以上の第3隣接ブロックの各々は、現在のブロックとは異なるダウン・サンプリング率を有する。
【0181】
[0210] 実施形態において、プロセス(2300)は、指定された数より少ない、第2動きベクトル候補リスト内の動きベクトル候補の数に基づいて、第3動きベクトル候補リストをスキャンする。
【0182】
[0211] 実施形態において、プロセス(2300)は、第2動きベクトル候補リストと第3動きベクトル候補リストとをインターリーブ方式でマージすることによって、現在のブロックに対する第4動きベクトル候補リストを決定する。
【0183】
[0212] 実施形態において、プロセス(2300)は、現在のブロックのダウン・サンプリング率に基づいて、現在のブロックのアフィン・パラメータを決定する。
【0184】
[0213] VII. コンピュータ・システム
[0214] 上述した技術は、コンピュータ読み取り可能な命令を用いてコンピュータ・ソフトウェアとして実装することが可能であり、1つ以上のコンピュータ読み取り可能な媒体に物理的に記憶することが可能である。例えば、
図24は、開示される対象事項の特定の実施形態を実現するのに適したコンピュータ・システム(2400)を示す。
【0185】
[0215] コンピュータ・ソフトウェアは、アセンブリ、コンパイル、リンク、又は類似のメカニズムの対象となり得る任意の適切なマシン・コード又はコンピュータ言語を使用してコーディングされて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)等によって、直接的に実行されることが可能な命令、又は解釈やマイクロコード実行などを経由する命令、を含むコードを作成することが可能である。
【0186】
[0216] 命令は、例えば、パーソナル・コンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーム・デバイス、モノのインターネット・デバイス等を含む、種々のタイプのコンピュータ又はそのコンポーネント上で実行されることが可能である。
【0187】
[0217] コンピュータ・システム(2400)について
図24に示されているコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータ・ソフトウェアの使用範囲又は機能性に関する如何なる制限も示唆するようには意図されていない。また、コンポーネントの構成は、コンピュータ・システム(2400)の例示的な実施形態に示されたコンポーネントの任意の1つ又は組み合わせに関する何らかの従属性や要件を有するものとして解釈されてはならない。
【0188】
[0218] コンピュータ・システム(2400)は、特定のヒューマン・インターフェース入力デバイスを含むことが可能である。このようなヒューマン・インターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データ・グローブの動き)、聴覚的な入力(例えば、声、拍手)、視覚的な入力(例えば、ジェスチャ)、嗅覚的な入力(図示されていない)を介して、1人以上の人間ユーザーによる入力に応答することが可能である。また、ヒューマン・インターフェース・デバイスは、オーディオ(例えば、会話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体ピクチャを含む3次元ビデオ)のような、人間による意識的な入力に必ずしも直接的に関係しない特定のメディアを捕捉するために使用することが可能である。
【0189】
[0219] 入力ヒューマン・インターフェース・デバイスは、キーボード(2401)、マウス(2402)、トラックパッド(2403)、タッチ・スクリーン(2910)、データ・グローブ(不図示)、ジョイスティック(2405)、マイクロホン(2406)、スキャナ(2407)、カメラ(2408)のうちの(描かれているものはそれぞれ唯1つであるが)1つ以上を含む可能性がある。
【0190】
[0220] コンピュータ・システム(2400)は、特定のヒューマン・インターフェース出力デバイスを含むことも可能である。このようなヒューマン・インターフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通じて、1人以上の人間ユーザーの感覚を刺激することが可能である。このようなヒューマン・インターフェース出力デバイスは、触覚出力デバイス(例えば、タッチ・スクリーン(2410)、データ・グローブ(不図示)、ジョイスティック(2405)による触覚フィードバックであるが、入力デバイスとして役立たない触覚フィードバック・デバイスが存在する可能性もある)、聴覚的な出力デバイス(例えば、スピーカー(2409)、ヘッドフォン(不図示せず))、視覚的な出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマ・スクリーン、OLEDスクリーンを含むスクリーン(2410)であり、各々はタッチ・スクリーン入力機能を備えるか又は備えておらず、各々は触覚フィードバック機能を備えるか又は備えておらず、それらのうちの幾つかは、二次元的な視覚的な出力、立体出力のような手段による三次元以上の出力を出力することが可能であってもよい;仮想現実メガネ(図示せず)、ホログラフィック・ディスプレイ、及びスモーク・タンク(図示せず))、及びプリンタ(図示せず)を含むことが可能である。これらの視覚出力デバイス(スクリーン(2410)など)は、グラフィックス・アダプタ(2450)を介してシステム・バス(2448)に接続することが可能である。
【0191】
[0221] コンピュータ・システム(2400)はまた、CD/DVD等の媒体(2421)を使うCD/DVD ROM/RW(2420)を含む光媒体、サム・ドライブ(2422)、リムーバブル・ハード・ドライブ又はソリッド・ステート・ドライブ(2423)、テープ及びフロッピー・ディスク(図示せず)等のレガシー磁気媒体(不図示)、セキュリティ・ドングル(不図示)等の特殊化されたROM/ASIC/PLDベースのデバイスのような、人間がアクセス可能な記憶デバイス及びそれらに関連する媒体を含むことも可能である。
【0192】
[0222] 当業者はまた、ここで開示される対象事項に関連して使用される用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、又はその他の過渡的な信号を包含しないことも理解するはずである。
【0193】
[0223] コンピュータ・システム(2400)はまた、1つ以上の通信ネットワーク(2455)へのインターフェースを含むことも可能である。1つ以上のネットワーク(2455)は、例えば、無線、有線、光であるとすることが可能である。1つ以上のネットワーク(2455)は、更に、ローカル、ワイド・エリア、メトロポリタン、車両産業、リアルタイム、遅延耐性などに関するものであるとすることが可能である。1つ以上のネットワーク(2455)の例は、イーサーネット、無線LAN、セルラー・ネットワーク(GSM、3G、4G、5G、LTE等を含む)、TVの有線又は無線ワイド・エリア・デジタル・ネットワーク(ケーブルTV、衛星TV、及び地上放送TVを含む)、CANBusを含む車両産業などを含む。特定のネットワークは、一般に、特定の汎用データ・ポート又は周辺バス(2449)に取り付けられる外部ネットワーク・インターフェース・アダプタを必要とする(例えば、コンピュータ・システム(2400)のUSBポート);その他は、一般に、以下に説明するようなシステム・バスに取り付けることによって、コンピュータ・システム(2400)のコアに統合される(例えば、イーサーネット・インターフェースはPCコンピュータ・システム内に、セルラー・ネットワーク・インターフェースはスマートフォン・コンピュータ・システム内に統合される)。これらのうちの任意のネットワークを使用して、コンピュータ・システム(2400)は、他のエンティティと通信することが可能である。このような通信は、片-方向受信専用(例えば、放送テレビ)、片-方向送信専用(例えば、特定のCANbusデバイスに対するCANbus)、又は双-方向、例えばローカル又はワイド・エリア・デジタル・ネットワークを使用する他のコンピュータ・システムに対するものであるとすることが可能である。特定のプロトコル及びプロトコル・スタックは、上述のように、それらのネットワーク及びネットワーク・インターフェースの各々で使用されることが可能である。
【0194】
[0224] 前述のヒューマン・インターフェース・デバイス、ヒューマン・アクセシブル・ストレージ・デバイス、及びネットワーク・インターフェースは、コンピュータ・システム(2400)のコア(2440)に取り付けられることが可能である。
【0195】
[0225] コア(2440)は、1つ以上の中央処理ユニット(CPU)(2441)、グラフィックス処理ユニット(GPU)(2442)、フィールド・プログラマブル・ゲート・エリア(FPGA)(2443)の形式における特殊プログラマブル処理デバイス、特定タスク用のハードウェア・アクセラレータ(2444)等を含むことが可能である。これらのデバイスは、リード・オンリ・メモリ(ROM)(2445)、ランダム・アクセス・メモリ(2446)、内部大容量ストレージ・デバイス(例えば、内的な非ユーザー・アクセシブル・ハード・ドライブ、SSD等)(2447)と共に、システム・バス(2448)を介して接続されることが可能である。幾つかのコンピュータ・システムでは、システム・バス(2448)は、追加のCPU、GPU等による拡張を可能にするために、1つ以上の物理的プラグの形態でアクセス可能である可能性がある。周辺デバイスは、コアのシステム・バス(2448)に直接取り付けられるか、又は周辺バス(2449)を介して取り付けられることが可能である。一例ではスクリーン(2410)をグラフィックス・アダプタ(2450)に接続することができる。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0196】
[0226] CPU(2441)、GPU(2442)、FPGA(2443)、及びアクセラレータ(2444)は、組み合わされて、前述のコンピュータ・コードを構成することが可能な特定の命令を実行することが可能である。コンピュータ・コードは、ROM(2445)又はRAM(2446)に記憶されることが可能である。一時的なデータはRAM(2446)に格納されることが可能である一方、永続的なデータは例えば内部の大容量ストレージ(2447)に格納されることが可能である。任意のメモリ・デバイスに対する高速な記憶及び検索は、キャッシュ・メモリを利用することで可能になる可能性があり、キャッシュ・メモリは、1つ以上のCPU(2441)、GPU(2442)、大容量ストレージ(2447)、ROM(2445)、RAM(2446)等と密接に関連付けることが可能である。
【0197】
[0227] コンピュータ読み取り可能な媒体は、様々なコンピュータ実装済み動作を実行するためのコンピュータ・コードをその上に有することが可能である。媒体及びコンピュータ・コードは、本開示の目的のために特別に設計及び構築されたものであるとすることが可能であり、又はそれらは、コンピュータ・ソフトウェアの分野における当業者にとって周知であり且つ入手可能な種類のものであるとすることが可能である。
【0198】
[0228] 例示として、限定ではなく、アーキテクチャ(2400)、具体的にはコア(2440)を有するコンピュータ・システムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として、1つ以上の有形のコンピュータ読み取り可能な媒体に具現化されたソフトウェアを実行する機能を提供することが可能である。そのようなコンピュータ読み取り可能な媒体は、コア内部の大容量ストレージ(2447)又はROM(2445)のような非一時的な性質のコア(2440)の特定のストレージと同様に、上述したようなユーザー・アクセシブル大容量ストレージに関連するメディアであるとすることが可能である。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア(2440)によって実行されることが可能である。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリ・デバイス又はチップを含むことが可能である。ソフトウェアは、RAM(2446)に記憶されたデータ構造を定めること、及びソフトウェアによって定められたプロセスに従ってそのようなデータ構造を修正することを含む、本願で説明された特定のプロセス又は特定のプロセスの特定の部分を、コア(2440)及び特にその中のプロセッサ(CPU、GPU、FPGA等を含む)に実行させることが可能である。更に又は代替として、コンピュータ・システムは、回路(例えば、アクセラレータ(2444))内に配線された又は他の方法で組み込まれたロジックの結果として機能を提供することが可能であり、その回路は、本願で説明された特定のプロセス又は特定のプロセスの特定の部分を実行することを、ソフトウェアの代わりに又はそれと共に実行することが可能である。ソフトウェアに対する言及はロジックを含み、必要に応じて、その逆も可能である。コンピュータ読み取り可能な媒体に対する言及は、実行のためのソフトウェアを記憶する(集積回路(IC)のような)回路、実行のためのロジックを具体化する回路、又は適切な場合にはその両方を包含することが可能である。本開示はハードウェア及びソフトウェアの適切な任意の組み合わせを包含する。
【0199】
[0229] 本開示は、幾つかの例示的な実施形態を説明してきたが、本開示の範囲内に該当する、変更、置換、及び種々の代替的な均等物が存在する。従って、当業者は、本願で明示的には図示も説明もされていないが、本開示の原理を具体化し、従ってその精神及び範囲内にある多くのシステム及び方法を案出することが可能であることは理解されるであろう。
【0200】
[0230] 付記
(付記1)
デコーダにおけるビデオ復号化方法であって:
ビデオ・ビットストリームを復号化して、現在のブロックに対する減少解像度の残差ブロックを取得するステップ;
ブロック・レベル・フラグは事前に定義された値に設定されていると判断するステップであって、前記事前に定義された値は、前記現在のブロックが減少解像度コーディングでコーディングされていることを示す、ステップ;
前記ブロック・レベル・フラグに基づいて、前記現在のブロックのフル解像度の参照ブロックをダウン・サンプリングすることによって、前記現在のブロックに対する減少解像度の予測ブロックを生成するステップ;
前記減少解像度の予測ブロックと前記減少解像度の残差ブロックとに基づいて、前記現在のブロックに対する減少解像度の再構成ブロックを生成するステップ;及び
前記減少解像度の再構成ブロックをアップ・サンプリングすることによって、前記現在のブロックに対するフル解像度の再構成ブロックを生成するステップ;
を含む方法。
【0201】
(付記2)
付記1に記載の方法において、前記減少解像度の予測ブロックを生成するステップは:
前記フル解像度の参照ブロックのサイズと前記現在のブロックのダウン・サンプリング率とに基づいて、前記減少解像度の予測ブロックのサイズを決定するステップ;
を含む、方法。
【0202】
(付記3)
付記1に記載の方法において、前記判断するステップは:
前記現在のブロックに対する前記ブロック・レベル・フラグを、前記ビデオ・ビットストリームから復号化するステップを含み、前記ブロック・レベル・フラグは、前記現在のブロックが前記減少解像度コーディングでコーディングされていることを示す、方法。
【0203】
(付記4)
付記1に記載の方法において、前記判断するステップは:
フィルタ係数又は前記フィルタ係数のインデックスのうちの1つを、前記ビデオ・ビットストリームから復号化するステップを更に含み、前記フィルタ係数は、前記減少解像度の再構成ブロックをアップ・サンプリングする際に使用される、方法。
【0204】
(付記5)
付記1に記載の方法において:
前記現在のブロックの第1隣接ブロックの動きベクトルを、前記現在のブロックと前記第1隣接ブロックのダウン・サンプリング率の比率であるスケーリング係数に基づいてスケーリングするステップ;及び
前記現在のブロックに対する第1動きベクトル候補リストを構築するステップであって、前記第1動きベクトル候補リストは前記第1隣接ブロックのスケーリングされた動きベクトルを含む、ステップ;
を更に含む、方法。
【0205】
(付記6)
付記5に記載の方法において、前記スケーリングするステップは:
前記スケーリング係数が2の冪乗であることに応じて、前記スケーリングされた動きベクトルを、シフト演算に基づいて決定するステップ;及び
前記スケーリング係数が2の冪乗でないことに応じて、前記スケーリングされた動きベクトルを、ルック・アップ・テーブルに基づいて決定するステップ;
を含む、方法。
【0206】
(付記7)
付記5に記載の方法において、前記第1動きベクトル候補リスト内での前記スケーリングされた動きベクトルの優先度を、前記現在のブロックと前記第1隣接ブロックのダウン・サンプリング率に基づいて決定するステップ;
を更に含む、方法。
【0207】
(付記8)
付記1に記載の方法において:
前記現在のブロックの1つ以上の第2隣接ブロックに基づいて、前記現在のブロックに対する第2動きベクトル候補リストを構築するステップであって、前記1つ以上の第2隣接ブロックの各々は、前記現在のブロックと同じダウン・サンプリング率を有する、ステップ;及び
前記現在のブロックの1つ以上の第3隣接ブロックに基づいて、前記現在のブロックに対する第3動きベクトル候補リストを構築するステップであって、前記1つ以上の第3隣接ブロックの各々は、前記現在のブロックとは異なるダウン・サンプリング率を有する、ステップ;
を更に含む方法。
【0208】
(付記9)
付記8に記載の方法において:
指定された数より少ない、前記第2動きベクトル候補リスト内の動きベクトル候補の数に基づいて、前記第3動きベクトル候補リストをスキャニングするステップ;
を更に含む、方法。
【0209】
(付記10)
付記8に記載の方法において:
前記第2動きベクトル候補リストと前記第3動きベクトル候補リストとをインターリーブ方式でマージすることによって、前記現在のブロックに対する第4動きベクトル候補リストを決定するステップ;
を更に含む、方法。
【0210】
(付記11)
付記1に記載の方法において:
前記現在のブロックのダウン・サンプリング率に基づいて、前記現在のブロックのアフィン・パラメータを決定するステップ;
を更に含む方法。
【0211】
(付記12)
処理回路を含む装置であって、前記処理回路は:
ビデオ・ビットストリームを復号化して、現在のブロックに対する減少解像度の残差ブロックを取得するステップ;
ブロック・レベル・フラグは事前に定義された値に設定されていると判断するステップであって、前記事前に定義された値は、前記現在のブロックが減少解像度コーディングでコーディングされていることを示す、ステップ;
前記ブロック・レベル・フラグに基づいて、前記現在のブロックのフル解像度の参照ブロックをダウン・サンプリングすることによって、前記現在のブロックに対する減少解像度の予測ブロックを生成するステップ;
前記減少解像度の予測ブロックと前記減少解像度の残差ブロックとに基づいて、前記現在のブロックに対する減少解像度の再構成ブロックを生成するステップ;及び
前記減少解像度の再構成ブロックをアップ・サンプリングすることによって、前記現在のブロックに対するフル解像度の再構成ブロックを生成するステップ;
を行うように構成されている、装置。
【0212】
(付記13)
付記12に記載の装置において、前記処理回路は:
前記フル解像度の参照ブロックのサイズと前記現在のブロックのダウン・サンプリング率とに基づいて、前記減少解像度の予測ブロックのサイズを決定するステップ;
を行うように更に構成されている、装置。
【0213】
(付記14)
付記12に記載の装置において、前記処理回路は:
前記現在のブロックに対する前記ブロック・レベル・フラグを、前記ビデオ・ビットストリームから復号化するように更に構成されており、前記ブロック・レベル・フラグは、前記現在のブロックが前記減少解像度コーディングでコーディングされていることを示す、装置。
【0214】
(付記15)
付記12に記載の装置において、前記処理回路は:
フィルタ係数又は前記フィルタ係数のインデックスのうちの1つを、前記ビデオ・ビットストリームから復号化するように更に構成されており、前記フィルタ係数は、前記減少解像度の再構成ブロックをアップ・サンプリングする際に使用される、装置。
【0215】
(付記16)
付記12に記載の装置において、前記処理回路は:
前記現在のブロックの第1隣接ブロックの動きベクトルを、前記現在のブロックと前記第1隣接ブロックのダウン・サンプリング率の比率であるスケーリング係数に基づいてスケーリングするステップ;及び
前記現在のブロックに対する第1動きベクトル候補リストを構築するステップであって、前記第1動きベクトル候補リストは前記第1隣接ブロックのスケーリングされた動きベクトルを含む、ステップ;
を行うように更に構成されている、装置。
【0216】
(付記17)
付記16に記載の装置において、前記処理回路は:
前記スケーリング係数が2の冪乗であることに応じて、前記スケーリングされた動きベクトルを、シフト演算に基づいて決定するステップ;及び
前記スケーリング係数が2の冪乗でないことに応じて、前記スケーリングされた動きベクトルを、ルック・アップ・テーブルに基づいて決定するステップ;
を行うように更に構成されている、装置。
【0217】
(付記18)
付記16に記載の装置において、前記処理回路は:
前記第1動きベクトル候補リスト内での前記スケーリングされた動きベクトルの優先度を、前記現在のブロックと前記第1隣接ブロックのダウン・サンプリング率に基づいて決定するように更に構成されている、装置。
【0218】
(付記19)
付記12に記載の装置において、前記処理回路は:
前記現在のブロックの1つ以上の第2隣接ブロックに基づいて、前記現在のブロックに対する第2動きベクトル候補リストを構築するステップであって、前記1つ以上の第2隣接ブロックの各々は、前記現在のブロックと同じダウン・サンプリング率を有する、ステップ;及び
前記現在のブロックの1つ以上の第3隣接ブロックに基づいて、前記現在のブロックに対する第3動きベクトル候補リストを構築するステップであって、前記1つ以上の第3隣接ブロックの各々は、前記現在のブロックとは異なるダウン・サンプリング率を有する、ステップ;
を行うように更に構成されている、装置。
【0219】
(付記20)
命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体であって、前記命令は少なくとも1つのプロセッサにより実行されると、前記少なくとも1つのプロセッサに:
ビデオ・ビットストリームを復号化して、現在のブロックに対する減少解像度の残差ブロックを取得するステップ;
ブロック・レベル・フラグは事前に定義された値に設定されていると判断するステップであって、前記事前に定義された値は、前記現在のブロックが減少解像度コーディングでコーディングされていることを示す、ステップ;
前記ブロック・レベル・フラグに基づいて、前記現在のブロックのフル解像度の参照ブロックをダウン・サンプリングすることによって、前記現在のブロックに対する減少解像度の予測ブロックを生成するステップ;
前記減少解像度の予測ブロックと前記減少解像度の残差ブロックとに基づいて、前記現在のブロックに対する減少解像度の再構成ブロックを生成するステップ;及び
前記減少解像度の再構成ブロックをアップ・サンプリングすることによって、前記現在のブロックに対するフル解像度の再構成ブロックを生成するステップ;
を実行させる、記憶媒体。
【符号の説明】
【0220】
[0231] 付録A:頭字語
ALF: Adaptive Loop Filter(適応複数変換)
AMVP: Advanced Motion Vector Prediction(アドバンスト動きベクトル予測)
APS: Adaptation Parameter Set(適応パラメータ・セット)
ASIC: Application-Specific Integrated Circuit(特定用途向け集積回路)
ATMVP: Alternative/Advanced Temporal Motion Vector Prediction(代替的/アドバンスト時間的動きベクトル予測)
AV1: AOMedia Video 1(AOMediaビデオ1)
AV2: AOMedia Video 2(AOMediaビデオ2)
BMS: Benchmark Set(ベンチマーク・セット)
BV:Block Vector(ブロック・ベクトル)
CANBus: Controller Area Network Bus(コントローラ・エリア・ネットワーク・バス)
CB: Coding Block(コーディング・ブロック)
CC-ALF: Cross-Component Adaptive Loop Filter(クロス・コンポーネント適応ループ・フィルタ)
CD: Compact Disc(コンパクト・ディスク)
CDEF: Constrained Directional Enhancement Filter(制限付き方向強調フィルタ)
CPR: Current Picture Referencing(カレント・ピクチャ参照)
CPU: Central Processing Unit(中央処理ユニット)
CRT: Cathode Ray Tube(陰極線管)
CTB: Coding Tree Block(コーディング・ツリー・ブロック)
CTU: Coding Tree Unit(コーディング・ツリー・ユニット)
CU:Coding Unit(コーディング・ユニット)
DPB:Decoder Picture Buffer(デコーダ・ピクチャ・バッファ)
DPCM: Differential Pulse-Code Modulation(差分パルス・コード変調)
DPS: Decoding Parameter Set(復号化パラメータ・セット)
DVD: Digital Video Disc(デジタル・ビデオ・ディスク)
FPGA: Field Programmable Gate Area(フィールド・プログラマブル・ゲート・エリア)
JCCR: Joint CbCr Residual Coding(ジョイントCbCr残差コーディング)
JVET:Joint Video Exploration Team(共同ビデオ探索チーム)
GOP: Groups of Pictures(ピクチャ・グループ)
GPU: Graphics Processing Unit(グラフィックス処理ユニット)
GSM: Global System for Mobile communications(移動通信用グローバル・システム)
HDR:High Dynamic Range(ハイ・ダイナミック・レンジ)
HEVC: High Efficiency Video Coding(高効率ビデオ・コーディング)
HRD: Hypothetical Reference Decoder(仮説参照デコーダ)
IBC: Intra Block Copy(イントラ・ブロック・コピー)
IC: Integrated Circuit(集積回路)
ISP: Intra Sub-Partitions(イントラ・サブ・パーティション)
JEM: Joint Exploration Model(共同ビデオ探索チーム)
LAN: Local Area Network(ローカル・エリア・ネットワーク)
LCD: Liquid-Crystal Display(液晶ディスプレイ)
LR: Loop Restoration Filter(ループ復元フィルタ)
LRU: Loop Restoration Unit(ループ復元ユニット)
LTE: Long-Term Evolution(ロング・ターム・エボリューション)
MPM:Most Probable Mode(最確モード)
MV:Motion Vector(動きベクトル)
OLED: Organic Light-Emitting Diode(有機発光第オード)
PBs: Prediction Blocks(予測ブロック)
PCI: Peripheral Component Interconnect(周辺コンポーネント相互接続)
PDPC: Position Dependent Prediction Combination(位置依存性予測コンビネーション)
PLD: Programmable Logic Device(プログラマブル論理デバイス)
PPS: Picture Parameter Set(ピクチャ・パラメータ・セット)
PU: Prediction Unit(予測ユニット)
RAM: Random Access Memory(ランダム・アクセス・メモリ)
ROM: Read-Only Memory(リード・オンリ・メモリ)
SAO: Sample Adaptive Offset(サンプル適応オフセット)
SCC:Screen Content Coding(スクリーン・コンテンツ・コーディング)
SDR:Standard Dynamic Range(標準ダイナミック・レンジ)
SEI: Supplementary Enhancement Information(補足エンハンスメント情報)
SNR: Signal Noise Ratio(信号雑音比)
SPS: Sequence Parameter Set(シーケンス・パラメータ・セット)
SSD: Solid-state Drive(ソリッド・ステート・ドライブ)
TU: Transform Unit(変換ユニット)
USB: Universal Serial Bus(ユニバーサル・シリアル・バス)
VPS: Video Parameter Set(ビデオ・パラメータ・セット)
VUI: Video Usability Information(ビデオ・ユーザビリティ情報)
VVC: Versatile Video Coding(汎用ビデオ・コーディング)
WAIP:Wide-Angle Intra Prediction(広角イントラ予測)