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

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

▶ テンセント・アメリカ・エルエルシーの特許一覧

特開2024-29127ビデオコーディングのための方法及び装置
<>
  • 特開-ビデオコーディングのための方法及び装置 図1
  • 特開-ビデオコーディングのための方法及び装置 図2
  • 特開-ビデオコーディングのための方法及び装置 図3
  • 特開-ビデオコーディングのための方法及び装置 図4
  • 特開-ビデオコーディングのための方法及び装置 図5
  • 特開-ビデオコーディングのための方法及び装置 図6
  • 特開-ビデオコーディングのための方法及び装置 図7
  • 特開-ビデオコーディングのための方法及び装置 図8A
  • 特開-ビデオコーディングのための方法及び装置 図8B
  • 特開-ビデオコーディングのための方法及び装置 図9
  • 特開-ビデオコーディングのための方法及び装置 図10
  • 特開-ビデオコーディングのための方法及び装置 図11
  • 特開-ビデオコーディングのための方法及び装置 図12
  • 特開-ビデオコーディングのための方法及び装置 図13
  • 特開-ビデオコーディングのための方法及び装置 図14
  • 特開-ビデオコーディングのための方法及び装置 図15
  • 特開-ビデオコーディングのための方法及び装置 図16
  • 特開-ビデオコーディングのための方法及び装置 図17
  • 特開-ビデオコーディングのための方法及び装置 図18
  • 特開-ビデオコーディングのための方法及び装置 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024029127
(43)【公開日】2024-03-05
(54)【発明の名称】ビデオコーディングのための方法及び装置
(51)【国際特許分類】
   H04N 19/52 20140101AFI20240227BHJP
   H04N 19/46 20140101ALI20240227BHJP
