JP2022517691A - 映像符号化におけるイントラブロックコピーのためのバッファ管理 - Google Patents
映像符号化におけるイントラブロックコピーのためのバッファ管理 Download PDFInfo
- Publication number
- JP2022517691A JP2022517691A JP2021543340A JP2021543340A JP2022517691A JP 2022517691 A JP2022517691 A JP 2022517691A JP 2021543340 A JP2021543340 A JP 2021543340A JP 2021543340 A JP2021543340 A JP 2021543340A JP 2022517691 A JP2022517691 A JP 2022517691A
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- block
- size
- sample
- current
- 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.)
- Granted
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 408
- 238000006243 chemical reaction Methods 0.000 claims abstract description 135
- 239000013074 reference sample Substances 0.000 claims abstract description 78
- 238000003672 processing method Methods 0.000 claims abstract description 49
- 230000000007 visual effect Effects 0.000 claims abstract description 40
- 238000000034 method Methods 0.000 claims description 317
- 238000012545 processing Methods 0.000 claims description 60
- 230000009466 transformation Effects 0.000 claims description 11
- 230000000717 retained effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 abstract description 7
- 239000000523 sample Substances 0.000 description 259
- 239000013598 vector Substances 0.000 description 188
- 230000008569 process Effects 0.000 description 107
- 238000001914 filtration Methods 0.000 description 26
- 230000015654 memory Effects 0.000 description 26
- 238000013461 design Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 20
- 238000003491 array Methods 0.000 description 11
- 239000011449 brick Substances 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 230000003044 adaptive effect Effects 0.000 description 8
- 238000013507 mapping Methods 0.000 description 8
- 238000009795 derivation Methods 0.000 description 7
- 238000010200 validation analysis Methods 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 6
- 101150039623 Clip1 gene Proteins 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 239000010754 BS 2869 Class F Substances 0.000 description 2
- 210000005266 circulating tumour cell Anatomy 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000012723 sample buffer Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
パリ条約に基づく適用可能な特許法及び/又は規則に基づいて、本願は、2019年2月2日出願の国際特許出願PCT/CN2019/074598号、2019年3月1日出願の国際特許出願PCT/CN2019/076695号、2019年3月4日出願の国際特許出願PCT/CN2019/076848号、2019年3月11日出願の国際特許出願PCT/CN2019/077725号、2019年3月21日出願の国際特許出願PCT/CN2019/079151号、2019年5月7日出願の国際特許出願PCT/CN2019/085862号、2019年5月23日出願の国際特許出願PCT/CN2019/088129号、2019年6月18日出願の国際特許出願PCT/CN2019/091691号、2019年6月28日出願の国際特許出願PCT/CN2019/093552号、2019年7月6日出願の国際特許出願PCT/CN2019/094957号、2019年7月9日出願の国際特許出願PCT/CN2019/095297号、2019年7月10日出願の国際特許出願PCT/CN2019/095504号、2019年7月11日出願の国際特許出願PCT/CN2019/095656号、2019年7月13日出願の国際特許出願PCT/CN2019/095913号、2019年7月15日出願の国際特許出願PCT/CN2019/096048号の優先権及び利益を適時に主張することを目的とする。法に基づくすべての目的のために、上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
変数offsetXおよびoffsetYは、以下のように導出される。
offsetX=(ChromaArrayType==0)?0:(mvCLX[0]&0x7?2:0) (8-104)
offsetY=(ChromaArrayType==0)?0:(mvCLX[1]&0x7?2:0) (8-105)
参照ピクチャが現在のピクチャである場合、輝度動きベクトルmvLXは、以下の制約に従うべきであることが、ビットストリーム適合性の要件である。
- 6.4.1項で規定されたようなz走査順序ブロックの可用性に対する導出処理が、(xCb,yCb)と等しく設定された(xCurr,yCurr)と、(xPb+(mvLX[0]>>2)-offsetX,yPb+(mvLX[1]>>2)-offsetY)に等しく設定された近傍の輝度位置(xNbY,yNbY)と、が入力として呼び出されると、出力はTRUEとなる。
- 6.4.1項に規定されたようなz走査順序ブロックの可用性に対する導出処理が、(xCb,yCb)と等しく設定された(xCurr,yCurr)と、(xPb+(mvLX[0]>>2)+nPbW-1+offsetX、yPb+(mvLX[1]>>2)+nPbI-I-1+offsetY)と等しく設定された近傍の輝度位置(xNbY,yNbY)と、が入力として呼び出されると、出力はTRUEとなる。
- 次の条件の一方または両方がtrueであること
- (mvLX[0]>>2)の値+nPbW+xB1+offsetXが0以下である。
- (mvLX[1]>>2)の値+nPbH+yB1+offsetYが0以下である。
- 次の条件がtrueとなること。
(xPb+(mvLX[0]>>2)+nPbSw-1+offsetX)/CtbSizeY-xCb/CtbSizeY<=yCb/CtbSizeY-(yPb+(mvLX[1]>>2)+nPbSh-1+offsetY)/CtbSizeY (8-106).
1)コロケーションされた輝度ブロックの輝度CUの各々は、CPRモードで符号化されるべきである。
2)輝度4×4ブロック’BVの各々は、まず、クロマブロックのBVに変換され、クロマブロックのBVは、有効なBVである。
1)BVによって特定される参照ブロックのすべてのサンプルは、制限された検索範囲内にあるべきである(例えば、現在のVVC設計において同じCTU内にある)。
2)BVによって特定された参照ブロックのすべてのサンプルが再構成されている。
y=((m*x+2FP_PREC-1)>>FP_PREC)+c
- イントラの場合、再構成された輝度を平均する。
- インターの場合、予測輝度を平均する。
sps_reshaper_enabled_flagが1と等しい場合は、符号化映像シーケンス(CVS)においてリシェイパが使用されていることを規定している。sps_reshaper_enabled_flagが0と等しい場合は、CVSにおいてリシェイパが使用されていないことを規定している。
タイルグループヘッダ構文において、以下の意味論を追加する。
tile_group_reshaper_model_present_flagが1と等しい場合は、tile_group_reshaper_model()がタイルグループ内に存在することを規定している。
tile_group_reshaper_model_present_flagが0と等しい場合は、tile_group_reshaper_model()がタイルグループヘッダに存在しないことを規定している。
tile_group_reshaper_model_present_flagが存在しない場合は、0に等しいと推論される。
tile_group_reshaper_enabled_flagが1と等しい場合は、現在のタイルグループに対してリシェイパが有効になっていることを規定している。
tile_group_reshaper_enabled_flagが0と等しい場合は、現在のタイルグループに対してリシェイパが有効になっていないことを規定している。
tile_group_reshaper_enable_flagが存在しない場合、0であると推論される。
tile_group_reshaper_chroma_residual_scale_flagが1と等しい場合は、現在のタイルグループに対してクロマ残差スケーリングを有効であることを規定している。
tile_group_reshaper_chroma_residual_scale_flagが0と等しい場合は、現在のタイルグループに対してクロマ残差スケーリングが有効でないことを規定している。
tile_group_reshaper_chroma_residual_scale_flagが存在しない場合は、0であると推測される。
tile_group_reshaper_model()構文を追加する
reshape_model_min_bin_idxは、最小のビン(またはピース)インデックスを、リシェイパ構築処理に使用するように規定している。reshape_model_min_bin_idxの値が0~MaxBinIdxの範囲内にあるものとする。
MaxBinIdxの値は15と等しいとする。
reshape_model_delta_max_bin_idxは、最大許容ビン(またはピース)インデックスMaxBinIdxから最大ビンインデックスを引いたものが、リシェイパ構築処理で使用されることを規定している。reshape_model_max_bin_idxの値は、MaxBinIdx-reshape_model_delta_max_bin_idxに等しく設定される。
reshaper_model bin_delta_abs_cw_prec_minus1+1は、構文reshape_model_bin_delta_abs_CW[i]の表現に使用するビット数を規定している。
reshape_model_bin_delta_abs_CW[i]は、i番目のビンの絶対デルタコード名値を規定する。
reshaper_model_bin_delta_sign_CW_flag[i]は、reshape_model_bin_delta_abs_CW[i]のサインを次のように記述する。
- reshape_model_bin_delta_sign_CW_flag[i]が0と等しい場合、対応する変数RspDeltaCW[i]は正の値である。
- そうでない場合(reshape_model_bin_delta_sign_CW_flag[i]が0と等しくない)、対応する変数RspDeltaCW[i]は負の値である。
reshape_model_bin_delta_sign_CW_flag[i]が存在しない場合、0に等しいと推測される。
変数RspDeltaCW[i]=(1 2*reshape_model_bin_delta_sign_CW[i])*reshape_model_bin_delta_abs_CW[i];
変数RspCW[i]は、以下のステップとして導出される。
変数OrgCWは、(1<<BitDepthY)/(MaxBinIdx+1)に等しく設定される。
-reshaper_model_min_bin_idx<=i<=reshaper_model_max_bin_idxの場合、RspCW[i]=OrgCW+RspDeltaCW[i]である。
- そうでない場合、RspCW[i]=0である。
BitDepthYの値が10に等しい場合、RspCW[i]の値は、32~2*OrgCW_1の範囲内にくる。
iが0~MaxBinIdx+1の範囲にある変数InputPivot[i]は、以下のように導出される。
InputPivot[i]=i*OrgCW
iが0~MaxBinIdx+1の範囲にあり、変数ScaleCoef[i]およびInvScaleCoeff[i]がそれぞれ0~MaxBinIdxの範囲にあり、iが0~MaxBinIdxの範囲にある変数ReshapePivot[i]は、以下のように導出される。
shiftY=14
ReshapePivot[0]=0;
for(i=0;i<=MaxBinIdx;i++){
ReshapePivot[i+1]=ReshapePivot[i]+RspCW[i]
ScaleCoef[i]=(RspCW[i]*(1<<shiftY)+(1<<(Log2(OrgCW)-1)))>>(Log2(OrgCW))
if(RspCW[i]==0)
InvScaleCoeff[i]=0
else
InvScaleCoeff[i]=OrgCW*(1<<shiftY)/RspCW[i]
}
iが0~MaxBinIdxの範囲内にある変数ChromaScaleCoef[i]は、以下のように導出される。
ChromaResidualScaleLut[64]={16384,16384,16384,16384,16384,16384,16384,8192,8192,8192,8192,5461,5461,5461,5461,4096,4096,4096,4096,3277,3277,3277,3277,2731,2731,2731,2731,2341,2341,2341,2048,2048,2048,1820,1820,1820,1638,1638,1638,1638,1489,1489,1489,1489,1365,1365,1365,1365,1260,1260,1260,1260,1170,1170,1170,1170,1092,1092,1092,1092,1024,1024,1024,1024};
shiftC=11
-if(RspCW[i]==0)
ChromaScaleCoef[i]=(1<<shiftC)
-Otherwise(RspCW[i]!=0),ChromaScaleCoef[i]=
ChromaResidualScaleLut[RspCW[i]>>1]
1)参照領域が動的に変化するため、エンコーダ/デコーダの処理が複雑になる。
2)無効なブロックベクトルは容易に生成され、チェックしにくいため、エンコーダおよびデコーダの両方を複雑にする。
3)参照領域が不規則であると、ブロックベクトルの符号化が非効率になる。
4)128×128より小さいCTUサイズに対してどのように対処するかは不明である。
5)BVが有効であるか無効であるかの判定処理において、クロマブロックの場合、この決定は、輝度サンプルの可用性に基づいて行われ、このことは、デュアルツリーパーティション構造に起因して誤った判定をもたらす可能性がある。
1. CPR/IBCのために輝度参照サンプルを記憶するために、M×N個の画素バッファを使用することが提案される。
a. 一例において、バッファサイズは64×64である。
b. 一例において、バッファサイズは128×128である。
c. 一例において、バッファサイズは64×128である。
d. 一例において、バッファサイズは128×64である。
e. 一例において、NはCTUの高さに等しい。
f. 一例において、N=nHであり、HはCTUの高さであり、nは正の整数である。
g. 一例において、MはCTUの幅に等しい。
h. 一例において、M=mWであり、WはCTUの幅であり、mは正の整数である。
i. 一例において、バッファサイズは、CTUサイズに等しくなく、例えば、96×128または128×96である。
j. 一例において、バッファサイズはCTUサイズに等しい。
k. 一例において、M=mW、N=Hであり、WおよびHは、CTUの幅および高さであり、mは、正の整数である。
l. 一例において、M=W、N=nHであり、WおよびHは、CTUの幅および高さであり、nは、正の整数である。
m. 一例において、M=mW、N=nHであり、WおよびHは、CTUの幅および高さであり、mおよびnは、正の整数である。
n. 上記例において、mおよびnはCTUのサイズに依存してもよい。
i. 一例において、CTUのサイズが128×128である場合、m=1であり、n=1である。
ii. 一例において、CTUのサイズが64×64である場合、m=4であり、n=1である。
iii. 一例において、CTUのサイズが32×32である場合、m=16であり、n=1である。
iv. 一例において、CTUのサイズが16×16である場合、m=64であり、n=1である。
o. 代替的に、バッファサイズはCTUサイズに対応する。
p.代替的に、このバッファサイズは、仮想パイプラインデータユニット(VPDU)のサイズに対応する。
q. Mおよび/またはNは、エンコーダからデコーダに、例えばVPS/SPS/PPS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ等で信号通知されてもよい。
2. Mおよび/またはNは、規格で規定された異なるプロファイル/レベル/層で異なってもよい。別のMc×Nc画素バッファを使用して、CPR/IBCのためのクロマ参照サンプルを記憶することが提案される。
a. 一例において、4:2:0映像の場合、Mc=M/2およびNc=N/2である。
b. 一例において、4:4:4映像の場合、Mc=MおよびNc=Nである。
c. 一例において、4:2:2映像の場合、Mc=MおよびNc=N/2である。
d. 代替的に、McおよびNcは、MおよびNから独立してもよい。
e. 一例において、クロマバッファは、CbおよびCrに対応する2つのチャネルを含む。
f. 一例において、Mc=Mであり、Nc=Nである。
3. M×Nサンプルバッファを使用してPR/IBCのためにRGB参照サンプルを記憶ことが提案される。
a. 一例において、バッファサイズは64×64である。
b. 一例において、バッファサイズは128×128である。
c. 一例において、バッファサイズは64×128である。
d. 一例において、バッファサイズは128×64である。
e. 代替的に、バッファサイズはCTUサイズに対応する。
f. 代替的に、このバッファサイズは、仮想パイプラインデータユニット(VPDU)のサイズに対応する。
4. バッファは、ループフィルタリングの前に再構成された画素を記憶することができることが提案される。ループフィルタリングは、非ブロック化フィルタ、適応ループフィルタ(ALF)、サンプル適応オフセット(SAO)、クロス成分ALF、または任意の他のフィルタを参照してもよい。
a. 一例において、バッファは、現在のCTUにサンプルを記憶することができる。
b. 一例において、バッファは、現在のCTUの外部にサンプルを記憶することができる。
c. 一例において、バッファは、現在のピクチャの任意の部分からのサンプルを記憶することができる。
d. 一例において、バッファは、他のピクチャからのサンプルを記憶することができる。
5. バッファは、ループフィルタリングの後に再構成された画素を記憶することができることが提案される。ループフィルタリングは、非ブロック化フィルタ、適応ループフィルタ(ALF)、サンプル適応オフセット(SAO)、クロス成分ALF、または任意の他のフィルタを参照してもよい。
a. 一例において、バッファは、現在のCTUにサンプルを記憶することができる。
b. 一例において、バッファは、現在のCTUの外部にサンプルを記憶することができる。
c. 一例において、バッファは、現在のピクチャの任意の部分からのサンプルを記憶することができる。
d. 一例において、バッファは、他のピクチャからのサンプルを記憶することができる。
6. バッファは、ループフィルタリング前およびループフィルタリング後の両方で再構成されたサンプルを記憶することができることが提案される。ループフィルタリングは、非ブロック化フィルタ、適応ループフィルタ(ALF)、サンプル適応オフセット(SAO)、クロス成分ALF、または任意の他のフィルタを参照してもよい。
a. 一例において、バッファは、現在のピクチャからのサンプルと他のピクチャからのサンプルとを、それらのサンプルの可用性に基づいて記憶することができる。
b. 一例において、他のピクチャからの参照サンプルは、ループフィルタリング後の再構成サンプルからのものである。
c. 一例において、他のピクチャからの参照サンプルは、ループフィルタリングの前に再構成されたサンプルからのものである。
7. バッファは、符号化映像データのビット深度とは異なり得る所与のビット深度を有するサンプルを記憶することが提案される。
a. 一例において、再構成バッファ/符号化映像データのビット深度は、バッファに記憶されたIBC参照サンプルのビット深度よりも大きい。
b. 一例において、内部ビット深度が1つの映像シーケンスのための入力ビット深度と異なる場合、例えば(10ビット対8ビット)であっても、IBC参照サンプルは、入力ビット深度に位置合わせされて記憶される。
c. 一例において、ビット深度は再構成バッファのビット深度と同じである。
d. 一例において、ビット深度は、入力画像/映像のビット深度と同じである。
e. 一例において、ビット深度は、予め規定された数と同じである。
f. 一例において、ビット深度は、標準のプロファイルに依存する。
g. 一例において、出力ビット深度/入力ビット深度/内部ビット深度と比較したビット深度またはビット深度の差は、SPS/PPS/シーケンスヘッダ/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/タイルヘッダまたは他の種類の映像データユニットにおいて信号通知されてもよい。
h. 提案された方法は、他の黒丸印で言及された提案されたバッファ定義に適用されてもよく、代替的に、IBCの既存の設計にも適用されてもよい。
i. バッファの各色成分のビット深度は異なってもよい。
8. 所与の値でバッファを初期化することが提案される。
a. 一例において、バッファは所与の値で初期化される。
i. 一例において、所与の値は、入力ビット深度および/または内部ビット深度に依存してもよい。
ii. 一例において、バッファは、中間グレー値で初期化され、例えば、8ビット信号の場合、128が設定され、10ビット信号の場合、512が設定される。
iii. 一例において、ILRが使用される場合、バッファはforwardLUT(m)で初期化される。例m=1<<(Bitdepth-1)。
b. 代替的に、バッファは、SPS/VPS/APS/PPS/シーケンスヘッダ/タイルグループヘッダ/ピクチャヘッダ/tile/CTU/符号化ユニット/VPDU/領域で信号通知される値で初期化される。
c. 一例において、この所与の値は、前に復号化されたピクチャまたはスライスまたはCTUの行またはCTUまたはCUのサンプルから導出されてもよい。
d. この所与の値は、異なる色成分ごとに異なってもよい。
9. 代替的に、前回符号化されたブロックからの復号化された画素を使用してバッファを初期化することが提案される。
a. 一例において、復号化された画素は、インループフィルタリング前の画素である。
b. 一例において、バッファサイズがCTUである場合、バッファは、利用可能である場合、前回の復号化されたCTUの復号化された画素で初期化される。
c. 一例において、バッファサイズが64×64である場合、そのバッファサイズは、利用可能である場合、前回の復号化された64×64ブロックの復号化された画素で初期化される。
d. 代替的に、さらに、前回符号化されたブロックが利用可能でない場合、黒丸印8の方法が適用されてもよい。
10. 1つのブロックがバッファ内の画素を参照として使用するために、このブロックは、バッファ内の位置(x,y),x=0,1,2,...,M-1;y=0,1,2,...,N-1,を使って参照先を示すことができる。
11. 代替的に、この参照位置は、l=y*M+x,l=0,1,...,M*N-1として表すことができる。
12. なお、現在のCTUに関するブロックの左上の位置を(x0,y0)として、ブロックベクトル(BVx,BVy)=(x-x0,y-y0)をデコーダに送信し、バッファにおける参照先を示してもよい。
13. 代替的に、ブロックベクトル(BVx,BVy)は、(x-x0+Tx,y-y0+Ty)として規定されてもよく、TxおよびTyは、予め規定されたオフセットである。
14. 任意の画素(x0,y0)および(BVx,BVy)の場合、バッファにおけるその参照は、(x0+BVx,y0+BVy)に見出すことができる。
a. 一例において、(x0+BVx,y0+BVy)がバッファの外にある場合、それは境界にクリップされる。
b. 代替的に、(x0+BVx,y0+BVy)がバッファの外にある場合、その基準値は、所与の値、例えば、中間グレーとして予め規定される。
c. 代替的に、参照位置は、常にバッファ内にあるように、((x0+BVx)mod M,(y0+BVy)mod N)として規定される。
15. 任意の画素(x0,y0)および(BVx,BVy)に対して、(x0+BVx,y0+BVy)がバッファの外にある場合、その基準値はバッファにおける値から導出されてもよい。
a. 一例において、この値は、バッファにおけるサンプル((x0+BVx)mod M,(y0+BVy)mod N)から導出される。
b. 一例において、この値は、バッファにおけるサンプル((x0+BVx)mod M, clip(y0+BVy,0,N-1))から導出される。
c. 一例において、この値は、バッファにおけるサンプル(clip(x0+BVx,0,M-1),(y0+BVy)mod N)から導出される。
d. 一例において、この値は、バッファにおけるサンプル(clip(x0+BVx,0,M-1),clip(y0+BVy,0,N-1))から導出される。
16. バッファ範囲外の特定の座標を許可しない場合がある。
a. 一例において、CTUの左上隅およびブロックベクトル(BVx,BVy)に対する任意の画素(x0,y0)について、y0+BVyが[0,..,N-1]の範囲内にあるべきであることが、ビットストリーム制約である。
b. 一例において、CTUおよびブロックベクトル(BVx,BVy)の左上隅の任意の画素(x0,y0)に対して、x0+BVxが[0,..,M-1]の範囲内にあるべきであることが、ビットストリーム制約である。
c. 一例において、CTUおよびブロックベクトル(BVx,BVy)の左上隅の任意の画素(x0,y0)に対して、y0+BVyが[0,..,N-1]の範囲内にあるべきであり、且つx0+BVxが[0,..,M-1]の範囲内にあるべきであることが、ビットストリーム制約である。
17. 1つのブロックの信号通知されたまたは導出されたブロックベクトルがバッファの外のどこかを指している場合、バッファに基づいてパディングを行ってもよい。
a. 一例において、バッファの外の任意のサンプルの値は、予め規定された値で規定される。
i. 一例において、この値は、1<(ビット深度-1)であってもよく、例えば、8ビット信号の場合、128であり、10ビット信号の場合、512である。
ii. 一例において、ILRが使用される場合、この値はforwardLUT(m)であってもよい。例m=1<<(Bitdepth-1).
iii. 代替的に、予め規定された値の表示は、SPS/PPS/シーケンスヘッダ/ピクチャヘッダ/スライスヘッダ/タイルグループ/タイル/CTU/CUレベルで信号通知または表示されてもよい。
b. 一例において、バッファの外の任意のサンプルは、バッファにおける最も近いサンプルの値として規定される。
18. バッファ参照からの取り扱い方法は、水平方向と垂直方向とで異なってもよく、または現在のブロックの位置によって(例えば、ピクチャ境界により近いか否か)異なってもよい。
a. 一例において、y0+BVyが[0,N-1]の外にある場合、(x0+BVx,y0+BVy)のサンプル値が予め規定された値として割り当てられる。
b. 一例において、x0+BVxが[0,M-1]の外にある場合、(x0+BVx,y0+BVy)のサンプル値が予め規定された値として割り当てられる。
c. 代替的に、(x0+BVx,y0+BVy)のサンプル値を((x0+BVx)mod M,y0+BVy)のサンプル値として割り当て、これにより、(((x0+BVx)mod M,y0+BVy)がまだバッファの外にある場合には、その値をさらに導出するために他の方法を呼び出してもよい。
d. 代替的に、(x0+BVx,y0+BVy)のサンプル値を(x0+BVx,(y0+BVy)mod N)のサンプル値として割り当て、これにより、(x0+BVx,(y0+BVy)mod N)がまだバッファの外にある場合には、その値をさらに導出するために他の方法を呼び出してもよい。
19. ブロックベクトル(BVx,BVy)の各成分またはその成分の1つを一定の範囲に正規化してもよい。
a. 一例において、BVxは、(BVx mod M)に置き換えられてもよい。
b. 代替的に、BVxは、((BVx+X)mod M)-Xに置き換えられてもよく、Xは、予め規定された値である。
i. 一例において、Xは64。
ii. 一例において、XはM/2。
iii. 一例において、Xは、現在のCTUに対するブロックの水平座標である。
c. 一例において、BVyは、(BVy mod N)に置き換えられてもよい。
d. 代替的に、BVyを((BVy+Y)mod N)-Yで置き換えてもよく、Yは予め規定された値である。
i. 一例において、Yは64。
ii. 一例において、YはN/2。
iii. 一例において、Yは、現在のCTUに対するブロックの垂直座標である。
20. BVxおよびBVyは、異なる正規化範囲を有してもよい。
21. ブロックベクトル差(BVDx,BVDy)を一定の範囲に正規化することができる。
a. 一例において、BVDxは、(BVDx mod M)に置き換えられてもよく、関数modは、リマインダを返す。
b. 代替的に、BVDxは、((BVDx+X)mod M)-Xに置き換えられてもよく、Xは、予め規定された値である。
i. 一例において、Xは64。
ii. 一例において、XはM/2。
c. 一例において、BVyは、(BVDy mod N)に置き換えられてもよい。
d. 代替的に、BVyを((BVDy+Y)mod N)-Yで置き換えてもよく、Yは予め規定された値である。
i. 一例において、Yは64。
ii. 一例において、YはN/2。
22. BVDxおよびBVDyは、異なる正規化範囲を有してもよい。
IBCバッファの幅および高さをWbufおよびHbufとする。ピクチャの左上隅に対して(X,Y)から始まるW×Hブロック(輝度ブロック、クロマブロック、CU、TU、4×4、2×2、または他のサブブロックであってもよい)の場合、ブロックベクトル(BVx、BVy)が有効であるかどうかを示すために、以下を適用してもよい。Wpic、Hpicを1つのピクチャの幅および高さとし、Wctu、Hctuを1つのCTUの幅および高さとする。関数floor(x)は、xより大きくない最大の整数を返す。関数isRec(x,y)は、サンプル(x,y)を再構成した場合、それを返す。
23. いずれかの参照位置がピクチャ境界の外にあっても、ブロックベクトル(BVx,BVy)を有効であるとして設定してもよい。
a. 一例において、ブロックベクトルは、X+BVx<0であっても有効であるとして設定してもよい。
b. 一例において、ブロックベクトルは、X+W+BVx>Wpicであっても、有効であるとして設定してもよい。
c. 一例において、Y+BVy<0であっても、ブロックベクトルを有効であるとして設定してもよい。
d. 一例において、Y+H+BVy>Hpicであっても、ブロックベクトルを有効であるとして設定してもよい。
24. 現在のCTU行の外側に参照位置が存在しても、ブロックベクトル(BVx,BVy)を有効であるとして設定してもよい。
a. 一例において、ブロックベクトルは、Y+BVy<floor(Y/Hctu)*Hctuであっても有効であるとして設定してもよい。
b. 一例において、ブロックベクトルは、Y+H+BVy>=floor(Y/Hctu)*Hctu+Hctuであっても有効であるとして設定してもよい。
25.ブロックベクトル(BVx,BVy)は、いずれかの参照位置が現在のCTUおよび左(n-1)CTUの外にあったとしても、有効であるとして設定してもよく、nは、IBCのための参照領域として使用できるCTU(現在のCTUを含む、または除く)の数である。
a. 一例において、ブロックベクトルは、X+BVx<floor(X/Wctu)*Wctu-(n-1)*Wctuであっても有効であるとして設定してもよい。
b. 一例において、ブロックベクトルは、X+W+BVx>floor(X/Wctu)*Wctu+Wctuであっても、有効であるとして設定してもよい。
26. 特定のサンプルが再構成されていなくても、ブロックベクトル(BVx,BVy)を有効として設定してもよい。
a. 一例において、isRec(X+BVx,Y+BVy)がfalseであっても、ブロックベクトルを有効であるとして設定してもよい。
b. 一例において、isRec(X+BVx+W-1,Y+BVy)がfalseであっても、ブロックベクトルを有効であるとして設定してもよい。
c. 一例において、isRec(X+BVx,Y+BVy+H-1)がfalseであっても、ブロックベクトルを有効であるとして設定してもよい。
d. 一例において、isRec(X+BVx+W-1,Y+BVy+H-1)がfalseであっても、ブロックベクトルを有効であるとして設定してもよい。
27. ブロックベクトル(BVx,BVy)は、1つのブロックがCTU行における第1のCTUのブロックでない場合、常に有効であるとして設定してもよい。
a. 代替的に、ブロックベクトルは、常に有効であるとして設定してもよい。
28. 以下の3つの条件をすべて満たす場合、ブロックベクトル(BVx,BVy)を常に有効であるとして設定してもよい。
・X+BVx>=0
・Y+BVy>=floor(Y/Hctu)
・isRec(X+BVx+W-1,Y+BVy+H-1)==true
a. 代替的に、1つのCTU行における第1のCTUのブロックについて、3つの条件をすべて満たす場合、ブロックベクトルを常に有効であるとして設定してもよい。
29. ブロックベクトル(BVx,BVy)が有効である場合、ブロックのサンプルコピーはブロックベクトルに基づいて行われてもよい。
a. 一例において、サンプル(X,Y)の予測は、((X+BVx)%Wbuf,(Y+BVy)%Hbuf)から得ることができる。
30. 新しいピクチャまたはタイルを符号化するとき、バッファはリセットされてもよい。
a. 「リセット」という用語は、バッファが初期化されることを指すことができる。
b. 用語「リセット」は、バッファ内のすべてのサンプル/画素が所与の値(例えば、0または-1)に設定されることを指すことができる。
31. VPDUの符号化を終えたら、バッファはVPDUの再構成された値で更新されてもよい。
32. CTUの符号化を終えたら、バッファはCTUの再構成された値で更新されてもよい。
a. 一例において、バッファが満杯でない場合、バッファはCTUによってCTUを順次更新することができる。
b. 一例において、バッファが満杯である場合、最も古いCTUに対応するバッファ領域を更新する。
c. 一例において、M=mW、N=H(W、HはCTUのサイズであり、M、Nはバッファサイズである)であり、前回更新された領域が(kW,0)から始まる場合、更新する次の開始位置は、((k+1)W mod M,0)となる。
33. バッファは、各CTU行の最初にリセットされてもよい。
a. 代替的に、バッファは、各CTUの復号化の開始時にリセットされてもよい。
b. 代替的に、バッファは、1つのタイルを復号化する開始時にリセットされてもよい。
c. 代替的に、バッファは、1つのタイルグループ/ピクチャの復号化の開始時にリセットされもよい。
34. (x,y)から始まるブロックの符号化を終えたら、(x,y)から始まるバッファの対応する領域は、ブロックからの再構成によって更新される。
a. 一例において、(x,y)は、CTUの左上隅に対する位置である。
35. ピクチャに対するブロックの符号化を終えたら、バッファの対応する領域は、ブロックからの再構成によって更新される。
a. 一例において、バッファにおける位置(x mod M,y mod N)の値は、ピクチャの左上隅に対する位置(x,y)の再構成された画素値で更新されてもよい。
b. 一例において、バッファにおける位置(x mod M,y mod N)の値は、現在のタイルの左上隅に対する位置(x,y)の再構成された画素値で更新されてもよい。
c. 一例において、バッファにおける位置(x mod M,y mod N)の値は、現在のCTU行の左上隅に対する位置(x,y)の再構成された画素値で更新されてもよい。
d. 一例において、バッファ内の値は、ビット深度整列後の再構成された画素値で更新されてもよい。
36. (x,y)から始まるブロックの符号化を終えたら、(xb,yb)から始まるバッファの対応する領域は、ブロックからの再構成によって更新され、(xb,yb)および(x,y)は2つの異なる座標である。
a. 一例において、(x,y)は、CTUの左上隅に関する位置であり、(xb,yb)は、(x+update_x,y+update_y)であり、update_xおよびupdate_yは、バッファにおける更新可能
37. 上記の例では、1つのブロックの再構成された値は、フィルタ(例えば、非ブロック化フィルタ)を適用する前の再構成された値を示してもよい。
a. 代替的に、1つのブロックの再構成された値は、フィルタ(例えば、非ブロック化フィルタ)が適用された後の再構成された値を示してもよい。
38. バッファが再構成されたサンプルから更新されるとき、再構成されたサンプルは、記憶される前にまず修正されてもよく、例えば、サンプルのビット深度を変更してもよい。
a. 一例において、バッファは、バッファのビット深度へのビット深度整列後、再構成されたサンプル値で更新される。
b. 一例において、バッファ値は、値{p+[1<<(b-1)]}>>bに基づいて更新され、pは、再構成されたサンプル値であり、bは、予め規定されたビットシフト値である。
c. 一例において、バッファ値は、clip({p+[1<<(b-1)]}>>b,0,(1<<bitdepth)-1)の値に基づいて更新され、pは、再構成されたサンプル値であり、bは、予め規定されたビットシフト値であり、ビット深度は、バッファビット深度である。
d. 一例において、バッファ値は、値{p+[1<(b-1)-1]}>bに基づいて更新され、pは、再構成されたサンプル値であり、bは、予め規定されたビットシフト値である。
e. 一例において、バッファ値は、clip({p+[1<<(b-1)-1]}>>b,0,(1<<bitdepth)-1)の値に基づいて更新され、pは、再構成されたサンプル値であり、bは、予め規定されたビットシフト値であり、bitdepthは、バッファビット深度である。
f. 一例において、バッファ値は、値p>>bに基づいて更新される。
g. 一例において、バッファ値は、clip(p>>b,0,(1<<bitdepth)-1)の値に基づいて更新され、bitdepthは、バッファビット深度である。
h. 上記例において、bは、ビット深度から入力サンプルビット深度を引いたものとして再構成されてもよい。
39. バッファサンプルを使用して予測を形成する場合、前処理を適用することができる。
a. 一例において、予測値は、p<<bであり、pは、バッファにおけるサンプル値であり、bは、予め規定された値である。
b. 一例において、予測値は、clip(p<<b,0,1<<bitdepth)であり、bitdepthは、再構成サンプルのビット深度である。
c. 一例において、予測値は、(p<<b)+(1<<(bitdepth-1))であり、pは、バッファにおけるサンプル値であり、bは、予め規定された値であり、bitdepthは、再構成サンプルのビット深度である。
d. 上記例において、bは、ビット深度から入力サンプルビット深度を引いたものとして再構成されてもよい。
40. バッファは所与の順番で更新されてもよい。
a. 一例において、バッファは順次更新されてもよい。
b. 一例において、バッファは、再構成されたブロックの順に基づいて更新されてもよい。
41. バッファが満杯である場合、バッファ内のサンプルを最新の再構成サンプルに置き換えることができる。
a. 一例において、サンプルは、先入れ先出し方式で更新されてもよい。
b. 一例において、最も古いサンプルが置き換えられる。
c. 一例において、サンプルに優先順位を割り当て、この優先順位に基づいてサンプルを置き換えることができる。
d. 一例において、サンプルは、他のサンプルが最初に置き換えられるように、「長期」としてマークされ得る。
e. 一例において、高い優先順位を示すために、1つのブロックとともに1つのフラグを送信することができる。
f. 一例において、優先順位を示すために、1つのブロックとともに1つの数字を送信することができる。
g. 一例において、ある特徴を有する再構成されたブロックからのサンプルは、他のサンプルが最初に置き換えられるように、より高い優先順位を割り当てられる。
i. 一例において、IBCモードで符号化されたサンプルのパーセンテージが閾値よりも大きい場合、ブロックのすべてのサンプルに高い優先順位を割り当てることができる。
ii. 一例において、Paletteモードで符号化されたサンプルのパーセンテージが閾値よりも大きい場合、ブロックのすべてのサンプルに高い優先順位を割り当てることができる。
iii. 一例において、IBCまたはPaletteモードで符号化されたサンプルのパーセンテージが閾値よりも大きい場合、ブロックのすべてのサンプルに高い優先順位を割り当てることができる。
iv. 一例において、変換スキップモードで符号化されたサンプルのパーセンテージが閾値よりも大きい場合、ブロックのすべてのサンプルに高い優先順位を割り当てることができる。
v. この閾値は、ブロックサイズ、色成分、CTUサイズに基づいて異なってもよい。
vi. 閾値は、SPS/PPS/シーケンスヘッダ/スライスヘッダ/タイルグループ/タイルレベル/領域で信号通知されてもよい。
h. 一例において、このバッファが一杯であることは、このバッファにおける利用可能なサンプルの数が所与の閾値に等しいかまたはそれよりも多いことを意味し得る。
i. 一例において、バッファにおける利用可能なサンプルの数が64×64×3輝度サンプル以上である場合、バッファは満杯であると判定されてもよい。
42. 前回符号化された3つの64×64ブロックを常に参照領域として使用する代わりに、現在のブロック(またはVPDU)の位置に基づいてそれを適応的に変更することが提案される。
a. 一例において、64×64ブロックを符号化/復号化するとき、前回の3つの64×64ブロックを参照として使用できる。図2に比べ、前回の64×64個のブロックをより多く組み合わせてもよい。図2は、前の64×64ブロックの異なる組み合わせの例を示す。
43. z走査順序を用いる代わりに、垂直走査順序を使用してもよい。
a. 一例において、1つのブロックがz走査順序にインデックス0..3を有する4つのVPDUに分割される場合、符号化/復号化の順序は、0、2、1、3である。
b. 一例において、64×64個のブロックを符号化/復号化するとき、前回の3つの64×64個のブロックを参照として使用できる。図2と比較して、より多くの種類の64×64ブロックの符号化/復号化の順序を適用することができる。図4は、64×64ブロックの異なる符号化/復号化の順序の例を示す。
c. 代替的に、上記方法は、スクリーンコンテンツの符号化にのみ適用されてもよい。
d. 代替的に、上記方法は、1つのタイル/タイルグループ/ピクチャに対してCPRが有効化される場合にのみ適用されてもよい。
e. 代替的に、上記方法は、1つのCTUまたは1つのCTU行に対してCPRが有効化される場合にのみ適用されてもよい。
以下、輝度サンプルにおいて、VPDUの幅および高さを、それぞれWVPDU(例えば、64)およびHVPDU(例えば、64)と表す。代替的に、WVPDUおよび/またはHVPDUは、他の映像ユニット(例えば、CTU)の幅および/または高さを表してもよい。
44. IBC参照領域の状態を追跡し続けるために、仮想バッファを維持してもよい。
a. 一例において、仮想バッファサイズは、mWVPDU×nHVPDUである。
i. 一例において、mは3に等しく、nは2に等しい。
ii. 一例において、mおよび/またはnは、ピクチャ解像度、CTUサイズに依存してもよい。
iii. 一例において、mおよび/またはnは、信号通知されてもよく、または予め規定されてもよい。
b. 一例において、上記の黒丸印および副黒丸印で記載された方法は、仮想バッファに適用されてもよい。
c. 一例において、ピクチャ/スライス/タイル/ブリックの左上隅に対するサンプル(x,y)は、(x%(mWVPDU),y%(nHVPDU))にマッピングされてもよい。
45. アレイを使用して、仮想バッファに関連付けられた各サンプルの可用性を追跡してもよい。
a. 一例において、フラグは、仮想バッファにおけるサンプルに関連付けて、バッファにおけるサンプルがIBC参照として使用できるか否かを特定してもよい。
b. 一例において、輝度サンプルおよびクロマサンプルを含む各4×4ブロックは、1つのフラグを共有して、そのブロックに関連付けられたいずれかのサンプルがIBC参照として使用できるかどうかを示してもよい。
46. VPDUまたは映像ユニットの復号化を終えた後、仮想バッファに関連付けられた特定のサンプルは、IBC参照に利用不可能なものとしてマークされてもよい。
a. 一例において、どのサンプルが利用不可能であるかは、直近に復号化されたVPDUの位置に依存してもよい。
b. 1つのサンプルが利用不可能とマークされた場合、このサンプルからの予測は許可されない。
i. 代替的に、他の方法(例えば、デフォルト値を使用する)をさらに適用して、予測子を導出し、利用不可能なサンプルを置き換えてもよい。
47. 最近復号化されたVPDUの位置を記録し、仮想バッファに関連付けられたどのサンプルが利用不可能であるとマークされているかを識別しやすくすることができる。
a. 一例において、VPDUを復号化する開始時に、最近復号化されたVPDUの位置に基づいて、仮想バッファに関連付けられたいくつかのサンプルに利用不可能なマークを付けることができる。
i. 一例において、直近に復号化されたVPDUのピクチャ/スライス/タイル/ブリック/他の映像処理ユニットの左上隅に対して(xPrevVPDU,yPrevVPDU)を左上位置として表し、yPrevVPDU%(nHVPDU)が0に等しいと、特定の位置(x,y)は、利用不可能とマークを付けることができる。
1. 一例において、xは、[xPrevVPDU-2WVPDU+2mWVPDU)% mWVPDU,((xPrevVPDU-2WVPDU+2mWVPDU)% mWVPDU)-1+WVPDU]のような範囲内にあってもよい。
2. 一例において、yは、[yPrevVPDU%(nHVPDU),(yPrevVPDU%(nHVPDU))-1+HVPDU]のような範囲内にあってもよい。
3. 一例において、xは、[xPrevVPDU-2WVPDU+2mWVPDU]%mWVPDU、((xPrevVPDU-2WVPDU+2mWVPDU)%mWVPDU、((xPrevVPDU-2WVPDU+2mWVPDU)%mWVPDU)-1+WVPDU]のような範囲内にあってもよく、yは、[yPrevVPDU%(nHVPDU),(yPrevVPDU%(nHVPDU))-1+HVPDU]のような範囲内にあってもよい。
ii. 一例において、直近に復号化されたVPDUのピクチャ/スライス/タイル/ブリック/他の映像処理ユニットの左上隅に対して、(xPrevVPDU,yPrevVPDU)を左上位置として表し、yPrevVPDU%(nHVPDU)が0に等しくない場合、特定の位置(x,y)は、利用不可能とマークを付けることができる。
1. 一例において、xは、[xPrevVPDU-WVPDU+2mWVPDU)% mWVPDU,((xPrevVPDU-WVPDU+2mWVPDU)% mWVPDU)-1+WVPDU]のような範囲内にあってもよい。
2. 一例において、yは、[yPrevVPDU%(nHVPDU),(yPrevVPDU%(nHVPDU))-1+HVPDU]のような範囲内にあってもよい。
3. 一例において、xは、[xPrevVPDU-WVPDU+2mWVPDU)% mWVPDU,((xPrevVPDU-WVPDU+2mWVPDU)% mWVPDU)-1+WVPDU]のような範囲内にあってもよく、yは、[yPrevVPDU%(nHVPDU),(yPrevVPDU%(nHVPDU))-1+HVPDU]のような範囲内にあってもよい。
48. 1つのCUが複数のVPDUを含む場合、VPDUに基づくIBC参照可用性マーキング処理を適用する代わりに、IBC参照可用性マーキング処理は以下のCUに従ってもよい。
a. 一例において、複数のVPDUを含むCUを復号化する開始時に、CU内のVPDUを復号化する前に、各VPDUごとにIBC参照可用性マーキング処理を適用してもよい。
b. このような場合、128×64個のIBCブロックと64×128個のIBCブロックとは許可されないことがある。
i. 一例において、128×64および64×128個のCUのためのpred_mode_ibc_flagは送信されなくてもよく、0に等しいと推測されてもよい。
49. 参照ブロックまたはサブブロックの場合、右上隅の参照可用性ステータスをチェックして、この参照ブロックに関連付けられたブロックベクトルが有効であるかどうかを判断する必要がない場合がある。
a. 一例において、ブロックベクトルが有効であるか否かを判断して、ブロック/サブブロックの左上、左下、右下の角のみをチェックする。
50. IBCバッファサイズは、VPDUのサイズ(幅/高さはvSizeで表される)および/またはCTB/CTUのサイズ(幅/高さはctbSizeで表される)に依存してもよい。
a. 一例において、バッファの高さはctbSizeに等しくてもよい。
b. 一例において、バッファの幅は、min(ctbSize,64)に依存してもよい。
i. 一例において、バッファの幅は、(128*128/vSize,min(ctbSize,64))であってもよい。
51. IBCバッファは、画素範囲外の値を含んでもよく、このことは、この位置がIBC参照に利用可能でない(例えば、他のサンプルの予測に利用されない)可能性があることを示す。
a. サンプル値は、サンプルが利用不可能であることを示す値に設定してもよい。
b. 一例において、この値は、-1であってもよい。
c. 一例において、この値は、[0,1<<(internal_bit_depth)-1]の外側の任意の値であってもよく、internal_bit_depthは正の整数値である。
例えば、internal_bit_depthは、1つの色成分のサンプルを符号化/復号化するために使用される内部ビット深度である。
d. 一例において、この値は、[0, 1<<(input_bit_depth) - 1]の範囲外の任意の値であってもよく、input_bit_depthは正の整数値である。
例えば、input_bit_depthは、1つの色成分のサンプルを符号化/復号化するために使用される入力ビット深度である。
52. IBCバッファにおけるサンプルの可用性マーキングは、現在のブロックの位置、現在のブロックのサイズ、CTU/CTBのサイズ、およびVPDUのサイズに依存してもよい。一例において、(xCb,yCb)は、ピクチャの左上に対するブロックの位置を表し、ctbSizeは、CTU/CTBのサイズ(即ち、幅および/または高さ)であり、vSize=min(ctbSize,64)であり、wIbcBufおよびhIbcBufは、IBCバッファの幅および高さである。
a. 一例において、(xCb%vSize)が0に等しく、(yCb%vSize)が0に等しい場合、IBCバッファにおける特定の位置のセットは、利用不可能とマークを付けることができる。
b. 一例において、現在のブロックのサイズがVPDUのサイズ、即ち、min(ctbSize,64)より小さい場合、利用不可能とマークを付けられた領域は、VPDUのサイズに従ってもよい
c. 一例において、現在のブロックのサイズがVPDUのサイズより大きい場合、即ち、min(ctbSize,64)である場合、利用不可能とマークを付けられた領域は、CUのサイズに従ってもよい。
53. ピクチャの左上位置に対する映像ユニット(例えば、VPDU(xV,yV))の復号化の開始時に、IBCバッファにおける対応する位置は、画素範囲外の値に設定してもよい。
a. 一例において、バッファにおける位置(x%wIbcBuf,y%hIbcBuf)を有し、x=xV、...、xV+ctbSize-1、y=yV、...、yV+ctbSize-1を有するバッファサンプルは、値-1に設定される。wIbcBufおよびhIbcBufは、IBCバッファの幅および高さであり、ctbSizeは、CTU/CTBの幅である。
i. 一例において、hIbcBufはctbSizeに等しくてもよい。
54. ビットストリーム適合性の制約は、IBCバッファにおけるサンプルの値に従ってもよい。
a. 一例において、IBCバッファにおける1つのブロックベクトルに関連付けられた1つの参照ブロックが画素範囲外の値を含む場合、このビットストリームは不正である可能性がある。
55. IBCバッファにおける可用性表示に基づいて、ビットストリーム適合性の制約を設定してもよい。
a. 一例において、IBCバッファにマッピングされたいずれかの参照サンプルが、1つのブロックを符号化/復号化するために利用不可能とマークを付けられた場合には、このビットストリームは不正である可能性がある。
b. 一例において、singletreeが使用される場合、1つのブロックを符号化/復号化するためにIBCバッファにマッピングされたいずれかの輝度参照サンプルが利用不可能とマークを付けられた場合には、このビットストリームは不正である可能性がある。
c. 1つの適合ビットストリームは、IBC符号化ブロックの場合、関連付けられたブロックベクトルがIBCバッファにマッピングされた1つの参照ブロックを指してもよく、1つのブロックを符号化/復号化するためにIBCバッファに位置する各輝度参照サンプルには利用可能なものとしてマークを付けることを満たすことができる(例えば、サンプルの値は、[K0,K1]の範囲内にあり、例えば、K0が0に設定され、K1が(1<<BitDepth-1)に設定され、BitDepthは、内部ビット深度または入力ビット深度である)。
56. ビットストリーム適合性の制約は、分割木のタイプおよび現在のCUの符号化のtreeTypeに依存してもよい。
a. 一例において、dualtreeが高レベル(例えば、スライス/ピクチャ/ブリック/タイル)で許可され、現在の映像ブロック(例えば、CU/PU/CB/PB)がシングルツリーで符号化される場合、ビットストリーム制約は、IBCバッファにマッピングされたすべての成分の位置が利用不可能としてマークされているかどうかをチェックする必要がある場合もある。
b. 一例において、dualtreeがハイレベル(例えば、スライス/ピクチャ/ブリック/タイル)で許可され、現在の輝度映像ブロック(例えば、CU/PU//CB/PB)がデュアルツリーで符号化されている場合には、ビットストリームの制約により、クロマ成分のIBCバッファ内にマッピングされた位置が利用不可能としてマークされているかどうかを無視してもよい。
i. 代替的に、このような場合、ビットストリーム制約は、依然として、IBCバッファにマッピングされたすべての成分の位置が利用不可能としてマークされているかどうかをチェックすることもある。
c. 一例において、シングルツリーが使用される場合、ビットストリーム制約は、IBCバッファにマッピングされたクロマ成分の位置が利用不可能であるか否かを無視することができる。
57. IBCの予測は、再構成よりも低い精度を有していてもよい。
a. 一例において、予測値は、値clip{{p+[1<<(b-1)]}>>b,0,(1<<bitdepth)-1}<<bに基づいており、pは、再構成されたサンプル値であり、bは、予め規定されたビットシフト値であり、bitdepthは、予測サンプルビットのビット深度である。
b. 一例において、予測値は、値clip{{p+[1<<(b-1)-1]}>>b,0,(1<<bitdepth)-1}<<bに基づいており、pは、再構成されたサンプル値であり、bは、予め規定されたビットシフト値である。
c. 一例において、予測値は、値((p>>b)+(1<<(bitdepth-1)))<<bに基づいており、ビット深度は、予測サンプルのビット深度である。
d. 一例において、予測値は、値(clip((p>>b),0,(1<<(bitdepth-b)))+(1<<(bitdepth-1)))<<bに基づいており、ビット深度は、予測サンプルのビット深度である。
e. 一例において、予測値は、ILRが適用されるかどうかに基づいて、異なる方法でクリップされる。
f. 上記例において、bは、ビット深度から入力サンプルビット深度を引いたものとして再構成されてもよい。
g. 一例において、出力ビット深度/入力ビット深度/内部ビット深度と比較したビット深度またはビット深度の差は、SPS/PPS/シーケンスヘッダ/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/タイルヘッダまたは他の種類の映像データユニットにおいて信号通知されてもよい。
58. IBCの予測の一部はより精度が低くてもよく、他の部分は再構成と同じ精度を有する。
a. 一例において、許容される参照領域は、異なる精度(例えば、ビット深度)を有するサンプルを含んでもよい。
b. 一例において、現在の64×64ブロックが復号化されていない他の64×64ブロックからの参照は、精度が低く、現在の64×64ブロックからの参照は、再構成と同じ精度を有する。
c. 一例において、復号化されている現在のCTU以外のCTUからの参照は精度が低く、現在のCTUからの参照は再構成と同じ精度を有する。
d. 一例において、特定の色成分の集まりからの参照は精度が低く、他の色成分からの参照は再構成と同じ精度を有する。
59. CTUのサイズがM×Mであり、参照領域のサイズがnM×nMである場合、参照領域は、CTUの行における最も近い利用可能なn×n CTUである。
a. 一例において、参照領域のサイズが128×128であり、CTUのサイズが64×64である場合、1つのCTU行における最も近い利用可能な4つのCTUをIBC参照に使用できる。
b. 一例において、参照領域のサイズが128×128であり、CTUのサイズが32×32である場合、1つのCTU行における最も近い利用可能な16個のCTUをIBC参照に使用できる。
60. CTUのサイズがMであり、参照領域のサイズがnMである場合、参照領域は、CTUの行/タイルにおける最も近い利用可能なn-1個のCTUである。
a. 一例において、参照領域のサイズが128×128または256×64であり、CTUのサイズが64×64である場合、1つのCTU行における最も近い利用可能な3つのCTUをIBC参照に使用できる。
b. 一例において、参照領域のサイズが128×128または512×32であり、CTUのサイズが32×32である場合、1つのCTU行における最も近い利用可能な15個のCTUをIBC参照に使用できる。
61. CTUのサイズがMである場合、VPDUのサイズはkMであり、参照領域のサイズはnMであり、参照領域はCTUの行/タイルにおける最も近い利用可能なn-k個のCTUである。
a. 一例において、CTUのサイズは64×64であり、VPDUのサイズも64×64であり、参照のサイズは128×128であり、1つのCTUの行における最も近い3つのCTUをIBC参照のために使用できる。
b. 一例において、CTUのサイズは32×32であり、VPDUのサイズは64×64であり、参照のサイズは128×128であり、1つのCTU行における最も近い(16-4)=12個のCTUをIBC参照のために使用できる。
62. IBCを使用して、左上隅が(x,y)であるw×hブロックの場合、参照ブロックをメモリ再利用のための特定の領域から守る制約があり、wおよびhは、現在のブロックの幅および高さである。
a. 一例において、CTUのサイズが128×128であり、(x,y)=(m×64,n×64)である場合、参照ブロックは、((m-2)×64,n×64)から始まる64×64の領域と重複することはできない。
b. 一例において、CTUのサイズが128×128である場合、参照ブロックは、w×hブロックの左上隅が(x-128,y)である場合に重複することはできない。
c. 一例において、CTUのサイズが128×128である場合、(x+BVx,y+BVy)は、左上隅は(x-128,y)であるw*hブロック内に存在することはなく、BVxおよびBVyは、現在のブロックのブロックベクトルを表す。
d. 一例において、CTUのサイズがM×Mであり、IBCバッファサイズがk×M×Mである場合、参照ブロックは、w×hブロックと重複することができず、左上隅は(x-k×M,y)であり、BVxおよびBVyは、現在のブロックのブロックベクトルを表す。
e. 一例において、CTUのサイズがM×Mであり、IBCバッファサイズがk×M×Mである場合、(x+BVx,y+BVy)は、w×hイントラブロック内に存在することはなく、左上隅は(x-k×M,y)であり、BVxおよびBVyは、現在のブロックのブロックベクトルを表す。
63. CTUのサイズがM×Mでなく、参照領域のサイズがnM×nMである場合、参照領域は、CTUの行における最も近い利用可能なn×n-1個のCTUである。
a. 一例において、参照領域のサイズが128×128であり、CTUのサイズが64×64である場合、1つのCTU行における最も近い利用可能な3つのCTUをIBC参照に使用できる。
b. 一例において、参照領域のサイズが128×128であり、CTUのサイズが32×32である場合、1つのCTU行における最も近い利用可能な15個のCTUをIBC参照に使用できる。
64. (2m*64,2n*64)から始まる64×64のブロックのCU、即ち128×128CTUにおける左上の64×64ブロックの場合、そのIBC予測は、((2m-2)*64,2n*64)から始まる64×64ブロック、((2m-1)*64,2n*64)から始まる64×64ブロック、および((2m-1)*64,(2n+1)*64)から始まる64×64ブロック、および現在の64×64ブロックにおける再構成サンプルから行うことができる。
65. ((2m+1)*64、(2n+1)*64)から始まる64×64ブロックのCU、すなわち、128×128CTUにおける右下の64×64ブロックの場合、そのIBC予測は、現在の128×128CTUからであってもよい。
66. ((2m+1)*64,2n*64)から始まる64×64のブロックのCU、即ち128×128CTUにおける右上の64×64ブロックの場合、そのIBC予測は、((2m-1)*64, 2n*64)から始まる64×64ブロック、((2m-1)*64,(2n+1)*64)から始まる64×64ブロック、および(2m*64,2n*64)から始まる64×64ブロック、および現在の64×64ブロックにおける再構成サンプルから行うことができる。
a. 代替的に、(2m*64,(2n+1)*64)から始まる64×64ブロックを再構成した場合、IBC予測は、((2m-1)*64,2n*64)から始まる64×64ブロック、(2m*64,2n*64)から始まる64×64ブロック、(2m*64,(2n+1)*64)から始まる64×64ブロック、および現在の64×64ブロックにおける再構成サンプルから行うことができる。
67. (2m*64,(2n+1)*64)から始まる64×64ブロックのCU、即ち128×128CTUにおける左下の64×64ブロックの場合、そのIBC予測は、((2m-1)*64,(2n+1)*64)から始まる64×64ブロック、(2m*64,2n*64)から始まる64×64ブロック、((2m+1)*64,2n*64)から始まる64×64ブロック、および現在の64×64ブロックにおける再構成サンプルから行うことができる。
a. 代替的に、((2m+1)*64,2n*64)から始まる64×64ブロックを再構成されていない場合、IBC予測は、((2m-1)*64,2n*64)から始まる64×64ブロック、((2m-1)*64,(2n+1)*64)から始まる64×64ブロック、(2m*64,2n*64)から始まる64×64ブロック、および現在の64×64ブロックにおける再構成サンプルから行うことができる。
68. 現在のCUがどの64×64ブロックに属するかに基づいて、参照領域を調整することが提案される。
a. 一例において、(x,y)から始まるCUの場合、(y>>6)&1==0のとき、((x>>6<<6)-128,y>>6<<6)および((x>>6<<6)-64,y>>6<<6)から始まる2つまたは2つ前までの64×64ブロックは、IBCモードによって参照することができる。
b. 一例において、(x,y)から始まるCUの場合、(y>>6)&1==1であるとき、((x>>6<<6)-64,y>>6<<<6)から始まる1つの前の64×64ブロックは、IBCモードによって参照することができる。
69. (x,y)から始まり、ブロックベクトル(BVx,BVy)を有するブロックの場合、isRec(((x+BVx)>>6<<6)+128-(((y+BVy)>>6)&1)*64+(x%64),((y+BVy)>>6<<6)+(y%64))がtrueならば、ブロックベクトルは無効である。
a. 一例において、ブロックは輝度ブロックである。
b. 一例において、このブロックは、4:4:4フォーマットではクロマブロックである。
c. 一例において、このブロックは、輝度成分およびクロマ成分の両方を含む。
70. (x,y)から始まり、ブロックベクトル(BVx,BVy)を有する4:2:0形式のクロマブロックの場合、isRec(((x+BVx)>>5<<5)+64-(((y+BVy)>>5)&1)*32+(x%32),((y+BVy)>>5<<5)+(y%32))がtrueならば、ブロックベクトルは無効である。
71. 成分cのブロックに対してBVが無効であるかどうかの判定は、輝度サンプルのみをチェックする代わりに、成分Xのサンプルの可用性に依存してもよい。
a. (x,y)から始まり、ブロックベクトル(BVx,BVy)を有する成分cのブロックの場合、isRec(c,((x+BVx)>>6<<6)+128-(((y+BVy)>>6)&1)*64+(x%64),((y+BVy)>>6<<6)+(y%64))がtrueであれば、ブロックベクトルは無効として扱ってもよい。
i. 一例において、このブロックは、輝度ブロックである(例えば、cは、輝度成分であるか、またはRGB符号化のためのG成分である)。
ii. 一例において、このブロックは、4:4:4フォーマットのクロマブロックである(例えば、cは、cbまたはcr成分、またはRGB符号化のためのB/R成分である)。
iii. 一例において、例えば、このブロックは、輝度およびクロマ成分の両方を含むなど、輝度およびクロマ成分の両方のためのサンプルの可用性がチェックしてもよい。
b. 成分cの(x,y)から始まり、ブロックベクトル(BVx,BVy)を有する4:2:0形式のクロマブロックの場合、isRec(c,((x+BVx)>>5<<5)+64-(((y+BVy)>>5)&1)*32+(x%32),((y+BVy)>>5<<5)+(y%32))がtrueである場合、ブロックベクトルは、無効として扱ってもよい。
c. 成分cの(x,y)から始まり、ブロックベクトル(BVx,BVy)を有するクロマブロックまたはサブブロックの場合、クロマ成分のためのisRec(c,x+BVx+Chroma_CTU_size,y)がtrueである場合、ブロックベクトルは無効として扱ってもよく、Chroma_CTU_sizeは、クロマ成分のCTUサイズである。
i. 一例において、4:2:0フォーマットの場合、Chroma_CTU_sizeは64であってもよい。
ii. 一例において、クロマサブブロックは、4:2:0フォーマットの2×2ブロックであってもよい。
iii. 一例において、クロマサブブロックは、4:4:4フォーマットの4×4ブロックであってもよい。
iv. 一例において、クロマサブブロックは、輝度成分における最小CUサイズに対応しうる。
1. 代替的に、クロマサブブロックは、クロマ成分の最小CUサイズに対応してもよい。
72. 上述したすべての黒丸印について、参照バッファは複数のM×Mブロック(M=64)を含むと仮定する。しかしながら、これは、参照バッファが複数のN×M個のブロックを含む(例えば、N=128、M=64)等の他の場合にも拡張できる。
73. 上述したすべての黒丸印に対して、参照バッファが現在のブロックと同じブリック/タイル/タイルグループ/スライス内にあるべきであるという、さらなる制限を適用してもよい。
a. 一例において、参照バッファの一部が現在のブリック/タイル/タイルグループ/スライスの外にある場合、IBCの使用は無効にされ得る。IBC関連構文要素の信号通知はスキップしてもよい。
b. 代替的に、参照バッファの一部が現在のブリック/タイル/タイルグループ/スライスの外にある場合、IBCは1つのブロックに対して依然として有効化される可能性があるが、1つのブロックに関連付けられたブロックベクトルは残りの参照バッファのみを指してもよい。
74. IBCの参照領域として、現在のVPDUを除き、利用可能であれば、CTU/CTB行の第1のVPDU行において、K1個の最近符号化VPDUを有し、可能であれば、CTU/CTB行の第2のVPDU行において、K2個の最近符号化VPDUを有することが提案される。
a. 一例において、K1は2に等しく、K2は1に等しい。
b. 一例において、上記方法は、CTU/CTBサイズが128×128であり、VPDUサイズが64×64である場合に適用されてもよい。
c. 一例において、上記方法は、CTU/CTBサイズが64×64であり、VPDUサイズが64×64および/または32×32である場合に適用されてもよい。
d. 一例において、上記方法は、CTU/CTBサイズが32×32であり、VPDUサイズが32×32以下である場合に適用されてもよい。
75. 上述した方法は、異なる段階で適用されてもよい。
a. 一例において、ブロックベクトル(BV)のモジュール演算(例えば、mod b)を、BVの可用性チェック処理において呼び出して、BVが有効であるか否かを判定してもよい。
b. 一例において、ブロックベクトル(BV)のモジュール演算(例えば、mod b)を呼び出して、IBC仮想バッファまたは再構成ピクチャバッファにおける参照サンプルの位置(例えば、現在のサンプルの位置およびBVのモジュール結果に基づいて)を特定してもよい(例えば、インループフィルタリング処理の前)。
1) 1つのVPDU行の復号化の開始時に、バッファのすべての位置が利用不可能とマークされる。(xPrevVPDU,yPrevVPDU)は、(0,0)として設定される。
2) VPDUの第1のCUの復号化開始時に、x=(xPrevVPDU-2WVPDU+2mWVPDU)%(mWVPDU),..,((xPrevVPDU-2WVPDU+2mWVPDU)%(mWVPDU))-1+WVPDU;and y=yPrevVPDU%(nHVPDU),..,(yPrevVPDU%(nHVPDU))-1+HVPDUの場合の位置(x,y)を利用不可能としてマークしてもよい。そして、(xPrevVPDU,yPrevVPDU)を(xCU,yCU)として、即ち、CUのピクチャに対する左上位置に設定する。
3) 1つのCUを復号化した後、x=xCU%(mWVPDU),...,(xCU+CU_width-1)%(mWVPDU)およびy=yCU%(nHVPDU),...,(yCU+CU_height-1)%(nHVPDU)の場合の位置(x,y)は、利用可能としてマークされる。
4)ブロックベクトル(xBV,yBV)を有するIBCCUの場合、x=(xCU+xBV)%(mWVPDU),...,(xCU+xBV+CU_width-1)%(mWVPDU)およびy=(yCU+yBV)%(nHVPDU),...,(yCU+yBV+CU_height-1)%(nHVPDU)の場合の位置(x,y)は、利用不可能としてマークされ、ブロックベクトルは、無効であると考えられる。
1) 1つのVPDU行の復号化の開始時に、バッファのすべての位置が利用不可能とマークされる。(xPrevVPDU,yPrevVPDU)は、(0,0)として設定される。
2) VPDUの第1のCUの復号化の始めに、
a. yPrevVPDU%64が0に等しい場合、x=(xPrevVPDU-128)%192,..,((xPrevVPDU-128)%192)+63;およびy=yPrevVPDU%128,..,(yPrevVPDU%128)+63の位置(x,y)は、利用不可能としてマークされる。そして、(xPrevVPDU,yPrevVPDU)を(xCU,yCU)として、即ち、CUのピクチャに対する左上位置に設定する。
b. そうでない場合、x=(xPrevVPDU-64)%192,..,((xPrevVPDU-64)%192)+63;およびy=yPrevVPDU%128,..,(yPrevVPDU%128)+63の位置(x,y)は、利用不可能としてマークされる。そして、(xPrevVPDU,yPrevVPDU)を(xCU,yCU)として、即ち、CUのピクチャに対する左上位置に設定する。
3) 1つのCUを復号化した後、x=xCU%192,...,(xCU+CU_width-1)%192およびy=yCU%128,...,(yCU+CU_height-1)%128の場合の位置(x,y)は、利用可能としてマークされる。
4) ブロックベクトル(xBV,yBV)を有するIBCCUの場合、x=(xCU+xBV)%192,...,(xCU+xBV+CU_width-1)%192およびy=(yCU+yBV)%128,...,(yCU+yBV+CU_height-1)%128の場合の位置(x,y)は、利用不可能としてマークされ、ブロックベクトルは、無効であると考えられる。
1) 1つのVPDU行の復号化の開始時に、バッファのすべての位置が利用不可能とマークされる。(xPrevVPDU,yPrevVPDU)は、(0,0)として設定される。
2) VPDUの第1のCUの復号化の開始時に、x=(xPrevVPDU-Wbuf*S)%S,..,((xPrevVPDU-Wbuf*S)%S)+S-1;andy=yPrevVPDU%S,..,(yPrevVPDU%S)+S-1の場合の位置(x,y)は、利用不可能であるとマークされる。そして、(xPrevVPDU,yPrevVPDU)を(xCU,yCU)として、即ち、CUのピクチャに対する左上位置に設定する。
3) 1つのCUを復号化した後、x=xCU%(Wbuf),...,(xCU+CU_width-1)%(Wbuf)およびy=yCU%S,...,(yCU+CU_height-1)%Sである場合の位置(x,y)は、利用可能としてマークされる。
4) ブロックベクトル(xBV,yBV)を有するIBCCUの場合、x=(xCU+xBV)%(Wbuf),...,(xCU+xBV+CU_width-1)%(Wbuf)およびy=(yCU+yBV)%S,...,(yCU+yBV+CU_height-1)%Sの場合の位置(x,y)は、利用不可能としてマークされ、ブロックベクトルは、無効であると考えられる。
1) 1つのVPDU行の復号化の開始時に、バッファのすべての位置が利用不可能とマークされる。(xPrevVPDU,yPrevVPDU)は、(0,0)として設定される。
2) VPDUの第1のCUの復号化の始めに、
a. yPrevVPDU%64が0に等しい場合、x=(xPrevVPDU-128)%256,..,((xPrevVPDU-128)%256)+63;およびy=yPrevVPDU%128,..,(yPrevVPDU%128)+63の位置(x,y)は、利用不可能としてマークされる。そして、(xPrevVPDU,yPrevVPDU)を(xCU,yCU)として、即ち、CUのピクチャに対する左上位置に設定する。
b. そうでない場合、x=(xPrevVPDU-64)%256,..,((xPrevVPDU-64)%256)+63;およびy=yPrevVPDU%128,..,(yPrevVPDU%128)+63の位置(x,y)は、利用不可能としてマークされる。そして、(xPrevVPDU,yPrevVPDU)を(xCU,yCU)として、即ち、CUのピクチャに対する左上位置に設定する。
3) 1つのCUを復号化した後、x=xCU%256,...,(xCU+CU_width-1)%256およびy=yCU%128,...,(yCU+CU_height-1)%128の場合の位置(x,y)は、利用可能としてマークされる。
4) ブロックベクトル(xBV,yBV)を有するIBCCUの場合、x=(xCU+xBV)%256,...,(xCU+xBV+CU_width-1)%256およびy=(yCU+yBV)%128,...,(yCU+yBV+CU_height-1)%128の場合の位置(x,y)は、利用不可能としてマークされ、ブロックベクトルは、無効であると考えられる。
...
8.6.3.2項のブロックベクトルmvLでブロックベクトル妥当性検査処理が呼び出される時に、isBVvalidがtrueであることが、ビットストリーム共同性能の要件である。
...
- 現在のピクチャの左上の輝度サンプルに対する現在の符号化ブロックの左上のサンプルを規定する輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight、
- 水平および垂直方向の輝度符号化サブブロックの数を規定する変数numSbXおよびnumSbY、
- 動きベクトルmv[xSbIdx][ySbIdx]withxSbIdx=0..numSbX-1、およびySbIdx=0..numSbY-1、
- 現在のブロックの色成分インデックスを規定する変数cIdx。
- a (nIbcBufW)×(ctbSize)array ibcBuf
...
- 現在のピクチャの左上の輝度サンプルに対する現在の符号化サブブロックの左上のサンプルを規定する輝度位置(xSb,ySb)は、以下のように導出される。
(xSb,ySb)=(xCb+xSbIdx*sbWidth,yCb+ySbIdx*sbHeight) (8-913)
cIdxが0に等しい場合、nIbcBufWをibcBufferWidthに設定し、そうでない場合、nIbcBufWを(ibcBufferWidth/SubWidthC)に設定する。以下のことが適用される。
predSamples[xSb+x][ySb+y]=ibcBuf[(xSb+x+(mv[xSb][ySb][0]>>4))% nIbcRefW][ySb+y+(mv[xSb][ySb][1]>>4)]with x=0..sbWidth-1 and y=0..sbHeight-1.
...
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の符号化ブロックの左上のサンプルを規定する輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight、
- 水平および垂直方向の輝度符号化サブブロックの数を規定する変数numSbXおよびnumSbY、
- xSbIdx=0..numSbX-1、およびySbIdx=0..numSbY-1の場合のブロックベクトルmv[xSbIdx][ySbIdx]、
- 現在のブロックの色成分インデックスを規定する変数cIdx、
- a(nIbcBufW)x(ctbSize)array ibcBuf
この処理の出力は、ブロックベクトルが有効であるかどうかを示すためのフラグisBVvalidである。
以下が適用される
1. isBVvalidはtrueに等しくなるように設定される。
2. ((yCb &(ctbSize-1)+mv[0][0][1]+cbHeight)>ctbSizeの場合、isBVvalidはfalseに等しく設定される。
3. そうでない場合、xSbIdx=0..numSbX-1,およびySbIdx=0..numSbY-1である各サブブロックインデックスxSbIdx,ySbIdxに対しては、ibcBufの左上の輝度サンプルに対するその位置を導出する。
xTL=(xCb+xSbIdx*sbWidth+mv[xSbIdx][ySbIdx][0])&(nIbcBufW-1)
yTL=(yCb&(ctbSize-1))+ySbIdx * sbHeight+mv[xSbIdx][ySbIdx][1]
xBR=(xCb+xSbIdx * sbWidth+sbWidth-1+mv[xSbIdx][ySbIdx][0])&(nIbcBufW-1)
yBR=(yCb &(ctbSize-1))+ySbIdx * sbHeight+sbHeight-1+mv[xSbIdx][ySbIdx][1]
もし(isDecoded[xTL>>2][yTL>>2]==0)あるいは(isDecoded[xBR>>2][yTL>>2]==0)あるいは(isDecoded[xBR>>2][yBR>>2]==0)であれば、isBVvalidはfalseに等しいと設定される。
- 現在のピクチャ成分の左上のサンプルに対する現在のブロックの左上のサンプルを規定する位置(xCurr,yCurr)、
- 現在のブロックの幅および高さをそれぞれ規定する変数nCurrSwおよびnCurrSh、
- 現在のブロックの色成分を規定する変数cIdx、
- 現在のブロックの予測サンプルを規定するan(nCurrSw)×(nCurrSh) array predSamples、
- 現在のブロックの残差サンプル規定するan(nCurrSw)×(nCurrSh) array 。
- 再構成されたピクチャサンプルアレイrecSamples。
- IBC参照アレイibcBuf
...
nIbcBufWはibcBufの幅であることを示し,以下が適用される。
ibcBuf[(xCurr+i)&(nIbcBufW-1)][(yCurr+j)&(ctbSize-1)]=recSamples[xCurr+i][yCurr+j]
with i=0..nCurrSw-1,j=0..nCurrSh-1.
- IsInSmr[x0][y0]is equal to TRUE.
- SmrX[x0][y0]is equal to x0.
- SmrY[x0][y0]is equal to y0.
CbPosX[x][y]=x0 (7-135)
CbPosY[x][y]=y0 (7-136)
CbWidth[x][y]=cbWidth (7-137)
CbHeight[x][y]=cbHeight (7-138)
vSizeをmin(ctbSize,64)、wIbcBufを(128*128/ctbSize)とする。ibcBufの幅および高さは、wIbcBufおよびctbSizeに従う。
refresHIbcBufが1に等しい場合、以下が適用される。
-ibcBuf[x % wIbcBuf][y % ctbSize]=-1,for x=x0..x0+wIbcBuf-1 and y=y0..y0+ctbSize-1
-resetIbcBuf=0
(x0 % vSize)が0に等しく、かつ、(y0 % vSize)が0に等しいとき,但しx=x0..x0+vSize-1 であって y=y0..y0+vSize -1であるが,以下が適用される。
ibcBuf[x % wIbcBuf][y % ctbSize]=-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の範囲に含まれる。
輝度ブロックベクトルmvLが以下の制約に従うべきであることは、ビットストリーム適合性の要件である。
-(((yCb+(mvL[1]>4))% wIbcBuf)+cbHeightがctbSize以下である。
-x=xCb..xCb+cbWidth-1およびy=yCb..yCb+cbHeight-1の場合、ibcBuf[(x+(mvL[0]>>4))% wIbcBuf][(y+(mvL[1]>>4))% ctbSize]は-1に等しくならない。
- 現在のピクチャ成分の左上のサンプルに対する現在のブロックの左上のサンプルを規定する位置(xCurr,yCurr)、
- 現在のブロックの幅および高さをそれぞれ規定する変数nCurrSwおよびnCurrSh、
- 現在のブロックの色成分を規定する変数cIdx、
- 現在のブロックの予測サンプルを規定するan(nCurrSw)×(nCurrSh)array predSamples、
- 現在のブロックの残差サンプル規定するan(nCurrSw)×(nCurrSh)array。
- cIdxが0に等しい場合、recSamplesは再構成ピクチャサンプルアレイSLに対応し、関数clipCidx1はClip1Yに対応する。
- そうでない場合、cIdxが1に等しければ、tuCbfChromaはtu_cbf_cb[xCurr][yCurr]に等しく設定され、recSamplesは再構成されたクロマサンプル配列SCbに対応し、関数clipCidx1はClip1Cに対応する。
- そうでない場合(cIdxが2に等しい)、tuCbfChromaをtu_cbf_cr[xCurr][yCurr]に等しく設定し、recSamplesは再構成されたクロマサンプル配列SCrに対応し、関数clipCidx1はClip1Cに対応する。
- slice_lmcs_enabled_flagが0に等しい場合、位置(xCurr,yCurr)における再構成サンプルrecSamplesの(nCurrSw)×(nCurrSh)ブロックは、i=0..nCurrSw-1,j=0..nCurrSh-1に対しては下記のように導出する。
recSamples[xCurr+i][yCurr+j]=clipCidx1(predSamples[i][j]+resSamples[i][j]) (8-992)
- そうでない場合(slice_lmcs_enabled_flagが1に等しい)、以下が適用される。
- cIdxが0に等しい場合、以下が適用される。
- 8.7.5.2項で規定されるような輝度サンプルのマッピング処理を伴うピクチャ再構成は、輝度位置(xCurr,yCurr)、ブロック幅nCurrSwおよび高さnCurrSh、予測輝度サンプル配列preSamples、および残差輝度サンプル配列resSamplesを入力として呼び出され、出力は再構成輝度サンプル配列reCamplesとなる。
-それ以外の場合(cIdxが0より大きい場合)は,8.7.5.3項で規定されているクロマサンプルの輝度依存クロマ残差スケーリング処理によるピクチャ再構成が、クロマの位置(xCurr,yCurr)、変換ブロックの幅nCurrSwおよび高さnCurrSh、現在のクロマ変換ブロックの符号化ブロックフラグtuCbfChroma、予測クロマサンプル配列 predSamples、残差クロマサンプル配列resSamplesを入力として呼び出され、再構成されたクロマサンプル配列recSamplesを出力とする。
現在の符号化ユニットを復号化した後、以下が適用される。
ibcBuf[(xCurr+i)% wIbcBuf][(yCurr+j)% ctbSize]
=recSamples[xCurr+i][yCurr+j]
for i=0..nCurrSw-1,j=0..nCurrSh-1.
- IsInSmr[x0][y0]is equal to TRUE.
- SmrX[x0][y0]is equal to x0.
- SmrY[x0][y0]is equal to y0.
CbPosX[x][y]=x0 (7-135)
CbPosY[x][y]=y0 (7-136)
CbWidth[x][y]=cbWidth (7-137)
CbHeight[x][y]=cbHeight (7-138)
vSizeをmin(ctbSize,64)に、wIbcBufYを(128*128/CtbSizeY)に設定する。
ibcBufLは、幅がwIbcBufYであり、高さがCtbSizeYである配列である。
ibcBufCbおよびibcBufCrは、幅がwIbcBufC=(wIbcBufY/SubWidthC)であり、高さが(CtbSizeY/SubHeightC)であるアレイ、すなわちCtbSizeCである。
resetIbcBufが1に等しい場合、以下が適用される。
- ibcBufL[x % wIbcBufY][y % CtbSizeY]=-1,for x=x0..x0+wIbcBufY-1 and y=y0..y0+CtbSizeY-1
- ibcBufCb[x % wIbcBufC][y % CtbSizeC]=-1,for x=x0..x0+wIbcBufC-1 and y=y0..y0+CtbSizeC -1
- ibcBufCr[x % wIbcBufC][ y % CtbSizeC ]=-1,for x=x0..x0+wIbcBufC-1 and y=y0..y0+CtbSizeC-1
- resetIbcBuf=0
(x0 % vSizeY)が0と等しく、(y0 % vSizeY)が0と等しい場合、以下が適用される。
- ibcBufL[x % wIbcBufY][y% CtbSizeY]=-1,for x=x0..x0+vSize -1 and y=y0..y0+vSize -1
- ibcBufCb[ x % wIbcBufC][y % CtbSizeC]=-1,for x=x0/SubWidthC..x0/SubWidthC+vSize/ SubWidthC-1 and y=y0/SubHeightC..y0/SubHeightC+vSize/SubHeightC-1
- ibcBufCr[ x % wIbcBufC][y % CtbSizeC]=-1,for x=x0/SubWidthC..x0/SubWidthC+vSize/SubWidthC-1 and y=y0/SubHeightC..y0/SubHeightC+vSize/SubHeightC-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の範囲に含まれる。
8.6.2.5項は、mvLを入力として、mvCを出力として呼び出される。
輝度ブロックベクトルmvLが以下の制約に従うべきであることは、ビットストリーム適合性の要件である。
- (((yCb+(mvL[1]>4))% CtbSizeY)+cbHeightがCtbSizeY以下である。
- x=xCb..xCb+cbWidth-1およびy=yCb..yCb+cbHeight-1の場合、ibcBufL[(x+(mvL[0]>>4))% wIbcBufY][(y+(mvL[1]>>4))% CtbSizeY]は、-1に等しくはならない。
- treeType がSINGLE_TREEに等しい場合、x=xCb..xCb+cbWidth-1およびy=yCb..yCb+cbHeight-1に対しては、,ibcBufCb[(x+(mvC[0]>5))% wIbcBufC][(y+(mvC[1]>>5))% CtbSizeC]]は、-1に等しくはならない。
- 現在のピクチャの左上の輝度サンプルに対する現在の符号化ブロックの左上のサンプルを規定する輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight、
- 現在のブロックの色成分インデックス、
- 動きベクトルmv、
- an(wIbcBufY)×(CtbSizeY)array ibcBufL,an(wIbcBufC)×(CtbSizeC)array ibcBufCb, an(wIbcBufC)×(CtbSizeC)array ibcBufCr。
- 予測サンプルの配列predSamples。
x=xCb..xCb+Width-1およびy=yCb..yCb+Height-1の場合、以下が適用される
cIdxが0に等しい場合
predSamples[x][y]=ibcBufL[(x+mv[0]>>4))% wIbcBufY][(y+(mv[1]>>4))% CtbSizeY]
cIdxが1に等しい場合
predSamples[x][y]=ibcBufCb[(x+mv[0]>>5))% wIbcBufC][(y+(mv[1]>>5))% CtbSizeC]
cIdxが2に等しい場合
predSamples[x][y]=ibcBufCr[(x+mv[0]>>5))% wIbcBufC][(y+(mv[1]>>5))% CtbSizeC]
- 現在のピクチャ成分の左上のサンプルに対する現在のブロックの左上のサンプルを規定する位置(xCurr,yCurr)、
- 現在のブロックの幅および高さをそれぞれ規定する変数nCurrSwおよびnCurrSh、
- 現在のブロックの色成分を規定する変数cIdx、
- 現在のブロックの予測サンプルを規定するan(nCurrSw)×(nCurrSh)array predSamples、
- 現在のブロックの残差サンプル規定するan(nCurrSw)×(nCurrSh)array。
- cIdxが0に等しい場合、recSamplesは再構成ピクチャサンプルアレイSLに対応し、関数clipCidx1はClip1Yに対応する。
- そうでない場合、cIdxが1に等しければ、tuCbfChromaはtu_cbf_cb[xCurr][yCurr]に等しく設定され、recSamplesは再構成されたクロマサンプル配列SCbに対応し、関数clipCidx1はClip1Cに対応する。
- そうでない場合、(cIdxが2に等しければ、tuCbfChromaはtu_cbf_cb[xCurr][yCurr]に等しく設定され、recSamplesは再構成されたクロマサンプル配列SCbに対応し、関数clipCidx1はClip1Cに対応する。
- slice_lmcs_enabled_flagが0に等しい場合、位置(xCurr,yCurr)における再構成サンプルrecSamplesの(nCurrSw)x(nCurrSh)ブロックは、i=0..nCurrSw-1,j=0..nCurrSh-1に対しては下記のように導出する。
recSamples[xCurr+i][yCurr+j]=clipCidx1(predSamples[i][j]+resSamples[i][j]) (8-992)
- そうでない場合(slice_lmcs_enabled_flagが1に等しい)、以下が適用される。
- cIdxが0に等しい場合、以下が適用される。
- 8.7.5.2項で規定されるような輝度サンプルのマッピング処理を伴うピクチャ再構成は、輝度位置(xCurr,yCurr)、ブロック幅nCurrSwおよび高さnCurrSh、予測輝度サンプル配列preSamples、および残差輝度サンプル配列resSamplesを入力として呼び出され、出力は再構成輝度サンプル配列reCamplesとなる。
- それ以外の場合(cIdxが0より大きい場合)は,8.7.5.3項で規定されているクロマサンプルの輝度依存クロマ残差スケーリング処理によるピクチャ再構成が、クロマの位置(xCurr,yCurr)、変換ブロックの幅nCurrSwおよび高さnCurrSh、現在のクロマ変換ブロックの符号化ブロックフラグtuCbfChroma、予測クロマサンプル配列predSamples、残差クロマサンプル配列resSamplesを入力として呼び出され、再構成されたクロマサンプル配列recSamplesを出力とする。
現在の符号化ユニットを復号化した後、以下を適用することができる。
cIdxが0に等しく、treeTypeがSINGLE_TREEまたはDUAL_TREE_LUMAに等しい場合、以下が適用される。
ibcBufL[(xCurr+i)% wIbcBufY][(yCurr+j)% CtbSizeY]=recSamples[xCurr+i][yCurr+j]
for i=0..nCurrSw-1, j=0..nCurrSh-1.
cIdxが1に等しく、treeTypeがSINGLE_TREEまたはDUAL_TREE_CHROMAに等しい場合、以下が適用される。
ibcBufCb[(xCurr+i)% wIbcBufC][(yCurr+j)% CtbSizeC]=recSamples[xCurr+i][yCurr+j]
for i=0..nCurrSw-1, j=0..nCurrSh-1.
cIdxが2に等しく、treeTypeがSINGLE_TREEまたはDUAL_TREE_CHROMAに等しい場合、以下が適用される。
ibcBufCr[(xCurr+i)% wIbcBufC][(yCurr+j)% CtbSizeC]=recSamples[xCurr+i][yCurr+j]
for i=0..nCurrSw-1, j=0..nCurrSh-1.
- IsInSmr[x0][y0]is equal to TRUE.
- SmrX[x0][y0]is equal to x0.
- SmrY[x0][y0]is equal to y0.
CbPosX[x][y]=x0 (7-135)
CbPosY[x][y]=y0 (7-136)
CbWidth[x][y]=cbWidth (7-137)
CbHeight[x][y]=cbHeight (7-138)
vSizeをmin(ctbSize,64)に、wIbcBufYを(128*128/CtbSizeY)に設定する。
ibcBufLは、幅がwIbcBufYであり、高さがCtbSizeYである配列である。
ibcBufCbおよびibcBufCrは、幅がwIbcBufC=(wIbcBufY/SubWidthC)であり、高さが(CtbSizeY/SubHeightC)であるアレイ、すなわちCtbSizeCである。
resetIbcBufが1に等しい場合、以下が適用される。
- ibcBufL[x % wIbcBufY][y % CtbSizeY]=-1,for x=x0..x0+wIbcBufY-1 and y=y0..y0+CtbSizeY-1
- ibcBufCb[x % wIbcBufC][y % CtbSizeC]=-1,for x=x0..x0+wIbcBufC-1 and y=y0..y0+CtbSizeC-1
- ibcBufCr[x % wIbcBufC][y % CtbSizeC]=-1,for x=x0..x0+wIbcBufC-1 and y=y0..y0+CtbSizeC-1
- resetIbcBuf=0
(x0 % vSizeY)が0と等しく、(y0 % vSizeY)が0と等しい場合、以下が適用される。
- ibcBufL[ x % wIbcBufY][y % CtbSizeY]=-1,for x=x0..x0+min(vSize,cbWidth)-1 and y=y0..y0+min(vSize, cbHeight)-1
- ibcBufCb[ x % wIbcBufC][y % CtbSizeC]=-1,for x=x0/SubWidthC..x0/SubWidthC+min(vSize/SubWidthC,cbWidth)-1 and y=y0/SubHeightC..y0/SubHeightC+min(vSize/SubHeightC,cbHeight)-1
- ibcBufCr[ x % wIbcBufC][y % CtbSizeC]=-1,for x=x0/SubWidthC..x0/SubWidthC+min(vSize/SubWidthC,cbWidth)-1 and y=y0/SubHeightC..y0/SubHeightC+min(vSize/SubHeightC,cbHeight)-1
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
- 1/16分数サンプル精度mvLにおける輝度動きベクトル。
- 8.6.2.2項で規定されたIBC輝度動きベクトル予測の導出処理は、輝度位置(xCb,yCb)、変数cbWidthおよびcbHeightを入力として呼び出され、その出力は輝度動きベクトルmvLである。
- general_merge_flag[xCb][yCb]が0の場合、以下が適用される
7. 変数mvdは、以下のように導出される。
mvd[0]=MvdL0[xCb][yCb][0] (8-883)
mvd[1]=MvdL0[xCb][yCb][1] (8-884)
8. 8.5.2.14項で規定されるような動きベクトルの丸め処理は、mvLに等しく設定されたmvXセット、MvShift+2に等しく設定されたrightShiftセット、MvShift+2に等しく設定されたleftShiftセットを入力として呼び出され、丸められたmvLが出力となる。
9. 輝度動きベクトル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の範囲に含まれる。
8.6.2.5項は、mvLを入力として、mvCを出力として呼び出される。
輝度ブロックベクトルmvLが以下の制約に従うべきであることは、ビットストリーム適合性の要件である。
- (((yCb+(mvL[1]>4))% CtbSizeY)+cbHeightがCtbSizeY以下である。
- x=xCb..xCb+cbWidth-1およびy=yCb..yCb+cbHeight-1の場合、ibcBufL[(x+(mvL[0]>>4))% wIbcBufY][(y+(mvL[1]>>4))% CtbSizeY]は、-1に等しくはならない。
- treeTypeがSINGLE_TREEに等しい場合、x=xCb..xCb+cbWidth-1およびy=yCb..yCb+cbHeight-1に対しては、ibcBufCb[(x+(mvC[0]>5))%wIbcBufC][(y+(mvC[1]>>5))%CtbSizeC]]は、-1に等しくはならない。
- 現在のピクチャの左上の輝度サンプルに対する現在の符号化ブロックの左上のサンプルを規定する輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight、
- 現在のブロックの色成分インデックスを規定する変数cIdx、
- ・動きベクトルmv、
- an(wIbcBufY)x(CtbSizeY)array ibcBufL,an(wIbcBufC)x(CtbSizeC)array ibcBufCb, an(wIbcBufC)x(CtbSizeC)array ibcBufCr.
この処理の出力は以下の通りである。
- 予測サンプルの配列predSamples
x=xCb..xCb+Width-1およびy=yCb..yCb+Height-1,の場合、以下が適用される
cIdxが0に等しい場合predSamples[x][y]=ibcBufL[(x+mv[0]>>4))% wIbcBufY][(y+(mv[1]>>4))% CtbSizeY]
cIdxが1に等しい場合predSamples[x][y]=ibcBufCb[(x+mv[0]>>5))% wIbcBufC][(y+(mv[1]>>5))% CtbSizeC]
cIdxが2に等しい場合
predSamples[x][y]=ibcBufCr[(x+mv[0]>>5))% wIbcBufC][(y+(mv[1]>>5))% CtbSizeC]
- 現在のピクチャ成分の左上のサンプルに対する現在のブロックの左上のサンプルを規定する位置(xCurr,yCurr)、
- 現在のブロックの幅および高さをそれぞれ規定する変数nCurrSwおよびnCurrSh、
- 現在のブロックの色成分を規定する変数cIdx、
- 現在のブロックの予測サンプルを規定するan(nCurrSw)×(nCurrSh)array predSamples、
- 現在のブロックの残差サンプル規定するan(nCurrSw)×(nCurrSh)array。
- cIdxが0に等しい場合、recSamplesは再構成ピクチャサンプルアレイSLに対応し、関数clipCidx1はClip1Yに対応する。
- そうでない場合、cIdxが1に等しければ、tuCbfChromaはtu_cbf_cb[xCurr][yCurr]に等しく設定され、recSamplesは再構成されたクロマサンプル配列SCbに対応し、関数clipCidx1はClip1Cに対応する。
- そうでない場合、(cIdxが2に等しければ、tuCbfChromaはtu_cbf_cb[xCurr][yCurr]に等しく設定され、recSamplesは再構成されたクロマサンプル配列SCrに対応し、関数clipCidx1はClip1Cに対応する。
-slice_lmcs_enabled_flagが0に等しい場合、位置(xCurr,yCurr)における再構成サンプルrecSamplesの(nCurrSw)×(nCurrSh)ブロックは、i=0..nCurrSw-1,j=0..nCurrSh-1に対しては下記のように導出する。
recSamples[xCurr+i][yCurr+j]=clipCidx1(predSamples[i][j]+resSamples[i][j]) (8-992)
- そうでない場合(slice_lmcs_enabled_flagが1に等しい)、以下が適用される。
- cIdxが0に等しい場合、以下が適用される。
- 8.7.5.2項で規定されるような輝度サンプルのマッピング処理を伴うピクチャ再構成は、輝度位置(xCurr,yCurr)、ブロック幅nCurrSwおよび高さnCurrSh、予測輝度サンプル配列preSamples、および残差輝度サンプル配列resSamplesを入力として呼び出され、出力は再構成輝度サンプル配列reCamplesとなる。
それ以外の場合(cIdxが0より大きい場合)は,8.7.5.3項で規定されているクロマサンプルの輝度依存クロマ残差スケーリング処理によるピクチャ再構成が、クロマの位置(xCurr,yCurr)、変換ブロックの幅nCurrSwおよび高さnCurrSh、現在のクロマ変換ブロックの符号化ブロックフラグtuCbfChroma、予測クロマサンプル配列 predSamples、残差クロマサンプル配列resSamplesを入力として呼び出され、再構成されたクロマサンプル配列recSamplesを出力とする。
現在の符号化ユニットを復号化した後、以下を適用することができる。
cIdxが0に等しく、treeTypeがSINGLE_TREEまたはDUAL_TREE_LUMAに等しい場合、以下が適用される。
ibcBufL[(xCurr+i)% wIbcBufY][(yCurr+j)% CtbSizeY]=recSamples[xCurr+i][yCurr+j]
for i=0..nCurrSw-1,j=0..nCurrSh-1.
cIdxが1に等しく、treeTypeがSINGLE_TREEまたはDUAL_TREE_CHROMAに等しい場合、以下が適用される。
ibcBufCb[(xCurr+i)% wIbcBufC][(yCurr+j)% CtbSizeC]=recSamples[xCurr+i][yCurr+j]
for i=0..nCurrSw-1, j=0..nCurrSh-1.
cIdxが2に等しく、treeTypeがSINGLE_TREEまたはDUAL_TREE_CHROMAに等しい場合、以下が適用される。
ibcBufCr[(xCurr+i)% wIbcBufC][(yCurr+j)% CtbSizeC]=recSamples[xCurr+i][yCurr+j]
for i=0..nCurrSw-1,j=0..nCurrSh-1.
- IsInSmr[x0][y0] is equal to TRUE.
- SmrX[x0][y0] is equal to x0.
- SmrY[x0][y0] is equal to y0.
CbPosX[x][y]=x0 (7-135)
CbPosY[x][y]=y0 (7-136)
CbWidth[x][y]=cbWidth (7-137)
CbHeight[x][y]=cbHeight (7-138)
vSizeをmin(ctbSize,64)に、wIbcBufYを(128*128/CtbSizeY)に設定する。
ibcBufLは、幅がwIbcBufYであり、高さがCtbSizeYである配列である。
ibcBufCbおよびibcBufCrは、幅がwIbcBufC=(wIbcBufY/SubWidthC)であり、高さが(CtbSizeY/SubHeightC)であるアレイ、すなわちCtbSizeCである。
resetIbcBufが1に等しい場合、以下が適用される。
- ibcBufL[x%wIbcBufY][y % CtbSizeY]=-1,for x=x0..x0+wIbcBufY-1 and y=y0..y0+CtbSizeY-1
- ibcBufCb[x % wIbcBufC][y % CtbSizeC]=-1,for x=x0..x0+wIbcBufC-1 and y=y0..y0+CtbSizeC-1
- ibcBufCr[x % wIbcBufC][y % CtbSizeC]=-1,for x=x0..x0+wIbcBufC-1 and y=y0..y0+CtbSizeC-1
- resetIbcBuf=0
(x0 % vSizeY)が0と等しく、(y0 % vSizeY)が0と等しい場合、以下が適用される。
- ibcBufL[x % wIbcBufY][y % CtbSizeY]=-1,for x=x0..x0+max(vSize,cbWidth)-1 and y=y0..y0+max(vSize,cbHeight)-1
- ibcBufCb[x % wIbcBufC][y % CtbSizeC]=-1,for x=x0/SubWidthC..x0/SubWidthC+max(vSize/SubWidthC,cbWidth)-1 and y=y0/SubHeightC..y0/SubHeightC+max(vSize/SubHeightC,cbHeight)-1
- ibcBufCr[x % wIbcBufC][y % CtbSizeC]=-1,for x=x0/SubWidthC..x0/SubWidthC+max(vSize/SubWidthC,cbWidth)-1 and y=y0/SubHeightC..y0/SubHeightC+max(vSize/SubHeightC,cbHeight)-1
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
- 1/16分数サンプル精度mvLにおける輝度動きベクトル。
- 8.6.2.2項で規定されたIBC輝度動きベクトル予測の導出処理は、輝度位置(xCb,yCb)、変数cbWidthおよびcbHeightを入力として呼び出され、その出力は輝度動きベクトルmvLである。
- general_merge_flag[xCb][yCb]が0と等しい場合、以下が適用される
10. 変数mvdは、以下のように導出される。
mvd[0]=MvdL0[xCb][yCb][0] (8-883)
mvd[1]=MvdL0[xCb][yCb][1] (8-884)
11. 8.5.2.14項で規定されるような動きベクトルの丸め処理は、mvLに等しく設定されたmvXセット、MvShift+2に等しく設定されたrightShiftセット、MvShift+2に等しく設定されたleftShiftセットを入力として呼び出され、丸められたmvLが出力となる。
12. 輝度動きベクトル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の範囲に含まれる。
8.6.2.5項は、mvLを入力として、mvCを出力として呼び出される。
輝度ブロックベクトルmvLが以下の制約に従うべきであることは、ビットストリーム適合性の要件である。
- (((yCb+(mvL[1]>4))% CtbSizeY)+cbHeightがCtbSizeY以下である。
- x=xCb..xCb+cbWidth-1およびy=yCb..yCb+cbHeight-1の場合、ibcBufL[(x+(mvL[0]>>4))% wIbcBufY][(y+(mvL[1]>>4))% CtbSizeY]は、-1に等しくはならない。
- 現在のピクチャの左上の輝度サンプルに対する現在の符号化ブロックの左上のサンプルを規定する輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight、
- 現在のブロックの色成分インデックスを規定する変数cIdx、
- 動きベクトルmv
- an(wIbcBufY)×(CtbSizeY) array ibcBufL, an(wIbcBufC)×(CtbSizeC)array ibcBufCb, an(wIbcBufC)×(CtbSizeC)array ibcBufCr。
この処理の出力は以下の通りである。
- 予測サンプルの配列predSamples。
x=xCb..xCb+Width-1およびy=yCb..yCb+Height-1,の場合、以下が適用される
cIdxが0に等しい場合
predSamples[x][y]=ibcBufL[(x+mv[0]>>4))% wIbcBufY][(y+(mv[1]>>4))% CtbSizeY]
cIdxが1に等しい場合
predSamples[x][y]=ibcBufCb[(x+mv[0]>>5))% wIbcBufC][(y+(mv[1]>>5))% CtbSizeC]
cIdxが2に等しい場合
predSamples[x][y]=ibcBufCr[(x+mv[0]>>5))%wIbcBufC][(y+(mv[1]>>5))% CtbSizeC]
- 現在のピクチャ成分の左上のサンプルに対する現在のブロックの左上のサンプルを規定する位置(xCurr,yCurr)、
- 現在のブロックの幅および高さをそれぞれ規定する変数nCurrSwおよびnCurrSh、
- 現在のブロックの色成分を規定する変数cIdx、
- 現在のブロックの予測サンプルを規定するan(nCurrSw)×(nCurrSh) array predSamples、
- 現在のブロックの残差サンプル規定するan(nCurrSw)×(nCurrSh) array。
- cIdxが0に等しい場合、recSamplesは再構成ピクチャサンプルアレイSLに対応し、関数clipCidx1はClip1Yに対応する。
- そうでない場合、cIdxが1に等しければ、tuCbfChromaはtu_cbf_cb[xCurr][yCurr]に等しく設定され、recSamplesは再構成されたクロマサンプル配列SCbに対応し、関数clipCidx1はClip1Cに対応する。
- そうでない場合、(cIdxが2に等しければ、tuCbfChromaはtu_cbf_cb[xCurr][yCurr]に等しく設定され、recSamplesは再構成されたクロマサンプル配列SCbに対応し、関数clipCidx1はClip1Cに対応する。
- slice_lmcs_enabled_flagが0に等しい場合、位置(xCurr,yCurr)における再構成サンプルrecSamplesの(nCurrSw)x(nCurrSh)ブロックは、i=0..nCurrSw-1,j=0..nCurrSh-1に対しては下記のように導出する。
recSamples[xCurr+i][yCurr+j]=clipCidx1(predSamples[i][j]+resSamples[i][j]) (8-992)
- そうでない場合(slice_lmcs_enabled_flagが1に等しい)、以下が適用される。
- cIdxが0に等しい場合、以下が適用される。
- 8.7.5.2項で規定されるような輝度サンプルのマッピング処理を伴うピクチャ再構成は、輝度位置(xCurr,yCurr)、ブロック幅nCurrSwおよび高さnCurrSh、予測輝度サンプル配列preSamples、および残差輝度サンプル配列resSamplesを入力として呼び出され、出力は再構成輝度サンプル配列reCamplesとなる。
- それ以外の場合(cIdxが0より大きい場合)は,8.7.5.3項で規定されているクロマサンプルの輝度依存クロマ残差スケーリング処理によるピクチャ再構成が、クロマの位置(xCurr,yCurr)、変換ブロックの幅nCurrSwおよび高さnCurrSh、現在のクロマ変換ブロックの符号化ブロックフラグtuCbfChroma、予測クロマサンプル配列predSamples、残差クロマサンプル配列resSamplesを入力として呼び出され、再構成されたクロマサンプル配列recSamplesを出力とする。
現在の符号化ユニットを復号化した後、以下を適用することができる。
cIdxが0に等しく、treeTypeがSINGLE_TREEまたはDUAL_TREE_LUMAに等しい場合、以下が適用される。
ibcBufL[(xCurr+i)% wIbcBufY][(yCurr+j)% CtbSizeY]=recSamples[xCurr+i][yCurr+j]
for i=0..nCurrSw-1,j=0..nCurrSh-1.
cIdxが1に等しく、treeTypeがSINGLE_TREEまたはDUAL_TREE_CHROMAに等しい場合、以下が適用される。
ibcBufCb[(xCurr+i)% wIbcBufC][(yCurr+j)% CtbSizeC]=recSamples[xCurr+i][yCurr+j]
fori=0..nCurrSw-1,j=0..nCurrSh-1.
cIdxが2に等しく、treeTypeがSINGLE_TREEまたはDUAL_TREE_CHROMAに等しい場合、以下が適用される。
ibcBufCr[(xCurr+i)% wIbcBufC][(yCurr+j)% CtbSizeC]=recSamples[xCurr+i][yCurr+j]
fori=0..nCurrSw-1,j=0..nCurrSh-1.
1. より小さなCTUサイズを扱うことが問題となり場合がある。CTUのサイズが32x32であるとすると、現在のVPDUを復号化する現在の64×64メモリが、異なるアーキテクチャにおいて32×32レベルのメモリ再利用を効率的にサポートできるかどうかは、不明である。
2. 参照領域は有意に異なる。従って、あまりにも多くのビットストリーム適合性の制約が導入されている。これは、参照領域を効率的に利用し、合法的なビットストリームの生成を回避するために、エンコーダに余分な負担をかける。また、異なるモジュール、例えばマージリストにおいて無効なBVを有する可能性が高まる。これらの無効なBVを扱うことにより、余分なロジックまたは余分な適合性の制約を導入してしまう場合がある。これは、エンコーダまたはデコーダに負担をもたらすだけでなく、BV符号化とMV符号化との間に相違を生じさせる可能性がある。
3. 設計がうまく拡大縮小されていない。VPDU復号化はIBCバッファと混合されるので、現在の1つの128×128CTU設計に対して参照領域を増減させることは容易ではない。を利用することは、より低いまたはより高いプロファイルなどの、後の開発において、より優れた符号化効率とオンチップメモリのトレードオフを有効に利用するための柔軟性を制限する可能性がある。
4. IBC参照バッファのビット深度は、復号化バッファに接続される。通常、スクリーンコンテンツのビット深度は内部復号化のビット深度よりも小さいが、バッファは、大部分が丸められたり量子化されたりするノイズを表すビットを記憶するために、依然としてメモリを費やす必要がある。より高い復号化ビット深度構成を考える場合、この問題はさらに深刻になる。
イントラブロックコピーモードにおいて、予測のための参照サンプルを記憶するバッファサイズを判定することと、
前記バッファに記憶された参照サンプルを使用して、視覚メディアデータの現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間での変換を行うこととを含み、前記変換は、参照ピクチャを参照することなく、前記現在の映像ブロックと同じ映像領域に位置する再構成ブロックに関する動き情報に基づく前記イントラブロックコピーモードで行われる、視覚メディア処理方法。
本願は、2019年2月2日出願の国際特許出願PCT/CN2019/074598号の優先権及び利益を適時に主張する、2020年2月2日出願の国際特許出願PCT/CN2020/074155号に基づく。法に基づくすべての目的のために、上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
Claims (35)
- イントラブロックコピーモードにおいて、予測のための参照サンプルを記憶するバッファのサイズを判定することと、
前記バッファに記憶された前記参照サンプルを使用して、視覚メディアデータの現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間で変換を行うことと、を含み、
前記変換は、参照ピクチャを参照することなく、前記現在の映像ブロックと同じ映像領域に位置する再構成ブロックに関する動き情報に基づく前記イントラブロックコピーモードで行われる、
視覚メディア処理方法。 - 前記バッファの前記サイズが所定の定数である、
請求項1に記載の方法。 - 前記バッファの前記サイズがM×Nであり、MおよびNが整数である、
請求項1~2のいずれか1項以上に記載の方法。 - M×Nが64×64または128×128または64×128または96×128または128×96に等しい、
請求項3に記載の方法。 - 前記バッファまたはその一部のサイズは、前記現在の映像ブロックまたはその一部を含む符号化ツリーユニットのサイズに等しい、
請求項1に記載の方法。 - 前記バッファの高さは、前記現在の映像ブロックを含む符号化ツリーユニットの高さに等しい、
請求項1に記載の方法。 - 前記バッファの前記サイズは、前記現在の映像ブロックを含む符号化ツリーユニットのサイズに比例対応する、
請求項1に記載の方法。 - 整数m、nで表される比例対応は、符号化ツリーユニット(CTU)のサイズが128×128の場合、m=1、n=1であり、CTUのサイズが64×64の場合、m=4、n=1であり、CTUのサイズが32×32の場合、m=16、n=1であり、CTUのサイズが16×16の場合、m=64、n=1となるように、前記現在の映像ブロックを含む前記符号化ツリーユニット(CTU)のサイズに基づいており、nは、前記バッファの高さ/前記CTUの高さに等しく、mは、前記バッファの幅/前記CTUの幅に等しい、
請求項7に記載の方法。 - 前記バッファの高さと前記バッファの幅との積が、所定の定数である、
請求項1に記載の方法。 - 前記バッファの前記サイズは、前記変換に使用される仮想パイプラインデータユニットに比例対応する、
請求項1に記載の方法。 - 前記バッファの前記サイズは、前記変換に使用される仮想パイプラインデータユニットのサイズに等しい、
請求項1に記載の方法。 - 前記バッファの前記サイズは、前記ビットストリーム表現に含まれるフィールドに対応する、
請求項1に記載の方法。 - 前記フィールドは、映像またはシーケンスまたはピクチャまたはスライスまたはタイルグループレベルでの前記ビットストリーム表現に含まれる、
請求項12に記載の方法。 - 前記フィールドは、映像パラメータセット、シーケンスパラメータセット又はピクチャパラメータセット、又はピクチャヘッダ、スライスヘッダ、又はタイルグループヘッダレベルに含まれる、
請求項13に記載の方法。 - 前記バッファは、1つの色成分または複数の色成分に関連付けられた参照サンプルを記憶する、
請求項1~14のいずれか1項以上に記載の方法。 - 1つ以上のバッファが保持される、
請求項1~15のいずれか1項以上に記載の方法。 - 第1のバッファおよび第2のバッファが保持され、第1のサイズを有する前記第1のバッファは、輝度成分に関連付けられた参照サンプルに使用され、第2のサイズを有する前記第2のバッファは、クロマ成分に関連付けられた参照サンプルに使用され、前記第1のバッファは前記第2のバッファとは異なる、
請求項16に記載の方法。 - 前記第2のサイズは前記第1のサイズに依存する、
請求項17に記載の方法。 - 前記第2のサイズは前記第1のサイズから独立している、
請求項17に記載の方法。 - 前記第2のサイズは、現在の映像ブロックのクロマサブサンプリングフォーマットに依存する、
請求項17~18のいずれか1項以上に記載の方法。 - 前記第2のサイズが前記第1のサイズに等しい、
請求項18に記載の方法。 - 前記参照サンプルはRGBフォーマットで記憶される、
請求項1~21のいずれか1項以上に記載の方法。 - 前記バッファの前記サイズは、64×64または128×128または64×128または128×64に等しい、
請求項22に記載の方法。 - 前記バッファの前記サイズは、前記変換に関連付けられた仮想パイプラインデータユニット(VPDU)のサイズおよび/または前記現在の映像ブロックに関連付けられた符号化ツリーブロックのサイズの一部に少なくとも基づく、
請求項1に記載の方法。 - 前記バッファの前記サイズが前記符号化ツリーブロックの前記サイズに等しい、
請求項24に記載の方法。 - 前記バッファの高さは、前記現在の映像ブロックに関連付けられた前記符号化ツリーユニットの高さに等しい、
請求項24に記載の方法。 - 前記バッファの前記サイズは高さを含み、前記高さは、(i)所定の値と(ii)前記現在の映像ブロックに関連付けられた前記符号化ツリーブロックのサイズとの最小値に等しい、
請求項24に記載の方法。 - 前記所定の値は64である、
請求項27に記載の方法。 - 前記バッファの幅は、128*128/vSizeに等しく、vSizeは、前記VPDUのサイズを表す、
請求項24に記載の方法。 - 前記バッファの高さはmin(ctbSize,64)に等しく、ctbSizeは前記符号化ツリーブロックのサイズを表し、min(x,y)はxおよびyの最小値を表す、
請求項24に記載の方法。 - 前記変換は、前記現在の映像ブロックから前記ビットストリーム表現を生成することを含む、
請求項1~30のいずれか1項に記載の方法。 - 前記変換は、前記ビットストリーム表現から前記現在の映像ブロックの画素値を生成することを含む、
請求項1~30のいずれか1項に記載の方法。 - 請求項1~32のいずれか1項以上に記載の方法を実装するように構成された処理装置を備える、
映像エンコーダ装置。 - 請求項1~32のいずれか1項以上に記載の方法を実装するように構成された処理装置を備える、
映像デコーダ装置。 - コードが記憶されたコンピュータ可読媒体であって、
前記コードは、請求項1~30のいずれか1項に又は複数項に記載の方法を実装するための処理装置が実行可能な命令を実施する、
コンピュータ可読媒体。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2019074598 | 2019-02-02 | ||
CNPCT/CN2019/074598 | 2019-02-02 | ||
CNPCT/CN2019/095297 | 2019-07-09 | ||
CN2019095297 | 2019-07-09 | ||
PCT/CN2020/074155 WO2020156540A1 (en) | 2019-02-02 | 2020-02-02 | Buffer management for intra block copy in video coding |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2022517691A true JP2022517691A (ja) | 2022-03-09 |
JPWO2020156540A5 JPWO2020156540A5 (ja) | 2022-06-16 |
JP7384910B2 JP7384910B2 (ja) | 2023-11-21 |
Family
ID=80494916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021543340A Active JP7384910B2 (ja) | 2019-02-02 | 2020-02-02 | 映像符号化におけるイントラブロックコピーのためのバッファ管理 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7384910B2 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017535148A (ja) * | 2014-09-30 | 2017-11-24 | マイクロソフト テクノロジー ライセンシング,エルエルシー | 映像符号化のためのハッシュベースのエンコーダ判断 |
JP2018521539A (ja) * | 2015-05-11 | 2018-08-02 | クアルコム,インコーポレイテッド | ビデオデータの特定のピクチャ内のインターコーディングのための探索範囲決定 |
WO2018190207A1 (ja) * | 2017-04-13 | 2018-10-18 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
-
2020
- 2020-02-02 JP JP2021543340A patent/JP7384910B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017535148A (ja) * | 2014-09-30 | 2017-11-24 | マイクロソフト テクノロジー ライセンシング,エルエルシー | 映像符号化のためのハッシュベースのエンコーダ判断 |
JP2018521539A (ja) * | 2015-05-11 | 2018-08-02 | クアルコム,インコーポレイテッド | ビデオデータの特定のピクチャ内のインターコーディングのための探索範囲決定 |
WO2018190207A1 (ja) * | 2017-04-13 | 2018-10-18 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
Non-Patent Citations (3)
Title |
---|
HENG, BRIAN ET AL.: "Non-CE8: Comments on Current Picture Referencing", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 13TH MEETING: MARR, vol. JVET-M0402 (version 2), JPN6023013053, 4 January 2019 (2019-01-04), ISSN: 0005029556 * |
PHAM VAN, LUONG ET AL.: "CE8.1.3: Extended CPR reference with 1 buffer line", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 13TH MEETING: MARR, vol. JVET-M0474 (version 3), JPN6023013051, 11 January 2019 (2019-01-11), ISSN: 0005029554 * |
XU, XIAOZHONG ET AL.: "CE8: Summary Report on Screen Content Coding", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 13TH MEETING: MARR, vol. JVET-M0028 (version 3), JPN6023013052, 10 January 2019 (2019-01-10), ISSN: 0005029555 * |
Also Published As
Publication number | Publication date |
---|---|
JP7384910B2 (ja) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2020214083B2 (en) | Buffer management for intra block copy in video coding | |
JP7384912B2 (ja) | 映像符号化におけるイントラブロックコピーのためのバッファにおけるデータ記憶 | |
JP7405861B2 (ja) | 映像符号化におけるイントラブロックコピーのための方向に基づく予測 | |
JP2022522738A (ja) | 映像符号化におけるイントラブロックコピーの実装形態の態様 | |
AU2020309663C1 (en) | Virtual prediction buffer for intra block copy in video coding | |
JP2023182664A (ja) | 映像符号化におけるイントラブロックコピーのためのビットストリーム適合性の制約 | |
WO2020259677A1 (en) | Validity checks for a block vectors for intra block copy in video coding | |
JP7359934B2 (ja) | 映像符号化におけるイントラブロックコピーのためのサンプル識別 | |
WO2020177661A1 (en) | Order-based updating for intra block copy in video coding | |
WO2021004496A1 (en) | Bitstream conformance constraints for intra block copy in video coding | |
WO2021004348A1 (en) | Virtual prediction buffer for intra block copy in video coding | |
JP2022517691A (ja) | 映像符号化におけるイントラブロックコピーのためのバッファ管理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210726 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210726 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220608 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220830 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230404 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230630 |
|
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: 20231010 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231109 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7384910 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |