以下では、本願発明の実施形態の添付の図面を参照して、本願発明の実施形態における技術的解決手段を明確に、かつ完全に説明する。明らかに、説明される実施形態は、本願発明の実施形態の一部であってすべてではない。当業者により、本願発明の実施形態に基づき創造的努力なく、得られる他のすべての実施形態は、本願発明の保護範囲内に含まれるものとする。
動き補償が、ビデオ符号化において圧縮効率を向上させるための重要な技術の1つである。ブロックマッチングに基づく従来の動き補償は、主流のビデオエンコーダに、特に、ビデオ符号化規格において広く適用されている方法である。ブロックマッチングに基づく動き補償方法において、インター予測ブロックは、並進運動モデルを用い、並進運動モデルは、一ブロックのすべての画素位置における動きベクトルが等しいことを仮定する。しかしながら、この仮定は、多くの場合においては無効である。実際に、ビデオ中の物体の動きは通常、並進運動、回転運動、およびズームなどの、動きの複雑な組み合わせである。画素ブロックがこれらの複雑な動きを含む場合、ブロックマッチングに基づく従来の動き補償方法を用いて取得される予測信号は不正確である。その結果、フレーム間の相関が、完全に除去されることができない。該問題を解決するために、上位の動きモデルが、ビデオ符号化の動き補償に導入される。上位の動きモデルは、並進運動モデルより高い自由度を有し、インター予測ブロックの画素が異なる動きベクトルを有することを可能にする。すなわち、上位の動きモデルによって生成される動きベクトルフィールドがより正確である。
制御点に基づいて説明されるアフィン運動モデルが、上位の動きモデルの代表的な種類である。従来の並進運動モデルと異なり、ブロックにおけるそれぞれの画素ポイントの動きベクトルの値が、画素ポイントの位置に関連し、座標位置の1次線型方程式である。アフィン運動モデルは、基準ブロックの回転またはズームなどの歪曲変換を可能にし、動き補償によって、より正確な予測ブロックを取得することができる。
動き補償によって、アフィン運動モデルを用いることによって予測ブロックを取得する上述のインター予測の種類は概して、アフィンモードと称される。現在の主流のビデオ圧縮符号化規格において、インター予測の種類は、高度な動きベクトル予測(Advanced motion vector prediction、AMVP)モード、および、マージ(Merge)モードといった2つのモードを含む。AMVPにおいて、それぞれの符号化ブロックに対して、予測方向、基準フレームインデックス、および実際の動きベクトルと予測動きベクトルとの間の差は、明示的に転送される必要がある。しかしながら、マージモードにおいて、現在の符号化ブロックの動き情報は、隣接ブロックの動きベクトルから直接導出される。アフィンモードと、並進運動モデルに基づく、AMVPまたはMergeなどのインター予測方式は、組み合わされてよく、アフィン運動モデルに基づく、AMVPまたはMergeなどの新たなインター予測モードを形成してよい。例えば、アフィン運動モデルに基づくマージモードは、アフィンマージモード(Affine Merge)と称されてよい。予測モードを選択する過程において、新たな予測モードと現在の規格における予測モードとが共に、「性能/コスト比」の比較処理に参加し、予測モードとしての最適なモードを選択し、処理されるべきブロックの予測画像を生成する。概して、予測モード選択結果が符号化され、符号化された予測モード選択結果は、復号側へ伝送される。
アフィンモードは、予測ブロックの精度をさらに向上させ得て、符号化効率を向上させ得る。しかしながら、一方、アフィンモードについて、制御点の動き情報を符号化するために、並進運動モデルに基づく一様の動き情報のために必要とされるビットレートより多くのビットレートを消費する必要がある。加えて、候補予測モードが増加するので、予測モード選択結果を符号化するために用いられるビットレートも増加する。そのような追加のビットレート消費はすべて、符号化効率の向上に影響を与える。
本願発明の技術的解決手段によると、一方で、処理されるべき画像ユニットの予測モードの候補の集合がアフィンマージモードを含むかどうかは、処理されるべき画像ユニットの隣接画像ユニットの予測モード情報またはサイズ情報に従って決定され、指示情報を取得すべく、ビットストリームが解析され、予測モードの候補の集合において、指示情報に従って処理されるべき画像ユニットの予測モードが決定され、かつ、処理されるべき画像ユニットの予測画像が、予測モードに従って決定される。他方、ビットストリームが解析され、特定の領域がアフィンモードを含む予測モードの候補の集合を用いるかどうかは、指示情報を用いることによって決定され、予測モードの候補の集合と他の受信された指示情報と従って、予測モードが決定され、かつ、予測画像が生成される。
従って、処理されるべき画像ユニットの隣接画像ユニットの予測モード情報またはサイズ情報は、処理されるべきブロックの予測情報を符号化するための予備的知識として、用いられてよい。領域における予測モードの候補の集合を含む指示情報は、処理されるべきブロックの予測情報を符号化するための予備的知識としても用いられてよい。予備的知識は、予測モードの符号化を命令し、符号化モード選択の情報のビットレートを低減し、それにより、符号化効率を向上させる。
加えて、例えば、特許出願番号第CN201010247275.7号、第CN201410584175.1号、第CN201410526608.8号、第CN201510085362.X号、第PCT/CN2015/073969号、第CN201510249484.8号、第CN201510391765.7号、および第CN201510543542.8号などの、アフィンモデルの動き情報の符号化における効率を向上させるための複数の解決手段が存在し、これらの出願の全体が参照により本明細書に組み込まれている。解決される具体的な技術的問題が異なるので、本願発明の技術的解決手段は、上述の解決手段に適用されてよく、さらに、符号化効率を向上させることが理解されるべきである。
アフィンモデルは、非並進運動モデルの一般的な用語であることがさらに理解されるべきである。回転、ズーム、変形、透視、および同様のものを含む実際の動きはすべて、異なる動きモデルを確立することによって、インター予測における動き推定および動き補償のために用いられてよく、別々に、略して第1のアフィンモデルおよび第2のアフィンモデルなどと称される。
図1は、本発明の実施形態に係るビデオ符号化システム10の概略ブロック図である。本明細書において説明されているように、「ビデオコーダ」という用語は一般的に、ビデオエンコーダおよびビデオデコーダの両方を指す。本願発明において、「ビデオ符号化」または「符号化」という用語は一般的に、ビデオ符号化またはビデオ復号を指してよい。
図1に示されているように、ビデオ符号化システム10は、ソース装置12と、宛先装置14とを含む。ソース装置12は、符号化ビデオデータを生成する。従って、ソース装置12は、ビデオ符号化装置、またはビデオ符号化デバイスと称されてよい。宛先装置14は、ソース装置12により生成された符号化ビデオデータを復号し得る。従って、宛先装置14は、ビデオ復号装置、またはビデオ復号デバイスと称されてよい。ソース装置12および宛先装置14は、ビデオ符号化装置、またはビデオ符号化デバイスの例であってよい。ソース装置12および宛先装置14は、デスクトップコンピュータ、モバイルコンピューティング装置、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビ、カメラ、表示装置、デジタルメメディアプレーヤ、ビデオゲームコンソール、車載コンピュータ、または同様のものを含む、広範囲の装置を含んでよい。
宛先装置14は、チャネル16を用いることによって、ソース装置12から符号化ビデオデータを受信してよい。チャネル16は、符号化ビデオデータをソース装置12から宛先装置14へ移動することができる1つまたは複数の媒体および/または装置を含んでよい。一例において、チャネル16は、ソース装置12がリアルタイムで、符号化ビデオデータを宛先装置14へ直接伝送することを可能にする1つまたは複数の通信媒体を含んでよい。この例において、ソース装置12は、通信規格(例えば、無線通信プロトコル)に従って、符号化ビデオデータを変調してよく、変調されたビデオデータを宛先装置14へ伝送してよい。1つまたは複数の通信媒体は、例えば、無線周波数(RF)スペクトル、または1つまたは複数の物理的伝送回線のような無線および/または有線通信媒体を含んでよい。1つまたは複数の通信媒体は、パケットベースのネットワーク(例えば、ローカルエリアネットワーク、広域ネットワーク、または(インターネットなどの)グローバルネットワーク)の一部を形成し得る。1つまたは複数の通信媒体は、ルータ、スイッチ、基地局、または、ソース装置12から宛先装置14への通信を容易にする別のデバイスを含んでよい。
別の例において、チャネル16は、ソース装置12により生成された符号化ビデオデータを記憶する記憶媒体を含んでよい。この例において、宛先装置14は、ディスクアクセス、またはカードアクセスによって、記憶媒体へアクセスしてよい。記憶媒体は、ブルーレイディスク(登録商標)、DVD、CD−ROM、フラッシュメモリ、または、符号化ビデオデータを記憶するための他の適したデジタル記憶媒体などの様々な局所的にアクセスされるデータ記録媒体を含んでよい。
別の例において、チャネル16は、ファイルサーバ、または、ソース装置12により生成された符号化ビデオデータを記憶する別の中間記憶装置を含んでよい。この例において、宛先装置14は、ストリーミング伝送またはダウンロードによって、ファイルサーバまたは別の中間記憶装置に記憶されている符号化ビデオデータへアクセスしてよい。ファイルサーバは、符号化ビデオデータを記憶し、符号化ビデオデータを宛先装置14へ伝送することができるサーバの1種であってよい。ファイルサーバの例は、(例えば、ウェブサイトの)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワークアタッチトストレージ(NAS)装置、およびローカルディスクドライブを含む。
宛先装置14は、(インターネット接続などの)規格データ接続によって、符号化ビデオデータへアクセスしてよい。データ接続の例示的な種類は、無線チャネル(例えば、Wi−Fi(登録商標)接続)、有線接続(例えば、DSLまたはケーブルモデム)、または、ファイルサーバに記憶されている符号化ビデオデータへのアクセスに適した、両方の組み合わせを含んでよい。ファイルサーバからの符号化ビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、または、両方の組み合わせであってよい。
本願発明の技術は、無線アプリケーションまたは設定に限定されない。技術は、例えば、地上波テレビブロードキャスティング、ケーブルテレビ伝送、衛星テレビ伝送、ストリーミングビデオ伝送(例えば、インターネットによって)、データ記録媒体に記憶されているビデオデータの符号化、データ記録媒体に記憶されているビデオデータの復号、または別のアプリケーションのような様々なマルチメディアアプリケーションのサポートにおいて、ビデオ符号化に適用されてよい。いくつかの例において、ビデオ符号化システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどのアプリケーションをサポートするように、片方向または双方向のビデオ伝送をサポートするよう構成されてよい。
図1の例において、ソース装置12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。いくつかの例において、出力インターフェース22は、変調器/復調器(モデム)、および/またはトランスミッタを含んでよい。ビデオソース18は、(ビデオカメラなどの)ビデオキャプチャ装置、先に捕捉したビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および/または、ビデオデータを生成するためのコンピュータグラフィックスシステム、または、そのような、ビデオデータのソースの組み合わせを含んでよい。
ビデオエンコーダ20は、ビデオソース18からのビデオデータを符号化してよい。いくつかの例において、ソース装置12は、出力インターフェース22を用いることによって、符号化ビデオデータを宛先装置14へ直接伝送する。あるいは、符号化ビデオデータは、復号および/または再生のために宛先装置14による後のアクセスのために、記憶媒体またはファイルサーバに記憶されてよい。
図1の例において、宛先装置14は、入力インターフェース28と、ビデオデコーダ30と、表示装置32とを含む。いくつかの例において、入力インターフェース28は、受信機および/またはモデムを含む。入力インターフェース28は、チャネル16を用いることによって符号化ビデオデータを受信してよい。表示装置32は、宛先装置14と統合されてよく、または、宛先装置14の外部にあってよい。一般的に、表示装置32は、復号されたビデオデータを表示する。表示装置32は、例えば、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または、別の種類の表示装置のような様々な表示装置を含んでよい。
ビデオエンコーダ20およびビデオデコーダ30は、(高効率ビデオ符号化(H.265)規格などの)ビデオ圧縮規格に従って動作してよく、HEVCテストモデル(HM)に準拠する。H.265規格のテキスト説明ITU−T H.265(V3)(04/2015)が、2015年4月29日に公開され、http://handle.itu.int/11.1002/1000/12455からダウンロードできる。ファイルの内容全体が参照により本明細書に組み込まれている。
あるいは、ビデオエンコーダ20およびビデオデコーダ30は、他のプロプライエタリまたは産業規格に従って、動作してよい。規格は、ITU−T H.261、ISO/IECMPEG−1 Visual、ITU−T H.262、または、ISO/IECMPEG−2 Visual、ITU−T H.263、ISO/IECMPEG−4 Visual、およびITU−T H.264(さらに、ISO/IECMPEG−4AVCと称される)を含み、かつ、それらのスケーラブルビデオ符号化(SVC)およびマルチビュービデオ符号化(MVC)拡張を含む。しかしながら、本願発明の技術は、任意の特定の符号化規格または技術に限定されない。
加えて、図1は、本願発明の技術の一例に過ぎず、必ずしも符号化装置と復号装置との間の任意のデータ通信を含むわけではないビデオ符号化設定(例えば、ビデオ符号化またはビデオ復号)に適用されてよい。他の例において、データは、ローカルメモリから読み出され、ネットワークにわたってストリームされる、または、同様の方式で操作される。符号化装置は、データを符号化して、符号化されたデータをメモリに記憶してよく、および/または、復号装置は、メモリからデータを読み出して、データを復号してよい。多くの例において、符号化および復号は、互いに通信しないが、単にデータをメモリへ符号化する、および/または、メモリからデータを読み出してデータを復号する複数の装置により実行される。
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ハードウェア、またはそれらの任意の組み合わせなどの、様々な好適な回路のうちのいずれかとして実装されてよい。技術がソフトウェアに部分的に実装されている場合、装置は、適した非一時的コンピュータ可読記憶媒体においてソフトウェアの命令を記憶してよく、本願発明の技術を実行すべく、1つまたは複数のプロセッサを用いることによってハードウェアにおける命令を実行してよい。上述のうちの(ハードウェア、ソフトウェア、ハードウェアおよびソフトウェアの組み合わせ、または同様のものを含む)いずれかが、1つまたは複数のプロセッサとしてみなされてよい。ビデオエンコーダ20およびビデオデコーダ30のそれぞれは、1つまたは複数のエンコーダまたはデコーダに含まれてよく、ビデオエンコーダ20およびビデオデコーダ30のいずれかが、各装置において組み合わされたエンコーダ/デコーダ(エンコーダおよびデコーダ(CODEC))の一部として統合されてよい。
本願発明は概して、ビデオエンコーダ20が特定の情報を(ビデオデコーダ30などの)別の装置へ「シグナリング」することを指してよい。「シグナリング」という用語は概して、構文要素および/または符号化ビデオデータを表す他のデータの通信を指してよい。そのような通信は、リアルタイムで、またはほぼリアルタイムで発生し得る。あるいは、そのような通信は、ある期間にわたって発生し得る。例えば、構文要素が符号化する間に符号化ビットストリームとしてコンピュータ可読記憶媒体に記憶されているとき、通信は発生し得る。構文要素は次に、この媒体に記憶された後に、任意の時間で復号装置により読み出されてよい。
上で簡潔に言及されているように、ビデオエンコーダ20は、ビデオデータを符号化する。ビデオデータは、1つ又は複数のピクチャを含んでよい。ピクチャのそれぞれは、静止画像であってよい。いくつかの例において、ピクチャは、ビデオ「フレーム」と称されてよい。ビデオエンコーダ20は、ビットストリームを生成してよく、ビットストリームは、ビデオデータの符号化表示を形成するビットのシーケンスを含む。ビデオデータの符号化表示は、符号化ピクチャおよび関連データを含んでよい。符号化ピクチャは、ピクチャの符号化表示である。関連データは、シーケンスパラメータ集合(SPS)、ピクチャパラメータ集合(PPS)、および別の構文構造を含んでよい。SPSは、ピクチャのゼロまたはゼロより多くのシーケンスに適用可能なパラメータを含んでよい。PPSは、ゼロまたはゼロより多くのピクチャに適用可能なパラメータを含んでよい。構文構造は、指定の順序のビットストリームにおいて共に表示されるゼロまたはゼロより多くの構文要素の集合であってよい。
ピクチャの符号化表示を生成するために、ビデオエンコーダ20は、ピクチャを符号化ツリーブロック(CTB)のグリッドに区画してよい。いくつかの例において、CTBは、「ツリーブロック」、「最大符号化ユニット」(LCU)、または「符号化ツリーユニット」と称されてよい。HEVCのCTBは、(H.264/AVCなどの)先の規格のマクロブロックと大まかに類似してよい。しかしながら、CTBは、必ずしも特定のサイズに限定されるわけではなく、1つまたは複数の符号化ユニット(CU)を含んでよい。
CTBのそれぞれは、ピクチャ内の同サイズのブロックの異なる画素に関連付けられてよい。各画素は、輝度(luminanceまたはluma)サンプルと、2つのクロミナンス(chrominanceまたはchroma)サンプルとを含んでよい。従って、各CTBは、1ブロックの輝度サンプルと、2つのブロックのクロミナンスサンプルとに関連付けられてよい。説明を容易にするために、本願発明において、2次元画素配列は、画素ブロックと称されてよく、2次元サンプル配列は、サンプルブロックと称されてよい。ビデオエンコーダ20は、4分木区画によって、CTBに関連付けられる画素ブロックを、CUに関連付けられる画素ブロックに区画してよく、従って、それらは「符号化ツリーブロック」と名付けられる。
ピクチャのCTBは、1つまたは複数のスライスにグループ化されてよい。いくつかの例において、スライスのそれぞれは、整数個のCTBを含む。ピクチャ符号化の部分として、ビデオエンコーダ20は、符号化表示(すなわち、ピクチャの各スライスの符号化されたスライス)を生成してよい。符号化されたスライスを生成するために、ビデオエンコーダ20は、符号化表示(すなわち、スライスのCTBのそれぞれの符号化CTB)を生成すべく、スライスの各CTBを符号化してよい。
符号化CTBを生成するために、ビデオエンコーダ20は、画素ブロックを次第に小さくなる画素ブロックに区画すべくCTBに関連付けられる画素ブロックに対して4分木区画を再帰的に実行してよい。より小さい画素ブロックのそれぞれは、CUに関連付けられてよい。区画されたCUは、画素ブロックが別のCUに関連付けられる画素ブロックに区画されるCUであってよい。非区画CUは、画素ブロックが別のCUに関連付けられる画素ブロックに区画されていないCUであってよい。
ビデオエンコーダ20は、各非区画CUの1つまたは複数の予測ユニット(PU)を生成してよい。CUのPUのそれぞれは、CUの画素ブロックにおける異なる画素ブロックに関連付けられてよい。ビデオエンコーダ20は、CUの各PUの予測画素ブロックを生成してよい。PUの予測画素ブロックは、画素ブロックであってよい。
ビデオエンコーダ20は、イントラ予測またはインター予測によって、PUの予測画素ブロックを生成してよい。ビデオエンコーダ20がイントラ予測によってPUの予測画素ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられるピクチャの復号画素に基づき、PUの予測画素ブロックを生成してよい。ビデオエンコーダ20がインター予測によって、PUの予測画素ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられるピクチャ以外の1つ又は複数のピクチャの復号画素に基づき、PUの予測画素ブロックを生成してよい。
ビデオエンコーダ20は、CUのPUの予測画素ブロックに基づき、CUの残差画素ブロックを生成してよい。CUの残差画素ブロックは、CUのPUの予測画素ブロックにおけるサンプルと、CUの元の画素ブロックにおける対応するサンプルとの間の差を示し得る。
加えて、非区画CUの符号化の部分として、ビデオエンコーダ20は、CUの残差画素ブロックを、CUの変換ユニット(TU)に関連付けられる1つまたは複数のより小さい残差画素ブロックに区画すべく、CUの残差画素ブロックに対して、再帰的な4分木区画を実行してよい。TUに関連付けられる画素ブロックにおける画素がそれぞれ、輝度サンプルと2つのクロミナンスサンプルとを含むので、TUのそれぞれは、輝度サンプルの残差サンプルブロックと、クロミナンスサンプルの2つの残差サンプルブロックとに関連付けられ得る。
ビデオコーダ20は、係数ブロック(すなわち、係数のブロック)を生成すべく、TUに関連付けられる残差サンプルブロックに対して1つまたは複数の変換を適用してよい。ビデオエンコーダ20は、係数ブロックのそれぞれに対して量子化処理を実行してよい。量子化は概して、係数を表すために用いられるデータの量を可能な限り、低減すべく、係数が定量化され、それにより、さらなる圧縮を実行する処理を指す。
ビデオエンコーダ20は、定量化された係数ブロックにおける係数を表す構文要素の集合を生成し得る。ビデオエンコーダ20は、(コンテキスト適応型バイナリ算術符号化(CABAC)操作などの)エントロピー符号化動作を、これらの構文要素のうちの少なくとも一部に適用してよい。
CABAC符号化を構文要素に適用するために、ビデオエンコーダ20は、(「ビン」と称される)一連の1つまたは複数のビットを含む2進数字列を形成すべく、構文要素を2値化してよい。ビデオエンコーダ20は、規則的CABAC符号化によって、ビンのうちのいくつかを符号化してよく、バイパス符号化によって、ビンのうちの他のものを符号化してよい。
ビデオエンコーダ20が規則的CABAC符号化によってビンのシーケンスを符号化するとき、ビデオエンコーダ20はまず、符号化コンテキストを識別してよい。符号化コンテキストは、特定の値を有する符号化ビンの確率を識別してよい。例えば、符号化コンテキストは、0値のビンを符号化する可能性が0.7であり、1値のビンを符号化する可能性が0.3であることを示し得る。符号化コンテキストを識別した後に、ビデオエンコーダ20は、インターバルを下部のサブインターバルと上部のサブインターバルとに分割してよい。一方のサブインターバルは、値0に関連付けられてよく、他方のサブインターバルは、値1に関連付けられてよい。サブインターバルの幅は、識別された符号化コンテキストにより関連値のために示された可能性に比例してよい。
構文要素のビンが下部のサブインターバルに関連付けられる値を有する場合、符号化値は、下部のサブインターバルの下方境界に等しい場合がある。構文要素の同じビンが、上部のサブインターバルに関連付けられる値を有する場合、符号化値は、上部のサブインターバルの下方境界に等しい場合がある。構文要素の次のビンを符号化するために、ビデオエンコーダ20は、符号化ビットの値に関連付けられるサブインターバルが含まれるインターバルに対してこれらの段階を繰り返してよい。ビデオエンコーダ20が次のビンのためにこれらの段階を繰り返すとき、ビデオエンコーダ20は、識別された符号化コンテキストにより示された可能性と、符号化ビンの実際の値とに基づいて変更された可能性を用いてよい。
ビデオエンコーダ20が、バイパス符号化によって、ビンのシーケンスを符号化するとき、ビデオエンコーダ20は、単一サイクルにおいていくつかのビンを符号化できる場合があるが、ビデオエンコーダ20が、規則的CABAC符号化によって、ビンのシーケンスを符号化するとき、ビデオエンコーダ20は、一サイクルにおいて単一ビンのみを符号化できる場合がある。バイパス符号化は比較的簡単である場合があり、なぜならば、バイパス符号化において、ビデオエンコーダ20はコンテキストを選択する必要がなく、かつ、ビデオエンコーダ20は、両方のシンボル(0および1)に対する確率が1/2(50%)であると仮定することができるからである。従って、バイパス符号化において、インターバルは、半分に直接分割される。実際に、バイパス符号化は、算術符号化エンジンのコンテキスト適応の部分をバイパスする。
ビンに対するバイパス符号化の実行は、ビンに対する規則的CABAC符号化の実行と比べてより少ない計算を必要とする。加えて、バイパス符号化の実行は、より高い平行度およびより高いスループットを可能にし得る。バイパス符号化によって符号化されたビンは、「バイパス符号化ビン」と称されてよい。
係数ブロックにおける構文要素に対するエントロピー符号化の実行に加えて、ビデオエンコーダ20は、変換ブロックから残差サンプルブロックを再構成するように、変換ブロックに対して逆量子化および逆変換を適用してよい。ビデオエンコーダ20は、再構築サンプルブロックを生成すべく、再構築残差サンプルブロックを、1つ又は複数の予測サンプルブロックから対応するサンプルに追加してよい。各色成分のサンプルブロックを再構築することによって、ビデオエンコーダ20は、TUに関連付けられる画素ブロックを再構成し得る。このようにCUの各TUの画素ブロックを再構築することによって、ビデオエンコーダ20は、CUの画素ブロックを再構成し得る。
ビデオエンコーダ20がCUの画素ブロックを再構成した後に、ビデオエンコーダ20は、CUに関連付けられるブロッキングアーチファクトを低減すべく、デブロッキング動作を実行してよい。ビデオエンコーダ20がデブロッキング動作を実行した後に、ビデオエンコーダ20は、サンプルアダプティブオフセット(SAO)を用いることによって、ピクチャのCTBの再構築画素ブロックを変更してよい。一般的に、オフセット値をピクチャの画素に追加することは、符号化効率を向上させることができる。これらの動作を実行した後に、ビデオエンコーダ20は、別のCUの予測画素ブロックの生成に使用するために、CUの再構築画素ブロックを復号ピクチャバッファに記憶してよい。
ビデオデコーダ30は、ビットストリームを受信してよい。ビットストリームは、ビデオエンコーダ20により符号化されたビデオデータの符号化表示を含んでよい。ビデオデコーダ30は、ビットストリームから構文要素を抽出すべく、ビットストリームを解析してよい。ビットストリームからの少なくともいくつかの構文要素の抽出の部分として、ビデオデコーダ30は、ビットストリームにおけるデータをエントロピー復号してよい。
ビデオデコーダ30がCABAC復号を実行するとき、ビデオデコーダ30は、いくつかのビンに対して規則的CABAC復号を実行してよく、かつ、他のビンに対してバイパス復号を実行してよい。ビデオデコーダ30が構文要素に対して規則的CABAC復号を実行するとき、ビデオデコーダ30は、符号化コンテキストを識別してよい。ビデオデコーダ30は、次に、インターバルを、下部サブインターバルおよび上部サブインターバルに分割してよい。一方のサブインターバルは、値0に関連付けられてよく、他方のサブインターバルは、値1に関連付けられてよい。サブインターバルの幅は、識別された符号化コンテキストにより示された、関連値に対する可能性と比例してよい。符号化値が下部サブインターバル内にある場合、ビデオデコーダ30は、下部サブインターバルに関連付けられる値を有するビンを復号してよい。符号化値が上部サブインターバル内にある場合、ビデオデコーダ30は、上部サブインターバルに関連付けられる値を有するビンを復号してよい。構文要素の次のビンを復号すべく、ビデオデコーダ30は、符号化値を含むサブインターバルが含まれるインターバルに対してこれらの段階を繰り返してよい。ビデオデコーダ30が次のビンに対してこれらの段階を繰り返すとき、ビデオデコーダ30は、識別された符号化コンテキストおよび復号されたビンにより示された可能性に基づいて変更された可能性を用いてよい。ビデオデコーダ30は、次に、構文要素を復元すべく、ビンをデバイナライズ(de‐binarize)してよい。デバイナライズは、2進数字列と構文要素値との間のマッピングに従って構文要素値を選択し得ることを意味してよい。
ビデオデコーダ30がバイパス復号を実行するとき、ビデオデコーダ30は、単一サイクルでいくつかのビンを復号することができる場合があるが、ビデオデコーダ30が規則的CABAC復号を実行するとき、ビデオデコーダ30は概して、サイクルで単一ビンのみを復号することができる場合があるか、または、単一ビンのために1つより多くのサイクルを必要とする場合がある。ビデオデコーダ30がコンテキストを選択する必要がなく、かつ、両方のシンボル(0および1)に対する確率が1/2であることを仮定できるので、バイパス復号は、規則的CABAC復号より簡単であり得る。このように、ビンに対するバイパス符号化および/または復号の実行は、ビンに対する規則的符号化の実行と比べてより少ない計算を必要としてよく、より高い平行度およびより高いスループットを可能にすることができる。
ビデオデコーダ30は、ビットストリームから抽出された構文要素に基づき、ビデオデータのピクチャを再構成してよい。構文要素に基づき、ビデオデータを再構築するプロセスは概して、構文要素を生成する、ビデオエンコーダ20により実行されるプロセスと相反してよい。例えば、ビデオデコーダ30は、CUに関連付けられる構文要素に基づき、CUのPUの予測画素ブロックを生成してよい。加えて、ビデオデコーダ30はCUのTUに関連付けられる係数ブロックを逆量子化してよい。ビデオデコーダ30は、CUのTUに関連付けられる残差画素ブロックを再構成すべく、係数ブロックに対して逆変換を実行してよい。ビデオデコーダ30は、予測画素ブロックおよび残差画素ブロックに基づき、CUの画素ブロックを再構成してよい。
ビデオデコーダ30がCUの画素ブロックを再構成した後に、ビデオデコーダ30は、CUに関連付けられるブロッキングアーチファクトを低減すべく、デブロッキング動作を実行してよい。加えて、1つまたは複数のSAO構文要素に基づき、ビデオデコーダ30は、ビデオエンコーダ20により適用されるSAOを適用してよい。ビデオデコーダ30がこれらの動作を実行した後に、ビデオデコーダ30は、CUの画素ブロックを復号ピクチャバッファに記憶してよい。復号ピクチャバッファは、後続動き補償、イントラ予測、および表示装置上の提示の基準ピクチャを提供してよい。
図2は、本願発明の技術を実装するよう構成されるビデオエンコーダ20の一例を示すブロック図である。図2は、説明目的のために提供されており、本願発明において広く例示されて説明されている技術を限定するものとして解釈されるべきではない。説明目的のために、本願発明において、ビデオエンコーダ20は、HEVC符号化の画像予測において説明されている。しかしながら、本願発明の技術は、別の符号化規格または方法に適用可能である。
図2の例において、ビデオエンコーダ20は、予測処理ユニット100と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換処理ユニット110と、再構築ユニット112と、フィルタユニット113と、復号ピクチャバッファ114と、エントロピー符号化ユニット116とを含む。エントロピー符号化ユニット116は、規則的CABAC符号化エンジン118およびバイパス符号化エンジン120を含む。予測処理ユニット100は、インター予測処理ユニット121およびイントラ予測処理ユニット126を含む。インター予測処理ユニット121は、動き推定ユニット122および動き補償ユニット124を含む。別の例において、ビデオエンコーダ20は、より多くの、より少ない、または、異なる機能的構成要素を含んでよい。
ビデオエンコーダ20は、ビデオデータを受信する。ビデオデータを符号化すべく、ビデオエンコーダ20は、ビデオデータの各ピクチャの各スライスを符号化してよい。スライスの符号化の部分として、ビデオエンコーダ20は、スライスの各CTBを符号化してよい。CTBの符号化の部分として、予測処理ユニット100は、画素ブロックを次第に小さくなる画素ブロックに区画すべく、CTBに関連付けられる画素ブロックに対して4分木区画を実行してよい。より小さい画素ブロックは、CUに関連付けられ得る。例えば、予測処理ユニット100は、CTBの画素ブロックを4つの同サイズのサブブロックに区画してよく、サブブロックのうちの1つまたは複数を4つの同サイズのサブのサブブロックに区画してよい、等など。
ビデオエンコーダ20は、CUの符号化表示(すなわち、符号化されたCU)を生成すべく、ピクチャのCTBのCUを符号化してよい。ビデオエンコーダ20は、z形走査順でCTBのCUを符号化してよい。言い換えれば、ビデオエンコーダ20は順次に、左上のCU、右上のCU、左下のCU、そして、右下のCUを符号化してよい。ビデオエンコーダ20が区画されたCUを符号化するとき、ビデオエンコーダ20は、z形走査順で区画されたCUの画素ブロックのサブブロックに関連付けられるCUを符号化してよい。
加えて、CUの符号化の部分として、予測処理ユニット100は、CUの1つまたは複数のPUの中でCUの画素ブロックを区画してよい。ビデオエンコーダ20およびビデオデコーダ30は、様々なPUサイズをサポートし得る。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ20およびビデオデコーダ30は、イントラ予測のために、2N×2NまたはN×NのPUサイズをサポートしてよく、インター予測のために、2N×2N、2N×N、N×2N、N×N、または同様のものの対称型PUサイズをサポートしてよい。ビデオエンコーダ20およびビデオデコーダ30は、インター予測のために、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズに対する非対称型区画もサポートしてよい。
インター予測処理ユニット121は、CUの各PUに対してインター予測を実行することによって、PUの予測データを生成してよい。PUの予測データは、PUに対応する予測画素ブロックとPUの動き情報とを含んでよい。スライスは、Iスライス、Pスライス、または、Bスライスであってよい。インター予測ユニット121は、PUがIスライス、Pスライス、またはBスライスにあるかに依存して、CUのPUに対して異なる動作を実行してよい。Iスライスにおいて、すべてのPUは、イントラ予測される。従って、PUがIスライスにある場合、インター予測ユニット121は、PUに対してインター予測を実行しない。
PUがPスライスにある場合、動き推定ユニット122は、PUの基準ブロックのために、基準ピクチャのリスト(「リスト0」など)における基準ピクチャを検索してよい。PUの基準ブロックは、PUの画素ブロックにもっとも密接に対応する画素ブロックであってよい。動き推定ユニット122は、PUの基準ブロックを含むリスト0における基準ピクチャを示す基準ピクチャインデックスと、PUの画素ブロックと基準ブロックとの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット122は、PUの動き情報として、基準ピクチャインデックスおよび動きベクトルを出力してよい。動き補償ユニット124は、PUの動き情報により示された基準ブロックに基づき、PUの予測画素ブロックを生成してよい。
PUがBスライスにある場合、動き推定ユニット122は、PUに対して、単方向インター予測、または双方向インター予測を実行してよい。PUに対して単方向インター予測を実行すべく、PUの基準ブロックのために、動き推定ユニット122は、第1の参照ピクチャリスト(「リスト0」)または第2の基準ピクチャリスト(「リスト1」)における基準ピクチャを検索してよい。動き推定ユニット122は、PUの動き情報として、基準ブロックを含む基準ピクチャの、リスト0またはリスト1における位置を示す基準ピクチャインデックスと、PUの画素ブロックと基準ブロックとの間の空間変位を示す動きベクトルと、基準ピクチャがリスト0またはリスト1にあるかを示す予測方向インジケータとを出力してよい。
PUに対して双方向インター予測を実行すべく、動き推定ユニット122は、PUの基準ブロックのためにリスト0における基準ピクチャを検索してよく、PUの別の基準ブロックのためにリスト1における基準ピクチャを検索してもよい。動き推定ユニット122は、基準ブロックを含む基準ピクチャの、リスト0およびリスト1における位置を示す基準ピクチャインデックスを生成してよい。加えて、動き推定ユニット122は、PUの基準ブロックと画素ブロックとの間の空間変位を示す動きベクトルを生成してよい。PUの動き情報は、PUの基準ピクチャインデックスおよび動きベクトルを含んでよい。動き補償ユニット124は、PUの動き情報により示される基準ブロックに基づき、PUの予測画素ブロックを生成してよい。
イントラ予測処理ユニット126は、PUに対してイントラ予測を実行することによって、PUの予測データを生成してよい。PUの予測データは、PUの予測画素ブロックおよび様々な構文要素を含んでよい。イントラ予測処理ユニット126は、Iスライス、Pスライス、およびBスライスにあるPUに対してイントラ予測を実行してよい。
PUに対してイントラ予測を実行すべく、イントラ予測処理ユニット126は、複数のイントラ予測モードを用いることによって、PUの予測データの複数の集合を生成してよい。イントラ予測モードを用いることによってPUの予測データの集合を生成すべく、イントラ予測処理ユニット126は、イントラ予測モードに関連付けられた方向において、PUのサンプルブロックにわたって隣接PUのサンプルブロックからサンプルを拡張してよい。左から右へおよび上から下への符号化順序がPU、CU、およびCTBに用いられることを仮定した場合、隣接PUは、PUの上、右上、左上、または左にあったよい。イントラ予測処理ユニット126は、様々な数量のイントラ予測モード、例えば、33個の方向性のイントラ予測モードを用いてよい。いくつかの例において、イントラ予測モードの量は、PUの画素ブロックのサイズに依存し得る。
予測処理ユニット100は、インター予測処理ユニット121により生成されたPUの予測データから、またはイントラ予測処理ユニット126により生成されたPUの予測データから、CUのPUの予測データを選択してよい。いくつかの例において、予測処理ユニット100は、予測データの集合のレート/歪みメトリックスに基づき、CUのPUの予測データを選択する。選択された予測データの予測画素ブロックは、本明細書において、選択された予測画像ブロックと称されてよい。
残差生成ユニット102は、CUの画素ブロックおよびCUのPUの選択された予測画像ブロックに基づき、CUの残差画素ブロックを生成してよい。例えば、残差生成ユニット102は、CUの残差画素ブロックを生成してよく、これにより、残差画素ブロックにおける各サンプルは、CUの画素ブロックにおけるサンプルと、CUのPUの選択された予測画像ブロックにおける対応するサンプルとの間の差に等しい値を有する。
予測処理ユニット100は、4分木区画を実行してCUの残差画素ブロックをサブブロックに区画してよい。各未区画の残差画素ブロックは、CUの異なるTUに関連付けられてよい。CUのTUに関連付けられる残差画素ブロックのサイズおよび位置は、CUのPUの画素ブロックのサイズおよび位置に基づいてよく、または基づかなくてよい。
TUの残差画素ブロックの画素はそれぞれ一輝度サンプルおよび2つのクロミナンスサンプルを含み得るので、TUのそれぞれは、一ブロックの輝度サンプルおよび2つのブロックのクロミナンスサンプルに関連付けられ得る。変換処理ユニット104は、1つまたは複数の変換をTUに関連付けられた残差サンプルブロックに適用することによって、CUの各TUの係数ブロックを生成してよい。変換処理ユニット104は、様々な変換を、TUに関連付けられた残差サンプルブロックに適用してよい。例えば、変換処理ユニット104は、ディスクリートコサイン変換(DCT)、方向性変換、または概念的に同様の変換を、残差サンプルブロックに適用してよい。
量子化ユニット106は、係数ブロックにおける係数を量子化してよい。量子化処理は、係数のうちの一部またはそのすべてに関連付けられたビット深さを低減し得る。例えば、nビットの係数は、量子化の間でmビットの係数まで切り下げられてよく、ここで、nは、mより大きい。量子化ユニット106は、CUに関連付けられた量子化パラメータ(QP)値に基づき、CUのTUに関連付けられた係数ブロックを量子化してよい。ビデオエンコーダ20は、CUに関連付けられたQP値を調整することによって、CUに関連付けられた係数ブロックに適用される量子化の程度を調整してよい。
係数ブロックから残差サンプルブロックを再構成すべく、逆量子化ユニット108および逆変換処理ユニット110は別々に、逆量子化および逆変換を係数ブロックに適用してよい。再構築ユニット112は、TUに関連付けられる再構築サンプルブロックを生成すべく、予測処理ユニット100により生成された1つ又は複数の予測サンプルブロックから、再構築残差サンプルブロックのサンプルを対応するサンプルに追加してよい。このようにCUの各TUに対してサンプルブロックを再構築することによって、ビデオエンコーダ20は、CUの画素ブロックを再構成してよい。
フィルタユニット113は、CUに関連付けられた画素ブロックにおけるブロッキングアーチファクトを低減すべく、デブロッキング動作を実行してよい。加えて、フィルタユニット113は、画素ブロックを復元すべく、予測処理ユニット100により決定されたSAOオフセットを再構築サンプルブロックに適用してよい。フィルタユニット113は、CTBのSAO構文要素のシーケンスを生成してよい。SAO構文要素は、規則的CABAC符号化ビンおよびバイパス符号化ビンを含んでよい。本願発明の技術によれば、シーケンス内において、色成分のバイパス符号化ビンは、同じ色成分の規則的CABAC符号化ビンのうちの2つの間に存在しない。
復号ピクチャバッファ114は、再構築画素ブロックを記憶してよい。インター予測ユニット121は、再構築画素ブロックを含む基準ピクチャを用いることによって、別のピクチャのPUに対してインター予測を実行してよい。加えて、イントラ予測処理ユニット126は、復号ピクチャバッファ114における再構築画素ブロックを用いることによって、CUとして同じピクチャにおける別のPUに対してイントラ予測を実行しよてい。
エントロピー符号化ユニット116は、ビデオエンコーダ20の別の機能的な構成要素からデータを受信してよい。例えば、エントロピー符号化ユニット116は、量子化ユニット106から係数ブロックを受信してよく、予測処理ユニット100から構文要素を受信してよい。エントロピー符号化ユニット116は、エントロピー符号化データを生成すべく、データに対して、1つまたは複数のエントロピー符号化動作を実行してよい。例えば、エントロピー符号化ユニット116は、コンテキスト適応型可変長符号化(CAVLC)操作、CABAC操作、可変長ツー可変長(V2V)符号化操作、構文ベースのコンテキスト適応型バイナリ算術符号化(SBAC)操作、可能性インターバル区画エントロピー(PIPE)符号化操作、または別の種類のエントロピー符号化動作を、データに対して実行してよい。特定の例において、エントロピー符号化ユニット116は、フィルタユニット113により生成されたSAO構文要素を符号化してよい。SAO構文要素の符号化の部分として、エントロピー符号化ユニット116は、規則的CABAC符号化エンジン118を用いることによって、SAO構文要素の規則的CABAC符号化ビンを符号化してよく、かつ、バイパス符号化エンジン120を用いることによって、バイパス符号化ビンを符号化してよい。
本願発明の技術によれば、インター予測ユニット121は、フレーム間の予測モードの候補の集合を決定する。このように、ビデオエンコーダ20は、ビデオエンコーダの例である。本願発明の技術によれば、ビデオエンコーダは、処理されるべき画像ユニットに隣接する隣接画像ユニットについての情報に従って、処理されるべき画像ユニットの予測モードの候補の集合が、処理されるべき画像ユニット、および処理されるべき画像ユニットの隣接画像ユニットのそれぞれの予測画像が同じアフィンモードを用いることによって取得されることを示すアフィンマージモードを含むかどうかを決定し、予測モードの候補の集合において、処理されるべき画像ユニットの予測モードを決定し、予測モードに従って、処理されるべき画像ユニットの予測画像を決定し、かつ、予測モードを示す第1の指示情報をビットストリームに符号化するよう構成される。
図3は、本願発明の1つまたは複数の技術に係る、ビデオデータを符号化するためのビデオエンコーダの例示的な動作200を示すフローチャートである。図3は、例として提供される。別の例において、本願発明の技術は、図3の例において示されている段階より多くの、より少ない、または異なる段階を用いることによって、実装されてよい。図3の例示的な方法によれば、ビデオエンコーダ20は、以下の段階を実行する。
S210.処理されるべき画像ユニットに隣接する隣接画像ユニットについての情報に従って、処理されるべき画像ユニットの予測モードの候補の集合がアフィンマージモードを含むかどうかを決定する段階である。
具体的には、図4に示されているように、ブロックA、B、C、D、およびEは、現在の符号化されるべきブロックの再構築ブロックに隣接し、符号化されるべきブロックの上、左、右上、左下、および左上にそれぞれ位置する。隣接再構築ブロックの符号化情報に従って、現在の符号化されるべきブロックの予測モードの候補の集合がアフィンマージモードを含むかどうかが決定されてよい。
本発明のこの実施形態において、図4は、例示目的のために、符号化されるべきブロックの隣接再構築ブロックの数量および位置を示すことが理解されるべきである。隣接再構築ブロックの数量は、5より多い又は少ない場合があり、このことについて限定されるものではない。
第1の可能な実装方式において、隣接再構築ブロックの中で予測種類がアフィン予測であるブロックが存在するかどうかが決定される。隣接再構築ブロックの中で予測種類がアフィン予測であるブロックが存在しない場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含まないか、または、隣接再構築ブロックの中で予測種類がアフィン予測であるブロックが存在する場合、図2に示されている符号化過程は、符号化されるべきブロックの予測モードの候補の集合がアフィンマージモードを含む場合、および、符号化されるべきブロックの予測モードの候補の集合がアフィンマージモードを含まない場合という2つの場合に従って、別々に実行される。1つ目の場合の符号化性能がより良いとき、符号化されるべきブロックの予測モードの候補の集合はアフィンマージモードを含み、第2の指示情報として仮定され得る指示情報が、1に設定されてビットストリームに符号化される。そうでない場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含まず、第2の指示情報は、0に設定されてビットストリームに符号化される。
第2の可能な実装方式において、隣接再構築ブロックの中で予測種類がアフィン予測であるブロックが存在するかどうかが決定される。隣接再構築ブロックの中で予測種類がアフィン予測であるブロックが存在しない場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含まないか、または、隣接再構築ブロックの中で予測種類がアフィン予測であるブロックが存在する場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含む。
第3の可能な実装方式において、隣接再構築ブロックは、複数のアフィンモードを含み、アフィンモードは、例えば、第1のアフィンモード、または第2のアフィンモードを含み、それに対応して、アフィンマージモードは、第1のアフィンモードをマージする第1のアフィンマージモード、または第2のアフィンモードをマージする第2のアフィンマージモードを含む。隣接再構築ブロックの中で、第1のアフィンモード、第2のアフィンモード、および非アフィンモードの数量が別々に、統計収集を通じて取得される。隣接再構築ブロックの中で、第1のアフィンモードが数量において1番目にランクするとき、予測モードの候補の集合は、第1のアフィンマージモードを含み、第2のアフィンマージモードを含まない。隣接再構築ブロックの中で、第2のアフィンモードが数量において1番目にランクするとき、予測モードの候補の集合は、第2のアフィンマージモードを含み、第1のアフィンマージモードを含まない。隣接再構築ブロックの中で、非アフィンモードが数量において1番目にランクするとき、予測モードの候補の集合は、アフィンマージモードを含まない。
あるいは、第3の可能な実装方式において、隣接再構築ブロックの中で、第1のアフィンモードが数量において1番目にランクするとき、予測モードの候補の集合は、第1のアフィンマージモードを含み、第2のアフィンマージモードを含まない。隣接再構築ブロックの中で、第2のアフィンモードが数量において1番目にランクするとき、予測モードの候補の集合は、第2のアフィンマージモードを含み、第1のアフィンマージモードを含まない。隣接再構築ブロックの中で、非アフィンモードが数量において1番目にランクするとき、隣接再構築ブロックの中で、第1のアフィンモードまたは第2のアフィンモードが数量において2番目にランクするかが統計収集を通じて得られる。隣接再構築ブロックの中で、第1のアフィンモードが数量において2番目にランクするとき、予測モードの候補の集合は、第1のアフィンマージモードを含み、第2のアフィンマージモードを含まない。隣接再構築ブロックの中で、第2のアフィンモードが数量において2番目にランクするとき、予測モードの候補の集合は、第2のアフィンマージモードを含み、第1のアフィンマージモードを含まない。
第4の可能な実装方式において、(1)隣接再構築ブロックの中で、予測種類がアフィンモードであるブロックが存在するかどうか、および(2)アフィンモードにおける隣接ブロックの幅および高さが符号化されるべきブロックの幅および高さより小さいかどうかといった2つの条件が満たされるかどうかが決定される。いずれの条件も満たされない場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含まない。2つの条件が両方とも満たされた場合、図2において示されている符号化過程は別々に、符号化されるべきブロックの予測モードの候補の集合がアフィンマージモードを含む場合、および、符号化されるべきブロックの予測モードの候補の集合がアフィンマージモードを含まない場合といった2つの場合に従って、実行される。1つ目の場合の符号化性能がより良いとき、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含み、第3の指示情報として仮定され得る指示情報が1に設定されてビットストリームに符号化される。そうでない場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含まず、第3の指示情報は、0に設定されたビットストリームに符号化される。
本発明のこの実施形態の決定条件(2)は、アフィンモードにおける隣接ブロックの幅が符号化されるべきブロックの幅より小さく、アフィンモードにおける隣接ブロックの高さが符号化されるべきブロックの高さより小さいことを意味することが理解されるべきである。別の実施形態において、代わりに、決定条件は、アフィンモードにおける隣接ブロックの幅が、符号化されるべきブロックの幅より小さいか、または、アフィンモードにおける隣接ブロックの高さが符号化されるべきブロックの高さより小さくてよく、このことについて限定されるものではない。
第5の可能な実装方式において、(1)隣接再構築ブロックの中で予測種類がアフィンモードであるブロックが存在するかどうか、および(2)がアフィンモードにおける隣接ブロックの幅および高さが符号化されるべきブロックの幅および高さより小さいかどうかといった2つの条件が満たされるかどうかが決定される。いずれの条件も満たされない場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含まない。2つの条件が両方とも満たされた場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含む。
本発明のこの実施形態において、隣接再構築ブロックの予測種類およびサイズは、現在の符号化されるべきブロックの予測モードの候補の集合を決定するためのベースとして用いられ、解析によって取得される隣接再構築ブロックの属性情報はさらに決定するために用いられることが、理解されるべきである。このことは本明細書において限定されない。
本発明のこの実施形態における、第2の可能な実装方式などの様々な可能な実装方式において、例示目的のために、以下の決定基準が、隣接再構築ブロックの中で予測種類がアフィン予測であるブロックが存在するかどうかを決定するために用いられてよいことがさらに理解されるべきである。例示目的のために、少なくとも2つの隣接ブロックの予測種類がアフィンモードである場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含み、そうでない場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含まない。あるいは、予測種類がアフィンモードである隣接ブロックの数量が、少なくとも3つ、または、少なくとも4つであってもよく、このことについて限定されるものではない。
本発明のこの実施形態における様々な可能な実装方式において、例示目的のために、例えば、第5の可能な実装方式において、(1)隣接再構築ブロックの中で予測種類がアフィンモードであるブロックが存在するかどうか、および(2)アフィンモードにおける隣接ブロックの幅および高さが符号化されるべきブロックの幅および高さより小さいかどうかといった2つの条件が満たされるかどうかが決定されることがさらに理解されるべきである。例示目的のために、第2の決定条件は、アフィンモードにおける隣接ブロックの幅および高さが符号化されるべきブロックの幅および高さの1/2、1/3、または1/4未満かどうかであってもよく、このことについて限定されるものではない。
本発明のこの実施形態において、指示情報が0または1に設定されることが例示目的のものであることがさらに理解されるべきである。あるいは、逆の設定が実行されてよい。例示目的のために、例えば、第1の可能な実装方式において、隣接再構築ブロックの中で、予測種類がアフィン予測であるブロックが存在するかどうかが決定され得る。隣接再構築ブロックの中で予測種類がアフィン予測であるブロックが存在しない場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含まないか、または、隣接再構築ブロックの中で予測種類がアフィン予測であるブロックが存在する場合、図2に示されている符号化過程は、符号化されるべきブロックの予測モードの候補の集合がアフィンマージモードを含む場合、および符号化されるべきブロックの予測モードの候補の集合がアフィンマージモードを含まない場合といった2つの場合に従って、別々に実行される。1つ目の場合の符号化性能がより良いとき、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含み、第2の指示情報として仮定され得る指示情報が0に設定されてビットストリームに符号化される。そうでない場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含まず、第2の指示情報は、1に設定されてビットストリームに符号化される。
S220.予測モードの候補の集合において、処理されるべき画像ユニットの予測モードを決定する段階である。
予測モードの候補の集合は、S210において決定された予測モードの候補の集合である。符号化されるべきブロックの予測モードとして光符号化性能を有するモードを選択すべく、予測モードの候補の集合における各予測モードは順次に、図2において示されている符号化過程を実行するために用いられる。
本発明のこの実施形態において、図2に示されている符号化過程を実行する目的は、光符号化性能を有する予測モードを選択するためであることが理解されるべきである。選択過程において、予測モードの性能/コスト比は、比較されてよい。性能が画像復元の品質により示されており、コストが符号化のビットレートにより示される。あるいは、予測モードの性能またはコストのみが比較されてよい。それに対応して、図2に示されているすべての符号化段階を完了させてよいか、または、比較する必要のあるインジケータが取得された後に、符号化過程を停止する。例えば、予測モードが性能のみに関して比較される場合、予測ユニットがその段階を実行した後に、符号化過程を停止することができ、このことについて限定されるものではない。
S230.予測モードに従って、処理されるべき画像ユニットの予測画像を決定する段階である。
上述に引用されるH.265規格および第CN201010247275.7号などの出願書類は、符号化されるべきブロックの予測画像が、並進モデルの予測モード、アフィン予測モード、アフィンマージモード、または同様のものを含む予測モードに従って生成されるプロセスを詳細に説明しており、詳細はここでは再び説明しない。
S240.第1の指示情報をビットストリームに符号化する段階である。
S220において決定された予測モードは、ビットストリームに符号化される。該段階は、S220の後の任意の時点において実行されてよく、段階が復号側により第1の指示情報を復号する段階に対応する限り、段階の順序について特定の限定はされないことが理解されるべきである。
図5は、本願発明の1つまたは複数の技術に係る、ビデオデータを符号化するための別のビデオエンコーダ40の例を示すブロック図である。
ビデオエンコーダ40は、第1の決定モジュール41と、第2の決定モジュール42と、第3の決定モジュール43と、符号化モジュール44とを含む。
第1の決定モジュール41は、処理されるべき画像ユニットに隣接する隣接画像ユニットについての情報に従って、処理されるべき画像ユニットの予測モードの候補の集合がアフィンマージモードを含むかどうかを決定するS210を実行するよう構成される。
第2の決定モジュール42は、予測モードの候補の集合において、処理されるべき画像ユニットの予測モードを決定するS220を実行するよう構成される。
第3の決定モジュール43は、予測モードに従って、処理されるべき画像ユニットの予測画像を決定するS230を実行するよう構成される。
符号化モジュール44は、第1の指示情報をビットストリームに符号化するS240を実行するよう構成される。
隣接ブロックの動き情報は相関しているので、現在のブロックと隣接ブロックとは同じまたは同様の予測モードを有する可能性は非常に高い。本発明のこの実施形態において、現在のブロックの予測モード情報は、隣接ブロックについての情報を決定することによって導出され、予測モードを符号化するビットレートを低減し、それにより、符号化効率を向上させる。
図6は、本願発明の1つまたは複数の技術に従って、ビデオデータを符号化するためのビデオエンコーダの例示的な動作300を示すフローチャートである。図5は、例として提供される。別の例において、本願発明の技術は、図5の例に示されている段階より多くの、より少なお、または異なる段階を用いることによって実装されてよい。図5の例示的な方法によれば、ビデオエンコーダ20は、以下の段階を実行する。
S310.第1の処理されるべき画像領域の予測モードの候補の集合の指示情報を符号化する段階である。
並進モードの候補の集合が第1の処理されるべき画像領域のモードの候補の集合として用いられる場合、第1の指示情報は、0に設定され、第1の指示情報は、ビットストリームに符号化され、ここで、並進モードは、並進モデルを用いることによって予測画像を取得する予測モードを示す。並進モードの候補の集合と、アフィンモードの候補の集合とが、第1の処理されるべき画像領域のモードの候補の集合として用いられる場合、第1の指示情報は、1に設定され、第1の指示情報は、ビットストリームに符号化され、ここで、アフィンモードは、アフィンモデルを用いることによって予測画像を取得する予測モードを示す。第1の処理されるべき画像領域は、画像フレームグループ、画像フレーム、画像タイル集合、画像スライス集合、画像タイル、画像スライス、画像符号化ユニット集合、または画像符号化ユニットのうちの任意の1つであってよい。それに対応して、第1の指示情報は、例えば、ビデオパラメータ集合(VPS)、シーケンスパラメータ集合(SPS)、補足増進情報(SEI)、もしくは画像フレームヘッダ、または例えば、画像パラメータ集合(PPS)、画像タイル集合のヘッダ、画像スライス集合のヘッダ、もしくは画像タイルのヘッダ、または例えば、画像タイルヘッダ(タイルヘッダ)、画像スライスヘッダ(スライスヘッダ)、画像符号化ユニット集合のヘッダ、または画像符号化ユニットのヘッダなどの、画像フレームグループのヘッダに符号化される。
この段階における第1の処理されるべき画像領域は、予め構成されてよく、または、符号化過程において適応的に決定されてよいことが理解されるべきである。第1の処理されるべき画像領域の範囲の表示は、符号化/復号側のプロトコルから分かり得る。または、第1の処理されるべき画像領域の範囲は、伝送のためにビットストリームに符号化されてよく、このことについて限定されるものではない。
予測モードの候補の集合は、予め構成されてよく、または、符号化性能の比較後に決定されてよく、このことについて限定されるものではないことがさらに理解されるべきである。
本発明のこの実施形態において、指示情報が0または1に設定されることは例示目的のものであることがさらに理解されるべきである。あるいは、逆の設定は実行されてよい。
S320.第1の処理されるべき画像領域における処理されるべきユニットに対して、第1の処理されるべき画像領域の予測モードの候補の集合において、処理されるべき画像ユニットの予測モードを決定する段階である。
具体的な方法は、S220と同様であり、詳細はここでは再び説明しない。
S330.予測モードに従って、処理されるべき画像ユニットの予測画像を決定する段階である。
具体的な方法は、S230と同様であり、詳細はここでは再び説明しない。
S340.処理されるべきユニットのために選択された予測モードをビットストリームに符号化する段階である。
具体的な方法は、S240と同様であり、詳細はここでは再び説明しない。
図7は、本願発明の1つまたは複数の技術に従って、ビデオデータを符号化するための別のビデオエンコーダ50の例を示すブロック図である。
ビデオエンコーダ50は、第1の符号化モジュール51と、第1の決定モジュール52と、第2の決定モジュール53と、第2の符号化モジュール54とを含む。
第1の符号化モジュール51は、第1の処理されるべき画像領域の予測モードの候補の集合の指示情報を符号化するS310を実行するよう構成される。
第1の決定モジュール52は、第1の処理されるべき画像領域における処理されるべきユニットに対して、第1の処理されるべき画像領域の予測モードの候補の集合において、処理されるべき画像ユニットの予測モードを決定するS320を実行するよう構成される。
第2の決定モジュール53は、予測モードに従って、処理されるべき画像ユニットの予測画像を決定するS330を実行するよう構成される。
第2の符号化モジュール54は、処理されるべきユニットのために選択された予測モードをビットストリームに符号化するS340を実行するよう構成される。
隣接ブロックの動き情報は相関しているので、並進運動のみが存在し、かつ、同じ領域においてアフィン運動が存在しない可能性が非常に高い。本発明のこの実施形態において、領域レベルをマーキングする予測モードの候補の集合が設定され、冗長モードを符号化するビットレートを回避し、それにより、符号化効率を向上させる。
図8は、本願発明の技術を実装するよう構成されるビデオデコーダ30の例を示すブロック図である。図8は、説明目的のために提供されてより、本願発明において広く例示され説明されている技術を限定するものとして解釈されるべきではない。説明目的のために、ビデオデコーダ30は、HEVC符号化の画像予測において、本願発明において説明される。しかしながら、本願発明の技術は、別の符号化規格または方法に適用可能である。
図8の例において、ビデオデコーダ30は、エントロピー復号ユニット150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構築ユニット158と、フィルタユニット159と、復号ピクチャバッファ160とを含む。予測処理ユニット152は、動き補償ユニット162とイントラ予測処理ユニット164とを含む。エントロピー復号ユニット150は、規則的CABAC符号化エンジン166とバイパス符号化エンジン168とを含む。別の例において、ビデオデコーダ30は、より多くの、より少ない、または異なる機能的構成要素を含んでよい。
ビデオデコーダ30は、ビットストリームを受信してよい。エントロピー復号ユニット150は、ビットストリームから構文要素を抽出すべく、ビットストリームを解析してよい。ビットストリームの解析の部分として、エントロピー復号ユニット150は、ビットストリームにおけるエントロピー符号化された構文要素をエントロピー復号してよい。予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構築ユニット158と、フィルタユニット159とは、ビットストリームから抽出された構文要素に基づき、復号されたビデオデータを生成し得る。
ビットストリームは、CTBの符号化されたSAO構文要素のシーケンスを含んでよい。SAO構文要素は、規則的CABAC符号化ビンとバイパス符号化ビンとを含んでよい。本願発明の技術によれば、符号化されたSAO構文要素のシーケンスにおいて、バイパス符号化ビンは、規則的CABAC符号化ビンのうちの2つの間に存在しない。エントロピー復号ユニット150は、SAO構文要素を復号し得る。SAO構文要素の符号化の部分として、エントロピー復号ユニット150は、規則的CABAC符号化エンジン166を用いることによって規則的CABAC符号化ビンを復号してよく、バイパス符号化エンジン168を用いることによってバイパス符号化ビンを復号してよい。
加えて、ビデオデコーダ30は、非区画CUに対して再構築動作を実行してよい。非区画CUに対して再構築動作を実行すべく、ビデオデコーダ30は、CUの各TUに対して再構築動作を実行してよい。CUの各TUに対して再構築動作を実行することによって、ビデオデコーダ30は、CUと関連付けられた残差画素ブロックを再構成し得る。
CUのTUに対する再構築動作の実行の部分として、逆量子化ユニット154は、TUに関連付けられた係数ブロックを逆量子化(すなわち、量子化解除)してよい。逆量子化ユニット154は、TUの、CUに関連付けられたQP値を用いることによって量子化の程度を決定し、逆量子化ユニット154により適用されるべき逆量子化度を決定してよい。
逆量子化ユニット154が係数ブロックを逆量子化した後に、逆変換処理ユニット156は、TUに関連付けられる残差サンプルブロックを生成すべく、1つまたは複数の逆変換を係数ブロックに適用してよい。例えば、逆変換処理ユニット156は、逆DCT、逆整数変換、逆カルーネンレーベ(Karhunen−Loeve)変換(KLT)、逆回転変換、逆方向性変換、または別の逆変換を係数ブロックに適用してよい。
PUがイントラ予測によって符号化された場合、イントラ予測処理ユニット164は、PUの予測サンプルブロックを生成すべく、イントラ予測を実行してよい。イントラ予測処理ユニット164は、空間的に隣接するPUの画素ブロックに基づき、PUの予測画素ブロックを生成すべく、イントラ予測モードを用いてよい。イントラ予測処理ユニット164は、解析によってビットストリームから取得された1つまたは複数の構文要素に基づき、PUのイントラ予測モードを決定してよい。
動き補償ユニット162は、ビットストリームから抽出された構文要素に基づき、第1の参照ピクチャリスト(リスト0)および第2の基準ピクチャリスト(リスト1)を構築してよい。加えて、PUがインター予測によって符号化された場合、エントロピー復号ユニット150は、PUの動き情報を抽出してよい。動き補償ユニット162は、PUの動き情報に基づき、PUの1つまたは複数の基準ブロックを決定してよい。動き補償ユニット162は、PUの1つまたは複数の基準ブロックに基づき、PUの予測画素ブロックを生成してよい。
再構築ユニット158は、CUの画素ブロックを再構成すべく、適用可能な場合、CUのTUに関連付けられた残差画素ブロックと、CUのPUの予測画素ブロック(すなわち、イントラ予測データまたはインター予測データ)とを用いてよい。特に、再構築ユニット158は、CUの画素ブロックを再構成すべく、残差画素ブロックのサンプルを、予測画素ブロックの対応するサンプルに追加してよい。
フィルタユニット159は、CTBのCUの画素ブロックに関連付けられるブロッキングアーチファクトを低減すべく、デブロッキング動作を実行してよい。加えて、フィルタユニット159は、ビットストリームから解析されたSAO構文要素に基づき、CTBの画素ブロックを変更してよい。例えば、フィルタユニット159は、CTBのSAO構文要素に基づいて値を決定し、決定された値をCTBの再構築画素ブロックにおけるサンプルに追加してよい。ピクチャのCTBの画素ブロックのうちの少なくとも一部を変更することによって、フィルタユニット159は、SAO構文要素に基づき、ビデオデータの再構築されたピクチャを変更してよい。
ビデオデコーダ30は、CUの画素ブロックを復号ピクチャバッファ160に記憶してよい。復号ピクチャバッファ160は、後続動き補償、イントラ予測、および(図1の表示装置32などの)表示装置上の提示のために基準ピクチャを提供してよい。例えば、ビデオデコーダ30は、復号ピクチャバッファ160における画素ブロックに基づき、別のCUのPUに対して、イントラ予測またはインター予測操作を実行してよい。
本願発明の技術に従って、予測処理ユニット152は、フレーム間の予測モードの候補の集合を決定する。このように、ビデオデコーダ30は、ビデオデコーダの一例である。本願発明の技術によれば、ビデオデコーダは、処理されるべき画像ユニットに隣接する隣接画像ユニットについての情報に従って、処理されるべき画像ユニットの予測モードの候補の集合が、処理されるべき画像ユニットと、処理されるべき画像ユニットの隣接画像ユニットとのそれぞれの予測画像が同じアフィンモードを用いることによって取得されることを示すアフィンマージモードを含むかどうかを決定し、第1の指示情報を取得すべく、ビットストリームを解析し、予測モードの候補の集合において、第1の指示情報に従って、処理されるべき画像ユニットの予測モードを決定し、かつ、予測モードに従って、処理されるべき画像ユニットの予測画像を決定するよう構成される。
図9は、本願発明の1つまたは複数の技術に従って、ビデオデータを復号するためのビデオデコーダの例示的な動作400を示すフローチャートである。図9は、例として提供される。別の例において、本願発明の技術は、図9の例において示されている段階より多くの、より少ない、または異なる段階を用いることによって実装されてよい。図9の例示的な方法によれば、ビデオデコーダ30は、以下の段階を実行する。
S410.処理されるべき画像ユニットに隣接する隣接画像ユニットについての情報に従って、処理されるべき画像ユニットの予測モードの候補の集合がアフィンマージモードを含むかどうかを決定する段階である。
具体的には、図4に示されているように、ブロックA、B、C、D、およびEは、現在の符号化されるべきブロックの隣接再構築ブロックであり、符号化されるべきブロックの上、左、右上、左下、および左上にそれぞれ位置する。隣接再構築ブロックの符号化情報に従って、現在の符号化されるべきブロックの予測モードの候補の集合がアフィンマージモードを含むかどうかが決定されてよい。
本発明のこの実施形態において、図4は、例示目的のために、符号化されるべきブロックの隣接再構築ブロックの量および位置を示すことが理解されるべきである。隣接再構築ブロックの量は、5より多い又は少ない場合があり、このことについて限定されるものではない。
第1の可能な実装方式において、隣接再構築ブロックの中で予測種類がアフィン予測であるブロックが存在するかどうかが決定される。隣接画像ユニットのうちの少なくとも1つの予測モードがアフィンモデルを用いることによって予測画像を取得している場合、ビットストリームは解析され、第2の指示情報を取得する。第2の指示情報が1であるとき、予測モードの候補の集合は、アフィンマージモードを含むか、または、第2の指示情報が0であるとき、予測モードの候補の集合は、アフィンマージモードを含まないか、そうでない場合、予測モードの候補の集合は、アフィンマージモードを含まない。
第2の可能な実装方式において、隣接再構築ブロックの中で、予測種類がアフィン予測であるブロックが存在するかどうかが決定される。隣接再構築ブロックの中で、予測種類がアフィン予測であるブロックが存在しない場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含まないか、または、隣接再構築ブロックの中で、予測種類がアフィン予測であるブロックが存在する場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含む。
第3の可能な実装方式において、隣接再構築ブロックは、複数のアフィンモードを含み、アフィンモードは、例えば、第1のアフィンモードまたは第2のアフィンモードを含み、それに対応して、アフィンマージモードは、第1のアフィンモードをマージする第1のアフィンマージモード、または第2のアフィンモードをマージする第2のアフィンマージモードを含む。隣接再構築ブロックの中で、第1のアフィンモード、第2のアフィンモード、および非アフィンモードの数量は別々に、統計収集を通じて取得される。隣接再構築ブロックの中で、第1のアフィンモードが数量において1番目にランクするとき、予測モードの候補の集合は、第1のアフィンマージモードを含み、第2のアフィンマージモードを含まない。隣接再構築ブロックの中で、第2のアフィンモードが数量において1番目にランクするとき、予測モードの候補の集合は、第2のアフィンマージモードを含み、第1のアフィンマージモードを含まない。隣接再構築ブロックの中で、非アフィンモードが数量において1番目にランクするとき、予測モードの候補の集合は、アフィンマージモードを含まない。
あるいは、第3の可能な実装方式において、隣接再構築ブロックの中で、第1のアフィンモードが数量において1番目にランクするとき、予測モードの候補の集合は、第1のアフィンマージモードを含み、第2のアフィンマージモードを含まない。隣接再構築ブロックの中で、第2のアフィンモードが数量において1番目にランクするとき、予測モードの候補の集合は、第2のアフィンマージモードを含み、第1のアフィンマージモードを含まない。隣接再構築ブロックの中で、非アフィンモードが数量において1番目にランクするとき、隣接再構築ブロックの中で、第1のアフィンモードまたは第2のアフィンモードが数量において2番目にランクするかが、統計収集を通じて得られる。隣接再構築ブロックの中で、第1のアフィンモードが数量において2番目にランクするとき、予測モードの候補の集合は、第1のアフィンマージモードを含み、第2のアフィンマージモードを含まない。隣接再構築ブロックの中で、第2のアフィンモードが数量において2番目にランクするとき、予測モードの候補の集合は、第2のアフィンマージモードを含み、第1のアフィンマージモードを含まない。
第4の可能な実装方式において、(1)隣接再構築ブロックの中で予測種類がアフィンモードであるブロックが存在するかどうか、および(2)アフィンモードにおける隣接ブロックの幅および高さが符号化されるべきブロックの幅および高さより小さいかどうかといった2つの条件が満たされるかが決定される。いずれの条件も満たされない場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含まない。2つの条件が両方とも満たされる場合、ビットストリームは解析され、第3の指示情報を取得する。第3の指示情報が1であるとき、予測モードの候補の集合は、アフィンマージモードを含むか、または、第3の指示情報が0であるとき、予測モードの候補の集合は、アフィンマージモードを含まないか、そうでない場合、予測モードの候補の集合は、アフィンマージモードを含まない。
本発明のこの実施形態において、決定条件(2)は、アフィンモードにおける隣接ブロックの幅が、符号化されるべきブロックの幅より小さく、アフィンモードにおける隣接ブロックの高さが符号化されるべきブロックの高さより小さいことを意味することが理解されるべきである。別の実施形態において、あるいは、決定条件は、アフィンモードにおける隣接ブロックの幅が符号化されるべきブロックの幅より小さいこと、または、アフィンモードにおける隣接ブロックの高さが符号化されるべきブロックの高さより小さいことであってよく、このことについて限定されるものではない。
第5の可能な実装方式において、(1)隣接再構築ブロックの中で予測種類がアフィンモードであるブロックが存在するかどうか、および(2)アフィンモードにおける隣接ブロックの幅および高さが、符号化されるべきブロックの幅および高さより小さいかどうかといった2つの条件が満たされるかどうかが決定される。いずれの条件も満たされない場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含まない。2つの条件が両方とも満たされる場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含む。
本発明のこの実施形態において、隣接再構築ブロックの予測種類およびサイズは、現在の符号化されるべきブロックの予測モードの候補の集合を決定するベースとして用いられ、方法が符号化側に対応する限り、解析によって取得された隣接再構築ブロックの属性情報は、決定によりさらに用いられてよいことが理解されるべきである。このことについて、本明細書において限定されない。
本発明のこの実施形態における、様々な可能な実装方式において、例示目的のために、例えば、第2の可能な実装方式のように、以下の決定基準は、隣接再構築ブロックの中で予測種類がアフィン予測であるブロックが存在するかどうかを決定するために用いられてよいことが、さらに理解されるべきである。例示目的のために、少なくとも2つの隣接ブロックの予測種類がアフィンモードである場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含む。そうでない場合、符号化されるべきブロックの予測モードの候補の集合は、アフィンマージモードを含まない。あるいは、予測種類がアフィンモードである隣接ブロックの数量は、これが符号化側に対応する限り、少なくとも3つ、または少なくとも4つであってもよく、このことについては限定されるものではない。
本発明のこの実施形態における様々な可能な実装方式において、例示目的のために、例えば、第5の可能な実装方式のように、(1)隣接再構築ブロックの中で予測種類がアフィンモードであるブロックが存在するかどうか、および(2)アフィンモードにおける隣接ブロックの幅および高さが符号化されるべきブロックの幅および高さより小さいかどうかといった2つの条件が満たされるかどうかが決定されることが、さらに理解されるべきである。例示目的のために、第2の決定条件は、これが符号化側に対応する限り、アフィンモードにおける隣接ブロックの幅および高さが、符号化されるべきブロックの幅および高さの1/2、1/3、または1/4未満であるかどうかことであってもよく、このことについて限定されるものではない。
本発明のこの実施形態において、0または1に設定されている指示情報は、符号化側に対応することがさらに理解されるべきである。
S420.第1の指示情報を取得すべく、ビットストリームを解析する段階である。
第1の指示情報は、復号化されるべきブロックの予測モードのインデックス情報を示す。この段階は、符号化側の段階S240に対応する。
S430.予測モードの候補の集合において、第1の指示情報に従って、処理されるべき画像ユニットの予測モードを決定する段階である。
候補予測モードの異なる集合は、予測モードの異なるリストに対応する。S410において決定された予測モードの候補の集合に対応する予測モードのリストは、S420において取得されたインデックス情報に従って検索され、これにより、復号化されるべきブロックの予測モードを見つけ出すことができる。
S440.予測モードに従って、処理されるべき画像ユニットの予測画像を決定する段階である。
具体的な方法は、S230と同様であり、詳細はここでは再び説明しない。
図10は、本願発明の1つまたは複数の技術に係る、ビデオデータを復号するための別のビデオデコーダ60の例を示すブロック図である。
ビデオデコーダ60は、第1の決定モジュール61と、解析モジュール62と、第2の決定モジュール63と、第3の決定モジュール64とを含む。
第1の決定モジュール61は、処理されるべき画像ユニットに隣接する隣接画像ユニットについての情報に従って、処理されるべき画像ユニットの予測モードの候補の集合がアフィンマージモードを含むかどうかを決定するS410を実行するよう構成される。
解析モジュール62は、第1の指示情報を取得すべく、ビットストリームを解析するS420を実行するよう構成される。
第2の決定モジュール63は、予測モードの候補の集合において、第1の指示情報に従って、処理されるべき画像ユニットための予測モードを決定するS430を実行するよう構成される。
第3の決定モジュール64は、予測モードに従って、処理されるべき画像ユニットの予測画像を決定するS440を実行するよう構成される。
隣接ブロックの動き情報は相関しているので、現在のブロックと隣接ブロックとは同じまたは同様の予測モードを有する可能性が非常に高い。本発明のこの実施形態において、現在のブロックの予測モード情報は、隣接ブロックについての情報を決定することによって導出され、予測モードを符号化するビットレートを低減し、それにより、符号化効率を向上させる。
図11は、本願発明の1つまたは複数の技術に係る、ビデオデータを復号するためのビデオデコーダの例示的な動作500を示すフローチャートである。図11は、例として提供される。別の例において、本願発明の技術は、図11の例に示されている段階より多くの、より少ない、または異なる段階を用いることによって実装されてよい。図11の例示的な方法によれば、ビデオデコーダ20は、以下の段階を実行する。
S510.第1の指示情報を取得すべく、ビットストリームを解析する段階である。
第1の指示情報は、第1の処理されるべき画像領域のモードの候補の集合がアフィン運動モデルを含むかどうかを示す。この段階は、符号化側の段階S310に対応する。
S520.第1の指示情報に従って、第1の処理されるべき画像領域のモードの候補の集合を決定する段階である。
第1の指示情報が0であるとき、並進モードの候補の集合は、第1の処理されるべき画像領域のモードの候補の集合として用いられ、ここで、並進モードは、並進モデルを用いることによって予測画像を取得する予測モードを示す。第1の指示情報が1であるとき、並進モードの候補の集合と、アフィンモードの候補の集合とが、第1の処理されるべき画像領域のモードの候補の集合として用いられ、ここで、アフィンモードは、アフィンモデルを用いることによって予測画像を取得する予測モードを示す。第1の処理されるべき画像領域は、画像フレームグループ、画像フレーム、画像タイル集合、画像スライス集合、画像タイル、画像スライス、画像符号化ユニット集合、または画像符号化ユニットのうちの任意の1つであってよい。それに対応して、第1の指示情報は、例えば、ビデオパラメータ集合(VPS)、シーケンスパラメータ集合(SPS)、補足増進情報(SEI)、または画像フレームヘッダ、もしくは例えば、画像パラメータ集合(PPS)、画像タイル集合のヘッダ、画像スライス集合のヘッダ、または画像タイルのヘッダ、もしくは例えば、画像タイルヘッダ(タイルヘッダ)、画像スライスヘッダ(スライスヘッダ)、画像符号化ユニット集合のヘッダ、または画像符号化ユニットのヘッダなどの、画像フレームグループのヘッダに符号化される。
該段階における第1の処理されるべき画像領域は、予め構成されてよく、または、符号化過程において適応的に決定されてよいことが理解されるべきである。第1の処理されるべき画像領域の範囲の表示は、符号化/復号側のプロトコルから分かり得る。または、これが符号化側に対応する限り、第1の処理されるべき画像領域の範囲は、符号化側からビットストリームにおいて受信され得て、このことについて限定されるものではない。
本発明のこの実施形態において、指示情報は、0または1に設定されることは、これが符号化側に対応する限り、例示目的のものであることがさらに理解されるべきである。
S530.第2の指示情報を取得すべく、ビットストリームを解析する段階である。
第2の指示情報は、第1の処理されるべき画像領域における処理されるべきブロックの予測モードを示す。この段階は、符号化側の段階S340に対応する。
S540.第1の処理されるべき画像領域の予測モードの候補の集合において、第2の指示情報に従って、処理されるべき画像ユニットの予測モードを決定する段階である。
具体的な方法はS320と同様であり、詳細はここでは再び説明しない。
S550.予測モードに従って、処理されるべき画像ユニットの予測画像を決定する段階である。
具体的な方法は、S330と同様であり、詳細はここでは再び説明しない。
図12は、本願発明の1つまたは複数の技術に係る、ビデオデータを復号するための別のビデオデコーダ70の例を示すブロック図である。
ビデオデコーダ70は、第1の解析モジュール71と、第1の決定モジュール72と、第2の解析モジュール73と、第2の決定モジュール74と、第3の決定モジュール75とを含む。
第1の解析モジュール71は、第1の指示情報を取得すべく、ビットストリームを解析するS510を実行するよう構成される。
第1の決定モジュール72は、第1の指示情報に従って、第1の処理されるべき画像領域のモードの候補の集合を決定するS520を実行するよう構成される。
第2の解析モジュール73は、第2の指示情報を取得すべく、ビットストリームを解析するS530を実行するように構成される。
第2の決定モジュール74は、第1の処理されるべき画像領域の予測モードの候補の集合において、第2の指示情報に従って、処理されるべき画像ユニットの予測モードを決定するS540を実行するよう構成される。
第3の決定モジュール75は、予測モードに従って、処理されるべき画像ユニットの予測画像を決定するS550を実行するよう構成される。
隣接ブロックの動き情報は相関しているので、並進運動のみが存在し、かつ、同じ領域においてアフィン運動が存在しない可能性が非常に高い。本発明のこの実施形態において、領域レベルをマーキングする予測モードの候補の集合が設定され、冗長モードを符号化するビットレートを回避し、それにより、符号化効率を向上させる。
1つ又は複数の実施形態において、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせにより実装されてよい。機能がソフトウェアにより実装された場合、機能は、1つまたは複数の命令としてコンピュータ可読媒体に記憶されてよく、または、コンピュータ可読媒体により符号化もしくは送信されてよく、ハードウェアに基づき、処理ユニットにより実行される。コンピュータ可読媒体は、(データ記録媒体などの有形媒体に対応する)コンピュータ可読記憶媒体、または通信媒体を含んでよい。通信媒体は、例えば、コンピュータプログラムを用いることによって、通信プロトコルに従って、ある場所から別の場所へのデータの伝送を促進する任意の媒体を含む。この方式において、コンピュータ可読媒体は概して、(1)非一時的な有形コンピュータ可読記憶媒体、または(2)信号またはキャリアなどの通信媒体に対応してよい。データ記録媒体は、本願発明において説明されている技術を実装するための、命令、コード、および/またはデータ構造を読み出すべく、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによりアクセスされることができる任意の利用できる媒体であってよい。コンピュータプログラム製品は、コンピュータ可読媒体を含んでよい。
限定ではなく、例として、いくつかのコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROM、別の光ディスクストレージ、または磁気ディスクストレージ、別の磁気ストレージ装置、フラッシュメモリ、または、命令もしくはデータ構造の形態において必要とされるプログラムコードを記憶でき、コンピュータによりアクセスされることができる任意の他の媒体を含んでよい。加えて、任意の接続は、コンピュータ可読媒体と適切に称されてよい。例えば、命令が、同軸ケーブル、光ケーブル、ツイストペア、デジタル加入者回線(DSL)、または無線技術(例えば、赤外線、無線、またはマイクロ波)を用いることによって、ウェブサイト、サーバ、または別のリモートソースから伝送される場合、該同軸ケーブル、光ケーブル、ツイストペア、DSL、または無線技術(例えば、赤外線、無線、またはマイクロ波)は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記録媒体は、接続、キャリア、信号、または別の一時的な媒体を含まない場合があり、非一時的な有形記憶媒体であることが理解されるべきである。本明細書において用いられるディスクおよび光ディスクは、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピ(登録商標)ディスク、およびブルーレイディスク(登録商標)を含み、ここで、ディスクは概して、データを磁気方式においてコピーし、光ディスクは、レーザを用いることによって光学的方式においてデータをコピーする。上述の対象の組み合わせはさらに、コンピュータ可読媒体の範囲に含まれるものとする。
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、一般的なマイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または別の同等の統合された、もしくはディスクリートのロジック回路により、実行されてよい。従って、本明細書において用いられている「プロセッサ」という用語は、上述の構造、または、本明細書において説明されている技術の実装に適用され得る任意の他の構造を指してよい。加えて、いくつかの態様において、本明細書に説明されている機能性は、符号化および復号のために構成される専用ハードウェアおよび/またはソフトウェアモジュールに提供されてよく、または、組み合わされたコーダ−デコーダに組み込まれてよい。加えて、技術は、1つまたは複数の回路またはロジック要素に完全に実装されてよい。
本願発明における技術は、複数の装置またはデバイスに広く実装されてよい。装置またはデバイスは、無線ハンドセット、集積回路(IC)、またはICセット(例えば、チップセット)を含む。本願発明において、様々な構成要素、モジュール、およびユニットは、開示されている技術を実装するよう構成される装置の機能を強調するために説明されるが、機能は、必ずしも異なるハードウェアユニットによって実装される必要がない。精確には、上述において説明されているように、様々なユニットは、コーダ−デコーダのハードウェアユニットに組み合わされてよく、または、適切なソフトウェアおよび/またはファームウェアと併せて、(上述において説明されている1つまたは複数のプロセッサを含む)相互利用可能なハードウェアユニットのセットにより提供されてよい。
明細書全体において言及されている「一実施形態」または「実施形態」は、実施形態に関連する特定の機能、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれることを意味することが理解されるべきである。従って、明細書全体にわたって出現している「一実施形態」または「実施形態」は、必ずしも同じ実施形態を指すわけではない。加えて、これらの特定の機能、構造、または特徴は、任意の適切な方式を用いることによって、1つ又は複数の実施形態に組み合わされてよい。
本願発明の様々な実施形態において、上述のプロセスのシーケンス番号は、実行シーケンスを意味しておらず、本願発明の実施形態の実装方式のプロセスに対するいかなる限定として解釈されるべきではないことが理解されるべきである。プロセスの実行シーケンスは、プロセスの機能および内部ロジックに従って決定されるべきである。
加えて、「システム」および「ネットワーク」という用語は、本明細書において互換的に用いられてよい。本明細書における「および/または」という用語は、関連対象を説明するための関連関係を説明するだけであって、3つの関係が存在し得ることを表している。例えば、Aおよび/またはBは、Aのみが存在する場合、AおよびBの両方が存在する場合、および、Bのみが存在する場合といった3つの場合を表し得る。加えて、本明細書における「/」という記号は概して、関連対象の間の「または」という関係性を示す。
本出願の実施形態において、「Aに対応するB」は、Bは、Aに関連付けられており、Bは、Aに従って決定され得ることを示すことが理解されるべきである。しかしながら、Bに従ってAを決定することは、Bは、Aのみに従って決定されることを意味しておらず、BはAおよび/または他の情報に従っても決定され得ることがさらに理解されるべきである。
当業者は、本明細書に開示されている実施形態において説明されている例との組み合わせにおいて、ユニットおよびアルゴリズム段階は、電子的ハードウェア、コンピュータソフトウェア、またはそれらの組み合わせによって実装されてよいことを認識し得る。ハードウェアとソフトウェアとの間の互換性を明確に説明するために、上述は概して、機能に応じて各例の組成および段階を説明している。機能がハードウェアまたはソフトウェアによって実行されるかは、技術的解決手段の特定のアプリケーションおよび設計制約の条件に依存する。当業者は、各特定のアプリケーションに対して説明した機能を実装するために異なる方法を用いてよいが、実装方式が本願発明の範囲を超えるものとしてみなされるべきではない。
当業者ならば明確に理解し得るように、簡便かつ簡潔な説明を目的として、上述のシステム、装置、及びユニットの詳細な動作プロセスについて、上述の方法の実施形態における対応するプロセスが参照されてよく、詳細はここでは再び説明しない。
本出願において提供されるいくつかの実施形態において、開示されたシステム、装置、および方法は他の方式で実装されてよいことが理解されるべきである。例えば、説明されている装置の実施形態は例に過ぎない。例えば、ユニットの区分は、論理機能の区分に過ぎず、実際の実装方式において、他の区分であってよい。例えば、複数のユニットまたは構成要素は、別のシステムに組み合わされもしくは統合されてよく、または、いくつかの特徴は、無視されてよく、もしくは実行されなくてよい。加えて、表示されまたは説明されている相互連結または直接連結もしくは通信接続は、いくつかのインターフェースを用いることによって実装されてよい。装置またはユニットの間の間接連結または通信接続は、電子的、機械的、または他の形式において実装されてよい。
別個の部分として説明されているユニットは、物理的に別個のものであってよく、またはそうでなくてもよく、ユニットとして表示されている部分は、物理的ユニットであってよく、またはそうでなくてもよく、1つの場所に位置してよく、または複数のネットワークユニットに分散されてよい。ユニットの一部またはすべては、実施形態の解決手段の目的を達成するために、実際の要求に従って選択されてよい。
加えて、本願発明の実施形態における機能的ユニットは、1つの処理ユニットに統合されてよく、または、ユニットのそれぞれは、物理的に単独で存在してよく、または、2つまたはそれより多くのユニットは、1つのユニットに統合される。
上述の説明は、本願発明の具体的な実装方式に過ぎず、本願発明の保護範囲を限定することを意図していない。本願発明において開示されている技術的範囲内に当業者により容易に想到されるいかなる変形または置換は、本願発明の保護範囲内に含まれるものとする。従って、本願発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。