JP2023521503A - クロスコンポーネント予測のための利用制約 - Google Patents
クロスコンポーネント予測のための利用制約 Download PDFInfo
- Publication number
- JP2023521503A JP2023521503A JP2022563092A JP2022563092A JP2023521503A JP 2023521503 A JP2023521503 A JP 2023521503A JP 2022563092 A JP2022563092 A JP 2022563092A JP 2022563092 A JP2022563092 A JP 2022563092A JP 2023521503 A JP2023521503 A JP 2023521503A
- Authority
- JP
- Japan
- Prior art keywords
- subwidthc
- subheightc
- follows
- set equal
- video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 311
- 238000012545 processing Methods 0.000 claims abstract description 75
- 238000006243 chemical reaction Methods 0.000 claims abstract description 25
- 241000023320 Luma <angiosperm> Species 0.000 claims description 260
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims description 260
- 238000013139 quantization Methods 0.000 claims description 24
- 239000011449 brick Substances 0.000 claims description 15
- 230000009466 transformation Effects 0.000 claims description 15
- 230000011664 signaling Effects 0.000 claims description 14
- 230000001419 dependent effect Effects 0.000 claims description 13
- 208000031212 Autoimmune polyendocrinopathy Diseases 0.000 claims description 7
- 230000006978 adaptation Effects 0.000 claims description 7
- 235000019395 ammonium persulphate Nutrition 0.000 claims description 7
- 238000000261 appearance potential spectroscopy Methods 0.000 claims description 7
- 230000003044 adaptive effect Effects 0.000 claims description 6
- 230000001131 transforming effect Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 117
- 230000033001 locomotion Effects 0.000 description 76
- 101150076173 cntL gene Proteins 0.000 description 65
- 238000009795 derivation Methods 0.000 description 61
- 238000001914 filtration Methods 0.000 description 60
- 101150067055 minC gene Proteins 0.000 description 48
- 238000003491 array Methods 0.000 description 47
- 239000013598 vector Substances 0.000 description 38
- 239000011159 matrix material Substances 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 101150039623 Clip1 gene Proteins 0.000 description 12
- 230000015654 memory Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 5
- 239000003086 colorant Substances 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007781 signaling event Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- 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/124—Quantisation
-
- 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
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- 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/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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- 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/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Color Television Systems (AREA)
Abstract
Description
パリ条約に基づく適用可能な特許法および/または規則に基づいて、本願は、2020年4月18日出願の国際特許出願第PCT/CN2020/085484号の優先権および利益を適時に主張することを目的とする。法に基づくすべての目的のために、上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
本発明は、映像コーディング技術に関する。具体的には、本発明は、画像/映像コーディングにおけるクロスコンポーネント線形モデル予測および他のコーディングツールに関する。HEVCのような既存の映像コーディング規格に適用してもよいし、規格(Versatile Video Coding)を確定させるために適用してもよい。本発明は、将来の映像コーディング規格または映像コーデックにも適用可能である。
映像コーディングする規格は、主に周知のITU-TおよびISO/IEC規格の開発によって発展してきた。ITU-TはH.261とH.263を作り、ISO/IECはMPEG-1とMPEG-4 Visualを作り、両団体はH.262/MPEG-2 VideoとH.264/MPEG-4 AVC(Advanced Video Coding)とH.265/HEVC規格を共同で作った。H.262以来、映像コーディング規格は、時間予測と変換コーディングが利用されるハイブリッド映像コーディング構造に基づく。HEVCを超えた将来の映像コーディング技術を探索するため、2015年には、VCEGとMPEGが共同でJVET(Joint Video Exploration Team)を設立した。それ以来、多くの新しい方法がJVETによって採用され、JEM(Joint Exploration Mode)と呼ばれる参照ソフトウェアに組み込まれてきた。2018年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の間にJVET(Joint Video Expert Team)が発足し、HEVCと比較して50%のビットレート削減を目標にVVC規格の策定に取り組んでいる。
色空間は、カラーモデル(または表色系)としても知られ、色の範囲を数字のタプル(tuple)として簡単に記述する抽象的な数学モデルであり、典型的には3または4つの値または色成分(例えば、RGB)である。基本的には、色空間は座標系とサブ空間とを精緻化したものである。
3つのY’CbCr成分のそれぞれは、同じサンプルレートを有し、従って、彩度サブサンプリングはない。この方式は、ハイエンドフィルムスキャナおよび映画の撮影後の編集に用いられることがある。
2つの彩度成分は、輝度のサンプルレートの半分でサンプリングされ、水平彩度解像度は半分にされ、垂直彩度解像度は変化しない。これにより、視覚的にほとんどまたは全く差がなく、非圧縮の映像信号の帯域幅を1/3に低減することができる。4:2:2カラーフォーマットの名目上の垂直および水平の位置の例が、例えば、VVC作業草案の図1Aに示されている。
4:2:0では、水平サンプリングは4:1:1に比べて2倍になるが、この方式ではCbとCrチャンネルを各交互のラインでのみサンプリングするため、垂直解像度が半分になる。従って、データレートは同じである。CbおよびCrはそれぞれ水平および垂直方向の両方に2倍ずつサブサンプリングされる。異なる水平および垂直位置を有する4:2:0スキームの3つの変形がある。
● MPEG-2において、CbおよびCrは水平方向に共座している(cosited)。CbおよびCrは垂直方向の画素間に位置する(格子間に位置する)。
● JPEG/JFIFにおいて、H.261、およびMPEG-1、Cb、およびCrは、交互の輝度サンプルの中間の格子間に位置する。
● 4:2:0 DVにおいて、CbおよびCrは、水平方向に共座している。垂直方向には、それらは交互に共座(co-sited)している。
図1Bは、3つのインループフィルタリングブロック、すなわちDF(Deblocking Filter)、SAO(Sample Adaptive Offset)、およびALFを含むVVCのエンコーダブロック図の例を示す。予め定義されたフィルタを使用するDFとは異なり、SAOおよびALFは、現在のピクチャのオリジナルサンプルを利用し、それぞれ、オフセットを追加することにより、および、FIR(Finite Inpulse Response)フィルタを適用することにより、オフセットおよびフィルタ係数を信号通知するコーディングされた側の情報を用いて、元のサンプルと再構成サンプルとの間の平均二乗誤差を低減する。ALFは、各ピクチャの最後の処理段階に位置し、前の段階で生成されたアーチファクトを捕捉および修正しようとするツールと見なすことができる。
自然映像に表される任意のエッジ方向をキャプチャするために、指向性イントラモードの数は、HEVCで使用されるように、33から65に拡張される。追加の指向性モードは、図2において赤い点線の矢印で示され、平面モードとDCモードは同じままである。これらのより密度の高い指向性イントラ予測モードは、すべてのブロックサイズ、および輝度および彩度イントラ予測の両方に適用される。
各インター予測CUに対し、動きベクトル、参照ピクチャインデックス、および参照ピクチャリスト使用インデックスで構成される動きパラメータ、並びにVVCの新しいコーディング特徴に必要な追加情報が、インター予測サンプル生成に使用される。動きパラメータは、明示的または暗示的に信号通知されてもよい。CUがスキップモードでコーディングされる場合、CUは1つのPUに関連付けられ、有意な残差係数、コーディングされた動きベクトルデルタ、または参照ピクチャインデックスを有さない。マージモードが規定され、これにより、空間的および時間的候補、並びにVVCに導入された追加のスケジュールを含む、現在のCUのための動きパラメータを、近傍のCUから取得する。マージモードは、スキップモードのためだけでなく、任意のインター予測されたCUに適用することができる。マージモードの代替案は、動きパラメータを明確に送信することであり、動きベクトル、各参照ピクチャリストおよび参照ピクチャリスト使用フラグに対応する参照ピクチャインデックス、並びに他の必要な情報が、CUごとに明確に信号通知される。
IBC(Intra Block Copy)は、SCCのHEVC拡張に採用されているツールである。これにより、スクリーンコンテンツマテリアルのコーディング効率が有意に向上することが知られている。IBCモードはブロックレベルコーディングモードとして実装されるので、BM(Block Matching)が、エンコーダにおいて実行され、CUごとに最適なブロックベクトル(または動きベクトル)を見出す。ここで、ブロックベクトルは、現在のブロックから、現在のピクチャの内部で既に再構成された参照ブロックへの変位を示すために使用される。IBCコーディングされたCUの輝度ブロックベクトルは、整数精度である。彩度ブロックベクトルは、整数精度にも丸められる。AMVRと組み合わせた場合、IBCモードは、1画素と4画素の動きベクトル精度を切り替えることができる。IBCコーディングされたCUは、イントラ予測モードまたはインター予測モード以外の第3の予測モードとして扱われる。IBCモードは、幅および高さの両方が64輝度サンプル以下のCUに適用可能である。
パレットモード信号通知の場合、パレットモードはコーディングユニットに対する予測モードとしてコーディングされ、すなわち、コーディングユニットに対する予測モードは、MODE_INTRA、MODE_INTER、MODE_IBC、MODE_PLTであってもよい。パレットモードが利用される場合、CUにおける画素値は、代表的な色値の小さなセットによって表される。セットをパレットと呼ぶ。パレットの色に近い値を有する画素の場合、パレットインデックスが信号通知される。パレットの外側の値を有する画素に対して、画素はエスケープシンボルで表され、量子化された画素値は直接信号通知される。
VVCにおいてCCLM(Cross-Component Linear Model)予測モードが使用され、この場合、線形モデルを使用することによって、同じCUの再構成された輝度サンプルに基づいて、以下のように彩度サンプルを予測する。
-LMモードが適用される場合、W’=W、H’=H
-LM-Aモードが適用される場合、W’=W+H
-LM-Lモードが適用される場合、H’=H+W
-LMモードが適用され、かつ、上および左の近傍サンプルの両方が利用可能である場合には、S[W’/4,-1],S[3W’/4,-1],S[-1,H’/4],S[-1,3H’/4]である。
-LM-Aモードが適用されるか、または、上の近傍サンプルのみが利用可能である場合、S[W’/8,-1],S[3W’/8,-1],S[5W’/8,-1],S[7W’/8,-1]である。
-LM-Lモードが適用されるか、または、左の近傍サンプルのみが利用可能である場合、S[-1,H’/8],S[-1,3H’/8],S[-1,5H’/8],S[-1,7H’/8]である。
DivTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (2-5)
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1、y=0..2*nTbH-1、およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
現在の輝度位置(xTbY,yTbY)は、以下のように導出される。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
変数availL、availTおよびavailTLは、以下のように導出される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLに割り当てる。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTに割り当てる。
-変数availTLは、以下のように導出される。
availTL=availL&&availT (352)
-利用可能な右上の近傍彩度サンプル数numTopRightは、以下のように導出される。
-変数numTopRightは0に等しく設定され、availTRはTRUEに等しく設定される。
-preModeIntraがINTRA_T_CCLMに等しい場合、availTRがFALSEに等しくなるか、xが2*nTbW-1に等しくなるまで、x=nTbW..2*nTbW-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY+x,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTRに割り当てる。
-availTRがTRUEに等しい場合、numTopRightは1つだけ増加される。
-利用可能な左下の近傍彩度サンプル数numLeftBelowは、以下のように導出される。
-変数numLeftBelowは0に等しく設定され、availLBはTRUEに等しく設定される。
-preModeIntraがINTRA_L_CCLMに等しい場合、availLBがFALSEに等しくなるか、yが2*nTbH-1に等しくなるまで、y=nTbH..2*nTbH-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY+y)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLBに割り当てる。
-availLBがTRUEに等しい場合、numLeftBelowは1つだけ増加される。
-predModeIntraがINTRA_LT_CCLMに等しい場合、以下が適用される。
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
-そうでない場合、以下が適用される。
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE. (357)
変数cntNおよび配列pickPosNのNをLおよびTに置き換えたものは、以下のように導出される。
-変数numIs4Nは、以下のように導出される。
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1) (358)
-変数startPosNは、numSampN>>(2+numIs4N)に等しく設定される。
-変数pickStepNは、Max(1,numSampN>>(1+numIs4N))に等しく設定される。
-availNがTRUEに等しく、preModeIntraがINTRA_LT_CCLMまたはINTRA_N_CCLMに等しい場合、以下の割り当てが行われる。
-cntNはMin(numSampN,(1+numIs4N)<<1)に等しく設定される。
-pickPosN[pos]は、(startPosN+pos*pospickStepN)に等しく設定され、pos=0..cntN-1とする。
-そうでない場合、cntNは0に等しく設定される。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成輝度サンプルに等しく設定される。
2. 近傍輝度サンプルpY[x][y]は、以下のように導出される。
-numSampLが0よりも大きい場合、x=-1..-3、y=0..SubHeightC*numSampL-1である近傍左輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成輝度サンプルに等しく設定される。
-availTがFALSEに等しい場合、x=-1..SubWidthC*numSampT-1、y=-1..-2である近傍の最上の輝度サンプルpY[x][y]は、輝度サンプルpY[x][0]に等しく設定される。
-availLがFALSEに等しい場合、x=-1..-3、y=-1..SubHeightC*numSampL-1である近傍の左輝度サンプルpY[x][y]は、輝度サンプルpY[0][y]に等しく設定される。
-numSampTが0よりも大きい場合、x=0..SubWidthC*numSampT-1、y=-1、-2である近傍の最上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-availTLがTRUEに等しい場合、x=-1、y=-1、-2である近傍の左上輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成輝度サンプルに等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
-そうでない場合、以下が適用される。
-1次元フィルタ係数配列F1、F2、および2次元フィルタ係数配列F3、F4は、以下のように規定される。
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,i=0..2,j=0..2 (363)
-SubWidthCとSubHeightCの両方が2に等しい場合、以下が適用される。
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
-そうでない場合、以下が適用される。
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2, (369)
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+
F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+
F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+
F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
-変数yは、pickPosL[idx]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[-1][y] (372)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+
F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F3[1][1]*pY[-SubWidthC][SubHeightC*y]+
F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3 (373)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+
F4[1][1]*pY[-SubWidthC][SubHeightC*y]+
F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+
F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
-変数xはpickPost[idx-cntL]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[x][-1] (375)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+
F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+
F3[1][1]*pY[SubWidthC*x][-SubHeightC]+
F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+
F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3 (376)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[SubWidthCx-1][-1]+
F4[0][2]*pY[SubWidthC*x-1][-2]+
F4[1][1]*pY[SubWidthC*x][-1]+
F4[1][2]*pY[SubWidthC*x][-2]+
F4[2][1]*pY[SubWidthC*x+1][-1]+
F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
-cntT+cntLが2に等しい場合、DsYおよびCに置き換えられるCompにて、pSelComp[3]はpSelComp[0]に等しく設定され、pSelComp[2]はpSelComp[1]に等しく設定され、pSelComp[0]はpSelComp[1]に等しく設定され、pSelComp[1]はpSelComp[3]に等しく設定される。
-配列minGrpIdxおよびmaxGrpIdxは、以下のように導出される。
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
-pSelDsY[minGrpIdx[0]]がpSelDsY[minGrpIdx[1]より大きい場合、minGrpIdx[0]とminGrpIdx[1]は以下のようにスワップされる。
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
-pSelDsY[maxGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、maxGrpIdx[0]とmaxGrpIdx[1]は、以下のようにスワップされる。
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
-pSelDsY[minGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、配列minGrpIdxとmaxGrpIdxは以下のようにスワップされる。
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
-pSelDsY[minGrpIdx[1]]がpSelDsY[maxGrpIdx[0]より大きい場合、minGrpIdx[1]とmaxGrpIdx[0]は以下のようにスワップされる。
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
-変数maxY、maxC、minYおよびminCは、以下のように導出される。
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
-numSampLが0に等しく、numSampTが0に等しい場合、以下が適用される。
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
-そうでない場合、以下が適用される。
diff=maxY-minY (395)
-diffが0に等しくない場合、以下が適用される。
diffC=maxC-minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
ここで、divSigTable[]は、以下のように規定される。
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
-そうでない場合(diffは0に等しい)、以下が適用される。
k=0 (406)
a=0 (407)
b=minC (408)
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-このプロセスでは、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
JVET-M0057において、BDPCMが提案されている。現在の画素を予測するために左(A)(または上(B))の画素を使用する水平(または垂直)予測子の形状により、ブロックを最もスループット効率よく処理する方法は、1つの列(またはライン)のすべての画素を並列に処理し、これらの列(またはライン)を順次処理することである。スループットを向上させるために、我々は、以下の処理を導入する。すなわち、このブロックにおいて選択された予測子が垂直である場合、幅4のブロックを水平フロンティアで二分割し、このブロックにおいて選択された予測子が水平である場合、高さ4のブロックを垂直フロンティアで二分割する。
JVET-N0413において、量子化残差ドメインBDPCM(以下、RBDPCMと称する)が提案される。イントラ予測は、イントラ予測と同様に、予測方向(水平または垂直予測)にサンプルコピーすることで、ブロック全体で予測する。残差が量子化され、量子化された残差とその予測子(水平または垂直)量子化値との間のデルタがコーディングされる。
VTMにおいて、サイズが64×64までの大きなブロックサイズの変換が有効化され、これは、主に高解像度映像、例えば、1080pおよび4Kシーケンスに有用である。サイズ(幅または高さ、または幅と高さの両方)が64である変換ブロックに対して、高周波数変換係数をゼロにし、より低い周波数係数のみを保持する。例えば、M×N変換ブロックの場合、ブロック幅をMとし、ブロック高さをNとすると、Mが64である場合、左32列の変換係数のみが保持される。同様に、Nが64である場合、変換係数の上位32行のみが保持される。大きなブロックに対して変換スキップモードを使用する場合、値をゼロ化することなくブロック全体を使用する。VTMはまた、SPSにおける設定可能な最大変換サイズをサポートし、そのため、エンコーダは、特定の実装の必要性に基づいて、最大16長、32長、または64長の変換サイズを選択する柔軟性を有する。
-幅および高さが共に32以下、
-CBFフラグが1に等しい。
VVCにおいて、図7に示すように、順方向プライマリ変換と量子化との間(エンコーダ側)、および逆量子化と逆方向プライマリ変換(デコーダ側)との間に、縮小セカンダリ変換として知られるLFNST(Low-Frequency Non-Separable Transform)が適用される。LFNSTにおいて、ブロックサイズに従って、4×4の非可分変換または8×8の非可分変換が適用される。例えば、4×4のLFNSTは、小さなブロック(即ち、min(幅、高さ)<8)に適用され、8×8のLFNSTは、より大きなブロック(即ち、min(幅、高さ)>4)に適用される。
LFNST(Low-Frequency Non-Separatable Transform)は、非可分変換を適用するために、直接行列乗算法に基づいており、それにより、複数回の繰り返しなしに単一パスで実装される。しかしながら、計算の複雑性および変換係数を記憶するメモリ空間を最小限に抑えるために、非可分変換行列の寸法を小さくする必要がある。従って、LFNSTにおいては、縮小非可分変換(またはRST)方法が使用される。縮小非可分変換の主な考え方は、N(Nは、8×8のNSSTに対して通常64に等しい)次元ベクトルを、異なる空間におけるR次元ベクトルにマッピングすることであり、N/R(R<N)が縮小率である。よって、N×N行列の代わりに、RST行列は、以下のようなR×N行列となる。
全体で4個の変換セットがあり、1つの変換セット当たり2つの非可分変換行列(カーネル)がLFNSTにおいて使用される。表2-6に示すように、イントラ予測モードから変換セットへのマッピングは、予め規定される。現在のブロック(81<=predModeIntra<=83)に対して3つのCCLMモード(INTRA_LT_CCLM、INTRA_T_CCLM、またはINTRA_L_CCLM)のうちの1つを使用する場合、現在の彩度ブロックに対して変換セット0を選択する。各変換セットに対して、選択された非可分セカンダリ変換候補は、明示的に信号通知されたLFNSTインデックスによってさらに規定される。インデックスは、変換係数の後に、イントラCUごとに1回、ビットストリームで信号通知される。
LFNSTは、第1の係数サブグループの外側のすべての係数が非有意である場合にのみ適用可能であるように制限されるため、LFNSTインデックスコーディングは、最後の有意係数の位置に依存する。また、LFNSTインデックスはコンテキストコーディングされるが、イントラ予測モードに依存せず、第1のビンのみがコンテキストコーディングされる。さらに、LFNSTは、イントラスライスおよびインタースライスの両方において、且つ輝度および彩度の両方に対して適用される。デュアルツリーが有効化される場合、輝度および彩度のためのLFNSTインデックスは、別個に信号通知される。インタースライス(デュアルツリーが無効化される)の場合、単一のLFNSTインデックスが信号通知され、輝度および彩度の両方に使用される。
VVCにおいて、彩度のTS(Transform Skip)が導入される。その動機は、transform_skip_flagおよびmts_idxをresidual_coding部分に再配置することによって、輝度と彩度との間のTSおよびMTS信号通知を統一することである。彩度TSのために1つのコンテキストモデルが追加される。mts_idxについては、コンテキストモデルもバイナリゼーションも変更されない。さらに、彩度TSを使用する場合にも、TS残差コーディングが適用される。
transform_skip_flag[x0][y0][cIdx]は、関連付けられた変換ブロックに対して変換を適用するかどうかを規定する。配列インデックスx0,y0は、ピクチャの左上の輝度サンプルに対する、考慮される変換ブロックの左上の輝度サンプルの位置(x0,y0)を規定する。transformation_skip_flag[x0][y0][cIdx]が1に等しい場合、現在の変換ブロックに変換は適用されないことを規定する。配列インデックスcIdxは、色成分に対するインジケータを規定しており、輝度について0に等しく、Cbについて1に等しく、Crについて2に等しい。t0に等しいransform_skip_flag[x0][y0][cIdx]は、変換が現在の変換ブロックに適用するか否かの決定が他の構文要素に依存することを規定する。transform_skip_flag[x0][y0][cIdx]が存在しない場合、0に等しいと推測される。
彩度TSサポートに加えて、BDPCMが彩度成分に加えられる。sps_bdpcm_enable_flagが1である場合、さらなる構文要素sps_bdpcm_chroma_enable_flagがSPSに追加される。フラグは、表2-7に示すように、以下のような挙動を示す。
CCLMおよびTSにおける線形パラメータの導出の現在の設計は、以下の問題を有する。
1. 非4:4:4カラーフォーマットの場合、CCLMにおける線形パラメータの導出は、近傍の彩度サンプルおよびダウンサンプリングして配置した近傍の輝度サンプルを含む。図8に示すように、現在のVVCにおいて、最も近いラインがCTU境界にない場合、4:2:2映像用の現在のブロックより上の第2のラインを使用して、ダウンサンプリングして配置した近傍の最上の輝度サンプルを導出する。しかしながら、4:2:2映像の場合、垂直解像度は変化しない。したがって、ダウンサンプリングして配置した近傍の最上の輝度サンプルと、近傍の彩度サンプルとの間には、位相シフトが存在する。
2. 現在のVVCにおいて、輝度変換スキップフラグの信号通知および彩度変換スキップフラグの信号通知のための条件チェックにおいて、同じ最大ブロックサイズが使用される。このような設計は、カラーフォーマットを考慮しておらず、望ましくない。
a.輝度BDPCMフラグの信号通知および彩度BDPCMフラグの信号通知についても、同様の問題が存在し、同じ最大ブロックサイズは条件チェックに用いられる。
4. JVET-Q2001-vEに規定されるVVCにおいて、2つの行の近傍の輝度サンプルが割り当てられる。しかし、sps_chroma_vertical_collocated_flagが1に等しい場合、3つの行の近傍輝度サンプルが必要である。
“-availLがFALSEに等しい場合、x=-1..-3、y=-1..SubHeightC*numSampL-1である近傍左輝度サンプルpY[x][y]は、輝度サンプルpY[0][y]に等しく設定される。
-numSampTが0よりも大きい場合、x=0..SubWidthC*numSampT-1、y=-1、-2である近傍の最上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成輝度サンプルに等しく設定される。”
7. 現在のVVCにおいて、左上の近傍輝度サンプルは、最上および左の近傍輝度サンプルが利用可能である場合、CCLMパラメータの導出に使用されるが、左上の近傍輝度サンプルは、異なるスライス内にある場合、例えば、ラスタスライスの場合、利用可能ではない。
以下に列記されるものは、一般的な概念を説明するための例であると考えられるべきである。これら項目は狭い意味で解釈されるべきではない。さらに、これらの項目は、任意の方法で組み合わせることができる。
1. 彩度ブロックのためのCCLMパラメータを導出する場合、その配置した輝度ブロックの1または複数の上の近傍ラインを使用して、そのダウンサンプリングして配置した近傍の最上の輝度サンプルを導出してもよい。
a. 一例において、現在の彩度ブロックが最上のCTU境界にない場合、上の第2のラインの代わりに、配置した輝度ブロックの最も近い上のラインを、ダウンサンプリングして配置した最上の輝度サンプルの導出に使用してもよい。
i. 一例において、1つの同じダウンサンプリングフィルタは、ダウンサンプリングして配置した近傍の最上の輝度サンプルおよびダウンサンプリングして配置した近傍の左輝度サンプルを導出するために使用してもよい。
1) 例えば、[1 2 1]フィルタを使用してもよい。より具体的には、pDsY[x]=(pY[2*x-1][-1]+2*pY[2*x][-1]+pY[2*x+1][-1]+2)>>2であり、pY[2*x][-1]、pY[2*x-1][-1]、pY[2*x+1][-1]は、最も近い上の近傍ラインからの輝度サンプルであり、pDstY[x]は、ダウンサンプリングして配置した近傍の最上の輝度サンプルを示す。
ii. 一例において、異なるダウンサンプリングフィルタ(例えば、異なるフィルタタップ/異なるフィルタ係数)を、ダウンサンプリングして配置した近傍の最上の輝度サンプルおよびダウンサンプリングして配置した近傍の左の輝度サンプルを導出するために使用してもよい。
iii. 一例において、1つの同じダウンサンプリングフィルタを、彩度ブロックの位置に関わらず(例えば、彩度ブロックは、上のCTU境界にあってもなくてもよい)、ダウンサンプリングして配置した近傍の最上の輝度サンプルを導出するために使用してもよい。
iv. 一例において、上記方法は、4:2:2フォーマットの画像/映像にのみ適用されてもよい。
c. 一例において、ダウンサンプリングして配置した近傍の最上の輝度サンプルの導出は、複数のラインに位置したサンプルに依存してもよい。
i. 一例において、それは、2つ目の最も近いラインと、配置した輝度ブロックの上側の最も近いラインとの両方に依存してもよい。
ii. 一例において、ダウンサンプリングして配置した近傍の最上の輝度サンプルを、異なるカラーフォーマット(例えば、4:2:0および4:2:2)に対して1つの同じダウンサンプリングフィルタを使用して導出してもよい。
1)一例において、6タップフィルタ(例えば、[1 2 1;1 2 1])を利用してもよい。
a)一例において、ダウンサンプリングして配置した近傍の最上の輝度サンプルは、pDsY[x]=(pY[2*x-1][-2]+2*pY[2*x][-2]+pY[2*x+1][-2]+pY[2*x-1][-1]+2*pY[2*x][-1]+pY[2*x+1][-1]+4)>>3として導出されてもよく、pYは、対応する輝度サンプルであり、pDstY[x]は、ダウンサンプリングして配置した近傍の最上の輝度サンプルを表す。
b)さらに、代替的に、上記方法は、sps_cclm_colocated_chroma_flagが0に等しい場合に適用されてもよい。
2)一例において、5タップフィルタ(例えば、[0 1 0;1 4 1;0 1 0])を利用してもよい。
a)一例において、ダウンサンプリングして配置した近傍の最上の輝度サンプルは、pDsY[x]=(pY[2*x][-2]+pY[2*x-1][-1]+4*pY[2*x][-1]+pY[2*x+1][-1]+pY[2*x][0]+4)>>3として導出されてもよく、pYは、対応する輝度サンプルであり、pDstY[x]は、ダウンサンプリングして配置した近傍の最上の輝度サンプルを表す。
b)さらに、代替的に、上記方法は、sps_cclm_colocated_chroma_flagが0に等しい場合に適用されてもよい。
iii. 一例において、上記方法は、4:2:2フォーマットの画像/映像にのみ適用されてもよい。
変換スキップコーディングされたブロックの最大ブロックサイズ(例えば、1に等しいtransform_skip_flag、または、変換処理をバイパスする/恒等変換を使用するBDPCMもしくは他のモード)。
a. 一例において、輝度および彩度成分に対する最大ブロックサイズは異なってもよい。
b. 一例において、2つの彩度成分に対する最大ブロックサイズは異なってもよい。
c. 一例において、輝度および彩度成分に対する、または各色成分に対する最大ブロックサイズは、別個に信号通知されてもよい。
i. 一例において、MaxTsSizeC/MaxTsSizeYは、シーケンスレベル/ピクチャレベル/スライスレベル/タイルグループレベルで、例えば、シーケンスヘッダ/ピクチャヘッダ/SPS/VPS/DPS/PPS/APS/スライスヘッダ/タイルグループヘッダで信号通知されてもよい。
ii. 一例において、MaxTsSizeYは、たとえば、変換スキップが有効化されるかされないか、または/BDPCMが有効化されるか否かに従って、条件付きで信号通知されてもよい。
iii. 一例において、MaxTsSizeCは、たとえば、カラーフォーマット/変換スキップが有効化されるかされないか/BDPCMが有効化されるか否かに従って条件付きで信号通知されてもよい。
iv. 代替的に、輝度成分と彩度成分との間の最大ブロックサイズの予測コーディングを利用してもよい。
d. 一例において、MaxTsSizeCは、MaxTsSizeYに依存してもよい。
i. 一例において、MaxTsSizeCは、MaxTsSizeYに等しく設定されてもよい。
ii. 一例において、MaxTsSizeCは、MaxTsSizeY/N(Nは整数)に等しく設定されてもよい。例えば、N=2である。
e. 一例において、MaxTsSizeCは、彩度サブサンプリング比に従って設定されてもよい。
i. 一例において、MaxTsSizeCは、MaxTsSizeY>>SubWidthCに等しく設定され、SubWidthCは、表2-1に定義されている。
ii. 一例において、MaxTsSizeCは、MaxTsSizeY>SubHeightCに等しく設定され、ここで、SubHeightCは、表2-1に定義される。
iii. 一例において、MaxTsSizeCは、MaxTsSizeY>>max(SubWidthC,SubHeightC)に等しく設定される。
iv. 一例において、MaxTsSizeCは、MaxTsSizeY>>min(SubWidthC,SubHeightC)に等しく設定される。
a. 一例において、最大許容ブロックサイズの幅および高さは、別個に信号通知されてもよい。
b. 一例において、彩度変換コーディングされたブロックに対する最大許容ブロックサイズの幅および高さは、それぞれMaxTsSizeWCおよびMaxTsSizeHCと表されてもよい。MaxTsSizeWCは、MaxTsSizeY>>SubWidthCに等しく設定されてもよく、MaxTsSizeHCは、MaxTsSizeY>>SubHeightCに等しく設定されてもよい。
i. 一例において、MaxTsSizeYは、黒丸2で定義されているものである。
a. 一例において、彩度変換スキップフラグは、以下の条件に従って条件付きで信号通知されてもよい。
i. 一例において、条件は、tbWがMaxTsSizeC以下であり、tbHがMaxTsSizeC以下であり、tbWおよびtbHが現在の彩度ブロックの幅および高さである。
1) 一例において、MaxTsSizeCは、黒丸2~3のそれと同じように定義できる。
ii. 一例において、条件は、tbWがMaxTsSizeWC以下であり、tbHがMaxTsSizeHC以下であり、tbWおよびtbHが現在の彩度ブロックの幅および高さであり、MaxTsSizeWCおよびMaxTsSizeHCがそれぞれ彩度変換スキップコーディングされたブロックに対する最大許容ブロックサイズの幅および高さを表す。
1)一例において、MaxTsSizeWCおよび/またはMaxTsSizeHCは、黒丸3のそれと同じように定義できる。
b. 一例において、上記方法は、「変換スキップ」を「BDPCM」に置き換えることによって、彩度BDPCMフラグ(例えば、intra_bdpcm_chroma_flag)のコーディングに適用可能であってよい。
a. 一例において、transform_skip_flag[x0][y0][1]および/またはtransform_skip_flag[x0][y0][2]をコーディングする代わりに、単一の構文要素(例えば、TS_chroma_flag)がコーディングされてもよい。
i. 一例において、単一の構文要素の値は、バイナリ値である。
1)さらに代替的に、2つの彩度成分ブロックは、単一の構文要素に従って、同じTSモードのオン/オフ制御を共有する。
a)一例において、0に等しい単一の構文要素の値は、TSが両方に対して無効化されていることを示す。
b)一例において、0に等しい単一の構文要素の値は、TSが両方に対して有効化されていることを示す。
2)代替的に、更に、第2の構文要素は、単一の構文要素の値がKに等しい(例えば、K=1)かどうかに基づいて、更に信号通知することができる。
a)一例において、0に等しい単一の構文要素の値は、両方の構文要素に対してTSが無効化されていることを示し、0に等しい単一の構文要素の値は、2つの彩度成分のうち少なくとも1つの彩度成分に対してTSが有効化されていることを示す。
b)第2の構文要素を使用して、TSが2つの彩度成分のうちのいずれか1つに適用されるか、および/または、TSがその両方に適用されるかを示してもよい。
ii. 一例において、単一の構文要素の値は、非バイナリ値である。
1)一例において、K0に等しい単一の構文要素の値は、TSが両方に対して無効化されていることを示す。
2)一例において、K1に等しい単一の構文要素の値は、第1の彩度色成分に対してTSが有効化されており、かつ、第2の色成分に対してTSが無効化されていることを示す。
3) 一例において、K2に等しい単一の構文要素の値は、第1の彩度色成分に対してTSが無効化されており、かつ、第2の色成分に対してTSが有効化されていることを示す。
4)一例において、K3に等しい単一の構文要素の値は、TSが両方に対して有効であることを示す。
5)一例において、単一の構文要素は、固定長、ユーナリー(unary)、トランケイテッドユーナリー(truncated unary)、k次指数のEGバイナリゼーション法を使用してコーディングされてもよい。
iii. 一例において、単一の構文要素および/または第2の構文要素は、コンテキストコーディングされてもよいし、またはバイパスコーディングされてもよい。
6. 上記開示された方法を適用するかどうかおよび/またはどのように適用するかは、例えば、シーケンスヘッダ/ピクチャヘッダ/SPS/VPS/DPS/PPS/APS/スライスヘッダ/タイルグループヘッダにおいて、シーケンスレベル/ピクチャレベル/スライスレベル/タイルグループレベルで信号通知されてもよい。
8. CCLMパラメータ導出処理では、上の近傍サンプルを左の近傍サンプルより先に選択された近傍サンプルリストに入れ、選択された近傍サンプルリストを用いてCCLMパラメータを導出する(例えば、より大きい2つの値が平均化され、より小さい2つの値が平均され、2つの平均値を用いて線形パラメータを導出する4点導出法などを用いる)。一例を実施形態5で示す。
a. 一例を実施形態5で示す。
b. あるいは、さらに、左の近傍のサンプルを、上の近傍のサンプルの前に、選択された近傍のサンプルリストに入れる。
a. 一例において、T1=2およびT2=2である。一例を実施形態12で示す。
b. 一例において、T1=3およびT2=3である。
a. 一例において、sps_chroma_vertical_collocated_flagが1に等しい場合、上の近傍輝度サンプルの3つの行が割り当てられる。そうでない場合、上の近傍輝度サンプルの2つの行が割り当てられる。一例を実施形態7で示す。
a. 一例において、左上の近傍サンプルの少なくとも1つの利用可能性は、左上の近傍サンプルの少なくとも1つと現在のブロック内のサンプルが同じスライス内にあるか、異なるスライス内にあるかに依存してもよい。
i. また、上のスライスは、矩形スライスであってもよいし、非矩形スライスであってもよい。
b. 一例において、左上の近傍サンプルと現在のブロックのサンプルの少なくとも1つが異なるスライスにある場合、左上の近傍サンプルがパディングされる。
c. 一例において、少なくとも1つの左上の近傍サンプルの可用性が偽である場合、左上の近傍サンプルがパディングされる。
a. 一例において、近傍サンプルは、現在のピクチャ、または現在のサブピクチャ、または現在のタイル、または現在のスライス、または現在のブリック、または現在のCTU、または現在の処理ユニット、または他の任意の現在の映像ユニットの外にある場合、「利用不可」である。
i. 一例において、図13に示される非矩形スライスの場合、左上の近傍輝度サンプルは、現在のブロックとは異なるスライスにある「使用不可」である。
b. 一例において、CCLMのプロセスにおいて左上の近傍輝度サンプルを使用するか否かは、それらが現在のブロックと同じピクチャ/サブピクチャ/タイル/スライス/ブリック/CTU/処理ユニット/他の映像ユニット内にあるか否かに依存してもよい。
i. 一例において、左上の近傍輝度サンプルは、現在のブロックとは異なるラスタスライスにある場合、CCLMの処理において使用されなくてもよい。
1)一例を実施形態10で示す。
ii. 一例において、左上の近傍輝度サンプルは、現在のブロックと同じピクチャ/サブピクチャ/タイル/スライス/ブリック/CTU/処理ユニット/他の映像ユニットにあるにもかかわらず、CCLMのプロセスで使用しなくてもよい。
i. 1つの例において、左および/または最上の近傍彩度サンプルが利用可能である場合、反復パディング方法を使用してもよい。
ii. 1つの例において、最上の近傍輝度サンプルが利用可能である場合、左上の近傍輝度サンプルを最上の近傍輝度サンプルからパディングしてもよい。
2) 一例において、pD[m][n]=pY[x][n]である。
iii. 一例において、左の近傍輝度サンプルが利用可能である場合、左上の近傍輝度サンプルを左の近傍輝度サンプルからパディングしてもよい。
3) 一例において、pD[m][n]=pY[m][y]である。
iv. 一例において、最上の近傍輝度サンプルが利用可能であり、かつ、左の近傍輝度サンプルが利用可能である場合、最上の近傍輝度サンプルから左上の近傍輝度サンプルをパディングしてもよい。
4) 一例において、pD[m][n]=pY[x][n]である。
v. あるいは、最上の近傍輝度サンプルが利用可能であり、かつ、左の近傍輝度サンプルが利用可能である場合、左の近傍輝度サンプルから左上の近傍輝度サンプルをパディングしてもよい。
5)一例において、pD[m][n]=pY[m][y]である。
vi. 一例において、M=2、N=2、またはM=3、N=3である。
i. 一例において、この予め定義された値は、一定の値(例えば、128)に等しくてもよい。
ii. 一例において、予め定義された値は、左および/または最上の近傍輝度サンプルを用いて導出されてもよい。
6)一例において、予め定義された値は、左および/または最上の近傍輝度サンプルの平均値に等しくてもよい。
iii. 一例において、予め定義された値は、サンプルのビット深さに依存してもよい。例えば、予め定義された値は、1<(BD-1)に等しくてもよく、ここで、BDは、サンプルのビット深さを表す。
i. 一例を実施形態11で示す。
f. 一例において、左上の近傍輝度サンプルの可用性をチェックするか否かは、左の近傍輝度サンプルが利用可能であるか否か、および/または上の近傍輝度サンプルが利用可能であるか否かに依存してもよい。
i. 一例において、左上の近傍輝度サンプルと上の近傍輝度サンプルとの両方が利用可能である場合にのみ、左上の近傍輝度サンプルの利用可能性をチェックする。一例を実施形態17に示す。
i. 一例において、左上近傍輝度サンプルが利用可能である場合にのみ、左上の近傍輝度サンプルを使用してもよい。
ii. 一例において、左上、左、および上の近傍輝度サンプルが利用可能である場合にのみ、左上の近傍輝度サンプルを使用してもよい。一例を実施形態18に示す。
iii. 一例において、左および/または上の近傍輝度サンプルが利用可能である場合、左上の近傍輝度サンプルをパディングしてもよい。
1) 一例において、左または上の近傍輝度サンプルが利用可能であり、左上の近傍輝度サンプルが利用可能でない場合にのみ、左上の近傍輝度サンプルをパディングしてもよい。
2) 一例において、左または上の近傍輝度サンプルが利用可能であり、左上の近傍輝度サンプルが利用可能でない場合にのみ、左上の近傍輝度サンプルをパディングしてもよい。
3) 一例において、左上の近傍輝度サンプルは、上の近傍輝度サンプルを用いてパディングされてもよい。x=-1,-2、y=-1,-2とする近傍の左上の輝度サンプルpY[x][y]は、輝度サンプルpY[0][y]に等しく設定される。一例を実施形態18に示す。
4) 一例において、左上の近傍輝度サンプルは、上の近傍輝度サンプルを用いてパディングされてもよい。x=-1,-2、y=-1,-2とする近傍の左上の輝度サンプルpY[x][y]は、輝度サンプルpY[x][0]に等しく設定される。一例を実施形態19に示す。
5) 一例において、左上の近傍輝度サンプルは、上および左の近傍輝度サンプルを用いてパディングされてもよい。
i. 一例において、4:4:4のカラーフォーマットが使用される場合、左上の近傍輝度サンプルの可用性をチェックする必要がなく、および/または左上の近傍輝度サンプルを使用する必要がなく、および/または左上の近傍輝度サンプルをパディングする必要がない。一例を実施形態20に示す。
i. 一例において、左上の近傍輝度サンプルをパディングするか否か、および/またはどのサンプルをパディングする必要があるかは、対応する輝度サンプル位置に対して垂直方向にシフトされていない彩度サンプル位置を示す変数または構文要素、例えば、JVET-Q2001-vEにおけるsps_chroma_vertical_collocated_flagに依存してもよい。
i. 一例において、sps_chroma_vertical_collocated_flagが1に等しい場合、左上の近傍サンプルにパディングを行う。そうでない場合、左上の近傍サンプルはパディングされない。一例を実施形態14に示す。
a. 一例において、上の近傍輝度サンプルが利用可能でない場合、現在のブロックの最上のサンプルおよび左の近傍輝度サンプルを使用して、最上および左上の近傍輝度サンプルを導出してもよい。
i. 1つの例において、x=0..SubWidthC*nTbW-1、y=-1..-2とする上の近傍輝度サンプルpY[x][y]は、輝度サンプルpY[x][0]に等しく設定される。そして、x=-1、y=-1..-2とする左上の近傍輝度サンプルpY[x][y]は、輝度サンプルpY[x][0]に等しく設定され、ここで、pY[0][0]は、現在のブロックの左上サンプルを表し、nTbWは、現在のブロックの幅を表し、SubWidthCは、2.1で定義される。
ii. 一例において、x=0..SubWidthC*nTbW-1、y=-1..-Nとする上の近傍サンプルpY[x][y]は、輝度サンプルpY[x][0]に等しく設定される。そして、x=-M..-1、y=-1..-Nとする左上の近傍輝度サンプルpY[x][y]は、輝度サンプルpY[x][0]に等しく設定され、ここで、pY[0][0]は、現在のブロックの左上サンプルを表し、nTbWは、現在のブロックの幅を表し、SubWidthCは、2.1で定義される。一例を実施形態13で示す。
1) 一例において、MおよびNは、M=2およびN=3のような整数である。
2)一例において、Mは、2.1に定義されるM=SubWidthCのような彩度カラーフォーマットに依存してもよい。
3)一例において、最大T個の左上の近傍輝度サンプルがパディングされてもよく、ここで、Tは、1などの整数である。
a) 一例において、pY[-M][-1]=pY[-M][0]であり、ここで、M=1またはM=SubWidthCである。
i. 一例において、x=0..-3、y=-1..SubHeightC*nTbH-1である左の近傍輝度サンプルpY[x][y]は、輝度サンプルpY[0][y]に等しく設定される。そして、x=0..-3、y=-1である左上の近傍輝度サンプルpY[x][y]は、輝度サンプルpY[0][y]に等しく設定され、ここで、pY[0][0]は、現在のブロックの左上サンプルを表し、nTbHは、現在のブロックの高さを表し、SubHeightCは、2.1で定義される。
ii. 一例において、x=-1..-M、y=0..SubHeightC*nTbH-1である左の近傍輝度サンプルpY[x][y]は、輝度サンプルpY[0][y]に等しく設定される。そして、x=-1..-M、y=-1..-Nである左上の近傍輝度サンプルpY[x][y]は、輝度サンプルpY[0][y]に等しく設定され、ここで、pY[0][0]は、現在のブロックの左上のサンプルを表し、nTbHは、現在のブロックの高さを表し、SubHeightCは、2.1で定義される。一例を実施形態15に示す。
1) 一例において、MおよびNは、M=1、N=3のような整数である。
2) 一例において、Nは、2.1に定義されるN=SubHeightCのような彩度カラーフォーマットに依存してもよい。
3) 一例において、最大T個の左上の近傍輝度サンプルがパディングされてもよく、ここで、Tは、1などの整数である。
a) 一例において、pY[-1][-N]=pY[0][-N]であり、ここで、N=1またはN=SubHeightCである。
b) あるいは、Tは2に等しい。pY[-1][-1]=pY[0][-1]、pY[-1][-2]=pY[0][-2]。
iii. 一例において、左上の輝度近傍サンプルは、最上の近傍輝度サンプルの導出後にパディングされてもよい。一例を実施形態16で示す。
d. 一例において、最上(または左)の近傍輝度(または彩度)サンプルをパディングするか否か、および/またはどの近傍サンプルをパディングする必要があるかは、彩度カラーフォーマットに依存してもよい。
i. 一例において、4:4:4カラーフォーマットが使用される場合、最上(または/および左)の近傍輝度サンプルをパディングする必要がない。一例を実施形態21に示す。
e. 一例において、最上(または/および左)の近傍輝度サンプルをパディングするとき、左上の近傍輝度サンプルは、15における15.c.のような方法を用いてパディングされる。一例を実施形態22に示す。
a. 例えば、順番は、最上の近傍サンプルのパディング、左の近傍のパディング、および左上の近傍サンプルのパディングであってもよい。
b. 例えば、順番は、左の近傍のパディング、最上の近傍サンプルのパディング、および左上の近傍サンプルのパディングであってもよい。
c. 例えば、順番は、左上の近傍のパディング、最上の近傍サンプルのパディング、および左の近傍サンプルのパディングであってもよい。
d. 例えば、順番は、左上の近傍のパディング、左の近傍サンプルのパディング、および最上の近傍サンプルのパディングであってもよい。
a. 一例において、ダウンサンプリングのプロセスは、近傍する上の輝度サンプルをダウンサンプリングすること、および/または近傍する左の輝度サンプルをダウンサンプリングすること、および/または現在の輝度ブロックにおけるサンプルをダウンサンプリングすることを参照してもよい。
b. 一例において、sps_chroma_vertical_collocated_flagが1または0に等しいかにかかわらず、4:2:2カラーフォーマット映像用のCCLMにおけるダウンサンプリングの過程で、固定フィルタ(係数[1/4,2/4,1/4]または[2/8,4/8,2/8]の3タップ水平フィルタなど)を使用してもよい。一例を実施形態27および実施形態28に示す。
a. sps_chroma_vertical_collocated_flagが存在しない場合、1に等しいと推測されてよい。
b. sps_chroma_vertical_collocated_flagが存在しない場合、0に等しいと推測されてよい。
a. 一例において、近傍の上の輝度サンプルを表す変数は、デブロッキングフィルタ処理前に、再構成された輝度サンプルに等しく設定されてもよい。
i. 一例において、近傍の上記輝度サンプルが利用可能な場合(例えば、JVET-Q2001-vEにおいて、availTが真に等しい)、pY[x][y]と示される近傍の上記輝度サンプルを表す変数は、(xTbY、yTbY)が現在のブロックの左上位置を表す位置におけるデブロッキングフィルタ処理前の再構成輝度サンプルに等しくなるように設定される。
1)一例において、xとyはx=0..SubWidthC*max(numSampT,nTbW)-1、y=-1,-2の範囲であってよく、ここでnTbWは現在のブロックの幅を示し、SubWidthCは2.1に定義されており、numSampTは上と右上の利用できる近傍彩度サンプルの数を示し、JVET-Q2001-vEで定義されている。
b. 一例において、近傍の左の輝度サンプルを表す変数は、デブロッキングフィルタ処理前に、再構成された輝度サンプルに等しく設定されてもよい。
i. 一例において、近傍の左の輝度サンプルが利用可能な場合(例えば、JVET-Q2001-vEにおいて、availTが真に等しい)、pY[x][y]と示される近傍の左の輝度サンプルを表す変数は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しくなるように設定され、(xTbY、yTbY)は現在のブロックの左上の位置を表す。
1)一例において、xおよびyは、x=-1..-3、y=0..SubHeightC*max(numSampL,nTbH)-1の範囲であってよく、nTbHは現在のブロックの幅、およびSubHeightCは2.1に定義されており、numSampLは左および左下で利用可能な近傍彩度サンプルの数を示し、JVET-Q2001-vEで定義されている。
a. 一例において、リスト0の参照ピクチャエントリの数が0に等しく、リスト1の参照ピクチャエントリの数が0に等しい場合、スライスタイプはI-スライスでなければならない。
i. 一例において、この場合、スライスタイプは信号通知されない。
b. 一例において、リスト0の参照ピクチャエントリの数が0よりも大きく、リスト1の参照ピクチャエントリの数が0に等しい場合、スライスタイプはP-スライスでなければならない。
i. あるいは、リスト0の参照ピクチャエントリ数が0よりも大きく、リスト1の参照ピクチャエントリの数が0に等しい場合、スライスタイプをB-sliceにすることができない。
ii. 一例において、この場合、スライスタイプは信号通知されない。
c. スライスの参照ピクチャエントリは、スライスタイプが信号通知または推論される前に、信号通知または推論されてもよい。
i. スライスの参照ピクチャエントリは、ピクチャに関連付けられたピクチャヘッダにおいて信号通知されてもよい。
a. APSの許容フィルタ総数は、PUを持つ全てのAPS NALユニットのALF APSにおける輝度/彩度ALFおよびCC-ALF)の総数を含んでもよい。
b. APSにおける許容されるフィルタの総数は、輝度成分に対する適応ループフィルタクラスの総数(または輝度ALFフィルタ)、彩度成分に対する代替フィルタの総数(彩度ALFフィルタ)、および/またはPUを有するすべてのAPS NALユニットにおける彩度コンポーネントフィルタの総数を含んでもよい。
c. APSは、ALF APS/スケーリングリストAPS/LMCS APSである。
d. APS IDの信号通知方法、および/または映像ユニットで使用するAPSの数は、制限された数に依存する。
a. あるいは、適合ビットストリームは、映像ユニット(シーケンス/ピクチャ/スライス/タイル/ブリック/サブピクチャなど)に対して符号データ隠蔽が有効な場合、BDPCMを無効にするという規則に従うものとする。
a. あるいは、適応ビットストリームは、映像ユニット(シーケンス/ピクチャ/スライス/タイル/ブリック/サブピクチャなど)に対して符号データ隠蔽が有効な場合、恒等変換のみを適用する変換スキップ/コーディングツールは無効とするという規則に従うものとする。
a. あるいは、適合ビットストリームは、映像ユニット(シーケンス/ピクチャ/スライス/タイル/ブリック/サブピクチャなど)でDQが有効な場合、BDPCMを無効にするという規則に従うものとする。
a. あるいは、適合ビットストリームは、映像ユニット(シーケンス/ピクチャ/スライス/タイル/ブリック/サブピクチャなど)に対してDQが有効な場合、恒等変換のみを適用する変換スキップ/コーディングツールは無効とするという規則に従うものとする。
この章は、例示的な実施形態およびこれらの実施形態を説明するように現在のVVC規格を修正する方法を示す。VVC仕様の変更は、太字およびイタリック文字で強調されている。削除されたテキストには二重括弧で囲んだ印が付けられている(例えば、[[a]]は文字「a」の削除を意味する)。
JVET-P2001-v9で規定される作業草案は、以下のように変更することができる。
…
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (8-159)
-そうでない場合、以下が適用される。
-1次元フィルタ係数配列F1、F2、および2次元フィルタ係数配列F3、F4は、以下のように規定される。
F1[i]=1,i=0..1 (8-160)
F2[0]=1,F2[1]=2,F2[2]=1 (8-161)
F3[i][j]=F4[i][j]=0,i=0..2,j=0..2 (8-162)
-SubWidthCとSubHeightCの両方が2に等しい場合、以下が適用される。
F1[0]=1,F1[1]=1 (8-163)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (8-164)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (8-165)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (8-166)
-そうでない場合、以下が適用される。
F1[0]=2,F1[1]=0 (8-167)
F3[1][1]=8 (8-168)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2 (8-169)
…
…
-そうでない場合(sps_cclm_colocated_chroma_flagが0に等しい場合)、以下が適用される。
-xが0よりも大きい場合、以下が適用される。
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[SubWidthC*x-1][[[-2]]-1]+
F4[0][2]*pY[SubWidthC*x-1][[[-1]]-2]+
F4[1][1]*pY[SubWidthC*x][[[-2]]-1]+
F4[1][2]*pY[SubWidthC*x][[[-1]]-2]+
F4[2][1]*pY[SubWidthC*x+1][[[-2]]-1]+
F4[2][2]*pY[SubWidthC*x+1][[[-1]]-2]+4)>>3 (8-193)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (8-194)
-そうでない場合(xが0に等しい)、以下が適用される。
-availTLがTRUEに等しく、bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[-1][[[-2]]-1]+F4[0][2]*pY[-1][[[-1]]-2]+F4[1][1]*pY[0][[[-2]]-1]+F4[1][2]*pY[0][[[-1]]-2]+
F4[2][1]*pY[1][[[-2]]-1]+F4[2][2]*pY[1][[[-1]]-2]+4)>>3 (8-195)
-そうでない場合、availTLがTRUEに等しく、かつ、bCTUboundaryがTRUEに等しい場合、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[-1][-1]+F2[1]*pY[0][-1]+
F2[2]*pY[1][-1]+2)>>2 (8-196)
-そうでない場合、availTLがFALSEに等しく、かつ、bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F1[1]*pY[0][-2]+F1[0]*pY[0][-1]+1)>>1 (8-197)
-そうでない場合(availTLがFALSEに等しく、かつ、bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=pY[0][-1] (8-198)
…
本実施形態において、最大許容変換スキップコーディングされたブロックサイズに従った彩度変換スキップフラグコーディングの例を示す。JVET-P2001-v9で規定される作業草案は、以下のように変更することができる。
…
本実施形態において、最大許容変換スキップコーディングされたブロックサイズに従った彩度変換スキップフラグコーディングの例を示す。JVET-P2001-v9で規定される作業草案は、以下のように変更することができる。
…
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
現在の輝度位置(xTbY,yTbY)は、以下のように導出される。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
変数availL、availTおよびavailTLは、以下のように導出される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLに割り当てる。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTに割り当てる。
availTL=availL&&availT (352)
-利用可能な右上の近傍彩度サンプル数numTopRightは、以下のように導出される。
-変数numTopRightは0に等しく設定され、availTRはTRUEに等しく設定される。
-preModeIntraがINTRA_T_CCLMに等しい場合、availTRがFALSEに等しくなるか、xが2*nTbW-1に等しくなるまで、x=nTbW..2*nTbW-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY+x,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTRに割り当てる。
-availTRがTRUEに等しい場合、numTopRightは1つだけ増加される。
-利用可能な左下の近傍彩度サンプル数numLeftBelowは、以下のように導出される。
-変数numLeftBelowは0に等しく設定され、availLBはTRUEに等しく設定される。
-preModeIntraがINTRA_L_CCLMに等しい場合、availLBがFALSEに等しくなるか、yが2*nTbH-1に等しくなるまで、y=nTbH..2*nTbH-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY+y)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLBに割り当てる。
-availLBがTRUEに等しい場合、numLeftBelowは1つだけ増加される。
-predModeIntraがINTRA_LT_CCLMに等しい場合、以下が適用される。
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
-そうでない場合、以下が適用される。
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
変数cntNおよび配列pickPosNのNをLおよびTに置き換えたものは、以下のように導出される。
-変数numIs4Nは、以下のように導出される。
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1) (358)
-変数startPosNは、numSampN>(2+numIs4N)に等しく設定される。
-変数pickStepNは、Max(1,numSampN>(1+numIs4N))に等しく設定される。
-availNがTRUEに等しく、かつ、preModeIntraがINTRA_LT_CCLMまたはINTRA_N_CCLMに等しい場合、以下の割り当てが行われる。
-cntNはMin(numSampN,(1+numIs4N)<<1)に等しく設定される。
-pospickPosN[pos]は、(startPosN+pos*pospickStepN)に等しく設定され、pos=0..cntN-1とする。
-そうでない場合、cntNは0に等しく設定される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成輝度サンプルに等しく設定される。
2. 近傍輝度サンプルpY[x][y]は、以下のように導出される。
-numSampLが0よりも大きい場合、x=-1..-3、y=0..SubHeightC*numSampL-1である近傍の左の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成輝度サンプルに等しく設定される。
-availTがFALSEに等しい場合、x=-1..SubWidthC*numSampT-1、y=-1..-2である近傍の最上の輝度サンプルpY[x][y]は、輝度サンプルpY[x][0]に等しく設定される。
-availLがFALSEに等しい場合、x=-1..-3、y=-1..SubHeightC*numSampL-1である近傍の左の輝度サンプルpY[x][y]は、輝度サンプルpY[0][y]に等しく設定される。
-numSampTが0よりも大きい場合、x=0..SubWidthC*numSampT-1、y=-1,-2である近傍の最上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-availTLがTRUEに等しい場合、x=-1、y=-1,-2である近傍の左上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
-そうでない場合、以下が適用される。
-1次元フィルタ係数配列F1、F2、および2次元フィルタ係数配列F3、F4は、以下のように規定される。
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,i=0..2,j=0..2 (363)
-SubWidthCとSubHeightCの両方が2に等しい場合、以下が適用される。
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
-そうでない場合、以下が適用される。
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2 (369)
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+
F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+
F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+
F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
-変数yは、pickPosL[idx]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[-1][y] (372)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+
F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F3[1][1]*pY[-SubWidthC][SubHeightC*y]+
F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3 (373)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+
F4[1][1]*pY[-SubWidthC][SubHeightC*y]+
F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+
F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
-変数xはpickPost[idx-cntL]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[x][-1] (375)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+
F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+
F3[1][1]*pY[SubWidthC*x][-SubHeightC]+
F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+
F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3 (376)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[SubWidthCx-1][-1]+
F4[0][2]*pY[SubWidthC*x-1][-2]+
F4[1][1]*pY[SubWidthC*x][-1]+
F4[1][2]*pY[SubWidthC*x][-2]+
F4[2][1]*pY[SubWidthC*x+1][-1]+
F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)]]
-cntT+cntLが2に等しい場合、DsYおよびCに置き換えられるCompにて、pSelComp[3]はpSelComp[0]に等しく設定され、pSelComp[2]はpSelComp[1]に等しく設定され、pSelComp[0]はpSelComp[1]に等しく設定され、pSelComp[1]はpSelComp[3]に等しく設定される。
-配列minGrpIdxおよびmaxGrpIdxは、以下のように導出される。
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
-pSelDsY[minGrpIdx[0]]がpSelDsY[minGrpIdx[1]より大きい場合、minGrpIdx[0]とminGrpIdx[1]は以下のようにスワップされる。
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
-pSelDsY[maxGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、maxGrpIdx[0]とmaxGrpIdx[1]は、以下のようにスワップされる。
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
-pSelDsY[minGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、配列minGrpIdxとmaxGrpIdxは以下のようにスワップされる。
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
-pSelDsY[minGrpIdx[1]]がpSelDsY[maxGrpIdx[0]より大きい場合、minGrpIdx[1]とmaxGrpIdx[0]は以下のようにスワップされる。
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
-変数maxY、maxC、minYおよびminCは、以下のように導出される。
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
-numSampLが0に等しく、かつ、numSampTが0に等しい場合、以下が適用される。
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
-そうでない場合、以下が適用される。
diff=maxY-minY (395)
-diffが0に等しくない場合、以下が適用される。
diffC=maxC-minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)? Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
ここで、divSigTable[]は、以下のように規定される。
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
-そうでない場合(diffは0に等しい)、以下が適用される。
k=0 (406)
a=0 (407)
b=minC (408)
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-このプロセスでは、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
現在の輝度位置(xTbY,yTbY)は、以下のように導出される。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
変数availL、availTおよびavailTLは、以下のように導出される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLに割り当てる。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTに割り当てる。
availTL=availL&&availT (352)
-利用可能な右上の近傍彩度サンプル数numTopRightは、以下のように導出される。
-変数numTopRightは0に等しく設定され、availTRはTRUEに等しく設定される。
-preModeIntraがINTRA_T_CCLMに等しい場合、availTRがFALSEに等しくなるか、xが2*nTbW-1に等しくなるまで、x=nTbW..2*nTbW-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY+x,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTRに割り当てる。
-availTRがTRUEに等しい場合、numTopRightは1つだけ増加される。
-利用可能な左下の近傍彩度サンプル数numLeftBelowは、以下のように導出される。
-変数numLeftBelowは0に等しく設定され、availLBはTRUEに等しく設定される。
-preModeIntraがINTRA_L_CCLMに等しい場合、availLBがFALSEに等しくなるか、yが2*nTbH-1に等しくなるまで、y=nTbH..2*nTbH-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY+y)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLBに割り当てる。
-availLBがTRUEに等しい場合、numLeftBelowは1つだけ増加される。
-predModeIntraがINTRA_LT_CCLMに等しい場合、以下が適用される。
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
-そうでない場合、以下が適用される。
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
変数cntNおよび配列pickPosNのNをLおよびTに置き換えたものは、以下のように導出される。
-変数numIs4Nは、以下のように導出される。
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1) (358)
-変数startPosNは、numSampN>(2+numIs4N)に等しく設定される。
-変数pickStepNは、Max(1,numSampN>(1+numIs4N))に等しく設定される。
-availNがTRUEに等しく、かつ、preModeIntraがINTRA_LT_CCLMまたはINTRA_N_CCLMに等しい場合、以下の割り当てが行われる。
-cntNはMin(numSampN,(1+numIs4N)<<1)に等しく設定される。
-pospickPosN[pos]は、(startPosN+pos*pospickStepN)に等しく設定され、pos=0..cntN-1とする。
-そうでない場合、cntNは0に等しく設定される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成輝度サンプルに等しく設定される。
2. 近傍輝度サンプルpY[x][y]は、以下のように導出される。
-numSampLが0よりも大きい場合、x=-1..-3、y=0..SubHeightC*numSampL-1である近傍の左の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成輝度サンプルに等しく設定される。
-availTがFALSEに等しい場合、x=-1..SubWidthC*numSampT-1、y=-1..-2である近傍の最上の輝度サンプルpY[x][y]は、輝度サンプルpY[x][0]に等しく設定される。
-availLがFALSEに等しい場合、x=-1..-3、y=-1..SubHeightC*numSampL-1である近傍の左の輝度サンプルpY[x][y]は、輝度サンプルpY[0][y]に等しく設定される。
-numSampTが0よりも大きい場合、x=0..SubWidthC*numSampT-1、y=-1,-2である近傍の最上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-availTLがTRUEに等しい場合、x=-1、y=-1,-2である近傍の左上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
-そうでない場合、以下が適用される。
-1次元フィルタ係数配列F1、F2、および2次元フィルタ係数配列F3、F4は、以下のように規定される。
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,i=0..2,j=0..2 (363)
-SubWidthCとSubHeightCの両方が2に等しい場合、以下が適用される。
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2 (369)
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+
F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+
F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+
F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
-変数yは、pickPosL[idx]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[-1][y] (372)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+
F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F3[1][1]*pY[-SubWidthC][SubHeightC*y]+
F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3 (373)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+
F4[1][1]*pY[-SubWidthC][SubHeightC*y]+
F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+
F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
-変数xはpickPost[idx-cntL]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[x][-1] (375)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+
F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+
F3[1][1]*pY[SubWidthC*x][-SubHeightC]+
F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+
F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3 (376)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[SubWidthCx-1][-1]+
F4[0][2]*pY[SubWidthC*x-1][-2]+
F4[1][1]*pY[SubWidthC*x][-1]+
F4[1][2]*pY[SubWidthC*x][-2]+
F4[2][1]*pY[SubWidthC*x+1][-1]+
F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
-cntT+cntLが2に等しい場合、DsYおよびCに置き換えられるCompにて、pSelComp[3]はpSelComp[0]に等しく設定され、pSelComp[2]はpSelComp[1]に等しく設定され、pSelComp[0]はpSelComp[1]に等しく設定され、pSelComp[1]はpSelComp[3]に等しく設定される。
-配列minGrpIdxおよびmaxGrpIdxは、以下のように導出される。
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
-pSelDsY[minGrpIdx[0]]がpSelDsY[minGrpIdx[1]より大きい場合、minGrpIdx[0]とminGrpIdx[1]は以下のようにスワップされる。
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
-pSelDsY[maxGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、maxGrpIdx[0]とmaxGrpIdx[1]は、以下のようにスワップされる。
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
-pSelDsY[minGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、配列minGrpIdxとmaxGrpIdxは以下のようにスワップされる。
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
-pSelDsY[minGrpIdx[1]]がpSelDsY[maxGrpIdx[0]より大きい場合、minGrpIdx[1]とmaxGrpIdx[0]は以下のようにスワップされる。
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
-変数maxY、maxC、minYおよびminCは、以下のように導出される。
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
-numSampLが0に等しく、かつ、numSampTが0に等しい場合、以下が適用される。
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
-そうでない場合、以下が適用される。
diff=maxY-minY (395)
-diffが0に等しくない場合、以下が適用される。
diffC=maxC-minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
ここで、divSigTable[]は、以下のように規定される。
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
-そうでない場合(diffは0に等しい)、以下が適用される。
k=0 (406)
a=0 (407)
b=minC (408)
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-このプロセスでは、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
この処理の出力は、x=0..nTbW-1,y=0..nTbH-1として、予測されたサンプルpreSamples[x][y]である。
現在の輝度位置(xTbY,yTbY)は、以下のように導出される。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLに割り当てる。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTに割り当てる。
availTL=availL&&availT (352)
-利用可能な右上の近傍彩度サンプル数numTopRightは、以下のように導出される。
-変数numTopRightは0に等しく設定され、かつ、availTRはTRUEに等しく設定される。
-preModeIntraがINTRA_T_CCLMに等しい場合、availTRがFALSEに等しくなるか、xが2*nTbW-1に等しくなるまで、x=nTbW..2*nTbW-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY+x,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTRに割り当てる。
-availTRがTRUEに等しい場合、numTopRightは1つだけ増加される。
-変数numLeftBelowは0に等しく設定され、かつ、availLBはTRUEに等しく設定される。
-preModeIntraがINTRA_L_CCLMに等しい場合、availLBがFALSEに等しくなるか、yが2*nTbH-1に等しくなるまで、y=nTbH..2*nTbH-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY+y)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLBに割り当てる。
-availLBがTRUEに等しい場合、numLeftBelowは1つだけ増加される。
-predModeIntraがINTRA_LT_CCLMに等しい場合、以下が適用される。
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
-そうでない場合、以下が適用される。
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
変数cntNおよび配列pickPosNのNをLおよびTに置き換えたものは、以下のように導出される。
-変数numIs4Nは、以下のように導出される。
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1) (358)
-変数startPosNは、numSampN>(2+numIs4N)に等しく設定される。
-変数pickStepNは、Max(1,numSampN>(1+numIs4N))に等しく設定される。
-availNがTRUEに等しく、かつ、preModeIntraがINTRA_LT_CCLMまたはINTRA_N_CCLMに等しい場合、以下の割り当てが行われる。
-cntNはMin(numSampN,(1+numIs4N)<<1)に等しく設定される。
-pospickPosN[pos]は、(startPosN+pos*pospickStepN)に等しく設定され、pos=0..cntN-1とする。
-そうでない場合、cntNは0に等しく設定される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-numSampLが0よりも大きい場合、x=-1..-3、y=0..SubHeightC*numSampL-1である近傍の左の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-availTがFALSEに等しい場合、x=-1..SubWidthC*numSampT-1,y=-1..-2である近傍の最上の輝度サンプルpY[x][y]は、輝度サンプルpY[x][0]に等しく設定される。
-availLがFALSEに等しい場合、x=-1..-3、y=-1..SubHeightC*numSampL-1である近傍の左の輝度サンプルpY[x][y]は、輝度サンプルpY[0][y]に等しく設定される。
-numSampTが0よりも大きい場合、x=0..SubWidthC*numSampT-1、y=-1,-[[2]]3である近傍の上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-availTLがTRUEに等しい場合、x=-1、y=-1,-2,-3である近傍の左上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
-そうでない場合、以下が適用される。
-1次元フィルタ係数配列F1、F2、および2次元フィルタ係数配列F3、F4は、以下のように規定される。
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,i=0..2,j=0..2 (363)
-SubWidthCとSubHeightCの両方が2に等しい場合、以下が適用される。
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2 (369)
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+
F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+
F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+
F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
-変数yは、pickPosL[idx]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[-1][y] (372)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+
F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F3[1][1]*pY[-SubWidthC][SubHeightC*y]+
F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3 (373)
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+
F4[1][1]*pY[-SubWidthC][SubHeightC*y]+
F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+
F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
-変数xはpickPost[idx-cntL]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[x][-1] (375)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+
F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+
F3[1][1]*pY[SubWidthC*x][-SubHeightC]+
F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+
F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3 (376)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[SubWidthCx-1][-1]+
F4[0][2]*pY[SubWidthC*x-1][-2]+
F4[1][1]*pY[SubWidthC*x][-1]+
F4[1][2]*pY[SubWidthC*x][-2]+
F4[2][1]*pY[SubWidthC*x+1][-1]+
F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
-cntT+cntLが2に等しい場合、DsYおよびCに置き換えられるCompにて、pSelComp[3]はpSelComp[0]に等しく設定され、pSelComp[2]はpSelComp[1]に等しく設定され、pSelComp[0]はpSelComp[1]に等しく設定され、pSelComp[1]はpSelComp[3]に等しく設定される。
-配列minGrpIdxおよびmaxGrpIdxは、以下のように導出される。
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
-pSelDsY[minGrpIdx[0]]がpSelDsY[minGrpIdx[1]より大きい場合、minGrpIdx[0]とminGrpIdx[1]は以下のようにスワップされる。
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
-pSelDsY[maxGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、maxGrpIdx[0]とmaxGrpIdx[1]は、以下のようにスワップされる。
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
-pSelDsY[minGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、配列minGrpIdxとmaxGrpIdxは以下のようにスワップされる。
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
-pSelDsY[minGrpIdx[1]]がpSelDsY[maxGrpIdx[0]より大きい場合、minGrpIdx[1]とmaxGrpIdx[0]は以下のようにスワップされる。
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
-変数maxY、maxC、minYおよびminCは、以下のように導出される。
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
-numSampLが0に等しく、かつ、numSampTが0に等しい場合、以下が適用される。
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
-そうでない場合、以下が適用される。
diff=maxY-minY (395)
-diffが0に等しくない場合、以下が適用される。
diffC=maxC-minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
ここで、divSigTable[]は、以下のように規定される。
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
-そうでない場合(diffは0に等しい)、以下が適用される。
k=0 (406)
a=0 (407)
b=minC (408)
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
現在の輝度位置(xTbY,yTbY)は、以下のように導出される。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLに割り当てる。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTに割り当てる。
availTL=availL&&availT (352)
-利用可能な右上の近傍の彩度サンプル数numTopRightは、以下のように導出される。
-変数numTopRightは0に等しく設定され、かつ、availTRはTRUEに等しく設定される。
-preModeIntraがINTRA_T_CCLMに等しい場合、availTRがFALSEに等しくなるか、xが2*nTbW-1に等しくなるまで、x=nTbW..2*nTbW-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY+x,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTRに割り当てる。
-availTRがTRUEに等しい場合、numTopRightは1つだけ増加される。
-変数numLeftBelowは0に等しく設定され、かつ、availLBはTRUEに等しく設定される。
-preModeIntraがINTRA_L_CCLMに等しい場合、availLBがFALSEに等しくなるか、yが2*nTbH-1に等しくなるまで、y=nTbH..2*nTbH-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY+y)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLBに割り当てる。
-availLBがTRUEに等しい場合、numLeftBelowは1つだけ増加される。
-predModeIntraがINTRA_LT_CCLMに等しい場合、以下が適用される。
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
-そうでない場合、以下が適用される。
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
LおよびTにて置き換えたられたNを有する変数cntNおよび配列pickPosNは、以下のように導出される。
-変数numIs4Nは、以下のように導出される。
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1) (358)
-変数startPosNは、numSampN>(2+numIs4N)に等しく設定される。
-変数pickStepNは、Max(1,numSampN>(1+numIs4N))に等しく設定される。
-availNがTRUEに等しく、かつ、preModeIntraがINTRA_LT_CCLMまたはINTRA_N_CCLMに等しい場合、以下の割り当てが行われる。
-cntNはMin(numSampN,(1+numIs4N)<<1)に等しく設定される。
-pickPosN[pos]は、(startPosN+pos*pospickStepN)に等しく設定され、pos=0..cntN-1とする。
-そうでない場合、cntNは0に等しく設定される。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
-そうでない場合、以下が適用される。
-1次元フィルタ係数配列F1、F2、および2次元フィルタ係数配列F3、F4は、以下のように規定される。
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,i=0..2,j=0..2 (363)
-SubWidthCとSubHeightCの両方が2に等しい場合、以下が適用される。
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
-そうでない場合、以下が適用される。
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2 (369)
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+
F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+
F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+
F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
-変数yは、pickPosL[idx]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[-1][y] (372)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+
F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F3[1][1]*pY[-SubWidthC][SubHeightC*y]+
F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3 (373)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+
F4[1][1]*pY[-SubWidthC][SubHeightC*y]+
F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+
F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
-変数xはpickPost[idx-cntL]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[x][-1] (375)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+
F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+
F3[1][1]*pY[SubWidthC*x][-SubHeightC]+
F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+
F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3 (376)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[SubWidthCx-1][-1]+
F4[0][2]*pY[SubWidthC*x-1][-2]+
F4[1][1]*pY[SubWidthC*x][-1]+
F4[1][2]*pY[SubWidthC*x][-2]+
F4[2][1]*pY[SubWidthC*x+1][-1]+
F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
-cntT+cntLが2に等しい場合、DsYおよびCに置き換えられるCompにて、pSelComp[3]はpSelComp[0]に等しく設定され、pSelComp[2]はpSelComp[1]に等しく設定され、pSelComp[0]はpSelComp[1]に等しく設定され、pSelComp[1]はpSelComp[3]に等しく設定される。
-配列minGrpIdxおよびmaxGrpIdxは、以下のように導出される。
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
-pSelDsY[maxGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、maxGrpIdx[0]とmaxGrpIdx[1]は、以下のようにスワップされる。
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
-pSelDsY[minGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、配列minGrpIdxとmaxGrpIdxは以下のようにスワップされる。
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
-変数maxY、maxC、minYおよびminCは、以下のように導出される。
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
-numSampLが0に等しく、かつ、numSampTが0に等しい場合、以下が適用される。
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
-そうでない場合、以下が適用される。
diff=maxY-minY (395)
-diffが0に等しくない場合、以下が適用される。
diffC=maxC-minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
ここで、divSigTable[]は、以下のように規定される。
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
-そうでない場合(diffは0に等しい)、以下が適用される。
k=0 (406)
a=0 (407)
b=minC (408)
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1,y=0..2*nTbH-1およびx=0..2*nTbW-1,y=-1とする、彩度近傍サンプルp[x][y]
現在の輝度位置(xTbY,yTbY)は、以下のように導出される。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
-変数numTopRightは0に等しく設定され、かつ、availTRはTRUEに等しく設定される。
-preModeIntraがINTRA_T_CCLMに等しい場合、availTRがFALSEに等しくなるか、xが2*nTbW-1に等しくなるまで、x=nTbW..2*nTbW-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY+x,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTRに割り当てる。
-availTRがTRUEに等しい場合、numTopRightは1つだけ増加される。
-利用可能な左下の近傍彩度サンプル数numLeftBelowは、以下のように導出される。
-変数numLeftBelowは0に等しく設定され、かつ、availLBはTRUEに等しく設定される。
-preModeIntraがINTRA_L_CCLMに等しい場合、availLBがFALSEに等しくなるか、yが2*nTbH-1に等しくなるまで、y=nTbH..2*nTbH-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY+y)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLBに割り当てる。
-availLBがTRUEに等しい場合、numLeftBelowは1つだけ増加される。
-predModeIntraがINTRA_LT_CCLMに等しい場合、以下が適用される。
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
-そうでない場合、以下が適用される。
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
LおよびTにて置き換えたられたNを有する変数cntNおよび配列pickPosNは、以下のように導出される。
-変数numIs4Nは、以下のように導出される。
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1) (358)
-変数startPosNは、numSampN>(2+numIs4N)に等しく設定される。
-変数pickStepNは、Max(1,numSampN>(1+numIs4N))に等しく設定される。
-availNがTRUEに等しく、かつ、preModeIntraがINTRA_LT_CCLMまたはINTRA_N_CCLMに等しい場合、以下の割り当てが行われる。
-cntNはMin(numSampN,(1+numIs4N)<<1)に等しく設定される。
-pospickPosN[pos]は、(startPosN+pos*pospickStepN)に等しく設定され、pos=0..cntN-1とする。
-そうでない場合、cntNは0に等しく設定される。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
-そうでない場合、以下が適用される。
-1次元フィルタ係数配列F1、F2、および2次元フィルタ係数配列F3、F4は、以下のように規定される。
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,i=0..2,j=0..2 (363)
-SubWidthCとSubHeightCの両方が2に等しい場合、以下が適用される。
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
-そうでない場合、以下が適用される。
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2 (369)
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+
F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+
F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+
F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
-変数yは、pickPosL[idx]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[-1][y] (372)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+
F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F3[1][1]*pY[-SubWidthC][SubHeightC*y]+
F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3 (373)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+
F4[1][1]*pY[-SubWidthC][SubHeightC*y]+
F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+
F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
-変数xはpickPost[idx-cntL]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[x][-1] (375)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+
F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+
F3[1][1]*pY[SubWidthC*x][-SubHeightC]+
F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+
F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3 (376)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[SubWidthCx-1][-1]+
F4[0][2]*pY[SubWidthC*x-1][-2]+
F4[1][1]*pY[SubWidthC*x][-1]+
F4[1][2]*pY[SubWidthC*x][-2]+
F4[2][1]*pY[SubWidthC*x+1][-1]+
F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
-cntT+cntLが2に等しい場合、DsYおよびCに置き換えられるCompにて、pSelComp[3]はpSelComp[0]に等しく設定され、pSelComp[2]はpSelComp[1]に等しく設定され、pSelComp[0]はpSelComp[1]に等しく設定され、pSelComp[1]はpSelComp[3]に等しく設定される。
-配列minGrpIdxおよびmaxGrpIdxは、以下のように導出される。
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
-pSelDsY[minGrpIdx[0]]がpSelDsY[minGrpIdx[1]より大きい場合、minGrpIdx[0]とminGrpIdx[1]は以下のようにスワップされる。
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
-pSelDsY[minGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、配列minGrpIdxとmaxGrpIdxは以下のようにスワップされる。
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
-pSelDsY[minGrpIdx[1]]がpSelDsY[maxGrpIdx[0]より大きい場合、minGrpIdx[1]とmaxGrpIdx[0]は以下のようにスワップされる。
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
-変数maxY、maxC、minYおよびminCは、以下のように導出される。
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
-numSampLが0に等しく、かつ、numSampTが0に等しい場合、以下が適用される。
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
-そうでない場合、以下が適用される。
diff=maxY-minY (395)
-diffが0に等しくない場合、以下が適用される。
diffC=maxC-minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
ここで、divSigTable[]は、以下のように規定される。
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
-そうでない場合(diffは0に等しい)、以下が適用される。
k=0 (406)
a=0 (407)
b=minC (408)
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1,y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
現在の輝度位置(xTbY,yTbY)は、以下のように導出される。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
変数availL、availTおよびavailTLは、以下のように導出される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLに割り当てる。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTに割り当てる。
availTL=availL&&availT (352)
-利用可能な右上の近傍の彩度サンプル数numTopRightは、以下のように導出される。
-変数numTopRightは0に等しく設定され、かつ、availTRはTRUEに等しく設定される。
-preModeIntraがINTRA_T_CCLMに等しい場合、availTRがFALSEに等しくなるか、xが2*nTbW-1に等しくなるまで、x=nTbW..2*nTbW-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY+x,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTRに割り当てる。
-availTRがTRUEに等しい場合、numTopRightは1つだけ増加される。
-利用可能な左下の近傍彩度サンプル数numLeftBelowは、以下のように導出される。
-変数numLeftBelowは0に等しく設定され、かつ、availLBはTRUEに等しく設定される。
-preModeIntraがINTRA_L_CCLMに等しい場合、availLBがFALSEに等しくなるか、yが2*nTbH-1に等しくなるまで、y=nTbH..2*nTbH-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY+y)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLBに割り当てる。
-availLBがTRUEに等しい場合、numLeftBelowは1つだけ増加される。
-predModeIntraがINTRA_LT_CCLMに等しい場合、以下が適用される。
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
-そうでない場合、以下が適用される。
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
LおよびTにて置き換えたられたNを有する変数cntNおよび配列pickPosNは、以下のように導出される。
-変数numIs4Nは、以下のように導出される。
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1) (358)
-変数startPosNは、numSampN>(2+numIs4N)に等しく設定される。
-変数pickStepNは、Max(1,numSampN>(1+numIs4N))に等しく設定される。
-availNがTRUEに等しく、かつ、preModeIntraがINTRA_LT_CCLMまたはINTRA_N_CCLMに等しい場合、以下の割り当てが行われる。
-cntNはMin(numSampN,(1+numIs4N)<<1)に等しく設定される。
-pospickPosN[pos]は、(startPosN+pos*pospickStepN)に等しく設定され、pos=0..cntN-1とする。
-そうでない場合、cntNは0に等しく設定される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
-そうでない場合、以下が適用される。
-1次元フィルタ係数配列F1、F2、および2次元フィルタ係数配列F3、F4は、以下のように規定される。
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,i=0..2,j=0..2 (363)
-SubWidthCとSubHeightCの両方が2に等しい場合、以下が適用される。
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
-そうでない場合、以下が適用される。
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2, (369)
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+
F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+
F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+
F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
-変数yは、pickPosL[idx]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[-1][y] (372)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+
F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F3[1][1]*pY[-SubWidthC][SubHeightC*y]+
F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3 (373)
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+
F4[1][1]*pY[-SubWidthC][SubHeightC*y]+
F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+
F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
-変数xはpickPost[idx-cntL]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[x][-1] (375)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+
F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+
F3[1][1]*pY[SubWidthC*x][-SubHeightC]+
F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+
F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3 (376)
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[SubWidthCx-1][-1]+
F4[0][2]*pY[SubWidthC*x-1][-2]+
F4[1][1]*pY[SubWidthC*x][-1]+
F4[1][2]*pY[SubWidthC*x][-2]+
F4[2][1]*pY[SubWidthC*x+1][-1]+
F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
-cntT+cntLが2に等しい場合、DsYおよびCに置き換えられるCompにて、pSelComp[3]はpSelComp[0]に等しく設定され、pSelComp[2]はpSelComp[1]に等しく設定され、pSelComp[0]はpSelComp[1]に等しく設定され、pSelComp[1]はpSelComp[3]に等しく設定される。
-配列minGrpIdxおよびmaxGrpIdxは、以下のように導出される。
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
-pSelDsY[minGrpIdx[0]]がpSelDsY[minGrpIdx[1]より大きい場合、minGrpIdx[0]とminGrpIdx[1]は以下のようにスワップされる。
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
-pSelDsY[maxGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、maxGrpIdx[0]とmaxGrpIdx[1]は、以下のようにスワップされる。
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
-pSelDsY[minGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、配列minGrpIdxとmaxGrpIdxは以下のようにスワップされる。
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
-pSelDsY[minGrpIdx[1]]がpSelDsY[maxGrpIdx[0]より大きい場合、minGrpIdx[1]とmaxGrpIdx[0]は以下のようにスワップされる。
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
-変数maxY、maxC、minYおよびminCは、以下のように導出される。
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
-numSampLが0に等しく、かつ、numSampTが0に等しい場合、以下が適用される。
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
-そうでない場合、以下が適用される。
diff=maxY-minY (395)
-diffが0に等しくない場合、以下が適用される。
diffC=maxC-minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
ここで、divSigTable[]は、以下のように規定される。
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
-そうでない場合(diffは0に等しい)、以下が適用される。
k=0 (406)
a=0 (407)
b=minC (408)
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1,y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
この処理の出力は、x=0..nTbW-1、y=0..nTbH-1として、予測されたサンプルpreSamples[x][y]である。
-変数numTopRightは0に等しく設定され、かつ、availTRはTRUEに等しく設定される。
-preModeIntraがINTRA_T_CCLMに等しい場合、availTRがFALSEに等しくなるか、xが2*nTbW-1に等しくなるまで、x=nTbW..2*nTbW-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY+x,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTRに割り当てる。
-availTRがTRUEに等しい場合、numTopRightは1つだけ増加される。
-変数numLeftBelowは0に等しく設定され、かつ、availLBはTRUEに等しく設定される。
-preModeIntraがINTRA_L_CCLMに等しい場合、availLBがFALSEに等しくなるか、yが2*nTbH-1に等しくなるまで、y=nTbH..2*nTbH-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY+y)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLBに割り当てる。
-availLBがTRUEに等しい場合、numLeftBelowは1つだけ増加される。
-predModeIntraがINTRA_LT_CCLMに等しい場合、以下が適用される。
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
-そうでない場合、以下が適用される。
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
LおよびTにて置き換えたられたNを有する変数cntNおよび配列pickPosNは、以下のように導出される。
-変数numIs4Nは、以下のように導出される。
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1) (358)
-変数startPosNは、numSampN>(2+numIs4N)に等しく設定される。
-変数pickStepNは、Max(1,numSampN>(1+numIs4N))に等しく設定される。
-availNがTRUEに等しく、かつ、preModeIntraがINTRA_LT_CCLMまたはINTRA_N_CCLMに等しい場合、以下の割り当てが行われる。
-cntNはMin(numSampN,(1+numIs4N)<<1)に等しく設定される。
-pospickPosN[pos]は、(startPosN+pos*pospickStepN)に等しく設定され、pos=0..cntN-1とする。
-そうでない場合、cntNは0に等しく設定される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
-そうでない場合、以下が適用される。
-1次元フィルタ係数配列F1、F2、および2次元フィルタ係数配列F3、F4は、以下のように規定される。
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,i=0..2,j=0..2 (363)
-SubWidthCとSubHeightCの両方が2に等しい場合、以下が適用される。
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
-そうでない場合、以下が適用される。
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2 (369)
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+
F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F3[2][1]* pY[SubWidthC*x+1][SubHeightC*y]+
F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+
F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+
F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
-変数yは、pickPosL[idx]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[-1][y] (372)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+
F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F3[1][1]*pY[-SubWidthC][SubHeightC*y]+
F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3 (373)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+
F4[1][1]*pY[-SubWidthC][SubHeightC*y]+
F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+
F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
-変数xはpickPost[idx-cntL]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[x][-1] (375)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+
F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+
F3[1][1]*pY[SubWidthC*x][-SubHeightC]+
F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+
F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3 (376)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[SubWidthCx-1][-1]+
F4[0][2]*pY[SubWidthC*x-1][-2]+
F4[1][1]*pY[SubWidthC*x][-1]+
F4[1][2]*pY[SubWidthC*x][-2]+
F4[2][1]*pY[SubWidthC*x+1][-1]+
F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
-cntT+cntLが2に等しい場合、DsYおよびCに置き換えられるCompにて、pSelComp[3]はpSelComp[0]に等しく設定され、pSelComp[2]はpSelComp[1]に等しく設定され、pSelComp[0]はpSelComp[1]に等しく設定され、pSelComp[1]はpSelComp[3]に等しく設定される。
-配列minGrpIdxおよびmaxGrpIdxは、以下のように導出される。
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
-pSelDsY[maxGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、maxGrpIdx[0]とmaxGrpIdx[1]は、以下のようにスワップされる。
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
-pSelDsY[minGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、配列minGrpIdxとmaxGrpIdxは以下のようにスワップされる。
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
-pSelDsY[minGrpIdx[1]]がpSelDsY[maxGrpIdx[0]より大きい場合、minGrpIdx[1]とmaxGrpIdx[0]は以下のようにスワップされる。
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
-変数maxY、maxC、minYおよびminCは、以下のように導出される。
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
-numSampLが0に等しく、かつ、numSampTが0に等しい場合、以下が適用される。
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
-そうでない場合、以下が適用される。
diff=maxY-minY (395)
-diffが0に等しくない場合、以下が適用される。
diffC=maxC-minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
ここで、divSigTable[]は、以下のように規定される。
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
-そうでない場合(diffは0に等しい)、以下が適用される。
k=0 (406)
a=0 (407)
b=minC (408)
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
この処理の出力は、x=0..nTbW-1、y=0..nTbH-1として、予測されたサンプルpreSamples[x][y]である。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
変数availL、availTおよびavailTLは、以下のように導出される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLに割り当てる。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTに割り当てる。
availTL=availL&&availT (352)]]
-利用可能な右上の近傍の彩度サンプル数numTopRightは、以下のように導出される。
-変数numTopRightは0に等しく設定され、かつ、availTRはTRUEに等しく設定される。
-preModeIntraがINTRA_T_CCLMに等しい場合、availTRがFALSEに等しくなるか、xが2*nTbW-1に等しくなるまで、x=nTbW..2*nTbW-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY+x,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTRに割り当てる。
-availTRがTRUEに等しい場合、numTopRightは1つだけ増加される。
-利用可能な左下の近傍彩度サンプル数numLeftBelowは、以下のように導出される。
-変数numLeftBelowは0に等しく設定され、かつ、availLBはTRUEに等しく設定される。
-preModeIntraがINTRA_L_CCLMに等しい場合、availLBがFALSEに等しくなるか、yが2*nTbH-1に等しくなるまで、y=nTbH..2*nTbH-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY+y)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLBに割り当てる。
-availLBがTRUEに等しい場合、numLeftBelowは1つだけ増加される。
-predModeIntraがINTRA_LT_CCLMに等しい場合、以下が適用される。
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
-そうでない場合、以下が適用される。
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
LおよびTにて置き換えたられたNを有する変数cntNおよび配列pickPosNは、以下のように導出される。
-変数numIs4Nは、以下のように導出される。
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1) (358)
-変数startPosNは、numSampN>(2+numIs4N)に等しく設定される。
-変数pickStepNは、Max(1,numSampN>(1+numIs4N))に等しく設定される。
-availNがTRUEに等しく、かつ、preModeIntraがINTRA_LT_CCLMまたはINTRA_N_CCLMに等しい場合、以下の割り当てが行われる。
-cntNはMin(numSampN,(1+numIs4N)<<1)に等しく設定される。
-pospickPosN[pos]は、(startPosN+pos*pospickStepN)に等しく設定され、pos=0..cntN-1とする。
-そうでない場合、cntNは0に等しく設定される。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
-そうでない場合、以下が適用される。
-1次元フィルタ係数配列F1、F2、および2次元フィルタ係数配列F3、F4は、以下のように規定される。
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,i=0..2,j=0..2 (363)
-SubWidthCとSubHeightCの両方が2に等しい場合、以下が適用される。
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
-そうでない場合、以下が適用される。
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2 (369)
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+
F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+
F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+
F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
-変数yは、pickPosL[idx]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[-1][y] (372)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+
F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F3[1][1]*pY[-SubWidthC][SubHeightC*y]+
F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3 (373)
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+
F4[1][1]*pY[-SubWidthC][SubHeightC*y]+
F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+
F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
-変数xはpickPost[idx-cntL]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[x][-1] (375)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+
F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+
F3[1][1]*pY[SubWidthC*x][-SubHeightC]+
F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+
F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3 (376)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[SubWidthCx-1][-1]+
F4[0][2]*pY[SubWidthC*x-1][-2]+
F4[1][1]*pY[SubWidthC*x][-1]+
F4[1][2]*pY[SubWidthC*x][-2]+
F4[2][1]*pY[SubWidthC*x+1][-1]+
F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
-cntT+cntLが2に等しい場合、DsYおよびCに置き換えられるCompにて、pSelComp[3]はpSelComp[0]に等しく設定され、pSelComp[2]はpSelComp[1]に等しく設定され、pSelComp[0]はpSelComp[1]に等しく設定され、pSelComp[1]はpSelComp[3]に等しく設定される。
-配列minGrpIdxおよびmaxGrpIdxは、以下のように導出される。
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
-pSelDsY[maxGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、maxGrpIdx[0]とmaxGrpIdx[1]は、以下のようにスワップされる。
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
-pSelDsY[minGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、配列minGrpIdxとmaxGrpIdxは以下のようにスワップされる。
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
-pSelDsY[minGrpIdx[1]]がpSelDsY[maxGrpIdx[0]より大きい場合、minGrpIdx[1]とmaxGrpIdx[0]は以下のようにスワップされる。
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
-変数maxY、maxC、minYおよびminCは、以下のように導出される。
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
-numSampLが0に等しく、かつ、numSampTが0に等しい場合、以下が適用される。
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
-そうでない場合、以下が適用される。
diff=maxY-minY (395)
-diffが0に等しくない場合、以下が適用される。
diffC=maxC-minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
ここで、divSigTable[]は、以下のように規定される。
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
-そうでない場合(diffは0に等しい)、以下が適用される。
k=0 (406)
a=0 (407)
b=minC (408)
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
この処理の出力は、x=0..nTbW-1、y=0..nTbH-1として、予測されたサンプルpreSamples[x][y]である。
現在の輝度位置(xTbY,yTbY)は、以下のように導出される。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLに割り当てる。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTに割り当てる。
availTL=availL&&availT (352)
-利用可能な右上の近傍の彩度サンプル数numTopRightは、以下のように導出される。
-変数numTopRightは0に等しく設定され、かつ、availTRはTRUEに等しく設定される。
-preModeIntraがINTRA_T_CCLMに等しい場合、availTRがFALSEに等しくなるか、xが2*nTbW-1に等しくなるまで、x=nTbW..2*nTbW-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY+x,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTRに割り当てる。
-availTRがTRUEに等しい場合、numTopRightは1つだけ増加される。
-変数numLeftBelowは0に等しく設定され、かつ、availLBはTRUEに等しく設定される。
-preModeIntraがINTRA_L_CCLMに等しい場合、availLBがFALSEに等しくなるか、yが2*nTbH-1に等しくなるまで、y=nTbH..2*nTbH-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY+y)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLBに割り当てる。
-availLBがTRUEに等しい場合、numLeftBelowは1つだけ増加される。
-predModeIntraがINTRA_LT_CCLMに等しい場合、以下が適用される。
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
-そうでない場合、以下が適用される。
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
LおよびTにて置き換えたられたNを有する変数cntNおよび配列pickPosNは、以下のように導出される。
-変数numIs4Nは、以下のように導出される。
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1) (358)
-変数startPosNは、numSampN>(2+numIs4N)に等しく設定される。
-変数pickStepNは、Max(1,numSampN>(1+numIs4N))に等しく設定される。
-availNがTRUEに等しく、かつ、preModeIntraがINTRA_LT_CCLMまたはINTRA_N_CCLMに等しい場合、以下の割り当てが行われる。
-cntNはMin(numSampN,(1+numIs4N)<<1)に等しく設定される。
-pospickPosN[pos]は、(startPosN+pos*pospickStepN)に等しく設定され、pos=0..cntN-1とする。
-そうでない場合、cntNは0に等しく設定される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-numSampLが0よりも大きい場合、x=-1..-3、y=0..SubHeightC*numSampL-1である近傍の左の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-availTがFALSEに等しい場合、x=-1..SubWidthC*numSampT-1、y=-1..-2である近傍の最上の輝度サンプルpY[x][y]は、輝度サンプルpY[x][0]に等しく設定される。
-availLがFALSEに等しい場合、x=-1..-3、y=-1..SubHeightC*numSampL-1である近傍の左の輝度サンプルpY[x][y]は、輝度サンプルpY[0][y]に等しく設定される。
-numSampTが0よりも大きい場合、x=0..SubWidthC*numSampT-1、y=-1,-2、-3である近傍の最上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-availTLがTRUEに等しい場合、x=-1,-2、y=-1,-2である近傍の左上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
-そうでない場合、以下が適用される。
-1次元フィルタ係数配列F1、F2、および2次元フィルタ係数配列F3、F4は、以下のように規定される。
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,i=0..2,j=0..2 (363)
-SubWidthCとSubHeightCの両方が2に等しい場合、以下が適用される。
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
-そうでない場合、以下が適用される。
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2 (369)
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+
F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+
F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+
F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
-変数yは、pickPosL[idx]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]= pY[-1][y] (372)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+
F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F3[1][1]*pY[-SubWidthC][SubHeightC*y]+
F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3 (373)
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+
F4[1][1]*pY[-SubWidthC][SubHeightC*y]+
F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+
F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+
F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
-変数xはpickPost[idx-cntL]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[x][-1] (375)
-そうでない場合、以下が適用される。
-sps_chroma_vertical_collocated_flagが1に等しい場合、以下が適用される。
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+
F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+
F3[1][1]*pY[SubWidthC*x][-SubHeightC]+
F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+
F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3 (376)
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
-bCTUboundaryがFALSEに等しい場合、以下が適用される。
pSelDsY[idx]=(F4[0][1]*pY[SubWidthCx-1][-1]+
F4[0][2]*pY[SubWidthC*x-1][-2]+
F4[1][1]*pY[SubWidthC*x][-1]+
F4[1][2]*pY[SubWidthC*x][-2]+
F4[2][1]*pY[SubWidthC*x+1][-1]+
F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
-そうでない場合(bCTUboundaryがTRUEに等しい場合)、以下が適用される。
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
-cntT+cntLが2に等しい場合、DsYおよびCに置き換えられるCompにて、pSelComp[3]はpSelComp[0]に等しく設定され、pSelComp[2]はpSelComp[1]に等しく設定され、pSelComp[0]はpSelComp[1]に等しく設定され、pSelComp[1]はpSelComp[3]に等しく設定される。
-配列minGrpIdxおよびmaxGrpIdxは、以下のように導出される。
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
-pSelDsY[maxGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、maxGrpIdx[0]とmaxGrpIdx[1]は、以下のようにスワップされる。
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
-pSelDsY[minGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、配列minGrpIdxとmaxGrpIdxは以下のようにスワップされる。
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
-pSelDsY[minGrpIdx[1]]がpSelDsY[maxGrpIdx[0]より大きい場合、minGrpIdx[1]とmaxGrpIdx[0]は以下のようにスワップされる。
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
-変数maxY、maxC、minYおよびminCは、以下のように導出される。
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
-numSampLが0に等しく、かつ、numSampTが0に等しい場合、以下が適用される。
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
-そうでない場合、以下が適用される。
diff=maxY-minY (395)
-diffが0に等しくない場合、以下が適用される。
diffC=maxC-minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
ここで、divSigTable[]は、以下のように規定される。
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
-そうでない場合(diffは0に等しい)、以下が適用される。
k=0 (406)
a=0 (407)
b=minC (408)
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
x=0..nTbW-1,y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
この処理の出力は、x=0..nTbW-1、y=0..nTbH-1として、予測されたサンプルpreSamples[x][y]である。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
この処理の出力は、x=0..nTbW-1、y=0..nTbH-1として、予測されたサンプルpreSamples[x][y]である。
現在の輝度位置(xTbY,yTbY)は、以下のように導出される。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
この処理の出力は、x=0..nTbW-1、y=0..nTbH-1として、予測されたサンプルpreSamples[x][y]である。
現在の輝度位置(xTbY,yTbY)は、以下のように導出される。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
この処理の出力は、x=0..nTbW-1、y=0..nTbH-1として、予測されたサンプルpreSamples[x][y]である。
現在の輝度位置(xTbY,yTbY)は、以下のように導出される。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1,y=-1とする、彩度近傍サンプルp[x][y]
この処理の出力は、x=0..nTbW-1、y=0..nTbH-1として、予測されたサンプルpreSamples[x][y]である。
現在の輝度位置(xTbY,yTbY)は、以下のように導出される。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
この処理の出力は、x=0..nTbW-1、y=0..nTbH-1として、予測されたサンプルpreSamples[x][y]である。
現在の輝度位置(xTbY,yTbY)は、以下のように導出される。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-numSampLが0よりも大きい場合、x=-1..-3、y=0..SubHeightC*numSampL-1である近傍の左の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-availTがFALSEに等しい場合、x=-1..SubWidthC*numSampT-1、y=-1..-2である近傍の最上の輝度サンプルpY[x][y]は、輝度サンプルpY[x][0]に等しく設定される。
-availLがFALSEに等しい場合、x=-1..-3、y=-1..SubHeightC*numSampL-1である近傍の左の輝度サンプルpY[x][y]は、輝度サンプルpY[0][y]に等しく設定される。
-numSampTが0よりも大きい場合、x=0..SubWidthC*numSampT-1、y=-1,-2である近傍の最上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-availTLがTRUEに等しい場合、x=-1、y=-1,-2である近傍の左上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+
F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
-そうでない場合(sps_chroma_vertical_collocated_flagが0に等しい)、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+
F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+
F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+
F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
この処理の出力は、x=0..nTbW-1、y=0..nTbH-1として、予測されたサンプルpreSamples[x][y]である。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
変数availL、availTおよびavailTLは、以下のように導出される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLに割り当てる。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTに割り当てる。
availTL=availL&&availT (352)
-利用可能な右上の近傍の彩度サンプル数numTopRightは、以下のように導出される。
-変数numTopRightは0に等しく設定され、かつ、availTRはTRUEに等しく設定される。
-preModeIntraがINTRA_T_CCLMに等しい場合、availTRがFALSEに等しくなるか、xが2*nTbW-1に等しくなるまで、x=nTbW..2*nTbW-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY+x,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTRに割り当てる。
-availTRがTRUEに等しい場合、numTopRightは1つだけ増加される。
-変数numLeftBelowは0に等しく設定され、かつ、availLBはTRUEに等しく設定される。
-preModeIntraがINTRA_L_CCLMに等しい場合、availLBがFALSEに等しくなるか、yが2*nTbH-1に等しくなるまで、y=nTbH..2*nTbH-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY+y)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLBに割り当てる。
-availLBがTRUEに等しい場合、numLeftBelowは1つだけ増加される。
-predModeIntraがINTRA_LT_CCLMに等しい場合、以下が適用される。
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
-そうでない場合、以下が適用される。
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
LおよびTにて置き換えたられたNを有する変数cntNおよび配列pickPosNは、以下のように導出される。
-変数numIs4Nは、以下のように導出される。
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1) (358)
-変数startPosNは、numSampN>(2+numIs4N)に等しく設定される。
-変数pickStepNは、Max(1,numSampN>(1+numIs4N))に等しく設定される。
-availNがTRUEに等しく、かつ、preModeIntraがINTRA_LT_CCLMまたはINTRA_N_CCLMに等しい場合、以下の割り当てが行われる。
-cntNはMin(numSampN,(1+numIs4N)<<1)に等しく設定される。
-pospickPosN[pos]は、(startPosN+pos*pospickStepN)に等しく設定され、pos=0..cntN-1とする。
-そうでない場合、cntNは0に等しく設定される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-numSampLが0よりも大きい場合、x=-1..-3、y=0..SubHeightC*numSampL-1である近傍の左の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-availTがFALSEに等しい場合、x=-1..SubWidthC*numSampT-1、y=-1..-2である近傍の最上の輝度サンプルpY[x][y]は、輝度サンプルpY[x][0]に等しく設定される。
-availLがFALSEに等しい場合、x=-1..-3、y=-1..SubHeightC*numSampL-1である近傍の左の輝度サンプルpY[x][y]は、輝度サンプルpY[0][y]に等しく設定される。
-numSampTが0よりも大きい場合、x=0..SubWidthC*numSampT-1、y=-1,-2である近傍の最上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-availTLがTRUEに等しい場合、x=-1、y=-1,-2である近傍の左上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
-変数yは、pickPosL[idx]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[-1][y] (372)
-変数xはpickPost[idx-cntL]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[x][-1] (375)
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+
F2[1]*pY[SubWidthC*x][-1]+
F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
-cntT+cntLが2に等しい場合、DsYおよびCに置き換えられるCompにて、pSelComp[3]はpSelComp[0]に等しく設定され、pSelComp[2]はpSelComp[1]に等しく設定され、pSelComp[0]はpSelComp[1]に等しく設定され、pSelComp[1]はpSelComp[3]に等しく設定される。
-配列minGrpIdxおよびmaxGrpIdxは、以下のように導出される。
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
-pSelDsY[maxGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、maxGrpIdx[0]とmaxGrpIdx[1]は、以下のようにスワップされる。
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
-pSelDsY[minGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、配列minGrpIdxとmaxGrpIdxは以下のようにスワップされる。
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
-pSelDsY[minGrpIdx[1]]がpSelDsY[maxGrpIdx[0]より大きい場合、minGrpIdx[1]とmaxGrpIdx[0]は以下のようにスワップされる。
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
-変数maxY、maxC、minYおよびminCは、以下のように導出される。
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
-numSampLが0に等しく、かつ、numSampTが0に等しい場合、以下が適用される。
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
-そうでない場合、以下が適用される。
diff=maxY-minY (395)
-diffが0に等しくない場合、以下が適用される。
diffC=maxC-minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
ここで、divSigTable[]は、以下のように規定される。
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
-そうでない場合(diffは0に等しい)、以下が適用される。
k=0 (406)
a=0 (407)
b=minC (408)
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
この処理への入力は以下の通りである。
-イントラ予測モードpredModeIntra、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルのサンプル位置(xTbC,yTbC)、
-変換ブロックの幅を規定する変数nTbW、
-変換ブロックの高さを規定する変数nTbH、
-現在のブロックの色成分を規定する変数cIdx、
-x=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1とする、彩度近傍サンプルp[x][y]
この処理の出力は、x=0..nTbW-1、y=0..nTbH-1として、予測されたサンプルpreSamples[x][y]である。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
変数availL、availTおよびavailTLは、以下のように導出される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLに割り当てる。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTに割り当てる。
availTL=availL&&availT (352)
-利用可能な右上の近傍の彩度サンプル数numTopRightは、以下のように導出される。
-変数numTopRightは0に等しく設定され、かつ、availTRはTRUEに等しく設定される。
-preModeIntraがINTRA_T_CCLMに等しい場合、availTRがFALSEに等しくなるか、xが2*nTbW-1に等しくなるまで、x=nTbW..2*nTbW-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY+x,yTbY-1)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailTRに割り当てる。
-availTRがTRUEに等しい場合、numTopRightは1つだけ増加される。
-利用可能な左下の近傍彩度サンプル数numLeftBelowは、以下のように導出される。
-変数numLeftBelowは0に等しく設定され、かつ、availLBはTRUEに等しく設定される。
-preModeIntraがINTRA_L_CCLMに等しい場合、availLBがFALSEに等しくなるか、yが2*nTbH-1に等しくなるまで、y=nTbH..2*nTbH-1に以下が適用される。
-6.4.4項に規定された近傍ブロックの可用性に対する導出処理は、(xTbY,yTbY)に等しく設定された現在の輝度位置(xCurr,yCurr)、近傍輝度位置(xTbY-1,yTbY+y)、FALSEに等しく設定されたcheckPredModeY、およびcIdxを入力として起動し、出力をavailLBに割り当てる。
-availLBがTRUEに等しい場合、numLeftBelowは1つだけ増加される。
-predModeIntraがINTRA_LT_CCLMに等しい場合、以下が適用される。
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
-そうでない場合、以下が適用される。
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
LおよびTにて置き換えたられたNを有する変数cntNおよび配列pickPosNは、以下のように導出される。
-変数numIs4Nは、以下のように導出される。
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1) (358)
-変数startPosNは、numSampN>(2+numIs4N)に等しく設定される。
-変数pickStepNは、Max(1,numSampN>(1+numIs4N))に等しく設定される。
-availNがTRUEに等しく、かつ、preModeIntraがINTRA_LT_CCLMまたはINTRA_N_CCLMに等しい場合、以下の割り当てが行われる。
-cntNはMin(numSampN,(1+numIs4N)<<1)に等しく設定される。
-pospickPosN[pos]は、(startPosN+pos*pospickStepN)に等しく設定され、pos=0..cntN-1とする。
-そうでない場合、cntNは0に等しく設定される。
-numSampLおよびnumSampTの両方が0に等しい場合、以下が適用される。
predSamples[x][y]=1<<(BitDepth-1) (359)
-そうでない場合、以下の順序付けられたステップが適用される。
1. x=0..nTbW*SubWidthC-1、y=0..nTbH*SubHeightC-1である同一位置に配置された輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
2. 近傍輝度サンプルpY[x][y]は、以下のように導出される。
-numSampLが0よりも大きい場合、x=-1..-3、y=0..SubHeightC*numSampL-1である近傍の左の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-availTがFALSEに等しい場合、x=-1..SubWidthC*numSampT-1、y=-1..-2である近傍の最上の輝度サンプルpY[x][y]は、輝度サンプルpY[x][0]に等しく設定される。
-availLがFALSEに等しい場合、x=-1..-3、y=-1..SubHeightC*numSampL-1である近傍の左の輝度サンプルpY[x][y]は、輝度サンプルpY[0][y]に等しく設定される。
-numSampTが0よりも大きい場合、x=0..SubWidthC*numSampT-1、y=-1,-2である近傍の最上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-availTLがTRUEに等しい場合、x=-1、y=-1,-2である近傍の左上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
-変数yは、pickPosL[idx]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]= pY[-1][y] (372)
-cntT+cntLが2に等しい場合、DsYおよびCに置き換えられるCompにて、pSelComp[3]はpSelComp[0]に等しく設定され、pSelComp[2]はpSelComp[1]に等しく設定され、pSelComp[0]はpSelComp[1]に等しく設定され、pSelComp[1]はpSelComp[3]に等しく設定される。
-配列minGrpIdxおよびmaxGrpIdxは、以下のように導出される。
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
-pSelDsY[maxGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、maxGrpIdx[0]とmaxGrpIdx[1]は、以下のようにスワップされる。
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
-pSelDsY[minGrpIdx[0]]がpSelDsY[maxGrpIdx[1]より大きい場合、配列minGrpIdxとmaxGrpIdxは以下のようにスワップされる。
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
-pSelDsY[minGrpIdx[1]]がpSelDsY[maxGrpIdx[0]より大きい場合、minGrpIdx[1]とmaxGrpIdx[0]は以下のようにスワップされる。
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
-変数maxY、maxC、minYおよびminCは、以下のように導出される。
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
-numSampLが0に等しく、かつ、numSampTが0に等しい場合、以下が適用される。
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
-そうでない場合、以下が適用される。
diff=maxY-minY (395)
-diffが0に等しくない場合、以下が適用される。
diffC=maxC-minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
ここで、divSigTable[]は、以下のように規定される。
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
-そうでない場合(diffは0に等しい)、以下が適用される。
k=0 (406)
a=0 (407)
b=minC (408)
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
本願は、2020年4月18日出願の国際特許出願第PCT/CN2020/085484号の優先権および利益を主張する2021年4月19日出願の国際特許出願第PCT/CN2021/088000号の国内段階である。上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
Claims (35)
- 映像処理の方法であって、
映像ユニットを含む映像と、前記映像のビットストリームとの間の変換のために、規則に従って、第1のコーディングツールが前記映像ユニットに対して有効であるかを決定することであって、前記規則は、前記第1のコーディングツールと第2のコーディングツールが相互に、排他的に有効であることを規定し、前記第1のコーディングツールまたは前記第2のコーディングツールは、符号データ隠蔽ツールを有する、ことと、
前記決定に従って、前記変換を実行することと、
を有する方法。 - 前記映像ユニットは、シーケンス、ピクチャ、スライス、タイル、ブリック、またはサブピクチャに対応する、請求項1に記載の方法。
- 前記規則は、BDPCM(Block Differential Pulse Code Modulation)ツールを有する前記第2のコーディングツールが前記映像ユニットに対して有効である場合、前記符号データ隠蔽ツールを有する前記第1のコーディングツールを無効にすることを規定する、請求項1または2に記載の方法。
- 前記規則は、前記符号データ隠蔽ツールを有する前記第2のコーディングツールが前記映像ユニットに対して有効である場合、BDPCM(Block Differential Pulse Code Modulation)ツールを有する前記第1のコーディングツールを無効にすることを規定する、請求項1または2に記載の方法。
- 前記規則は、恒等変換を適用するのみの前記第2のコーディングツールが前記映像ユニットに対して有効である場合、前記符号データ隠蔽ツールを有する前記第1のコーディングツールを無効にすることを規定する、請求項1または2に記載の方法。
- 前記規則は、前記符号データ隠蔽ツールを有する前記第2のコーディングツールが前記映像ユニットに対して有効である場合、恒等変換を適用するのみの前記第1のコーディングツールを無効にすることを規定する、請求項1または2に記載の方法。
- 前記恒等変換を適用するのみの前記第2のコーディングツール、または、前記恒等変換を適用するのみの前記第1のコーディングツールは、変換スキップモードツールまたは他のコーディングツールを有する、請求項5または6に記載の方法。
- 映像処理の方法であって、
映像ユニットを有する映像と、前記映像のビットストリームとの間の変換のために、規則に従って、第1のコーディングツールが前記映像ユニットに対して有効であるか否かを決定することであって、前記規則は、前記第1のコーディングツールと第2のコーディングツールが相互に、排他的に有効であることを規定し、前記第1のコーディングツールまたは前記第2のコーディングツールは、従属量子化ツールを有する、ことと、
前記決定に従って、前記変換を実行することと、
を有する、方法。 - 前記映像ユニットは、シーケンス、ピクチャ、スライス、タイル、ブリック、またはサブピクチャに対応する、請求項8に記載の方法。
- 前記規則は、BDPCM(Block Differential Pulse Code Modulation)ツールを有する前記第2のコーディングツールが前記映像ユニットに対して有効である場合、前記従属量子化ツールを有する前記第1のコーディングツールを無効にすることを規定する、請求項8または9に記載の方法。
- 前記規則は、前記従属量子化ツールを有する前記第2のコーディングツールが前記映像ユニットに対して有効である場合、BDPCM(Block Differential Pulse Code Modulation)ツールを有する前記第1のコーディングツールを無効にすることを規定する、請求項8または9に記載の方法。
- 前記規則は、恒等変換を適用するのみの前記第2のコーディングツールが前記映像ユニットに対して有効である場合、前記従属量子化ツールを有する前記第1のコーディングツールを無効にすることを規定する、請求項8または9に記載の方法。
- 前記規則は、前記従属量子化ツールを有する前記第2のコーディングツールが前記映像ユニットに対して有効である場合、恒等変換を適用するのみの前記第1のコーディングツールを無効にすることを規定する、請求項8または9に記載の方法。
- 前記恒等変換を適用するのみの前記第2のコーディングツール、または、前記恒等変換を適用するのみの前記第1のコーディングツールは、変換スキップモードツールまたは他のコーディングツールを有する、請求項8または9に記載の方法。
- 映像処理の方法であって、
規則に従って、1または複数のスライスを有する映像と、前記映像のビットストリームとの間の変換を実行すること、を有し、
前記規則は、スライスのスライスタイプが前記スライスの参照ピクチャリストの参照ピクチャエントリに依存することを規定する、方法。 - 前記規則は、参照ピクチャリスト0の前記参照ピクチャの数が0に等しく、かつ、参照ピクチャリスト1の参照ピクチャエントリの数が0に等しい場合、前記スライスの前記スライスタイプは、I-スライスであることを規定する、請求項15に記載の方法。
- 前記規則は、参照ピクチャリスト0の前記参照ピクチャエントリの数が0より大きく、かつ、参照ピクチャリスト1の参照ピクチャエントリの数が0に等しい場合、前記スライスの前記スライスタイプは、P-スライスであることを規定する、請求項15に記載の方法。
- 前記規則は、参照ピクチャリスト0の参照ピクチャエントリの数が0より大きく、かつ、参照ピクチャリスト1の参照ピクチャエントリの数が0に等しい場合、前記スライスの前記スライスタイプは、B-スライスであることを規定する、請求項15に記載の方法。
- 前記スライスタイプは、前記ビットストリームに含まれない、請求項16から18のいずれか一項に記載の方法。
- 前記参照ピクチャエントリは、前記スライスタイプが信号通知または推論される前に、信号通知または推論される、請求項15に記載の方法。
- 前記参照ピクチャエントリは、前記スライスを含むピクチャに関連付けられたピクチャヘッダに含まれる、請求項15に記載の方法。
- 映像処理の方法であって、
規則に従って、1または複数のスライスを含む1または複数のピクチャを含む映像と、前記映像のビットストリームとの間の変換を実行すること、を有し、
前記規則は、APS(Adaptation Parameter Set)における許可されたフィルタの数、またはAPSの数が、前記映像のコーディングされた情報に依存することを規定する、方法。 - 前記コーディングされた情報は、ピクチャのサブピクチャの数を含む、請求項22に記載の方法。
- 前記APSにおける前記許可されたフィルタの数は、ピクチャユニット内のすべてのAPS(Adaptation Parameter Set) NAL(Network Abstraction Layer)ユニットのALF APSにおける、輝度ALF(Adaptive Loop Filter)、彩度ALF、およびクロスコンポーネントALFの数を含む、請求項22に記載の方法。
- APSにおける前記許可されたフィルタの数は、すべてのAPS(Adaptation Parameter Set) NAL(Network Abstraction Layer)ユニットにおける、輝度成分に対するALF(Adaptive Loop Filter)クラスの数、彩度成分に対する代替フィルタの数、および/または、クロスコンポーネントフィルタの数を含む、請求項22に記載の方法。
- 前記APSは、ALF APS、スケーリングリストAPS、および/または、LMCS(Luma Mapping with Chroma Scaling) APSに対応する、請求項22に記載の方法。
- 映像ユニットによって用いられるべきAPS識別子、および/または、APSの数を信号通知する方法は、前記APSにおける前記許可されたフィルタの数に依存する、請求項22に記載の方法。
- 前記変換は、前記映像を前記ビットストリームに符号化することを含む、請求項1から27のいずれか一項に記載の方法。
- 前記変換は、前記映像を前記ビットストリームに復号することを含む、請求項1から27のいずれか一項に記載の方法。
- 前記変換は、前記ビットストリームを前記映像から生成することを含み、
前記方法は更に、前記ビットストリームを非一時的コンピュータ可読記録媒体に格納することを有する、請求項1から27のいずれか一項に記載の方法。 - 請求項1から30のうちの1または複数に記載の方法を実装するように構成されたプロセッサを有する映像処理装置。
- 映像のビットストリームを格納する方法であって、
請求項1から30のいずれか一項に記載の方法を有し、
更に、前記ビットストリームを非一時的コンピュータ可読記録媒体に格納することを有する、方法。 - 実行された際に、プロセッサに、請求項1から30のうちの1または複数に記載の方法を実装するように機能させるプログラムを格納したコンピュータ可読媒体。
- 上記に記載の方法のいずれかに従って生成されたビットストリームを格納するコンピュータ可読媒体。
- ビットストリームを格納するための映像処理装置であって、
請求項1から30のうちの1または複数のいずれかに記載の方法を実行するように構成された、映像処理装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2020085484 | 2020-04-18 | ||
CNPCT/CN2020/085484 | 2020-04-18 | ||
PCT/CN2021/088000 WO2021209065A1 (en) | 2020-04-18 | 2021-04-19 | Use restrictions for cross-component prediction |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023521503A true JP2023521503A (ja) | 2023-05-24 |
JP7473680B2 JP7473680B2 (ja) | 2024-04-23 |
Family
ID=78083943
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022563092A Active JP7473680B2 (ja) | 2020-04-18 | 2021-04-19 | クロスコンポーネント予測のための利用制約 |
JP2022563091A Active JP7556980B2 (ja) | 2020-04-18 | 2021-04-19 | クロスコンポーネント映像コーディングの信号通知のための構文 |
JP2023204677A Pending JP2024023524A (ja) | 2020-04-18 | 2023-12-04 | クロスコンポーネント映像コーディングの信号通知のための構文 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022563091A Active JP7556980B2 (ja) | 2020-04-18 | 2021-04-19 | クロスコンポーネント映像コーディングの信号通知のための構文 |
JP2023204677A Pending JP2024023524A (ja) | 2020-04-18 | 2023-12-04 | クロスコンポーネント映像コーディングの信号通知のための構文 |
Country Status (6)
Country | Link |
---|---|
US (4) | US12120304B2 (ja) |
EP (2) | EP4122194A4 (ja) |
JP (3) | JP7473680B2 (ja) |
KR (2) | KR20230002432A (ja) |
CN (4) | CN115443658A (ja) |
WO (3) | WO2021209065A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240348836A1 (en) * | 2023-04-12 | 2024-10-17 | Sharp Kabushiki Kaisha | Systems and methods for performing motion compensation in video coding |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103096057B (zh) * | 2011-11-08 | 2016-06-29 | 华为技术有限公司 | 一种色度帧内预测方法和装置 |
JP6125215B2 (ja) * | 2012-09-21 | 2017-05-10 | 株式会社東芝 | 復号装置、及び符号化装置 |
CN105684442B (zh) | 2013-07-23 | 2020-02-21 | 英迪股份有限公司 | 用于编码/解码图像的方法 |
US10455249B2 (en) * | 2015-03-20 | 2019-10-22 | Qualcomm Incorporated | Downsampling process for linear model prediction mode |
WO2017088093A1 (en) | 2015-11-23 | 2017-06-01 | Mediatek Singapore Pte. Ltd. | On the smallest allowed block size in video coding |
US10230961B2 (en) * | 2016-06-03 | 2019-03-12 | Mediatek Inc. | Method and apparatus for template-based intra prediction in image and video coding |
US10484712B2 (en) | 2016-06-08 | 2019-11-19 | Qualcomm Incorporated | Implicit coding of reference line index used in intra prediction |
US10554974B2 (en) | 2017-01-13 | 2020-02-04 | Mediatek Inc. | Method and apparatus enabling adaptive multiple transform for chroma transport blocks using control flags |
US10779007B2 (en) | 2017-03-23 | 2020-09-15 | Mediatek Inc. | Transform coding of video data |
JP2020120141A (ja) | 2017-05-26 | 2020-08-06 | シャープ株式会社 | 動画像符号化装置及び動画像復号装置、フィルタ装置 |
WO2019047883A1 (en) | 2017-09-08 | 2019-03-14 | Fg Innovation Ip Company Limited | DEVICE AND METHOD FOR ENCODING VIDEO DATA BASED ON MULTIPLE REFERENCE LINES |
GB2567249A (en) | 2017-10-09 | 2019-04-10 | Canon Kk | New sample sets and new down-sampling schemes for linear component sample prediction |
CN111434109B (zh) | 2017-11-28 | 2024-06-14 | Lx半导体科技有限公司 | 图像编码/解码方法和装置以及存储有比特流的记录介质 |
GB2571314A (en) | 2018-02-23 | 2019-08-28 | Canon Kk | Methods and devices for linear component sample prediction using a double classification |
WO2019172799A1 (en) * | 2018-03-07 | 2019-09-12 | Huawei Technologies Co., Ltd | Method and apparatus for detecting blocks suitable for multiple sign bit hiding |
CN116708837A (zh) | 2018-07-02 | 2023-09-05 | Lg电子株式会社 | 编解码设备和数据发送设备 |
CN112425166B (zh) * | 2018-07-12 | 2023-03-10 | 华为技术有限公司 | 视频译码中使用交叉分量线性模型进行帧内预测 |
CN110999290B (zh) | 2018-07-15 | 2021-07-16 | 华为技术有限公司 | 使用跨分量线性模型进行帧内预测的方法和装置 |
CN116347109A (zh) | 2018-08-17 | 2023-06-27 | 北京字节跳动网络技术有限公司 | 一种处理视频数据的方法和装置 |
AU2019336894A1 (en) * | 2018-09-07 | 2021-05-06 | B1 Institute Of Image Technology, Inc. | Method and device for coding/decoding image using intra prediction |
TWI824006B (zh) * | 2018-09-12 | 2023-12-01 | 大陸商北京字節跳動網絡技術有限公司 | 交叉分量線性建模中的下採樣 |
HUE066947T2 (hu) * | 2018-09-14 | 2024-09-28 | Huawei Tech Co Ltd | Feldarabolás és csempézés a videokódolásban |
CN112913235B (zh) * | 2018-10-04 | 2023-07-14 | Lg电子株式会社 | 基于cclm的帧内预测方法及其设备 |
WO2020073904A1 (en) * | 2018-10-08 | 2020-04-16 | Huawei Technologies Co., Ltd. | An image processing device and method for performing deblocking |
US11197005B2 (en) | 2018-11-08 | 2021-12-07 | Qualcomm Incorporated | Cross-component prediction for video coding |
JP2022521757A (ja) | 2019-02-22 | 2022-04-12 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | 線形モデルを使用したイントラ予測のための方法および装置 |
EP3912341A4 (en) * | 2019-05-21 | 2022-10-19 | Huawei Technologies Co., Ltd. | METHOD AND APPARATUS FOR INTER-COMPONENT PREDICTION |
US11115658B2 (en) * | 2019-06-25 | 2021-09-07 | Qualcomm Incorporated | Matrix intra prediction and cross-component linear model prediction harmonization for video coding |
CN114667730A (zh) | 2019-11-01 | 2022-06-24 | 北京字节跳动网络技术有限公司 | 交叉分量视频编解码的块尺寸限制 |
KR20240095482A (ko) | 2019-12-30 | 2024-06-25 | 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 | 비디오 데이터의 크로마 및 루마 성분의 교차 성분 결정 |
WO2021045654A2 (en) | 2019-12-30 | 2021-03-11 | Huawei Technologies Co., Ltd. | Method and apparatus of filtering for cross-component linear model prediction |
WO2021195500A1 (en) | 2020-03-26 | 2021-09-30 | Alibaba Group Holding Limited | Method and apparatus for cross component filtering |
US11638036B2 (en) | 2020-04-03 | 2023-04-25 | Qualcomm Incorporated | High-level constraints for transform skip blocks in video coding |
-
2021
- 2021-04-19 KR KR1020227036103A patent/KR20230002432A/ko active Search and Examination
- 2021-04-19 CN CN202180029366.XA patent/CN115443658A/zh active Pending
- 2021-04-19 CN CN202311558909.4A patent/CN117596409A/zh active Pending
- 2021-04-19 CN CN202180029354.7A patent/CN115462081A/zh active Pending
- 2021-04-19 EP EP21787550.9A patent/EP4122194A4/en active Pending
- 2021-04-19 EP EP21787549.1A patent/EP4122204A4/en active Pending
- 2021-04-19 WO PCT/CN2021/088000 patent/WO2021209065A1/en unknown
- 2021-04-19 JP JP2022563092A patent/JP7473680B2/ja active Active
- 2021-04-19 JP JP2022563091A patent/JP7556980B2/ja active Active
- 2021-04-19 KR KR1020227036104A patent/KR20230002433A/ko active Search and Examination
- 2021-04-19 WO PCT/CN2021/087999 patent/WO2021209064A1/en unknown
- 2021-04-19 CN CN202180029353.2A patent/CN115428446A/zh active Pending
- 2021-04-19 WO PCT/CN2021/087998 patent/WO2021209063A1/en active Application Filing
-
2022
- 2022-10-18 US US17/968,553 patent/US12120304B2/en active Active
- 2022-10-18 US US17/968,536 patent/US11902529B2/en active Active
- 2022-10-18 US US17/968,510 patent/US11936873B2/en active Active
-
2023
- 2023-11-27 US US18/519,348 patent/US20240114141A1/en active Pending
- 2023-12-04 JP JP2023204677A patent/JP2024023524A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
CN115462081A (zh) | 2022-12-09 |
US12120304B2 (en) | 2024-10-15 |
CN117596409A (zh) | 2024-02-23 |
CN115428446A (zh) | 2022-12-02 |
EP4122204A1 (en) | 2023-01-25 |
EP4122194A1 (en) | 2023-01-25 |
WO2021209063A1 (en) | 2021-10-21 |
CN115443658A (zh) | 2022-12-06 |
KR20230002433A (ko) | 2023-01-05 |
WO2021209064A1 (en) | 2021-10-21 |
JP2024023524A (ja) | 2024-02-21 |
US11936873B2 (en) | 2024-03-19 |
EP4122204A4 (en) | 2024-02-14 |
US20230069756A1 (en) | 2023-03-02 |
US20230063736A1 (en) | 2023-03-02 |
US20230075048A1 (en) | 2023-03-09 |
JP7473680B2 (ja) | 2024-04-23 |
EP4122194A4 (en) | 2023-08-16 |
WO2021209065A1 (en) | 2021-10-21 |
JP7556980B2 (ja) | 2024-09-26 |
KR20230002432A (ko) | 2023-01-05 |
US11902529B2 (en) | 2024-02-13 |
US20240114141A1 (en) | 2024-04-04 |
JP2023521502A (ja) | 2023-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7534399B2 (ja) | クロス成分映像コーディングにおける線形パラメータの導出 | |
CN115244924A (zh) | 跨分量自适应环路滤波器的信令通知 | |
CN113728642A (zh) | 编解码视频的量化残差差分脉冲编解码调制表示 | |
WO2021190440A1 (en) | Using neighboring samples in cross-component video coding | |
WO2021104409A1 (en) | Cross-component adaptive filtering and subblock coding | |
KR20220058551A (ko) | 비디오 코딩의 양 예측 가중 샘플 | |
JP2022545451A (ja) | デフォルトおよびユーザ定義のスケーリング行列の使用法 | |
CN115066899A (zh) | 编解码视频的可分二次变换处理 | |
JP2024023524A (ja) | クロスコンポーネント映像コーディングの信号通知のための構文 | |
CN115606182A (zh) | 使用增强二次变换的编解码视频处理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221028 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221028 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230912 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231212 |
|
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: 20240312 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240411 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7473680 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |