JP2023521502A - クロスコンポーネント映像コーディングの信号通知のための構文 - Google Patents

クロスコンポーネント映像コーディングの信号通知のための構文 Download PDF

Info

Publication number
JP2023521502A
JP2023521502A JP2022563091A JP2022563091A JP2023521502A JP 2023521502 A JP2023521502 A JP 2023521502A JP 2022563091 A JP2022563091 A JP 2022563091A JP 2022563091 A JP2022563091 A JP 2022563091A JP 2023521502 A JP2023521502 A JP 2023521502A
Authority
JP
Japan
Prior art keywords
subwidthc
subheightc
follows
set equal
equal
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.)
Pending
Application number
JP2022563091A
Other languages
English (en)
Inventor
ヤン ワン
リー ジャン
カイ ジャン
ホンビン リウ
ユエ ワン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
ByteDance Inc
Original Assignee
Beijing ByteDance Network Technology Co Ltd
ByteDance Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd, ByteDance Inc filed Critical Beijing ByteDance Network Technology Co Ltd
Publication of JP2023521502A publication Critical patent/JP2023521502A/ja
Priority to JP2023204677A priority Critical patent/JP2024023524A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/186Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods 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

映像処理の方法は、映像の映像ブロックと、前記映像のビットストリームとの間の変換のために、規則に従って、前記映像ブロックに対するCCLM(Cross-Component Linear Model)のパラメータを決定することと、前記決定に基づいて、前記変換を実行することと、を含むように提供され、前記規則は、前記CCLMの前記パラメータの前記決定において近傍の輝度サンプルを示す変数を、前記変数が特定の値を有する場合にのみ用いることを規定する。【選択図】図18

Description

関連出願の相互参照
パリ条約に基づく適用可能な特許法および/または規則に基づいて、本願は、2020年4月18日出願の国際特許出願第PCT/CN2020/085484号の優先権および利益を適時に主張することを目的とする。法に基づくすべての目的のために、上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
本明細書は、映像および画像コーディング技術に関する。
デジタル映像は、インターネットおよび他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像を受信および表示することが可能である接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
開示された技術は、クロスコンポーネント線形モデル予測を使用して符号化または復号を行うために、映像または画像デコーダまたはエンコーダの実施形態によって使用されてもよい。
1つの例示的な態様において、映像を処理する方法が開示される。この方法は、映像の彩度ブロックと映像の符号化表現との間の変換のために、ダウンサンプリングフィルタを使用して、配置した輝度ブロックの、正の整数であるN個の上の近傍ラインから生成されるダウンサンプリングして配置した近傍の最上の輝度サンプルを使用することによって、クロスコンポーネント線形モデルのパラメータを導出することと、クロスコンポーネント線形モデルを使用して生成される予測彩度ブロックを使用して、変換を実行することとを含む。
別の例示的な態様において、映像を処理する方法が開示される。この方法は、4:2:2カラーフォーマットを有する映像の映像ブロックと映像のビットストリームとの間の変換のために、規則に従って、映像ブロックのクロスコンポーネント線形モデルのパラメータを決定することと、決定に基づいて変換を実行することと、を含み、構文要素は、映像の彩度サンプルが映像の輝度サンプルに対して垂直にシフトされているかどうかを示し、規則は、パラメータが構文要素の値に依存せずに決定されることを規定する。
別の例示的な態様において、映像を処理する方法が開示される。この方法は、規則に従って映像と映像のビットストリームとの間で変換を実行することを含み、フォーマット規則は、映像が4:2:2または4:4:4のカラーフォーマットを有することに起因して、彩度サンプル位置が対応する輝度サンプル位置に対して垂直にシフトされているかどうかを示すフィールドがデフォルト値に設定されることを規定する。
別の例示的な態様において、映像を処理する方法が開示される。この方法は、映像の映像ブロックと映像のビットストリームとの間の変換のために、規則に従って映像ブロックのCCLM(Cross Component Linear Model)のパラメータを決定することと、決定に基づいて変換を実行することとを含み、規則は、変数が特定の値を有する場合にのみCCLMのパラメータの決定において近傍輝度サンプルを表す変数を用いることを規定する。
別の例示的な態様において、映像を処理する方法が開示される。この方法は、映像ユニットを構成する映像と映像のビットストリームとの間の変換のために、規則に従って、映像ユニットに対して第1のコーディングツールが有効であるかどうかを決定することであって、規則は、第1のコーディングツールおよび第2のコーディングツールが相互に排他的に有効であることを規定し、第1のコーディングツールまたは第2のコーディングツールは符号データ隠蔽ツールからなる、ことと、決定に従って変換を実行することを含む。
別の例示的な態様において、映像を処理する方法が開示される。この方法は、映像ユニットを構成する映像と映像のビットストリームとの間の変換のために、規則に従って、映像ユニットに対して第1のコーディングツールが有効であるかどうかを決定することであって、規則は、第1のコーディングツールおよび第2のコーディングツールが相互に排他的に有効であることを規定し、第1のコーディングツールまたは第2のコーディングツールは、従属量子化ツールを含む、ことと、決定に従って変換を実行することと、を含む。
別の例示的な態様において、映像を処理する方法が開示される。この方法は、規則に従って、1または複数のスライスを含む1または複数のピクチャを含む映像と映像のビットストリームとの間で変換を実行することを含み、規則は、スライスのスライスタイプがスライスの参照ピクチャリストの参照ピクチャエントリに依存することを規定する。
別の例示的な態様において、映像を処理する方法が開示される。この方法は、規則に従って、1または複数のスライスを含む1または複数のピクチャを含む映像と映像のビットストリームとの間で変換を実行することを含み、規則は、APS(Adaptation Parameter Set)における許容フィルタの数またはAPSの数が映像のコーディングされた情報に依存することを規定する。
別の例示的な態様において、上述された方法は、プロセッサを含む映像エンコーダ装置によって実装されてもよい。
さらに別の例示的な態様において、これらの方法は、プロセッサ実行可能命令の形式で実施されてもよく、コンピュータ可読プログラム媒体に記憶されてもよい。
これらの、および他の態様は、本明細書でさらに説明される。
ピクチャにおける4:2:2の輝度および彩度サンプルの名目上の垂直および水平の位置を示す。 映像エンコーダの例を示す。 67個のイントラ予測モードの例を示す。 水平方向および垂直方向の横断走査の例を示す。 α、βの導出に使用したサンプルの位置の例を示す。 4×8のサンプルのブロックを2つの独立した復号可能な領域に分割する例を示す。 垂直方向予測子を有する4×Nのブロックに対してスループットを最大にするように、画素の行を処理する例示的な順序を示す。 LFNST(Low-Frequency Non-Separable Transform)処理の例を示す。 4:2:2映像のためのCCLMパラメータの導出に使用される、近傍の彩度サンプルおよびダウンサンプリングして配置した近傍の輝度サンプルの例を示す。 映像処理装置の例を示す。 例示的な映像エンコーダのブロック図を示す。 映像処理方法の例を示すフローチャートである。 映像処理システムの例を示すブロック図である。 現在のブロックにおけるサンプルおよび使用される左上のサンプルの例を示す。 例示的な映像コーディングシステムを示すブロック図である。 開示された技術のいくつかの実施形態によるエンコーダを示すブロック図である。 開示された技術のいくつかの実施形態によるデコーダを示すブロック図である。 開示される技術のいくつかの実装形態による、映像処理の例示的な方法のフローチャートである。 開示される技術のいくつかの実装形態による、映像処理の例示的な方法のフローチャートである。 開示される技術のいくつかの実装形態による、映像処理の例示的な方法のフローチャートである。 開示される技術のいくつかの実装形態による、映像処理の例示的な方法のフローチャートである。 開示される技術のいくつかの実装形態による、映像処理の例示的な方法のフローチャートである。 開示される技術のいくつかの実装形態による、映像処理の例示的な方法のフローチャートである。 開示される技術のいくつかの実装形態による、映像処理の例示的な方法のフローチャートである。
本明細書は、伸張または復号されたデジタル映像または画像の品質を向上させるために、画像または映像ビットストリームのデコーダによって使用できる様々な技術を提供する。簡潔にするために、本明細書では、用語「映像」は、一連のピクチャ(従来から映像と呼ばれる)および個々の画像の両方を含むように使用される。さらに、映像エンコーダは、さらなる符号化に使用される復号されたフレームを再構成するために、符号化の処理中にこれらの技術を実装してもよい。
本明細書では、理解を容易にするために章の見出しを使用しており、1つの章に開示された実施形態をその章にのみ限定するものではない。このように、ある章の実施形態は、他の章の実施形態と組み合わせることができる。
1. 簡単な概要
本発明は、映像コーディング技術に関する。具体的には、本発明は、画像/映像コーディングにおけるクロスコンポーネント線形モデル予測および他のコーディングツールに関する。HEVCのような既存の映像コーディング規格に適用してもよいし、規格(Versatile Video Coding)を確定させるために適用してもよい。本発明は、将来の映像コーディング規格または映像コーデックにも適用可能である。
2. 背景
映像コーディングする規格は、主に周知の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規格の策定に取り組んでいる。
VVCドラフトの最新バージョン、即ち、Versatile Video Coding(ドラフト7)は、以下を参照することができる。
http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/16_Geneva/wg11/JVET-P2001-v9.zip
VTMと呼ばれるVVCの最新の参照ソフトウェアは、以下で確認することができる。
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/-/tags/VTM-6.0
2.1. 色空間および彩度サブサンプリング
色空間は、カラーモデル(または表色系)としても知られ、色の範囲を数字のタプル(tuple)として簡単に記述する抽象的な数学モデルであり、典型的には3または4つの値または色成分(例えば、RGB)である。基本的には、色空間は座標系とサブ空間とを精緻化したものである。
映像圧縮の場合、最も頻繁に使用される色空間は、YCbCrおよびRGBである。
YCbCr、Y’CbCr、またはY Pb/Cb Pr/Crは、YCBCRまたはY’CBCRとも記述され、カラー画像のパイプライン映像およびデジタル写真システムの一部として使用される色空間のファミリである。Y’は輝度成分であり、CBとCRは青色差および赤色差の彩度成分である。Y’(プライム付き)は、輝度であるYと区別され、ガンマ補正されたRGBプライマリに基づいて光強度が非線形に符号化されることを意味する。
彩度サブサンプリングは、人間の視覚システムが、輝度よりも色差の方が知覚が低いことを利用して、輝度情報よりも彩度情報の方が解像度が低くなるように実装して画像を符号化する方法である。
2.1.1. 4:4:4
3つのY’CbCr成分のそれぞれは、同じサンプルレートを有し、従って、彩度サブサンプリングはない。この方式は、ハイエンドフィルムスキャナおよび映画の撮影後の編集に用いられることがある。
2.1.2. 4:2:2
2つの彩度成分は、輝度のサンプルレートの半分でサンプリングされ、水平彩度解像度は半分にされ、垂直彩度解像度は変化しない。これにより、視覚的にほとんどまたは全く差がなく、非圧縮の映像信号の帯域幅を1/3に低減することができる。4:2:2カラーフォーマットの名目上の垂直および水平の位置の例が、例えば、VVC作業草案の図1Aに示されている。
2.1.3. 4:2:0
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)している。
表2-1. chroma_format_idcおよびseparate_colour_plane_flagから導出したSubWidthCおよびSubHeightCの値
Figure 2023521502000002
2.2. 典型的な映像コーデックのコーディングフロー
図1Bは、3つのインループフィルタリングブロック、すなわちDF(Deblocking Filter)、SAO(Sample Adaptive Offset)、およびALFを含むVVCのエンコーダブロック図の例を示す。予め定義されたフィルタを使用するDFとは異なり、SAOおよびALFは、現在のピクチャのオリジナルサンプルを利用し、それぞれ、オフセットを追加することにより、および、FIR(Finite Inpulse Response)フィルタを適用することにより、オフセットおよびフィルタ係数を信号通知するコーディングされた側の情報を用いて、元のサンプルと再構成サンプルとの間の平均二乗誤差を低減する。ALFは、各ピクチャの最後の処理段階に位置し、前の段階で生成されたアーチファクトを捕捉および修正しようとするツールと見なすことができる。
2.3. 67個のイントラ予測モードを有するイントラモードコーディング
自然映像に表される任意のエッジ方向をキャプチャするために、指向性イントラモードの数は、HEVCで使用されるように、33から65に拡張される。追加の指向性モードは、図2において赤い点線の矢印で示され、平面モードとDCモードは同じままである。これらのより密度の高い指向性イントラ予測モードは、すべてのブロックサイズ、および輝度および彩度イントラ予測の両方に適用される。
従来の角度イントラ予測方向は、図2に示すように、時計回り方向に45度から-135度まで規定される。VTMにおいて、いくつかの従来の角度イントラ予測モードは、非正方形のブロックのために、広角イントラ予測モードに適応的に置き換えられる。置換されたモードは、元の方法を使用して信号通知され、構文解析後、広角モードのインデックスに再マッピングされる。イントラ予測モードの総数は変化せず、すなわち、67であり、イントラモードコーディングは変化しない。
HEVCにおいて、すべてのイントラコーディングされたブロックは正方形の形状を有し、その辺の各々の長さは2の累乗である。このように、DCモードを使用してイントラ予測子を生成するのに、除算演算を必要としない。VVCにおいて、ブロックは、一般的な場合、ブロックごとに除算演算を使用することが必要な長方形を有することがある。DC予測のための除算演算を回避するために、長辺のみを使用して非正方形のブロックの平均を計算する。図2は、67個のイントラ予測モードの例を示す。
2.4. インター予測
各インター予測CUに対し、動きベクトル、参照ピクチャインデックス、および参照ピクチャリスト使用インデックスで構成される動きパラメータ、並びにVVCの新しいコーディング特徴に必要な追加情報が、インター予測サンプル生成に使用される。動きパラメータは、明示的または暗示的に信号通知されてもよい。CUがスキップモードでコーディングされる場合、CUは1つのPUに関連付けられ、有意な残差係数、コーディングされた動きベクトルデルタ、または参照ピクチャインデックスを有さない。マージモードが規定され、これにより、空間的および時間的候補、並びにVVCに導入された追加のスケジュールを含む、現在のCUのための動きパラメータを、近傍のCUから取得する。マージモードは、スキップモードのためだけでなく、任意のインター予測されたCUに適用することができる。マージモードの代替案は、動きパラメータを明確に送信することであり、動きベクトル、各参照ピクチャリストおよび参照ピクチャリスト使用フラグに対応する参照ピクチャインデックス、並びに他の必要な情報が、CUごとに明確に信号通知される。
2.5. IBC(Intra Block Copy)
IBC(Intra Block Copy)は、SCCのHEVC拡張に採用されているツールである。これにより、スクリーンコンテンツマテリアルのコーディング効率が有意に向上することが知られている。IBCモードはブロックレベルコーディングモードとして実装されるので、BM(Block Matching)が、エンコーダにおいて実行され、CUごとに最適なブロックベクトル(または動きベクトル)を見出す。ここで、ブロックベクトルは、現在のブロックから、現在のピクチャの内部で既に再構成された参照ブロックへの変位を示すために使用される。IBCコーディングされたCUの輝度ブロックベクトルは、整数精度である。彩度ブロックベクトルは、整数精度にも丸められる。AMVRと組み合わせた場合、IBCモードは、1画素と4画素の動きベクトル精度を切り替えることができる。IBCコーディングされたCUは、イントラ予測モードまたはインター予測モード以外の第3の予測モードとして扱われる。IBCモードは、幅および高さの両方が64輝度サンプル以下のCUに適用可能である。
エンコーダ側では、IBCのためにハッシュベースの動き推定が実行される。エンコーダは、16個の輝度サンプル以下の幅または高さを有するブロックに対してRDチェックを行う。非マージモードの場合、まず、ハッシュベースの検索を使用してブロックベクトル検索が実行される。ハッシュ検索が有効な候補を返さないなら、ブロックマッチングベースの局所検索が実行される。
ハッシュベースの検索において、現在のブロックと参照ブロックとのハッシュキーマッチング(32ビットCRC)は、全ての許容されるブロックサイズに拡大される。現在のピクチャにおけるすべての位置のためのハッシュキーの計算は、4×4のサブブロックに基づく。現在のブロックのサイズがより大きい場合、すべての4×4のサブブロックのすべてのハッシュキーが対応する参照位置のハッシュキーに合致する場合、ハッシュキーは参照ブロックのそれに合致すると決定される。複数の参照ブロックのハッシュキーが現在のブロックのハッシュキーに合致すると分かった場合、合致した各参照ブロックのブロックベクトルコストを計算し、最小限のコストを有するものを選択する。ブロックマッチング検索において、検索範囲は前のCTUおよび現在のCTUの両方をカバーするように設定される。CUレベルにおいて、IBCモードはフラグで信号通知され、IBC AMVPモードまたはIBCスキップ/マージモードとして以下のように信号通知され得る。
-IBCスキップ/マージモード:マージ候補インデックスを使用して、近傍の候補IBCコーディングされたブロックからのリストにおいて、どのブロックベクトルを使用して現在のブロックを予測するかを示す。マージリストは、空間候補、HMVP候補、およびペアワイズ候補からなる。
-IBC AMVPモード:ブロックベクトル差を動きベクトル差と同様にコーディングする。ブロックベクトル予測方法は、2つの候補を予測子として使用し、1つは左の近傍からのものであり、1つは上の近傍のものである(IBCコーディングされている場合)。いずれかの近傍が利用可能でない場合、デフォルトのブロックベクトルが予測子として使用される。ブロックベクトル予測子インデックスを示すように、フラグが信号通知される。
2.6. パレットモード
パレットモード信号通知の場合、パレットモードはコーディングユニットに対する予測モードとしてコーディングされ、すなわち、コーディングユニットに対する予測モードは、MODE_INTRA、MODE_INTER、MODE_IBC、MODE_PLTであってもよい。パレットモードが利用される場合、CUにおける画素値は、代表的な色値の小さなセットによって表される。セットをパレットと呼ぶ。パレットの色に近い値を有する画素の場合、パレットインデックスが信号通知される。パレットの外側の値を有する画素に対して、画素はエスケープシンボルで表され、量子化された画素値は直接信号通知される。
パレット符号化されたブロックを復号するために、デコーダは、パレットの色およびインデックスを復号化する必要がある。パレットの色はパレットテーブルで記述され、パレットテーブルコーディングツールで符号化される。現在のCUにエスケープシンボルが存在するかどうかを示すために、CUごとにエスケープフラグが信号通知される。エスケープシンボルが存在する場合、パレットテーブルを1つだけ増やし、最後のインデックスをエスケープモードに割り当てる。CUにおけるすべての画素のパレットインデックスは、パレットインデックスマップを形成し、パレットインデックスマップコーディングツールによって符号化される。
パレットテーブルのコーディングのために、パレット予測子が維持される。予測子は、各スライスの最初に初期化され、ここで予測子は0にリセットされる。パレット予測子のエントリごとに、再利用フラグが信号通知され、現在のパレットの一部であるかどうかが示される。再利用フラグは、ゼロのランレングスコーディングを使用して送信される。この後、新しいパレットエントリの数は、次数0の指数ゴロムコードを使用して通知される。最後に、新しいパレットエントリのためのコンポーネント値が信号通知される。現在のCUを符号化した後、現在のパレットを使用してパレット予測子を更新し、許容される最大サイズに達する(パレットスタッフィング)まで、現在のパレットにおいて再使用されていない前のパレット予測子からのエントリを新しいパレット予測子の末端に追加する。
パレットインデックスマップをコーディングするために、インデックスは、図3に示すように、横方向および縦方向の横断走査を使用してコーディングされる。palette_transpose_flagを使用して、ビットストリームにおける走査順序を明確に信号通知する。
図3は、水平方向および垂直方向の横断走査の例を示す。
パレットインデックスは、2つのメインパレットサンプルモード(「INDEX」および「COPY_ABOVE」)を使用してコーディングされる。モードは、水平走査が使用される場合に最上行を除いたフラグを使用し、垂直走査が使用される場合または前のモードが「COPY_ABOVE」であった場合に第1の列を除いたフラグを使用して信号通知される。「COPY_ABOVE」モードにおいて、上の行のサンプルのパレットインデックスがコピーされる。「INDEX」モードにおいて、パレットインデックスは明確に信号通知される。「INDEX」モードおよび「COPY_ABOVE」モードの両方の場合、同じモードを使用してコーディングされる画素の数を規定する実行値が信号通知される。
インデックスマップの符号化順序は、以下の通りである。まず、CUのためのインデックス値の数が信号通知される。これに続いて、トランケーテッドバイナリコーディング(truncated binary coding)を使用して、CU全体の実際のインデックス値を信号通知する。バイパスモードでは、インデックスの数およびインデックス値の両方がコーディングされる。これにより、インデックス関連バイパスビンがグループ化される。次に、パレットモード(INDEXまたはCOPY_ABOVE)および実行がインターリーブ方式で信号通知される。最後に、CU全体のためのエスケープサンプルに対応するコンポーネントエスケープ値がグループ化され、バイパスモードでコーディングされる。インデックス値を信号通知した後、追加の構文要素last_run_type_flagが信号通知される。この構文要素は、インデックスの数と連動して、ブロックにおける最後の実行に対応する実行値を信号通知する必要をなくす。
VTMにおいて、輝度および彩度のためのコーディングユニットの分割を分離するIスライスのためにデュアルツリーが有効化される。そこで、本提案では、輝度(Y成分)と彩度(Cb、Cr成分)とに対して別々にパレットが適用される。デュアルツリーが無効になっている場合、HEVCパレットと同様に、Y、Cb、Cr成分に対してパレットが共同で適用される。
2.7. クロスコンポーネント線形モデル予測
VVCにおいてCCLM(Cross-Component Linear Model)予測モードが使用され、この場合、線形モデルを使用することによって、同じCUの再構成された輝度サンプルに基づいて、以下のように彩度サンプルを予測する。
Figure 2023521502000003
ここで、pred(i,j)は、1つのCUにおける予測彩度サンプルを表し、rec(i,j)は、同じCUのダウンサンプリングされ再構成された輝度サンプルを表す。
図4は、左および上のサンプルの位置およびLMモードに関与する現在のブロックのサンプルを例示する。
図4は、α、βの導出に使用したサンプルの位置の例を示す。
上側テンプレートおよび左側テンプレートを使用して、LMモードにおいて線形モデル係数を一緒に計算できる他に、LM_AおよびLM_Lモードと呼ばれる他の2つのLMモードにおいても代替して使用できる。LM_Aモードにおいて、上のテンプレートのみを使用して線形モデル係数を算出する。より多くのサンプルを得るために、上のテンプレートを(W+H)に拡張する。LM_Lモードにおいて、左側のテンプレートのみを使用して線形モデル係数を計算する。より多くのサンプルを得るために、左側のテンプレートを(H+W)に拡張する。非正方形ブロックの場合、上のテンプレートをW+Wに拡張し、左テンプレートをH+Hに拡張する。
CCLMパラメータ(αおよびβ)は、せいぜい4つの近傍の彩度サンプルおよびそれらに対応するダウンサンプリングした輝度サンプルを用いて導出される。現在の彩度ブロック寸法をW×Hとすると、W’およびH’は以下のように設定される。
-LMモードが適用される場合、W’=W、H’=H
-LM-Aモードが適用される場合、W’=W+H
-LM-Lモードが適用される場合、H’=H+W
上の近傍位置はS[0,-1]…S[W’-1,-1]と表され、左の近傍位置はS[-1,0]…S[-1,H’-1]と表される。次に、4つのサンプルを以下のように選択する。
-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]である。
選択された位置における4つの近傍の輝度サンプルがダウンサンプリングされ、4回比較されて、2つのより小さな値x およびx 、および2つのより大きな値x およびx を見出す。それらの対応する彩度サンプル値は、y ,y ,y ,y と表される。そして、x,x,y,yを以下のように導出する。
Figure 2023521502000004
最終的に、線形モデルパラメータα、βは、以下の式に従って求められる。
Figure 2023521502000005
Figure 2023521502000006
パラメータを計算するための除算演算は、ルックアップテーブルを使用して実装される。テーブルを記憶するのに必要なメモリを減らすために、diff値(最大値と最小値の差)およびパラメータαは指数表記で表される。例えば、diffは、4ビットの有意部分と指数とで近似される。その結果、1/diffのテーブルは、以下のようにして、16個の仮数の値に対して16個の要素に変換される。
DivTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (2-5)
これは、計算の複雑性を低減すると共に、必要な表を記憶するために必要なメモリサイズを低減する利点を有する。
4:2:0映像シーケンスの彩度サンプル位置をマッチングするために、2つのタイプのダウンサンプリングフィルタを輝度サンプルに適用して、水平方向および垂直方向の両方向に2:1のダウンサンプリング比を達成する。ダウンサンプリングフィルタの選択は、SPSレベルフラグによって規定される。2つのダウンスマッピングフィルタは、それぞれ「タイプ0」および「タイプ2」のコンテンツに対応する。
Figure 2023521502000007
Figure 2023521502000008
なお、上の参照ラインがCTU境界にある場合、ダウンサンプリングされた輝度サンプルを生成するために、1つの輝度ライン(イントラ予測における一般的なラインバッファ)のみが使用される。
このパラメータ計算は、復号処理の一部として行われ、エンコーダ検索動作として行われるだけではない。その結果、α値およびβ値をデコーダに伝達するための構文は使用されない。
彩度イントラモードコーディングの場合、合計8つのイントラモードが、彩度イントラモードコーディングに対して許可される。これらのモードには、5つの伝統的なイントラモードと6つのクロスコンポーネント線形モデルモードが含まれる(LM、LM_AおよびLM_L)。彩度モード信号通知および導出処理を表2-2に示す。彩度モードコーディングは、対応する輝度ブロックのイントラ予測モードに直接依存する。Iスライスにおいて、輝度成分と彩度成分に対するブロック分割構造の分離が有効化されているため、1つの彩度ブロックは複数の輝度ブロックに対応してもよい。よって、彩度DMモードの場合、現在の彩度ブロックの中心位置を含む、対応する輝度ブロックのイントラ予測モードは直接継承される。
表2-2 cclm_が有効な場合の輝度モードからの彩度予測モードの導出
Figure 2023521502000009
JVET-Q2001-vEにおける、INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
8.4.5.2.13
この処理への入力は以下の通りである。
-イントラ予測モード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)
変数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つだけ増加される。
上および右上のnumSampTにおける利用可能な近傍彩度サンプルの数および左および左下のnumSampLにおける利用可能な近傍彩度サンプルの数は、以下のように導出される。
-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は、以下のように導出される。
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)におけるデブロッキングフィルタ処理前の再構成輝度サンプルに等しく設定される。
3. x=0..nTbW-1、y=0..nTbH-1とした場合のダウンサンプリングして配置した輝度サンプルpDsY[x][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)
4. numSampLが0より大きい場合、選択された近傍の左の彩度サンプルpSelC[idx]は、idx=0..cntL-1であるp[-1][pickPosL[idx]]に等しく設定され、選択されたダウンサンプリングされたidx=0..cntL-1である近傍の左の輝度サンプルpSelDsY[idx]は、以下のように導出される。
-変数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)
5. numSampTが0よりも大きい場合、選択された近傍の最上の彩度サンプルpSelC[idx]は、idx=cntL..cntL+cntT-1とした場合のp[pickPost[idx-cntL][-1]に等しく設定され、ダウンサンプリングした近傍の最上の輝度サンプルpSelDsY[idx]は、idx=0..cntL+cntT-1として、以下のように規定される。
-変数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)
6. cntT+cntLが0に等しくない場合、変数minY、maxY、minC、およびmaxCは以下のように導出される。
-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)
7. 変数a、b、およびkは、以下のように導出される。
-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)
8. x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-このプロセスでは、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
2.8. BDPCM(Block Differential Pulse-Code Modulation)コーディング
JVET-M0057において、BDPCMが提案されている。現在の画素を予測するために左(A)(または上(B))の画素を使用する水平(または垂直)予測子の形状により、ブロックを最もスループット効率よく処理する方法は、1つの列(またはライン)のすべての画素を並列に処理し、これらの列(またはライン)を順次処理することである。スループットを向上させるために、我々は、以下の処理を導入する。すなわち、このブロックにおいて選択された予測子が垂直である場合、幅4のブロックを水平フロンティアで二分割し、このブロックにおいて選択された予測子が水平である場合、高さ4のブロックを垂直フロンティアで二分割する。
ブロックを分割する場合、1つの領域からのサンプルに対して別の領域からの画素を使用して予測を計算することは許可されず、このような状況が発生した場合、予測画素を予測方向の参照画素に置き換える。これについては、垂直方向に予測された4×8のブロック内の現在の画素Xの異なる位置について、図5に示されている。
図5は、4×8のサンプルのブロックを2つの独立した復号可能な領域に分割する例を示す。
この特性のおかげで、図6に示すように、4×4のブロックを2サイクルで処理することができ、4×8または8×4のブロックを4サイクルで処理してもよい。
図6は、垂直方向予測子を有する4×Nのブロックに対してスループットを最大にするように、画素の行を処理する例示的な順序を示す。
表2-3に、ブロックのサイズに依存して、ブロックを処理するのに必要なサイクル数をまとめる。なお、両寸法がともに8以上である任意のブロックに対して、1サイクル当たり8画素以上の処理できるということは自明である。
表2-3 サイズ4×N、N×4のブロックのためのワーストケーススループット
Figure 2023521502000010
2.9. 量子化残差ドメインBDPCM
JVET-N0413において、量子化残差ドメインBDPCM(以下、RBDPCMと称する)が提案される。イントラ予測は、イントラ予測と同様に、予測方向(水平または垂直予測)にサンプルコピーすることで、ブロック全体で予測する。残差が量子化され、量子化された残差とその予測子(水平または垂直)量子化値との間のデルタがコーディングされる。
サイズM(行)×N(列)のブロックについて、ri,j、0≦i≦M-1、0≦j≦N-1を、上または左ブロックの境界サンプルからのフィルタリングされていないサンプルを使用して、水平方向(予測ブロックに対して左隣の画素値を1ラインずつコピーする)または垂直方向(予測ブロックにおける各ラインに上隣のラインをコピーする)にイントラ予測を行った後の予測残差とする。Q(r)、0≦i≦M-1、0≦j≦N-1は、残差rの量子化バージョンを表し、この場合、残差は、元のブロックと予測ブロック値との間の差である。次に、ブロックDPCMが量子化された残差サンプルに適用され、その結果、要素rを有する修正されたM×Nの配列Rが得られる。垂直BDPCMが信号通知されると、以下のようになる。
Figure 2023521502000011
水平予測の場合、類似した規則が適用され、残差量子化されたサンプルは、以下の式によって得られる。
Figure 2023521502000012
残差量子化されたサンプルr i,jはデコーダに送られる。
デコーダ側では、上記の計算を逆にして、Q(ri,j)、0≦i≦M-1、0≦j≦N-1を生成する。垂直予測の場合、
Figure 2023521502000013
水平方向の場合、
Figure 2023521502000014
逆量子化された残差Q-1(Q(ri,j))をイントラブロック予測値に加算し、再構成されたサンプル値を生成する。
このスキームの主な利点は、逆方向のDPCMを、係数の構文解析中にオンザフライで行うことができ、係数の構文解析中に予測子を追加するだけで済むこと、または、構文解析後に行うことができることである。
量子化された残差ドメインBDPCMにおいては、常に変換スキップが使用される。
2.10. VVCにおけるMTS(Multiple Transform Set)
VTMにおいて、サイズが64×64までの大きなブロックサイズの変換が有効化され、これは、主に高解像度映像、例えば、1080pおよび4Kシーケンスに有用である。サイズ(幅または高さ、または幅と高さの両方)が64である変換ブロックに対して、高周波数変換係数をゼロにし、より低い周波数係数のみを保持する。例えば、M×N変換ブロックの場合、ブロック幅をMとし、ブロック高さをNとすると、Mが64である場合、左32列の変換係数のみが保持される。同様に、Nが64である場合、変換係数の上位32行のみが保持される。大きなブロックに対して変換スキップモードを使用する場合、値をゼロ化することなくブロック全体を使用する。VTMはまた、SPSにおける設定可能な最大変換サイズをサポートし、そのため、エンコーダは、特定の実装の必要性に基づいて、最大16長、32長、または64長の変換サイズを選択する柔軟性を有する。
HEVCで使用されてきたDCT-IIに加え、インターコーディングされたブロックおよびイントラコーディングされたブロックの両方の残差コーディングのために、MTS(Multiple Transform Selection)スキームが使用される。これは、DCT8/DST7から選択された複数の変換を使用する。新しく導入された変換行列は、DST-VIIおよびDCT-VIIIである。選択されたDST/DCTの基本関数を以下の表2-4に示す。
表2-4 Nポイント入力のためのDCT-II/VIII、DSTVIIの変換ベースの関数
Figure 2023521502000015
変換行列の直交性を維持するために、変換行列はHEVCにおける変換行列よりも正確に量子化される。変換係数の中間値を16ビットの範囲内に維持するために、水平変換後および垂直変換後、すべての係数は10ビットを有することになる。
MTSスキームを制御するために、SPSレベルにおいて、イントラおよびインターに対してそれぞれ別個の有効化フラグを規定する。SPSにおいてMTSが有効化されると、MTSが適用されているかどうかを示すように、CUレベルフラグが信号通知される。ここで、MTSは輝度に対してのみ適用される。MTS CUレベルフラグは、以下の条件が満たされる場合に信号通知される。
-幅および高さが共に32以下、
-CBFフラグが1に等しい。
MTS CUフラグがゼロに等しい場合、DCT2が両方向に適用される。しかしながら、MTS CUフラグが1に等しい場合、2つの他のフラグが追加的に信号通知され、それぞれ水平方向および垂直方向の変換タイプを示す。表2-5に示すように、マッピングテーブルを変換し、信号通知する。イントラモードおよびブロック形状の依存性を除去することで、ISPおよび暗示的MTSのための統一した変換選択を使用する。現在のブロックがISPモードである場合、または現在のブロックがイントラブロックであり、イントラおよびインターの明示的MTSが共にオンである場合、水平および垂直変換コアの両方にDST7のみが使用される。行列精度を変換する場合、8ビットのプライマリ変換コアを使用する。そのため、HEVCで使用されるすべての変換コアは、4ポイントのDCT-2およびDST-7、8ポイント、16ポイント、32ポイントのDCT-2など、同じに保たれる。また、64ポイントのDCT-2、4ポイントのDCT-8、8ポイント、16ポイント、32ポイントのDST-7およびDCT-8などの他の変換コアは、8ビットのプライマリ変換コアを使用する。
表2-5 マッピングテーブルの変換、および信号通知
Figure 2023521502000016
大きなサイズのDST-7およびDCT-8の複雑性を低減するために、32に等しいサイズ(幅または高さ、または幅と高さの両方)であるDST-7およびDCT-8ブロックに対して、高周波数変換係数をゼロ化する。16×16のより低い周波数領域内の係数のみが保持される。
HEVCにおけるように、ブロックの残差は、変換スキップモードで符号化されてもよい。構文コーディングの冗長性を回避するために、CUレベルMTS_CU_flagがゼロに等しくない場合、変換スキップフラグは信号通知されない。変換スキップのブロックサイズの制限は、JEM4におけるMTSの場合と同じであり、ブロックの幅および高さが両方とも32以下である場合、変換スキップがCUに適用可能であることを示す。なお、現在のCUのためにLFNSTまたはMIPがアクティブ化される場合、暗示的MTS変換がDCT2に設定される。また、MTSがインターコーディングされたブロックに対して有効化される場合、暗示的MTSは依然として有効化され得る。
2.11. LFNST(Low-Frequency Non-Separable Transform)
VVCにおいて、図7に示すように、順方向プライマリ変換と量子化との間(エンコーダ側)、および逆量子化と逆方向プライマリ変換(デコーダ側)との間に、縮小セカンダリ変換として知られるLFNST(Low-Frequency Non-Separable Transform)が適用される。LFNSTにおいて、ブロックサイズに従って、4×4の非可分変換または8×8の非可分変換が適用される。例えば、4×4のLFNSTは、小さなブロック(即ち、min(幅、高さ)<8)に適用され、8×8のLFNSTは、より大きなブロック(即ち、min(幅、高さ)>4)に適用される。
図7は、LFNST(Low-Frequency Non-Separable Transform)処理の例を示す。
LFNSTで使用されている非可分変換の応用について、入力を例として用いて以下に説明する。4x4のLFNSTを適用するには、4x4の入力ブロックX
Figure 2023521502000017
が、まず、ベクトルXとして表現される。
Figure 2023521502000018
非可分変換は、
Figure 2023521502000019
として計算され、ここで、Fは、変換係数ベクトルを示し、Tは、16×16変換行列である。16×1の係数ベクトルが、その後、そのブロック(水平、垂直、斜め)の走査順を使用して4×4のブロックに再編成される。より小さいインデックスを有する係数は、4×4の係数ブロックにおいて、走査インデックスがより小さくなるように配置される。
2.11.1. 縮小非可分変換
LFNST(Low-Frequency Non-Separatable Transform)は、非可分変換を適用するために、直接行列乗算法に基づいており、それにより、複数回の繰り返しなしに単一パスで実装される。しかしながら、計算の複雑性および変換係数を記憶するメモリ空間を最小限に抑えるために、非可分変換行列の寸法を小さくする必要がある。従って、LFNSTにおいては、縮小非可分変換(またはRST)方法が使用される。縮小非可分変換の主な考え方は、N(Nは、8×8のNSSTに対して通常64に等しい)次元ベクトルを、異なる空間におけるR次元ベクトルにマッピングすることであり、N/R(R<N)が縮小率である。よって、N×N行列の代わりに、RST行列は、以下のようなR×N行列となる。
Figure 2023521502000020
変換のRの行は、N次元空間のRの基底であるとする。RTのための逆変換行列は、その順方向変換の転置である。8×8のLFNSTの場合、4倍の縮小率を適用し、従来の8×8の非可分変換行列サイズである64×64の直接行列を16×48の直接行列に縮小する。すなわち、デコーダ側において、48×16の逆RST行列を使用して、8×8の左上の領域にコア(一次)変換係数を生成する。同じ変換セット構成を有する16×64の行列の代わりに16×48の行列を適用する場合、各々の行列は、右下の4×4のブロックを除く左上の8×8のブロックにおける3つの4×4のブロックから48の入力データを取り込む。縮小された次元によって、すべてのLFNST行列を記憶するためのメモリ使用量を10KBから妥当な性能低下をもたらす8KBに縮小する。複雑性を低減するために、LFNSTは、第1の係数サブグループの外側のすべての係数が非有意な場合にのみ適用可能であるように制限される。従って、LFNSTが適用される場合、すべての最初のみの変換係数はゼロでなければならない。これにより、前回の有意位置におけるLFNSTインデックスの信号通知の調整を可能にし、従って、現在のLFNST設計における余分な係数スキャンを回避し、このことは、特定の位置においてだけ有意係数をチェックするために必要とされる。(1画素当たりの乗算に関して)LFNSTを取り扱う最悪のケースは、4×4および8×8のブロックに対する非可分変換を、それぞれ8×16および8×48の変換に限定する。そのような場合、LFNSTが適用される場合、前回の有意走査位置は、8未満でなければならず、他のサイズに対しては16未満である。4×N、N×4、およびN>8の形状を有するブロックに対して、提案された制限は、LFNSTが1回だけ適用されることと、左上の4×4の領域のみに適用されることを意味する。LFNSTが適用される場合、すべての最初のみの係数がゼロであるため、このような場合は、プライマリ変換に必要な演算の数が低減される。エンコーダの観点から見ると、LFNST変換を試験する場合、係数の量子化は非常に簡単になる。最初の16個の係数に対して(スキャン順に)、ひずみ率が最適化された量子化を最大限に実行しなければならず、残りの係数は強制的にゼロになるようにする。
2.11.2. LFNST変換選択
全体で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回、ビットストリームで信号通知される。
表2-6 変換選択テーブル
Figure 2023521502000021
2.11.3. LFNSTインデックスの信号通知および他のツールとの相互作用
LFNSTは、第1の係数サブグループの外側のすべての係数が非有意である場合にのみ適用可能であるように制限されるため、LFNSTインデックスコーディングは、最後の有意係数の位置に依存する。また、LFNSTインデックスはコンテキストコーディングされるが、イントラ予測モードに依存せず、第1のビンのみがコンテキストコーディングされる。さらに、LFNSTは、イントラスライスおよびインタースライスの両方において、且つ輝度および彩度の両方に対して適用される。デュアルツリーが有効化される場合、輝度および彩度のためのLFNSTインデックスは、別個に信号通知される。インタースライス(デュアルツリーが無効化される)の場合、単一のLFNSTインデックスが信号通知され、輝度および彩度の両方に使用される。
ISPモードが選択された場合、すべての実行可能な分割ブロックにRSTが適用されたとしても、性能の向上は限界であったため、LFNSTは無効化され、RSTインデックスは信号通知されない。さらに、ISP予測された残差のためにRSTを無効化することにより、符号化の複雑性を低減してもよい。MIPモードが選択されている場合、LFNSTも無効化され、インデックスは信号通知されない。
既存の最大変換サイズ制限(64×64)のために、64×64より大きな、大きいCUが暗黙のうちに分割される(TUタイリング)ことを考慮すると、LFNSTインデックス検索は、特定の数のデコードパイプラインのステージのために、データバッファリングを4倍に増加させ得る。従って、LFNSTが許容される最大サイズは、64×64に制限される。なお、LFNSTは、DCT2のみで有効化される。
2.12. 彩度に対する変換スキップ
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に等しいと推測される。
2.13. 彩度用BDPCM
彩度TSサポートに加えて、BDPCMが彩度成分に加えられる。sps_bdpcm_enable_flagが1である場合、さらなる構文要素sps_bdpcm_chroma_enable_flagがSPSに追加される。フラグは、表2-7に示すように、以下のような挙動を示す。
表2-7 輝度および彩度BDPCMに対するspsフラグ
Figure 2023521502000022
BDPCMが輝度のみに利用可能である場合、現在の挙動は不変である。BDPCMが彩度にも利用可能である場合、各彩度ブロックに対しbdpcm_chroma_flagが送信される。これは、彩度ブロックにおいてBDPCMが使用されるかどうかを示す。オンの場合、BDPCMは両方の彩度成分に使用され、追加のbdpcm_dir_chromaフラグがコーディングされ、両方の彩度成分に使用される予測方向を示す。
どちらのブロックも通常、ブロッキング・アーチファクトの原因となる変換ステージを使用しないので、デブロッキングフィルタは、2つのBlock-DPCMブロックの間の境界で非アクティブ化される。この非アクティブ化は、輝度および彩度成分に対して独立して行われる。
3. 開示される解決策が解決しようとする技術課題の例
CCLMおよびTSにおける線形パラメータの導出の現在の設計は、以下の問題を有する。
1. 非4:4:4カラーフォーマットの場合、CCLMにおける線形パラメータの導出は、近傍の彩度サンプルおよびダウンサンプリングして配置した近傍の輝度サンプルを含む。図8に示すように、現在のVVCにおいて、最も近いラインがCTU境界にない場合、4:2:2映像用の現在のブロックより上の第2のラインを使用して、ダウンサンプリングして配置した近傍の最上の輝度サンプルを導出する。しかしながら、4:2:2映像の場合、垂直解像度は変化しない。したがって、ダウンサンプリングして配置した近傍の最上の輝度サンプルと、近傍の彩度サンプルとの間には、位相シフトが存在する。
図8は、4:2:2映像のためのCCLMパラメータの導出に使用される、近傍の彩度サンプルおよびダウンサンプリングして配置した近傍の輝度サンプルの例を示す。
2. 現在のVVCにおいて、輝度変換スキップフラグの信号通知および彩度変換スキップフラグの信号通知のための条件チェックにおいて、同じ最大ブロックサイズが使用される。このような設計は、カラーフォーマットを考慮しておらず、望ましくない。
a.輝度BDPCMフラグの信号通知および彩度BDPCMフラグの信号通知についても、同様の問題が存在し、同じ最大ブロックサイズは条件チェックに用いられる。
3. JVET-Q2001-vEに規定されるVVCにおいて、左の近傍のサンプルが、上の近傍のサンプルの前に、選択された近傍のサンプルリストに入れられる。しかし、左の近傍サンプルの前に上の近傍サンプルを置くことが、よりよい場合がある。
4. JVET-Q2001-vEに規定されるVVCにおいて、2つの行の近傍の輝度サンプルが割り当てられる。しかし、sps_chroma_vertical_collocated_flagが1に等しい場合、3つの行の近傍輝度サンプルが必要である。
5. JVET-Q2001-vEに規定されるようなVVCにおいて、左の近傍の輝度サンプルが利用可能でない場合、現在のブロックの最も左のサンプルを使用して左の近傍輝度サンプルをパディングし、最上の近傍輝度サンプルを使用して左上の近傍輝度サンプルをパディングする。しかしながら、最上の近傍輝度サンプルは導出されていない。例えば、JVET-Q2001-vEに記載されている。
“-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)におけるデブロッキングフィルタ処理前の再構成輝度サンプルに等しく設定される。”
6. JVET-Q2001-vEに規定されるVVCにおいて、最上(または/および左)の近傍輝度サンプルは、利用可能でない場合、誤って導出される。例えば、JVET-Q2001-vEにおいて、「availTがFALSEに等しい場合、x=-1..SubWidthC*numSampT-1、y=-1..-2である近傍の最上の輝度サンプルpY[x][y]は、輝度サンプルpY[x][0]と同じに設定する」が、最上の近傍輝度サンプルが使用不可の場合に、最上の近傍の輝度サンプルを導出するために使用される。しかしながら、最上の近傍の輝度サンプルが利用可能でない場合、numSampTは0に等しく設定されている。
7. 現在のVVCにおいて、左上の近傍輝度サンプルは、最上および左の近傍輝度サンプルが利用可能である場合、CCLMパラメータの導出に使用されるが、左上の近傍輝度サンプルは、異なるスライス内にある場合、例えば、ラスタスライスの場合、利用可能ではない。
4. 実施形態および技術のリスト化
以下に列記されるものは、一般的な概念を説明するための例であると考えられるべきである。これら項目は狭い意味で解釈されるべきではない。さらに、これらの項目は、任意の方法で組み合わせることができる。
本文書において、用語「CCLM」は、現在の色成分に対するサンプル/残差を予測するため、または現在の色成分におけるサンプルの再構成を導出するために、クロス色成分情報を利用するコーディングツールを表す。本発明は、VVCに記載されたCCLM技術に限定されない。
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フォーマットの画像/映像にのみ適用されてもよい。
b. 一例において、現在の彩度ブロックが最上のCTU境界にない場合、第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もしくは他のモード)。
2. 変換スキップコーディングブロックの最大ブロックサイズは、色成分に依存してもよい。ここで、輝度および彩度のための変換スキップコーディングされたブロックの最大ブロックサイズを、それぞれMaxTsSizeYおよびMaxTsSizeCとする。
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)に等しく設定される。
3. 変換コーディングされたブロックのための最大許容ブロックサイズの幅および高さは、異なるように定義されてもよい。
a. 一例において、最大許容ブロックサイズの幅および高さは、別個に信号通知されてもよい。
b. 一例において、彩度変換コーディングされたブロックに対する最大許容ブロックサイズの幅および高さは、それぞれMaxTsSizeWCおよびMaxTsSizeHCと表されてもよい。MaxTsSizeWCは、MaxTsSizeY>>SubWidthCに等しく設定されてもよく、MaxTsSizeHCは、MaxTsSizeY>>SubHeightCに等しく設定されてもよい。
i. 一例において、MaxTsSizeYは、黒丸2で定義されているものである。
4. 彩度ブロックに対して変換スキップフラグを信号通知するかどうかは(例えば、transform_skip_flag[x0][y0][1]および/またはtransform_skip_flag[x0][y0][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)のコーディングに適用可能であってよい。
5. 2つの彩度色成分のために2つのTSフラグをコーディングする代わりに、1つの構文を使用して2つの彩度色成分のためのTSの使用を示すことが提案される。
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/スライスヘッダ/タイルグループヘッダにおいて、シーケンスレベル/ピクチャレベル/スライスレベル/タイルグループレベルで信号通知されてもよい。
7. 上述した開示された方法を適用するかどうか、および/またはどのように適用するかは、カラーフォーマット、シングル/デュアルツリー分割等のコーディングされた情報に依存してもよい。
CCLMに関する追加要求
8. CCLMパラメータ導出処理では、上の近傍サンプルを左の近傍サンプルより先に選択された近傍サンプルリストに入れ、選択された近傍サンプルリストを用いてCCLMパラメータを導出する(例えば、より大きい2つの値が平均化され、より小さい2つの値が平均され、2つの平均値を用いて線形パラメータを導出する4点導出法などを用いる)。一例を実施形態5で示す。
9. CCLMパラメータ導出処理において、pSelDsY[idx]で示されるダウンサンプリングされた上の近傍の輝度サンプルを得る場合、インデックス値idxはcntLからcntL+cntT-1の範囲である必要があり、cntLとcntTはそれぞれCCLMパラメータ導出に用いられる左の近傍彩度サンプル、および上の近傍彩度サンプル数である。
a. 一例を実施形態5で示す。
b. あるいは、さらに、左の近傍のサンプルを、上の近傍のサンプルの前に、選択された近傍のサンプルリストに入れる。
10. CCLMパラメータ導出処理において、上の近傍輝度サンプルの3つの行を割り当てる。一例を実施形態6で示す。
11. CCLMパラメータ導出処理において、左上の近傍輝度サンプルのT行およびT列を割り当てる。
a. 一例において、T=2およびT=2である。一例を実施形態12で示す。
b. 一例において、T=3およびT=3である。
12. CCLMパラメータ導出処理において、割り当てられる上の輝度の近傍サンプルの行数は、JVET-Q2001-vEにおけるsps_chroma_vertical_collocated_flagのように、対応する輝度サンプル位置に対して垂直方向にシフトしていない彩度サンプル位置か否かを示す変数または構文要素に依存してもよい。
a. 一例において、sps_chroma_vertical_collocated_flagが1に等しい場合、上の近傍輝度サンプルの3つの行が割り当てられる。そうでない場合、上の近傍輝度サンプルの2つの行が割り当てられる。一例を実施形態7で示す。
13. 上記例において、近傍輝度サンプルは、ダウンサンプリング前またはダウンサンプリング後のものであってもよい。
14. CCLMパラメータ導出処理において、左上の近傍サンプルをパディングするか否か、および/または、どのようにパディングするかは、左の近傍サンプルおよび/または上の近傍サンプルの利用可能性の代わりに、左上の近傍サンプルの少なくとも1つの利用可能性に依存してもよい。
a. 一例において、左上の近傍サンプルの少なくとも1つの利用可能性は、左上の近傍サンプルの少なくとも1つと現在のブロック内のサンプルが同じスライス内にあるか、異なるスライス内にあるかに依存してもよい。
i. また、上のスライスは、矩形スライスであってもよいし、非矩形スライスであってもよい。
b. 一例において、左上の近傍サンプルと現在のブロックのサンプルの少なくとも1つが異なるスライスにある場合、左上の近傍サンプルがパディングされる。
c. 一例において、少なくとも1つの左上の近傍サンプルの可用性が偽である場合、左上の近傍サンプルがパディングされる。
15. CCLMパラメータ導出プロセスにおいて、左上の近傍輝度サンプルは、それらが「利用不可」である場合、使用されなくてもよい。
a. 一例において、近傍サンプルは、現在のピクチャ、または現在のサブピクチャ、または現在のタイル、または現在のスライス、または現在のブリック、または現在のCTU、または現在の処理ユニット、または他の任意の現在の映像ユニットの外にある場合、「利用不可」である。
i. 一例において、図13に示される非矩形スライスの場合、左上の近傍輝度サンプルは、現在のブロックとは異なるスライスにある「使用不可」である。
b. 一例において、CCLMのプロセスにおいて左上の近傍輝度サンプルを使用するか否かは、それらが現在のブロックと同じピクチャ/サブピクチャ/タイル/スライス/ブリック/CTU/処理ユニット/他の映像ユニット内にあるか否かに依存してもよい。
i. 一例において、左上の近傍輝度サンプルは、現在のブロックとは異なるラスタスライスにある場合、CCLMの処理において使用されなくてもよい。
1)一例を実施形態10で示す。
ii. 一例において、左上の近傍輝度サンプルは、現在のブロックと同じピクチャ/サブピクチャ/タイル/スライス/ブリック/CTU/処理ユニット/他の映像ユニットにあるにもかかわらず、CCLMのプロセスで使用しなくてもよい。
c. CCLMパラメータ導出プロセスにおいて、左上の近傍輝度サンプルが「利用不可」である場合、反復パディングを使用して左上の近傍輝度サンプルを生成してもよい。現在のブロックの左上のサンプル位置を(x,y)で表す。デブロッキングフィルタ処理前の再構成された輝度サンプルをpY[i][j]で表す。埋め込まれた左上の輝度サンプルをpD[m][n]で表し、m=x-1..x-M、n=y-1..y-Nで表し、MおよびNは、1などの整数である。
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である。
d. あるいは、左上の近傍輝度サンプルが「利用不可」である場合、それらは、予め定義された値に置き換えられてもよい。
i. 一例において、この予め定義された値は、一定の値(例えば、128)に等しくてもよい。
ii. 一例において、予め定義された値は、左および/または最上の近傍輝度サンプルを用いて導出されてもよい。
6)一例において、予め定義された値は、左および/または最上の近傍輝度サンプルの平均値に等しくてもよい。
iii. 一例において、予め定義された値は、サンプルのビット深さに依存してもよい。例えば、予め定義された値は、1<(BD-1)に等しくてもよく、ここで、BDは、サンプルのビット深さを表す。
e. あるいは、左上の近傍輝度サンプルが「利用可能」であっても、ブレット14.cにおける上記のパディング方法およびブレット14.dにおける予め定義された値を使用して、利用可能な左上の近傍輝度サンプルを置き換えてもよい。
i. 一例を実施形態11で示す。
f. 一例において、左上の近傍輝度サンプルの可用性をチェックするか否かは、左の近傍輝度サンプルが利用可能であるか否か、および/または上の近傍輝度サンプルが利用可能であるか否かに依存してもよい。
i. 一例において、左上の近傍輝度サンプルと上の近傍輝度サンプルとの両方が利用可能である場合にのみ、左上の近傍輝度サンプルの利用可能性をチェックする。一例を実施形態17に示す。
g. 一例において、左上の近傍輝度サンプルをどのように使用するかおよび/またはパディングするかは、左上および/または左および/または最上の近傍輝度サンプルの可用性に依存してよい。
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) 一例において、左上の近傍輝度サンプルは、上および左の近傍輝度サンプルを用いてパディングされてもよい。
h. 一例において、左上の近傍輝度サンプルの可用性をチェックするか否か、および/または左上の近傍輝度サンプルを使用するか否か、および/または左上の近傍輝度サンプルをパディングするか否かは、彩度カラーフォーマットに依存してもよい。
i. 一例において、4:4:4のカラーフォーマットが使用される場合、左上の近傍輝度サンプルの可用性をチェックする必要がなく、および/または左上の近傍輝度サンプルを使用する必要がなく、および/または左上の近傍輝度サンプルをパディングする必要がない。一例を実施形態20に示す。
i. 一例において、左上の近傍輝度サンプルをパディングするか否か、および/またはどのサンプルをパディングする必要があるかは、対応する輝度サンプル位置に対して垂直方向にシフトされていない彩度サンプル位置を示す変数または構文要素、例えば、JVET-Q2001-vEにおけるsps_chroma_vertical_collocated_flagに依存してもよい。
i. 一例において、sps_chroma_vertical_collocated_flagが1に等しい場合、左上の近傍サンプルにパディングを行う。そうでない場合、左上の近傍サンプルはパディングされない。一例を実施形態14に示す。
16. CCLMのプロセス中、最上(または/および左)近傍輝度サンプルが利用可能でない場合、現在のブロックの最上(または/および最左)のサンプルを使用して、最上(または/および左)近傍輝度サンプルを導出することが提案される。そして、左(および/または上)の利用可能な近傍輝度サンプルを使用して、左上の近傍サンプルを導出してもよい。
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である。
b. 一例において、左の近傍輝度サンプルが利用可能でない場合、現在のブロックの最左のサンプルおよび最上の近傍輝度サンプルを使用して、左および左上の近傍輝度サンプルを導出してもよい。
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で示す。
c. 一例において、黒丸13において導出された左上の近傍輝度サンプルは、最上(または/および左)近傍輝度サンプルのパディング処理中に使用されてもよい。
d. 一例において、最上(または左)の近傍輝度(または彩度)サンプルをパディングするか否か、および/またはどの近傍サンプルをパディングする必要があるかは、彩度カラーフォーマットに依存してもよい。
i. 一例において、4:4:4カラーフォーマットが使用される場合、最上(または/および左)の近傍輝度サンプルをパディングする必要がない。一例を実施形態21に示す。
e. 一例において、最上(または/および左)の近傍輝度サンプルをパディングするとき、左上の近傍輝度サンプルは、15における15.c.のような方法を用いてパディングされる。一例を実施形態22に示す。
17. CCLM予測プロセスにおいて、最上の近傍サンプル、左の近傍サンプル、および左上の近傍サンプルのパディングは、固定された順番に行われてもよい。近傍サンプルは、輝度サンプルまたは彩度サンプルであってもよい。
a. 例えば、順番は、最上の近傍サンプルのパディング、左の近傍のパディング、および左上の近傍サンプルのパディングであってもよい。
b. 例えば、順番は、左の近傍のパディング、最上の近傍サンプルのパディング、および左上の近傍サンプルのパディングであってもよい。
c. 例えば、順番は、左上の近傍のパディング、最上の近傍サンプルのパディング、および左の近傍サンプルのパディングであってもよい。
d. 例えば、順番は、左上の近傍のパディング、左の近傍サンプルのパディング、および最上の近傍サンプルのパディングであってもよい。
18. 4:2:2カラーフォーマット映像用のCCLMにおけるダウンサンプリングプロセスは、彩度サンプル位置が対応する輝度サンプル位置に対して垂直方向にシフトしているか否かを示す構文要素または変数(JVET-Q2001-vEにおけるsps_chroma_vertical_collocated_flag等)から切り離してもよい。
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に示す。
19. 一例において、彩度サンプル位置が対応する輝度サンプル位置に対して垂直方向にシフトされているか否かを示す変数または構文要素(例えば、JVET-Q2001-vEにおけるsps_chroma_vertical_collocated_flag)は、4:2:2および/または4:4:4カラーフォーマットに対して0または1などのデフォルト値として設定されてもよい。
a. sps_chroma_vertical_collocated_flagが存在しない場合、1に等しいと推測されてよい。
b. sps_chroma_vertical_collocated_flagが存在しない場合、0に等しいと推測されてよい。
20. 近傍輝度サンプルを表す変数は、有効な値に等しく設定されている場合にのみ、CCLMの処理に用いることができる。一例を実施形態29および実施形態30に示す。
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で定義されている。
21. スライスのスライスタイプは、スライスの参照ピクチャエントリに依存してよい。
a. 一例において、リスト0の参照ピクチャエントリの数が0に等しく、リスト1の参照ピクチャエントリの数が0に等しい場合、スライスタイプはI-スライスでなければならない。
i. 一例において、この場合、スライスタイプは信号通知されない。
b. 一例において、リスト0の参照ピクチャエントリの数が0よりも大きく、リスト1の参照ピクチャエントリの数が0に等しい場合、スライスタイプはP-スライスでなければならない。
i. あるいは、リスト0の参照ピクチャエントリ数が0よりも大きく、リスト1の参照ピクチャエントリの数が0に等しい場合、スライスタイプをB-sliceにすることができない。
ii. 一例において、この場合、スライスタイプは信号通知されない。
c. スライスの参照ピクチャエントリは、スライスタイプが信号通知または推論される前に、信号通知または推論されてもよい。
i. スライスの参照ピクチャエントリは、ピクチャに関連付けられたピクチャヘッダにおいて信号通知されてもよい。
22. APSにおいて許可されるフィルタの総数またはAPSの総数は、サブピクチャの数等のコーディングされた情報に基づいて制限されてもよい。
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の数は、制限された数に依存する。
23. 適合ビットストリームは、映像ユニット(シーケンス/ピクチャ/スライス/タイル/ブリック/サブピクチャなど)に対してBDPCMが有効な場合、符号データ隠蔽を無効にするという規則に従うものとする。
a. あるいは、適合ビットストリームは、映像ユニット(シーケンス/ピクチャ/スライス/タイル/ブリック/サブピクチャなど)に対して符号データ隠蔽が有効な場合、BDPCMを無効にするという規則に従うものとする。
24. 適合ビットストリームは、映像ユニット(シーケンス/ピクチャ/スライス/タイル/ブリック/サブピクチャなど)に対して、恒等変換のみを適用する変換スキップ/コーディングツールが有効な場合、符号データ隠蔽を無効にするという規則に従うものとする。
a. あるいは、適応ビットストリームは、映像ユニット(シーケンス/ピクチャ/スライス/タイル/ブリック/サブピクチャなど)に対して符号データ隠蔽が有効な場合、恒等変換のみを適用する変換スキップ/コーディングツールは無効とするという規則に従うものとする。
25. 適合ビットストリームは、映像ユニット(シーケンス/ピクチャ/スライス/タイル/ブリック/サブピクチャなど)に対してBDPCMが有効な場合、DQ(Dependent Quantization)を無効にするという規則に従うものとする。
a. あるいは、適合ビットストリームは、映像ユニット(シーケンス/ピクチャ/スライス/タイル/ブリック/サブピクチャなど)でDQが有効な場合、BDPCMを無効にするという規則に従うものとする。
26. 適合ビットストリームは、映像ユニット(シーケンス/ピクチャ/スライス/タイル/ブリック/サブピクチャなど)に対して、恒等変換のみを適用する変換スキップ/コーディングツールが有効な場合、DQ(Dependent Quantization)を無効にするという規則に従うものとする。
a. あるいは、適合ビットストリームは、映像ユニット(シーケンス/ピクチャ/スライス/タイル/ブリック/サブピクチャなど)に対してDQが有効な場合、恒等変換のみを適用する変換スキップ/コーディングツールは無効とするという規則に従うものとする。
5. 実施形態
この章は、例示的な実施形態およびこれらの実施形態を説明するように現在のVVC規格を修正する方法を示す。VVC仕様の変更は、太字およびイタリック文字で強調されている。削除されたテキストには二重括弧で囲んだ印が付けられている(例えば、[[a]]は文字「a」の削除を意味する)。
5.1. 実施形態1
JVET-P2001-v9で規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
3. x=0..nTbW-1、y=0..nTbH-1とした場合のダウンサンプリングして配置した輝度サンプルpDsY[x][y]は、以下のように導出される。
-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)
5. numSampTが0よりも大きい場合、選択された近傍の最上の彩度サンプルpSelC[idx]は、idx=cntL..cntL+cntT-1とした場合のp[pickPost[idx-cntL][-1]に等しく設定され、ダウンサンプリングした近傍の最上の輝度サンプルpSelDsY[idx]は、idx=0..cntL+cntT-1として、以下のように規定される。

-そうでない場合(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)
5.2. 実施形態2
本実施形態において、最大許容変換スキップコーディングされたブロックサイズに従った彩度変換スキップフラグコーディングの例を示す。JVET-P2001-v9で規定される作業草案は、以下のように変更することができる。
7.3.9.10 変換ユニット構文
Figure 2023521502000023
5.3. 実施形態3
本実施形態において、最大許容変換スキップコーディングされたブロックサイズに従った彩度変換スキップフラグコーディングの例を示す。JVET-P2001-v9で規定される作業草案は、以下のように変更することができる。
7.3.9.5 コーディングユニット構文
Figure 2023521502000024
5.4. 実施形態4
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13
この処理への入力は以下の通りである。
-イントラ予測モード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)
変数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つだけ増加される。
最上および右上のnumSampTにおける利用可能な近傍の彩度サンプルの数および左および左下のnumSampLにおける利用可能な近傍彩度サンプルの数は、以下のように導出される。
-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は、以下のように導出される。
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に等しく設定される。
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
3. x=0..nTbW-1,y=0..nTbH-1とした場合のダウンサンプリングして配置した輝度サンプルpDsY[x][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)
[[4. numSampLが0より大きい場合、選択された近傍の左の彩度サンプルpSelC[idx]は、idx=0..cntL-1であるp[-1][pickPosL[idx]]に等しく設定され、選択されたダウンサンプリングされた、idx=0..cntL-1である近傍の左の輝度サンプルpSelDsY[idx]は、以下のように導出される。
-変数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)
5. numSampTが0よりも大きい場合、選択された近傍の最上の彩度サンプルpSelC[idx]は、idx=cntL..cntL+cntT-1としたp[pickPost[idx-cntL][-1]に等しく設定され、ダウンサンプリングした近傍の最上の輝度サンプルpSelDsY[idx]は、idx=0..cntL+cntT-1として、以下のように規定される。
-変数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)]]
Figure 2023521502000025
Figure 2023521502000026
Figure 2023521502000027
Figure 2023521502000028
6. cntT+ cntLが0に等しくない場合、変数minY、maxY、minC、およびmaxCは以下のように導出される。
-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)
7. 変数a、b、およびkは、以下のように導出される。
-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)
8. x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-このプロセスでは、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
5.5. 実施形態5
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13
この処理への入力は以下の通りである。
-イントラ予測モード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)
変数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つだけ増加される。
最上および右上のnumSampTにおける利用可能な近傍の彩度サンプルの数および左および左下のnumSampLにおける利用可能な近傍彩度サンプルの数は、以下のように導出される。
-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は、以下のように導出される。
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に等しく設定される。
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
3. x=0..nTbW-1、y=0..nTbH-1とした場合のダウンサンプリングして配置した輝度サンプルpDsY[x][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)
4. numSampLが0より大きい場合、選択された近傍の左の彩度サンプルpSelC[idx]は、idx=0..cntL-1であるp[-1][pickPosL[idx]]に等しく設定され、選択されたダウンサンプリングされた、idx=0..cntL-1である近傍の左の輝度サンプルpSelDsY[idx]は、以下のように導出される。
-変数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)
5. numSampTが0よりも大きい場合、選択された近傍の最上の彩度サンプルpSelC[idx]は、idx=cntL..cntL+cntT-1であるp[pickPost[idx-cntL][-1]に等しく設定され、idx=[[0]]cntL..cntL+cntT-1であるダウンサンプリングした近傍の最上の輝度サンプルpSelDsY[idx]は、以下のように規定される。
-変数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)
6. cntT+cntLが0に等しくない場合、変数minY、maxY、minC、およびmaxCは以下のように導出される。
-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)
7. 変数a、b、およびkは、以下のように導出される。
-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)
8. x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-このプロセスでは、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
5.6. 実施形態6
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13
この処理への入力は以下の通りである。
-イントラ予測モード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)
変数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つだけ増加される。
最上および右上のnumSampTにおける利用可能な近傍の彩度サンプルの数および左および左下のnumSampLにおける利用可能な近傍彩度サンプルの数は、以下のように導出される。
-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は、以下のように導出される。
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に等しく設定される。
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]]3である近傍の上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-availTLがTRUEに等しい場合、x=-1、y=-1,-2,-3である近傍の左上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
3. x=0..nTbW-1、y=0..nTbH-1とした場合のダウンサンプリングして配置した輝度サンプルpDsY[x][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)
4. numSampLが0より大きい場合、選択された近傍の左の彩度サンプルpSelC[idx]は、idx=0..cntL-1であるp[-1][pickPosL[idx]]に等しく設定され、選択されたダウンサンプリングされた、idx=0..cntL-1である近傍の左の輝度サンプルpSelDsY[idx]は、以下のように導出される。
-変数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)
5. numSampTが0よりも大きい場合、選択された近傍の最上の彩度サンプルpSelC[idx]は、idx=cntL..cntL+cntT-1とした場合のp[pickPost[idx-cntL][-1]に等しく設定され、ダウンサンプリングされた近傍の最上の輝度サンプルpSelDsY[idx]は、idx=0..cntL+cntT-1として、以下のように規定される。
-変数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)
6. cntT+cntLが0に等しくない場合、変数minY、maxY、minC、およびmaxCは以下のように導出される。
-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)
7. 変数a、b、およびkは、以下のように導出される。
-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)
8. x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
5.7. 実施形態7
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13
この処理への入力は以下の通りである。
-イントラ予測モード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)
変数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つだけ増加される。
最上および右上のnumSampTにおける利用可能な近傍の彩度サンプルの数および左および左下のnumSampLにおける利用可能な近傍彩度サンプルの数は、以下のように導出される。
-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は、以下のように導出される。
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000029
3. x=0..nTbW-1、y=0..nTbH-1とした場合のダウンサンプリングして配置した輝度サンプルpDsY[x][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)
4. numSampLが0より大きい場合、選択された近傍の左の彩度サンプルpSelC[idx]は、idx=0..cntL-1であるp[-1][pickPosL[idx]]に等しく設定され、選択されたダウンサンプリングされた、idx=0..cntL-1である近傍の左の輝度サンプルpSelDsY[idx]は、以下のように導出される。
-変数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)
5. numSampTが0よりも大きい場合、選択された近傍の最上の彩度サンプルpSelC[idx]は、idx=cntL..cntL+cntT-1とした場合のp[pickPost[idx-cntL][-1]に等しく設定され、ダウンサンプリングされた近傍の最上の輝度サンプルpSelDsY[idx]は、idx=0..cntL+cntT-1として、以下のように規定される。
-変数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)
6. cntT+cntLが0に等しくない場合、変数minY,maxY,minCおよびmaxCは以下のように導出される。
-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)
7. 変数a、b、およびkは、以下のように導出される。
-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)
8. x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
5.8. 実施形態8
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13
この処理への入力は以下の通りである。
-イントラ予測モード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)
Figure 2023521502000030
-利用可能な右上の近傍の彩度サンプル数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つだけ増加される。
最上および右上のnumSampTにおける利用可能な近傍の彩度サンプルの数および左および左下のnumSampLにおける利用可能な近傍彩度サンプルの数は、以下のように導出される。
-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は、以下のように導出される。
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000031
3. x=0..nTbW-1、y=0..nTbH-1とした場合のダウンサンプリングして配置した輝度サンプルpDsY[x][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)
4. numSampLが0より大きい場合、選択された近傍の左の彩度サンプルpSelC[idx]は、idx=0..cntL-1であるp[-1][pickPosL[idx]]に等しく設定され、選択されたダウンサンプリングされた、idx=0..cntL-1である近傍の左の輝度サンプルpSelDsY[idx]は、以下のように導出される。
-変数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)
5. numSampTが0よりも大きい場合、選択された近傍の最上の彩度サンプルpSelC[idx]は、idx=cntL..cntL+cntT-1とした場合のp[pickPost[idx-cntL][-1]に等しく設定され、ダウンサンプリングされた近傍の最上の輝度サンプルpSelDsY[idx]は、idx=0..cntL+cntT-1として、以下のように規定される。
-変数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)
6. cntT+cntLが0に等しくない場合、変数minY、maxY、minC、およびmaxCは以下のように導出される。
-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)
7. 変数a、b、およびkは、以下のように導出される。
-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)
8. x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
5.9. 実施形態9
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13
この処理への入力は以下の通りである。
-イントラ予測モード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)
変数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つだけ増加される。
最上および右上のnumSampTにおける利用可能な近傍の彩度サンプルの数および左および左下のnumSampLにおける利用可能な近傍彩度サンプルの数は、以下のように導出される。
-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は、以下のように導出される。
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000032
3. x=0..nTbW-1、y=0..nTbH-1であるダウンサンプリングして配置した輝度サンプルpDsY[x][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)
4. numSampLが0より大きい場合、選択された近傍の左の彩度サンプルpSelC[idx]は、idx=0..cntL-1であるp[-1][pickPosL[idx]]に等しく設定され、選択されたダウンサンプリングされた、idx=0..cntL-1である近傍の左の輝度サンプルpSelDsY[idx]は、以下のように導出される。
-変数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)
5. numSampTが0よりも大きい場合、選択された近傍の最上の彩度サンプルpSelC[idx]は、idx=cntL..cntL+cntT-1とした場合のp[pickPost[idx-cntL][-1]に等しく設定され、ダウンサンプリングされた近傍の最上の輝度サンプルpSelDsY[idx]は、idx=0..cntL+cntT-1として、以下のように規定される。
-変数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)
6. cntT+cntLが0に等しくない場合、変数minY、maxY、minC、およびmaxCは以下のように導出される。
-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)
7. 変数a、b、およびkは、以下のように導出される。
-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)
8. x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
5.10. 実施形態10
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13
この処理への入力は以下の通りである。
-イントラ予測モード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]である。
Figure 2023521502000033
-利用可能な右上の近傍の彩度サンプル数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つだけ増加される。
最上および右上のnumSampTにおける利用可能な近傍の彩度サンプルの数および左および左下のnumSampLにおける利用可能な近傍彩度サンプルの数は、以下のように導出される。
-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は、以下のように導出される。
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000034
3. x=0..nTbW-1、y=0..nTbH-1であるダウンサンプリングして配置した輝度サンプルpDsY[x][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)
4. numSampLが0より大きい場合、選択された近傍の左の彩度サンプルpSelC[idx]は、idx=0..cntL-1であるp[-1][pickPosL[idx]]に等しく設定され、選択されたダウンサンプリングされた、idx=0..cntL-1である近傍の左の輝度サンプルpSelDsY[idx]は、以下のように導出される。
-変数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)
5. numSampTが0よりも大きい場合、選択された近傍の最上の彩度サンプルpSelC[idx]は、idx=cntL..cntL+cntT-1とした場合のp[pickPost[idx-cntL][-1]に等しく設定され、ダウンサンプリングされた近傍の最上の輝度サンプルpSelDsY[idx]は、idx=0..cntL+cntT-1として、以下のように規定される。
-変数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)
6. cntT+cntLが0に等しくない場合、変数minY,maxY,minCおよびmaxCは以下のように導出される。
-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)
7. 変数a、b、およびkは、以下のように導出される。
-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)
8. x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
5.11. 実施形態11
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13
この処理への入力は以下の通りである。
-イントラ予測モード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)
変数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つだけ増加される。
最上および右上のnumSampTにおける利用可能な近傍の彩度サンプルの数および左および左下のnumSampLにおける利用可能な近傍彩度サンプルの数は、以下のように導出される。
-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は、以下のように導出される。
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000035
3. x=0..nTbW-1、y=0..nTbH-1であるダウンサンプリングして配置した輝度サンプルpDsY[x][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)
4. numSampLが0より大きい場合、選択された近傍の左の彩度サンプルpSelC[idx]は、idx=0..cntL-1であるp[-1][pickPosL[idx]]に等しく設定され、選択されたダウンサンプリングされた、idx=0..cntL-1である近傍の左の輝度サンプルpSelDsY[idx]は、以下のように導出される。
-変数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)
5. numSampTが0よりも大きい場合、選択された近傍の最上の彩度サンプルpSelC[idx]は、idx=cntL..cntL+cntT-1とした場合のp[pickPost[idx-cntL][-1]に等しく設定され、ダウンサンプリングされた近傍の最上の輝度サンプルpSelDsY[idx]は、idx=0..cntL+cntT-1として、以下のように規定される。
-変数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)
6. cntT+cntLが0に等しくない場合、変数minY、maxY、minC、およびmaxCは以下のように導出される。
-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)
7. 変数a、b、およびkは、以下のように導出される。
-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)
8. x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
5.12. 実施形態12
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13
この処理への入力は以下の通りである。
-イントラ予測モード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)
変数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つだけ増加される。
最上および右上のnumSampTにおける利用可能な近傍の彩度サンプルの数および左および左下のnumSampLにおける利用可能な近傍彩度サンプルの数は、以下のように導出される。
-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は、以下のように導出される。
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
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、-3である近傍の最上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
-availTLがTRUEに等しい場合、x=-1,-2、y=-1,-2である近傍の左上の輝度サンプルpY[x][y]は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
3. x=0..nTbW-1、y=0..nTbH-1であるダウンサンプリングして配置した輝度サンプルpDsY[x][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)
4. numSampLが0より大きい場合、選択された近傍の左の彩度サンプルpSelC[idx]は、idx=0..cntL-1であるp[-1][pickPosL[idx]]に等しく設定され、選択されたダウンサンプリングされた、idx=0..cntL-1である近傍の左の輝度サンプルpSelDsY[idx]は、以下のように導出される。
-変数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)
5. numSampTが0よりも大きい場合、選択された近傍の最上の彩度サンプルpSelC[idx]は、idx=cntL..cntL+cntT-1とした場合のp[pickPost[idx-cntL][-1]に等しく設定され、ダウンサンプリングされた近傍の最上の輝度サンプルpSelDsY[idx]は、idx=0..cntL+cntT-1として、以下のように規定される。
-変数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)
6. cntT+cntLが0に等しくない場合、変数minY、maxY、minC、およびmaxCは以下のように導出される。
-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)
7. 変数a、b、およびkは、以下のように導出される。
-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)
8. x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
5.13. 実施形態13
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000036
5.14. 実施形態14
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000037
5.15. 実施形態15
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000038
5.16. 実施形態16
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000039
5.17. 実施形態17
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
この処理への入力は以下の通りである。
-イントラ予測モード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]である。
Figure 2023521502000040
5.18. 実施形態18
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000041
5.19. 実施形態19
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000042
5.20. 実施形態20
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
この処理への入力は以下の通りである。
-イントラ予測モード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)
Figure 2023521502000043
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000044
5.21. 実施形態21
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000045
5.22. 実施形態22
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000046
5.23. 実施形態23
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
この処理への入力は以下の通りである。
-イントラ予測モード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)
Figure 2023521502000047
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000048
5.24. 実施形態24
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
この処理への入力は以下の通りである。
-イントラ予測モード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)
Figure 2023521502000049
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000050
5.25. 実施形態25
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
この処理への入力は以下の通りである。
-イントラ予測モード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)
Figure 2023521502000051
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000052
5.26. 実施形態26
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
この処理への入力は以下の通りである。
-イントラ予測モード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)
Figure 2023521502000053
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000054
5.27. 実施形態27
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
3. x=0..nTbW-1、y=0..nTbH-1であるダウンサンプリングして配置した輝度サンプルpDsY[x][y]は、以下のように導出される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
Figure 2023521502000055
-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)
5.28. 実施形態28
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
この処理への入力は以下の通りである。
-イントラ予測モード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)
変数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つだけ増加される。
最上および右上のnumSampTにおける利用可能な近傍の彩度サンプルの数および左および左下のnumSampLにおける利用可能な近傍彩度サンプルの数は、以下のように導出される。
-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は、以下のように導出される。
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に等しく設定される。
Figure 2023521502000056
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
3. x=0..nTbW-1、y=0..nTbH-1であるダウンサンプリングして配置した輝度サンプルpDsY[x][y]は、以下のように導出される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
Figure 2023521502000057
Figure 2023521502000058
4. numSampLが0より大きい場合、選択された近傍の左の彩度サンプルpSelC[idx]は、idx=0..cntL-1であるp[-1][pickPosL[idx]]に等しく設定され、選択されたダウンサンプリングされた、idx=0..cntL-1である近傍の左の輝度サンプルpSelDsY[idx]は、以下のように導出される。
-変数yは、pickPosL[idx]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[-1][y] (372)
Figure 2023521502000059
5. numSampTが0よりも大きい場合、選択された近傍の最上の彩度サンプルpSelC[idx]は、idx=cntL..cntL+cntT-1であるp[pickPost[idx-cntL][-1]に等しく設定され、[[0]]cntL..cntL+cntT-1であるダウンサンプリングした近傍の最上の輝度サンプルpSelDsY[idx]は、以下のように規定される。
-変数xはpickPost[idx-cntL]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]=pY[x][-1] (375)
Figure 2023521502000060
-そうでない場合(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)
Figure 2023521502000061
6. cntT+cntLが0に等しくない場合、変数minY、maxY、minC、およびmaxCは以下のように導出される。
-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)
7. 変数a、b、およびkは、以下のように導出される。
-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)
8. x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
5.29. 実施形態29
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000062
5.30. 実施形態30
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
Figure 2023521502000063
5.31. 実施形態31
JVET-Q2001-vEで規定される作業草案は、以下のように変更することができる。
8.4.5.2.13 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMのイントラ予測モードの仕様
この処理への入力は以下の通りである。
-イントラ予測モード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)
変数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つだけ増加される。
最上および右上のnumSampTにおける利用可能な近傍の彩度サンプルの数および左および左下のnumSampLにおける利用可能な近傍彩度サンプルの数は、以下のように導出される。
-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は、以下のように導出される。
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に等しく設定される。
Figure 2023521502000064
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)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定される。
3. x=0..nTbW-1、y=0..nTbH-1であるダウンサンプリングして配置した輝度サンプルpDsY[x][y]は、以下のように導出される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
-x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、以下のように導出される。
pDstY[x][y]=pY[x][y] (360)
Figure 2023521502000065
Figure 2023521502000066
4. numSampLが0より大きい場合、選択された近傍の左の彩度サンプルpSelC[idx]は、idx=0..cntL-1であるp[-1][pickPosL[idx]]に等しく設定され、選択されたダウンサンプリングされた、idx=0..cntL-1である近傍の左の輝度サンプルpSelDsY[idx]は、以下のように導出される。
-変数yは、pickPosL[idx]に等しく設定される。
-SubWidthCとSubHeightCの両方が1に等しい場合、以下が適用される。
pSelDsY[idx]= pY[-1][y] (372)
Figure 2023521502000067
Figure 2023521502000068
Figure 2023521502000069
6. cntT+cntLが0に等しくない場合、変数minY、maxY、minC、およびmaxCは以下のように導出される。
-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)
7. 変数a、b、およびkは、以下のように導出される。
-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)
8. x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は、以下のように導出される。
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注-この処理では、sps_chroma_vertical_collocated_flagを使用する。ただし、実装を簡単にするために、sps_chroma_horizontal_collocated_flagは使用しない。
図9は、映像処理装置900のブロック図である。装置900は、本明細書に記載の1または複数の方法を実装するために使用してもよい。装置900は、スマートフォン、タブレット、コンピュータ、IoT(Internet of Things)受信機等により実施されてもよい。装置900は、1または複数のプロセッサ902と、1または複数のメモリ904と、映像処理ハードウェア906と、を含んでもよい。1つまたは複数のプロセッサ902は、本明細書に記載される1または複数の方法を実装するように構成されてもよい。メモリ(複数可)904は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア906は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい(例えば、前の項目に記載されているもの)。
図10は、例示的な映像エンコーダのブロック図を示す。
図11は、映像を処理する方法1100のフローチャートである。方法1100は、映像の彩度ブロックと映像のコーディングされた表現との変換のために、ダウンサンプリングフィルタを使用して、配置した輝度ブロックの、Nの上の近傍ラインから生成されるダウンサンプリングして配置した近傍の最上の輝度サンプルを使用することによって、クロスコンポーネント線形モデルのパラメータを導出すること(1102)であって、Nは正の整数である、ことと、クロスコンポーネント線形モデルを使用して生成される予測彩度ブロックを使用して、変換を実行すること(1104)とを含む。
図12は、開示された技術を実装することができる例示的な映像処理システムを示すブロック図である。
図12は、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム1200を示すブロック図である。様々な実装形態は、システム1200のコンポーネントの一部または全部を含んでもよい。システム1200は、映像コンテンツを受信するための入力1202を含んでもよい。映像コンテンツは、未加工または非圧縮フォーマット、例えば、8または10ビットのマルチコンポーネント画素値で受信されてもよく、または圧縮または符号化フォーマットで受信されてもよい。入力1202は、ネットワークインターフェース、周辺バスインターフェース、または記憶インターフェースを表してもよい。ネットワークインターフェースの例は、イーサネット(登録商標)、PON(Passive Optical Network)等の有線インターフェース、およびWi-Fi(登録商標)またはセルラーインターフェース等の無線インターフェースを含む。
システム1200は、本明細書に記載される様々なコーディングまたは符号化方法を実装することができるコーディングコンポーネント1204を含んでもよい。コーディングコンポーネント1204は、入力1202からの映像の平均ビットレートをコーディングコンポーネント1204の出力に低減し、映像のコーディングされた表現を生成してもよい。従って、このコーディング技術は、映像圧縮または映像コード変換技術と呼ばれることがある。コーディングコンポーネント1204の出力は、コンポーネント1206によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力1202において受信された、記憶されたまたは通信された映像のビットストリーム(またはコーディングされた)表現は、コンポーネント1208によって使用されて、表示インターフェース1210に送信される画素値または表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像伸張(映像展開)と呼ばれることがある。さらに、特定の映像処理動作を「コーディング」動作またはツールと呼ぶが、コーディングツールまたは動作は、エンコーダで使用され、対応する復号ツールまたは動作でありコーディングの結果を逆にするものは、デコーダによって行われることが理解されよう。
周辺バスインターフェースまたは表示インターフェースの例は、USB(Universal Serial Bus)またはHDMI(High Definition Multimedia Interface;登録商標)またはディスプレイポート等を含んでもよい。ストレージインターフェースの例は、SATA(Serial Advanced Technology Attachment)、PCI、IDEインターフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、またはデジタルデータ処理および/または映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
図14は、本開示の技法を利用し得る例示的な映像コーディングシステム100を示すブロック図である。
図14に示すように、映像コーディングシステム100は、送信元デバイス110と、送信先デバイス120と、を備えてもよい。送信元デバイス110は、コーディング映像データを生成するものであり、映像コーディング機器とも称され得る。送信先デバイス120は、送信元デバイス110によって生成された、符号化された映像データを復号してよく、映像復号デバイスと呼ばれ得る。
送信元デバイス110は、映像ソース112と、映像エンコーダ114と、入出力(I/O)インターフェース116と、を備えてもよい。
映像ソース112は、映像キャプチャデバイスなどのソース、映像コンテンツプロバイダからの映像データを受信するためのインターフェース、および/または映像データを生成するためのコンピュータグラフィックスシステム、またはこれらのソースの組み合わせを含んでもよい。映像データは、1または複数のピクチャを含んでもよい。映像エンコーダ114は、映像ソース112からの映像データを符号化し、ビットストリームを生成する。ビットストリームは、映像データのコーディングされた表現を形成するビットのシーケンスを含んでもよい。ビットストリームは、コーディングされたピクチャおよび関連付けられたデータを含んでもよい。コーディングされたピクチャは、ピクチャのコーディングされた表現である。関連付けられたデータは、シーケンスパラメータセット、ピクチャパラメータセット、および他の構文構造を含んでもよい。I/Oインターフェース116は、変復調器(モデム)および/または送信機を含んでもよい。符号化された映像データは、ネットワーク130aを介して、I/Oインターフェース116を介して送信先デバイス120に直接送信されてよい。符号化された映像データは、送信先デバイス120がアクセスするために、記録媒体/サーバ130bに記憶してもよい。
送信先デバイス120は、I/Oインターフェース126、映像デコーダ124、および表示装置122を含んでもよい。
I/Oインターフェース126は、受信機および/またはモデムを含んでもよい。I/Oインターフェース126は、送信元デバイス110または記憶媒体/サーバ130bから符号化された映像データを取得してもよい。映像デコーダ124は、符号化された映像データを復号してもよい。表示装置122は、復号された映像データをユーザに表示してもよい。表示装置122は、送信先デバイス120と一体化されてもよく、または外部表示装置とインターフェースで接続するように構成される送信先デバイス120の外部にあってもよい。
映像エンコーダ114および映像デコーダ124は、HEVC(High Efficiency Video Coding)規格、VVVM(Versatile Video Coding)規格、および他の現在のおよび/または更なる規格等の映像圧縮規格に従って動作してもよい。
図15は、映像エンコーダ200の一例を示すブロック図であり、この映像エンコーダ200は、図14に示されるシステム100における映像エンコーダ114であってもよい。
映像エンコーダ200は、本開示の技術のいずれかまたは全部を実行するように構成されてもよい。図15の例において、映像エンコーダ200は、複数の機能コンポーネントを含む。本開示で説明される技法は、映像エンコーダ200の様々なコンポーネント間で共有されてもよい。いくつかの例では、プロセッサは、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
映像エンコーダ200の機能コンポーネントは、分割部201、予測部202を含んでもよく、予測部202は、モード選択部203、動き推定部204、動き補償部205、およびイントラ予測部206、残差生成部207、変換部208、量子化部209、逆量子化部210、逆変換部211、再構成部212、バッファ213、およびエントロピー符号化部214を含んでもよい。
他の例において、映像エンコーダ200は、より多くの、より少ない、または異なる機能コンポーネントを含んでもよい。一例において、予測部202は、IBC(Intra Block Copy)部を含んでもよい。IBC部は、少なくとも1つの参照ピクチャが現在の映像ブロックが位置するピクチャであるIBCモードにおいて予測を行ってよい。
さらに、動き推定部204および動き補償部205などのいくつかのコンポーネントは、高度に統合されてもよいが、説明のために、図15の例においては別個に表現されている。
分割部201は、ピクチャを1または複数の映像ブロックに分割してもよい。映像エンコーダ200および映像デコーダ300は、様々な映像ブロックサイズをサポートしてもよい。
モード選択部203は、例えば、エラー結果に基づいて、イントラまたはインターのいずれかのコーディングモードの1つを選択し、得られたイントラまたはインターコーディングブロックを、残差生成部207に供給して残差ブロックデータを生成し、再構成部212に供給して参照ピクチャとしての使用のために符号化ブロックを再構成してもよい。いくつかの例において、モード選択部203は、インター予測信号およびイントラ予測信号に基づいて予測を行うCIIP(Combination of Intra and Inter Prediction)モードを選択してもよい。モード選択部203は、インター予測の場合、ブロックのために動きベクトルの解像度(例えば、サブピクセルまたは整数ピクセル精度)を選択してもよい。
現在の映像ブロックに対してインター予測を実行するために、動き推定部204は、バッファ213からの1または複数の参照フレームと現在の映像ブロックとを比較することにより、現在の映像ブロックのために動き情報を生成してもよい。動き補償部205は、現在の映像ブロックに関連付けられたピクチャ以外のバッファ213からのピクチャの動き情報および復号化されたサンプルに基づいて、現在の映像ブロックのための予測映像ブロックを判定してもよい。
動き推定部204および動き補償部205は、現在の映像ブロックがIスライスであるか、Pスライスであるか、またはBスライスであるかによって、例えば、現在の映像ブロックに対して異なる動作を行ってもよい。
いくつかの例において、動き推定部204は、現在の映像ブロックに対して単方向予測を実行し、動き推定部204は、現在の映像ブロックに対する参照映像ブロックのために、リスト0またはリスト1の参照ピクチャを検索してもよい。そして、動き推定部204は、参照映像ブロックと、現在の映像ブロックと参照映像ブロックとの間の空間的変位を示す動きベクトルとを含む、リスト0またはリスト1における参照ピクチャを示す参照インデックスを生成してもよい。動き推定部204は、参照インデックス、予測方向インジケータ、および動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償部205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在のブロックの予測映像ブロックを生成してもよい。
他の例において、動き推定部204は、現在の映像ブロックを双方向予測してもよく、動き推定部204は、リスト0における参照ピクチャの中から現在の映像ブロックを求めるための参照映像ブロックを検索してもよく、また、リスト1における参照ピクチャの中から現在の映像ブロックを求めるための別の参照映像ブロックを検索してもよい。そして、動き推定部204は、参照映像ブロックを含むリスト0およびリスト1における参照ピクチャを示す参照インデックスと、参照映像ブロックと現在の映像ブロックとの間の空間的変位を示す動きベクトルとを生成してもよい。動き推定部204は、現在の映像ブロックの参照インデックスおよび動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償部205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在の映像ブロックの予測映像ブロックを生成してもよい。
いくつかの例において、動き推定部204は、デコーダの復号処理のために、動き情報のフルセットを出力してもよい。
いくつかの例では、動き推定部204は、現在の映像のための動き情報のフルセットを出力しなくてもよい。むしろ、動き推定部204は、別の映像ブロックの動き情報を参照して、現在の映像ブロックの動き情報を信号通知してもよい。例えば、動き推定部204は、現在の映像ブロックの動き情報が近傍の映像ブロックの動き情報に十分に類似していることを判定してもよい。
一例において、動き推定部204は、現在の映像ブロックに関連付けられた構文構造において、現在の映像ブロックが別の映像ブロックと同じ動き情報を有することを映像デコーダ300に示す値を示してもよい。
他の例において、動き推定部204は、現在の映像ブロックに関連付けられた構文構造において、別の映像ブロックと、動きベクトル差分(MVD;Motion Vector Difference)とを識別してもよい。動きベクトル差分は、現在の映像ブロックの動きベクトルと、示された映像ブロックの動きベクトルとの差分を示す。映像デコーダ300は、示された映像ブロックの動きベクトルおよび動きベクトル差分を使用して、現在の映像ブロックの動きベクトルを決定してもよい。
上述したように、映像エンコーダ200は、動きベクトルを予測的に信号通知してもよい。映像エンコーダ200によって実装され得る予測信号通知技法の2つの例は、AMVP(Advanced Motion Vector Prediction)およびマージモード信号通知を含む。
イントラ予測部206は、現在の映像ブロックに対してイントラ予測を行ってもよい。イントラ予測部206が現在の映像ブロックをイントラ予測を実行する場合、イントラ予測部206は、同じピクチャにおける他の映像ブロックの復号されたサンプルに基づいて、現在の映像ブロックのための予測データを生成してもよい。現在の映像ブロックのための予測データは、予測された映像ブロックおよび様々な構文要素を含んでもよい。
残差生成部207は、現在の映像ブロックから現在の映像ブロックの予測された映像ブロックを減算することによって(例えば、マイナス符号によって示されている)、現在の映像ブロックのための残差データを生成してもよい。現在の映像ブロックの残差データは、現在の映像ブロックにおけるサンプルの異なるサンプル成分に対応する残差映像ブロックを含んでもよい。
他の例において、例えば、スキップモードにおいて、現在の映像ブロックのための残差データがなくてもよく、残差生成部207は、減算動作を行わなくてもよい。
変換処理部208は、現在の映像ブロックに関連付けられた残差映像ブロックに1または複数の変換を適用することによって、現在の映像ブロックのための1または複数の変換係数映像ブロックを生成してもよい。
変換処理部208が現在の映像ブロックに関連付けられた変換係数映像ブロックを生成した後、量子化部209は、現在の映像ブロックに関連付けられた1または複数の量子化パラメータ(QP:Quantization Parameter)値に基づいて、現在の映像ブロックに関連付けられた変換係数映像ブロックを量子化してもよい。
逆量子化部210および逆変換部211は、変換係数映像ブロックに逆量子化および逆変換をそれぞれ適用し、変換係数映像ブロックから残差映像ブロックを再構成してもよい。再構成部212は、予測部202によって生成された1または複数の予測映像ブロックから対応するサンプルに再構成された残差映像ブロックを追加して、バッファ213に格納するための現在のブロックに関連付けられた再構成された映像ブロックを生成してもよい。
再構成部212が映像ブロックを再構成した後、映像ブロックにおける映像ブロッキング・アーチファクトを縮小するために、ループフィルタリング動作が行われてもよい。
エントロピー符号化部214は、映像エンコーダ200の他の機能コンポーネントからデータを受信してもよい。エントロピー符号化部214がデータを受信した場合、エントロピー符号化部214は、1または複数のエントロピー符号化動作を行い、エントロピー符号化されたデータを生成し、エントロピー符号化されたデータを含むビットストリームを出力してもよい。
図16は、映像デコーダ300の一例を示すブロック図であり、映像デコーダ300は、図14に示すシステム100における映像デコーダ114であってもよい。
映像デコーダ300は、本開示の技術のいずれかまたは全部を実行するように構成されてもよい。図16の例において、映像デコーダ300は、複数の機能コンポーネントを含む。本開示で説明される技法は、映像デコーダ300の様々なコンポーネント間で共有されてもよい。いくつかの例では、プロセッサは、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
図16の例において、映像デコーダ300は、エントロピー復号部301、動き補償部302、イントラ予測部303、逆量子化部304、逆変換部305、および再構成部306、並びにバッファ307を備える。映像デコーダ300は、いくつかの例では、映像エンコーダ200(例えば、図15)に関して説明した符号化パスとほぼ逆の復号パスを行ってもよい。
エントロピー復号部301は、符号化されたビットストリームを取り出す。符号化されたビットストリームは、エントロピーコーディングされた映像データ(例えば、映像データの符号化されたブロック)を含んでもよい。エントロピー復号部301は、エントロピーコーディングされた映像データを復号化し、エントロピー復号された映像データから、動き補償部302は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、および他の動き情報を含む動き情報を決定してもよい。動き補償部302は、例えば、AMVPおよびマージモードを実行することで、このような情報を判定してもよい。
動き補償部302は、動き補償されたブロックを生成してもよく、場合によっては、補間フィルタに基づいて補間を実行する。構文要素には、サブピクセルの精度で使用される補間フィルタのための識別子が含まれてもよい。
動き補償部302は、映像ブロックの符号化中に映像エンコーダ20によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数ピクセルのための補間値を計算してもよい。動き補償部302は、受信した構文情報に基づいて、映像エンコーダ200が使用する補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成してもよい。
動き補償部302は、符号化された映像シーケンスのフレームおよび/またはスライスを符号化するために使用されるブロックのサイズを判定するための構文情報、符号化された映像シーケンスのピクチャの各マクロブロックがどのように分割されるかを記述する分割情報、各分割がどのように符号化されるかを示すモード、各インター符号化されたブロックに対する1または複数の参照フレーム(および参照フレームリスト)、および符号化された映像シーケンスを復号するための他の情報のいくつかを使用してもよい。
イントラ予測部303は、例えば、ビットストリームにおいて受信したイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成してもよい。逆量子化部303は、ビットストリームに提供され、エントロピー復号部301によって復号された量子化された映像ブロック係数を逆量子化(すなわち、逆量子化)する。逆変換部303は、逆変換を適用する。
再構成部306は、残差ブロックと、動き補償部202またはイントラ予測部303によって生成された対応する予測ブロックとを合計し、復号されたブロックを形成してもよい。所望であれば、デブロッキングフィルタは、ブロック化されたアーチファクトを除去するために、復号されたブロックをフィルタリングするため適用されてもよい。復号された映像ブロックはバッファ307に記憶され、バッファ307はその後の動き補償のための参照ブロックを提供する。
以下の一連の項目は、次に提供されたいくつかの実施形態によって好ましい実施例を提供する。
第1の節は、前章の項目18および19に記載された技術の例示的な実施形態を示す。
1.4:2:2カラーフォーマットを有する映像の映像ブロックと映像のビットストリームとの間の変換のために、規則に従って映像ブロックのクロスコンポーネント線形モデルのパラメータを決定すること1702と、決定に基づいて変換を実行し、構文要素は映像の彩度サンプルが映像の輝度サンプルに対して垂直シフトされているか否かを示し、規則はパラメータが構文要素の値と無関係に決定されると規定すること1704と、を含む、映像処理の方法(例えば、図17Aに示す方法1700)。
2.クロスコンポーネント線形モデルのパラメータは、クロスコンポーネント線形モデルにおけるダウンサンプリングフィルタリングのパラメータに対応する、項目1に記載の方法。
3.ダウンサンプリングフィルタリングは、近傍の上の輝度サンプルをダウンサンプリングすること、および/または近傍の左の輝度サンプルをダウンサンプリングすること、および/または輝度ブロックである映像ブロックのサンプルをダウンサンプリングすることを含む、項目2に記載の方法。
4.構文要素の値に関わらず、固定フィルタを用いてダウンサンプリングフィルタリングを実行する、項目2または3に記載の方法。
5.固定フィルタは、係数[1/4、2/4、1/4]または[2/8、4/8、2/8]である3タップ水平フィルタである項目4に記載の方法。
6.規則に従って、映像と映像のビットストリームとの間で変換を実行するステップを含み、フォーマット規則は、映像が4:2:2または4:4:4カラーフォーマットを有することに起因して、彩度サンプル位置が対応する輝度サンプル位置に対して垂直にシフトされるか否かを示すフィールドがデフォルト値に設定されることを規定する、映像処理の方法(例えば、図17Bに示す方法1710)。
7.デフォルト値は0または1である、項目6に記載の方法。
8.規則は更に、フィールドが存在しない場合、フィールドの値が1に等しいと推論されることを規定する、項目6に記載の方法。
9.規則は更に、フィールドが存在しない場合、フィールドの値が0に等しいと推論されることを規定する、項目6に記載の方法。
10.クロスコンポーネント線形モデルは、線形モードを用いて、別の成分から彩度成分の予測値を導出することを特徴とする項目1から9のいずれかに記載の方法。
11.変換は、映像をビットストリームに符号化することを含む、項目1から9のいずれかに記載の方法。
12.変換は、ビットストリームから映像を復号することを含む、項目1から9までのいずれかに記載の方法。
13.変換は、映像からビットストリームを生成することを含み、方法は、ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することをさらに含む、項目1から12のいずれかに記載の方法。
14.項目1から12のうちの1つまたは複数に記載された方法を実施するように構成されたプロセッサを含む映像処理装置。
15.項目1から12のいずれかに記載の方法と、ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することをさらに含む、映像のビットストリームを記憶する方法。
16.実行されると、項目1から12のいずれかに記載された方法をプロセッサに実施させるプログラムコードを格納したコンピュータ可読媒体。
17.上述した方法のいずれかに従って生成されたビットストリームを記憶するコンピュータ可読媒体。
18.項目1から12のうちの1または複数に記載の方法を実装するように構成された、ビットストリーム表現を記憶するための映像処理装置。
第2の節は、前節の項目20で論じた技法の例示的な実施例を示す。
1.映像の映像ブロックと映像のビットストリームとの間の変換のために、規則に従って映像ブロックのCCLM(Cross-Component Linear Model)のパラメータを決定すること1802と、決定に基づいて変換を実行すること1804とを含み、規則は、変数がある値を有する場合にのみ、CCLMのパラメータの決定において近傍輝度サンプルを示す変数を用いることを規定する映像処理の方法(例えば、図18に示す方法1800)。
2.ビデオブロックの近傍の上の輝度サンプルを表す変数の一定の値は、デブロッキングフィルタ処理前の再構成された輝度サンプルの値に等しい、項目1に記載の方法。
3.近傍の上の輝度サンプルが利用可能である場合、pY[x][y]として示される近傍の上の輝度サンプルを表す変数は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定され、(xTbY、yTbY)は映像ブロックの左上の位置を示し、xとyは整数である、項目2に記載の方法。
4.xは、0からSubWidthC*max(numSampT,nTbW)-1の範囲であり、nTbWは映像ブロックの幅を示し、SubWidthCは映像ブロックの幅スケール係数であって、映像ブロックを含む画像の彩度フォーマットに応じたテーブルから求められ、numSampTは映像ブロックの最上と右上にある利用できる近傍彩度サンプルの数を示す、項目3に記載の方法。
5.yはー1または2である、項目3に記載の方法。
6.ビデオブロックの近傍の左の輝度サンプルを表す変数の値は、デブロッキングフィルタ処理前に、再構成された輝度サンプルの値に等しく設定される、項目1に記載の方法。
7.近傍の左の輝度サンプルが利用可能である場合、pY[x][y]として示される近傍の左の輝度サンプルを表す変数は、位置(xTbY+x,yTbY+y)におけるデブロッキングフィルタ処理前の再構成された輝度サンプルに等しく設定され、(xTbY、yTbY)は映像ブロックの左上の位置を示し、xとyは整数である、項目6に記載の方法。
8.Xが-1~-3の範囲である、項目7に記載の方法。
9.yは、0からSubHeightC*max(numSampL,nTbH) - 1の範囲であり、nTbHは映像ブロックの高さを示し、SubHeightCは映像ブロックの高さスケール係数であって、映像ブロックを含む画像の彩度フォーマットに応じたテーブルから求められ、numSampLは映像ブロックの左と左下にある利用できる近傍彩度サンプルの数を示す、項目7に記載の方法。
10.クロスコンポーネント線形モデルは、線形モードを用いて、別の成分から彩度成分の予測値を導出することを特徴とする項目1から9のいずれかに記載の方法。
11.変換は、映像をビットストリームに符号化することを含む、項目1から9のいずれかに記載の方法。
12.変換は、ビットストリームから映像を復号することを含む、項目1から9までのいずれかに記載の方法。
13.変換は、映像からビットストリームを生成することを含み、方法は、ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することをさらに含む、項目1から12のいずれかに記載の方法。
14.項目1から12のうちの1つまたは複数に記載された方法を実施するように構成されたプロセッサを含む映像処理装置。
15.項目1から12のいずれかに記載の方法と、ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することをさらに含む、映像のビットストリームを記憶する方法。
16.実行されると、項目1から12のいずれかに記載された方法をプロセッサに実施させるプログラムコードを格納したコンピュータ可読媒体。
17.上述した方法のいずれかに従って生成されたビットストリームを記憶するコンピュータ可読媒体。
18.項目1から12のうちの1または複数に記載の方法を実装するように構成された、ビットストリームを記憶するための映像処理装置。
第3の節は、前章の項目21から26に記載された技術の例示的な実施形態を示す。
1.映像ユニットを構成する映像と映像のビットストリームとの間の変換のために、規則に従って映像ユニットに対して第1のコーディングツールが有効であるか否かを決定すること1902であって、規則は、第1のコーディングツールおよび第2のコーディングツールが相互に排他的に有効になっており、第1のコーディングツールまたは第2のコーディングツールが符号データ隠蔽ツールを構成することを規定する、ことと、決定に従って変換を実行すること1904と、を含む、映像処理の方法(例えば、図19Aに示す方法1900)。
2.映像ユニットは、シーケンス、ピクチャ、スライス、タイル、ブリック、またはサブピクチャに対応する、項目1に記載の方法。
3.規則は、映像ユニットに対してBDPCM(Block Differential Pulse-Code Modulation)ツールを含む第2のコーディングツールが有効である場合に、符号データ隠蔽ツールを含む第1のコーディングツールを無効にすることを規定する、項目1または2に記載の方法。
4.規則は、映像ユニットに対して符号データ隠蔽ツールを含む第2のコーディングツールが有効である場合に、BDPCM(Block Differential Pulse-Code Modulation)ツールを含む第1のコーディングツールを無効にすることを規定する、項目1または2に記載の方法。
5.規則は、映像ユニットに対して恒等変換のみを適用する第2のコーディングツールが有効である場合に、符号データ隠蔽ツールを構成する第1のコーディングツールを無効にすることを規定する、項目1または2に記載の方法。
6.規則は、映像ユニットに対して符号データ隠蔽ツールを構成する第2のコーディングツールが有効である場合に、恒等変換のみを適用する第1のコーディングツールを無効にすることを規定する、項目1または2に記載の方法。
7.恒等変換のみを適用する第2のコーディングツールまたは恒等変換のみを適用する第1のコーディングツールは、変換スキップモードツールまたは他のコーディングツールを含む、項目5または6に記載の方法。
8.映像ユニットを構成する映像と映像のビットストリームとの間の変換のために、規則に従って映像ユニットに対して第1のコーディングツールが有効であるか否かを決定すること1912であって、規則は、第1のコーディングツールおよび第2のコーディングツールが相互に排他的に有効になっており、第1のコーディングツールまたは第2のコーディングツールが従属量子化ツールを構成することを規定する、ことと、決定に従って変換を実行すること1914と、を含む、映像処理の方法(例えば、図19Bに示す方法1910)。
9.映像ユニットは、シーケンス、ピクチャ、スライス、タイル、ブリック、またはサブピクチャに対応する、項目8に記載の方法。
10.規則は、映像ユニットに対してBDPCM(Block Differential Pulse-Code Modulation)ツールを含む第2のコーディングツールが有効である場合に、従属量子化ツールを含む第1のコーディングツールを無効にすることを規定する、項目8または9に記載の方法。
11.前記規則が、前記映像ユニットに対して、前記従属量子化ツールを含む第2のコーディングツールが有効である場合に、BDPCM(Block Differential Pulse-Code Modulation)ツールを含む第1のコーディングツールを無効にすることを規定する、項目8または9に記載の方法。
12.規則は、映像ユニットに対して、恒等変換のみを適用する第2のコーディングツールが有効である場合に、従属量子化ツールを含む第1のコーディングツールを無効にすることを規定する、項目8または9に記載の方法。
13.規則は、映像ユニットに対して、従属量子化を含む第2のコーディングツールが有効である場合に、恒等変換のみを適用する第1のコーディングツールを無効にすることを規定する、項目8または9に記載の方法。
14.恒等変換のみを適用する第2のコーディングツールまたは恒等変換のみを適用する第1のコーディングツールは、変換スキップモードツールまたは他のコーディングツールを含む、項目8または9に記載の方法。
15.規則に従って、1または複数のスライスを含む1または複数のピクチャを含む映像と、映像のビットストリームとの間の変換を実行する1922ことを含み、規則は、スライスのスライスタイプがスライスに対する参照ピクチャリストの参照ピクチャエントリに依存することを規定する、映像処理の方法(例えば、図19Cに示す方法1920)。
16.規則は、参照ピクチャリスト0の参照ピクチャエントリの数が0に等しく、かつ参照ピクチャリスト1の参照ピクチャエントリの数が0に等しい場合に、スライスのスライスタイプがIスライスと規定する、項目15に記載の方法。
17.規則は、参照ピクチャリスト0の参照ピクチャエントリの数が0より大きく、かつ参照ピクチャリスト1の参照ピクチャエントリの数が0に等しい場合に、スライスのスライスタイプがPスライスと規定する、項目15に記載の方法。
18.規則は、参照ピクチャリスト0の参照ピクチャエントリの数が0より大きく、かつ参照ピクチャリスト1の参照ピクチャエントリの数が0に等しい場合に、スライスのスライスタイプがBスライスでないと規定する、項目15に記載の方法。
19.スライスタイプは、ビットストリームに含まれない、項目16から18のいずれかに記載の方法。
20.スライスタイプが信号通知または推論される前に、参照ピクチャエントリが信号通知または推論される、項目15に記載の方法。
21.参照ピクチャエントリは、スライスを含むピクチャに関連付けられたピクチャヘッダに含まれる、項目15に記載の方法。
22.規則に従って、1または複数のスライスを含む1または複数のピクチャを含む映像と、映像のビットストリームとの間の変換を実行すること1932を含み、規則は、APS(Adaptation Parameter Set)における許容されたフィルタの数またはAPSの数が映像のコーディングされた情報に依存することを規定する映像処理の方法(例えば、図19Dに示す方法1930)。
23.コーディングされた情報は、ピクチャのサブピクチャの数を含む、項目22に記載の方法。
24.APSにおける許容されたフィルタの数は、ピクチャユニット内のすべてのAPS(Adaptation Parameter Set) NAL(Network Abstraction Layer)ユニットにおけるALF APSの輝度ALF(Adaptive Loop Filter)、彩度ALF、およびクロスコンポーネントALFの数を含む、項目22に記載の方法。
25.APSにおける許容されたフィルタの数が、輝度成分に対するALF(Adaptive Loop Filter)クラスの数、彩度成分に対する代替フィルタの数、および/またはピクチャユニット内のすべてのAPS(Adaptation Paramter Set) NAL(Network Abstraction Layer)ユニットにおけるクロスコンポーネントフィルタの数を含む、項目22に記載の方法。
26.APSが、ALF APS、スケーリングリストAPS、および/またはLMCS(Luma Mapping with Chroma Scaling)APSに対応する、項目22に記載の方法。
27.APS識別子および/または映像ユニットによって使用されるAPSの数をどのように信号化するかは、APSにおける許容されたフィルタの数に依存する、項目22に記載の方法。
28.変換は、映像をビットストリームに符号化することを含む、項目1から27のいずれかに記載の方法。
29.変換は、ビットストリームから映像を復号することを含む、項目1から27のいずれかに記載の方法。
30.変換は、映像からビットストリームを生成することを含み、方法は、ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することをさらに含む、項目1から27のいずれかに記載の方法。
31.項目1から30のうちの1または複数に記載の方法を実装するように構成されたプロセッサを備える映像処理装置。
32.項目1から30のいずれかに記載の方法と、ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することをさらに含む、映像のビットストリームを記憶する方法。
33.実行された際に、項目1から30のうちの1または複数に記載の方法をプロセッサに実装させるプログラムコードを記憶するコンピュータ可読媒体。
34.上述した方法のいずれかに従って生成されたビットストリームを記憶するコンピュータ可読媒体。
35.項目1から30のうちの1または複数に記載の方法を実装するように構成された、ビットストリームを記憶するための映像処理装置。
開示される技術のいくつかの実施形態は、映像処理ツールまたはモードを有効化するように決定または判定することを含む。一例において、映像処理ツールまたはモードが有効化される場合、エンコーダは、1つの映像ブロックを処理する際にツールまたはモードを使用するまたは実装するが、ツールまたはモードの使用に基づいて、結果として得られるビットストリームを必ずしも修正しなくてもよい。すなわち、映像のブロックから映像のビットストリーム表現への変換は、決定または判定に基づいて映像処理ツールまたはモードが有効化される場合に、映像処理ツールまたはモードを使用する。別の例において、映像処理ツールまたはモードが有効化される場合、デコーダは、ビットストリームが映像処理ツールまたはモードに基づいて修正されたことを知って、ビットストリームを処理する。すなわち、決定または判定に基づいて有効化された映像処理ツールまたはモードを使用して、映像のビットストリーム表現から映像のブロックへの変換を行う。
開示される技術のいくつかの実施形態は、映像処理ツールまたはモードを無効化するように決定または判定することを含む。一例において、映像処理ツールまたはモードが無効にされている場合、エンコーダは、映像のブロックを映像のビットストリーム表現に変換する際に、このツールまたはモードを使用しない。別の例において、映像処理ツールまたはモードが無効にされている場合、デコーダは、決定または判定に基づいて有効化された映像処理ツールまたはモードを使用してビットストリームが修正されていないことを知って、ビットストリームを処理する。
本明細書に記載された開示された、およびその他の解決策、実施例、実施形態、モジュール、および機能動作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1または複数の組み合わせで実施してもよい。開示された、およびその他の実施形態は、1または複数のコンピュータプログラム製品、すなわち、データ処理装置によって実装されるため、またはデータ処理装置の動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1または複数のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの1または複数の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサ、若しくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1または複数の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成した信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報を符号化するために生成される。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、コンポーネント、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1または複数のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1または複数のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。コンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開することも可能である。
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1または複数のコンピュータプログラムを実行する1または複数のプログラマブルプロセッサによって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(Field Programmable Gate Array)またはASIC(Application Specific Integrated Circuit)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用および専用マイクロプロセッサの両方、並びに任意の種類のデジタルコンピュータの任意の1または複数のプロセッサを含む。一般的に、プロセッサは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1または複数のメモリデバイスとである。一般的に、コンピュータは、データを記憶するための1または複数の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュ記憶装置、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスク等の半導体記憶装置を含む。プロセッサおよびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
本特許明細書は多くの詳細を含むが、これらは、任意の主題の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態のコンテキストで説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテキストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている実施形態における様々なシステムの構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
いくつかの実装形態および実施例のみが記載されており、この特許文献に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。
関連出願の相互参照
願は、2020年4月18日出願の国際特許出願第PCT/CN2020/085484号の優先権および利益を張する2021年4月19日出願の国際特許出願第PCT/CN2021/087999号の国内段階である。上記出願の開示全体は、本明細書の開示の一部として参照により援用される。

