(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
本開示は、ビデオ復号方法であって、受信したビットストリームをパースして、CUの予測情報を取得するステップと、残差TUの目標変換モードを取得するステップと、受信したビットストリームをパースして、前記残差TUの変換係数を取得するステップと、前記残差TUの前記変換係数に逆量子化を適用して、逆量子化された係数を取得するステップと、前記目標変換モードに基づき、前記逆量子化された係数に逆変換を適用して、前記残差TUの残差ブロックを取得するステップと、前記予測情報に基づき、前記CUの予測ブロックを取得するステップと、前記残差ブロック及び前記予測ブロックに基づき、ビデオブロックを取得するステップと、ビデオシーケンスを出力するステップであって、前記ビデオシーケンスは前記ビデオブロックを含むビデオフレームを含む、ステップと、を含む方法を開示する。
前記エントロピー復号ユニットは、前記ビットストリームをパースして、前記残差TUの前記目標変換モードを示すモードインデックスを取得し、前記モードインデックスに基づき、前記残差TUの前記目標変換モードを取得するよう更に構成される、請求項19又は18又は17に記載のビデオデコーダ。
前記エントロピー復号ユニットは、前記CUの前記予測情報に基づき、前記残差TUの前記目標変換モードを取得するか否かを決定するよう更に構成される、請求項17乃至26のいずれか一項に記載のビデオデコーダ。
前記エントロピー復号ユニットは、前記CUのサイズに基づき、前記残差TUの前記目標変換モードを取得するか否かを決定するよう更に構成される、請求項17乃至30のいずれか一項に記載のビデオデコーダ。
【発明の概要】
【0005】
本発明の実施形態は、オーディオ信号のスペクトル係数に適正な量子化ビット割り当てを実行できる符号化方法及び機器を提供し、それにより復号によってデコーダにより得られる信号の品質を向上する。
【0006】
前述の目的を達成するために、以下の技術的ソリューションは、本発明の実施形態において使用される。
【0007】
第1の態様によると、本発明の一実施形態は、ビデオ復号方法であって、
受信したビットストリームをパースして、符号化ユニット(coding unit, CU)の予測情報を取得するステップと、
前記CUが1つのみの残差変換ユニット(residual transform unit, TU)を有し、前記残差TUのサイズが前記CUのサイズより小さいとき、前記残差TUの目標変換モードを取得するステップであって、前記目標変換モードは、前記CUのTUパーティションモード、前記残差TUの位置、及び前記残差TUの変換タイプを指定する、ステップと、
前記受信したビットストリームをパースして、前記残差TUの変換係数を取得するステップと、
前記残差TUの前記変換係数に逆量子化を適用して、逆量子化された係数を取得するステップと、
前記目標変換モードに基づき、前記逆量子化された係数に逆変換を適用して、前記残差TUの残差ブロックを取得するステップと、
前記予測情報に基づき、前記CUの予測ブロックを取得するステップと、
前記残差ブロック及び前記予測ブロックに基づき、ビデオブロックを取得するステップと、
ビデオシーケンスを出力するステップであって、前記ビデオシーケンスは前記ビデオブロックを含むビデオフレームを含む、ステップと、
を含む方法を提供する。
【0008】
目標変換モードは、CUのTUパーティションモード、残差TUの位置、及び残差の変換タイプを指定できるので、その結果、復号効率を向上できるだけでなく、復号品質も向上でき、並びに、目標変換モードについて上述の情報を指定でき、したがって、上述の情報を伝送するために必要なビットを削減でき、符号化オーディオデータを伝送するための伝送リソース、例えば帯域幅を節約できる。
【0009】
第1の態様の第1の可能な実装方法では、前記CUの前記サイズはW×Hにより示され、前記残差TUの前記目標変換モードは、以下のモードのうちの1つである:
変換モードQ0であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQ1であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は右上であり、前記変換タイプが、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQ2であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置が左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードQ3であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードQH0であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは上にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは下にありサイズW×(H/2)を有し、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQH1であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは上にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは下にありサイズW×(H/2)を有し、前記残差TUの位置は右上であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは下にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは上にありサイズW×(H/2)を有し、前記残差TUの位置は左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードQH3であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは下にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは上にありサイズW×(H/2)を有し、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードQV0であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは左にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは右にありサイズ(W/2)×Hを有し、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQV1であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは右にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは左にありサイズ(W/2)×Hを有し、前記残差TUの位置は右上であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQV2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは左にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは右にありサイズ(W/2)×Hを有し、前記残差TUの位置は左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードQV3であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは右にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは左にありサイズ(W/2)×Hを有し、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードHQ0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズより小さく、前記残差TUの位置は上であり、前記変換タイプは、前記残差TUの水平変換がDST−7又はDCT−2であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードHQ1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、下のUTのサイズは上のTUのサイズより小さく、前記残差TUの位置は下であり、前記変換タイプは、前記残差TUの水平変換がDST−7又はDCT−2であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードVQ0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズより小さく、前記残差TUの位置は左であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDST−7又はDCT−2である、ことを指定するモード;
変換モードVQ1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、右のTUのサイズは左のTUのサイズより小さく、前記残差TUの位置は右であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−7又はDCT−2である、ことを指定するモード;
変換モードHH0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズと等しく、前記残差TUの位置は上であり、前記変換タイプは、前記残差TUの水平変換がDST−7又はDCT−2であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードHH1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズに等しく、前記残差TUの位置は下であり、前記変換タイプは、前記残差TUの水平変換がDST−7又はDCT−2であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードHH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、上のTUのサイズは下のTUのサイズと等しく、前記上のTUの前記サイズは中央のTUのサイズより小さく、前記残差TUの位置は中央であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDCT−2である、又は前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−1である、ことを指定するモード;
変換モードVH0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記残差TUの位置は左であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDST−7又はDCT−2である、ことを指定するモード;
変換モードVH1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記残差TUの位置は右であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−7又はDCT−2である、ことを指定するモード;又は、
変換モードVH2変換モードHH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記左のTUの前記サイズは中央のTUのサイズより小さく、前記残差TUの位置は中央であり、前記変換タイプは、前記残差TUの水平変換がDCT−2であり、前記残差TUの垂直変換がDST−7である、又は前記残差TUの水平変換がDST−1であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、第1の態様の別の可能な実装方法では、前記CUの前記サイズはW×Hにより示され、前記残差TUの前記目標変換モードは、以下のモードのうちの1つである:
変換モードQ0であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQ1であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は右上であり、前記変換タイプが、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQ2であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置が左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードQ3であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードQH0であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは上にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは下にありサイズW×(H/2)を有し、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQH1であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは上にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは下にありサイズW×(H/2)を有し、前記残差TUの位置は右上であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは下にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは上にありサイズW×(H/2)を有し、前記残差TUの位置は左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードQH3であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは下にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは上にありサイズW×(H/2)を有し、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードQV0であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは左にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは右にありサイズ(W/2)×Hを有し、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQV1であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは右にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは左にありサイズ(W/2)×Hを有し、前記残差TUの位置は右上であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQV2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは左にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは右にありサイズ(W/2)×Hを有し、前記残差TUの位置は左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードQV3であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは右にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは左にありサイズ(W/2)×Hを有し、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードHQ0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズより小さく、前記残差TUの位置は上であり、前記変換タイプは、前記残差TUの水平変換がDST−4又はDCT−2であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードHQ1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、下のUTのサイズは上のTUのサイズより小さく、前記残差TUの位置は下であり、前記変換タイプは、前記残差TUの水平変換がDST−4又はDCT−2であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードVQ0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズより小さく、前記残差TUの位置は左であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDST−4又はDCT−2である、ことを指定するモード;
変換モードVQ1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、右のTUのサイズは左のTUのサイズより小さく、前記残差TUの位置は右であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−4又はDCT−2である、ことを指定するモード;
変換モードHH0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズと等しく、前記残差TUの位置は上であり、前記変換タイプは、前記残差TUの水平変換がDST−4又はDCT−2であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードHH1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズに等しく、前記残差TUの位置は下であり、前記変換タイプは、前記残差TUの水平変換がDST−4又はDCT−2であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードHH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、上のTUのサイズは下のTUのサイズと等しく、前記上のTUの前記サイズは中央のTUのサイズより小さく、前記残差TUの位置は中央であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDCT−2である、又は前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−1である、ことを指定するモード;
変換モードVH0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記残差TUの位置は左であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDST−4又はDCT−2である、ことを指定するモード;
変換モードVH1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記残差TUの位置は右であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−4又はDCT−2である、ことを指定するモード;又は、
変換モードVH2変換モードHH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記左のTUの前記サイズは中央のTUのサイズより小さく、前記残差TUの位置は中央であり、前記変換タイプは、前記残差TUの水平変換がDCT−2であり、前記残差TUの垂直変換がDST−4である、又は前記残差TUの水平変換がDST−1であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード。
【0010】
第1の態様または第1の態様の第1の可能な実装方法を参照して、第2の可能な実装方法では、前記残差TUの前記目標変換モードを取得するステップは、
前記ビットストリームをパースして、前記残差TUの前記目標変換モードを示すモードインデックスを取得するステップと、
前記モードインデックスに基づき、前記残差TUの前記目標変換モードを取得するステップと、を含む。
【0011】
目標変換モードは、モードインデックスによりインデックス付けでき、したがって、取得される必要のある1つのみのインデックスについて、復号効率を向上できる。
【0012】
第1の態様の第2の可能な実装方法を参照して、第3の可能な実装方法では、前記ビットストリームをパースして、前記残差TUの前記目標変換モードを示すモードインデックスを取得するステップの前に、前記方法は、
前記CUのサイズに基づき、前記残差TUの候補目標変換モードを決定するステップ、を更に含み、
前記ビットストリームをパースして、前記残差TUの前記目標変換モードを示すモードインデックスを取得する前記ステップは、
前記残差TUの前記候補目標変換モードに基づき、前記ビットストリームをパースして、前記残差TUの前記目標変換モードを示すモードインデックスを取得するステップを含む。
【0013】
候補目標変換モードの決定は、残差TUの候補目標変換モードの数を削減できる。その結果、モードインデックスを伝送するために必要なビットを削減する。
【0014】
第1の態様の第3の可能な実装方法を参照して、第4の可能な実装方法では、前記CUのサイズに基づき、前記残差TUの候補目標変換モードを決定する前記ステップは、以下のうちの少なくとも1つを含む:
前記CUの幅が[Th1×2,Th3]の範囲にあり、前記CUの高さが[Th1×2,Th3]の範囲にあるとき、前記候補目標変換モードは、変換モードQ0、変換モードQ1、変換モードQ2、及び変換モードQ3を含む;
前記CUの幅が[Th1×4,Th3]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードVQ0、変換モードVQ1、及び変換モードVH2を含む;
前記CUの幅が[Th1×2,Th2]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードVH0及び変換モードVH1を含む;
前記CUの高さが[Th1×4,Th3]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードHQ0、変換モードHQ1、及び変換モードHH2を含む;
前記CUの高さが[Th1×2,Th2]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードHH0及び変換モードHH1を含む;
前記CUの幅が[Th1×2,Th2]の範囲にあり、前記CUの高さが[Th1×2,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードQ0、変換モードQ1、変換モードQ2、及び変換モードQ3を含む;
前記CUの幅が[Th1×4,Th2]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードVQ0、変換モードVQ1、及び変換モードVH2を含む;
前記CUの幅が[Th1×2,Th2]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードVH0及び変換モードVH1を含む;
前記CUの高さが[Th1×4,Th2]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードHQ0、変換モードHQ1、及び変換モードHH2を含む;又は、
前記CUの高さが[Th1×2,Th2]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードHH0及び変換モードHH1を含む;
Th1、Th2、及びTh3は、所定の整数値である。
【0015】
第1の態様または第1の態様の第1の可能な実装方法を参照して、第5の可能な実装方法では、前記残差TUの前記目標変換モードを取得するステップは、
前記ビットストリームをパースして、前記目標変換モードの属するモードグループを示すグループインデックスを取得するステップと、
前記ビットストリームをパースして、前記モードグループの中の前記目標変換モードを示すモードインデックスを取得するステップと、
前記グループインデックス及び前記モードインデックスに基づき、前記目標変換モードを取得するステップと、
を含む。
【0016】
変換モードは予めグループ化され、したがって、1つのCUに適する変換モードの数を削減でき、復号効率を向上するだけでなく、伝送リソースも節約できる。
【0017】
第1の態様の第5の可能な実装方法を参照して、第6の可能な実装方法では、前記目標変換モードは、以下のいずれかのモードグループに属する:
変換モードHH0、変換モードHH1、変換モードHH2、変換モードVH0、変換モードVH1、及び変換モードVH2を含むモードグループ;
変換モードQ0、変換モードQ1、変換モードQ2、変換モードQ3、変換モードHQ0、変換モードHQ1、変換モードVQ0、及び変換モードVQ1を含むモードグループ;
変換モードHH0、HH1、HH2、VH0、VH1、及びVH2を含むモードグループ;
変換モードQ0、変換モードQ1、変換モードQ2、変換モードQ3、変換モードHQ0、変換モードHQ1、変換モードVQ0、及び変換モードVQ1を含むモードグループ;
変換モードQH0、変換モードQH1、変換モードQH2、変換モードQH3、変換モードHQ0、変換モードHQ1、変換モードVQ0、及び変換モードVQ1を含むモードグループ;
変換モードQV0、変換モードQV1、変換モードQV2、変換モードQV3、変換モードHQ0、変換モードHQ1、変換モードVQ0、及び変換モードVQ1を含むモードグループ;
変換モードQ0、変換モードQ1、変換モードQ2、変換モードQ3、変換モードHQ0、変換モードHQ1、変換モードVQ0、変換モードVQ1、変換モードHH0、変換モードHH1、変換モードVH0、及び変換モードVH1を含むモードグループ;
変換モードQ0、変換モードQ1、変換モードQ2、変換モードQ3、変換モードHQ0、変換モードHQ1、変換モードVQ0、変換モードVQ1、変換モードHH0、変換モードHH1、変換モードHH2、変換モードVH0、変換モードVH1、及び変換モードVH2を含むモードグループ;
変換モードQH0、変換モードQH1、変換モードQH2、変換モードQH3、変換モードHQ0、変換モードHQ1、変換モードVQ0、変換モードVQ1、変換モードHH0、変換モードHH1、変換モードHH2、変換モードVH0、変換モードVH1、及び変換モードVH2を含むモードグループ;
変換モードHH0、変換モードHH1、変換モードVH0、及び変換モードVH1を含むモードグループ;
変換モードQ0、変換モードQ1、変換モードQ2、及び変換モードQ3を含むモードグループ;又は、
変換モードHQ0、変換モードHQ1、変換モードVQ0、及び変換モードVQ1を含むモードグループ。
【0018】
第1の態様の第5の可能な実装方法を参照して、第7の可能な実装方法では、前記ビットストリームをパースして、前記目標変換モードの属するモードグループを示すグループインデックスを取得するステップの前に、前記方法は、
前記CUのサイズに基づき、前記残差TUの少なくとも1つの候補モードグループを決定するステップ、を更に含み、
前記ビットストリームをパースして、前記目標変換モードの属するモードグループを示すグループインデックスを取得する前記ステップは、
前記残差TUの前記少なくとも1つの候補モードグループに基づき、前記ビットストリームをパースして、前記目標変換モードの属するモードグループを示すグループインデックスを取得するステップを含む。
【0019】
候補目標変換モードの決定は、残差TUの候補目標変換モードの数を削減できる。その結果、モードインデックスを伝送するために必要なビットを削減する。
【0020】
第1の態様の第7の可能な実装方法を参照して、第8の可能な実装方法では、前記CUのサイズに基づき、前記残差TUの少なくとも1つの候補モードグループを決定する前記ステップは、以下のうちの少なくとも1つを含む:
前記CUの幅が[Th1×2,Th3]の範囲にあり、前記CUの高さが[Th1×2,Th3]の範囲にあるとき、前記候補モードグループは、変換モードQ0、変換モードQ1、変換モードQ2、及び変換モードQ3を含むモードグループを含む;
前記CUの幅が[Th1×4,Th3]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードVQ0、変換モードVQ1、及び変換モードVH2を含むモードグループを含む;
前記CUの幅が[Th1×2,Th2]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードVH0及び変換モードVH1を含むモードグループを含む;
前記CUの高さが[Th1×4,Th3]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードHQ0、変換モードHQ1、及び変換モードHH2を含むモードグループを含む;
前記CUの高さが[Th1×2,Th2]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードHH0及び変換モードHH1を含むモードグループを含む;
前記CUの幅が[Th1×2,Th2]の範囲にあり、前記CUの高さが[Th1×2,Th2]の範囲にあるとき、前記候補モードグループは、変換モードQ0、変換モードQ1、変換モードQ2、及び変換モードQ3を含むモードグループを含む;
前記CUの幅が[Th1×4,Th2]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードVQ0、変換モードVQ1、及び変換モードVH2を含むモードグループを含む;
前記CUの幅が[Th1×2,Th2]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードVH0及び変換モードVH1を含むモードグループを含む;
前記CUの高さが[Th1×4,Th2]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードHQ0、変換モードHQ1、及び変換モードHH2を含むモードグループを含む;又は、
前記CUの高さが[Th1×2,Th2]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードHH0及び変換モードHH1を含むモードグループを含む;
Th1、Th2、及びTh3は、所定の整数値である。
【0021】
第1の態様の第4の可能な実装方法又は第8の可能な実装方法を参照して、第9の可能な実装方法では、Th1は4、8、又は16であり、Th2は32、64、又は128であり、或いはTh3は64、128,又は256である。
【0022】
第1の態様又は第1の態様の第1乃至第9の可能な実装方法のいずれかを参照して、第10の可能な実装方法では、前記残差TUの前記目標変換モードを取得するステップの前に、前記方法は、前記CUの前記予測情報に基づき、前記残差TUの前記目標変換モードを取得するか否かを決定するステップを更に含む。
【0023】
第1の態様の第10の可能な実装方法を参照して、第11の可能な実装方法では、前記CUの前記予測情報に基づき、前記残差TUの前記目標変換モードを取得するか否かを決定する前記ステップは、以下のうちの少なくとも1つを含む:
前記CUの予測モードがイントラ予測モードであるとき、前記残差TUの前記目標変換モードを取得することを決定するステップ;
前記CUの予測モードがインター予測モードであるとき、前記残差TUの前記目標変換モードを取得することを決定するステップ;
前記CUの予測方法が予め設定された陽性予測方法であるとき、前記残差TUの前記目標変換モードを取得することを決定するステップ;又は、
前記CUの予測方法が予め設定された陰性予測方法であるとき、前記残差TUの前記目標変換モードを取得しないことを決定するステップ。
【0024】
第1の態様の第11の可能な実装方法を参照して、第12の可能な実装方法では、前記予め設定された陽性予測方法は、以下:
並進移動モデルに基づく動き補償方法;
マージ予測方法;
1/4−pel動きベクトル差予測による高度動きベクトル予測方法;又は、
2より小さいマージインデックスによるマージ予測方法;
のうちの少なくとも1つを含む。
【0025】
第1の態様の第11又は第12の可能な実装方法を参照して、第13の可能な実装方法では、前記予め設定された陰性予測方法は、以下:
アフィンモデルに基づく動き補償方法;
アフィンマージ予測方法;
アフィンインター予測モード;
1−pel又は4−pel動きベクトル差精度による高度動きベクトル予測方法;又は、
2より小さくないマージインデックスによるマージ予測方法;
のうちの少なくとも1つを含む。
【0026】
第1の態様又は第1の態様の第1乃至第13の可能な実装方法のいずれかを参照して、第14の可能な実装方法では、前記残差TUの前記目標変換モードを取得するステップの前に、前記方法は、前記CUのサイズに基づき、前記残差TUの前記目標変換モードを取得するか否かを決定するステップを更に含む。
【0027】
第1の態様の第14の可能な実装方法を参照して、第15の可能な実装方法では、前記CUのサイズに基づき、前記残差TUの前記目標変換モードを取得するか否かを決定する前記ステップは、以下のうちの少なくとも1つを含む:
前記CUの幅又は高さが予め設定されたCU閾より大きいとき、前記残差TUの前記目標変換モードを取得しないことを決定する;
前記CUのTUの幅又は高さが予め設定された最小TU閾より小さいとき、前記残差TUの前記目標変換モードを取得しないことを決定するステップ;又は、
前記CUのTUの幅又は高さが予め設定された最大TU閾より大きいとき、前記残差TUの前記目標変換モードを取得しないことを決定する。
【0028】
第1の態様の第15の可能な実装方法を参照して、第16の可能な実装方法では、前記予め設定されたCU閾が32個のルマピクセル、64個のルマピクセル、又は128個のルマピクセルである、又は、前記予め設定された最小TU閾が4個のルマピクセル、8個のルマピクセル、又は16個のルマピクセルである、又は、前記予め設定された最大TU閾が32個のルマピクセル、64個のルマピクセル、又は128個のルマピクセルである。
【0029】
第2の態様によると、本発明の一実施形態は、ビデオデコーダであって、
受信したビットストリームをパースして、符号化ユニット(coding unit, CU)の予測情報を取得し、残差変換ユニット(residual transform unit, TU)が前記CUの残差TUのみであり、前記残差TUのサイズが前記CUのサイズより小さいとき、前記残差TUの目標変換モードを取得し、前記目標変換モードは、前記CUのTUパーティションモード、前記残差TUの位置、及び前記残差TUの変換タイプを指定し、前記受信したビットストリームをパースして、前記残差TUの変換係数を取得するよう構成されるエントロピー復号ユニットと、
前記残差TUの前記変換係数に逆量子化を適用して、逆量子化された係数を取得するよう構成される逆量子化処理ユニットと、
前記目標変換モードに基づき、前記逆量子化された係数に逆変換を適用して、前記残差TUの残差ブロックを取得するよう構成される逆変換処理ユニットと、
前記予測情報に基づき、前記CUの予測ブロックを取得するよう構成される予測処理ユニットと、
前記残差ブロック及び前記予測ブロックに基づき、ビデオブロックを取得するよう構成される再構成ユニットと、
ビデオシーケンスを出力するよう構成される出力であって、前記ビデオシーケンスは前記ビデオブロックを含むビデオフレームを含む、出力と、
を含むビデオデコーダを提供する。
【0030】
第2の態様の第1の可能な実装方法では、前記CUの前記サイズはW×Hにより示され、前記残差TUの前記目標変換モードは、以下のモードのうちの1つである:
変換モードQ0であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQ1であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は右上であり、前記変換タイプが、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQ2であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置が左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードQ3であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードQH0であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは上にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは下にありサイズW×(H/2)を有し、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQH1であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは上にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは下にありサイズW×(H/2)を有し、前記残差TUの位置は右上であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは下にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは上にありサイズW×(H/2)を有し、前記残差TUの位置は左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードQH3であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは下にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは上にありサイズW×(H/2)を有し、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードQV0であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは左にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは右にありサイズ(W/2)×Hを有し、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQV1であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは右にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは左にありサイズ(W/2)×Hを有し、前記残差TUの位置は右上であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQV2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは左にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは右にありサイズ(W/2)×Hを有し、前記残差TUの位置は左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードQV3であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは右にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは左にありサイズ(W/2)×Hを有し、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードHQ0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズより小さく、前記残差TUの位置は上であり、前記変換タイプは、前記残差TUの水平変換がDST−7又はDCT−2であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードHQ1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、下のUTのサイズは上のTUのサイズより小さく、前記残差TUの位置は下であり、前記変換タイプは、前記残差TUの水平変換がDST−7又はDCT−2であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードVQ0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズより小さく、前記残差TUの位置は左であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDST−7又はDCT−2である、ことを指定するモード;
変換モードVQ1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、右のTUのサイズは左のTUのサイズより小さく、前記残差TUの位置は右であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−7又はDCT−2である、ことを指定するモード;
変換モードHH0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズと等しく、前記残差TUの位置は上であり、前記変換タイプは、前記残差TUの水平変換がDST−7又はDCT−2であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードHH1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズに等しく、前記残差TUの位置は下であり、前記変換タイプは、前記残差TUの水平変換がDST−7又はDCT−2であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードHH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、上のTUのサイズは下のTUのサイズと等しく、前記上のTUの前記サイズは中央のTUのサイズより小さく、前記残差TUの位置は中央であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDCT−2である、又は前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−1である、ことを指定するモード;
変換モードVH0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記残差TUの位置は左であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDST−7又はDCT−2である、ことを指定するモード;
変換モードVH1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記残差TUの位置は右であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−7又はDCT−2である、ことを指定するモード;又は、
変換モードVH2変換モードHH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記左のTUの前記サイズは中央のTUのサイズより小さく、前記残差TUの位置は中央であり、前記変換タイプは、前記残差TUの水平変換がDCT−2であり、前記残差TUの垂直変換がDST−7である、又は前記残差TUの水平変換がDST−1であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、第2の態様の別の可能な実装方法では、前記CUの前記サイズはW×Hにより示され、前記残差TUの前記目標変換モードは、以下のモードのうちの1つである:
変換モードQ0であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQ1であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は右上であり、前記変換タイプが、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQ2であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置が左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードQ3であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードQH0であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは上にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは下にありサイズW×(H/2)を有し、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQH1であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは上にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは下にありサイズW×(H/2)を有し、前記残差TUの位置は右上であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは下にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは上にありサイズW×(H/2)を有し、前記残差TUの位置は左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードQH3であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは下にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは上にありサイズW×(H/2)を有し、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードQV0であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは左にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは右にありサイズ(W/2)×Hを有し、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQV1であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは右にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは左にありサイズ(W/2)×Hを有し、前記残差TUの位置は右上であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQV2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは左にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは右にありサイズ(W/2)×Hを有し、前記残差TUの位置は左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードQV3であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは右にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは左にありサイズ(W/2)×Hを有し、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードHQ0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズより小さく、前記残差TUの位置は上であり、前記変換タイプは、前記残差TUの水平変換がDST−4又はDCT−2であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードHQ1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、下のUTのサイズは上のTUのサイズより小さく、前記残差TUの位置は下であり、前記変換タイプは、前記残差TUの水平変換がDST−4又はDCT−2であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードVQ0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズより小さく、前記残差TUの位置は左であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDST−4又はDCT−2である、ことを指定するモード;
変換モードVQ1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、右のTUのサイズは左のTUのサイズより小さく、前記残差TUの位置は右であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−4又はDCT−2である、ことを指定するモード;
変換モードHH0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズと等しく、前記残差TUの位置は上であり、前記変換タイプは、前記残差TUの水平変換がDST−4又はDCT−2であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードHH1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズに等しく、前記残差TUの位置は下であり、前記変換タイプは、前記残差TUの水平変換がDST−4又はDCT−2であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードHH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、上のTUのサイズは下のTUのサイズと等しく、前記上のTUの前記サイズは中央のTUのサイズより小さく、前記残差TUの位置は中央であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDCT−2である、又は前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−1である、ことを指定するモード;
変換モードVH0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記残差TUの位置は左であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDST−7又はDCT−2である、ことを指定するモード;
変換モードVH1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記残差TUの位置は右であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−7又はDCT−2である、ことを指定するモード;又は、
変換モードVH2変換モードHH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記左のTUの前記サイズは中央のTUのサイズより小さく、前記残差TUの位置は中央であり、前記変換タイプは、前記残差TUの水平変換がDCT−2であり、前記残差TUの垂直変換がDST−4である、又は前記残差TUの水平変換がDST−1であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
【0031】
第1の態様または第2の態様の第1の可能な実装方法を参照して、第2の可能な実装方法では、前記エントロピー復号ユニットは、
前記ビットストリームをパースして、前記残差TUの前記目標変換モードを示すモードインデックスを取得し、
前記モードインデックスに基づき、前記残差TUの前記目標変換モードを取得する、よう更に構成される。
【0032】
第2の態様の第2の可能な実装方法を参照して、第3の可能な実装方法では、前記エントロピー復号ユニットは、前記CUのサイズに基づき、前記残差TUの候補目標変換モードを決定し、
前記残差TUの前記候補目標変換モードに基づき、前記ビットストリームをパースして、前記残差TUの前記目標変換モードを示すモードインデックスを取得する、よう構成される。
【0033】
第2の態様の第3の可能な実装方法を参照して、第4の可能な実装方法では、前記エントロピー復号ユニットは、以下のうちの少なくとも1つに従い、前記残差TUの候補目標変換モードを決定するよう更に構成される:
前記CUの幅が[Th1×2,Th3]の範囲にあり、前記CUの高さが[Th1×2,Th3]の範囲にあるとき、前記候補目標変換モードは、変換モードQ0、変換モードQ1、変換モードQ2、及び変換モードQ3を含む;
前記CUの幅が[Th1×4,Th3]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードVQ0、変換モードVQ1、及び変換モードVH2を含む;
前記CUの幅が[Th1×2,Th2]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードVH0及び変換モードVH1を含む;
前記CUの高さが[Th1×4,Th3]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードHQ0、変換モードHQ1、及び変換モードHH2を含む;
前記CUの高さが[Th1×2,Th2]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードHH0及び変換モードHH1を含む;
前記CUの幅が[Th1×2,Th2]の範囲にあり、前記CUの高さが[Th1×2,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードQ0、変換モードQ1、変換モードQ2、及び変換モードQ3を含む;
前記CUの幅が[Th1×4,Th2]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードVQ0、変換モードVQ1、及び変換モードVH2を含む;
前記CUの幅が[Th1×2,Th2]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードVH0及び変換モードVH1を含む;
前記CUの高さが[Th1×4,Th2]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードHQ0、変換モードHQ1、及び変換モードHH2を含む;又は、
前記CUの高さが[Th1×2,Th2]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補目標変換モードは、変換モードHH0及び変換モードHH1を含む;
Th1、Th2、及びTh3は、所定の整数値である。
【0034】
第2の態様または第2の態様の第1の可能な実装方法を参照して、第5の可能な実装方法では、前記エントロピー復号ユニットは、
前記ビットストリームをパースして、前記目標変換モードの属するモードグループを示すグループインデックスを取得し、
前記ビットストリームをパースして、前記モードグループの中の前記目標変換モードを示すモードインデックスを取得し、
前記グループインデックス及び前記モードインデックスに基づき、前記目標変換モードを取得する、よう更に構成される。
【0035】
第2の態様の第5の可能な実装方法を参照して、第6の可能な実装方法では、前記目標変換モードは、以下のいずれかのモードグループに属する:
変換モードHH0、変換モードHH1、変換モードHH2、変換モードVH0、変換モードVH1、及び変換モードVH2を含むモードグループ;
変換モードQ0、変換モードQ1、変換モードQ2、変換モードQ3、変換モードHQ0、変換モードHQ1、変換モードVQ0、及び変換モードVQ1を含むモードグループ;
変換モードHH0、HH1、HH2、VH0、VH1、及びVH2を含むモードグループ;
変換モードQ0、変換モードQ1、変換モードQ2、変換モードQ3、変換モードHQ0、変換モードHQ1、変換モードVQ0、及び変換モードVQ1を含むモードグループ;
変換モードQH0、変換モードQH1、変換モードQH2、変換モードQH3、変換モードHQ0、変換モードHQ1、変換モードVQ0、及び変換モードVQ1を含むモードグループ;
変換モードQV0、変換モードQV1、変換モードQV2、変換モードQV3、変換モードHQ0、変換モードHQ1、変換モードVQ0、及び変換モードVQ1を含むモードグループ;
変換モードQ0、変換モードQ1、変換モードQ2、変換モードQ3、変換モードHQ0、変換モードHQ1、変換モードVQ0、変換モードVQ1、変換モードHH0、変換モードHH1、変換モードVH0、及び変換モードVH1を含むモードグループ;
変換モードQ0、変換モードQ1、変換モードQ2、変換モードQ3、変換モードHQ0、変換モードHQ1、変換モードVQ0、変換モードVQ1、変換モードHH0、変換モードHH1、変換モードHH2、変換モードVH0、変換モードVH1、及び変換モードVH2を含むモードグループ;
変換モードQH0、変換モードQH1、変換モードQH2、変換モードQH3、変換モードHQ0、変換モードHQ1、変換モードVQ0、変換モードVQ1、変換モードHH0、変換モードHH1、変換モードHH2、変換モードVH0、変換モードVH1、及び変換モードVH2を含むモードグループ;
変換モードHH0、変換モードHH1、変換モードVH0、及び変換モードVH1を含むモードグループ;
変換モードQ0、変換モードQ1、変換モードQ2、及び変換モードQ3を含むモードグループ;又は、
変換モードHQ0、変換モードHQ1、変換モードVQ0、及び変換モードVQ1を含むモードグループ。
【0036】
第2の態様の第5の可能な実装方法を参照して、第7の可能な実装方法では、前記エントロピー復号ユニットは、
前記CUのサイズに基づき、前記残差TUの少なくとも1つの候補モードグループを決定し、
前記残差TUの前記少なくとも1つの候補モードグループに基づき、前記ビットストリームをパースして、前記目標変換モードの属するモードグループを示すグループインデックスを取得する、よう更に構成される。
【0037】
第2の態様の第7の可能な実装方法を参照して、第8の可能な実装方法では、前記エントロピー復号ユニットは、以下のうちの少なくとも1つに従い、少なくとも1つの候補モードグループを決定するよう更に構成される:
前記CUの幅が[Th1×2,Th3]の範囲にあり、前記CUの高さが[Th1×2,Th3]の範囲にあるとき、前記候補モードグループは、変換モードQ0、変換モードQ1、変換モードQ2、及び変換モードQ3を含むモードグループを含む;
前記CUの幅が[Th1×4,Th3]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードVQ0、変換モードVQ1、及び変換モードVH2を含むモードグループを含む;
前記CUの幅が[Th1×2,Th2]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードVH0及び変換モードVH1を含むモードグループを含む;
前記CUの高さが[Th1×4,Th3]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードHQ0、変換モードHQ1、及び変換モードHH2を含むモードグループを含む;
前記CUの高さが[Th1×2,Th2]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードHH0及び変換モードHH1を含むモードグループを含む;
前記CUの幅が[Th1×2,Th2]の範囲にあり、前記CUの高さが[Th1×2,Th2]の範囲にあるとき、前記候補モードグループは、変換モードQ0、変換モードQ1、変換モードQ2、及び変換モードQ3を含むモードグループを含む;
前記CUの幅が[Th1×4,Th2]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードVQ0、変換モードVQ1、及び変換モードVH2を含むモードグループを含む;
前記CUの幅が[Th1×2,Th2]の範囲にあり、前記CUの高さが[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードVH0及び変換モードVH1を含むモードグループを含む;
前記CUの高さが[Th1×4,Th2]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードHQ0、変換モードHQ1、及び変換モードHH2を含むモードグループを含む;又は、
前記CUの高さが[Th1×2,Th2]の範囲にあり、前記CUの幅が[Th1,Th2]の範囲にあるとき、前記候補モードグループは、変換モードHH0及び変換モードHH1を含むモードグループを含む;
Th1、Th2、及びTh3は、所定の整数値である。
【0038】
第2の態様の第5又は第8の可能な実装方法を参照して、第9の可能な実装方法では、Th1は4、8、又は16であり、Th2は32、64、又は128であり、或いはTh3は64、128、又は256である。
【0039】
第2の態様又は第2の態様の第1乃至第9の可能な実装方法のいずれかを参照して、第10の可能な実装方法では、前記エントロピー復号ユニットは、前記CUの前記予測情報に基づき、前記残差TUの前記目標変換モードを取得するか否かを決定するよう更に構成される。
【0040】
第2の態様の第10の可能な実装方法を参照して、第11の可能な実装方法では、前記エントロピー復号ユニットは、以下のうちの少なくとも1つに従い、前記残差TUの前記目標変換モードを取得するか否かを決定するよう更に構成される:
前記CUの予測モードがイントラ予測モードであるとき、前記残差TUの前記目標変換モードを取得することを決定する;
前記CUの予測モードがインター予測モードであるとき、前記残差TUの前記目標変換モードを取得することを決定する;
前記CUの予測方法が予め設定された陽性予測方法であるとき、前記残差TUの前記目標変換モードを取得することを決定する;又は、
前記CUの予測方法が予め設定された陰性予測方法であるとき、前記残差TUの前記目標変換モードを取得しないことを決定する。
【0041】
第2の態様の第11の可能な実装方法を参照して、第12の可能な実装方法では、前記予め設定された陽性予測方法は、以下:
並進移動モデルに基づく動き補償方法;
マージ予測方法;
1/4−pel動きベクトル差精度による高度動きベクトル予測方法;又は、
2より小さいマージインデックスによるマージ予測方法;
のうちの少なくとも1つを含む。
【0042】
第2の態様の第11又は第12の可能な実装方法を参照して、第13の可能な実装方法では、前記予め設定された陰性予測方法は、以下:
アフィンモデルに基づく動き補償方法;
アフィンマージ予測方法;
アフィンインター予測モード;
1−pel又は4−pel動きベクトル差精度による高度動きベクトル予測方法;又は、
2より小さくないマージインデックスによるマージ予測方法;
のうちの少なくとも1つを含む。
【0043】
第2の態様又は第2の態様の第1乃至第13の可能な実装方法のいずれかを参照して、第14の可能な実装方法では、前記エントロピー復号ユニットは、前記CUのサイズに基づき、前記残差TUの前記目標変換モードを取得するか否かを決定するよう更に構成される。
【0044】
第2の態様の第14の可能な実装方法を参照して、第15の可能な実装方法では、前記エントロピー復号ユニットは、以下のうちの少なくとも1つに従い、前記残差TUの前記目標変換モードを取得するか否かを決定するよう更に構成される:
前記CUの幅又は高さが予め設定されたCU閾より大きいとき、前記残差TUの前記目標変換モードを取得しないことを決定する;
前記CUのTUの幅又は高さが予め設定された最小TU閾より小さいとき、前記残差TUの前記目標変換モードを取得しないことを決定するステップ;又は、
前記CUのTUの幅又は高さが予め設定された最大TU閾より大きいとき、前記残差TUの前記目標変換モードを取得しないことを決定する。
【0045】
第2の態様の第15の可能な実装方法を参照して、第16の可能な実装方法では、前記予め設定されたCU閾が32個のルマピクセル、64個のルマピクセル、又は128個のルマピクセルである、又は、前記予め設定された最小TU閾が4個のルマピクセル、8個のルマピクセル、又は16個のルマピクセルである、又は、前記予め設定された最大TU閾が32個のルマピクセル、64個のルマピクセル、又は128個のルマピクセルである。
【0046】
第3の態様によると、本発明の一実施形態は、デコーダであって、第1の態様及び第1の態様の第1乃至第16の不可能な実装方法のうちのいずれか1つによる方法を実行する処理回路を含むデコーダを提供する。
【0047】
第4の態様によると、本発明の一実施形態は、コンピュータプログラムプロダクトであって、第1の態様及び第1の態様の第1乃至第16の不可能な実装方法のうちのいずれか1つによる方法を実行するためのプログラムコードを含むコンピュータプログラムプロダクトを提供する。
【0048】
第5に態様によると、本発明の一実施形態は、デコーダであって、
1つ以上のプロセッサと、
前記プロセッサに結合され前記プロセッサによる実行のためのプログラミングを格納する非一時的コンピュータ可読記憶媒体であって、前記プログラミングは、前記プロセッサにより実行されると、第1の態様及び第1の態様の第1乃至第16の不可能な実装方法のいずれか1つによる方法を実行するためのデコーダを構成する、非一時的コンピュータ可読記憶媒体と、
を含むデコーダを提供する。
【0049】
本開示により提供される方法を実行することにより、目標変換モードは、CUのTUパーティションモード、残差TUの位置、及び残差の変換タイプを指定できるので、その結果、復号効率を向上できるだけでなく、復号品質も向上でき、並びに、目標変換モードについて上述の情報を指定でき、したがって、上述の情報を伝送するために必要なビットを削減でき、符号化オーディオデータを伝送するための伝送リソース、例えば帯域幅を節約できる。
【発明を実施するための形態】
【0076】
以下の説明では、本開示の部分を形成し、図示により本発明の実施形態の特定の態様または本発明の実施形態が使用され得る特定の態様を示す、添付の図面を参照する。本発明の実施形態は、他の態様で使用され、図に示されない構造的または論理的変化を含んでよいことが理解される。以下の詳細な説明は、したがって、限定的意味と考えられるべきではなく、本発明の範囲は添付の特許請求の範囲により定められる。
【0077】
例えば、記載の方法に関連する開示は、方法を実行するよう構成される対応する装置又はシステムについても真であり、逆も同様である。例えば、1又は複数の特定の方法のステップが説明される場合、1つ以上のユニットが明示的に説明され又は図示されない場合でも、対応する装置は、説明される1又は複数の方法のステップを実行するために、1又は複数のユニット、例えば機能ユニットを含んでよい(例えば、1つのユニットが1又は複数のステップを実行し、又は複数のユニットの各々が複数のステップのうちの1つ以上を実行する)。他方で、例えば、特定の機器が1又は複数のユニット、例えば機能ユニットに基づき説明される場合、1又は複数のステップが明示的に説明され又は図示されない場合でも、対応する方法は、1又は複数のユニットの機能を実行するための1つのステップを含んでよい(例えば、1つのステップが1又は複数のユニットの機能を実行し、又は複数のステップの各々が複数のユニットのうちの1つ以上の機能を実行する)。更に、ここで説明される種々の例示的な実施形態及び/又は態様の特徴は、特に断りのない限り、互いに結合されてよいことが理解される。
【0078】
ビデオ符号化は、標準的に、ビデオまたはビデオシーケンスを形成する、ピクチャのシーケンスの処理を表す。用語「ピクチャ(picture)」の代わりに、用語「フレーム(frame)」又は「画像(image)」がビデオ符号化の分野では同義語として使用され得る。本願(又は本開示)で使用されるビデオ符号化は、ビデオ符号化又はビデオ復号を示す。ビデオ符号化は、ソース側で実行され、標準的に、元のビデオピクチャを処理して(例えば、圧縮による)、(より効率的な記憶及び/又は伝送のために)ビデオピクチャを表現するために必要なデータ量を削減することを含む。ビデオ復号は、宛先側で実行され、標準的に、エンコーダに対して反対の処理を含み、ビデオピクチャを再構成する。ビデオピクチャ(又は後述するように一般的にピクチャ)の「符号化」を参照する実施形態は、ビデオシーケンスの「符号化」又は「復号」のいずれかに関連すると非解されるべきである。符号化部分及び復号部分の結合は、コーデック(符号化及び復号、CODEC)とも呼ばれる。
【0079】
無損失ビデオ符号化の場合には、元のビデオピクチャが再構成可能である。つまり、再構成されたビデオピクチャは、元のビデオピクチャと同じ品質を有する(伝送損失、又は記憶若しくは伝送中に他のデータ損失が無いと仮定する)。損失ビデオ符号化の場合には、例えば量子化による更なる圧縮が実行され、ビデオピクチャを表現するデータ量を削減する。これは、デコーダ側で完全に再構成できない。つまり、再構成されたビデオピクチャの品質は、元のビデオピクチャの品質と比べて低い又は悪い。
【0080】
H.261以降の幾つかのビデオ符号化規格は、「損失ハイブリッドビデオコーデック」のグループに属する(つまり、サンプルドメイン(sample domain)における空間及び時間予測と、変換ドメインにおける量子化を適用する2D変換符号化と、を結合する)。ビデオシーケンスの各ピクチャは、標準的に、重なり合わないブロックのセットに分けられ、符号化は、標準的に、ブロックレベルで実行される。言い換えると、エンコーダにおいて、例えば空間(イントラピクチャ)予測及び時間(インターピクチャ)予測を用いて予測ブロックを生成し、予測ブロックを現在ブロック(現在処理されている/処理されるべきブロック)から減算して残差ブロックを取得し、残差ブロックを変換し、及び変換ドメインで残差ブロックを量子化して、伝送されるべきデータ量を削減し(圧縮)することにより、ビデオは標準的にブロック(ビデオブロック)レベルで処理され、つまり符号化される。一方で、デコーダにおいて、エンコーダと比べて逆の処理が、符号化された又は圧縮されたブロックに対して部分的に適用されて、提示するために現在ブロックを再構成する。更に、エンコーダは、デコーダ処理ループを複製して、後続のブロックを処理する、つまり符号化するために、両方が同一の予測(例えば、イントラ及びインター予測)及び/又は再構成を生成するようにする。
【0081】
ここで使用されるとき、用語「ブロック」はピクチャ又はフレームの一部であってよい。説明の便宜上、本発明の実施形態は、ここで、高効率ビデオ符号化(High−Efficiency Video Coding, HEVC)、又はITU−Tビデオ符号化専門家委員会(ITU−T Video Coding Experts Group, VCEG)及びISO/IEC動画専門家委員会(Motion Picture Experts Group, MPEG)のビデオ符号化に関する共同作業部会(Joint Collaboration Team on Video Coding, JCT−VC)により開発されたバーサタイルビデオ符号化のリファレンスソフトウェアを参照して説明される。当業者は、本発明の実施形態がHEVC又はVVCに限定されないことを理解するだろう。CU、PU、及びTUを参照し得る。HEVCでは、CTUは、符号化ツリーとして示される4分木構造を用いてCUに分割される。ピクチャ領域をインターピクチャ(時間)又はイントラピクチャ(空間)予測を用いて符号化するかの決定は、CUレベルで行われる。各CUは、PU分割タイプに従い、1、2、又は4個のPUに更に分割できる。1個のPU内で、同じ予測処理が適用され、関連情報がPU毎にデコーダへ伝送される。PU分割タイプに基づき予測処理を適用することにより、残差ブロックを取得した後に、CUは、CUの符号化ツリーと同様の別の4分木構造に従い、変換ユニット(transform unit, TU)に分けることができる。ビデオ圧縮技術の最新の進展では、4分木及び2分木(Qual−tree and binary tree, QTBT)パーティションフレームが、符号化ブロックを分けるために使用される。QTBTブロック構造では、CUは正方形または長方形形状のいずれかを有し得る。例えば、符号化木ユニット(coding tree unit, CTU)は、先ず、4分木構造により分けられる。4分木のリーフノードは、2分木構造により更に分けられる。2分木のリーフノードは、符号化ユニット(coding unit, CU)と呼ばれ、更なるパーティションを伴わず、予測及び変換処理のためにセグメント化が使用される。これは、CU、PU、及びTUが、QTBT符号化ブロック構造において同じブロックサイズを有することを意味する。同時に、多重パーティション、例えば3分木パーティションも、QTBTブロック構造と一緒に使用するために提案された。
【0082】
エンコーダ20の以下の実施形態では、デコーダ30及び符号化システム10は
図1〜3に基づき説明される。
【0083】
図1Aは、本願(本開示)の技術を利用し得る例示的な符号化システム10、例えばビデオ符号化システム10を示す概念的又は概略的ブロック図である。ビデオ符号化システム10のエンコーダ20(例えば、ビデオエンコーダ20)及びデコーダ30(例えば、ビデオデコーダ30)は、本願で説明される種々の例に従う技術を実行するよう構成され得る装置の例を表す。
図1Aに示すように、符号化システム10は、符号化されたデータ13、例えば符号化されたピクチャ13を、符号化されたデータ13を復号する宛先装置14に提供するよう構成されるソース装置12を含む。
【0084】
ソース装置12は、エンコーダ20を含み、追加でつまり任意で、ピクチャソース16、前処理ユニット18、例えばピクチャ前処理ユニット18、及び通信インタフェース又は通信ユニット22を含む。
【0085】
ピクチャソース16は、例えば現実のピクチャをキャプチャする任意の種類のピクチャキャプチャ装置、及び/又は任意の種類のピクチャ若しくはコメント(スクリーンコンテンツ符号化では、スクリーン上の何らかのテキストも符号化されるべきピクチャ又は画像の一部と考えられる)生成装置、例えばコンピュータアニメーションピクチャ、コンピュータアニメーションピクチャ(例えば、スクリーンコンテンツ、仮想現実(virtual reality, VR)ピクチャ)及び/又はそれらの任意の組み合わせ(例えば、拡張現実(augmented reality, AR)ピクチャ)を生成するコンピュータグラフィックプロセッサ、又は現実のピクチャを取得し及び/又は提供する任意の種類の装置、を含んでよく又はそれであってよい。
【0086】
(デジタル)ピクチャは、強度値を有するサンプルの2次元配列又は行列と考えられる又は考えることができる。配列の中のサンプルは、ピクセル(pixel)(ピクチャ要素の短縮形)又はペル(pel)とも呼ばれてよい。配列又はピクチャの水平及び垂直方向(又は軸)にあるサンプルの数は、ピクチャのサイズ及び/又は解像度を定める。色の表現のために、標準的に3つの色成分が利用される。つまり、ピクチャは、3つのサンプル配列で表現され又はそれを含んでよい。RBG形式又は色空間では、ピクチャは、対応する赤、緑、及び青色サンプル配列を含む。しかしながら、ビデオ符号化では、各ピクセルは、標準的に、輝度/色度形式、又は色空間、例えば、Y(時には代わりにLが使用されることもある)により示される輝度成分と及びCb及びCrにより示される2つの色度成分を含むYCbCrとで表現される。輝度(又は略してluma)成分Yは、明るさ又はグレーレベル強度(例えば、グレイスケールピクチャのような)を表現する。一方で、2つの色度(又は略してchroma)成分Cb及びCrは、色度又は色情報成分を表現する。したがって、YCbCr形式のピクチャは、輝度サンブル値(Y)の輝度サンブル配列と、色度値(Cb及びCr)の2つの色度サンブル配列とを含む。RGB形式のピクチャは、YCbCr形式に転換され又は変換されてよく、逆も同様であり、処理は色転換又は色変換としても知られる。ピクチャが単色である場合、ピクチャは、輝度サンブル配列のみを含んでよい。
【0087】
ピクチャソース16(例えば、ビデオソース16)は、例えばピクチャをキャプチャするカメラ、前にキャプチャした若しくは生成したピクチャを含む若しくは格納するメモリ、例えばピクチャメモリ、及び/又はピクチャを取得し若しくは受信するための任意の種類の(内部又は外部)インタフェースであってよい。カメラは、例えば、ソース装置に統合されたローカル又は内蔵カメラであってよい。メモリは、例えばソース装置に統合されたローカルまたは内蔵メモリであってよい。インタフェースは、例えば、ピクチャを外部ビデオソース、例えばカメラのような外部ピクチャキャプチャ装置、外部メモリ、又は外部ピクチャ生成装置、例えば外部コンピュータグラフィックプロセッサ、コンピュータ若しくはサーバから受信する外部インタフェースであってよい。インタフェースは、任意の特性または標準化インタフェースプロトコルに従い、任意の種類のインタフェース、例えば有線若しくは無線インタフェース、光インタフェースであり得る。ピクチャデータ17を取得するインタフェースは、通信インタフェース22と同じインタフェース又はその一部であってよい。
【0088】
前処理ユニット18及び前処理ユニット18により実行される処理と対照的に、ピクチャ又はピクチャデータ17(例えばビデオデータ16)は、生ピクチャ又は生ピクチャデータ17とも呼ばれてよい。
【0089】
前処理ユニット18は、(生)ピクチャデータ17を受信し、ピクチャデータ17に前処理を実行して、前処理済みピクチャ19又は前処理済みピクチャデータ19を取得するよう構成される。前処理ユニット18により実行される前処理は、例えばトリミング、色形式変換(例えば、RGBからYCbCrへ)、色補正、又はノイズ除去を含んでよい。前処理ユニット18は光コンポーネントであってよいことが理解できる。
【0090】
エンコーダ20(例えばビデオエンコーダ20)は、前処理済みピクチャデータ19を受信し、符号化ピクチャデータ21を提供するよう構成される(更なる詳細は、例えば
図2又は
図4に基づき後述される)。
【0091】
ソース装置12の通信インタフェース22は、符号化ピクチャデータ21を受信し、それを別の装置、例えば宛先装置14若しくは任意の他の装置へと、記憶又は直接再構成のために伝送し、又は、別の装置、例えば宛先装置14又は任意の他の装置へと、復号又は格納のために伝送する前に、符号化データ13を格納する及び/又は符号化データ13を処理するよう構成されてよい。
【0092】
宛先装置14は、デコーダ30(例えば、ビデオデコーダ30)を含み、追加で、つまり任意で、通信インタフェース又は通信ユニット28、後処理ユニット32、及びディスプレイ装置34を含んでよい。
【0093】
宛先装置14の通信インタフェース28は、符号化ピクチャデータ21又は符号化データ13を、例えばソース装置12から直接に又は任意の他の装置、例えば記憶装置、例えば符号化ピクチャデータ記憶装置から受信するよう構成される。
【0094】
通信インタフェース22及び通信インタフェース28は、符号化ピクチャデータ21又は符号化データ13を、ソース装置12と宛先装置14との間の通信リンク、例えば直接有線又は無線接続、又は任意の種類のネットワーク、例えば有線又は無線ネットワーク、又はそれらの任意の組み合わせ、又は任意の種類の私設又は公衆ネットワーク、又はそれらの任意の種類の組み合わせを介して送信又は受信するよう構成されてよい。
【0095】
通信インタフェース22は、通信リンク又は通信ネットワークを介して伝送するために、例えば、符号化ピクチャデータ21を適切な形式、例えばパケットにパッケージするよう構成されてよい。
【0096】
通信インタフェース22の相手方を形成する通信インタフェース28は、例えば、符号化データ13をパッケージ解除して符号化ピクチャデータ21を取得するよう構成されてよい。
【0097】
通信インタフェース22及び通信インタフェース28の両者は、
図1Aのソース装置12から宛先装置14を指す符号化データ13の矢印により示されるように、単方向通信インタフェース、又は、双方向通信インタフェースとして構成されてよく、例えば接続を確立するため、肯定応答し及び通信リンク及び/又はデータ伝送、例えば符号化ピクチャデータ伝送に関連する任意の他の情報を交換するために、例えばメッセージを送信し及び受信するよう構成されてよい。
【0098】
デコーダ30は、符号化ピクチャデータ21を受信し、復号ピクチャデータ31又は復号ピクチャ31を提供するよう構成される(更なる詳細は、例えば
図3又は
図5に基づき後述される)。
【0099】
宛先装置14の後プロセッサ32は、復号ピクチャデータ31(再構成済みピクチャデータとも呼ばれる)、例えば復号ピクチャ31を後処理して、後処理済みピクチャデータ33、例えば後処理済みピクチャ33を取得するよう構成される。後処理ユニット32により実行される後処理は、例えば色形式変換(例えば、YCbCrからRGBへ)、色補正、トリミング、又は再サンプリング、又は、例えば復号ピクチャデータ31を例えばディスプレイ装置34による表示のために準備するための任意の他の処理、を含んでよい。
【0100】
宛先装置14のディスプレイ装置34は、例えばユーザ又はビューアにピクチャを表示するために、後処理済みピクチャデータ33を受信するよう構成される。ディスプレイ装置34は、再構成済みピクチャを提示する任意の種類のディスプレイ、例えば内蔵又は外部ディスプレイ又はモニタであり又はそれを含んでよい。ディスプレイは、例えば液晶ディスプレイ(liquid crystal displays, LCD)、有機発光ダイオード(organic light emitting diodes, OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、シリコン上の液晶(liquid crystal on silicon, LCoS)、デジタル光プロセッサ(digital light processor, DLP)又は任意の種類の他のディスプレイを含んでよい。
【0101】
図1Aはソース装置12及び宛先装置14を別個の装置として示すが、装置の実施形態は、ソース装置12又は対応する機能と宛先装置14又は対応する機能の両方又は両方の機能を含んでもよい。このような実施形態では、ソース装置12又は対応する機能及び宛先装置14又は対応する機能は、同じハードウェア及び/又はソフトウェア又は別個のハードウェア及び/又はソフトウェア又はそれらの任意の組み合わせを用いて実装されてよい。
【0102】
説明に基づき当業者に明らかなように、
図1Aに示されるようなソース装置12及び/又は宛先装置14内の異なるユニット又は機能の存在及びその(正確な)分割は、実際の装置及び用途に依存して変化してよい。
【0103】
エンコーダ20(例えば、ビデオエンコーダ20)及びデコーダ30(例えば、ビデオデコーダ30)の各々は、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processors, DSP)、特定用途向け集積回路(application−specific integrated circuits, ASIC)、フィールドプログラマブルゲートアレイ(field−programmable gate arrays, FPGA)、個別ロジック、ハードウェア、又はそれらの任意の組み合わせのような、様々な適切な回路のうちのいずれかとして実装されてよい。技術が部分的にソフトウェアで実装される場合、装置は、適切な非一時的コンピュータ可読記憶媒体内のソフトウェアのための命令を格納してよく、命令をハードウェアで1つ以上のプロセッサを用いて実行して、本開示の技術を実行してよい。前述のいずれか(ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組み合わせ、等を含む)は、1つ以上のプロセッサであると考えられてよい。ビデオエンコーダ20及びビデオデコーダ30の各々は、1つ以上のエンコーダ又はデコーダに含まれてよく、いずれも、結合されたエンコーダ/デコーダ(encoder/decoder, CODEC)の部分としてそれぞれの装置内に統合されてよい。
【0104】
ソース装置12は、ビデオ符号化装置又はビデオ符号化機器と呼ばれてよい。宛先装置14は、ビデオ復号装置又はビデオ復号機器と呼ばれてよい。ソース装置12及び宛先装置14は、ビデオ符号化装置又はビデオ符号化機器の例であってよい。
【0105】
ソース装置12及び宛先装置14は、任意の種類のハンドヘルド又は固定装置、例えばノートブックまたはラップトップコンピュータ、移動電話機、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビジョン、ディスプレイ装置、デジタルメディアプレイヤ、ビデオゲーム端末、ビデオストリーミング装置(例えば、コンテンツサービスサーバ、又はコンテンツ配信サーバ)、ブロードキャスト受信装置、ブロードキャスト送信装置、等を含む、広範な装置のうちのいずれかを含んでよく、任意の種類のオペレーティングシステムを使用してよく又は使用しなくてよい。
【0106】
幾つかの場合には、ソース装置12及び宛先装置14は、無線通信のために装備されてよい。したがって、ソース装置12及び宛先装置14は、無線通信装置であってよい。
【0107】
幾つかの場合には、
図1Aに示すビデオ符号化システム10は単に例であり、本願の技術は、必ずしも符号化装置と復号装置との間の任意のデータ通信を含まないビデオ符号化設定(例えば、ビデオ符号化又はビデオ復号)に適用されてよい。他の例では、データはローカルメモリから読み出される、ネットワークを介してストリーミングされる、等であってよい。ビデオ符号化装置は、データを符号化しメモリに格納してよく、及び/又は復号装置はデータをメモリから読み出し復号してよい。幾つかの例では、符号化及び復号は、互いに通信しないが単にデータをメモリへと符号化し及び/又はメモリからデータを読み出し復号する装置により実行される。
【0108】
理解されるべきことに、ビデオエンコーダ20を参照して説明した上述の例の各々について、ビデオデコーダ30は、相互的処理を実行するよう構成されてよい。シグナリングシンタックス要素に関して、ビデオデコーダ30は、このようなシンタックス要素を受信しパースし、相応して関連するビデオデータを復号するよう構成されてよい。幾つかの例では、ビデオエンコーダ20は、1つ以上のシンタックス要素を符号化されたビデオビットストリームへとエントロピー符号化してよい。このような例では、ビデオデコーダ30は、このようなシンタックス要素をパースし、相応して関連するビデオデータを復号してよい。
【0109】
図1Bは、例示的な実施形態による、
図2のエンコーダ20及び/又は
図3のデコーダ30を含む別の例示的なビデオ符号化システム40の説明図である。システム40は、本願において説明される種々の例に従う技術を実施できる。図示の実装では、ビデオ符号化システム40は、画像装置41、ビデオエンコーダ100、ビデオデコーダ30(及び/又は処理ユニット46の論理回路47により実装されるビデオコーダ)、アンテナ42、1つ以上のプロセッサ43、1つ以上のメモリストア44、及び/又はディスプレイ装置45を含んでよい。
【0110】
図示のように、画像装置41、アンテナ42、処理ユニット46、論理回路47、ビデオエンコーダ20、ビデオデコーダ30、プロセッサ43、メモリストア44、及び/又はディスプレイ装置45は、互いに通信可能であってよい。議論されるように、ビデオエンコーダ20及びビデオデコーダ30の両方と共に示されるが、ビデオ符号化システム40は、種々の例においてビデオエンコーダ20のみ又はビデオデコーダ30のみを含んでよい。
【0111】
示されるように幾つかの例では、ビデオ符号化システム40はアンテナ42を含んでよい。アンテナ42は、例えばビデオデータの符号化されたビットストリームを送信又は受信するよう構成されてよい。更に、幾つかの例では、ビデオ符号化システム40はディスプレイ装置45を含んでよい。ディスプレイ装置45は、ビデオデータを提示するよう構成されてよい。示されるように、幾つかの例では、論理回路47は処理ユニット46により実装されてよい。処理ユニット46は、特定用途向け集積回路(application−specific integrated circuit, ASIC)ロジック、グラフィックプロセッサ、汎用プロセッサ、等を含んでよい。ビデオ符号化ユニット43も、同様に特定用途向け集積回路(application−specific integrated circuit, ASIC)ロジック、グラフィックプロセッサ、汎用プロセッサ、等を含んでよい任意的なプロセッサ43を含んでよい。幾つかの例では、論理回路47は、ハードウェア、ビデオ符号化専用ハードウェア、等により実装されてよく、プロセッサ43は、汎用ソフトウェア、オペレーティングシステム、等を実装してよい。更に、メモリストア44は、揮発性メモリ(例えば、静的ランダムアクセスメモリ(Static Random Access Memory, SRAM)、動的ランダムアクセスメモリ(Dynamic Random Access Memory, DRAM)、等)又は不揮発性メモリ(例えば、フラッシュメモリ、等)、等のような任意の種類のメモリであってよい。非限定的な例では、メモリストア44はキャッシュメモリにより実装されてよい。幾つかの例では、論理回路47は、(例えば画像バッファの実装のために)メモリストア44にアクセスしてよい。他の例では、論理回路47及び/又は処理ユニット46は、画像バッファ等の実装のためにメモリストア(例えばキャッシュ等)を含んでよい。
【0112】
幾つかの例では、論理回路により実装されるビデオエンコーダ100は、(例えば、処理ユニット46又はメモリストア44のいずれかによる)画像バッファ、及び(例えば、処理ユニット46による)グラフィック処理ユニットを含んでよい。グラフィック処理ユニットは、画像バッファに通信可能に結合されてよい。グラフィック処理ユニットは、
図2に関して議論したような種々のモジュール及び/又はここで説明される任意の他のエンコーダシステム若しくはサブシステムを実現するために、論理回路47により実装されるようなビデオエンコーダ100を含んでよい。論理回路は、ここで議論されるような種々の動作を実行するよう構成されてよい。
【0113】
ビデオデコーダ30は、
図3のデコーダ30に関して議論したような種々のモジュール及び/又はここで説明された任意の他のデコーダシステム若しくはサブシステムを実現するために、論理回路47により実装されるのと同様の方法で実装されてよい。幾つかの例では、ビデオデコーダ30は、論理回路により実装されてよく、(例えば、処理ユニット420又はメモリストア44のいずれかによる)画像バッファ、及び(例えば、処理ユニット46による)グラフィック処理ユニットを含んでよい。グラフィック処理ユニットは、画像バッファに通信可能に結合されてよい。グラフィック処理ユニットは、
図3に関して議論したような種々のモジュール及び/又はここで説明される任意の他のデコーダシステム若しくはサブシステムを実現するために、論理回路47により実装されるようなビデオデコーダ30を含んでよい。
【0114】
幾つかの例では、ビデオ符号化システム40のアンテナ42は、ビデオデータの符号化されたビットストリームを受信するよう構成されてよい。議論したように、符号化されたビットストリームは、符号化パーティションに関連するデータ(例えば、変換係数または量子化された変換係数、(議論するような)任意的な指示子、及び/又は符号化パーティションを定めるデータ)のような、ここで議論されるビデオフレームの符号化に関連するデータ、指示子、インデックス値、モード選択データ、等を含んでよい。ビデオ符号化システム40は、アンテナ42に結合され符号化されたビットストリームを復号するよう構成されるビデオデコーダ30も含んでよい。ディスプレイ装置45は、ビデオフレームを提示するよう構成される。
【0116】
図2は、本願の技術を実施するよう構成される例示的なビデオエンコーダ20の概略的/概念的ブロック図を示す。
図2の例では、ビデオエンコーダ20は、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210及び逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタユニット220、復号ピクチャバッファ(decoded picture buffer, DPB)230、予測処理ユニット260、及びエントロピー符号化ユニット270を含む。予測処理ユニット260は、インター予測ユニット244、イントラ予測処理ユニット254、及びモード選択ユニット262を含んでよい。インター予測ユニット244は、動き推定ユニット及び動き補償ユニット(図示しない)を含んでよい。
図2に示すようなビデオエンコーダ20は、ハイブリッドビデオエンコーダ又はハイブリッドビデオコーデックに従うビデオエンコーダとも呼ばれてよい。
【0117】
例えば、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、予測処理ユニット260、及びエントロピー符号化ユニット270は、エンコーダ20の順方向信号経路を形成する。一方で、例えば、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(decoded picture buffer, DPB)230、予測処理ユニット260は、エンコーダの逆方向信号経路を形成し、エンコーダの逆方向信号経路はデコーダの信号経路に対応する(
図3のデコーダ30を参照)。
【0118】
エンコーダ20は、例えば入力202により、ピクチャ201又はピクチャ201のブロック203、例えばビデオまたはビデオシーケンスを形成するピクチャのシーケンスのピクチャを受信するよう構成される。ピクチャブロック203は、(特に、ビデオ符号化では、現在ピクチャを他のピクチャ、例えば同じビデオシーケンス、つまり現在ピクチャも含むビデオシーケンスの前に符号化され及び/又は復号されたピクチャと区別するために)現在ピクチャブロック又は被符号化ピクチャブロック、及び現在ピクチャ又は被符号化ピクチャとしてのピクチャ201とも呼ばれてよい。
【0120】
エンコーダ20の実施形態は、ピクチャ201を複数のブロック、例えばブロック203のようなブロックに、標準的には服すの重なり合わないブロックに分けるよう構成されるパーティションユニット(
図2に示されない)を含んでよい。パーティションユニットは、同じブロックサイズをビデオシーケンスの全部のピクチャ、及びブロックサイズを定める対応するグリッドに対して使用し、又はピクチャ又はピクチャのサブセット若しくはグループ間のブロックサイズを変更し、各ピクチャを対応するブロックに分けるよう構成されてよい。
【0121】
一例では、ビデオエンコーダ20の予測処理ユニット260は、上述のパーティション技術の任意の組み合わせを実行するよう構成されてよい。
【0122】
ピクチャ201と同様に、ブロック203は、ここでも、強度値(サンプル値)を有するサンプルの2次元配列又は行列と考えることができるが、ピクチャ201より小さい次元である。言い換えると、ブロック203は、例えば1つのサンプル配列(例えば、単色ピクチャ201の場合には、ルマ配列)、又は3つのサンプル配列(例えば、カラーピクチャ201の場合には、ルマ及び2つのクロマ配列)、又は適用される色形式に依存して任意の他の数の及び/又は種類の配列を含んでよい。ブロック203の水平及び垂直方向(又は軸)にあるサンプルの数は、ブロック203のサイズを定める。
【0123】
図2に示すようなエンコーダ20は、ブロック毎にピクチャ201を符号化するよう構成される。例えば、符号化及び予測がブロック203毎に実行される。
【0125】
残差計算ユニット204は、残差ブロック205を、ピクチャブロック203及び予測ブロック265(予測ブロック265に関する更なる詳細は後に提供される)に基づき、例えば予測ブロック265のサンプル値をピクチャブロック203のサンプル値からサンプル毎に(ピクセル毎に)減算してサンプルドメイン内の残差ブロック205を取得することにより、計算するよう構成される。
【0127】
変換処理ユニット206は、変換、例えば離散コサイン変換(discrete cosine transform, DCT)又は離散サイン変換(discrete sine transform, DST)を残差ブロック206のサンプル値に対して適用して、変換ドメイン内の変換係数207を取得するよう構成される。変換係数207は、変換残差係数とも呼ばれ、変換ドメイン内の残差ブロック205を表してよい。
【0128】
変換処理ユニット206は、HEVC/H.265のために指定された変換のようなDCT/DSTの整数近似を適用するよう構成されてよい。直交DCT変換と比べて、このような整数近似は、標準的に、特定の因子によりスケーリングされる。順方向及び逆変換により処理される残差ブロックの水準を維持するために、追加スケーリング因子が変換処理の部分として適用される。スケーリング因子は、標準的に、スケーリング因子がシフト操作の2乗であること、変換係数のビット深さ、精度と実装コストとの間のトレードオフ、等のような特定の制約に基づき選択される。特定のスケーリング因子は、例えば、例えばデコーダ30における逆変換処理ユニット212による逆変換(及び例えばエンコーダ20における逆変換処理ユニット212による対応する逆変換)のために指定され、例えばエンコーダ20における変換処理ユニット206による順方向変換のための対応するスケーリング因子が相応して指定されてよい。
【0130】
量子化ユニット208は、変換係数207を量子化して、例えばスカラー量子化又はベクトル量子化を適用することにより、量子化された変換係数209を取得するよう構成されてよい。量子化された変換係数209は、量子化残差係数209とも呼ばれてよい。量子化処理は、変換係数207の一部又は全部に関連するビット深さを低減してよい。例えば、nビットの変換係数は、量子化の間、mビットの変換係数に丸め込まれてよい。ここで、nはmより大きい。量子化の程度は、量子化パラメータ(quantization parameter, QP)を調整することにより、変更されてよい。例えば、スカラー量子化では、より精細な又は粗い量子化を達成するために異なるスケーリングが適用されてよい。量子化ステップサイズが小さいほど、精細な量子化に対応する。一方で、量子化ステップサイズが大きいほど、粗い量子化に対応する。適用可能な量子化ステップは、量子化パラメータ(quantization parameter, QP)により示されてよい。量子化パラメータは、例えば、適用可能な量子化ステップサイズの所定のセットに対するインデックスであってよい。例えば、小さい量子化パラメータは、精細な量子化(小さい量子化ステップサイズ)に対応してよく、大きな量子化パラメータは粗い量子化(大きな量子化ステップサイズ)に対応してよい。量子化は、量子化ステップサイズによる除算を含んでよい。例えば逆量子化210による対応する又は逆の逆量子化は、量子化ステップサイズによる乗算を含んでよい。幾つかの標準、例えばHEVCに従う実施形態は、量子化ステップサイズを決定するために量子化パラメータを使用するよう構成されてよい。通常、量子化ステップサイズは、除算を含む式の不動点近似を用いて、量子化パラメータに基づき計算されてよい。量子化ステップサイズ及び量子化パラメータの式の不動点近似において使用されるスケーリングのために変更され得る残差ブロックの水準を復元するために、量子化及び逆量子化のための追加のスケーリング因子が導入されてよい。1つの例示的な実装では、逆変換及び逆量子化のスケーリングは結合されてよい。代替として、カスタマイズされた量子化テーブルが使用され、エンコーダからデコーダへ、例えばビットストリームの中でシグナリングされてよい。量子化は、損失動作であり、損失は量子化ステップサイズの増大に伴い増大する。
【0131】
逆量子化ユニット210は、例えば、量子化ユニット208と同じ量子化ステップサイズに基づき又はそれを用いて、量子化ユニット208により適用された量子化方式の逆を適用することにより、量子化された係数に対して量子化ユニット208の逆量子化を適用して、逆量子化された係数211を取得するよう構成される。逆量子化された係数211は、逆量子化された残差係数211とも呼ばれ、標準的には量子化による損失のために変換係数と同じではないが、変換係数207に対応してよい。
【0132】
逆変換処理ユニット212は、変換処理ユニット206により適用された変換の逆変換、例えば逆離散コサイン変換(inverse discrete cosine transform, DCT)又は逆離散サイン変換(inverse discrete sine transform, DST)を適用して、サンプルドメイン内の逆変換ブロック213を取得するよう構成される。逆変換ブロック213は、逆変換逆量子化ブロック213又は逆変換残差ブロック213とも呼ばれてよい。
【0133】
再構成ユニット214(例えば、加算器214)は、逆変換ブロック213(つまり再構成された残差ブロック213)を予測ブロック265に加算して、例えば再構成された残差ブロック213のサンプル値と予測ブロック265のサンブル値とを加算することにより、サンプルドメイン内の再構成ブロック215を取得するよう構成される。
【0134】
任意で、バッファユニット216(略して「バッファ」216)、例えばラインバッファ216は、再構成されたブロック215及びそれぞれのサンプル値を、例えばイントラ予測のためにバッファリングし又は格納するよう構成される。更なる実施形態では、エンコーダは、フィルタリングされていない再構成ブロック及び/又はバッファユニット216に格納されたそれぞれのサンプル値を、任意の種類の推定及び/又は予測、例えばイントラ予測のために使用するよう構成されてよい。
【0135】
エンコーダ20の実施形態は、例えば、バッファユニット216がイントラ予測254のためだけでなく、ループフィルタユニット220(
図2に示されない)のためにも再構成されたブロック2156を格納するために使用されるように、及び/又はバッファユニット216及び復号ピクチャバッファユニット230が1つのバッファを形成するように、構成されてよい。更なる実施形態は、フィルタリング済みブロック221及び/又は復号ピクチャバッファ230からのブロック若しくはサンプル(両方とも
図2に示されない)をイントラ予測254のための入力又は基礎として使用するよう構成されてよい。
【0136】
ループフィルタユニット220(又は略して「ループフィルタ」220)は、再構成されたブロック215をフィルタリングして、フィルタリング済みブロック221を取得するよう、例えばピクセル遷移を円滑化するよう或いはビデオ品質を向上するよう構成される。ループフィルタユニット220は、逆ブロッキングフィルタ、サンプル適応オフセット(sample−adaptive offset, SAO)フィルタ又は他のフィルタ、例えばバイラテラルフィルタ又は適応ループフィルタ(adaptive loop filter, ALF)又は先鋭化若しくは円滑化フィルタ又は共同フィルタのような1つ以上のフィルタを表すことを意図する。ループフィルタユニット220はループフィルタ内にあるとして
図2に示されるが、他の構成では、ループフィルタユニット220は後置きループフィルタとして実装されてよい。フィルタリング済みブロック221は、フィルタリング済み再構成ブロック221と呼ばれてもよい。復号ピクチャバッファ230は、ループフィルタユニット220がフィルタリング動作を再構成された符号化ブロックに対して実行した後に、再構成された符号化ブロックを格納してよい。
【0137】
エンコーダ20(それぞれループフィルタユニット220)の実施形態は、(サンプル適応オフセット情報のような)ループフィルタパラメータを、例えば直接に出力し又はエントロピー符号化ユニット若しくは任意の他のエントロピー符号化ユニットによりエントロピー符号化するよう構成されてよい。その結果、例えば、デコーダ30は、同じループフィルタパラメータを受信し、復号のために適用してよい。
【0138】
復号ピクチャバッファ(decoded picture buffer, DPB)230は、ビデオエンコーダ20によるビデオデータの符号化において使用するために、参照ピクチャデータを格納する参照ピクチャメモリであってよい。DPB230は、同期RAM(synchronous DRAM, SDRAM)を含む動的ランダムアクセスメモリ(dynamic random access memory, DRAM)、磁気抵抗RAM(magnetoresistive RAM, MRAM)、抵抗RAM(resistive RAM, RRAM)、又は他の種類のメモリ装置のような、種々のメモリ装置のうちのいずれかにより形成されてよい。DPB230及びバッファ216は、同じメモリ装置又は別個のメモリ装置により提供されてよい。幾つかの例では、復号ピクチャバッファ(decoded picture buffer, DPB)230は、フィルタリング済みブロック221を格納するよう構成される。復号ピクチャバッファ230は、同じ現在ピクチャの又は異なるピクチャ、例えば前に再構成されたピクチャの他の前にフィルタリングされたブロック、例えば前に再構成された及びフィルタリングされたブロック221を格納するよう更に構成されてよく、完全な前に再構成された、つまり復号されたピクチャ(及び対応する参照ブロック及びサンプル)、及び/又は部分的に再構成された現在ピクチャ(及び対応する参照ブロック及びサンプル)を、例えばインター予測のために提供してよい。幾つかの例では、再構成されたブロック215が再構成されたがインループフィルタリングを伴わない場合、復号ピクチャバッファ(decoded picture buffer, DPB)230は再構成ブロック215を格納するよう構成される。
【0139】
予測処理ユニット260は、ブロック予測処理ユニット260とも呼ばれ、ブロック203(現在ピクチャ201の現在ブロック203)及び再構成ピクチャデータ、例えば同じ(現在)ピクチャの参照サンプルをバッファ216から、及び/又は1又は複数の前に復号したピクチャからの参照ピクチャデータ231を復号ピクチャバッファ230から受信し又は取得し、このようなデータを予測のために処理し、つまりインター予測ブロック245又はイントラ予測ブロック255であってよい予測ブロック265を提供するよう構成される。
【0140】
モード選択ユニット262は、予測モード(例えば、イントラ又はインター予測モード)及び/又は残差ブロック205の計算のために及び再構成ブロック215の再構成のために予測ブロック265として使用されるべき対応する予測ブロック245又は255を選択するよう構成されてよい。
【0141】
モード選択ユニット262の実施形態は、最も適する又は言い換えると最小残差(最小残差は伝送又は記憶のためのより良い圧縮を意味する)又は最小シグナリングオーバヘッド(最小シグナリングオーバヘッドは伝送又は記憶のためのより良い圧縮を意味する)を提供する又は両者を考慮する若しくはバランスを取る予測モードを(例えば、予測処理ユニット260によりサポートされるものから)選択するよう構成されてよい。モード選択ユニット262は、レート歪み最適化(rate distortion optimization, RDO)に基づき、予測モードを決定するよう、つまり、最小のレート歪み最適化を提供する若しくは予測モード選択基準を少なくとも満たすレート歪みに関連する予測モードを選択するよう構成されてよい。
【0142】
以下では、例示的なエンコーダ20により実行される予測処理(例えば、予測処理ユニット260及び(例えばモード選択ユニット262による)モード選択が更に詳細に説明される。
【0143】
上述のように、エンコーダ20は、最良の又は最適な予測モードを決定し又は(予め決定された)予測モードのセットから選択するよう構成される。予測モードのセットは、例えばイントラ予測モード及び/又はインター予測モードを含んでよい。
【0144】
イントラ予測モードのセットは、35個の異なるイントラ予測モード、例えばDC(又は平均)モード及び平面モードのような無指向性モード、又は例えばH.265で定められたような指向性モードを含んでよく、又は67個の異なるイントラ予測モード、例えばDC(又は平均)モード及び平面モードのような無指向性モード、又は例えば策定中のH.266で定められたような指向性モードを含んでよい。
【0145】
インター予測モード(又は可能なインター予測モード)のセットは、利用可能な参照ピクチャ(つまり、例えばDBP230に格納された、少なくとも部分的に前に復号されたピクチャ)及び他のインター予測パラメータに、例えば、参照ピクチャの全体又は部分のみが、例えば参照ピクチャの現在ブロックの領域周辺の検索ウインドウ領域が最良の適合する参照ブロックを検索するために使用されるか、及び/又は、例えば、ピクセル補間、例えばハーフ/セミペル及び/又は4分の1ペル補間が適用されるか否かに依存する。
【0146】
上述の予測モードに加えて、スキップモード及び/又は直接モードが適用されてよい。
【0147】
予測処理ユニット260は、例えば4分木(quad−tree, QT)パーティション、2分木(binary−tree, BT)パーティション、3分木(triple−tree, TT)パーティション、又はそれらの任意の組み合わせを繰り返し使用して、ブロック203を更に小さいブロックパーティション又はサブブロックに分け、例えば各ブロックパーティション又はサブブロックに対して予測を実行するよう更に構成されてよい。っこで、モード選択は、パーティション済みブロック203の木構造及びブロックパーティション又はサブブロックの各々に適用される予測モードの選択を含む。
【0148】
インター予測ユニット244は、動き推定(motion estimation, ME)ユニット(
図2に示されない)及び動き補償(motion compensation, MC)ユニット(
図2に示されない)を含んでよい。動き推定ユニットは、ピクチャブロック203(現在ピクチャ201の現在ブロック203)、及び復号ピクチャ231、又は前に再構成されたブロックのうちの少なくとも1つ又は複数、例えば1又は複数の他の/異なる前に復号されたピクチャ231のうちの再構成されたブロックを、動き推定のために受信し又は取得するよう構成される。例えば、ビデオシーケンスは、現在ピクチャ及び前の復号ピクチャ231を含んでよい。言い換えると、現在ピクチャ及び前の復号ピクチャ231は、ビデオシーケンスを形成するピクチャのシーケンスの一部であり又はそれを形成してよい。
【0149】
エンコーダ20は、例えば、複数の他のピクチャの同じまたは異なるピクチャの複数の参照ブロックから、参照ブロックを選択し、参照ピクチャ(又は参照ピクチャインデックス)及び/又は参照ブロックの位置(x,y座標)と現在ブロックの位置との間のオフセット(空間オフセット)を、インター予測パラメータとして動き推定ユニット(
図2に示されない)に提供するよう構成されてよい。このオフセットは、動きベクトル(motion vector, MV)とも呼ばれる。
【0150】
動き補償ユニットは、インター予測パラメータを取得し、例えば受信し、インター予測パラメータに基づき又はそれを用いてインター予測を実行して、インター予測ブロック245を取得するよう構成される。動き補償ユニット(
図2に示されない)により実行される動き補償は、動き推定により決定された動き/ブロックベクトルに基づき、予測ブロックをフェッチする又は生成し、場合によってはサブピクセル精度への補間を実行することを含んでよい。補間フィルタリングは、基地のピクセルサンプルから追加ピクセルサンプルを生成してよく、従ってピクチャブロックを符号化するために使用され得る候補予測ブロックの数を増大させる可能性がある。現在ピクチャブロックのPUの動きベクトルを受信すると、動き補償ユニット246は、参照ピクチャリストのうちの1つの中で動きベクトルの指す予測ブロックの位置を特定する。動き補償ユニット246は、ビデオスライスのピクチャブロックを復号する際にビデオデコーダ30による使用のために、ブロック及びビデオスライスに関連するシンタックス要素も生成してよい。
【0151】
イントラ予測ユニット254は、ピクチャブロック203(現在ピクチャブロック)及び同じピクチャの1又は複数の前の再構成ブロック、例えば再構成された近隣ブロックを、イントラ推定のために、取得し、例えば受信するよう構成される。エンコーダ20は、例えば、複数の(所定の)イントラ予測モードから、イントラ予測モードを選択するよう構成されてよい。
【0152】
エンコーダ20の実施形態は、最適化基準、例えば最小残差(例えば、現在ピクチャブロック203に最も類似する予測ブロック255を提供するイントラ予測モード)又は最小レート歪みに基づき、イントラ予測モードを選択するよう構成されてよい。
【0153】
イントラ予測ユニット254は、イントラ予測パラメータ、例えば選択されたイントラ予測モードに基づき、イントラ予測ブロック255を決定するよう更に構成される。いずれの場合にも、ブロックのイントラ予測モードを選択した後に、イントラ予測ユニット254は、また、イントラ予測パラメータ、つまり、ブロックについて選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット270に提供するよう構成される。一例では、イントラ予測ユニット254は、後述するイントラパーティション技術の任意の組み合わせを実行するよう構成されてよい。
【0154】
エントロピー符号化ユニット270は、エントロピー符号化アルゴリズム又は方式(例えば、可変長符号化(variable length coding, VLC)方式、コンテキスト適応型VLC方式(context adaptive VLC, CALVC)、算術符号化方式、コンテキスト適応型バイナリ算術符号化(context adaptive binary arithmetic coding, CABAC)、シンタックスに基づくコンテキストバイナリ算術符号化(syntax−based context−adaptive binary arithmetic coding, SBAC)、確率区間区分エントロピー(probability interval partitioning entropy, PIPE)符号化又は別のエントロピー符号化方法若しくは技術)を量子化された残差係数209、インター予測パラメータ、イントラ予測パラメータ、及び/又はループフィルタパラメータに、個々に又は一緒に適用して(又は全く適用せず)、出力272により例えば符号化ビットストリーム21の形式で出力され得る符号化されたピクチャデータ21を取得するよう構成される。符号化されたビットストリーム21は、ビデオデコーダ30へと伝送され、又はビデオデコーダ30による後の伝送又は読み出しのためにアーカイブされてよい。エントロピー符号化ユニット270は、符号化中の現在ビデオスライスの他のシンタックス要素をエントロピー符号化するよう更に構成され得る。
【0155】
ビデオエンコーダ20の他の構造的変形は、ビデオストリームを符号化するために使用され得る。例えば、非変換に基づくエンコーダ20は、変換処理ユニット206を有しないで、特定のブロックまたはフレームについて、残差信号を直接量子化できる。別の実装では、エンコーダ20は、単一のユニットに結合された、量子化ユニット208及び逆量子化ユニット210を有し得る。
【0156】
図3は、本願の技術を実施するよう構成される例示的なビデオデコーダ30を示す。ビデオデコーダ30は、復号ピクチャ131を取得するために、例えばエンコーダ100により符号化されたピクチャデータ(例えば、符号化されたビットストリーム)21を受信するよう構成される。復号処理の間、ビデオデコーダ30は、ビデオデータ、例えば符号化されたビデオスライスのピクチャブロック及び関連するシンタックス要素を表す符号化されたビデオストリームを、ビデオエンコーダ100から受信する。
【0157】
図3の例では、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(例えば、加算器314)、バッファ316、ループフィルタ320、復号ピクチャバッファ330、及び予測処理ユニット360を含む。予測処理ユニット360は、インター予測ユニット344、イントラ予測処理ユニット354、及びモード選択ユニット362を含んでよい。ビデオデコーダ30は、幾つかの例では、
図2からビデオエンコーダ100に関して説明した符号化経路に対して通常相互的な復号経路を実行してよい。
【0158】
エントロピー復号ユニット304は、エントロピー復号を、符号化されたピクチャデータ21に対して実行して、例えば量子化された係数309、及び/又は復号された符号化パラメータ(
図3に示されない)、例えばインター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、及び/又は他のシンタックス要素のうちの(復号された)いずれか又は全部を取得するよう構成される。エントロピー復号ユニット304は、インター予測パラメータ、イントラ予測パラメータ、及び/又は他のシンタックス要素を、予測処理ユニット360に転送するよう更に構成される。ビデオデコーダ30は、ビデオスライスレベル及び/又はビデオブロックレベルのシンタックス要素を受信してよい。
【0159】
逆量子化ユニット310は逆量子化ユニット110と機能的に同一であってよく、逆変換処理ユニット312は逆変換処理ユニット112と機能的に同一であってよく、再構成ユニット314は再構成ユニット114と機能的に同一であってよく、バッファ316はバッファ116と機能的に同一であってよく、ループフィルタ320はループフィルタ120と機能的に同一であってよく、復号ピクチャバッファ330は復号ピクチャバッファ130と機能的に同一であってよい。
【0160】
予測処理ユニット360は、インター予測ユニット344及びイントラ予測ユニット354を含んでよい。ここで、インター予測ユニット344はインター予測ユニット144と機能的に似ていてよく、イントラ予測ユニット354はイントラ予測ユニット154と機能的に似ていてよい。予測処理ユニット360は、標準的に、ブロック予測を実行し、及び/又は予測ブロック365を符号化されたデータ21から取得し、及び予測関連パラメータ及び/又は選択された予測モードに関する情報を、例えばエントロピー復号ユニット304から(明示的に又は暗示的に)受信し又は取得するよう構成される。
【0161】
ビデオスライスがイントラ符号化(intra coded, I)スライスとして符号化されるとき、予測処理ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モード及び現在フレームまたはピクチャの前に復号されたブロックからのデータに基づき、現在ビデオスライスのピクチャブロックについて予測ブロックを生成するよう構成される。ビデオフレームがインター符号化(つまり、B又はP)スライスとして符号化されるとき、予測処理ユニット360のインター予測ユニット344(例えば動き補償ユニット)は、動きベクトル及びエントロピー復号ユニット304から受信した他のシンタックス要素に基づき、現在ビデオスライスのビデオブロックについて予測ブロック365を生成するよう構成される。インター予測では、予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成されてよい。ビデオデコーダ30は、DPB330にかくの言うされた参照ピクチャに基づき、参照フレームリスト:リスト0及びリスト1を構成してよい。
【0162】
予測処理ユニット360は、動きベクトル及び他のシンタックス要素をパースすることにより、現在ビデオスライスのビデオブロックについて予測情報を決定し、予測情報を使用して、復号されている現在ビデオブロックについて予測ブロックを生成するよう構成される。例えば、予測処理ユニット360は、受信したシンタックス要素のうちの幾つかを使用して、ビデオスライスのビデオブロックを符号化するために使用される予測モード(例えば、イントラ又はインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスの参照ピクチャリストのうちの1つ以上の構成情報、スライスの各インター符号化されたビデオブロックの動きベクトル、スライスの各インター符号化ビデオブロックのインター予測状態、及び現在ビデオスライス内のビデオブロックを復号するための他の情報を決定する。
【0163】
逆量子化ユニット310は、ビットストリーム内で提供され、エントロピー復号ユニット304により復号された量子化された変換係数を逆量子化、つまり量子化解除するよう構成される。逆量子化処理は、ビデオスライス内の各ビデオブロックに対して、ビデオエンコーダ100により計算された量子化パラメータを使用して、量子化の程度、及び同様に適用されるべき逆量子化の程度を決定することを含んでよい。
【0164】
逆変換処理ユニット312は、ピクセルドメインにおいて残差ブロックを生成するために、逆変換、例えば、逆DCT、逆整数変換、又は概念的に類似する逆変換処理を、変換係数に適用するよう構成される。
【0165】
再構成ユニット314(例えば、加算器314)は、逆変換ブロック313(つまり再構成された残差ブロック313)を予測ブロック365に加算して、例えば再構成された残差ブロック313のサンプル値と予測ブロック365のサンブル値とを加算することにより、サンプルドメイン内の再構成ブロック315を取得するよう構成される。
【0166】
ループフィルタユニット320(符号化ループ内にある又は符号化ループの後にある)は、再構成されたブロック315をフィルタリングして、フィルタリング済みブロック321を取得するよう、例えばピクセル遷移を円滑化するよう或いはビデオ品質を向上するよう構成される。一例では、ループフィルタユニット320は、後述するフィルタリング技術の任意の組み合わせを実行するよう構成されてよい。ループフィルタユニット320は、逆ブロッキングフィルタ、サンプル適応オフセット(sample−adaptive offset, SAO)フィルタ又は他のフィルタ、例えばバイラテラルフィルタ又は適応ループフィルタ(adaptive loop filter, ALF)又は先鋭化若しくは円滑化フィルタ又は共同フィルタのような1つ以上のフィルタを表すことを意図する。ループフィルタユニット320はループフィルタ内にあるとして
図3に示されるが、他の構成では、ループフィルタユニット320は後置きループフィルタとして実装されてよい。
【0167】
所与のフレーム又はピクチャ内の復号ビデオブロック321は、次に、後の動き補償のために使用される参照ピクチャを格納する復号ピクチャバッファ330に格納される。
【0168】
デコーダ30は、ユーザへの提示または閲覧のために、復号ピクチャ331を、例えば出力332を介して出力するよう構成される。
【0169】
ビデオデコーダ30の他の変形は、圧縮ビデオストリームを復号するために使用され得る。例えば、デコーダ30は、ループフィルタ320を有しないで、出力ビデオストリームを生成できる。例えば、非変換に基づくデコーダ30は、変換処理ユニット312を有しないで、特定のブロックまたはフレームについて、残差信号を直接逆量子化できる。別の実装では、デコーダ30は、単一のユニットに結合された、逆量子化ユニット310及び逆変換処理ユニット312を有し得る。
【0170】
図4は、本開示の一実施形態によるビデオ符号化装置400の概略図である。ビデオ符号化装置400は、ここに説明したような開示の実施形態を実施するのに適する。一実施形態では、ビデオ符号化装置400は、
図1Aのビデオデコーダ30のようなデコーダ、又は
図1Aのビデオエンコーダ20のようなエンコーダであってよい。一実施形態では、ビデオ符号化装置400は、上述のような
図1Aのビデオデコーダ30又は
図1Aのビデオエンコーダ20の1つ以上のコンポーネントであってよい。
【0171】
ビデオ符号化装置400は、データを受信するためのイングレスポート410及び受信機ユニット(receiver units, Rx)420と、データを処理するためのプロセッサ、論理ユニット、又は中央処理ユニット(central processing unit, CPU)430と、データを送信するための送信機ユニット(transmitter units, Tx)440及びイグレスポート450と、データを格納するためのメモリ460と、を含む。ビデオ符号化装置400は、イングレスポート410、受信機ユニット420、及び送信機ユニット440に結合された、光若しくは電気信号のイグレス若しくはイングレスのための光−電気(optical−to−electrical, OE)コンポーネント及び電気−光(electrical−to−optical, EO)コンポーネントも含んでよい。
【0172】
プロセッサ430は、ハードウェア及びソフトウェアにより実装される。プロセッサ430は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサ)、FPGA、ASIC、及びDSPとして実装されてよい。プロセッサ430は、イングレスポート410、受信機ユニット420、送信機ユニット440、イグレスポート450、及びメモリ460と通信する。プロセッサ430は、符号化モジュール470を含む。符号化モジュール470は、上述の開示の実施形態を実装する。例えば、符号化モジュール470は、種々の符号化動作を実装し、処理し、準備し、又は提供する。符号化モジュール470の中に含まれるものは、したがって、ビデオ符号化装置400の機能に実質的な改良を提供し、ビデオ符号化装置400の異なる状態への変換をもたらす。代替として、符号化モジュール470は、メモリ460に格納されプロセッサ430により実行される命令として実装される。
【0173】
メモリ460は、1つ以上のディスク、テープドライブ、及び固体ドライブを含み、プログラムが実行のために選択されるとき該プログラムを格納するため及びプログラムの実行中に読み出される命令及びデータを格納するためのオーバフローデータ記憶装置として使用されてよい。メモリ460は、揮発性及び/又は不揮発性であってよく、読み出し専用メモリ(read−only memory, ROM)、ランダムアクセスメモリ(random access memory, RAM)、三値連想メモリ(ternary content−addressable memory, TCAM)、及び/又は静的ランダムアクセスメモリ(static random−access memory, SRAM)であってよい。
【0174】
図5は、例示的な実施形態による
図1からのソース装置310及び宛先装置320の一方又は両方として使用されてよい機器500の簡略ブロック図である。機器500は、上述の本開示の技術を実装できる。機器500は、複数のコンピューティング装置を含むコンピューティングシステムの形式、又は単一コンピューティング装置、例えば移動電話機、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ、等の形式であり得る。
【0175】
機器500内のプロセッサ502は、中央処理ユニットであり得る。代替として、プロセッサ502は、現在存在する又は将来開発される情報を操作し又は処理できる任意の他の種類の装置又は複数の装置であり得る。開示の実装は図示のように単一のプロセッサ、例えばプロセッサ502により実施できるが、速度及び効率における利益は、1つより多くのプロセッサを用いて達成できる。
【0176】
機器500内のメモリ504は、一実装では、読み出し専用メモリ(read only memory, ROM)装置又はランダムアクセスメモリ(random access memory, RAM)装置であり得る。任意の他の適切な種類の記憶装置が、メモリ504として使用できる。メモリ504は、バス512を用いてプロセッサ502によりアクセスされるコード及びデータ506を含み得る。メモリ504は、オペレーティングシステム508及びアプリケーションプログラム510を更に含み得る。アプリケーションプログラム510は、プロセッサ502がここに記載の方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510は、ここに記載の方法を実行するビデオ符号化アプリケーションを更に含むアプリケーション1〜Nを含むことができる。機器500は、例えばモバイルコンピューティング装置と共に使用されるメモリカードであり得る2次記憶514の形式の追加メモリも含み得る。ビデオ通信セッションは有意な量の情報を含み得るので、それらは、全体又は部分的に2次記憶514に格納され、処理のために必要に応じてメモリ504にロードされ得る。
【0177】
機器500は、ディスプレイ518のような1つ以上の出力装置も含み得る。ディスプレイ518は、一例では、タッチ入力を感知するよう動作するタッチ感応要素とディスプレイを結合するタッチ感応ディスプレイであってよい。ディスプレイ518は、バス512を介してプロセッサ502と結合され得る。ユーザが機器500をプログラミングし又は使用することを可能にする他の出力装置は、ディスプレイ518に加えて又はその代替として提供され得る。出力装置がディスプレイである又はそれを含むとき、ディスプレイは、液晶ディスプレイ(liquid crystal display, LCD)、陰極線管(cathode−ray tube, CRT)ディスプレイ、プラズマディスプレイ、又は有機LED(organic LED, OLED)ディスプレイのような発光ダイオード(light emitting diode, LED)ディスプレイを含む種々の方法で実装できる。
【0178】
機器500は、また、画像感知装置520、例えばカメラ、又は機器500を操作しているユーザの画像のような画像を感知できる現存の若しくは将来開発される任意の他の画像感知装置520を含み又はそれと通信できる。画像感知装置520は、機器500を操作するユーザに向けられるように位置決めされ得る。一例では、画像感知装置520の位置及び光軸は、視野がディスプレイ518のすぐ隣にある領域を含み及びそれからディスプレイ518が見えるよう構成され得る。
【0179】
機器500は、また、音声感知装置522、例えばマイクロフォン、又は機器500の近くの音声を感知できる現存の若しくは将来開発される任意の他の音声感知装置を含み又はそれと通信できる。音声感知装置522は、機器500を操作しているユーザに向けられるよう位置決めでき、ユーザが機器500を操作している間にユーザにより生成される音声、例えば会話又は他の発言を受信するよう構成できる。
【0180】
図5は機器500のプロセッサ502及びメモリ504を単一のユニットに統合されているように示すが、他の構成が利用できる。プロセッサ502の動作は、ローカルエリア又は他のネットワークに渡り又は直接結合され得る複数の機械(各機械は1つ以上のプロセッサを有する)に渡り分散できる。メモリ504は、ネットワークに基づくメモリ又は機器500の動作を実行する複数の機械の中のメモリのように、複数の機械に渡り分散できる。ここでは単一のバスとして示されるが機器500のバス512は複数のバスで構成できる。更に、2次記憶514は、機器500の他のコンポーネントに直接結合でき、又はネットワークを介してアクセスでき、メモリカードのような単一の統合ユニット又は複数のメモリカードのような複数のユニットを含むことができる。機器500は、したがって、様々な構成で実装できる。
【0181】
H.265/HEVC又はH.266/VCCのようなビデオ符号化は、ハイブリッド予測及び変換フレームワークに基づく。符号化木ユニット(Coding Tree Unit, CTU)は1つ以上の符号化ユニット(coding unit, CU)に分割される。CUは1個のルマブロックと2個のクロマブロックとを含んでよく(例えば、YUV4:2:0又はYUV4:4:4形式)、又はCUは1個のルマブロックのみ含んでよく、又はCUは2個のクロマブロックのみを含んでよい。CUは、予測ユニット(prediction unit, PU)及び変換ユニット(transform unit, TU)に対応してよく、又は予測ユニットと複数の変換ユニットに対応してよい。予測ユニットは、予測サンプルの予測ブロックを含み、変換ユニットは残差サンプルの変換ブロックを含む。CUの再構成サンプルは、予測サンプルを対応する残差サンプルと加算することにより得られる。
【0182】
エンコーダで、CUの予測情報(例えば、予測モード及び動きベクトル情報)及び残差情報(例えば、変換モード、変換係数、及び量子化パラメータ)は、レート歪み最適化により決定され、次にビットストリームへと符号化される。デコーダで、予測情報及び残差情報がパースされる。予測情報に従い、イントラ又はインター予測が行われて、予測ユニットの予測サンプルを生成する。残差情報に従い、逆量子化及び逆変換が行われて、変換ユニットの残差サンプルを生成する。予測サンプル及び残差サンプルは加算されて、符号化ユニットの再構成サンプルを得る。
【0183】
基本変換モードは、CUの残差が1個のTUに変換されることである。つまり、CUサイズはTUサイズと等しい。HEVCにおける残差4分木(Residual Quad−Tree, RQT)では、CUサイズは等しいサイズの4個のTUに分割されてよく、各TUが残差を有するか否かの情報は、各TUの符号化ブロックフラグ(coded block flags, cbf)によりシグナリングされる。CUが残差を有するか否かの情報は、CUのルートcbfによりシグナリングされる(例えば、HEVCにおけるrqt_root_cbfシンタックス要素)。
【0184】
VTMにおける適応型複数コア変換(Adaptive Multiple core Transform, AMT)は、変換タイプのセットの中の1つの変換タイプを用いて1つの変換ブロックを可能にする。変換タイプは、ビットストリームの中でシグナリングされ、変換タイプは、変換ブロックの水平変換(又は行変換)及び垂直変換(又は列変換)を指定する。水平/垂直変換について可能なコア変換は、離散サイン変換(Discrete Sine Transform, DST)及び離散コサイン変換(Discrete Cosine Transform, DCT)、例えばDST−7(DSTタイプ7)、DST−1、DCT−8、DCT−2、及びDCT−5を含む。
代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、水平/垂直変換について可能なコア変換は、離散サイン変換(Discrete Sine Transform, DST)及び離散コサイン変換(Discrete Cosine Transform, DCT)、例えばDST−4(DSTタイプ4)、DST−1、DCT−4、DCT−2、及びDCT−5を含む。
【0185】
変換符号化効率を向上するために、CUの新しい変換モードが本発明において導入される。新しい変換モードの各々について、CUはN(N=2、3、又は4)個のTUにタイリングされ、CUの1個のTUのみが残差を有し、CUの残りのN−1個のTUは残差を有しないと推定される。更に、残差を有するTUの変換タイプ(つまり水平及び垂直変換)は、変換モードにより指定される。言い換えると、新しい変換モードの各々は、TUパーティション、残差を有する1個のみのTU、残差を有すrTUの変換タイプを指定する。
【0186】
本開示の一実施形態は、符号化ユニットを復号する処理を記載する。ビデオデータの少なくとも1つのピクチャを含むビットストリームが復号される。ピクチャは、複数の長方形画像領域に分けられ、各領域は符号化木ユニット(Coding Tree Unit, CTU)に対応する。CTUは、ビットストリームに含まれるブロックパーティション情報に従い、複数の符号化ユニットに分けられる。符号化ユニットの符号化情報は、ビットストリームからパースされ、符号化ユニットのピクセルは符号化情報に基づき再構成される。符号化情報は予測情報及び変換情報を含む。
【0187】
予測情報は、CUの予測モード(つまり、インター予測又はイントラ予測)を示す。予測モードがイントラ予測である場合、予測情報は、HEVC及びVCCにおける平面モード、DCモード、及び方向性モードのような、イントラ予測モードを更に含んでよい。予測モードがインター予測である場合、予測情報は、スキップモードまたはマージモードまたは高度動きベクトル予測(advanced motion vector prediction, AMVP)モード、マージ候補インデックス、インター予測方向、参照フレームインデックス、動きベクトル、アフィンモデルに基づく予測を使用するか否か、等を更に含んでよい。
【0188】
変換情報は、CUの変換モード、及びCU内の1つ以上のTUに関連付けられた変換係数を示す。CUの残差がCUと同じサイズのTU内に変換される従来の変換モードと別に、本実施形態は、新しい変換モードも利用する。新しい変換モードの各々について、CUはN(N=2、3、又は4)個のTUにタイリングされ、1個のTUのみが残差を有し、残りのN−1個のTUは残差を有しないと推定される。更に、残差を有するTUの変換タイプ(つまり水平及び垂直変換)は、変換モードにより指定される。
【0189】
一例では、新しい変換モードは、
図6に示されるような以下の4つのモード:Q0、Q1、Q2、及びQ3を含む。4つのモードの各々について、サイズW×HのCUは、サイズ(W/2)×(H/2)の4個のTU、つまり、左上のTU0、右上のTU1、左下のTU2、及び右下のTU3に分割される。TU0、TU1、TU2、及びTU3のうちの1個のみが残差を有する。
1)変換モードQ0:TU0は残差を有し、TU0の水平変換及び垂直変換は、それぞれDCT−8及びDCT−8である。
2)変換モードQ1:TU1は残差を有し、TU1の水平変換及び垂直変換は、それぞれDST−7及びDCT−8である。
3)変換モードQ2:TU2は残差を有し、TU2の水平変換及び垂直変換は、それぞれDCT−8及びDST−7である。
4)変換モードQ3:TU3は残差を有し、TU3の水平変換及び垂直変換は、それぞれDST−7及びDST−7である。
代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、別の例では、新しい変換モードは、
図6に示されるような以下の4つのモード:Q0、Q1、Q2、及びQ3を含む。4つのモードの各々について、サイズW×HのCUは、サイズ(W/2)×(H/2)の4個のTU、つまり、左上のTU0、右上のTU1、左下のTU2、及び右下のTU3に分割される。TU0、TU1、TU2、及びTU3のうちの1個のみが残差を有する。
1)変換モードQ0:TU0は残差を有し、TU0の水平変換及び垂直変換は、それぞれDCT−4及びDCT−4である。
2)変換モードQ1:TU1は残差を有し、TU1の水平変換及び垂直変換は、それぞれDST−4及びDCT−4である。
3)変換モードQ2:TU2は残差を有し、TU2の水平変換及び垂直変換は、それぞれDCT−4及びDST−4である。
4)変換モードQ3:TU3は残差を有し、TU3の水平変換及び垂直変換は、それぞれDST−4及びDST−4である。
【0190】
残差を有するTUについて、3つの成分、つまりCb、Cr、及びY成分の符号化ブロックフラグ(coded block flags, cbf)は、ビットストリームからパースされてよく、3つの成分のうちの少なくとも1つのcbfの値は1である。残差を有しない残りのTUの各々について、全ての色成分のcbfは0であると推定される。つまり、cbfはビットストリームからパースされない。
【0191】
別の例では、新しい変換モードは、
図7に示されるような以下の4つのモード:HQ0、HQ1、VQ0、及びVQ1を含む。4つのモードの各々について、サイズW×HのCUは等しくないサイズの2個のTUに分割され、より小さいサイズのTUのみが残差を有する。
1)変換モードHQ0:CUは、水平分割により2個のTU、つまりサイズW×(H/4)のTU0及びサイズW×(3H/4)のTU1に分割され、上のTU0は残差を有し、TU0の水平変換は予め定められたコア変換、例えばDST−7又はDCT−2であり、TU0の垂直変換はDCT−8である。
2)変換モードHQ1:CUは、水平分割により2個のTU、つまりサイズW×(3H/4)のTU0及びサイズW×(H/4)のTU1に分割され、下のTU1は残差を有し、TU1の水平変換は予め定められたコア変換、例えばDST−7又はDCT−2であり、TU1の垂直変換はDST−7である。
3)変換モードVQ0:CUは、垂直分割により2個のTU、つまりサイズ(W/4)×HのTU0及びサイズ(3W/4)×HのTU1に分割され、左のTU0は残差を有し、TU0の水平変換はDCT−8であり、TU0の垂直変換は予め定められたコア変換、例えばDST−7又はDCT−2である。
4)変換モードVQ1:CUは、垂直分割により2個のTU、つまりサイズ(3W/4)×HのTU0及びサイズ(W/4)×HのTU1に分割され、右のTU1は残差を有し、TU1の水平変換はDST−7であり、TU1の垂直変換は予め定められたコア変換、例えばDST−7又はDCT−2である。
代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、別の例では、新しい変換モードは、
図7に示されるような以下の4つのモード:HQ0、HQ1、VQ0、及びVQ1を含む。4つのモードの各々について、サイズW×HのCUは等しくないサイズの2個のTUに分割され、より小さいサイズのTUのみが残差を有する。
1)変換モードHQ0:CUは、水平分割により2個のTU、つまりサイズW×(H/4)のTU0及びサイズW×(3H/4)のTU1に分割され、上のTU0は残差を有し、TU0の水平変換は予め定められたコア変換、例えばDST−4又はDCT−2であり、TU0の垂直変換はDCT−4である。一例として、TU0の水平変換は、常にDST−4である、又は常にDCT−2である。別の例として、TU0の水平変換は、TU0の幅が閾MaxMtsSize(例えば、MaxMtsSize=32)より大きい場合にDCT−2であり、TU0の水平変換は、TU0の幅が閾MaxMtsSize以下である場合にDST−4である。
2)変換モードHQ1:CUは、水平分割により2個のTU、つまりサイズW×(3H/4)のTU0及びサイズW×(H/4)のTU1に分割され、下のTU1は残差を有し、TU1の水平変換は予め定められたコア変換、例えばDST−4又はDCT−2であり、TU1の垂直変換はDST−4である。
3)変換モードVQ0:CUは、垂直分割により2個のTU、つまりサイズ(W/4)×HのTU0及びサイズ(3W/4)×HのTU1に分割され、左のTU0は残差を有し、TU0の水平変換はDCT−4であり、TU0の垂直変換は予め定められたコア変換、例えばDST−4又はDCT−2である。一例として、TU0の垂直変換は、常にDST−4である、又は常にDCT−2である。別の例として、TU0の垂直変換は、TU0の高さが閾MaxMtsSizeより大きい場合にDCT−2であり、TU0の垂直変換は、TU0の高さが閾MaxMtsSize以下である場合にDST−4である。
4)変換モードVQ1:CUは、垂直分割により2個のTU、つまりサイズ(3W/4)×HのTU0及びサイズ(W/4)×HのTU1に分割され、右のTU1は残差を有し、TU1の水平変換はDST−4であり、TU1の垂直変換は予め定められたコア変換、例えばDST−4又はDCT−2である。
【0192】
一例では、新しい変換モードは、
図8に示されるような以下の4つのモード:HH0、HH1、VH0、及びVH1を含む。4つのモードの各々について、サイズW×HのCUは等しいサイズの2個のTUに分割され、1個のTUのみが残差を有する。
1)変換モードHH0:CUは、水平分割により2個のTU、つまりサイズW×(H/2)のTU0及びサイズW×(H/2)のTU1に分割され、上のTU0は残差を有し、TU0の水平変換は予め定められたコア変換、例えばDST−7又はDCT−2であり、TU0の垂直変換はDCT−8である。
2)変換モードHH1:CUは、水平分割により2個のTU、つまりサイズW×(H/2)のTU0及びサイズW×(H/2)のTU1に分割され、下のTU1は残差を有し、TU1の水平変換は予め定められたコア変換、例えばDST−7又はDCT−2であり、TU1の垂直変換はDST−7である。
3)変換モードVH0:CUは、垂直分割により2個のTU、つまりサイズ(W/2)×HのTU0及びサイズ(W/2)×HのTU1に分割され、左のTU0は残差を有し、TU0の水平変換はDCT−8であり、TU0の垂直変換は予め定められたコア変換、例えばDST−7又はDCT−2である。
4)変換モードVH1:CUは、垂直分割により2個のTU、つまりサイズ(W/2)×HのTU0及びサイズ(W/2)×HのTU1に分割され、右のTU1は残差を有し、TU1の水平変換はDST−7であり、TU1の垂直変換は予め定められたコア変換、例えばDST−7又はDCT−2である。
代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、一例では、新しい変換モードは、
図8に示されるような以下の4つのモード:HH0、HH1、VH0、及びVH1を含む。4個のCUの各々について、サイズW×HのCUは等しいサイズの2個のTUに分割され、1個のTUのみが残差を有する。
1)変換モードHH0:CUは、水平分割により2個のTU、つまりサイズW×(H/2)のTU0及びサイズW×(H/2)のTU1に分割され、上のTU0は残差を有し、TU0の水平変換は予め定められたコア変換、例えばDST−4又はDCT−2であり、TU0の垂直変換はDCT−4である。一例として、TU0の水平変換は、常にDST−4である、又は常にDCT−2である。別の例として、TU0の水平変換は、TU0の幅が閾MaxMtsSize(例えば、MaxMtsSize=32)より大きい場合にDCT−2であり、TU0の水平変換は、TU0の幅が閾MaxMtsSize以下である場合にDST−4である。
2)変換モードHH1:CUは、水平分割により2個のTU、つまりサイズW×(H/2)のTU0及びサイズW×(H/2)のTU1に分割され、下のTU1は残差を有し、TU1の水平変換は予め定められたコア変換、例えばDST−4又はDCT−2であり、TU1の垂直変換はDST−4である。
3)変換モードVH0:CUは、垂直分割により2個のTU、つまりサイズ(W/2)×HのTU0及びサイズ(W/2)×HのTU1に分割され、左のTU0は残差を有し、TU0の水平変換はDCT−4であり、TU0の垂直変換は予め定められたコア変換、例えばDST−4又はDCT−2である。一例として、TU0の垂直変換は、常にDST−4である、又は常にDCT−2である。別の例として、TU0の垂直変換は、TU0の高さが閾MaxMtsSizeより大きい場合にDCT−2であり、TU0の垂直変換は、TU0の高さが閾MaxMtsSize以下である場合にDST−4である。
4)変換モードVH1:CUは、垂直分割により2個のTU、つまりサイズ(W/2)×HのTU0及びサイズ(W/2)×HのTU1に分割され、右のTU1は残差を有し、TU1の水平変換はDST−4であり、TU1の垂直変換は予め定められたコア変換、例えばDST−4又はDCT−2である。
【0193】
別の例では、新しい変換モードは、
図9に示されるような以下の2つのモード:HH2及びVH2を含む。2個のモードの各々について、サイズW×HのCUは3個のTUに分割され、CUの半分のサイズのTUのみが残差を有する。
1)変換モードHH2:CUは水平方向に3個のTU、つまりサイズW×(H/4)のTU0、サイズW×(H/2)のTU1、サイズW×(H/4)のTU2に分割され、中央のTU1は残差を有し、TU0の水平変換及び垂直変換はそれぞれDST−7及びDCT−2(又はDST−7及びDST−1)である。
2)変換モードVH2:CUは垂直方向に3個のTU、つまりサイズ(W/4)×HのTU0、サイズ(W/2)×HのTU1、サイズ(W/4)×HのTU2に分割され、中央のTU1は残差を有し、TU1の水平変換及び垂直変換はそれぞれDCT−2及びDST−7(又はDST−1及びDST−7)である。
代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、別の例では、新しい変換モードは、
図9に示されるような以下の2つのモード:HH2及びVH2を含む。2個のモードの各々について、サイズW×HのCUは3個のTUに分割され、CUの半分のサイズのTUのみが残差を有する。
1)変換モードHH2:CUは水平方向に3個のTU、つまりサイズW×(H/4)のTU0、サイズW×(H/2)のTU1、サイズW×(H/4)のTU2に分割され、中央のTU1は残差を有し、TU0の水平変換及び垂直変換はそれぞれDST−4及びDCT−2(又はDST−4及びDST−1)である。
2)変換モードVH2:CUは垂直方向に3個のTU、つまりサイズ(W/4)×HのTU0、サイズ(W/2)×HのTU1、サイズ(W/4)×HのTU2に分割され、中央のTU1は残差を有し、TU1の水平変換及び垂直変換はそれぞれDCT−2及びDST−4(又はDST−1及びDST−4)である。
【0194】
別の例では、新しい変換モードは、
図10に示されるような以下の4つのモード:QH0、QH1、QH2、及びQH3を含む。4つのモードの各々について、サイズW×HのCUは、2個はサイズ(W/2)×(H/2)であり及び他の1個はサイズW×(H/2)である3個のTU、つまりUT0、TU1、及びTU2に分割される。サイズ(W/2)×(H/2)のTUのうちの1個のみが残差を有する。
1)変換モードQH0:左上のTU0は残差を有し、TU0の水平変換及び垂直変換は、それぞれDCT−8及びDCT−8である。
2)変換モードQH1:右上のTU1は残差を有し、TU1の水平変換及び垂直変換は、それぞれDST−7及びDCT−8である。
3)変換モードQH2:左下のTU1は残差を有し、TU1の水平変換及び垂直変換は、それぞれDCT−8及びDST−7である。
4)変換モードQH3:右下のTU2は残差を有し、TU2の水平変換及び垂直変換は、それぞれDST−7及びDST−7である。
代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、別の例では、新しい変換モードは、
図10に示されるような以下の4つのモード:QH0、QH1、QH2、及びQH3を含む。4つのモードの各々について、サイズW×HのCUは、2個はサイズ(W/2)×(H/2)であり及び他の1個はサイズW×(H/2)である3個のTU、つまりUT0、TU1、及びTU2に分割される。サイズ(W/2)×(H/2)のTUのうちの1個のみが残差を有する。
1)変換モードQH0:左上のTU0は残差を有し、TU0の水平変換及び垂直変換は、それぞれDCT−4及びDCT−4である。
2)変換モードQH1:右上のTU1は残差を有し、TU1の水平変換及び垂直変換は、それぞれDST−4及びDCT−4である。
3)変換モードQH2:左下のTU1は残差を有し、TU1の水平変換及び垂直変換は、それぞれDCT−4及びDST−4である。
4)変換モードQH3:右下のTU2は残差を有し、TU2の水平変換及び垂直変換は、それぞれDST−4及びDST−4である。
【0195】
一例では、新しい変換モードは、
図11に示されるような以下の4つのモード:QV0、QV1、QV2、及びQV3を含む。4つのモードの各々について、サイズW×HのCUは、2個はサイズ(W/2)×(H/2)であり及び他の1個はサイズ(W/2)×Hである3個のTU、つまりUT0、TU1、及びTU2に分割される。サイズ(W/2)×(H/2)のTUのうちの1個のみが残差を有する。
1)変換モードQV0:左上のTU0は残差を有し、TU0の水平変換及び垂直変換は、それぞれDCT−8及びDCT−8である。
2)変換モードQV1:右上のTU1は残差を有し、TU1の水平変換及び垂直変換は、それぞれDST−7及びDCT−8である。
3)変換モードQV2:左下のTU1は残差を有し、TU1の水平変換及び垂直変換は、それぞれDCT−8及びDST−7である。
4)変換モードQV3:右下のTU2は残差を有し、TU2の水平変換及び垂直変換は、それぞれDST−7及びDST−7である。
代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、一例では、新しい変換モードは、
図11に示されるような以下の4つのモード:QV0、QV1、QV2、及びQV3を含む。4つのモードの各々について、サイズW×HのCUは、2個はサイズ(W/2)×(H/2)であり及び他の1個はサイズ(W/2)×Hである3個のTU、つまりUT0、TU1、及びTU2に分割される。サイズ(W/2)×(H/2)のTUのうちの1個のみが残差を有する。
1)変換モードQV0:左上のTU0は残差を有し、TU0の水平変換及び垂直変換は、それぞれDCT−4及びDCT−4である。
2)変換モードQV1:右上のTU1は残差を有し、TU1の水平変換及び垂直変換は、それぞれDST−4及びDCT−4である。
3)変換モードQV2:左下のTU1は残差を有し、TU1の水平変換及び垂直変換は、それぞれDCT−4及びDST−4である。
4)変換モードQV3:右下のTU2は残差を有し、TU2の水平変換及び垂直変換は、それぞれDST−4及びDST−4である。
【0196】
一例では、CUについて許可された新しい変換モードは、上述のモードの中の6個のモード:HH0、HH1、HH2、VH0、VH1、及びVH2を含む。6個の変換モードが特定のスライスについて許可されるか否かをシグナリングするために、スライスレベルフラグが使用されてよい。CUについて新しい変換モードが許可される場合、CUを復号するとき、CUの残差TUの目標変換モードがCUについて許可された新しい変換モードの中で取得できることを意味する。CUについて許可された新しい変換モードは、上述の22個の変換モードのサブセットであってよく、したがって、復号効率を向上するために目標変換モードの候補変換モードを削減し、及び符号化されたビデオデータを伝送するために必要な帯域幅を節約するために、目標変換モードを示すインデックス/複数のインデックスを伝送するために必要なビットを削減できる。留意すべきことに、CUについて許可された新しい変換モードは、所定であり/予め定められ、又はリアルタイムに決定されてよく、CUについて許可された新しい変換モードが所定であり/予め定められ/決定されるとき、デコーダは、どの新しい変換モードがCUの残差TUのための候補変換モードであるかを知るだろう。
【0197】
一例では、CUについて許可された新しい変換モードは、上述のモードの中の8個のモード:Q0、Q1、Q2、Q3、HQ0、HQ1、VQ0、及びVQ1を含む。
【0198】
一例では、CUについて許可された新しい変換モードは、上述のモードの中の8個のモード:QH0、QH1、QH2、QH3、HQ0、HQ1、VQ0、及びVQ1を含む。
【0199】
一例では、CUについて許可された新しい変換モードは、上述のモードの中の8個のモード:QV0、QV1、QV2、QV3、HQ0、HQ1、VQ0、及びVQ1を含む。
【0200】
一例では、CUについて許可された新しい変換モードは、上述の変換モードの中の8個のモード:HH0、HH1、VH0、VH1、HQ0、HQ1、VQ0、及びVQ1を含む。
【0201】
一例では、CUについて許可された新しい変換モードは、上述のモードの中の12個のモード:Q0、Q1、Q2、Q3、HQ0、HQ1、VQ0、VQ1、HH0、HH1、VH0、及びVH1を含む。
【0202】
一例では、CUについて許可された新しい変換モードは、上述のモードの中の14個のモード:Q0、Q1、Q2、Q3、HQ0、HQ1、VQ0、VQ1、HH0、HH1、HH2、VH0、VH1、及びVH2を含む。
【0203】
一例では、CUについて許可された新しい変換モードは、上述のモードの中の14個のモード:QH0、QH1、QH2、QH3、HQ0、HQ1、VQ0、VQ1、HH0、HH1、HH2、VH0、VH1、及びVH2を含む。
【0204】
一例では、スライス内の複数のCUについて許可された新しい変換モードは、シーケンスパラメータセット(sequence parameter set, SPS)又はスライスのスライスヘッダの中でシグナリングされる。モードHH0、HH1、HH2、VH0、VH1、及びVH2は第1グループとしてグループ化される。モードQ0、Q1、Q2、Q3、HQ0、HQ1、VQ0、及びVQ1は第2グループとしてグループ化される。各グループの有効化は、1つのフラグによりシグナリングされる。つまり、第1フラグは、第1モードグループが許可されるか否かを示すためにシグナリングされ、第2フラグは、第2モードグループが許可されるか否かを示すためにシグナリングされる。
【0205】
一例では、スライス内の複数のCUについて許可された新しい変換モードは、シーケンスパラメータセット又はスライスのスライスヘッダの中でシグナリングされる。モードHH0、HH1、VH0、及びVH1は第1グループとしてグループ化される。モードQ0、Q1、Q2、及びQ3は第2グループとしてグループ化される。モードHQ0、HQ1、VQ0、及びVQ1は第3グループとしてグループ化される。1つのインデックスは3つのグループのどれが許可されるかを示すためにシグナリングされる。インデックス値0は3個全部のグループが許可されないことを示し、インデックス値1は第1グループのみが許可されることを示し、インデックス値2は第2グループが許可されることを示し、インデックス値3は第3グループが許可されることを示し、インデックス値4は第2及び第3グループが許可されることを示し、インデックス値5は3個全部のグループが許可されることを示す。
【0206】
新しい変換モードは、全てのCUに適用され、又はCUの予測情報に従いCUに適用されてよい。一例では、新しい変換モードは、イントラ予測されたCUにのみ適用される。別の例では、新しい変換モードは、インター予測されたCUにのみ適用される。別の例では、新しい変換モードは、特定のインター予測方法(例えば、並進移動モデルに基づく動き補償)を用いるCUに許可されてよいが、他のインター予測方法(例えば、アフィンモデルに基づく動き補償)を用いるCUには許可されない。別の例では、新しい変換モードは、マージモードにより又は1/4ペル動きベクトル差精度を有する高度動きベクトル予測(advanced motion vector prediction, AMVP)モードにより予測されたCUについて許可されるが、アフィンマージモード、アフィンインターモード、又は1ペル若しくは4ペル動きベクトル差精度を有するAMVPモードを用いるCUについては許可されなくてよい。別の例では、新しい変換モードは、2より小さいマージインデックスを有するマージモードを用いるCDUについて許可されるが、2より小さくないマージインデックスを有するマージモードを用いるCUについて許可されなくてよい。マージモード及びAMVPモードは、H.265/HEVC標準において参照され得る。アフィンマージモード及びアフィンインターモードは、共同ビデオ探索チーム(Joint Video Exploration Team, JVET)による共同探索モデル(Joint Exploration Model, JEM)コーデックにおいて参照され得る。
【0207】
新しい変換モードは、CUのサイズに従い許可されてよい。一例では、変換モードのうちの1つによりタイリングされたCUが、閾(例えば、4又は8又は16個のルマピクセル等)より小さい1辺を有するTUをもたらす場合、変換モードはCUについて許可されない。一例では、変換モードのうちの1つによりタイリングされたCUが、閾(例えば、32又は64又は128個のルマピクセル等)より大きい1辺を有するTUをもたらす場合、変換モードはCUについて許可されない。一例では、閾(例えば、32又は64個のルマピクセル)より大きい1辺(つまり幅又は高さ)を有するCUは、新しい変換モードを使用することを許可されない。
【0208】
図12は、本開示の一実施形態の復号方法を示し、以下を含む。
【0209】
1201。受信したビットストリームをパースして、CUの予測情報を取得する。
【0210】
これは、H.265/HEVC又はH.266/VCCにおける符号化ユニット及び予測ユニットシンタックス構造をパースするようなビデオ復号において一般的に使用される処理である。
【0211】
1202。CUが1個のみの残差変換ユニット(transform unit, TU)を有し、残差TUのサイズがCUのサイズより小さいとき、残差TUの目標変換モードを取得する。ここで、目標変換モードは、CUのTUパーティションモード、残差TUの位置(例えば、CUの全部のTUの中の残差TUのインデックスにより示される、又は残差TUの左上角の座標及び残差TUの幅と高さにより示される)、及び残差TUの変換タイプを指定する。
【0212】
目標変換モードは、上述のモード:Q0、Q1、Q2、Q3、HQ0、HQ1、VQ0、VQ1、HH0、HH1、VH0、VH1、HH2、VH2、QH0、QH1、QH2、QH3、QV0、QV1、QV2、及びQV3のうちのいずれか1つである。
【0213】
幾つかの実装方法では、復号効率を向上するために、Cu内の変換ユニット情報の存在が最初にチェックされる。変換ユニット情報が存在することは、ルートcbfシンタックス要素により示されてよい。0に等しいルートcbfは、CUの変換ユニット情報がビットストリーム内に存在しない(つまり、CUが残差を有しない)ことを示し、一方で、1に等しいルートcbfは、ビットストリーム内にCUの変換ユニット情報が存在することを示す。インター予測されたCUでは、1に等しいルートcbfは、CUが残差を有することを意味する。ステップ1102は、CUが変換ユニット情報を有するとき、実行される。CUが変換ユニット情報を有しないとき、CUの残差はゼロとして設定され、ステップ1105を直接実行する。
【0214】
1203。受信したビットストリームをパースして、残差TUの変換係数を取得する。
【0215】
これは、ビデオ復号において一般的に使用される処理である。
【0216】
1204。残差TUの変換係数に逆量子化を適用して、逆量子化された係数を取得する。
【0217】
これは、ビデオ復号において一般的に使用される処理である。
【0218】
1205。目標変換モードに基づき、逆量子化された係数に逆変換を適用して、残差TUの残差ブロックを取得する。
【0219】
これは、ビデオ復号において一般的に使用される処理である。残差TUに加えて、CUの他のTUの残差はゼロとして設定される。
【0220】
1206。予測情報に基づき、CUの予測ブロックを取得する。
【0221】
これは、HEVC及びVVCにおけるイントラ予測及びインター予測のようなビデオ復号において一般的に使用される処理である。
【0222】
1207。残差ブロック及び予測ブロックに基づき、ビデオブロックを取得する。
【0223】
これは、ビデオ復号において一般的に使用される処理である。一実装方法では、ビデオブロックは、CUの予測にCUの残差を加算することにより取得される。
【0224】
1208。ビデオシーケンスを出力する。ビデオシーケンスは、ビデオブロックを含むビデオフレームを含む。
【0225】
これは、ビデオ復号において一般的に使用される処理である。
【0226】
一実装方法では、残差TUの目標変換モードを取得するステップは、ビットストリームをパースして、残差TUの目標変換モードを示すモードインデックスを取得するステップと、モードインデックスに基づき、残差TUの目標変換モードを取得するステップと、を含む。例えば、上述の22個の目標変換モードの中の8個のモードがスライス内で使用されることを許可される場合、モードインデックスは、M個のビン(例えば、M=3、4、又は5)を有するモードインデックスにより示されてよい。つまり、モードインデックスは、コンテキストに基づく適応型バイナリ算術的符号化(Context−based Adaptive Binary Arithmetic Coding, CABAC)処理におけるM個のビンに2値化され(ここで、Mは異なる2値化方式で異なってよい)、又はモードインデックスはM個のフラグにより表現されてよい。
【0227】
モードインデックスのビット割り当てを削減するために、第別の実装方法では、ビットストリームをパースして、残差TUの目標変換モードを示すモードインデックスを取得するステップの前に、方法は、
前CUのサイズに基づき、残差TUの候補目標変換モードを決定するステップを更に含み、
ビットストリームをパースして、残差TUの目標変換モードを示すモードインデックスを取得するステップは、
残差TUの候補目標変換モードに基づき、ビットストリームをパースして、残差TUの目標変換モードを示すモードインデックスを取得するステップを含む。したがって、CUのサイズに依存して、候補目標変換モードの数は8より少なくてよく、したがって、モードフラグのj1つ以上のビンが節約され得る。
【0228】
候補目標変換モードは、CUサイズに基づいてよい。例えば。CUの幅が[Th1×2,Th3]の範囲にあり、CUの高さが[Th1×2,Th3]の範囲にあるとき、候補目標変換モードは、変換モードQ0、変換モードQ1、変換モードQ2、及び変換モードQ3を含んでよい。
【0229】
例えば、CUの幅が[Th1×4,Th3]の範囲にあり、CUの高さが[Th1,Th2]の範囲にあるとき、候補目標変換モードは、変換モードVQ0、変換モードVQ1、及び変換モードVH2を含んでよい。
【0230】
例えば、CUの幅が[Th1×2,Th2]の範囲にあり、CUの高さが[Th1,Th2]の範囲にあるとき、候補目標変換モードは、変換モードVH0及び変換モードVH1を含んでよい。
【0231】
例えば、CUの高さが[Th1×4,Th3]の範囲にあり、CUの幅が[Th1,Th2]の範囲にあるとき、候補目標変換モードは、変換モードHQ0、変換モードHQ1、及び変換モードHH2を含んでよい。
【0232】
例えば、CUの高さが[Th1×2,Th2]の範囲にあり、CUの幅が[Th1,Th2]の範囲にあるとき、候補目標変換モードは、変換モードHH0及び変換モードHH1を含んでよい。
【0233】
例えば、CUの幅が[Th1×2,Th2]の範囲にあり、CUの高さが[Th1×2,Th2]の範囲にあるとき、候補目標変換モードは、変換モードQ0、変換モードQ1、変換モードQ2、及び変換モードQ3を含んでよい。
【0234】
例えば、CUの幅が[Th1×4,Th2]の範囲にあり、CUの高さが[Th1,Th2]の範囲にあるとき、候補目標変換モードは、変換モードVQ0、変換モードVQ1、及び変換モードVH2を含んでよい。
【0235】
例えば、CUの幅が[Th1×2,Th2]の範囲にあり、CUの高さが[Th1,Th2]の範囲にあるとき、候補目標変換モードは、変換モードVH0及び変換モードVH1を含んでよい。
【0236】
例えば、CUの高さが[Th1×4,Th2]の範囲にあり、CUの幅が[Th1,Th2]の範囲にあるとき、候補目標変換モードは、変換モードHQ0、変換モードHQ1、及び変換モードHH2を含んでよい。或いは、
【0237】
例えば、CUの高さが[Th1×2,Th2]の範囲にあり、CUの幅が[Th1,Th2]の範囲にあるとき、候補目標変換モードは、変換モードHH0及び変換モードHH1を含んでよい。
【0238】
Th1、Th2、及びTh3は予め定められた整数値である。例えば、Th1は4、8、又は16であり、Th2は32、64、又は128であり、Th3は64、128、又は256である。
【0239】
別の実装方法では、目標変換モードを示すためのビット割り当てを削減するために、上述の22個のモードはモードグループにグループ化される。例えば、モードグループは、以下のように少なくとも1個のモードグループを含んでよい:
モードグループは、変換モードHH0、変換モードHH1、変換モードHH2、変換モードVH0、変換モードVH1、及び変換モードVH2を含む;
モードグループは、変換モードQ0、変換モードQ1、変換モードQ2、変換モードQ3、変換モードHQ0、変換モードHQ1、変換モードVQ0、及び変換モードVQ1を含む;
モードグループは、変換モードHH0、HH1、HH2、VH0、VH1、及びVH2を含む;
モードグループは、変換モードQ0、変換モードQ1、変換モードQ2、変換モードQ3、変換モードHQ0、変換モードHQ1、変換モードVQ0、及び変換モードVQ1を含む;
モードグループは、変換モードQH0、変換モードQH1、変換モードQH2、変換モードQH3、変換モードHQ0、変換モードHQ1、変換モードVQ0、及び変換モードVQ1を含む;
モードグループは、変換モードQV0、変換モードQV1、変換モードQV2、変換モードQV3、変換モードHQ0、変換モードHQ1、変換モードVQ0、及び変換モードVQ1を含む;
モードグループは、変換モードQ0、変換モードQ1、変換モードQ2、変換モードQ3、変換モードHQ0、変換モードHQ1、変換モードVQ0、変換モードVQ1、変換モードHH0、変換モードHH1、変換モードVH0、及び変換モードVH1を含む;
モードグループは、変換モードQ0、変換モードQ1、変換モードQ2、変換モードQ3、変換モードHQ0、変換モードHQ1、変換モードVQ0、変換モードVQ1、変換モードHH0、変換モードHH1、変換モードHH2、変換モードVH0、変換モードVH1、及び変換モードVH2を含む;
モードグループは、変換モードQH0、変換モードQH1、変換モードQH2、変換モードQH3、変換モードHQ0、変換モードHQ1、変換モードVQ0、変換モードVQ1、変換モードHH0、変換モードHH1、変換モードHH2、変換モードVH0、変換モードVH1、及び変換モードVH2を含む;
むモードグループは、変換モードHH0、変換モードHH1、変換モードVH0、及び変換モードVH1を含;
モードグループは、変換モードQ0、変換モードQ1、変換モードQ2、及び変換モードQ3を含む;又は、
モードグループは、変換モードHQ0、変換モードHQ1、変換モードVQ0、及び変換モードVQ1を含む。
【0240】
ここで、残差TUの目標変換モードを取得するステップは、
ビットストリームをパースして、目標変換モードの属するモードグループを示すグループインデックスを取得するステップと、
ビットストリームをパースして、モードグループの中の目標変換モードを示すモードインデックスを取得するステップと、
グループインデックス及びモードインデックスに基づき、目標変換モードを取得するステップと、を含んでよい。
【0241】
一実装方法では、ビットストリームをパースして、目標変換モードの属するモードグループを示すグループインデックスを取得するステップの前に、方法は、
CUのサイズに基づき、残差TUの少なくとも1つの候補モードグループを決定するステップと、
相応して、残差TUの少なくとも1つの候補モードグループに基づき、ビットストリームをパースして、目標変換モードの属するモードグループを示すグループインデックスを取得するステップと、を更に含む。
【0242】
例えば、CUの幅が[Th1×2,Th3]の範囲にあり、CUの高さが[Th1×2,Th3]の範囲にあるとき、候補モードグループは、変換モードQ0、変換モードQ1、変換モードQ2、及び変換モードQ3を含むモードグループを含む。
【0243】
例えば、CUの幅が[Th1×4,Th3]の範囲にあり、CUの高さが[Th1,Th2]の範囲にあるとき、候補モードグループは、変換モードVQ0、変換モードVQ1、及び変換モードVH2を含むモードグループを含む。
【0244】
例えば、CUの幅が[Th1×2,Th2]の範囲にあり、CUの高さが[Th1,Th2]の範囲にあるとき、候補モードグループは、変換モードVH0及び変換モードVH1を含むモードグループを含む。
【0245】
例えば、CUの高さが[Th1×4,Th3]の範囲にあり、CUの幅が[Th1,Th2]の範囲にあるとき、候補モードグループは、変換モードHQ0、変換モードHQ1、及び変換モードHH2を含むモードグループを含む。
【0246】
例えば、CUの高さが[Th1×2,Th2]の範囲にあり、CUの幅が[Th1,Th2]の範囲にあるとき、候補モードグループは、変換モードHH0及び変換モードHH1を含むモードグループを含む。
【0247】
例えば、CUの幅が[Th1×2,Th2]の範囲にあり、CUの高さが[Th1×2,Th2]の範囲にあるとき、候補モードグループは、変換モードQ0、変換モードQ1、変換モードQ2、及び変換モードQ3を含むモードグループを含む。
【0248】
例えば、CUの幅が[Th1×4,Th2]の範囲にあり、CUの高さが[Th1,Th2]の範囲にあるとき、候補モードグループは、変換モードVQ0、変換モードVQ1、及び変換モードVH2を含むモードグループを含む。
【0249】
例えば、CUの幅が[Th1×2,Th2]の範囲にあり、CUの高さが[Th1,Th2]の範囲にあるとき、候補モードグループは、変換モードVH0及び変換モードVH1を含むモードグループを含む。
【0250】
例えば、CUの高さが[Th1×4,Th2]の範囲にあり、CUの幅が[Th1,Th2]の範囲にあるとき、候補モードグループは、変換モードHQ0、変換モードHQ1、及び変換モードHH2を含むモードグループを含む。又は、
【0251】
例えば、CUの高さが[Th1×2,Th2]の範囲にあり、CUの幅が[Th1,Th2]の範囲にあるとき、候補モードグループは、変換モードHH0及び変換モードHH1を含むモードグループを含む。
【0252】
閾Th1、Th2、及びTh3は、所定の整数値である。例えば、Th1は4、8、又は16であり、Th2は32、64、又は128であり、Th3は64、128、又は256である。
【0253】
別の実装方法では、残差TUの目標変換モードを取得するステップの前に、方法は、
CUの予測情報に基づき、残差TUの目標変換モードを取得するか否かを決定するステップを更に含む。
【0254】
例えば、CUの予測モードがイントラ予測モードであるとき、残差TUの目標変換モードを取得することを決定する。
【0255】
例えば、CUの予測モードがインター予測モードであるとき、残差TUの目標変換モードを取得することを決定する。
【0256】
例えば、CUの予測方法が予め設定された陽性予測方法であるとき、残差TUの目標変換モードを取得することを決定する。予め設定された陽性予測方法は、以下:
移動モデルに基づく動き補償方法;
マージ予測方法;
1/4−pel動きベクトル差精度による高度動きベクトル予測方法;又は、
2より小さいマージインデックスによるマージ予測方法;
のうちの少なくとも1つを含む。
【0257】
例えば、CUの予測方法が予め設定された陰性予測方法であるとき、残差TUの目標変換モードを取得しないことを決定する。予め設定された陰性予測方法は、以下:
アフィンモデルに基づく動き補償方法;
アフィンマージ予測方法;
アフィンインター予測モード;
1−pel又は4−pel動きベクトル差精度による高度動きベクトル予測方法;又は、
2より小さくないマージインデックスによるマージ予測方法;
のうちの少なくとも1つを含む。
【0258】
別の実装方法では、残差TUの目標変換モードを取得するステップの前に、方法は、CUのサイズに基づき、残差TUの目標変換モードを取得するか否かを決定するステップを更に含む。
【0259】
例えば、CUの幅又は高さが予め設定されたCU閾より大きいとき、残差TUの目標変換モードを取得しないことを決定する。予め設定されたCU閾は、32個のルマピクセル、64個のルマピクセル、又は128個のルマピクセルであってよい。
【0260】
例えば、CUのTUの幅又は高さが予め設定された最小TU閾より小さいとき、残差TUの目標変換モードを取得しないことを決定する。予め設定されたTU閾は、4個のルマピクセル、8個のルマピクセル、又は16個のルマピクセルであってよい。
【0261】
例えば、CUのTUの幅又は高さが予め設定された最大TU閾より大きいとき、残差TUの目標変換モードを取得しないことを決定する。予め設定された最大TU閾は、32個のルマピクセル、64個のルマピクセル、又は128個のルマピクセルであってよい。
【0262】
留意すべきことに、CUの予測情報及び/又はCUのサイズに従ってさえ、残差TUの目標変換モードを取得することを決定するステップは、目標変換モードが取得され得ることを意味するだけであり、目標変換モードが実際に取得されることを意味しない。エンコーダ側で、変換を行うためにどの変換モードを選択するかは、多くの要因に依存する。つまり、上述の新しい変換モード(上述の22個の変換モード)は、候補として追加され、既に存在する変換モード(古い変換モード)、例えばCUがCUサイズの1個のTUにより変換されること、は依然として使用できる。
【0263】
したがって、CU毎に変換ユニット情報を有することに基づき、CUの予測情報及び/又はCUのサイズに従い、残差TUの目標変換モードを取得することを決定するとき、ビットストリームのパースは、古い変換モードを示すモードフラグを取得してよい。したがって、残差TUの目標変換モードを取得しないことを決定すると、これは、古い変換モードがCUについて使用されることを意味する。CUがCUサイズの1個のTUにより変換された場合、残差TUの変換タイプは、デフォルトで水平変換でDCT−2及び垂直変換でDCT−2であってよく、又はビットストリームの中でシグナリングされてよい(例えば、VRTMソフトウェア内のAMT方法、ここでは、複数の変換タイプがTUについて許可され、TUにより使用される変換タイプがシグナリングされる)。
【0264】
例えば、Q0、Q1、Q2、Q3、VQ0、VQ1、HQ0、HQ1、VH0、VH1、VH2、HH0、HH1、及びHH2の変換モードがCUの候補目標変換モードである場合、デコーダは、先ず、ビットストリームをパースして、CUが候補目標変換モードのうちの1つを使用するか、又はCUがCUサイズの1個のTUに変換されるかを決定できる。例えば、CUが候補目標変換モードのうちの1つを使用するか、又はCUがCUサイズの1個のTUにより変換されるかを示すために、フラグが使用されてよい。
【0265】
CUが候補目標変換モードのうちの1つを使用する場合、ビットストリームをパースして、CUの変換モードを取得する。1つの方法では、Q0、Q1、Q2、及びQ3は、グループAにグループ分けされ、VQ0及びVQ1はグループBにグループ分けされ、HQ0及びHQ1はグループCにグループ分けされ、VH0、VH1、及びVH2はグループDにグループ分けされ、HH0、HH1、及びHH2はグループEにグループ分けされる。最初に、グループインデックスをパースすることにより、CUの変換モードの属するグループが決定され、次に、別のインデックスをパースすることによりグループ内の目標変換モードを決定する。
【0266】
グループインデックスのパースは、どのモードグループが個補モードグループとして決定された/予め設定されたかに基づいてよい。例えば、グループA及び任意の他のグループが候補モードグループであるとき、目標変換モードがグループAに属するか否かを決定するために第1フラグがパースされる。或いは、第1フラグがビットストリーム内に存在しない場合、グループAが候補モードグループであるならば、変換モードがグループAに属すると推定される、又はグループAが候補モードグループではないならば、グループB、C、D、及びEに属すると推定される。目標変換モードがグループB、C、D、及びEに属する場合、グループB/D及びC/Eの両方が候補であるならば、目標変換モードがB/D(つまりグループB又はD)又はC/Eに属するかを決定するために、第2フラグがパースされる。B/Dのみが候補である場合、又はC/Eのみが候補である場合、第2フラグは推定できる。変換モードがB/Dに属する場合、目標変換モードがBに属するか否かを決定するために、第3フラグがパースされてよい。同様に、目標変換モードがC/Eに属する場合、目標変換モードがCに属するか否かを決定するために、第3フラグがパースされてよい。
【0267】
グループインデックスのパースと同様に、グループ内の目標変換モードのインデックスのパースは、どの変換モードがグループ内にあるかに基づいてよい。
【0268】
例えば、、変換モードQ0、Q1、Q2、Q3、VQ0、VQ1、HQ0、及びHQ1がCUの候補目標変換モードである場合、デコーダは、先ず、ビットストリームをパースして、CUが候補目標変換モードのうちの1つを使用するか、又はCUがCUサイズの1個のTUに変換されるかを決定できる。例えば、CUが候補目標変換モードのうちの1つを使用するか、又はCUがCUサイズの1個のTUにより変換されるかを示すために、フラグが使用されてよい。
【0269】
CUが候補目標変換モードのうちの1つを使用する場合、ビットストリームをパースして、CUの変換モードを取得する。1つの方法では、変換モードQ0、Q1、Q2、及びQ3はグループAにグループ分けされ、VQ0及びVQ1はグループBにグループ分けされ、HQ0及びHQ1はグループCにグループ分けされる。最初に、グループインデックスをパースすることにより、目標変換モードの属するグループが決定され、次に、モードインデックスをパースすることによりグループ内の目標変換モードを決定する。
【0270】
本開示は、ビデオデコーダを更に開示する。デコーダのコウゾは
図3に示され、ビデオデコーダは以下を含む。
【0271】
エントロピー復号ユニット304であって、受信したビットストリームをパースして、符号化ユニット(coding unit, CU)を取得し、残差TUがCUの残差TUのみであり及び残差TUのサイズがCUのサイズより小さいとき、残差変換ユニット(residual transform unit, TU)の目標変換モードを取得し、目標変換モードはCUのTUパーティションモード、残差TUの一、及び残差TUの変換タイプを指定し、受信したビットストリームをパースして残差TUの変換係数を取得するよう構成されるエントロピー復号ユニット304。ここで、目標変換モードは上述と同じである。
【0272】
逆量子化処理ユニット310であって、残差TUの変換係数に逆量子化を適用して、逆量子化された係数を取得するよう構成される逆量子化ユニット310。
【0273】
逆変換処理ユニット312であって、目標変換モードに基づき逆量子化された係数に逆変換を適用して、残差TUの残差ブロックを取得するよう構成される逆変換処理ユニット312。
【0274】
予測処理ユニット360であって、予測情報に基づき、CUの予測ブロックを取得するよう構成される予測処理ユニット360。
【0275】
再構成ユニット314であって、残差ブロック及び予測ブロックに基づき、ビデオブロックを取得するよう構成される再構成ユニット314。
【0276】
出力332であって、ビデオシーケンスを出力し、ビデオシーケンスは、ビデオブロックを含むビデオフレームを含む、よう構成される出力332。
【0277】
一実装方法では、エントロピー復号ユニット304は、ビットストリームをパースして、残差TUの目標変換モードを示すモードインデックスを取得し、モードインデックスに基づき、残差TUの目標変換モードを取得するよう更に構成される。
【0278】
一実装方法では、エントロピー復号ユニット304は、CUのサイズに基づき、残差TUの候補目標変換モードを決定し、
【0279】
残差TUの候補目標変換モードに基づき、ビットストリームをパースして、残差TUの目標変換モードを示すモードインデックスを取得するよう更に構成される。
【0280】
一実装方法では、エントロピー復号ユニット304は、上述の方法に従い、残差TUの候補目標変換モードを決定するよう更に構成される。
【0281】
一実装方法では、エントロピー復号ユニット304は、ビットストリームをパースして、目標変換モードの属するモードグループを示すグループインデックスを取得し、ビットストリームをパースして、モードグループの中の目標変換モードを示すモードインデックスを取得し、グループインデックス及びモードインデックスに基づき、目標変換モードを取得するよう更に構成される。
【0282】
ここで、目標変換モードは上述のような任意のモードグループに属する。
【0283】
一実装方法では、エントロピー復号ユニット304は、
CUのサイズに基づき、残差TUの少なくとも1つの候補モードグループを決定し、
残差TUの少なくとも1つの候補モードグループに基づき、ビットストリームをパースして、目標変換モードの属するモードグループを示すグループインデックスを取得するよう更に構成される。
【0284】
ここで、エントロピー復号ユニットは、上述の方法のうちの少なくとも1つに従い、少なくとも1つの候補モードグループを決定するよう更に構成される。
【0285】
一実装方法では、エントロピー復号ユニット304は、CUの予測情報に基づき、残差TUの目標変換モードを取得するか否かを決定するよう更に構成される。
【0286】
ここで、エントロピー復号ユニット304は、上述の方法のうちの少なくとも1つに従い、残差TUの目標変換モードを取得するか否かを決定するよう更に構成される。
【0287】
一実装方法では、エントロピー復号ユニット304は、CUのサイズに基づき、残差TUの目標変換モードを取得するか否かを決定するよう更に構成される。
【0288】
ここで、エントロピー復号ユニット304は、上述の方法のうちの少なくとも1つに従い、残差TUの目標変換モードを取得するか否かを決定するよう更に構成される。
【0289】
本開示は、上述の方法を実行する処理回路を含むデコーダを更に開示する。
【0290】
本開示は、上述の方法を実行するプログラムコードを含むコンピュータプログラムプロダクトを更に開示する。
【0291】
本開示は、デコーダであって、
1つ以上のプロセッサと、
プロセッサに結合されプロセッサによる実行のためのプログラミングを格納する非一時的コンピュータ可読記憶媒体であって、該プログラミングは、プロセッサにより実行されると、上述の方法を実行するようデコーダを構成する、非一時的コンピュータ可読記憶媒体と、
を含むデコーダを更に開示する。
【0292】
図13は、イントラ予測モードを利用するビデオ符号化におけるイントラ予測の一例1300を示す。示されるように、現在ブロック1301は、近隣ブロック310内のサンプルにより予測できる。エンコーダは、通常、左上から右下へと画像を符号化してよい。しかしながら、エンコーダは、後述するように幾つかの場合には右から左へと符号化してよい。留意すべきことに、ここで使用されるとき、右は符号化される画像の右側を表し、左は符号化される画像の左側を表し、下は符号化される画像の下側を表す。
【0293】
留意すべきことに、現在ブロック1301は、近隣ブロック1310からのサンプルと常に正確に一致しなくてよい。このような場合には、予測モードは、最も一致する近隣ブロック1310から符号化される。デコーダが適正な値を決定できるために、予測値と実際の値との間の差が保持される。これは、残差情報と呼ばれる。残差情報は、イントラ予測1300、及びインター予測の両方で生じる。
【0294】
図14は、イントラ予測1300及び/又はインター予測に基づく例示的なビデオエンコーティングメカニズム1400の概略図である。画像ブロック1401は、1つ以上のフレームからエンコーダにより取得できる。例えば、画像は、複数の長方形画像領域に分割されてよい。画像の書く領域は、符号化木ユニット(Coding Tree Unit, CTU)に対応する。CTUは、HEVCにおける符号化ユニットのような複数のブロックに分けられる。ブロックパーティション情報は、次にビットストリーム1411内に符号化される。したがって、画像ブロック301は画像の分けられた部分であり、画像の対応する部分におけるルマ成分及び/又はクロマ成分を表すピクセルを含む。符号化の間、画像ブロック1401は、イントラ予測の予測モード及び/又はインター予測の動きベクトルのような予測情報を含む予測ブロック303として符号化される。予測ブロック1403としての画像ブロック1401の符号化は、次に、予測ブロック1403と画像ブロック1401との間の差を示す残差情報を含む残差ブロック1405をもたらす。
【0295】
留意すべきことに、画像ブロック14011401は、1個の予測ブロック1403と1個の残差ブロック1405とを含む符号化ユニットとして分けられてよい。予測ブロック1403は、符号化ユニットの全部の予測サンプルを含んでよく、残差ブロック1405は、符号化ユニットの全部の残差サンプルを含んでよい。このような場合、予測ブロック1403は、残差ブロック1405と同じサイズである。別の例では、画像ブロック1401は、2個の予測ブロック1403と1個の残差ブロック1405とを含む符号化ユニットとして分けられてよい。このような場合、各予測ブロック1405は、符号化ユニットの予測サンプルの一部を含み、残差ブロック1405は、符号化ユニットの全部の残差サンプルを含む。更に留意すべきことに、画像ブロック1401は、2個の予測ブロック1403と4個の残差ブロック1405とを含む符号化ユニットとして分けられてよい。符号化ユニット内の残差ブロック1405のパーティションパターンは、ビットストリーム1411内でシグナリングされてよい。このような一パターンは、HEVCにおける残差4分木(Residual Quad−Tree, RQT)を含んでよい。さらに、画像ブロック1401は、画像サンプル(又はピクセル)のY成分として示されるルマ成分(例えば、光)のみを含んでよい。他の場合には、画像ブロック1401は、画像サンプルのY、U、及びV成分を含んでよい。ここで、U及びVは、青色輝度及び赤色輝度(UV)色空間における色度成分(例えば、色)を示す。
【0296】
SVTは、情報を更に圧縮するために使用されてよい。具体的に、SVTは、変換ブロック1407を利用して、残差ブロック1405を更に圧縮する。変換ブロック1407は、逆DCT及び/又は逆DSTのような変換を含む。予測ブロック1403と画像ブロック1401との間の差は、変換係数を利用することにより、変換に適合される。変換ブロック1407の変換モード(例えば、逆CDT及び/又は逆DST)及び対応する変換係数を示すことにより、デコーダは残差ブロック1405を再構成できる。正確な再生成が要求されないとき、変換係数は、変換についてより良い適合を生成するために、特定値を丸め込むことにより更に圧縮できる。この処理は、量子化として知られ、許容可能な量子化を定める量子化パラメータに従い実行される。したがって、変換ブロック1407の変換モード、変換係数、及び量子化パラメータは、変換された残差ブロック1409内の変換された残差情報として格納される。これは、幾つかの場合には単に残差ブロックとも呼ばれることがある。
【0297】
予測ブロック1403の予測情報及び変換された残差ブロック1409の変換された残差情報は、次に、ビットストリーム1411内に符号化され得る。ビットストリーム1411は、格納され及び/又はデコーダへ伝送され得る。デコーダは、次に、画像ブロック1401を復元するために逆の処理を実行できる。具体的に、デコーダは、変換された残差情報を利用して、変換ブロック1407を決定できる。変換ブロック1407は、次に、残差ブロック1405を決定するために、変換された残差ブロック1409と関連して利用できる。残差ブロック1405及び予測ブロック1403は、次に、画像ブロック1401を再構成するために利用できる。画像ブロック1401は、次に、フレームを再構成し及び符号化されたビデオを復元するためにこのようなこのようなフレームを位置決めするために、他の復号された画像ブロック1401に対して相対的に位置決めできる。
【0298】
SVTは、ここで更に詳細に説明される。SVTを行うために、変換ブロック1407は、残差ブロック1405より小さくなるよう選択される。変換ブロック1407は、残差ブロック1405の対応する部分を変換するために利用され、追加の符号化/圧縮を伴わずに残差ブロックの残りをもたらす。これは、残差情報が、通常、残差ブロック1405に渡り均一に分布されないからである。SVTは、残差ブロック1405全体が変換されることを必要としないで、適応位置を有するより小さな変換ブロック1407を利用して、残差ブロック1405内の残差情報の大部分をキャプチャする。このアプローチは、残差ブロック1405内の全部の残差情報を変換するより、良好な符号化効率を達成し得る。変換ブロック1407は残差ブロック1405より小さいので、SVTは、残差ブロック1405に対する変換の位置をシグナリングするメカニズムを利用する。例えば、SVTがサイズw×h(例えば、幅×高さ)の残差ブロック1405について適用されるとき、変換ブロック1407のサイズ及び位置は、ビットストリーム1411内に符号化されてよい。これは、デコーダが変換ブロック1407を再構成し、残差ブロック1405の再構成のために変換ブロック1407を変換された残差ブロック1409に対する正しい位置に構成することを可能にする。
【0299】
留意すべきことに、幾つかの予測ブロック1403は、残差ブロック1405を生じることなく符号化できる。しかしながら、このような場合は、SVTの使用を生じないので、更に議論されない。上述のように、SVTは、インター予測されたブロック又はイントラ予測されたブロックに対して利用されてよい。さらに、SVTは、指定されたインター予測メカニズム(例えば、並進移動モデルに基づく動き補償)により生成された残差ブロック1405に対して利用されてよいが、他の市指定されたインター予測メカニズム(例えば、アフィンモデルに基づく動き補償)により生成された残差ブロック1405には利用されなくてよい。
【0300】
図15は、残差ブロック305を符号化するために変換ブロック307として利用され得る例示的なSVT変換1500を示す。SVT変換1500は、SVT−I、SVT−II、及びSVT−IIIとして参照される。SVT−Iは、w_t=w/2、h_t=h/2として定められる。ここで、w_t及びh_tは、それぞれ変換ブロックの幅及び高さを示し、w及びhは、それぞれ残差ブロックの幅及び高さを示す。例えば、変換ブロックの幅及び高さが、両方とも残差ブロックの幅及び高さの半分である。SVT−IIは、w_t=w/4、h_t=hとして定められる。ここで、変数は上述の通りである。例えば、変換ブロックの幅は残差ブロックの幅の4分の1であり、変換ブロックの高さは残差ブロックの高さと等しい。SVT−IIIは、w_t=w、h_t=h/4として定められる。ここで、変数は上述の通りである。例えば、変換ブロックの幅は残差ブロックの幅と等しく、変換ブロックの高さは残差ブロックの高さの4分の1である。SVTブロックのタイプ(例えば、SVT−I、SVT−II、又はSVT−III)を示すタイプ情報は、デコーダによる再構成をサポートするためにビットストリーム内に符号化される。
【0301】
図15により分かるように、書く変換は、残差ブロックに対する種々の場所に位置づけることができる。変換ブロックの位置は、残差ブロックの左上角に対する位置オフセット(x,y)により表される。ここで、xは変換ブロックの左上角と残差ブロックの左上角との間の水平距離をピクセルの単位で示し、yは変換ブロックの左上角と残差ブロックの左上角との間の垂直距離をピクセルの単位で示す。残差ブロック内の変換ブロックの各々の可能な位置は、候補位置として参照される。残差ブロックでは、候補位置の数は、SVTのタイプについて、(w−w_t+1)×(h−h_t+1)である。より具体的には、16×16の残差ブロックでは、SVT−Iが使用されるとき、81個の候補位置が存在する。SVT−II又はSVT−IIIが使用されるとき、13個の候補位置が存在する。一旦決定されると、位置オフセットのx及びy値は、利用されるSVTブロックのタイプと一緒にビットストリーム内に符号化される。SVT−Iの複雑性を低減するために、32個の位置のサブセットが、81個の可能な候補位置から選択できる。このサブセットは、次に、SVT−1の許可された候補位置として動作する。
【0302】
SVT変換1500を利用するSVT方式の1つの欠点は、SVT位置情報を残差情報として符号化することが、有意なシグナリングオーバヘッドを生じることである。さらに、レート歪み最適化(Rate−Distortion Optimization, RDO)のような圧縮品質処理によりテストされる位置の数が増加するにつれ、エンコーダの複雑性が有意に増大することがある。候補位置の数は残差ブロックのサイズと共に増大するので、シグナリングオーバヘッドは、32×32又は64×128のような、より大きな残差ブロックでは更に大きくなり得る。SVT変換1500を利用する別の欠点は、変換ブロックのサイズが残差ブロックのサイズの4分の1であることである。このようなサイズの変換ブロックは、多くの場合、残差ブロック内の主要な残差情報をカバーするのに十分大きくないことがある。
【0303】
図16は、残差ブロック305を符号化するために変換ブロック307として利用され得る更なる例示的なSVT変換1600を示す。SVT変換1600は、SVT垂直(SVT−V)及びSVT水平(SVT−H)として参照される。SVT変換1600は、SVT変換1500と同様であるが、削減されたシグナリングオーバヘッド及びエンコーダにおける複雑さの少ない処理要件をサポートするよう設計される。
【0304】
SVT−Vは、w_t=w/2及びh_t=hとして定められる。ここで、変数は上述の通りである。変換ブロックの幅は残差ブロックの幅の半分であり、変換ブロックの高さは残差ブロックの高さと等しい。SVT−Hは、w_t=w及びh_t=h/2として定められる。ここで、変数は上述の通りである。例えば、変換ブロックの幅は残差ブロックの幅と等しく、変換ブロックの高さは残差ブロックの高さの半分である。SVT−VはSVT−IIと同様であり、SVT−HはSVT−IIIと同様である。SVT−II及びSVT−IIIと比べて、SVT−V及びSVT−Hにおける変換ブロックは、残差ブロックの半分にまで拡大され、残差ブロック内のより多くの残差情報をカバーできる。
【0305】
SVT変換1500と同様に、SVT変換1600は、幾つかの候補位置を含むことができる。ここで、候補位置は、残差ブロックに対して変換ブロックの可能な許容可能位置である。候補位置は、候補位置ステップサイズ(Candidate Position Step Size, CPSS)に従い決定される。候補位置は、CPSSにより指定された等間隔で離されてよい。このような場合、候補位置の数はわずか5にまで削減される。変換のために選択された位置がより少ないビット数によりシグナリングできるので、削減された候補位置の数は、位置情報に関連するシグナリングオーバヘッドを低減する。さらに、候補位置の数の削減は、変換位置の選択をアルゴリズム的に一層単純にする。これは、エンコーダの複雑性を低減させることを可能にする(例えば、符号化するために利用されるコンピューティングリソースをより少なくする)。
【0306】
図17は、残差ブロックに対する例示的なSVT変換候補位置1700を示す。具体的に、SVT変換候補位置1700は、残差ブロックに対して位置決めされたSVT−V及びSVT−H(例えばSVT変換1600)を利用する。変換のための許容可能な候補位置は、CPSSに依存し、CPSSは、変換ブロックがカバーすべき残差ブロックの位置、及び/又は候補位置間のステップサイズに更に依存する。例えば、CPSSは、SVT−Vではs=w/M1として、又はSVT−Hではs=h/M2として計算されてよい。ここで、w及びhはそれぞれ残差ブロックの幅及び高さであり、M1及びM2は2〜8の範囲の所定の整数である。候補位置は、より大きいM1又はM2の値により許可される。例えば、M1及びM2は両方とも8に設定されてよい。この場合、残差ブロックに対する変換ブロックの位置を定める位置インデックス(P)の値は0〜4の間である。
【0307】
別の例では、CPSSは、SVT−Vではs=max(w/M1,Th1)として、又はSVT−Hではs=max(h/M2,Th2)として計算される。ここで、Th1及びTh2は最小ステップサイズを指定する所定の整数である。Th1及びTh2は、2以上の整数であってよい。この例では、Th1及びTh2は4として設定され、M1及びM2は8として設定される。この例では、異なるブロックサイズは異なる数の候補位置を有してよい。例えば、残差ブロックの幅が8であるとき、SVT−Vでは2つの候補位置、具体的には候補位置1700(a)及び(e)が利用可能である。例えば、Th1により示されるステップサイズが大きく、w/M1により示されるように変換のカバーする残差ブロックの部分も大きいとき、2つの候補位置のみがCPSSを満たす。しかしながら、wが16に設定されるとき、変換のカバーする残差ブロックの部分はw/M1の変化により減少する。これは、より多くの候補位置、この場合には3個の候補位置1700(a)、(b)及び(c)をもたらす。残差ブロックの幅が16より大きいとき、5個全部の候補位置が利用可能であり、Th1及びM1の値は上述された。
【0308】
CPSSが他のメカニズムに従い計算されるとき、他の例も分かる。具体的には、CPSSは、SVT−Vではs=w/M1として又はSVT−Hではs=h/M2として計算されてよい。この場合、M1及びM2が4として設定されるとき、SVT−Vでは3個の候補位置が許可され(例えば、候補位置1700(a)、(c)、及び(e))、、SVT−Hでは3個の候補位置が許可される(例えば、候補位置1700(f)、(h)、及び(j))。さらに、M1及びM2が4として設定されるとき、変換のカバーする残差ブロックの部分は増え、SVT−Vの2個の許容可能な候補位置(候補位置1700(a)及び(e))及びSVT−Hの2個の許容可能な候補位置(候補位置1700(f)及び(e))をもたらす。
【0309】
別の例では、上述のように、CPSSは、SVT−Vではs=max(w/M1,Th1)として、又はSVT−Hではs=max(h/M2,Th2)として計算される。この場合、T1及びT2は、所定の整数、例えば2として設定され、M1は、w≧hならば8として設定され、又はw<hのとき4として設定され、M2は、h≧wのとき8として設定され、又はh<wのとき4として設定される。例えば、変換のカバーする残差ブロックの部分は、残差ブロックの高さが残差ブロックの幅より大きいか否か、又はその逆に依存する。したがって、SVT−H又はSVT−Vの候補位置の数は、残差ブロックのアスペクト比に更に依存する。
【0310】
別の例では、上述のように、CPSSは、SVT−Vではs=max(w/M1,Th1)として、又はSVT−Hではs=max(h/M2,Th2)として計算される。この場合、M1、M2、Th1、及びTh2の値は、ビットストリーム内の高レベルシンタックス構造(例えば、シーケンスパラメータセット)から導出される。例えば、CPSSを導出するために利用される値は、ビットストリーム内でシグナリングできる。M1及びM2は、シンタックス要素からパースされた同じ値を共有してよく、Th1及びTh2は、別のシンタックス要素からパースされた同じ値を共有してよい。
【0311】
図18は、残差ブロックに対する例示的なSVT変換位置を示す。SVT変換位置1800は、SVT変換候補位置1700のような候補位置から選択される。具体的には、選択されたSVT変換位置1800は、位置インデックスPに従って符号化されてよい。位置インデックスPは、残差ブロックの左上角に対する変換ブロックの左上角の位置オフセット(Z)を決定するために利用できる。例えば、この位置相関は、Z=s×Pに従い決定できる。ここで、sは、SVTタイプに基づく変換ブロックのCPSSであり、
図6に関して議論したように計算される。Pの値は、変換ブロックがSVT−Vであるとき、0,1,...,(w−w_t)/sとして符号化されてよい。Pの値は、変換ブロックがSVT−Hであるとき、0,1,...,(h−h_t)/sとして符号化されてよい。より具体的には、(0,0)は、残差ブロックの左上角の座標を表し得る。このような場合、変換ブロックの左上角の座標は、SVT−Vでは(Z,0)又はSVT−Hでは(0,Z)である。
【0312】
以下に更に詳細に議論するように、エンコーダは、SVT変換タイプ(例えば、SVT−H又はSVT−T)及び残差ブロックサイズを、フラグを利用してビットストリーム内に符号化してよい。デコーダは、次に、SVT変換サイズをSVT変換サイズ及び残差ブロックサイズに基づき決定してよい。SVT変換サイズが決定されると、デコーダは、CPSS関数に従い、SVT変換候補位置1700のようなSVT変換の許容可能な候補位置を決定できる。デコーダがSVT変換の候補位置を決定できるので、エンコーダは位置オフセットの座標をシグナリングしなくてよい。代わりに、候補位置のうちのどれが対応する変換のために利用されるかを示すために、コードが利用できる。例えば、位置インデックスPは、増大する圧縮のために切り捨てられた単進符号を用いて、1つ以上のビンへと2値化されてよい。特定の例として、P値が0〜4の範囲内にあるとき、P値0、4,2,3,及び1は、それぞれ0,01,001,0001,及び0000として2値化できる。この2進符号は、位置インデックスの基数10の値を表現するより更に圧縮される。別の例として、P値が0〜1の範囲内にあるとき、P値0及び1は、それぞれ0及び1として2値化できる。このように、位置インデックスは、変換ブロックの可能な候補位置の観点で、特定の変換ブロック位置をシグナリングするために、必要に応じサイズを増大し又は短縮できる。
【0313】
位置インデックスPは、最も有望な位置及びあまり有望でない残りの位置を利用することにより、1つ以上のビンへと2値化されてよい。例えば、左及び上の近隣ブロックが既にデコーダで復号されており、したがって、予測のために利用可能であるとき、最も有望な位置は、残差ブロックの右下角をカバーする位置として設定されてよい。一例では、P値が0〜4の範囲内にあり、位置4が最も有望な位置として設定されるとき、P値4,0,1,2,及び3は、それぞれ1,000,001,010,及び011として2値化される。さらに、P値が0〜2の範囲内にあり、位置2が最も有望な位置として設定されるとき、P値2,0,及び1は、それぞれ1,01,及び00として2値化される。したがって、最も一般的な場合にシグナリングオーバヘッドを削減するために、候補位置のうち最も有望な位置インデックスは最も少ないビットにより示される。隣接する再構成ブロックの符号化順序に基づき、確率が決定できる。したがって、デコーダは、利用される復号方式に基づき、対応するブロックのために利用されるべきコードワード方式を推定できる。
【0314】
例えば、HEVCでは、符号化ユニットの符号化順序は、通常、上から下へ、及び左から右へである。このような場合、現在符号化/復号している符号化ユニットの右側は利用可能ではなく、右上角をより有望な変換位置として与える。しかしながら、動きベクトル予測子は左及び上の空間的近隣から導出される。このような場合、残差情報は、右下角に向かって統計的により強い。この場合、右下部分をカバーする候補位置は、最も有望な位置である。さらに、適応符号化ユニットの符号化順序が利用されるとき、1個のノードは垂直方向に2個の子ノードに分割してよく、右の子ノードは左の子ノードの前に符号化されてよい。この場合、左の子ノードの側の近隣は、左の子ノードの復号/符号化の前に再構成されている。さらに、この場合には、左側の近隣ピクセルは利用可能ではない。右側の近隣が利用可能であり、左側の近隣が利用可能ではないとき、残差ブロックの左下部分は、大量の残差情報を含む可能性が高い。したがって、残差ブロックの左下部分をカバーする候補位置が、最も有望な位置になる。
【0315】
したがって、位置インデックスPは、残差ブロックの右隣が再構成されているか否かに従い、1つ以上のビンへと2値化されてよい。一例では、P値は、SVT変換位置1800により示されるように、0〜2の範囲にある。残差ブロックの右隣が再構成されているとき、P値0,2,1は、0,01,00として2値化される。その他の場合、P値2,0,1は0,01,00として2値化される。別の例では、残差ブロックの右隣が再構成されるが、残差ブロックの左隣が再構成されていないとき、P値0,2,1は0,00,01として2値化される。その他の場合、P値2,0,1は0,00,01として2値化される。これらの例では、単一のビンに対応する位置は最も有望な位置であり、他の2つの位置は残りの位置である。例えば、最も有望な位置は、右側の近隣の利用可能性に依存する。
【0316】
レート歪み最適化の観点で最良の位置の確率分布は、インター予測モードに渡りまるで異なり得る。例えば、残差ブロックが、テンプレートとして空間的に近隣の再構成されたピクセルとのテンプレートマッチングにより生成された予測ブロックに対応するとき、最良の位置は最も有望な位置2である。他のインター予測モードでは、最良の位置である位置2(又は、右隣が利用可能であり左隣が利用可能ではないときは位置0)の確率は、テンプレートマッチングモードのものより低い。この観点から、位置インデックスPの第1ビンのコンテキストモデルは、残差ブロックに関連するインター予測に従い決定されてよい。より具体的には、残差ブロックがインター予測に基づくテンプレートマッチングに関連付けられるとき、位置インデックスPの第1ビンは第1コンテキストモデルを使用する。その他の場合、このビンを符号化/復号するために第2コンテキストモデルが使用される。
【0317】
別の例では、残差ブロックがインター予測に基づくテンプレートマッチングに関連付けられるとき、最も有望な位置(例えば、位置2、又は右隣が利用可能であるが左隣が利用可能ではないとき位置0)は、変換ブロック位置として直接設定され、位置情報はビットストリーム内でシグナリングされない。その他の場合、位置インデックスは、ビットストリーム内で明示的にシグナリングされる。
【0318】
留意すべきことに、残差ブロックに対する変換ブロックの位置に依存して、異なる変換が利用できる。例えば、残差ブロックの左側は再構成され、残差ブロックの右側は再構成されない。これは、左から右jへ及び上から下への固定符号化ユニット符号化順序(例えば、HEVCにおける符号化順序)によるビデオ符号化で生じる。この場合、残差ブロックの右下角をカバーする候補位置は、符号化のときに変換ブロック内の変換のために、DST(例えば、DSTタイプ7(DST−7)又はDSTタイプ1(DST−1)又はDSTタイプ4(DST−4))を利用してよい。したがって、逆DST変換が、対応する候補位置についてデコーダにおいて利用される。さらに、残差ブロックの左上角をカバーする候補位置は、符号化のときに変換ブロック内の変換のために、DCT(例えば、DCTタイプ8(DCT−8)又はDCTタイプ2(DCT−2)又はDCTタイプ4(DCT−4))を利用してよい。したがって、逆DCT変換が、対応する候補位置についてデコーダにおいて利用される。これは、この場合に4個の角の中で右下角が、空間的に再構成された領域から最も離れているからである。さらに、変換ブロックが残差ブロックの右下角をカバーするとき、残差情報分布を変換するために、DSTはDCTより効率的である。しかしながら、変換ブロックが残差ブロックの左上角をカバーするとき、残差情報分布を変換するために、DCTはDSTより効率的である。残りの候補位置について、変換タイプは逆DST又はDCTのいずれかであり得る。例えば、候補位置が左上角より右下角に近いとき、逆DSTが変換タイプとして利用される。その他の場合、逆DCTが変換タイプとして利用される。
【0319】
特定の例として、
図18に示すように、変換ブロックの3個の候補位置が許可されてよい。この場合、位置0は左上角をカバーし、位置2は右下角をカバーする。位置1は、残差ブロックの中央にあり、左及び右角の両方に対して等距離である。変換タイプは、エンコーダにおいて、位置0、位置1、及び位置2のために、それぞれDCT−8、DST−7、及びDST−7として選択できる。逆変換DCT−8、DST−7、及びDST−7は、次に、デコーダにおいて、それぞれ位置0、位置1、及び位置2として利用できる。別の例では、位置0、位置1、及び位置2のための変換タイプは、エンコーダにおいて、それぞれDCT−2、DCT−2、及びDST−7である。逆変換DCT−2、DCT−2、及びDST−7は、次に、デコーダにおいて、それぞれ位置0、位置1、及び位置2として利用できる。このように、対応する候補位置のための変換タイプは予め定めることができる。
【0320】
幾つかの場合には、上述の位置に依存する複数の変換がルマ変換ブロックのみに適用されてよい。対応するクロマ変換ブロックは、変換/逆変換処理において、常に逆DCT−5を使用してよい。
【0321】
図19は、残差サンプル水平フリッピングの一例1900を示す。幾つかの場合には、デコーダにおいて変換ブロック(例えば変換ブロック307)を適用する前に、残差ブロック(残差ブロック305)内の残差情報を水平方向にフリッピングすることにより、有利な残差圧縮が達成できる。例1900は、このような水平フリッピングを示す。このコンテキストでは、水平フリッピングは、残差ブロック内の残差サンプルを、残差ブロックの左側と残差ブロックの右側との間で半分だけ軸の周りに回転することを表す。このような水平フリッピングは、エンコーダにおいて変換(例えば、変換ブロック)を適用する前に、及びデコーダにおいて逆変換(例えば、変換ブロック)を適用した後に、生じる。このようなフリッピングは、指定された所定の条件が生じるとき、利用されてよい。
【0322】
一例では、水平フリッピングは、変換ブロックが変換処理の中でDST/逆DSTを利用するとき、生じる。この場合、残差ブロックの右側の近隣は、現在ブロックの前に符号化/再構成され、左側の近隣は現在ブロックの前に符号化/再構成されない。水平フリッピング処理は、残差ブロックの列iにある残差サンプルを、残差ブロックの列w−1−iにある残差サンプルと交換する。このコンテキストでは、wは変換ブロックの幅であり、i=0,1,...,(w/2)−1である。残差サンプルの水平フリッピングは、残差分布をDST変換により適合させることにより、符号化効率を向上し得る。
【0323】
図20は、上述のメカニズムを利用する位置依存SVTによるビデオ復号の例示的な方法2000のフローチャートである。方法2000は、ビットストリーム311のようなビットストリームを受信すると、デコーダにおいて開始されてよい。方法2000は、予測ブロック303及び変換された残差ブロック309のような予測ブロック及び変換された残差ブロックを決定するために、ビットストリームを利用する。方法2000は、残差ブロック305のような残差ブロックを決定するために利用される、変換ブロック307のような変換ブロックも決定する。残差ブロック及び予測ブロックは、次に、画像ブロック301のような画像ブロックを再構成するために利用される。留意すべきことに、方法2000は、デコーダの観点から説明されるが、同様の方法がSVTを利用することによりビデオを符号化するために(例えば逆に)利用されてよい。
【0324】
ブロック2001で、デコーダにおいてビットストリームが取得される。ビットストリームは、メモリから又はストリーミングソースから受信されてよい。ビットストリームは、エンコーダからのビデオデータに対応する少なくとも1つの画像へと復号できるデータを含む。具体的に、ビットストリームは、メカニズム300で説明したように、ビットストリームから予測ブロック及び残差ブロックを含む符号化ユニットを決定するために利用できるブロックパーティション情報を含む。このように、符号化ユニットに関連する符号化情報は、ビットストリームからパースでき、符号化ユニットのピクセルは後述のように符号化情報に基づき再構成できる。
【0325】
ブロック2003で、予測ブロック及び対応する変換された残差ブロックは、ブロックパーティション情報に基づきビットストリームから取得される。この例では、変換された残差ブロックは、上述のメカニズム300に関して議論したように、SVTに従い符号化されている。方法2000は、次に、後述するように、変換された残差ブロックからサイズw×hの残差ブロックを再構成する。
【0326】
ブロック2005で、SVT使用、SVTのタイプ、及び変換ブロックサイズが決定される。例えば、デコーダは、先ず、SVTが符号化において使用されているか否かを決定する。これは、幾つかの符号化が残差ブロックのサイズである変換を利用するからである。SVTの使用は、ビットストリーム内のシンタックス要素によりシグナリングできる。具体的に、残差ブロックがSVTの利用を許可されるとき、svt_flagのようなフラグがビットストリームからパースされる。変換された残差ブロックがゼロではない変換係数(例えば、任意のルマ又はクロマ成分に対応する)を有するとき、残差ブロックは、SVTを利用することを許可される。例えば、残差ブロックが任意の残差データを含むとき、残差ブロックはSVTを利用してよい。SVTフラグは、残差ブロックが残差ブロックと同じサイズの変換ブロックを用いて符号化されたか(例えば、svt_flagが0に設定される)、又は残差ブロックが残差ブロックより小さいサイズの変換ブロックにより符号化されたか(例えば、svt_flagが1に設定される)を示す。符号化ブロックフラグ(coded block flag, cbf)は、HEVCで使用されるように、残差ブロックが色成分のゼロではない変換係数を含むか否かを示すために利用できる。また、ルート符号化ブロックフラグ(ルートcbf)は、HEVCで使用されるように、残差ブロックが任意の色成分のゼロではない変換係数を含むか否かを示すために利用できる。特定の例として、画像ブロックがインター予測を用いて予測され、残差ブロックの幅及び残差ブロックの高さのいずれかが所定の範囲[a1,a2]に含まれるとき、るとき、残差ブロックは、SVTを使用することを許可される。ここで、a1=16及びa2=64、a1=8及びa2=64、又はa1=16及びa2=128である。a1及びa2の値は、所定の固定値であり得る。値は、ビットストリーム内のスライスヘッダ又はシーケンスパラメータセット(sequence parameter set, SPS)から導出されてもよい。残差ブロックがSVtを利用しないとき、変換ブロックサイズは、残差ブロックサイズの幅及び高さとして設定される。その他の場合、変換サイズは、SVT変換タイプに基づき決定される。
【0327】
デコーダが、SVTが残差ブロックのために使用されたことを決定すると、デコーダは、使用されるSVT変換のタイプを決定し、SVTタイプに従い変換ブロックサイズを導出する。残差ブロックのために許可されたSVTタイプは、残差ブロックの幅及び高さに基づき決定される。残差ブロックの幅が範囲[a1,a2]内にある場合、
図16に示すようなSVT−V変換が許可される。このような値は上述された。残差ブロックの高さが範囲[a1,a2]内にある場合、
図16に示すようなSVT−H変換が許可される。このような値は上述された。SVTは、残差ブロック内のルマ成分のみについて使用されてよく、又はSVTは残差ブロック内のルマ及びクロマ成分の両方について使用されてよい。SVTがルマ成分にのみ使用されるとき、ルマ成分残差情報はSVTにより変換され、クロマ成分は残差ブロックのサイズの変換により変換される。SVT−V及びSVT−Hの両方が許可されるとき、svt_type_flagのようなフラグがビットストリーム内に符号化されてよい。svt_type_flagは、SVT−Vが残差ブロックのために使用されるか(例えば、svt_type_flagが0に設定される)、又はSVT−Hが残差ブロックのために使用されるか(例えば、svt_type_flagが1に設定される)を示す。SVT変換のタイプが決定されると、変換ブロックサイズは、シグナリングされたSVTタイプに従い設定される(例えば、SVT−Vではw_t=w/2及びh_t=h、SVT−Hではw_t=w及びh_t=h/2)。SVT−Tのみが許可される又はSVT−Hのみが許可されるとき、svt_type_flagはビットストリーム内に符号化されなくてよい。このような場合、デコーダは、許可されたSVTタイプに基づき変換ブロックサイズを推定できる。
【0328】
SVTタイプ及びサイズが決定されると、デコーダはブロック2007に進む。ブロック2007で、デコーダは、変換のタイプと共に、残差ブロックに対する変換の位置を決定する。変換ブロックの位置は、ビットストリーム内のシンタックス要素に従い決定できる。例えば、位置インデックスは、直接シグナリングされ、したがって、幾つかの例ではビットストリームからパースできる。他の例では、位置は、
図5〜7に関して議論したように、推定できる。具体的に、変換のための候補位置は、CPSS関数に従い決定できる。CPSS関数は、残差ブロックの幅、残差ブロックの高さ、ブロック2005で決定されたようなSVTタイプ、変換のステップサイズ、及び/又は変換のカバーする残差ブロックの部分を考慮することにより候補位置を決定できる。デコーダは、次に、上述の
図18に関して議論したように候補位置選択確率に従い正しい候補位置をシグナリングするコードを含むpインデックスを取得することにより、候補位置から変換ブロック位置を決定できる。上述の
図18に関して議論したように、変換ブロック位置が分かると、デコーダは、変換ブロックにより利用される変換のタイプを推定できる。したがって、エンコーダは、対応する逆変換を選択できる。
【0329】
ブロック2009で、デコーダは、ブロック2005で決定された変換ブロックサイズに基づき、変換ブロックの変換係数をパースする。この処理は、HEVC、H.264、及び/又は高度ビデオ符号化(advance video coding, AVC)において利用される変換係数パースメカニズムに従い達成されてよい。変換係数は、ランレングス符号化及び/又は変換係数グループ(transform coefficient groups, CG)のセットを用いて符号化されてよい。留意すべきことに、ブロック2009は、幾つかの例ではブロック2007の前に実行されてよい。
【0330】
ブロック2011で、残差ブロックは、以上で決定されたような変換位置、変換係数、及び変換タイプに基づき再構成される。具体的に、サイズw_t×h_tの逆量子化及び逆変換が、残差ブロックの残差サンプルを復元するために変換係数に適用される。残差サンプルを有する残差ブロックのサイズは、w_t×h_tである。逆変換は、ブロック2007で決定された位置に依存する変換タイプに従い、逆DCT又は逆DSTであってよい。残差サンプルは、変換ブロック位置に従い、残差ブロック内の対応する領域に割り当てられる。残差ブロックの内部の及び変換ブロックの外部の任意の残差サンプルは、0に設定されてよい。例えば、SVT−Vが利用されるとき、候補位置の数は5であり、位置インデックスは5番目の変換ブロック位置を示し、再構成された残差サンプルは変換候補位置1700(e)にある領域Aに割り当てられ、領域Aの左のサイズ(w/2)×hの領域は、0個の残差サンプルを有する。
【0331】
任意的なブロック2013で、再構成されたブロックの残差ブロック情報は、
図19に関して議論したように、水平方向にフリッピングされてよい。上述のように、これは、デコーダにおける変換ブロックが逆DSTを利用し、右側の近隣ブロックが既に再構成されており、左側の近隣が未だ再構成されていないとき生じ得る。具体的に、エンコーダは、符号化効率を向上するために、上述の場合にDST変換を適用する前に、残差ブロックを水平方向にフリッピングしてよい。したがって、任意的なブロック2013は、正確な再構成ブロックを生成するために、エンコーダにおいて、このような水平フリッピングを修正するために利用されてよい。
【0332】
ブロック2015で、再構成された残差ブロックは、符号化ユニットの部分としてサンプルを含む再構成された画像ブロックを生成するために、予測ブロックにより構成されてよい。フィルタリング処理も、HEVCにおけるデブロッキングフィルタ及びサンプル適応オフセット(sample adaptive offset, SAO)処理のように、再構成されたサンプルに適用されてよい。再構成された画像ブロックは、次に、メディア/ビデオファイルのフレームを生成するために、同様の方法で風号された他の画像ブロックと結合されてよい。再構成されたメディアファイルは、次に、モニタ又は他のディスプレイ装置上でユーザに表示されてよい。
【0333】
留意すべきことに、方法2000と等価な実装は、残差ブロック内の再構成されたサンプルを生成するために利用できる。具体的に、変換ブロックの残差サンプルは、最初に残差ブロックを復元することなく、変換ブロック位置情報により示される位置において予測ブロックにより直接構成できる。
【0334】
まとめると、以上の開示は、異なる位置にある変換ブロックに対して複数の変換タイプを適応的に利用するメカニズムを含む。さらに、本開示は、符号化効率をサポートするために残差ブロック内の残差サンプルを水平方向にフリッピングすることを許可する。これは、変換ブロックがエンコーダ及びデコーダにおいてそれぞれDST及び逆DSTを使用するとき、及び右隣ブロックが利用可能であり左隣が利用可能ではないとき、生じる。さらに、本開示は、残差ブロックに関連付けられたインター予測に基づくビットストリーム内の位置情報の符号化をサポートするメカニズムを含む。
【0335】
追加の実施形態は、以下の例で分かる。
例1。コンピューティング装置で実施される方法であって、前記方法は、
前記コンピューティング装置のプロセッサにおいて、ビットストリームを受信するステップであって、前記ビットストリームは、前記コンピューティング装置のメモリに格納され、前記コンピューティング装置の受信機を介して受信される、ステップと、
前記プロセッサにおいて、前記ビットストリームから、予測ブロック及び対応する変換された残差ブロックを受信するステップと、
前記プロセッサにより、前記変換された残差ブロックを生成するために利用された空間変化変換(spatial varying transform, SVT)変換のタイプを決定するステップと、
前記プロセッサにより、前記変換された残差ブロックに対する前記SVT変換の位置を決定するステップと、
前記プロセッサにより、再構成された残差ブロックを生成するために、前記変換された残差ブロックに前記SVT変換の逆を適用するステップと、
前記プロセッサにより、モニタ上での表示のために、画像ブロックを性構成するために、前記予測ブロックにより前記再構成された残差ブロックを構成するステップと、を含む方法。
例2。前記SVT変換の前記タイプは、SVT垂直(SVT vertical, SVT−V)タイプ又はSVT水平(SVT horizontal, SVT−H)タイプであり、前記SVT−Vタイプは前記変換された残差ブロックの高さと等しい高さ及び前記変換された残差ブロックの幅の半分の幅を含み、前記SVT−Hタイプは前記変換された残差ブロックの高さの半分の高さ及び前記変換された残差ブロックの幅と等しい幅を含む、例1の方法。
例3。SVT変換の前記タイプは、前記ビットストリームからsvt_type_flagをパースすることにより、決定される、例1〜2のいずれか1つの方法。
例4。SVT変換の前記タイプは、前記残差ブロックに対して1種類ののみのSVT変換が許可されているとき、前記プロセッサにより、推定により決定される、例1〜3のいずれか1つの方法。
例5。前記SVT変換の前記位置は、前記プロセッサにより、前記ビットストリームから位置インデックスをパースすることにより決定される、例1〜4のいずれか1つの方法。
例6。前記位置インデックスは、候補位置ステップサイズ(candidate position step size, CPSS)に従い決定された候補位置のセットからの前記位置を示すバイナリコードを含む、例1〜5のいずれか1つの方法。
例7。前記SVT変換の最も有望な位置は、前記位置インデックスを示すバイナリコードの中の最小ビット数が割り当てられる。
例8。前記SVT変換の前記位置は、単一の候補位置が前記SVT変換のために利用可能なとき、前記プロセッサにより推定される、例1〜7のいずれか1つの方法。
例9。前記SVT変換の前記位置は、前記残差ブロックがインター予測モードにおけるテンプレートマッチングにより生成されたとき、前記プロセッサにより推定される、例1〜8のいずれか1つの方法。
例10。前記プロセッサにより、前記SVT変換の前記位置に基づき、前記SVT変換の逆を決定するステップを更に含む例1〜9のいずれか1つの方法。
例11。前記プロセッサにより、逆離散サイン変換(Discrete Sine Transform, DST)が、残差ブロックの左境界に位置するSVT垂直(SVT vertical, SVT−V)タイプ変換のために利用され、
逆DSTが、前記プロセッサにより、前記残差ブロックの上境界に位置するSVT水平(SVT horizontal, SVT−H)タイプ変換のために利用され、
逆離散コサイン変換(Discrete Cosine Transform, DCT)が、前記プロセッサにより、前記残差ブロックの右境界に位置するSVT−Vタイプ変換のために利用され、
又は、逆DCTが、前記プロセッサにより、前記残差ブロックの下境界に位置するSVT−Hタイプ変換のために利用される、例1〜10のいずれか1つの方法。
例12。前記プロセッサにより、前記再構成された残差ブロックに関連付けられた符号化ユニットの右隣が再構成されており、前記符号化ユニットの左隣が再構成されていないとき、前記再構成された残差ブロックを前記予測ブロックにより構成する前に、前記再構成された残差ブロック内のサンプルを水平方向にフリッピングするステップを更に含む例1〜11のいずれか1つの方法。
例13。コンピューティング装置において実施される方法であって、前記方法は、
前記コンピューティング装置のプロセッサにおいて、ビデオキャプチャ装置からビデオ信号を受信するステップであって、前記ビデオ信号は画像ブロックを含む、ステップと、
前記プロセッサにより、前記画像ブロックを表すために、予測ブロック及び残差ブロックを生成するステップと、
前記プロセッサにより、空間変化変換(spatial varying transform, SVT)変換を利用して、前記残差ブロックを変換された残差ブロックに変換するステップと、
前記プロセッサにより、ビットストリーム内で前記SVT変換のタイプを示すステップと、
前記プロセッサにより、前記ビットストリーム内で前記SVT変換の位置を示すステップと、
前記プロセッサにより、デコーダによる使用のために、前記予測ブロック及び前記変換された残差ブロックを前記ビットストリームの中に符号化するステップであって、前記ビットストリームは、送信機による前記デコーダへの伝送のために、前記コンピューティング装置のメモリに格納される、ステップと、を含む方法。
例14。前記SVT変換の前記タイプは、SVT垂直(SVT vertical, SVT−V)タイプ又はSVT水平(SVT horizontal, SVT−H)タイプであり、前記SVT−Vタイプは前記残差ブロックの高さと等しい高さ及び前記残差ブロックの幅の半分の幅を含み、前記SVT−Hタイプは前記残差ブロックの高さの半分の高さ及び前記残差ブロックの幅と等しい幅を含む、例13の方法。
例15。前記SVT変換の前記位置は、位置インデックスの中に符号化される、例13〜14のいずれか1つの方法。
例16。前記位置インデックスは、候補位置ステップサイズ(candidate position step size, CPSS)に従い決定された候補位置のセットからの前記位置を示すバイナリコードを含む、例13〜15のいずれか1つの方法。
例17。前記SVT変換の最も有望な位置は、前記位置インデックスを示すバイナリコードの中の最小ビット数として割り当てられる、例13〜16のいずれか1つの方法。
例18。前記プロセッサにより、前記SVT変換の前記位置に基づき、前記SVT変換のための変換アルゴリズムを選択するステップを更に含む例13〜17のいずれか1つの方法。
例19。前記プロセッサにより、離散サイン変換(Discrete Sine Transform, DST)アルゴリズムが、残差ブロックの左境界に位置するSVT垂直(SVT vertical, SVT−V)タイプ変換のために利用され、
DSTアルゴリズムが、前記プロセッサにより、前記残差ブロックの上境界に位置するSVT水平(SVT horizontal, SVT−H)タイプ変換のために選択され、
離散コサイン変換(Discrete Cosine Transform, DCT)アルゴリズムが、前記プロセッサにより、前記残差ブロックの右境界に位置するSVT−Vタイプ変換のために選択され、
又は、DCTアルゴリズムが、前記プロセッサにより、前記残差ブロックの下境界に位置するSVT−Hタイプ変換のために選択される、例13〜18のいずれか1つの方法。
例20。前記残差ブロックに関連付けられた符号化ユニットの右隣が符号化されており、前記符号化ユニットの左隣が再構成されていないとき、前記プロセッサにより、前記残差ブロックを前記変換された残差ブロックに変換する前に、前記プロセッサにより、前記残差ブロック内のサンプルを水平方向にフリッピングするステップを更に含む例13〜19のいずれか1つの方法。
【0336】
以下の文献は参照により組み込まれる:C. Zhang, K. Ugur, J. Lainema, A. Hallapuro and M. Gabbouj, “Video Coding Using Spatially Varying Transform”, IEEE Trans. Image Process., vol. 21, no.2, Feb. 2011, pp.127−140。
【0337】
本開示は、別の改良されたSVT方式を更に導入する。改良点は、SVTブロックの水平変換のタイプ及び垂直変換のタイプが、SVTタイプ及びSVTブロック位置に基づき決定されることである。水平変換は、垂直変換と異なり得る。これまでは、SVTブロックの水平変換のタイプ及び垂直変換のタイプは、SVTブロック位置のみに基づき決定され、常に同じである。
【0338】
第1の実施形態は、残差ブロックの復号の処理を説明した。ビデオデータの少なくとも1つのピクチャを含むビットストリームが復号される。ピクチャは、複数の長方形画像領域に分けられ、各領域は符号化木ユニット(Coding Tree Unit, CTU)に対応する。CTUは、ビットストリームに含まれるブロックパーティション情報に従い、HEVCにおける符号化ユニットのような複数のブロックに分けられる。ブロックの符号化情報は、ビットストリームからパースされ、ブロックのピクセルは符号化情報に基づき再構成される。
【0339】
本実施形態では、SVTは、インター予測されたブロックのために使用されるよう制限される。SVTは、イントラ予測されたブロックのためにも使用されてよい。更に高度な方法では、SVTは、特定のインター予測方法(例えば、並進移動モデルに基づく動き補償)を用いるブロックに許可されてよいが、他のインター予測方法(例えば、アフィンモデルに基づく動き補償)を用いるブロックには許可されない。別の例では、SVTは、マージモード又は1/4ペル動きベクトル差精度を有する高度動きベクトル予測(advanced motion vector prediction, AMVP)モードを用いる予測ブロックのために許可されるが、アフィンマージモード、アフィンインターモード、又は1ペル若しくは4ペル動きベクトル差精度を有するAMVPモードを用いる予測ブロックについては許可されなくてよい。別の例では、SVTは、2より小さいマージインデックスを有するマージモードを用いる予測ブロックについて許可されるが、2より小さくないマージインデックスを有するマージモードを用いる予測ブロックについて許可されなくてよい。マージモード及びAMVPモードは、H.265/HEVC標準において参照され得る。アフィンマージモード及びアフィンインターモードは、共同ビデオ探索チーム(Joint Video Exploration Team, JVET)による共同探索モデル(Joint Exploration Model, JEM)コーデックにおいて参照され得る。
【0340】
一例では、ブロックは、符号化ユニットを表してよい。ここで、符号化ユニットは、1個の予測ブロック及び1個の残差ブロックを含んでよい。予測ブロックは、符号化ユニットの全部の予測サンプルを含んでよく、残差ブロックは、符号化ユニットの全部の残差サンプルを含んでよく、予測ブロックは残差ブロックと同じサイズである。別の例では、ブロックは符号化ユニットを表してよく、符号化ユニットは、2個の予測ブロック及び1個の残差ブロックを含んでよく、各予測ブロックは符号化ユニットの予測サンプルの一部を含んでよく、残差ブロックは符号化ユニットの全部の残差サンプルを含んでよい。別の例では、ブロックは、符号化ユニットを表してよい。符号化ユニットは、2個の予測ブロック及び4個の残差ブロックを含んでよい。符号化ユニット内の残差ブロックのパーティションパターンは、HEVCにおける残差4分木(Residual Quad−Tree, RQT)のように、ビットストリーム内でシグナリングされてよい。
【0341】
ブロックは、画像サンプル(又はピクセル)のY成分のみを含んでよく、又は画像サンプルのY、U、及びV成分を含んでよい。
【0342】
サイズw×hの残差ブロックRoは、以下のステップにより再構成できる。
【0343】
ステップ1。残差ブロックRoの変換ブロックサイズを決定する。
【0344】
ステップ1.1。シンタックス要素に従い、SVTの使用を決定する。SVTを使用することを許可された残差ブロックについて、残差ブロックがY成分のゼロではない変換係数を有する(又は任意の色成分のゼロではない変換係数を有する)場合、フラグ(つまりsvt_flag)がビットストリームからパースされる。フラグは、残差ブロックが残差ブロックと同じサイズの変換ブロックを用いて符号化されたか(例えば、svt_flag=0)、又は残差ブロックが残差ブロックより小さいサイズの変換ブロックにより符号化されたか(例えば、svt_flag=1)を示す。ブロックが色成分のゼロではない変換係数を有するか否かは、HEVCにおいて使用されるような符号化ブロックフラグ(coded block flag, cbf)により示されてよい。ブロックが任意の色成分のゼロではない変換係数を有するか否かは、HEVCにおいて使用されるようなルート符号化ブロックフラグ(ルートcbf)により示されてよい。
【0345】
一例では、ブロックは、以下の条件が満たされる場合に、SVTを使用することを許可される。
1)ブロックがインター予測を用いて予測される。
2)ブロック幅又ブロック幅又はブロック高さのいずれかが、所定の範囲[a1,a2]に含まれる。例えば、a1=16及びa2=64、又はa1=8及びa2=64、又はa1=16及びa2=128。a1及びa2の値は、固定値であり得る。値は、シーケンスパラメータセット(sequence parameter set, SPS)又はスライスヘッダからも導出できる。
【0346】
別の例では、ブロックは、以下の条件が満たされる場合に、SVTを使用することを許可される。
1)ブロックが、閾(例えば、1又は2又は3)より小さいマージインデックスを有するマージモードを用いて、又は1/4ペル動きベクトル差精度を有するAMVPモードを用いて予測される。
2)ブロック幅又ブロックの1つの次元が、所定の範囲[a1,a2]内に含まれ、ブロックの他の次元が閾a3より大きくない。例えば、a1=8、a2=32、及びa3=32。パラメータa1は、最小変換サイズの2倍として設定されてよく、a2及びa3は両方とも最大変換サイズとして設定されてよい。a1、a2、及びa3の値は、固定値であり得る。値は、シーケンスパラメータセット(sequence parameter set, SPS)又はスライスヘッダからも導出できる。
【0347】
ブロックがSVTを使用しない場合、変換ブロックサイズはw×hとして設定される。その他の場合、変換サイズを決定するために、ステップ1.2が適用される。
【0348】
ステップ1.2。シンタックス要素に従いSVTのタイプを決定し、SVTタイプに従い変換ブロックサイズを導出する。残差ブロックのために許可されたSVTタイプは、残差ブロックの幅及び高さに基づき決定される。wが範囲[a1,a2]に含まれ、hがa3より大きくない場合に、SVT−Vが許可される。hが範囲[a1,a2]にあり、wがa3より大きくない場合に、SVT−Hが許可される。SVTはY成分のためにのみ使用されてよく、又は3つ全部の成分のために使用されてよい。SVTがY成分にのみ使用されるとき、Y成分残差はSVTにより変換され、U及びV成分は残差ブロックのサイズに従い変換される。
【0349】
SVT−V及びSVT−Hの両方が許可されるとき、残差ブロックのためにSVT−Vが使用されるか(例えば、svt_type_flag=0)、又は残差ブロックのためにSVT−Hが使用されるか(例えば、svt_type_flag=1)を示す1つのフラグ(つまりsvt_type_flag)がビットストリームからパースされ、変換ブロックサイズはシグナリングされたSVTタイプに従い設定される(つまり、SVT−Vではw_t=w/2及びh_t=h、SVT−Hではw_t=w及びh_t=h/2)。SVT−Vのみが許可される又はSVT−Hのみが許可されるとき、svt_type_flagはビットストリームからパースされず、変換ブロックサイズは許可されたSVTタイプに従い設定される。
【0350】
ステップ2。シンタックス要素に従い変換ブロック位置を決定し、SVTのタイプ及び変換ブロック位置情報に基づき変換ブロックの変換タイプを決定する。
【0351】
ステップ2.1。シンタックス要素に従い、変換ブロック位置を決定する。
【0352】
位置インデックスPは、ビットストリームからパースされ、残差ブロックの左上角に対する変換ブロックの左上角の位置オフセットZは、Z=s×Pとして決定される。ここで、sは候補位置ステップサイズ(candidate position step size, CPSS)である。SVT−Vが使用される場合、Pの値は、0,1,...,(w−w_t)/sの間であり、SVT−Hが使用される場合、Pの値は、0,1,...,(h−h_t)/sの間である。より具体的には、(0,0)が残差ブロックの左上角の座標を表すとすると、変換ブロックの左上角の座標は、SVT−Vでは(Z,0)であり、SVT−Hでは(0,Z)である。
【0353】
一例では、CPSSは、SVT−Vではs=w/M1として、又はSVT−Hではs=h/M2として計算される。ここで、w及びhはそれぞれ残差ブロックの幅及び高さであり、M1及びM2は2〜8の範囲の所定の整数である。より多くの候補位置は、より大きいM1又はM2の値により許可される。本例では、M1及びM2は両方とも8に設定される。したがって、Pの値は0〜4の間である。候補位置は、
図21に示される。
【0354】
別の例では、CPSSは、SVT−Vではs=max(w/M1,Th1)として、又はSVT−Hではs=max(h/M2,Th2)として計算される。ここで、Th1及びTh2は最小ステップサイズを指定する所定の整数である。Th1及びTh2は2以上の整数である。この例では、Th1及びTh2は4として設定され、M1及びM2は8として設定される。この例では、異なるブロックサイズは異なる数の候補位置を有してよい。例えば、w=8のとき、2個の候補位置(
図21(a)及び
図21(e)により示される)が選択のために利用可能であり、w=16のとき、3個の候補位置(
図21(a)、
図21(c)及び
図21(e)により示される)が選択のために利用可能であり、w>16のとき、5個の位置が選択のために利用可能である。
【0355】
別の例では、CPSSは、SVT−Vではs=w/M1として、又はSVT−Hではs=h/M2として計算される。ここで、M1及びM2は4として設定される。したがって、3個の候補位置が許可される。
【0356】
別の例では、CPSSは、SVT−Vではs=w/M1として、又はSVT−Hではs=h/M2として計算される。ここで、M1及びM2は2として設定される。したがって、2個の候補位置が許可される。
【0357】
別の例では、CPSSは、SVT−Vではs=max(w/M1,Th1)として、又はSVT−Hではs=max(h/M2,Th2)として設定される。ここで、T1及びT2は2として設定され、M1は、w≧hならば8として設定され、w<hならば4として設定され、M2は、h≧wならば8として設定され、h<wならば4として設定される。この場合、SVT−H又はSVT−Vの候補位置の数は、残差ブロックのアスペクト比に更に依存してよい。
【0358】
別の例では、CPSSは、SVT−Vではs=max(w/M1,Th1)として、又はSVT−Hではs=max(h/M2,Th2)として計算される。ここで、M1、M2、Th1及びTh2の値ビットストリーム内の高レベルシンタックス構造(例えば、シーケンスパラメータセット)から導出される。M1及びM2は、シンタックス要素からパースされた同じ値を共有してよく、Th1及びTh2は、別のシンタックス要素からパースされた同じ値を共有してよい。
【0359】
位置インデックスPは、切り捨てられた単進符号を用いて、1つ以上のビンへと2値化されてよい。例えば、P値が0〜4の範囲にある場合、P値0、4、2、3、及び1は、それぞれ0、01、001、0001、及び0000として2値化され、P値が範囲〜〜1の範囲にある場合、P値0及び1は、それぞれ0及び1として2値化される。
【0360】
位置インデックスPは、1つの最も有望な位置及び幾つかの残りの位置を使用することにより、1つ以上のビンへと2値化されてよい。左及び上の近隣が利用可能であるとき、最も有望な位置は、残差ブロックの右下角をカバーする位置として設定されてよい。一例では、P値が0〜4の範囲にあり、位置4が最も有望な位置として設定される場合、P値4、0、1、2、及び3は、それぞれ1、000、001、010、及び011として2値化され、P値が範囲〜〜2の範囲にあり、位置2が最も有望な位置として設定される場合、P値2、0及び1は、それぞれ1、01、及び00として2値化される。
【0361】
ステップ2.2。SVTのタイプ及び変換ブロック位置情報に基づき、変換ブロックの変換タイプを決定する。変換タイプは、2D分離可能変換の水平変換及び垂直変換を含む。
【0362】
図22に示されるような3個の候補位置が許可される場合を一例として取り上げる。位置0は左上角をカバーし、位置2は右下角をカバーする。位置1は、残差ブロックの中央にある。
図22に示されるように、SVT−T及びSVT−Hの両方について、3つの位置がある。
【0363】
2次元変換は、1次元の水平変換及び垂直変換に分離可能であってよい。残差を変換係数へと換える順方向2D変換は、JEMコーデックにおいて実施されるように、先ず、ブロックTAを生成するために残差ブロックに対して水平変換を適用し、次に、変換係数ブロックを生成するためにブロックTAに対して垂直変換を適用することにより、実現されてよい。したがって、変換係数を残差に換える逆2D変換は、JEMコーデックにおいて実施されるように、先ず、変換係数ブロックに逆垂直変換を適用してブロックTBを生成し、次に、ブロックTBに逆水平変換を適用して残差ブロックを生成することにより、実現されてよい。
【0364】
一例では、表1にリストされるように、SVT−V位置0の水平及び垂直変換はDCT−8及びDST−7であり、SVT−V位置1の水平及び垂直変換はDST−1及びDST−7であり、SVT−V位置2の水平及び垂直変換はDST−7及びDST−7であり、SVT−H位置0の水平及び垂直変換はDST−7及びDCT−8であり、SVT−H位置1の水平及び垂直変換はDST−7及びDST−1であり、SVT−H位置2の水平及び垂直変換はDST−7及びDST−7である。本例では、SVT−Vの垂直変換及びSVT−Hの水平変換は、DST−7に設定され、他方の変換はSVT位置に基づく。
表1:異なるSVTタイプ及び位置の1D垂直及び水平変換の一例
【表1】
代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、一例では、表1にリストされるように、SVT−V位置0の水平及び垂直変換はDCT−4及びDST−4であり、SVT−V位置1の水平及び垂直変換はDST−1及びDST−4であり、SVT−V位置2の水平及び垂直変換はDST−4及びDST−4であり、SVT−H位置0の水平及び垂直変換はDST−4及びDCT−4であり、SVT−H位置1の水平及び垂直変換はDST−4及びDST−1であり、SVT−H位置2の水平及び垂直変換はDST−4及びDST−4である。本例では、SVT−Vの垂直変換及びSVT−Hの水平変換は、DST−4として設定され、他方の変換はSVT位置に基づく。
表1’:異なるSVTタイプ及び位置の1D垂直及び水平変換の一例
【表2】
【0365】
別の例では、異なるSVTタイプ及び位置の水平変換及び垂直変換は、表2にリストされる。本例では、SVT−Vの垂直変換及びSVT−Hの水平変換は、DCT−2として設定され、他方の変換はSVT位置に基づく。
表2:異なるSVTタイプ及び位置の1D垂直及び水平変換の一例
【表3】
代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、
表2’:異なるSVTタイプ及び位置の1D垂直及び水平変換の一例
【表4】
【0366】
別の例では、異なるSVTタイプ及び位置の水平変換及び垂直変換は、表3にリストされる。本例では、水平変換及び垂直変換は、SVT位置によってのみ決定される。
表3:異なるSVTタイプ及び位置の1D垂直及び水平変換の一例
【表5】
代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、
表3’:異なるSVTタイプ及び位置の1D垂直及び水平変換の一例
【表6】
【0367】
別の例では、異なるSVTタイプ及び位置の水平変換及び垂直変換は、表4にリストされる。
表4:異なるSVTタイプ及び位置の1D垂直及び水平変換の一例
【表7】
代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、
表4’:異なるSVTタイプ及び位置の1D垂直及び水平変換の一例
【表8】
【0368】
別の例では、異なるSVTタイプ及び位置の水平変換及び垂直変換は、表5にリストされる。
表5:異なるSVTタイプ及び位置の1D垂直及び水平変換の一例
【表9】
代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、
表5’:異なるSVTタイプ及び位置の1D垂直及び水平変換の一例
【表10】
【0369】
別の例では、異なるSVTタイプ及び位置の水平変換及び垂直変換は、表6にリストされる。
表6:異なるSVTタイプ及び位置の1D垂直及び水平変換の一例
【表11】
代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、
表6’:異なるSVTタイプ及び位置の1D垂直及び水平変換の一例
【表12】
【0370】
位置に依存する複数の変換は、ルマ変換ブロックのみに適用されてよく、対応するクロマ変換ブロックは、逆変換処理において常に逆DCT−2を使用する。
【0371】
ステップ3。変換ブロックサイズに基づき、変換ブロックの変換係数をパースする。
【0372】
これは、HEVC又はH.264/AVCにおける変換係数パースのようなビデオ復号において一般的に使用される処理である。変換係数は、ランレングス符号化を用いて符号化される、又は変換係数グループ(transform coefficient groups, CG)のセットのようにより高度に符号化されてよい。
【0373】
ステップ3はステップ2の前に行われてよい。
【0374】
ステップ4。変換係数及び変換ブロック位置及び逆変換のタイプに基づき、残差ブロックRoを再構成する。
【0375】
サイズw_t×h_tの逆量子化及び逆変換が、残差サンプルを復元するために変換係数に適用される。残差サンプルのサイズはw_t×h_tであり、これは変換ブロックサイズと同じである。逆変換は2D分離可能変換である。量子化された変換係数ブロックは、先ず、逆垂直変換により変換されて、ブロックTCを生成し、次に、ブロックTCは逆水平変換により変換される。ここで、逆水平変換及び逆垂直変換は、ステップ2.2において、変換ブロック位置に基づき、又は変換ブロック位置と変換ブロックのSVTタイプとの両方に基づき決定される。
【0376】
残差サンプルは、変換ブロック位置に従い、残差ブロックRo内の対応する領域に割り当てられ、残差ブロック内の残りのサンプルは0に設定される。例えば、SVT−Vが利用され候補位置の数が5であり、位置インデックスが4である場合、再構成された残差サンプルは、
図21(e)の領域Aに割り当てられ、領域Aの左へサイズ(w/2)×hの領域は0の残差を有する。
【0377】
ステップ1〜ステップ4を行った後、再構成された残差ブロックは、符号化ユニット内の再構成されたサンプルを生成するために、予測ブロックにより構成されてよい。フィルタリング処理は、HEVCにおけるデブロッキングフィルタ及びサンプル適応オフセット(sample adaptive offset, SAO)処理のように、後に再構成されたサンプルに適用されてよい。
【0378】
既存のソリューションと異なり,本発明のソリューションは、SVTタイプ及び位置情報に基づき、変換ブロックについて複数の変換タイプを適用的に使用する。
【0379】
本開示は、改良されたSVT方式を導入する。
図23に示すように、SVTーH及びSVT−Vとして示される2種類のSVTブロックが残差符号化のために使用される。これらは(1)SVT−V:w_t=w/2及びh_t=h、(2)SVT−H:w_t=w及びh_t=h/2である。
【0380】
SVT−VはSVT−IIと同様であり、SVT−HはSVT−IIIと同様である。SVT−II及びSVT−IIIと比べて、SVT−V及びSVT−Hにおける変換ブロックは、残差ブロックの半分にまで拡大され、残差ブロック内のより多くの残差をカバーできる。SVT−II又はSVT−HはSVT−V又はSVT−Hを置き換えるために使用されてよいことに留意する。
【0381】
候補位置は、候補位置ステップサイズ(Candidate Position Step Size, CPSS)により決定される。したがって、候補位置は、CPSSにより指定された等間隔で離される。異なる実施形態では、候補位置の数は、わずか5にまで削減される。これは、最良の変換ブロック位置を決定するために、位置情報のオーバヘッド及びエンコーダの複雑性を軽減する。
【0382】
CPSSは、2つの隣接する候補位置の間の距離を示し(例えば、[1]の中の1)、残差ブロックの幅又は高さに基づき計算される。より具体的には、SVT−Vの候補位置ステップサイズは、h_b=max(w/M1,Th1)として決定される。ここで、M1及びTh1は所定の整数であり、max(a,b)は、aとbの間の最大値を選択する演算である。同様に、SVT−Hの候補位置ステップサイズは、w_b=max(w/M2,Th2)として決定される。ここで、M2及びTh2は所定の整数である。M1及びM2は、2と8の間の整数である。例えば、M1=M2=8、又はM1=M2=4、又はM1=M2=2。Th1及びTh2は2以上の整数である。M1、M2、Th1及びTh2は固定値として設定でき、又はそれらはビットストリーム内の高レベルシンタックス構造(例えば、シーケンスパラメータセット)から導出できる。
【0383】
SVT情報(例えば、残差ブロックについてのSVTの使用、SVTのタイプ、及び変換ブロックの位置)の符号化は、[1]のものと異なり、残差ブロックの変換係数を分析することにより更に改良される。
【0384】
SVT−V:w_t=w/2及びh_t=hの場合には、SVT情報は、復号された変換係数から部分的に導出されてよい。一例では、位置情報は、変換係数レベルの和から導出されてよい。別の例では、SVTタイプ情報は、変換係数の第1グループ(例えば、スキャン順に最初の16個の係数)の和から導出され、位置情報は、変換係数の第2グループ(例えば、変換ブロックの中の残りの係数)の和から導出される。
【0385】
SVT−H:w_t=w及びh_t=h/2の場合には、候補位置の数は、変換係数情報に従い決定され、位置情報は候補位置の数に基づき復号される。
【0387】
本実施形態は、残差ブロックの復号の処理を説明する。ビデオデータの少なくとも1つのピクチャを含むビットストリームが復号される。ピクチャは、複数の長方形画像領域に分けられ、各領域は符号化木ユニット(Coding Tree Unit, CTU)に対応する。CTUは、ビットストリームに含まれるブロックパーティション情報に従い、高効率ビデオ符号化(High Efficiency Video Coding, HEVC)における符号化ユニットのような複数のブロックに分けられる。ブロックの符号化情報は、ビットストリームからパースされ、ブロックのピクセルは符号化情報に基づき再構成される。
【0388】
本実施形態では、SVTは、インター予測されたブロックのために使用されるよう制限される。SVTは、イントラ予測されたブロックのためにも使用されてよい。更に高度な方法では、SVTは、特定のインター予測方法(例えば、並進移動モデルに基づく動き補償)を用いるブロックに許可されてよいが、他のインター予測方法(例えば、アフィンモデルに基づく動き補償)を用いるブロックには許可されない。
【0389】
一例では、ブロックは、符号化ユニットを表してよい。ここで、符号化ユニットは、1個の予測ブロック及び1個の残差ブロックを含んでよい。予測ブロックは、符号化ユニットの全部の予測サンプルを含んでよく、残差ブロックは、符号化ユニットの全部の残差サンプルを含んでよく、予測ブロックは残差ブロックと同じサイズである。別の例では、ブロックは符号化ユニットを表してよく、符号化ユニットは、2個の予測ブロック及び1個の残差ブロックを含んでよく、各予測ブロックは符号化ユニットの予測サンプルの一部を含んでよく、残差ブロックは符号化ユニットの全部の残差サンプルを含んでよい。別の例では、ブロックは、符号化ユニットを表してよい。符号化ユニットは、2個の予測ブロック及び4個の残差ブロックを含んでよい。符号化ユニット内の残差ブロックのパーティションパターンは、HEVCにおける残差4分木(Residual Quad−Tree, RQT)のように、ビットストリーム内でシグナリングされてよい。
【0390】
ブロックは、画像サンプル(又はピクセル)のY成分のみを含んでよく、又は画像サンプルのY、U、及びV成分を含んでよい。
【0391】
サイズw×hの残差ブロックRoは、以下のステップにより再構成できる。
【0392】
ステップ1。残差ブロックRoの変換ブロックサイズを決定する。
【0393】
ステップ1.1。シンタックス要素に従い、SVTの使用を決定する。SVTを使用することを許可された残差ブロックについて、残差ブロックがY成分のゼロではない変換係数を有する(又は残差ブロックが任意の色成分のゼロではない変換係数を有する)場合、フラグ(つまりsvt_flag)がビットストリームからパースされり。該フラグは、残差ブロックが、残差ブロックと同じサイズの変換ブロックを用いて符号化されたか(例えば、svt_flag=0)、又は残差ブロックが残差ブロックより小さいサイズの変換ブロックにより符号化されたか(例えば、svt_flag=1)を示す。ブロックが色成分のゼロではない変換係数を有するか否かは、HEVCにおいて使用されるような符号化ブロックフラグ(coded block flag, cbf)により示されてよい。ブロックが任意の色成分のゼロではない変換係数を有するか否かは、HEVCにおいて使用されるようなルート符号化ブロックフラグ(ルートcbf)により示されてよい。
【0394】
一例では、ブロックは、以下の条件が満たされる場合に、SVTを使用することを許可される。
【0395】
1)ブロックがインター予測を用いて予測される。
【0396】
2)ブロック幅又はブロック高さのいずれかが、所定の範囲[a1,a2]に含まれる。例えば、a1=16及びa2=64、又はa1=8及びa2=64、又はa1=16及びa2=128。a1及びa2の値は、固定値であり得る。値は、シーケンスパラメータセット(sequence parameter set, SPS)又はスライスヘッダからも導出できる。
【0397】
ブロックがSVTを使用しない場合、変換ブロックサイズはw×hとして設定される。その他の場合、変換サイズを決定するために、ステップ1.2が適用される。
【0398】
ステップ1.2。シンタックス要素に従いSVTのタイプを決定し、SVTタイプに従い変換ブロックサイズを導出する。残差ブロックのために許可されたSVTタイプは、残差ブロックの幅及び高さに基づき決定される。wが範囲[a1,a2]内にある場合に、SVT−Vが許可される。hが範囲[a1,a2]内にある場合に、SVT−Hが許可される。SVTはY成分のためにのみ使用されてよく、又は3つ全部の成分のために使用されてよい。SVTがY成分にのみ使用されるとき、Y成分残差はSVTにより変換され、U及びV成分は残差ブロックのサイズに従い変換される。
【0399】
SVT−V及びSVT−Hの両方が許可されるとき、残差ブロックのためにSVT−Vが使用されるか(例えば、svt_type_flag=0)、又は残差ブロックのためにSVT−Hが使用されるか(例えば、svt_type_flag=1)を示す1つのフラグ(つまりsvt_type_flag)がビットストリームからパースされ、変換ブロックサイズはシグナリングされたSVTタイプに従い設定される(つまり、SVT−Vではw_t=w/2及びh_t=h、SVT−Hではw_t=w及びh_t=h/2)。SVT−Vのみが許可される又はSVT−Hのみが許可されるとき、svt_type_flagはビットストリームからパースされず、変換ブロックサイズは許可されたSVTタイプに従い設定される。
【0400】
ステップ2。シンタックス要素に従い、変換ブロック位置を決定する。
【0401】
位置インデックスPは、ビットストリームからパースされ、残差ブロックの左上角に対する変換ブロックの左上角の位置オフセットZは、Z=s×Pとして決定される。ここで、sはCPSSである。SVT−Vが使用される場合、Pの値は、0,1,...,(w−w_t)/sの間であり、SVT−Hが使用される場合、Pの値は、0,1,...,(h−h_t)/sの間である。より具体的には、(0,0)が残差ブロックの左上角の座標を表すとすると、変換ブロックの左上角の座標は、SVT−Vでは(Z,0)であり、SVT−Hでは(0,Z)である。
【0402】
一例では、CPSSは、SVT−Vではs=w/M1として、又はSVT−Hではs=h/M2として計算される。ここで、w及びhはそれぞれ残差ブロックの幅及び高さであり、M1及びM2は2〜8の範囲の所定の整数である。より多くの候補位置は、より大きいM1又はM2の値により許可される。本例では、M1及びM2は両方とも8に設定される。したがって、Pの値は0〜4の間である。候補位置は、
図24に示される。
【0403】
別の例では、CPSSは、SVT−Vではs=max(w/M1,Th1)として、又はSVT−Hではs=max(h/M2,Th2)として計算される。ここで、Th1及びTh2は最小ステップサイズを指定する所定の整数である。Th1及びTh2は2以上の整数である。この例では、Th1及びTh2は4として設定され、M1及びM2は8として設定される。この例では、異なるブロックサイズは異なる数の候補位置を有してよい。例えば、w=8のとき、2個の候補位置(
図24(A)及び
図24(E)により示される)が選択のために利用可能であり、w=16のとき、3個の候補位置(
図24(A)、
図24(C)及び
図24(E)により示される)が選択のために利用可能であり、w>16のとき、5個の位置が選択のために利用可能である。
【0404】
別の例では、CPSSは、SVT−Vではs=w/M1として、又はSVT−Hではs=h/M2として計算される。ここで、M1及びM2は4として設定される。したがって、3個の候補位置が許可される。
【0405】
別の例では、CPSSは、SVT−Vではs=w/M1として、又はSVT−Hではs=h/M2として計算される。ここで、M1及びM2は2として設定される。したがって、2個の候補位置が許可される。
【0406】
別の例では、CPSSは、SVT−Vではs=max(w/M1,Th1)として、又はSVT−Hではs=max(h/M2,Th2)として設定される。ここで、T1及びT2は2として設定され、M1は、w≧hならば8として設定され、w<hならば4として設定され、M2は、h≧wならば8として設定され、h<wならば4として設定される。この場合、SVT−H又はSVT−Vの候補位置の数は、残差ブロックのアスペクト比に更に依存してよい。
【0407】
別の例では、CPSSは、SVT−Vではs=max(w/M1,Th1)として、又はSVT−Hではs=max(h/M2,Th2)として計算される。ここで、M1、M2、Th1及びTh2の値ビットストリーム内の高レベルシンタックス構造(例えば、シーケンスパラメータセット)から導出される。M1及びM2は、シンタックス要素からパースされた同じ値を共有してよく、Th1及びTh2は、別のシンタックス要素からパースされた同じ値を共有してよい。
【0408】
位置インデックスPは、切り捨てられた単進符号を用いて、1つ以上のビンへと2値化されてよい。例えば、P値が0〜4の範囲にある場合、P値0、4、2、3、及び1は、それぞれ0、01、001、0001、及び0000として2値化され、P値が範囲〜〜1の範囲にある場合、P値0及び1は、それぞれ0及び1として2値化される。
【0409】
ステップ3。変換ブロックサイズに基づき、変換ブロックの変換係数をパースする。
【0410】
これは、HEVC又はH.264/高度ビデオ符号化(Advanced Video Coding, AVC)における変換係数パースのようなビデオ復号において一般的に使用される処理である。変換係数は、ランレングス符号化を用いて符号化される、又は変換グループのセットのようにより高度に符号化されてよい。
【0411】
ステップ3はステップ2の前に行われてよい。
【0412】
ステップ4。変換係数及び変換ブロック位置に基づき、残差ブロックRoを再構成する。
【0413】
サイズw_t×h_tの逆量子化及び逆変換が、残差サンプルを復元するために変換係数に適用される。残差サンプルのサイズはw_t×h_tであり、これは変換ブロックサイズと同じである。逆変換は、逆離散コサイン変換(Discrete Cosine Transform, DCT)又は逆離散サイン変換(Discrete Sine Transform, DST)であってよい。
【0414】
残差サンプルは、変換ブロック位置に従い、残差ブロックRo内の対応する領域に割り当てられ、残差ブロック内の残りのサンプルは0に設定される。例えば、SVT−Vが利用され候補位置の数が5であり、位置インデックスが4である場合、再構成された残差サンプルは、
図24(E)の領域Aに割り当てられ、領域Aの左へサイズ(w/2)×hの領域は0の残差を有する。
【0415】
ステップ1〜ステップ4を行った後、再構成された残差ブロックは、符号化ユニット内の再構成されたサンプルを生成するために、予測ブロックにより構成されてよい。フィルタリング処理は、HEVCにおけるデブロッキングフィルタ及びサンプル適応オフセット(sample adaptive offset, SAO)処理のように、後に再構成されたサンプルに適用されてよい。
【0417】
別の実施形態では、変換位置情報は、残差ブロックの変換係数から導出される。サイズw×hの残差ブロックRoは、以下のステップにより再構成できる。
【0418】
ステップ1。残差ブロックRoの変換ブロックサイズを決定する。
【0419】
実施形態1のステップ1で説明したのと同じ処理が適用できる。
【0420】
ステップ2。変換ブロックサイズに基づき、変換ブロックの変換係数をパースする。
【0421】
実施形態1のステップ3で説明したのと同じ処理が適用できる。
【0422】
ステップ3。変換係数の和に基づき、変換ブロック位置を導出する。
【0423】
一例では、変換係数の和は、Y成分の全部の変換係数を加算することにより計算できる。別の例では、変換係数の和は、Y、U、及びV成分の全部の変換係数を加算することにより計算される。別の例では、変換係数の和は、(例えば、ジグザグスキャンを用いて)係数スキャン順序の中のY成分の最初のN個の変換係数を加算することにより、計算される。ここで、Nは16又は32として設定されてよい。
【0424】
位置インデックスP(これは、実施形態1で説明したように変換ブロック位置を示す)は、以下の式に従い、変換ブロックに関連付けられた変換係数の和Stと候補位置の数Ntとにより導出される。
【0426】
ここで、%は、StをNtで割った後の余りを見つけるモジュロ演算を表す。
【0427】
より具体的には、一例では、パラメータM1及びM2が4として設定され、SVT−H又はSVT−Vについて3個の候補位置がある(つまり、SVT−H又はSVT−VのNtは3である)。Pは、Stを3で割った余りとして計算される。別の例では、パラメータM1及びM2が2として設定され、SVT−H又はSVT−Vについて2個の候補位置がある(つまり、SVT−H又はSVT−VのNtは2である)。Pは、Stを2で割った余りとして計算される。
【0428】
別の例では、位置インデックスは、変換係数の和により部分的に決定されてよい。パラメータM1及びM2は8として設定され、SVT−H又はSVT−Vについて5個の候補位置がある。St%3が0に等しい場合、Pは0として決定される。St%3が1に等しい場合、Pは4として決定される。その他の場合、Pは1、2、及び3の間である(しかし未だ決定されない)。次に、3個の可能な値を有するシンタックス要素は、シンタックス要素の値に基づきPが1又は2又は3に等しいかを決定するためにパースされる(例えば、シンタックス要素が0、1、又は2である場合、Pは1、2、又は3として設定される)。
【0429】
位置インデックス情報が係数の和に隠されているか否かを決定するために、何らかの条件チェックがあってよい。例えば、変換係数の数が閾(例えば、4又は6)より小さい、又は最初の係数と最後の係数との間の距離が閾(例えば、5又は6)より小さいとき、位置インデックスは、係数の和に依存せず、明示的にシグナリングされ、位置インデックスを決定するために実施形態1のパース処理が適用される。
【0430】
ステップ4。変換係数及び変換ブロック位置に基づき、残差ブロックRoを再構成する。
【0431】
実施形態1のステップ4で説明したのと同じ処理が適用できる。
【0433】
別の実施形態では、SVTのタイプは、変換係数の第1グループに基づき導出され、位置情報は、残差ブロックの変換係数の第2グループから導出される。
【0434】
サイズw×hの残差ブロックRoは、以下のステップにより再構成できる。
【0435】
ステップ1。ステップ1.1及びステップ1.2により、残差ブロックRoの変換ブロックサイズを決定する。
【0436】
ステップ1.1。SVTの使用を決定する。これは、実施形態1のステップ1.1と同じである。
【0437】
ステップ1.2。変換係数の第1グループをパースし、変換係数の第1グループに基づきSVTのタイプを決定する。
【0438】
変換係数の第1グループは、
図25の実線領域1により示されるように、(下側周波数変換係数に対応する)変換ブロックの左上部分にあるサイズw_t1×h_t1の領域内にあってよい。一例では、w_t1及びh_t1は両方とも4として設定される。別の例では、w_t1=max(w/8,4)、及びh_t1=max(h/8,4)である。
【0439】
第1グループ係数の和が偶数である場合、SVT−V(又はSVT−H)が使用され、その他の場合にはSVT−H(又はSVT−V)が使用される。
【0440】
ステップ2。変換ブロックサイズに基づき、変換ブロック内の残りの変換係数をパースする。
【0441】
係数スキャン順序は、変換ブロックの幅及び高さに基づき導出される。変換係数をパースするとき、変換係数の第1グループによりカバーされる位置にある係数はスキップされ、それらは変換係数の第1グループであるとして指定される。
【0442】
ステップ3。変換係数の第2グループの和に基づき、変換ブロック位置を導出する。
【0443】
変換係数の第2グループは、和を計算するために使用される。和に基づき、位置インデックスが導出される。ここで、実施形態2で説明した方法が使用できる。変換係数の第2グループは、
図25の点線領域2により示されるように、変換係数の第1グループと異なる、変換ブロックの左上部分にあるサイズw_t2×h_t2の領域内にあってよい。一例では、w_t2=w_t、及びh_t2=h_t、つまり第1グループの係数と異なる全部の係数が第2グループに属する。別の例では、w_t2=max(w_t/2,w_t1)、及びh_t2=max(h_t/2,h_t1)である。
【0444】
ステップ4。変換係数及び変換ブロック位置に基づき、残差ブロックRoを再構成する。実施形態1のステップ4における処理が適用できる。
【0446】
別の実施形態では、SVTを使用する残差ブロックの候補位置の数は、変換係数の分布に基づき導出される。
【0447】
サイズw×hの残差ブロックRoは、以下のステップにより再構成できる。
【0448】
ステップ1。残差ブロックRoの変換ブロックサイズを決定する。
【0449】
実施形態1のステップ1で説明したのと同じ処理が適用できる。
【0450】
ステップ2。変換ブロックサイズに基づき、変換ブロックの変換係数をパースする。
【0451】
実施形態1のステップ3で説明したのと同じ処理が適用できる。
【0452】
ステップ3。変換係数の分布に基づき、変換ブロック位置を導出する。
【0453】
一例では、ゼロではない変換係数の数Nnzは、候補位置の数を決定するために使用される。Nnzが閾(例えば、4又は5又は8)より小さい場合、候補位置ステップサイズは、SVT−Vではw/4、SVT−Hではh/4として設定され、したがって、候補位置の数は3である。その他の場合、候補位置ステップサイズは、SVT−Vではw/8、SVT−H又はh/8として設定され、したがって、候補位置の数は5である。
【0454】
別の例では、最後のゼロではない変換係数が変換ブロック内の左上の4×4領域内にある場合、候補位置ステップサイズは、SVT−Vではw/4、SVT−Hではh/4として設定され、したがって、候補位置の数は3である。その他の場合、候補位置ステップサイズは、SVT−Vではw/8、SVT−H又はh/8として設定され、したがって、候補位置の数は5である。
【0455】
候補位置の数に基づき、位置インデックスは、切り捨てられた単進符号により復号される。ここで、最大の可能な値は、候補位置の数から1を減じたものである。
【0456】
ステップ4。変換係数及び変換ブロック位置に基づき、残差ブロックRoを再構成する。実施形態1のステップ4における処理が適用できる。
【0457】
本開示は、知られているソリューションに対して以下の利点及び利益を提供する。
【0458】
SVTブロックの候補位置は、残差ブロックの幅及び高さに関連するステップサイズにより決定され、5より大きくならないように制限される。これは、[1]と比べて変換ブロック情報を削減し、シグナリングオーバヘッドと残差符号化効率との間のより良いバランスを達成する。
【0459】
SVT情報は、[1]と異なるよう符号化される。つまり、SVT情報は、SVT使用情報、SVTタイプ情報、及びSVT位置情報として組織化される。
【0460】
SVT位置情報は、残差ブロックの複数の変換係数の和に基づき導出されてよい。
【0461】
SVTタイプ情報は、残差ブロックの複数の変換係数の和に基づき導出されてよい。
【0462】
便宜上及び簡単な説明のために、前述の機能モジュールの分割は説明のための一例として取り上げられることが、当業者により明らかに理解され得る。実際の適用では、前述の機能は、異なる機能モジュールに割り当てられ、要件に従い実装できる。つまり、機器の内部構造は、上述の機能の全部又は一部を実装するために、異なる機能モジュールに分割される。前述のシステム、機器、及びユニットの詳細な作動プロセスについては、前述の方法の実施形態における対応するプロセスが参照されてよく、詳細はここで再び記載されない。
【0463】
本願において提供された幾つかの実施形態では、理解されるべきことに、開示のシステム、機器、及び方法は他の方法で実装されてよい。例えば、記載の機器の実施形態は単なる例である。例えば、モジュール又はユニット分割は、単なる論理的機能分割であり、実際の実装では他の分割であってよい。例えば、複数のユニット又はコンポーネントは、結合され又は別のシステムに統合されてよく、或いは、幾つかの機能は、無視され又は実行されなくてよい。さらに、示された又は議論された相互結合又は直接結合又は津新設族は、幾つかのインタフェースを用いて実装されてよい。機器又はユニット間の間接結合又は通信接続は、電子的、機械的、又は他の形式で実装されてよい。
【0464】
別個の部分として記載されたユニットは、物理的に分離していてよく又はそうでなくてよい。ユニットとして示された部分は、物理的ユニットであってよく又はそうでなくてよく、1つの場所に置かれてよく、又は服すのネットワークユニットに分配されてよい。ユニットのうちの一部又は全部は、実施形態のソリューションの目的を達成するために、実際の必要に基づき選択されてよい。
【0465】
さらに、本発明の実施形態における機能ユニットは、1つの処理ユニットに統合されてよく、又は、ユニットの各々は物理的に単独で存在してよく、又は、2つ以上のユニットが1つのユニットに統合される。統合されたユニットは、ハードウェアの形式で実装されてよく、又はソフトウェア機能ユニットの形式で実装されてよい。
【0466】
統合されたユニットがソフトウェア機能ユニットの形式で実装され、独立した製品として販売され又は使用されるとき、統合されたユニットは、コンピュータ可読記憶媒体に格納されてよい。このような理解に基づき、基本的に又は部分的に従来技術に貢献する本発明の技術的ソリューション又は技術的ソリューションの全部又は一部は、ソフトウェアプロダクトの形式で実装されてよい。、コンピュータソフトウェアプロダクトは、記憶媒体に格納され、本発明の実施形態で記載された方法のステップのうちの全部又は一部を実行するようコンピュータ装置(これは、パーソナルコンピュータ、サーバ、又はネットワーク装置であってよい)又はプロセッサ(processor)に指示するための幾つかの命令を含む。前述の記憶媒体は、プログラムコードを格納できる、USBフラッシュドライブ、取り外し可能ハードディスク、読み出し専用メモリ(ROM, Read−Only Memory)、ランダムアクセスメモリ(RAM, Random Access Memory)、磁気ディスク、又は光ディスクのような、任意の記憶媒体を含む。
【0467】
前述の説明は、単に本発明の特定の実装方法であり、本発明の保護範囲を限定することを意図しない。本発明で開示された技術的範囲の範囲内にある、当業者により直ちに考案される任意の変形又は置換は、本発明の保護範囲の中に包含されるべきである。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従うべきである。
前記エントロピー復号ユニットは、前記ビットストリームをパースして、前記残差TUの前記目標変換モードを示すモードインデックスを取得し、前記モードインデックスに基づき、前記残差TUの前記目標変換モードを取得するよう更に構成される、請求項19又は18又は17に記載のビデオデコーダ。
前記エントロピー復号ユニットは、前記CUの前記予測情報に基づき、前記残差TUの前記目標変換モードを取得するか否かを決定するよう更に構成される、請求項17乃至26のいずれか一項に記載のビデオデコーダ。
前記エントロピー復号ユニットは、前記CUのサイズに基づき、前記残差TUの前記目標変換モードを取得するか否かを決定するよう更に構成される、請求項17乃至30のいずれか一項に記載のビデオデコーダ。
本願は、2018年2月23日に米国特許庁に出願した米国特許出願番号第62/634,613号、2018年3月31日に米国特許庁に出願した米国特許出願番号第62/678,738号、及び2017年10月16日に米国特許庁に出願した米国特許出願番号第62/572,987号、並びに2018年8月27日に中国特許庁に出願したPCT/CN2018/102524の優先権を主張する
変換モードQ0であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQ1であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は右上であり、前記変換タイプが、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQ2であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置が左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードQ3であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードQH0であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは上にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは下にありサイズW×(H/2)を有し、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQH1であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは上にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは下にありサイズW×(H/2)を有し、前記残差TUの位置は右上であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは下にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは上にありサイズW×(H/2)を有し、前記残差TUの位置は左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードQH3であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは下にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは上にありサイズW×(H/2)を有し、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードQV0であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは左にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは右にありサイズ(W/2)×Hを有し、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQV1であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは右にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは左にありサイズ(W/2)×Hを有し、前記残差TUの位置は右上であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードQV2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは左にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは右にありサイズ(W/2)×Hを有し、前記残差TUの位置は左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードQV3であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは右にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは左にありサイズ(W/2)×Hを有し、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードHQ0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズより小さく、前記残差TUの位置は上であり、前記変換タイプは、前記残差TUの水平変換がDST−7又はDCT−2であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードHQ1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、下のUTのサイズは上のTUのサイズより小さく、前記残差TUの位置は下であり、前記変換タイプは、前記残差TUの水平変換がDST−7又はDCT−2であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードVQ0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズより小さく、前記残差TUの位置は左であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDST−7又はDCT−2である、ことを指定するモード;
変換モードVQ1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、右のTUのサイズは左のTUのサイズより小さく、前記残差TUの位置は右であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−7又はDCT−2である、ことを指定するモード;
変換モードHH0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズと等しく、前記残差TUの位置は上であり、前記変換タイプは、前記残差TUの水平変換がDST−7又はDCT−2であり、前記残差TUの垂直変換がDCT−8である、ことを指定するモード;
変換モードHH1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズに等しく、前記残差TUの位置は下であり、前記変換タイプは、前記残差TUの水平変換がDST−7又はDCT−2であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;
変換モードHH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、上のTUのサイズは下のTUのサイズと等しく、前記上のTUの前記サイズは中央のTUのサイズより小さく、前記残差TUの位置は中央であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDCT−2である、又は前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−1である、ことを指定するモード;
変換モードVH0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記残差TUの位置は左であり、前記変換タイプは、前記残差TUの水平変換がDCT−8であり、前記残差TUの垂直変換がDST−7又はDCT−2である、ことを指定するモード;
変換モードVH1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記残差TUの位置は右であり、前記変換タイプは、前記残差TUの水平変換がDST−7であり、前記残差TUの垂直変換がDST−7又はDCT−2である、ことを指定するモード;又は、
あって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記左のTUの前記サイズは中央のTUのサイズより小さく、前記残差TUの位置は中央であり、前記変換タイプは、前記残差TUの水平変換がDCT−2であり、前記残差TUの垂直変換がDST−7である、又は前記残差TUの水平変換がDST−1であり、前記残差TUの垂直変換がDST−7である、ことを指定するモード;代替の実装方法では、本開示を通じて、DST−7はDST−4で置き換えられてよく、DCT−8はDCT−4で置き換えられてよい。したがって、第1の態様の別の可能な実装方法では、前記CUの前記サイズはW×Hにより示され、前記残差TUの前記目標変換モードは、以下のモードのうちの1つである:
変換モードQ0であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQ1であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は右上であり、前記変換タイプが、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQ2であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置が左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードQ3であって、前記CUの前記TUパーティションモードが、前記CUをサイズ(W/2)×(H/2)の4個のTUに分け、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードQH0であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは上にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは下にありサイズW×(H/2)を有し、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQH1であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは上にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは下にありサイズW×(H/2)を有し、前記残差TUの位置は右上であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは下にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは上にありサイズW×(H/2)を有し、前記残差TUの位置は左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードQH3であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは下にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは上にありサイズW×(H/2)を有し、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードQV0であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは左にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは右にありサイズ(W/2)×Hを有し、前記残差TUの位置は左上であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQV1であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは右にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは左にありサイズ(W/2)×Hを有し、前記残差TUの位置は右上であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードQV2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは左にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは右にありサイズ(W/2)×Hを有し、前記残差TUの位置は左下であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードQV3であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、前記3個のTUのうちの2個のTUは右にありサイズ(W/2)×(H/2)を有し、前記3個のTUのうちの他のTUは左にありサイズ(W/2)×Hを有し、前記残差TUの位置は右下であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードHQ0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズより小さく、前記残差TUの位置は上であり、前記変換タイプは、前記残差TUの水平変換がDST−4又はDCT−2であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードHQ1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、下のUTのサイズは上のTUのサイズより小さく、前記残差TUの位置は下であり、前記変換タイプは、前記残差TUの水平変換がDST−4又はDCT−2であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードVQ0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズより小さく、前記残差TUの位置は左であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDST−4又はDCT−2である、ことを指定するモード;
変換モードVQ1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、右のTUのサイズは左のTUのサイズより小さく、前記残差TUの位置は右であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−4又はDCT−2である、ことを指定するモード;
変換モードHH0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズと等しく、前記残差TUの位置は上であり、前記変換タイプは、前記残差TUの水平変換がDST−4又はDCT−2であり、前記残差TUの垂直変換がDCT−4である、ことを指定するモード;
変換モードHH1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、上のTUのサイズは下のTUのサイズに等しく、前記残差TUの位置は下であり、前記変換タイプは、前記残差TUの水平変換がDST−4又はDCT−2であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード;
変換モードHH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、上のTUのサイズは下のTUのサイズと等しく、前記上のTUの前記サイズは中央のTUのサイズより小さく、前記残差TUの位置は中央であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDCT−2である、又は前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−1である、ことを指定するモード;
変換モードVH0であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記残差TUの位置は左であり、前記変換タイプは、前記残差TUの水平変換がDCT−4であり、前記残差TUの垂直変換がDST−4又はDCT−2である、ことを指定するモード;
変換モードVH1であって、前記CUの前記TUパーティションモードが、前記CUを2個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記残差TUの位置は右であり、前記変換タイプは、前記残差TUの水平変換がDST−4であり、前記残差TUの垂直変換がDST−4又はDCT−2である、ことを指定するモード;又は、
変換モードVH2変換モードHH2であって、前記CUの前記TUパーティションモードが、前記CUを3個のTUに分け、左のTUのサイズは右のTUのサイズと等しく、前記左のTUの前記サイズは中央のTUのサイズより小さく、前記残差TUの位置は中央であり、前記変換タイプは、前記残差TUの水平変換がDCT−2であり、前記残差TUの垂直変換がDST−4である、又は前記残差TUの水平変換がDST−1であり、前記残差TUの垂直変換がDST−4である、ことを指定するモード。
前記プロセッサに結合され前記プロセッサによる実行のためのプログラミングを格納する非一時的コンピュータ可読記憶媒体であって、前記プログラミングは、前記プロセッサにより実行されると、第1の態様及び第1の態様の第1乃至第16の
のデコーダ30を含む別の例示的なビデオ符号化システム40の説明図である。システム40は、本願において説明される種々の例に従う技術を実施できる。図示の実装では、ビデオ符号化システム40は、画像装置41、ビデオエンコーダ
、ビデオデコーダ30(及び/又は処理ユニット46の論理回路47により実装されるビデオコーダ)、アンテナ42、1つ以上のプロセッサ43、1つ以上のメモリストア44、及び/又はディスプレイ装置45を含んでよい。
のデコーダ30に関して議論したような種々のモジュール及び/又はここで説明された任意の他のデコーダシステム若しくはサブシステムを実現するために、論理回路47により実装されるのと同様の方法で実装されてよい。幾つかの例では、
(例えば、処理ユニット420又はメモリストア44のいずれかによる)画像バッファ、及び(例えば、処理ユニット46による)グラフィック処理ユニットを含んでよい。グラフィック処理ユニットは、画像バッファに通信可能に結合されてよい。グラフィック処理ユニットは、
に関して議論したような種々のモジュール及び/又はここで説明される任意の他のデコーダシステム若しくはサブシステムを実現するために、論理回路47により実装されるようなビデオデコーダ30を含んでよい。
量子化ユニット208は、変換係数207を量子化して、例えばスカラー量子化又はベクトル量子化を適用することにより、量子化された変換係数209を取得するよう構成されてよい。量子化された変換係数209は、量子化残差係数209とも呼ばれてよい。量子化処理は、変換係数207の一部又は全部に関連するビット深さを低減してよい。例えば、nビットの変換係数は、量子化の間、mビットの変換係数に丸め込まれてよい。ここで、nはmより大きい。量子化の程度は、量子化パラメータ(quantization parameter, QP)を調整することにより、変更されてよい。例えば、スカラー量子化では、より精細な又は粗い量子化を達成するために異なるスケーリングが適用されてよい。量子化ステップサイズが小さいほど、精細な量子化に対応する。一方で、量子化ステップサイズが大きいほど、粗い量子化に対応する。適用可能な量子化ステップは、量子化パラメータ(quantization parameter, QP)により示されてよい。量子化パラメータは、例えば、適用可能な量子化ステップサイズの所定のセットに対するインデックスであってよい。例えば、小さい量子化パラメータは、精細な量子化(小さい量子化ステップサイズ)に対応してよく、大きな量子化パラメータは粗い量子化(大きな量子化ステップサイズ)に対応してよい。量子化は、量子化ステップサイズによる除算を含んでよい。例えば逆量子化
210による対応する又は逆の逆量子化は、量子化ステップサイズによる乗算を含んでよい。幾つかの標準、例えばHEVCに従う実施形態は、量子化ステップサイズを決定するために量子化パラメータを使用するよう構成されてよい。通常、量子化ステップサイズは、除算を含む式の不動点近似を用いて、量子化パラメータに基づき計算されてよい。量子化ステップサイズ及び量子化パラメータの式の不動点近似において使用されるスケーリングのために変更され得る残差ブロックの水準を復元するために、量子化及び逆量子化のための追加のスケーリング因子が導入されてよい。1つの例示的な実装では、逆変換及び逆量子化のスケーリングは結合されてよい。代替として、カスタマイズされた量子化テーブルが使用され、エンコーダからデコーダへ、例えばビットストリームの中でシグナリングされてよい。量子化は、損失動作であり、損失は量子化ステップサイズの増大に伴い増大する。
の一方又は両方として使用されてよい機器500の簡略ブロック図である。機器500は、上述の本開示の技術を実装できる。機器500は、複数のコンピューティング装置を含むコンピューティングシステムの形式、又は単一コンピューティング装置、例えば移動電話機、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ、等の形式であり得る。
は、イントラ予測1300及び/又はインター予測に基づく例示的なビデオエンコーティングメカニズム1400の概略図である。画像ブロック1401は、1つ以上のフレームからエンコーダにより取得できる。例えば、画像は、複数の長方形画像領域に分割されてよい。画像の書く領域は、符号化木ユニット(Coding Tree Unit, CTU)に対応する。CTUは、HEVCにおける符号化ユニットのような複数のブロックに分けられる。ブロックパーティション情報は、次にビットストリーム1411内に符号化される。したがって、画像ブロック
は画像の分けられた部分であり、画像の対応する部分におけるルマ成分及び/又はクロマ成分を表すピクセルを含む。符号化の間、画像ブロック1401は、イントラ予測の予測モード及び/又はインター予測の動きベクトルのような予測情報を含む予測ブロック
として符号化される。予測ブロック1403としての画像ブロック1401の符号化は、次に、予測ブロック1403と画像ブロック1401との間の差を示す残差情報を含む残差ブロック1405をもたらす。
、1個の予測ブロック1403と1個の残差ブロック1405とを含む符号化ユニットとして分けられてよい。予測ブロック1403は、符号化ユニットの全部の予測サンプルを含んでよく、残差ブロック1405は、符号化ユニットの全部の残差サンプルを含んでよい。このような場合、予測ブロック1403は、残差ブロック1405と同じサイズである。別の例では、画像ブロック1401は、2個の予測ブロック1403と1個の残差ブロック1405とを含む符号化ユニットとして分けられてよい。このような場合、各予測ブロック1405は、符号化ユニットの予測サンプルの一部を含み、残差ブロック1405は、符号化ユニットの全部の残差サンプルを含む。更に留意すべきことに、画像ブロック1401は、2個の予測ブロック1403と4個の残差ブロック1405とを含む符号化ユニットとして分けられてよい。符号化ユニット内の残差ブロック1405のパーティションパターンは、ビットストリーム1411内でシグナリングされてよい。このような一パターンは、HEVCにおける残差4分木(Residual Quad−Tree, RQT)を含んでよい。さらに、画像ブロック1401は、画像サンプル(又はピクセル)のY成分として示されるルマ成分(例えば、光)のみを含んでよい。他の場合には、画像ブロック1401は、画像サンプルのY、U、及びV成分を含んでよい。ここで、U及びVは、青色輝度及び赤色輝度(UV)色空間における色度成分(例えば、色)を示す。
は、残差ブロックに対する例示的なSVT変換位置を示す。SVT変換位置1800は、SVT変換候補位置1700のような候補位置から選択される。具体的には、選択されたSVT変換位置1800は、位置インデックスPに従って符号化されてよい。位置インデックスPは、残差ブロックの左上角に対する変換ブロックの左上角の位置オフセット(Z)を決定するために利用できる。例えば、この位置相関は、Z=s×Pに従い決定できる。ここで、sは、SVTタイプに基づく変換ブロックのCPSSであり、図
6に関して議論したように計算される。Pの値は、変換ブロックがSVT−Vであるとき、0,1,...,(w−w_t)/sとして符号化されてよい。Pの値は、変換ブロックがSVT−Hであるとき、0,1,...,(h−h_t)/sとして符号化されてよい。より具体的には、(0,0)は、残差ブロックの左上角の座標を表し得る。このような場合、変換ブロックの左上角の座標は、SVT−Vでは(Z,0)又はSVT−Hでは(0,Z)である。
以下に更に詳細に議論するように、エンコーダは、SVT変換タイプ(例えば、SVT−H又はSVT−T)及び残差ブロックサイズを、フラグを利用してビットストリーム内に符号化してよい。デコーダは、次に、SVT変換サイズをSVT変換
及び残差ブロックサイズに基づき決定してよい。SVT変換サイズが決定されると、デコーダは、CPSS関数に従い、SVT変換候補位置1700のようなSVT変換の許容可能な候補位置を決定できる。デコーダがSVT変換の候補位置を決定できるので、エンコーダは位置オフセットの座標をシグナリングしなくてよい。代わりに、候補位置のうちのどれが対応する変換のために利用されるかを示すために、コードが利用できる。例えば、位置インデックスPは、増大する圧縮のために切り捨てられた単進符号を用いて、1つ以上のビンへと2値化されてよい。特定の例として、P値が0〜4の範囲内にあるとき、P値0、4,2,3,及び1は、それぞれ0,01,001,0001,及び0000として2値化できる。この2進符号は、
表現するより更に圧縮される。別の例として、P値が0〜1の範囲内にあるとき、P値0及び1は、それぞれ0及び1として2値化できる。このように、位置インデックスは、変換ブロックの可能な候補位置の観点で、特定の変換ブロック位置をシグナリングするために、必要に応じサイズを増大し又は短縮できる。
デコーダが、SVTが残差ブロックのために使用されたことを決定すると、デコーダは、使用されるSVT変換のタイプを決定し、SVTタイプに従い変換ブロックサイズを導出する。残差ブロックのために許可されたSVTタイプは、残差ブロックの幅及び高さに基づき決定される。残差ブロックの幅が範囲[a1,a2]内にある場合、
に示すようなSVT−H変換が許可される。このような値は上述された。SVTは、残差ブロック内のルマ成分のみについて使用されてよく、又はSVTは残差ブロック内のルマ及びクロマ成分の両方について使用されてよい。SVTがルマ成分にのみ使用されるとき、ルマ成分残差情報はSVTにより変換され、クロマ成分は残差ブロックのサイズ
変換される。SVT−V及びSVT−Hの両方が許可されるとき、svt_type_flagのようなフラグがビットストリーム内に符号化されてよい。svt_type_flagは、SVT−Vが残差ブロックのために使用されるか(例えば、svt_type_flagが0に設定される)、又はSVT−Hが残差ブロックのために使用されるか(例えば、svt_type_flagが1に設定される)を示す。SVT変換のタイプが決定されると、変換ブロックサイズは、シグナリングされたSVTタイプに従い設定される(例えば、SVT−Vではw_t=w/2及びh_t=h、SVT−Hではw_t=w及びh_t=h/2)。SVT−Tのみが許可される又はSVT−Hのみが許可されるとき、svt_type_flagはビットストリーム内に符号化されなくてよい。このような場合、デコーダは、許可されたSVTタイプに基づき変換ブロックサイズを推定できる。
前記コンピューティング装置のプロセッサにおいて、ビットストリームを受信するステップであって、前記ビットストリームは、前記コンピューティング装置のメモリに格納され、前記コンピューティング装置の受信機を介して受信される、ステップと、
前記プロセッサにより、前記変換された残差ブロックを生成するために利用された空間変化変換(spatial varying transform, SVT)変換のタイプを決定するステップと、
前記プロセッサにより、モニタ上での表示のために、画像ブロックを性構成するために、前記予測ブロックにより前記再構成された残差ブロックを構成するステップと、を含む方法。
例2。前記SVT変換の前記タイプは、SVT垂直(SVT vertical, SVT−V)タイプ又はSVT水平(SVT horizontal, SVT−H)タイプであり、前記SVT−Vタイプは前記変換された残差ブロックの高さと等しい高さ及び前記変換された残差ブロックの幅の半分の幅を含み、前記SVT
例4。SVT変換の前記タイプは、前記残差ブロックに対して1種類ののみのSVT変換が許可されているとき、前記プロセッサにより、推定により決定される、例1〜3のいずれか1つの方法。
例5。前記SVT変換の前記位置は、前記プロセッサにより、前記ビットストリームから位置インデックスをパースすることにより決定される、例1〜4のいずれか1つの方法。
例6。前記位置インデックスは、候補位置ステップサイズ(candidate position step size, CPSS)に従い決定された候補位置のセットからの前記位置を示すバイナリコードを含む、例1〜5のいずれか1つの方法。
例9。前記SVT変換の前記位置は、前記残差ブロックがインター予測モードにおけるテンプレートマッチングにより生成されたとき、前記プロセッサにより推定される、例1〜8のいずれか1つの方法。
例11。前記プロセッサにより、逆離散サイン変換(Discrete Sine Transform, DST)が、残差ブロックの左境界に位置するSVT垂直(SVT vertical, SVT−V)タイプ変換のために利用され、
逆DSTが、前記プロセッサにより、前記残差ブロックの上境界に位置するSVT水平(SVT horizontal, SVT−H)タイプ変換のために利用され、
逆離散コサイン変換(Discrete Cosine Transform, DCT)が、前記プロセッサにより、前記残差ブロックの右境界に位置するSVT−Vタイプ変換のために利用され、
例12。前記プロセッサにより、前記再構成された残差ブロックに関連付けられた符号化ユニットの右隣が再構成されており、前記符号化ユニットの左隣が再構成されていないとき、前記再構成された残差ブロックを前記予測ブロックにより構成する前に、前記再構成された残差ブロック内のサンプルを水平方向にフリッピングするステップを更に含む例1〜11のいずれか1つの方法。
前記コンピューティング装置のプロセッサにおいて、ビデオキャプチャ装置からビデオ信号を受信するステップであって、前記ビデオ信号は画像ブロックを含む、ステップと、
前記プロセッサにより、空間変化変換(spatial varying transform, SVT)変換を利用して、前記残差ブロックを変換された残差ブロックに変換するステップと、
前記プロセッサにより、デコーダによる使用のために、前記予測ブロック及び前記変換された残差ブロックを前記ビットストリームの中に符号化するステップであって、前記ビットストリームは、送信機による前記デコーダへの伝送のために、前記コンピューティング装置のメモリに格納される、ステップと、を含む方法。
例14。前記SVT変換の前記タイプは、SVT垂直(SVT vertical, SVT−V)タイプ又はSVT水平(SVT horizontal, SVT−H)タイプであり、前記SVT−Vタイプは前記残差ブロックの高さと等しい高さ及び前記残差ブロックの幅の半分の幅を含み、前記SVT−Hタイプは前記残差ブロックの高さの半分の高さ及び前記残差ブロックの幅と等しい幅を含む、例13の方法。
例16。前記位置インデックスは、候補位置ステップサイズ(candidate position step size, CPSS)に従い決定された候補位置のセットからの前記位置を示すバイナリコードを含む、例13〜15のいずれか1つの方法。
例17。前記SVT変換の最も有望な位置は、前記位置インデックスを示すバイナリコードの中の最小ビット数として割り当てられる、例13〜16のいずれか1つの方法。
例18。前記プロセッサにより、前記SVT変換の前記位置に基づき、前記SVT変換のための変換アルゴリズムを選択するステップを更に含む例13〜17のいずれか1つの方法。
例19。前記プロセッサにより、離散サイン変換(Discrete Sine Transform, DST)アルゴリズムが、残差ブロックの左境界に位置するSVT垂直(SVT vertical, SVT−V)タイプ変換のために利用され、
DSTアルゴリズムが、前記プロセッサにより、前記残差ブロックの上境界に位置するSVT水平(SVT horizontal, SVT−H)タイプ変換のために選択され、
離散コサイン変換(Discrete Cosine Transform, DCT)アルゴリズムが、前記プロセッサにより、前記残差ブロックの右境界に位置するSVT−Vタイプ変換のために選択され、
又は、DCTアルゴリズムが、前記プロセッサにより、前記残差ブロックの下境界に位置するSVT−Hタイプ変換のために選択される、例13〜18のいずれか1つの方法。
例20。前記残差ブロックに関連付けられた符号化ユニットの右隣が符号化されており、前記符号化ユニットの左隣が再構成されていないとき、前記プロセッサにより、前記残差ブロックを前記変換された残差ブロックに変換する前に、前記プロセッサにより、前記残差ブロック内のサンプルを水平方向にフリッピングするステップを更に含む例13〜19のいずれか1つの方法。
SVT−VはSVT−IIと同様であり、SVT−HはSVT−IIIと同様である。SVT−II及びSVT−IIIと比べて、SVT−V及びSVT−Hにおける変換ブロックは、残差ブロックの半分にまで拡大され、残差ブロック内のより多くの残差をカバーできる。SVT−II又はSVT−
別の例では、CPSSは、SVT−Vではs=max(w/M1,Th1)として、又はSVT−Hではs=max(h/M2,Th2)として計算される。ここで、Th1及びTh2は最小ステップサイズを指定する所定の整数である。Th1及びTh2は2以上の整数である。この例では、Th1及びTh2は4として設定され、M1及びM2は8として設定される。この例では、異なるブロックサイズは異なる数の候補位置を有してよい。例えば、w=8のとき、2個の候補位置(