JP2022521757A - 線形モデルを使用したイントラ予測のための方法および装置 - Google Patents

線形モデルを使用したイントラ予測のための方法および装置 Download PDF

Info

Publication number
JP2022521757A
JP2022521757A JP2021549529A JP2021549529A JP2022521757A JP 2022521757 A JP2022521757 A JP 2022521757A JP 2021549529 A JP2021549529 A JP 2021549529A JP 2021549529 A JP2021549529 A JP 2021549529A JP 2022521757 A JP2022521757 A JP 2022521757A
Authority
JP
Japan
Prior art keywords
luma
sample
chroma
block
reconstructed
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
JP2021549529A
Other languages
English (en)
Inventor
アレクセイ・コンスタンチノヴィチ・フィリッポフ
ヴァシリー・アレクセーヴィチ・ルフィツキー
ジエンレ・チェン
Original Assignee
ホアウェイ・テクノロジーズ・カンパニー・リミテッド
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 ホアウェイ・テクノロジーズ・カンパニー・リミテッド filed Critical ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Publication of JP2022521757A publication Critical patent/JP2022521757A/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/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/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/117Filters, e.g. for pre-processing or post-processing
    • 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/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/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)

Abstract

本発明は、ピクチャ処理の分野に関する。特に、本発明は、成分間線形モデリング(CCLM)を使用するイントラ予測(クロムイントラ予測など)を改善することを扱い、より具体的には、異なるクロムフォーマットを用いたイントラ予測のための成分間線形モデルにおいて使用される空間フィルタリングを扱う。コーディング効率を高めるために、予測の間に適用されるダウンサンプリングフィルタのセットが、複数のサポートされるクロマフォーマットのうちの1つであり得るクロマフォーマットに依存するような、ピクチャの成分間予測のための装置、エンコーダ、デコーダ、および対応する方法が提供される。

Description

関連出願の相互参照
本特許出願は、2019年2月22日に出願された米国仮特許出願第62/809,555号の優先権、2019年3月28日に出願された米国仮特許出願第62/825,021号の優先権、および2019年3月28日に出願された米国仮特許出願第62/825,796号の優先権を主張する。前述の特許出願の開示は、全体が参照によって本明細書に組み込まれる。
本開示の実施形態は全般に、ピクチャ処理の分野に関し、より具体的には成分間線形モデリング(CCLM: cross component linear modeling)を使用するイントラ予測(クロムイントラ予測など)に関し、より具体的には異なるクロムフォーマットを用いたイントラ予測のための成分間線形モデルにおいて使用される空間フィルタリングに関する。
ビデオコーディング(ビデオ符号化および/または復号)は、広範囲のデジタルビデオ用途、たとえば、デジタルTV放送、インターネットおよびモバイルネットワークを介したビデオ送信、ビデオチャットなどのリアルタイム会話アプリケーション、ビデオ会議、DVDおよびBlu-ray(登録商標)ディスク、ビデオコンテンツ取得および編集システム、ならびにセキュリティ用途のカムコーダにおいて使用される。
比較的短いビデオであってもそれを描写するために必要とされるビデオの量はかなり多いことがあり、これは、帯域幅容量が限られている通信ネットワークにわたってデータがストリーミングされるとき、または別様に通信されるときに、困難さをもたらし得る。したがって、ビデオデータは一般に、現代の遠隔通信ネットワークで通信される前に圧縮される。メモリリソースが限られていることがあるので、ビデオがストレージデバイスに記憶されるときは、ビデオのサイズも問題になり得る。ビデオ圧縮デバイスはしばしば、送信または記憶の前にビデオデータをコーディングするためにソースにおいてソフトウェアおよび/またはハードウェアを使用し、それによって、デジタルビデオ画像を表現するために必要とされるデータの量を減らす。次いで、圧縮されたデータが、ビデオデータを復号するビデオ解凍デバイスによってデスティネーションにおいて受信される。ネットワークリソースが限られていること、およびより高いビデオ品質に対する需要が高まり続けていることにより、ピクチャ品質をほとんどまたはまったく犠牲にせず、かつより圧縮比が高い、改善された圧縮および解凍の技法が望ましい。
特に、現在の多用途ビデオコーディングおよびテストモデル(VTM)コーダは主に、入力ピクチャフォーマットとしてクロマフォーマット4:2:0をサポートする。入力クロマフォーマットが4:4:4になると、VTMコーダのクラッシュが発生し得る。そのような問題を避けるために、他のクロマフォーマット(4:4:4または4:2:2など)をサポートするコーダが極めて望ましく、広範な用途に対して必須ですらある。
J.Kim、S.W.Park、J.Y.Park、およびB.M.Jeon、Intra Chroma Prediction Using Inter Channel Correlation、文書JCTVC-B021、2010年7月 G.Laroche、J.Taquet、C.Gisquet、P.Onno(Canon)、「CE3: Cross-component linear model simplification (Test 5.1)」、JVET第12回会合へのインプットドキュメント、中国、マカオ、2018年10月 P.Hanhart、Y.He、「CE3: Modified CCLM downsampling filter for "type-2" content (Test 2.4)」、第13回JVET会合へのインプットドキュメントJVET-M0142、モロッコ、マラケシュ、2019年1月
上で言及された課題に鑑みて、複数のクロマフォーマットをサポートするためのビデオコーディングプロセスへの修正が、本開示において提案される。具体的には、本出願の実施形態は、コーディング効率を高めるために、予測の間に適用されるダウンサンプリングフィルタのセットが、複数のサポートされるクロマフォーマットのうちの1つであり得るクロマフォーマットに依存するような、ピクチャの成分間予測のための装置、エンコーダ、デコーダ、および対応する方法を提供することを目的とする。
実施形態は、独立請求項の特徴によって、および、従属請求項の特徴による実施形態のさらなる有利な実装によって定義される。
特定の実施形態が添付の独立請求項において概説され、他の実施形態が従属請求項において概説される。
前述のおよび他の目的は、独立請求項の主題によって達成される。さらなる実装形式が、従属請求項、説明、および図面から明らかである。
本発明の第1の態様によれば、線形モデルを使用してイントラ予測を実行するための方法が提供され、この方法は、
クロマフォーマット情報に基づいてダウンサンプリングフィルタのセット(ダウンサンプリングフィルタ係数のセット)を決定するステップであって、クロマフォーマット情報が、現在のブロックが属するピクチャのクロマフォーマットを示す、ステップと、
ダウンサンプリングフィルタのセットの中の(それから選択された)それぞれのダウンサンプリングフィルタを使用して、現在のブロックのルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプル、および(そのルマブロックに隣接する)そのルマブロックの選択されたルマ参照サンプルのダウンサンプリングされたルマ参照サンプルを取得するステップと、
ダウンサンプリングされたルマ参照サンプルおよびダウンサンプリングされたルマ参照サンプルに対応する(選択されたまたは利用可能な)クロマ参照サンプルに基づいて、1つまたは複数の線形モデル係数を決定するステップと、
線形モデル係数およびルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルに基づいて、ルマブロックに対応するクロマブロックの予測サンプルを取得するステップとを備える。
したがって、クロマフォーマット情報に基づくフィルタセットの選択によって、より正確なクロマ予測信号および予測誤差低減を可能にする、改善された方法が提供される。より小さい予測誤差の技術的な結果は、残差信号エネルギーの低減である。このコーディング方法は、再構築された信号の歪みを減らすために、残差信号を符号化するために必要とされるビットレートを下げるために、または、歪みを減らすこととビットレートを下げることの両方のために、この低減を利用し得る。本発明によって達成されるこれらの技術的な効果は、本発明を使用するコーディング方法の全体的な圧縮性能の値を改善する。
変換ユニット(TU)、予測ユニット(PU)、コーディングユニット(CU)などに対して適用され得る、「ブロック」、「コーディングブロック」、または「画像ブロック」という用語が、本開示において使用されることに留意されたい。VVCでは、一般に、変換ユニットおよびコーディングユニットは、TUの傾斜またはサブブロック変換(SBT)が使用される少数のシナリオを除き、概ね揃っている。「ブロック/画像ブロック/コーディングブロック/変換ブロック」および「ブロックサイズ/変換ブロックサイズ」という用語は、本開示において互いに交換され得ることが理解され得る。「サンプル/ピクセル」という用語は、本開示において互いに交換され得る。
第1の態様自体による方法の可能な実装形式において、クロマフォーマット情報に基づいてダウンサンプリングフィルタのセット(ダウンサンプリングフィルタ係数のセット)を決定することは、
クロマフォーマット情報に基づいて水平方向および垂直方向におけるサブサンプリング比情報(変数SubWidthCおよびSubHeightCなど)を決定することと、
サブサンプリング比情報(変数SubWidthCおよびSubHeightCなど)に基づいてダウンサンプリングフィルタのセットを決定することとを備える。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、4:2:0クロマフォーマットであるクロマフォーマットに対して、ダウンサンプリングフィルタの第1のセット(ダウンサンプリングフィルタ係数のセット)が現在のブロックのルマブロックのために使用され、
4:2:2クロマフォーマットであるクロマフォーマットに対して、ダウンサンプリングフィルタの第2のセット(ダウンサンプリングフィルタ係数のセット)が現在のブロックのルマブロックのために使用され、または、4:4:4クロマフォーマットであるクロマフォーマットに対して、ダウンサンプリングフィルタの第3のセット(すなわち、係数[1]を伴うフィルタ、すなわちバイパスフィルタとして)が、現在のブロックのルマブロックのために使用される。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、サブサンプリング比情報に基づいてダウンサンプリングフィルタのセットを決定することが、
変数SubWidthC=2およびSubHeightC=2であるとき、現在のブロックのルマブロックのためのダウンサンプリングフィルタの第1のセット(ダウンサンプリングフィルタ係数のセット)を決定すること、
SubWidthC=2およびSubHeightC=1であるとき、現在のブロックのルマブロックのためのダウンサンプリングフィルタの第2のセット(ダウンサンプリングフィルタ係数のセット)を決定すること、または、
SubWidthC=1およびSubHeightC=1であるとき、現在のブロックのルマブロックのためのダウンサンプリングフィルタの第3のセット(ダウンサンプリングフィルタ係数のセット)を決定することのうちの1つまたは複数を備える。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、サブサンプリングされたクロマサンプルが現在のブロック内の対応するルマサンプルと同一位置にあるとき、
ダウンサンプリングフィルタのセットの中のそれぞれのダウンサンプリングフィルタを使用して、現在のブロックのルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプル、およびそのルマブロックの選択されたルマ参照サンプルのダウンサンプリングされたルマ参照サンプルを取得することは、
第1のダウンサンプリングフィルタを再構築されたルマサンプルの第1のセットに適用することによって、ルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルを取得することであって、再構築されたルマサンプルの第1のセットが、再構築されたルマサンプル(ダウンサンプリングされたルマサンプル)の位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備える、取得することと、
第1のダウンサンプリングフィルタを再構築されたルマサンプルの第2のセットに適用することによって、少なくとも1つの選択された参照ルマサンプルのダウンサンプリングされたルマ参照サンプルを取得することであって、再構築されたルマサンプルの第2のセットが、選択された参照ルマサンプル(ダウンサンプリングされたルマサンプル)の位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備える、取得することとを備え、
第1のダウンサンプリングフィルタが、ダウンサンプリングフィルタのセットから選択される。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、4:2:2クロマフォーマットが使用されるとき(SubWidthC=2およびSubHeightC=1)、第1のダウンサンプリングフィルタは1Dの分離不可能フィルタであり、または、
4:2:0クロマフォーマットが使用されるとき(SubWidthC=2およびSubHeightC=2)、第1のダウンサンプリングフィルタは2Dの分離不可能フィルタである。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、4:2:2クロマフォーマットが使用されるとき(SubWidthC=2およびSubHeightC=1)、第1のダウンサンプリングフィルタ(規格に記載される1Dの分離不可能フィルタF2)は、[1,2,1]または
Figure 2022521757000002
によって表され、フィルタリングされた再構築されたルマサンプルの位置に水平に隣接する位置にある0ではない係数、係数「2」を伴う中央の位置が、フィルタリングされた再構築されたルマサンプルの位置に対応する。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、4:2:0クロマフォーマットが使用される場合(SubWidthC=2およびSubHeightC=2)、第1のダウンサンプリングフィルタ(VVC規格に記載される2Dの分離不可能フィルタF3)は、
Figure 2022521757000003
によって表され、0ではない係数が、フィルタリングされた再構築されたルマサンプルの位置に水平および/または垂直に隣り合う位置にあり、係数「4」を伴う中央の位置が、フィルタリングされた再構築されたルマサンプルの位置に対応する。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、サブサンプリングされたクロマサンプルが現在のブロック内の対応するルマサンプルと同一位置にないとき、
ダウンサンプリングフィルタのセットの中のそれぞれのダウンサンプリングフィルタを使用して、現在のブロックのルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプル、およびそのルマブロックの選択されたルマ参照サンプルのダウンサンプリングされたルマ参照サンプルを取得することは、
第2のダウンサンプリングフィルタを再構築されたルマサンプルの第3のセットに適用することによって、ルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルを取得することであって、再構築されたルマサンプルの第3のセットが、再構築されたルマサンプル(ダウンサンプリングされたルマサンプル)の位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備える、取得することと、
第2のダウンサンプリングフィルタを再構築されたルマサンプルの第4のセットに適用することによって、少なくとも1つの選択された参照ルマサンプルのダウンサンプリングされたルマ参照サンプルを取得することであって、再構築されたルマサンプルの第4のセットが、選択された参照ルマサンプル(ダウンサンプリングされたルマサンプル)の位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備える、取得することとを備え、
第2のダウンサンプリングフィルタが、ダウンサンプリングフィルタのセットから選択される。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、4:2:2クロマフォーマットが使用される場合(SubWidthC=2およびSubHeightC=1)、第2のダウンサンプリングフィルタは1Dの分離不可能フィルタであり、または、4:2:0クロマフォーマットが使用される場合(SubWidthC=2およびSubHeightC=2)、第2のダウンサンプリングフィルタは2Dの分離不可能フィルタである。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、4:2:2クロマフォーマットが使用される場合(SubWidthC=2およびSubHeightC=1)、第2のダウンサンプリングフィルタ(規格に記載される1Dの分離不可能フィルタF1、F2)は、[2,0]または[1,2,1]または
Figure 2022521757000004
によって表され、0ではない係数が、フィルタリングされた再構築されたルマサンプルの位置に水平に隣接する位置にあり、係数「2」を伴う中央の位置が、フィルタリングされた再構築されたルマサンプルの位置に対応する。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、4:2:0クロマフォーマットが使用される場合(SubWidthC=2およびSubHeightC=2)、第2のダウンサンプリングフィルタ(VVC規格に記載される2Dの分離不可能フィルタF4)は、
Figure 2022521757000005
によって表され、0ではない係数が、フィルタリングされた再構築されたルマサンプルの位置に水平または垂直に隣り合う位置にあり、係数「2」を伴う中央の位置が、フィルタリングされた再構築されたルマサンプルの位置に対応する。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、サブサンプリングされたクロマサンプルが現在のブロック内の対応するルマサンプルと同一位置にあることは、サブサンプリングされたクロマサンプルのクロマサンプルタイプが、
- クロマサンプルタイプ2、または
- クロマサンプルタイプ4
のいずれか1つを備えるときに発生する。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、サブサンプリングされたクロマサンプルが現在のブロック内の対応するルマサンプルと同一位置にないことは、サブサンプリングされたクロマサンプルのクロマサンプルタイプが、
- クロマサンプルタイプ0、
- クロマサンプルタイプ1、
- クロマサンプルタイプ3、または
- クロマサンプルタイプ5
のいずれか1つを備えるときに発生する。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、ダウンサンプリングフィルタのセットは次のように決定される。
クロマフォーマットが4:4:4クロマフォーマットである場合、バイパスフィルタが使用され、それ以外の場合、フィルタのセット{F2,F3,F5,F6}が次のように決定される。
F3[0]=1、F3[1]=2、F3[2]=1
F5[i][j]=F6[i][j]=0、ただしi=0..2、j=0..2
クロマフォーマットが4:2:0クロマフォーマットである場合、
F5[0][1]=1、F5[1][1]=4、F5[2][1]=1、F5[1][0]=1、F5[1][2]=1
F6[0][1]=1、F6[1][1]=2、F6[2][1]=1
F6[0][2]=1、F6[1][2]=2、F6[2][2]=1
F2[0]=1、F2[1]=1
クロマフォーマットが4:2:2クロマフォーマットである場合、
F5[0][1]=0、F5[1][1]=8、F5[2][1]=0、F5[1][0]=0、F5[1][2]=0
F6[0][1]=2、F6[1][1]=4、F6[2][1]=2
F6[0][2]=0、F6[1][2]=0、F6[2][2]=0
F2[0]=2、F2[1]=0
上のように、クロマフォーマット4:2:0および4:2:2のためのフィルタは、隣接サンプルへの最小限のアクセスにより計算の複雑さを最小限にすることが可能にされる。したがって、それは、望ましいスペクトル特性および平滑化効果をもたらすことを可能にする。加えて、それは、クロマ成分がサブサンプリングされない場合に、ルマフィルタリングプロセスを指定することを可能にする。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、ダウンサンプリングフィルタのセットは次のように決定される。
SubWidthC==1およびSubHeightC==1を含む少なくとも第1の条件が満たされない場合、フィルタのセット{F2, F3, F5, F6}は次のように決定される。
F3[0]=1、F3[1]=2、F3[2]=1
F5[i][j]=F6[i][j]=0、ただしi=0..2、j=0..2
SubWidthC==2およびSubHeightC==2を含む少なくとも第2の条件が満たされる場合、
F5[0][1]=1、F5[1][1]=4、F5[2][1]=1、F5[1][0]=1、F5[1][2]=1
F6[0][1]=1、F6[1][1]=2、F6[2][1]=1
F6[0][2]=1、F6[1][2]=2、F6[2][2]=1
F2[0]=1、F2[1]=1
それ以外の場合、
F5[0][1]=0、F5[1][1]=8、F5[2][1]=0、F5[1][0]=0、F5[1][2]=0
F6[0][1]=2、F6[1][1]=4、F6[2][1]=2
F6[0][2]=0、F6[1][2]=0、F6[2][2]=0
F2[0]=2、F2[1]=0
上のように、クロマフォーマット4:2:0および4:2:2のためのフィルタは、隣接サンプルへの最小限のアクセスにより計算の複雑さを最小限にすることが可能にされる。したがって、それは、望ましいスペクトル特性および平滑化効果をもたらすことを可能にする。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、選択されるルマ参照サンプルは、
ルマブロックの上にあり、L個の利用可能なクロマ参照サンプルに基づいて選択される、隣接ルマサンプル、または
ルマブロックの左にあり、L個の利用可能なクロマ参照サンプルに基づいて選択される、隣接ルマサンプルのうちの少なくとも1つを備える。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、利用可能なクロマ参照サンプルの位置は、
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]であるとして指定され、
クロマブロックの次元はW×Hであり、W'およびH'は、
LMモードが適用されるとき、W'=W、H'=Hであり、
LM-Aモードが適用されるとき、W'=W+Hであり、
LM-Lモードが適用されるとき、H'=H+Wであるとして設定される。
第1の態様の任意の前述の実装形態または第1の態様自体による方法の可能な実装形式では、選択されたルマ参照サンプルのダウンサンプリングされたルマ参照サンプルおよびダウンサンプリングされたルマ参照サンプルに対応するクロマ参照サンプルに基づいて、1つまたは複数の線形モデル係数を決定することは、
ダウンサンプリングされたルマ参照サンプルに基づいて最大ルマ値および最小ルマ値を決定することと、
最大ルマ値と関連付けられる1つまたは複数のダウンサンプリングされたルマ参照サンプルの1つまたは複数の位置に少なくとも一部基づいて第1のクロマ値を取得することと、
最小ルマ値と関連付けられる1つまたは複数のダウンサンプリングされたルマ参照サンプルの1つまたは複数の位置に少なくとも一部基づいて第2のクロマ値を取得することと、
第1のクロマ値、第2のクロマ値、最大ルマ値、および最小ルマ値に基づいて、1つまたは複数の線形モデル係数を計算することとを備える。
本発明の第2の態様によれば、ビデオデータの現在の画像ブロックの成分間予測において使用される1つまたは複数のダウンサンプリングフィルタ(ルマダウンサンプリングフィルタ)を決定する方法が提供され、この方法は、
クロマフォーマット情報に基づいて水平方向および垂直方向におけるクロマスケーリング係数を決定するステップであって、クロマフォーマット情報が、現在の画像ブロックが属する現在のピクチャのクロマフォーマットを示す、ステップ、
水平方向および垂直方向におけるクロマスケーリング係数の値が第1の値に等しいとき、現在のブロックのルマブロックのためのダウンサンプリングフィルタの第1のセット(ダウンサンプリングフィルタ係数のセット)を決定するステップ、
水平方向におけるクロマスケーリング係数の値が第1の値に等しく、垂直方向におけるクロマスケーリング係数の値が第2の値に等しいとき、現在のブロックのルマブロックのためのダウンサンプリングフィルタの第2のセット(ダウンサンプリングフィルタ係数のセット)を決定するステップ、または、
水平方向および垂直方向におけるクロマスケーリング係数の値が第2の値に等しいとき、現在のブロックのルマブロックのためのダウンサンプリングフィルタの第3のセット(ダウンサンプリングフィルタ係数のセット)を決定するステップを備える。
本発明の第3の態様によれば、ビデオデータの現在のブロックの成分間予測において使用される1つまたは複数のルマダウンサンプリングフィルタを決定する方法、この方法は、
現在のブロックが属するピクチャのクロマフォーマットを決定するステップと、
クロマフォーマットが4:2:0クロマフォーマットであるとき、現在のブロックのルマブロックのために使用されるべきダウンサンプリングフィルタの第1のセット(ダウンサンプリングフィルタ係数のセット)を決定するステップと、
クロマフォーマットが4:2:2クロマフォーマットであるとき、現在のブロックのルマブロックのために使用されるべきダウンサンプリングフィルタの第2のセット(ダウンサンプリングフィルタ係数のセット)を決定するステップと、
クロマフォーマットが4:4:4クロマフォーマットであるとき、現在のブロックのルマブロックのために使用されるべきダウンサンプリングフィルタの第3のセット(ダウンサンプリングフィルタ係数のセット)を決定するステップとを備える。
本発明の第4の態様によれば、線形モデルを使用したイントラ予測のための装置、これは、
クロマフォーマット情報に基づいてダウンサンプリングフィルタのセットを決定するように構成される決定ユニットであって、クロマフォーマット情報が、現在のブロックが属するピクチャのクロマフォーマットを示す、決定ユニットと、
ダウンサンプリングフィルタのセットの中のそれぞれのダウンサンプリングフィルタを使用して、現在のブロックのルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプル、およびそのルマブロックの選択されたルマ参照サンプルのダウンサンプリングされたルマ参照サンプルを取得するように構成されるフィルタリングユニットと、
ダウンサンプリングされたルマ参照サンプルおよびダウンサンプリングされたルマ参照サンプルに対応するクロマ参照サンプルに基づいて、1つまたは複数の線形モデル係数を決定するように構成される線形モデル導出ユニットと、
線形モデル係数およびルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルに基づいて、ルマブロックに対応するクロマブロックの予測サンプルを取得するように構成される予測処理ユニットとを備える。
変換ユニット(TU)、予測ユニット(PU)、コーディングユニット(CU)などに対して適用され得る、「ブロック」、「コーディングブロック」、または「画像ブロック」という用語が、本開示において使用されることに留意されたい。VVCでは、一般に、変換ユニットおよびコーディングユニットは、TUの傾斜またはサブブロック変換(SBT)が使用される少数のシナリオを除き、概ね揃っている。「ブロック/画像ブロック/コーディングブロック/変換ブロック」および「ブロックサイズ/変換ブロックサイズ」という用語は、本開示において互いに交換され得ることが理解され得る。「サンプル/ピクセル」という用語は、本開示において互いに交換され得る。
したがって、クロマフォーマット情報に基づくフィルタセットの選択によって、より正確なクロマ予測信号および予測誤差低減を可能にする、改善されたデバイスが提供される。より小さい予測誤差の技術的な結果は、残差信号エネルギーの低減である。このコーディング方法は、再構築された信号の歪みを減らすために、残差信号を符号化するために必要とされるビットレートを下げるために、または、歪みを減らすこととビットレートを下げることの両方のために、この低減を利用し得る。本発明によって達成されるこれらの技術的な効果は、本発明を使用するコーディング方法の全体的な圧縮性能の値を改善する。
第4の態様自体によるデバイスの可能な実装形式では、決定ユニットは、
クロマフォーマット情報に基づいて水平方向および垂直方向におけるサブサンプリング比情報を決定し、
サブサンプリング比情報に基づいてダウンサンプリングフィルタのセットを決定するように構成される。
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、
4:2:0クロマフォーマットであるクロマフォーマットに対して、ダウンサンプリングフィルタの第1のセットが現在のブロックのルマブロックのために使用され、
4:2:2クロマフォーマットであるクロマフォーマットに対して、ダウンサンプリングフィルタの第2のセットが現在のブロックのルマブロックのために使用され、または、
4:4:4クロマフォーマットであるクロマフォーマットに対して、ダウンサンプリングフィルタの第3のセットが現在のブロックのルマブロックのために使用される。
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、決定ユニットは、
変数SubWidthC=2およびSubHeightC=2であるとき、現在のブロックのルマブロックのためのダウンサンプリングフィルタの第1のセット(ダウンサンプリングフィルタ係数のセット)を決定すること、
SubWidthC=2およびSubHeightC=1であるとき、現在のブロックのルマブロックのためのダウンサンプリングフィルタの第2のセット(ダウンサンプリングフィルタ係数のセット)を決定すること、または、
SubWidthC=1およびSubHeightC=1であるとき、現在のブロックのルマブロックのためのダウンサンプリングフィルタの第3のセット(ダウンサンプリングフィルタ係数のセット)を決定することのために構成される。
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、サブサンプリングされたクロマサンプルが現在のブロック内の対応するルマサンプルと同一位置にあるとき、
フィルタリングユニットは、第1のダウンサンプリングフィルタを再構築されたルマサンプルの第1のセットに適用することによって、ルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルを取得し、再構築されたルマサンプルの第1のセットが、再構築されたルマサンプルの位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備え、
第1のダウンサンプリングフィルタを再構築されたルマサンプルの第2のセットに適用することによって、少なくとも1つの選択された参照ルマサンプルのダウンサンプリングされたルマ参照サンプルを取得し、再構築されたルマサンプルの第2のセットが、選択された参照ルマサンプルの位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備える、ように構成され、
第1のダウンサンプリングフィルタが、ダウンサンプリングフィルタのセットから選択される。
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、4:2:2クロマフォーマットが使用されるとき(SubWidthC=2およびSubHeightC=1)、第1のダウンサンプリングフィルタは1Dの分離不可能フィルタであり、または、
4:2:0クロマフォーマットが使用されるとき(SubWidthC=2およびSubHeightC=2)、第1のダウンサンプリングフィルタは2Dの分離不可能フィルタである。
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、4:2:2クロマフォーマットが使用されるとき(SubWidthC=2およびSubHeightC=1)、第1のダウンサンプリングフィルタ(規格に記載される1Dの分離不可能フィルタF2)は、[1,2,1]または
Figure 2022521757000006
によって表され、フィルタリングされた再構築されたルマサンプルの位置に水平に隣接する位置にある0ではない係数、係数「2」を伴う中央の位置が、フィルタリングされた再構築されたルマサンプルの位置に対応する。
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、4:2:0クロマフォーマットが使用される場合(SubWidthC=2およびSubHeightC=2)、第1のダウンサンプリングフィルタ(VVC規格に記載される2Dの分離不可能フィルタF3)は、
Figure 2022521757000007
によって表され、0ではない係数が、フィルタリングされた再構築されたルマサンプルの位置に水平および/または垂直に隣り合う位置にあり、係数「4」を伴う中央の位置が、フィルタリングされた再構築されたルマサンプルの位置に対応する。
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、サブサンプリングされたクロマサンプルが現在のブロック内の対応するルマサンプルと同一位置にないとき、
フィルタリングユニットは、第2のダウンサンプリングフィルタを再構築されたルマサンプルの第3のセットに適用することによって、ルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルを取得し、再構築されたルマサンプルの第3のセットが、再構築されたルマサンプルの位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備え、
第2のダウンサンプリングフィルタを再構築されたルマサンプルの第4のセットに適用することによって、少なくとも1つの選択された参照ルマサンプルのダウンサンプリングされたルマ参照サンプルを取得し、再構築されたルマサンプルの第4のセットが、選択された参照ルマサンプルの位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備える、ように構成され、
第2のダウンサンプリングフィルタが、ダウンサンプリングフィルタのセットから選択される。
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、4:2:2クロマフォーマットが使用される場合(SubWidthC=2およびSubHeightC=1)、第2のダウンサンプリングフィルタは1Dの分離不可能フィルタであり、または、
4:2:0クロマフォーマットが使用される場合(SubWidthC=2およびSubHeightC=2)、第2のダウンサンプリングフィルタは2Dの分離不可能フィルタである。
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、4:2:2クロマフォーマットが使用される場合(SubWidthC=2およびSubHeightC=1)、第2のダウンサンプリングフィルタ(規格に記載される1Dの分離不可能フィルタF1、F2)は、[2,0]または[1,2,1]または
Figure 2022521757000008
によって表され、0ではない係数が、フィルタリングされた再構築されたルマサンプルの位置に水平に隣接する位置にあり、係数「2」を伴う中央の位置が、フィルタリングされた再構築されたルマサンプルの位置に対応する。
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、4:2:0クロマフォーマットが使用される場合(SubWidthC=2およびSubHeightC=2)、第2のダウンサンプリングフィルタ(VVC規格に記載される2Dの分離不可能フィルタF4)は、
Figure 2022521757000009
によって表され、0ではない係数が、フィルタリングされた再構築されたルマサンプルの位置に水平または垂直に隣り合う位置にあり、係数「2」を伴う中央の位置が、フィルタリングされた再構築されたルマサンプルの位置に対応する。
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、サブサンプリングされたクロマサンプルが現在のブロック内の対応するルマサンプルと同一位置にあることは、サブサンプリングされたクロマサンプルのクロマサンプルタイプが、
- クロマサンプルタイプ2、または
- クロマサンプルタイプ4
のいずれか1つを備えるときに発生する。
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、サブサンプリングされたクロマサンプルが現在のブロック内の対応するルマサンプルと同一位置にないことは、サブサンプリングされたクロマサンプルのクロマサンプルタイプが、
- クロマサンプルタイプ0、
- クロマサンプルタイプ1、
- クロマサンプルタイプ3、または
- クロマサンプルタイプ5
のいずれか1つを備えるときに発生する。
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、決定ユニットは、ダウンサンプリングフィルタのセットを決定するように構成され、
クロマフォーマットが4:4:4クロマフォーマットである場合、バイパスフィルタが使用され、それ以外の場合、フィルタのセット{F2,F3,F5,F6}が次のように決定される。
F3[0]=1、F3[1]=2、F3[2]=1
F5[i][j]=F6[i][j]=0、ただしi=0..2、j=0..2
クロマフォーマットが4:2:0クロマフォーマットである場合、
F5[0][1]=1、F5[1][1]=4、F5[2][1]=1、F5[1][0]=1、F5[1][2]=1
F6[0][1]=1、F6[1][1]=2、F6[2][1]=1
F6[0][2]=1、F6[1][2]=2、F6[2][2]=1
F2[0]=1、F2[1]=1
クロマフォーマットが4:2:2クロマフォーマットである場合、
F5[0][1]=0、F5[1][1]=8、F5[2][1]=0、F5[1][0]=0、F5[1][2]=0
F6[0][1]=2、F6[1][1]=4、F6[2][1]=2
F6[0][2]=0、F6[1][2]=0、F6[2][2]=0
F2[0]=2、F2[1]=0
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、決定ユニットは、フィルタのセット{F2,F3,F5,F6}を次のように決定するように構成される。
F3[0]=1、F3[1]=2、F3[2]=1
F5[i][j]=F6[i][j]=0、ただしi=0..2、j=0..2
SubWidthC==2およびSubHeightC==2を含む少なくとも第2の条件が満たされる場合、
F5[0][1]=1、F5[1][1]=4、F5[2][1]=1、F5[1][0]=1、F5[1][2]=1
F6[0][1]=1、F6[1][1]=2、F6[2][1]=1
F6[0][2]=1、F6[1][2]=2、F6[2][2]=1
F2[0]=1、F2[1]=1
それ以外の場合、
F5[0][1]=0、F5[1][1]=8、F5[2][1]=0、F5[1][0]=0、F5[1][2]=0
F6[0][1]=2、F6[1][1]=4、F6[2][1]=2
F6[0][2]=0、F6[1][2]=0、F6[2][2]=0
F2[0]=2、F2[1]=0
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、選択されるルマ参照サンプルは、
ルマブロックの上にあり、L個の利用可能なクロマ参照サンプルに基づいて選択される、隣接ルマサンプル、または
ルマブロックの左にあり、L個の利用可能なクロマ参照サンプルに基づいて選択される、隣接ルマサンプルのうちの少なくとも1つを備える。
第4の態様の任意の前述の実装形態または第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]であるとして指定され、
クロマブロックの次元はW×Hであり、W'およびH'は、
LMモードが適用されるとき、W'=W、H'=Hであり、
LM-Aモードが適用されるとき、W'=W+Hであり、
LM-Lモードが適用されるとき、H'=H+Wであるとして設定される。
第4の態様の任意の前述の実装形態または第4の態様自体によるデバイスの可能な実装形式では、線形モデル導出ユニットは、ダウンサンプリングされたルマ参照サンプルに基づいて最大ルマ値および最小ルマ値を決定し、
最大ルマ値と関連付けられる1つまたは複数のダウンサンプリングされたルマ参照サンプルの1つまたは複数の位置に少なくとも一部基づいて第1のクロマ値を取得し、
最小ルマ値と関連付けられる1つまたは複数のダウンサンプリングされたルマ参照サンプルの1つまたは複数の位置に少なくとも一部基づいて第2のクロマ値を取得し、
第1のクロマ値、第2のクロマ値、最大ルマ値、および最小ルマ値に基づいて、1つまたは複数の線形モデル係数を計算するように構成される。
第5の態様によれば、本開示は、符号化デバイスによって実施される符号化の方法に関し、この方法は、
前述の態様のいずれかに従って、線形モデル(成分間線形モデル(CCLM)または多方向線形モデル(MDLM))を使用してイントラ予測を実行するステップと、
複数のシンタックス要素を含むビットストリームを生成するステップとを備え、複数のシンタックス要素は、ブロックに属するルマサンプルのためのフィルタの選択(CCLMのルマフィルタ、特に、sps_cclm_colocated_chroma_flagなどのSPSフラグの選択など)を示すシンタックス要素を含む。
第5の態様自体による方法の可能な実装形式では、シンタックス要素の値が0または偽であるとき、フィルタは、線形モデルの決定および予測のためにルマサンプルに適用され、
シンタックス要素の値が1または真であるとき、フィルタは、線形モデルの決定および予測のためにルマサンプルに適用されない。
第6の態様によれば、本開示は、復号デバイスによって実施される復号の方法に関し、この方法は、
複数のシンタックス要素をビットストリームから解析するステップであって、複数のシンタックス要素が、ブロックに属するルマサンプルのためのフィルタの選択(CCLMのルマフィルタ、特に、sps_cclm_colocated_chroma_flagなどのSPSフラグの選択など)を示すシンタックス要素を含む、ステップと、
前述の態様のいずれかに従って、示された線形モデル(CCLMなど)を使用してイントラ予測を実行するステップとを備える。
第6の態様自体による方法の可能な実装形式では、シンタックス要素の値が0または偽であるとき、フィルタは、線形モデルの決定および予測のためにルマサンプルに適用され、
シンタックス要素の値が1または真であるとき、フィルタは、線形モデルの決定および予測のためにルマサンプルに適用されない。たとえば、同一位置にあるとき、ルマフィルタを使用しない。
第7の態様によれば、本開示はデコーダに関し、このデコーダは、
1つまたは複数のプロセッサと、
プロセッサに結合されプロセッサによる実行のためのプログラミングを記憶する、非一時的コンピュータ可読記憶媒体とを備え、プロセッサによって実行されると、プログラミングは、前述の態様のいずれかまたは前述の態様の任意の可能な実施形態に従って方法を行うようにデコーダを構成する。
第8の態様によれば、本開示はエンコーダに関し、このエンコーダは、
1つまたは複数のプロセッサと、
プロセッサに結合されプロセッサによる実行のためのプログラミングを記憶する、非一時的コンピュータ可読記憶媒体とを備え、プロセッサによって実行されると、プログラミングは、前述の態様または前述の態様の任意の可能な実施形態に従って方法を行うようにエンコーダを構成する。
本開示の第1の態様による方法は、本開示の第4の態様に従って装置によって実行され得る。本開示の第6の態様による方法のさらなる特徴および実装形式は、本開示の第1の態様による装置の特徴および実装形式に対応する。
本開示の第1の態様による方法は、本開示の第4の態様に従って装置によって実行され得る。本開示の第1の態様による方法のさらなる特徴および実装形式は、本開示の第4の態様による装置の特徴および実装形式に対応する。
別の態様によれば、本開示は、プロセッサおよびメモリを含む、ビデオストリームを復号するための装置に関する。メモリは、プロセッサに第1の態様または第3の態様に従って方法を実行させる命令を記憶している。
別の態様によれば、本開示は、プロセッサおよびメモリを含む、ビデオストリームを符号化するための装置に関する。メモリは、プロセッサに第2の態様に従って方法を実行させる命令を記憶している。
別の態様によれば、実行されると、ビデオデータをコーディングするように構成される1つまたは複数のプロセッサを生じさせる命令を記憶した、コンピュータ可読記憶媒体が提案される。命令は、1つまたは複数のプロセッサに、第1もしくは第2の態様に従って、または、第1もしくは第2もしくは第3の態様の任意の可能な実施形態に従って、方法を実行させる。
別の態様によれば、本開示は、コンピュータ上で実行されると、第1もしくは第2もしくは第3の態様に従って、または、第1もしくは第2もしくは第3の態様の任意の可能な実施形態に従って、方法を実行するためのプログラムコードを備えるコンピュータプログラムに関する。
1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。他の特徴、物体、および利点が、説明、図面、および特許請求の範囲から明らかになるであろう。
以下では、実施形態は、添付の図面および図画を参照してより詳しく説明される。
本明細書において開示される実施形態を実装するように構成されるビデオコーディングシステムの例を示すブロック図である。 本明細書において開示される実施形態を実装するように構成されるビデオコーディングシステムの別の例を示すブロック図である。 本明細書において開示される実施形態を実装するように構成されるビデオエンコーダの例を示すブロック図である。 本明細書において開示される実施形態を実装するように構成されるビデオデコーダの例示的な構造を示すブロック図である。 本明細書において開示される実施形態による符号化装置または復号装置の例を示すブロック図である。 本明細書において開示される例示的な実施形態による符号化装置または復号装置の別の例を示すブロック図である。 ピクチャにおける4:2:0ルマサンプルおよびクロマサンプルの名目の垂直位置と水平位置を示す例の図である。 ピクチャにおける4:2:2ルマサンプルおよびクロマサンプルの名目の垂直位置と水平位置を示す例の図である。 ピクチャにおける4:4:4ルマサンプルおよびクロマサンプルの名目の垂直位置と水平位置を示す例の図である。 インターレースされた画像の様々なサンプリングパターンを示す図である。 クロマイントラ予測のための成分間線形モデルの概念を示す図である。 現在のピクチャのクロマフォーマットが4:2:0であるときの、現在のピクチャの現在の画像ブロックならびに関連するルマ参照サンプルおよびクロマ参照サンプルに含まれる、同一位置のルマブロックおよびクロマブロックを示す例の図である。 現在のピクチャのクロマフォーマットが4:2:2であるときの、現在のピクチャの現在の画像ブロックならびに関連するルマ参照サンプルおよびクロマ参照サンプルに含まれる、同一位置のルマブロックおよびクロマブロックを示す例の図である。 現在のピクチャのクロマフォーマットが4:4:4であるときの、現在のピクチャの現在の画像ブロックならびに関連するルマ参照サンプルおよびクロマ参照サンプルに含まれる、同一位置のルマブロックおよびクロマブロックを示す例の図である。 現在のピクチャのクロマフォーマットが4:2:0であるときの、ルマブロック711の選択されたルマ参照サンプル715のダウンサンプリングされたルマ参照サンプル719、およびダウンサンプリングされたルマ参照サンプル719に対応するクロマ参照サンプル705を示す例の図である。 線形モデルパラメータ導出のために使用される例示的なクロマ参照サンプルおよびルマ参照サンプルを示す図である。 現在のピクチャのクロマフォーマットが4:2:0であるときの、成分間イントラ予測の間のダウンサンプリングに関わるルマサンプルの空間位置を示す図である。 成分間イントラ予測をサポートするためのダウンサンプリングの例示的な機構を示す概略図である。 本開示のいくつかの態様による、成分間イントラ予測を実行するためのプロセスを示す流れ図である。 本開示のいくつかの態様による、成分間イントラ予測を実行するために構成されるデバイスの概略図である。 コンテンツ配信サービスを実現するコンテンツ供給システムの例示的な構造を示すブロック図である。 端末デバイスの例の構造を示すブロック図である。
以下では、同一の参照符号は、別段指定されない限り、同一のまたは少なくとも機能的に等価な特徴を指す。
以下の説明では、本開示の一部を形成し、例示として、本明細書において開示される実施形態の具体的な態様または本明細書において開示される実施形態が使用され得る具体的な態様を示す、添付の図面への参照が行われる。本明細書において開示される実施形態は、他の態様において使用されてもよく、図面に示されない構造的または論理的な変更を備えてもよいことが理解される。したがって、以下の詳細な説明は限定する意味でとらえられるべきではなく、本開示の範囲は添付の特許請求の範囲によって定義される。
以下の略語が適用される。
たとえば、説明される方法に関連した開示は、方法を実行するように構成される対応するデバイスまたはシステムに対しても当てはまることがあり、その逆も然りであることが理解される。たとえば、1つまたは複数の特定の方法ステップが説明される場合、対応するデバイスは、説明された1つまたは複数の方法ステップを実行するための1つまたは複数のユニット、たとえば機能ユニット(たとえば、1つまたは複数のステップを実行する1つのユニット、または複数のステップのうちの1つまたは複数を各々実行する複数のユニット)を、そのような1つまたは複数のユニットが図面において明示的に説明または図示されていない場合であっても、含み得る。一方、たとえば、1つまたは複数のユニット、たとえば機能ユニットに基づいて特定の装置が説明される場合、対応する方法は、1つまたは複数のユニットの機能を実行するための1つのステップ(たとえば、1つまたは複数のユニットの機能を実行する1つのステップ、または複数のユニットのうちの1つまたは複数の機能を各々実行する複数のステップ)を、そのような1つまたは複数のステップが図面において明示的に説明または図示されていない場合であっても、含み得る。さらに、本明細書において説明される様々な例示的な実施形態および/または態様の特徴は、別段特に述べられない限り、互いと組み合わせられ得ることが理解される。
ビデオコーディングは通常、ビデオまたはビデオシーケンスを形成する、ピクチャのシーケンスの処理を指す。「ピクチャ」という用語の代わりに、ビデオコーディングの分野では、同義語として「フレーム」または「画像」という用語が使用され得る。ビデオコーディング(または一般にコーディング)は、ビデオ符号化およびビデオ復号という2つの部分を備える。ビデオ符号化はソース側で実行され、これは通常、(より効率的な記憶および/または送信のために)ビデオピクチャを表現するために必要とされるデータの量を減らすために、元のビデオピクチャを(たとえば、圧縮によって)処理することを備える。ビデオ復号は、デスティネーション側において実行され、通常は、ビデオピクチャを再構築するための、エンコーダと比較して逆の処理を備える。ビデオピクチャ(または一般にピクチャ)の「コーディング」に言及する実施形態は、ビデオピクチャの「符号化」もしくは「復号」またはそれぞれのビデオシーケンスに関連するものと理解されるべきである。符号化部分と復号部分の組合せは、コーデック(コーディングおよび復号)とも呼ばれる。
無損失ビデオコーディングの場合、元のビデオピクチャを再構築することができ、すなわち、再構築されたビデオピクチャは、元のビデオピクチャと同じ品質を有する(記憶または送信の間に送信損失または他のデータ損失がないと仮定して)。有損失ビデオコーディングの場合、たとえば量子化によるさらなる圧縮が、ビデオピクチャを表現するデータの量を減らすために実行され、ビデオピクチャはデコーダにおいて完全に再構築することはできず、すなわち、再構築されたビデオピクチャの品質は、元のビデオピクチャの品質と比較してより低く、または悪い。
いくつかのビデオコーディング規格は、「有損失ハイブリッドビデオコーデック」のグループに属する(すなわち、サンプル領域における空間予測と時間予測、および変換領域において量子化を適用するための2D変換コーディングを組み合わせる)。ビデオシーケンスの各ピクチャは通常、非重複ブロックのセットへと区分され、コーディングは通常、ブロックレベルで実行される。言い換えると、エンコーダにおいて、ビデオは通常、たとえば、予測ブロックを生成するために空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を使用し、予測ブロックを現在のブロック(現在処理されている/処理されるべきブロック)から差し引いて残差ブロックを取得し、残差ブロックを変換し、変換領域において残差ブロックを量子化して、送信されるべきデータの量を減らす(圧縮)ことによって、ブロック(ビデオブロック)レベルで処理、すなわち符号化されるが、デコーダでは、現在のブロックを表現のために再構築するために、エンコーダと比較して逆の処理が、符号化または圧縮されたブロックに適用される。さらに、エンコーダは、後続のブロックを処理、すなわちコーディングするための、同一の予測(たとえば、イントラ予測およびインター予測)および/または再構築をエンコーダとデコーダの両方が生成するように、デコーダの処理ループを複製する。
ビデオコーディングシステム10の以下の実施形態では、ビデオエンコーダ20およびビデオデコーダ30は、図1から図3に基づいて説明される。
図1Aは、例示的なコーディングシステム10、たとえば本出願の技法を利用し得るビデオコーディングシステム10(またはショートコーディングシステム10)を示す、概略ブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(またはショートエンコーダ20)およびビデオデコーダ30(またはショートデコーダ30)は、本出願において説明される様々な例に従って技法を実行するように構成され得る、デバイスの例を表す。
図1Aに示されるように、コーディングシステム10は、符号化されたピクチャデータ21を、たとえば符号化されたピクチャデータ13を復号するためのデスティネーションデバイス14に提供するように構成される、ソースデバイス12を備える。
ソースデバイス12は、エンコーダ20を備え、加えて、すなわち任意選択で、ピクチャソース16、プリプロセッサ(または前処理ユニット)18、たとえばピクチャプリプロセッサ18、および通信インターフェースまたは通信ユニット22を備え得る。
ピクチャソース16は、任意の種類のピクチャキャプチャデバイス、たとえば、現実世界のピクチャをキャプチャするためのカメラ、および/または、任意の種類のピクチャ生成デバイス、たとえば、コンピュータアニメーションピクチャを生成するためのコンピュータグラフィクスプロセッサ、または、現実世界のピクチャ、コンピュータで生成されるピクチャ(たとえば、スクリーンコンテンツ、仮想現実(VR)ピクチャ)、および/もしくはそれらの任意の組合せ(たとえば、拡張現実(AR)ピクチャ)を取得および/もしくは提供するための任意の種類の他のデバイスを備えてもよく、またはそれらであってもよい。ピクチャソースは、前述のピクチャのいずれかを記憶する任意の種類のメモリまたはストレージであり得る。
プリプロセッサ18および前処理ユニット18によって実行される処理とは区別して、ピクチャまたはピクチャデータ17は、生のピクチャまたは生のピクチャデータ17とも呼ばれ得る。
プリプロセッサ18は、(生の)ピクチャデータ17を受信し、ピクチャデータ17に対して前処理を実行して、前処理されたピクチャ19または前処理されたピクチャデータ19を取得するように構成される。プリプロセッサ18によって実行される前処理は、たとえば、トリミング、カラーフォーマット変換(たとえば、RGBからYCbCrへの)、色補正、またはノイズ除去を備え得る。前処理ユニット18は任意選択の構成要素であり得ることが理解され得る。
ビデオエンコーダ20は、前処理されたピクチャデータ19を受信し、符号化されたピクチャデータ21を提供するように構成される(さらなる詳細が、たとえば図2に基づいて以下で説明される)。
ソースデバイス12の通信インターフェース22は、符号化されたピクチャデータ21を受信し、通信チャネル13を介して符号化されたピクチャデータ21(またはその任意のさらに処理されたバージョン)を別のデバイス、たとえばデスティネーションデバイス14または任意の他のデバイスに、記憶または直接の再構築のために送信するように構成され得る。
デスティネーションデバイス14は、デコーダ30(たとえば、ビデオデコーダ30)を備え、加えて、すなわち任意選択で、通信インターフェースまたは通信ユニット28、ポストプロセッサ32(または後処理ユニット32)、およびディスプレイデバイス34を備え得る。
デスティネーションデバイス14の通信インターフェース28は、符号化されたピクチャデータ21(またはその任意のさらなる処理されたバージョン)を、たとえば、ソースデバイス12から直接、または任意の他のソース、たとえばストレージデバイス、たとえば符号化ピクチャデータストレージデバイスから受信し、符号化されたピクチャデータ21をデコーダ30に提供するように構成される。
通信インターフェース22および通信インターフェース28は、ソースデバイス12とデスティネーションデバイス14との間の直接の通信リンク、たとえば直接の有線もしくはワイヤレス接続、または、任意の種類のネットワーク、たとえば有線ネットワークもしくはワイヤレスネットワークもしくはその任意の組合せ、または、任意の種類のプライベートネットワークおよびパブリックネットワーク、または、それらの任意の種類の組合せを介して、符号化されたピクチャデータ21または符号化されたデータ13を送信または受信するように構成され得る。
通信インターフェース22は、たとえば、符号化されたピクチャデータ21を適切なフォーマット、たとえばパケットへとパッケージングし、および/または、通信リンクもしくは通信ネットワークを介した送信のために、任意の種類の送信符号化もしくは処理を使用して、符号化されたピクチャデータを処理するように構成され得る。
通信インターフェース22のカウンターパートとなる通信インターフェース28は、たとえば、送信されたデータを受信し、任意の種類の対応する送信の復号もしくは処理および/またはデパッケージングを使用して送信データを処理し、符号化されたピクチャデータ21を取得するように構成され得る。
通信インターフェース22と通信インターフェース28の両方が、ソースデバイス12からデスティネーションデバイス14を指し示す図1Aの通信チャネル13のための矢印により示されるように、単方向通信インターフェースとして、または、双方向通信インターフェースとして構成されてもよく、たとえば、メッセージを送信して受信するように、たとえば接続をセットアップし、通信リンクおよび/またはデータ送信、たとえば符号化されたピクチャデータの送信に関する任意の他の情報に肯定応答してそれを交換するように構成されてもよい。
デコーダ30は、符号化されたピクチャデータ21を受信し、復号されたピクチャデータ31または復号されたピクチャ31を提供するように構成される(さらなる詳細が、たとえば図3または図5に基づいて以下で説明される)。
デスティネーションデバイス14のポストプロセッサ32は、復号されたピクチャデータ31(再構築されたピクチャデータとも呼ばれる)、たとえば復号されたピクチャ31を後処理して、後処理されたピクチャデータ33、たとえば後処理されたピクチャ33を取得するように構成される。後処理ユニット32によって実行される後処理は、たとえば、カラーフォーマットの変換(たとえば、YCbCrからRGBへの)、色補正、トリミング、または再サンプリング、または、たとえばディスプレイデバイス34による表示のために、たとえば復号されたピクチャデータ31を準備するための、任意の他の処理を備え得る。
デスティネーションデバイス14のディスプレイデバイス34は、ピクチャを、たとえばユーザまたは視聴者に表示するための、後処理されたピクチャデータ33を受信するように構成される。ディスプレイデバイス34は、再構築されたピクチャを表現するための任意の種類のディスプレイ、たとえば統合されたまたは外部のディスプレイもしくはモニタであってもよく、またはそれらを備えてもよい。ディスプレイは、たとえば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、liquid crystal on silicon(LCoS)、デジタル光プロセッサ(DLP)、または、任意の種類の他のディスプレイを備え得る。
図1Aはソースデバイス12とデスティネーションデバイス14を別々のデバイスとして図示するが、デバイスの実施形態はこれらの両方または両方の機能、すなわちソースデバイス12または対応する機能およびデスティネーションデバイス14または対応する機能も備え得る。そのような実施形態では、ソースデバイス12または対応する機能およびデスティネーションデバイス14または対応する機能は、同じハードウェアおよび/もしくはソフトウェアを使用して、または別個のハードウェアおよび/もしくはソフトウェアによって、またはこれらの任意の組合せによって実装され得る。
説明に基づいて当業者には明らかとなるように、図1Aに示されるような、異なるユニットの機能、またはソースデバイス12および/もしくはデスティネーションデバイス14内の機能の存在ならびに(厳密な)分割は、実際のデバイスおよび適用例に応じて変化し得る。
エンコーダ20(たとえば、ビデオエンコーダ20)またはデコーダ30(たとえば、ビデオデコーダ30)またはエンコーダ20とデコーダ30の両方が、1つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ハードウェア、ビデオコーディング専用、またはこれらの任意の組合せなどの、図1Bに示されるような処理回路を介して実装され得る。エンコーダ20は、図2のエンコーダ20および/または本明細書において説明される任意の他のエンコーダシステムもしくはサブシステムに関連して論じられるような様々なモジュールを具現化するために、処理回路46を介して実装され得る。デコーダ30は、図3のデコーダ30および/または本明細書において説明される任意の他のデコーダシステムもしくはサブシステムに関連して論じられるような様々なモジュールを具現化するために、処理回路46を介して実装され得る。処理回路は、後で論じられるような様々な動作を実行するように構成され得る。図5に示されるように、技法がソフトウェアで部分的に実施される場合、デバイスは、適切な非一時的コンピュータ可読記憶媒体にソフトウェアのための命令を記憶し、本開示の技法を実行するために、1つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行し得る。ビデオエンコーダ20とビデオデコーダ30のいずれかが、たとえば図1Bに示されるように、単一のデバイスにおいて、組み合わせられたエンコーダ/デコーダ(コーデック)の一部として統合され得る。
ソースデバイス12およびデスティネーションデバイス14は、任意の種類のハンドヘルドデバイスまたは据置型デバイス、たとえば、ノートブックまたはラップトップコンピュータ、携帯電話、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビジョン、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス(コンテンツサービスサーバまたはコンテンツ配信サーバなど)、放送受信機デバイス、放送送信機デバイスなどを含む、広範囲のデバイスのいずれかを備えてもよく、オペレーティングシステムを使用しなくてもよく、または任意の種類のオペレーティングシステムを使用してもよい。いくつかの場合、ソースデバイス12およびデスティネーションデバイス14は、ワイヤレス通信に対応し得る。したがって、ソースデバイス12およびデスティネーションデバイス14は、ワイヤレス通信デバイスであり得る。
いくつかの場合、図1Aに示されるビデオコーディングシステム10は単なる例であり、本出願の技法は、符号化デバイスと復号デバイスとの間のどのようなデータ通信も必ずしも含まないビデオコーディング環境(たとえば、ビデオ符号化またはビデオ復号)に適用され得る。他の例では、データは、ローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われる。ビデオ符号化デバイスは、データを符号化してメモリに記憶してもよく、および/または、ビデオ復号デバイスは、メモリからデータを取り出して復号してもよい。いくつかの例では、符号化および復号は、互いに通信せず、単にデータをメモリへと符号化し、および/またはメモリからデータを取り出して復号する、デバイスによって実行される。
説明の便宜上、実施形態は、たとえば、高効率ビデオコーディング(HEVC)を参照して、または、ITU-T Video Coding Experts Group(VCEG)およびISO/IEC Motion Picture Experts Group(MPEG)のJoint Collaboration Team on Video Coding(JCT-VC)により開発される次世代ビデオコーディング規格である、多用途ビデオコーディング(VVC)の参照ソフトウェアを参照して、本明細書において説明される。当業者は、本明細書において開示される実施形態がHEVCまたはVVCに限定されないことを理解するだろう。
エンコーダおよび符号化方法
図2は、本出願の技法を実施するように構成される、例示的なビデオエンコーダ20の概略ブロック図を示す。図2の例では、ビデオエンコーダ20は、入力201(または入力インターフェース201)、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、および逆変換処理ユニット212、再構築ユニット214、ループフィルタユニット220、復号ピクチャバッファ(DPB)230、モード選択ユニット260、エントロピー符号化ユニット270、および出力272(または出力インターフェース272)を備える。モード選択ユニット260は、インター予測ユニット244、イントラ予測ユニット254、および区分ユニット262を含み得る。インター予測ユニット244は、動き推定ユニットおよび動き補償ユニット(図示せず)を含み得る。図2に示されるようなビデオエンコーダ20はまた、ハイブリッドビデオコーデックに従ったハイブリッドビデオエンコーダまたはビデオエンコーダとも呼ばれ得る。
残差計算ユニット204、変換処理ユニット206、量子化ユニット208、モード選択ユニット260は、エンコーダ20の順方向の信号パスを形成するものとして言及されることがあり、一方、逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(DPB)230、インター予測ユニット244、およびイントラ予測ユニット254は、ビデオエンコーダ20の逆方向の信号パスを形成するものとして言及されることがあり、ビデオエンコーダ20の逆方向の信号パスは、デコーダの信号パスに対応する(図3のビデオデコーダ30参照)。逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、ループフィルタ220、復号ピクチャバッファ(DPB)230、インター予測ユニット244、およびイントラ予測ユニット254は、ビデオエンコーダ20の「内蔵デコーダ」を形成するものとしても言及される。
ピクチャおよびピクチャ区分(ピクチャおよびブロック)
エンコーダ20は、たとえば入力201を介して、ピクチャ17(またはピクチャデータ17)、たとえばビデオまたはビデオシーケンスを形成するピクチャのシーケンスのピクチャを受信するように構成され得る。受信されたピクチャまたはピクチャデータは、前処理されたピクチャ19(または前処理されたピクチャデータ19)でもあり得る。簡潔にするために、以下の説明はピクチャ17に言及する。ピクチャ17は、(特に、現在のピクチャを、他のピクチャ、たとえば同じビデオシーケンス、すなわち現在のピクチャも備えるビデオシーケンスの以前に符号化および/または復号されたピクチャから区別するために、ビデオコーディングにおいて)現在のピクチャまたはコーディングされるべきピクチャとも呼ばれ得る。
(デジタル)ピクチャは、強度値を伴うサンプルの2次元アレイまたは行列であり、またはそれらとして見なされ得る。アレイの中のサンプルは、ピクセル(ピクチャ要素の短縮形)またはペルとも呼ばれ得る。アレイまたはピクチャの水平方向と垂直方向(または軸)におけるサンプルの数は、ピクチャのサイズおよび/または分解能を定義する。色の表現のために、通常は3つの色の成分が利用され、すなわち、ピクチャは、3つのサンプルアレイで表され、またはそれらを含み得る。RBGフォーマットまたは色空間において、ピクチャは、対応する赤、緑、および青のサンプルアレイを備える。しかしながら、ビデオコーディングにおいて、各ピクセルは通常、輝度および色度フォーマットまたは色空間、たとえばYCbCrで表現され、これは、Yにより示される輝度成分(Lが代わりに使用されることもある)およびCbとCrにより示される2つの色度成分を備える。輝度(またはショートルマ)成分Yは、明るさまたはグレーレベルの強度(たとえば、グレースケールピクチャのような)を表し、2つの色度(またはショートクロマ)成分CbおよびCrは、色度情報または色情報成分を表す。したがって、YCbCrフォーマットのピクチャは、輝度サンプル値(Y)の輝度サンプルアレイと、色度値(CbおよびCr)の2つの色度サンプルアレイとを備える。RGBフォーマットのピクチャを、YCbCrフォーマットへと転換または変換することができ、その逆も可能であり、この処理は色変換または色転換としても知られている。ピクチャがモノクロームである場合、ピクチャは輝度サンプルアレイのみを備え得る。したがって、ピクチャは、たとえば、モノクロームフォーマットにおけるルマサンプルのアレイ、または、4:2:0、4:2:2、および4:4:4カラーフォーマットにおけるルマサンプルのアレイおよびクロマサンプルの2つの対応するアレイであり得る。
ビデオエンコーダ20の実施形態は、ピクチャ17を複数の(通常は重複しない)ピクチャブロック203へと区分するように構成されるピクチャ区分ユニット(図2に示されない)を備え得る。これらのブロックは、ルートブロック、マクロブロック(H.264/AVC)またはコーディングツリーブロック(CTB)またはコーディングツリーユニット(CTU)(H.265/HEVCおよびVVC)とも呼ばれ得る。ピクチャ区分ユニットは、ビデオシーケンスのすべてのピクチャに対して同じブロックサイズを使用して現在のブロックサイズを定義する対応するグリッドを使用し、または、ピクチャ間で、もしくはピクチャのサブセットもしくはグループ間で現在のブロックサイズを変更し、各ピクチャを対応するブロックへと区分するように構成され得る。
さらなる実施形態では、ビデオエンコーダは、ピクチャ17のブロック203、たとえば、ピクチャ17を形成する1つの、いくつかの、またはすべてのブロックを直接受信するように構成され得る。ピクチャブロック203は、現在のピクチャブロックまたはコーディングされるべきピクチャブロックとも呼ばれ得る。
ピクチャ17のように、ピクチャブロック203はやはり、強度値(サンプル値)を伴うサンプルの2次元アレイもしくは行列であり、またはそれらとして見なされ得るが、ピクチャ17よりも次元が小さい。言い換えると、現在のブロック203は、たとえば、1つのサンプルアレイ(たとえば、モノクロームピクチャ17の場合はルマアレイ、またはカラーピクチャの場合にはルマアレイもしくはクロマアレイ)または3つのサンプルアレイ(たとえば、カラーピクチャ17の場合にはルマアレイおよび2つのクロマアレイ)、または適用されるカラーフォーマットに応じた任意の他の数および/もしくは種類のアレイを備え得る。現在のブロック203の水平方向と垂直方向(または軸)におけるサンプルの数は、ブロック203のサイズを定義する。したがって、ブロックは、たとえば、サンプルのM×N(M列対N行)のアレイ、または変換係数のM×Nのアレイであり得る。
図2に示されるようなビデオエンコーダ20の実施形態は、ブロックごとにピクチャ17を符号化するように構成されてもよく、たとえば、符号化および予測はブロック203ごとに実行される。
図2に示されるようなビデオエンコーダ20の実施形態はさらに、スライス(ビデオスライスとも呼ばれる)を使用することによって、ピクチャを区分および/または符号化するように構成されてもよく、ピクチャは、1つまたは複数のスライス(通常は重複しない)へと区分され、またはそれらを使用して符号化されてもよく、各スライスは1つまたは複数のブロック(たとえば、CTU)を備えてもよい。
図2に示されるようなビデオエンコーダ20の実施形態はさらに、タイルグループ(ビデオタイルグループとも呼ばれる)および/またはタイル(ビデオタイルとも呼ばれる)を使用することによって、ピクチャを区分および/または符号化するように構成されてもよく、ピクチャは、1つまたは複数のタイルグループ(通常は重複しない)へと区分され、またはそれらを使用して符号化されてもよく、各タイルグループは、たとえば、1つまたは複数のブロック(たとえば、CTU)または1つまたは複数のタイルを備えてもよく、各タイルは、たとえば、長方形の形状であってもよく、1つまたは複数のブロック(たとえば、CTU)、たとえば完全なブロックまたは部分的なブロックを備えてもよい。
残差計算
残差計算ユニット204は、ピクチャブロック203および予測ブロック265(予測ブロック265についてのさらなる詳細は後で提供される)に基づいて、たとえば、ピクチャブロック203のサンプル値から予測ブロック265のサンプル値をサンプルごとに(ピクセルごとに)差し引いて、サンプル領域において残差ブロック205を取得することによって、残差ブロック205(残差205とも呼ばれる)を計算するように構成され得る。
変換
変換処理ユニット206は、変換、たとえば離散コサイン変換(DCT)または離散サイン変換(DST)を残差ブロック205のサンプル値に対して適用して、変換領域において変換係数207を取得するように構成され得る。変換係数207は、変換残差係数とも呼ばれることがあり、変換領域において残差ブロック205を表し得る。
変換処理ユニット206は、H.265/HEVCのために指定される変換などの、DCT/DSTの整数近似を適用するように構成され得る。直交DCT変換と比較して、そのような整数近似は通常、ある係数によってスケーリングされる。順方向変換および逆方向変換によって処理される残差ブロックのノルムを保持するために、追加のスケーリング係数が、変換プロセスの一部として適用される。スケーリング係数は通常、スケーリング係数がシフト演算のために2のべき乗であることなどの何らかの制約、変換係数のビット深度、正確さと実装コストのトレードオフなどに基づいて選ばれる。具体的なスケーリング係数は、たとえば、逆変換のために、たとえば逆変換処理ユニット212(および、たとえばビデオデコーダ30における逆変換処理ユニット312による、対応する逆変換)によって指定され、エンコーダ20における、たとえば変換処理ユニット206による、順方向変換のための対応するスケーリング係数は、それに従って指定され得る。
ビデオエンコーダ20(それぞれ変換処理ユニット206)の実施形態は、変換パラメータ、たとえば、変換のタイプを、たとえば、直接、またはエントロピー符号化ユニット270を介して符号化もしくは圧縮された状態で出力するように構成され得るので、たとえば、ビデオデコーダ30は、復号のために変換パラメータを受信して使用し得る。
量子化
量子化ユニット208は、たとえばスカラー量子化またはベクトル量子化を適用することによって、変換係数207を量子化して、量子化された係数209を取得するように構成され得る。量子化された係数209は、量子化された変換係数209または量子化された残差係数209とも呼ばれ得る。
量子化プロセスは、変換係数207の一部またはすべてと関連付けられるビット深度を減らし得る。たとえば、nビットの変換係数は、量子化の間にmビットの変換係数へと丸められてもよく、nはmより大きい。量子化の程度は、量子化パラメータ(QP)を調整することによって修正され得る。たとえば、スカラー量子化では、より細かいまたは粗い量子化を達成するために、異なるスケーリングが適用され得る。より小さい量子化ステップサイズはより細かい量子化に対応し、一方、より大きい量子化ステップサイズはより粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、たとえば、適用可能な量子化ステップサイズのあらかじめ定められたセットに対するインデックスであり得る。たとえば、小さい量子化パラメータは細かい量子化(小さい量子化ステップサイズ)に対応することがあり、大きい量子化パラメータは粗い量子化(大きい量子化ステップサイズ)に対応することがあり、またはこの逆であることがある。量子化は量子化ステップサイズによる除算を含むことがあり、たとえば逆量子化ユニット210による対応するおよび/または逆量子化は、量子化ステップサイズによる乗算を含むことがある。いくつかの規格、たとえば、HEVCによる実施形態は、量子化パラメータを使用して量子化ステップサイズを決定するように構成され得る。一般に、量子化ステップサイズは、除算を含む式の固定点近似を使用して、量子化パラメータに基づいて計算され得る。残差ブロックのノルムを復元するための量子化および量子化解除のために、追加のスケーリング係数が導入されてもよく、これは、量子化ステップサイズおよび量子化パラメータのための式の固定点近似において使用されるスケーリングが原因で、修正されることがある。ある例示的な実装形態では、逆変換および量子化解除のスケーリングは組み合わせられ得る。代替的に、カスタマイズされた量子化テーブルが使用され、たとえばビットストリームにおいてエンコーダからデコーダにシグナリングされ得る。量子化は有損失演算であり、損失は量子化ステップサイズの増大とともに増大する。
ビデオエンコーダ20(それぞれ量子化ユニット208)の実施形態は、量子化パラメータ(QP)を、たとえば、直接、またはエントロピー符号化ユニット270を介して符号化された状態で出力するように構成され得るので、たとえば、ビデオデコーダ30は、復号のために量子化パラメータを受信して適用し得る。
量子化解除
逆量子化ユニット210は、たとえば、量子化ユニット208と同じ量子化ステップサイズに基づいて、またはそれを使用して、量子化ユニット208によって適用される量子化方式の逆を適用することによって、量子化された係数に対して量子化ユニット208の量子化解除を適用し、量子化解除された係数211を取得するように構成される。量子化解除された係数211は、量子化解除された残差係数211と呼ばれることもあり、量子化による損失により変換係数と通常は同一ではないが、変換係数207に対応することがある。
逆変換
逆変換処理ユニット212は、変換処理ユニット206によって適用される変換の逆変換、たとえば、逆離散コサイン変換(DCT)または逆離散サイン変換(DST)または他の逆変換を適用して、サンプル領域において再構築された残差ブロック213(または対応する逆量子化された係数213)を取得するように構成される。再構築された残差ブロック213は、変換ブロック213とも呼ばれ得る。
再構築
再構築ユニット214(たとえば、加算器(adder)または総和器(summer)214)は、たとえば、再構築された残差ブロック213のサンプル値と予測ブロック265のサンプル値をサンプルごとに加算することによって、変換ブロック213(すなわち、再構築された残差ブロック213)を予測ブロック265に加算して、サンプル領域において再構築されたブロック215を取得するように構成される。
フィルタリング
ループフィルタユニット220(またはショート「ループフィルタ」220)は、再構築されたブロック215をフィルタリングして、フィルタリングされたブロック221を取得し、または一般には、再構築されたサンプルをフィルタリングして、フィルタリングされたサンプルを取得するように構成される。ループフィルタユニットは、たとえば、ピクセル遷移を滑らかにし、または、ビデオ品質を別様に改善するように構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ、または1つまたは複数の他のフィルタ、たとえばバイラテラルフィルタ、適応ループフィルタ(ALF)、先鋭化フィルタ、平滑化フィルタ、または協調フィルタ、またはこれらの任意の組合せなどの、1つまたは複数のループフィルタを備え得る。ループフィルタユニット220はループ内フィルタであるものとして図2において示されているが、他の構成では、ループフィルタユニット220は、ポストループフィルタとして実装され得る。フィルタリングされたブロック221は、フィルタリングされた再構築されたブロック221とも呼ばれ得る。
ビデオエンコーダ20(それぞれループフィルタユニット220)の実施形態は、ループフィルタパラメータ(サンプル適応オフセット情報など)を、たとえば、直接、またはエントロピー符号化ユニット270を介して符号化された状態で出力するように構成され得るので、たとえば、デコーダ30は、復号のために同じループフィルタパラメータまたはそれぞれのループフィルタを受信して適用し得る。
復号ピクチャバッファ
復号ピクチャバッファ(DPB)230は、参照ピクチャを、または一般には参照ピクチャデータを、ビデオエンコーダ20によるビデオデータの符号化のために記憶するメモリであり得る。DPB230は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、または他のタイプのメモリデバイスなどの、種々のメモリデバイスのいずれかによって形成され得る。復号ピクチャバッファ(DPB)230は、1つまたは複数のフィルタリングされたブロック221を記憶するように構成され得る。復号ピクチャバッファ230はさらに、同じ現在のピクチャの、または異なるピクチャ、たとえば以前に再構築されたピクチャの、他の以前にフィルタリングされたブロック、たとえば以前に再構築されフィルタリングされたブロック221を記憶するように構成されてもよく、たとえばインター予測のために、完全な以前に再構築された、すなわち復号されたピクチャ(および対応する参照ブロックとサンプル)および/または部分的に再構築された現在のピクチャ(および対応する参照ブロックとサンプル)を提供してもよい。復号ピクチャバッファ(DPB)230はまた、1つまたは複数のフィルタリングされていない再構築されたブロック215、または一般には、フィルタリングされていない再構築されたサンプルを、たとえば再構築されたブロック215がループフィルタユニット220によってフィルタリングされていない場合に記憶し、または、再構築されたブロックもしくはサンプルの任意の他のさらなる処理されたバージョンを記憶するように構成され得る。
モード選択(区分および予測)
モード選択ユニット260は、区分ユニット262、インター予測ユニット244、およびイントラ予測ユニット254を備え、元のピクチャデータ、たとえば元のブロック203(現在のピクチャ17の現在のブロック203)、および再構築されたピクチャデータ、たとえば同じ(現在の)ピクチャのフィルタリングされたおよび/またはフィルタリングされていない再構築されたサンプルもしくはブロックを、および/または1つまたは複数の以前に復号されたピクチャから、たとえば復号ピクチャバッファ230もしくは他のバッファ(たとえば、図示されていないラインバッファ)から、受信または取得するように構成される。再構築されたピクチャデータは、予測ブロック265または予測子265を取得するために、予測、たとえばインター予測またはイントラ予測のための参照ピクチャデータとして使用される。
モード選択ユニット260は、現在のブロック予測モード(区分なしを含む)および予測モード(たとえば、イントラ予測モードまたはインター予測モード)のための区分を決定または選択し、対応する予測ブロック265を生成するように構成されてもよく、それは、残差ブロック205の計算のために、および再構築されたブロック215の再構築のために使用される。
モード選択ユニット260の実施形態は、区分および予測モードを(たとえば、モード選択ユニット260によってサポートされる、またはそれに対して利用可能であるものから)選択するように構成されてもよく、このことは、最良の一致、もしくは言い換えると、最小の残差(最小の残差は送信または記憶のためのより優れた圧縮を意味する)をもたらし、または最小のシグナリングオーバーヘッド(最小のシグナリングオーバーヘッドは送信または記憶のためのより優れた圧縮を意味する)をもたらし、またはこれらの両方を考慮し、もしくはバランスをとる。モード選択ユニット260は、レート歪み最適化(RDO)に基づいて区分および予測モードを決定し、すなわち、最小のレート歪みをもたらす予測モードを選択するように構成され得る。この文脈における「最良の」、「最小の」、「最適な」などの用語は、全体としての「最良の」、「最小の」、「最適な」などを必ずしも指さず、「最適ではない選択」であるが複雑さと処理時間の低減につながる可能性のある、ある値が閾値または他の制約を超えること、または下回ることのような、終了または選択の基準の満足も指し得る。
言い換えると、区分ユニット262は、現在のブロック203をより小さいブロック区分またはサブブロック(これは再びブロックを形成する)へと、たとえば四分木区分(QT)、二分木区分(BT)、または三分木区分(TT)、またはこれらの任意の組合せを繰り返し使用して区分し、たとえば現在のブロック区分またはサブブロックの各々に対する予測を実行するように構成されてもよく、モード選択は、区分されたブロック203の木構造の選択を備え、予測モードは、現在のブロック区分またはサブブロックの各々に適用される。
以下では、例示的なビデオエンコーダ20によって実行される区分(たとえば、区分ユニット260による)および予測処理(インター予測ユニット244およびイントラ予測ユニット254による)が、より詳細に説明される。
区分
区分ユニット262は、現在のブロック203をより小さい区分、たとえば正方形または長方形のサイズのより小さいブロックへと区分(または分割)し得る。これらのより小さいブロック(サブブロックとも呼ばれ得る)は、さらに小さい区分へとさらに区分され得る。これは、木区分または階層的な木区分とも呼ばれ、たとえば、ルート木レベル0(階層レベル0、深度0)におけるルートブロックは、再帰的に区分されてもよく、たとえば、次に低い木レベルの2つ以上のブロック、たとえば木レベル1(階層レベル1、深度1)のノードへと区分されてもよく、これらのブロックは、次に低いレベルの2つ以上のブロック、たとえば木レベル2(階層レベル2、深度2)などへと再び区分されてもよく、これは、たとえば終了基準が満たされたので、たとえば最大の木深度または最小のブロックサイズに達したので、区分が終了するまで続く。さらに区分されないブロックは、木のリーフブロックまたはリーフノードとも呼ばれる。2つの区分への区分を使用する木は二分木(BT)と呼ばれ、3つの区分への区分を使用する木は三分木(TT)と呼ばれ、4つの区分への区分を使用する木は四分木(QT)と呼ばれる。
前に言及されたように、本明細書において使用される「ブロック」という用語は、ピクチャの一部分、具体的には正方形または長方形の部分であり得る。たとえば、HEVCおよびVVCを参照して、現在のブロックは、コーディングツリーユニット(CTU)、コーディングユニット(CU)、予測ユニット(PU)、および変換ユニット(TU)であってもよく、もしくはそれらに対応してもよく、および/または、対応するブロック、たとえば、コーディングツリーブロック(CTB)、コーディングブロック(CB)、変換ブロック(TB)、または予測ブロック(PB)に対応してもよい。
たとえば、コーディングツリーユニット(CTU)は、ルマサンプルのCTB、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するCTB、または、モノクロームピクチャ、もしくはサンプルをコーディングするために使用される3つの別々の色平面およびシンタックス構造を使用してコーディングされるピクチャのサンプルのCTBであってもよく、またはそれを備えてもよい。それに対応して、コーディングツリーブロック(CTB)は、CTBへの成分の分割が区分となるように、Nの何らかの値に対するサンプルのN×Nブロックであり得る。コーディングユニット(CU)は、ルマサンプルのコーディングブロック、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するコーディングブロック、または、モノクロームピクチャ、もしくはサンプルをコーディングするために使用される3つの別々の色平面およびシンタックス構造を使用してコーディングされるピクチャのサンプルのコーディングブロックであってもよく、またはそれを備えてもよい。それに対応して、コーディングブロック(CB)は、コーディングブロックへのCTBの分割が区分となるように、MおよびNの何らかの値に対するサンプルのM×Nブロックであり得る。
たとえばHEVCに従った実施形態では、コーディングツリーユニット(CTU)は、コーディングツリーと表記される四分木構造を使用することによってCUへと区分され得る。ピクチャエリアをピクチャ間(時間)予測を使用してコーディングするか、またはピクチャ内(空間)予測を使用してコーディングするかの決定は、CUレベルで行われる。各CUはさらに、PU分割タイプに従って、1つ、2つ、または4つのPUへと分割され得る。1つのPUの内部で、同じ予測プロセスが適用され、関連する情報がPUごとにデコーダに送信される。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CUは、CUのためのコーディングツリーと同様の別の四分木構造に従って、変換ユニット(TU)へと区分され得る。
たとえば、多用途ビデオコーディング(VVC)と呼ばれる、現在開発中の最新のビデオコーディング規格に従った実施形態では、組み合わせられた四分木および二分木(QTBT)区分が、たとえばコーディングブロックを区分するために使用される。QTBTブロック構造において、CUは正方形または長方形のいずれかの形状を有し得る。たとえば、コーディングツリーユニット(CTU)はまず、四分木構造によって区分される。四分木リーフノードはさらに、二分木または三分木(または三値木)構造によって区分される。区分木リーフノードはコーディングユニット(CU)と呼ばれ、そのセグメント化は、さらなる区分を伴わない予測および変換処理のために使用される。これは、CU、PU、およびTUが、QTBTコーディングブロック構造において同じブロックサイズを有することを意味する。これと並行して、複数の区分、たとえば三分木区分が、QTBTブロック構造と一緒に使用され得る。
一例では、ビデオエンコーダ20のモード選択ユニット260は、本明細書において説明される区分技法の任意の組合せを実行するように構成され得る。
上で説明されたように、ビデオエンコーダ20は、(たとえば、所定の)予測モードのセットから最良のまたは最適な予測モードを決定または選択するように構成される。予測モードのセットは、たとえばイントラ予測モードおよび/またはインター予測モードを備え得る。
イントラ予測
イントラ予測モードのセットは、35個の異なるイントラ予測モード、たとえばDC(または平均)モードおよび平面モードのような非指向性モード、もしくは、たとえばHEVCにおいて定義されるような指向性モードを備えてもよく、または、67個の異なるイントラ予測モード、たとえばDC(または平均)モードおよび平面モードのような非指向性モード、もしくは、たとえばVVCのために定義されるような指向性モードを備えてもよい。
イントラ予測ユニット254は、同じ現在のピクチャの隣接ブロックの再構築されたサンプルを使用して、イントラ予測モードのセットのイントラ予測モードに従ってイントラ予測ブロック265を生成するように構成される。
イントラ予測ユニット254(または一般にモード選択ユニット260)は、イントラ予測パラメータ(または一般に現在のブロックのための選択されたイントラ予測モードを示す情報)を、符号化されたピクチャデータ21へと含めるためにシンタックス要素266の形式でエントロピー符号化ユニット270に出力するように構成されるので、たとえば、ビデオデコーダ30は、復号のために予測パラメータを受信して使用し得る。
インター予測
インター予測モード(または可能なインター予測モード)のセットは、利用可能な参照ピクチャ(すなわち、たとえばDBP230に記憶されている、以前の少なくとも部分的に復号されたピクチャ)および他のインター予測パラメータ、たとえば、最良の一致する参照ブロックを探すために参照ピクチャの全体が使用されるか、もしくはその一部のみ、たとえば現在のブロックのエリアの周囲の探索ウィンドウエリアのみが使用されるか、ならびに/または、たとえばピクセル補間が適用されるかどうか、たとえば2分の1/セミペル補間が適用されるか否か、および/もしくは4分の1ペル補間が適用されるか否かに依存する。
上の予測モードに加えて、スキップモードおよび/またはダイレクトモードが適用され得る。
インター予測ユニット244は、動き推定(ME)ユニットおよび動き補償(MC)ユニット(両方とも図2に示されない)を含み得る。動き推定ユニットは、ピクチャブロック203(現在のピクチャ17の現在のピクチャブロック203)および復号されたピクチャ231、または、少なくとも1つまたは複数の以前に再構築されたブロック、たとえば、1つまたは複数の他の/異なる以前に復号されたピクチャ231の再構築されたブロックを、動き推定のために受信または取得するように構成され得る。たとえば、ビデオシーケンスは、現在のピクチャおよび以前に復号されたピクチャ231を備えてもよく、または言い換えると、現在のピクチャおよび以前に復号されたピクチャ231は、ビデオシーケンスを形成するピクチャのシーケンスの一部であってもよく、またはそれを形成してもよい。
エンコーダ20は、たとえば、複数の他のピクチャの同じピクチャまたは異なるピクチャの複数の参照ブロックからある参照ブロックを選択し、参照ピクチャ(または参照ピクチャインデックス)および/または参照ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間オフセット)を、インター予測パラメータとして動き推定ユニットに提供するように構成され得る。このオフセットは動きベクトル(MV)とも呼ばれる。
動き補償ユニットは、インター予測パラメータを取得し、たとえば受信して、インター予測ブロック265を取得するために、インター予測パラメータに基づいて、またはそれを使用してインター予測を実行するように構成される。動き補償ユニットによって実行される動き補償は、動き推定によって決定される動き/ブロックベクトルに基づいて予測ブロックをフェッチまたは生成し、場合によってはサブピクセル精度への補間を実行することを伴い得る。補間フィルタリングは、既知のピクセルサンプルから追加のピクセルサンプルを生成し得るので、ピクチャブロックをコーディングするために使用され得る予測ブロック候補の数を増やす可能性がある。現在のピクチャブロックのPUのための動きベクトルを受信すると、動き補償ユニットは、参照ピクチャリストのうちの1つにおいて動きベクトルが指し示す予測ブロックを位置特定し得る。
動き補償ユニットは、ビデオスライスのピクチャブロックを復号する際に、ビデオデコーダ30により使用するための現在のブロックおよびビデオスライスと関連付けられるシンタックス要素も生成し得る。スライスおよびそれぞれのシンタックス要素に加えて、またはその代わりに、タイルグループおよび/またはタイルならびにそれぞれのシンタックス要素が生成または使用され得る。
エントロピーコーディング
エントロピー符号化ユニット270は、たとえば、エントロピー符号化アルゴリズムまたは方式(たとえば、可変長コーディング(VLC)方式、コンテキスト適応VLC方式(CAVLC)、算術コーディング方式、二値化、コンテキスト適応バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法もしくは技法)またはバイパス(圧縮なし)を、量子化された係数209、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、および/または他のシンタックス要素に適用して、たとえば符号化されたビットストリーム21の形式で、出力272を介して出力され得る符号化されたピクチャデータ21を取得するように構成されるので、たとえば、ビデオデコーダ30は、復号のためのパラメータを受信して使用し得る。符号化されたビットストリーム21は、ビデオデコーダ30に送信されてもよく、または、ビデオデコーダ30による後の送信もしくは取り出しのためにメモリに記憶されてもよい。
ビデオエンコーダ20の他の構造的な変形が、ビデオストリームを符号化するために使用され得る。たとえば、非変換ベースのエンコーダ20は、いくつかのブロックまたはフレームに対して、変換処理ユニット206なしで直接残差信号を量子化することができる。別の実装形態では、エンコーダ20は、量子化ユニット208および逆量子化ユニット210が単一のユニットへと組み合わせられていてもよい。
デコーダおよび復号方法
図3は、本出願の技法を実施するように構成される、ビデオデコーダ30の例を示す。ビデオデコーダ30は、たとえばエンコーダ20によって符号化される、符号化されたピクチャデータ21(たとえば、符号化されたビットストリーム21)を受信して、復号されたピクチャ331を取得するように構成される。符号化されたピクチャデータまたはビットストリームは、符号化されたピクチャデータ、たとえば、符号化されたビデオスライス(および/またはタイルグループまたはタイル)のピクチャブロックおよび関連するシンタックス要素を表すデータを復号するための情報を備える。
図3の例では、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構築ユニット314(たとえば、総和器314)、ループフィルタ320、復号ピクチャバッファ(DBP)330、モード適用ユニット360、インター予測ユニット344、およびイントラ予測ユニット354を備える。インター予測ユニット344は、動き補償ユニットであってもよく、またはそれを含んでもよい。ビデオデコーダ30は、いくつかの例では、図2からのビデオエンコーダ100に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。
エンコーダ20に関して説明されたように、逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、ループフィルタ220、復号ピクチャバッファ(DPB)230、インター予測ユニット344、およびイントラ予測ユニット354は、ビデオエンコーダ20の「内蔵デコーダ」を形成するものとしても言及される。したがって、逆量子化ユニット310は逆量子化ユニット110と機能的に同一であってもよく、逆変換処理ユニット312は逆変換処理ユニット212と機能的に同一であってもよく、再構築ユニット314は再構築ユニット214と機能的に同一であってもよく、ループフィルタ320はループフィルタ220と機能的に同一であってもよく、復号ピクチャバッファ330は復号ピクチャバッファ230と機能的に同一であってもよい。したがって、ビデオエンコーダ20のそれぞれのユニットおよび機能について与えられる説明は、ビデオデコーダ30のそれぞれのユニットおよび機能に相応に当てはまる。
エントロピー復号
エントロピー復号ユニット304は、ビットストリーム21(または一般には符号化されたピクチャデータ21)を解析し、たとえば、符号化されたピクチャデータ21に対してエントロピー復号を実行して、たとえば、量子化された係数309ならびに/または復号されたコーディングパラメータ(図3には示されない)、たとえば、インター予測パラメータ(たとえば、参照ピクチャインデックスおよび動きベクトル)、イントラ予測パラメータ(たとえば、イントラ予測モードまたはインデックス)、変換パラメータ、量子化パラメータ、ループフィルタパラメータ、および/もしくは他のシンタックス要素のいずれかまたはすべてを取得するように構成される。エントロピー復号ユニット304は、エンコーダ20のエントロピー符号化ユニット270に関して説明されたような符号化方式に対応する、復号アルゴリズムまたは方式を適用するように構成され得る。エントロピー復号ユニット304はさらに、インター予測パラメータ、イントラ予測パラメータ、および/または他のシンタックス要素を、モード適用ユニット360に提供し、他のパラメータをデコーダ30の他のユニットに提供するように構成され得る。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。スライスおよびそれぞれのシンタックス要素に加えて、またはその代わりに、タイルグループおよび/またはタイルならびにそれぞれのシンタックス要素が受信および/または使用され得る。
量子化解除
逆量子化ユニット310は、量子化パラメータ(QP)(または一般には量子化解除に関する情報)および符号化されたピクチャデータ21からの量子化された係数を(たとえばエントロピー復号ユニット304による、たとえば解析および/または復号により)受信し、復号された量子化された係数309に対する量子化解除を量子化パラメータに基づいて適用し、変換係数311とも呼ばれ得る量子化解除された係数311を取得するように構成され得る。逆量子化プロセスは、量子化の程度、および同様に、適用されるべき量子化解除の程度を決定するために、ビデオスライス(またはタイルまたはタイルグループ)の中の各ビデオブロックに対して、ビデオエンコーダ20によって決定された量子化パラメータを使用することを含み得る。
逆変換
逆変換処理ユニット312は、変換係数311とも呼ばれる量子化解除された係数311を受信し、サンプル領域において再構築された残差ブロック213を取得するために、量子化解除された係数311に変換を適用するように構成され得る。再構築された残差ブロック213は、変換ブロック313とも呼ばれ得る。変換は、逆変換、たとえば逆DCT、逆DST、逆整数変換、または概念的に同様の逆変換プロセスであり得る。逆変換処理ユニット312はさらに、符号化されたピクチャデータ21から変換パラメータまたは対応する情報を(たとえばエントロピー復号ユニット304による、たとえば解析および/または復号により)受信して、量子化解除された係数311に適用されるべき変換を決定するように構成され得る。
再構築
再構築ユニット314(たとえば、加算器(adder)または総和器(summer)314)は、たとえば、再構築された残差ブロック313のサンプル値と予測ブロック365のサンプル値を加算することによって、再構築された残差ブロック313を予測ブロック365に加算して、サンプル領域において再構築されたブロック315を取得するように構成され得る。
フィルタリング
ループフィルタユニット320(コーディングループの中またはコーディングループの後のいずれか)は、再構築されたブロック315をフィルタリングして、フィルタリングされたブロック321を取得し、たとえばピクセルの遷移を滑らかにし、または別様にビデオ品質を改善するように構成される。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ、または1つまたは複数の他のフィルタ、たとえばバイラテラルフィルタ、適応ループフィルタ(ALF)、先鋭化フィルタ、平滑化フィルタ、または協調フィルタ、またはこれらの任意の組合せなどの、1つまたは複数のループフィルタを備え得る。ループフィルタユニット320はループ内フィルタであるものとして図3において示されているが、他の構成では、ループフィルタユニット320は、ポストループフィルタとして実装され得る。
復号ピクチャバッファ
ピクチャの復号されたビデオブロック321は次いで、復号ピクチャバッファ330に記憶され、これは、他のピクチャに対する後続の動き補償のための参照ピクチャとして、および/または出力それぞれ表示のために、復号されたピクチャ331を記憶する。
デコーダ30は、たとえば出力312を介して、ユーザへの提示または視聴のために、復号されたピクチャ311を出力するように構成される。
予測
インター予測ユニット344は、インター予測ユニット244(具体的には動き補償ユニット)と同一であってもよく、イントラ予測ユニット354は、インター予測ユニット254と機能的に同一であってもよく、(たとえばエントロピー復号ユニット304による、たとえば解析および/または復号によって)符号化されたピクチャデータ21から受信された区分および/もしくは予測パラメータまたはそれぞれの情報に基づいて、分割または区分の決定と予測を実行する。モード適用ユニット360は、再構築されたピクチャ、ブロック、またはそれぞれのサンプル(フィルタリングされた、またはフィルタリングされていない)に基づいて、ブロックごとに予測(イントラまたはインター予測)を実行して、予測ブロック365を取得するように構成され得る。
ビデオスライスがイントラコーディングされる(I)スライスとしてコーディングされるとき、モード適用ユニット360のイントラ予測ユニット354は、現在のピクチャの以前に復号されたブロックからのシグナリングされたイントラ予測モードおよびデータに基づいて、現在のビデオスライスのピクチャブロックのための予測ブロック365を生成するように構成される。ビデオピクチャがインターコーディングされた(すなわち、BまたはP)スライスとしてコーディングされるとき、モード適用ユニット360のインター予測ユニット344(たとえば、動き補償ユニット)は、エントロピー復号ユニット304から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロック365を生成するように構成される。インター予測のために、予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、DPB330に記憶されている参照ピクチャに基づくデフォルトの構築技法を使用して、リスト0およびリスト1という参照フレームリストを構築し得る。スライス(たとえば、ビデオスライス)に加えて、またはその代わりに、タイルグループ(たとえば、ビデオタイルグループ)および/またはタイル(たとえば、ビデオタイル)を使用する実施形態に対して、またはそれによって、同じまたは同様のことが適用されてもよく、たとえば、ビデオは、I、P、またはBタイルグループおよび/もしくはタイルを使用してコーディングされてもよい。
モード適用ユニット360は、動きベクトルまたは関連する情報および他のシンタックス要素を解析することによって、現在のビデオスライスのビデオブロックに対する予測情報を決定するように構成され、この予測情報を使用して、復号されている現在のビデオブロックに対する予測ブロックを生成する。たとえば、モード適用ユニット360は、受信されたシンタックス要素の一部を使用して、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスのための参照ピクチャリストのうちの1つまたは複数のための構築情報、スライスの各々のインター符号化されたビデオブロックに対する動きベクトル、スライスの各々のインターコーディングされたビデオブロックに対するインター予測ステータス、および現在のビデオスライスにおいてビデオブロックを復号するための他の情報を決定する。スライス(たとえば、ビデオスライス)に加えて、またはその代わりに、タイルグループ(たとえば、ビデオタイルグループ)および/またはタイル(たとえば、ビデオタイル)を使用する実施形態に対して、またはそれによって、同じまたは同様のことが適用されてもよく、たとえば、ビデオは、I、P、またはBタイルグループおよび/もしくはタイルを使用してコーディングされてもよい。
図3に示されるようなビデオデコーダ30の実施形態は、スライス(ビデオスライスとも呼ばれる)を使用することによって、ピクチャを区分および/または復号するように構成されてもよく、ピクチャは、1つまたは複数のスライス(通常は重複しない)へと区分され、またはそれらを使用して復号されてもよく、各スライスは1つまたは複数のブロック(たとえば、CTU)を備えてもよい。
図3に示されるようなビデオデコーダ30の実施形態は、タイルグループ(ビデオタイルグループとも呼ばれる)および/またはタイル(ビデオタイルとも呼ばれる)を使用することによって、ピクチャを区分および/または復号するように構成されてもよく、ピクチャは、1つまたは複数のタイルグループ(通常は重複しない)へと区分され、またはそれらを使用して復号されてもよく、各タイルグループは、たとえば、1つまたは複数のブロック(たとえば、CTU)または1つまたは複数のタイルを備えてもよく、各タイルは、たとえば、長方形の形状であってもよく、1つまたは複数のブロック(たとえば、CTU)、たとえば完全なブロックまたは部分的なブロックを備えてもよい。
ビデオデコーダ30の他の変形が、符号化されたピクチャデータ21を復号するために使用され得る。たとえば、デコーダ30は、ループフィルタリングユニット320なしで出力ビデオストリームを生成することができる。たとえば、非変換ベースのデコーダ30は、いくつかのブロックまたはフレームに対して、逆変換処理ユニット312なしで直接残差信号を逆量子化することができる。別の実装形態では、ビデオデコーダ30は、逆量子化ユニット310および逆変換処理ユニット312が単一のユニットへと組み合わせられていてもよい。
エンコーダ20およびデコーダ30において、現在のステップの処理結果は、さらに処理され、そして次のステップに出力されることを理解されたい。たとえば、補間フィルタリング、動きベクトル導出、またはループフィルタリングの後で、クリップまたはシフトなどのさらなる動作が、補間フィルタリング、動きベクトル導出、またはループフィルタリングの処理結果に対して実行され得る。
さらなる動作が、現在のブロックの導出された動きベクトル(限定はされないが、アフィンモードの制御点動きベクトル、アフィン、平面、ATMVPモードにおけるサブブロック動きベクトル、時間動きベクトルなどを含む)に適用され得ることに留意されたい。たとえば、動きベクトルの値は、その表現ビットに従ったあらかじめ定められた範囲に制約される。動きベクトルの表現ビットがbitDepthである場合、範囲は-2^(bitDepth-1)~2^(bitDepth-1)-1であり、「^」は指数を意味する。たとえば、bitDepthが16に等しく設定される場合、範囲は-32768~32767である。bitDepthが18に等しく設定される場合、範囲は-131072~131071である。たとえば、導出された動きベクトル(たとえば、1つの8x8ブロック内の4つの4x4サブブロックのMV)の値は、4つの4x4サブブロックMVの整数部分間の最大の差が、1ピクセルより大きくないなど、Nピクセルより大きくないように制約される。ここで、bitDepthに従って動きベクトルを構築するための2つの方法を与える。
方法1:次の演算を行うことによってオーバーフローMSB(最上位ビット)を除去する。
ux=(mvx+2bitDepth)%2bitDepth (1)
mvx=(ux>=2bitDepth-1)?(ux-2bitDepth):ux (2)
uy=(mvy+2bitDepth)%2bitDepth (3)
mvy=(uy>=2bitDepth-1)?(uy-2bitDepth):uy (4)
ここで、mvxは画像ブロックまたはサブブロックの動きベクトルの水平成分であり、mvyは画像ブロックまたはサブブロックの動きベクトルの垂直成分であり、uxおよびuyは中間値を示す。
たとえば、mvxの値が-32769である場合、式(1)および(2)を適用した後、得られる値は32767である。コンピュータシステムでは、十進数の数は2の補数として記憶される。-32769の2の補数は1,0111,1111,1111,1111(17ビット)であり、そしてMSBは廃棄されるので、得られる2の補数は0111,1111,1111,1111であり(十進数は32767である)、これは式(1)および(2)を適用することによる出力と同じである。
ux=(mvpx+mvdx+2bitDepth)%2bitDepth (5)
mvx=(ux>=2bitDepth-1)?(ux-2bitDepth) : ux (6)
uy=(mvpy+mvdy+2bitDepth)%2bitDepth (7)
mvy=(uy>=2bitDepth-1)?(uy-2bitDepth) : uy (8)
式(5)から(8)に示されるように、演算はmvpとmvdの合計の間に適用され得る。
方法2:値を切り取ることによってオーバーフローMSBを除去する。
vx=Clip3(-2bitDepth-1,2bitDepth-1-1,vx)
vy=Clip3(-2bitDepth-1,2bitDepth-1-1,vy)
ここで、vxは画像ブロックまたはサブブロックの動きベクトルの水平成分であり、vyは画像ブロックまたはサブブロックの動きベクトルの垂直成分であり、x、y、およびzはMV切り取りプロセスの3つの入力値にそれぞれ対応し、関数Clip3の定義は次の通りである。
Figure 2022521757000010
図4は、本開示のある実施形態による、ビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、本明細書において説明されるような開示された実施形態を実施するのに適している。ある実施形態では、ビデオコーディングデバイス400は、図1Aのビデオデコーダ30などのデコーダまたは図1Aのビデオエンコーダ20などのエンコーダであり得る。
ビデオコーディングデバイス400は、データを受信するための入口ポート410(または入力ポート410)および受信機ユニット(Rx)420、データを処理するためのプロセッサ、論理ユニット、または中央処理装置(CPU)430、データを送信するための送信機ユニット(Tx)440および出口ポート450(または出力ポート450)、ならびにデータを記憶するためのメモリ460を備える。ビデオコーディングデバイス400は、入口ポート410、受信機ユニット420、送信機ユニット440、および光信号または電気信号の出入のための出口ポート450に結合された、光-電気(OE)コンポーネントおよび電気-光(EO)コンポーネントも備え得る。
プロセッサ430は、ハードウェアおよびソフトウェアによって実装される。プロセッサ430は、1つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサとして)、FPGA、ASIC、およびDSPとして実装され得る。プロセッサ430は、入口ポート410、受信機ユニット420、送信機ユニット440、出口ポート450、およびメモリ460と通信している。プロセッサ430はコーディングモジュール470を備える。コーディングモジュール470は、上で説明された開示された実施形態を実装する。たとえば、コーディングモジュール470は、様々なコーディング動作を実施し、処理し、準備し、または提供する。したがって、コーディングモジュール470を含むことは、ビデオコーディングデバイス400の機能をかなり改善し、異なる状態へのビデオコーディングデバイス400の変換をもたらす。代替的に、コーディングモジュール470は、メモリ460に記憶されプロセッサ430によって実行される命令として実装される。
メモリ460は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを備えてもよく、プログラムが実行のために選択されたときにそのようなプログラムを記憶するための、かつ、プログラム実行の間に読み取られる命令およびデータを記憶するための、オーバーフローデータストレージデバイスとして使用されてもよい。メモリ460は、たとえば、揮発性および/または不揮発性であってもよく、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(TCAM)、および/またはスタティックランダムアクセスメモリ(SRAM)であってもよい。
図5は、例示的な実施形態による、図1からのソースデバイス12とデスティネーションデバイス14のいずれかまたは両方として使用され得る装置500の簡略化されたブロック図である。
装置500のプロセッサ502は中央処理装置であり得る。代替的に、プロセッサ502は、今存在する、または今後開発される、情報を操作または処理することが可能な、任意の他のタイプのデバイス、または複数のデバイスであり得る。開示される実装形態は、示されるような単一のプロセッサ、たとえばプロセッサ502とともに実践され得るが、速さおよび効率性についての利点は、1つより多くのプロセッサを使用して達成され得る。
装置500のメモリ504は、ある実装形態における読取り専用メモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスであり得る。任意の他の適切なタイプのストレージデバイスがメモリ504として使用され得る。メモリ504は、バス512を使用してプロセッサ502によってアクセスされるコードおよびデータ506を含み得る。メモリ504はさらに、オペレーティングシステム508およびアプリケーションプログラム510を含んでもよく、アプリケーションプログラム510は、ここで説明される方法をプロセッサ502が実行することを可能にする少なくとも1つのプログラムを含む。たとえば、アプリケーションプログラム510は、アプリケーション1からNを含んでもよく、これらはさらに、ここで説明される方法を実行するビデオコーディングアプリケーションを含む。
装置500はまた、ディスプレイ518などの1つまたは複数の出力デバイスも含み得る。ディスプレイ518は、一例では、タッチ入力を感知するように動作可能なタッチ感知素子をディスプレイと組み合わせる、タッチ感知ディスプレイであり得る。ディスプレイ518は、バス512を介してプロセッサ502に結合され得る。
単一のバスとしてここでは図示されているが、装置500のバス512は、複数のバスで構成され得る。さらに、二次的ストレージ514は、装置500の他のコンポーネントに直接結合されてもよく、またはネットワークを介してアクセスされてもよく、メモリカードなどの単一の集積ユニットまたは複数のメモリカードなどの複数のユニットを備えることができる。したがって、装置500は、多種多様な構成で実装され得る。
本明細書において提示される実施形態は、以下でより詳細に説明される。ビットストリームによって表されるビデオソースは、復号順序でピクチャのシーケンスを含み得る。
ピクチャ(ソースピクチャまたは復号されたピクチャであり得る)の各々が、以下のサンプルアレイのうちの1つまたは複数を含む。
- ルマ(Y)のみ(モノクローム)。
- ルマおよび2つのクロマ(YCbCrまたはYCgCo)。
- 緑、青、および赤(GBR、RGBとしても知られている)。
- 他の指定されていないモノクロームまたは三刺激カラーサンプリング(たとえば、XYZとしても知られている、YZX)を表すアレイ。
本開示における表記と用語の便宜上、これらのアレイと関連付けられる変数および用語は、ルマ(またはLまたはY)およびクロマと呼ばれ、2つのクロマアレイはCbおよびCrと呼ばれる。
図6Aは、4:2:0サンプリング方式に対するクロマ成分の位置を示す。4:2:0サンプリング方式では、2つのクロマアレイの各々が、ルマアレイの半分の高さおよび半分の幅を有する。図6Bは、4:2:2サンプリング方式に対するクロマ成分の位置を示す。4:2:2サンプリング方式では、2つのクロマアレイの各々が、ルマアレイと同じ高さおよび半分の幅を有する。図6Cは、4:4:4サンプリング方式に対するクロマ成分の位置を示す。4:4:4サンプリング方式では、separate_colour_plane_flagが0に等しい場合、2つのクロマアレイの各々が、ルマアレイと同じ高さおよび幅を有する。図6Dは、インターレースされた画像の様々なサンプリングパターンを示す。図6Dでは、クロマサンプルタイプ0、クロマサンプルタイプ1、クロマサンプルタイプ2、クロマサンプルタイプ3、クロマサンプルタイプ4、およびクロマサンプルタイプ5が表される。
クロマサンプルのイントラ予測は、再構築されるルマブロックのサンプルを使用して実行され得る。
HEVC開発の間に、成分間線形モデル(CCLM)クロマイントラ予測が提案された[J.Kim、S.W.Park、J.Y.Park、およびB.M.Jeon、Intra Chroma Prediction Using Inter Channel Correlation、文書JCTVC-B021、2010年7月]。CCLMは、クロマサンプルの位置に対応するコーディングブロックの中の位置における、クロマサンプルとルマサンプルとの間の線形相関を使用する。クロマブロックがCCLMを使用してコーディングされるとき、線形回帰を通じて、再構築された隣接ルマサンプルおよびクロマサンプルから線形モデルが導出される。次いで、現在のブロックの中のクロマサンプルは、(図6Eに示されるように)導出された線形モデルを用いて現在のブロックの中の再構築されたルマサンプルを使用して予測され得る。
C(x,y)=α×L(x,y)+β
ここでCおよびLはそれぞれ、クロマサンプル値およびルマサンプル値を示す。パラメータαおよびβは、最小二乗法によって次のように導出される。
Figure 2022521757000011
ここで、M(A)はAの平均を表し、R(A,B)は次のように定義される。
R(A, B) = M((A-M(A))×(B-M(B))
符号化または復号されたピクチャが、ルマ成分およびクロマ成分に対して異なる数のサンプルを指定するフォーマットを有する場合(たとえば、図6に示されるような4:2:0YCbCrフォーマット)、モデル化および予測の前にルマサンプルがダウンサンプリングされる。
方法は、VTM2.0における使用のために適合される。具体的には、パラメータ導出は次のように実行される。
Figure 2022521757000012
ここで、L(n)はダウンサンプリングされた上および左の隣接する再構築されたルマサンプルを表し、C(n)は上および左の隣接する再構築されたクロマサンプルを表す。
[G.Laroche、J.Taquet、C.Gisquet、P.Onno(Canon)、「CE3: Cross-component linear model simplification (Test 5.1)」、JVET第12回会合へのインプットドキュメント、中国、マカオ、2018年10月]において、(図8に示されるように)αおよびβを導出する異なる方法が提案された。具体的には、線形モデルパラメータαおよびβは、以下の式に従って取得される。
Figure 2022521757000013
β=L(A) -αC(A)
ここで、B=argmax(L(n))であり、A=argmin(L(n))はルマサンプルにおける最大値および最小値の位置である。
図7Aは、YCbCr 4:2:0クロマフォーマットが使用されている場合、上および左の原因となるサンプル、ならびにCCLMモードに関わる現在のブロックのサンプルの位置を示す。「上(top)および左のサンプル」は、「左および上(above)のサンプル」、「左および上(top)のサンプル」、または「上(above)および左のサンプル」とも呼ばれ得ることを理解されたい。これらのサンプルは、現在のブロックの左および上(top)(または上(above))にある隣接ブロックの中のサンプルを指す。
成分間予測を実行するために、4:2:0クロマフォーマットでは、再構築されたルマブロックは、クロマ信号またはクロマサンプルまたはクロマブロックのサイズと一致するようにダウンサンプリングされる必要がある。CCLMモードにおいて使用されるデフォルトのダウンサンプリングフィルタは、次のようなものである。
Rec'L[x,y]=(2×RecL[2x,2y]+2×RecL[2x,2y+1]+RecL[2x-1,2y]+RecL[2x+1,2y]+RecL[2x-1,2y+1]+RecL[2x+1,2y+1]+4)>>3 (0)
このダウンサンプリングは、ルマサンプルの位置に対する相対的なクロマサンプルの位置について「タイプ0」の位相関係、すなわち、水平方向には同一位置サンプリングを想定し、垂直方向には介在性サンプリングを想定することに留意されたい。式(0)に示される上記の6タップダウンサンプリングフィルタは、単一モデルCCLMモードと複数モデルCCLMモードの両方に対するデフォルトフィルタとして使用される。この6タップダウンサンプリングフィルタによって使用されるサンプルの空間位置が図9に示されている。この図において、異なる線パターンを使用してマークされている、サンプル901、サンプル902、およびサンプル903がある。フィルタリングの間、サンプル901、902、および903は、それぞれ2、1、および0という重みを有する。
ルマサンプルがブロック境界上に位置し、隣接する上および左のブロックが利用不可能である場合、次の式が使用される。
y=0である行がCTUの第1の行であり、x=0であり、ならびに左および上の隣接ブロックが利用不可能である場合、Rec'L[x,y]= RecL[2x,2y]、または、
y=0である行がCTUの第1の行であり、上の隣接ブロックが利用不可能である場合、Rec'L[x, y]=(2×RecL[2x,2y]+ RecL[2x-1,2y]+RecL[2x+1,2y]+2)>>2、または、
x=0であり、ならびに左および上の隣接ブロックが利用不可能である場合、Rec'L[x,y]=(RecL[2x,2y]+RecL[2x,2y+1]+1)>>1。
4:2:0サンプリング方式においてルマ成分とクロマ成分のサンプリングを考慮するとき、ルマ成分のグリッドとクロマ成分のグリッドとの間にシフトがあり得る。2×2ピクセルのブロックでは、クロマ成分は実際に、ルマ成分と比較して垂直に半分のピクセルだけシフトされる(図6Aに示されるように)。そのようなシフトは、ダウンサンプリングが実行されるとき、またはアップサンプリングが実行されるとき、補間フィルタに対する影響があり得る。上で説明されたものと同じことが、図6Bまたは図6Cに示されるような他のサンプリング方式に対して当てはまり得る。図6Dにおいて、様々なサンプリングパターンが、インターレースされた画像に対して表される。これは、パリティ、すなわち、ピクセルがインターレースされた画像の上のフィールドにあるか下のフィールドにあるかも、考慮されることを意味する。
[P.Hanhart、Y.He、「CE3: Modified CCLM downsampling filter for "type-2" content (Test 2.4)」、第13回JVET会合へのインプットドキュメントJVET-M0142、モロッコ、マラケシュ、2019年1月]において提案され、VVC仕様ドラフト(バージョン4)に含められたように、クロマサンプルとダウンサンプリングされたルマサンプルとの間のずれを避けるために、CCLMでは、「タイプ2」のコンテンツについて、線形モデル決定および予測のために以下のダウンサンプリングフィルタがルマサンプルに適用される。
3タップ: RecL'(i,j)= [RecL(2i-1,2j)+2recL(2i,2j)+RecL(2i+1,2j)+2]>>2
5タップ: RecL'(i,j)= [RecL(2i,2j-1)+RecL(2i-1,2j)+4RecL(2i,2j)+RecL(2i+1,2j)+RecL(2i,2j+1)+4]>>3
ラインバッファの数が増えるのを避けるために、これらの修正は上のCTU境界において適用されない。ダウンサンプリングフィルタの選択は、SPSフラグsps_cclm_colocated_chroma_flagによって支配される。sps_cclm_colocated_chroma_flagの値が0または偽であるとき、ダウンサンプリングフィルタは、線形モデルの決定および予測のためにルマサンプルに適用される。sps_cclm_colocated_chroma_flagの値が1または真であるとき、ダウンサンプリングフィルタは、線形モデルの決定および予測のためにルマサンプルに適用されない。
上で説明されたような線形モデルパラメータを導出するために使用される再構築された境界ルマサンプルL()は、フィルタリングされたルマサンプルRec'L[x,y]からサブサンプリングされる。
以前の設計におけるルマサンプルフィルタリングおよびサブサンプリングのプロセスは、VVC仕様の8.3.4.2.8に記述されている。
8.3.4.2.8 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMイントラ予測モードの仕様
このプロセスへの入力は、
- イントラ予測モードpredModeIntra、
- 現在のピクチャの左上サンプルに対する相対的な現在の変換ブロックの左上サンプルのサンプル位置(xTbC,yTbC)、
- 変換ブロック幅を指定する変数nTbW、
- 変換ブロック高さを指定する変数nTbH、
- クロマ隣接サンプルp[x][y]、ただしx=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1である。
このプロセスの出力は、予測されたサンプルpredSamples[x][y]であり、x=0..nTbW-1、y=0..nTbH-1である。
現在のルマ位置(xTbY,yTbY)は次のように導出される。
( xTbY,yTbY)=(xTbC<<1,yTbC<<1) (8-155)
変数availL、availT、およびavailTLは次のように導出される。
- ブロックに対する左側隣接サンプル導出プロセスの利用可能性は、現在のクロマ位置(xCurr,yCurr)が(xTbC,yTbC)に等しく設定された状態で、隣接クロマ位置(xTbC-1,yTbC)を入力として呼び出され、出力はavailLに割り当てられる。
- ブロックに対する上側隣接サンプル導出プロセスの利用可能性は、現在のクロマ位置(xCurr,yCurr)が(xTbC,yTbC)に等しく設定された状態で、隣接クロマ位置(xTbC、yTbC-1)を入力として呼び出され、出力はavailTに割り当てられる。
- ブロックに対する左上隣接サンプル導出プロセスの利用可能性は、現在のクロマ位置(xCurr,yCurr)が(xTbC,yTbC)に等しく設定された状態で、隣接クロマ位置(xTbC-1,yTbC-1)を入力として呼び出され、出力はavailTLに割り当てられる。
- 利用可能な右上隣接クロマサンプルの数numTopRightは次のように導出される。
- 変数numTopRightは0に等しく設定され、availTRはTRUEに等しく設定される。
- predModeIntraがINTRA_T_CCLMに等しいとき、availTRがFALSEに等しくなるまで、またはxが2*nTbW-1に等しくなるまで、x=nTbW..2*nTbW-1に対して次のことが当てはまる。
- ブロックに対する利用可能性導出プロセスは、現在のクロマ位置(xCurr,yCurr)が(xTbC,yTbC)に等しく設定された状態で、隣接クロマ位置(xTbC+x、yTbC-1)を入力として呼び出され、出力はavailableTRに割り当てられる。
- availableTRがTRUEに等しいとき、numTopRightは1だけインクリメントされる。
- 利用可能な左下隣接クロマサンプルの数numLeftBelowは次のように導出される。
- 変数numLeftBelowは0に等しく設定され、availLBはTRUEに等しく設定される。
- predModeIntraがINTRA_L_CCLMに等しいとき、availLBがFALSEに等しくなるまで、またはyが2*nTbH-1に等しくなるまで、y=nTbH..2*nTbH-1に対して次のことが当てはまる。
- ブロックに対する利用可能性導出プロセスは、現在のクロマ位置(xCurr,yCurr)が(xTbC,yTbC)に等しく設定された状態で、隣接クロマ位置(xTbC-1、yTbC+y)を入力として呼び出され、出力はavailableLBに割り当てられる。
- availableLBがTRUEに等しいとき、numLeftBelowは1だけインクリメントされる。
上および右上の利用可能な隣接クロマサンプルの数numTopSampおよび左および左下の利用可能な隣接クロマサンプルの数nLeftSampは、次のように導出される。
- predModeIntraがINTRA_LT_CCLMに等しい場合、次のことが当てはまる。
numSampT=availT?nTbW:0 (8-156)
numSampL=availL?nTbH:0 (8-157)
- それ以外の場合、次のことが当てはまる。
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+ numTopRight):0 (8-158)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+numLeftBelow):0 (8-159)
変数bCTUboundaryは次のように導出される。
bCTUboundary=(yTbC&(1<<(CtbLog2SizeY-1) -1)==0)?TRUE:FALSE (8-160)
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は次のように導出される。
- numSampLとnumSampTの両方が0に等しい場合、次のことが当てはまる。
predSamples[x][y]=1<<(BitDepthC-1) (8-161)
- それ以外の場合、次の順序付けられたステップが適用される。
1. x=0..nTbW*2-1、y=0..nTbH*2-1である同一位置のルマサンプルpY[x][y]が、位置(xTbY+x, yTbY+y)におけるデブロッキングフィルタ処理の前に、再構築されたルマサンプルに等しく設定される。
2. 隣接ルマサンプルサンプルpY[x][y]が次のように導出される。
- numSampLが0より大きいとき、x=-1.. -3、y=0..2*numSampL-1である隣接左側ルマサンプルpY[x][y]が、位置(xTbY+x, yTbY+y)におけるデブロッキングフィルタ処理の前に、再構築されたルマサンプルに等しく設定される。
- numSampTが0より大きいとき、x=0..2*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]は、次のように導出される。
- sps_cclm_colocated_chroma_flagが1に等しい場合、次のことが当てはまる。
- x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は次のように導出される。
pDsY[x][y]=(pY[2*x][2*y-1]+pY[2*x-1][2*y]+4*pY[2*x][2*y]+pY[2*x+1][2*y]+pY[2*x][2*y+1]+4)>>3 (8-162)
- availLがTRUEに等しい場合、y=1..nTbH-1であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=(pY[0][2*y-1]+pY[-1][2*y]+4*pY[0][2*y]+pY[1][2*y]+pY[0][2*y+1]+4)>>3 (8-163)
- それ以外の場合、y=1..nTbH-1であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=(pY[0][2*y-1]+2*pY[0][2*y]+pY[0][2*y+1]+2)>>2 (8-164)
- availTがTRUEに等しい場合、x=1..nTbW-1であるpDsY[x][0]は次のように導出される。
pDsY[x][0]=(pY[2*x][ -1]+pY[2*x-1][0]+4*pY[2*x][0]+pY[2*x+1][0]+pY[2*x][1]+4)>>3 (8-165)
- それ以外の場合、x=1..nTbW-1であるpDsY[x][0]は次のように導出される。
pDsY[x][0]=(pY[2*x-1][0]+2*pY[2*x][0]+pY[2*x+1][0]+2)>>2 (8-166)
- availLがTRUEに等しく、availTがTRUEに等しい場合、pDsY[0][0]は次のように導出される。
pDsY[0][0]=(pY[0][ -1]+pY[-1][0]+4*pY[0][0]+pY[1][0]+pY[0][1]+4)>>3 (8-167)
- そうではなく、availLがTRUEに等しく、availTがFALSEに等しい場合、pDsY[0][0]は次のように導出される。
pDsY[0][0]=(pY[-1][0]+2*pY[0][0]+pY[1][0]+2)>>2 (8-168)
- そうではなく、availLがFALSEに等しく、availTがTRUEに等しい場合、pDsY[0][0]は次のように導出される。
pDsY[0][0]=(pY[0][ -1]+2*pY[0][0]+pY[0][1]+2)>>2 (8-169)
- そうではない(availLがFALSEに等しく、availTがFALSEに等しい)場合、pDsY[0][0]は次のように導出される。
pDsY[0][0]=pY[0][0] (8-170)
- それ以外の場合、次のことが当てはまる。
- x=1..nTbW-1、y=0..nTbH-1であるpDsY[x][y]は次のように導出される。
pDsY[x][y]=(pY[2*x-1][2*y]+pY[2*x-1][2*y+1]+2*pY[2*x][2*y]+2*pY[2*x][2*y+1]+pY[2*x+1][2*y]+pY[2*x+1][2*y+1]+4)>>3 (8-171)
- availLがTRUEに等しい場合、y=0..nTbH-1であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=(pY[-1][2*y]+pY[-1][2*y+1]+2*pY[0][2*y]+2*pY[0][2*y+1]+pY[1][2*y]+pY[1][2*y+1]+4)>>3 (8-172)
- それ以外の場合、y=0..nTbH-1であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=(pY[0][2*y]+pY[0][2*y+1]+1)>>1 (8-173)
CCLMは、クロマブロックと空間的に同一位置にあるサブサンプリングされたルマブロック(ダウンサンプリングされたルマブロック)を使用することによって、クロマブロックの中のクロマサンプルの値を予測する。ルマブロックのサブサンプリングまたはダウンサンプリングは、スペクトルミラーリングにより引き起こされるエイリアシングアーティファクトを抑制するためのフィルタリングを備える。補間フィルタタイプの選択は、サブサンプリングタイプと、元のピクチャのクロマサンプルとルマサンプルとの間のサブサンプル空間オフセットの値とに依存する。
以前の設計では、補間フィルタのセットはクロマフォーマットを考慮せずに定義されたので、水平方向におけるクロマサブサンプリング比(SubWidthC)が垂直方向におけるクロマサブサンプリング比(SubHeightC)に等しくないとき、次の欠陥が生じ得る。
- 過剰な平滑化、
- フィルタリングされた輝度信号の誤った位相シフト。
本開示は、ルマサンプルからクロマサンプルを予測するときにピクチャのクロマフォーマットを考慮するための方法を提供する。クロマフォーマットに基づいてフィルタセットを選択することによって、以前の設計の欠陥をなくすことができ、これは、より正確なクロマ予測信号、したがって予測誤差の低減をもたらす。より小さい予測誤差の技術的な結果は、残差信号エネルギーの低減である。コーディング方法は、再構築された信号の歪みを減らすために、残差信号を符号化するために必要とされるビットレートを下げるために、または、歪みを減らすこととビットレートを下げることの両方のために、この低減を利用し得る。本開示によって達成されるこれらの技術的な効果は、コーディング方法の全体的な圧縮性能を改善する。
Table 1(表1)は、本開示においてサポートされ得るクロマフォーマットを示す。変数SubWidthCおよびSubHeightCの値を決定するために使用され得る、chroma_format_idcおよび/またはseparate_colour_plane_flagなどのクロマフォーマット情報。
Figure 2022521757000014
chroma_format_idcは、ルマサンプリングに対するクロマサンプリングを指定する。chroma_format_idcの値は、両端を含めて0から3の範囲にあるものとする。
1に等しいseparate_colour_plane_flagは、4:4:4クロマフォーマットの3つの色成分が別々にコーディングされることを指定する。0に等しいseparate_colour_plane_flagは、色成分が別々にコーディングされないことを指定する。separate_colour_plane_flagが存在しないとき、それは0に等しいと推測される。separate_colour_plane_flagが1に等しいとき、コーディングされるピクチャは3つの別個の成分からなり、それらの各々が、1つの色平面(Y、Cb、またはCr)のコーディングされたサンプルからなり、モノクロームコーディングシンタックスを使用する。
クロマフォーマットは、クロマアレイの優先順位およびサブサンプリングを決定する。
モノクロームサンプリングでは、1つのサンプルアレイしかなく、これは名目的にはルマアレイと見なされる。
4:2:0サンプリングでは、図6Aに示されるように、2つのクロマアレイの各々が、ルマアレイの半分の高さおよび半分の幅を有する。
4:2:2サンプリングでは、図6Bに示されるように、2つのクロマアレイの各々が、ルマアレイと同じ高さおよび半分の幅を有する。
4:4:4サンプリングでは、separate_colour_plane_flagの値に応じて、次のことが当てはまる。
- separate_colour_plane_flagが0に等しい場合、図6Cに示されるように、2つのクロマアレイの各々が、ルマアレイと同じ高さおよび幅を有する。
- それ以外の場合(separate_colour_plane_flagが1に等しい)、3つの色平面が別々に、モノクロームのサンプリングされたピクチャとして処理される。
本開示では、線形モデルのパラメータを決定するために入力データとして使用されるルマサンプルを処理するための方法が提供される。線形モデルは、限定はされないが、成分間線形モデル(CCLM)または多方向線形モデル(MDLM)を含み得る。方法は、垂直方向および水平方向に条件的に適用されるフィルタのセット(2つのフィルタなど)の決定を含む。
いくつかの実施形態では、再構築されたルマサンプルに適用されるべきフィルタの係数を決定するために確認される、条件のセットが導入される。条件のセットは、限定はされないが、クロマサンプリング比に関わる条件(またすなわち、変数SubWidthCおよびSubHeightCなどのクロマサンプリング係数)を含む。
図7Aは、CCLMイントラ予測700を実行する例示的な機構を示す概略図である。CCLMイントラ予測700は、一種の成分間イントラ予測である。したがって、CCLMイントラ予測700は、エンコーダ20のイントラ予測ユニット254および/またはデコーダ30のイントラ予測ユニット354によって実行され得る。CCLMイントラ予測700は、クロマブロック701の中のクロマサンプル703を予測する。クロマサンプル703は、交差する線によって形成されるグリッドまたはセルとして示される整数位置に現れる。予測は、黒い丸として図示される、隣接参照サンプルに一部基づく。クロマサンプル703は、再構築されたクロマサンプル(Rec'C)として図示される、隣接クロマ参照サンプル705のみに基づいて予測されるのではない。クロマサンプル703は、再構築されたルマサンプル713および隣接ルマ参照サンプル715にも基づいて予測される。具体的には、CUはルマブロック711および2つのクロマブロック701を含む。同じCUの中のクロマサンプル703と再構築されたルマサンプル713を相関付けるモデルが生成される。モデルのための線形係数は、隣接ルマ参照サンプル715を隣接クロマ参照サンプル705と比較することによって決定されてもよく、ある例では、モデルのための線形係数は、選択された隣接ルマ参照サンプル715のダウンサンプリングされたルマ参照サンプル719を選択された隣接クロマ参照サンプル705と比較することによって決定されてもよく、選択された隣接クロマ参照サンプル705の位置は、ダウンサンプリングされたルマ参照サンプル719の位置に対応してもよい。
隣接クロマ参照サンプル705は、クロマブロック701の隣にある隣接ブロックの中のクロマサンプルから選択される。隣接クロマ参照サンプル705は、上側テンプレート707および/または左側テンプレート706から選択される。たとえば、隣接クロマ参照サンプル705は、上側テンプレート707および/または左側テンプレート706の利用可能性に基づいて選択され得る。図7Dに示されるように、4つの隣接クロマ参照サンプル705が選択され得る。隣接クロマ参照サンプル705は再構築されたサンプルであるので、隣接クロマ参照サンプル705は再構築されたクロマサンプル(Rec'C)と表記される。再構築されたルマサンプル713は、クロマブロック701と同じCUの中のルマブロック711から取得される。隣接ルマ参照サンプル715は、ルマブロック711の隣にある隣接ブロックの中のルマサンプルから選択される。隣接ルマ参照サンプル715は、上側テンプレート717および/または左側テンプレート716から選択される。たとえば、図7Dに示されるように、選択された4つの隣接クロマ参照サンプル705に対応する4つのダウンサンプリングされたルマ参照サンプル719を取得するために(すなわち、4つのダウンサンプリングされたルマ参照サンプル719の位置は選択された4つの隣接クロマ参照サンプル705の位置に対応する)、隣接ルマ参照サンプル715が選択される。6タップのダウンサンプリングフィルタが適用される場合などは、6つの隣接ルマ参照サンプル715が、1つの選択された隣接クロマ参照サンプル705に対応する1つのダウンサンプリングされたルマ参照サンプル719を取得するために使用される。再構築されたルマサンプル713はRec'Lと表記される。また、本明細書では、テンプレート706、707、716、および717は、隣接ルマ参照サンプル715を隣接クロマ参照サンプル705と相関付ける機構である。
示されるように、ルマブロック711は、クロマブロック701の4倍のサンプルを含む。具体的には、クロマブロック701はN対Nのサンプルを含み、一方でルマブロック711は2N対2Nのサンプルを含む。したがって、ルマブロック711は、クロマブロック701の4倍の分解能である。予測が再構築されたルマサンプル713および(選択された)隣接ルマ参照サンプル715に対して動作するには、隣接クロマ参照サンプル705とクロマサンプル703との正確な比較を行うために、再構築されたルマサンプル713および(選択された)隣接ルマ参照サンプル715がダウンサンプリングされる。ダウンサンプリングは、サンプルのグループの分解能を下げる処理である。
(選択された)隣接ルマ参照サンプル715および再構築されたルマサンプル713がダウンサンプリングされると、クロマブロック701のクロマサンプル703を予測するためにモデルが生成され得る。具体的には、CCLMイントラ予測700において、クロマブロック701のクロマサンプル703に対する予測は、以下の式1によって記述されるモデルに従って決定され得る。
predC(i,j)=α・recL'(i,j)+β (1)
ここで、predC(i,j)は位置(i,j)におけるクロマブロック701の予測クロマサンプル703であり、iは水平インデックスであり、jは垂直インデックスである。recL'(i,j)は、再構築されたルマサンプル713の位置(i,j)におけるダウンサンプリングされたルマサンプルであり、αおよびβは、(選択された)隣接ルマ参照サンプル715および(選択された)クロマ参照サンプル705のダウンサンプリングされたルマ参照サンプルに基づいて決定される線形係数である。YUV 4:2:0フォーマットでは、各クロマサンプルは4つの同一位置のルマサンプルを有するので、αとβを導出するために使用されるルマサンプルと、予測されたクロマサンプルを計算するために使用されるサンプルの両方がダウンサンプリングされる(図6A参照)。
ある例では、αおよびβは、図8および図7Dに関して論じられるように、選択された隣接ルマ参照サンプル715のダウンサンプリングされた隣接ルマ参照サンプル719の最小値および最大値に基づいて決定される。1つの例示的な実装形態では、ダウンサンプリングされたルマ参照サンプル719に基づいて最大ルマ値および最小ルマ値が決定された後で、第1のクロマ値が、最大ルマ値と関連付けられる1つまたは複数のダウンサンプリングされたルマ参照サンプル(2つのダウンサンプリングされたルマ参照サンプルなど)の1つまたは複数の位置(2つの位置など)に少なくとも一部基づいて取得される。たとえば、第1のクロマ値は、最大ルマ値と関連付けられる2つのダウンサンプリングされたルマ参照サンプルに対応する2つの位置における2つのクロマ参照サンプルに基づいて取得される。第2のクロマ値は、最小ルマ値と関連付けられる1つまたは複数のダウンサンプリングされたルマ参照サンプルの1つまたは複数の位置に少なくとも一部基づいて取得される。たとえば、第2のクロマ値は、最小ルマ値と関連付けられる2つのダウンサンプリングされたルマ参照サンプルに対応する2つの位置における2つのクロマ参照サンプルに基づいて取得される。線形モデル係数αおよびβは、第1のクロマ値、第2のクロマ値、最大ルマ値、および最小ルマ値に基づいて計算される(図7Dおよび図8を参照されたい)。
上で述べられたように、(選択された)隣接ルマ参照サンプル715および再構築されたルマサンプル713は、線形モデルを生成する前にダウンサンプリングされる。さらに、隣接ルマ参照サンプル715を生成するために複数の線/行と列を利用することは、CCLMイントラ予測700に従った残りの計算の正確さを大きくは高めない。したがって、隣接ルマ参照サンプル715の単一の行および/または列をダウンサンプリングの間に利用することができ、これは、CCLMイントラ予測700の正確さおよび/またはコーディング効率に大きな影響を与えることなく、ラインバッファメモリの利用率を下げる。
図7Bは、YCbCr 4:4:4クロマフォーマットが使用されている場合、左および上の原因となるサンプル、ならびにCCLMモードに関わる現在のブロックのサンプルの位置を示す。この場合、CCLMのためにダウンサンプリングは実行されない。
図7Cは、YCbCr 4:2:2クロマフォーマットが使用されている場合、左および上の原因となるサンプル、ならびにCCLMモードに関わる現在のブロックのサンプルの位置を示す。この場合、CCLMのために水平方向においてルマサンプルをダウンサンプリングする前に、フィルタリングが実行される。
図10は、成分間イントラ予測をサポートするためのダウンサンプリングの例示的な機構1500を示す概略図である。
機構1500は、隣接ルマ参照サンプルの単一の行1518および隣接ルマ参照サンプルの単一の列1520を利用する。行1518および列1520は、成分間イントラ予測に従って予測されているクロマブロックとCUを共有するルマブロック1511に直接隣り合う。ダウンサンプリングの後、隣接ルマ参照サンプルの行1518は、ダウンサンプリングされた隣接ルマ参照サンプルの行1516になる。さらに、隣接ルマ参照サンプルの列1520はダウンサンプリングされて、ダウンサンプリングされた隣接ルマ参照サンプルの単一の列1517をもたらす。行1516および列1517からのダウンサンプリングされた隣接ルマ参照サンプルは次いで、式1に従った成分間イントラ予測のために利用され得る。
したがって、1つの例示的な実装形態では、隣接ルマ参照サンプルの単一の行1518および隣接ルマ参照サンプルの単一の列1520は、成分間イントラ予測において使用するためにダウンサンプリングされる。別の例示的な実装形態では、隣接ルマ参照サンプルの単一の行1518の選択されたルマ参照サンプルおよび隣接ルマ参照サンプルの単一の列1520の選択されたルマ参照サンプルは、成分間イントラ予測において使用するためにダウンサンプリングされることに留意されたい。
ルマブロック1511に対して、A1と表記される上の隣接行1518が、Aと表記されるダウンサンプリングされた隣接行1516を得るためのダウンサンプリングのために使用される。A[i]はAのi番目のサンプルであり、A1[i]はA1のi番目のサンプルである。ある特定の例では、決定または選択される1つまたは複数のダウンサンプリングフィルタはピクチャのクロマフォーマットに依存し、ダウンサンプリングされた隣接行1516を取得するために、隣接行1518に適用され得る。別の特定の例では、図7Dに示されるように、決定または選択される1つまたは複数のダウンサンプリングフィルタはピクチャのクロマフォーマットに依存し、ダウンサンプリングされたルマ参照サンプルを取得するために、単一の行1518のいくつかの選択されたルマ参照サンプルA1[i]に適用され得る。これに関する詳細が以下で紹介される。
さらに、左の隣接列1520がL1と表記されるは、Lと表記されるダウサンプリングされた隣接列1517を取得するためのダウンサンプリングのために使用される。L[i]はLのi番目のサンプルであり、L1[i]はL1のi番目のサンプルである。ある特定の例では、決定または選択される1つまたは複数のダウンサンプリングフィルタはピクチャのクロマフォーマットに依存し、ダウンサンプリングされた隣接列1517を取得するために、隣接列1520に適用され得る。これに関する詳細が以下で紹介される。別の特定の例では、図7Dに示されるように、決定または選択される1つまたは複数のダウンサンプリングフィルタはピクチャのクロマフォーマットに依存し、ダウンサンプリングされたルマ参照サンプルを取得するために、単一の列1520のいくつかの選択されたルマ参照サンプルL1[i]に適用され得る。
さらに、行1518および/もしくは1516ならびに/または列1520および/もしくは1517の次元が、ルマブロック1511またはダウンサンプリングされたルマブロック1512の幅もしくは高さより大きいときにも、機構1500が適用され得ることにも留意されたい。代替的な設計では、その機構1500は、いくつかの選択された隣接参照サンプルA1[i]および/またはいくつかの選択された隣接参照サンプルL1[i]にも適用され得る。
図11は、本開示のいくつかの実施形態による、線形モデルを使用してイントラ予測を実行するための例示的なプロセス1100のフローチャートである。方法は、図1Aおよび図1Bに示されるコーデックシステム10または40のビデオエンコーダ20および/もしくはビデオデコーダ30によって実行され得る。具体的には、方法は、図2に示されるビデオエンコーダ20のイントラ予測ユニット244および/または図3に示されるビデオデコーダ30のイントラ予測ユニット354によって実行され得る。
ブロック1101において、ダウンサンプリングフィルタのセットがクロマフォーマット情報に基づいて決定され、クロマフォーマット情報は、現在のブロックが属するピクチャのクロマフォーマットを示す。現在のブロックは、ルマブロックおよび同一位置のクロマブロックを備える。ダウンサンプリングフィルタのセットの各ダウンサンプリングフィルタは、1つまたは複数のダウンサンプリングフィルタ係数によって定義され得ることが理解され得る。それが以下で詳しく説明される。
ブロック1103において、現在のブロックのルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプル、およびそのルマブロックの(それに隣接する)選択されたルマ参照サンプル(またすなわち、選択されたルマ隣接サンプル)のダウンサンプリングされたルマ参照サンプルが、ダウンサンプリングフィルタのセットの中のそれぞれのダウンサンプリングフィルタを使用して取得される。
図10に示されるように、ルマブロックの空間的な分解能は通常、クロマブロックより大きく、ルマブロック(すなわち、再構築されたルマブロック)は、ダウンサンプリングされたルマブロックを取得するためにダウンサンプリングされることが理解され得る。図9または図10に示されるように、選択された隣接ルマサンプル(ダウンサンプリングされたルマ参照サンプル)に水平および/または垂直に隣り合う再構築されたルマサンプルが、ルマブロックの外側の選択された隣接ルマサンプルのダウンサンプリングされたルマ参照サンプルを取得するために使用される。
ブロック1105において、1つまたは複数の線形モデル係数が、ダウンサンプリングされたルマ参照サンプルおよびダウンサンプリングされたルマ参照サンプルに対応する(またはそれと関連付けられる)クロマ参照サンプルに基づいて、決定または導出される。
ブロック1107において、ルマブロックに対応するクロマブロックの予測サンプルが、線形モデル係数およびルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルに基づいて取得される。
ブロック1101は、コーディングされているピクチャのクロマフォーマットを示すクロマフォーマット情報に基づいて、変数SubWidthCおよびSubHeightCの値を決定または取得または獲得することである。
ブロック1101は、変数SubWidthCおよびSubHeightCの値のために使用されるフィルタ「F」を定義または決定することである。
Table 2~Table 5(表2~表5)に示されるような、フィルタがSubWidthCおよびSubHeightCの対応する値とフィルタがどのように関連付けられ得るかの例示的な実施形態。空間フィルタ「F」は、係数の行列の形式で定義される。それらの係数が適用されるサンプルの位置は次のように定義され、フィルタリングまたは修正されるルマサンプルの位置は(x,y)と表記される。
Figure 2022521757000015
出力のフィルタリングされた再構築されたサンプルの位置がブロック境界上にあるとき、隣接ブロックが利用不可能であることにより、隣接する位置のいくつかが利用不可能になり得る。この場合、入力サンプルの選択は、ブロック境界においてサンプルを重複させるように修正される。この修正は、異なるフィルタ係数を伴うサンプルのより小さいセットに対して別のフィルタを適用することとして実施され得る。
具体的には、出力サンプルが現在のブロックの左の境界上にあり、ルマブロックの左隣のサンプルが利用可能ではないとき、フィルタリングのために使用されるサンプルの位置は次のように定義される。
Figure 2022521757000016
出力サンプルが現在のブロックの上の境界上にあり、ルマブロックの上側の隣のサンプルが利用可能ではないとき、フィルタリングのために使用されるサンプルの位置は次のように定義される。
Figure 2022521757000017
出力サンプルの位置が現在のブロックの右の境界上にあるとき、フィルタリングのために使用されるサンプルの位置は次のように定義される。
Figure 2022521757000018
出力サンプルの位置が現在のブロックの下の境界上にあるとき、フィルタリングのために使用されるサンプルの位置は次のように定義される。
Figure 2022521757000019
Figure 2022521757000020
Figure 2022521757000021
Figure 2022521757000022
Figure 2022521757000023
ブロック1103は、フィルタリングされたルマサンプル値Rec'L[x,y]を取得するために、再構築されたルマサンプルのフィルタリングを実行することである。具体的には、これは、再構築されたサンプルRecL[x,y]に選択されたフィルタ「F」を適用することによって実行される。
Figure 2022521757000024
ここで、Fは空間フィルタを表し、Nは空間フィルタFの係数の合計であり、(x,y)は再構築されたサンプルの位置を表す。このフィルタリングは、式(5)に示されるシナリオに対応する。式(6)~(9)について上で説明されたものなどの他のシナリオでは、式(6)~(9)に示されるサンプルの位置に基づいて上記のフィルタリングを調整することによって、フィルタリングが適用され得る。
さらなる実施形態では、フィルタは、ルマサンプルに対する相対的なサブサンプリングされたクロマサンプルの位置に応じて、様々なフィルタタイプ(Table 2~Table 5(表2~表5)において定義される様々なフィルタの関連付けなど)を切り替えることができる。ある例として、サブサンプリングされたクロマサンプルが対応するルマサンプルと同一位置にないとき(図6Dに示されるように、ビットストリームにおいてフラグ(0という値であるsps_cclm_colocated_chroma_flagなど)によってシグナリングされるような、クロマサンプルタイプ0、1、3、または5参照)、Table 4(表4)が使用される。それ以外の場合、Table 2(表2)またはTable 3(表3)のいずれかが現在のブロックのために使用される。
Table 2(表2)を使用するか、またはTable 3(表3)を使用するかの決定は、現在のブロックの中のルマサンプルの数に基づいて行われ得る。たとえば、64個以下のサンプルを備えるブロックでは、クロマサブサンプリングが実行されないとき、クロマフィルタリングが適用されない(したがって、Table 2(表2)の使用が選択される)。一方、ブロックサイズが64サンプルより大きいとき、Table 3(表3)がフィルタ「F」を定義するために使用される。64は例としてのみ使用され、サンプルの数の他の閾値が使用され得ることに留意されたい。
別の実施形態では、Table 6~Table 10(表6~表10)に示されるようなクロマフォーマットおよびクロマタイプを示す情報に従って、フィルタFが選択される。クロマタイプは、クロマ成分のずれを指定し、図6Dにおいて示される。図6Dにおいて、クロマサンプルタイプ2およびクロマサンプルタイプ4に対して、サブサンプリングされたクロマサンプルは、対応するルマサンプルと同一位置にある。クロマサンプルタイプ0、1、3、および5に対して、サブサンプリングされたクロマサンプルは、対応するルマサンプルと同一位置にない。Table 6~Table 10(表6~表10)において、「YUV 4:2:0」の列において指定されるフィルタが、VVCドラフトの以前の設計において使用される。列「YUV 4:2:2」および「YUV 4:4:4」は、対応するクロマフォーマットが定義されるとき、列「YUV 4:2:0」において定義されるフィルタを置き換えることができるフィルタを定義する。
Figure 2022521757000025
Figure 2022521757000026
Figure 2022521757000027
Figure 2022521757000028
Figure 2022521757000029
フィルタ
Figure 2022521757000030
は、フィルタバイパス演算(すなわち、出力値を入力値に設定することによる、すなわちフィルタがバイパスフィルタである)を含めて、異なる方法で実装され得る。代替的に、それは、同様の加算演算およびシフト演算を使用して実装され得る。
Figure 2022521757000031
提案される変更によれば、本明細書において提示される1つの例示的な実施形態に従って、線形モデル(ブロックの成分間予測)を使用してイントラ予測を実行するためのプロセスの詳細が、VVCドラフトの仕様の一部のフォーマットで、次のように説明される。
3. x=0..nTbW-1、y=0..nTbH-1であるダウンサンプリングされた同一位置のルマサンプルpDsY[x][y]は、次のように導出される。
- sps_cclm_colocated_chroma_flagが1に等しい場合、次のことが当てはまる。
- x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は次のように導出される。
pDsY[x][y]=
(F[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+
+F[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
+F[1][1]*pY[SubWidthC*x][SubHeightC*y]+
+F[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
+F[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3
- availLがTRUEに等しい場合、y=1..nTbH-1であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=
(F[1][0]*pY[0][SubHeightC*y-1]+
+F[0][1]*pY[-1][SubHeightC*y]+
+F[1][1]*pY[0][SubHeightC*y]+
+2)>>2
- それ以外の場合、y=1..nTbH-1であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=
(2*F[1][0]*pY[0][SubHeightC*y-1]+
+F[1][1]*pY[0][SubHeightC*y]+
+2)>>2
- availTがTRUEに等しい場合、x=1..nTbW-1であるpDsY[x][0]は次のように導出される。
pDsY[x][0]=
(F[1][0]*pY[SubWidthC*x][ -1]+
+F[0][1]*pY[SubWidthC*x-1][0]+
+F[1][1]*pY[SubWidthC*x][0]+
+F[2][1]*pY[SubWidthC*x+1][0]+
+F[1][2]*pY[SubWidthC*x][1]+4)>>3
- それ以外の場合、x=1..nTbW-1であるpDsY[x][0]は次のように導出される。
pDsY[x][0]=
(F[1][0]*pY[SubWidthC*x][-1]+
+F[0][1]*pY[SubWidthC*x-1][0]+
+F[1][1]*pY[SubWidthC*x][0]+
+F[2][1]*pY[SubWidthC*x+1][0]+
+F[1][2]*pY[SubWidthC*x][1]+4)>>3
- availLがTRUEに等しく、availTがTRUEに等しい場合、pDsY[0][0]は次のように導出される。
pDsY[0][0]=
(F[1][0]*pY[0][ -1]+
+F[0][1]*pY[-1][0]+
+F[1][1]*pY[0][0]+
+F[2][1]*pY[1][0]+
+F[1][2]*pY[0][1]+4)>>3
- そうではなく、availLがTRUEに等しく、availTがFALSEに等しい場合、pDsY[0][0]は次のように導出される。
pDsY[0][0]=
(F[0][1]*pY[-1][0]+
+F[1][1]*pY[0][0]+
+F[2][1]*pY[1][0]+
+2)>>2
- そうではなく、availLがFALSEに等しく、availTがTRUEに等しい場合、pDsY[0][0]は次のように導出される。
pDsY[0][0]=(pY[0][ -1]+2*pY[0][0]+pY[0][1]+2)>>2 (8-169)
- そうではない(availLがFALSEに等しく、availTがFALSEに等しい)場合、pDsY[0][0]は次のように導出される。
pDsY[0][0]=pY[0][0] (8-170)
- それ以外の場合、次のことが当てはまる。
- x=1..nTbW-1、y=0..nTbH-1であるpDsY[x][y]は次のように導出される。
pDsY[x][y]=
(F[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
+F[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+
+F[1][1]*pY[SubWidthC*x][SubHeightC*y]+
+F[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+
+F[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
+F[2][2]*pY[+1SubWidthC*x+1][SubHeightC*y+1]+4)>>3
- availLがTRUEに等しい場合、y=0..nTbH-1であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=
(F[0][1]*pY[-1][SubHeightC*y]+
+F[0][2]*pY[-1][SubHeightC*y+1]+
+F[1][1]*pY[0][SubHeightC*y]+
+F[1][2]*pY[0][SubHeightC*y+1]+
+F[2][1]*pY[1][SubHeightC*y]+
+F[2][2]*pY[1][SubHeightC*y+1]+4)>>3
- それ以外の場合、y=0..nTbH-1であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=
(F[1][1]*pY[0][SubHeightC*y]+
+F[1][2]*pY[0][SubHeightC*y+1]+1)>>1
上の説明において言及されるフィルタF[i][j]は、本明細書において提示される実施形態に従って指定される。
別の例示的な実施形態に従って、線形モデル(ブロックの成分間予測)を使用してイントラ予測を実行するためのプロセスの詳細が、VVCドラフトの仕様の一部のフォーマットで、次のように説明される。
8.4.4.2.8 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMイントラ予測モードの仕様
このプロセスへの入力は、
- イントラ予測モードpredModeIntra、
- 現在のピクチャの左上サンプルに対する相対的な現在の変換ブロックの左上サンプルのサンプル位置(xTbC,yTbC)、
- 変換ブロック幅を指定する変数nTbW、
- 変換ブロック高さを指定する変数nTbH、
- クロマ隣接サンプルp[x][y]、ただしx=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1である。
このプロセスの出力は、予測されたサンプルpredSamples[x][y]であり、x=0..nTbW-1、y=0..nTbH-1である。
現在のルマ位置(xTbY,yTbY)は次のように導出される。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (8-156)
変数availL、availT、およびavailTLは次のように導出される。
- ブロックに対する左側隣接サンプル導出プロセスの利用可能性は、現在のクロマ位置(xCurr,yCurr)が(xTbC,yTbC)に等しく設定された状態で、隣接クロマ位置(xTbC-1,yTbC)を入力として呼び出され、出力はavailLに割り当てられる。
- ブロックに対する上側隣接サンプル導出プロセスの利用可能性は、現在のクロマ位置(xCurr,yCurr)が(xTbC,yTbC)に等しく設定された状態で、隣接クロマ位置(xTbC、yTbC-1)を入力として呼び出され、出力はavailTに割り当てられる。
- ブロックに対する左上隣接サンプル導出プロセスの利用可能性は、現在のクロマ位置(xCurr,yCurr)が(xTbC,yTbC)に等しく設定された状態で、隣接クロマ位置(xTbC-1,yTbC-1)を入力として呼び出され、出力はavailTLに割り当てられる。
- 利用可能な右上隣接クロマサンプルの数numTopRightは次のように導出される。
- 変数numTopRightは0に等しく設定され、availTRはTRUEに等しく設定される。
- predModeIntraがINTRA_T_CCLMに等しいとき、availTRがFALSEに等しくなるまで、またはxが2*nTbW-1に等しくなるまで、x=nTbW..2*nTbW-1に対して次のことが当てはまる。
- ブロックに対する利用可能性導出プロセスは、現在のクロマ位置(xCurr,yCurr)が(xTbC,yTbC)に等しく設定された状態で、隣接クロマ位置(xTbC+x、yTbC-1)を入力として呼び出され、出力はavailableTRに割り当てられる。
- availableTRがTRUEに等しいとき、numTopRightは1だけインクリメントされる。
- 利用可能な左下隣接クロマサンプルの数numLeftBelowは次のように導出される。
- 変数numLeftBelowは0に等しく設定され、availLBはTRUEに等しく設定される。
- predModeIntraがINTRA_L_CCLMに等しいとき、availLBがFALSEに等しくなるまで、またはyが2*nTbH-1に等しくなるまで、y=nTbH..2*nTbH-1に対して次のことが当てはまる。
- ブロックに対する利用可能性導出プロセスは、現在のクロマ位置(xCurr,yCurr)が(xTbC,yTbC)に等しく設定された状態で、隣接クロマ位置(xTbC-1、yTbC+y)を入力として呼び出され、出力はavailableLBに割り当てられる。
- availableLBがTRUEに等しいとき、numLeftBelowは1だけインクリメントされる。
上および右上の利用可能な隣接クロマサンプルの数numTopSampおよび左および左下の利用可能な隣接クロマサンプルの数nLeftSampは、次のように導出される。
- predModeIntraがINTRA_LT_CCLMに等しい場合、次のことが当てはまる。
numSampT=availT?nTbW:0
numSampL=availL?nTbH:0
- それ以外の場合、次のことが当てはまる。
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+ numTopRight):0
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+numLeftBelow):0
変数bCTUboundaryは次のように導出される。
bCTUboundary=(yTbC&(1<<(CtbLog2SizeY-1) -1)==0)?TRUE:FALSE
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は次のように導出される。
- numSampLとnumSampTの両方が0に等しい場合、次のことが当てはまる。
predSamples[x][y]=1<<(BitDepthC-1)
- それ以外の場合、次の順序付けられたステップが適用される。
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)におけるデブロッキングフィルタ処理の前に、再構築されたルマサンプルに等しく設定される。
- 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==1かつSubHeightC==1である場合、次のことが当てはまる。
- x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は次のように導出される。
pDstY[x][y]=pY[x][y]
//説明のための注記: 4:4:4であるとき(SubWidthCとSubHeightCの両方が1に等しい場合)、ダウンサンプリングは必要とされず、すなわち、フィルタリングは実行されない。これは、係数[1]を伴うフィルタ、すなわちバイパスフィルタとしても解釈され得る//
- それ以外の場合、以下のことがフィルタのセット{F3,F5,F6}に対して当てはまる。//説明のための注記:ここで、4:2:0または4:2:2のとき(SubWidthCとSubHeightCの両方が1に等しくない場合)、フィルタの係数を定義し、F2はダウンサンプリングフィルタの第1のセットと第2のセットの両方に属する//
- F3[0]=1、F3[1]=2、F3[2]=1
- SubWidthC==2かつSubHeightC==2である場合、
F5[0][1]=1、F5[1][1]=4、F3[2][1]=1、F5[1][0]=1、F5[1][2]=1
F6[0][1]=1、F6[1][1]=2、F6[2][1]=1
F6[0][2]=1、F6[1][2]=2、F6[2][2]=1
F2[0]=1、F2[1]=1
- それ以外の場合
F5[0][1]=0、F5[1][1]=8、F3[2][1]=0、F5[1][0]=0、F5[1][2]=0
F6[0][1]=2、F6[1][1]=4、F6[2][1]=2
F6[0][2]=0、F6[1][2]=0、F6[2][2]=0
F2[0]=2、F2[1]=0
- sps_cclm_colocated_chroma_flagが1に等しい場合、次のことが当てはまる。
- x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、FをF5と設定することによって、次のように導出される。
- pDsY[x][y]=
(F[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+
+F[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
+F[1][1]*pY[SubWidthC*x][SubHeightC*y]+
+F[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
+F[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3
//説明のための注記: F5は特許請求される第1のダウンサンプリングフィルタに対応する//
//
- availLがTRUEに等しい場合、F5に設定されたFについて、y=1..nTbH-1であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=
(F[1][0]*pY[0][SubHeightC*y-1]+
+F[0][1]*pY[-1][SubHeightC*y]+
+F[1][1]*pY[0][SubHeightC*y]+
+F[2][1]*pY[1][SubHeightC*y]+
+F[1][2]*pY[0][SubHeightC*y+1]+4)>>3
- それ以外の場合、y=1..nTbH-1であるpDsY[0][y]は、F3に設定されたFについて、次のように導出される。
pDsY[0][y]=
(F[0]*pY[0][SubHeightC*y-1]+
+F[1]*pY[0][SubHeightC*y]+
+F[2]*pY[0][SubHeightC*y+1]+
+2)>>2
- availTがTRUEに等しい場合、x=1..nTbW-1であるpDsY[x][0]は、F5に設定されたFについて、次のように導出される。
pDsY[x][0]=
(F[1][0]*pY[SubWidthC*x][-1]+
+F[0][1]*pY[SubWidthC*x-1][0]+
+F[1][1]*pY[SubWidthC*x][0]+
+F[2][1]*pY[SubWidthC*x+1][0]+
+F[1][2]*pY[SubWidthC*x][1]+4)>>3
- それ以外の場合、x=1..nTbW-1であるpDsY[x][0]は、F3に設定されたFについて、次のように導出される。
pDsY[x][0]=
=(F[0]*pY[SubWidthC*x-1][0]+
+F[1]*pY[SubWidthC*x][0]+
+F[2]*pY[SubWidthC*x+1][0]+2)>>2
- availLがTRUEに等しく、availTがTRUEに等しい場合、pDsY[0][0]は、F5に設定されたFについて、次のように導出される。
pDsY[0][0]=
(F[1][0]*pY[0][-1]+
+F[0][1]*pY[-1][0]+
+F[1][1]*pY[0][0]+
+F[2][1]*pY[1][0]+
+F[1][2]*pY[0][1]+4)>>3
- そうではなく、availLがTRUEに等しく、availTがFALSEに等しい場合、pDsY[0][0]は、F3に設定されたFについて、次のように導出される。
pDsY[0][0]=
(F[0]*pY[-1][0]+
+F[1]*pY[0][0]+
+F[2]*pY[1][0]+
+2)>>2
- そうではなく、availLがFALSEに等しく、availTがTRUEに等しい場合、pDsY[0][0]は、F3に設定されたFについて、次のように導出される。
pDsY[0][0]=
(F[0]*pY[0][ -1]+
+F[1]*pY[0][0]++F[2]*pY[0][1]+
+2)>>2
- そうではない(availLがFALSEに等しく、availTがFALSEに等しい)場合、pDsY[0][0]は次のように導出される。
pDsY[0][0]=pY[0][0]
- それ以外の場合、次のことが当てはまる。
- x=1..nTbW-1、y=0..nTbH-1であるpDsY[x][y]は、F6に設定されたFについて、次のように導出される。
pDsY[x][y]=
(F[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
+F[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+
+F[1][1]*pY[SubWidthC*x][SubHeightC*y]+
+F[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+
+F[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
+F[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3
- availLがTRUEに等しい場合、F6に設定されたFについて、y=0..nTbH-であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=
(F[0][1]*pY[-1][SubHeightC*y]+
+F[0][2]*pY[-1][SubHeightC*y+1]+
+F[1][1]*pY[0][SubHeightC*y]+
+F[1][2]*pY[0][SubHeightC*y+1]+
+F[2][1]*pY[1][SubHeightC*y]+
+F[2][2]*pY[1][SubHeightC*y+1]+4)>>3
- それ以外の場合、y=0..nTbH-1であるpDsY[0][y]は、F2に設定されたFについて、次のように導出される。
pDsY[0][y]=
(F[0]*pY[0][SubHeightC*y]+
+F[1]*pY[0][SubHeightC*y+1]+1)>>1
//ステップ3は、それぞれのダウンサンプリングフィルタを使用して、現在のブロックのルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルを取得するための実装形態である。//
4. numSampLが0より大きいとき、y=0..numSampL-1であるダウンサンプリングされた隣接する左側ルマサンプルpLeftDsY[y]は次のように導出される。
- SubWidthC==1かつSubHeightC==1である場合、次のことが当てはまる。
- y=0..nTbH-1であるpLeftDsY[y]は次のように導出される: pLeftDsY[y]=pY[-1][y]
- それ以外の場合、次のことが当てはまる。
- sps_cclm_colocated_chroma_flagが1に等しい場合、次のことが当てはまる。
- y=1..nTbH-1であるpLeftDsY[y]は、F5に設定されたFについて、次のように導出される。
pLeftDsY[y]=
=F[1][0]*pY[-SubWidthC][SubHeightC*y-1]+
+F[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
+F[1][1]*pY[-SubWidthC][SubHeightC*y]+
+F[2][1]*pY[1-SubWidthC][SubHeightC*y]+
+F[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3
- availTLがTRUEに等しい場合、F5に設定されたFについて、pLeftDsY[0]は次のように導出される。
pLeftDsY[0]=
=F[1][0]*pY[-SubWidthC][ -1]+
+F[0][1]*pY[-1-SubWidthC][0]+
+F[1][1]*pY[-SubWidthC][0]+
+F[2][1]*pY[1-SubWidthC][0]+
+F[1][2]*pY[-SubWidthC][1]+4)>>3
- それ以外の場合、x=1..nTbW-1であるpDsY[x][0]は、F3に設定されたFについて、次のように導出される。
pLeftDsY[0]=
(F[0]*pY[-1-SubWidthC][0]+
+F[1]*pY[-SubWidthC][0]+
+F[2]*pY[1-SubWidthC][0]+
+2)>>2
- それ以外の場合F6に設定されたFについて、次のことが当てはまる。
pLeftDsY[y]=
=(F[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
+F[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+
+F[1][1]*pY[-SubWidthC][SubHeightC*y]+
+F[1][2]*pY[-SubWidthC][SubHeightC*y+1]+
+F[2][1]*pY[1-SubWidthC][SubHeightC*y]+
+F[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3
//説明のための注記:ステップ4および5は、それぞれのダウンサンプリングフィルタを使用して、ルマブロックの選択された隣接ルマサンプルのダウンサンプリングされたルマ参照サンプルを取得するための実装形態である。//
5. numSampTが0より大きいとき、x=0..numSampT-1であるダウンサンプリングされた隣接上側ルマサンプルpTopDsY[x]は次のように指定される。
- SubWidthC==1かつSubHeightC==1である場合、次のことが当てはまる。
- x=0..numSampT-1に対して、pTopDsY[x]=pY[x][-1]
- それ以外の場合、次のことが当てはまる。
- sps_cclm_colocated_chroma_flagが1に等しい場合、次のことが当てはまる。
- x=1..numSampT-1であるpTopDsY[x]は次のように導出される。
- bCTUboundaryがFALSEに等しい場合、F5に設定されたFについて、次のことが当てはまる。
pTopDsY[x]=
=(F[1][0]*pY[SubWidthC*x][ -1-SubHeightC]+
+F[0][1]*pY[SubWidthC*x-1][ -SubHeightC]+
+F[1][1]*pY[SubWidthC*x][ -SubHeightC]+
+F[2][1]*pY[SubWidthC*x+1][ -SubHeightC]+
+F[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3
- それ以外の場合(bCTUboundaryがTRUEに等しい)、F3に設定されたFについて、次のことが当てはまる。
pTopDsY[x]=
=(F[0]*pY[SubWidthC*x-1][ -1]+
+F[1]*pY[SubWidthC*x][ -1]+
+F[2]*pY[SubWidthC*x+1][ -1]+
+2)>>2
- pTopDsY[0]は次のように導出される。
- availTLがTRUEに等しく、bCTUboundaryがFALSEに等しい場合、F5に設定されたFについて、次のことが当てはまる。
pTopDsY[0]=
F[1][0]*pY[-1][ -1-SubHeightC]+
+F[0][1]*pY[-1][ -SubHeightC]+
+F[1][1]*pY[0][ -SubHeightC]+
+F[2][1]*pY[1][ -SubHeightC]++
+F[1][2]pY[-1][1-SubHeightC]++4)>>3
- そうではなく、availTLがTRUEに等しく、bCTUboundaryがTRUEに等しい場合、F3に設定されたFについて、次のことが当てはまる。
pTopDsY[0]=
=(F[0]*pY[-1][-1]+
+F[1]*pY[0][-1]+
+F[2]*pY[1][ -1]+
+2)>>2
- そうではなく、availTLがFALSEに等しく、bCTUboundaryがFALSEに等しい場合、F3に設定されたFについて、次のことが当てはまる。
pTopDsY[0]=
=(F[0]*pY[0][-1]+
+F[1]*pY[0][-2]+
+F[2]*pY[0][-1]+
+2)>>2
- それ以外の場合(availTLがFALSEに等しく、bCTUboundaryがTRUEに等しい)、次のことが当てはまる。
pTopDsY[0]=pY[0][ -1]
- それ以外の場合、次のことが当てはまる。
- x=1..numSampT-1であるpTopDsY[x]は次のように導出される。
- bCTUboundaryがFALSEに等しい場合、F6に設定されたFについて、次のことが当てはまる。
pTopDsY[x]=
=(F[0][1]*pY[SubWidthC*x-1][ -2]+
+F[0][2]*pY[SubWidthC*x-1][ -1]+
+F[1][1]*pY[SubWidthC*x][ -2]+
+F[1][2]*pY[SubWidthC*x][ -1]+
+F[2][1]*pY[SubWidthC*x+1][ -2]+
+F[2][2]*pY[SubWidthC*x+1][ -1]+4)>>3
- それ以外の場合(bCTUboundaryがTRUEに等しい)、F3に設定されたFについて、次のことが当てはまる。
pTopDsY[x]=
=(F[0]*pY[SubWidthC*y-1][ -1]+
+F[1]*pY[SubWidthC*y][ -1]+
+F[2]*pY[SubWidthC*y+1][ -1]+
+2)>>2
- pTopDsY[0]は次のように導出される。
- availTLがTRUEに等しく、bCTUboundaryがFALSEに等しい場合、F6に設定されたFについて、次のことが当てはまる。
pTopDsY[0]=
=(F[0][1]*pY[-1][ -2]+
+F[0][2]*pY[-1][-1]+
+F[1][1]*pY[0][ -2]+
+F[1][2]*pY[0][ -1]+
+F[2][1]*pY[1][ -2]+
+F[2][2]*pY[1][ -1]+4)>>3
- そうではなく、availTLがTRUEに等しく、bCTUboundaryがTRUEに等しい場合、F3に設定されたFについて、次のことが当てはまる。
pTopDsY[0]=
=(F[0]*pY[-1][ -1]+
+F[1]*pY[0][ -1]+
+F[2]*pY[1][ -1]+
+2)>>2
- そうではなく、availTLがFALSEに等しく、bCTUboundaryがFALSEに等しい場合、F2に設定されたFについて、次のことが当てはまる。
pTopDsY[0]=(F[1]*pY[0][ -2]+F[0]*pY[0][ -1]+1)>>1
- それ以外の場合(availTLがFALSEに等しく、bCTUboundaryがTRUEに等しい)、次のことが当てはまる。
pTopDsY[0]=pY[0][ -1]
//説明のための注記:ステップ4および5は、それぞれのダウンサンプリングフィルタを適用することによって、ルマブロックの選択された隣接ルマサンプルのダウンサンプリングされたルマ参照サンプルを取得するための実装形態である。//
6. 変数nS、xS、ySが次のように導出される。
- predModeIntraがINTRA_LT_CCLMに等しい場合、次のことが当てはまる。
nS=((availL&&availT)?Min(nTbW,nTbH):(availL?nTbH:nTbW))
xS=1<<(((nTbW>nTbH)&&availL&&availT)?(Log2(nTbW) -Log2(nTbH)):0) (8-192)
yS=1<<(((nTbH>nTbW)&&availL&&availT)?(Log2(nTbH) -Log2(nTbW)):0) (8-193)
- そうではなく、predModeIntraがINTRA_L_CCLMに等しい場合、次のことが当てはまる。
nS=numSampL
xS=1
yS=1
- それ以外の場合(predModeIntraがINTRA_T_CCLMに等しい)、次のことが当てはまる。
nS=numSampT
xS=1
yS=1
7. 変数minY、maxY、minC、およびmaxCは、次のように導出される。
- 変数minYは1<<(BitDepthY)+1に等しく設定され、変数maxYは-1に等しく設定される。
- availTがTRUEに等しい場合、x=0..nS-1である変数minY、maxY、minC、およびmaxCは、次のように導出される。
- minYがpTopDsY[x*xS]より大きい場合、次のことが当てはまる。
minY=pTopDsY[x*xS]
minC=p[x*xS][ -1]
- maxYがpTopDsY[x*xS]より小さい場合、次のことが当てはまる。
maxY=pTopDsY[x*xS]
maxC=p[x*xS][ -1]
- availLがTRUEに等しい場合、y=0..nS-1である変数minY、maxY、minC、およびmaxCは、次のように導出される。
- minYがpLeftDsY[y*yS]より大きい場合、次のことが当てはまる。
minY=pLeftDsY[y*yS]
minC=p[-1][y*yS]
- maxYがpLeftDsY[y*yS]より小さい場合、次のことが当てはまる。
maxY=pLeftDsY[y*yS]
maxC=p[-1][y*yS]
8. 変数a、b、およびkは、次のように導出される。
- numSampLが0に等しく、numSampTが0に等しい場合、次のことが当てはまる。
k=0
a=0
b=1<<(BitDepthC-1)
- それ以外の場合、次のことが当てはまる。
diff=maxY-minY
- diffが0に等しくない場合、次のことが当てはまる。
diffC=maxC-minC
x=Floor(Log2(diff))
normDiff=((diff<<4)>>x)&15
x+=(normDiff!=0)?1:0
y=Floor(Log2(Abs(diffC)))+1
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y
k=((3+x-y)<1)?1:3+x-y
a=((3+x-y)<1)?Sign(a)*15:a
b=minC- ((a*minY)>>k)
ここで、divSigTable[]は次のように規定される。
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}
- それ以外の場合(diffが0に等しい)、次のことが当てはまる。
k=0
a=0
b=minC
//説明のための注記: ステップ6~8は、選択された隣接ルマサンプルのダウンサンプリングされたルマ参照サンプルおよびダウンサンプリングされたルマ参照サンプルに対応するクロマ参照サンプルに基づいて、1つまたは複数の線形モデル係数を決定するための実装形態であり、具体的には、線形モデル係数の決定は、minY、maxY、minC、およびmaxCに基づく。//
9. x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は次のように導出される。
predSamples[x][y]=Clip1C(((pDsY[x][y]*a)>>k)+b)
//説明のための注記: ステップ9は、線形モデル係数およびルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルに基づいて、ルマブロックに対応するクロマブロックの予測サンプルを取得するための実装形態である。//
本開示では、フィルタのセット{F2,F3,F5,F6}に対して、「F」の後に続く1桁の数字は、フィルタセット内の異なるフィルタを表すために使用されるインデックスであることに留意されたい。フィルタは、対応するサンプルに適用されるべき1つまたは複数のフィルタ係数によって定義される。たとえば、F3における対応するサンプルに適用されるべき1つまたは複数のダウンサンプリングフィルタ係数が、F2における対応するサンプルに適用されるべき1つまたは複数のダウンサンプリングフィルタ係数と同じである場合、F3とF2は同じフィルタであることが理解され得る。たとえば、F3[0]=1、F3[1]=2、F3[2]=1であり、F2[0]=1、F2[1]=2、F2[2]=1である場合、F3=F2である。
たとえば、F5における対応するサンプルに適用されるべき1つまたは複数のダウンサンプリングフィルタ係数が、F5における対応するサンプルに適用されるべき1つまたは複数のダウンサンプリングフィルタ係数と異なる場合、F5とF5は名前が同じであっても異なるフィルタであることが理解され得る。たとえば、F5[0][1]=1、F5[1][1]=4、F5[2][1]=1、F5[1][0]=1、F5[1][2]=1であり、F5[0][1]=0、F5[1][1]=8、F5[2][1]=0、F5[1][0]=0、F5[1][2]=0である場合、F5≠F5である。
係数[1]を伴うフィルタが、すなわち、本開示のバイパスフィルタ、1D分離不可能フィルタ(F[i])、および2D分離不可能フィルタ(F[i][j])として存在することに留意されたい。
別の実施形態は、最大で4つの隣接クロマサンプルおよびそれらの対応するダウンサンプリングされたルマサンプルを用いてCCLMパラメータを導出するための方法を説明する。
現在のクロマブロックの次元がW×Hであるとすると、W'およびH'は、以下のように設定される。
・LMモードが適用される(上と左のテンプレートがLMモードにおいて使用される)とき、W'=W、H'=H
・LM-Aモードが適用される(上のテンプレートのみがLM-Aモードにおいて使用される)とき、W'=W+H
・LM-Lモードが適用される(左のテンプレートのみがLM-Lモードにおいて使用される)ときH'=H+W
上記の隣接サンプル(すなわち、現在のブロックの上にある隣接クロマサンプル)はS[0,-1]…S[W'-1,-1]と表記され、左側隣接サンプル(すなわち、現在のブロックの左にある隣接クロマサンプル)はS[-1,0]…S[-1,H'-1]と表記される。ここで、S[x,y]は位置(x,y)におけるサンプルを表記する。(x,y)は、現在のブロックの左上サンプルに対して相対的に測られる(すなわち、ブロックの左上サンプルは(0,0)とマークされる)。次いで、CCLMパラメータを導出するために使用される4つの隣接クロマサンプルは、以下のように規定され得る(それに対応して、選択された隣接ルマサンプルの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つの隣接クロマサンプルに対応する4つのダウンサンプリングされた隣接ルマサンプルは、2つのより小さい値x0 Aおよびx1 A、ならびに2つのより大きい値x0 Bおよびx1 Bを見つけるために4回比較され、x0 Bおよびx1 Bはx0 Aおよびx1 Aより大きい。それらの対応するクロマサンプル値は、y0 A、y1 A、y0 B、およびy1 Bと表記される。次いで、xA、xB、yA、およびyBは次のように導出される。
xA=(x0 A+x1 A+1)>>1、xB=(x0 B+x1 B+1)>>1、yA=(y0 A+y1 A+1)>>1、yB=(y0 B+y1 B+1)>>1
本明細書において提示される別の例示的な実施形態に従って、線形モデル(ブロックの成分間予測)を使用してイントラ予測を実行するためのプロセスの詳細が、VVCドラフトの仕様の一部のフォーマットで、次のように説明される(以下のセクション8.4.4.2.8のバージョンは、上記のセクション8.4.4.2.8のバージョンとは異なる)。
8.4.4.2.8 INTRA_LT_CCLM、INTRA_L_CCLM、およびINTRA_T_CCLMイントラ予測モードの仕様
このプロセスへの入力は、
- イントラ予測モードpredModeIntra、
- 現在のピクチャの左上サンプルに対する相対的な現在の変換ブロックの左上サンプルのサンプル位置(xTbC,yTbC)、
- 変換ブロック幅を指定する変数nTbW、
- 変換ブロック高さを指定する変数nTbH、
- クロマ隣接サンプルp[x][y]、ただしx=-1、y=0..2*nTbH-1およびx=0..2*nTbW-1、y=-1である。
このプロセスの出力は、予測されたサンプルpredSamples[x][y]であり、x=0..nTbW-1、y=0..nTbH-1である。
現在のルマ位置(xTbY,yTbY)は次のように導出される。
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1))
変数availL、availT、およびavailTLは次のように導出される。
- ブロックに対する左側隣接サンプル導出プロセスの利用可能性は、現在のクロマ位置(xCurr,yCurr)が(xTbC,yTbC)に等しく設定された状態で、隣接クロマ位置(xTbC-1,yTbC)を入力として呼び出され、出力はavailLに割り当てられる。
- ブロックに対する上側隣接サンプル導出プロセスの利用可能性は、現在のクロマ位置(xCurr,yCurr)が(xTbC,yTbC)に等しく設定された状態で、隣接クロマ位置(xTbC、yTbC-1)を入力として呼び出され、出力はavailTに割り当てられる。
- ブロックに対する左上隣接サンプル導出プロセスの利用可能性は、現在のクロマ位置(xCurr,yCurr)が(xTbC,yTbC)に等しく設定された状態で、隣接クロマ位置(xTbC-1,yTbC-1)を入力として呼び出され、出力はavailTLに割り当てられる。
- 利用可能な右上隣接クロマサンプルの数numTopRightは次のように導出される。
- 変数numTopRightは0に等しく設定され、availTRはTRUEに等しく設定される。
- predModeIntraがINTRA_T_CCLMに等しいとき、availTRがFALSEに等しくなるまで、またはxが2*nTbW-1に等しくなるまで、x=nTbW..2*nTbW-1に対して次のことが当てはまる。
- ブロックに対する利用可能性導出プロセスは、現在のクロマ位置(xCurr,yCurr)が(xTbC,yTbC)に等しく設定された状態で、隣接クロマ位置(xTbC+x、yTbC-1)を入力として呼び出され、出力はavailableTRに割り当てられる。
- availableTRがTRUEに等しいとき、numTopRightは1だけインクリメントされる。
- 利用可能な左下隣接クロマサンプルの数numLeftBelowは次のように導出される。
- 変数numLeftBelowは0に等しく設定され、availLBはTRUEに等しく設定される。
- predModeIntraがINTRA_L_CCLMに等しいとき、availLBがFALSEに等しくなるまで、またはyが2*nTbH-1に等しくなるまで、y=nTbH..2*nTbH-1に対して次のことが当てはまる。
- ブロックに対する利用可能性導出プロセスは、現在のクロマ位置(xCurr,yCurr)が(xTbC,yTbC)に等しく設定された状態で、隣接クロマ位置(xTbC-1、yTbC+y)を入力として呼び出され、出力はavailableLBに割り当てられる。
- availableLBがTRUEに等しいとき、numLeftBelowは1だけインクリメントされる。
上および右上の利用可能な隣接クロマサンプルの数numTopSampおよび左および左下の利用可能な隣接クロマサンプルの数nLeftSampは、次のように導出される。
- predModeIntraがINTRA_LT_CCLMに等しい場合、次のことが当てはまる。
numSampT=availT?nTbW:0
numSampL=availL?nTbH:0
- それ以外の場合、次のことが当てはまる。
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0
変数bCTUboundaryは次のように導出される。
bCTUboundary=(yTbC&(1<<(CtbLog2SizeY-1) -1)==0)?TRUE:FALSE
NがLおよびTで置き換えられた変数cntNおよびアレイpickPosN[]は、次のように導出される。
- 変数numIs4Nは((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1)に等しく設定される。
- 変数startPosNはnumSampN>>(2+numIs4N)に等しく設定される。
- 変数pickStepNはMax(1, numSampN>>(1+numIs4N))に等しく設定される。
- availNがTRUEに等しく、predModeIntraがINTRA_LT_CCLMまたはINTRA_N_CCLMに等しい場合、cntNはMin(numSampN,(1+numIs4N)<<1)に等しく設定され、pickPosN[pos]は(startPosN+pos*pickStepN)に等しく設定され、pos=0..(cntN-1)である。
- それ以外の場合cntNは0に等しく設定される。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は次のように導出される。
- numSampLとnumSampTの両方が0に等しい場合、次のことが当てはまる。
predSamples[x][y]=1<<(BitDepthC-1)
- それ以外の場合、次の順序付けられたステップが適用される。
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)におけるデブロッキングフィルタ処理の前に、再構築されたルマサンプルに等しく設定される。
- 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==1かつSubHeightC==1である場合、次のことが当てはまる。
- x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は次のように導出される。
pDstY[x][y]=pY[x][y]
//説明のための注記: 単なる説明として、YUV 4:4:4に対してフィルタなし。4:4:4であるとき(SubWidthCとSubHeightCの両方が1に等しい場合)、ダウンサンプリングは必要とされず、すなわち、フィルタリングは実行されない。これは、係数[1]を伴うフィルタ、すなわちバイパスフィルタとしても解釈され得る//
- それ以外の場合、以下のことがフィルタのセット{F3,F5,F6}に対して当てはまる。//説明のための注記:ここで、4:2:0または4:2:2のとき(SubWidthCとSubHeightCの両方が1に等しくない場合)、フィルタの係数を定義し、F2はダウンサンプリングフィルタの第1のセットと第2のセットの両方に属する//
- F3[0]=1、F3[1]=2、F3[2]=1
- SubWidthC==2かつSubHeightC==2である場合、
F5[0][1]=1、F5[1][1]=4、F3[2][1]=1、F5[1][0]=1、F5[1][2]=1
F6[0][1]=1、F6[1][1]=2、F6[2][1]=1
F6[0][2]=1、F6[1][2]=2、F6[2][2]=1
F2[0]=1、F2[1]=1
- それ以外の場合
F5[0][1]=0、F5[1][1]=8、F3[2][1]=0、F5[1][0]=0、F5[1][2]=0
F6[0][1]=2、F6[1][1]=4、F6[2][1]=2
F6[0][2]=0、F6[1][2]=0、F6[2][2]=0
F2[0]=2、F2[1]=0
- sps_cclm_colocated_chroma_flagが1に等しい場合、次のことが当てはまる。
- x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は、FをF5と設定することによって、次のように導出される。
pDsY[x][y]=
(F[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+
+F[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
+F[1][1]*pY[SubWidthC*x][SubHeightC*y]+
+F[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
+F[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3//説明のための注記: F5は特許請求される第1のダウンサンプリングフィルタに対応する//
- availLがTRUEに等しい場合、F5に設定されたFについて、y=1..nTbH-1であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=
(F[1][0]*pY[0][SubHeightC*y-1]+
+F[0][1]*pY[-1][SubHeightC*y]+
+F[1][1]*pY[0][SubHeightC*y]+
+F[2][1]*pY[1][SubHeightC*y]+
+F[1][2]*pY[0][SubHeightC*y+1]+4)>>3
- それ以外の場合、y=1..nTbH-1であるpDsY[0][y]は、F3に設定されたFについて、次のように導出される。
pDsY[0][y]=
(F[0]*pY[0][SubHeightC*y-1]+
+F[1]*pY[0][SubHeightC*y]+
+F[2]*pY[0][SubHeightC*y+1]+
+2)>>2
- availTがTRUEに等しい場合、x=1..nTbW-1であるpDsY[x][0]は、F5に設定されたFについて、次のように導出される。
pDsY[x][0]=
(F[1][0]*pY[SubWidthC*x][-1]+
+F[0][1]*pY[SubWidthC*x-1][0]+
+F[1][1]*pY[SubWidthC*x][0]+
+F[2][1]*pY[SubWidthC*x+1][0]+
+F[1][2]*pY[SubWidthC*x][1]+4)>>3
- それ以外の場合、x=1..nTbW-1であるpDsY[x][0]は、F3に設定されたFについて、次のように導出される。
pDsY[x][0]=
=(F[0]*pY[SubWidthC*x-1][0]+
+F[1]*pY[SubWidthC*x][0]+
+F[2]*pY[SubWidthC*x+1][0]+2)>>2
- availLがTRUEに等しく、availTがTRUEに等しい場合、pDsY[0][0]は、F5に設定されたFについて、次のように導出される。
pDsY[0][0]=
(F[1][0]*pY[0][-1]+
+F[0][1]*pY[-1][0]+
+F[1][1]*pY[0][0]+
+F[2][1]*pY[1][0]+
+F[1][2]*pY[0][1]+4)>>3
- そうではなく、availLがTRUEに等しく、availTがFALSEに等しい場合、pDsY[0][0]は、F3に設定されたFについて、次のように導出される。
pDsY[0][0]=
(F[0]*pY[-1][0]+
+F[1]*pY[0][0]+
+F[2]*pY[1][0]+
+2)>>2
- そうではなく、availLがFALSEに等しく、availTがTRUEに等しい場合、pDsY[0][0]は、F3に設定されたFについて、次のように導出される。
pDsY[0][0]=
(F[0]*pY[0][-1]+
+F[1]*pY[0][0]+
+F[2]*pY[0][1]+
+2)>>2
- そうではない(availLがFALSEに等しく、availTがFALSEに等しい)場合、pDsY[0][0]は次のように導出される。
pDsY[0][0]=pY[0][0]
- それ以外の場合、次のことが当てはまる。
- x=1..nTbW-1、y=0..nTbH-1であるpDsY[x][y]は、F6に設定されたFについて、次のように導出される。
pDsY[x][y]=
(F[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+
+F[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+
+F[1][1]*pY[SubWidthC*x][SubHeightC*y]+
+F[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+
+F[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+
+F[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3
- availLがTRUEに等しい場合、F6に設定されたFについて、y=0..nTbH-1であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=
(F[0][1]*pY[-1][SubHeightC*y]+
+F[0][2]*pY[-1][SubHeightC*y+1]+
+F[1][1]*pY[0][SubHeightC*y]+
+F[1][2]*pY[0][SubHeightC*y+1]+
+F[2][1]*pY[1][SubHeightC*y]+
+F[2][2]*pY[1][SubHeightC*y+1]+4)>>3
- それ以外の場合、y=0..nTbH-1であるpDsY[0][y]は、F2に設定されたFについて、次のように導出される。
pDsY[0][y]=
(F[0]*pY[0][SubHeightC*y]+
+F[1]*pY[0][SubHeightC*y+1]1)>>1
//ステップ3は、それぞれのダウンサンプリングフィルタを使用して、現在のブロックのルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルを取得するための実装形態である。//
4. numSampLが0より大きいとき、選択された隣接左側クロマサンプルpSelC[idx]はp[-1][pickPosL[idx]]に等しく設定され、idx=0..(cntL-1)であり、idx=0..(cntL-1)である選択されたダウンサンプリングされた隣接左側ルマサンプルpSelDsY[idx]が、次のように導出される。
- 変数yはpickPosL[idx]に等しく設定される。
- SubWidthC==1かつSubHeightC==1である場合、次のことが当てはまる。
- pSelDsY[i]=pY[-1][y]
- それ以外の場合、次のことが当てはまる。
- sps_cclm_colocated_chroma_flagが1に等しい場合、次のことが当てはまる。
- y>0 || availTL==TRUEである場合、F5に設定されたFについて:
pSelDsY[idx]=
=F[1][0]*pY[-SubWidthC][SubHeightC*y-1]+
+F[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
+F[1][1]*pY[-SubWidthC][SubHeightC*y]+
+F[2][1]*pY[1-SubWidthC][SubHeightC*y]+
+F[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3
- それ以外の場合、F3に設定されたFについて:
pSelDsY[idx]=
(F[0]*pY[-1-SubWidthC][0]+
+F[1]*pY[-SubWidthC][0]+
+F[2]*pY[1-SubWidthC][0]+
+2)>>2
- それ以外の場合、F6に設定されたFについて、次のことが当てはまる。
pSelDsY[idx]=
=(F[0][1]*pY[-1-SubWidthC][SubHeightC*y]+
+F[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+
+F[1][1]*pY[-SubWidthC][SubHeightC*y]+
+F[1][2]*pY[-SubWidthC][SubHeightC*y+1]+
+F[2][1]*pY[1-SubWidthC][SubHeightC*y]+
+F[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3
//説明のための注記:ステップ4および5は、それぞれのダウンサンプリングフィルタを使用して、ルマブロックの選択された隣接ルマサンプルのダウンサンプリングされたルマ参照サンプルを取得するための実装形態である。//
5. numSampTが0より大きいとき、選択された隣接上側クロマサンプルpSelC[idx]はp[pickPosT[idx-cntL]][ -1]に等しく設定され、idx=cntL..(cntL+cntT-1)であり、idx=cntL..cntL+cntT-1であるダウンサンプリングされた隣接上側ルマサンプルpSelDsY[idx]が、次のように導出される。
- 変数xはpickPosT[idx-cntL]に等しく設定される。
- SubWidthC==1かつSubHeightC==1である場合、次のことが当てはまる。
- pSelDsY[idx]=pY[x][-1]
- それ以外の場合、次のことが当てはまる。
- sps_cclm_colocated_chroma_flagが1に等しい場合、次のことが当てはまる。
- x>0である場合:
- bCTUboundaryがFALSEに等しい場合、F5に設定されたFについて、次のことが当てはまる。
pSelDsY[idx]=
=(F[1][0]*pY[SubWidthC*x][ -1-SubHeightC]+
+F[0][1]*pY[SubWidthC*x-1][ -SubHeightC]+
+F[1][1]*pY[SubWidthC*x][ -SubHeightC]+
+F[2][1]*pY[SubWidthC*x+1][ -SubHeightC]+
+F[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3
- それ以外の場合(bCTUboundaryがTRUEに等しい)、F3に設定されたFについて、次のことが当てはまる。
pSelDsY[idx]=
=(F[0]*pY[SubWidthC*x-1][ -1]+
+F[1]*pY[SubWidthC*x][ -1]+
+F[2]*pY[SubWidthC*x+1][ -1]+
+2)>>2
- それ以外の場合:
- availTLがTRUEに等しく、bCTUboundaryがFALSEに等しい場合、F5に設定されたFについて、次のことが当てはまる。
pSelDsY[idx]=
F[1][0]*pY[-1][ -1-SubHeightC]+
+F[0][1]*pY[-1][-SubHeightC]+
+F[1][1]*pY[0][-SubHeightC]+
+F[2][1]*pY[1][-SubHeightC]+
+F[1][2]pY[-1][1-SubHeightC]+4)>>3
- そうではなく、availTLがTRUEに等しく、bCTUboundaryがTRUEに等しい場合、F3に設定されたFについて、次のことが当てはまる。
pSelDsY[idx]=
=(F[0]*pY[-1][-1]+
+F[1]*pY[0][-1]+
+F[2]*pY[1][-1]+
+2)>>2 (8-182)
- そうではなく、availTLがFALSEに等しく、bCTUboundaryがFALSEに等しい場合、F3に設定されたFについて、次のことが当てはまる。
pSelDsY[idx]=
=(F[0]*pY[0][-1]+
+F[1]*pY[0][-2]+
+F[2]*pY[0][-1]+
+2)>>2
- それ以外の場合(availTLがFALSEに等しく、bCTUboundaryがTRUEに等しい)、次のことが当てはまる。
pSelDsY[idx]=pY[0][-1]
- それ以外の場合、次のことが当てはまる。
- x>0である場合:
- bCTUboundaryがFALSEに等しい場合、F6に設定されたFについて、次のことが当てはまる。
pSelDsY[idx]=
=(F[0][1]*pY[SubWidthC*x-1][-2]+
+F[0][2]*pY[SubWidthC*x-1][-1]+
+F[1][1]*pY[SubWidthC*x][-2]+
+F[1][2]*pY[SubWidthC*x][-1]+
+F[2][1]*pY[SubWidthC*x+1][-2]+
+F[2][2]*pY[SubWidthC*x+1][-1]+4)>>3
- それ以外の場合(bCTUboundaryがTRUEに等しい)、F3に設定されたFについて、次のことが当てはまる。
pSelDsY[idx]=
=(F[0]*pY[SubWidthC*y-1][-1]+
+F[1]*pY[SubWidthC*y][-1]+
+F[2]*pY[SubWidthC*y+1][-1]+
+2)>>2
- それ以外の場合:
- availTLがTRUEに等しく、bCTUboundaryがFALSEに等しい場合、F6に設定されたFについて、次のことが当てはまる。
pSelDsY[idx]=
=(F[0][1]*pY[-1][-2]+
+F[0][2]*pY[-1][-1]+
+F[1][1]*pY[0][-2]+
+F[1][2]*pY[0][-1]+
+F[2][1]*pY[1][-2]+
+F[2][2]*pY[1][-1]+4)>>3
- そうではなく、availTLがTRUEに等しく、bCTUboundaryがTRUEに等しい場合、F3に設定されたFについて、次のことが当てはまる。
pSelDsY[idx]=
=(F[0]*pY[-1][-1]+
+F[1]*pY[0][-1]+
+F[2]*pY[1][-1]+
+2)>>2
- そうではなく、availTLがFALSEに等しく、bCTUboundaryがFALSEに等しい場合、F2に設定されたFについて、次のことが当てはまる。
pSelDsY[idx]=(F[1]*pY[0][-2]+F[0]*pY[0][-1]+1)>>1
- それ以外の場合(availTLがFALSEに等しく、bCTUboundaryがTRUEに等しい)、次のことが当てはまる。
pSelDsY[idx]=pY[0][-1]
//説明のための注記:ステップ4および5は、それぞれのダウンサンプリングフィルタを適用することによって、ルマブロックの選択された隣接ルマサンプルのダウンサンプリングされたルマ参照サンプルを取得するための実装形態である。//
6. cntT+cntLが0に等しくないとき、変数minY、maxY、minC、およびmaxCは、次のように導出される。
- cntT+cntLが2に等しいとき、pSelComp[3]をpSelComp[0]に等しく設定し、pSelComp[2]をpSelComp[1]に等しく設定し、pSelComp[0]をpSelComp[1]に等しく設定し、pSelComp[1]をpSelComp[3]に等しく設定し、CompはDsYおよびCにより置き換えられる。
- アレイminGrpIdx[]およびmaxGrpIdx[]は、minGrpIdx[0]=0、minGrpIdx[1]=2、maxGrpIdx[0]=1、maxGrpIdx[1]=3として設定される。
- pSelDsY[minGrpIdx[0]]>pSelDsY[minGrpIdx[1]]である場合、Swap(minGrpIdx[0], minGrpIdx[1])。
- pSelDsY[maxGrpIdx[0]]>pSelDsY[maxGrpIdx[1]]である場合、Swap(maxGrpIdx[0], maxGrpIdx[1])。
- pSelDsY[minGrpIdx[0]]>pSelDsY[maxGrpIdx[1]]である場合、Swap(minGrpIdx, maxGrpIdx)。
- pSelDsY[minGrpIdx[1]]>pSelDsY[maxGrpIdx[0]]である場合、Swap(minGrpIdx[1], maxGrpIdx[0])。
- maxY=( pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1
- maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1
- minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1
- minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1
7. 変数a、b、およびkは、次のように導出される。
- numSampLが0に等しく、numSampTが0に等しい場合、次のことが当てはまる。
k=0
a=0
b=1<<(BitDepthC-1)
- それ以外の場合、次のことが当てはまる。
diff=maxY-minY
- diffが0に等しくない場合、次のことが当てはまる。
diffC=maxC-minC
x=Floor(Log2(diff))
normDiff=((diff<<4)>>x)&15
x+=(normDiff!=0)?1:0
y=Floor(Log2(Abs(diffC)))+1
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y
k=((3+x-y)<1)?1:3+x-y
a=((3+x-y)<1)?Sign(a)*15:a
b=minC-((a*minY)>>k)
ここで、divSigTable[]は次のように規定される。
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}
- それ以外の場合(diffが0に等しい)、次のことが当てはまる。
k=0
a=0
b=minC
//説明のための注記:ステップ6~7は、選択された隣接ルマサンプルのダウンサンプリングされたルマ参照サンプルおよびダウンサンプリングされたルマ参照サンプルに対応するクロマ参照サンプルに基づいて、1つまたは複数の線形モデル係数を決定するための実装形態であり、具体的には、線形モデル係数の決定は、minY、maxY、minC、およびmaxCに基づく。//
8. x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は次のように導出される。
predSamples[x][y]=Clip1C(((pDsY[x][y]*a)>>k)+b)//説明のための注記:ステップ8は、線形モデル係数およびルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルに基づいて、ルマブロックに対応するクロマブロックの予測サンプルを取得するための実装形態である。//
図12は、本開示の別の態様による、線形モデルを使用してイントラ予測を実行するためのデバイスを示す。デバイス1200は、
クロマフォーマット情報に基づいてダウンサンプリングフィルタのセットを決定するために構成される決定ユニット1201であって、クロマフォーマット情報が、現在のブロックが属するピクチャのクロマフォーマットを示す、決定ユニットと、
ダウンサンプリングフィルタのセットの中の(それから選択された)それぞれのダウンサンプリングフィルタを使用して、現在のブロックのルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプル、およびそのルマブロックの選択されたルマ参照サンプル(または選択されたルマ隣接サンプル)のダウンサンプリングされたルマ参照サンプルを取得するために構成されるフィルタリングユニット1203と、
ダウンサンプリングされたルマ参照サンプルおよびダウンサンプリングされたルマ参照サンプルに対応するクロマ参照サンプルに基づいて、1つまたは複数の線形モデル係数を決定するために構成される線形モデル導出ユニット1205と、
線形モデル係数およびルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルに基づいて、ルマブロックに対応するクロマブロックの予測サンプルを取得するために構成される予測ユニット1207とを備える。
それに対応して、ある例では、デバイス1200の例示的な構造は、図2のエンコーダ20に対応していてもよい。別の例では、デバイス1200の例示的な構造は、図3のデコーダ30に対応していてもよい。
別の例では、デバイス1200の例示的な構造は、図2のイントラ予測ユニット254に対応していてもよい。別の例では、デバイス1200の例示的な構造は、図3のイントラ予測ユニット354に対応していてもよい。
本開示は以下のさらなる態様を提供する。
第1の態様によれば、本開示は、線形モデルを使用したイントラ予測のための方法に関する。方法は、コーディング装置(具体的には、イントラ予測のための装置)によって実行される。方法は、
- 現在のブロックが属するピクチャのクロマフォーマットに基づいて、ブロックに属するルマサンプル(各ルマサンプルなど)(すなわち、現在のブロックの内部サンプル)のためのフィルタを決定するステップを含み、具体的には、異なるルマサンプルは異なるフィルタに対応し得る。
基本的に、それが境界上にあるかどうかに応じて。
- 現在のブロックに属するルマサンプル(各ルマサンプルなど)の位置において、再構築されたルマサンプルのエリアに決定されたフィルタを適用して、フィルタリングされた再構築されたルマサンプル(Rec'L[x, y]など)を取得すること、
- フィルタリングされた再構築されたルマサンプルに基づいて、線形モデル導出の入力として使用されるルマサンプルのセットを取得すること、および
線形モデル導出の線形モデル係数およびフィルタリングされた再構築されたルマサンプルに基づいて、成分間予測(成分間のルマからクロマへの予測またはCCLM予測など)を実行すること。
本開示は、CCLMのルマフィルタに関する。本開示は、ルマサンプルをフィルタリングすることについてのものである。本開示は、CCLMの内側で実行されるフィルタ選択に関する。
CCLMはクロマ予測に関し、それは、再構築されたルマを使用してクロマ信号を予測する。
第1の態様自体による方法の可能な実装形式では、フィルタを決定することは、
現在のブロックおよびクロマフォーマット内でのルマサンプルの位置に基づいて、フィルタを決定すること、または、
現在のブロック内でのルマサンプルのそれぞれの位置およびクロマフォーマットに基づいて、現在のブロックに属する複数のルマサンプルのためのそれぞれのフィルタを決定することを備える。現在のブロックに隣り合うサンプルが利用可能である場合、フィルタは、現在のブロックの境界エリアをフィルタリングするためにもそれらを使用し得ることが理解され得る。
第1の態様自体による方法の可能な実装形式では、フィルタを決定することは、
現在のブロックが属するピクチャのクロマフォーマット、
現在のブロック内でのルマサンプルの位置、
現在のブロックに属するルマサンプルの数、
現在のブロックの幅と高さ、および
現在のブロック内でのルマサンプルに対する相対的なサブサンプリングされたクロマサンプルの位置
のうちの1つまたは複数に基づいてフィルタを決定することを備える。
第1の態様自体による方法の可能な実装形式では、サブサンプリングされたクロマサンプルが対応するルマサンプルと同一位置にないとき、複数のフィルタと現在のブロックの幅および高さの値との間の第1の関係(Table 4(表4)など)が、フィルタの決定のために使用され、
サブサンプリングされたクロマサンプルが対応するルマサンプルと同一位置にあるとき、複数のフィルタと現在のブロックの幅および高さの値との間の第2または第3の関係(Table 2(表2)またはTable 3(表3)のいずれかなど)が、フィルタの決定のために使用される。
第1の態様自体による方法の可能な実装形式では、複数のフィルタと現在のブロックの幅および高さの値との間の第2または第3の関係(Table 2(表2)またはTable 3(表3)のいずれかなど)が、現在のブロックに属するルマサンプルの数に基づいて決定される。
第1の態様自体による方法の可能な実装形式では、現在のブロックのクロマ成分がサブサンプリングされないとき、フィルタは、フィルタリングされた再構築されたルマサンプルの位置に水平および垂直に隣り合う位置にある0ではない係数を備える。
(
Figure 2022521757000032
など、係数「4」を伴う中心の位置は、フィルタリングされた再構築されたルマサンプルの位置に対応する)
第1の態様自体による方法の可能な実装形式では、再構築されたルマサンプルのエリアは、フィルタリングされた再構築されたサンプルの位置に対する相対的な複数の再構築されたルマサンプルを含み、フィルタリングされた再構築されたルマサンプルの位置は、現在のブロックに属するルマサンプルの位置に対応し、フィルタリングされた再構築されたルマサンプルの位置は、現在のブロックのルマブロックの内部にある。
第1の態様自体による方法の可能な実装形式では、再構築されたルマサンプルのエリアは、フィルタリングされた再構築されたルマサンプルの位置に水平および垂直に隣り合う位置における複数の再構築されたルマサンプルを含み、フィルタリングされた再構築されたルマサンプルの位置は、現在のブロックに属するルマサンプルの位置に対応し、フィルタリングされた再構築されたルマサンプルの位置は、現在のブロックの内部にある(現在のルマブロックまたは現在のブロックのルマ成分など)。たとえば、フィルタリングされた再構築されたルマサンプルの位置は、現在のブロックの内部にある(図8の右側部分、フィルタをルマサンプルに適用する)。
第1の態様自体による方法の可能な実装形式では、クロマフォーマットはYCbCr 4:4:4クロマフォーマット、YCbCr 4:2:0クロマフォーマット、YCbCr 4:2:2クロマフォーマット、またはモノクロームを備える。
第1の態様自体による方法の可能な実装形式では、線形モデル導出の入力として使用されるルマサンプルのセットは、
フィルタリングされた再構築されたルマサンプル(Rec'L[x,y]など)からサブサンプリングされる、再構築された境界ルマサンプルを備える。
第1の態様自体による方法の可能な実装形式では、現在のクロマブロックのための予測子は、
predC(i,j)=α・recL'(i,j)+β
に基づいて取得される。
ここで、predC(i,j)はクロマサンプルを表し、recL(i,j)は対応する再構築されたルマサンプルを表す。
第1の態様自体による方法の可能な実装形式では、線形モデルは多方向線形モデル(MDLM)であり、MDLMを取得するために線形モデル係数が使用される。
本開示の第2の態様によれば、線形モデルを使用するイントラ予測のための方法が提供され、この方法は、
- 現在のブロックが属するピクチャのクロマフォーマットに基づいて、現在のブロックのルマ成分のためのフィルタを決定するステップと、
- 現在のブロックのルマ成分の再構築されたルマサンプルのエリア、および現在のブロックに隣接する選択された位置にあるルマサンプル(現在のブロックの左側または上側に隣接する1つまたはいくつかの行/列)に決定されたフィルタを適用し、フィルタリングされた再構築されたルマサンプル(たとえば、現在のブロックの内部のフィルタリングされた再構築されたルマサンプル(現在のブロックのルマ成分など))を取得するステップと、
線形モデル導出の入力としてのフィルタリングされた再構築されたルマサンプルに基づいて(たとえば、ルマサンプルのセットは、現在のブロックの内部のフィルタリングされた再構築されたルマサンプルおよび現在のブロックの外側のフィルタリングされた隣接ルマサンプルを含み、たとえば、決定されたフィルタは、現在のブロックの外側の隣接ルマサンプルにも適用され得る)、線形モデル係数を取得するステップと、
取得された線形モデル係数および現在のブロックのフィルタリングされた再構築されたルマサンプル(たとえば、現在のブロックの内部のフィルタリングされた再構築されたルマサンプル(現在のブロックのルマ成分など))に基づいて成分間予測を実行して、現在のクロマブロックの予測子を取得するステップとを備える。
第2の態様自体による方法の可能な実装形式では、フィルタを決定することは、
現在のブロックおよびクロマフォーマット内でのルマサンプルの位置に基づいて、フィルタを決定すること、または、
現在のブロック内でのルマサンプルのそれぞれの位置およびクロマフォーマットに基づいて、現在のブロックに属する複数のルマサンプルのためのそれぞれのフィルタを決定することを備える。
第2の態様自体による方法の可能な実装形式では、フィルタを決定することは、
サブサンプリング比情報(現在のブロックが属するピクチャのクロマフォーマットに従ってテーブルから取得され得る、SubWidthCおよびSubHeightCなど)、
現在のブロックが属するピクチャのクロマフォーマット(サブサンプリング比情報(SubWidthCおよびSubHeightCなど)を取得するためにクロマフォーマットが使用されるなど)、
現在のブロック内でのルマサンプルの位置、
現在のブロックに属するルマサンプルの数、
現在のブロックの幅と高さ、および/または
現在のブロック内でのルマサンプルに対する相対的なサブサンプリングされたクロマサンプルの位置
のうちの1つまたは複数に基づいてフィルタを決定することを備える。
第2の態様の任意の前述の実装形態または第2の態様自体による方法の可能な実装形式では、サブサンプリングされたクロマサンプルが対応するルマサンプルと同一位置にないとき、複数のフィルタとサブサンプリング比情報(SubWidthCおよびSubHeightCなど、または現在のブロックの幅および高さの値など)との間の第1のあらかじめ設定された関係(Table 4(表4)など)が、フィルタの決定のために使用され、および/または、
サブサンプリングされたクロマサンプルが対応するルマサンプルと同一位置にあるとき、複数のフィルタとサブサンプリング比情報(SubWidthCおよびSubHeightCなど、または現在のブロックの幅および高さの値など)との間の第2または第3のあらかじめ設定された関係(Table 2(表2)またはTable 3(表3)のいずれかなど)が、フィルタの決定のために使用される。
第2の態様の任意の前述の実装形態または第2の態様自体による方法の可能な実装形式では、複数のフィルタとサブサンプリング比情報(SubWidthCおよびSubHeightCなど、または現在のブロックの幅および高さの値など)との間の第2または第3の関係(Table 2(表2)またはTable 3(表3)のいずれかなど)が、現在のブロックに属するいくつかのルマサンプル(利用可能なルマサンプルなど)の数に基づいて決定される。
第2の態様の任意の前述の実装形態または第2の態様自体による方法の可能な実装形式では、フィルタは次のように条件的に決定される。
第1の条件(SubWidthC==1およびSubHeightC==1などの、本明細書において定義されるテーブルから得られるサブサンプリング比情報など)が満たされない場合、次のことがフィルタのセット{F3,F5,F6}に対して当てはまる。
F3[0]=1, F3[1]=2, F3[2]=1
第2の条件(SubWidthC==2およびSubHeightC==2などの、テーブルから得られるサブサンプリング比情報など)が満たされる場合、
F5[0][1]=1、F5[1][1]=4、F3[2][1]=1、F5[1][0]=1、F5[1][2]=1
F6[0][1]=1、F6[1][1]=2、F6[2][1]=1
F6[0][2]=1、F6[1][2]=2、F6[2][2]=1
F2[0]=1、F2[1]=1
それ以外の場合(たとえば、第2の条件(SubWidthC==2およびSubHeightC==2などの、テーブルから得られるサブサンプリング比情報)が満たされない場合)、
F5[0][1]=0、F5[1][1]=8、F5[2][1]=0、F5[1][0]=0、F5[1][2]=0
F6[0][1]=2、F6[1][1]=4、F6[2][1]=2
F6[0][2]=0、F6[1][2]=0、F6[2][2]=0
F2[0]=2、F2[1]=0
第2の態様の任意の前述の実装形態または第2の態様自体による方法の可能な実装形式では、現在のブロックのクロマサンプルがサブサンプリングされないとき、フィルタは、フィルタリングされた再構築されたルマサンプルの位置に水平および/または垂直に隣り合う位置にある0ではない係数を備える。
(
Figure 2022521757000033
など、係数「4」を伴う中心の位置は、フィルタリングされた再構築されたルマサンプルの位置に対応する)
第2の態様の任意の前述の実装形態または第2の態様自体による方法の可能な実装形式では、再構築されたルマサンプルのエリアは、フィルタリングされた再構築されたサンプルの位置に対する相対的な複数の再構築されたルマサンプルを含み、フィルタリングされた再構築されたルマサンプルの位置は、ブロックに属するルマサンプルの位置に対応し、フィルタリングされた再構築されたルマサンプルの位置は、ブロックのルマブロックの内部にある。
第2の態様の任意の前述の実装形態または第2の態様自体による方法の可能な実装形式では、再構築されたルマサンプルのエリアは、フィルタリングされた再構築されたルマサンプルの位置に水平および/または垂直に隣り合う位置における複数の再構築されたルマサンプルを含み、フィルタリングされた再構築されたルマサンプルの位置は、ブロックに属するルマサンプルの位置に対応し、フィルタリングされた再構築されたルマサンプルの位置は、ブロックの内部にある(現在のルマブロックまたは現在のブロックのルマ成分など)。
第2の態様の任意の前述の実装形態または第2の態様自体による方法の可能な実装形式では、クロマフォーマットはYCbCr 4:4:4クロマフォーマット、YCbCr 4:2:0クロマフォーマット、YCbCr 4:2:2クロマフォーマット、またはモノクロームを備える。
第2の態様の任意の前述の実装形態または第2の態様自体による方法の可能な実装形式では、線形モデル導出の入力として使用されるルマサンプルのセットは、
フィルタリングされた再構築されたルマサンプル(Rec'L[x,y]など)からサブサンプリングされる、再構築された境界ルマサンプルを備える。
第2の態様の任意の前述の実装形態または第2の態様自体による方法の可能な実装形式では、現在のクロマブロックのための予測子は、
predC(i,j)=α・recL'(i,j)+β
に基づいて取得される。
ここで、predC(i,j)はクロマサンプルを表し、recL(i,j)はルマサンプルの対応する再構築された値を表し(対応する再構築されたルマサンプルの位置が現在のブロックの内部にあるなど)、αおよびβは線形モデル係数を表す。
第2の態様の任意の前述の実装形態または第2の態様自体による方法の可能な実装形式では、線形モデルは多方向線形モデル(MDLM)であり、MDLMを取得するために線形モデル係数が使用される。
本開示の第3の態様によれば、符号化デバイスによって実施される符号化の方法が提供され、この方法は、
本開示において説明されるような、線形モデル(成分間線形モデル(CCLM)または多方向線形モデル(MDLM)など)を使用してイントラ予測を実行するステップと、
複数のシンタックス要素を含むビットストリームを生成するステップとを備え、複数のシンタックス要素は、ブロックに属するルマサンプルのためのフィルタの選択(CCLMのルマフィルタ、特に、sps_cclm_colocated_chroma_flagなどのSPSフラグの選択など)を示すシンタックス要素を含む。
第3の態様自体による方法の可能な実装形式では、シンタックス要素の値が1または真であるとき、フィルタは、線形モデルの決定および予測のためにルマサンプルに適用されず、
シンタックス要素の値が0または偽であるとき、フィルタは、線形モデルの決定および予測のためにルマサンプルに適用される。
本開示の第4の態様によれば、復号デバイスによって実施される復号の方法、これは、
複数のシンタックス要素をビットストリームから解析するステップであって、複数のシンタックス要素が、ブロックに属するルマサンプルのためのフィルタの選択(CCLMのルマフィルタ、特に、sps_cclm_colocated_chroma_flagなどのSPSフラグの選択など)を示すシンタックス要素を含む、ステップと、
本開示において説明されるように、示された線形モデル(CCLMなど)を使用してイントラ予測を実行するステップとを備える。
第4の態様自体による方法の可能な実装形式では、シンタックス要素の値が0または偽であるとき、フィルタは、線形モデルの決定および予測のためにルマサンプルに適用され、
シンタックス要素の値が1または真であるとき、フィルタは、線形モデルの決定および予測のためにルマサンプルに適用されない。
本開示の第5の態様によれば、線形モデルを使用したイントラ予測のための装置が提供され、この装置は、
- 現在のブロックが属するピクチャのクロマフォーマットに基づいて、ブロックに属するルマサンプルのためのフィルタを決定するために構成される、決定ユニットと、
- 現在のブロックに属するルマサンプルの位置において、再構築されたルマサンプルのエリアに決定されたフィルタを適用して、フィルタリングされた再構築されたルマサンプルを取得するために構成される、フィルタリングユニットと、
- フィルタリングされた再構築されたルマサンプルに基づいて、線形モデル導出の入力として使用されるルマサンプルのセットを取得するために構成される、取得ユニットと、
線形モデル導出の線形モデル係数およびフィルタリングされた再構築されたルマサンプルに基づいて、成分間予測を実行するために構成される、予測ユニットとを備える。
第5の態様の任意の前述の実装形態または第5の態様自体によるデバイスの可能な実装形式では、フィルタリングされた再構築されたサンプルの数は、現在のルマブロックのサイズ以上である。
第5の態様の任意の前述の実装形態または第5の態様自体によるデバイスの可能な実装形式では、CCLMは、ダウンサンプリングされた再構築されたサンプルのために実行される。
第5の態様の任意の前述の実装形態または第5の態様自体によるデバイスの可能な実装形式では、現在のクロマブロックの現在のブロックが上側の境界にあるとき、フィルタリングされた再構築されたサンプルを取得するために、再構築された隣接ルマサンプルの1つの行のみが使用される。
第5の態様の任意の前述の実装形態または第5の態様自体によるデバイスの可能な実装形式では、線形モデルは多方向線形モデル(MDLM)であり、MDLMを取得するために線形モデル係数が使用される。
第5の態様の任意の前述の実装形態または第5の態様自体によるデバイスの可能な実装形式では、CCLMまたはMDLMパラメータ導出がフィルタリングされた再構築されたサンプルのために実行されるは、現在のルマブロックの上側テンプレートのみに属し、または現在のルマブロックの左側テンプレートのみに属し、または、再構築されたサンプルは、現在のルマブロックの上側テンプレートおよび現在のルマブロックの左側テンプレートに属する。
第5の態様の任意の前述の実装形態または第5の態様自体によるデバイスの可能な実装形式では、現在のブロックに隣接する選択された位置におけるルマサンプルはサンプルであるは、現在のブロックの上側の隣接するサンプル行において、および/または現在のブロックの左側の隣接するサンプル列において、それらの間の間隔/距離/ピクセルの数により、等しく離隔されている。
第5の態様の任意の前述の実装形態または第5の態様自体によるデバイスの可能な実装形式では、現在のブロックに隣接する選択された位置は、以下により示される。
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]
第1から第3の態様のいずれか1つに従って方法を行うための処理回路を備える、デコーダ(30)の第6の態様。
第1から第3の態様のいずれか1つに従って方法を実行するためのプログラムコードを備える、コンピュータプログラム製品の第7の態様。
デコーダの第8の態様、これは、
1つまたは複数のプロセッサと、プロセッサに結合されプロセッサによる実行のためのプログラミングを記憶する、非一時的コンピュータ可読記憶媒体とを備え、プロセッサによって実行されると、プログラミングは、第1から第3の態様のいずれか1つに従って方法を行うようにデコーダを構成する。
エンコーダの第9の態様、これは、
1つまたは複数のプロセッサと、プロセッサに結合されプロセッサによる実行のためのプログラミングを記憶する、非一時的コンピュータ可読記憶媒体とを備え、プロセッサによって実行されると、プログラミングは、第1から第3の態様のいずれか1つに従って方法を行うようにエンコーダを構成する。
コンピュータデバイスによって実行されると、コンピュータデバイスに、第1から第3の態様のいずれか1つに従って方法を実行させるプログラムコードを搬送する、非一時的コンピュータ可読媒体の第10の態様。
第1から第3の態様のいずれか1つに従って方法を行うための処理回路を備える、エンコーダ(20)の第11の態様。
上記に基づいて、本明細書において開示される実施形態は以下の技術的な利点を有する。本明細書において開示される実施形態は、ルマサンプルからクロマサンプルを予測するとき、ピクチャのクロマフォーマットを考慮する。クロマフォーマットに基づいてフィルタセットを選択することによって、以前の設計の欠陥がなくなり、予測誤差の低減に、したがってより正確なクロマ予測につながる。より小さい予測誤差の技術的な結果は、残差信号エネルギーの低減である。コーディング方法は、再構築された信号の歪みを減らすために、残差信号を符号化するために必要とされるビットレートを下げるために、または、歪みを減らすこととビットレートを下げることの両方のために、この残差信号エネルギーの低減を利用し得る。本明細書において提示される実施形態によって達成されるこれらの技術的な効果は、コーディング方法の全体的な圧縮性能を改善する。
加えて、本明細書において開示されるフィルタは、以下の2つの特性を有する。
- 水平方向および垂直方向におけるタップの数は3を超えない。
- 係数の値は2のべき乗である。
第1の性質は、フィルタリングのためにアクセスされる領域が3サンプル(最小の可能な非位相シフトフィルタがサポートするサイズ)を超えないことを可能にする。第2の性質(2のべき乗の係数)は、フィルタが乗算なしで実装されることを可能にする。代わりに、フィルタは定数値による左シフトを使用して実装されてもよく、これはハードウェア設計において最小限の複雑さしか必要としない。
いずれの従来技術も、上記の性質を有する実用的なFIR(有限インパルス応答)フィルタを提案していない。当技術分野におけるFIRフィルタのいずれもが、本明細書において開示されるものと同じ平滑化の性質を提供することができず、また同じ簡単な実装形態を有することができない。
以下は、上述の実施形態において示されるような符号化方法ならびに復号方法、およびそれらを使用するシステムの適用の説明である。
図13は、コンテンツ配信サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。コンテンツ供給システム3100は、キャプチャデバイス3102と、端末デバイス3106と、任意選択でディスプレイ3126とを含む。キャプチャデバイス3102は、通信リンク3104を介して端末デバイス3106と通信する。通信リンクは、上で説明された通信チャネル13を含み得る。通信リンク3104は、限定はされないが、WIFI、イーサネット、ケーブル、ワイヤレス(3G/4G/5G)、USB、またはこれらの任意の種類の組合せなどを含む。
キャプチャデバイス3102は、データを生成し、上の実施形態において示されるような符号化方法によってデータを符号化し得る。代替的に、キャプチャデバイス3102が、データをストリーミングサーバ(図には示されない)に配信してもよく、サーバは、データを符号化し、符号化されたデータを端末デバイス3106に送信する。キャプチャデバイス3102は、限定はされないが、カメラ、スマートフォンもしくはパッド、コンピュータもしくはラップトップ、ビデオ会議システム、PDA、車載デバイス、またはこれらの任意の組合せなどを含む。たとえば、キャプチャデバイス3102は、上で説明されたようなソースデバイス12を含み得る。データがビデオを含むとき、キャプチャデバイス3102に含まれるビデオエンコーダ20は、ビデオ符号化処理を実際に実行し得る。データがオーディオ(すなわち、声)を含むとき、キャプチャデバイス3102に含まれるオーディオエンコーダは、オーディオ符号化処理を実際に実行し得る。いくつかの実用的なシナリオでは、キャプチャデバイス3102は、符号化されたビデオデータおよびオーディオデータを、それらを一緒に多重化することによって配信する。他の実用的なシナリオでは、たとえばビデオ会議システムでは、符号化されたオーディオデータおよび符号化されたビデオデータは多重化されない。キャプチャデバイス3102は、符号化されたオーディオデータおよび符号化されたビデオデータを別々に端末デバイス3106へ配信する。
コンテンツ供給システム3100において、端末デバイス310は、符号化されたデータを受信して再現する。端末デバイス3106は、上述の符号化されたデータを復号することが可能な、スマートフォンもしくはパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、セットトップボックス(STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、携帯情報端末(PDA)3122、車載デバイス3124、またはこれらの任意の組合せなどの、データ受信および復元能力をもつデバイスであり得る。たとえば、端末デバイス3106は、上で説明されたようなデスティネーションデバイス14を含み得る。符号化されたデータがビデオを含むとき、端末デバイスに含まれるビデオデコーダ30が、優先的にビデオ復号を実行する。符号化されたデータがオーディオを含むとき、端末デバイスに含まれるオーディオデコーダが、優先的にオーディオ復号処理を実行する。
ディスプレイのある端末デバイス、たとえばスマートフォンもしくはパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、携帯情報端末(PDA)3122、または車載デバイス3124では、端末デバイスは復号されたデータをディスプレイにフィードすることができる。ディスプレイを備えない端末デバイス、たとえば、STB3116、ビデオ会議システム3118、またはビデオ会議システム3120では、復号されたデータを受信して示すために、端末デバイスに外部ディスプレイ3126が接続される。
このシステムの各デバイスが符号化または復号を実行するとき、上述の実施形態において示されるような、ピクチャ符号化デバイスまたはピクチャ復号デバイスが使用され得る。
図14は、端末デバイス3106の例の構造を示す図である。端末デバイス3106がキャプチャデバイス3102からストリームを受信した後、プロトコル進行ユニット3202は、ストリームの送信プロトコルを分析する。プロトコルは、限定はされないが、リアルタイムストリーミングプロトコル(RTSP)、ハイパーテキストトランスファープロトコル(HTTP)、HTTPライブストリーミングプロトコル(HLS)、MPEG-DASH、リアルタイムトランスポートプロトコル(RTP)、リアルタイムメッセージングプロトコル(RTMP)、またはこれらの任意の種類の組合せなどを含む。
プロトコル処理ユニット3202がストリームを処理した後で、ストリームファイルが生成される。ファイルは逆多重化ユニット3204に出力される。逆多重化ユニット3204は、多重化されたデータを符号化されたオーディオデータおよび符号化されたビデオデータへと分けることができる。上で説明されたように、いくつかの実用的なシナリオでは、たとえばビデオ会議システムでは、符号化されたオーディオデータおよび符号化されたビデオデータは多重化されない。この状況において、符号化されたデータは、逆多重化ユニット3204を通らずにビデオデコーダ3206およびオーディオデコーダ3208に送信される。
逆多重化処理を介して、ビデオ要素ストリーム(ES)、オーディオES、および任意選択で字幕が生成される。上述の実施形態において説明されるようなビデオデコーダ30を含むビデオデコーダ3206は、上述の実施形態において示されるような復号方法によってビデオESを復号してビデオフレームを生成し、このデータを同期ユニット3212へとフィードする。オーディオデコーダ3208は、オーディオESを復号してオーディオフレームを生成し、このデータを同期ユニット3212へとフィードする。代替的に、ビデオフレームは、それを同期ユニット3212にフィードする前にバッファ(図Yに示されない)において記憶し得る。同様に、オーディオフレームは、それを同期ユニット3212にフィードする前にバッファ(図Yに示されない)において記憶し得る。
同期ユニット3212は、ビデオフレームおよびオーディオフレームを同期し、ビデオ/オーディオをビデオ/オーディオディスプレイ3214に供給する。たとえば、同期ユニット3212は、ビデオ情報およびオーディオ情報の提示を同期する。情報は、コーディングされたオーディオおよびビジュアルデータの提示に関するタイムスタンプと、データストリーム自体の配信に関するタイムスタンプとを使用して、シンタックスにおいてコーディングし得る。
字幕がストリームに含まれる場合、字幕デコーダ3210は、字幕を復号し、それをビデオフレームおよびオーディオフレームと同期し、ビデオ/オーディオ/字幕をビデオ/オーディオ/字幕ディスプレイ3216に供給する。
本発明は上述のシステムに限定されず、上述の実施形態におけるピクチャ符号化デバイスまたはピクチャ復号デバイスのいずれかが、他のシステム、たとえば車両システムに組み込まれ得る。
数学演算子
本出願において使用される数学演算子は、Cプログラミング言語において使用されるものと類似している。しかしながら、整数除算および算術シフト演算の結果はより正確に定義され、指数および実数値除算などの追加の演算が定義される。一般に、番号付けおよびカウントの表記法は0から開始し、たとえば、「第1の」は0番目と等価であり、「第2の」は1番目と等価である、などである。
算術演算子
以下の算術演算子は次のように定義される。
+ 加算
- 減算(2引数の演算子)または否定(単項前置演算子)
* 行列乗算を含む乗算
xy 指数。xのy乗を指定する。他の文脈では、指数として解釈されるものとして意図されない上付き文字のために、そのような表記が使用される。
/ 0への結果の切り捨てを伴う整数除算。たとえば、7/4および-7/-4は1へと切り捨てられ、-7/4および7/-4は-1へと切り捨てられる。
÷ 切り捨てまたは丸めが意図されない数学的な式における除算を表記するために使用される。
Figure 2022521757000034
切り捨てまたは丸めが意図されない数学的な式における除算を表記するために使用される。
Figure 2022521757000035
iがxからyを含めてyまでのすべての整数値をとる、f(i)の加算。
x%y 剰余。x≧0およびy>0である整数xおよびyだけに対して定義される、xをyで割った余り。
論理演算子
以下の論理演算子は次のように定義される。
x&&y xおよびyのブーリアン論理「積」
x||y xおよびyのブーリアン論理「和」
! ブーリアン論理「否定」
x?y:z xがTRUEである、または0に等しくない場合、yの値になり、それ以外の場合、zの値になる。
関係演算子
以下の関係演算子は次のように定義される。
> より大きい
≧ 以上
< より小さい
≦ 以下
== に等しい
!= に等しくない
関係演算子が、値「na」(適用不可能)を割り当てられたシンタックス要素または変数に適用されるとき、値「na」は、そのシンタックス要素または変数について別個の値として扱われる。値「na」は、任意の他の値に等しくないと考えられる。
ビットごとの演算子
以下のビットごとの演算子は次のように定義される。
& ビットごとの「積」。整数の引数について演算するとき、整数値の2の補数表現について演算する。別の引数より少ないビットを含む二進の引数について演算するとき、0に等しいさらなる上位ビットを追加することによって、より短い引数が延長される。
| ビットごとの「和」。整数の引数について演算するとき、整数値の2の補数表現について演算する。別の引数より少ないビットを含む二進の引数について演算するとき、0に等しいさらなる上位ビットを追加することによって、より短い引数が延長される。
^ ビットごとの「排他的論理和」整数の引数について演算するとき、整数値の2の補数表現について演算する。別の引数より少ないビットを含む二進の引数について演算するとき、0に等しいさらなる上位ビットを追加することによって、より短い引数が延長される。
x>>y xの2の補数整数表現の、二進y桁の算術右シフト。この関数は、yの非負の整数値のみに対して定義される。右シフトの結果として最上位ビット(MSB)へとシフトされるビットは、シフト演算の前のxのMSBに等しい値を有する。
x<<y xの2の補数整数表現の、二進y桁の算術左シフト。この関数は、yの非負の整数値のみに対して定義される。左シフトの結果として最下位ビット(LSB)へとシフトされるビットは、0に等しい値を有する。
割当て演算子
以下の算術演算子は次のように定義される。
= 割当て演算子
++ インクリメント、すなわち、x++はx=x+1と等価であり、アレイインデックスにおいて使用されるとき、インクリメント演算の前の変数の値になる。
-- デクリメント、すなわち、x--はx=x-1と等価であり、アレイインデックスにおいて使用されるとき、デクリメント演算の前の変数の値になる。
+= 指定された量だけインクリメント、すなわち、x+=3はx=x+3と等価であり、
x+=(-3)はx=x+(-3)と等価である。
-= 指定された量だけインクリメント、すなわち、x-=3はx=x-3と等価であり、
x-=(-3)はx=x-(-3)と等価である。
範囲表記
値の範囲を指定するために、以下の表記が使用される。
x=y..z xは両端を含めてyからzまでの整数値をとり、x、y、およびzは整数であり、zはyより大きい。
数学的な関数
以下の数学的な関数が定義される。
Figure 2022521757000036
Asin(x) 逆三角サイン関数、両端を含めて-1.0から1.0の範囲にある引数xについて演算し、出力値はラジアンの単位で両端を含めて-π÷2からπ÷2の範囲にある。
Atan(x) 逆三角タンジェント関数、引数xについて演算し、出力値はラジアンの単位で両端を含めて-π÷2からπ÷2の範囲にある。
Figure 2022521757000037
Ceil(x) x以上の最小の整数。
Clip1Y(x)=Clip3(0,(1<<BitDepthY)-1,x)
Clip1C(x)=Clip3(0,(1<<BitDepthC)-1,x)
Figure 2022521757000038
Cos(x) ラジアンの単位の引数xについて演算する三角コサイン関数。
Floor(x) x以下の最大の整数。
Figure 2022521757000039
Ln(x) xの自然対数(eを底とする対数、eは自然対数の底2.718281828...である)。
Log2(x) xの2を底とする対数。
Log10(x) xの10を底とする対数。
Figure 2022521757000040
Round(x)=Sign(x)*Floor(Abs(x)+0.5)
Figure 2022521757000041
Sin(x) ラジアンの単位の引数xについて演算する三角サイン関数。
Figure 2022521757000042
Swap(x,y)=(y,x)
Tan(x) ラジアンの単位の引数xについて演算する三角タンジェント関数。
演算の優先順序
ある式における優先順序が括弧の使用により明示的に示されないとき、以下の規則が適用される。
- より優先度の高い演算がより優先度の低いいずれの演算よりも前に評価される。
- 同じ優先度の演算は左から右に順番に評価される。
以下の表は、演算子の優先順位を最も高いものから最も低いものまで指定し、表の中のより高い位置がより高い優先順位を示す。
Cプログラミング言語においても使用される演算子については、本明細書において使用される優先順序はCプログラミング言語において使用されるものと同じである。
Figure 2022521757000043
論理演算子のテキストによる説明
テキストにおいて、以下の形式で数学的に記述されるような論理演算子の陳述
if(条件0)
陳述0
else if(条件1)
陳述1
...
else/*残りの条件についての有益な所見*/
陳述n
は、以下の方式で記述され得る。
次のように.../...次のことが当てはまる:
- 条件0の場合、陳述0
- そうではなく、条件1の場合、陳述1
- ...
- それ以外の場合(残りの条件についての有益な所見)、陳述n
テキストにおける各々の「...である場合、....そうではなく、...である場合、...、それ以外の場合、...」という陳述は、「...である場合、...」の直前の「次のように...」または「...次のことが当てはまる」とともに導入される。「...である場合、....そうではなく、...である場合、...、それ以外の場合、...」の最後の条件は常に、「それ以外の場合、...」である。割り込みのある「...である場合、....そうではなく、...である場合、...、それ以外の場合、...」の陳述は、「次のように...」または「...次のことが当てはまる」を最後の「それ以外の場合、...」と照合することによって特定され得る。
テキストにおいて、以下の形式で数学的に記述されるような論理演算子の陳述
if(条件0a&&条件0b )
陳述0
else if(条件1a||条件1b )
陳述1
...
else
陳述n
は、以下の方式で記述され得る。
- 次のように.../...次のことが当てはまる:
- 以下の条件のすべてが真である場合、陳述0:
- 条件0a
- 条件0b
- そうではなく、以下の条件のうちの1つまたは複数が真である場合、陳述1:
- 条件1a
- 条件1b
- ...
- それ以外の場合、陳述n
テキストにおいて、以下の形式で数学的に記述されるような論理演算子の陳述
if(条件0)
陳述0
if(条件1)
陳述1
は、以下の方式で記述され得る。
条件0のとき、陳述0
条件1のとき、陳述1
本明細書において開示される実施形態は主に、ビデオコーディングに基づいて説明されたが、コーディングシステム10、エンコーダ20、およびデコーダ30(およびそれに対応してシステム10)の実施形態、ならびに本明細書において説明される他の実施形態は、静止ピクチャの処理またはコーディング、すなわち、ビデオコーディングにおけるような、任意の前述のまたは連続するピクチャとは無関係な個々のピクチャの処理またはコーディングのためにも構成され得る。一般に、インター予測ユニット244(エンコーダ)および344(デコーダ)だけが、ピクチャ処理コーディングが単一のピクチャ17に限定される場合には利用可能ではないことがある。ビデオエンコーダ20およびビデオデコーダ30のすべての他の機能(ツールまたは技術とも呼ばれる)が、静止ピクチャ処理、たとえば、残差計算204/304、変換206、量子化208、逆量子化210/310、(逆)変換212/312、区分262/362、イントラ予測254/354、ならびに/またはループフィルタリング220、320、およびエントロピーコーディング270とエントロピー復号304のために等しく使用され得る。
たとえばエンコーダ20およびデコーダ30の実施形態、ならびに、たとえばエンコーダ20およびデコーダ30を参照して本明細書において説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せにおいて実装され得る。ソフトウェアにおいて実装される場合、機能は、コンピュータ可読媒体に記憶され、または、1つまたは複数の命令またはコードとして通信媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。
コンピュータ可読媒体はコンピュータ可読記憶媒体を含んでもよく、これは、データ記憶媒体などの有形媒体、または、たとえば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの移送を容易にする任意の媒体を含む通信媒体に対応する。このようにして、コンピュータ可読媒体は一般に、(1)非一時的である有形コンピュータ可読記憶媒体または(2)信号波もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示において説明される技法の実装のための命令、コード、および/またはデータ構造を取り出すために、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形式で必要とされるプログラムコードを記憶するために使用され、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、任意の接続が適切にコンピュータ可読媒体と呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または、赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または、赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに、非一時的な有形の記憶媒体を対象とすることを理解されたい。本明細書では、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光学ディスク、デジタル多用途ディスク(DVD)、フロッピーディスク、およびBlu-ray(登録商標)ディスクを含み、ディスク(disk)は通常データを磁気的に再生し、ディスク(disc)はデータをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲に含まれるべきである。
命令は、1つまたは複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路もしくはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書において使用される「プロセッサ」という用語は、前述の構造のいずれか、または本明細書において説明される技法の実装に適した任意の他の構造を指し得る。加えて、いくつかの態様では、本明細書において説明される機能は、符号化および復号のために構成される、または合成コーデックに組み込まれる、専用のハードウェアモジュールおよび/またはソフトウェアモジュール内で提供され得る。また、技法は、1つまたは複数の回路または論理素子において完全に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。開示される技法を実行するように構成されるデバイスの機能的な態様を強調するために、様々なコンポーネント、モジュール、またはユニットが本開示において説明されるが、異なるハードウェアユニットによる実現を必ずしも必要とはしない。むしろ、上で説明されたように、様々なユニットは、適切なソフトウェアおよび/またはファームウェアとともに、コーデックハードウェアユニットにおいて組み合わせられ得、または上で説明されたような1つまたは複数のプロセッサを含む、相互運用可能なハードウェアユニットの集合体により提供され得る。
10 ビデオコーディングシステム
12 ソースデバイス
13 通信チャネル
14 デスティネーションデバイス
16 ピクチャソース
17 ピクチャデータ
18 プリプロセッサ
19 前処理されたピクチャデータ
20 エンコーダ
21 符号化されたピクチャデータ
22 通信インターフェース
28 通信インターフェース
30 ビデオデコーダ
31 復号されたピクチャデータ
32 ポストプロセッサ
33 後処理されたピクチャデータ
34 ディスプレイデバイス
40 コーデックシステム
41 イメージングデバイス
42 アンテナ
43 プロセッサ
44 メモリストア
45 ディスプレイデバイス
46 処理回路
201 入力
203 ピクチャブロック
204 残差計算ユニット
205 残差ブロック
206 変換処理ユニット
207 変換係数
208 量子化ユニット
209 量子化された係数
210 逆量子化ユニット
211 量子化解除された係数
212 逆変換処理ユニット
213 再構築された残差ブロック
214 再構築ユニット
215 再構築されたブロック
220 ループフィルタ
221 フィルタリングされたブロック
230 復号ピクチャバッファ
231 復号されたピクチャ
244 インター予測ユニット
254 イントラ予測ユニット
260 モード選択ユニット
262 区分ユニット
265 予測ブロック
266 シンタックス要素
270 エントロピー符号化ユニット
272 出力
304 エントロピー復号ユニット
309 量子化された係数
310 逆量子化ユニット
311 逆量子化された係数
312 逆変換処理ユニット
313 再構築された残差ブロック
314 再構築ユニット
315 再構築されたブロック
320 ループフィルタ
321 フィルタリングされたブロック
330 復号ピクチャバッファ
331 復号されたピクチャ
332 出力
344 インター予測ユニット
354 イントラ予測ユニット
360 モード適用ユニット
365 予測ブロック
366 シンタックス要素
400 ビデオコーディングデバイス
410 入口ポート
420 受信機ユニット
430 プロセッサ
440 送信機ユニット
450 出口ポート
460 メモリ
470 コーディングモジュール
500 装置
502 プロセッサ
504 メモリ
506 データ
508 オペレーティングシステム
510 アプリケーションプログラム
512 バス
518 ディスプレイ
700 CCLMイントラ予測
701 クロマブロック
703 クロマサンプル
705 隣接クロマ参照サンプル
706 左側テンプレート
707 上側テンプレート
711 ルマブロック
713 再構築されたルマサンプル
715 隣接ルマ参照サンプル
716 左側テンプレート
717 上側テンプレート
719 ダウンサンプリングされたルマ参照サンプル
901 サンプル
902 サンプル
903 サンプル
1200 デバイス
1201 決定ユニット
1203 フィルタリングユニット
1205 線形モデル導出ユニット
1207 予測ユニット
1500 機構
1511 ルマブロック
1512 ダウンサンプリングされたルマブロック
3100 コンテンツ供給システム
3102 キャプチャデバイス
3104 通信リンク
3106 端末デバイス
3108 スマートフォン/パッド
3110 コンピュータ/ラップトップ
3112 NVR/DVR
3114 TV
3116 セットトップボックス
3118 ビデオ会議システム
3120 ビデオ監視システム
3122 PDA
3124 車載デバイス
3126 ディスプレイ
3202 プロトコル進行ユニット
3204 逆多重化ユニット
3206 ビデオデコーダ
3208 オーディオデコーダ
3210 字幕デコーダ
3212 同期ユニット
3214 ビデオ/オーディオディスプレイ
3216 ビデオ/オーディオ/字幕ディスプレイ
本開示の実施形態は全般に、ピクチャ処理の分野に関し、より具体的には成分間線形モデリング(CCLM: cross component linear modeling)を使用するイントラ予測(クロマイントラ予測など)に関し、より具体的には異なるクロマフォーマットを用いたイントラ予測のための成分間線形モデルにおいて使用される空間フィルタリングに関する。
によって表され、0ではない係数が、フィルタリングされた再構築されたルマサンプルの位置に水平に隣接する位置にあ、係数「2」を伴う中央の位置が、フィルタリングされた再構築されたルマサンプルの位置に対応する。
したがって、クロマフォーマット情報に基づくフィルタセットの選択によって、より正確なクロマ予測信号および予測誤差低減を可能にする、改善されたデバイスが提供される。より小さい予測誤差の技術的な結果は、残差信号エネルギーの低減である。このコーディング方法は、再構築された信号の歪みを減らすために、残差信号を符号化するために必要とされるビットレートを下げるために、または、歪みを減らすこととビットレートを下げることの両方のために、この低減を利用し得る。本発明によって達成されるこれらの技術的な効果は、本発明を使用するコーディング方法の全体的な圧縮性能を改善する。
第4の態様自体による装置の可能な実装形式では、決定ユニットは、
クロマフォーマット情報に基づいて水平方向および垂直方向におけるサブサンプリング比情報を決定し、
サブサンプリング比情報に基づいてダウンサンプリングフィルタのセットを決定するように構成される。
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、
4:2:0クロマフォーマットであるクロマフォーマットに対して、ダウンサンプリングフィルタの第1のセットが現在のブロックのルマブロックのために使用され、
4:2:2クロマフォーマットであるクロマフォーマットに対して、ダウンサンプリングフィルタの第2のセットが現在のブロックのルマブロックのために使用され、または、
4:4:4クロマフォーマットであるクロマフォーマットに対して、ダウンサンプリングフィルタの第3のセットが現在のブロックのルマブロックのために使用される。
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、決定ユニットは、
変数SubWidthC=2およびSubHeightC=2であるとき、現在のブロックのルマブロックのためのダウンサンプリングフィルタの第1のセット(ダウンサンプリングフィルタ係数のセット)を決定すること、
SubWidthC=2およびSubHeightC=1であるとき、現在のブロックのルマブロックのためのダウンサンプリングフィルタの第2のセット(ダウンサンプリングフィルタ係数のセット)を決定すること、または、
SubWidthC=1およびSubHeightC=1であるとき、現在のブロックのルマブロックのためのダウンサンプリングフィルタの第3のセット(ダウンサンプリングフィルタ係数のセット)を決定することのために構成される。
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、サブサンプリングされたクロマサンプルが現在のブロック内の対応するルマサンプルと同一位置にあるとき、
フィルタリングユニットは、第1のダウンサンプリングフィルタを再構築されたルマサンプルの第1のセットに適用することによって、ルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルを取得し、再構築されたルマサンプルの第1のセットが、再構築されたルマサンプルの位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備え、
第1のダウンサンプリングフィルタを再構築されたルマサンプルの第2のセットに適用することによって、少なくとも1つの選択された参照ルマサンプルのダウンサンプリングされたルマ参照サンプルを取得し、再構築されたルマサンプルの第2のセットが、選択された参照ルマサンプルの位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備える、ように構成され、
第1のダウンサンプリングフィルタが、ダウンサンプリングフィルタのセットから選択される。
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、4:2:2クロマフォーマットが使用されるとき(SubWidthC=2およびSubHeightC=1)、第1のダウンサンプリングフィルタは1Dの分離不可能フィルタであり、または、
4:2:0クロマフォーマットが使用されるとき(SubWidthC=2およびSubHeightC=2)、第1のダウンサンプリングフィルタは2Dの分離不可能フィルタである。
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、4:2:2クロマフォーマットが使用されるとき(SubWidthC=2およびSubHeightC=1)、第1のダウンサンプリングフィルタ(規格に記載される1Dの分離不可能フィルタF2)は、[1,2,1]または
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、4:2:0クロマフォーマットが使用される場合(SubWidthC=2およびSubHeightC=2)、第1のダウンサンプリングフィルタ(VVC規格に記載される2Dの分離不可能フィルタF3)は、
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、サブサンプリングされたクロマサンプルが現在のブロック内の対応するルマサンプルと同一位置にないとき、
フィルタリングユニットは、第2のダウンサンプリングフィルタを再構築されたルマサンプルの第3のセットに適用することによって、ルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルを取得し、再構築されたルマサンプルの第3のセットが、再構築されたルマサンプルの位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備え、
第2のダウンサンプリングフィルタを再構築されたルマサンプルの第4のセットに適用することによって、少なくとも1つの選択された参照ルマサンプルのダウンサンプリングされたルマ参照サンプルを取得し、再構築されたルマサンプルの第4のセットが、選択された参照ルマサンプルの位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備える、ように構成され、
第2のダウンサンプリングフィルタが、ダウンサンプリングフィルタのセットから選択される。
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、4:2:2クロマフォーマットが使用される場合(SubWidthC=2およびSubHeightC=1)、第2のダウンサンプリングフィルタは1Dの分離不可能フィルタであり、または、
4:2:0クロマフォーマットが使用される場合(SubWidthC=2およびSubHeightC=2)、第2のダウンサンプリングフィルタは2Dの分離不可能フィルタである。
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、4:2:2クロマフォーマットが使用される場合(SubWidthC=2およびSubHeightC=1)、第2のダウンサンプリングフィルタ(規格に記載される1Dの分離不可能フィルタF1、F2)は、[2,0]または[1,2,1]または
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、4:2:0クロマフォーマットが使用される場合(SubWidthC=2およびSubHeightC=2)、第2のダウンサンプリングフィルタ(VVC規格に記載される2Dの分離不可能フィルタF4)は、
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、サブサンプリングされたクロマサンプルが現在のブロック内の対応するルマサンプルと同一位置にあることは、サブサンプリングされたクロマサンプルのクロマサンプルタイプが、
- クロマサンプルタイプ2、または
- クロマサンプルタイプ4
のいずれか1つを備えるときに発生する。
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、サブサンプリングされたクロマサンプルが現在のブロック内の対応するルマサンプルと同一位置にないことは、サブサンプリングされたクロマサンプルのクロマサンプルタイプが、
- クロマサンプルタイプ0、
- クロマサンプルタイプ1、
- クロマサンプルタイプ3、または
- クロマサンプルタイプ5
のいずれか1つを備えるときに発生する。
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、決定ユニットは、ダウンサンプリングフィルタのセットを決定するように構成され、
クロマフォーマットが4:4:4クロマフォーマットである場合、バイパスフィルタが使用され、それ以外の場合、フィルタのセット{F2,F3,F5,F6}が次のように決定される。
F3[0]=1、F3[1]=2、F3[2]=1
F5[i][j]=F6[i][j]=0、ただしi=0..2、j=0..2
クロマフォーマットが4:2:0クロマフォーマットである場合、
F5[0][1]=1、F5[1][1]=4、F5[2][1]=1、F5[1][0]=1、F5[1][2]=1
F6[0][1]=1、F6[1][1]=2、F6[2][1]=1
F6[0][2]=1、F6[1][2]=2、F6[2][2]=1
F2[0]=1、F2[1]=1
クロマフォーマットが4:2:2クロマフォーマットである場合、
F5[0][1]=0、F5[1][1]=8、F5[2][1]=0、F5[1][0]=0、F5[1][2]=0
F6[0][1]=2、F6[1][1]=4、F6[2][1]=2
F6[0][2]=0、F6[1][2]=0、F6[2][2]=0
F2[0]=2、F2[1]=0
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、決定ユニットは、フィルタのセット{F2,F3,F5,F6}を次のように決定するように構成される。
F3[0]=1、F3[1]=2、F3[2]=1
F5[i][j]=F6[i][j]=0、ただしi=0..2、j=0..2
SubWidthC==2およびSubHeightC==2を含む少なくとも第2の条件が満たされる場合、
F5[0][1]=1、F5[1][1]=4、F5[2][1]=1、F5[1][0]=1、F5[1][2]=1
F6[0][1]=1、F6[1][1]=2、F6[2][1]=1
F6[0][2]=1、F6[1][2]=2、F6[2][2]=1
F2[0]=1、F2[1]=1
それ以外の場合、
F5[0][1]=0、F5[1][1]=8、F5[2][1]=0、F5[1][0]=0、F5[1][2]=0
F6[0][1]=2、F6[1][1]=4、F6[2][1]=2
F6[0][2]=0、F6[1][2]=0、F6[2][2]=0
F2[0]=2、F2[1]=0
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、選択されるルマ参照サンプルは、
ルマブロックの上にあり、L個の利用可能なクロマ参照サンプルに基づいて選択される、隣接ルマサンプル、または
ルマブロックの左にあり、L個の利用可能なクロマ参照サンプルに基づいて選択される、隣接ルマサンプルのうちの少なくとも1つを備える。
第4の態様の任意の前述の実装形態または第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]であるとして指定され、
クロマブロックの次元はW×Hであり、W'およびH'は、
LMモードが適用されるとき、W'=W、H'=Hであり、
LM-Aモードが適用されるとき、W'=W+Hであり、
LM-Lモードが適用されるとき、H'=H+Wであるとして設定される。
第4の態様の任意の前述の実装形態または第4の態様自体による装置の可能な実装形式では、線形モデル導出ユニットは、ダウンサンプリングされたルマ参照サンプルに基づいて最大ルマ値および最小ルマ値を決定し、
最大ルマ値と関連付けられる1つまたは複数のダウンサンプリングされたルマ参照サンプルの1つまたは複数の位置に少なくとも一部基づいて第1のクロマ値を取得し、
最小ルマ値と関連付けられる1つまたは複数のダウンサンプリングされたルマ参照サンプルの1つまたは複数の位置に少なくとも一部基づいて第2のクロマ値を取得し、
第1のクロマ値、第2のクロマ値、最大ルマ値、および最小ルマ値に基づいて、1つまたは複数の線形モデル係数を計算するように構成される。
本開示の第1の態様による方法は、本開示の第4の態様に従って装置によって実行され得る。本開示の第1の態様による方法のさらなる特徴および実装形式は、本開示の第4の態様による装置の特徴および実装形式に対応する。
別の態様によれば、実行されると、ビデオデータをコーディングするように構成される1つまたは複数のプロセッサを生じさせる命令を記憶した、コンピュータ可読記憶媒体が提案される。命令は、1つまたは複数のプロセッサに、第1もしくは第2もしくは第3の態様に従って、または、第1もしくは第2もしくは第3の態様の任意の可能な実施形態に従って、方法を実行させる。
図1Aに示されるように、コーディングシステム10は、符号化されたピクチャデータ21を、たとえば符号化されたピクチャデータ21を復号するためのデスティネーションデバイス14に提供するように構成される、ソースデバイス12を備える。
通信インターフェース22および通信インターフェース28は、ソースデバイス12とデスティネーションデバイス14との間の直接の通信リンク、たとえば直接の有線もしくはワイヤレス接続、または、任意の種類のネットワーク、たとえば有線ネットワークもしくはワイヤレスネットワークもしくはその任意の組合せ、または、任意の種類のプライベートネットワークおよびパブリックネットワーク、または、それらの任意の種類の組合せを介して、符号化されたピクチャデータ21または符号化されたデータ21を送信または受信するように構成され得る。
(デジタル)ピクチャは、強度値を伴うサンプルの2次元アレイまたは行列であり、またはそれらとして見なされ得る。アレイの中のサンプルは、ピクセル(ピクチャ要素の短縮形)またはペルとも呼ばれ得る。アレイまたはピクチャの水平方向と垂直方向(または軸)におけるサンプルの数は、ピクチャのサイズおよび/または分解能を定義する。色の表現のために、通常は3つの色の成分が利用され、すなわち、ピクチャは、3つのサンプルアレイで表され、またはそれらを含み得る。RGBフォーマットまたは色空間において、ピクチャは、対応する赤、緑、および青のサンプルアレイを備える。しかしながら、ビデオコーディングにおいて、各ピクセルは通常、輝度および色度フォーマットまたは色空間、たとえばYCbCrで表現され、これは、Yにより示される輝度成分(Lが代わりに使用されることもある)およびCbとCrにより示される2つの色度成分を備える。輝度(またはショートルマ)成分Yは、明るさまたはグレーレベルの強度(たとえば、グレースケールピクチャのような)を表し、2つの色度(またはショートクロマ)成分CbおよびCrは、色度情報または色情報成分を表す。したがって、YCbCrフォーマットのピクチャは、輝度サンプル値(Y)の輝度サンプルアレイと、色度値(CbおよびCr)の2つの色度サンプルアレイとを備える。RGBフォーマットのピクチャを、YCbCrフォーマットへと転換または変換することができ、その逆も可能であり、この処理は色変換または色転換としても知られている。ピクチャがモノクロームである場合、ピクチャは輝度サンプルアレイのみを備え得る。したがって、ピクチャは、たとえば、モノクロームフォーマットにおけるルマサンプルのアレイ、または、4:2:0、4:2:2、および4:4:4カラーフォーマットにおけるルマサンプルのアレイおよびクロマサンプルの2つの対応するアレイであり得る。
量子化プロセスは、変換係数207の一部またはすべてと関連付けられるビット深度を減らし得る。たとえば、nビットの変換係数は、量子化の間にmビットの変換係数へと丸められてもよく、nはmより大きい。量子化の程度は、量子化パラメータ(QP)を調整することによって修正され得る。たとえば、スカラー量子化では、より細かいまたは粗い量子化を達成するために、異なるスケーリングが適用され得る。より小さい量子化ステップサイズはより細かい量子化に対応し、一方、より大きい量子化ステップサイズはより粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、たとえば、適用可能な量子化ステップサイズのあらかじめ定められたセットに対するインデックスであり得る。たとえば、小さい量子化パラメータは細かい量子化(小さい量子化ステップサイズ)に対応することがあり、大きい量子化パラメータは粗い量子化(大きい量子化ステップサイズ)に対応することがあり、またはこの逆であることがある。量子化は量子化ステップサイズによる除算を含むことがあり、たとえば逆量子化ユニット210による対応する量子化解除および/または逆量子化は、量子化ステップサイズによる乗算を含むことがある。いくつかの規格、たとえば、HEVCによる実施形態は、量子化パラメータを使用して量子化ステップサイズを決定するように構成され得る。一般に、量子化ステップサイズは、除算を含む式の固定点近似を使用して、量子化パラメータに基づいて計算され得る。残差ブロックのノルムを復元するための量子化および量子化解除のために、追加のスケーリング係数が導入されてもよく、これは、量子化ステップサイズおよび量子化パラメータのための式の固定点近似において使用されるスケーリングが原因で、修正されることがある。ある例示的な実装形態では、逆変換および量子化解除のスケーリングは組み合わせられ得る。代替的に、カスタマイズされた量子化テーブルが使用され、たとえばビットストリームにおいてエンコーダからデコーダにシグナリングされ得る。量子化は有損失演算であり、損失は量子化ステップサイズの増大とともに増大する。
インター予測
インター予測モード(または可能なインター予測モード)のセットは、利用可能な参照ピクチャ(すなわち、たとえばDPB230に記憶されている、以前の少なくとも部分的に復号されたピクチャ)および他のインター予測パラメータ、たとえば、最良の一致する参照ブロックを探すために参照ピクチャの全体が使用されるか、もしくはその一部のみ、たとえば現在のブロックのエリアの周囲の探索ウィンドウエリアのみが使用されるか、ならびに/または、たとえばピクセル補間が適用されるかどうか、たとえば2分の1/セミペル補間が適用されるか否か、および/もしくは4分の1ペル補間が適用されるか否かに依存する。
図3の例では、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構築ユニット314(たとえば、総和器314)、ループフィルタ320、復号ピクチャバッファ(DPB)330、モード適用ユニット360、インター予測ユニット344、およびイントラ予測ユニット354を備える。インター予測ユニット344は、動き補償ユニットであってもよく、またはそれを含んでもよい。ビデオデコーダ30は、いくつかの例では、図2からのビデオエンコーダ100に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。
予測
インター予測ユニット344は、インター予測ユニット244(具体的には動き補償ユニット)と同一であってもよく、イントラ予測ユニット354は、イントラ予測ユニット254と機能的に同一であってもよく、(たとえばエントロピー復号ユニット304による、たとえば解析および/または復号によって)符号化されたピクチャデータ21から受信された区分および/もしくは予測パラメータまたはそれぞれの情報に基づいて、分割または区分の決定と予測を実行する。モード適用ユニット360は、再構築されたピクチャ、ブロック、またはそれぞれのサンプル(フィルタリングされた、またはフィルタリングされていない)に基づいて、ブロックごとに予測(イントラまたはインター予測)を実行して、予測ブロック365を取得するように構成され得る。
図5は、例示的な実施形態による、図1Aからのソースデバイス12とデスティネーションデバイス14のいずれかまたは両方として使用され得る装置500の簡略化されたブロック図である。
このダウンサンプリングは、ルマサンプルの位置に対する相対的なクロマサンプルの位置について「タイプ0」の位相関係が定義されること、すなわち、水平方向には同一位置サンプリングを想定し、垂直方向には介在性サンプリングを想定することに留意されたい。式(0)に示される上記の6タップダウンサンプリングフィルタは、単一モデルCCLMモードと複数モデルCCLMモードの両方に対するデフォルトフィルタとして使用される。この6タップダウンサンプリングフィルタによって使用されるサンプルの空間位置が図9に示されている。この図において、異なる線パターンを使用してマークされている、サンプル901、サンプル902、およびサンプル903がある。フィルタリングの間、サンプル901、902、および903は、それぞれ2、1、および0という重みを有する。
x=0..nTbW-1、y=0..nTbH-1である予測サンプルpredSamples[x][y]は次のように導出される。
- numSampLとnumSampTの両方が0に等しい場合、次のことが当てはまる。
predSamples[x][y]=1<<(BitDepthC-1) (8-161)
- それ以外の場合、次の順序付けられたステップが適用される。
1. x=0..nTbW*2-1、y=0..nTbH*2-1である同一位置のルマサンプルpY[x][y]が、位置(xTbY+x, yTbY+y)におけるデブロッキングフィルタ処理の前に、再構築されたルマサンプルに等しく設定される。
2. 隣接ルマサンプルpY[x][y]が次のように導出される。
- numSampLが0より大きいとき、x=-1.. -3、y=0..2*numSampL-1である隣接左側ルマサンプルpY[x][y]が、位置(xTbY+x, yTbY+y)におけるデブロッキングフィルタ処理の前に、再構築されたルマサンプルに等しく設定される。
- numSampTが0より大きいとき、x=0..2*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]は、次のように導出される。
- sps_cclm_colocated_chroma_flagが1に等しい場合、次のことが当てはまる。
- x=1..nTbW-1、y=1..nTbH-1であるpDsY[x][y]は次のように導出される。
pDsY[x][y]=(pY[2*x][2*y-1]+pY[2*x-1][2*y]+4*pY[2*x][2*y]+pY[2*x+1][2*y]+pY[2*x][2*y+1]+4)>>3 (8-162)
- availLがTRUEに等しい場合、y=1..nTbH-1であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=(pY[0][2*y-1]+pY[-1][2*y]+4*pY[0][2*y]+pY[1][2*y]+pY[0][2*y+1]+4)>>3 (8-163)
- それ以外の場合、y=1..nTbH-1であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=(pY[0][2*y-1]+2*pY[0][2*y]+pY[0][2*y+1]+2)>>2 (8-164)
- availTがTRUEに等しい場合、x=1..nTbW-1であるpDsY[x][0]は次のように導出される。
pDsY[x][0]=(pY[2*x][ -1]+pY[2*x-1][0]+4*pY[2*x][0]+pY[2*x+1][0]+pY[2*x][1]+4)>>3 (8-165)
- それ以外の場合、x=1..nTbW-1であるpDsY[x][0]は次のように導出される。
pDsY[x][0]=(pY[2*x-1][0]+2*pY[2*x][0]+pY[2*x+1][0]+2)>>2 (8-166)
- availLがTRUEに等しく、availTがTRUEに等しい場合、pDsY[0][0]は次のように導出される。
pDsY[0][0]=(pY[0][ -1]+pY[-1][0]+4*pY[0][0]+pY[1][0]+pY[0][1]+4)>>3 (8-167)
- そうではなく、availLがTRUEに等しく、availTがFALSEに等しい場合、pDsY[0][0]は次のように導出される。
pDsY[0][0]=(pY[-1][0]+2*pY[0][0]+pY[1][0]+2)>>2 (8-168)
- そうではなく、availLがFALSEに等しく、availTがTRUEに等しい場合、pDsY[0][0]は次のように導出される。
pDsY[0][0]=(pY[0][ -1]+2*pY[0][0]+pY[0][1]+2)>>2 (8-169)
- そうではない(availLがFALSEに等しく、availTがFALSEに等しい)場合、pDsY[0][0]は次のように導出される。
pDsY[0][0]=pY[0][0] (8-170)
- それ以外の場合、次のことが当てはまる。
- x=1..nTbW-1、y=0..nTbH-1であるpDsY[x][y]は次のように導出される。
pDsY[x][y]=(pY[2*x-1][2*y]+pY[2*x-1][2*y+1]+2*pY[2*x][2*y]+2*pY[2*x][2*y+1]+pY[2*x+1][2*y]+pY[2*x+1][2*y+1]+4)>>3 (8-171)
- availLがTRUEに等しい場合、y=0..nTbH-1であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=(pY[-1][2*y]+pY[-1][2*y+1]+2*pY[0][2*y]+2*pY[0][2*y+1]+pY[1][2*y]+pY[1][2*y+1]+4)>>3 (8-172)
- それ以外の場合、y=0..nTbH-1であるpDsY[0][y]は次のように導出される。
pDsY[0][y]=(pY[0][2*y]+pY[0][2*y+1]+1)>>1 (8-173)
第5の態様の任意の前述の実装形態または第5の態様自体によるデバイスの可能な実装形式では、現在のクロマブロックが上側の境界にあるとき、フィルタリングされた再構築されたサンプルを取得するために、再構築された隣接ルマサンプルの1つの行のみが使用される。
第5の態様の任意の前述の実装形態または第5の態様自体によるデバイスの可能な実装形式では、現在のブロックの上側の隣接するサンプル行における、および/または現在のブロックの左側の隣接するサンプル列におけるサンプルである、現在のブロックに隣接する選択された位置におけるルマサンプルは、それらの間の間隔/距離/ピクセルの数により、等しく離隔されている。

Claims (30)

  1. 線形モデルを使用してイントラ予測を実行するための方法であって、
    クロマフォーマット情報に基づいてダウンサンプリングフィルタのセットを決定するステップであって、前記クロマフォーマット情報が、現在のブロックが属するピクチャのクロマフォーマットを示す、ステップと、
    ダウンサンプリングフィルタの前記セットの中のそれぞれのダウンサンプリングフィルタを使用して、前記現在のブロックのルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプル、および前記ルマブロックの選択されたルマ参照サンプルのダウンサンプリングされたルマ参照サンプルを取得するステップと、
    前記ダウンサンプリングされたルマ参照サンプルおよび前記ダウンサンプリングされたルマ参照サンプルに対応するクロマ参照サンプルに基づいて、1つまたは複数の線形モデル係数を決定するステップと、
    前記線形モデル係数および前記ルマブロックの中の前記再構築されたルマサンプルの前記ダウンサンプリングされたルマサンプルに基づいて、前記ルマブロックに対応するクロマブロックの予測サンプルを取得するステップとを備える、方法。
  2. クロマフォーマット情報に基づいてダウンサンプリングフィルタのセットを決定する前記ステップが、
    前記クロマフォーマット情報に基づいて水平方向および垂直方向におけるサブサンプリング比情報を決定するステップと、
    前記サブサンプリング比情報に基づいてダウンサンプリングフィルタの前記セットを決定するステップとを備える、請求項1に記載の方法。
  3. 4:2:0クロマフォーマットである前記クロマフォーマットに対して、ダウンサンプリングフィルタの第1のセットが前記現在のブロックの前記ルマブロックのために使用され、
    4:2:2クロマフォーマットである前記クロマフォーマットに対して、ダウンサンプリングフィルタの第2のセットが前記現在のブロックのルマブロックのために使用され、または、
    4:4:4クロマフォーマットである前記クロマフォーマットに対して、ダウンサンプリングフィルタの第3のセットが前記現在のブロックのルマブロックのために使用される、請求項1に記載の方法。
  4. サブサンプリングされたクロマサンプルが、前記現在のブロック内で対応するルマサンプルと同一位置にあるとき、
    ダウンサンプリングフィルタの前記セットの中のそれぞれのダウンサンプリングフィルタを使用して、前記現在のブロックのルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプル、および前記ルマブロックの選択されたルマ参照サンプルのダウンサンプリングされたルマ参照サンプルを取得する前記ステップが、
    第1のダウンサンプリングフィルタを再構築されたルマサンプルの第1のセットに適用することによって、前記ルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルを取得するステップであって、再構築されたルマサンプルの前記第1のセットが、前記再構築されたルマサンプルの位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備える、ステップと、
    前記第1のダウンサンプリングフィルタを再構築されたルマサンプルの第2のセットに適用することによって、少なくとも1つの選択された参照ルマサンプルのダウンサンプリングされたルマ参照サンプルを取得するステップであって、再構築されたルマサンプルの前記第2のセットが、前記選択された参照ルマサンプルの前記位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備える、ステップとを備え、
    前記第1のダウンサンプリングフィルタが、ダウンサンプリングフィルタの前記セットから選択される、請求項1から3のいずれか一項に記載の方法。
  5. サブサンプリングされたクロマサンプルが、前記現在のブロック内で対応するルマサンプルと同一位置にないとき、
    ダウンサンプリングフィルタの前記セットの中のそれぞれのダウンサンプリングフィルタを使用して、前記現在のブロックのルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプル、および前記ルマブロックの選択されたルマ参照サンプルのダウンサンプリングされたルマ参照サンプルを取得する前記ステップが、
    第2のダウンサンプリングフィルタを再構築されたルマサンプルの第3のセットに適用することによって、前記ルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルを取得するステップであって、再構築されたルマサンプルの前記第3のセットが、前記再構築されたルマサンプルの位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備える、ステップと、
    前記第2のダウンサンプリングフィルタを再構築されたルマサンプルの第4のセットに適用することによって、少なくとも1つの選択された参照ルマサンプルのダウンサンプリングされたルマ参照サンプルを取得するステップであって、再構築されたルマサンプルの前記第4のセットが、前記選択された参照ルマサンプルの前記位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備える、ステップとを備え、
    前記第2のダウンサンプリングフィルタが、ダウンサンプリングフィルタの前記セットから選択される、請求項1から3のいずれか一項に記載の方法。
  6. 前記サブサンプリングされたクロマサンプルが前記現在のブロック内の前記対応するルマサンプルと同一位置にあるは、前記サブサンプリングされたクロマサンプルのクロマサンプルタイプが、
    - クロマサンプルタイプ2、または
    - クロマサンプルタイプ4
    のいずれか1つを備えるときに発生する、請求項4に記載の方法。
  7. 前記サブサンプリングされたクロマサンプルが前記現在のブロック内の前記対応するルマサンプルと同一位置にないは、前記サブサンプリングされたクロマサンプルのクロマサンプルタイプが、
    - クロマサンプルタイプ0、
    - クロマサンプルタイプ1、
    - クロマサンプルタイプ3、または
    - クロマサンプルタイプ5
    のいずれか1つを備えるときに発生する、請求項5に記載の方法。
  8. 前記クロマフォーマットが4:4:4クロマフォーマットであることを備える少なくとも1つの条件が満たされる場合、ダウサンプリングフィルタの前記セットがバイパスフィルタを備え、または、
    前記クロマフォーマットが4:2:0クロマフォーマットであることを備える少なくとも1つの条件が満たされる場合、ダウサンプリングフィルタの前記セットがフィルタのセット{F2,F3,F5,F6}を備え、
    F3[0]=1、F3[1]=2、F3[2]=1
    F5[i][j]=F6[i][j]=0、ただしi=0..2、j=0..2
    F5[0][1]=1、F5[1][1]=4、F5[2][1]=1、F5[1][0]=1、F5[1][2]=1
    F6[0][1]=1、F6[1][1]=2、F6[2][1]=1
    F6[0][2]=1、F6[1][2]=2、F6[2][2]=1
    F2[0]=1、F2[1]=1、または、
    前記クロマフォーマットが4:2:2クロマフォーマットであることを備える少なくとも1つの条件が満たされる場合、ダウサンプリングフィルタの前記セットがフィルタのセット{F2,F3,F5,F6}を備え、
    F3[0]=1、F3[1]=2、F3[2]=1
    F5[i][j]=F6[i][j]=0、ただしi=0..2、j=0..2
    F5[0][1]=0、F5[1][1]=8、F5[2][1]=0、F5[1][0]=0、F5[1][2]=0
    F6[0][1]=2、F6[1][1]=4、F6[2][1]=2
    F6[0][2]=0、F6[1][2]=0、F6[2][2]=0
    F2[0]=2,F2[1]=0
    である、請求項1から7のいずれか一項に記載の方法。
  9. 水平方向および垂直方向における前記サブサンプリング比情報が、それぞれ、変数SubWidthCおよびSubHeightCの値によって表され、
    SubWidthC==2およびSubHeightC==2であることを含む少なくとも1つの条件が満たされる場合、ダウサンプリングフィルタの前記セットがフィルタのセット{F2,F3,F5,F6}を備え、
    F3[0]=1、F3[1]=2、F3[2]=1
    F5[i][j]=F6[i][j]=0、ただしi=0..2、j=0..2
    F5[0][1]=1,F5[1][1]=4,F5[2][1]=1,F5[1][0]=1,F5[1][2]=1
    F6[0][1]=1、F6[1][1]=2、F6[2][1]=1
    F6[0][2]=1、F6[1][2]=2、F6[2][2]=1
    F2[0]=1、F2[1]=1
    SubWidthC==2およびSubHeightC==1であることを含む少なくとも1つの条件が満たされる場合、ダウサンプリングフィルタの前記セットがフィルタのセット{F2,F3,F5,F6}を備え、
    F3[0]=1、F3[1]=2、F3[2]=1
    F5[i][j]=F6[i][j]=0、ただしi=0..2、j=0..2
    F5[0][1]=0、F5[1][1]=8、F5[2][1]=0、F5[1][0]=0、F5[1][2]=0
    F6[0][1]=2、F6[1][1]=4、F6[2][1]=2
    F6[0][2]=0、F6[1][2]=0、F6[2][2]=0
    F2[0]=2、F2[1]=0
    である、請求項2から7のいずれか一項に記載の方法。
  10. 前記選択されたルマ参照サンプルが、
    前記ルマブロックの上にあり、L個の利用可能なクロマ参照サンプルに基づいて選択される、隣接ルマサンプル、または
    前記ルマブロックの左にあり、L個の利用可能なクロマ参照サンプルに基づいて選択される、隣接ルマサンプルのうちの少なくとも1つを備える、請求項1から9のいずれか一項に記載の方法。
  11. 前記利用可能なクロマ参照サンプルの前記位置が、
    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]であるとして指定され、
    前記クロマブロックの次元がW×Hであり、W'およびH'が、
    前記LMモードが適用されるとき、W'=W、H'=Hであり、
    前記LM-Aモードが適用されるとき、W'=W+Hであり、
    前記LM-Lモードが適用されるとき、H'=H+Wであるとして設定される、
    請求項10に記載の方法。
  12. 前記選択されたルマ参照サンプルの前記ダウンサンプリングされたルマ参照サンプルおよび前記ダウンサンプリングされたルマ参照サンプルに対応するクロマ参照サンプルに基づいて1つまたは複数の線形モデル係数を決定する前記ステップが、
    前記ダウンサンプリングされたルマ参照サンプルに基づいて最大ルマ値および最小ルマ値を決定するステップと、
    前記最大ルマ値と関連付けられる1つまたは複数のダウンサンプリングされたルマ参照サンプルの1つまたは複数の位置に少なくとも一部基づいて第1のクロマ値を取得するステップと、
    前記最小ルマ値と関連付けられる1つまたは複数のダウンサンプリングされたルマ参照サンプルの1つまたは複数の位置に少なくとも一部基づいて第2のクロマ値を取得するステップと、
    前記第1のクロマ値、前記第2のクロマ値、前記最大ルマ値、および前記最小ルマ値に基づいて、前記1つまたは複数の線形モデル係数を計算するステップとを備える、請求項1から11のいずれか一項に記載の方法。
  13. 線形モデルを使用したイントラ予測のための装置であって、
    クロマフォーマット情報に基づいてダウンサンプリングフィルタのセットを決定するように構成される決定ユニットであって、前記クロマフォーマット情報が、現在のブロックが属するピクチャのクロマフォーマットを示す、決定ユニットと、
    ダウンサンプリングフィルタの前記セットの中のそれぞれのダウンサンプリングフィルタを使用して、前記現在のブロックのルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプル、および前記ルマブロックの選択されたルマ参照サンプルのダウンサンプリングされたルマ参照サンプルを取得するように構成されるフィルタリングユニットと、
    前記ダウンサンプリングされたルマ参照サンプルおよび前記ダウンサンプリングされたルマ参照サンプルに対応するクロマ参照サンプルに基づいて、1つまたは複数の線形モデル係数を決定するように構成される線形モデル導出ユニットと、
    前記線形モデル係数および前記ルマブロックの中の前記再構築されたルマサンプルの前記ダウンサンプリングされたルマサンプルに基づいて、前記ルマブロックに対応するクロマブロックの予測サンプルを取得するように構成される予測処理ユニットとを備える、装置。
  14. 前記決定ユニットが、
    前記クロマフォーマット情報に基づいて水平方向および垂直方向におけるサブサンプリング比情報を決定し、
    前記サブサンプリング比情報に基づいてダウンサンプリングフィルタの前記セットを決定するように構成される、請求項13に記載の装置。
  15. 4:2:0クロマフォーマットである前記クロマフォーマットに対して、ダウンサンプリングフィルタの第1のセットが前記現在のブロックの前記ルマブロックのために使用され、
    4:2:2クロマフォーマットである前記クロマフォーマットに対して、ダウンサンプリングフィルタの第2のセットが前記現在のブロックのルマブロックのために使用され、または、
    4:4:4クロマフォーマットである前記クロマフォーマットに対して、ダウンサンプリングフィルタの第3のセットが前記現在のブロックのルマブロックのために使用される、請求項13に記載の装置。
  16. サブサンプリングされたクロマサンプルが、前記現在のブロック内で対応するルマサンプルと同一位置にあるとき、
    前記フィルタリングユニットが、第1のダウンサンプリングフィルタを再構築されたルマサンプルの第1のセットに適用することによって、前記ルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルを取得し、再構築されたルマサンプルの前記第1のセットが、前記再構築されたルマサンプルの位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備え、
    前記第1のダウンサンプリングフィルタを再構築されたルマサンプルの第2のセットに適用することによって、少なくとも1つの選択された参照ルマサンプルのダウンサンプリングされたルマ参照サンプルを取得し、再構築されたルマサンプルの前記第2のセットが、前記選択された参照ルマサンプルの前記位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備える、ように構成され、
    前記第1のダウンサンプリングフィルタが、ダウンサンプリングフィルタの前記セットから選択される、請求項13から15のいずれか一項に記載の装置。
  17. サブサンプリングされたクロマサンプルが、前記現在のブロック内で対応するルマサンプルと同一位置にないとき、
    前記フィルタリングユニットが、第2のダウンサンプリングフィルタを再構築されたルマサンプルの第3のセットに適用することによって、前記ルマブロックの中の再構築されたルマサンプルのダウンサンプリングされたルマサンプルを取得し、再構築されたルマサンプルの前記第3のセットが、前記再構築されたルマサンプルの位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備え、
    前記第2のダウンサンプリングフィルタを再構築されたルマサンプルの第4のセットに適用することによって、少なくとも1つの選択された参照ルマサンプルのダウンサンプリングされたルマ参照サンプルを取得し、再構築されたルマサンプルの前記第4のセットが、前記選択された参照ルマサンプルの前記位置に水平および/または垂直に隣り合う位置にある再構築されたルマサンプルを備える、ように構成され、
    前記第2のダウンサンプリングフィルタが、ダウンサンプリングフィルタの前記セットから選択される、請求項13から15のいずれか一項に記載の装置。
  18. 前記サブサンプリングされたクロマサンプルが前記現在のブロック内の前記対応するルマサンプルと同一位置にあるは、前記サブサンプリングされたクロマサンプルのクロマサンプルタイプが、
    - クロマサンプルタイプ2、または
    - クロマサンプルタイプ4
    のいずれか1つを備えるときに発生する、請求項16に記載の装置。
  19. 前記サブサンプリングされたクロマサンプルが前記現在のブロック内の前記対応するルマサンプルと同一位置にないは、前記サブサンプリングされたクロマサンプルのクロマサンプルタイプが、
    - クロマサンプルタイプ0、
    - クロマサンプルタイプ1、
    - クロマサンプルタイプ3、または
    - クロマサンプルタイプ5
    のいずれか1つを備えるときに発生する、請求項17に記載の装置。
  20. 前記決定ユニットがダウンサンプリングフィルタのセットを決定するように構成され、
    前記クロマフォーマットが4:4:4クロマフォーマットであることを備える少なくとも1つの条件が満たされる場合、ダウサンプリングフィルタの前記セットがバイパスフィルタを備え、または、
    前記クロマフォーマットが4:2:0クロマフォーマットであることを備える少なくとも1つの条件が満たされる場合、ダウサンプリングフィルタの前記セットがフィルタのセット{F2,F3,F5,F6}を備え、
    F3[0]=1、F3[1]=2、F3[2]=1
    F5[i][j]=F6[i][j]=0、ただしi=0..2、j=0..2
    F5[0][1]=1、F5[1][1]=4、F5[2][1]=1、F5[1][0]=1、F5[1][2]=1
    F6[0][1]=1、F6[1][1]=2、F6[2][1]=1
    F6[0][2]=1、F6[1][2]=2、F6[2][2]=1
    F2[0]=1、F2[1]=1、または、
    前記クロマフォーマットが4:2:2クロマフォーマットであることを備える少なくとも1つの条件が満たされる場合、ダウサンプリングフィルタの前記セットがフィルタのセット{F2,F3,F5,F6}を備え、
    F3[0]=1、F3[1]=2、F3[2]=1
    F5[i][j]=F6[i][j]=0、ただしi=0..2、j=0..2
    F5[0][1]=0、F5[1][1]=8、F5[2][1]=0、F5[1][0]=0、F5[1][2]=0
    F6[0][1]=2、F6[1][1]=4、F6[2][1]=2
    F6[0][2]=0、F6[1][2]=0、F6[2][2]=0
    F2[0]=2、F2[1]=0
    である、請求項13から19のいずれか一項に記載の装置。
  21. 水平方向および垂直方向における前記サブサンプリング比情報が、それぞれ、変数SubWidthCおよびSubHeightCの値によって表され、
    前記決定ユニットがダウンサンプリングフィルタの前記セットを決定するように構成され、
    SubWidthC==2およびSubHeightC==2であることを含む少なくとも1つの条件が満たされる場合、ダウサンプリングフィルタの前記セットがフィルタのセット{F2,F3,F5,F6}を備え、
    F3[0]=1、F3[1]=2、F3[2]=1
    F5[i][j]=F6[i][j]=0、ただしi=0..2、j=0..2
    F5[0][1]=1、F5[1][1]=4、F5[2][1]=1、F5[1][0]=1、F5[1][2]=1
    F6[0][1]=1、F6[1][1]=2、F6[2][1]=1
    F6[0][2]=1、F6[1][2]=2、F6[2][2]=1
    F2[0]=1、F2[1]=1
    SubWidthC==2およびSubHeightC==1であることを含む少なくとも1つの条件が満たされる場合、ダウサンプリングフィルタの前記セットがフィルタのセット{F2,F3,F5,F6}を備え、
    F3[0]=1、F3[1]=2、F3[2]=1
    F5[i][j]=F6[i][j]=0、ただしi=0..2、j=0..2
    F5[0][1]=0、F5[1][1]=8、F5[2][1]=0、F5[1][0]=0、F5[1][2]=0
    F6[0][1]=2、F6[1][1]=4、F6[2][1]=2
    F6[0][2]=0、F6[1][2]=0、F6[2][2]=0
    F2[0]=2、F2[1]=0
    である、請求項14から19のいずれか一項に記載の装置。
  22. 前記選択されたルマ参照サンプルが、
    前記ルマブロックの上にあり、L個の利用可能なクロマ参照サンプルに基づいて選択される、隣接ルマサンプル、または
    前記ルマブロックの左にあり、L個の利用可能なクロマ参照サンプルに基づいて選択される、隣接ルマサンプルのうちの少なくとも1つを備える、請求項13から21のいずれか一項に記載の装置。
  23. 前記利用可能なクロマ参照サンプルの前記位置が、
    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]であるとして指定され、
    前記クロマブロックの次元がW×Hであり、W'およびH'が、
    前記LMモードが適用されるとき、W'=W、H'=Hであり、
    前記LM-Aモードが適用されるとき、W'=W+Hであり、
    前記LM-Lモードが適用されるとき、H'=H+Wであるとして設定される、
    請求項22に記載の装置。
  24. 前記線形モデル導出ユニットが、前記ダウンサンプリングされたルマ参照サンプルに基づいて最大ルマ値および最小ルマ値を決定し、前記最大ルマ値と関連付けられる1つまたは複数のダウンサンプリングされたルマ参照サンプルの1つまたは複数の位置に少なくとも一部基づいて、第1のクロマ値を取得し、前記最小ルマ値と関連付けられる1つまたは複数のダウンサンプリングされたルマ参照サンプルの1つまたは複数の位置に少なくとも一部基づいて、第2のクロマ値を取得し、前記第1のクロマ値、前記第2のクロマ値、前記最大ルマ値、および前記最小ルマ値に基づいて、1つまたは複数の線形モデル係数を計算するように構成される、請求項13から23のいずれか一項に記載の装置。
  25. 請求項1から12のいずれか一項に記載の方法を行うための処理回路を備える、エンコーダ(20)。
  26. 請求項1から12のいずれか一項に記載の方法を行うための処理回路を備える、デコーダ(30)。
  27. 請求項1から12のいずれか一項に記載の方法を実行するためのプログラムコードを備える、コンピュータプログラム製品。
  28. コンピュータデバイスによって実行されると、前記コンピュータデバイスに、請求項1から12のいずれか一項に記載の方法を実行させるプログラムコードを搬送する、非一時的コンピュータ可読媒体。
  29. デコーダであって、
    1つまたは複数のプロセッサと、
    前記プロセッサに結合され前記プロセッサによる実行のためのプログラミングを記憶する、非一時的コンピュータ可読記憶媒体とを備え、前記プロセッサによって実行されると、前記プログラミングが、請求項1から12のいずれか一項に記載の方法を行うように前記デコーダを構成する、デコーダ。
  30. エンコーダであって、
    1つまたは複数のプロセッサと、
    前記プロセッサに結合され前記プロセッサによる実行のためのプログラミングを記憶する、非一時的コンピュータ可読記憶媒体とを備え、前記プロセッサによって実行されると、前記プログラミングが、請求項1から12のいずれか一項に記載の方法を行うように前記エンコーダを構成する、エンコーダ。
JP2021549529A 2019-02-22 2020-02-24 線形モデルを使用したイントラ予測のための方法および装置 Pending JP2022521757A (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201962809555P 2019-02-22 2019-02-22
US62/809,555 2019-02-22
US201962825796P 2019-03-28 2019-03-28
US201962825021P 2019-03-28 2019-03-28
US62/825,796 2019-03-28
US62/825,021 2019-03-28
PCT/CN2020/076466 WO2020169113A1 (en) 2019-02-22 2020-02-24 Method and apparatus for intra prediction using linear model

Publications (1)

Publication Number Publication Date
JP2022521757A true JP2022521757A (ja) 2022-04-12

Family

ID=72143758

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021549529A Pending JP2022521757A (ja) 2019-02-22 2020-02-24 線形モデルを使用したイントラ予測のための方法および装置

Country Status (12)

Country Link
US (1) US20210385440A1 (ja)
EP (1) EP3928517A4 (ja)
JP (1) JP2022521757A (ja)
KR (1) KR20210125086A (ja)
CN (7) CN116418981A (ja)
AU (1) AU2020226573A1 (ja)
BR (1) BR112021016560A2 (ja)
CA (1) CA3131027A1 (ja)
CL (1) CL2021002220A1 (ja)
MX (1) MX2021010130A (ja)
WO (1) WO2020169113A1 (ja)
ZA (1) ZA202106297B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230107417A (ko) * 2019-12-30 2023-07-14 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 비디오 데이터의 크로마 및 루마 성분의 교차 성분결정
KR20230002432A (ko) 2020-04-18 2023-01-05 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 교차 성분 예측을 위한 사용 제한
WO2023132508A1 (ko) * 2022-01-04 2023-07-13 현대자동차주식회사 크로마 성분을 위한 템플릿 기반 인트라 모드 유도를 위한 방법
WO2023197192A1 (zh) * 2022-04-12 2023-10-19 Oppo广东移动通信有限公司 编解码方法、装置、编码设备、解码设备以及存储介质
EP4262206A1 (en) * 2022-04-14 2023-10-18 FG Innovation Company Limited Method for determining specific linear model and video processing device
WO2024005545A1 (ko) * 2022-06-29 2024-01-04 엘지전자 주식회사 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체
WO2024010359A1 (ko) * 2022-07-05 2024-01-11 엘지전자 주식회사 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012164939A1 (ja) * 2011-06-03 2012-12-06 パナソニック株式会社 画像符号化方法および画像復号化方法
WO2012175646A1 (en) * 2011-06-22 2012-12-27 Canon Kabushiki Kaisha Method and device for processing colour information in an image
JP2014523698A (ja) * 2011-06-28 2014-09-11 サムスン エレクトロニクス カンパニー リミテッド 画像の輝度成分を用いて画像の色差成分を予測する方法及び予測装置
WO2019054200A1 (ja) * 2017-09-15 2019-03-21 ソニー株式会社 画像処理装置および方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8023569B2 (en) * 2005-12-15 2011-09-20 Sharp Laboratories Of America, Inc. Methods and systems for block-based residual upsampling
US8724711B2 (en) * 2011-07-12 2014-05-13 Intel Corporation Luma-based chroma intra prediction
CN103369315B (zh) * 2012-04-06 2016-08-24 华为技术有限公司 色度分量的帧内预测模式的编码、解码方法、设备及系统
US10455249B2 (en) * 2015-03-20 2019-10-22 Qualcomm Incorporated Downsampling process for linear model prediction mode
JP2018056685A (ja) * 2016-09-27 2018-04-05 株式会社ドワンゴ 画像符号化装置、画像符号化方法、及び画像符号化プログラム、並びに、画像復号装置、画像復号方法、及び画像復号プログラム
US11025903B2 (en) * 2017-01-13 2021-06-01 Qualcomm Incorporated Coding video data using derived chroma mode
CN117354503A (zh) * 2017-07-06 2024-01-05 Lx 半导体科技有限公司 图像编码/解码方法、发送方法和数字存储介质
CN109257605B (zh) * 2017-07-13 2021-11-19 华为技术有限公司 图像处理方法、设备及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012164939A1 (ja) * 2011-06-03 2012-12-06 パナソニック株式会社 画像符号化方法および画像復号化方法
WO2012175646A1 (en) * 2011-06-22 2012-12-27 Canon Kabushiki Kaisha Method and device for processing colour information in an image
JP2014523698A (ja) * 2011-06-28 2014-09-11 サムスン エレクトロニクス カンパニー リミテッド 画像の輝度成分を用いて画像の色差成分を予測する方法及び予測装置
WO2019054200A1 (ja) * 2017-09-15 2019-03-21 ソニー株式会社 画像処理装置および方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WANG, MENG ET AL.: "CE3-related: Modified linear model derivation for CCLM modes", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 13TH MEETING: MARR, vol. JVET-M0274 (version 1), JPN6022055106, 3 January 2019 (2019-01-03), ISSN: 0004956068 *

Also Published As

Publication number Publication date
WO2020169113A1 (en) 2020-08-27
CN116506599A (zh) 2023-07-28
CN117278744A (zh) 2023-12-22
KR20210125086A (ko) 2021-10-15
CN117041552A (zh) 2023-11-10
AU2020226573A1 (en) 2021-09-30
EP3928517A4 (en) 2022-04-27
US20210385440A1 (en) 2021-12-09
CN113545063B (zh) 2023-04-28
EP3928517A1 (en) 2021-12-29
CN116405668A (zh) 2023-07-07
CL2021002220A1 (es) 2022-05-06
BR112021016560A2 (pt) 2021-10-26
CN113545063A (zh) 2021-10-22
CA3131027A1 (en) 2020-08-27
CN116437077A (zh) 2023-07-14
MX2021010130A (es) 2021-11-12
CN116418981A (zh) 2023-07-11
ZA202106297B (en) 2022-09-28

Similar Documents

Publication Publication Date Title
US20210344915A1 (en) Encoder, a decoder and corresponding methods of intra prediction
US10986336B2 (en) Encoder, a decoder and corresponding methods for intra prediction
JP7332703B2 (ja) クロマサブブロックのアフィンベースのインター予測のための方法及び装置
EP4322531A2 (en) An encoder, a decoder and corresponding methods harmonizing matrix-based intra prediction and secoundary core selection
JP2022521757A (ja) 線形モデルを使用したイントラ予測のための方法および装置
US11388422B2 (en) Encoder, a decoder and corresponding methods related to intra prediction mode
JP7314300B2 (ja) イントラ予測のための方法および装置
AU2020247242B2 (en) Method and apparatus for intra smoothing
JP2023126795A (ja) ビデオコーディングにおけるクロマイントラ予測のための方法及び装置
AU2024201152A1 (en) An encoder, a decoder and corresponding methods using intra mode coding for intra prediction
WO2021025597A1 (en) Method and apparatus of sample adaptive offset in-loop filter with application region size constraint
WO2021057755A1 (en) An encoder, a decoder and corresponding methods of complexity reduction on intra prediction for the planar mode
US20220321888A1 (en) Method and apparatus of position dependent prediction combination for oblique directional intra prediction
US20240137527A1 (en) Encoder, a decoder and corresponding methods related to intra prediction mode
WO2020182079A1 (en) An encoder, a decoder and corresponding methods using intra mode coding for intra prediction
NZ780730B2 (en) Method and apparatus for intra-prediction

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211022

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211022

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230104

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231219

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240318