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

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

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

<>
  • 特許-ビデオコーディングの並列処理の改良 図1
  • 特許-ビデオコーディングの並列処理の改良 図2
  • 特許-ビデオコーディングの並列処理の改良 図3
  • 特許-ビデオコーディングの並列処理の改良 図4
  • 特許-ビデオコーディングの並列処理の改良 図5
  • 特許-ビデオコーディングの並列処理の改良 図6
  • 特許-ビデオコーディングの並列処理の改良 図7
  • 特許-ビデオコーディングの並列処理の改良 図8
  • 特許-ビデオコーディングの並列処理の改良 図9
  • 特許-ビデオコーディングの並列処理の改良 図10
  • 特許-ビデオコーディングの並列処理の改良 図11
  • 特許-ビデオコーディングの並列処理の改良 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-27
(45)【発行日】2024-07-05
(54)【発明の名称】ビデオコーディングの並列処理の改良
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240628BHJP
   H04N 19/436 20140101ALI20240628BHJP
【FI】
H04N19/70
H04N19/436
【請求項の数】 16
(21)【出願番号】P 2022561659
(86)(22)【出願日】2021-10-18
(65)【公表番号】
(43)【公表日】2023-06-02
(86)【国際出願番号】 US2021055365
(87)【国際公開番号】W WO2022203722
(87)【国際公開日】2022-09-29
【審査請求日】2022-10-07
(31)【優先権主張番号】63/164,633
(32)【優先日】2021-03-23
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/499,700
(32)【優先日】2021-10-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リー,リン
(72)【発明者】
【氏名】リー,シアン
(72)【発明者】
【氏名】ジュー,ビン
(72)【発明者】
【氏名】ハン,ソーチュル
(72)【発明者】
【氏名】リー,シャン
【審査官】田中 純一
(56)【参考文献】
【文献】特表2014-511647(JP,A)
【文献】国際公開第2016/203981(WO,A1)
【文献】米国特許出願公開第2012/0230429(US,A1)
【文献】特表2015-529439(JP,A)
【文献】米国特許出願公開第2014/0086333(US,A1)
【文献】特開2005-026729(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオプロセッサが実行するビデオ処理の方法であって、
コード化されたビデオビットストリーム内の第1シンタックス要素を受信するステップであって、前記第1シンタックス要素は、高レベルシンタックス要素であり、かつ、前記コード化されたビデオビットストリームのビデオシーケンス内の複数の各画像の高さが前記コード化されたビデオビットストリームの前記ビデオシーケンス内のそれぞれの前記画像の幅以上であることが保証されるかどうかを示す、ステップと、
前記コード化されたビデオビットストリームの前記ビデオシーケンス内の前記複数の各画像の前記高さが前記ビデオシーケンス内のそれぞれの前記画像の前記幅以上であるかどうかを示す前記第1シンタックス要素によって決定される配向において、前記コード化されたビデオビットストリームの前記ビデオシーケンス内の前記画像を処理するステップと、
を含み、
前記ビデオシーケンス内の前記画像を処理するステップは、
前記コード化されたビデオビットストリームの前記ビデオシーケンス内の前記各画像の前記高さが、前記ビデオシーケンス内の各前記画像の前記幅以上であることを示す前記第1シンタックス要素に応答して、前記ビデオシーケンス内の前記画像の1つ以上を波面並列処理(WPP)を使用して処理するステップを含む、方法。
【請求項2】
前記第1シンタックス要素は、補足強化情報メッセージ(SEI)、ビデオユーザビリティ情報(VUI)パラメータセット、又はシーケンスパラメータセット(SPS)として送信される、
請求項1記載の方法。
【請求項3】
前記第1シンタックス要素の第1値は、前記ビデオシーケンス内の各前記画像の前記幅が前記ビデオシーケンス内のそれぞれの前記画像の前記高さより小さいことを示す、
請求項1記載の方法。
【請求項4】
前記第1シンタックス要素の第2値は、前記ビデオシーケンス内の前記画像の前記幅が前記ビデオシーケンス内の前記画像の前記高さより小さい可能性があるか又は小さくない可能性があることを示す、
請求項3記載の方法。
【請求項5】
前記第1シンタックス要素が前記ビデオビットストリームにおいてシグナリングされていないときに、前記第1シンタックス要素が前記第2値を有すると推定するステップをさらに含む、
請求項4記載の方法。
【請求項6】
エンコーダにおいて、前記コード化されたビデオビットストリームの前記ビデオシーケンスに対応する入力ビデオシーケンスは、幅より小さい高さを有し、
前記入力ビデオシーケンスの前記高さは、前記コード化されたビデオビットストリームの前記ビデオシーケンス内の前記画像の前記幅としてコード化され、
前記入力ビデオシーケンスの前記幅は、前記コード化されたビデオビットストリームの前記ビデオシーケンス内の前記画像の前記高さとしてコード化される、
請求項1記載の方法。
【請求項7】
ビデオプロセッサが実行するビデオ処理の方法であって、
コード化されたビデオビットストリーム内の第1シンタックス要素を受信するステップであって、前記第1シンタックス要素は、高レベルシンタックス要素であり、かつ、前記コード化されたビデオビットストリームのビデオシーケンス内の複数の各画像の高さが前記コード化されたビデオビットストリームの前記ビデオシーケンス内のそれぞれの前記画像の幅以上であることが保証されるかどうかを示す、ステップと、
前記コード化されたビデオビットストリームの前記ビデオシーケンス内の前記複数の各画像の前記高さが前記ビデオシーケンス内のそれぞれの前記画像の前記幅以上であるかどうかを示す前記第1シンタックス要素によって決定される配向において、前記コード化されたビデオビットストリームの前記ビデオシーケンス内の前記画像を処理するステップと、
前記ビデオシーケンスの前記画像の前記幅を示す第2シンタックス要素を受信するステップと、
前記ビデオシーケンス内の前記画像の前記高さと前記ビデオシーケンスの前記画像の前記幅との間の差分を示す第3シンタックス要素を受信するステップであって、前記差分は符号なしの整数を使用する、ステップとをむ方法。
【請求項8】
前記ビデオシーケンス内の前記画像を処理するステップは、
前記ビデオシーケンス内の前記画像の前記高さを、前記第2シンタックス要素によって示される前記幅の値及び前記符号なしの整数の和であると決定するステップを含む、
請求項7記載の方法。
【請求項9】
前記方法はさらに、
前記コード化されたビデオビットストリーム内のスライスレベルでシグナリングされる第4シンタックス要素を受信するステップであって、前記第4シンタックス要素は、前記ビデオシーケンス内のスライスに対してコーディングツリーユニット(CTU)サイズを示す、ステップを含む、
請求項1又は7記載の方法。
【請求項10】
ビデオプロセッサが実行するビデオ処理の方法であって、
コード化されたビデオビットストリーム内の第1シンタックス要素を受信するステップであって、前記第1シンタックス要素は、高レベルシンタックス要素であり、かつ、前記コード化されたビデオビットストリームのビデオシーケンス内の複数の各画像の高さが前記コード化されたビデオビットストリームの前記ビデオシーケンス内のそれぞれの前記画像の幅以上であることが保証されるかどうかを示す、ステップと、
前記コード化されたビデオビットストリームの前記ビデオシーケンス内の前記複数の各画像の前記高さが前記ビデオシーケンス内のそれぞれの前記画像の前記幅以上であるかどうかを示す前記第1シンタックス要素によって決定される配向において、前記コード化されたビデオビットストリームの前記ビデオシーケンス内の前記画像を処理するステップと、
複数の第4シンタックス要素を受信するステップであって、各前記第4シンタックス要素は前記ビデオシーケンス内の複数のスライスのうちの1つにそれぞれ関連し、前記複数の第4シンタックス要素は、異なるタイプのそれぞれの前記スライスに対して異なるCTUサイズを示す、ステップを含む方法。
【請求項11】
前記複数の前記スライスにわたって、スライスタイプIは他のスライスタイプよりも小さなCTUサイズを有する、
請求項10記載の方法。
【請求項12】
前記方法はさらに、
前記コード化されたビデオビットストリーム中の画像レベルでシグナリングする第5シンタックス要素を受信するステップであって、前記第5シンタックス要素は前記ビデオシーケンス内の前記画像のうちの1つに対するCTUサイズを示す、ステップを含む、
請求項1記載の方法。
【請求項13】
ビデオプロセッサが実行するビデオ処理の方法であって、
コード化されたビデオビットストリーム内の第1シンタックス要素を受信するステップであって、前記第1シンタックス要素は、高レベルシンタックス要素であり、かつ、前記コード化されたビデオビットストリームのビデオシーケンス内の複数の各画像の高さが前記コード化されたビデオビットストリームの前記ビデオシーケンス内のそれぞれの前記画像の幅以上であることが保証されるかどうかを示す、ステップと、
前記コード化されたビデオビットストリームの前記ビデオシーケンス内の前記複数の各画像の前記高さが前記ビデオシーケンス内のそれぞれの前記画像の前記幅以上であるかどうかを示す前記第1シンタックス要素によって決定される配向において、前記コード化されたビデオビットストリームの前記ビデオシーケンス内の前記画像を処理するステップと、
前記コード化されたビデオビットストリーム内のシーケンスパラメータセット(SPS)に含まれて、前記ビデオシーケンスの第1CTUサイズを示す第6シンタックス要素を受信するステップと、
画像レベル又はスライスレベルにおいてシグナリングされて、前記ビデオシーケンス内のそれぞれの画像又はそれぞれのスライスの第2CTUサイズを示す第7シンタックス要素を受信するステップとをむ方法。
【請求項14】
前記第1CTUサイズは、前記ビデオシーケンスの最大CTUサイズであり、
前記第2CTUサイズは、前記最大CTUサイズよりも小さい、
請求項13記載の方法。
【請求項15】
ビデオ処理の装置であって、
請求項1乃至14いずれか1項記載の方法を実行するように構成された回路を備える、装置。
【請求項16】
ビデオ処理方法であって、
コード化されたビデオビットストリーム内に、高レベルシンタックス要素である第1シンタックス要素であって、前記コード化されたビデオビットストリームのビデオシーケンス内の複数の各画像の高さが、前記コード化されたビデオビットストリームの前記ビデオシーケンス内のそれぞれの前記画像の幅以上であることが保証されるかどうかを示す第1シンタックス要素を含めるステップと、
前記コード化されたビデオビットストリーム内に、前記ビデオシーケンスの前記画像の幅を示す第2シンタックス要素を含めるステップと、
前記コード化されたビデオビットストリーム内に、前記ビデオシーケンス内の前記画像の前記高さと前記ビデオシーケンスの前記画像の前記幅との間の差分を示す第3シンタックス要素を含めるステップであって、前記差分は符号なしの整数を使用して表される、ステップと、
前記ビデオビットストリームをデコーダへ送信するステップとを含み、
前記コード化されたビデオビットストリームの前記ビデオシーケンス内の前記画像、前記コード化されたビデオビットストリームの前記ビデオシーケンス内の前記複数の各画像の前記高さが、前記コード化されたビデオビットストリームの前記ビデオシーケンス内のそれぞれの前記画像の前記幅以上であるかどうかを示す前記第1シンタックス要素によって決定される配向において処理される、方法。
【発明の詳細な説明】
【技術分野】
【0001】
参照による援用
本開示は、2021年3月23日に出願された米国仮出願第63/164,633号「Improvement on Parallel Processing(並列処理の改善)」に基づく優先権の利益を主張する2021年10月12日に出願された米国特許出願第17/499,700号「Improvement on Parallel Processing in Video Coding(ビデオコーディングにおける並列処理の改善)」に基づく優先権の利益を主張する。
先の出願の開示は、その全体が参照により本明細書に組み込まれる。
【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】
ビデオコーデック技術は、イントラコーディングとして知られる技術を含むことができる。イントラコーディングでは、サンプル値は、以前に再構成された参照画像からのサンプル又は他のデータを参照することなく表現される。いくつかのビデオコーデックでは、画像は空間的にサンプルのブロックに分割される。サンプルのすべてのブロックがイントラモードでコーディング又はコード化(coded)されている場合、その画像はイントラ画像とすることができる。イントラ画像と、独立デコーダリフレッシュ画像等のそれらの派生物は、デコーダ状態をリセットするために用いられることができ、したがって、コーディングされたビデオビットストリーム及びビデオセッションにおける第1画像として、又は静止画像として用いられることができる。イントラブロックのサンプルは変換にさらされることができ、変換係数はエントロピーコーディングの前に量子化されることができる。イントラ予測は、変換前ドメインにおけるサンプル値を最小化する技術であり得る。場合によっては、変換後のDC値がより小さく、AC係数がより小さいほど、エントロピーコーディング後にブロックを表すための所与の量子化ステップサイズで必要なビットが少なくなる。
【0008】
例えばMPEG-2世代のコーディング技術から知られるような従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば空間的に隣接し、かつデコード順で先行するデータブロックのエンコード及び/又はデコード中に取得されるメタデータ及び/又は周辺のサンプルデータから試みる技術を含む。このような技術は、以後「イントラ予測」技術と称される。少なくともいくつかのケースでは、イントラ予測は再構成中の現在の画像からの参照データのみを使用し、参照画像からは使用しないことに留意されたい。
【0009】
さまざまな形式のイントラ予測があり得る。かかり技術のうちの1つ以上が、所与のビデオコーディング技術において用いられることができる場合、使用中の技術は、イントラ予測モードでコーディングされることができる。特定の場合には、モードは、サブモード及び/又はパラメータを有することができ、それらは、個別にコーディングされることができ、又はモードコード名(mode codeword)に含まれることができる。所与のモード、サブモード、及び/又はパラメータの組み合わせに使用するコードワードは、イントラ予測によるコーディング効率の向上に影響を与えることができ、したがって、コードワードをビットストリームに変換するために使用されるエントロピーコーディングテクノロジーも影響を及ぼすことができる。
【0010】
特定のイントラ予測モードがH.264で導入され、H.265で改良され、共同探索モデル(JEM:joint exploration model)、汎用ビデオコーディング(VVC:versatile video coding)、及びベンチマークセット(BMS:benchmark set)等のより新しいコーディング技術でさらに改良された。予測ブロックは、既に利用可能なサンプルに属する隣接又は近接する(neighboring)サンプル値を使用して形成されることができる。隣接するサンプルのサンプル値は、方向にしたがって予測ブロックにコピーされる。使用中の方向への参照は、ビットストリームでコーディングされることができ、又はそれ自体が予測されることがある。
【0011】
図1を参照すると、右下に示されているのは、(35個のイントラモードの33個の角度モードに対応する、)H.265の33個の可能な予測方向から知られる9個の予測方向のサブセットである。矢印が集中する点(101)は、予測されているサンプルを表す。矢印は、サンプルが予測されている方向を示す。例えば、矢印(102)は、サンプル(101)が、1つ以上のサンプルから、水平から45度の角度で右上に向かって予測されることを示す。同様に、矢印(103)は、サンプル(101)が、1つ以上のサンプル(101)から、水平方向から22.5度の角度でサンプル(101)の左下へ予測されることを示す。
【0012】
さらに図1を参照すると、左上には、4×4サンプルの正方形ブロック(104)が示されている(破線の太線で示されている)。正方形ブロック(104)は、16個のサンプルを含み、各サンプルは「S」でラベル付けされ、Y次元におけるその位置(例えば、行インデックス)及びX次元におけるその位置(例えば、列インデックス)を含む。例えば、サンプルS21は、Y次元の(頂部から)2番目のサンプル及びX次元の(左側から)1番目のサンプルである。同様に、サンプルS44は、ブロック(104)内でY及びX次元の両方において4番目のサンプルである。ブロックのサイズが4×4サンプルであるので、S44は右下にある。さらに、同様の番号付けスキームにしたがった参照サンプルを示す。参照サンプルは、R、ブロック(104)に対するそのY位置(例えば、行インデックス)及びX位置(列インデックス)でラベル付けされる。H.264とH.265の両方で、予測サンプルは再構成中のブロックに隣接しているため、負の値を使用する必要はない。
【0013】
イントラ画像予測は、信号予測方向に応じて、隣接するサンプルから参照サンプル値をコピーすることによって機能する。例えば、コーディングされたビデオビットストリームは、このブロックについて、矢印(102)と一致する予測方向を示す信号を含むと仮定する。すなわち、サンプルは、1つ以上の予測サンプルから右上へ、水平方向から45度の角度で予測される。その場合、サンプルS41、S32、S23、及びS14は、同じ参照サンプルR05から予測される。その後、サンプルS44は、参照サンプルR08から予測される。
【0014】
特定の場合には、特に方向が45度で均等に割り切れない場合には、参照サンプルを計算するために、複数の参照サンプルの値を、例えば内挿によって組み合わせることができる。
【0015】
ビデオコーディング技術の発達に伴って可能性のある方向の数が増加している。H.264(2003年)では、9つの異なる方向を表すことができた。これは、H.265(2013年)で33に増加し、開示時のJEM/VVC/BMSでは、最大65の方向性をサポートできる。最も可能性の高い方向を特定するために実験が行われており、エントロピーコーディングの特定の技術は、少数のビットにおいて、それらの可能性のある方向を表現するために用いられ、より可能性の低い方向に対する特定のペナルティを受け入れる。さらに、方向それ自体は、時々、近接する、すでにデコードされたブロックで使用される近接する方向から予測されることができる。
【0016】
図2は、経時的に増加する予測方向の数を示すために、JEMによる65のイントラ予測方向を示す概略図(201)を示す。
【0017】
方向を表すコーディングされたビデオビットストリームにおけるイントラ予測方向ビットのマッピングは、ビデオコーディング技術からビデオコーディング技術へ異なることができ、例えば、予測方向の単純な直接マッピングから、イントラ予測モード、コード名、最も可能性の高いモードを含む複合適応方式、及び類似の技術にまで及ぶことができる。しかし、どのような場合でも、ビデオコンテンツにおいて、他の特定の方向よりも統計的に起こりにくい特定の方向が存在し得る。ビデオ圧縮の目標は冗長性の低減であるので、良好に動作するビデオコーディング技術においては、より可能性の低い方向は、より可能性の高い方向よりもより多くのビット数によって表されるであろう。
【0018】
動き補正は、以前に再構成された画像又はその一部(参照画像)からのサンプルデータのブロックが、動きベクトル(以降MV)によって示される方向に空間的にシフトした後に、新たに再構成された画像又は画像部分の予測に使用される技術に関連することができる。場合によっては、参照画像は現在再構成中の画像と同一であることもできる。MVは、X及びYの2次元、又は3次元を有することができ、第3次元は、使用中の参照画像の表示である(後者は、間接的に、時間次元であることができる)。
【0019】
いくつかのビデオ圧縮技術では、サンプルデータの、あるエリアに適用可能なMVは、他のMVから、例えば、再構成中のエリアに空間的に隣接し、デコードの順序(decoding order)でそのMVに先行するサンプルデータの別のエリアに関連するMVから予測することができる。このようにして、MVのコーディングに必要なデータ量を大幅に削減することができ、それによって冗長性を除去し、圧縮を増大させることができる。MV予測は効率的に作用することができ、なぜならば、例えば、(ナチュラルビデオとして既知の)カメラから導出された入力ビデオ信号をコーディングする場合、単一のMVが適用可能であるエリアよりも大きなエリアは、類似の方向に移動するという統計的可能性があり、したがって、場合によっては、隣接するエリアのMVから導出された類似の動きベクトルを用いて予測することができるからである。その結果、所与のエリアについて見出されたMVは、周囲のMVから予測されるMVと類似又は同一になり、それは、エントロピーコーディングの後、MVを直接コーディングする場合に使用されるであろうものよりも、より少ない数のビットで表され得る。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の例であり得る。他の場合には、MV予測それ自体は、例えば、いくつかの周囲MVから予測子を計算する際の丸め誤差のために、非可逆的であり得る。
【0020】
様々なMV予測メカニズムがH.265/HEVC (ITU-T Rec. H.265, High Efficiency Video Coding, December 2016)に、記述されている。H.265が提供する多くのMV予測メカニズムのうち、「空間マージ」と称される技術がある。空間マージでは、現在のブロックは、動き検索プロセス中に、エンコーダによって、空間的にシフトされた同じサイズの先行ブロックから予測可能であることが見出されるサンプルを含み、そのMVを直接コーディングする代わりに、1つ以上の参照画像に関連付けられたメタデータから、例えば、最新の(デコード順で)参照画像から、いくつかのマージ候補位置のいずれかに関連付けられたMVを使用して、MVを導出することができる。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照画像からの予測子を使用することができる。
【発明の概要】
【0021】
本開示の態様は、ビデオプロセッサによるビデオ処理の方法を提供する。方法は、コード化されたビデオビットストリーム内の第1シンタックス要素を受信するステップを含む。第1シンタックス要素は、高レベルシンタックス要素であり、かつ、コード化されたビデオビットストリームのビデオシーケンス内の複数の各画像の高さが、コード化されたビデオビットストリームのビデオシーケンス内のそれぞれの画像の幅以上であることが保証されるかどうかを示す。コード化されたビデオビットストリームのビデオシーケンス内の画像は、コード化されたビデオビットストリームのビデオシーケンス内の複数の各画像の高さが、ビデオシーケンス内のそれぞれの画像の幅以上であるかどうか示す第1シンタックス要素にしたがって決定される方向で処理され得る。
【0022】
一実施形態において、第1シンタックス要素は、補足強化情報メッセージ(SEI)、ビデオユーザビリティ情報(VUI)パラメータセット、又はシーケンスパラメータセット(SPS)として送信される。一実施形態において、第1シンタックス要素の第1値は、ビデオシーケンス内の各画像の幅がビデオシーケンス内のそれぞれの画像の高さより小さいことを示す。第1シンタックス要素の第2値は、ビデオシーケンス内の画像の幅がビデオシーケンス内の画像の高さよりも小さい可能性があるか又は小さくない可能性があること(may or may not)を示す。第1シンタックス要素がビットストリーム中でシグナリングされていない(not signaled)場合、第1シンタックス要素は第2値を有すると推測することができる。
【0023】
一実施形態において、エンコーダでコード化されたビデオビットストリームのビデオシーケンスに対応する入力ビデオシーケンスは、その幅よりも小さい高さを有する。入力ビデオシーケンスの高さは、コード化されたビデオビットストリームのビデオシーケンス内の画像の幅としてコード化され、入力ビデオシーケンスの幅は、コード化されたビデオビットストリームのビデオシーケンス内の画像の高さとしてコード化される。
【0024】
方法の実施形態はさらに、ビデオシーケンスの画像の幅を示す第2シンタックス要素を受信するステップと、ビデオシーケンス内の画像の高さとビデオシーケンスの画像の幅との間の差分を示す第3シンタックス要素を受信するステップであって、差分は符号なしの整数(unsigned integer)を使用する、ステップと、を含む。例えば、ビデオシーケンス内の画像の高さは、第2シンタックス要素と符号なしの整数とによって示される幅の値の和として決定するステップを含む。
【0025】
一実施形態において、コード化されたビデオビットストリームのビデオシーケンス内の各画像の高さが、ビデオシーケンス内の各画像の幅以上であることを示す第1シンタックス要素に応答して、ビデオシーケンス内の画像の1つ以上を波面並列処理(WPP:wavefront parallel processing)を使用して処理することができる。
【0026】
一実施形態において、コード化されたビデオビットストリーム内のスライスレベルでシグナリングされる第4シンタックス要素を受信することができる。第4シンタックス要素は、ビデオシーケンス内のスライスに対してコーディングツリーユニット(CTU)サイズを示す。一実施形態において、複数の第4シンタックス要素を受信することができ、各第4シンタックス要素はビデオシーケンス内の複数のスライスのうちの1つにそれぞれ関連する。複数の第4シンタックス要素は、異なるタイプのそれぞれのスライスに対して異なるCTUサイズを示すことができる。一実施形態において、複数のスライスにわたって、スライスタイプIは他のスライスタイプよりも小さなCTUサイズを有する。
【0027】
一実施形態において、画像レベルでシグナリングされる第5シンタックス要素をコード化されたビデオビットストリームで受信することができる。第5シンタックス要素はビデオシーケンス内の画像のうちの1つに対するCTUサイズを示すことができる。一実施形態において、シーケンスパラメータセット(SPS)に含まれる第6シンタックス要素は、コード化されたビデオビットストリームで受信することができ、ビデオシーケンスの第1CTUサイズを示す。画像レベル又はスライスレベルにおいてシグナリングされる第7シンタックス要素は、受信されることができ、ビデオシーケンス内のそれぞれの画像又はそれぞれのスライスの第2CTUサイズを示す。実施例において、第1CTUサイズは、ビデオシーケンスの最大CTUサイズであり、第2CTUサイズは、最大CTUサイズよりも小さい。
【0028】
本開示の態様は、ビデオ処理の装置を提供する。装置は、コード化されたビデオビットストリーム中の第1シンタックス要素を受信するように構成された回路を含むことができる。第1シンタックス要素は、高レベルシンタックス要素であることができ、かつ、コード化されたビデオビットストリームのビデオシーケンス内の複数の各画像の高さが、コード化されたビデオビットストリームのビデオシーケンス内のそれぞれの画像の幅以上であることが保証されるかどうかを示す。コード化されたビデオビットストリームのビデオシーケンス内の複数の画像は、ビデオシーケンス内の複数の各画像の高さがビデオシーケンス内のそれぞれの画像の幅以上であるかどうかを示す第1シンタックス要素にしたがって決定される配向において処理されることができる。
【0029】
本開示の態様は、ビデオプロセッサによるビデオ処理の別の方法をさらに提供する。方法は、コード化されたビデオビットストリーム中に、高レベルシンタックス要素であり、コード化されたビデオビットストリームのビデオシーケンス内の複数の各画像の高さが、コード化されたビデオビットストリームのビデオシーケンス内のそれぞれの画像の幅以上であることが保証されるかどうかを示す。第1シンタックス要素を含むことを含む。コード化されたビデオビットストリームのビデオシーケンス内の複数の画像は、コード化されたビデオビットストリームの複数の各画像の高さがビデオシーケンス内のそれぞれの画像の幅以上であるかどうかを示す第1シンタックス要素にしたがって決定される配向において処理される。
【図面の簡単な説明】
【0030】
開示された主題のさらなる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう。
図1図1は、イントラ予測モードの例示的サブセットの概略図である。
図2図2は、例示的なイントラ予測方向の説明図である。
図3図3は、一実施形態による通信システム(300)の簡略ブロック図を模式的に示す図である。
図4図4は、一実施形態による通信システム(400)の簡略ブロック図を模式的に示す図である。
図5図5は、一実施形態によるデコーダの簡略ブロック図を模式的に示す図である。
図6図6は、一実施形態によるエンコーダの簡略ブロック図を模式的に示す図である。
図7図7は、別の実施形態によるエンコーダのブロック図である。
図8図8は、別の実施形態によるデコーダのブロック図である。
図9図9は、2つのコーディングツリーユニット(CTU)の遅延を伴う波面並列プロセス(WPP)の例を示す図である。
図10図10は、CTUの遅延を伴うWPPの別の例を示す図である。
図11図11は、本開示の一実施形態によるプロセス(1100)の概要を示すフローチャートを示す図である。
図12図12は、一実施形態によるコンピュータシステムを模式的に示す図である。
【発明を実施するための形態】
【0031】
I.エンコーダ及びデコーダシステム
【0032】
図3は、本開示の一実施形態による通信システム(300)の簡略化されたブロック図を示す。
通信システム(300)は、例えばネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1対の端末デバイス(310)及び(320)を含む。図3の例では、第1対の端末デバイス(310)及び(320)は、データの一方向送信を行う。例えば、端末デバイス(310)は、ビデオデータ(例えば、端末デバイス(310)によって捕捉されるビデオ画像のストリーム)をコーディングすることができ、ネットワーク(350)を介して他の端末デバイス(320)に伝送することができる。エンコードされた画像データは、1つ以上のコーディングされたビデオビットストリームの形態で送信されることができる。端末デバイス(320)は、ネットワーク(350)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードして、ビデオ画像を復元し、復元されたビデオデータにしたがってビデオ画像を表示することができる。一方向性データ伝送は、メディア提供アプリケーション等において一般的であり得る。
【0033】
別の例では、通信システム(300)は、第2対の端末デバイス(330)及び(340)を含み、例えばビデオ会議中に、発生し得るコーディングされたビデオデータの双方向伝送を行う。データの双方向伝送のために、例えば、端末デバイス(330)及び(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)及び(340)の他方の端末デバイスに伝送するために、ビデオデータ(例えば、端末デバイスによって捕捉されるビデオ画像のストリーム)をコーディングし得る。端末デバイス(330)及び(340)の各端末デバイスは、端末デバイス(330)及び(340)の他方の端末デバイスによって送信されたコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードして、ビデオ画像を復元し、復元されたビデオデータにしたがって、アクセス可能な表示デバイスにビデオ画像を表示し得る。
【0034】
図3の例では、端末デバイス(310)、(320)、(330)及び(340)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示され得るが、本発明の原理はこれらに限定されない。本発明の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のビデオ会議機器への適用を見出す。ネットワーク(350)は、例えばワイヤライン(有線)及び/又は無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)及び(340)の間でコーディングされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換及び/又はパケット交換チャネル内のデータを交換することができる。代表的なネットワークには、テレコミュニケーションネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットが含まれる。本説明の目的のためには、以下に説明しない限り、ネットワーク(250)のアーキテクチャ及びトポロジーは本発明の動作には重要ではない可能性がある。
【0035】
図4は、開示された主題の適用例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTVや、CD、DVD、メモリースティック等を含むデジタルメディアへの圧縮ビデオの保存等を含む、他のビデオ対応アプリケーションに等しく適用することができる。
【0036】
ストリーミングシステムは、例えば、非圧縮のビデオ画像(402)のストリームを生成するビデオソース(401)、例えばデジタルカメラを含むことができるキャプチャサブシステム(413)を含み得る。一実施形態では、ビデオ画像のストリーム(402)は、デジタルカメラによって撮影されるサンプルを含む。エンコードされたビデオデータ(404)(又はコーディングされたビデオビットストリーム)と比較した場合に、高データ量を強調するために太線として描かれたビデオ画像のストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理されることができる。ビデオエンコーダ(403)は、ハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができ、以下により詳細に説明されるように、開示された主題の態様を可能にし、又は実施する。エンコードされたビデオデータ(404)(又はエンコードされたビデオビットストリーム(404))は、ビデオ画像(402)のストリームと比較した場合に、より低いデータ量を強調するために細線として示され、将来の使用のためにストリーミングサーバ(405)に格納され得る。図4のクライアントサブシステム(406)及び(408)等の1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスすることができ、エンコードされたビデオデータ(404)のコピー(407)及び(409)を読み出すことができる。クライアントサブシステム(406)は、例えば電子デバイス(430)内のビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコードされたビデオデータの入力コピー(407)をデコードし、ディスプレイ(412)(例えばディスプレイスクリーン)又は他のレンダリングデバイス(図示せず)上にレンダリングすることができるビデオ画像の出力ストリーム(411)を生成する。いくつかのストリーミングシステムでは、エンコードされたビデオデータ(404)、(407)及び(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮標準にしたがってコーディングされることができる。これらの標準の例は、ITU-T勧告H.265を含む。例えば、開発中のビデオコーディング規格は、汎用ビデオコーディング(VVC)として非公式に知られている。開示された主題は、VVCのコンテキストで使用され得る。
【0037】
電子デバイス(420)及び(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)も含むことができる。
【0038】
図5は、本開示の一実施例によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれることができる。電子デバイス(530)は、受信器(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例のビデオデコーダ(410)の代わりに使用されることができる。
【0039】
受信器(531)は、ビデオデコーダ(510)によってデコードされるべき1つ以上のコーディングされたビデオシーケンスを受信することができ、同一又は別の実施形態では、一度に1つのコーディングされたビデオシーケンスを受信することができ、その際、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(501)から受信することができ、このチャネルは、エンコードされたビデオデータを格納するストレージデバイスへのハードウェア/ソフトウェアリンクであり得る。受信器(531)は、エンコードされたビデオデータを、他のデータ、例えばコーディングされたオーディオデータ及び/又は付随的なデータストリームと共に受信することができ、これらのデータは、それぞれのエンティティ(図示せず)を使用して転送され得る。受信器(531)は、コーディングされたビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(515)が、受信器(531)とエントロピーデコーダ/パーサ(520)(以後「パーサ(520)」)との間に結合され得る。特定の用途では、バッファメモリ(515)はビデオデコーダ(510)の一部である。他の場合には、ビデオデコーダ(510)の外側にあることができる(図示せず)。さらに別の場合には、例えばネットワークジッタに対抗するために、ビデオデコーダ(510)の外側にバッファメモリ(図示せず)が存在することができ、さらに、例えば再生タイミング(playout timing)を処理するために、ビデオデコーダ(510)の内側に別のバッファメモリ(515)が存在することもできる。受信器(531)が、十分な帯域幅及び制御可能性の記憶/転送デバイスから、又は、アイソクロナスネットワーク(isosynchronous network)から、データを受信している場合、バッファメモリ(515)は不要であるか、又は小さくてもよい。インターネット等のベストエフォート型パケットネットワークでの使用のために、バッファメモリ(515)は、必要とされ、比較的大きく、有利には適応サイズであり得、ビデオデコーダ(510)の外側のオペレーティングシステム又は類似の要素(図示せず)に少なくとも部分的に実装され得る。
【0040】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するためのパーサ(520)を含み得る。これらのシンボルのカテゴリは、図5に示されているように、ビデオデコーダ(510)の動作を管理するために使用される情報、及び、電子デバイス(530)の不可欠な部分ではないが、電子デバイス(530)に結合され得るレンダリングデバイス(512)(例えば、表示スクリーン)等のレンダリングデバイスを制御する潜在的な情報を含む。(複数の)レンダリングデバイスの制御情報は、付加拡張情報(SEIメッセージ)又はビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形態であり得る。パーサ(520)は、受信されるコーディングされたビデオシーケンスをパースし/エントロピーデコードすることができる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は標準に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト感度を伴う又は伴わない算術コーディングなどを含む種々の原理に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つに対するサブグループパラメータのセットを、コーディングされたビデオシーケンスから抽出し得る。サブグループは、画像グループ(GOP)、画像、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等を含み得る。パーサ(520)はまた、変換係数、量子化パラメータ値、動きベクトル等の情報を、コーディングされたビデオシーケンスから抽出し得る。
【0041】
パーサ(520)は、シンボル(521)を生成するように、バッファメモリ(515)から受信したビデオシーケンスに、エントロピーデコード/パース動作を実行し得る。
【0042】
シンボル(521)の再構成は、コーディングされたビデオ画像又はその部分のタイプ(例えば、画像間及び画像内、ブロック間及びブロック内)及び他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットが、どのように含まれているかは、パーサ(520)によってコーディングされたビデオシーケンスからパースされたサブグループ制御情報によって制御されることができる。パーサ(520)と以下の複数ユニットとの間のかかるサブグループ制御情報のフローは、明確さのために図示されていない。
【0043】
すでに述べた機能ブロックの他に、ビデオデコーダ(510)は、概念的に、以下に説明するように、いくつかの機能ユニットに分割されることができる。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示された主題を説明するの目的で、以下の機能単位に概念的に細分化することが適切である。
【0044】
第1ユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化された変換係数、並びに、パーサ(520)から(複数の)シンボル(521)として、使用されるべき変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力可能なサンプル値を含むブロックを出力することができる。
【0045】
いくつかの場合には、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングされたブロックに関係することができる;すなわち、先行して再構成された画像からの予測情報を使用していないが、現在の画像のうちの、先行して再構成された部分からの予測情報を使用できるブロック。かかる予測情報は、イントラ画像予測ユニット(552)によって提供されることができる。場合によっては、イントラ画像予測ユニット(552)は、現在の画像バッファ(558)からフェッチされた周囲の既に再構成された情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在の画像バッファ(558)は、例えば、部分的に再構成された現在の画像及び/又は完全に再構成された現在の画像をバッファする。アグリゲータ(555)は、場合によっては、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に加算する。
【0046】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングに関係し、潜在的に動き補償ブロックに関係することができる。かかる場合、動き補償予測ユニット(553)は、予測に使用されるサンプルをフェッチするために参照画像メモリ(557)にアクセスすることができる。ブロックに関連するシンボル(521)にしたがって、フェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によって、スケーラ/逆変換ユニット(551)の出力(この場合、残差サンプル又は残差信号と称される)に加算されることができる。動き補償予測ユニット(553)が予測サンプルをフェッチする参照画像メモリ(557)内のアドレスは、動きベクトルによって制御することができ、例えばX、Y、及び参照画像コンポーネントを有することができるシンボル(521)の形態で動き補償予測ユニット(553)に利用可能である。動き補償はまた、サブサンプルの正確な動きベクトルが使用されている場合には、参照画像メモリ(557)からフェッチされるようにサンプル値を補間すること、動きベクトル予測機構、等を含むことができる。
【0047】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)内の種々のループフィルタリング技術を受けることができる。ビデオ圧縮技術は、インループフィルタ技術(in-loop filter technologies)を含むことができ、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも称される)に含まれるパラメータによって制御され、パーサー(520)からシンボル(521)としてループフィルタユニット(556)に利用可能にされるが、コーディングされた画像又はコーディングされたビデオシーケンスと(デコード順において)先行する部分のデコードの間で得られるメタ情報に応答することができると共に、先行して再構成されループフィルタリングされたサンプル値に応答することができる、インループフィルタ技術を含むことができる。
【0048】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力されることができ、また将来のイントラ画像予測に使用するために参照画像メモリ(557)に記憶されることができるサンプルストリームであることができる。
【0049】
コーディングされた画像は、一旦完全に再構成されると、将来の予測のための参照画像として使用されることができる。例えば、一旦現在の画像に対応するコーディング画像が完全に再構成され、(例えば、パーサ(520)によって)コーディングされた画像が参照画像として識別されると、現在の画像バッファ(4558)は参照画像メモリ(557)の一部となることができ、新たな現在画像バッファは、後続のコーディング画像の再構成を開始する前に再割当てされ得る。
【0050】
ビデオデコーダ(510)は、ITU-T Rec.H.265.等の標準の所定のビデオ圧縮技術にしたがってデコーディング動作を実行し得る。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスが、ビデオ圧縮技術若しくは標準のシンタックス、及び、ビデオ圧縮技術若しくは標準に文書化されているプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術又は標準によって特定されたシンタックスに適合し得る。具体的には、プロファイルは、特定のツールを、そのプロファイルの下で使用できる唯一のツールとして、ビデオ圧縮技術又は標準で使用可能なすべてのツールから選択することができる。また、コンプライアンスのために必要なことは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルによって定義される範囲内にあることであり得る。場合によっては、レベルは、最大画像サイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照画像サイズなどを制限する。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD:Hypothetical Reference Decoder)の仕様と、コーディングされたビデオシーケンスでシグナリングされるHRDバッファ管理のメタデータによってさらに制限され得る。
【0051】
一実施形態では、受信器(531)は、エンコードされたビデオと共に追加の(冗長な)データを受信することができる。追加データは、コーディングされた(複数の)ビデオシーケンスの部分として含まれ得る。追加のデータは、データを適切にデコードするため、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用され得る。追加のデータは、例えば、時間的、空間的、又は信号雑音比(SNR)拡張層、冗長スライス、冗長画像、前方エラー補正コードなどの形態であり得る。
【0052】
図6は、本開示の一実施例によればビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信器(640)(例えば送信回路)を含む。図4の例のビデオエンコーダ(403)の代わりに、ビデオエンコーダ(603)を用いることができる。
【0053】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされる(複数の)ビデオ画像を捕捉することができるビデオソース(601)(図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信し得る。別の例では、ビデオソース(601)は、電子デバイス(620)の一部である。
【0054】
ビデオソース(601)は、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 Y CrCB、RGB、...)、及び任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形態で、ビデオエンコーダ(603)によってコーディングされるべきソースビデオシーケンスを提供し得る。メディア配信システムにおいて、ビデオソース(601)は、予め準備されたビデオを記憶する記憶デバイスであり得る。
ビデオ会議システムでは、ビデオソース(601)は、局所画像情報をビデオシーケンスとして捕捉するカメラであり得る。ビデオデータは、シーケンスで見たときに動きをもたらす複数の個々の画像として提供され得る。画像自体は、ピクセルの空間アレイとして組織化されることができ、各ピクセルは、使用中のサンプリング構造、色空間等に応じて、1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルの関係を容易に理解することができる。
以下の説明は、サンプルに焦点を当てている。
【0055】
一実施形態によれば、ビデオエンコーダ(603)は、ソースビデオシーケンスの画像を、リアルタイムで、又はアプリケーションによって要求される任意の他の時間制約下で、コーディングされたビデオシーケンス(643)にコーディングし、圧縮し得る。適切なコーディングスピードを実現することは、コントローラ(650)の一つの機能である。いくつかの実施形態において、コントローラ(650)は、以下に記載されるように、他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。カップリングは、明確にするため表されない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(画像スキップ、量子化器、レート歪み最適化技術のラムダ値、...)、画像サイズ、画像グループレイアウト、最大動きベクトル探索範囲等を含むことができる。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成されることができる。
【0056】
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。過剰に単純化された説明として、一例において、コーディングループは、(例えば、コーディングされるべき入力画像及び参照画像に基づいて、シンボルストリーム等のシンボルを生成する責任を担う)ソースコーダ(630)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮が、開示された主題において考慮されたビデオ圧縮技術において可逆的であるように)、(リモート)デコーダも作成するのと同様の方法で、シンボルを再構成してサンプルデータを作成する。再構成されたサンプルストリーム(サンプルデータ)は、参照画像メモリ(634)に入力される。シンボルストリームのデコーディングは、デコーダロケーション(ローカル又はリモート)に依存しないビットイクザクトな結果(bit-exact results)をもたらすので、参照画像メモリ(634)中の内容もまた、ローカルエンコーダとリモートエンコーダとの間でビットイクザクトである。換言すれば、エンコーダの予測部分は、デコーダがデコード中に予測を使用するときに「見る」のとまったく同じサンプル値を参照画像サンプルとして「見る」。参照画像同期性のこの基本原理(及び、例えばチャンネルエラーのために、同期性が維持できない場合の結果として生じるドリフト)は、いくつかの関連技術においても同様に使用される。
【0057】
「ローカル」デコーダ(533)の動作は、ビデオデコーダ(410)等の「リモート」デコーダと同じであることができ、これは、図5と関連して詳細に既に上述したとおりである。しかしながら、図5も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)及びパーサ(520)によるコーディングビデオシーケンスへのシンボルのコーディング/デコーディングが可逆的であることができるので、バッファメモリ(515)を含むビデオデコーダ(510)のエントロピーデコーディング部分及びパーサ(520)は、ローカルデコーダ(633)に完全には実装されない場合がある。
【0058】
この点で行うことができる観察は、デコーダ内に存在するパース/エントロピーデコードを除く任意のデコーダ技術もまた、対応するエンコーダ内に実質的に同一の機能的形態で存在する必要があることである。このために、開示された主題は、デコーダ動作に集中する。それらが包括的に記載されているデコーダ技術の逆であるにつれて、エンコーダ技術の説明は略記されることができる。特定の領域だけで、より多くの詳細説明が、必要とされて、下でなされる。
【0059】
動作中に、いくつかの例において、ソースコーダ(630)は、「参照画像」として指定されたビデオシーケンスからの1つ以上の、先行してコーディングされた画像を参照して入力画像を予測的にコーディングする、動き補償予測コーディングを実行し得る。このようにして、コーディングエンジン(632)は、入力画像のピクセルブロックと、入力画像に対する(複数の)予測参照として選択され得る(複数の)参照画像のピクセルブロックとの間の差をコーディングする。
【0060】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって生成されたシンボルに基づいて、参照画像として指定され得る画像のコーディングされたビデオデータをデコードし得る。コーディングエンジン(632)の動作は、有利には、非可逆プロセスであり得る。コーディングされたビデオデータがビデオデコーダ(図6には示されていない)でデコードされ得る場合、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスの複であり得る。ローカルビデオデコーダ(633)は、参照画像上でビデオデコーダによって実行され、参照画像キャッシュ(634)に記憶されるべき再構成された参照画像を生じさせ得るデコーディング処理を繰り返す。このようにして、ビデオエンコーダ(603)は、遠位端ビデオデコーダによって得られるであろう再構成された参照画像として、共通のコンテンツを有する再構成された参照画像のコピーをローカルに記憶することができる。
【0061】
予測器(635)は、コーディングエンジン(632)について予測サーチを実行し得る。すなわち、コーディングされるべき新しい画像について、予測器(635)は、新しい画像についての適切な予測参照として役立ち得る、参照画像動きベクトル、ブロック形状等の特定のメタデータ、又は、サンプルデータ(参照ピクセルブロックの候補として)、について参照画像メモリ(634)を検索し得る。予測器(635)は、適切な予測参照を見出すために、サンプルブロック毎に動作し得る。場合によっては、予測器(635)によって得られた検索結果によって決定されるように、入力画像は、参照画像メモリ(634)に記憶された複数の参照画像から引き出された予測参照を有し得る。
【0062】
コントローラ(650)は、例えば、ビデオデータをエンコードするために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理し得る。
【0063】
上述した機能ユニットの全ての出力は、エントロピーコーダ(645)におけるエントロピーコーディングを受け得る。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディング等の技術にしたがって、シンボルを可逆的に圧縮することによって、種々の機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0064】
送信器(640)は、エントロピーコーダ(645)によって作成されたコーディングされたビデオシーケンスをバッファすることができ、エンコードされたビデオデータを格納するであろうストレージデバイスへのハードウェア/ソフトウェアリンクであり得る通信チャネル(660)を経由した送信のために用意する。送信器(640)は、ビデオ・コーダ(603)からのコーディングされたビデオデータを、例えばコーディングされたオーディオデータ及び/又は補助的なデータ・ストリーム(図示せず)等の、送信されるべき他のデータとともにマージし得る。
【0065】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理し得る。コーディングの間、コントローラ(650)は、各コーディングされた画像に、特定のコーディングされた画像タイプを割り当てることができ、これは、各画像に適用され得るコーディング技術に影響を及ぼし得る。例えば、画像は、しばしば、次の画像タイプの1つとして割り当てられる:
【0066】
イントラ画像(I画像)は、予測ソースとしてシーケンス内の他の画像を使用することなく、コーディングされ、デコードされ得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」:Independent Decoder Refresh)画像を含む、異なるタイプのイントラ画像を許容する。当業者は、I画像のこれらの変形例、並びにそれらのそれぞれの用途及び特徴を認識している。
【0067】
予測画像(P画像)は、各ブロックのサンプル値を予測するために、最大で1つの運動ベクトルと参照インデックスを用いるインター予測又はイントラ予測を使用して、コーディングされ、デコードされ得るものであり得る。
【0068】
双方向(bi-directionally)予測画像(B画像)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルと参照インデックスを用いるインター予測又はイントラ予測を使用して、コーディングされ、デコードされ得るものであり得る。同様に、複数の予測画像は、1つのブロックの再構成のために、2つ以上の参照画像及び関連するメタデータを使用することができる。
【0069】
ソース画像は、通常、空間的に複数のサンプルブロック(例えば、4×4、8×8、4×8、又は16×16の各サンプルのブロック)に分割され、ブロック毎にコーディングされる。ブロックは、ブロックのそれぞれの画像に適用されるコーディング割り当てによって決定された、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、I画像のブロックは、非予測的にコーディングされるか、又は、それらは、同じ画像の既にコーディングされたブロック(空間予測又はイントラ予測)を参照して予測的にコーディングされ得る。P画像の画素ブロックは、先行してコーディングされた一つの参照画像を参照して、空間的予測又は時間的予測を介して予測的にコーディングされ得る。B画像のブロックは、1つ又は2つの、先行してコーディングされた参照画像を参照して、空間的予測を介して、又は時間的予測を介して予測的にコーディングされ得る。
【0070】
ビデオエンコーダ(603)は、所定のビデオコーディング技術又はITU-T Rec.H.265.等の標準にしたがってコーディング動作を実行し得る。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を活用する予測コーディング動作を含む種々の圧縮動作を実行し得る。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術又は標準によって指定されたシンタックスに準拠し得る。
【0071】
一実施形態では、送信器(640)は、エンコードされたビデオと共に追加データを送信し得る。ソースコーダ(630)は、コーディングされたビデオシーケンスの一部としてかかるデータを含めることができる。追加のデータは、時間的/空間的/SNR強調レイヤーや、他の形式の冗長データ、例えば冗長画像及びスライス、SEIメッセージ、VUIパラメータセットフラグメント等を含み得る。
【0072】
ビデオは、時間シーケンスにおいて複数のソース画像(ビデオ画像)として捕捉され得る。画像内予測(Intra-picture prediction)(しばしば、イントラ予測と略される)は、所与の画像における空間的相関を使用し、画像間予測又はインター予測(inter-picture prediction)は、画像間の(時間的又は他の)相関を使用する。一例では、現在画像と称されるコーディング/デコーディング中の特定の画像は、ブロックに仕切られる(partitioned into blocks)。現在画像内のブロックが、ビデオ内の、先行してコーディングされ、まだバッファされている参照画像内の参照ブロックに類似する場合、現在の画像内ブロックは、動きベクトルと称されるベクトルによってコーディングされ得る。動きベクトルは、参照画像内の参照ブロックを指し、複数の参照画像が使用されている場合には、参照画像を識別する第3次元を有することができる。
【0073】
いくつかの実施形態において、双方向予測技術(bi-prediction technique)は、画像間予測において使用され得る。双方向予測技術によれば、ビデオ内の現在画像に対してデコード順では両方とも先行する(ただし、表示順では、それぞれ過去及び未来であり得る)第1参照画像及び第2参照画像等の2つの参照画像が使用される。現在画像内のブロックは、第1参照画像内の第1参照ブロックを指す第1動きベクトルと、第2参照画像内の第2参照ブロックを指す第2の動きベクトルとによってコーディングされることができる。ブロックは、第1参照ブロックと第2参照ブロックとの組み合わせによって予測されることができる。
【0074】
さらに、コーディング効率を改善するために、インター画像予測にマージモード技術を使用することができる。
【0075】
本開示のいくつかの実施形態によれば、インター画像予測及びイントラ画像予測等の予測は、ブロックの単位で実行される。例えば、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ピクセル等、ピクセルに対する値(例えば、ルマ値)の行列を含む。
【0076】
図7は、本開示の別の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオ画像シーケンス内の現在ビデオ画像内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックをコーディングされたビデオシーケンスの一部であるコーディングされた画像にエンコードするように構成されている。一実施形態では、ビデオエンコーダ(703)は、図4の例のビデオエンコーダ(403)の代わりに使用される。
【0077】
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルの予測ブロック等の処理ブロックに対するサンプル値のマトリックスを受信する。ビデオエンコーダ(703)は、処理ブロックが、例えばレート歪み最適化を使用して、イントラモード、インターモード、又は双方向予測モードを使用して、最良にコーディングされるかどうかを決定する。処理ブロックがイントラモードでコーディングされる場合、ビデオエンコーダ(703)は、処理ブロックをコーディングされた画像にエンコードするためにイントラ予測技術を使用することができ、処理ブロックがインターモード又は双方向予測モードでコーディングされる場合、ビデオエンコーダ(703)は、処理ブロックをコーディングされた画像にコーディングするために、それぞれ、インター予測技術又は双方向予測技術を使用し得る。特定のビデオ符号化技術において、モード缶を合併して運動ベクトルが特定の他のビデオ符号化技術においてpredictors.&#160;の外側で符号化運動ベクトル成分の利点のない一つ以上の運動ベクトル・プレディクタに由来するインター画像予測下位モードである、主題ブロックに適用できる運動ベクトル成分は、存在してもよい。一実施形態では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)等の他の構成要素を含む。
【0078】
図7の例では、ビデオエンコーダ(703)は、図7に示すように一緒に結合されたエントロピーエンコーダ(725)と、インターエンコーダ(730)と、イントラエンコーダ(722)と、残差計算器(723)と、スイッチ(726)と、残差エンコーダ(724)と、汎用コントローラ(721)と、を含む。
【0079】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照画像内の1つ以上の参照ブロックと比較し(例えば、先行する画像内及び後の画像内のブロック)、インター予測情報(例えば、インターエンコーディング技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、任意の適切な技術を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。若干の実施例において、基準ピクチャは、コード化されたビデオ情報に基づいて復号化される復号化基準ピクチャである。
【0080】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、ブロックを、同じ画像内で既にコーディングされたブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラコーディング技術に従ったイントラ予測方向情報)も生成するように構成されている。一例では、イントラエンコーダ(722)はまた、同じ画像内のイントラ予測情報及び参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0081】
汎用制御デバイス(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一実施形態では、汎用コントローラ(721)は、ブロックのモードを決定し、そのモードに基づいてスイッチ(726)に制御信号を供給する。例えば、モードがイントラモードの場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)が使用するイントラモードの結果を選択し、エントロピーエンコーダ(725)を制御して、イントラ予測情報を選択し、ビットストリームにイントラ予測情報を含め、モードがインターモードの場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)が使用するインター予測結果を選択し、エントロピーエンコーダ(725)を制御して、インター予測情報を選択し、ビットストリームにインター予測情報を含める。
【0082】
残差計算器(723)は、受信されたブロックと、イントラエンコーダ(722)又はインターエンコーダ(730)から選択された予測結果との差(残差データ)を計算するように構成される。
残差エンコーダ(724)は、残差データに基づいて動作し、残差データをエンコードして変換係数を生成するように構成される。一実施例では、残差エンコーダ(724)は、残差データを空間ドメインから周波数ドメインにコンバートし、変換係数を生成するように構成される。それから、変換係数は量子化処理に従属して、量子化変換係数を得る。様々な実施形態では、ビデオエンコーダ(703)は、残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、デコードされた残差データを生成するように構成される。デコードされた残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって適切に使用されることができる。例えば、インターエンコーダ(730)は、デコードされた残差データ及びインター予測情報に基づいてデコードされたブロックを生成することができ、イントラエンコーダ(722)は、デコードされた残差データ及びイントラ予測情報に基づいてデコードされたブロックを生成することができる。デコードされたブロックは、いくつかの実施例では、デコードされた画像を生成するために適切に処理され、デコードされた画像は、メモリ回路(図示せず)内でバッファされ、参照画像として使用され得る。
【0083】
エントロピーエンコーダ(725)は、エンコードされたブロックを含むようにビットストリームをフォーマットするように構成されている。エントロピーエンコーダ(725)は、HEVC標準等の適切な標準にしたがった種々の情報を含むように構成される。一実施例では、エントロピーエンコーダ(725)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及びビットストリーム内の他の適切な情報を含むように構成される。開示された主題にしたがってインターモード又は双方向予測モードのいずれかのマージサブモードにおけるブロックをコーディングする場合、残差情報は存在しないことに留意されたい。
【0084】
図8は、本開示の別の実施形態によるビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部であるコーディングされた画像を受信し、コーディングされた画像をデコードして再構成画像を生成するように構成されている。一実施形態では、ビデオデコーダ(810)は、図3の実施形態のビデオデコーダ(410)の代わりに使用される。
【0085】
図8の実施例では、ビデオデコーダ(810)は、図8に示すように一緒に結合されたイントラデコーダ(872)と、エントロピーデコーダ(871)と、インターデコーダ(880)と、残差デコーダ(873)と、再構成モジュール(874)と、及びを含む。
【0086】
エントロピーデコーダ(871)は、コード化された画像から、コード化された画像を作成するシンタックス要素を表す特定のシンボルを再構成するように構成することができる。かかるシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双方向予測モード、マージサブモード又は別のサブモードにおけるインターモード、双方向予測モード等)、予測情報(例えば、イントラ予測情報又はインター予測情報)を含むことができ、それらは、イントラデコーダ(822)又はインターデコーダ(880)によって、それぞれ使用される特定のサンプル又はメタデータ、例えば量子化された変換係数の形態の残差情報等、を識別することができる。実施例において、予測モードがインターであるか双予測されたモードであるときに、インター予測情報はインターデコーダ(880)に提供される;そして、予測タイプが先行復号化タイプであるときに、先行復号化情報はイントラ・デコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0087】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0088】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0089】
残差デコーダ(873)は、逆量子化変換係数(de-quantized transform coefficients)を抽出するために逆量子化を実行し、逆量子化変換係数を処理して残差を周波数領域から空間領域にコンバートするように構成される。残差デコーダ(873)はまた、特定の制御情報(量子化器パラメータ(QP)を含む)を必要とすることがあり、その情報は、エントロピーデコーダ(871)によって提供され得る(データパスは、低ボリューム制御情報のみであるため、図示されていない)。
【0090】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)による出力としての残差と、(場合によってはインター又はイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構成ブロックを形成するように構成され、これは、再構成画像の一部であり得、したがって、再構成ビデオの一部であり得る。デブロッキング等の他の適切な動作を行って、視覚品質を改善することができることに留意されたい。
【0091】
なお、ビデオエンコーダ(403)、(603)及び(703)と、ビデオデコーダ(410)、(510)、及び(810)とは、任意の適切な技術を用いて実現することができる。一実施形態では、ビデオエンコーダ(403)、(603)及び(703)と、ビデオデコーダ(410)、(510)及び(810)とは、1つ以上の集積回路を使用して実装され得る。別の実施形態では、ビデオエンコーダ(403)、(603)及び(603)と、ビデオデコーダ(410)、(510)、及び(810)とは、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実現することができる。
【0092】
II.波面並列処理
【0093】
いくつかの実施態様において、波面並列処理(WPP)が並列化のために使用される。WPPは、高いコーディング損失を生じることなく並列に処理できる画像パーティションの作成を可能にする。図9は、WPPの一実施例を示す。画像(又はスライス又はタイル)(900)は、例えば4行のCTUに分割することができる。CTUの各行は、2つのCTUの遅延と並行して処理することができる。CTU(901)は、隣接するブロック(左、上、左上、右上)がデコードされた後にデコードされ得る。したがって、隣接するCTU行間の画像内予測を用いることができる。例えば、CTU (901)内のブロックのデコードは、矢印(902)によって示されるように、左、上、左上、又は右上のCTU内の隣接ブロックを参照することができる。
【0094】
さらに、すべてのCTU行の先頭(beginning)において、矢印(903)によって示されるように、コンテキストベースの適応算術実行(CABAC)コンテキストは、右上のCTUの末尾のコンテキストを使用してリセットされる。したがって、隣接するCTU行間のコーディング依存性(画像内予測及びCABACコンテキストモデリング)は、例えばタイル又はスライスパーティションに基づいて、他の並列コーディングツールと比較して保存することができる。その結果、より高いコーディング効率が達成され得る。
【0095】
いくつかの実施態様において、例えば、128×128ピクセルなどの、より大きなCTUサイズが許容される。1CTUの遅延を伴うWPPを使用することができる。CTUサイズが大きい場合、128×128CTU中の処理画素数は、2つの64×64CTU中の処理画素数よりも大きいため、1つのCTUでCABAC学習に十分であり得る。図10は、1つのCTUの遅延を有するWPPの別の例を示す。図9の例と同様に、画像(又はスライスもしくはタイル)(1000)は、例えば、4行のCTUに分割され得る。各行のCTUは、1つのCTUの遅延と並行して処理することができる。CTU (1001)は、隣接するブロック(左、上、及び左上)がデコードされた後にデコードされ得る。右上のCTU内の参照ブロックは、交差矢印(1002)によって示されるように、許可されない。第1行のCTUの後の各行中の第1CTUを処理するとき、CABAC確率は、矢印(1003)によって示されるように、第1CTUの上側CTUから継承され得る。
【0096】
III. WPPの問題点
【0097】
より大きなCTUサイズを使用すると、WPPにペナルティを有する。特定の解像度の画像では、より大きいCTUサイズを使用すると並列処理性能が低下する。例えば、より大きなCTUサイズは、より少ない数のCTU行をもたらし、その結果、並列化可能な処理スレッドの数がより少なくなる可能性がある。加えて、WPPのパイプライン遅延は、より大きなCTUサイズのためにより長くなり得る。さらに、より大きなCTUサイズは、CTUの処理(例えば、エンコード/デコード)の処理時間においてより大きな分散を有し得、並列処理における遅延の増加へと導く。
【0098】
WPPはCTU行のレベルで処理される。いくつかの実施形態において、CTUサイズは、例えば、シーケンスパラメータセット(SPS)に含まれるシーケンスレベルでシグナリングされ、これは、画像レベル又はスライスレベルでCTUサイズを適合させるための柔軟性がないことを意味する。
【0099】
画像が幅よりも小さい高さを有する場合、画像ラインバッファは水平画素の数及び関連するサイド情報(the related side information)に依存するので、画像ラインバッファのサイズは比較的大きい。
【0100】
IV.WPPの改善
【0101】
1.幅より大きい高さが保証されている画像
【0102】
上記の問題を解決するために、いくつかの実施形態では、エンコーダは、ビデオシーケンスをエンコードするプロセス中に、より長い方の画像サイドを高さとして、より短い方の画像サイドを幅として有する画像をコード化するように構成されることができる。このようにして、ビデオシーケンス内の画像は、それぞれ、より短い画像サイドを高さとして有する場合よりも多くのCTU行に分割することができる。したがって、WPPが有効になっている場合は、より多くの並列スレッドを使用して、より良好な並列処理性能を得ることができる。加えて、プロセスは、より短い画像幅のために、より小さいラインバッファサイズが生じ得る。
【0103】
上記のコーディングモードにおけるビデオシーケンスをエンコードする決定は、デコーダ能力の知識などの特定の条件に基づくことができる。例えば、ターゲットデコーダがマルチコアCPUで構成され、並列処理(潜在的にWPP)に適する場合、上記のコーディングモードを有効にすることができる。
【0104】
上記のコーディングモードが有効であるとき、コード化されたビデオシーケンス内の画像が高さよりも大きい(又は等しい)幅を有することが保証されることをデコーダに知らせるために、シンタックス要素をシグナリングすることができる。例えば、シンタックス要素は、コード化されたビデオシーケンス内の各画像が高さよりも大きい幅を有することを示す。このシグナリングに基づいて、デコーダは、従って、後続のシンタックス要素を復号化することができ、又は、WPPがコード化されたビデオシーケンスをデコードするために使用できるかどうかを決定することができる。
【0105】
いくつかの実施形態では、高レベルシンタックス要素が、コード化されたビデオシーケンス内の画像の高さが、コード化されたビデオシーケンス内の画像の幅よりも小さくないことが保証されるかどうかを示すために使用される。例えば、高レベルシンタックス要素を、ビデオシーケンス内の画像が、その画像の幅以上の高さを有することを保証するために使用することができる。
【0106】
高レベルシンタックス要素は、ビデオエンコーダで生成し、デコーダにシグナリングすることができる。例では、高レベルシンタックス要素は、補足的な拡張情報(SEI)メッセージでシグナリングされる。例えば、高レベルシンタックス要素は、一連のビデオユーザビリティ情報(VUI)パラメータの一部としてシグナリングされる。
【0107】
SEIメッセージ及びVUIパラメータの例示的なシンタックス及びセマンティックスは、例えば、コード化されたビデオビットストリーム用の多用途の補足拡張情報メッセージ(ドラフト5)(Versatile Supplemental Enhancement Information Messages for Coded Video Bitstreams (Draft 5))、JVET-S2007-v7, ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11の合同ビデオ専門家チーム(JVET)、第18回会議:2020年4月15~24日の電話会議による、の標準によって定義することができる。標準案は、参照によりその全体が本明細書に組み込まれる。例えば、上記標準案で定義されたVUIパラメータ及びSEIメッセージは、ビデオコーディング仕様で指定された方法でコード化されたビデオビットストリーム内で伝達することができ、又は、かかるコード化されたビデオビットストリームを利用するシステムの仕様によって決定される他の手段によって伝達することもできる。例えば、SEIメッセージ及びVUIパラメータは、Rec.ITU-T H.266,ISO/IEC 23090-3によって指定されるように、コード化されたビデオビットストリーム、又は他のタイプのコード化されたビットストリームと共に使用することができる。
【0108】
一実施例では、高レベルシンタックス要素は、例えば、コード化されたビデオビットストリーム内のシーケンスパラメータセット(SPS)に含まれる、ビデオシーケンスレベルでシグナリングされる。一実施例では、高レベルシンタックス要素は、例えば、画像パラメータセット(PPS)に含まれる画像レベルでシグナリングされる。様々な実施例において、高レベルシンタックス要素は、画像をデコードするときに参照することができる任意のタイプの高レベルシンタックス要素としてシグナリングされることができる。
【0109】
いくつかの実施形態では、高レベルシンタックス要素は、width_small_height_flagとして示されるフラグである。フラグは、コード化されたビデオビットストリームの任意のレベルで、又はコード化されたビデオビットストリームの外部でシグナリングすることができる。一実施例において、フラグが、値 1 のような第1値を有する場合、フラグは、フラグを参照するビデオシーケンス又は画像が、画像高さよりも小さい画像幅を有することを示すことができる。フラグが、値 0 のような第2値を有する場合、フラグは、フラグを参照するビデオシーケンス又は画像が、画像高さよりも小さい画像幅を有する可能性があるか又は有さない可能性があることを示すことができる。例えば、第2値は、デコーダの観点から、画像幅が画像高さよりも小さいかどうか不明であることを示すことができる。
【0110】
一実施例では、フラグがコード化されたビデオビットストリーム内でシグナリングされない場合、デコーダは、フラグが特定の値を有することを推測することができる。一実施例では、フラグは、ビデオシーケンスを示す値又はフラグを参照する画像が、画像高さよりも小さい画像幅を有する可能性があるか又は有さない可能性があることを示す値を有すると推定される。別の例では、フラグがコード化されたビデオビットストリーム内でシグナリングされない場合、フラグを参照するビデオシーケンス又は画像が、画像高さよりも小さい画像幅を有することを示す値をフラグが有することを、デコーダが推定することができる。
【0111】
一実施例では、width_sight_height_flagは、下記の表1に示すように、SPSで署名することができる。
【表1】
【0112】
いくつかの実施形態において、width_beft_flagを受信又は推測した後、デコーダは、したがって、ビデオシーケンス又はフラグを参照する画像をデコードすることができる。例えば、width_small_height_flagの値に基づいて、デコーダは、ビデオシーケンス又は画像の幅及び高さを決定するためにシンタックス要素をデコードすることができる。
【0113】
一実施形態では、width_beight_flagが、画像幅がビデオシーケンス(又は画像)の画像高さよりも小さいことを示す値を有する場合、画像幅は、第1シンタックス要素(例えば、SPS又はPPS)でシグナリングすることができ、画像高さと画像幅との間の差分は、第2シンタックス要素(例えば、SPS又はPPS)でシグナリングすることができる。第2シンタックス要素は、画像高さが常に画像幅より大きい(又は等しい)ので、符号なし整数としてシグナリングすることができ、差分値の符号は不要である。一実施例では、第1シンタックス要素は、コード化されたビデオビットストリーム内の第2シンタックス要素の前にシグナリングされる。一実施例では、第2シンタックス要素は、第1シンタックス要素の前にシグナリングされる。いくつかの実施例では、第1シンタックス要素は、画像幅の代わりに画像高さを表現するために使用され、第2のシンタックス要素は、差分を表現するために使用される。
【0114】
第1及び第2のシンタックス要素にシグナリングする上記の構成が与えられれば、第1及び第2のシンタックス要素の予め定義されたセマンティックスに基づいて、したがって、デコーダは、画像の幅がビデオシーケンス(又は画像)の画像の高さよりも小さいことが保証されていることを示す値を有するwidth_smaller_than_height_flagを受信することに応答して、第1及び第2のシンタックス要素を適切に解釈できる。
【0115】
一実施形態では、width_smaller_than_height_flagは、画像幅がフラグを参照するビデオシーケンス(または画像)に対する画像高さよりも小さい可能性があるか又は小さくない可能性があることを示す値を有すると、画像幅と画像高さは、それぞれ異なるシンタックス要素でシグナリングされ得る。例えば、画像の幅は第1シンタックス要素によって示され、一方、画像高さは第2シンタックス要素によって示される。したがって、デコーダは、これらの2つのシンタックス要素をデコードして、フラグを受信したときに、画像幅及び画像高さを決定することができる。
【0116】
一実施例では、width_beft_flagを受信又は推論した後に、デコーダは、width_beft_height_flagの値に基づいて、ビデオシーケンス又は画像をデコードするために使用される並列処理コーディング方法を決定することができる。例えば、並列処理のための候補コーディング方法は、タイル、WPP、スライス、サブ画像等を含むことができる。一実施形態では、フラグは、画像高さが画像幅よりも大きいことが保証されることを示す場合、デコーダは、ビデオシーケンスをデコードするためにWPPが使用されるべきであると決定しし得る。上記の選択を行うために、他の要因(例えばCTUサイズ)をwidth_small_height_flagと組み合わせて考慮し得る。一実施形態では、width_beft_flagがシグナリングされるとき、WPP以外の特定の並列処理方法の使用可能性を示すシンタックス要素はシグナリングされないことがあり、コード化されたビットをセーブするためにデコーダによって推論することができる。
【0117】
いくつかの実施形態では、エンコーダにおける入力ビデオシーケンスが幅よりも小さい高さを有する場合、前処理されたビデオシーケンスが高さよりも大きい幅を有することを保証するために、入力ビデオシーケンス上で前処理を実行することができる。例えば、前処理の結果として、方向は変化することができ、入力ビデオシーケンスの幅及び高さは前処理ビデオシーケンスの高さ及び幅になる。
【0118】
一実施形態では、回転動作は入力ビデオシーケンス上で実行され、前処理ビデオシーケンスを生成することができる。例えば、入力ビデオシーケンスは、時計回り又は反時計回りに90度回転することができる。時計回りに90度回転すると、入力ビデオシーケンス内の画像の左側の画素が、前処理ビデオシーケンス内の画像の上側に移動される。反時計回りに90度回転すると、入力ビデオシーケンス内の画像の左側の画素が、前処理ビデオシーケンス内の画像の下側に移動される。いずれの場合も、入力ビデオシーケンスの幅及び高さは、前処理ビデオシーケンスの高さ及び幅となる。
【0119】
上述の前処理されたビデオシーケンスに対応して、幅情報は、最初に、例えば、SPSでシグナリングすることができる。その後、高さと幅との間の差分は、例えば、SPSにおいて、符号なし整数としてシグナリングされることができる。したがって、高さ及び幅を示すコード化されたビットをセーブすることができる。
【0120】
一実施例では、前処理されたビデオシーケンスに対応するコード化されたビデオビットストリーム内でエンコーダにおいて回転動作が行われるかどうかのシグナリングは存在しない。別の例では、回転動作が実行されるかどうかを示すシンタックスは、前処理されたビデオシーケンスに対応するコード化されたビデオビットストリームにおいてシグナリングされ得る。
【0121】
いくつかの実施形態では、コード化されたビデオシーケンスに対して画像幅が画像高さよりも小さいことを保証するための前処理と組み合わせて、上述した高レベルシンタックス要素、例えばwidth_sight_flagは、高さがコード化されたビデオシーケンス内の幅よりも小さくないことを保証するかどうかを示すためにシグナリングすることができる。前処理に対応して、高レベルシンタックス要素は、例えば1の値に設定することができる。例えば、前処理(例えば、回転動作)が実行されるか否かにかかわらず(入力ビデオシーケンスの高さ及び幅の長さに依存する)、高レベルシンタックス要素は、高さがコード化されたビデオシーケンス内の幅よりも小さくないことを保証されるように信号を送ることができる。
【0122】
対照的に、エンコーダにおいて前処理が使用可能にされない場合、高レベルシンタックス要素は、幅がコード化されたビデオシーケンス内の高さよりも小さい可能性があるか又は小さくない可能性があることを示すためにシグナリングすることができる。あるいは、高レベルシンタックス要素は、シグナリングされず、かつ、幅が高さよりも小さい可能性があるか又は小さくない可能性があることを示す値を有するように、デコーダによって推測することができる。
【0123】
一実施例では、画像高さがコード化されたビデオシーケンスの画像幅よりも大きいことを保証するための前処理では、高レベルシンタックス要素は、コード化されたビデオシーケンス内で高さが幅よりも小さくないことが保証されているかどうかを示すためにシグナリングされない。例えば、前処理は、ビデオコーディング標準(例えば、VVC)で指定されることができる。したがって、デコーダ及びエンコーダは、高さが幅よりも小さくないことが保証されるという同じ理解を持つことができる。したがって、デコーダは、いくつかのシンタックス要素をデコードして、例えば、画像の高さが画像の幅よりも大きいと仮定して画像の幅及び高さを取得したり、又は、複数の候補並列処理方法から適切な並列処理方法を選択する方法を決定したりすることができる。
【0124】
2.柔軟なCTUサイズ
【0125】
いくつかの実施形態においては、上述のように、CTUサイズは、WPPコーディング性能に影響を及ぼすことができ、例えば、SPSにおいてシグナリングすることができる。いくつかの実施形態では、特定の画像又は画像内の領域に対してより良好なWPPコーディング性能を達成するために、CTUサイズは、シーケンスレベルでシグナリングされる代わりに、画像レベル又はスライスレベルでシグナリングすることができる。例えば、CTUサイズは、PPS又はスライスヘッダでシグナリングすることができる。したがって、異なる画像又はスライスは、異なるCTUサイズを有することができ、その結果、異なる数のCTU行が生じる。このようにして、WPPの異なる粒度を達成することができる。
【0126】
いくつかの例では、異なる種類のスライスが異なるCTUサイズを使用することができる。いくつかの実施形態において、3種類のスライス:I、P及びBスライスがあり得る。Iスライスはイントラ予測を使用し、Pスライスは1つの参照画像リストでイントラ予測とインター予測の両方を使用できる、Bスライスはイ2つの参照画像リストを使用したイントラ予測とインター予測の両方を使用できる。一実施例では、より小さいCTUサイズを、イントラコード化スライス(Iスライス)に使用することができ、その結果、イントラコード化スライスの処理速度を加速するために、より多くのWPPスレッドを使用することができる。一実施例では、必要なWPPスレッドが少なくなるように、より大きなCTUサイズが、より高い時間レベルを有する他のタイプのスライス(例えば、Pスライス又はBスライス)に使用される。場合によっては、Iスライスの処理の複雑さがBスライス又はPスライスよりも高い。
【0127】
いくつかの実施形態では、異なるタイプのスライスに異なるCTUサイズ(スレッドの数が異なる)を適用すると、異なるスライスの処理時間(又はワークロード)のバランスをとることができ、その結果、それらのスライスを含む画像の処理時間が全体的に短くなる。
【0128】
いくつかの実施形態では、異なるタイル又はサブ画像は、異なるCTUサイズ、したがって異なるCTU行及びWPPスレッドを有することができるように、CTUサイズはタイルレベル又はサブ画像レベルにおいてシグナリングすることができる。いくつかの実施形態において、画像レベル(PPSレベル)及びスライスレベルでのCTUサイズのシグナリングは、シーケンスレベル(SPSレベル)においてCTUサイズのシグナリングと組み合わせることができる。実施例において、最大CTUサイズはSPSレベルにおいてシグナリングすることができるが、画像レベル及び/又はスライスレベルなどの他のレベルでは、より小さいCTUサイズをさらにシグナリング氏、そのレベルではより多くのWPPスレッドを許容することができる。SPSレベルでシグナリングされた最大CTUサイズを使用する画像又はスライスに対して、これらの画像又はスライスに対してコード化されたビットをセーブするためのCTUサイズのシグナリングは存在し得ない。
【0129】
実施例において、CTUサイズは、シーケンスレベルでシグナリングされるが、画像レベル及び/又はスライスレベルなどの他のレベルでは、より小さい又はより大きいCTUサイズは、そのレベルでより多く又はより少ないWPPスレッドを可能にするためにさらにシグナリングすることができる。同様に、シークエンスレベルにおいてシグナリングされるのと同じCTUサイズを使用する画像又はスライスに対して、CTUサイズのシグナリングは存在し得ない。
【0130】
V.ピクチャ幅がピクチャの高さより小さいことが保証されているプロセス
【0131】
図11は、本開示の一実施形態による、プロセス(1100)の概略を示す、フローチャートを示す。プロセス(1100)は、ブロックの再構成に使用することができる。様々な実施形態では、プロセス(1100)は、端末デバイス(310)、(320)、(330)及び(340)における処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路などの処理回路によって実行されることができる。いくつかの実施形態では、プロセス(1100)は、ソフトウェア命令で実施され、その後、処理回路がソフトウェア命令を実行すると、処理回路は、プロセス(1100)を実行する。プロセスは(S1101)から始まり、(S1110)に進む。
【0132】
(S1110)では、第1シンタックス要素は、コード化されたビデオビットストリームで受信することができる。第1シンタックス要素は、コード化されたビデオビットストリームのビデオシーケンス内の複数の各画像の高さがビデオシーケンス内のそれぞれの画像の幅以上であるかどうかを示すことができる。第1シンタックス要素は、高レベルシンタックス要素として伝送されることができる。例えば、第1シンタックス要素は、SEIメッセージ、VUIパラメータセット(又はVUIシンタックス構造体と称される)、SPSなどで送信することができる。
【0133】
実施例において、第1シンタックス要素の第1値は、ビデオシーケンス内の各画像の幅がビデオシーケンス内のそれぞれの画像の高さよりも小さいことを示し、第1シンタックス要素の第2値は、ビデオシーケンス内の画像の幅がビデオシーケンス内の画像の高さよりも小さいか又は小さくないことがあることを示す。一実施形態では、第1シンタックス要素は、ビットストリームにおいてシグナリングされない。デコーダは、第1シンタックス要素の第1値を第2値であると推測できる。
【0134】
一実施形態において、エンコーダでコード化されたビデオビットストリームのビデオシーケンスに対応する入力ビデオシーケンスは、その幅よりも小さい高さを有する。入力ビデオシーケンスの高さは、コード化されたビデオビットストリームのビデオシーケンス内の画像の幅としてコード化され、入力ビデオシーケンスの幅は、コード化されたビデオビットストリームのビデオシーケンス内の画像の高さとしてコード化される。例えば、入力ビデオシーケンス内の画像の高さ及び幅をスイッチするために、エンコーダにおいて回転前処理を行うことができる。
【0135】
一実施形態において、ビデオシーケンス内の画像の幅を示す第2シンタックス要素をさらに受信する。ビデオシーケンス内の画像の高さとビデオシーケンス内の画像の幅との間の差異を示す第3シンタックス要素を受信する。差異は符号なしの整数(unsigned integer)であり得る。例えば、第1シンタックス要素がコード化されたビデオのビデオシーケンスを示す場合、ビデオシーケンス内の画像の高さが、ビデオシーケンス内の画像の幅以上であることが保証される場合、第2シンタックス及び第3シンタックスは、ビットストリーム中でシグナリングされることができる。
【0136】
一実施形態では、複数の第4シンタックス要素は、コード化されたビデオビットストリーム中で受信され得る。複数の第4シンタックス要素は、それぞれビデオシーケンス内の複数のスライスのうちのそれぞれ1に関連することができる。複数の第4シンタックス要素は、異なるタイプのそれぞれのスライスに対して異なるCTUサイズを示す。例えば、複数のスライスにわたって、スライスタイプIは、スライスタイプB又はPよりも小さなCTUサイズを有する。
【0137】
一実施形態において、第5シンタックス要素を受信することができる。第5シンタックス要素は、コード化されたビデオビットストリーム中の画像レベルでシグナリングすることができる。第5シンタックス要素はビデオシーケンス内の画像のうちの1つに対するCTUサイズを示すことができる。一実施例において、第4シンタックス要素及び第5シンタックス要素の両方は、ビデオシーケンスに対して伝送される。一実施例において、第4及び第5シンタックス要素の使用法のために、第4シンタックス要素又は第5シンタックス要素のみが、ビデオシーケンスに対して伝送される。
【0138】
いくつかの実施形態では、異なる画像又はスライスが異なるCTUサイズを使用することができるように、シークエンスレベルでのCTUサイズのシグナリングと、画像又はスライスレベルでのCTUサイズのシグナリングと、を組み合わせることができる。例えば、第6シンタックス要素を受信することができる。第6シンタックス要素は、ビットストリームのSPSに含まれることができて、ビデオシーケンスの第1CTUサイズを示すことができる。第6シンタックス要素に加えて、画像レベル又はスライスレベルにおいてシグナリンスされる第7シンタックス要素を受信することができる。第7シンタックス要素は、それぞれの画像の第2CTUサイズ又はビデオシーケンス内のそれぞれのスライスを示すことができる。一実施例において、第1CTUサイズはビデオシーケンスの最大CTUサイズであり、第2CTUサイズは最大CTUサイズより小さい。
【0139】
(S1120)において、コード化されたビデオビットストリームのビデオシーケンス内の画像は、コード化されたビデオビットストリームのビデオシーケンス内の複数の各画像の高さが、ビデオシーケンス内のそれぞれの画像の幅以上であるかどうか示す第1シンタックス要素にしたがって決定される方向で処理され得る。
【0140】
例えば、第1シンタックス要素が、ビデオシーケンス内の画像の高さがビデオシーケンス内の画像の幅以上であることが保証されないことを示す値を有するか又は有することが推定される場合、デコーダは、現在のHEVC又はVVC標準において定められるのと同様の方法でビデオシーケンスのデコードを進めることができる。
【0141】
第1シンタックス要素が、ビデオシーケンス内の画像の高さがビデオシーケンス内の画像の幅以上であることが保証されることを示す値を有するか又は有することが推定される場合、
デコーダは第2及び第3シンタックス要素に基づいて画像幅と高さの決定を進めることができる。
また、デコーダは、複数の候補並列処理方法からWPPを選択するように決定することができ、第1シンタックス要素及び任意の他のファクタに基づいてビデオシーケンス内の画像を処理することができる。
【0142】
デコーダはさらに、第4及び第5のシンタックス要素又は第6及び第7のシンタックス要素に基づいて、画像又はスライスのCTUサイズを決定することができる。
その後、デコーダは、画像又はスライスを処理するために使用される多数のスレッドを決定することができる。したがって、デコーダは、WPP法を使用して画像又はスライスを処理するようにソフトウェア又はハードウェアリソースを構成することができる。その結果、ビデオシーケンスに対応する再構成画像を生成することができる。プロセス(1100)は(S1199)に進み、(S1199)で終了することができる。
【0143】
VI. コンピュータシステム
【0144】
上記の技術は、コンピュータ可読命令を用いたコンピュータソフトウェアとして行うことができて、物理的に一つ以上のコンピュータ可読媒体に格納されることができる。例えば、図12は、開示された主題の特定の実施例を実施するのに適しているコンピュータシステム(1400)を示す。
【0145】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、又は類似のメカニズムの対象となり得る任意の適切な機械コード若しくはコンピュータ言語を使用してコーディングされることができ、直接実行されることができるか、又は、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)等による、実施、マイクロコード実行等を介して実行されることができる命令を含むコードを作成する。
【0146】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、物品のインターネット等を含む種々のタイプのコンピュータ又はその構成要素上で実行されることができる。
【0147】
コンピュータシステム(1200)のための図12に示されるコンポーネントは、例示的な性質のものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能性に関する制限を示唆することを意図するものではない。また、コンポーネントの構成は、コンピュータシステム(1200)の例示的な実施形態に示されるコンポーネントのいずれか1つ又は組み合わせに関連する依存性又は要件を有すると解釈されるべきではない
【0148】
コンピュータシステム(1200)は、特定のヒューマンインタフェース入力デバイスを含み得る。このようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スイッピング、データグローブの動き)、音声入力(例えば、音声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介して、一人又は複数の人間ユーザによる入力に応答し得る。また、ヒューマンインタフェースデバイスは、オーディオ(例えば、音声、音楽、周囲の音声)、画像(例えば、走査画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体画像を含む3次元ビデオ)等の、人間による意識的入力に必ずしも直接関係しない特定の媒体を捕捉するために用いられ得る。
【0149】
入力ヒューマンインタフェースデバイスには、次のものが1つ以上含まれ得る(それぞれ1つのみ表されている):キーボード(1201)、マウス(1202)、トラックパッド(1203)、タッチスクリーン(1210)、データグローブ(図示せず)、ジョイスティック(1205)、マイクロホン(1206)、スキャナ(1207)、カメラ(1208)。
【0150】
コンピュータ・システム(1200)はまた、特定のヒューマンインタフェース出力デバイスを含み得る。かかるヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通して、1人又は複数の人間ユーザの感覚を刺激し得る。かかるヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1210)、データグローブ(図示せず)、又はジョイスティック(1205)による触覚フィードバック)、入力デバイスとして働かない触覚フィードバックデバイスであることもでき)と、オーディオ出力デバイス(例えば、スピーカー(1209)、ヘッドフォン(図示せず))と、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1210)であり、各々が触覚フィードバック能力を有するか又は有さず、各々が触覚フィードバック能力を有するか又は有さず、そのうちのいくつかは、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)等の立体出力のような手段を介して2次元視出力又は3次元以上の出力を可能にし得るもの)と、プリンタ(図示せず)と、を含み得る。
【0151】
コンピュータシステム(1200)はまた、人間がアクセス可能な記憶デバイスと、それらのアクセス可能な媒体とを含むことができ、媒体は、例えば、CD/DVD等の媒体(1221)によるCD/DVD ROM/RWを含む光学媒体ドライブ(1220)、USBメモリ(1222)、着脱可能ヘッドドライブ又はソリッドステートドライブ(1223)、テープ、フロッピーディスク(図示せず)等の従来の磁気媒体、セキュリティドングル等の特殊化されたROM/ASIC/PLDベースデバイス等である。
【0152】
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波、又は他の一時的な信号を包含しないことを理解されたい。
【0153】
コンピュータシステム(1200)はまた、1つ以上の通信ネットワーク(1255)へのインタフェース(1254)を含むことができる。
ネットワークは、例えば、無線、有線、光であり得る。
ネットワークは、さらに、ローカル、広域、大都市、車両及び工業、リアルタイム、遅延耐性等であり得る。
ネットワークの例としては、イーサネット、無線LAN、GSM、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TV、CANBusを含む産業用及び車両用を含む。
特定のネットワークは、一般に、特定の汎用データポート又は周辺バス(1249)に接続される外部ネットワークインタフェースアダプタ(例えば、コンピュータシステム(1200)のUSBポート)を必要とし、他のネットワークは、一般に、以下に説明するシステムバスに接続されることにより、コンピュータ・システム(1200)のコアに統合される(、例えば、PCコンピュータシステムへのイーサネットインタフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインタフェースである)。
これらのネットワークのいずれかを使用して、コンピュータシステム(1200)は、他のエンティティと通信することができる。
かかる通信は、単指向性通信、受信のみ(例えば、放送テレビ)通信、単指向性送信専用(例えば、特定のCANバスデバイスへのCANバス)通信、又は、例えばローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの、双方向通信であることができる。
特定のプロトコル及びプロトコルスタックは、上述のように、それらのネットワーク及びネットワークインタフェースの各々で使用されることができる。
【0154】
前述のヒューマンインタフェースデバイス、人間がアクセス可能な記憶デバイス、及びネットワークインタフェースは、コンピュータシステム(1200)のコア(1240)に接続されることができる。
【0155】
コア(1240)は、1つ以上の中央処理デバイス(CPU)(1241)、グラフィックス処理デバイス(GPU)(1242)、フィールドプログラマブルゲートエリア(FPGA)(1243)の形態の特殊なプログラマブル処理デバイス、特定のタスクのためのハードウェアアクセラレータ(1244)等を含むことができる。これらのデバイスは、読出し専用メモリ(ROM)(1245)、ランダムアクセスメモリ(1246)、内部大容量記憶デバイス、例えば内部非ユーザアクセス可能ハードドライブ、SSD等(1247)と共に、システムバス(1248)を介して接続され得る。いくつかのコンピュータシステムでは、システムバス(1248)は、追加のCPU、GPU等による拡張を可能にするために、1つ又は複数の物理プラグの形態でアクセス可能である。周辺デバイスは、コアのシステムバス(1248)に直接接続するか、又は周辺バス(1249)を介して接続することができる。実施例において、スクリーン(1210)は、グラフィックスアダプタ(1250)に接続されることができる。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0156】
CPU(1241)、GPU(1242)、FPGA(1243)、及びアクセラレータ(1244)は、組み合わされて、上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1245)又はRAM(1246)に格納されることができる。移行データは、RAM(1246)に格納されることもできるが、永久データは例えば内部大容量記憶デバイス(1247)に格納されことができる。1つ以上のCPU(1241)、GPU(1242)、大容量記憶デバイス(1247)、ROM(1245)、RAM(1246)等と密接に関連付けることができるキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索を可能にすることができる。
【0157】
コンピュータ可読媒体は、各種のコンピュータ実施動作(computer-implemented operations)を実行するためにその上のコンピュータコードを有することができる。メディア及びコンピュータコードは特別に設計されたそれらであることができて、本開示のために作成されることができる、又は、それらはよく公知で、コンピュータソフトウェア技術の技術を有するそれらが利用できる種類でありえる。
【0158】
一例として、限定するものではなく、アーキテクチャ(1200)、具体的にはコア(1240)を有するコンピュータシステムは、1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能性を提供することができる。かかるコンピュータ可読媒体は、コア-内部大容量記憶デバイス(1247)又はROM(1245)等の一時的でない性質のコア(1240)の特定の記憶デバイスと同様に、上述のようにユーザがアクセス可能な大容量記憶デバイスに関連する媒体であってもよい。
本開示の様々な実施形態を実装するソフトウェアは、かかるデバイスに記憶され、コア(1240)によって実行され得る。コンピュータ読取可能媒体は、特定のニーズに応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(1240)及びその中の具体的にプロセッサ(CPU、GPU、FPGA等を含む)に、RAM (1246)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスにしたがって、かかるデータ構造を変更することを含む、本明細書に記載された特定のプロセス又は特定の部分を実行させることができる。付加的に又は代替的に、コンピュータシステムは、回路(例えば、アクセラレータ(1244))内に配線された、又は他の方法で具現化されたロジックの結果として、機能性を提供することができ、これは、本明細書に記載される特定のプロセス又は特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、又はソフトウェアと共に動作することができる。ソフトウェアへの言及は、論理を含み、また、必要に応じて、その逆も可能である。コンピュータ読取り可能媒体への参照は、実行のためのソフトウェアを記憶する(集積回路(IC)等の)回路、実行のためのロジックを具体化する回路、又は適切な場合にはその両方を含むことができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを包含する。
【0159】
付録:
略称
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:コーディングユニット
【0160】
本開示はいくつかの例示的な実施形態を説明しているが、本発明の範囲内に入る、変更、置換、及び様々な均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、本発明の原理を実施し、したがってその概念及び範囲内にある多数のシステム及び方法を創造することができることが理解されよう。

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12