関連出願の相互参照
この特許出願は、Ye-Kui Wangらによって2019年2月27日に出願された「Adaptation Parameter Set for Video Coding」と題された米国仮特許出願第62/811,358号、Ye-Kui Wangらによって2019年3月11日に出願された「Adaptation Parameter Set for Video Coding」と題された米国仮特許出願第62/816,753号、及びYe-Kui Wangらによって2019年5月21日に出願された「Adaptation Parameter Set for Video Coding」と題された米国仮特許出願第62/850,973号の利益を主張し、これらは、参照により本明細書に組み込まれる。
本開示は、一般に、ビデオ・コーディングに関連し、特に、ビデオ・コーディングにおいてビデオ・データを圧縮するために使用されるコーディング・ツール・パラメータの効率的なシグナリングに関連する。
比較的短いビデオを描写するために必要とされるビデオ・データの量でも、相当な量となる場合があり、データがストリーム化されるか、そうでなければ限られた帯域幅容量を有する通信ネットワークを介して通信される場合に、困難を生じることがある。したがって、ビデオ・データは、一般に、現代の電気通信ネットワークを介して通信される前に圧縮される。また、メモリ・リソースが限られることがあるため、ビデオが記憶デバイスに記憶される場合に、ビデオのサイズも問題となる可能性がある。ビデオ圧縮デバイスは、しばしば、伝送又は記憶の前にビデオ・データをコーディングするために送信元でソフトウェア及び/又はハードウェアを使用し、それによってデジタル・ビデオ画像を表すのに必要なデータ量を減少させる。そして、圧縮されたデータは、ビデオ・データを復号するビデオ解凍デバイスによって宛先で受信される。ネットワーク・リソースが限られており、より高いビデオ品質の要求が絶えず増加しているため、画像品質にほとんど又はまったく犠牲を払わずに圧縮比を改善する改良された圧縮及び解凍技術が望ましい。
一実施形態では、本開示は、復号器に実装される方法であって、復号器の受信機によって、コーディングされたスライスに関連する適応ループ・フィルタ(ALF)タイプを含む第1の適応パラメータ・セット(APS)ネットワーク抽象化層(NAL)ユニットを含むビットストリームを受信することと、復号器のプロセッサによって、第1のAPS NALユニットからALFパラメータを取得することと、プロセッサによって、ALFパラメータを使用してコーディングされたスライスを復号することと、プロセッサによって、復号されたビデオ・シーケンスの一部として表示するための復号結果を転送することと、を含む、方法を含む。APSは、複数のピクチャにわたる複数のスライスに関係するデータを維持するために使用される。本開示は、異なるタイプのデータを含む複数のタイプのAPSの概念を導入する。具体的には、ALF APSと呼ばれるタイプALFのAPSは、ALFパラメータを含むことができる。さらに、スケーリング・リストAPSと呼ばれるタイプ・スケーリング・リストのAPSは、スケーリング・リスト・パラメータを含むことができる。追加的に、クロマ・スケーリングによるルマ・マッピング(LMCS)APSと呼ばれるタイプLMCSのAPSは、LMCS/リシェイパー・パラメータを含むことができる。ALF APS、スケーリング・リストAPS、及びLMCS APSは、各々別個のNALタイプとしてコーディングされてもよく、したがって、異なるNALユニットに含まれてもよい。このように、1つのタイプのAPSにおけるデータ(例えば、ALFパラメータ)の変更は、変更しない他のタイプのデータ(例えば、LMCSパラメータ)の冗長なコーディングをもたらさない。したがって、複数のタイプのAPSを提供することは、コーディング効率を向上し、したがって、符号化器及び復号器におけるネットワーク・リソース、メモリ・リソース、及び/又は処理リソースの使用を減少させる。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、ビットストリームは、さらに、スケーリング・リスト・タイプを含む第2のAPS NALユニットを含み、方法は、さらに、プロセッサによって、第2のAPS NALユニットからスケーリング・リスト・パラメータを取得することを含み、コーディングされたスライスは、さらに、スケーリング・リスト・パラメータを使用して復号される、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、ビットストリームは、さらに、LMCSタイプを含む第3のAPS NALユニットを含み、方法は、さらに、プロセッサによって、第3のAPS NALユニットからLMCSパラメータを取得することを含み、コーディングされたスライスは、LMCSパラメータを使用して復号される、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、ビットストリームは、さらに、スライス・ヘッダを含み、コーディングされたスライスは、スライス・ヘッダを参照し、スライス・ヘッダは、第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを参照する、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、各APSは、各APSに含まれるパラメータのタイプを示す事前定義された値に設定されたAPSパラメータ・タイプ(aps_params_type)コードを含む、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、現在のAPSは、事前定義された範囲から選択された現在のAPS識別子(ID)を含み、現在のAPS IDは、現在のAPSと同じタイプの以前のAPSに関連する以前のAPS IDに関係し、現在のAPS IDは、現在のAPSとは異なるタイプの別の以前のAPSに関連する別の以前のAPS IDに関係しない、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、各APSは、事前定義された範囲から選択されたAPS IDを含み、事前定義された範囲は、各APSのパラメータ・タイプに基づいて判定される、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、各APSは、パラメータ・タイプとAPS IDの組み合わせによって識別される、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、ビットストリームは、さらに、LMCSがコーディングされたスライスを含む符号化されたビデオ・シーケンスに対して有効であることを示すために設定されたフラグを含むシーケンス・パラメータ・セット(SPS)を含み、第3のAPS NALユニットからのLMCSパラメータがフラグに基づいて取得される、ことを提供する。
一実施形態では、本開示は、符号化器に実装される方法であって、符号化器のプロセッサによって、符号化されたビデオ・シーケンスの一部として、コーディングされたスライスとしてスライスをビットストリームに符号化することと、プロセッサによって、コーディングされたスライスに関連する適応ループ・フィルタ(ALF)パラメータを判定することと、プロセッサによって、ALFタイプを含む第1の適応パラメータ・セット(APS)ネットワーク抽象化レイヤ(NAL)ユニットにおいて、ALFパラメータをビットストリームに符号化することと、プロセッサに結合されたメモリによって、復号器に向かって通信するためのビットストリームを記憶することと、を含む、方法を含む。APSは、複数のピクチャにわたる複数のスライスに関係するデータを維持するために使用される。本開示は、異なるタイプのデータを含む複数のタイプのAPSの概念を導入する。具体的には、ALF APSと呼ばれるタイプALFのAPSは、ALFパラメータを含むことができる。さらに、スケーリング・リストAPSと呼ばれるタイプ・スケーリング・リストのAPSは、スケーリング・リスト・パラメータを含むことができる。追加的に、クロマ・スケーリングによるルマ・マッピング(LMCS)APSと呼ばれるタイプLMCSのAPSは、LMCS/リシェイパー・パラメータを含むことができる。ALF APS、スケーリング・リストAPS、及びLMCS APSは、各々別個のNALタイプとしてコーディングされてもよく、したがって、異なるNALユニットに含まれる。このように、1つのタイプのAPSにおけるデータ(例えば、ALFパラメータ)の変更は、変更しない他のタイプのデータ(例えば、LMCSパラメータ)の冗長なコーディングをもたらさない。したがって、複数のタイプのAPSを提供することは、コーディング効率を向上し、したがって、符号化器及び復号器におけるネットワーク・リソース、メモリ・リソース、及び/又は処理リソースの使用を減少させる。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、プロセッサによって、コーディングされたスライスへの適用のためのスケーリング・リスト・パラメータを判定することと、プロセッサによって、スケーリング・リスト・タイプを含む第2のAPS NALユニットにおいて、スケーリング・リスト・パラメータをビットストリームに符号化することと、をさらに含む、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、プロセッサによって、コーディングされたスライスへの適用のためのLMCSパラメータを判定することと、プロセッサによって、LMCSタイプを含む第3のAPS NALユニットにおいて、LMCSパラメータをビットストリームに符号化することと、をさらに含む、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、プロセッサによって、スライス・ヘッダをビットストリームに符号化することをさらに含み、スライスは、スライス・ヘッダを参照し、スライス・ヘッダは、第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを参照する、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、各APSが、各APSに含まれるパラメータのタイプを示す事前定義された値に設定されたaps_params_typeコードを含む、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、現在のAPSは、事前定義された範囲から選択された現在のAPS IDを含み、現在のAPS IDは、現在のAPSと同じタイプの以前のAPSに関連する以前のAPS IDに関係し、現在のAPS IDは、現在のAPSとは異なるタイプの別の以前のAPSに関連する別の以前のAPS IDに関係しない、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、各APSは、事前定義された範囲から選択されたAPS IDを含み、事前定義された範囲は、各APSのパラメータ・タイプに基づいて判定される、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、各APSは、パラメータ・タイプとAPS IDの組み合わせによって識別される、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、さらに、プロセッサによって、SPSをビットストリームに符号化することを含み、SPSは、LMCSがコーディングされたスライスを含む符号化されたビデオ・シーケンスに対して有効であることを示すように設定されたフラグを含む、ことを提供する。
一実施形態では、本開示は、プロセッサと、プロセッサに結合された受信機と、プロセッサに結合されたメモリと、プロセッサに結合された送信機とを含み、プロセッサ、受信機、メモリ、及び送信機は、上記の態様のいずれかに記載の方法を実行するように構成されている、ビデオ・コーディング・デバイスを含む。
一実施形態では、本開示は、ビデオ・コーディング・デバイスによって使用されるコンピュータ・プログラム製品を含む非一時的コンピュータ可読媒体であって、コンピュータ・プログラム製品は、プロセッサによって実行されるときに、ビデオ・コーディング・デバイスに上記の態様のいずれかに記載の方法を実行させるように、非一時的コンピュータ可読媒体上に記憶されたコンピュータ実行可能命令を含む、非一時的コンピュータ可読媒体を含む。
一実施形態では、本開示は、コーディングされたスライスに関連する、ALFタイプを含む第1のAPS NALユニット、スケーリング・リスト・タイプを含む第2のAPS NALユニット、及びLMCSタイプを含む第3のAPS NALユニットを含む、ビットストリームを受信するための受信手段と、第1のAPS NALユニットからALFパラメータを取得し、第2のAPS NALユニットからスケーリング・リスト・パラメータを取得し、第3のAPS NALユニットからLMCSパラメータを取得するための取得手段と、ALFパラメータ、スケーリング・リスト・パラメータ、及びLMCSパラメータを使用して、コーディングされたスライスを復号するための復号手段と、復号されたビデオ・シーケンスの一部として表示するためのスライスを転送するための転送手段と、を含む、復号器を含む。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、復号器は、さらに、前述の態様のいずれかの方法を実行するように構成されている、ことを提供する。
一実施形態では、本開示は、コーディングされたスライスに関連する、ALFパラメータ、スケーリング・リスト・パラメータ、及びLMCSパラメータを判定するための判定手段と、符号化されたビデオ・シーケンスの一部として、コーディングされたスライスとしてスライスをビットストリームに符号化し、ALFタイプを含む第1のAPS NALユニットにおいて、ALFパラメータをビットストリームに符号化し、スケーリング・リスト・タイプを含む第2のAPS NALユニットにおいて、スケーリング・リスト・パラメータをビットストリームに符号化し、LMCSタイプを含む第3のAPS NALユニットにおいて、LMCSパラメータをビットストリームに符号化するための符号化手段と、復号器に向かって通信するためのビットストリームを記憶する記憶手段と、を含む、符号化器を含む。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、符号化器は、さらに、前述の態様のいずれかの方法を実行するように構成されている、ことを提供する。
明確にするために、前述の実施形態のいずれか1つを、他の前述の実施形態のいずれか1つ以上と組み合わせて、本開示の範囲内の新たな実施形態を作り出すことができる。
これら及び他の特徴は、添付の図面及び特許請求の範囲と併せて解釈される以下の詳細な説明から、より明確に理解されるであろう。
本開示をより完全に理解するために、添付の図面及び詳細な説明に関連して、ここで、以下の簡単な説明を参照し、同様の参照番号は同様の部分を表す。
ビデオ信号をコーディングする例示的な方法のフローチャートである。
ビデオ・コーディングのための例示的なコーディング及び復号(コーデック)システムの例の概略図である。
例示的なビデオ符号化器を示す概略図である。
例示的なビデオ復号器を示す概略図である。
異なるタイプのコーディング・ツール・パラメータを含む複数のタイプの適応パラメータ・セットを含む例示的なビットストリームを示す概略図である。
異なる値空間上の異なるAPSタイプにAPS識別子(ID)を割り当てるための例示的なメカニズムを示す概略図である。
例示的なビデオ・コーディング・デバイスの概略図である。
複数のAPSタイプを用いることによって、ビデオ・シーケンスをビットストリームに符号化する例示的な方法のフローチャートである。
複数のAPSタイプを用いることによって、ビットストリームからビデオ・シーケンスを復号する例示的な方法のフローチャートである。
複数のAPSタイプを用いることにより、画像のビデオ・シーケンスをビットストリームにコーディングするための例示的なシステムの概略図である。
最初に、1つ以上の実施形態の例示的な実装態様が以下に提供されるが、開示されたシステム及び/又は方法は、現在公知であるか存在するかを問わず、任意の数の技術を使用して実装されてもよいと理解されたい。本開示は、本明細書に図示および説明される例示の設計及び実装形態を含め、以下に示される例示的な実装態様、図面及び技術に決して限定されるべきではなく、添付の特許請求の範囲の範囲内で、それらの均等物の全範囲と共に修正されてもよい。
以下の略語は、本明細書において使用される。適応ループ・フィルタ(ALF)、適応パラメータ・セット(APS)、コーディング・ツリー・ブロック(CTB)、コーディング・ツリー・ユニット(CTU)、コーディング・ユニット(CU)、コーデット・ビデオ・シーケンス(CVS)、ハイパーテキスト転送プロトコル上の動的適応ストリーミング(DASH)、イントラ・ランダム・アクセス・ポイント(IRAP)、ジョイント・ビデオ・エキスパーツ・チーム(JVET)、モーション制約タイル・セット(MCTS)、最大転送ユニット(MTU)、ネットワーク抽象レイヤ(NAL)、ピクチャ・オーダ・カウント(POC)、ロー・バイト・シーケンス・ペイロード(RBSP)、サンプル適応オフセット(SAO)、シーケンス・パラメータ・セット(SPS)、バーサタイル・ビデオ・コーディング(VVC)、及びワーキング・ドラフト(WD)である。
多くのビデオ圧縮技術が、最小限のデータ損失でビデオ・ファイルのサイズを低減するために用いられ得る。例えば、ビデオ圧縮技術は、ビデオ・シーケンスにおけるデータ冗長性を低減又は除去するために、空間的(例えば、イントラ・ピクチャ)予測及び/又は時間的(例えば、インター・ピクチャ)予測を実行することを含むことができる。ブロック・ベースのビデオ・コーディングのために、ビデオスライス(例えば、ビデオ・ピクチャ又はビデオ・ピクチャの一部)は、ビデオ・ブロックにパーティション化されてもよく、これは、ツリーブロック、コーディング・ツリー・ブロック(CTB)、コーディング・ツリー・ユニット(CTU)、コーディング・ユニット(CU)、及び/又はコーディング・ノードとも呼ばれ得る。ピクチャのイントラ・コーディング(I)されたスライスにおけるビデオ・ブロックは、同じピクチャ内の隣接ブロックにおける参照サンプルに対して空間的予測を用いてコーディングされる。ピクチャのインター・コーディング一方向予測(P)又は双方向予測(B)スライスにおけるビデオ・ブロックは、同一ピクチャ内の隣接ブロックにおける参照サンプルに対して空間的予測を用いることによって、又は他の参照ピクチャ内の参照サンプルに対して時間的予測を用いることによってコーディングされ得る。ピクチャは、フレーム及び/又は画像と呼ばれることがあり、参照ピクチャは、参照フレーム及び/又は参照画像と呼ばれることがある。空間的又は時間的予測は、画像ブロックを表す予測ブロックをもたらす。残差データは、元の画像ブロックと予測ブロックとの間の画素差を表す。したがって、インター・コーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックと、コーディング・ブロックと予測ブロックとの間の差を示す残差データを指すモーション・ベクトルにしたがって、符号化される。イントラ・コーディングされたブロックは、イントラ・コーディング・モードと残差データにしたがって符号化される。さらなる圧縮のために、残差データは、画素ドメインから変換ドメインに変換されてもよい。これらは、残差変換係数をもたらし、これは、量子化され得る。量子化された変換係数は、最初に2次元アレイに配置され得る。量子化された変換係数は、変換係数の1次元ベクトルを生成するために走査され得る。エントロピー・コーディングは、さらにいっそう多くの圧縮を達成するために適用され得る。このようなビデオ圧縮技術が、以下により詳細に論じられる。
符号化されたビデオが正確に復号されることを確実にするために、ビデオは、対応するビデオ・コーディング規格にしたがって符号化され、復号される。ビデオ・コーディング規格は、国際電気通信連合(ITU)標準化部門(ITU-T)H.261、国際標準化機構/国際電気標準委員会(ISO/IEC)モーション・ピクチャ・エキスパーツ・グループ(MPEG)-1 Part 2、ITU-T H.262又はISO/IEC MPEG-2 Part 2、ITU-T H.263、ISO/IEC MPEG-4 Part 2、ITU-T H.264又はISO/IEC MPEG-4 Part 10 としても知られる高度ビデオ・コーディング(AVC)、及びITU-T H.265 又はMPEG-H Part 2 としても知られる高効率ビデオ・コーディング(HEVC)を含む。AVCは、スケーラブル・ビデオ・コーディング(SVC)、マルチビュー・ビデオ・コーディング(MVC)及びマルチビュー・ビデオ・コーディング・プラス・デプス(MVC+D)、及び3次元(3D)AVC (3D‐AVC)などの拡張を含む。HEVCは、スケーラブルHEVC (SHVC)、マルチビューHEVC (MV-HEVC)、3D HEVC (3D-HEVC)などの拡張を含む。ITU‐TとISO/IECのジョイント・ビデオ・エキスパーツ・チーム(JVET)は、バーサタイル・ビデオ・コーディング(VVC)と呼ばれるビデオ・コーディング規格の開発を始めている。VVCは、JVET‐M1001‐v5及びJVET‐M1002‐v1を含むワーキング・ドラフト(WD)に含まれ、これは、アルゴリズムの説明、VVC WDの符号化器側の説明、及び参照ソフトウェアを提供する。
ビデオ・シーケンスは、種々のコーディング・ツールを用いることによってコーディングされる。符号化器は、ビデオ・シーケンスが復号される場合に、最小限の品質損失で圧縮を向上させることを目的として、コーディング・ツールのためのパラメータを選択する。コーディング・ツールは、異なるスコープでビデオの異なる部分に関連し得る。例えば、いくつかのコーディング・ツールはビデオ・シーケンス・レベルで関連し、いくつかのコーディング・ツールはピクチャ・レベルで関連し、いくつかのコーディング・ツールはスライス・レベルで関連する。APSは、異なるピクチャに渡って複数のピクチャ及び/又は複数のスライスによって共有され得る情報をシグナリングするために用いられ得る。具体的には、APSは適応ループ・フィルタ(ALF)パラメータを搬送し得る。ALF情報は、種々の理由により、シーケンス・パラメータ・セット(SPS)におけるシーケンス・レベル、ピクチャ・パラメータ・セット(PPS)又はピクチャ・ヘッダにおけるピクチャ・レベル、又はタイル・グループ/スライス・ヘッダにおけるスライス・レベルでのシグナリングに適していないことがある。
ALF情報がSPSにおいてシグナリングされる場合、符号化器は、ALF情報が変化するたびに、新しいSPSと新しいIRAPピクチャを生成しなければならない。IRAPピクチャはコーディング効率を著しく低下させる。したがって、ALF情報をSPSに配置することは、頻繁なIRAPピクチャを用いない遅延の少ないアプリケーション環境では特に問題となる。また、ALF情報をSPSに含めると、SPSの帯域外伝送を無効にすることがある。帯域外伝送とは、ビデオ・ビットストリームとは異なるトランスポート・データ・フローにおける(例えば、メディア・ファイルのサンプル記述又はサンプル・エントリにおける、セッション記述プロトコル(SDP)ファイルにおける、など)対応するデータの伝送を指す。PPSにおいてALF情報をシグナリングすることもまた同様の理由から問題となることがある。具体的には、PPSにALF情報を含めると、PPSの帯域外伝送を無効にすることがある。ピクチャ・ヘッダ内のALF情報のシグナリングも問題があることがある。ピクチャ・ヘッダは、場合によっては用いないことがある。さらに、ALF情報が複数のピクチャに適用されることがある。このようにして、ピクチャ・ヘッダ内のALF情報のシグナリングは、冗長な情報伝送を引き起こし、したがって、帯域幅を浪費する。タイル・グループ/スライス・ヘッダ内のALF情報のシグナリングも、ALF情報が複数のピクチャ、したがって複数のスライス/タイル・グループに適用されることあるため、問題がある。したがって、スライス/タイル・グループ・ヘッダ内のALF情報をシグナリングすることは、冗長な情報伝送を引き起こし、したがって、帯域幅を浪費する。
上記に基づいて、APSが、ALFパラメータにシグナリングするために使用され得る。しかしながら、ビデオ・コーディング・システムは、ALFパラメータをシグナリングするためにのみAPSを用いてもよい。例示的なAPS構文とセマンティクスは、以下のとおりである:
adaption_parameter_set_idは、他の構文要素によって参照するためのAPSの識別子を提供する。APSは、ピクチャ間で共有することができ、ピクチャ内の異なるタイル・グループにおいて異なることができる。aps_extension_flagは、aps_extension_data_flag構文要素がAPS RBSP構文構造体に存在しないことを指定するために0に等しく設定される。aps_extension_flagは、aps_extension_data_flag構文要素がAPS RBSP構文構造体に存在することを指定するために1に等しく設定される。aps_extension_data_flagは、任意の値を有してもよい。aps_extension_data_flagの存在と値は、VVCで指定されたプロファイルへ復号器の準拠に影響を与えなくてもよい。VVCに準拠する復号器は、すべてのaps_extension_data_flag構文要素を無視してもよい。
ALFパラメータに関係する例示的なタイル・グループ・ヘッダ構文は、以下のとおりである。
tile_group_alf_enabled_flagは、適応ループ・フィルタが有効であることを指定するために1に等しく設定され、タイル・グループ内のルマ(Y)、青クロマ(Cb)、又は赤クロマ(Cr)色コンポーネントに適用されてもよい。tile_group_alf_enabled_flagは、タイル・グループ内のすべての色コンポーネントに対して適応ループ・フィルタが無効であることを指定するために0に等しく設定される。tile_group_aps_idは、タイル・グループによって参照されるAPSのadaptation_parameter_set_idを指定する。tile_group_aps_idと等しいadapdation_parameter_set_idを有するAPS NALユニットのTemporalIdは、コーディングされたタイル・グループNALユニットのTemporalId以下であるものとする。adaption_parameter_set_idの値が同じ複数のAPSが、同じピクチャの複数のタイル・グループによって参照される場合に、adapation_parameter_set_idの値が同じ複数のAPSは、同じ内容を含んでもよい。
リシェイパー・パラメータは、クロマ・スケーリングによるルマ・マッピング(LMCS)としても知られる、適応ループ内リシェイパービデオ・コーディング・ツールに用いられるパラメータである。例示的なSPSリシェイパー構文とセマンティクスは、以下のとおりである:
sps_reshaper_enabled_flagは、コーデット・ビデオ・シーケンス(CVS)においてリシェイパーが用いられることを指定するために1に等しく設定される。sps_reshaper_enabled_flagは、リシェイパーがCVSにおいて使用されないことを指定するために0に設定される。
例示的なタイル・グループ・ヘッダ/スライス・ヘッダ・リシェイパー構文及びセマンティクスは、以下のとおりである:
tile_group_reshaper_model_present_flagは、tile_group_reshaper_model()がタイル・グループ・ヘッダに存在することを指定するために1に等しく設定される。tile_group_reshaper_model_present_flagは、tile_group_reshaper_model()がタイル・グループ・ヘッダに存在しないことを指定するために0に等しく設定される。tile_group_reshaper_model_present_flagが存在しない場合、フラグは0に等しいと推定される。tile_group_reshaper_enabled_flagは、現在のタイル・グループに対してリシェイパーが有効であることを指定するために1に等しく設定される。tile_group_reshaper_enabled_flagは、現在のタイル・グループに対してreshaperが有効でないことを指定するために、0に設定される。tile_group_resharper_enable_flagが存在しない場合、フラグは0に等しいと推定される。tile_group_reshamer_chroma_residual_scale_flagは、現在のタイル・グループに対してクロマ残差スケーリングが有効であることを指定するために1に等しく設定される。tile_group_reshaper_chroma_residual_scale_flagは、現在のタイル・グループに対してクロマ残差スケーリングが有効でないことを指定するために0に設定される。tile_group_reshaper_chroma_residual_scale_flagが存在しない場合、フラグは0に等しいと推定される。
例示的なタイル・グループ・ヘッダ/スライス・ヘッダ・リシェイパー・モデル構文及びセマンティクスは、以下のとおりである:
reshape_model_min_bin_idxは、リシェイパー構成プロセスにおいて使用される最小ビン(又はピース)インデックスを指定する。reshape_model_min_bin_idxの値は、0からMaxBinIdxまで(両端を含む)の範囲でよい。MaxBinIdxの値は15に等しくてもよい。reshape_model_delta_max_bin_idxは、最大許容ビン(又はピース)インデックスMaxBinIdxから、リシェイパー構成プロセスにおいて使用される最大ビン・インデックスを引いたものを指定する。reshape_model_max_bin_idxの値は、MaxBinIdxからreshape_model_delta_max_bin_idxを引いたものに等しく設定される。reshaper_model_bin_delta_abs_cw_prec_minus1に1加えたものは、構文reshape_model_bin_delta_abs_CW[i]の表現に使用されるビット数を指定する。reshape_model_bin_delta_abs_CW[i] は、i番目のビンの絶対デルタ・コードワード値を指定する。
reshaper_model_bin_delta_sign_CW_flag[i]は、以下のとおりにreshape_model_bin_delta_abs_CW[i]の符号を指定する。reshape_model_bin_delta_sign_CW_flag[i]が0に等しい場合、対応する変数RspDeltaCW[i]は正の値である。そうでなければ(例えば、reshape_model_bin_delta_sign_CW_flag[i]が0に等しくない)、対応する変数RspDeltaCW[i]は負の値である。reshape_model_bin_delta_sign_CW_flag[i]が存在しない場合に、フラグは0に等しいと推定される。変数RspDeltaCW[i]は、(1 - 2 * reshape_model_bin_delta_sign_CW[i]) * reshape_model_bin_delta_abs_CW[i]に等しく設定される。
変数RspCW[i]は以下のとおりに導出される。変数OrgCWは、(1 << BitDepthY) / (MaxBinIdx + 1)に等しく設定される。reshaper_model_min_bin_idx < = i <= reshaper _model_max_bin_idxである場合、RspCW[i] = OrgCW + RspDeltaCW[i]である。さもなければ、RspCW[i] = 0である。RspCW [i]の値は、BitDepthYの値が10に等しい場合、32~2 * OrgCW-1の範囲であるものとする。0~MaxBinIdx + 1の範囲(両端を含む)のiを有する変数InputPivot[i]は、以下のとおりに導出される。InputPivot[i] = i * OrgCWである。0~MaxBinIdx +1の範囲(両端を含む)のiを有する変数ReshapePivot[i]、並びに0~MaxBinIdxの範囲(両端を含む)のiを有する変数ScaleCoef[i]及びInvScaleCoeff[i]は、以下のとおりに導出される:
0~MaxBinIdxの範囲(両端を含む)のiを有する変数ChromaScaleCoef[i]は、以下のとおりに導出される:
リシェイパー・パラメータの特性は、以下のとおりに特徴付けられ得る。tile_group_reshamer_model()構文構造体に含まれるリシェイパー・パラメータのセットのサイズは、通常、およそ60~100ビットである。リシェイパー・モデルは、通常、符号化器によって約1秒に1回更新され、多くのフレームを含む。さらに、更新されたリシェイパー・モデルのパラメータは、リシェイパー・モデルの以前のインスタンスのパラメータと全く同じである可能性は低い。
前述のビデオ・コーディング・システムは、特定の問題を含む。第一に、このようなシステムは、APSにおいてALFパラメータを搬送するためだけに構成されている。さらに、リシェイパー/LMCSパラメータは、複数のピクチャによって共有される可能性があり、多くのバリエーションを含む可能性がある。
本明細書に開示されているのは、向上したコーディング効率をサポートするためにAPSを修正するための種々のメカニズムである。第1の例では、複数のタイプのAPSが開示される。具体的には、タイプALFのAPSは、ALF APSと呼ばれ、ALFパラメータを含むことができる。さらに、タイプ・スケーリング・リストのAPSは、スケーリング・リストAPSと呼ばれ、スケーリング・リスト・パラメータを含むことができる。追加的に、タイプLMCSのAPSは、LMCS APSと呼ばれ、LMCS/リシェイパー・パラメータを含むことができる。ALF APS、スケーリング・リストAPS、及びLMCS APSは、各々別のNALタイプとしてコーディングされてもよく、したがって、異なるNALユニットに含まれる。このように、あるタイプのAPSにおけるデータ(例えば、ALFパラメータ)への変更は、変更しない他のタイプのデータ(例えば、LMCSパラメータ)の冗長なコーディングをもたらさない。したがって、複数のタイプのAPSを提供することは、コーディング効率を向上させ、したがって、符号化器及び復号器におけるネットワーク・リソース、メモリ・リソース、及び/又は処理リソースの使用を減少させる。
第2の例では、各APSは、APS識別子(ID)を含む。さらに、各APSタイプは、対応するAPS IDのための別個の値空間を含む。このような値空間は重複することができる。したがって、第1のタイプのAPS(例えば、ALF APS)は、第2のタイプのAPS(例えば、LMCS APS)と同じAPS IDを含むことができる。これは、APSパラメータ・タイプとAPS IDの組み合わせによって各APSを識別することによって達成される。各APSタイプが異なる値空間を含むことを可能にすることによって、コーデックはIDの競合をAPSタイプにわたってチェックする必要がない。さらに、値空間が重複することを可能にすることによって、コーデックは、より大きなID値を用いることを回避することができ、ビット節約をもたらす。したがって、異なるタイプのAPSに対して別個の重複値空間を用いることは、コーディング効率を向上させ、したがって、符号化器及び復号器でのネットワーク・リソース、メモリ・リソース、及び/又は処理リソースの使用を減少させる。
第3の例では、LMCSパラメータがLMCS APSに含まれる。上記のように、LMCS/リシェイパー・パラメータは約1秒に1回変化し得る。ビデオ・シーケンスは、1秒間に30~60枚のピクチャを表示し得る。したがって、LMCSパラメータは、30~60フレームに対して変化しなくてもよい。LMCSパラメータをLMCS APSに含めることは、LMCSパラメータの冗長コーディングを著しく低減する。スライス・ヘッダ及び/又はスライスに関連付けられたピクチャ・ヘッダは、関連するLMCS APSを参照することができる。このようにして、LMCSパラメータは、スライスに対するLMCSパラメータが変化するときにのみ符号化される。したがって、LMCSパラメータを符号化するためにLMCS APSを使用することは、コーディング効率を向上させ、したがって、符号化器及び復号器におけるネットワーク・リソース、メモリ・リソース、及び/又は処理リソースの使用を低減する。
図1は、ビデオ信号をコーディングする例示的な動作方法100のフローチャートである。具体的には、ビデオ信号は符号化器で符号化される。符号化プロセスは、ビデオ・ファイル・サイズを縮小させるために種々のメカニズムを用いることによってビデオ信号を圧縮する。より小さいファイル・サイズは、圧縮されたビデオ・ファイルをユーザに送信することを可能にする、一方、関連する帯域幅オーバーヘッドを減少させる。復号器は、次に、圧縮されたビデオ・ファイルを復号して、エンド・ユーザに表示するために元のビデオ信号を再構成する。復号プロセスは、一般に、符号化プロセスによく似ており、復号器がビデオ信号を一貫して再構成することを可能にする。
ステップ101で、ビデオ信号が符号化器に入力される。例えば、ビデオ信号はメモリに記憶された非圧縮ビデオ・ファイルであってもよい。別の例として、ビデオ・ファイルは、ビデオ・カメラなどのビデオ・キャプチャ・デバイスによってキャプチャされ、ビデオのライブ・ストリーミングをサポートするように符号化されてもよい。ビデオ・ファイルは、オーディオ・コンポーネント及びビデオ・コンポーネントの両方を含むことができる。ビデオ・コンポーネントは、シーケンスで視聴されるときにモーションの視覚的な印象を与える一連の画像フレームを含む。フレームは、光の観点から表現されて本明細書ではルマ・コンポーネント(又はルマ・サンプル)と呼ばれ、また、色の観点から表現されてクロマ・コンポーネント(又はカラーサンプル)と呼ばれる画素を含む。例によっては、フレームはまた、3次元視聴をサポートするための深度値を含んでもよい。
ステップ103で、ビデオはブロックにパーティション化される。パーティション化は、圧縮のために、各フレーム内のピクセルを正方形及び/又は長方形のブロックにサブ分割することを含む。例えば、高効率ビデオ・コーディング(HEVC)(H.265及びMPEG-H Part 2としても知られる)において、フレームは、最初に、事前定義されたサイズ(例えば、64画素×64画素)のブロックである、コーディング・ツリー・ユニット(CTU)に分割され得る。CTUは、ルマ及びクロマ・サンプルの両方を含む。コーディング・ツリーが用いられて、CTUをブロックに分割し、次に、さらなる符号化をサポートする設定が達成されるまで、ブロックを再帰的にサブ分割してもよい。例えば、フレームのルマ・コンポーネントは、個々のブロックが比較的均一な照明値を含むまで、サブ分割され得る。さらに、フレームのクロマ・コンポーネントは、個々のブロックが比較的均一な色値を含むまで、サブ分割され得る。したがって、パーティション化メカニズムはビデオフレームの内容に依存して変動する。
ステップ105で、ステップ103でパーティション化された画像ブロックを圧縮するために、様々な圧縮メカニズムが用いられる。例えば、インター予測及び/又はイントラ予測が用いられてもよい。インター予測は、共通のシーンにおいて物体が連続したフレームに現れる傾向があるという事実を利用するように設計されている。したがって、参照フレーム内の物体を描写するブロックは、隣接するフレーム内に繰り返し記述される必要はない。具体的には、テーブルのような物体は、複数のフレームにわたって一定の位置に留まることがある。したがって、テーブルは一度記述され、隣接するフレームは参照フレームに戻って参照することができる。パターン・マッチング・メカニズムが用いられて、複数フレームにわたって物体をマッチングすることができる。さらに、移動する物体は、例えば、物体の動き又はカメラの動きのために、複数のフレームにわたって表されることがある。特定の例として、ビデオは、複数のフレームにわたって画面を横切って移動する自動車を示すことができる。このような動きを記述するために、モーション・ベクトルが用いられ得る。モーション・ベクトルは、フレーム内の物体の座標から参照フレーム内の物体の座標へのオフセットを提供する2次元ベクトルである。したがって、インター予測は、参照フレーム内の対応するブロックからのオフセットを示すモーション・ベクトルのセットとして、現在のフレーム内の画像ブロックを符号化することができる。
イントラ予測は、共通フレーム内のブロックを符号化する。イントラ予測は、ルマ・コンポーネントおよびクロマ・コンポーネントがフレームに集中する傾向があるという事実を利用する。たとえば、ツリーの一部における緑色のパッチは、同様の緑色のパッチに隣接して位置する傾向がある。イントラ予測は、多方向予測モード(例えば、HEVCにおける33)、プラナー・モード、及びダイレクト・カレント(DC)モードを用いる。方向モードは、現在のブロックが、対応する方向の隣接ブロックのサンプルと類似/同じであることを示す。プラナー・モードは、行/列に沿った(例えば、平面)一連のブロックが、行の端における隣接ブロックに基づいて補間され得ることを示す。プラナー・モードは、事実上、値を変化させる際に比較的一定の傾きを用いることによって、行/列を横切る光/色の滑らかな遷移を示す。DCモードは境界平滑化のために使用され、ブロックが方向予測モードの角度方向に関連する全ての隣接ブロックのサンプルに関連する平均値と類似/同じであることを示す。したがって、イントラ予測ブロックは、実際の値の代わりに、様々な関係予測モード値として画像ブロックを表わすことができる。さらに、インター予測ブロックは、実際の値の代わりに、モーション・ベクトル値として画像ブロックを表すことができる。いずれの場合も、予測ブロックは、場合によっては、画像ブロックを正確に表わさないことがある。差異はすべて残差ブロックに記憶される。変換は、ファイルをさらに圧縮するために、残差ブロックに適用され得る。
ステップ107において、種々のフィルタリング技術が適用され得る。HEVCでは、フィルタは、ループ内フィルタリング・スキームにしたがって適用される。上述のブロック・ベース予測は、復号器においてブロック状画像の生成をもたらし得る。さらに、ブロック・ベース予測スキームは、ブロックを符号化し、次に、後で参照ブロックとして使用するために、符号化されたブロックを再構成し得る。ループ内フィルタリング・スキームは、ノイズ抑制フィルタ、ブロック解除フィルタ、適応ループ・フィルタ、及びサンプル適応オフセット(SAO)フィルタをブロック/フレームに反復的に適用する。これらのフィルタは、符号化されたファイルが正確に再構成され得るように、そのようなブロッキング・アーチファクトを軽減する。さらに、これらのフィルタは、再構成された参照ブロック内のアーチファクトを軽減し、アーチファクトが、再構成された参照ブロックに基づいて符号化される後続ブロックにおいて追加のアーチファクトを生成する可能性が低くなるようにする。
ビデオ信号が分割され、圧縮され、フィルタリングされると、得られたデータはステップ109でビットストリームに符号化される。ビットストリームは、復号器での適切なビデオ信号再構成をサポートするのに望ましい任意のシグナリング・データと同様に、上述のデータを含む。例えば、このようなデータは、パーティション・データ、予測データ、残差ブロック、及び復号器にコーディング命令を提供する種々のフラグを含んでもよい。ビットストリームは、要求があると、復号器に向かって伝送するためにメモリに記憶され得る。ビットストリームはまた、複数の復号器に向かってブロードキャスト及び/又はマルチキャストされてもよい。ビットストリームの生成は反復プロセスである。したがって、ステップ101、103、105、107、及び109は、多くのフレーム及びブロックにわたって連続的に及び/又は同時に発生し得る。図1に示された順序は、明確さと議論の容易さのために提示されており、ビデオ・コーディング・プロセスを特定の順序に限定することを意図していない。
復号器は、ビットストリームを受信し、ステップ111において、復号処理を開始する。具体的には、復号器は、ビットストリームを対応する構文及びビデオ・データに変換するエントロピー復号方式を用いる。復号器は、ステップ111において、ビットストリームからの構文データを用いて、フレームに対するパーティションを判定する。パーティション化は、ステップ103におけるブロック・パーティション化の結果と一致すべきである。ステップ111において用いられるようなエントロピー符号化/復号が、これから説明される。符号化器は、入力画像内の値の空間的位置付けに基づいていくつかの可能な選択肢からブロック・パーティション化スキームを選択するなど、圧縮プロセスの間に多くの選択を行う。厳密な選択肢をシグナリングすることは、多数のビンを用いることがある。本明細書で使用される場合、ビンは、変数として扱われるバイナリ値(例えば、コンテキストに応じて変動し得るビット値)である。エントロピー・コーディングは、符号化器が、許容可能なオプションのセットを残して、特定の場合に明らかに実行不可能な任意のオプションを捨てることを可能にする。各許容可能なオプションには、次に、コード・ワードが割り当てられる。コード・ワードの長さは、許容可能なオプションの数(例えば、2つのオプションに対して1つのビン、3つ~4つのオプションに対して2つのビンなど)に基づく。次に、符号化器は、選択されたオプションに対してコード・ワードを符号化する。このスキームは、コード・ワードが、可能なすべてのオプションの潜在的に大きなセットからの選択を一意に示すのとは対照的に、許容可能なオプションの小さなサブセットからの選択を一意に示すために望まれるだけ大きいので、コード・ワードのサイズを縮小させる。復号器は、次に、符号化器と同様の方法で許容可能なオプションのセットを判定することによって、選択を復号する。許容可能なオプションのセットを判定することによって、復号器は、コード・ワードを読み取り、符号化器によってなされた選択を判定することができる。
ステップ113で、復号器はブロック復号を実行する。具体的には、復号器は、残差ブロックを生成するために逆変換を用いる。そして、復号器は、パーティション化にしたがって画像ブロックを再構成するために、残差ブロック及び対応する予測ブロックを用いる。予測ブロックは、ステップ105において符号化器で生成された、イントラ予測ブロックとインター予測ブロックの両方を含み得る。再構成された画像ブロックは、次に、ステップ111で判定されたパーティション化・データにしたがって、再構成されたビデオ信号のフレーム内に位置付けられる。ステップ113のための構文はまた、上述のようにエントロピー・コーディングを介してビットストリームにおいてシグナリングされてもよい。
ステップ115において、符号化器におけるステップ107と同様の方法で、再構成されたビデオ信号のフレームに対してフィルタリングが実行される。例えば、ノイズ抑制フィルタ、ブロック解除フィルタ、適応ループ・フィルタ、及びSAOフィルタがフレームに適用されて、ブロッキング・アーチファクトを除去してもよい。フレームがフィルタリングされると、ビデオ信号は、ステップ117において、ユーザによる視聴のためにディスプレイに出力され得る。
図2は、ビデオ・コーディングのための例示的なコーディング及び復号(コーデック)システム200の概略図である。具体的には、コーデック・システム200は、動作方法100の実装態様をサポートするための機能性を提供する。コーデック・システム200は、符号化器と復号器の両方で用いられるコンポーネントを描画するために一般化されている。コーデック・システム200は、動作方法100のステップ101及び103に関して論じられたように、ビデオ信号を受信及びパーティション化し、パーティション化ビデオ信号201を得る。コーデック・システム200は、次に、方法100のステップ105、107、及び109に関して論じられたように、符号化器として作用するときに、パーティション化ビデオ信号201をコーディングされたビットストリームに圧縮する。復号器として作用する場合、コーデック・システム200は、動作方法100におけるステップ111、113、115、及び117に関して説明したように、ビットストリームからの出力ビデオ信号を生成する。コーデック・システム200は、一般コーダ制御コンポーネント211と、変換スケーリング及び量子化コンポーネント213と、イントラ・ピクチャ推定コンポーネント215と、イントラ・ピクチャ予測コンポーネント217と、モーション補償コンポーネント219と、モーション推定コンポーネント221と、スケーリング及び逆変換コンポーネント229と、フィルタ制御分析コンポーネント227と、ループ内フィルタ・コンポーネント225と、復号ピクチャ・バッファ・コンポーネント223と、ヘッダ・フォーマッティング及びコンテキスト適応二進算術コーディング(CABAC)コンポーネント231と、を含む。そのようなコンポーネントは、示されるように結合される。図2において、黒線は符号化/復号されるデータの動きを示し、破線は他のコンポーネントの動作を制御する制御データの動きを示す。コーデック・システム200のコンポーネントはすべて、符号化器内に存在し得る。復号器は、コーデック・システム200のコンポーネントのサブセットを含み得る。例えば、復号器は、イントラ・ピクチャ予測コンポーネント217、モーション補償コンポーネント219、スケーリング及び逆変換コンポーネント229、ループ内フィルタ・コンポーネント225、及び復号ピクチャ・バッファ・コンポーネント223を含んでもよい。これらのコンポーネントが、これから説明される。
パーティション化ビデオ信号201は、キャプチャされたビデオ・シーケンスであり、これは、コーディング・ツリーによって画素のブロックにパーティション化されている。コーディング・ツリーは、画素のブロックを画素のより小さなブロックにサブ分割するために、種々の分割モードを用いる。これらのブロックは、次に、さらに、より小さなブロックにサブ分割され得る。ブロックは、コーディング・ツリー上のノードと呼ばれることがある。より大きな親ノードは、より小さな子ノードに分割される。ノードがサブ分割される回数は、ノード/コーディング・ツリーの深度と呼ばれる。場合によっては、分割されたブロックがコーディング・ユニット(CU)に含められ得る。例えば、CUは、対応するCUの構文命令と共に、ルマ・ブロック、赤色差クロマ(Cr)ブロック、及び青色差クロマ(Cr)ブロックを含むCTUのサブ部分とすることができる。分割モードは、ノードを、用いられる分割モードに依存して、異なる形状のそれぞれ2つ、3つ、又は4つの子ノードにパーティション化するために用いられるバイナリ・ツリー(BT)、トリプル・ツリー(TT)、及びクワッド・ツリー(QT)を含み得る。パーティション化ビデオ信号201は、圧縮のために、一般コーダ制御コンポーネント211、変換スケーリング及び量子化コンポーネント213、イントラ・ピクチャ推定コンポーネント215、フィルタ制御分析コンポーネント227、及びモーション推定コンポーネント221に転送される。
一般コーダ制御コンポーネント211は、アプリケーションの制約にしたがって、ビデオ・シーケンスの画像をビットストリームにコーディングすることに関係する決定を行うように構成されている。例えば、一般コーダ制御コンポーネント211は、ビット・レート/ビットストリーム・サイズ対再構成品質の最適化を管理する。そのような決定は、記憶領域/帯域幅の可用性及び画像解像度要求に基づいて行われ得る。一般コーダ制御コンポーネント211はまた、バッファのアンダーラン及びオーバーランの問題を緩和するために、伝送速度に照らしてバッファの利用を管理する。これらの問題を管理するために、一般コーダ制御コンポーネント211は、他のコンポーネントによるパーティション化、予測、及びフィルタリングを管理する。例えば、一般コーダ制御コンポーネント211は、解像度を向上させ、帯域幅の使用を向上させるために圧縮の複雑さを動的に向上させることができ、又は、解像度及び帯域幅の使用を減少させるために圧縮の複雑さを減少させてもよい。したがって、一般コーダ制御コンポーネント211は、ビット・レートの懸念とビデオ信号再構成品質とのバランスを取るために、コーデック・システム200の他のコンポーネントを制御する。一般コーダ制御コンポーネント211は、他のコンポーネントの動作を制御する制御データを生成する。制御データはまた、復号器で復号するためのパラメータをシグナリングするために、ビットストリームで符号化されるヘッダ・フォーマッティング及びCABACコンポーネント231に転送される。
パーティション化ビデオ信号201はまた、インター予測のために、モーション推定コンポーネント221及びモーション補償コンポーネント219にも送信される。パーティション化ビデオ信号201のフレーム又はスライスは、複数のビデオ・ブロックに分割され得る。モーション推定コンポーネント221及びモーション補償コンポーネント219は、時間的予測を提供するために、1つ以上の参照フレーム内の1つ以上のブロックに対して受信されたビデオ・ブロックのインター予測コーディングを実行する。コーデック・システム200は、例えばビデオ・データの各ブロックに対して適切なコーディング・モードを選択するために、複数のコーディング・パスを実行し得る。
モーション推定コンポーネント221及びモーション補償コンポーネント219は、高度に統合されてもよいが、概念的な目的のために別個に図示されている。モーション推定コンポーネント221によって実行されるモーション推定は、モーション・ベクトルを生成するプロセスであり、これは、ビデオ・ブロックのモーションを推定する。モーション・ベクトルは、例えば、予測ブロックに対するコーディングされた物体の変位を示してもよい。予測ブロックは、画素差に関して、コーディングされるブロックに厳密に一致することが見出されるブロックである。予測ブロックは、参照ブロックとも呼ばれることがある。このような画素差は、絶対差(SAD)、二乗差(SSD)、又は他の差分メトリックの和によって判定され得る。HEVCは、CTU、コーディング・ツリー・ブロック(CTB)、及びCUを含むいくつかのコーディングされた物体を使用する。例えば、CTUはCTBに分割され、CTBは、次に、CUに含めるためにCBに分割され得る。CUは、予測データを含む予測ユニット(PU)及び/又はCUの変換残差データを含む変換ユニット(TU)として符号化され得る。モーション推定コンポーネント221は、レート歪み最適化プロセスの一部としてレート歪み分析を用いて、モーション・ベクトル、PU、及びTUを生成する。例えば、モーション推定コンポーネント221は、現在のブロック/フレームに対する複数の参照ブロック、複数のモーション・ベクトルなどを判定し、最良のレート歪み特徴を有する参照ブロック、モーション・ベクトルなどを選択してもよい。最良のレート歪み特徴は、ビデオ再構成の品質(例えば、圧縮によるデータ損失量)とコーディング効率(例えば、最終符号化のサイズ)の両方のバランスをとる。
いくつかの例において、コーデック・システム200は、復号ピクチャ・バッファ・コンポーネント223に記憶された参照ピクチャのサブ整数画素位置の値を計算してもよい。例えば、ビデオ・コーデック・システム200は、参照ピクチャの1/4画素位置、1/8画素位置、又は他の分数の画素位置の値を補間してもよい。したがって、モーション推定コンポーネント221は、全画素位置及び分数の画素位置に対するモーション・サーチを実行し、分数の画素精度を有するモーション・ベクトルを出力することができる。モーション推定コンポーネント221は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インター・コーディングされたスライス内のビデオ・ブロックのPUのモーション・ベクトルを計算する。モーション推定コンポーネント221は、符号化のために計算されたモーション・ベクトルを、ヘッダ・フォーマッティング及びCABACコンポーネント231にモーション・データとして出力し、モーションをモーション補償コンポーネント219に出力する。
モーション補償コンポーネント219によって実行されるモーション補償は、モーション推定コンポーネント221によって判定されたモーション・ベクトルに基づいて予測ブロックをフェッチ又は生成することを伴ってもよい。また、いくつかの例において、動作推定コンポーネント221及び動作補償コンポーネント219が機能的に統合されてもよい。現在のビデオ・ブロックのPUに対するモーション・ベクトルを受信すると、モーション補償コンポーネント219は、モーション・ベクトルが指す予測ブロックの位置特定をし得る。現在コーディングされているビデオ・ブロックの画素値から予測ブロックの画素値を減算することによって、残差ビデオ・ブロックが、次に形成され、画素差値を形成する。一般に、モーション推定コンポーネント221はルマ・コンポーネントに対するモーション推定を実行し、モーション補償コンポーネント219はクロマ・コンポーネントとルマ・コンポーネントの両方に対するルマ・コンポーネントに基づいて計算されたモーション・ベクトルを使用する。予測ブロック及び残差ブロックは、変換スケーリング及び量子化コンポーネント213へ転送される。
パーティション化ビデオ信号201もまた、イントラ・ピクチャ推定コンポーネント215及びイントラ・ピクチャ予測コンポーネント217に送信される。モーション推定コンポーネント221及び動き補償コンポーネント219と同様に、イントラ・ピクチャ推定コンポーネント215及びイントラ・ピクチャ予測コンポーネント217は、高度に統合されてもよいが、概念的な目的のために別個に図示される。イントラ・ピクチャ推定コンポーネント215及びイントラ・ピクチャ予測コンポーネント217は、上述のしたフレーム間のモーション推定コンポーネント221及びモーション補償コンポーネント219によって実行されるインター予測の代わりに、現在のフレーム内のブロックに対する現在のブロックをイントラ予測する。特に、イントラ・ピクチャ推定コンポーネント215は、現在のブロックを符号化するために使用するイントラ予測モードを判定する。いくつかの例において、イントラ・ピクチャ推定コンポーネント215は、複数のテストされたイントラ予測モードから現在のブロックを符号化するために、適切なイントラ予測モードを選択する。選択されたイントラ予測モードが、次に、符号化のためにヘッダ・フォーマッティング及びCABACコンポーネント231に転送される。
例えば、イントラ・ピクチャ推定コンポーネント215は、種々のテストされたイントラ予測モードについてレート歪み分析を用いてレート歪み値を計算し、テストされたモードの中で最良のレート歪み特徴を有するイントラ予測モードを選択する。レート歪み分析は、一般に、符号化ブロックを生成するために使用されるビット・レート(例えば、ビット数)、及び符号化ブロックを生成するために符号化された元の非符号化ブロックと符号化ブロックとの間の歪み(又はエラー)の量を判定する。イントラ・ピクチャ推定コンポーネント215は、種々の符号化ブロックに対する歪み及びレートから比を計算し、どのイントラ予測モードがブロックに対する最良のレート歪み値を呈するかを判定する。追加的に、イントラ・ピクチャ推定コンポーネント215は、レート歪み最適化(RDO)に基づく深度モデリング・モード(DMM)を用いて深度マップの深度ブロックをコーディングするように構成され得る。
イントラ・ピクチャ予測コンポーネント217は、符号化器に実装された場合に、イントラ・ピクチャ予測コンポーネント215によって判定された選択されたイントラ予測モードに基づいて予測ブロックから残差ブロックを生成するか、又は復号器に実装された場合に、ビットストリームから残差ブロックを読み取ることができる。残差ブロックは、行列として表される予測ブロックと元のブロックとの間の値の差を含む。残差ブロックは、次に、変換スケーリング及び量子化コンポーネント213に転送される。イントラ・ピクチャ推定コンポーネント215及びイントラ・ピクチャ予測コンポーネント217は、ルマ・コンポーネント及びクロマ・コンポーネントの両方に対して動作し得る。
変換スケーリング及び量子化コンポーネント213は、残差ブロックをさらに圧縮するように構成されている。変換スケーリング及び量子化コンポーネント213は、離散コサイン変換(DCT)、離散サイン変換(DST)、又は概念的に類似した変換などの変換を残差ブロックに適用し、残差変換係数値を含むビデオ・ブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換、又は他のタイプの変換もまた、使用され得る。変換は、残差情報を画素値ドメインから変換ドメイン、例えば周波数ドメインに変換し得る。変換スケーリング及び量子化コンポーネント213はまた、変換された残差情報を、例えば周波数に基づいてスケーリングするように構成されている。そのようなスケーリングは、異なる周波数情報が異なる粒度で量子化されるように、残差情報にスケールファクタを適用することを含み、これは、再構成されたビデオの最終的な視覚的品質に影響を及ぼし得る。変換スケーリング及び量子化コンポーネント213はまた、ビット・レートをさらに低下させるために変換係数を量子化するように構成されている。量子化プロセスは、係数のいくつか又は全てに関連するビット深度を減少させ得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例において、変換スケーリング及び量子化コンポーネント213は、次に、量子化された変換係数を含む行列の走査を実行してもよい。量子化された変換係数は、ヘッダ・フォーマッティング及びCABACコンポーネント231に転送され、ビットストリームに符号化される。
スケーリング及び逆変換コンポーネント229は、モーション推定をサポートするために変換スケーリング及び量子化コンポーネント213の逆演算を適用する。スケーリング及び逆変換コンポーネント229は、逆スケーリング、変換、及び/又は量子化を適用して、画素ドメインにおける残差ブロックを再構成し、例えば、後に別の現在のブロックの予測ブロックとなり得る参照ブロックとして使用する。モーション推定コンポーネント221及び/又はモーション補償コンポーネント219は、後のブロック/フレームのモーション推定に使用するために、残差ブロックを対応する予測ブロックに戻すことによって参照ブロックを計算することができる。フィルタは、スケーリング、量子化、及び変換の間に生成されるアーチファクトを軽減するために、再構成された参照ブロックに適用される。そうでなければ、このようなアーチファクトは、後続のブロックが予測された場合に、不正確な予測を引き起こす(及び追加のアーチファクトを作成する)可能性がある。
フィルタ制御分析コンポーネント227及びループ内フィルタ・コンポーネント225は、残差ブロック及び/又は再構成された画像ブロックにフィルタを適用する。例えば、スケーリング及び逆変換コンポーネント229からの変換された残差ブロックを、イントラ・ピクチャ予測コンポーネント217及び/又はモーション補償コンポーネント219からの対応する予測ブロックと組み合わせて、元の画像ブロックを再構成してもよい。フィルタは、次に、再構成された画像ブロックに適用され得る。いくつかの例において、フィルタは、代わりに、残差ブロックに適用されてもよい。図2の他のコンポーネントと同様に、フィルタ制御分析コンポーネント227及びループ内フィルタ・コンポーネント225は、高度に統合されており、一緒に実装されてもよいが、概念的な目的のために別個に描画されている。再構成された参照ブロックに適用されるフィルタは、特定の空間領域に適用され、そのようなフィルタが適用される方法を調整するために複数のパラメータを含む。フィルタ制御分析コンポーネント227は、再構成された参照ブロックを分析して、そのようなフィルタを適用すべき場所を判定し、対応するパラメータを設定する。このようなデータは、符号化のためのフィルタ制御データとしてヘッダ・フォーマッティング及びCABACコンポーネント231に転送される。ループ内フィルタ・コンポーネント225は、フィルタ制御データに基づいてそのようなフィルタを適用する。フィルタは、ブロック解除フィルタ、ノイズ抑制フィルタ、SAOフィルタ、及び適応ループ・フィルタを含み得る。そのようなフィルタは、例に応じて、(例えば、再構成された画素ブロックでの)空間/画素領域又は周波数領域に適用され得る。
符号化器として動作する場合に、フィルタリングされた再構成された画像ブロック、残差ブロック、及び/又は予測ブロックは、上述のようにモーション推定に後で使用するために、復号ピクチャ・バッファ・コンポーネント223に格納される。復号器として動作する場合に、復号ピクチャ・バッファ・コンポーネント223は、出力ビデオ信号の一部として、再構成されフィルタリングされたブロックを記憶し、ディスプレイに向かって転送する。復号ピクチャ・バッファ・コンポーネント223は、予測ブロック、残差ブロック、及び/又は再構成された画像ブロックを記憶することができる任意のメモリデバイスであり得る。
ヘッダ・フォーマッティング及びCABACコンポーネント231は、コーデック・システム200の種々のコンポーネントからデータを受信し、復号器に向けた伝送のために、そのようなデータをコーディングされたビットストリームに符号化する。具体的には、ヘッダ・フォーマッティング及びCABACコンポーネント231は、一般制御データ及びフィルタ制御データなどの制御データを符号化するための種々のヘッダを生成する。さらに、イントラ予測及びモーション・データを含む予測データ、並びに量子化変換係数データの形式の残差データは、すべてビットストリームに符号化される。最終ビットストリームは、元のパーティション化ビデオ信号201を再構成するために復号器によって望まれる全ての情報を含む。そのような情報はまた、イントラ予測モード・インデックス・テーブル(コードワード・マッピングテーブルとも呼ばれる)、種々のブロックに対する符号化コンテキストの定義、最も可能性の高いイントラ予測モードの表示、パーティション情報の表示などを含み得る。このようなデータは、エントロピー・コーディングを用いることによって符号化され得る。例えば、コンテキスト適応可変長コーディング(CAVLC)、CABAC、構文ベースのコンテキスト適応バイナリ演算コーディング(SBAC)、確率間隔パーティション化エントロピー(PIPE)コーディング、又は別のエントロピー・コーディング技術を用いることによって、情報は符号化されてもよい。エントロピー・コーディングに続いて、コーディングされたビットストリームは、別のデバイス(例えば、ビデオ復号器)に送信されてもよく、又は後の伝送又は検索のためにアーカイブされてもよい。
図3は、例示的なビデオ符号化器300を図示するブロック図である。ビデオ符号化器300は、コーデック・システム200の符号化機能を実装するため、及び/又は動作方法100のステップ101、103、105、107、及び/又は109を実装するために用いられ得る。符号化器300は、入力ビデオ信号をパーティション化し、パーティション化ビデオ信号301をもたらし、これは、パーティション化ビデオ信号201と実質的に同様である。パーティション化ビデオ信号301は、次に、符号化器300のコンポーネントによって圧縮され、ビットストリームに符号化される。
具体的には、パーティション化ビデオ信号301は、イントラ予測のために、イントラ・ピクチャ予測コンポーネント317に転送される。イントラ・ピクチャ予測コンポーネント317は、イントラ・ピクチャ推定コンポーネント215及びイントラ・ピクチャ予測コンポーネント217と実質的に同様であり得る。パーティション化ビデオ信号301はまた、復号ピクチャ・バッファ・コンポーネント323内の参照ブロックに基づくインター予測のために、モーション補償コンポーネント321に転送される。モーション補償コンポーネント321は、モーション推定コンポーネント221及びモーション補償コンポーネント219と実質的に同様であり得る。イントラ・ピクチャ予測コンポーネント317及びモーション補償コンポーネント321からの予測ブロック及び残差ブロックは、残差ブロックの変換及び量子化のために変換及び量子化コンポーネント313に転送される。変換及び量子化コンポーネント313は、変換スケーリング及び量子化コンポーネント213と実質的に同様であり得る。変換され量子化された残差ブロック及び対応する予測ブロックは、(関連する制御データと共に)ビットストリームにコーディングするためにエントロピー・コーディング・コンポーネント331に転送される。エントロピー・コーディング・コンポーネント331は、ヘッダ・フォーマッティング及びCABACコンポーネント231と実質的に同様であり得る。
変換及び量子化された残差ブロック及び/又は対応する予測ブロックはまた、モーション補償コンポーネント321によって使用される参照ブロックへの再構成のために変換及び量子化コンポーネント313から逆変換及び量子化コンポーネント329に転送される。逆変換及び量子化コンポーネント329は、スケーリング及び逆変換コンポーネント229と実質的に類似であり得る。ループ内フィルタ・コンポーネント325内のループ内フィルタはまた、例に応じて、残差ブロック及び/又は再構成された参照ブロックに適用される。ループ内フィルタ・コンポーネント325は、実質的に、フィルタ制御分析コンポーネント227及びループ内フィルタ・コンポーネント225に類似であり得る。ループ内フィルタ・コンポーネント325は、ループ内フィルタ・コンポーネント225に関して論じられたように、複数のフィルタを含み得る。フィルタリングされたブロックは、次に、復号ピクチャ・バッファ・コンポーネント323に記憶され、モーション補償コンポーネント321によって参照ブロックとして使用される。復号ピクチャ・バッファ・コンポーネント323は、復号ピクチャ・バッファ・コンポーネント223と実質的に同様であり得る。
図4は、例示的なビデオ復号器400を図示するブロック図である。ビデオ復号器400は、コーデック・システム200の復号機能を実装するため、及び/又は動作方法100のステップ111、113、115、及び/又は117を実装するために用いられ得る。復号器400は、例えば符号化器300からビットストリームを受信し、エンド・ユーザへの表示のために、ビットストリームに基づいて再構成された出力ビデオ信号を生成する。
ビットストリームはエントロピー復号コンポーネント433によって受信される。エントロピー復号コンポーネント433は、CAVLC、CABAC、SBAC、PIPEコーディング、又は他のエントロピー・コーディング技術などのエントロピー復号スキームを実装するように構成されている。例えば、エントロピー復号コンポーネント433は、ビットストリーム内のコード・ワードとして符号化された追加データを解釈するためのコンテキストを提供するために、ヘッダ情報を用いてもよい。復号された情報は、一般制御データ、フィルタ制御データ、パーティション情報、モーション・データ、予測データ、及び残差ブロックからの量子化変換係数などの、ビデオ信号を復号するための任意の所望の情報を含む。量子化された変換係数は、残差ブロックへの再構成のために、逆変換及び量子化コンポーネント429に転送される。逆変換及び量子化コンポーネント429は、逆変換及び量子化コンポーネント329と同様であり得る。
再構成された残差ブロック及び/又は予測ブロックは、イントラ予測動作に基づく画像ブロックへの再構成のために、イントラ・ピクチャ予測コンポーネント417に転送される。イントラ・ピクチャ予測コンポーネント417は、イントラ・ピクチャ推定コンポーネント215及びイントラ・ピクチャ予測コンポーネント217と同様であり得る。具体的には、イントラ・ピクチャ予測コンポーネント417は、フレーム内の参照ブロックを位置特定するために予測モードを用い、残差ブロックを結果に適用して、イントラ予測された画像ブロックを再構成する。再構成されイントラ予測された画像ブロック及び/又は残差ブロック及び対応するインター予測データは、復号ピクチャ・バッファ・コンポーネント423に、ループ内フィルタ・コンポーネント425を介して転送され、これらコンポーネントは、復号ピクチャ・バッファ・コンポーネント223及びループ内フィルタ・コンポーネント225とそれぞれ実質的に同様であり得る。ループ内フィルタ・コンポーネント425は、再構成された画像ブロック、残差ブロック及び/又は予測ブロックをフィルタリングし、そのような情報は復号ピクチャ・バッファ・コンポーネント423に記憶される。復号ピクチャ・バッファ・コンポーネント423からの再構成された画像ブロックは、インター予測のためにモーション補償コンポーネント421に転送される。モーション補償コンポーネント421は、モーション推定コンポーネント221及び/又はモーション補償コンポーネント219と実質的に同様であり得る。具体的には、モーション補償コンポーネント421は、参照ブロックからのモーション・ベクトルを用いて、予測ブロックを生成し、残差ブロックを結果に適用して画像ブロックを再構成する。得られた再構成されたブロックはまた、ループ内フィルタ・コンポーネント425を介して復号ピクチャ・バッファ・コンポーネント423に転送され得る。復号ピクチャ・バッファ・コンポーネント423は、パーティション情報を介してフレームに再構成され得る追加の再構成画像ブロックを記憶し続ける。このようなフレームはまた、シーケンスに配置され得る。このシーケンスは、再構成された出力ビデオ信号としてディスプレイに向けて出力される。
図5は、異なるタイプのコーディング・ツール・パラメータを含む複数のタイプのAPSを含む例示的なビットストリーム500を図示する概略図である。例えば、ビットストリーム500は、コーデック・システム200及び/又は復号器400によって復号するために、コーデック・システム200及び/又は符号化器300によって生成され得る。別の例として、ビットストリーム500は、ステップ111で復号器が使用するために、方法100のステップ109で符号化器によって生成されてもよい。
ビットストリーム500は、シーケンス・パラメータ・セット(SPS)510、複数のピクチャ・パラメータ・セット(PPS)511、複数のALF APS512、複数のスケーリング・リストAPS513、複数のLMCS APS514、複数のスライス・ヘッダ515、及び画像データ520を含む。SPS510は、ビットストリーム500に含まれるビデオ・シーケンス内の全てのピクチャに共通のシーケンス・データを含む。このようなデータは、ピクチャ・サイズ、ビット深度、コーディング・ツール・パラメータ、ビット・レート制限などを含むことができる。PPS511は、ピクチャ全体に適用するパラメータを含む。したがって、ビデオ・シーケンス内の各ピクチャは、PPS511を参照し得る。各ピクチャはPPS511を参照するが、単一のPPS511は、いくつかの例において複数のピクチャのためのデータを含むことができることに留意されたい。例えば、複数の同様のピクチャは、類似のパラメータにしたがってコーディングされてもよい。このような場合、単一のPPS511は、このような類似ピクチャのためのデータを含み得る。PPS511は、対応するピクチャ、量子化パラメータ、オフセットなどにおけるスライスに利用可能なコーディング・ツールを示すことができる。スライス・ヘッダ515は、ピクチャ内の各スライスに固有のパラメータを含む。したがって、ビデオ・シーケンスにおいて、スライス当たり1つのスライス・ヘッダ515があり得る。スライス・ヘッダ515は、スライス・タイプ情報、ピクチャ・オーダ・カウント(POC)、参照ピクチャ・リスト、予測重み、タイル・エントリ・ポイント、ブロック解除パラメータなどを含むことができる。スライス・ヘッダ515はまた、いくつかの文脈においてタイル・グループ・ヘッダとも呼ばれることがあることに留意されたい。
APSは、1つ以上のピクチャ521及び/又はスライス523に適用する構文要素を含む構文構造である。図示の例では、APSを複数のタイプに分けることができる。ALF APS512は、ALFパラメータを含むタイプALFのAPSである。ALFは、可変パラメータによって制御される伝達関数を含み、伝達関数を改良するためにフィードバック・ループからのフィードバックを用いる適応ブロック・ベースのフィルタである。さらに、ALFは、ブロック・ベースのコーディングの結果として生じるコーディング・アーチファクト(例えば、エラー)を補正するために用いられる。適応フィルタは、符号化器で動作するRDOプロセスなどの最適化アルゴリズムによって制御することができる可変パラメータによって伝達関数コントローラを有する線形フィルタである。したがって、ALF APS512に含まれるALFパラメータは、復号器での復号中にフィルタがブロック・ベースのコーディング・アーチファクトを除去するように符号化器によって選択される可変パラメータを含み得る。
スケーリング・リストAPS513は、スケーリング・リスト・パラメータを含むタイプ・スケーリング・リストのAPSである。上述のように、現在のブロックは、残差をもたらすインター予測又はイントラ予測にしたがってコーディングされる。残差は、ブロックのルマ値及び/又はクロマ値と、対応する予測ブロックの値との差である。次に、残差を変換係数(残差値より小さい)に変換するために、変換が残差に適用される。高解像度及び/又は超高解像度のコンテンツを符号化すると、増加した残差データもたらすことがある。単純な変換プロセスは、そのようなデータに適用された場合に、顕著な量子化ノイズをもたらすことがある。したがって、スケーリング・リストAPS513に含まれるスケーリング・リスト・パラメータは、変換マトリクスをスケーリングするために適用され、結果として生じる復号されたビデオ画像における表示解像度及び/又は量子化ノイズの許容可能なレベルの変化を考慮することができる重み付けパラメータを含み得る。
LMCS APS514は、LMCSパラメータを含むタイプLMCSのAPSであり、これは、リシェイパー・パラメータとしても知られている。人間の視覚系は、光の違い(例えば、輝度)よりも色の違い(例えば、色度)を区別する能力が低い。したがって、いくつかのビデオシステムは、クロマ・サブサンプリング・メカニズムを使用して、対応するルマ値を調整することなく、クロマ値の解像度を低下させることによって、ビデオ・データを圧縮する。そのようなメカニズムの1つの懸念事項は、関連する補間が、いくつかの場所で対応するルマ値と互換性のない、補間されたクロマ値を復号中に生成する可能性があるということである。これは、このような場所での色アーチファクトを生成し、この色アーチファクトは対応するフィルタによって補正されるべきである。これはルマ・マッピング・メカニズムによって複雑にされる。ルマ・マッピングは、入力ルマ信号のダイナミックレンジにわたってコーディングされたルマ・コンポーネントを再マッピングするプロセスである(例えば、ペイスワイズ線形関数にしたがって)。これはルマ・コンポーネントを圧縮する。LMCSアルゴリズムは、クロマ・サブサンプリングに関係するアーチファクトを除去するために、ルマ・マッピングに基づいて圧縮されたクロマ値をスケーリングする。したがって、LMCS APS514に含まれるLMCSパラメータは、ルマ・マッピングを説明するために使用されるクロマ・スケーリングを示す。LMCSパラメータは、符号化器によって判定され、ルマ・マッピングが用いられる場合に、クロマ・サブサンプリングによって引き起こされるアーチファクトをフィルタで除去するために、復号器によって用いられ得る。
画像データ520は、インター予測及び/又はイントラ予測にしたがって符号化されたビデオ・データ、並びに対応する変換及び量子化残差データを含む。例えば、ビデオ・シーケンスは、画像データとしてコーディングされた複数のピクチャ521を含む。1つのピクチャ521は、ビデオ・シーケンスの単一フレームであり、したがって、ビデオ・シーケンスを表示するときは、一般に単一ユニットとして表示される。しかしながら、バーチャル・リアリティ、ピクチャ・イン・ピクチャなどの特定の技術を実装するために、部分的なピクチャが表示されることがある。複数のピクチャ521は、各々PPS511を参照する。複数のピクチャ521は複数のスライス523に分割される。1つのスライス523は、1つのピクチャ521の水平セクションとして定義され得る。例えば、1つのスライス523は、当該ピクチャ521の高さの一部及び当該ピクチャ521の完全な幅を含み得る。他の場合には、ピクチャ521は、列及び行に分割されてもよく、スライス523は、そのような列及び行によって生成されるピクチャ521の長方形部分に含まれてもよい。いくつかのシステムでは、スライス523は、タイルにサブ分割される。他のシステムでは、スライス523は、タイルを含むタイル・グループと呼ばれる。スライス523及び/又はタイルのタイル・グループは、スライス・ヘッダ515を参照する。スライス523は、コーディング・ツリー・ユニット(CTU)にさらに分割される。CTUはさらに、コーディング・ツリーに基づいてコーディング・ブロックに分割される。次に、コーディング・ブロックは、予測メカニズムにしたがって符号化/復号され得る。
ピクチャ521及び/又はスライス523は、直接的又は間接的に、関連パラメータを含むALF APS512、スケーリング・リストAPS513、及び/又はLMCS APS514を参照してもよい。例えば、スライス523は、スライス・ヘッダ515を参照してもよい。さらに、ピクチャ521は、対応するピクチャ・ヘッダを参照してもよい。スライス・ヘッダ515及び/又はピクチャ・ヘッダは、関連するスライス523及び/又はピクチャ521をコーディングする際に使用されるパラメータを含むALF APS512、スケーリング・リストAPS513、及び/又はLMCS APS514を参照し得る。このようにして、復号器は、対応するスライス523及び/又はピクチャ521に関係するヘッダ参照にしたがって、スライス523及び/又はピクチャ521に関連性のあるコーディング・ツール・パラメータを取得することができる。
ビットストリーム500は、ビデオ・コーディング・レイヤ(VCL)NALユニット535及び非VCL NALユニット531にコーディングされる。NALユニットは、ネットワークを介した伝送のための単一パケットのペイロードとして配置されるサイズに形成されたコーディングされたデータ・ユニットである。VCL NALユニット535は、コーディングされたビデオ・データを含むNALユニットである。例えば、各VCL NALユニット535は、データ、CTU、及び/又はコーディング・ブロックの1つのスライス523及び/又はタイル・グループを含むことができる。非VCL NALユニット531は、サポート構文を含むが、コーディングされたビデオ・データを含まないNALユニットである。例えば、非VCL NALユニット531は、SPS510、PPS511、APS、スライス・ヘッダ515などを含んでもよい。したがって、復号器は、離散VCL NALユニット535及び非VCL NALユニット531においてビットストリーム500を受信する。アクセス・ユニットは、単一のピクチャ521をコーディングするのに十分なデータを含むVCL NALユニット535及び/又は非VCL NALユニット531のグループである。
いくつかの例において、ALF APS512、スケーリング・リストAPS513、及びLMCS APS514は、各々、別個の非VCL NALユニット531タイプに割り当てられる。このような場合、ALF APS512、スケーリング・リストAPS513、及びLMCS APS514は、それぞれ、ALF APS NALユニット532、スケーリング・リストAPS NALユニット533、及びLMCS APS NALユニット534に含まれる。したがって、ALF APS NALユニット532は、別のALF APS NALユニット532が受信されるまで有効なままであるALFパラメータを含む。さらに、スケーリング・リストAPS NALユニット533は、別のスケーリング・リストAPS NALユニット533が受信されるまで有効なままであるスケーリング・リスト・パラメータを含む。追加的に、LMCS APS NALユニット534は、別のLMCS APS NALユニット534が受信されるまで有効なままであるLMCSパラメータを含む。このように、APSパラメータが変更されるたびに新しいAPSを発行する必要はない。例えば、LMCSパラメータの変更は、追加のLMCS APS514をもたらすが、追加のALF APS512又はスケーリング・リストAPS513をもたらさない。したがって、パラメータ・タイプに基づいてAPSを異なるNALユニット・タイプに分けることにより、無関係なパラメータの冗長なシグナリングが回避される。したがって、APSを異なるNALユニット・タイプに分けることは、コーディング効率を向上させ、したがって、符号化器及び復号器におけるプロセッサ、メモリ及び/又はネットワーク・リソースの使用を減少させる。
さらに、スライス523及び/又はピクチャ521は、スライス523及び/又はピクチャ521をコーディングするために用いられるコーディング・ツール・パラメータを含むALF APS512、ALF APS NALユニット532、スケーリング・リストAPS513、スケーリング・リストAPS NALユニット533、LMCS APS514、及び/又はLMCS APS NALユニット534を直接的又は間接的に参照することができる。例えば、各APSは、APS ID542及びパラメータ・タイプ541を含んでもよい。APS ID542は、対応するAPSを識別する値(例えば、番号)である。APS ID542は、事前定義されたビット数を含み得る。したがって、APS ID542は、事前定義された順番にしたがって増加(例えば、1ずつ増加)することができ、その順番が事前定義された範囲の末端に到達したら、最小値(例えば、0)でリセットし得る。パラメータ・タイプ541は、APSに含まれるパラメータのタイプ(例えば、ALF、スケーリング・リスト、及び/又は、LMCS)を示す。例えば、パラメータ・タイプ541は、各APSに含まれるパラメータのタイプを示す事前定義された値に設定されたAPSパラメータ・タイプ(aps_params_type)コードを含んでもよい。このように、パラメータ・タイプ541は、ALF APS512、スケーリング・リストAPS513、及びLMCS APS514を区別するために使用され得る。いくつかの例において、ALF APS512、スケーリング・リストAPS513、及びLMCS APS514は各々、パラメータ・タイプ541及びAPS ID542の組み合わせによって一意に識別され得る。例えば、各APSタイプは、対応するAPS ID542のための別個の値空間を含んでもよい。したがって、各APSタイプは、同じタイプの以前のAPSに基づいて順番に増加するAPS ID542を含み得る。しかし、第1のAPSタイプのAPS ID542は、異なる第2のAPSタイプの以前のAPSのAPS ID542とは関係していなくてもよい。このように、異なるAPSタイプのAPS ID542は、重複する値空間を含み得る。例えば、第1のタイプのAPS(例えば、ALF APS)は、場合によっては、第2のタイプのAPS(例えば、LMCS APS)と同じAPS ID542を含むことができる。各APSタイプが異なる値空間を含むことを可能にすることで、コーデックはAPSタイプ間でAPS ID542の競合をチェックする必要がない。さらに、値空間が重複することを可能にすることによって、コーデックは、より大きなAPS ID542の値を用いることを回避することができ、これは、ビット節約をもたらす。したがって、異なるAPSタイプの複数のAPS ID542のための別個の重複する値空間を使用することは、コーディング効率を向上させ、したがって、符号化器及び復号器におけるネットワーク・リソース、メモリ・リソース、及び/又は処理リソースの使用を減少させる。上記のように、APS ID542は、事前定義された範囲にわたってもよい。いくつかの例において、APS ID542の事前定義された範囲は、パラメータ・タイプ541によって示されるAPSタイプに応じて変動してもよい。これにより、一般的に異なるタイプのパラメータが変化する頻度に応じて、異なる数のビットを異なるAPSタイプに割り当てることが可能となり得る。例えば、ALF APS512のAPS ID542は0~7の範囲を有し、スケーリング・リストAPS513のAPS ID542は0~7の範囲を有し、LMCS APS514のAPS ID542は0~3の範囲を有してもよい。
別の例では、LMCSパラメータは、LMCS APS514に含まれる。いくつかのシステムは、スライス・ヘッダ515にLMCSパラメータを含める。しかし、LMCS/リシェイパー・パラメータは約1秒に1回変化することがある。ビデオ・シーケンスは、毎秒30~60個のピクチャ521を表示し得る。したがって、LMCSパラメータは、30~60フレームに対して変化し得ない。LMCS APS514にLMCSパラメータを含めることは、LMCSパラメータの冗長コーディングを大幅に低減する。いくつかの例において、スライス・ヘッダ515及び/又はスライス523及び/又はピクチャ521にそれぞれ関連するピクチャ・ヘッダは、関連するLMCS APS514を参照することができる。スライス523及び/又はピクチャ521は、次に、スライス・ヘッダ515及び/又はピクチャ・ヘッダを参照する。これにより、復号器は、関連するスライス523及び/又はピクチャ521のLMCSパラメータを得ることが可能となる。このようにして、LMCSパラメータは、スライス523及び/又はピクチャ521に対するLMCSパラメータが変化したときにのみ符号化される。したがって、LMCSパラメータを符号化するためにLMCS APS514を用いることは、コーディング効率を増加させ、したがって、符号化器及び復号器におけるネットワーク・リソース、メモリ・リソース、及び/又は処理リソースの使用を低減する。LMCSはすべてのビデオに使用されるわけではないため、SPS510は、LMCS有効フラグ543を含んでもよい。LMCS有効フラグ543は、符号化されたビデオ・シーケンスに対してLMCSが有効であることを示すように設定され得る。したがって、復号器は、LMCS有効フラグ543が設定される(例えば、1に設定される)場合に、LMCS有効フラグ543に基づいてLMCS APS514からLMCSパラメータを取得し得る。さらに、復号器は、LMCS有効フラグ543が設定されない(例えば、0に設定されない)場合に、LMCSパラメータを取得しようとしなくてもよい。
図6は、異なる値空間上の異なるAPSタイプにAPS ID642を割り当てるための例示的なメカニズム600を図示する概略図である。例えば、メカニズム600がビットストリーム500に適用されて、ALF APS512、スケーリング・リストAPS513、及び/又はLMCS APS514にAPS ID542を割り当てることができる。さらに、メカニズム600は、方法100にしたがってビデオをコーディングする場合に、コーデック200、符号化器300、及び/又は復号器400に適用されてもよい。
メカニズム600は、APS ID642をALF APS612、スケーリング・リストAPS613、及びLMCS APS614に割り当てるが、これらは、それぞれ、APS ID542、ALF APS512、スケーリング・リストAPS513、及びLMCS APS514と実質的に同様であり得る。上記のように、APS ID642は、各値空間がAPSタイプに固有である複数の異なる値空間上に順番に割り当てられてもよい。さらに、各値空間は、APSタイプに固有である異なる範囲にわたってもよい。示された例では、ALF APS612のAPS ID642の値空間の範囲は、0~7(例えば、3ビット)である。さらに、スケーリング・リストAPS613のAPS ID642の値空間の範囲は、0~7(例えば、3ビット)である。また、LMCS APS611のAPS ID642の値空間の範囲は、0~3(例えば、2ビット)である。APS ID642が値空間の範囲の末尾に到達すると、対応するタイプの次のAPSのAPS ID642は範囲の先頭に戻る(例えば、0)。新しいAPSが同じタイプの前のAPSと同じAPS ID642を受ける場合に、以前のAPSはもはやアクティブではなく、もはや参照することができない。このように、値空間の範囲を拡張して、同じタイプのより多くのAPSが能動的に参照されることを可能にすることができる。さらに、コーディング効率を向上させるために値空間の範囲が縮小され得るが、そのような縮小は、同時にアクティブなままであり続け、参照に利用可能であり続けることができる対応するタイプのAPSの数も減少させる。
示される例では、各ALF APS612、スケーリング・リストAPS613、及びLMCS APS614は、APS ID642及びAPSタイプの組み合わせによって参照される。例えば、ALF APS612、LMCS APS614、及びスケーリング・リストAPS613は、各々、0のAPS ID642を受ける。新しいALF APS612が受信される場合に、APS ID642は、以前のALF APS612に使用された値からインクリメントされる。同じシーケンスが、スケーリング・リストAPS613及びLMCS APS614に適用される。したがって、各APS ID642は、同じタイプの以前のAPSのAPS ID642に関係する。しかし、APS ID642は、他のタイプの以前のAPSのAPS ID642とは関係しない。この例では、ALF APS612のAPS ID642は、0から7までインクリメントで増加し、次に、継続してインクリメントする前に0に戻る。さらに、スケーリング・リストAPS613のAPS ID642は、0から7までインクリメントで増加し、次に、継続してインクリメントする前に0に戻る。また、LMCS APS611のAPS ID642は、0から3までインクリメントで増加し、次に、継続してインクリメントする前に0に戻る。図示されるように、このような値空間は、異なるAPSタイプの異なるAPSがビデオ・シーケンス内の同じポイントで同じAPS ID642を共有することができるので、重複している。また、メカニズム600は、APSのみを描画することにも留意されたい。ビットストリームでは、描画されたAPSは、SPS、PPS、スライス・ヘッダ、ピクチャ・ヘッダ、スライスなどの他のVCLと非VCL NALユニットの間に散在する。
このように、本開示は、APSの設計の改良、及びリシェイパー/LMCSパラメータのシグナリングのためのいくつかの改良を含む。APSは、複数のピクチャで共有できる情報のシグナリングのために設計されており、多くのバリエーションを含むことができる。リシェイパー/LMCSパラメータは、適応ループ内リシェイパー/LMCSビデオ・コーディング・ツールに用いられる。上記メカニズムは、以下のとおりに実装され得る。本明細書に列挙された問題を解決するために、これは、個別に及び/又は組み合わせて用いられ得るいくつかの態様を含む。
開示されたAPSは、複数のAPSが使用されて異なるタイプのパラメータを搬送することができるように修正される。各APS NALユニットは、1つのタイプのパラメータのみを搬送するために使用される。その結果、2つのAPS NALユニットは、2つのタイプの情報が特定のタイル・グループ/スライスに対して搬送される(例えば、各タイプの情報に対して1つ)場合に、符号化される。APSは、APS構文にAPSパラメータ・タイプ・フィールドを含み得る。APS NALユニットには、APS parameters typeフィールドによって示されるタイプのパラメータのみが含まれ得る。
いくつかの例において、異なるタイプのAPSパラメータが異なるNALユニット・タイプによって示される。例えば、2つの異なるNALユニット・タイプがAPSに使用される。この2種類のAPSは、それぞれALF APS及びリシェイパーAPSと呼ばれ得る。別の例では、APS NALユニットで搬送されるツールパラメータのタイプがNALユニット・ヘッダで指定される。VVCでは、NALユニット・ヘッダは予約ビット(例えば、nuh_reserved_zero_7bitと示される7ビット)を有する。いくつかの例において、これらのビットのいくつか(例えば、7ビットのうちの3ビット)がAPSパラメータ・タイプ・フィールドを指定するために使用され得る。いくつかの例において、特定のタイプのAPSがAPS IDに対して同じ値空間を共有してもよい。一方、APSの異なるタイプは、APS IDの異なる値空間を使用する。したがって、異なるタイプの2つのAPSが共存し、同じ瞬間に同じAPS IDの値を有してもよい。さらに、他のAPSからAPSを識別するために、APS IDとAPSパラメータ・タイプの組み合わせが用いられてもよい。
APS IDは、タイル・グループに対して対応するコーディング・ツールが有効である場合に、タイル・グループ・ヘッダ構文に含まれ得る。そうでなければ、対応するタイプのAPS IDがタイル・グループ・ヘッダに含まれなくてもよい。例えば、タイル・グループに対してALFが有効である場合に、ALF APSのAPS IDはタイル・グループ・ヘッダに含まれる。例えば、これはALFタイプを示すためにAPSパラメータ・タイプ・フィールドを設定することで達成され得る。したがって、タイル・グループに対してALFが有効ではない場合に、ALF APSのAPS IDはタイル・グループ・ヘッダに含まれない。さらに、タイル・グループに対してリシェイパー・コーディング・ツールが有効である場合に、リシェイパーAPSのAPS IDがタイル・グループ・ヘッダに含まれる。例えば、これはリシェイパータイプを示すようにAPSパラメータ・タイプ・フィールドを設定することによって達成され得る。さらに、タイル・グループに対してリシェイパー・コーディング・ツールが有効ではない場合に、リシェイパーAPSのAPS IDはタイル・グループ・ヘッダに含まれなくてもよい。
いくつかの例において、APSにおけるAPSパラメータ・タイプ情報の存在は、パラメータに関連するコーディング・ツールの使用によって条件付けされ得る。1つのビットストリーム(例えば、LMCS、ALF、スケーリング・リスト)に対して1つのAPSに関係するコーディング・ツールのみが有効である場合に、APSパラメータ・タイプ情報は存在しないことがあり、その代わりに推測されてもよい。例えば、APSがALF及びリシェイパー・コーディング・ツールのためのパラメータを含むことができるが、ALFのみが有効であり(例えば、SPSのフラグで指定されているように)、リシェイパーが有効でない場合(例えば、SPSのフラグで指定されているように)、APSパラメータ・タイプはシグナリングされなくてもよく、ALFパラメータと等しいと推測され得る。
別の例では、APSパラメータ・タイプ情報は、APS IDの値から推測され得る。例えば、事前定義されたAPS IDの値の範囲は、対応するAPSパラメータ・タイプに関連付けられ得る。この態様は、以下のとおりに実装され得る。APS IDのシグナリングにはXビット、APS パラメータのタイプのシグナリングにはYビットを割り当てる代わりに、APS IDのシグナリングにはX+Yビットが割り当てられ得る。次に、APSのパラメータ・タイプの異なるタイプを示すために、APS IDの値の異なる範囲が指定され得る。例えば、APS IDのシグナリングに5ビット、APSパラメータのタイプのシグナリングに3ビットを使用する代わりに、(例えば、ビットコストを増加させることなく)APS IDのシグナリングに8ビットが割り当てられ得る。0~63のAPS IDの値の範囲は、APSがALFのためのパラメータを含むことを示し、64~95のIDの値の範囲は、APSがリシェイパーのためのパラメータを含むことを示し、96~255は、スケーリング・リストのような他のパラメータ・タイプのために予約され得る。別の例では、0~31のAPS IDの値の範囲は、APSがALFのためのパラメータを含むことを示し、32~47のIDの値の範囲は、APSがリシェイパーのためのパラメータを含むことを示し、48~255は、スケーリング・リストのような他のパラメータ・タイプのために予約され得る。このアプローチの利点は、各ツールのパラメータ変更の頻度に応じて、APS IDの範囲が割り当てられ得ることである。例えば、ALFパラメータは、リシェイパー・パラメータよりも頻繁に変化することが予想されてもよい。このような場合、APSがALFパラメータを含むAPSであることを示すために、より大きなAPS ID範囲は用いられてもよい。
第1の実施例では、前述の態様の1つ以上は、以下のとおりに実施されてもよい。ALF APSは、ALF_APSに等しいaps_params_typeを有するAPSとして定義され得る。リシェイパーAPS(又はLMCS APS)は、MAP_APSに等しいaps_params_typeを有するAPSとして定義され得る。例示的なSPS構文とセマンティクスは、以下のとおりである。
sps_reshaper_enabled_flagは、リシェイパーがコーデット・ビデオ・シーケンス(CVS)で使用されることを指定するために1に等しく設定される。sps_reshaper_enabled_flagは、リシェイパーがCVSにおいて使用されないことを指定するために0に設定される。
例示的なAPS構文とセマンティクスは以下のとおりである。
aps_params_typeは、以下のテーブルで指定されるようなAPSにおいて搬送されるAPSパラメータのタイプを指定する。
例示的なタイル・グループ・ヘッダ構文とセマンティクスは、以下のとおりである。
tile_group_alf_aps_idは、タイル・グループが参照するALF APSのadaptation_parameter_set_idを指定する。tile_group_alf_aps_idに等しいadapdation_parameter_set_idを有するALF APS NALユニットのTemporalIdは、コーディングされたタイル・グループNALユニットのTemporalId以下であるとする。同じ値のadaptation_parameter_set_idを有する複数のALF APSが同じピクチャの2つ以上のタイル・グループによって参照される場合に、同じ値のadapation_parameter_set_idを有する複数のALF APSは同じ内容を有するものとする。
tile_group_reshaper_enabled_flagは、現在のタイル・グループに対してリシェイパーが有効であることを指定するために1に等しく設定される。tile_group_reshaper_enabled_flagは、現在のタイル・グループに対してリシェイパーが有効でないことを指定するために0に設定される。tile_group_resharper_enable_flagが存在しない場合に、フラグは0に等しいと推定される。tile_group_reshaper_aps_idは、タイル・グループが参照するリシェイパーAPSのadaptation_parameter_set_idを指定する。tile_group_reshaper_aps_idに等しいadapdation_parameter_set_idを持つリシェイパーAPS NALユニットのTemporalIdは、コーディングされたタイル・グループNALユニットのTemporalId以下であるものとする。同じ値のadapation_parameter_set_idを有する複数のリシェイパーAPSが同じピクチャの2つ以上のタイル・グループによって参照される場合に、同じ値のadapation_parameter_set_idを有する複数のリシェイパーAPSは、同じ内容を有するものとする。tile_group_reshaper_chroma_residual_scale_flagは、現在のタイル・グループに対してクロマ残差スケーリングが有効であることを指定するために1に等しく設定される。tile_group_reshaper_chroma_residual_scale_flagは、現在のタイル・グループに対してクロマ残差スケーリングが有効でないことを指定するために0に等しく設定される。tile_group_reshaper_chroma_residual_scale_flagが存在しない場合に、フラグは0に等しいと推定される。
例示的なリシェイパー・データ構文とセマンティクスは以下のとおりである。
reshaper_model_min_bin_idxは、リシェイパー構成プロセスにおいて使用される最小ビン(又はピース)インデックスを指定する。reshaper_model_min_bin_idxの値は、0からMaxBinIdxまでの範囲(両端を含む)とする。MaxBinIdxの値は15に等しいものとする。reshaper_model_delta_max_bin_idxは、最大許容ビン(又はピース)インデックスMaxBinIdxからリシェイパー構成プロセスにおいて使用される最大ビン・インデックスを引いたものを指定する。reshaper_model_max_bin_idxの値はMaxBinIdx - reshaper_model_ delta_max_bin_idxに等しく設定される。resharper_model_bin_delta_abs_cw_prec_minus1 + 1は、構文要素resharper_model_bin_delta_abs_CW[i]の表現に使用されるビット数を指定する。reshaper_model_bin_delta_abs_CW[i] は、i番目のビンの絶対デルタ・コードワード値を指定する。reshaper_model_bin_delta_abs_CW[i]構文要素は、reshaper_model_bin_delta_abs_cw_prec_minus1+1ビットで表される。resharper_model_bin_delta_sign_CW_flag[i]は、resharper_model_bin _delta_abs_CW[i] の符号を指定する。
第2の実施例では、前述の態様の1つ以上は、以下のとおりに実施されてもよい。例示的なSPS構文とセマンティクスは以下のとおりである。
変数ALFEnabled及びReshaperEnabledは、以下のとおりに設定される。ALFEnabled = sps_alf_enabled_flagであり、ReshaperEnabled = sps_reshaper_enabled_flagである。
例示的なAPS構文とセマンティクスは以下のとおりである。
aps_params_typeは、以下のテーブルで指定されるようにAPSにおいて搬送されるAPSパラメータのタイプを指定する。
存在しない場合に、aps_params_typeの値は以下のとおりに推定される。ALFEnabledである場合に、aps_params_typeは0に等しく設定される。そうでなければ、aps_params_typeは1に等しく設定される。
第2の実施例では、前述の態様の1つ以上は、以下のとおりに実施されてもよい。例示的なSPS構文とセマンティクスは以下のとおりである。
adaption_parameter_set_idは、他の構文要素による参照のためにAPSの識別子を提供する。APSは、ピクチャ間で共有することができ、ピクチャ内の異なるタイル・グループにおいて異なることができる。変数APSParamsTypeの値と記載は、以下のテーブルに定義される。
例示的なタイル・グループ・ヘッダ・セマンティクスは以下のとおりである。tile_group_alf_aps_idは、タイル・グループが参照するALF APSのadaptation_parameter_set_idを指定する。tile_group_alf_aps_idに等しいadapdation_parameter_set_idを有するALF APS NALユニットのTemporalIdは、コーディングされたタイル・グループNALユニットのTemporalId以下であるものとする。tile_group_alf_aps_idの値は、0~63の範囲(両端を含む)とする。
同じ値のadaptation_parameter_set_idを有する複数のALF APSが同じピクチャの複数のタイル・グループによって参照される場合に、同じ値のadapation_parameter_set_idを有する複数のALF APSは同じ内容を有するものとする。tile_group _reshaper_aps_id は、タイル・グループが参照するreshaper APS のadaptation_parameter_set_id を指定する。tile_group_reshaper_aps_idに等しいadaptation_parameter_set_idを有するリシェイパーAPS NALユニットのTemporalIdは、コーディングされたタイル・グループNALユニットのTemporalId以下とする。tile_group_reshaper_aps_idの値は、64~95の範囲(両端を含む)とする。同じ値のadapation_parameter_set_idを有する複数のリシェイパーAPSが同じピクチャの2つ以上のタイル・グループによって参照される場合に、同じ値のadapation_parameter_set_idを有する複数のリシェイパーAPSは、同じ内容を有するものとする。
図7は、例示的なビデオ・コーディング・デバイス700の概略図である。ビデオ・コーディング・デバイス700は、本明細書に記載されるように、開示される実施例/実施形態を実装するのに適している。ビデオ・コーディング・デバイス700は、下流ポート720、上流ポート750、及び/又は、ネットワークを介して上流及び/又は下流でデータを通信するための送信機及び/又は受信機を含むトランシーバ・ユニット(Tx/Rx)710を含む。ビデオ・コーディング・デバイス700はまた、データを処理する論理ユニット及び/又は中央処理ユニット(CPU)を含むプロセッサ730と、データを記憶するためのメモリ732と、を含む。ビデオ・コーディング・デバイス700はまた、電気的、光学的、又は無線通信ネットワークを介したデータの通信のために上流ポート750及び/又は下流ポート720に結合された電気的、光-電気(OE)コンポーネント、電気-光(EO)コンポーネント、及び/又は無線通信コンポーネントを含み得る。ビデオ・コーディング・デバイス700はまた、ユーザとの間でデータを通信するための入力及び/又は出力(I/O)デバイス760を含み得る。I/Oデバイス760は、ビデオ・データを表示するためのディスプレイ、オーディオ・データを出力するためのスピーカなどの出力デバイスを含み得る。I/Oデバイス760はまた、キーボード、マウス、トラックボールなどの入力デバイス、及び/又はそのような出力デバイスと対話するための対応するインターフェースを含み得る。
プロセッサ730は、ハードウェア及びソフトウェアによって実装される。プロセッサ730は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサとして)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、及びデジタル信号プロセッサ(DSP)として実装され得る。プロセッサ730は、下流ポート720、Tx/Rx710、上流ポート750、及びメモリ732と通信している。プロセッサ730は、コーディング・モジュール714を含む。コーディング・モジュール714は、ビットストリーム500及び/又はメカニズム600を用いることができる、方法100、800、及び900などの本明細書に記載される開示された実施形態を実装する。コーディング・モジュール714はまた、本明細書に記載される任意の他の方法/メカニズムを実装し得る。さらに、コーディング・モジュール714は、コーデック・システム200、符号化器300、及び/又は復号器400を実装してもよい。例えば、コーディング・モジュール714は、ビットストリーム内のピクチャを符号化/復号し、複数のAPSにおけるピクチャのスライスに関連するパラメータを符号化/復号することができる。いくつかの例において、異なるタイプのパラメータが異なるタイプのAPSにコーディングされ得る。さらに、異なるタイプのAPSは、異なるNALユニットのタイプに含められ得る。そのようなAPSタイプは、ALF APS、スケーリング・リストAPS、及び/又はLMCS APSを含むことができる。APSは、各々APS IDを含むことができる。異なるAPSタイプのAPS IDは、異なる値空間上で順番に増加し得る。また、スライス及び/又はピクチャは、対応するスライス・ヘッダ及び/又はピクチャ・ヘッダを参照することができる。このようなヘッダは、次に、関連するコーディング・ツールを含むAPSを参照することができる。このようなAPSは、APS IDとAPSタイプによって一意に参照され得る。このような例は、コーディング・ツール・パラメータの冗長シグナリングを減少させ、及び/又は識別子のためのビット使用を減少させる。したがって、コーディング・モジュール714は、ビデオ・データをコーディングするときに、ビデオ・コーディング・デバイス700に追加的な機能性及び/又はコーディング効率を提供させる。したがって、コーディング・モジュール714は、ビデオ・コーディング・デバイス700の機能性を改善すると共に、ビデオ・コーディング技術に固有の問題に対処する。さらに、コーディング・モジュール714は、ビデオ・コーディング・デバイス700の異なる状態への変換を行う。代替的には、コーディング・モジュール714は、メモリ732に記憶された命令として実装され、プロセッサ730によって実行される(例えば、非一時的な媒体上に記憶されたコンピュータ・プログラム製品として)。
メモリ732は、ディスク、テープ・ドライブ、ソリッド・ステート・ドライブ、読み出し専用メモリ(ROM)、ランダム・アクセス・メモリ、フラッシュ・メモリ、三値連想メモリ(TCAM)、スタティック・ランダム・アクセス・メモリ(SRAM)などの1つ以上のメモリタイプを含む。メモリ732は、オーバーフロー・データ記憶デバイスとして使用されてもよく、このようなプログラムが実行のために選択されたときにプログラムを記憶し、プログラム実行中に読み出された命令及びデータを記憶する。
図8は、ALF APS512、スケーリング・リストAPS513、及び/又はLMCS APS514などの複数のAPSタイプを用いることによって、ビットストリーム500などのビットストリームにビデオ・シーケンスを符号化する例示的な方法800のフローチャートである。方法800は、方法100を実行する場合に、コーデック・システム200、符号化器300、及び/又はビデオ・コーディング・デバイス700などの符号化器によって用いられ得る。方法800はまた、メカニズム600にしたがって、異なる値空間を用いることによって、異なるタイプのAPSにAPS IDを割り当ててもよい。
方法800は、符号化器が複数のピクチャを含むビデオ・シーケンスを受信し、例えばユーザ入力に基づいて、そのビデオ・シーケンスをビットストリームに符号化することを判定したときに開始してもよい。ビデオ・シーケンスは、符号化に先立ってさらにパーティション化するために、ピクチャ/画像/フレームにパーティション化される。ステップ801で、スライスは、符号化されたビデオ・シーケンスの一部としてビットストリームに符号化される。スライスは、ピクチャの一部として符号化され得る。さらに、スライスは、スライスに含まれるCTU及び/又はCUを符号化することによって符号化されてもよい。そのようなCUは、イントラ予測及び/又はインター予測にしたがってコーディングされ得る。例えば、符号化器は、スライスのCUをコーディングしてもよい。そして、符号化器は、コーディングされたスライスを復号し、復号されたスライスをフィルタリングして、スライスの出力品質を向上させるために、仮想参照復号器(HRD)を用いることができる。
ステップ803で、符号化器は、HRDによって適用されるフィルタによって用いられるパラメータを判定して、符号化されたスライスの品質を向上させる。これらのパラメータは、ALFパラメータ、スケーリング・リスト・パラメータ、及びLMCSパラメータを含み得る。これらのパラメータを判定することにより、符号化器は、復号器でスライスに適用するために用いられるべきパラメータを判定することができる。
ステップ805で、ALFパラメータは、ALFタイプを含む第1のAPS NALユニットにおいて、ビットストリームに符号化される。さらに、スケーリング・リスト・パラメータは、スケーリング・リスト・タイプを含む第2のAPS NALユニットにおいて、ビットストリームに符号化される。追加的に、LMCSパラメータは、LMCSタイプを含む第3のAPS NALユニットにおいて、ビットストリームに符号化される。したがって、ALFパラメータ、スケーリング・リスト・パラメータ、及びLMCSパラメータは、複数の異なるNALユニット・タイプを用いることによって、各々異なるAPSに符号化される。第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットは、すべて非ビデオ・コーディング層(non-VCL)NALユニットであってもよい。
ステップ807で、SPSはビットストリームに符号化されてもよい。いくつかの例において、SPSは、LMCSがスライスを含む符号化されたビデオ・シーケンスに対して有効であることを示すように設定可能なフラグを含む。フラグは、LMCSが符号化されたビデオ・シーケンスに対して有効でないことを示すために設定されてもよいことに留意されたい。このような場合、LMCSパラメータは、方法800の他のステップで省略される。
ステップ809で、スライス・ヘッダはビットストリームに符号化される。スライス・ヘッダは、スライスに関連し得る。この場合、スライスは、スライス・ヘッダを参照する。そして、スライス・ヘッダは、第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを参照し得る。これにより、復号器が、スライス・ヘッダへの参照及び種々のAPS NALユニットへの参照に基づいて、スライスのための関連性のあるパラメータを判定できることを確実にする。いくつかの例において、ピクチャ・ヘッダは、そのような参照を含んでもよい。このような場合、ピクチャ・ヘッダはステップ809でビットストリームに符号化される。この例では、スライスを含むピクチャはピクチャ・ヘッダを参照し、ピクチャ・ヘッダは第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを参照する。
上記のように、各APSは、パラメータ・タイプとAPS IDの組み合わせによって識別される。例えば、各APSは、各APSに含まれるパラメータのタイプを示す事前定義された値に設定されたAPSパラメータ・タイプ・コード(例えば、aps_params_type)を含んでもよい。例えば、aps_params_typeコードは、それぞれ、第1のAPS NALユニットに対してALFタイプに設定されてもよく、第2のAPS NALユニットに対してスケーリング・リスト・タイプに設定されてもよく、第3のAPS NALユニットに対してLMCSタイプに設定されてもよい。さらに、各APSは、事前定義された範囲から選択されたAPS IDを含んでもよい。追加的に、各APSのパラメータ・タイプに基づいて、事前定義された範囲が判定されてもよい。このような事前定義された範囲は重複していてもよく、APS IDはAPSタイプに基づいて異なる順序で割り当てられてもよい。例えば、現在のAPSは、事前定義された範囲から選択された現在のAPS IDを含んでもよい。現在のAPS IDは、現在のAPSと同じタイプの以前のAPSと関連する以前のAPS IDと順番に関係する。また、現在のAPS IDは、異なるAPSタイプに対する順番が異なるため、現在のAPSとは異なる別の以前のAPSと関連する別の以前のAPS IDとは関係しない。ステップ809のスライス・ヘッダ及び/又はピクチャ・ヘッダは、関連性のあるAPSパラメータ・タイプ・コード及びAPS IDの組み合わせを用いることによって、第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを一意に参照し得る。
ステップ811で、ビットストリームはメモリに記憶される。要求があると、ビットストリームは、次に、復号器に向かって、例えば、送信機を介して通信され得る。
図9は、ALF APS 512、スケーリング・リストAPS 513、及び/又はLMCS APS 514などの複数のAPSタイプを用いることによって、ビットストリーム500などのビットストリームからビデオ・シーケンスを復号する例示的な方法900のフローチャートである。方法900は、方法100を実行するときに、コーデック・システム200、復号器400、及び/又はビデオ・コーディング・デバイス700などの復号器によって用いられてもよい。また、方法900は、異なるタイプのAPSが異なる値空間にしたがって割り当てられたAPS IDを用いるメカニズム600にしたがって割り当てられたAPS IDに基づいて、APSを参照してもよい。
方法900は、復号器が、例えば方法800の結果として、ビデオ・シーケンスを表すコーディングされたデータのビットストリームの受信を開始するときに開始してもよい。ステップ901で、ビットストリームは復号器で受信される。ビットストリームは、ALFタイプを含む第1のAPS NALユニット、スケーリング・リスト・タイプを含む第2のAPS NALユニット、及びLMCSタイプを含む第3のAPS NALユニットを含む。ビットストリームはまた、スライスを含み得る。第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットは、すべて非ビデオ・コーディング層(非VCL)NALユニットであってもよい。
ビットストリームは、さらにSPSを含んでもよい。ステップ902で、LMCS有効フラグの値がビットストリーム内のSPSから取得される。フラグは、LMCSが、スライスを含む符号化されたビデオ・シーケンスに対して有効であることを示すように設定され得る。このような場合、第3のAPS NALユニットからのLMCSパラメータは、フラグの値に基づいてステップ903で取得されてもよい。
ステップ903で、ALFパラメータは、第1のAPS NALユニットから取得される。さらに、スケーリング・リスト・パラメータは、第2のAPS NALユニットから取得される。追加的に、LMCSパラメータは、第3のAPS NALユニットから取得される。いくつかの例において、LMCSパラメータは、LMCS有効フラグが1の値のような特定の値に設定されているときにのみ取得される。APSのためのパラメータを取得することは、様々なメカニズムによって達成され得る。一例では、ビットストリームはまた、スライス・ヘッダを含む。スライスは、スライス・ヘッダを参照する。スライス・ヘッダは、第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを参照する。参照を用いて、スライスに関連性のあるパラメータを特定し、取得することができる。いくつかの例において、ビットストリームは、そのような参照を含み得るピクチャ・ヘッダも含む。スライスは、ピクチャの一部である。この例では、スライスを含むピクチャはピクチャ・ヘッダを参照し、ピクチャ・ヘッダは第1のAPS NALユニット、第2のAPS NALユニット、第3のAPS NALユニットを参照する。
上記のように、各APSは、パラメータ・タイプとAPS IDの組み合わせによって識別される。例えば、各APSは、各APSに含まれるパラメータのタイプを示す事前設定された値に設定されたAPSパラメータ・タイプ・コード(例えばaps_params_type)を含んでもよい。例えば、aps_params_typeコードは、それぞれ、第1のAPS NALユニットに対してALFタイプに設定されてもよく、第2のAPS NALユニットに対してスケーリング・リスト・タイプに設定されてもよく、第3のAPS NALユニットに対してLMCSタイプに設定されてもよい。さらに、各APSは、事前定義された範囲から選択されたAPS IDを含んでもよい。さらに、各APSのパラメータ・タイプに基づいて、事前定義された範囲が判定されてもよい。このような事前定義された範囲は重複していてもよく、APS IDはAPSのタイプに基づいて異なる順序で割り当てられてもよい。例えば、現在のAPSは、事前定義された範囲から選択された現在のAPS IDを含んでもよい。現在のAPS IDは、現在のAPSと同じタイプの以前のAPSに関連する以前のAPS IDと順番に関係する。また、現在のAPS IDは、異なるAPSタイプに対する順番が異なるため、現在のAPSとは異なる別の以前のAPSに関連する別のAPS IDとは関係しない。ステップ903のスライス・ヘッダ及び/又はピクチャ・ヘッダは、関連性のあるAPSパラメータ・タイプ・コードとAPS IDの組み合わせを用いることによって、第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを一意に参照し得る。
ステップ905で、ステップ903で取得されたALFパラメータ、スケーリング・リスト・パラメータ、及びLMCSパラメータを使用して、スライスが復号される。ステップ907で、復号器は、復号されたビデオ・シーケンスの一部として表示するためにスライスを転送することができる。
図10は、ALF APS 512、スケーリング・リストAPS 513、及び/又はLMCS APS 514などの複数のAPSタイプを用いることによって、ビットストリーム500などのビットストリーム内の画像のビデオ・シーケンスをコーディングするための例示的なシステム1000の概略図である。システム1000は、コーデック・システム200、符号化器300、復号器400、及び/又はビデオ・コーディング・デバイス700などの符号化器及び復号器によって実装され得る。さらに、システム1000は、方法100、800、900、及び/又はメカニズム600を実装するときに用いられてもよい。
システム1000は、ビデオ符号化器1002を含む。ビデオ符号化器1002は、スライスへの適用のためのALFパラメータ、スケーリング・リスト・パラメータ、及びLMCSパラメータを判定するための判定モジュール1001を含む。ビデオ符号化器1002は、さらに、符号化されたビデオ・シーケンスの一部として、ビットストリームにスライスを符号化するための符号化モジュール1003を含む。符号化モジュール1003は、さらに、ALFタイプを含む第1のAPS NALユニットにおいて、ALFパラメータをビットストリームに符号化するためのものである。符号化モジュール1003は、さらに、スケーリング・リスト・タイプを含む第2のAPS NALユニットにおいて、スケーリング・リスト・パラメータをビットストリームに符号化するためのものである。符号化モジュール1003は、さらに、LMCSタイプを含む第3のAPS NALユニットにおいて、LMCSパラメータをビットストリームに符号化するためのものである。ビデオ符号化器1002は、さらに、復号器に向かって通信するためのビットストリームを記憶するための記憶モジュール1005を含む。ビデオ符号化器1002は、さらに、第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを備えたビットストリームを送信して、対応するコーディング・ツール・パラメータに基づいて復号器でスライスを復号することをサポートするための送信モジュール1007を含む。ビデオ符号化器1002は、さらに、方法800のステップのいずれかを実行するように構成されてもよい。
システム1000はまた、ビデオ復号器1010を含む。ビデオ復号器1010は、ALFタイプを含む第1のAPS NALユニット、スケーリング・リスト・タイプを含む第2のAPS NALユニット、LMCSタイプを含む第3のAPS NALユニット、及びスライスを含むビットストリームを受信するための受信モジュール1011を含む。ビデオ復号器1010は、さらに、第1のAPS NALユニットからALFパラメータを取得するための取得モジュール1013を含む。取得モジュール1013は、さらに、第2のAPS NALユニットからスケーリング・リスト・パラメータを取得するためのものである。取得モジュール1013は、さらに、第3のAPS NALユニットからLMCSパラメータを取得するためのものである。ビデオ復号器1010は、さらに、ALFパラメータ、スケーリング・リスト・パラメータ、及びLMCSパラメータを使用して、スライスを復号するための復号モジュール1015を含む。ビデオ復号器1010は、さらに、復号されたビデオ・シーケンスの一部として表示するためにスライスを転送するための転送モジュール1017を含む。
ビデオ復号器1010は、さらに、方法900のステップのいずれかを実行するように構成されてもよい。
第1のコンポーネントは、第1のコンポーネントと第2のコンポーネントとの間のライン、トレース、又は別の媒体を除いて、介在するコンポーネントがない場合に、第2のコンポーネントに直接結合される。第1のコンポーネントは、第1のコンポーネントと第2のコンポーネントとの間にライン、トレース、又は他の媒体以外の介在するコンポーネントがある場合に、間接的に第2のコンポーネントに結合される。用語「カップリング」及びその変形は、直接結合及び間接結合の両方を含む。用語「約」の使用は、特に断らない限り、後続の数の±10%を含む範囲を意味する。
本明細書に記載された例示的な方法のステップは、必ずしも記載された順序で実行される必要はないこともまた理解されるべきであり、そのような方法のステップの順序は、単に例示的なものであることが理解されるべきである。同様に、追加の工程は、このような方法に含まれてもよく、特定の工程は、本開示の種々の実施形態と一致する方法において省略され得るか、又は組み合わされ得る。
本開示においていくつかの実施形態が提供されたが、開示されたシステム及び方法は、本開示の精神又は範囲から逸脱することなく、多くの他の特定の形態で実施され得ると理解されよう。本実施例は、例示的なものであり、限定的なものではないと考えられ、その意図は、本明細書に与えられた詳細に限定されるものではない。例えば、種々の要素又はコンポーネントは別のシステムに組み合わせ又は統合されてもよいし、特定の特徴が省略されるか、又は実装されてなくてもよい。
さらに、種々の実施形態において個別又は別個に記載及び図示された技術、システム、サブシステム、及び方法は、本開示の範囲から逸脱することなく、他のシステム、コンポーネント、技術、又は方法と組み合わせ又は統合されてもよい。変更、置換、及び改変の他の例は、当業者によって確認可能であり、本明細書に開示された精神及び範囲から逸脱することなく行われてもよい。
本開示は、一般に、ビデオ・コーディングに関連し、特に、ビデオ・コーディングにおいてビデオ・データを圧縮するために使用されるコーディング・ツール・パラメータの効率的なシグナリングに関連する。
比較的短いビデオを描写するために必要とされるビデオ・データの量でも、相当な量となる場合があり、データがストリーム化されるか、そうでなければ限られた帯域幅容量を有する通信ネットワークを介して通信される場合に、困難を生じることがある。したがって、ビデオ・データは、一般に、現代の電気通信ネットワークを介して通信される前に圧縮される。また、メモリ・リソースが限られることがあるため、ビデオが記憶デバイスに記憶される場合に、ビデオのサイズも問題となる可能性がある。ビデオ圧縮デバイスは、しばしば、伝送又は記憶の前にビデオ・データをコーディングするために送信元でソフトウェア及び/又はハードウェアを使用し、それによってデジタル・ビデオ画像を表すのに必要なデータ量を減少させる。そして、圧縮されたデータは、ビデオ・データを復号するビデオ解凍デバイスによって宛先で受信される。ネットワーク・リソースが限られており、より高いビデオ品質の要求が絶えず増加しているため、画像品質にほとんど又はまったく犠牲を払わずに圧縮比を改善する改良された圧縮及び解凍技術が望ましい。
一実施形態では、本開示は、復号器に実装される方法であって、復号器の受信機によって、コーディングされたスライスに関連する適応ループ・フィルタ(ALF)タイプを含む第1の適応パラメータ・セット(APS)ネットワーク抽象化層(NAL)ユニットを含むビットストリームを受信することと、復号器のプロセッサによって、第1のAPS NALユニットからALFパラメータを取得することと、プロセッサによって、ALFパラメータを使用してコーディングされたスライスを復号することと、プロセッサによって、復号されたビデオ・シーケンスの一部として表示するための復号結果を転送することと、を含む、方法を含む。APSは、複数のピクチャにわたる複数のスライスに関係するデータを維持するために使用される。本開示は、異なるタイプのデータを含む複数のタイプのAPSの概念を導入する。具体的には、ALF APSと呼ばれるタイプALFのAPSは、ALFパラメータを含むことができる。さらに、スケーリング・リストAPSと呼ばれるタイプ・スケーリング・リストのAPSは、スケーリング・リスト・パラメータを含むことができる。追加的に、クロマ・スケーリングによるルマ・マッピング(LMCS)APSと呼ばれるタイプLMCSのAPSは、LMCS/リシェイパー・パラメータを含むことができる。ALF APS、スケーリング・リストAPS、及びLMCS APSは、各々別個のNALタイプとしてコーディングされてもよく、したがって、異なるNALユニットに含まれてもよい。このように、1つのタイプのAPSにおけるデータ(例えば、ALFパラメータ)の変更は、変更しない他のタイプのデータ(例えば、LMCSパラメータ)の冗長なコーディングをもたらさない。したがって、複数のタイプのAPSを提供することは、コーディング効率を向上し、したがって、符号化器及び復号器におけるネットワーク・リソース、メモリ・リソース、及び/又は処理リソースの使用を減少させる。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、ビットストリームは、さらに、スケーリング・リスト・タイプを含む第2のAPS NALユニットを含み、方法は、さらに、プロセッサによって、第2のAPS NALユニットからスケーリング・リスト・パラメータを取得することを含み、コーディングされたスライスは、さらに、スケーリング・リスト・パラメータを使用して復号される、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、ビットストリームは、さらに、LMCSタイプを含む第3のAPS NALユニットを含み、方法は、さらに、プロセッサによって、第3のAPS NALユニットからLMCSパラメータを取得することを含み、コーディングされたスライスは、LMCSパラメータを使用して復号される、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、ビットストリームは、さらに、スライス・ヘッダを含み、コーディングされたスライスは、スライス・ヘッダを参照し、スライス・ヘッダは、第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを参照する、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、各APSは、各APSに含まれるパラメータのタイプを示す事前定義された値に設定されたAPSパラメータ・タイプ(aps_params_type)コードを含む、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、現在のAPSは、事前定義された範囲から選択された現在のAPS識別子(ID)を含み、現在のAPS IDは、現在のAPSと同じタイプの以前のAPSに関連する以前のAPS IDに関係し、現在のAPS IDは、現在のAPSとは異なるタイプの別の以前のAPSに関連する別の以前のAPS IDに関係しない、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、各APSは、事前定義された範囲から選択されたAPS IDを含み、事前定義された範囲は、各APSのパラメータ・タイプに基づいて判定される、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、各APSは、パラメータ・タイプとAPS IDの組み合わせによって識別される、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、ビットストリームは、さらに、LMCSがコーディングされたスライスを含む符号化されたビデオ・シーケンスに対して有効であることを示すために設定されたフラグを含むシーケンス・パラメータ・セット(SPS)を含み、第3のAPS NALユニットからのLMCSパラメータがフラグに基づいて取得される、ことを提供する。
一実施形態では、本開示は、符号化器に実装される方法であって、符号化器のプロセッサによって、符号化されたビデオ・シーケンスの一部として、コーディングされたスライスとしてスライスをビットストリームに符号化することと、プロセッサによって、コーディングされたスライスに関連する適応ループ・フィルタ(ALF)パラメータを判定することと、プロセッサによって、ALFタイプを含む第1の適応パラメータ・セット(APS)ネットワーク抽象化レイヤ(NAL)ユニットにおいて、ALFパラメータをビットストリームに符号化することと、プロセッサに結合されたメモリによって、復号器に向かって通信するためのビットストリームを記憶することと、を含む、方法を含む。APSは、複数のピクチャにわたる複数のスライスに関係するデータを維持するために使用される。本開示は、異なるタイプのデータを含む複数のタイプのAPSの概念を導入する。具体的には、ALF APSと呼ばれるタイプALFのAPSは、ALFパラメータを含むことができる。さらに、スケーリング・リストAPSと呼ばれるタイプ・スケーリング・リストのAPSは、スケーリング・リスト・パラメータを含むことができる。追加的に、クロマ・スケーリングによるルマ・マッピング(LMCS)APSと呼ばれるタイプLMCSのAPSは、LMCS/リシェイパー・パラメータを含むことができる。ALF APS、スケーリング・リストAPS、及びLMCS APSは、各々別個のNALタイプとしてコーディングされてもよく、したがって、異なるNALユニットに含まれる。このように、1つのタイプのAPSにおけるデータ(例えば、ALFパラメータ)の変更は、変更しない他のタイプのデータ(例えば、LMCSパラメータ)の冗長なコーディングをもたらさない。したがって、複数のタイプのAPSを提供することは、コーディング効率を向上し、したがって、符号化器及び復号器におけるネットワーク・リソース、メモリ・リソース、及び/又は処理リソースの使用を減少させる。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、プロセッサによって、コーディングされたスライスへの適用のためのスケーリング・リスト・パラメータを判定することと、プロセッサによって、スケーリング・リスト・タイプを含む第2のAPS NALユニットにおいて、スケーリング・リスト・パラメータをビットストリームに符号化することと、をさらに含む、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、プロセッサによって、コーディングされたスライスへの適用のためのLMCSパラメータを判定することと、プロセッサによって、LMCSタイプを含む第3のAPS NALユニットにおいて、LMCSパラメータをビットストリームに符号化することと、をさらに含む、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、プロセッサによって、スライス・ヘッダをビットストリームに符号化することをさらに含み、スライスは、スライス・ヘッダを参照し、スライス・ヘッダは、第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを参照する、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、各APSが、各APSに含まれるパラメータのタイプを示す事前定義された値に設定されたaps_params_typeコードを含む、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、現在のAPSは、事前定義された範囲から選択された現在のAPS IDを含み、現在のAPS IDは、現在のAPSと同じタイプの以前のAPSに関連する以前のAPS IDに関係し、現在のAPS IDは、現在のAPSとは異なるタイプの別の以前のAPSに関連する別の以前のAPS IDに関係しない、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、各APSは、事前定義された範囲から選択されたAPS IDを含み、事前定義された範囲は、各APSのパラメータ・タイプに基づいて判定される、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、各APSは、パラメータ・タイプとAPS IDの組み合わせによって識別される、ことを提供する。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、さらに、プロセッサによって、SPSをビットストリームに符号化することを含み、SPSは、LMCSがコーディングされたスライスを含む符号化されたビデオ・シーケンスに対して有効であることを示すように設定されたフラグを含む、ことを提供する。
一実施形態では、本開示は、プロセッサと、プロセッサに結合された受信機と、プロセッサに結合されたメモリと、プロセッサに結合された送信機とを含み、プロセッサ、受信機、メモリ、及び送信機は、上記の態様のいずれかに記載の方法を実行するように構成されている、ビデオ・コーディング・デバイスを含む。
一実施形態では、本開示は、ビデオ・コーディング・デバイスによって使用されるコンピュータ・プログラム製品を含む非一時的コンピュータ可読媒体であって、コンピュータ・プログラム製品は、プロセッサによって実行されるときに、ビデオ・コーディング・デバイスに上記の態様のいずれかに記載の方法を実行させるように、非一時的コンピュータ可読媒体上に記憶されたコンピュータ実行可能命令を含む、非一時的コンピュータ可読媒体を含む。
一実施形態では、本開示は、コーディングされたスライスに関連する、ALFタイプを含む第1のAPS NALユニット、スケーリング・リスト・タイプを含む第2のAPS NALユニット、及びLMCSタイプを含む第3のAPS NALユニットを含む、ビットストリームを受信するための受信手段と、第1のAPS NALユニットからALFパラメータを取得し、第2のAPS NALユニットからスケーリング・リスト・パラメータを取得し、第3のAPS NALユニットからLMCSパラメータを取得するための取得手段と、ALFパラメータ、スケーリング・リスト・パラメータ、及びLMCSパラメータを使用して、コーディングされたスライスを復号するための復号手段と、復号されたビデオ・シーケンスの一部として表示するためのスライスを転送するための転送手段と、を含む、復号器を含む。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、復号器は、さらに、前述の態様のいずれかの方法を実行するように構成されている、ことを提供する。
一実施形態では、本開示は、コーディングされたスライスに関連する、ALFパラメータ、スケーリング・リスト・パラメータ、及びLMCSパラメータを判定するための判定手段と、符号化されたビデオ・シーケンスの一部として、コーディングされたスライスとしてスライスをビットストリームに符号化し、ALFタイプを含む第1のAPS NALユニットにおいて、ALFパラメータをビットストリームに符号化し、スケーリング・リスト・タイプを含む第2のAPS NALユニットにおいて、スケーリング・リスト・パラメータをビットストリームに符号化し、LMCSタイプを含む第3のAPS NALユニットにおいて、LMCSパラメータをビットストリームに符号化するための符号化手段と、復号器に向かって通信するためのビットストリームを記憶する記憶手段と、を含む、符号化器を含む。
任意選択で、上記の態様のいずれかにおいて、態様の別の実装態様は、符号化器は、さらに、前述の態様のいずれかの方法を実行するように構成されている、ことを提供する。
明確にするために、前述の実施形態のいずれか1つを、他の前述の実施形態のいずれか1つ以上と組み合わせて、本開示の範囲内の新たな実施形態を作り出すことができる。
これら及び他の特徴は、添付の図面及び特許請求の範囲と併せて解釈される以下の詳細な説明から、より明確に理解されるであろう。
本開示をより完全に理解するために、添付の図面及び詳細な説明に関連して、ここで、以下の簡単な説明を参照し、同様の参照番号は同様の部分を表す。
ビデオ信号をコーディングする例示的な方法のフローチャートである。
ビデオ・コーディングのための例示的なコーディング及び復号(コーデック)システムの例の概略図である。
例示的なビデオ符号化器を示す概略図である。
例示的なビデオ復号器を示す概略図である。
異なるタイプのコーディング・ツール・パラメータを含む複数のタイプの適応パラメータ・セットを含む例示的なビットストリームを示す概略図である。
異なる値空間上の異なるAPSタイプにAPS識別子(ID)を割り当てるための例示的なメカニズムを示す概略図である。
例示的なビデオ・コーディング・デバイスの概略図である。
複数のAPSタイプを用いることによって、ビデオ・シーケンスをビットストリームに符号化する例示的な方法のフローチャートである。
複数のAPSタイプを用いることによって、ビットストリームからビデオ・シーケンスを復号する例示的な方法のフローチャートである。
複数のAPSタイプを用いることにより、画像のビデオ・シーケンスをビットストリームにコーディングするための例示的なシステムの概略図である。
最初に、1つ以上の実施形態の例示的な実装態様が以下に提供されるが、開示されたシステム及び/又は方法は、現在公知であるか存在するかを問わず、任意の数の技術を使用して実装されてもよいと理解されたい。本開示は、本明細書に図示および説明される例示の設計及び実装形態を含め、以下に示される例示的な実装態様、図面及び技術に決して限定されるべきではなく、添付の特許請求の範囲の範囲内で、それらの均等物の全範囲と共に修正されてもよい。
以下の略語は、本明細書において使用される。適応ループ・フィルタ(ALF)、適応パラメータ・セット(APS)、コーディング・ツリー・ブロック(CTB)、コーディング・ツリー・ユニット(CTU)、コーディング・ユニット(CU)、コーデット・ビデオ・シーケンス(CVS)、ハイパーテキスト転送プロトコル上の動的適応ストリーミング(DASH)、イントラ・ランダム・アクセス・ポイント(IRAP)、ジョイント・ビデオ・エキスパーツ・チーム(JVET)、モーション制約タイル・セット(MCTS)、最大転送ユニット(MTU)、ネットワーク抽象レイヤ(NAL)、ピクチャ・オーダ・カウント(POC)、ロー・バイト・シーケンス・ペイロード(RBSP)、サンプル適応オフセット(SAO)、シーケンス・パラメータ・セット(SPS)、バーサタイル・ビデオ・コーディング(VVC)、及びワーキング・ドラフト(WD)である。
多くのビデオ圧縮技術が、最小限のデータ損失でビデオ・ファイルのサイズを低減するために用いられ得る。例えば、ビデオ圧縮技術は、ビデオ・シーケンスにおけるデータ冗長性を低減又は除去するために、空間的(例えば、イントラ・ピクチャ)予測及び/又は時間的(例えば、インター・ピクチャ)予測を実行することを含むことができる。ブロック・ベースのビデオ・コーディングのために、ビデオスライス(例えば、ビデオ・ピクチャ又はビデオ・ピクチャの一部)は、ビデオ・ブロックにパーティション化されてもよく、これは、ツリーブロック、コーディング・ツリー・ブロック(CTB)、コーディング・ツリー・ユニット(CTU)、コーディング・ユニット(CU)、及び/又はコーディング・ノードとも呼ばれ得る。ピクチャのイントラ・コーディング(I)されたスライスにおけるビデオ・ブロックは、同じピクチャ内の隣接ブロックにおける参照サンプルに対して空間的予測を用いてコーディングされる。ピクチャのインター・コーディング一方向予測(P)又は双方向予測(B)スライスにおけるビデオ・ブロックは、同一ピクチャ内の隣接ブロックにおける参照サンプルに対して空間的予測を用いることによって、又は他の参照ピクチャ内の参照サンプルに対して時間的予測を用いることによってコーディングされ得る。ピクチャは、フレーム及び/又は画像と呼ばれることがあり、参照ピクチャは、参照フレーム及び/又は参照画像と呼ばれることがある。空間的又は時間的予測は、画像ブロックを表す予測ブロックをもたらす。残差データは、元の画像ブロックと予測ブロックとの間の画素差を表す。したがって、インター・コーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックと、コーディング・ブロックと予測ブロックとの間の差を示す残差データを指すモーション・ベクトルにしたがって、符号化される。イントラ・コーディングされたブロックは、イントラ・コーディング・モードと残差データにしたがって符号化される。さらなる圧縮のために、残差データは、画素ドメインから変換ドメインに変換されてもよい。これらは、残差変換係数をもたらし、これは、量子化され得る。量子化された変換係数は、最初に2次元アレイに配置され得る。量子化された変換係数は、変換係数の1次元ベクトルを生成するために走査され得る。エントロピー・コーディングは、さらにいっそう多くの圧縮を達成するために適用され得る。このようなビデオ圧縮技術が、以下により詳細に論じられる。
符号化されたビデオが正確に復号されることを確実にするために、ビデオは、対応するビデオ・コーディング規格にしたがって符号化され、復号される。ビデオ・コーディング規格は、国際電気通信連合(ITU)標準化部門(ITU-T)H.261、国際標準化機構/国際電気標準委員会(ISO/IEC)モーション・ピクチャ・エキスパーツ・グループ(MPEG)-1 Part 2、ITU-T H.262又はISO/IEC MPEG-2 Part 2、ITU-T H.263、ISO/IEC MPEG-4 Part 2、ITU-T H.264又はISO/IEC MPEG-4 Part 10 としても知られる高度ビデオ・コーディング(AVC)、及びITU-T H.265 又はMPEG-H Part 2 としても知られる高効率ビデオ・コーディング(HEVC)を含む。AVCは、スケーラブル・ビデオ・コーディング(SVC)、マルチビュー・ビデオ・コーディング(MVC)及びマルチビュー・ビデオ・コーディング・プラス・デプス(MVC+D)、及び3次元(3D)AVC (3D‐AVC)などの拡張を含む。HEVCは、スケーラブルHEVC (SHVC)、マルチビューHEVC (MV-HEVC)、3D HEVC (3D-HEVC)などの拡張を含む。ITU‐TとISO/IECのジョイント・ビデオ・エキスパーツ・チーム(JVET)は、バーサタイル・ビデオ・コーディング(VVC)と呼ばれるビデオ・コーディング規格の開発を始めている。VVCは、JVET‐M1001‐v5及びJVET‐M1002‐v1を含むワーキング・ドラフト(WD)に含まれ、これは、アルゴリズムの説明、VVC WDの符号化器側の説明、及び参照ソフトウェアを提供する。
ビデオ・シーケンスは、種々のコーディング・ツールを用いることによってコーディングされる。符号化器は、ビデオ・シーケンスが復号される場合に、最小限の品質損失で圧縮を向上させることを目的として、コーディング・ツールのためのパラメータを選択する。コーディング・ツールは、異なるスコープでビデオの異なる部分に関連し得る。例えば、いくつかのコーディング・ツールはビデオ・シーケンス・レベルで関連し、いくつかのコーディング・ツールはピクチャ・レベルで関連し、いくつかのコーディング・ツールはスライス・レベルで関連する。APSは、異なるピクチャに渡って複数のピクチャ及び/又は複数のスライスによって共有され得る情報をシグナリングするために用いられ得る。具体的には、APSは適応ループ・フィルタ(ALF)パラメータを搬送し得る。ALF情報は、種々の理由により、シーケンス・パラメータ・セット(SPS)におけるシーケンス・レベル、ピクチャ・パラメータ・セット(PPS)又はピクチャ・ヘッダにおけるピクチャ・レベル、又はタイル・グループ/スライス・ヘッダにおけるスライス・レベルでのシグナリングに適していないことがある。
ALF情報がSPSにおいてシグナリングされる場合、符号化器は、ALF情報が変化するたびに、新しいSPSと新しいIRAPピクチャを生成しなければならない。IRAPピクチャはコーディング効率を著しく低下させる。したがって、ALF情報をSPSに配置することは、頻繁なIRAPピクチャを用いない遅延の少ないアプリケーション環境では特に問題となる。また、ALF情報をSPSに含めると、SPSの帯域外伝送を無効にすることがある。帯域外伝送とは、ビデオ・ビットストリームとは異なるトランスポート・データ・フローにおける(例えば、メディア・ファイルのサンプル記述又はサンプル・エントリにおける、セッション記述プロトコル(SDP)ファイルにおける、など)対応するデータの伝送を指す。PPSにおいてALF情報をシグナリングすることもまた同様の理由から問題となることがある。具体的には、PPSにALF情報を含めると、PPSの帯域外伝送を無効にすることがある。ピクチャ・ヘッダ内のALF情報のシグナリングも問題があることがある。ピクチャ・ヘッダは、場合によっては用いないことがある。さらに、ALF情報が複数のピクチャに適用されることがある。このようにして、ピクチャ・ヘッダ内のALF情報のシグナリングは、冗長な情報伝送を引き起こし、したがって、帯域幅を浪費する。タイル・グループ/スライス・ヘッダ内のALF情報のシグナリングも、ALF情報が複数のピクチャ、したがって複数のスライス/タイル・グループに適用されることあるため、問題がある。したがって、スライス/タイル・グループ・ヘッダ内のALF情報をシグナリングすることは、冗長な情報伝送を引き起こし、したがって、帯域幅を浪費する。
上記に基づいて、APSが、ALFパラメータにシグナリングするために使用され得る。しかしながら、ビデオ・コーディング・システムは、ALFパラメータをシグナリングするためにのみAPSを用いてもよい。例示的なAPS構文とセマンティクスは、以下のとおりである:
adaption_parameter_set_idは、他の構文要素によって参照するためのAPSの識別子を提供する。APSは、ピクチャ間で共有することができ、ピクチャ内の異なるタイル・グループにおいて異なることができる。aps_extension_flagは、aps_extension_data_flag構文要素がAPS RBSP構文構造体に存在しないことを指定するために0に等しく設定される。aps_extension_flagは、aps_extension_data_flag構文要素がAPS RBSP構文構造体に存在することを指定するために1に等しく設定される。aps_extension_data_flagは、任意の値を有してもよい。aps_extension_data_flagの存在と値は、VVCで指定されたプロファイルへ復号器の準拠に影響を与えなくてもよい。VVCに準拠する復号器は、すべてのaps_extension_data_flag構文要素を無視してもよい。
ALFパラメータに関係する例示的なタイル・グループ・ヘッダ構文は、以下のとおりである。
tile_group_alf_enabled_flagは、適応ループ・フィルタが有効であることを指定するために1に等しく設定され、タイル・グループ内のルマ(Y)、青クロマ(Cb)、又は赤クロマ(Cr)色コンポーネントに適用されてもよい。tile_group_alf_enabled_flagは、タイル・グループ内のすべての色コンポーネントに対して適応ループ・フィルタが無効であることを指定するために0に等しく設定される。tile_group_aps_idは、タイル・グループによって参照されるAPSのadaptation_parameter_set_idを指定する。tile_group_aps_idと等しいadapdation_parameter_set_idを有するAPS NALユニットのTemporalIdは、コーディングされたタイル・グループNALユニットのTemporalId以下であるものとする。adaption_parameter_set_idの値が同じ複数のAPSが、同じピクチャの複数のタイル・グループによって参照される場合に、adapation_parameter_set_idの値が同じ複数のAPSは、同じ内容を含んでもよい。
リシェイパー・パラメータは、クロマ・スケーリングによるルマ・マッピング(LMCS)としても知られる、適応ループ内リシェイパービデオ・コーディング・ツールに用いられるパラメータである。例示的なSPSリシェイパー構文とセマンティクスは、以下のとおりである:
sps_reshaper_enabled_flagは、コーデット・ビデオ・シーケンス(CVS)においてリシェイパーが用いられることを指定するために1に等しく設定される。sps_reshaper_enabled_flagは、リシェイパーがCVSにおいて使用されないことを指定するために0に設定される。
例示的なタイル・グループ・ヘッダ/スライス・ヘッダ・リシェイパー構文及びセマンティクスは、以下のとおりである:
tile_group_reshaper_model_present_flagは、tile_group_reshaper_model()がタイル・グループ・ヘッダに存在することを指定するために1に等しく設定される。tile_group_reshaper_model_present_flagは、tile_group_reshaper_model()がタイル・グループ・ヘッダに存在しないことを指定するために0に等しく設定される。tile_group_reshaper_model_present_flagが存在しない場合、フラグは0に等しいと推定される。tile_group_reshaper_enabled_flagは、現在のタイル・グループに対してリシェイパーが有効であることを指定するために1に等しく設定される。tile_group_reshaper_enabled_flagは、現在のタイル・グループに対してreshaperが有効でないことを指定するために、0に設定される。tile_group_resharper_enable_flagが存在しない場合、フラグは0に等しいと推定される。tile_group_reshamer_chroma_residual_scale_flagは、現在のタイル・グループに対してクロマ残差スケーリングが有効であることを指定するために1に等しく設定される。tile_group_reshaper_chroma_residual_scale_flagは、現在のタイル・グループに対してクロマ残差スケーリングが有効でないことを指定するために0に設定される。tile_group_reshaper_chroma_residual_scale_flagが存在しない場合、フラグは0に等しいと推定される。
例示的なタイル・グループ・ヘッダ/スライス・ヘッダ・リシェイパー・モデル構文及びセマンティクスは、以下のとおりである:
reshape_model_min_bin_idxは、リシェイパー構成プロセスにおいて使用される最小ビン(又はピース)インデックスを指定する。reshape_model_min_bin_idxの値は、0からMaxBinIdxまで(両端を含む)の範囲でよい。MaxBinIdxの値は15に等しくてもよい。reshape_model_delta_max_bin_idxは、最大許容ビン(又はピース)インデックスMaxBinIdxから、リシェイパー構成プロセスにおいて使用される最大ビン・インデックスを引いたものを指定する。reshape_model_max_bin_idxの値は、MaxBinIdxからreshape_model_delta_max_bin_idxを引いたものに等しく設定される。reshaper_model_bin_delta_abs_cw_prec_minus1に1加えたものは、構文reshape_model_bin_delta_abs_CW[i]の表現に使用されるビット数を指定する。reshape_model_bin_delta_abs_CW[i] は、i番目のビンの絶対デルタ・コードワード値を指定する。
reshaper_model_bin_delta_sign_CW_flag[i]は、以下のとおりにreshape_model_bin_delta_abs_CW[i]の符号を指定する。reshape_model_bin_delta_sign_CW_flag[i]が0に等しい場合、対応する変数RspDeltaCW[i]は正の値である。そうでなければ(例えば、reshape_model_bin_delta_sign_CW_flag[i]が0に等しくない)、対応する変数RspDeltaCW[i]は負の値である。reshape_model_bin_delta_sign_CW_flag[i]が存在しない場合に、フラグは0に等しいと推定される。変数RspDeltaCW[i]は、(1 - 2 * reshape_model_bin_delta_sign_CW[i]) * reshape_model_bin_delta_abs_CW[i]に等しく設定される。
変数RspCW[i]は以下のとおりに導出される。変数OrgCWは、(1 << BitDepthY) / (MaxBinIdx + 1)に等しく設定される。reshaper_model_min_bin_idx < = i <= reshaper _model_max_bin_idxである場合、RspCW[i] = OrgCW + RspDeltaCW[i]である。さもなければ、RspCW[i] = 0である。RspCW [i]の値は、BitDepthYの値が10に等しい場合、32~2 * OrgCW-1の範囲であるものとする。0~MaxBinIdx + 1の範囲(両端を含む)のiを有する変数InputPivot[i]は、以下のとおりに導出される。InputPivot[i] = i * OrgCWである。0~MaxBinIdx +1の範囲(両端を含む)のiを有する変数ReshapePivot[i]、並びに0~MaxBinIdxの範囲(両端を含む)のiを有する変数ScaleCoef[i]及びInvScaleCoeff[i]は、以下のとおりに導出される:
0~MaxBinIdxの範囲(両端を含む)のiを有する変数ChromaScaleCoef[i]は、以下のとおりに導出される:
リシェイパー・パラメータの特性は、以下のとおりに特徴付けられ得る。tile_group_reshamer_model()構文構造体に含まれるリシェイパー・パラメータのセットのサイズは、通常、およそ60~100ビットである。リシェイパー・モデルは、通常、符号化器によって約1秒に1回更新され、多くのフレームを含む。さらに、更新されたリシェイパー・モデルのパラメータは、リシェイパー・モデルの以前のインスタンスのパラメータと全く同じである可能性は低い。
前述のビデオ・コーディング・システムは、特定の問題を含む。第一に、このようなシステムは、APSにおいてALFパラメータを搬送するためだけに構成されている。さらに、リシェイパー/LMCSパラメータは、複数のピクチャによって共有される可能性があり、多くのバリエーションを含む可能性がある。
本明細書に開示されているのは、向上したコーディング効率をサポートするためにAPSを修正するための種々のメカニズムである。第1の例では、複数のタイプのAPSが開示される。具体的には、タイプALFのAPSは、ALF APSと呼ばれ、ALFパラメータを含むことができる。さらに、タイプ・スケーリング・リストのAPSは、スケーリング・リストAPSと呼ばれ、スケーリング・リスト・パラメータを含むことができる。追加的に、タイプLMCSのAPSは、LMCS APSと呼ばれ、LMCS/リシェイパー・パラメータを含むことができる。ALF APS、スケーリング・リストAPS、及びLMCS APSは、各々別のNALタイプとしてコーディングされてもよく、したがって、異なるNALユニットに含まれる。このように、あるタイプのAPSにおけるデータ(例えば、ALFパラメータ)への変更は、変更しない他のタイプのデータ(例えば、LMCSパラメータ)の冗長なコーディングをもたらさない。したがって、複数のタイプのAPSを提供することは、コーディング効率を向上させ、したがって、符号化器及び復号器におけるネットワーク・リソース、メモリ・リソース、及び/又は処理リソースの使用を減少させる。
第2の例では、各APSは、APS識別子(ID)を含む。さらに、各APSタイプは、対応するAPS IDのための別個の値空間を含む。このような値空間は重複することができる。したがって、第1のタイプのAPS(例えば、ALF APS)は、第2のタイプのAPS(例えば、LMCS APS)と同じAPS IDを含むことができる。これは、APSパラメータ・タイプとAPS IDの組み合わせによって各APSを識別することによって達成される。各APSタイプが異なる値空間を含むことを可能にすることによって、コーデックはIDの競合をAPSタイプにわたってチェックする必要がない。さらに、値空間が重複することを可能にすることによって、コーデックは、より大きなID値を用いることを回避することができ、ビット節約をもたらす。したがって、異なるタイプのAPSに対して別個の重複値空間を用いることは、コーディング効率を向上させ、したがって、符号化器及び復号器でのネットワーク・リソース、メモリ・リソース、及び/又は処理リソースの使用を減少させる。
第3の例では、LMCSパラメータがLMCS APSに含まれる。上記のように、LMCS/リシェイパー・パラメータは約1秒に1回変化し得る。ビデオ・シーケンスは、1秒間に30~60枚のピクチャを表示し得る。したがって、LMCSパラメータは、30~60フレームに対して変化しなくてもよい。LMCSパラメータをLMCS APSに含めることは、LMCSパラメータの冗長コーディングを著しく低減する。スライス・ヘッダ及び/又はスライスに関連付けられたピクチャ・ヘッダは、関連するLMCS APSを参照することができる。このようにして、LMCSパラメータは、スライスに対するLMCSパラメータが変化するときにのみ符号化される。したがって、LMCSパラメータを符号化するためにLMCS APSを使用することは、コーディング効率を向上させ、したがって、符号化器及び復号器におけるネットワーク・リソース、メモリ・リソース、及び/又は処理リソースの使用を低減する。
図1は、ビデオ信号をコーディングする例示的な動作方法100のフローチャートである。具体的には、ビデオ信号は符号化器で符号化される。符号化プロセスは、ビデオ・ファイル・サイズを縮小させるために種々のメカニズムを用いることによってビデオ信号を圧縮する。より小さいファイル・サイズは、圧縮されたビデオ・ファイルをユーザに送信することを可能にする、一方、関連する帯域幅オーバーヘッドを減少させる。復号器は、次に、圧縮されたビデオ・ファイルを復号して、エンド・ユーザに表示するために元のビデオ信号を再構成する。復号プロセスは、一般に、符号化プロセスによく似ており、復号器がビデオ信号を一貫して再構成することを可能にする。
ステップ101で、ビデオ信号が符号化器に入力される。例えば、ビデオ信号はメモリに記憶された非圧縮ビデオ・ファイルであってもよい。別の例として、ビデオ・ファイルは、ビデオ・カメラなどのビデオ・キャプチャ・デバイスによってキャプチャされ、ビデオのライブ・ストリーミングをサポートするように符号化されてもよい。ビデオ・ファイルは、オーディオ・コンポーネント及びビデオ・コンポーネントの両方を含むことができる。ビデオ・コンポーネントは、シーケンスで視聴されるときにモーションの視覚的な印象を与える一連の画像フレームを含む。フレームは、光の観点から表現されて本明細書ではルマ・コンポーネント(又はルマ・サンプル)と呼ばれ、また、色の観点から表現されてクロマ・コンポーネント(又はカラーサンプル)と呼ばれる画素を含む。例によっては、フレームはまた、3次元視聴をサポートするための深度値を含んでもよい。
ステップ103で、ビデオはブロックにパーティション化される。パーティション化は、圧縮のために、各フレーム内のピクセルを正方形及び/又は長方形のブロックにサブ分割することを含む。例えば、高効率ビデオ・コーディング(HEVC)(H.265及びMPEG-H Part 2としても知られる)において、フレームは、最初に、事前定義されたサイズ(例えば、64画素×64画素)のブロックである、コーディング・ツリー・ユニット(CTU)に分割され得る。CTUは、ルマ及びクロマ・サンプルの両方を含む。コーディング・ツリーが用いられて、CTUをブロックに分割し、次に、さらなる符号化をサポートする設定が達成されるまで、ブロックを再帰的にサブ分割してもよい。例えば、フレームのルマ・コンポーネントは、個々のブロックが比較的均一な照明値を含むまで、サブ分割され得る。さらに、フレームのクロマ・コンポーネントは、個々のブロックが比較的均一な色値を含むまで、サブ分割され得る。したがって、パーティション化メカニズムはビデオフレームの内容に依存して変動する。
ステップ105で、ステップ103でパーティション化された画像ブロックを圧縮するために、様々な圧縮メカニズムが用いられる。例えば、インター予測及び/又はイントラ予測が用いられてもよい。インター予測は、共通のシーンにおいて物体が連続したフレームに現れる傾向があるという事実を利用するように設計されている。したがって、参照フレーム内の物体を描写するブロックは、隣接するフレーム内に繰り返し記述される必要はない。具体的には、テーブルのような物体は、複数のフレームにわたって一定の位置に留まることがある。したがって、テーブルは一度記述され、隣接するフレームは参照フレームに戻って参照することができる。パターン・マッチング・メカニズムが用いられて、複数フレームにわたって物体をマッチングすることができる。さらに、移動する物体は、例えば、物体の動き又はカメラの動きのために、複数のフレームにわたって表されることがある。特定の例として、ビデオは、複数のフレームにわたって画面を横切って移動する自動車を示すことができる。このような動きを記述するために、モーション・ベクトルが用いられ得る。モーション・ベクトルは、フレーム内の物体の座標から参照フレーム内の物体の座標へのオフセットを提供する2次元ベクトルである。したがって、インター予測は、参照フレーム内の対応するブロックからのオフセットを示すモーション・ベクトルのセットとして、現在のフレーム内の画像ブロックを符号化することができる。
イントラ予測は、共通フレーム内のブロックを符号化する。イントラ予測は、ルマ・コンポーネントおよびクロマ・コンポーネントがフレームに集中する傾向があるという事実を利用する。たとえば、ツリーの一部における緑色のパッチは、同様の緑色のパッチに隣接して位置する傾向がある。イントラ予測は、多方向予測モード(例えば、HEVCにおける33)、プラナー・モード、及びダイレクト・カレント(DC)モードを用いる。方向モードは、現在のブロックが、対応する方向の隣接ブロックのサンプルと類似/同じであることを示す。プラナー・モードは、行/列に沿った(例えば、平面)一連のブロックが、行の端における隣接ブロックに基づいて補間され得ることを示す。プラナー・モードは、事実上、値を変化させる際に比較的一定の傾きを用いることによって、行/列を横切る光/色の滑らかな遷移を示す。DCモードは境界平滑化のために使用され、ブロックが方向予測モードの角度方向に関連する全ての隣接ブロックのサンプルに関連する平均値と類似/同じであることを示す。したがって、イントラ予測ブロックは、実際の値の代わりに、様々な関係予測モード値として画像ブロックを表わすことができる。さらに、インター予測ブロックは、実際の値の代わりに、モーション・ベクトル値として画像ブロックを表すことができる。いずれの場合も、予測ブロックは、場合によっては、画像ブロックを正確に表わさないことがある。差異はすべて残差ブロックに記憶される。変換は、ファイルをさらに圧縮するために、残差ブロックに適用され得る。
ステップ107において、種々のフィルタリング技術が適用され得る。HEVCでは、フィルタは、ループ内フィルタリング・スキームにしたがって適用される。上述のブロック・ベース予測は、復号器においてブロック状画像の生成をもたらし得る。さらに、ブロック・ベース予測スキームは、ブロックを符号化し、次に、後で参照ブロックとして使用するために、符号化されたブロックを再構成し得る。ループ内フィルタリング・スキームは、ノイズ抑制フィルタ、ブロック解除フィルタ、適応ループ・フィルタ、及びサンプル適応オフセット(SAO)フィルタをブロック/フレームに反復的に適用する。これらのフィルタは、符号化されたファイルが正確に再構成され得るように、そのようなブロッキング・アーチファクトを軽減する。さらに、これらのフィルタは、再構成された参照ブロック内のアーチファクトを軽減し、アーチファクトが、再構成された参照ブロックに基づいて符号化される後続ブロックにおいて追加のアーチファクトを生成する可能性が低くなるようにする。
ビデオ信号が分割され、圧縮され、フィルタリングされると、得られたデータはステップ109でビットストリームに符号化される。ビットストリームは、復号器での適切なビデオ信号再構成をサポートするのに望ましい任意のシグナリング・データと同様に、上述のデータを含む。例えば、このようなデータは、パーティション・データ、予測データ、残差ブロック、及び復号器にコーディング命令を提供する種々のフラグを含んでもよい。ビットストリームは、要求があると、復号器に向かって伝送するためにメモリに記憶され得る。ビットストリームはまた、複数の復号器に向かってブロードキャスト及び/又はマルチキャストされてもよい。ビットストリームの生成は反復プロセスである。したがって、ステップ101、103、105、107、及び109は、多くのフレーム及びブロックにわたって連続的に及び/又は同時に発生し得る。図1に示された順序は、明確さと議論の容易さのために提示されており、ビデオ・コーディング・プロセスを特定の順序に限定することを意図していない。
復号器は、ビットストリームを受信し、ステップ111において、復号処理を開始する。具体的には、復号器は、ビットストリームを対応する構文及びビデオ・データに変換するエントロピー復号方式を用いる。復号器は、ステップ111において、ビットストリームからの構文データを用いて、フレームに対するパーティションを判定する。パーティション化は、ステップ103におけるブロック・パーティション化の結果と一致すべきである。ステップ111において用いられるようなエントロピー符号化/復号が、これから説明される。符号化器は、入力画像内の値の空間的位置付けに基づいていくつかの可能な選択肢からブロック・パーティション化スキームを選択するなど、圧縮プロセスの間に多くの選択を行う。厳密な選択肢をシグナリングすることは、多数のビンを用いることがある。本明細書で使用される場合、ビンは、変数として扱われるバイナリ値(例えば、コンテキストに応じて変動し得るビット値)である。エントロピー・コーディングは、符号化器が、許容可能なオプションのセットを残して、特定の場合に明らかに実行不可能な任意のオプションを捨てることを可能にする。各許容可能なオプションには、次に、コード・ワードが割り当てられる。コード・ワードの長さは、許容可能なオプションの数(例えば、2つのオプションに対して1つのビン、3つ~4つのオプションに対して2つのビンなど)に基づく。次に、符号化器は、選択されたオプションに対してコード・ワードを符号化する。このスキームは、コード・ワードが、可能なすべてのオプションの潜在的に大きなセットからの選択を一意に示すのとは対照的に、許容可能なオプションの小さなサブセットからの選択を一意に示すために望まれるだけ大きいので、コード・ワードのサイズを縮小させる。復号器は、次に、符号化器と同様の方法で許容可能なオプションのセットを判定することによって、選択を復号する。許容可能なオプションのセットを判定することによって、復号器は、コード・ワードを読み取り、符号化器によってなされた選択を判定することができる。
ステップ113で、復号器はブロック復号を実行する。具体的には、復号器は、残差ブロックを生成するために逆変換を用いる。そして、復号器は、パーティション化にしたがって画像ブロックを再構成するために、残差ブロック及び対応する予測ブロックを用いる。予測ブロックは、ステップ105において符号化器で生成された、イントラ予測ブロックとインター予測ブロックの両方を含み得る。再構成された画像ブロックは、次に、ステップ111で判定されたパーティション化・データにしたがって、再構成されたビデオ信号のフレーム内に位置付けられる。ステップ113のための構文はまた、上述のようにエントロピー・コーディングを介してビットストリームにおいてシグナリングされてもよい。
ステップ115において、符号化器におけるステップ107と同様の方法で、再構成されたビデオ信号のフレームに対してフィルタリングが実行される。例えば、ノイズ抑制フィルタ、ブロック解除フィルタ、適応ループ・フィルタ、及びSAOフィルタがフレームに適用されて、ブロッキング・アーチファクトを除去してもよい。フレームがフィルタリングされると、ビデオ信号は、ステップ117において、ユーザによる視聴のためにディスプレイに出力され得る。
図2は、ビデオ・コーディングのための例示的なコーディング及び復号(コーデック)システム200の概略図である。具体的には、コーデック・システム200は、動作方法100の実装態様をサポートするための機能性を提供する。コーデック・システム200は、符号化器と復号器の両方で用いられるコンポーネントを描画するために一般化されている。コーデック・システム200は、動作方法100のステップ101及び103に関して論じられたように、ビデオ信号を受信及びパーティション化し、パーティション化ビデオ信号201を得る。コーデック・システム200は、次に、方法100のステップ105、107、及び109に関して論じられたように、符号化器として作用するときに、パーティション化ビデオ信号201をコーディングされたビットストリームに圧縮する。復号器として作用する場合、コーデック・システム200は、動作方法100におけるステップ111、113、115、及び117に関して説明したように、ビットストリームからの出力ビデオ信号を生成する。コーデック・システム200は、一般コーダ制御コンポーネント211と、変換スケーリング及び量子化コンポーネント213と、イントラ・ピクチャ推定コンポーネント215と、イントラ・ピクチャ予測コンポーネント217と、モーション補償コンポーネント219と、モーション推定コンポーネント221と、スケーリング及び逆変換コンポーネント229と、フィルタ制御分析コンポーネント227と、ループ内フィルタ・コンポーネント225と、復号ピクチャ・バッファ・コンポーネント223と、ヘッダ・フォーマッティング及びコンテキスト適応二進算術コーディング(CABAC)コンポーネント231と、を含む。そのようなコンポーネントは、示されるように結合される。図2において、黒線は符号化/復号されるデータの動きを示し、破線は他のコンポーネントの動作を制御する制御データの動きを示す。コーデック・システム200のコンポーネントはすべて、符号化器内に存在し得る。復号器は、コーデック・システム200のコンポーネントのサブセットを含み得る。例えば、復号器は、イントラ・ピクチャ予測コンポーネント217、モーション補償コンポーネント219、スケーリング及び逆変換コンポーネント229、ループ内フィルタ・コンポーネント225、及び復号ピクチャ・バッファ・コンポーネント223を含んでもよい。これらのコンポーネントが、これから説明される。
パーティション化ビデオ信号201は、キャプチャされたビデオ・シーケンスであり、これは、コーディング・ツリーによって画素のブロックにパーティション化されている。コーディング・ツリーは、画素のブロックを画素のより小さなブロックにサブ分割するために、種々の分割モードを用いる。これらのブロックは、次に、さらに、より小さなブロックにサブ分割され得る。ブロックは、コーディング・ツリー上のノードと呼ばれることがある。より大きな親ノードは、より小さな子ノードに分割される。ノードがサブ分割される回数は、ノード/コーディング・ツリーの深度と呼ばれる。場合によっては、分割されたブロックがコーディング・ユニット(CU)に含められ得る。例えば、CUは、対応するCUの構文命令と共に、ルマ・ブロック、赤色差クロマ(Cr)ブロック、及び青色差クロマ(Cr)ブロックを含むCTUのサブ部分とすることができる。分割モードは、ノードを、用いられる分割モードに依存して、異なる形状のそれぞれ2つ、3つ、又は4つの子ノードにパーティション化するために用いられるバイナリ・ツリー(BT)、トリプル・ツリー(TT)、及びクワッド・ツリー(QT)を含み得る。パーティション化ビデオ信号201は、圧縮のために、一般コーダ制御コンポーネント211、変換スケーリング及び量子化コンポーネント213、イントラ・ピクチャ推定コンポーネント215、フィルタ制御分析コンポーネント227、及びモーション推定コンポーネント221に転送される。
一般コーダ制御コンポーネント211は、アプリケーションの制約にしたがって、ビデオ・シーケンスの画像をビットストリームにコーディングすることに関係する決定を行うように構成されている。例えば、一般コーダ制御コンポーネント211は、ビット・レート/ビットストリーム・サイズ対再構成品質の最適化を管理する。そのような決定は、記憶領域/帯域幅の可用性及び画像解像度要求に基づいて行われ得る。一般コーダ制御コンポーネント211はまた、バッファのアンダーラン及びオーバーランの問題を緩和するために、伝送速度に照らしてバッファの利用を管理する。これらの問題を管理するために、一般コーダ制御コンポーネント211は、他のコンポーネントによるパーティション化、予測、及びフィルタリングを管理する。例えば、一般コーダ制御コンポーネント211は、解像度を向上させ、帯域幅の使用を向上させるために圧縮の複雑さを動的に向上させることができ、又は、解像度及び帯域幅の使用を減少させるために圧縮の複雑さを減少させてもよい。したがって、一般コーダ制御コンポーネント211は、ビット・レートの懸念とビデオ信号再構成品質とのバランスを取るために、コーデック・システム200の他のコンポーネントを制御する。一般コーダ制御コンポーネント211は、他のコンポーネントの動作を制御する制御データを生成する。制御データはまた、復号器で復号するためのパラメータをシグナリングするために、ビットストリームで符号化されるヘッダ・フォーマッティング及びCABACコンポーネント231に転送される。
パーティション化ビデオ信号201はまた、インター予測のために、モーション推定コンポーネント221及びモーション補償コンポーネント219にも送信される。パーティション化ビデオ信号201のフレーム又はスライスは、複数のビデオ・ブロックに分割され得る。モーション推定コンポーネント221及びモーション補償コンポーネント219は、時間的予測を提供するために、1つ以上の参照フレーム内の1つ以上のブロックに対して受信されたビデオ・ブロックのインター予測コーディングを実行する。コーデック・システム200は、例えばビデオ・データの各ブロックに対して適切なコーディング・モードを選択するために、複数のコーディング・パスを実行し得る。
モーション推定コンポーネント221及びモーション補償コンポーネント219は、高度に統合されてもよいが、概念的な目的のために別個に図示されている。モーション推定コンポーネント221によって実行されるモーション推定は、モーション・ベクトルを生成するプロセスであり、これは、ビデオ・ブロックのモーションを推定する。モーション・ベクトルは、例えば、予測ブロックに対するコーディングされた物体の変位を示してもよい。予測ブロックは、画素差に関して、コーディングされるブロックに厳密に一致することが見出されるブロックである。予測ブロックは、参照ブロックとも呼ばれることがある。このような画素差は、絶対差(SAD)、二乗差(SSD)、又は他の差分メトリックの和によって判定され得る。HEVCは、CTU、コーディング・ツリー・ブロック(CTB)、及びCUを含むいくつかのコーディングされた物体を使用する。例えば、CTUはCTBに分割され、CTBは、次に、CUに含めるためにCBに分割され得る。CUは、予測データを含む予測ユニット(PU)及び/又はCUの変換残差データを含む変換ユニット(TU)として符号化され得る。モーション推定コンポーネント221は、レート歪み最適化プロセスの一部としてレート歪み分析を用いて、モーション・ベクトル、PU、及びTUを生成する。例えば、モーション推定コンポーネント221は、現在のブロック/フレームに対する複数の参照ブロック、複数のモーション・ベクトルなどを判定し、最良のレート歪み特徴を有する参照ブロック、モーション・ベクトルなどを選択してもよい。最良のレート歪み特徴は、ビデオ再構成の品質(例えば、圧縮によるデータ損失量)とコーディング効率(例えば、最終符号化のサイズ)の両方のバランスをとる。
いくつかの例において、コーデック・システム200は、復号ピクチャ・バッファ・コンポーネント223に記憶された参照ピクチャのサブ整数画素位置の値を計算してもよい。例えば、ビデオ・コーデック・システム200は、参照ピクチャの1/4画素位置、1/8画素位置、又は他の分数の画素位置の値を補間してもよい。したがって、モーション推定コンポーネント221は、全画素位置及び分数の画素位置に対するモーション・サーチを実行し、分数の画素精度を有するモーション・ベクトルを出力することができる。モーション推定コンポーネント221は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インター・コーディングされたスライス内のビデオ・ブロックのPUのモーション・ベクトルを計算する。モーション推定コンポーネント221は、符号化のために計算されたモーション・ベクトルを、ヘッダ・フォーマッティング及びCABACコンポーネント231にモーション・データとして出力し、モーションをモーション補償コンポーネント219に出力する。
モーション補償コンポーネント219によって実行されるモーション補償は、モーション推定コンポーネント221によって判定されたモーション・ベクトルに基づいて予測ブロックをフェッチ又は生成することを伴ってもよい。また、いくつかの例において、動作推定コンポーネント221及び動作補償コンポーネント219が機能的に統合されてもよい。現在のビデオ・ブロックのPUに対するモーション・ベクトルを受信すると、モーション補償コンポーネント219は、モーション・ベクトルが指す予測ブロックの位置特定をし得る。現在コーディングされているビデオ・ブロックの画素値から予測ブロックの画素値を減算することによって、残差ビデオ・ブロックが、次に形成され、画素差値を形成する。一般に、モーション推定コンポーネント221はルマ・コンポーネントに対するモーション推定を実行し、モーション補償コンポーネント219はクロマ・コンポーネントとルマ・コンポーネントの両方に対するルマ・コンポーネントに基づいて計算されたモーション・ベクトルを使用する。予測ブロック及び残差ブロックは、変換スケーリング及び量子化コンポーネント213へ転送される。
パーティション化ビデオ信号201もまた、イントラ・ピクチャ推定コンポーネント215及びイントラ・ピクチャ予測コンポーネント217に送信される。モーション推定コンポーネント221及び動き補償コンポーネント219と同様に、イントラ・ピクチャ推定コンポーネント215及びイントラ・ピクチャ予測コンポーネント217は、高度に統合されてもよいが、概念的な目的のために別個に図示される。イントラ・ピクチャ推定コンポーネント215及びイントラ・ピクチャ予測コンポーネント217は、上述のしたフレーム間のモーション推定コンポーネント221及びモーション補償コンポーネント219によって実行されるインター予測の代わりに、現在のフレーム内のブロックに対する現在のブロックをイントラ予測する。特に、イントラ・ピクチャ推定コンポーネント215は、現在のブロックを符号化するために使用するイントラ予測モードを判定する。いくつかの例において、イントラ・ピクチャ推定コンポーネント215は、複数のテストされたイントラ予測モードから現在のブロックを符号化するために、適切なイントラ予測モードを選択する。選択されたイントラ予測モードが、次に、符号化のためにヘッダ・フォーマッティング及びCABACコンポーネント231に転送される。
例えば、イントラ・ピクチャ推定コンポーネント215は、種々のテストされたイントラ予測モードについてレート歪み分析を用いてレート歪み値を計算し、テストされたモードの中で最良のレート歪み特徴を有するイントラ予測モードを選択する。レート歪み分析は、一般に、符号化ブロックを生成するために使用されるビット・レート(例えば、ビット数)、及び符号化ブロックを生成するために符号化された元の非符号化ブロックと符号化ブロックとの間の歪み(又はエラー)の量を判定する。イントラ・ピクチャ推定コンポーネント215は、種々の符号化ブロックに対する歪み及びレートから比を計算し、どのイントラ予測モードがブロックに対する最良のレート歪み値を呈するかを判定する。追加的に、イントラ・ピクチャ推定コンポーネント215は、レート歪み最適化(RDO)に基づく深度モデリング・モード(DMM)を用いて深度マップの深度ブロックをコーディングするように構成され得る。
イントラ・ピクチャ予測コンポーネント217は、符号化器に実装された場合に、イントラ・ピクチャ予測コンポーネント215によって判定された選択されたイントラ予測モードに基づいて予測ブロックから残差ブロックを生成するか、又は復号器に実装された場合に、ビットストリームから残差ブロックを読み取ることができる。残差ブロックは、行列として表される予測ブロックと元のブロックとの間の値の差を含む。残差ブロックは、次に、変換スケーリング及び量子化コンポーネント213に転送される。イントラ・ピクチャ推定コンポーネント215及びイントラ・ピクチャ予測コンポーネント217は、ルマ・コンポーネント及びクロマ・コンポーネントの両方に対して動作し得る。
変換スケーリング及び量子化コンポーネント213は、残差ブロックをさらに圧縮するように構成されている。変換スケーリング及び量子化コンポーネント213は、離散コサイン変換(DCT)、離散サイン変換(DST)、又は概念的に類似した変換などの変換を残差ブロックに適用し、残差変換係数値を含むビデオ・ブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換、又は他のタイプの変換もまた、使用され得る。変換は、残差情報を画素値ドメインから変換ドメイン、例えば周波数ドメインに変換し得る。変換スケーリング及び量子化コンポーネント213はまた、変換された残差情報を、例えば周波数に基づいてスケーリングするように構成されている。そのようなスケーリングは、異なる周波数情報が異なる粒度で量子化されるように、残差情報にスケールファクタを適用することを含み、これは、再構成されたビデオの最終的な視覚的品質に影響を及ぼし得る。変換スケーリング及び量子化コンポーネント213はまた、ビット・レートをさらに低下させるために変換係数を量子化するように構成されている。量子化プロセスは、係数のいくつか又は全てに関連するビット深度を減少させ得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例において、変換スケーリング及び量子化コンポーネント213は、次に、量子化された変換係数を含む行列の走査を実行してもよい。量子化された変換係数は、ヘッダ・フォーマッティング及びCABACコンポーネント231に転送され、ビットストリームに符号化される。
スケーリング及び逆変換コンポーネント229は、モーション推定をサポートするために変換スケーリング及び量子化コンポーネント213の逆演算を適用する。スケーリング及び逆変換コンポーネント229は、逆スケーリング、変換、及び/又は量子化を適用して、画素ドメインにおける残差ブロックを再構成し、例えば、後に別の現在のブロックの予測ブロックとなり得る参照ブロックとして使用する。モーション推定コンポーネント221及び/又はモーション補償コンポーネント219は、後のブロック/フレームのモーション推定に使用するために、残差ブロックを対応する予測ブロックに戻すことによって参照ブロックを計算することができる。フィルタは、スケーリング、量子化、及び変換の間に生成されるアーチファクトを軽減するために、再構成された参照ブロックに適用される。そうでなければ、このようなアーチファクトは、後続のブロックが予測された場合に、不正確な予測を引き起こす(及び追加のアーチファクトを作成する)可能性がある。
フィルタ制御分析コンポーネント227及びループ内フィルタ・コンポーネント225は、残差ブロック及び/又は再構成された画像ブロックにフィルタを適用する。例えば、スケーリング及び逆変換コンポーネント229からの変換された残差ブロックを、イントラ・ピクチャ予測コンポーネント217及び/又はモーション補償コンポーネント219からの対応する予測ブロックと組み合わせて、元の画像ブロックを再構成してもよい。フィルタは、次に、再構成された画像ブロックに適用され得る。いくつかの例において、フィルタは、代わりに、残差ブロックに適用されてもよい。図2の他のコンポーネントと同様に、フィルタ制御分析コンポーネント227及びループ内フィルタ・コンポーネント225は、高度に統合されており、一緒に実装されてもよいが、概念的な目的のために別個に描画されている。再構成された参照ブロックに適用されるフィルタは、特定の空間領域に適用され、そのようなフィルタが適用される方法を調整するために複数のパラメータを含む。フィルタ制御分析コンポーネント227は、再構成された参照ブロックを分析して、そのようなフィルタを適用すべき場所を判定し、対応するパラメータを設定する。このようなデータは、符号化のためのフィルタ制御データとしてヘッダ・フォーマッティング及びCABACコンポーネント231に転送される。ループ内フィルタ・コンポーネント225は、フィルタ制御データに基づいてそのようなフィルタを適用する。フィルタは、ブロック解除フィルタ、ノイズ抑制フィルタ、SAOフィルタ、及び適応ループ・フィルタを含み得る。そのようなフィルタは、例に応じて、(例えば、再構成された画素ブロックでの)空間/画素領域又は周波数領域に適用され得る。
符号化器として動作する場合に、フィルタリングされた再構成された画像ブロック、残差ブロック、及び/又は予測ブロックは、上述のようにモーション推定に後で使用するために、復号ピクチャ・バッファ・コンポーネント223に格納される。復号器として動作する場合に、復号ピクチャ・バッファ・コンポーネント223は、出力ビデオ信号の一部として、再構成されフィルタリングされたブロックを記憶し、ディスプレイに向かって転送する。復号ピクチャ・バッファ・コンポーネント223は、予測ブロック、残差ブロック、及び/又は再構成された画像ブロックを記憶することができる任意のメモリデバイスであり得る。
ヘッダ・フォーマッティング及びCABACコンポーネント231は、コーデック・システム200の種々のコンポーネントからデータを受信し、復号器に向けた伝送のために、そのようなデータをコーディングされたビットストリームに符号化する。具体的には、ヘッダ・フォーマッティング及びCABACコンポーネント231は、一般制御データ及びフィルタ制御データなどの制御データを符号化するための種々のヘッダを生成する。さらに、イントラ予測及びモーション・データを含む予測データ、並びに量子化変換係数データの形式の残差データは、すべてビットストリームに符号化される。最終ビットストリームは、元のパーティション化ビデオ信号201を再構成するために復号器によって望まれる全ての情報を含む。そのような情報はまた、イントラ予測モード・インデックス・テーブル(コードワード・マッピングテーブルとも呼ばれる)、種々のブロックに対する符号化コンテキストの定義、最も可能性の高いイントラ予測モードの表示、パーティション情報の表示などを含み得る。このようなデータは、エントロピー・コーディングを用いることによって符号化され得る。例えば、コンテキスト適応可変長コーディング(CAVLC)、CABAC、構文ベースのコンテキスト適応バイナリ演算コーディング(SBAC)、確率間隔パーティション化エントロピー(PIPE)コーディング、又は別のエントロピー・コーディング技術を用いることによって、情報は符号化されてもよい。エントロピー・コーディングに続いて、コーディングされたビットストリームは、別のデバイス(例えば、ビデオ復号器)に送信されてもよく、又は後の伝送又は検索のためにアーカイブされてもよい。
図3は、例示的なビデオ符号化器300を図示するブロック図である。ビデオ符号化器300は、コーデック・システム200の符号化機能を実装するため、及び/又は動作方法100のステップ101、103、105、107、及び/又は109を実装するために用いられ得る。符号化器300は、入力ビデオ信号をパーティション化し、パーティション化ビデオ信号301をもたらし、これは、パーティション化ビデオ信号201と実質的に同様である。パーティション化ビデオ信号301は、次に、符号化器300のコンポーネントによって圧縮され、ビットストリームに符号化される。
具体的には、パーティション化ビデオ信号301は、イントラ予測のために、イントラ・ピクチャ予測コンポーネント317に転送される。イントラ・ピクチャ予測コンポーネント317は、イントラ・ピクチャ推定コンポーネント215及びイントラ・ピクチャ予測コンポーネント217と実質的に同様であり得る。パーティション化ビデオ信号301はまた、復号ピクチャ・バッファ・コンポーネント323内の参照ブロックに基づくインター予測のために、モーション補償コンポーネント321に転送される。モーション補償コンポーネント321は、モーション推定コンポーネント221及びモーション補償コンポーネント219と実質的に同様であり得る。イントラ・ピクチャ予測コンポーネント317及びモーション補償コンポーネント321からの予測ブロック及び残差ブロックは、残差ブロックの変換及び量子化のために変換及び量子化コンポーネント313に転送される。変換及び量子化コンポーネント313は、変換スケーリング及び量子化コンポーネント213と実質的に同様であり得る。変換され量子化された残差ブロック及び対応する予測ブロックは、(関連する制御データと共に)ビットストリームにコーディングするためにエントロピー・コーディング・コンポーネント331に転送される。エントロピー・コーディング・コンポーネント331は、ヘッダ・フォーマッティング及びCABACコンポーネント231と実質的に同様であり得る。
変換及び量子化された残差ブロック及び/又は対応する予測ブロックはまた、モーション補償コンポーネント321によって使用される参照ブロックへの再構成のために変換及び量子化コンポーネント313から逆変換及び量子化コンポーネント329に転送される。逆変換及び量子化コンポーネント329は、スケーリング及び逆変換コンポーネント229と実質的に類似であり得る。ループ内フィルタ・コンポーネント325内のループ内フィルタはまた、例に応じて、残差ブロック及び/又は再構成された参照ブロックに適用される。ループ内フィルタ・コンポーネント325は、実質的に、フィルタ制御分析コンポーネント227及びループ内フィルタ・コンポーネント225に類似であり得る。ループ内フィルタ・コンポーネント325は、ループ内フィルタ・コンポーネント225に関して論じられたように、複数のフィルタを含み得る。フィルタリングされたブロックは、次に、復号ピクチャ・バッファ・コンポーネント323に記憶され、モーション補償コンポーネント321によって参照ブロックとして使用される。復号ピクチャ・バッファ・コンポーネント323は、復号ピクチャ・バッファ・コンポーネント223と実質的に同様であり得る。
図4は、例示的なビデオ復号器400を図示するブロック図である。ビデオ復号器400は、コーデック・システム200の復号機能を実装するため、及び/又は動作方法100のステップ111、113、115、及び/又は117を実装するために用いられ得る。復号器400は、例えば符号化器300からビットストリームを受信し、エンド・ユーザへの表示のために、ビットストリームに基づいて再構成された出力ビデオ信号を生成する。
ビットストリームはエントロピー復号コンポーネント433によって受信される。エントロピー復号コンポーネント433は、CAVLC、CABAC、SBAC、PIPEコーディング、又は他のエントロピー・コーディング技術などのエントロピー復号スキームを実装するように構成されている。例えば、エントロピー復号コンポーネント433は、ビットストリーム内のコード・ワードとして符号化された追加データを解釈するためのコンテキストを提供するために、ヘッダ情報を用いてもよい。復号された情報は、一般制御データ、フィルタ制御データ、パーティション情報、モーション・データ、予測データ、及び残差ブロックからの量子化変換係数などの、ビデオ信号を復号するための任意の所望の情報を含む。量子化された変換係数は、残差ブロックへの再構成のために、逆変換及び量子化コンポーネント429に転送される。逆変換及び量子化コンポーネント429は、逆変換及び量子化コンポーネント329と同様であり得る。
再構成された残差ブロック及び/又は予測ブロックは、イントラ予測動作に基づく画像ブロックへの再構成のために、イントラ・ピクチャ予測コンポーネント417に転送される。イントラ・ピクチャ予測コンポーネント417は、イントラ・ピクチャ推定コンポーネント215及びイントラ・ピクチャ予測コンポーネント217と同様であり得る。具体的には、イントラ・ピクチャ予測コンポーネント417は、フレーム内の参照ブロックを位置特定するために予測モードを用い、残差ブロックを結果に適用して、イントラ予測された画像ブロックを再構成する。再構成されイントラ予測された画像ブロック及び/又は残差ブロック及び対応するインター予測データは、復号ピクチャ・バッファ・コンポーネント423に、ループ内フィルタ・コンポーネント425を介して転送され、これらコンポーネントは、復号ピクチャ・バッファ・コンポーネント223及びループ内フィルタ・コンポーネント225とそれぞれ実質的に同様であり得る。ループ内フィルタ・コンポーネント425は、再構成された画像ブロック、残差ブロック及び/又は予測ブロックをフィルタリングし、そのような情報は復号ピクチャ・バッファ・コンポーネント423に記憶される。復号ピクチャ・バッファ・コンポーネント423からの再構成された画像ブロックは、インター予測のためにモーション補償コンポーネント421に転送される。モーション補償コンポーネント421は、モーション推定コンポーネント221及び/又はモーション補償コンポーネント219と実質的に同様であり得る。具体的には、モーション補償コンポーネント421は、参照ブロックからのモーション・ベクトルを用いて、予測ブロックを生成し、残差ブロックを結果に適用して画像ブロックを再構成する。得られた再構成されたブロックはまた、ループ内フィルタ・コンポーネント425を介して復号ピクチャ・バッファ・コンポーネント423に転送され得る。復号ピクチャ・バッファ・コンポーネント423は、パーティション情報を介してフレームに再構成され得る追加の再構成画像ブロックを記憶し続ける。このようなフレームはまた、シーケンスに配置され得る。このシーケンスは、再構成された出力ビデオ信号としてディスプレイに向けて出力される。
図5は、異なるタイプのコーディング・ツール・パラメータを含む複数のタイプのAPSを含む例示的なビットストリーム500を図示する概略図である。例えば、ビットストリーム500は、コーデック・システム200及び/又は復号器400によって復号するために、コーデック・システム200及び/又は符号化器300によって生成され得る。別の例として、ビットストリーム500は、ステップ111で復号器が使用するために、方法100のステップ109で符号化器によって生成されてもよい。
ビットストリーム500は、シーケンス・パラメータ・セット(SPS)510、複数のピクチャ・パラメータ・セット(PPS)511、複数のALF APS512、複数のスケーリング・リストAPS513、複数のLMCS APS514、複数のスライス・ヘッダ515、及び画像データ520を含む。SPS510は、ビットストリーム500に含まれるビデオ・シーケンス内の全てのピクチャに共通のシーケンス・データを含む。このようなデータは、ピクチャ・サイズ、ビット深度、コーディング・ツール・パラメータ、ビット・レート制限などを含むことができる。PPS511は、ピクチャ全体に適用するパラメータを含む。したがって、ビデオ・シーケンス内の各ピクチャは、PPS511を参照し得る。各ピクチャはPPS511を参照するが、単一のPPS511は、いくつかの例において複数のピクチャのためのデータを含むことができることに留意されたい。例えば、複数の同様のピクチャは、類似のパラメータにしたがってコーディングされてもよい。このような場合、単一のPPS511は、このような類似ピクチャのためのデータを含み得る。PPS511は、対応するピクチャ、量子化パラメータ、オフセットなどにおけるスライスに利用可能なコーディング・ツールを示すことができる。スライス・ヘッダ515は、ピクチャ内の各スライスに固有のパラメータを含む。したがって、ビデオ・シーケンスにおいて、スライス当たり1つのスライス・ヘッダ515があり得る。スライス・ヘッダ515は、スライス・タイプ情報、ピクチャ・オーダ・カウント(POC)、参照ピクチャ・リスト、予測重み、タイル・エントリ・ポイント、ブロック解除パラメータなどを含むことができる。スライス・ヘッダ515はまた、いくつかの文脈においてタイル・グループ・ヘッダとも呼ばれることがあることに留意されたい。
APSは、1つ以上のピクチャ521及び/又はスライス523に適用する構文要素を含む構文構造である。図示の例では、APSを複数のタイプに分けることができる。ALF APS512は、ALFパラメータを含むタイプALFのAPSである。ALFは、可変パラメータによって制御される伝達関数を含み、伝達関数を改良するためにフィードバック・ループからのフィードバックを用いる適応ブロック・ベースのフィルタである。さらに、ALFは、ブロック・ベースのコーディングの結果として生じるコーディング・アーチファクト(例えば、エラー)を補正するために用いられる。適応フィルタは、符号化器で動作するRDOプロセスなどの最適化アルゴリズムによって制御することができる可変パラメータによって伝達関数コントローラを有する線形フィルタである。したがって、ALF APS512に含まれるALFパラメータは、復号器での復号中にフィルタがブロック・ベースのコーディング・アーチファクトを除去するように符号化器によって選択される可変パラメータを含み得る。
スケーリング・リストAPS513は、スケーリング・リスト・パラメータを含むタイプ・スケーリング・リストのAPSである。上述のように、現在のブロックは、残差をもたらすインター予測又はイントラ予測にしたがってコーディングされる。残差は、ブロックのルマ値及び/又はクロマ値と、対応する予測ブロックの値との差である。次に、残差を変換係数(残差値より小さい)に変換するために、変換が残差に適用される。高解像度及び/又は超高解像度のコンテンツを符号化すると、増加した残差データもたらすことがある。単純な変換プロセスは、そのようなデータに適用された場合に、顕著な量子化ノイズをもたらすことがある。したがって、スケーリング・リストAPS513に含まれるスケーリング・リスト・パラメータは、変換マトリクスをスケーリングするために適用され、結果として生じる復号されたビデオ画像における表示解像度及び/又は量子化ノイズの許容可能なレベルの変化を考慮することができる重み付けパラメータを含み得る。
LMCS APS514は、LMCSパラメータを含むタイプLMCSのAPSであり、これは、リシェイパー・パラメータとしても知られている。人間の視覚系は、光の違い(例えば、輝度)よりも色の違い(例えば、色度)を区別する能力が低い。したがって、いくつかのビデオシステムは、クロマ・サブサンプリング・メカニズムを使用して、対応するルマ値を調整することなく、クロマ値の解像度を低下させることによって、ビデオ・データを圧縮する。そのようなメカニズムの1つの懸念事項は、関連する補間が、いくつかの場所で対応するルマ値と互換性のない、補間されたクロマ値を復号中に生成する可能性があるということである。これは、このような場所での色アーチファクトを生成し、この色アーチファクトは対応するフィルタによって補正されるべきである。これはルマ・マッピング・メカニズムによって複雑にされる。ルマ・マッピングは、入力ルマ信号のダイナミックレンジにわたってコーディングされたルマ・コンポーネントを再マッピングするプロセスである(例えば、区分線形関数にしたがって)。これはルマ・コンポーネントを圧縮する。LMCSアルゴリズムは、クロマ・サブサンプリングに関係するアーチファクトを除去するために、ルマ・マッピングに基づいて圧縮されたクロマ値をスケーリングする。したがって、LMCS APS514に含まれるLMCSパラメータは、ルマ・マッピングを説明するために使用されるクロマ・スケーリングを示す。LMCSパラメータは、符号化器によって判定され、ルマ・マッピングが用いられる場合に、クロマ・サブサンプリングによって引き起こされるアーチファクトをフィルタで除去するために、復号器によって用いられ得る。
画像データ520は、インター予測及び/又はイントラ予測にしたがって符号化されたビデオ・データ、並びに対応する変換及び量子化残差データを含む。例えば、ビデオ・シーケンスは、画像データとしてコーディングされた複数のピクチャ521を含む。1つのピクチャ521は、ビデオ・シーケンスの単一フレームであり、したがって、ビデオ・シーケンスを表示するときは、一般に単一ユニットとして表示される。しかしながら、バーチャル・リアリティ、ピクチャ・イン・ピクチャなどの特定の技術を実装するために、部分的なピクチャが表示されることがある。複数のピクチャ521は、各々PPS511を参照する。複数のピクチャ521は複数のスライス523に分割される。1つのスライス523は、1つのピクチャ521の水平セクションとして定義され得る。例えば、1つのスライス523は、当該ピクチャ521の高さの一部及び当該ピクチャ521の完全な幅を含み得る。他の場合には、ピクチャ521は、列及び行に分割されてもよく、スライス523は、そのような列及び行によって生成されるピクチャ521の長方形部分に含まれてもよい。いくつかのシステムでは、スライス523は、タイルにサブ分割される。他のシステムでは、スライス523は、タイルを含むタイル・グループと呼ばれる。スライス523及び/又はタイルのタイル・グループは、スライス・ヘッダ515を参照する。スライス523は、コーディング・ツリー・ユニット(CTU)にさらに分割される。CTUはさらに、コーディング・ツリーに基づいてコーディング・ブロックに分割される。そして、コーディング・ブロックは、予測メカニズムにしたがって符号化/復号され得る。
ピクチャ521及び/又はスライス523は、直接的又は間接的に、関連パラメータを含むALF APS512、スケーリング・リストAPS513、及び/又はLMCS APS514を参照してもよい。例えば、スライス523は、スライス・ヘッダ515を参照してもよい。さらに、ピクチャ521は、対応するピクチャ・ヘッダを参照してもよい。スライス・ヘッダ515及び/又はピクチャ・ヘッダは、関連するスライス523及び/又はピクチャ521をコーディングする際に使用されるパラメータを含むALF APS512、スケーリング・リストAPS513、及び/又はLMCS APS514を参照し得る。このようにして、復号器は、対応するスライス523及び/又はピクチャ521に関係するヘッダ参照にしたがって、スライス523及び/又はピクチャ521に関連性のあるコーディング・ツール・パラメータを取得することができる。
ビットストリーム500は、ビデオ・コーディング・レイヤ(VCL)NALユニット535及び非VCL NALユニット531にコーディングされる。NALユニットは、ネットワークを介した伝送のための単一パケットのペイロードとして配置されるサイズに形成されたコーディングされたデータ・ユニットである。VCL NALユニット535は、コーディングされたビデオ・データを含むNALユニットである。例えば、各VCL NALユニット535は、データ、CTU、及び/又はコーディング・ブロックの1つのスライス523及び/又はタイル・グループを含むことができる。非VCL NALユニット531は、サポート構文を含むが、コーディングされたビデオ・データを含まないNALユニットである。例えば、非VCL NALユニット531は、SPS510、PPS511、APS、スライス・ヘッダ515などを含んでもよい。したがって、復号器は、離散VCL NALユニット535及び非VCL NALユニット531においてビットストリーム500を受信する。アクセス・ユニットは、単一のピクチャ521をコーディングするのに十分なデータを含むVCL NALユニット535及び/又は非VCL NALユニット531のグループである。
いくつかの例において、ALF APS512、スケーリング・リストAPS513、及びLMCS APS514は、各々、別個の非VCL NALユニット531タイプに割り当てられる。このような場合、ALF APS512、スケーリング・リストAPS513、及びLMCS APS514は、それぞれ、ALF APS NALユニット532、スケーリング・リストAPS NALユニット533、及びLMCS APS NALユニット534に含まれる。したがって、ALF APS NALユニット532は、別のALF APS NALユニット532が受信されるまで有効なままであるALFパラメータを含む。さらに、スケーリング・リストAPS NALユニット533は、別のスケーリング・リストAPS NALユニット533が受信されるまで有効なままであるスケーリング・リスト・パラメータを含む。追加的に、LMCS APS NALユニット534は、別のLMCS APS NALユニット534が受信されるまで有効なままであるLMCSパラメータを含む。このように、APSパラメータが変更されるたびに新しいAPSを発行する必要はない。例えば、LMCSパラメータの変更は、追加のLMCS APS514をもたらすが、追加のALF APS512又はスケーリング・リストAPS513をもたらさない。したがって、パラメータ・タイプに基づいてAPSを異なるNALユニット・タイプに分けることにより、無関係なパラメータの冗長なシグナリングが回避される。したがって、APSを異なるNALユニット・タイプに分けることは、コーディング効率を向上させ、したがって、符号化器及び復号器におけるプロセッサ、メモリ及び/又はネットワーク・リソースの使用を減少させる。
さらに、スライス523及び/又はピクチャ521は、スライス523及び/又はピクチャ521をコーディングするために用いられるコーディング・ツール・パラメータを含むALF APS512、ALF APS NALユニット532、スケーリング・リストAPS513、スケーリング・リストAPS NALユニット533、LMCS APS514、及び/又はLMCS APS NALユニット534を直接的又は間接的に参照することができる。例えば、各APSは、APS ID542及びパラメータ・タイプ541を含んでもよい。APS ID542は、対応するAPSを識別する値(例えば、番号)である。APS ID542は、事前定義されたビット数を含み得る。したがって、APS ID542は、事前定義された順番にしたがって増加(例えば、1ずつ増加)することができ、その順番が事前定義された範囲の末端に到達したら、最小値(例えば、0)でリセットし得る。パラメータ・タイプ541は、APSに含まれるパラメータのタイプ(例えば、ALF、スケーリング・リスト、及び/又は、LMCS)を示す。例えば、パラメータ・タイプ541は、各APSに含まれるパラメータのタイプを示す事前定義された値に設定されたAPSパラメータ・タイプ(aps_params_type)コードを含んでもよい。このように、パラメータ・タイプ541は、ALF APS512、スケーリング・リストAPS513、及びLMCS APS514を区別するために使用され得る。いくつかの例において、ALF APS512、スケーリング・リストAPS513、及びLMCS APS514は各々、パラメータ・タイプ541及びAPS ID542の組み合わせによって一意に識別され得る。例えば、各APSタイプは、対応するAPS ID542のための別個の値空間を含んでもよい。したがって、各APSタイプは、同じタイプの以前のAPSに基づいて順番に増加するAPS ID542を含み得る。しかし、第1のAPSタイプのAPS ID542は、異なる第2のAPSタイプの以前のAPSのAPS ID542とは関係していなくてもよい。このように、異なるAPSタイプのAPS ID542は、重複する値空間を含み得る。例えば、第1のタイプのAPS(例えば、ALF APS)は、場合によっては、第2のタイプのAPS(例えば、LMCS APS)と同じAPS ID542を含むことができる。各APSタイプが異なる値空間を含むことを可能にすることで、コーデックはAPSタイプ間でAPS ID542の競合をチェックする必要がない。さらに、値空間が重複することを可能にすることによって、コーデックは、より大きなAPS ID542の値を用いることを回避することができ、これは、ビット節約をもたらす。したがって、異なるAPSタイプの複数のAPS ID542のための別個の重複する値空間を使用することは、コーディング効率を向上させ、したがって、符号化器及び復号器におけるネットワーク・リソース、メモリ・リソース、及び/又は処理リソースの使用を減少させる。上記のように、APS ID542は、事前定義された範囲にわたってもよい。いくつかの例において、APS ID542の事前定義された範囲は、パラメータ・タイプ541によって示されるAPSタイプに応じて変動してもよい。これにより、一般的に異なるタイプのパラメータが変化する頻度に応じて、異なる数のビットを異なるAPSタイプに割り当てることが可能となり得る。例えば、ALF APS512のAPS ID542は0~7の範囲を有し、スケーリング・リストAPS513のAPS ID542は0~7の範囲を有し、LMCS APS514のAPS ID542は0~3の範囲を有してもよい。
別の例では、LMCSパラメータは、LMCS APS514に含まれる。いくつかのシステムは、スライス・ヘッダ515にLMCSパラメータを含める。しかし、LMCS/リシェイパー・パラメータは約1秒に1回変化することがある。ビデオ・シーケンスは、毎秒30~60個のピクチャ521を表示し得る。したがって、LMCSパラメータは、30~60フレームに対して変化し得ない。LMCS APS514にLMCSパラメータを含めることは、LMCSパラメータの冗長コーディングを大幅に低減する。いくつかの例において、スライス・ヘッダ515及び/又はスライス523及び/又はピクチャ521にそれぞれ関連するピクチャ・ヘッダは、関連するLMCS APS514を参照することができる。スライス523及び/又はピクチャ521は、次に、スライス・ヘッダ515及び/又はピクチャ・ヘッダを参照する。これにより、復号器は、関連するスライス523及び/又はピクチャ521のLMCSパラメータを得ることが可能となる。このようにして、LMCSパラメータは、スライス523及び/又はピクチャ521に対するLMCSパラメータが変化したときにのみ符号化される。したがって、LMCSパラメータを符号化するためにLMCS APS514を用いることは、コーディング効率を増加させ、したがって、符号化器及び復号器におけるネットワーク・リソース、メモリ・リソース、及び/又は処理リソースの使用を低減する。LMCSはすべてのビデオに使用されるわけではないため、SPS510は、LMCS有効フラグ543を含んでもよい。LMCS有効フラグ543は、符号化されたビデオ・シーケンスに対してLMCSが有効であることを示すように設定され得る。したがって、復号器は、LMCS有効フラグ543が設定される(例えば、1に設定される)場合に、LMCS有効フラグ543に基づいてLMCS APS514からLMCSパラメータを取得し得る。さらに、復号器は、LMCS有効フラグ543が設定されない(例えば、0に設定されない)場合に、LMCSパラメータを取得しようとしなくてもよい。
図6は、異なる値空間上の異なるAPSタイプにAPS ID642を割り当てるための例示的なメカニズム600を図示する概略図である。例えば、メカニズム600がビットストリーム500に適用されて、ALF APS512、スケーリング・リストAPS513、及び/又はLMCS APS514にAPS ID542を割り当てることができる。さらに、メカニズム600は、方法100にしたがってビデオをコーディングする場合に、コーデック200、符号化器300、及び/又は復号器400に適用されてもよい。
メカニズム600は、APS ID642をALF APS612、スケーリング・リストAPS613、及びLMCS APS614に割り当てるが、これらは、それぞれ、APS ID542、ALF APS512、スケーリング・リストAPS513、及びLMCS APS514と実質的に同様であり得る。上記のように、APS ID642は、各値空間がAPSタイプに固有である複数の異なる値空間上に順番に割り当てられてもよい。さらに、各値空間は、APSタイプに固有である異なる範囲にわたってもよい。示された例では、ALF APS612のAPS ID642の値空間の範囲は、0~7(例えば、3ビット)である。さらに、スケーリング・リストAPS613のAPS ID642の値空間の範囲は、0~7(例えば、3ビット)である。また、LMCS APS611のAPS ID642の値空間の範囲は、0~3(例えば、2ビット)である。APS ID642が値空間の範囲の末尾に到達すると、対応するタイプの次のAPSのAPS ID642は範囲の先頭に戻る(例えば、0)。新しいAPSが同じタイプの前のAPSと同じAPS ID642を受ける場合に、以前のAPSはもはやアクティブではなく、もはや参照することができない。このように、値空間の範囲を拡張して、同じタイプのより多くのAPSが能動的に参照されることを可能にすることができる。さらに、コーディング効率を向上させるために値空間の範囲が縮小され得るが、そのような縮小は、同時にアクティブなままであり続け、参照に利用可能であり続けることができる対応するタイプのAPSの数も減少させる。
示される例では、各ALF APS612、スケーリング・リストAPS613、及びLMCS APS614は、APS ID642及びAPSタイプの組み合わせによって参照される。例えば、ALF APS612、LMCS APS614、及びスケーリング・リストAPS613は、各々、0のAPS ID642を受ける。新しいALF APS612が受信される場合に、APS ID642は、以前のALF APS612に使用された値からインクリメントされる。同じシーケンスが、スケーリング・リストAPS613及びLMCS APS614に適用される。したがって、各APS ID642は、同じタイプの以前のAPSのAPS ID642に関係する。しかし、APS ID642は、他のタイプの以前のAPSのAPS ID642とは関係しない。この例では、ALF APS612のAPS ID642は、0から7までインクリメントで増加し、次に、継続してインクリメントする前に0に戻る。さらに、スケーリング・リストAPS613のAPS ID642は、0から7までインクリメントで増加し、次に、継続してインクリメントする前に0に戻る。また、LMCS APS611のAPS ID642は、0から3までインクリメントで増加し、次に、継続してインクリメントする前に0に戻る。図示されるように、このような値空間は、異なるAPSタイプの異なるAPSがビデオ・シーケンス内の同じポイントで同じAPS ID642を共有することができるので、重複している。また、メカニズム600は、APSのみを描画することにも留意されたい。ビットストリームでは、描画されたAPSは、SPS、PPS、スライス・ヘッダ、ピクチャ・ヘッダ、スライスなどの他のVCLと非VCL NALユニットの間に散在する。
このように、本開示は、APSの設計の改良、及びリシェイパー/LMCSパラメータのシグナリングのためのいくつかの改良を含む。APSは、複数のピクチャで共有できる情報のシグナリングのために設計されており、多くのバリエーションを含むことができる。リシェイパー/LMCSパラメータは、適応ループ内リシェイパー/LMCSビデオ・コーディング・ツールに用いられる。上記メカニズムは、以下のとおりに実装され得る。本明細書に列挙された問題を解決するために、これは、個別に及び/又は組み合わせて用いられ得るいくつかの態様を含む。
開示されたAPSは、複数のAPSが使用されて異なるタイプのパラメータを搬送することができるように修正される。各APS NALユニットは、1つのタイプのパラメータのみを搬送するために使用される。その結果、2つのAPS NALユニットは、2つのタイプの情報が特定のタイル・グループ/スライスに対して搬送される(例えば、各タイプの情報に対して1つ)場合に、符号化される。APSは、APS構文にAPSパラメータ・タイプ・フィールドを含み得る。APS NALユニットには、APS parameters typeフィールドによって示されるタイプのパラメータのみが含まれ得る。
いくつかの例において、異なるタイプのAPSパラメータが異なるNALユニット・タイプによって示される。例えば、2つの異なるNALユニット・タイプがAPSに使用される。この2種類のAPSは、それぞれALF APS及びリシェイパーAPSと呼ばれ得る。別の例では、APS NALユニットで搬送されるツールパラメータのタイプがNALユニット・ヘッダで指定される。VVCでは、NALユニット・ヘッダは予約ビット(例えば、nuh_reserved_zero_7bitと示される7ビット)を有する。いくつかの例において、これらのビットのいくつか(例えば、7ビットのうちの3ビット)がAPSパラメータ・タイプ・フィールドを指定するために使用され得る。いくつかの例において、特定のタイプのAPSがAPS IDに対して同じ値空間を共有してもよい。一方、APSの異なるタイプは、APS IDの異なる値空間を使用する。したがって、異なるタイプの2つのAPSが共存し、同じ瞬間に同じAPS IDの値を有してもよい。さらに、他のAPSからAPSを識別するために、APS IDとAPSパラメータ・タイプの組み合わせが用いられてもよい。
APS IDは、タイル・グループに対して対応するコーディング・ツールが有効である場合に、タイル・グループ・ヘッダ構文に含まれ得る。そうでなければ、対応するタイプのAPS IDがタイル・グループ・ヘッダに含まれなくてもよい。例えば、タイル・グループに対してALFが有効である場合に、ALF APSのAPS IDはタイル・グループ・ヘッダに含まれる。例えば、これはALFタイプを示すためにAPSパラメータ・タイプ・フィールドを設定することで達成され得る。したがって、タイル・グループに対してALFが有効ではない場合に、ALF APSのAPS IDはタイル・グループ・ヘッダに含まれない。さらに、タイル・グループに対してリシェイパー・コーディング・ツールが有効である場合に、リシェイパーAPSのAPS IDがタイル・グループ・ヘッダに含まれる。例えば、これはリシェイパータイプを示すようにAPSパラメータ・タイプ・フィールドを設定することによって達成され得る。さらに、タイル・グループに対してリシェイパー・コーディング・ツールが有効ではない場合に、リシェイパーAPSのAPS IDはタイル・グループ・ヘッダに含まれなくてもよい。
いくつかの例において、APSにおけるAPSパラメータ・タイプ情報の存在は、パラメータに関連するコーディング・ツールの使用によって条件付けされ得る。1つのビットストリーム(例えば、LMCS、ALF、スケーリング・リスト)に対して1つのAPSに関係するコーディング・ツールのみが有効である場合に、APSパラメータ・タイプ情報は存在しないことがあり、その代わりに推測されてもよい。例えば、APSがALF及びリシェイパー・コーディング・ツールのためのパラメータを含むことができるが、ALFのみが有効であり(例えば、SPSのフラグで指定されているように)、リシェイパーが有効でない場合(例えば、SPSのフラグで指定されているように)、APSパラメータ・タイプはシグナリングされなくてもよく、ALFパラメータと等しいと推測され得る。
別の例では、APSパラメータ・タイプ情報は、APS IDの値から推測され得る。例えば、事前定義されたAPS IDの値の範囲は、対応するAPSパラメータ・タイプに関連付けられ得る。この態様は、以下のとおりに実装され得る。APS IDのシグナリングにはXビット、APS パラメータのタイプのシグナリングにはYビットを割り当てる代わりに、APS IDのシグナリングにはX+Yビットが割り当てられ得る。次に、APSのパラメータ・タイプの異なるタイプを示すために、APS IDの値の異なる範囲が指定され得る。例えば、APS IDのシグナリングに5ビット、APSパラメータのタイプのシグナリングに3ビットを使用する代わりに、(例えば、ビットコストを増加させることなく)APS IDのシグナリングに8ビットが割り当てられ得る。0~63のAPS IDの値の範囲は、APSがALFのためのパラメータを含むことを示し、64~95のIDの値の範囲は、APSがリシェイパーのためのパラメータを含むことを示し、96~255は、スケーリング・リストのような他のパラメータ・タイプのために予約され得る。別の例では、0~31のAPS IDの値の範囲は、APSがALFのためのパラメータを含むことを示し、32~47のIDの値の範囲は、APSがリシェイパーのためのパラメータを含むことを示し、48~255は、スケーリング・リストのような他のパラメータ・タイプのために予約され得る。このアプローチの利点は、各ツールのパラメータ変更の頻度に応じて、APS IDの範囲が割り当てられ得ることである。例えば、ALFパラメータは、リシェイパー・パラメータよりも頻繁に変化することが予想されてもよい。このような場合、APSがALFパラメータを含むAPSであることを示すために、より大きなAPS ID範囲は用いられてもよい。
第1の実施例では、前述の態様の1つ以上は、以下のとおりに実施されてもよい。ALF APSは、ALF_APSに等しいaps_params_typeを有するAPSとして定義され得る。リシェイパーAPS(又はLMCS APS)は、MAP_APSに等しいaps_params_typeを有するAPSとして定義され得る。例示的なSPS構文とセマンティクスは、以下のとおりである。
sps_reshaper_enabled_flagは、リシェイパーがコーデット・ビデオ・シーケンス(CVS)で使用されることを指定するために1に等しく設定される。sps_reshaper_enabled_flagは、リシェイパーがCVSにおいて使用されないことを指定するために0に設定される。
例示的なAPS構文とセマンティクスは以下のとおりである。
aps_params_typeは、以下のテーブルで指定されるようなAPSにおいて搬送されるAPSパラメータのタイプを指定する。
例示的なタイル・グループ・ヘッダ構文とセマンティクスは、以下のとおりである。
tile_group_alf_aps_idは、タイル・グループが参照するALF APSのadaptation_parameter_set_idを指定する。tile_group_alf_aps_idに等しいadapdation_parameter_set_idを有するALF APS NALユニットのTemporalIdは、コーディングされたタイル・グループNALユニットのTemporalId以下であるとする。同じ値のadaptation_parameter_set_idを有する複数のALF APSが同じピクチャの2つ以上のタイル・グループによって参照される場合に、同じ値のadapation_parameter_set_idを有する複数のALF APSは同じ内容を有するものとする。
tile_group_reshaper_enabled_flagは、現在のタイル・グループに対してリシェイパーが有効であることを指定するために1に等しく設定される。tile_group_reshaper_enabled_flagは、現在のタイル・グループに対してリシェイパーが有効でないことを指定するために0に設定される。tile_group_resharper_enable_flagが存在しない場合に、フラグは0に等しいと推定される。tile_group_reshaper_aps_idは、タイル・グループが参照するリシェイパーAPSのadaptation_parameter_set_idを指定する。tile_group_reshaper_aps_idに等しいadapdation_parameter_set_idを持つリシェイパーAPS NALユニットのTemporalIdは、コーディングされたタイル・グループNALユニットのTemporalId以下であるものとする。同じ値のadapation_parameter_set_idを有する複数のリシェイパーAPSが同じピクチャの2つ以上のタイル・グループによって参照される場合に、同じ値のadapation_parameter_set_idを有する複数のリシェイパーAPSは、同じ内容を有するものとする。tile_group_reshaper_chroma_residual_scale_flagは、現在のタイル・グループに対してクロマ残差スケーリングが有効であることを指定するために1に等しく設定される。tile_group_reshaper_chroma_residual_scale_flagは、現在のタイル・グループに対してクロマ残差スケーリングが有効でないことを指定するために0に等しく設定される。tile_group_reshaper_chroma_residual_scale_flagが存在しない場合に、フラグは0に等しいと推定される。
例示的なリシェイパー・データ構文とセマンティクスは以下のとおりである。
reshaper_model_min_bin_idxは、リシェイパー構成プロセスにおいて使用される最小ビン(又はピース)インデックスを指定する。reshaper_model_min_bin_idxの値は、0からMaxBinIdxまでの範囲(両端を含む)とする。MaxBinIdxの値は15に等しいものとする。reshaper_model_delta_max_bin_idxは、最大許容ビン(又はピース)インデックスMaxBinIdxからリシェイパー構成プロセスにおいて使用される最大ビン・インデックスを引いたものを指定する。reshaper_model_max_bin_idxの値はMaxBinIdx - reshaper_model_ delta_max_bin_idxに等しく設定される。resharper_model_bin_delta_abs_cw_prec_minus1 + 1は、構文要素resharper_model_bin_delta_abs_CW[i]の表現に使用されるビット数を指定する。reshaper_model_bin_delta_abs_CW[i] は、i番目のビンの絶対デルタ・コードワード値を指定する。reshaper_model_bin_delta_abs_CW[i]構文要素は、reshaper_model_bin_delta_abs_cw_prec_minus1+1ビットで表される。resharper_model_bin_delta_sign_CW_flag[i]は、resharper_model_bin _delta_abs_CW[i] の符号を指定する。
第2の実施例では、前述の態様の1つ以上は、以下のとおりに実施されてもよい。例示的なSPS構文とセマンティクスは以下のとおりである。
変数ALFEnabled及びReshaperEnabledは、以下のとおりに設定される。ALFEnabled = sps_alf_enabled_flagであり、ReshaperEnabled = sps_reshaper_enabled_flagである。
例示的なAPS構文とセマンティクスは以下のとおりである。
aps_params_typeは、以下のテーブルで指定されるようにAPSにおいて搬送されるAPSパラメータのタイプを指定する。
存在しない場合に、aps_params_typeの値は以下のとおりに推定される。ALFEnabledである場合に、aps_params_typeは0に等しく設定される。そうでなければ、aps_params_typeは1に等しく設定される。
第2の実施例では、前述の態様の1つ以上は、以下のとおりに実施されてもよい。例示的なSPS構文とセマンティクスは以下のとおりである。
adaption_parameter_set_idは、他の構文要素による参照のためにAPSの識別子を提供する。APSは、ピクチャ間で共有することができ、ピクチャ内の異なるタイル・グループにおいて異なることができる。変数APSParamsTypeの値と記載は、以下のテーブルに定義される。
例示的なタイル・グループ・ヘッダ・セマンティクスは以下のとおりである。tile_group_alf_aps_idは、タイル・グループが参照するALF APSのadaptation_parameter_set_idを指定する。tile_group_alf_aps_idに等しいadapdation_parameter_set_idを有するALF APS NALユニットのTemporalIdは、コーディングされたタイル・グループNALユニットのTemporalId以下であるものとする。tile_group_alf_aps_idの値は、0~63の範囲(両端を含む)とする。
同じ値のadaptation_parameter_set_idを有する複数のALF APSが同じピクチャの複数のタイル・グループによって参照される場合に、同じ値のadapation_parameter_set_idを有する複数のALF APSは同じ内容を有するものとする。tile_group _reshaper_aps_id は、タイル・グループが参照するreshaper APS のadaptation_parameter_set_id を指定する。tile_group_reshaper_aps_idに等しいadaptation_parameter_set_idを有するリシェイパーAPS NALユニットのTemporalIdは、コーディングされたタイル・グループNALユニットのTemporalId以下とする。tile_group_reshaper_aps_idの値は、64~95の範囲(両端を含む)とする。同じ値のadapation_parameter_set_idを有する複数のリシェイパーAPSが同じピクチャの2つ以上のタイル・グループによって参照される場合に、同じ値のadapation_parameter_set_idを有する複数のリシェイパーAPSは、同じ内容を有するものとする。
図7は、例示的なビデオ・コーディング・デバイス700の概略図である。ビデオ・コーディング・デバイス700は、本明細書に記載されるように、開示される実施例/実施形態を実装するのに適している。ビデオ・コーディング・デバイス700は、下流ポート720、上流ポート750、及び/又は、ネットワークを介して上流及び/又は下流でデータを通信するための送信機及び/又は受信機を含むトランシーバ・ユニット(Tx/Rx)710を含む。ビデオ・コーディング・デバイス700はまた、データを処理する論理ユニット及び/又は中央処理ユニット(CPU)を含むプロセッサ730と、データを記憶するためのメモリ732と、を含む。ビデオ・コーディング・デバイス700はまた、電気的、光学的、又は無線通信ネットワークを介したデータの通信のために上流ポート750及び/又は下流ポート720に結合された電気的、光-電気(OE)コンポーネント、電気-光(EO)コンポーネント、及び/又は無線通信コンポーネントを含み得る。ビデオ・コーディング・デバイス700はまた、ユーザとの間でデータを通信するための入力及び/又は出力(I/O)デバイス760を含み得る。I/Oデバイス760は、ビデオ・データを表示するためのディスプレイ、オーディオ・データを出力するためのスピーカなどの出力デバイスを含み得る。I/Oデバイス760はまた、キーボード、マウス、トラックボールなどの入力デバイス、及び/又はそのような出力デバイスと対話するための対応するインターフェースを含み得る。
プロセッサ730は、ハードウェア及びソフトウェアによって実装される。プロセッサ730は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサとして)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、及びデジタル信号プロセッサ(DSP)として実装され得る。プロセッサ730は、下流ポート720、Tx/Rx710、上流ポート750、及びメモリ732と通信している。プロセッサ730は、コーディング・モジュール714を含む。コーディング・モジュール714は、ビットストリーム500及び/又はメカニズム600を用いることができる、方法100、800、及び900などの本明細書に記載される開示された実施形態を実装する。コーディング・モジュール714はまた、本明細書に記載される任意の他の方法/メカニズムを実装し得る。さらに、コーディング・モジュール714は、コーデック・システム200、符号化器300、及び/又は復号器400を実装してもよい。例えば、コーディング・モジュール714は、ビットストリーム内のピクチャを符号化/復号し、複数のAPSにおけるピクチャのスライスに関連するパラメータを符号化/復号することができる。いくつかの例において、異なるタイプのパラメータが異なるタイプのAPSにコーディングされ得る。さらに、異なるタイプのAPSは、異なるNALユニットのタイプに含められ得る。そのようなAPSタイプは、ALF APS、スケーリング・リストAPS、及び/又はLMCS APSを含むことができる。APSは、各々APS IDを含むことができる。異なるAPSタイプのAPS IDは、異なる値空間上で順番に増加し得る。また、スライス及び/又はピクチャは、対応するスライス・ヘッダ及び/又はピクチャ・ヘッダを参照することができる。このようなヘッダは、次に、関連するコーディング・ツールを含むAPSを参照することができる。このようなAPSは、APS IDとAPSタイプによって一意に参照され得る。このような例は、コーディング・ツール・パラメータの冗長シグナリングを減少させ、及び/又は識別子のためのビット使用を減少させる。したがって、コーディング・モジュール714は、ビデオ・データをコーディングするときに、ビデオ・コーディング・デバイス700に追加的な機能性及び/又はコーディング効率を提供させる。したがって、コーディング・モジュール714は、ビデオ・コーディング・デバイス700の機能性を改善すると共に、ビデオ・コーディング技術に固有の問題に対処する。さらに、コーディング・モジュール714は、ビデオ・コーディング・デバイス700の異なる状態への変換を行う。代替的には、コーディング・モジュール714は、メモリ732に記憶された命令として実装され、プロセッサ730によって実行される(例えば、非一時的な媒体上に記憶されたコンピュータ・プログラム製品として)。
メモリ732は、ディスク、テープ・ドライブ、ソリッド・ステート・ドライブ、読み出し専用メモリ(ROM)、ランダム・アクセス・メモリ、フラッシュ・メモリ、三値連想メモリ(TCAM)、スタティック・ランダム・アクセス・メモリ(SRAM)などの1つ以上のメモリタイプを含む。メモリ732は、オーバーフロー・データ記憶デバイスとして使用されてもよく、このようなプログラムが実行のために選択されたときにプログラムを記憶し、プログラム実行中に読み出された命令及びデータを記憶する。
図8は、ALF APS512、スケーリング・リストAPS513、及び/又はLMCS APS514などの複数のAPSタイプを用いることによって、ビットストリーム500などのビットストリームにビデオ・シーケンスを符号化する例示的な方法800のフローチャートである。方法800は、方法100を実行する場合に、コーデック・システム200、符号化器300、及び/又はビデオ・コーディング・デバイス700などの符号化器によって用いられ得る。方法800はまた、メカニズム600にしたがって、異なる値空間を用いることによって、異なるタイプのAPSにAPS IDを割り当ててもよい。
方法800は、符号化器が複数のピクチャを含むビデオ・シーケンスを受信し、例えばユーザ入力に基づいて、そのビデオ・シーケンスをビットストリームに符号化することを判定したときに開始してもよい。ビデオ・シーケンスは、符号化に先立ってさらにパーティション化するために、ピクチャ/画像/フレームにパーティション化される。ステップ801で、スライスは、符号化されたビデオ・シーケンスの一部としてビットストリームに符号化される。スライスは、ピクチャの一部として符号化され得る。さらに、スライスは、スライスに含まれるCTU及び/又はCUを符号化することによって符号化されてもよい。そのようなCUは、イントラ予測及び/又はインター予測にしたがってコーディングされ得る。例えば、符号化器は、スライスのCUをコーディングしてもよい。そして、符号化器は、コーディングされたスライスを復号し、復号されたスライスをフィルタリングして、スライスの出力品質を向上させるために、仮想参照復号器(HRD)を用いることができる。
ステップ803で、符号化器は、HRDによって適用されるフィルタによって用いられるパラメータを判定して、符号化されたスライスの品質を向上させる。これらのパラメータは、ALFパラメータ、スケーリング・リスト・パラメータ、及びLMCSパラメータを含み得る。これらのパラメータを判定することにより、符号化器は、復号器でスライスに適用するために用いられるべきパラメータを判定することができる。
ステップ805で、ALFパラメータは、ALFタイプを含む第1のAPS NALユニットにおいて、ビットストリームに符号化される。さらに、スケーリング・リスト・パラメータは、スケーリング・リスト・タイプを含む第2のAPS NALユニットにおいて、ビットストリームに符号化される。追加的に、LMCSパラメータは、LMCSタイプを含む第3のAPS NALユニットにおいて、ビットストリームに符号化される。したがって、ALFパラメータ、スケーリング・リスト・パラメータ、及びLMCSパラメータは、複数の異なるNALユニット・タイプを用いることによって、各々異なるAPSに符号化される。第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットは、すべて非ビデオ・コーディング層(non-VCL)NALユニットであってもよい。
ステップ807で、SPSはビットストリームに符号化されてもよい。いくつかの例において、SPSは、LMCSがスライスを含む符号化されたビデオ・シーケンスに対して有効であることを示すように設定可能なフラグを含む。フラグは、LMCSが符号化されたビデオ・シーケンスに対して有効でないことを示すために設定されてもよいことに留意されたい。このような場合、LMCSパラメータは、方法800の他のステップで省略される。
ステップ809で、スライス・ヘッダはビットストリームに符号化される。スライス・ヘッダは、スライスに関連し得る。この場合、スライスは、スライス・ヘッダを参照する。そして、スライス・ヘッダは、第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを参照し得る。これにより、復号器が、スライス・ヘッダへの参照及び種々のAPS NALユニットへの参照に基づいて、スライスのための関連性のあるパラメータを判定できることを確実にする。いくつかの例において、ピクチャ・ヘッダは、そのような参照を含んでもよい。このような場合、ピクチャ・ヘッダはステップ809でビットストリームに符号化される。この例では、スライスを含むピクチャはピクチャ・ヘッダを参照し、ピクチャ・ヘッダは第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを参照する。
上記のように、各APSは、パラメータ・タイプとAPS IDの組み合わせによって識別される。例えば、各APSは、各APSに含まれるパラメータのタイプを示す事前定義された値に設定されたAPSパラメータ・タイプ・コード(例えば、aps_params_type)を含んでもよい。例えば、aps_params_typeコードは、それぞれ、第1のAPS NALユニットに対してALFタイプに設定されてもよく、第2のAPS NALユニットに対してスケーリング・リスト・タイプに設定されてもよく、第3のAPS NALユニットに対してLMCSタイプに設定されてもよい。さらに、各APSは、事前定義された範囲から選択されたAPS IDを含んでもよい。追加的に、各APSのパラメータ・タイプに基づいて、事前定義された範囲が判定されてもよい。このような事前定義された範囲は重複していてもよく、APS IDはAPSタイプに基づいて異なる順序で割り当てられてもよい。例えば、現在のAPSは、事前定義された範囲から選択された現在のAPS IDを含んでもよい。現在のAPS IDは、現在のAPSと同じタイプの以前のAPSと関連する以前のAPS IDと順番に関係する。また、現在のAPS IDは、異なるAPSタイプに対する順番が異なるため、現在のAPSとは異なる別の以前のAPSと関連する別の以前のAPS IDとは関係しない。ステップ809のスライス・ヘッダ及び/又はピクチャ・ヘッダは、関連性のあるAPSパラメータ・タイプ・コード及びAPS IDの組み合わせを用いることによって、第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを一意に参照し得る。
ステップ811で、ビットストリームはメモリに記憶される。要求があると、ビットストリームは、次に、復号器に向かって、例えば、送信機を介して通信され得る。
図9は、ALF APS 512、スケーリング・リストAPS 513、及び/又はLMCS APS 514などの複数のAPSタイプを用いることによって、ビットストリーム500などのビットストリームからビデオ・シーケンスを復号する例示的な方法900のフローチャートである。方法900は、方法100を実行するときに、コーデック・システム200、復号器400、及び/又はビデオ・コーディング・デバイス700などの復号器によって用いられてもよい。また、方法900は、異なるタイプのAPSが異なる値空間にしたがって割り当てられたAPS IDを用いるメカニズム600にしたがって割り当てられたAPS IDに基づいて、APSを参照してもよい。
方法900は、復号器が、例えば方法800の結果として、ビデオ・シーケンスを表すコーディングされたデータのビットストリームの受信を開始するときに開始してもよい。ステップ901で、ビットストリームは復号器で受信される。ビットストリームは、ALFタイプを含む第1のAPS NALユニット、スケーリング・リスト・タイプを含む第2のAPS NALユニット、及びLMCSタイプを含む第3のAPS NALユニットを含む。ビットストリームはまた、スライスを含み得る。第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットは、すべて非ビデオ・コーディング層(非VCL)NALユニットであってもよい。
ビットストリームは、さらにSPSを含んでもよい。ステップ902で、LMCS有効フラグの値がビットストリーム内のSPSから取得される。フラグは、LMCSが、スライスを含む符号化されたビデオ・シーケンスに対して有効であることを示すように設定され得る。このような場合、第3のAPS NALユニットからのLMCSパラメータは、フラグの値に基づいてステップ903で取得されてもよい。
ステップ903で、ALFパラメータは、第1のAPS NALユニットから取得される。さらに、スケーリング・リスト・パラメータは、第2のAPS NALユニットから取得される。追加的に、LMCSパラメータは、第3のAPS NALユニットから取得される。いくつかの例において、LMCSパラメータは、LMCS有効フラグが1の値のような特定の値に設定されているときにのみ取得される。APSのためのパラメータを取得することは、様々なメカニズムによって達成され得る。一例では、ビットストリームはまた、スライス・ヘッダを含む。スライスは、スライス・ヘッダを参照する。スライス・ヘッダは、第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを参照する。参照を用いて、スライスに関連性のあるパラメータを特定し、取得することができる。いくつかの例において、ビットストリームは、そのような参照を含み得るピクチャ・ヘッダも含む。スライスは、ピクチャの一部である。この例では、スライスを含むピクチャはピクチャ・ヘッダを参照し、ピクチャ・ヘッダは第1のAPS NALユニット、第2のAPS NALユニット、第3のAPS NALユニットを参照する。
上記のように、各APSは、パラメータ・タイプとAPS IDの組み合わせによって識別される。例えば、各APSは、各APSに含まれるパラメータのタイプを示す事前設定された値に設定されたAPSパラメータ・タイプ・コード(例えばaps_params_type)を含んでもよい。例えば、aps_params_typeコードは、それぞれ、第1のAPS NALユニットに対してALFタイプに設定されてもよく、第2のAPS NALユニットに対してスケーリング・リスト・タイプに設定されてもよく、第3のAPS NALユニットに対してLMCSタイプに設定されてもよい。さらに、各APSは、事前定義された範囲から選択されたAPS IDを含んでもよい。さらに、各APSのパラメータ・タイプに基づいて、事前定義された範囲が判定されてもよい。このような事前定義された範囲は重複していてもよく、APS IDはAPSのタイプに基づいて異なる順序で割り当てられてもよい。例えば、現在のAPSは、事前定義された範囲から選択された現在のAPS IDを含んでもよい。現在のAPS IDは、現在のAPSと同じタイプの以前のAPSに関連する以前のAPS IDと順番に関係する。また、現在のAPS IDは、異なるAPSタイプに対する順番が異なるため、現在のAPSとは異なる別の以前のAPSに関連する別のAPS IDとは関係しない。ステップ903のスライス・ヘッダ及び/又はピクチャ・ヘッダは、関連性のあるAPSパラメータ・タイプ・コードとAPS IDの組み合わせを用いることによって、第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを一意に参照し得る。
ステップ905で、ステップ903で取得されたALFパラメータ、スケーリング・リスト・パラメータ、及びLMCSパラメータを使用して、スライスが復号される。ステップ907で、復号器は、復号されたビデオ・シーケンスの一部として表示するためにスライスを転送することができる。
図10は、ALF APS 512、スケーリング・リストAPS 513、及び/又はLMCS APS 514などの複数のAPSタイプを用いることによって、ビットストリーム500などのビットストリーム内の画像のビデオ・シーケンスをコーディングするための例示的なシステム1000の概略図である。システム1000は、コーデック・システム200、符号化器300、復号器400、及び/又はビデオ・コーディング・デバイス700などの符号化器及び復号器によって実装され得る。さらに、システム1000は、方法100、800、900、及び/又はメカニズム600を実装するときに用いられてもよい。
システム1000は、ビデオ符号化器1002を含む。ビデオ符号化器1002は、スライスへの適用のためのALFパラメータ、スケーリング・リスト・パラメータ、及びLMCSパラメータを判定するための判定モジュール1001を含む。ビデオ符号化器1002は、さらに、符号化されたビデオ・シーケンスの一部として、ビットストリームにスライスを符号化するための符号化モジュール1003を含む。符号化モジュール1003は、さらに、ALFタイプを含む第1のAPS NALユニットにおいて、ALFパラメータをビットストリームに符号化するためのものである。符号化モジュール1003は、さらに、スケーリング・リスト・タイプを含む第2のAPS NALユニットにおいて、スケーリング・リスト・パラメータをビットストリームに符号化するためのものである。符号化モジュール1003は、さらに、LMCSタイプを含む第3のAPS NALユニットにおいて、LMCSパラメータをビットストリームに符号化するためのものである。ビデオ符号化器1002は、さらに、復号器に向かって通信するためのビットストリームを記憶するための記憶モジュール1005を含む。ビデオ符号化器1002は、さらに、第1のAPS NALユニット、第2のAPS NALユニット、及び第3のAPS NALユニットを備えたビットストリームを送信して、対応するコーディング・ツール・パラメータに基づいて復号器でスライスを復号することをサポートするための送信モジュール1007を含む。ビデオ符号化器1002は、さらに、方法800のステップのいずれかを実行するように構成されてもよい。
システム1000はまた、ビデオ復号器1010を含む。ビデオ復号器1010は、ALFタイプを含む第1のAPS NALユニット、スケーリング・リスト・タイプを含む第2のAPS NALユニット、LMCSタイプを含む第3のAPS NALユニット、及びスライスを含むビットストリームを受信するための受信モジュール1011を含む。ビデオ復号器1010は、さらに、第1のAPS NALユニットからALFパラメータを取得するための取得モジュール1013を含む。取得モジュール1013は、さらに、第2のAPS NALユニットからスケーリング・リスト・パラメータを取得するためのものである。取得モジュール1013は、さらに、第3のAPS NALユニットからLMCSパラメータを取得するためのものである。ビデオ復号器1010は、さらに、ALFパラメータ、スケーリング・リスト・パラメータ、及びLMCSパラメータを使用して、スライスを復号するための復号モジュール1015を含む。ビデオ復号器1010は、さらに、復号されたビデオ・シーケンスの一部として表示するためにスライスを転送するための転送モジュール1017を含む。
ビデオ復号器1010は、さらに、方法900のステップのいずれかを実行するように構成されてもよい。
第1のコンポーネントは、第1のコンポーネントと第2のコンポーネントとの間のライン、トレース、又は別の媒体を除いて、介在するコンポーネントがない場合に、第2のコンポーネントに直接結合される。第1のコンポーネントは、第1のコンポーネントと第2のコンポーネントとの間にライン、トレース、又は他の媒体以外の介在するコンポーネントがある場合に、間接的に第2のコンポーネントに結合される。用語「カップリング」及びその変形は、直接結合及び間接結合の両方を含む。用語「約」の使用は、特に断らない限り、後続の数の±10%を含む範囲を意味する。
本明細書に記載された例示的な方法のステップは、必ずしも記載された順序で実行される必要はないこともまた理解されるべきであり、そのような方法のステップの順序は、単に例示的なものであることが理解されるべきである。同様に、追加の工程は、このような方法に含まれてもよく、特定の工程は、本開示の種々の実施形態と一致する方法において省略され得るか、又は組み合わされ得る。
本開示においていくつかの実施形態が提供されたが、開示されたシステム及び方法は、本開示の精神又は範囲から逸脱することなく、多くの他の特定の形態で実施され得ると理解されよう。本実施例は、例示的なものであり、限定的なものではないと考えられ、その意図は、本明細書に与えられた詳細に限定されるものではない。例えば、種々の要素又はコンポーネントは別のシステムに組み合わせ又は統合されてもよいし、特定の特徴が省略されるか、又は実装されてなくてもよい。
さらに、種々の実施形態において個別又は別個に記載及び図示された技術、システム、サブシステム、及び方法は、本開示の範囲から逸脱することなく、他のシステム、コンポーネント、技術、又は方法と組み合わせ又は統合されてもよい。変更、置換、及び改変の他の例は、当業者によって確認可能であり、本明細書に開示された精神及び範囲から逸脱することなく行われてもよい。