(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-29
(45)【発行日】2023-10-10
(54)【発明の名称】イントラ画像ブロック補償のためのデコードされたブロックベクトルの変換
(51)【国際特許分類】
H04N 19/593 20140101AFI20231002BHJP
【FI】
H04N19/593
(21)【出願番号】P 2021544430
(86)(22)【出願日】2020-06-10
(86)【国際出願番号】 US2020036915
(87)【国際公開番号】W WO2020257016
(87)【国際公開日】2020-12-24
【審査請求日】2021-07-29
(32)【優先日】2019-06-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-04-28
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュイ,シアオジョォン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】間宮 嘉誉
(56)【参考文献】
【文献】特開2017-130938(JP,A)
【文献】国際公開第2020/228744(WO,A1)
【文献】特表2018-530249(JP,A)
【文献】特表2017-513361(JP,A)
【文献】国際公開第2015/054811(WO,A1)
【文献】国際公開第2016/004850(WO,A1)
【文献】特表2021-533644(JP,A)
【文献】XU, Jizheng et al.,Non-CE8: On IBC Reference Buffer Design,JVET-N0472 (version 2),ITU,2019年03月22日,pp.1-6,JVET-N0472_v2.docx
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00-19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
ビデオデコーダによって実行される、ビデオデコーディングの方法であって、
現在の画像を含むコーディングされたビデオビットストリームを受信するステップと、
前記現在の画像に含まれる現在のコーディングツリーユニット(CTU)内の現在のブロックが、前記コーディングされたビデオビットストリームに含まれるフラグに基づいて、イントラブロックコピー(IBC)モードでコーディングされているかどうかを決定するステップと、
前記現在のブロックがIBCモードでコーディングされていると決定されていることに応答して、
現在のブロックの第1参照ブロックを指すブロックベクトルを決定するステップと、
前記第1参照ブロックが前記現在のブロックの有効なサーチレンジ内にない場合に、前記ブロックベクトルに対する操作を実行するステップであって、前記ブロックベクトルは、前記操作によって、現在のブロックの前記有効なサーチレンジ内にある第2参照ブロックを指すように変更される、ステップと、
変更された前記ブロックベクトルに基づいて前記現在のブロックをデコードするステップと、
を含み、前記ブロックベクトルに対する操作は、ターゲットレンジが前記現在のCTUと左隣のCTUを含む場合に、前記有効なサーチレンジの外側にあるブロックベクトルである無効なブロックベクトルが、前記現在のCTU又は前記左隣のCTU内にあるように変更される変更操作であり、前記ターゲットレンジは前記有効なサーチレンジであり、前記ターゲットレンジは参照サンプルメモリのサイズ及び現在のピクチャにおけるCTUのサイズに
応じた数の左側CTU及び前記現在のCTUを含む、方法。
【請求項2】
前記有効な第2参照ブロックは、完全に再構成された領域内にあり、
有効な第2参照ブロック及び前記現在のブロックは、同一のタイル、スライス又はタイルグループ内にある、
請求項1記載の方法。
【請求項3】
前記操作を実行するステップは、
前記現在のCTUのサイズに基づいて、前記ブロックベクトルのx成分及びy成分のそれぞれにモジュロ動作を実行するステップを含む、
請求項1又は2記載の方法。
【請求項4】
前記操作を実行するステップは、
前記現在のCTUのサイズの倍数に基づいて、前記ブロックベクトルのx成分にモジュロ動作を実行するステップと、
前記現在のCTUの前記サイズに基づいて、前記ブロックベクトルのy成分にモジュロ動作を実行するステップと、
を含む、請求項1乃至3いずれか1項に記載の方法。
【請求項5】
前記操作を実行するステップは、前記第1参照ブロックが完全に再構成されていないか、又は前記現在のブロックの有効なサーチレンジ内にない場合にのみ、前記ブロックベクトルを変更する、
請求項1記載の方法。
【請求項6】
前記操作を実行するステップは、前記第1参照ブロックが完全に再構成されており且つ前記現在のブロックの有効なサーチレンジ内にある場合は、前記ブロックベクトルを変更しない、
請求項1乃至4いずれか1項に記載の方法。
【請求項7】
前記有効な第2参照ブロックは前記現在のブロックの有効なサーチレンジ内にあり、前記有効なサーチレンジは前記現在のCTUを含む、
請求項1乃至6いずれか1項に記載の方法。
【請求項8】
前記操作を実行するステップは、前記第1参照ブロックを含むCTUに対する前記第1参照ブロックのオフセットが、前記現在のCTUに対する前記第2参照ブロックのオフセットと同じになるように、前記ブロックベクトルを変更する、
請求項1乃至7いずれか1項に記載の方法。
【請求項9】
前記操作を実行するステップは、
前記ブロックベクトルをクリッピングするステップであって、したがって、クリッピングされた前記ブロックベクトルは、前記第1参照ブロックが完全に再構成されていないか、又は前記現在のブロックの有効なサーチレンジ内にない場合に、前記現在のブロックの前記有効なサーチレンジの境界にある第2参照ブロックを指す、ステップを含む、
請求項1に記載の方法。
【請求項10】
前記ブロックベクトルの解像度をストレージで使用されるものに変えるために前記ブロックベクトルのx成分及びy成分にシフト演算を実行するステップを更に含む、請求項1乃至9いずれか1項に記載の方法。
【請求項11】
ビデオエンコーダによって実行される、ビデオエンコーディングの方法であって、
ビデオビットストリームをエンコードするステップであって、
コーディングされたビデオビットストリームは、
現在の画像を含み、
前記現在の画像に含まれる現在のコーディングツリーユニット(CTU)内の現在のブロックが、前記コーディングされたビデオビットストリームに含まれるフラグに基づいて、イントラブロックコピー(IBC)モードでコーディングされているかどうかを決定し、
前記現在のブロックがIBCモードでコーディングされていると決定されていることに応答して、
現在のブロックの第1参照ブロックを指すブロックベクトルを決定し、
前記第1参照ブロックが前記現在のブロックの有効なサーチレンジ内にない場合に、前記ブロックベクトルに対する操作を実行するステップであって、前記ブロックベクトルは、前記操作によって、現在のブロックの前記有効なサーチレンジ内にある第2参照ブロックを指すように変更され、
変更された前記ブロックベクトルに基づいて前記現在のブロックをデコードする、ようにコーディングされている、ステップ
を含み、前記ブロックベクトルに対する操作は、ターゲットレンジが前記現在のCTUと左隣のCTUを含む場合に、前記有効なサーチレンジの外側にあるブロックベクトルである無効なブロックベクトルが、前記現在のCTU又は前記左隣のCTU内にあるように変更される変更操作であり、前記ターゲットレンジは前記有効なサーチレンジであり、前記ターゲットレンジは参照サンプルメモリのサイズ及び現在のピクチャにおけるCTUのサイズに
応じた数の左側CTU及び前記現在のCTUを含む、方法。
【請求項12】
前記ブロックベクトルの解像度をストレージで使用されるものに変えるために前記ブロックベクトルのx成分及びy成分にシフト演算が実行される、請求項11に記載の方法。
【請求項13】
処理回路を備える装置であって、前記処理回路は、請求項1乃至12いずれか1項に記載の方法を実行するように構成されている、装置。
【請求項14】
コンピュータによって実行されるプログラムであって、
前記コンピュータに請求項1乃至12いずれか1項に記載の方法を実行させるように構成されている、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
参照による援用
本願は、2019年6月18日に出願された米国仮出願第62/863,037号「CONVERSION OF DECODED BLOCK VECTOR FOR INTRA PICTURE BLOCK COMPENSATION(イントラ画像ブロック補償のためのデコードされたブロックベクトルの変換)」に基づく優先権の利益を主張する2020年4月28日出願の米国特許出願第16/860,975号「CONVERSION OF DECODED BLOCK VECTOR FOR INTRA PICTURE BLOCK COMPENSATION(イントラ画像ブロック補償のためのデコードされたブロックベクトルの変換)」の利益を主張し、
その全体を本明細書に参照援用する。
【0002】
技術分野
本開示は、概して、ビデオコーディングに関連する実施形態を記載する。
【背景技術】
【0003】
本明細書で提供される背景説明は、本開示のコンテキストを全般的に提示するためのものである。現在挙げられている発明者の研究は、その研究がこの背景部分に記載されている範囲において、また、出願時に他の点では先行技術として適格でないかもしれない説明の側面において、本開示に対する先行技術として明示的にも黙示的にも認められていない。
【0004】
ビデオコーディングとデコーディングは、動き補正を伴うインター画像予測(inter-picture prediction)を用いて行うことができる。非圧縮ディジタルビデオは、一連の画像を含むことができ、各画像は、例えば、1920×1080の輝度サンプル及び関連するルミナンスサンプルの空間寸法を有する。一連の画像は、固定又は可変の画像レート(例えば、60画像/秒又は60Hz)を有することができる。非圧縮ビデオは、大きいビットレートを必要とする。例えば、サンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートでの1920x1080の輝度サンプル解像度)は、1.5Gビット/秒に近い帯域幅を必要とする。このようなビデオの1時間は、600Gバイトを超える記憶領域を必要とする。
【0005】
ビデオコーディング及びデコーディングの1つの目的は、圧縮による入力ビデオ信号の冗長性の低減である。圧縮は、場合によっては、2桁以上前述の帯域幅又は記憶スペースの必要性を低減するのに役立つ。可逆圧縮及び非可逆圧縮の両方、並びにそれらの組み合わせを用いることができる。可逆圧縮とは、元の信号の正確なコピーを圧縮された元の信号から再構成することができる技術をいう。非可逆圧縮を使用する場合、再構成された信号は、元の信号と同一ではないかもしれないが、元の信号と再構成された信号との間の歪みは十分小さく、再構成された信号を意図された用途に役立てられる。
ビデオの場合、非可逆圧縮が広く用いられている。許容される歪みの量は、アプリケーションに依存し、例えば、特定の消費者ストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを容認し得る。達成可能な圧縮比は、より高い許容可能/容認可能歪みは、より高い圧縮比をもたらすことができることを反映することができる。
【0006】
ビデオエンコーダ及びデコーダは、例えば、動き補償、変換、量子化、及びエントロピーコーディングを含むいくつかの広範なカテゴリからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技術を含むことができる。イントラコーディングでは、サンプル値は、以前に再構成された参照画像からのサンプル又は他のデータを参照することなく表現される。いくつかのビデオコーデックでは、画像は空間的にサンプルのブロックに分割される。サンプルのすべてのブロックがイントラモードでコーディングされている場合、その画像はイントラ画像とすることができる。イントラ画像と、独立デコーダリフレッシュ画像等のそれらの派生物は、デコーダ状態をリセットするために用いられることができ、したがって、コーディングされたビデオビットストリーム及びビデオセッションにおける第1画像として、又は静止画像として用いられることができる。イントラブロックのサンプルを変換にさらされることができ、変換係数はエントロピーコーディングの前に量子化されることができる。イントラ予測は、変換前ドメインにおけるサンプル値を最小化する技術であり得る。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップサイズで必要なビットが少なくなる。
【0008】
例えばMPEG-2世代のコーディング技術から知られるような従来のイントラ符号化は、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に隣接し、デコード順において先行するデータのブロックをエンコード/デコード中に得られる周囲のサンプルデータ及び/又はメタデータから試みる技術を含む。このような技術は、以後「イントラ予測」技術と称される。少なくともいくつかの場合では、イントラ予測は再構成中の現在画像からの参照データのみを使用し、参照画像からの参照データは使用しないことに留意されたい。
【0009】
さまざまな形式のイントラ予測があり得る。かかり技術のうちの1つ以上が、所与のビデオコーディング技術において用いられることができる場合、使用中の技術は、イントラ予測モードでコーディングすることができる。特定の場合には、モードは、サブモード及び/又はパラメータを有することができ、それらは、個別にコーディングされることができ、又はモードコード名(mode codeword)に含まれることができる。所与のモード/サブモード/パラメータの組み合わせに用いられるコード名は、イントラ予測を通してコーディング効率ゲイン(coding efficiency gain)に影響を与える可能性があり、同様に、コード名をビットストリームに変換するために使用されるエントロピー符号化技術も同様に影響を与える可能性がある。
【0010】
特定のイントラ予測モードがH.264で導入され、H.265で改良され、共同探索モデル(JEM:joint exploration model)、汎用ビデオコーディング(VVC:versatile video coding)、及びベンチマークセット(BMS:benchmark set)等のより新しいコーディング技術でさらに改良された。予測子ブロックは、既に利用可能なサンプルに属する隣接するサンプル値を使用して形成されることができる。隣接するサンプルのサンプル値は、方向にしたがって予測子ブロックにコピーされる。使用中の方向への参照は、ビットストリームでコーディングされることができ、又はそれ自体が予測されることがある。
【0011】
動き補償は、非可逆圧縮技術であることができ、かつ、先行して再構成された画像又はその一部(参照画像)からのサンプルデータのブロックが、動きベクトル(以下、MVとも称する。)によって示される方向に空間的にシフトされた後に、新たな再構成画像又はその一部の予測のために使用される技術に関連付けることができる。場合によっては、参照画像は現在再構成中の画像と同一であることもできる。MVは、X及びYの2次元、又は3次元を有することができ、第3次元は、使用中の参照画像の表示である(後者は、間接的に、時間次元であることができる)。
【0012】
いくつかのビデオ圧縮技術では、サンプルデータの、あるエリアに適用可能なMVは、他のMVから、例えば、再構成中のエリアに空間的に隣接し、デコードの順序(decoding order)でそのMVに先行するサンプルデータの別のエリアに関連するMVから予測することができる。このようにして、MVのコーディングに必要なデータ量を大幅に削減することができ、それによって冗長性を除去し、圧縮を増大させることができる。MV予測は効率的に作用することができ、なぜならば、例えば、(ナチュラルビデオとして既知の)カメラから導出された入力ビデオ信号をコーディングする場合、単一のMVが適用可能であるエリアよりも大きなエリアは、類似の方向に移動するという統計的可能性があり、したがって、場合によっては、隣接するエリアのMVから導出された類似の動きベクトルを用いて予測することができるからである。
その結果、所与のエリアについて見出されたMVは、周囲のMVから予測されるMVと類似又は同一になり、それは、エントロピーコーディングの後、MVを直接コーディングする場合に使用されるであろうものよりも、より少ない数のビットで表され得る。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の例であり得る。他の場合には、MV予測それ自体は、例えば、いくつかの周囲MVから予測子を計算する際の丸め誤差のために、非可逆的であり得る。
【0013】
様々なMV予測メカニズムがH.265/HEVC (ITU-T Rec. H.265, High Efficiency Video Coding, December 2016)に、記述されている。H.265が提供する多くのMV予測メカニズムのうち、ここでは、以後「空間マージ」と称されるテクニックについて説明する。
【0014】
図1を参照すると、現在ブロック(101)は、空間的にシフトされた同じサイズの以前のブロックから予測可能であることが、モーションサーチプロセス中にエンコーダによって見出されたサンプルを含む。そのMVを直接コーディングする代わりに、1つ以上の参照画像に関連付けられたメタデータから、例えば、A0、A1、及びB0、B1、B2(それぞれ102から106)と示される5つの周囲のサンプルのいずれかに関連付けられたMVを使用して、(デコード順において)最新の参照画像から、MVを導出することができる。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照画像からの予測子を使用することができる。
【発明の概要】
【0015】
本開示の態様は、デコーダにおけるビデオコーディングのための方法及び装置を提供する。一実施形態において、デコーダにおけるビデオコーディングの方法が提供される。方法では、現在の画像を含むコーディングされたビデオビットストリームが受信される。現在の画像に含まれる現在のコーディングツリーユニット(CTU)内の現在のブロックが、コーディングされたビデオビットストリームに含まれるフラグに基づいて、イントラブロックコピー(IBC)モードでコーディングされているかどうかに関して決定が行われる。現在のブロックがIBCモードでコーディングされていると決定されていることに応答して、現在のブロックの第1参照ブロックを指すブロックベクトルが決定され、現在のブロックに動作、操作又は演算(operation)が実行され、したがって、第1参照ブロックが完全に再構成されていないか、又は現在のブロックの有効なサーチレンジ又は検索範囲(search range)内にない場合に、ブロックベクトルは変更されて、完全に再構成された領域内にあり且つ現在ブロックの有効なサーチレンジ内にある第2参照ブロックを指し、変更されたブロックベクトルに基づいて現在のブロックがデコードされる。
【0016】
実施形態において、完全に再構成された領域及び現在のブロックは、同一のタイル、スライス又はタイルグループ内にある。
【0017】
実施形態において、操作を実行するステップは、前記現在のCTUのサイズに基づいて、前記現在のベクトルのx成分及びy成分のそれぞれにモジュロ操作を実行するステップ、
を含む。
【0018】
このようにして、MVのコーディングに必要なデータ量を大幅に削減することができ、それによって冗長性を除去し、圧縮を増大させることができる。操作を実行するステップは、現在のCTUのサイズの倍数(multiple of a size)に基づいて、ブロックベクトルのx成分にモジュロ操作(modulo operation)を実行するステップを含む。操作はさらに、現在のCTUのサイズに基づいて、ブロックベクトルのy成分にモジュロ操作を実行するステップを含む。
【0019】
実施形態において、操作を実行するステップは、第1参照ブロックが完全に再構成されていない(not fully reconstructed)か、又は現在のブロックの有効なサーチレンジ内にない場合にのみ、ブロックベクトルを変更する。
【0020】
実施形態において、操作を実行するステップは、第1参照ブロックが完全に再構成されており且つ現在のブロックの有効なサーチレンジ内にある場合は、ブロックベクトルを変更しない。
【0021】
実施形態において、現在ブロックの有効なサーチレンジは、現在のCTUを含む。
【0022】
実施形態において、操作を実行するステップは、第1参照ブロックを含むCTUに対する第1参照ブロックのオフセットが、現在のCTUに対する第2参照ブロックのオフセットと同じになるように、ブロックを変更する。
【0023】
実施形態において、操作を実行するステップは、ブロックベクトルをクリッピングするステップであって、したがって、クリッピングされたブロックベクトルは、第1参照ブロックが完全に再構成されていないか、又は現在のブロックの有効なサーチレンジ内にない場合に、現在ブロックの有効なサーチレンジの境界にある第2参照ブロックを指す、ステップを含む。
【0024】
開示の態様は、上記方法のいずれかを実行するように構成される装置を提供する。
【0025】
また、本開示の態様は、コンピュータによって実行されたときに、コンピュータに上記方法のいずれかを実行させる命令を格納する、非一時的なコンピュータ読取可能媒体記憶を提供する。
【図面の簡単な説明】
【0026】
開示された主題のさらなる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう。
【
図1】
図1は、一実施例における現在ブロック及びその周囲の空間マージ候補を模式的に示す図である。
【
図2】
図2は、一実施形態による通信システムの簡略ブロック図を模式的に示す図である。
【
図3】
図3は、一実施形態による通信システムの簡略ブロック図を模式的に示す図である。
【
図4】
図4は、一実施形態によるデコーダの簡略ブロック図を模式的に示す図である。
【
図5】
図5は、一実施形態によるエンコーダの簡略ブロック図を模式的に示す図である。
【
図6】
図6は、別の実施形態によるエンコーダのブロック図である。
【
図7】
図7は、別の実施形態によるデコーダのブロック図である。
【
図8】
図8は、一実施形態によるイントラ画像ブロック(IBC)の一実施例を示す図である。
【
図9A】
図9Aは、実施形態によるIBCベース補償の実施例を示す図である。
【
図9B】
図9Bは、実施形態によるIBCベース補償の実施例を示す図である。
【
図9C】
図9Cは、実施形態によるIBCベース補償の実施例を示す図である。
【
図9D】
図9Dは、実施形態によるIBCベース補償の実施例を示す図である。
【
図10】
図10は、一実施形態による空間マージ候補の実施例をしめす図である。
【
図11】
図11は、一実施形態によるデコーディングプロセスを概説するフローチャートを示す図である。
【
図12】
図12は、一実施形態によるコンピュータシステムを模式的に示す図である。
【発明を実施するための形態】
【0027】
I. ビデオコーディングエンコーダ及びデコーダ
【0028】
図2は、本開示の一実施形態による通信システム(200)の簡略化されたブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された第1対の端末デバイス(210)及び(220)を含む。
図2の例では、第1対の端末デバイス(210)及び(220)は、データの一方向送信を行う。例えば、端末デバイス(210)は、ネットワーク(250)を介して他の端末デバイス(220)に伝送するために、ビデオデータ(例えば、端末デバイス(210)によって捕捉されるビデオ画像のストリーム)をコーディングすることができる。エンコードされた画像データは、1つ以上のコーディングされたビデオビットストリームの形態で送信されることができる。端末デバイス(220)は、ネットワーク(250)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードして、ビデオ画像を復元し、復元されたビデオデータにしたがってビデオ画像を表示することができる。一方向性データ伝送は、メディア提供アプリケーション等において一般的であり得る。
【0029】
別の例では、通信システム(200)は、第2対の端末デバイス(230)及び(240)を含み、例えばビデオ会議中に、発生し得るコーディングされたビデオデータの双方向伝送を行う。データの双方向伝送のために、例えば、端末デバイス(230)及び(240)の各端末デバイスは、ネットワーク(250)を介して端末デバイス(230)及び(240)の他方の端末デバイスに伝送するために、ビデオデータ(例えば、端末デバイスによって捕捉されるビデオ画像のストリーム)をコーディングすることができる。端末デバイス(230)及び(240)の各端末デバイスは、端末デバイス(230)及び(240)の他方の端末デバイスによって送信されたコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードして、ビデオ画像を復元し、復元されたビデオデータにしたがって、アクセス可能な表示デバイスにビデオ画像を表示することができる。
【0030】
図2の例では、端末デバイス(210)、(220)、(230)及び(240)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示され得るが、本発明の原理はこれらに限定されない。本発明の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のビデオ会議機器への適用を見出す。ネットワーク(250)は、例えばワイヤライン(有線)及び/又は無線通信ネットワークを含む、端末デバイス(210)、(220)、(230)及び(240)の間でコーディングされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(250)は、回線交換及び/又はパケット交換チャネル内のデータを交換することができる。代表的なネットワークには、テレコミュニケーションネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットが含まれる。本説明の目的のためには、以下に説明しない限り、ネットワーク(250)のアーキテクチャ及びトポロジーは本発明の操作には重要ではない。
【0031】
図3は、開示された主題の適用例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTVや、CD、DVD、メモリースティック等を含むデジタルメディアへの圧縮ビデオの保存等を含む、他のビデオ対応アプリケーションに等しく適用することができる。
【0032】
ストリーミングシステムは、例えば、非圧縮のビデオ画像(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がある。例えば、開発中のビデオコーディング規格は、汎用ビデオコーディング(VVC)として非公式に知られている。開示された主題は、VVCのコンテキストで使用され得る。
【0033】
電子デバイス(320)及び(330)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(320)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(330)は、ビデオエンコーダ(図示せず)も含むことができる。
【0034】
図4は、本開示の一実施形態によるビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子デバイス(430)に含まれることができる。電子デバイス(430)は、受信器(431)(例えば、受信回路)を含むことができる。ビデオデコーダ(410)は、
図3の例のビデオデコーダ(310)の代わりに使用されることができる。
【0035】
受信器(431)は、ビデオデコーダ(410)によってデコードされるべき1つ以上のコーディングされたビデオシーケンスを受信することができ、同一又は別の実施形態では、一度に1つのコーディングされたビデオシーケンスを受信することができ、その際、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(401)から受信することができ、このチャネルは、エンコードされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る。受信器(431)は、エンコードされたビデオデータを、他のデータ、例えばコーディングされたオーディオデータ及び/又は付随的なデータストリームと共に受信することができ、これらのデータは、それぞれのエンティティ(図示せず)を使用して転送され得る。受信器(431)は、コーディングされたビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(415)が、受信器(431)とエントロピーデコーダ/パーサ(420)(以後「パーサ(420)」)との間に結合され得る。特定の用途では、バッファメモリ(415)はビデオデコーダ(410)の一部である。他の場合には、ビデオデコーダ(410)の外側にあることができる(図示せず)。さらに別の場合には、例えばネットワークジッタに対抗するために、ビデオデコーダ(410)の外側にバッファメモリ(図示せず)が存在することができ、さらに、例えば再生タイミングを処理するために、ビデオデコーダ(410)の内側に別のバッファメモリ(415)が存在することもできる。受信器(431)が、十分な帯域幅及び制御可能性の記憶/転送デバイスから、又は、アイソクロナスネットワークから、データを受信している場合、バッファメモリ(415)は不要であるか、又は小さくてもよい。インターネット等のベストエフォート型パケットネットワークでの使用のために、バッファメモリ(415)は、必要とされ、比較的大きく、有利に適応サイズであり得、ビデオデコーダ(410)の外側のオペレーティングシステム又は類似の要素(図示せず)に少なくとも部分的に実装され得る。
【0036】
ビデオデコーダ(410)は、コーディングされたビデオシーケンスからシンボル(421)を再構成するためのパーサ(420)を含み得る。これらのシンボルのカテゴリは、ビデオデコーダ(410)の動作を管理するために使用される情報、及び、
図4に示されているように、電子デバイス(430)の不可欠な部分ではないが、電子デバイス(430)に結合され得るレンダリングデバイス(412)(例えば、表示スクリーン)等のレンダリングデバイスを制御する潜在的な情報を含む。(複数の)レンダリングデバイスの制御情報は、付加拡張情報(SEIメッセージ)又はビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の携帯であり得る。パーサ(420)は、受信されるコーディングされたビデオシーケンスをパースし/エントロピーデコードすることができる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は標準に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト感度を伴う又は伴わない算術コーディングなどを含む種々の原理に従うことができる。パーサ(420)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つに対するサブグループパラメータのセットを、コーディングされたビデオシーケンスから抽出し得る。サブグループは、画像グループ(GOP)、画像、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等を含み得る。パーサ(420)はまた、変換係数、量子化パラメータ値、モーションベクター等の情報を、コーディングされたビデオシーケンスから抽出し得る。
【0037】
パーサ(420)は、シンボル(421)を生成するように、バッファメモリ(415)から受信したビデオシーケンスに、エントロピーデコード/パース操作を実行し得る。
【0038】
シンボル(421)の再構成は、コーディングされたビデオ画像又はその部分のタイプ(例えば、画像間及び画像内、ブロック間及びブロック内)及び他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットが、どのように含まれているかは、パーサ(420)によってコーディングされたビデオシーケンスからパースされたサブグループ制御情報によって制御されることができる。パーサ(420)と以下の複数ユニットとの間のかかるサブグループ制御情報のフローは、明確さのために図示されていない。
【0039】
すでに述べた機能ブロックの他に、ビデオデコーダ(410)は、概念的に、以下に説明するように、いくつかの機能ユニットに分割されることができる。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示された主題を説明するの目的で、以下の機能単位に概念的に細分化することが適切である。
【0040】
第1ユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、量子化された変換係数、並びに、パーサ(420)から(複数の)シンボルとして、使用されるべき変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力されることができるサンプル値を含むブロックを出力することができる。
【0041】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、内部コーディングされたブロックに関係することができ、すなわち、以前に再構成された画像からの予測情報を使用していないが、現在の画像の以前に再構成された部分からの予測情報を使用することができるブロックに関連付けることができる。かかる予測情報は、画像内部予測ユニット(452)によって提供されることができる。場合によっては、画像内部予測ユニット(452)は、現在の画像バッファ(458)からフェッチされた周囲の既に再構成された情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在の画像バッファ(458)は、例えば、部分的に再構成された現在の画像及び/又は完全に再構成された現在の画像をバッファする。アグリゲータ(455)は、場合によっては、サンプル毎に、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供される出力サンプル情報に加算する。
【0042】
他の場合には、スケーラ/逆変換ユニット(451)の出力サンプルは、相互コーディングに関係し、潜在的にモーション補償ブロックに関係することができる。かかる場合、モーション補償予測ユニット453は、予測に使用されるサンプルをフェッチするために参照画像メモリ457にアクセスすることができる。ブロックに関連するシンボル(421)にしたがって、フェッチされたサンプルをモーション補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(455)によって、スケーラ/逆変換ユニット(451)の出力(この場合、残留サンプル又は残留信号と称される)に加算されることができる。モーション補償予測ユニット(453)が予測サンプルをフェッチする参照画像メモリ(457)内のアドレスは、モーションベクターによって制御することができ、例えばX、Y、及び参照画像コンポーネントを有することができるシンボル(421)の形態でモーション補償予測ユニット(453)に利用可能である。モーション補償はまた、サブサンプルの正確なモーションベクターが使用されている場合に参照画像メモリ(457)からフェッチされるようにサンプル値を補間すること、モーションベクター予測機構、等を含むことができる。
【0043】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)内の種々のループフィルタリング技術を受けることができる。ビデオ圧縮技術は、ループ内フィルタ技術を含むことができ、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも称される)に含まれるパラメータによって制御され、パーサ(420)からシンボル(421)としてループフィルタユニット(456)に利用可能にされるが、コーディングされた画像又はコーディングされたビデオシーケンスの(デコード順において)前の部分のデコードの間に得られるメタ情報に応答することができると共に、以前に再構成されループフィルタリングされたサンプル値に応答することができる、ループ内フィルタ技術を含むことができる。
【0044】
ループフィルタユニット(456)の出力は、レンダリングデバイス(412)に出力されることができ、また将来の画像内部予測に使用するために参照画像メモリ(457)に記憶されることができるサンプルストリームであることができる。
【0045】
コーディングされた画像は、一旦完全に再構成されると、将来の予測のための参照画像として使用されることができる。例えば、一旦現在の画像に対応するコーディング画像が完全に再構成され、(例えば、パーサ(420)によって)コーディングされた画像が参照画像として識別されると、現在の画像バッファ(458)は参照画像メモリ(457)の一部となることができ、新たな現在画像バッファは、後続のコーディング画像の再構成を開始する前に再割当てされ得る。
【0046】
ビデオデコーダ(410)は、ITU-T Rec.H.265.等の標準の所定のビデオ圧縮技術にしたがってデコーディング操作を実行し得る。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスが、ビデオ圧縮技術若しくは標準の構文、及び、ビデオ圧縮技術若しくは標準に文書化されているプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術又は標準によって特定された構文に適合し得る。具体的には、プロファイルは、特定のツールを、そのプロファイルの下で使用できる唯一のツールとして、ビデオ圧縮技術又は標準で使用可能なすべてのツールから選択することができる。また、コンプライアンスのために必要なことは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルによって定義される範囲内にあることであり得る。場合によっては、レベルは、最大画像サイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照画像サイズなどを制限する。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD:Hypothetical Reference Decoder)の仕様と、コーディングされたビデオシーケンスでシグナリングされるHRDバッファ管理のメタデータによってさらに制限され得る。
【0047】
一実施形態では、受信器(431)は、エンコードされたビデオと共に追加の(冗長な)データを受信することができる。追加データは、コーディングされた(複数の)ビデオシーケンスの部分として含まれ得る。追加のデータは、データを適切にデコードするため、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(410)によって使用され得る。追加のデータは、例えば、時間的、空間的、又は信号雑音比(SNR)拡張層、冗長スライス、冗長画像、前方エラー補正コードなどの形態であり得る。
【0048】
図5は、本開示の一実施形態によるビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信器(540)(例えば、送信回路)を含む。
図3の例のビデオエンコーダ(303)の代わりに、ビデオエンコーダ(503)を用いることができる。
【0049】
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によってコーディングされる(複数の)ビデオ映像を捕捉することができるビデオソース(501)(
図5の例では電子デバイス(520)の一部ではない)からビデオサンプルを受信し得る。別の例では、ビデオソース(501)は、電子デバイス(520)の一部である。
【0050】
ビデオソース(501)は、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 Y CrCB、RGB、...)、及び任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形態で、ビデオエンコーダ(503)によってコーディングされるべきソースビデオシーケンスを提供し得る。メディア配信システムにおいて、ビデオソース(501)は、予め準備されたビデオを記憶する記憶デバイスであり得る。ビデオ会議システムでは、ビデオソース(501)は、局所映像情報をビデオシーケンスとして捕捉するカメラであり得る。ビデオデータは、シーケンスで見たときにモーションをもたらす複数の個々の画像として提供され得る。画像自体は、ピクセルの空間アレイとして組織化されることができ、各ピクセルは、使用中のサンプリング構造、色空間等に応じて、1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0051】
一実施形態によれば、ビデオエンコーダ(503)は、ソースビデオシーケンスの画像を、リアルタイムで、又はアプリケーションによって要求される任意の他の時間制約下で、コーディングされたビデオシーケンス(543)にコーディングし、圧縮し得る。適切なコーディングレートを実現することは、コントローラ(550)の一つの機能である。いくつかの実施形態において、コントローラ(550)は、以下に記載されるように、他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。結合は、明確性のために示されていない。コントローラ(550)によって設定されるパラメータは、レート制御関連パラメータ(画像スキップ、量子化器、レート歪み最適化技術のラムダ値、...)、画像サイズ、画像グループレイアウト、最大動きベクトルサーチレンジ等を含むことができる。コントローラ(550)は、特定のシステム設計のために最適化されたビデオエンコーダ(503)に関連する他の適切な機能を有するように構成されることができる。
【0052】
いくつかの実施形態では、ビデオエンコーダ(503)は、コーディングループで動作するように構成される。過剰に単純化された説明として、一例において、コーディングループは、(例えば、コーディングされるべき入力画像及び参照画像に基づいて、シンボルストリーム等のシンボルを生成する責任を担う)ソースコーダ(530)と、ビデオエンコーダ(503)に埋め込まれた(ローカル)デコーダ(533)とを含むことができる。デコーダ(533)は、(シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮が、開示された主題において考慮されたビデオ圧縮技術において可逆的であるように)、(リモート)デコーダも作成するのと同様の方法で、シンボルを再構成してサンプルデータを作成する。再構成されたサンプルストリーム(サンプルデータ)は、参照画像メモリ(534)に入力される。シンボルストリームのデコーディングは、デコーダロケーション(ローカル又はリモート)に依存しないビットイクザクトな結果(bit-exact results)をもたらすので、参照画像メモリ(534)中の内容もまた、ローカルエンコーダとリモートエンコーダとの間でビットイクザクトである。換言すれば、エンコーダの予測部分は、デコーダがデコード中に予測を使用するときに「見る」のとまったく同じサンプル値を参照画像サンプルとして「見る」。参照画像同期性のこの基本原理(及び、例えばチャンネルエラーのために、同期性が維持できない場合の結果として生じるドリフト)は、いくつかの関連技術においても同様に使用される。
【0053】
「ローカル」デコーダ(533)の動作は、ビデオデコーダ(410)等の「リモート」デコーダと同じであることができ、これは、
図4と関連して詳細に既に上述したとおりである。しかしながら、
図4も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(545)及びパーサ(420)によるコーディングビデオシーケンスへのシンボルのコーディング/デコーディングが可逆的であることができるので、バッファメモリ(415)を含むビデオデコーダ(410)のエントロピーデコーディング部分及びパーサ(420)は、ローカルデコーダ(533)に完全には実装されない場合がある。
【0054】
この点で行うことができる観察は、デコーダ内に存在するパース/エントロピーデコードを除く任意のデコーダ技術もまた、対応するエンコーダ内に実質的に同一の機能的形態で存在する必要があることである。この理由のために、開示された主題はデコーダ動作に焦点を当てる。エンコーダ技術の記述は、総合的に記述されたデコーダ技術の逆であるため、省略することができる。特定の分野においてのみ、より詳細な説明が必要であり、以下に提供される。
【0055】
動作中に、いくつかの例において、ソースコーダ(530)は、「参照画像」として指定されたビデオシーケンスからの1つ以上の、先行してコーディングされた画像を参照して入力画像を予測的にコーディングする、モーション補償予測コーディングを実行し得る。このようにして、コーディングエンジン(532)は、入力画像のピクセルブロックと、入力画像に対する(複数の)予測参照として選択され得る(複数の)参照画像のピクセルブロックとの間の差をコーディングする。
【0056】
ローカルビデオデコーダ(533)は、ソースコーダ(530)によって生成されたシンボルに基づいて、参照画像として指定され得る画像のコーディングされたビデオデータをデコードし得る。コーディングエンジン(532)の動作は、有利には、非可逆プロセスであり得る。コーディングされたビデオデータがビデオデコーダ(
図5には示されていない)でデコードされ得る場合、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(533)は、参照画像上でビデオデコーダによって実行され、参照画像キャッシュ(534)に記憶されるべき再構成された参照画像を生じさせ得るデコーディング処理を繰り返す。このようにして、ビデオエンコーダ(503)は、遠位端ビデオデコーダによって得られるであろう再構成された参照画像として、共通のコンテンツを有する再構成された参照画像のコピーをローカルに記憶することができる。
【0057】
予測器(535)は、コーディングエンジン(532)について予測サーチを実行し得る。すなわち、コーディングされるべき新しい画像について、予測器(535)は、新しい画像についての適切な予測参照として役立ち得る、参照画像動きベクトル、ブロック形状等の特定のメタデータ、又は、サンプルデータ(参照ピクセルブロックの候補として)、について参照画像メモリ(534)をサーチし得る。予測器(535)は、適切な予測参照を見出すために、サンプルブロック毎に動作し得る。場合によっては、予測器(535)によって得られたサーチ結果によって決定されるように、入力画像は、参照画像メモリ(534)に記憶された複数の参照画像から引き出された予測参照を有し得る。
【0058】
コントローラ(550)は、例えば、ビデオデータをエンコードするために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(530)のコーディング操作を管理し得る。
【0059】
上述した機能ユニットの全ての出力は、エントロピーコーダ(545)におけるエントロピーコーディングを受け得る。エントロピーコーダ(545)は、ハフマンコーディング、可変長コーディング、算術コーディング等の技術にしたがって、シンボルを可逆的に圧縮することによって、種々の機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0060】
送信器(540)は、エントロピーコーダ(545)によって作成されたコーディングされたビデオシーケンスをバッファすることができ、エンコードされたビデオデータを記憶するだろう記憶デバイスへのハードウェア/ソフトウェアリンクであり得る通信チャネル(560)を経由した送信のために用意する。送信器(540)は、ビデオコーダ(503)からのコーディングされたビデオデータを、例えばコーディングされたオーディオデータ及び/又は補助的なデータストリーム(図示せず)等の、送信されるべき他のデータとともにマージし得る。
【0061】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理し得る。コーディングの間、コントローラ(550)は、各コーディングされた画像に、特定のコーディングされた画像タイプを割り当てることができ、これは、各画像に適用され得るコーディング技術に影響を及ぼし得る。例えば、画像は、しばしば、次の画像タイプの1つとして割り当てられる:
【0062】
イントラ画像(I画像)は、予測ソースとしてシーケンス内の他の画像を使用することなく、コーディングされ、デコードされ得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」:Independent Decoder Refresh)画像を含む、異なるタイプのイントラ画像を許容する。当業者は、I画像のこれらの変形例、並びにそれらのそれぞれの用途及び特徴を認識している。
【0063】
予測画像(P画像)は、各ブロックのサンプル値を予測するために、最大で1つの運動ベクトルと参照インデックスを用いるインター予測又はイントラ予測を使用して、コーディングされ、デコードされ得るものであり得る。
【0064】
双方向(bi-directionally)予測画像(B画像)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルと参照インデックスを用いるインター予測又はイントラ予測を使用して、コーディングされ、デコードされ得るものであり得る。同様に、複数の予測画像は、1つのブロックの再構成のために、2つ以上の参照画像及び関連するメタデータを使用することができる。
【0065】
ソース画像は、通常、空間的に複数のサンプルブロック(例えば、4×4、8×8、4×8、又は16×16の各サンプルのブロック)に分割され、ブロック毎にコーディングされる。ブロックは、ブロックのそれぞれの画像に適用されるコーディング割り当てによって決定された、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、I画像のブロックは、非予測的にコーディングされるか、又は、それらは、同じ画像の既にコーディングされたブロック(空間的予測又はインター予測)を参照して予測的にコーディングされ得る。P画像の画素ブロックは、先行してコーディングされた一つの参照画像を参照して、空間的予測又は時間的予測を介して予測的にコーディングされ得る。B画像のブロックは、1つ又は2つの、先行してコーディングされた参照画像を参照して、空間的予測を介して、又は時間的予測を介して予測的にコーディングされ得る。
【0066】
ビデオエンコーダ(503)は、所定のビデオコーディング技術又はITU-T Rec.H.265.等の標準にしたがってコーディング操作を実行し得る。その操作において、ビデオエンコーダ(503)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を活用する予測コーディング操作を含む種々の圧縮操作を実行し得る。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術又は標準によって指定された構文に適合し得る。
【0067】
一実施形態では、送信器(540)は、エンコードされたビデオと共に追加データを送信し得る。ソースコーダ(530)は、コーディングされたビデオシーケンスの一部としてかかるデータを含むことができる。追加のデータは、時間的/空間的/SNR強調レイヤーや、他の形式の冗長データ、例えば冗長画像及びスライス、SEIメッセージ、VUIパラメータセットフラグメント等を含み得る。
【0068】
ビデオは、時間シーケンスにおいて複数のソース画像(ビデオ画像)として捕捉され得る。画像内予測(Intra-picture prediction)(しばしば、イントラ予測と略される)は、所与の画像における空間的相関を使用し、画像間予測又はインター予測(inter-picture prediction)は、画像間の(時間的又は他の)相関を使用する。一例では、現在画像と称されるコーディング/デコーディング中の特定の画像は、ブロックに分割される。現在画像内のブロックが、ビデオ内の、先行してコーディングされ、まだバッファされている参照画像内の参照ブロックに類似する場合、現在の画像内ブロックは、動きベクトルと称されるベクトルによってコーディングされ得る。動きベクトルは、参照画像内の参照ブロックを指し、複数の参照画像が使用されている場合には、参照画像を識別する第3次元を有することができる。
【0069】
いくつかの実施形態において、双方向予測技術(bi-prediction technique)は、画像間予測において使用され得る。双方向予測技術によれば、ビデオ内の現在画像に対してデコード順では両方とも先行する(ただし、表示順序では、それぞれ過去及び未来であり得る)第1参照画像及び第2参照画像等の2つの参照画像が使用される。現在画像内のブロックは、第1参照画像内の第1参照ブロックを指す第1動きベクトルと、第2参照画像内の第2参照ブロックを指す第2の動きベクトルとによってコーディングされることができる。ブロックは、第1参照ブロックと第2参照ブロックとの組み合わせによって予測されることができる。
【0070】
さらに、コーディング効率を改善するために、画像間予測にマージモード技術を使用することができる。
【0071】
本開示のいくつかの実施形態によれば、画像間予測及び画像内予測等の予測は、ブロックの単位で実行される。例えば、HEVC標準によれば、ビデオ画像シーケンス中の画像は、圧縮のためにコーディングツリーユニット(CTU)に仕切られ、画像中のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセル等の、同じサイズを有する。一般に、CTUは、1つのルマCTB(one luma CTB)と2つのクロマCTB(two chroma CTBs)である3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つ又は複数のコーディング単位(CU)に再帰的に4分木分割することができる。例えば、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ピクセル等、ピクセルに対する値(例えば、ルマ値)の行列を含む。
【0072】
図6は、本開示の別の実施形態によるビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、ビデオ画像シーケンス内の現在ビデオ画像内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックをコーディングされたビデオシーケンスの一部であるコーディングされた画像にエンコードするように構成されている。一実施例では、ビデオエンコーダ(603)は、
図3の例のビデオエンコーダ(303)の代わりに使用される。
【0073】
HEVCの例では、ビデオエンコーダ(603)は、8×8サンプルの予測ブロック等の処理ブロックに対するサンプル値のマトリックスを受信する。ビデオエンコーダ(603)は、処理ブロックが、例えばレート歪み最適化を使用して、イントラモード、インターモード、又は双方向予測モードを使用して、最良にコーディングされるかどうかを決定する。処理ブロックがイントラモードでコーディングされる場合、ビデオエンコーダ(603)は、処理ブロックをコーディングされた画像にエンコードするためにイントラ予測技術を使用し得、処理ブロックがインターモード又は双方向予測モードでコーディングされる場合、ビデオエンコーダ(603)は、処理ブロックをコーディングされた画像にコーディングするために、それぞれ、インター予測技術又は双方向予測技術を使用し得る。特定のビデオコーディング技術では、マージモードは、予測器外部のコーディングされた動きベクトル成分の利益なしに、動きベクトルが1つ以上の動きベクトル予測器から導出される画像間予測サブモードであり得る。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一実施形態では、ビデオエンコーダ(603)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)等の他の構成要素を含む
【0074】
図6の例では、ビデオエンコーダ(603)は、
図6に示すように一緒に結合されたエントロピーエンコーダ(625)と、インターエンコーダ(630)と、イントラエンコーダ(622)と、残差計算器(623)と、スイッチ(626)と、残差エンコーダ(624)と、汎用コントローラ(621)と、を含む。
【0075】
インターエンコーダ(630)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照画像内の1つ以上の参照ブロックと比較し(例えば、先行する画像内及び後の画像内のブロック)、インター予測情報(例えば、インターエンコーディング技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、任意の適切な技術を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照画像は、エンコードされたビデオ情報に基づいてデコードされた、デコードされた参照画像である。
【0076】
イントラエンコーダ(622)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、ブロックを、同じ画像内で既にコーディングされたブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラコーディング技術に従ったイントラ予測方向情報)も生成するように構成されている。一実施例では、イントラエンコーダ(622)はまた、同じ画像内のイントラ予測情報及び参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0077】
汎用制御デバイス(621)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(603)の他の構成要素を制御するように構成される。一実施形態では、汎用コントローラ(621)は、ブロックのモードを決定し、そのモードに基づいてスイッチ(626)に制御信号を供給する。例えば、モードがイントラモードの場合、汎用コントローラ621は、スイッチ626を制御して、残差計算器623が使用するイントラモードの結果を選択し、エントロピーエンコーダ625を制御して、イントラ予測情報を選択し、ビットストリームにイントラ予測情報を含め、モードがインターモードの場合、汎用コントローラ621は、スイッチ626を制御して、残差計算器623が使用するインター予測結果を選択し、エントロピーエンコーダ625を制御して、インター予測情報を選択し、ビットストリームにインター予測情報を含める。
【0078】
残差計算器(623)は、受信されたブロックと、イントラエンコーダ(622)又はインターエンコーダ(630)から選択された予測結果との差(残差データ)を計算するように構成される。残差エンコーダ(624)は、残差データに基づいて動作し、残差データをエンコードして変換係数を生成するように構成される。一実施例では、残差エンコーダ(624)は、残差データを空間ドメインから周波数ドメインにコンバートし、変換係数を生成するように構成される。その後、変換係数は、量子化処理にかけられ、量子化された変換係数を得る。様々な実施形態では、ビデオエンコーダ(603)は、残差デコーダ(628)も含む。残差デコーダ(628)は、逆変換を実行し、デコードされた残差データを生成するように構成される。デコードされた残差データは、イントラエンコーダ(622)及びインターエンコーダ(630)によって適切に使用されることができる。例えば、インターエンコーダ(630)は、デコードされた残差データ及びインター予測情報に基づいてデコードされたブロックを生成することができ、イントラエンコーダ(622)は、デコードされた残差データ及びイントラ予測情報に基づいてデコードされたブロックを生成することができる。デコードされたブロックは、いくつかの例では、デコードされた画像を生成するために適切に処理され、デコードされた画像は、メモリ回路(図示せず)内でバッファされ、参照画像として使用され得る。
【0079】
エントロピーエンコーダ(625)は、エンコードされたブロックを含むようにビットストリームをフォーマットするように構成されている。エントロピーエンコーダ(625)は、HEVC標準のような適切な標準に従った種々の情報を含むように構成される。一実施例では、エントロピーエンコーダ(625)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及びビットストリーム内の他の適切な情報を含むように構成される。開示された主題にしたがって、インターモード又は双方向予測モードのいずれかのマージサブモードにおけるブロックをコーディングする場合、残差情報は存在しないことに留意されたい。
【0080】
図7は、本開示の別の実施形態によるビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、コーディングされたビデオシーケンスの一部であるコーディングされた画像を受信し、コーディングされた画像をデコードして再構成画像を生成するように構成されている。一実施形態では、ビデオデコーダ(710)は、
図3の実施形態のビデオデコーダ(310)の代わりに使用される。
【0081】
図7の実施例では、ビデオデコーダ(710)は、
図7に示すように一緒に結合されたイントラデコーダ(772)と、エントロピーデコーダ(771)と、インターデコーダ(780)と、残差デコーダ(773)と、再構成モジュール(774)と、及びを含む。
【0082】
エントロピーデコーダ(771)は、コーディングされた画像から、そのコーディング画像を作成する(of which the coded picture is made up)構文要素を表す特定のシンボルを再構成するように構成することができる。かかるシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双方向予測モード、マージサブモード又は別のサブモードにおけるインターモード、双方向予測モード等)、予測情報(例えば、イントラ予測情報又はインター予測情報)を含むことができ、それらは、イントラデコーダ(722)又はインターデコーダ(780)によって、それぞれ使用される特定のサンプル又はメタデータ、例えば量子化された変換係数の形態の残差情報等、を識別することができる。一実施例として、予測モードがインターモード又は双方向予測モードである場合には、インター予測情報がインターデコーダ(780)に提供され、予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラデコーダ(772)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(773)に提供される。
【0083】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0084】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0085】
残差デコーダ(773)は、逆量子化変換係数(de-quantized transform coefficients)を抽出するために逆量子化を実行し、逆量子化変換係数を処理して残差を周波数領域から空間領域にコンバートするように構成される。残差デコーダ(773)はまた、特定の制御情報(量子化器パラメータ(QP)を含む)を必要とすることがあり、その情報は、エントロピーデコーダ(771)によって提供され得る(データパスは、低ボリューム制御情報のみであるため、図示されていない)。
【0086】
再構成モジュール(774)は、空間領域において、残差デコーダ(773)による出力としての残差と、(場合によってはインター又はイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構成ブロックを形成するように構成され、これは、再構成画像の一部であり得、したがって、再構成ビデオの一部であり得る。デブロッキング等の他の適切な操作を行って、視覚品質を改善することができることに留意されたい。
【0087】
なお、ビデオエンコーダ(303)、(503)及び(603)と、ビデオデコーダ(310)、(410)、及び(710)とは、任意の適切な技術を用いて実現することができる。一実施形態では、ビデオエンコーダ(303)、(503)及び(603)と、ビデオデコーダ(310)、(410)及び(710)とは、1つ以上の集積回路を使用して実装され得る。別の実施形態では、ビデオエンコーダ(303)、(503)及び(503)と、ビデオデコーダ(310)、(410)、及び(710)とは、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実現することができる。
【0088】
II. イントラブロックコピー
【0089】
ブロックは、異なる又は同一の画像からの参照ブロックを使用してコーディングされることができる。異なる画像からの参照ブロックを用いたブロックベースの補償は、動き補償と称されることができる。同一画像内の、先行して再構成されたエリアからの参照ブロックを用いたブロックベース補償は、イントラ画像ブロック補償、現在画像参照(CPR:current picture referencing)、又はイントラブロックコピー(IBC:intra block copy)と称されることができる。現在のブロックと参照ブロックとの間のオフセットを示す変位ベクトルは、ブロックベクトル(略してBV又はbvL)と称されることができる。任意の値(xまたはy方向のいずれかで正または負)の動き補償の動きベクトルとは異なり、BVは、参照ブロックがすでに再構築され、その再構築されたサンプルが利用可能である。いくつかの実施形態では、並列処理の制約を考慮して、特定の境界(例えば、タイル境界または波面ラダー形状境界)を超える参照領域が除外される
【0090】
BVのコーディングは、明示的又は暗示的(explicit or implicit)のいずれかである。明示的モードでは、BVとその予測子の違いは、インターコーディングの高度な動きベクトル予測(AMVP)モードと同様の方法でシグナリングされることができる。暗示的モードでは、BVは、たとえばマージモードの動きベクトルと同様の方法で、予測子のみからリカバーされることができる。一部の実装では、BVの解像度は整数位置に設定され、又は一部の実施例では、小数位置に設定される。
【0091】
ブロックレベルでのIBCの使用は、ブロックレベルフラグ(又はIBCフラグ)を用いてシグナリングすることができる。いくつかの実施形態において、このフラグは、現在のブロックがマージモードでコーディングされていない場合にシグナリングされる。他の例では、このフラグは、例えば、現在のデコードされた画像を参照画像として扱うことによって、参照インデックスアプローチによってシグナリングすることができる。かかる参照画像は、HEVCスクリーンコンテンツコーディング(HEVC SCC)等の、リストの最後の位置に配置されることができる。この特別な参照画像は、デコードされた画像バッファ(DPB)内の他の時間的参照画像と共に管理される。
【0092】
IBCの一実施形態が、本開示の一実施例として使用されるが、本開示の一実施形態は、IBCの変形例に適用されることができる。IBCの変形例には、例えば、イントラ予測又はインター予測モードとは異なる第3のモードとしてIBCを扱うことが含まれる。したがって、マージモード及びAMVPモードにおけるブロックベクトル予測は、通常のインターモードから分離されることができる。例えば、独立したマージ候補リストをIBCモード用に定義/作成することができ、この場合、リスト内のすべてのエントリはブロックベクトルである。同様に、IBC AMVPモードにおけるブロックベクトル予測リストは、ブロックベクトルのみから構成され得る。ブロックベクトル予測リストは、候補導出プロセスに関して、インターマージ候補リスト又はAMVP予測子リストと同じロジックに従うことができる。例えば、HEVC又はVVCのインターマージモードにおける5つの空間的隣接位置は、IBCがそれ自身のマージ候補リストを導出するためにアクセスされる。
【0093】
図8は、一実施形態によるIBCベースの補償を使用してコーディングされる現在の画像(800)内の電流ブロック(810)の概略図である。
図8において、現在の画像(800)が3つの行と5つの列に配置された15ブロックを含むIBCベースの補償を使用する例が示されている。いくつかの例では、各ブロックはCTUに対応する。現在のブロック(810)は、現在の画像(800)内の参照サブブロック(832)を指すブロックベクトル(822)を有するサブブロック(812)(例えば、CTU内のコードブロック)を含む。
【0094】
現在画像の再構成されたサンプルは、メモリ又はメモリブロック(例えば、専用の又は指定されたメモリ又はメモリの一部)に格納され得る。実装コストを考慮すると、専用メモリのメモリサイズによっては、再構築されたサンプルが参照ブロックのために利用可能なままである参照領域は、フレーム全体ほど大きくない場合がある。したがって、IBCベースの補償を使用する現在サブブロックについては、いくつかの例において、IBC参照サブブロックは、特定の隣接領域のみに限定され得るが、全体像には限定されない。
【0095】
一実施例において、メモリサイズは1CTUのサイズに制限され、これは、参照ブロックが現在のブロックと同じCTU内にある場合にのみIBCモードが用いられることができることを意味する。別の実施例では、メモリサイズは、2つのCTUのサイズに制限され、これは、参照ブロックが現在のCTU内、又は現在のCTUの左側にあるCTU内のいずれかにある場合にのみ、IBCモードが用いられることができることを意味する。参照ブロックが制約された(constrained)参照エリア(すなわち、指定されたローカルエリア)の外側にある場合、たとえそれが再構成されていても、参照サンプルはIBCベースの補償に使用されないことがある。したがって、デコーダは、回復された又は決定されたブロックベクトルが、制約された参照エリア(すなわち、有効なサーチエリア)内の参照ブロックを指すかどうかをチェックする必要があり得る。本開示の態様は、いくつかの制約を除去する方法を含み、ブロックベクトルが制約された参照エリアの外側にある参照ブロックを指す場合であっても、デコーダがブロックベクトルを変更し使用することを可能にする。
【0096】
一実施形態では、IBCで使用されるべき参照サンプルを格納するための有効なメモリ所要量は、1つのCTUサイズである。一実施例では、CTUサイズは128×128サンプルである。現在CTUは、再構成中の現在領域を含む。現在領域は、64×64サンプルのサイズを有する。参照メモリは、現在領域内の再構成されたサンプルを格納することもできるので、参照メモリサイズが128×128サンプルのCTUサイズに等しい場合、参照メモリは、64×64サンプルの3つの追加領域を格納することができる。したがって、サーチレンジは、参照サンプルを格納するための総メモリ所要量が変化しない間に(例えば、128×128サンプルの1 CTUサイズ又は合計4つの64×64参照サンプル)、先行して再構成されたCTUの特定の部分を含むことができる。
【0097】
実施例において、サーチレンジがIBC内で制限される場合、現在ブロックのBVは、現在ブロックの位置及びメモリサイズに応じて、現在CTB境界、左側隣接CTB境界等によって取り囲まれ得る。
【0098】
図9A~9Dは、本開示のいくつかの実施形態によるIBCベース補償の例を示す。
図9A~9Dを参照すると、現在の画像(901)は、再構成中の現在CTU(915)と、現在のCTU(915)の左隣である先行して再構成されたCTU(910)とを含む。現在の画像(901)内のCTUは、CTUサイズとCTU幅を有する。現在CTU (915)は4つの領域(916)~(919)を含む。同様に、先行して再構成されたCTU (910)は4つの領域(911)~(914)を含む。一実施形態では、CTUサイズは参照メモリサイズに等しい。例えば、CTUサイズ及び参照メモリサイズは128×128サンプルであり、領域(911)~(914)及び(916)~(919)のそれぞれのサイズは64×64サンプルである。
【0099】
図9Aを参照すると、現在領域(916)は再構成中である。現在領域(916)は、再構成されるべき現在ブロックを含む。いくつかの実施形態によれば、現在のブロックのためのサーチレンジは、現在領域(916)のコロケーションされたされた領域(911)を除外し、先行して再構成されたCTU(910)の領域(912)~(914)を含む。
【0100】
図9Bを参照すると、現在領域(917)は再構成中である。現在領域(917)は、再構成されるべき現在ブロックを含む。現在領域(917)は、コロケーションされた(すなわち、同じ位置に配置された)領域(すなわち、先行して再構成されたCTU (910)内の領域(912))を有する。現在のブロックのためのサーチレンジは、コロケーションされた領域(912)を除外する。サーチレンジは、先行して再構成されたCTU(910)の領域(913)及び(914)と、現在のCTU(915)の領域(916)と、を含む。さらに、サーチレンジは、参照メモリサイズ(すなわち、1CTUサイズ)の制約のため、領域(911)を除外する。
【0101】
図9Cを参照すると、現在領域(918)は再構成中である。現在領域(918)は、再構成されるべき現在ブロックを含む。現在の領域(918)は、先行して再構成されたCTU(910)内にコロケーションされた領域(すなわち、領域(913))を有する。現在ブロックのサーチレンジは、コロケーションされた領域(913)を除外する。サーチレンジは、先行して再構成されたCTU(910)の領域(914)、及び現在のCTU(915)内の領域(916)及び(917)を含む。さらに、サーチレンジは、参照メモリサイズの制約のために、領域(911)及び(912)を除外する。
【0102】
図9Dを参照すると、現在領域(919)は再構成中である。現在領域(919)は、再構成される現在ブロックを含む。現在領域(919)は、先行して再構成されたCTU (910)内にコロケーションされた領域(すなわち、領域(914))を有する。現在ブロックのためのサーチレンジは、コロケーションされた領域(914)を除外する。サーチレンジは、現在のCTU(915)内の領域(916)~(918)を含む。サーチレンジは、参照メモリサイズの制約のため、領域(911)~(913)を除外し、したがって、サーチレンジは、先行して再構成されたCTU(910)全体を除外する。
【0103】
BV及び/又はサーチレンジに様々な制約を適用することができる。一実施形態では、現在のCTUにおいて再構成中の現在ブロックのためのサーチレンジは、現在のCTU内にあるように制約される。
【0104】
一実施形態では、現在の画像は、ルマ画像(luma picture)であり、現在のCTUは、複数のルマサンプル及びブロックベクトル(mvL、1/16-pel解像度)を含むルマCTUである。いくつかの実施形態では、ルマ動きベクトルmvLは、ビットストリーム適合性について、以下の制約A1、A2、B1、C1、及びC2に従う。
【0105】
いくつかの実施態様において、第1の制約(A1)及び第2の制約(A2)は、現在のブロックのための参照ブロックが既に再構成されていることを必要とする。例えば、参照ブロックが矩形形状を有する場合、参照ブロックの左上のサンプル及び右下のサンプルが再構成されているかどうかをチェックするために、参照ブロックの可用性チェックプロセスを実施することができる。参照ブロックの左上のサンプルと右下のサンプルの両方が再構成されている場合、参照ブロックは再構成されるものと決定される。
【0106】
第1の制約(A1)において、いくつかの実施形態によれば、参照ブロック可用性のための導出プロセスが、入力として、(xCb,yCb)に等しく設定された現在ブロックの左上のサンプルの位置(xCurrr,yCurr)及び参照ブロックの左上のサンプルの位置(xCb+(mvL[0]>4)、yCb+(mvL[1]>>4))で呼び出される場合、参照ブロックの左上のサンプルが再構築されると、出力はTRUEに等しくなり、ここで、動きベクトルmvLは、x成分mvL[0]とy成分mvL[1]を持つ2次元ベクトルである。
【0107】
第2の制約(A2)において、いくつかの実施形態によれば、ブロック可用性のための導出プロセスが、入力として、(xCb,yCb)に等しく設定された現在のブロックの左上のサンプルの位置(xCurrr,yCurr)及び参照ブロックの右下のサンプルの右下のサンプルの位置(xCb+(mvL[0]>>4)+cbWidth-1,yCb+(mvL[1]>>4)+cbHeight-1)で呼び出される場合、出力は、参照ブロックの右下のサンプルが再構成されるとき、TRUEに等しい。パラメータcbWidthとcbHeightは、それぞれ参照ブロックの幅と高さを表す。
【0108】
第3の制約(B1)は、いくつかの実施例では、以下の条件のうちの少なくとも1つを含む:
1) (mvL[0]>>4)+cbWidthの値が0以下であり、これは参照ブロックが現在のブロックの左側にあり、現在のブロックとオーバーラップしないことを示す;
2) (mvL[1]>>4)+cbHeightの値が0以下であり、これは参照ブロックが現在ブロックより上方にあり、現在ブロックとオーバーラップしないことを示す。
【0109】
第4の制約条件(C1)において、いくつかの実施態様において、以下の条件が真(true)である:
(yCb+(mvL[1]>>4))>>CtbLog2SizeY=yCb>>CtbLog2SizeY (1)
(yCb+(mvL[1]>>4+cbHeight-1)>>CtbLog2SizeY=yCb>> CtbLog2Size (2)
(xCb+(mvL[0]>>4))>>CtbLog2SizeY>=xCb>>CtbLog2SizeY)-1
(3)
(xCb+(mvL[0]>>4)+cbWidth-1)>>CtbLog2SizeY<=(xCb>>CtbLog2SizeY) (4)
ここで、CtbLog2SizeYはCTU幅をlog2形式で表す。例えば、CTU幅が128サンプルの場合、CtbLog2SizeYは7である。式(1) 及び(2)は、参照ブロックを含むCTUが、現在CTUと同じCTU行内にある(すなわち、参照ブロックが先行して再構成されたCTU(1010)内にある場合、先行して再構成されたCTU(1010)は現在CTU(1015)と同じ行内にあること)ことを特定する。式 (3)及び(4)は、参照ブロックを含むCTUが、現在CTUの左側のCTU列、又は現在CTUと同じCTU列のいずれかにあることを特定する。式(1)~(4)で記載される第4の制約は、参照ブロックを含むCTUが、現在CTU、又は現在のCTUの左隣接CTUのいずれかであることを特定する。
【0110】
いくつかの実施態様において、第5の制約(C2)は、参照ブロックが現在CTUの左隣接部にある場合、参照ブロックのためのコロケーションされた領域は再構成されない(すなわち、コロケーションされた領域内のサンプルは再構成されていない)ことを含む。さらに、参照ブロックに対するコロケーションされた領域は、現在CTU内にある。
【0111】
実施例において、第5の制約は、下記のように特定されることができる:
(xCb+(mvL[0]>>4))>>CtbLog2SizeYが(xCb>>CtbLog2SizeY)-1に等しい場合、参照ブロック可用性の導出プロセスは、入力として、(xCb,yCb)に等しく設定された現在ブロックの位置(xCurr,yCurr)と、(((xCb+(mvL[0]>>4)+CtbSizeY)>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1),((yCb+(mvL[1]>>4))>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1))の位置と、で呼び出され、出力は、コロケーション領域(collocated region)が再構成されないことを示すFALSEに等しい。
【0112】
上記の式において、xCb及びyCbは、それぞれ現在ブロックのx及びy座標である。変数cbHeightとcbWidthは、それぞれ現在ブロックの高さと幅である。変数mvL0[0]及び変数mvL0[1]は、それぞれブロックベクトルmvL0のx及びy成分を表す。サーチレンジ及び/又はブロックベクトルに対する制約は、上述の第1、第2、第3、第4、及び第5の制約の適切な組み合わせを含むことができる。一実施例では、第1、第2、第3、第4、及び/又は第5制約を変更することができる。
【0113】
III. 空間的マージ候補
【0114】
図10は、一実施形態による、現在ブロック(1010)の空間マージ候補位置の例を示す。最大4つのマージ候補が選択されることができ、
図10に示す候補位置の中から導出されることができる。導出の順序は、一実施例において、A0、B0、B1、A1及びB2であり得る。一実施例では、位置B2は、位置A0、B0、B1、及びA1の任意のCUが使用不可能であるか、又はイントラコーディングされている場合にのみ考慮される。一実施例では、ある位置のCUは、そのCUが別のスライス又はタイルに属する場合、利用できないことがある。
【0115】
IV. 履歴ベースのマージ候補の導出
【0116】
いくつかの実施形態では、履歴ベースの動きベクトル予測(HMVP)マージ候補が、空間的及び時間的な候補MVPの後、現在のCUの拡張マージリストに追加される。HMVPでは、先行してコーディングされたブロックの動き情報をテーブル(又は履歴バッファ)に格納し、現在CUのMVP候補として使用することができる。かかる動き情報は、HMVP候補と呼ばれる。複数のHMVP候補を有するテーブルは、エンコード又はデコードプロセスの間、維持される。一実施例では、テーブルは、新しいCTU行が検出された場合、リセット(空に)されることができる。一実施形態において、非サブブロックインターコーディングCUが存在する場合はいつでも、関連する動き情報は、新たなHMVP候補として、テーブルの最後のエントリに追加されることができる。
【0117】
一実施形態では、Sで示されるHMVPテーブルのサイズは、6に設定される。したがって、最大6個のHMVP候補がテーブルに追加される可能性がある。一実施形態において、新たな動き候補をテーブルに挿入するとき、制約付き先入先出(FIFO)ルールを利用することができる。 さらに、新たなHMVP候補を追加するときに、テーブルに同一のHMVPがあるかどうかを確認するために、冗長性チェックを適用することができる。テーブル内に同一のHMVPが見つかった場合、同一のHMVP候補がテーブルから削除され、削除されたHMVP候補に続くすべてのHMVP候補が前に移動され得る。その後、新たなHMVP候補をテーブルの最後に追加されることができる。
【0118】
一実施形態では、HMVP候補は、拡張マージ候補リスト構築プロセスにおいて使用される。一実施形態では、テーブル内のいくつかの新たに追加されたHMVP候補は、順番にチェックされ、TMVP候補の後の位置で拡張候補リストに挿入されることができる。冗長性チェックは、HMVP候補が、先行して拡張マージリストに追加された空間的又は時間的マージ候補と類似しているか、又は同一であるかどうかを決定するために適用され得る。
【0119】
HMVP候補はまた、AMVP候補リスト構築プロセスで使用されることもできる。テーブル内の最後のK HMVP候補の動きベクトルをTMVP候補の後に挿入した。AMVP候補リストの構築には、AMVPターゲット参照画像と同じ参照画像を有するHMVP候補のみが使用される。プルーニング(Pruning)はHMVP候補に適用される。用途によっては、AMVPリストサイズが変更されない、すなわち、2に等しいまま、Kが4に設定される場合があります。
【0120】
冗長性チェック操作の数を減らすために、以下の簡略化を実施形態に導入する:
(i) 拡張マージリストの生成に使用されるHMPV候補の数は、(N<=4)?M:(8-N)として設定され、ここで Nは、拡張マージリスト内の既存の候補の数を示し、Mは、履歴テーブル内の使用可能なHMVP候補の数を示す。
(ii) 拡張マージリスト内の利用可能なマージ候補の総数が、最大許容マージ候補から1を引いた数に達すると、HMVPからのマージ候補リスト構築プロセスが終了する。
【0121】
いくつかの実施形態によれば、IBCがインターモードとは別のモードとして動作する場合、HBVPと呼ばれる別の履歴バッファを使用して、先行してコーディングされたIBCブロックベクトルを格納することができる。相互予測とは別のモードとして、IBCモードのための単純化ブロックベクトル導出プロセスを持つことが望ましい。AMVPモードでのIBC BV予測の候補リストは、IBCマージモード(マージ候補リスト)で使用される候補リストと、2つの空間候補+5つのHBVP候補とが共有される場合があります。
【0122】
IBCモードのマージ候補リストサイズはMaxNumMergeCandとして割り当てることができる。MaxNumMergeCandは、いくつかの例では6_minus_max_num_merge_candとして指定されている、モード間マージ候補リストサイズMaxNumMergeCandによって決定され得る。変数 6_minus_max_num_merge_candは、6から差し引いたスライスでサポートされるマージ動きベクトル予測(MVP)候補の最大数を指定することができます。
【0123】
いくつかの実施例では、マージMVP候補の最大数、MaxNumMergeCandは以下のように導出される:
MaxNumMergeCand=6-six_minus_max_num_merge_cand
【0124】
MaxNumMergeCandの値は1~6の範囲であり得る。非マージモードでのBV予測は、IBCマージモードで生成されたのと同じリストを共有し得る。しかしながら、いくつかの実施例では、非マージモードの場合、候補リストサイズは常に2である。したがって、MaxNumMergeCandが種々の値に設定され、IBCマージ候補リストの最大数がインターマージ候補リストサイズと比較して異なるように設定される場合、IBCマージ候補リストサイズ及びIBC非マージモード(AMVPモード)予測リストサイズを取り扱うための適切な方法を開発する必要がある。
【0125】
V. IBCモードに対するブロックベクトルの変換/変更
【0126】
上述のように、いくつかの実施形態では、有効なデコードされたブロックベクトルに対する既存の制約は、少なくとも2つの要件を含む:
【0127】
(i) ブロックベクトルが指す参照ブロックは、完全に再構成され、且つ現在ブロックと同じコーディング領域の内側にある必要がある。同じコーディング領域は、同じタイル、又はスライス、又はタイル群等の、試料が互いに予測し得るエリアを指し得る。このタイプの制約は、可用性チェック制約と称され得る。
【0128】
(ii) ブロックベクトルが指す参照ブロックは、波動並列処理(WPP)能力、メモリ要求に対する現在CTU及び左側CTU範囲などの考慮の観点から、許容されるサーチレンジの内側である必要がある。この種の制約は、レンジ制約と称され得る。
【0129】
本開示の態様は、いくつかの制約(例えば、範囲制約、可用性検査)が除去され得るように、デコードされたブロックベクトルを変換/変更する方法を含む。この点に関して、デコーダは、ブロックベクトルがIBCモードで現在のブロックをデコードする際の要件のいくつかを満たしているかどうかをチェックする必要がない場合がある。
【0130】
例えば、ビットストリーム適合性の制約は、動きベクトル(mvL)が、現在のブロックと同じCTUに完全に含まれるか又は現在のCTUと同じ高さ、128ルマサンプルに等しい幅を有する左側のブロックに完全に含まれる参照ブロックを指すことを含み得る。すなわち、以下の条件の全てが真である:
yRefTL>>CtbLog2SizeY=yCb>>CtbLog2SizeY (5)
yRefBR>>CtbLog2SizeY=yCb>>CtbLog2SizeY (6)
xRefTL>>CtbLog2SizeY>=(xCb>>CtbLog2SizeY)+Min(1,7-CtbLog2SizeY)-(1<<((7-CtbLog2SizeY)<<1))) (7)
xRefBR>>CtbLog2SizeY<=(xCb>>CtbLog2SizeY) (8)
【0131】
本開示のいくつかの実施形態にしたがってブロックベクトルが変換され/変更される場合、上記のビットストリーム適合制約(すなわち、式(5)~(8))は取り除かれることができる。
【0132】
本開示のいくつかの実施形態において、モジュロ演算は、現在CTUのサイズに基づいて、ブロックベクトルのx成分及びy成分の両方に対して実行され得、その結果、参照ブロックの左上の位置が、IBCのための予め定義されたサーチレンジ(例えば、現在のCTU又は左隣のCTU)の外側にある場合、変更されたブロックベクトルは、参照ブロックの左上コーナーをターゲットレンジ(例えば、参照メモリサイズ及び現在のCTUにおける現在ブロックの位置に基づいて、許容される/有効なサーチレンジ)内で移動し得る。一実施形態では、変更されたブロックベクトルは、ターゲットレンジ内の別の参照ブロックの左上コーナーを指すことができる。あるいは、ブロックベクトルがターゲットレンジ内の参照ブロックを指す場合、このブロックベクトルに変化(例えば、変更(modification))を与えることはできない。
【0133】
本開示の一実施形態において、無効なブロックベクトル(例えば、有効な検索範囲外)は、現在CTU内にあるように変更されてもよい。本開示の一実施形態では、ターゲットレンジが現在CTU及び左隣のCTUを含む場合、無効なブロックベクトルは、現在CTU又は左隣のCTUにあるように変更され得る。本開示の一実施形態では、ターゲットレンジは、参照サンプルメモリのサイズ及び現在画像中のCTUのサイズに応じて、現在CTU及び多数の左側CTUを含むことができる。
【0134】
一実施形態では、ブロックベクトルのx成分及びブロックベクトルのy成分は、以下の式を用いて修正され得る:
bvL[0]=xRefTL%CtbSizeY+xCurrCtuTL-xCb-((xRefCtuTL<xCurrCtuTL&&xCurrCtuTL-xRefCtuTL<=numLeftCtus*CtbSizeY)?xCurrCtuTL-xRefCtuTL:0) (9)
bvL[1]=yRefTL%CtbSizeY+yCurrCtuTL-yCb (10)
【0135】
上記の2つの式(9)及び(10)において、bvL[0]はブロックベクトルのx成分を表し、bvL[1]はブロックベクトルのy成分を表す。CtbSizeYはCTUのサイズ(例えばルマサンプル)を表し、’‘%’‘はモジュロ演算子である。モジュロ演算子は、ターゲットレンジが1つ以上の左側CTUを含む場合、CTUのサイズの倍数に基づいて実行することができます。この倍数(multiple)は、ターゲットレンジに含まれる1つ以上の左側CTUの数に対応する。例えば、ターゲットレンジが現在CTUと左隣のCTUを含む場合、倍数は2に等しくなることができ、ターゲットレンジが現在のCTUと3つの左側CTUとを含む場合、倍数は8に等しくなることができる。現在のCTUの左上位置(xCurrCtuTL,yCurrCtuTL)と、参照ブロックが(xRefCtuTL,yRefCtuTL)にあるCTUの左上の位置は、以下のように導出される:
(xCurrCtuTL,yCurrCtuTL)=((xCb>>CtbLog2SizeY)<<CtbLog2SizeY,(yCb>>CtbLog2SizeY)<<CtbLog2SizeY) (11)
(xRefCtuTL,yRefCtuTL)=((xRefTL>>CtbLog2SizeY)<<CtbLog2SizeY,(yRefTL>>CtbLog2SizeY)<<CtbLog2SizeY (12)
【0136】
さらに、式(9)の変数numLeftCtusは、現在CTUの左側CTUの数を示し、以下のように導出することができる:
numLeftCtus=(1<<((7-CtbLog2SizeY)<<1)))-Min(1,7-CtbLog2SizeY) (13)
【0137】
変更後、ブロックベクトルの解像度をストレージのために使用されるものに変えるために、シフト操作が実行され得る。ブロックベクトルの分解能をシフトする例を次に示す:
mvL〔0〕=bvL〔0〕<<4 (14)
mvL〔1〕=bvL〔1〕<<4 (15)
【0138】
本開示のいくつかの実施形態において、ブロックベクトルは、変更されることができ、結果として、変更前に位置していたCTUに対する参照ブロックのオフセットが、変更後の現在CTUに対する変更された参照ブロックのオフセットと同じになる。
この点に関して、ブロックベクトルの変更は、オフセットの変更をもたらす場合がある。オフセットは、式(9)の(xRefCtuTL<xCurrCtuTL&&xCurrCtuTL-xRefCtuTL<=numLeftCtus*CtbSizeY)と等しくなり得る。
【0139】
本開示の一実施形態では、参照ブロックの右下コーナー(xRefBR、yRefBR)は、上述の左上コーナー(xRefTL、yRefTL)と同様に修正することができる。したがって、開示の態様は、参照ブロックの上左隅だけでなく、全体の参照ブロックが現在のCTU内にあることを確実にすることができる。
【0140】
本開示の一実施形態では、クリッピング後に、ブロックベクトルが常にターゲットレンジ内の参照ブロックを指すように、クリッピング操作が行われ、デコードされたブロックベクトルを調整することができる。参照ブロックの左上の位置がIBCのための許容シーチレンジ外の場合(例えば、現在のCTU又は左隣接するCTU)、変更されたブロックベクトルは参照ブロックの左上コーナーがターゲットレンジ内に入るように、参照ブロックの左上コーナーを調整することができる。あるいは、ブロックベクトルがターゲットレンジ内の参照ブロックを指す場合には、このブロックベクトルに変化(例えば、クリッピング操作)を適用しない場合がある。
【0141】
一実施例において、ブロックベクトルのx成分又はy成分の1つがターゲットレンジ外である場合、クリッピング操作を適用することによって、参照ブロックの左上コーナーをターゲットレンジ内にクリッピングされ得る。参照ブロックの右下のコーナーは、ターゲットレンジ内にクリップされ得る。参照ブロックの左上コーナーと参照ブロックの右下コーナーの両方はターゲットレンジ内にクリップされると、参照ブロック全体がターゲットレンジ内にある。
【0142】
一実施形態では、参照ブロックの左上コーナーのy座標(ブロックベクトルによって示される)が現在CTU行の外側にある場合、ブロックベクトルは、現在CTUの頂部行(すなわち、現在のCTUの境界)にあるようにクリッピングされ得る。同様に、参照ブロックの左上コーナーのx座標(ブロックベクトルで示される)が、現在CTU又は左隣のCTUレンジ外の場合、ブロックベクトルは、現在CTUの最も左の列にクリップされ得る。したがって、結合されていないブロックベクトル(out-of-bound block vector )は、変更された参照ブロックが現在CTUの頂部行又は最も左の列のいずれかにあるように、クリップされることができる。
【0143】
他のすべての制約(例えば、上述の第1、第2、第3、及び第5の制約)は、変更されたブロックベクトルが有効であるかどうかを評価するために、依然として使用され/課され得ることに留意されたい。
【0144】
本開示の一実施形態では、以下のビットストリーム制約は、デコードされたブロックベクトルに変更(上述のクリッピング又はモジュロ操作のいずれか)を適用することによって除去され得る:
【0145】
以下の条件のいずれか又は両方が真であるものとする:
(mvL[0]>>4)+cbWidthの値が0以下である
(mvL[1]>>>4)+cbHeightの値が0以下である
【0146】
上記の条件は、参照ブロックが現在ブロックとオーバーラップしないことを保証するために使用され得る。
参照ブロックが現在のブロックとオーバーラップする場合(すなわち、両方の条件が偽である場合)、ブロックベクトルは、上記の2つの条件のうちの少なくとも1つが真になることを保証するように変更され得る。本開示の一実施形態では、デコードされたブロックベクトルに対して操作/変更が行われない場合でも、上記の2つの条件は取り除かれることができる。
【0147】
例えば、上記2つの条件のいずれかが真になることを保証するために、以下の操作を適用することができる:
(mvL[0]>>4)+cbWidth>0及び(mvL[1]>4)+cbHeight>0の場合は、以下が適用される:
mvL[0]=-cbWidth<<4
【0148】
別の例では、次の操作を適用して、上記の2つの条件の1つが真になることを確実にすることができる:
(mvL[0]>>4)+cbWidth>0及び(mvL[1]>4)+cbHeight>0の場合は、以下が適用される:
mvL[1]=-cbHeight<<4
【0149】
VI. 例示的なデコーディングプロセス
【0150】
図11は、本開示のいくつかの実施形態による、プロセス(1100)を概説するフローチャートを示す。プロセス(1100)は、現在ブロックをIBCモードでデコードする際に使用することができる。様々な実施形態では、プロセス(1100)は、端末装置(210)、(220)、(230)及び(240)における処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路などの処理回路によって実行されることができる。いくつかの実施形態では、プロセス(1100)は、ソフトウェア命令で実施され、したがって、処理回路がソフトウェア命令を実行すると、処理回路は、プロセス(1100)を実行する。プロセスは(S1101)から始まり、(S1110)に進む。
【0151】
(S1110)において、現在画像を含むコーディングされたビデオビットストリームが受信される。
【0152】
(S1120)において、現在画像に含まれる現在コーディングツリーユニット(CTU)内の現在ブロックが、イントラブロックコピー(IBC)モードでコーディングされているかどうかを、コーディングされたビデオビットストリームに含まれるフラグに基づいて決定する。フラグは、ブロックレベルでIBVの使用を示すIBCフラグであり得る。現在ブロックがIBCモードでコーディングされていないと決定される場合、
図11に示されているプロセスは終了する。
【0153】
(S1130)では、現在ブロックがIBCモードでコーディングされていると決定されていることに応答して、現在のブロックの第1参照ブロックを指すブロックベクトルを決定する。ブロックベクトルは、IBC AMVPモード又はマージモードに基づいて決定され得る。
【0154】
(S1140)において、ブロックベクトル上で操作を実行し、したがって、第1参照ブロックが完全に再構成されていないか、又は現在のブロックの有効なサーチレンジ内にない場合に、ブロックベクトルは変更されて、完全に再構成された領域内にあり且つ現在ブロックの有効なサーチレンジ内にある第2参照ブロックを指す。例えば、現在のCTUのサイズに基づいて、ブロックベクトルのx成分及びy成分のそれぞれにモジュロ操作を実行することができる。一実施形態では、ブロックベクトルのx成分及びブロックベクトルのy成分は、式(9)及び式(10)を使用して変更され得る。一実施形態では、現在CTUのサイズの倍数に基づいて、ブロックベクトルのx成分にモジュロ操作を実行する。現在CTUのサイズに基づいて、ブロックベクトルのy成分にモジュロ操作を実行する。ブロックベクトルが、完全に再構成された、現在のブロックの有効なサーチレンジ内にある参照ブロックを指す場合、実行された操作(例えば、式(9)及び式(10))は、ブロックベクトルを変更しない。その場合、第1参照ブロックは第2参照ブロックと同じである。
【0155】
(S1150)において、現在のブロックは、変更されたブロックベクトルに基づいてデコードされる。具体的には、現在のブロックは、変更されたブロックベクトルが指す第2の参照ブロック内の参照サンプルに基づいてデコードされ得る。プロセス(1100)は(S1199)に進み、(S1199)において終了する。
【0156】
VII. コンピュータシステム
【0157】
上記の技術は、コンピュータ可読命令を用いたコンピュータソフトウェアとして行うことができて、物理的に一つ以上のコンピュータ可読媒体に格納されることができる。例えば、
図12は、開示された主題の特定の実施例を実施するのに適しているコンピュータシステム(1400)を示す。
【0158】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、又は類似のメカニズムの対象となり得る任意の適切な機械コード若しくはコンピュータ言語を使用してコーディングされることができ、直接実行されることができるか、又は、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)等による、実施、マイクロコード実行等を介して実行されることができる命令を含むコードを作成する。
【0159】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、物品のインターネット等を含む種々のタイプのコンピュータ又はその構成要素上で実行されることができる。
【0160】
コンピュータシステム(1200)のための
図12に示されるコンポーネントは、例示的な性質のものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能性に関する制限を示唆することを意図するものではない。また、コンポーネントの構成は、コンピュータシステム(1200)の例示的な実施形態に示されるコンポーネントのいずれか1つ又は組み合わせに関連する依存性又は要件を有すると解釈されるべきではない
【0161】
コンピュータシステム(1200)は、特定のヒューマンインタフェース入力デバイスを含み得る。このようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スイッピング、データグローブの動き)、音声入力(例えば、音声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介して、一人又は複数の人間ユーザによる入力に応答し得る。また、ヒューマンインタフェースデバイスは、オーディオ(例えば、音声、音楽、周囲の音声)、画像(例えば、走査画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体画像を含む3次元ビデオ)等の、人間による意識的入力に必ずしも直接関係しない特定の媒体を捕捉するために用いられ得る。
【0162】
入力ヒューマンインタフェースデバイスには、次のものが1つ以上含まれ得る(それぞれ1つのみ表されている):キーボード(1201)、マウス(1202)、トラックパッド(1203)、タッチスクリーン(1210)、データグローブ(図示せず)、ジョイスティック(1205)、マイクロホン(1206)、スキャナ(1207)、カメラ(1208)。
【0163】
コンピュータシステム(1200)はまた、特定のヒューマンインタフェース出力デバイスを含み得る。かかるヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通して、1人又は複数の人間ユーザの感覚を刺激し得る。かかるヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1210)、データグローブ(図示せず)、又はジョイスティック(1205)による触覚フィードバック)、入力デバイスとして働かない触覚フィードバックデバイスであることもでき)と、オーディオ出力デバイス(例えば、スピーカー(1209)、ヘッドフォン(図示せず))と、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1210)であり、各々が触覚フィードバック能力を有するか又は有さず、各々が触覚フィードバック能力を有するか又は有さず、そのうちのいくつかは、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)等の立体出力のような手段を介して2次元視出力又は3次元以上の出力を可能にし得るもの)と、プリンタ(図示せず)と、を含み得る。
【0164】
コンピュータシステム(1200)はまた、人間がアクセス可能な記憶デバイスと、それらのアクセス可能な媒体とを含むことができ、媒体は、例えば、CD/DVD等の媒体(1221)によるCD/DVD ROM/RWを含む光学媒体ドライブ(1220)、USBメモリ(1222)、着脱可能ヘッドドライブ又はソリッドステートドライブ(1223)、テープ、フロッピーディスク(図示せず)等の従来の磁気媒体、セキュリティドングル等の特殊化されたROM/ASIC/PLDベースデバイス等である。
【0165】
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波、又は他の一時的な信号を包含しないことを理解されたい。
【0166】
コンピュータシステム(1200)はまた、1つ以上の通信ネットワークへのインタフェースを含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークは、さらに、ローカル、広域、大都市、車両及び工業、リアルタイム、遅延耐性等であり得る。ネットワークの例としては、イーサネット、無線LAN、GSM、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TV、CANBusを含む産業用及び車両用を含む。特定のネットワークは、一般に、特定の汎用データポート又は周辺バス(1249)に接続される外部ネットワークインタフェースアダプタ(例えば、コンピュータシステム(1200)のUSBポート)を必要とし、他のネットワークは、一般に、以下に説明するシステムバスに接続されることにより、コンピュータシステム(1200)のコアに統合される(、例えば、PCコンピュータシステムへのイーサネットインタフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインタフェースである)。これらのネットワークのいずれかを使用して、コンピュータシステム(1200)は、他のエンティティと通信することができる。かかる通信は、単指向性通信、受信のみ(例えば、放送テレビ)通信、単指向性送信専用(例えば、特定のCANバスデバイスへのCANバス)通信、又は、例えばローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの、双方向通信であることができる。特定のプロトコル及びプロトコルスタックは、上述のように、それらのネットワーク及びネットワークインタフェースの各々で使用されることができる。
【0167】
前述のヒューマンインタフェースデバイス、人間がアクセス可能な記憶デバイス、及びネットワークインタフェースは、コンピュータシステム(1200)のコア(1240)に接続されることができる。。
【0168】
コア(1240)は、1つ以上の中央処理デバイス(CPU)(1241)、グラフィックス処理デバイス(GPU)(1242)、フィールドプログラマブルゲートエリア(FPGA)(1243)の形態の特殊なプログラマブル処理デバイス、特定のタスクのためのハードウェアアクセラレータ(1244)等を含むことができる。これらのデバイスは、読出し専用メモリ(ROM) (1245)、ランダムアクセスメモリ(1246)、内部大容量記憶デバイス、例えば内部非ユーザアクセス可能ハードドライブ、SSD等(1247)と共に、システムバス(1248)を介して接続され得る。いくつかのコンピュータシステムでは、システムバス(1248)は、追加のCPU、GPU等による拡張を可能にするために、1つ又は複数の物理プラグの形態でアクセス可能である。周辺デバイスは、コアのシステムバス(1248)に直接接続するか、又は周辺バス(1249)を介して接続することができる。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0169】
CPU(1241)、GPU(1242)、FPGA(1243)、及びアクセラレータ(1244)は、組み合わされて、上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1245)又はRAM(1246)に格納されることができる。移行データは、RAM(1246)に格納されることもできるが、永久データは例えば内部大容量記憶デバイス(1247)に格納されことができる。1つ以上のCPU(1241)、GPU(1242)、大容量記憶デバイス(1247)、ROM(1245)、RAM(1246)等と密接に関連付けることができるキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索を可能にすることができる。
【0170】
コンピュータ可読媒体は、各種のコンピュータ実施動作(computer-implemented operations)を実行するためにその上のコンピュータコードを有することができる。メディアおよびコンピュータコードは特別に設計されたそれらであることができて、本開示のために作成されることができる、または、それらはよく公知で、コンピュータソフトウェア技術の技術を有するそれらが利用できる種類でありえる。
【0171】
一例として、限定するものではなく、アーキテクチャ(1200)、具体的にはコア(1240)を有するコンピュータシステムは、1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能性を提供することができる。かかるコンピュータ可読媒体は、コア-内部大容量記憶デバイス(1247)又はROM(1245)等の一時的でない性質のコア(1240)の特定の記憶デバイスと同様に、上述のようにユーザがアクセス可能な大容量記憶デバイスに関連する媒体であってもよい。本開示の様々な実施形態を実装するソフトウェアは、かかるデバイスに記憶され、コア(1240)によって実行され得る。コンピュータ読取可能媒体は、特定のニーズに応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(1240)及びその中の具体的にプロセッサ(CPU、GPU、FPGA等を含む)に、RAM (1246)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスにしたがって、かかるデータ構造を変更することを含む、本明細書に記載された特定のプロセス又は特定の部分を実行させることができる。付加的に又は代替的に、コンピュータシステムは、回路(例えば、アクセラレータ(1244))内に配線された、又は他の方法で具現化されたロジックの結果として、機能性を提供することができ、これは、本明細書に記載される特定のプロセス又は特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、又はソフトウェアと共に動作することができる。ソフトウェアへの言及は、論理を含み、また、必要に応じて、その逆も可能である。コンピュータ読取り可能媒体への参照は、実行のためのソフトウェアを記憶する(集積回路(IC)等の)回路、実行のためのロジックを具体化する回路、又は適切な場合にはその両方を含むことができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを包含する。
【0172】
付録A:頭文字
JEM:ジョイント探索モデル
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:コーディングユニット
CG:係数群
IBC:イントラブロックコピー
【0173】
本開示はいくつかの例示的な実施形態を説明しているが、本発明の範囲内に入る、変更、置換、及び様々な均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、本発明の原理を実施し、したがってその概念及び範囲内にある多数のシステム及び方法を創造することができることが理解されよう。