Claims (18)

  1. 映像処理の方法であって、
    映像の映像ブロックと、前記映像のビットストリームとの間の変換のために、規則に従って、前記映像ブロックに対するCCLM(Cross-Component Linear Model)のパラメータを決定することと、
    前記決定に基づいて、前記変換を実行することと、
    を有し、
    前記規則は、前記CCLMの前記パラメータの前記決定において近傍の輝度サンプルを示す変数を、前記変数が特定の値を有する場合にのみ用いることを規定する、方法。
  2. 前記映像ブロックの近傍の上の輝度サンプルを示す前記変数の前記特定の値は、デブロッキングフィルタ処理の前の再構成された輝度サンプルの変数に等しい、請求項1に記載の方法。
  3. 前記近傍の上の輝度サンプルが利用可能である場合、pY[x][y]として示される前記近傍の上の輝度サンプルを示す前記変数は、位置(xTbY+x,yTbY+y)にて前記デブロッキングフィルタ処理の前の前記再構成された輝度サンプルに等しく設定され、
    (xTbY,yTbY)は、前記映像ブロックの左上の位置を示し、
    xおよびyは、整数である、請求項2に記載の方法。
  4. xは、0からSubWidthC*max(numSampT,nTbW)-1の範囲にあり、
    nTbWは、前記映像ブロックの幅を示し、
    SubWidthCは、前記映像ブロックの幅の倍率であり、前記映像ブロックを含むピクチャの彩度フォーマットに従ってテーブルから取得され、
    numSampTは、前記映像ブロックの最上および左上における利用可能な近傍の彩度サンプルの数を示す、請求項3に記載の方法。
  5. yは-1または-2である、請求項3に記載の方法。
  6. 前記映像ブロックの近傍の左の輝度サンプルを示す前記変数の値は、デブロッキングフィルタ処理の前の再構成された輝度サンプルの変数に等しい、請求項1に記載の方法。
  7. 前記近傍の左の輝度サンプルが利用可能である場合、pY[x][y]として示される前記近傍の左の輝度サンプルを示す前記変数は、位置(xTbY+x,yTbY+y)にて前記デブロッキングフィルタ処理の前の前記再構成された輝度サンプルに等しく設定され、
    (xTbY,yTbY)は、前記映像ブロックの左上の位置を示し、
    xおよびyは、整数である、請求項6に記載の方法。
  8. xは、-1から-3の範囲にある、請求項7に記載の方法。
  9. yは、0からSubHeightC*max(numSampL,nTbH)-1の範囲にあり、
    nTbHは、前記映像ブロックの高さを示し、
    SubHeightCは、前記映像ブロックの高さの倍率であり、前記映像ブロックを含むピクチャの彩度フォーマットに従ってテーブルから取得され、
    numSampLは、前記映像ブロックの左および左下における利用可能な近傍の彩度サンプルの数を示す、請求項7に記載の方法。
  10. 前記クロスコンポーネント線形モデルは、線形モデルを用いて、彩度成分の予測値を他の成分から導出する、請求項1から9のいずれか一項に記載の方法。
  11. 前記変換は、前記映像を前記ビットストリームに符号化することを含む、請求項1から9のいずれか一項に記載の方法。
  12. 前記変換は、前記映像を前記ビットストリームに復号することを含む、請求項1から9のいずれか一項に記載の方法。
  13. 前記変換は、前記ビットストリームを前記映像から生成することを含み、
    前記方法は更に、前記ビットストリームを非一時的コンピュータ可読記録媒体に格納することを有する、請求項1から12のいずれか一項に記載の方法。
  14. 請求項1から12のうちの1または複数に記載の方法を実装するように構成されたプロセッサを有する映像処理装置。
  15. 映像のビットストリームを格納する方法であって、
    請求項1から12のいずれか一項に記載の方法を有し、
    更に、前記ビットストリームを非一時的コンピュータ可読記録媒体に格納することを有する、方法。
  16. 実行された際に、プロセッサに、請求項1から12のうちの1または複数に記載の方法を実装するように機能させるプログラムを格納したコンピュータ可読媒体。
  17. 上記に記載の方法のいずれかに従って生成されたビットストリームを格納するコンピュータ可読媒体。
  18. ビットストリームを格納するための映像処理装置であって、
    請求項1から12のうちの1または複数のいずれかに記載の方法を実行するように構成された、映像処理装置。
JP2022563091A 2020-04-18 2021-04-19 クロスコンポーネント映像コーディングの信号通知のための構文 Pending JP2023521502A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023204677A JP2024023524A (ja) 2020-04-18 2023-12-04 クロスコンポーネント映像コーディングの信号通知のための構文

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2020085484 2020-04-18
CNPCT/CN2020/085484 2020-04-18
PCT/CN2021/087999 WO2021209064A1 (en) 2020-04-18 2021-04-19 Syntax for signaling cross-component video coding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023204677A Division JP2024023524A (ja) 2020-04-18 2023-12-04 クロスコンポーネント映像コーディングの信号通知のための構文

Publications (1)

Publication Number Publication Date
JP2023521502A true JP2023521502A (ja) 2023-05-24

Family

ID=78083943

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2022563091A Pending JP2023521502A (ja) 2020-04-18 2021-04-19 クロスコンポーネント映像コーディングの信号通知のための構文
JP2022563092A Active JP7473680B2 (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
JP2022563092A Active JP7473680B2 (ja) 2020-04-18 2021-04-19 クロスコンポーネント予測のための利用制約
JP2023204677A Pending JP2024023524A (ja) 2020-04-18 2023-12-04 クロスコンポーネント映像コーディングの信号通知のための構文

Country Status (6)

Country Link
US (4) US20230063736A1 (ja)
EP (2) EP4122194A4 (ja)
JP (3) JP2023521502A (ja)
KR (2) KR20230002433A (ja)
CN (4) CN115462081A (ja)
WO (3) WO2021209065A1 (ja)

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103096057B (zh) * 2011-11-08 2016-06-29 华为技术有限公司 一种色度帧内预测方法和装置
JP6125215B2 (ja) * 2012-09-21 2017-05-10 株式会社東芝 復号装置、及び符号化装置
KR101709775B1 (ko) 2013-07-23 2017-02-23 인텔렉추얼디스커버리 주식회사 영상 부호화/복호화 방법 및 장치
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
CN118075473A (zh) 2017-11-28 2024-05-24 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
WO2020009357A1 (ko) 2018-07-02 2020-01-09 엘지전자 주식회사 Cclm에 기반한 인트라 예측 방법 및 그 장치
EP3815370A4 (en) * 2018-07-12 2021-08-11 Huawei Technologies Co., Ltd. INTRAPREDICTION USING COMPONENT LINEAR MODEL IN VIDEO ENCODING
WO2020015433A1 (en) 2018-07-15 2020-01-23 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction using cross-component linear model
GB2590844B (en) 2018-08-17 2023-05-03 Beijing Bytedance Network Tech Co Ltd Simplified cross component prediction
KR20200028860A (ko) * 2018-09-07 2020-03-17 김기백 인트라 예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2020053806A1 (en) * 2018-09-12 2020-03-19 Beijing Bytedance Network Technology Co., Ltd. Size dependent down-sampling in cross component linear model
WO2020056352A1 (en) * 2018-09-14 2020-03-19 Futurewei Technologies, Inc. Slicing and tiling in video coding
WO2020071616A1 (ko) * 2018-10-04 2020-04-09 엘지전자 주식회사 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
CN117278744A (zh) 2019-02-22 2023-12-22 华为技术有限公司 使用线性模型进行帧内预测的方法及装置
CN113632464B (zh) * 2019-05-21 2023-04-28 华为技术有限公司 分量间预测的方法和设备
US11115658B2 (en) * 2019-06-25 2021-09-07 Qualcomm Incorporated Matrix intra prediction and cross-component linear model prediction harmonization for video coding
BR112022012484A2 (pt) 2019-12-30 2022-09-06 Huawei Tech Co Ltd Método e aparelho de filtragem para predição de modelo linear de componente cruzado
JP2022553444A (ja) 2019-12-30 2022-12-22 ベイジン ダジア インターネット インフォメーション テクノロジー カンパニー リミテッド 映像データをデコードするための方法、電子デバイス、非一時的なコンピュータ可読記憶媒体およびコンピュータプログラム
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

Also Published As

Publication number Publication date
WO2021209065A1 (en) 2021-10-21
KR20230002433A (ko) 2023-01-05
KR20230002432A (ko) 2023-01-05
EP4122194A4 (en) 2023-08-16
US20240114141A1 (en) 2024-04-04
JP2023521503A (ja) 2023-05-24
EP4122194A1 (en) 2023-01-25
CN115462081A (zh) 2022-12-09
US20230063736A1 (en) 2023-03-02
EP4122204A1 (en) 2023-01-25
WO2021209063A1 (en) 2021-10-21
WO2021209064A1 (en) 2021-10-21
EP4122204A4 (en) 2024-02-14
US11902529B2 (en) 2024-02-13
JP2024023524A (ja) 2024-02-21
US20230069756A1 (en) 2023-03-02
CN117596409A (zh) 2024-02-23
US20230075048A1 (en) 2023-03-09
CN115443658A (zh) 2022-12-06
US11936873B2 (en) 2024-03-19
JP7473680B2 (ja) 2024-04-23
CN115428446A (zh) 2022-12-02

Similar Documents

Publication Publication Date Title
WO2021083376A1 (en) Derivation of linear parameter in cross-component video coding
CN115244924A (zh) 跨分量自适应环路滤波器的信令通知
CN113728642A (zh) 编解码视频的量化残差差分脉冲编解码调制表示
US20220272335A1 (en) Cross-component adaptive loop filter
WO2021104409A1 (en) Cross-component adaptive filtering and subblock coding
CN115066899A (zh) 编解码视频的可分二次变换处理
CN113841402A (zh) 视频编解码中大块的变换设计
KR20220058551A (ko) 비디오 코딩의 양 예측 가중 샘플
JP2022545451A (ja) デフォルトおよびユーザ定義のスケーリング行列の使用法
US20240098266A1 (en) Using Neighboring Samples In Cross-Component Video Coding
CN115606182A (zh) 使用增强二次变换的编解码视频处理
JP7473680B2 (ja) クロスコンポーネント予測のための利用制約

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240312