【文献】
Dzung Hoang,Finer scaling of quantization parameter,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 JCTVC-D041,米国,ITU-T,2011年 1月28日,p.1-5
(58)【調査した分野】(Int.Cl.,DB名)
前記第1の量子化精度が前記QPを第1の数の値に索引付けし、前記第2の量子化精度が前記QPを第2の数の値に索引付けし、前記第2の数の値が前記第1の数の値を上回る、請求項1に記載の方法。
少なくとも前記第1の量子化精度と前記第2の量子化精度との間で選択することが、ブロックレベルで第1の量子化精度と第2の量子化精度との間で選択することを備える、請求項1に記載の方法。
前記ビットストリームを生成することが、スライスヘッダと、最大コード化単位に関連するシンタックス要素とのうちの一方の中に前記量子化精度の指標を含めることを備える、請求項5に記載の方法。
前記少なくとも第1の量子化精度と第2の量子化精度との間で選択することが、スライスヘッダと、最大コード化単位に関連するシンタックス要素とのうちの一方から、前記少なくとも第1の量子化精度と第2の量子化精度との指標を復号することを備える、請求項7に記載の方法。
前記第1の量子化精度が前記QPを第1の数の値に索引付けし、前記第2の量子化精度が前記QPを第2の数の値に索引付けし、前記第2の数の値が前記第1の数の値を上回る、請求項9に記載の装置。
少なくとも前記第1の量子化精度と前記第2の量子化精度との間で選択するために、前記1つ以上のプロセッサが、ブロックレベルで前記第1の量子化精度と前記第2の量子化精度との間で選択するように構成された、請求項9に記載の装置。
前記1つ以上の変換係数をコード化するために、前記1つ以上のプロセッサが、前記1つ以上の変換係数を符号化するように構成され、前記1つ以上の変換係数を符号化することが、
選択された前記量子化精度を有するQPを決定することと、
決定された前記QPを使用して1つ以上の量子化変換係数を生成するために前記1つ以上の変換係数を量子化することと、
前記1つ以上の量子化変換係数と前記量子化精度の指標とを含むようにビットストリームを生成することと
を備える、請求項9に記載の装置。
前記ビットストリームを生成するために、前記1つ以上のプロセッサが、スライスヘッダと、最大コード化単位に関連するシンタックス要素とのうちの一方の中に前記量子化精度の指標を含めるように構成された、請求項13に記載の装置。
前記1つ以上の変換係数をコード化するために、前記1つ以上のプロセッサが、前記1つ以上の変換係数を復号するように構成され、前記1つ以上の変換係数を復号することが、
選択された前記量子化精度を有するQPを決定することと、
決定された前記QPを使用して1つ以上の変換係数を生成するために前記1つ以上の変換係数を逆量子化することと
を備える、請求項9に記載の装置。
前記少なくとも第1の量子化精度と第2の量子化精度との間で選択するために、前記1つ以上のプロセッサが、スライスヘッダと、最大コード化単位に関連するシンタックス要素とのうちの一方から、前記少なくとも第1の量子化精度と第2の量子化精度との指標を復号するように構成された、請求項15に記載の装置。
【発明を実施するための形態】
【0018】
概して、符号化ビデオデータは予測データと残差データとを含み得る。例えば、ビデオエンコーダは、イントラ予測モード又はインター予測モード中に予測データを生成し得る。イントラ予測は、概して、あるピクチャのブロック中の画素値を、同じピクチャの隣接する、前にコード化されたブロック中の参照サンプルに対して予測することを伴う。インター予測は、概して、あるピクチャのブロック中の画素値を、前にコード化されたピクチャのデータに対して予測することを伴う。
【0019】
イントラ予測又はインター予測の後に、ビデオエンコーダはブロックの残差画素値を計算し得る。残差値は、概して、ブロックの予測画素値データと、ブロックの真の画素値データとの間の差分に対応する。例えば、残差値は、コード化画素と予測画素との間の差分を示す画素差分値を含み得る。コード化画素は、コード化されるべき画素のブロックに関連し得、予測画素は、コード化ブロックを予測するために使用される画素の1つ又は複数のブロックに関連し得る。
【0020】
ブロックの残差値を更に圧縮するために、ビデオエンコーダは、(「エネルギー」とも呼ばれる)できるだけ多くのデータをできるだけ少数の係数に構成する変換係数のセットに、残差値を変換し得る。この変換は、空間領域からの画素の残差値を変換領域中の変換係数に変換する。変換係数は、元のブロックと通常同じサイズである係数の2次元行列に対応する。言い換えれば、通常、元のブロック中の画素とちょうど同数の変換係数がある。但し、変換により、変換係数の多くは、0に等しい値を有し得る。
【0021】
ビデオエンコーダは、次いで、ビデオデータを更に圧縮するために変換係数を量子化し得る。量子化は、概して、相対的に大きい範囲内の値を相対的に小さい範囲中の値にマッピングし、それによって、量子化変換係数を表すために必要とされるデータの量を低減することを伴う。ビデオエンコーダは、予め定義されたアルゴリズムに従って量子化パラメータ(QP)を適用することによって変換係数を量子化し得る。ビデオエンコーダは、QPを調整することによって、変換係数値に適用される量子化の程度を変更し得る。幾つかの例では、ビデオエンコーダは、0〜51の範囲内のQPを選択し得る。他の例では、ビデオエンコーダは、−26〜+25の範囲(又は何らかの他の範囲)内のQPを選択し得る。本明細書では、概して、以下でより詳細に説明するように、適用される量子化の量の増加とともにQPが高くなることについて説明するが、他の例では、QPが高くなることは、適用される量子化の量が減少することに相関し得ることを理解されたい。
【0022】
幾つかの例によれば、所定のセットのQPが量子化ステップサイズに索引付けされ得る。即ち、QPの範囲は、最小量の量子化から最大量の量子化までの量子化ステップサイズの範囲に索引付けされ得る。例えば、従来、値の量子化は均一再構成量子化器(URQ:uniform reconstruction quantizer)に基づき得る。データを量子化するための分類規則は、エンコーダによって定義され、同様にビデオデコーダによって適用され得る。量子化の一例は、所謂デッドゾーン+均一閾値量子化(DZ−UTQ:dead-zone plus uniform threshold quantization)手法である。この例では、以下の式(1)に示すように、そのようなデッドゾーン量子化器はデッドゾーンパラメータf
0を実施し得、但し、0≦f
0≦0.5であり、
【数1】
【0023】
Y
ijは(上記で説明した)変換係数であり、Q
stepは量子化ステップサイズであり、Z
ijは量子化レベル又は量子化係数値に対応し、sgn(N)は実数Nの符号を抽出する符号関数であり、
【数2】
【0024】
概念的に、レベルZ
ijに対応する再構成値又は逆量子化係数値r
ijは、対応する量子化ステップサイズ
QstepをZ
ijに乗算することによって導出され得る。即ち、r
ij=Z
ij*Q
step。上記で説明した量子化及び再構成プロセスは、簡単及び明快のために、対応する基底関数による正規化が無視されるので、(例えば、HEVC又はAVC/H.264など)幾つかのビデオコード化規格において規定されたものの数学的に簡略化されたバージョンを表す。
【0025】
H.264及び提案されているHEVC規格など、幾つかのビデオコード化規格によれば、合計52個のQ
step値がサポートされ、量子化パラメータ(QP)に従って索引付けされ得る。規格は、エンコーダにおいて使用される厳密な量子化ステップサイズを規範的に指定しないことがあるが、QPが1だけ増加すると、量子化ステップサイズは一般に2
1/6倍に増加する。言い換えれば、1のQP増分はQ
stepの約12.5%の増加に対応し得る。従って、変換係数に適用される量子化の量は、QPの6の増分ごとに2倍になる。
【0026】
本開示では、概して、「量子化精度」を、予め定義された量の量子化がより小さい部分に再分割又は分解され得る程度として参照する。幾つかの例では、量子化精度は、適用される量子化の量を2倍にする(又は半分にする)ために必要とされるQPの数として表され得る。即ち、適用される量子化の量がQPの6の増分ごとに2倍になる例は、6の量子化精度を有すると呼ばれ得る。別の例では、QPが1だけ増加すると、量子化ステップサイズは2
1/12倍に増加し得る。この例では、変換係数に適用される量子化の量は、QPの12の増分ごとに2倍になり、12の量子化精度と呼ばれ得る。
【0027】
ビデオエンコーダがビットストリーム中で信号伝達しなければならないデータの量を低減するために、ビデオエンコーダは、所与のブロックのQPを予測し得る。例えば、QP自体を含むのではなく、ビデオエンコーダは、現在ブロックのための実際のQPと、何らかの参照QP(例えば、異なるブロックに関連するQP、又は幾つかの隣接ブロックのQPの平均)との間の変化(即ち、Δ)を識別し得る。ビデオエンコーダは、次いで、ビットストリーム中で現在ブロックのΔQPを信号伝達し得る。
【0028】
幾つかの例では、ビデオエンコーダは、ピクチャ(又はスライス)内のあるブロックから別のブロックまでQPを変化させ得る。適応量子化と呼ばれることがある、ブロック間でQPを変化させることは、視覚的品質改善をターゲットにする。即ち、人間の眼は、概して、視覚的に「ビジー」な領域内の劣化よりも、視覚的に「フラット」な領域(例えば、輝度又は色の変化があまり多くないスライス又はピクチャの領域)内の劣化に敏感である。従って、適応量子化は、フラットな領域上でより細かい量子化を実行し、ビジーな領域上でより粗い量子化を実行することによって、これらの視覚的制限を活用することを試みる。
【0029】
量子化ステップサイズの範囲を与えることにより、ビデオコーダは、(例えば、レート歪みと呼ばれることがある)ビットレートと品質との間のトレードオフを制御することが可能になり得る。例えば、QPを増加させると、コード化ビデオデータのビットレートが減少し得る。但し、符号化ビデオデータの全体的な品質も、量子化によって導入される誤差の増加により悪くなり得る。一方、量子化パラメータを減少させると、コード化データのビットレートが増加し得るが、全体的な品質も高まり得る。
【0030】
幾つかの例では、量子化精度は、QPの数を増加させることによって増加させられ得る。例えば、ビデオコーダは、量子化精度を増加させ、それによって変換係数に適用される量子化の量に対する制御をより大きくするために、QPの数を52から104に増加させ得る。但し、QPの数を増加させると、QPを示すことに関連する信号伝達オーバーヘッドも増加する。例えば、相対的により大きい数のQPを信号伝達するために追加のビットが必要とされ得る。更に、ピクチャの全ての領域について、より細かい量子化精度に関連するより大きい制御が必要とされるとは限らない。即ち、ピクチャの視覚的に重要な部分は、(例えば、以下で説明するように、レート歪みに関して)より大きい量子化精度から恩恵を受け得るが、ピクチャの他の部分では、相対的に高い量子化精度が必要とされるとは限らない。
【0031】
本開示の幾つかの技法は、QPに関連する量子化ステップサイズに基準化要素を適用することに関する。そのような基準化要素を適用すると、ビデオコード化中に変換係数に適用される量子化の量に対する制御がより大きくなり得る。例えば、幾つかのコード化規格は、量子化ステップサイズに索引付けされた52個のQP値を提供し得る。0のQPにおいて、最小の量子化が適用される。51のQPにおいて、最大の量子化が適用される。その上、QPは、一般に整数増分(例えば、1又はそれ以上の増分)で調整され、量子化は6のQP増分ごとに2倍になる。本開示の態様は、52の標準増分よりも大きい制御を行うために量子化ステップサイズを基準化することに関する。
【0032】
一例では、ビデオエンコーダは、変換係数の所与のブロックを量子化するためのQPを選択し得る。ビデオエンコーダは、次いで、QPに索引付けされた量子化ステップサイズを識別し得る。量子化ステップサイズを適用するより前に、ビデオエンコーダは、量子化ステップサイズに量子化基準化値を適用し得る。量子化基準化値は、次のQPに索引付けされた次の量子化ステップサイズのサイズ未満に量子化ステップサイズを増加(又は減少)させ得る。このようにして、ビデオエンコーダは、変換係数のブロックに適用される量子化の量に対して(例えば、整数QPを選択することに関連して)より大きい制御を有する。変換スキップモードなど、幾つかのビデオコード化モードでは、変換がないことがあり、量子化は予測残差に直接適用され得る。
【0033】
幾つかの例では、ビデオエンコーダは、スライスレベル又はブロックレベルで(例えば、HEVCにおいて定義されており、以下で説明する、最大コード化単位(LCU:largest coding unit)レベルで)量子化基準化値の指標を含み得る。スライスレベルでは、量子化基準化値は、ブロックタイプに基づいて個別に示され得る。例えば、異なるブロックタイプ(例えば、イントラ予測ブロック、インター予測ブロック、ルーマブロック、クロマブロックなど)のスライスヘッダ内では、異なる値の量子化基準化値が示され得る。この例では、スライスヘッダ内で量子化基準化値が信号伝達されるとき、量子化ステップサイズは、スライス中のブロックごとに量子化基準化値によって調整され得る。他の例では、量子化基準化値は、量子化基準化値がLCU内のブロックにのみ適用されるように、LCUレベルで信号伝達され得る。その上、幾つかの例では、量子化基準化値が適用されていることを示すフラグが(例えば、スライスレベル及び/又はLCUレベルで)設定され得る。
【0034】
本開示の技法は、所望のビットレート及び/又はレート歪みレベルを達成することを助け得る。説明のための一例では、ターゲットビットレートに近づくがそれを超えないように、コード化中に第1のQPが適用されると仮定する。但し、第1のQPを十分な整数だけ減少させ(それによって、1つ又は複数の変換係数に適用される量子化の量を減少させ)ると、ターゲットビットレートより上にビットレートが増加し得る。この例では、ビデオコーダは、ターゲットビットレートを達成するために、第1のQPに索引付けされた量子化ステップサイズに量子化基準化要素を適用し得る。
【0035】
本開示の他の態様は、ビデオコーダによってそれを用いて量子化パラメータが適用され得る精度を制御することに関する。ここでも、「量子化精度」は、予め定義された量の量子化が再分割され得る程度を指し得る。本開示の態様は、所定の全量子化が再分割される量を変化(例えば、増加又は減少)させることに関する。
【0036】
例えば、上述のように、幾つかのビデオコード化規格は、6の量子化精度をもつ52個のQPを使用して全量子化を再分割する。本開示の態様による一例では、QPと量子化ステップサイズとの間の関係は、QPが12だけ増加したときに量子化ステップサイズが2倍になるように変更され得る。即ち、QPが1だけ増加するたびに、量子化ステップサイズは約2
1/12倍に増加し得、これは、12の量子化精度と呼ばれることがある。本開示の幾つかの例では、例示のために6及び12の量子化精度に関して説明するが、本技法は、より一般的に、任意の量子化精度を制御することに適用可能であることを理解されたい。
【0037】
量子化精度を増加させると、ビデオコーダに追加のレート制御(例えば、上記で説明したレート歪みに対する制御)が行われ得、及び/又は、知覚的ビット割振り(例えば、ピクチャの知覚的に複雑な領域により大きいビット数を割り振ること)を実行するときにビデオコーダにより細かい制御が与えられ得る。但し、スライス又はピクチャの全ての領域について、より細かい量子化精度が必要とされるとは限らない。
【0038】
従って、本開示の幾つかの態様は、ピクチャ又はスライス内で量子化精度を適応的に変化させることに関する。一例では、ビデオエンコーダが、スライスレベル又はブロックレベルで(「QP精度」と呼ばれることがある)量子化精度を信号伝達し得る。例えば、スライスヘッダが、そのスライスのQP精度を指定するシンタックス要素を含んでいることがあり、1つ又は複数のブロックとともに含まれるシンタックス要素が、それらの1つ又は複数のブロックのためのQP精度を指定し得る。
【0039】
ビデオエンコーダがスライスヘッダ中でQP精度を信号伝達する例では、QP精度がスライス内で適応型であるかどうかを示す別のフラグも含まれ得る。例えば、ビデオエンコーダは、QP精度が、スライス内のあるブロックから別のブロックまで変化するかどうかを示し得る。適応型精度が使用される場合、別のシンタックス要素が、スライスの最大許容精度を示し得る。
【0040】
スライス内の適応型精度が使用可能である例では、ビデオコーダは、以下でより詳細に説明するように、LCUレベルでシンタックス要素を介してQP精度を示し得る。例えば、シンタックス要素は、上記のスライスヘッダに関して説明した指標と同様に、LCUのQP精度を識別し得る。LCUシンタックス要素の指標は、(例えば、エントロピーコード化のために)(因果的順序で)隣接するシンタックス要素の値からなるコンテキストを使用し得る。他の例では、QP精度は、LCUよりも小さいか又は大きい精度で信号伝達され得る。LCUよりも小さい精度は、ビットレートと主観的品質とに対して細かい調整を与え得るが、(サイド情報と呼ばれることがある)そのような信号伝達を行うために必要とされるビットに関して相対的に多くのコストがかかり得る。しかしながら、LCUよりも大きい精度は、十分な制御を空間的に与えないことがある。
【0041】
上述のように、QPは、ΔQPを使用して示され得る。例えば、ビデオエンコーダがビットストリーム中で信号伝達しなければならないデータの量を低減するために、ビデオエンコーダは、所与のブロックのQPを予測し得る。従って、ブロック又はスライスの変換係数を量子化するために使用される実際のQPを含むのではなく、ビデオエンコーダは、現在ブロックのための実際のQPと、何らかの参照QP(例えば、異なるブロックに関連するか、又は複数の隣接ブロックにわたって平均化されたQP)との間の変化(即ち、Δ)を識別し得る。ビデオエンコーダは、次いで、ビットストリーム中で現在ブロックのΔQPを信号伝達し得る。
【0042】
ΔQPを生成するとき、ビデオエンコーダは、現在ブロックに空間的に隣接するブロック(例えば、同じスライス又はピクチャ中の隣接ブロック)に関連する参照QPを識別し得る。例えば、H.264対応エンコーダは、現在マクロブロックの参照QPとして前のマクロブロックのQPを使用して、マクロブロックレベルでΔQPを信号伝達し得る。他の可能性には、上及び左のネイバー、又は時間的に同一位置に配置されたブロック、又は動きベクトルに基づく他のブロックがある。
【0043】
QP精度が適応型である例では、QP予測のために使用されるブロックは、現在コード化されているブロックとは異なるQP精度を有し得る。そのような例では、本開示の態様によれば、ビデオコーダは、第1の精度からの各QPを、第2の異なるQP精度のQPにマッピングし得る。例えば、所与のスライス中に、12と6とのQP精度を有するQPが存在し得る。ビデオコーダは、ΔQPを決定するより前に、より低いQP精度からのQPを、より高いQP精度からのQPにマッピングし得る。即ち、6のQP精度を有するQPは、関数2nを使用して12のQP精度を有するQPにマッピングされ得、但し、nは6のQP精度に関係する。そのような一例では、nは0〜51の値を取り得る。他の例では、ビデオコーダは、上記で説明した関数の逆を使用して、より高い精度からのQPをより低い精度にマッピングし得る。
【0044】
図1は、変換係数の(逆量子化を含む)量子化を実行するために本開示の技法を実行し得る例示的なビデオ符号化及び復号システム10を示すブロック図である。
図1に示すように、システム10は、宛先機器14によって後で復号されるべき符号化ビデオデータを与える発信源機器12を含む。特に、発信源機器12は、コンピュータ可読媒体16を介してビデオデータを宛先機器14に与える。発信源機器12及び宛先機器14は、デスクトップコンピュータ、ノートブック(即ち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォンなどの電話ハンドセット、所謂「スマート」パッド、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミング機器などを含む、広範囲にわたる機器のいずれかを備え得る。場合によっては、発信源機器12及び宛先機器14は、ワイヤレス通信のために装備され得る。
【0045】
宛先機器14は、コンピュータ可読媒体16を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、符号化ビデオデータを発信源機器12から宛先機器14に移動することが可能な任意のタイプの媒体又は機器を備え得る。一例では、コンピュータ可読媒体16は、発信源機器12が、符号化ビデオデータを宛先機器14にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先機器14に送信され得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つ又は複数の物理伝送線路など、任意のワイヤレス又は有線通信媒体を備え得る。通信媒体は、ローカル領域ネットワーク、ワイド領域ネットワーク、又はインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、発信源機器12から宛先機器14への通信を可能にするために有用であり得るルータ、スイッチ、基地局、又は任意の他の機器を含み得る。
【0046】
幾つかの例では、符号化データは、出力インターフェース22から記憶装置に出力され得る。同様に、符号化データは、入力インターフェースによって記憶装置からアクセスされ得る。記憶装置は、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性又は不揮発性メモリ、又は符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散された若しくはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。更なる一例では、記憶装置は、発信源機器12によって生成された符号化ビデオを記憶し得るファイルサーバ又は別の中間記憶装置に対応し得る。宛先機器14は、ストリーミング又はダウンロードを介して記憶装置から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先機器14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(例えば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)機器、又はローカルディスクドライブを含む。宛先機器14は、インターネット接続を含む、任意の標準のデータ接続を介して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(例えば、Wi−Fi接続)、有線接続(例えば、DSL、ケーブルモデムなど)、又は両方の組合せを含み得る。記憶装置からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はそれらの組合せであり得る。
【0047】
本開示では、概して、ビデオエンコーダ20が、ある情報をビデオデコーダ30などの別の機器に「信号伝達」することに言及することがある。但し、ビデオエンコーダ20は、幾つかのシンタックス要素をビデオデータの様々な符号化部分に関連付けることによって情報を信号伝達し得ることを理解されたい。即ち、ビデオエンコーダ20は、幾つかのシンタックス要素をビデオデータの様々な符号化部分のヘッダに記憶することによってデータを「信号伝達」し得る。場合によっては、そのようなシンタックス要素は、ビデオデコーダ30によって受信され、復号されるより前に、符号化され、記憶され得る(例えば、記憶媒体34又はファイルサーバ36に記憶され得る)。従って、「信号伝達」という用語は、通信がリアルタイム又はほぼリアルタイムで行われるか、又は、符号化時にシンタックス要素を媒体に記憶し、次いで、この媒体に記憶された後の任意の時間にそのシンタックス要素が復号機器によって取り出され得るときなどに行われ得る、ある時間期間にわたって行われるかにかかわらず、概して、圧縮ビデオデータを復号するためのシンタックス又は他のデータの通信を指し得る。
【0048】
概してデータをエントロピーコード化することに関係する本開示の技法は、必ずしもワイヤレス適用例又は設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、又は他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコード化に適用され得る。幾つかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、及び/又はビデオテレフォニーなどの適用例をサポートするために、一方向又は双方向のビデオ送信をサポートするように構成され得る。
【0049】
図1の例では、発信源機器12は、ビデオ発信源18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先機器14は、入力インターフェース28と、ビデオデコーダ30と、表示装置32とを含む。本開示によれば、発信源機器12のビデオエンコーダ20は、動きベクトルをコード化し、HEVCと、マルチビュー又は3DV拡張など、HEVCの拡張とにおいて双予測を実行するために本技法を適用するように構成され得る。他の例では、発信源機器及び宛先機器は他の構成要素又は構成を含み得る。例えば、発信源機器12は、外部カメラなど、外部ビデオ発信源18からビデオデータを受信し得る。同様に、宛先機器14は、内蔵表示装置を含むのではなく、外部表示装置とインターフェースし得る。
【0050】
図1の図示のシステム10は一例にすぎない。ビデオデータをエントロピーコード化するための技法は、任意のデジタルビデオ符号化及び/又は復号機器によって実行され得る。概して、本開示の技法はビデオ符号化機器によって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。更に、本開示の技法は、ビデオプリプロセッサによっても実行され得る。発信源機器12及び宛先機器14は、発信源機器12が宛先機器14に送信するためのコード化ビデオデータを生成するような、コード化機器の例にすぎない。幾つかの例では、機器12、14は、機器12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。従って、システム10は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、又はビデオテレフォニーのための、ビデオ機器12とビデオ機器14との間の一方向又は双方向のビデオ送信をサポートし得る。
【0051】
発信源機器12のビデオ発信源18は、ビデオカメラなどの撮像装置、以前に撮影されたビデオを含んでいるビデオアーカイブ、及び/又はビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。更なる代替として、ビデオ発信源18は、発信源ビデオとしてのコンピュータグラフィックスベースのデータ、又はライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオ発信源18がビデオカメラである場合、発信源機器12及び宛先機器14は、所謂カメラフォン又はビデオフォンを形成し得る。但し、上述のように、本開示で説明する技法は、概してビデオコード化に適用可能であり得、ワイヤレス及び/又は有線適用例に適用され得る。各場合において、撮影されたビデオ、以前に撮影されたビデオ、又はコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は、次いで、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
【0052】
コンピュータ可読媒体16は、ワイヤレスブロードキャスト又は有線ネットワーク送信などの一時媒体、若しくはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、又は他のコンピュータ可読媒体などの記憶媒体(即ち、非一時的記憶媒体)を含み得る。幾つかの例では、ネットワークサーバ(図示せず)は、発信源機器12から符号化ビデオデータを受信し、例えば、ネットワーク送信を介して、その符号化ビデオデータを宛先機器14に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピュータ機器は、発信源機器12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。従って、コンピュータ可読媒体16は、様々な例において、様々な形態の1つ又は複数のコンピュータ可読媒体を含むことが理解されよう。
【0053】
宛先機器14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20によって定義され、またビデオデコーダ30によって使用される、ブロック及び他のコード化単位、例えば、GOPの特性及び/又は処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。特に、本開示は、スライス、ピクチャ、波面のセット、又はタイルなど、複数のブロックを含むデータの単位として「コード化単位」に言及する。従って、「コード化単位」という用語は、複数のブロック、例えば、複数の最大コード化単位(LCU)を含むものと理解されるべきである。その上、「コード化単位」という用語は、HEVCにおいて使用されている「コード化単位」又はCUという用語と混同されるべきでない。表示装置32は、復号されたビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶表示器(LCD)、プラズマ表示器、有機発光ダイオード(OLED)表示器、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。
【0054】
ビデオエンコーダ20及びビデオデコーダ30は、現在開発中のHigh Efficiency Video Coding(HEVC)規格など、ビデオコード化規格に従って動作し得る。代替的に、ビデオエンコーダ20及びビデオデコーダ30は、代替的にMPEG−4、Part 10、Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格又は業界規格、又はそのような規格の拡張に従って動作し得る。但し、本開示の技法は、いかなる特定のコード化規格にも限定されない。ビデオコード化規格の他の例には、MPEG−2及びITU−T H.263がある。
図1には示されていないが、幾つかの態様では、ビデオエンコーダ20及びビデオデコーダ30は、それぞれオーディオエンコーダ及びオーディオデコーダと統合され得、適切なMUX−DEMUXユニット、又は他のハードウェア及びソフトウェアを含んで、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0055】
ITU−T H.264/MPEG−4(AVC)規格は、Joint Video Team(JVT)として知られる共同パートナーシップの成果として、ISO/IEC Moving Picture Experts Group(MPEG)とともにITU−T Video Coding Experts Group(VCEG)によって策定された。幾つかの態様では、本開示で説明する技法は、H.264規格に概して準拠する機器に適用され得る。H.264規格は、ITU−T Study Groupによる2005年3月付けのITU−T勧告H.264「Advanced Video Coding for generic audiovisual services」に記載されており、本明細書ではH.264規格又はH.264仕様、あるいはH.264/AVC規格又は仕様と呼ぶことがある。Joint Video Team(JVT)はH.264/MPEG−4 AVCへの拡張に取り組み続けている。
【0056】
JCT−VCは、HEVC規格の開発に取り組んでいる。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコード化機器の発展的モデルに基づく。HMは、例えば、ITU−T H.264/AVCに従う既存の機器に対してビデオコード化機器の幾つかの追加の能力を仮定する。例えば、H.264は9つのイントラ予測符号化モードを提供するが、HMは33個ものイントラ予測符号化モードを提供し得る。「HEVC Working Draft 7」又は「WD7」と呼ばれる、HEVC規格の最近のドラフトは、2012年6月15日現在、http://phenix.it-sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v3.zipからダウンロード可能であり、参照により本明細書に組み込まれる、ドキュメントJCTVC−I1003、Brossら、「High efficiency video coding (HEVC) Text Specification Draft 7」、Joint Collaborative Team on Video Coding (JCT−VC) of ITU−T SG16 WP3 and ISO/IEC JTC1/SC29/WG11、9th Meeting: Geneva、Switzerland、2012年4月27日〜2012年5月7日に記載されている。
【0057】
概して、HMの作業モデルは、ビデオピクチャ(又は、「ピクチャ」と互換的に使用され得る「フレーム」)が、ルーマサンプルとクロマサンプルの両方を含むツリーブロック又は最大コード化単位(LCU)のシーケンスに分割され得ることを記述する。ビットストリーム内のシンタックスデータが、画素の数に関して最大コード化単位であるLCUのサイズを定義し得る。スライスは、コード化順序で幾つかの連続するツリーブロックを含む。ビデオピクチャは、1つ又は複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコード化単位(CU)に分割され得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードがツリーブロックに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。
【0058】
4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。例えば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。CUが更に分割されない場合、そのCUはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的分割が存在しない場合でも、リーフCUの4つのサブCUをリーフCUとも呼ぶ。例えば、16×16サイズのCUが更に分割されない場合、この16×16CUが決して分割されなくても、4つの8×8サブCUをリーフCUとも呼ぶ。
【0059】
CUは、CUがサイズ差異を有さないことを除いて、H.264規格のマクロブロックと同様の目的を有する。例えば、ツリーブロックは、4つの子ノード(サブCUとも呼ばれる)に分割され得、各子ノードは、今度は親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードと呼ばれる、最終的な分割されていない子ノードは、コード化ノードを備え、リーフCUとも呼ばれる。コード化ビットストリームに関連するシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、また、コード化ノードの最小サイズを定義し得る。それに応じて、ビットストリームは最小コード化単位(SCU:smallest coding unit)をも定義し得る。本開示では、HEVCのコンテキストにおけるCU、PU、又はTU、あるいは他の規格のコンテキストにおける同様のデータ構造(例えば、H.264/AVCにおけるマクロブロック及びそれのサブブロック)のいずれかを指すために「ブロック」という用語を使用する。
【0060】
CUは、コード化ノードと、コード化ノードに関連する予測単位(PU:prediction unit)及び変換単位(TU:transform unit)とを含む。CUのサイズは、コード化ノードのサイズに対応し、形状が方形でなければならない。CUのサイズは、8×8画素から最大64×64以上の画素をもつツリーブロックのサイズまでに及び得る。各CUは、1つ又は複数のPUと、1つ又は複数のTUとを含み得る。CUに関連するシンタックスデータは、例えば、CUを1つ又は複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモード符号化又はダイレクトモード符号化されるか、イントラ予測モード符号化されるか、若しくはインター予測モード符号化されるかの間で異なり得る。PUは、形状が非方形になるように区分され得る。CUに関連するシンタックスデータは、例えば、4分木に従って、CUを1つ又は複数のTUに区分することも記述し得る。TUは、形状が方形又は非方形(例えば、矩形)であり得る。
【0061】
HEVC規格は、CUごとに異なり得るTUに従う変換を可能にする。TUは、一般に、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。TUは、一般にPUと同じサイズであるか又はPUよりも小さい。幾つかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用してより小さい単位に再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連する画素差分値は、変換されて変換係数が生成され得、その変換係数は量子化され得る。
【0062】
リーフCUは、1つ又は複数の予測ユニット(PU)を含み得る。概して、PUは、対応するCUの全部又は一部分に対応する空間的領域を表し、そのPUの参照サンプルを取り出すためのデータを含み得る。その上、PUは、予測に関係するデータを含む。例えば、PUがイントラモード符号化されるとき、PUのデータは、PUに対応するTUのイントラ予測モードを記述するデータを含み得る残差4分木(RQT)中に含まれ得る。別の例として、PUがインターモード符号化されるとき、PUは、PUのための1つ又は複数の動きベクトルを定義するデータを含み得る。PUの動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(例えば、1/4画素精度又は1/8画素精度)、動きベクトルが指す参照ピクチャ、及び/又は動きベクトルの参照ピクチャリスト(例えば、リスト0、リスト1又はリストC)を記述し得る。
【0063】
1つ又は複数のPUを有するリーフCUはまた、1つ又は複数の変換ユニット(TU)を含み得る。変換ユニットは、上記で説明したように、(TU4分木構造とも呼ばれる)RQTを使用して指定され得る。例えば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを示し得る。次いで、各変換ユニットは、更に、更なるサブTUに分割され得る。TUが更に分割されないとき、そのTUはリーフTUと呼ばれることがある。概して、イントラコード化の場合、リーフCUに属する全てのリーフTUは同じイントラ予測モードを共有する。即ち、概して、リーフCUの全てのTUの予測値を計算するために同じイントラ予測モードが適用される。イントラコード化の場合、ビデオエンコーダ20は、イントラ予測モードを使用して各リーフTUの残差値をTUに対応するCUの一部と元のブロックとの間の差分として計算し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。従って、TUはPUよりも大きく又は小さくなり得る。イントラコード化の場合、PUは、同じCUについて対応するリーフTUとコロケートされ得る。幾つかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
【0064】
その上、リーフCUのTUはまた、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造に関連付けられ得る。即ち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。TU4分木のルートノードは概してリーフCUに対応し、CU4分木のルートノードは概してツリーブロック(又はLCU)に対応する。分割されないRQTのTUはリーフTUと呼ばれる。概して、本開示では、特に明記しない限り、リーフCU及びリーフTUに言及するためにそれぞれCU及びTUという用語を使用する。
【0065】
ビデオシーケンスは、一般に一連のビデオピクチャを含む。ピクチャグループ(GOP)は、一般に、一連の1つ又は複数のビデオフレームを備える。GOPは、GOP内に含まれる幾つかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、1つ又は複数のピクチャのヘッダ中、又は他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックはCU内のコード化ノードに対応し得る。ビデオブロックは、固定サイズ又は可変サイズを有し得、指定のコード化規格に応じてサイズが異なり得る。
【0066】
一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2N又はN×NのPUサイズでのイントラ予測をサポートし、2N×2N、2N×N、N×2N、又はN×Nの対称的なPUサイズでのインター予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、及びnR×2NのPUサイズでのインター予測のための非対称区分をサポートする。非対称区分では、CUの一方向は区分されないが、他の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、又は「Right」という表示によって示される。従って、例えば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUとで水平方向に区分された2N×2N CUを指す。
【0067】
本開示では、「N×N(NxN)」及び「N×N(N by N)」は、垂直寸法及び水平寸法に関するビデオブロックの画素寸法、例えば、16×16(16x16)画素又は16×16(16 by 16)画素を指すために互換的に使用され得る。概して、16×16ブロックは、垂直方向に16画素を有し(y=16)、水平方向に16画素を有する(x=16)。同様に、N×Nブロックは、概して、垂直方向にN画素を有し、水平方向にN画素を有し、但し、Nは非負整数値を表す。ブロック中の画素は行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数の画素を有する必要があるとは限らない。例えば、ブロックはN×M画素を備え得、但し、Mは必ずしもNに等しいとは限らない。
【0068】
CUのPUを使用したイントラ予測コード化又はインター予測コード化の後に、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、(画素領域とも呼ばれる)空間領域において予測画素データを生成する方法又はモードを記述するシンタックスデータを備え得、TUは、例えば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、又は概念的に同様の変換などの変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャの画素と、PUに対応する予測値との間の画素差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、TUを変換して、CUの変換係数を生成し得る。
【0069】
ビデオエンコーダ20は、次いで、ビデオデータを更に圧縮するために変換係数を量子化し得る。量子化は、概して、更なる圧縮を提供する、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。例えば、量子化中にnビット値がmビット値に切り捨てられ得、但し、nはmよりも大きい。
【0070】
量子化は、量子化中に変換係数に適用される量子化ステップサイズに索引付けされ得る量子化パラメータ(QP)に従って適用され得る。ビデオエンコーダ20は、QPを調整することによって量子化の程度(例えば、量子化ステップサイズ)を変更し得る。例えば、H.264及び新生のHEVC規格など、幾つかのビデオコード化規格に従って、ビデオエンコーダ20は、全整数増分において0〜51の範囲内のQPを選択し得る(但し、−26〜+25、又は別の範囲など、他の範囲が可能である)。ビデオエンコーダ20は、選択されたQPに関連する量子化ステップサイズを適用し得る。
【0071】
ビデオエンコーダ20がビットストリーム中で信号伝達するデータの量を更に低減するために、ビデオエンコーダ20は、所与のブロックのQPを予測し得る。例えば、QP自体を含むのではなく、ビデオエンコーダ20は、現在ブロックのための実際のQPと、何らかの参照QP(例えば、異なるブロックに関連するQP、又は複数の隣接ブロックにわたって平均化されたQP)との間の変化(即ち、Δ)を識別し得る。ビデオエンコーダ20は、次いで、ビットストリーム中で現在ブロックのΔQPを信号伝達し得る。幾つかの例では、参照QPは、現在符号化されているブロックに空間的に隣接するブロックに関連し得る。他の例では、参照QPは、現在符号化されているブロックとは異なる時間インスタンス中のブロックに関連し得る。
【0072】
ビデオエンコーダ20は、スライスレベルで、又はLCUレベルで、又はCUのグループについてQP又はΔQPを信号伝達し得る(例えば、符号化ビットストリーム中にシンタックス要素を含み得る)。例えば、ビデオエンコーダ20は、LCU内のCUの異なるPUに関連するTU中の全ての変換係数に適用されるべきであるQPを識別し得る。別の例では、ビデオエンコーダ20は、あるスライスの全てのTU中の全ての変換係数に適用されるべきであるQPを識別し得る。更に別の例では、ビデオエンコーダ20は、1つ又は複数の特定のTUのための特定のQPを識別し得る。
【0073】
上述のように、本開示の技法は、概して、ビデオコード化中に1つ又は複数の変換係数に適用される量子化の量を制御することに関する。例えば、ビデオエンコーダ20が、初めに、所与の変換係数を量子化するためのQPを選択し得る。選択されたQPに関連する量子化ステップサイズを適用するより前に、ビデオエンコーダ20は、量子化ステップサイズに量子化基準化値を適用し得る。即ち、可変基準化値が固定量子化ステップサイズに適用され得る。量子化基準化値は、次のより高い又はより低いQPに索引付けされた次の量子化ステップサイズのサイズ未満に量子化ステップサイズを増加(又は減少)させ得る。このようにして、ビデオエンコーダ20は、変換係数が量子化される量に対して(例えば、整数QPを選択することに関連して)より大きい制御を有する。
【0074】
更に、本開示の技法は、量子化基準化値を信号伝達することに関する。例えば、ビデオエンコーダ20が、LCU及び/又はCUレベルなど、スライスレベル又はブロックレベルで量子化基準化値を信号伝達し得る。スライスレベルでは、ビデオエンコーダ20は、ブロックタイプに基づいて個別に量子化基準化値を信号伝達し得る。例えば、ビデオエンコーダ20は、異なるブロックタイプ(例えば、イントラ予測ブロック、インター予測ブロック、ルーマブロック、クロマブロックなど)のスライスヘッダ内で異なる量子化基準化値を信号伝達し得る。この例では、ビデオエンコーダ20は、スライス中のブロックごとに量子化基準化値を介して量子化ステップサイズを調整し得る。別の例では、ビデオエンコーダ20は、量子化基準化値がCUに適用されるように、CUレベルで量子化基準化値を信号伝達し得る。この例では、ビデオエンコーダ20は、例えば、量子化基準化値がLCU内のCUに適用されるように、LCUレベルで量子化基準化値を信号伝達し得る。
【0075】
本開示の幾つかの態様によれば、ビデオエンコーダ20は、量子化基準化値が特定のブロック又はスライスに適用されているかどうかを示すフラグを設定し得る。例えば、ビデオエンコーダ20は、量子化基準化値がスライスの量子化ステップサイズに適用されないことを示すために、スライスヘッダ中でフラグを0の値に設定し得る。代替的に、ビデオエンコーダ20は、量子化基準化値がスライスの量子化ステップサイズに適用されることを示すために、スライスヘッダ中でフラグを1の値に設定し得る。この例では、ビデオエンコーダ20は、フラグの後に量子化基準化値を信号伝達し得る。追加又は代替として、ビデオエンコーダ20は、量子化基準化値が特定のLCU内のブロックに適用されているかどうかを示すために、同様の方法でフラグをLCUレベルで設定し得る。
【0076】
他の態様によれば、本開示の技法は、変換係数を量子化するための量子化精度を制御することに関する。即ち、基準化値に関係する技法とは別個に、ビデオエンコーダ20は、量子化精度の別個の指標を受信し得る。上述のように、本開示では、概して、「精度」を、量子化を実行するとき、予め定義された量の量子化がより小さい部分に再分割又は分解され得る程度として参照する。例えば、量子化精度は、全量子化が再分割され、QPで索引付けされ得る程度を指し得、QPは、次いで、量子化中に変換係数に適用され得る。
【0077】
本開示の態様は、上記で説明したQPインデックスを変更することによって適用される量子化の量に対する制御をビデオエンコーダ20に与えることに関する。即ち、H.264コード化が52個のQPに従って全量子化を再分割する場合、本開示の態様は、ピクチャの1つ又は複数のブロックに関連する変換係数を量子化するために全量子化を更に再分割することに関する。他の例では、全量子化は、より少ないQPに再分割され、索引付けされ得る。
【0078】
一例では、QPと量子化ステップサイズとの間の関係は、QPが12だけ増加したときに量子化ステップサイズが2倍になるように変更され得る。即ち、QPが1だけ増加するたびに、量子化ステップサイズは約2
1/12倍に増加し得る(例えば、量子化ステップサイズの同じ範囲をカバーするために104個のQPを与える)。この例は、12の量子化精度と呼ばれることがある。量子化精度を増加させると、ビデオエンコーダ20に追加のレート制御能力(例えば、上記で説明したレート歪みに対する制御)が与えられ得、及び/又は、ビデオエンコーダ20が知覚的ビット割振りを実行するときにより細かい制御を有することが可能になり得る。但し、ピクチャの全ての領域について、より細かい量子化精度が必要とされるとは限らない。そのような場合、増加された量子化精度を識別するために必要とされる追加のビットは、追加された量子化制御だけの価値がないことがある。
【0079】
本開示の技法はまた、ピクチャ内で量子化精度を適応的に変化させることに関する。例えば、本開示の態様によれば、ビデオエンコーダ20は、ビデオデータのブロックを量子化するための量子化精度を選択し、及び、選択された量子化精度を信号伝達し得る(例えば、ビットストリーム中に、選択された量子化精度の指標を含め得る)。例えば、ビデオエンコーダ20は、LCU情報、CU情報、CUのグループなどとともに、スライスヘッダ中に量子化精度の指標を与え得る。
【0080】
量子化の後に、ビデオエンコーダは、変換係数を走査して、量子化変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、より高いエネルギー(従ってより低い周波数)の係数をアレイの前方に配置し、より低いエネルギー(従ってより高い周波数)の係数をアレイの後方に配置するように設計され得る。幾つかの例では、ビデオエンコーダ20は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するために予め定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20は適応型走査を実行し得る。
【0081】
量子化変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、例えば、コンテキスト適応型可変長コード化(CAVLC:context-adaptive variable length coding)、コンテキスト適応型二値算術コード化(CABAC:context-adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型二値算術コード化(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コード化、又は別のエントロピー符号化方法に従って1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
【0082】
CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択し得る。コンテキストは、例えば、隣接値が非0であるか否かに関係し得る。ビデオエンコーダ20はまた、適応型走査を実行するときに生成される有効係数フラグ及び最後係数フラグなど、シンタックス要素をエントロピー符号化し得る。本開示の技法によれば、ビデオエンコーダ20は、コンテキストモデル選択のために使用されるファクタの中でも、例えば、イントラ予測方向、シンタックス要素に対応する係数の走査位置、ブロックタイプ、及び/又は変換タイプに基づいて、これらのシンタックス要素を符号化するために使用されるコンテキストモデルを選択し得る。
【0083】
概して、ビデオデコーダ30によって実行されるビデオ復号プロセスは、ビデオエンコーダ20によって実行される符号化技法とは逆の技法を含み得る。概して逆であるが、ビデオデコーダ30は、場合によっては、ビデオエンコーダ20によって実行される技法と同様の技法を実行することがある。ビデオデコーダ30はまた、ビデオエンコーダ20に関して説明したデータを含む受信ビットストリーム中に含まれているシンタックス要素又は他のデータに依拠し得る。
【0084】
特に、本開示の態様によれば、ビデオデコーダ30は、逆量子化を実行するとき、ビデオエンコーダ20に関して上記で説明した量子化技法と同様の又は同じ技法を実行し得る。即ち、本開示の態様によれば、ビデオデコーダ30は、スライスレベルで、及びコード化単位レベル(例えば、HEVCにおいて定義されている最大コード化単位レベル)で量子化基準化値の指標を受信し得る。
【0085】
スライスレベルでは、ビデオデコーダ30は、ブロックタイプに基づいて個別に量子化基準化値の指標を受信し得る。例えば、ビデオデコーダ30は、異なるブロックタイプのスライスヘッダ内で異なる量子化基準化値を受信し得る。この例では、ビデオデコーダ30は、スライス中のブロックごとに量子化基準化値を介して量子化ステップサイズを調整し得る。別の例では、ビデオデコーダ30は、スライスの幾つかのブロックのためのTUの量子化を制御するために量子化基準化値がビデオデコーダ30によってQPにのみ適用されるように、例えば、LCU又はCUヘッダ中で、LCU及び/又はCUレベルで量子化基準化値の指標を受信し得る。
【0086】
ビデオデコーダ30は、逆量子化中に、受信された量子化基準化値を適用し得る。例えば、ビデオデコーダ30は、初めに、所与の変換係数を逆量子化するためのQPを識別し得る。選択されたQPに関連する量子化ステップサイズを適用するより前に、ビデオデコーダ30は、量子化ステップサイズに量子化基準化値を適用し得る。量子化基準化値は、次のより高い又はより低いQPに索引付けされた(例えば、整数QPに関連する)次の量子化ステップサイズのサイズ未満に量子化ステップサイズを増加(又は減少)させ得る。
【0087】
他の態様によれば、ビデオデコーダ30は、量子化精度の指標を受信し得る。即ち、基準化値に関係する技法とは別個に、ビデオデコーダ30は、量子化精度の別個の指標を受信し得る。例えば、ビデオデコーダ30は、ビデオデータのブロックを逆量子化するための量子化精度の指標を受信し得る。幾つかの例では、ビデオデコーダ30は、スライスレベル又はLCUレベル又はCUレベルで若しくはCUのグループについて量子化精度信号を受信し得る。
【0088】
QP精度がスライスヘッダ中で信号伝達される例では、ビデオデコーダ30は、QP精度がスライス内で適応型であるかどうかを示す別のフラグを受信し得る。例えば、ビデオデコーダ30は、1つ又は複数の受信されたシンタックス要素に基づいてQP精度がスライス内のあるLCUから別のLCUまで変化するかどうかを決定し得る。適応型精度が使用される場合、スライスの最大許容精度を示す別のシンタックス要素が与えられ得る。
【0089】
スライス内の適応型精度が使用可能である例では、QP精度は、LCUレベルでシンタックス要素を介して信号伝達され得る。例えば、シンタックス要素は、上記で説明したスライスヘッダ中の信号伝達と同様に、LCUのQP精度を識別し得る。LCUシンタックス要素の信号伝達は、(例えば、エントロピーコード化のために)(因果的順序で)隣接するシンタックス要素の値からなるコンテキストを使用し得る。
【0090】
幾つかの例では、ビデオデコーダ30はまた、QPをあるQP精度から別のQP精度にマッピングすべきかどうかを決定し得る。即ち、ΔQPが受信される例では、ビデオデコーダ30は、QP精度が一致するように現在ブロックをコード化するために予測QP及び/又はΔQPを基準化し得る。ビデオデコーダは、次いで、予測QPとΔQPとの組合せ(例えば、和)に基づいて現在ブロックを逆量子化するためのQPを決定し得る。
【0091】
図1には示されていないが、幾つかの態様では、ビデオエンコーダ20及びビデオデコーダ30は、それぞれオーディオエンコーダ及びオーディオデコーダと統合され得、適切なMUX−DEMUXユニット、又は他のハードウェア及びソフトウェアを含んで、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、幾つかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0092】
ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、又はそれらの任意の組合せとして実施され得る。本技法が部分的にソフトウェアで実施されるとき、機器は、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つ又は複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20及びビデオデコーダ30の各々は1つ又は複数のエンコーダ又はデコーダ中に含まれ得、そのいずれも、それぞれの機器において複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
【0093】
図2は、ビデオコード化中に1つ又は複数の変換係数に適用される量子化の量を制御するための技法を実施し得るビデオエンコーダ20の一例を示すブロック図である。
図2の幾つかの構成要素は、概念的な目的のために単一の構成要素に関して図示及び説明されることがあるが、1つ又は複数の機能ユニットを含み得ることを理解されたい。更に、
図2の幾つかの構成要素は、単一の構成要素に関して図示及び説明されることがあるが、そのような構成要素は、物理的に1つ又は2つ以上の個別及び/又は一体型ユニットから構成され得る。
【0094】
図2に示すように、ビデオエンコーダ20は、符号化されるべきビデオピクチャ内の現在ビデオブロックを受信する。
図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、動き推定ユニット42と、動き補償ユニット44と、イントラ予測ユニット46と、参照ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。
【0095】
ビデオエンコーダ20は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(及び、場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。モード選択ユニット40は、誤り結果(例えば、コード化レート及び歪みレベル)に基づいて、現在ビデオブロックのために、以下で説明するように、複数のイントラコード化モードのうちの1つ、又は複数のインターコード化モードのうちの1つなど、複数の可能なコード化モードのうちの1つを選択し得る。モード選択ユニット40は、得られたイントラコード化ブロック又はインターコード化ブロックを、残差ブロックデータを生成するために加算器50に与え、参照ピクチャとして使用するための符号化ブロックを再構成するために加算器62に与え得る。
【0096】
動き推定ユニット42及び動き補償ユニット44は、1つ又は複数の参照ピクチャ中の1つ又は複数のブロックに対して受信ビデオブロックのインター予測コード化を実行する。動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。
【0097】
概して、動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在ピクチャ(又は、他のコード化ユニット)内でコード化されている現在ブロックに対する予測参照ピクチャ(又は、他のコード化単位)内の予測ブロックの変位を示し得る。予測ブロックは、絶対値差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、又は他の差分メトリックによって決定され得る画素差分に関して、コード化されるべきブロックにぴったり一致することがわかるブロックである。予測ブロックはインター予測中に参照されるので、予測ブロックは「参照ブロック」と呼ばれることもある。
【0098】
従って、動き推定ユニット42は、現在コード化されているブロックを参照ピクチャメモリ64中の参照ピクチャの参照ブロックと比較することによって、インターコード化ピクチャのビデオブロックの動きベクトルを計算し得る。ITU−T H.264規格では、参照ピクチャの「リスト」、例えば、リスト0及びリスト1に言及する。リスト0は、現在ピクチャよりも前の表示順序を有する参照ピクチャを含むが、リスト1は、現在ピクチャよりも後の表示順序を有する参照ピクチャを含む。他のコード化方式では、単一のリストが維持され得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
【0099】
動き補償ユニット44によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチ又は生成すること、場合によってはサブ画素精度への補間を実行することを伴い得る。現在ビデオブロックの動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいて指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コード化されている現在ビデオブロックの画素値から予測ブロックの画素値を減算し、画素差分値を形成することによって残差ビデオブロックを形成する。画素差分値は、ブロックの残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実行する1つ又は複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【0100】
イントラ予測ユニット46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。幾つかの例では、イントラ予測ユニット46は、例えば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測ユニット46(又は、幾つかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。
【0101】
例えば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードのためのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択し得る。レート歪み分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み(又は誤差)の量、及び符号化ブロックを生成するために使用されるビットレート(即ち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレート歪み値を呈するかを決定するために、様々な符号化ブロックの歪み及びレートから比を計算し得る。
【0102】
いずれの場合も、ブロックのイントラ予測モードを選択した後に、イントラ予測ユニット46は、ブロックについての選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、本開示の技法に従って選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信ビットストリーム中に、複数のイントラ予測モードインデックステーブル及び複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、及び変更されたイントラ予測モードインデックステーブルの指標とを含み得る構成データを含み得る。
【0103】
変換処理ユニット52は、離散コサイン変換(DCT)、DCTを近似する整数変換、DCTを近似する固定小数点変換又は概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット52は、概念的にDCTと同様である、H.264規格によって定義される変換などの他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換又は他のタイプの変換も使用され得る。「変換スキップ」モードなど、幾つかのコード化モードでは、残差画素の変換が実行されないことがある。即ち、量子化ユニット54は、以下で説明するように、予測残差を直接量子化し得る。変換処理ユニット52が残差ブロックに変換を適用する場合、変換処理ユニット52は残差変換係数のブロックを生成する。変換処理ユニット52は、残差情報を画素値領域から周波数領域などの変換領域に変換し得る。
【0104】
量子化ユニット54は、ビットレートを更に低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。例えば、量子化は、概して、相対的に大きい範囲内の値を相対的に小さい範囲中の値にマッピングし、それによって、量子化変換係数を表すために必要とされるデータの量を低減することを伴う。
【0105】
量子化ユニット54は、予め定義されたアルゴリズムに従ってQPを適用することによって変換係数を量子化し得る。一例では、量子化ユニット54は、上記で説明した式(1)を使用して変換係数を量子化し得る。量子化ユニット54は、QPを調整することによって、変換係数値に適用される量子化の程度を変更し得る。幾つかの例では、量子化ユニット54は、0〜51の範囲内のQPを選択し得るが、他のQP範囲(例えば、−26〜26、又は他の範囲)が使用され得る。
【0106】
規格は、ビデオエンコーダ20において使用される量子化ステップサイズを規範的に指定しないことがあるが、幾つかのビデオエンコーダでは、QPが1だけ増加すると、量子化ステップサイズは一般に約2
1/6倍に増加する。従って、52個のQPがある例では、量子化ユニット54は、以下の表1に示すようにQPを量子化ステップサイズに索引付けし得る。
【表1】
【0107】
言い換えれば、1のQP増分は、量子化ステップサイズQ
stepの約12.5%の増加に対応し得る。従って、量子化の量はQPの6の増分ごとに2倍になり、これは、6の量子化精度と呼ばれ得る。上述のように、(QPによってマッピングされる)QP
stepは、上記の式(1)に示すものなど、特定の量子化アルゴリズムにおいて実施され得る。
【0108】
量子化ユニット54は、スライス内のあるブロックから別のブロックまでQPを変化させ得る。適応量子化と呼ばれることがある、ブロック又はスライス間でQPを変化させることは、視覚的品質改善をターゲットにする。量子化ユニット54がLCU又はCUレベルで量子化ステップサイズを変化させるとき、量子化ユニット54は、ΔQPと呼ばれるシンタックス要素を介してその変化を示し得る。即ち、QP自体を含めるのではなく、量子化ユニット54は、現在ブロックのための実際のQPと、例えば、スライスQP、隣接ブロックQP、又は時間的に同位置に配置されたブロックQPなど、何らかの参照QPとの間の変化(即ち、Δ)を識別し、信号伝達し得る。
【0109】
ΔQPを生成するとき、量子化ユニット54は、現在ブロックに空間的に隣接するブロック(例えば、同じスライス又はピクチャ中の隣接ブロック)に関連する参照QPを識別するか、又は複数の隣接QPを平均化し得る。例えば、H.264対応ビデオエンコーダ20は、現在マクロブロックの参照QPとして前のマクロブロックのQPを使用して、マクロブロックレベルでΔQPを信号伝達し得る。他の可能性には、上及び左のネイバー、又は時間的に同位置に配置されたブロック、又は動きベクトルに基づく他のブロックがある。
【0110】
量子化ステップサイズの範囲を与えることにより、量子化ユニット54は、(例えば、レート歪みと呼ばれることがある)ビットレートと品質との間のトレードオフを制御し得る。例えば、量子化パラメータを増加させると、コード化データのビットレートが減少し得る。但し、符号化ビデオデータの全体的な品質は、量子化によって導入される誤差の増加により悪くなり得る。一方、量子化パラメータを減少させると、コード化データのビットレートが増加しながら、全体的な品質が高まり得る。
【0111】
本開示の技法は、1つ又は複数の変換係数に適用される量子化の量を制御することに関する。例えば、本開示の態様によれば、量子化ユニット54は、量子化中に適用される量子化ステップサイズを調整するために量子化基準化値を適用し得る。説明のために、上述のように、H.264規格は、量子化ステップサイズに索引付けされた52個のQPを提供し得る。0のQPにおいて、最小の量子化が適用される。51のQPにおいて、最大の量子化が適用される。その上、QPは、一般に整数増分(例えば、1又はそれ以上の増分)で調整され、量子化は6のQP増分ごとに2倍になる。本開示の態様によれば、量子化ユニット54は、QPの整数変化を用いて達成され得るサイズよりも細かい量子化ステップサイズを達成するために、量子化ステップサイズに基準化要素を適用し得る。
【0112】
一例では、量子化ユニット54は、所与の変換係数を量子化するためのQPを選択し得る。量子化ユニット54は、次いで、QPに索引付けされた量子化ステップサイズを識別し得る。量子化ステップサイズを適用するより前に、量子化ユニット54は、量子化ステップサイズに量子化基準化値を適用し得る。量子化基準化値は、次のQPに索引付けされた次の量子化ステップサイズのサイズ未満に量子化ステップサイズを増加(又は減少)させ得る。このようにして、量子化ユニット54は、変換係数が量子化される量に対して(例えば、整数QPを選択することに関連して)より大きい制御を有する。
【0113】
本開示の態様によれば、量子化ユニット54は、量子化中に量子化基準化値sを適用し、例えば、ビットストリーム中で、量子化基準化値sを信号伝達し得る。量子化ユニット54は、量子化基準化値sを使用して、以下に示す式(2)に従ってあるQPに対応する量子化ステップサイズを調整し得る。
【数3】
【0114】
但し、Tは、現在QPによって示される現在量子化ステップサイズを表す。この例では、sは正値又は負値のいずれかであり得、T
sは、エンコーダ又はデコーダによって適用される実際の量子化ステップサイズを表す。
【0115】
上述のように、H.264及び現在提案されているHEVC規格など、幾つかのコード化規格は、6つのQP精度を有する。即ち、QPを1だけ増加又は減少させると、以下に示す式(3)及び式(4)によって識別される量子化ステップサイズの変化が生じ得る。
【数4】
【数5】
【0116】
上記の式(3)及び式(4)において、T
QPは特定の量子化ステップサイズに関連付けられる。式(3)及び式(4)とともに式(2)が考慮されるとき、sが(2
(-1/6)−1)と(2
(1/6)−1)との間の値を取る限り、より細かい精度量子化ステップサイズT
sが得られ得る。この例では、量子化ステップサイズ精度は、量子化基準化値sの精度に依存し得る。更に、量子化ユニット54は、QPとは無関係に量子化基準化値sを信号伝達し得、それにより、量子化ステップサイズを変化させるときに更なる自由が与えられ得る。
【0117】
量子化ユニット54は、所望のビットレート及び/又はレート歪みを得るために量子化基準化値を使用し得る。例えば、量子化ユニット54は、ターゲットビットレートを達成するがそれを超えないように、量子化中に第1の量子化パラメータを適用し得る。但し、第1の量子化パラメータを十分な整数だけ減少させ(それによって、1つ又は複数の変換係数に適用される量子化の量を減少させ)ると、ターゲットより上にビットレートが増加し得る。この例では、量子化ユニット54は、ターゲットビットレートを達成するために、第1の量子化パラメータに索引付けされた量子化ステップサイズに基準化要素sを適用し得る。即ち、量子化ユニット54は、第1の量子化パラメータに関連するステップサイズを決定し、決定されたステップサイズに基準化要素sを適用し、予め定義された量子化アルゴリズムにおいて、基準化された量子化ステップサイズを適用し得る。
【0118】
幾つかの例では、量子化ユニット54は、スライスレベル又はブロックレベルで量子化基準化値の指標を与え得る。スライスレベルでは、量子化ユニット54は、ブロックタイプに基づいて個別に量子化基準化値を示し得る。例えば、量子化ユニット54は、異なるブロックタイプ(例えば、イントラブロック、インターブロック、ルーマブロック、クロマブロックなど)のスライスヘッダ内で異なる量子化基準化値を信号伝達し得る。この例では、量子化基準化値は、スライス中のあらゆるブロックに適用され得る。幾つかの例では、量子化ユニット54はまた、量子化基準化値がLCU内の幾つかのCU又はサブCUにのみ適用されるように、LCU及び/又はCUレベルで量子化基準化値を示し得る。
【0119】
本開示の幾つかの態様によれば、量子化ユニット54は、Δ量子化基準化値に従って量子化基準化値を示し得る。即ち、量子化ユニット54は、現在ブロック又はスライスのための量子化基準化値と、何らかの他の量子化基準化値(例えば、参照ブロック又はスライスに関連する量子化基準化値)との間の差分を生成し得る。量子化ユニット54は、次いで、例えば、ビットストリーム中の1つ又は複数のシンタックス要素を使用して、Δ量子化基準化値を示し得る。
【0120】
本開示の幾つかの態様によれば、量子化ユニット54は、量子化基準化値が特定のブロック又はスライスに適用されているかどうかを示すフラグを設定し得る。例えば、量子化ユニット54は、量子化基準化値がスライスの量子化ステップサイズに適用されないことを示すために、スライスヘッダ中でフラグを0の値に設定し得る。この場合、標準的な量子化ステップサイズが使用される。代替的に、量子化ユニット54は、量子化基準化値がスライスの量子化ステップサイズに適用されることを示すために、スライスヘッダ中でフラグを1の値に設定し得る。この例では、量子化ユニット54は、フラグの後に量子化基準化値を信号伝達し得る。追加又は代替として、量子化ユニット54は、量子化基準化値が特定のLCU内のブロックに適用されているかどうかを示すために、同様の方法でフラグをブロックレベルで設定し得る。
【0121】
本開示の他の態様によれば、量子化ユニット54は量子化精度を変更し得る。例えば、本開示の態様は、QPインデックスを改良することによって適用される量子化の量に対する制御の増加を量子化ユニット54に提供することに関する。一例では、全量子化が52個のQPに従って再分割される、6のベースライン量子化精度を仮定する。本開示の態様によれば、量子化ユニット54は、QPが12だけ増加したときに量子化ステップサイズが2倍になるように、QPと量子化ステップサイズとの間の関係を変更し得る。即ち、QPが1だけ増加するたびに、量子化ステップサイズは約2
1/12倍に増加する(例えば、104個のQPを与える)。この例は、12の量子化精度と呼ばれることがある。
【0122】
量子化精度を増加させると、量子化ユニット54に追加のレート制御(例えば、上記で説明したレート歪みに対する制御)が与えられ得、及び/又は、知覚的ビット割振りを実行するときにビデオコーダにより細かい制御が与えられ得る。但し、ビデオピクチャ(又はスライス)の全ての領域について、より細かい量子化精度が必要とされるとは限らない。例えば、提案されているHEVC規格は、ビデオデータの8×8ブロックごとにQP(又はΔQP)の信号伝達を可能にし得る。ビデオデータの幾つかのブロックのためには、比較的粗い量子化で十分であり得る。即ち、所望のレート歪みは、比較的粗い精度を使用して達成され得る。そのような場合、増加された量子化精度を識別するために必要とされる追加のビットは、追加された量子化制御だけの価値がないことがある。
【0123】
本開示の幾つかの態様によれば、量子化ユニット54は、スライス内の量子化精度を適応的に変化させ得る。例えば、量子化ユニット54は、ビデオデータのブロックを量子化するためのQP精度を選択し、及び、選択されたQP精度を示し得る。幾つかの例では、量子化ユニット54は、スライスレベルでQP精度を示し得る。例えば、量子化ユニット54は、QP精度を指定するシンタックス要素をスライスヘッダ中に含み得る。このシンタックス要素は、QP精度を指定するか、又は、幾つかの予め定義されたQP精度のうちの1つを指すインデックスであり得る。例えば、0のポインタ値が、相対的に最も低い精度を指定し得、1のポインタ値は、相対的により高い精度を指定し得る、などである。この例では、0のポインタ値は、既存のAVC/H.264方式(6のQP精度)を識別し得、1のポインタ値は、より低い精度の倍化(12のQP精度)を識別することができる。
【0124】
QP精度がスライスヘッダ中で信号伝達される例では、QP精度がスライス内で適応型であるかどうかを示す別のフラグが後続し得る。例えば、量子化ユニット54は、QP精度が、スライス内のあるLCUから別のLCUまで変化するかどうかを示し得る。適応型精度が信号伝達される場合、スライスポインタは、スライスの最大許容精度を示し得る。
【0125】
スライス内の適応型精度が使用可能である例では、QP精度は、LCUレベルでシンタックス要素を介して信号伝達され得る。例えば、シンタックス要素は、上記で説明したスライスヘッダ中の信号伝達と同様に、LCUのQP精度を識別し得る。量子化ユニット54は、特定の(因果的)順序で隣接するシンタックス要素(例えば、隣接ブロックに関連する任意の所定のシンタックス要素)の値を含むコンテキストを使用してLCUシンタックス要素を示し得る。
【0126】
QP精度が適応型である例では、量子化ユニット54は、ΔQPを適切に決定し示すために、QP精度マッピングを実行し得る。例えば、QP予測のために使用されるブロックは、現在符号化されているブロックとは異なるQP精度を有し得る。本開示の態様によれば、量子化ユニット54は、QP精度が一致するように現在QPと予測QPの一方又は両方をマッピングし得る。一例では、所与のスライス(又はピクチャ)中に、12と6とのQP精度を有するQPが存在し得る。量子化ユニット54は、より高い精度のための2n及び2n+1のQP値(例えば、12のQP精度)を、より低い精度のQP値(例えば、6のQP精度)にマッピングし得る。そのような一例では、nは0〜51の値を取り得る。他の例では、より低いQP精度をより高いQP精度にマッピングする、逆マッピングが実行され得る。
【0127】
そのようなマッピング関数を決定するためのメトリックは、それぞれのQPに対応する量子化ステップサイズ間の距離を考慮することであり得る。この例では、複数の高い精度QPが、単一の低い精度QPにマッピングし得る。より低いQP精度からの各QPをより高いQP精度からのQPにマッピングするために、同様の逆マッピング関数が使用され得る。例えば、6と12とのQP精度が使用される場合、量子化ユニット54は、n(n=0、1、2...51)のQPを、2nのより高い精度QPにマッピングし得る。
【0128】
一例では、量子化ユニット54は、全てのQPを高いQP精度に維持し得る。QP予測のために使用される特定のLCUがより低いQP精度を有する場合、量子化ユニット54は、上記で説明したマッピング関数を使用することによって、特定のLCUに属するブロックのQPをより高いQP精度に変換し得る。量子化ユニット54は、次いで、より高いQP精度でQP予測を実行し得る。即ち、量子化ユニット54は、より高いQP精度で現在ブロックのΔQPを決定し得る。一方、現在ブロックがより低いQP精度を有する場合、量子化ユニット54は、予測QP値をより低いQP精度に変換するためにマッピング関数を使用し得る。量子化ユニット54は、次いで、より低いQP精度で現在ブロックのΔQPを形成し得る。
【0129】
別の例では、全てのQPが、より低いQP精度に維持され得る。QP予測のために使用される特定のLCUが高いQP精度を有する場合、量子化ユニット54は、上記で説明したマッピング関数を使用することによって、そのLCUに属するブロックのQP値をより低いQP精度に変換し得る。量子化ユニット54は、次いで、より低いQP精度でQP予測を形成し得る。即ち、量子化ユニット54は、より低いQP精度で現在ブロックのΔQPを決定し得る。一方、現在ブロックがより高いQP精度を有する場合、量子化ユニット54は、予測QPをより高いQP精度に変換するためにマッピング関数を適用し得る。量子化ユニット54は、次いで、より高いQP精度で現在ブロックのΔQPを形成し得る。代替的に、この場合、量子化ユニット54がより低いQP精度でQP予測を実行すると、量子化ユニット54は、同様により低い精度でΔQPを形成し得る。量子化ユニット54は、マッピング関数を使用することによって、現在ブロックのより高い精度QPをより低い精度に変換することによってこれを達成し得る。量子化ユニット54は、次いで、特定の低い精度QPにマッピングする高い精度QPのセットから実際の高い精度QPを指定するための追加の情報を信号伝達する。
【0130】
幾つかの事例では、2つ以上の参照QPが組み合わせられ得る(例えば、複数の参照QPが平均化され得る)。そのような事例では、参照QPを組み合わせるより前に全ての参照QPを同じ精度に準拠させるために、同様のマッピング技法が実行され得る。
【0131】
量子化の後に、エントロピー符号化ユニット56は、量子化変換係数をエントロピーコード化する。例えば、エントロピー符号化ユニット56は、コンテンツ適応型可変長コード化(CAVLC)、コンテキスト適応型二値算術コード化(CABAC)、又は別のエントロピーコード化技法を実行し得る。エントロピー符号化ユニット56によるエントロピーコード化の後に、符号化ビデオは、別の機器に送信されるか、又は後で送信するか若しくは取り出すためにアーカイブされ得る。コンテキスト適応型二値算術コード化(CABAC)の場合、コンテキストは隣接マクロブロックに基づき得る。
【0132】
場合によっては、エントロピー符号化ユニット56又はビデオエンコーダ20の別のユニットは、エントロピーコード化に加えて他のコード化機能を実行するように構成され得る。例えば、エントロピー符号化ユニット56は、マクロブロック及び区分のCBP値を決定するように構成され得る。また、場合によっては、エントロピー符号化ユニット56は、マクロブロック又はそれの区分中の係数のランレングスコード化を実行し得る。特に、エントロピー符号化ユニット56は、マクロブロック又は区分中の変換係数を走査するためにジグザグ走査又は他の走査パターンを適用し、更なる圧縮のためにゼロのランを符号化し得る。エントロピー符号化ユニット56はまた、符号化ビデオビットストリーム中での送信のために適切なシンタックス要素を用いてヘッダ情報を構成し得る。
【0133】
逆量子化ユニット58及び逆変換処理ユニット60は、それぞれ逆量子化及び逆変換を適用して、例えば、参照ブロックとして後で使用するために、画素領域中で残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照ピクチャメモリ64のピクチャのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つ又は複数の補間フィルタを適用して、動き推定において使用するサブ整数画素値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオピクチャ中のブロックをインターコード化するために動き推定ユニット42及び動き補償ユニット44によって参照ブロックとして使用され得る。
【0134】
図3は、符号化ビデオシーケンスを復号するビデオデコーダ30の一例を示すブロック図である。
図3の例では、ビデオデコーダ30は、エントロピー復号ユニット130と、動き補償ユニット132及びイントラ予測ユニット134を有する予測ユニット131と、逆量子化ユニット136と、逆変換ユニット138と、参照ピクチャメモリ142と、加算器140とを含む。
【0135】
復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット130は、量子化係数、動きベクトル、及び他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット130は、予測ユニット131に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ30は、ビデオスライスレベル及び/又はビデオブロックレベルでシンタックス要素を受信し得る。
【0136】
ビデオスライスがイントラコード化(I)スライスとしてコード化されるとき、予測ユニット131のイントラ予測ユニット134は、信号伝達されたイントラ予測モードと、現在ピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオピクチャがインターコード化(即ちB、P又はGPB)スライスとしてコード化されるとき、予測ユニット131の動き補償ユニット132は、エントロピー復号ユニット130から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ142に記憶された参照ピクチャに基づいて、デフォルト構成技法を使用して、参照ピクチャリスト、リスト0及びリスト1を構成し得る。
【0137】
動き補償ユニット132は、動きベクトルと他のシンタックス要素とを構文解析することによって現在ビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されている現在ビデオブロックの予測ブロックを生成する。例えば、動き補償ユニット132は、ビデオスライスのビデオブロックをコード化するために使用される予測モード(例えば、イントラ又はインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスの参照ピクチャリストのうちの1つ又は複数についての構成情報、スライスの各インター符号化ビデオブロックについての動きベクトル、スライスの各インターコード化ビデオブロックについてのインター予測ステータス、及び現在ビデオスライス中のビデオブロックを復号するための他の情報を決定するために、受信されたシンタックス要素の幾つかを使用する。
【0138】
動き補償ユニット132はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット132は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数画素の補間値を計算し得る。この場合、動き補償ユニット132は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。イントラ予測ユニット134は、ビットストリーム中で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。
【0139】
逆量子化ユニット136は、ビットストリーム中で与えられ、エントロピー復号ユニット130によって復号された量子化ブロック係数を逆量子化(inverse quantize)、即ち、逆量子化(de-quantize)する。本開示の幾つかの態様によれば、逆量子化ユニット136は、
図2の例に示すビデオエンコーダ20に関して上記で説明した量子化ユニット54の方法とは概して逆の方法で動作するように構成され得る。例えば、逆量子化ユニット136は、ビデオエンコーダ20などのビデオエンコーダによって信号伝達されたΔQPを受信し得る。ΔQPは、逆量子化するための実際のQPと、1つ又は複数の参照QP(予測QP)との間の差分であり得る。逆量子化ユニット136は、逆量子化を実行するための実際のQPを決定し、受信された量子化変換係数を逆量子化し得る。即ち、逆量子化ユニット136は、受信されたΔQPと1つ又は複数の参照QPとの組合せ(例えば、和)に基づいて実際のQPを決定し得る。
【0140】
本開示の態様によれば、逆量子化ユニット136は、例えば、符号化ビットストリーム中で、スライスレベル又はブロックレベル(例えば、LCU、CU、又はCUのグループ)で量子化基準化値の指標を受信し得る。スライスレベルでは、逆量子化ユニット136は、ブロックタイプに基づいて個別に量子化基準化値の指標を受信し得る。例えば、逆量子化ユニット136は、異なるブロックタイプ(例えば、イントラブロック、インターブロック、ルーマブロック、クロマブロックなど)のスライスヘッダ内で異なる量子化基準化値を受信し得る。この例では、逆量子化ユニット136は、スライス中のコード化単位ごとに量子化基準化値を介して量子化ステップサイズを調整し得る。別の例では、逆量子化ユニット136は、量子化基準化値が逆量子化ユニット136によってLCUの1つ又は複数のCUに適用されるように、LCUレベル(又はCUレベル)で量子化基準化値の指標を受信し得る。
【0141】
幾つかの例では、実際の量子化基準化値を受信するのではなく、逆量子化ユニット136は、Δ量子化基準化値を受信し得る。そのような例では、ビデオデコーダ30は、現在ブロック又はスライスのための量子化基準化値と、何らかの参照基準化値との間の変化を識別し得る。
【0142】
本開示の態様によれば、逆量子化ユニット136は、逆量子化中に量子化基準化値を適用し得る。例えば、逆量子化ユニット136は、初めに、所与の変換係数を逆量子化するためのQPを識別し得る。選択されたQPに関連する量子化ステップサイズを適用するより前に、逆量子化ユニット136は、量子化ステップサイズに量子化基準化値を適用し得る。量子化基準化値は、次のより高い又はより低いQPに索引付けされた(例えば、整数QPに関連する)次の量子化ステップサイズのサイズ未満に量子化ステップサイズを増加(又は減少)させ得る。
【0143】
更に、本開示の態様によれば、逆量子化ユニット136は、量子化基準化値がビデオデータの特定のブロック又はスライスに適用されているかどうかの指標を受信し得る。例えば、逆量子化ユニット136は、スライスの逆量子化中に量子化基準化値を適用すべきかどうかを示すフラグをスライスヘッダ中で受信し得る。別の例では、逆量子化ユニット136は、LCU又はCUのブロックの逆量子化中に量子化基準化値を適用すべきかどうかを示すフラグをLCU又はCUヘッダ中で受信し得る。基準化値が使用されることをフラグが示す例では、基準化値も信号伝達され得る。他の事例では、基準化値はデコーダにおいて固定され得る。
【0144】
本開示の他の態様によれば、逆量子化ユニット136は、ビデオデータのブロックを逆量子化するための量子化精度を識別し得る。逆量子化ユニット136は、スライスレベル又はブロックレベル(例えば、LCUレベル)で量子化精度を識別し得る。例えば、受信されたスライスヘッダが、QP精度を指定する1つ又は複数のシンタックス要素を含んでいることがある。シンタックス要素は、QP精度を直接指定するか、又は、(例えば、上記で説明した3つの精度の例において説明したように)幾つかの予め定義されたQP精度のうちの1つを指すインデックスであり得る。
【0145】
QP精度がスライスヘッダ中で信号伝達される例では、逆量子化ユニット136は、QP精度がスライス内で適応型であるかどうかを示す別のフラグを受信し得る。例えば、逆量子化ユニット136は、QP精度が、スライス内のあるLCUから別のLCUまで変化するかどうかに関する指標を受信し得る。適応型精度が信号伝達される場合、スライスポインタは、スライスの最大許容精度を示し得る。
【0146】
スライス内の適応型精度が使用可能である例では、逆量子化ユニット136は、LCUレベルで受信されたシンタックス要素を介してQPの指標を受信し得る。例えば、シンタックス要素は、上記で説明したスライスヘッダ中の信号伝達と同様に、LCUのQP精度を識別し得る。LCUシンタックス要素の信号伝達は、(例えば、エントロピーコード化のために)(因果的順序で)隣接するシンタックス要素の値からなるコンテキストを使用し得る。
【0147】
受信ビットストリームがΔQPの指標を含む例では、逆量子化ユニット136は、ビデオエンコーダ20の量子化ユニット54(
図2)に関して上記で説明したのと同様のステップを使用してQP予測を実行し得る。例えば、現在ブロックを含んでいるLCUが高いQP精度を有し、QP予測子がより高いQP精度を有する場合、逆量子化ユニット136は、ΔQPとQP予測子との組合せに基づいて現在ブロックを逆量子化するためのQPを決定し得る。現在ブロックを含んでいるLCUが低いQP精度を有し、QP予測子がより高いQP精度を有する場合(又はその逆も同様)、逆量子化ユニット136は、QPが同じQP精度を有するようにQPの一方又は両方を変換し得る。逆量子化ユニット136は、次いで、ΔQPとQP予測子との組合せに基づいてブロックを逆量子化するための実際のQPを決定し得る。
【0148】
一例では、受信ΔQPを生成するためのQP予測が相対的に高い精度で実行されると仮定する。この例では、現在復号されているブロックを含んでいるLCUが高いQP精度を有する場合、逆量子化ユニット136は、現在ブロックのQP値を取得するために受信ΔQP値をQP予測値に加算し得る。現在コード化されているブロックを含んでいるLCUが低いQP精度を有する場合、逆量子化ユニット136は、順方向マッピング関数を使用してQP予測を低い精度に変換し得る。逆量子化ユニット136は、次いで、現在ブロックのQP値を取得するために受信ΔQPを低い精度QP予測に加算し得る。
【0149】
別の例では、受信ΔQPを生成するためのQP予測が相対的に低い精度で実行されると仮定する。この例では、現在復号されているブロックを含んでいるLCUが低いQP精度を有する場合、逆量子化ユニット136は、現在ブロックのQP値を取得するためにΔQPをQP予測値に加算し得る。現在ブロックを含んでいるLCUがより高いQP精度を有する場合、量子化ユニット136は、予測QP値をより高いQP精度に変換するために逆方向マッピング関数を適用し得る。逆量子化ユニット136は、次いで、現在ブロックのQPを取得するためにΔQPを高い精度QP予測値に加算し得る。他の例では、逆量子化ユニット136は、現在ブロックのための低い精度QPを形成するために、ΔQPを低い精度QP予測値に加算し得る。そのような例では、低い精度QPを正しく高い精度QPにマッピングするために逆量子化ユニット136によって追加のシンタックス要素も復号され得る。
【0150】
幾つかの事例では、2つ以上の参照QPが組み合わせられ得る(例えば、複数の参照QPが平均化され得る)。そのような事例では、参照QPを組み合わせるより前に全ての参照QPを同じ精度に準拠させるために、同様のマッピング技法が実行され得る。
【0151】
逆変換ユニット138は、画素領域において残差ブロックを生成するために、逆変換、例えば、逆DCT、逆整数変換、又は概念的に同様の逆変換プロセスを変換係数に適用する。動き補償ユニット132は、動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブ画素精度をもつ動き推定に使用されるべき補間フィルタの識別子がシンタックス要素中に含まれ得る。動き補償ユニット132は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数画素の補間値を計算し得る。動き補償ユニット132は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【0152】
動き補償ユニット132は、シンタックス情報の幾つかを使用して、符号化ビデオシーケンスの(1つ又は複数の)ピクチャを符号化するために使用されるマクロブロックのサイズと、符号化ビデオシーケンスのピクチャの各マクロブロックがどのように区分されるのかを記述する区分情報と、各区分がどのように符号化されるのかを示すモードと、各インター符号化マクロブロック又は区分のための1つ又は複数の参照ピクチャ(又はリスト)と、符号化ビデオシーケンスを復号するための他の情報とを決定する。
【0153】
加算器140は、残差ブロックを、動き補償ユニット132又はイントラ予測ユニットによって生成される対応する予測ブロックと加算して、復号ブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号ビデオブロックは、次いで、参照ピクチャメモリ142に記憶され、参照ピクチャメモリ142は、参照ブロックを後続の動き補償に与え、また、(
図1の表示装置32などの)表示装置上での提示のために復号ビデオを生成する。
【0154】
図4A及び
図4Bは、例示的な4分木150と、対応する最大コード化ユニット172とを示す概念図である。
図4Aは、階層式に構成されたノードを含む、例示的な4分木150を示している。4分木150は、例えば、提案されたHEVC規格に従ってツリーブロックに関連付けられ得る。4分木150など、4分木中の各ノードは、子をもたないリーフノードであるか、又は4つの子ノードを有し得る。
図4Aの例では、4分木150はルートノード152を含む。ルートノード152は、リーフノード156A〜156C(リーフノード156)とノード154とを含む、4つの子ノードを有する。ノード154はリーフノードでないので、ノード154は、この例ではリーフノード158A〜158D(リーフノード158)である、4つの子ノードを含む。
【0155】
4分木150は、この例ではLCU172など、対応する最大コード化単位(LCU)の特性を記述するデータを含み得る。例えば、4分木150は、それの構造により、サブCUへのLCUの分割を記述し得る。LCU172が2N×2Nのサイズを有すると仮定する。LCU172は、この例では、4つのサブCU176A〜176C(サブCU176)及び174を有し、各々はN×Nサイズである。サブCU174は更に4つのサブCU178A〜178D(サブCU178)に分割され、各々はサイズN/2×N/2である。この例では、4分木150の構造はLCU172の分割に対応する。即ち、ルートノード152はLCU172に対応し、リーフノード156はサブCU176に対応し、ノード154はサブCU174に対応し、リーフノード158はサブCU178に対応する。
【0156】
4分木150のノードのデータは、ノードに対応するCUが分割されるかどうかを記述し得る。CUが分割される場合、4分木150中に4つの追加のノードが存在し得る。幾つかの例では、4分木のノードは以下の擬似コードと同様に実施され得る。
【数6】
【0157】
split_flag値は、現在のノードに対応するCUが分割されるかどうかを表す1ビット値であり得る。CUが分割されない場合、split_flag値は「0」であり得るが、CUが分割される場合、split_flag値は「1」であり得る。4分木150の例に関して、分割フラグ値のアレイは101000000であり得る。
【0158】
幾つかの例では、サブCU176及びサブCU178の各々は、同じイントラ予測モードを使用してイントラ予測符号化され得る。従って、ビデオエンコーダ20は、ルートノード152においてイントラ予測モードの指標を与え得る。
【0159】
図4AではCU4分木の一例を示したが、同様の4分木がリーフノードCUのTUに適用され得ることを理解されたい。即ち、リーフノードCUは、CUのためのTUの区分を記述するTU4分木を含み得る。TU4分木は、TU4分木がCUのTUのイントラ予測モードを個々に信号伝達し得ることを除いて、概してCU4分木に似ていることがある。
【0160】
本開示の態様によれば、(ビデオエンコーダ20又はビデオデコーダ30などの)ビデオコーダは、LCU172のLCUレベルなど、ブロックレベルでQPを適用し得る。例えば、ビデオエンコーダ20が、LCU172の量子化基準化値を決定し、信号伝達し得る。この例では、ビデオエンコーダ20は、LCU172のヘッダ中で量子化基準化値の指標を与え得、その量子化基準化値は、次いで、LCU172に関連する変換係数を量子化するための量子化ステップサイズに適用される。ビデオデコーダ30は、指標を受信し、ビデオエンコーダ20と同じ量子化基準化を実行し得る。
【0161】
本開示の態様によれば、ビデオエンコーダ20はまた、量子化基準化値を予測し得る。例えば、ビデオエンコーダ20は、LCU172など、現在LCUのための量子化基準化値と、何らかの参照LCUとの間の変化を識別し得る。ビデオエンコーダ20は、次いで、ビットストリーム中で現在ブロックのΔ量子化基準化値を信号伝達し得る。一例では、ビデオエンコーダ20は、前にコード化されたLCUの量子化基準化値を参照値として使用してΔ量子化基準化値を生成し得る。別の例では、ビデオエンコーダ20は、現在LCUが参照値として属するスライスについて識別される量子化基準化値を使用してΔ量子化基準化値を生成し得る。ビデオデコーダ30は、Δ量子化基準化値を受信し、同様に量子化基準化値を決定し得る。幾つかの例では、ビデオエンコーダ20は、どこで参照基準化値を取り出すべきかに関する指標を与え得る。他の例では、ビデオエンコーダ20及びビデオデコーダ30は、同じロケーションから参照基準化値を取り出すように構成され得る。
【0162】
本開示の他の態様によれば、(ビデオエンコーダ20又はビデオデコーダ30などの)ビデオコーダは、最大コード化単位(LCU)レベルで量子化精度を識別し得る。即ち、LCU172に関連する受信されたLCUヘッダは、LCU172の1つ又は複数のブロックのためのQP精度を指定する、1つ又は複数のシンタックス要素を含んでいることがある。これらのシンタックス要素は、実際のQP精度を指定するインデックスを含むか、又はQP精度の予め定義されたテーブルへのポインタを含み得る。
【0163】
LCU172に関して説明したが、他の例では、
図4A及び
図4Bに関して説明する量子化技法は、上記で説明したスライスレベルなど、別のレベルで実行され得ることを理解されたい。
【0164】
図5及び
図6の技法について、概して、ビデオコーダによって実行されるものとして説明するが、幾つかの例では、
図5及び
図6の技法は、上記で説明したビデオエンコーダ20(
図1及び
図2)又はビデオデコーダ30(
図1及び
図3)によって行われ得ることを理解されたい。他の例では、
図5及び
図6の技法は、様々な他のプロセッサ、処理ユニット、エンコーダ/デコーダ(コーデック)などのハードウェアベースのコード化ユニットなどによって実行され得る。
【0165】
図5は、ビデオコード化機器(ビデオエンコーダ20及び/又はビデオデコーダ30などのビデオコーダ)によって量子化を実行するための技法を示す流れ図である。
図5の例では、ビデオコーダは、特定の量子化ステップサイズに索引付けされたビデオデータのブロックに関連する変換係数をコード化するためのQPを決定する(200)。例えば、上記で説明したように、ビデオコーダは、量子化ステップサイズに索引付けされたQPの予め定義された範囲に従って変換係数に適用される量子化の量を調整し得る。
【0166】
量子化(又は逆量子化)中に量子化ステップサイズを適用するより前に、ビデオコーダは、量子化ステップサイズを基準化するための量子化基準化値を決定する(202)。即ち、(ビデオエンコーダ20などの)ビデオエンコーダは、あるビットレートを達成するための量子化ステップサイズを決定し得る。代替的に、幾つかの例では、(ビデオデコーダ30などの)ビデオデコーダは、1つ又は複数の受信されたシンタックス要素(例えば、スライスヘッダ中のシンタックス要素、LCU情報、1つのCU又はCUのグループをもつ情報など)に従って量子化ステップサイズを決定し得る。本開示の幾つかの態様によれば、量子化基準化値は、Δ基準化値と参照基準化値との間の差分に基づいて決定され得る。
【0167】
ビデオコーダは、次いで、量子化ステップサイズに基準化値を適用する(204)。このようにして、ビデオコーダは、全QP値に索引付けされた量子化ステップサイズ間にある値に量子化ステップサイズを基準化し得る。ビデオコーダは、基準化された量子化ステップサイズを使用して変換係数をコード化する(206)。
【0168】
例えば、(ビデオエンコーダ20などの)ビデオエンコーダに関して、ビデオエンコーダは、ブロックに関連する変換係数を受信し得る。ビデオエンコーダは、次いで、変換係数の量子化中に、基準化された量子化ステップサイズを適用し得る。ビデオエンコーダはまた、スライスヘッダ中で、LCU情報とともに、CU情報とともに、CUのグループとともに、パラメータセット中で、又は同様のもので、量子化基準化値の指標を与え得る。幾つかの例では、ビデオエンコーダは、Δ量子化基準化値を使用して量子化基準化値の指標を与え得る。
【0169】
(ビデオデコーダ30などの)ビデオデコーダに関して、ビデオデコーダは、ビデオデータのブロックに関連する量子化変換係数を受信し、エントロピー復号し得る。ビデオデコーダはまた、ブロック又はそのブロックが属するスライスについての量子化基準化値(又はΔ量子化基準化値)の指標を受信し得る。ビデオデコーダは、変換係数の逆量子化中に基準化された量子化ステップサイズを適用することによって変換係数をコード化し得る。
【0170】
図5に示す例のステップは必ずしも
図5に示す順序で実行される必要があるとは限らず、より少数の、追加の、又は代替のステップが実行され得る。
【0171】
図6は、ビデオコード化機器(ビデオエンコーダ20及び/又はビデオデコーダ30などのビデオコーダ)によって量子化を実行するための技法を示す流れ図である。
図6の例では、ビデオコーダは、第1の量子化精度と第2の異なる量子化精度との間で選択する(220)。上述のように、QP精度と呼ばれることがある、量子化精度は、概して、予め定義された量の量子化が再分割され得る程度を指し得る。例えば、ビデオコーダは、量子化ステップサイズに索引付けされたQPの範囲を使用して変換係数を量子化し得る。従って、QP(及びそれらの関連する量子化ステップサイズ)は、変換係数に適用され得る量子化の総量の限界を定義する。この例では、量子化精度は、全量子化が再分割され、QP値で索引付けされ得る程度を指し得る。
【0172】
量子化精度を選択するために、例えば、(ビデオエンコーダ20などの)ビデオエンコーダは、あるビットレートを達成する量子化精度を選択し得る。例えば、ビデオエンコーダは、比較的複雑であるピクチャの領域のためにより高い量子化精度を選択するか、又は量子化制御があまり必要でないピクチャの領域のためにより低い量子化精度を選択し得る。代替的に、幾つかの例では、(ビデオデコーダ30などの)ビデオデコーダは、1つ又は複数の受信されたシンタックス要素(例えば、スライスヘッダ中のシンタックス要素、LCU情報、CUをもつ情報、又はCUのグループをもつ情報など)に従って量子化精度を決定し得る。
【0173】
幾つかの例では、ビデオコーダはまた、参照ブロックのQPに関連する量子化精度を決定する(222)。例えば、幾つかの事例では、ビデオコーダはΔQPを決定し得る。そのような事例では、参照ブロックに関連するQPの量子化精度は、現在ブロックの量子化精度に一致しないことがある。従って、ビデオコーダは、(現在ブロックをコード化するための)選択された量子化精度が参照QPの量子化精度に一致するかどうかを決定する(224)。
【0174】
量子化精度が一致しない場合(ステップ224のNO分岐)、ビデオコーダは、参照QPの量子化精度を、選択された量子化精度にマッピングする(又はその逆も同様)(226)。更に、2つ以上の参照QPが使用される事例では、ビデオコーダは、全ての参照QPの量子化精度を同じ量子化精度にマッピングし得る。一例では、ビデオコーダは、全てのQPを高い量子化精度に維持し得る。QP予測のために使用される特定のブロックが第1の量子化精度を有する場合、ビデオコーダは、所定のマッピング関数を使用して予測ブロックのQPを第2の量子化精度に変換し得る。ビデオコーダは、次いで、第2の量子化精度でQP予測を実行することが可能であり得る。一方、ビデオコーダがQPを第1の精度に維持する場合、ビデオコーダは、所定のマッピング関数を使用して予測ブロックのQPを第1の量子化精度に変換し得る。ビデオコーダは、次いで、第1のQP精度でQP予測を実行することが可能であり得る。
【0175】
ビデオコーダは、次いで、選択された精度を使用して変換係数をコード化する(228)。量子化精度が一致する場合(ステップ224のYES分岐)、ビデオコーダは、上記で説明したマッピングを実行しなくてよく、ステップ228に直接進み得る。いずれの場合も、変換係数をコード化するために、(ビデオエンコーダ20などの)ビデオエンコーダに関して、ビデオエンコーダは、ブロックに関連する変換係数を受信し得る。ビデオエンコーダは、次いで、選択された量子化精度を有する変換係数を量子化するためのQPを決定し、決定されたQPを使用して変換係数を量子化し得る。変換係数を量子化するために使用される実際のQPを信号伝達するのではなく、ビデオエンコーダは、実際のQPと、(ステップ222において識別される)参照QPとの間のΔQPを決定し得る。ビデオエンコーダは、次いで、参照QPと、変換係数を量子化するために使用される実際のQPとの間の差分に基づいてΔQPを決定し、信号伝達し得る。更に、ビデオエンコーダは、(例えば、スライスヘッダ中で、LCU情報とともに、CU情報とともに、CUのグループとともに、又は符号化ビットストリーム中の同様のもので)量子化精度の指標を与え得る。
【0176】
(ビデオデコーダ30などの)ビデオデコーダに関して、変換係数をコード化するために、ビデオデコーダは、量子化変換係数を受信し、エントロピー復号し得る。ビデオデコーダは、量子化変換係数を逆量子化するための選択された量子化精度を有するQPを決定し、適用して、変換係数を生成し得る。幾つかの例では、ビデオデコーダはブロックのΔQPを受信し得る。そのような例では、ビデオコーダは、受信されたΔQPと参照QPとの組合せに基づいて(選択された精度を有する)実際のQPを決定し得る。ビデオデコーダは、次いで、決定された実際のQPを使用して量子化変換係数を逆量子化し得る。
【0177】
図6の例について、2つの量子化精度に関して説明したが、本技法は、より一般的に、(6及び12以外の量子化精度を含む)3つ以上の量子化精度に適用可能であることを理解されたい。その上、
図6に示す例のステップは必ずしも
図6に示す順序で実行される必要があるとは限らず、より少数の、追加の、又は代替のステップが実行され得る。(ΔQPを使用した)適応量子化が使用されない例では、ステップ222〜226において実行されるマッピングは不要であり得る。
【0178】
例に応じて、本明細書で説明した方法のうちのいずれかの幾つかの行為又はイベントは、異なるシーケンスで実行され得、互いに付加、マージ、又は完全に除外され得る(例えば、全ての説明した行為又はイベントが、本方法の実施のために必要であるとは限らない)ことを理解されたい。更に、幾つかの例では、行為又はイベントは、連続的にではなく、例えば、マルチスレッド処理、割込み処理、又は複数のプロセッサを通して、同時に実行され得る。更に、本開示の幾つかの態様は、明快のために単一のモジュール又はユニット(例えば、量子化ユニット54(
図2)又は逆量子化ユニット136(
図3)など)によって実行されるものとして説明したが、本開示の技法は、ビデオコーダに関連するユニット又はモジュールの組合せによって実行され得ることを理解されたい。
【0179】
1つ又は複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実施され得る。ソフトウェアで実施される場合、機能は、1つ又は複数の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、又はコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。
【0180】
このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実施のための命令、コード及び/又はデータ構造を取り出すために1つ又は複数のコンピュータあるいは1つ又は複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0181】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROM又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気記憶装置、フラッシュメモリ、若しくは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモート発信源から送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【0182】
但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)及びブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0183】
命令は、1つ又は複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路又はディスクリート論理回路など、1つ又は複数のプロセッサによって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明した技法の実施に好適な他の構造のいずれかを指すことがある。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用ハードウェア及び/又はソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つ又は複数の回路又は論理要素中に十分に実施され得る。
【0184】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置において実施され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上記で説明した1つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。
【0185】
本開示の様々な態様について説明した。これら及び他の態様は以下の特許請求の範囲内に入る。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1] ビデオデータをコード化する方法であって、残差ビデオデータをコード化するための量子化パラメータ(QP)を決定することと、前記QPが量子化ステップサイズに索引付けされる、前記量子化ステップサイズを基準化するための量子化基準化値を決定することと、前記量子化ステップサイズに前記量子化基準化値基準化を適用することと、基準化された前記量子化ステップサイズを使用して前記残差ビデオデータをコード化することと、を備える、方法。
[2] 前記量子化ステップサイズに前記量子化基準化値を適用することが、QPの範囲内の前記QPに隣接する第2のQPに索引付けされた量子化ステップサイズ未満に前記量子化ステップサイズを変える基準化値を適用することを備える、[1]に記載の方法。
[3] Δ量子化基準化値に基づいて前記量子化基準化値を生成することを更に備え、前記Δ量子化基準化値が前記量子化基準化値と参照量子化基準化値との間の差分を備える、[1]に記載の方法。
[4] 前記残差ビデオデータをコード化することが、残差データの1つ以上の変換係数を復号することを備え、前記1つ以上の変換係数を復号することが、基準化された前記量子化ステップサイズを使用して前記変換係数を逆量子化することを備える、[1]に記載の方法。
[5] 前記量子化基準化値を決定することが、前記量子化基準化値の指標を含むスライスヘッダを復号することを備える、[4]に記載の方法。
[6] 前記量子化基準化値を決定することが、前記量子化基準化値の指標を含む最大コード化ユニットを復号することを備える、[4]に記載の方法。
[7] 前記残差ビデオデータをコード化することが、1つ以上の変換係数を符号化することを備え、前記1つ以上の変換係数を符号化することが、基準化された前記量子化ステップサイズを使用して前記変換係数を量子化することを備える、[1]に記載の方法。
[8] 符号化ビットストリームのスライスヘッダ中で前記量子化基準化値を示すことを更に備える、[7]に記載の方法。
[9] 符号化ビットストリームの最大コード化ユニットに関連する1つ以上のシンタックス要素を使用して前記量子化基準化値を示すことを更に備える、[7]に記載の方法。
[10] ビデオデータをコード化するための装置であって、前記装置は、残差ビデオデータをコード化するための量子化パラメータ(QP)を決定することであって、前記QPが量子化ステップサイズに索引付けされる、決定することと、前記量子化ステップサイズを基準化するための量子化基準化値を決定することと、前記量子化ステップサイズに前記量子化基準化値基準化を適用することと、基準化された前記量子化ステップサイズを使用して前記残差ビデオデータをコード化することとを行うように構成された1つ以上のプロセッサを備える、装置。
[11] 前記量子化ステップサイズに前記量子化基準化値を適用するために、前記1つ以上のプロセッサが、QPの範囲内の前記QPに隣接する第2のQPに索引付けされた量子化ステップサイズ未満に前記量子化ステップサイズを変える基準化値を適用するように構成された、[10]に記載の装置。
[12] 前記1つ以上のプロセッサは、Δ量子化基準化値に基づいて前記量子化基準化値を生成することを行うように更に構成され、前記Δ量子化基準化値が前記量子化基準化値と参照量子化基準化値との間の差分を備える、[10]に記載の装置。
[13] 前記残差ビデオデータをコード化するために、前記1つ以上のプロセッサが、残差データの1つ以上の変換係数を復号するように構成され、前記1つ以上の変換係数を復号することが、基準化された前記量子化ステップサイズを使用して前記変換係数を逆量子化することを備える、[10]に記載の装置。
[14] 前記量子化基準化値を決定するために、前記1つ以上のプロセッサが、前記量子化基準化値の指標を含むスライスヘッダを復号するように構成された、[13]に記載の装置。
[15] 前記量子化基準化値を決定するために、前記1つ以上のプロセッサが、前記量子化基準化値の指標を含む最大コード化単位を復号するように構成された、[13]に記載の装置。
[16] 前記残差ビデオデータをコード化するために、前記1つ以上のプロセッサが、1つ以上の変換係数を符号化するように構成され、前記1つ以上の変換係数を符号化することが、前記基準化された量子化ステップサイズを使用して前記変換係数を量子化することを備える、[10]に記載の装置。
[17] 前記1つ以上のプロセッサが、符号化ビットストリームのスライスヘッダ中で前記量子化基準化値を示すように更に構成された、[16]に記載の装置。
[18] 前記1つ以上のプロセッサが、符号化ビットストリームの最大コード化単位に関連する1つ以上のシンタックス要素を使用して前記量子化基準化値を示すように更に構成された、[16]に記載の装置。
[19] ビデオデータをコード化するための装置であって、残差ビデオデータをコード化するための量子化パラメータ(QP)を決定するための手段と、前記QPが量子化ステップサイズに索引付けされる、前記量子化ステップサイズを基準化するための量子化基準化値を決定するための手段と、前記量子化ステップサイズに前記量子化基準化値基準化を適用するための手段と、基準化された前記量子化ステップサイズを使用して前記残差ビデオデータをコード化するための手段とを備える、装置。
[20] 命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されたとき、残差ビデオデータをコード化するための量子化パラメータ(QP)を決定することと、前記QPが量子化ステップサイズに索引付けされる、前記量子化ステップサイズを基準化するための量子化基準化値を決定することと、前記量子化ステップサイズに前記量子化基準化値基準化を適用することと、前記基準化された量子化ステップサイズを使用して前記残差ビデオデータをコード化することとを1つ以上のプロセッサに行わせる、非一時的コンピュータ可読記憶媒体。
[21] ビデオデータをコード化する方法であって、少なくとも第1の量子化精度と第2の異なる量子化精度との間で選択することと、前記量子化精度は、所定の量の量子化が再分割される程度を備える、選択された前記量子化精度を使用して残差ビデオデータに関連する1つ以上の変換係数をコード化することとを備える、方法。
[22] 前記第1の量子化精度が前記QPを第1の数の値に索引付けし、前記第2の量子化精度が前記QPを第2の数の値に索引付けし、前記第2の数の値が前記第1の数の値を上回る、[21]に記載の方法。
[23] 前記第1の数の値が52であり、前記第2の数の値が104である、[22]に記載の方法。
[24] 前記1つ以上の変換係数をコード化することが、前記変換係数のΔQPを決定することを備え、前記ΔQPを決定することは、前記参照QPが、実際のQPと同じ量子化精度を有するとき、前記実際のQPと前記参照QPとの間の差分を決定することと、前記参照QPが、前記実際のQPとは異なる量子化精度を有するとき、前記参照QPの前記量子化精度を前記実際のQPの前記量子化精度にマッピングし、前記実際のQPと前記マッピングされた参照QPとの間の差分を決定することとを備える、[21]に記載の方法。
[25] 前記1つ以上の変換係数をコード化することが、前記1つ以上の変換係数を符号化することを備え、前記1つ以上の変換係数を符号化することが、選択された前記量子化精度を有するQPを決定することと、決定された前記QPを使用して1つ以上の量子化変換係数を生成するために前記1つ以上の変換係数を量子化することと、前記1つ以上の量子化変換係数と前記量子化精度の指標とを含むようにビットストリームを生成することとを備える、[21]に記載の方法。
[26] 前記ビットストリームを生成することが、スライスヘッダと、最大コード化単位に関連するシンタックス要素とのうちの一方の中に前記量子化精度の指標を含めることを備える、[25]に記載の方法。
[27] 前記1つ以上の変換係数をコード化することが、前記1つ以上の変換係数を復号することを備え、前記1つ以上の変換係数を復号することが、選択された前記量子化精度を有するQPを決定することと、決定された前記QPを使用して1つ以上の変換係数を生成するために前記1つ以上の変換係数を逆量子化することとを備える、[21]に記載の方法。
[28] 前記少なくとも第1の量子化精度と第2の量子化精度との間で選択することが、スライスヘッダと、最大コード化単位に関連するシンタックス要素とのうちの一方から、前記少なくとも第1の量子化精度と第2の量子化精度との指標を復号することを備える、[27]に記載の方法。
[29] ビデオデータをコード化するための装置であって、少なくとも第1の量子化精度と第2の異なる量子化精度との間で選択することと、前記量子化精度は、所定の量の量子化が再分割される程度を備える、選択された前記量子化精度を使用して残差ビデオデータに関連する1つ以上の変換係数をコード化することとを行うように構成された1つ以上のプロセッサを備える、装置。
[30] 前記第1の量子化精度が前記QPを第1の数の値に索引付けし、前記第2の量子化精度が前記QPを第2の数の値に索引付けし、前記第2の数の値が前記第1の数の値を上回る、[29]に記載の装置。
[31] 前記第1の数の値が52であり、前記第2の数の値が104である、[30]に記載の装置。
[32] 前記1つ以上の変換係数をコード化するために、前記1つ以上のプロセッサが、前記変換係数のΔQPを決定するように構成され、前記ΔQPを決定することは、前記参照QPが、実際のQPと同じ量子化精度を有するとき、前記実際のQPと前記参照QPとの間の差分を決定することと、前記参照QPが、前記実際のQPとは異なる量子化精度を有するとき、前記参照QPの前記量子化精度を前記実際のQPの前記量子化精度にマッピングし、前記実際のQPと前記マッピングされた参照QPとの間の差分を決定することとを備える、[29]に記載の装置。
[33] 前記1つ以上の変換係数をコード化するために、前記1つ以上のプロセッサが、前記1つ以上の変換係数を符号化するように構成され、前記1つ以上の変換係数を符号化することが、選択された前記量子化精度を有するQPを決定することと、決定された前記QPを使用して1つ以上の量子化変換係数を生成するために前記1つ以上の変換係数を量子化することと、前記1つ以上の量子化変換係数と前記量子化精度の指標とを含むようにビットストリームを生成することとを備える、[29]に記載の装置。
[34] 前記ビットストリームを生成するために、前記1つ以上のプロセッサが、スライスヘッダと、最大コード化単位に関連するシンタックス要素とのうちの一方の中に前記量子化精度の指標を含めるように構成された、[33]に記載の装置。
[35] 前記1つ以上の変換係数をコード化するために、前記1つ以上のプロセッサが、前記1つ以上の変換係数を復号するように構成され、前記1つ以上の変換係数を復号することが、選択された前記量子化精度を有するQPを決定することと、決定された前記QPを使用して1つ以上の変換係数を生成するために前記1つ以上の変換係数を逆量子化することとを備える、[29]に記載の装置。
[36] 前記少なくとも第1の量子化精度と第2の量子化精度との間で選択するために、前記1つ以上のプロセッサが、スライスヘッダと、最大コード化ユニットに関連するシンタックス要素とのうちの一方から、前記少なくとも第1の量子化精度と第2の量子化精度との指標を復号するように構成された、[35]に記載の装置。
[37] ビデオデータをコード化するための装置であって、少なくとも第1の量子化精度と第2の異なる量子化精度との間で選択するための手段と、前記量子化精度は、所定の量の量子化が再分割される程度を備える、前記選択された量子化精度を使用して残差ビデオデータに関連する1つ以上の変換係数をコード化するための手段とを備える、装置。
[38] 命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されたとき、少なくとも第1の量子化精度と第2の異なる量子化精度との間で選択することと、前記量子化精度は、所定の量の量子化が再分割される程度を備える、選択された前記量子化精度を使用して残差ビデオデータに関連する1つ以上の変換係数をコード化することとを1つ以上のプロセッサに行わせる、非一時的コンピュータ可読記憶媒体。