JP7460661B2 - 映像符号化のための動き候補リストの構成 - Google Patents
映像符号化のための動き候補リストの構成 Download PDFInfo
- Publication number
- JP7460661B2 JP7460661B2 JP2021572490A JP2021572490A JP7460661B2 JP 7460661 B2 JP7460661 B2 JP 7460661B2 JP 2021572490 A JP2021572490 A JP 2021572490A JP 2021572490 A JP2021572490 A JP 2021572490A JP 7460661 B2 JP7460661 B2 JP 7460661B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- video
- candidates
- video block
- motion
- 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
- 230000033001 locomotion Effects 0.000 title claims description 529
- 238000000034 method Methods 0.000 claims description 459
- 239000013598 vector Substances 0.000 claims description 430
- 238000012545 processing Methods 0.000 claims description 99
- 238000006243 chemical reaction Methods 0.000 claims description 53
- 230000009466 transformation Effects 0.000 claims description 35
- 238000013138 pruning Methods 0.000 claims description 27
- 230000015654 memory Effects 0.000 claims description 6
- 230000001052 transient effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 188
- 241000023320 Luma <angiosperm> Species 0.000 description 119
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 115
- 238000009795 derivation Methods 0.000 description 86
- 230000002123 temporal effect Effects 0.000 description 66
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 39
- 230000002457 bidirectional effect Effects 0.000 description 30
- 238000010276 construction Methods 0.000 description 23
- 238000005516 engineering process Methods 0.000 description 17
- 238000005192 partition Methods 0.000 description 12
- 239000011449 brick Substances 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 230000006872 improvement Effects 0.000 description 9
- 238000003491 array Methods 0.000 description 8
- 230000011664 signaling Effects 0.000 description 7
- 238000000638 solvent extraction Methods 0.000 description 7
- 238000003672 processing method Methods 0.000 description 6
- 239000000872 buffer Substances 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000007774 longterm Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 101100370058 Escherichia coli (strain K12) tolC gene Proteins 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
本願は、2019年6月6日出願の国際特許出願PCT/CN2019/090409号、2019年6月22日出願の国際特許出願PCT/CN2019/092438号、2019年9月10日出願の国際特許出願PCT/CN2019/105180号の優先権および利益を主張する2020年6月8日出願の国際特許出願PCT/CN2020/094865号に基づく。上記特許出願の全ては、それらの全体における参照によりここで援用される。
この処理への入力は以下の通りである。
-現在の予測ブロックを規定する変数currPb、
-ColPicにて規定された同一位置のピクチャ内の同一位置の予測ブロックを規定する変数colPb、
-ColPicにて規定された同一位置のピクチャの左上の輝度サンプルに対するcolPbにて規定された同一位置の輝度予測ブロックの左上のサンプルを規定する輝度位置(xColPb,yColPb)
-Xが0または1に等しい、参照インデックスrefIdxLX。
-動きベクトル予測mvLXCol、
-可用性フラグavailableFlagLXCol。
配列predFlagL0Col[x]、mlvL0Col[x]、refIdxL0Col[x][y]は、それぞれ、ColPicで規定された同一位置のピクチャのPredFlagL0[x]、MlvL0[x]、RefIdxL0[x][y]に等しく設定され、配列predFlagL1Col[x][y]、mvL1Col[x][y]、およびrefIdxL1Col[x][y]は、それぞれ、ColPicで規定された同一位置のPredFlagL1[x]、MvL1[x]、RefIdxL1[x][y]に等しく設定される。
-colPbがイントラ予測モードで符号化される場合、mvLXColの両成分は0に等しく設定され、availableFlagLXColは0に等しく設定される。
-そうでない場合、動きベクトルmvCol、参照インデックスrefIdxCol、および参照リスト識別子listColは、以下のように導出される。
-predFlagL0Col[xColPb][yColPb]が0に等しい場合、mvCol、refIdxCol、listColは、それぞれ、mvL1Col[xColPb][yColPb]、refIdxL1Col[xColPb][yColPb]、L1に等しく設定される。
-そうでない場合、predFlagL0Col[xColPb][yColPb]が1に等しく、かつ、predFlagL1Col[xColPb][yColPb][yColPb]が0に等しい場合、mvCol、refIdxCol、listColは、それぞれ、mvL0Col[xColPb][yColPb],refIdxL0Col[xColPb][yColPb]、およびL0に等しく設定される。
-そうでない場合(predFlagL0Col[xColPb][yColPb]が1に等しく、かつ、predFlagL1Col[xColPb][yColPb]が1に等しい場合)、以下の割り当てを行う。
-NoBackwardPredFlagが1に等しい場合、mvCol、refIdxCol、およびlistColは、それぞれ、mvLXCol[xColPb][yColPb]、refIdxLXCol[xColPb][yColPb]、およびLXに等しく設定される。
-そうでない場合、mvCol、refIdxCol、listColは、それぞれ、mvLNCol[xColPb][yColPb]、refIdxLNCol[xColPb][yColPb]、LNに等しく設定され、Nはcollocated_from_l0_flagの値である。
-LongTermRefPic(currPic,currPb,refIdxLX,LX)がLongTermRefPic(ColPic,colPb,refIdxCol,listCol)に等しくない場合、mvLXColの両成分は0に等しく設定され、availableFlagLXColは0に等しく設定される。
-そうでない場合、変数availableFlagLXColは1に等しく設定され、refPicListCol[refIdxCol]は、ColPicによって規定された同一位置のピクチャにおける予測ブロックcolPbを含むスライスの参照ピクチャリストlistColにおける参照インデックスrefIdxColを有するピクチャとなるように設定され、以下を適用する。
colPocDiff=DiffPicOrderCnt(ColPic,refPicListCol[refIdxCol]) (2-1)
currPocDiff=DiffPicOrderCnt(currPic,RefPicListX[refIdxLX]) (2-2)
-RefPicListX[refIdxLX]が長期参照ピクチャである場合、またはcolPocDiffがcurrPocDiffに等しい場合、mvLXColは、以下のように導出される。
mvLXCol=mvCol (2-3)
-そうでない場合、mvLXColは、動きベクトルmvColのスケーリングされたバージョンとして、以下のように導出される。
tx=(16384+(Abs(td)>>1))/td (2-4)
distScaleFactor=Clip3(-4096,4095,(tb*tx+32)>>6) (2-5)
mvLXCol=Clip3(-32768,32767,Sign(distScaleFactor*mvCol)*((Abs(distScaleFactor*mvCol)+127)>>8)) (2-6)
ここで、tdおよびtbは、以下のように導出される。
td=Clip3(-128,127,colPocDiff) (2-7)
tb=Clip3(-128,127,currPocDiff) (2-8)
変数NoBackwardPredFlagは、以下のように導出される。
-現在のスライスのRefPicList0またはRefPicList1における各ピクチャaPicについて、DiffPicOrderCnt(aPic,CurrPic)が0以下である場合、NoBackwardPredFlagは1に等しく設定される。
-そうでない場合、NoBackwardPredFlagは、0に等しく設定される。
six_minus_max_num_merge_candは、6から減算した、スライスでサポートされるマージMVP(Motion Vector Prediction)候補の最大数を規定する。マージMVP候補の最大数MaxNumMergeCandは、以下のように導出される。
MaxNumMergeCand=6-six_minus_max_num_merge_cand (7-57)
MaxNumMergeCandの値は、1~6の範囲内である。
MaxNumSubblockMergeCand=5-five_minus_max_num_subblock_merge_cand (7-58)
MaxNumSubblockMergeCandの値は、1~5の範囲内である。
0に等しいpred_mode_flagは、現在の符号化ユニットがインター予測モードで符号化されることを規定する。pred_mode_flagが1に等しい場合、現在の符号化ユニットがイントラ予測モードで符号化されることを規定する。
pred_mode_flagが存在しない場合、次のように推測される。
-cbWidthが4に等しく、かつ、cbHeightが4に等しい場合、pred_mode_flagは1と等しいと推測される。
-そうでない場合、Iスライスを復号化する場合、pred_mode_flagは1に等しいと推測され、PまたはBスライスを復号化する場合、それぞれ0に等しいと推測される。
-pred_mode_flagが0に等しい場合、CuPredMode[x][y]は、MODE_INTERに等しく設定される。
-そうでない場合(pred_mode_flagが1に等しい場合)、CuPredMode[x][y]はMODE_INTRAに等しく設定される。
1に等しいpred_mode_ibc_flagは、現在の符号化ユニットがIBC予測モードで符号化されることを規定する。pred_mode_ibc_flagが0に等しい場合、現在の符号化ユニットがIBC予測モードで符号化されないことを規定する。
-cu_skip_flag[x0][y0]が1に等しく、かつ、cbWidthが4に等しく、かつ、cbHeightが4に等しい場合、pred_mode_ibc_flagは1と等しいと推測される。
-そうでない場合、cbWidthおよびcbHeightの両方が128に等しい場合、pred_mode_ibc_flagは0に等しいと推測される。
-そうでない場合、Iスライスを復号化する場合、pred_mode_ibc_flagはsps_ibc_enabled_flagの値に等しいと推測され、PまたはBスライスを復号化する場合、それぞれ0と推測される。
pred_mode_ibc_flagが1に等しい場合、変数CuPredMode[x][y]は、x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1に対してMODE_IBCと等しくなるように設定される。
general_merge_flag[x0][y0]が存在しない場合、次のように推測される。
-cu_skip_flag[x0][y0]が1に等しい場合、general_merge_flag[x0][y0]は1に等しいと推測される。
-そうでない場合、general_merge_flag[x0][y0]は0に等しいと推測される。
mvp_l0_flag[x0][y0]が存在しない場合、0に等しいと推測される。
inter_pred_idc[x0][y0]は、表7-10に従って、list0、list1、または双方向予測を現在の符号化ユニットに使用するかどうかを規定する。配列インデックスx0、y0は、ピクチャの左上の輝度サンプルに対する、考慮される符号化ブロックの左上の輝度サンプルの位置(x0,y0)を規定する。
regular_merge_flag[x0][y0]が1に等しい場合、現在の符号化ユニットのインター予測パラメータを生成するために、通常のマージモードが使用されることを規定する。配列インデックスx0、y0は、ピクチャの左上の輝度サンプルに対する、考慮される符号化ブロックの左上の輝度サンプルの位置(x0,y0)を規定する。
regular_merge_flag[x0][y0]が存在しない場合、次のように推測される。
-以下のすべての条件が真である場合、regular_merge_flag[x0][y0]は1に等しいと推測される。
-sps_mmvd_enabled_flagは0に等しい。
-general_merge_flag[x0][y0]は1に等しい。
-cbWidth*cbHeightは32に等しい。
-そうでない場合、egular_merge_flag[x0][y0]は0に等しいと推測される。
-以下のすべての条件が真である場合、mmvd_merge_flag[x0][y0]は1に等しいと推測される。
-sps_mmvd_enabled_flagは1に等しい。
-general_merge_flag[x0][y0]は1に等しい。
-cbWidth*cbHeightは32に等しい。
-egular_merge_flag[x0][y0]は0に等しい。
-そうでない場合、mmvd_merge_flag[x0][y0]は0に等しいと推測される。
mmvd_cand_flag[x0][y0]が存在しない場合、0に等しいと推測される。
MmvdOffset[x0][y0][0]=(MmvdDistance[x0][y0]<<2)*MmvdSign[x0][y0][0] (7-124)
MmvdOffset[x0][y0][1]=(MmvdDistance[x0][y0]<<2)*MmvdSign[x0][y0][1] (7-125)
merge_subblock_idx[x0][y0]が存在しない場合、0に等しいと推測される。
ciip_flag[x0][y0]が存在しない場合、0に等しいと推測される。
ciip_flag[x0][y0]が1に等しい場合、変数IntraPredModeY[x][y]は、x=xCb..xCb+cbWidth-1、およびy=yCb..yCb+cbHeight-1にて、INTRA_PLANARと等しく設定される。
-以下のすべての条件が真である場合、MergeTriangleFlag[x0][y0]は1に等しく設定される。
-sps_triangle_enabled_flagは1に等しい。
-slice_typeはBに等しい。
-general_merge_flag[x0][y0]は1に等しい。
-MaxNumTriangleMergeCandは2以上である。
-cbWidth*cbHeightは64以上である。
-egular_merge_flag[x0][y0]は0に等しい。
-mmvd_merge_flag[x0][y0]は0に等しい。
-merge_subblock_flag[x0][y0]は0に等しい。
-ciip_flag[x0][y0]は0に等しい。
-そうでない場合、MergeTriangleFlag[x0][y0]は0に等しい。
merge_triangle_split_dir[x0][y0]が存在しない場合、0に等しいと推測される。
merge_triangle_idx0[x0][y0]が存在しない場合、0に等しいと推測される。
merge_triangle_idx1[x0][y0]が存在しない場合、0に等しいと推測される。
merge_idx[x0][y0]が存在しない場合、次のように推測される。
-mmvd_merge_flag[x0][y0]が1に等しい場合、merge_idx[x0][y0]はmmvdmmvd_cand_flag[x0][y0]に等しいと推測される。
-そうでない場合(mmvd_merge_flag[x0][y0]が0に等しい)、merge_idx[x0][y0]は0に等しいと推測される。
この処理は、general_merge_flag[xCb][yCb]が1に等しい場合にのみ呼び出され、ここで、(xCb,yCb)は、現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルを規定する。
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
-1/16小数サンプル精度mvL0[0][0]およびmvL1[0][0]における輝度動きベクトル、
-参照インデックスrefIdxL0およびrefIdxL1、
-予測リスト利用フラグpredFlagL0[0][0]およびpredFlagL1[0][0]、
-双方向予測重みインデックスbcwIdx。
-マージ候補リストmergeCandList。
双方向予測重みインデックスbcwIdxは、0に等しく設定される。
動きベクトルmvL0[0][0]、mvL1[0]、参照インデックスrefIdxL0、refIdxL1、および予測利用フラグpredFlagLagL0[0][0]、predFlagL1[0][0]は、以下の順序ステップで導出される。
availableFlagCol=availableFlagL0Col (8-263)
predFlagL0Col=availableFlagL0Col (8-264)
predFlagL1Col=0 (8-265)
availableFlagCol=availableFlagL0Col||availableFlagL1Col (8-266)
predFlagL1Col=availableFlagL1Col (8-267)
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 (8-268)
-8.5.2.6節で規定されている履歴ベースのマージ候補の導出処理は、mergeCandListおよびnumCurrMergeCandを入力とし、修正されたmorgeCandListおよびnumCurrMergeCandを出力として呼び出される。
-numOrigMergeCandは、numCurrMergeCandに等しく設定される。
-8.5.2.4節で規定されているペアワイズ平均マージ候補の導出処理は、mergeCandList、参照インデックスrefIdxL0NおよびrefIdxL1N、予測リスト利用フラグpredFlagL0NおよびpreDFlagL1N、mergeCandListにおけるすべての候補Nの動きベクトルmvL0NおよびmlvL1N、および、numCurrMergeCandを入力として呼び出され、出力は、mergeCandList、numCurrMergeCand、参照インデックスrefIdxL0avgCandおよびrefIdxL1avgCand、予測リスト利用フラグpredFlagL0avgCandおよびpredFlagL1avgCand、および、mergeCandListに追加される候補avgCandの動きベクトルmvL0avgCandおよびmvL1avgCandに割り当てられる。mergeCandListに追加される候補avgCandの双方向予測重みインデックスbcwIdxは、0に等しく設定される。
-numOrigMergeCandは、numCurrMergeCandに等しく設定される。
refIdxLX=refIdxLXN (8-269)
predFlagLX[0][0]=predFlagLXN (8-270)
mvLX[0][0][0]=mvLXN[0] (8-271)
mvLX[0][0][1]=mvLXN[1] (8-272)
bcwIdx=bcwIdxN (8-273)
-8.5.2.7で規定されるようなマージ動きベクトル差分の導出処理は、輝度位置(xCb,yCb)、参照インデックスrefIdxL0、refIdxL1、および予測リスト利用フラグpredFlagL0[0][0]およびpredFlagL1[0][0]を入力とし、動きベクトル差分mMvdL0およびmMvdL1を出力として呼び出される。
-動きベクトル差分mMvdLXは、Xが0および1である場合、マージ動きベクトルmvLXに以下のように加算される。
mvLX[0][0][0]+=mMvdLX[0] (8-274)
mvLX[0][0][1]+=mMvdLX[1] (8-275)
mvLX[0][0][0]=Clip3(-217,217-1,mvLX[0][0][0]) (8-276)
mvLX[0][0][1]=Clip3(-217,217-1,mvLX[0][0][1]) (8-277)
-現在の符号化ブロックを規定する変数currCb、
-ColPicにて規定された同一位置のピクチャ内の同一位置の符号化ブロックを規定する変数colCb、
-ColPicによって規定された同一位置のピクチャの左上の輝度サンプルに対して、colCbによって規定された同一位置の輝度符号化ブロックの左上のサンプルを規定する輝度位置(xColCb,yColCb)、
-参照インデックスrefIdxLX、ここで、Xは0または1、
-サブブロック時間的マージ候補sbFlagを示すフラグ。
-1/16小数サンプル精度での動きベクトル予測mvLXCol、
-可用性フラグavailableFlagLXCol。
変数currPicは、現在のピクチャを規定する。
-colCbがイントラまたはIBC予測モードで符号化される場合、mvLXColの両成分は0に等しく設定され、availableFlagLXColは0に等しく設定される。
-そうでない場合、動きベクトルmvCol、参照インデックスrefIdxCol、および参照リスト識別子listColは、以下のように導出される。
-sbFlagが0に等しい場合、availableFlagLXColは1に等しく設定され、以下が適用される。
-predFlagL0Col[xColCb][yColCb]が0に等しい場合、mvCol、refIdxCol、およびlistColは、それぞれ、mvL1Col[xColCb][yColCb]、refIdxL1Col[xColCb][yColCb]、およびL1に等しく設定される。
-そうでない場合、predFlagL0Col[xColCb][yColCb]が1に等しく、かつ、predFlagL1Col[xColCb][yColCb][yColCb]が0に等しい場合、mvCol、refxIdCol、listColは、それぞれ、mvL0Col[xColCb][yColCb]、refIdxL0Col[xColCb][yColCb]、およびL0に等しく設定される。
-そうでない場合(predFlagL0Col[xColCb][yColCb]が1に等しく、かつ、predFlagL1Col[xColCb][yColCb]が1に等しい)、以下の割り当てを行う。
-NoBackwardPredFlagが1に等しい場合、mvCol、refIdxCol、およびlistColは、それぞれ、mvLXCol[xColCb][yColCb]、refIdxLXCol[xColCb][yColCb]、およびLXに等しく設定される。
-そうでない場合、mvCol、refIdxCol、listColは、それぞれ、mvLNCol[xColCb][yColCb]、refIdxLNCol[xColCb][yColCb]、LNに等しく設定され、Nは、collocated_from_l0_flagの値である。
-PredFlagLXCol[xColCb][yColCb]が1に等しい場合、mvCol、refxIdCol、およびlistColは、それぞれ、mvLXCol[xColCb][yColCb]、refIdxLXCol[xColCb][yColCb]、およびLXに等しく設定され、availableFlagLXColは1に等しく設定される。
-そうでない場合(PredFlagLXCol[xColCb][yColCb]が0に等しい)、以下が適用される。
-DiffPicOrderCnt(aPic,currPic)が、現在のスライスのすべての参照ピクチャリストaPicにおいて0以下であり、かつ、PredFlagLYCol[xColCb][yColCb]が1に等しい場合、mvCol、refxIdCol、およびlistColは、それぞれ、mvLYCol[xColCb][yColCb]、refIdxLYCol[xColCb][yColCb]、およびLYに等しく設定され、Yは!Xであり、Xは、この処理が呼び出されるXの値であり、availableFlagLXColは1に等しく設定される。
-mvLXColの両成分0に等しく設定され、availableFlagLXColは0に等しく設定される。
-LongTermRefPic(currPic,currCb,refIdxLX,LX)がLongTermRefPic(ColPic,colCb,refIdxCol,listCol)に等しくない場合、mvLXColの両成分は0に等しく設定され、availableFlagLXColは0に等しく設定される。
-そうでない場合、変数availableFlagLXColに1等しく設定され、refPicList[listCol][refIdxCol]は、ColPicにて規定された同一位置のピクチャにおける符号化ブロックcolbを含むスライスの参照ピクチャリストlistColにおける参照インデックスrefIdxColを有するピクチャに設定され、以下を適用する。
colPocDiff=DiffPicOrderCnt(ColPic,refPicList[listCol][refIdxCol]) (8-402)
currPocDiff=DiffPicOrderCnt(currPic,RefPicList[X][refIdxLX]) (8-403)
-8.5.2.15節で規定されるような同一位置の動きベクトルの時間的動きバッファ圧縮処理は、mvColを入力とし、修正されたmvColを出力として、呼び出される。
-RefPicList[X][refIdxLX]が長期参照ピクチャである場合、またはcolPocDiffがcurrPocDiffである場合、mvLXColは、以下のように導出される。
mvLXCol=mvCol (8-404)
-そうでない場合、mvLXColは、動きベクトルmvColのスケーリングされたバージョンとして、以下のように導出される。
tx=(16384+(Abs(td)>>1))/td (8-405)
distScaleFactor=Clip3(-4096,4095,(tb*tx+32)>>6) (8-406)
mvLXCol=Clip3(-131072,131071,(distScaleFactor*mvCol+128-(distScaleFactor*mvCol>=0))>>8)) (8-407)
ここで、tdおよびtbは、以下のように導出される。
td=Clip3(-128,127,colPocDiff) (8-408)
tb=Clip3(-128,127,currPocDiff) (8-409)
MvdX=-1;
MvdY=-1;
If(Sad(1,0)<Sad(-1,0))
MvdX=1;
If(Sad(0,1)<Sad(0,-1))
MvdY=1;
E(x,y)=A(x-x0)2+B(y-y0)2+C
x0=(E(-1,0)-E(1,0))/(2(E(-1,0)+E(1,0)-2E(0,0)))
y0=(E(0,-1)-E(0,1))/(2((E(0,-1)+E(0,1)-2E(0,0)))
a.一例において、サブブロックのサイズは、L×K、例えば、L=K=4に固定される。
b.一例において、サブブロックのサイズは、最小符号化ユニット/予測ユニット/変換ユニット/動き情報記憶域に対するユニットに固定される。
c.一例において、1つのブロックは、異なるサイズまたは等しいサイズの複数のサブブロックに分割されてもよい。
d.一例において、サブブロックサイズの指示が信号通知されてもよい。
e.一例において、サブブロックのサイズの指示は、例えば、ブロック寸法に従って、ブロックごとに変更されてもよい。
f.一例において、サブブロックのサイズは、(N1×minW)×(N2×minH)の形式でなければならず、ここで、minW×minHは、最小符号化ユニット/予測ユニット/変換ユニット/動き情報記憶域に対するユニットを表し、N1およびN2は、正の整数である。
g.一例において、サブブロック寸法は、カラーフォーマットおよび/または色成分に依存してもよい。
i.例えば、異なる色成分のサブブロックサイズは異なってもよい。
1)代替的に、異なる色成分のサブブロックサイズは同じであってもよい。
ii.例えば、カラーフォーマットが4:2:0である場合、輝度成分の2L×2Kのサブブロックは、彩度成分のL×Kのサブブロックに対応してよい。
1)代替的に、カラーフォーマットが4:2:0である場合、輝度成分の4つの2L×2Kのサブブロックは、彩度成分の2L×2Kのサブブロックに対応してよい。
iii.例えば、カラーフォーマットが4:2:2である場合、輝度成分の2L×2Kのサブブロックは、彩度成分の2L×Kのサブブロックに対応してよい。
1)代替的に、カラーフォーマットが4:2:2である場合、輝度成分の2つの2L×2Kのサブブロックは、彩度成分の2L×2Kのサブブロックに対応してよい。
iv.例えば、カラーフォーマットが4:4:4である場合、輝度成分の2L×2Kのサブブロックは、彩度成分の2L×2Kのサブブロックに対応してよい。
h.一例において、第1の色成分のサブブロックのMVは、第2の色成分の1つの対応するサブブロックまたは複数の対応するサブブロックから導出されてもよい。
i.例えば、第1の色成分のサブブロックのMVは、第2の色成分の複数の対応するサブブロックの平均MVとして導出されてもよい。
ii.さらに、代替的に、単一のツリーを利用する場合、上記方法を適用してもよい。
iii.さらに、代替的に、上記方法は、特定のブロックサイズ、例えば4×4の彩度ブロック対しても適用されてよい。
i.一例において、サブブロックのサイズは、IBCマージ/AMVPモードなどの符号化モードに依存してもよい。
j.一例において、サブブロックは、三角形/くさび形などの非長方形であってもよい。
a.一例において、参照ブロックは、現在のピクチャ内にあってもよい。
b.一例において、参照ブロックは、参照ピクチャ内にあってもよい。
i.例えば、同一位置の参照ピクチャ内にあってもよい。
ii.例えば、同一位置のブロックまたは同一位置のブロックの近傍のブロックの動き情報を使用して識別される参照ピクチャ内にあってよい。
c.一例において、initMVは、現在のブロックまたは現在のサブブロックの1つまたは複数の近傍のブロック(隣接または非隣接)から導出されてもよい。
i.近傍のブロックは、同じピクチャ内の1つであってもよい。
1)代替的に、近傍のブロックは、参照ピクチャ内の1つであってもよい。
a.例えば、近傍のブロックは、同一位置の参照ピクチャ内にあってもよい。
b.例えば、近傍のブロックは、同一位置のブロックまたは同一位置のブロックの近傍のブロックの動き情報を使用して識別されてもよい。
ii.一例において、initMVは、近傍のブロックZから導出されてもよい。
1)例えば、initMVは、近傍のブロックZに格納されたMVに等しく設定されてもよく、例えば、近傍のブロックZは、ブロックA1であってもよい。
iii.一例において、initMVは、順にチェックされた複数のブロックから導出されてもよい。
1)一例において、チェックされたブロックからの参照ピクチャとしての現在のピクチャに関連付けられている第1の識別された動きベクトルを、initMVに設定してもよい。
i.一例において、initMVは、IBC候補リストにおけるk番目(例えば、1番目)の候補から導出されてもよい。
1)一例において、IBC候補リストは、マージ/AMVP候補リストである。
2)一例において、異なる空間的に近傍のブロックを使用する等、既存のIBCマージ候補リスト構成処理とは異なるIBC候補リストを使用してもよい。
ii.一例において、initMVは、IBC HMVPテーブルにおけるk番目(例えば1番目の候補)から導出されてもよい。
e.一例において、現在のブロックの位置に基づいて導出されてもよい。
f.一例において、現在のブロックの寸法に基づいて導出されてもよい。
g.一例において、デフォルト値に設定されてもよい。
h.一例において、initMVの指示は、タイル/スライス/ピクチャ/ブリック/CTU行/CTU/CTB/CU/PU/TU等のような映像ユニットレベルで信号通知されてもよい。
i.初期のMVは、現在のブロック内の2つの異なるサブブロックで異なってもよい。
j.初期のMVをどのように導出するかは、ブロックごとに、タイルごとに、スライスごとに、などにて変化させてよい。
k.一例において、initMVは、まず1画素の整数精度に変換され、変換されたMVは、サブブロックの対応するブロックを識別するために使用されてもよい。変換されたMVを(vx’,vy’)にて示す。
i.一例において、(vx,vy)がF画素間精度である場合、(vx’,vy’)にて示される変換されたMVは、(vx*F,vy*F)に設定されてもよい(例えば、F=2または4)。
ii.代替的に、(vx’,vy’)は、直接(vx,vy)に等しく設定される。
l.1つのサブブロックの左上の位置を(x,y)とし、サブブロックのサイズをK×Lとする。サブブロックの対応するブロックは、座標(x+offsetX+vx’,y+offsetY+vy’)をカバーするCU/CB/PU/PBに等しく設定され、offsetXおよびoffsetYを使用して、現在のサブブロックに対する選択された座標を示す。
i.一例において、offsetXおよび/またはoffsetYは、0に等しく設定される。
ii.一例において、offsetXは、(L/2)または(L/2+1)または(L/2-1)に等しく設定されてもよく、ここで、Lは、サブブロックの幅であってもよい。
iii.一例において、offsetYは、(K/2)または(K/2+1)または(K/2-1)に等しく設定されてもよく、ここで、Kはサブブロックの高さであってもよい。
iv.代替的に、水平および/または垂直オフセットは、ピクチャ/スライス/タイル/ブリック境界/IBC参照領域等の範囲にさらにクリップされてもよい。
m.サブブロックのサブMVは、対応するブロックの動き情報から導出される。
i.一例において、対応するブロックが現在のピクチャを指す動きベクトルを有する場合、subMVはMVに等しく設定される。
ii.一例において、対応するブロックが現在のピクチャを指す動きベクトルを有する場合、subMVは、MVにinitMVを加えたものに等しく設定される。
n.導出されたsubMVは、所与の範囲にさらにクリップされてもよいし、IBC参照領域を指していることを確認するためにクリップされてもよい。
o.適合ビットストリームにおいて、導出されたsubMVは、サブブロックのためのIBCの有効なMVでなければならない。
a.一例において、サブブロックIBC候補は、他のすべてのサブブロックマージ候補の前に追加されてもよい。
b.一例において、サブブロックIBC候補は、ATMVP候補の後に追加されてもよい。
c.一例において、サブブロックIBC候補は、継承されたアフィン候補または構成されたアフィン候補の後に追加されてもよい。
d.一例において、サブブロックIBC候補は、IBCマージ/AMVP候補リストに追加されてもよい。
i.代替的に、追加するかどうかは、現在のブロックのモード情報に基づいてよい。例えば、IBC AMVPモードである場合、追加されなくてもよい。
e.どの候補リストを追加するかは、例えば、デュアルツリーまたはシングルツリーなど、パーティション構造に基づいてよい。
f.代替的に、複数のサブブロックIBC候補は、サブブロックマージ候補に挿入されてもよい。
a.代替的に、例えば、異なる初期化されたMVを使用して、1つまたは複数のサブブロックIBC候補は、IBCサブブロックマージ候補に挿入されてもよい。
b.さらに、代替的に、IBCサブブロック動き候補リストを構成するか、または既存のIBC AMVP/マージ候補リストを構成するかは、インジケータによって信号通知されてもよく、またはオンザフライで導出されてもよい。
c.さらに、代替的に、現在のブロックがIBCマージモードで符号化されている場合、IBCサブブロックマージ候補リストへのインデックスが信号通知されてもよい。
d.さらに、代替的に、現在のブロックがIBC AMVPモードで符号化されている場合、IBCサブブロックAMVP候補リストへのインデックスが信号通知されてもよい。
i.さらに、代替的に、IBC AMVPモードのための信号通知/導出されたMVDは、1つまたは複数のサブブロックに適用されてもよい。
a.一例において、サブブロックの場合、動きベクトルは導出されなくてもよい。代わりに、サブブロックのために、1つまたは複数のイントラ予測モードを導出してもよい。
b.代替的に、パレットモードまたは/およびパレットテーブルが導出されてもよい。
c.一例において、ブロック全体のために1つのイントラ予測モードが導出されてもよい。
a.代替的に、IBC符号化されたサブ領域のための動きベクトルのうちの1つまたは複数を使用して、IBC HMVPテーブルを更新してもよい。
b.代替的に、インター符号化されたサブ領域のための動きベクトルのうちの1つまたは複数を使用して、非IBC HMVPテーブルを更新してもよい。
a.一例において、上記方法のうちの1つまたは複数が適用される場合、サブブロック境界がフィルタリングされてもよい。
a.代替的に、上記方法のうちの1つまたは複数が適用される場合、サブブロック境界がフィルタリングされてもよい。
b.一例において、上記方法で符号化されたブロックは、従来のIBC符号化されたブロックと同様に扱われてもよい。
a.一例において、上記方法の1つまたは複数は、特殊IBCモードとして扱われてもよい。
i.さらに、代替的に、1つのブロックがIBCモードとして符号化される場合、従来の全ブロックに基づくIBC方法またはsbIBCを使用することのさらなる指示が信号通知または導出されてもよい。
ii.一例において、後続のIBC符号化されたブロックは、現在のsbIBC符号化されたブロックの動き情報をMV予測子として使用してもよい。
1.代替的に、後続のIBC符号化されたブロックは、現在のsbIBC符号化ブロックの動き情報をMV予測子として利用することが許可されなくてもよい。
b.一例において、sbIBCは、動き候補リストへの候補インデックスによって示されてもよい。
i.一例において、特定の候補インデックスは、sbIBC符号化されたブロックに割り当てられる。
c.一例において、IBC候補は、2つのカテゴリに分類されてもよい、すなわち、1つは全体ブロック符号化用であり、もう1つはサブブロック符号化用である。1つのブロックがsbIBCモードで符号化されるかどうかは、IBC候補のカテゴリに依存してもよい。
a.DPS/SPS/VPS/PPS/APS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/LCU(Largest Coding Unit)/CU(Coding Unit)/LCU行/LCUグループ/TU/PUブロック/映像符号化ユニットにて信号通知されたメッセージ
b.CU/PU/TU/ブロック/映像符号化ユニットの位置
c.現在のブロックおよび/またはその近傍のブロックのブロック寸法
d.現在のブロックおよび/またはその近傍のブロックのブロック形状
e.現在のブロックおよび/またはその近傍のブロックのイントラモード
f.近傍のブロックの動き/ブロックベクトル
g.カラーフォーマットの指示(例えば、4:2:0、4:4:4)
h.符号化ツリー構造
i.スライス/タイルグループのタイプおよび/またはピクチャのタイプ
j.色成分(例えば、彩度成分または輝度成分にのみ適用されてもよい)
k.時間層ID
l.規格のプロファイル/レベル/層
a.一例において、IBC AMVPモードの場合、現在のピクチャと現在のピクチャと同一でない参照ピクチャ(時間的参照ピクチャとして示される)との両方から現在のブロックが予測されたかどうかを示すように、構文要素が信号通知されてよい。
i.さらに、代替的に、現在のブロックが時間的参照ピクチャからも予測される場合、どの時間的参照ピクチャが使用されているか、およびその関連するMVPインデックス、MVD、MV精度等を示すように、構文要素が信号通知されてもよい。
ii.一例において、IBC AMVPモードの場合、1つの参照ピクチャリストは、現在のピクチャのみを含んでもよく、他の参照ピクチャリストは、時間的参照ピクチャのみを含んでもよい。
b.一例において、IBCマージモードの場合、動きベクトルおよび参照ピクチャは、近傍のブロックから導出されてもよい。
i.例えば、近傍のブロックが現在のピクチャのみから予測される場合、近傍のブロックから導出された動き情報は、現在のピクチャのみを参照してもよい。
ii.例えば、現在のピクチャおよび時間的参照ピクチャの両方から近傍のブロックが予測される場合、導出された動き情報は、現在のピクチャおよび時間的参照ピクチャの両方を参照してもよい。
1)代替的に、導出された動き情報は、現在のピクチャのみを参照するものであってもよい。
iii.例えば、近傍のブロックが時間的参照ピクチャのみから予測される場合、IBCマージ候補を構成する際に、「無効」または「利用不可」と見なしてよい。
c.一例において、固定重み係数は、双方向予測のために、現在のピクチャからの参照ブロックと、時間的参照ピクチャからの参照ブロックとに割り当てられてもよい。
i.さらに、代替的に、重み係数が信号通知されてもよい。
a.動き候補リスト構成処理(例えば、通常のマージリスト、IBCマージ/AMVPリスト、サブブロックマージリスト、IBCサブブロック候補リスト)および/またはHMVPテーブルをどのように更新するかは、条件Cに依存してもよい。
b.一例において、条件Cは、現在のブロックおよび/またはその近傍(隣接または非隣接)のブロックの符号化された情報に依存してもよい。
c.一例において、条件Cは、マージ共有条件に依存してもよい。
d.一例において、条件Cは、現在のブロックのブロック寸法、および/または、近傍の(隣接または非隣接の)ブロックのブロック寸法、および/または、現在のブロックおよび/または近傍のブロックの符号化モードに依存してもよい。
e.一例において、条件Cが満たされる場合、空間的マージ候補の導出はスキップされる。
f.一例において、条件Cが満たされる場合、空間的に近傍の(隣接または非隣接)ブロックからの候補の導出はスキップされる。
h.一例において、条件Cが満たされる場合、HMVP候補の導出はスキップされる。
i.一例において、条件Cが満たされる場合、ペアワイズマージ候補の導出はスキップされる。
j.一例において、条件Cが満たされる場合、最大プルーニング動作の数は低減されるか、または0に設定される。
i.さらに、代替的に、空間的マージ候補間のプルーニング動作は削減されてもよいし、削除されてもよい。
ii.さらに、代替的に、HMVP候補と他のマージ候補との間のプルーニング動作は削減されてもよいし、削除されてもよい。
k.一例において、条件Cが満たされる場合、HMVP候補の更新はスキップされる。
i.一例において、HMVP候補は、プルーニングされることなく、動きリストに直接追加されてもよい。
l.一例において、条件Cが満たされる場合、デフォルト動き候補(例えば、IBCマージ/AVMPリストにおけるゼロ動き候補)は追加されない。
m.一例において、条件Cが満たされる場合、異なるチェック順(例えば、最後から最初への代わりに、最初から最後へ)および/またはチェック対象の/追加される異なる数HMVP候補。
o.一例において、条件Cは、Wおよび/またはHが閾値(例えば、32)以上の場合に満たされてもよい。
p.一例において、条件Cは、Wが閾値(例えば、32)以上の場合に満たされてもよい。
q.一例において、条件Cは、Hが閾値(例えば、32)以上の場合に満たされてもよい。
r.一例において、条件Cは、W*Hが閾値(例えば、1024)以上であり、かつ、現在のブロックが、IBC AMVPおよび/またはマージモードで符号化される場合に満たされてもよい。
i.さらに、代替的に、条件Cが満たされる場合、IBC動きリスト構成処理は、空間的に近傍のブロック(例えば、A1、B1)からの候補およびデフォルトの候補を含んでもよい。すなわち、HMVP候補の挿入はスキップされる。
ii.さらに、代替的に、条件Cが満たされる場合、IBC動きリスト構成処理は、IBC HMVPテーブルのHMVP候補からの候補およびデフォルトの候補を含んでもよい。すなわち、空間的に近傍のブロックからの候補の挿入はスキップされる。
iii.さらに、代替的に、条件Cが満たされたブロックを復号化した後、IBC HMVPテーブルの更新がスキップされる。
iv.代替的に、以下の場合のうちの1つ/一部/全部が真である場合、条件Cは満たされてもよい。
1)W*HがT1(例えば、16)以下であり、かつ、現在のブロックがIBC AMVPおよび/またはマージモードで符号化されている場合。
2)WがT2に等しく、かつ、HがT3に等しい(例えば、T2=4,T3=8)場合、その上側のブロックは利用可能であり、サイズはA×Bに等しく、現在のブロックとその上側のブロックの両方は、特定のモードで符号化される。
a.代替的に、WがT2に等しく、かつ、HがT3に等しい(例えば、T2=4,T3=8)場合、その上側のブロックは利用可能であり、同じCTUにあり、サイズはA×Bに等しく、現在のブロックとその上側のブロックの両方は、同じモードで符号化される。
b.代替的に、WがT2に等しく、かつ、HがT3に等しい(例えば、T2=4,T3=8)場合、その上側のブロックは利用可能であり、サイズはA×Bに等しく、現在のブロックとその上側のブロックの両方は、同じモードで符号化される。
c.代替的に、WがT2に等しく、かつ、HがT3に等しい(例えば、T2=4,T3=8)場合、その上側のブロックは利用不可である。
d.代替的に、WがT2に等しく、かつ、HがT3に等しい(例えば、T2=4,T3=8)場合、その上側のブロックは利用不可であるか、または上側のブロックが現在のCTUの外側にある。
3)WがT4に等しく、かつ、HがT5に等しい(例えば、T4=8,T5=4)場合、その左側のブロックは利用可能であり、サイズはA×Bに等しく、現在のブロックおよびその左側のブロックの両方は、特定のモードで符号化される。
a.代替的に、WがT4に等しく、かつ、HがT5に等しい(例えば、T4=8,T5=4)場合、その左側のブロックは利用不可である。
4)W*HがT1(例えば、32)より大きくない場合、現在のブロックは、IBC AMVPおよび/またはマージモードで符号化され、その上側および左側の近傍のブロックの両方が利用可能であり、サイズはA×Bに等しく、特定のモードで符号化される。
a.W*HがT1(例えば、32)より大きくない場合、現在のブロックは、特定のモードで符号化され、その左側の近傍のブロックは利用可能であり、サイズはA×Bであり、IBC符号化され、その上側の近傍のブロックは利用可能であり、同じCTU内であり、サイズはA×Bに等しく、同じモードで符号化される。
b.W*HがT1より大きくない(例えば、32)場合、現在のブロックは、特定のモードで符号化され、その左側の近傍のブロックは利用不可であり、その上側の近傍のブロックは利用可能であり、同じCTU内であり、サイズはA×Bに等しく、同じモードで符号化される。
c.W*HがT1より大きくない(例えば、32)場合、現在のブロックは、特定のモードで符号化され、その左側の近傍のブロックは利用不可であり、その上側の近傍のブロックは利用不可である。
d.W*HがT1(例えば、32)より大きくない場合、現在のブロックは特定のモードで符号化され、その左側の近傍のブロックは利用可能であり、サイズはA×Bに等しく、同じモードで符号化され、その上側の近傍のブロックは利用不可である。
e.W*HがT1(例えば、32)より大きくない場合、現在のブロックは特定のモードで符号化され、その左側の近傍のブロックは利用不可であり、その上側の近傍のブロックは利用不可であるか、または現在のCTUの外側にある。
f.W*HがT1(例えば、32)より大きくない場合、現在のブロックは特定のモードで符号化され、その左側の近傍のブロックは利用可能であり、サイズはA×Bに等しく、同じモードで符号化され、その上側の近傍のブロックは利用不可であるか、または現在のCTUの外側にある。
5)上記例において、「特定のモード」とは、IBCモードである。
6)上記例において、「特定のモード」とは、インターモードである。
7)上記例において、「A×B」は、4×4に設定されてもよい。
8)上記例において、「A×Bである近傍のブロックサイズ」は、「近傍のブロックサイズがA×B以下である、またはA×B以上である」に置き換えられてもよい。
9)上記例において、上側および左側の近傍のブロックは、空間的マージ候補の導出のためにアクセスされる2つのブロックである。
a.一例において、現在のブロックにおける左上のサンプルの座標が(x,y)であり、左のブロックが(x-1,y+H-1)をカバーするものであると仮定する。
b.一例において、現在のブロックにおける左上のサンプルの座標が(x,y)であり、左のブロックが(x+W-1,y-1)をカバーするものであると仮定する。
i.さらに、代替的に、閾値は、ブロックの符号化情報、例えば符号化モードに依存してもよい。
u.一例において、条件Cは、現在のブロックが共有ノード下にあり、現在のブロックがIBC AMVPおよび/またはマージモードで符号化されている場合に満たされる。
i.さらに、代替的に、条件Cが満たされる場合、IBC動きリスト構成処理は、空間的に近傍のブロック(例えば、A1,B1)からの候補およびデフォルトの候補を含んでもよい。すなわち、HMVP候補の挿入はスキップされる。
ii.さらに、代替的に、条件Cが満たされる場合、IBC動きリスト構成処理は、IBC HMVPテーブルのHMVP候補からの候補およびデフォルトの候補を含んでもよい。すなわち、空間的に近傍のブロックからの候補の挿入はスキップされる。
iii.さらに、代替的に、条件Cが満たされたブロックを復号化した後、IBC HMVPテーブルの更新がスキップされる。
i.一例において、条件Cは、符号化モード(IBCモードまたは非IBCモード)、ブロック寸法に基づいて定義されてもよい。
w.上記方法を適用するかどうかは、ブロックの符号化情報、例えば、IBC符号化ブロックであるかどうかに依存してもよい。
i.一例において、ブロックがIBC符号化される場合、上記方法が適用されてもよい。
a.一例において、すべての動き候補は、1画素精度で記憶される。
b.一例において、空間的に近傍の(隣接または非隣接)ブロックおよび/またはIBC HMVPテーブルからの動き情報を使用する場合、MVの丸め処理はスキップされる。
a.さらに、代替的に、IBC動きリストにおける候補の信号通知は、HMVPテーブルにおける利用可能なHMVP候補の数に依存してもよい。
b.さらに、代替的に、IBC動きリストにおける候補の信号通知は、HMVPテーブルにおけるHMVP候補の最大数に依存してもよい。
c.代替的に、HMVPテーブルにおけるHMVP候補は、プルーニングせずに順にリストに追加される。
i.一例において、順序は、テーブルへのエントリインデックスの昇順に基づく。
ii.一例において、順序は、テーブルへのエントリインデックスの降順に基づく。
iii.一例において、テーブルにおける最初のN個のエントリはスキップされてもよい。
iv.一例において、テーブルにおける最後のN個のエントリはスキップされてもよい。
v.一例において、無効なBV(s)を有するエントリはスキップされてもよい。
vi.
d.代替的に、1または複数のHMVPテーブルのHMVP候補から導出された動き候補は、水平ベクトルにオフセットを加える、および/または垂直ベクトルにオフセットを加える等により、さらに修正されてもよい。
i.有効なBVを提供するように、無効なBVを有するHMVP候補を修正してもよい。
e.さらに、代替的に、1または複数のHMVP候補の後または前に、デフォルトの動き候補が追加されてもよい。
f.どのようにHMVP候補をIBC動きリストに追加するか/HMVP候補をIBC動きリストに追加否かは、ブロック寸法に依存してもよい。
i.例えば、IBC動きリストは、ブロック寸法(幅および高さを表すWおよびH)が条件Cを満たす場合、1または複数のHMVPテーブルからの動き候補のみを含んでもよい。
1)一例において、条件Cは、W<=T1、かつ、H<=T2であり、例えば、T1=T2=4である。
2)一例において、条件Cは、W<=T1、または、H<=T2であり、例えば、T1=T2=4である。
3)一例において、条件Cは、W*H<=Tであり、例えば、T=16である。
[[以下のすべての条件が真である場合、NumHmvpSmrIbcCandをNumHmvpIbcCandに等しく設定し、HmvpSmrIbcCandList[i]をHmvpIbcCandList[i]に等しく設定し、i=0..NumHmvpIbcCand-1とすることにより、共有したマージ候補リスト領域に対する履歴ベースの動きベクトル予測子は更新される。
-IsInSmr[x0][y0]はTRUEに等しい。
-SmrX[x0][y0]はx0に等しい。
-SmrY[x0][y0]は、y0に等しい。]]
8.6.2.1 一般
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
この処理の出力は以下の通りである。
-1/16小数サンプル精度mvLにおける輝度動きベクトル。
-8.6.2.2節で規定されたIBC輝度動きベクトル予測の導出処理は、輝度位置(xCb,yCb)、変数cbWidthおよびcbHeightを入力として呼び出され、出力は輝度動きベクトルmvLである。
-general_merge_flag[xCb][yCb]が0に等しい場合、以下が適用される。
1.変数mvdは、以下のように導出される。
mvd[0]=MvdL0[xCb][yCb][0] (8-883)
mvd[1]=MvdL0[xCb][yCb][1] (8-884)
2.8.5.2.14節で規定されるような動きベクトルの丸め処理は、mvLに等しく設定されたmvX、MvShift+2に等しく設定されたrightShift、MvShift+2に等しく設定されたleftShiftを入力とし、丸められたmvLを出力として呼び出される。
3.輝度動きベクトルmvLは、以下のように修正される。
u[0]=(mvL[0]+mvd[0]+218)%218 (8-885)
mvL[0]=(u[0]>=217)?(u[0]-218):u[0] (8-886)
u[1]=(mvL[1]+mvd[1]+218)%218 (8-887)
mvL[1]=(u[1]>=217)?(u[1]-218):u[1] (8-888)
注1-上記で規定したmvL[0]およびmvL[1]の結果値は、常に-217~217-1の範囲に含まれる。
参照ブロックの内部の左上の位置(xRefTL,yRefTL)と、参照ブロックの内部の右下の位置(xRefBR,yRefBR)とは、以下のように導出される。
(xRefTL,yRefTL)=(xCb+(mvL[0]>>4),yCb+(mvL[1]>>4)) (8-889)
(xRefBR,yRefBR)=(xRefTL+cbWidth-1,yRefTL+cbHeight-1) (8-890)
輝度動きベクトルmvLが以下の制約に従うべきであることは、ビットストリーム適合性の要件である。
-...
-動きベクトル候補リストmvCandList、
-リストnumCurrCandにおける利用可能な動きベクトル候補の数。
この処理への入力は以下の通りである。
-修正された動きベクトル候補リストmvCandList、
-[[現在の符号化ユニットが共有マージ候補領域内にあるかどうかを規定する変数isInSmr]]
-リストnumCurrCandにおける動きベクトル候補の修正数
変数isPrunedA1およびisPrunedB1は共にFALSEに等しく設定される。
[[smr]]HmvpIbcCandList=[[isInSmr?HmvpSmrIbcCandList:]]HmvpIbcCandList (8-906)
[[smr]]NumHmvpIbcCand=[[isInSmr?NumHmvpSmrIbcCand:]]NumHmvpIbcCand (8-907)
smrHmvpIbcCandList[hMvpIdx]におけるインデックスhMvpIdx=1..[[smr]]]NumHmvpIbcCandの各候補について、numCurrCandがMaxNumMergeCandと等しくなるまで、以下の順序付けられたステップが繰り返される。
1.変数sameMotionは以下のように導出される:
-NがA1またはB1である任意の動きベクトル候補Nに対して、以下のすべての条件がTRUEである場合、sameMotionおよびisPrunedNは共にTRUEに等しく設定される。
-hMvpIdxは1以下である。
-候補[[smr]]HmvpIbcCandList[[[smr]]NumHmvpIbcCand-hMvpIdx]は、動きベクトル候補Nに等しい。
-isPrunedNがFALSEに等しい。
-そうでない場合、sameMotionはFALSEに等しく設定される。
2.sameMotionがFALSEに等しい場合、候補[[smr]]HmvpIbcCandList[[[smr]]NumHmvpIbcCand-hMvpIdx]は動きベクトル候補リストに以下のように加えられる。
mvCandList[numCurrCand++]=[[smr]]HmvpIbcCandList[[[smr]]NumHmvpIbcCand-hMvpIdx] (8-908)
CTUは、符号化ツリー構造のルートノードである。
[[(x,y)におけるサンプルが共有マージ候補リスト領域内に位置するかどうかを規定する配列IsInSmr[x][y]は、x=0..CtbSizeY-1およびy=0..CtbSizeY-1に対して以下のように初期化される:
IsInSmr[x][y]=FALSE (7-96)]]
[[以下の条件のすべてが真である場合、IsInSmr[x][y]は、x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1に対して、TRUEに等しく設定される。
-isInSmr[x0][y0]はFALSEに等しい
-cbWidth*cbHeight/4が32より小さい
-treeTypeがDUAL_TREE_CHROMAに等しくない
IsInSmr[x0][y0]がTRUEに等しい場合、配列SmrX[x][y]、SmrY[x][y]、SmrW[x][y]、およびSmrH[x][y]は、x=x0..x0+cbWidth-1、およびy=y0..y0+cbHeight-1に対して以下のように導出される。
SmrX[x][y]=x0 (7-98)
SmrY[x][y]=y0 (7-99)
SmrW[x][y]=cbWidth (7-100)
SmrH[x][y]=cbHeight (7-101)
以下のすべての条件が真である場合、IsInSmr[x][y]は、x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1に対して、TRUEに等しく設定される。
-isInSmr[x0][y0]はFALSEに等しい。
-以下の条件の1つが真である。
-mtt_split_cu_binary_flagが1に等しく、かつ、cbWidth*cbHeight/2が32より小さい
-mtt_split_cu_binary_flagが0に等しく、かつ、cbWidth*cbHeight/4が32より小さい
-treeTypeがDUAL_TREE_CHROMAと等しくない
IsInSmr[x0][y0]がTRUEに等しい場合、配列SmrX[x][y]、SmrY[x][y]、SmrW[x][y]、およびSmrH[x][y]は、x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1に対して、以下のように導出される。
SmrX[x][y]=x0 (7-102)
SmrY[x][y]=y0 (7-103)
SmrW[x][y]=cbWidth (7-104)
SmrH[x][y]=cbHeight (7-105)]]
[[以下のすべての条件が真である場合、NumHmvpSmrIbcCandをNumHmvpIbcCandに等しく設定し、HmvpSmrIbcCandList[i]をHmvpIbcCandList[i]に等しく設定し、i=0..NumHmvpIbcCand-1とすることにより、共有したマージ候補リスト領域に対する履歴ベースの動きベクトル予測子は更新される。
-IsInSmr[x0][y0]はTRUEに等しい。
-SmrX[x0][y0]はx0に等しい。
-SmrY[x0][y0]は、y0に等しい。]]
x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1に対して、以下の通り割り当てが行われる。
CbPosX[x][y]=x0 (7-106)
CbPosY[x][y]=y0 (7-107)
CbWidth[x][y]=cbWidth (7-108)
CbHeight[x][y]=cbHeight (7-109)
8.6.2.1 一般
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
-1/16小数サンプル精度mvLにおける輝度動きベクトル。
-8.6.2.2節で規定されたIBC輝度動きベクトル予測の導出処理は、輝度位置(xCb,yCb)、変数cbWidthおよびcbHeightを入力として呼び出され、出力は輝度動きベクトルmvLである。
-general_merge_flag[xCb][yCb]が0と等しい場合、以下が適用される。
4.変数mvdは、以下のように導出される。
mvd[0]=MvdL0[xCb][yCb][0] (8-883)
mvd[1]=MvdL0[xCb][yCb][1] (8-884)
5.8.5.2.14節で規定されるような動きベクトルの丸め処理は、mvLに等しく設定されたmvX、MvShift+2に等しく設定されたrightShift、MvShift+2に等しく設定されたleftShiftを入力とし、丸められたmvLを出力として呼び出される。
6.輝度動きベクトルmvLは、以下のように修正される。
u[0]=(mvL[0]+mvd[0]+218)%218 (8-885)
mvL[0]=(u[0]>=217)?(u[0]-218):u[0] (8-886)
u[1]=(mvL[1]+mvd[1]+218)%218 (8-887)
mvL[1]=(u[1]>=217)?(u[1]-218):u[1] (8-888)
注1-上記で規定されたようなmvL[0]およびmvL[1]の結果値は、常に-217~217-1の範囲に含まれる。
参照ブロック(xRefTL,yRefTL)の内部の左上の位置と、参照ブロック(xRefBR,yRefBR)の内部の右下の位置とは、以下のように導出される。
(xRefTL,yRefTL)=(xCb+(mvL[0]>>4),yCb+(mvL[1]>>4)) (8-889)
(xRefBR,yRefBR)=(xRefTL+cbWidth-1,yRefTL+cbHeight-1) (8-890)
輝度動きベクトルmvLが以下の制約に従うべきであることは、ビットストリーム適合性の要件である。
-...
この処理は、CuPredMode[xCb][yCb]がMODE_IBCに等しい場合にのみ呼び出され、ここで、(xCb,yCb)は、現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルを規定する。
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
-1/16小数サンプル精度mvLにおける輝度動きベクトル。
変数xSmr、ySmr、smrWidth、smrHeight、およびsmrNumHmvpIbcCandは、以下のように導出される。
xSmr=[[IsInSmr[xCb][yCb]?SmrX[xCb][yCb]:]]xCb (8-895)
ySmr=[[IsInSmr[xCb][yCb]?SmrY[xCb][yCb]:]]yCb (8-896)
smrWidth=[[IsInSmr[xCb][yCb]?SmrW[xCb][yCb]:]]cbWidth (8-897)
smrHeight=[[IsInSmr[xCb][yCb]?SmrH[xCb][yCb]:]]cbHeight (8-898)
smrNumHmvpIbcCand=[[IsInSmr[xCb][yCb]?NumHmvpSmrIbcCand:]]NumHmvpIbcCand (8-899)
1.smrWidth*smrHeightがKより大きい場合、8.6.2.3節で規定される近傍の符号化ユニットからの空間的動きベクトル候補の導出処理は、(xSmr,ySmr)に等しく設定された輝度符号化ブロックの位置(xCb,yCb)、smrWidthおよびsmrHeightに等しく設定された輝度符号化ブロックの幅cbWidthおよび輝度符号化ブロックの高さcbHeightを入力として呼び出され、出力は、可用性フラグavailableFlagA1、availableFlagB1、および動きベクトルmvA1およびmvB1である。
i=0
if(availableFlagA1)
mvCandList[i++]=mvA1
if(availableFlagB1)
mvCandList[i++]=mvB1 (8-900)
1.mvCandList[numCurrCand][0]は、0に等しく設定される。
2.mvCandList[numCurrCand][1]は、0に等しく設定される。
3.numCurrCandは1増加される。
mvIdx=general_merge_flag[xCb][yCb]?merge_idx[xCb][yCb]:mvp_l0_flag[xCb][yCb] (8-901)
mvL[0]=mergeCandList[mvIdx][0] (8-902)
mvL[1]=mergeCandList[mvIdx][1] (8-903)
この処理への入力は以下の通りである。
-動きベクトル候補リストmvCandList、
-リストnumCurrCandにおける利用可能な動きベクトル候補の数。
-修正された動きベクトル候補リストmvCandList、
-[[現在の符号化ユニットが共有マージ候補領域内にあるかどうかを規定する変数isInSmr、]]
-リストnumCurrCandにおける動きベクトル候補の修正数。
配列smrHmvpIbcCandListおよび変数smrNumHmvpIbcCandは、以下のように導出される。
[[smr]]HmvpIbcCandList=[[isInSmr?HmvpSmrIbcCandList:]]HmvpIbcCandList (8-906)
smrNumHmvpIbcCand=[[isInSmr?NumHmvpSmrIbcCand:]]NumHmvpIbcCand (8-907)
1.変数sameMotionは以下のように導出される:
-smrWidth*smrHeightが、Kより大きく、かつ、NはA1またはB1である、任意の動きベクトル候補Nについて、すべての以下の条件がTRUEである場合、sameMotionおよびisPrunedNは両方ともTRUEに等しく設定される。
-hMvpIdxは1以下である。
-候補[[smr]]HmvpIbcCandList[[[smr]]NumHmvpIbcCand-hMvpIdx]は、動きベクトル候補Nに等しい。
-PrisPrunedNはFALSEに等しい。
-そうでない場合、sameMotionはFALSEに等しく設定される。
2.sameMotionがFALSEに等しい場合、候補[[smr]]HmvpIbcCandList[smrNumHmvpIbcCand-hMvpIdx]は動きベクトル候補リストに以下のように加えられる。
mvCandList[numCurrCand++]=[[smr]]HmvpIbcCandList[[[smr]]NumHmvpIbcCand-hMvpIdx] (8-908)
この処理は、CuPredMode[xCb][yCb]がMODE_IBCに等しい場合にのみ呼び出され、ここで、(xCb,yCb)は、現在のピクチャの左上の輝度サンプルに対して、現在の輝度符号化ブロックの左上のサンプルを規定する。
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
-1/16小数サンプル精度mvLにおける輝度動きベクトル。
変数xSmr、ySmr、smrWidth、smrHeight、およびsmrNumHmvpIbcCandは、以下のように導出される。
xSmr=[[IsInSmr[xCb][yCb]?SmrX[xCb][yCb]:]]xCb (8-895)
ySmr=[[IsInSmr[xCb][yCb]?SmrY[xCb][yCb]:]]yCb (8-896)
smrWidth=[[IsInSmr[xCb][yCb]?SmrW[xCb][yCb]:]]cbWidth (8-897)
smrHeight=[[IsInSmr[xCb][yCb]?SmrH[xCb][yCb]:]]cbHeight (8-898)
smrNumHmvpIbcCand=[[IsInSmr[xCb][yCb]?NumHmvpSmrIbcCand:]]NumHmvpIbcCand (8-899)
1.IsInSmr[xCb][yCb]が偽の場合、8.6.2.3節で規定される近傍の符号化ユニットからの空間的動きベクトル候補の導出処理は、(xSmr,ySmr)に等しく設定された輝度符号化ブロックの位置(xCb,yCb)、smrWidthおよびsmrHeightに等しく設定された輝度符号化ブロックの幅cbWidthおよび輝度符号化ブロックの高さcbHeightを入力として呼び出され、出力は、可用性フラグavailableFlagA1、availableFlagB1、並びに動きベクトルmvA1およびmvB1である。
i=0
if(availableFlagA1)
mvCandList[i++]=mvA1
if(availableFlagB1)
mvCandList[i++]=mvB1 (8-900)
1.mvCandList[numCurrCand][0]は、0に等しく設定される。
2.mvCandList[numCurrCand][1]は、0に等しく設定される。
3.numCurrCandは1増加される。
mvIdx=general_merge_flag[xCb][yCb]?merge_idx[xCb][yCb]:mvp_l0_flag[xCb][yCb] (8-901)
mvL[0]=mergeCandList[mvIdx][0] (8-902)
mvL[1]=mergeCandList[mvIdx][1] (8-903)
この処理への入力は以下の通りである。
-動きベクトル候補リストmvCandList、
-リストnumCurrCandにおける利用可能な動きベクトル候補の数。
-修正された動きベクトル候補リストmvCandList、
-[[現在の符号化ユニットが共有マージ候補領域内にあるかどうかを規定する変数isInSmr]]
-リストnumCurrCandにおける動きベクトル候補の修正数
配列smrHmvpIbcCandListおよび変数smrNumHmvpIbcCandは、以下のように導出される。
[[smr]]HmvpIbcCandList=[[isInSmr?HmvpSmrIbcCandList:]]HmvpIbcCandList (8-906)
[[smr]]NumHmvpIbcCand=[[isInSmr?NumHmvpSmrIbcCand:]]NumHmvpIbcCand (8-907)
インデックスhMvpIdx=1..[[smr]]NumHmvpIbcCandである[[smr]]HmvpIbcCandList[hMvpIdx]における各候補に対し、numCurrCandがMaxNumMergeCandに等しくなるまで、以下の順序付けられたステップを繰り返す。
-isInSmrが偽であり、かつ、NがA1またはB1である任意の動きベクトル候補Nに対して、以下のすべての条件が真である場合、sameMotionおよびisPrunedNは共にTRUEに等しく設定される。
-hMvpIdxは1以下である。
-候補[[smr]]HmvpIbcCandList[[[smr]]NumHmvpIbcCand-hMvpIdx]は、動きベクトル候補Nに等しい。
-isPrunedNはFALSEに等しい。
-そうでない場合、sameMotionはFALSEに等しく設定される。
mvCandList[numCurrCand++]=[[smr]]HmvpIbcCandList[[[smr]]NumHmvpIbcCand-hMvpIdx] (8-908)
8.6.2.1 一般
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
-1/16小数サンプル精度mvLにおける輝度動きベクトル。
-8.6.2.2節で規定されたIBC輝度動きベクトル予測の導出処理は、輝度位置(xCb,yCb)、変数cbWidthおよびcbHeightを入力として呼び出され、出力は輝度動きベクトルmvLである。
-general_merge_flag[xCb][yCb]が0と等しい場合、以下が適用される。
mvd[0]=MvdL0[xCb][yCb][0] (8-883)
mvd[1]=MvdL0[xCb][yCb][1] (8-884)
u[0]=(mvL[0]+mvd[0]+218)%218 (8-885)
mvL[0]=(u[0]>=217)?(u[0]-218):u[0] (8-886)
u[1]=(mvL[1]+mvd[1]+218)% 218 (8-887)
mvL[1]=(u[1]>=217)?(u[1]-218):u[1] (8-888)
注1-上記で規定されたmvL[0]およびmvL[1]の結果値は、常に-217~217-1の範囲に含まれる。
参照ブロック内の左上の位置(xRefTL,yRefTL)と、参照ブロック内の右下の位置(xRefBR,yRefBR)とは、以下のように導出される。
(xRefTL,yRefTL)=(xCb+(mvL[0]>>4),yCb+(mvL[1]>>4)) (8-889)
(xRefBR,yRefBR)=(xRefTL+cbWidth-1,yRefTL+cbHeight-1) (8-890)
輝度動きベクトルmvLが以下の制約に従うべきであることは、ビットストリーム適合性の要件である。
-...
CTUは、符号化ツリー構造のルートノードである。
6.4.4節で規定されている近傍のブロック可用性の導出処理において、(x,y)のサンプルが利用可能かどうかを規定する配列IsAvailable[cIdx][x][y]は、cIdx=0...2、x=0...CtbSizeY-1、およびy=0...CtbSizeY-1に対して、以下のように初期化される。
IsAvailable[cIdx][x][y]=FALSE (7-123)
[[(x,y)におけるサンプルが共有マージ候補リスト領域内に位置するかどうかを規定する配列IsInSmr[x][y]は、x=0..CtbSizeY-1およびy=0..CtbSizeY-1に対して以下のように初期化される。
IsInSmr[x][y]=FALSE (7-124)]]
[[以下の条件のすべてが真である場合、IsInSmr[x][y]は、x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1に対して、TRUEに等しく設定される。
-isInSmr[x0][y0]はFALSEと等しい
-cbWidth*cbHeight/4は32より小さい
-treeTypeがDUAL_TREE_CHROMAと等しくない
IsInSmr[x0][y0]がTRUEに等しい、配列SmrX[x][y]、SmrY[x][y]、SmrW[x][y]およびSmrH[x][y]は、x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1に対して以下のように導出される。
SmrX[x][y]=x0 (7-126)
SmrY[x][y]=y0 (7-127)
SmrW[x][y]=cbWidth (7-128)
SmrH[x][y]=cbHeight (7-129)]]
8.6.2.1 一般
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
-1/16小数サンプル精度bvLにおける輝度ブロックベクトル。
-8.6.2.2節で規定されたIBC輝度ブロックベクトル予測の導出処理は、輝度位置(xCb,yCb)、変数cbWidthおよびcbHeightを入力として呼び出され、出力は輝度ブロックベクトルbvLである。
-general_merge_flag[xCb][yCb]が0と等しい場合、以下が適用される。
bvd[0]=MvdL0[xCb][yCb][0] (8-900)
bvd[1]=MvdL0[xCb][yCb][1] (8-901)
u[0]=(bvL[0]+bvd[0]+218)%218 (8-902)
bvL[0]=(u[0]>=217)?(u[0]-218):u[0] (8-903)
u[1]=(bvL[1]+bvd[1]+218)%218 (8-904)
bvL[1]=(u[1]>=217)?(u[1]-218):u[1] (8-905)
注1-上記で規定されたbvL[0]およびbvL[1]の結果値は、常に-217~217-1の範囲に含まれる。
IsLgrBlkが真である場合、CbWidthがNに等しく、CbHeightが4に等しく、左側の近傍のブロックが4×4であり、IBCモードで符号化される場合、IsLgrBlkは偽に設定される。
IsLgrBlkが真である場合、CbWidthが4に等しく、CbHeightがNに等しく、上側の近傍のブロックが4×4であり、IBCモードで符号化される場合、IsLgrBlkは偽に設定される。
(または代替的に、
変数IslgrBlkは(cbWidth×cbHeightはKよりも大きい?真:偽)に設定される。
IsLgrBlkが真である場合、CbWidthがNに等しく、CbHeightが4に等しく、左側の近傍のブロックが4×4であり、IBCモードで符号化される場合、IsLgrBlkは偽に設定される。
IsLgrBlkが真である場合、CbWidthが4に等しく、CbHeightがNに等しく、上側の近傍のブロックが利用可能であり、4×4であり、IBCモードで符号化される場合、IsLgrBlkは偽に等しく設定される。)
IsLgrBlkが真[[IsInSmr[xCb][yCb]が偽である]]である場合、輝度ブロックベクトルbvLを使用して、8.6.2.6節で規定されるような履歴ベースのブロックベクトル予測子リストの更新処理が呼び出される。
-CtbSizeYは、((yCb+(bvL[1]>4))&(CtbSizeY-1)+cbHeight以上である。
-IbcVirBuf[0][(x+(bvL[0]>>4))&(IbcVirBufWidth-1)][(y+(bvL[1]>>4))&(CtbSizeY-1)]は、x=xCb..xCb+cbWidth-1およびy=yCb..yCb+cbHeight-1に対して、-1と等しくなってはならない。
この処理は、CuPredMode[0][xCb][yCb]がMODE_IBCに等しい場合にのみ呼び出され、ここで、(xCb,yCb)は、現在のピクチャの左上の輝度サンプルに対して、現在の輝度符号化ブロックの左上のサンプルを規定する。
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
-1/16小数サンプル精度bvLにおける輝度ブロックベクトル。
[[変数xSmr、ySmr、smrWidth、およびsmrHeightは、以下のように導出される。
xSmr=IsInSmr[xCb][yCb]?SmrX[xCb][yCb]:xCb (8-906)
ySmr=IsInSmr[xCb][yCb]?SmrY[xCb][yCb]:yCb (8-907)
smrWidth=IsInSmr[xCb][yCb]?SmrW[xCb][yCb]:cbWidth (8-908)
smrHeight=IsInSmr[xCb][yCb]?SmrH[xCb][yCb]:cbHeight (8-909)]]
IsLgrBlkが真である場合、CbWidthがNに等しく、CbHeightが4に等しく、左側の近傍のブロックが4×4であり、IBCモードで符号化される場合、IsLgrBlkは偽に設定される。
IsLgrBlkが真である場合、CbWidthが4に等しく、CbHeightがNに等しく、上側の近傍のブロックが4×4であり、IBCモードで符号化される場合、IsLgrBlkは偽に設定される。
(または代替的に、
変数IslgrBlkは、(cbWidth×cbHeightがKよりも大きい?真:偽)に設定される。
IsLgrBlkが真である場合、CbWidthがNに等しく、CbHeightが4に等しく、左側の近傍のブロックが4×4であり、IBCモードで符号化される場合、IsLgrBlkは偽に設定される。
IsLgrBlkが真である場合、CbWidthが4に等しく、CbHeightがNに等しく、上側の近傍のブロックが利用可能であり、4×4であり、IBCモードで符号化される場合、IsLgrBlkは偽に設定される。)
1.IslgrBlkが真の場合、8.6.2.3節で規定される近傍の符号化ユニットからの空間的ブロックベクトル候補の導出処理は、(xCb,yCb[[xSmr,ySmr]])に等しく設定された輝度符号化ブロックの位置(xCb,yCb)、[[smr]]CbWidthおよび[[smr]]CbHeightに等しく設定された輝度符号化ブロックの幅cbWidthおよび輝度符号化ブロックの高さcbHeightを入力として呼び出され、出力は、可用性フラグavailableFlagA1、availableFlagB1、並びにブロックベクトルbvA1およびbvB1である。
if(availableFlagA1)
bvCandList[i++]=bvA1
if(availableFlagB1)
bvCandList[i++]=bvB1 (8-910)
1.bvCandList[numCurrCand][0]は、0に等しく設定される。
2.bvCandList[numCurrCand][1]は、0に等しく設定される。
3.numCurrCandは1増加される。
bvIdx=general_merge_flag[xCb][yCb]?merge_idx[xCb][yCb]:mvp_l0_flag[xCb][yCb] (8-911)
bvL[0]=bvCandList[mvIdx][0] (8-912)
bvL[1]=bvCandList[mvIdx][1] (8-913)
この処理への入力は以下の通りである。
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
-近傍の符号化ユニットの可用性フラグavailableFlagA1およびavailableFlagB1。
-近傍の符号化ユニットの1/16小数サンプル精度bvA1およびbvB1。
-近傍の輝度符号化ブロック内の輝度位置(xNbA1,yNbA1)は、(xCb-1,yCb+cbHeight-1)に等しく設定される。
-6.4.4項で規定される近傍のブロックの可用性のための導出処理は、(xCb,yCb)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍の輝度位置(xNbA1,yNbA1)、TRUEに等しく設定されたcheckPredModeY、0に等しく設定されたcIdxを入力として呼び出され、出力は、ブロック可用性フラグavailableA1に割り当てられる。
-変数availableFlagA1およびbvA1は、以下のように導出される。
-availableA1がFALSEに等しい場合、availableFlagA1は0に等しく設定され、bvA1の両成分は0に等しく設定される。
-そうでない場合、availableFlagA1は1に等しく設定され、以下の割り当てが行われる。
bvA1=MvL0[xNbA1][yNbA1] (8-914)
-近傍の輝度符号化ブロック内の輝度位置(xNbB1,yNbB1)は、(xCb+cbWidth-1,yCb-1)に等しく設定される。
-6.4.4節で規定される近傍のブロックの可用性のための導出処理は、(xCb,yCb)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍の輝度位置(xNbB1,yNbB1)、TRUEに等しく設定されたcheckPredModeY、0に等しく設定されたcIdxを入力として呼び出され、出力は、ブロック可用性フラグavailableB1に割り当てられる。
-変数availableFlagB1およびbvB1は、以下のように導出される。
-以下の条件の1または複数が真である場合、availableFlagB1は0に等しく設定され、bvB1の両成分は0に設定される。
-availableB1はFALSEに等しい。
-availableA1はTRUEに等しく、輝度位置(xNbA1,yNbA1)および(xNbB1,yNbB1)は同じブロックベクトルを有する。
-そうでない場合、availableFlagB1を1に等しく設定され、以下の割り当てが行われる。
bvB1=MvL0[xNbB1][yNbB1] (8-915)
この処理への入力は以下の通りである。
-ブロックベクトル候補リストbvCandList、
-[[現在の符号化ユニットが共有マージ候補領域内にあるかどうかを規定する変数isInSmr]]
-非小ブロックIslgrBlkを示す変数、
-リストnumCurrCandにおける利用可能なブロックベクトル候補の数。
この処理への入力は以下の通りである。
-修正されたブロックベクトル候補リストbvCandList、
-リストnumCurrCandにおける動きベクトル候補の修正数。
変数isPrunedA1およびisPrunedB1は共にFALSEに等しく設定される。
1.変数sameMotionは以下のように導出される:
-IsLgrBlkが真であり、NがA1またはB1である任意のブロックベクトル候補Nに対して、以下のすべての条件が真ある場合、sameMotionおよびisPrunedNは共にTRUEに等しく設定される。
-hMvpIdxは1以下である。
-候補HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]は、ブロックベクトル候補Nに等しい。
-PrisPrunedNはFALSEに等しい。
-そうでない場合、sameMotionをFALSEに等しく設定される。
2.sameMotionがFALSEに等しい場合、候補HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]は、ブロックベクトル候補リストに以下のように加えられる。
bvCandList[numCurrCand++]=HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx] (8-916)
CTUは、符号化ツリー構造のルートノードである。
6.4.4節で規定されている近傍のブロック可用性の導出処理において、(x,y)のサンプルが利用可能かどうかを規定する配列IsAvailable[cIdx][x][y]は、cIdx=0...2、x=0...CtbSizeY-1、およびy=0...CtbSizeY-1に対して、以下のように初期化される。
IsAvailable[cIdx][x][y]=FALSE (7-123)
[[(x,y)におけるサンプルが共有マージ候補リスト領域内に位置するかどうかを規定する配列IsInSmr[x][y]は、x=0..CtbSizeY-1およびy=0..CtbSizeY-1に対して、以下のように初期化される。
IsInSmr[x][y]=FALSE (7-124)]]
[[以下の条件のすべてが真である場合、IsInSmr[x][y]は、x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1に対して、TRUEに等しく設定される。
-isInSmr[x0][y0]はFALSEに等しい
-cbWidth *cbHeight/4が32より小さい
-treeTypeがDUAL_TREE_CHROMAに等しくない
IsInSmr[x0][y0]がTRUEに等しい場合、配列SmrX[x][y]、SmrY[x][y]、SmrW[x][y]、およびSmrH[x][y]は、x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1に対して以下のように導出される。
SmrX[x][y]=x0 (7-126)
SmrY[x][y]=y0 (7-127)
SmrW[x][y]=cbWidth (7-128)
SmrH[x][y]=cbHeight (7-129)]]
8.6.2.1 一般
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
-1/16小数サンプル精度bvLにおける輝度ブロックベクトル。
-8.6.2.2節で規定されたIBC輝度ブロックベクトル予測の導出処理は、輝度位置(xCb,yCb)、変数cbWidthおよびcbHeightを入力として呼び出され、出力は輝度ブロックベクトルbvLである。
-general_merge_flag[xCb][yCb]が0と等しい場合、以下が適用される。
bvd[0]=MvdL0[xCb][yCb][0] (8-900)
bvd[1]=MvdL0[xCb][yCb][1] (8-901)
u[0]=(bvL[0]+bvd[0]+218)%218 (8-902)
bvL[0]=(u[0]>=217)?(u[0]-218):u[0] (8-903)
u[1]=(bvL[1]+bvd[1]+218)%218 (8-904)
bvL[1]=(u[1]>=217)?(u[1]-218):u[1] (8-905)
注1-上記で規定したbvL[0]およびbvL[1]の結果値は、常に-217~217-1の範囲に含まれる。
-CbWidthがNに等しく、CbHeightが4に等しく、左側の近傍のブロックが4×4であり、IBCモードで符号化される場合。
-CbWidthが4に等しく、CbHeightがNに等しく、上側の近傍のブロックが4×4であり、IBCモードで符号化される場合。
そうでない場合、IsLgrBlkは偽に等しく設定される。
(または代替的に、
変数IslgrBlkは、(CbWidth*CbHeight>16?真:偽)に設定され、以下をさらにチェックする。
IsLgrBlkが真である場合、CbWidthがNに等しく、CbHeightが4に等しく、左側の近傍のブロックが4×4であり、IBCモードで符号化される場合、IsLgrBlkは偽に設定される。
IsLgrBlkが真である場合、CbWidthが4に等しく、CbHeightがNに等しく、上側の近傍のブロックが4×4であり、IBCモードで符号化される場合、IsLgrBlkは偽に設定される。)
輝度ブロックベクトルbvLが以下の制約に従うべきであることは、ビットストリーム適合性の要件である。
-CtbSizeYは、((yCb+(bvL[1]>4))&(CtbSizeY-1))+cbHeight以上である。
-IbcVirBuf[0][(x+(bvL[0]>>4))&(IbcVirBufWidth-1)][(y+(bvL[1]>>4))&(CtbSizeY-1)]は、x=xCb..xCb+cbWidth-1およびy=yCb..yCb+cbHeight-1に対し、-1と等しくなってはならない。
この処理は、CuPredMode[0][xCb][yCb]がMODE_IBCに等しい場合にのみ呼び出され、ここで、(xCb,yCb)は、現在のピクチャの左上の輝度サンプルに対して、現在の輝度符号化ブロックの左上のサンプルを規定する。
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
-1/16小数サンプル精度bvLにおける輝度ブロックベクトル。
[[変数xSmr、ySmr、smrWidth、およびsmrHeightは、以下のように導出される。
xSmr=IsInSmr[xCb][yCb]?SmrX[xCb][yCb]:xCb (8-906)
ySmr=IsInSmr[xCb][yCb]?SmrY[xCb][yCb]:yCb (8-907)
smrWidth=IsInSmr[xCb][yCb]?SmrW[xCb][yCb]:cbWidth (8-908)
smrHeight=IsInSmr[xCb][yCb]?SmrH[xCb][yCb]:cbHeight (8-909)]]
-CbWidthがNに等しく、CbHeightが4に等しく、左側の近傍のブロックが4×4であり、IBCモードで符号化される場合。
-CbWidthが4に等しく、CbHeightがNに等しく、上側の近傍のブロックが4×4であり、IBCモードで符号化される場合。
そうでない場合、IsLgrBlkは偽に設定される。
(または代替的に、
変数IslgrBlkは、(CbWidth*CbHeight>16?真:偽)に設定され、以下をさらにチェックする。
IsLgrBlkが真である場合、CbWidthがNに等しく、CbHeightが4に等しく、左側の近傍のブロックが4×4であり、IBCモードで符号化される場合、IsLgrBlkは偽に設定される。
IsLgrBlkが真である場合、CbWidthが4に等しく、CbHeightがNに等しく、上側の近傍のブロックが4×4であり、IBCモードで符号化される場合、IsLgrBlkは偽に設定される。)
1.IslgrBlkが真の場合、8.6.2.3節で規定される近傍の符号化ユニットからの空間的ブロックベクトル候補の導出処理は、(xCb,yCb[[xSmr,ySmr]])に等しく設定された輝度符号化ブロックの位置(xCb,yCb)、[[smr]]CbWidthおよび[[smr]]CbHeightに等しく設定された輝度符号化ブロックの幅cbWidthおよび輝度符号化ブロックの高さcbHeightを入力として呼び出され、出力は、可用性フラグavailableFlagA1、availableFlagB1、並びにブロックベクトルbvA1およびbvB1である。
i=0
if(availableFlagA1)
bvCandList[i++]=bvA1
if(availableFlagB1)
bvCandList[i++]=bvB1 (8-910)
1.bvCandList[numCurrCand][0]は、0に等しく設定される。
2.bvCandList[numCurrCand][1]は、0に等しく設定される。
3.numCurrCandは1増加される。
bvIdx=general_merge_flag[xCb][yCb]?merge_idx[xCb][yCb]:mvp_l0_flag[xCb][yCb] (8-911)
bvL[0]=bvCandList[mvIdx][0] (8-912)
bvL[1]=bvCandList[mvIdx][1] (8-913)
この処理への入力は以下の通りである。
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
-近傍の符号化ユニットの可用性フラグavailableFlagA1およびavailableFlagB1、
-近傍の符号化ユニットの1/16小数サンプル精度bvA1およびbvB1。
availableFlagA1およびmvA1の導出のために、以下が適用される。
-近傍の輝度符号化ブロック内の輝度位置(xNbA1,yNbA1)は、(xCb-1,yCb+cbHeight-1)に等しく設定される。
-6.4.4節で規定される近傍のブロックの可用性のための導出処理は、(xCb,yCb)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍の輝度位置(xNbA1,yNbA1)、TRUEに等しく設定されたcheckPredModeY、0に等しく設定されたcIdxを入力として呼び出され、出力は、ブロック可用性フラグavailableA1に割り当てられる。
-変数availableFlagA1およびbvA1は、以下のように導出される。
-availableA1がFALSEに等しい場合、availableFlagA1は0に等しく設定され、bvA1の両成分は0に等しく設定される。
-そうでない場合、availableFlagA1は1に等しく設定され、以下の割り当てが行われる。
bvA1=MvL0[xNbA1][yNbA1] (8-914)
-近傍の輝度符号化ブロック内の輝度位置(xNbB1,yNbB1)は、(xCb+cbWidth-1,yCb-1)に等しく設定される。
-6.4.4節で規定される近傍のブロックの可用性のための導出処理は、(xCb,yCb)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍の輝度位置(xNbB1,yNbB1)、TRUEに等しく設定されたcheckPredModeY、0に等しく設定されたcIdxを入力として呼び出され、出力は、ブロック可用性フラグavailableB1に割り当てられる。
-変数availableFlagB1およびbvB1は、以下のように導出される。
-以下の条件の1または複数が真である場合、availableFlagB1は0に設定され、bvB1の両成分は0に等しく設定される。
-availableB1はFALSEに等しい。
-availableA1はTRUEに等しく、輝度位置(xNbA1,yNbA1)および(xNbB1,yNbB1)は同じブロックベクトルを有する。
-そうでない場合、availableFlagB1は1に設定され、以下の割り当てが行われる。
bvB1=MvL0[xNbB1][yNbB1] (8-915)
この処理への入力は以下の通りである。
-ブロックベクトル候補リストbvCandList、
-[[現在の符号化ユニットが共有マージ候補領域内にあるかどうかを規定する変数isInSmr]]
-非小ブロックIslgrBlkを示す変数、
-リストnumCurrCandにおける利用可能なブロックベクトル候補の数。
-修正されたブロックベクトル候補リストbvCandList、
-リストnumCurrCandにおける動きベクトル候補の修正数
インデックスhMvpIdx=1..[[smr]]NumHmvpIbcCandである[[smr]]HmvpIbcCandList[hMvpIdx]における各候補に対し、numCurrCandがMaxNumMergeCandに等しくなるまで、以下の順序付けられたステップを繰り返す。
-IsLgrBlkは真であり、かつ、NがA1またはB1である任意のブロックベクトル候補Nに対して、以下のすべての条件が真ある場合、sameMotionおよびisPrunedNは共にTRUEに等しく設定される。
-hMvpIdxは1以下である。
-候補HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]は、ブロックベクトル候補Nである。
-isPrunedNはFALSEに等しい。
-そうでない場合、sameMotionはFALSEに等しく設定される。
bvCandList[numCurrCand++]=HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx] (8-916)
CTUは、符号化ツリー構造のルートノードである。
6.4.4節で規定されている近傍のブロック可用性の導出処理において、(x,y)のサンプルが利用可能かどうかを規定する配列IsAvailable[cIdx][x][y]は、cIdx=0...2、x=0...CtbSizeY-1、およびy=0...CtbSizeY-1に対して、以下のように初期化される。
IsAvailable[cIdx][x][y]=FALSE (7-123)
[[x,yにおけるサンプルが共有マージ候補リスト領域内に位置するかどうかを規定する配列IsInSmr[x][y]は、x=0..CtbSizeY-1およびy=0..CtbSizeY-1に対して以下のように初期化される。
IsInSmr[x][y]=FALSE (7-124)]]
[[以下の条件のすべてが真である場合、IsInSmr[x][y]は、x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1に対して、TRUEに等しく設定される。
-isInSmr[x0][y0]はFALSEに等しい
-cbWidth*cbHeight/4が32より小さい
-treeTypeがDUAL_TREE_CHROMAと等しくない
IsInSmr[x0][y0]がTRUEに等しい場合、配列SmrX[x][y]、SmrY[x][y]、SmrW[x][y]、およびSmrH[x][y]は、x=x0..x0+cbWidth-1、およびy=y0..y0+cbHeight-1に対して以下のように導出される。
SmrX[x][y]=x0 (7-126)
SmrY[x][y]=y0 (7-127)
SmrW[x][y]=cbWidth (7-128)
SmrH[x][y]=cbHeight (7-129)]]
8.6.2.1 一般
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
-1/16小数サンプル精度bvLにおける輝度ブロックベクトル。
-8.6.2.2節で規定されたIBC輝度ブロックベクトル予測の導出処理は、輝度位置(xCb,yCb)、変数cbWidthおよびcbHeightを入力として呼び出され、出力は輝度ブロックベクトルbvLである。
-general_merge_flag[xCb][yCb]が0と等しい場合、以下が適用される。
1.変数bvdは、以下のように導出される。
bvd[0]=MvdL0[xCb][yCb][0] (8-900)
bvd[1]=MvdL0[xCb][yCb][1] (8-901)
2.8.5.2.14節で規定されるような動きベクトルの丸め処理は、bvLに等しく設定されたmvX、AMvrShiftに等しく設定されたrightShift、AMvrShiftに等しく設定されたleftShiftを入力とし、丸められたbvLを出力として呼び出される。
3.輝度ブロックベクトルbvLは、以下のように修正される。
u[0]=(bvL[0]+bvd[0]+218)%218 (8-902)
bvL[0]=(u[0]>=217)?(u[0]-218):u[0] (8-903)
u[1]=(bvL[1]+bvd[1]+218)%218 (8-904)
bvL[1]=(u[1]>=217)?(u[1]-218):u[1] (8-905)
注1-上記で規定されたbvL[0]およびbvL[1]の結果値は、常に-217~217-1の範囲に含まれる。
IsLgrBlkが真である場合、左側の近傍のブロックが4×4であり、IBCモードで符号化されている場合、IsLgrBlkは偽に等しく設定される。
IsLgrBlkが真である場合、上側の近傍のブロックが4×4であり、IBCモードで符号化されている場合、IsLgrBlkは偽に等しく設定される。
(または代替的に、
変数IslgrBlkは、(cbWidth×cbHeightがKよりも大きい?真:偽)に設定されする。
IsLgrBlkが真である場合、左側の近傍のブロックが4×4であり、IBCモードで符号化されている場合、IsLgrBlkは偽に等しく設定される。
IsLgrBlkが真である場合、上側の近傍のブロックが現在のブロックと同じCTUにあり、4×4であり、IBCモードで符号化されている場合、IsLgrBlkは偽に等しく設定される。)
輝度ブロックベクトルbvLが以下の制約に従うべきであることは、ビットストリーム適合性の要件である。
-CtbSizeYは、((yCb+(bvL[1]>4))&(CtbSizeY-1))+cbHeight以上である。
-IbcVirBuf[0][(x+(bvL[0]>>4))&(IbcVirBufWidth-1)][(y+(bvL[1]>>4))&(CtbSizeY-1)]は、x=xCb..xCb+cbWidth-1およびy=yCb..yCb+cbHeight-1に対し、-1と等しくなってはならない。
この処理は、CuPredMode[0][xCb][yCb]がMODE_IBCに等しい場合にのみ呼び出され、ここで、(xCb,yCb)は、現在のピクチャの左上の輝度サンプルに対して、現在の輝度符号化ブロックの左上のサンプルを規定する。
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
-1/16小数サンプル精度bvLにおける輝度ブロックベクトル。
[[変数xSmr、ySmr、smrWidth、およびsmrHeightは、以下のように導出される。
xSmr=IsInSmr[xCb][yCb]?SmrX[xCb][yCb]:xCb (8-906)
ySmr=IsInSmr[xCb][yCb]?SmrY[xCb][yCb]:yCb (8-907)
smrWidth=IsInSmr[xCb][yCb]?SmrW[xCb][yCb]:cbWidth (8-908)
smrHeight=IsInSmr[xCb][yCb]?SmrH[xCb][yCb]:cbHeight (8-909)]]
IsLgrBlkが真である場合、左側の近傍のブロックが4×4であり、IBCモードで符号化されている場合、IsLgrBlkは偽に等しく設定される。
IsLgrBlkが真である場合、上側の近傍のブロックが4×4であり、IBCモードで符号化されている場合、IsLgrBlkは偽に等しく設定される。
(または代替的に、
変数IslgrBlkは、(cbWidth×cbHeightがKより大きい?真:偽)に設定される。
IsLgrBlkが真である場合、左側の近傍のブロックが4×4であり、IBCモードで符号化されている場合、IsLgrBlkは偽に等しく設定される。
IsLgrBlkが真である場合、上側の近傍のブロックが現在のブロックと同じCTUにあり、4×4であり、IBCモードで符号化されている場合、IsLgrBlkは偽に等しく設定される。)
1.IslgrBlkが真の場合、8.6.2.3項で規定される近傍の符号化ユニットからの空間的ブロックベクトル候補の導出処理は、(xCb,yCb[[xSmr,ySmr]])に等しく設定された輝度符号化ブロックの位置(xCb,yCb)、[[smr]]CbWidthおよび[[smr]]CbHeightに等しく設定された輝度符号化ブロックの幅cbWidthおよび輝度符号化ブロックの高さcbHeightを入力として呼び出され、出力は、可用性フラグavailableFlagA1、availableFlagB1、並びにブロックベクトルbvA1およびbvB1である。
i=0
if(availableFlagA1)
bvCandList[i++]=bvA1
if(availableFlagB1)
bvCandList[i++]=bvB1 (8-910)
1.bvCandList[numCurrCand][0]は、0に等しく設定される。
2.bvCandList[numCurrCand][1]は、0に等しく設定される。
3.numCurrCandは1増加される。
bvIdx=general_merge_flag[xCb][yCb]?merge_idx[xCb][yCb]:mvp_l0_flag[xCb][yCb] (8-911)
bvL[0]=bvCandList[mvIdx][0] (8-912)
bvL[1]=bvCandList[mvIdx][1] (8-913)
この処理への入力は以下の通りである。
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
-近傍の符号化ユニットの可用性フラグavailableFlagA1およびavailableFlagB1、
-近傍の符号化ユニットの1/16小数サンプルにおける精度bvA1およびbvB1。
-近傍の輝度符号化ブロック内の輝度位置(xNbA1,yNbA1)は、(xCb-1,yCb+cbHeight-1)に等しく設定される。
-6.4.4節で規定される近傍のブロックの可用性のための導出処理は、(xCb,yCb)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍の輝度位置(xNbA1,yNbA1)、TRUEに等しく設定されたcheckPredModeY、0に等しく設定されたcIdxを入力として呼び出され、出力はブロック可用性フラグavailableA1に割り当てられる。
-変数availableFlagA1およびbvA1は、以下のように導出される。
-availableA1がFALSEに等しい場合、availableFlagA1は0に等しく設定され、bvA1の両成分は0に等しく設定される。
-そうでない場合、availableFlagA1は1に等しく設定され、以下の割り当てが行われる。
bvA1=MvL0[xNbA1][yNbA1] (8-914)
-近傍の輝度符号化ブロック内の輝度位置(xNbB1,yNbB1)は、(xCb+cbWidth-1,yCb-1)に等しく設定される。
-6.4.4節で規定される近傍のブロックの可用性のための導出処理は、(xCb,yCb)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍の輝度位置(xNbB1,yNbB1)、TRUEに等しく設定されたcheckPredModeY、0に等しく設定されたcIdxを入力として呼び出され、出力は、ブロック可用性フラグavailableB1に割り当てられる。
-変数availableFlagB1およびbvB1は、以下のように導出される。
-以下の条件のうちの1または複数が真である場合、availableFlagB1は0に等しく設定され、bvB1の両成分は0に等しく設定される。
-availableB1はFALSEに等しい。
-availableA1はTRUEに等しく、輝度位置(xNbA1,yNbA1)および(xNbB1,yNbB1)は同じブロックベクトルを有する。
-そうでない場合、availableFlagB1は1に等しく設定され、以下の割り当てが行われる。
bvB1=MvL0[xNbB1][yNbB1] (8-915)
この処理への入力は以下の通りである。
-ブロックベクトル候補リストbvCandList、
-[[現在の符号化ユニットが共有マージ候補領域内にあるかどうかを規定する変数isInSmr、]]
-非小ブロックIslgrBlkを示す変数、
-リストnumCurrCandにおける利用可能なブロックベクトル候補の数。
-修正されたブロックベクトル候補リストbvCandList、
-リストnumCurrCandにおける動きベクトル候補の修正数
変数isPrunedA1およびisPrunedB1は共にFALSEに等しく設定される。
1.変数sameMotionは以下のように導出される:
-IsLgrBlkは真であり、かつ、NはA1またはB1である任意のブロックベクトル候補Nに対して、以下のすべての条件が真ある場合、sameMotionおよびisPrunedNは共にTRUEに等しく設定される。
-hMvpIdxは1以下である。
-候補HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]は、ブロックベクトル候補Nに等しい。
-isPrunedNはFALSEに等しく設定される。
-そうでない場合、sameMotionをFALSEに等しく設定される。
2.sameMotionがFALSEに等しい場合、候補HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]はブロックベクトル候補リストに以下のように加えられる。
bvCandList[numCurrCand++]=HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx] (8-916)
Claims (13)
- 映像処理の方法であって、
映像の第1の映像ブロックと、前記映像のビットストリームとの間の変換のために、ブロックベクトル候補リストを構成することと、
前記ブロックベクトル候補リストに基づいて、第1の予測モードにおける前記第1の映像ブロックに対する動き情報を判定することであって、前記第1の予測モードにおいて、前記第1の映像ブロックの予測サンプルは、前記第1の映像ブロックを含む同じ映像領域のサンプル値のブロックから導出される、ことと、
前記第1の映像ブロックのサイズに関する第1の条件に基づいて、前記第1の映像ブロックの前記動き情報を有する第1の履歴ベースの予測子テーブルを更新するか否かを判定することと、
前記第1の映像ブロックの前記動き情報に基づいて前記変換を実行することと、
を有し、
前記第1の履歴ベースの予測子テーブルは、前記第1の映像ブロックを含むピクチャにおける前の映像ブロックの対応する動き情報にそれぞれが関連付けられたブロックベクトル候補のセットを含み、
前記第1の履歴ベースの予測子テーブルにおける前記動き候補の配列は、前記動き候補の前記履歴ベースの予測子テーブルへの追加の順番に基づき、
前記第1の履歴ベースの予測子テーブルは、閾値よりも大きい前記第1の映像ブロックの前記サイズに応じて、前記第1の映像ブロックの前記動き情報を用いて更新され、
前記第1の予測モードにおいて、前記ブロックベクトル候補リストを構成することは、前記第1の映像ブロックの空間的近傍のブロックから導出されたブロックベクトル候補を挿入することを有し、
前記第1の予測モードにおいて、前記ブロックベクトル候補が前記ブロックベクトル候補リストに挿入された際に1または複数のプルーニング動作が実行され、
プルーニング動作の最大数は、前記閾値より大きくない前記第1の映像ブロックの前記サイズに応じて、減らされる、または、0に設定される、方法。 - 前記第1の映像ブロックの空間的近傍のブロックから導出されたブロックベクトル候補は、前記閾値よりも大きい前記第1の映像ブロックの前記サイズに応じて、前記ブロックベクトル候補リストに挿入される、請求項1に記載の方法。
- 前記第1の映像ブロックの空間的近傍のブロックから導出されたブロックベクトル候補は、前記第1の予測モードと同じである前記空間的近傍のブロックの前記予測モードに応じて、前記ブロックベクトル候補リストに挿入される、請求項1に記載の方法。
- 前記ブロックベクトル候補リストは、前記閾値よりも大きくない前記第1の映像ブロックの前記サイズに応じて、前記履歴ベースの予測子テーブルおよび/またはデフォルトの候補からの動き候補のみを含む、請求項1から3のいずれか一項に記載の方法。
- 前記閾値よりも大きい前記第1の映像ブロックの前記サイズは、16よりも大きいW×Hであり、
Wは、前記第1の映像ブロックの幅であり、Hは前記第1の映像ブロックの高さである、請求項1から4のいずれか一項に記載の方法。 - 動き候補リストおよび第2の履歴ベースの予測子テーブルは、前記映像の第2の映像ブロックに対する第2の予測モードにて適用され、
前記第2の予測モードにおいて、前記第2の映像ブロックの予測サンプルは、前記第2の映像ブロックを有するピクチャとは異なるピクチャのサンプル値のブロックから導出される、請求項1から5のいずれか一項に記載の方法。 - 前記第2の履歴ベースの予測子テーブルは、前記第2の映像ブロックのサイズと、前記ビットストリームに含まれる閾値との間の関係に関する第2の条件が満たされることに応じて更新される、請求項6に記載の方法。
- 前記第2の履歴ベースの予測子テーブルからの動き候補と、前記動き候補リストに存在した他の動き候補の間のプルーニング動作は、実行されない、請求項7に記載の方法。
- 前記変換は、前記映像を前記ビットストリームに符号化することを含む、請求項1から8のいずれか一項に記載の方法。
- 前記変換は、前記映像を前記ビットストリームから復号化することを含む、請求項1から8のいずれか一項に記載の方法。
- プロセッサと、命令を有する非一時メモリを有する、映像データを処理するための装置であって、
前記プロセッサにより前記命令が実行されることにより、前記プロセッサに、
映像の第1の映像ブロックと、前記映像のビットストリームとの間の変換のために、ブロックベクトル候補リストを構成することと、
前記ブロックベクトル候補リストに基づいて、第1の予測モードにおける前記第1の映像ブロックに対する動き情報を判定することであって、前記第1の予測モードにおいて、前記第1の映像ブロックの予測サンプルは、前記第1の映像ブロックを含む同じ映像領域のサンプル値のブロックから導出される、ことと、
前記第1の映像ブロックのサイズに関する第1の条件に基づいて、前記第1の映像ブロックの前記動き情報を有する第1の履歴ベースの予測子テーブルを更新するか否かを判定することと、
前記第1の映像ブロックの前記動き情報に基づいて前記変換を実行することと、
を実行させ、
前記第1の履歴ベースの予測子テーブルは、前記第1の映像ブロックを含むピクチャにおける前の映像ブロックの対応する動き情報にそれぞれが関連付けられたブロックベクトル候補のセットを含み、
前記第1の履歴ベースの予測子テーブルにおける前記動き候補の配列は、前記動き候補の前記履歴ベースの予測子テーブルへの追加の順番に基づき、
前記第1の履歴ベースの予測子テーブルは、閾値よりも大きい前記第1の映像ブロックの前記サイズに応じて、前記第1の映像ブロックの前記動き情報を用いて更新され、
前記第1の予測モードにおいて、前記ブロックベクトル候補リストを構成することは、前記第1の映像ブロックの空間的近傍のブロックから導出されたブロックベクトル候補を挿入することを有し、
前記第1の予測モードにおいて、前記ブロックベクトル候補が前記ブロックベクトル候補リストに挿入された際に1または複数のプルーニング動作が実行され、
プルーニング動作の最大数は、前記閾値より大きくない前記第1の映像ブロックの前記サイズに応じて、減らされる、または、0に設定される、装置。 - プロセッサに、
映像の第1の映像ブロックと、前記映像のビットストリームとの間の変換のために、ブロックベクトル候補リストを構成することと、
前記ブロックベクトル候補リストに基づいて、第1の予測モードにおける前記第1の映像ブロックに対する動き情報を判定することであって、前記第1の予測モードにおいて、前記第1の映像ブロックの予測サンプルは、前記第1の映像ブロックを含む同じ映像領域のサンプル値のブロックから導出される、ことと、
前記第1の映像ブロックのサイズに関する第1の条件に基づいて、前記第1の映像ブロックの前記動き情報を有する第1の履歴ベースの予測子テーブルを更新するか否かを判定することと、
前記第1の映像ブロックの前記動き情報に基づいて前記変換を実行することと、
を実行させ、
前記第1の履歴ベースの予測子テーブルは、前記第1の映像ブロックを含むピクチャにおける前の映像ブロックの対応する動き情報にそれぞれが関連付けられたブロックベクトル候補のセットを含み、
前記第1の履歴ベースの予測子テーブルにおける前記動き候補の配列は、前記動き候補の前記履歴ベースの予測子テーブルへの追加の順番に基づき、
前記第1の履歴ベースの予測子テーブルは、閾値よりも大きい前記第1の映像ブロックの前記サイズに応じて、前記第1の映像ブロックの前記動き情報を用いて更新され、
前記第1の予測モードにおいて、前記ブロックベクトル候補リストを構成することは、前記第1の映像ブロックの空間的近傍のブロックから導出されたブロックベクトル候補を挿入することを有し、
前記第1の予測モードにおいて、前記ブロックベクトル候補が前記ブロックベクトル候補リストに挿入された際に1または複数のプルーニング動作が実行され、
プルーニング動作の最大数は、前記閾値より大きくない前記第1の映像ブロックの前記サイズに応じて、減らされる、または、0に設定される、命令を格納する非一時的コンピュータ可読記録媒体。 - 映像のビットストリームを格納するための方法であって、
前記映像の第1の映像ブロックに対するブロックベクトル候補リストを構成することと、
前記ブロックベクトル候補リストに基づいて、第1の予測モードにおける前記第1の映像ブロックに対する動き情報を判定することであって、前記第1の予測モードにおいて、前記第1の映像ブロックの予測サンプルは、前記第1の映像ブロックを含む同じ映像領域のサンプル値のブロックから導出される、ことと、
前記第1の映像ブロックのサイズに関する第1の条件に基づいて、前記第1の映像ブロックの前記動き情報を有する第1の履歴ベースの予測子テーブルを更新するか否かを判定することと、
前記第1の映像ブロックの前記動き情報に基づいて前記ビットストリームを生成することと、
前記ビットストリームを、非一時的コンピュータ可読記録媒体に格納することと、
を有し、
前記第1の履歴ベースの予測子テーブルは、前記第1の映像ブロックを含むピクチャにおける前の映像ブロックの対応する動き情報にそれぞれが関連付けられたブロックベクトル候補のセットを含み、
前記第1の履歴ベースの予測子テーブルにおける前記動き候補の配列は、前記動き候補の前記履歴ベースの予測子テーブルへの追加の順番に基づき、
前記第1の履歴ベースの予測子テーブルは、閾値よりも大きい前記第1の映像ブロックの前記サイズに応じて、前記第1の映像ブロックの前記動き情報を用いて更新され、
前記第1の予測モードにおいて、前記ブロックベクトル候補リストを構成することは、前記第1の映像ブロックの空間的近傍のブロックから導出されたブロックベクトル候補を挿入することを有し、
前記第1の予測モードにおいて、前記ブロックベクトル候補が前記ブロックベクトル候補リストに挿入された際に1または複数のプルーニング動作が実行され、
プルーニング動作の最大数は、前記閾値より大きくない前記第1の映像ブロックの前記サイズに応じて、減らされる、または、0に設定される、方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023204671A JP2024023522A (ja) | 2019-06-06 | 2023-12-04 | 映像符号化のための動き候補リストの構成 |
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNPCT/CN2019/090409 | 2019-06-06 | ||
CN2019090409 | 2019-06-06 | ||
CNPCT/CN2019/092438 | 2019-06-22 | ||
CN2019092438 | 2019-06-22 | ||
CN2019105180 | 2019-09-10 | ||
CNPCT/CN2019/105180 | 2019-09-10 | ||
PCT/CN2020/094865 WO2020244660A1 (en) | 2019-06-06 | 2020-06-08 | Motion candidate list construction for video coding |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023204671A Division JP2024023522A (ja) | 2019-06-06 | 2023-12-04 | 映像符号化のための動き候補リストの構成 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022535903A JP2022535903A (ja) | 2022-08-10 |
JP7460661B2 true JP7460661B2 (ja) | 2024-04-02 |
Family
ID=73652980
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021572490A Active JP7460661B2 (ja) | 2019-06-06 | 2020-06-08 | 映像符号化のための動き候補リストの構成 |
JP2023204671A Pending JP2024023522A (ja) | 2019-06-06 | 2023-12-04 | 映像符号化のための動き候補リストの構成 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023204671A Pending JP2024023522A (ja) | 2019-06-06 | 2023-12-04 | 映像符号化のための動き候補リストの構成 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11653002B2 (ja) |
EP (1) | EP3967040A4 (ja) |
JP (2) | JP7460661B2 (ja) |
KR (1) | KR102662603B1 (ja) |
CN (2) | CN113994699B (ja) |
WO (1) | WO2020244660A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112585976A (zh) * | 2018-08-06 | 2021-03-30 | 韩国电子通信研究院 | 用于对图像进行编码/解码的方法和设备以及用于存储比特流的记录介质 |
US11122260B2 (en) * | 2019-02-22 | 2021-09-14 | Mediatek Inc. | Method and apparatus of Merge list generation for Intra Block Copy mode |
CN113994699B (zh) * | 2019-06-06 | 2024-01-12 | 北京字节跳动网络技术有限公司 | 视频编解码的运动候选列表构建 |
CN113940082A (zh) | 2019-06-06 | 2022-01-14 | 北京字节跳动网络技术有限公司 | 基于子块的帧内块复制和不同编解码工具之间的交互 |
WO2020259426A1 (en) | 2019-06-22 | 2020-12-30 | Beijing Bytedance Network Technology Co., Ltd. | Motion candidate list construction for intra block copy mode |
MX2022002279A (es) | 2019-09-03 | 2022-04-20 | Panasonic Ip Corp America | Codificador, decodificador, metodo de codificacion y metodo de decodificacion. |
US11627328B2 (en) * | 2020-10-16 | 2023-04-11 | Tencent America LLC | Method and apparatus for video coding |
US12088793B2 (en) * | 2022-08-30 | 2024-09-10 | Tencent America LLC | Temporal motion vector predictor candidates search |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016138513A1 (en) | 2015-02-27 | 2016-09-01 | Arris Enterprises, Inc. | Modification of unification of intra block copy and inter signaling related syntax and semantics |
JP2017535163A (ja) | 2014-10-07 | 2017-11-24 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | イントラbcとインターの統合 |
JP2017535180A (ja) | 2014-10-14 | 2017-11-24 | クアルコム,インコーポレイテッド | イントラbcとインター予測の統合のためのamvpおよびマージ候補リスト導出 |
US10841607B2 (en) | 2018-08-13 | 2020-11-17 | Lg Electronics Inc. | Inter prediction method and apparatus based on history-based motion vector |
Family Cites Families (108)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014181A (en) * | 1997-10-13 | 2000-01-11 | Sharp Laboratories Of America, Inc. | Adaptive step-size motion estimation based on statistical sum of absolute differences |
US10554985B2 (en) | 2003-07-18 | 2020-02-04 | Microsoft Technology Licensing, Llc | DC coefficient signaling at small quantization step sizes |
KR20050119422A (ko) * | 2004-06-16 | 2005-12-21 | 삼성전자주식회사 | 움직임 보상에 기반한 입력 영상의 노이즈 예측 및 그장치와, 이를 사용한 노이즈 제거 및 동영상 부호화 방법,이를 수행하기 위한 프로그램이 기록된 기록 매체 |
WO2013077659A1 (ko) * | 2011-11-24 | 2013-05-30 | 에스케이텔레콤 주식회사 | 모션 벡터의 예측 부호화/복호화 방법 및 장치 |
US9549180B2 (en) | 2012-04-20 | 2017-01-17 | Qualcomm Incorporated | Disparity vector generation for inter-view prediction for video coding |
US20130294513A1 (en) * | 2012-05-07 | 2013-11-07 | Qualcomm Incorporated | Inter layer merge list construction for video coding |
US20130329007A1 (en) | 2012-06-06 | 2013-12-12 | Qualcomm Incorporated | Redundancy removal for advanced motion vector prediction (amvp) in three-dimensional (3d) video coding |
US20130336406A1 (en) | 2012-06-14 | 2013-12-19 | Qualcomm Incorporated | Redundancy removal for merge/skip mode motion information candidate list construction |
US20140071235A1 (en) | 2012-09-13 | 2014-03-13 | Qualcomm Incorporated | Inter-view motion prediction for 3d video |
US9491461B2 (en) | 2012-09-27 | 2016-11-08 | Qualcomm Incorporated | Scalable extensions to HEVC and temporal motion vector prediction |
US9699450B2 (en) | 2012-10-04 | 2017-07-04 | Qualcomm Incorporated | Inter-view predicted motion vector for 3D video |
CN104718760B (zh) | 2012-10-05 | 2019-04-05 | 寰发股份有限公司 | 用于三维和多视图视频编码的方法和装置 |
US9357214B2 (en) | 2012-12-07 | 2016-05-31 | Qualcomm Incorporated | Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video |
US9538180B2 (en) | 2012-12-17 | 2017-01-03 | Qualcomm Incorporated | Motion vector prediction in video coding |
US9253503B2 (en) * | 2012-12-18 | 2016-02-02 | Xerox Corporation | Computationally efficient motion estimation with learning capabilities for video compression in transportation and regularized environments |
EP3490259B1 (en) | 2013-04-02 | 2021-10-13 | InterDigital Madison Patent Holdings, SAS | Enhanced temporal motion vector prediction for scalable video coding |
US9609347B2 (en) | 2013-04-04 | 2017-03-28 | Qualcomm Incorporated | Advanced merge mode for three-dimensional (3D) video coding |
US10015515B2 (en) | 2013-06-21 | 2018-07-03 | Qualcomm Incorporated | Intra prediction from a predictive block |
US9716899B2 (en) | 2013-06-27 | 2017-07-25 | Qualcomm Incorporated | Depth oriented inter-view motion vector prediction |
WO2015003383A1 (en) | 2013-07-12 | 2015-01-15 | Mediatek Singapore Pte. Ltd. | Methods for inter-view motion prediction |
WO2015007159A1 (en) | 2013-07-15 | 2015-01-22 | Mediatek Singapore Pte. Ltd. | Method of disparity derived depth coding in 3d video coding |
US9432685B2 (en) | 2013-12-06 | 2016-08-30 | Qualcomm Incorporated | Scalable implementation for parallel motion estimation regions |
US20150189333A1 (en) | 2013-12-27 | 2015-07-02 | Industrial Technology Research Institute | Method and system for image processing, decoding method, encoder, and decoder |
BR112016015080A2 (pt) | 2014-01-03 | 2017-08-08 | Microsoft Technology Licensing Llc | Predição de vetor de bloco em codificação / decodificação de vídeo e imagem |
US20150271515A1 (en) * | 2014-01-10 | 2015-09-24 | Qualcomm Incorporated | Block vector coding for intra block copy in video coding |
US10567799B2 (en) | 2014-03-07 | 2020-02-18 | Qualcomm Incorporated | Simplified sub-prediction unit (sub-PU) motion parameter inheritance (MPI) |
US20150264361A1 (en) | 2014-03-13 | 2015-09-17 | Huawei Technologies Co., Ltd. | Method for screen content coding |
US20170195677A1 (en) | 2014-05-22 | 2017-07-06 | Mediatek Inc. | Method of Intra Block Copy with Flipping for Image and Video Coding |
CN110351567B (zh) | 2014-06-16 | 2023-07-14 | 高通股份有限公司 | 3d-hevc中的简化移位合并候选者及合并列表导出 |
KR102034938B1 (ko) * | 2014-09-01 | 2019-10-21 | 에이치에프아이 이노베이션 인크. | 스크린 콘텐츠 및 비디오 코딩을 위한 인트라 픽처 블록 카피의 방법 |
KR20170066457A (ko) | 2014-09-26 | 2017-06-14 | 브이아이디 스케일, 인크. | 시간적 블록 벡터 예측을 갖는 인트라 블록 카피 코딩 |
US10306229B2 (en) * | 2015-01-26 | 2019-05-28 | Qualcomm Incorporated | Enhanced multiple transforms for prediction residual |
US11477477B2 (en) | 2015-01-26 | 2022-10-18 | Qualcomm Incorporated | Sub-prediction unit based advanced temporal motion vector prediction |
US10057574B2 (en) | 2015-02-11 | 2018-08-21 | Qualcomm Incorporated | Coding tree unit (CTU) level adaptive loop filter (ALF) |
CA2981916C (en) | 2015-04-13 | 2021-08-31 | Mediatek, Inc. | Methods of constrained intra block copy for reducing worst case bandwidth in video coding |
US10659783B2 (en) | 2015-06-09 | 2020-05-19 | Microsoft Technology Licensing, Llc | Robust encoding/decoding of escape-coded pixels in palette mode |
US10148977B2 (en) | 2015-06-16 | 2018-12-04 | Futurewei Technologies, Inc. | Advanced coding techniques for high efficiency video coding (HEVC) screen content coding (SCC) extensions |
EP3357227A1 (en) | 2015-10-02 | 2018-08-08 | VID SCALE, Inc. | Color correction with a lookup table |
US10356427B2 (en) | 2015-10-05 | 2019-07-16 | Mediatek Inc. | Method and apparatus of palette index map coding for screen content coding |
WO2017118411A1 (en) * | 2016-01-07 | 2017-07-13 | Mediatek Inc. | Method and apparatus for affine inter prediction for video coding system |
US10904526B2 (en) | 2016-03-28 | 2021-01-26 | Kt Corporation | Method and apparatus for processing video signal |
EP3453173B1 (en) | 2016-05-05 | 2021-08-25 | InterDigital Madison Patent Holdings, SAS | Control-point based intra direction representation for intra coding |
US10560718B2 (en) | 2016-05-13 | 2020-02-11 | Qualcomm Incorporated | Merge candidates for motion vector prediction for video coding |
US10326986B2 (en) | 2016-08-15 | 2019-06-18 | Qualcomm Incorporated | Intra video coding using a decoupled tree structure |
US10721489B2 (en) | 2016-09-06 | 2020-07-21 | Qualcomm Incorporated | Geometry-based priority for the construction of candidate lists |
US10448010B2 (en) * | 2016-10-05 | 2019-10-15 | Qualcomm Incorporated | Motion vector prediction for affine motion models in video coding |
US11025903B2 (en) | 2017-01-13 | 2021-06-01 | Qualcomm Incorporated | Coding video data using derived chroma mode |
EP3606072A4 (en) | 2017-03-31 | 2020-07-22 | Panasonic Intellectual Property Corporation of America | IMAGE CODING DEVICE, IMAGE DECODING DEVICE, IMAGE CODING METHOD AND IMAGE DECODING METHOD |
CN110574377B (zh) * | 2017-05-10 | 2021-12-28 | 联发科技股份有限公司 | 用于视频编解码的重新排序运动向量预测候选集的方法及装置 |
TW201907732A (zh) | 2017-07-05 | 2019-02-16 | 財團法人工業技術研究院 | 視訊編碼方法、視訊解碼方法、視訊編碼器及視訊解碼器 |
US10785494B2 (en) | 2017-10-11 | 2020-09-22 | Qualcomm Incorporated | Low-complexity design for FRUC |
US20190116374A1 (en) | 2017-10-17 | 2019-04-18 | Qualcomm Incorporated | Coding motion information of video data using coding structure-based candidate list construction |
EP3711299A1 (en) | 2017-11-14 | 2020-09-23 | Qualcomm Incorporated | Unified merge candidate list usage |
US10931963B2 (en) | 2017-12-07 | 2021-02-23 | Tencent America LLC | Method and apparatus for video coding |
EP3738310A4 (en) | 2018-01-11 | 2021-08-11 | Qualcomm Incorporated | VIDEO ENCODING USING LOCAL LIGHTING COMPENSATION |
CN111937391B (zh) | 2018-04-02 | 2024-03-29 | 寰发股份有限公司 | 用于视频编解码系统中的子块运动补偿的视频处理方法和装置 |
CN117061738A (zh) | 2018-04-02 | 2023-11-14 | 深圳市大疆创新科技有限公司 | 用于图像处理的方法和图像处理装置 |
CN110662075B (zh) | 2018-06-29 | 2023-04-25 | 北京字节跳动网络技术有限公司 | 改进的时域运动矢量预测推导 |
CN110662059B (zh) | 2018-06-29 | 2021-04-20 | 北京字节跳动网络技术有限公司 | 使用查找表存储先前编码的运动信息并用其编码后续块的方法和装置 |
KR102646649B1 (ko) * | 2018-06-29 | 2024-03-13 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Lut에서의 모션 후보들의 검사 순서 |
KR20210024502A (ko) | 2018-06-29 | 2021-03-05 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Hmvp 후보를 병합/amvp에 추가할 때의 부분/풀 프루닝 |
WO2020008329A1 (en) | 2018-07-01 | 2020-01-09 | Beijing Bytedance Network Technology Co., Ltd. | Spatial motion compression |
JP7181395B2 (ja) | 2018-07-02 | 2022-11-30 | 北京字節跳動網絡技術有限公司 | イントラ予測モードを有するルックアップテーブルおよび非隣接ブロックからのイントラモード予測 |
WO2020007362A1 (en) * | 2018-07-06 | 2020-01-09 | Mediatek Inc. | Inherited motion information for decoding a current coding unit in a video coding system |
US10440378B1 (en) * | 2018-07-17 | 2019-10-08 | Tencent America LLC | Method and apparatus for history-based motion vector prediction with parallel processing |
US10958934B2 (en) * | 2018-07-27 | 2021-03-23 | Tencent America LLC | History-based affine merge and motion vector prediction |
US10362330B1 (en) * | 2018-07-30 | 2019-07-23 | Tencent America LLC | Combining history-based motion vector prediction and non-adjacent merge prediction |
US11245922B2 (en) | 2018-08-17 | 2022-02-08 | Mediatek Inc. | Shared candidate list |
WO2020044197A1 (en) | 2018-08-26 | 2020-03-05 | Beijing Bytedance Network Technology Co., Ltd. | Pruning in multi-motion model based skip and direct mode coded video blocks |
TWI820211B (zh) | 2018-09-12 | 2023-11-01 | 大陸商北京字節跳動網絡技術有限公司 | 取決於總數減去k的開始檢查hmvp候選的條件 |
US10848782B2 (en) | 2018-09-21 | 2020-11-24 | Tencent America LLC | Method and apparatus for video coding |
CN110944203A (zh) | 2018-09-23 | 2020-03-31 | 北京字节跳动网络技术有限公司 | 块级别的运动矢量平面模式 |
TWI822863B (zh) | 2018-09-27 | 2023-11-21 | 美商Vid衡器股份有限公司 | 360度視訊寫碼樣本導出 |
US11012687B2 (en) | 2018-10-01 | 2021-05-18 | Tencent America LLC | Method and apparatus for video coding |
US11051034B2 (en) * | 2018-10-08 | 2021-06-29 | Qualcomm Incorporated | History-based motion vector predictor |
KR102637604B1 (ko) | 2018-10-08 | 2024-02-16 | 엘지전자 주식회사 | 신택스 디자인 방법 및 신택스를 이용하여 코딩을 수행하는 장치 |
CN111093073B (zh) | 2018-10-24 | 2024-04-19 | 北京字节跳动网络技术有限公司 | 用于子块运动矢量预测的基于搜索的运动候选推导 |
MX2021004677A (es) | 2018-11-02 | 2021-06-04 | Beijing Bytedance Network Tech Co Ltd | Mantenimiento de tabla para almacenamiento de candidatos de hmvp. |
EP3847814A4 (en) | 2018-11-06 | 2021-07-14 | Beijing Bytedance Network Technology Co. Ltd. | POSITION DEPENDENT STORAGE, MOVEMENT INFORMATION |
CN112997489B (zh) | 2018-11-06 | 2024-02-06 | 北京字节跳动网络技术有限公司 | 具有几何分割的帧间预测的边信息信令 |
CN116527882A (zh) | 2018-11-07 | 2023-08-01 | 寰发股份有限公司 | 利用当前画面参照编码方式的视频区块编码或解码方法和装置 |
CN117241040A (zh) | 2018-11-08 | 2023-12-15 | Oppo广东移动通信有限公司 | 图像信号编码/解码方法及其设备 |
EP3861723A4 (en) | 2018-11-10 | 2022-04-20 | Beijing Bytedance Network Technology Co., Ltd. | ROUNDS IN PAIRS OF MEDIUM CANDIDATE BILLS |
WO2020098643A1 (en) * | 2018-11-12 | 2020-05-22 | Beijing Bytedance Network Technology Co., Ltd. | Simplification of combined inter-intra prediction |
CN118590651A (zh) | 2018-11-13 | 2024-09-03 | 北京字节跳动网络技术有限公司 | 用于子块预测块的多假设 |
JP7231729B2 (ja) | 2018-11-13 | 2023-03-01 | 北京字節跳動網絡技術有限公司 | イントラブロックコピーのための履歴ベース動き候補リスト構築 |
CN113039801B (zh) | 2018-11-17 | 2023-12-19 | 北京字节跳动网络技术有限公司 | 用运动矢量差候选构建Merge |
CN113170170B (zh) | 2018-11-22 | 2024-07-26 | 北京字节跳动网络技术有限公司 | 用于具有几何分割的帧间预测的混合方法 |
WO2020108572A1 (en) | 2018-11-28 | 2020-06-04 | Beijing Bytedance Network Technology Co., Ltd. | Independent construction method for block vector list in intra block copy mode |
CN113170110B (zh) | 2018-12-03 | 2024-05-14 | 北京字节跳动网络技术有限公司 | 候选的最大数量的指示方法 |
KR102615471B1 (ko) | 2018-12-12 | 2023-12-19 | 엘지전자 주식회사 | 히스토리 기반 모션 벡터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치 |
EP3895420A4 (en) | 2018-12-18 | 2022-08-31 | HFI Innovation Inc. | METHOD AND APPARATUS FOR CODING OR DECODING CONSTRAINED VIDEO BLOCKS DURING BLOCK PARTITIONING |
WO2020135465A1 (en) | 2018-12-28 | 2020-07-02 | Beijing Bytedance Network Technology Co., Ltd. | Modified history based motion prediction |
CN109618157A (zh) * | 2018-12-29 | 2019-04-12 | 东南大学 | 一种视频显示流压缩编码的硬件实现系统及方法 |
WO2020133518A1 (zh) | 2018-12-29 | 2020-07-02 | 深圳市大疆创新科技有限公司 | 视频处理方法和设备 |
WO2020140242A1 (zh) | 2019-01-03 | 2020-07-09 | 北京大学 | 视频处理方法和装置 |
WO2020143741A1 (en) | 2019-01-10 | 2020-07-16 | Beijing Bytedance Network Technology Co., Ltd. | Invoke of lut updating |
US11032560B2 (en) * | 2019-01-17 | 2021-06-08 | Tencent America LLC | Method and apparatus for video coding without updating the HMVP table |
WO2020147805A1 (en) | 2019-01-17 | 2020-07-23 | Beijing Bytedance Network Technology Co., Ltd. | Deblocking filtering using motion prediction |
CN113396588A (zh) | 2019-02-01 | 2021-09-14 | 北京字节跳动网络技术有限公司 | 不同视频处理模式之间的协调 |
US11190800B2 (en) | 2019-02-07 | 2021-11-30 | Qualcomm Incorporated | Motion vector predictor list generation for intra block copy mode in video coding |
WO2020164630A1 (en) | 2019-02-17 | 2020-08-20 | Beijing Bytedance Network Technology Co., Ltd. | Signaling of intra block copy merge candidates |
WO2020180155A1 (ko) | 2019-03-07 | 2020-09-10 | 엘지전자 주식회사 | 비디오 신호를 처리하기 위한 방법 및 장치 |
ES2980868T3 (es) | 2019-03-11 | 2024-10-03 | Huawei Tech Co Ltd | Direcciones de segmento basadas en sub-imagen en codificación de vídeo |
CN116389769A (zh) | 2019-03-13 | 2023-07-04 | 北京大学 | 视频处理方法和设备 |
CN113994699B (zh) * | 2019-06-06 | 2024-01-12 | 北京字节跳动网络技术有限公司 | 视频编解码的运动候选列表构建 |
CN113940082A (zh) | 2019-06-06 | 2022-01-14 | 北京字节跳动网络技术有限公司 | 基于子块的帧内块复制和不同编解码工具之间的交互 |
WO2020259426A1 (en) | 2019-06-22 | 2020-12-30 | Beijing Bytedance Network Technology Co., Ltd. | Motion candidate list construction for intra block copy mode |
-
2020
- 2020-06-08 CN CN202080041808.8A patent/CN113994699B/zh active Active
- 2020-06-08 CN CN202311508163.6A patent/CN117354507A/zh active Pending
- 2020-06-08 KR KR1020217038897A patent/KR102662603B1/ko active IP Right Grant
- 2020-06-08 JP JP2021572490A patent/JP7460661B2/ja active Active
- 2020-06-08 EP EP20818889.6A patent/EP3967040A4/en active Pending
- 2020-06-08 WO PCT/CN2020/094865 patent/WO2020244660A1/en unknown
-
2021
- 2021-12-02 US US17/541,092 patent/US11653002B2/en active Active
-
2022
- 2022-10-10 US US17/962,894 patent/US12081766B2/en active Active
-
2023
- 2023-12-04 JP JP2023204671A patent/JP2024023522A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017535163A (ja) | 2014-10-07 | 2017-11-24 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | イントラbcとインターの統合 |
JP2017535180A (ja) | 2014-10-14 | 2017-11-24 | クアルコム,インコーポレイテッド | イントラbcとインター予測の統合のためのamvpおよびマージ候補リスト導出 |
WO2016138513A1 (en) | 2015-02-27 | 2016-09-01 | Arris Enterprises, Inc. | Modification of unification of intra block copy and inter signaling related syntax and semantics |
US10841607B2 (en) | 2018-08-13 | 2020-11-17 | Lg Electronics Inc. | Inter prediction method and apparatus based on history-based motion vector |
Non-Patent Citations (2)
Title |
---|
CHEN, Jianle et al.,Algorithm Description for Versatile Video Coding and Test Model 5 (VTM 5),JVET-N1002 (version 1),ITU,2019年05月21日,pp.28-29, 65-67,JVET-N1002-v1.docx |
ZHANG, Li et al.,CE4-related: Restrictions on History-Based Motion Vector Prediction,JVET-M0272 (version 4),ITU,2019年01月17日,pp.1-4,JVET-M0272_r2.docx |
Also Published As
Publication number | Publication date |
---|---|
JP2024023522A (ja) | 2024-02-21 |
KR20220016840A (ko) | 2022-02-10 |
CN117354507A (zh) | 2024-01-05 |
WO2020244660A1 (en) | 2020-12-10 |
US11653002B2 (en) | 2023-05-16 |
CN113994699A (zh) | 2022-01-28 |
CN113994699B (zh) | 2024-01-12 |
KR102662603B1 (ko) | 2024-04-30 |
US12081766B2 (en) | 2024-09-03 |
US20230059008A1 (en) | 2023-02-23 |
US20220103828A1 (en) | 2022-03-31 |
EP3967040A1 (en) | 2022-03-16 |
EP3967040A4 (en) | 2022-11-30 |
JP2022535903A (ja) | 2022-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7460661B2 (ja) | 映像符号化のための動き候補リストの構成 | |
JP7425808B2 (ja) | 動き候補リスト構築プロセスの条件付き実行 | |
WO2020259426A1 (en) | Motion candidate list construction for intra block copy mode | |
JP7568352B2 (ja) | ビデオコーディングにおける変換ブロック・サイズ制約 | |
WO2020244659A1 (en) | Interactions between sub-block based intra block copy and different coding tools | |
CN113966616B (zh) | 使用临近块信息的运动候选列表构建 | |
CN113557720B (zh) | 视频处理方法、装置以及非暂态计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211210 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211210 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230117 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230519 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20230905 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240112 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20240130 |
|
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: 20240220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240321 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7460661 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |