図3は、本開示の実施形態による通信システム(300)の簡略ブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信する複数の端末装置を含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1対の端末装置(310)と(320)を含む。図3に示す例において、第1対の端末装置(310)と(320)は一方向のデータ伝送を実行する。例えば、端末装置(310)は、動画データ(例えば、端末装置(310)によってキャプチャされた動画ピクチャストリーム)を符号化して、ネットワーク(350)を介して他の端末(320)に伝送してもよい。符号化された動画データは1つ又は複数の符号化された動画ビットストリームで伝送される。端末装置(320)は、ネットワーク(350)から符号化された動画データを受信し、符号化された動画データを復号化して、動画ピクチャを復元し、復元された動画データに基づいて、動画ピクチャを表示してもよい。一方向のデータ伝送は、媒体サービスアプリケーションなどでは一般的である。
他の例において、通信システム(300)は、符号化された動画データの双方向伝送を実行する、第2対の端末装置(330)と(340)とを含み、当該双方向伝送は、例えば動画会議中に発生する可能性がある。双方向データ伝送については、示例において、端末装置(330)及び(340)のそれぞれは、動画データ(例えば、端末装置によってキャプチャされた動画ピクチャストリーム)を符号化して、ネットワーク(350)を介して端末装置(330)と(340)のうちの他方の端末装置に伝送してもよい。端末装置(330)及び(340)のそれぞれは、端末装置(330)及び(340)のうちの他方の端末装置によって送信された、符号化された動画データをさらに受信し、符号化されたデータを復号化して動画ピクチャを復元し、復元された動画データに基づいて、動画画像をアクセス可能な表示デバイスに表示してもよい。
図3に示す例において、端末装置(310)、(320)、(330)及び(340)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示され得るが、本開示の原理はこれに限定されていない。本開示の実施形態はラップトップコンピュータ、タブレット、メディアプレイヤー及び/又は専用の動画会議機器に適用される。ネットワーク(350)は端末装置(310)、(320)、(330)及び(340)の間で符号化された動画データを伝送する任意の数のネットワークを示し、例えば、有線(結線される)及び/又は無線通信ネットワークを含む。通信ネットワーク(350)は、回線交換及び/又はパケット交換チャネルにおいてデータを交換し得る。代表的なネットワークは通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットを含む。この検討を目的として、ネットワーク(350)のアーキテクチャとトポロジーは、以下に本明細書で説明されない限り、本開示の操作にとって重要ではない場合がある。
開示された主題の適用例として、図4は、ストリーミング環境における動画エンコーダとデコーダの配置を示し、開示された主題は、例えば、動画会議、デジタルテレビ、CD、DVD、メモリースティックなどを含むデジタルメデイアの圧縮動画の保存を含む動画をサポートする他のアプリケーションに同様に適用され得る。
ストリーミングシステムはキャプチャサブシステム(413)を含んでもよく、当該キャプチャサブシステム(413)は、例えば非圧縮の動画ピクチャストリーム(402)を構築する、例えばデジタルカメラなどの動画ソース(401)を含んでもよい。例において、動画ピクチャストリーム(402)はデジタルカメラによって撮影されたサンプルを含む。動画ピクチャストリーム(402)は、符号化された動画データ(404)(又は符号化された動画ビットストリーム)と比べて、データ量が多いことを強調するために太い線として描画され、当該動画ピクチャストリームは、動画ソース(401)に結合される動画エンコーダ(403)の電子機器(420)によって処理されてもよい。動画エンコーダ(403)は、以下でより詳細に説明する開示された主題の各態様を実現又は実施するために、ハードウェア、ソフトウェア、又はそれらの組み合わせを含んでもよい。符号化された動画データ(404)(符号化された動画ビットストリーム(404))は、動画ピクチャスレリーム(402)と比べて、データ量が少ないことを強調するために細い線として描画され、符号化された動画データは、将来の使用のために、ストリーミングサーバ(405)に記憶され得る。1つ又は複数のストリーミングクライアントサブシステム、例えば、図4におけるクライアントサブシステム(406)と(408)は、ストリーミングサーバ(405)にアクセスして、符号化された動画データ(404)のレプリカ(407)と(409)を検索し得る。クライアントサブシステム(406)は、例えば、電子機器(430)における動画デコーダ(410)を含んでもよい。動画デコーダ(410)は、符号化された動画データの着信レプリカ(407)を復号化し、ディスプレイ(412)(例えば、スクリーン)又は他のレンダリングデバイス(未図示)でレンダリングできる発信動画ピクチャストリーム(411)を作成する。一部のストリーミングシステムにおいて、ある動画符号化/圧縮規格に基づいて、符号化された動画ビットストリーム(404)、(407)、(409)(例えば、動画ビットストリーム)を符号化してもよい。これらの規格の例には、ITU-T H.265提案書を含む。例において、開発中の動画符号化規格は非公式に多用途動画符号化又はVVCと呼ばれる。開示された主題は、VVCの背景に使用可能である。
なお、電子機器(420)と(430)は、他の構成要素(未図示)を含んでもよい。例えば、電子機器(420)は動画デコーダ(未図示)を含んでもよく、電子機器(430)は動画エンコーダ(未図示)を含んでもよい。
図5は、本開示の実施形態による動画デコーダ(510)のブロック図を示す。動画デコーダ(510)は電子機器(530)に含まれてもよい。電子機器(530)は受信器(531)(例えば、受信回路システム)を含んでもよい。動画デコーダ(510)は図4に示す例における動画デコーダ(410)の代わりに使用されてもよい。
受信機(531)は、動画デコーダ(510)によって復号化される1つ又は複数の符号化された動画シーケンスを受信してもよく、同じ実施形態又は別の実施形態において、1回に1つの符号化された動画シーケンスを受信し、各符号化された動画シーケンスの復号化は他の符号化された動画シーケンスから独立している。チャネル(501)から符号化された動画シーケンスを受信することができ、当該チャネルは、符号化された動画データを記憶する記憶装置へのハードウェア/ソフトウェアリンクであってもよい。受信機(531)は、他のデータを受信する際に符号化された動画データを受信することができ、他のデータは、例えば、符号化されたオーディオデータ及び/又は補助データストリームであり、前記他のデータは、それぞれの使用エンティティ(未図示)に転送され得る。受信機(531)は、符号化された動画シーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、受信機(531)とエントロピーデコーダ/パーサ(520)(以降、「パーサ」と呼ばれる)との間にバッファメモリ(515)を結合し得る。いくつかの応用において、バッファメモリ(515)は動画デコーダ(510)の一部である。他の応用において、バッファメモリ(515)は動画デコーダ(510)(未図示)の外部にあってもよい。他の応用において、動画デコーダ(510)の外部には、ネットワークジッタを防止するために、バッファメモリ(未図示)があってもよく、さらに例えば動画デコーダ(510)の内部に、再生タイミングを処理するために、別のバッファメモリ(515)があり得る。受信機(531)が十分な帯域幅と制御可能性を有する記憶/転送デバイス、又は等同期ネットワークからデータを受信する場合に、バッファメモリ(515)は必要とされないか、又は小サイズであればよいといった可能性がある。ベストパケットネットワーク、例えばインターネットで使用するために、バッファメモリ(515)が必要である場合があり、当該バッファメモリは相対的に大きく、自己適応サイズを有利に有してもよい。そして、少なくとも部分的にオペレーティングシステム又は動画デコーダ(510)の外部における類似している構成要素(未図示)で実現されてもよい。
動画デコーダ(510)は、符号化された動画シーケンスに応じてシンボル(521)を再構築するパーサ(520)を含んでもよい。これらのシンボルのカテゴリには、動画デコーダ(510)の操作を管理するための情報と、レンダリングデバイス(512)(例えば表示スクリーン)のようなレンダリングデバイスを制御するための情報とを含んでもよく、当該レンダリングデバイスは、図5に示すように、電子機器(530)の構成部分ではなく、電子機器(530)に結合され得る。レンダリングデバイスに使用される制御情報は、補助拡張情報(SEIメッセージ)又は動画ユーザビリティ情報(VUI)パラメータセットフラグメント(未図示)形式であってもよい。パーサ(520)は、受信された符号化された動画シーケンスに対して解析/エントロピー復号化を行うことができる。符号化された動画シーケンスの符号化は、動画符号化技術又は規格に従って行われ、且つ可変長符号化、エルフマン符号化、文脈依存の有無に関わる算術符号化などを含む様々な原理に従って行われてよい。パーサ(520)は、グループに対応する少なくとも1つのパラメーターに基づいて、符号化された動画シーケンスから、動画デコーダにおける画素のサブグループのうちの少なくとも1つに対するサブグループパラメータセットを抽出してもよい。サブグループは、ピクチャのグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含んでもよい。パーサ(520)は、また、符号化された動画シーケンスから、例えば、変換係数、量子化器パラメーター値、動きベクトルなどの情報を抽出してもよい。
パーサ(520)は、バッファメモリ(515)から受信された動画シーケンスに対してエントロピー復号化/解析操作を実行することで、シンボル(521)を構築することができる。
シンボル(521)の再構築は、符号化された動画ピクチャ又は他の部分のタイプ(例えば、インターピクチャとイントラピクチャ、インターブロックとイントラブロック)及び他の要因に応じて、複数の異なるユニットに関し得る。どのユニットが関与し、どのように制御するかについて、パーサ(520)により符号化された動画シーケンスから解析したサブグループ制御情報によって制御されてもよい。簡潔のために、パーサ(520)と以下の複数のユニットとの間におけるサブグループ制御情報の流れについて説明しない。
既に言及された機能ブロックに加えて、動画デコーダ(510)は概念的には、以下に説明する複数の機能ユニットに細分化することができる。商業的な制約の下で運行する実際の実現形態では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示された主題を説明する目的のために、概念的には、以下の機能ユニットに細分化されることは適切である。
第1のユニットは、スケーラ/逆変換ユニット(551)である。当該スケーラ/逆変換ユニット(551)はパーサ(520)からシンボル(521)である量子化変換係数及び制御情報を受信し、使用する変換方法、ブロックサイズ、量子化係数、量子化スケーリングマトリックスなどを含む。スケーラ/逆変換ユニット(551)は、サンプル値を含むブロックを出力でき、前記サンプル値はアグリゲータ(555)に入力され得る。
いくつかの場合、スケーラ/逆変換ユニット(551)の出力サンプルは、イントラ符号化ブロック、即ち、事前に再構築されたピクチャからの予測情報を使用しないが、現在のピクチャの事前に再構築された部分からの予測情報を使用し得るブロックに属してもよい。このような予測情報は、イントラピクチャ予測ユニット(552)によって提供され得る。いくつかの場合に、イントラピクチャ予測ユニット(552)は現在のピクチャバッファ(558)から抽出された、周囲が既に再構築された情報を使用して、再構築しているブロックと同じサイズ及び形状のブロックを生成する。現在のピクチャバッファ(558)は、例えば、部分的に再構築された現在のピクチャ及び/又は完全に再構築された現在のピクチャをバッファリングする。いくつかの場合に、アグリゲータ(555)は各サンプルに基づいて、イントラ予測ユニット(552)によって生成される予測情報を、スケーラ/逆変換ユニット(551)から提供される出力サンプル情報に追加する。
他の場合、スケーラ/逆変換ユニット(551)の出力サンプルはインター符号化され且つ潜在動き補償であり得るブロックに属してもよい。このような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測のためのサンプルを取得してもよい。当該ブロックに属するシンボル(521)に応じて、取得されたサンプルに対して動き補償を行った後に、これらのサンプルは、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力(この場合に、残差サンプル又は残差信号と呼ばれる)に追加されることで、出力サンプル情報を生成することができる。動き補償ユニット(553)がサンプルを取得する参照ピクチャメモリ(557)におけるアドレスは、動きベクトルによって制御されてもよく、前記動きベクトルは、シンボル(521)の形式で動き補償ユニット(553)に使用され得、前記シンボルは、例えば、X、Y、及び参照ピクチャ成分を有してもよい。動き補償には、サブサンプルの正確な動きベクトルが使用されている際に参照ピクチャメモリ(557)から取得されたサンプル値の補間、動きベクトル予測メカニズムなどを含んでもよい。
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において種々のループフィルタリング技術にって処理され得る。動画圧縮技術は、ループ内フィルタ技術を含んでもよく、当該ループ内フィルタ技術は、符号化された動画シーケンス(符号化された動画ビットストリームとも呼ばれる)に含まれ且つパーサ(520)からのシンボル(521)としてループフィルタユニット(556)に使用可能なパラメータによって制御されるが、符号化されたピクチャ又は符号化された動画シーケンスの(復号化順序で)前の部分を復号化している間に得られたメタ情報や事前に再構築されてループフィルタリング処理されたサンプル値に応答してもよい。
ループフィルタユニット(556)の出力はサンプルストリームであってもよく、当該サンプルストリームは、将来のインターピクチャ予測に使用されるために、レンダリングデバイス(512)に出力されて参照ピクチャメモリ(557)に記憶され得る。
特定の符号化されたピクチャは、完全に再構築されると、参照ピクチャとして将来の予測に使用され得る。例えば、現在のピクチャに対応する符号化されたピクチャは完全に再構築され、且つ符号化されたピクチャが、例えばパーサ(520)によって、参照ピクチャとして識別されると、現在のピクチャバッファ(558)が参照ピクチャメモリ(557)の一部になり得、そして、その後の符号化されたピクチャの再構築を開始する前に、新しい現在のピクチャバッファを新たに配分してもよい。
動画デコーダ(510)は、例えばITU-T H.265提案書における所定のビデ圧縮技術のような規格に応じて復号化操作を実行してもよい。符号化された動画シーケンスが動画圧縮技術又は規格の構文及び動画圧縮技術又は規格に記録されているプロファイルの両方に準拠する意味で、符号化された動画シーケンスは、使用されているビデ圧縮技術又は規格で指定される構文に準拠することができる。具体的に、プロファイルは、ビデ圧縮技術又は規格で利用可能な全てのツールから、幾つかのツールをプロファイルのみで使用され得るツールとして選択してもよい。コンプライアンスについて、符号化された動画シーケンスの複雑さがビデ圧縮技術又は規格のレベルで限定される範囲内にあることも要求される。いくつかの場合、レベルは、最大ピクチャのサイズ、最大フレームレート、最大再構築サンプルレート(例えば1秒あたりのメガサンプルを単位として測定する)、最大参照ピクチャサイズなどを制限する。いくつかの場合に、レベルによって設定される制限は、仮想参照デコーダ(HRD)の仕様及び符号化された動画シーケンスにおけるシグナリングされるHRDバッファの管理するメタデータによってさらに制限されてもよい。
実施形態において、受信器(531)は、符号化された動画とともに、追加の(冗長)データを受信してもよい。追加のデータは符号化された動画シーケンスの一部として含まれてもよい。動画デコーダ(510)は、追加のデータを使用してデータを正確に復号化し、及び/又は元の動画データをより正確に再構築してもよい。追加のデータは、例えば、時間、空間、又は信号対雑音比(SNR)拡張層、冗長スライス、冗長ピクチャ、前方誤り訂正符号などの形式であってもよい。
図6は、本開示の実施形態による動画エンコーダ(603)のブロック図を示す。動画エンコーダ(603)は電子機器(620)に含まれる。電子機器(620)はトランスミッタ(640)(例えば、伝送回路システム)を含む。動画エンコーダ(603)は図4に示す例における動画エンコーダ(403)の代わりに使用されてもよい。
動画エンコーダ(603)は、動画エンコーダ(603)によって符号化されようとする(1つ又は複数の)動画画像をキャプチャすることができる動画ソース(601)(図6に示す例における電子機器(620)の一部ではない)から動画サンプルを受信してもよい。別の例において、動画ソース(601)は、電子機器(620)の一部である。
動画ソース(601)は、動画エンコーダ(603)によって符号化されようとするデジタル動画サンプルストリーム形式であるソース動画シーケンスを提供してもよく、当該デジタル動画サンプルストリームは、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット…)、任意の色空間(例えば、BT.601YCrCB、RGB…)及び任意の適切なサンプリング構成(例えば、YCrCb
4:2:0、YCrCb 4:4:4)を有してもよい。メディアサービスシステムでは、動画ソース(601)は、先に準備された動画を記憶する記憶装置であってもよい。動画会議システムでは、動画ソース(601)は、ローカル画像情報を動画シーケンスとしてキャプチャするカメラであってもよい。動画データは、順番に見る際に動きが付与される複数の個別のピクチャとして提供されてもよい。ピクチャ自体は空間画素アレイとして編成されてもよく、なお、使用されているサンプリング構成、色空間などに応じて、各画素は、1つ又は複数のサンプルを含んでもよい。当業者は、画素とサンプルとの間の関係を容易に理解することができる。以下の説明では、サンプルを中心に説明する。
実施形態によれば、動画エンコーダ(603)は、リアルタイムで、又はアプリケーションによって要求される他の任意の時間制約の下で、ソース動画シーケンスのピクチャを、符号化された動画シーケンス(643)に符号化して圧縮してもよい。適切な符号化速度で実行することはコントローラ(650)の機能の1つである。いくつかの実施形態において、コントローラ(650)は、以下で説明する他の機能ユニットを制御し、これらのユニットに機能的に結合される。明確のために、結合は図示されていない。コントローラ(650)によって設置されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のλ値…)、ピクチャサイズ、ピクチャグループ(GOP)レイアウト、最大動きベクトル検索範囲などを含んでもよい。コントローラ(650)は、特定のシステム設計に対して最適化された動画エンコーダ(603)に属する他の適切な機能を有するように配置されてもよい。
幾つかの実施形態において、動画エンコーダ(603)は、符号化ループで動作するように配置されている。非常に簡略化した説明として、例において、符号化ループは、ソースエンコーダ(630)(例えば、符号化しようとする入力ピクチャ及び参照ピクチャに基づいてシンボルストリームのようなシンボルを作成することを担当する)と、動画エンコーダ(603)に組み込まれた(ローカルの)デコーダ(633)とを含んでもよい。デコーダ(633)は、(リモート)デコーダがサンプルデータを作成する方法と同様にサンプルを作成するために、シンボルを再構築する(シンボルと符号化された動画ビットストリームとの間の圧縮は開示された主題で考慮される動画圧縮技術では無損失であるため)。再構築されたサンプルストリーム(サンプルデータ)を参照ピクチャメモリ(634)に入力する。シンボルストリームの復号化によって、デコーダの位置(ローカル又はリモート)に関係がないビット正確結果が得られるため、参照ピクチャメモリ(634)のコンテンツもローカルエンコーダとリモートエンコーダとの間でビットが正確である。つまり、エンコーダの予測部分は、デコーダが復号化中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして見なす。
このような参照ピクチャの同期性の基本原理(及び、例えば、チャネルエラーのために同期性を維持できない場合は結果として生じるドリフト)は、一部の関連技術でも使用される。
「ローカル」デコーダ(633)の動作は、「リモート」デコーダ、例えば動画デコーダ(510)の動作と同じであってもよく、以上で図5を参照しながら詳細に説明した。しかしながら、さらに、簡単に図5を参照し、シンボルは、利用可能であり、且つ、エントロピーエンコーダ(645)及びパーサ(520)はシンボルを、符号化された動画シーケンスに無損失で符号化/復号化できる場合に、バッファメモリ(515)及びパーサ(520)を含める動画デコーダ(610)のエントロピー復号化部分は、ローカルデコーダ(633)で完全に実現されない場合がある。
この場合、デコーダに存在する解析/エントロピー復号化以外の任意のデコーダ技術も、必然的に基本的に同じ機能形式で対応するエンコーダに存在することが観察されることができる。そのため、開示された主題は、デコーダの動作に着目する。エンコーダ技術は包括的に説明されたデコーダ技術の逆であるため、エンコーダ技術の説明を簡略化することができる。より詳しい説明は、特定の領域のみで必要であり、以下で提供される。
いくつかの例において、動作中に、ソースエンコーダ(630)は、動き補償の予測的符号化を実行してもよく、動画シーケンスからの「参照ピクチャ」として指定された1つ又は複数の以前に符号化されたピクチャを参照することで入力ピクチャに対して予測的符号化を行う。このようにして、符号化エンジン(632)は入力ピクチャの画素ブロックと参照ピクチャの画素ブロックとの間の差異を符号化してもよく、当該参照ピクチャは、入力ピクチャへの予測参照として選択され得る。
ローカル動画デコーダ(633)は、ソースエンコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化された動画データを復号化してもよい。符号化エンジン(632)の動作は、有利には非可逆処理であり得る。符号化された動画データが動画デコーダ(図6、未図示)で復号化され得る場合に、再構築された動画シーケンスは、通常、多少の誤差を伴うソース動画シーケンスのレプリカであり得る。ローカル動画デコーダ(633)は、参照ピクチャに対して動画デコーダによって実行され得る復号化処理をコピーし、再構築された参照ピクチャを参照ピクチャメモリバッファ(634)
に記憶してもよい。このようにして、エンコーダ(603)は、再構築された参照ピクチャの共通を有するレプリカを、リモート動画デコーダによって得られる再構築された参照ピクチャとしてローカルに記憶することができる(伝送誤差がない)。
予測器(635)は、符号化エンジン(632)に対して予測検索を実行することができる。つまり、符号化されようとする新しいピクチャについて、予測器(635)は、参照ピクチャメモリ(634)において、新しいピクチャの適切な予測参照として使用され得るサンプルデータ(候補参照画素ブロックとする)又は、例えば、参照ピクチャの動きベクトル、ブロック形状などの特定のメタデータを検索してもよい。予測器(635)は、適切な予測参照が見つけられるように、サンプルブロックに基づいて、画素ブロックごとに動作することができる。いくつかの場合に、例えば、予測器(635)によって得られた検索結果によって特定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから得られた予測参照を有してもよい。
コントローラ(650)は、例えば、動画データを符号化するためのパラメータとサブグループパラメータの設置を含むソースエンコーダ(630)の符号化動作を管理することができる。
上記の全ての機能ユニットの出力はエントロピーエンコーダ(645)においてエントロピー符号化されてもよい。エントロピーエンコーダ(645)は、例えばハフマン符号化、可変長符号化、算術符号化などの当業者に知られている技術に基づいて、各機能ユニットによって生成されたシンボルに対して可逆圧縮を行うことによって、シンボルを、符号化された動画シーケンスに変換する。
トランスミッタ(640)は、通信チャネル(660)を介した伝送の準備をするように、エントロピーエンコーダ(645)によって作成された符号化された動画シーケンスをバッファリングすることができ、前記通信チャネルは、符号化された動画データを記憶する記憶装置へのハードウェア/ソフトウェアリンクであってもよい。トランスミッタ(640)は、動画エンコーダ(603)からの符号化された動画データを、伝送しようとする他のデータ、例えば、符号化されたオーディオデータ及び/又は補助データストリーム(ソースは未図示)とともにマージしてもよい。
コントローラ(650)は、エンコーダ(603)の動作を管理することができる。コントローラ(650)は、符号化中に、各符号化されたピクチャに、対応するピクチャに適用され得る符号化技術に影響する可能性がある特定の符号化されたピクチャタイプを指定することができる。例えば、通常、ピクチャを、以下のピクチャタイプのいずれかとして割り当てられ得る。
イントラピクチャ(Iピクチャ)は、シーケンス内の任意の他のピクチャを予測ソースとして使用せずに符号化及び復号化できるピクチャであってもよい。一部の動画コーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのそれらの変形及び対応する適用と特徴を知っている。
予測ピクチャ(Pピクチャ)は、イントラ予測又はインター予測を使用して符号化及び復号化を行うピクチャであってもよく、当該イントラ予測又はインター予測は、多くとも1つの動きベクトル及び参照インデックスを使用して各ブロックのサンプル値を予測する。
双方向予測ピクチャ(Bピクチャ)は、イントラ予測又はインター予測を使用して符号化と復号化を行うピクチャであってもよく、当該イントラ予測又はインター予測は、多くとも2つの動きベクトルと参照インデックスを使用して各ブロックのサンプル値を予測する。同様に、複数の予測ピクチャは、2つを超える参照ピクチャと関連するメタデータを使用して単一のブロックを再構築してもよい。
ソースピクチャは、一般的に、空間的に複数のサンプルブロックに細分化され(例えば、それぞれ4×4、8×8、4×8又は16×16のサンプルブロックである)、ブロックごとに符号化されてもよい。ブロックは、ブロックに適用される相応するピクチャの符号化割り当てによって特定される他の(すでに符号化された)ブロックを参照して予測的に符号化されることができる。例えば、Iピクチャのブロックについて、非予測的に符号化してもよく、又は、同じピクチャの符号化されたブロックを参照して予測的に符号化してもよい(空間的予測又はイントラ予測)。Pピクチャの画素ブロックは、1つの以前に符号化された参照ピクチャを参照して空間的予測又は時間的予測を介して予測的に符号化されてもよい。Bピクチャのブロックは、1つ又は2つの以前に符号化された参照ピクチャを参照して空間的予測又は時間的予測を介して非予測的に符号化されてもよい。
動画エンコーダ(603)は、例えばITU-T H.266提案書の所定の動画符号化技術又は規格に基づいて、符号化操作を実行することができる。動画エンコーダ(603)は、その動作中に、入力動画シーケンスにおける時間的及び空間的冗長性を利用した予測符号化動作を含む様々な圧縮動作を実行することができる。従って、符号化された動画データは、使用されている動画符号化技術又は規格によって指定された構文に準拠し得る。
実施形態において、トランスミッタ(640)は、符号化された動画とともに、追加のデータを伝送してもよい。ソースエンコーダ(630)は、このようなデータを、符号化された動画シーケンスの一部として含んでもよい。追加のデータは、時間的/空間的/SNR拡張層、例えば冗長なピクチャ、スライスのような他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含んでもよい。
動画は、時系列で複数のソースピクチャ(動画ピクチャ)としてキャプチャされてもよい。イントラピクチャ予測(通常、イントラ予測と簡略化される)は、所定のピクチャにおける空間的関連性を利用し、インターピクチャ予測はピクチャ間の(時間的又は他の)関連性を利用する。例おいて、符号化/復号化中の現在のピクチャと呼ばれる特定のピクチャはブロックに分割される。現在のピクチャにおけるブロックは、動画における、以前に符号化されまだバッファリングされている参照ピクチャにおける参照ブロックと類似している場合に、動きベクトルと呼ばれるベクトルによって現在のピクチャにおけるブロックを符号化してもよい。動きベクトルは参照ピクチャにおける参照ブロックを指し、また、複数の参照ピクチャを使用する場合に、動きベクトルは、参照ピクチャを認識する第3のサイズを有してもよい。
幾つかの実施形態において、双方向予測技術は、インターピクチャ予測に使用されてもよい。双方向予測技術によれば、例えば、動画における現在のピクチャよりも復号化順序で先行する(ただし、それぞれ表示順序で過去及び将来にあり得る)第1の参照ピクチャ及び第2の参照ピクチャである2つの参照ピクチャを使用する。第1の参照ピクチャにおける第1の参照ブロックを指す第1の動きベクトル、第2の参照ピクチャにおける第2の参照ブロックを指す第2の動きベクトルによって、現在のピクチャにおけるブロックを符号化してもよい。第1の参照ブロックと第2の参照ブロックとの組み合わせによって当該ブロックを予測してもよい。
また、マージモード技術は、符号化の効率を向上させるために、インターピクチャ予測に使用することができる。
本開示の幾つかの実施形態によれば、例えばインターピクチャ予測及びイントラピクチャ予測のような予測はブロックごとに実行される。例えば、HEVC規格に応じて、動画ピクチャシーケンスにおけるピクチャは、圧縮のための符号化ツリーユニット(CTU)に分割され、ピクチャにおけるCTUは、例えば、64×64画素、32×32画素又は16×16画素などの同じサイズを持っている。一般に、CTUは、3つの符号化ツリーブロック(CTB)、即ち、1つの輝度CTBと2つの色度CTBを含む。各CTUは、1つ又は複数の符号化ユニット(CU)に再帰的に四分木で分割されてもよい。例えば、64×64画素のCTUを1つの64×64画素のCU、又は、4つの32×32画素のCU、又は16個の16×16画素のCUに分割してもよい。例において、各CUを分析して、当該CUに使用される予測タイプ、例えば、インター予測タイプ又はイントラ予測タイプを特定する。時間的及び/又は空間的予測可能性に依存し、CUは1つ又は複数の予測ユニット(PU)に分割される。通常、各PUは輝度予測ブロック(PB)及び2つの色度PBを含む。実施形態において、符号化(符号化/復号化)中の予測動作は予測ブロックごとに実行される。輝度予測ブロックを予測ブロックとして使用する例において、予測ブロックは画素値(例えば、輝度値)の行列、例えば、8×8画素、16×16画素、8×16画素、16×8画素などを含む。
図7は、本開示の他の実施形態による動画エンコーダ(703)の図を示す。動画エンコーダ(703)は、動画ピクチャシーケンスにおける現在の動画ピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを符号化された動画シーケンスの一部である符号化されたピクチャに符号化するように配置されている。例において、動画エンコーダ(703)は、図4に示す例における動画エンコーダ(403)の代わりに使用される。
HEVCの例では、動画エンコーダ(703)は、例えば8×8サンプルの予測ブロックなどである処理ブロックに使用されるサンプル値の行列を受信する。動画エンコーダ(703)は、例えばレート歪み最適化を使用して、イントラモード、インターモード又は双方向予測モードを使用して最適に前記処理ブロックを符号化するかを特定する。イントラモードで処理ブロックを符号化する場合に、動画エンコーダ(703)は、イントラ予測技術を使用して、処理ブロックを、符号化されたピクチャに符号化してもよく、インターモード又は双方向予測モードで処理ブロックを符号化する場合に、動画エンコーダ(703)は、インター予測又は双方向予測技術をそれぞれ使用して、処理ブロックを符号化されたピクチャに符号化してもよい。いくつかの動画符号化技術では、マージモードはインターピクチャ予測サブモードであってもよく、なお、予測器の外部の符号化された動きベクトル成分を使用せずに、1つ又は複数の動きベクトル予測器から動きベクトルを取得する。いくつかの他の動画符号化技術では、主題ブロックに適用される動きベクトル成分が存在し得る。例において、動画エンコーダ(703)は、例えば、処理ブロックのモードを特定するためのモード決定モジュール(未図示)などの他のコンポーネントを含む。
図7に示す例において、動画エンコーダ(703)は、図7に示すように、一体に結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)及びエントロピーエンコーダ(725)を含む。
インターエンコーダ(730)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、当該ブロックと参照ピクチャにおける1つ又は複数の参照ブロック(例えば、前のピクチャ及び後のピクチャにおけるブロック)とを比較し、インター予測情報(例えば、動きベクトル、マージモード情報、インター符号化技術による冗長情報の説明)を生成し、インター予測情報に基づいて、任意の適切な技術を使用してインター予測結果(例えば、予測ブロック)を算出するように配置されている。いくつかの例では、参照ピクチャは、符号化された動画情報に基づいて復号化された復号化済み参照ピクチャである。
イントラエンコーダ(722)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、いくつかの場合、当該ブロックと、同一のピクチャにおける既に符号化されたブロックとを比較し、変換後に量子化係数を生成し、いくつかの場合、(例えば、1つ又は複数のイントラ符号化技術に基づくイントラ予測方向情報に応じて)イントラ予測情報も生成するように配置されている。例において、イントラエンコーダ(722)は、さらにイントラ予測情報と同一のピクチャにおける参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)を算出する。
汎用コントローラ(721)は、汎用制御データを特定し、当該汎用制御データに基づいて、動画エンコーダ(703)の他のコンポーネントを制御するように配置されている。例において、汎用コントローラ(721)は、ブロックのモードを特定し、当該モードに基づいて制御信号をスイッチ(726)に提供する。例えば、モードがイントラモードである場合に、汎用コントローラ(721)は、残差計算器(723)に使用されるイントラモード結果を選択するようにスイッチ(726)を制御するとともに、イントラ予測情報を選択してイントラ予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御し、モードがインターモードである場合に、汎用コントローラ(721)は、残差計算器(723)に使用されるインター予測結果を選択するようにスイッチ(726)制御するとともに、インター予測情報を選択しインター予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御する。
残差計算器(723)は、受信したブロックと、イントラエンコーダ(722)又はインターエンコーダ(730)から選択した予測結果との差(残差データ)を算出するように配置されている。残差エンコーダ(724)は、残差データに基づいて、残差データを符号化することで変換係数を生成するように動作するように配置されている。例において、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように配置されている。次に、変換係数は、量子化処理されて、量子化された変換係数を取得する。各実施形態において、動画エンコーダ(703)は残差デコーダ(728)をさらに含む。残差デコーダ(728)は、逆変換を実行し、復号化された残差データを生成するように配置されている。復号化された残差データは、適宜にイントラエンコーダ(722)及びインターエンコーダ(730)によって使用されてもよい。例えば、インターエンコーダ(730)は、復号化された残差データとインター予測情報に基づいて、復号化されたブロックを生成してもよく、イントラエンコーダ(722)は、復号化された残差データとイントラ予測情報に基づいて、復号化されたブロックを生成してもよい。復号化されたブロックを適切に処理して、復号化されたピクチャを生成し、いくつかの例において、前記復号化されたピクチャは、メモリ回路(未図示)にバッファリングし、参照ピクチャとして使用される。
エントロピーエンコーダ(725)は、符号化されたブロックを含むようにビットストリームをフォーマットするように配置されている。エントロピーエンコーダ(725)は、例えばHEVC規格のような適切な規格に従う様々な情報を含むように配置されている。例において、エントロピーエンコーダ(725)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報及び他の適切な情報をビットストリームに含めるように配置されている。開示された主題によれば、インターモード又は双方向予測モードのマージサブモードでブロックを符号化する場合に残差情報がないことに留意されたい。
図8は、本開示の他の実施形態による動画デコーダ(810)の図を示す。動画デコーダ(810)は、符号化された動画シーケンスの一部である符号化されたピクチャを受信し、符号化されたピクチャを復号化することで、再構築されたピクチャを生成するように配置されている。例において、動画デコーダ(810)は、図4に示す例における動画デコーダ(410)の代わりに使用される。
図8に示す例において、動画デコーダ(810)は、図8に示すように、一体に結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構築モジュール(874)及びイントラデコーダ(872)を含む。
エントロピーデコーダ(871)は、符号化されたピクチャに基づいて、特定のシンボルを再構築するように配置されてもよく、これらのシンボルは、符号化されたピクチャを構成する構文要素を表す。そのようなシンボルは、例えば、ブロックを符号化するためのモード(例えば、イントラモード、インターモード、双方向予測モード、インターモードと双方向予測モードとのマージサブモード又は別のサブモード)、イントラデコーダ(872)又はインターデコーダ(880)の予測に使用される特定のサンプル又はメタデータとして認識され得る予測情報(例えば、イントラ予測情報又はインター予測情報)、例えば量子化変換係数の形である残差情報などを含んでもよい。例において、予測モードがインター又は双方向予測モードである場合に、インター予測情報をインターデコーダ(880)に提供し、予測タイプがイントラ予測タイプである場合に、イントラ予測情報をイントラデコーダ(872)に提供する。残差情報は逆量子化され、残差デコーダ(873)に提供されてもよい。
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように配置されている。
イントラデコーダ(872)はイントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように配置されている。
残差デコーダ(873)は、逆量子化を実行して逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように配置されている。残差デコーダ(873)は、特定の制御情報(量子化パラメータQPを含む)も必要とする場合があり、その情報はエントロピーデコーダ(871)から提供されてもよい(少量の制御情報に過ぎないため、データパスが図示されていない)。
再構築モジュール(874)は、空間領域において、残差デコーダ(873)から出力された残差と予測結果(場合によってインター予測モジュール又はイントラ予測モジュールによって出力される)を組み合わせて、再構築されたブロックを形成するように配置され、再構築されたブロックは再構築されたピクチャの一部であってもよく、再構築されたピクチャは、再構築された動画の一部であってもよい。視覚的品質を改善するために、デブロッキング操作などの他の適切な操作を実行できることに留意されたい。
任意の適切な技術を使用して動画エンコーダ(403)、動画エンコーダ(603)、動画エンコーダ(703)、及び動画デコーダ(410)、動画デコーダ(510)、動画デコーダ(810)を実現し得ることに留意されたい。実施形態において、1つ又は複数の集積回路を使用して動画エンコーダ(403)、動画エンコーダ(603)、動画エンコーダ(703)、及び動画デコーダ(410)、動画デコーダ(510)、動画デコーダ(810)を実現してもよい。他の実施形態において、ソフトウェア命令を実行する1つ又は複数のプロセッサーを使用して動画エンコーダ(403)、動画エンコーダ(603)、動画エンコーダ(703)、及び動画デコーダ(410)、動画デコーダ(510)、動画デコーダ(810)を実現してもよい。
ブロック区分構造(例えば、VVC)には、四分木(quad-tree、QT)及びマルチタイプツリー(multi-typetree、MTT)を含んでもよい。QTとMTTと呼ばれるブロック区分戦略を使用することができ、QT+MTTと呼ぶことができる。ピクチャは、重複しないCTUの配列に分割されることができる。例において、CTUは画素又はサンプルの2サイズ配列であり、最大128x128の輝度サンプル(および対応する色度サンプル)を持つ。次のツリー分割方法の1つまたは組み合わせを使用してCTU
を1つ又は複数の小さなブロックに分割することができる。親ブロック分割から生じた小さなブロックのそれぞれについて、フラグ(分割フラグと呼ばれる)を使用して、複数の可能なツリー区分のうちの1つを使用したさらなる分割を選択したかどうかをシグナリングすることができる。そうでない場合、小さい方のブロックは分割のリーフノードであり得、例えば、予測/変換/量子化/エントロピー符号化などの技術を使用して、符号化ユニット(CU)として処理され得る。分割が発生するたびに、対応する親ブロックからの小さいなブロックの深さを1ずつ増やすことができる。分割は、CTUのルート(例えば、depth = 0)から特定の限定された最大深度まで、または最小許容ブロックサイズ(例えば、各側に4サンプル)に達するまで継続できる。限定された最大深度または最小許容ブロックサイズに達すると、分割フラグはシグナリングされないが、0と推測できる。一方、いくつかの例では、CTUのルートにおいて、分割は1であると推測でき、例えば、Iスライスの場合、各128x128サンプルを第1の深さで4つの64x64サンプルに分割して最大変換サイズ64x64を具体化することができると暗黙的に推測できる。
例えば、HEVC及びVVCにQT分割を使用することができる。例において、各親ブロックは、水平方向と垂直方向の両方に二分割される。得られた4つの小さな区分は親ブロックと同じアスペクト比を有する。例において、まず、例えば、QT分割によりCTUを再帰的に分割する。以下で説明するように、MTT(例えば、二分木(BT)分割、三分木(TT)分割)を使用して各QTリーフノード(例えば、正方形)さらに(例えば、再帰的に)分割してもよい。
BT分割は、親ブロックを水平方向または垂直方向に二分割できる方法を指してもよい。親ブロックと比べて、得られた2つの小さい区分はサイズが半分になる。
TT分割は、親ブロックを、例えば対称的な方法で、水平方向または垂直方向に3つの部分に分割できる方法を指してもよい。この3つの部分の中央部分を他の2つの部分の2倍にしてもよい。得られた3つの小さな区分は、親ブロックと比べて、サイズが1 / 4、1 / 2、および1/4になる。
VVCのような例において、CUはブロック区分のリーフノードであり、さらに分割されない。CUサイズが最大TUサイズを超えない限り(例えば、最大TUサイズに達するまで残差を分割することができる)、対応する予測ユニット(predictionunit,PU)及び変換ユニット(transformunit、TU)のサイズはCUのサイズと同じであり得る。例において、例えばHEVCにおいて、PUサイズとTUサイズは、対応するCUサイズよりも小さくなり得る。ブロック区分操作は、CTUルートから許可される最大分割数(例えば、分割の深さ)と、リーフCUのブロックの最小の高さと幅によって制約される可能性がある。幾つかの例において、色度サンプルにおいて、最小CUサイズは4×4である。図9は本開示の実施形態によるBT分割及びTT分割(split)の例を示す。垂直(vertical)BT分割を使用してブロック(又は親ブロック)(910)を複数のブロック(又はサブブロック)(911)~(912)に分割してもよい。水平(horizontal)BT分割を使用してブロック(又は親ブロック)(920)を複数のブロック(又はサブブロック)(921)~(922)に分割してもよい。垂直TT分割を使用してブロック(又は親ブロック)(930)複数のブロック(又はサブブロック)(931)~(933)に分割してもよい。水平TT分割を使用してブロック(又は親ブロック)(940)を複数のブロック(又はサブブロック)(941)~(943)に分割してもよい。
図10は、CTU(1001)のブロック区分結果の例を示す。QTとMTT構成を使用してCTU(1001)を区分してもよく、例えば、QTを使用して、QT、BT及び/又はTTを使用してCTU(1001)を分割する。
上記の柔軟なブロック区分ツールに加えて、イントラスライスの符号化は、CTUの輝度サンプルと色度サンプルについての符号化ツリー構造が異なってもよい(デュアルツリー構造と呼ばれる)。従って、色度サンプルは、同じCTU内に併置された輝度ンプルから独立した符号化ツリーブロック構造を持つことができ、従って、色度サンプルは、輝度サンプルよりも大きな符号化ブロックサイズを有してもよい。
表1は、再帰的区分を使用したブロック構造の例示的な構文表(例えば、関数coding_tree())を示している。分割フラグのタイプに応じて関数coding_tree()を呼び出すことができる。分割がない場合、coding_unit()関数を呼び出してさらにCU内の構文要素を解析することができる。表1のあるフラグ(例えばsplit_cu_flag、split_qt_flag、mtt_split_cu_vertical_flag、mtt_split_cu_binary_flag)をシグナリングしてもよい。
幾つかの例において、各CTUのブロック分割構造(CTU分割構造、ブロック分割構造又はCTU分割構造とも呼ばれる)は、互いに独立してシグナリングされる。従って、以前に符号化されたCTUのブロック分割構造の情報は現在のCTUのブロック分割構造の予測器又は参照として使用されない。
様々な例において、ブロック分割構造は、CUの最小サイズ、最大分割深さ、区分または分割方法(例えば、QT、BT、TTなどのMTT)、中間ノードで区分分割するか、及び、如何に中間ノードで区分分割するかのうちの1つまたは複数を示めてもよい。ブロック分割構造の情報は、事前に特定された、推定したもの又は・及びシグナリングされたものである。
本開示の各態様によれば、復号化順序で現在のCTUに先行して復号化された以前に復号化されたCTUの参照区分情報に基づいて現在のピクチャにおける現在のCTU(例えば、CTB、色度CTB、色度CTBなど)の現在のブロック分割構造を決定してもよい。復号化順序で現在のCTUに先行して復号化された以前に復号化されたCTUは、現在のピクチャや異なるピクチャにおける、いずれかの適切な以前に復号化されたCTUであってもよい。例えば、以前に復号化されたCTUの参照区分情報は、以前に復号化されたCTUのブロック分割構造を含んでもよい。代わりに、例えばCTUレベルよりも高いレベル(又は高レベル)の高レベルヘッダにより示される参照区分情報に基づいて、現在のCTUの現在のブロック分割構造を決定することができる。例において、高レベルヘッダにおける参照区分情報は、高レベル(例えば、ピクチャレベル、スライスレベル)に関連するCTUに利用可能な高レベルブロック分割構造を示めしてもよく(例えば、含まれる)、高レベルヘッダにおけるインデックスは高レベルブロック分割構造内のどの高レベルブロック分割構造が現在のCTUの現在のブロック分割構造を決定するのに使用されるかを示めしてもよい。例において、ピクチャレベルに関連するCTUは、ピクチャにおけるCTUを指し、スライスレベルに関連するCTUはスライスにおけるCTUを指してもよい。高レベルの高レベルブロック分割構造は高レベルに関連するCTU(例えば、同じシーケンスにおけるCTU、同じピクチャにおけるCTUなど)によって使用されてもよい。第1の高レベルブロック分割構造に基づいて同じレベルに関連する(例えば、同じピクチャ、同じシーケンス中の)第1のCTUサブセットを区分することができる。第2の高レベルブロック分割構造に基づいて、同じレベルに関連する(例えば、同じピクチャ、同じシーケンス中の)第2のCTUサブセットを区分してもよい。
幾つかの例において、現在ブロックの現在のブロック分割構造は初期ブロック分割構造(例えば、以前に復号化されたCTUのブロック分割構造、高レベルヘッダにおける高レベルブロック分割構造のいずれか)と同じであってもよい。従って、初期ブロック分割構造をシグナリングする必要はないので、幾つかの例において、シグナリングを必要しない。幾つかの例において、単一のフラグをシグナリングして初期ブロック分割構造の選択を指示する。
オプションとして、初期ブロック分割構造を修正して現在ブロックの現在のブロック分割構造を取得してもよい。幾つかの例において、まず、初期ブロック分割構造を修正して参照ブロック分割構造を取得してもよい。次に、参照ブロック分割構造を修正して現在のブロック分割構造を取得してもよい。初期ブロック分割構造及び/又は参照ブロック分割構造をシグナリングしないので、表1で説明された方法で現在のCTUを再帰的分割することに比べて、少ないフラグをシグナリングすることができる。
実施形態において、符号化された動画ビットストリームから現在のCTUの符号化情報を復号化してもよい。当該符号化情報は現在のCTUの現在のブロック分割構造が参照区分情報に基づいているかどうかを示めしてもよい。現在のCTUの現在のブロック分割構造が参照区分情報に基づいていることに応答して、参照区分情報により示される初期ブロック分割構造に基づいて現在のCTUの現在のブロック分割構造を決定してもよい。初期ブロック分割構造は、(i)以前に復号化されたCTUのブロック分割構造、又は、(ii)高レベルヘッダにより示される高レベルブロック分割構造の一つである。また、現在のブロック分割構造に応じて現在のCTUを分割してもよい。
幾つかの例において、現在のCTUの現在のブロック分割構造に特定されないブロック構造情報に基づいて現在のCTUの現在のブロック分割構造を決定(例えば、予測)することにより、符号化効率を向上させることができる。ブロック構造情報は以前に符号化されたCTUのブロック分割構造又は高レベルヘッダ内のブロック分割構造を示めしてもよい。現在のCTUの現在のブロック分割構造に基づいて以前に符号化されたCTUのブロック分割構造を決定する場合、例えば、以前に符号化されたCTUのブロック分割構造をシグナリングする必要はないので、少ないフラグをシグナリングすることが可能となる。例えば、高レベルブロック分割構造は、高レベル(例えば、シーケンスレベル、ピクチャレベル)のCTUによって共有されるので、現在のCTUの現在のブロック分割構造に基づいて高レベルヘッダ内のブロック分割構造(高レベルブロック分割構造とも呼ばれる)を決定する場合、少ないフラグをシグナリングすることが可能となる。例において、1番目の高レベルのブロック分割構造は、同じ高レベルである2番目の数のCTUによって共有され、2番目の数は1番目の数よりもはるかに大きくなってもよい。
本開示の各態様によれば、他のCTU(例えば、以前に符号化されたCTU)のブロック分割構造に応じて現在のCTUの現在のブロック分割構造を決定(例えば、予測)してもよい。
以前に符号化されたCTUの参照区分情報(区分情報とも呼ばれる)に基づいて現在のCTUの現在のブロック分割構造を決定(例えば、予測)してもよい。例において、CTUレベルで、フラグ(例えば、構造予測フラグ(structurepredictionflag、SPF)又はspf_flag)を使用してシグナリングしCTUルートで現在のCTUの分割フラグを解析する前に、現在のCTUの現在のブロック分割構造について予測を使用する。SPF(例えば、spf_flag)が真であると、参照ブロック分割構造(又は参照CTU分割構造、ブロック分割構造予測器、ブロック区分構成予測器)を、現在のCTUのブロック分割構造に対する予測器として決定することができる(例えば、取得又は生成)。SPF(例えば、spf_flag)が真ではないと、例えば、各レベルにおけるさらに分割するか及び分割のタイプを指示するためのシグナリングに基づいて、現在のCTUの現在のブロック分割構造を独立して符号化することができる。現在のCTUの現在のブロック分割構造が独立して符号化された場合、現在のCTUの現在のブロック分割構造は以前に符号化されたCTUのブロック分割構造に依存しない、またはそれに基づいていない。
以上のように、現在のCTUの現在のブロック分割構造は、以前に符号化されたCTU(例えば、符号化順序で現在のCTUに先行して符号化されたCTU)の参照区分情報に基づいてもよい。例において、デコーダ側において、復号化順序で現在のCTUに先行して以前に符号化されたCTUを復号化する。以前に符号化されたCTUの参照区分情報は、以前に符号化されたCTUの、相応する以前に符号化されたCTUを区分するためのブロック分割構造を含んでもよい。幾つかの例において、参照区分情報は、フラグ又はインデックスをさらに含んでもよく、前記フラグ又はインデックスは、以前に符号化されたCTUのブロック分割構造中のどのブロック分割構造が現在のCTUの現在のブロック分割構造に使用されるかを示す。
現在のCTUの空間的に隣接するCTUに基づいて以前に符号化されたCTUの参照区分情報を取得してもよい。空間的に隣接するCTUのブロック分割構造を使用して現在のCTUの現在のブロック分割構造を予測してもよい。以前に復号化されたCTUは、現在のCTUの空間的に隣接するCTUであってもよい。初期ブロック分割構造は、空間的に隣接するCTUの一つに属してもよい。空間的に隣接するCTUは現在のCTUと隣接してもよい。
例において、空間的に隣接するCTU、例えば、空間的に隣接するCTUのブロック分割構造に基づいて参照ブロック分割構造を決定し、その後、当該参照ブロック分割構造に基づいて現在のブロック分割構造を決定する。
現在のCTUの現在のブロック分割構造は、以前に符号化されたCTUの情報(例えば、参照区分情報)によって予測してもよい。例において、前記情報(例えば、参照区分情報)は、現在のCTUの符号化図ブロック、符号化スライス又は符号化タイルグループと同じ符号化図ブロック、符号化スライス又は符号化タイルグループからのものであり得る。従って、現在のブロック分割構造の予測は空間予測と呼ばれることがある。現在のCTUの空間的に隣接するCTUの情報に応じて空間予測を決定することができ、これらの空間的に隣接するCTUは、例えば、現在のCTUの左側にあるCTUである左側のCTUまたは左側の符号化されたCTU、現在のCTUの頂部にある頂部CTU(上方CTUとも呼ばれる)または頂部に符号化されたCTU、および/または現在のCTUの左上隅にあるCTUである左上のCTU(左上のCTUとも呼ばれる)または左上の符号化されたCTUである。従って、現在のCTUの空間的に隣接するCTUは、左に符号化されたCTU、頂部に符号化されたCTU、および/または左上に符号化されたCTUを含み得るが、これらに限定されない。
履歴ベースのバッファ(又は履歴バッファ)から、以前に符号化されたCTUの参照区分情報を取得してもよい。履歴ベースのバッファは、以前に符号化されたCTUの1つ又は複数のブロック分割構造を記憶してもよい。例において、以前に符号化されたCTUは現在のピクチャにある。履歴ベースのバッファについての以前に符号化されたCTUは、現在のCTUに隣接するCTU及び/又は現在のCTUに隣接しないCTUを含んでもよい。幾つかの例において、履歴ベースのバッファについての以前に符号化されたCTUは、現在のピクチャと異なるピクチャからのCTUを含んでもよい。履歴ベースのバッファ内の1つ又は複数のブロック分割構造を使用して、現在のCTUの現在のブロック分割構造を予測してもよい。以前に復号化されたCTUの初期ブロック分割構造は履歴ベースのバッファ内の1つ又は複数のブロック分割構造の一つである。例において、履歴ベースのバッファ内の1つ又は複数のブロック分割構造の一つに応じて参照ブロック分割構造を決定し、その後、当該参照ブロック分割構造に基づいて現在のブロック分割構造を決定する。
様々な例において、符号化順序で(例えば、符号化順序、復号化順序)以前に符号化されたCTUの履歴ベースのバッファを維持して、以前に符号化されたCTUの1つ又は複数のブロック分割構造を記憶してもよい。バッファサイズN(例えば、正の整数)は、履歴ベースのバッファにN個のエントリが含まれていることを示す。履歴ベースのバッファ内のエントリを更新することができる。使用すると、履歴ベースのバッファ内の1つ以上のブロック分割構造からのブロック分割構造のインデックスをシグナリングすることができる。インデックス符号化には、任意の適切な方法を使用できる。例において、履歴ベースのバッファ内の1つまたは複数のブロック分割構造は、複数のブロック分割構造を含み、適切なコードワードで複数のブロック分割構造のインデックスを符号化してもよい。
例において、先入れ先出し(first-in-first-out、FIFO)ルールは、履歴ベースのバッファーを維持することに適用される。従って、履歴ベースのバッファは、符号化順序でN個の最新の符号化されたCTUのブロック分割構造の情報を保持することができる。
例において、最新の符号化されたCTUのエントリを履歴ベースのバッファの最後の位置(または最新の位置)に入れることができる。履歴ベースのバッファの最後の位置が現在のCTUの現在のブロック分割構造を予測するために使用される場合、最短のコードワードは、当該最後の位置のインデックス符号化に使用されることができる。
例において、エントリを履歴ベースのバッファに入れる場合、例えば、以前に符号化されたCTUのブロック分割構造に加えて、以前に符号化されたCTU(参照CTUとも呼ばれる)の位置(例えば、現在のCTUに対する位置)も履歴ベースのバッファに記憶される。現在のCTUの現在のブロック分割構造を予測するために選択された場合、現在のCTUに対するインデックス符号化用のコードワードを設計するために考慮される場合がある。例えば、第1の以前に符号化されたCTUの第1の位置が第2の以前に符号化されたCTUの第2の位置よりも現在のCTUに近い場合に、第1の以前に符号化されたCTUの複数のブロック分割構造の第1のブロック分割構造の第1のインデックスは、第2の以前に符号化されたCTUの複数のブロック分割構造の第2のブロック分割構造の第2のインデックスと比較して短いコードワードを使用する。
現在のCTUの時間的に隣接するCTUに基づいて、以前に符号化されたCTUの参照区分情報を取得することができる。(例えば、現在のピクチャ異なる参照ピクチャ中の)時間的に隣接するCTUのブロック分割構造を使用して現在のCTUの現在のブロック分割構造を予測することができる。以前に復号化されたCTUは、現在のCTUの時間的に隣接するCTUであってもよく、初期ブロック分割構造は現在のCTUの時間的に隣接するCTUの一つに属してもい。
例において、時間的に隣接するCTU、例えば、時間的に隣接するCTUのブロック分割構造に基づいて参照ブロック分割構造を決定し、その後、当該参照ブロック分割構造に基づいて現在のブロック分割構造を決定する。
図11は、本開示の実施形態による時間的に隣接するCTUを使用して現在のCTU(1111)の現在のブロック分割構造を予測する例を示す。現在のCTU(1111)は現在のピクチャ(1101)にある。例において、参照ピクチャ(1102)は決定される。例えば、参照ピクチャ(1102)は、TMVPMV予測器を取得するために併置されたCTUである。CTU(1121)は、現在のCTU(1111)の併置されたCTUである。現在のCTU(1111)の現在のブロック分割構造を予測するための時間的に隣接するCTUは、参照画像(1102)内の任意の適切なCTUを含むことができる。一例では、時間的に隣接するCTUは、併置されたCTU(1121)と、併置されたCTU(1121)の1つまたは複数の隣接するCTU(1122)~(1129)とを含む。時間的に隣接するCTUは、参照CTUと呼ばれることもある。
例において、併置されたCTU(1121)にインデックス符号化のための最短のコードワードを割り当て、併置されたCTU(1121)の8つの隣接するCTU(1122)~(1129)をインデックス符号化のための固定長(例えば、3ビット)のコードワードを割り当てる。例において、図11に示すように、CTU(1121)~(1129)に使用されるコードワードは、それぞれ1、000、001、010、011、100、101、110、111である。従って、CTU(1121)のブロック分割構造を使用して現在のCTU(1111)の現在のブロック分割構造を予測する場合に、インデックス「1」をシグナリングできる。代わりに、CTU(1128)のブロック分割構造を使用して現在のCTU(1111)の現在のブロック分割構造を予測する場合に、インデックス「110」をシグナリングできる。
以上で説明されたように、参照区分情報は高レベルヘッダによって示されることができる。ブロック分割構造(高レベルブロック分割構造とも呼ばれる)の情報(例えば、参照区分情報)は、高レベルヘッダに記憶されることができ、例えば、スライスヘッダ、PPS、SPSなどに記憶される。参照区分情報は高レベルブロック分割構造を含んでもよい。例において、高レベルはCTUレベルよりも高い。CTUレベルで高レベルブロック分割構造を含む参照区分情報を使用すると、高レベルブロック分割構造の一つを示すインデックスを送信してもい。例において、当該インデックスは、高レベルブロック分割構造の一つの記憶バッファ(例えば、高レベルヘッダ)における位置を示す。
例において、高レベルブロック分割構造は高レベルヘッダにおける複数のブロック分割構造を含み、初期ブロック分割構造は前記複数のブロック分割構造の一つであり、高レベルヘッダに含まれるインデックスによって示される。
高レベルブロック分割構造は、現在のCTUの現在のブロック分割構造を予測するために使用されてもよい。例において、高レベルブロック分割構造に基づいて参照ブロック分割構造を決定し、その後、当該参照ブロック分割構造に基づいて現在のブロック分割構造を決定する。
各符号化されたスライス又は各符号化されたピクチャは、符号化されたスライス又は符号化されたピクチャ(例えば、一部又は全て)に対して、ストレージバッファにおける参照区分情報(予測器情報とも呼ばれる)を更新することができる。例えば、予測器(例えば、高レベルブロック分割構造)A1~A10は、第1のピクチャのPPSから取得することができる。ストレージバッファは第1のピクチャの予測器A1~A10の情報を含んでもよい。第1のピクチャにおけるCTUは予測器A1~A10を参照して第1のピクチャにおける各CTUのブロック分割構造を取得することができる。例えば、第1のピクチャのPPSを解析した後に第2のピクチャのPPSを解析する場合、予測器A6~A10を保持するという指示、及び予測器B1~B5の情報を受信する。ストレージバッファは、第2のピクチャに対して、予測器B1~B5の情報と予測器A6~A10の情報を含めることができる。第2のピクチャのCTUは、予測器A6~A10と予測器B1-B5を参照して、第2のピクチャの各CTUのブロック分割構造を取得することができる。
以上で説明されたように、参照区分情報、例えば、以前に符号化されたCTUのブロック分割構造、高レベルヘッダにより示される高レベルブロック分割構造などに基づいて、現在のCTUの参照ブロック分割構造を決定してもよい。
例において、初期ブロック分割構造(例えば、以前に符号化されたCTUのブロック分割構造、高レベルヘッダにより示される(例えば、含まれる)高レベルブロック分割構造等)を参照ブロック分割構造として直接使用する。従って、参照ブロック分割構造は初期ブロック分割構造である。代わりに、初期ブロック分割構造(例えば、以前に符号化されたCTUのブロック分割構造、高レベルヘッダにより示される(例えば、含まれる)高レベルブロック分割構造等)を処理又は修正して参照ブロック分割構造を取得することができる。従って、参照ブロック分割構造は初期ブロック分割構造と異なる。初期ブロック分割構造におけるある分割情報は削除されてもよい。初期ブロック分割構造におけるある分割情報は近似されたり、新しい区分情報に置き換えられたりしてもよい。
図12は、本開示の実施形態による以前に符号化されたCTU(1201)のブロック分割構造を修正することによりCTU(1202)の参照ブロック分割構造を取得する例を示す。第1のレベル(例えば、CTUレベル)で、QT分割により、以前に符号化されたCTU(1201)を4つの64×64ブロック(1211)~(1214)に分割する。右上の64×64ブロック(1212)を比較的に小さい区分にさらに分割するが、3つの64×64ブロック(1211)、(1213)及び(1214)を分割しないことにより、以前に符号化されたCTU(1201)のブロック分割構造を取得する。以前に符号化されたCTU(1201)のブロック分割構造を予測器として使用する場合、右上の64×64ブロック(1212)の詳細分割構造は削除されて、そして右上の64×64ブロック(1222)での単一QT分割(1230)で示されてもよく、CTU(1202)の参照ブロック分割構造で示されるようである。CTU(1202)の参照ブロック分割構造は、QT分割を利用してCTUレベルでCTU(1202)を4つの64×64ブロック(1221)~(1224)に分割する。その後、QT分割(1230)により右上の64×64ブロック(1222)を4つの比較的に小さいブロック(1231)~(1234)にさらに分割する。例において、初期ブロック分割構造(例えば、以前に符号化されたCTU(1201)のブロック分割構造)に応じて修正された参照ブロック分割構造(例えば、CTU(1202)の参照ブロック分割構造)は簡略化される。従って、前記参照ブロック分割構造は、初期ブロック分割構造と比較して小さい分割深さ及び/又は少ないリーフノードを有するようになる。初期ブロック分割構造を修正して参照ブロック分割構造を取得することは有利である。例えば、図12に示すように、参照ブロック分割構造が簡略化される場合、参照ブロック分割構造に対して記憶されている情報が少なくなり、記憶空間が節約される。また、CTUの様々なブロック分割構造は、少ない数の変化で参照ブロック分割構造として表され得る。
任意の適切な修正ルールを適用して参照ブロック分割構造を取得することができる。例において、参照ブロック分割構造では、QT分割のみを使用又は許可することができ、例えばCTU(1202)の参照ブロック分割構造に示すようである。例において、参照ブロック分割構造ではQT分割のみを許可する場合、1ビットまたは1フラグのみを使用してQT分割を指示し、QT分割の実現方法を指示するために他のビットは必要ないため、符号化効率を向上させることができる。
例において、参照ブロック分割構造にQT分割及びBT分割を使用し、参照ブロック分割構造に他の分割方法を許可しないことができる。
実施形態において、参照ブロック分割構造では、QT分割のみを使用することができる。また、参照ブロック分割構造では、最大L個の分割レベルを許可する。Lは0、1、2などの整数であってもよい。例において、Lは0であり、参照ブロック分割構造を利用して予測されたCTUには、例えば分割されない128x128の単一ブロックを含む。例において、Lは1であり、参照ブロック分割構造を利用して予測されたCTUは分割されない128x128サンプルの単一ブロックであってもよいし、一回の分割で得られた4つの64x64ブロックを含んでもよい。例において、Lは2であり、参照ブロック分割構造を利用して予測されたCTUは128×128サンプルの単一ブロックであってもよいし、4つの64×64ブロックを含んでもよく、各64×64ブロックはさらに4つの32×32ブロックに分割される。
例において、分割レベルLは、ブロックまたは領域(例えば、64x64領域)の複雑さによって決定される。図12を参照して、参照ブロック分割構造における4つの64×64領域又はブロック(1221)~(1224)は、QT分割に対して異なる分割深さを有することができる。例えば、右上の64x64領域(1222)は、さらに1回分割されることができるが、他の3つの64x64領域は分割されず64x64レベルで維持される。従って、領域(1222)の分割深さLは2であり、領域(1221)、(1223)、および(1224)の分割深さLは1である。
本開示の各態様によれば、例えば、参照区分情報により示される初期ブロック分割構造に基づいて参照ブロック分割構造を決定することができる。参照ブロック分割構造に基づいて現在のブロック分割構造を決定することができる。
参照ブロック分割構造により予測すると、現在のCTUの現在のブロック分割構造は、参照ブロック分割構造を使用することができる。代わりに、参照ブロック分割構造を修正して現在のCTUの現在のブロック分割構造(最終ブロック分割構造とも呼ばれる)を取得することもできる。修正の有無にかかわらず参照ブロック分割構造を使用するかどうかは、シグナリングまたは事前に決定することができる。
本開示の各態様によれば、符号化情報は、参照ブロック分割構造を修正して現在のCTUの現在のブロック分割構造を修正するかどうかを示すフラグを含むことができる。従って、当該フラグに基づいて参照ブロック分割構造を修正して現在のCTBの現在のブロック分割構造を取得するかどうかを決定することができる。
例において、当該フラグは、修正有りの場合に参照ブロック分割構造を使用するかどうか、それとと、修正なしの場合に参照ブロック分割構造を使用するかをシグナリングするために使用される。修正ありの場合に参照ブロック分割構造を使用すると、参照ブロック分割構造による予測の後、さらなる修正をシグナリングしてもよい。
例において、予測された各サブノードにおいて、分割フラグは、現在の予測の基にさらに分割を使用するかどうかをシグナリングするために使用される。さらに分割を使用する場合、分割のタイプをシグナリングする。
例において、まず、参照ブロック分割構造に応じて現在のCTUを分割して複数のサブノードを取得する。次に、必要に応じて、表1で説明された再帰的分割を各サブノードに適用してサブノードをさらに分割する。例えば、各サブノードにおいて、分割フラグは、さらに分割を使用するかどうかをシグナリングするために使用される。さらに分割を使用すると、分割のタイプをシグナリングすることがことできる。従って、参照ブロック分割構造及びシグナリングの組み合わせを使用して現在のCTUを区分し、参照ブロック分割構造をシグナリングしないので、シグナリングオーバーヘッドを低減する。
例において、現在のCTUの現在のブロック分割構造は、参照ブロック分割構造を直接(例えば、修正なしで)使用してもよい。従って、現在のCTUの現在のブロック分割構造は、参照ブロック分割構造と同じであってもよい。分割フラグをシグナリングする又は推定することはなく、符号化効率を向上させることができる。例えば、参照ブロック分割構造は4つの64×64ブロックである。参照ブロック分割構造を使用すると、現在のCTUを4つの64×64ブロックに分割でき、64×64ブロックのいずれかをさらに分割するかどうかをチェックする必要はない。
本開示の各態様によれば、参照ブロック分割構造を修正して現在のCTUの現在のブロック分割構造を取得することができる。例において、参照ブロック分割構造を使用して現在のCTUの現在のブロック分割構造を決定し、まず、参照ブロック分割構造に基づいて現在のCTUを区分することができ、予測構造の上に分割フラグを追加する可能性がある。例えば、参照ブロック分割構造は、4つの64x64ブロックである。参照ブロック分割構造を使用すると、まず、現在のCTUを4つの64×64ブロック(サブノードとも呼ばれる)に分割することができる。各サブノード(例えば、各64×64ブロック)について、分割フラグをシグナリングしたり、取得したり(例えば、推定)することにより、サブノードをさらに分割するかどうかを指示することができる。サブノードをさらに分割すると、附加情報(例えば、分割のタイプや、垂直方向、水平方向などの分割方向)をシグナリングできる。表1で説明された方法と同様に得られたサブノードのそれぞれを再帰的処理することができる。追加情報をシグナリングする可能性があるものの、参照ブロック分割構造をシグナリングする必要がないので、参照ブロック分割構造を修正して現在のブロック分割構造を取得することにより、符号化効率を向上させることができる。
図13は、本開示の実施形態によるプロセス(1300)を概説するフローチャートを示す。プロセス(1300)は、現在のCTUにおける再構築中の現在ブロックに対して予測ブロックを生成するように、現在のCTU(例えば、現在のCTB、現在の色度CTB、現在の色度CTB)を区分するために用いられる。各実施形態において、プロセス(1300)は、処理回路システムによって実行され、前記処理回路システムは、例えば、端末装置(310)、(320)、(330)及び(340)における処理回路システム、動画エンコーダ(403)の機能を実行する処理回路システム、動画デコーダ(410)の機能を実行する処理回路システム、動画デコーダ(510)の機能を実行する処理回路システム、動画エンコーダ(603)の機能を実行する処理回路システムなどである。幾つかの実施形態において、プロセス(1300)は、ソフトウェア命令で実現され、従って、処理回路システムがソフトウェア命令を実行すると、処理回路システムはプロセス(1300)を実行する。プロセス(1300)は(S1301)から開始し、(S1310)に進む。
(S1310)において、符号化された動画ビットストリームから現在のピクチャにおける現在のCTUの符号化情報を復号化することができる。符号化情報は、例えば、SPFを使用して、現在のCTUの現在のブロック分割構造が参照区分情報に基づいているかどうかを示すことができる。符号化情報が現在のCTUの現在のブロック分割構造が参照区分情報に基づいていることを示すと特定されると、プロセス(1300)は(S1320)に進む。符号化情報が、現在のCTUの現在のブロック分割構造が参照区分情報に基づいていないことを示すと特定されると、プロセス(1300)は(S1399)に進み、終了する。
(S1320)において、以上で説明されたように、参照区分情報により示される初期ブロック分割構造に基づいて現在のCTUの現在のブロック分割構造を決定することができる。初期ブロック分割構造は、(i)復号化順序で現在のCTUに先行して復号化された以前に復号化されたCTU(例えば、現在のCTUの空間的に隣接するCTU、現在のCTUの時間的に隣接するCTU、履歴ベースのバッファ内のブロック分割構造を有する以前に復号化されたCTU)に属し、又は、(ii)CTUレベルよりも高いレベル(例えば、ピクチャレベル、スライスレベル)の高レベルヘッダによって示される。
例において、修正された又は修正されていない初期ブロック分割構造に基づいて参照ブロック分割構造を決定する。また、修正された又は修正されていない参照ブロック分割構造に基づいて現在のCTUの現在のブロック分割構造を決定してもよい。
(S1330)において、現在のブロック分割構造に応じて現在のCTUを分割することができる。プロセス(1300)は(S1399)に進み、終了する。
プロセス(1300)は、様々なシナリオに適切に適合されることができ、プロセス(1300)のステップは、それに応じて調整することができる。プロセス(1300)の1つまたは複数のステップは、修正、省略、重複および/または組み合わせることができる。任意の適切な順序を使用してプロセス(1300)を実施することができる。
追加のステップをプロセス(1300)に追加することができる。例えば、上記のように(S1330)において現在のCTUをCUに区分した後、各CUを再構築できる。例において、(S1310)において、符号化情報が、現在のCTUの現在のブロック分割構造が参照区分情報に基づいていないことを示すと決定されたと、例えば、表1で説明された様々な分割フラグに基づいて現在のCTUを再帰的に区分することができる。
本開示の実施形態は、別々に使用することも、任意の順序で組み合わせて使用することもできる。さらに、方法(または実施形態)、エンコーダ、およびデコーダのそれぞれは、処理回路システム(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実現され得る。一例において、1つまたは複数のプロセッサは、非一時的なコンピュータ読み取り可能な媒体に格納されているプログラムを実行する。
上記の技術は、コンピュータ読み取り可能な命令によってコンピュータソフトウェアとして実現され、1つ又は複数のコンピュータ読み取り可能な媒体に物理的に記憶される。例えば、図14は開示された主題のいくつかの実施形態を実現するのに適したコンピュータシステム(1400)を示す。
任意の適切なマシンコード又はコンピュータ言語を使用してコンピュータソフトウェアを符号化することができ、機械コード又はコンピュータ言語がアセンブル、コンパイル、リンクなどのメカニズムを介して命令を含むコードを作成することができ、当該命令は、1つ又は複数のコンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって直接的に実行されるか、又は解釈、マイクロコード実行などによって実行されることができる。
命令は、例えば、様々なタイプのコンピュータ又はそのコンポーネントで(パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機器、モノのインターネット機器などを含む)実行されることができる。
図14に示すコンピュータシステム(1400)に使用されるコンポーネントは本質的に例示であり、本開示の実施形態を実現するためのコンピュータソフトウェアの使用範囲又は機能に制限を加えることを意図するものではない。コンポーネントの配置はコンピュータシステム(1400)の例示的な実施例に示されるコンポーネントのいずれか又はそれらの組み合わせに関する依存性又は要件を有するものとして解釈されるべきではない。
コンピュータシステム(1400)は、いくつかのヒューマンマシンインタフェース入力デバイスを含み得る。このようなヒューマンマシンインタフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの移動)、オーディオ入力(例えば、音声、拍手)、視覚入力(例えば、姿勢)、嗅覚入力(未図示)による1つ又は複数の人間のユーザの入力に応答してもよい。ヒューマンマシンインタフェースデバイスは、例えば、オーディオ(例えば、音声、音楽、環境音)、ピクチャ(例えば、スキャンした画像、静的画像撮影装置から取得された写真画像)、動画(例えば、2サイズ動画、ステレオ動画を含む3サイズ動画)などの、人間の意識的な入力に必ずしも直接関連しない特定のメディアをキャプチャするために使用されてもよい。
ヒューマンマシンインタフェース入力デバイスには、キーボード(1401)、マウス(1402)、トラックパッド(1403)、タッチスクリーン(1410)、データグローブ(未図示)、ジョイスティック(1405)、マイク(1406)、スキャナー(1407)、カメラ(1408)のうちの1つ又は複数(それぞれが1つのみ図示される)を含んでもよい。
コンピュータシステム(1400)はさらに、いくつかのヒューマンマシンインタフェース出力デバイスを含んでもよい。このようなヒューマンマシンインタフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通じて、1つ又は複数の人間のユーザの感覚を刺激することができる。このようなヒューマンマシンインタフェース出力デバイスには、触覚出力デバイス(例えば、タッチパネル(1410)、データグローブ(未図示)、又はジョイスティック(1405)による触覚フィードバックデバイスであり、入力デバイスとして機能しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(例えば、スピーカー(1409)、ヘッドフォン(未図示))、視覚出力デバイス(例えば、スクリーン(1410)であり、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、各スクリーンはタッチスクリーン入力機能がある場合とない場合、触覚フィードバック機能がある場合とない場合があり、そのうちのいくつかは、例えば、ステレオ画像出力、仮想現実眼鏡(未図示)、ホログラフィックディスプレイとスモークタンク(未図示)により2サイズの視覚出力又は3サイズ以上の出力、及びプリンター(未図示)を出力できる場合がある。
コンピュータシステム(1400)は、さらに、人間ユーザがアクセス可能な記憶装置及びそれらの関連する媒体を含んでもよく、例えば、CD/DVDを有する又は媒体(1421)に類似するCD/DVD
ROM/RW(1420)の光学媒体、サムドライブ(1422)、リムーバブルハードドライブ又はソリッドステートドライブ(1423)、例えば、磁気テープやフロッピーディスク(未図示)のようなレガシー磁気媒体、例えば、セキュリティドングル(未図示))のような専用ROM/ASIC/PLDに基づくデバイスなどを含んでもよい。
当業者はここで開示される主題に関連して使用される「コンピュータ読み取り可能な媒体」という用語は、伝送媒体、搬送波、又は他の一時的な信号が含まれていないことを理解すべきである。
コンピュータシステム(1400)はまた、1つ又は複数の通信ネットワーク(1455)へのネットワークインターフェース(1454)を含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークは、さらに、ローカル、広域、メトロポリタン、車両及び工業、リアルタイム、遅延耐性などであり得る。ネットワークの例には、例えば、イーサネットのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどのセルラーネットワーク、ケーブルテレビ、衛星TV、及び地上放送TVを含む有線又は無線広域デジタルネットワーク、CANBusを含む車両及び工業ネットワークなどを含む。
特定のネットワークは、通常、特定の汎用データポート又はペリフェラルバス(1449)の外部ネットワークインターフェイスアダプタ(例えば、コンピュータシステム(1400)のUSBポート)に接続された必要がある。
他のネットワークは、通常、以下に説明するようにシステムバスに接続することによってコンピュータシステム(1400)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。コンピュータシステム(1400)はこれらのネットワークのいずれかを使用して、他のエンティティと通信できる。このような通信は、単方向、受信のみ(例えば、テレビ放送)、単方向の送信のみ(例えば、CANbusから特定のCANbusデバイスへ)、又は双方向、例えば、ローカル又はワイドエリアデジタルネットワークを使用して他のコンピュータシステムまでである。上記のようにこれらのネットワークとネットワークインターフェイスのそれぞれで特定のプロトコルとプロトコルスタックを使用できる。
以上で言及されたヒューマンマシンインタフェースデバイス、ヒューマンアクセス可能な記憶装置、及びネットワークインタフェースは、コンピュータシステム(1400)のコア(1440)に取り付けることができる。
コア(1440)には、1つ又は複数の中央処理装置(CPU)(1441)、グラフィックス処理ユニット(GPU)(1442)、フィールドプログラマブルゲートアレイ(FPGA)(1443)の形の専用なプログラマブル処理ユニット、特定のタスクに使用されるハードウェアアクセラレータ(1444)などを含んでもよい。これらのデバイス、読み取り専用メモリ(ROM)(1445)、ランダムアクセスメモリ(RAM)(1446)、例えばユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量ストレージ(1447)はシステムバス(1448)を介して接続されてもよい。一部のコンピュータシステムにおいて、システムバス(1448)に1つ又は複数の物理プラグの形でアクセスして、追加のCPU、GPUなどにより拡張を実現することができる。周辺機器は、コアのシステムバス(1448)に直接的、又は周辺バス(1449)を介して接続することができる。例において、ディスプレイ(1410)はグラフィックスアダプタ(1450)に接続することもできる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
CPU(1441)、GPU(1442)、FPGA(1443)、及びアクセラレータ(1444)は、組み合わせて上記のコンピュータコードを構成することができる特定の命令を実行してもよい。当該コンピュータコードは、ROM(1445)又はRAM(1446)に記憶されてもよい。一時的なデータもRAM(1446)に記憶されてもよく、永続的なデータは、例えば内部大容量記憶装置(1447)に記憶されてもよい。バッファメモリにより、記憶装置のうちのいずれかへの高速ストレージと検索を実現することができ、当該バッファメモリは、1つ又は複数のCPU(1441)、GPU(1442)、大容量記憶装置(1447)、ROM(1445)、RAM(1446)などと密接に関連することができる。
コンピュータ読み取り可能な媒体は、コンピュータが実現する様々な動作を実行するためのコンピュータコードをその上に有してもよい。媒体とコンピュータコードとは、本開示の目的のために、特別に設計及び構築される媒体とコンピュータコードであってもよいし、又はそれらは、コンピュータソフトウェアの当業者によって知られ且つ利用可能なタイプのものであってもよい。
例として限定ではなく、アーキテクチャを有するコンピュータシステム(1400)、特にコア(1440)は、プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が1つ又は複数の有形コンピュータ読み取り可能な媒体に実施されるソフトウェアを実行する結果として提供される機能を提供することができる。このようなコンピュータ読み取り可能な媒体は、以上に前記したユーザがアクセス可能な大容量記憶装置、及びコア(1440)のいくつかの非一時的な性質を有するストレージ例えばコア内部大容量記憶装置(1447)又はROM(1445)に関連する媒体であってもよい。本開示の様々な実施形態を実現するソフトウェアはこのようなデバイスに記憶され、コア(1440)によって実行されてもよい。特定のニーズに応じて、コンピュータ読み取り可能な媒体には1つ又は複数のメモリ又はチップが含まれてもよい。ソフトウェアは、コア(1440)、特にそのうちのプロセッサ(CPU、GPU、FPGAなどを含む)に、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行させ、ソフトウェアによって定義されたプロセスによりRAM(1446)に記憶されるデータ構造を定義し、このようなデータ構造を修正してすることを含む。さらに又は代わりとして、コンピュータシステムは、ロジックハードワイヤードによって提供される、又は、他の方式で回路(例えば、アクセラレータ(1444)に具現化される機能を提供することができ、当該回路は、ソフトウェアの代わりとして、又はソフトウェアとともに運行することで、本明細書で説明される特定のプロセス又は特定のプロセスの特定部分を実行できる。適切な場合、ソフトウェアに対する言及にはロジックが含まれ、逆に、ロジックに対する言及にはソフトウェアが含まれてもよい。コンピュータ読み取り可能な媒体への言及は、必要に応じて、実行のためのソフトウェアを格納する回路(例えば、集積回路(IC)など)、実行のための論理を実施する回路、又はその両方を包含することができる。本開示は、ハードウェアとソフトウェアとの任意の適切な組み合わせを包含する。
付録A:頭字語
JEM:共同探索モデル
VVC:多用途動画符号化
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率動画符号化
SEI:補助拡張情報
VUI:動画利用性情報
GOP:ピクチャグループ
TU:変換ユニット
PU:予測ユニット
CTU:符号化ツリーユニット
CTB:符号化ツリーブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SNR:信号雑音比
CPU:中央処理ユニット
GPU:グラフィックス処理ユニット
CRT:陰極線管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:ディジタル動画ディスク
ROM:リードオンリメモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブル論理デバイス
LAN:ローカルエリアネットワーク
GSM:移動通信用グローバルシステム
LTE:ロングタームエボリューション
CANBus:コントローラエリアネットワーク・バス
USB:ユニバーサルシリアル・バス
PCI:ペリフェラルコンポーネント相互接続
FPGA:フィールドプログラマブルゲートアレイ
SSD:ソリッドステートデバイス
IC:集積回路
CU:符号化ユニット
QT: 四分木
BT: 二分木
TT: 三分木
MTT: マルチタイプツリー
SPS: シーケンスパラメータセット
PPS: ピクチャパラメータセット
この開示は、いくつかの例示的な実施例を説明したが、本開示の範囲内に含まれる変更、置換、及び様々な代替均等物が存在する。従って、本明細書では明示的に示されていないか、又は記載されていないが、本開示の原理を具現化し、従って本開示の精神及び範囲内にある多数のシステム及び方法を当業者が考案できることが認識される。