図1は、本開示のある実施態様に従った通信システム(100)の簡略化されたブロック図を示している。通信システム(100)は、例えば、ネットワーク(150)を介して、互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続された第1のペアの端末デバイス(110)及び(120)を含む。図1の例において、第1のペアの端末デバイス(110)及び(120)は、データの一方向送信を行う。例えば、端末デバイス(110)は、ネットワーク(150)を介して他の端末デバイス(120)に送信するために、ビデオデータ(例えば、端末デバイス(110)によってキャプチャされるビデオピクチャのストリーム)をコード化することがある。コード化されたビデオデータは、1つ以上のコード化されたビデオビットストリームの形態で送信されることができる。端末デバイス(120)は、ネットワーク(150)からコード化されたビデオデータを受信し、コード化されたビデオデータを復号化してビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することがある。一方向性データ伝送は、媒体提供アプリケーション及び同等のものにおいて一般的なことがある。
別の例において、通信システム(100)は、例えば、ビデオ会議中に発生することがあるコード化されたビデオデータの双方向伝送を行う第2のペアの端末デバイス(130)及び(140)を含む。データの双方向伝送のために、ある例において、端末デバイス(130)及び(140)の各端末デバイスは、ネットワーク(150)を介して端末デバイス(130)及び(140)の他方の端末デバイスに伝送するために、ビデオデータ(例えば、端末デバイスによってキャプチャされるビデオピクチャのストリーム)をコード化することがある。端末デバイス(130)及び(140)の各端末デバイスは、端末デバイス(130)及び(140)の他方の端末デバイスによって送信されるコード化されたビデオデータを受信することもあり、コード化されたビデオデータを復号化してビデオピクチャを復元することがあり、復元されたビデオデータに従ってアクセス可能なディスプレイデバイスでビデオピクチャを表示することがある。
図1の例において、端末デバイス(110)、(120)、(130)及び(140)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示されることがあるが、本開示の原理は、それらに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ及び/又は専用のビデオ会議機器との適用を見出す。ネットワーク(150)は、例えば、ワイヤライン(有線)及び/又は無線通信ネットワークを含む、端末デバイス(110)、(120)、(130)及び(140)の間でコード化されたビデオデータを伝達する、任意の数のネットワークを表す。通信ネットワーク(150)は、回線交換及び/又はパケット交換チャネル内のデータを交換することがある。代表的なネットワークは、通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットを含む。本開示の目的のために、ネットワーク(150)のアーキテクチャ及びトポロジは、以下に説明されない限り、本開示の動作に重要でないことがある。
図2は、開示する主題のためのアプリケーションの例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を図示している。開示する主題は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティック及び同等物を含むデジタル媒体上の圧縮ビデオの格納などを含む、他のビデオ使用可能アプリケーションに等しく適用可能であることができる。
ストリーミングシステムは、例えば、圧縮されていないビデオピクチャのストリーム(202)を生成する、ビデオソース(201)を含むことができるキャプチャサブシステム(213)、例えば、デジタルカメラを含んでよい。ある例において、ビデオピクチャのストリーム(202)は、デジタルカメラによって撮られるサンプルを含む。符号化されたビデオデータ(204)(又はコード化されたビデオビットストリーム)と比較されるときの高いデータボリュームを強調するために太線として描かれたビデオピクチャのストリーム(202)は、ビデオソース(201)に結合されたビデオエンコーダ(203)を含む電子デバイス(220)によって処理されることができる。ビデオエンコーダ(203)は、以下により詳細に記載されるような開示する主題の態様を可能にするか或いは実装するために、ハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができる。ビデオピクチャのストリーム(202)と比較されるときのより低いデータボリュームを強調するために細線として描かれた符号化されたビデオデータ(204)(又は符号化されたビデオビットストリーム(204))は、将来の使用のためにストリーミングサーバ(205)に格納されることができる。図2のクライアントサブシステム(206)及び(208)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(205)にアクセスして、符号化されたビデオデータ(204)のコピー(207)及び(209)を取り出すことができる。クライアントサブシステム(206)は、例えば、電子デバイス(230)内にビデオデコーダ(210)を含むことができる。ビデオデコーダ(210)は、符号化されたビデオデータの入力コピー(207)を復号化し、ディスプレイ(212)(例えばディスプレイスクリーン)又は他のレンダリングデバイス(図示せず)にレンダリングされることができるビデオピクチャの出力ストリーム(211)を生成する。幾つかのストリーミングシステムにおいて、符号化されたビデオデータ(204)、(207)及び(209)(例えば、ビデオビットストリーム)は、特定のビデオコード化/圧縮標準に従って符号化されることができる。それらの標準の例は、ITU-T推奨H.265を含む。ある例において、開発中のビデオコード化標準は、多用途ビデオコード化(VVC:Versatile Video Coding)として非公式に知られている。開示する主題事項は、VVCの文脈で使用されることがある。
電子デバイス(220)及び(230)は、他のコンポーネント(図示せず)を含むことができることに留意のこと。例えば、電子デバイス(220)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(230)は、ビデオエンコーダ(図示せず)含むこともできる。
図3は、本開示のある実施態様に従ったビデオデコーダ(310)のブロック図を示している。ビデオデコーダ(310)は、電子デバイス(330)に含まれることができる。電子デバイス(330)は、受信機(331)(例えば、受信回路構成)を含むことができる。図2の例では、ビデオデコーダ(210)の代わりにビデオデコーダ(310)を使用することができる。
受信機(331)は、ビデオデコーダ(310)によって復号化されるべき1つ以上のコード化されたビデオシーケンスを受信することがあり、同一又は別の実施形態では、一度に1つのコード化されたビデオシーケンスを受信することがあり、各々のコード化されたビデオシーケンスの復号化は、他のコード化されたビデオシーケンスから独立している。コード化されたビデオシーケンスは、チャネル(301)から受信されることがあり、チャネル(301)は、コード化されたビデオデータを格納する記憶デバイスへのハードウェア/ソフトウェアリンクであることがある。受信機(331)は、コード化されたビデオデータを、他のデータ、例えば、コード化されたオーディオデータ及び/又は補助的なデータストリームと共に受信することがあり、それらは、それらのそれぞれの使用エンティティ(図示せず)に転送されることがある。受信機(331)は、コード化されたビデオシーケンスを他のデータから分離することがある。ネットワークジッタと闘うために、バッファメモリ(315)が、受信機(331)とエントロピーデコーダ/パーサ(320)(以下「パーサ(320)」)との間に結合されることがある。特定のアプリケーションにおいて、バッファメモリ(315)は、ビデオデコーダ(310)の一部である。他において、それはビデオデコーダ(310)の外側にあることができる(図示せず)。更に他において、例えば、ネットワークジッタと闘うために、ビデオデコーダ(310)の外側にあるバッファメモリ(図示せず)であることができ、加えて、例えば、再生タイミングを処理するために、ビデオデコーダ(310)の内側にある別のバッファメモリ(315)であることができる。受信機(331)が、十分な帯域幅及び制御可能性を有する記憶/転送デバイス(store/forward device)から或いは同期ネットワーク(isosynchronous network)からデータを受信しているときに、バッファメモリ(315)は必要とされないことがあるか、或いは小さくあることができる。インターネットのようなベストエフォートパケットネットワークでの使用のために、バッファメモリ(315)は要求されることがあり、比較的大きくなることができ、有利に適応サイズであることができ、ビデオデコーダ(310)の外側にあるオペレーティングシステム又は類似の要素(図示せず)に少なくとも部分的に実装されることがある。
ビデオデコーダ(310)は、コード化されたビデオシーケンスからシンボル(321)を再構成するためのパーサ(320)を含むことがある。それらのシンボルのカテゴリは、ビデオデコーダ(310)の動作を管理するために使用される情報と、図3に示されたように、電子デバイス(330)の不可欠な部分ではないが、電子デバイス(330)に結合されることができる、レンダリングデバイス(312)(例えば、ディスプレイスクリーン)のようなレンダリングデバイスを制御するための潜在的な情報とを含む。レンダリングデバイスの制御情報は、補足拡張情報(SEI(Supplemental Enhancement Information)メッセージ)又はビデオユーザビリティ情報(VUI(Video Usability Information))パラメータセットフラグメント(図示せず)の形態にあることがある。パーサ(320)は、受信されるコード化されたビデオシーケンスを構文解析/エントロピー復号化することがある。コード化されたビデオシーケンスのコード化は、ビデオコード化技術又は標準に従うことができ、可変長コード化、ハフマンコード化、コンテキスト感度を伴う又は伴わない算術コード化などを含む、様々な原理に従うことができる。パーサ(320)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータのセットである、コード化されたビデオシーケンスから抽出されることがある。サブグループは、ピクチャのグループ(GOP(Groups of Pictures))、ピクチャ、タイル、スライス、マクロブロック、コード化単位(CU(Coding Units))、ブロック、変換単位(TU(Transform Units))、予測単位(PU(Prediction Units))などを含む。パーサ(320)は、変換係数、量子化パラメータ値、運動ベクトルなどのような、コード化されたビデオシーケンス情報を抽出されることもある。
パーサ(320)は、シンボル(321)を生成するように、バッファメモリ(315)から受信するビデオシーケンスに対してエントロピー復号化/構文解析動作を実行することがある。
シンボル(321)の再構成は、コード化されたビデオピクチャ又はそれらの部分(インターピクチャ(ピクチャ間)(inter picture)及びイントラピクチャ(ピクチャ内)(intra picture)、インターブロック(ブロック間)(inter block)よびイントラブロック(ブロック内)(intra block)のような)のタイプ及び他の要因に依存して、複数の異なるユニットを含むことができる。どのユニットが含められ、どのように含められるかは、パーサ(320)によってコード化されたビデオシーケンスから構文解析されたサブグループ制御情報によって制御されることができる。パーサ(320)と以下の複数ユニットとの間のそのようなサブグループ制御情報の流れは、明瞭性のために図示されていない。
すでに述べた機能ブロックの他に、ビデオデコーダ(310)は、以下に記載するような多数の機能ユニットに概念的に細分化されることができる。商業的制約の下で作動する実用的な実装において、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には互いに統合されることができる。しかしながら、開示する主題事項を記載する目的のために、以下の機能単位に概念的に細分化することが適切である。
第1のユニットは、スケーラ/逆変換ユニット(351)である。スケーラ/逆変換ユニット(351)は、パーサ(320)からシンボル(321)として使用する変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む、制御情報並びに量子化された変換係数を受信する。スケーラ/逆変換ユニット(351)は、アグリゲータ(355)に入力されることができるサンプル値を含むブロックを出力することができる。
幾つかの場合において、スケーラ/逆変換(351)の出力サンプルは、イントラコード化されたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することができる、ブロックに関連することができる。そのような予測情報は、ピクチャ内予測ユニット(352)によって提供されることができる。幾つかの場合において、ピクチャ内予測ユニット(352)は、現在のピクチャバッファ(358)からフェッチされる周囲の既に再構成された情報を使用して、再構成中の同じサイズ及び形状のブロックのブロックを生成する。現在のピクチャバッファ(358)は、例えば、部分的に再構成された現在のピクチャ及び/又は完全に再構成された現在のピクチャをバッファする。アグリゲータ(355)は、幾つかの場合に、サンプル毎に、イントラ予測ユニット(352)が生成した予測情報を、スケーラ/逆変換ユニット(351)によって提供されるような出力サンプル情報に追加する。
他の場合には、スケーラ/逆変換ユニット(351)の出力サンプルは、インターコード化された(inter coded)潜在的に運動補償されたブロックに関連することができる。そのような場合は、運動補償予測ユニット353が、参照ピクチャメモリ357にアクセスして、予測のために使用されるサンプルをフェッチすることができる。フェッチされたサンプルをブロックに関連するシンボル(321)に従って運動補償した後に、これらのサンプルは、アグリゲータ(355)によって、出力サンプル情報を生成するために、(この場合には、残差サンプル又は残差信号と呼ぶ)スケーラ/逆変換ユニット(351)の出力に加えられることができる。運動補償予測ユニット(353)が予測サンプルをフェッチする参照ピクチャメモリ(357)内のアドレスは、例えば、X、Y、及び参照ピクチャコンポーネントを有することができるシンボル(321)の形態で運動補償予測ユニット(353)に利用可能な、運動ベクトルによって制御されることができる。運動補償は、サブサンプルの正確な運動ベクトルが使用されているときに参照ピクチャメモリ(357)からフェッチされるようなサンプル値の補間、運動ベクトル予測メカニズムなどを含むことができる。
アグリゲータ(355)の出力サンプルは、ループフィルタユニット(356)内の様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、(コード化されたビデオビットストリームとも呼ぶ)コード化されたビデオシーケンスに含まれるパラメータによって制御され、パーサ(320)からのシンボル(321)としてループフィルタユニット(356)に利用可能にされるが、コード化されたピクチャ又はコード化されたビデオシーケンスの(復号化順において)以前の部分の復号化中に得られるメタ情報に応答することもできると共に、以前に再構成され且つループフィルタリングされたサンプル値に応答することができる、ループ内フィルタ技術を含むことができる。
ループフィルタユニット(356)の出力は、レンダリングデバイス(312)に出力されることができると共に、将来のピクチャ間予測における使用のために参照画像メモリ(357)に格納されることができる、サンプルストリームであることができる。
特定のコード化されたピクチャは、ひとたび完全に再構成されると、将来の予測のための参考ピクチャとして使用されることができる。例えば、ひとたび現在のピクチャに対応するコード化されたピクチャが完全に再構成され、コード化されたピクチャが(例えば、パーサ(320)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(358)は、参照ピクチャメモリ(357)の一部となることができ、新しい現在のピクチャバッファは、後続のコード化されたピクチャの再構成を開始する前に再割り当てされることができる。
ビデオデコーダ(310)は、ITU-T Rec.H.265のような標準における所定のビデオ圧縮技術に従って復号化動作を実行することがある。コード化されたビデオシーケンスは、コード化されたビデオシーケンスがビデオ圧縮技術又は標準の構文(syntax)及びビデオ圧縮技術又は標準において文書化されるようなプロファイルの両方に従うという意味で、使用されているビデオ圧縮技術又は標準によって指定される構文に適合することがある。具体的には、プロファイルは、特定のツールを、ビデオ圧縮技術又は標準において使用可能な全てのツールからそのプロファイルの下で使用可能な唯一のツールとして選択することができる。コンプライアンスのためにも必要なことは、コード化されたビデオシーケンスの複雑さがビデオ圧縮技術又は標準のレベルによって定義されるような範囲内にあることである。幾つかの場合において、レベルは、最大ピクチャサイズ、最大フレームレート、(例えば、毎秒メガサンプルで測定される)最大再構成サンプルレート、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限値は、幾つかの場合において、コード化されたビデオシーケンスにおいて信号伝達される仮想基準デコーダ(HRD:Hypothetical Reference Decoder)バッファ管理のためのHRD仕様とメタデータを通じて更に制限されることができる。
ある実施形態において、受信機(331)は、コード化されたビデオと共に追加の(冗長)データを受信することがある。追加のデータは、コード化されたビデオシーケンスの一部として含まれることがある。追加のデータは、データを適切に復号化するために及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(310)によって使用されることがある。追加のデータは、例えば、時間的、空間的、又は信号雑音比(SNR)強化層、冗長スライス、冗長ピクチャ、前方エラー補正コードなどの形態にあることができる。
図4は、本開示のある実施態様に従ったビデオエンコーダ(403)のブロック図を示している。ビデオエンコーダ(403)は、電子デバイス(420)に含まれる。電子デバイス(420)は、送信機(440)(例えば、送信回路構成)を含む。図2の例において、ビデオエンコーダ(203)の代わりにビデオエンコーダ(403)を使用することができる。
ビデオエンコーダ(403)は、ビデオエンコーダ(403)によってコード化されるビデオイメージをキャプチャすることがある(図4の例では電子デバイス(420)の一部ではない)ビデオソース(401)からビデオサンプルを受け取ることがある。別の例において、ビデオソース(401)は、電子デバイス(420)の一部である。
ビデオソース(401)は、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 Y CrCB、RGB、...)、及び任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得る、デジタルビデオサンプルストリームの形態で、ビデオエンコーダ(403)によってコード化されるソースビデオシーケンスを提供することがある。メディア配信システム(media serving system)において、ビデオソース(401)は、事前に準備されたビデオを格納する記憶デバイスであることがある。ビデオ会議システムにおいて、ビデオソース(401)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであることがある。ビデオデータは、シーケンスで見られるときに動きを伝える複数の個々のピクチャとして提供されることがある。ピクチャ自体は、ピクセルの空間アレイとして組織されてよく、各ピクセルは、使用中のサンプリング構造、色空間などに依存して、1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の記載は、サンプルに焦点を当てている。
ある実施形態によれば、ビデオエンコーダ(403)は、ソースビデオシーケンスのピクチャを、リアルタイムで又はアプリケーションによって要求される任意の他の時間制約の下で、コード化されたビデオシーケンス(443)にコード化して圧縮することができる。適切なコード化速度を強制することは、コントローラ(450)の1つの機能である。幾つかの実施形態において、コントローラ(450)は、以下に記載されるような他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。結合は、明瞭性のために示されていない。コントローラ(450)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、...)、ピクチャサイズ、ピクチャのグループ(GOP)レイアウト、最大運動ベクトルサーチ範囲などを含むことができる。コントローラ(450)は、特定のシステム設計のために最適化されたビデオエンコーダ(403)に関連する他の適切な機能を有するように構成されることができる。
幾つかの実施態様において、ビデオエンコーダ(403)は、コード化ループで動作するように構成される。過剰に単純化された記述として、ある例において、コード化ループは、(例えば、コード化されるべき入力ピクチャ及び参照ピクチャに基づいて、シンボルストリームのようなシンボルを生成することに関与する)ソースコーダ(430)と、ビデオエンコーダ(403)に埋め込まれる(ローカル)デコーダ(433)とを含むことができる。デコーダ(433)は、(リモート)デコーダが生成するのと類似の方法においてシンボルを再構成してサンプルデータを生成する(何故ならば、シンボルとコード化されたビデオビットストリームとの間のあらゆる圧縮は、開示する主題事項において考慮されるビデオ圧縮技術において無損失であるからである)。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(434)に入力される。シンボルストリームの復号化は、復号器場所(ローカル又はリモート)と無関係にビット正確な結果をもたらすので、参照ピクチャメモリ(434)中のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部は、デコーダが復号化中に予測を使用するときに「見る」のと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性(及び、例えば、チャンネルエラーに起因する、同期性を維持し得ない場合の、結果として生じるドリフト)のこの基本原理は、幾つかの関連技術においても同様に使用される。
「ローカル」デコーダ(433)の動作は、図3に関連して既に上記で詳述したビデオデコーダ(310)のような「リモート」デコーダと同じであることができる。しかしながら、図3も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(445)及びパーサ(320)によるコード化されたビデオシーケンスへのシンボルの符号化/復号化は無損失であり得るため、バッファメモリ(315)及びパーサ(320)を含むビデオデコーダ(310)のエントロピー復号化部は、ローカルデコーダ(433)に完全には実装されないことがある。
この時点で行われることができる観察は、デコーダ内に存在する構文解析/エントロピー復号化を除くあらゆるデコーダ技術が、対応するエンコーダ内に実質的に同一の機能的形態で存在する必要があることである。この理由のために、開示する主題事項は、デコーダ動作に焦点を当てる。エンコーダ技術の記述は、それらが包括的に記載されるデコーダ技術の逆であるので、省略されることができる。特定の領域においてのみ、より詳細な記述が必要とされ、以下に提供される。
動作中、幾つかの例において、ソースコーダ(430)は、「基準画像(reference pictures)」として指定されたビデオシーケンスからの1つ以上の以前に符号化された画像を参照して入力ピクチャを予測的にコード化する、運動補償予測コード化を実行することがある。このようにして、コード化エンジン(432)は、入力ピクチャのピクセルブロックと入力ピクチャに対する予測参照として選択されることがある参照ピクチャのピクセルブロックとの間の差をコード化する。
ローカルビデオデコーダ(433)は、ソースコーダ(430)によって生成されるシンボルに基づいて、参照ピクチャとして指定されることがあるピクチャのコード化されたビデオデータを復号化することがある。コード化エンジン(432)の動作は、有利に損失性プロセスであることがある。コード化されたビデオデータが(図4に示されていない)ビデオデコーダで復号化されることがあるときに、再構成されたビデオシーケンスは、典型的には、幾つかのエラーを伴うソースビデオシーケンスのレプリカであることがある。ローカルビデオデコーダ433は、参照ピクチャ上でビデオデコーダによって実行されることがあり、再構成された参照ピクチャを参照ピクチャキャッシュ(434)に格納させることがある、復号化プロセスを複製する。このようにして、ビデオエンコーダ(403)は、(伝送エラーのない)遠端ビデオデコーダによって得られる再構成された参照ピクチャとして共通のコンテンツを有する再構成された参照ピクチャのコピーをローカルに格納することがある。
予測器(435)は、コード化エンジン(432)のために予測サーチを実行することがある。すなわち、コード化されるべき新しいピクチャのために、予測器(435)は、新しいピクチャのための適切な予測参照として役立つことがある、(候補参照ピクチャブロックとしての)サンプルデータ、又は参照ピクチャ運動ベクトル、ブロック形状などのような特定のメタデータについて、参照ピクチャメモリ(434)をサーチすることがある。予測器(435)は、適切な予測参照を見出すためにサンプルブロック毎ベースで作動することがある。幾つかの場合には、予測器(435)によって得られるサーチ結果によって決定されるときに、入力ピクチャが、参照ピクチャメモリ(434)に格納された複数の参照ピクチャから引き出される予測参照を有することがある。
コントローラ(450)は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(430)のコード化動作を管理することがある。
全ての前述の機能ユニットの出力は、エントロピーコーダ(445)内でエントロピーコード化を受けることがある。エントロピーコーダ(445)は、ハフマンコード化、可変長コード化、算術コード化などのような技術に従ってシンボルを損失性圧縮することによって、様々な機能ユニットによって生成されるようなシンボルをコード化されたビデオシーケンスに変換する。
送信機(440)は、エントロピーコーダ(445)によって生成されるようなコード化されたビデオシーケンスをバッファに入れて、通信チャネル(460)を介した送信の準備を行うことがあり、通信チャネル(460)は、コード化されたビデオデータを格納する記憶デバイスへのハードウェア/ソフトウェアリンクであることがある。送信機(440)は、ビデオコーダ(403)からのコード化されたビデオデータを、送信されるべき他のデータ、例えば、コード化されたオーディオデータ及び/又は(ソースを図示しない)補助的データストリームとマージ(併合)させることがある。
コントローラ(450)は、ビデオエンコーダ(403)の動作を管理することがある。コード化の間に、コントローラ(450)は、各コード化されたピクチャに特定のコード化されたピクチャタイプを割り当てることがあり、それは、それぞれのピクチャに適用されることがあるコード化技術に影響を及ぼすことがある。例えば、ピクチャは、しばしば、以下のピクチャタイプのうちの1つとして割り当てられることがある。
イントラピクチャ(Intra Picture)(Iピクチャ)は、予測のソースとしてシーケンス内の任意の他のピクチャを使用しないでコード化及び復号化されることがあるものであることがある。幾つかのビデオコーデックは、例えば、独立デコーダリフレッシュ(Independent Decoder Refresh)(「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを可能にする。当業者は、I画像のそれらの変形及びそれらのそれぞれの用途及び構成を知っている。
予測ピクチャ(predicative picture)(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの運動ベクトル及び参照インデックスを使用してイントラ予測(内部予測)(intra prediction)又はインター予測(相互予測)(inter prediction)を使用してコード化され且つ復号化されることがあるものであることがある。
双方向予測ピクチャ(bi-directionally predictive picture)(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの運動ベクトル及び参照インデックスを使用してイントラ予測又はインター予測を使用してコード化され且つ復号化されることがあるものであることがある。同様に、複数の予測ピクチャは、単一のブロックの再構成のために、2つよりも多くの参照ピクチャ及び関連するメタデータを使用することができる。
ソースピクチャは、一般的には、複数のサンプルブロック(例えば、各々が4×4、8×8、4×8、又は16×16サンプルのブロック)に空間的に細分化され、ブロック毎ベースでコード化されることがある。ブロックは、ブロックのそれぞれのピクチャに適用されるコード化割り当てによって決定されるような他の(既にコード化された)ブロックを参照して予測的にコード化されることがある。例えば、Iピクチャのブロックは、非予測的にコード化されてよく、或いは、それらは、同じピクチャの既にコード化されたブロックを参照して予測的にコード化されてよい(空間的予測又はイントラ予測)。Pピクチャのピクセルブロックは、1つの以前にコード化された参照ピクチャを参照して、空間的予測又は時間的予測を介して予測的にコード化されてよい。Bピクチャのブロックは、1つ又は2つの以前にコード化された参照ピクチャを参照して空間的予測を介して或いは時間的予測を介して予測的にコード化されてよい。
ビデオエンコーダ(403)は、ITU-T Rec.H.265のような所定のビデオコード化技術又は標準に従ってコード化動作を実行することがある。その動作において、ビデオエンコーダ(403)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を活用する予測コード化動作を含む、様々な圧縮動作を実行することがある。従って、コード化されたビデオデータは、使用されているビデオコード化技術又は標準によって指定された構文に適合することがある。
ある実施形態において、送信機(440)は、符号化されたビデオと共に追加のデータを送信することがある。ソースコーダ(430)は、コード化されたビデオシーケンスの一部としてそのようなデータを含むことがある。追加のデータは、時間的/空間的/SNR強化層、冗長ピクチャ及びスライスのような他の形態の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含んでよい。
ビデオは、時間的シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)としてキャプチャされることがある。(しばしば、イントラ予測と省略する)イントラピクチャ予測(ピクチャ内予測)は、所与のピクチャ内の空間的相関を利用し、インターピクチャ予測(ピクチャ間予測)は、ピクチャ間の(時間的又は他の)相関を利用する。ある例では、現在のピクチャと呼ぶ符号化/復号化の下にある特定のピクチャがブロックに仕切られる。現在のピクチャ内のブロックが、ビデオ内の以前にコード化され且つ依然としてバッファに入れられた参照ピクチャ内の参照ブロックに類似するとき、現在のピクチャ内のブロックは、運動ベクトルと呼ぶベクトルによってコード化されることができる。運動ベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用中である場合には、参照ピクチャを識別する第3の寸法を有することができる。
幾つかの実施形態では、ピクチャ間予測において双予測技術を使用することができる。双予測技術によれば、ビデオ内の現在のピクチャに対する復号順序において両方とも先行する(しかしながら、表示順序において、それぞれ過去及び将来であることがある)第1の参照ピクチャ及び第2の参照ピクチャのような2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の運動ベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の運動ベクトルとによってコード化されることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測されることができる。
更にコード化効率を改善するために、ピクチャ間予測にマージモード技法を使用することができる。
本開示の幾つかの実施形態によれば、インターピクチャ予測及びイントラピクチャ予測のような予測は、ブロックの単位で実行される。例えば、HEVC標準によれば、ビデオピクチャのシーケンス中のピクチャは、圧縮のためにコード化ツリー単位(CTU:coding tree unit)に分割され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセルのような、同じサイズを有する。一般に、CTUは、1つのルマ(輝度)CTBと2つのクロマ(彩度)CTBである、3つのコード化ツリーブロック(CTB:coding tree block)を含む。各CTUは、1つ又は複数のコード化単位(CU:coding units)に再帰的に四分木分割されることができる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1個のCU、32×32ピクセルの4個のCU、又は16×16ピクセルの16個のCUに分割されることができる。ある例では、各CUが、インター予測タイプ又はイントラ予測タイプのような、CUについての予測タイプを決定するために分析される。CUは、時間的及び/又は空間的予測可能性に依存して1つ以上の予測単位(PU:prediction units)に分割される。一般に、各PUは、1個のルマ予測ブロック(PB:prediction block)と、2個のクロマPBを含む。ある実施形態では、コード化(符号化/復号化)における予測動作が、予測ブロックのユニットにおいて実行される。予測ブロックの一例としてルマ予測ブロックを用いるとき、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル及び同等のもののような、ピクセルについての値(例えば、ルマ値)の行列を含む。
図5は、本開示の別の実施態様に従ったビデオエンコーダ(503)の図を示している。ビデオエンコーダ(503)は、ビデオピクチャのシーケンス内の現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信して、処理ブロックをコード化されたビデオシーケンスの部分であるコード化されたピクチャに符号化するように構成される。ある例において、ビデオエンコーダ(503)は、図2の例におけるビデオエンコーダ(203)の代わりに使用される。
HEVCの例において、ビデオエンコーダ(503)は、8×8サンプルの予測ブロック及び同等のもののような、処理ブロックについてのサンプル値の行列を受信する。ビデオエンコーダ(503)は、処理ブロックが、例えば、レート歪み最適化を使用して、イントラモード、インターモード、又は双予測モードを使用して、最良にコード化されるかどうかを決定する。処理ブロックがイントラモードでコード化されるべきときに、ビデオエンコーダ503は、イントラ予測技術を使用して、処理ブロックをコード化されたピクチャに符号化してよく、処理ブロックがインターモード又は双予測モードでコード化されるべきときに、ビデオエンコーダ(503)は、インター予測技術又は双予測技術をそれぞれ使用して、処理ブロックをコード化されたピクチャに符号化してよい。特定のビデオコード化技術において、マージモードは、1つ以上の運動ベクトルが予測器の外側のコード化された運動ベクトル成分の利益なしに1つ以上の運動予測器から導出されるピクチャ間予測サブモードであることができる。特定の他のビデオコード化技術では、対象ブロックに適用可能な運動ベクトル成分が存在することがある。ある例において、ビデオエンコーダ(503)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)のような他のコンポーネントを含む。
図5の例において、ビデオエンコーダ(503)は、図5に示すように互いに結合された、インターエンコーダ(530)、イントラエンコーダ(522)、残差計算器(523)、スイッチ(526)、残差エンコーダ(524)、汎用コントローラ(general controller)(521)、及びエントロピーエンコーダ(525)を含む。
インターエンコーダ(530)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、以前のピクチャ内及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技術に従った冗長情報の記述、運動ベクトル、マージモード情報)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。幾つかの例において、参照ピクチャは、符号化されたビデオ情報に基づいて復号化される復号化された参照ピクチャである。
イントラエンコーダ(522)は、現在のブロック(例えば、処理ブロック)のサンプルを受信するように構成され、幾つかの場合には、そのブロックを同じピクチャ内で既にコード化されているブロックと比較し、変換後に量子化された係数を生成し、幾つかの場合には、イントラ予測情報(例えば、1つ以上のイントラ符号化技術に従ったイントラ予測方向情報)も生成するように構成される。ある例において、イントラエンコーダ(522)は、同じピクチャ内のイントラ予測情報及び参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)も計算する。
汎用コントローラ(521)は、汎用制御データ(general control data)を決定して、汎用制御データに基づいてビデオエンコーダ(503)の他のコンポーネントを制御するように構成される。ある例において、汎用コントローラ(521)は、ブロックのモードを決定し、そのモードに基づいてスイッチ(526)に制御信号を提供する。例えば、モードがイントラモードであるとき、汎用コントローラ(521)は、スイッチ(526)を制御して、残差計算器(523)による使用のためのイントラモード結果を選択し、エントロピーエンコーダ(525)を制御して、イントラ予測情報を選択し、ビットストリームにイントラ予測情報を含め、モードがインターモードにあるとき、汎用コントローラ(521)は、スイッチ(526)を制御して、残差計算器(523)による使用のためのインター予測結果を選択し、エントロピーエンコーダ(525)を制御して、インター予測情報を選択し、ビットストリームにインター予測情報を含める。
残差計算器(523)は、受信したブロックとイントラエンコーダ(522)又はインターエンコーダ(530)から選択された予測結果との間の差(残差データ)を計算するように構成される。残差エンコーダ(524)は、残差データに基づいて作動して、残差データを符号化して、変換係数を生成するように構成される。ある例において、残差エンコーダ(524)は、残差データを空間領域(spatial domain)から周波数領域(frequency domain)に変換して、変換係数を生成するように構成される。次に、変換係数は、量子化された変換係数を得るために、量子化処理を受ける。様々な実施形態において、ビデオエンコーダ(503)は、残差デコーダ(528)も含む。残差デコーダ(528)は、逆変換を実行して、復号化された残差データを生成するように構成される。復号化された残差データは、イントラエンコーダ(522)及びインターエンコーダ(530)によって適切に使用されることができる。例えば、インターエンコーダ(530)は、復号化された残差データ及びインター予測情報に基づいて復号化されたブロックを生成することができ、イントラエンコーダ(522)は、復号化された残差データ及びイントラ予測情報に基づいて復号化されたブロックを生成することができる。復号化されたブロックは、復号化されたピクチャを生成するように適切に処理され、復号化されたピクチャは、幾つかの例において、メモリ回路(図示せず)内にバッファされることができ、参照ピクチャとして使用されることができる。
エントロピーエンコーダ(525)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(525)は、HEVC標準のような適切な標準に従った様々な情報を含むように構成される。ある例において、エントロピーエンコーダ(525)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及びビットストリーム内の他の適切な情報を含むように構成される。開示の主題事項によれば、インターモード又は双予測モードのいずれかのマージサブモードにおいてブロックをコード化するときに、残差情報はないことに留意のこと。
図6は、本開示の別の実施態様に従ったビデオデコーダ(610)の図を示している。ビデオデコーダ(610)は、コード化されたビデオシーケンスの部分であるコード化されたピクチャを受信し、コード化されたピクチャを復号化して再構成されたピクチャを生成するように構成される。ある例において、ビデオデコーダ(610)は、図2の例におけるビデオデコーダ(210)の代わりに使用される。
図6の例において、図6に示すように互いに結合された、ビデオデコーダ(610)は、エントロピーデコーダ(671)、インターデコーダ(680)、残差デコーダ(673)、再構成モジュール(674)、及びイントラデコーダ(672)を含む。
エントロピーデコーダ(671)は、コード化されたピクチャから、そのコード化されたピクチャが構成される構文要素を表す特定のシンボルを再構成するように構成されることができる。そのようなシンボルは、例えば、ブロックがコード化されるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモード又は別のサブモードにおける後者の2つ)、イントラデコーダ(672)又はインターデコーダ(680)によってそれぞれ予測のために使用される特定のサンプル又はメタデータを識別することができる(例えば、イントラ予測情報又はインター予測情報のような)予測情報、例えば、量子化された変換係数の形態における残差情報、及び同等のものを含むことができる。ある例において、予測モードがインターモード又は双予測モードであるとき、インター予測情報はインターデコーダ(680)に提供され、予測タイプがイントラ予測タイプであるとき、イントラ予測情報はイントラデコーダ(672)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(673)に提供される。
インターデコーダ(680)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
イントラデコーダ(672)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
残差デコーダ(673)は、脱量子化変換係数を抽出するために逆量子化を実行し、脱量子化変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(673)は、(量子化器パラメータ(QP:Quantizer Parameter)を含むように)特定の制御情報を必要とすることもあり、その情報は、エントロピーデコーダ(671)によって提供されることがある(データ経路は示されていない。何故ならば、これは低ボリューム制御情報のみであることがあるからである)。
再構成モジュール(674)は、空間領域において、残差デコーダ(673)による出力としての残差と(場合によっては、インター予測モジュール又はイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構成ブロックを形成するように構成され、それは再構成されるピクチャの部分であることがあり、ひいては、それは再構成されるビデオの部分であることがある。視覚品質を向上させるために、非ブロック化動作(deblocking operation)及び同等の動作のような他の適切な動作を実行し得ることに留意のこと。
ビデオエンコーダ(203)、(403)及び(503)、並びにビデオデコーダ(210)、(310)及び(610)は、任意の適切な技術を用いて実装されることができる。ある実施形態において、ビデオエンコーダ(203)、(403)及び(503)、並びにビデオデコーダ(210)、(310)及び(610)は、1つ以上の集積回路を使用して実装されることができる。別の実施形態において、ビデオエンコーダ(203)、(403)及び(403)、並びにビデオデコーダ(210)、(310)及び(610)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実現されることができる。
本開示の態様は、HEVC(高効率ビデオ符号化(High Efficiency Video Coding))、例えば、多用途ビデオコード化(VVC:Versatile Video Coding)を超える、次世代ビデオコード化のための技術を提供する。例えば、(i)最大変換サイズ及び(ii)最大変換サイズと変換分割スキーム(例えば、サブブロック変換(sub-block transform)(SBT)及びイントラサブ分割(Intra sub-partitioning)(ISP))との間の相互作用を制御するためのスキームを提供することができる。
HEVCでは、様々な局所特性に適応するコード化ツリーとして示される四分木構造を使用することによって、コード化ツリー単位(CTU)を複数のコード化単位(CU)に分割することができる。インターピクチャ(時間的)予測又はイントラピクチャ(空間的)予測を使用してピクチャ領域をコード化するかどうかの決定は、CUレベルで行われることができる。各CUは、PU分割タイプに従って、1つ、2つ、又は4つの予測ユニット(PU)に更に分割されることができる。1つのPUの内側では、同じ予測プロセスが適用されることができ、関連情報はPUベースでデコーダに送信されることができる。PU分割タイプに基づく予測プロセスを適用することによって残差ブロックを得た後に、CUが、CUについてのコード化ツリーのような別の四分木構造に従って、変換ユニット(TU)に分割されることができる。HEVC構造の重要な構成は、HEVCがCU、PU及びTUを含む複数のパーティション概念を有し得ることである。HEVCでは、CU又はTUが、正方形の形状のみであり得る一方で、PUは、インター予測ブロックのために正方形又は長方形の形状であり得る。HEVCでは、1つのコード化ブロックが4つの正方形サブブロックに更に分割されることがあり、変換は、各サブブロック(すなわち、TU)に対して実行されることができる。各TUは、(例えば、四分木分割を用いて)より小さなTUに更に再帰的に分割されることができ、それは残差四分木(Residual Quad-Tree)(RQT)と呼ばれる。
ピクチャ境界で、HEVCは、サイズがピクチャ境界に適合するまでブロックが四分木分割を維持することができるように、四分木分割を暗黙的に利用することができる。
VVCでは、四分木(QT)に二分木(BT)を加えたものを用いるブロック分割構造が提案される。QTBT構造は、複数の区切りタイプの概念を取り除くことができる。例えば、QTBT構造は、CU、PU及びTUの概念の分離を除去し、CU区切り形状についてより柔軟性をサポートすることができる。QTBTブロック構造(又はQTBT構造)では、CUが正方形又は長方形の形状のいずれかを有することができる。図7A及び図7Bに示すように、CTUは、先ず、四分木構造によって区切られることができる。四分木リーフノードは、二分木構造によって更に仕切られることができる。二分木分割には、2つの分割タイプ、すなわち、対称水平分割及び対称垂直分割がある。二分木リーフノードは、CUと呼ばれることができ、そのセグメント化は、如何なる更なる区切りなしで予測及び変換処理のために使用されることができる。よって、CU、PU及びTUは、QTBTコード化ブロック構造において同じブロックサイズを有することができる。実験ソフトウェア共同探究モデル(JEM:Joint Exploration Model)では、CUが、時折、異なる色成分のコード化ブロック(CB:coding blocks)を含み得る。例えば、4:2:0のクロマフォーマットのPスライス及びBスライスの場合、1つのCUは、1つのルマCBと、2つのクロマCBを含むことができる。1つのCUは、時折、単一の成分のCBを含むことができる。例えば、Iスライスの場合、1つのCUは、1つのみのルマCB又は2つだけのクロマCBを含むことができる。
幾つかの実施形態において、以下のパラメータは、QTBT分割スキームについて以下のように定義されることができる。すなわち、(1)CTUサイズは、HEVCにおけると同じ概念を有する四分木のルートノードサイズに言及し、(2)MinQTSizeは、最小の許容される四分木リーフノードサイズに言及し、(3)MaxBTSizeは、最大の許容される二分木ルートノードサイズに言及し、(4)MaxBTDepthは、最大の許容される二分木深さに言及し、(5)MinBTSizeは、最小の許容される二分木のリーフノードサイズに言及する。
QTBT分割構造(又はQTBT構造)の一例において、CTUサイズは、2つの対応する64×64ブロックのクロマサンプルを備える128×128ルマサンプルとして設定されることができ、MinQTSizeは、16×16として設定されることができ、MaxBTSizeは、64×64として設定されることができ、MinBTSize(幅及び高さの両方)は、4×4として設定されることができ、MaxBTDepthは、4として設定されることができる。四分木分割は、複数の四分木リーフノードを生成するために、先ずCTUに適用されることができる。四分木リーフノードは、16×16(すなわち、MinQTSize)から128×128(すなわち、CTUサイズ)までのサイズを有することがある。リーフ四分木ノードが128×128であるならば、リーフ四分木は、二分木によって更に分割されないことがある。何故ならば、サイズは、MaxBTSize(すなわち64×64)を超えるからである。さもなければ、リーフ四分木ノードは、二分木によって更に分割されることができる。従って、四分木リーフノードは、二分木のためのルートノードであることもでき、四分木リーフは、0のような二分木深さを有することができる。二分木深さがMaxBTDepth(例えば、4)に達するとき、更なる分割は考慮されない。二分木ノードがMinBTSize(例えば4)に等しい幅を有するとき、更なる水平分割は考慮されない。同様に、二分木ノードがMinBTSizeに等しい高さを有するとき、更なる垂直分割は考慮されない。ません。二分木のリーフノードは、如何なる更なる分割も伴わずに、予測及び変換処理によって更に処理されることができる。JEMにおいて、最大CTUサイズは、256×256ルマサンプルである。
図7Aは、QTBTを使用することによるブロック分割の例を示しており、図7Bは、対応するツリー表現を示している。実線は、四分木分割を示しており、点線は、二分木分割を示している。二分木の各分割(例えば、非リーフ)ノードでは、どの分割タイプ(例えば、水平又は垂直)が使用されるかを示すために、1つのフラグが信号伝達されることができ、ここで、0は、水平分割を示すことができ、1は、垂直分割を示すことができる。四分木分割については、分割タイプを示す必要はない。何故ならば、四分木分割は、等しいサイズを備える4つのサブブロックを生成するために、ブロックを常に水平方向及び垂直方向の両方に分割するからである。
加えて、QTBTスキーム(又はQTBT構造)は、ルマ及びクロマが別々のQTBT構造を持つための柔軟性を提供することができる。現在、Pスライス及びBスライスのために、1つのCTU中のルマCTB及びクロマCTBは、同じQTBT構造を共有する。しかしながら、Iスライスについて、ルマCTBは、QTBT構造によってCUに分割され、クロマCTBは、別のQTB構造によってクロマCUに分割される。よって、Iスライス中のCUは、ルマ成分のコード化ブロック又は2つのクロマ成分のコード化ブロックを含むことができ、Pスライス又はBスライス中のCUは、全ての3つの色成分のコード化ブロックを含むことができる。
HEVCでは、双予測が4×8及び8×4ブロックについてサポートされず、インター予測が4×4ブロックについてサポートされないように、小さいブロックについてのインター予測は、運動補償のメモリアクセスを減らすために制限される。JEM-7.0で実装されるようなQTBTにおいて、これらの制限は取り除かれる。
VCCでは、マルチタイプツリー(MTT:Multi-type-tree)構造も提案される。MTTは、QTBTよりも柔軟なツリー構造である。MTTでは、例えば、図8A及び図8Bに示すように、四分木及び二分木以外に、水平及び垂直中心側の三分木が導入される。図8Aは、垂直中心側三分木分割であり、図8Bは、水平中心側三分木分割である。三分木分割の鍵となる利点は、以下を含む。すなわち、(a)三分木分割は、四分木分割及び二分木分割を補完することができる。三分木分割は、ブロック中心に位置するオブジェクトをキャプチャすることができる一方で、四分木及び二分木は、ブロック中心に沿って常に分割される。(b)提案される三分木の区切りの幅及び高さは、常に2の冪乗であるので、追加の変換は必要とされない。2レベルツリーの設計は、主に複雑さの低減によって動機付けられる。理論的には、ツリーを横断する複雑さは、TDであり、ここで、Tは、分割タイプの数を示し、Dは、ツリーの深さである。
HEVCにおいて、一次変換は、4ポイント、8ポイント、16ポイント、32ポイントDCT-2であることができ、変換コア行列は、8ビット整数(すなわち、8ビット変換コア)を用いて表されることができる。より小さなDCT-2の変換コア行列は、以下に示すように、より大きなDCT-2の部分であることができる。
DCT-2コアは、対称特性/反対称特性を示す。よって、いわゆる「部分バタフライ(partial butterfly)」実装が演算カウントの数(乗法、加法/減法、シフト)を減らすためにサポートされ、部分バタフライを用いて行列乗法の同一の結果を得ることができる。
VVCでは、HEVCと同じ4ポイント、8ポイント、16ポイント及び32ポイントのDCT-2変換の他に、追加的な2ポイント及び64ポイントのDCT-2変換も含まれる。VVCにおいて定義される64ポイントDCT-2コアは、64×64行列として以下に示されことができる
HEVCで利用されてきたDCT‐2及び4×4DST‐7に加えて、適応多重変換(AMT:Adaptive Multiple Transform、拡張多重変換(EMT:Enhanced Multiple Transform)、又は多重変換選択(MTS:Multiple Transform Selection))スキームが、インターコード化ブロック及びイントラコード化ブロックの両方についての残差コード化のためにVVCにおいて使用されてきた。MTSは、HEVCにおける現在の変換以外に、DCT/DSTファミリーから複数の選択される変換を使用することができる。新しく導入された変換行列は、DST-7、DCT-8である。表1は、選択されるDST/DCTの基本関数を示している。
VVCにおける一次変換行列は、8ビット表現において使用される。AMTは、幅及び高さの両方が32以下のCUに適用され、AMTを適用するかどうかは、mts_flagと呼ばれるフラグによって制御されることができる。mts_flagが0に等しいときには、DCT-2のみが残差をコード化するために適用される。mts_flagが1に等しいときには、インデックスmts_idxは、表2に従って使用されるべき水平変換及び垂直変換を指定するために2つのビンを使用して更に信号伝達され、ここで、値1は、DST-7を使用することを意味し、値2は、DCT-8を使用することを意味する。
基底ベクトルによって構成される行列であるDST-7の変換コアは、以下に表されることもできる
VVCにおいて、最大変換サイズは、64長(例えば、64×64ブロック)又は32長(例えば、32×32ブロック)として指定されることができ、選択は、シーケンスパラメータセット(SPS)で信号伝達されることができる。SPS内の関連する構文(syntax)及び意味論(semantics)は、以下のように表3で記載されることができる
表3に示すように、最大変換サイズフラグ(例えばsps_max_luma_transform_size_64_flag)を適用して、最大変換サイズを示すことができる。1に等しい最大変換サイズフラグ(例えば、sps_max_luma_transform_size_64_flag)は、ルマサンプルにおける最大変換サイズが64に等しいことを指定することができる。0に等しい最大変換サイズフラグ(例えば、sps_max_luma_transform_size_64_flag)は、ルマサンプルの最大変換サイズが32に等しいことを指定することができる。
加えて、CtbSizeYが64未満であるとき、sps_max_luma_transform_size_64_flagの値は、0に等しくあり得る。変数MinTbLog2SizeY、MaxTbLog2SizeY、MinTbSizeY、及びMaxTbSizeYは、式(1)~(4)で以下のように導出される。
幾つかの実施形態では、RGBビデオコンテンツの効率的なコード化のために、ループ内色変換を利用して、VVCにおけるような画像ブロックの異なる特性を処理することができる。色変換は異なるCUについて適応的に使用されることができるので、コード化ツールとしての色変換を適応色変換(ACT)と呼ぶことができる。ACTは、幾つかの例において残差領域(residue domain)で作動することができる。CUレベルフラグは、ACTの使用法を示すように信号伝達されることがある。
例えば、スクリーンコンテンツは、しばしば、RGB色空間でキャプチャされる。RGB色空間における画像ブロックについては、通常、色空間変換が色成分間の冗長性を除去するのに有用であるように、異なる色成分間に強い相関があり得る。しかしながら、スクリーンコンテンツについては、非常に飽和した色を有する異なる構成を含む多くの画像ブロックが存在することがあり、それはより少ない色成分間の相関をもたらす。それらのブロックについては、RGB色空間内で直接的にコード化することがより効果的なことがある。従って、色空間変換は、異なる特性を有する画像ブロックに適応的に適用されることができる。
ある例において、順方向ACT色変換(例えば、エンコーダで実行される変換)は、RGB色空間内の画像ブロックをYCoCg色空間に変換するために、式(5)で以下のように実行されてよい。
逆方向ACT色変換(例えば、デコーダで実行される逆変換)は、以下のように式(6)で実行されてよい。
図9は、色空間変換を実行するための例示的なエンコーダ(1100)を示している。エンコーダ(1100)のコンポーネントは、例えば、処理回路構成(例えば、1つ以上のプロセッサ)、ソフトウェア、又はそれらの組み合わせによって実装されることができる。
図9において、予測は、適用される色空間変換の前に実行される。例えば、インター予測又はイントラ予測は、残差信号を生成するために現在のブロックに対して実行されることができる。残差信号は、式(5)における変換のような順方向変換を実行するために順方向色空間変換ユニット(1102)に提供されることができる。順色空間変換の出力は、クロスコンポーネント予測(CCP:cross component prediction)ユニット(1104)に提供されることができる。CCPユニット(1104)の出力は、変換係数を生成するためにあるタイプの離散コサイン変換(DCT:discrete cosine transform)のような変換を実行するために、変換(T)ユニット(1106)に提供されることができる。変換ユニット(1106)の出力は、量子化係数を生成するために量子化器(Q)(1108)に提供されることができる。量子化された係数は、量子化された係数のビンをビットストリーム内のビットに変換するために、エントロピーコーダユニット(1110)に提供されることができる。エントロピーコーダユニット(1110)は、現在のブロックに関連するイントラ予測モード又は運動ベクトル(MV:motion vector)情報、及びその情報をビットストリームに符号化するエントロピーを受信することがある。
エンコーダ(1100)は、残差信号を再構成するためのコンポーネントを含んでもよい。例えば、量子化係数は、逆量子化器(IQ)ユニット(1112)に提供されてよい。逆量子化器(IQ)ユニットの出力は、逆変換(IT:inverse transform)ユニット(1114)に提供されてよい。逆変換ユニット(1114)の出力は、逆CCPユニット(1116)に提供されてよい。逆CCPユニット(1116)の出力は、逆色空間変換ユニット(1118)に提供されてよく、式(6)に示す変換のような逆色変換が、再構成された残差信号を生成するために実行されてよい。
図10は、ビットストリームを残差信号に変換するための例示的なデコーダ(1200)を示している。デコーダ(1200)のコンポーネントは、例えば、処理回路構成(例えば、1つ以上のプロセッサ)、ソフトウェア、又はそれらの組み合わせによって実装されることができる。
図10に示すビットストリームは、図9の例におけるエントロピーコーダ(1110)によって生成されるビットストリームであってよい。ビットストリームは、エントロピーデコーダユニット(1202)に提供されてよい。エントロピーデコーダユニット(1202)の出力は、逆量子化器(IQ)ユニット(1204)に提供されてよい。逆量子化器(IQ)ユニット(1204)の出力は、逆変換(IT)ユニット(1206)に提供されてよい。逆変換(IT)ユニット(1206)の出力は、逆CCPユニット(1208)に提供されてよい。逆CCPユニット(1208)の出力は、逆色空間変換ユニット(1210)に提供されてよく、その場合には、式(6)に示す変換のような逆色変換が、残差信号を生成するために実行されてよい。イントラ予測又はインター予測が、現在のブロックを再構成するために残差信号と組み合わされる予測ブロックを生成するために実行されてよい。
上述のように、図9及び図10に示すコンポーネントは、プロセッサによって、或いは各ユニットの機能を実行するように設計された特殊化された集積回路のような回構成路によって実行されるソフトウェアにおいて実装されてよい。
幾つかの実施形態において、ACTがSPSにおいて有効にされるとき、最大変換サイズは、例えば、VCCにおいて、32長(例えば、32×32ブロック又は32サンプル)に制限されることができる。すなわち、最大変換サイズが64長(例えば、64×64ブロック又は64サンプル)として信号伝達されならば、ACTが適用されないことがあり、ACTを有効にするための関連するSPSフラグは信号伝達されないことがある。関連する構文を表4に示すことができる。
例えば、VVCでは、表5に示すように、二重木(dual tree)が適用されるときに、ACTは適用されない。
例えば、VVCにおいて、最大変換サイズは、SPSで信号伝達される。しかしながら、ACTが適用されるとき、二重木コード化されたスライス(例えば、二重木パーティションモードを通じてコード化されるスライスのブロック)について、ACTは二重木コード化されたスライスにおいて使用されないことがあるが、最大変換サイズは32長のみであることができる。これは二重木コード化されたスライスのコード化性能を制限することがある。
表6に示す現在の開示のある実施形態において、イントラスライス及びインタースライスのために適用される最大変換サイズは、デコーダに別個に信号伝達されることができる。ある例において、イントラスライスは、イントラ予測モードによってコード化されるスライスを含むことができる。インタースライスは、イントラ予測モード及びインター予測モードのうちの1つ又は組み合わせによってコード化されるブロックを含むことができる。例えば、ブロックの第1の部分は、インター予測モードによってコード化されることができ、ブロックの第2の部分は、イントラ予測モードによってコード化されることができる。インタースライスは、イントラ予測モードによって全てコード化されるブロック、又はインター予測モードによって全てコード化されるブロックを含むこともできる。
表6に示すように、イントラスライスについての最大変換サイズフラグ(例えば、sps_intra_max_luma_transform_size_64_flag)及びインタースライスについての最大変換サイズフラグ(例えば、sps_inter_max_luma_transform_size_64_flag)のような別々のフラグに信号伝達することができる。最大変換サイズフラグは、例えば、ルマサンプルにおける最大変換サイズを示すことができる。例えば、最大変換サイズフラグは、最大変換サイズが第1の最大値であるか或いは第2の最大値であるかを示すことができる。1に等しいイントラスライスについての最大変換サイズフラグ(例えば、sps_intra_max_luma_transform_size_64_flag)は、ルマサンプル中の最大変換サイズイントラスライスが64(例えば、64×64ブロック)に等しいことを指定することができる。0に等しいイントラスライスについての最大変換サイズフラグ(例えば、sps_intra_max_luma_transform_size_64_flag)は、ルマサンプル中のイントラスライスにおける最大変換サイズが32(例えば、32×32ブロック)に等しいことを指定することができる。加えて、1に等しいインタースライスについての最大変換サイズフラグ(例えば、sps_inter_max_luma_transform_size_64_flag)は、ルマサンプル中の最大変換サイズインタースライスが64(例えば、64×64ブロック)に等しいことを指定することができる。0に等しいインタースライスについての最大変換サイズフラグ(例えば、sps_inter_max_luma_transform_size_64_flag)は、ルマサンプル中のインタースライスにおける最大変換サイズが32(例えば、32×32ブロック)に等しいことを指定することができる。
表6を依然として参照すると、パーティションモードフラグ(例えば、qttt_dual_tree_intr_flag)及びACTイネーブルフラグ(例えば、sps_act_enabled_flag)を信号伝達することができる。パーティションモードフラグ(例えば、qtbtt_dual_tree_intr_flag)は、二重木パーティションモードがイントラスライスに適用されるかどうかを示すことができる。ACTイネーブルフラグ(例えば、sps_act_enabled_flag)は、ACTがインタースライスのイントラスライスに適用されるかどうかを示すことができる。表6に示すように、イントラスライスについての最大変換サイズフラグ(例えば、sps_intra_max_luma_transform_size_64_flag)が0に等しく、パーティションモードフラグ(例えば、qtbtt_dual_tree_intra_flag)が0に等しいか、或いはインタースライスについての最大変換サイズフラグ(例えば、sps_inter_max_luma_transform_size_64_flag)が0に等しいとき、ACTイネーブルフラグ(例えば、sps_act_enabled_flag)に信号伝達することができる。
ある実施形態において、イントラスライスについての最大変換サイズ(例えば、sps_intra_max_luma_transform_size_64_flag)は、パーティションモードフラグ(例えば、qtbtt_dual_tree_intra_flag)が真(true)として(或いは第1の値として)コード化されるときにのみコード化されることができ、例えば、二重木パーティションモードが適用されることを示す。
ある実施形態において、イントラスライス及びインタースライスについて適用される最大変換サイズは、パーティションモードフラグ(例えば、flag qtbtt_dual_tree_intr_flag)が真としてコード化されるときにのみ、別個に信号伝達されることができる。パーティションモードフラグ(例えば、qttt_dual_tree_intr_flag)が真でないならば、最大変換サイズは信号伝達され、イントラスライスとインタースライスの間で共有される。
最大変換サイズは、SPS、スライスヘッダ又はピクチャヘッダ(PH:picture header)のような、コード化されたビットストリームの様々な部分において信号伝達されることができる。
幾つかの実施形態では、二重木コード化されたスライスについて適用される最大変換サイズ及び単一木(single tree)コード化されたスライスについての最大変換サイズは、別々に信号伝達されることができる。関連する構文を表7に示し得る。
表7に示すように、二重木コード化されたスライスについての最大変換サイズフラグ(例えば、sps_dt_max_luma_transform_size_64_flag)及び単一木コード化されたスライスについての最大変換サイズフラグ(例えば、sps_st_max_luma_transform_size_64_flag)に信号伝達することができる。最大変換サイズフラグは、例えば、ルマサンプル中の最大変換サイズを示すことができる。例えば、最大変換サイズフラグは、最大変換サイズが第1の最大値であるか或いは第2の最大値であるかを示すことができる。1に等しい二重木コード化されたスライス(例えば、sps_dt_max_luma_transform_size_64_flag)についての最大変換サイズフラグは、ルマサンプル中の二重木コード化されたスライスについて適用される最大変換サイズが64(例えば、64×64ブロック)に等しいことを指定することができる。0に等しい二重木コード化されたスライス(例えば、sps_dt_max_luma_transform_size_64_flag)についての最大変換サイズフラグは、ルマサンプル中の二重木コード化されたスライスについて適用される最大変換サイズが32(例えば、32×32ブロック)に等しいことを指定することができる。1に等しい単一木コード化されたスライス(例えば、sps_st_max_luma_transform_size_64_flag)についての最大変換サイズフラグは、ルマサンプル中の単一木コード化されたスライスについて適用される最大変換サイズが64に等しいことを指定することができる。0に等しい単一木コード化されたスライス(例えば、sps_st_max_luma_transform_size_64_flag)についての最大変換サイズフラグは、ルマサンプル中の単一木コード化されたスライスについて適用される最大変換サイズが32に等しいことを指定することができる。
表7を依然として参照すると、クロマアレイタイプが3(例えば、平面モード(planar mode))であり、単一木コード化されたスライスについての最大変換サイズフラグ(例えば、sps_st_max_luma_transform_size_64_flag)が0に等しいとき、ACTイネーブルフラグ(例えば、sps_act_enabled_flag)に信号伝達することができる。
幾つかの実施形態において、最大変換サイズは、例えば、SPSヘッダ(例えば、sps_st_max_luma_transform_size_64_flag又はsps_dt_max_luma_transform_size_64_flag)における最大変換サイズパラメータのみならず、ツリータイプ(又はパーティションツリータイプ)及び適応色変換(ACT)が使用されるかどうかの条件に基づいても決定されることができる。ある例では、SPSヘッダにおけるACT信号が有効にされ(例えば、sps_act_enabled_flagが真であり)、現在のツリータイプが単一木であるとき、現在のスライスにおいて適用される最大変換サイズは、32ポイント変換(例えば、32×32ブロック)に制約されることができる。さもなければ、64ポイント変換(例えば、64×64ブロック)は、現在のスライスに適用されることができる。その例を以下のように式(7)~(10)に示す。
式(7)~(10)に示すように、最大変換サイズフラグ(例えば、sps_max_luma_transform_size_64_flag)が1に等しいとき、ルマサンプル中の最大変換サイズは64に等しい。最大変換サイズフラグ(例えば、dsps_max_luma_transform_size_64_flag)が0に等しいとき、ルマサンプル中の最大変換サイズは32に等しい。Y方向におけるコード化単位サイズ(例えば、CtbSizeYなど)が64未満であるとき、最大変換サイズフラグ(例えば、sps_max_luma_transform_size_64_flag)の値は0に等しくあり得る。加えて、変数MinTbLog2SizeY、MaxTbLog2SizeY、MinTbSizeY、及びMaxTbSizeYは、以下のように式(7)~(10)から導出されることができる。
式(10)に示すように、ツリータイプが単一木で、ACTイネーブルフラグ(例えば、sps_act_enabled_flag)が真であるとき、ルマサンプル中の最大変換サイズは32に等しい。さもなければ、ツリータイプが単一木でないか、或いはACTイネーブルフラグが真でないならば、ルマサンプル中の最大変換サイズは64に等しい。
別の実施形態では、表8に示すように、ACTイネーブルフラグ(例えば、sps_act_enabled_flag)は、SPSにおいて独立して信号伝達されることができる。よって、表7と比較して、ACTイネーブルフラグ(例えば、sps_act_enabled_flag)は、信号伝達されることができ、最大変換サイズフラグ(例えば、sps_st_max_luma_transform_size_64_flag)と無関係であることができる。
上述の方法は、別々に使用されることができ、或いは任意の順序で組み合わされることができる。本開示において、高いレベルの構文要素は、ビデオパラメータセット(VPS:Video Parameter Set)、SPS、ピクチャパラメータセット(PPS:Picture Parameter Set)、スライスヘッダ、タイルヘッダ、タイルグループヘッダのうちの1つを指すことができる。CTUヘッダは、(例えば、ヘッダ情報として)各CTUについて信号伝達される構文要素を指すことができる。本開示において、変換サイズは、最大変換幅及び/高さ、又は最大変換ユニット面積サイズ(maximum transform unit area size)を指すことができる。
図11及び図12は、本開示の実施形態に従ったプロセス(1300)及びプロセス(1400)の概略するフローチャートを示している。プロセス(1300)及び(1400)は、コード化されたビデオビットストリームの復号化プロセス中に使用されることができる。様々な実施形態において、プロセス(1300)及び(1400)は、端末デバイス(110)、(120)、(130)及び(140)中の処理回路、ビデオエンコーダ(203)の機能を実行する処理回路構成、ビデオデコーダ(210)の機能を実行する処理回路構成、ビデオデコーダ(310)の機能を実行する処理回路構成、ビデオエンコーダ(403)の機能を実行する処理回路構成、デコーダ(1200)の機能を実行する処理回路構成、エンコーダ(1100)の機能を実行する処理回路構成、及び同等物のような、処理回路構成によって実行されることができる。幾つかの実施形態において、プロセス(1300)及び(1400)は、ソフトウェア命令において実装されることができ、よって、処理回路構成がソフトウェア命令を実行するとき、処理回路構成は、それぞれ、プロセス(1300)及び(1400)を実行する。
図11に示されるように、プロセス(1300)は、(S1301)で開始し、(S1310)に進む。
(S1310)で、第1の信号伝達情報及び第2の信号伝達情報は、コード化された領域のコード化されたビデオビットストリームから決定されることができる。第1の信号伝達情報は、第1の予測モードのコード化された領域の第1の最大変換サイズを示すことができ、第2の信号伝達情報は、第2の予測モードのコード化された領域の第2の最大変換サイズを示すことができる。
(S1320)で、変換信号伝達情報がコード化されたビデオビットストリームに含まれるかどうかは、第1の信号伝達情報及び第2の信号伝達情報に基づいて決定されることができる。例えば、変換信号伝達情報は、(i)第1の信号伝達情報が、第1予測モードのコード化された領域の第1の最大変換サイズが第1のサンプル数(例えば、32サンプル)であることを示し、パーティション信号伝達情報が、二重木パーティションがコード化された領域に適用されていないことを示すときに、又は(ii)第2の信号伝達情報が、第2の予測モードのコード化された領域の第2の最大変換サイズが第2のサンプル数(例えば、32サンプル)であることを示すときに、コード化されたビデオビットストリームに含められることができる。さもなければ、変換信号伝達情報は符、コード化されたビデオビットストリームに含められないことがある。変換信号伝達情報は、適応色変換(ACT)がコード化された領域に適用されるかどうかを示すことができる。
(S1330)で、コード化された領域は、引き続き、変換信号伝達情報に基づいて復号化されることができる。
プロセス(1300)において、第1の信号伝達情報は、第1の信号伝達情報が第1の値であるときに、第1の予測モードのためのコード化された領域の第1の最大変換サイズが64サンプルのような値であることを示すことができる。第2の信号伝達情報は、第2の信号伝達情報が第1の値であるときに、第2の予測モードのためのコード化された領域の第2の最大変換サイズが64サンプルのような値であることを示すことができる。
プロセス(1300)において、コード化されたビデオビットストリームは、パーティション信号伝達情報を更に含むことができ、パーティション信号伝達情報は、二重木パーティションがコード化された領域に適用されるかどうかを示すことができる。
幾つかの実施形態において、変換信号伝達情報は、(i)第1の予測モードのコード化された領域の第1の最大変換サイズを示す第1の信号伝達情報が第1の数のサンプル(例えば、32サンプル)であり、且つ二重木パーティションを示すパーティション信号伝達情報がコード化された領域に適用されないこと、及び(ii)第2の予測モードのコード化された領域の第2の最大変換サイズを示す第2の信号伝達情報が第2の数のサンプル(例えば、32サンプル)であることのうちの1つに基づいて、コード化されたビデオビットストリームに含まれるかどうかが決定されることができる。
幾つかの実施形態において、第1の信号伝達情報は、二重木パーティションがコード化された領域に適用されることを示すパーティション信号伝達情報に基づいて決定されることができる。
幾つかの実施形態において、第1の信号伝達情報及び第2の信号伝達情報は、二重木パーティションがコード化された領域に適用されることを示すパーティション信号伝達情報に基づいて決定されることができる。
幾つかの実施形態において、第1の最大変換サイズは、二重木パーティションがコード化された領域に適用されないことを示すパーティション信号伝達情報に基づいて、第2の最大変換サイズに等しいことができる。
本方法において、第1の信号伝達情報及び第2の信号伝達情報は、シーケンスパラメータセット、ピクチャパラメータセット、及びスライスヘッダのうちの1つにおける構文要素によって示されことができる。
図12に示すように、プロセス(1400)は、(S1401)で開始し、(S1410)に進む。
(S1410)で、第1の信号伝達情報及び第2の信号伝達情報は、コード化された領域のコード化されたビデオビットストリームから受信されることができる。第1の信号伝達情報は、第1のパーティションモードに基づいて、コード化された領域の第1の最大変換サイズを示すことができる。第2の信号伝達情報は、第2のパーティションモードに基づいて、コード化された領域の第2の最大変換サイズを示すことができる。
(S4320)で、変換信号情報は、コード化されたビデオビットストリームから決定されることができ、変換信号伝達情報は、適応色変換(ACT)がコード化された領域に対して適用されるかどうかを示すことができる。
(S1430)で、コード化された領域は、引き続き、変換信号伝達情報に基づいて復号化されることができる。
プロセス(1400)において、第1の信号伝達情報は、第1の信号伝達情報が第1の値であるときに、コード化された領域の第1の最大変換サイズが64サンプルであることを示すことができ、第2の信号伝達情報は、第2の信号伝達情報が第1の値であるときに、コード化された領域の第2の最大変換サイズが64サンプルであることを示すことができる。
幾つかの実施形態において、変換信号伝達情報は、第2のパーティションモードが32サンプルであることに基づいてコード化された領域の第2の最大変換サイズを示す第2の信号伝達情報に基づいて決定されることができる。
幾つかの実施形態において、コード化された領域の最大変換サイズは、第2パーティションモードが適用されていること及びACTがコード化された領域に対して適用されることが変換信号伝達情報によって示されることに基づいて、32サンプルであると決定されることができる。
幾つかの実施形態において、コード化された領域の最大変換サイズは、(i)適用されていない第2パーティションモード、及び(ii)ACTがコード化された領域に対して適用されていないことを示す変換信号伝達情報のうちの1つに基づいて、64サンプルであると決定されることができる。
上述の技術は、コンピュータ読取可能な命令を用いてコンピュータソフトウェアとして実装されることができ、1つ以上のコンピュータ読取可能な媒体に物理的に格納されることができる。例えば、図13は、開示する主題事項の特定の実施形態を実装するのに適したコンピュータシステム(1500)を示す。
コンピュータソフトウェアは、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)、及び同等物によって、直接的に、或いは解釈、マイクロコード実行、及び同等のことを通じて実行されることができる命令を含むコードを作成するために、アセンブリ、コンパイル、リンク、又は類似のメカニズムの対象となることがある、任意の適切な機械コード又はコンピュータ言語を使用してコード化されることができる。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネット、及び同等物を含む、様々なタイプのコンピュータ又はそれらのコンポーネント上で実行されることができる。
コンピュータシステム(1500)のための図13に示すコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能性に関する如何なる制限を示唆することも意図しない。コンポーネントの構成も、コンピュータシステム(1500)の例示的な実施形態に示すコンポーネントの任意の1つ又は組み合わせに関する如何なる従属性又は要件も有するものとして解釈されてはならない。
コンピュータシステム(1500)は、特定のヒューマンインターフェース入力デバイスを含むことがある。そのようなヒューマンインターフェース入力デバイスは、例えば、(キーストローク、スワイプ、データグローブの動きのような)触覚入力、(音声、拍手のような)音声入力、(ジェスチャのような)視覚入力、嗅覚入力(図示せず)を通じて、1人以上の人間ユーザによる入力に応答することがある。ヒューマンインターフェースデバイスは、(発話、音楽、周囲音のような)オーディオ、(スキャンされた画像、静止画像カメラから得られる写真画像のような)画像、(2次元ビデオ、立体ビデオを含む3次元ビデオのような)ビデオのような、人間による意識的入力に必ずしも直接的に関係しない特定の媒体をキャプチャするために使用されることもできる。
入力ヒューマンインターフェースデバイスは、キーボード(1501)、マウス(1502)、トラックパッド(1503)、タッチスクリーン(1510)、データグローブ(図示せず)、ジョイスティック(1505)、マイクロホン(1506)、スキャナ(1507)、カメラ(1508)の1つ以上(それらのうちの1つのみが示されている)を含んでよい。
コンピュータシステム(1500)は、特定のヒューマンインターフェース出力デバイスを含むこともある。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通じて、1人以上の人間ユーザの感覚を刺激することがある。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1510)、データグローブ(図示せず)、ジョイスティック(1505)による触覚フィードバック、しかしながら、入力デバイスとして機能しない触覚フィードバックデバイスもある)、(スピーカー(1509)、ヘッドフォン(図示せず)のような)オーディオ出力デバイス、(各々がタッチスクリーン入力能力を備える或いは備えない、各々が触覚フィードバック能力を備える或いは備えない-それらのうちの一部は、立体画像出力のような手段を通じて二次元視覚出力又は三次元よりも多くの次元の出力を出力し得ることがある-CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーン、仮想現実メガネ(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)のような)視覚出力デバイス、及びプリンタ(図示せず)を含むことがある。
コンピュータシステム(1500)は、人間がアクセス可能な記憶デバイス、及び、CD/DVD又は同等の媒体を有するCD/DVD ROM/RW(1520)を含む光媒体(1521)、サムドライブ(1522)、取り外し可能なハードドライブ又はソリッドステートドライブ(1523)、テープ及びフロッピーディスク(図示せず)のようなレガシー磁気媒体、セキュリティドングル(図示せず)のような特殊化されたROM/ASIC/PLDベースのデバイス、及び同等物のような、それらの関連する媒体を含むこともできる。
当業者は、現在開示されている主題事項に関連して使用されるような「コンピュータ読取可能な媒体」という用語が、伝送媒体、搬送波、又は他の過渡信号を包含しないことも理解するはずである。
コンピュータシステム(1500)は、1つ以上の通信ネットワークへのインターフェースを含むこともできる。ネットワークは、例えば、無線、有線、光であることができる。ネットワークは、更に、ローカル、ワイドエリア、メトロポリタン、車両及び産業、リアルタイム、遅延耐性などであることができる。ネットワークの例は、イーサネット、無線LANのようなローカルエリアネットワーク、GSM、3G、4G、5G、LTE及び同等物を含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TVを含むTVワイヤライン又は無線ワイドエリアデジタルネットワーク、CANBusを含む車両及び産業、及び同等のものを含む。特定のネットワークは、一般的に、(例えば、コンピュータシステム(1500)のUSBポートのような)特定の汎用データポート又は周辺バス(1549)に取り付けられる外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、一般的には、以下に記載するシステムバスへの取付によってコンピュータシステム(1500)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのうちのいずれかを使用して、コンピュータシステム(1500)は、他のエンティティと通信することができる。そのような通信は、単指向性、受信のみ(例えば、放送テレビ)、単指向性送信専用(例えば、特定のCANbusデバイスへのCANbus)、又は、例えば、ローカル又はワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの双指向性であることができる。特定のプロトコル及びプロトコルスタックは、上述のように、それらのネットワーク及びネットワークインタフェースの各々で使用されることができる。
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、及びネットワークインタフェースは、コンピュータシステム(1500)のコア(1540)に取り付けられることができる。
コア(1540)は、1つ以上の中央処理装置(CPU)(1541)、グラフィックス処理装置(GPU)(1542)、フィールドプログラマブルゲート領域(FPGA)(1543)の形態における特殊なプログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(1544)などを含むことができる。これらのデバイスは、読出し専用メモリ(ROM)(1545)、ランダムアクセスメモリ(1546)、内部非ユーザアクセス可能ハードドライブのような内部大容量記憶装置、SSD、及び同等物(1547)と共に、システムバス(1548)を通じて接続されることがある。幾つかのコンピュータシステムにおいて、システムバス(1548)は、追加のCPU、GPU、及び同等物による拡張を可能にするために、1つ以上の物理プラグの形態においてアクセス可能である。周辺デバイスは、コアのシステムバス(1548)に直接的に、或いは周辺バス(1549)を通じて取り付けられるすることができる。周辺バスのためのアーキテクチャは、PCI、USB、及び同等物を含む。
CPU(1541)、GPU(1542)、FPGA(1543)及びアクセラレータ(1544)は、組み合わせにおいて、上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1545)又はRAM(1546)に格納されることができる。移行データは、RAM(1546)に格納されることもできるが、永久データは、例えば、内部大容量記憶装置(1547)に格納されることができる。1つ以上のCPU(1541)、GPU(1542)、大容量記憶装置(1547)、ROM(1545)、RAM(1546)及び同等物と密接に関連付けられることができるキャッシュメモリの使用を通じて、メモリデバイスのいずれかへの高速格納及び検索を可能にすることができる。
コンピュータ読取可能な媒体は、様々なコンピュータ実装される動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構成されるものであることができ、或いはコンピュータソフトウェア技術に熟練した者によく知られており且つ入手可能な種類のものであることができる。
一例として、限定によってなく、アーキテクチャ(1500)、具体的には、コア(1540)を有する、コンピュータシステムは、1つ以上の有形のコンピュータ読取可能な媒体に具現されるソフトウェアを実行する(CPU、GPU、FPGA、アクセラレータ及び同等物を含む)プロセッサの結果としての機能性を提供することができる。そのようなコンピュータ読取可能な媒体は、上記で紹介したようなユーザアクセス可能な大容量記憶装置に関連する媒体、並びにコア内部大容量記憶装置(1547)又はROM(1545)のような非一時的な性質のコア(1540)の特定の記憶装置であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに格納されることができ、コア(1540)によって実行されることができる。コンピュータ読取可能な媒体は、特定のニーズに従った1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(1540)に、具体的には、その中の(CPU、GPU、FPGA及び同等物を含む)プロセッサに、RAM(1546)に格納されるデータ構造を定義すること及びソフトウェアによって定義されるプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載する特定のプロセス又は特定の部分を実行させることができる。追加的に又は代替的に、コンピュータシステムは、回路構成(例えば、アクセラレータ(1544))内に配線された或いは他の方法で具現されるロジック(論理)の結果としての機能性を提供することができ、それは、本明細書に記載する特定のプロセス又は特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに又はソフトウェアと共に作動することができる。ソフトウェアへの言及は、ロジックを含み、必要に応じて、その逆も可能である。コンピュータ読取可能な媒体への言及は、実行のためのソフトウェアを格納する(集積回路のような)回路、実行のためのロジックを具現する回路、又は適切な場合には、その両方を包含することができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを包含する。
(付録A:頭字語)
HEVC:高効率ビデオコード化
HDR:高ダイナミックレンジ
SDR:標準ダイナミックレンジ
VVC:多用途ビデオコード化
JVET:共同ビデオ探究チーム
MPM:最確モード
WAIP:広角イントラ予測
CU:コード化ユニット
PU:予測ユニット
ISP:イントラサブパーティション
SBT:サブブロック変換
CBF:コード化されたブロックフラグ
この開示は、幾つかの例示的な実施形態を記載したが、本開示の範囲内にある変更、置換、及び様々な代替均等物がある。よって、当業者は、本明細書に明示的に示されていないか或いは記載されていないが、本開示の原理を具体化し、よって、本開示の精神及び範囲内にある、多数のシステム及び方法を考案することができることが理解されるであろう。