図面の全体を通じて、同じ参照番号が類似のまたは対応する要素に対して使用される。
本実施形態は、一般に、ビデオエンコーディングおよびデコーディングにおける方法およびデバイスに関し、詳細には、ビデオエンコーディングおよびデコーディングに関連する量子化パラメータ(QP)の値の決定に関する。
彩度成分(Cb、Cr)に対するQP値を計算する従来技術は、ルマ成分(Y’)に対するQP値(QpY)に基づいてQP値を計算することを伴う。しかし、彩度成分のQP値は、パラメータpps_cb_qp_offsetおよびpps_cr_qp_offsetによってピクチャレベルで、パラメータslice_cb_qp_offsetおよびslice_cr_qp_offsetによってスライスレベルで、ならびにHEVC v2においては、パラメータCuQpOffsetCbおよびCuQpOffsetCrによってブロックレベルで修正されることがある。
彩度とルマ成分について同じQP値を有することは、視覚的な色のアーチファクトにつながることがあり、HDRビデオのケースにおいて特別に可視になる。しかし、ルマ成分と比較して彩度成分についてより大きいQP値を一貫して使用することは、彩度成分が典型的にはルマ成分より低い解像度で表されるので、彩度成分についての残差を多量に量子化しすぎることがあり、可視の色のアーチファクトをもたらす。より悪いことに、ルマ成分と比較して彩度成分についてより大きいQP値を一貫して使用することは、これらの色のアーチファクトをさらに増加させる。
しかし、ルマ成分よりも彩度成分についてより低いQP値をいつも使用することは、彩度成分を、特に高ビットレートで必要以上によくエンコードし、それによって色を視覚的に改善することなく、彩度成分にビットを費やすことをもたらすことがある。これらのビットは、ルマ成分においてより多く使用したはずである。
本実施形態は、従来技術のQP計算の上述の欠点のいくつかを打開または少なくとも緩和する、彩度成分のQP値の効率的な計算を提供する。
色空間または色ドメインは、色モデルの色の成分の組合せに由来する色のタイプおよび数である。色モデルは、色が数のタプルすなわち色の成分として表されることがある方式を説明する理論上の設定である。色の成分は、成分のタイプ、例えば色調、およびそのユニット、例えば度合いもしくはパーセンテージ、またはスケールのタイプ、例えば線形または非線形、および色深度またはビット深度と呼ばれる値のその意図された数などの、いくつかの区別特性を有する。
ピクチャおよびビデオにおけるピクセルに対して通常使用される非限定的だが例証的な色ドメインは、赤、緑、青(RGB)の色ドメイン、ルマ、彩度青および彩度赤(Y’CbCr、時として、Y’CbCr、Y’Cb’Cr’、YCBCR、Y’CBCR、Y’CB’CR’、またはYUV、Yuv、またはD’YD’CBD’CR、またはE’YE’CBE’CRを表す)の色ドメイン、ならびに輝度およびクロミナンス(XYZ)の色ドメインを含む。
以下の専門用語は、以下のテキストにおいて使用される。
Y’CbCrは、ルマ(Y’)および彩度(Cb、Cr)の成分である。Y’は、光の強さが、RGBプライマリ(RGB primaries)を補正または知覚的に量子化したガンマに基づいて非線形的にエンコードされることを意味する輝度(Y)と区別される。
RGB:赤、緑、および青の成分であり、典型的には線形のサンプルである。
XYZ:RGBの線形結合であり、これはYにおける輝度ならびにXおよびZにおけるクロミナンスを説明する。
4:2:0:第2および第3の成分は、第1の成分と比較して、2つのうちの1つのファクタによって水平におよび垂直にサブサンプリングされた。
4:4:4:3つの成分すべてが完全な解像度になっている。
図2は、複数のピクチャを含むビデオシーケンスにおける、複数のピクセルを含むピクチャ内のピクセルの彩度成分のQP値を計算する方法を示す流れ図である。方法はステップS1でスタートし、参照QP値、およびピクセルに対するキャプチャ色空間とピクセルに対するエンコードされた色空間との間の差に依存するファクタに基づいて、彩度成分のQPオフセット値を計算することを含む。次に後続のステップS2は、QPのオフセット値だけ低減された参照QP値に基づいて、彩度成分のQP値を計算することを含む。
このように本実施形態によれば、QPオフセット値は、彩度成分のQP値を決定するために、参照QP値を修正するために計算され、使用される。次にQPオフセット値は、ピクセルに対するキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタに基づいて決定される。
ステップS2におけるQPオフセット値によるQP値の低減は、QP値が参照QP値より低いことを含意する。このように1つの実施形態において、QP値=参照QP値−QPオフセット値であり、このケースにおいて、QPオフセット値は正の値である。これは、QPオフセット値が負の値である場合、QP値=参照QP値+QPオフセット値に等しい。
実施形態は、彩度成分のQP値をセットする従来技術のソリューションは、とりわけキャプチャ色空間がエンコードされた色空間より小さいとき、彩度の係数または残差を、実際に一掃する、すなわち多量に量子化しすぎることがあるという結論に基づく。実施形態は、それによって、ステップS1においてQPオフセット値を計算するために使用されるファクタによって表されるような、キャプチャ色空間とエンコードされた色空間との間の関係すなわち差に基づいて、彩度成分のQP値を計算する。
1つの色空間でキャプチャし、別の色空間でエンコードするときのY’CbCr成分の効果は、XYZ色空間を介した換算によって調査されることがある。色が1つの色空間、例えばITU−R709でキャプチャされる場合、色はXYZ色空間に換算され、次にITU−R2020の色空間に換算されることがある。このように色がITU−R709でキャプチャされ、次に例えばITU−R2020でエンコードされ、表される場合、最大のルマの大きさが維持される。しかし最大の彩度の大きさは低減される。最大のCrの大きさは(浮動小数の表現で与えられる)0.5から0.28まで低減され、最大のCbの大きさは0.5から0.44まで低減される。それに対応して、色がP3D65でキャプチャされ、かつITU−R2020でエンコードされ、表される場合、最大のルマの大きさは再び維持され、最大のCrの大きさは、0.5から0.36まで低減され、最大のCbの大きさは0.5から0.48まで低減される。ブロック内のピクセルに対する(Cr)2の合計として測定された、ピクセルのブロックにおけるCr成分のエネルギーが下がる場合、これはブロックの変換係数のエネルギーも下がることを意味する。これはパーセバルの定理の帰結であり、ピクセルのブロック内のエネルギーがユニタリ変換のために維持されることを述べる。変換係数は損失なくエンコードされる前にQP値によって効果的に分割されるので、ブロックのエネルギーが下がる(変換係数がより小さくなる)場合、より少ない変換係数はエンコーディングを存続させる。これは、彩度成分のQP値を低減させることによって打ち消されることがある。ルマ成分の大きさをこのように圧搾することは行われないことに留意されたい。このような訳で、ルマ成分のQPを低減させる必要はない。このように、より大きな負の彩度のオフセットは、キャプチャ色空間がエンコードされた色空間より小さいとき、強すぎる量子化、または彩度成分を全面的に一掃することさえ防ぐために必要とされる。
図2の方法ステップS1およびS2は、Cb成分もしくはCr成分などの1つの彩度成分に対して、または実は両方の彩度成分、すなわちCbおよびCr成分両方に対して実施されることがある。後者のケースにおいて、同じQPオフセット値は、ステップS1において両方の彩度成分に対して計算されることがある。しかし本明細書でさらに説明されるように、Cb成分のQPオフセット値およびCr成分の別のQPオフセット値を計算することが一般に好ましい。
QPオフセット値およびQP値は、ピクチャ内の少なくとも1つのピクセルに対してステップS1およびS2において計算される。QPオフセット値およびQP値は、好ましくは、ピクチャ内のピクセルのグループに対してステップS1およびS2において計算される。ピクセルのこのグループは、時としてコーディングユニット(CU)と呼ばれる、ピクチャ内のピクセルのブロックであることがある。ピクセルのこのようなブロックは、例証的だが非限定的な例において、4×4ピクセル、8×8ピクセル、16×16ピクセル、32×32ピクセル、または64×64ピクセルなどのさらに大きいブロックであってよい。
別の実施形態において、ピクセルのグループはピクチャのスライスである。一般にスライスは、予測がスライス境界をまたがって行われないという点で、ピクチャの自己完結型の部分として規定されることがある。スライスは、ラスタスキャンの順でエンコードされ、デコードされるコーディングツリーユニット(CTU)であり、異なるコーディングタイプが、Iスライス、Pスライス、またはBスライスなどのスライスに対して使用されることがある。ピクチャは単一のスライスからなってよいが、一般に複数の、すなわち少なくとも2つのスライスから成り立つ。
さらなる実施形態は、ステップS1およびS2がピクチャ内のすべてのピクセルに対して一度実施されるというものである。本実施形態において、それによって、ピクセルのグループはピクチャ内のすべてのピクセルに対応する。
したがって、ステップS1において計算されたQPオフセット値は、ステップS1がピクセルのブロック内のピクセルに対して一度実施される場合、以前言及したパラメータCuQpOffsetCbもしくはCuQpOffsetCrの値であってよく、ステップS1がスライス内のピクセルに対して一度実施される場合、パラメータslice_cb_qp_offsetもしくはslice_cr_qp_offsetの値であってよく、またはステップS1がピクチャ内のすべてのピクセルに対して一度実施される場合、パラメータpps_cb_qp_offsetもしくはpps_cr_qp_offsetの値であることがあってよい。これらの例において、当技術分野で以前使用されたものと同じパラメータ用語が、QPのオフセットを表すために用いられた。しかし当技術分野において、これらのパラメータの値は、参照QP値、およびキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタに基づいて決定されてこなかった。
1つの実施形態において、ステップS1は、参照QP値、およびスライス内またはピクチャ内のピクセルのブロック内の、ピクセルに対するキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタに基づいて、所与の彩度成分Cb、Crに対して、ピクチャ内のピクセルのブロックに対するQPオフセット値を計算すること、すなわちCuQpOffsetCbもしくはCuQpOffsetCrの値を計算すること、ピクチャ内のスライスに対するQPのオフセット値を計算すること、すなわちslice_cb_qp_offsetもしくはslice_cr_qp_offsetの値を計算すること、または全体のピクチャに対するQPオフセット値を計算すること、すなわちpps_cb_qp_offsetもしくはpps_cr_qp_offsetの値を計算することを含む。このように、このような実施形態において、単一のQPオフセット値は、参照QP値およびファクタに基づいて、ピクチャ内の所与のピクセルおよび所与の彩度成分に対して計算される。
1つの代替実施形態において、単一のQPオフセット値は、参照QP値およびファクタに基づいて、ピクチャ内の所与のピクセルおよび所与の彩度成分に対して計算される。本代替実施形態において、所与のピクセルおよび所与の彩度成分の値に適用可能である少なくとも1つの他のQPオフセット値は、従来技術の技法によって、すなわち参照QP値、およびキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタに基づかずに決定されるなどして、提供されることがある。従来技術の技法の例は、大いに変わるピクセルまたはサンプルが、ほとんど変わらないサンプルより大きいQPのオフセットを与えられるように、変動に基づいてQPのオフセットを決定することである。
例えば、パラメータCuQpOffsetCb、slice_cb_qp_offset、pps_cb_qp_offset、またはCuQpOffsetCr、slice_cr_qp_offset、pps_cr_qp_offsetの1つの値は、上記のステップS1において計算されることがあるのに対して、他の2つのパラメータまたは他の2つのパラメータの1つの値は、従来技術の技法によって決定されることがある。例えばCuQpOffsetCbまたはCuQpOffsetCrの値がステップS1によって計算されるのに対して、slice_cb_qp_offsetおよび/もしくはpps_cb_qp_offset、またはslice_cr_qp_offsetおよび/もしくはpps_cr_qp_offsetの値は、従来技術の技法によって決定される。代替として、slice_cb_qp_offsetまたはslice_cb_qp_offsetの値がステップS1によって計算されるのに対して、CuQpOffsetCbおよび/もしくはpps_cb_qp_offset、またはCuQpOffsetCrおよび/もしくはpps_cr_qp_offsetの値は、従来技術の技法によって決定される。さらなる変形は、ステップS1によってpps_cb_qp_offsetまたはpps_cr_qp_offsetの値を計算すること伴うのに対して、CuQpOffsetCbおよび/もしくはslice_cb_qp_offset、またはCuQpOffsetCrおよび/もしくはslice_cb_qp_offsetの値は、従来技術の技法によって決定される。
1つの代替実施形態において、少なくとも2つのQPオフセット値は、ステップS1において、所与のピクセルに対して、および所与の彩度成分に対して計算される。例えばステップS1は、参照QP値、およびピクセルに対するキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタに基づいて、パラメータCuQpOffsetCbもしくはCuQpOffsetCr、およびパラメータslice_cb_qp_offsetもしくはslice_cr_qp_offset、またはパラメータCuQpOffsetCbもしくはCuQpOffsetCr、およびパラメータpps_cb_qp_offsetもしくはpps_cr_qp_offset、またはパラメータslice_cb_qp_offsetもしくはslice_cr_qp_offset、およびパラメータpps_cb_qp_offsetもしくはpps_cr_qp_offset、またはパラメータCuQpOffsetCbもしくはCuQpOffsetCr、パラメータslice_cb_qp_offsetもしくはslice_cr_qp_offset、およびパラメータpps_cb_qp_offsetもしくはpps_cr_qp_offsetの値を計算すること含むことがある。任意選択で、および3つのパラメータ値を計算することを伴う最後の1つを除く例に関して、第3の残るパラメータの値は、従来技術の技法によって決定されることがある。
QPオフセット値は、ステップS1において、参照QP値、および色空間の間の差に依存するファクタに基づいて計算される。図1に示されるように、ビデオシーケンスのピクチャ内のピクセルの色の値を表すのに利用可能な異なる色空間がある。図1は、3つのこのような色空間、BT.2020またはRec.2020とも呼ばれるITU−R2020、BT.709またはRec.709とも呼ばれるITU−R709、DCI P3とも呼ばれるP3D65を示す。BT.601またはRec.601とも呼ばれるITU−R601などの他の色空間もある。別の例は、キャプチャ色空間が、ITU−R709、P3D65、またはITU−R2020にある場合、エンコーディング色空間がYDzDx色空間であり、その中で、彩度のQPオフセット値がDzおよびDx成分に必要とされることがある場合である。
ITU−R2020は、超高精細テレビ(UHDTV:ultra−high−definition television)のために規定された色空間であり、サンプルあたり10ビットまたはサンプルあたり12ビットのどちらかのビット深度を規定する。サンプルあたり10ビットのITU−R2020において、Y’の値の範囲は[64,940]であり、CbおよびCrの値の範囲は[64,960]である。サンプルあたり12ビットのITU−R2020において、Y’の値の範囲は[256,3760]であり、CbおよびCrの値の範囲は[256,3840]である。ITU−R2020の色空間は、ITU−R709の色空間で示されることがない、いくつかの色を再現することができる。ITU−R2020によって使用されるRGBプライマリは、CIE1931のスペクトル軌跡上のモノクロ光源と同等である。ITU−R2020の原色の波長は、赤の原色に対して630nm、緑の原色に対して532nm、および青の原色に対して467nmである。ITU−R2020は、4:4:4、4:2:2、および4:2:0の彩度のサブサンプリングを伴う、RGBおよびY’CbCrの信号フォーマットを考慮する。
ITU−R709は、16:9(ワイドスクリーン)のアスペクト比を有する高精細テレビ(HDTV:high−definition television)のフォーマットを標準化する。ITU−R709は、それぞれの色チャネルにおいて、サンプルあたり8ビットまたは10ビットのどちらかを使用する。8ビットの表現において、Y’の値の範囲は[16,235]であり、CbおよびCrの値の範囲は[16,240]である。サンプルあたり10ビットにおいて、Y’の値の範囲は[64,940]であり、CbおよびCrの値の範囲は[64,960]である。
P3D65は、米国のアメリカ映画産業からのデジタルムービープロジェクションのための共通色空間である。P3D65は、それぞれの色チャネルにおいて、サンプルあたり8ビットまたは10ビットのどちらかを使用する。8ビットの表現において、Y’の値の範囲は[16,235]であり、CbおよびCrの値の範囲は[16,240]である。サンプルあたり10ビットにおいて、Y’の値の範囲は[64,940]であり、CbおよびCrの値の範囲は[64,960]である。
ITU−R601は、標準解像度テレビ(SDTV:standard definition television)のフォーマットを標準化する。ITU−R601は、それぞれの色チャネルにおいてサンプルあたり8ビットまたは10ビットのどちらかを使用する。8ビットの表現において、Y’の値の範囲は[16,235]であり、CbおよびCrの値の範囲は[16,20]である。サンプルあたり10ビットにおいて、Y’の値の範囲は[64,940]であり、CbおよびCrの値の範囲は[64,960]である。
本明細書で使用されるような色空間は、キャプチャ色空間またはエンコードされた色空間であってよい。これは、ビデオをエンコードするため、および典型的にはビデオをデコードし、表示するために使用される色空間と比較して、ビデオをキャプチャするため、またはエンコードするのに先立ってビデオを事前処理するために使用される色空間を区別するためである。
1つの実施形態において、本明細書で使用されるようなキャプチャ色空間は、ビデオシーケンスを記録するために使用されるカメラによって用いられる色空間である。しかし本明細書で使用されるようなキャプチャ色空間は、ビデオシーケンスをエンコードするのに先立ってビデオシーケンスに適用されることがある事前処理中のビデオシーケンスの色空間も含んでいる。例えば、カメラはビデオシーケンスを記録するためにITU−R709の色空間を使用することがある。次にこのビデオシーケンスは、例えば、P3D65などの、より大きい色空間を有するモニタ上でカラーグレーディングを適用することによって事前処理される。このようなカラーグレーディングは、いくつかの色における飽和を増加させること、例えばフットボールマッチのビデオシーケンスにおける草のような草色を作ることなどの、視覚効果を改善するためにビデオシーケンスをわずかに修正することを伴う。結果として生じる色空間は、このケースにおいて、ITU−R709ではなくP3D65であることがある。また、エンコードするのに先立ってビデオシーケンスをこのように事前処理することは、本明細書で使用されるような表現キャプチャ色空間に含まれている。
それに応じて、ビデオがITU−R709でカメラによって記録されるが、次にP3D65で、カラーグレーディングを使用するなどして、事前処理されると仮定する。次にビデオはITU−R2020でエンコードされる。このようなケースにおいて、キャプチャ色空間はP3D65であり、エンコードされた色空間はITU−R2020である。
エンコードされた色空間、または本明細書でも使用されるような、表現色空間は、ビデオシーケンスをエンコードするため、および好ましくはビデオシーケンスをデコードし、提示し、または表すためにも使用される色空間である。
図3は、図2に示された方法の追加の任意選択のステップを示す流れ図である。方法は、ステップS10でスタートし、キャプチャ色空間におけるピクセルの線形の赤、緑、青(RGB)の値を、エンコードされた色空間におけるルマ成分の値(Y’)および2つのサブサンプリングされた彩度成分の値(Cb、Cr)に換算することを含む。本実施形態において、彩度成分は、2つのサブサンプリングされた彩度成分の値のうちの1つに対する彩度成分である。
このように、図3は、キャプチャ色空間とエンコードされた色空間との間の関連性の1つの実施形態を示す。本実施形態において、ビデオシーケンス内のピクチャのピクセルは、それぞれ、キャプチャ色空間におけるRGBの値4:4:4によって表される。キャプチャ色空間におけるこれらの個々のRGBの値は、エンコードされた色空間におけるY’CbCrの値4:2:0または4:2:2に換算される。次に、QPオフセット値およびQP値がステップS1およびS2において計算される彩度成分は、Y’CbCrの値4:2:0または4:2:2のこれらの彩度成分の1つである。
RGBの値4:4:4からY’CbCrの値4:2:0または4:2:2への換算は、典型的には、RGB4:4:4の値をキャプチャ色空間からエンコードされた色空間におけるRGB4:4:4の値に換算することを伴う。この色空間の換算は、典型的には、XYZの値をエンコードされた色空間におけるRGBの値4:4:4に換算するために、式1を使用し、次に式1における行列の逆を使用して、キャプチャ色空間におけるRGBの値4:4:4をXYZの値に換算することを伴う。行列の要素(b11−b33)の値は、特定のキャプチャ色空間および特定のエンコードされた色空間に依存する。次に、エンコードされた色空間におけるRGB4:4:4の値は、非線形R’G’B’の値4:4:4を得るために、式2における、または[2]において説明されたような伝達関数の逆などの、逆伝達関数に入力される。次に、色変換、式3参照、は、エンコードされた色空間におけるY’CbCrの値4:4:4を得るために、R’G’B’の値4:4:4に適用される。次に、2つの彩度成分CbCrは、Y’CbCrの値4:2:0または4:2:2を得るために、4:2:0または4:2:2にサブサンプリングされる。
行列の要素b11〜b13の値は、RGB4:4:4の値からXYZの値に移るとき、キャプチャ色空間に依存し、XYZの値からRGB4:4:4の値に移るとき、エンコードされたキャプチャ色空間に依存する。ITU−R709に関して、b11=0.412391、b12=0.357584、b13=0.180481、b21=0.212639、b22=0.715169、b23=0.072192、b31=0.019331、b32=0.119195、b33=0.950532であり、ITU−R2020に関して、b11=0.636958、b12=0.144617、b13=0.168881、b21=0.262700、b22=0.677998、b23=0.059302、b31=0.000000、b32=0.028073、b33=1.060985であり、P3D65に関して、b11=0.486571、b12=0.265668、b13=0.198217、b21=0.228975、b22=0.691739、b23=0.079287、b31=0.00000、b32=0.045113、b33=1.043944であり、ITU−R601に関して、b11=0.430554、b12=0.341550、b13=0.178352、b21=0.222004、b22=0.706655、b23=0.071341、b31=0.020182、b32=0.129553、b33=0.939322である。
Y’=a11×R’+a12×G’+a13×B’
Cb=a21×R’+a22×G’+a23×B’ (式3)
Cr=a31×R’+a32×G’+a33×B’
ここで、
ITU−R709に関して、a11=0.212600、a12=0.715200、a13=0.072200、a21=−0.114572、a22=−0.385428、a23=0.500000、a31=0.500000、a32=−0.454153、a33=−0.045847であり、ITU−R2020に関して、a11=0.262700、a12=0.678000、a13=0.059300、a21=−0.139630、a22=−0.360370、a23=0.500000、a31=0.500000、a32=−0.459786、a33=−0.040214であり、P3D65に関して、a11=0.2096、a12=0.7215、a13=0.0690、a21=−0.1125、a22=−0.3875、a23=0.5000、a31=0.5000、a32=−0.4564、a33=−0.0436であり、ITU−R601に関して、a11=0.299000、a12=0.587000、a13=0.114000、a21=−0.168736、a22=−0.331264、a23=0.500000、a31=0.500000、a32=−0.418688、a33=−0.081312である。
本実施形態において、および図3に示されるように、キャプチャ色空間が、入力された線形RGBの値4:4:4の色空間であるのに対して、エンコードされた色空間は、エンコードされることになるY’CbCrの値4:2:0または4:2:2の色空間である。
1つの実施形態において、キャプチャ色空間とエンコードされた色空間との間の差に依存するファクタは、好ましくは、参照QP値と比較して彩度成分のQP値を多く低減すればするほど、エンコードされた色空間と比較してキャプチャ色空間が小さくなるように決定される。これは、QPオフセット値の大きさが、好ましくは、大きくなればなるほど、エンコードされた色空間と比較してキャプチャ色空間が小さくなることを意味する。このように彩度成分のQP値が、好ましくは、参照QP値より小さくなればなるほど、エンコードされた色空間と比較してキャプチャ色空間が小さくなる。これは、QPオフセット値が、好ましくは、大きい大きさの負の数であればあるほど、エンコードされた色空間と比較してキャプチャ色空間が小さくなることを意味する。
例えば、特定の実施形態において、キャプチャ色空間がエンコードされた色空間と同じである場合、ファクタは1に等しい。その上、キャプチャ色空間が例えばITU−R709、かつエンコードされた色空間が例えばITU−R2020である場合に使用されるファクタは、ITU−R709が図1に示されるようにP3D65より小さいので、キャプチャ色空間がP3D65、かつエンコードされた色空間がITU−R2020である場合より大きい。
1つの実施形態において、ステップS1におけるQPオフセット値およびステップS2におけるQP値を計算するために使用される参照QP値は、好ましくは、ピクセルに対するルマ成分のQP値である。このような実施形態において、図2のステップS1は、ピクセルに対するルマ成分のQP値、およびピクセルに対するキャプチャ色空間とピクセルに対するエンコードされた色空間との間の差に依存するファクタに基づいて、彩度成分のQPオフセット値を計算することを含む。それに対応して、ステップS2は、QPオフセット値だけ低減された、ルマ成分のQP値に基づいて、彩度成分のQP値を計算することを含む。
参照QP値として使用されるようなルマ成分のQP値は、ピクセルのブロックに対するルマのQP値、スライスに対するルマのQP値、または全面的なピクチャに対するルマのQP値であってよい。
HEVCにおいて、ピクセルのブロックに対するルマのQP値は、ビットストリーム内でエンコードされない。明らかに対照的に、ターゲットのQP値すなわち所望のQP値と予測されるQP値との間の差すなわちデルタQP値は、エンコードされる。予測されるQP値は、ピクチャ内のピクセルの隣接したブロックのルマのQP値に基づく。デルタQP値に対する構文要素は、非ゼロの値を有するケースにおいて、cu_qp_delta_absおよびそのサインcu_qp_delta_sign_flagである。
ルマ成分のQP値は、好ましくは、パラメータQpYの値である。
特定の実施形態において、QPオフセット値は、ステップS1において、全面的なピクチャに対するルマのQP値、およびキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタに基づいて計算される。次に彩度成分のQP値は、ステップS2において、QPのオフセット値だけ低減された、ピクセルのブロックに対するルマのQP値に基づいて計算される。このように本特定の実施形態において、QPオフセット値=f(ルマのQPpicture,ファクタ)および彩度のQP値=g(ルマのQPblock,QPオフセット値)であり、f(.)およびg(.)は異なる関数である。次に、ピクセルのブロックに対するルマのQP値(ルマのQPblock)は、ピクチャに対するルマのQP値(ルマのQPpicture)ならびにルマ成分に対するスライスおよび/またはブロック固有のQPのデルタ値から決定される。
別の特定の実施形態において、ルマのQP値は、ピクチャ内のピクセルのそれぞれのブロックに対して決定される。次に、ステップS1においてQPオフセット値を計算するために使用される参照QP値は、ピクチャ内のピクセルのブロックに対するこれらのルマのQP値の平均であってよい。
特定の実施形態において、図2のステップS1は、QpYなどの参照QP値、およびエンコードされた色空間における彩度成分の最大の大きさと、彩度成分がキャプチャ色空間に元来キャプチャされたときの彩度成分の最大の大きさとの間の比率を表すファクタに基づいて、QPオフセット値を計算することを含む。
1つの色空間でビデオをキャプチャし、別の色空間でビデオをエンコードした結果は、最大のCbおよびCrの大きさが低減されるのに対して、最大のルマは変化しないままであるというものである。これは、彩度成分のQPオフセット値によるQP低減の量は、本実施形態において、エンコードされた色空間における彩度成分の最大の大きさと、同じ彩度成分がキャプチャ色空間に元来キャプチャされたときの同じ彩度成分の最大の大きさとの間の比率に関連することを意味する。彩度成分の比率が大きくなると、この彩度成分のQP値のより大きい低減がもたらされる。
Y’CbCrに対する効果は、XYZ色空間への換算によって調査されることがある。彩度成分に対する最大の大きさを典型的に示す、キャプチャ色空間ITU−R709における線形RGBの値、RGBmaxCb709およびRGBmaxCr709を考える。RGBの値は、最大のCbの大きさに対して、および最大のCrの大きさに対して異なることに留意されたい。ここで、RGBmaxCb709=[0 0 maxLinearValue]およびRGBmaxCr709=[maxLinearValue 0 0]であり、例えば、それぞれ青、赤の色チャネルに対する最大のレスポンスである。次に、ITU−R709に対する行列の要素を有する式1を参照し、RGB709toXYZ色変換による行列の乗算を使用して、RGBmaxCb709およびRGBmaxCr709それぞれから、XYZmaxCb709およびXYZmaxCr709それぞれへ換算する。
ここで、RGB2020Cb709およびRGB2020Cb709それぞれに結果としてなるXYZの値と共に、RGB2020toXYZ色変換の逆、すなわちITU−R2020に対する行列の要素を有する式1の逆の行列の乗算によるエンコードされた色空間、例えばITU−R2020において、どのRGBの値にこれが対応するかを決定する。
次に、例えばSMPTE ST2084[2]のような、エンコードされた色空間に適用される伝達関数に与えられる非線形RGBの値に換算し、これは、RGB2020Cb709’およびRGB2020Cb709’を実現するために、ITU−R2020に対して使用される。次に、Y’CbCrに換算し、Y’CbCr2020Cb709’およびY’CbCr2020Cb709’をもたらす。
ビデオコンテンツがエンコードされた色空間でキャプチャされた場合、最大の彩度の大きさは(浮動小数の表現で)0.5である。1つの色空間におけるキャプチャ、および別の色空間におけるエンコーディングにより、最大のCbの大きさおよび最大のCrの大きさは低減される。最大のルマは変化しないままである。低減された彩度の大きさにより彩度の係数を一掃することを回避するために、CbおよびCrに関する少なくとも1つの変換係数に対するQP値は低減される必要がある。色の成分のQP低減の量は、エンコードされた色空間における成分の最大の大きさ(0.5)と、同じ成分が別の色空間に元来キャプチャされたときの同じ成分の最大の大きさとの間の比率(ファクタ)に関連する。色の成分のより大きい比率は、この成分のQP値においてより大きい低減を示す。キャプチャされ、エンコードされた色空間が同じである場合、比率は1になり、これは彩度成分のQPを低減する効果を有さない。SMPTE ST2084伝達関数を仮定し、エンコードされた色空間としてITU−R2020を使用すると、ITU−R709におけるキャプチャに対する比率は、Crに対して0.5/0.126、およびCbに対して0.5/0.214になり、ならびにP3D65でキャプチャすることに関して、Crに対して0.5/0.178、およびCbに対して0.5/0.214になる。
1つの代替実施形態において、Y’CbCrに対する効果は、色の差がより可視である輝度レベルで実施される。キャプチャされ、エンコードされた色空間に依存するファクタが、飽和色に対する最大の輝度の値に基づく上記の実施形態におけるようなものの代わりに、キャプチャされ、エンコードされた色空間に依存するファクタは、本実施形態において、最大の輝度レベルとは異なる輝度レベルだが、依然として飽和色に対する輝度レベルに基づく。選択された輝度レベルは、好ましくは、色の差がより可視であるレベルか、またはより共通である輝度レベルである。選択された輝度レベルは、多くの典型的なビデオコンテンツに対する平均として事前に決定されることがある。選択された輝度レベルはまた、現在のシーン、現在のピクチャ、またはピクセルの現在のブロックの輝度の特徴、例えば平均輝度に応じて適応的に決定されることがある。
本実施形態において、CbおよびCrに対する最大の大きさは、所与の輝度レベルで、エンコードされた色空間に対して決定される。一定の輝度レベルに対する彩度成分の最大の大きさ、RGBmaxCbおよびRGBmaxCrを典型的に示す、色空間ITU−R709における、線形RGBの値を考える。RGBの値は、最大のCbの大きさに対して、および最大のCrの大きさに対して異なることに留意されたい。最大のCbの大きさはRGBmaxCb=[0 0 blueLinearValue]から来て、最大のCrの大きさはRGBmaxCr=[redLinearValue 0 0]から来て、例えばそれぞれ青、赤の色チャネルに対する最大のレスポンスである。次に、式1を参照し、RGB709toXYZによる行列の乗算を使用して、対応するRGBからXYZmaxCb709およびXYZmaxCr709それぞれへ換算する。ここで、行列RGB2020toXYZおよびRGBの値の逆、すなわち式1における行列の逆による行列の乗算を使用する換算によって、エンコードされた色空間、例えばITU−T2020、RGB2020Cb709、RGB2020Cb709において、どのRGBの値にこれが対応するかを決定する。次に、例えばSMPTE ST2084のような、エンコードされた色空間に適用される伝達関数に与えられる非線形RGBの値に換算し、これはITU−R2020に対して使用され、非線形のサンプルRGB2020Cb709’、RGB2020Cb709’をもたらす。次に、Y’CbCrに換算し、Y’CbCr2020Cb709’およびY’CbCr2020Cb709’をもたらす。
SMPTE ST2084などの所与の伝達関数を使用して、線形RGBの値RGBmaxCbおよびRGBmaxCrを非線形の値に換算することによってCbおよびCrに対する比較大きさを決定し、RGB2020Cb’およびRGB2020Cr’をもたらす。次に、Y’CbCr、Y’CbCr2020Cb’およびY’CbCr2020Cb’に換算する。Y’CbCr2020Cb’におけるUに対する大きさはCbに対する最大の大きさであり、Y’CbCr2020Cr’におけるVに対する大きさはエンコードされた色空間におけるCrに対する最大の大きさである。1つの色空間におけるキャプチャ、および別の色空間におけるエンコーディングにより、最大のCbの大きさおよび最大のCrの大きさは低減される。ルマは変化しないままである。低減された彩度の大きさにより彩度の係数を一掃することを回避するために、CbおよびCrの少なくとも1つの変換係数に対するQP値は低減される必要がある。色の成分のQP低減の量は、エンコードされた色空間における成分の最大の大きさと、同じ成分が別の色空間に元来キャプチャされたときの同じ成分の最大の大きさとの間の比率に関連する。色の成分のより大きい比率は、この成分のQPにおけるより大きい低減を示す。キャプチャされ、エンコードされた色空間が同じである場合、比率は1になり、これは彩度成分のQPを低減する効果を有さない。
1つの代替実施形態において、Y’CbCrに対する効果は、例えば、伝達関数のいかなる関与もなく、非線形ドメイン内で実施される。これはより保守的な比率を示し、小さい彩度の値に対する効果にフォーカスする。彩度成分の最大の大きさ、RGBmaxCb709’およびRGBmaxCr709’を典型的に示す、色空間ITU−R709における、色チャネルに対する最大の値が1である、非線形RGBの値R’G’B’を考える。次に、RGBからXYZmaxCb709’およびXYZmaxCr709’それぞれに換算する。ここで、エンコードされた色空間、例えばITU−R2020、RGB2020Cb709’、RGB2020Cb709’において、どのRGBの値にこれが対応するかを決定する。次に、Y’CbCr、Y’CbCr2020Cb709’、およびY’CbCr2020Cb709’に換算する。
コンテンツが、エンコードされた色空間でキャプチャされた場合、最大の彩度の大きさは(浮動小数の表現で)0.5である。1つの色空間におけるキャプチャ、および別の色空間におけるエンコーディングにより、最大のCbの大きさおよび最大のCrの大きさは低減される。ルマは変化しないままである。低減された彩度の大きさにより彩度の係数を一掃することを回避するために、CbおよびCrの少なくとも1つの変換係数に対するQP値は低減される必要がある。色の成分のQP低減の量は、エンコードされた色空間における成分の最大の大きさ(0.5)と、同じ成分が別の色空間に元来キャプチャされたときの同じ成分の最大の大きさとの間の比率に関連する。色の成分のより大きい比率は、この成分のQPにおけるより大きい低減を示す。キャプチャされ、エンコードされた色空間が同じである場合、比率は1になり、これは彩度成分のQPを低減する効果を有さない。ITU−R709におけるキャプチャに対する比率は、Crに対して0.5/0.28、およびCbに対して0.5/0.44になる。
上記に提示された実施形態において、比率すなわちファクタは最大の大きさに基づいて計算されるが、同様に彩度成分の値の最大の範囲に対して計算されることがある。
本実施形態において、図2のステップS1は、参照QP値、およびエンコードされた色空間における彩度成分の値の範囲と、キャプチャ色空間における彩度成分の値の範囲との間の比率を表すファクタに基づいて、QPオフセット値を計算することを含む。
それによって、この範囲は、maxCbcapture−minCbcaptureおよびmaxCrcapture−minCrcaptureとして規定され、maxCb/Crcaptureは、キャプチャ色空間における最大のCb/Crの値を表し、minCb/Crcaptureは、キャプチャ色空間における最小のCb/Crの値を表す。
CbおよびCrの値の範囲を含む比率/ファクタを導出するための実施形態は、Matlab表記法における擬似コードで以下に提示される。本実施形態において、エンコーディング色空間はITU−R2020であり、キャプチャ色空間はITU−R709またはP3D65である。
ここで、%Y’CbCrはYUVと表され、tfは伝達関数SMPTE ST2084であり、これはITU−R2020に対して規定される。
%RGBからYUVへの換算に対する行列
%RGBからYUV ITU−R709
mat709=[[0.212600,0.715200,0.072200];[−0.114572,−0.385428,0.500000];[0.500000,−0.454153,−0.045847]];
%RGBからYUVのITU−R2020
mat2020=[[0.262700,0.678000,0.059300];[−0.139630,−0.360370,0.500000];[0.500000,−0.459786,−0.040214]];
%RGBからXYZへの換算に対する行列
%RGBからXYZ ITU−R2020
rgb2XYZ2020=[[0.636958,0.144617,0.168881];[0.262700,0.677998,0.059302];[0.000000,0.028073,1.060985]];
%RGBからXYZ ITU−R709
rgb2XYZ709=[[0.412391,0.357584,0.180481];[0.212639,0.715169,0.072192];[0.019331,0.119195,0.950532]];
%RGBからXYZ P3D65
rgb2XYZP3D65=[[0.486571,0.265668,0.198217];[0.228975,0.691739,0.079287];[0.000000,0.045113,1.043944]];
%YUVからRGBへの換算に対する行列
%YUVからRGB ITU−R2020
yuv2020Torgb=[[1.0000,0.00000,1.47460];[1.0000,−0.16455,−0.57135];[1.0000,1.88140,0.00000]]
%fromLinear=1の場合、線形ドメイン内でXYZ換算を行い、導出されたRGBに非線形の伝達関数%を適用し、最終的にYUV換算を行い、fromLinear=0の場合、伝達関数の効果を除外する非%線形ドメインにおいてXYZ換算を行う。
fromLinear=1;
%encColorCaptureColorSame=0は、エンコードされた色空間がITU−R2020であり、キャプチャされた%色空間がITU−R709またはP3D65のどちらかであることを仮定し、encColorCaptureColorSame=1は、%エンコードされた色空間とキャプチャ色空間の両方がITU−R2020であることに対応する。
encColorCaptureColorSame=0;
%currValueInit=1は最大の値に対応し、線形の場合、10000にスケールされ、この例における%最大の線形の値になることが仮定される。
currValueInit=1
%doCb=1の場合、Cbに対して、そうでなければCrに対して行う。
doCb=1;
%doMax=1の場合、最大の値に対して、そうでなければ最小の値に対して行う。
doMax=1;
for doCb=0:1
for encColorCaptureColorSame=0:1
for doMax=0:1
if(fromLinear)
currValue=currValueInit*10000
else
currValue=currValueInit;
end
%最大の値
if(doMax)
if(doCb)
RGB=[0 0 currValue]’;
else
RGB=[currValue 0 0]’;
end;
%最小の値
else
if(doCb)
RGB=[currValue currValue 0]’;
else
RGB=[0 currValue currValue]’;
end;
end
%ITU−R709におけるキャプチャに対して
xyz709=rgb2XYZ709*RGB
if(encColorCaptureColorSame)
rgb2020from709=RGB
else
rgb2020from709=inv(rgb2XYZ2020)*xyz709
end
if(fromLinear)
rgb2020from709(1)=tf(rgb2020from709(1));
rgb2020from709(2)=tf(rgb2020from709(2));
rgb2020from709(3)=tf(rgb2020from709(3));
end
yuv2020from709=mat2020*rgb2020from709
if(encColorCaptureColorSame)
if(doCb)
Cb2020(doMax+1)=yuv2020from709(2);
else
Cr2020(doMax+1)=yuv2020from709(3);
end
else
if(doCb)
Cb709(doMax+1)=yuv2020from709(2);
else
Cr709(doMax+1)=yuv2020from709(3);
end
end
%P3D65におけるキャプチャに対して
xyzP3D65=rgb2XYZP3D65*RGB
if(encColorCaptureColorSame)
rgb2020fromP3D65=RGB
else
rgb2020fromP3D65=inv(rgb2XYZ2020)*xyzP3D65
end
if(fromLinear)
rgb2020fromP3D65(1)=tf(rgb2020fromP3D65(1));
rgb2020fromP3D65(2)=tf(rgb2020fromP3D65(2));
rgb2020fromP3D65(3)=tf(rgb2020fromP3D65(3));
end
yuv2020fromP3D65=mat2020*rgb2020fromP3D65
if(encColorCaptureColorSame)
if(doCb)
Cb2020(doMax+1)=yuv2020fromP3D65(2);
else
Cr2020(doMax+1)=yuv2020fromP3D65(3);
end
else
if(doCb)
CbP3D65(doMax+1)=yuv2020fromP3D65(2);
else
CrP3D65(doMax+1)=yuv2020fromP3D65(3);
end
end
end
end
end
fprintf(’maxCb2020=%f maxCb709=%f maxCbP3D65=%f\n’,Cb2020(2),Cb709(2),CbP3D65(2));
fprintf(’maxCr2020=%f maxCr709=%f maxCrP3D65=%f\n’,Cr2020(2),Cr709(2),CrP3D65(2));
fprintf(’minCb2020=%f minCb709=%f minCbP3D65=%f\n’,Cb2020(1),Cb709(1),CbP3D65(1));
fprintf(’minCr2020=%f minCr709=%f minCrP3D65=%f\n’,Cr2020(1),Cr709(1),CrP3D65(1));
%ITU−R2020の範囲および新しい範囲に基づいて、CbおよびCrに対するファクタを決定する。
fprintf(’factorCb709=%f factorCbP3D65=%f\n’,(Cb2020(2)−Cb2020(1))/(Cb709(2)−Cb709(1)),(Cb2020(2)−Cb2020(1))/(CbP3D65(2)−CbP3D65(1)));
fprintf(’factorCr709=%f factorCrP3D65=%f\n’,(Cr2020(2)−Cr2020(1))/(Cr709(2)−Cr709(1)),(Cr2020(2)−Cr2020(1))/(CrP3D65(2)−CrP3D65(1)));
上記の擬似コードからわかるように、ファクタは、キャプチャ色空間およびエンコードされた色空間が同じときのCbまたはCrの範囲と、キャプチャ色空間がITU−R709またはP3D65であり、エンコードされた色空間がITU−R2020であるときのCbまたはCrの範囲との間の比率に基づいて計算される。
fromLinearが0にセットされる、すなわち伝達関数が関与していない場合、以下の最大および最小の値ならびにファクタが取得される。
maxCb2020=0.500000 maxCb709=0.437655 maxCbP3D65=0.480665
maxCr2020=0.500000 maxCr709=0.281273 maxCrP3D65=0.355932
minCb2020=−0.500000 minCb709=−0.437655 minCbP3D65=−0.480666
minCr2020=−0.500000 minCr709=−0.281273 minCrP3D65=−0.355933
factorCb709=1.142451 factorCbP3D65=1.040224
factorCr709=1.777633 factorCrP3D65=1.404760
fromLinearが1にセットされる、すなわち伝達関数を含み、currValueが最大の線形の値にある場合、以下の最大および最小の値ならびにファクタが取得される。
maxCb2020=0.500000 maxCb709=0.214172 maxCbP3D65=0.214250
maxCr2020=0.500000 maxCr709=0.125750 maxCrP3D65=0.178455
minCb2020=−0.500000 minCb709=−0.120658 minCbP3D65=−0.219589
minCr2020=−0.500000 minCr709=−0.049020 minCrP3D65=−0.072733
factorCb709=2.986586 factorCbP3D65=2.305002
factorCr709=5.721823 factorCrP3D65=3.981087
fromLinearが1にセットされる、すなわち伝達関数を含み、currValueが100にあるとき、以下の最大および最小の値ならびにファクタが取得される。
maxCb2020=0.254039 maxCb709=0.158903 maxCbP3D65=0.160882
maxCr2020=0.254039 maxCr709=0.099174 maxCrP3D65=0.128911
minCb2020=−0.254039 minCb709=−0.101452 minCbP3D65=−0.164594
minCr2020=−0.254039 minCr709=−0.044327 minCrP3D65=−0.064298
factorCb709=1.951476 factorCbP3D65=1.561030
factorCr709=3.540566 factorCrP3D65=2.629684
fromLinearが1にセットされる場合、すなわち伝達関数を含み、currValueが1にある場合、以下の最大および最小の値ならびにファクタが取得される。
maxCb2020=0.074973 maxCb709=0.057911 maxCbP3D65=0.059612
maxCr2020=0.074973 maxCr709=0.038180 maxCrP3D65=0.047637
minCb2020=−0.074973 minCb709=−0.042709 minCbP3D65=−0.060692
minCr2020=−0.074973 minCr709=−0.020600 minCrP3D65=−0.028935
factorCb709=1.490208 factorCbP3D65=1.246389
factorCr709=2.550974 factorCrP3D65=1.958219
上記から、輝度のレベルはファクタの値に対するインパクトを有することがわかる。ファクタは、低い輝度レベルに対するよりもより高い輝度レベルに対してより大きい。特定の実施形態において、最も高い輝度レベルより低い輝度レベルに基づいてファクタを使用することが、より正しいことがある。
1つの実施形態において、図2のステップS1は、式4に基づいてQPオフセット値を計算することを含む。
max(−12,round(f×(k×refQP+m))) (式4)
式4において、fはファクタを表し、kは彩度のスケーリングファクタであり、典型的には負の彩度のスケーリングファクタであり、mは彩度のオフセットであり、refQPは参照QP値を表し、max(a,b)は、a>bの場合、aに等しく、そうでなければbに等しく、round(a)はaを最も近い整数に丸める。
1つの実施形態において、彩度成分の少なくとも1つの変換係数に対するQP値は、キャプチャ色空間とエンコードされた色空間との間の差に依存するファクタに基づいて、参照QP値に関連したQPオフセット値だけ低減される。以下の式は、彩度のQPオフセット値、Cb_QP_offsetおよびCr_QP_offsetを計算するために使用されることがあり、
Cb_QP_offset=max(−12,round(c_cb×(k×refQP+m)))
Cr_QP_offset=max(−12,round(c_cr×(k×refQP+m)))
kは彩度のスケーリングファクタであり、mは彩度のオフセットであり、c_cbおよびc_crは、(式4のfに対応する、)キャプチャ色空間とエンコードされた色空間との間の差に依存する、CbおよびCrのそれぞれに対するファクタである。
別の実施形態において、以下の式が彩度のQPオフセット値を計算するために使用されることがある。
Cb_QP_offset=Clip3(−12,12,round(c_cb×(k×refQP+m)))
Cr_QP_offset=Clip3(−12,12,round(c_cr×(k×refQP+m)))
このように、本実施形態において、QPオフセット値は、間隔[−12,12]の中にあるように規定される。QPオフセット値を計算するための上記の2つの実施形態における値−12または値−12、12は、いくつかの他の値によって置換されることがあり、それによって、必ずしもこれらの例の値に限定されない。
さらなる実施形態において、彩度のQPオフセット値は、
Cb_QP_offset=min(0,round(c_cb×(k×refQP+m)))
Cr_QP_offset=min(0,round(c_cr×(k×refQP+m)))
のように計算され、a<bである場合、min(a,b)はaに等しく、そうでなければbに等しい。
さらに別の実施形態において、彩度のQPオフセット値は、
Cb_QP_offset=Clip3(−12,12,min(0,round(c_cb×(k×refQP+m))))
Cr_QP_offset=Clip3(−12,12,min(0,round(c_cr×(k×refQP+m))))
のように計算される。
1つの実施形態において、キャプチャ色空間が、表現色空間すなわちエンコードされた色空間と同じである場合、c_cb=1であり、キャプチャ色空間がP3D65、かつ表現色空間すなわちエンコードされた色空間がITU−R2020である場合、c_cb=1.04であり、キャプチャ色空間がITU−R709、かつ表現空間すなわちエンコードされた色空間がITU−R2020である場合、c_cb=1.14である。同じように、キャプチャ色空間が表現色空間すなわちエンコードされた色空間と同じである場合、c_cr=1であり、キャプチャ色空間がP3D65、かつ表現色空間すなわちエンコードされた色空間がITU−R2020である場合、c_cr=1.39であり、キャプチャ色空間がITU−R709、かつ表現空間すなわちエンコードされた色空間がITU−R2020である場合、c_cr=1.777≒1.78またはc_cr=1.79である。
1つの実施形態において、彩度のスケーリングファクタkは−0.46であり、彩度のオフセットmは9.26である。
次にこれらのファクタは、上記の実施形態において示されるように、CbおよびCrそれぞれに対するQPオフセット値を制御するために使用されてよく、ここで対応する表記法は、CbおよびCrそれぞれに対するスケーリングファクタに対するc_cbおよびc_crである。
1つの実施形態において、彩度に対する品質はより多くの重要性を与えられ、すなわち、参照QP、およびキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタに少なくとも基づいて、尺度が満たされるとき、彩度に対するQP値は低減される。1つの実施形態において、尺度は、ビデオコーディングのビットストリームの少なくとも1つの構文要素に基づく。構文要素の1つの例はルマ(QpY)に対する量子化パラメータであり、ルマに対するQPは参照QPである。
重要性の1つの例は、ルマに対するよりも彩度に対するより低い量子化パラメータを有することによって与えられる。例えば、設定Aにおいて、ルマのQPが10であり、設定Bにおいて、ルマのQPが30であることを仮定する。彩度のQP値13(彩度のQPのオフセット3)を有することは、設定Aにおいて十分に良い色の品質を示すことがあるが、設定Bにおいて彩度のQP27(彩度のQPのオフセット−3)は、最も悪い色のアーチファクトを除去するために必要であることがある。QPが比較的高いときに彩度のQPを低減させる1つの理由は、そうでなければ、彩度に対するブロッキングアーチファクトが可視になることがあるということである。彩度をQP30より下に低減させる別の理由は、すべての彩度の変換係数を除去することを回避するために、テーブル1を参照すると、実際の彩度のQPが、HEVCにおいて(H.264においてもそうであるが、同じマッピングではない)30より大きいQP値に対して本来的に低減されるということである。HDRシーケンスのコーディングに関して、30より下のQP値は、ルマに対して使用されるよりも彩度に対するより低いQPから恩恵をこうむることもがある。彩度成分のQPの低減は、この彩度成分に対する、HEVCにおける、slice_cb_qp_offsetおよびslice_cr_qp_offset、ならびにH.264における、chroma_qp_index_offsetおよびsecond_chroma_qp_index_offsetなどの、負のQPのオフセットによって実現されることがある。
このように1つの実施形態において、図2のステップS1およびS2は、尺度が条件とされる。このような実施形態において、ステップS1およびS2は、ピクセルに対するルマ成分のQP値が30などの閾値より大きい場合、実施される。これは、本実施形態において、彩度成分のQPのオフセット値は、ルマのQP値が30などの閾値より大きい場合、参照QP値、およびキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタに基づいて計算されるのみであることを意味する。
しかし上記で言及されたように、また、30より下のQP値は、より低い彩度成分のQP値から恩恵をこうむることがある。このような訳で、QPオフセット値のこの条件付きの計算は任意選択である。
実施形態の別の態様は、複数のピクチャを含むビデオシーケンスにおける、複数のピクセルを含むピクチャ内のピクセルの彩度成分Cbおよび/またはCrに対する量子化パラメータ(QP)の値を計算する方法に関する。方法は、図2を参照すると、ステップS1において、max(−12,round(c_cb×(k×refQP+m)))および/またはmax(−12,round(c_cr×(k×refQP+m)))に基づいて、彩度成分Cbおよび/またはCrに対するQPオフセット値を計算することを含む。パラメータkは彩度のスケーリングファクタであり、mは彩度のオフセットであり、refQPは参照QP値である。ピクセルに対するキャプチャ色空間がピクセルに対するエンコードされた色空間と同じである場合、c_cb=1およびc_cr=1であり、キャプチャ色空間がP3D65、かつエンコードされた色空間がITU−R2020である場合、c_cb=1.04およびc_cr=1.39であり、キャプチャ色空間がITU−R709、かつエンコードされた色空間がITU−R2020である場合、c_cb=1.14およびc_cr=1.78または1.79であり、max(a,b)は、a>bの場合、aに等しく、そうでなければbに等しく、round(a)はaを最も近い整数に丸める。方法は、ステップS2において、QPオフセット値だけ低減された参照QP値に基づいて、彩度成分Cbおよび/またはCrに対するQP値を計算することも含む。
別の実施形態において、ステップS1は、min(0,round(c_cb×(k×refQP+m)))および/またはmin(0,round(c_cr×(k×refQP+m)))に基づいて、彩度成分Cbおよび/またはCrに対するQPオフセット値を計算することを含む。
さらなる実施形態において、ステップS1は、Clip3(−12,12,min(0,round(c_cb×(k×refQP+m))))および/またはClip3(−12,12,min(0,round(c_cr×(k×refQP+m))))に基づいて、彩度成分Cbおよび/またはCrに対するQPオフセット値を計算することを含む。
一般的な実施形態において、ステップS1は、round(f×(k×refQP+m))に基づいて、彩度成分のQPオフセット値を計算することを含み、fはピクセルに対するキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタを表す。
パラメータk、m、refQ、ならびに関数max(.)、min(.)、Clip3(.)、およびround(.)は、上記で規定されたようなものである。
実施形態の上記の態様において、パラメータkは好ましくは−0.46であり、パラメータmは好ましくは9.26である。
上記で説明された実施形態において、ファクタc_cbおよびc_crは、キャプチャ色空間とエンコードされた色空間との間の差に基づいて計算される。しかしこれは、キャプチャ色空間とエンコードされた色空間との間の差に基づいて、ファクタC_cb、M_cb、および、C_cr、M_crを計算することと同等である。このケースにおいて、C_cb=c_cb×k、M_cb=c_cb×m、および、C_cr=c_cr×k、M_cr=c_cr×mである。次にQPオフセット値に関する上記で説明された式は、
max(−12,round(c_cb×refQP+M_cb))
max(−12,round(C_cr×refQP+M_cr))
または
min(0,round(c_cb×refQP+M_cb))
min(0,round(c_cb×refQP+M_cb))
または
Clip3(−12,12,min(0,round(c_cb×refQP+M_cb)))
Clip3(−12,12,min(0,round(c_cb×refQP+M_cb)))
のように書き直されることがある。
図4は、図2に示された方法の追加の任意選択のステップを示す流れ図である。方法は、図2のステップS2から図4のステップS3まで継続し、QPオフセット値をエンコードすることを含む。次のステップS4は、エンコードされたQPオフセット値をデコーダに送ることを含む。
このように本実施形態において、ステップS1において計算されたQPオフセット値は、典型的には、ビデオシーケンスのエンコードされたバージョンを表すビットストリームにおいて、エンコードされ、およびデコーダに送信される。ここでデコーダは、エンコードされたQPオフセット値を解析または取り出し、デコードし、次に取得されたQPオフセット値を使用して彩度成分のQP値を計算してよい。デコーダでのQP値のこの計算は、好ましくは、図2のステップS2、すなわちQPオフセット値だけ低減された参照QP値に基づいて、彩度成分のQP値を計算することに関連して、前述において説明されたように行われる。
このように図2から図4に示された方法ステップは、好ましくは、エンコーダにおいて、およびビデオシーケンスのエンコード中に実施される。しかし実施形態によって計算されるようなQPオフセット値は、好ましくは、エンコードされ、デコーダに送信され、エンコードされたビデオシーケンス(ビットストリーム)のデコード中に使用される。
エンコードされたQPオフセット値は、典型的には、PPS、スライスのヘッダ、および/またはピクセルのブロックに対するエンコードされたデータなどの中の、ビットストリーム、すなわちエンコードされたビデオシーケンス内に含まれる。
図5は、複数のピクチャを含むビデオシーケンスをエンコードするための方法を示す流れ図である。それぞれのピクチャは複数のピクセルを含み、それぞれのピクセルは、ルマ成分の値および2つのサブサンプリングされた彩度成分の値と関連付けられる。方法は、ステップS20において、サブサンプリングされた彩度成分の値と予測された彩度成分の値との間の差に基づいて、ビデオシーケンスのピクチャ内のピクセルに対して、残差を計算することを含む。次のステップS21は、変換係数を取得するために、残差を周波数ドメインに変換することを含む。次に彩度成分のQP値は、図2のステップS1およびステップS2に関連して本明細書で以前に説明されたように計算される。次に変換係数はステップS22において量子化され、量子化のレベルはQP値によって決定される。
このようにステップS22は、図2に示されるように計算されたQP値に基づいて、または使用して、変換係数を量子化することを含む。
ルマ成分は完全な解像度で表されるので、ピクチャ内のそれぞれのピクセルは、個々のルマ成分の値を有する。しかし彩度成分はサブサンプリングされる。それに応じて、サブサンプリングされた彩度成分の値は、それによって、サブサンプリングに応じて2×2ピクセルまたは1×2ピクセルまたは2×1ピクセル、すなわちY’CbCr4:2:0またはY’CbCr4:2:2などの、ピクチャ内の複数の隣接したピクセルに関連付けられ、割り当てられる。サブサンプリングされた彩度成分の値がY’CbCr4:4:4にアップサンプリングされるとき、これは複数の隣接したピクセルが同じアップサンプリングされた彩度成分の値に割り当てられることを意味する。しかし複数の隣接したピクセルは個々のルマ成分の値を有する。ルマまたは彩度成分の値と関連付けられたピクセルは、それによって、ピクセルがルマ成分の値に割り当てられ、彩度成分の値に割り当てられ、またはサブサンプリングされた彩度成分の値をピクチャ内の隣接したピクセルと「共有する」ことを含んでいる。
ビデオシーケンスのエンコーディングにおいて、ルマおよび彩度成分は非従属的にエンコードされる。それに応じて、図5に示されたエンコードするステップS20からS22は、彩度成分Cbに対して、彩度成分Crに対して、または彩度成分Cb、Cr両方に対して実施されることがある。
一般にピクセルのブロックは、ピクセルのブロックのサブサンプリングされた彩度成分の値と、一般に予測された彩度成分の値で表される、ピクセルの予測ブロックの彩度成分の値との間の残差を計算することによってエンコードされる。予測された彩度成分の値は、内部予測または相互予測のどちらかで取得されることがあり、これは当技術分野でよく知られる。彩度成分の値と予測された彩度成分の値との間の差は、ピクセルのブロックに対する残差で表される。次に、ステップS20において計算されたような残差は、変換係数を取得するために、周波数ドメインに変換される。次に、これらの変換係数は、ステップS22において量子化された変換係数を取得するために、ステップS1およびS2において、ピクセルのブロックに対して計算されたQP値を使用して量子化される。次に、量子化された変換係数は、量子化された変換係数をエンコードするために、コンテキスト適応型バイナリ算術符号化(CABAC:context−adaptive binary arithmetic coding)エンコーダなどのエンコーダ、好ましくはエントロピーエンコーダに入力される。
図6は、複数のピクチャを含むエンコードされたビデオシーケンスをデコードするための方法を示す流れ図である。それぞれのピクチャは複数のピクセルを含み、それぞれのピクセルは、ルマ成分の値および2つのサブサンプリングされた彩度成分の値と関連付けられる。方法は、ステップS30において、量子化された変換係数およびピクセルの彩度成分のQPオフセット値を取得するために、エンコードされたビデオシーケンスをデコードすることを含む。QPオフセット値は、参照QP値、およびピクセルに対するキャプチャ色空間とピクセルに対するエンコードされた色空間との間の差に依存するファクタに依存する。方法はステップS31に継続し、変換係数を取得するために、QPのオフセット値だけ低減された参照QP値に基づいて計算されたQP値を使用して、量子化された変換係数を逆量子化することを含む。後続のステップS32は、残差を取得するために変換係数を逆変換すること含む。次に再構築されたサブサンプリングされた彩度成分の値は、ステップS43において、残差および予測された彩度成分の値に基づいて計算される。
図6に示されるようなデコーディングは実質的に、図5に示されるようなエンコーディングの逆である。彩度成分のQP値を計算し、ステップS31において、量子化された変換係数を逆量子化するのに使用されるQPオフセット値は、好ましくは、エンコードされたビデオシーケンスから取得され、図2のステップS1に関連して本明細書で以前に説明されたようにエンコーダ側で計算される。これは、デコーダが、PPS、スライスのヘッダ、またはピクセルのブロックに対するエンコードされたデータなどから、エンコードされたビデオのビットシーケンスから取り出されたQPオフセット値を使用し、QPオフセット値、およびピクセルのルマ成分のQP値などの参照QP値に基づいて、彩度成分のQP値を計算することができることを意味する。
ビデオコーディングの当技術分野において、典型的に、人間の知覚は輝度に、より敏感なので、彩度に対するよりルマに対してより多くのビットが費やされる。彩度は、典型的には、人間の知覚は彩度ほど影響を受けないので、ルマより小さい解像度で表される。彩度およびルマに対する同じQP値またはラムダを有することは、視覚的な色のアーチファクトにつながることがある。これらの色のアーチファクトは、SDRビデオに対するよりもHDRビデオに対してより可視になる傾向がある。ルマに対するよりも彩度に対するより低いQPを有することは、色の品質が視覚的に改善されない、増加されたビットレートをもたらすことがある。
1つの実施形態において、ビデオシーケンスをエンコードするための方法が提供される。ビデオシーケンスは複数のピクチャを含み、それぞれのピクチャは、ピクセルとも表される複数のサンプルを含み、それぞれのサンプル/ピクセルは、彩度およびルマの値と関連付けられる。残差と呼ばれる、オリジナルのピクセル/サンプルのデータと予測されたピクセル/サンプルのデータとの間の差は、変換係数によって周波数ドメインに変換され、モード選択および運動ベクトルなどの必要な予測パラメータと一緒に送信される前に量子化される。量子化のレベルはQPによって決定される。
それぞれのピクチャまたはピクチャの一部は、彩度成分のQPおよびルマ成分のQPと関連付けられる。方法は図7に示され、少なくとも、参照QP、およびキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタに基づいて、尺度が満たされるとき、参照QP、例えばQpY+pps_cb_qp_offsetおよびQpY+pps_cr_qp_offsetと比較して、1つの彩度成分の少なくとも1つの変換係数に対するQPを低減することを含む。方法は、低減されたQPと参照QPとの間の差、すなわちQPオフセット値をエンコードすることも含む。方法は、エンコードされた差をデコーダに送ることをさらに含む。
別の実施形態において、図7に示された方法は、オフセットによって、参照QP、例えばQpY+pps_cb_qp_offsetおよびQpY+pps_cr_qp_offsetと比較して、1つの彩度成分の少なくとも1つの変換係数に対するQP、すなわち色の成分のQPを低減することを含み、オフセットは、例えば少なくとも、参照QP、およびキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタに基づく。例えば彩度成分のQPは、キャプチャ色空間がP3D65、かつエンコードされた色空間がITU−R2020である場合と比較して、キャプチャ色空間がITU−R709、かつエンコードされた色空間がITU−R2020である場合に、異なるオフセットだけ低減されることがある。方法は、低減されたQPと参照QPとの間の差、すなわちQPオフセット値をエンコードすることも含む。方法は、エンコードされた差をデコーダに送ることをさらに含む。
上記の実施形態において、QpYは参照QP値を表し、QPオフセット値は、パラメータpps_cb_qp_offsetまたはpps_cr_qp_offsetによって表され、これは負の値を有する。
この方法の実施形態は図8に示され、我々が参照QPに基づいて関数をスケールすることをキャプチャする。別の実施形態は図9に示され、ファクタが輝度次第であることをキャプチャする。
図8に示された実施形態は、彩度成分の値をそれぞれ最大化、最小化するRGBの値を決定することを含む。方法は、エンコーディング色空間およびキャプチャ色空間が同じであるときの値の範囲と、現在のキャプチャ色空間およびエンコーディング色空間に対する値の範囲との間の比率に基づいてファクタを決定することも含む。ファクタは、現在のキャプチャ色空間がエンコーディング色空間より小さいとき、少なくとも1つの変換係数に対する低減されたQPを決定するための、参照QPに依存する関数をスケールするために使用される。方法は、低減されたQPと参照QPとの間の差、すなわちQPオフセット値をエンコードすることも含む。方法は、エンコードされた差をデコーダに送ることをさらに含む。
図9に示された実施形態は、輝度を与えられた彩度成分の値をそれぞれ最大化、最小化するRGBの値を決定することを含む。与えられた輝度に関して、ファクタは、エンコーディング色空間およびキャプチャ色空間が同じであるときの値の範囲と、現在のキャプチャ色空間およびエンコーディング色空間に対する値の範囲との間の比率に基づいて決定される。ファクタは、現在のキャプチャ色空間がエンコーディング色空間より小さいときに、少なくとも1つの変換係数に対する参照QPを低減させるために使用される。方法は、低減されたQPと参照QPとの間の差、すなわちQPオフセット値をエンコードすることも含む。方法はエンコードされた差をデコーダに送ることをさらに含む。
実施形態によれば、参照QPはルマのQPである。
実施形態によれば、尺度はルマに対するQPなどの構文要素から取り出される。別の例は、ルマのQPに適用された場合のスライスのQPのオフセットである。
さらなる実施形態によれば、彩度成分のQPは、キャプチャ色空間とエンコードされた色空間との間の差に基づいて、ピクチャまたはスライスに対する彩度成分のQPのオフセットをセットすることによって調節される。
さらなる実施形態によれば、彩度のQPは、彩度のQPのオフセットに基づいてブロックをセットすることによって調節される。
1つの実施形態において、色の成分のQPは、参照QP、およびキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタを使用する近似モデルに従って割り当てられる。ここで、ファクタが参照QPと比較して色の成分のQPを多く低減すればするほど、エンコードされた色空間と比較してキャプチャ色空間は小さくなる。
実施形態によれば、ファクタは、共通色空間への換算および、次にエンコードされた色空間で直接取得された場合の対応する色サンプルによるエンコードされた色空間への換算後に、キャプチャ色空間で取得されたような色サンプルの大きさを比較することによって決定される。
実施形態によれば、色サンプルの大きさは、RGBからY’CbCrへの換算後にCbまたはCr成分に対して取得される。
実施形態によれば、色空間の間の換算は線形のサンプルに対して実施され、非線形のサンプルに対する伝達関数を使用して換算される。
実施形態によれば、彩度成分のQPの修正は、max(−12,round(f*(k*refQP+m))によって決定され、ここでfはキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタであり、kは負の定数であり、mは定数である。
実装形態の例
本実装形態の例は、HDRコーディングにおける改善された色の品質を目指した新しいツールのパフォーマンスを評価するために、所与のルマのQP、キャプチャ色空間および表現色空間に対するHDRおよびWCGをコーディングするためのCbおよびCrのQPのオフセットをセットする方法を提唱する。
彩度成分(UV)の大きさは、ルマ大きさより本来的に50%弱い。より高い量子化パラメータ(QP)に対して彩度を完全に除去することを回避するために、H.264およびHEVCなどの以前の標準は、Y’UV4:2:0の色フォーマットに対するルマに対するよりも、彩度に対するより低いQP値を使用してきた。HEVCにおいて、30より上のQPは、彩度のQPのオフセットがシグナルされない限り、ルマのQPより本来的に下の彩度のQPをもたらす。HDRビデオのコーディングに負の彩度のオフセットを適用することによって、色の品質における著しい改善が実現されることがある。本実装形態の例において、ルマのQPに基づいて具体的なCbのQPのオフセットおよびCrのQPのオフセットを割り当てるための公式が提供される。CbおよびCrに対する個別のQPのオフセットの理由は、キャプチャ色空間が表現色空間のサブセットであるとき、彩度成分の最大の大きさにおいて異なる低減があるということである。
ビデオが1つの色空間でキャプチャされ、別の色空間で表されるときのY’UVの成分の効果は、XYZ色空間を介した換算によって調査されることがある。色が1つの色空間、例えばITU−R709でキャプチャされ、次にITU−R2020で色を表す場合、最大の輝度の大きさは維持される。しかし最大のクロミナンスの大きさは低減される。最大のCrの大きさは(浮動小数の表現で与えられる)0.5から0.28に低減され、最大のCbの大きさは0.5から0.44に低減される。我々がP3D65でキャプチャし、ITU−R2020で表した場合、最大の輝度の大きさは再び維持され、最大のCrの大きさは0.5から0.36に低減され、最大のCbの大きさは0.5から0.48に低減される。
このように、より大きい負の彩度のオフセットは、キャプチャ色空間が表現色空間より小さいときに彩度の係数を一掃することを除外するために必要とされる。表現空間のサブセットであるキャプチャ色空間のインパクトは、CbよりもCrに対してより大きく、Cb成分のよりもCr成分のより大きい負のオフセットをもたらす。
キャプチャされた色空間が表現色空間と同じである場合、最大の大きさの修正はない。
異なる彩度のQPのオフセットによるCfEテストシーケンスの非公式の検証に基づいて、我々は、シーケンスのQP、キャプチャ色空間および表現色空間に基づいてCbおよびCrのQPのオフセットを割り当てる近似的モデルを導出した。
Cb=max(−12,round(c_cb*(−k*QP+m)))
Cr=max(−12,round(c_cr*(−k*QP+m)))
ここで、キャプチャ色空間が表現色空間と同じである場合、c_cb=1であり、キャプチャ色空間がP3D65、かつ表現色空間がITU−R2020である場合、c_cb=1.04であり、キャプチャ色空間がITU−R709、かつ表現空間がITU−R2020である場合、c_cb=1.14である。
ここで、キャプチャ色空間が表現色空間と同じである場合、c_cr=1であり、キャプチャ色空間がP3D65、かつ表現色空間がITU−R2020である場合、c_cr=1.39であり、キャプチャ色空間がITU−R709、かつ表現空間がITU−R2020である場合、1.78などの、c_cr=1.78または1.79である。
HMは、シーケンスのQP上で未決のCbおよびCrのQPのオフセットを導出し、ソースの色空間および表現色空間をキャプチャし、それに対応してPPSのCbおよびCrのQPのオフセットをセットするために、修正された。
我々は、ClosedLoopConversion=5およびFilterInFloats=1で、CfEアンカーとHDRtools0.10の両方に対して近似的な彩度のQPのオフセットの割当てモデルを導入するとき、同じまたはより低いビットレートにおいて、視覚の品質がより良いまたは類似であることを照合した。彩度のQPの割当てモデルは、ソースの輝度の問題のエリアにおけるCfEアンカーの視覚の品質を改善することに失敗することが注目されることがある。
近似的な彩度のQPのオフセットの割当てを適用することは、アンカーのdeltaEのパフォーマンス、および平均BDレート−31%、−32%それぞれで5にセットされたClosedLoopConversionを伴うアンカーを著しく改善することが注目されることがある。我々自身の査定によれば、これらのQPのオフセットを適用することはまた、低いビットレートに対して視覚の品質を明らかにより良くする。我々は、彩度のQPのオフセットがHEVCのすべてのプロフィールにおいて提示され、したがってすべてのHEVCデコーダにおいて既にサポートされるツールであることを強調したい。我々は、彩度のQPのオフセットを適用するための近似的モデルは、HDRビデオのカラーコーディングを改善することを目指した新しいツールおよび技術を査定するときに考慮されることを提唱する。
ラムダは、パラメータをコーディングするのに必要とされるビットの量と、コーディングパラメータを使用した結果である歪みの両方を考慮する最善のコーディングパラメータを決定するために、レート歪み最適化(RDO:rate distortion optimization)において使用される。HEVCにおけるコスト関数は、
ラムダ×ビット+歪み
であるように思われ、ここで歪みは、典型的には、コーディングパラメータによって生成されるすべてのサンプル、典型的にはピクセルのブロックに対する2乗されたエラーの合計、または個々のエラーの絶対値の合計である。ラムダは、典型的にはQPの関数として使用される。
さらなる実施形態によれば、レート歪み最適化におけるより小さいラムダパラメータは、ルマに対するよりも彩度に対して使用される。
ルマに対するよりも彩度に対する、レート歪み最適化における、例えばQPの関数である、より小さいラムダパラメータも、使用されることがある。これは、彩度のQPを低減する代わりに、または彩度のQP低減と組み合わせて行われることがある。これは例えば、HDRビデオのコーディングのために、30より下のQPに対して使用される。
典型的にビデオは、いくつかのオーダーで以前のコーディングされたピクチャに関してエンコードされる。ランダムアクセス設定において、非従属的にコーディングされたピクチャ(IRAP)(ピクチャ0)は、図10を参照すると、秒ごとのような固定された間隔で位置付けられる。IRAPの間のピクチャは、典型的にはGOP構造でコーディングされ、ここで、表示時間の8ピクチャ前のピクチャ(ピクチャ8)を典型的には予測およびコーディングし、次にこのピクチャおよび以前にコーディングされたピクチャを使用して、表示時間の4ピクチャ前のピクチャ(ピクチャ4)を予測およびコーディングする。次に、表示時間の2ピクチャ前(ピクチャ2)、および6ピクチャ前のピクチャ(ピクチャ6)を同様に予測およびコーディングする。次に、表示時間の1、3、5、および7ピクチャ前のピクチャ(ピクチャ1、ピクチャ3、ピクチャ5、およびピクチャ7)を同様に予測およびコーディングする。ピクチャ1、3、5、および7は、最も高い階層レベル(レイヤ3)にあることを指し、ピクチャ2、4、および6は、2番目に最も高い階層レベル(レイヤ2)にあることを指し、ピクチャ4は、2番目に最も低いレベル(レイヤ1)にあることを指し、ピクチャ0、8は、最も低いレベル(レイヤ0)にあることを指す。典型的にはピクチャ1、3、5、および7は、いずれの他のピクチャの予測に対しても使用されないので、非参照ピクチャと呼ばれる。非参照ピクチャは、ビットストリームのデコード能力を消失させることなく除去されてよい。GOP構造の例が図10に示される。構造は次のIRAPピクチャまで繰り返される。典型的には、より高いQPはGOP階層内のより高いピクチャに対してセットされ、その結果ピクチャ1、3、5、および7が最も高いQPを有する。
低遅延設定において、第1のピクチャは非従属的にコーディングされたピクチャ(IRAP)(ピクチャ0)であり、後続のピクチャは典型的には、図11を参照すると、以前にコーディングされたピクチャに基づいて従属的にコーディングされる。典型的には、あらゆる第4のピクチャ(ピクチャ4)は、(ピクチャ1、2、3)の間にあるピクチャのQPより低いQPを有する。典型的には、あらゆる第4のピクチャに隣接したピクチャ(ピクチャ2)は、GOPと類似のこの階層における最後のピクチャ(ピクチャ1、3)より低いQPを有するが、ここで予測は、典型的には将来のピクチャから決して行われない。最も低いQPを有するあらゆる第4のピクチャは、最も低い階層レベル(レイヤ0)にあることを指し、隣接したピクチャは、次に高い階層レベル(レイヤ1)にあることを指し、ピクチャの最後のタイプは、最も高い階層レベル(レイヤ2)にあることを指す。低遅延設定の例は図11に描かれる。
さらなる実施形態によれば、彩度のQPは、階層レベルに基づいてピクチャまたはスライスに対する彩度のQPのオフセットをセットすることによって参照QPから低減される。階層レベルは、非従属的にデコード可能なピクチャ(IRAP)に対して使用されるQPと比較して、このピクチャに対するルマに対して使用されるQPによって規定される。低減は、具体的な参照QPに対して存在することがあるルマのQPと比較して、彩度のQPのいずれかの本来の低減を考慮してもよい。
本実施形態において、スライスまたはピクチャに対する彩度のQPは、階層レベルに従ってセットされ、ここで階層レベルは、非従属的にデコード可能なピクチャ(IRAP)に対して使用されるQPと比較して、このピクチャに対するルマに対して使用されるQPによって規定される。IRAPに対するルマのQPと比較して、現在のピクチャのルマのQPの間のより大きい差は、より高い階層レベルに対応する。1つの例は、階層レベルを増加させることで彩度のQPを減少させることである。別の例は、例えばルマに対して使用されるQPによって規定される階層レベルを増加させることで彩度のQPを増加させることである。本実施形態において、彩度のQPは階層レベルに応じて参照QPと比較して低減され、これはルマのQPによって規定されることがある。
それによって本実施形態は、複数のピクチャを含むビデオシーケンスにおける、複数のピクセルを含むピクチャ内のピクセルの彩度成分のQP値を計算する方法に関する。方法は、ビデオシーケンス内のピクチャに対する階層レベルに基づいて、彩度成分のQPオフセット値を計算することを含む。方法は、参照QP値およびQPオフセット値に基づいて、彩度成分のQP値を計算することも含む。
1つの実施形態において、QPオフセット値を計算することは、ビデオシーケンス内のピクチャに対するルマのQP値および非従属的にデコード可能なピクチャ(IRAP)に対するルマのQP値に基づいて、彩度成分のQPオフセット値を計算することを含む。
1つの実施形態において、QP値を計算することは、QPオフセット値だけ低減された、ピクチャに対するルマのQP値に基づいて、彩度成分のQP値を計算することを含む。
別の実施形態において、QP値を計算することは、QPオフセット値だけ増加される、ピクチャに対するルマのQP値に基づいて、彩度成分のQP値を計算することを含む。
1つの実施形態において、QPオフセット値を計算することは、多項式モデルに基づいて、彩度成分のQPのオフセット値を計算することを含む。例えば、多項式モデルのパラメータは、ルマのQP値を増加させるために彩度のQP値の本来の低減を打ち消すために導出されることがある。
このような訳で、本実施形態において、QPオフセット値は、スライスまたはピクチャレベル上などの、彩度成分のQP値の増加を可能にする。
HEVCおよびH.264において、参照QPはPPS内で指示される。この参照QPは、スライスのヘッダにおけるQPのオフセットによって調節されることがある。ピクチャのコーディング中、コーディング効率を改善するために、QPトグリングと呼ばれる、QPを変えることは有益である。これは、スライスのヘッダにおけるスライスのQPのオフセットをシグナリングすることによって行われる。QPトグリングは通例、階層的に実施される。これは、ランダムアクセスである図10、および低遅延である図11において、2つの異なる設定に関して示される。QPトグリングに伴う問題は、彩度の品質はHDRに対して著しく低減されるというものである。加えて、ブロッキングアーチファクトが発生することがあり、これはHDRのケースにおいて、QPトグリングに関連することがある。
したがって、ピクチャまたはスライスに対する参照QPが増加されるとき、例えば尺度が満たされるとき、参照QPの増加が、ルマのQPに対する増加と同じ彩度のQPの増加を示さないように、参照QPから導出される彩度のQPは、負のピクチャまたはスライス固有のオフセットを適用することによって低減される。これは、トータルのビットレートに関するそれほど大きな効果がない状態で、彩度の品質を改善することができる。テーブル1参照すると、HEVCにおいて、30よりも高いQPに対して、彩度のQPの「デフォルトの」低減があるので、QP30より上の彩度のQPの修正は、彩度のQPを低減しすぎることを回避するために、このことを考慮するべきである。
彩度が、スライスの彩度のQPのフラグが1にセットされるときにエンコードされるスライスの彩度のQPのオフセットの使用によって、ルマより細かい量子化でエンコードされる、TEncSlice.cpp(HMの参照ソフトウェア)におけるコード例。
if(eSliceType!=I_SLICE)
{
Int theOffset=−2;
if(m_pcCfg−>getGOPSize()==4)
{
switch(m_pcCfg−>getGOPEntry(iGOPid).m_QPOffset)
{
//HMによるQPのオフセット
case3:theOffset=−5;break;
case2:theOffset=−4;break;
case1:theOffset=−3;break;
default:theOffset=−2;break;
}
}
if(m_pcCfg−>getGOPSize()==8)
{
switch(m_pcCfg−>getGOPEntry(iGOPid).m_QPOffset)
{
//HMによるQPのオフセット
case4:theOffset=−6;break;
case3:theOffset=−5;break;
case2:theOffset=−4;break;
case1:theOffset=−3;break;
default:theOffset=−2;break;
}
}
rpcSlice−>setSliceChromaQpDelta(COMPONENT_Cb,theOffset);
rpcSlice−>setSliceChromaQpDelta(COMPONENT_Cr,theOffset);
}
else
{
rpcSlice−>setSliceChromaQpDelta(COMPONENT_Cb,−2);
rpcSlice−>setSliceChromaQpDelta(COMPONENT_Cr,−2);
}
rpcSlice−>getPPS()−>setSliceChromaQpFlag(true);
上記で、彩度のQPのオフセットは、個々のGOPエントリ、すなわち階層レベルに対して規定されるQPのオフセット(m_QPOffset)に対して未決のままセットされるということがわかる。この結果は、彩度は、内部のスライス(I_SLICE)に対する、および個々の階層レベルに対するルマの量子化に対して使用されるより細かい2つの量子化ステップで量子化されるというものである。代替として、彩度は、内部のスライスに対する最も細かい量子化、例えば−6のSliceChromaQpDelta、およびそれぞれの階層レベル、例えば−5、−4、−3、−2、他のSliceChromaQpDeltaに対する彩度に対するより粗い量子化を有することがある。
彩度のQPのオフセットの上記の変化は、HEVCの参照ソフトウェア(HM)に対するエンコーダ設定ファイルにおける、QPfactorとQPoffsetの間のQPchromaOffsetなどの、追加のパラメータとして規定されることがある。ここで、より高い階層レベル(より高いQPoffset)に対して、より細かい彩度の量子化を使用するアプローチで、
# Type POC QPoffset QPchromaOffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics参照ピクチャはdeltaRPSを予測する#ref_idcs参照idcs
Frame1:B 8 1 −3 0.442 0 0 0 4 4 −8 −10 −12 −16 0
Frame2:B 4 2 −4 0.3536 0 0 0 2 3 −4 −6 4 1 4 5 1 1 0 0 1
Frame3:B 2 3 5 0.3536 0 0 0 2 4 −2 −4 2 6 12 4 1 1 1 1
Frame4: B 1 4 −6 0.68 0 0 1 2 4 −1 1 3 7 11 5 1 0 1 1 1
Frame5: B 3 4 −6 0.68 0 0 1 2 4 −1 −3 1 5 1 −2 5 1 1 1 1 0
Frame6:B 6 3 −5 0.3536 0 0 0 2 4 −2 −4 −6 2 1 −3 5 1 1 1 1 0
Frame7:B 5 4 −6 0.68 0 0 1 2 4 −1 −5 1 3 11 5 1 0 1 1 1
Frame8:B 7 4 −6 0.68 0 0 1 2 4 −1 −3 −7 1 1 −2 5 1 1 1 1 0
次に、QPchromaOffsetは、slice_cb_qp_offsetおよびslice_cr_qp_offsetをセットするために、TEncSlice.cpp内で使用される。
彩度のQPの修正を決定するときの、テーブル1内のような参照QPと彩度のQPとの間のデフォルトのマッピングを考慮するための例。
参照QPが36であり、所望の彩度のQP低減が−6であると仮定する。次に、テーブル1によるマップされたQPと、参照QPとの間の差を決定する。これは、34−36=−2を示す。次に、スライスのQPのオフセットは、−6−(−2)=−4にセットされるはずである。次に、実際の彩度のQPは、QP36−4=32に対して使用するテーブルをチェックすることによって取得され、次に31にマップされる。これは、5の低減に対応するので、スライスのQPのオフセットは、e.q.−5より小さい1つのユニットにセットされる。次に、テーブルは、QP36−5=31でチェックされることがあり、これはQP30にマップされる。ここで我々は、−5に等しいスライスのQPのオフセットが彩度のQPの所望の低減−6を示すことを見つけた。このアプローチは、H.264に対して使用されることもあるが、H.264において規定される固有のマッピングを使用する。
他のビデオコーデックと類似のHEVCは、ブロックベースのコーディングによるブロッキングアーチファクトを低減するために意図される、再構築されたサンプルに対するループ内デブロッキングフィルタを含む。デブロッキングフィルタは、ルマおよび彩度成分の両方に対して適用されるが、ブロック境界に配置されたサンプルに対してのみ適用される。フィルタ強度は、ブロックのいずれかが、変換係数および/または運動ベクトルおよび参照インデックスにおける差を有するかどうかを、境界のそれぞれの側のブロックタイプの関係に基づいて決定される。フィルタ強度および平均QPから、2つの値tCおよびbetaは決定される。tCおよびbetaに対するオフセットは、ピクチャレベルでシグナルされることがある。QPが高いとき、フィルタ強度はより強く、したがってQPが低いときよりも大きいサンプルの変動を除去する。
別の実施形態において、彩度のQPは、デブロッキングの基準値に基づく尺度が、ブロッキングアーチファクトの出現を回避するように満たされる場合に低減されることがある。デブロッキングの基準値は、現在のピクチャ/ブロックと同じ参照QPを有するブロックに対する彩度変換ブロックの境の彩度サンプルに対して適用される。
HEVCにおいて使用される、コーディングアーチファクトを除去することを目指す、ループフィルタリングのための1つの技術は、サンプルアダプティブオフセット(SAO:sample adaptive offset)である。SAOが、HEVCの語彙のコーディングツリーユニット(CTU:coding tree unit)における、ブロックに対して使用されることが明示されるとき、ピクセル値の隣の帯域におけるピクセル値を修正するか、または明示された方向における一定のエッジの特徴(エッジオフセットクラス)を有するピクセル値を修正するかのどちらかである。帯域のオフセットは4つの帯域/カテゴリに規定され、ここで最小のピクセル値を有する帯域の位置は明示され、ピクセル値を増加させながら他の帯域が続く。エッジのオフセットは、4つのカテゴリ、すなわち最大値、最小値、増加ステップ、または減少ステップに規定される。オフセットはそれぞれのブロックに対して固有であるが、隣接したブロックからコピーされることもある。SAOは、個々の色の成分、例えばルマ、および彩度成分に対して非従属的に使用されることがある。
別の実施形態において、SAOフィルタのオフセットパラメータに基づく尺度が満たされる場合、彩度のQPが低減されることがある。例としてこれは、現在のピクチャ/ブロックと同じ参照QPを有するブロックに対して行われることがある。
さらなる実施形態によれば、彩度のQPは、彩度サンプルの分布に基づいてピクチャまたはスライスに対する彩度のQPのオフセットをセットすることによって調節される。
このように、1つの態様によれば、ソースの彩度サンプルの分布に関する尺度が満たされる場合、彩度のQPは低減される。
このケースにおいて、図7の第1のステップは、例えば、彩度サンプル分布に基づいて、尺度が満たされるとき、参照QPと比較して、1つの彩度成分の少なくとも1つの変換係数に対するQPを低減することを含む。
多くの彩度サンプルが同じ値を有する場合、量子化は、彩度サンプルが具体的なピーク値がない状態でより等しく分散されるときと比較して、量子化ノイズに対して比較的大きな効果を有することがある。ピークのある(peaky)彩度サンプル分布に対して、より低い彩度のQPを有することは、ピークがよく表される可能性が高くなるので、彩度の表現を著しく改善させることがある。1つのアプローチは、ピクチャまたはスライスをコーディングする前にピクチャまたはスライスのクロミナンス分布を推定し、これに基づいて、ピクチャまたはスライスをエンコードするときに使用されることになるピクチャまたはスライスの彩度のQPを決定することである。別のアプローチは、コーディングする前に色の成分のサンプルを量子化および逆の量子化を行い、量子化からの歪みを低減させることに対して最大の効果を示す彩度成分のQPを選択するためにテストすることである。より低い彩度成分のQPは、典型的には、量子化からの歪みを低減させるが、彩度成分のコーディングのためのビットレートも増加させる。ピークのある彩度サンプル分布がある場合、一定の彩度成分のQPは、量子化の歪みを低減させることに対して最大の効果を有することがある。彩度のQPをさらに低減させることは、量子化の歪みをさらに低減させることがあるが、ビットレートの期待された増加と比較して十分ではない。量子化の歪みとビットの推定数の両方をトレードオフさせるために、RDO(レート歪み最適化)は、lambda*estBits+distに基づいてコスト関数と共に使用されることがある。ここでestBitsは彩度成分のQPの関数であってよく、distはピクチャに対する2乗された歪み(または歪みの絶対値)の合計であってよい。ラムダはQPの関数であってよい。暗いエリアの彩度の量子化の歪みが明るいエリアの彩度の歪みより可視ではないことを反映させるために、ルマに基づいて歪みに重みを付加することが使用されることがある。それぞれの彩度の歪みのサンプルは、対応するルマサンプルの重みを付加された平均によって増大されることがある。このように彩度の歪みは、明るいエリアの彩度の歪みにバイアスされ、暗いエリアの歪みにあまり気付かなくなる。アプローチがルマのQPをセットするために使用されることもあることが注目されることがある。
さらなる実施形態によれば、彩度のQPは、彩度サンプルの量子化および逆の量子化からの歪みに基づいて、ピクチャまたはスライスに対する彩度のQPのオフセットをセットすることによって調節される。
別の実施形態において、彩度のQPは、少なくとも1つの変換のサイズに基づく尺度が満たされる場合、低減されることがある。彩度のQPは、より小さい変換サイズと比較してより大きい変換サイズに対するルマのQPより小さい値にセットされる。
1つの実施形態において、彩度のQPは、ソースのルマおよび彩度サンプルの特徴に従ってセットされる。言い換えると、彩度のQPは、ソースのルマおよび彩度サンプルの特徴に関連した尺度に従って低減されることがある。本実施形態の1つのバージョンにおいて、彩度のQPは、ソースのルマ/彩度のシーケンスにおける運動の量に従ってセットされる。本実施形態の別のバージョンにおいて、彩度のQPのオフセットは、ソースシーケンスの色に基づいてセットされる。例えば、鮮やかなピクセルを含んでいるブロック、すなわちルマサンプルが高いブロックは、より暗いピクセルを含んでいるブロック、すなわちルマサンプルが低いブロックより、ルマのQPと比較して比較的より低い彩度のQPを割り当てられることがあり、ここで色のアーチファクトは典型的にはあまり目立たなくなる。
別の実施形態において、彩度のQPは、ソースの彩度サンプルの分布および参照QPの値に関する尺度が満たされる場合、参照QPと比較して低減される。
個々の変換係数に対する個別のスケーリングファクタを伴うスケーリング行列は、量子化の一部として個々のスケーリングファクタで変換係数を個別にスケーリングすることによって、個々の変換係数に対する異なる量子化効果をもたらすために使用されることがある。これは、例えば、量子化効果が、より低い周波数の変換係数に対するより、より高い周波数の変換係数に対して、より強くなることを可能にする。HEVCにおいて、デフォルトのスケーリング行列は、それぞれの変換サイズに対して規定され、シーケンスパラメータセット(SPS:Sequence Parameter Set)および/またはピクチャパラメータセット(PPS:Picture Parameter Set)内のフラグによって起動されることがある。スケーリング行列はH.264にも存在する。HEVCにおいて、これは、場合によっては、個々の色の成分、変換サイズ、および予測タイプ(内部または相互モード)に対して、SPSまたはPPSにおける独自のスケーリング行列を具体的に規定することでもある。式5において、HEVCの仕様[1]から下で、どのようにスケーリングファクタ(m[x][y])が、量子化された変換係数(TransCoeffLevel)をスケールするために使用されることがあるかが示される。スケーリングファクタが16より大きいとき、係数はスケーリングファクタが16より小さいとき以上に量子化される。16に等しいスケーリングファクタは、スケーリングのない量子化に対応する。
x=0..nTbS−1、y=0..nTbS−1である、スケールされた変換係数d[x][y]の導出に関して、以下は適用する。
スケーリングファクタm[x][y]は以下のように導出される。
以下の条件の1つまたは複数が真である場合、m[x][y]は16に等しくセットされる。
scaling_list_enabled_flagは、0に等しい。
transform_skip_flag[xTbY][yTbY]は、1に等しく、nTbSは、4より大きい。
そうでなければ、以下は適用する
m[x][y]=ScalingFactor[sizeId][matrixId][x][y]
ここでsizeIdは、(nTbS)×(nTbS)に等しい量子化行列のサイズに関して、[1]におけるテーブル7−3に明示され、matrixIdは、sizeId、CuPredMode[xTbY][yTbY]、およびcIdxそれぞれに関して、[1]におけるテーブル7−4に明示される。
スケールされた変換係数d[x][y]は以下のように導出される。
d[x][y]=Clip3(coeffMin,coeffMax,((TransCoeffLevel[xTbY][yTbY][cIdx][x][y]*m[x][y]*levelScale[qP%6]<<(qP/6))+(1<<(bdShift−1)))>>bdShift) (式5)
さらなる態様によれば、スライスまたはピクチャに対する少なくとも1つのスケーリング行列は、階層レベルに従ってセットされ、ここで階層レベルは、非従属的にデコード可能なピクチャ(IRAP)に対して使用されるQPと比較して、このピクチャに対するルマに対して使用されるQPによって規定される。IRAPに対するルマのQPと比較して、現在のピクチャのルマのQPの間のより大きい差は、より高い階層レベルに対応する。1つの例は、階層レベルを増加させながら、例えば、16に等しいHEVCのスケーリングファクタにおける、より高い周波数の係数と比較して、例えば、16より小さいHEVCのスケーリングファクタにおける、より低い周波数の係数の忠実度を増加させることである。別の例は、例えば、16に等しいHEVCのスケーリングファクタにおける、低い周波数の係数と比較して、例えば、16より大きいHEVCのスケーリングファクタにおける、より高い周波数の係数の忠実度を減少させることである。次にこれは、増加したQP、増加した階層レベルと組み合わせて使用されるとき、高い周波数の係数より低い周波数の係数に対して、QPの効果を様々に作用させることがある。
彩度(CbまたはCr)に対するQPは、彩度の変換係数を(エンコーダにおいて)量子化すること、および(エンコーダおよびデコーダにおいて)逆の量子化を行うために使用される。HEVCにおいて説明された逆の量子化の一部は、16の固定されたスケーリングファクタである。これは、スケーリングが可能とされないときに使用される。スケーリングが可能とされた場合、彩度に対するスケーリング行列は、個々の変換係数、例えば周波数に対するQPの個別の修正を可能にする。16より上のスケーリングファクタは、対応する変換係数に対するQPを増加させることに対応し、16より下のスケーリングファクタは、対応する変換係数に対するQPを減少させることに対応する。したがって彩度のQPは、典型的には彩度の品質を改善するのに視覚的により重要である低い周波数の係数に対して低減されることがある。したがって実施形態によれば、参照QPが増加されるとき、我々は彩度のQPを低減させ、これは、参照QPの増加がルマのQPに対するものと、彩度のQPの同じ増加を示さないように、低い周波数の変換係数に対して、16より小さいスケーリングファクタを適用することによって参照QPから導出される。これは、トータルのビットレートのそれほど大きな効果がない状態で、彩度の品質を改善することができる。
別の実施形態において、スライスまたはピクチャに対する少なくとも1つの彩度のスケーリング行列は、階層レベルに関する尺度に従ってセットされ、ここで階層レベルは、非従属的にデコード可能なピクチャ(IRAP)に対して使用されるQPと比較して、このピクチャに対するルマに対して使用されるQPによって規定される。参照QPはルマのQPであってよい。IRAPに対するルマのQPと比較して現在のピクチャのルマのQPの間のより大きい差は、より高い階層レベルに対応する。1つの例は、階層レベルを増加させながら、例えば、16に等しいHEVCのスケーリングファクタにおける、より高い周波数の彩度の係数と比較して、例えば、16より小さいHEVCのスケーリングファクタにおける、より低い周波数の彩度の係数の忠実度を増加させることである。別の例は、例えば、16に等しいHEVCのスケーリングファクタにおける、低い周波数の彩度の係数と比較して、例えば、16より大きいHEVCのスケーリングファクタにおける、より高い周波数の彩度の係数の忠実度を減少させることである。次にこれは、増加した彩度のQPと組み合わせて使用されるとき、高い周波数の彩度の係数より、低い周波数の彩度の係数により良い忠実度を与えることができる。
実施形態の別の態様は、複数のピクチャを含むビデオシーケンスにおける、複数のピクセルを含むピクチャ内のピクセルの彩度成分のQP値を計算するためのデバイスに関する。デバイスは、参照QP値、およびピクセルに対するキャプチャ色空間とピクセルに対するエンコードされた色空間との間の差に依存するファクタに基づいて、彩度成分のQPオフセット値を計算するように設定される。デバイスはまた、QPオフセット値だけ低減された参照QP値に基づいて、彩度成分のQP値を計算するように設定される。
1つの実施形態において、デバイスは、キャプチャ色空間におけるピクセルの線形RGBの値を、エンコードされた色空間におけるルマ成分の値および2つのサブサンプリングされた彩度成分の値に換算するように設定され、彩度成分は、2つのサブサンプリングされた彩度成分の値のうちの1つに対する彩度成分である。
1つの実施形態において、デバイスは、ピクセルに対するルマ成分のQP値、およびピクセルに対するキャプチャ色空間とピクセルに対するエンコードされた色空間との間の差に依存するファクタに基づいて、彩度成分のQPオフセット値を計算するように設定される。デバイスはまた、QPオフセット値だけ低減された、ルマ成分のQP値に基づいて、彩度成分のQP値を計算するように設定される。
1つの実施形態において、デバイスは、参照QP値、およびエンコードされた色空間における彩度成分の最大の大きさと、彩度成分がキャプチャ色空間に元来キャプチャされたときの彩度成分の最大の大きさとの間の比率を表すファクタに基づいて、QPオフセット値を計算するように設定される。
1つの実施形態において、デバイスは、参照QP値、およびエンコードされた色空間における彩度成分の範囲と、キャプチャ色空間における彩度成分の値の範囲との間の比率を表すファクタに基づいて、QPのオフセット値を計算するように設定される。
1つの実施形態において、デバイスは、max(−12,round(f×(k×refQP+m)))に基づいて、QPオフセット値を計算するように設定される。別の実施形態において、デバイスは、min(0,round(f×(k×refQP+m)))に基づいて、QPオフセット値を計算するように設定される。さらなる実施形態において、デバイスは、Clip3(−12,12,min(0,round(f×(k×refQP+m))))に基づいて、QPオフセット値を計算するように設定される。
実施形態のさらなる態様は、複数のピクチャを含むビデオシーケンスにおける、複数のピクセルを含むピクチャ内のピクセルの彩度成分Cbおよび/またはCrに対するQP値を計算するためのデバイスに関する。デバイスは、max(−12,round(c_cb×(k×refQP+m)))および/またはmax(−12,round(c_cr×(k×refQP+m)))に基づいて、彩度成分Cbおよび/またはCrに対するQPオフセット値を計算するように設定される。kは彩度のスケーリングファクタであり、mは彩度のオフセットであり、refQPは参照QP値であり、ピクセルに対するキャプチャ色空間がピクセルに対するエンコードされた色空間と同じである場合、c_cb=1およびc_cr=1であり、キャプチャ色空間がP3D65、かつエンコードされた色空間がITU−R2020である場合、c_cb=1.04およびc_cr=1.39であり、キャプチャ色空間がITU−R709、かつエンコードされた色空間がITU−R2020である場合、c_cb=1.14およびc_cr=1.78または1.79であり、max(a,b)は、a>bの場合、aに等しく、そうでなければbに等しく、round(a)はaを最も近い整数に丸める。デバイスはまた、QPオフセット値だけ低減された参照QP値に基づいて、彩度成分Cbおよび/またはCrに対するQP値を計算するように設定される。
1つの実施形態において、態様のいずれかによるデバイスは、QPオフセット値をエンコードするように設定される。デバイスはまた、エンコードされたQPオフセット値をデコーダに送るように設定される。
実施形態の別の態様は、複数のピクチャを含むビデオシーケンスをエンコードするためのエンコーダに関する。それぞれのピクチャは複数のピクセルを含み、それぞれのピクセルは、ルマ成分の値および2つのサブサンプリングされた彩度成分の値と関連付けられる。エンコーダは、サブサンプリングされた彩度成分の値と予測された彩度成分の値との間の差に基づいて、ビデオシーケンスのピクチャ内のピクセルに対して、残差を計算するように設定される。エンコーダはまた、変換係数を取得するために、残差を周波数ドメインに変換するように設定される。エンコーダは、上記に従ってQP値を計算するためのデバイスも備える。デバイスは、彩度成分のQP値を計算するように設定される。エンコーダは変換係数を量子化するようにさらに設定され、量子化のレベルはQP値によって決定される。
1つの実施形態において、エンコーダは、量子化された変換係数および任意選択でQPのオフセット値をエンコードするように設定される。
実施形態のさらなる態様は、複数のピクチャを含むエンコードされたビデオシーケンスをデコードするためのデコーダに関する。それぞれのピクチャは複数のピクセルを含み、それぞれのピクセルは、ルマ成分の値および2つのサブサンプリングされた彩度成分の値と関連付けられる。デコーダは、量子化された変換係数およびピクセルの彩度成分のQPオフセット値を取得するために、エンコードされたビデオシーケンスをデコードするように設定される。QPオフセット値は、参照QP値、およびピクセルに対するキャプチャ色空間とピクセルに対するエンコードされた色空間との間の差に依存するファクタに依存する。デコーダはまた、変換係数を取得するために、QPオフセット値だけ低減された参照QP値に基づいて決定されたQP値を使用して、量子化された変換係数を逆量子化するように設定される。デコーダは、残差を取得するために、変換係数を逆変換するようにさらに設定される。デコーダは追加として、残差および予測された彩度成分の値に基づいて、再構築されたサブサンプリングされた彩度成分の値を計算するように設定される。
エンコーダも提供される。エンコーダは、参照QP、およびキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタに少なくとも基づいて、尺度が満たされるとき、参照QP、例えばQpY+pps_cb_qp_offsetおよびQpY+pps_cr_qp_offsetと比較して、1つの彩度成分の少なくとも1つの変換係数に対するQPを低減するように設定される。エンコーダはまた、低減されたQPと参照QPとの間の差をエンコードするように設定される。エンコーダは、エンコードされた差をデコーダに送るようにさらに設定される。
実施形態は総称的であり、ビデオシーケンスをエンコードするための任意のエンコーダに適用されることがある。これは、これをより良く可能にするにするための、新しいコーディングツールの最適化、または既存のコーディングツールの適合の基礎でもあることがある。
図16は、実施形態による、エンコーダ210の特定の実装形態を示す。実施形態において、エンコーダ210は、参照QP、およびキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタに少なくとも基づいて、尺度が満たされるとき、参照QP、例えばQpY+pps_cb_qp_offsetおよびQpY+pps_cr_qp_offsetと比較して、1つの彩度成分の少なくとも1つの変換係数に対するQPを低減するための低減モジュール211を備える。本実施形態のエンコーダ210は、低減されたQPと参照QPとの間の差をエンコードするためのエンコードモジュール212も備える。エンコーダ210は、エンコードされた差をデコーダに送るための出力ユニット213をさらに備える。
出力ユニット213は、とりわけ外部デバイスへのワイヤード接続のケースにおいて、一般的な出力ユニットの形であってよい。代替として、出力ユニット213は、とりわけ外部デバイスへのワイヤレス接続のケースにおいて、受信機または送受信機の形であってよい。
実施形態のデバイス、エンコーダ、および/またはデコーダは、ハードウェア回路機器として実装されることがある。適切なハードウェア回路機器の特定の例は、1つまたは複数の適切に設定された、または場合によっては、再設定可能な電子回路機器、例えば特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または適切なレジスタ(REG)および/もしくはメモリユニット(MEM)に関連する特化された機能を実施するために相互接続されたディスクリート論理ゲートおよび/もしくはフリップフロップに基づく回路などの任意の他のハードウェアロジックを含む。
代替として、本明細書で説明されたステップ、機能、手順、モジュール、および/またはブロックの少なくともいくつかは、1つまたは複数のプロセッサまたは処理ユニットなどの適切な処理回路機器による実行のために、コンピュータプログラムなどのソフトウェアに実装されることがある。
処理回路機器の例は、1つもしくは複数のマイクロプロセッサ、1つもしくは複数のデジタル信号プロセッサ(DSP)、1つもしくは複数の中央処理装置(CPU)、ビデオアクセラレーションハードウェア、および/または1つもしくは複数のフィールドプログラマブルゲートアレイ(FPGA)、または1つもしくは複数のプログラマブル論理制御装置(PLC)などの任意の適切なプログラマブル論理回路機器を含むが限定されない。
提案された技術が実装される任意の従来のデバイスまたはユニットの一般的な処理能力を再使用することが可能であることがあるということも理解されたい。例えば、既存のソフトウェアの再プログラミングによって、または新しいソフトウェア構成要素を追加することによって、既存のソフトウェアを再使用することも可能であることがある。
図12は、彩度成分のQP値を計算するためのデバイス100を示し、プロセッサ101およびメモリ102を備える、概略ブロック図である。メモリ102はプロセッサ101によって実行可能な命令を含む。プロセッサ101は、参照QP値、およびピクセルに対するキャプチャ色空間とピクセルに対するエンコードされた色空間との間の差に依存するファクタに基づいて、彩度成分のQPオフセット値を計算するように動作可能である。プロセッサ101は、QPオフセット値だけ低減された参照QP値に基づいて、彩度成分のQP値を計算するように動作可能でもある。
別の実施形態において、プロセッサ101は、max(−12,round(c_cb×(k×refQP+m)))および/またはmax(−12,round(c_cr×(k×refQP+m)))に基づいて、彩度成分Cbおよび/またはCrに対するQPオフセット値を計算するように動作可能である。プロセッサ101は、QPオフセット値だけ低減された参照QP値に基づいて、彩度成分Cbおよび/またはCrに対するQP値を計算するように動作可能でもある。
さらなる実施形態において、プロセッサ101は、min(0,round(c_cb×(k×refQP+m)))および/またはmin(0,round(c_cr×(k×refQP+m)))に基づいて、彩度成分Cbおよび/またはCrに対するQPオフセット値を計算するように動作可能である。プロセッサ101は、QPオフセット値だけ低減された参照QP値に基づいて、彩度成分Cbおよび/またはCrに対するQP値を計算するように動作可能でもある。
さらに別の実施形態において、プロセッサ101は、Clip3(−12,12,min(0,round(c_cb×(k×refQP+m))))および/またはClip3(−12,12,min(0,round(c_cr×(k×refQP+m))))に基づいて、彩度成分Cbおよび/またはCrに対するQPオフセット値を計算するように動作可能である。プロセッサ101は、QPオフセット値だけ低減された参照QP値に基づいて、彩度成分Cbおよび/またはCrに対するQP値を計算するように動作可能でもある。
デバイス100は、入力ユニット103および出力ユニット104を任意選択で備える。このような実施形態において、入力ユニット103は、ビデオシーケンスのピクチャを受信するように設定され、ピクチャをプロセッサ101に、またはメモリ102に転送する。このようなケースにおいて、プロセッサ101は、ビデオシーケンスからキャプチャ色空間およびエンコードされた色空間の情報を取り出してよい。代替のアプローチにおいて、入力ユニット103は、キャプチャ色空間およびエンコードされた色空間の情報ならびにピクセルに対する個々の参照QP値を受信するにすぎない。このように、このようなアプローチにおいて、全面的なビデオシーケンスではなく、そこから取り出されたにすぎない情報は、入力ユニット103に入力される。
それに対応して、出力ユニット104は、彩度成分の計算されたQP値を有するビデオシーケンスを出力するように設定される。別のアプローチにおいて、出力ユニット104は、彩度成分の計算されたQP値を出力するにすぎず、必ずしもビデオシーケンスを出力しない。
入力ユニット103および出力ユニット104は、個々の入力および出力ポートとして実装されることがある。代替として、入力ユニット103は受信機として実装されることがあり、出力ユニット104は送信機として実装されることがある。さらなる代替は、入力ユニット103および出力ユニット104の機能性を実施する送受信機を有することである。
図13は、プロセッサ201およびメモリ202を備えるエンコーダ200の対応する概略ブロック図である。メモリ202はプロセッサ201によって実行可能な命令を含む。プロセッサ201は、サブサンプリングされた彩度成分の値と予測された彩度成分の値との間の差に基づいて、ビデオシーケンスのピクチャ内のピクセルに対して、残差を計算するように動作可能である。プロセッサ201は、変換係数を取得するために、残差を周波数ドメインに変換するように動作可能でもある。プロセッサ201はさらに、参照QP値、およびピクセルに対するキャプチャ色空間とピクセルに対するエンコードされた色空間との間の差に依存するファクタに基づいて、彩度成分の計算されたQPオフセット値だけ低減された参照QP値に基づいて、彩度成分のQP値を計算するように動作可能である。プロセッサ201は追加として、変換係数を量子化するように動作可能であり、量子化のレベルはQP値によって決定される。
エンコーダ200は、任意選択で、エンコードされた量子化された変換係数を含むビットストリームの形で、エンコードされたビデオシーケンスを出力するように設定された出力ユニット203を備える。ビットストリームは、好ましくは、彩度成分のエンコードされたQPオフセット値も含む。
特定の例において、図13に示されたようなエンコーダ200は、プロセッサ201、およびプロセッサによって実行可能な命令を含むメモリ202を備える。プロセッサ201は、参照QP、およびキャプチャ色空間とエンコードされた色空間との間の差に依存するファクタに少なくとも基づいて、尺度が満たされるとき、参照QP、例えばQpY+pps_cb_qp_offsetおよびQpY+pps_cr_qp_offsetと比較して、1つの彩度成分の少なくとも1つの変換係数に対するQPを低減するように動作可能である。プロセッサ201は、低減されたQPと参照QPとの間の差をエンコードし、エンコードされた差をデコーダに送るように動作可能でもある。
図14は、エンコードされたビデオシーケンスをデコードするためのデコーダ300の概略ブロック図である。デコーダ300はプロセッサ301およびメモリ302を備える。メモリ302はプロセッサ301によって実行可能な命令を含む。プロセッサ301は、量子化された変換係数およびピクセルの彩度成分のQPオフセット値を取得するために、エンコードされたビデオシーケンスをデコードするように動作可能である。QPオフセット値は、参照QP値、およびピクセルに対するキャプチャ色空間とピクセルに対するエンコードされた色空間との間の差に依存するファクタに依存する。プロセッサ301は、変換係数を取得するために、QPオフセット値だけ低減された参照QP値に基づいて計算されたQP値を使用して、量子化された変換係数を逆量子化するように動作可能でもある。プロセッサ301はさらに、残差を取得するために、変換係数を逆変換するように動作可能である。プロセッサ301は追加として、残差および予測された彩度成分の値に基づいて、再構築されたサブサンプリングされた彩度成分の値を計算するように動作可能である。
デコーダ300は、任意選択で、エンコードされたビデオシーケンスを受信するように設定された入力ユニット303を備える。デコーダ300は、任意選択で、デコードされたビデオシーケンス、すなわちビデオシーケンスのデコードされたピクチャを出力するように設定された出力ユニット304を備える。
任意選択の入力ユニット303および出力ユニット304は、入力および出力ポート、受信機および送信機、または図12に関連して説明されたような送受信機として実装されることがある。
特定の実施形態において、図12〜図14に示されたようなプロセッサ101、201、301は、メモリ102、202、302に格納された命令を実行するときに、上記で説明された動作を実施するように動作可能である。それによって、プロセッサ101、201、301は、通常のソフトウェアの実行を可能にするようにメモリ102、202、302に相互接続される。
用語「プロセッサ」は、特定の処理、決定、またはコンピューティングタスクを実施するためのプログラムコードまたはコンピュータプログラム命令を実行できる任意のシステムまたはデバイスとして、一般的な意味で解釈されるべきである。
このように、1つまたは複数のプロセッサを含む処理回路機器は、コンピュータプログラムを実行すると、本明細書で説明されたタスクなどのよく規定された処理タスクを実施するように設定される。
処理回路機器は、上記で説明されたステップ、機能、手順、および/またはブロックを実行するためだけに専用である必要はなく、他のタスクを実行することもある。
本明細書に提示された流れ図は、1つまたは複数のプロセッサによって実施されるときのコンピュータの流れ図とみなされてよい。対応するデバイスは、機能モジュールのグループとして規定されてよく、ここでプロセッサによって実施されるそれぞれのステップは、機能モジュールに対応する。このケースにおいて、機能モジュールは、プロセッサ上で動くコンピュータプログラムとして実装される。このような訳で、代替として、デバイス、エンコーダ、およびデコーダは、機能モジュールのグループとして規定されてよく、ここで機能モジュールは、少なくとも1つのプロセッサ上で動くコンピュータプログラムとして実装される。
このように、メモリに常駐するコンピュータプログラムは、プロセッサによって実行されると、本明細書で説明されたステップおよび/またはタスクの少なくとも一部を実施するように設定された適正な機能モジュールとして編成されることがある。このような機能モジュールの例は図15〜図17に示される。
図15は、複数のピクチャを含むビデオシーケンスにおける、複数のピクセルを含むピクチャ内のピクセルの彩度成分のQP値を計算するためのデバイス100の概略ブロック図である。
1つの実施形態において、デバイス110は、参照QP値、ならびにピクセルに対するキャプチャ色空間とピクセルに対するエンコードされた色空間との間の差に依存するファクタに基づいて、彩度成分のQPオフセット値を計算するためのQPオフセット計算機111を備える。デバイス110は、QPオフセット値だけ低減された参照QP値に基づいて、彩度成分のQP値を計算するためのQP計算機112も備える。
別の実施形態において、デバイス110は、max(−12,round(c_cb×(k×refQP+m)))および/またはmax(−12,round(c_cr×(k×refQP+m)))に基づいて、彩度成分Cbおよび/またはCrに対するQPオフセット値を計算するためのQPオフセット計算機111を備える。デバイス110は、QPオフセット値だけ低減された参照QP値に基づいて、彩度成分Cbおよび/またはCrに対するQP値を計算するためのQP計算機112も備える。
さらなる実施形態において、デバイス110は、min(0,round(c_cb×(k×refQP+m)))および/またはmin(0,round(c_cr×(k×refQP+m)))に基づいて、彩度成分Cbおよび/またはCrに対するQPオフセット値を計算するためのQPオフセット計算機111を備える。デバイス110は、QPオフセット値だけ低減された参照QP値に基づいて、彩度成分Cbおよび/またはCrに対するQP値を計算するためのQP計算機112も備える。
さらに別の実施形態において、デバイス110は、Clip3(−12,12min(0,round(c_cb×(k×refQP+m))))および/またはClip3(−12,12min(0,round(c_cr×(k×refQP+m))))に基づいて、彩度成分Cbおよび/またはCrに対するQPオフセット値を計算するためのQPオフセット計算機111を備える。デバイス110は、QPオフセット値だけ低減された参照QP値に基づいて、彩度成分Cbおよび/またはCrに対するQP値を計算するためのQP計算機112も備える。
図16は、複数のピクチャを含むビデオシーケンスをエンコードするためのエンコーダ210の概略ブロック図である。それぞれのピクチャは複数のピクセルを含み、それぞれのピクセルは、ルマ成分の値および2つのサブサンプリングされた彩度成分の値と関連付けられる。エンコーダ210は、サブサンプリングされた彩度成分の値と予測された彩度成分の値との間の差に基づいて、ビデオシーケンスのピクチャ内のピクセルに対して、残差を計算するためのエンコードモジュール211を備える。エンコードモジュール211は、変換係数を取得するために残差を周波数ドメインに変換すること、および変換係数を量子化するためのものでもあり、量子化のレベルはQP値によって決定される。エンコーダ210は、参照QP値、ならびにピクセルに対するキャプチャ色空間とピクセルに対するエンコードされた色空間との間の差に依存するファクタに基づく、彩度成分に対して計算されたQPオフセット値だけ低減された参照QP値に基づいて、彩度成分のQP値を計算するための低減モジュール212も備える。
図17は、複数のピクチャを含むエンコードされたビデオシーケンスをデコードするためのデコーダ310の概略ブロック図である。それぞれのピクチャは複数のピクセルを含み、それぞれのピクセルは、ルマ成分の値および2つのサブサンプリングされた彩度成分の値と関連付けられる。デコーダ310は、量子化された変換係数およびピクセルの彩度成分のQPオフセット値を取得するために、エンコードされたビデオシーケンスをデコードするためのデコードモジュール311を備える。QPオフセット値は、参照QP値、およびピクセルに対するキャプチャ色空間とピクセルに対するエンコードされた色空間との間の差に依存するファクタに依存する。デコーダ310は、変換係数を取得するために、QPオフセット値だけ低減された参照QP値に基づいて決定されたQP値を使用して、量子化された変換係数を逆量子化するための逆量子化モジュール312も備える。デコーダ310は、残差を取得するために変換係数を逆変換するための逆変換モジュール313をさらに備える。デコーダ310は追加として、残差および予測された彩度成分の値に基づいて、再構築されたサブサンプリングされた彩度成分の値を計算するための計算モジュール314を備える。
提案された技術は、図18を参照すると、コンピュータプログラム440を含むキャリア450も提供する。キャリア450は、電子信号、光信号、電磁気信号、磁気信号、電気信号、無線信号、マイクロ波信号、またはコンピュータ可読ストレージ媒体のうちの1つである。
例として、ソフトウェアまたはコンピュータプログラム440は、コンピュータプログラム製品として実現されることがあり、これは通常、コンピュータ可読媒体、好ましくは不揮発性コンピュータ可読ストレージ媒体450で搬送されるか、または格納される。コンピュータ可読媒体は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイディスク、ユニバーサルシリアルバス(USB)メモリ、ハードディスクドライブ(HDD)ストレージデバイス、フラッシュメモリ、磁気テープ、または任意の他の従来のメモリデバイスを含むが限定されない、1つまたは複数のリムーバブルまたは非リムーバブルメモリデバイスを含んでよい。したがって、コンピュータプログラム440は、ユーザ機器400のプロセッサ410による実行のために、図18のユーザ機器400によって表された、コンピュータまたは同等の処理デバイスの動作メモリにロードされてよい。
図18は、プロセッサ410、関連付けられたメモリ420、および通信回路機器430を備えるユーザ機器またはデバイス400の例を示す概略ブロック図である。
この特定の例において、本明細書で説明されたステップ、機能、手順、モジュール、および/またはブロックの少なくともいくつかは、コンピュータプログラム440に実装され、これは、1つまたは複数のプロセッサ410を含む処理回路機器による実行のためにメモリ420にロードされる。プロセッサ410およびメモリ420は、通常のソフトウェアの実行を可能にするように互いに相互接続される。通信回路機器430はまた、ビデオデータの入力および/または出力を可能にするようにプロセッサ410および/またはメモリ420に相互接続される。
ユーザ機器400は、ビデオデータを受信および処理できる任意のデバイスまたは装置であってよい。例えばユーザ機器400は、ビデオカメラ、またはラップトップ、スマートフォン、タブレット、セットトップボックス、サーバなどの据置型もしくは携帯型どちらかのコンピュータ、またはビデオシーケンスを処理できる任意の他のデバイスであってよい。ビデオカメラは、ラップトップ、スマートフォン、タブレット、セットトップボックス、他などの、据置型または携帯型どちらかのコンピュータに実装されてもよい。
1つの実施形態において、コンピュータプログラム440は、プロセッサ410によって実行されると、プロセッサ410に、参照QP値、およびピクセルに対するキャプチャ色空間とピクセルに対するエンコードされた色空間との間の差に依存するファクタに基づいて、複数のピクチャを含むビデオシーケンスにおける、複数のピクセルを含むピクチャ内のピクセルの彩度の成分のQPオフセット値を計算させる命令を含む。またプロセッサ410に、QPオフセット値だけ低減された参照QP値に基づいて、彩度の成分のQP値を計算させる。
別の実施形態において、コンピュータプログラム440は、プロセッサ410によって実行されると、プロセッサ410に、max(−12,round(c_cb×(k×refQP+m)))および/またはmax(−12,round(c_cr×(k×refQP+m)))に基づいて、複数のピクチャを含むビデオシーケンスにおける、複数のピクセルを含むピクチャ内のピクセルの彩度の成分Cbおよび/またはCrに対するQPオフセット値を計算させる命令を含む。またプロセッサ410に、QPオフセット値だけ低減された参照QP値に基づいて、彩度の成分Cbおよび/またはCrに対するQP値を計算させる。
さらなる実施形態において、コンピュータプログラム440は、プロセッサ410によって実行されると、プロセッサ410に、min(0,round(c_cb×(k×refQP+m)))および/またはmin(0,round(c_cr×(k×refQP+m)))に基づいて、複数のピクチャを含むビデオシーケンスにおける、複数のピクセルを含むピクチャ内のピクセルの彩度の成分Cbおよび/またはCrに対するQPオフセット値を計算させる命令を含む。またプロセッサ410に、彩度の成分Cbに対する、および/またはQPオフセット値だけ低減された参照QP値に基づくQP値を計算させる。
さらに別の実施形態において、コンピュータプログラム440は、プロセッサ410によって実行されると、プロセッサ410に、Clip3(−12,12,min(0,round(c_cb×(k×refQP+m))))および/またはClip3(−12,12,min(0,round(c_cr×(k×refQP+m))))に基づいて、複数のピクチャを含むビデオシーケンスにおける、複数のピクセルを含むピクチャ内のピクセルの彩度の成分Cbおよび/またはCrに対するQPオフセット値を計算させる命令を含む。またプロセッサ410に、彩度の成分Cbに対する、および/またはQPオフセット値だけ低減された参照QP値に基づくQP値を計算させる。
追加の実施形態において、コンピュータプログラム440は、プロセッサ410によって実行されると、プロセッサ410に、サブサンプリングされた彩度の成分の値と予測された彩度の成分の値との間の差に基づいて、複数のピクチャを含むビデオシーケンスのピクチャ内のピクセルに対して、残差を計算させる命令を含み、それぞれのピクチャは複数のピクセルを含み、それぞれのピクセルは、ルマ成分の値および2つのサブサンプリングされた彩度の成分の値と関連付けられる。またプロセッサ410に、変換係数を取得するために残差を周波数ドメインに変換させる。さらにプロセッサ410に、変換係数を量子化させ、量子化のレベルは量子化パラメータ(QP)の値によって決定される。プロセッサ410に追加として、参照QP値、およびピクセルに対するキャプチャ色空間とピクセルに対するエンコードされた色空間との間の差に依存するファクタに基づく、彩度の成分の計算されたQPオフセット値だけ低減された参照QP値に基づいて、前記彩度の成分のQP値を計算させる。
さらに別の実施形態において、コンピュータプログラム440は、プロセッサ410によって実行されると、プロセッサ410に、量子化された変換係数およびピクセルの彩度の成分のQPオフセット値を取得するために、複数のピクチャを含むエンコードされたビデオシーケンスをデコードさせる命令を含み、QPオフセット値は、参照QP値、およびピクセルに対するキャプチャ色空間とピクセルに対するエンコードされた色空間との間の差に依存するファクタに依存する。それぞれのピクチャは複数のピクセルを含み、それぞれのピクセルは、ルマ成分の値および2つのサブサンプリングされた彩度の成分の値と関連付けられる。またプロセッサ410に、変換係数を取得するために、QPオフセット値だけ低減された参照QP値に基づいて決定されたQP値を使用して、量子化された変換係数を逆量子化させる。さらにプロセッサ410に、残差を取得し、残差および予測された彩度の成分の値に基づいて、再構築されたサブサンプリングされた彩度の成分の値を計算するために変換係数を逆変換させる。
別の実施形態は、複数のピクチャを含むビデオシーケンスにおける、複数のピクセルを含むピクチャ内のピクセルの彩度の成分のQP値を計算するためのデバイスに関する。デバイスは、ビデオシーケンス内のピクチャに対する階層レベルに基づいて、彩度の成分のQPのオフセット値を計算するように設定される。デバイスはまた、参照QP値およびQPオフセット値に基づいて、彩度の成分のQP値を計算するように設定される。
1つの実施形態において、デバイスは、ビデオシーケンスにおける、ピクチャに対するルマのQP値、および非従属的にデコード可能なピクチャ(IRAP)に対するルマのQP値に基づいて、彩度の成分のQPオフセット値を計算するように設定される。
1つの実施形態において、デバイスは、QPのオフセット値だけ低減された、ピクチャに対するルマのQP値に基づいて、彩度の成分のQP値を計算するように設定される。
別の実施形態において、デバイスは、QPオフセット値だけ増加された、ピクチャに対するルマのQP値に基づいて、彩度の成分のQP値を計算するように設定される。
これらの実施形態におけるデバイスは、ハードウェア内に機能的なモジュールを有するプロセッサおよびメモリとして、または図12〜図18に関連して前述で説明されたようなコンピュータプログラムとして実装されることがある。
ネットワークノードおよび/またはサーバなどのネットワークデバイス内にハードウェアおよび/またはソフトウェアなどのコンピューティングサービスを提供することがますます普及しつつあり、ここでリソースは、ネットワーク上で遠隔地へのサービスとして配信される。例として、本明細書で説明されるように、機能性は、1つまたは複数の別々の物理的なノードまたはサーバに分散されるか、または再配置されることがあることを意味する。機能性は、別々の物理的なノード、すなわちいわゆるクラウド内に位置付けられることがある、1つまたは複数の合同で作用する物理および/または仮想マシンに再配置されるか、または分散されることがある。これは、時としてクラウドコンピューティングとも呼ばれ、ネットワーク、サーバ、ストレージ、アプリケーション、および一般的なまたはカスタマイズされたサービスなどの、設定可能なコンピューティングリソースのプールへの、ユビキタスなオンデマンドのネットワークアクセスを可能にするためのモデルである。
図19は、一般的なケースにおける異なるネットワークデバイス500、501、502の間で、どのように機能性が分散または区分されることがあるかに関する例を示す概略図である。この例において、少なくとも2つの個別の、しかし相互接続されたネットワークデバイス500、501があり、ネットワークデバイス500、501の間で区分される、異なる機能性、または同じ機能性の部分を有することがある。
このような分散された実装形態の一部である追加のネットワークデバイス502があることがある。ネットワークデバイス500、501、502は、同じワイヤレス通信システムの一部であることがあるか、またはネットワークデバイスの1つもしくは複数は、ワイヤレス通信システムの外側に配置された、いわゆるクラウドベースのネットワークデバイスであることがある。
図20は、1つまたは複数のクラウドベースのネットワークデバイス500と協働する、アクセスネットワーク1および/またはコアネットワーク2および/またはオペレーションサポートシステム(OSS:Operations and Support System)3を含む、ワイヤレス通信システムの例を示す概略図である。図は、実施形態による、アクセスネットワーク1のネットワークノード4、およびユーザ機器5も示す。
図12〜図17の構成要素は、単一のより大きいボックス内に配置された単一のボックスとして描かれる。しかし実際には、デバイス100、110、エンコーダ200、210、デコーダ300、310は、単一の図示された構成要素を作り上げる複数の異なる物理的な構成要素を備えてよく、例えば、出力ユニットは、ワイヤード接続のためのワイヤ、およびワイヤレス接続のための無線送受信機を連結するための端末を備えてよい。
本明細書で説明された任意のステップは、一定の実施形態に関する例証的なものにすぎない。すべての実施形態が、開示されたステップすべてを組み込むことも、ステップが、本明細書に描かれ、または説明された正確なオーダーで実施されることも要求されない。その上、いくつかの実施形態は、本明細書で開示されたステップの1つまたは複数に本来備わっているステップを含む、本明細書に図示されない、または説明されないステップを含むことがある。
任意の適正なステップ、方法、または機能は、例えば添付の図に示された構成要素および機器によって実行されることがあるコンピュータプログラム製品を通じて実施されることがある。例えば、メモリは、コンピュータプログラムが格納されることがあるコンピュータ可読手段を含むことがある。コンピュータプログラムは、プロセッサ、ならびに出力ユニットおよびメモリなどの任意の動作可能なように連結されたエンティティおよびデバイスに、本明細書で説明された実施形態による方法を実行させる命令を含むことがある。コンピュータプログラムおよび/またはコンピュータプログラム製品は、このように、開示された本明細書の任意のステップを実施するための手段を提供することがある。
任意の適正なステップ、方法、または機能は、1つまたは複数の機能的なモジュールを通じて実施されることがある。それぞれの機能的なモジュールは、ソフトウェア、コンピュータプログラム、サブルーチン、ライブラリ、ソースコード、または例えばプロセッサによって実行される実行可能な命令の任意の他の形式を含むことがある。いくつかの実施形態において、それぞれの機能的なモジュールはハードウェアに、および/またはソフトウェアに実装されることがある。例えば、1つまたは複数またはすべての機能的なモジュールは、プロセッサによって、場合によってはメモリと協働して実装されることがある。このように、プロセッサおよびメモリは、プロセッサがメモリから命令をフェッチすることを可能にし、フェッチされた命令を実行して個々の機能的なモジュールが本明細書で開示された任意のステップまたは機能を実施することを可能にするように配置されることがある。
発明に関する概念の一定の態様は、2、3の実施形態を参照しながら上記で主に説明された。しかし、当業者によって容易に理解されるように、上記に開示された実施形態以外の実施形態は、等しく可能であり、発明に関する概念の範囲内にある。同様に、多くの異なる組合せが議論されてきたが、すべての可能な組合せは開示されなかった。当業者は、他の組合せが発明に関する概念の範囲内に存在し、あることを理解するであろう。そのほかに、当業者によって考慮されるように、本明細書で開示の実施形態は、したがって、他の標準およびエンコーダまたはデコーダシステムにも適用可能であり、他の特性に関連して開示された特定の図からの任意の特性は、任意の他の図に適用可能であり、かつ/または異なる特性と組み合わされることがある。
上記で説明された実施形態は、本発明の一定の実施形態の2、3の例証となる例として理解されることになる。様々な変更形態、組合せおよび変化は、本発明の範囲から逸脱することなく実施形態に対してなされてよいことが、当業者によって理解されよう。とりわけ、異なる実施形態における異なる部分のソリューションは、技術的に可能である他の設定に組み合わされてよい。