【文献】
NACCARI, Matteo et al.,Improving HEVC compression efficiency by intensity dependant spatial quantisation,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: Stockholm, SE, 11-20 July 2012, [JCTVC-J0076],JCTVC-J0076 (version 2),2013年07月11日,pp. 1-9
【文献】
ZHANG, Yang et al.,High dynamic range video compression by intensity dependent spatial quantization in HEVC,2013 Picture Coding Symposium (PCS),IEEE,2014年02月13日,pp. 353-356,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6737756,<DOI: 10.1109/PCS.2013.6737756>
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0021】
本原理は、ビデオの符号化および復号のためのHVS特性に基づく量子化調整を対象とする。ビデオの表現において異なる段階で量子化を使用できることに留意すべきである。
図1に示される例に戻ると、量子化は、ビット深度を低減するために前方変換において使用され、また変換係数を量子化するためにビデオエンコーダでも使用される。同様に、逆量子化は、ビット深度を増加させるために逆方向変換において使用され、また変換係数を非量子化するためにビデオデコーダでも使用される。
【0022】
人間の目は、ビデオにおける非常に明るいエリアの周りの暗いエリアに対して感度が低くなり得るため(グレアマスキングまたは輝度マスキングとして知られる)、そのような暗いエリアにおいてより粗い量子化(すなわち、詳細をあまり保存しないかまたは詳細をさらに取り除く)を使用することができる。一実施形態では、前方変換において追加の量子化プロセスを使用することも、前方変換内でビット深度量子化を調整することもできる。別の実施形態では、ビデオエンコーダおよびデコーダで使用される量子化パラメータを調整する。
【0023】
グレアマスキングは、HDRビデオにおいてより一般的であり、また、例えばTVセットによって強いバックライトおよび高いコントラストでSDRまたはLDR(低ダイナミックレンジ)ビデオが表示される場合、SDRビデオでも見られることがある。SDRビデオを圧縮するため、前方変換および逆方向変換に変更を加えて、
図1に示されるものと同様のフレームワークを使用することができる。前方変換モジュール(110)は、例えば、SMPTE BT709で説明されるようなガンマ伝達関数を使用した入力SDR線形信号から非線形信号への変換、色空間変換、ビット深度低減/量子化およびクロマ下方変換を含み得る。復号された信号をSDRビデオ信号に変換する逆方向変換モジュール(140)は、色空間変換、ビット深度逆量子化、クロマ上方変換、および例えば逆ガンマ伝達関数を使用した非線形信号からSDR線形信号への変換を含み得る。ほとんどの事例では、逆ガンマ処理の前の信号をディスプレイに送信できることに留意されたい。以下では、HDR信号を使用した例示的な実施形態について論じるが、本原理はSDR信号にも適用することができる。
【0024】
図2Aは、例示的なHDR画像を示し、
図2Bは、例示的なHDR画像におけるグレアマスキング効果を示す。
図2Bでは、黒色のエリアは、マスキング効果が低い領域(すなわち、この領域では、人間の目は歪みに対する感度がより高い)を示し、白色のエリアは、マスキング効果が高い領域を示す。
図2Bから、明るい窓は暗いエリアおよび近くのエリアに強いマスキング効果を及ぼし、マスキング効果は窓までの距離の増加と共に減衰することを観察し得る。
【0025】
グレアマスキング効果を測定するために、JND(丁度可知差異)を使用することができる。JNDは、人間の観察者が知覚できないことを理由に、画像またはビデオにおいて許容できる歪みのレベルを示す。感覚および知覚(精神物理学)に焦点を置く実験的な心理学の部門では、JNDは、少なくともたびたび差異が認識可能、検出可能であるように何かしら変化しなければならない量である。また、JNDは、差閾、差閾値または最小可知差異としても知られている。JNDは主観的なものであり、多くのJNDモデルが利用可能である。本出願に関連して、以下でさらに詳細に説明されるように、2つの異なるJND(JND
LおよびJND
G)が定義される。より一般的には、JND尺度の代わりに、他の歪みまたは品質メトリクス(例えば、近傍の情報を考慮するもの)を使用することができる。
【0026】
JND
L
JND
Lは、グレアマスキングを考慮しない1つの画素のJNDに対応する。JND
Lは、現在の画素の輝度にのみ依存する。実際に、JND
Lは、グレアマスキングを考慮せずに人間の目が現在の画素における変動を認識できるように、画像の現在の画素に存在すべき輝度の変動を説明する。
【0027】
JND
Lは、実験的に決定することができる。例えば、所与の輝度Lに対し、人間の観察者が変化を見るための輝度の最小Δを表す値dLを見出すことができる。これらの値は、典型的には、LとdLとの間のマッピングテーブルとして与えられる。
【0028】
別の実施形態では、JND
Lは、HDR信号のPQ OETF曲線、またはBT709で定義されるOETFおよびSDR信号の対象とするピーク輝度から決定することができる。OETF曲線は、以下の伝達関数TF()を使用して線形信号(L)を非線形信号(Y)にマッピングすることを目標とする。
TF(L)=Y (1)
HDR信号の場合、伝達関数(例えば、PQ曲線)は、TF(L+0.9
*JND(L))≒Y+1(すなわち、線形信号Lにおける0.9
*JNDのステップは、非線形信号(Y)に対するステップ1以下である)となるように設計することができる。従って、以下のようにTF曲線からJND
Lを推測することができる。
JND
L(L)=TF
−1(Y+1)−TF
−1(Y)=TF
−1(TF(L)+1)−TF
−1(TF(L)) (2)
【0029】
本出願では、線形信号(L)が配置される空間を線形空間と呼び、非線形信号(Y)が配置される空間を知覚空間と呼ぶ。線形空間では、画素の輝度値は、物理的な輝度に直接比例する(例えば、ニトまたはカンデラ毎平方メートル(cd/m2)で表現される)。知覚空間では、目標は、画素の輝度を人間の視覚系に対して線形にすることである(すなわち、画素輝度Lに関係なく、この空間における同じ量の輝度の差異(dL)は、人間の目に対する同じ量の輝度の差異として知覚されるべきである)。知覚空間は、実験的に定義され、主観的なものである。当業者に知られているように、いくつかの知覚空間が利用可能である。
【0030】
JND
G
JND
Gは、明るい近傍の画素に起因して、グレアマスキングを考慮した1つの画素のJNDに対応する。この状況では、JND
Gは、現在の画素の輝度および近傍の画素の輝度に依存する。実際に、JND
Gは、グレアマスキングの効果を考慮して人間の目が現在の画素における輝度の差異に気付くことができるように、現在の画素に存在すべき輝度の最小変動を説明する。
【0031】
JND
Gは、実験的に決定することができ、例えば、輝度、明るいスポットおよび現在の画素までの距離が与えられた場合、マッピングテーブルを得ることができる。次いで、モデリングを使用して、マッピングに最も適合する解析関数を得ることができる。
【0032】
別の実施形態では、JND
Lと、グレアマスキング効果を考慮したグレアファクタ(Gf)とを演算する。数学的には、明るいエリアから暗いエリアへのマスキング効果に基づくJND
Gの演算は、以下のように説明することができる。
JND
G=Gf
*JND
L (3)
定義により、Gfファクタは1より大きい(すなわち、画素は、JND
Lより小さいJND
Gを有することができない)。Gfファクタは、現在の画素の輝度、周辺の画素の輝度および現在の画素に対する周辺の画素の位置(距離)に依存する。
【0033】
以下では、輝度値は線形空間において表現される(例えば、ニトまたはcd/m2)。ビデオ入力が知覚空間において表現される場合(例えば、OETF関数の後)は、線形輝度値を得るために画素の強度値に逆関数を適用することができる。
【0034】
グレアファクタのモデリングは、グレアマスキングを考慮するために使用されるHVSモデルに応じて複雑であり得る。ここで、主観的な心理視覚テスト中に得られた結果のモデリングに基づいて、グレアファクタをモデリングするための扱いやすい簡単な方法を紹介する。具体的には、画素p
2の影響を受ける画素p
1(L(p
2)>L(p
1))のグレアファクタは、以下:
Gf(p
1,p
2)=max{1,[a
0+(L(p
2)−L(p
1))
a1].[(L(p
2)−L(p
1))
*a
2*d(p
1,p
2)+a
3]} (4)
のように計算することができる。ここで、L(p)は、画素pの輝度であり、d(p
1,p
2)は、画素p
1と画素p
2との間のユークリッド距離であり、[a
0...a
3]は、主観テスト全体を通じて経験的に決定された定数である。[a
0...a
3]に対する値の典型的な集合は、SMPTE 2084 OETFが使用される場合、例えば[6.75,0.352,−3.74e−008,3.360e−005]であり得る。例えば、SMPTE BT709で定義されるガンマ伝達関数がSDR信号に対して使用される場合など、別のOETFが使用される場合は、値を適応させ得る。
【0035】
上記のグレアファクタモデルによれば、グレアファクタは、a
2が負の値であるために距離と共に減少し、画素p
2が明るいほど増加し、p
1が暗いほど増加し、グレアマスキング効果の知覚と一致している。
【0036】
演算上の複雑性を低減するため、画素に対する上記の演算は簡略化され得る。例えば、「暗い」画素(すなわち、閾値(典型的には100ニト)を下回る暗度を有する画素)に対するグレアファクタのみを演算することができ、「明るい」画素(すなわち、閾値(典型的には1000ニト)を上回る明度を有する画素)に対するマスキングへの寄与のみを演算することができる。演算が省略されるそれらの画素について、Gfを1に設定する(すなわち、JND
G=JND
L)。
【0037】
上記では、入力画像の個々の画素に対するグレアファクタをどのように演算するかを示している。マスキングは、付加的な現象として考慮する(特定の閾値まで)。従って、所与の画素に対する総グレアファクタを演算するため、他のすべての画素の寄与は、以下:
Gf(p)=min(M,Σ
piGf(p,p
i)) (5)
に従って総計することができる。ここで、p
iは、画素pの近傍のものを表し、Mは、それを上回るとマスキングが飽和する経験閾値であり、一例では、M=20と設定する。処理時間の制約がない場合、全画像を画素pの近傍のものと見なすことができる。演算を低減するため、画素pの近傍のものとしてより小さい画素の集合(例えば、その明度が閾値を上回り、十分に近い画素)を考慮することができ、例えば、式(3)から、明るい画素がそれ以上Gfファクタに寄与しない距離の閾値を推測することができる(すなわち、[a
0+(L(p
2)−L(p
1))
a1].[(L(p
2)−L(p
1))
*a
2*d(p
1,p
2)+a
3]が1を下回る場合)。
【0038】
図3は、本原理の実施形態による、グレアマスキング効果に基づいて量子化比率を計算する例示的な方法300を示す。
【0039】
方法300は、入力として線形空間におけるオリジナルのビデオにアクセスする(例えば、SMPTE 2065−4:2013によって定義されるように、OpenEXRファイルフォーマットを使用して)。オリジナルの画像は、例えば、ピーク輝度として4000ニトの原色に対してBT2020フォーマットを使用して浮動小数点で表されるRGB線形フォーマットのものであり得る。グレアマスキングを考慮するため、オリジナルの画像から輝度値(L)を計算することができる(310)。例えば、入力RGB(線形空間、ニト単位の浮動値)画像I
rgbは、以下のようにRGB BT2020色空間からXYZ色空間に変換することができる。
L=0.262700R+0.677998G+0.059302B (6)
次いで、個々の画素に対し、例えば、式(3)を使用してJND
Gを計算することができる(320)。具体的には、式(2)を使用してLからJND
Lを計算し、式(4)および式(5)を使用してLからグレアファクタを計算し、次いで式(3)を使用してJND
LおよびグレアファクタからJND
Gを計算することができる。ビデオ信号が他のフォーマットで表される場合、例えば、SMPTE BT709で定義されるものを使用して色空間変換が適応され得る。
【0040】
符号化前に入力ビデオを知覚空間に変換するために使用される伝達関数を知っていることで、以下のように画素に対する量子化比率を演算することができる(330)。
【数1】
【0041】
元来、OETFは、線形空間におけるJNDのステップが知覚空間において1つ以上のステップであるように設計された。ここで、グレアマスキング効果を考慮する際に、いかなる可知差異もなくさらにどの程度多くの画素を量子化できるかを演算する。具体的には、L値をJND
Gだけ上回るもの(TF(L(p)+JND
G(p))およびL値をJND
Gだけ下回るもの(TF(L(p)−JND
G(p))を取る。次いで、TFを使用して両方の値を知覚空間に移動し、TF(L(p)+JND
G(p))およびTF(L(p)−JND
G(p))を得る。知覚空間における2つの値間の差異は、知覚空間において許容できる歪みを表すために平均される。それに続いて、平均差異
【数2】
に基づいて量子化をスケールアップすることができると考える。すなわち、平均差異は、前方変換においてまたは符号化中に量子化パラメータを調整するために、量子化比率として使用することができる。
【0042】
量子化比率の計算の他の変形形態は、
Qr(p)=max{1,max[TF(L(p)+JND
G(p)),TF(L(p)−JND
G(p))]} (8)
または
Qr(p)=max{1,min[TF(L(p)+JND
G(p)),TF(L(p)−JND
G(p))]} (9)
であり得る。
【0043】
JND
GがJND
Lに等しい場合、OETF関数はJND
L未満となるように設計されるため、結果として得られるQrは1に等しいはずである。グレアマスキングの影響を受けた画素は、1より大きいグレアファクタと関連付けられ、結果として得られるQrも1より大きい。
【0044】
図4は、本原理の実施形態による、グレアマスキング効果を考慮してHDR画像を符号化する例示的な方法400を示す。この実施形態では、グレアマスキング効果は、量子化ステップサイズを調整するために使用される。具体的には、個々の画素に対する量子化比率は、例えば、方法300を使用して計算することができる(450)。入力HDR信号は、前方変換(410)を使用してビデオエンコーダが受け入れられ得る信号に変換される。符号化(420)中、量子化ステップサイズは、量子化比率に基づいて調整される。ビデオ符号化は、通常、ブロックベースで進むため、個々の画素に対して計算された量子化比率を使用してブロックに対する量子化比率をさらに計算する。ここで、ブロックのサイズは、量子化比率をどのように適用するかに依存する。例えば、ブロックは、H.264/AVCの1つもしくは複数のマクロブロックまたはHEVCの1つもしくは複数の変換単位(TU)に対応し得る。
【0045】
一実施形態では、ブロックに対する量子化比率は、ブロック内の画素の量子化比率のmax関数を使用して計算することができる。すなわち、ブロックの画素に対する最大量子化比率がブロックに対する量子化比率として使用される。この手法は、視覚品質を犠牲にして圧縮性能を向上させることができる。
【0046】
別の実施形態では、ブロックに対する量子化比率は、ブロックの視覚品質をより良く保存することができる最小関数を使用して計算することができる。さらなる別の実施形態では、ブロックに対する量子化比率として量子化比率の中央値または平均値を使用することができ、それにより圧縮効率と視覚品質との間のバランスを提供することができる。
【0047】
グレアマスキングを考慮することなく、エンコーダが選択するオリジナルの量子化ステップサイズを所与のブロックに対してQ
1と想定すると、提案される量子化調整が行われた量子化ステップサイズは、以下:
Q
2=min(Q
max,Qr
*Q
1) (10)
のように計算することができる。ここで、Q
maxは、量子化ステップサイズの上限である。概念的には、量子化ステップサイズQ
2が与えられた場合、変換係数Tは、[(|T|+O)/Q
2]のように量子化することができ、Oは、量子化丸めオフセットである。量子化行列などの他の量子化パラメータも量子化中に使用することができる。
【0048】
コーデックに応じてQ
2の値をさらに適応させ得る。コーデックが異なれば、ブロックに対して設定することができる量子化ステップサイズに対する制約も異なる。例えば、VP9では、限られた数の異なる量子化ステップサイズ(Qps)のみが利用可能である。この事例では、追加のQpクラスタリングプロセスを実行することができる。HEVCでは、ΔQpが代わりに符号化され、可能なQ
2の値が制限される。
【0049】
量子化は、エンコーダ内の別個のステップとして独立して実行できない場合があることに留意すべきである。例えば、量子化は、変換と統合される場合がある。さらに、量子化の変動の範囲を制限するためまたは整数実装を使用するために、量子化パラメータの値に対する他の制約があり得る。従って、量子化ステップサイズは、量子化のために使用される前に処理することができる。また、量子化パラメータが符号化される場合、それらは、符号化される前に量子化インデックスにマッピングすることができる。表記を容易にするため、量子化ステップサイズに対応する異なる表現を量子化ステップサイズと呼ぶ。
【0050】
方法400における量子化比率調整は、ビデオ符号化を改善する前処理ステップと見なすこともできる。復号側では、ビットストリームは、復号され(430)、次いで逆方向変換(440)を通じてHDR信号に変換される。
【0051】
図5は、本原理の実施形態による、グレアマスキング効果を考慮してHDR画像を符号化する別の例示的な方法500を示す。この実施形態では、グレアマスキング効果は、量子化比率の送信を必要としない量子化ステップサイズを調整するために使用され、すなわち、グレアマスキングに基づく量子化比率は、デコーダにおいて推測することができる。量子化調整は、エンコーダとデコーダとの両方において実行され、量子化比率を導き出すプロセスは、エンコーダおよびデコーダで同じである。
【0052】
図6は、現在のブロック610の例示的な因果関係を示すエリア(既に符号化されたあるいは復号されたエリアおよび画素が利用可能なエリア)を示す。この例における因果関係を示すエリアは、現在のブロックの左側および上側のブロックを含む。
【0053】
デコーダ側では、因果関係を示すエリアの再構築画素のみが利用可能であるため、グレアファクタの演算を調整する。従って、画素またはブロックに対する近傍のものを決定する場合、因果関係を示すエリアのみが考慮される。前に論じられたように、近傍のものは、閾値を上回る明度を有する画素およびある距離内の画素にさらに限定され得る。
【0054】
図5に戻ると、前方変換(510)を使用して入力HDR信号が変換された後、ビデオエンコーダ(520)は、グレアマスキングに基づいて、量子化調整(550)を使用して、変換された信号を符号化する。デコーダ側では、ビデオデコーダ(530)は、グレアマスキングに基づいて、量子化調整(560)を使用してビットストリームを復号する。次いで、復号された信号は、逆方向変換(540)を使用して出力HDR信号に変換される。
【0055】
以下では、HEVCエンコーダ/デコーダを使用してビデオエンコーダおよびデコーダにおいて適用された量子化調整を示す。提案される量子化調整は、他のビデオ圧縮規格で使用され得ることに留意すべきである。
【0056】
図7は、本原理を適用することができる例示的なHEVCエンコーダ700を示す。エンコーダ700の入力は、符号化されるビデオを含む。例示的なエンコーダ700では、ブロックがイントラモードで符号化される場合、ブロックは、イントラ予測(770)を実行する。インターモードでは、ブロックは、動き推定(760)および動き補償(765)を実行する。エンコーダは、ブロックを符号化するためにイントラモードまたなインターモードのいずれを使用するかを決定し(775)、オリジナルの画像ブロックから予測ブロックを減算すること(705)によって予測残差が計算される。
【0057】
予測残差は、変換(710)および量子化(720)される。量子化された変換係数ならびに動きベクトルおよび他の構文要素は、ビットストリームを生成するためにエントロピーコード化される(730)。エンコーダは、さらなる予測のための参照を提供するために、符号化されたブロックを復号する。量子化された変換係数は、予測残差を復号するために非量子化(740)および逆変換(inverse transform)(750)される。復号された予測残差と予測ブロックとを組み合わせる(755)ことで、画像ブロックが再構築される。デブロッキングフィルタ(780)およびSAO(サンプル適応オフセット)フィルタ(785)は、再構築ブロックに適用される。フィルタ処理された画像は、参照メモリ(790)で格納される。
【0058】
図8は、本原理の実施形態による、ビデオエンコーダにおいて量子化パラメータを調整する例示的な方法800を示す。方法800は、エンコーダ700の量子化モジュール(720)において使用することができる。この実施形態では、DC係数およびAC係数は2段階で量子化され、DC係数は、グレアマスキングを考慮せずに量子化ステップサイズQp=Q
1を使用して量子化されると想定する。Q
1は、ビットレート制約を満たすためにレート制御アルゴリズムによって決定することができ、ブロックごとおよびピクチャごとに異なり得る。次いで、DC係数は、輝度を推定し、現在のブロックに対するグレアファクタを推定するために使用される。それに続いて、調整された量子化ステップサイズQ
2に基づいてAC係数が量子化される。
【0059】
方法800への入力は、オリジナルのブロック(B)および対応する予測ブロック(P)を含む。予測ブロックは、例えば、イントラ予測または動き補償からのものであり得る。現在のブロックの残差は、R=B−Pとして形成することができる(810)。残差ブロックは、T=DCT(R)として変換される(820)。
【0060】
DC係数は、グレアマスキングを考慮せずに量子化ステップサイズQ
1を使用して量子化され(C(DC)=D(DC,Q
1))(830)、DCは、DC係数であり、D(.)は、量子化を示し、Cは、量子化された変換係数である。次いで、量子化された変換係数は、以下:
[DC]=D
−1(D(DC,Q
1)) (11)
のように非量子化される(840)。ここで、[DC]は、再構築されたDC係数である。次いで、予測ブロックの平均(850)および再構築されたDC係数を使用して、以下:
【数3】
に従ってブロックの強度を推定する。ここで、P(i)は、予測ブロックからの各画素の強度であり、Nは、ブロック内の画素数であり、Aは、ブロックの推定平均輝度である。
【0061】
推定された輝度値Aは、全ブロックに対する現在の値として使用され、現在のブロックに対する画像の因果関係を示す部分のみを使用して、グレアファクタが演算される。この時点では、因果関係を示す部分からの再構築画素の輝度値を使用することができる。
【0062】
グレアファクタは線形空間における輝度を使用して演算することができるため、ブロックに対する推定輝度および近傍の因果関係を示すブロックの輝度は、逆OETF(860、L=OETF
−1(A))を使用して、変換して線形空間に戻すことができる。次いで、現在のブロックに対する推定された輝度値(L)および因果関係を示すブロックに対する推定された輝度値({L
i})に基づいて量子化比率(Qr)を推定することができる(870)。具体的には、ブロックに対するグレアファクタは、以下:
Gf(B)=min(M,Σ
BiN
2*Gf(B,Bi)) (13)
のように演算することができる。ここで、{Bi}は、近傍のブロックであり、Gf(B,Bi)は、ブロックBとブロックBiとの間のグレアファクタである。グレアファクタ計算は、画素間のものと同様であるが、ブロック間の距離を演算するためにブロックの中心を使用し、画素の輝度の代わりにブロックの平均輝度を使用する。
【0063】
量子化比率および量子化ステップサイズQp=Q
1を使用することで、Q
2=Qr
*Q
1としてAC係数に対する量子化ステップサイズQ
2を計算することができる(875)。それに続いて、AC係数が量子化される(880)。次いで、ビットストリームに含めるために、量子化ステップサイズQp、量子化されたDC係数(DC
q)およびAC係数(AC
q)をエントロピー符号化することができる(890)。量子化比率(Qr)はビットストリームで送信されず、むしろデコーダで導き出されることに留意すべきである。
【0064】
図9は、本原理を適用することができる例示的なHEVCビデオデコーダ900のブロック図を描写する。デコーダ900の入力は、ビデオビットストリームを含み、ビデオビットストリームは、ビデオエンコーダ700によって生成することができる。ビットストリームは、最初に、変換係数、動きベクトルおよび他のコード化情報を得るためにエントロピー復号される(945)。変換係数は、予測残差を復号するために非量子化(950)および逆変換(955)される。復号された予測残差と予測ブロックとを組み合わせる(925)ことで画像ブロックが再構築される。予測ブロックは、イントラ予測(960)または動き補償予測(970)から得ることができる。デブロッキングフィルタ(990)およびSAOフィルタ(995)は、再構築ブロックまたは再構築画像に適用される。フィルタ処理された画像は、参照メモリ(980)で格納される。
【0065】
図10は、本原理の実施形態による、デコーダにおいて量子化パラメータを調整する例示的な方法1000を示す。方法1000は、デコーダ900の非量子化モジュール(950)において使用することができる。方法800と同様に、DC係数およびAC係数は2段階で非量子化され、DC係数は、ビットストリームから復号された量子化ステップサイズQp=Q
1を使用して非量子化されると想定する。次いで、DC係数は、輝度を推定し、現在のブロックに対するグレアファクタを推定するために使用される。それに続いて、調整された量子化ステップサイズQ
2に基づいてAC係数が非量子化される。
【0066】
予測ブロック(P)は、例えば、イントラ予測または動き補償からのものであり得る。DC係数(DC
q)、AC係数(AC
q)およびブロックに対する量子化ステップサイズ(Qp=Q
1)は、エントロピーデコーダ(1010)から得ることができる。DC係数は、以下:
[DC]=D
−1(DC
q,Q
1) (14)
のように量子化ステップサイズQ
1を使用して非量子化される(1040)。ここで、[DC]は、再構築されたDC係数である。次いで、予測ブロックの平均(1050)および復号されたDC係数を使用して、以下:
【数4】
に従ってブロックの強度を推定する。ここで、P(i)は、予測ブロックからの各画素の強度であり、Nは、ブロック内の画素数であり、Aは、ブロックの推定平均輝度である。
【0067】
推定された輝度値Aは、全ブロックに対する現在の値として使用され、現在のブロックに対する画像の因果関係を示す部分のみを使用してグレアファクタが演算される。この時点では、因果関係を示す部分からの復号された画素の輝度値を使用することができる。
【0068】
グレアファクタは線形空間における輝度を使用して演算することができるため、ブロックに対する推定輝度および近傍の因果関係を示すブロックの輝度は、逆OETF(1060、L=OETF
−1(A))を使用して、変換して線形空間に戻すことができる。次いで、現在のブロックに対する推定された輝度値(L)および因果関係を示すブロックに対する推定された輝度値({L
i})に基づいて量子化比率(Qr)を推定することができる(1070)。
【0069】
量子化比率および量子化ステップサイズQp=Q
1を使用することで、Q
2=Qr
*Q
1としてAC係数に対する量子化ステップサイズQ
2を計算することができる(1075)。それに続いて、AC係数が非量子化される(1080)。次いで、非量子化されたDC係数およびAC係数を逆変換することができる(1090)。量子化比率(Qr)はビットストリームで受信されず、むしろデコーダで導き出されることに留意すべきである。
【0070】
エンコーダおよびデコーダにおいて実行された量子化比率計算は、互いに対応すべきであることに留意されたい。例えば、方法1000において実行される1040〜1075のステップは、方法800の840〜875のステップにそれぞれ対応する。
【0071】
適応された量子化は、適応量子化比率の送信を回避するためにデコーダの側で推測することができるため、本実施形態は、ビデオコード化効率を向上させることができる。また、各ブロックの適応量子化は、マスキング効果も考慮し、視覚品質を向上させることもできる。
【0072】
上記では、グレアマスキング効果を考慮することによって量子化ステップサイズを調整できることを論じた。量子化丸めオフセットおよび量子化行列などの他の量子化パラメータも本原理に従って調整することができる。例えば、量子化比率を使用して量子化行列をスケーリングすることも、量子化比率に基づいて量子化丸めオフセットをシフトまたはスケーリングすることもできる。
【0073】
量子化パラメータを調整する際のグレアマスキング効果について論じているが、本原理は、ブロックまたはエリアの知覚が周辺のエリアまたはブロックの影響を受ける他のシナリオ(例えば、これらに限定されないが、色知覚またはテクスチャ知覚)に適用できることに留意すべきである。
【0074】
HDRビデオにおいてグレアマスキングがより明白であるため、HDRビデオに関連して例を示す。しかし、現在のディスプレイは、非常に高いコントラスト比を有し得、HDRビデオと同様の問題を提示し得る。従って、グレアマスキング効果は、SDRビデオに対しても考慮することができ、本原理は、SDRビデオを符号化および復号する際にも適用することができる。具体的には、グレアマスキングがディスプレイ(例えば、ディスプレイの高いコントラスト比)によって生じる場合、量子化調整を設計する際にディスプレイ特性を考慮する必要もあり得る。
【0075】
図11は、本原理の例示的な実施形態の様々な態様を実装することができる例示的なシステムのブロック図を示す。システム1100は、以下で説明される様々なコンポーネントを含むデバイスとして具体化することができ、上記で説明されるプロセスを実行するように構成されている。そのようなデバイスの例は、これらに限定されないが、パーソナルコンピュータ、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、デジタルマルチメディアセットトップボックス、デジタルテレビ受信機、パーソナルビデオ記録システム、接続された家庭用電化製品およびサーバを含む。システム1100は、
図11に示されるように通信チャネルを介しておよび上記で説明される例示的なビデオシステムを実装するために当業者によって知られているように、他の同様のシステムおよびディスプレイに通信可能に結合することができる。
【0076】
システム1100は、上記で論じられるように、様々なプロセスを実装するためにロードされた命令を実行するように構成された少なくとも1つのプロセッサ1110を含み得る。プロセッサ1110は、埋め込みメモリ、入力出力インタフェースおよび当技術分野で知られているような他の様々な回路を含み得る。また、システム1100は、少なくとも1つのメモリ1120(例えば、揮発性メモリデバイス、不揮発性メモリデバイス)も含み得る。加えて、システム1100は、これらに限定されないが、EEPROM、ROM、PROM、RAM、DRAM、SRAM、フラッシュ、磁気ディスクドライブおよび/または光ディスクドライブを含む不揮発性メモリを含み得る記憶装置1140を含み得る。記憶装置1140は、非限定的な例として、内部記憶装置、取り付けられた記憶装置および/またはネットワークアクセス可能記憶装置を含み得る。また、システム1100は、符号化されたビデオまたは復号されたビデオを提供するためにデータを処理するように構成されたエンコーダ/デコーダモジュール1130も含み得る。
【0077】
エンコーダ/デコーダモジュール1130は、符号化および/または復号機能を実行するためにデバイスに含めることができるモジュールを表す。知られているように、デバイスは、符号化および復号モジュールの一方または両方を含み得る。加えて、エンコーダ/デコーダモジュール1130は、当業者に知られているように、システム1100の別個の要素として実装することも、ハードウェアとソフトウェアとの組合せとしてプロセッサ1110内に組み込むこともできる。
【0078】
本明細書の上記で説明される様々なプロセスを実行するためにプロセッサ1110にロードされるプログラムコードは、記憶装置1140に格納し、その後、プロセッサ1110による実行のためにメモリ1120にロードすることができる。本原理の例示的な実施形態によれば、プロセッサ1110、メモリ1120、記憶装置1140およびエンコーダ/デコーダモジュール1130の1つまたは複数は、本明細書の上記で論じられるプロセスを実行する間、これらに限定されないが、HDRビデオ、ビットストリーム、方程式、公式、行列、変数、演算および演算論理を含む様々なアイテムの1つまたは複数を格納することができる。
【0079】
また、システム1100は、通信チャネル1160を介して他のデバイスとの通信を可能にする通信インタフェース1150も含み得る。通信インタフェース1150は、これに限定されないが、通信チャネル1160からデータを送信および受信するように構成されたトランシーバを含み得る。通信インタフェースは、これらに限定されないが、モデムまたはネットワークカードを含み得、通信チャネルは、有線および/または無線媒体内で実装することができる。システム1100の様々なコンポーネントは、これらに限定されないが、内部バス、ワイヤおよびプリント基板を含む様々な適切な接続を使用して、共に接続することもまたは通信可能に結合することもできる。
【0080】
本原理による例示的な実施形態は、プロセッサ1110によって実装されるコンピュータソフトウェアにより、ハードウェアにより、またはハードウェアとソフトウェアとの組合せにより実行することができる。非限定的な例として、本原理による例示的な実施形態は、1つまたは複数の集積回路によって実装することができる。メモリ1120は、技術環境に適切な任意のタイプのものでよく、非限定的な例として、光メモリデバイス、磁気メモリデバイス、半導体ベースのメモリデバイス、固定メモリおよび取り外し可能メモリなど、任意の適切なデータ格納技術を使用して実装することができる。プロセッサ1110は、技術環境に適切な任意のタイプのものでよく、非限定的な例として、マイクロプロセッサ、汎用コンピュータ、専用コンピュータ、およびマルチコアアーキテクチャに基づくプロセッサの1つまたは複数を包含し得る。
【0081】
図12を参照すると、上記で説明される特徴および原理を適用することができるデータ送信システム1200が示されている。データ送信システム1200は、例えば、衛星、ケーブル、電話回線または地上波放送などの各種の媒体のいずれかを使用して信号を送信するヘッドエンドまたは送信システムであり得る。また、データ送信システム1200は、格納のための信号を提供するために使用することもできる。送信は、インターネットまたは他の何らかのネットワーク上で提供することができる。データ送信システム1200は、例えば、ビデオコンテンツおよび他のコンテンツの生成および伝達が可能である。
【0082】
データ送信システム1200は、プロセッサ1201から処理データおよび他の情報を受信する。一実装形態では、プロセッサ1201は、前方変換を実行する。また、プロセッサ1201は、例えば、ビデオのフォーマットを示すメタデータを1200に提供することもできる。
【0083】
データ送信システムまたは装置1200は、エンコーダ1202と、符号化された信号の送信が可能な送信機1204とを含む。エンコーダ1202は、プロセッサ1201からデータ情報を受信する。エンコーダ1202は、符号化された信号を生成する。
【0084】
エンコーダ1202は、例えば、様々な情報片を受信し、格納または送信のための構造化フォーマットに組み立てるアセンブリユニットを含むサブモジュールを含み得る。様々な情報片は、例えば、コード化または非コード化ビデオおよびコード化または非コード化要素を含み得る。いくつかの実装形態では、エンコーダ1202は、プロセッサ1201を含み、従ってプロセッサ1201の動作を実行する。
【0085】
送信機1204は、エンコーダ1202から符号化された信号を受信し、1つまたは複数の出力信号で符号化された信号を送信する。送信機1204は、例えば、符号化されたピクチャおよび/またはそれに関連する情報を表す1つまたは複数のビットストリームを有するプログラム信号を送信するように適応され得る。典型的な送信機は、例えば、エラー訂正コード化を提供すること、信号のデータをインタリーブすること、信号のエネルギーをランダム化すること、および変調器1206を使用して1つまたは複数の搬送波上に信号を変調することの1つまたは複数などの機能を実行する。送信機1204は、アンテナ(図示せず)を含むことも、アンテナ(図示せず)とインタフェースを取ることもできる。さらに、送信機1204の実装形態は、変調器1206に限定することができる。
【0086】
また、データ送信システム1200は、格納ユニット1208に通信可能に結合される。一実装形態では、格納ユニット1208は、エンコーダ1202に結合され、エンコーダ1202からの符号化されたビットストリームを格納する。別の実装形態では、格納ユニット1208は、送信機1204に結合され、送信機1204からのビットストリームを格納する。送信機1204からのビットストリームは、例えば、送信機1204によってさらに処理される1つまたは複数の符号化されたビットストリームを含み得る。格納ユニット1208は、異なる実装形態では、標準DVD、Blu-Rayディスク、ハードドライブまたは他の何らかの記憶装置の1つまたは複数である。
【0087】
図13を参照すると、上記で説明される特徴および原理を適用することができるデータ受信システム1300が示されている。データ受信システム1300は、記憶装置、衛星、ケーブル、電話回線または地上波放送などの各種の媒体上で信号を受信するように構成することができる。信号は、インターネットまたは他の何らかのネットワーク上で受信することができる。
【0088】
データ受信システム1300は、例えば、携帯電話、コンピュータ、セットトップボックス、テレビ、または符号化されたビデオを受信し、例えば、表示のため(例えば、ユーザに表示するため)、処理のためもしくは格納のために復号されたビデオ信号を提供する他のデバイスであり得る。従って、データ受信システム1300は、例えば、テレビの画面、コンピュータモニタ、コンピュータ(格納、処理または表示のため)、または他の何らかの格納、処理もしくは表示デバイスにその出力を提供することができる。
【0089】
データ受信システム1300は、データ情報の受信および処理が可能である。データ受信システムまたは装置1300は、例えば、本出願の実装形態で説明される信号などの符号化された信号を受信する受信機1302を含む。受信機1302は、例えば、ビットストリームを提供する信号、または
図12のデータ送信システム1200から出力された信号を受信することができる。
【0090】
受信機1302は、例えば、符号化されたピクチャを表す複数のビットストリームを有するプログラム信号を受信するように適応され得る。典型的な受信機は、例えば、変調および符号化されたデータ信号を受信すること、復調器1304を使用して1つまたは複数の搬送波からデータ信号を復調すること、信号のエネルギーを非ランダム化すること、および信号のデータをデインタリーブすること、信号をエラー訂正復号することの1つまたは複数などの機能を実行する。受信機1302は、アンテナ(図示せず)を含むことも、アンテナ(図示せず)とインタフェースを取ることもできる。受信機1302の実装形態は、復調器1304に限定することができる。
【0091】
データ受信システム1300は、デコーダ1306を含む。受信機1302は、受信信号をデコーダ1306に提供する。受信機1302によってデコーダ1306に提供される信号は、1つまたは複数の符号化されたビットストリームを含み得る。デコーダ1306は、例えば、ビデオ情報を含む復号されたビデオ信号などの復号された信号を出力する。
【0092】
また、データ受信システムまたは装置1300は、格納ユニット1307に通信可能に結合される。一実装形態では、格納ユニット1307は、受信機1302に結合され、受信機1302は、格納ユニット1307からのビットストリームにアクセスする。別の実装形態では、格納ユニット1307は、デコーダ1306に結合され、デコーダ1306は、格納ユニット1307からのビットストリームにアクセスする。格納ユニット1307からアクセスされるビットストリームは、異なる実装形態では、1つまたは複数の符号化されたビットストリームを含む。格納ユニット1307は、異なる実装形態では、標準DVD、Blu-Rayディスク、ハードドライブまたは他の何らかの記憶装置の1つまたは複数である。
【0093】
デコーダ1306からの出力データは、一実装形態では、プロセッサ1308に提供される。プロセッサ1308は、一実装形態では、後処理を実行するように構成されたプロセッサである。いくつかの実装形態では、デコーダ1306は、プロセッサ1308を含み、従ってプロセッサ1308の動作を実行する。他の実装形態では、プロセッサ1308は、例えば、セットトップボックスまたはテレビなどの下流のデバイスの一部である。
【0094】
本明細書で説明される実装形態は、例えば、方法もしくはプロセス、装置、ソフトウェアプログラム、データストリーム、または信号で実装することができる。実装の単一の形態に関連してのみ論じられる(例えば、方法としてのみ論じられる)場合であっても、論じられる特徴の実装形態は、他の形態(例えば、装置またはプログラム)で実装することもできる。装置は、例えば、適切なハードウェア、ソフトウェアおよびファームウェアで実装することができる。方法は、例えば、コンピュータ、マイクロプロセッサ、集積回路またはプログラマブル論理デバイスを含む、例えば、一般に処理デバイスを指す装置(例えば、プロセッサなど)で実装することができる。また、プロセッサは、例えば、コンピュータ、携帯電話、ポータブル/携帯情報端末(「PDA」)、およびエンドユーザ間の情報の通信を容易にする他のデバイスなどの通信デバイスも含む。
【0095】
本原理の「一実施形態」もしくは「実施形態」または「一実装形態」もしくは「実装形態」およびその他の変形形態への言及は、実施形態と関係して説明される特定の特徴、構造、特性などが本原理の少なくとも1つの実施形態に含まれることを意味する。従って、本明細書全体を通じて様々な箇所に現れる「一実施形態では」もしくは「実施形態では」または「一実装形態では」もしくは「実装形態では」という記載および他の変形形態の出現は、必ずしもすべてが同じ実施形態を指すわけではない。
【0096】
加えて、本出願またはその請求項は、様々な情報片を「決定すること」について言及し得る。情報を決定することは、例えば、情報を推定すること、情報を計算すること、情報を予測すること、またはメモリから情報を回収することの1つまたは複数を含み得る。
【0097】
さらに、本出願またはその請求項は、様々な情報片に「アクセスすること」について言及し得る。情報にアクセスすることは、例えば、情報を受信すること、情報を回収すること(例えば、メモリから)、情報を格納すること、情報を処理すること、情報を送信すること、情報を移動すること、情報をコピーすること、情報を消去すること、情報を計算すること、情報を決定すること、情報を予測すること、または情報を推定することの1つまたは複数を含み得る。
【0098】
加えて、本出願またはその請求項は、様々な情報片を「受信すること」について言及し得る。受信することは、「アクセスすること」と同様に、幅広い用語であることを意図する。情報を受信することは、例えば、情報にアクセスすることまたは情報を回収すること(例えば、メモリから)の1つまたは複数を含み得る。さらに、「受信すること」は、典型的には、例えば、情報を格納すること、情報を処理すること、情報を送信すること、情報を移動すること、情報をコピーすること、情報を消去すること、情報を計算すること、情報を決定すること、情報を予測すること、または情報を推定することなどの動作中に様々な方法で関与する。
【0099】
当業者に明らかであるように、実装形態は、例えば、格納または送信することができる、情報を伝えるようにフォーマットされた様々な信号を生成することができる。情報は、例えば、方法を実行するための命令または説明される実装形態の1つによって生成されたデータを含み得る。例えば、信号は、説明される実施形態のビットストリームを伝えるようにフォーマットすることができる。そのような信号は、例えば、電磁波として(例えば、スペクトルの高周波部分を使用して)またはベースバンド信号としてフォーマットすることができる。フォーマットすることは、例えば、データストリームを符号化することおよび符号化されたデータストリームで搬送波を変調することを含み得る。信号が伝える情報は、例えば、アナログまたはデジタル情報であり得る。信号は、知られているように、様々な異なる有線または無線リンク上で送信することができる。信号は、プロセッサ可読媒体上に格納することができる。
上記実施形態の一部又は全部は、以下の付記のようも記載され得るが、以下には限定されない。
(付記1)
ビデオを符号化する方法であって、
前記ビデオの画像のブロックにアクセスすることと、
前記ブロックに対する量子化パラメータに基づいて前記ブロックを符号化すること(880)であって、前記量子化パラメータは、前記ブロックの輝度および前記ブロックの近傍のブロックの輝度に基づいて決定され、前記ブロックの前記輝度は、前記ブロックにおける少なくとも1つの変換係数に基づく、符号化すること(880)と、
前記符号化に応答してビットストリームを生成すること(890)と
を含む、方法。
(付記2)
前記量子化パラメータは、前記ブロックの前記近傍のブロックの1つまたは複数の画素と前記ブロックの1つまたは複数の画素との間のグレアマスキング効果に基づいて決定される、付記1に記載の方法。
(付記3)
前記グレアマスキング効果に応じて前記ブロックの画素に対するJND(丁度可知差異)を決定することであって、前記量子化パラメータは、前記決定されたJNDおよび前記ブロックの前記輝度に基づいて決定される、決定することをさらに含む、付記2に記載の方法。
(付記4)
前記ブロックの前記輝度は、前記ブロックのDC変換係数および前記ブロックに対する予測ブロックに基づく、付記1〜3のいずれかに記載の方法。
(付記5)
前記ブロックのAC変換係数の量子化は前記量子化パラメータに基づき、前記DC変換係数の量子化は別の量子化パラメータに基づく、付記4に記載の方法。
(付記6)
前記ブロックの前記輝度および前記ブロックの近傍のブロックの前記輝度に基づいて量子化比率を決定すること(870)であって、前記量子化パラメータは、第2の量子化パラメータおよび前記量子化比率に基づいて決定される、決定すること(870)をさらに含む、付記1〜5のいずれかに記載の方法。
(付記7)
ビデオを符号化する装置であって、メモリと、請求項1〜6のいずれか一項に記載の方法を実行するように構成された1つまたは複数のプロセッサとを含む、装置。
(付記8)
ビットストリームからビデオを復号する方法であって、
前記ビデオを表す前記ビットストリームにアクセスすること(1010)と、
量子化パラメータに基づいて画像のブロックを復号すること(1080)であって、前記量子化パラメータは、前記ブロックの輝度および前記ブロックの近傍のブロックの輝度に基づいて決定され、前記ブロックの前記輝度は、前記ブロックにおける少なくとも1つの変換係数に基づく、復号すること(1080)と、
ディスプレイ、記憶装置および通信インタフェースの少なくとも1つに前記ビデオを出力することと
を含む、方法。
(付記9)
前記ブロックの前記輝度は、前記ブロックのDC変換係数および前記ブロックに対する予測ブロックに基づく、請求項8に記載の方法。
(付記10)
前記ブロックのAC変換係数の非量子化は前記量子化パラメータに基づき、前記DC変換係数の非量子化は別の量子化パラメータに基づく、請求項9に記載の方法。
(付記11)
前記ブロックの前記輝度および前記ブロックの近傍のブロックの前記輝度に基づいて量子化比率を決定すること(1070)であって、前記量子化パラメータは、第2の量子化パラメータおよび前記量子化比率に基づいて決定される、決定すること(1070)をさらに含む、請求項8〜10のいずれか一項に記載の方法。
(付記12)
ビットストリームを復号する装置であって、メモリと、請求項8〜11のいずれか一項に記載の方法を実行するように構成された1つまたは複数のプロセッサとを含む、装置。
(付記13)
請求項1〜6のいずれか一項に従って生成されたビットストリームを格納している非一時的コンピュータ可読記憶媒体。
(付記14)
請求項1〜6または8〜11のいずれか一項に記載の方法を実行するための命令を格納している非一時的コンピュータ可読記憶媒体。
(付記15)
量子化パラメータに基づいて符号化されたビデオの画像のブロックを含むようにフォーマットされたビットストリームであって、前記量子化パラメータは、前記ブロックの輝度および前記ブロックの近傍のブロックの輝度に基づいて決定され、前記ブロックの前記輝度は、前記ブロックにおける少なくとも1つの変換係数に基づく、ビットストリーム。