以下の説明において、本開示の一部を成し、例示として本発明の実施形態の特定の態様又は本発明の実施形態が使用される可能性のある特定の態様を示す添付図面に対する参照が行われる。本発明の実施形態は、他の態様で使用される可能性があり、添付図面に示されていない構造的又は論理的な変更を含む可能性があることが理解される。従って、以下の詳細な説明は、限定する意味にとられるべきではなく、本発明の範囲は、添付の特許請求の範囲によって定められる。
例えば、説明される方法に関連する開示は、方法を実行するように構成された対応するデバイス又はシステムにも当てはまる可能性があり、その逆も可能であることが理解される。例えば、1つ以上の特定の方法ステップが説明される場合、対応するデバイスは、説明された1つ以上の方法ステップを実行するための機能ユニットのような1つ以上のユニット(例えば、1つ以上のステップを実行する1つのユニット、又は複数のステップのうちの1つ以上を各々が実行する複数のユニット)を、たとえそのような1つ以上のユニットが図面において明示的に説明も図示もされていなかったとしても、含む可能性がある。一方、例えば、機能ユニットのような1つ以上のユニットに基づいて、特定の装置が説明される場合、対応する方法は、1つ以上のユニットの機能を実行するための1つのステップ(例えば、1つ以上のユニットの機能を実行するための1つのステップ、又は複数のユニットのうちの1つ以上の機能を各々が実行する複数のステップ)を、たとえそのような1つ以上のステップが図面において明示的に説明も図示もされていなかったとしても、含む可能性がある。更に、本願で説明される様々な例示的な実施形態及び/又は態様の特徴は、特に指定されない限り、互いに組み合わせられる可能性があることは理解される。
ビデオ・コーディングは、典型的には、ビデオ又はビデオ・シーケンスを形成する一連のピクチャの処理を示す。ビデオ・コーディングの分野において、用語「ピクチャ」の代わりに、用語「フレーム」又は「画像」が同義語として使用されてもよい。本願(又は本開示)で使用されるビデオ・コーディングは、ビデオ符号化又はビデオ復号化を示す。ビデオ符号化は、ソース側で実行され、典型的には、ビデオ・ピクチャを表すのに必要なデータ量を減らすために(より効率的な記憶及び/又は伝送のために)オリジナル・ビデオ・ピクチャを(例えば、圧縮により)処理することを含む。ビデオ復号化は、宛先側で実行され、典型的には、ビデオ・ピクチャを再構成するために、エンコーダと比較して逆の処理を含む。ビデオ・ピクチャ(又は、以下で説明されるように、一般的にはピクチャ)の「コーディング」に対する実施形態は、ビデオ・シーケンスに関する「符号化」又は「復号化」に関連するように理解されるものとする。符号化の部分及び復号化の部分の組み合わせはまた、CODEC(Coding and Decoding)と言及される。
ロスレス・ビデオ・コーディングの場合、オリジナル・ビデオ・ピクチャを再構成することが可能であり、即ち、再構成されたビデオ・ピクチャはオリジナル・ビデオ・ピクチャと同じ質を有する(記憶及び伝送の間に、伝送ロス又は他のデータ・ロスは発生しないことを仮定している)。ロスレスでないビデオ・コーディングの場合、ビデオ・ピクチャを表現するデータ量を減らすために、例えば量子化によって更なる圧縮が実行され、ビデオ・ピクチャはデコーダ側で完全には再構成することができず、即ち、再構成されたビデオ・ピクチャの質は、オリジナル・ビデオ・ピクチャの質より低い又は悪い。
H.261以降の幾つかのビデオ・コーディング規格は、「ロスレスでないハイブリッド・ビデオ・コーデックス」のグループに属する(即ち、サンプル・ドメインにおける空間的及び時間的な予測と、変換ドメインにおいて量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオ・シーケンスの各ピクチャは、典型的には、重複しないブロックのセットに区分けされ、コーディングは、典型的には、ブロック・レベルで実行される。換言すれば、エンコーダ側において、ビデオは、例えば空間(イントラ・ピクチャ)予測及び時間(インター・ピクチャ)予測を用いて予測ブロックを生成すること、現在ブロック(現在の処理済み/処理されるべきブロック)から予測ブロックを減算して残差ブロックを取得すること、残差ブロックを変換すること、変換ドメインにおいて残差ブロックを量子化して、伝送されるべきデータ量を減少させること(圧縮)により、典型的にはブロック(ビデオ・ブロック)レベルで処理され、即ち符号化され、デコーダ側では、エンコーダと比較して逆の処理が、符号化又は圧縮されたブロックに部分的に適用され、表現のために現在ブロックを再構成する。更に、エンコーダは、デコーダの処理ループを繰り返し、その結果、両者は、以後のブロックを処理する、即ちコーディングするために、同じ予測(例えば、イントラ及びインター予測)及び/又は再構成を生成するであろう。
ここで使用されるように、「ブロック」という用語は、ピクチャ又はフレームの一部であってもよい。説明を容易にするために、本発明の実施形態は、ITU−Tビデオ・コーディング・エキスパート・グループ(VCEG)及びISO/IEC動画エキスパート・グループ(MPEG)のビデオ・コーディングに関する共同研究チーム(JCT−VC)によって開発された汎用ビデオ・コーディング(VVC)のリファレンス・ソフトウェア又は高効率ビデオ・コーディング(HEVC)を参照して説明される。当業者は、本発明の実施形態がHEVC又はVVCに限定されないことを理解するであろう。これはCU(coding units)、PU(prediction units)又はTU(transform units)を示す可能性がある。HEVCにおいて、CTU(coding tree unit)は、コーディング・ツリーとして示される四分木構造を使用することによって、複数のCUに分割される。インター・ピクチャ(時間的)又はイントラ・ピクチャ(空間的)予測を利用してピクチャをコーディングするかどうかの決定は、CUレベルで行われる。各CUは更に、PU分割タイプに従って、1つ、2つ、又は4つのPUに分割されることが可能である。1つのPUの中で、同じ予測プロセスが適用され、関連情報はPUに基づいてデコーダに送信される。PU分割タイプに基づいて予測プロセスを適用することにより、残差ブロックを取得した後に、CUは、CUに対するコーディング・ツリーに類似する別の四分木構造に従って、変換ユニット(TU)に分割されることが可能である。最新のビデオ圧縮技術の開発では、コーディング・ブロックを分割するために、四分木及び二分木(QTBT)パーティショニング・フレームが使用される。QTBTブロック構造では、CUは正方形又は長方形であるとすることが可能である。例えば、コーディング・ツリー・ユニット(CTU)は先ず四分木構造によって区分けされる。四分木リーフ・ノードは二分木構造によって更に区分けされる。二分木リーフ・ノードはコーディング・ユニット(CU)と言及され、そのセグメンテーションは、更なる如何なるパーティショニングもなしに予測及び変換処理のために使用される。これは、CU、PU、TUがQTBTコーディング・ブロック構造において同じブロック・サイズを有することを意味する。と同時に、複数パーティション、例えば三分木(TT)パーティションもQTBTブロック構造とともに使用されるように提案された。用語「デバイス」はまた「装置」、「デコーダ」又は「エンコーダ」であってもよい。
以下、エンコーダ20、デコーダ30、及びコーディング・システム10の実施形態を、図1−3に基づいて説明する。
図1Aは、例示的なコーディング・システム10、例えば本願(本開示)の技術を使用することが可能なビデオ・コーディング・システム10を示す概念的又は概略的なブロック図である。ビデオ・コーディング・システム10のエンコーダ20(例えば、ビデオ・エンコーダ20)及びデコーダ30(例えば、ビデオ・デコーダ30)は、本願で説明される種々の例による技術を実行するように構成される可能性があるデバイス例を表す。図1Aに示すように、コーディング・システム10は、例えば符号化されたピクチャ13のような符号化されたデータ13を、例えば符号化されたデータ13を復号化する宛先デバイス14へ提供するように構成されたソース・デバイス12を含む。
ソース・デバイス12は、エンコーダ20を含み、追加的に、即ちオプションとして、ピクチャ・ソース16、例えばピクチャ前処理ユニット18のような前処理ユニット18、及び、通信インターフェース又は通信ユニット22を含む可能性がある。
ビデオ・ソース16は、例えば実世界のピクチャを捕捉するような任意の種類のピクチャ捕捉デバイス、及び/又は、例えばピクチャ又はコメント生成デバイス(スクリーン・コンテンツ・コーディングの場合には、スクリーン上の何らかのテキストもまた、符号化対象のピクチャ又は画像の一部と考えられる)、例えば、コンピュータ・アニメーション・ピクチャを生成するコンピュータ・グラフィックス・プロセッサ、又は、実世界のピクチャ又はコンピュータ・アニメーション・ピクチャを取得及び/又は提供する任意の種類のデバイス(例えば、スクリーン・コンテンツ又はバーチャル・リアリティ(VR)ピクチャ)、及び/又は、それらの任意の組み合わせ(例えば、拡張現実(AR)ピクチャ)を含んでもよいし、又はそれらであってもよい。ピクチャ・ソースは、上記の任意のピクチャを記憶する任意の種類のメモリ又はストレージである可能性がある。
(デジタル)ピクチャは、強度値を有するサンプルの2次元アレイ又はマトリクスであるか、又はそのように考えることが可能である。アレイ中のサンプルは、ピクセル(ピクチャ要素の短縮形)又はペルと呼ばれてもよい。アレイ又はピクチャの水平及び垂直方向(又は軸)におけるサンプルの量は、ピクチャのサイズ及び/又は解像度を規定する。色の表現には、典型的には、3つの色成分が使用され、即ち、ピクチャは、3つのサンプル・アレイで表現されてもよいし、又はそれを含んでもよい。RBGフォーマット又は色空間において、ピクチャは対応する赤、緑、及び青のサンプル・アレイを含む。しかしながら、ビデオ・コーディングにおいては、各ピクセルは、典型的には、ルミナンス/クロミナンス・フォーマット又は色空間、例えばYCbCrで表現され、YCbCrは、Yで示されるルミナンス成分(時にはそれに代えてLが使用される)とCb及びCrで示される2つのクロミナンス成分とを含む。ルミナンス(又は略称、ルマ)成分Yは、輝度又はグレー・レベル強度を(例えば、グレー・スケール・ピクチャでのように)表し、2つのクロミナンス(又は略称、クロマ)成分Cb及びCrはクロミナンス又は色情報成分を表す。従って、YCbCrフォーマットにおけるピクチャは、ルミナンス・サンプル値(Y)のルミナンス・サンプル・アレイと、クロミナンス値(Cb及びCr)の2つのクロミナンス・サンプル・アレイとを含む。RGBフォーマットのピクチャは、YCbCrフォーマットにコンバート又は変換されることが可能であり、その逆も可能であり、そのプロセスは色変換又はコンバージョンとしても知られている。ピクチャがモノクロである場合、ピクチャはルミナンス・サンプル・アレイのみを含む可能性がある。
ピクチャ・ソース16(例えば、ビデオ・ソース16)は、例えば、ピクチャを捕捉するカメラ、例えば、事前に捕捉された若しくは生成されたピクチャを包含又は記憶するピクチャ・メモリのようなメモリ、及び/又はピクチャを取得若しくは受信するための任意の種類の(内部又は外部)インターフェースであってもよい。カメラは、例えば、ソース・デバイスに一体化されたローカルな又は一体化されたカメラであってもよく、メモリは、例えばソース・デバイスに一体化されたローカルな又は一体化されたメモリであってもよい。インターフェースは、例えば外部ビデオ・ソースからピクチャを受信するための外部インターフェース、例えばカメラ、外部メモリ、又は外部ピクチャ生成デバイスのような外部ピクチャ捕捉デバイス、例えば外部コンピュータ・グラフィックス・プロセッサ、コンピュータ又はサーバーであってもよい。インターフェースは、任意のプロプライエタリ又は標準化されたインターフェース・プロトコルに従う任意の種類のインターフェース、例えば有線又は無線インターフェース、光インターフェースであるとすることが可能である。ピクチャ・データ17を取得するためのインターフェースは、通信インターフェース22と同じインターフェースであってもよいし、又はその一部であってもよい。
前処理ユニット18及び前処理ユニット18により実行される処理とは異なり、ピクチャ及びピクチャ・データ17(例えば、ビデオ・データ16)はまた、未処理ピクチャ又は未処理ピクチャ・データ17と呼ばれてもよい。
前処理ユニット18は、(未処理)ピクチャ・データ17を受信し、ピクチャ・データ17に関して前処理を実行して、前処理されたピクチャ19又は前処理されたピクチャ・データ19を取得するように構成されている。前処理ユニット18によって実行される前処理は、例えば、トリミング、カラー・フォーマット変換(例えば、RGBからYCbCrへ)、色補正、又はノイズ低減を含む可能性がある。前処理ユニット18はオプションの構成要素であってもよいことを理解することは可能である。
エンコーダ20(例えば、ビデオ・エンコーダ20)は、前処理されたピクチャ・データ19を受信し、符号化ピクチャ・データ21を提供するように構成される(更なる詳細は、例えば以下において図2又は図4に基づいて説明されるであろう)。
ソース・デバイス12の通信インターフェース22は、符号化されたピクチャ・データ21を受信し、符号化されたピクチャ・データ21(又はそれを更に処理した任意のバージョン)を通信チャネル13を介して他のデバイスへ、例えば宛先デバイス14又は任意の他のデバイスへ、記憶又は直接的な再構成のために送信するように構成されることが可能である。
ソース・デバイス12の通信インターフェース22は、符号化されたピクチャ・データ21を受信し、それを他のデバイスへ、例えば宛先デバイス14又は任意の他のデバイスへ、記憶又は直接的な再構成のために送信し、又は符号化されたデータ13を記憶すること、及び/又は符号化されたデータ13を他のデバイスへ、例えば宛先デバイス14又は任意の他のデバイスへ復号化又は記憶のために送信すること、の前にそれぞれ符号化されたピクチャ・データ21を処理するように構成されることが可能である。
宛先デバイス14は、デコーダ30(例えば、ビデオ・デコーダ30)を含み、追加的に、即ちオプションとして、通信インターフェース又は通信ユニット28、後処理ユニット32、及び表示デバイス34を含む可能性がある。
宛先デバイス14の通信インターフェース28は、符号化されたピクチャ・データ21(又はそれを更に処理した任意のバージョン)を、例えばソース・デバイス12から直接的に、又は任意の他のソースから、例えばソース・デバイスから、例えば符号化されたピクチャ・データのストレージ・デバイスから受信し、符号化されたピクチャ・データ21をデコーダ30に提供するように構成される。
宛先デバイス14の通信インターフェース28は、符号化されたピクチャ・データ21又は符号化されたデータ13を、例えばソース・デバイス12から直接的に、又は任意の他のソースから、例えばストレージ・デバイスから、例えば符号化ピクチャ・データ・ストレージ・デバイスから受信するように構成される。
通信インターフェース22及び通信インターフェース28は、ソース・デバイス12と宛先デバイス14との間の直接的な通信リンク、例えば直接的な有線又は無線接続を介して、又は任意の種類のネットワーク、例えば有線若しくは無線ネットワーク又はそれらの任意の組み合わせ、又は任意の種類の私的な及び公のネットワーク、又はそれらの任意の組み合わせを介して、符号化されたピクチャ・データ21又は符号化されたデータ13を送信又は受信するように構成されることが可能である。
通信インターフェース22は、例えば、符号化されたピクチャ・データ21を、例えばパケットのような適切なフォーマットにパッケージングし、及び/又は、通信リンク若しくは通信ネットワークを介する伝送のための任意の種類の伝送符号化又は処理を使用して、符号化されたピクチャ・データを処理するように構成されることが可能である。
通信インターフェース22の対応部分を形成する通信インターフェース28は、例えば、符号化されたデータ13を非パッケージ化して符号化されたピクチャ・データ21を取得するように構成されることが可能である。
通信インターフェース22の対応部分を形成する通信インターフェース28は、例えば、送信されたデータを受信し、符号化されたピクチャ・データ21を取得するために任意の種類の対応する伝送復号化又は処理及び/又は非パッケージ化を使用して、送信データを処理する。
通信インターフェース22及び通信インターフェース28の両方は、図1Aにおいてソース・デバイス12から宛先デバイス14へ向かう符号化されたピクチャ・データ13に関する矢印により示される一方向通信インターフェース、又は双方向通信インターフェースとして構成されることが可能であり、例えばメッセージを送信及び受信するように、例えば接続を設定するように、通信リンク及び/又は例えば符号化されたピクチャ・データ伝送のようなデータ伝送に関連する他の任意の情報を確認及び交換するように、構成されることが可能である。
デコーダ30は、符号化されたピクチャ・データ21を受信し、復号化されたピクチャ・データ31又は復号化されたピクチャ31を提供するように構成される(更なる詳細は、例えば図3又は図5に基づいて、以下において説明されるであろう)。
宛先デバイス14の後処理プロセッサ32は、例えば復号化されたピクチャ31のような復号化されたピクチャ・データ31(再構成されたピクチャ・データとも呼ばれる)を後処理して、後処理されたピクチャ33のような後処理ピクチャ・データ33を取得するように構成される。後処理ユニット32によって実行される後処理は、例えばカラー・フォーマット変換(例えば、YCbCrからRGBへ)、色補正、トリミング、リサンプリング、又は、例えば表示デバイス34による表示のための例えば復号化されたピクチャ・データ31を準備するための他の任意の処理を含む可能性がある。
宛先デバイス14の表示デバイス34は、後処理ピクチャ・データ33を受信して、ピクチャを、例えばユーザー又はビューアに表示するように構成されている。表示デバイス34は、再構成されたピクチャを表現する任意の種類のディスプレイ、例えば一体化された又は外部のディスプレイ又はモニタであってもよいし、又はそれらを含んでもよい。ディスプレイは、例えば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマ・ディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オン・シリコン(LCoS)、デジタル光プロセッサ(DLP)、又は任意の他の種類のディスプレイを含む可能性がある。
図1Aは、ソース・デバイス12と宛先デバイス14とを別々のデバイスとして描いているが、デバイスの実施形態はまた、双方又は双方の機能、ソース・デバイス12又は対応する機能と宛先デバイス14又は対応する機能とを含む可能性がある。そのような実施形態では、ソース・デバイス12又は対応する機能と宛先デバイス14又は対応する機能とは、同じハードウェア及び/又はソフトウェアを使用して、又は別個のハードウェア及び/又はソフトウェア、又はそれらの任意の組み合わせにより実現されてもよい。
明細書に基づいて当業者には明らかであるように、図1Aに示すソース・デバイス12及び/又は宛先デバイス14における機能又は様々なユニットの機能の存在及び(厳密な)分割は、実際のデバイス及び用途によって異なる可能性がある。
エンコーダ20(例えば、ビデオ・エンコーダ20)及びデコーダ30(例えば、ビデオ・デコーダ30)は、それぞれ、種々の任意の適切な回路、例えば1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリート・ロジック、ハードウェア、又はそれらの任意の組み合わせとして実現されることが可能である。技術がソフトウェアで部分的に実現される場合、デバイスは、ソフトウェアの命令を、適切な非一時的なコンピュータ読み取り可能な記憶媒体に記憶することが可能であり、本開示の技術を実行するために1つ以上のプロセッサを使用して、ハードウェアで命令を実行することが可能である。(ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組み合わせ等を含む)上記の何れも、1つ以上のプロセッサであると考えられてもよい。ビデオ・エンコーダ20及びビデオ・デコーダ30は、それぞれ、1つ以上のエンコーダ又はデコーダに含まれる可能性があり、何れも個々のデバイス内の組み合わされたエンコーダ/デコーダ(CODEC)の一部として統合されてもよい。
エンコーダ20は、図2のエンコーダ20及び/又は本願で説明される任意の他のエンコーダ・システム又はサブシステムに関して説明したように、種々のモジュールを具体化するように、処理回路46により実現されてもよい。デコーダ30は、図3のデコーダ30及び/又は本願で説明される任意の他のデコーダ・システム又はサブシステムに関して説明されるように、種々のモジュールを具体化するために、処理回路46を介して実装されてもよい。処理回路は、後述するように、種々の動作を実行するように構成されることが可能である。図5に示すように、技術が部分的にソフトウェアで実現される場合、デバイスは、適切な一時的でないコンピュータ読み取り可能な記憶媒体にソフトウェアの命令を記憶し、本開示の技術を実行するために1つ以上のプロセッサを使用して、命令をハードウェアで実行することができる。ビデオ・エンコーダ20とビデオ・デコーダ30の何れかは、例えば図1Bに示すように、単一のデバイス内の組み合わされたエンコーダ/デコーダ(CODEC)の一部として統合されてもよい。
ソース・デバイス12は、ビデオ符号化デバイス又はビデオ符号化装置と言及されてもよい。宛先デバイス14は、ビデオ復号化デバイス又はビデオ復号化装置と言及されてもよい。ソース・デバイス12及び宛先デバイス14はビデオ・コーディング・デバイス又はビデオ・コーディング装置の一例とすることが可能である。
ソース・デバイス12及び宛先デバイス14は、任意の種類のハンドヘルド又はステーショナリ・デバイスを含む広範囲に及ぶ任意のデバイス、例えば、ノートブック又はラップトップ・コンピュータ、携帯電話、スマートフォン、タブレット又はタブレット・コンピュータ、カメラ、デスクトップ・コンピュータ、セット・トップ・ボックス、テレビ、表示デバイス、デジタル・メディア・プレーヤ、ビデオ・ゲーム・コンソール、ビデオ・ストリーミング・デバイス(コンテンツ・サービス・サーバー又はコンテンツ配信サーバー等)、放送受信デバイス、放送送信デバイス等を含む可能性があり、任意の種類のオペレーティング・システムを使用してもよいし、又は使用しなくてもよい。
場合によっては、ソース・デバイス12及び宛先デバイス14は無線通信用に装備されてもよい。従って、ソース・デバイス12及び宛先デバイス14は、無線通信デバイスであってもよい。
場合によっては、図1Aに示すビデオ・コーディング・システム10は単なる一例に過ぎず、本願の技術は、符号化デバイスと復号化デバイスとの間で如何なるデータ通信も含む必要のないビデオ・コーディング設定(例えば、ビデオ符号化又はビデオ復号化)に適用される可能性がある。他の例において、データは、ローカル・メモリから検索され、ネットワークを介してストリーミング等される。ビデオ符号化デバイスは、データを符号化してメモリに格納することが可能であり、及び/又はビデオ復号化デバイスは、データをメモリから検索して復号化することが可能である。幾つかの例では、符号化及び復号化は、互いに通信しないが、メモリへのデータを符号化し及び/又はメモリからデータを検索して復号化するだけのデバイスによって実行される。
説明の便宜上、本発明の実施形態は、例えば高効率ビデオ・コーディング(HEVC)又は汎用ビデオ・コーディング(VVC)、ITU−Tビデオ・コーディング・エキスパート・グループ(VCEG)及びISO/IEC動画エキスパート・グループ(MPEG)のビデオ・コーディングに関する共同研究チーム(JCT−VC)によって開発された次世代ビデオ・コーディング規格の参照ソフトウェアを参照することによりここでは説明される。当業者は、本発明の実施形態がHEVC又はVVCに限定されないことを理解するであろう。ビデオ・エンコーダ20に関連して説明された上記の例の各々に関し、ビデオ・デコーダ30は逆のプロセスを実行するように構成されることが可能であることが、理解されるはずである。シンタックス要素をシグナリングすることに関し、ビデオ・デコーダ30は、そのようなシンタックス要素を受信して解析し、それに応じて関連するビデオ・データを復号化するように構成されることが可能である。幾つかの例において、ビデオ・エンコーダ20は、1つ以上のせを、符号化されたビデオ・ビットストリームにエントロピー符号化することができる。このような例では、ビデオ・デコーダ30は、このようなシンタックス要素を解析し、それに応じて関連するビデオ・データを復号化することができる。
図1Bは、例示的な実施形態による図2のエンコーダ20及び/又は例示的実施形態による図3のデコーダ30を含む別の例示的なビデオ・コーディング・システム40の例示的な図である。システム40は、本願で説明される種々の例に従って技術を実現することが可能である。図示された実装では、ビデオ・コーディング・システム40は、撮像装置41、ビデオ・エンコーダ100、ビデオ・デコーダ30(及び/又は、処理ユニット46の論理回路47により実現されるビデオ・コーダー)、アンテナ42、1つ以上のプロセッサ43、1つ以上のメモリ・ストア44、及び/又は、表示デバイス45を含むことが可能である。
図示されているように、撮像装置41、アンテナ42、処理ユニット46、論理回路47、ビデオ・エンコーダ20、ビデオ・デコーダ30、プロセッサ43、メモリ・ストア44、及び/又は表示デバイス45は、互いに通信することが可能である。上述したように、ビデオ・エンコーダ20及びビデオ・デコーダ30の双方とともに図示されているが、ビデオ・コーディング・システム40は、種々の例においてはビデオ・エンコーダ20のみ又はビデオ・デコーダ30のみを含む可能性がある。
図示のように、幾つかの例では、ビデオ・コーディング・システム40はアンテナ42を含む可能性がある。アンテナ42は、例えば、ビデオ・データの符号化されたビットストリームを送信又は受信するように構成されることが可能である。更に、幾つかの例では、ビデオ・コーディング・システム40は、表示デバイス45を含んでもよい。表示デバイス45は、ビデオ・データを提示するように構成されることが可能である。図示のように、幾つかの例では、論理回路47は、処理ユニット46により実現されてもよい。処理ユニット46は、特定用途向け集積回路(ASIC)ロジック、グラフィックス・プロセッサ、汎用プロセッサ等を含むことが可能である。また、ビデオ・コーディング・システム40はまた、オプションのプロセッサ43を含んでもよく、これは、同様に、特定用途向け集積回路(ASIC)ロジック、グラフィックス・プロセッサ、汎用プロセッサ等を含んでもよい。幾つかの例では、論理回路47は、ハードウェア、ビデオ・コーディング専用ハードウェア等により実現されることが可能であり、プロセッサ43は、汎用ソフトウェア、オペレーティング・システム等を実現することが可能である。更に、メモリ・ストア44は、揮発性メモリ(例えば、スタティック・ランダム・アクセス・メモリ(SRAM)、ダイナミック・ランダム・アクセス・メモリ(DRAM))、又は不揮発性メモリ(例えば、フラッシュ・メモリ)等のような任意のタイプのメモリであってもよい。非限定的な例では、メモリ・ストア44は、キャッシュ・メモリによって実現されてもよい。幾つかの例では、論理回路47は、(例えば、画像バッファの実現のために)メモリ・ストア44にアクセスすることができる。他の例では、論理回路47及び/又は処理ユニット46は、画像バッファ等の実現のためのメモリ・ストア(例えば、キャッシュ等)を含んでもよい。
幾つかの例では、論理回路により実現されるビデオ・エンコーダ100は、(例えば、処理ユニット46又はメモリ・ストア44による)画像バッファ及び(例えば、処理ユニット46による)グラフィックス処理ユニットを含んでもよい。グラフィックス処理ユニットは、画像バッファに通信可能に結合されることが可能である。グラフィックス処理ユニットは、図2に関して説明したような種々のモジュール、及び/又は本願で説明される他の任意のエンコーダ・システム又はサブシステムを具現化するために、論理回路47により実現されるようなビデオ・エンコーダ100を含んでもよい。論理回路は、本願で説明されるような種々の動作を実行するように構成されることが可能である。
ビデオ・デコーダ30は、図3のデコーダ30及び/又は本願で説明される任意の他のデコーダ・システム又はサブシステムに関して説明されるような種々のモジュールを具現化するために、論理回路47により実現されるのと同様の方法で実現されることが可能である。幾つかの例では、ビデオ・デコーダ30は、論理回路により実現されてもよく、(例えば、処理ユニット420又はメモリ記憶ストア44による)画像バッファ及び(例えば、処理ユニット46による)グラフィックス処理ユニットを含んでもよい。グラフィックス処理ユニットは、画像バッファに通信可能に結合されることが可能である。グラフィックス処理ユニットは、図3に関して説明したような種々のモジュール、及び/又は本願で説明される他の任意のデコーダ・システム又はサブシステムを具現化するために、論理回路47により実現されるようなビデオ・デコーダ30を含んでもよい。
幾つかの例では、ビデオ・コーディング・システム40のアンテナ42は、ビデオ・データの符号化されたビットストリームを受信するように構成されることが可能である。上述したように、符号化されたビットストリームは、コーディング・パーティションに関連するデータのような、本願で説明されるようなビデオ・フレームを符号化することに関連するデータ、インジケータ、インデックス値、モード選択データ等(例えば、変換係数又は量子化変換係数、(議論されるような)オプションのインジケータ、及び/又はコーディング・パーティションを規定するデータ)を含んでもよい。ビデオ符号化システム40はまた、アンテナ42に結合され、符号化されたビットストリームを復号化するように構成されたビデオ・デコーダ30を含んでもよい。表示デバイス45は、ビデオ・フレームを提示するように構成される。
図2は、本願(開示)の技術を実現するように構成された例示的なビデオ・エンコーダ20の概略的/概念的なブロック図である。図2の例では、ビデオ・エンコーダ20は、残差計算ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構成ユニット214と、バッファ216と、ループ・フィルタ・ユニット220と、復号化されたピクチャのバッファ(DPB)230と、予測処理ユニット260と、エントロピー符号化ユニット270とを含む。予測処理ユニット260は、インター予測ユニット244と、イントラ予測ユニット254と、モード選択ユニット262とを含むことが可能である。インター予測ユニット244は、動き推定ユニットと、動き補償ユニット(不図示)とを含むことが可能である。図2に示すビデオ・エンコーダ20はまた、ハイブリッド・ビデオ・エンコーダ又はハイブリッド・ビデオ・コーデックによるビデオ・エンコーダと言及されてもよい。
例えば、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、予測処理ユニット260、エントロピー符号化ユニット270は、エンコーダ20の順方向信号経路を形成し、例えば、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループ・フィルタ220、復号化されたピクチャのバッファ(DPB)230、予測処理ユニット260は、エンコーダの逆方向信号経路を形成し、エンコーダの逆方向信号経路は、デコーダの信号経路に対応する(図3のデコーダ30を参照されたい)。
また、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループ・フィルタ220、復号化されたピクチャのバッファ(DPB)230、インター予測ユニット244、及びイントラ予測ユニット254は、ビデオ・エンコーダ20の「内蔵デコーダ」を形成しているようにも言及される。エンコーダ20は、例えば入力202、ピクチャ201、又はピクチャ201のブロック203によって、例えばビデオ又はビデオ・シーケンスを形成するピクチャのシーケンスのうちのピクチャを受信するように構成される。ピクチャ・ブロック203はまた、現在のピクチャ・ブロック又はコーディングされるべきピクチャ・ブロックとも言及され、ピクチャ201は、現在ピクチャ又はコーディングされるべきピクチャと言及される(特に、ビデオ・コーディングにおいて、現在ピクチャを他のピクチャから、例えば同じビデオ・シーケンス、即ち現在ピクチャも含むビデオ・シーケンスの以前に符号化された及び/又は復号化されたピクチャから区別する)。
(デジタル)ピクチャは、強度値を有するサンプルの2次元アレイ又はマトリクスであるか、又はそのように考えることが可能である。アレイ中のサンプルはまた、ピクセル(ピクチャ要素の短縮形)又はペルと呼ばれてもよい。アレイ又はピクチャの水平及び垂直方向(又は軸)におけるサンプルの量は、ピクチャのサイズ及び/又は解像度を規定する。色の表現には、典型的には、3つの色成分が使用され、即ち、ピクチャは、3つのサンプル・アレイで表現されてもよいし、又はそれを含んでもよい。RBGフォーマット又は色空間において、ピクチャは対応する赤、緑、及び青のサンプル・アレイを含む。しかしながら、ビデオ・コーディングにおいては、各サンプルは、典型的には、ルミナンス/クロミナンス・フォーマット又は色空間、例えばYCbCrで表現され、YCbCrは、Yで示されるルミナンス成分(時にはそれに代えてLが使用される)とCb及びCrで示される2つのクロミナンス成分とを含む。ルミナンス(又は略称、ルマ)成分Yは、輝度又はグレー・レベル強度を(例えば、グレー・スケール・ピクチャでのように)表し、2つのクロミナンス(又は略称、クロマ)成分Cb及びCrはクロミナンス又は色情報成分を表す。従って、YCbCrフォーマットにおけるピクチャは、ルミナンス・サンプル値(Y)のルミナンス・サンプル・アレイと、クロミナンス値(Cb及びCr)の2つのクロミナンス・サンプル・アレイとを含む。RGBフォーマットのピクチャは、YCbCrフォーマットにコンバート又は変換されることが可能であり、その逆も可能であり、そのプロセスは色変換又はコンバージョンとしても知られている。ピクチャがモノクロである場合、ピクチャはルミナンス・サンプル・アレイのみを含む可能性がある。従って、ピクチャは、例えば、モノクロ・フォーマットのルマ・サンプルのアレイ、又はルマ・サンプルのアレイとクロマ・サンプルの2つの対応するアレイとの4:2:0、4:2:2、及び4:4:4カラー・フォーマットにおけるものあってもよい。
パーティショニング
エンコーダ20の実施形態は、ピクチャ201を、複数の(典型的には重複しない)ピクチャ・ブロック203に区分けするように構成されたパーティショニング・ユニット(図2には示されていない)を含むことが可能である。これらのブロックはまた、ルート・ブロック、マクロ・ブロック(H.264/AVC)又はコーディング・ツリー・ブロック(CTB)又はコーディング・ツリー・ユニット(CTU)(H.265/HEVC及びVVC)と言及される場合もある。パーティショニング・ユニットは、ビデオ・シーケンスのすべてのピクチャに対して同一のブロック・サイズとブロック・サイズを規定する対応するグリッドとを使用するように、又は、ピクチャ、サブセット、又はピクチャのグループ間でブロック・サイズを変更し、各ピクチャを対応するブロックに区分けするように構成されることが可能である。
更なる実施形態では、ビデオ・エンコーダは、ピクチャ201のブロック203、例えばピクチャ201を形成する1つの、幾つかの、又はすべてのブロックを直接的に受信するように構成されてもよい。また、ピクチャ・ブロック203は、現在のピクチャ・ブロック又は符号化されるべきピクチャ・ブロックとも言及されてもよい。一例では、ビデオ・エンコーダ20の予測処理ユニット260は、上述したパーティショニング技術の任意の組み合わせを実行するように構成されることが可能である。
ピクチャ201と同様に、ブロック203は、再び、ピクチャ201よりも小さな寸法ではあるが、強度値(サンプル値)を有するサンプルの二次元アレイ又はマトリクスであるか、又はそれらとして考えることが可能である。換言すると、ブロック203は、例えば、1つのサンプル・アレイ(例えば、モノクロ・ピクチャ201の場合におけるルマ・アレイ)又は3つのサンプル・アレイ(例えば、カラー・ピクチャ201の場合におけるルマ及び2つのクロマ・アレイ)、又は適用されるカラー・フォーマットに依存する任意の他の数量及び/又は種類のアレイを含んでもよい。ブロック203の水平及び垂直方向(又は軸)のサンプルの数は、ブロック203のサイズを規定する。従って、ブロックは、例えば、サンプルのMxN(M列N行)アレイ、又は変換係数のMxNアレイであってもよい。
図2に示すように、エンコーダ20は、ブロック毎にピクチャ201のブロックを符号化するように構成されており、例えば符号化及び予測が、ブロック203毎に実行される。
図2に示すビデオ・エンコーダ20の実施形態は、更に、スライス(ビデオ・スライスとも呼ばれる)を使用することによってピクチャを区分け及び/又は符号化するように構成されることが可能であり、ピクチャは、1つ以上のスライス(典型的には、重複しない)に区分けされ、又はそれらを使用して符号化されることが可能であり、各スライスは、1つ以上のブロック(例えば、CTU)又は1つ以上のブロックのグループ(例えば、タイル(H.265/HEVC及びVVC)又はブリック(VVC))を含むことが可能である。
図2に示すビデオ・エンコーダ20の実施形態は、スライス/タイル・グループ(ビデオ・タイル・グループとも呼ばれる)及び/又はタイル(ビデオ・タイルとも呼ばれる)を使用することによって、ピクチャを区分けする及び/又は符号化するように更に構成されることが可能であり、ピクチャは、1つ以上のスライス/タイル・グループ(典型的には、重複しない)に区分けされ又はそれらを使用して符号化されることが可能であり、各スライス/タイル・グループは、例えば1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを含むことが可能であり、各タイルは、例えば、矩形の形状であってもよく、1つ以上のブロック(例えば、CTU)、例えば完全な又は断片的なブロックを含む可能性がある。
残差計算
残差計算ユニット204は、例えばピクチャ・ブロック203のサンプル値から、予測ブロック265のサンプル値をサンプル毎に(ピクセル毎に)減算することにより、ピクチャ・ブロック203及び予測ブロック265(予測ブロック265についての更なる詳細は後述する)に基づいて残差ブロック205を算出し、サンプル・ドメインにおける残差ブロック205を取得するように構成される。
変換
変換処理ユニット206は、変換ドメインにおいて変換係数207を得るために、残差ブロック205のサンプル値に関して変換、例えば離散コサイン変換(DCT)又は離散サイン変換(DST)を適用するように構成される。変換係数207はまた、変換残差係数とも呼ばれ、変換ドメインにおける残差ブロック205を表す。
変換処理ユニット206は、HEVC/H.265用に指定された変換のような、DCT/DSTの整数近似を適用するように構成されてもよい。直交DCT変換と比較して、そのような整数近似は、典型的には、ある因子によってスケーリングされる。順変換と逆変換によって処理される残差ブロックのノルムを確保するために、変換プロセスの一部として付加的なスケーリング因子が適用される。スケーリング因子は、典型的には、シフト演算のために2の冪乗であるスケーリング因子、変換係数のビット深度、精度と実装コストとの間のトレードオフ等のような特定の制約に基づいて選択される。特定のスケーリング因子は、例えばデコーダ30における例えば逆変換処理ユニット212による逆変換(及び、エンコーダ20における例えば逆変換処理ユニット212による対応する逆変換)に関して指定され、エンコーダ20における例えば変換処理ユニット206による順変換のための対応するスケーリング因子が、それに応じて指定される可能性がある。
ビデオ・エンコーダ20(個々の変換処理ユニット206)の実施形態は、変換パラメータ、例えばあるタイプの変換又は複数の変換を、直接的に又はエントロピー符号化ユニット270により符号化若しくは圧縮して出力するように構成されることが可能であり、その結果、ビデオ・デコーダ30は復号化のために変換パラメータを受信及び使用することが可能である。
量子化
量子化ユニット208は、例えばスカラー量子化やベクトル量子化などを適用することにより、変換係数207を量子化し、量子化された変換係数209を取得するように構成される。量子化された変換係数209は、量子化された残差係数209とも言及されてもよい。量子化プロセスは、幾つかの又は全ての変換係数207に関連するビット深度を低減することができる。例えば、nビット変換係数は、量子化中にmビット変換係数に丸められる可能性があり、ここで、nはmより大きい。量子化の程度は、量子化パラメータ(QP)を調整することによって修正されることが可能である。例えば、スカラー量子化のために、異なるスケーリングが、より細かい又はより粗い量子化を達成するために適用されてもよい。より小さな量子化ステップはより細かい量子化に対応し、より大きな量子化ステップはより粗い量子化に対応する。適用可能な量子化ステップ・サイズは、量子化パラメータ(QP)により示されてもよい。例えば、量子化パラメータは、適用可能な量子化ステップ・サイズの所定のセットに対するインデックスであってもよい。例えば、より小さな量子化パラメータはより細かい量子化(より小さな量子化ステップ・サイズ)に対応することが可能であり、より大きな量子化パラメータはより粗い量子化(より大きな量子化ステップ・サイズ)に対応することが可能であり、その逆も可能である。量子化は、量子化ステップ・サイズによる除算と、逆量子化ユニット210等による対応する又は逆量子化とを含む可能性があり、量子化ステップ・サイズによる乗算を含む可能性がある。例えばHEVCのような幾つかの規格による実施形態は、量子化ステップ・サイズを決定するために量子化パラメータを使用するように構成されてもよい。一般に、量子化ステップ・サイズは、除算を含む式の固定小数点近似を使用して、量子化パラメータに基づいて計算されることが可能である。追加的なスケーリング因子が量子化及び逆量子化のために導入され、残差ブロックのノルムであって、量子化ステップ・サイズ及び量子化パラメータに関する式の固定小数点近似で使用されるスケーリングに起因して修正される可能性があるノルムを復元することが可能である。1つの例示的な実装において、逆変換及び逆量子化のスケーリングは組み合わせられてもよい。代替的に、カスタマイズされた量子化テーブルが使用され、エンコーダからデコーダへ、例えばビットストリームでシグナリングされてもよい。量子化はロスレスでない演算であり、量子化ステップ・サイズが増えるとロスが増える。
ビデオ・エンコーダ20(個々の変換処理ユニット206)の実施形態は、量子化パラメータ(QP)を、例えば直接的に又はエントロピー符号化ユニット270により符号化して出力するように構成されることが可能であり、その結果、ビデオ・デコーダ30は復号化のために量子化パラメータを受信及び適用することが可能である。
逆量子化ユニット210は、量子化ユニット208の逆量子化を量子化係数に適用して、例えば量子化ユニット208により適用される量子化方式の逆を、量子化ユニット208と同じ量子化ステップに基づいて又はそれを使用して適用することにより、逆量子化係数211を取得するように構成される。逆量子化係数211はまた、逆量子化残差係数211とも呼ばれる可能性があり、変換係数207に対応するが、量子化によるロスに起因して、典型的には変換係数に一致しない。
逆変換処理ユニット212は、変換処理ユニット206によって適用される変換の逆変換、例えば逆離散コサイン変換(DCT)又は逆離散サイン変換(DST)を適用して、サンプル・ドメインにおける逆変換ブロック213を取得するように構成される。逆変換ブロック213はまた、逆変換逆量子化ブロック213又は逆変換残差ブロック213と言及されてもよい。
再構成ユニット214(例えば、加算器214)は、予測ブロック265に逆変換ブロック213(即ち、再構成された残差ブロック213)を加算して、例えば再構成された残差ブロック213のサンプル値と予測ブロック265のサンプル値とを加算することにより、サンプル・ドメインにおいて再構成されたブロック215を取得するように構成される。
オプションとして、例えばライン・バッファ216のようなバッファ・ユニット216(又は略称「バッファ」216)は、再構成されたブロック215と例えばイントラ予測のための個々のサンプル値とをバッファリング又は記憶するように構成される。更なる実施形態において、エンコーダは、任意の種類の推定及び/又は予測、例えばイントラ予測のために、バッファ・ユニット216に記憶されたフィルタリングされていない再構成ブロック及び/又は対応するサンプル値を使用するように構成されてもよい。
エンコーダ20の実施形態は、例えばバッファ・ユニット216が、イントラ予測254のために再構成ブロック215を記憶するためだけはでなく、ループ・フィルタ・ユニット220(図2には図示せず)のためにも使用されるように、及び/又は例えばバッファ・ユニット216と復号化されたピクチャのバッファ・ユニット230とが1つのバッファを形成するように、構成されることが可能である。他の実施形態は、フィルタリングされたブロック221及び/又は復号化されたピクチャのバッファ230(両者は図2に示されていない)からのブロック又はサンプルを、イントラ予測254のための入力又は基礎として使用するように構成されることが可能である。
ループ・フィルタ・ユニット220(又は、略称「ループ・フィルタ」220)は、フィルタリングされたブロック221を取得するために、再構成されたブロック215をフィルタリングし、例えばピクセル遷移を平滑化し、又は別の方法でビデオ品質を改善するように構成される。ループ・フィルタ・ユニット220は、デブロッキング・フィルタ、サンプル・アダプティブ・オフセット(SAO)フィルタ、又は他のフィルタのような1つ以上のループ・フィルタ、例えばバイラテラル・フィルタ、アダプティブ・ループ・フィルタ(ALF)、鮮鋭化又は平滑化フィルタ、又は協調フィルタを表すように意図されている。ループ・フィルタ・ユニット220は、ループ内フィルタとして図2に示されているが、他の構成では、ループ・フィルタ・ユニット220は、ポスト・ループ・フィルタとして実装されてもよい。フィルタリングされたブロック221はまた、フィルタリング済みの再構成されたブロック221として言及されてもよい。復号化されたピクチャのバッファ230は、ループ・フィルタ・ユニット220が再構成されたコーディング・ブロックに対してフィルタリング処理を実行した後に、再構成されたコーディング・ブロックを記憶することが可能である。
ループ・フィルタ・ユニット220(又は、略称「ループ・フィルタ」220)は、再構成ブロック215をフィルタリングしてフィルタリングされたブロック221を取得し、一般的には、再構成サンプルをフィルタリングしてフィルタリングされたサンプル値を取得するように構成される。ループ・フィルタ・ユニットは、例えばピクセル遷移を平滑化し、又は別の方法でビデオ品質を改善するように構成される。ループ・フィルタ・ユニット220は、デブロッキング・フィルタ、サンプル・アダプティブ・オフセット(SAO)フィルタ、又は1つ以上の他のフィルタのような1つ以上のループ・フィルタ、例えばアダプティブ・ループ・フィルタ(ALF)、ノイズ抑制フィルタ(NSF)、又はそれらの任意の組み合わせを含むことが可能である。一例では、ループ・フィルタ・ユニット220は、デブロッキング・フィルタ、SAOフィルタ、及びALFフィルタを含んでもよい。フィルタリング・プロセスの順序は、デブロッキング・フィルタ、SAO及びALFであってもよい。別の例では、クロマ・スケーリングによるルマ・マッピング(LMCS)と呼ばれるプロセス(即ち、適応ループ内リシェーパー)が追加される。このプロセスはデブロッキングの前に実行される。別の例では、デブロッキング・フィルタ・プロセスはまた、内部サブブロック・エッジ、例えばアフィン・サブブロック・エッジ、ATMVPサブブロック・エッジ、サブブロック変換(SBT)エッジ、及びイントラ・サブ・パーティション(ISP)エッジに適用されてもよい。ループ・フィルタ・ユニット220は図2ではループ内フィルタとして示されているが、他の構成では、ループ・フィルタ・ユニット220は、ポスト・ループ・フィルタとして実装されてもよい。フィルタリングされたブロック221はまた、フィルタリングされた再構成ブロック221と言及されてもよい。
ビデオ・エンコーダ20(個々のループ・フィルタ・ユニット220)の実施形態は、(SAOフィルタ・パラメータ又はALFフィルタ・パラメータ又はLMCSパラメータのような)ループ・フィルタ・パラメータを、例えば直接的に又はエントロピー復号化ユニット270により符号化して出力するように構成されることが可能であり、その結果、例えばデコーダ30は同じループ・フィルタ・パラメータ又は個々のループ・フィルタを復号化のために受信及び適用することが可能である。
エンコーダ20(個々のループ・フィルタ・ユニット220)の実施形態は、(サンプル適応オフセット情報のような)出力フィルタ・パラメータを、例えば直接的に又はエントロピー符号化ユニット270若しくは任意の他のエントロピー・コーディング・ユニットによりエントロピー符号化して出力するように構成されることが可能であり、その結果、デコーダ30は復号化のために同じループ・フィルタ・パラメータを受信して適用することが可能である。
復号化されたピクチャのバッファ(DPB)230は、ビデオ・エンコーダ20によってビデオ・データを符号化する際に使用する参照ピクチャ・データを記憶する参照ピクチャ・メモリであってもよい。DPB230は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)を含むダイナミック・ランダム・アクセス・メモリ(DRAM)、又は他のタイプのメモリ・デバイスのような種々のメモリ・デバイスのうちの何れによって形成されてもよい。DPB230及びバッファ216は、同一のメモリ・デバイス又は別個のメモリ・デバイスによって提供されてもよい。幾つかの例では、復号化されたピクチャのバッファ(DPB)230は、フィルタリングされたブロック221を格納するように構成される。復号化されたピクチャのバッファ230は、更に、同じ現在ピクチャ又は例えば以前に再構成されたピクチャのような異なるピクチャの、例えば以前に再構成されフィルタリングされたブロック221のような他の以前にフィルタリングされたブロックを記憶するように構成されることが可能であり、完全な以前の再構成された、即ち復号化されたピクチャ(及び対応する参照ブロック及び対応するサンプル)及び/又は例えばインター予測のために部分的に再構成された現在ピクチャ(及び対応する参照ブロック及び対応するサンプル)を提供することが可能である。幾つかの例では、再構成ブロック215が再構成されるがループ内フィルタリングなしに行われる場合、復号化されたピクチャのバッファ(DPB)230は、1つ以上のフィルタリングされていない再構成ブロック215、又は、一般的には、例えば再構成されたブロック215がループ・フィルタ・ユニット220によってフィルタリングされていない場合には、フィルタリングされていない再構成されたサンプル、又は再構成されたブロック又はサンプルの他の任意の更なる処理されたバージョンを記憶するように構成される。
予測処理ユニット260はまた、ブロック予測処理ユニット260とも言及され、ブロック203(現在ピクチャ201の現在ブロック203)及び再構成されたピクチャ・データ、例えばバッファ216からの同じ(現在の)ピクチャの参照サンプル、及び/又は復号化されたピクチャのバッファ230からの1つ以上の以前に復号化されたピクチャからの参照ピクチャ・データ231を受信又は取得し、そのデータを予測のために処理し、即ち、インター予測ブロック245又はイントラ予測ブロック255である可能性がある予測ブロック265を提供するように構成される。
モード選択ユニット262は、残差ブロック205の計算のため、及び再構成ブロック215の再構成のために、予測ブロック265として使用されるべき予測モード(例えば、イントラ又はインター予測モード)及び/又は対応する予測ブロック245又は255を選択するように構成されることが可能である。
モード選択ユニット262の実施形態は、予測モードを(例えば、予測処理ユニット260によりサポートされる予測モードから)選択するために構成されてもよく、予測モードは、最良の一致又は言い換えれば最小の残差(最小の残差は、伝送又は記憶に対して、より良い圧縮を意味する)、又は最小のシグナリング・オーバーヘッド(最小のシグナリング・オーバーヘッドは、伝送又は記憶に対する、より良い圧縮を意味する)を提供し、或いは両者を考慮する又はバランスをとる。モード選択ユニット262は、レート歪最適化(RDO)に基づいて予測モードを決定するように、即ち、最小レート歪最適化を提供する予測モード、又は関連するレート歪が少なくとも予測モード選択基準を満たす予測モードを選択するように構成されてもよい。
以下、例示的なエンコーダ20によって実行される予測処理(例えば、予測処理ユニット260及び(例えば、モード選択ユニット262による)モード選択を詳細に説明する。
上述の実施形態に対して追加的又は代替的に、図15による別の実施形態において、モード選択ユニット260は、パーティショニング・ユニット262、インター予測ユニット244、及びイントラ予測ユニット254を含み、オリジナル・ピクチャ・データ、例えばオリジナル・ブロック203(現在ピクチャ17の現在ブロック203)、及び、再構成されたピクチャ・データ、例えば同じ(現在の)ピクチャの、及び/又は、1つ以上の以前に復号化されたピクチャからの、例えば復号化されたピクチャのバッファ230又は他のバッファ(例えば、不図示のライン・バッファ)からの、フィルタリングされた及び/又はフィルタリングされていないサンプル又はブロックを受信又は取得するように構成される。再構成されたピクチャ・データは、予測ブロック265又は予測子265を得るために、予測、例えばインター予測又はイントラ予測のための参照ピクチャ・データとして使用される。
モード選択ユニット260は、現在ブロックの予測モード(区分けしないものを含む)及び予測モード(例えば、イントラ又はインター予測モード)に対するパーティショニングを決定又は選択し、残差ブロック205の計算及び再構成ブロック215の再構成のために使用される対応する予測ブロック265を生成するように構成されることが可能である。
モード選択ユニット260の実施形態は、最良の一致、又は言い換えれば、最小の残差(最小の残差は伝送又は記憶のためのより良い圧縮を意味する)、又は最小のシグナリング・オーバーヘッド(最小のシグナリング・オーバーヘッドは伝送又は記憶のためのより良い圧縮を意味する)を提供するか、又は両方を考慮若しくはバランスさせるパーティショニング及び予測モードを(例えば、モード選択ユニット260によってサポートされるもの又は利用可能なものから)選択するように構成されることが可能である。モード選択ユニット260は、レート歪最適化(RDO)に基づいて、パーティショニング及び予測モードを決定するように、即ち最小レート歪を提供する予測モードを選択するように構成されてもよい。この文脈における「最良」、「最低」、「最適」などの用語は、必ずしも全体的な「最良」、「最低」、「最適」などを指してはおらず、ある値が閾値を上回る又は下回ることのような終了又は選択の基準、又は「次善の選択」をもたらす可能性はあるが複雑性及び処理時間を減らす他の制約の達成を指す可能性もある。
換言すれば、パーティショニング・ユニット262は、ビデオ・シーケンスからのピクチャをコーディング・ツリー・ユニット(CTU)のシーケンスに区分けするように構成されることが可能であり、CTU203は、例えば四分木パーティショニング(QT)、二分木パーティショニング(BT)又は三分木パーティショニング(TT)又はそれらの任意の組み合わせを反復的に使用して、より小さなブロック・パーティション又はサブブロックに更に区分けされ(それらは再びブロックを形成する)、例えばブロック・パーティション又はサブブロックのそれぞれについて予測を実行することが可能であり、モード選択は、区分けされたブロック203のツリー構造の選択を含み、予測モードは、ブロック・パーティション又はサブブロックのそれぞれに適用される。
以下、例示的なビデオ・エンコーダ20によって実行されるパーティショニング(例えば、パーティショニング・ユニット260によるもの)及び予測処理(インター予測ユニット244及びイントラ予測ユニット254によるもの)をより詳細に説明する。
パーティショニング
パーティショニング・ユニット262は、ビデオ・シーケンスからのピクチャを、コーディング・ツリー・ユニット(CTU)のシーケンスに区分けするように構成されることが可能であり、パーティショニング・ユニット262は、コーディング・ツリー・ユニット(CTU)203を、より小さなパーティショニング、例えば正方形又は長方形サイズのより小さなブロックに区分け(又は分割)することが可能である。3つのサンプル・アレイを有するピクチャの場合、CTUはルマ・サンプルのN×Nブロックとクロマ・サンプルの2つの対応するブロックから構成される。CTUのルマ・ブロックの最大許容サイズは、発展中の汎用ビデオ・コーディング(VVC)では128×128であるように指定されているが、将来的には128×128以外の値、例えば256×256であるように指定される可能性がある。ピクチャのCTUは、スライス/タイル・グループ、タイル又はブリックとしてクラスタ化/グループ化されることが可能である。タイルはピクチャの矩形領域をカバーし、タイルは1つ以上のブリックに分割されることが可能である。ブリックはタイル内の複数のCTU行から構成される。複数のブリックに区分けされないタイルは、ブリックと言及されることが可能である。しかしながら、ブリックはタイルの真のサブセットであり、タイルとは言及されない。VVCでサポートされるタイル・グループには、ラスタ・スキャン・スライス/タイル・グループ・モード及び矩形スライス・モードの2つのモードがある。ラスタ・スキャン・タイル・グループ・モードでは、スライス/タイル・グループは、ピクチャのタイル・ラスタ・スキャンにおけるタイル・シーケンスを含む。矩形スライス・モードでは、スライスは、ピクチャの矩形領域を集合的に形成するピクチャの多数のブリックを含む。矩形スライス内のブリックは、スライスのブリック・ラスター・スキャンの順番にある。これらのより小さなブロック(サブブロックと呼ばれる場合もある)は、更に小さなパーティションに更に区分けされることが可能である。これは、ツリー・パーティショニング又は階層ツリー・パーティショニングとも呼ばれ、例えばルート・ツリー・レベル0(階層レベル0、深度0)におけるルート・ブロックは、再帰的に区分けされ、例えば次の下位ツリー・レベルの2つ以上のブロックに、例えばツリー・レベル1(階層レベル1、深度1)におけるノードで区分けされることが可能であり、これらのブロックは、次の下位レベルの2つ以上のブロックに、例えばツリー・レベル2(階層レベル2、深度2)等において、例えば終了基準が満たされること、例えば最大ツリー深度又は最小ブロック・サイズに到達したことに起因して区分けが終了するまで、再び区分けされることが可能である。更に区分けされないブロックは、ツリーのリーフ・ブロック又はリーフ・ノードとも呼ばれる。2つのパーティションへの区分けを使用するツリーは二分木(BT)、3つのパーティションへの区分けを使用するツリーは三分木(TT)、4つのパーティションへの区分けを使用するツリーは四分木(QT)と呼ばれる。
例えば、コーディング・ツリー・ユニット(CTU)は、ルマ・サンプルのCTB、3つのサンプル・アレイを有するピクチャのクロマ・サンプルの2つの対応するCTB、又は、サンプルをコーディングするために使用される3つの別々のカラー・プレーン及びシンタックス構造を使用してコーディングされるピクチャ又はモノクロ・ピクチャのサンプルのCTBであってもよいし、又はこれらを含んでもよい。これに対応して、コーディング・ツリー・ブロック(CTB)は、成分のCTBへの分割がパーティショニングであるように、ある値Nに対するサンプルのNxNブロックであってもよい。コーディング・ユニット(CU)は、ルマ・サンプルのコーディング・ブロック、3つのサンプル・アレイを有するピクチャのクロマ・サンプルの2つの対応するコーディング・ブロック、又は、サンプルをコーディングするために使用される3つの別々のカラー・プレーン及びシンタックス構造を使用してコーディングされるピクチャ又はモノクロ・ピクチャのサンプルのコーディング・ブロックであってもよいし、又はこれらを含んでもよい。これに対応して、コーディング・ブロック(CB)は、CTBのコーディング・ブロックへの分割がパーティショニングであるように、M及びNのある値に対するサンプルのMxNブロックであってもよい。
実施形態において、例えばHEVCによれば、コーディング・ツリー・ユニット(CTU)は、コーディング・ツリーとして示される四分木構造を使用することによって、CUに分割されることが可能である。インター・ピクチャ(時間的)又はイントラ・ピクチャ(空間的)予測を使用するピクチャ・エリアをコーディングするかどうかの決定は、リーフCUレベルで行われる。各リーフCUは、PU分割タイプに応じて、更に1つ、2つ、又は4つのPUに分割されることが可能である。1つのPU内では、同じ予測プロセスが適用され、関連情報がPUベースでデコーダに送信される。PU分割タイプに基づいて予測プロセスを適用することにより残差ブロックを取得した後に、リーフCUは、CUのコーディング・ツリーに類似する別の四分木構造に従って変換ユニット(TU)に区分けされることが可能である。
実施形態では、例えば、汎用ビデオ・コーディング(VVC)と呼ばれる現在発展中の最新のビデオ・コーディング規格によれば、例えば二分木及び三分木セグメンテーション構造を使用する組み合わせ四分木ネスト・マルチタイプ・ツリーが、コーディング・ツリー・ユニットを区分けするために使用される。コーディング・ツリー・ユニットにおけるコーディング・ツリー構造では、CUは正方形又は長方形の何れかの形状を有することができる。例えば、コーディング・ツリー・ユニット(CTU)は、先ず四分木によって区分けされる。次いで、四分木リーフ・ノードは、マルチタイプ・ツリー構造によって更に区分けされることが可能である。マルチタイプ・ツリー構造には、垂直二分割(SPLIT_BT_VER)、水平二分割(SPLIT_BT_HOR)、垂直三分割(SPLIT_TT_VER)、水平三分割(SPLIT_TT_HOR)の4つの分割タイプがある。マルチタイプ・ツリー・リーフ・ノードは、コーディング・ユニット(CU)と呼ばれ、CUが最大変換長に対して大きすぎない限り、このセグメンテーションは、更なる如何なるパーティショニングもなしに、予測及び変換処理に使用される。これは、ほとんどの場合、CU、PU、及びTUが、ネストされたマルチタイプ・ツリー・コーディング・ブロック構造を有する四分木において同じブロック・サイズを有することを意味する。例外は、サポートされる最大変換長がCUのカラー成分の幅又は高さよりも小さい場合に発生する。VVCは、ネストされたマルチタイプ・ツリー・コーディング・ツリー構造を有する四分木におけるパーティション分割情報の固有のシグナリング・メカニズムを開発している。シグナリング・メカニズムでは、コーディング・ツリー・ユニット(CTU)は四分木のルートとして扱われ、先ず四分木構造によって区分けされる。各々の四分木リーフ・ノード(それを許容する程度に十分に大きい場合)は、次いで、マルチタイプ・ツリー構造によって更に区分けされる。マルチタイプ・ツリー構造では、第1フラグ(mtt_split_cu_flag)は、ノードが更に区分けされているかどうかを示すためにシグナリングされ、ノードが更に区分けされる場合には、第2フラグ(mtt_split_cu_vertical_flag)が、分割方向を示すためにシグナリングされ、次いで、第3フラグ(mtt_split_cu_binary_flag)が、分割は二分割であるか又は三分割であるかを示すためにシグナリングされる。mtt_split_cu_vertical_flag及びmtt_split_cu_binary_flagの値に基づいて、CUのマルチタイプ・ツリー分割モード(MttSplitMode)は、予め定義されたルール又はテーブルに基づいてデコーダによって導出されることが可能である。特定の設計、例えばVVCハードウェア・デコーダにおける64×64ルマ・ブロック及び32×32クロマ・パイプライン設計では、図6に示すように、ルマ・コーディング・ブロックの幅又は高さのうちの何れかが64より大きい場合に、TT分割は禁止されることに留意すべきである。TT分割は、クロマ・コーディング・ブロックの幅又は高さが32を超える場合にも禁止される。パイプライン設計は、ピクチャを仮想パイプライン・データ・ユニット(VPDU)に分割し、これはピクチャ内の重複しないユニットとして定義される。ハードウェア・デコーダでは、連続するVPDUが複数のパイプライン・ステージによって同時に処理される。VPDUサイズは、ほとんどのパイプライン・ステージのバッファ・サイズに大まかに比例するので、VPDUサイズを小さく保つことは重要である。ほとんどのハードウェア・デコーダでは、VPDUサイズは最大変換ブロック(TB)サイズに設定されることが可能である。しかしながら、VVCでは、三分木(TT)及び二分木(BT)パーティションは、VPDUサイズの増加を招く可能性がある。更に、ツリー・ノード・ブロックの一部が下又は右のピクチャ境界を超える場合、ツリー・ノード・ブロックは、すべてのコーディングされるCUのすべてのサンプルがピクチャ境界内に配置されるまで、強制的に分割されることに留意すべきである。
一例として、イントラ・サブ・パーティション(ISP)ツールは、ブロック・サイズに依存して、ルマ・イントラ予測ブロックを縦方向又は横方向に、2つ又は4つのサブ・パーティションに分割することができる。
一例では、ビデオ・エンコーダ20のモード選択ユニット260は、本願で説明されるパーティショニング技術の任意の組み合わせを実行するように構成されることが可能である。上述したように、エンコーダ20は、一組の(あらかじめ決定された)予測モードから、最良の又は最適な予測モードを決定又は選択するように構成される。予測モードのセットは、例えば、イントラ予測モード及び/又はインター予測モードを含む可能性がある。
イントラ予測モードのセットは、35個の異なるイントラ予測モード、例えばDC(又は平均)モード及び平面モードのような非方向モード、又は例えばH.265で規定されているような方向モードを含むことが可能であり、又は、67個の異なるイントラ予測モード、例えばDC(又は平均)モード及び平面モードのような非方向モード、又は例えばVVCで規定されているような方向モードを含むことが可能である。一例として、幾つかの従来の角度イントラ予測モードが、例えばVVCで規定されるように、非正方形ブロックのための広角イントラ予測モードで適応的に置換される。別の例として、DC予測のための分割演算を回避するために、長辺のみが、非正方形ブロックに対する平均を計算するために使用される。また、プレーナ・モードのイントラ予測の結果は,位置依存イントラ予測結合(PDPC)法によって更に修正されることが可能である。イントラ予測ユニット254は、イントラ予測モードのセットのイントラ予測モードに従って、同一の現在ピクチャの隣接ブロックの再構成されたサンプルを使用して、イントラ予測ブロック265を生成するように構成される。
イントラ予測ユニット254(又は、一般に、モード選択ユニット260)は、符号化されたピクチャ・データ21に含めるためのシンタックス要素266の形式で、エントロピー符号化ユニット270にイントラ予測パラメータ(又は、一般的には、ブロックに対する選択されたイントラ予測モードを示す情報)を出力するように更に構成され、その結果、例えばビデオ・デコーダ30は、復号化のために予測パラメータを受信して使用することができる。
一組の(又は可能性のある)イントラ予測モードは、利用可能な参照ピクチャ(即ち、少なくとも部分的に復号化された以前のピクチャ、例えばDBP230に格納されているもの)及び他のインター予測パラメータ、例えば参照ピクチャの全体又は一部のみ、例えば参照ピクチャの、現在ブロックのエリア周辺のサーチ・ウィンドウ・エリアが、最良に合致する参照ブロックを探索するために使用されるかどうか、及び/又は、例えばハーフ/セミ・ペル、クォーター・ペル、及び/又は1/16ペル補間のようなピクセル補間が適用されるかどうか等に依存する。
上記の予測モードに加えて、スキップ・モード、ダイレクト・モード、及び/又は他のインター予測モードが適用されてもよい。
例えば、拡張マージ予測、このようなモードのマージ候補リストは、次の5つのタイプの候補:空間的な隣接CUからの空間的MVP、同じ位置にあるCUからの時間的なMVP、FIFOテーブルからの履歴ベースMVP、ペアワイズ平均MVP及びゼロMVを、順に含めることによって構成される。また、マージ・モードのMVの精度を高めるために、バイラテラル・マッチング・ベースのデコーダ側の動きベクトル精密化(DMVR)が適用されてもよい。MVDを伴うマージ・モード(MMVD)は、動きベクトル差分を伴うマージ・モードに由来する。MMVDフラグは、スキップ・フラグとマージ・フラグを送信した直後に、MMVDモードがCUに使用されるかどうかを指定するためにシグナリングされる。そして、CUレベル適応動きベクトル分解(AMVR)方式が適用されてもよい。AMVRは、CUのMVDが、異なる精度で復号化されることを許容する。現在のCUの予測モードに依存して、現在のCUのMVDは適応的に選択されることが可能である。CUがマージ・モードで符号化される場合に、結合されたインター/イントラ予測(CIIP)モードは、現在のCUに適用されることが可能である。CIIP予測を得るために、インター及びイントラ予測信号の加重平均が実行される。アフィン動き補償予測、ブロックのアフィン・モーション・フィールドは、2制御点(4パラメータ)又は3制御点動きベクトル(6パラメータ)の動き情報によって記述される。サブブロック・ベースの時間的動きベクトル予測(SbTMVP)は、HEVCにおける時間的動きベクトル予測(TMVP)に類似しているが、現在のCUにおけるサブCUの動きベクトルを予測する。以前はBIOと呼ばれていた双方向オプティカル・フロー(BDOF)は、特に乗算の数及び乗算器のサイズに関してはるかに少ない計算量を必要とする、より簡易なバージョンである。三角パーティション・モードのようなモードでは、CUは、対角分割又は反対角分割の何れかを使用して、2つの三角形パーティションに均等に分割される。加えて、双方向予測モードは、単純な平均を越えて拡張され、2つの予測信号の重み付け平均を可能にする。
上記の予測モードに加えて、スキップ・モード及び/又はダイレクト・モードが適用されてもよい。
予測処理ユニット260は、更に、ブロック203を、より小さなブロック・パーティション又はサブブロックに、例えば四分木パーティション(QT)、二分パーティション(BT)、三分パーティション(TT)又はそれらの組み合わせを反復的に使用することで区分けし、例えばブロック・パーティション又はサブブロックの各々について予測を実行するように構成されることが可能であり、モード選択は、区分けされたブロック203のツリー構造と、ブロック・パーティション又はサブブロック各々に適用される予測モードとの選択を含む。
インター予測ユニット244は、動き推定(ME)ユニット(図2には示されていない)及び動き補償(MC)ユニット(図2には示されていない)を含むことが可能である。動き推定ユニットは、動き推定のために、ピクチャ・ブロック203(現在のピクチャ201の現在のピクチャ・ブロック203)及び復号化されたピクチャ231、又は少なくとも1つ又は複数の以前に再構成されたブロック、例えば1つ又は複数の他の/異なる以前に復号化されたピクチャ231の再構成ブロックを受信又は取得するように構成される。例えば、ビデオ・シーケンスは、現在のピクチャと以前に復号化されたピクチャ231とを含む可能性があり、又は換言すれば、現在のピクチャと以前に復号化されたピクチャ231とは、ビデオ・シーケンスを形成するピクチャの一部であってもよいし、又はピクチャのシーケンスを形成してもよい。
エンコーダ20は、例えば、複数の他のピクチャの同じ又は異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(又は参照ピクチャ・インデックス、...)及び/又は参照ブロックの位置(x,y座標)と現在ブロックの位置との間のオフセット(空間オフセット)とを、インター予測パラメータとして動き推定ユニット(図2には示されていない)へ提供するように構成されてもよい。このオフセットも動きベクトル(MV)と呼ばれる。
動き補償ユニットは、インター予測パラメータを取得して、例えば受信して、インター予測パラメータに基づいて又はそれを使用してインター予測を実行し、インター予測ブロック265を取得するように構成される。動き補償ユニットによって実行される動き補償は、動き推定によって決定される動き/ブロック・ベクトルに基づいて予測ブロックをフェッチ又は生成すること、可能性としてサブピクセル精度まで補間を実行することを包含することが可能である。補間フィルタリングは、既知のピクセル・サンプルから追加のピクセル・サンプルを生成することができ、従って潜在的に、ピクチャ・ブロックをコーディングするために使用されることが可能な候補予測ブロックの数を増加させる。現在のピクチャ・ブロックのPUに対する動きベクトルを受信すると、動き補償ユニットは、参照ピクチャ・リストのうちの1つにおいて動きベクトルが指し示す予測ブロックを突き止めることができる。
イントラ予測ユニット254は、ピクチャ・ブロック203(現在のピクチャ・ブロック)及び同じピクチャの、1つ又は複数の以前に再構成されたブロック、例えば再構成された隣接ブロックをイントラ推定のために取得する、例えば受信するように構成される。エンコーダ20は、例えば複数の(所定の)イントラ予測モードからイントラ予測モードを選択するように構成されことが可能である。
エンコーダ20の実施形態は、最適化基準、例えば最小残差(例えば、イントラ予測モードは現在のピクチャ・ブロック203に最も類似する予測ブロック255を提供する)又は最小レート歪に基づいて、イントラ予測モードを選択するように構成されてもよい。
イントラ予測ユニット254は、イントラ予測パラメータ、例えば選択されたイントラ予測モード、イントラ予測ブロック255に基づいて決定するように更に構成される。何れにせよ、ブロックに対するイントラ予測モードを選択した後、イントラ予測部254は、イントラ予測パラメータ、即ちブロックに対して選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット270に提供するようにも構成される。一例において、イントラ予測ユニット254は、後述するイントラ予測技術の任意の組み合わせを実行するように構成されてもよい。
エントロピー符号化ユニット270は、エントロピー符号化アルゴリズム又はスキーム(例えば、可変長コーディング(VLC)スキーム、コンテキスト適応VLCスキーム(CALVC)、算術コーディング・スキーム、コンテキスト適応バイナリ算術コーディング(CABAC)、シンタックス・ベースのコンテキスト適応バイナリ算術コーディング(SBAC)、確率区間パーティショニング・エントロピー(PIPE)コーディング、又は他のエントロピー符号化方法又は技術)を、量子化残差係数209、インター予測パラメータ、イントラ予測パラメータ、及び/又はループ・フィルタ・パラメータに適用し、個々に又は一緒に(又は全てではない)、出力272により出力されることが可能な符号化されたピクチャ・データ21を、例えば符号化されたビットストリーム21の形式で取得するように構成される。符号化されたビットストリーム21は、ビデオ・デコーダ30に送信されてもよいし、後の送信又はビデオ・デコーダ30による検索のために保存されてもよい。エントロピー符号化ユニット270は、符号化される現在のビデオ・スライスのための他のシンタックス要素をエントロピー符号化するように更に構成されることが可能である。
ビデオ・エンコーダ20の他の構造的変形は、ビデオ・ストリームを符号化するために使用されることが可能である。例えば、非変換ベースのエンコーダ20は、特定のブロック又はフレームについて、変換処理ユニット206なしに残差信号を直接的に量子化することが可能である。別の実装において、エンコーダ20は、量子化ユニット208と逆量子化ユニット210とを単一のユニットに結合させることが可能である。
図3は、本願の実現を実装するように構成された例示的なビデオ・デコーダ30を示す。ビデオ・デコーダ30は、符号化されたピクチャ・データ(例えば符号化されたビットストリーム)21、例えばエンコーダ100によって符号化されたものを受信して、復号化されたピクチャ131を得るように構成される。復号化プロセスの間に、ビデオ・デコーダ30は、ビデオ・データ、例えば符号化されたビデオ・スライス及び関連するシンタックス要素のピクチャ・ブロックを表す符号化されたビデオ・ビットストリームを、ビデオ・エンコーダ100から受信する。
図3の例では、デコーダ30は、エントロピー復号化ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(例えば、加算器314)、バッファ316、ループ・フィルタ320、復号化されたピクチャのバッファ330、及び予測処理ユニット360を含む。予測処理ユニット360は、インター予測ユニット344と、イントラ予測ユニット354と、モード選択ユニット362とを含んでもよい。ビデオ・デコーダ30は、幾つかの例において、図2によりビデオ・エンコーダ100に関して説明した符号化パスと概ね逆の復号化パスを実行することが可能である。
エンコーダ20に関して説明したように、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループ・フィルタ220、復号化されたピクチャのバッファ(DPB)230、インター予測ユニット344、及びイントラ予測ユニット354も、ビデオ・エンコーダ20の「内蔵デコーダ」を形成するものとして言及される。従って、逆量子化ユニット310は、逆量子化ユニット110と機能的に同一であってもよく、逆変換処理ユニット312は、逆変換処理ユニット212と機能的に同一であってもよく、再構成ユニット314は、再構成ユニット214と機能的に同一であってもよく、ループ・フィルタ320は、ループ・フィルタ220と機能的に同一であってもよく、復号化されたピクチャのバッファ330は、復号化されたピクチャのバッファ230と機能的に同一であってもよい。従って、ビデオ・エンコーダ20の各ユニット及び機能に対して行われた説明は、ビデオ・デコーダ30の各ユニット及び機能に、対応して適用される。
エントロピー復号化ユニット304は、符号化されたピクチャ・データ21に対するエントロピー復号化を実行して、例えば量子化係数309及び/又は復号化されたコーディング・パラメータ(図3には示されていない)、例えば(復号化された)インター予測パラメータ、イントラ予測パラメータ、ループ・フィルタ・パラメータ、及び/又は他のシンタックス要素の何れか又は全てを取得するように構成される。エントロピー復号化ユニット304は、更に、インター予測パラメータ、イントラ予測パラメータ、及び/又は他のシンタックス要素を、予測処理ユニット360に転送するように構成される。ビデオ・デコーダ30は、ビデオ・スライス・レベル及び/又はビデオ・ブロック・レベルでシンタックス要素を受信することができる。
エントロピー復号化ユニット304は、ビットストリーム21(又は一般的には符号化されたピクチャ・データ21)を解析し、例えば符号化されたピクチャ・データ21に対するエントロピー復号化を実行して、例えば量子化係数309及び/又は復号化されたコーディング・パラメータ(図3には示されていない)、例えばインター予測パラメータ(例えば、参照ピクチャ・インデックス及び動きベクトル)、イントラ予測パラメータ(例えば、イントラ予測モード又はインデックス)、変換パラメータ、量子化パラメータ、ループ・フィルタ・パラメータ、及び/又は他のシンタックス要素の何れか又は全てを取得するように構成される。エントロピー復号化ユニット304は、エンコーダ20のエントロピー符号化ユニット270に関して説明したような符号化スキームに対応する復号化アルゴリズム又はスキームを適用するように構成されることが可能である。エントロピー復号化ユニット304は、更に、インター予測パラメータ、イントラ予測パラメータ及び/又は他のシンタックス要素をモード適用ユニット360に提供し、他のパラメータをデコーダ30の他のユニットに提供するように更に構成されてもよい。ビデオ・デコーダ30は、ビデオ・スライス・レベル及び/又はビデオ・ブロック・レベルでシンタックス要素を受信することができる。スライス及びそれぞれのシンタックス要素に追加的に又は代替として、タイル・グループ及び/又はタイル及びそれぞれのシンタックス要素が受信及び/又は使用されてもよい。
逆量子化ユニット310は、逆量子化ユニット110と機能的に同一であってもよく、逆変換処理ユニット312は、逆変換処理ユニット112と機能的に同一であってもよく、再構成ユニット314は、機能的に同一であってもよく、バッファ316は、バッファ116と機能的に同一であってもよく、ループ・フィルタ320は、ループ・フィルタ120と機能的に同一であってもよく、復号化されたピクチャのバッファ330は、復号化されたピクチャのバッファ130と機能的に同一であってもよい。
デコーダ30の実施形態は、パーティショニング・ユニット(図3には示されていない)を含んでもよい。一例では、ビデオ・デコーダ30の予測処理ユニット360は、上述したパーティショニング技術の任意の組み合わせを実行するように構成されてもよい。
予測処理ユニット360は、インター予測ユニット344とイントラ予測ユニット354とを含み、インター予測ユニット344は機能的にはインター予測ユニット144と類似していてもよく、イントラ予測ユニット354は機能的にはイントラ予測ユニット154と類似していてもよい。予測処理ユニット360は、典型的には、ブロック予測を実行し、及び/又は符号化されたデータ21から予測ブロック365を取得して、予測関連パラメータ及び/又は選択された予測モードに関する情報を、例えばエントロピー復号化ユニット304から(明示的又は暗示的に)受信又は取得するように構成される。
ビデオ・スライスがイントラ符号化(I)スライスとして符号化されると、予測処理ユニット360のイントラ予測ユニット354は、現在フレーム又はピクチャの以前の復号化されたブロックからのデータ及びシグナリングされたイントラ予測モードに基づいて、現在のビデオ・スライスのピクチャ・ブロックに対する予測ブロック365を生成するように構成される。ビデオ・フレームが、インター符号化された(即ち、B又はP)スライスとして符号化されると、予測処理ユニット360のインター予測ユニット344(例えば、動き補償ユニット)は、エントロピー復号化ユニット304から受信した動きベクトル及び別のシンタックス要素に基づいて、現在のビデオ・スライスのビデオ・ブロックに対する予測ブロック365を生成するように構成される。インター予測に関し、予測ブロックは、1つの参照ピクチャ・リスト内の1つの参照ピクチャから生成されてもよい。ビデオ・デコーダ30は、DPB330に記憶された参照ピクチャに基づくデフォルトの構成技術を使用することによって、参照フレーム・リスト、List0及びList1を構成することができる。
予測処理ユニット360は、動きベクトル及び他のシンタックス要素を解析することによって、現在のビデオ・スライスのビデオ・ブロックに対する予測情報を決定し、その予測情報を使用して、復号化される現在のビデオ・ブロックに対する予測ブロックを生成するように構成される。例えば、予測処理ユニット360は、受信したシンタックス要素の一部を使用して、ビデオ・スライスのビデオ・ブロックをコーディングするために使用される予測モード(例えば、イントラ又はインター予測)、インター予測スライス・タイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスに対する参照ピクチャ・リストのうちの1つ以上に対する構成情報、スライスのインター符号化ビデオ・ブロック各々に対する動きベクトル、スライスのインター符号化ビデオ・ブロック各々に対するインター予測ステータス、及び現在のビデオ・スライス内のビデオ・ブロックを復号化するための他の情報を決定する。
逆量子化ユニット310は、ビットストリームにおいて提供され、エントロピー復号化ユニット304によって復号化される量子化変換係数を逆量子化、即ち非量子化するように構成される。逆量子化プロセスは、ビデオ・スライスにおける各ビデオ・ブロックについてビデオ・エンコーダ100によって計算される量子化パラメータを使用して、量子化の程度、及び、同様に、適用されるべき逆量子化の程度を決定することを含む可能性がある。
逆量子化ユニット310は、量子化パラメータ(QP)(又は一般的には逆量子化に関する情報)及び量子化係数を、符号化されたピクチャ・データ21から(例えば、解析及び/又は復号化により、例えばエントロピー復号化ユニット304により)受信し、量子化パラメータに基づいて、復号化された量子化係数に関して逆量子化を適用して、変換係数311とも呼ばれる非量子化された係数311を得るように構成されることが可能である。
逆変換処理ユニット312は、逆変換、例えば逆DCT、逆整数変換、又は概念的に類似する逆変換処理を変換係数に適用して、ピクセル・ドメインにおいて残差ブロックを生成するように構成される。
逆変換処理ユニット312は、変換係数311とも呼ばれる非量子化係数311を受信し、非量子化係数311に変換を適用して、サンプル・ドメインにおいて再構成された残差ブロック213を取得するように構成されることが可能である。再構成された残差ブロック213はまた、変換ブロック313と言及される場合もある。変換は、逆変換、例えば、逆DCT、逆DST、逆整数変換、又は概念的に類似した逆変換プロセスであってもよい。逆変換処理ユニット312は、更に、変換パラメータ又は対応する情報を、符号化されたピクチャ・データ21から(例えば、解析及び/又は復号化により、例えばエントロピー復号化ユニット304により)受信して、非量子化係数311に適用される変換を決定するように構成されてもよい。
再構成ユニット314(例えば、加算器314)は、逆変換ブロック313(即ち、再構成された残差ブロック313)を予測ブロック365に追加して、サンプル・ドメインにおける再構成ブロック315を、例えば再構成された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを追加することによって、取得するように構成される。
ループ・フィルタ・ユニット320(符号化ループ内又は符号化ループの後の何れか)は、再構成ブロック315をフィルタリングして、フィルタリングされたブロック321を取得し、例えばピクセル遷移を平滑化し、又は別の方法でビデオ品質を改善するように構成される。ループ・フィルタ・ユニット320は、デブロッキング・フィルタ、サンプル・アダプティブ・オフセット(SAO)フィルタ、又は1つ以上の他のフィルタ、例えば適応ループ・フィルタ(ALF)、ノイズ抑制フィルタ(NSF)、又はそれらの任意の組み合わせのような1つ以上のループ・フィルタを含むことが可能である。一例では、ループ・フィルタ・ユニット220は、デブロッキング・フィルタ、SAOフィルタ、及びALFフィルタを含んでもよい。フィルタリング・プロセスの順序は、デブロッキング・フィルタ、SAO及びALFであってもよい。別の例では、クロマ・スケーリングによるルマ・マッピング(LMCS)(即ち、アダプティブ・インループ・リシェーパー)と呼ばれるプロセスが追加される。この処理は、デブロッキングの前に実行される。別の例では、デブロッキング・フィルタ・プロセスはまた、内部サブブロック・エッジ、例えばアフィン・サブブロック・エッジ、ATMVPサブブロック・エッジ、サブブロック変換(SBT)エッジ、及びイントラ・サブ・パーティション(ISP)エッジに適用されてもよい。ループ・フィルタ・ユニット320は、図3ではループ内フィルタとして示されているが、他の構成では、ループ・フィルタ・ユニット320は、ポスト・ループ・フィルタとして実現されてもよい。
次いで、所与のフレーム又はピクチャにおける復号化されたビデオ・ブロック321は、以後の動き補償に使用される参照ピクチャを格納する、復号化されたピクチャのバッファ330内に格納される。
次いで、ピクチャの復号化されたビデオ・ブロック321は、復号化されたピクチャのバッファ330に記憶され、これは、復号化されたピクチャ331を、他のピクチャ及び/又は出力それぞれのために以後の動き補償用の参照ピクチャとして記憶する。
デコーダ30は、復号化されたピクチャ331を、ユーザーに提示又は表示するために、例えば出力332により出力するように構成される。
ビデオ・エンコーダ30の他の変形が、圧縮されたビットストリームを復号するために使用されることが可能である。例えば、デコーダ30は、ループ・フィルタリング・ユニット320なしに出力ビデオ・ストリームを生成することが可能である。例えば、非変換ベースのデコーダ30は、特定のブロック又はフレームに対して、逆変換処理ユニット312なしに直接的に残差信号を逆量子化することができる。別の実装において、ビデオ・デコーダ30は、逆量子化ユニット310及び逆変換処理ユニット312を単一のユニットに結合させることができる。
上述の実施形態に対して追加的又は代替的に、図16による別の実施形態では、インター予測ユニット344は、インター予測ユニット244(特に、動き補償ユニット)と同一であってもよく、イントラ予測ユニット354は、機能的にはインター予測ユニット254と同一であってもよく、パーティショニング及び/又は予測パラメータ又は符号化されたピクチャ・データ21から受信したそれぞれの情報に基づいて(例えば、解析及び/又は復号化により、エントロピー復号化ユニット304により)、分割又はパーティショニング決定及び予測を実行する。モード適用ユニット360は、再構成されたピクチャ、ブロック又はそれぞれのサンプル(フィルタリングされた又はフィルタリングされていないもの)に基づいて、ブロックごとに予測(イントラ予測又はインター予測)を実行して、予測ブロック365を得るように構成されてもよい。
ビデオ・スライスがイントラ符号化(I)スライスとして符号化されると、モード適用ユニット360のイントラ予測ユニット354は、現在ピクチャの以前の復号化されたブロックからのデータ及びシグナリングされたイントラ予測モードに基づいて、現在のビデオ・スライスのピクチャ・ブロックに対する予測ブロック365を生成するように構成される。ビデオ・ピクチャが、インター符号化された(即ち、B又はP)スライスとして符号化されると、モード適用ユニット360のインター予測ユニット344(例えば、動き補償ユニット)は、エントロピー復号化ユニット304から受信した動きベクトル及び別のシンタックス要素に基づいて、現在のビデオ・スライスのビデオ・ブロックに対する予測ブロック365を生成するように構成される。インター予測に関し、予測ブロックは、1つの参照ピクチャ・リスト内の1つの参照ピクチャから生成されてもよい。ビデオ・デコーダ30は、DPB330に記憶された参照ピクチャに基づくデフォルトの構成技術を使用して、参照フレーム・リスト、List0及びList1を構成することができる。同じもの又は類似するものが、スライス(例えば、ビデオ・スライス)に対して追加的又は代替的に、タイル・グループ(例えば、ビデオ・タイル・グループ)及び/又はタイル(例えば、ビデオ・タイル)を使用する実施形態に又はそれにより適用されることが可能であり、例えば、ビデオはI、P又はBタイル・グループ及び/又はタイルを用いて符号化されることが可能である。
モード適用ユニット360は、動きベクトル又は関連情報及び他のシンタックス要素を解析することによって、現在のビデオ・スライスのビデオ・ブロックに対する予測情報を決定し、その予測情報を使用して、復号化される現在のビデオ・ブロックに対する予測ブロックを生成するように構成される。例えば、モード適用ユニット360は、受信されたシンタックス要素の幾つかを使用して、ビデオ・スライスのビデオ・ブロックをコーディングするために使用される予測モード(例えば、イントラ又はインター予測)、インター予測スライス・タイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスの参照ピクチャ・リストのうちの1つ以上に対する構成情報、スライスのインター符号化されたビデオ・ブロック各々に対する動きベクトル、スライスのインター・コーディングされるビデオ・ブロック各々に対するインター予測ステータス、及び現在のビデオ・スライス内のビデオ・ブロックを復号化するための他の情報を決定する。同じもの又は類似するものが、スライス(例えば、ビデオ・スライス)に対して追加的又は代替的に、タイル・グループ(例えば、ビデオ・タイル・グループ)及び/又はタイル(例えば、ビデオ・タイル)を使用する実施形態に又はそれにより適用されることが可能であり、例えば、ビデオはI、P又はBタイル・グループ及び/又はタイルを用いてコーディングされることが可能である。
図3に示すビデオ・デコーダ30の実施形態は、スライス(ビデオ・スライスとも呼ばれる)を使用することによってピクチャを区分け及び/又は復号化するように構成されることが可能であり、ピクチャは、1つ以上のスライス(典型的には、重複しない)に区分け又は復号化されることが可能であり、各スライスは、1つ以上のブロック(例えば、CTU)又は1つ以上のブロックのグループ(例えば、タイル(H.265/HEVC及びVVC)又はブリック(VC))を含むことが可能である。
図3に示すビデオ・デコーダ30の実施形態は、スライス/タイル・グループ(ビデオ・タイル・グループとも呼ばれる)及び/又はタイル(ビデオ・タイルとも呼ばれる)を使用することにより、ピクチャを区分け及び/又は復号化するように構成されることが可能であり、ピクチャは、1つ以上のスライス/タイル・グループ(典型的には、重複しない)に区分け又は復号化されることが可能であり、各スライス/タイル・グループは、例えば1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを含むことが可能であり、各タイルは、例えば矩形形状であってもよく、1つ以上のブロック(例えば、CTU)、例えば完全な又は断片的なブロックを含む可能性がある。
ビデオ・デコーダ30の他の変形は、符号化されたピクチャ・データ21を復号化するために使用されることが可能である。例えば、デコーダ30は、ループ・フィルタリング・ユニット320なしに出力ビデオ・ストリームを生成することができる。例えば、非変換ベースのデコーダ30は、特定のブロック又はフレームに対して、逆変換処理ユニット312なしに直接的に残差信号を逆量子化することができる。別の実装において、ビデオ・デコーダ30は、逆量子化ユニット310及び逆変換処理ユニット312を単一のユニットに結合させることができる。
エンコーダ20及びデコーダ30では、現在のステップの処理結果は更に処理され、次のステップに出力される可能性があることは理解されるべきである。例えば、補間フィルタリング、動きベクトル導出、又はループ・フィルタリングの後に、クリップ又はシフトなどの更なる処理が、補間フィルタリング、動きベクトル導出、又はループ・フィルタリングの処理結果に対して実行されてもよい。
図4は、本開示の実施形態によるビデオ符号化デバイス400の概略図である。ビデオ・コーディング・デバイス400は、本願で説明されるように、開示される実施形態を実現することに適している。実施形態では、ビデオ符号化デバイス400は、図1Aのビデオ・デコーダ30のようなデコーダ、又は図1Aのビデオ・エンコーダ20のようなエンコーダであってもよい。実施形態では、ビデオ符号化デバイス400は、上述したような図1Aのビデオ・デコーダ30又は図1Aのビデオ・エンコーダ20の1つ以上の構成要素であってもよい。
ビデオ・コーディング・デバイス400は、データを受信するための入口ポート410及び受信機ユニット(Rx)420;データを処理するためのプロセッサ、論理ユニット、又は中央処理ユニット430;データを送信するための送信機ユニット(Tx)440及び出口ポート450;及びデータを記憶するためのメモリ460を含む。ビデオ符号化デバイス400はまた、光又は電気信号の出入りのために、入口ポート410、受信機ユニット420、送信機ユニット440、及び出口ポート450に結合された光−電気(OE)コンポーネント及び電気−光(EO)コンポーネントを含んでもよい。
プロセッサ430は、ハードウェア及びソフトウェアによって実現される。プロセッサ430は、1つ以上のCPUチップ、コア(例えば、マルチコア・プロセッサ)、FPGA、ASIC、及びDSPとして実現されてもよい。プロセッサ430は、入口ポート410、受信機ユニット420、送信機ユニット440、出口ポート450、及びメモリ460と通信する。プロセッサ430は、コーディング・モジュール470を含む。コーディング・モジュール470は、上述の開示された実施形態を実現する。例えば、コーディング・モジュール470は、種々のコーディング動作を実現、処理、準備、又は提供する。従って、符号化モジュール470を含めることは、ビデオ・コーディング・デバイス400の機能に対するかなりの改善を提供し、ビデオ・コーディング・デバイス400の異なる状態への変換に影響を及ぼす。あるいは、コーディング・モジュール470は、メモリ460に格納された命令として実現され、プロセッサ430によって実行される。
メモリ460は、1つ以上のディスク、テープ・ドライブ、及びソリッド・ステート・ドライブを含み、オーバー・フロー・データ記憶デバイスとして使用され、このようなプログラムが実行のために選択された場合にプログラムを記憶し、プログラムの実行中に読み出された命令及びデータを記憶することができる。メモリ460は、揮発性及び/又は不揮発性であってもよく、リード・オンリ・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、三値連想メモリ(TCAM)、及び/又はスタティック・ランダム・アクセス・メモリ(SRAM)であってもよい。
図5は、例示的な実施形態による、図1のソース・デバイス310及び宛先デバイス320の何れか又は両方として使用することが可能な装置500の簡略化されたブロック図である。装置500は、上述の本願の技術を実現することができる。装置500は、複数のコンピューティング・デバイスを含むコンピューティング・システムの形式、又は単一のコンピューティング・デバイス、例えば携帯電話、タブレット・コンピュータ、ラップトップ・コンピュータ、ノートブック・コンピュータ、デスクトップ・コンピュータ等の形式におけるものとすることができる。
装置500内のプロセッサ502は、中央処理ユニットであるとすることが可能である。あるいは、プロセッサ502は、現在存在している又は今後開発される情報を操作又は処理することが可能な、任意の他のタイプのデバイス又は複数のデバイスであるとすることが可能である。開示される実装は、図示のように単一のプロセッサ、例えばプロセッサ502を用いて実施することが可能であるが、複数のプロセッサを用いて、速度及び効率における利点を達成することができる。装置500内のメモリ504は、実装においてはリード・オンリ・メモリ(ROM)デバイス又はランダム・アクセス・メモリ(RAM)デバイスであるとすることが可能である。任意の他の適切なタイプのストレージ・デバイスがメモリ504として使用されることが可能である。メモリ504は、バス512を使用してプロセッサ502によってアクセスされるコード及びデータ506を含むことが可能である。メモリ504は、更に、オペレーティング・システム508及びアプリケーション・プログラム510を含むことが可能であり、アプリケーション・プログラム510は、本願で説明される方法をプロセッサ502が実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーション・プログラム510は、アプリケーション1ないしNを含むことが可能であり、これは本願で説明される方法を実行するビデオ・コーディング・アプリケーションを更に含む。装置500はまた、例えばモバイル・コンピューティング・デバイスと共に使用されるメモリ・カードであるとすることが可能なセカンダリ・ストレージ514の形式で追加メモリを含むことも可能である。ビデオ通信セッションは、かなりの量の情報を含む可能性があるので、それらは、全体的に又は部分的に、セカンダリ・ストレージ514に記憶され、処理の必要に応じてメモリ504にロードされることが可能である。また、装置500は、ディスプレイ518のような1つ以上の出力デバイスを含むことが可能である。ディスプレイ518は、一例では、タッチ入力を感知するように動作することが可能なタッチ感知素子に、ディスプレイを組み合わせるタッチ感知ディスプレイであってもよい。ディスプレイ518は、バス512を介してプロセッサ502に結合することが可能である。
装置500はまた、ディスプレイ518のような1つ以上の出力デバイスを含むことができる。ディスプレイ518は、一例では、タッチ入力を感知するように動作することが可能なタッチ感知素子に、ディスプレイを組み合わせるタッチ感知ディスプレイであってもよい。ディスプレイ518は、バス512を介してプロセッサ502に結合されることが可能である。ユーザーが装置500をプログラムする又は他の方法で使用することを可能にする他の出力デバイスが、ディスプレイ518に対する追加又は代替として提供されることが可能である。出力デバイスがディスプレイであるか又はそれを含む場合、ディスプレイは、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイ、プラズマ・ディスプレイ、又は有機LED(OLED)ディスプレイのような発光ダイオード(LED)ディスプレイによるものを含む様々な方法で実現されることが可能である。
装置500はまた、画像感知デバイス520、例えばカメラ、又は、装置500を操作するユーザーの画像のような画像を感知することが可能な現存する又は今後開発される任意の他の画像感知デバイス520を含むか、又はそれらと通信することが可能である。画像感知デバイス520は、装置500を操作するユーザーの方に向けられるように、配置されることが可能である。一例では、画像感知デバイス520の位置及び光軸は、視野が、ディスプレイ518に直に隣接するエリアであってそこからディスプレイ518が見えるエリアを含むように、設定されることが可能である。
装置500はまた、音響感知デバイス522、例えばマイクロホン、又は、装置500の近辺の音を感知することが可能な現在する又は今後開発される任意の他の音響感知デバイスを含むか、又はそれらと通信することが可能である。音響感知デバイス522は、装置500を操作するユーザーの方に向けられ、ユーザーが装置500を操作する間にユーザーにより生じた音、例えばスピーチ又は他の発話を受信するように構成されることが可能であるように、配置されることが可能である。
図5は、装置500のプロセッサ502及びメモリ504を単一ユニットに一体化したものとして描いているが、他の構成を使用することが可能である。プロセッサ502の動作は、直接的に、又はローカル・エリア若しくは他のネットワークを介して結合されることが可能な複数のマシン(各々が1つ以上のプロセッサを有する)に分散されることが可能である。メモリ504は、ネットワーク・ベースのメモリ又は装置500の動作を実行する複数のマシン内のメモリのような複数のマシンに分散されることが可能である。ここでは、単一のバスとして描かれているが、装置500のバス512は、複数のバスで構成されることが可能である。更に、セカンダリ・ストレージ514は、装置500の他の構成要素に直接的に結合されることが可能であり、又はネットワークを介してアクセスされることが可能であり、メモリ・カードのような単一の集積ユニット又は複数のメモリ・カードのような複数のユニットを含むことが可能である。従って、装置500は、広く様々な構成で実現されることが可能である。
次世代ビデオ・コーディング(NGVC)は、CU、PU及びTUの概念の区別を除去し、CUパーティション形状に対して、より柔軟性をサポートする。CUのサイズは符号化ノードのサイズに対応し、正方形又は非正方形(例えば、長方形)の形状であってもよい。
J. An et al., “Block partitioning structure for next generation video coding”, International Telecommunication Union, COM16-C966, September 2015 (hereinafter, “VCEG proposal COM16-C966”),
においては、四分木二分木(QTBT)パーティショニング技術が、HEVCを越える将来のビデオ・コーディング規格に対して提案されていた。シミュレーションは、提案されているQTBT構造が、使用されているHEVCにおける四分木構造よりも効率的であることを示している。HEVCでは、動き補償のメモリ・アクセスを低減するために、小さなブロックに対するインター予測は制限され、4×4ブロックに対してインター予測はサポートされていない。JEMのQTBTでは、これらの制約は取り除かれている。
QTBTでは、CUは正方形又は長方形の何れかの形状を有することができる。図6に示すように、符号化ツリー・ユニット(CTU)は、先ず四分木構造によって区分けされる。四分木リーフ・ノードは、二分木構造によって更に区分けされることが可能である。二分木分割では、対称的な水平分割及び対称的な垂直分割の2つの分割タイプが存在する。それぞれの場合において、ノードは、ノードの中央から水平又は垂直に分けることによって分割される。二分木リーフ・ノードは、コーディング・ユニット(CU)と呼ばれ、そのセグメンテーションは、更なる如何なるパーティショニングもなしに予測及び変換処理に使用される。これは、CU、PU、TUがQTBTコーディング・ブロック構造において同じブロック・サイズを有することを意味する。CUは、しばしば、異なる色成分のコーディング・ブロック(CB)から構成され、例えば4:2:0のクロマ・フォーマットのP及びBスライスの場合に、1つのCUは1つのルマCBと2つのクロマCBを含み、またしばしば単一成分のCBから構成されることもあり、例えばIスライスの場合に、1つのCUは唯1つのルマCB、又は2つのクロマCBのみを含む。
以下のパラメータがQTBTパーティショニング・スキームのために定義される。
− CTU size:四分木のルート・ノード・サイズであり、HEVCと同じ概念である。
− MinQTSize:最小許容四分木リーフ・ノード・サイズ
− MaxBTSize:最大許容二分木ルート・ノード・サイズ
− MaxBTDepth:最大許容二分木深度
− MinBTSize:最小許容二分木リーフ・ノード・サイズ
QTBTパーティショニング構造の一例では、四分木ノードがMinQTSize以下のサイズを有する場合、更なる四分木は考慮されない。サイズ(MinQTSize)はMaxBTSizeを超えないので、二分木によって更には分割されないであろう。そうでない場合、リーフ四分木ノードは、二分木によって更に区分けされることが可能である。従って、四分木リーフ・ノードは、二分木のルート・ノードでもあり、それは二分木の深度0(ゼロ)を有する。二分木の深度がMaxBTDepth(即ち4)に達した場合、更なる分割は考慮されない。二分木ノードがMinBTSizeに等しい幅(即ち4)を有する場合、更なる水平分割は考慮されない。同様に、二分木ノードのがMinBTSizeに等しい高さを有する場合、更なる垂直分割は考慮されない。二分木のリーフ・ノードは、更なる如何なるパーティショニングもなしに、予測及び変換処理によって更に処理される。JEMでは、最大CTUサイズは256×256ルマ・サンプルである。二分木(CU)のリーフ・ノードは、更なる如何なるパーティショニングもなしに(例えば、予測プロセス及び変換プロセスを実行することによって)更に処理されてもよい。
図6は、QTBTパーティショニング技術を用いて区分けされたブロック30(例えば、CTB)の一例を示す。図6に示すように、QTBTパーティション技術を用いて、各ブロックは、各ブロックの中心を通って対称的に分割される。図7は、図6のブロック・パーティショニングに対応するツリー構造を示す。図7の実線は四分木分割を示し、点線は二分木分割を示す。一例では、二分木の各分割(即ち、非リーフ)ノードにおいて、シンタックス要素(例えば、フラグ)が、実行される分割のタイプ(例えば、水平又は垂直)を示すためにシグナリングされ、0は水平分割を示し、1は垂直分割を示す。四分木分割の場合、四分木分割は、ブロックを水平及び垂直に、等しいサイズの4つのサブブロックに常に分割するので、分割タイプを指定する必要はない。
図7に示されるように、ノード50において、ブロック30(ルート50に対応する)は、QTパーティショニングを用いて、図6に示される4つのブロック31、32、33、及び34に分割される。ブロック34は更には分割されず、従ってリーフ・ノードである。ノード52において、ブロック31は、BTパーティショニングを用いて2つのブロックに更に分割される。図7に示すように、ノード52は、垂直分割を示す1でマークされている。従って、ノード52における分割は、ブロック37と、ブロック35及び36の両方を含むブロックとを生じる結果となる。ブロック35及び36は、ノード54における更なる垂直分割によって生成される。ノード56において、ブロック32は、BTパーティショニングを用いて2つのブロック38及び39に更に分割される。
ノード58において、ブロック33は、QTパーティショニングを使用して4つの等しいサイズのブロックに分割される。ブロック43及び44は、このQTパーティショニングから生成され、更には分割されない。ノード60において、左上ブロックは、先ず垂直二分木分割を使用して分割され、ブロック40と右垂直ブロックとを生じる結果となる。右垂直ブロックは、次いで、水平二分木分割を用いてブロック41及び42に分割される。ノード58で四分木分割から作成される右下ブロックは、ノード62において、水平二分木分割を用いてブロック45及び46に分割される。図7に示すように、ノード62は、水平分割を示す0でマークされている。
QTBTに加えて、マルチタイプ・ツリー(MTT)と名付けられたブロック・パーティショニング構造は、QTBTベースのCU構造においてBTを置き換えるために提案され、これは、先ずCTUがQTパーティショニングによって分割されてCTUのブロックを取得する可能性があること、次いでブロックがMTTパーティショニングによって二次的に分割される可能性があることを意味する。
MTTパーティショニング構造は依然として再帰的ツリー構造である。MTTでは、複数の異なるパーティション構造(例えば、2つ以上)が用いられる。例えば、MTT技術によれば、2つ以上の異なるパーティション構造が、ツリー構造の各深度において、ツリー構造の各自各々の非リーフ・ノードに対して使用される可能性がある。ツリー構造におけるノードの深度は、ノードからツリー構造のルートまでのパスの長さ(例えば、分割の数)を示すことが可能である。
MTTでは、BTパーティショニングと三分木(TT)パーティショニングの2つのパーティション・タイプがある。パーティション・タイプは、BTパーティショニング及びTTパーティショニングから選択されることが可能である。TTパーティション構造は、TTパーティション構造は中心からブロックを分割しない点で、QTやBT構造のものとは異なる。ブロックの中心領域は、同じサブブロック内に一緒に残る。4つのブロックを生成するQT、又は2つのブロックを生成する二分木とは異なり、TTパーティション構造による分割は、3つのブロックを生成する。TTパーティション構造による例示的なパーティション・タイプは、対称パーティション・タイプ(水平及び垂直の両方)に加えて、非対称パーティション・タイプ(水平及び垂直の両方)を含む。更に、TTパーティション構造による対称パーティション・タイプは、不均一/非一様又は均一/一様であってもよい。TTパーティション構造による非対称パーティション・タイプは、不均一/非一様である。一例において、TTパーティション構造は、以下のパーティション・タイプ:水平均一/一様対称三分木、垂直均一/一様対称三分木、水平不均一/非一様対称三分木、垂直不均一/非一様対称三分木、水平不均一/非一様非対称三分木、又は垂直不均一/非一様非対称三分木のパーティション・タイプのうちの少なくとも1つを含むことができる。
一般に、不均一/非一様対称三分木パーティション・タイプは、ブロックの中心線に関して対称的なパーティション・タイプであるが、この場合において、結果の3ブロックのうちの少なくとも1つは他の2つと同じサイズではない。1つの好ましい例は、側方ブロックがブロックの1/4のサイズであり、中央ブロックがブロックの1/2サイズである場合である。均一/一様対称三分木パーティション・タイプは、ブロックの中心線に関して対称的なパーティション・タイプであり、結果のブロックはすべて同じサイズである。そのようなパーティションは、垂直又は水平分割に依存して、ブロックの高さ又は幅が3の倍数である場合に可能である。不均一/非一様非対称三分木パーティション・タイプは、ブロックの中心線に関して対称的ではないパーティション・タイプであり、この場合において、結果のブロックの少なくとも1つは他の2つと同じサイズではない。
図8は、オプションの例示的な水平三分木パーティション・タイプを示す概念図である。図9は、オプションの例示的な垂直三分木パーティション・タイプを示す概念図である。図8及び図9の両方において、hは、ルマ又はクロマ・サンプルにおけるブロックの高さを表し、wは、ルマ又はクロマ・サンプルにおけるブロックの幅を表す。ブロックのそれぞれの中心線は、ブロックの境界を表していないこと(即ち、三分木パーティションは中心線を通ってブロックを分割していないこと)に留意されたい。むしろ、中心線\は、特定のパーティション・タイプがオリジナル・ブロックの中心線に対して対称であるか又は非対称であるかを表すために使用される。また、中心線は分割の方向に沿っている。
図8に示すように、ブロック71は、水平均一/一様対称パーティション・タイプで区分けされる。水平均一/一様対称パーティション・タイプは、ブロック71の中心線に対して対称的な上及び下半分を生成する。水平均一/一様対称パーティション・タイプは、等しいサイズの3つのサブブロックを生成し、各々はh/3の高さとwの幅とを有する。ブロック71の高さが均等に3で割り切れる場合、水平均一/一様対称パーティション・タイプが可能である。
ブロック73は、水平不均一/非一様対称パーティション・タイプで区分けされる。水平不均一/非一様対称パーティション・タイプは、ブロック73の中心線に対して対称的な上及び下半分を生成する。水平不均一/非一様対称パーティション・タイプは、等しいサイズの2つのブロック(例えば、h/4の高さを有する上及び下ブロック)と、異なるサイズの中央ブロック(例えば、h/2の高さを有する中央ブロック)とを生成する。一例では、水平不均一/非一様対称パーティション・タイプによれば、中央ブロックの面積は、上及び下ブロックの合計面積に等しい。幾つかの例において、水平不均一/非一様対称パーティション・タイプは、2の冪乗(例えば、2、4、8、16、32など)である高さを有するブロックに対して好ましいかもしれない。
ブロック75は、水平不均一/非一様非対称パーティション・タイプで区分けされる。水平不均一/非一様非対称パーティション・タイプは、ブロック75の中心線に対して対称的な上及び下半分を生成しない(即ち、上及び下半分は非対称である)。図8の例では、水平不均一/非一様非対称パーティション・タイプは、h/4の高さを有する上ブロックと、3h/8の高さを有する中央ブロックと、3h/8の高さを有する下ブロックとを生成する。もちろん、他の非対称な配置が使用されてもよい。
図9に示すように、ブロック81は、垂直均一/一様対称パーティション・タイプで区分けされる。垂直均一/一様対称パーティション・タイプは、ブロック81の中心線に対して対称的な左及び右半分を生成する。垂直均一/一様対称パーティション・タイプは、等しいサイズの3つのサブブロックを生成し、各々はw/3の幅とhの高さとを有する。ブロック81の幅が均等に3で割り切れる場合、垂直均一/一様対称パーティション・タイプが可能である。
ブロック83は、垂直不均一/非一様対称パーティション・タイプで区分けされる。垂直不均一/非一様対称パーティション・タイプは、ブロック83の中心線に対して対称的な左及び右半分を生成する。垂直不均一/非一様対称パーティション・タイプは、83の中心線に対して対称的な左及び右半分を生成する。垂直不均一/非一様対称パーティション・タイプは、等しいサイズの2つのブロック(例えば、w/4の幅を有する左及び右ブロック)と、異なるサイズの中央ブロック(例えば、w/2の幅を有する中央ブロック)とを生成する。一例では、垂直不均一/非一様対称パーティション・タイプによれば、中央ブロックの面積は、左及び右ブロックの合計面積に等しい。幾つかの例において、垂直不均一/非一様対称パーティション・タイプは、2の冪乗(例えば、2、4、8、16、32など)である幅を有するブロックに対して好ましいかもしれない。
ブロック85は、垂直不均一/非一様非対称パーティション・タイプで区分けされる。垂直不均一/非一様非対称パーティション・タイプは、ブロック85の中心線に対して対称的な左及び右半分を生成しない(即ち、左及び右半分は非対称である)。図9の例では、垂直不均一/非一様非対称パーティション・タイプは、w/4の幅を有する左ブロックと、3w/8の幅を有する中央ブロックと、3w/8の幅を有する右ブロックとを生成する。もちろん、他の非対称な配置が使用されてもよい。
上記で規定したQTBTのパラメータに加えて(又は代替的に)、MTTパーティショニング・スキームのために以下のパラメータが規定される:
− MaxBTSize:最大許容二分木ルート・ノード・サイズ
− MinBtSize:最小許容二分木ルート・ノード・サイズ
− MaxMttDepth:最大マルチタイプ・ツリー深度
− MaxMttDepth offset:最大マルチタイプ・ツリー深度オフセット
− MaxTtSize:最大許容三分木ルート・ノード・サイズ
− MinTtSize:最小許容三分木ルート・ノード・サイズ
− MinCbSize:最小許容コーディング・ブロック・サイズ
本開示の実施形態は、本願の実施形態による図2のビデオ・エンコーダ20又は図3のビデオ・デコーダ30のようなビデオ・エンコーダ又はビデオ・デコーダによって実現されることが可能である。パーティション・ユニットを含むビデオ・エンコーダ20又はビデオ・デコーダ30の1つ以上の構造要素は、開示の実施形態の技術を実行するように構成されることが可能である。
開示の実施形態において:
JVET-K1001-v4では、log2_ctu_size_minus2,log2_min_qt_size_intra_slices_minus2及びlog2_min_qt_size_inter_slices_minus2は、SPSで(シンタックス要素として)シグナリングされる。
パラメータlog2_ctu_size_minus2 plus 2は、各CTUのルマ・コーディング・ツリー・ブロック・サイズを指定する。特に:
CtbLog2SizeY = log2_ctu_size_minus2 + 2 (7-5)
CtbSizeY = 1 << CtbLog2SizeY (7-6)
言い換えると、CtbLog2SizeYは、ルマ(Y)に対するコーディング・ツリー・ブロック(CTB)サイズに対応するCTUサイズCtbSizeYのlog2値を指定する。
更なる設定が以下の通り提供される:
MinCbLog2SizeY = 2 (7-7)
MinCbSizeY = 1 << MinCbLog2SizeY (7-8)
MinTbSizeY = 4 (7-9)
MaxTbSizeY = 64 (7-10)
パラメータlog2_min_qt_size_intra_slices_minus2 plus 2は、2(I)に等しいslice_typeを有するスライス、即ちイントラ・スライスにおけるCTUの四分木分割から生じるリーフ・ブロックの最小ルマ・サイズを指定する。log2_min_qt_size_intra_slices_minus2の値は、0ないしCtbLog2SizeY − 2の両端を含むレンジ内にあるものとする。
MinQtLog2SizeIntraY = log2_min_qt_size_intra_slices_minus2 + 2 (7-22)
パラメータlog2_min_qt_size_inter_slices_minus2 plus 2は、0(B)又は1(P)に等しいslice_typeを有するスライス、即ちインター・スライスにおけるCTUの四分木分割から生じるリーフ・ブロックの最小ルマ・サイズを指定する。log2_min_qt_size_inter_slices_minus2の値は、0ないしCtbLog2SizeY − 2の両端を含むレンジ内にあるものとする。
MinQtLog2SizeInterY = log2_min_qt_size_inter_slices_minus2 + 2 (7-23)
MinQtSizeYは(7−30)で規定され、これはルマ・サンプルにおける最小許容四分木分割サイズを意味する。コーディング・ブロック・サイズがMinQtSizeY以下である場合、四分木分割は許容されない。更なる設定が以下の通り提供される:
MinQtLog2SizeY = ( slice_type = = I ) ? MinQtLog2SizeIntraY : MinQtLog2SizeInterY (7-25)
MaxBtLog2SizeY = CtbLog2SizeY − log2_diff_ctu_max_bt_size (7-26)
MinBtLog2SizeY = MinCbLog2SizeY (7-27)
MaxTtLog2SizeY = ( slice_type = = I ) ? 5 : 6 (7-28)
MinTtLog2SizeY = MinCbLog2SizeY (7-29)
MinQtSizeY = 1 << MinQtLog2SizeY (7-30)
MaxBtSizeY = 1 << MaxBtLog2SizeY (7-31)
MinBtSizeY = 1 << MinBtLog2SizeY (7-32)
MaxTtSizeY = 1 << MaxTtLog2SizeY (7-33)
MinTtSizeY = 1 << MinTtLog2SizeY (7-34)
MaxMttDepth = ( slice_type = = I ) ? max_mtt_hierarchy_depth_intra_slices :
max_mtt_hierarchy_depth_inter_slices (7-35)
パラメータmax_mtt_hierarchy_depth_intra_slices及びmax_mtt_hierarchy_depth_inter_slicesはそれぞれイントラ及びインター・スライスに対するMTTタイプ分割の最大階層深度を示す。
log2_min_qt_size_intra_slices_minus2及びlog2_min_qt_size_inter_slices_minus2のセマンティックに基づいて、log2_min_qt_size_intra_slices_minus2及び log2_min_qt_size_inter_slices_minus2のレンジは、0からCtbLog2SizeY − 2である。
ここで、CtbLog2SizeYはlog2_ctu_size_minus2のセマンティックで規定され、これは各CTUのルマ・コーディング・ツリー・ブロック・サイズのlog2値を意味し、VTM2.0におけるCtbLog2SizeYは7に等しい。
(7−22)及び(7−23)に基づいて、MinQtLog2SizeIntraY及びMinQtLog2SizeInterYのレンジは、2からCtbLog2SizeYである。
(7−25)に基づいて、MinQtLog2SizeYのレンジは、2からCtbLog2SizeYである。
(7−30)に基づいて、MinQtSizeYのレンジは、JVET-K1001-v4においては(1<<2)から(1<<CtbLog2SizeY)であり、VTM2.0においてレンジは(1<<2)から(1<<7)であり、これは4から128に等しい。
JVET-K1001-v4では、log2_diff_ctu_max_bt_sizeはスライス・ヘッダで条件付きでシグナリングされる。
パラメータlog2_diff_ctu_max_bt_sizeは、二分割を使用して分割されることが可能なコーディング・ブロックの最大ルマ・サイズ(幅又は高さ)及びルマCTBサイズの間の差分を指定する。log2_diff_ctu_max_bt_sizeの値は、0ないしCtbLog2SizeY − MinCbLog2SizeYの両端を含むレンジ内にあるものとする。
log2_diff_ctu_max_bt_sizeが存在しない場合、log2_diff_ctu_max_bt_sizeの値は2に等しいと推定される。
MinCbLog2SizeYは(7−7)で規定され、これは最小許容コーディング・ブロック・サイズを意味している。
log2_diff_ctu_max_bt_sizeのセマンティックに基づいて、log2_diff_ctu_max_bt_sizeのレンジは、0からCtbLog2SizeY − MinCbLog2SizeYである。
(7−26)に基づいて、MaxBtLog2SizeYのレンジは、CtbLog2SizeYからMinCbLog2SizeYである。
(7−31)に基づいて、MaxBtSizeYのレンジは、(1<< CtbLog2SizeY )から (1<< MinCbLog2SizeY)である。
(7−7)に基づいて、MaxBtSizeYのレンジは、JVET-K1001-v4においては、(1<< CtbLog2SizeY )から(1<< 2)であり、VTM2.0においてCtbLog2SizeYは7に等しいので、VTM2.0におけるMaxBtSizeYのレンジは128から4に等しい。
従って、MinQtSizeYは4から(1<<CtbLog2SizeY)、VTM2.0では4から128のレンジを有し、MaxBtSizeYは(1<<CtbLog2SizeY)から4、VTM2.0では128から4のレンジを有する。
従って、MinQtSizeYはMaxBtSizeYより大きい可能性がある。
更に、VVC2.0における現在の境界の処理に基づいて、QT及びBTパーティショニングのみが、境界に位置するブロックに対して許容される(TTは許可されず、非分割は許可されない)。
現在のコーディング・ブロックが境界上にあり、且つ現在のコーディング・ブロック・サイズcbSizeYが条件:
MinQtSizeY > cbSizeY > MaxBtSizeY
を満たす場合、現在のコーディング・ブロックに対してQT分割もBT分割も可能でない。従って、現在ブロックに対して利用可能なパーティション・モードは存在しない。
実施形態1
境界ケースの問題を含む上記の課題の解決策(本発明の実施形態)が以下でより詳細に説明される。
実施形態によれば、上記の問題を解決するために、MaxBtSizeYの下限はMinQtSizeYに制限されるべきであり、MaxBtSizeYがMinQtSizeYより小さくないことを確実にする。特に、MaxBtSizeYの下限は、MinQtSizeYに等しい可能性があり、従ってMaxBtSizeYのレンジは、(1<< CtbLog2SizeY)から (1<< MinQtLog2SizeY)であるべきであり、従って、MaxBtLog2SizeYのレンジは、CtbLog2SizeYから MinQtLog2SizeYであるべきであり、従って、log2_diff_ctu_max_bt_sizeのレンジは、0からCtbLog2SizeY - MinQtLog2SizeYであるべきである。従って、MinQtSizeYの情報はMaxBtSizeYの妥当性を決定するために使用されてもよい。換言すれば、MaxBtSizeYはMinQtSizeYの情報に基づいて決定されることが可能である。
(ビデオ規格の)ドラフト・テキストにおける対応する変更は、log2_diff_ctu_max_bt_sizeのセマンティックにおいて以下のとおりである:
log2_diff_ctu_max_bt_sizeは、二分割を使用して分割されることが可能なコーディング・ブロックの最大ルマ・サイズ(幅又は高さ)及びルマCTBサイズの間の差分を指定する。log2_diff_ctu_max_bt_sizeの値は、0ないしCtbLog2SizeY − MinQtLog2SizeYの両端を含むレンジ内にあるものとする。
コーディング・デバイス(デコーダ又はエンコーダ)によって実現されるコーディングの対応する方法は、以下のようにすることができる:
ピクチャの現在ブロックが境界ブロックであるかどうかを決定する;
現在ブロックのサイズが、最小許容四分木リーフ・ノード・サイズより大きいかどうかを決定する;
現在ブロックが境界ブロックであり、現在ブロックのサイズが最小許容四分木リーフ・ノード・サイズより大きくない場合に、二分割を現在ブロックに適用する;最小許容四分木リーフ・ノード・サイズ(MinQtSizeY)は最大許容二分木ルート・ノード・サイズ(MaxBtSizeY)より大きくない。
この場合において、二分割を現在ブロックに適用することは、強制的な二分割を現在ブロックに適用することを含む可能性がある。ここで、コーディングは画像、ビデオ、又は動画コーディングに対応する。
境界ブロックであることは、画像/フレーム境界がブロックをカットすること、即ち換言すればブロックが画像/フレーム境界であることを意味する。上記の実施形態では、現在ブロックが境界ブロックであり(条件1)、そのサイズが最小許容四分木リーフ・ノード・サイズより大きくない場合に(条件2)、二分割が現在ブロックに適用される。幾つかの実施形態では、二分割の代わりに三分割又は他の分割が使用されてもよいことに留意されたい。更に、幾つかの実施形態では、条件1によらず、条件2の下で二分割が適用されてもよい。換言すれば、条件1は評価されることを要しない。現在ブロックのサイズが、実際に、最小許容四分木リーフ・ノード・サイズよりも大きい場合(即ち、条件2が満たされない場合)、四分木分割が適用されてもよい。
二分割が境界ブロックに限って使用される(条件1)実施形態が存在することに留意されたい。非境界ブロックの場合、四分木分割が、使用される唯一の分割である可能性がある。画像/フレームの境界に二(又は三)分割を適用することは、例えば水平境界における水平二/三分割、及び垂直境界における垂直二/三分割のような、潜在的により効率的な分割の利点を提供する。
コーディング・デバイス(デコーダ又はエンコーダ)によって実現されるコーディングの別の対応する方法は、以下のようにすることができる:境界ブロックのサイズが最小許容四分木リーフ・ノード・サイズより大きいかどうかを決定し、境界ブロックのサイズが、最小許容四分木リーフ・ノード・サイズより大きくはなく、最小許容四分木リーフ・ノード・サイズは、最大許容二分木ルート・ノード・サイズ(例えば、規格の仕様によるもの)より大きくはない場合に、二分割が境界ブロックに適用される。
オプションとして、境界ブロックはコーナー・ブロックを含まない可能性がある。換言すれば、垂直及び水平画像/フレーム境界の両方でカットされるコーナー・ブロックは、上記の条件1の目的に関して境界ブロックとは考えられない。
実施形態2
開示の他の実施形態(上述の実施形態と組み合わせることが可能である)が以下に説明される。
JVET-K1001-v4では、max_mtt_hierarchy_depth_inter_slices及びmax_mtt_hierarchy_depth_intra_slicesはSPSでシグナリングされる。換言すれば、max_mtt_hierarchy_depth_inter_slices及びmax_mtt_hierarchy_depth_intra_slicesはシンタックス要素であり、それらの値は、符号化された画像又はビデオも含むビットストリームに含まれることを意味する。
特に、max_mtt_hierarchy_depth_inter_slicesは、0(B)又は1(P)に等しいslice_typeを有するスライスにおける四分木リーフのマルチタイプ・ツリー分割から生じるコーディング・ユニットに対する最大階層深度を指定する。max_mtt_hierarchy_depth_inter_slicesの値は、0 ないしCtbLog2SizeY − MinTbLog2SizeYの両端を含むレンジ内にあるものとする。
max_mtt_hierarchy_depth_intra_slicesは、2(I)に等しいslice_typeを有するスライスにおける四分木リーフのマルチタイプ・ツリー分割から生じるコーディング・ユニットに対する最大階層深度を指定する。max_mtt_hierarchy_depth_intra_slicesの値は、0ないしCtbLog2SizeY − MinTbLog2SizeYの両端を含むレンジ内にあるものとする。
MinTbSizeYは(7−9)で規定され、これは4に固定され、従ってMinTbLog2SizeY = log2 MinTbSizeYであり、これは2に固定される。
MaxMttDepthが規定され、これはマルチタイプ・ツリー・パーティションの最大許容深度を意味する。現在のマルチタイプ・ツリー・パーティション深度がMaxMttDepth以上である場合には、マルチタイプ・ツリー・パーティションは許容(適用)されない。
max_mtt_hierarchy_depth_inter_slices及びmax_mtt_hierarchy_depth_intra_slicesのセマンティックに基づいて、max_mtt_hierarchy_depth_inter_slices及びmax_mtt_hierarchy_depth_intra_slicesのレンジは、0からCtbLog2SizeY − MinTbLog2SizeYである。
(7−35)に基づいて、MaxMttDepthのレンジは0からCtbLog2SizeY − MinTbLog2SizeYである。VTM2.0ではCtbLog2SizeYは7に等しいので、MaxMttDepthのレンジは0から5である。
従って、MaxMttDepthは0からCtbLog2SizeY − MinTbLog2SizeY、VTM2.0では0から5のレンジを有する。
VVC2.0における現在の境界の処理に基づいて、QT及びBTパーティショニングのみが、境界に位置するブロックに対して許容される(TTは許可されず、非分割は許可されない)。
上記の第1の問題が解決されるならば(MaxBtSizeY >= MinQtSizeY)、更に以下の条件が充足される:
cbSizeY <= MinQtSizeY
MaxMttDepth =0
境界処理に対して十分なレベルのBT(一般的には、TTを含む任意のMTT)パーティションは存在しない。
例えば、MinQtSizeYは16に等しく、MinTbSizeYは4に等しく、MaxMttDepthは0である。
境界ブロックがcbSizeY =16を有し、ペアレント・パーティションがQTであり、このブロックが依然として境界に位置する場合、現在のブロックのMttdepthがMaxMttDepthに到達するので、更なるパーティションを実行することはできない。
境界ケースのこの問題の解決策(本発明の実施形態):上記の問題を解決するため、MaxMttDepthの下限は1に制限され(言い換えると、ゼロの値をとることができない)、QTパーティションの後に、境界ケースに対して十分なレベルのマルチタイプ・ツリー・パーティションが存在することを確実にするべきである。あるいは、更に、MaxMttDepthの下限は(MinQtLog2SizeY- MinTbLog2SizeY)に制限され、QTパーティションの後に、境界及び非境界の両方のケースに十分なレベルのマルチタイプ・ツリー・パーティションが存在することを確実にするべきである。
(規格の)ドラフト・テキストにおける対応する変更は、max_mtt_hierarchy_depth_inter_slices及びmax_mtt_hierarchy_depth_intra_slicesのセマンティックにおいて以下のとおりである:
max_mtt_hierarchy_depth_inter_slicesは、0(B)又は1(P)に等しいslice_typeを有するスライスにおける四分木リーフのマルチタイプ・ツリー分割から生じるコーディング・ユニットに対する最大階層深度を指定する。max_mtt_hierarchy_depth_inter_slicesの値は、1ないしCtbLog2SizeY − MinTbLog2SizeYの両端を含むレンジ内にあるものとする。
max_mtt_hierarchy_depth_intra_slicesは、2(I)に等しいslice_typeを有するスライスにおける四分木リーフのマルチタイプ・ツリー分割から生じるコーディング・ユニットに対する最大階層深度を指定する。max_mtt_hierarchy_depth_intra_slicesの値は、1ないしCtbLog2SizeY − MinTbLog2SizeYの両端を含むレンジ内にあるものとする。
あるいは、
max_mtt_hierarchy_depth_inter_slicesは、0(B)又は1(P)に等しいslice_typeを有するスライスにおける四分木リーフのマルチタイプ・ツリー分割から生じるコーディング・ユニットに対する最大階層深度を指定する。max_mtt_hierarchy_depth_inter_slicesの値は、MinQtLog2SizeY- MinTbLog2SizeYないしCtbLog2SizeY − MinTbLog2SizeYの両端を含むレンジ内にあるものとする。
max_mtt_hierarchy_depth_intra_slicesは、2(I)に等しいslice_typeを有するスライスにおける四分木リーフのマルチタイプ・ツリー分割から生じるコーディング・ユニットに対する最大階層深度を指定する。max_mtt_hierarchy_depth_intra_slicesの値は、MinQtLog2SizeY- MinTbLog2SizeYないしCtbLog2SizeY − MinTbLog2SizeYの両端を含むレンジ内にあるものとする。
コーディング・デバイス(デコーダ又はエンコーダ)によって実現されるコーディングの対応する方法は、以下のようにすることができる:
画像をブロックに分割し、ブロックは境界ブロックを含む。最大境界マルチタイプ・パーティション深度を有する境界ブロックに二分割を適用する。最大境界マルチタイプ・パーティション深度は、少なくとも最大マルチタイプ・ツリー深度と最大マルチタイプ・ツリー深度オフセットとの合計であり、最大マルチタイプ・ツリー深度は、0より大きい。この実施形態は、実施形態1と組み合わせてもよいし、実施形態1によらずに適用されてもよい。
オプションとして、境界ブロックに二分割を適用する場合、最大マルチタイプ・ツリー深度は0より大きい。
オプションとして、境界ブロックはコーナー・ブロックを含まない可能性がある。
実施形態3
開示の別の実施形態:
JVET-K1001-v4において、MinQtSizeY>MaxBtSizeY及びMinQtSizeY> MaxTtSizeYの場合に
cbSize = MinQtsizeYの場合には、可能性のある利用可能なパーティション・モードは存在しないので、パーティションはMinCbSizeYに到達することはできない(MinTbSizeY及びMinCbsizeYは固定され、4に等しい)。
非境界又は境界のケースのこの問題の解決策:上記の問題を解決するため、MaxBtSizeYの下限はMinQtSizeYに制限され、MaxBtSizeYがMinQtSizeYより小さくないことを確実にするべきである。あるいは、MaxTtSizeYの下限はMinQtSizeYに制限され、MaxTtSizeYがMinQtSizeYより小さくないことを確実にするべきである。
ドラフト・テキストにおける対応する変更はセマンティックにおいて
log2_diff_ctu_max_bt_sizeは、二分割を使用して分割されることが可能なコーディング・ブロックの最大ルマ・サイズ(幅又は高さ)とルマCTBサイズとの間の差分を指定する。log2_diff_ctu_max_bt_sizeの値は、0ないしCtbLog2SizeY − MinQtLog2SizeYの両端を含むレンジ内にあるものとする。
及び/又は
log2_min_qt_size_intra_slices_minus2 plus 2は、2(I)に等しいslice_typeを有するスライスにおけるCTUの四分木分割から生じるリーフ・ブロックの最小ルマ・サイズを指定する。log2_min_qt_size_intra_slices_minus2の値は、0ないしMaxTtLog2SizeY − 2の両端を含むレンジ内にあるものとする。
log2_min_qt_size_inter_slices_minus2 plus 2は、0(B)又は1(P)に等しいslice_typeを有するスライスにおけるCTUの四分木分割から生じるリーフ・ブロックの最小ルマ・サイズを指定する。log2_min_qt_size_inter_slices_minus2の値は、0ないし MaxTtLog2SizeY − 2の両端を含むレンジ内にあるものとする。
コーディング・デバイス(デコーダ又はエンコーダ)によって実現されるコーディングの対応する方法は、以下のようにすることができる:
現在ブロックのサイズが最小許容四分木リーフ・ノード・サイズより大きいかどうかを決定する;
現在ブロックのサイズが、最小許容四分木リーフ・ノード・サイズより大きくない場合に、マルチタイプ・ツリー分割を現在ブロックに適用する;
この場合において、最小許容四分木のリーフ・ノード・サイズは、最大許容二分木ルート・ノード・サイズより大きくないか、又は最小許容四分木リーフ・ノード・サイズは、最大許容三分木ルート・ノード・サイズより大きくない。
オプションとして、最小許容四分木リーフ・ノード・サイズは、最大許容二分木ルート・ノード・サイズより大きくなく、最小許容四分木リーフ・ノード・サイズは、最大許容三分木ルート・ノード・サイズより大きくない。
オプションとして、現在ブロックにマルチタイプ・ツリー分割を適用することは、現在ブロックに三分割を適用すること、又は現在ブロックに二分割を適用することを含む。
オプションとして、境界ブロックはコーナー・ブロックを含まない可能性がある。
実施形態4
開示の別の実施形態において:
MaxBtSizeY >= MinQtSizeY, MinQtSizeY> MinTbLog2SizeY及びMaxMttDepth < (MinQtLog2SizeY- MinTbLog2SizeY)の場合に、
cbSize = MinQtsizeYの場合には、十分なレベルの許容されるマルチタイプ・ツリー・パーティションが存在しないので、パーティションはMinCbSizeYに到達することはできない。
非境界のケース又は境界のケースのこの問題の解決策:上記の問題を解決するため、MaxMttDepthの下限は(MinQtLog2SizeY- MinTbLog2SizeY)に限定され、QTパーティションの後に、境界及び非境界の両方のケースに十分なレベルのマルチタイプ・ツリー・パーティションが存在することを確実にするべきである。
ドラフト・テキストにおける対応する変更は、max_mtt_hierarchy_depth_inter_slices及びmax_mtt_hierarchy_depth_intra_slicesのセマンティックにおいて以下のとおりである:
max_mtt_hierarchy_depth_inter_slicesは0(B)又は1(P)に等しいslice_typeを有するスライスにおける四分木リーフのマルチタイプ・ツリー分割から生じるコーディング・ユニットに対する最大階層深度を指定する。max_mtt_hierarchy_depth_inter_slicesの値は、MinQtLog2SizeY- MinTbLog2SizeYないしCtbLog2SizeY − MinTbLog2SizeYの両端を含むレンジ内にあるものとする。
max_mtt_hierarchy_depth_intra_slicesは2(I)に等しいslice_typeを有するスライスにおける四分木リーフのマルチタイプ・ツリー分割から生じるコーディング・ユニットに対する最大階層深度を指定する。max_mtt_hierarchy_depth_intra_slicesの値は、MinQtLog2SizeY- MinTbLog2SizeYないしCtbLog2SizeY − MinTbLog2SizeYの両端を含むレンジ内にあるものとする。
コーディング・デバイス(デコーダ又はエンコーダ)によって実現されるコーディングの対応する方法は、以下のようにすることができる:
画像をブロックに分割する;
最終的な最大マルチタイプ・ツリー深度を有するブロックのうちのブロックにマルチタイプ・ツリー分割を適用する。最終的な最大マルチタイプ・ツリー深度は、少なくとも最大マルチタイプ・ツリー深度と最大マルチタイプ・ツリー深度オフセットとの合計である。最大マルチタイプ・ツリー深度は、最小許容四分木リーフ・ノード・サイズのLog2値から、最小許容変換ブロック・サイズのLog2値を減算したもの以上であるか、又は最大マルチタイプ・ツリー深度は、最小許容四分木リーフ・ノード・サイズのLog2値から、最小許容コーディング・ブロック・サイズのLog2値を減算したもの以上である。
オプションとして、ブロックは非境界ブロックである。
オプションとして、最大マルチタイプ・ツリー深度オフセットは0である。
オプションとして、ブロックは境界ブロックであり、マルチタイプ・ツリー分割は二分割である。
オプションとして、マルチタイプ・ツリー分割は三分割である(又はそれを含む)。
オプションとして、境界ブロックはコーナー・ブロックを含まない可能性がある。
実施形態1ないし4は、画像/フレームをコーディング・ユニットに分割するため、及びコーディング・ユニットをコーディングするためにエンコーダ側で適用されることが可能である。実施形態1ないし4は、画像/フレーム、即ちコーディング・ユニットのパーティションを提供するため、及びそれに応じてコーディング・ユニットを復号化する(例えば、コーディング・ユニットをストリームから正しく解析し、それらを復号化する)ために、デコーダ側で適用されることが可能である。
幾つかの実施形態によれば、1つ以上のプロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能な記憶媒体とを含むデコーダが提供され、プログラミングは、プロセッサによって実行されると、実施形態1ないし4に関連して上述した任意の方法を実行するようにデコーダを構成する。
更に、1つ以上のプロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能な記憶媒体とを含むエンコーダが提供され、プログラミングは、プロセッサによって実行されると、実施形態1ないし4に関連して上述した任意の方法を実行するようにエンコーダを構成する。
境界パーティショニングに関連する更なる実施形態
VVCでは、マルチタイプ(二分/三分/四分)ツリー(BT/TT/QT又は二分木/三分木/四分木)セグメンテーション構造は、複数のパーティション・ユニット・タイプの概念を置換するものとするか、又は置換することが可能であり、即ち、最大変換長に対して大きすぎるサイズを有するCUに対して必要とされる場合を除いて、CU、PU、及びTUの概念の区別を除去し、CUパーティション形状に対して、より柔軟性をサポートする。[J]
図10A−Fは、一例として、現在VTMで使用されているパーティション・モードを示す。図10Aは、非分割ブロック(分割なし)を示し、図10Bは、四分又は四分木(QT)パーティショニングを示し、図10Cは、水平二分又は二分木(BT)パーティショニングを示し、図10Dは、垂直二分又は二分木(BT)パーティショニングを示し、図10Eは、水平三分又は三分木(TT)パーティショニングを示し、図10Fは、CU又はCTUなどのブロックの垂直三分又は三分木(TT)パーティショニングを示す。実施形態は、図10Aないし10Fに示すように、パーティション・モードを実現するように構成されてもよい。
実施形態では、以下のパラメータが、BT/TT/QTコーディング・ツリー・スキームのためのシーケンス・パラメータ・セット(SPS)シンタックス要素によって規定及び指定されることが可能である:
− CTU size:四分木のルート・ノード・サイズ
− MinQTSize:最小許容四分木リーフ・ノード・サイズ
− MaxBTTSize:最大許容二分及び三分木ルート・ノード・サイズ
− MaxBTTDepth:最大許容二分及び三分木深度、及び
− MinBTTSize:最小許容二分及び三分木リーフ・ノード・サイズ
他の実施形態では、最小許容四分木リーフ・ノード・サイズMinQTSizeパラメータは、他のヘッダ又はセット、例えばスライス・ヘッダ(SH)又はピクチャ・パラメータ・セット(PPS)に含まれる可能性もある。
HEVC規格では、スライス/ピクチャ境界上に位置するコーディング・ツリー・ユニット(CTU)又はコーディング・ユニット(CU)は、リーフ・ノードの右下サンプルがスライス/ピクチャ境界内に位置するまで、四分木(QT)を用いて強制的に分割されるであろう。強制的なQTパーティション又はパーティショニングは、エンコーダ及びデコーダの両方、例えばビデオ・エンコーダ20及びビデオ・デコーダ30の両方が、強制的なQTを適用する時を知っているので、ビットストリームでシグナリングされることを要しない。強制的なパーティションの目的は、ビデオ・エンコーダ20/ビデオ・デコーダ30によって境界CTU/CUを可能にすることである。
国際特許公開番号WO2016/090568は、QTBT(四分木プラス二分木)構造を開示しており、またVTM1.0において、境界CTU/CUの強制的なパーティショニング・プロセスがHEVCから継承される。これは、フレーム境界上に位置するCTU/CUが、現在のCU全体がピクチャ境界内に入るまで、レート歪(RD)最適化を考慮せずに、四分木(QT)構造によって強制的に区分けされることを意味する。これらの強制的なパーティションは、ビットストリームでシグナリングされない。
図11Aは、強制的なQTによって区分けされる高解像度(HD)(1920×1080ピクセル)の下境界CTU(128×128)の強制的なパーティション例を示す。図11において、HDピクチャは1920×1080ピクセルを有するか、又はそれであり、CTUは128×128ピクセルを有するか、又はそれである。
サンディエゴ会議(04.2018)[JVET-J1021におけるCE1(パーティショニング)のSubCE2(ピクチャ境界処理)において、15個のテストが、BT、TT又はABT(非対称BT)を使用するピクチャ境界処理のために提案された。例えば、JVET−K0280及びJVET−K0376では、境界は図12に示されるように規定される。図12は、ドット・ハッシュ線によるピクチャの境界、及び直線における境界ケースのエリア、即ち、下境界ケース、コーナー境界ケース、及び右境界ケースを示す。下境界は、水平な強制的なBT又は強制的なQTにより区分けされることが可能であり、右境界は、垂直な強制的なBT又は強制的なQTにより区分けされることが可能であり、コーナー・ケースは、強制的なQTによってのみ分割されることが可能であり、ここで、何れの強制的なBT又は強制的なQTパーティショニングを使用するかの決定は、レート歪最適化基準に基づいており、ビットストリームでシグナリングされる。強制的なパーティショニングは、ブロックが区分けされなければならないことを意味し、例えば、強制的なパーティショニングは、図10Aに示されるように「非分割」を使用して、コーディングされない可能性がある境界ブロックに適用される。
強制的なQT分割が、強制的な境界パーティショニングで使用される場合、MinQTSizeのパーティショニング制約は無視される。例えば、図13Aにおいて、MinQTSizeがSPSにおいて32としてシグナリングされる場合、境界を、強制的なQT方法と一致させるために、ブロック・サイズ8x8まで落とすQT分割が必要となるであろう。これは、32であるMinQTSizeの制約を無視する。
本開示の実施形態によれば、強制的なQTがピクチャ境界パーティショニングのために使用される場合、強制的なQT分割は、例えばSPSでシグナリングされる分割制約に従う、例えば無視しない。更に強制的な分割が必要な場合には、強制的なBTのみが使用され、これは組み合わせて強制的なQTBTとも呼ばれてもよい。本開示の実施形態では、例えば、パーティション制約MinQTSizeは、ピクチャ境界における強制的なQTパーティショニングに対して考慮され、強制的なBTパーティショニングのための追加のシグナリングは必要とされない。また、実施形態は、通常(非境界)ブロック及び境界ブロックに関するパーティショニングを調和させることを可能にする。例えば、従来の解決策では、通常ブロック・パーティショニングに対して1つ、及び境界ブロック・パーティショニングに対してもう1つという2つの「MinQTSize」パラメータが必要とされる。実施形態は、通常ブロック及び境界のブロックのパーティショニングの両方について1つの共通の「MinQTSize」パラメータを必要とするだけであり、これは、例えば1つの「MinQTSize」パラメータをシグナリングすることによって、エンコーダとデコーダとの間で柔軟に設定されることが可能である。更に、実施形態は、例えば強制的なQTよりも少ないパーティションを必要とする。
下境界ケース及び右境界ケースに対する解決策
下及び右境界のケースでは、ブロック・サイズがMinQTSizeより大きい場合、ピクチャ境界パーティショニングのためのパーティション・モードは、例えばRDO(レート歪最適化)に基づいて、強制的なBTパーティショニングと強制的なQTパーティショニングとの間で選択されることが可能である。そうでない場合(即ち、ブロック・サイズがMinQTSize以下である場合)、強制的なBTパーティショニングのみがピクチャ境界パーティショニングに使用され、より具体的には、ピクチャの下境界に位置する境界ブロックそれぞれに対する下境界に、水平な強制的なBTが使用され、ピクチャの右境界に位置する境界ブロックそれぞれに対する右境界に、垂直な強制的なBTが使用される。
強制的なBTパーティショニングは、現在ブロックのサブ・パーティションがピクチャの下境界に位置するまで、水平な強制的な境界パーティショニングによって、現在ブロックを再帰的に区分けし、リーフ・ノードがピクチャの右境界に完全に位置するまで、垂直な強制的な境界パーティショニングによって、サブ・パーティションを再帰的に区分けすることを含む可能性がある。代替的に、強制的なBTパーティショニングは、現在ブロックのサブ・パーティションが下境界に位置するまで、垂直な強制的な境界パーティショニングによって、現在ブロックを再帰的に区分けし、リーフ・ノードが右境界に完全に位置するまで、水平な強制的な境界パーティショニングによって、サブ・パーティションを再帰的に区分けすることを含む可能性がある。MinQTSizeは非境界ブロックのパーティショニングを制御するためにも適用される可能性がある。
例えば、図11Aに示されるケースにおいて、MinQTSizeは32であるか、又は32として制限され、ピクチャ境界と一致するために8サンプルの高さ又は幅の矩形(非正方形)ブロックのサイズが必要とされる場合、境界が位置する32×32ブロックを区分けするために、強制的なBTパーティショニングが使用されるであろう。BTパーティションは、同じタイプの強制的なBTパーティショニングを用いて更に区分けされることが可能であり、例えば、強制的な垂直BTパーティショニングが適用されているケースでは、更に、強制的な垂直BTパーティショニングのみが適用され、強制的な水平BTパーティショニングが適用されているケースでは、更に、強制的な水平BTパーティショニングのみが適用される。強制的なBTパーティショニングは、リーフ・ノードが完全にピクチャ内に入るまで継続される。
図11Bは、本発明の実施形態による、128×128サンプルのサイズを有する下境界CTUの例示的なパーティショニングを示す。パーティショニング・ツリーのルート・ブロック又はルート・ノードを形成する下境界CTUは、より小さなパーティション、例えば正方形又は長方形サイズのより小さなブロックに区分けされる。これらのより小さなパーティション又はブロックは、更に、より小さなパーティション又はブロックに区分けされることが可能である。図11Bにおいて、CTUは、先ず4つの正方形ブロック710、720、730、及び740に四分木分割され、各々が64×64サンプルのサイズを有する。これらのブロックのうち、ブロック710及び720は、再び下境界ブロックであるが、ブロック730及び740は、ピクチャの外側にあり(それぞれ、ピクチャの外側に位置し)、処理されない。
ブロック710は、4つの正方形ブロック750、760、770、及び780に区分けする四分木を使用して更に区分けされ、各々が32×32サンプルのサイズを有する。ブロック750及び760は、ピクチャの内側に位置するが、ブロック770及び780は、再び下境界ブロックを形成する。ブロック770のサイズは、例えば32であるMinQTSizeよりも大きくないので、再帰的な水平な強制的な二分パーティショニングがブロック770に、リーフ・ノードが完全にピクチャ内にあるか、又は完全にピクチャ内に位置するまで、例えばリーフ・ノード・ブロック772、32×16サンプルを有する矩形の非正方形ブロックが、ピクチャ内にあるまで(1つの水平二分割の後)、又はリーフ・ノード・ブロック774、ピクチャの下境界に位置し且つ32×8サンプルを有する矩形の非正方形ブロックが、ピクチャ内にあるまで(2つの水平二分割の後)、適用される。同じことがブロック780に適用される。
本開示の実施形態は、ピクチャ内に完全に位置する通常ブロックのためのパーティショニングと境界ブロックのパーティショニングとを調和させることを可能にする。境界ブロックは、完全にピクチャ内にはなく、完全にピクチャ外にもないブロックである。言い換えると、境界ブロックは、ピクチャ内に位置する部分と、ピクチャ外に位置する部分とを含むブロックである。更に、本開示の実施形態は、MinQTSize以下での強制的なBTパーティショニングはシグナリングされる必要がないので、シグナリングを低減させることを許容する。
コーナー・ケースに対する解決策
コーナー・ケースでは、幾つかのアプローチは強制的なQT分割のみを許容し、これもMinQTSizeの制約を無視する。本開示の実施形態は、コーナー・ケースに対する2つの解決策を提供する。コーナー・ケースは、現在処理されているブロックがピクチャのコーナーにある場合に生じる。これは、現在ブロックが2つのピクチャ境界(垂直及び水平)によって交差するか、又は隣接する場合である。
解決策1:
コーナー・ケースは、下境界のケース又は右境界のケースと考えられる。図14は、境界定義の実施形態を示す。図14は、ピクチャの境界をドット・ハッシュ線で示し、境界ケースのエリアを直線で示す。図示されるように、コーナー・ケースは下境界ケースとして定義される。従って、解決策は上述の下境界ケースと右境界ケースに関して説明されたものと同じである。言い換えると、先ず、ブロック又はパーティションが完全にピクチャ内になるまで(垂直方向で)、水平パーティショニングが(下境界のケースに関して説明したように)適用され、次いで、リーフ・ノードが完全にピクチャ内になるまで(水平方向で)、垂直パーティショニングが(右境界のケースに関して説明したように)適用される。境界ケースは境界ブロックであってもよい。
解決策2:
境界ケースの定義は、現状のまま保たれる。強制的なQTがMinQTSizeによって制約される場合(現在ブロック・サイズはMinQTSize以下である)、水平な強制的なBTを用いて下境界に一致させ、下境界が一致する場合は、垂直な強制的なBTを用いて右境界に一致させる。
例えば、ピクチャのコーナーに位置するブロックについて強制的なQTBTの実施形態を示す図13Aでは、MinQTSizeが、コーナー・ケースの強制的なQTパーティションに対して32であるか、又はそのように制限される場合、強制的なパーティションが終了するまで、32x32ブロックのパーティションの後に、更なるBTパーティションが使用されるであろう。
図13Bは、本発明の実施形態によるピクチャのコーナーにおいて又はその中で境界CTUの例示的なパーティショニングの更なる詳細を示し、CTUは128×128サンプルのサイズを有する。CTUは先ず4つの正方形ブロックに四分木区分けされ、各々は64×64サンプルのサイズを有する。これらのブロックのうち、上左ブロック910のみが境界ブロックであり、他の3つは、ピクチャの外側(完全に外側)に位置し、更には処理されない。ブロック910は、4つの正方形ブロック920、930、940、及び950に区分けする四分木を使用して更に区分けされ、各々が32×32サンプルのサイズを有する。ブロック920はピクチャの内側に位置し、ブロック930、940及び950は再び境界ブロックを形成する。これらのブロック930、940、及び950のサイズは、32であるMinQTSizeより大きくないので、強制的な二分割がブロック930、940、及び950に適用される。
ブロック930は、右境界に位置し、リーフ・ノードがピクチャ内に入るまで、例えば(ここでは、2つの垂直二分割の後に)ブロック932がピクチャの右境界に位置するまで、再帰的な垂直な強制的な二分割を用いて区分けされる。
ブロック940は、下境界に位置し、リーフ・ノードがピクチャ内に入るまで、例えば(ここでは、2つの水平二分割の後に)ブロック942がピクチャの右境界に位置するまで、再帰的な水平な強制的な二分割を用いて区分けされる。
ブロック950は、コーナー境界に位置し、サブ・パーティション又はブロック、ここではブロック952が、(ここでは、2つの水平二分割の後に)ピクチャの下境界に位置するまで、第1の再帰的な水平な強制的な二分割を用いて区分けされ、次いで、リーフ・ノード又はブロック、例えばブロック954が、(ここでは、2つの垂直二分割の後に)ピクチャの右境界に位置するまで、又はそれぞれリーフ・ノードがピクチャ内に位置するまで、垂直な強制的な境界パーティショニングによりサブ・パーティションを再帰的に区分けする。
上記のアプローチは、復号化及び符号化の両方に適用されてもよい。復号化の場合、MinQTSizeはSPSにより受信される可能性がある。符号化の場合、MinQTSizeはSPSにより送信される可能性がある。実施形態は、図12又は図14に示すような境界定義、又は他の境界定義を使用してもよい。
本開示の更なる実施形態は、以下に提供される。以下のセクションで使用される番号は、前のセクションで使用された番号に必ずしも従う必要はないことに留意すべきである。
実施形態1:パーティショニング方法であって:
ピクチャの現在ブロックが境界ブロックであるかどうかを決定するステップと、
現在ブロックが境界ブロックである場合に、現在ブロックのサイズが最小許容四分木リーフ・ノード・サイズより大きいかどうかを決定するステップと、
現在ブロックのサイズが、最小許容四分木リーフ・ノード・サイズより大きくない場合に、強制的な二分木分割を現在ブロックに適用するステップとを含む方法。
実施形態2:実施形態1のパーティショニング方法において、強制的な二分木パーティショニングは、現在ブロックがピクチャの下境界に位置する場合には再帰的な水平な強制的な二分割であるか、又は現在ブロックがピクチャの右境界に位置する場合には再帰的な垂直な強制的な境界パーティショニングである。
実施形態3:実施形態1又は2のパーティショニング方法において、強制的な二分割は、現在ブロックのサブ・パーティションがピクチャの下境界に直接的に位置するまで、水平な強制的な境界パーティショニングによって、現在ブロックを再帰的に区分けし、リーフ・ノードがピクチャの右境界に直接的に完全に位置するまで、又はその逆になるまで、垂直な強制的な境界パーティショニングによって、サブ・パーティションを再帰的に区分けすることを含む。
実施形態4:実施形態1−3のうちの何れか1つのパーティショニング方法において、最小許容四分木リーフ・ノード・サイズは、非境界ブロックのパーティショニングを制御するためにも適用される最小許容四分木リーフ・ノード・サイズである。
実施形態5:実施形態1−4のうちの何れか1つのパーティショニング方法に従ってブロックを区分けすることにより、ブロックを復号化する復号化方法。
実施形態6:実施形態5の復号化方法において、最小許容四分木リーフ・ノード・サイズは、SPSにより受信される。
実施形態7:実施形態1−4のうちの何れか1つのパーティショニング方法に従ってブロックを区分けすることにより、ブロックを符号化する符号化方法。
実施形態8:実施形態7の符号化方法において、最小許容四分木リーフ・ノード・サイズは、SPSにより送信される。
実施形態9:実施形態5又は6の何れか1つの方法を実行するように構成された論理回路を含む復号化デバイス。
実施形態10:実施形態7又は8の何れか1つの方法を実行するように構成された論理回路を含む符号化デバイス。
実施形態11:プロセッサにより実行された場合に、実施形態1−8による方法のうちの何れか1つをプロセッサに実行させる命令を記憶する非一時的な記憶媒体。
装置は、メモリ要素と、メモリ要素に結合され、ピクチャの現在ブロックが境界ブロックであるかどうかを決定し、現在ブロックが境界ブロックである場合に、現在ブロックのサイズが最小許容四分木(QT)リーフ・ノード・サイズ(MinQTSize)より大きいかどうかを決定し、現在ブロックのサイズがMinQTSizeより大きくない場合に、強制的な二分木(BT)パーティショニングを現在ブロックに適用するように構成されたプロセッサ要素とを含む。
要約すると、本願(又は本開示)の実施形態は、符号化及び復号化のための装置及び方法を提供する。
第1態様は、ピクチャの現在ブロックが境界ブロックであるかどうか、及び、現在ブロックのサイズが、最小許容四分木リーフ・ノード・サイズより大きいかどうかを決定するステップと、現在ブロックが境界ブロックであり、且つ現在ブロックのサイズが最小許容四分木リーフ・ノード・サイズ(MinQTSize)より大きくない場合に、強制的な二分木(BT)パーティショニングを現在ブロックに適用するステップとを含むパーティショニング方法に関する。
このような第1態様による方法の第1実装形式において、強制的な二分木パーティショニングは、現在ブロックがピクチャの下境界に位置する場合には再帰的な水平な強制的な二分割、又は現在ブロックがピクチャの右境界に位置する場合には再帰的な垂直な強制的な境界パーティショニングである。
このような第1態様又は第1態様の任意の先行する実装形式による方法の第2実装形式において、強制的な二分木分割は、リーフ・ノード・ブロックがピクチャ内に入るまで継続される。
このような第1態様又は第1態様の任意の先行する実装形式による方法の第3実装形式において、強制的な二分割は、現在ブロックのサブ・パーティションがピクチャの下境界に位置するまで、水平な強制的な境界パーティショニングによって現在ブロックを再帰的に区分けするステップと、リーフ・ノードがピクチャの右境界に完全に位置するまで、垂直な強制的な境界パーティショニングによってサブ・パーティションを再帰的に区分けするステップとを含む。
このような第1態様又は第1態様の任意の先行する実装形式による方法の第4実装形式において、強制的なBTパーティショニングは、現在ブロックのサブ・パーティションが下境界に位置するまで、垂直な強制的な境界パーティショニングによって現在ブロックを再帰的に区分けするステップと、リーフ・ノードが右境界に完全に位置するまで、水平な強制的な境界パーティショニングによってサブ・パーティションを再帰的に区分けするステップとを含む。
このような第1態様又は第1態様の任意の先行する実装形式による方法の第5実装形式において、方法は、非境界ブロックのパーティショニングを制御するために、最小許容四分木リーフ・ノード・サイズを適用するステップを更に含む。
このような第1態様又は第1態様の任意の先行する実装形式による方法の第6実装形式において、境界ブロックは、完全にピクチャ内にはなく、完全にピクチャ外にもないブロックである。
第2態様は、このような第1態様又は第1態様の任意の先行する実装形式に従ってブロックを区分けすることによってブロックを復号化するための復号化方法に関連する。
このような第2態様による方法の第1実装形式において、方法は、シーケンス・パラメータ・セット(SPS)を介して、最小許容四分木リーフ・ノード・サイズを受信するステップを更に含む。
第3態様は、このような第1態様又は第1態様の任意の先行する実装形式に従ってブロックを区分けすることによってブロックを符号化するための符号化方法に関連する。
このような第3態様による方法の第1実装形式において、方法は、シーケンス・パラメータ・セット(SPS)を介して、最小許容四分木リーフ・ノード・サイズを送信するステップを更に含む。
第4態様は、このような第1態様又は第1態様の任意の先行する実装形式のパーティショニング方法に従ってブロックを区分けすることによってブロックを復号化するように構成された論理回路を含む復号化デバイスに関連する。
このような第4態様による復号化デバイスの第1実装形式において、論理回路は、シーケンス・パラメータ・セット(SPS)を介して、最小許容四分木リーフ・ノード・サイズを受信するように更に構成されている。
第5態様は、このような第1態様又は第1態様の任意の先行する実装形式のパーティショニング方法に従ってブロックを区分けすることによってブロックを符号化するように構成された論理回路を含む符号化デバイスに関連する。
このような第5態様による復号化デバイスの第1実装形式において、論理回路は、シーケンス・パラメータ・セット(SPS)を介して、最小許容四分木リーフ・ノード・サイズを送信するように更に構成されている。
第6態様は、プロセッサによって実行される場合に、このような任意の第1、第2、第3態様又は第1、第2、第3態様の任意の先行する実装形式をプロセッサに実行させる命令を記憶するための非一時的な記憶媒体に関連する。
第7態様は、ピクチャの現在ブロックが境界ブロックであること、及び、現在ブロックのサイズが、最小許容四分木(QT)リーフ・ノード・サイズ(MinQTSize)以下であること判断するステップと、判断に応じて、強制的な二分木(BT)パーティショニングを現在ブロックに適用するステップとを含む方法に関する。
このような第7態様による方法の第1実装形式において、現在ブロックはピクチャの下境界に位置し、強制的BTパーティショニングは再帰的な水平な強制的なBTパーティショニングである。
このような第7態様又は第7態様の任意の先行する実装形式による方法の第2実装形式において、現在ブロックはピクチャの右境界に位置し、強制的なBTパーティショニングは再帰的な垂直な強制的なBTパーティショニングである。
このような第7態様又は第7態様の任意の先行する実装形式による方法の第3実装形式において、強制的なBTパーティショニングは、現在ブロックのサブ・パーティションが下境界に位置するまで、水平な強制的な境界パーティショニングによって現在ブロックを再帰的に区分けするステップと、リーフ・ノードが右境界に完全に位置するまで、垂直な強制的な境界パーティショニングによってサブ・パーティションを再帰的に区分けするステップとを含む。
このような第7態様又は第7態様の任意の先行する実装形式による方法の第4実装形式において、強制的なBTパーティショニングは、現在ブロックのサブ・パーティションが下境界に位置するまで、垂直な強制的な境界パーティショニングによって現在ブロックを再帰的に区分けするステップと、リーフ・ノードが右境界に完全に位置するまで、水平な強制的な境界パーティショニングによってサブ・パーティションを再帰的に区分けするステップとを含む。
このような第7態様又は第7態様の任意の先行する実装形式による方法の第5実装形式において、方法は、非境界ブロックのパーティショニングを制御するためにMinQTSizeを適用するステップを更に含む。
このような第7態様又は第7態様の任意の先行する実装形式による方法の第6実装形式において、方法は、シーケンス・パラメータ・セット(SPS)を介して、MinQTSizeを受信するステップを更に含む。
このような第7態様又は第7態様の任意の先行する実装形式による方法の第7実装形式において、方法は、シーケンス・パラメータ・セット(SPS)を介して、MinQTSizeを送信するステップを更に含む。
第8態様は、メモリと、メモリに結合され、ピクチャの現在ブロックが境界ブロックであるかどうかを決定し、現在ブロックが境界ブロックである場合に、現在ブロックのサイズが、最小許容四分木(QT)リーフ・ノード・サイズ(MinQTSize)より大きいかどうかを決定し、現在ブロックのサイズがMinQTSizeより大きくない場合に、強制的な二分木(BT)パーティショニングを現在ブロックに適用するように構成されたプロセッサとを含む装置に関連する。
このような第8態様による装置の第1実装形式において、強制的なBTパーティショニングは、現在ブロックがピクチャの下境界に位置する場合には再帰的な水平な強制的なBTパーティショニング、又は現在ブロックがピクチャの右境界に位置する場合には再帰的な垂直な強制的なBTパーティショニングである。
このような第8態様又は第8態様の任意の先行する実装形式による装置の第2実装形式において、強制的なBTパーティショニングは、現在ブロックのサブ・パーティションが下境界に位置するまで、水平な強制的な境界パーティショニングによって現在ブロックを再帰的に区分けするステップと、リーフ・ノードが右境界に完全に位置するまで、垂直な強制的な境界パーティショニングによってサブ・パーティションを再帰的に区分けするステップとを含む。
このような第8態様又は第8態様の任意の先行する実装形式による装置の第3実装形式において、強制的なBTパーティショニングは、現在ブロックのサブ・パーティションが下境界に位置するまで、垂直な強制的な境界パーティショニングによって現在ブロックを再帰的に区分けするステップと、リーフ・ノードが右境界に完全に位置するまで、水平な強制的な境界パーティショニングによってサブ・パーティションを再帰的に区分けするステップとを含む。
このような第8態様又は第8態様の任意の先行する実装形式による装置の第4実装形式において、プロセッサは、非境界ブロックのパーティショニングを制御するためにMinQTSizeを適用するように更に構成されている。
このような第8態様又は第8態様の任意の先行する実装形式による装置の第5実装形式において、装置は、プロセッサに結合され、シーケンス・パラメータ・セット(SPS)を介して、MinQTSizeを受信するように構成された受信機を更に含む。
このような第8態様又は第8態様の任意の先行する実装形式による装置の第6実装形式において、装置は、プロセッサに結合され、シーケンス・パラメータ・セット(SPS)を介して、MinQTSizeを送信するように構成された送信機を更に含む。
第9態様は、非一時的な媒体に記憶されたコンピュータ実行可能命令を含むコンピュータ・プログラム製品に関連し、命令は、プロセッサにより実行されると、ピクチャの現在ブロックが境界ブロックであるかどうかを決定し、現在ブロックが境界ブロックである場合に、現在ブロックのサイズが、最小許容四分木(QT)リーフ・ノード・サイズ(MinQTSize)より大きいかどうかを決定し、現在ブロックのサイズがMinQTSizeより大きくない場合に、強制的な二分木(BT)パーティショニングを現在ブロックに適用することを装置に行わせる。
このような第8態様による装置の第1実装形式において、強制的なBTパーティショニングは、現在ブロックがピクチャの下境界に位置する場合には再帰的な水平な強制的なBTパーティショニング、又は現在ブロックがピクチャの右境界に位置する場合には再帰的な垂直な強制的なBTパーティショニングである。
このような第9態様又は第9態様の任意の先行する実装形式による装置の第2実装形式において、強制的なBTパーティショニングは、現在ブロックのサブ・パーティションが下境界に位置するまで、水平な強制的な境界パーティショニングによって現在ブロックを再帰的に区分けするステップと、リーフ・ノードが右境界に完全に位置するまで、垂直な強制的な境界パーティショニングによってサブ・パーティションを再帰的に区分けするステップとを含む。
このような第9態様又は第9態様の任意の先行する実装形式による装置の第3実装形式において、強制的なBTパーティショニングは、現在ブロックのサブ・パーティションが下境界に位置するまで、垂直な強制的な境界パーティショニングによって現在ブロックを再帰的に区分けするステップと、リーフ・ノードが右境界に完全に位置するまで、水平な強制的な境界パーティショニングによってサブ・パーティションを再帰的に区分けするステップとを含む。
このような第9態様又は第9態様の任意の先行する実装形式による装置の第4実装形式において、命令は、非境界ブロックのパーティショニングを制御するためにMinQTSizeを適用することを装置に更に行わせる。
このような第9態様又は第9態様の任意の先行する実装形式による装置の第5実装形式において、命令は、シーケンス・パラメータ・セット(SPS)を介して、MinQTSizeを受信することを装置に更に行わせる。
このような第9態様又は第9態様の任意の先行する実装形式による装置の第6実装形式において、命令は、シーケンス・パラメータ・セット(SPS)を介して、MinQTSizeを送信することを装置に更に行わせる。
幾つかの実施形態によれば、1つ以上のプロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能な記憶媒体とを含むデコーダが提供され、プログラミングは、プロセッサによって実行されると、実施形態1ないし4に関連して上述した任意の方法を実行するようにデコーダを構成する。
更に、1つ以上のプロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能な記憶媒体とを含むエンコーダが提供され、プログラミングは、プロセッサによって実行されると、実施形態1ないし4に関連して上述した任意の方法を実行するようにエンコーダを構成する。
以下は、上述した実施形態で示されるような復号化方法と同様な符号化方法、及びそれを使用するシステムの適用の説明である。
図17は、コンテンツ配信サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、捕捉デバイス3102と、端末デバイス3106とを含み、オプションとしてディスプレイ3126を含む。捕捉デバイス3102は、通信リンク3104を介して端末デバイス3106と通信する。通信リンクは、上述の通信チャネル13を含んでもよい。通信リンク3104は、WIFI、イーサーネット、ケーブル、無線(3G/4G/5G)、USB、又はそれらの任意の種類の組み合わせ等を含むが、これらに限定されない。
捕捉デバイス3102は、データを生成し、上記の実施形態に示されるように、符号化方法によってデータを符号化してもよい。あるいは、捕捉デバイス3102は、ストリーミング・サーバー(不図示)にデータを分配することが可能であり、サーバーは、データを符号化し、符号化されたデータを端末デバイス3106に送信する。捕捉デバイス3102は、カメラ、スマートフォン又はパッド、コンピュータ又はラップトップ、ビデオ会議システム、PDA、車載デバイス、又はそれら任意の組み合わせ等を含むが、これらに限定されない。例えば、捕捉デバイス3102は、上述のようにソース・デバイス12を含んでもよい。データがビデオを含む場合、捕捉デバイス3102に含まれるビデオ・エンコーダ20は、実際にビデオ符号化処理を実行することができる。データがオーディオ(即ち、声)を含む場合、捕捉デバイス3102に含まれるオーディオ・エンコーダは、実際にオーディオ符号化処理を実行することができる。幾つかの実際的なシナリオでは、捕捉デバイス3102は、符号化されたビデオ及びオーディオ・データを、それらを一緒に多重化することによって分配する。他の実際的なシナリオ、例えばビデオ会議システムにおいては、符号化されたオーディオ・データ及び符号化されたビデオ・データは多重化されない。捕捉デバイス3102は、符号化されたオーディオ・データ及び符号化されたビデオ・データを別々に端末デバイス3106に分配する。
コンテンツ供給システム3100では、端末デバイス310は、符号化されたデータを受信及び再生する。端末デバイス3106は、スマートフォン又はパッド3108、コンピュータ又はラップトップ3110、ネットワーク・ビデオ・レコーダ(NVR)/デジタル・ビデオ・レコーダ(DVR)3112、TV3114、セット・トップ・ボックス(STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、携帯デジタル・アシスタント(PDA)3122、車載デバイス3124、又はこれらの任意の組み合わせ、又は上述した符号化されたデータを復号化することができるもののような、データ受信及び復元能力を有するデバイスであるとすることが可能である。例えば、端末デバイス3106は、上述したような宛先デバイス14を含んでもよい。符号化されたデータがビデオを含む場合、端末デバイスに含まれるビデオ・デコーダ30は、ビデオ復号化を実行するように優先される。符号化されたデータがオーディオを含む場合、端末デバイスに含まれるオーディオ・デコーダは、オーディオ復号化処理を実行するように優先される。
ディスプレイを有する端末デバイス、例えば、スマートフォン又はパッド3108、コンピュータ又はラップトップ3110、ネットワーク・ビデオ・レコーダ(NVR)/デジタル・ビデオ・レコーダ(DVR)3112、TV3114、パーソナル・デジタル・アシスタント(PDA)3122、又は車載デバイス3124の場合、端末デバイスは、復号化されたデータをそのディスプレイに供給することができる。例えば、STB3116、ビデオ会議システム3118、又はビデオ監視システム3120のようなディスプレイを備えない端末デバイスについては、復号化されたデータを受信及び表示するために、外部ディスプレイ3126がそこに付けられる。
このシステムにおける各デバイスが符号化又は復号化を実行する場合に、上記の実施形態に示されるように、ピクチャ符号化デバイス又はピクチャ復号化デバイスを使用することができる。
図18は、端末デバイス3106の一例の構成を示す図である。端末デバイス3106が捕捉デバイス3102からストリームを受信した後に、プロトコル処理ユニット3202は、ストリームの送信プロトコルを分析する。プロトコルは、リアル・タイム・ストリーミング・プロトコル(RTSP)、ハイパーテキスト転送プロトコル(HTTP)、HTTPライブ・ストリーミング・プロトコル(HLS)、MPEG−DASH、リアル・タイム転送プロトコル(RTP)、リアル・タイム・メッセージング・プロトコル(RTMP)、又はそれらの任意の種類の組み合わせ等を含むが、これらに限定されない。
プロトコル処理ユニット3202がストリームを処理した後に、ストリーム・ファイルが生成される。ファイルは、逆多重化ユニット3204に出力される。逆多重化ユニット3204は、多重化されたデータを、符号化されたオーディオ・データ及び符号化されたビデオ・データに分離することができる。上述したように、幾つかの実際的なシナリオに関し、例えばビデオ会議システムにおいて、符号化されたオーディオ・データ及び符号化されたビデオ・データは多重化されない。この状況では、符号化されたデータは、逆多重化ユニット3204を介することなく、ビデオ・デコーダ3206及びオーディオ・デコーダ3208に送信される。
逆多重化処理により、ビデオ要素ストリーム(ES)、オーディオES、及びオプションとして字幕が生成される。上述の実施形態で説明したようなビデオ・デコーダ30を含むビデオ・デコーダ3206は、上述の実施形態で示されるような復号化方法によってビデオESを復号化してビデオ・フレームを生成し、このデータを同期ユニット3212へ送る。オーディオ・デコーダ3208は、オーディオESを復号化してオーディオ・フレームを生成し、このデータを同期ユニット3212へ送る。代替的に、ビデオ・フレームは、それを同期ユニット3212へ供給する前に、バッファ(図18では示されていない)に格納してもよい。同様に、オーディオ・フレームは、それを同期ユニット3212へ供給する前に、バッファ(図18では示されていない)に格納してもよい。
同期ユニット3212は、ビデオ・フレーム及びオーディオ・フレームを同期させ、ビデオ/オーディオをビデオ/オーディオ・ディスプレイ3214に供給する。例えば、同期ユニット3212は、ビデオ及びオーディオ情報の提示を同期させる。情報は、コーディングされたオーディオ及びビジュアル・データの提示に関するタイムスタンプとデータ・ストリーム自体の配信に関するタイムスタンプとを使用して、シンタックスでコーディングしてもよい。
字幕がストリームに含まれる場合、字幕デコーダ3210は、字幕を復号化し、それをビデオ・フレーム及びオーディオ・フレームと同期させ、ビデオ/オーディオ/字幕をビデオ/オーディオ/字幕ディスプレイ3216に供給する。
本発明は、上述のシステムには限定されず、上述の実施形態におけるピクチャ符号化デバイス又はピクチャ復号化デバイスの何れかが、他のシステム、例えば車両システムに組み込まれることが可能である。
本発明の実施形態は、主にビデオ・コーディングに基づいて説明されてきたが、コーディング・システム10、エンコーダ20及びデコーダ30(及び対応するシステム10)の実施形態、並びに本願で説明される他の実施形態はまた、静止画の処理又はコーディング、即ちビデオ・コーディングにおけるように、任意の先行する又は連続するピクチャから独立した個々のピクチャの処理又はコーディングのために構成されてもよいことに留意すべきである。一般に、ピクチャ処理コーディングが単一のピクチャ17に限定される場合、インター予測ユニット244(エンコーダ)及び344(デコーダ)のみが利用できない可能性がある。ビデオ・エンコーダ20及びビデオ・デコーダ30の他の全ての機能(ツール又は技術とも呼ばれる)は、静止画処理、例えば残差計算204/304、変換206、量子化208、逆量子化210/310、(逆)変換212/312、パーティショニング262/362、イントラ予測254/354、及び/又はループ・フィルタリング220、320、及びエントロピー・コーディング270及びエントロピー復号化304に関して同様に使用することが可能である。
例えば、エンコーダ20及びデコーダ30の実施形態、並びに例えばエンコーダ20及びデコーダ30に関連して本願で説明される機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実現されることが可能である。ソフトウェアで実現される場合、機能は、コンピュータ読み取り可能な媒体に記憶されるか、1つ以上の命令又はコードとして通信媒体を介して伝送され、ハードウェア・ベースの処理ユニットによって実行されることが可能である。コンピュータ読み取り可能な媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ読み取り可能な記憶媒体、又は、例えば通信プロトコルに従って、ある場所から他の場所へのコンピュータ・プログラムの転送を促す任意の媒体を含む通信媒体を含んでもよい。このように、コンピュータ読み取り可能な媒体は、一般に、(1)非一時的である有形のコンピュータ読み取り可能な記憶媒体、又は(2)信号又は搬送波のような通信媒体に対応する可能性がある。データ記憶媒体は、本開示で説明される技術の実施のための命令、コード及び/又はデータ構造を取り出すために、1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされることが可能な任意の利用可能な媒体である可能性がある。コンピュータ・プログラム製品は、コンピュータ読み取り可能な媒体を含む可能性がある。
1つ以上の例において、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実現される可能性がある。ソフトウェアで実現される場合、機能は、コンピュータ読み取り可能な媒体における1つ以上の命令又はコードとして記憶され又は伝送され、ハードウェア・ベースの処理ユニットによって実行されてもよい。コンピュータ読み取り可能な媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ読み取り可能な記憶媒体、又は、例えば通信プロトコルに従って、ある場所から他の場所へのコンピュータ・プログラムの転送を促す任意の媒体を含む通信媒体を含んでもよい。このように、コンピュータ読み取り可能な媒体は、一般に、(1)非一時的である有形のコンピュータ読み取り可能な記憶媒体、又は(2)信号又は搬送波のような通信媒体に対応する可能性がある。データ記憶媒体は、本開示で説明される技術の実施のための命令、コード及び/又はデータ構造を取り出すために、1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされることが可能な任意の利用可能な媒体である可能性がある。コンピュータ・プログラム製品は、コンピュータ読み取り可能な媒体を含む可能性がある。
例えば、限定ではないが、このようなコンピュータ読み取り可能な記憶媒体は、RAM、ROM、EEPROM、CD−ROM又は他の光ディスク・ストレージ、磁気ディスク・ストレージ、又は他の磁気ストレージ・デバイス、フラッシュ・メモリ、又は、任意の他の媒体であって命令又はデータ構造の形式で所望のプログラム・コードを記憶するために使用することが可能であり且つコンピュータによってアクセスされることが可能な媒体を含むことが可能である。また、任意の接続が、コンピュータ読み取り可能な媒体と適宜呼ばれる。例えば、同軸ケーブル、光ファイバ・ケーブル、ツイスト・ペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波のような無線技術を用いて、ウェブサイト、サーバー、又は他のリモート・ソースから、命令が送信される場合、同軸ケーブル、光ファイバ・ケーブル、ツイスト・ペア、DSL、又は赤外線、無線、及びマイクロ波のような無線技術は、媒体の定義に含まれる。しかしながら、コンピュータ読み取り可能な記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的な媒体を含まず、むしろ非一時的な有形の記憶媒体に向けられることが理解されるはずである。ディスク及びディスクは、本願で使用されるように、コンパクト・ディスク(CD)、レーザー・ディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピー・ディスク及びブルーレイ・ディスクを含み、ディスクは、通常、磁気的にデータを再生し、ディスクは光学的にレーザーでデータを再生する。上記の組み合わせもまた、コンピュータ読み取り可能な媒体の範囲内に含まれるはずである。
命令は、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールド・プログラマブル論理アレイ(FPGA)、又は他の同等な集積又は個別論理回路のような1つ以上のプロセッサによって実行されることが可能である。従って、本願で使用されるような「プロセッサ」という用語は、前述の構造の何れか、又は本願で説明される技術の実装に適した他の任意の構造を指す可能性がある。更に、幾つかの態様において、本願で説明される機能は、符号化及び復号化のために構成される専用ハードウェア及び/又はソフトウェアモジュール内で提供されてもよいし、又は組み合わせられたコーデックに組み込まれてもよい。また、技術は1つ以上の回路又は論理素子で完全に実装されることが可能である。
本開示の技術は、ワイヤレス・ハンドセット、集積回路(IC)、又は一組のIC(例えば、チップ・セット)を含む広く様々なデバイス又は装置で実現されことが可能である。開示される技術を実行するように構成されるデバイスの機能的側面を強調するために、種々のコンポーネント、モジュール、又はユニットが本開示で説明されているが、必ずしも異なるハードウェア・ユニットによる実現を必要としていない。むしろ、上述のように、種々のユニットは、コーデック・ハードウェア・ユニット内で組み合わされてもよく、又は、適切なソフトウェア及び/又はファームウェアと共に、上述のような1つ以上のプロセッサを含む、相互運用可能なハードウェア・ユニットの集合によって提供されてもよい。
以下の論理演算子又は数学演算子は次のように定義される。
本願で使用される数学演算子は、Cプログラミング言語で使用されるものに類似している。しかしながら、整数除算及び算術シフト演算の結果は、より正確に定義され、指数化や実数値除算などの追加的な演算が規定される。番号付け及びカウントの規則は一般に0から始まり、例えば、“第1”は0番目と同等であり、“第2”は1番目と同等、等々である。
算術演算子
以下の算術演算子は次のように規定される:
論理演算子
以下の論理演算子は次のように規定される:
x&&y x及びyのブール論理“and”
x||y x及びyのブール論理“or”
! ブール論理“not”
x?y:z xがTRUEであるか又は0に等しくない場合には、yの値を評価し、そうでなければzの値を評価する。
関係演算子
以下の関係演算子は次のように規定される:
> より大きい
>= より大きい又は等しい
< より小さい
<= より小さい又は等しい
== に等しい
!= に等しくない
関係演算子が、値“na”(適用可能でない)を指定されているシンタックス要素又は変数に適用される場合、値“na”はそのシンタックス要素又は変数の別個の値として扱われる。値“na”は他の如何なる値にも等しくないと考えられる。
ビット・ワイズ演算子
以下のビット・ワイズ演算子は次のように規定される:
& ビット・ワイズ“and”。整数引数に関して作用する場合、整数値の2の補数表現に関して作用する。他の引数より少ないビットを含む二進引数に関して作用する場合、より短い引数は、0に等しい更なる上位ビットを加えることによって拡張される。
| ビット・ワイズ“or”。整数引数に関して作用する場合、整数値の2の補数表現に関して作用する。他の引数より少ないビットを含む二進引数に関して作用する場合、より短い引数は、0に等しい更なる上位ビットを加えることによって拡張される。
^ ビット・ワイズ“排他的or”。整数引数に関して作用する場合、整数値の2の補数表現に関して作用する。他の引数より少ないビットを含む二進引数に関して作用する場合、より短い引数は、0に等しい更なる上位ビットを加えることによって拡張される。
x>>y xの2の補数整数表現をyという二進数だけ算術右シフトしたもの。この関数はyの非負の整数値についてのみ規定される。右シフトの結果として最上位ビット(MSB)にシフトされたビットは、シフト操作前のxのMSBに等しい。
x<<y xの2の補数整数表現をyという二進数だけ算術左シフトしたもの。この関数はyの非負の整数値についてのみ規定される。左シフトの結果として最下位ビット(LSB)にシフトされたビットは、0に等しい値を有する。
代入演算子
以下の代入演算子は次のように規定される:
= 代入演算子
++ インクリメント。即ち、x++はx=x+1に等しい。配列インデックスで使用される場合、インクリメント演算前の変数の値を評価する。
−− デクリメント。即ち、x−−はx=x−1に等しい。配列インデックスで使用される場合、デクリメント演算前の変数の値を評価する。
+= 指定された量によるインクリメント。即ち、x+=3はx=x+3に等しい。x+=(−3)はx=x+(−3)に等しい。
−= 指定された量によるデクリメント。即ち、x−=3はx=x−3に等しい。x−=(−3)はx=x−(−3)に等しい。
レンジ表記
以下の表記が値のレンジを指定するために使用される:
x=y..z xはyから始まってzまでの両端を含む整数値をとり、x、y及びzは整数であり、zはyより大きい。
演算優先順序
括弧を利用することによって表式で優先順位が明示的に指定されていない場合、以下のルールを適用する:
− より高い優先順位の演算は、より低い優先順位の如何なる演算よりも前に評価される。
− 同じ優先順位の演算は、左から右へ順に評価される。
以下の表は、最高から最低までの演算の優先順位を示し、表中でより高い位置は、より高い優先順位を示す。
Cプログラミング言語でも使用されている演算子に関し、本明細書で使用される優先順位は、Cプログラミング言語で使用されるものと同じである
表:最高(表の上)から最低(表の下)までの演算優先順位
論理演算子のテキスト記述
テキストにおいて、以下の形式:
if( condition 0 )
statement 0
else if( condition 1 )
statement 1
...
else /* informative remark on remaining condition */
statement n
で数学的に記述されるような論理演算子のステートメントは、以下の方法で記述されることが可能である:
…as follows/...the following applies:
− If condition 0, statement 0
− Otherwise, if condition 1, statement 1
− ...
− Otherwise (informative remark on remaining condition), statement n
テキストにおける各々の“If ... Otherwise, if ... Otherwise, ...”ステートメントは、“If...”の直後に続く“... as follows”又は“... the following applies”とともに導入される。“If ... Otherwise, if ... Otherwise, ...”の最後の条件は、常に“Otherwise, ...”である。交互の“If ... Otherwise, if ... Otherwise, ...”ステートメントは、“... as follows”又は“... the following applies”を末尾の“Otherwise, ...”と一致させることによって確認することが可能である。
テキストにおいて、以下の形式:
if( condition 0a && condition 0b )
statement 0
else if( condition 1a || condition 1b )
statement 1
...
else
statement n
で数学的に記述されるような論理演算子のステートメントは、以下の方法で記述されることが可能である:
... as follows / ... the following applies:
− If all of the following conditions are true, statement 0:
−condition 0a
−condition 0b
− Otherwise, if one or more of the following conditions are true, statement 1:
−condition 1a
−condition 1b
− ...
− Otherwise, statement n
テキストにおいて、以下の形式:
if( condition 0 )
statement 0
if( condition 1 )
statement 1
で数学的に記述されるような論理演算子のステートメントは、以下の方法で記述されることが可能である:
condition 0である場合には、statement 0
condition 1である場合には、statement 1
要約すると、本開示は、画像又はビデオ信号の符号化及び復号化のために使用される方法及びデバイスに関連する。これらは、現在ブロックのサイズが、最小許容四分木リーフ・ノード・サイズより大きいかどうかの決定を含む。現在ブロックのサイズが最小許容四分木リーフ・ノード・サイズより大きくない場合、マルチタイプ・ツリー分割が現在ブロックに適用される。最小許容四分木リーフ・ノード・サイズは、最大許容二分木ルート・ノード・サイズより大きくないか、又は最小許容四分木リーフ・ノード・サイズは、最大許容三分木ルート・ノード・サイズより大きくない。