【FI】
H04N19/52
H04N19/46
【審査請求】有
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023220211
(22)【出願日】2023-12-27
(62)【分割の表示】P 2021560896の分割
【原出願日】2021-04-01
(31)【優先権主張番号】63/005,511
(32)【優先日】2020-04-06
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/217,595
(32)【優先日】2021-03-30
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リ,グォイチュン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】シュイ,シアオジョォン
(72)【発明者】
【氏名】リィウ,シャン
(57)【要約】      (修正有)
【課題】ビデオエンコーディング/デコーディングのための方法及び装置を提供する。
【解決手段】方法は、コーディングされたビデオビットストリームからデコードされた予測情報に基づいてパラメータを決定する。パラメータは、サブブロックベースの時間的動きベクトル予測の有効/無効状態を示すフラグに依存する範囲内にある。方法はまた、パラメータに基づいてサブブロックベースのマージ候補リスト内の候補の最大数を計算し、サブブロックベースの予測モードにおける現在のブロックに応答して、現在のブロックの構成されたサブブロックベースのマージ候補リストからの候補選択に基づいて、現在のブロックのサンプルを再構成する。現在のブロックの構成されたサブブロックベースのマージ候補リストは、最大数によって制約される。
【選択図】図18
【特許請求の範囲】
【請求項1】
デコーダにおけるビデオデコーディングのための方法であって:
プロセッサが、コーディングされたビデオビットストリームからデコードされた予測情報に基づいてパラメータを決定するステップであって、前記パラメータは、サブブロックベースの時間的動きベクトル予測の有効/無効状態を示すフラグに依存する範囲内にある、ステップと;
前記プロセッサが、前記パラメータに基づいて、前記サブブロックベースのマージ候補リスト内の候補の最大数を計算するステップと;
サブブロックベースの予測モードにおける現在のブロックに応答して、前記現在のブロックの構成されたサブブロックベースのマージ候補リストからの候補選択に基づいて、前記現在のブロックのサンプルを再構成するステップであって、前記現在のブロックの前記構成されたサブブロックベースのマージ候補リストは、前記サブブロックベースのマージ候補リスト内の前記候補の最大数によって制約される、ステップと;を含む、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
[参照による援用]
本願は、2020年4月6日に出願された米国仮特許出願第63/005,511号"METHOD OF SETTING NUMBER OF SUBBLOCK MERGING CANDIDATES"の優先権の利益を主張する2021年3月30日に出願された米国特許出願第17/217,595号“METHOD AND APPARATUS FOR VIDEO CODING”の優先権の利益を主張する。先の出願の開示全体は、その全体が参照により本明細書に援用される。
【0002】
本開示は、ビデオコーディングに概して関連する実施形態を記載する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示するためのものである。本発明者の仕事は、その仕事がこの背景技術のセクションに記載されている範囲において、また、出願時に他の点では先行技術として適格でないかもしれない説明の側面において、本開示に対する先行技術として明示的にも暗示的にも認められない。
【0004】
ビデオコーディング及びデコーディングは、動き補償を伴うイントラ画像予測を用いて行うことができる。非圧縮ディジタルビデオは、一連の画像を含むことができ、各画像は、例えば、1920×1080の輝度(luminance)サンプル及び関連するクロミナンス(chrominance)サンプルの空間寸法を有する。一連の画像は、例えば、毎秒60画像又は60Hzの固定又は可変の画像レート(非公式にはフレームレートとも呼ばれる)を有することができる。非圧縮ビデオは、かなりのビットレート要件を有する。例えば、サンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートでの1920x1080の輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。1時間のこのようなビデオは、600Gバイトを超える記憶領域を必要とする。
【0005】
ビデオコーディング及びデコーディングの1つの目的は、圧縮による入力ビデオ信号の冗長性の低減であり得る。圧縮は、場合によっては、2桁以上前述の帯域幅又は記憶領域の要求を低減するのに役立つことができる。ロスレス(lossless)圧縮及びロッシー(lossy)圧縮の両方、ならびにそれらの組み合わせを用いることができる。ロスレス圧縮は、元の信号の正確なコピーを圧縮された元の信号から再構成することができる技術をいう。ロッシー圧縮を使用する場合、再構成された信号は、元の信号と同一ではないかもしれないが、元の信号と再構成された信号との間の歪みは、再構成された信号を意図された用途に有用にするのに十分小さい。ビデオの場合、ロッシー圧縮が広く用いられている。許容される歪みの量は、アプリケーションに依存する;例えば、特定のコンシューマストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容し得る。達成可能な圧縮比は、以下を反映することができる:より高い許容できる/容認できる歪みは、より高い圧縮比をもたらすことができる。
【0006】
動き補償は、ロッシー圧縮技術であることができ、かつ、以前に再構成された画像又はその一部(参照画像)からのサンプルデータのブロックが、動きベクトル(以下MV)によって示される方向に空間的にシフトされた後に、新しく再構成された画像又はその一部の予測のために使用される技術に関連付けることができる。場合によっては、参照画像は、現在再構成中の画像と同じであることができる。MVは、X及びYの2次元、又は3次元を有することができ、第3の次元は、使用中の参照画像の表示である(後者は、間接的に、時間次元であることができる)。
【0007】
いくつかのビデオ圧縮技術では、サンプルデータのある領域に適用可能なMVは、他のMVから、例えば、再構成中の領域に空間的に隣接し、デコード順にそのMVに先行するサンプルデータの別の領域に関連するMVから予測することができる。これにより、MVのコーディングに必要なデータ量を大幅に削減することができ、それによって冗長性を除去し、圧縮を増加させる。MV予測は、例えば、カメラ(ナチュラルビデオとして知られる)から導出される入力ビデオ信号をコーディングする際に、単一のMVが適用される領域よりも大きい領域が同様の方向に移動する統計的可能性があり、従って、ある場合には、隣接領域のMVから導出された同様の動きベクトルを用いて予測することができるので、効果的に機能することができる。その結果、所与の領域に対して、周囲のMVから予測されるMVと類似又は同一であることが見出され、そして、それは、エントロピーコーディングの後、MVを直接コーディングする場合に使用されるであろうものよりも、より少ない数のビットで表現することができる。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)のロスレス圧縮の例であり得る。他の場合には、MV予測それ自体は、例えば、いくつかの周囲のMVから予測子を計算する際の丸め誤差のために、ロッシーであり得る。
【0008】
様々なMV予測メカニズムが、H.265/HEVC(ITU-T Rec. H.265,“High Efficiency Video Coding”, December 2016)に記述されている。H.265が提供する多くのMV予測メカニズムのうち、本明細書に記載されるものは、以下「空間マージ」と呼ばれるテクニックである。
【0009】
図1を参照すると、現在のブロック(101)は、空間的にシフトされた同じサイズの前のブロックから予測可能であることが、動き探索処理中にエンコーダによって見出されたサンプルを含む。MVを直接コーディングする代わりに、MVは、1つ以上の参照画像に関連付けられたメタデータから、例えば、A0、A1、及びB0、B1、B2(それぞれ102から106)と示される5つの周囲のサンプルのいずれかに関連付けられたMVを使用して、最新の(デコーディング順に)参照画像から導出することができる。H.265では、MV予測は、隣接するブロックが使用しているのと同じ参照画像からの予測子を使用することができる。
【発明の概要】
【0010】
本開示の態様は、ビデオエンコーディング/デコーディングのための方法及び装置を提供する。いくつかの例では、ビデオデコーディングのための装置は、受信回路及び処理回路を含む。例えば、処理回路は、コーディングされたビデオビットストリームからデコードされた予測情報に基づいてパラメータを決定する。パラメータは、サブブロックベースの時間的動きベクトル予測の有効/無効状態を示すフラグに依存する範囲内にある。次に、処理回路は、パラメータに基づいてサブブロックベースのマージ候補リスト内の候補の最大数を計算し、サブブロックベースの予測モードにおける現在のブロックに応答して、現在のブロックの構成されたサブブロックベースのマージ候補リストからの候補選択に基づいて、現在のブロックのサンプルを再構成する。現在のブロックの構成されたサブブロックベースのマージ候補リストは、サブブロックベースのマージ候補リストの候補の最大数によって制約される。
【0011】
いくつかの例では、処理回路は、デフォルト数からパラメータを差し引くことによって、サブブロックベースのマージ候補リストの候補の最大数を決定する。一例では、デフォルト数は5である。
【0012】
いくつかの実施形態では、範囲の上限は、サブブロックベースの時間的動きベクトル予測の有効/無効状態を示すフラグに依存する。
【0013】
一例では、処理回路は、コーディングされたビデオビットストリーム内で信号送信される(signaled)パラメータを受信する。別の例では、処理回路は、パラメータがコーディングされたビデオビットストリームにおいて信号送信されていないことに応答して、デフォルト数と、サブブロックベースの時間的動きベクトル予測の有効/無効状態を示すフラグとに基づいて、パラメータを推定する。
【0014】
いくつかの例では、フラグは、シーケンスパラメータセット(SPS)レベルでのサブブロックベースの時間的動きベクトル予測の有効/無効状態を示す。
【0015】
いくつかの実施形態では、パラメータは、シーケンスパラメータセット(SPS)レベルでのサブブロックベースの時間的動きベクトル予測の有効/無効状態を示す第1のフラグと、画像ヘッダ(PH)レベルでの時間的動きベクトル予測の有効/無効状態を示す第2のフラグとに依存する範囲内にある。いくつかの例では、処理回路は、パラメータがコーディングされたビデオビットストリームにおいて信号送信されていないことに応答して、デフォルト数、SPSレベルでのサブブロックベースの時間的動きベクトル予測の有効/無効状態を示す第1のフラグ及びPHレベルにおける時間的動きベクトル予測の有効/無効状態を示す第2のフラグに基づいて、パラメータを推定することができる。
【0016】
また、本開示の態様は、ビデオデコーディングのためにコンピュータによって実行されるときに、コンピュータにビデオデコーディングのための方法を実行させる命令を記憶する非一時的コンピュータ読取可能媒体を提供する。
【図面の簡単な説明】
【0017】
開示された主題のさらなる特徴、性質、及び種々の利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう。
【0018】
図1】一例における現在のブロック及びその周囲の空間的マージ候補の概略図である。
【0019】
図2】一実施形態による通信システム(200)の簡略ブロック図の概略図である。
【0020】
図3】一実施形態による通信システム(300)の簡略ブロック図の概略図である。
【0021】
図4】一実施形態によるデコーダの簡略ブロック図の概略図である。
【0022】
図5】一実施形態によるエンコーダの簡略ブロック図の概略図である。
【0023】
図6】別の実施形態によるエンコーダのブロック図を示す。
【0024】
図7】別の実施形態によるデコーダのブロック図を示す。
【0025】
図8A】アフィン動きモデル(affine motion models)を示す。
【0026】
図8B】アフィン動きモデルを示す。
【0027】
図9】サブブロック当たりのアフィン動きベクトルフィールドの例を示す。
【0028】
図10】アフィンマージモードにおける継承された制御点動きベクトルを決定するための例を示す。
【0029】
図11】本開示のいくつかの実施形態による、空間的に隣接するもの及び時間的に隣接するものの一例を示す。
【0030】
図12】いくつかの例におけるアフィン動きデータ継承のための動きベクトル使用を示す図を示す。
【0031】
図13】本開示の一実施形態による、オプティカルフロー法による予測精緻化の一例の概略図を示す。
【0032】
図14】本開示のいくつかの実施形態による、サブブロックベースの時間的動きベクトル予測(SbTMVP)プロセスの一例を示す。
【0033】
図15】本開示のいくつかの実施形態による、サブブロックベースの時間的動きベクトル予測(SbTMVP)プロセスの一例を示す。
【0034】
図16】いくつかの例におけるシーケンスパラメータセット(SPS)の構文テーブルの例を示す。
【0035】
図17】いくつかの例における画像ヘッダ構造の構文テーブルの例を示す。
【0036】
図18】本開示のいくつかの実施形態によるプロセス例を概説するフローチャートを示す。
【0037】
図19】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0038】
図2は、本開示の一実施形態による通信システム(200)の簡略化されたブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して互いに通信することができる複数の端末装置を含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された第1の端末装置(210)及び(220)の対を含む。図2の例では、第1の端末装置(210)及び(220)の対は、データの一方向送信を行う。例えば、端末装置(210)は、ネットワーク(250)を介して他の端末装置(220)に伝送するために、ビデオデータ(例えば、端末装置(210)によってキャプチャされるビデオ画像のストリーム)をコーディングし得る。コーディングされたビデオデータは、1つ以上のコーディングされたビデオビットストリームの形態で送信することができる。端末装置(220)は、ネットワーク(250)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードして、ビデオ画像を復元し、復元されたビデオデータに従ってビデオ画像を表示し得る。一方向性データ伝送は、メディア提供アプリケーション等において一般的である。
【0039】
別の例では、通信システム(200)は、例えばビデオ会議中に発生し得るコーディングされたビデオデータの双方向伝送を行う第2の端末装置(230)及び(240)の対を含む。データの双方向伝送のために、一例では、端末装置(230)及び(240)の各端末装置が、ネットワーク(250)を介して端末装置(230)及び(240)の他方の端末装置に伝送するために、ビデオデータ(例えば、端末装置によってキャプチャされるビデオ画像のストリーム)をコーディングし得る。端末装置(230)及び(240)の各端末装置はまた、端末装置(230)及び(240)の他方の端末装置によって送信されたコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードして、ビデオ画像を復元し、復元されたビデオデータに従って、アクセス可能なディスプレイ装置にビデオ画像を表示し得る。
【0040】
図2の例では、端末装置(210)、(220)、(230)及び(240)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示され得るが、本開示の原理は、それに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ及び/又は専用のビデオ会議装置への適用を見出す。ネットワーク(250)は、例えば有線及び/又は無線通信ネットワークを含む、端末装置(210)、(220)、(230)及び(240)の間でコーディングされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(250)は、回線交換及び/又はパケット交換チャネル内のデータを交換し得る。代表的なネットワークは、通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットを含む。本説明の目的のために、ネットワーク(250)のアーキテクチャ及びトポロジーは、以下に説明しない限り、本開示の動作には重要ではない。
【0041】
図3は、開示された主題のアプリケーションの例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティックなどを含むデジタルメディア上の圧縮ビデオの記憶などを含む、他のビデオ対応アプリケーションにも同様に適用可能であることができる。
【0042】
ストリーミングシステムは、例えば、非圧縮のビデオ画像(302)のストリームを生成するビデオソース(301)、例えばデジタルカメラを含むことができる、キャプチャサブシステム(313)を含み得る。一例では、ビデオ画像のストリーム(302)は、デジタルカメラによって撮影されるサンプルを含む。エンコードされたビデオデータ(304)(又はコーディングされたビデオビットストリーム)と比較するときに高いデータボリュームを強調する太い線として描かれたビデオ画像のストリーム(302)は、ビデオソース(301)に結合されたビデオエンコーダ(303)を含む電子デバイス(320)によって処理することができる。ビデオエンコーダ(303)は、以下により詳細に説明されるように、開示された主題の態様を可能にする又は実装するために、ハードウェア/ソフトェア、又はそれらの組み合わせを含むことができる。エンコードされたビデオデータ(304)(又はエンコードされたビデオビットストリーム(304))は、ビデオ画像(302)のストリームと比較するときにより低いデータボリュームを強調するために細い線として示され、将来の使用のためにストリーミングサーバ(305)に記憶することができる。図3のクライアントサブシステム(306)及び(308)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(305)にアクセスして、エンコードされたビデオデータ(304)のコピー(307)及び(309)を取り出すことができる。クライアントサブシステム(306)は、例えば電子デバイス(330)内にビデオデコーダ(310)を含むことができる。ビデオデコーダ(310)は、エンコードされたビデオデータの入力コピー(307)をデコードし、ディスプレイ(312)(例えばディスプレイスクリーン)又は他のレンダリング装置(図示せず)上にレンダリングすることができるビデオ画像の出力ストリーム(311)を生成する。いくつかのストリーミングシステムでは、エンコードされたビデオデータ(304)、(307)、及び(309)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従ってエンコードすることができる。これらの規格の例は、ITU-T勧告H.265を含む。例えば、開発中のビデオコーディング規格は、Versatile Video Coding(VVC)として非公式に知られている。開示された主題は、VVCの文脈で使用され得る。
【0043】
電子デバイス(320)及び(330)は、他のコンポーネント(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(320)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(330)は、ビデオエンコーダ(図示せず)も含むことができる。
【0044】
図4は、本開示の一実施形態によるビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子デバイス(430)に含まれることができる。電子デバイス(430)は、受信器(431)(例えば、受信回路)を含むことができる。ビデオデコーダ(410)は、図3の例のビデオデコーダ(310)の代わりに使用することができる。
【0045】
受信器(431)は、ビデオデコーダ(410)によってデコードされることになる1つ以上のコーディングされたビデオシーケンスを受信し得る;同じ又は別の実施形態では、一度に1つのコーディングされたビデオシーケンスであり、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(401)から受信され得、このチャネルは、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトェアリンクであり得る。受信器(431)は、エンコードされたビデオデータを、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えばコーディングされたオーディオデータ及び/又は補助的なデータストリームと共に受信し得る。受信器(431)は、コーディングされたビデオシーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、バッファメモリ(415)が、受信器(431)とエントロピーデコーダ/パーサ(420)(以下、「パーサ(420)」)との間に結合され得る。特定のアプリケーションでは、バッファメモリ(415)はビデオデコーダ(410)の一部である。他のものでは、それはビデオデコーダ(410)の外側にあることができる(図示せず)。さらに別のものでは、例えばネットワークジッタに対抗するために、ビデオデコーダ(410)の外側のバッファメモリ(図示せず)と、さらに、例えば再生タイミングを処理するために、ビデオデコーダ(410)の内側の別のバッファメモリ(415)があることができる。受信器(431)が、十分な帯域幅及び可制御性を有するストア/フォワードデバイスから、又は等同期ネットワークからデータを受信している場合、バッファメモリ(415)は不要であってもよく、又は小さくすることができる。インターネットのようなベストエフォート型パケットネットワークでの使用のために、バッファメモリ(415)は、必要とされ得、比較的大きくすることができ、有利に適応サイズにすることができ、ビデオデコーダ(410)の外側のオペレーティングシステム又は類似の要素(図示せず)に少なくとも部分的に実装され得る。
【0046】
ビデオデコーダ(410)は、コーディングされたビデオシーケンスからシンボル(421)を再構成するためのパーサ(420)を含み得る。これらのシンボルのカテゴリは、ビデオデコーダ(410)の動作を管理するために使用される情報、及び、図4に示されたように、電子デバイス(430)の不可欠な部分ではないが、電子デバイス(430)に結合されることができるレンダリングデバイス(412)(例えば、表示スクリーン)のようなレンダリングデバイスを制御する潜在的な情報を含む。レンダリングデバイス(複数可)のための制御情報は、補足拡張情報(SEIメッセージ)又はビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形式であり得る。パーサ(420)は、受信されるコーディングされたビデオシーケンスを構文解析/エントロピーデコードし得る。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト感度を伴う又は伴わない算術コーディングなどを含む種々の原理に従うことができる。パーサ(420)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つに対するサブグループパラメータのセットを、コーディングされたビデオシーケンスから抽出し得る。サブグループは、画像のグループ(GOP)、画像、タイル、スライス、マクロブロック、コーディングユニット(Coding Units)(CU)、ブロック、変換ユニット(Transform Units)(TU)、予測ユニット(Prediction Units)(PU)などを含むことができる。パーサ(420)はまた、変換係数などのコーディングされたビデオシーケンス情報から、量子化パラメータ値、動きベクトル等を抽出し得る。
【0047】
パーサ(420)は、シンボル(421)を生成するように、バッファメモリ(415)から受信したビデオシーケンス上でエントロピーデコーディング/構文解析動作を実行し得る。
【0048】
シンボル(421)の再構成は、コーディングされたビデオ画像又はその部分のタイプ(例えば、インター及びイントラ画像、インター及びイントラブロック)、及び他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットが関与し、どのようにかは、パーサ(420)によってコーディングされたビデオシーケンスから構文解析されたサブグループ制御情報によって制御されることができる。パーサ(420)と以下の複数ユニットとの間のこのようなサブグループ制御情報のフローは、明確にするために図示されていない。
【0049】
すでに述べた機能ブロックの他に、ビデオデコーダ(410)は、概念的に、以下に説明するように、いくつかの機能ユニットに分割することができる。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示された主題を説明するためには、以下の機能ユニットに概念的に細分化することが適切である。
【0050】
第1のユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、パーサ(420)からシンボル(複数可)(421)として、使用する変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報と共に、量子化された変換係数を受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力されることができるサンプル値を含むブロックを出力することができる。
【0051】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構成された画像からの予測情報を使用していないが、現在の画像の以前に再構成された部分からの予測情報を使用することができるブロックに関連付けることができる。このような予測情報は、イントラ画像予測ユニット(452)によって提供することができる。場合によっては、イントラ画像予測ユニット452は、現在の画像バッファ458から取り出された既に再構成された周囲の情報を使用して、再構成中のブロックの同じサイズ及び形状のブロックを生成する。現在の画像バッファ(458)は、例えば、部分的に再構成された現在の画像及び/又は完全に再構成された現在の画像をバッファする。アグリゲータ(455)は、場合によっては、サンプル毎に、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供されるように、出力サンプル情報に追加する。
【0052】
他の場合には、スケーラ/逆変換ユニット(451)の出力サンプルは、インターコーディングされた、潜在的に動き補償ブロックに関係することができる。このような場合、動き補償予測ユニット(453)は、予測に使用されるサンプルを取り出すために参照画像メモリ(457)にアクセスすることができる。ブロックに関連するシンボル(421)に従って、取り出されたサンプルを動き補償した後、これらのサンプルは、アグリゲータ(455)によって、出力サンプル情報を生成するために、スケーラ/逆変換ユニット(451)の出力(この場合、残差サンプル又は残差信号と呼ぶ)に追加されることができる。動き補償予測ユニット(453)が予測サンプルを取り出す参照画像メモリ(457)内のアドレスは、例えばX、Y、及び参照画像成分を有することができるシンボル(421)の形態で、動き補償予測ユニット(453)に利用可能である動きベクトルによって制御することができる。また、動き補償は、サブサンプルの正確な動きベクトルが使用されているときに参照画像メモリ(457)から取り出されるサンプル値の補間、動きベクトル予測メカニズムなどを含むことができる。
【0053】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)内の種々のループフィルタリング技術の対象であることができる。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(420)からシンボル(421)としてループフィルタユニット(456)に利用可能にされるが、コーディングされた画像又はコーディングされたビデオシーケンスの前の(デコーディング順で)部分のデコーディングの間に得られたメタ情報に応答することができると共に、以前に再構成されループフィルタリングされたサンプル値に応答することもできる、インループフィルタ技術を含むことができる。
【0054】
ループフィルタユニット(456)の出力は、レンダリングデバイス(412)に出力することができ、また将来のインター画像予測に使用するために参照画像メモリ(457)に記憶することができるサンプルストリームであることができる。
【0055】
特定のコーディングされた画像は、いったん完全に再構成されると、将来の予測のための参考画像として使用することができる。例えば、現在の画像に対応するコーディングされた画像が完全に再構成され、コーディングされた画像が参照画像として識別されると(例えば、パーサ(420)によって)、現在の画像バッファ(458)は参照画像メモリ(457)の一部となることができ、新しい現在の画像バッファが、次のコーディングされた画像の再構成を開始する前に再割当てされることができる。
【0056】
ビデオデコーダ(410)は、ITU-T Rec. H.265などの規格の所定のビデオ圧縮技術に従ってデコーディング動作を実行し得る。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスが、ビデオ圧縮技術又は規格の構文(syntax)及びビデオ圧縮技術又は規格に文書化されているプロファイルの両方に従うという意味で、使用されているビデオ圧縮技術又は規格によって指定された構文に適合し得る。具体的には、プロファイルは、特定のツールを、そのプロファイルの下で使用するために利用可能な唯一のツールとして、ビデオ圧縮技術又は規格で利用可能なすべてのツールから選択することができる。また、準拠のために必要なことは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルによって定義される範囲内にあることであり得る。ある場合には、レベルは、最大画像サイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照画像サイズなどを制限する。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD)仕様と、コーディングされたビデオシーケンスで信号送信されるHRDバッファ管理のためのメタデータを通してさらに制限することができる。
【0057】
一実施形態では、受信器(431)は、エンコードされたビデオと共に追加の(冗長な)データを受信し得る。追加のデータは、コーディングされたビデオシーケンス(複数可)の一部として含まれ得る。追加のデータは、データを適切にデコードするため、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(410)によって使用され得る。追加のデータは、例えば、時間的、空間的、又は信号雑音比(SNR)強化層、冗長スライス、冗長画像、前方誤り訂正コードなどの形態であることができる。
【0058】
図5は、本開示の一実施形態によるビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信器(540)(例えば、送信回路)を含む。ビデオエンコーダ(503)は、図3の例のビデオエンコーダ(303)の代わりに用いることができる。
【0059】
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によってコーディングされることになるビデオイメージ(複数可)をキャプチャし得るビデオソース(501)(図5の例では電子デバイス(520)の一部ではない)からビデオサンプルを受信し得る。別の例では、ビデオソース(501)は、電子デバイス(520)の一部である。
【0060】
ビデオソース(501)は、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 Y CrCB、RGB、...)、及び任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形態で、ビデオエンコーダ(503)によってコーディングされることになるソースビデオシーケンスを提供し得る。メディア供給システムでは、ビデオソース(501)は、事前に準備されたビデオを記憶する記憶装置であり得る。ビデオ会議システムでは、ビデオソース(501)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであり得る。ビデオデータは、シーケンスで見たときに動きを伝える複数の個々の画像として提供され得る。画像自体は、ピクセルの空間アレイとして構成され得、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0061】
一実施形態によれば、ビデオエンコーダ(503)は、ソースビデオシーケンスの画像を、リアルタイムで、又はアプリケーションによって要求される任意の他の時間制約下で、コーディングされたビデオシーケンス(543)にコーディング及び圧縮し得る。適切なコーディング速度を実施することは、コントローラ(550)の一つの機能である。いくつかの実施形態では、コントローラ(550)は、以下に記載されるように、他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。結合は、明確にするために示されていない。コントローラ(550)によって設定されるパラメータは、レート制御関連パラメータ(画像スキップ、量子化器、レート歪み最適化技術のラムダ値、...)、画像サイズ、画像グループ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(550)は、特定のシステム設計のために最適化されたビデオエンコーダ(503)に関連する他の適切な機能を有するように構成することができる。
【0062】
いくつかの実施形態では、ビデオエンコーダ(503)は、コーディングループで動作するように構成される。過度に単純化された説明として、一例では、コーディングループは、ソースコーダ(530)(例えば、コーディングされることになる入力画像及び参照画像に基づいて、シンボルストリームなどのシンボルを生成することを担当する)と、ビデオエンコーダ(503)に埋め込まれた(ローカル)デコーダ(533)とを含むことができる。デコーダ(533)は、(リモート)デコーダが生成するのと同様に(シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮が開示された主題において考慮されるビデオ圧縮技術においてロスレスであるので)、サンプルデータを生成するようにシンボルを再構成する。再構成されたサンプルストリーム(サンプルデータ)は、参照画像メモリ(534)に入力される。シンボルストリームのデコーディングは、デコーダ位置(ローカル又はリモート)に依存しないビット正確な(bit-exact)結果をもたらすので、参照画像メモリ(534)中の内容もまた、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分は、デコーダがデコーディング中に予測を使用するときに「見る」のとまったく同じサンプル値を参照画像サンプルとして「見る」。参照画像の同期性のこの基本原理(及び、例えば、チャンネルエラーのために同期性を維持できない場合の結果として生じるドリフト)は、いくつかの関連技術においても同様に使用される。
【0063】
「ローカル」デコーダ(533)の動作は、ビデオデコーダ(410)などの「リモート」デコーダと同じであることができ、これは、図4と関連して既に上述した。しかし、図4も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(545)及びパーサ(420)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングがロスレスであることができるので、バッファメモリ(415)及びパーサ(420)を含むビデオデコーダ(410)のエントロピーデコーディング部分は、ローカルデコーダ(533)に完全には実装されなくてもよい。
【0064】
この時点で行うことができる観察は、デコーダ内に存在する構文解析/エントロピーデコーディングを除く任意のデコーダ技術も、対応するエンコーダ内に実質的に同一の機能的形態で存在する必要があることである。この理由のために、開示された主題はデコーダ動作に焦点を当てる。エンコーダ技術の記述は、包括的に記述されたデコーダ技術の逆であるため、省略することができる。特定の分野においてのみ、より詳細な説明が必要であり、以下に提供される。
【0065】
動作中、いくつかの例では、ソースコーダ(530)は、「参照画像」として指定されたビデオシーケンスからの1つ以上の以前にコーディングされた画像に関して入力画像を予測的にコーディングする動き補償予測コーディングを実行し得る。このようにして、コーディングエンジン(532)は、入力画像のピクセルブロックと、入力画像に対する予測参照(複数可)として選択され得る参照画像(複数可)のピクセルブロックとの間の差分をコーディングする。
【0066】
ローカルビデオデコーダ(533)は、ソースコーダ(530)によって生成されたシンボルに基づいて、参照画像として指定され得る画像のコーディングされたビデオデータをデコードし得る。コーディングエンジン(532)の動作は、有利には、ロッシー(lossy)プロセスであり得る。コーディングされたビデオデータがビデオデコーダ(図5には示されていない)でデコードされ得る場合、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(533)は、参照画像上でビデオデコーダによって実行され得、再構成された参照画像を参照画像キャッシュ(534)に記憶させ得るデコーディング処理を複製する。このようにして、ビデオエンコーダ(503)は、遠端のビデオデコーダによって得られる再構成された参照画像として、共通のコンテンツを有する再構成された参照画像のコピーを、ローカルに記憶し得る(送信エラーがない)。
【0067】
予測器(predictor)(535)は、コーディングエンジン(532)のための予測探索を実行し得る。すなわち、コーディングされることになる新しい画像に対して、予測器(535)は、新しい画像に対する適切な予測参照として役立ち得る、参照画像動きベクトル、ブロック形状などの特定のメタデータ又はサンプルデータ(候補参照ピクセルブロックとして)について参照画像メモリ(534)を検索し得る。予測器(535)は、適切な予測参照を見出すために、サンプルのブロックごとのピクセルのブロックベース(sample block-by-pixel block basis)で動作し得る。場合によっては、予測器(535)によって得られた検索結果によって決定されるように、入力画像は、参照画像メモリ(534)に記憶された複数の参照画像から引き出された予測参照を有し得る。
【0068】
コントローラ(550)は、例えば、ビデオデータをエンコードするために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(530)のコーディング動作を管理し得る。
【0069】
すべての前述の機能ユニットの出力は、エントロピーコーダ(545)におけるエントロピーコーディングの対象となり得る。エントロピーコーダ(545)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従って、シンボルをロスレス圧縮することによって、種々の機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0070】
送信器(540)は、エントロピーコーダ(545)によって生成されるようにコーディングされたビデオシーケンス(複数可)をバッファに入れて、通信チャネル(560)を介した送信の準備をし得、この通信チャネルは、コーディングされたビデオデータを記憶する記憶装置へのハードウェア/ソフトェアリンクであり得る。送信器(540)は、ビデオコーダ(503)からのコーディングされたビデオデータを、送信されることになる他のデータ、例えばコーディングされたオーディオデータ及び/又は補助的なデータストリーム(図示せず)とマージし得る。
【0071】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理し得る。コーディングの間、コントローラ(550)は、各コーディングされた画像に、特定のコーディングされた画像タイプを割り当て得、これは、それぞれの画像に適用され得るコーディング技術に影響を及ぼし得る。例えば、画像は、しばしば、次の画像タイプの1つとして割り当てられる:
【0072】
イントラ画像(I画像)は、予測のソースとしてシーケンス内の他の画像を使用せずに、コーディングされ得る及びデコードされ得るものであり得る。いくつかのビデオコーデックは、例えば、独立したデコーダリフレッシュ(「IDR」)画像を含む、異なるタイプのイントラ画像を許容する。当業者は、I画像のこれらの変形例、並びにそれらのそれぞれの用途及び特徴を知っている。
【0073】
予測画像(P画像)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトル及び参照インデックスを使用する内部予測又はインター予測を使用して、コーディングされ得る及びデコードされ得るものであり得る。
【0074】
双方向予測画像(B画像)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトル及び参照インデックスを使用するイントラ予測又はインター予測を使用して、コーディングされ得る及びデコードされ得るものであり得る。同様に、複数の予測画像は、1つのブロックの再構成のために、2より多い参照画像及び関連するメタデータを使用することができる。
【0075】
ソース画像は、通常、空間的に複数のサンプルブロック(例えば、4×4、8×8、4×8、又は16×16の各サンプルのブロック)に分割され、ブロック毎にコーディングされる。ブロックは、ブロックのそれぞれの画像に適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、I画像のブロックは、非予測的にコーディングされ得る、又は、それらは、同じ画像の既にコーディングされたブロックを参照して予測的にコーディングされ得る(空間予測又はイントラ予測)。P画像のピクセルブロックは、以前にコーディングされた1つの参照画像を参照して、空間的予測を介して又は時間的予測を介して、予測的にコーディングされ得る。B画像のブロックは、1つ又は2つの以前にコーディングされた参照画像を参照して、空間的予測を介して又は時間的予測を介して、予測的にコーディングされ得る。
【0076】
ビデオエンコーダ(503)は、ITU-T Rec. H.265などの所定のビデオコーディング技術又は規格に従ってコーディング動作を実行し得る。その動作において、ビデオエンコーダ(503)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を活用する予測コーディング動作を含む種々の圧縮動作を実行し得る。従って、コーディングされたビデオデータは、使用されているビデオコーディング技術又は規格によって指定された構文に適合し得る。
【0077】
一実施形態では、送信器(540)は、コーディングされたビデオと共に追加データを送信し得る。ソースコーダ(530)は、コーディングされたビデオシーケンスの一部としてそのようなデータを含み得る。追加データは、時間的/空間的/SNR強調層、冗長画像及びスライスなどの他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含み得る。
【0078】
ビデオは、時間シーケンスにおいて複数のソース画像(ビデオ画像)としてキャプチャされ得る。イントラ画像予測(しばしば、イントラ予測と略される)は、所与の画像における空間的相関を利用し、インター画像予測は、画像間の(時間的又は他の)相関を利用する。一例では、現在の画像と呼ばれるエンコーディング/デコーディング下の特定の画像は、ブロックに分割される。現在の画像のブロックが、以前にコーディングされ、依然としてバッファリングされているビデオの参照画像の参照ブロックに類似する場合、現在の画像のブロックは、動きベクトルと呼ばれるベクトルによってコーディングされることができる。動きベクトルは、参照画像の参照ブロックを指し、複数の参照画像が使用されている場合には、参照画像を識別する3次元を有することができる。
【0079】
いくつかの実施形態では、双予測(bi-prediction)技術は、インター画像予測において使用することができる。双予測技術によれば、両方ともビデオ内の現在の画像よりデコーディング順序で先行する(ただし、表示順序では、それぞれ過去及び将来であり得る)第1の参照画像及び第2の参照画像などの2つの参照画像が使用される。現在の画像のブロックは、第1の参照画像の第1の参照ブロックを指す第1の動きベクトルと、第2の参照画像の第2の参照ブロックを指す第2の動きベクトルとによってコーディングすることができる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって予測することができる。
【0080】
さらに、コーディング効率を改善するために、インター画像予測にマージモード技法を使用することができる。
【0081】
本開示のいくつかの実施形態によれば、インター画像予測及びイントラ画像予測などの予測は、ブロック単位(ブロックユニット)で実行される。例えば、HEVC規格によれば、ビデオ画像のシーケンス中の画像は、圧縮のためにコーディングツリーユニット(CTU)に分割され、画像中のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセルのように、同じサイズを有する。一般的に、CTUは、3つのコーディングツリーブロック(CTB)を含み、これは、1つのルマ(luma)CTBと2つのクロマ(chroma)CTBである。各CTUは、再帰的にクワッドツリー(4分木)(quadtree)を1つ又は複数のコーディングユニット(CU)に分割することができる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1CU、32×32ピクセルの4CU、又は16×16ピクセルの16CUに分割することができる。一例では、各CUは、インター予測タイプ又はイントラ予測タイプなどの、CUの予測タイプを決定するために分析される。CUは、時間的及び/又は空間的予測可能性に依存して1つ又は複数の予測ユニット(予測単位)(PU)に分割される。一般に、各PUはルマ予測ブロック(PB)と2つのクロマPBを含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測操作は、予測ブロックのユニットにおいて実行される。予測ブロックの一例としてルマ予測ブロックを用いると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなど、ピクセルに対する値(例えば、ルマ値)の行列を含む。
【0082】
図6は、本開示の別の実施形態によるビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、ビデオ画像のシーケンス内の現在のビデオ画像内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックをコーディングされたビデオシーケンスの一部であるコーディングされた画像にエンコードするように構成される。一例では、ビデオエンコーダ(603)は、図3の例のビデオエンコーダ(303)の代わりに使用される。
【0083】
HEVCの例では、ビデオエンコーダ(603)は、8×8サンプルの予測ブロックなどの処理ブロックに対するサンプル値のマトリックスを受信する。ビデオエンコーダ(603)は、処理ブロックが、例えば、レート歪み最適化を使用して、イントラモード、インターモード、又はバイ予測モードを使用して、最良にコーディングされるかどうかを決定する。処理ブロックがイントラモードでコーディングされることになる場合、ビデオエンコーダ(603)は、処理ブロックをコーディングされた画像にエンコードするためにイントラ予測技法を使用し得る;処理ブロックがインターモード又はバイ予測モードでコーディングされることになる場合、ビデオエンコーダ(603)は、処理ブロックをコーディングされた画像にエンコードするために、インター予測技法又はバイ予測技法をそれぞれ使用し得る。特定のビデオコーディング技術では、マージモードは、予測器の外側のコーディングされた動きベクトル成分の利益なしに、動きベクトルが1つ以上の動きベクトル予測器から導出されるインター画像予測サブモードであることができる。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一例では、ビデオエンコーダ(603)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他のコンポーネントを含む。
【0084】
図6の例では、ビデオエンコーダ(603)は、図6に示すように一緒に結合されたインターエンコーダ(630)、イントラエンコーダ(622)、残差(residue)計算器(623)、スイッチ(626)、残差エンコーダ(624)、一般的な(general)コントローラ(621)、及びエントロピーエンコーダ(625)を含む。
【0085】
インターエンコーダ(630)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照画像内の1つ以上の参照ブロックと比較し(例えば、以前の画像内及び後の画像内のブロック)、インター予測情報(例えば、インターエンコーディング技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、任意の適切な技術を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照画像は、エンコードされたビデオ情報に基づいてデコードされるデコードされた参照画像である。
【0086】
イントラエンコーダ(622)は、現在のブロック(例えば、処理ブロック)のサンプルを受信するように構成され、場合によっては、ブロックを、同じ画像内で既にコーディングされているブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラエンコーディング技術に従ったイントラ予測方向情報)も生成する。一例では、イントラエンコーダ(622)は、また、同じ画像内の参照ブロック及びイントラ予測情報に基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0087】
一般的なコントローラ(621)は、一般的な制御データを決定し、一般的な制御データに基づいてビデオエンコーダ(603)の他のコンポーネントを制御するように構成される。一例では、一般的なコントローラ(621)は、ブロックのモードを決定し、そのモードに基づいてスイッチ(626)に制御信号を提供する。例えば、モードがイントラモードの場合、一般的なコントローラ(621)は、スイッチ(626)を制御して、残差計算器(623)が使用するイントラモード結果を選択し、エントロピーエンコーダ(625)を制御して、イントラ予測情報を選択し、ビットストリームにイントラ予測情報を含める;モードがインターモードの場合、一般的なコントローラ(621)は、スイッチ(626)を制御して、残差計算器(623)が使用するインター予測結果を選択し、エントロピーエンコーダ(625)を制御して、インター予測情報を選択し、ビットストリームにインター予測情報を含める。
【0088】
残差計算器(623)は、受信されたブロックと、イントラエンコーダ(622)又はインターエンコーダ(630)から選択された予測結果との間の差(残差データ)を計算するように構成される。残差エンコーダ(624)は、残差データに基づいて動作し、残差データをエンコードして変換係数を生成するように構成される。一例では、残差エンコーダ(624)は、残差データを空間ドメインから周波数ドメインに変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化された変換係数を得るために量子化処理にかけられる。様々な実施形態では、ビデオエンコーダ(603)は、残差デコーダ(628)も含む。残差デコーダ(628)は、逆変換を実行し、デコードされた残差データを生成するように構成される。デコードされた残差データは、イントラエンコーダ(622)及びインターエンコーダ(630)によって適切に使用することができる。例えば、インターエンコーダ(630)は、デコードされた残差データ及びインター予測情報に基づいてデコードされたブロックを生成することができ、イントラエンコーダ(622)は、デコードされた残差データ及びイントラ予測情報に基づいてデコードされたブロックを生成することができる。デコードされたブロックは、デコードされた画像を生成するために適切に処理され、デコードされた画像は、メモリ回路(図示せず)内でバッファリングされ、いくつかの例では参照画像として使用されることができる。
【0089】
エントロピーエンコーダ(625)は、エンコードされたブロックを含むようビットストリームをフォーマットするように構成される。エントロピーエンコーダ(625)は、HEVC規格などの適切な規格に従った種々の情報を含むように構成される。一例では、エントロピーエンコーダ(625)は、一般的な制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及びビットストリーム内の他の適切な情報を含むように構成される。開示された主題に従って、インターモード又は双予測モードのいずれかのマージサブモードにおけるブロックをコーディングする場合、残差情報は存在しないことに留意されたい。
【0090】
図7は、本開示の別の実施形態によるビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、コーディングされたビデオシーケンスの一部であるコーディングされた画像を受信し、コーディングされた画像をデコードして再構成画像を生成するように構成される。一例では、ビデオデコーダ(710)は、図3の例のビデオデコーダ(310)の代わりに使用される。
【0091】
図7の例では、ビデオデコーダ(710)は、図7に示すように一緒に結合されたエントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構成モジュール(774)、及びイントラデコーダ(772)を含む。
【0092】
エントロピーデコーダ(771)は、コーディングされた画像から、そのコーディングされた画像が構成される構文要素を表す特定のシンボルを再構成するように構成することができる。このようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモード又は別のサブモードにおける後者の2つ)、イントラデコーダ(772)又はインターデコーダ(780)それぞれによって予測のために使用される特定のサンプル又はメタデータを識別することができる予測情報(例えば、イントラ予測情報又はインター予測情報など)、例えば、量子化された変換係数の形態の残差情報などを含むことができる。一例では、予測モードがインター又は双予測モードである場合、インター予測情報がインターデコーダ(780)に提供される;予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(772)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(773)に提供される。
【0093】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0094】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0095】
残差デコーダ(773)は、非量子化変換係数(de-quantized transform coefficients)を抽出するために逆量子化を実行し、残差を周波数領域から空間領域に変換するために非量子化変換係数を処理するように構成される。残差デコーダ(773)はまた、特定の制御情報(量子化器パラメータ(QP)を含めるために)を必要とし得、その情報は、エントロピーデコーダ(771)によって提供され得る(データ経路は、低ボリューム制御情報のみであるため、図示されていない)。
【0096】
再構成モジュール(774)は、空間領域において、残差デコーダ(773)による出力としての残差と、予測結果(場合によっては、インター又はイントラ予測モジュールによる出力として)とを組み合わせて、再構成されたブロックを形成するように構成され、この再構成されたブロックは、再構成された画像の一部であり得、この再構成された画像の一部は、再構成されたビデオの一部であり得る。ブロック解除操作(deblocking operation)等のような他の適切な操作を行って、視覚品質を改善することができることに留意されたい。
【0097】
なお、ビデオエンコーダ(303)、(503)、及び(603)、並びにビデオデコーダ(310)、(410)、及び(710)は、任意の適切な技術を用いて実装することができる。一実施形態では、ビデオエンコーダ(303)、(503)、及び(603)、並びにビデオデコーダ(310)、(410)、及び(710)は、1つ以上の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(303)、(503)、及び(603)、並びにビデオデコーダ(310)、(410)、及び(710)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装することができる。
【0098】
本開示の態様は、高度なビデオコーデックにおけるインター予測の分野における技術を提供する。この技術は、サブブロックマージ候補リストと呼ぶことができる候補リスト内の候補の数を設定するために使用することができる。
【0099】
様々な実施形態では、インター予測CUに対して、動きベクトル、参照画像インデックス、参照画像リスト使用インデックス、及び/又は他の追加情報を含む動きパラメータを、インター予測サンプル生成のために使用することができる。インター予測は、片予測(uni-prediction,)、双予測(bi-prediction)、及び/又は類似のものを含むことができる。片予測では、参照画像リスト(例えば、第1の参照画像リスト又はリスト0(L0)又は第2の参照画像リスト又はリスト1(L1))を使用することができる。双予測では、L0とL1の両方を使用することができる。参照画像リスト使用インデックスは、参照画像リスト(複数可)がL0、L1、又はL0及びL1を含むことを示すことができる。
【0100】
動きパラメータは、明示的又は暗黙的な方法で信号送信されることができる。CUがスキップモードでコーディングされる場合、CUは、1つのPUと関連付けることができ、有意な残差係数を含むことができない(例えば、残差係数がゼロである)、コーディングされた動きベクトル差(MVD)を含むことができない、又は参照画像インデックスを含むことができない。
【0101】
マージモードは、現在のCUのための動きパラメータが、空間的及び時間的マージ候補、及びオプションで他のマージ候補を含む、隣接するCUから取得されることができるように使用されることができる。マージモードは、インター予測CUに適用することができ、スキップモードに使用することができる。代替的には、動きパラメータは、明示的に送信又は信号送信されることができる。例えば、動きベクトル、各参照画像リストに対する対応する参照画像インデックス、参照画像リスト使用フラグ、及び他の情報が、各CUごとに明示的に信号送信されることができる。
【0102】
いくつかの例(例えば、VVC)では、以下のインター予測コーディングツールの1つ又は複数が使用される:(1)拡張マージ予測、(2)動きベクトル差を伴うマージモード(MMVD)、(3)対称MVD(SMVD)信号送信、(4)アフィン動き補償予測、(5)サブブロックベースの時間的動きベクトル予測(SbTMVP)、(6)適応動きベクトル解像度(AMVR)、(7)動き場ストレージ(motion field storage):1/16ルマサンプルMVストレージ及び8×8の動き場圧縮、(8)CUレベル重みを伴う双予測、(9)双方向光学フロー(BDOF)、(10)デコーダ側動きベクトル精緻化(decoder side motion vector refinement)(DMVR)、(11)幾何学的分割モード(GPM)、及び(12)組み合わされたインター及びイントラ予測(CIIP)。
【0103】
本開示の一態様によれば、いくつかのインター予測コーディングツールは、サブブロックベースのマージ候補リストに基づいて動作し得る。一例では、アフィン動き補償予測は、アフィンマージモード(いくつかの例ではサブブロックベースマージモードとも呼ばれる)で実行することができる。アフィンマージモードでは、いくつかの例ではサブブロックベースマージ候補リストと呼ばれるアフィンマージ候補リストに基づいて予測を行うことができる。別の例では、サブブロックベースの時間的動きベクトル予測(SbTMVP)はまた、サブブロックベースのマージ候補リストに基づいて動作することができる。
【0104】
いくつかの例(例えば、HEVC)において、アフィン動き補償予測のために、並進動きモデルのみが、動き補償予測(MCP)に適用される。現実の世界は、ズームイン/アウト、回転、遠近の(perspective)動き及びその他の不規則な動きのような、多くの種類の動きを有する。いくつかの例(例えば、VVC)では、ブロックベースのアフィン変換動き補償予測が適用される。
【0105】
図8A~8Bは、アフィン動きモデルを示す。図8Aは、2つの制御点CP0及びCP1(4パラメータアフィンモデル)の動き情報によって記述されるブロックのアフィン動き場を示し、図8Bは、3つの制御点CP0、CP1及びCP2(6パラメータアフィンモデル)によって記述されるブロックのアフィン動き場を示す。
【0106】
いくつかの実施形態では、4パラメータのアフィン動きモデル、ブロックのサンプル位置(x,y)における動きベクトル(mv,mv)は、(式1)として導出することができ、6パラメータのアフィン動きモデル、ブロック内のサンプル位置(x,y)における動きベクトルは(式2)として導出することができる:
【数1】
ここで、mv又は(mv0x、mv0y)は左上隅制御点CP0の動きベクトル、mv1又は(mv1x、mv1y)は右上隅制御点CP1の動きベクトル、mv又は(mv2x、mv2y)は左下隅制御点CP2の動きベクトル、Wはブロックの幅を示し、Hはブロックの高さを示す。
【0107】
動き補償予測を単純化するために、ブロックベースのアフィン変換予測が適用される。
【0108】
図9は、サブブロック当たりのアフィンMV場の例を示す。一例では、現在のCU910(例えば、16×16ルマサンプル)が4×4ルマサブブロック(各サブブロックは4×4ルマサンプルであることができる)に分割される。各4×4ルマサブブロックの動きベクトルを導出するために、図9に示すように、上記の式(式1)及び(式2)に従って、各サブブロックの中心サンプルの動きベクトルが計算される。動きベクトルは、例えば、1/16分数精度(1/16 fraction accuracy)に丸めることができる。次に、動き補償補間フィルタを適用して、導出された動きベクトルを持つ各サブブロックの予測を生成する。いくつかの例では、クロマ成分のサブブロックサイズも4×4に設定することができるので、4×4クロマサブブロックは4つの対応する4×4ルマサブブロックを含む。4×4のクロマサブブロックのMVは、一例では4つの対応する4×4ルマサブブロックのMVの平均として計算される。
【0109】
サブブロックは、他の適切な数のルマサンプルを有するように定義することができることに留意されたい。いくつかの例では、サブブロックはサブCUと呼ばれていることにも留意されたい。
【0110】
並進動きインター予測について、アフィンマージ(AF_MERGE)モード及びアフィンアドバンストMVP(アフィンAMVP)モードと呼ばれる2つのアフィン動きインター予測モードを用いることができる。
【0111】
アフィンマージ予測について、一例では、AF_MERGEモードが、幅と高さ両方が8以上のCUに適用できる。AF_MERGEモードでは、現在のCUの制御点動きベクトル(CPMV)は空間的に隣接するCUの動き情報に基づいて生成される。一例では、アフィンマージ候補リスト(サブブロックベースマージ候補リストとも呼ばれる)は、最大5つの制御点動きベクトル予測子(control point motion vector predictor)(CPMVP)候補を含むことができ、インデックスが、現在のCUに使用されることになるものを示すために信号送信される。一例では、3つのタイプのCPMVP候補が、アフィンマージ候補リストを形成するために使用される。第1のタイプのCPMVP候補は、隣接するCUのCPMVから外挿された継承されたアフィンマージ候補である。第2のタイプのCPMVP候補は、隣接するCUの並進MVを用いて導出される構成されたアフィンマージ候補CPMVPである。第3のタイプのCPMVP候補はゼロMVを使用する。
【0112】
VVCなどのいくつかの例では、最大2つの継承されたアフィン候補を使用することができる。一例では、2つの継承されたアフィン候補が、隣接するブロックのアフィン動きモデルから導出され、1つは左隣接CU(左予測子と呼ばれる)から、1つは上隣接CU(上予測子と呼ばれる)から導出される。例として図1に示す隣接するブロックを使用すると、左予測子については、走査順序はA0->A1であり、上予測子については、走査順序はB0->B1->B2である。一例では、両側から入手可能な第1の継承された候補のみが選択される。いくつかの例では、2つの継承された候補の間で刈り込みチェック(pruning check)は実行されない。隣接するアフィンCUが識別される場合、隣接するアフィンCUの制御点動きベクトルは、現在のCUのアフィンマージ候補リストにおけるCPMVP候補を導出するために使用される。
【0113】
図10は、アフィンマージモードにおける継承された制御点動きベクトルを決定するための例を示す。図10に示すように、隣接する左下サブブロックAがアフィンモードでコーディングされる場合、サブブロックAを含むCUの左上角、右上角及び左下角の動きベクトルmv、mv及びmvを得ることができる。サブブロックAが4パラメータアフィンモデルでコーディングされる場合、現在のCUの2つのCPMVが、mv、及びmvに従って計算される。サブブロックAが6パラメータアフィンモデルでコーディングされる場合、現在のCUの3つのCPMVは、mv、mv及びmvに従って計算される。
【0114】
いくつかの例では、構成されたアフィン候補が、各制御点の隣接並進動き情報を組み合わせることによって構成される。制御点の動き情報は、指定された空間的に隣接するもの(spatial neighbors)及び時間的に隣接するもの(temporal neighbor)から導出することができる。
【0115】
図11は、本開示のいくつかの実施形態による、空間的に隣接するもの(例えば、サブブロックA0~A2及びB0~B3)及び時間的に隣接するもの(例えば、T)の例を示す。一例では、CPMV(k=1,2,3,4)は、k番目の制御点を表す。CPMVについて、B2->B3->A2ブロックがチェックされ(->はチェック順序のために使用)、最初に使用可能なブロックのMVがCPMVとして使用される。CPMVについて、B1->B0ブロックがチェックされ、最初に使用可能なブロックのMVがCPMVとして使用される。CPMVでは、A1->A0ブロックがチェックされ、最初に使用可能なブロックのMVがCPMVとして使用される。TMVPの場合、Tがチェックされ、ブロックTのMVが利用可能であればCPMVとして使用される。
【0116】
4つの制御点CPMV-CPMVのMVを得た後、その動き情報に基づいてアフィンマージ候補が構成される。制御点MVの以下の組み合わせは、{CPMV、CPMV、CPMV}、{CPMV1、CPMV、CPMV}、{CPMV、CPMV、CPMV}、{CPMV、CPMV、CPMV}、{CPMV、CPMV}、{CPMV、CPMV}の順に構成するために使用される。
【0117】
3つのCPMVの組み合わせは6パラメータアフィンマージ候補を構成でき、2つのCPMVの組み合わせは4パラメータアフィンマージ候補を構成できる。一例では、動きスケーリングプロセスを避けるために、制御点の参照インデックスが異なる場合、制御点MVの関連する組み合わせを破棄することができる。
【0118】
一例では、継承されたアフィンマージ候補と構成されたアフィンマージ候補がチェックされた後、候補リストがまだ満杯でない場合、リストの最後にゼロのMVが挿入される。
【0119】
アフィンAMVP予測について、アフィンAMVPモードが、幅と高さの両方が16以上のCUに適用できる。いくつかの例では、CUレベルのアフィンフラグが、CUでアフィンAMVPモードが使用されるかどうかを示すためにビットストリーム(例えば、コーディングされたビデオビットストリーム)で信号送信され、次いで、別のフラグが、4パラメータアフィン又は6パラメータアフィンのどちらが使用されるかを示すために信号送信される。アフィンAMVPモードでは、現在のCUのCPMVとそれらの予測子CPMVPの差がビットストリームで信号送信することができる。アフィンAMVP候補リストのサイズは2であり、アフィンAMVP候補リストは、以下の4つのタイプのCPMV候補を:(1)隣接するCUのCPMVから外挿される継承されたアフィンAMVP候補、(2)隣接するCUの並進MVを用いて導出される構成されたアフィンAMVP候補、(3)隣接するCUからの並進MV、(4)ゼロMV、の順で使用して生成される。
【0120】
いくつかの例では、継承されたアフィンAMVP候補の検査順序は、継承されたアフィンマージ候補の検査順序と同じである。一例では、アフィンマージ予測とアフィンAMVP予測の唯一の違いは、AMVP候補に対して、現在のブロックと同じ参照画像を持つアフィンCUのみが考慮されることである。一例では、継承されたアフィン動き予測子を候補リストに挿入するときに、刈り込み処理は適用されない。
【0121】
いくつかの例では、構成されたAMVP候補は、図11に示されている特定の空間的に隣接するものから導き出すことができる。一例では、アフィンマージ予測のための候補構成で行われたのと同じチェック順序が使用される。加えて、隣接するブロックの参照画像インデックスもチェックされる。インターコーディングされ、現在のCUと同じ参照画像を持つチェック順序の最初のブロックが使用される。現在のCUが4パラメータアフィンモードでコーディングされ、2つの制御点の動きベクトル(例えば、{CPMV、CPMV})が両方とも利用可能である場合、2つの制御点の動きベクトルは、アフィンAMVPリストの1つの候補として追加される。現在のCUが6パラメータアフィンモードでコーディングされ、制御点CPMVの3つの動きベクトル(例えば{CPMV、CPMV、CPMV})すべてが利用可能な場合、それらはアフィンAMVPリストに1つの候補として追加される。それ以外の場合、構成されたAMVP候補は使用不可に設定される。
【0122】
継承されたAMVP候補及び構成されたAMVP候補がチェックされた後、アフィンAMVPリスト候補の数がまだ2未満である場合、CPMV、CPMV及びCPMVは、利用可能な場合には、現在のCUのすべての制御点MVを予測するための並進MVとして、順番に追加される。最後に、アフィンAMVPリストがまだ満杯でない場合、ゼロのMVがアフィンAMVPリストを満たすために使用される。
【0123】
本開示のいくつかの態様によれば、動き情報は、ローカルバッファ、画像ラインバッファ等のような適切なバッファに記憶することができる。ローカルバッファは、CTU内の4×4ブロックの動きベクトルのような、CTUレベルにおける動き情報を記憶するために使用される。例えば、CTU中のCUがインター予測に基づいてデコードされる場合、CUのそれぞれの4×4ブロックの動きベクトルを、ローカルバッファに記憶することができ、後のCUをデコードするために使用することができる。画像ラインバッファは、上のCTUの下部に4×4ブロックの動きベクトルのように、現在のCTUより上にあるCTUの動き情報を記憶するために使用される。現在のCTUの上のCTUは、上のCTUラインと称することができる。
【0124】
いくつかの例(例えば、VVC)では、アフィンCUのCPMVは、4×4ブロックの動きベクトルとは別に記憶される。一例では、ローカルバッファは、CTUにおける4×4ブロックの動きベクトルを記憶するための第1の部分と、CTUにおけるアフィンCUのCPMVを記憶するための第2の部分とを含む。ローカルバッファの第2の部分に記憶されたCPMVは、最近コーディングされたCUに対してアフィンマージモード及びアフィンAMVPモードで継承されたCPMVPを生成するために使用することができる。CPMVから導出されたサブブロックMVは、動き補償、並進MVのマージ/AMVPリストのMV導出及びブロック解除のために使用される。
【0125】
いくつかの実施態様では、画像ラインバッファは、上のCTUラインにおけるアフィンCUの追加CPMVを記憶しない。いくつかの例では、上のCTUからのCUからのアフィン動きデータ継承は、同じCTUラインにおける通常の隣接するCUからの継承とは異なって扱われる。アフィン動きデータ継承についての候補CUが上のCTUライン内にある場合、CPMVの代わりに、画像ラインバッファにおける左下及び右下のサブブロックMVが、アフィンMVP導出のために使用される。したがって、いくつかの例では、CPMVは、画像ラインバッファではなく、ローカルバッファにのみ記憶される。候補CUが6パラメータアフィンコーディングされている例では、アフィンモデルは4パラメータモデルに低下させることができる。
【0126】
図12は、いくつかの例におけるアフィン動きデータ継承のための動きベクトル使用を示す図を示す。図12では、各小正方形は、4×4のサブブロックを表し、サブブロックの動きベクトルは、サブブロックの中心における動きベクトルであることができる。さらに、現在のCUは、現在のCTUの頂点位置に位置する。図12に示すように、現在のCUの隣接するCUにおいて、CU-E及びCU-Dはアフィンコードされる。CU-Dは現在のCUと同じCTUラインにあり、CU-Eは現在のCUの上のCTUラインにある。CU-DのCPMVはローカルバッファに記憶することができる。例えば、4パラメータアフィンモデルについて、mvD0及びmvD1はローカルバッファに記憶され、現在のCUのCPMV(例えば、mv及びmv)は、mvD0及びmvD1、ならびにmvD0及びmvD1に対する制御点の対応する位置に従って計算することができる。
【0127】
一例では、画像ラインバッファは、上のCTUラインの下部にあるサブブロックの動きベクトルを記憶する。mvE0やmvE1によって示されようなCU-EのCPMVは、画像ラインバッファには記憶されない。一例では、mvLE0及びmvLE1で示されるようなCU-Eの左下サブブロック及び右下サブブロックの動きベクトルが、現在のCUのアフィン継承に使用される。例えば、現在のCUのCPMV(例えば、mv及びmv)は、mvLE0及びmvLE1、ならびに2つのサブブロックの対応する中心位置に従って計算することができる。
【0128】
いくつかの実施形態では、オプティカルフロー(PROF)による予測精緻化(prediction refinement)(PROF法とも呼ばれる)は、サブブロックベースのアフィン動き補償を改善して、動き補償のためのメモリアクセス帯域幅を増加させることなく、より細かい粒度の動き補償を達成するように実装され得る。一実施形態(例えば、VVC)では、サブブロックベースのアフィン動き補償が実行された後、オプティカルフロー方程式に基づいて導出された差(又は、精緻化値(refinement values)、精緻化、予測精緻化)を、精緻化された予測サンプルを得るために、予測サンプル(例えば、ルマ予測されたサンプル、又はルマ予測サンプル)に加えることができる。
【0129】
図13は、本開示の一実施形態によるPROF法の一例の概略図を示す。現在のブロック(1310)は4つのサブブロック(1312、1314、1316、及び1318)に分割できる。サブブロック(1312、1314、1316、及び1318)の各々は、4×4ピクセル又はサンプルのサイズを有することができる。サブブロック(1312)に対するサブブロックMV(1320)は、例えば、サブブロック(1312)の中心位置及びアフィン動きモデル(例えば、4パラメータアフィン動きモデル、6パラメータアフィン動きモデル)を使用して、現在のブロック1310のCPMVに従って導出することができる。サブブロックMV(1320)は、参照画像内の参照サブブロック(1332)を示すことができる。初期サブブロック予測サンプルは、参照サブブロック(1332)に従って決定することができる。
【0130】
いくつかの例では、サブブロックMV(1320)によって説明されるように、参照サブブロック(1332)からサブブロック(1312)への並進の動きは、サブブロック(1312)を高精度で予測しない可能性がある。サブブロックMV(1320)によって説明される並進の動きに加えて、サブブロック(1312)は、非並進の動き(例えば、図13に見られるような回転)も経験し得る。図13を参照すると、影付きのサンプル(例えば、サンプル(1332a))を有する参照画像内のサブブロック(1350)は、サブブロック(1312)内のサンプルに対応するとともにそれを再構成するために使用することができる。影付きのサンプル(1332a)は、ピクセルMV
(1340)によってシフトされて、サブブロック(1312)内のサンプル(1312a)を高精度で再構成することができる。従って、いくつかの例では、非並進の動きが発生する場合、予測の精度を改善するために、以下に記載されるように、適切な予測精緻化方法をアフィン動きモデルに適用することができる。
【0131】
一例では、PROF法は、以下の4つのステップを使用して実装される。ステップ(1)では、サブブロックベースのアフィン動き補償を実行して、現在のサブブロック(例えば、サブブロック(1312))に対して、初期サブブロック予測I(i,j)などの予測を生成することができ、ここで、i及びjは、現在のサブブロック(1312)内の位置(i,j)(サンプル位置(sample position)、サンプル位置(sample location)とも称される)におけるサンプルに対応する座標である。
【0132】
ステップ(2)では、勾配計算を実行することができ、ここで各サンプル位置(i,j)における初期サブブロック予測I(i,j)の空間勾配g(i,j)及びg(i,j)を、例えば、以下の式3及び式4に従った3タップフィルタ[-1,0,1]を用いて、計算することができる:
(i,j)=I(i+1,j)-I(i-1,j) (式3)
(i,j)=I(i,j+1)-I(i,j-1) (式4)
サブブロック予測は、勾配計算のために、両側で1ピクセルずつ拡張することができる。いくつかの実施形態では、メモリ帯域幅及び複雑性を低減するために、拡張された境界上のピクセルは、参照画像(例えば、サブブロック(1332)を含む参照画像)内の最も近い整数ピクセル位置からコピーされることができる。従って、パディング領域(padding region)に対する追加の補間を回避することができる。
【0133】
ステップ(3)では、予測の精緻化ΔI(i,j)が式5(例えば、オプティカルフロー方程式)により以下のように計算することができる。
ΔI(i,j)=g(i,j)×Δmv(i,j)+g(i,j)×Δmv(i,j) (式5)
ここで、Δmv(i,j)(例えば、Δmv(1342))は、サンプル位置(i,j)に対するピクセルMV又はサンプルMV mv(i,j)(例えば、ピクセルMV(1340))と、サンプル位置(i,j)が位置するサブブロック(例えば、サブブロック(1312))のサブブロックMV MvSB(例えば、サブブロックMV(1320))との間の差MVである。Δmv(i,j)はまた、サンプル位置(i,j)又はサンプル(i,j)にあるサンプルに対するMV精緻化(MVR)とも呼ばれることができる。Δmv(i,j)は以下のように式6を用いて決定することができる。
Δmv(i,j)=mv(i,j)-mvSB (式6)
Δmv(i,j)及びΔmv(i,j)は、それぞれ差分MV Δmv(i,j)のx成分(水平成分)及びy成分(垂直成分)である。
【0134】
サブブロック中心位置に対するピクセル位置及びアフィンモデルパラメータは、1つのサブブロックから別のサブブロックに変更されないので、Δmv(i,j)は第1のサブブロック(例えば、サブブロック(1312))について計算することができ、同じ現在のブロック(1310)内の他のサブブロック(例えば、サブブロック(1314)、(1316)及び(1318))について再利用することができる。いくつかの例では、x及びyは、サブブロック(1312)の中心位置に対するサンプル位置(i,j)の水平シフト及び垂直シフトを表し、Δmv(i,j)(例えば、Δmv(i,j)及びΔmv(i,j)を含む)は、以下のように、式7によって導出することができ、
【数2】
ここで、Δmv(x,y)はx成分Δmv(i,j)であり、Δmv(x,y)はy成分Δmv(i,j)である。
【0135】
例えば、4パラメータのアフィン動きモデルについて、パラメータa~dは(式1)によって記述される。6パラメータアフィン動きモデルについて、パラメータa~dは、上述のように(式2)によって記述される。
【0136】
ステップ(4)では、予測精緻化ΔI(i,j)(例えば、ルマ予測精緻化)が、初期サブブロック予測I(i,j)に加えられて、精緻化された予測I’(i,j)などの別の予測を生成することができる。精緻化された予測I’(i,j)は、サンプル(i,j)について、以下のように式8を用いて生成することができる:
I’(i,j)=I(i,j)+ΔI(i,j) (式8)。
【0137】
場合によっては、PROFはアフィンコーディングされたCUについて適用されない。一例では、すべての制御点MVは同じであり、これはCUのみが並進の動きを有することを示し、PROFは適用されない。別の例では、アフィン動きパラメータは、指定されたリミットよりも大きく、次にPROFが適用される。第2の場合、サブブロックベースのアフィン動き補償は、大きなメモリアクセス帯域幅要求を避けるためにCUベースの動き補償に低下する。
【0138】
いくつかの実施形態では、高速エンコーディング方法を適用して、PROFによるアフィン動き推定のコーディングの複雑性を低減することができる。高速エンコーディング方法では、PROFは、以下の2つの状況においてアフィン動き推定段階では適用されない。第1の状況では、現在のCUがルートブロックではなく、その親ブロックがアフィンモードをベストモードとして選択しない場合、現在のCUについてアフィンモードをベストモードとして選択する可能性は低いため、PROFは適用されない。第2の状況では、4つのアフィンパラメータ(a~d)の大きさがすべてあらかじめ定義された閾値より小さく、現在の画像が遅延の小さい画像ではない場合、この状況ではPROFによってもたらされる改善が小さいため、PROFは適用されない。このようにして、PROFによるアフィン動き推定を加速することができる。
【0139】
いくつかの例(例えば、VVC)では、サブブロックベースの時間的動きベクトル予測(SbTMVP)を使用することができる。HEVCにおける時間的動きベクトル予測(TMVP)と同様に、SbTMVPは、現在の画像のCUについての動きベクトル予測とマージモードを改善するために、コロケーションされた画像の動き場を使用する。いくつかの例では、TMVPで使用されるのと同じコロケーションされた画像がSbTMVPに使用される。SbTMVPは、TMVPとは2つの点で異なる。第1の態様では、TMVPはCUレベルでの動きを予測するが、SbTMVPはサブCUレベルでの動きを予測する。第2の態様では、TMVPは、コロケーションされた画像内のコロケーションされたブロックから時間的動きベクトルをフェッチし(コロケーションされたブロックは、現在のCUに対する右下又は中央のブロックである)、SbTMVPは、コロケーションされた画像から時間的動き情報をフェッチする前に動きシフト(motion shift)を適用する。動きシフトは、現在のCUの空間的に隣接するブロックの一つからの動きベクトルから得られる。
【0140】
図14~15は、本開示のいくつかの実施形態によるSbTMVPプロセスの例を示す。SbTMVPは、現在のCU内のサブCUの動きベクトルを2つのステップで予測する。第1のステップでは、図14に示す空間的に隣接するA1が検討される。空間的に隣接するA1が、その参照画像としてコロケーションされた画像を使用する動きベクトルを有する場合、動きベクトルは、適用されることになる動きシフトであるように選択される。そのような動きが識別されない場合、動きシフトは(0,0)に設定される。
【0141】
第2のステップでは、第1のステップで識別された動きシフトが適用され(すなわち、現在のブロックの座標に加算され)て、図15に示すように、コロケーションされた画像からサブCUレベルの動き情報(動きベクトル及び参照インデックス)を取得する。図15の例では、A1の動きベクトルは、動きシフト(1510)として設定される。次に、各サブCUについて、コロケーションされた画像内の対応するブロック(中心サンプルをカバーする最小の動きグリッド)の動き情報が、サブCUについての動き情報を導出するために使用される。コロケーションされたサブCUの動き情報が識別された後、それは、HEVCのTMVPプロセスと同様の方法で、現在のサブCUの動きベクトル及び参照インデックスに変換される。例えば、時間的動きスケーリングが、時間的動きベクトルの参照画像を現在のCUの参照画像に整列させるために適用される。
【0142】
VVCにおけるなど、いくつかの例では、サブブロックベースのマージ候補リストが、サブブロックベースのマージモードの信号送信のために使用される。サブブロックベースのマージ候補リストは、SbTMVP候補とアフィンマージ候補の両方を含むことができ、いくつかの例では組み合わされたサブブロックベースのマージ候補リストと呼ばれる。SbTMVPモードは、シーケンスパラメータセット(SPS)フラグなどのフラグによって有効/無効にされる。SbTMVPモードを有効にすると、一例では、組み合わされたサブブロックベースのマージ候補リストの最初のエントリーとしてSbTMVP予測子が加えられ、その後アフィンマージ候補が続く。いくつかの例(例えば、VVC)では、組み合わされたサブブロックベースのマージ候補リストの最大許容サイズは5である。組み合わされたサブブロックベースのマージ候補リストの最大許容サイズは、他の適切な数であることができることに留意されたい。
【0143】
一例では、SbTMVPで使用されるサブCUサイズは8×8に固定されており、アフィンマージモードで行われるように、SbTMVPモードは、幅と高さの両方が8以上のCUにのみ適用可能である。
【0144】
いくつかの実施形態では、追加のSbTMVPマージ候補のエンコーディングロジックは、他のマージ候補についてと同じである。例えば、P又はBスライスの各CUに対して、追加のレート歪みチェックが、SbTMVP候補を使用するかどうかを決定するために実行される。
【0145】
本開示のいくつかの態様によれば、組み合わされたサブブロックベースのマージ候補リスト内の候補の最大数を信号送信することができる。
【0146】
図16は、いくつかの例におけるシーケンスパラメータセット(SPS)の構文テーブル例(1600)を示す。SPSは、一連の連続したコーディングされたビデオ画像(コーディングされたビデオシーケンスとも呼ばれる)に適用することができる情報を含む。
【0147】
構文テーブルの例(1600)では、フラグsps_temporal_mvp_enabled_flagが、(1610)で示されるように信号送信される。1に等しいフラグsps_temporal_mvp_enabled_flagは、時間的動きベクトル予測子(temporal motion vector predictors)がコーディングされたビデオで使用され得ることを指定する;0に等しいフラグsps_temporal_mvp_enabled_flagは、時間的動きベクトル予測子がコーディングされたビデオで使用されないことを指定する。いくつかの例では、コーディングされたビデオは、コーディングされたレイヤビデオシーケンス(CLVS)と呼ぶことができ、これは、ランダムアクセスポイントから始まり、互いに依存し得る画像及びランダムアクセスポイント画像が後続する、同じレイヤに属する画像のグループである。
【0148】
関連する構文テーブルの例(1600)では、フラグsps_temporal_mvp_enabled_flagが1に等しい場合、(1620)と(1630)で示されるように、2つのフラグsps_sbtmvp_enabled_flag及びsps_affine_enabled_flagが信号送信される。1に等しいフラグsps_sbtmvp_enabled_flagは、サブブロックベースの時間的動きベクトル予測子が、コーディングされたビデオの中でI(イントラコーディングされている)に等しくないスライスタイプを有するスライスでの画像のデコーディングに使用され得ることを指定する。0に等しいフラグsps_sbtmvp_enabled_flagは、サブブロックベースの時間的動きベクトル予測子がコーディングされたビデオで使用されないことを指定する。例では、フラグsps_sbtmvp_enabled_flagが信号送信されない時、フラグsps_sbtmvp_enabled_flagは0に等しいと推定することができる。
【0149】
フラグsps_affine_enabled_flagは、インター予測にアフィンモデルベースの動き補償を使用できるかどうかを指定する。フラグsps_affine_enabled_flagが0に等しい時、いくつかの例では、構文は、コーディングされたビデオでアフィンモデルベースの動き補償が使用されないように制約される。さもなければ(sps_affine_enabled_flagは1に等しい)、コーディングされたビデオでアフィンベースの動き補償を使うことができる。
【0150】
構文テーブルの例(1600)では、フラグsps_affine_enabled_flagが1に等しい場合、five_minus_max_num_subblock_merge_candなどのパラメータが信号送信され得る。パラメータfive_minus_max_num_subblock_merge_candは、SPSでサポートされるサブブロックベースのマージ候補の最大数を5から引いたものを指定する。five_minus_max_num_subblock_merge_candの値は、いくつかの例を含めて0から5の範囲にある。例えば、five_minus_max_num_subblock_merge_candの値が2の場合、組み合わされたサブブロックベースのマージ候補リストの候補の最大数は3(5から2を引く)である。
【0151】
いくつかの例では、時間的動きベクトル予測子は、画像ヘッダレベルで有効/無効にされることができる。図17は、いくつかの例における画像ヘッダ構造の構文テーブルの例(1700)を示す。
【0152】
構文テーブルの例(1700)では、SPSレベルフラグsps_temporal_mvp_enabled_flagが1に等しい場合、フラグph_temporal_mvp_enabled_flagが、(1710)によって示されるように、信号送信される。フラグph_temporal_mvp_enabled_flagは、時間的動きベクトル予測子を、画像ヘッダに関連付けられたスライスのインター予測に使用できるかどうかを指定する。ph_temporal_mvp_enabled_flagが0に等しい場合、画像ヘッダに関連するスライスの構文要素は、時間的動きベクトル予測子がスライスのデコーディングに使用されないように制約される。さもなければ(ph_temporal_mvp_enabled_flagは1に等しい)、時間的動きベクトル予測子は、画像ヘッダに関連付けられたスライスのデコーディングに使用され得る。存在しない場合、一例では、ph_temporal_mvp_enabled_flagの値は0に等しいと推定される。デコードされた画像バッファ内の参照画像が現在の画像と同じ空間解像度を有していない場合、ph_temporal_mvp_enabled_flagの値は0に等しくなる。
【0153】
サブブロックベースのマージ候補の最大数は、信号送信される又は推定されるフラグ及びパラメータに基づいて導出することができる。一例では、変数MaxNumSubblockMergeCandが、サブブロックベースのマージ候補の最大数を示すために使用される。一例では、sps_affine_enabled_flagが1に等しい場合、MaxNumSubblockMergeCandは(式9)に従って導出され、sps_affine_enabled_flagが0に等しい場合、MaxNumSubblockMergeCandは(式10)に従って導出される:
【数3】
【0154】
いくつかの例では、MaxNumSubblockMergeCandの値は、0~5の範囲(0、5を含む)にある。
【0155】
本開示の一態様によれば、sps_affine_enabled_flagが1として信号送信される場合、MaxNumSubblockMergeCandは、(式9)に記載されるように、five_minus_max_num_subblock_merge_candから導出される。いくつかの例では、sps_affine_enabled_flagが1として信号送信され、five_minus_max_num_subblock_merge_candが5に等しいと信号送信されるシナリオが許可される。このシナリオでは、サブブロックベースのマージ候補の最大数MaxNumSubblockMergeCandは、SbTMVPイネーブル(enabling)フラグに関係なく、SbTMVPと同様にアフィンマージモードをオフにすることができる0として導出され、SbTMVPイネーブルフラグが、SbTMVPが有効にされていることを示す場合に競合を引き起こす可能性がある。
【0156】
本開示の態様は、サブブロックベースのマージ候補のデフォルト数(例えば、Nで示される)及びアフィン及び/又はSbTMVPコーディングツールに対する関連する高レベル使用フラグに従って、サブブロックベースのマージ候補の数の値の範囲(サブブロックベースのマージ候補の最大数とも呼ばれる)を設定する技術を提供する。例えば、SbTMVPイネーブルフラグがSbTMVPを有効にされていることを示す場合、サブブロックベースのマージ候補の最大数は0ではない。
【0157】
いくつかの実施態様では、パラメータfive_minus_max_num_subblock_merge_candは、サブブロックベースのマージ候補の最大数と負の相関を有し、パラメータfive_minus_max_num_subblock_merge_candの上限は、SbTMVPイネーブルフラグに基づいて決定される。
【0158】
一実施形態では、パラメータfive_minus_max_num_subblock_merge_candは、Nから減算されるSPSでサポートされるサブブロックベースのマージ動きベクトル予測候補の最大数を指定し、さらに、パラメータfive_minus_max_num_subblock_merge_candの値は、0からN-sps_sbtmvp_enabled_flagの範囲(0、N-sps_sbtmvp_enabled_flagを含む)に制限される。パラメータfive_minus_max_num_subblock_merge_candの上限は、フラグsps_sbtmvp_enabled_flagに依存する。
【0159】
いくつかの例では、デフォルト数Nは5であり、フラグsps_sbtmvp_enabled_flagが0である場合(SbTMVPが無効)、パラメータfive_minus_max_num_subblock_merge_candの値は0から5までの範囲(0、5を含む)であることができる。しかし、フラグsps_sbtmvp_enabled_flagが1である場合(SbTMVPが有効)、パラメータfive_minus_max_num_subblock_merge_candの値は0~4の範囲(0、4を含む)であることができる。一例として、エンコーダ側では、フラグsps_sbtmvp_enabled_flagが1であり、パラメータfive_minus_max_num_subblock_merge_candの計算値が上限を上回る5である場合、コーディングされたビデオビットストリーム内のパラメータfive_minus_max_num_subblock_merge_candの信号送信される値は、0から4の範囲(0、4を含む)で制約される4である。
【0160】
いくつかの例では、パラメータfive_minus_max_num_subblock_merge_candの値が範囲の上限に等しい場合、パラメータfive_minus_max_num_subblock_merge_candはコーディングされたビデオビットストリームにおいてエンコーダ側から信号送信されなくてよい。デコーダ側では、パラメータfive_minus_max_num_subblock_merge_candがコーディングされたビデオビットストリームに存在しないことをデコーダが検出した場合、デコーダは、パラメータfive_minus_max_num_subblock_merge_candの値が範囲の上限にあると推定することができる。範囲の上限は、SbTMVPイネーブルフラグに基づいて決定することができる。例えば、five_minus_max_num_subblock_merge_candの値は、N-sps_sbtmvp_enabled_flagと等しいと推定される。一例では、デフォルト数Nは5であり、sps_sbtmvp_enabled_flagが0である場合(SbTMVPが無効)、パラメータfive_minus_max_num_subblock_merge_candの値は5であると推定することができる。しかし、フラグsps_sbtmvp_enabled_flagが1である場合(SbTMVPが有効である)、パラメータfive_minus_max_num_subblock_merge_candの値は4であると推定される。
【0161】
別の実施形態では、パラメータfive_minus_max_num_subblock_merge_candの上限は、SPSレベルにおける第1のフラグsps_sbtmvp_enabled_flag及び画像ヘッダレベルにおける第2のフラグph_temporal_mvp_enabled_flagなど、複数のSbTMVPイネーブルフラグの組み合わせに基づいて決定される。一例では、パラメータfive_minus_max_num_subblock_merge_candの値は、0からN-(sps_sbtmvp_enabled_flag && ph_temporal_mvp_enabled_flag)の範囲(0、N-(sps_sbtmvp_enabled_flag && ph_temporal_mvp_enabled_flag)を含む)に制限される。パラメータfive_minus_max_num_subblock_merge_cand がコーディングされたビデオビットストリームに存在しない場合、five_minus_max_num_subblock_merge_candの値はN-(sps_sbtmvp_enabled_flag && ph_temporal_mvp_enabled_flag)に等しいと推定される。
【0162】
いくつかの例では、デフォルト数Nは5であり、第1のフラグsps_sbtmvp_enabled_flagと第2のフラグph_temporal_mvp_enabled_flagの少なくとも1つが0である場合(SbTMVPが無効)、パラメータfive_minus_max_num_subblock_merge_candの値は0から5の範囲(0、5を含む)にあることができる。しかし、第1のフラグsps_sbtmvp_enabled_flagと第2のフラグph_temporal_mvp_enabled_flagの両方が1である場合(SbTMVPが有効)、パラメータfive_minus_max_num_subblock_merge_candの値は0~4の範囲(0、4を含む)にあることができる。一例では、エンコーダ側では、第1のフラグsps_sbtmvp_enabled_flagと第2のフラグph_temporal_mvp_enabled_flagの両方が1であり、パラメータfive_minus_max_num_subblock_merge_candの計算値が上限を上回る5である場合、コーディングされたビデオビットストリーム内のパラメータfive_minus_max_num_subblock_merge_candの信号送信される値は、0から4の範囲(0、4を含む)に制約される4である。
【0163】
いくつかの例では、パラメータfive_minus_max_num_subblock_merge_candの値が範囲の上限に等しい場合、パラメータfive_minus_max_num_subblock_merge_candはコーディングされたビデオビットストリームにおいてエンコーダ側から信号送信されなくてよい。デコーダ側では、パラメータfive_minus_max_num_subblock_merge_candがコーディングされたビデオビットストリームに存在しないことをデコーダが検出した場合、デコーダは、パラメータfive_minus_max_num_subblock_merge_candの値を範囲の上限であると推定することができる。範囲の上限は、例えば、第1のフラグsps_sbtmvp_enabled_flagと第2のフラグph_temporal_mvp_enabled_flagの適切な組み合わせに基づいて決定することができる。例えば、five_minus_max_num_subblock_merge_candの値は、N-(sps_sbtmvp_enabled_flag && ph_temporal_mvp_enabled_flag)と等しいと推定される。一例では、デフォルト数Nは5であり、第1のフラグsps_sbtmvp_enabled_flagと第2のフラグph_temporal_mvp_enabled_flagの少なくとも一方が0である場合(SbTMVPが無効)、パラメータfive_minus_max_num_subblock_merge_candの値は5であると推定することができる。しかし、第1のフラグsps_sbtmvp_enabled_flagと第2のフラグph_temporal_mvp_enabled_flagの両方が1である場合(SbTMVPが有効)、パラメータfive_minus_max_num_subblock_merge_candの値は4であると推定することができる。
【0164】
図18は、本開示の一実施形態によるプロセス(1800)の概略を示すフローチャートを示す。プロセス(1800)は、ブロックの再構成に使用することができ、したがって、再構成中のブロックに対する予測ブロックを生成する。様々な実施形態では、プロセス(1800)は、端末装置(210)、(220)、(230)及び(240)の処理回路、ビデオエンコーダ(303)の機能を実行する処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオエンコーダ(503)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1800)は、ソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行するとき、処理回路は、プロセス(1800)を実行する。プロセスは(S1801)から始まり、(S1810)に進む。
【0165】
(S1810)において、パラメータ(例えば、サブブロックベースのマージ候補リストにおける候補の最大数を示すfive_minus_max_num_subblock_merge_cand)は、コーディングされたビデオビットストリームからデコードされた予測情報に基づいて決定される。パラメータは、サブブロックベースの時間的動きベクトル予測の有効/無効状態を示すフラグに依存する範囲内にある。いくつかの例では、範囲の上限は、サブブロックベースの時間的動きベクトル予測の有効/無効状態を示すフラグに依存する。一例では、フラグは、シーケンスパラメータセット(SPS)レベルにおけるサブブロックベースの時間的動きベクトル予測の有効/無効状態を示す。
【0166】
一実施形態では、パラメータの値は、コーディングされたビデオビットストリームにおいて信号送信される。別の例では、パラメータの値がコーディングされたビデオビットストリームにおいて信号送信されない場合、パラメータの値は範囲の上限であると推定することができる。例えば、パラメータは、デフォルト数と、コーディングされたビデオビットストリームにおいて信号送信されていないパラメータに応答して、サブブロックベースの時間的動きベクトル予測の有効/無効状態を示すフラグに基づいて推定することができる。
【0167】
いくつかの実施形態では、パラメータは、シーケンスパラメータセット(SPS)レベルにおけるサブブロックベースの時間的動きベクトル予測の有効/無効状態を示す第1のフラグと、画像ヘッダ(PH)レベルにおける時間的動きベクトル予測の有効/無効状態を示す第2のフラグに依存する範囲内にある。いくつかの例では、パラメータがコーディング化されたビデオビットストリームにおいて信号送信されないことに応答して、パラメータは、デフォルト数、SPSレベルにおけるサブブロックベースの時間的動きベクトル予測の有効/無効状態を示す第1のフラグ、及びPHレベルにおける時間的動きベクトル予測の有効/無効状態を示す第2のフラグに基づいて推定することができる。
【0168】
(S1820)では、サブブロックベースのマージ候補リスト内の候補の最大数が、パラメータに基づいて計算される。いくつかの例では、サブブロックベースのマージ候補リスト内の候補の最大数は、(式9)を使用してなど、デフォルト数からパラメータを差し引くことによって計算される。一例では、デフォルト数は5である。
【0169】
(S1830)において、サブブロックベースの予測モードにおける現在のブロックに応答して、現在のブロックのサンプルは、現在のブロックの構成されたサブブロックベースのマージ候補リストからの候補選択に基づいて再構成される。現在のブロックの構成されたサブブロックベースのマージ候補リストは、サブブロックベースのマージ候補リストの中の候補の最大数によって制約される。
【0170】
その後、このプロセスは(S1899)に進み、終了する。
【0171】
上述の技術は、コンピュータ読取可能な命令を用いてコンピュータソフトウェアとして実装することができ、1つ以上のコンピュータ読取可能媒体に物理的に記憶することができる。例えば、図19は、開示された主題の特定の実施形態を実施するのに適したコンピュータシステム(1900)を示す。
【0172】
コンピュータソフトウェアは、1つ又は複数のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)などによって、直接的に、又は解釈を通じて、マイクロコード実行などを通して実行することができる命令を含むコードを作成するために、アセンブリ、コンパイル、リンク、又は同様のメカニズムの対象となり得る任意の適切な機械コード又はコンピュータ言語を用いてコーディングすることができる。
【0173】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームミングデバイス、モノのインターネットデバイス等を含む種々のタイプのコンピュータ又はそのコンポーネント上で実行することができる。
【0174】
コンピュータシステム(1900)について図19に示されるコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能に関する限定を示唆することを意図するものではない。また、コンポーネントの構成は、コンピュータシステム(1900)の例示的な実施形態に示されたコンポーネントの任意の1つ又は組み合わせに関するいかなる従属性又は要件を有するものとして解釈されてはならない。
【0175】
コンピュータシステム(1900)は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力装置は、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、音声入力(例えば、音声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を通じて、一人又は複数の人間のユーザによる入力に応答し得る。また、ヒューマンインターフェースデバイスは、オーディオ(例えば、スピーチ、音楽、周囲の音声)、画像(例えば、スキャンされた画像、静止画カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体画像を含む3次元ビデオ)のような、人間による意識的入力に必ずしも直接関係しない特定の媒体をキャプチャするために使用することができる。
【0176】
入力ヒューマンインターフェースデバイスは、キーボード(1901)、マウス(1902)、トラックパッド(1903)、タッチスクリーン(1910)、データグローブ(図示せず)、ジョイスティック(1905)、マイクロホン(1906)、スキャナ(1907)、カメラ(1908)の1つ以上を含み得る。
【0177】
コンピュータシステム(1900)はまた、特定のヒューマンインターフェース出力デバイスを含み得る。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、及びにおい/味を通して、1人又は複数の人間ユーザの感覚を刺激し得る。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1910)、データグローブ(図示せず)、ジョイスティック(1905)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(例えば、スピーカー(1909)、ヘッドフォン(図示せず))、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1910)など、各々がタッチスクリーン入力能力を有していても有していなくてもよく、各々が触覚フィードバック能力を有していても有していなくてもよい-これらのうちのいくつかは、2次元の視覚出力又は立体画像出力など手段を介して3次元以上の出力を出力することができ得る;仮想現実メガネ(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず))、及びプリンタ(図示せず)を含み得る。
【0178】
コンピュータシステム(1900)はまた、人間がアクセス可能な記憶装置、及び、CD/DVD又は類似の媒体(1921)を有するCD/DVD ROM/RW(1920)を含む光媒体、サムドライブ(1922)、取り外し可能なハードドライブ又はソリッドステートドライブ(1923)、テープ及びフロッピー(登録商標)ディスク(図示せず)のようなレガシー磁気媒体、セキュリティドングル(図示せず)のような特殊化されたROM/ASIC/PLDベースのデバイスなどの関連媒体を含むことができる。
【0179】
当業者はまた、現在開示されている主題に関連して使用される用語「コンピュータ読取可能媒体」は、伝送媒体、搬送波、又は他の一時的な信号を包含しないことを理解すべきである。
【0180】
コンピュータシステム(1900)はまた、1つ以上の通信ネットワークへのインターフェースを含むことができる。ネットワークは、例えば、無線、有線、光であることができる。ネットワークは、さらに、ローカル、広域、メトロポリタン、車両及び産業、リアルタイム、遅延耐性などであることができる。ネットワークの例としては、イーサネット(登録商標)、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TVを含むTV有線又は無線ワイドエリアデジタルネットワーク、CANバスを含む車両及び産業用などが挙げられる。特定のネットワークは、一般に、特定の汎用データポート又は周辺バス(1949)(例えば、コンピュータシステム(1900)のUSBポート)に取り付けられる外部ネットワークインターフェースアダプタを必要とする。他のものは、一般に、以下に説明するようにシステムバスに取り付けることによって、コンピュータシステム(1900)のコアに組み込まれる(例えば、PCコンピュータシステムへのイーサネットインターフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1900)は、他のエンティティと通信することができる。このような通信は、単指向性、受信のみ(例えば、放送テレビ)、単指向性送信専用(例えば、特定のCANバスデバイスへのCANバス)、又は、例えば、ローカル又はワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの双指向性であることができる。特定のプロトコル及びプロトコルスタックは、上述のように、それらのネットワーク及びネットワークインターフェースの各々で使用することができる。
【0181】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、及びネットワークインターフェースは、コンピュータシステム(1900)のコア(1940)に取り付けることができる。
【0182】
コア(1940)は、1つ以上の中央処理装置(CPU)(1941)、グラフィックス処理ユニット(GPU)(1942)、フィールドプログラマブルゲートエリア(FPGA)(1943)の形の特殊なプログラマブル処理ユニット、特定のタスクのためのハードウェアアクセラレータ(1944)などを含むことができる。これらのデバイスは、読出し専用メモリ(ROM)(1945)、ランダムアクセスメモリ(1946)、内部非ユーザアクセス可能ハードドライブ、SSD等の内部大容量記憶装置(1947)と共に、システムバス(1948)を介して接続され得る。いくつかのコンピュータシステムでは、システムバス(1948)は、追加のCPU、GPUなどによる拡張を可能にするために、1つ以上の物理的プラグの形態でアクセス可能であることができる。周辺装置は、コアのシステムバス(1948)に直接取り付けるか、又は周辺バス(1949)を介して取り付けることができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0183】
CPU(1941)、GPU(1942)、FPGA(1943)、及びアクセラレータ(1944)は、組み合わされて、上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1945)又はRAM(1946)に記憶することができる。過渡的なデータはRAM(1946)に記憶することもでき、一方、永久データは、例えば、内部大容量記憶装置(1947)に記憶することができる。任意のメモリデバイスへの高速記憶及び取得は、キャッシュメモリの使用を通して可能にすることができ、キャッシュメモリは、1つ以上のCPU(1941)、GPU(1942)、大容量記憶装置(1947)、ROM(1945)、RAM(1946)などと密接に関連付けることができる。
【0184】
コンピュータ読取可能媒体は、種々のコンピュータに実装された動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構成されたものであることができる、又はそれらは、コンピュータソフトウェア技術に熟練した者に良く知られかつ入手可能な種類のものであることができる。
【0185】
一例として、限定するものではなく、アーキテクチャ(1900)、具体的にはコア(1940)を有するコンピュータシステムは、1つ以上の有形のコンピュータ読取可能媒体に具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能を提供することができる。そのようなコンピュータ読取可能媒体は、コア-内部大容量記憶装置(1947)又はROM(1945)のような非一時的な性質のものであるコア(1940)の特定の記憶装置(1940)と同様に、上述のようなユーザがアクセス可能な大容量記憶装置に関連する媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのような装置に記憶され、コア(1940)によって実行されることができる。コンピュータ読取可能媒体は、特定のニーズに応じて、1つ又は複数のメモリデバイス又はチップを含むことができる。ソフトウェアは、RAM(1946)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセス又は特定の部分を、コア(1940)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に実行させることができる。加えて、又は代替的に、コンピュータシステムは、回路(例えば、アクセラレータ(1944))内に配線された、又は他の方法で具現化された論理の結果として機能を提供することができ、これは、本明細書に記載される特定のプロセス又は特定のプロセスの特定の部分を実行するためのソフトウェアの代わりに、又はそれと共に動作することができる。ソフトウェアへの言及は、論理を含み、また、必要に応じて、その逆も可能である。コンピュータ読取可能媒体への参照は、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具体化する回路、又は適切な場合にはその両方を含むことができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを包含する。
付録A:頭字語
JEM:共同探査モデル(joint exploration model)
VVC:汎用ビデオコーディング
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオコーディング
SEI:補足拡張情報
VUI:ビデオユーザビリティ情報
GOP:画像グループ
TU:変換ユニット
PU:予測ユニット
CTU:コーディングツリーユニット
CTB:コーディングツリーブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SNR:信号雑音比
CPU:中央処理装置
GPU:グラフィックス処理ユニット
CRT:陰極線管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:デジタルビデオディスク
ROM:読み出し専用メモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブルロジックデバイス
LAN:ローカルエリアネットワーク
GSM:移動体通信のためのグローバルシステム
LTE:ロングタームエボリューション
CANバス:コントローラエリアネットワークバス
USB:ユニバーサルシリアルバス
PCI:ペリフェラルコンポーネント相互接続
FPGA:フィールドプログラマブルゲートエリア
SSD:ソリッドステートドライブ
IC:集積回路
CU:コーディングユニット
【0186】
本開示は、いくつかの例示的な実施形態を記載してきたが、本開示の範囲内にある変更、置換、及び種々の代替均等物がある。したがって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、本開示の原理を具体化し、従って、本開示の精神及び範囲内にある多くのシステム及び方法を考え出すことができることが理解されるであろう。
図1
図2
図3
図4
図5
図6
図7
図8A
図8B
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
【外国語明細書】