JP7444997B2 - ビデオコーディングのためのクロスコンポーネント適応ループフィルタリング - Google Patents
ビデオコーディングのためのクロスコンポーネント適応ループフィルタリング Download PDFInfo
- Publication number
- JP7444997B2 JP7444997B2 JP2022540684A JP2022540684A JP7444997B2 JP 7444997 B2 JP7444997 B2 JP 7444997B2 JP 2022540684 A JP2022540684 A JP 2022540684A JP 2022540684 A JP2022540684 A JP 2022540684A JP 7444997 B2 JP7444997 B2 JP 7444997B2
- Authority
- JP
- Japan
- Prior art keywords
- video
- chroma
- equal
- block
- syntax element
- 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
- 230000003044 adaptive effect Effects 0.000 title claims description 36
- 238000001914 filtration Methods 0.000 title description 87
- 238000000034 method Methods 0.000 claims description 440
- 238000012545 processing Methods 0.000 claims description 69
- 238000006243 chemical reaction Methods 0.000 claims description 36
- 230000015654 memory Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 220
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 209
- 230000008569 process Effects 0.000 description 207
- 238000013139 quantization Methods 0.000 description 110
- 239000013598 vector Substances 0.000 description 76
- 230000009466 transformation Effects 0.000 description 40
- 230000006870 function Effects 0.000 description 27
- 238000009795 derivation Methods 0.000 description 20
- 238000004590 computer program Methods 0.000 description 12
- 238000013461 design Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000000903 blocking effect Effects 0.000 description 10
- 239000011449 brick Substances 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 10
- 238000005192 partition Methods 0.000 description 9
- 230000009977 dual effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 101150039623 Clip1 gene Proteins 0.000 description 6
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000005070 sampling Methods 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 101100277553 Caenorhabditis elegans dep-1 gene Proteins 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 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 1
- 241001530236 Amata chroma Species 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002457 bidirectional effect 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
- 239000002131 composite material Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000000844 transformation Methods 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/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- 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/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
-
- 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- 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/117—Filters, e.g. for pre-processing or post-processing
-
- 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/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
-
- 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- 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/172—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 picture, frame or field
-
- 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/174—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 slice, e.g. a line of blocks or a group of blocks
-
- 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/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/184—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 bits, e.g. of the compressed video stream
-
- 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/186—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 a colour or a chrominance component
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- 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/46—Embedding additional information in the video signal during the compression process
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
本願は、2020年12月31日に出願された国際特許出願第PCT/US2020/067651号に基づいており、国際特許出願第PCT/US2020/067651号は、2020年1月1日に出願された国際特許出願第PCT/CN2020/070001号の優先権及び利益を主張する。上記の全ての特許出願の全内容が参照により援用される。
本特許文献は、ビデオコーディング技術、デバイス及びシステムに関する。
ビデオコーディング標準は、周知のITU-T及びISO/IEC標準の開発を通じて主に発展してきた。ITU-TはH.261及びH.263を作り出し、ISO/IECはMPEG-1及びMPEG-4 Visualを作り出し、2つの組織は共同でH.262/MPEG-2 Video及びH264/MPEG-4 Advanced Video Coding(AVC)及びH.265/HEVC標準を作り出した。H.262以降、ビデオコーディング標準は、時間予測に変換コーディングをプラスしたものが利用されるハイブリッド型ビデオコーディング構造に基づいている。HEVCを超える将来のビデオコーディング技術を探求するために、Joint Video Exploration Team(JVET)が2015年にVCEG及びMPEGによって共同で設立された。それ以降、多くの新たな方法がJVETによって採用され、Joint Exploration Model(JEM)と呼ばれる参照ソフトウェアに置かれてきた。2018年4月に、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)との間で、JVETが、HEVCと比較して50%のビットレート低減を目標とするVVC標準を検討するために作られた。
デブロッキングフィルタプロセスは、復号プロセスと同じ順序でCU毎に実行される。最初に、垂直エッジがフィルタリング(水平フィルタリング)され、次いで、水平エッジがフィルタリング(垂直フィルタリング)される。フィルタリングは、ルマ成分及びクロマ成分の双方について、フィルタリングされるべきと決定された8×8ブロック境界に適用される。4×4ブロック境界は、複雑さを低減するために、処理されない。
一般的に言えば、境界強度(Bs)は、どれくらい強いフィルタリングが境界に必要とされるかを反映する。Bsが大きい場合、強フィルタリングが考えられるべきである。
フィルタオン/オフ決定、強及び弱フィルタ選択及び弱フィルタリングプロセスに関与する閾値β及びtCは、P及びQブロックのルマ量子化パラメータであるQPP及びQPQにそれぞれ基づいて導出される。β及びtCを導出するために使用されるQは以下の通り計算される。
Q=((QPP+QPQ+1)>>1)
フィルタオン/オフ決定は、1つの単位として4ラインについて行われる。図4は、フィルタオン/オフ決定に関与するピクセルを示す。最初の4つのラインの2つの赤色ボックス内の6つのピクセルが、4つのラインについてフィルタオン/オフを決定するために使用される。二番目の4つのラインの2つの赤色ボックス内の6つのピクセルが、二番目の4つのラインについてフィルタオン/オフを決定するために使用される。
dp0=|p2,0-2×p1,0+p0,0|
dp3=|p2,3-2×p1,3+p0,3|
dp4=|p2,4-2×p1,4+p0,4|
dp7=|p2,7-2×p1,7+p0,7|
dq0=|q2,0-2×q1,0+q0,0|
dq3=|q2,3-2×q1,3+q0,3|
dq4=|q2,4-2×q1,4+q0,4|
dq7=|q2,7-2×q1,7+q0,7|
最初の4つのラインがフィルタオン/オフ決定においてフィルタリングオンであると決定された後に、以下の2つの条件が満たされる場合、最初の4つのラインのフィルタリングのために強フィルタが使用される。そうでない場合、弱フィルタがフィルタリングのために使用される。関与するピクセルは、図4に表されるようにフィルタオン/オフ決定に使用されたものと同じである。
1)2×(dp0+dq0)<(β>>2),|p30-p00|+|q00-q30|<(β>>3)及び|p00-q00|<(5×tC+1)>>1
2)2×(dp3+dq3)<(β>>2),|p33-p03|+|q03-q33|<(β>>3)及び|p03-q03|<(5×tC+1)>>1
1)2×(dp4+dq4)<(β>>2),|p30-p04|+|q04-q34|<(β>>3)及び|p04-q04|<(5×tC+1)>>1
2)2×(dp7+dq7)<(β>>2),|p37-p07|+|q07-q37|<(β>>3)及び|p07-q07|<(5×tC+1)>>1
強フィルタリングのために、フィルタリングされたピクセル値が、以下の式によって取得される。Pブロック及びQブロックのそれぞれについて4つのピクセルを入力として使用して3つのピクセルが変更される点に留意されたい。
p0’=(p2+2×p1+2×p0+2×q0+q1+4)>>3
q0’=(p1+2×p0+2×q0+2×q1+q2+4)>>3
p1’=(p2+p1+p0+q0+2)>>2
q1’=(p0+q0+q1+q2+2)>>2
p2’=(2×p3+3×p2+p1+p0+q0+4)>>3
q2’=(p0+q0+q1+3×q2+2×q3+4)>>3
Δを以下のように定義するとする。
Δ=(9×(q0-p0)-3×(q1-p1)+8)>>4
abs(Δ)がtC×10よりも小さいとき、
Δ=Clip3(-tC,tC,Δ)
p0’=Clip1Y(p0+Δ)
q0’=Clip1Y(q0-Δ)
dEp1が1に等しい場合、
Δp=Clip3(-(tC>>1),tC>>1,(((p2+p0+1)>>1)-p1+Δ)>>1)
p1’=Clip1Y(p1+Δp)
dEp1が1に等しい場合、
Δq=Clip3(-(tC>>1),tC>>1,(((q2+q0+1)>>1)-q1-Δ)>>1)
q1’=Clip1Y(q1+Δq)
クロマフィルタリングのBsは、ルマから引き継がれる。Bs>1である場合、或いは、コーディングされたクロマ係数が存在する場合、クロマフィルタリングが実行される。他のフィルタリング決定は存在しない。また、1つのフィルタのみがクロマについて適用される。クロマのためのフィルタ選択プロセスは使用されない。フィルタリングされたサンプル値p0’及びq0’は、以下のように導出される。
Δ=Clip3(-tC,tC,((((q0-p0)<<2)+p1-q1+4)>>3))
p0’=Clip1C(p0+Δ)
q0’=Clip1C(q0-Δ)
VTM6では、デブロッキングフィルタプロセスは、HEVCにおけるものとほとんど同じである。しかし、以下の変更が加えられている。
a)再構成されたサンプルの平均化されたルマレベルに依存するデブロッキングフィルタのフィルタ強度
b)10ビットビデオへのデブロッキングtCテーブルの拡張及び適応
c)ルマのための4×4グリッドでブロッキング
d)ルマのためのより強いデブロッキングフィルタ
e)クロマのためのより強いデブロッキングフィルタ
f)サブブロック境界のためのデブロッキングフィルタ
g)動きのより小さい差に適応されたデブロッキング決定
HEVCでは、デブロッキングフィルタのフィルタ強度は、平均化された量子化パラメータqPLから導出される変数β及びtCによって制御される。VTM6では、デブロッキングフィルタは、この方法のSPSフラグが真である場合、再構成されたサンプルのルマレベルに従ってqPLにオフセットを加えることによって、デブロッキングフィルタの強度を制御する。再構成されたルマレベルLLは、以下のように導出される。
LL=((p0,0+p0,3+q0,0+q0,3)>>2)/(1<<bitDepth) (3-1)
ここで、サンプル値pi,k及びqi,k(i=0・・・3、k=0及び3)は・・・に示すように導出される。次いで、LLが、SPSにおいて通知された閾値に基づいてオフセットqpOffsetを決定するために使用される。その後に、以下のように導出されるqPLが、β及びtCを導出するために用いられる。
qPL=((QpQ+QpP+1)>>1)+qpOffset (3-2)
ここで、QpQ及びQpPは、それぞれ、サンプルq0,0及びp0,0を含むコーディングユニットの量子化パラメータを示す。現在のVVCでは、この方法は、ルマデブロッキングプロセスに対してのみ適用される。
HEVCは、ルマ及びクロマの双方のために8×8デブロッキンググリッドを使用する。VTM6では、ルマ境界についての4×4グリッドでのデブロッキングは、矩形変換形状からのブロッキングアーチファクトを扱うために導入された。4×4グリッドでの並列フレンドリなルマデブロッキングは、デブロッキングされるサンプルの数を、一辺が4以下の幅である垂直ルマ境界の各辺での1サンプル、又は一辺が4以下の高さである水平ルマ境界の各辺での1サンプルに制限することによって、達成される。
提案は、境界のどちらか一方の側にあるサンプルが大きいブロックに属するときにバイリニアフィルタを使用する。大きいブロックに属するサンプルは、垂直エッジについては幅>=32である場合として定義され、水平エッジについては高さ>=32である場合として定義される。
- pi’=(fi×Middles,t+(64-fi)×Ps+32)>>6),
pi±tCPDiにクリップされる
- qj’=(gj×Middles,t+(64-gj)×Qs+32)>>6),
qj±tCPDjにクリップされる
ここで、tCPDi及びtCPDjの項は、第2.2.5節で記載される位置依存のクリッピングであり、gj、fi、Middles,t、Ps及びQsは、以下で与えられる。
デブロッキング決定プロセスは、このサブセクションで記載される。
bSidePisLargeBlk=((エッジタイプが垂直であり、p0が幅>=32を有するCUに属する)||(エッジタイプが水平であり、p0が高さ>=32を有するCUに属する))?TRUE:FALSE
bSideQisLargeBlk=((エッジタイプが垂直であり、q0が幅>=32を有するCUに属する)||(エッジタイプが水平であり、q0が高さ>=32を有するCUに属する))?TRUE:FALSE
条件1=(bSidePisLargeBlk||bSideQisLargeBlk)?TRUE:FALSE
- dp0、dp3、dq0、dq3が、HEVCで見られるように、最初に導出される
- if(pサイドが32以上である)
dp0=(dp0+Abs(p5,0-2×p4,0+p3,0)+1)>>1
dp3=(dp3+Abs(p5,3-2×p4,3+p3,3)+1)>>1
- if(qサイドが32以上である)
dq0=(dq0+Abs(q5,0-2×q4,0+q3,0)+1)>>1
dq3=(dq3+Abs(q5,3-2×q4,3+q3,3)+1)>>1
- dpq0、dpq3、dp、dq、dが、次いで、HEVCで見られるように、導出される。
条件2=(d<β)?TRUE:FALSE
ここで、第2.1.4節で示されるように、d=dp0+dq0+dp3+dq3である。
- If(bSidePisLargeBlk)
If(mode block P==SUBBLOCKMODE)
Sp=5
else
Sp=7
else
Sp=3
- If(bSideQisLargeBlk)
If(mode block Q==SUBBLOCKMODE)
Sq=5
else
Sq=7
else
Sq=3
- dpqが、HEVCで見られるように、導出される
- HEVCで見られるように導出されたsp3=Abs(p3-p0)
- if(pサイドが32以上である)
if(Sp==5)
sp3=(sp3+Abs(p5-p3)+1)>>1
else
sp3=(sp3+Abs(p77-p3)+1)>>1
- HEVCで見られるように導出されたsq33=Abs(q0-q3)
- if(qサイドが32以上である)
if(Sp==5)
sq3=(sq3+Abs(q5-q3)+1)>>1
else
sq3=(sq3+Abs(q7-q3)+1)>>1
クロマのための以下の強デブロッキングフィルタが定義される。
p2’=(3×p3+2×p2+p1+p0+q0+4)>>3
p1’=(2×p3+p2+2×p1+p0+q0+q1+4)>>3
p0’=(p3+p2+p1+2×p0+q0+q1+q2+4)>>3
上記のクロマフィルタは、8×8クロマサンプルグリッドに対してデブロッキングを実行する。クロマ強フィルタは、ブロック境界の両側で使用される。ここで、クロマフィルタは、クロマエッジの両側が8(クロマサンプルの単位)以上であり、3つの条件を有する以下の決定が満たされるときに、選択される。第1の条件は、大きいブロック及び境界強度の決定に関する。第2及び第3の条件は、基本的に、HEVCルマ決定の場合と同じであり、それぞれ、オン/オフ決定及び強フィルタ決定である。
提案はまた、境界で7、5及び3つのサンプルを変更するものである強く且つ長いフィルタを含むルマフィルタリングプロセスの出力サンプルに適用される位置依存のクリッピングtcPDも導入する。量子化誤差分布を仮定して、サンプルのクリッピング値を増加させることが提案される。これは、より高い量子化ノイズを有することが予想されるので、真のサンプル値からの再構成されたサンプル値のより高い偏差を有することが予想される。
Tc7={6,5,4,3,2,1,1};
Tc3={6,4,2};
tcPD=(SP==3)?Tc3:Tc7;
tcQD=(SQ==3)?Tc3:Tc7;
Tc3={3,2,1};
p”i=Clip3(p’i+tcPi,p’i-tcPi,p’i);
q”j=Clip3(q’j+tcQj,q’j-tcQj,q’j);
ここで、p’i及びq’jは、フィルタリングされたサンプル値であり、p”i及びq”jは、クリッピング後の出力サンプル値であり、tcPi及びtcQjは、VVCのtcパラメータ並びにtcPD及びtcQDから導出されるクリッピング閾値である。Clip3の項は、VVCで指定されているクリッピング関数である。
長いフィルタ及びサブブロックデブロッキングの双方を使用して並列フレンドリなデブロッキングを可能にするために、長いフィルタは、長いフィルタについてルマ制御で示されるように、サブブロックデブロッキング(AFFINE又はATMVP)を使用する側でせいぜい5つのサンプルを変更するよう制限される。更に、サブブロックデブロッキングは、CU又は暗黙的なTU境界に近い8×8グリッド上のサブブロック境界がそれぞれの側でせいぜい2つのサンプルを変更するよう制限されるように、調整される。
- If(mode block Q==SUBBLOCKMODE && edge!=0){
if(!(implicitTU && (edge==(64/4))))
if(edge==2 || edge==(orthogonalLength-2) || edge==(56/4) || edge==(72/4))
Sp=Sq=2;
else
Sp=Sq=3;
else
Sp=Sq=bSideQisLargeBlk?5:3
}
HEVCは、境界のそれぞれの側にあるブロックの間の少なくとも1つの動きベクトル成分の差が1サンプルの閾値以上であるときに、予測ユニット境界のデブロッキングを有効にする。VTM6では、半ルマサンプルの閾値が、動きベクトルの小さい差を有するインター予測ユニットの間の境界から生じるブロッキングアーチファクトの除去も可能にするために導入される。
VTM6では、CUがマージモードでコーディングされる場合、CUが少なくとも64個のルマサンプルを含む場合(すなわち、CU幅×CU高さは64以上である)、且つ、CU幅及びCU高さの双方が128個のルマサンプル未満である場合、インター/イントラ複合予測(Combined Inter/Intra Prediction,CIIP)モードが現在CUに適用されるか否かを示すために、追加のフラグが通知される。その名が示すとおり、CIIP予測は、インター予測信号をイントラ予測信号と組み合わせる。CIIPモードでのインター予測信号Pinterは、通常のマージモードに適用されるのと同じインター予測プロセスを用いて導出され、イントラ予測信号Pintraは、プレーナーモードによる通常のイントラ予測プロセスに従って導出される。次いで、イントラ予測信号及びインター予測信号は、加重平均を用いて結合される。ここで、重み値は、以下のように、上隣接ブロック及び左隣接ブロックのコーディングモードに依存して計算される。
- 上隣接ブロックが利用可能であり、イントラコーディングされている場合、isIntraTopを1に設定し、そうでない場合、isIntraTopを0に設定する。
- 左隣接ブロックが利用可能であり、イントラコーディングされている場合、isIntraLeftを1に設定し、そうでない場合、isIntraLeftを0に設定する。
- (isIntraLeft+isIntraTop)が2に等しい場合、wtは3に設定される。
- そうではなく、(isIntraLeft+isIntraTop)が1に等しい場合、wtは2に設定される。
- 上記以外の場合、wtを1に設定する。
PCIIP=((4-wt)×Pinter+wt×Pintra+2)>>2
JVET-O0650において提示されているクロマQPテーブルがVICに採用されている。それは、クロマQPテーブルのための通知メカニズムを提案しており、SDR及びHDRコンテンツのためのテーブルを最適化する機会をエンコーダに提供するのが柔軟になることを可能にする。それは、Cb及びCr成分について別々にテーブルを通知することをサポートする。提案されているメカニズムは、区分線形関数(piece-wise linear function)としてクロマQPテーブルを通知する。
HEVCで見られるように、ブロックの残差は、変換スキップモードによりコーディングされ得る。シンタックスコーディングの冗長性を回避するために、変換スキップフラグは、CUレベルのMTS_CU_flagがゼロに等しいない場合には通知されない。変換スキップのブロックサイズ情報は、JEM4におけるMTSのそれと同じである。これは、ブロックの幅及び高さが32以下である場合にCUに対して変換スキップが適用可能であることを示す。暗黙的なMTS変換は、LFNST又はMIPが現在CUに対してアクティブにされる場合、DCT2に設定される点に留意されたい。また、暗黙的なMTSは、MTSがインターコーディングされたブロックに対して有効にされる場合、依然として有効にできる。
VVCドラフト6は、クロマ残差が共同でコーディングされるモードをサポートする。共同クロマコーディングモードの利用(活性化)は、TUレベルのフラグtu_joint_cbcr_residual_flagによって示され、選択されたモードは、クロマCBFによって暗黙的に示される。フラグtu_joint_cbcr_residual_flagは、TUのための一方又は双方のクロマCBFが1に等しい場合に存在する。PPS及びスライスヘッダにおいて、クロマQPオフセット値は、通常のクロマ残差コーディングモードについて通知された通常のクロマQPオフセットと区別するために、共同クロマ残差コーディングモードについて通知される。これらのクロマQPオフセット値は、共同クロマ残差コーディングモードを使用してコーディングされたブロックについてクロマQP値を導出するために使用される。対応する共同クロマコーディングモード(表3のモード2)がTUでアクティブである場合、このクロマQPオフセットは、そのTUの量子化及び復号中に、適用されたルマ導出クロマQPに加えられる。他のモード(表3のモード1及び3)については、クロマQPは、従来のCb又はCrブロックの場合と同じように導出される。伝送された変換ブロックからのクロマ残差(resCb及びresCr)の再構成プロセスは、表3に表されている。このモードがアクティブにされる場合、1つの単一共同クロマ残差ブロック(表3のresJointC[x][y])が通知され、Cbの残差ブロック(resCb)及びCrの残差ブロック(resCr)は、tu_cbf_cb、tu_cbf_cr及びCsign(スライスヘッダにおいて指定された符号値である)のような情報を考慮して導出される。
●モードが2に等しい場合(再構成Cb=Cr、Cr=CSign×Cによる単一の残差)、共同残差は、
resJointC[x][y]=(resCb[x][y]+CSign×resCr[x][y])/2
に従って決定される。
●そうではなく、モードが1に等しい場合(再構成Cb=Cr、Cr=(CSign×C)/2による単一の残差)、共同残差は、
resJointC[x][y]=(4×resCb[x][y]+2×CSign×resCr[x][y])/5
に従って決定される。
●上記以外の場合(モードが3に等しい、すなわち、再構成Cb=Cr、Cb=(CSign×C)/2による単一の残差)、共同残差は、
resJointC[x][y]=(4×resCr[x][y]+2×CSign×resCb[x][y])/5
に従って決定される。
変数QpYは、以下のように導出される。
QpY=((qPY_PRED+CuQpDeltaVal+64+2×QpBdOffsetY)%(64+QpBdOffsetY))-QpBdOffsetY (8-933)
ルマ量子化パラメータQp’Yは、以下のように導出される。
Qp’Y=QpY+QpBdOffsetY (8-934)
ChromaArrayTypeが0に等しくなく、treeTypeがSINGLE_TREE又はDUAL_TREE_CHROMAに等しい場合、以下が適用される。
- treeTypeがDUAL_TREE_CHROMAに等しい場合、変数QpYは、ルマ位置(xCb+cbWidth/2,yCb+cbHeight/2)をカバーするルマコーディングユニットのルマ量子化パラメータQpYに等しく設定される。
- 変数qPCb,、qPCr及びqPCbCrは、以下のように導出される。
qPiChroma=Clip3(-QpBdOffsetC,63,QpY) (8-935)
qPiCb=ChromaQpTable[0][qPiChroma] (8-936)
qPiCr=ChromaQpTable[1][qPiChroma] (8-937)
qPiCbCr=ChromaQpTable[2][qPiChroma] (8-938)
-Cb及びCr成分のクロマ量子化パラメータQp’Cb及びQp’Cr,、並びに共同Cb-Crコーディングの量子化パラメータはQp’CbCrは、以下のように導出される。
Qp’Cb=Clip3(-QpBdOffsetC,63,qPCb+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb)+QpBdOffsetC (8-939)
Qp’Cr=Clip3(-QpBdOffsetC,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)+QpBdOffsetC (8-940)
Qp’CbCr=Clip3(-QpBdOffsetC,63,qPCbCr+pps_cbcr_qp_offset+slice_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffsetC (8-941)
このプロセスへの入力は以下の通りである。
- 現在のピクチャの左上ルマサンプルに対する現在のルマ変換ブロックの左上サンプルを指定するルマ位置(xTbY,yTbY)
- 変換ブロック幅を指定する変数nTbW
- 変換ブロック高さを指定する変数nTbH
- 現在のブロックの色成分を指定する変数cIdx
- 現在の色成分のビットデプスを指定する変数bitDepth
このプロセスの出力は、要素d[x][y]を有するスケーリングされた変換係数の(nTbW)×(nTbH)アレイdである。
量子化パラメータqPは、以下のように導出される。
- cIdxが0に等しく、transform_skip_flag[xTbY][yTbY]が0に等しい場合、以下が適用される。
qP=Qp’Y (8-950)
- そうではなく、cIdxが0に等しく(且つ、transform_skip_flag[xTbY][yTbY]が1に等しい)場合、以下が適用される。
qP=Max(QpPrimeTsMin,Qp’Y) (8-951)
- そうではなく、TuCResMode[xTbY][yTbY]が2に等しい場合、以下が適用される。
qP=Qp’CbCr (8-952)
- そうではなく、cIdxが1に等しい場合、以下が適用される。
qP=Qp’Cb (8-953)
- そうでない(cIdxが2に等しい)場合、以下が適用される。
qP=Qp’Cr (8-954)
以下の図14Aは、他のループフィルタに対するCC-ALFの配置を示す。CC-ALFは、クロマ成分毎にルマチャネルに対して線形のダイヤモンド形状のフィルタ(図14B)を適用することによって動作し、これは以下のように表される。
CC-ALFプロセスの主な特徴は以下を含む。
●サポート領域が中心にあるルマ位置(xC,yC)は、ルマ面とクロマ面との間の空間スケーリング係数に基づいて計算される。
●全てのフィルタ係数はAPSで伝送され、8ビットのダイナミックレンジを有する。
●APSは、スライスヘッダで参照されてもよい。
●スライスの各クロマ成分に使用されるCC-ALF係数も、時間サブレイヤに対応するバッファに格納される。これらの時間サブレイヤのフィルタ係数のセットの再利用は、スライスレベルのフラグを使用して実現される。
●CC-ALFフィルタの適用は、可変ブロックサイズで制御され、サンプルのブロック毎に受信されるコンテキストコーディングされたフラグによって通知される。ブロックサイズは、CC-ALF有効フラグと共にクロマ成分毎にスライスレベルで受信される。
●水平仮想境界についての境界パディングは繰り返しを利用する。残りの境界では、通常のALFと同じタイプのパディングが使用される。
QPは隣接QP及び復号されたデルタQPに基づいて導出される。JVET-P2001-vEにおけるQP導出に関連するテキストは以下の通りである。
このプロセスへの入力は以下の通りである。
- 現在のピクチャの左上ルマサンプルに対する現在のコーディングブロックの左上ルマサンプルを指定するルマ位置(xCb,yCb)
- ルマサンプル内の現在のコーディングブロックの幅を指定する変数cbWidth
- ルマサンプルの現在のコーディングブロックの高さを指定する変数cbHeight
- コーディングツリーノードをパーティション化するために、シングルツリー(SINGLE_TREE)が使用されるかデュアルツリー(DUAL_TREE_CHROMA)が使用されるかを指定し、デュアルツリーが使用される場合にルマ成分(DUAL_TREE_LUMA)が現在処理されているかクロマ成分(DUAL_TREE_CHROMA)が現在処理されているかを指定する変数treeType
このプロセスでは、ルマ量子化パラメータQp’Y並びにクロマ量子化パラメータQp’Cb、Qp’Cr及びQp’CbCrが導出される。
ルマ位置(xQg,yQg)は、現在のピクチャの左上ルマサンプルに対する現在の量子化グループの左上ルマサンプルを指定する。水平位置xQg及び垂直位置yQgは、それぞれCuQgTopLeftX及びCuQgTopLeftYに等しく設定される。
注記:現在の量子化グループは、同じqPY_PREDを共有するコーディングツリーブロック内の矩形領域である。その幅及び高さは、左上ルマサンプル位置が変数CuQgTopLeftX及びCuQgTopLeftYに割り当てられているコーディングツリーノードの幅及び高さに等しい。
treeTypeがSINGLE_TREE又はDUAL_TREE_LUMAに等しい場合、予測ルマ量子化パラメータqPY_PREDは、以下の順序のステップによって導出される。
1. 変数qPY_PREVは以下のように導出される。
- 以下の条件のうち1つ以上が真である場合、qPY_PREVはSliceQpYに等しく設定される。
- 現在の量子化グループは、スライス内の最初の量子化グループである。
- 現在の量子化グループは、タイル内の最初の量子化グループである。
- 現在の量子化グループは、タイルのCTB行内の最初の量子化グループであり、entropy_coding_sync_enabled_flagは1に等しい。
- そうでない場合、qPY_PREVは、復号順で前の量子化グループ内の最後のルマコーディングユニットのルマ量子化パラメータQpYに等しく設定される。
2. 第6.4.4節で指定された隣接ブロック可用性の導出プロセスは、(xCb,yCb)に等しく設定された位置(xCurr,yCurr)、(xQg-1,yQg)に等しく設定された隣接位置(xNbY,yNbY)、FALSEに等しく設定されたcheckPredModeY、及び0に等しく設定されたcIdxを入力として使用し、出力はavailableAに割り当てられる。変数qPY_Aは以下のように導出される。
- 以下の条件のうち1つ以上が真である場合、qPY_AはqPY_PREVに等しく設定される。
- availableAはFALSEに等しい。
- ルマ位置(xQg-1,yQg)をカバーするルマコーディングブロックを含むCTBは、(xCb,yCb)における現在のルマコーディングブロックを含むCTBに等しくなく、すなわち、以下の条件の全てが真である。
- (xQg-1)>>CtbLog2SizeYが(xCb)に等しくない>>CtbLog2SizeY
- (yQg)>>>CtbLog2SizeYが(yCb)に等しくない>>CtbLog2SizeY
- そうでない場合、qPY_Aは、(xQg-1,yQg)をカバーするルマコーディングブロックを含むコーディングユニットのルマ量子化パラメータQpYに等しく設定される。
3. 第6.4.4節で指定された隣接ブロック可用性の導出プロセスは、(xCb,yCb)に等しく設定された位置(xCurr,yCurr)、(xQg,yQg-1)に等しく設定された隣接位置(xNbY,yNbY)、FALSEに等しく設定されたcheckPredModeY、及び0に等しく設定されたcIdxを入力として使用し、出力はavailableBに割り当てられる。変数qPY_Bは以下のように導出される。
- 以下の条件のうち1つ以上が真である場合、qPY_BはqPY_PREVに等しく設定される。
- availableBはFALSEに等しい。
- ルマ位置(xQg,yQg-1)をカバーするルマコーディングブロックを含むCTBは、(xCb,yCb)における現在のルマコーディングブロックを含むCTBに等しくなく、すなわち、以下の条件の全てが真である。
- (xQg)>>CtbLog2SizeYが(xCb)に等しくない>>CtbLog2SizeY
- (yQg-1)>>>CtbLog2SizeYが(yCb)に等しくない>>CtbLog2SizeY
- そうでない場合、qPY_Bは、(xQg,yQg-1)をカバーするルマコーディングブロックを含むコーディングユニットのルマ量子化パラメータQpYに等しく設定される。
4. 予測ルマ量子化パラメータqPY_PREDは以下のように導出される。
- 全ての以下の条件が満たされる場合、qPY_PREDは、(xQg,yQg-1)をカバーするルマコーディングブロックを含むコーディングユニットのルマ量子化パラメータQpYに等しく設定される。
- availableBはTRUEに等しい。
- 現在の量子化グループは、タイル内のCTB行の最初の量子化グループである。
- そうでない場合、qPY_PREDは以下のように導出される。
qPY_PRED=(qPY_A+qPY_B+1)>>1 (1115)
変数QpYは以下のように導出される。
QpY=((qPY_PRED+CuQpDeltaVal+64+2×QpBdOffset)%(64+QpBdOffset))-QpBdOffset (1116)
ルマ量子化パラメータQp’Yは以下のように導出される。
Q’Y=QpY+QpBdOffset (1117)
ChromaArrayTypeが0に等しくなく、treeTypeがSINGLE_TREE又はDUAL_TREE_CHROMAに等しい場合、以下が適用される。
- treeTypeがDUAL_TREE_CHROMAに等しい場合、変数QpYは、ルマ位置(xCb+cbWidth/2,yCb+cbHeight/2)をカバーするルマコーディングユニットのルマ量子化パラメータQpYに等しく設定される。
- 変数qPCb、qPCr及びqPCbCrは、以下のように導出される。
qPChroma=Clip3(-QpBdOffset,63,QpY) (1118)
qPCb=ChromaQpTable[0][qPChroma] (1119)
qPCr=ChromaQpTable[1][qPChroma] (1120)
qPCbCr=ChromaQpTable[2][qPChroma] (1121)
- Cb及びCr成分のクロマ量子化パラメータQp’Cb及びQp’Cr並びに共同Cb-Crコーディングのクロマ量子化パラメータQp’CbCrは以下のように導出される。
Qp’Cb=Clip3(-QpBdOffset,63,qPCb+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb)+QpBdOffset (1122)
Qp’Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)+QpBdOffset (1123)
Qp’CbCr=Clip3(-QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset+slice_joint_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffset (1124)
図15は、ACTが適用される復号フローチャートを示す。図1に示すように、色空間変換は、残差ドメインで実行される。具体的には、1つの更なる復号モジュール、すなわち、逆ACTが、YCgCoドメインから元のドメインに戻すように残差を変換するために逆変換の後に導入される。
VVCでは、最大変換サイズが1つのコーディングユニット(coding unit,CU)の幅又は高さよりも小さい場合を除き、1つのCUリーフノードも変換処理の単位として使用される。したがって、提案される実装では、その残差をコーディングするための色空間を選択するために、1つのCUについてACTフラグが通知される。さらに、HEVC ACT設計に従って、インター及びIBC CUについて、CU内に少なくとも1つの非ゼロ係数が存在する場合にのみ、ACTが有効になる。イントラCUでは、クロマ成分がルマ成分の同じイントラ予測モード、すなわち、DMモードを選択する場合にのみ、ACTが有効になる。
色空間変換に使用されるコア変換は、HEVCに使用されるものと同じに保持される。具体的には、以下に記載の順方向及び逆方向YCgCo色変換行列が適用される。
一方、図15に示すように、順方向及び逆方向の色変換は、全ての3つの成分の残差にアクセスする必要がある。対応して、提案される実装では、ACTは、3つの成分の全ての残差が利用可能でない以下の2つのシナリオで無効になる。
1. セパレートツリーパーティション(separate tree partition):セパレートツリーが適用される場合、1つのCTU内のルマ及びクロマサンプルは、異なる構造によってパーティション化される。その結果、ルマツリーのCUがルマ成分のみを含み、クロマツリーのCUが2つのクロマ成分のみを含む。
イントラサブパーティション予測(Intra sub-partition prediction,ISP):ISPサブパーティションはルマにのみ適用され、クロマ信号は分割せずにコーディングされる。現在のISP設計では、最後のISPサブパーティションを除いて、他のサブパーティションはルマ成分のみを含む。
制御メカニズムが以下の図16に示されている。
図14Aは、他のループフィルタに対するCC-ALFの配置を示す。CC-ALFは、クロマ成分毎にルマチャネルに対して線形のダイヤモンド形状のフィルタ(図14B)を適用することによって動作し、これは以下のように表される。
サポート領域が中心にあるルマ位置(xC,yC)は、ルマ面とクロマ面との間の空間スケーリング係数に基づいて計算される。全てのフィルタ係数はAPSで伝送され、8ビットのダイナミックレンジを有する。APSは、スライスヘッダで参照されてもよい。スライスの各クロマ成分に使用されるCC-ALF係数も、時間サブレイヤに対応するバッファに格納される。これらの時間サブレイヤのフィルタ係数のセットの再利用は、スライスレベルのフラグを使用して実現される。CC-ALFフィルタの適用は、可変ブロックサイズ(すなわち、16×16、32×32、64×64、128×128)で制御され、サンプルのブロック毎に受信されるコンテキストコーディングされたフラグによって通知される。ブロックサイズは、CC-ALF有効フラグと共にクロマ成分毎にスライスレベルで受信される。水平仮想境界についての境界パディングは繰り返しを利用する。残りの境界では、通常のALFと同じタイプのパディングが使用される。
pic_cross_component_alf_cb_aps_idは、PHに関連するスライスのCb色成分が参照するALF APSのadaptation_parameter_set_idを指定する。
ALF_APSに等しいaps_params_type及びpic_cross_component_alf_cb_aps_idに等しいadaptation_parameter_set_idを有するAPS NALユニットのalf_cross_component_cb_filter_signal_flagは、1に等しいものとする。
pic_cross_component_cb_filters_signalled_minus1に1を加えたものは、クロスコンポーネントCbフィルタの数を指定する。pic_cross_component_cb_filters_signalled_minus1の値は0から3の範囲にあるものとする。
pic_cross_component_alf_cb_enabled_flagが1に等しい場合、pic_cross_component_cb_filters_signalled_minus1がpic_cross_component_alf_cb_aps_idによって参照される参照ALF APS内のalf_cross_component_cb_filters_signalled_minus1の値以下であることがビットストリーム適合の要件である。
1に等しいpic_cross_component_alf_cr_enabled_flagは、クロスコンポーネントCrフィルタがPHに関連する全てのスライスに有効であり、スライス内のCr色成分に適用されてもよいことを指定する。0に等しいpic_cross_component_alf_cr_enabled_flagは、クロスコンポーネントCrフィルタがPHに関連する1つ以上のスライス又は全てのスライスに無効でもよいことを指定する。存在しない場合、pic_cross_component_alf_cr_enabled_flagは0に等しいと推定される。
pic_cross_component_alf_cr_aps_idは、PHに関連するスライスのCr色成分が参照するALF APSのadaptation_parameter_set_idを指定する。
ALF_APSに等しいaps_params_type及びpic_cross_component_alf_cr_aps_idに等しいadaptation_parameter_set_idを有するAPS NALユニットのalf_cross_component_cr_filter_signal_flagは、1に等しいものとする。
pic_cross_component_cr_filters_signalled_minus1に1を加えたものは、クロスコンポーネントCrフィルタの数を指定する。pic_cross_component_cr_filters_signalled_minus1の値は0から3の範囲にあるものとする。
pic_cross_component_alf_cr_enabled_flagが1に等しい場合、pic_cross_component_cr_filters_signalled_minus1がpic_cross_component_alf_cr_aps_idによって参照される参照ALF APS内のalf_cross_component_cr_filters_signalled_minus1の値以下であることがビットストリーム適合の要件である。
1に等しいalf_cross_component_cb_filter_signal_flagは、クロスコンポーネントCbフィルタが通知されることを指定する。0に等しいalf_cross_component_cb_filter_signal_flagは、クロスコンポーネントCbフィルタが通知されないことを指定する。ChromaArrayTypeが0に等しい場合、alf_cross_component_cb_filter_signal_flagは0に等しいものとする。
alf_cross_component_cb_filters_signalled_minus1に1を加えたものは、現在のALF APSで通知されるクロスコンポーネントCbフィルタの数を指定する。alf_cross_component_cb_filters_signalled_minus1の値は0から3の範囲にあるものとする。
alf_cross_component_cb_coeff_plus32[k][j]から32を引いたものは、通知された第kのクロスコンポーネントCbフィルタセットの第jの係数の値を指定する。alf_cross_component_cb_coeff_plus32[k][j]が存在しない場合、32に等しいと推定される。
要素CcAlfApsCoeffCb[adaptation_parameter_set_id][k][j](j=0..7)を有する通知された第kのクロスコンポーネントCbフィルタ係数CcAlfApsCoeffCb[adaptation_parameter_set_id][k]は以下のように導出される。
CcAlfApsCoeffCb[adaptation_parameter_set_id][k][j]=alf_cross_component_cb_coeff_plus32[k][j]-32 (7-51)
1に等しいalf_cross_component_cr_filter_signal_flagは、クロスコンポーネントCrフィルタが通知されることを指定する。0に等しいalf_cross_component_cr_filter_signal_flagは、クロスコンポーネントCrフィルタが通知されないことを指定する。ChromaArrayTypeが0に等しい場合、alf_cross_component_cr_filter_signal_flagは0に等しいものとする。
alf_cross_component_cr_filters_signalled_minus1に1を加えたものは、現在のALF APSで通知されるクロスコンポーネントCrフィルタの数を指定する。alf_cross_component_cr_filters_signalled_minus1の値は0から3の範囲にあるものとする。
alf_cross_component_cr_coeff_plus32[k][j]から32を引いたものは、通知された第kのクロスコンポーネントCrフィルタセットの第jの係数の値を指定する。alf_cross_component_cr_coeff_plus32[k][j]が存在しない場合、32に等しいと推定される。
要素CcAlfApsCoeffCr[adaptation_parameter_set_id][k][j](j=0..7)を有する通知された第kのクロスコンポーネントCrフィルタ係数CcAlfApsCoeffCr[adaptation_parameter_set_id][k]は以下のように導出される。
CcAlfApsCoeffCr[adaptation_parameter_set_id][k][j]=alf_cross_component_cr_coeff_plus32[k][j]-32 (7-52)
DMVR及びBIOは、動きベクトルを洗練化する間に元の信号を含まず、その結果、不正確な動き情報を有するコーディングブロックを生じる可能性がある。また、DMVR及びBIOは、場合によっては、動き洗練化後に分数動きベクトルを使用するが、通常では、スクリーンビデオは整数動きベクトルを有し、これは、現在の動き情報をより不正確にし、コーディング性能を悪くする。
1. クロマQPテーブルとクロマデブロッキングとの間の相互作用は問題を有する可能性がある。例えば、クロマQPテーブルは個々のQPに適用されるべきであるが、QPの加重和には適用されないべきである。
2. ルマデブロッキングフィルタリングプロセスのロジックは、ハードウェア設計にとって複雑である。
3. 境界強度導出のロジックは、ソフトウェア設計とハードウェア設計との双方にとって複雑すぎる。
4. BS決定プロセスでは、JCCRはJCCTを適用せずにコーディングされたブロックとは別に扱われる。しかし、JCCRは残差をコーディングするための特別な方法に過ぎない。したがって、このような設計は、明確な利点がなく、更なる複雑性をもたらす可能性がある。
5. クロマエッジ決定ではQpQ及びQpPは、それぞれ、サンプルq0,0及びp0,0を含むコーディングブロックを含むコーディングユニットのQpY値に等しく設定される。しかし、量子化/逆量子化プロセスでは、クロマサンプルのQPは、現在のクロマCUの中心位置の対応するルマサンプルをカバーするルマブロックのQPから導出される。デュアルツリーが有効である場合、ルマブロックの異なる位置は、異なるQPを生じる可能性がある。したがって、クロマデブロッキングプロセスでは、誤ったQPがフィルタ決定に使用される可能性がある。このような不整合は、視覚アーチファクトを生じる可能性がある。図9A及び9Bを含む、図9A~9Bに例が示されている。図9A~9Bにおいて、左側(図9A)は、ルマブロックについての対応するCTBパーティションであり、右側(図9B)は、デュアルツリーでのクロマCTBパーティションである。CUc1で示されるクロマブロックのQPを決定する場合、CUc1の中心位置が最初に導出される。次いで、CUc1の中心位置の対応するルマサンプルが特定され、対応するルマサンプルをカバーするルマCU、すなわち、CUY3に関連するルマQPが、CUc1のQPを導出するために利用される。しかし、示された3つのサンプル(実線の円)についてフィルタ決定を行う場合、対応する3つのサンプルをカバーするCUのQPが選択される。したがって、第1、第2及び第3のクロマサンプル(図9Bに示される)について、それぞれCUY2、CUY3及びCUY4のQPが利用される。すなわち、同じCU内のクロマサンプルがフィルタ決定について異なるQPを使用する可能性があり、誤った決定を生じる可能性がある。
6. 異なるピクチャレベルのQPオフセット(すなわち、pps_joint_cbcr_qp_offset)は、JCCRコーディングされたブロックに適用され、これは、非JCCRコーディングされたブロックに適用されるCb/Crについてのピクチャレベルのオフセット(例えば、pps_cb_qp_offset及びpps_cr_qp_offset)とは異なる。しかし、クロマデブロッキングフィルタ決定プロセスでは、非JCCRコーディングされたブロックについてのこれらのオフセットのみが利用される。コーディングモードの考慮が欠けていると、誤ったフィルタ決定を生じる可能性がある。
7. TSコーディングされたブロック及びTSコーディングされていないブロックは、逆量子化プロセスにおいて異なるQPを使用し、これはデブロッキングプロセスにおいても考慮される可能性がある。
8. 異なるモードを有するJCCRコーディングされたブロックについてのスケーリングプロセス(量子化/逆量子化)では、異なるQPが使用される。このような設計は一貫していない。
9. Cb/Crのクロマデブロッキングは、並列設計のために統一化されてもよい。
10. デブロッキングにおけるクロマQPは、クロマ逆量子化プロセスで使用されるQP(例えば、qP)に基づいて導出されるが、デブロッキングプロセスで使用される場合、TS及びACTブロックについてqPはクリッピングされるべき或いはマイナス5となるべきである。
11. BDPCMとACTとの双方が有効である場合、3つの成分の予測プロセスは同じではない可能性がある。
12. クロマ成分についてのCC-ALFの有効/無効は、ピクチャヘッダで通知される。しかし、カラーフォーマットが4:0:0である場合、このような情報を通知する必要はないが、現在のVVC仕様では通知されている。
13. クロマBDPCM、ACT及びパレットモードでは、chroma_format_idcが3に等しいという条件チェックの下で、SPS制御フラグが通知される。これは、4:4:4のカラーフォーマットではセパレートプレーンコーディング(separate plane coding)(別々の面のコーディング)が使用されても、ピクチャがモノクロピクチャとして扱われる場合であっても、これらのフラグが依然として通知される必要があることを意味する。関連するシンタックスエレメントは以下のように定義される。
[7.3.2.3 シーケンスパラメータセットのRBSPのシンタックス]
以下に記載される詳細な実施形態は、一般的な概念を説明するための例として考慮されるべきである。これらの実施形態は狭義に解釈されるべきではない。さらに、これらの実施形態は、いずれかの方式で組み合わせることができる。
1. クロマQPテーブルが(例えば、クロマブロックエッジの決定プロセスにおいて)クロマデブロッキングを制御するためのパラメータを導出するために使用される場合、クロマQPオフセットは、クロマQPテーブルを適用した後に適用されてもよい。
a. 一例では、クロマQPオフセットは、クロマQPテーブルによって出力される値に追加されてもよい。
b. 或いは、クロマQPオフセットは、クロマQPテーブルへの入力として考慮されなくてもよい。
c. 一例では、クロマQPオフセットは、ピクチャレベル又は他のビデオユニットレベル(スライス/タイル/ブリック/サブピクチャ)のクロマ量子化パラメータオフセット(例えば、仕様におけるpps_cb_qp_offset、pps_cr_qp_offset)でもよい。
2. QPクリッピングは、クロマQPテーブルの入力に適用されなくてもよい。
3. クロマ成分についてのデブロッキングプロセスは、各サイドのマッピングされたクロマQP(クロマQPテーブルによる)に基づいてもよいことが提案される。
a. 一例では、クロマについてのデブロッキングパラメータ(例えば、β及びtC)は、各サイドのルマQPから導出されたQPに基づいてもよいことが提案される。
b. 一例では、クロマデブロッキングパラメータは、テーブルインデックスとしてQpPを有するクロマQPテーブル値に依存してもよい。ここで、QpPは、PサイドのルマQP値である。
c. 一例では、クロマデブロッキングパラメータは、テーブルインデックスとしてQpQを有するクロマQPテーブル値に依存してもよい。ここで、QpQは、QサイドのルマQP値である。
4. クロマ成分についてのデブロッキングプロセスは、クロマブロックについての量子化/逆量子化に適用されるQPに基づいてもよいことが提案される。
a. 一例では、逆量子化プロセスについてのQPは、逆量子化におけるQPに等しくてもよい。
b. 一例では、デブロッキングプロセスについてのQP選択は、TS及び/又はACTブロックの使用の指示に依存してもよい。
i. 一例では、デブロッキングプロセスについてのQPはMax(QpPrimeTsMin,qP)-(cu_act_enabled_flag[xTbY][yTbY]?N:0)によって導出されてもよい。ここで、QpPrimeTsMinはTSブロックの最小QPであり、cu_act_enabled_flagはACTの使用のフラグである。
1. 一例では、qPは、第2.8節で与えられたQp’Cb又はQp’Crでもよい。
ii. 一例では、デブロッキングプロセスについてのQPはMax(QpPrimeTsMin,qP-(cu_act_enabled_flag[xTbY][yTbY]?N:0])によって導出されてもよい。ここで、QpPrimeTsMinはTSブロックの最小QPであり、cu_act_enabled_flagはACTの使用のフラグである。
1. 一例では、qPは、第2.8節で与えられたQp’Cb又はQp’Crでもよい。
iii. 上記の例では、Nは、各色成分について同じ値又は異なる値に設定されてもよい。
1. 一例では、NはCb/B/G/U/成分について5に設定されてもよく、及び/又は、NはCr/R/B/V成分について3に設定されてもよい。
c. 一例では、デブロッキングプロセスで使用されるブロックのQPは、0に等しいデルタQP(例えば、CuQpDeltaVal)で、第2.8節に記載されるプロセスによって導出されてもよい。
i. 一例では、上記の導出は、ブロックのコーディングブロックフラグ(coded block flag,cbf)が0に等しい場合にのみ適用されてもよい。
d. 一例では、上記の例は、ルマブロック及び/又はクロマブロックに適用されてもよい。
e. 一例では、デブロッキングプロセスで使用される第1のブロックのQPは、記憶されたQPに等しく設定され、第2のブロックを予測するために利用されてもよい。
i. 一例では、全てのゼロの係数を有するブロックについて、デブロッキングプロセスで使用される関連QPは、記憶されたQPに等しく設定され、第2のブロックを予測するために使用されてもよい。
5. デブロッキングフィルタ決定プロセスにおける異なるコーディング方法に使用されるピクチャ/スライス/タイル/ブリック/サブピクチャレベルの量子化パラメータオフセットを考慮することが提案される。
a. 一例では、フィルタ決定(例えば、デブロッキングフィルタプロセスにおけるクロマエッジ決定)のためのピクチャ/スライス/タイル/ブリック/サブピクチャレベルの量子化パラメータオフセットの選択は、各サイドについてコーディングされた方法に依存してもよい。
b. 一例では、クロマブロックについて量子化パラメータを使用することを必要とするフィルタリングプロセス(例えば、クロマエッジ決定プロセス)は、ブロックがJCCRを使用するか否かに依存してもよい。
i. 或いは、さらに、JCCRコーディングされたブロックに適用されるピクチャ/スライスレベルのQPオフセット(例えば、pps_joint_cbcr_qp_offset)は、デブロッキングフィルタリングプロセスにおいて更に考慮されてもよい。
ii. 一例では、Tc及びβの設定を決定するために使用されるcQpPicOffsetは、特定の条件下でpps_cb_qp_offset又はpps_cr_qp_offsetの代わりにpps_joint_cbcr_qp_offsetに設定されてもよい。
1. 一例では、P又はQサイドのいずれかのブロックがJCCRを使用する場合。
2. 一例では、P又はQサイドの双方のブロックがJCCRを使用する場合。
iii. 或いは、さらに、フィルタリングプロセスは、JCCRのモード(例えば、モードが2に等しいか否か)に依存してもよい。
6. ルマブロックの復号情報にアクセスすることを必要とするクロマフィルタリングプロセス(例えば、クロマエッジ決定プロセス)は、逆量子化/量子化プロセスにおいてクロマQPを導出するために使用されるのと同じルマコーディングブロックに関連する情報を利用してもよい。
a. 一例では、ルマブロックについて量子化パラメータを使用することを必要とするクロマフィルタリングプロセス(例えば、クロマエッジ決定プロセス)は、現在のクロマCUの中心位置の対応するルマサンプルをカバーするルマコーディングユニットを利用してもよい。
b. 一例が図9A~9Bに示されており、CUY3の復号情報は、図9Bにおける3つのクロマサンプル(第1、第2及び第3)のフィルタリング決定に使用されてもよい。
7. クロマフィルタリングプロセス(例えば、クロマエッジ決定プロセス)は、クロマブロックのスケーリングプロセス(例えば、量子化/逆量子化)に適用される量子化パラメータに依存してもよい。
a. 一例では、β及びTcを導出するために使用されるQPは、クロマブロックのスケーリングプロセスに適用されるQPに依存してもよい。
b. 或いは、さらに、クロマブロックのスケーリングプロセスに使用されるQPは、クロマCUレベルのQPオフセットを考慮に入れてもよい。
8. 上記の項目を呼び出すか否かは、フィルタリングされるサンプルがP又はQサイドのブロックにあることに依存してもよい。
a. 例えば、現在のクロマサンプルの対応するルマサンプルをカバーするルマコーディングブロックの情報を使用するか、現在のクロマサンプルをカバーするクロマコーディングブロックの中心位置の対応するルマサンプルをカバーするルマコーディングブロックの情報を使用するかは、ブロック位置に依存してもよい。
i. 一例では、現在のクロマサンプルがQサイドのブロックにある場合、現在のクロマサンプルをカバーするクロマコーディングブロックの中心位置の対応するルマサンプルをカバーするルマコーディングブロックのQP情報が使用されてもよい。
ii. 一例では、現在のクロマサンプルがPサイドのブロックにある場合、クロマサンプルの対応するルマサンプルをカバーするルマコーディングブロックのQP情報が使用されてもよい。
9. デブロッキングで使用されるクロマQPは、対応する変換ブロックの情報に依存してもよい。
a. 一例では、PサイドのデブロッキングのためのクロマQPは、Pサイドの変換ブロックのモードに依存してもよい。
i. 一例では、PサイドのデブロッキングのためのクロマQPは、Pサイドの変換ブロックがJCCRを適用してコーディングされるか否かに依存してもよい。
ii. 一例では、PサイドのデブロッキングのためのクロマQPは、Pサイドの変換ブロックがjoint_cb_crモードでコーディングされ、JCCRのモードが2に等しいか否かに依存してもよい。
b. 一例では、QサイドのデブロッキングのためのクロマQPは、Qサイドの変換ブロックのモードに依存してもよい。
i. 一例では、QサイドのデブロッキングのためのクロマQPは、Qサイドの変換ブロックがJCCRを適用してコーディングされるか否かに依存してもよい。
ii. 一例では、QサイドのデブロッキングのためのクロマQPは、Qサイドの変換ブロックがJCCRを適用してコーディングされ、JCCRのモードが2に等しいか否かに依存してもよい。
10. クロマQPの通知は、コーディングユニット単位でもよい。
a. 一例では、コーディングユニットサイズが最大変換ブロックサイズ、すなわち、maxTBよりも大きい場合、クロマQPはCUレベルで通知されてもよい。或いは、TUレベルで通知されてもよい。
b. 一例では、コーディングユニットサイズがVPDUのサイズよりも大きい場合、クロマQPは、CUレベルで通知されてもよい。或いは、TUレベルで通知されてもよい。
11. ブロックがjoint_cb_crモードであるか否かは、コーディングユニットレベルで示されてもよい。
a. 一例では、変換ブロックがjoint_cb_crモードであるか否かは、変換ブロックを含むコーディングユニットの情報を継承してもよい。
12. デブロッキングで使用されるクロマQPは、ビットデプスのため、スケーリングプロセスで使用されるクロマQPからQPオフセットを引いたものに依存してもよい。
a. 一例では、Pサイドのデブロッキングで使用されるクロマQPは、TuCResMode[xTb][yTb]が2に等しい場合、スケーリングプロセスで使用されるJCCRクロマQP、すなわち、Qp’CbCrからQpBdOffsetCを引いたものに設定される。ここで、(xTb,yTb)は、Pサイドの最初のサンプル、すなわち、p0,0を含む変換ブロックを示す。
b. 一例では、Pサイドのデブロッキングで使用されるクロマQPは、TuCResMode[xTb][yTb]が2に等しい場合、スケーリングプロセスで使用されるCbクロマQP、すなわち、Qp’CbからQpBdOffsetCを引いたものに設定される。ここで、(xTb,yTb)は、Pサイドの最初のサンプル、すなわち、p0,0を含む変換ブロックを示す。
c. 一例では、Pサイドのデブロッキングで使用されるクロマQPは、TuCResMode[xTb][yTb]が2に等しい場合、スケーリングプロセスで使用されるCrクロマQP、すなわち、Qp’CrからQpBdOffsetCを引いたものに設定される。ここで、(xTb,yTb)は、Pサイドの最初のサンプル、すなわち、p0,0を含む変換ブロックを示す。
d. 一例では、Qサイドのデブロッキングで使用されるクロマQPは、TuCResMode[xTb][yTb]が2に等しい場合、スケーリングプロセスで使用されるJCCRクロマQP、すなわち、Qp’CbCrからQpBdOffsetCを引いたものに設定される。ここで、(xTb,yTb)は、Qサイドの最後のサンプル、すなわち、q0,0を含む変換ブロックを示す。
e. 一例では、Qサイドのデブロッキングで使用されるクロマQPは、TuCResMode[xTb][yTb]が2に等しい場合、スケーリングプロセスで使用されるCbクロマQP、すなわち、Qp’CbからQpBdOffsetCを引いたものに設定される。ここで、(xTb,yTb)は、Qサイドの最後のサンプル、すなわち、q0,0を含む変換ブロックを示す。
f. 一例では、Qサイドのデブロッキングで使用されるクロマQPは、TuCResMode[xTb][yTb]が2に等しい場合、スケーリングプロセスで使用されるCrクロマQP、すなわち、Qp’CrからQpBdOffsetCを引いたものに設定される。ここで、(xTb,yTb)は、Qサイドの最後のサンプル、すなわち、q0,0を含む変換ブロックを示す。
13. 異なる色成分は、異なるデブロッキング強度制御を有してもよい。
a. 一例では、各成分は、そのpps_beta_offset_div2、pps_tc_offset_div2及び/又はpic_beta_offset_div2、pc_tc_offset_div2及び/又はslice_beta_offset_div2、slice_tc_offset_div2を有してもよい。
b. 一例では、joint_cb_crモードでは、異なるセットのbeta_offset_div2、tc_offset_div2がPPS及び/又はピクチャヘッダ及び/又はスライスヘッダにおいて適用されてもよい。
14. オーバライドメカニズムを使用する代わりに、異なるレベルでのオフセットを考慮して、デブロッキング制御オフセットが累積されてもよい。
a. 一例では、pps_beta_offset_div2及び/又はpic_beta_offset_div2及び/又はslice_beta_offset_div2は、スライスレベルでのデブロッキングオフセットを得るために累積されてもよい。
b. 一例では、pps_tc_offset_div2及び/又はpic_tc_offset_div2及び/又はslice_tc_offset_div2は、スライスレベルでのデブロッキングオフセットを得るために累積されてもよい。
15. ブロックレベルのクロマQPオフセットを有効にする指示(例えば、slice_cu_chroma_qp_offset_enabled_flag)を、スライス/タイル/ブリック/サブピクチャレベルで通知することが提案される。
a. 或いは、このような指示の通知は条件付きで通知されてもよい。
i. 一例では、JCCR有効フラグの条件下で通知されてもよい。
ii. 一例では、ピクチャレベルにおけるブロックレベルのクロマQPオフセット有効フラグの条件下で通知されてもよい。
iii. 或いは、このような指示が代わりに導出されてもよい。
b. 一例では、slice_cu_chroma_qp_offset_enabled_flagは、クロマQPオフセットのPPSフラグ(例えば、slice_cu_chroma_qp_offset_enabled_flag)が真である場合にのみ通知されてもよい。
c. 一例では、slice_cu_chroma_qp_offset_enabled_flagは、クロマQPオフセットのPPSフラグ(例えば、slice_cu_chroma_qp_offset_enabled_flag)が偽である場合にのみ推定されてもよい。
d. 一例では、ブロック上でクロマQPオフセットを使用するか否かは、PPSレベル及び/又はスライスレベルにおけるクロマQPオフセットのフラグに基づいてもよい。
16. 異なるモードを有するJCCRコーディングされたブロックのスケーリングプロセス(量子化/逆量子化)で、同じQP導出方法が使用される。
a. 一例では、モード1及び3を有するJCCRについて、QPは、ピクチャ/スライスレベルで通知されたQPオフセット(例えば、pps_cbcr_qp_offset、slice_cbcr_qp_offset)に依存する。
17. 第1の色成分を除く全ての色成分についてのデブロッキングは、第1の色成分についてのデブロッキングプロセスに従ってもよい。
a. 一例では、カラーフォーマットが4:4:4である場合、第2及び第3の成分についてのデブロッキングプロセスは、第1の成分についてのデブロッキングプロセスに従ってもよい。
b. 一例では、カラーフォーマットがRGB色空間において4:4:4である場合、第2及び第3の成分についてのデブロッキングプロセスは、第1の成分についてのデブロッキングプロセスに従ってもよい。
c. 一例では、カラーフォーマットが4:2:2である場合、第2及び第3の成分についての垂直デブロッキングプロセスは、第1の成分についての垂直デブロッキングプロセスに従ってもよい。
d. 上記の例では、デブロッキングプロセスは、デブロッキング決定プロセス及び/又はデブロッキングフィルタリングプロセスを示してもよい。
18. デブロッキングフィルタプロセスで使用される勾配を計算する方法は、コーディングモード情報及び/又は量子化パラメータに依存してもよい。
a. 一例では、勾配計算は、そのサイドのサンプルが可逆コーディングされていないサイドの勾配のみを考慮してもよい。
b. 一例では、双方のサイドが可逆コーディング又はほぼ可逆コーディング(例えば、4に等しい量子化パラメータ)されている場合、勾配は直接0に設定されてもよい。
i. 或いは、双方のサイドが可逆コーディング又はほぼ可逆コーディング(例えば、4に等しい量子化パラメータ)されている場合、境界強度(例えば、BS)は、0に設定されてもよい。
c. 一例では、Pサイドのサンプルが可逆コーディングされ、Qサイドのサンプルが非可逆コーディングされている場合、デブロッキングのオン/オフ決定及び/又は強フィルタのオン/オフ決定で使用される勾配は、Qサイドのサンプルの勾配のみを含んでもよく、その逆も同様である。
i. 或いは、さらに、1つのサイドの勾配は、Nによってスケーリングされてもよい。
1. Nは整数(例えば2)であり、以下に依存してもよい。
a. ビデオコンテンツ(例えば、スクリーンコンテンツ、ナチュラルコンテンツ)
b. DPS/SPS/VPS/PPS/PPS/APS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/最大コーディングユニット(Largest coding unit,LCU)/コーディングユニット(Coding unit,CU)/LCU行/LCUのグループ/TU/PUブロック/ビデオコーディングユニットで通知されたメッセージ
c. CU/PU/TU/ブロック/ビデオコーディングユニットの位置
d. エッジに沿ったサンプルを含むブロックのコーディングモード
e. エッジに沿ったサンプルを含むブロックに適用される変換行列
f. 現在のブロック及び/又はその隣接ブロックのブロック寸法/ブロック形状
g. カラーフォーマットの指示(4:2:0、4:4:4、RGB又はYUV等)
h. コーディングツリー構造(デュアルツリー又はシングルツリー等)
i. スライス/タイルグループタイプ及び/又はピクチャタイプ
j. 色成分(例えば、Cb又はCrにのみ適用されてもよい)
k. 時間レイヤID
l. 標準のプロファイル/レベル/層
m. 或いは、Nはデコーダに通知されてもよい。
19. 境界強度決定プロセスにおいて、JCCRコーディングされたブロックを非JCCRコーディングされたブロックとして扱うことが提案される。
a. 一例では、境界強度(boundary strength,BS)の決定は、P及びQサイドの2つのブロックについてのJCCRの使用のチェックから独立してもよい。
a. 一例では、ブロックの境界強度(boundary strength,BS)は、そのブロックがJCCRでコーディングされるか否かにかかわらず決定されてもよい。
20. Pサイドのブロックに関連する参照ピクチャ及び/又はMV数をQサイドのブロックの参照ピクチャと比較することなく、境界強度(boundary strength,BS)を導出することが提案される。
b. 一例では、デブロッキングフィルタは、2つのブロックが異なる参照ピクチャを有する場合であっても無効になってもよい。
c. 一例では、デブロッキングフィルタは、2つのブロックが異なるMV数を有する(例えば、一方は一方向予測であり、他方は双方向予測である)場合であっても無効になってもよい。
d. 一例では、BSの値は、PサイドのブロックとQサイドのブロックとの間の1つ又は全ての参照ピクチャリストの動きベクトル差が閾値Th以上である場合、1に設定されてもよい。
i. 或いは、さらに、BSの値は、PサイドのブロックとQサイドのブロックとの間の1つ又は全ての参照ピクチャリストの動きベクトル差が閾値Th以下である場合、0に設定されてもよい。
e. 一例では、閾値Thよりも大きい2つのブロックの動きベクトルの差は、(Abs(MVP[0].x-MVQ[0].x)>Th||Abs(MVP[0].y-MVQ[0].y)>Th||Abs(MVP[1].x-MVQ[1].x)>Th)||Abs(MVP[1].y-MVQ[1].y)> Th)として定義されてもよい。
i. 或いは、閾値Thよりも大きい2つのブロックの動きベクトルの差は、(Abs(MVP[0].x-MVQ[0].x)>Th&&Abs(MVP[0].y-MVQ[0].y)>Th&&Abs(MVP[1].x-MVQ[1].x)>Th)&&Abs(MVP[1].y-MVQ[1].y)>Th)として定義されてもよい。
ii. 或いは、一例では、閾値Thよりも大きい2つのブロックの動きベクトルの差は、(Abs(MVP[0].x-MVQ[0].x)>Th||Abs(MVP[0].y-MVQ[0].y)>Th)&&(Abs(MVP[1].x-MVQ[1].x)>Th)||Abs(MVP[1].y-MVQ[1].y)>Th)として定義されてもよい。
iii. 或いは、一例では、閾値Thよりも大きい2つのブロックの動きベクトルの差は、(Abs(MVP[0].x-MVQ[0].x)>Th&&Abs(MVP[0].y-MVQ[0].y)>Th)||(Abs(MVP[1].x-MVQ[1].x)>Th)&&Abs(MVP[1].y-MVQ[1].y)>Th)として定義されてもよい。
f. 一例では、所与のリスト内に動きベクトルを有さないブロックは、そのリスト内でゼロの動きベクトルを有するものとして扱われてもよい。
g. 上記の例では、Thは整数(例えば、4、8又は16)である。
h. 上記の例では、Thは以下に依存してもよい。
i. ビデオコンテンツ(例えば、スクリーンコンテンツ、ナチュラルコンテンツ)
ii. DPS/SPS/VPS/PPS/PPS/APS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/最大コーディングユニット(Largest coding unit,LCU)/コーディングユニット(Coding unit,CU)/LCU行/LCUのグループ/TU/PUブロック/ビデオコーディングユニットで通知されたメッセージ
iii. CU/PU/TU/ブロック/ビデオコーディングユニットの位置
iv. エッジに沿ったサンプルを含むブロックのコーディングモード
v. エッジに沿ったサンプルを含むブロックに適用される変換行列
vi. 現在のブロック及び/又はその隣接ブロックのブロック寸法/ブロック形状
vii. カラーフォーマットの指示(4:2:0、4:4:4、RGB又はYUV等)
viii. コーディングツリー構造(デュアルツリー又はシングルツリー等)
ix. スライス/タイルグループタイプ及び/又はピクチャタイプ
x. 色成分(例えば、Cb又はCrにのみ適用されてもよい)
xi. 時間レイヤID
xii. 標準のプロファイル/レベル/層
xiii. 或いは、Thはデコーダに通知されてもよい。
i. 上記の例は、特定の条件下で適用されてもよい。
i. 一例では、条件は、blkP及びblkQがイントラモードでコーディングされないことである。
ii. 一例では、条件は、blkP及びblkQがルマ成分においてゼロの係数を有することである。
iii. 一例では、条件は、blkP及びblkQがCIIPモードでコーディングされないことである。
iv. 一例では、条件は、blkP及びblkQが同じ予測モード(例えば、IBC又はインター)でコーディングされることである。
21. デブロッキングは、TSコーディングされたブロックとTSコーディングされていないブロックについて異なるQPを使用してもよい。
a. 一例では、TSについてのQPはTSコーディングされたブロックで使用されてもよく、非TSについてのQPはTSコーディングされないブロックで使用されてもよい。
22. ルマフィルタリングプロセス(例えば、ルマエッジ決定プロセス)は、ルマブロックのスケーリングプロセスに適用される量子化パラメータに依存してもよい。
a. 一例では、ベータ及びTcを導出するために使用されるQPは、例えばQpPrimeTsMinによって示されるように、変換スキップのクリッピング範囲に依存してもよい。
23. 大きいブロック境界及びより小さいブロック境界について同じ勾配計算を使用することが提案される。
a. 一例では、第2.1.4節に記載されるデブロッキングフィルタのオン/オフ決定は、大きいブロック境界にも適用されてもよい。
i. 一例では、決定における閾値ベータは、大きいブロック境界について修正されてもよい。
1. 一例において、ベータは、量子化パラメータに依存してもよい。
2. 一例では、大きいブロック境界についてのデブロッキングフィルタのオン/オフ決定に使用されるベータは、より小さいブロック境界についてのものよりも小さくてもよい。
a. 或いは、一例では、大きいブロック境界についてのデブロッキングフィルタのオン/オフ決定に使用されるベータは、より小さいブロック境界についてのものよりも大きくてもよい。
b. 或いは、一例では、大きいブロック境界についてのデブロッキングフィルタのオン/オフ決定に使用されるベータは、より小さいブロック境界についてのものと等しくてもよい。
3. 一例では、ベータは整数であり、以下に基づいてもよい。
a. ビデオコンテンツ(例えば、スクリーンコンテンツ、ナチュラルコンテンツ)
b. DPS/SPS/VPS/PPS/PPS/APS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/最大コーディングユニット(Largest coding unit,LCU)/コーディングユニット(Coding unit,CU)/LCU行/LCUのグループ/TU/PUブロック/ビデオコーディングユニットで通知されたメッセージ
c. CU/PU/TU/ブロック/ビデオコーディングユニットの位置
d. エッジに沿ったサンプルを含むブロックのコーディングモード
e. エッジに沿ったサンプルを含むブロックに適用される変換行列
f. 現在のブロック及び/又はその隣接ブロックのブロック寸法
g. 現在のブロック及び/又はその隣接ブロックのブロック形状
h. カラーフォーマットの指示(4:2:0、4:4:4、RGB又はYUV等)
i. コーディングツリー構造(デュアルツリー又はシングルツリー等)
j. スライス/タイルグループタイプ及び/又はピクチャタイプ
k. 色成分(例えば、Cb又はCrにのみ適用されてもよい)
l. 時間レイヤID
m. 標準のプロファイル/レベル/層
n. 或いは、ベータはデコーダに通知されてもよい。
24. 量子化行列の特定の位置の値は、一定に設定されてもよい。
a. 一例では、位置は、(x,y)の位置でもよく、ここで、x及びyは、2つの整数の変数(例えば、x=y=0)であり、(x,y)は、TU/TB/PU/PB/CU/CBに対する座標である。
i. 一例では、位置はDCの位置でもよい。
b. 一例では、定数値は16でもよい。
c. 一例では、これらの位置について、行列値の通知が利用されなくてもよい。
25. 量子化行列のいくつかの位置の平均/加重平均が定数になり得る制約が設定されてもよい。
a. 一例では、デブロッキングプロセスは、定数値に依存してもよい。
b. 一例では、定数値は、DPS/VPS/SPS/PPS/スライス/ピクチャ/タイル/ブリックヘッダで示されてもよい。
26. ピクチャヘッダに関連するピクチャ内で選択されるスケーリング行列を通知するために、1つ又は複数の指示がピクチャヘッダで通知されてもよい。
27. CCALFはデコーダにおいて何らかのループフィルタリングプロセスの前に適用されてもよい
a. 一例では、CCALFは、デコーダにおいてデブロッキングプロセスの前に適用されてもよい。
b. 一例では、CCALFは、デコーダにおいてSAOの前に適用されてもよい。
c. 一例では、CCALFは、デコーダにおいてALFの前に適用されてもよい。
d. 或いは、異なるフィルタ(例えば、CCALF、ALF、SAO、デブロッキングフィルタ)の順序は、固定されなくてもよい。
i. 一例では、CCLAFの呼び出しは、或るビデオユニットについては或るフィルタリングプロセスでもよく、或いは、他のビデオユニットについては他のフィルタリングプロセスの後でもよい。
ii. 一例では、ビデオユニットは、CTU/CTB/スライス/タイル/ブリック/ピクチャ/シーケンスでもよい。
e. 或いは、異なるフィルタ(例えば、CCALF、ALF、SAO、デブロッキングフィルタ)の順序の指示は、通知されてもよく或いは実行中に導出されてもよい。
i. 或いは、CCALFの呼び出しの指示は、通知されてもよく或いは実行中に導出されてもよい。
f. CCALFをどのように制御するかの明示的な指示(例えばエンコーダからデコーダへの通知)又は暗黙的な通知(例えばエンコーダとデコーダとの双方での導出)は、異なる色成分(Cb及びCr等)について切り離されてもよい。
g. CCALFを適用するか否か及び/又はどのように適用するかは、カラーフォーマット(RGB及びYCbCr等)及び/又はカラーサンプリングフォーマット(4:2:0、4:2:2及び4:4:4等)及び/又はカラーダウンサンプリング位置又は位相に依存してもよい。
28. クロマQPオフセットリストの通知及び/又は選択は、コーディングされた予測モード/ピクチャタイプ/スライス又はタイル若しくはブリックタイプに依存してもよい。
a. クロマQPオフセットリスト、例えば、cb_qp_offset_list[i]、cr_qp_offset_list[i]及びjoint_cbcr_qp_offset_list[i]は、異なるコーディングモードについて異なってもよい。
b. 一例では、クロマQPオフセットリストを適用するか否か及びどのように適用するかは、現在のブロックがイントラモードでコーディングされるか否かに依存してもよい。
c. 一例では、クロマQPオフセットリストを適用するか否か及びどのように適用するかは、現在のブロックがインターモードでコーディングされるか否かに依存してもよい。
d. 一例では、クロマQPオフセットリストを適用するか否か及びどのように適用するかは、現在のブロックがパレットモードでコーディングされるか否かに依存してもよい。
e. 一例では、クロマQPオフセットリストを適用するか否か及びどのように適用するかは、現在のブロックがIBCモードでコーディングされるか否かに依存してもよい。
f. 一例では、クロマQPオフセットリストを適用するか否か及びどのように適用するかは、現在のブロックが変換スキップモードでコーディングされるか否かに依存してもよい。
g. 一例では、クロマQPオフセットリストを適用するか否か及びどのように適用するかは、現在のブロックがBDPCMモードでコーディングされるか否かに依存してもよい。
h. 一例では、クロマQPオフセットリストを適用するか否か及びどのように適用するかは、現在のブロックがtransform_quant_skipモードでコーディングされるか可逆モードでコーディングされるかに依存してもよい。
29. デブロッキングフィルタプロセスで利用されるQPをどのように選択するか(例えば、対応するルマ又はクロマ逆量子化QPを使用する)は、CTU/CTB/VPDU境界に対するサンプルの位置に依存してもよい。
30. デブロッキングフィルタプロセスで利用されるQPをどのように選択するか(例えば、対応するルマ又はクロマ逆量子化QPを使用する)は、カラーフォーマット(RGB及びYCbCr等)及び/又はカラーサンプリングフォーマット(4:2:0、4:2:2及び4:4:4等)及び/又はカラーダウンサンプリング位置又は位相に依存してもよい。
31. CTU境界におけるエッジについて、デブロッキングは対応するブロックのルマQPに基づいてもよい。
a. 一例では、CTU境界における水平エッジについて、デブロッキングは、対応するブロックのルマQPに基づいてもよい。
i. 一例では、デブロッキングは、Pサイドの対応するブロックのルマQPに基づいてもよい。
ii. 一例では、デブロッキングは、Qサイドの対応するブロックのルマQPに基づいてもよい。
b. 一例では、CTU境界における垂直エッジについて、デブロッキングは、対応するブロックのルマQPに基づいてもよい。
i. 一例では、デブロッキングは、Pサイドの対応するブロックのルマQPに基づいてもよい。
ii. 一例では、デブロッキングは、Qサイドの対応するブロックのルマQPに基づいてもよい。
c. 一例では、CTU境界におけるエッジについて、デブロッキングは、PサイドのルマQP及びQサイドのクロマQPに基づいてもよい。
d. 一例では、CTU境界におけるエッジについて、デブロッキングは、QサイドのルマQP及びPサイドのクロマQPに基づいてもよい。
e. この項目では、「CTU境界」は上側CTU境界又は下側CTU境界のような特定のCTU境界を示してもよい。
32. CTU境界における水平エッジについて、デブロッキングは、PサイドのクロマQPの関数に基づいてもよい。
a. 一例では、デブロッキングは、PサイドのクロマQPの平均化関数に基づいてもよい。
i. 一例では、関数は、8個のルマサンプル毎のクロマQPの平均に基づいてもよい。
ii. 一例では、関数は、16個のルマサンプル毎のクロマQPの平均に基づいてもよい。
iii. 一例では、関数は、32個のルマサンプル毎のクロマQPの平均に基づいてもよい。
iv. 一例では、関数は、64個のルマサンプル毎のクロマQPの平均に基づいてもよい。
v. 一例では、関数は、CTU毎のクロマQPの平均に基づいてもよい。
b. 一例では、デブロッキングは、PサイドのクロマQPの最大化関数に基づいてもよい。
i. 一例では、関数は、8個のルマサンプル毎のクロマQPの最大値に基づいてもよい。
ii. 一例では、関数は、16個のルマサンプル毎のクロマQPの最大値に基づいてもよい。
iii. 一例では、関数は、32個のルマサンプル毎のクロマQPの最大値に基づいてもよい。
iv. 一例では、関数は、64個のルマサンプル毎のクロマQPの最大値に基づいてもよい。
v. 一例では、関数は、CTU毎のクロマQPの最大値に基づいてもよい。
c. 一例では、デブロッキングは、PサイドのクロマQPの最小化関数に基づいてもよい。
i. 一例では、関数は、8個のルマサンプル毎のクロマQPの最小値に基づいてもよい。
ii. 一例では、関数は、16個のルマサンプル毎のクロマQPの最小値に基づいてもよい。
iii. 一例では、関数は、32個のルマサンプル毎のクロマQPの最小値に基づいてもよい。
iv. 一例では、関数は、64個のルマサンプル毎のクロマQPの最小値に基づいてもよい。
v. 一例では、関数は、CTU毎のクロマQPの最小値に基づいてもよい。
d. 一例では、デブロッキングは、PサイドのクロマQPのサブサンプリング関数に基づいてもよい。
i. 一例では、関数は、8個のルマサンプル毎にk番目のクロマサンプルのクロマQPに基づいてもよい。
1. 一例では、k番目のサンプルは最初のサンプルでもよい。
2. 一例では、k番目のサンプルは最後のサンプルでもよい。
3. 一例では、k番目のサンプルは3番目のサンプルでもよい。
4. 一例では、k番目のサンプルは4番目のサンプルでもよい。
ii. 一例では、関数は、16個のルマサンプル毎にk番目のクロマサンプルのクロマQPに基づいてもよい。
1. 一例では、k番目のサンプルは最初のサンプルでもよい。
2. 一例では、k番目のサンプルは最後のサンプルでもよい。
3. 一例では、k番目のサンプルは7番目のサンプルでもよい。
4. 一例では、k番目のサンプルは8番目のサンプルでもよい。
iii. 一例では、関数は、32個のルマサンプル毎にk番目のクロマサンプルのクロマQPに基づいてもよい。
1. 一例では、k番目のサンプルは最初のサンプルでもよい。
2. 一例では、k番目のサンプルは最後のサンプルでもよい。
3. 一例では、k番目のサンプルは15番目のサンプルでもよい。
4. 一例では、k番目のサンプルは16番目のサンプルでもよい。
iv. 一例では、関数は、64個のルマサンプル毎にk番目のクロマサンプルのクロマQPに基づいてもよい。
1. 一例では、k番目のサンプルは最初のサンプルでもよい。
2. 一例では、k番目のサンプルは最後のサンプルでもよい。
3. 一例では、k番目のサンプルは31番目のサンプルでもよい。
4. 一例では、k番目のサンプルは32番目のサンプルでもよい。
v. 一例では、関数は、CTU毎にk番目のクロマサンプルのクロマQPに基づいてもよい。
e.或いは、上記の項目は、デブロッキング処理のためにQサイドのクロマQPに適用されてもよい。
33. クロマ成分についての量子化グループは、特定のサイズよりも大きくなければならないことが制約されてもよい。
a. 一例では、クロマ成分についての量子化グループの幅は、特定の値Kよりも大きくなければならないことが制約されてもよい。
i. 一例では、Kは4に等しい。
34. ルマ成分についての量子化グループは、特定のサイズよりも大きくなければならないことが制約されてもよい。
a. 一例では、ルマ成分についての量子化グループの幅は、特定の値Kよりも大きくなければならないことが制約されてもよい。
i. 一例では、Kは8に等しい。
35. クロマ成分についてのQPは、ピクチャの左上に対して(4×m×x,2y)から始まる長さ4×mを有するクロマ行セグメントについて、同じでもよい。ここで、x及びyは負でない整数であり、mは正の整数である。
a. 一例では、mは1に等しくてもよい。
b. 一例では、クロマ成分についての量子化グループの幅は4×mよりも小さくなってはならない。
36. クロマ成分についてのQPは、ピクチャの左上に対して(2×x,4×n×y)から始まる長さ4×nを有するクロマ列セグメントについて、同じでもよい。ここで、x及びyは負でない整数であり、mは正の整数である。
a. 一例では、nは1に等しくてもよい。
b. 一例では、クロマ成分についての量子化グループの幅は4×nよりも小さくなってはならない。
37. コーディングツールXの使用を制御する第1のシンタックスエレメントは、第2のビデオユニット(SPS若しくはPPS又はVPS等)で通知される第2のシンタックスエレメントに依存して、第1のビデオユニット(ピクチャヘッダ等)で通知されてもよい。
a. 一例では、第1のシンタックスエレメントは、コーディングツールXが有効であることを第2のシンタックスエレメントが示す場合にのみ通知される。
b. 一例では、Xは双方向オプティカルフロー(Bi-Direction Optical Flow,BDOF)である。
c. 一例では、Xは予測洗練化オプティカルフロー(Prediction Refinement Optical Flow,PROF)である。
d. 一例では、Xはデコーダ側動きベクトル洗練化(Decoder-side Motion Vector Refinement,DMVR)である。
e. 一例では、コーディングツールXの使用の通知は、スライスタイプ(例えば、P又はBスライス、非Iスライス)の条件チェック下で行われてもよい。
38. 2つのクロマブロックについてのデブロッキングフィルタ決定プロセスは、1回だけ呼び出されるように統一されてもよく、決定は2つのクロマブロックに適用される。
b. 一例では、デブロッキングフィルタを実行するか否かの決定は、Cb及びCr成分について同じでもよい。
c. 一例では、デブロッキングフィルタが適用されると決定された場合、より強いデブロッキングフィルタを実行するか否かの決定は、Cb及びCr成分について同じでもよい。
d. 一例では、第2.2.7節に記載されるように、デブロッキング条件及び強フィルタのオン/オフ条件は、1回だけチェックされてもよい。しかし、双方のクロマ成分の情報をチェックするように修正されてもよい。
i. 一例では、Cb及びCr成分の勾配の平均は、Cb及びCr成分の双方についての上記の決定で使用されてもよい。
ii. 一例では、クロマのより強いフィルタは、強フィルタ条件がCb及びCr成分の双方について満たされる場合にのみ実行されてもよい。
1. 或いは、一例では、クロマ弱フィルタは、強フィルタ条件が少なくとも1つのクロマ成分で満たされない場合にのみ実行されてもよい。
39. デブロッキングQPが逆量子化QPに等しいか否かは、ACTが適用されるか否かに依存してもよい。
a. 一例では、ACTがブロックに適用される場合、デブロッキングQP値は、ACT QP調整前のQP値に依存してもよい。
b. 一例では、ACTがブロックに適用されない場合、デブロッキングQP値は、常に逆量子化QP値に等しくてもよい。
c. 一例では、ACTとTSとの双方がブロックに適用されない場合、デブロッキングQP値は、常に逆量子化QP値に等しくてもよい。
40. ACT及びBDPCMは、ブロックレベルでのみ適用されてもよい。
a. 一例では、ACTがブロックに適用される場合、ルマBDPCMはそのブロックに適用されないものとする。
b. 一例では、ACTがブロックに適用される場合、クロマBDPCMはそのブロックに適用されないものとする。
c. 一例では、ACTがブロックに適用される場合、ルマ及びクロマBDPCMの双方はそのブロックに適用されないものとする。
d. 一例では、ルマ及び/又はクロマBDPCMがブロックに適用される場合、ACTはそのブロックに適用されないものとする。
41. BDPCMモードを有効にするか否かは、ACTの使用(例えば、cu_act_enabled_flag)に基づいて推定されてもよい。
a. 一例では、クロマBDPCMモードの推定値は(cu_act_enabled_flag&&intra_bdpcm_luma_flag&&sps_bdpcm_chroma_enabled_flag?true:false)として定義されてもよい。
b. 一例では、sps_bdpcm_croma_enabled_flagが偽である場合、intra_bdpcm_luma_flagは、通知されず且つcu_act_enabled_flagが真であるとき、偽と推定されてもよい。
c. 一例では、cu_act_enabled_flagは、intra_bdpcm_luma_flagが真であり且つsps_bdpcm_chroma_enabled_flagが偽である場合、偽と推定されてもよい。
d. 一例では、intra_bdpcm_luma_flagは、cu_act_enabled_flagが真であり且つsps_bdpcm_chroma_enabled_flagが偽である場合、偽と推定されてもよい。
42. 仕様におけるChromaArrayType
a. 一例では、クロスコンポーネントCbフィルタがピクチャヘッダに関連する全てのスライスに有効であり、スライス内のCb色成分に適用されてもよいか否か(例えば、pic_cross_component_alf_cb_enabled_flag)は、「if(ChromaArrayType!=0)」又はカラーフォーマットが4:0:0ではないこと(例えば、chroma_format_idc!=0)を条件とするように条件付きで通知されてもよい。
b. 一例では、クロスコンポーネントCrフィルタがピクチャヘッダに関連する全てのスライスに有効であり、スライス内のCr色成分に適用されてもよいか否か(例えば、pic_cross_component_alf_cr_enabled_flag)は、「if(ChromaArrayType!=0)」又はカラーフォーマットが4:0:0ではないこと(例えば、chroma_format_idc!=0)を条件とするように条件付きで通知されてもよい。
43. ALF及びCC-ALFは別々に制御されてもよい。
a. 一例では、CC-ALFがビデオ処理ユニットに有効であるか否かは、第1のシンタックスエレメントで通知されてもよい。
i. 一例では、これは、ALF有効フラグ(例えば、sps_alf_enabled_flag)から独立したシーケンス/ビデオ/ピクチャレベル(例えば、SPS)で通知されてもよい。
1. 或いは、ALFの条件付きチェックが有効になっている場合に通知されてもよい。
ii. 或いは、さらに、第1のシンタックスエレメントは、カラーフォーマット及び/又はセパレートプレーンコーディング及び/又は仕様におけるChromaArrayTypeの条件チェックの下で通知されてもよい。
b. 或いは、さらに、CC-ALF関連のシンタックスエレメント(例えば、pic_cross_component_alf_cb_enabled_flag、pic_cross_component_alf_cb_aps_id、pic_cross_component_cb_filters_signalled_minus1、pic_cross_component_alf_cr_enabled_flag、pic_cross_component_alf_cr_aps_id及びpic_cross_component_cr_filters_signalled_minus1)がピクチャヘッダに存在するか否かを指定するために、第2のシンタックスエレメント、例えばpic_ccalf_enabled_present_flagがピクチャヘッダ/PPS/スライスヘッダで更に通知されてもよい。
i.或いは、ALF有効フラグ(例えば、sps_alf_enabled_flag)が真である場合、第2のシンタックスエレメントが通知されてもよい。
c. 一例では、CC-ALFに関連するPPS又はPH又はスライスヘッダ内のシンタックスエレメントは、以下の双方の条件が満たされる場合にのみ通知される。
i. ChromaArrayType!=0又はカラーフォーマットが4:0:0ではない。
ii. CC-ALFが有効であることは、高レベルのビデオユニット(例えば、SPS)で通知される。
c. 一例では、CC-ALFに関連するPPS又はPH又はスライスヘッダ内のシンタックスエレメントは、以下の条件の1つが真である場合に通知される。
i. ChromaArrayType!=0又はカラーフォーマットが4:0:0ではない。
ii. CC-ALFが有効であることは、高レベルのビデオユニット(例えば、SPS)で通知される。
44. クロマBDPCMモードの制御フラグ(例えば、sps_bdpcm_chroma_enabled_flag)、パレットモードの制御フラグ(例えば、sps_palette_enabled_flag)及び/又はACTモードの制御フラグ(例えば、sps_act_enabled_flag)は、少なくとも、クロマアレイタイプの値(例えば、ChromaArrayType)に基づいて通知されてもよい。
a. 一例では、sps_bdpcm_chroma_enabled_flagは、sps_bdpcm_enabled_flagが真である&&ChromaArrayTypeが3に等しい場合にのみ通知されてもよい。
b. 一例では、sps_palette_enabled_flagは、ChromaArrayTypeが3に等しい場合にのみ通知されてもよい。
c. 一例では、sps_act_enabled_flagは、ChromaArrayTypeが3に等しい場合にのみ通知されてもよい。
d. 一例では、sps_bdpcm_chroma_enabled_flagは、ChromaArrayTypeが3に等しくない場合に通知されなくてもよい。
e. 一例では、sps_palette_enabled_flagは、ChromaArrayTypeが3に等しくない場合に通知されなくてもよい。
f. 一例では、sps_act_enabled_flagは、ChromaArrayTypeが3に等しくない場合に通知されなくてもよい。
g. 一例では、適合ビットストリームは、ChromaArrayTypeが3に等しくない場合、sps_bdpcm_chroma_enabled_flagが0に等しく設定されることを満たすものとする。
h. 一例では、適合ビットストリームは、ChromaArrayTypeが3に等しくない場合、sps_palette_enabled_flagが0に等しく設定されることを満たすものとする。
i. 一例では、適合ビットストリームは、ChromaArrayTypeが3に等しくない場合、sps_act_enabled_flagが0に等しく設定されることを満たすものとする。
45. 上記の方法は、特定の条件下で適用されてもよい。
a. 一例では、条件はカラーフォーマットが4:2:0及び/又は4:2:2であることである。
i. 或いは、さらに、4:4:4カラーフォーマットについて、2つのカラークロマ成分にどのようにデブロッキングフィルタを適用するかは、現在の設計に従ってもよい。
b. 一例では、上記の方法の使用の指示は、SPS/PPS/ピクチャヘッダ/スライスヘッダのようなシーケンス/ピクチャ/スライス/タイル/ブリック/ビデオ領域レベルで通知されてもよい。
c. 一例では、上記の方法の使用は、以下に依存してもよい。
ii. ビデオコンテンツ(例えば、スクリーンコンテンツ、ナチュラルコンテンツ)
iii. DPS/SPS/VPS/PPS/PPS/APS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/最大コーディングユニット(Largest coding unit,LCU)/コーディングユニット(Coding unit,CU)/LCU行/LCUのグループ/TU/PUブロック/ビデオコーディングユニットで通知されたメッセージ
iv. CU/PU/TU/ブロック/ビデオコーディングユニットの位置
a. 一例では、CTU/CTB境界に沿ったフィルタリングサンプル(例えば、上/左/右/下境界への最初のK個(例えば、K=4/8))について、既存の設計が適用されてもよい。他のサンプルについては、提案される方法(例えば、項目3/4)が代わりに適用されてもよい。
v. エッジに沿ったサンプルを含むブロックのコーディングモード
vi. エッジに沿ったサンプルを含むブロックに適用される変換行列
vii. 現在のブロック及び/又はその隣接ブロックのブロック寸法
viii. 現在のブロック及び/又はその隣接ブロックのブロック形状
ix. カラーフォーマットの指示(4:2:0、4:4:4、RGB又はYUV等)
x. コーディングツリー構造(デュアルツリー又はシングルツリー等)
xi. スライス/タイルグループタイプ及び/又はピクチャタイプ
xii. 色成分(例えば、Cb又はCrにのみ適用されてもよい)
xiii. 時間レイヤID
xiv. 標準のプロファイル/レベル/層
xv. 或いは、m及び/又はnはデコーダに通知されてもよい。
実施形態はJVET-O2001-vEに基づいている。新たに追加されたテキストは、下線の付いたイタリック体の太字(又は下線の付いたテキスト)で示されている。削除されたテキストは、下線の付いた太字(又は[[]]と共に下線の付いたテキスト)で記されている。
[8.8.3.6 一方向のエッジフィルタリングプロセス]
...
- そうでない(cIdxが0に等しくない)場合、cIdxによって指定された現在のコーディングユニットのクロマコーディングブロック内のエッジについてのフィルタリングプロセスは、以下の順序のステップで構成される。
1. 変数cQpPicOffsetは、以下のように導出される。
cQpPicOffset=cIdx==1?pps_cb_qp_offset:pps_cr_qp_offset (8-1065)
[8.8.3.6.3 クロマブロックのエッジの決定プロセス]
...
変数QpQ及びQpPは、それぞれサンプルq0,0及びp0,0を含むコーディングブロックを含むコーディングユニットのQpY値に等しく設定される。
変数QpCは、以下のように導出される。
[[qPi=Clip3(0,63,((Qp Q +Qp P +1)>>1)+cQpPicOffset) (8-1132)]]
[[Qp C =ChromaQpTable[cIdx-1][qPi] (8-1133)]]
qPi=(QpQ+QpP+1)>>1 (8-1132)
QpC=ChromaQpTable[cIdx-1][qPi]+cQpPicOffset (8-1133)
注記-変数cQpPicOffsetは、フィルタリングされたクロマ成分がCb成分であるかCr成分であるかに従って、pps_cb_qp_offset又はpps_cr_qp_offsetの値を調整する。しかし、ピクチャ内の調整の量を変更する必要性を回避するために、フィルタリングプロセスは、slice_cb_qp_offset又はslice_cr_qp_offsetの値についても、(cu_chroma_qp_offset_enabled_flagが1に等しい場合)CuQpOffsetCb、CuQpOffsetCr又はCuQpOffsetCbCrの値についても調整を含まない。
変数β’の値は、以下のように導出された量子化パラメータQに基づいて、表8-18で示されるように決定される。
Q=Clip3(0,63,QpC+(slice_beta_offset_div2<<1)) (8-1134)
ここで、slice_beta_offset_div2は、サンプルq0,0を含むスライスについてのシンタックスエレメントslice_beta_offset_div2の値である。
変数βは、以下のように導出される。
β=β’×(1<<(BitDepthC-8)) (8-1135)
変数tC’の値は、以下のように導出されたクロマ量子化パラメータQに基づいて、表8-18で示されるように決定される。
Q=Clip3(0,65,QpC+2×(bS-1)+(slice_tc_offset_div2<<1)) (8-1136)
ここで、slice_tc_offset_div2は、サンプルq0,0を含むスライスについてのシンタックスエレメントslice_tc_offset_div2の値である。
変数tCは、以下のように導出される。
tC=(BitDepthC<10)?(tC’+2)>>(10-BitDepthC):tC’×(1<<(BitDepthC-8)) (8-1137)
[8.8.3.5 境界フィルタリング強度の導出プロセス]
このプロセスへの入力は以下の通りである。
- ピクチャサンプルアレイrecPicture
- 現在のピクチャの左上サンプルに対する現在のコーディングブロックの左上サンプルを指定する位置(xCb,yCb)
- 現在のコーディングブロックの幅を指定する変数nCbW
- 現在のコーディングブロックの高さを指定する変数nCbH
- 垂直エッジ(EDGE_VER)がフィルタリングされるか水平エッジ(EDGE_HOR)がフィルタリングされるかを指定する変数edgeType
- 現在のコーディングブロックの色成分を指定する変数cIdx
- 2次元(nCbW)×(nCbH)アレイedgeFlags
このプロセスの出力は、境界フィルタリング強度を指定する二次元(nCbW)×(nCbH)アレイbSである。
...
xDi(i=0..xN)及びyDj(j=0..yN)について、以下が適用される。
- edgeFlags[xDi][yDj]が0に等しい場合、変数bS[xDi][yDj]は0に等しく設定される。
- そうでない場合、以下が適用される。
...
- 変数bS[xDi][yDj]は以下のように導出される。
- cIdxが0に等しく、サンプルp0及びq0の双方が1に等しいintra_bdpcm_flagを有するコーディングブロック内にある場合、bS[xDi][yDj]は0に等しく設定される。
-そうではなく、サンプルp0又はq0がイントラ予測モードでコーディングされたコーディングユニットのコーディングブロック内にある場合、bS[xDi][yDj]は2に等しく設定される。
- そうではなく、ブロックエッジが変換ブロックエッジでもあり、サンプルp0又はq0が1に等しいciip_flagを有するコーディングブロック内にある場合、bS[xDi][yDj]は2に等しく設定される。
- そうではなく、ブロックエッジが変換ブロックエッジでもあり、サンプルp0又はq0が1つ以上の非ゼロの変換係数レベルを含む変換ブロック内にある場合、bS[xDi][yDj]は1に等しく設定される。
- そうではなく、ブロックエッジが変換ブロックエッジでもあり、cIdxが0よりも大きく、サンプルp0又はq0が1に等しいtu_joint_cbcr_residual_flagを有する変換ユニット内にある場合、bS[xDi][yDj]は1に等しく設定される。
- そうではなく、サンプルp0を含むコーディングサブブロックの予測モードがサンプルq0を含むコーディングサブブロックの予測モードと異なる場合(すなわち、コーディングサブブロックの一方がIBC予測モードでコーディングされ、他方がインター予測モードで符号化される場合)、bS[xDi][yDj]は1に等しく設定される。
- そうではなく、cIdxが0に等しく、以下の条件の1つ以上が真である場合、bS[xDi][yDj]は1に等しく設定される。
- 2つのコーディングサブブロックの予測に使用されるリスト0動きベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルにおいて8以上であるか、或いは、2つのコーディングサブブロックの予測に使用されるリスト1動きベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルの単位で8以上である。
- [[サンプルp 0 を含むコーディングサブブロック及びサンプルq 0 を含むコーディングサブブロックは、双方ともIBC予測モードでコーディングされ、2つのコーディングサブブロックの予測で使用されるブロックベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルの単位で8以上である。]]
- [[サンプルp 0 を含むコーディングサブブロックの予測のために、サンプルq 0 を含むコーディングサブブロックの予測とは異なる参照ピクチャ又は異なる動きベクトルの数が使用される。]]
[[注1 - 2つのコーディングサブブロックに使用される参照ピクチャが同じであるか異なるかの決定は、予測が参照ピクチャリスト0へのインデックスを使用して形成されるか参照ピクチャリスト1へのインデックスを使用して形成されるかにかかわらず、また、参照ピクチャリスト内のインデックス位置が異なるか否かにかかわらず、どのピクチャが参照されるかにのみ基づく。]]
[[注2 - (xSb,ySb)をカバーする左上サンプルを有するコーディングサブブロックの予測に使用される動きベクトルの数は、PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb]に等しい。]]
- [[1つの動きベクトルが、サンプルp 0 を含むコーディングサブブロックを予測するために使用され、1つの動きベクトルが、サンプルq 0 を含むコーディングサブブロックを予測するために使用され、使用される動きベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルの単位で8以上である。]]
- [[2つの動きベクトル及び2つの異なる参照ピクチャが、サンプルp 0 を含むコーディングサブブロックを予測するために使用され、同じ2つの参照ピクチャについて2つの動きベクトルが、サンプルq 0 を含むコーディングサブブロックを予測するために使用され、同じ参照ピクチャについての2つのコーディングサブブロックの予測で使用される2つの動きベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルの単位で8以上である。]]
- [[同じ参照ピクチャについて2つの動きベクトルが、サンプルp 0 を含むコーディングサブブロックを予測するために使用され、同じ参照ピクチャについて2つの動きベクトルが、サンプルq 0 を含むコーディングサブブロックを予測するために使用され、以下の条件の双方が真である。]]
- [[2つのコーディングサブブロックの予測で使用されるリスト0動きベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルで8以上であるか、或いは、2つのコーディングサブブロックの予測で使用されるリスト1動きベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルの単位で8以上である。]]
- [[サンプルp 0 を含むコーディングサブブロックの予測で使用されるリスト0動きベクトル及びサンプルq 0 を含むコーディングサブブロックの予測で使用されるリスト1動きベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルの単位で8以上であるか、或いは、サンプルp 0 を含むコーディングサブブロックの予測で使用されるリスト1動きベクトル及びサンプルq 0 を含むコーディングサブブロックの予測で使用されるリスト0動きベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルの単位で8以上である。]]
- そうでない場合、変数bS[xDi][yDj]は0に等しく設定される。
[8.8.3.6 境界フィルタリング強度の導出プロセス]
このプロセスへの入力は以下の通りである。
- ピクチャサンプルアレイrecPicture
- 現在のピクチャの左上サンプルに対する現在のコーディングブロックの左上サンプルを指定する位置(xCb,yCb)
- 現在のコーディングブロックの幅を指定する変数nCbW
- 現在のコーディングブロックの高さを指定する変数nCbH
- 垂直エッジ(EDGE_VER)がフィルタリングされるか水平エッジ(EDGE_HOR)がフィルタリングされるかを指定する変数edgeType
- 現在のコーディングブロックの色成分を指定する変数cIdx
- 2次元(nCbW)×(nCbH)アレイedgeFlags
このプロセスの出力は、境界フィルタリング強度を指定する二次元(nCbW)×(nCbH)アレイbSである。
...
xDi(i=0..xN)及びyDj(j=0..yN)について、以下が適用される。
- edgeFlags[xDi][yDj]が0に等しい場合、変数bS[xDi][yDj]は0に等しく設定される。
- そうでない場合、以下が適用される。
...
- 変数bS[xDi][yDj]は以下のように導出される。
- cIdxが0に等しく、サンプルp0及びq0の双方が1に等しいintra_bdpcm_flagを有するコーディングブロック内にある場合、bS[xDi][yDj]は0に等しく設定される。
-そうではなく、サンプルp0又はq0がイントラ予測モードでコーディングされたコーディングユニットのコーディングブロック内にある場合、bS[xDi][yDj]は2に等しく設定される。
- そうではなく、ブロックエッジが変換ブロックエッジでもあり、サンプルp0又はq0が1に等しいciip_flagを有するコーディングブロック内にある場合、bS[xDi][yDj]は2に等しく設定される。
- そうではなく、ブロックエッジが変換ブロックエッジでもあり、サンプルp0又はq0が1つ以上の非ゼロの変換係数レベルを含む変換ブロック内にある場合、bS[xDi][yDj]は1に等しく設定される。
- [[そうではなく、ブロックエッジが変換ブロックエッジでもあり、cIdxが0よりも大きく、サンプルp 0 又はq 0 が1に等しいtu_joint_cbcr_residual_flagを有する変換ユニット内にある場合、bS[xD i ][yD j ]は1に等しく設定される。]]
- そうではなく、サンプルp0を含むコーディングサブブロックの予測モードがサンプルq0を含むコーディングサブブロックの予測モードと異なる場合(すなわち、コーディングサブブロックの一方がIBC予測モードでコーディングされ、他方がインター予測モードで符号化される場合)、bS[xDi][yDj]は1に等しく設定される。
- そうではなく、cIdxが0に等しく、以下の条件の1つ以上が真である場合、bS[xDi][yDj]は1に等しく設定される。
- サンプルp0を含むコーディングサブブロック及びサンプルq0を含むコーディングサブブロックは、双方ともIBC予測モードでコーディングされ、2つのコーディングサブブロックの予測で使用されるブロックベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルの単位で8以上である。
- サンプルp0を含むコーディングサブブロックの予測のために、サンプルq0を含むコーディングサブブロックの予測とは異なる参照ピクチャ又は異なる動きベクトルの数が使用される。
注1 - 2つのコーディングサブブロックに使用される参照ピクチャが同じであるか異なるかの決定は、予測が参照ピクチャリスト0へのインデックスを使用して形成されるか参照ピクチャリスト1へのインデックスを使用して形成されるかにかかわらず、また、参照ピクチャリスト内のインデックス位置が異なるか否かにかかわらず、どのピクチャが参照されるかにのみ基づく。
注2 - (xSb,ySb)をカバーする左上サンプルを有するコーディングサブブロックの予測に使用される動きベクトルの数は、PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb]に等しい。
- 1つの動きベクトルが、サンプルp0を含むコーディングサブブロックを予測するために使用され、1つの動きベクトルが、サンプルq0を含むコーディングサブブロックを予測するために使用され、使用される動きベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルの単位で8以上である。
- 2つの動きベクトル及び2つの異なる参照ピクチャが、サンプルp0を含むコーディングサブブロックを予測するために使用され、同じ2つの参照ピクチャについて2つの動きベクトルが、サンプルq0を含むコーディングサブブロックを予測するために使用され、同じ参照ピクチャについての2つのコーディングサブブロックの予測で使用される2つの動きベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルの単位で8以上である。
- 同じ参照ピクチャについて2つの動きベクトルが、サンプルp0を含むコーディングサブブロックを予測するために使用され、同じ参照ピクチャについて2つの動きベクトルが、サンプルq0を含むコーディングサブブロックを予測するために使用され、以下の条件の双方が真である。
- 2つのコーディングサブブロックの予測で使用されるリスト0動きベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルで8以上であるか、或いは、2つのコーディングサブブロックの予測で使用されるリスト1動きベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルの単位で8以上である。
- サンプルp0を含むコーディングサブブロックの予測で使用されるリスト0動きベクトル及びサンプルq0を含むコーディングサブブロックの予測で使用されるリスト1動きベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルの単位で8以上であるか、或いは、サンプルp0を含むコーディングサブブロックの予測で使用されるリスト1動きベクトル及びサンプルq0を含むコーディングサブブロックの予測で使用されるリスト0動きベクトルの水平又は垂直成分の間の絶対差は、1/16ルマサンプルの単位で8以上である。
- そうでない場合、変数bS[xDi][yDj]は0に等しく設定される。
[8.8.3.6.1 ルマブロックエッジの決定プロセス]
このプロセスへの入力は以下の通りである。
- ピクチャサンプルアレイrecPicture
- 現在のピクチャの左上サンプルに対する現在のコーディングブロックの左上サンプルを指定する位置(xCb,yCb)
- 現在のコーディングブロックの左上サンプルに対する現在のブロックの左上サンプルを指定する位置(xBl,yBl)
- 垂直エッジ(EDGE_VER)がフィルタリングされるか水平エッジ(EDGE_HOR)がフィルタリングされるかを指定する変数edgeType
- 境界フィルタリング強度を指定する変数bS
- 最大フィルタ長を指定する変数maxFilterLengthP
- 最大フィルタ長を指定する変数maxFilterLengthQ
このプロセスの出力は以下の通りである。
- 決定を含む変数dE、dEp及びdEq
- 修正フィルタ長の変数maxFilterLengthP及びmaxFilterLengthQ
- 変数tC
...
以下の順序のステップが適用される。
...
1. sidePisLargeBlk又はsideQisLargeBlkが0よりも大きい場合、以下が適用される。
a. 変数dp0L、dp3Lが導出され、maxFilterLengthPが以下のように変更される。
- [[sidePisLargeBlkが1に等しい場合、以下が適用される。]]
[[dp0L=(dp0+Abs(p 5,0 -2×p 4,0 +p 3,0 )+1)>>1 (8-1087)]]
[[dp3L=(dp3+Abs(p 5,3 -2×p 4,3 +p 3,3 )+1)>>1 (8-1088)]]
- [[そうでない場合、以下が適用される]]
dp0L=dp0 (8-1089)
dp3L=dp3 (8-1090)
[[maxFilterLengthP=3 (8-1091)]]
[[maxFilterLengthP=sidePisLargeBlk?maxFilterLengthP:3]]
b. 変数dq0L及びdq3Lは以下のように導出される。
- [[sideQisLargeBlkが1に等しい場合、以下が適用される。]]
[[dq0L=(dq0+Abs(q 5,0 -2×q 4,0 +q 3,0 )+1)>>1 (8-1092)]]
[[dq3L=(dq3+Abs(q 5,3 -2×q 4,3 +q 3,3 )+1)>>1 (8-1093)]]
- [[そうでない場合、以下が適用される。]]
dq0L=dq0 (8-1094)
dq3L=dq3 (8-1095)
[[maxFilterLengthQ=sidePisLargeBlk?maxFilterLengthQ:3]]
...
2. 変数dE、dEp及びdEqは、以下のように導出される:
...
[8.8.3.6.3 ルマブロックエッジの決定プロセス]
このプロセスは、ChromaArrayTypeが0に等しくない場合にのみ呼び出される。
このプロセスへの入力は以下の通りである。
- クロマピクチャサンプルアレイrecPicture
- 現在のピクチャの左上クロマサンプルに対する現在のクロマコーディングブロックの左上サンプルを指定するクロマ位置(xCb,yCb)
- 現在のクロマコーディングブロックの左上サンプルに対する現在のクロマブロックの左上サンプルを指定するクロマ位置(xBl,yBl)
- 垂直エッジ(EDGE_VER)がフィルタリングされるか水平エッジ(EDGE_HOR)がフィルタリングされるかを指定する変数edgeType
- 色成分インデックスを指定する変数cIdx
- ピクチャレベルのクロマ量子化パラメータオフセットを指定する変数cQpPicOffset
- 境界フィルタリング強度を指定する変数bS
- 変数maxFilterLengthCbCr
このプロセスの出力は以下の通りである。
- 修正された変数maxFilterLengthCbCr
- 変数tC
変数maxKは、以下のように導出される。
- edgeTypeがEDGE_VERに等しい場合、以下が適用される。
maxK=(SubHeightC==1)?3:1 (8-1124)
- そうでない(edgeTypeがEDGE_HORに等しい)場合、以下が適用される。
maxK=(SubWidthC==1)?3:1 (8-1125)
値pi及びqi(i=0..maxFilterLengthCbCr及びk=0..maxK)は、以下のように導出される。
- edgeTypeがEDGE_VERに等しい場合、以下が適用される。
qi,k=recPicture[xCb+xBl+i][yCb+yBl+k] (8-1126)
pi,k=recPicture[xCb+xBl-i-1][yCb+yBl+k] (8-1127)
subSampleC=SubHeightC (8-1128)
- そうでない(edgeTypeがEDGE_HORに等しい)場合、以下が適用される。
qi,k=recPicture[xCb+xBl+k][yCb+yBl+i] (8-1129)
pi,k=recPicture[xCb+xBl+k][yCb+yBl-i-1] (8-1130)
subSampleC=SubWidthC (8-1131)
ChromaArrayTypeが0に等しくなく、treeTypeがSINGLE_TREE又はDUAL_TREE_CHROMAに等しい場合、以下が適用される。
- treeTypeがDUAL_TREE_CHROMAに等しい場合、変数Qp Y は、ルマ位置(xCb+cbWidth/2,yCb+cbHeight/2)をカバーするルマコーディングユニットのルマ量子化パラメータQp Y に等しく設定される。
- 変数qP Cb 、qP Cr 及びqP CbCr は、以下のように導出される。
qPi Chroma =Clip3(-QpBdOffset C ,63,Qp Y ) (8-935)
qPi Cb =ChromaQpTable[0][qPi Chroma ] (8-936)
qPi Cr =ChromaQpTable[1][qPi Chroma ] (8-937)
qPi CbCr =ChromaQpTable[2][qPi Chroma ] (8-938)
- Cb及びCr成分のクロマ量子化パラメータQp’ Cb 及びQp’ Cr 並びに共同Cb-Crコーディングのクロマ量子化パラメータQp’ CbCr は、以下のように導出される。
Qp’ Cb =Clip3(-QpBdOffset C ,63,qP Cb +pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffset Cb ) (8-939)
Qp’ Cr =Clip3(-QpBdOffset C ,63,qP Cr +pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffset Cr ) (8-940)
Qp’ CbCr =Clip3(-QpBdOffset C ,63,qP CbCr +pps_cbcr_qp_offset+slice_cbcr_qp_offset+CuQpOffset CbCr ) (8-941)
変数Qp Q 及びQp P は、それぞれサンプルq 0,0 及びp 0,0 を含むコーディングブロックを含むコーディングユニットの対応するQp’ Cb 又はQp’ Cr 又はQp’ CbCr 値に等しく設定される。
変数Qp C は以下のように導出される:
Qp C =(Qp Q +Qp P +1)>>1 (8-1133)
変数β’の値は、以下のように導出された量子化パラメータQに基づいて、表8-18で示されるように決定される。
Q=Clip3(0,63,QpC+(slice_beta_offset_div2<<1)) (8-1134)
ここで、slice_beta_offset_div2は、サンプルq0,0を含むスライスについてのシンタックスエレメントslice_beta_offset_div2の値である。
変数βは、以下のように導出される。
β=β’×(1<<(BitDepthC-8)) (8-1135)
変数tC’の値は、以下のように導出されたクロマ量子化パラメータQに基づいて、表8-18で示されるように決定される。
Q=Clip3(0,65,QpC+2×(bS-1)+(slice_tc_offset_div2<<1)) (8-1136)
ここで、slice_tc_offset_div2は、サンプルq0,0を含むスライスについてのシンタックスエレメントslice_tc_offset_div2の値である。
変数tCは、以下のように導出される。
tC=(BitDepthC<10)?(tC’+2)>>(10-BitDepthC):tC’×(1<<(BitDepthC-8)) (8-1137)
maxFilterLengthCbCrが1に等しく、bSが2に等しくない場合、maxFilterLengthCbCrは0に等しく設定される。
[8.8.3.6.3 ルマブロックエッジの決定プロセス]
このプロセスは、ChromaArrayTypeが0に等しくない場合にのみ呼び出される。
このプロセスへの入力は以下の通りである。
- クロマピクチャサンプルアレイrecPicture
- 現在のピクチャの左上クロマサンプルに対する現在のクロマコーディングブロックの左上サンプルを指定するクロマ位置(xCb,yCb)
- 現在のクロマコーディングブロックの左上サンプルに対する現在のクロマブロックの左上サンプルを指定するクロマ位置(xBl,yBl)
- 垂直エッジ(EDGE_VER)がフィルタリングされるか水平エッジ(EDGE_HOR)がフィルタリングされるかを指定する変数edgeType
- 色成分インデックスを指定する変数cIdx
- ピクチャレベルのクロマ量子化パラメータオフセットを指定する変数cQpPicOffset
- 境界フィルタリング強度を指定する変数bS
- 変数maxFilterLengthCbCr
このプロセスの出力は以下の通りである。
- 修正された変数maxFilterLengthCbCr
- 変数tC
変数maxKは、以下のように導出される。
- edgeTypeがEDGE_VERに等しい場合、以下が適用される。
maxK=(SubHeightC==1)?3:1 (8-1124)
- そうでない(edgeTypeがEDGE_HORに等しい)場合、以下が適用される。
maxK=( SubWidthC==1)?3:1 (8-1125)
値pi及びqi(i=0..maxFilterLengthCbCr及びk=0..maxK)は、以下のように導出される。
- edgeTypeがEDGE_VERに等しい場合、以下が適用される。
qi,k=recPicture[xCb+xBl+i][yCb+yBl+k] (8-1126)
pi,k=recPicture[xCb+xBl-i-1][yCb+yBl+k] (8-1127)
subSampleC=SubHeightC (8-1128)
- そうでない(edgeTypeがEDGE_HORに等しい)場合、以下が適用される。
qi,k=recPicture[xCb+xBl+k][yCb+yBl+i] (8-1129)
pi,k=recPicture[xCb+xBl+k][yCb+yBl-i-1] (8-1130)
subSampleC=SubWidthC (8-1131)
変数QpQ及びQpPは、それぞれサンプルq0,0及びp0,0を含むコーディングブロックを含むコーディングユニットのQpY値に等しく設定される。
変数jccr_flag P 及びjccr_flag Q は、それぞれサンプルq 0,0 及びp 0,0 を含むコーディングブロックを含むコーディングユニットのtu_joint_cbcr_residual_flag値に等しく設定される。
変数QpCは、以下のように導出される。
[[qPi=Clip3(0,63,((Qp Q +Qp P +1)>>1)+cQpPicOffset) (8-1132)]]
qPi=Clip3(0,63,((Qp Q +(jccr_flag P ?pps_joint_cbcr_qp_offset:cQpPicOffset)+Qp P +(jccr_flag Q ?pps_joint_cbcr_qp_offset:cQpPicOffset)+1)>>1))
QpC=ChromaQpTable[cIdx-1][qPi] (8-1133)
注記-変数cQpPicOffsetは、フィルタリングされたクロマ成分がCb成分であるかCr成分であるかに従って、pps_cb_qp_offset又はpps_cr_qp_offsetの値を調整する。しかし、ピクチャ内の調整の量を変更する必要性を回避するために、フィルタリングプロセスは、slice_cb_qp_offset又はslice_cr_qp_offsetの値についても、(cu_chroma_qp_offset_enabled_flagが1に等しい場合)CuQpOffsetCb、CuQpOffsetCr又はCuQpOffsetCbCrの値についても調整を含まない。
...
[8.8.3.6.3 クロマブロックエッジの決定プロセス]
このプロセスは、ChromaArrayTypeが0に等しくない場合にのみ呼び出される。
このプロセスへの入力は以下の通りである。
- クロマピクチャサンプルアレイrecPicture
- 現在のピクチャの左上クロマサンプルに対する現在のクロマコーディングブロックの左上サンプルを指定するクロマ位置(xCb,yCb)
...
このプロセスの出力は以下の通りである。
- 修正された変数maxFilterLengthCbCr
- 変数tC
変数maxKは、以下のように導出される。
- edgeTypeがEDGE_VERに等しい場合、以下が適用される。
maxK=(SubHeightC==1)?3:1 (8-1124)
- そうでない(edgeTypeがEDGE_HORに等しい)場合、以下が適用される。
maxK=( SubWidthC==1)?3:1 (8-1125)
値pi及びqi(i=0..maxFilterLengthCbCr及びk=0..maxK)は、以下のように導出される。
- edgeTypeがEDGE_VERに等しい場合、以下が適用される。
qi,k=recPicture[xCb+xBl+i][yCb+yBl+k] (8-1126)
pi,k=recPicture[xCb+xBl-i-1][yCb+yBl+k] (8-1127)
subSampleC=SubHeightC (8-1128)
- そうでない(edgeTypeがEDGE_HORに等しい)場合、以下が適用される。
qi,k=recPicture[xCb+xBl+k][yCb+yBl+i] (8-1129)
pi,k=recPicture[xCb+xBl+k][yCb+yBl-i-1] (8-1130)
subSampleC=SubWidthC (8-1131)
[[変数Qp Q 及びQp P は、それぞれサンプルq 0,0 及びp 0,0 を含むコーディングブロックを含むコーディングユニットのQp Y 値に等しく設定される。]]
変数Qp Q は、ルマ位置(xCb+cbWidth/2,yCb+cbHeight/2)をカバーするルマコーディングユニットのルマ量子化パラメータQp Y に等しく設定される。ここで、cbWidthは、ルマサンプルでの現在のクロマコーディングブロックの幅を指定し、cbHeightは、ルマサンプルでの現在のクロマコーディングブロックの幅を指定する。
変数Qp P は、ルマ位置(xCb’+cbWidth’/2,yCb’+cbHeight’/2)をカバーするルマコーディングユニットのルマ量子化パラメータQp Y に等しく設定される。ここで、(xCb’,yCb’)は、現在のピクチャの左上クロマサンプルに対して、q 0,0 をカバーするクロマコーディングブロックの左上サンプルを指定し、cbWidth’は、ルマサンプルでの現在のクロマコーディングブロックの幅を指定し、cbHeightは、ルマサンプルでの現在のクロマコーディングブロックの幅を指定する。
変数QpCは、以下のように導出される。
qPi=Clip3(0,63,((QpQ+QpP+1)>>1)+cQpPicOffset) (8-1132)
QpC=ChromaQpTable[cIdx-1][qPi] (8-1133)
注記-変数cQpPicOffsetは、フィルタリングされたクロマ成分がCb成分であるかCr成分であるかに従って、pps_cb_qp_offset又はpps_cr_qp_offsetの値を調整する。しかし、ピクチャ内の調整の量を変更する必要性を回避するために、フィルタリングプロセスは、slice_cb_qp_offset又はslice_cr_qp_offsetの値についても、(cu_chroma_qp_offset_enabled_flagが1に等しい場合)CuQpOffsetCb、CuQpOffsetCr又はCuQpOffsetCbCrの値についても調整を含まない。
変数β’の値は、以下のように導出された量子化パラメータQに基づいて、表8-18で示されるように決定される。
Q=Clip3(0,63,QpC+(slice_beta_offset_div2<<1)) (8-1134)
ここで、slice_beta_offset_div2は、サンプルq0,0を含むスライスについてのシンタックスエレメントslice_beta_offset_div2の値である。
変数βは、以下のように導出される。
β=β’×(1<<(BitDepthC-8)) (8-1135)
変数tC’の値は、以下のように導出されたクロマ量子化パラメータQに基づいて、表8-18で示されるように決定される。
Q=Clip3(0,65,QpC+2×(bS-1)+(slice_tc_offset_div2<<1)) (8-1136)
ここで、slice_tc_offset_div2は、サンプルq0,0を含むスライスについてのシンタックスエレメントslice_tc_offset_div2の値である。
示される3つのサンプル(実線の円)についてフィルタ決定を行う場合、3つのサンプルを含むクロマCUの中心位置をカバーするルマCUのQPが選択される。したがって、第1、第2及び第3のクロマサンプル(図11に示す)について、それぞれ、CUY3のQPのみが利用される。
このように、クロマ量子化/逆量子化プロセスのためにどのようにルマCUを選択するかは、クロマフィルタ決定プロセスについてのものと整合する。
[8.7.3 変換係数のスケーリングプロセス]
このプロセスへの入力は以下の通りである。
- 現在のピクチャの左上ルマサンプルに対する現在のルマ変換ブロックの左上サンプルを指定するルマ位置(xTbY,yTbY)
- 変換ブロック幅を指定する変数nTbW
- 変換ブロック高さを指定する変数nTbH
- 現在のブロックの色成分を指定する変数cIdx
- 現在の色成分のビットデプスを指定する変数bitDepth
このプロセスの出力は、要素d[x][y]を有するスケーリングされた変換係数の(nTbW)×(nTbH)アレイdである。
量子化パラメータqPは、以下のように導出される。
- cIdxが0に等しく、transform_skip_flag[xTbY][yTbY]が0に等しい場合、以下が適用される。
qP=Qp’Y (8-950)
- そうではなく、cIdxが0に等しく(且つ、transform_skip_flag[xTbY][yTbY]が1に等しい)場合、以下が適用される。
qP=Max(QpPrimeTsMin,Qp’Y) (8-951)
- そうではなく、TuCResMode[xTbY][yTbY]が0に等しくない場合[[2に等しい場合]]、以下が適用される。
qP=Qp’CbCr (8-952)
- そうではなく、cIdxが1に等しい場合、以下が適用される。
qP=Qp’Cb (8-953)
- そうでない(cIdxが2に等しい)場合、以下が適用される。
qP=Qp’Cr (8-954)
[8.8.3.2 一方向のデブロッキングフィルタプロセス]
このプロセスへの入力は以下の通りである。
- ルマ成分(DUAL_TREE_LUMA)が現在処理されているかクロマ成分(DUAL_TREE_CHROMA)が現在処理されているかを指定する変数treeType
- treeTypeがDUAL_TREE_LUMAに等しい場合、デブロッキングの前の再構成ピクチャ、すなわち、アレイrecPictureL
- ChromaArrayTypeが0に等しくなく、treeTypeがDUAL_TREE_CHROMAに等しい場合、アレイrecPictureCb及びrecPictureCr
- 垂直エッジ(EDGE_VER)がフィルタリングされるか水平エッジ(EDGE_HOR)がフィルタリングされるかを指定する変数edgeType
このプロセスの出力は、デブロッキングの後の修正された再構成ピクチャであり、すなわち、以下の通りである。
- treeTypeがDUAL_TREE_LUMAに等しい場合、アレイrecPictureL
- ChromaArrayTypeが0に等しくなく、treeTypeがDUAL_TREE_CHROMAに等しい場合、アレイrecPictureCb及びrecPictureCr
変数firstCompIdx及びlastCompIdxは、以下のように導出される。
firstCompIdx=(treeType==DUAL_TREE_CHROMA)?1:0 (8-1022)
lastCompIdx=(treeType==DUAL_TREE_LUMA||ChromaArrayType==0)?0:2 (8-1023)
firstCompIdx以上lastCompIdx以下の範囲にあり、色成分インデックスcIdxによって示されるコーディングユニットの色成分毎の各コーディングユニット及び各コーディングブロックについて、コーディングブロック幅nCbW、コーディングブロック高さnCbH及びコーディングブロックの左上サンプルの位置(xCb,yCb)を用いて、cIdxが0に等しい場合、又はcIdxが0に等しくなく、edgeTypeがEDGE_VERに等しく、xCb%8が0に等しい場合、又はcIdxが0に等しくなく、edgeTypeがEDGE_HORに等しく、yCb%8が0に等しい場合、エッジは、次の順序のステップによってフィルタリングされる。
...
[[5. ピクチャサンプルアレイrecPictureは、以下のように導出される。]]
- [[cIdxが0に等しい場合、recPictureは、デブロッキングの前の再構成ルマピクチャサンプルアレイrecPicture L に等しく設定される。]]
- [[そうではなく、cIdxが1に等しい場合、recPictureは、デブロッキングの前の再構成クロマピクチャサンプルアレイrecPicture Cb に等しく設定される。]]
- 上記以外の(cIdxが2に等しい)場合、recPictureは、デブロッキングの前の再構成クロマピクチャサンプルアレイrecPicture Cr に等しく設定される。]]
5. ピクチャサンプルアレイrecPicture[i](i=0,1,2)は、以下のように導出される。
- recPicture[0]は、デブロッキングの前の再構成ピクチャサンプルアレイrecPicture L に等しく設定される。
- recPicture[1]は、デブロッキングの前の再構成ピクチャサンプルアレイrecPicture Cb に等しく設定される。
- recPicture[2]は、デブロッキングの前の再構成ピクチャサンプルアレイrecPicture Cr に等しく設定される。
...
cIdxが1である場合、以下のプロセスが適用される。
一方向のエッジフィルタリングプロセスは、変数edgeType、変数cIdx、デブロッキングの前の再構成ピクチャrecPicture、位置(xCb,yCb )、コーディングブロック幅nCbW、コーディングブロック高さnCbH、並びにアレイbS、maxFilterLengthPs、及びmaxFilterLengthQsを入力として用いて、第8.8.3.6節で示されるようにコーディングブロックについて呼び出され、修正された再構成ピクチャrecPictureを出力する。
[8.8.3.5 境界フィルタリング強度の導出プロセス]
このプロセスへの入力は以下の通りである。
- ピクチャサンプルアレイrecPicture
- 現在のピクチャの左上サンプルに対する現在のコーディングブロックの左上サンプルを指定する位置(xCb,yCb)
- 現在のコーディングブロックの幅を指定する変数nCbW
- 現在のコーディングブロックの高さを指定する変数nCbH
- 垂直エッジ(EDGE_VER)がフィルタリングされるか水平エッジ(EDGE_HOR)がフィルタリングされるかを指定する変数edgeType
- 現在のコーディングブロックの色成分を指定する変数cIdx
- 2次元(nCbW)×(nCbH)アレイedgeFlags
このプロセスの出力は、境界フィルタリング強度を指定する二次元(nCbW)×(nCbH)アレイbSである。
変数xDi、yDj、xN及びyNは、以下のように導出される。
...
xDi(i=0..xN)及びyDj(j=0..yN)について、以下が適用される。
- edgeFlags[xDi][yDj]が0に等しい場合、変数bS[xDi][yDj]は0に等しく設定される。
- そうでない場合、以下が適用される。
- サンプル値p0及びq0は、以下のように導出される。
- edgeTypeがEDGE_VERに等しい場合、p0はrecPicture[cIdx][xCb+xDi-1][yCb+yDj]に等しく設定され、q0はrecPicture[cIdx][xCb+xDi][yCb+yDj]に等しく設定される。
- そうでない(edgeTypeがEDGE_HORに等しい)場合、p0はrecPicture[cIdx][xCb+xDi][yCb+yDj-1]に等しく設定され、q0はrecPicture[cIdx][xCb+xDi][yCb+yDj]に等しく設定される。
...
[8.8.3.6 一方向のエッジフィルタリングプロセス]
このプロセスへの入力は以下の通りである。
- 垂直エッジ(EDGE_VER)が現在処理されているか水平エッジ(EDGE_HOR)が現在処理されているかを指定する変数edgeType
- 現在の色成分を指定する変数cIdx
- デブロッキングの前の再構成ピクチャrecPicture
- 現在のピクチャの左上サンプルに対する現在のコーディングブロックの左上サンプルを指定する位置(xCb,yCb)、
- 現在のコーディングブロックの幅を指定する変数nCbW、
- 現在のコーディングブロックの高さを指定する変数nCbH、
- 境界強度を指定するアレイbS、
- アレイmaxFilterLengthPs及びmaxFilterLengthQs
このプロセスの出力は、デブロッキングの後の修正された再構成ピクチャrecPictureiである。
...
- そうでない(cIdxが0に等しくない)場合、cIdxによって指定された現在のコーディングユニットのクロマコーディングブロック内のエッジについてのフィルタリングプロセスは、以下の順序のステップで構成される。
1. 変数cQpPicOffsetは、以下のように導出される。
cQpPicOffset=cIdx==1?pps_cb_qp_offset:pps_cr_qp_offset (8-1065)
cQpPicOffset=(pps_cb_qp_offset+pps_cr_qp_offset+1)>>1 (8-1065)
2. cIdx=1及び2についてのbS[xDk][yDm]は、cIdx=1についてのbS[xDk][yDm]が1に等しいか、或いは、cIdx=2についてのbS[xDk][yDm]が1に等しい場合、1に修正される。
3. 第8.8.3.6.3節で示されるクロマブロックエッジの決定プロセスは、クロマピクチャサンプルアレイrecPicture、クロマコーディングブロックの位置(xCb,yCb)、(xDk,yDm)に等しく設定されたクロマブロックの位置(xBl,yBl)、エッジ方向edgeType、[[変数cIdx]]、変数cQpPicOffset、境界フィルタリング強度bS[xDk][yDm]、及びmaxFilterLengthPs[xDk][yDm]に等しく設定された変数maxFilterLengthCbCrを入力として用いて呼び出され、修正された変数maxFilterLengthCbCr、及び変数tCを出力する。
4. maxFilterLengthCbCrが0よりも大きい場合、第8.8.3.6.4節で示されるクロマブロックエッジのフィルタリングプロセスは、クロマピクチャサンプルアレイrecPicture、クロマコーディングブロックの位置(xCb,yCb)、(xDk,yDm)に等しく設定されたブロックのクロマ位置(xBl,yBl)、エッジ方向Type、変数maxFilterLengthCbCr、及び1に等しいcIdxを入力として、且つ、変数tCを入力として用いて呼び出され、修正されたクロマピクチャサンプルアレイrecPictureを出力する。
maxFilterLengthCbCrが0よりも大きい場合、第8.8.3.6.4節で示されるクロマブロックエッジのフィルタリングプロセスは、クロマピクチャサンプルアレイrecPicture、クロマコーディングブロックの位置(xCb,yCb)、(xDk,yDm)に等しく設定されたブロックのクロマ位置(xBl,yBl)、エッジ方向edgeType、変数maxFilterLengthCbCr、及び2に等しいcIdxを入力として、且つ、変数tCを入力として用いて呼び出され、修正されたクロマピクチャサンプルアレイrecPictureを出力する。
[8.8.3.6.3 クロマブロックエッジの決定プロセス]
このプロセスは、ChromaArrayTypeが0に等しくない場合にのみ呼び出される。
このプロセスへの入力は以下の通りである。
- クロマピクチャサンプルアレイrecPicture
- 現在のピクチャの左上クロマサンプルに対する現在のクロマコーディングブロックの左上サンプルを指定するクロマ位置(xCb,yCb)
- 現在のクロマコーディングブロックの左上サンプルに対する現在のクロマブロックの左上サンプルを指定するクロマ位置(xBl,yBl)
- 垂直エッジ(EDGE_VER)がフィルタリングされるか水平エッジ(EDGE_HOR)がフィルタリングされるかを指定する変数edgeType
- [[色成分インデックスを指定する変数cIdx]]
- ピクチャレベルのクロマ量子化パラメータオフセットを指定する変数cQpPicOffset
- 境界フィルタリング強度を指定する変数bS
- 変数maxFilterLengthCbCr
このプロセスの出力は以下の通りである。
- 修正された変数maxFilterLengthCbCr
- 変数tC
変数maxKは、以下のように導出される。
- edgeTypeがEDGE_VERに等しい場合、以下が適用される。
maxK=(SubHeightC==1)?3:1 (8-1124)
- そうでない(edgeTypeがEDGE_HORに等しい)場合、以下が適用される。
maxK=(SubWidthC==1)?3:1 (8-1125)
値pi及びqi(c=0..1、i=0..maxFilterLengthCbCr及びk=0..maxK)は、以下のように導出される。
- edgeTypeがEDGE_VERに等しい場合、以下が適用される。
q c,i,k=recPicture[c][xCb+xBl+i][yCb+yBl+k] (8-1126)
p c,i,k=recPicture[c][xCb+xBl-i-1][yCb+yBl+k] (8-1127)
subSampleC=SubHeightC (8-1128)
- そうでない(edgeTypeがEDGE_HORに等しい)場合、以下が適用される。
q c,i,k=recPicture[c][xCb+xBl+k][yCb+yBl+i] (8-1129)
p c,i,k=recPicture[c][xCb+xBl+k][yCb+yBl-i-1] (8-1130)
subSampleC=SubWidthC (8-1131)
変数QpQ及びQpPは、それぞれサンプルq0,0及びp0,0を含むコーディングブロックを含むコーディングユニットのQpY値に等しく設定される。
変数QpCは、以下のように導出される。
qPi=Clip3(0,63,((QpQ+QpP+1)>>1)+cQpPicOffset) (8-1132)
QpC=ChromaQpTable[cIdx-1][qPi]+cQpPicOffset (8-1133)
QpC=((ChromaQpTable[0][qPi]+ChromaQpTable[1][qPi]+1)>>1)+cQpPicOffset (8-1133)
注記-変数cQpPicOffsetは、フィルタリングされたクロマ成分がCb成分であるかCr成分であるかに従って、pps_cb_qp_offset又はpps_cr_qp_offsetの値を調整する。しかし、ピクチャ内の調整の量を変更する必要性を回避するために、フィルタリングプロセスは、slice_cb_qp_offset又はslice_cr_qp_offsetの値についても、(cu_chroma_qp_offset_enabled_flagが1に等しい場合)CuQpOffsetCb、CuQpOffsetCr又はCuQpOffsetCbCrの値についても調整を含まない。
変数β’の値は、以下のように導出された量子化パラメータQに基づいて、表8-18で示されるように決定される。
Q=Clip3(0,63,QpC+(slice_beta_offset_div2<<1)) (8-1134)
ここで、slice_beta_offset_div2は、サンプルq0,0を含むスライスについてのシンタックスエレメントslice_beta_offset_div2の値である。
変数βは、以下のように導出される。
β=β’×(1<<(BitDepthC-8)) (8-1135)
変数tC’の値は、以下のように導出されたクロマ量子化パラメータQに基づいて、表8-18で示されるように決定される。
Q=Clip3(0,65,QpC+2×(bS-1)+(slice_tc_offset_div2<<1)) (8-1136)
ここで、slice_tc_offset_div2は、サンプルq0,0を含むスライスについてのシンタックスエレメントslice_tc_offset_div2の値である。
変数tCは、以下のように導出される。
tC=(BitDepthC<10)?(tC’+2)>>(10-BitDepthC):tC’×(1<<(BitDepthC-8)) (8-1137)
maxFilterLengthCbCrが1に等しく、bSが2に等しくない場合、maxFilterLengthCbCrは0に等しく設定される。
maxFilterLengthCbCrが3に等しい場合、以下の順序のステップが適用される。
1. 変数n1、dpq0c、dpq1c、dpc、dqc及びdc(c=0..1)が以下のように導出される。
n1=(subSampleC==2)?1:3 (8-1138)
dp0c=Abs(p c,2,0-2×p c,1,0+p c,0,0) (8-1139)
dp1c=Abs(p c,2,n1-2×p c,1,n1+p c,0,n1) (8-1140)
dq0c=Abs(q c,2,0-2×q c,1,0+qc,0,0) (8-1141)
dq1c= Abs(q c,2,n1-2×q c,1,n1+q c,0,n1) (8-1142)
dpq0c=dp0c+dq0c (8-1143)
dpq1c=dp1c+dq1c (8-1144)
dpc=dp0c+dp1c (8-1145)
dqc=dq0c+dq1c (8-1146)
dc=dpq0c+dpq1c (8-1147)
2. 変数dは、(d0+d1+1)>>1に等しく設定される。
3. 変数dSam0及びdSam1がともに0に等しく設定される。
4. dがβよりも小さい場合、以下の順序のステップが適用される。
a. 変数dpqが2×dpq0に等しく設定される。
b. 変数dSam0が、サンプル値p0,0、p3,0、q0,0及びq3,0、変数dpq、β及びtCを入力として用いて、サンプル位置(xCb+xBl,yCb+yBl)について、第8.8.3.6.8節で示されるクロマサンプルの決定プロセスを呼び出すことによって導出され、出力が、決定dSam0に割り当てられる。
c. 変数dpqが2×dpq1に等しく設定される。
d. 変数dSam1が、以下のように変更される。
- edgeTypeがEDGE_VERに等しい場合、サンプル位置(xCb+xBl,yCb+yBl+n1)について、第8.8.3.6.8節で示されるクロマサンプルの決定プロセスは、サンプル値p0,n1、p3,n1、q0,n1及びq3,n1、変数dpq、β及びtCを入力として用いて呼び出され、出力が、決定dSam1に割り当てられる。
- そうでない(edgeTypeがEDGE_HORに等しい)場合、サンプル位置(xCb+xBl+n1,yCb+yBl)について、第8.8.3.6.8節で示されるクロマサンプルの決定プロセスは、サンプル値p0,n1、p3,n1、q0,n1及びq3,n1、変数dpq、β及びtCを入力として用いて呼び出され、出力が、決定dSam1に割り当てられる。
5. 変数maxFilterLengthCbCrが、以下のように変更される。
- dSam0が1に等しく、dSam1が1に等しい場合、maxFilterLengthCbCrは3に等しく設定される。
- 上記以外の場合に、maxFilterLengthCbCrは1に等しく設定される。
[8.8.3.6.4 クロマブロックエッジのフィルタリングプロセス]
このプロセスは、ChromaArrayTypeが0に等しくない場合にのみ呼び出される。
このプロセスへの入力は以下の通りである。
- クロマピクチャサンプルアレイrecPicture
- 現在のピクチャの左上クロマサンプルに対する現在のクロマコーディングブロックの左上サンプルを指定するクロマ位置(xCb,yCb)
- 現在のクロマコーディングブロックの左上サンプルに対する現在のクロマブロックの左上サンプルを指定するクロマ位置(xBl,yBl)
- 垂直エッジ(EDGE_VER)がフィルタリングされるか水平エッジ(EDGE_HOR))がフィルタリングされるかを指定する変数edgeType
- 最大クロマフィルタ長さを含む変数maxFilterLengthCbCr
6. 色成分インデックスを指定する変数cIdx
- 変数tC
このプロセスの出力は、修正されたクロマピクチャサンプルアレイrecPictureである。
...
値pi及びqi(i=0..maxFilterLengthCbCr及びk=0..maxK)は、以下のように導出される。
- edgeTypeがEDGE_VERに等しい場合、以下が適用される。
qi,k=recPicture[cIdx][xCb+xBl+i][yCb+yBl+k] (8-1150)
pi,k=recPicture[cIdx][xCb+xBl-i-1][yCb+yBl+k] (8-1151)
- そうでない(edgeTypeがEDGE_HORに等しい)場合に、以下が適用される。
qi,k=recPicture[cIdx][xCb+xBl+k][yCb+yBl+i] (8-1152)
pi,k=recPicture[cIdx][xCb+xBl+k][yCb+yBl-i-1] (8-1153)
edgeTypeの値に依存して、以下が適用される。
- edgeTypeがEDGE_VERに等しい場合、各サンプル位置(xCb+xBl,yCb+yBl+k)(k=0..maxK)について、以下の順序のステップが適用される。
1. 第8.8.3.6.9節で示されるクロマサンプルのフィルタリングプロセスが、変数maxFilterLengthCbCr、サンプル値pi,k、qi,k(i=0..maxFilterLengthCbCr)、位置(xCb+xBl-i-1,yCb+yBl+k)及び(xCb+xBl+i,yCb+yBl+k)(i=0..maxFilterLengthCbCr-1)、並びに変数tCを入力として用いて呼び出され、フィルタリングされたサンプル値pi’及びqi’(i=0..maxFilterLengthCbCr-1)を出力する。
2. フィルタリングされたサンプル値pi’及びqi’(i=0..maxFilterLengthCbCr-1)が、以下のように、サンプルアレイrecPicture内の対応するサンプルを置換する。
recPicture[cIdx][xCb+xBl+i][yCb+yBl+k]=qi’ (8-1154)
recPicture[cIdx][xCb+xBl-i-1][yCb+yBl+k]=pi’ (8-1155)
- そうでない(edgeTypeがEDGE_HORに等しい)場合、各サンプル位置(xCb+xBl+k,yCb+yBl)(k=0..maxK)について、以下の順序のステップが適用される。
1. 第8.8.3.6.9節で示されるクロマサンプルのフィルタリングプロセスが、変数maxFilterLengthCbCr、サンプル値pi,k、qi,k(i=0..maxFilterLengthCbCr)、位置(xCb+xBl+k,yCb+yBl-i-1)及び(xCb+xBl+k,yCb+yBl+i)、並びに変数tCを入力として用いて呼び出され、フィルタリングされたサンプル値pi’及びqi’を出力する。
2. フィルタリングされたサンプル値pi’及びqi’が、以下のように、サンプルアレイrecPicture内の対応するサンプルを置換する。
recPicture[cIdx][xCb+xBl+k][yCb+yBl+i]=qi’ (8-1156)
recPicture[cIdx][xCb+xBl+k][yCb+yBl-i-1]=pi’
[8.8.3.6.3 クロマブロックのエッジの決定プロセス]
...
[[変数Qp Q 及びQp P は、それぞれサンプルq 0,0 及びp 0,0 を含むコーディングブロックを含むコーディングユニットのQp Y 値に等しく設定される。]]
[[変数Qp C は、以下のように導出される。]]
[[qPi=Clip3(0,63,((Qp Q +Qp P +1)>>1)+cQpPicOffset) (8-1132)]]
[[Qp C =ChromaQpTable[cIdx-1][qPi] (8-1133)]]
ChromaArrayTypeが0に等しくなく、treeTypeがSINGLE_TREE又はDUAL_TREE_CHROMAに等しい場合、以下が適用される。
- treeTypeがDUAL_TREE_CHROMAに等しい場合、変数QpYは、ルマ位置(xCb+cbWidth/2,yCb+cbHeight/2)をカバーするルマコーディングユニットのルマ量子化パラメータQpYに等しく設定される。
- 変数qPCb、qPCr及びqPCbCrは、以下のように導出される。
qPiChroma=Clip3(-QpBdOffsetC,63,QpY) (8-935)
qPiCb=ChromaQpTable[0][qPiChroma] (8-936)
qPiCr=ChromaQpTable[1][qPiChroma] (8-937)
qPiCbCr=ChromaQpTable[2][qPiChroma] (8-938)
- Cb及びCr成分のクロマ量子化パラメータQp’Cb及びQp’Cr並びに共同Cb-Crコーディングのクロマ量子化パラメータQp’CbCrは、以下のように導出される。
Qp’Cb=Clip3(-QpBdOffsetC,63,qPCb+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb)+QpBdOffsetC (8-939)
Qp’Cr=Clip3(-QpBdOffsetC,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)+QpBdOffsetC (8-940)
Qp’CbCr=Clip3(-QpBdOffsetC,63,qPCbCr+pps_cbcr_qp_offset+slice_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffsetC (8-941)
変数QpQ及びQpPは、それぞれ、サンプルq0,0及びp0,0を含むコーディングブロックを含むコーディングユニットの、cIdxが1に等しいときにはQp’Cb値に、或いは、cIdxが2に等しいときにはQp’Cr値に、或いは、tu_joint_cbcr_residual_flagが1に等しいときにはQp’CbCr値に等しく設定される。
変数QpCは、以下のように導出される。
QpC=(QpQ+QpP+1)>>1
[8.8.3.6.3 クロマブロックエッジの決定プロセス]
...
[[変数Qp Q 及びQp P は、それぞれサンプルq 0,0 及びp 0,0 を含むコーディングブロックを含むコーディングユニットのQp Y 値に等しく設定される。]]
[[変数QpCは、以下のように導出される。]]
[[qPi=Clip3(0,63,((Qp Q +Qp P +1)>>1)+cQpPicOffset) (8-1132)]]
[[Qp C =ChromaQpTable[cIdx-1][qPi] (8-1133)]]
[[注記-変数cQpPicOffsetは、フィルタリングされたクロマ成分がCb成分であるかCr成分であるかに従って、pps_cb_qp_offset又はpps_cr_qp_offsetの値を調整する。しかし、ピクチャ内の調整の量を変更する必要性を回避するために、フィルタリングプロセスは、slice_cb_qp_offset又はslice_cr_qp_offsetの値についても、(cu_chroma_qp_offset_enabled_flagが1に等しい場合)CuQpOffset Cb 、CuQpOffset Cr 又はCuQpOffset CbCr の値についても調整を含まない。]]
変数Qp Q 及びQp P は、それぞれ、サンプルq 0,0 及びp 0,0 を含む変換ブロック(xTb,yTb)の、TuCResMode[xTb][yTb]が2に等しいときにはQp’ CbCr -QpBdOffsetCに、cIdxが1に等しいときにはQp’ Cb -QpBdOffsetCに、cIdxが2に等しいときにはQp’ Cr -QpBdOffsetCに等しく設定される。
変数Qp C は、以下のように導出される。
Qp C =(Qp Q +Qp P +1)>>1
...
実施形態はJVET-P2001-vEに基づいている。新たに追加されたテキストは、下線の付いたイタリック体の太字(又は下線の付いたテキスト)で示されている。削除されたテキストは、下線の付いた太字(又は[[]]と共に下線の付いたテキスト)で記されている。
[クロマブロックエッジの決定プロセス]
このプロセスは、ChromaArrayTypeが0に等しくない場合にのみ呼び出される。
このプロセスへの入力は以下の通りである。
- クロマピクチャサンプルアレイrecPicture
- 現在のピクチャの左上クロマサンプルに対する現在のクロマコーディングブロックの左上サンプルを指定するクロマ位置(xCb,yCb)
- 現在のクロマコーディングブロックの左上サンプルに対する現在のクロマブロックの左上サンプルを指定するクロマ位置(xBl,yBl)
- 垂直エッジ(EDGE_VER)がフィルタリングされるか水平エッジ(EDGE_HOR)がフィルタリングされるかを指定する変数edgeType
- 色成分インデックスを指定する変数cIdx
- 境界フィルタリング強度を指定する変数bS
- 最大フィルタ長を指定する変数maxFilterLengthP
- 最大フィルタ長を指定する変数maxFilterLengthQ
このプロセスの出力は以下の通りである。
- 修正されたフィルタ長の変数maxFilterLengthP及びmaxFilterLengthQ
- 変数tC
...
変数QpPは以下のように導出される。
- ルマ位置(xTbP,xTbP)は、ピクチャの左上ルマサンプルに対してサンプルp0,0を含む変換ブロックの左上ルマサンプル位置として設定される。
- TuCResMode[xTbP][yTbP]が2に等しい場合、QpPは、サンプルp0,0を含む変換ブロックのQp’CbCrに等しく設定される。
- そうではなく、cIdxが1に等しく、transform_skip_flag[xTb P ][yTb P ][cIdx]が1に等しい場合、Qp P は、サンプルp 0,0 を含む変換ブロックのMax(QpPrimeTsMin,Qp’ Cb )に等しく設定される。
- そうではなく、cIdxが1に等しく、transform_skip_flag[xTb P ][yTb P ][cIdx]が0に等しい場合、QpPは、サンプルp0,0を含む変換ブロックのQp’Cbに等しく設定される。
- そうでない場合、QpPは、サンプルp0,0を含む変換ブロックのQp’Crに等しく設定される。
- cu_act_enabled_flag[xTb P ][yTb P ]が1に等しい場合、Qp P はQp P -5に等しく設定される。
変数QpQは以下のように導出される。
- ルマ位置(xTbQ,xTbQ)は、ピクチャの左上ルマサンプルに対してサンプルq0,0を含む変換ブロックの左上ルマサンプル位置として設定される。
- TuCResMode[xTbQ][yTbQ]が2に等しい場合、QpQは、サンプルq0,0を含む変換ブロックのQp’CbCrに等しく設定される。
- そうではなく、cIdxが1に等しく、transform_skip_flag[xTb Q ][yTb Q ][cIdx]が1に等しい場合、Qp Q は、サンプルp 0,0 を含む変換ブロックのMax(QpPrimeTsMin,Qp’ Cr )に等しく設定される。
- そうではなく、cIdxが1に等しく、transform_skip_flag[xTb P ][yTb P ][cIdx]が0に等しい場合、QpQは、サンプルq0,0を含む変換ブロックのQp’Cbに等しく設定される。
- そうでない場合、QpQは、サンプルq0,0を含む変換ブロックのQp’Crに等しく設定される。
- cu_act_enabled_flag[xTb Q ][yTb Q ]が1に等しい場合、Qp Q はQp Q -5に等しく設定される。
- 変数QpCは以下のように導出される。
QpC=(QpQ-QpBdOffset+QpP-QpBdOffset+1)>>1 (1321)
...
実施形態はJVET-P2001-vEに基づいている。新たに追加されたテキストは、下線の付いたイタリック体の太字(又は下線の付いたテキスト)で示されている。削除されたテキストは、下線の付いたイタリック体の太字(又は[[]]と共に下線の付いたテキスト)で記されている。
[クロマブロックエッジの決定プロセス]
このプロセスは、ChromaArrayTypeが0に等しくない場合にのみ呼び出される。
このプロセスへの入力は以下の通りである。
- クロマピクチャサンプルアレイrecPicture
- 現在のピクチャの左上クロマサンプルに対する現在のクロマコーディングブロックの左上サンプルを指定するクロマ位置(xCb,yCb)
- 現在のクロマコーディングブロックの左上サンプルに対する現在のクロマブロックの左上サンプルを指定するクロマ位置(xBl,yBl)
- 垂直エッジ(EDGE_VER)がフィルタリングされるか水平エッジ(EDGE_HOR)がフィルタリングされるかを指定する変数edgeType
- 色成分インデックスを指定する変数cIdx
- 境界フィルタリング強度を指定する変数bS
- 最大フィルタ長を指定する変数maxFilterLengthP
- 最大フィルタ長を指定する変数maxFilterLengthQ
このプロセスの出力は以下の通りである。
- 修正されたフィルタ長の変数maxFilterLengthP及びmaxFilterLengthQ
- 変数tC
変数QpPは以下のように導出される。
- ルマ位置(xTbP,xTbP)は、ピクチャの左上ルマサンプルに対してサンプルp0,0を含む変換ブロックの左上ルマサンプル位置として設定される。
- TuCResMode[xTbP][yTbP]が2に等しい場合、QpPは、サンプルp0,0を含む変換ブロックのQp’CbCrに等しく設定される。
- そうではなく、cIdxが1に等しく、transform_skip_flag[xTb P ][yTb P ][cIdx]が1に等しい場合、Qp P は、サンプルp 0,0 を含む変換ブロックのMax(QpPrimeTsMin,Qp’ Cb )に等しく設定される。
- そうではなく、cIdxが1に等しく、transform_skip_flag[xTb P ][yTb P ][cIdx]が0に等しい場合、QpPは、サンプルp0,0を含む変換ブロックのQp’Cbに等しく設定される。
- そうでない場合、QpPは、サンプルp0,0を含む変換ブロックのQp’Crに等しく設定される。
- cu_act_enabled_flag[xTb P ][yTb P ]が1に等しい場合、Qp P はQp P -5に等しく設定される。
変数QpQは以下のように導出される。
- ルマ位置(xTbQ,xTbQ)は、ピクチャの左上ルマサンプルに対してサンプルq0,0を含む変換ブロックの左上ルマサンプル位置として設定される。
- TuCResMode[xTbQ][yTbQ]が2に等しい場合、QpQは、サンプルq0,0を含む変換ブロックのQp’CbCrに等しく設定される。
- そうではなく、cIdxが1に等しく、transform_skip_flag[xTb Q ][yTb Q ][cIdx]が1に等しい場合、Qp Q は、サンプルp 0,0 を含む変換ブロックのMax(QpPrimeTsMin,Qp’ Cr )に等しく設定される。
- そうではなく、cIdxが1に等しく、transform_skip_flag[xTb P ][yTb P ][cIdx]が0に等しい場合、QpQは、サンプルq0,0を含む変換ブロックのQp’Cbに等しく設定される。
- そうでない場合、QpQは、サンプルq0,0を含む変換ブロックのQp’Crに等しく設定される。
- cu_act_enabled_flag[xTb Q ][yTb Q ]が1に等しい場合、Qp Q はQp Q -3に等しく設定される。
- 変数QpCは以下のように導出される。
QpC=(QpQ-QpBdOffset+QpP-QpBdOffset+1)>>1 (1321)
...
[7.3.2.4 ピクチャパラメータセットのRBSPのシンタックス]
pps_cb_beta_offset_div2及びpps_cb_tc_offset_div2は、デフォルトのデブロッキングパラメータオフセットがPPSを参照するスライスのスライスヘッダに存在するデブロッキングパラメータオフセットによって上書きされない限り、PPSを参照するスライスのCb成分に適用されるβ及びtCのデフォルトのデブロッキングパラメータオフセット(2で除算する)を指定する。pps_beta_offset_div2及びpps_tc_offset_div2の値は、双方とも-6以上6以下の範囲にあるものとする。存在しない場合、pps_beta_offset_div2及びpps_tc_offset_div2の値は0に等しいと推定される。
pps_cr_beta_offset_div2及びpps_cr_tc_offset_div2は、デフォルトのデブロッキングパラメータオフセットがPPSを参照するスライスのスライスヘッダに存在するデブロッキングパラメータオフセットによって上書きされない限り、PPSを参照するスライスのCr成分に適用されるβ及びtCのデフォルトのデブロッキングパラメータオフセット(2で除算する)を指定する。pps_beta_offset_div2及びpps_tc_offset_div2の値は、双方とも-6以上6以下の範囲にあるものとする。存在しない場合、pps_beta_offset_div2及びpps_tc_offset_div2の値は0に等しいと推定される。
[7.4.3.4 ピクチャヘッダ]
pic_cb_beta_offset_div2及びpic_cb_tc_offset_div2は、PHに関連するスライスのCb成分に適用されるβ及びtCのデブロッキングパラメータオフセット(2で除算する)を指定する。pic_beta_offset_div2及びpic_tc_offset_div2の値は、双方とも-6以上6以下の範囲にあるものとする。存在しない場合、pps_beta_offset_div2及びpc_tc_offset_div2の値は、それぞれpps_beta_offset_div2及びpps_tc_offset_div2に等しいと推定される。
pic_cr_beta_offset_div2及びpic_cr_tc_offset_div2は、PHに関連するスライスのCr成分に適用されるβ及びtCのデブロッキングパラメータオフセット(2で除算する)を指定する。pic_beta_offset_div2及びpic_tc_offset_div2の値は、双方とも-6以上6以下の範囲にあるものとする。存在しない場合、pps_beta_offset_div2及びpc_tc_offset_div2の値は、それぞれpps_beta_offset_div2及びpps_tc_offset_div2に等しいと推定される。
[7.4.8.1 一般的スライスヘッダの意味]
slice_cb_beta_offset_div2及びslice_cb_tc_offset_div2は、現在のスライスのCb成分に適用されるβ及びtCのデロックパラメータオフセット(2で除算する)を指定する。slice_beta_offset_div2及びslice_tc_offset_div2の値は、双方とも-6以上6以下の範囲にあるものとする。存在しない場合、slice_beta_offset_div2及びslice_tc_offset_div2の値は、それぞれpic_beta_offset_div2及びpic_tc_offset_div2と等しいと推定される。
slice_cr_beta_offset_div2及びslice_cr_tc_offset_div2は、現在のスライスのCb成分に適用されるβ及びtCのデロックパラメータオフセット(2で除算する)を指定する。slice_beta_offset_div2及びslice_tc_offset_div2の値は、双方とも-6以上6以下の範囲にあるものとする。存在しない場合、slice_beta_offset_div2及びslice_tc_offset_div2の値は、それぞれpic_beta_offset_div2及びpic_tc_offset_div2と等しいと推定される。
[8.8.3.6.3 クロマブロックのエッジの決定プロセス]
...
変数β’の値は、以下のように導出された量子化パラメータQに基づいて、表41で示されるように決定される。
[[Q=Clip3(0,63,Qp C +(slice_beta_offset_div2<<1)) (1322)]]
■ cIdxが1に等しい場合
Q=Clip3(0,63,Qp C +(slice_cb_beta_offset_div2<<1))
■ そうでない場合
Q=Clip3(0,63,Qp C +(slice_cr_beta_offset_div2<<1))
ここで、slice_beta_offset_div2は、サンプルq0,0を含むスライスについてのシンタックスエレメントslice_beta_offset_div2の値である。
変数βは、以下のように導出される。
β=β’×(1<<(BitDepthC-8)) (1323)
変数tC’の値は、以下のように導出されたクロマ量子化パラメータQに基づいて、表41で示されるように決定される。
[[Q=Clip3(0,65,Qp C +2×(bS-1)+(slice_tc_offset_div2<<1)) (1324)]]
■ cIdxが1に等しい場合
Q=Clip3(0,65,Qp C +2×(bS-1)+(slice_cb_tc_offset_div2<<1))
■ そうでない場合
Q=Clip3(0,65,Qp C +2×(bS-1)+(slice_cr_tc_offset_div2<<1))
...
この実施形態は実施形態#15に基づく。
[7.3.2.4 ピクチャパラメータセットのRBSPのシンタックス]
pps_cb_beta_offset_div2及びpps_cb_tc_offset_div2は、デフォルトのデブロッキングパラメータオフセットがPPSを参照するスライスのスライスヘッダに存在するデブロッキングパラメータオフセットによって上書きされない限り、PPSを参照するスライスのCb成分に適用されるβ及びtCのデフォルトのデブロッキングパラメータオフセット(2で除算する)を指定する。pps_beta_offset_div2及びpps_tc_offset_div2の値は、双方とも-6以上6以下の範囲にあるものとする。存在しない場合、pps_beta_offset_div2及びpps_tc_offset_div2の値は0に等しいと推定される。
pps_cr_beta_offset_div2及びpps_cr_tc_offset_div2は、デフォルトのデブロッキングパラメータオフセットがPPSを参照するスライスのスライスヘッダに存在するデブロッキングパラメータオフセットによって上書きされない限り、PPSを参照するスライスのCr成分に適用されるβ及びtCのデフォルトのデブロッキングパラメータオフセット(2で除算する)を指定する。pps_beta_offset_div2及びpps_tc_offset_div2の値は、双方とも-6以上6以下の範囲にあるものとする。存在しない場合、pps_beta_offset_div2及びpps_tc_offset_div2の値は0に等しいと推定される。
[7.4.8.1 一般的スライスヘッダの意味]
slice_cb_beta_offset_div2及びslice_cb_tc_offset_div2は、現在のスライスのCb成分に適用されるβ及びtCのデロックパラメータオフセット(2で除算する)を指定する。slice_beta_offset_div2及びslice_tc_offset_div2の値は、双方とも-6以上6以下の範囲にあるものとする。存在しない場合、slice_beta_offset_div2及びslice_tc_offset_div2の値は、それぞれpps_beta_offset_div2及びpps_tc_offset_div2と等しいと推定される。
slice_cr_beta_offset_div2及びslice_cr_tc_offset_div2は、現在のスライスのCb成分に適用されるβ及びtCのデロックパラメータオフセット(2で除算する)を指定する。slice_beta_offset_div2及びslice_tc_offset_div2の値は、双方とも-6以上6以下の範囲にあるものとする。存在しない場合、slice_beta_offset_div2及びslice_tc_offset_div2の値は、それぞれpps_beta_offset_div2及びpps_tc_offset_div2と等しいと推定される。
[8.8.3.6.3 クロマブロックのエッジの決定プロセス]
...
変数β’の値は、以下のように導出された量子化パラメータQに基づいて、表41で示されるように決定される。
[[Q=Clip3(0,63,Qp C +(slice_beta_offset_div2<<1)) (1322)]]
■ cIdxが1に等しい場合
Q=Clip3(0,63,Qp C +(slice_cb_beta_offset_div2<<1))
■ そうでない場合
Q=Clip3(0,63,Qp C +(slice_cr_beta_offset_div2<<1))
ここで、slice_beta_offset_div2は、サンプルq0,0を含むスライスについてのシンタックスエレメントslice_beta_offset_div2の値である。
変数βは、以下のように導出される。
β=β’×(1<<(BitDepthC-8)) (1323)
1で示されるように決定される。
[[Q=Clip3(0,65,Qp C +2×(bS-1)+(slice_tc_offset_div2<<1)) (1324)]]
■ cIdxが1に等しい場合
Q=Clip3(0,65,Qp C +2×(bS-1)+(slice_cb_tc_offset_div2<<1))
■ そうでない場合
Q=Clip3(0,65,Qp C +2×(bS-1)+(slice_cr_tc_offset_div2<<1))
...
この実施形態は実施形態#17に基づく。
[7.4.3.4 ピクチャパラメータセットのRBSPの意味]
pps_cb_beta_offset_div2及びpps_cb_tc_offset_div2は、現在のPPSのCb成分に適用されるβ及びtCのデフォルトのデブロッキングパラメータオフセット(2で除算する)を指定する。pps_beta_offset_div2及びpps_tc_offset_div2の値は、双方とも-6以上6以下の範囲にあるものとする。存在しない場合、pps_beta_offset_div2及びpps_tc_offset_div2の値は0に等しいと推定される。
pps_cr_beta_offset_div2及びpps_cr_tc_offset_div2は、現在のPPSのCr成分に適用されるβ及びtCのデフォルトのデブロッキングパラメータオフセット(2で除算する)を指定する。pps_beta_offset_div2及びpps_tc_offset_div2の値は、双方とも-6以上6以下の範囲にあるものとする。存在しない場合、pps_beta_offset_div2及びpps_tc_offset_div2の値は0に等しいと推定される。
[7.4.8.1 一般的スライスヘッダの意味]
slice_cb_beta_offset_div2及びslice_cb_tc_offset_div2は、現在のスライスのCb成分に適用されるβ及びtCのデロックパラメータオフセット(2で除算する)を指定する。slice_beta_offset_div2及びslice_tc_offset_div2の値は、双方とも-6以上6以下の範囲にあるものとする。
slice_cr_beta_offset_div2及びslice_cr_tc_offset_div2は、現在のスライスのCb成分に適用されるβ及びtCのデロックパラメータオフセット(2で除算する)を指定する。slice_beta_offset_div2及びslice_tc_offset_div2の値は、双方とも-6以上6以下の範囲にあるものとする。
[8.8.3.6.1 ルマブロックのエッジの決定プロセス]
...
変数β’の値は、以下のように導出された量子化パラメータQに基づいて、表41で示されるように決定される。
[[Q=Clip3(0,63,qP+(slice_beta_offset_div2<<1)) (1262)]]
Q=Clip3(0,63,qP+((pps_beta_offset_div2+slice_beta_offset_div2)<<1)) (1262)
ここで、slice_beta_offset_div2は、サンプルq0,0を含むスライスについてのシンタックスエレメントslice_beta_offset_div2の値である。
変数βは、以下のように導出される。
β=β’×(1<<(BitDepthC-8)) (1263)
変数tC’の値は、以下のように導出された量子化パラメータQに基づいて、表41で示されるように決定される。
[[Q=Clip3(0,65,qP+2×(bS-1)+(slice_tc_offset_div2<<1)) (1264)]]
Q=Clip3(0,65,qP+2×(bS-1)+((pps_tc_offset_div2+slice_tc_offset_div2)<<1)) (1264)
...
[8.8.3.6.3 クロマブロックのエッジの決定プロセス]
...
変数β’の値は、以下のように導出された量子化パラメータQに基づいて、表41で示されるように決定される。
[[Q=Clip3(0,63,Qp C +(slice_beta_offset_div2<<1)) (1322)]]
- cIdxが1に等しい場合
Q=Clip3(0,63,Qp C +((pps_cb_beta_offset_div2+slice_cb_beta_offset_div2)<<1))
- そうでない場合
Q=Clip3(0,63,Qp C +((pps_cr_beta_offset_div2+slice_cr_beta_offset_div2)<<1))
ここで、slice_beta_offset_div2は、サンプルq0,0を含むスライスについてのシンタックスエレメントslice_beta_offset_div2の値である。
変数βは、以下のように導出される。
β=β’×(1<<(BitDepthC-8)) (1323)
変数tC’の値は、以下のように導出されたクロマ量子化パラメータQに基づいて、表41で示されるように決定される。
[[Q=Clip3(0,65,Qp C +2×(bS-1)+(slice_tc_offset_div2<<1)) (1324)]]
- cIdxが1に等しい場合
Q=Clip3(0,65,Qp C +2×(bS-1)+((pps_cb_tc_offset_div2+slice_cb_tc_offset_div2)<<1))
- そうでない場合
Q=Clip3(0,65,Qp C +2×(bS-1)+((pps_cr_tc_offset_div2+slice_cr_tc_offset_div2)<<1))
...
この実施形態はACTに関する。
1に等しいintra_bdpcm_chroma_flagは、BDPCMが位置(x0,y0)における現在のクロマコーディングブロックにBDPCMが適用されること、すなわち、変換がスキップされ、イントラクロマ予測モードがintra_bdpcm_chroma_dir_flagで指定されることを指定する。0に等しいintra_bdpcm_chroma_flagは、BDPCMが位置(x0,y0)において現在のクロマコーディングブロックに適用されないことを指定する。
intra_bdpcm_chroma_flagが存在しない場合、[[0に等しいと推定される]]sps_bdpcm_chroma_enabled_flag&&cu_act_enabled_flag&&intra_bdpcm_luma_flagに等しいと推定される。
変数BdpcmFlag[x][y][cIdx]は、x=x0..x0+cbWidth-1、y=y0..y0+cbHeight-1及びcIdx=1..2について、intra_bdpcm_chroma_flagに等しく設定される。
0に等しいintra_bdpcm_chroma_dir_flagは、BDPCM予測方向が水平であることを指定する。1に等しいintra_bdpcm_chroma_dir_flagは、BDPCM予測方向が垂直であることを指定する。
intra_bdpcm_chroma_dir_flagが存在しない場合、(cu_act_enabled_flag?intra_bdpcm_luma_dir_flag:0)に等しいと推定される。
変数BdpcmDir[x][y][cIdx]は、x=x0..x0+cbWidth-1、y=y0..y0+cbHeight-1及びcIdx=1..2について、intra_bdpcm_chroma_dir_flagに等しく設定される。
[8.8.3.6.1 ルマブロックエッジの決定プロセス]
このプロセスへの入力は以下の通りである。
- ピクチャサンプルアレイrecPicture
- 現在のピクチャの左上サンプルに対する現在のコーディングブロックの左上サンプルを指定する位置(xCb,yCb)
- 現在のコーディングブロックの左上サンプルに対する現在のブロックの左上サンプルを指定する位置(xBl,yBl)
- 垂直エッジ(EDGE_VER)がフィルタリングされるか水平エッジ(EDGE_HOR)がフィルタリングされるかを指定する変数edgeType
- 境界フィルタリング強度を指定する変数bS
- 最大フィルタ長を指定する変数maxFilterLengthP
- 最大フィルタ長を指定する変数maxFilterLengthQ
このプロセスの出力は以下の通りである。
- 決定を含む変数dE、dEp及びdEq
- 修正フィルタ長の変数maxFilterLengthP及びmaxFilterLengthQ
- 変数tC
...
[[変数Qp Q 及びQp P は、それぞれサンプルq 0,0 及びp 0,0 を含むコーディングブロックを含むコーディングユニットのQp Y 値に等しく設定される。]]
変数Qp Q は以下のように導出される。
Qp Q は、サンプルq 0,0 を含むコーディングブロックを含むコーディングユニットのQp Y 値に設定される。
サンプルq 0,0 を含むコーディングブロックのtransform_skip_flagが1に等しい場合、
Qp Q =Max(QpPrimeTsMin,Qp Q +QpBdOffset)-QpBdOffset
Qp p は、サンプルp 0,0 を含むコーディングブロックを含むコーディングユニットのQp Y 値に設定される。
サンプルp 0,0 を含むコーディングブロックのtransform_skip_flagが1に等しい場合、
Qp p =Max(QpPrimeTsMin,Qp p +QpBdOffset)-QpBdOffset
...
[8.8.3.6.3 クロマブロックエッジの決定プロセス]
このプロセスは、ChromaArrayTypeが0に等しくない場合にのみ呼び出される。
このプロセスへの入力は以下の通りである。
- クロマピクチャサンプルアレイrecPicture
- 現在のピクチャの左上クロマサンプルに対する現在のクロマコーディングブロックの左上サンプルを指定するクロマ位置(xCb,yCb)
- 現在のクロマコーディングブロックの左上サンプルに対する現在のクロマブロックの左上サンプルを指定するクロマ位置(xBl,yBl)
- 垂直エッジ(EDGE_VER)がフィルタリングされるか水平エッジ(EDGE_HOR)がフィルタリングされるかを指定する変数edgeType
- 色成分インデックスを指定する変数cIdx
- 境界フィルタリング強度を指定する変数bS
- 最大フィルタ長を指定する変数maxFilterLengthP
- 最大フィルタ長を指定する変数maxFilterLengthQ
このプロセスの出力は以下の通りである。
- 修正されたフィルタ長の変数maxFilterLengthP及びmaxFilterLengthQ
- 変数tC
...
変数QpPは以下のように導出される。
- ルマ位置(xTbP,xTbP)は、ピクチャの左上ルマサンプルに対してサンプルp0,0を含む変換ブロックの左上ルマサンプル位置として設定される。
- TuCResMode[xTbP][yTbP]が2に等しい場合、QpPは、サンプルp0,0を含む変換ブロックのQp’CbCrに等しく設定される。
- そうではなく、cIdxが1に等しい場合、QpPは、サンプルp0,0を含む変換ブロックのQp’Cbに等しく設定される。
- そうでない場合、QpPは、サンプルp0,0を含む変換ブロックのQp’Crに等しく設定される。
変数Qp P は以下のように修正される。
Qp P =Max(transform_skip_flag[xTb P ][yTb P ][cIdx]?QpPrimeTsMin:0,Qp P )
変数QpQは以下のように導出される。
- ルマ位置(xTbQ,xTbQ)は、ピクチャの左上ルマサンプルに対してサンプルq0,0を含む変換ブロックの左上ルマサンプル位置として設定される。
- TuCResMode[xTbQ][yTbQ]が2に等しい場合、QpQは、サンプルq0,0を含む変換ブロックのQp’CbCrに等しく設定される。
- そうではなく、cIdxが1に等しい場合、QpQは、サンプルq0,0を含む変換ブロックのQp’Cbに等しく設定される。
- そうでない場合、QpQは、サンプルq0,0を含む変換ブロックのQp’Crに等しく設定される。
変数Qp Q は以下のように修正される。
Qp Q =Max(transform_skip_flag[xTb Q ][yTb Q ][cIdx]?QpPrimeTsMin:0,Qp Q )
- 変数QpCは以下のように導出される。
QpC=(QpQ-QpBdOffset+QpP-QpBdOffset+1)>>1 (1321)
この実施形態は、デブロッキングについてのQP導出に関する。
[8.8.3.6.1 ルマブロックエッジの決定プロセス]
このプロセスへの入力は以下の通りである。
- ピクチャサンプルアレイrecPicture
- 現在のピクチャの左上サンプルに対する現在のコーディングブロックの左上サンプルを指定する位置(xCb,yCb)
- 現在のコーディングブロックの左上サンプルに対する現在のブロックの左上サンプルを指定する位置(xBl,yBl)
- 垂直エッジ(EDGE_VER)がフィルタリングされるか水平エッジ(EDGE_HOR)がフィルタリングされるかを指定する変数edgeType
- 境界フィルタリング強度を指定する変数bS
- 最大フィルタ長を指定する変数maxFilterLengthP
- 最大フィルタ長を指定する変数maxFilterLengthQ
このプロセスの出力は以下の通りである。
- 決定を含む変数dE、dEp及びdEq
- 修正フィルタ長の変数maxFilterLengthP及びmaxFilterLengthQ
- 変数tC
...
変数QpQ及びQpPは、それぞれサンプルq0,0及びp0,0を含むコーディングブロックを含むコーディングユニットのQpY値に等しく設定される。
サンプルq 0,0 を含むコーディングユニットのtransform_skip_flagが1に等しい場合、Qp Q は以下のように修正される。
Qp Q =Max(QpPrimeTsMin,Qp Q +QpBdOffset)-QpBdOffset
サンプルp 0,0 を含むコーディングユニットのtransform_skip_flagが1に等しい場合、Qp P は以下のように修正される。
Qp p =Max(QpPrimeTsMin,Qp p +pBdOffset)-QpBdOffset
...
[8.8.3.6.3 クロマブロックエッジの決定プロセス]
このプロセスは、ChromaArrayTypeが0に等しくない場合にのみ呼び出される。
このプロセスへの入力は以下の通りである。
- クロマピクチャサンプルアレイrecPicture
- 現在のピクチャの左上クロマサンプルに対する現在のクロマコーディングブロックの左上サンプルを指定するクロマ位置(xCb,yCb)
- 現在のクロマコーディングブロックの左上サンプルに対する現在のクロマブロックの左上サンプルを指定するクロマ位置(xBl,yBl)
- 垂直エッジ(EDGE_VER)がフィルタリングされるか水平エッジ(EDGE_HOR)がフィルタリングされるかを指定する変数edgeType
- 色成分インデックスを指定する変数cIdx
- 境界フィルタリング強度を指定する変数bS
- 最大フィルタ長を指定する変数maxFilterLengthP
- 最大フィルタ長を指定する変数maxFilterLengthQ
このプロセスの出力は以下の通りである。
- 修正されたフィルタ長の変数maxFilterLengthP及びmaxFilterLengthQ
- 変数tC
...
変数QpPは以下のように導出される。
- ルマ位置(xTbP,xTbP)は、ピクチャの左上ルマサンプルに対してサンプルp0,0を含む変換ブロックの左上ルマサンプル位置として設定される。
- TuCResMode[xTbP][yTbP]が2に等しい場合、QpPは、サンプルp0,0を含む変換ブロックのQp’CbCrに等しく設定される。
- そうではなく、cIdxが1に等しい場合、QpPは、サンプルp0,0を含む変換ブロックのQp’Cbに等しく設定される。
- そうでない場合、QpPは、サンプルp0,0を含む変換ブロックのQp’Crに等しく設定される。
transform_skip_flag[xTb P ][yTb P ][cIdx]が1に等しい場合、変数Qp P は以下のように修正される。
Qp P =Max(QpPrimeTsMin,Qp P )
変数QpQは以下のように導出される。
- ルマ位置(xTbQ,xTbQ)は、ピクチャの左上ルマサンプルに対してサンプルq0,0を含む変換ブロックの左上ルマサンプル位置として設定される。
- TuCResMode[xTbQ][yTbQ]が2に等しい場合、QpQは、サンプルq0,0を含む変換ブロックのQp’CbCrに等しく設定される。
- そうではなく、cIdxが1に等しい場合、QpQは、サンプルq0,0を含む変換ブロックのQp’Cbに等しく設定される。
- そうでない場合、QpQは、サンプルq0,0を含む変換ブロックのQp’Crに等しく設定される。
transform_skip_flag[xTb Q ][yTb Q ][cIdx]が1に等しい場合、変数Qp Q は以下のように修正される。
Qp Q =Max(QpPrimeTsMin,Qp Q )
- 変数QpCは以下のように導出される。
QpC=(QpQ-QpBdOffset+QpP-QpBdOffset+1)>>1 (1321)
この実施形態はCC-ALFに関する。新たに追加されたテキストは、JVET-Q0058によって提供されるドラフトの上に、下線の付いたイタリック体の太字(又は下線の付いたテキスト)で示されている。この実施形態では、CC-ALF関連の情報の通知は、ChromaArraryTypeの条件チェックの下で行われる。
[7.3.2.6 ピクチャヘッダのRBSPのシンタックス]
この実施形態はCC-ALFに関する。新たに追加されたテキストは、JVET-Q0058によって提供されるドラフトの上に、下線の付いたイタリック体の太字(又は下線の付いたテキスト)で示されている。
[7.3.2.3 シーケンスパラメータセットのRBSPのシンタックス]
0に等しいsps_ccalf_enabled_flagは、クロスコンポーネント適応ループフィルタが無効であることを指定する。1に等しいsps_ccalf_enabled_flagは、クロスコンポーネント適応ループフィルタが有効であることを指定する。
或いは、以下が適用されてもよい。
0に等しいsps_ccalf_enabled_flagは、クロスコンポーネント適応ループフィルタが無効であることを指定する。1に等しいsps_ccalf_enabled_flagは、クロスコンポーネント適応ループフィルタが有効であることを指定する。
[7.3.3.2 一般的制約情報のシンタックス]
[7.3.2.6 ピクチャヘッダのRBSPのシンタックス]
この実施形態はハイレベルのシンタックスに関し、JVET-P2001-vEに基づいている。新たに追加されたテキストは、下線の付いたイタリック体の太字(又は下線の付いたテキスト)で示されている。削除されたテキストは、下線の付いた太字(又は[[]]と共に下線の付いたテキスト)で記されている。
[7.3.2.3 シーケンスパラメータセットのRBSPのシンタックス]
この実施形態はハイレベルのシンタックスに関し、JVET-P2001-vEに基づいている。新たに追加されたテキストは、下線の付いたイタリック体の太字(又は下線の付いたテキスト)で示されている。削除されたテキストは、下線の付いた太字(又は[[]]と共に下線の付いたテキスト)で記されている。
1に等しいsps_bdpcm_chroma_enabled_flagは、intra_bdpcm_chroma_flagがイントラコーディングユニットについてのコーディングユニットのシンタックスに存在してもよいことを指定する。0に等しいsps_bdpcm_chroma_enabled_flagは、intra_bdpcm_chroma_flagがイントラコーディングユニットについてのコーディングユニットのシンタックスに存在しないことを指定する。存在しない場合、sps_bdpcm_chroma_enabled_flagの値は0に等しいと推定される。
ChromaArrayTypeが3に等しくない場合、sps_bdpcm_chroma_enabled_flagは0に等しいものとする。
1に等しいsps_palette_enabled_flagは、pred_mode_plt_flagがコーディングユニットのシンタックスに存在してもよいことを指定する。0に等しいsps_palette_enabled_flagは、pred_mode_plt_flagがコーディングユニットのシンタックスに存在しないことを指定する。sps_palette_enabled_flagが存在しない場合、0に等しいと推定される。
ChromaArrayTypeが3に等しくない場合、sps_palette_enabled_flagは0に等しいものとする。
1に等しいsps_act_enabled_flagは、適応色変換が使用されてもよく、cu_act_enabled_flagがコーディングユニットのシンタックスに存在してもよいことを指定する。0に等しいsps_act_enabled_flagは、適応色変換が使用されず、cu_act_enabled_flagがコーディングユニットのシンタックスに存在しないことを指定する。sps_act_enabled_flagが存在しない場合、0に等しいと推定される。
ChromaArrayTypeが3に等しくない場合、sps_act_enabled_flagは0に等しいものとする。
図12は、ビデオ処理装置1200のブロック図である。装置1200は、本明細書で記載されている方法の1つ以上を実装するために使用され得る。装置1200は、スマートフォン、タブレット、コンピュータ、モノのインターネット(Internet of Things,IoT)受信機等で具現されてもよい。装置1200は、1つ以上のプロセッサ1202、1つ以上のメモリ1204及びビデオ処理ハードウェア1206を含んでもよい。プロセッサ1202は、本明細書で記載される1つ以上の方法を実装するように構成されてもよい。メモリ1204は、本明細書で記載される方法及び技術を実装するために使用されるデータ及びコードを記憶するために使用されてもよい。ビデオ処理ハードウェア1206は、ハードウェア回路において、本明細書で記載されるいくつかの技術を実装するために使用されてもよい。いくつかの実施形態において、ビデオ処理ハードウェア1206は、部分的に又は完全にプロセッサ1202(例えば、グラフィクスプロセッサコアGPU又は他の信号処理回路)の一部でもよい。
Claims (10)
- ビデオデータを処理する方法であって、
規則に従ってビデオのビデオユニットと前記ビデオのビットストリームとの間の変換を実行するステップを含み、
前記規則は、クロスコンポーネント適応ループフィルタ(CC-ALF)モードが前記ビデオユニットに有効であるか否か、及び適応ループフィルタ(ALF)モードが前記ビデオユニットに有効であるか否かが、前記ビットストリームのシーケンスパラメータセット(SPS)内の異なるシンタックスエレメントによって制御されることを指定し、
第1のシンタックスエレメントは、前記CC-ALFモードが有効であるか否かを示し、第2のシンタックスエレメントは前記ALFモードが有効であるか否かを示し、前記第1のシンタックスエレメントが前記SPSに存在するか否かは、前記第2のシンタックスエレメントの値及び前記ビデオのカラーフォーマットのタイプに依存し、
前記規則は、前記ALFモードが有効であることを示す、前記第2のシンタックスエレメントの前記値が真であり、前記カラーフォーマットのタイプが4:0:0ではないことを示す、第3のシンタックスエレメントchroma_format_idcの値が0に等しくないという条件で、前記第1のシンタックスエレメントが前記SPSに存在することを指定する、方法。 - 前記CC-ALFモードに関連する1つ以上のシンタックスエレメントは、ピクチャヘッダ又はスライスヘッダに条件付きで存在し、
前記1つ以上のシンタックスエレメントは、
Cb色成分についての前記CC-ALFモードがスライス又はピクチャに有効であることを示す第4のシンタックスエレメント、
前記スライス又は前記ピクチャ内のスライスの前記Cb色成分によって参照されるALF適合パラメータセット(APS)のAPS IDを示す第5のシンタックスエレメント、
Cr色成分についての前記CC-ALFモードが前記スライス又は前記ピクチャに有効であることを示す第6のシンタックスエレメント、及び
前記スライス又は前記ピクチャ内の前記スライスのCr色成分によって参照されるALF APSのAPS IDを示す第7のシンタックスエレメント、
のうち少なくとも1つを含む、請求項1に記載の方法。 - 前記規則は、前記ビデオの前記カラーフォーマットのタイプが4:0:0ではないという条件と、前記SPSに存在する前記第1のシンタックスエレメントが、前記CC-ALFモードが有効であることを示すという条件との少なくとも双方が満たされるという条件で、前記1つ以上のシンタックスエレメントが前記ピクチャヘッダ又は前記スライスヘッダに存在することを指定する、請求項2に記載の方法。
- 前記規則は、前記ビデオの前記カラーフォーマットのタイプが4:0:0であることに応じて、前記1つ以上のシンタックスエレメントが前記ピクチャヘッダ又は前記スライスヘッダから除外されることを指定する、請求項2に記載の方法。
- 前記規則は、前記SPSに存在する前記第1のシンタックスエレメントが、前記CC-ALFモードが無効であることを示すことに応じて、前記1つ以上のシンタックスエレメントが前記ピクチャヘッダ又は前記スライスヘッダから除外されることを指定する、請求項2に記載の方法。
- 前記変換は、前記ビデオを前記ビットストリームに符号化することを含む、請求項1乃至5のうちいずれか1項に記載の方法。
- 前記変換は、前記ビットストリームから前記ビデオを復号することを含む、請求項1乃至5のうちいずれか1項に記載の方法。
- プロセッサと、命令を有する非一時的なメモリとを含む、ビデオデータを処理するための装置であって、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
規則に従ってビデオのビデオユニットと前記ビデオのビットストリームとの間の変換を実行させ、
前記規則は、クロスコンポーネント適応ループフィルタ(CC-ALF)モードが前記ビデオユニットに有効であるか否か、及び適応ループフィルタ(ALF)モードが前記ビデオユニットに有効であるか否かが、前記ビットストリームのシーケンスパラメータセット(SPS)内の異なるシンタックスエレメントによって制御されることを指定し、
第1のシンタックスエレメントは、前記CC-ALFモードが有効であるか否かを示し、第2のシンタックスエレメントは前記ALFモードが有効であるか否かを示し、前記第1のシンタックスエレメントが前記SPSに存在するか否かは、前記第2のシンタックスエレメントの値及び前記ビデオのカラーフォーマットのタイプに依存し、
前記規則は、前記ALFモードが有効であることを示す、前記第2のシンタックスエレメントの前記値が真であり、前記カラーフォーマットのタイプが4:0:0ではないことを示す、第3のシンタックスエレメントchroma_format_idcの値が0に等しくないという条件で、前記第1のシンタックスエレメントが前記SPSに存在することを指定する、装置。 - 命令を記憶した非一時的なコンピュータ読み取り可能記憶媒体であって、
前記命令は、プロセッサに、
規則に従ってビデオのビデオユニットと前記ビデオのビットストリームとの間の変換を実行させ、
前記規則は、クロスコンポーネント適応ループフィルタ(CC-ALF)モードが前記ビデオユニットに有効であるか否か、及び適応ループフィルタ(ALF)モードが前記ビデオユニットに有効であるか否かが、前記ビットストリームのシーケンスパラメータセット(SPS)内の異なるシンタックスエレメントによって制御されることを指定し、
第1のシンタックスエレメントは、前記CC-ALFモードが有効であるか否かを示し、第2のシンタックスエレメントは前記ALFモードが有効であるか否かを示し、前記第1のシンタックスエレメントが前記SPSに存在するか否かは、前記第2のシンタックスエレメントの値及び前記ビデオのカラーフォーマットのタイプに依存し、
前記規則は、前記ALFモードが有効であることを示す、前記第2のシンタックスエレメントの前記値が真であり、前記カラーフォーマットのタイプが4:0:0ではないことを示す、第3のシンタックスエレメントchroma_format_idcの値が0に等しくないという条件で、前記第1のシンタックスエレメントが前記SPSに存在することを指定する、非一時的なコンピュータ読み取り可能記憶媒体。 - ビデオのビットストリームを記憶するための方法であって、
規則に従ってビデオのビデオユニットについてのビットストリームを生成するステップと、
前記ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に記憶するステップと
を含み、
前記規則は、クロスコンポーネント適応ループフィルタ(CC-ALF)モードが前記ビデオユニットに有効であるか否か、及び適応ループフィルタ(ALF)モードが前記ビデオユニットに有効であるか否かが、前記ビットストリームのシーケンスパラメータセット(SPS)内の異なるシンタックスエレメントによって制御されることを指定し、
第1のシンタックスエレメントは、前記CC-ALFモードが有効であるか否かを示し、第2のシンタックスエレメントは前記ALFモードが有効であるか否かを示し、前記第1のシンタックスエレメントが前記SPSに存在するか否かは、前記第2のシンタックスエレメントの値及び前記ビデオのカラーフォーマットのタイプに依存し、
前記規則は、前記ALFモードが有効であることを示す、前記第2のシンタックスエレメントの前記値が真であり、前記カラーフォーマットのタイプが4:0:0ではないことを示す、第3のシンタックスエレメントchroma_format_idcの値が0に等しくないという条件で、前記第1のシンタックスエレメントが前記SPSに存在することを指定する、方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2020070001 | 2020-01-01 | ||
CNPCT/CN2020/070001 | 2020-01-01 | ||
PCT/US2020/067651 WO2021138550A1 (en) | 2020-01-01 | 2020-12-31 | Cross component adaptive loop filtering for video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023511023A JP2023511023A (ja) | 2023-03-16 |
JP7444997B2 true JP7444997B2 (ja) | 2024-03-06 |
Family
ID=76686919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022540684A Active JP7444997B2 (ja) | 2020-01-01 | 2020-12-31 | ビデオコーディングのためのクロスコンポーネント適応ループフィルタリング |
Country Status (7)
Country | Link |
---|---|
US (3) | US20220377332A1 (ja) |
EP (1) | EP4066493A4 (ja) |
JP (1) | JP7444997B2 (ja) |
KR (1) | KR20220115951A (ja) |
CN (3) | CN117544777A (ja) |
BR (1) | BR112022013297A2 (ja) |
WO (2) | WO2021138550A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115023953A (zh) * | 2020-02-04 | 2022-09-06 | 华为技术有限公司 | 指示高级语法的编码器、解码器以及对应方法 |
US11863775B2 (en) * | 2021-07-21 | 2024-01-02 | Tencent America LLC | Cross-component transform coefficient level reconstruction |
WO2024094059A1 (en) * | 2022-11-01 | 2024-05-10 | Douyin Vision Co., Ltd. | Adaptive filter reusing methods on adaptive loop filter in video coding |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019069950A1 (ja) | 2017-10-06 | 2019-04-11 | シャープ株式会社 | 画像符号化装置及び画像復号装置 |
JP2019525679A (ja) | 2016-08-31 | 2019-09-05 | クアルコム,インコーポレイテッド | クロス成分フィルタ |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013154028A1 (ja) * | 2012-04-13 | 2013-10-17 | ソニー株式会社 | 画像処理装置および方法 |
EP3117612A1 (en) * | 2014-03-14 | 2017-01-18 | VID SCALE, Inc. | Systems and methods for rgb video coding enhancement |
WO2016127889A1 (en) * | 2015-02-13 | 2016-08-18 | Mediatek Inc. | Method and apparatus for palette index coding in video and image compression |
US10200713B2 (en) * | 2015-05-11 | 2019-02-05 | Qualcomm Incorporated | Search region determination for inter coding within a particular picture of video data |
US11019339B2 (en) * | 2017-07-12 | 2021-05-25 | Futurewei Technologies, Inc. | Fractional quantization parameter offset in video compression |
US20200213570A1 (en) * | 2019-01-02 | 2020-07-02 | Mediatek Inc. | Method for processing projection-based frame that includes at least one projection face and at least one padding region packed in 360-degree virtual reality projection layout |
CN114600466A (zh) * | 2019-08-29 | 2022-06-07 | Lg电子株式会社 | 基于交叉分量滤波的图像编码设备和方法 |
AU2020335843B2 (en) * | 2019-08-29 | 2024-01-11 | Lg Electronics Inc. | Apparatus and method for coding image |
US11432016B2 (en) * | 2019-12-05 | 2022-08-30 | Hfi Innovation Inc. | Methods and apparatuses of syntax signaling constraint for cross-component adaptive loop filter in video coding system |
CN116405698B (zh) * | 2019-12-05 | 2023-11-24 | 阿里巴巴(中国)有限公司 | 用于色度采样的方法和装置 |
IL294258A (en) * | 2019-12-23 | 2022-08-01 | Huawei Tech Co Ltd | Cross-component adaptive loop filtering and video coding |
US11375200B2 (en) * | 2019-12-24 | 2022-06-28 | Tencent America LLC | Video coding method and device for controlling color component processing |
-
2020
- 2020-12-31 CN CN202311514490.2A patent/CN117544777A/zh active Pending
- 2020-12-31 CN CN202080091580.3A patent/CN114946185A/zh active Pending
- 2020-12-31 JP JP2022540684A patent/JP7444997B2/ja active Active
- 2020-12-31 WO PCT/US2020/067651 patent/WO2021138550A1/en unknown
- 2020-12-31 KR KR1020227020216A patent/KR20220115951A/ko active Search and Examination
- 2020-12-31 BR BR112022013297A patent/BR112022013297A2/pt unknown
- 2020-12-31 CN CN202080091281.XA patent/CN114930818A/zh active Pending
- 2020-12-31 WO PCT/US2020/067655 patent/WO2021138552A1/en active Application Filing
- 2020-12-31 EP EP20909161.0A patent/EP4066493A4/en active Pending
-
2022
- 2022-06-30 US US17/810,187 patent/US20220377332A1/en active Pending
- 2022-07-01 US US17/856,631 patent/US20220385898A1/en active Pending
-
2023
- 2023-10-31 US US18/498,652 patent/US20240073419A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019525679A (ja) | 2016-08-31 | 2019-09-05 | クアルコム,インコーポレイテッド | クロス成分フィルタ |
WO2019069950A1 (ja) | 2017-10-06 | 2019-04-11 | シャープ株式会社 | 画像符号化装置及び画像復号装置 |
Non-Patent Citations (4)
Title |
---|
Anand Meher Kotra et al.,CE5-related: High level syntax modifications for CCALF [online],JVET-Q0253-v1,インターネット <URL: https://jvet-experts.org/doc_end_user/documents/17_Brussels/wg11/JVET-Q0253-v1.zip>,2019年12月30日 |
Benjamin Bross et al.,Versatile Video Coding (Draft 7) [online],JVET-P2001-vE(JVET-P2001-v1.docx),インターネット <URL: https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P2001-v1.zip>,2019年10月12日,pp.19-21,37-40,87-97 |
Kiran Misra et al.,On Cross Component Adaptive Loop Filter for Video Compression [online],Published in: 2019 Picture Coding Symposium (PCS),2020年01月09日,インターネット <URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8954547>,DOI: 10.1109/PCS48520.2019.8954547 |
Olena Chubach et al.,CE5-related: On CC-ALF modifications related to coefficients and signalling [online],JVET-Q0190-v1,インターネット <URL: https://jvet-experts.org/doc_end_user/documents/17_Brussels/wg11/JVET-Q0190-v1.zip>,2019年12月30日 |
Also Published As
Publication number | Publication date |
---|---|
JP2023511023A (ja) | 2023-03-16 |
EP4066493A4 (en) | 2023-03-08 |
KR20220115951A (ko) | 2022-08-19 |
US20240073419A1 (en) | 2024-02-29 |
CN117544777A (zh) | 2024-02-09 |
BR112022013297A2 (pt) | 2022-09-06 |
CN114930818A (zh) | 2022-08-19 |
CN114946185A (zh) | 2022-08-26 |
EP4066493A1 (en) | 2022-10-05 |
US20220377332A1 (en) | 2022-11-24 |
US20220385898A1 (en) | 2022-12-01 |
WO2021138550A1 (en) | 2021-07-08 |
WO2021138552A1 (en) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7443509B2 (ja) | ビデオコーディングにおけるクロマ量子化パラメータの使用 | |
JP7444997B2 (ja) | ビデオコーディングのためのクロスコンポーネント適応ループフィルタリング | |
US11750806B2 (en) | Adaptive color transform in video coding | |
JP7321365B2 (ja) | クロマデブロックフィルタリングの量子化パラメータ | |
US11785260B2 (en) | Cross-component adaptive loop filtering in video coding | |
JP2024023426A (ja) | ビデオコーディングにおける量子化グループの使用 | |
WO2021055896A1 (en) | Chroma deblocking in video coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220714 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220714 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230815 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230822 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231121 |
|
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: 20240130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240222 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7444997 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |