JP7378968B2 - 予測画像生成装置、動画像復号装置および動画像符号化装置 - Google Patents
予測画像生成装置、動画像復号装置および動画像符号化装置 Download PDFInfo
- Publication number
- JP7378968B2 JP7378968B2 JP2019107061A JP2019107061A JP7378968B2 JP 7378968 B2 JP7378968 B2 JP 7378968B2 JP 2019107061 A JP2019107061 A JP 2019107061A JP 2019107061 A JP2019107061 A JP 2019107061A JP 7378968 B2 JP7378968 B2 JP 7378968B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- prediction
- predicted image
- encoding
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 claims description 71
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 22
- 239000013598 vector Substances 0.000 description 121
- 238000000034 method Methods 0.000 description 47
- 238000009795 derivation Methods 0.000 description 38
- 238000013139 quantization Methods 0.000 description 34
- 238000004364 calculation method Methods 0.000 description 31
- 238000010586 diagram Methods 0.000 description 31
- 230000006870 function Effects 0.000 description 26
- 230000008569 process Effects 0.000 description 23
- 230000005540 biological transmission Effects 0.000 description 20
- 230000009466 transformation Effects 0.000 description 19
- 238000012937 correction Methods 0.000 description 18
- 230000015572 biosynthetic process Effects 0.000 description 17
- 238000003786 synthesis reaction Methods 0.000 description 17
- 101001036283 Xenopus laevis DNA-binding protein inhibitor ID-3-A Proteins 0.000 description 16
- 230000008859 change Effects 0.000 description 16
- 230000002457 bidirectional effect Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 14
- 230000006854 communication Effects 0.000 description 14
- 238000000638 solvent extraction Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 6
- XEBWQGVWTUSTLN-UHFFFAOYSA-M phenylmercury acetate Chemical compound CC(=O)O[Hg]C1=CC=CC=C1 XEBWQGVWTUSTLN-UHFFFAOYSA-M 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 229920000069 polyphenylene sulfide Polymers 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 241001482237 Pica Species 0.000 description 2
- 208000034188 Stiff person spectrum disease Diseases 0.000 description 2
- 229920010524 Syndiotactic polystyrene Polymers 0.000 description 2
- 101150103552 cagE gene Proteins 0.000 description 2
- 238000005401 electroluminescence Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 208000012112 ischiocoxopodopatellar syndrome Diseases 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000002490 spark plasma sintering Methods 0.000 description 2
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 1
- 241001025261 Neoraja caerulea Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
か否かを判定するフラグ設定部と、前記L0予測画像とL1予測画像から、水平方向と、垂直方向の四つの勾配画像を生成する勾配画像生成部と、前記L0予測画像とL1予測画像と前記四つの勾配画像の積和演算から、処理単位毎の相関パラメータを計算する相関パラメータ計算部と、前記勾配画像と、前記相関パラメータから、双方向予測画像を修正する値を導出する動き補償修正値導出部と、前記L0予測画像とL1予測画像と前記動き補償修正値から予測画像を生成する双方向予測画像生成部を有し、前記フラグ設定部と前記相関パラメータ計算部において、前記L0予測画像とL1予測画像の差分の演算精度を同一にすることを特徴とする。
以下、図面を参照しながら本発明の実施形態について説明する。
本明細書で用いる演算子を以下に記載する。
log2(a)はaの底を2とする対数を返す関数である。
本実施形態に係る動画像符号化装置11および動画像復号装置31の詳細な説明に先立って、動画像符号化装置11によって生成され、動画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために動画像復号装置31が参照するデータの集合が規定されている。シーケンスSEQは、図4(a)に示すように、ビデオパラメータセット(Video Parameter Set)、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。
符号化ピクチャでは、処理対象のピクチャPICTを復号するために動画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、図4(b)に示すように、スライス0~スライスNS-1を含む(NSはピクチャPICTに含まれるスライスの総数)。
符号化スライスでは、処理対象のスライスSを復号するために動画像復号装置31が参照するデータの集合が規定されている。スライスは、図4(c)に示すように、スライスヘッダ、および、スライスデータを含んでいる。
符号化スライスデータでは、処理対象のスライスデータを復号するために動画像復号装置31が参照するデータの集合が規定されている。スライスデータは、図4(d)に示すように、CTUを含んでいる。CTUは、スライスを構成する固定サイズ(例えば64x64)のブロックであり、最大符号化単位(LCU:Largest Coding Unit)と呼ぶこともある。
図4(e)には、処理対象のCTUを復号するために動画像復号装置31が参照するデータの集合が規定されている。CTUは、再帰的な4分木分割(QT(Quad Tree)分割)、2分木分割(BT(Binary Tree)分割)あるいは3分木分割(TT(Ternary Tree)分割)により符号化処理の基本的な単位である符号化ユニットCUに分割される。BT分割とTT分割を合わせてマルチツリー分割(MT(Multi Tree)分割)と呼ぶ。再帰的な4分木分割により得られる木構造のノードのことを符号化ノード(Coding Node)と称する。4分木、2分木、及び3分木の中間ノードは、符号化ノードであり、CTU自身も最上位の符号化ノードとして規定される。
図4(f)に示すように、処理対象の符号化ユニットを復号するために動画像復号装置31が参照するデータの集合が規定されている。具体的には、CUは、CUヘッダCUH、予測パラメータ、変換パラメータ、量子化変換係数等から構成される。CUヘッダでは予測モード等が規定される。
予測画像は、ブロックに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測とインター予測の予測パラメータがある。
スmvp_LX_idx、差分ベクトルmvdLX、動きベクトル精度モードamvr_modeがある。
参照ピクチャリストは、参照ピクチャメモリ306に記憶された参照ピクチャからなるリストである。図6は、参照ピクチャおよび参照ピクチャリストの一例を示す概念図である。図6(a)において、矩形はピクチャ、矢印はピクチャの参照関係、横軸は時間、矩形中のI、P、Bは各々イントラピクチャ、単予測ピクチャ、双予測ピクチャ、矩形中の数字は復号順を示す。図に示すように、ピクチャの復号順は、I0、P1、B2、B3、B4であり、表示順は、I0、B3、B2、B4、P1である。図6(b)に、ピクチャB3(対象ピクチャ)の参照ピクチャリストの例を示す。参照ピクチャリストは、参照ピクチャの候補を表すリストであり、1つのピクチャ(スライス)が1つ以上の参照ピクチャリストを有してもよい。図の例では、対象ピクチャB3は、L0リストRefPicList0およびL1リストRefPicList1の2つの参照ピクチャリストを持つ。個々のCUでは、参照ピクチャリストRefPicListX(X=0または1)中のどのピクチャを実際に参照するかを参照ピクチャインデックスrefIdxLXで指定する。図は、refIdxL0=2、refIdxL1=0の例である。なお、LXは、L0予測とL1予測を区別しない場合に用いられる記述方法であり、以降では、LXをL0、L1に置き換えることでL0リストに対するパラメータとL1リストに対するパラメータを区別する。
予測パラメータの復号(符号化)方法には、マージ予測(merge)モードとAMVP(Advanced Motion Vector Prediction、適応動きベクトル予測)モードがあり、マージフラグmerge_flagは、これらを識別するためのフラグである。マージ予測モードは、予測リスト利用フラグpredFlagLX(またはインター予測識別子inter_pred_idc)、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めずに、既に処理した近傍ブロックの予測パラメータから導出する用いるモードである。AMVPモードは、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めるモードである。なお、動きベクトルmvLXは、予測ベクトルmvpLXを識別する予測ベクトルインデックスmvp_LX_idxと差分ベクトルmvdLX、動きベクトル精度モードamvr_modeとして符号化される。また、マージ予測モードの他に、アフィンフラグaffine_flagにより識別されるアフィン予測モードがあってもよい。マージ予測モードの一形態として、スキップフラグskip_flagにより識別されるスキップモードがあってもよい。なお、スキップモードとは、マージモードと同様の方法で予測パラメータを導出して用いるモードであり、かつ、予測誤差(残差画像)を符号化データに含めないモードである。換言すれば、スキップフラグskip_flagが1の場合、対象CUに関して、当該スキップフラグskip_flagとマージインデックスmerge_idxなどのマージモードに関連するシンタックスのみを含み、動きベクトルなどは符号化データに含まれない。このため、対象CUに対して、スキップフラグskip_flagがスキップモードを適用することを示している場合、当該スキップフラグskip_flag以外の予測パラメータの復号は省略される。
動きベクトルmvLXは、異なる2つのピクチャ上のブロック間のシフト量を示す。動きベクトルmvLXに関する予測ベクトル、差分ベクトルを、それぞれ予測ベクトルmvpLX、差分ベクトルmvdLXと呼ぶ。
インター予測識別子inter_pred_idcは、参照ピクチャの種類および数を示す値であり、PRED_L0、PRED_L1、PRED_BIの何れかの値をとる。PRED_L0、PRED_L1は、各々L0リスト、L1リストで管理された1枚の参照ピクチャを用いる単予測を示す。PRED_BIはL0リストとL1リストで管理された2枚の参照ピクチャを用いる双予測BiPredを示す。
predFlagL0 = inter_pred_idc & 1
predFlagL1 = inter_pred_idc >> 1
(双予測biPredの判定)
双予測BiPredであるかのフラグbiPredは、2つの予測リスト利用フラグがともに1であるかによって導出できる。例えば以下の式で導出できる。
あるいは、フラグbiPredは、インター予測識別子が2つの予測リスト(参照ピクチャ)を使うことを示す値であるか否かによっても導出できる。例えば以下の式で導出できる。
(動画像復号装置の構成)
本実施形態に係る動画像復号装置31(図7)の構成について説明する。
符号とは、例えば、予測モードpredMode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLX、動きベクトル精度モードamvr_mode等である。どの符号を復号するかの制御は、パラメータ復号部302の指示に基づいて行われる。
インター予測パラメータ復号部303は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してインター予測パラメータを復号する。また、インター予測パラメータ復号部303は、復号したインター予測パラメータを予測画像生成部308に出力し、予測パラメータメモリ307に記憶する。
アフィン予測部30372は対象ブロックのアフィン予測パラメータを導出する。本実施形態では、アフィン予測パラメータとして、対象ブロックの2つの制御点(V0、V1)の動きベクトル(mv0_x,mv0_y)(mv1_x,mv1_y)を導出する。具体的には、対象ブロックの隣接ブロックの動きベクトルから予測することにより、各制御点の動きベクトルを導出してもよいし、制御点の動きベクトルとして導出された予測ベクトルと符号化データから導出される差分ベクトルの和により、各制御点の動きベクトルを導出してもよい。
は6パラメータMVDアフィン予測に用いるパラメータを適宜導出してもよい。
図9の(a)は、マージ予測部30374に含まれるマージ予測パラメータ導出部3036の構成を示す概略図である。マージ予測パラメータ導出部3036は、マージ候補導出部30361、マージ候補選択部30362を備える。なお、マージ候補は、予測リスト利用フラグpredFlagLX、動きベクトルmvLX、参照ピクチャインデックスrefIdxLXを含んで構成され、マージ候補リストに格納される。マージ候補リストに格納されたマージ候補には、所定の規則に従ってインデックスが割り当てられる。
B1: (xCb + cbWidth - 1, yCb - 1)
B0: (xCb + cbWidth, yCb - 1)
A0: (xCb - 1, yCb + cbHeight)
B2: (xCb - 1, yCb - 1)
時間マージ導出処理として、マージ候補導出部30361は、対象ブロックの右下CBR、あるいは、中央の座標を含む参照画像中のブロックCの予測パラメータを、予測パラメータメモリ307から読み出してマージ候補Colとし、マージ候補リストmergeCandList[]に格納する。
i = 0
if( availableFlagA1 )
mergeCandList[ i++ ] = A1
if( availableFlagB1 )
mergeCandList[ i++ ] = B1
if( availableFlagB0 )
mergeCandList[ i++ ] = B0
if( availableFlagA0 )
mergeCandList[ i++ ] = A0
if( availableFlagB2 )
mergeCandList[ i++ ] = B2
if( availableFlagCol )
mergeCandList[ i++ ] = Col
if( availableFlagAvgK )
mergeCandList[ i++ ] = avgK
if( i < MaxNumMergeCand )
mergeCandList[ i++ ] = ZK
なお、対象ブロックの左上座標を(xCb, yCb)とし、対象ブロックの幅をcbWidthとし、対象ブロックの高さをcbHeightとする。
ここでNは、マージ候補を示すラベルであり、A1,B1,B0,A0,B2,Col,AvgK,ZeroCandKなどをとる。ラベルNで示されるマージ候補の動き情報は(mvLXN[0], mvLXN[1])、predFlagLXN, refIdxLXNで示される。
MMVD予測部30373は、マージ候補導出部30361で導出した中心ベクトルmvdLX(マージ候補の動きベクトル)に、差分ベクトルmvdLXを加算して動きベクトルを導出する。
MMVD予測部30376は、ベース距離(mvdUnit[0], mvdUnit[1])と距離DistFromBaseMVを導出する。
dir_table_y[] = { 0, 0, 8, -8, 6, -6, 6, -6 }
mvdUnit[0] = dir_table_x[direction_idx]
mvdUnit[1] = dir_table_y[direction_idx]
DistFromBaseMV = DistanceTable[distance_idx]
MMVD予測部30376は、差分ベクトルrefineMv[]を導出する。
firstMv[1] = (DistFromBaseMV<<shiftMMVD) * mvdUnit[1]
ここでshiftMMVDは、動き補償部3091(補間部)での動きベクトルの精度MVPRECにあうように差分ベクトルの大きさを調整する値である。
refineMvL0[1] = firstMv[1]
refineMvL1[0] = -firstMv[0]
refineMvL1[1] = -firstMv[1]
最終的に、MMVD予測部30376は、差分ベクトルrefineMvLXと中心ベクトルmvLXNから以下のように、MMVDマージ候補の動きベクトルを導出する。
mvL0[ 1 ] = mvL0N[ 1 ] + refineMvL0[1]
mvL1[ 0 ] = mvL1N[ 0 ] + refineMvL1[0]
mvL1[ 1 ] = mvL1N[ 1 ] + refineMvL1[1]
(AMVP予測)
図9(b)は、本実施形態に係るAMVP予測パラメータ導出部3032の構成を示す概略図である。AMVP予測パラメータ導出部3032は、ベクトル候補導出部3033とベクトル候補選択部3034を備える。ベクトル候補導出部3033は、参照ピクチャインデックスrefIdxLXに基づいて予測パラメータメモリ307が記憶する復号済みの隣接ブロックの動きベクトルmvLXから予測ベクトル候補を導出し、予測ベクトル候補リストmvpListLX[]に格納する。
mvLX[1] = mvpLX[1]+mvdLX[1]
動きベクトル精度モードamvr_modeは、AMVPモードで導出される動きベクトルの精度を切り替えるシンタックスである、例えば、amvr_mode=0, 1, 2において、1/4画素、1画素、4画素精度を切り替える。
mvdLX[1] = mvdLX[1] << (MvShift + 2)
なお、さらにパラメータ復号部302は、mvdLX[]を以下のシンタックスを復号して導出してもよい。
・abs_mvd_greater0_flag
・abs_mvd_minus2
・mvd_sign_flag
を復号しする。そして、パラメータ復号部302は、以下の式を用いることによって、シンタックスから差分ベクトルlMvd[]を復号する。
] + 2 ) * ( 1 - 2 * mvd_sign_flag[ compIdx ] )
さらに復号した差分ベクトルlMvd[]は、並進MVDの場合(MotionModelIdc[ x ][ y ] ==
0)にはmvdLXに設定し、制御点MVDの場合(MotionModelIdc[ x ][ y ] != 0)には、mvdCpLXに設定する。
mvdLX[ x0 ][ y0 ][ compIdx ] = lMvd[ compIdx ]
else
mvdCpLX[ x0 ][ y0 ][ compIdx ] = lMvd[ compIdx ]<<2
(DMVR)
続いて、DMVR部30375が行うDMVR(Decoder side Motion Vector Refinement)処理について説明する。DMVR部30375は、対象CUに対して、マージフラグmerge_flagがマージ予測モードを適用することを示している場合、又は、スキップフラグskip_flagがスキップモードを適用することを示している場合、マージ予測部30374が導出する当該対象CUの動きベクトルmvLXを、参照画像を用いて修正する。
続いてTriangle予測について説明する。Triangle予測では、対角線又は反対角線を境界として、対象CUが2つの三角形の予測単位に分割される。それぞれの三角形予測単位における予測画像は、対象CU(三角形予測単位を含む矩形ブロック)の予測画像の各画素に画素の位置に応じた重みつけマスク処理を施すことで導出する。例えば、矩形領域内の三角形領域の画素を1、三角形以外の領域を0とするマスクを乗ずることにより、矩形画像から三角形画像を導出できる。また、インター予測画像を生成した後、適応的な重み付け処理は対角線を挟んだ双方の領域に対して適用され、2つの予測画像を用いた適応的重みつけ処理により対象CU(矩形ブロック)の1つの予測画像が導出される。この処理を、Triangle合成処理と呼ぶ。そして、変換(逆変換)及び量子化(逆量子化)処理が対象CUの全体に対して適用される。なお、Triangle予測は、マージ予測モード又はスキップモードの場合にのみ適用される。
象CU毎に予め定めた位置に記憶する。
予測モードpredModeがインター予測モードを示す場合、インター予測画像生成部309は、インター予測パラメータ復号部303から入力されたインター予測パラメータと読み出した参照ピクチャを用いてインター予測によりブロックもしくはサブブロックの予測画像を生成する。
動き補償部3091(補間画像生成部3091)は、インター予測パラメータ復号部303から入力された、インター予測パラメータ(予測リスト利用フラグpredFlagLX、参照ピクチャインデックスrefIdxLX、動きベクトルmvLX)に基づいて、参照ピクチャメモリ306から、参照ピクチャインデックスrefIdxLXで指定された参照ピクチャRefPicLXにおける、対象ブロックの位置を起点として動きベクトルmvLXだけシフトした位置にあるブロックを読み出すことによって補間画像(動き補償画像)を生成する。ここで、動きベクトルmvLXの精度が整数精度でない場合には、動き補償フィルタと呼ばれる小数位置の画素を生成するためのフィルタを施して、動き補償画像を生成する。
xFrac = mvLX[0]&(MVPREC -1)
yInt = yPb+(mvLX[1]>>(log2(MVPREC)))+y
yFrac = mvLX[1]&(MVPREC -1)
ここで、(xPb,yPb)は、bW*bHサイズのブロックの左上座標、x=0…bW-1、y=0…bH-1であり、MVPRECは、動きベクトルmvLXの精度(1/MVPREC画素精度)を示す。例えばMVPREC=16。
続いて、動き補償部3091は、一時的画像temp[][]を垂直補間処理により、補間画像Pred[][]を導出する。以下のΣはk=0..NTAP-1のkに関する和、shift2は値のレンジを調整する正規化パラメータ、offset2=1<<(shift2-1)である。
以上の補間画像生成処理を、Interpolation(refImg,xPb,yPb,bW,bH,mvLX)で表してもよい。
合成部3095は、動き補償部3091から供給される補間画像、インター予測パラメータ復号部303から供給されるインター予測パラメータ、及び、イントラ予測画像生成部310から供給されるイントラ画像を参照して、予測画像を生成し、生成した予測画像を加算部312に供給する。
Combined intra/inter合成部30951は、AMVPにおける単方向予測画像、スキップモードやマージ予測モードによる予測画像、及びイントラ予測画像を複合的に用いることによって予測画像を生成する。
Triangle合成部30952は、上述したTriangle予測を用いた予測画像を生成する。
BDOF部30954は、BDOF(Bi-directional optical flow;双予測勾配変化)処理を行うことによって、予測画像を生成する。BDOF部30954の詳細は、後述する。
重み予測では、動き補償画像PredLXに重み係数を乗算することによりブロックの予測画像を生成する。予測リスト利用フラグの一方(predFlagL0もしくはpredFlagL1)が1(単予測)、かつ、重み予測を用いない場合、動き補償画像PredLX(LXはL0もしくはL1)を画素ビット数bitDepthに合わせる以下の式の処理を行う。
ここで、shift1=14-bitDepth、offset1=1<<(shift1-1)である。
また、参照リスト利用フラグの両者(predFlagL0とpredFlagL1)が1(双予測BiPred)、かつ、重み予測を用いない場合、動き補償画像PredL0、PredL1を平均し画素ビット数に合わせる以下の式の処理を行う。
ここで、shift2=15-bitDepth、offset2=1<<(shift2-1)である。
ここで、log2WDは所定のシフト量を示す変数である。
そして、生成したブロックの予測画像を加算部312に出力する。
次に、BDOF部30954が行うBDOF処理を用いた予測(BDOF予測)の詳細について説明する。BDOF部30954は、双予測モードにおいて、2つの予測画像(第1の予測画像及び第2の予測画像)及び勾配補正項を参照して予測画像を生成する。
bdofFlagがTRUEを示す条件として、対象ブロックが、サブブロック予測(アフィン予測)でないという条件を追加してもよい。
refIdxL0 ]と、L1予測ピクチャに輝度の重み係数w1とオフセットo1が存在するか否かを示すluma_weight_l1_flag[ refIdxL1 ]が両方ともFALSEの場合、bdofFlagがTRUEを示す条件とする。
numSbY = ( cbHeight > 16 ) ? ( cbHeight >> 4 ) : 1
sbWidth = cbWidth / numSbX
sbHeight = cbHeight / numSbY
次に、図14で示されるサブブロック単位毎のL0,L1予測画像をもとに、BDOF処理をおこなうが、勾配を求めるために、サブブロックの周囲1画素分の補間画像情報を追加で必要とする。この補間画像情報は、後述の勾配画像生成では、通常の補間フィルタではなく近傍の画素を用いる。それ以外の場合は、ピクチャの外側と同様に、周囲の画素をコピーしたパディング領域である。また、BDOF処理の単位は、サブブロック単位以下の4x4画素であり、処理自体は、周囲1画素を加えた、6x6の画素を用いて処理を行う。
bdofBlkDiffThres = 128
本実施の形態では、sbDiffThresは画素あたり4、bdofBlkDiffThresは128=8*4*4なので
、画素あたり8の値を閾値としているが、この値以外を用いてもよい。例えば、2倍の値、sbDiffThres = 8 * sbWidth*sbHeight、bdofBlkDiffThres = 256でもよい。また、sbDiffThres=0とすることで、サブブロック単位の切り替えをオフにしてもよく、bdofBlkDiffThres=0とすることで、4x4画素ブロック単位の切り替えをオフにしてもよい。
その上で、4x4画素ブロック毎のxIdx=0..(sbWidth>>2)-1およびyIdx=0..(sbHeight>>2)-1のループを回して、4x4画素単位での差分絶対値和bdofBlkSumDiffおよびbdofUtilizationFlag[xIdx][yIdx]は次のように導出される。
= sum4(Abs((PredL0[(xIdx<<2)+1+i][(yIdx<<2)+1+j]>>shift4)
?(PredL1[(xIdx<<2)+1+i][(yIdx<<2)+1+j]>>shift4))) (式BDOF-1)
shift4=Max(InternalBitDepth-4, bitDepth+InternalBitDepth-16)
bdofUtilizationFlag[xIdx][yIdx] = (bdofBlkSumDiff >= bdofBlkDiffThres)
sbSumDiff += bdofBlkSumDiff
つまり、PredL0をshift4によりシフトした値と、PredL1をshift4によりシフトした値との差分の絶対値の総和を導出する。なお、(式BDOF-1)において、(x, y)=((xIdx<<2)+1+i,
yIdx<<2)+1+j)の代わりに、(x,y)をさらにCUのサイズ(nCbW, nCbH)でクリップした値(hx, vy)を用いてもよい。この場合、境界を超える画素はパディングで導出される。
vy = Clip3( 1, nCbH, y )
ここで、sum4()は、i=0..3、j=0..3の引数で4x4画素ブロックの合計を求める関数とし、shift4は、後述する相関パラメータ計算部309544で定義するshift4と同一のものとする。なお、InternalBitDepthは、BDOF部内の計算精度のパラメータで、入力画素ビット長bitDepthとは独立な一定値で、7以上12以下の値とする。例えば、InternalBitDepth=8の場合、shift4はshift4=Max(4, bitDepth-8)となる。
= sum42(Abs((PredL0[(xIdx<<2)+1+i][(yIdx<<2)+1+2*j]>>shift4)
?(PredL1[(xIdx<<2)+1+i][(yIdx<<2)+1+2*j]>>shift4)))
ここで、sum42()は、i=0..3、j=0..1の引数で4x2画素ブロックの合計を求める関数である。bdofBlkSumDiffは1ライン飛ばしの4x2画素の差分絶対値和としてもよい。この場合、sbDiffThres、bdofBlkDiffThresは、前記の実施例の半分の値を用いることにし、下記のように設定する。
bdofBlkDiffThres = 64
このような構成にすることにより、bdofBlkSumDiffの計算量を半分にすることができる。予測画像生成に直接影響する演算ではないため、処理削減による性能低下はほとんど生じない。
以降では位置の変化(Vx,Vy)を補正重みベクトル(u,v)と呼ぶ。
ように行う。
ly0[x][y] = (PredL0[x][y+1]-PredL0[x][y-1])>>shift0
lx1[x][y] = (PredL1[x+1][y]-PredL1[x-1][y])>>shift0
ly1[x][y] = (PredL1[x][y+1]-PredL1[x][y-1])>>shift0
ここで、shift0=14-InternalBitDepthである。
ly0[x][y] = (PredL0[x][y+1]>>shift0)-(PredL0[x][y-1]>>shift0)
lx1[x][y] = (PredL1[x+1][y]>>shift0)-(PredL1[x-1][y]>>shift0)
ly1[x][y] = (PredL1[x][y+1]>>shift0)-(PredL1[x][y-1]>>shift0)
(式BDOF-3)の場合、PredL0とPredL1の最小値と最大値の範囲が16ビットとすると、差分が17ビットとなるため、32ビット演算が必要とされるが、(式BDOF-4)の場合、先に右シフトを行うため、すべての演算が16ビット演算で実行できるため、並列演算命令が使いやすいという利点がある。
s2 = sum6(phiX[x][y]* phiY[x][y])
s3 = sum6(-theta[x][y]* phiX[x][y])
s5 = sum6(phiY[x][y]* phiY[x][y])
s6 = sum6(-theta[x][y]* phiY[x][y])
ここで、sum(a)は6x6画素のブロック内の座標(x,y)に対するaの総和を表す。
phiX[x][y] = (lx1[x][y] + lx0[x][y])>>shift5
phiY[x][y] = (ly1[x][y] + ly0[x][y])>>shift5
つまり、PredL0[x][y]をshift4によりシフトした値と、PredL1[x][y]をshift4によりシフトした値との差分からtheta[x][y]を導出する。これは、(式BDOF-1)において計算する差分値と同じである。
ここで、shift4、shift5は以下で導出する。
shift5=Max(InternalBitDepth-7, bitDepth+InternalBitDepth-19)
なお、(式BDOF-2)において、(x, y)の代わりにCUのサイズ(nCbW, nCbH)でクリップした
値(hx, vy)を用いてもよい。この場合、境界を超える画素はパディングで導出される。また、x, yは各々x=xSb-1..xSb+4, y=ySb-1..ySb+4の範囲であってもよい。
hx = Clip3( 1, nCbW, x )
vy = Clip3( 1, nCbH, y )
この時、thetaの値の演算精度は、bitDepthが8以上ならば常に、(19-InternalBitDepth)ビットとなる。また、画像のbitDepthが8以上ならば、phiXとphiYの演算精度は常に9ビットとなる。そこで、6x6画素のブロックの合計となるs1,s2,s5の演算精度は、bitDepthにかかわらず、23ビット程度である。また、同様に、6x6画素のブロックの合計となるs3,s6の演算精度は、(33-InternalBitDepth)ビット程度である。PredL0とPredL1の最小値、最大値は、bitDepthが8以上12以下の場合、16ビットの範囲であり、bitDepthが13ビット以上の場合、(bitDepth+4)ビットの範囲なので、32ビット整数演算で実現できる。
shift4=Max(4, bitDepth-8)
shift5=Max(1, bitDepth-11)
InternalBitDepth=7とした場合には下式で実現する。
shift4=Max(3, bitDepth-9)
shift5=Max(0, bitDepth-12)
相関パラメータ計算部309544の別の構成としては、勾配積和s1,s2,s3,s5,s6は、6x6画素のブロックでなく、4x4画素のブロックで求めてもよい。4x4=16画素のブロックとなるため、6x6=36画素の合計と比べてsumの計算に必要な演算ビットが(Ceil(log2(36))-Ceil(log2(16)))=2ビット少なくてもすむ。
shift5=Max(InternalBitDepth-8, bitDepth+InternalBitDepth-18)
そのため、上式のようにそれぞれ1ビット小さい値を用いても、32ビット整数演算で実現できる。但し、この場合、InternalBitDepthの値は、8以上12以下とする。また、勾配積和の演算量も削減できる。図15のように、BDOF処理の単位と読み込み領域が一致するため、図14の場合と異なり、対象となるサブブロックの周囲1画素分のパディング領域は不要となる。
v = ((s6<<3)-((((u*s2m)<<12)+u*s2s)>>1)) >> floor(log2(s5))
ここでs2m=s2>>12、s2s=s2&((1<<12)-1)である。
v=s5>0?Clip3(-th,th,((s6<<3)-((((u*s2m)<<12)+u*s2s)>>1))>>floor(log2(s5))):0
ここで、thは下式で表現される。
thはbitDepthとは独立の値になることから、画素単位の補正重みベクトル(u, v)は、InternalBitDepthに関連した値でクリッピングされることになる。画素ビット長bitDepthにかかわらず、例えば、InternalBitDepth=8とすると、th=1<<(13-8)=32となる。また、InternalBitDepth=7とすると、th=1<<(13-7)=64となる。
th = th0 +floor((Qp-32)/6)
なお、勾配積和s3とs6の左3ビットシフトを行わず、下式で導出してもよい。
v = (s6-((((u*s2m)<<12)+u*s2s)>>1))>> floor(log2(s5))
但し、shift4は下式で導出する。
この場合、shift0及びshift5の変更は必要ない。具体的に、InternalBitDepth=8の場合、shift4は下式で導出する。
動き補償修正値導出部309545は、4x4画素単位の補正重みベクトル(u, v)と勾配画像lx0、ly0、lx1、ly1を用いて、動き補償修正値bdofOffsetを導出する。
あるいはラウンド関数を用いて、bdofOffsetを以下のように導出してもよい。
あるいは、勾配画像lx0、ly0、lx1、ly1の右シフト値のshift0の値を工夫することで、以下のように、右シフトやラウンド関数を用いずに導出することもできる。
shift0=15-InternalBitDepth
shift5=Max(InternalBitDepth-8, bitDepth+InternalBitDepth-20)
この場合、InternalBitDepthの選択範囲は、8以上12以下で、shift4の変更は必要ない。具体的に、InternalBitDepth=8の場合は、下式となる。
shift5=Max(0, bitDepth-12)
双方向予測画像生成部309546は、上記のパラメータを用いて下式により、4x4画素の予測画像の画素値Predを導出する。
ここで、shift2=Max(3,15-bitDepth)、offset2=1<<(shift2-1)である。
や、4x4画素単位でBDOF処理を行うか否かを示すフラグの設定のための演算量を抑えることができる。
次に、本実施形態に係る動画像符号化装置11の構成について説明する。図16は、本実施形態に係る動画像符号化装置11の構成を示すブロック図である。動画像符号化装置11は、予測画像生成部101、減算部102、変換・量子化部103、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、パラメータ符号化部111、エントロピー符号化部104を含んで構成される。
パラメータ符号化部112は、符号化パラメータ決定部110から入力された予測パラメータに基づいて、インター予測パラメータを導出する。パラメータ符号化部112は、インター予測パラメータ復号部303がインター予測パラメータを導出する構成と一部同一の構成を含む。
部106は生成した復号画像を参照ピクチャメモリ109に記憶する。
ても良い。
上述した動画像符号化装置11及び動画像復号装置31は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用することができる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像(CGおよびGUIを含む)であってもよい。
るとよい。
、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを受信するものであってもよい。後者の場合、受信部PROD_C5と符号化部PROD_C1との間に、伝送用の符号化方式で符号化された符号化データを復号する伝送用復号部(不図示)を介在させるとよい。
また、上述した動画像復号装置31および動画像符号化装置11の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
Access Memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の実施形態の目的は、上述した機能を実現するソフトウェアである上記各装置の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記各装置に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
301 エントロピー復号部
302 パラメータ復号部
3020 ヘッダ復号部
303 インター予測パラメータ復号部
304 イントラ予測パラメータ復号部
308 予測画像生成部
309 インター予測画像生成部
310 イントラ予測画像生成部
311 逆量子化・逆変換部
312 加算部
11 画像符号化装置
101 予測画像生成部
102 減算部
103 変換・量子化部
104 エントロピー符号化部
105 逆量子化・逆変換部
107 ループフィルタ
110 符号化パラメータ決定部
111 パラメータ符号化部
112 インター予測パラメータ符号化部
113 イントラ予測パラメータ符号化部
1110 ヘッダ符号化部
1111 CT情報符号化部
1112 CU符号化部(予測モード符号化部)
1114 TU符号化部
30954 BDOF部
309541 L0,L1予測画像生成部
309542 フラグ設定部
309543 勾配画像生成部
309544 相関パラメータ計算部
309545 動き補償修正値導出部
309546 双方向予測画像生成部
Claims (5)
- 第1の予測画像および第2の予測画像を参照して第3の予測画像を生成するBDOF部を備えた動画像復号装置であって、
前記第1の予測画像および前記第2の予測画像を生成し、
前記第1の予測画像および前記第2の予測画像の差分絶対値和である予測誤差をサブブロック単位で導出し、
BDOF処理に関連するフラグを導出し、
前記フラグがTRUEを示し、かつ、前記予測誤差が閾値以上の場合、前記BDOF部はBDOF処理を実施し、
前記閾値は、サブブロックの幅と高さの積を2倍した値であることを特徴とする動画像復号装置。 - 前記フラグがTRUEを示す場合、前記第1の予測画像の生成に使用される第1の参照画像と前記第2の予測画像の生成に使用される第2の参照画像が、対象画像に対して反対方向に位置することを特徴とする請求項1に記載の動画像復号装置。
- 前記フラグがTRUEを示す場合、重み係数とオフセットが存在するか否かを示す第1の重みフラグと第2の重みフラグがFALSEであることを特徴とする請求項1に記載の動画像復号装置。
- 前記フラグがTRUEを示す場合、対象ブロックについて、アフィン予測を行わないことを特徴とする請求項1に記載の動画像復号装置。
- 第1の予測画像および第2の予測画像を参照して第3の予測画像を生成するBDOF部を備えた動画像符号化装置であって、
前記第1の予測画像および前記第2の予測画像を生成し、
前記第1の予測画像および前記第2の予測画像の差分絶対値和である予測誤差をサブブロック単位で導出し、
BDOF処理に関連するフラグを導出し、
前記フラグがTRUEを示し、かつ、前記予測誤差が閾値以上の場合、前記BDOF部はBDOF処理を実施し、
前記閾値は、サブブロックの幅と高さの積を2倍した値であることを特徴とする動画像符号化装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019107061A JP7378968B2 (ja) | 2019-06-07 | 2019-06-07 | 予測画像生成装置、動画像復号装置および動画像符号化装置 |
JP2023187980A JP2023181459A (ja) | 2019-06-07 | 2023-11-01 | 動画像復号装置、動画像符号化装置、動画像復号方法および動画像符号化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019107061A JP7378968B2 (ja) | 2019-06-07 | 2019-06-07 | 予測画像生成装置、動画像復号装置および動画像符号化装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023187980A Division JP2023181459A (ja) | 2019-06-07 | 2023-11-01 | 動画像復号装置、動画像符号化装置、動画像復号方法および動画像符号化方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2020202454A JP2020202454A (ja) | 2020-12-17 |
JP2020202454A5 JP2020202454A5 (ja) | 2022-06-15 |
JP7378968B2 true JP7378968B2 (ja) | 2023-11-14 |
Family
ID=73742173
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019107061A Active JP7378968B2 (ja) | 2019-06-07 | 2019-06-07 | 予測画像生成装置、動画像復号装置および動画像符号化装置 |
JP2023187980A Pending JP2023181459A (ja) | 2019-06-07 | 2023-11-01 | 動画像復号装置、動画像符号化装置、動画像復号方法および動画像符号化方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023187980A Pending JP2023181459A (ja) | 2019-06-07 | 2023-11-01 | 動画像復号装置、動画像符号化装置、動画像復号方法および動画像符号化方法 |
Country Status (1)
Country | Link |
---|---|
JP (2) | JP7378968B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024155077A1 (ko) * | 2023-01-16 | 2024-07-25 | 주식회사 케이티 | 영상 부호화/복호화 방법 및 비트스트림을 저장하는 기록 매체 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020526964A (ja) | 2017-07-03 | 2020-08-31 | ヴィド スケール インコーポレイテッド | 双方向オプティカルフローに基づいた動き補償予測 |
JP2020150313A (ja) | 2019-03-11 | 2020-09-17 | Kddi株式会社 | 画像復号装置、画像復号方法及びプログラム |
JP2022515875A (ja) | 2019-01-02 | 2022-02-22 | テレフオンアクチーボラゲット エルエム エリクソン(パブル) | ビデオエンコーディング/デコーディングシステムにおけるサイド動き精細化 |
-
2019
- 2019-06-07 JP JP2019107061A patent/JP7378968B2/ja active Active
-
2023
- 2023-11-01 JP JP2023187980A patent/JP2023181459A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020526964A (ja) | 2017-07-03 | 2020-08-31 | ヴィド スケール インコーポレイテッド | 双方向オプティカルフローに基づいた動き補償予測 |
JP2022515875A (ja) | 2019-01-02 | 2022-02-22 | テレフオンアクチーボラゲット エルエム エリクソン(パブル) | ビデオエンコーディング/デコーディングシステムにおけるサイド動き精細化 |
JP2020150313A (ja) | 2019-03-11 | 2020-09-17 | Kddi株式会社 | 画像復号装置、画像復号方法及びプログラム |
Non-Patent Citations (3)
Title |
---|
Hongbin Liu, Li Zhang, Kai Zhang, Jizheng Xu, Yue Wang,CE9-2.3: Modifications on Bi-Directional Optical Flow [online], JVET-N JVET-N0270,ITU-T インターネット<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/14_Geneva/wg11/JVET-N0270-v1.zip>,2019年03月13日,pp.1-3 |
Kyohei Unno, Kei Kawamura, Sei Naito,CE9-related: Alternative method of SAD based early termination for BDOF [online], JVET-N JVET-N0158,ITU-T インターネット<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/14_Geneva/wg11/JVET-N0158-v1.zip>,2019年03月12日,pp.1-4 |
Takeshi Chujoh, Eiichi Sasaki, Tomohiro Ikai,Non-CE9: An improvement of early termination for BDOF [online], JVET-O JVET-O0208-v2,ITU-T インターネット<URL:https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0208-v2.zip>,2019年07月03日,pp.1-4 |
Also Published As
Publication number | Publication date |
---|---|
JP2020202454A (ja) | 2020-12-17 |
JP2023181459A (ja) | 2023-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7555328B2 (ja) | 動画像復号装置、動画像符号化装置、および動画像復号方法 | |
JP7448349B2 (ja) | 動画像復号装置 | |
WO2020137920A1 (ja) | 予測画像生成装置、動画像復号装置、動画像符号化装置および予測画像生成方法 | |
WO2021111962A1 (ja) | 動画像復号装置 | |
JP2024129102A (ja) | 動画像復号装置および動画像符号化装置 | |
JP7568625B2 (ja) | 画像復号装置および画像復号方法 | |
JP2023181459A (ja) | 動画像復号装置、動画像符号化装置、動画像復号方法および動画像符号化方法 | |
JP2020096279A (ja) | 予測画像生成装置、動画像復号装置および動画像符号化装置 | |
JP2020145650A (ja) | 画像復号装置および画像符号化装置 | |
JP2020088660A (ja) | 動画像符号化装置、動画像復号装置 | |
JP2020108012A (ja) | 画像復号装置および画像符号化装置 | |
WO2021200658A1 (ja) | 動画像復号装置及び動画像復号方法 | |
US11044490B2 (en) | Motion compensation filter apparatus, image decoding apparatus, and video coding apparatus | |
JP2020170901A (ja) | 予測画像生成装置、動画像復号装置および動画像符号化装置 | |
JP2022087865A (ja) | 画像復号装置及び画像符号化装置 | |
JP2020088577A (ja) | 予測画像生成装置、動画像復号装置、および動画像符号化装置 | |
JP2020096329A (ja) | 予測画像生成装置、動画像復号装置および動画像符号化装置 | |
JP2021180342A (ja) | 予測画像生成装置、動画像復号装置、および動画像符号化装置 | |
CN113170190B (zh) | 以两个预测图像生成预测图像的预测图像生成装置和方法 | |
WO2021235448A1 (ja) | 動画像符号化装置及び動画像復号装置 | |
JP7514611B2 (ja) | 動画像復号装置、動画像符号化装置、及び、予測画像生成装置 | |
JP7465128B2 (ja) | 動画像符号化装置及び動画像復号装置 | |
RU2812275C2 (ru) | Устройство декодирования видеосигналов | |
RU2799802C2 (ru) | Устройство генерирования прогнозируемых изображений, устройство декодирования видеосигналов, устройство кодирования видеосигналов и способ генерирования прогнозируемых изображений | |
JP2020109919A (ja) | 予測画像生成装置、動画像復号装置および動画像符号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20220601 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220607 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220607 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230614 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230620 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230821 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20231003 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231101 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7378968 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |