明細書および請求項を通して、用語は、明示的に記述された意味を超えて、文脈において示唆されまたは暗示されたニュアンス付きの意味を有することがある。本明細書で使用される句「ある実施形態において」または「いくつかの実施形態において」は、必ずしも同じ実施形態を指すわけではなく、本明細書で使用される句「別の実施形態において」または「他の実施形態において」は、必ずしも異なる実施形態を指すわけではない。同様に、本明細書中で使用される「ある実装において」または「いくつかの実装において」という句は、必ずしも同じ実装を指すわけではなく、本明細書中で使用される「別の実装において」または「他の実装において」という句は、必ずしも異なる実装を指すわけではない。たとえば、請求される主題事項は、例示的な諸実施形態/実装の全体または一部の組み合わせを含むことが意図されている。
一般に、用語は、少なくとも部分的には、文脈における使用から理解されうる。たとえば、「および」、「または」または「および/または」などの用語は、本明細書中で使用される場合、そのような用語が使用される文脈に少なくとも部分的に依存しうる多様な意味を含みうる。典型的には、「または」は、A、BまたはCのようなリストを関連付けるために使用される場合、ここで包括的な意味で使用されるA、BおよびC、ならびにここで排他的な意味で使用されるA、BまたはCを意味することが意図される。さらに、本明細書で使用される用語「一つまたは複数」または「少なくとも1つ」は、少なくとも部分的に文脈に依存して、単数の意味で任意の特徴、構造、または特性を記述するために使用されてもよく、複数の意味で特徴、構造、または特性の組み合わせを記述するために使用されてもよい。同様に、「a」、「an」、または「the」のような用語は、少なくとも部分的には文脈に依存して、単数の用法を伝えるか、または複数の用法を伝えると理解されうる。さらに、「…に基づいて」または「…によって決定される」という用語は、必ずしも要因の排他的な集合を伝えることは意図されておらず、その代わりに、やはり少なくとも部分的には文脈に依存して、必ずしも明示的に記述されていない追加の要因の存在を許容しうる。
図3は、本開示のある実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、たとえばネットワーク(350)を介して互いに通信することができる複数の端末装置を含む。たとえば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末装置(310)および(320)を含む。図3の例では、第1の対の端末装置(310)および(320)は、データの一方向伝送を実行しうる。たとえば、端末装置(310)は、ネットワーク(350)を介した他方の端末装置(320)への伝送のために、ビデオ・データ(たとえば、端末装置(310)によって捕捉されたビデオ・ピクチャーのストリームのビデオ・データ)を符号化してもよい。エンコードされたビデオ・データは、一つまたは複数の符号化ビデオ・ビットストリームの形で伝送されることができる。端末装置(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は、開示される主題のためのアプリケーションの例として、ビデオ・ストリーミング環境におけるビデオ・エンコーダおよびビデオ・デコーダの配置を示す。開示される主題は、たとえば、ビデオ会議、デジタルTV、放送、ゲーム、仮想現実、CD、DVD、メモリースティックなどを含むデジタル媒体上の圧縮ビデオの記憶などを含む、他のビデオ対応アプリケーションにも等しく適用可能でありうる。
ビデオ・ストリーミング・システムは、ビデオ源(401)、たとえばデジタル・カメラを含むことができ、非圧縮のビデオ・ピクチャーまたは画像のストリーム(402)を生成するビデオ捕捉サブシステム(413)を含んでいてもよい。一例では、ビデオ・ピクチャーのストリーム(402)は、ビデオ源401のデジタル・カメラによってエンコードされたサンプルを含む。エンコードされたビデオ・データ(404)(または符号化されたビデオ・ビットストリーム)と比較した場合の高いデータ・ボリュームを強調するために太線として描かれているビデオ・ピクチャーのストリーム(402)は、ビデオ源(401)に結合されたビデオ・エンコーダ(403)を含む電子装置(420)によって処理されることができる。ビデオ・エンコーダ(403)は、以下により詳細に説明されるように、開示される主題の諸側面を可能にし、または実現するためのハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。非圧縮のビデオ・ピクチャーのストリーム(402)と比較した場合の、より低いデータ・ボリュームを強調するために細い線として描かれている、エンコードされたビデオ・データ(404)(またはエンコードされたビデオ・ビットストリーム(404))は、将来の使用のためにストリーミング・サーバー(405)に記憶されることができ、または下流のビデオ装置(図示せず)に直接記憶されることができる。図4のクライアント・サブシステム(406)および(408)のような一つまたは複数のストリーミング・クライアント・サブシステムは、ストリーミング・サーバー(405)にアクセスして、エンコードされたビデオ・データ(404)のコピー(407)および(409)を取り出すことができる。クライアント・サブシステム(406)は、たとえば電子装置(430)内にビデオ・デコーダ(410)を含むことができる。ビデオ・デコーダ(410)は、エンコードされたビデオ・データの入来コピー(407)をデコードし、ディスプレイ(412)(たとえば表示画面)または他のレンダリング装置(図示せず)上にレンダリングできる、非圧縮のビデオ・ピクチャーの出ていくストリーム(411)を生成する。ビデオ・デコーダ410は、本開示に記載されるさまざまな機能の一部または全部を実行するように構成されうる。いくつかのストリーミング・システムでは、エンコードされたビデオ・データ(404)、(407)、および(409)(たとえば、ビデオ・ビットストリーム)は、ある種のビデオ符号化/圧縮標準に従ってエンコードされることができる。これらの標準の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオ符号化規格は、非公式に多用途ビデオ符号化(VVC)として知られている。開示される主題は、VVCまたは他のビデオ符号化標準の文脈で使用されてもよい。
電子装置(420)および(430)は、他の構成要素(図示せず)を含むことができることを注意しておく。たとえば、電子装置(420)は、ビデオ・デコーダ(図示せず)を含むことができ、電子装置(430)は、ビデオ・エンコーダ(図示せず)も含むことができる。
図5は、後述する本開示のいずれかの実施形態によるビデオ・デコーダ(510)のブロック図を示す。ビデオ・デコーダ(510)は、電子装置(530)に含まれることができる。電子装置(530)は、受領器(531)(たとえば、受領回路)を含むことができる。ビデオ・デコーダ(510)は、図4の例におけるビデオ・デコーダ(310)の代わりに使用できる。
受領器(531)は、ビデオ・デコーダ(510)によってデコードされるべき一つまたは複数の符号化ビデオ・シーケンスを受領してもよい。同じまたは別の実施形態において、一度に1つの符号化ビデオ・シーケンスがデコードされてもよく、各符号化ビデオ・シーケンスのデコードは、他の符号化ビデオ・シーケンスから独立である。各ビデオ・シーケンスは、複数のビデオ・フレームまたは画像と関連していてもよい。符号化ビデオ・シーケンスは、チャネル(501)から受信されてもよく、該チャネルは、エンコードされたビデオ・データを記憶する記憶装置またはエンコードされたビデオ・データを送信するストリーミング源へのハードウェア/ソフトウェア・リンクであってもよい。受領器(531)は、エンコードされたビデオ・データを、他のデータ、たとえば符号化されたオーディオ・データおよび/または補助データ・ストリームと一緒に受領してもよく、これらのデータは、それぞれの処理回路(図示せず)を転送されてもよい。受領器(531)は、符号化ビデオ・シーケンスを他のデータから分離することができる。ネットワーク・ジッタ対策として、バッファメモリ(515)が、受領器(531)とエントロピー・デコーダ/パーサー(520)(以下「パーサー」)との間に配置されてもよい。ある種のアプリケーションでは、バッファメモリ(515)はビデオ・デコーダ(510)の一部として実装されてもよい。他のアプリケーションでは、ビデオ・デコーダ(510)の外部にあって、ビデオ・デコーダとは別個であることができる(図示せず)。さらに他のアプリケーションでは、たとえばネットワーク・ジッタに対抗するために、ビデオ・デコーダ(510)の外部にバッファメモリ(図示せず)があってもよく、さらに、たとえば再生タイミングを扱うために、ビデオ・デコーダ(510)の内部に別の追加的なバッファメモリ(515)があってもよい。受領器(531)が、十分な帯域幅および制御可能性の記憶/転送装置から、またはアイソクロナス・ネットワークからデータを受領している場合は、バッファメモリ(515)は、必要とされなくてもよく、または小さくてもよい。インターネットのようなベストエフォート型のパケット・ネットワークでの使用のためには、十分なサイズのバッファメモリ(515)が要求されることがあり、そのサイズは比較的大きいことがある。そのようなバッファ・メモリは適応的なサイズで実装されてもよく、少なくとも部分的に、ビデオ・デコーダ(510)の外部でオペレーティング・システムまたは同様の要素(図示せず)において実装されてもよい。
ビデオ・デコーダ(510)は、符号化ビデオ・シーケンスからシンボル(521)を再構成するためのパーサー(520)を含んでいてもよい。これらのシンボルのカテゴリーは、ビデオ・デコーダ(510)の動作を管理するために使用される情報と、潜在的には、ディスプレイ(512)(たとえば表示画面)のようなレンダリング装置を制御するための情報とを含む。レンダー装置は、図5に示されるように、電子装置(530)の一体的な部分であっても、一体的な部分ではなく電子装置(530)に結合されることもできる。レンダリング装置(単数または複数)のための制御情報は、補足向上情報(Supplementary Enhancement Information)(SEIメッセージ)またはビデオユーザビリティ情報(Video Usability Information、VUI)パラメータセット・フラグメント(図示せず)の形であってもよい。パーサー(520)は、パーサー(520)によって受領された符号化ビデオ・シーケンスをパースする/エントロピー復号することができる。符号化ビデオ・シーケンスのエントロピー符号化は、ビデオ符号化技術または標準に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感受性ありまたはなしの算術符号化などを含む、さまざまな原理に従うことができる。パーサー(520)は、符号化ビデオ・シーケンスから、ビデオ・デコーダ内のピクセルのサブグループのうちの少なくとも1つについてのサブグループ・パラメータのセットを、サブグループに対応する少なくとも1つのパラメータに基づいて、抽出することができる。サブグループは、ピクチャーグループ(Group of Pictures、GOP)、ピクチャー、タイル、スライス、マクロブロック、符号化単位(Coding Unit、CU)、ブロック、変換単位(Transform Unit、TU)、予測単位(Prediction Unit、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の一部としてさまざまな順序で含まれてもよい。これについては、下記でさらに詳細に述べる。
ループ・フィルタ・ユニット(556)の出力はサンプル・ストリームであることができ、これは、レンダリング装置(512)に出力されることができ、また将来のインターピクチャー予測において使用するために参照ピクチャー・メモリ(557)に記憶されることができる。
符号化された画像は、いったん完全に再構成されると、将来のピクチャー間予測のための参照ピクチャーとして使用できる。たとえば、現在ピクチャーに対応する符号化されたピクチャーが完全に再構成され、該符号化されたピクチャーが(たとえば、パーサー(520)によって)参照ピクチャーとして同定されると、現在ピクチャー・バッファ(558)は参照ピクチャーメモリ(557)の一部となることができ、後続の符号化されたピクチャーの再構成を開始する前に、新鮮な現在ピクチャー・バッファが再割当てされることができる。
ビデオ・デコーダ(510)は、ITU-T勧告H.265のような標準において採用された所定のビデオ圧縮技術に従ってデコード動作を実行することができる。符号化ビデオ・シーケンスはビデオ圧縮技術または標準のシンタックスおよびビデオ圧縮技術または標準において文書化されているプロファイルに従うという意味で、符号化されたビデオ・シーケンスは、使用されているビデオ圧縮技術または標準によって規定されたシンタックスに準拠することができる。具体的には、プロファイルはビデオ圧縮技術または標準において利用可能なすべてのツールから、そのプロファイルのもとでの使用のためにそれだけが利用可能なツールとして、ある種のツールを選択することができる。標準に準拠するために、符号化ビデオ・シーケンスの複雑さが、ビデオ圧縮技術または標準のレベルによって定義される範囲内にあってもよい。いくつかの場合には、レベルは、最大ピクチャー・サイズ、最大フレーム・レート、最大再構成サンプル・レート(たとえば、毎秒メガサンプルの単位で測られる)、最大参照ピクチャー・サイズなどを制約する。レベルによって設定された限界は、場合によっては、符号化ビデオ・シーケンスにおいて信号伝達される、HRDバッファ管理のための仮設参照デコーダ(Hypothetical Reference Decoder、HRD)仕様およびメタデータを通じてさらに制約されることができる。
いくつかの例示的実施形態では、受領器(531)は、エンコードされたビデオとともに追加の(冗長な)データを受領してもよい。追加データは、符号化されたビデオ・シーケンス(単数または複数)の一部として含まれていてもよい。追加データは、データを適正にデコードするため、および/またはもとのビデオ・データをより正確に再構成するために、ビデオ・デコーダ(510)によって使用されてもよい。追加データは、たとえば、時間的、空間的、または信号対雑音比(SNR)の向上層、冗長スライス、冗長ピクチャー、前方誤り訂正符号などの形でありうる。
図6は、本開示のある例示的実施形態によるビデオ・エンコーダ(603)のブロック図を示している。ビデオ・エンコーダ(603)は、電子装置(620)に含まれていてもよい。電子装置(620)は、送信器(640)(たとえば、送信回路)をさらに含んでいてもよい。ビデオ・エンコーダ(603)は、図4の例におけるビデオ・エンコーダ(403)の代わりに使用できる。
ビデオ・エンコーダ(603)は、ビデオ・エンコーダ(603)によって符号化されるべきビデオ画像を捕捉することができるビデオ源(601)(これは図6の例では電子装置(620)の一部ではない)からビデオ・サンプルを受領することができる。別の例では、ビデオ源(601)は、電子装置(620)の一部として実装されてもよい。
ビデオ源(601)は、任意の好適なビット深さ(たとえば、8ビット、10ビット、12ビット、…)、任意の色空間(たとえば、BT.601 YCrCB、RGB、XYZ…)および任意の好適なサンプリング構造(たとえば、YCrCb 4:2:0、YCrCb 4:4:4)でありうるデジタル・ビデオ・サンプル・ストリームの形で、ビデオ・エンコーダ(603)によって符号化されるべき源ビデオ・シーケンスを提供することができる。メディア・サービス・システムにおいては、ビデオ源(601)は、事前に準備されたビデオを記憶することができる記憶装置であってもよい。ビデオ会議システムにおいては、ビデオ源(601)は、ローカルでの画像情報をビデオ・シーケンスとして捕捉するカメラであってもよい。ビデオ・データは、シーケンスで見たときに動きを付与する複数の個々のピクチャーまたは画像として提供されてもよい。ピクチャー自体は、ピクセルの空間的アレイとして編成されてもよく、各ピクセルは、使用中のサンプリング構造、色空間などに依存して、一つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。下記の説明は、サンプルに焦点を当てる。
いくつかの例示的実施形態によれば、ビデオ・エンコーダ(603)は、源ビデオ・シーケンスのピクチャーを、リアルタイムで、またはアプリケーションによって要求される任意の他の時間的制約の下で、符号化および圧縮して、符号化ビデオ・シーケンス(643)にすることができる。適切な符号化速度を施行することは、コントローラ(650)の一つの機能をなす。いくつかの実施形態では、コントローラ(650)は、以下に記載されるような他の機能ユニットに機能的に結合され、該他の機能ユニットを制御してもよい。かかる結合は、簡単のために描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御に関連するパラメータ(ピクチャー・スキップ、量子化器、レート‐歪み最適化技法のラムダ値、…)、ピクチャー・サイズ、ピクチャーグループ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(650)は、ある種のシステム設計のために最適化されたビデオ・エンコーダ(603)に関する他の好適な機能を有するように構成できる。
いくつかの例示的実施形態では、ビデオ・エンコーダ(603)は、符号化ループにおいて動作するように構成されてもよい。思い切って単純化した説明として、一例では、符号化ループは、源符号化器(630)(たとえば、符号化されるべき入力ピクチャーと参照ピクチャー(算数または複数)に基づいてシンボル・ストリームのようなシンボルを生成することを受け持つ)と、ビデオ・エンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。埋め込まれたデコーダ633はエントロピー符号化なしに源符号化器630によって符号化ビデオ・ストリームを処理するが、デコーダ(633)は、(リモートの)デコーダが生成するであろうのと同様の仕方でサンプル・データを生成するよう前記シンボルを再構成する(開示される主題において考慮されるビデオ圧縮技術では、エントロピー符号化における、シンボルと符号化ビデオ・ビットストリームとの間のどの圧縮も無損失でありうる)。再構成されたサンプル・ストリーム(サンプル・データ)は、参照ピクチャー・メモリ(634)に入力される。シンボル・ストリームのデコードは、デコーダ位置(ローカルかリモートか)によらずビット正確な結果をもたらすので、参照ピクチャー・メモリ(634)の内容もローカル・エンコーダとリモート・エンコーダの間でビット正確である。言い換えると、エンコーダの予測部は、デコーダがデコード中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャー・サンプルとして「見る」。参照ピクチャー同期性のこの基本原理(および、たとえば、チャネルエラーのために同期性が維持できない場合の結果として生じるドリフト)は、符号化品質を改善するために使用される。
「ローカル」デコーダ(633)の動作は、図5との関連ですでに上記で詳細に述べた「リモート」デコーダ、たとえばビデオ・デコーダ(410)の動作と同じであってよい。しかしながら、暫時図5も参照すると、シンボルが利用可能であり、エントロピー符号化器(645)およびパーサー(420)による、シンボルの符号化ビデオ・シーケンスへのエンコード/デコードが可逆でありうるので、バッファ・メモリ(415)およびパーサー(420)を含むビデオ・デコーダ(410)のエントロピー復号部は、エンコーダにおけるローカル・デコーダ(633)においては完全には実装されなくてもよい。
この時点で行なうことができる観察は、デコーダ内にのみ存在してもよいパース/エントロピー復号を除くどのデコーダ技術も、対応するエンコーダ内で実質的に同一の機能的形態で存在する必要がありうることである。このため、開示される主題は時にデコーダ動作に焦点を当てることがあるが、これはエンコーダのデコード部分にも当てはまる。このように、エンコーダ技術の記述は、包括的に記述されるデコーダ技術の逆であるため、短縮することができる。ある種の領域または側面においてのみ、エンコーダの、より詳細な説明が以下で与えられる。
動作中、いくつかの例示的実装では、源符号化器(630)は、「参照ピクチャー」として指定された、ビデオ・シーケンスからの一つまたは複数の以前に符号化されたピクチャーを参照して、入力ピクチャーを予測的に符号化する、動き補償された予測符号化を実行することができる。このようにして、符号化エンジン(632)は、入力ピクチャーのピクセル・ブロックと、入力ピクチャーに対する予測参照として選択されうる参照ピクチャー(単数または複数)のピクセル・ブロックとの間の、色チャネルにおける差分(または残差)を符号化する。用語「残差」およびその連体形「残差の」は交換可能に使用されうる。
ローカル・ビデオ・デコーダ(633)は、源符号化器(630)によって生成されたシンボルに基づいて、参照ピクチャーとして指定されうるピクチャーの符号化されたビデオ・データをデコードすることができる。符号化エンジン(632)の動作は、有利には、損失のあるプロセスでありうる。符号化されたビデオ・データがビデオ・デコーダ(図6には示さず)でデコードされうるとき、再構成されたビデオ・シーケンスは、典型的には、いくつかのエラーを伴う源ビデオ・シーケンスの複製でありうる。ローカル・ビデオ・デコーダ(633)は、ビデオ・デコーダによって参照ピクチャーに対して実行されうるデコード・プロセスを複製し、再構成された参照ピクチャーを参照ピクチャー・キャッシュ(634)に格納させることができる。このようにして、ビデオ・エンコーダ(603)は、遠端(リモート)のビデオ・デコーダによって得られるであろう再構成された参照ピクチャーとしての共通の内容を(伝送エラーがなければ)有する再構成された参照ピクチャーのコピーを、ローカルに記憶することができる。
予測器(635)は、符号化エンジン(632)について予測探索を実行することができる。すなわち、符号化されるべき新しいピクチャーについて、予測器(635)は、新しいピクチャーのための適切な予測参照のはたらきをしうるサンプル・データ(候補参照ピクセル・ブロックとして)またはある種のメタデータ、たとえば参照ピクチャー動きベクトル、ブロック形状などを求めて、参照ピクチャー・メモリ(634)を探索することができる。予測器(635)は、適切な予測参照を見出すために、サンプル・ブロック/ピクセル・ブロック毎に(on a sample block-by-pixel block basis)動作しうる。場合によっては、予測器(635)によって得られた検索結果によって決定されるところにより、入力ピクチャーは、参照ピクチャー・メモリ(634)に記憶された複数の参照ピクチャーから引き出された予測参照を有することができる。
コントローラ(650)は、たとえば、ビデオ・データをエンコードするために使用されるパラメータおよびサブグループ・パラメータの設定を含め、源符号化器(630)の符号化動作を管理してもよい。
上記の機能ユニットすべての出力は、エントロピー符号化器(645)におけるエントロピー符号化を受けることができる。エントロピー符号化器(645)は、ハフマン符号化、可変長符号化、算術符号化などといった技術に従ったシンボルの無損失圧縮によって、さまざまな機能ユニットによって生成されたシンボルを符号化ビデオ・シーケンスに変換する。
送信器(640)は、エントロピー符号化器(645)によって生成される符号化ビデオ・シーケンスをバッファに入れて、通信チャネル(660)を介した送信のために準備することができる。通信チャネル(660)は、エンコードされたビデオ・データを記憶する記憶装置へのハードウェア/ソフトウェア・リンクであってもよい。送信器(640)は、ビデオ符号化器(630)からの符号化されたビデオ・データを、送信されるべき他のデータ、たとえば符号化されたオーディオ・データおよび/または補助データ・ストリーム(源は図示せず)とマージすることができる。
コントローラ(650)は、ビデオ・エンコーダ(603)の動作を管理してもよい。符号化の間、コントローラ(650)は、それぞれの符号化されたピクチャーに、ある符号化ピクチャー・タイプを割り当てることができる。符号化ピクチャー・タイプは、それぞれのピクチャーに適用されうる符号化技術に影響しうる。たとえば、ピクチャーはしばしば、以下のピクチャー・タイプのうちの1つとして割り当てられることがある。
イントラピクチャー(Iピクチャー)は、予測の源としてシーケンス内の他のピクチャーを使用せずに、符号化され、デコードされうるものでありうる。いくつかのビデオ・コーデックは、たとえば、独立デコーダ・リフレッシュ(Independent Decoder Refresh、「IDR」)・ピクチャーを含む、異なるタイプのイントラ・ピクチャーを許容する。当業者は、Iピクチャーのこれらの変形、ならびにそれらのそれぞれの用途および特徴を認識する。
予測ピクチャー(Pピクチャー)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを用いるイントラ予測またはインター予測を用いて符号化およびデコードされうるものでありうる。
双方向予測ピクチャー(Bピクチャー)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを用いるイントラ予測またはインター予測を用いて符号化およびデコードされうるものでありうる。同様に、マルチ予測ピクチャーは、単一のブロックの再構成のために、3つ以上の参照ピクチャーおよび関連するメタデータを使用することができる。
源ピクチャーは、普通、空間的に複数のサンプル・ブロック(たとえば、それぞれ4×4、8×8、4×8、または16×16サンプルのブロック)に分割され、ブロック毎に符号化されうる。ブロックは、ブロックのそれぞれのピクチャーに適用される符号化割り当てによって決定されるところにより、他の(すでに符号化された)ブロックを参照して予測的に符号化されうる。たとえば、Iピクチャーのブロックは、非予測的に符号化されてもよく、または、同じピクチャーのすでに符号化されたブロックを参照して予測的に符号化されてもよい(空間的予測またはイントラ予測)。Pピクチャーのピクセル・ブロックは、以前に符号化された一つの参照ピクチャーを参照して、空間的予測を介してまたは時間的予測を介して予測的に符号化されてもよい。Bピクチャーのブロックは、1つまたは2つの以前に符号化された参照ピクチャーを参照して、空間的予測を介して、または時間的予測を介して予測的に符号化されてもよい。源ピクチャーまたは中間処理されたピクチャーは、他の目的のために他のタイプのブロックに細分されてもよい。符号化ブロックの分割および他のタイプのブロックは、下記でさらに詳述されるのと同じ仕方に従っても従わなくてもよい。
ビデオ・エンコーダ(603)は、ITU-T勧告H.265などの所定のビデオ符号化技術または標準に従って符号化動作を実行することができる。その動作において、ビデオ・エンコーダ(603)は、入力ビデオ・シーケンスにおける時間的および空間的冗長性を活用する予測符号化動作を含む、さまざまな圧縮動作を実行することができる。よって、符号化されたビデオ・データは、使用されるビデオ符号化技術または標準によって指定されるシンタックスに準拠しうる。
いくつかの例示的実施形態では、送信器(640)は、エンコードされたビデオと一緒に追加データを送信してもよい。源符号化器(630)は、符号化ビデオ・シーケンスの一部としてそのようなデータを含めてもよい。追加データは、時間的/空間的/SNR向上層、冗長ピクチャーおよびスライスのような他の形の冗長データ、SEIメッセージ、VUIパラメータ・セット・フラグメントなどを含んでいてもよい。
ビデオは、時間的シーケンスにおいて複数の源ピクチャー(ビデオ・ピクチャー)として捕捉されてもよい。ピクチャー内予測(しばしば、イントラ予測と略される)は、所与のピクチャーにおける空間的相関を利用し、ピクチャー間予測は、ピクチャー間の(時間的または他の)相関を利用する。たとえば、現在ピクチャーと呼ばれるエンコード/デコード対象の特定のピクチャーは、ブロックに分割されてもよい。現在ピクチャー内のブロックは、ビデオにおける、前に符号化され、かつ、まだバッファに入れられている参照ピクチャー内の参照ブロックに類似する場合、動きベクトルと呼ばれるベクトルによって符号化できる。動きベクトルは、参照ピクチャー内の参照ブロックをポイントし、複数の参照ピクチャーが使用される場合には、参照ピクチャーを同定する第3の次元を有することができる。
いくつかの例示的実施形態では、ピクチャー間予測のために双予測技術が使用できる。そのような双予測技術によれば、いずれもデコード順でビデオにおいて現在ピクチャーに先行する(ただし、表示順では、それぞれ過去または将来であってもよい)第1の参照ピクチャーおよび第2の参照ピクチャーのような2つの参照ピクチャーが使用される。現在ピクチャー内のブロックは、第1の参照ピクチャー内の第1の参照ブロックをポイントする第1 動きベクトルと、第2の参照ピクチャー内の第2の参照ブロックをポイントする第2 動きベクトルとによって符号化できる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって合同的に予測できる。
さらに、符号化効率を改善するために、ピクチャー間予測においてマージモード技法が使用されてもよい。
本開示のいくつかの例示的実施形態によれば、ピクチャー間予測およびピクチャー内予測などの予測は、ブロックの単位で実行される。たとえば、ビデオ・ピクチャーのシーケンスにおけるピクチャーは、圧縮のために符号化ツリー単位(CTU)に分割され、ピクチャーにおけるそれらのCTUは、64×64ピクセル、32×32ピクセル、または16×16ピクセルなどの同じサイズを有していてもよい。一般に、CTUは、1つのルーマCTBおよび2つのクロマCTBという3つの並列な符号化ツリーブロック(CTB)を含みうる。各CTUは、再帰的に、一つまたは複数の符号化単位(CU)に四分木分割されていくことができる。たとえば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、または32×32ピクセルの4つのCUに分割できる。32×32のブロックの前記一つまたは複数のそれぞれは、16×16ピクセルの4つのCUにさらに分割されてもよい。いくつかの例示的実施形態では、各CUは、エンコードの際に、インター予測タイプまたはイントラ予測タイプのような、そのCUについての予測タイプを、さまざまな予測タイプのうちで決定するために解析される。CUは時間的および/または空間的予測可能性に依存して、一つまたは複数の予測単位(PU)に分割されてもよい。一般に、各PUはルーマ予測ブロック(PB)および2つのクロマPBを含む。ある実施形態では、符号化(エンコード/デコード)における予測動作は、予測ブロックの単位で実行される。CUのPU(または異なる色チャネルのPB)への分割は、さまざまな空間的パターンで実行されうる。たとえば、ルーマまたはクロマPBは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8サンプルなど、サンプルについての値(たとえば、ルーマ値)の行列を含みうる。
図7は、本開示の別の例示的実施形態によるビデオ・エンコーダ(703)の図を示す。ビデオ・エンコーダ(703)は、ビデオ・ピクチャーのシーケンス内の現在ビデオ・ピクチャー内のサンプル値の処理ブロック(たとえば、予測ブロック)を受領し、処理ブロックを、符号化ビデオ・シーケンスの一部である符号化されたピクチャーにエンコードするように構成される。この例示的なビデオ・エンコーダ(703)は、図4の例におけるビデオ・エンコーダ(403)の代わりに使用されてもよい。
たとえば、ビデオ・エンコーダ(703)は、8×8サンプルなどの予測ブロックのような処理ブロックについてサンプル値の行列を受領する。次いで、ビデオ・エンコーダ(703)は、処理ブロックが、イントラモード、インターモード、または双予測モードのどれを使用して、最もよく符号化されるかを、たとえばレート‐歪み最適化(rate-distortion optimization、RDO)を使用して、判別する。処理ブロックがイントラモードで符号化されると決定される場合、ビデオ・エンコーダ(703)は、処理ブロックを符号化されたピクチャーにエンコードするためにイントラ予測技法を使用してもよく;処理ブロックがインターモードまたは双予測モードで符号化されると決定される場合、ビデオ・エンコーダ(703)は、処理ブロックを符号化されたピクチャーにエンコードするために、それぞれ、インター予測技法または双予測技法を使用してもよい。いくつかの例示的実施形態では、マージモード(merge mode)が、動きベクトルが一つまたは複数の動きベクトル予測子から導出されるが前記予測子の外の符号化された動きベクトル成分の利益のない、ピクチャー間予測のサブモードとして使用されてもよい。いくつかの他の例示的実施形態では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。よって、ビデオ・エンコーダ(703)は、処理ブロックの予測モードを決定するためのモード決定モジュールなどの、図7に明示的に示されていないコンポーネントを含んでいてもよい。
図7の例では、ビデオ・エンコーダ(703)は、インター・エンコーダ(730)、イントラ・エンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、全般コントローラ(721)、およびエントロピー符号化器(725)を、図7における例示的配置に示されるように一緒に結合されて含む。
インター・エンコーダ(730)は、現在ブロック(たとえば、処理ブロック)のサンプルを受領し、該ブロックを参照ピクチャー内の一つまたは複数の参照ブロック(たとえば、表示順で以前のピクチャーおよび後のピクチャー内のブロック)と比較し、インター予測情報(たとえば、インター・エンコード技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、該インター予測情報に基づいて、任意の好適な技法を使用してインター予測結果(たとえば、予測されたブロック)を計算するように構成される。いくつかの例では、前記参照ピクチャーは、図6の例示的エンコーダ620に埋め込まれたデコード・ユニット633(図7の残差デコーダ728として示される;これについてはのちにさらに詳述する)を使って、エンコードされたビデオ情報に基づいてデコードされた、デコードされた参照ピクチャーである。
イントラ・エンコーダ(722)は、現在ブロック(たとえば、処理ブロック)のサンプルを受領し、該ブロックを、同じピクチャー内ですでに符号化されているブロックと比較し、変換後の量子化された係数を生成し、場合によっては、イントラ予測情報(たとえば、一つまたは複数のイントラ・エンコード技法によるイントラ予測方向情報)も生成するように構成される。イントラ・エンコーダ(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)は、さまざまな情報をビットストリームに含めるように構成される。たとえば、エントロピー・エンコーダ(725)は、全般制御データ、選択された予測情報(たとえば、イントラ予測情報またはインター予測情報)、残差情報、および他の好適な情報をビットストリーム内に含めるように構成されてもよい。インターモードまたは双予測モードのいずれかのマージ・サブモードにおいてブロックを符号化する場合は、残差情報は存在しなくてもよい。
図8は、本開示の別の実施形態による例示的なビデオ・デコーダ(810)の図を示す。ビデオ・デコーダ(810)は、符号化されたビデオ・シーケンスの一部である符号化されたピクチャーを受領し、符号化されたピクチャーをデコードして、再構成されたピクチャーを生成するように構成される。一例では、ビデオ・デコーダ(810)は、図4の例におけるビデオ・デコーダ(410)の代わりに使用されてもよい。
図8の例では、ビデオ・デコーダ(810)は、エントロピー・デコーダ(871)、インター・デコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、およびイントラ・デコーダ(872)が図8の例示的配置に示されるように一緒に結合されたものを含む。
エントロピー・デコーダ(871)は、符号化されたピクチャーから、その符号化されたピクチャーが構成されるシンタックス要素を表わすある種のシンボルを再構成するように構成されることができる。そのようなシンボルは、たとえば、ブロックが符号化されるモード(たとえば、イントラモード、インターモード、双予測モード、マージ・サブモードまたは別のサブモード)、イントラ・デコーダ(872)またはインター・デコーダ(880)によって予測のために使用されるある種のサンプルまたはメタデータを同定することができる予測情報(たとえば、イントラ予測情報またはインター予測情報など)、たとえば量子化された変換係数の形の残差情報などを含むことができる。一例では、予測モードがインターまたは双予測モードである場合、インター予測情報がインター・デコーダ(880)に提供され;予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラ・デコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
インター・デコーダ(880)は、インター予測情報を受領し、該インター予測情報に基づいてインター予測結果を生成するように構成されてもよい。
イントラ・デコーダ(872)は、イントラ予測情報を受領し、該イントラ予測情報に基づいて予測結果を生成するように構成されてもよい。
残差デコーダ(873)は、逆量子化を実行して量子化解除された変換係数を抽出し、量子化解除された変換係数を処理して、残差を周波数領域から空間領域に変換するように構成されてもよい。残差デコーダ(873)はまた、ある種の制御情報(量子化器パラメータ(QP)を含む)をも利用してもよく、該制御情報は、エントロピー・デコーダ(871)によって提供されてもよい(これは、低データ・ボリュームの制御情報のみであるため、データ経路は描かれていない)。
再構成モジュール(874)は、空間領域において、残差デコーダ(873)によって出力される残差と、予測結果(場合に応じてイントラまたはインター予測モジュールによって出力される)とを組み合わせて、再構成されたブロックを形成するように構成されてもよく、該再構成されたブロックは再構成されたビデオの一部としての再構成されたピクチャーの一部をなす。視覚的品質を改善するためにブロッキング解除動作などの他の好適な動作が実行されてもよいことを注意しておく。
なお、ビデオ・エンコーダ(403)、(603)、(703)、およびビデオ・デコーダ(410)、(510)、(810)は、任意の好適な技法を用いて実装できる。いくつかの例示的実施形態では、ビデオ・エンコーダ(403)、(603)、(703)およびビデオ・デコーダ(410)、(510)、(810)は、一つまたは複数の集積回路を使用して実装できる。別の実施形態では、ビデオ・エンコーダ(403)、(603)、(603)、およびビデオ・デコーダ(410)、(510)、(810)は、ソフトウェア命令を実行する一つまたは複数のプロセッサを使用して実装できる。
符号化および復号化のためのブロック・パーティション分割に目を向けると、一般的なパーティション分割は、ベース・ブロックから始まり、事前に定義された規則集合、特定の諸パターン、パーティション・ツリー、または任意のパーティション構造または方式に従うことができる。パーティション分割は、階層的かつ再帰的でありうる。以下に記載される例示的なパーティション分割手順または他の手順のいずれか、またはそれらの組み合わせに従ってベース・ブロックを分割またはパーティション分割した後、パーティションまたは符号化ブロックの最終的な集合が得られてもよい。これらのパーティションのそれぞれは、パーティション分割階層構造におけるさまざまなパーティション分割レベルの一つであってもよく、さまざまな形でありうる。各パーティションは、符号化ブロック(CB)と称されることがある。以下にさらに記載されるさまざまな例示的なパーティション分割実装については、結果として得られる各CBは、許容されるサイズおよびパーティション分割レベルの任意のものでありうる。そのようなパーティションが符号化ブロックと呼ばれるのは、そのようなパーティションは、いくつかの基本的な符号化/復号の決定がなされることができ、符号化/復号パラメータが最適化され、決定され、エンコードされたビデオ・ビットストリームにおいて信号伝達されうる単位をなしうるからである。最後の諸パーティションにおける最上位または最も深いレベルは、ツリーの符号化ブロック・パーティション分割構造の深さを表す。符号化ブロックは、ルーマ符号化ブロックまたはクロマ符号化ブロックでありうる。各色のCBツリー構造は、符号化ブロックツリー(CBT)と称されることがある。
すべての色チャネルの符号化ブロックは、まとめて符号化単位(CU)と称されることがある。すべての色チャネルの階層構造は、符号化ツリー単位(CTU)と総称されることがある。CTU内のさまざまな色チャネルについてのパーティション分割パターンまたは構造は、同じであってもなくてもよい。
いくつかの実装では、ルーマ・チャネルとクロマ・チャネルについて使用されるパーティション・ツリーの方式または構造は、同じである必要はなくてもよい。言い換えると、ルーマ・チャネルとクロマ・チャネルは、別個の符号化ツリー構造またはパターンを有してもよい。さらに、ルーマ・チャネルおよびクロマ・チャネルが、同じ符号化パーティション・ツリー構造を使用するか異なる符号化パーティション・ツリー構造を使用するかと、使用される実際の符号化パーティション・ツリー構造は、符号化されるスライスがPスライスであるか、Bスライスであるか、またはIスライスであるかに依存しうる。たとえば、Iスライスについては、クロマ・チャネルとルーマ・チャネルは、別個の符号化パーティション・ツリー構造または符号化パーティション・ツリー構造モードを有することができるが、PまたはBスライスについては、ルーマ・チャネルとクロマ・チャネルは、同じ符号化パーティション・ツリー方式を共有してもよい。別個の符号化パーティション・ツリー構造またはモードが適用される場合、ルーマ・チャネルは、1つの符号化パーティション・ツリー構造によってCBにパーティション分割されてもよく、クロマ・チャネルは、別の符号化パーティション・ツリー構造によってクロマCBにパーティション分割されてもよい。
いくつかの例示的実装では、所定のパーティション分割パターンがベース・ブロックに適用されてもよい。図9に示されるように、例示的な4路(4-way)パーティション・ツリーは、第1の事前に定義されたレベル(たとえば、ベース・ブロック・サイズとしての64×64ブロック・レベルまたは他のサイズ)から開始してもよく、ベース・ブロックは、事前に定義された最低レベル(たとえば、4×4レベル)まで階層的に分割されてもよい。たとえば、ベース・ブロックは、902、904、906、および908によって示される4つの事前に定義されたパーティション分割オプションまたはパターンに従ってもよく、図9に示されるのと同じパーティション分割オプションが、最低レベル(たとえば、4×4レベル)まで、より低いスケールで繰り返されてもよい。いくつかの実装では、図9のパーティション分割方式に追加的な制約が適用されてもよい。図9の実装では、長方形パーティション(たとえば、1:2/2:1の長方形パーティション)が許容されてもよいが、長方形パーティションは再帰的であることが許容されなくてもよい。一方、正方形パーティションは再帰的であることが許容される。必要であれば再帰を伴う、図9に従うパーティション分割は、符号化ブロックの最終集合を生成する。ルート・ノードまたはルート・ブロックからの分割深さを示すために、さらに符号化ツリーの深さが定義されてもよい。たとえば、ルート・ノードまたはルート・ブロック、たとえば、64×64ブロックについての符号化ツリーの深さは、0に設定されてもよく、ひとたびルート・ブロックが図9に従ってさらに分割された後には、符号化ツリーの深さは、1だけ増される。64×64ベース・ブロックから4×4の最小パーティションまでの最大のまたは最も深いレベルは、上記の方式については4となる(レベル0から始めて)。そのようなパーティション分割方式は、色チャネルのうちの一つまたは複数に適用されてもよい。各色チャネルは、図9の方式に従って独立してパーティション分割されてもよい(たとえば、事前に定義されたパターンのうちのパーティション分割パターンまたはオプションが、各階層レベルで色チャネルのそれぞれについて独立して決定されてもよい)。あるいはまた、色チャネルのうちの2つ以上が、図9の同じ階層式パターン・ツリーを共有してもよい(たとえば、各階層レベルで2つ以上の色チャネルについて、事前に定義されたパターンのうちの同じパーティション・パターンまたはオプションが選択されてもよい)。
図10は、パーティション分割ツリーを形成するために再帰的なパーティション分割を許容する、別の例示的な事前に定義されたパーティション分割パターンを示している。図10に示されるように、例示的な10路(10-way)パーティション分割構造またはパターンを事前に定義されてもよい。ルート・ブロックは、事前に定義されたレベルで(たとえば、128×128レベル、または64×64レベルのベース・ブロックから)開始してもよい。図10の例示的なパーティション分割構造は、さまざまな2:1/1:2および4:1/1:4の長方形パーティションを含む。図10の第2行に示されている、1002、1004、1006、1008と示される、3つのサブパーティションをもつパーティション・タイプ〔型〕は、「T型」パーティションと称されてもよい。「T型」パーティション1002、1004、1006、1008は、左T型、上T型、右T型、下T型と称されてもよい。いくつかの例示的実装では、図10の長方形パーティションのいずれも、さらに細分されることは許されない。ルート・ノードまたはルート・ブロックからの分割深さを示すために、さらに符号化ツリーの深さが定義されてもよい。たとえば、ルート・ノードまたはルート・ブロック、たとえば128×128ブロックについての符号化ツリー深さは0に設定されてもよく、ひとたびルート・ブロックが図10に従ってさらに分割された後では、符号化ツリーの深さは、1だけ増される。いくつかの実装では、1010におけるすべて正方形のパーティションのみが、図10のパターンに従ったパーティション分割ツリーの次のレベルへの再帰的な分割を許容されてもよい。換言すれば、T型パターン1002、1004、1006、および1008内の正方形パーティションについては、再帰的パーティション分割は許容されなくてもよい。必要であれば再帰を伴う、図10に従ったパーティション分割手順は、符号化ブロックの最終集合を生成する。そのような方式は、色チャネルのうちの一つまたは複数に適用されうる。いくつかの実装では、8×8レベルより下のパーティションの使用に、さらなる柔軟性が加えられてもよい。たとえば、2×2クロマのインター予測が、ある種の場合に使用されうる。
符号化ブロック・パーティション分割のためのいくつかの他の例示的実装では、四分木構造が、ベース・ブロックまたは中間ブロックを四分木パーティションに分割するために使用されてもよい。そのような四分木分割は、階層的に、かつ再帰的に、任意の正方形のパーティションに適用されうる。ベース・ブロックまたは中間ブロックまたはパーティションがさらに四分木分割されるかどうかは、そのベース・ブロックまたは中間ブロック/パーティションのさまざまなローカル特性に合わせて適応されてもよい。ピクチャー境界での四分木分割は、さらに適応されてもよい。たとえば、暗黙的な四分木分割が、ピクチャー境界において実行されてもよく、それにより、サイズがピクチャー境界に適合するまで、ブロックは四分木分割を続けてもよい。
いくつかの他の例示的実装では、ベース・ブロックからの階層的な二分パーティション分割が使用されてもよい。そのような方式については、ベース・ブロックまたは中間レベル・ブロックは2つのパーティションに分割されうる。二分パーティション分割は、水平または垂直でありうる。たとえば、水平二分パーティション分割は、ベース・ブロックまたは中間ブロックを等しい左右のパーティションに分割することができる。同様に、垂直二分分割は、ベース・ブロックまたは中間ブロックを等しい上下のパーティションに分割することができる。そのような二分分割は、階層的かつ再帰的でありうる。ベース・ブロックまたは中間ブロックのそれぞれにおいて、二分パーティション分割方式が続行されるべきかどうか、および該方式がさらに続行される場合、水平または垂直二分パーティション分割のどちらが使用されるべきかの決定がなされてもよい。いくつかの実装では、さらなるパーティション分割は、(一方または両方の次元方向における)事前に定義された最低パーティション・サイズで停止してもよい。あるいはまた、ひとたび事前に定義されたパーティション分割レベルまたはベース・ブロックからの深さに到達すると、さらなるパーティション分割が停止してもよい。いくつかの実装では、パーティションのアスペクト比が制約されてもよい。たとえば、パーティションのアスペクト比は1:4より小さくない(または4:1より大きくない)。よって、垂直対水平のアスペクト比が4:1の垂直ストリップ・パーティションは、さらに、垂直対水平のアスペクト比がそれぞれ2:1の上側および下側パーティションに垂直に二分パーティション分割されることができるだけである。
さらに他のいくつかの例では、図13に示されるように、ベース・ブロックまたは任意の中間ブロックをパーティション分割するために三分パーティション分割方式が使用されてもよい。三分パターンは、図13の1302に示されるように垂直に、または図13の1304に示されるように水平に実装されてもよい。図13における例示的な分割比は、垂直方向でも水平方向でも、1:2:1として示されているが、他の比が事前に定義されてもよい。いくつかの実装では、2つ以上の異なる比が事前に定義されてもよい。そのような三分パーティション分割方式は、四分木または二分パーティション分割構造を補完するために使用されてもよく、そのような三分木パーティション分割は、ブロック中心に位置するオブジェクトを1つの連続的なパーティション内に捕捉することができ、一方、四分木および二分木は常にブロック中心に沿って分割し、よって、該オブジェクトを別々のパーティションに分割することになる。いくつかの実装では、例示的な三分木のパーティションの幅および高さは、追加的な変換を回避するために、常に2の冪乗である。
上記のパーティション分割方式は、異なるパーティション分割レベルで任意の仕方で組み合わされてもよい。一例として、上述の四分木および二分パーティション分割方式を組み合わせて、ベース・ブロックを四分木二分木(quadtree-binary-tree、QTBT)構造にパーティション分割してもよい。そのような方式では、ベース・ブロックまたは中間ブロック/パーティションは、指定されていれば一組の事前定義された条件に従って、四分木分割または二分分割されてもよい。特定の例が図14に示される。
図14は、四分木二分木(quad-tree plus binary tree、QTBT)構造についての例示的なパーティションおよびツリーを示している。QTBT構造は、複数パーティション・タイプと同様の概念をもたなくてもよく、CU、PU、TUの概念の分離を除去してもよい。QTBT構造は、CUパーティション形状についての増大した柔軟性をサポートしうる。QTBTブロック構造のいくつかの実施形態では、CUは正方形または長方形の形状をもつことができる。
図14の例では、ベース・ブロックは、1402、1404、1406、および1408によって示されるように、まず4つのパーティションに四分木分割される。その後、結果として得られる各パーティションは、次のレベルで4つのさらなるパーティション(1408など)に四分木分割されるか、2つのさらなるパーティション(1402または1406など;いずれもたとえば対称的)に(水平または垂直に)二分分割されるか、または分割されない(1404など)。1410の全体的な例示的なパーティション・パターンおよび1420における対応するツリー構造/表現によって示されるように、正方形のパーティションについては、二分または四分木分割が再帰的に許容されてもよく、ここで、実線は四進分割を表し、破線は二分分割を表す。各二分分割ノード(リーフでない二分パーティション)について、二分分割が水平か垂直かを示すために、フラグが使用されてもよい。たとえば、1420に示されるように、1410のパーティション分割構造と整合して、フラグ「0」は水平二分分割を表してもよく、フラグ「1」は垂直二分分割を表してもよい。四分木分割されたパーティションについては、分割タイプを示す必要はない。四分木分割は常にブロックまたはパーティションを水平方向と垂直方向の両方で分割し、同じサイズの4つのサブブロック/パーティションを生成するからである。いくつかの実装では、フラグ「1」が水平二分分割を表してもよく、フラグ「0」が垂直二分分割を表してもよい。
図14に示される例では、符号化ツリー単位(CTU)はまず、四分木構造によってパーティション分割される。四分木リーフ・ノードは二分木構造によってさらに分割される。二分木分割には、対称水平分割と対称垂直分割の2つの分割タイプがある。二分木リーフ・ノードは符号化単位(CU)と呼ばれ、そのセグメンテーションは、さらなるパーティション分割なしに予測および変換処理のために使用されうる。QTBT符号化ブロック構造ではCU、PUおよびTUは同じブロック・サイズを有していてもよい。JEMでは、CUは異なる色成分の符号化ブロック(CB)を含んでいてもよい(たとえば、4:2:0クロマ・フォーマットのPおよびBスライスの場合、1つのCUは1つのルーマCBおよび2つのルーマCBを含む)。他の実施形態では、それは単一成分のCBを含んでいてもよい(たとえばIスライスの場合、1つのCUは1つのルーマCBまたは2つのクロマCBを含む)。
QTBTのいくつかの例示的実装では、四分木および二分分割規則集合は、以下の事前定義されたパラメータおよびそれに関連する対応する関数によって表現されてもよい:
・CTUサイズ:四分木のルート・ノード・サイズ(ベース・ブロックのサイズ)
・MinQTSize:最小の許容される四分木リーフ・ノード・サイズ
・MaxBTSize:最大の許容される二分木ルート・ノード・サイズ
・MaxBTDepth:最大の許容される二分木の深さ
・MinBTSize:最小の許容される二分木リーフ・ノード・サイズ
QTBTパーティション分割構造のいくつかの例示的実装では、CTUサイズは128×128ルーマ・サンプルとして設定されて、2つの対応する64×64ブロックのクロマサンプル(例示的なクロマ・サブサンプリングが考慮され使用される場合)があってもよく、MinQTSizeは16×16として設定されてもよく、MaxBTSizeは64×64として設定されてもよく、MinBTSize(幅と高さの両方について)は4×4として設定されてもよく、MaxBTDepthは4として設定されてもよい。四分木パーティション分割は、最初にCTUに適用されて、四分木リーフ・ノードを生成してもよい。四分木リーフ・ノードは、最小の許容されるサイズ16×16(すなわち、MinQTSize)から128×128(すなわち、CTUサイズ)までのサイズを持つことができる。ノードが128×128である場合、サイズがMaxBTSize(すなわち64×64)を超えるため、最初に二分木によって分割されることはない。それ以外の場合で、MaxBTSizeを超えないノードは、二分木によってパーティション分割されてもよい。図14の例では、ベース・ブロックは128×128である。ベース・ブロックは、事前に定義された規則集合に従って、四分木分割されることができるのみである。ベース・ブロックは分割深さ0をもつ。結果として得られる4つのパーティションのそれぞれは64×64であり、MaxBTSizeを超えず、レベル1でさらに四分木または二分木分割されうる。プロセスは継続される。二分木の深さがMaxBTDepth(すなわち4)に達した場合、それ以上の分割は考慮されなくてもよい。二分木ノードがMinBTSize(すなわち、4)に等しい幅をもつ場合、それ以上の水平分割は考慮されなくてもよい。同様に、二分木ノードがMinBTSizeに等しい高さをもつ場合、それ以上の垂直分割は考慮されない。
いくつかの例示的な実装では、上記のQTBT方式は、ルーマとクロマが同じQTBT構造または別々のQTBT構造をもつ柔軟性をサポートするように構成されてもよい。たとえば、PスライスとBスライスについては、1つのCTUにおけるルーマCTBとクロマCTBは同じQTBT構造を共有してもよい。しかしながら、Iスライスについては、ルーマCTBはQTBT構造によってCBにパーティション分割されてもよく、クロマCTBは別のQTB構造によってクロマCBにパーティション分割されてもよい。これは、CUが、Iスライス内の異なる色チャネルを参照するために使用されうることを意味する。たとえば、Iスライスは、ルーマ成分の符号化ブロック、または2つのクロマ成分の符号化ブロックから構成されてもよく、PまたはBスライス内のCUは、3つの色成分すべての符号化ブロックから構成されてもよい。
図14は、QTBT(図14の左側)を使用することによるブロック・パーティション分割の例を示し、対応するツリー表現(図14の右側)を示している。実線は、四分木分割を示し、点線は二分木分割を示す。二分木の各分割(すなわち、非リーフ)ノードにおいて、どの分割タイプ(すなわち、水平または垂直)が使用されるかを示すために、1つのフラグが信号伝達される。ここで、0は水平分割を示し、1は垂直分割を示す。四分木分割については、分割タイプを示す必要はない。四分木分割は、ブロックを水平方向および垂直方向の両方に分割して、等しいサイズの4つのサブブロックを生成するからである。
いくつかの他の実装では、QTBT方式は、上述の三分方式で補足されてもよい。そのような実装は、マルチタイプ・ツリー構造(multi-type-tree、MTT)と称されてもよい。たとえば、ノードの二分分割に加えて、図13の三分パーティション・パターンの1つが選択されてもよい。いくつかの実装では、正方形ノードのみが三分分割を受けてもよい。三分パーティション分割が水平か垂直かを示すために、追加的なフラグが使用されてもよい。
QTBT実装および三分分割によって補足されたQTBT実装のような2レベルまたはマルチレベル・ツリーの設計は、主に複雑性の低減によって動機づけられうる。理論的には、ツリーをたどる複雑さはTDであり、ここで、Tは分割型の数を表し、Dはツリーの深さである。深さ(D)を小さくしつつ複数の型(T)を使用することによってトレードオフを行うことができる。
さらに、QTBT方式は、ルーマおよびクロマが別個のQTBT構造を有する柔軟性をサポートする。たとえば、PおよびBスライスについて、1つのCTU内のルーマおよびクロマCTBは同じQTBT構造を共有する。しかしながら、Iスライスについては、ルーマCTBはQTBT構造によってCUにパーティション分割され、クロマCTBは別のQTBT構造によってクロマCUにパーティション分割される。この例では、Iスライス内のCUはルーマ成分の符号化ブロックまたは2つのクロマ成分の符号化ブロックを含み、PまたはBスライス内のCUは3つすべての色成分の符号化ブロックを含む。HEVCでは、動き補償のメモリ・アクセスを減らすために、小さなブロックのためのインター予測が制約されることがあり、4×8および8×4ブロックについては双予測はサポートされず、4×4ブロックについてはインター予測はサポートされない。JEM-7.0において実装されるQTBTでは、これらの制約は除去されることができる。
いくつかの実装では、CBはさらにパーティション分割されてもよい。たとえば、CBは、符号化および復号プロセスの間のフレーム内またはフレーム間予測の目的のために、複数の予測ブロック(PB)にさらにパーティション分割されてもよい。言い換えれば、CBはさらに、異なるサブパーティションに分割されてもよく、そこで、個々の予測決定/構成がなされてもよい。並行して、CBは、ビデオ・データの変換または逆変換が実行されるレベルを描写するために、複数の変換ブロック(TB)にさらにパーティション分割されてもよい。CBのPBおよびTBへのパーティション分割方式は、同じであってもなくてもよい。たとえば、各パーティション分割方式は、たとえば、ビデオ・データのさまざまな特性に基づいて、それ自身の手順を用いて実行されてもよい。PBおよびTBのパーティション分割方式は、いくつかの例示的実装では独立であってもよい。PBおよびTBのパーティション分割方式および境界は、いくつかの他の例示的実装では、相関していてもよい。いくつかの実装では、たとえば、TBは、PBパーティションの後にパーティション分割されてもよく、特に、符号化ブロックのパーティション分割の後に決定された後の各PBは、さらに、一つまたは複数のTBにパーティション分割されてもよい。たとえば、いくつかの実装では、PBは1つ、2つ、4つ、または他の数のTBに分割されてもよい。
いくつかの実装では、ベース・ブロックを符号化ブロックに、さらに予測ブロックおよび/または変換ブロックにパーティション分割するために、ルーマ・チャネルおよびクロマ・チャネルは、異なるように扱われてもよい。たとえば、いくつかの実装では、符号化ブロックの予測ブロックおよび/または変換ブロックへのパーティション分割は、ルーマ・チャネルについては許容されてもよいが、一方、符号化ブロックの予測ブロックおよび/または変換ブロックへのそのようなパーティション分割は、クロマ・チャネル(単数または複数)については許容されなくてもよい。そのような実装では、ルーマ・ブロックの変換および/または予測は、符号化ブロック・レベルでのみ実行されてもよい。別の例では、ルーマ・チャネルおよびクロマチャネル(単数または複数)についての最小変換ブロック・サイズが異なっていてもよい。たとえば、ルーマ・チャネルについての符号化ブロックは、クロマ・チャネルよりも小さな変換ブロックおよび/または予測ブロックにパーティション分割されることが許容されてもよい。さらに別の例では、符号化ブロックの変換ブロックおよび/または予測ブロックへのパーティション分割の最大深さは、ルーマ・チャネルとクロマ・チャネルとの間で異なっていてもよく、たとえば、ルーマ・チャネルについての符号化ブロックは、クロマ・チャネル(単数または複数)よりも深い変換および/または予測ブロックにパーティション分割されることが許容されてもよい。具体例では、ルーマ符号化ブロックは、最大2レベルまで下がる再帰的パーティションによって表すことができる複数のサイズの変換ブロックにパーティション分割されてもよく、正方形、2:1/1:2、4:1/1:4などの変換ブロック形状、および4×4から64×64への変換ブロック・サイズが許容されてもよい。しかしながら、クロマ・ブロックについては、ルーマ・ブロックについて指定された最大の可能な変換ブロックのみが許容されてもよい。
符号化ブロックのPBへのパーティション分割のためのいくつかの例示的実装では、PBパーティション分割の深さ、形状、および/または他の特性は、PBがイントラ符号化されるかインター符号化されるかに依存してもよい。
符号化ブロック(または予測ブロック)の変換ブロックへのパーティション分割は、さまざまな例示的方式で実現されうる。そのような方式は、これに限定されるものではないが、再帰的または非再帰的な、四分木分割および事前定義されたパターンの分割を含み、符号化ブロックまたは予測ブロックの境界での変換ブロックについて追加的な考慮をしてもよい。一般に、結果として得られる変換ブロックは、異なる分割レベルにあってもよく、同じサイズでなくてもよく、また、正方形の形状である必要がなくてもよい(たとえば、許容されるサイズおよびアスペクト比をもつ長方形であってもよい)。さらなる例は、図15、図16、および図17に関連して以下でさらに詳細に記載される。
しかしながら、いくつかの他の実装では、上記のパーティション分割方式のいずれかを介して得られたCBが、予測および/または変換のための基本的または最小の符号化ブロックとして使用されてもよい。言い換えれば、インター予測/イントラ予測の目的および/または変換目的のために、さらなる分割は実行されない。たとえば、上記のQTBT方式から得られたCBは、予測を実行するための単位として直接使用されてもよい。具体的には、そのようなQTBT構造は、複数のパーティション型の概念を除去する、すなわち、CU、PUおよびTUの分離を除去し、上述のように、CU/CBのパーティション形状について、より多くの柔軟性をサポートする。そのようなQTBTブロック構造では、CU/CBは正方形または長方形のいずれかの形状を有することができる。そのようなQTBTのリーフ・ノードは、それ以上パーティション分割することなく、予測および変換処理のための単位として使用される。これは、そのような例示的なQTBT符号化ブロック構造では、CU、PU、TUが同じブロック・サイズを持つことを意味する。
上記のさまざまなCBパーティション分割方式およびCBのPBおよび/またはTBへのさらなるパーティション分割(PB/TBパーティション分割なしを含む)は、任意の仕方で組み合わされうる。下記の具体的な諸実装は、限定しない例として提供される。
符号化ブロックおよび変換ブロック・パーティション分割の具体的な例示的実装が下記で記載される。そのような例示的実装では、ベース・ブロックは、上記の(図9および図10におけるもののような)再帰的四分木分割または事前に定義された分割パターンを使用して、符号化ブロックに分割されてもよい。各レベルにおいて、特定のパーティションのさらなる四分木分割が継続すべきかどうかは、ローカルなビデオ・データ特性によって決定されてもよい。結果として得られるCBは、さまざまな四分木分割レベルで、さまざまなサイズでありうる。ピクチャー間(時間的)またはピクチャー内(空間的)予測を使用してピクチャー領域を符号化するかどうかの決定は、CBレベル(またはすべての3色チャネルについて、CUレベル)でなされてもよい。各CBは、さらに、事前に定義されたPB分割型に従って、1つ、2つ、4つ、または他の数のPBに分割されてもよい。1つのPBの内部では、同じ予測プロセスが適用されてもよく、関連情報はPB毎にデコーダに伝送されてもよい。PB分割型に基づく予測プロセスを適用することによって残差ブロックを得た後、CBは、該CBについての符号化ツリーに類似した別の四分木構造に従ってTBに分割されることができる。この特定の実装では、CBまたはTBは正方形であってもよいが、それに限定される必要はない。さらに、この特定の例では、PBは、インター予測については正方形または長方形の形状であってもよく、イントラ予測については正方形のみでありうる。符号化ブロックは、たとえば、4つの正方形のTBに分割されてもよい。各TBはさらに再帰的に(四分木分割を用いて)、残差四分木(Residual Quadtree、RQT)と呼ばれる、より小さなTBに分割されてもよい。
ベース・ブロックをCB、PB、および/またはTBにパーティション分割するための別の例示的な実装が、以下にさらに記載される。たとえば、図9または図10に示されるような複数のパーティション単位型を使用するのではなく、二分および三分分割セグメンテーション構造を使用する、ネストされたマルチタイプ・ツリーを有する四分木(たとえば、上記のような、QTBT、または、三分分割を伴うQTBT)が使用されてもよい。CB、PB、TBの分離(すなわち、CBをPBおよび/またはTBにパーティション分割し、PBをTBにパーティション分割すること)は、最大変換長について大きすぎるサイズをもつCBのために必要とされる場合(そのようなCBはさらに分割する必要がある可能性がある)を除き、放棄されてもうよい。この例示的なパーティション分割方式は、予測および変換が両方とも、さらなるパーティション分割なしにCBレベルで実行できるように、CBパーティション形状について、さらなる柔軟性をサポートするように設計されてもよい。そのような符号化ツリー構造において、CBは、正方形または長方形のいずれかの形状を有しうる。具体的には、符号化ツリー・ブロック(CTB)は、まず、四分木構造によってパーティション分割される。次いで、四分木リーフ・ノードは、ネストされたマルチタイプ・ツリー構造によってさらにパーティション分割されてもよい。図11に、二分または三分分割を使用する、ネストされたマルチタイプ・ツリー構造の例が示されている。具体的には、図11の例示的なマルチタイプ・ツリー構造は、垂直二分分割(SPLIT_BT_VER)(1102)、水平二分分割(SPLIT_BT_HOR)(1104)、垂直三分分割(SPLIT_TT_VER)(1106)、水平三分分割(SPLIT_TT_HOR)(1108)と呼ばれる4つの分割型を含む。そして、CBは該マルチタイプ・ツリーのリーフに対応する。この例示的な実装では、CBが最大変換長について大きすぎない限り、このセグメンテーションは、さらなるパーティション分割なしで、予測と変換処理の両方のために使用される。これは、ほとんどの場合、ネストされたマルチタイプ・ツリー符号化ブロック構造をもつ四分木において、CB、PB、およびTBは同じブロック・サイズを持つことを意味する。例外は、サポートされる最大変換長がCBの色成分の幅または高さよりも小さい場合に発生する。いくつかの実装では、二分または三分分割に加えて、図11のネストされたパターンは、さらに四分木分割を含んでいてもよい。
1つのベース・ブロックについてのブロック・パーティションのネストされたマルチタイプ・ツリー符号化ブロック構造をもつ四分木の1つの具体例(四分木、二分、および三分分割オプションを含む)が、図12に示されている。より詳細には、図12は、ベース・ブロック1200が4つの正方形パーティション1202、1204、1206、および1208に四分木分割されることを示す。さらなる分割のために図11のマルチタイプ・ツリー構造および四分木をさらに使用する決定が、各四分木分割されたパーティションについてなされる。図12の例では、パーティション1204は、それ以上分割されない。パーティション1202および1208は、それぞれ、もう一回の四分木分割を採用する。パーティション1202については、第2レベルの四分木分割された左上、右上、左下、および右下パーティションは、それぞれ、第3レベルの、四分木の分割、図11の水平二分分割1104、非分割、および図11の水平三分分割1108を採用する。パーティション1208は、もう一回の四分木分割を採用し、第2レベルの四分木分割された左上、右上、左下、および右下のパーティションは、それぞれ、第3レベルの、図11の垂直三分分割1106、非分割、非分割、および図11の水平二分分割1104を採用する。1208の第3レベルの左上パーティションのサブパーティションの2つは、それぞれ図11の水平二分分割1104および水平三分分割1108に従ってさらに分割される。パーティション1206は、図11の垂直二分分割1102に従った2つのパーティションへの第2レベルの分割パターンを採用し、該2つのパーティションはさらに、図11の水平三分分割1108および垂直二分分割1102に従って第3レベルにおいてさらに分割される。さらに、図11の水平二分分割1104に従って、それらのうちの1つに第4レベルの分割が適用される。
上記の特定の例については、最大ルーマ変換サイズは64×64であってもよく、最大のサポートされるクロマ変換サイズはルーマとは異なっていて、たとえば32×32であってもよい。図12における上記の例示的なCBは、一般には、より小さなPBおよび/またはTBにさらに分割されないが、ルーマ符号化ブロックまたはクロマ符号化ブロックの幅または高さが、最大変換幅または高さよりも大きい場合には、ルーマ符号化ブロックまたはクロマ符号化ブロックは、水平および/または垂直方向における変換サイズ制約を満たすために、水平方向および/または垂直方向において自動的に分割されてもよい。
上記の、ベース・ブロックをCBにパーティション分割する特定の例では、上述のように、符号化ツリー方式は、ルーマとクロマが別個のブロックツリー構造をもてることをサポートすることができる。たとえば、PおよびBスライスについて、1つのCTUにおけるルーマCTBおよびクロマCTBは、同じ符号化ツリー構造を共有してもよい。Iスライスについては、たとえば、ルーマとクロマは、別個の符号化ブロックツリー構造を持つことができる。別個のブロックツリー構造が適用されると、ルーマCTBは1つの符号化ツリー構造によってルーマCBにパーティション分割され、クロマCTBは別の符号化ツリー構造によってクロマCBにパーティション分割される。これは、IスライスにおけるCUはルーマ成分の符号化ブロック、または2つのクロマ成分の符号化ブロックで構成されている可能性があり、PスライスまたはBスライスにおけるCUは、ビデオがモノクロでない限り、常に3つの色成分すべての符号化ブロックで構成されていることを意味する。
符号化ブロックがさらに複数の変換ブロックに分割される場合、その中の変換ブロックは、さまざまな順序または走査態様に従って、ビットストリーム内で順序付けられてもよい。符号化ブロックまたは予測ブロックを変換ブロックにパーティション分割するための例示的な実装、および変換ブロックの符号化順序は、以下にさらに詳細に説明される。いくつかの例示的な実装では、上述したように、変換パーティション分割は、複数の形状のブロック、たとえば、1:1(正方形)、1:2/2:1、および1:4/4:1をサポートしてもよく、変換ブロックのサイズは、たとえば、4×4~64×64の範囲である。いくつかの実装では、符号化ブロックが64×64以下であれば、変換ブロック・パーティション分割はルーマ成分にのみ適用されてもよく、クロマ・ブロックについては、変換ブロック・サイズは符号化ブロック・サイズと同一である。そうではなく、符号化ブロックの幅または高さが64より大きい場合には、ルーマおよびクロマ符号化ブロックは、それぞれ、暗黙的に、min(W,64)×min(H,64)およびmin(W,32)×min(H,32)の変換ブロックの複数個に分割されうる。
変換ブロック・パーティション分割のいくつかの例示的実装では、イントラおよびインター符号化ブロックの両方について、符号化ブロックは、事前に定義された数のレベル(たとえば、2つのレベル)までのパーティション分割深さで、複数の変換ブロックにさらにパーティション分割されてもよい。変換ブロック・パーティション分割の深さおよびサイズは、関連してもよい。いくつかの例示的実装について、現在の深さの変換サイズから次の深さの変換サイズへのマッピングが下記で表1に示される。
表1の例示的なマッピングに基づいて、1:1の正方形ブロックについては、次のレベル変換分割は、4つの1:1の正方形サブ変換ブロックを生成することができる。変換パーティションは、たとえば4×4で停止してもよい。よって、現在の深さ4×4についての変換サイズは、次の深さについて4×4の同じ変換サイズに対応する。表1の例では、1:2/2:1の非正方形ブロックについては、次のレベル変換分割は、2つの1:1の正方形サブ変換ブロックを生成することができ、1:4/4:1の非正方形ブロックについては、次のレベル変換分割は、2つの1:2/2:1のサブ変換ブロックを生成することができる。
いくつかの例示的実装では、イントラ符号化されたブロックのルーマ成分について、変換ブロック・パーティション分割に関して、追加的な制約が適用されてもよい。たとえば、変換パーティション分割の各レベルについて、すべてのサブ変換ブロックは、等しいサイズを有するように制約されてもよい。たとえば、32×16の符号化ブロックについては、レベル1の変換分割が16×16のサブ変換ブロックを2つ作成し、レベル2の変換分割が8×8のサブ変換ブロックを8つ作成する。換言すれば、第2レベルの分割は、変換単位を等しいサイズに維持するために、すべての第1レベルのサブブロックに適用されなければならない。表1に従ったイントラ符号化された正方形ブロックについての変換ブロック分割の例は、矢印によって示される符号化順序とともに、図15に示されている。具体的には、1502は、正方形符号化ブロックを示す。表1に従った4つの等しいサイズの変換ブロックへの第1レベルの分割が1504に示されており、符号化順序は矢印で示されている。表1に従った、すべての第1レベルの等しいサイズのブロックの、16個の等しいサイズの変換ブロックへの第2レベルの分割が1506に示されており、符号化順序は矢印で示されている。
いくつかの例示的実装では、インター符号化ブロックのルーマ成分について、イントラ符号化についての上記の制約は適用されなくてもよい。たとえば、変換分割の第1レベルの後、サブ変換ブロックのいずれか1つが、もう1レベル、独立してさらに分割されてもよい。よって、結果として得られる変換ブロックは、同じサイズであってもなくてもよい。変換ブロックへのインター符号化ブロックの例示的な分割が、符号化順序とともに、図16に示されている。図16の例では、インター符号化ブロック1602は、表1に従って2レベルで変換ブロックに分割される。第1レベルでは、インター符号化ブロックは等しいサイズの4つの変換ブロックに分割される。次いで、4つの変換ブロックのうちの1つだけ(すべてではない)がさらに4つのサブ変換ブロックに分割され、1604によって示されるように、2つの異なるサイズをもつ合計7つの変換ブロックを生じる。これら7つの変換ブロックの例示的な符号化順序は、図16の1604における矢印によって示される。
いくつかの例示的な実装では、クロマ成分(単数または複数)について、変換ブロックについてのいくつかの追加的な制約が適用されてもよい。たとえば、クロマ成分(単数または複数)について、変換ブロック・サイズは、符号化ブロック・サイズと同じ大きさであってもよいが、事前に定義されたサイズ、たとえば8×8より小さくはない。
いくつかの他の例示的実装では、幅(W)または高さ(H)のいずれかが64より大きい符号化ブロックについては、ルーマおよびクロマの両方の符号化ブロックは、暗黙的に、それぞれmin(W,64)×min(H,64)およびmin(W,32)×min(H,32)の変換単位の複数個に分割されてもよい。ここで、本開示において、「min(a,b)」は、aとbの間の、小さいほうの値を返すことができる。
図17はさらに、符号化ブロックまたは予測ブロックを変換ブロックにパーティション分割するための別の代替的な例示的方式を示す。図17に示されるように、再帰的変換パーティション分割を使用する代わりに、パーティション分割タイプ〔分割型〕の事前に定義された集合が、符号化ブロックの変換タイプ〔変換型〕に従って符号化ブロックに適用されてもよい。図17に示される特定の例では、6つの例示的なパーティション分割タイプのうちの1つが、符号化ブロックをさまざまな数の変換ブロックに分割するために適用されうる。変換ブロック・パーティション分割を生成するそのような方式は、符号化ブロックまたは予測ブロックのいずれにも適用されうる。
より詳細には、図17のパーティション分割方式は、任意の与えられた変換タイプ(変換タイプは、たとえば、ADSTおよびその他のような一次変換(primary transform)のタイプを指す)について、最大6つの例示的なパーティション・タイプを提供する。この方式では、すべての符号化ブロックまたは予測ブロックは、たとえば、レート歪みコストに基づいて変換パーティション・タイプを割り当てられてもよい。一例では、符号化ブロックまたは予測ブロックに割り当てられる変換パーティション・タイプは、符号化ブロックまたは予測ブロックの変換タイプに基づいて決定されてもよい。特定の変換パーティション・タイプは、図17に示される6つの変換パーティション・タイプによって示されるように、変換ブロック分割サイズおよびパターンに対応しうる。さまざまな変換タイプとさまざまな変換パーティション・タイプとの間の対応関係は、事前に定義されていてもよい。以下に例が示される。英大文字のラベルは、レート歪みコストに基づいて符号化ブロックまたは予測ブロックに割り当てられうる変換パーティション・タイプを示す。
・PARTITION_NONE:ブロック・サイズに等しい変換サイズを割り当てる。
・PARTITION_SPLIT:ブロック・サイズの幅の1/2、ブロック・サイズの高さの1/2の変換サイズを割り当てる。
・PARTITION_HORZ:ブロック・サイズと同じ幅、ブロック・サイズの1/2の高さの変換サイズを割り当てる。
・PARTITION_VERT:ブロック・サイズの幅の1/2、ブロック・サイズと同じ高さの変換サイズを割り当てる。
・PARTITION_HORZ4:ブロック・サイズと同じ幅、ブロック・サイズの1/4の高さの変換サイズを割り当てる。
・PARTITION_VERT4:ブロック・サイズの幅の1/4、ブロック・サイズと同じ高さの変換サイズを割り当てる。
上述の例では、図17に示されるような変換パーティション・タイプはすべて、パーティション分割された変換ブロックについて均一な変換サイズを含む。これは単なる例であって、限定ではない。いくつかの他の実装では、混合された変換ブロック・サイズが、特定のパーティションタイプ(またはパターン)で、パーティション分割された変換ブロックのために使用されてもよい。
上記のパーティション分割方式のいずれかから取得されたPB(またはCB、予測ブロックにさらにパーティション分割されないときはPBとも呼ばれる)は、次いで、イントラ予測またはインター予測のいずれかを介して符号化するための個々のブロックになりうる。現在のPBのためのインター予測については、現在のブロックと予測ブロックとの間の残差が生成され、符号化され、符号化されたビットストリームに含まれうる。
インター予測は、たとえば、単一参照モードまたは複合参照モードで実装されうる。いくつかの実装では、現在のブロックがインター符号化され、スキップされるべきでないかどうかを示すために、現在のブロックについてのビットストリームにおいて(またはより高いレベルで)スキップ・フラグがまず含まれてもよい。現在のブロックがインター符号化される場合、現在のブロックの予測のために単一参照モードが使用されるか複合参照モードが使用されるかを示す信号として、別のフラグがビットストリーム中にさらに含まれてもよい。単一参照モードについては、1つの参照ブロックが、現在ブロックのための予測ブロックを生成するために使用されうる。複合参照モードについては、2つ以上の参照ブロックが、たとえば重み付けされた平均によって予測ブロックを生成するために使用されうる。複合参照モードは、2つ以上の参照モード、2参照モード、または複数参照モードと呼ばれることがある。一つまたは複数の参照ブロックは、一つまたは複数の参照フレーム・インデックスを使用して、さらに、(一つまたは複数の)参照ブロックと現在のブロックとの間の、位置における、たとえば、水平ピクセルおよび垂直ピクセルでの、(一つまたは複数の)シフトを示す一つまたは複数の対応する動きベクトルを使用して識別されうる。たとえば、現在のブロックについてのインター予測ブロックは、単一参照モードにおいては、1つの動きベクトルによって参照フレーム内で予測ブロックとして識別される単一の参照ブロックから生成されうるが、複合参照モードについては、予測ブロックは、2つの参照フレーム・インデックスおよび2つの対応する動きベクトルによって示される2つの参照フレーム内の2つの参照ブロックの重み付けされた平均によって生成されうる。動きベクトル(単数または複数)は、さまざまな仕方で符号化され、ビットストリーム中に含められうる。
いくつかの実装では、エンコードまたはデコード・システムは、デコードピクチャーバッファ(DPB)を維持することができる。いくつかの画像/ピクチャーは、(デコード・システムにおいて)表示されるのを待って、DPB内に維持されてもよく、DPB内のいくつかの画像/ピクチャーは、(デコード・システムまたはエンコード・システムにおいて)インター予測を可能にするために参照フレームとして使用されてもよい。いくつかの実装では、DPB中の参照フレームは、エンコードまたはデコードされている現在の画像についての短期参照または長期参照のいずれかとしてタグ付けされうる。たとえば、短期参照フレームは、現在のフレーム中の、またはデコード順において現在のフレームに最も近い事前定義された数(たとえば、2つ)の後続のビデオ・フレーム中のブロックのためのインター予測のために使用されるフレームを含みうる。長期参照フレームは、デコード順で現在のフレームから事前定義されたフレーム数よりも多く離れているフレーム内の画像ブロックを予測するために使用されうるDPB内のフレームを含みうる。短期および長期参照フレームについてのそのようなタグに関する情報は、参照ピクチャーセット(Reference Picture Set、RPS)と呼ばれることがあり、エンコードされたビットストリーム中の各フレームのヘッダに追加されうる。エンコードされたビデオ・ストリーム中の各フレームは、ピクチャー順カウンタ(Picture Order Counter、POC)によって識別されてもよく、該POCは、絶対的な仕方で再生シーケンスに従って番号付けされるか、または、たとえばIフレームから開始するピクチャーグループに関連する。
いくつかの例示的実装では、インター予測のための短期および長期参照フレームの識別情報を含む一つまたは複数の参照ピクチャー・リストが、RPS内の情報に基づいて形成されうる。たとえば、単一のピクチャー参照リストが、単方向インター予測のために形成されてもよく、L0参照(または参照リスト0)として示され、2つのピクチャー参照リストが、双方向インター予測のために形成されてもよく、2つの予測方向のそれぞれのためのL0(または参照リスト0)およびL1(または参照リスト1)として示される。L0リストおよびL1リストに含まれる参照フレームは、さまざまな所定の仕方で順序付けられうる。L0リストおよびL1リストの長さは、ビデオ・ビットストリーム中で信号伝達されうる。単方向インター予測は、単一参照モードにあってもよく、または、複合予測モードにおける重み付け平均による予測ブロックの生成のための複数の参照が、予測されるべきブロックの同じ側にあるときには、複合参照モードであってもよい。双方向インター予測は、双方向インター予測が少なくとも2つの参照ブロックを伴うという点で、複合モードのみでありうる。
コンテキスト適応算術符号化エンジン
図18は、単一の二分決定の例示的なデコードのためのフローチャートを示す。具体的には、図18は、VVCにおける単一の二分決定を復号するための例を示す。HEVCにおいて使用されるようなコンテキスト適応算術符号化エンジン(CABAC)エンジンは、64個の異なる代表的な確率状態間のテーブル・ベースの確率遷移プロセスを使用しうる。HEVCでは、範囲ivlCurrRangeは、符号化エンジンの状態が、新しい区間範囲の計算の前に4つの値の集合に量子化されることを表しうる。HEVC状態遷移は、ivlCurrRange*pLPS(pStateIdx)の値を近似するために、すべての64×4の8ビット事前計算値を含むテーブルを使用して実装されることができ、ここで、pLPSは、最低確率シンボル(least probable symbol、LPS)の確率であり、pStateIdxは、現在の状態のインデックスである。復号決定は、事前計算されたLUTを使用して実装されうる。第1のivlLpsRangeは、LUTを用いて以下のように求められる。次いで、ivlLpsRangeを使用してivlCurrRangeを更新し、出力binValを計算する。例示的な式は、
ivlLpsRange=rangeTabLps[pStateIdx][qRangeIdx] (1)
となる。VVCにおいて、確率は、確率インデックスpStateIdxによって線形に表されうる。したがって、すべての計算は、LUT動作なしで式を用いて行われうる。確率推定の精度を向上させるために、多重仮説確率更新モデルが適用されうる。2値算術符号化器における区間細分において使用されるpStateIdxは、2つの確率pStateIdx0およびpStateIdx1の組み合わせである。2つの確率は、各コンテキスト・モデルに関連付けられてもよく、異なる適応レートで独立して更新される。各コンテキスト・モデルについてのpStateIdx0およびpStateIdx1の適応レートは、関連付けられたビンの統計に基づいて事前トレーニングされる。確率推定値pStateIdxは、2つの仮説からの推定値の平均である。
HEVCと同様に、VVC CABACは、各スライスの始めに呼び出されるQP依存初期化プロセスをも有しうる。スライスについてのルーマQPの初期値が与えられると、preCtxStateとして示されるコンテキスト・モデルの初期確率状態は、以下のように導出されうる:
m=slopeIdx×5-45 (2)
n=(offsetIdx<<3)+7 (3)
preCtxState=Clip3(1,127,((m×(QP-32))>>4)+n) (4)
ここで、slopeIdxとoffsetIdxは3ビットに制限され、全体の初期化値は6ビット精度で表現される。確率状態preCtxStateは、線形領域における確率を直接表す。よって、preCtxStateは、算術符号化エンジンへの入力の前に適切なシフト動作を必要とするだけでよく、対数領域から線形領域へのマッピングならびに256バイトのテーブルが節約される:
pStateIdx0=preCtxState<<3 (5)
pStateIdx1=preCtxState<<7 (6)
マルチシンボル算術符号化
AV1では、シンタックス要素をエントロピー符号化するためにM進算術符号化エンジンが使用されうる。各シンタックス要素は、M個の要素のアルファベットに関連付けられてもよく、ここで、Mは、2から16までの間の任意の整数値でありうる。符号化への入力は、M進シンボルと、累積分布関数(CDF)によって表されるM個の確率の集合からなる符号化コンテキストとである。確率は、各シンタックス要素を符号化/パースした後に更新される。累積分布関数は、以下のようなM個の15ビット整数の配列である:
C=[c0,c1,…,c(M-2),215] (7)
ここで、cn/32768はシンボルがn以下である確率である。確率更新は、次の式を用いて実行される:
cm=cm・(1-α) m∈[0,symbol)
cm=cm+α・(1-cm) m∈[symbol,M-1)
(8)
ここで、αは、シンボルが復号された回数(最大32まで)に基づいて適応する確率更新レートであり、mは、CDFにおける要素のインデックスである。αのこの適応は、シンタックス要素を符号化/パースすることの始めに、より高速な確率更新を許容しうる。M進算術符号化プロセスは、従来の算術符号化エンジン設計に従うが、15ビット確率値の最上位9ビットのみが算術符号化器/復号器に入力される。シンボルに関連付けられた確率更新レートαは、ビットストリームをパースするときに、関連付けられたシンボルについての出現数に基づいて計算され、αの値は、フレームまたはタイルの開始時に、以下の式を使用してリセットされる:
α=1/2^(3+(count>15)+(count>32)+min(log2(M),2)) (9)
上記の式から、確率更新レートは、最初により大きな値を有し、32回の出現が起こった後に飽和する。
AV1におけるマルチシンボル算術符号化エンジンは、コンテキストの累積分布関数(CDF)更新レートを決定しうる、ウィンドウ・サイズを更新するためのカウンタでありうる。コンテキストが32回更新された後、ウィンドウ・サイズは2^(5+min(log2(M),2))で安定しうる。しかしながら、ピクチャーの異なる領域については、オブジェクトは異なることがあり、したがって、算術符号化エンジンは、符号化があるオブジェクトから異なるオブジェクトに進むときにコンテンツをより良く適合させるために、各コンテキストについて異なるウィンドウ・サイズもしくはCDFまたは両者の組み合わせを使用する必要がありうる。
算術符号化のためのブロック・レベルの更新
図5~図6に戻って参照すると、算術符号化がありうる例示的実施形態が示されている。算術符号化は、固定ウィンドウ・サイズを想定することができる。ウィンドウ・サイズは、以下で論じられるようにαによって制御されうる。復号のために、更新の頻度が修正されうる。異なる復号は、異なるウィンドウおよび/またはウィンドウ・サイズを有しうる。より多くのシンタックスが復号されるにつれて、αの値が変化することがある。カウントが記録されてもよく、αの値は、以下で説明するようにカウントの関数であってもよい。
確率更新レートαは、f(count,M)として示される、カウントおよび値Mの関数である。カウントは、ビットストリームをパースするときの関連付けられたシンタックス/コンテキストについての出現の数であってもよく、Mは、関連付けられたシンタックス/コンテキストについての異なるシンボル値の数である。カウントの値は、ブロック・レベルで事前定義された値でリスタートされうる。さまざまな実施形態では、確率更新レートαは、CUレベル、PUレベル、TUレベル、CTUレベル、または指定されたブロック・サイズ・レベルでリスタートされうる。更新レートαをリスタートするためのブロック・サイズは、限定はしないが、VPS、PPS、SPS、APS、ピクチャー/フレーム・ヘッダ、スライス・ヘッダ、タイル・ヘッダ、またはCTUヘッダを含む、高レベル・シンタックスにおいて指定されうる。
いくつかの実施形態では、リスタート後のカウントの事前定義された値は、0、1、2、…、32、…、128を含むが、これらに限定されない。2nの値があってもよく、nは整数である。ある実施形態では、確率更新レートαのリスタートは、異なるシンタックス/コンテキストについて異なる仕方で制御されうる。ある実施形態では、確率更新レートαのリスタートは、シンタックス/コンテキストの選択されたグループにのみ適用される。ある実施形態では、すべてのシンタックスまたはコンテキストは、種々の集合にグループ化される。シンタックスまたはコンテキストの各集合は、確率更新レートαを一緒にリスタートすることができる。シンタックスまたはコンテキストの異なる集合について、確率更新レートαは、異なる時間にリスタートされうるか、または異なる値でリスタートされうる。
いくつかの実施形態では、シンタックスの指示のためのフラグが存在しうる。たとえばシンタックスまたはコンテキストの選択されたグループが確率更新レートαを更新するためのカウンタをリスタートするかどうかを示すために、1つのフラグがブロック・レベルで信号伝達されうる。ある実施形態では、シンタックスまたはコンテキストは、種々の集合にグループ化され、シンタックスまたはコンテキストの各集合は、1つのフラグによって一緒に制御される確率更新レートαをリスタートする。
シンタックス/コンテキストの確率値が別のフレームから現在のフレームにコピーされるとき、カウントの値もコピーされるか、または事前定義された値でリスタートされうる。ある実施形態では、事前定義された値は0でなくてもよく、各コンテキストに対して指定されてもよい。ある実施形態では、カウントの値は、復号/符号化がピクチャーまたはビットストリームの事前定義された位置に位置するシンタックスを処理しているとき、確率値と一緒にコピーされうる。
シンタックス/コンテキストに関連付けられた確率または累積分布関数(CDF)は、ブロック・レベル1で事前定義された値を用いて再初期化されうる。ある実施形態では、CDFは、CUレベル、PUレベル、TUレベル、もしくはCTUレベル、または指定されたブロック・サイズ・レベルで初期化される。ある実施形態では、CDFを再初期化するためのブロック・サイズは、限定はしないが、VPS、PPS、SPS、APS、ピクチャー/フレーム・ヘッダ、スライス・ヘッダ、タイル・ヘッダ、またはCTUヘッダを含む、高レベル・シンタックスにおいて指定されうる。
ある実施形態では、事前定義された値は、一様分布に対応する値を含むが、これに限定されない。ある実施形態では、事前定義された値は、符号化または復号中のいくつかの所定のインスタンスにおいて記憶される値を含むが、それらに限定されない。
ある実施形態では、確率/CDFの再初期化は、異なるシンタックス/コンテキストについて異なる仕方で制御されうる。再初期化は、シンタックスまたはコンテキストの選択されたグループにのみ適用することができる。ある実施形態では、すべてのシンタックスまたはコンテキストは、種々の集合にグループ化され、シンタックスまたはコンテキストの各集合は、CDFを一緒に再初期化する。シンタックスまたはコンテキストの異なるセットについては、CDFは、異なる時間にまたは異なる値で再初期化されることができる。
ある実施形態では、ブロック・レベルでフラグが信号伝達されて、シンタックスまたはコンテキストの選択されたグループが対応するCDFを再初期化するかどうかを示すことができる。ある実施形態では、すべてのシンタックスまたはコンテキストは、種々の集合にグループ化され、シンタックスまたはコンテキストの各集合は、1つのフラグによって一緒に制御されるCDFを再初期化する。
上述したように、カウントについて、事前定義された値を使用するカウントのブロック・レベルのリスタートまたは再初期化があってもよい。カウンタは、この事前定義された値にリセットされ、これがコンテンツに基づく適応が許容する。ブロック・レベルのオプションは上述されている。
図19Aは、本開示のある例示的実施形態による方法のフローチャートを示す。ブロック1902において、ウィンドウ・サイズを更新するときに、シンタックス/コンテキストの数についてのカウントの決定が行われる。ブロック1904において、確率更新レートが、関連付けられたシンタックスのカウントの関数として、および異なるシンボルの数の関数として計算される。ブロック1906において、リスタートの結果、カウントがブロック・レベルで、事前定義された値で更新される。ブロック1908において、カウントのための事前定義された値が、次の反復工程/フレームのために使用される。
図19Bは、本開示の別の例示的実施形態による方法のフローチャートを示す。ブロック1910において、コンテキスト/シンタックスの出現回数がカウントの値としてカウントされる。ブロック1912において、累積分布関数(CDF)更新レートがコンテキストについて決定される。この決定は、カウントに基づき、異なるシンボルの数に基づいていてもよい。ブロック1914において、ブロック・レベルで、カウントについての事前定義された値でCDFを再初期化する。これは、カウントについて、ここで事前定義された値を有するカウントを使用して、逐次反復されうる。
参照フレームとして説明されているが、参照フレーム・ペアを含んでいてもよい。ある実施形態では、複数の動きベクトルが1つの参照フレームまたは1つの参照フレーム・ペアをポイントしている場合、これらの動きベクトルによって参照される最も差の小さい値が、1つの参照フレームまたは1つの参照フレーム・ペアのスコア値としてマークされうる。別の実施形態では、ある参照フレームまたはある参照フレーム・ペアをポイントする動きベクトルがない場合、その参照フレームまたは参照フレーム・ペアのスコア値は、最大の許容される値としてマークされる。別の実施形態では、複数の参照フレームまたは複数の参照フレーム・ペアのスコア値が同じである場合、これらの参照フレームまたは参照フレーム・ペアのランク付け順序は、空間的参照動き情報および/または時間的参照動き情報の走査順序と同じである。別の実施形態では、複数の参照フレームまたは複数の参照フレーム・ペアのスコア値が同じである場合、これらの参照フレームまたは参照フレーム・ペアのランク付け順序は、空間的参照動き情報および/または時間的参照動き情報において使用されるこれらの参照フレームまたは参照フレーム・ペアの出現頻度に依存する。
ある実施形態では、すべての許容される単方向および双方向の複合参照フレーム・ペアは、TM方法を使用することによって一緒にランク付けされ、このランク付け順序における現在のブロックのための参照フレーム・ペアのインデックスは、ビットストリーム中で信号伝達される。ある実施形態では、すべての許容される単一参照フレームは、TM方法を使用することによって一緒にランク付けされ、このランク付け順序における現在のブロックのための参照フレームのインデックスは、ビットストリーム中で信号伝達される。
ある実施形態では、テンプレート・マッチング(TM)によって各ブロックについて参照フレームを並べ替える方法は、現在のブロックのテンプレートと参照ブロックのテンプレートとを動き情報について比較する段階であって、動き情報が空間的参照動き情報または時間的参照動き情報を含む、段階と;現在のブロックのテンプレートと参照ブロックのテンプレートとの間の差分を計算する段階と;計算された差分に基づいて関連付けられた参照フレームについてのスコア値を決定する段階と;決定されたスコアに基づいて参照フレームを並べ替える段階とを含む。参照フレームは、参照フレーム・ペアをさらに含む。TMは、現在のブロックの動き情報を洗練するためのデコーダ側の動きベクトル導出を含む。並べ替えは、参照フレームのそれぞれについてのスコア値に基づいて、利用可能な参照フレームをランク付けすることをさらに含む。複数の参照フレームのスコア値が等価である場合、ランク付けは、空間的参照動き情報または時間的参照動き情報の走査順序に対応する。複数の参照フレームのスコア値が等価である場合、ランク付けは、空間的参照動き情報または時間的参照動き情報において使用されるこれらの参照フレームの出現頻度に基づく。前記計算することは、差分絶対値和(SAD)、差分二乗和(SSD)、平均二乗誤差(MSE)、または変換差分絶対値和(SATD)のうちの少なくとも1つを含む。テンプレートは、上または左の近傍ブロックを含む。空間的参照動き情報は、一つまたは複数の空間的動きベクトルを含む。時間的参照動き情報は、一つまたは複数の時間的動きベクトルを含む。複数の動きベクトルが参照フレームの1つをポイントしているとき、最小の差を有する動きベクトルの1つがスコア値を決定するために使用される。参照フレームの1つをポイントする動きベクトルが存在しないとき、スコア値は最大の許容される値であると決定される。許容される単方向および双方向の複合参照フレームは、TMを使用することによって一緒にランク付けされ、現在のブロックのための参照フレームのインデックスが、ビットストリーム中で信号伝達される。許容される単一参照フレームは、TMを使用することによって一緒にランク付けされ、現在のブロックのための参照フレームのインデックスが、ビットストリーム中で信号伝達される。
本開示の実施形態は、別個に使用されてもよく、あるいは任意の順序で組み合わされてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダのそれぞれは、処理回路(たとえば、一つまたは複数のプロセッサ、または一つまたは複数の集積回路)によって実装されてもよい。一例では、前記一つまたは複数のプロセッサは、非一時的なコンピュータ読み取り可能媒体に格納されたプログラムを実行する。ブロックという用語は、予測ブロック、符号化ブロック、または符号化単位、すなわちCUを含みうる。ブロックという用語は、変換ブロックを指すためにも使用されうる。ブロック・サイズは、ブロックの幅または高さ、または幅と高さの最大値、または幅と高さの最小値、または面積サイズ(幅*高さ)、アスペクト比(幅:高さまたは高さ:幅)のいずれかを指しうる。
上述の技法は、コンピュータ読み取り可能な命令を用いてコンピュータ・ソフトウェアとして実装することができ、一つまたは複数のコンピュータ読み取り可能な媒体に物理的に記憶されることができる。たとえば、図20は、開示された主題のある種の実施形態を実装するのに好適なコンピュータ・システム(2000)を示す。
コンピュータ・ソフトウェアは、任意の好適な機械コードまたはコンピュータ言語を用いてコーディングされることができ、アセンブリ、コンパイル、リンク、または同様の機構の対象とされて、一つまたは複数のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)などによって、直接的に、またはインタープリット、マイクロコード実行などを通じて実行可能な命令を含むコードを作成することができる。
命令は、たとえば、パーソナルコンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーム装置、モノのインターネット装置等を含むさまざまなタイプのコンピュータまたはそのコンポーネント上で実行されることができる。
コンピュータ・システム(2000)について図20に示されるコンポーネントは、例としての性質であり、本開示の実施形態を実装するコンピュータ・ソフトウェアの使用または機能の範囲に関する制限を示唆することを意図したものではない。コンポーネントの構成も、コンピュータ・システム(2000)の例示的実施形態において示されているコンポーネントの任意の1つまたは組み合わせに関する何らかの依存性または要件を有するものとして解釈されるべきではない。
コンピュータ・システム(2000)は、ある種のヒューマン・インターフェース入力装置を含むことができる。そのようなヒューマン・インターフェース入力装置は、たとえば、触覚入力(たとえば、キーストローク、スワイプ、データグローブの動き)、音声入力(たとえば、声、拍手)、視覚入力(たとえば、ジェスチャー)、嗅覚入力(図示せず)を通じた一または複数の人間ユーザーによる入力に応答することができる。また、ヒューマン・インターフェース装置は、音声(たとえば、発話、音楽、周囲の音)、画像(たとえば、スキャンされた画像、スチール画像カメラから得られる写真画像)、ビデオ(たとえば、2次元ビデオ、立体視ビデオを含む3次元ビデオ)のような、人間による意識的入力に必ずしも直接関係しないある種のメディアを捕捉するために使用できる。
入力ヒューマン・インターフェース装置は、キーボード(2001)、マウス(2002)、トラックパッド(2003)、タッチスクリーン(2010)、データグローブ(図示せず)、ジョイスティック(2005)、マイクロフォン(2006)、スキャナ(2007)、カメラ(2008)の一つまたは複数(それぞれの一つしか図示していない)を含んでいてもよい。
コンピュータ・システム(2000)はまた、ある種のヒューマン・インターフェース出力装置を含んでいてもよい。そのようなヒューマン・インターフェース出力装置は、たとえば、触覚出力、音、光、および臭い/味を通じて、一または複数の人間ユーザーの感覚を刺激するものであってもよい。そのようなヒューマン・インターフェース出力装置は、触覚出力装置(たとえば、タッチスクリーン(2010)、データグローブ(図示せず)、またはジョイスティック(2005)による触覚フィードバック;ただし、入力装置のはたらきをしない触覚フィードバック装置もありうる)、音声出力装置(たとえば、スピーカー(2009)、ヘッドフォン(図示せず))、視覚出力装置(たとえば、CRT画面、LCD画面、プラズマスクリーン、OLED画面を含む画面(2010);それぞれはタッチスクリーン入力機能があってもなくてもよく、それぞれは触覚フィードバック機能があってもなくてもよく、そのうちのいくつかは、2次元の視覚出力または立体視出力のような手段を通じた3次元より高い出力を出力することができる;仮想現実感眼鏡(図示せず)、ホログラフィーディスプレイおよび煙タンク(図示せず))、およびプリンタ(図示せず)を含んでいてもよい。
コンピュータ・システム(2000)はまた、人間がアクセス可能な記憶装置および関連する媒体、たとえば、CD/DVDまたは類似の媒体(2021)とともにCD/DVD ROM/RW(2020)を含む光学式媒体、サムドライブ(2022)、取り外し可能なハードドライブまたはソリッドステートドライブ(2023)、テープおよびフロッピーディスクといったレガシー磁気媒体(図示せず)、セキュリティ・ドングルのような特化したROM/ASIC/PLDベースの装置(図示せず)などを含むことができる。
当業者はまた、現在開示されている主題に関連して使用される用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
コンピュータ・システム(2000)はまた、一つまたは複数の通信ネットワーク(2055)へのインターフェース(2054)を含むことができる。ネットワークは、たとえば、無線、有線、光学式でありうる。ネットワークは、さらに、ローカル、広域、都市圏、車載および工業用、リアルタイム、遅延耐性などでありうる。ネットワークの例は、イーサネット〔登録商標〕、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラー・ネットワーク、ケーブルテレビ、衛星テレビ、地上放送テレビを含むTV有線または無線の広域デジタルネットワーク、CANBusを含む車載および工業用などを含む。ある種のネットワークは、普通、ある種の汎用データ・ポートまたは周辺バス(2049)(たとえば、コンピュータ・システム(2000)のUSBポートなど)に取り付けられる外部ネットワーク・インターフェース・アダプターを必要とする。他は、普通、後述するようなシステム・バスへの取り付けによって、コンピュータ・システム(2000)のコアに統合される(たとえば、PCコンピュータ・システムへのイーサネット・インターフェースまたはスマートフォン・コンピュータ・システムへのセルラー・ネットワーク・インターフェース)。これらのネットワークのいずれかを使用して、コンピュータ・システム(2000)は、他のエンティティと通信することができる。そのような通信は、一方向性、受信のみ(たとえば、放送テレビ)、一方向性送信専用(たとえば、ある種のCANbus装置へのCANbus)、または、たとえば、ローカルまたは広域デジタルネットワークを使用する他のコンピュータ・システムへの双方向性であってもよい。上述のようなそれらのネットワークおよびネットワークインターフェースのそれぞれで、ある種のプロトコルおよびプロトコルスタックが使用できる。
前述のヒューマン・インターフェース装置、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータ・システム(2000)のコア(2040)に取り付けることができる。
コア(2040)は、一つまたは複数の中央処理装置(CPU)(2041)、グラフィックス処理装置(GPU)(2042)、フィールドプログラマブルゲートアレイ(FPGA)(2043)の形の特化したプログラマブル処理装置、ある種のタスクのためのハードウェアアクセラレータ(2044)、グラフィック・アダプター(2050)などを含むことができる。これらの装置は、読み出し専用メモリ(ROM)(2045)、ランダムアクセスメモリ(2046)、内部のユーザー・アクセス可能でないハードドライブ、ソリッドステートドライブ(SSD)などの内部大容量記憶装置(2047)とともに、システム・バス(2048)を通じて接続されうる。いくつかのコンピュータ・システムでは、追加のCPU、GPUなどによる拡張を可能にするために、システム・バス(2048)は、一つまたは複数の物理プラグの形でアクセス可能であってもよい。周辺装置は、コアのシステム・バス(2048)に直接取り付けられることも、周辺バス(2049)を通じて取り付けられることもできる。一例では、グラフィック・アダプター(2050)にスクリーン(2010)が接続されることができる。周辺バスのためのアーキテクチャーは、PCI、USBなどを含む。
CPU(2041)、GPU(2042)、FPGA(2043)、およびアクセラレータ(2044)は、組み合わせて上述のコンピュータコードを構成することができるある種の命令を、実行することができる。そのコンピュータコードは、ROM(2045)またはRAM(2046)に記憶できる。一時的データも、RAM(2046)に記憶されることができ、一方、持続的データは、たとえば、内部大容量記憶装置(2047)に記憶されることができる。一つまたは複数のCPU(2041)、GPU(2042)、大容量記憶装置(2047)、ROM(2045)、RAM(2046)などと密接に関連付けることができるキャッシュメモリを使用することを通じて、メモリデバイスのいずれかへの高速な記憶および取り出しを可能にすることができる。
コンピュータ読み取り可能な媒体は、さまざまなコンピュータ実装された動作を実行するためのコンピュータコードをその上に有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよく、または、コンピュータ・ソフトウェア分野の技術を有する者に周知であり利用可能な種類のものであってもよい。
非限定的な例として、アーキテクチャー(2000)、具体的にはコア(2040)を有するコンピュータ・システムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)が一つまたは複数の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行することの結果として、機能性を提供することができる。そのようなコンピュータ読み取り可能媒体は、上記で紹介したようなユーザー・アクセス可能な大容量記憶ならびにコア内部の大容量記憶装置(2047)またはROM(2045)のような非一時的な性質のコア(2040)のある種の記憶に関連する媒体であることができる。本開示のさまざまな実施形態を実装するソフトウェアは、そのような装置に記憶され、コア(2040)によって実行されることができる。コンピュータ読み取り可能媒体は、特定のニーズに応じて、一つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、RAM(2046)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセスまたは特定の特定部分を、コア(2040)および具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に実行させることができる。追加的または代替的に、コンピュータ・システムは、回路(たとえば、アクセラレータ(2044))内に配線された、または他の仕方で具現された論理の結果として機能性を提供することができ、これは、本明細書に記載される特定のプロセスまたは特定のプロセスの特定部分を実行するためのソフトウェアの代わりに、またはそれと一緒に動作することができる。ソフトウェアへの言及は、論理を含み、適宜その逆も可能である。コンピュータ読み取り可能媒体への言及は、適宜、実行のためのソフトウェアを記憶する回路(たとえば集積回路(IC))、実行のための論理を具現する回路、またはその両方を包含することができる。本開示は、ハードウェアおよびソフトウェアの任意の好適な組み合わせを包含する。
本開示は、いくつかの例示的実施形態を記載してきたが、変更、置換、およびさまざまな代替等価物があり、それらは本開示の範囲内にはいる。よって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現し、よって、本開示の精神および範囲内にある多くのシステムおよび方法を考案することができることが理解されるであろう。
付録A:頭字語
ALF: Adaptive Loop Filter(適応ループ・フィルタ)
AMVP: Advanced Motion Vector Prediction(先進動きベクトル予測)
APS: Adaptation Parameter Set(適応パラメータセット)
ASIC: Application-Specific Integrated Circuit(特定用途向け集積回路)
AV1: AOMedia Video 1(AOメディアビデオ1)
AV2: AOMedia Video 2(AOメディアビデオ2)
BCW: Bi-prediction with CU-level Weights(CUレベルの重みをもつ双予測)
BM: Bilateral Matching(バイラテラル・マッチング)
BMS: benchmark set(ベンチマークセット)
CANBus: Controller Area Network Bus(コントローラエリアネットワークバス)
CC-ALF: Cross-Component Adaptive Loop Filter(成分横断適応ループ・フィルタ)
CCSO: Cross-Component Sample Offset(成分横断サンプルオフセット)
CD: Compact Disc(コンパクトディスク)
CDEF: Constrained Directional Enhancement Filter(制約された方向性向上フィルタ)
CDF: Cumulative Density Function(累積密度関数)
CfL: Chroma from Luma(ルーマからのクロマ)
CIIP: Combined intra-inter predictiction(複合イントラ‐インター予測)
CPU: Central Processing Unit(中央処理装置)
CRT: Cathode Ray Tube(陰極線管)
CTB: Coding Tree Block(符号化ツリーブロック)
CTU: Coding Tree Unit(符号化ツリー単位)
CTU: Coding Tree Unit(符号化ツリー単位)
CU: Coding Unit(符号化単位)
DMVR: Decoder-side Motion Vector Refinement(デコーダ側の動きベクトル洗練)
DPB: Decoded Picture Buffer(デコードピクチャーバッファ)
DPS: Decoding Parameter Set(デコードパラメータセット)
DVD: Digital Video Disc(デジタルビデオディスク)
FPGA: Field Programmable Gate Areas(フィールド・プログラマブル・ゲート・エリア)
GBI: Generalized Bi-prediction(一般化された双予測)
GOP: Group of Pictures(ピクチャーグループ)
GPU: Graphics Processing Unit(グラフィックス処理ユニット)
GSM: Global System for Mobile communications(グローバル移動通信システム)
HDR: high dynamic range(高ダイナミックレンジ)
HEVC: High Efficiency Video Coding(高効率ビデオ符号化)
HRD: Hypothetical Reference Decoder(仮設参照デコーダ)
IBC(またはIntraBC): Intra-Block Copy(イントラブロックコピー)
IC: Integrated Circuit(集積回路)
ISP: Intra Sub-Partition(イントラサブパーティション)
JEM: joint exploration model(共同探査モデル)
JVET: Joint Video Exploration Team(合同ビデオ探査チーム)
LAN: Local Area Network(ローカルエリアネットワーク)
LCD: Liquid-Crystal Display(液晶ディスプレイ)
LR: Loop Restoration Filter(ループ復元フィルタ)
LSO: Local Sample Offset(ローカルサンプルオフセット)
LTE: Long-Term Evolution(ロングタームエボリューション)
MMVD: Merge Mode with Motion Vector Difference(動きベクトル差分を用いるマージモード)
MPM: most probable mode(最確モード)
MV: Motion Vector(動きベクトル)
MVD: Motion Vector difference(動きベクトル差分)
MVP: Motion Vector Predictor(動きベクトル予測子)
OLED: Organic Light-Emitting Diode(有機発光ダイオード)
PB: Prediction Block(予測ブロック)
PCI: Peripheral Component Interconnect(ペリフェラルコンポーネント相互接続)
PDPC: Position Dependent Prediction Combination(位置依存予測組み合わせ)
PLD: Programmable Logic Device(プログラマブルロジックデバイス)
POC: Picture Order Count(ピクチャー順カウント)
PPS: Picture Parameter Set(ピクチャーパラメータセット)
PU: Prediction Unit(予測単位)
PU: Prediction Unit(予測単位)
RAM: Random Access Memory(ランダムアクセスメモリ)
ROM: Read-Only Memory(読み出し専用メモリ)
RPS: Reference Picture Set(参照ピクチャーセット)
SAD: Sum of Absolute Difference(差分絶対値和)
SAO: Sample Adaptive Offset(サンプル適応オフセット)
SB: Super Block(スーパーブロック)
SCC: Screen Content Coding(スクリーンコンテンツ符号化)
SDP: Semi Decoupled Partitioning(半脱結合パーティション分割)
SDR: standard dynamic range(標準ダイナミックレンジ)
SDT: Semi Decoupled Tree(半脱結合ツリー)
SEI: Supplementary Enhancement Information(補足向上情報)
SNR: Signal Noise Ratio(信号雑音比)
SPS: Sequence Parameter Setting(シーケンスパラメータ設定)
SSD: solid-state drive(ソリッドステートドライブ)
SST: Semi Separate Tree(反分離ツリー)
TM: Template Matching(テンプレート・マッチング)
TU: Transform Unit(変換単位)
TU: Transform Unit(変換単位)
USB: Universal Serial Bus(ユニバーサルシリアルバス)
VPS: Video Parameter Set(ビデオパラメータセット)
VUI: Video Usability Information(ビデオ操作性情報)
VVC: versatile video coding(多用途ビデオ符号化)
WAIP: Wide-Angle Intra Prediction(広角イントラ予測)