[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2023552997A - イントラ予測方法、エンコーダ、デコーダおよび記憶媒体 - Google Patents

イントラ予測方法、エンコーダ、デコーダおよび記憶媒体 Download PDF

Info

Publication number
JP2023552997A
JP2023552997A JP2023533982A JP2023533982A JP2023552997A JP 2023552997 A JP2023552997 A JP 2023552997A JP 2023533982 A JP2023533982 A JP 2023533982A JP 2023533982 A JP2023533982 A JP 2023533982A JP 2023552997 A JP2023552997 A JP 2023552997A
Authority
JP
Japan
Prior art keywords
mode
intra prediction
determining
prediction mode
list
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
JP2023533982A
Other languages
English (en)
Inventor
ワン、ファン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Publication of JP2023552997A publication Critical patent/JP2023552997A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本願実施例は、イントラ予測方法、エンコーダ、デコーダおよび記憶媒体を開示し、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックの重み行列導出モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定し、前記第1イントラ予測モード、前記第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定する。現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックのモードリストを決定し、前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記第1イントラ予測モードおよび第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定する。

Description

(関連出願への相互参照)
本願は、出願日が2020年12月3日であり、出願番号がPCT/CN2020/133708である国際特許出願に基づいて提出されるものであり、当該国際特許出願の優先権を主張し、当該国際特許出願の全ての内容が参照によって本願に援用される。
本願実施例は、画像処理技術分野に関し、特に、イントラ予測方法、エンコーダ、デコーダおよび記憶媒体に関する。
自然映像で表現されるより微細なエッジ方向を捉えるために、バーサタイルビデオ符号化(VVC:Versatile Video Coding)では、ビデオ圧縮規格(HEVC:High Efficiency Video Coding)で定義された33種のイントラ輝度予測角度モードを65種に拡張し、さらに、番号が0であるPlanarモードと番号が1である直流(DC:Direct Current)モードの2つの非角度モードもある。
一般的なイントラ予測には、DCモード、Planarモード、双線形フィルタ(Bilinear)モードなどのモードが含まれるが、これらはいずれも単純なテクスチャの予測しか処理できず、角度モードがますます増えても、角度モードの予測は、1つの角度を持つ直線に沿ってのみ行うことができる。したがって、既存のイントラ予測モードは、単純なテクスチャの予測しか処理できない。複雑なテクスチャの場合、予測するとき、より小さなブロックに分割する必要があるため、複雑さが高く、それに対応して、符号化・復号化プロセスに必要な記憶容量や全体の時間も大幅に増加するため、符号化・復号化効率が低下する。
本願実施例は、イントラ予測品質を向上させながら、複雑さを低減することにより、圧縮性能を向上させることができる、イントラ予測方法、エンコーダ、デコーダおよび記憶媒体を提供する。
本願実施例の技術的解決策は、以下のように実現されることができる。
第1態様によれば、本願実施例は、エンコーダに適用される、イントラ予測方法を提供し、前記方法は、
現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックの重み行列導出モードを決定することと、
前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定することと、
前記第1イントラ予測モード、前記第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定することと、を含む。
第2態様によれば、本願実施例は、エンコーダに適用される、イントラ予測方法を提供し、前記方法は、
現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックのモードリストを決定することと、
前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することと、
前記第1イントラ予測モードと第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定することと、を含む。
第3態様によれば、本願実施例は、デコーダに適用される、イントラ予測方法を提供し、前記方法は、
ビットストリームを解析して、現在ブロックのイントラ予測モードパラメータを決定することと、
前記イントラ予測モードパラメータが、前記現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、前記現在ブロックの重み行列導出モードを決定することと、
前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定することと、
前記第1イントラ予測モード、前記第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定することと、を含む。
第4態様によれば、本願実施例は、デコーダに適用される、イントラ予測方法を提供し、前記方法は、
ビットストリームを解析して、現在ブロックのイントラ予測モードパラメータを決定することと、
前記イントラ予測モードパラメータが、前記現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、前記現在ブロックのモードリストを決定することと、
前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することと、
前記第1イントラ予測モードと第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定することと、を含む。
第5態様によれば、本願実施例は、第1決定部を備えるエンコーダを提供し、
前記第1決定部は、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックの重み行列導出モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定し、前記第1イントラ予測モード、第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定するように構成され、または
前記第1決定部は、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックのモードリストを決定し、前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記第1イントラ予測モードと第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定するように構成される。
第6態様によれば、本願実施例は、エンコーダを提供し、前記エンコーダは、第1プロセッサと、前記第1プロセッサによって実行可能な命令を記憶する第1メモリと、を備え、前記命令は、前記第1プロセッサに、上記のイントラ予測方法を実行させる。
第7態様によれば、本願実施例は、復号化部と、第2決定部と、を備える、デコーダを提供し、
前記復号化部は、ビットストリームを解析するように構成され、
前記第2決定部は、現在ブロックのイントラ予測モードパラメータを決定し、前記イントラ予測モードパラメータが、前記現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、前記現在ブロックの重み行列導出モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定し、前記第1イントラ予測モード、第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定するように構成され、または
前記第2決定部は、現在ブロックのイントラ予測モードパラメータを決定し、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックのモードリストを決定し、前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記第1イントラ予測モードと第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定するように構成される。
第8態様によれば、本願実施例は、デコーダを提供し、前記デコーダは、第2プロセッサと、前記第2プロセッサによって実行可能な命令を記憶する第2メモリと、を備え、前記命令は、前記第2プロセッサに、上記のイントラ予測方法を実行させる。
第9態様によれば、本願実施例は、第1プロセッサと第2プロセッサに、上記のイントラ予測方法を実行させるコンピュータプログラムが記憶された、コンピュータ記憶媒体を提供する。
本願実施例は、イントラ予測方法、エンコーダ、デコーダおよび記憶媒体を提供し、一態様において、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックの重み行列導出モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定し、前記第1イントラ予測モード、前記第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定する。別の態様では、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックのモードリストを決定し、前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記第1イントラ予測モードおよび第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定する。つまり、本願の実施例では、エンコーダ・デコーダは、2つの異なるイントラ予測モードによって現在ブロックの2つの異なる予測ブロックを決定することができ、そして、様々な重み行列を用いて予測ブロックを組み合わせることにより、最終的により複雑な予測ブロックを得ることができ、これにより、予測の精度を向上させることができ、さらに、エンコーダ・デコーダは、重み行列と予測モードとの相関性を用いてMPMリストを構築することもでき、これにより、複雑さを大幅に低減することができる。つまり、本願で提案されるイントラ予測方法により、イントラ予測の品質を向上させながら複雑さを低減することができ、これにより、圧縮性能を向上させることができる。
重み割り当ての概略図1である。 重み割り当ての概略図2である。 イントラ予測の概略図1である。 イントラ予測の概略図2である。 イントラ予測の概略図3である。 イントラ予測の概略図3である。 イントラ予測の概略図3である。 イントラ予測の概略図3である。 イントラ予測の概略図3である。 イントラ予測の概略図3である。 イントラ予測の概略図3である。 イントラ予測の概略図3である。 イントラ予測の概略図3である。 イントラ予測モードの概略図1である。 イントラ予測モードの概略図2である。 イントラ予測モードの概略図3である。 ビデオ符号化システムの構成のブロック図である。 ビデオ復号化システムの構成のブロック図である。 イントラ予測方法の実現プロセスの概略図1である。 SAWPモードの概略図である。 イントラ予測の概略図3である。 隣接ブロックの概略図である。 クラスタリングの概略図である。 イントラ予測モードの選択の概略図である。 イントラ予測方法の実現プロセスの概略図2である。 イントラ予測方法の実現プロセスの概略図3である。 イントラ予測方法の実現プロセスの概略図4である。 本願実施例によるエンコーダの構成の概略構造図1である。 本願実施例によるエンコーダの構成の概略構造図2である。 本願実施例によるデコーダの構成の概略構造図1である。 本願実施例によるデコーダの構成の概略構造図2である。
以下、本願実施例における図面を参照して、本願実施例における技術的解決策を明確且つ完全に説明する。理解できるように、本明細書で説明される具体的な実施例は、関連する出願を説明するためのものに過ぎず、当該出願を限定するものではない。さらに、説明の便宜上、図面には、本出願に関連する部分のみが示されていることにも留意されたい。
現在、一般的なビデオ符号化・復号化規格は、ブロックベースのハイブリッド符号化フレームワークに基づいている。ビデオ画像における各フレームは、同じサイズ(例えば、128×128、64×64など)の正方形の最大符号化ユニット(LCU:Largest Coding Unit)に分割され、各最大符号化ユニットは、ルールに従って長方形の符号化ユニット(CU:Coding Unit)に分割されてもよく、符号化ユニットはさらに、より小さな予測ユニット(PU:Prediction Unit)に分割される場合がある。具体的には、ハイブリッド符号化フレームワークは、予測、変換(Transform)、量子化(Quantization)、エントロピ符号化(EntropyCoding)、インループフィルタ(In Loop Filter)などのモジュールを含み得、ここで、予測モジュールは、イントラ予測(intraPrediction)とインター予測(interPrediction)とを含み得、インター予測は、動き推定(motion estimation)と動き補償(motion compensation)とを含み得る。ビデオ画像の1つのフレームにおける隣接する画素間には強い相関関係があるため、ビデオ符号化・復号化技術においてイントラ予測方式を使用することにより、隣接する画素間の空間冗長性を排除することができる。しかし、ビデオ画像における隣接するフレーム間にも強い類似性があるため、ビデオ符号化・復号化技術においてインター予測方式を使用することにより、隣接するフレーム間の時間冗長性を排除することができ、これにより、符号化・復号化効率を向上させることができる。
ビデオコーデックの基本的なプロセスは、次の通りである:符号化側では、1フレームの画像をブロックに分割し、現在ブロックに対してイントラ予測またはインター予測を実行して現在ブロックの予測ブロックを生成し、現在ブロックの元ブロックから予測ブロックを減算して残差ブロックを得、残差ブロックに対して変換および量子化を実行して量子化係数行列を得、量子化係数行列に対してエントロピ符号化を実行してビットストリームに出力する。復号化側では、現在ブロックに対してイントラ予測またはインター予測を実行して現在ブロックの予測ブロックを生成し、一方、ビットストリームを解析して量子化係数行列を得、量子化係数行列に対して逆量子化および逆変換を実行して残差ブロックを得、予測ブロックと残差ブロックを加算して再構成ブロックを得る。再構成ブロックは再構成画像を形成し、画像またはブロックに基づいて、再構成画像に対してループフィルタリングを実行して、復号化画像を得る。符号化側でも、復号化側と同様の操作を実行して、復号化画像を取得する必要がある。復号化画像は、後続のフレームのインター予測のための参照フレームとして使用されることができる。必要に応じて、符号化側で決定されたブロック分割情報、予測、変換、量子化、エントロピ符号化、ループフィルタリングなどのモード情報またはパラメータ情報をビットストリームに出力する必要がある。復号化側は、解析および既存情報に基づいて分析することにより、符号化側と同じブロック分割情報、予測、変換、量子化、エントロピ符号化、ループフィルタリングなどのモード情報またはパラメータ情報を決定し、それにより、符号化側によって取得された復号化画像が、復号化側によって取得された復号化画像と同じであることを保証することができる。符号化側によって取得された復号化画像は、通常、再構成画像とも呼ばれる。予測するとき、現在ブロックを予測ユニットに分割することができ、変換するとき、現在ブロックを変換ユニットに分割することができ、予測ユニットと変換ユニットの分割は異なってもよい。上記の記載は、ブロックベースのハイブリッド符号化フレームワークにおけるビデオエンコーダ・デコーダの基本的なプロセスであり、技術の発展に伴い、当該フレームワークまたはプロセスのいくつかのモジュールまたはステップは最適化される可能性があり、本願実施例は、当該ブロックベースのハイブリッド符号化フレームワークにおけるビデオエンコーダ・デコーダの基本的なプロセスに適するが、当該フレームワークまたはプロセスに限定されない。
現在ブロック(current block)は、現在符号化ユニット(CU)または現在予測ユニット(PU)などであってもよい。
インター予測の場合、復号化済みまたは再構成済みの画像、または参照フレームと呼ばれる情報を用いて現在ブロックを予測する。インター予測では、動き情報を用いて、参照フレームから参照ブロックを探し出し、参照ブロックに基づいて予測ブロックを生成する。動き情報は、参照フレームが属する参照フレームリスト、参照フレームインデックス、および動きベクトルを含む。動きベクトルは、フル画素またはサブ画素であってもよく、動きベクトルがサブ画素である場合、補間フィルタリングによって、参照フレームの必要なサブ画素のブロックを作成する必要があり、ここで、動きベクトルに基づいて求められる参照フレームのフル画素またはサブ画素のブロックを参照ブロックと呼ぶ。ある技術では、参照ブロックを予測ブロックとして直接使用し、ある技術では、参照ブロックをさらに処理して予測ブロックを生成する。参照ブロックをさらに処理して予測ブロックを生成することは、参照ブロックを予測ブロックとして使用し、予測ブロックに基づいて処理することによって新しい予測ブロックを生成することとして理解することができる。
現在開発中のバーサタイルビデオ符号化(VVC:Versatile Video Coding)ビデオ符号化・復号化規格では、幾何学的分割予測モード(GPM:Geometric partitioning Mode)と呼ばれるインター予測モードがある。現在開発中のビデオ符号化・復号化規格(AVS:Audio Video coding Standard)ビデオ符号化・復号化規格では、角度加重予測モード(AWP:Angular Weighted prediction)と呼ばれるインター予測モードがある。この2つのモードは、名称や具体的な実施形態が異なるが、原理的には共通点がある。
なお、従来の単方向予測では、現在ブロックと同じサイズの1つの参照ブロックのみを探すが、従来の双方向予測では、現在ブロックと同じサイズの2つの参照ブロックを使用しており、予測ブロック内の各点の画素値は、2つの参照ブロックの対応する位置の平均値であり、つまり、2つの参照ブロックの各参照ブロックのすべての点がそれぞれ全体の50%を占める。双方向加重予測により、2つの参照ブロックの割合が異なるようにすることができ、例えば、第1の参照ブロック内のすべての点が全体の75%を占め、第2の参照ブロック内のすべての点が全体の25%を占める。しかし、同じ参照ブロック内のすべての点の割合は同じである。デコーダ側動きベクトルリファインメント(DMVR:Decoder sideMotion Vector Refinement)技術や双方向オプティカルフロー(BIO:Bi-directional Optical Flow)などの他のいくつかの最適化手法では、参照画素や予測画素に何らかの変化が生じ、GPMまたはAWPも、現在ブロックと同じサイズの2つの参照ブロックを使用するが、一部の画素位置では第1の参照ブロックの対応位置の画素値を100%使用し、いくつかの画素位置では第2の参照ブロックの対応位置の画素値を100%使用し、ブレンド領域では、特定の割合に従ってこの2つの参照ブロックの対応位置の画素値を使用する。これらの重みを具体的にどのように付与するかは、GPMまたはAWPの予測モードによって决定されるか、またはGPMまたはAWPが、現在ブロックとは異なるサイズの2つの参照ブロックを使用することも考えられ、つまり、GPMまたはAWPがそれぞれ必要な部分を参照ブロックとして取ることができる。つまり、重みが0でない部分を参照ブロックとして使用し、重みが0である部分を削除する。
例示的に、図1は、重み割り当ての概略図1であり、図1は、本願実施例による、64×64の現在ブロックでのGPMの複数の分割モードの重み割り当ての概略図を示し、ここで、GPMには、64種の分割モードが存在する。図2は、重み割り当ての概略図2であり、図2は、本願実施例による、64×64の現在ブロックでのAWPの複数の分割モードの重み割り当ての概略図を示し、ここで、AWPには、56種の分割モードが存在する。図2または図3のいずれにおいても、各分割モードにおいて、領域2は、第1の参照ブロックの対応位置の重み値が0%であることを示し、領域1は、第1の参照ブロックの対応位置の重み値が100%であることを示し、灰色の領域は、色の濃淡に応じて、第1の参照ブロックの対応位置の重み値が0%より大きく100%未満であることを示し、第2の参照ブロックの対応位置の重み値が、100%から第1の参照ブロックの対応位置の重み値を減算した重み値であることを示す。
GPMとAWPの重み導出方法は異なる。GPMは、各モードに基づいて、角度およびオフセット量を決定し、各モードの重み行列を計算する。AWPは、まず一次元の重み付きラインを作成し、その後、イントラ角度予測と類似する方法で一次元の重み付きラインを行列全体に広げる。
初期の符号化・復号化技術では、CU、PU、変換ユニット(TU:Transform Unit)の分割に関わらず、長方形分割方式しか存在しないことを理解されたい。GPMまたはAWPは、分割を行わずに、予測された非長方形の分割効果を実現した。GPMおよびAWPは、2つの参照ブロックの重みのマスク(mask)、即ち、上記の重みグラフを使用する。このマスクは、予測ブロックを生成するときの2つの参照ブロックの重みを決定し、または予測ブロックの一部の位置は、第1の参照ブロックからのものであり、一部の位置は、第2の参照ブロックからのものであると単純に理解することもでき、ブレンド領域(blending area)は、2つの参照ブロックの対応位置に重み付けを行うことによって得られ、それにより、遷移をよりスムーズにすることができる。GPMとAWPは、分割線に従って現在ブロックを2つのCUまたはPUに分割しないため、予測後の残差の変換、量子化、逆変換、逆量子化も、現在ブロックを1つの全体として処理する。
現在ブロックによって使用される動き情報を保存することができる。現在フレームの後続の符号化・復号化されるブロックは、隣接する位置関係に基づいて、隣接ブロックなど、以前に符号化・復号化されたブロックの動き情報を使用することができる。これは、空間領域での相関を利用するため、このような符号化・復号化された動き情報は、空間領域上の動き情報と呼ばれる。現在フレームの各ブロックによって使用される動き情報を保存することができる。後続の符号化・復号化されるフレームは、参照関係に基づいて、以前に符号化・復号化されたフレームの動き情報を使用することができる。これは、時間領域での相関を利用するため、このような符号化・復号化されたフレームの動き情報は、時間領域上の動き情報と呼ばれる。現在フレームの各ブロックによって使用される動き情報の記憶方法は、通常、4x4行列などの一定サイズの行列を最小ユニットとして使用し、最小ユニットごとに、1セットの動き情報を個別に記憶する。このように、1つのブロックを符号化・復号化するたびに、当該ブロックの位置に対応する最小ユニットに、このブロックの動き情報を記憶することができる。したがって、空間領域上の動き情報または時間領域上の動き情報を使用するとき、位置に応じて、当該位置に対応する動き情報を直接求めることができる。例えば、16x16のブロックが従来の単方向予測を使用する場合、このブロックに対応するすべての4x4の最小ユニットは、この単方向予測の動き情報を記憶する。1つのブロックがGPMまたはAWPを使用する場合、このブロックに対応するすべての最小ユニットは、GPMまたはAWPのモードに基づいて、第1の動き情報、第2の動き情報および各最小ユニットの位置、各最小ユニットに記憶される動き情報を決定する。1つの方法では、1つの最小ユニットに対応する4x4の画素がすべて第1の動き情報からのものである場合、この最小ユニットは、第1の動き情報を記憶し、1つの最小ユニットに対応する4x4の画素がすべて第2の動き情報からのものである場合、この最小ユニットは、第2の動き情報を記憶する。1つの最小ユニットに対応する4x4の画素が、第1の動き情報と第2の動き情報の両方からのものである場合、AWPは、そのうちの1つの動き情報を選択して記憶し、GPMは、2つの動き情報が異なる参照フレームリストを指す場合、当該2つの動き情報を双方向動き情報に組み合わせて記憶し、そうでない場合、第2の動き情報しか記憶しない。
なお、本願実施例では、GPMまたはAWPは、インター予測技術に属し、GPMまたはAWPは、GPMまたはAWPを使用するか否かのフラグ(flag)をビットストリームで伝送する必要があり、当該flagは、現在ブロックがGPMを使用するかAWPを使用するかを示すことができる。GPMまたはAWPを使用する場合、エンコーダは、具体的に使用されるモード(即ち、GPMの64種の分割モードのうちの1つ、またはAWPの56種の分割モードのうちの1つである)と、2つの単方向動き情報のインデックス値をビットストリームで伝送する必要がある。つまり、現在ブロックについて、デコーダは、ビットストリームを解析することにより、GPMが使用されるがAWPが使用されるかに関する情報を得ることができ、GPMまたはAWPが使用されると決定された場合、デコーダは、GPMまたはAWPの予測モードパラメータおよび2つの動き情報のインデックス値を解析することができ、例えば、現在ブロックを2つのパーティションに分割することができ、すると、第1パーティションに対応する第1インデックス値と、第2パーティションに対応する第2インデックス値とが解析されることができる。
具体的には、GPMモードについては、GPMが使用される場合、GPMにおける予測モードパラメータ(例えば、GPMの具体的な分割モードなど)がビットストリームで伝送され、通常の場合、GPMは、64種の分割モードを含む。AWPモードについては、AWPが使用される場合、AWPにおける予測モードパラメータ(例えば、AWPの具体的な分割モードなど)がビットストリームで伝送され、通常の場合、AWPは、56種の分割モードを含む。
インター予測モードでは、例えば、GPMとAWPは、両方とも2つの単方向動き情報を用いて2つの参照ブロックを探す必要がある。既存の実施形態では、エンコーダ側で、現在ブロックの以前に符号化/復号化された部分の相関情報を利用して、1つの単方向動き情報候補リストを構築し、単方向動き情報候補リストから単方向動き情報を選択し、単方向動き情報候補リストにおけるこの2つの単方向動き情報のインデックス値(index)をビットストリームに書き込む。デコーダ側でも同様の方式を採用し、つまり、現在ブロックの以前に復号化された部分の相関情報を利用して1つの単方向動き情報候補リストを構築し、この単方向動き情報候補リストは、エンコーダ側で構築された候補リストと必ずしも同じである。したがって、ビットストリームから2つの単方向動き情報のインデックス値を解析し、そして、単方向動き情報候補リストから、現在ブロックが使用する必要のある2つの単方向動き情報である2つの単方向動き情報を探し出す。
つまり、本願で説明される単方向動き情報は、動きベクトル情報(即ち、(x,y)の値)および対応する参照フレーム情報(即ち、参照フレームリストおよび参照フレームリスト内の参照フレームインデックス値)を含み得る。1つの方法は、2つの参照フレームリストの参照フレームインデックス値を記録することであり、一方の参照フレームリストに対応する参照フレームインデックス値は有効であり、例えば、0、1、2などであり、他方の参照フレームリストに対応する参照フレームインデックス値は、無効であり、即ち、-1である。参照フレームインデックス値が有効である参照フレームリストは、現在ブロックの動き情報によって使用される参照フレームリストであり、参照フレームインデックス値に基づいて、当該参照フレームリストから対応する参照フレームを探し出すことができる。各参照フレームリストは、1つの対応する動きベクトルを有し、有効な参照フレームリストに対応する動きベクトルは有効であり、無効な参照フレームリストに対応する動きベクトルは無効である。デコーダは、単方向動き情報内の参照フレーム情報を利用して必要な参照フレームを探し出すことができ、現在ブロックの位置および動きベクトル、即ち(x,y)の値に基づいて、参照フレームから参照ブロックを探し出して、現在ブロックのインター予測値を決定することができる。
イントラ予測方法は、現在ブロックの周囲の符号化・復号化された再構成画素を参照画素として使用して、現在ブロックを予測することである。図3は、イントラ予測の概略図1であり、図3に示すように、現在ブロックのサイズは、4x4であり、現在ブロックの左行と上列の画素は、現在ブロックの参照画素であり、イントラ予測では、これらの参照画素を用いて現在ブロックを予測する。これらの参照画素がすべて利用可能である場合があり、即ち、すべて符号化・復号化されたものである。或いは、参照画素の一部が利用できない場合もあり、例えば、現在ブロックがフレーム全体の最も左側にある場合、現在ブロックの左側の参照画素は利用できない。または、現在ブロックを符号化・復号化するとき、現在ブロックの左下部分がまた符号化・復号化されていない場合、左下部分の参照画素も利用できない。参照画素が利用できない場合、利用可能な参照画素または特定の値または特定の方法を用いて充填を行うかまたは充填を行わなくてもい。
図4は、イントラ予測の概略図2であり、図4に示すように、多重参照ライン(MRL:Multiple reference line)イントラ予測方法では、より多くの参照画素を用いることにより符号化・復号化効率を向上させることができ、例えば、4つの参照行/列を現在ブロックの参照画素として使用する。
さらに、イントラ予測には複数の予測モードがあり、図5A~5Iは、イントラ予測の概略図3であり、図5A~5Iに示すように、H.264において、4x4のブロックに対して実行されるイントラ予測は、主に9種のモードを含み得る。ここで、図5Aに示すモード0では、現在ブロックの上方の画素を予測値として垂直方向に現在ブロックに複写し、図5Bに示すモード1では、左側の参照画素を予測値として水平方向に現在ブロックに複写し、図5C示すモード2(DCモード)では、A~D及びI~Lの8点の平均値をすべての点の予測値として使用し、図5D~5Iに示すモード3~8では、それぞれ、特定の角度で、参照画素を現在ブロックの対応位置に複写し、現在ブロックの一部の位置は、参照画素に正確に対応できないため、参照画素の加重平均値、または補間された参照画素のサブ画素を使用する必要がある場合がある。
これ以外にも、Planarモードなどがあり、技術の発展およびブロックの拡張に伴い、角度予測モードはますます増えている。図6は、イントラ予測モードの概略図1であり、図6に示すように、例えば、HEVCで使用されるイントラ予測モードは、Planarモード、DCモードおよび33種の角度モードを含む合計35種類の予測モードがある。図7は、イントラ予測モードの概略図2であり、図7に示すように、例えば、VVCで使用されるイントラモードは、Planarモード、DCモードおよび65種の角度モードを含む合計67種類の予測モードがある。図8は、イントラ予測モードの概略図3であり、図8に示すように、AVS3は、DCモード、Planarモード、Bilinearモードおよび63種の角度モードを含む合計66種の予測モードを使用する。
さらに、参照画素のサブ画素補間の改善や予測画素のフィルタリングなどの、予測を改善するためのいくつかの技術もある。例えば、AVS3における多重イントラ予測フィルタ(MIPF:multiple intra prediction filter)は、異なるブロックサイズに対して、異なるフィルタを使用して予測値を生成する。同じブロック内の異なる位置の画素の場合、参照画素に近い画素は、一方のフィルタを使用して予測値を生成し、参照画素に遠い画素は、他方のフィルタを使用して予測値を生成する。AVS3におけるイントラ予測フィルタ(IPF:intra prediction filter)など、予測画素をフィルタリングする技術では、参照画素を使用して予測値をフィルタリングすることができる。
イントラ予測では、最確モードリスト(MPM:Most probable Modes List)などのイントラモード符号化技術を用いて符号化・復号化効率を向上させることができる。周囲の符号化・復号化されたブロックのイントラ予測モードと、周囲の符号化・復号化されたブロックのイントラ予測モードに基づいて導出されたイントラ予測モード(隣接モードなどの)と、いくつかの一般的に使用されるイントラ予測モードまたは使用確率の高いイントラ予測モード(例えば、DC、Planar、Bilinearモードなど)とを使用して、1つのモードリストを構成する。テクスチャは空間的に一定の連続性を持つため、周囲の符号化・復号化されたブロックのイントラ予測モードに関しては、空間上の相関を利用する。MPMは、イントラ予測モードの予測として使用されることができる。つまり、現在ブロックがMPMを使用する確率は、MPMを使用しない確率より高いと考えられる。したがって、二値化の際に、MPMのためにより少ないコードワードが使用され、それにより、オーバーヘッドが節約され、符号化・復号化効率を向上させることができる。
AVS3のテキストでは、predIntraPredMode0、predIntraPredMode1などの、変数predIntraPredMode(予測モードの予測値)を用いてMPMを表す。本願では、predIntraPredMode予測モードの予測値をMPMの別名として用いてもよいし、MPMに関する本願発明の内容は、predIntraPredModeにも適用できると考えられる。
AVS3におけるpredIntraPredMode0およびpredIntraPredMode1の構築方法は、以下の通りである。
以下のステップに従って、現在の予測ブロックの予測モードpredIntraPredModeの予測値を計算する:
左側の予測ブロックAが「存在」しかつ通常のイントラ予測ブロックである場合、AのIntraLumaPredModeをintraPredModeAに割り当て、そうでない場合、intraPredModeAは0に等しい。
上方の予測ブロックBが「存在」しかつ通常のイントラ予測ブロックである場合、BのIntraLumaPredModeをintraPredModeBに割り当て、そうでない場合、intraPredModeBは0に等しい。
intraPredModeAがintraPredModeBと等しくない場合、predIntraPredMode0は、Min(intraPredModeA,intraPredModeB)に等しく、predIntraPredMode1は、MaxintraPredModeA,intraPredModeB)に等しく、それ以外の場合:
intraPredModeAが0に等しい場合、predIntraPredMode0は、0と等しく、predIntraPredMode1は2に等しく、
intraPredModeAが0に等しくない場合、predIntraPredMode0は0に等しく、predIntraPredMode1は、intraPredModeAに等しく、
ここで、0は、DCモードを表し、2は、Bilinearモードを表す。
既存のイントラ予測には、DCモード、Planarモード、Bilinearモードなどが含まれるが、これらはいずれも単純なテクスチャの予測しか処理できず、角度モードがますます増えても、角度モードの予測は、1つの角度を持つ直線に沿ってのみ行うことができる。したがって、既存のイントラ予測モードは、単純なテクスチャの予測しか処理できない。複雑なテクスチャの場合、予測するとき、より小さなブロックに分割する必要があるか、より多くの残差が符号化されるか、またはより大きな歪みが発生する。
以上の問題を鑑み、本願の実施例では、エンコーダ・デコーダは、2つの異なるイントラ予測モードによって現在ブロックの2つの異なる予測ブロックを決定することができ、そして、様々な重み行列を用いて予測ブロックを結合することにより、最終的により複雑な予測ブロックを得ることができ、これにより、予測の精度を向上させることができ、さらに、エンコーダ・デコーダは、重み行列と予測モードとの相関性を用いてMPMリストを構築することもでき、これにより、複雑さを大幅に低減することができる。つまり、本願で提案されるイントラ予測方法により、イントラ予測の品質を向上させながら複雑さを低減することができ、これにより、圧縮性能を向上させることができる。
図9は、本願実施例によるビデオ符号化システムの構成のブロック図の一例を示しており、図9に示すように、当該ビデオ符号化システム10は、変換と量子化ユニット101、イントラ推定ユニット102、イントラ予測ユニット103、動き補償ユニット104、動き推定ユニット105、逆変換と逆量子化ユニット106、フィルタ制御分析ユニット107、フィルタリングユニット108、符号化ユニット109および復号化画像バッファユニット110などを含み、ここで、フィルタリングユニット108は、デブロッキングフィルタリングおよびサンプル適応オフセット(SAO:Sample Adaptive 0ffset)フィルタリングを実現することができ、符号化ユニット109は、ヘッダ情報符号化およびコンテキストベース適応型バイナリ算術符号化(CABAC:Context-based Adaptive Binary Arithmatic Coding)を実現することができる。入力された元のビデオ信号に対して、符号化ツリーユニット(CTU:Coding Tree Unit)の分割によって、1つのビデオ符号化ブロックを得ることができ、そして、イントラ予測またはインター予測により得られた残差画素情報について、変換と量子化ユニット101により当該ビデオ符号化ブロックを変換し、これは、残差情報を画素領域から変換領域に変換し、得られた変換係数を量子化することを含み、これにより、ビットレートをさらに低下させることができる。イントラ推定ユニット102とイントラ予測ユニット103は、当該ビデオ符号化ブロックに対してイントラ予測を実行するように構成され、具体的には、イントラ推定ユニット102とイントラ予測ユニット103は、当該ビデオ符号化ブロックを符号化するために使用されるイントラ予測モードを決定するように構成され、動き補償ユニット104と動き推定ユニット105は、1つまたは複数の参照フレーム内の1つまたは複数のブロックに対する受信したビデオ符号化ブロックのインター予測符号化を実行して、時間予測情報を提供するように構成され、動き推定ユニット105によって実行される動き推定は、動きベクトルを生成するプロセスであり、前記動きベクトルは、当該ビデオ符号化ブロックの動きを推定することができ、そして、動き補償ユニット104は、動き推定ユニット105によって決定された動きベクトルに基づいて動き補償を実行し、イントラ予測モードが決定された後、イントラ予測ユニット103はさらに、選択されたイントラ予測データを符号化ユニット109に提供するように構成され、動き推定ユニット105も、計算によって決定をされた動きベクトルデータを符号化ユニット109に送信する。さらに、逆変換と逆量子化ユニット106は、当該ビデオ符号化ブロックを再構成するように構成され、残差ブロックは、画素領域で再構成され、当該再構成された残差ブロックは、フィルタ制御分析ユニット107とフィルタリングユニット108によりブロッキングアーチファクトが除去され、そして、当該再構成された残差ブロックを復号化画像バッファユニット110のフレーム内の1つの予測ブロックに追加して、再構成されたビデオ符号化ブロックを生成する。符号化ユニット109は、様々な符号化パラメータおよび量子化された変換係数を符号化するように構成され、CABACベースの符号化アルゴリズムにおいて、コンテキストコンテンツは、隣接する符号化ブロックに基づくことができ、決定されたイントラ予測モードを指示する情報を符号化し、当該ビデオ信号のビットストリームを出力するために使用されることができ、復号化画像バッファユニット110は、予測参照のために使用される再構成されたビデオ符号化ブロックを格納するように構成される。ビデオ画像の符号化が進行するにつれて、新たに再構成されたビデオ符号化ブロックが継続的に生成され、これらの再構成されたビデオ符号化ブロックはすべて、復号化画像バッファユニット110に格納される。
図10は、本願実施例によるビデオ復号化システムの構成のブロック図の一例を示しており、図10に示すように、当該ビデオ復号化システム20は、復号化ユニット201、逆変換と逆量子化ユニット202、イントラ予測ユニット203、動き補償ユニット204、フィルタリングユニット205および復号化画像バッファユニット206などを含み、ここで、復号化ユニット201は、ヘッダ情報復号化およびCABAC復号化を実現することができ、フィルタリングユニット205は、デブロッキングフィルタリングおよびSAOフィルタリングを実現することができる。入力されたビデオ信号に対して図9の符号化処理が実行された後、当該ビデオ信号のビットストリームが出力され、当該ビットストリームは、ビデオ復号化システム20に入力され、まず、復号化ユニット201の処理により、復号化された変換係数を取得し、当該変換係数は、逆変換と逆量子化ユニット202によって処理され、画素領域に残差ブロックが生成される。イントラ予測ユニット203は、決定されたイントラ予測モードと、現在フレームまたはピクチャからの以前の復号化ブロックのデータに基づいて、現在のビデオ復号化ブロックの予測データを生成するように構成され、動き補償ユニット204は、動きベクトルおよび他の関連する構文要素を解析することにより、ビデオ復号化ブロックの予測情報を決定し、当該予測情報を使用して、復号化中のビデオ復号化ブロックの予測ブロックを生成するように構成され、逆変換と逆量子化ユニット202からの残差ブロックと、イントラ予測ユニット203または動き補償ユニット204によって生成された対応する予測ブロックとを加算することにより、復号化されたビデオブロックを形成し、当該復号化されたビデオ信号は、フィルタリングユニット205によって、ブロッキングアーチファクトが除去され、ビデオ品質を改善することができ、そして、復号化されたビデオブロックを復号化画像バッファユニット206に記憶し、復号化画像バッファユニット206は、後続のイントラ予測または動き補償のための参照画像を記憶し、復元された元のビデオ信号を得るためにビデオ信号を出力するように構成される。
本願実施例におけるイントラ予測方法は、主に、図9に示すイントラ予測ユニット103および図10に示すイントラ予測ユニット203に適用される。つまり、本願実施例におけるイントラ予測方法は、ビデオ符号化システムに適用されてもよいし、ビデオ復号化システムに適用されてもよいし、さらに、ビデオ符号化システムとビデオ復号化システムの両方に同時に適用されてもよいが、本願実施例はこれに限定されない。さらになお、当該イントラ予測方法がイントラ予測ユニット103に適用される場合、「現在ブロック」は、具体的には、イントラ予測における現在符号化ブロックを指し、当該イントラ予測方法がイントラ予測ユニット203に適用される場合、「現在ブロック」は、具体的には、イントラ予測における現在復号化ブロックを指す。
以下、本願実施例における図面を参照して、本願実施例における技術的解決策を明確且つ完全に説明する。
本願の一実施例は、エンコーダに適用されるイントラ予測方法を提供し、図11は、イントラ予測方法の実現プロセスの概略図1であり、図11に示すように、エンコーダによって実行されるイントラ予測方法は、以下のステップを含み得る。
ステップ101において、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、現在ブロックの重み行列導出モードを決定する。
本願実施例では、エンコーダは、まず、現在ブロックのイントラ予測モードパラメータを決定することができる。
なお、本願の実施において、イントラ予測モードパラメータは、現在ブロックが空間角加重予測(SAWP:Spatial Angular Weighted Prediction)符号化モードを使用できるか否かを指示することができ、つまり、現在ブロックが予測処理を実行するために、2つの異なる予測モードを使用できるか否かを指示する。
理解できるように、本願実施例では、イントラ予測モードパラメータは、SAWPモードが使用されるか否かを示すフラグとして理解することができる。具体的には、エンコーダは、1つの変数をイントラ予測モードパラメータとして使用することができ、当該変数の値を設定することにより、イントラ予測モードパラメータの設定を実現することができる。
例示的に、本願において、現在ブロックがSAWPモードを使用する場合、エンコーダは、現在ブロックがSAWPモードを使用することを指示するようにイントラ予測モードパラメータの値を設定することができ、具体的には、エンコーダは、変数の値を1に設定することができる。
例示的に、本願において、現在ブロックがSAWPモードを使用しない場合、エンコーダは、現在ブロックがSAWPモードを使用しないことを指示するようにイントラ予測モードパラメータの値を設定することができ、具体的には、エンコーダは、変数の値を0に設定することができる。
さらに、本願実施例では、エンコーダは、イントラ予測モードパラメータの設定を完了した後、イントラ予測モードパラメータをビットストリームに書き込んでデコーダに伝送することができ、それにより、デコーダは、ビットストリームを解析した後、イントラ予測モードパラメータを得ることができる。
つまり、本願実施例では、エンコーダ側で、現在ブロックに対して予測符号化が実行され、このプロセスで、現在ブロックのイントラ予測モードパラメータが決定され、対応するイントラ予測モードパラメータがビットストリームに書き込まれて、エンコーダによってデコーダに伝送される。
なお、本願実施例では、SAWPモードは、イントラ予測方法の1つであり、具体的には、SAWPモードによれば、現在ブロックに対して2つの異なるイントラ予測モードを決定し、その後、この2つの異なるイントラ予測モードに基づいて、2つの予測ブロックをそれぞれ決定し、次に、1つの重み行列を決定し、重み行列に従って2つの予測ブロックを結合することにより、最終的に新しい予測ブロックを得ることができ、つまり、現在ブロックの予測ブロックを得ることができる。
図12は、SAWPモードの概略図であり、図12に示すように、現在ブロックに対してイントラ予測を実行する場合、第1イントラ予測モードを用いて現在ブロックの第1予測ブロックを決定しながら、第2イントラ予測モードを用いて現在ブロックの第2予測ブロックを決定することができ、そして、重み行列を用いて第1予測ブロックと第2予測ブロックに対して結合処理を実行し、最後に、1つの新しい予測ブロックを得ることができる。
なお、本願実施例では、ビデオ画像は、複数の画像ブロックに分割されることができ、現在ブロックは、現在符号化される各画像ブロックであり、符号化ブロック(CB:Coding Block)とも呼ばれる。ここで、各符号化ブロックは、第1画像成分、第2画像成分および第3画像成分を含み得る。具体的には、本願において、第1イントラ予測が行われ、第1画像成分が輝度成分であり、即ち、予測待ち画像成分が輝度成分であると仮定すると、予測待ち符号化ブロックを輝度ブロックと呼ぶことができ、または、第2イントラ予測が行われ、第2画像成分が色成分であり、即ち、予測待ち画像成分が色成分であると仮定すると、予測待ち符号化ブロック称を色ブロックと呼ぶことができる。
さらに、本願実施例では、SAWPモードが適用される場合、現在ブロックの寸法を制限することができる。
理解できるように、本願実施例で提案されるイントラ予測方法は、2つの異なるイントラ予測モードをそれぞれ用いて2つの予測ブロックを生成し、次に、重み行列に従って重み付けを実行して新しい予測ブロックを得る必要があり、したがって、複雑さを低減し、圧縮性能と複雑さのバランスをとるために、本願実施例では、特定のサイズの予測ブロックが当該SAWPモードを使用しないように制限することができる。したがって、本願において、エンコーダは、まず、現在ブロックの寸法パラメータを決定し、次に、寸法パラメータに基づいて、現在ブロックがSAWPモードを使用するか否かを決定することができる。
なお、本願実施例では、現在ブロックの寸法パラメータは、現在ブロックの高さと幅を含み得、よって、エンコーダは、現在ブロックの高さと幅を利用して、SAWPモードの使用を制限することができ、即ち、SAWPモードを使用できる予測ブロックの寸法を制限することができる。
例示的に、本願において、幅が第1閾値より大きく、高さが第2閾値より大きい場合、現在ブロックがSAWPモードを使用すると決定する。これから分かるように、1つの可能な制限方式は、予測ブロックの幅が第1閾値TH1より大きく(または以上である)、且つ予測ブロックの高さが第2閾値より大きい(または以上である)場合にのみSAWPモードを使用することである。ここで、第1閾値TH1と第2閾値の値は、8、16、32などであってもよく、第1閾値は、第2閾値と等しくてもよい。
例示的に、本願において、幅が第3閾値より小さく、高さが第4閾値より大きい場合、現在ブロックがSAWPモードを使用すると決定する。これから分かるように、1つの可能な制限方式は、予測ブロックの幅が第3閾値より小さく(または以下である)、且つ予測ブロックの高さが第4閾値より大きい(または以上である)場合にのみSAWPモードを使用することである。ここで、第3閾値と第4閾値の値は、8、16、32などであってもよく、第3閾値は、第4閾値と等しくてもよい。
別の例では、本願において、幅が第3閾値より小さく、高さが第4閾値より小さい場合、現在ブロックがSAWPモードを使用すると決定する。これから分かるように、1つの可能な制限方式は、予測ブロックの幅が第3閾値より小さく(または以下である)、且つ予測ブロックの高さが第4閾値より小さい(または以下である)場合にのみSAWPモードを使用することである。ここで、第3閾値と第4閾値の値は、8、16、32などであってもよく、第3閾値は、第4閾値と等しくてもよい。
上記の例について、予測ブロックの幅が8以上であり、且つ予測ブロックの高さが8以上であり、予測ブロックの幅が32以下であり、予測ブロックの高さが32以下である場合を例として説明すると、対応する実現プロセスは次の通りである:
If(SawpEnableFlag&& IntraCuFlag&&width>=SawpMinSize&& height>=SawpMinSize&& width<=SawpMaxSize&& height<=SawpMaxSize){
sawp_flag
}
if (DtEnableFlag && IntraCuFlag&&!SawpFlag) {
dt_split_flag
}
ここで、SawpMinSizeは8に等しく、SawpMaxSizeは32に等しい。
さらに、予測ブロックの幅が8以上であり、且つ予測ブロックの高さが8以上であり、予測ブロックの幅が16以下であり、予測ブロックの高さが16以下である場合を例として説明すると、対応する実現プロセスは次の通りである:
If(SawpEnableFlag&& IntraCuFlag&&width>=SawpMinSize&& height>=SawpMinSize&& width<=SawpMaxSize&& height<=SawpMaxSize){
sawp_flag
}
if (DtEnableFlag && IntraCuFlag&&!SawpFlag) {
dt_split_flag
}
ここで、SawpMinSizeは8に等しく、SawpMaxSizeは16に等しい。
さらに、本願実施例では、画素パラメータを制限することにより、SAWPモードを使用できる予測ブロックの寸法を制限することもできる。
例示的に、本願において、エンコーダは、まず、現在ブロックの画素パラメータを決定し、次に、画素パラメータおよび第5閾値に基づいて、現在ブロックがSAWPモードを使用できるか否かを判断することができる。これから分かるように、1つの可能な制限方式は、予測ブロックの画素数が第5閾値より大きい(または以上である)場合にのみSAWPモードを使用することである。ここで、第5閾値の値は、8、16、32などであってもよい。
つまり、本願において、現在ブロックの寸法パラメータがサイズ要件を満たす場合にのみ、現在ブロックは、SAWPモードを使用することができる。
なお、本願の実施例では、エンコーダが現在ブロックに対してイントラ予測を実行するとき、本願で提案されたSAWPモード以外にも、使用可能なイントラ予測モードは、直流(DC:Direct Current)モード、平面(PLANAR)モード、および角度モードの任意の1つのイントラ符号化モードなどを含む。
理解できるように、本願実施例では、エンコーダは、現在ブロックに対してイントラ予測を実行する前に、まず、予測モードパラメータを決定することができ、そして、予測モードパラメータに基づいて、現在ブロックの符号化モードが具体的にどの符号化モードであるかを決定することができる。
本願実施例では、さらに、エンコーダが現在ブロックの予測モードパラメータを決定するとき、まず、様々な異なる予測モードを利用して、それぞれ現在ブロックに対して予測符号化を実行し、そして、様々なの予測モードの各予測モードに対応するレート歪みコスト結果を計算することができ、最後に、計算によって得られた複数のレート歪みコスト結果から最小レート歪みコスト結果を選択し、最小レート歪みコスト結果に対応する予測モードを現在ブロックの予測モードパラメータとして決定することができる。
つまり、エンコーダ側では、現在ブロックに対して、様々な予測モードを用いて予測待ち画像成分をそれぞれ符号化することができる。
さらに、本願実施例では、エンコーダが様々な予測モードを用いて現在ブロックをそれぞれ符号化した後、各予測モードに対応するレート歪みコスト結果を得ることができ、そして、得られた複数のレート歪みコスト結果から最小レート歪みコスト結果を選択し、当該最小レート歪みコスト結果に対応する予測モードを現在ブロックの予測モードパラメータとして決定し、このようにして、最後に、決定された予測モードを用いて現在ブロックを符号化することができ、この予測モードより、予測残差を小さくすることができ、符号化・復号化効率を向上させることができる。
本願実施例では、さらに、符号化側では、エンコーダがある予測ブロックに対してイントラ予測を試行するとき、SAWPモードに従って符号化するコストも試行する。SAWPモードに従って符号化するコストを試行する場合、すべてまたは一部の可能なケースのコストを試行し、そして、コストが最も小さい1つをSAWPモード符号化のコストとして選択する。
なお、本願実施例では、上記のすべての可能なケースには、現在ブロックの第1イントラ予測モードがすべての可能な予測モードであり、現在ブロックの第2イントラ予測モードがすべての可能な予測モードであり、重み行列導出モードがすべての可能なモードであるという3つの変化の組み合わせが含まれる。すべての利用可能なイントラ予測モードが66種存在すると仮定すると、考えられる第1イントラ予測モードは66個あり、第2イントラ予測モードが第1イントラ予測モードと異なるため、第2イントラ予測モードは65種類存在し、(AWPを例として)重み行列導出モードが56種存在すると仮定すると、本願では、任意の2つの異なるイントラ予測モードおよび任意の1つの重み行列導出モードを使用することができ、合計66×65×56の可能性がある。PCMのようなイントラ予測モードを使用しないと設定した場合、65×64×56の可能性がある。これから分かるように、本願において、選択可能なイントラ予測モードを制限したり、使用可能な重み行列導出モードの数を制限したりすることができ、それに応じて、可能な組み合わせも低減する。
例えば、第1イントラ予測モードの選択可能なイントラ予測モードを制限し、および/または、第2イントラ予測モードの選択可能なイントラ予測モードを制限する。ここで、イントラ予測モードの選択を制限することは、選択可能なイントラ予測モードを減らすことであり、および/または使用可能な重み行列導出モードを制限することにより、本願において、任意の2つの異なるイントラ予測モードおよび任意の1つの重み行列導出モードを使用する可能性を減らすことができ、それにより、対応するフラグのビット数を減少させることができる。
さらに、本願実施例では、エンコーダは、SAWPモードのすべての可能なケースに対してレート歪み最適化(RDO:Rate-Distortion Optimization)を実行して、コストが最も小さい1つの組み合わせを決定することができ、ここで、各組み合わせは、第1イントラ予測モードと、第2イントラ予測モードと、重み行列導出モードとを含む組み合わせである。
任意選択的に、RDOの消費時間を短縮するために、まず、上記のSAWPモードのすべての可能なケースに対して初期選択を実行することができ、例えば、SADやSATDなどを近似コストとして初期選択を実行して、候補第1イントラ予測モードと、第2イントラ予測モードと、重み行列導出モードとの設定数の組み合わせを決定し、RDO精選を実行して、第1イントラ予測モードと、第2イントラ予測モードと、重み行列導出モードとのコストが最も小さい組み合わせを決定する。それにより、初期選択時にいくつかの高速アルゴリズムを使用して試行回数を減らすことができ、例えば、あるイントラ角度予測モードが大きなコストを引き起こす場合、当該イントラ角度予測モードに隣接するいくつかのイントラ予測モードの試行は行われない。
理解できるように、本願では、上記の初期選択および精選において、コストは、ビットストリームにおける第1イントラ予測モード、第2イントラ予測モード、および重み行列導出モードのオーバーヘッドの符号化のコストを含み得る。あるいは、初期選択のとき、ビットストリームにおける第1イントラ予測モード、第2イントラ予測モード、および重み行列導出モードのオーバーヘッドの推定のコストを使用してもよい。例えば、第1イントラ予測モードまたは第2イントラ予測モードがMPMであるか否かに応じてそのビット数を推定するか、またはイントラ予測モードの順序に基づいて、第1または第2イントラ予測モードのビット数を推定する。RDO中に、比較的に正確な試行符号化によってそのコストを得ることができる。当該プロセスでは、本願のモードリストの構築方法またはイントラ予測モードの並べ替え方法を用いる必要がある。
理解できるように、本願において、上記の初期選択および精選の時、第1イントラ予測モードに基づいて第1予測ブロックを決定し、第2イントラ予測モードに基づいて第2予測ブロックを決定し、重み行列導出モードに基づいて重み行列を導出し、第1予測ブロック、第2予測ブロックおよび重み行列に基づいて本願の予測ブロックを決定する。SADおよびSATDの初期選択中に、現在ブロックと予測ブロックを用いてSADとSATDを決定する。
さらに、本願実施例では、エンコーダはまず、現在ブロックのテクスチャを分析することができ、例えば、勾配を用いて分析することができ、分析したデータを利用して初期選択を支援する。例えば、上記の初期選択中、現在ブロックのテクスチャが強い方向に近似する方向でのイントラ予測モードは、試行のために選択される可能性が高い。例えば、上記の初期選択中、現在ブロックのテクスチャが弱い方向に近似する方向でのイントラ予測モードは、試行のために選択される可能性が低いか、選択されない。
なお、本願において、SAWPモードによる符号化のコストは、ビットストリームにおける第1イントラ予測モード、第2イントラ予測モード、重み行列導出モードによって占有されるコードワードのコスト、予測残差の変換、量子化、エントロピ符号化などのためにビットストリームで伝送される様々なフラグおよび量子化係数のコスト、および再構成ブロックの歪みのコストなどを含む。
SAWPモードによる符号化のコストが決定された後、SAWPモードによる符号化のコストが他の予測モードのコストより小さい場合(他の予測モードは、他のイントラ予測モードまたはインター予測モードなどを含み得る)、エンコーダは、SAWPモードを現在ブロックの予測モードとして選択し、それ以外の場合、他の予測モードを選択する。
さらに、本願の実施例では、エンコーダは、異なるブロック分割の符号化コストなどを試行する。ある予測ブロックが最終的にSAWPモードを選択した場合、SAWPモードが必要とするフラグビットおよび第1イントラ予測モード、第2イントラ予測モード、重み行列導出モードの情報をシンタックス(syntax)に従ってビットストリームに書き込み、同時に、この予測ブロックに対して、SAWPモードの方法に従って予測および後続の符号化動作を実行する。
本願実施例では、エンコーダが現在ブロックのイントラ予測モードパラメータを決定した後、イントラ予測モードパラメータが、現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、エンコーダは、現在ブロックの重み行列導出モードをさらに決定することができる。
なお、本願では、重み行列導出モードは、現在ブロックによって使用される重み行列を決定するために使用される。具体的には、重み行列導出モードは、重み行列を導出するモードであってもよい。所定の長さと幅を有する予測ブロックの場合、各重み行列導出モードは、1つの重み行列を導出することができ、同じサイズの予測ブロックの場合、異なる重み行列導出モードによって導出される重み行列は異なる。
例示的に、本願において、AVS3のAWPは、56種の重み行列導出モードを有し、VVCのGPMは、64種の重み行列導出モードを有する。
ステップ102において、重み行列導出モードに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、重み行列導出モードに基づいて、現在ブロックの重み行列を決定する。
本願実施例では、イントラ予測モードパラメータが、現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、エンコーダは、現在ブロックの重み行列導出モードを決定した後、まず、重み行列導出モードに基づいて現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することができ、同時に、重み行列導出モードに基づいて現在ブロックの重み行列を決定することができる。
なお、本願実施例では、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードは、現在の一般的な任意の1つのイントラ予測モードであってもよく、DC、Planar、Bilinearおよび角度予測モードなどのイントラ予測モードを含むが、これらに限定されない。
任意選択的に、本願において、より広い理解として、イントラ予測モードは、参照画素のサブ画素補間の改善や、MIPFやIPFなどの予測画素のフィルタリングなど、予測を改善するための技術を更に含む。
それに対応して、本願において、DCモード、Planarモード、Bilinearモードおよび角度予測モードなどのイントラ予測モードを基本イントラ予測モードと呼び、MIPFやIPFなどの予測を改善するための技術を改善イントラ予測モードと呼ぶことができる。基本イントラ予測モードは、他のイントラ予測モードに依存せずに独立して予測ブロックを生成することができるイントラ予測モードであり、つまり、参照画素と基本イントラ予測モードを決定することで、予測ブロックを決定することができる。これに対し、改善イントラ予測モードは、独立して予測ブロックを生成できず、基本イントラ予測モードに依存して予測ブロックを決定する必要がある。例えば、ある角度予測モードは、参照画素に基づいて予測ブロックを決定および生成することができ、MIPFは、この角度予測モードに基づいて、異なる位置の画素に対して異なるフィルタを使用して予測ブロックを生成または決定することができる。
例示的に、本願において、第1イントラ予測モードと第2イントラ予測モードは、両方とも基本イントラ予測モードであってもよく、つまり、本願実施例では、2つの異なる基本イントラ予測モードを使用する。この場合、改善イントラ予測モードは、第1イントラ予測モードおよび第2イントラ予測モードとそれぞれ組み合わされて、第1予測ブロックと第2予測ブロックを生成することができる。さらに、本願実施例において「新しい予測ブロック」が生成された後、当該「新しい予測ブロック」を改善することにより、更新された予測ブロックを得ることができる。
例示的に、本願において、第1イントラ予測モードと第2イントラ予測モードは、基本イントラ予測モードと改善イントラ予測モードの組み合わせであってもよく、つまり、本願実施例では、2つの異なるイントラ予測モードの組み合わせを使用する。例えば、第1イントラ予測モードと第2イントラ予測モードは両方とも同じ角度予測モードを使用するが、第1イントラ予測モードは、IPFなどのような改善イントラ予測モードを使用せず、第2イントラ予測モードは、IPFなどのような改善イントラ予測モードを使用する。または、第1イントラ予測モードと第2イントラ予測モードは両方とも同じ角度予測モードを使用するが、第1イントラ予測モードは、ある改善イントラ予測モードの一方のオプションを使用し、第2イントラ予測モードは、当該改善イントラ予測モードの他のオプションを使用する。「新しい予測ブロック」が得られた後、改善イントラ予測モードがまだ存在し得、これにより、「新しい予測ブロック」を改善して更新された予測ブロックを得ることができる。
これから分かるように、本願実施例で提案されるイントラ予測方法は、第1イントラ予測モードと第2イントラ予測モードに基づいて、現在ブロックに対して完全に同一ではない2つの予測ブロックを決定し、1つの重み行列を決定し、重み行列に従って2つの予測ブロックを結合して新しい予測ブロックを得ることができる。
さらに、本願実施例では、すべての可能な重み行列において、各重み行列のすべての点の重みが同じであるわけではない。言い換えれば、少なくとも1つの可能な重み行列は、少なくとも2つの異なる重み値を含む。
任意選択的に、本願において、すべての可能な重み行列は、少なくとも2つの異なる重み値を含む。
任意選択的に、本願において、一部の重み行列は、少なくとも2つの異なる重み値を含み、例えば、本願において、最小重み値が0であり、最大重み値が8である場合、重み値が0である点と、重み値が8であるある点を含む重み行列が存在する。それに対応して、一部の重み行列には、同じ重み値のみが含まれ、例えば、本願において、すべての点の重み値が4である重み行列が存在する。
任意選択的に、本願において、1つの重み行列には、2種の重みしか存在しなく、一方の重みは、対応する点の予測値が、完全に第1予測ブロックに対応する点の値から得られることを示し、もう一方の重みは、対応する点の予測値が、完全に第2予測ブロックに対応する点の値から得られることを示す。例えば、本願において、1つの重み行列には、2種の重みしか存在しなく、それぞれ0と1である。
任意選択的に、本願において、1つの重み行列には、複数種の重みが存在する可能性があり、ここで、最大値と最小値(例えば、0)はそれぞれ、対応する点の予測値が、完全に第1予測ブロックに対応する点の値または第2予測ブロックに対応する点の値から得られることを示す。最大値でも最小値でもない重み値は、対応する点の予測値が第1予測ブロックと第2予測ブロックに対応する点の値の加重平均から得られることを示す。この最大の重み値または最小の重み値からなる領域は、ブレンド領域(blending area)とも呼ばれる。
なお、本願において、重み行列に2種の重みしか存在しない場合、重みが変化する位置は1つの直線を形成し、または重み行列に複数種の重みが存在する場合、ブレンド領域における同じ重みを持つ位置は1つの直線(直線セグメント)を形成する。ここで、当該直線は、すべて水平および垂直である場合もあれば、すべて水平および垂直ではない場合もある。
任意選択的に、本願において、重み行列に2種の重みしか存在しない場合、重みが変化する位置は1つの曲線(曲線セグメント)を形成し、または重み行列に複数種の重みが存在する場合、ブレンド領域における同じ重みを持つ位置は1つの曲線(曲線セグメント)を形成する。
さらに、本願実施例では、エンコーダは、GPMまたはAWPと類似する方法を用いて重み行列を決定することができる。具体的には、同じ符号化・復号化規格またはエンコーダ・デコーダにおいて、GPMまたはAWPを使用した場合、この方法を用いて重み行列を決定することができ、これにより、一部の同じロジックを多重化することができる。例えば、AVS3のインター予測でAWPを使用する場合、AVS3において、AWPの方法を用いて重み行列を決定することができる。もちろん、同じ符号化・復号化規格またはエンコーダ・デコーダにおけるGPMまたはAWPとは異なる方法を使用してもよく、例えば、異なるモード番号、または異なるブレンド領域アルゴリズムを使用するか、または異なるパラメータを使用することができる。インター予測では、時間領域上の相関性を利用するため、参照フレームにおける再構成された画像を参照ブロックとして使用する。一方、イントラ予測では、空間領域上の相関性を利用するため、現在ブロックの周囲の再構成された画素を参照画素として使用する。空間領域での距離が近いほど、相関性は強くなり、距離が遠いほど、相関性が低くなる。よって、ある重み行列によって、1つの予測ブロックで使用する画素位置がすべて参照画素から遠くなる場合、この部分は、先行技術よりも適切な予測値を作成できない可能性があるため、このような重み行列はイントラ予測では使用されず、インター予測で使用されることができる。
なお、本願の実施例では、2つのイントラ予測モードを使用する必要があり、一方、他の一般的なイントラ予測方法では、通常、1つのイントラ予測モードのみを使用すればよい。よって、本願実施例で使用されるイントラ予測モードの符号化方法は、他の一般的なイントラ予測方法のイントラ予測モードの符号化方法と異なっていてもよく、それに対応して、本願実施例で使用されるMPM構築方法も、他の一般的なイントラ予測方法のMPM構築方法と異なっていてもよい。
さらに、本願の実施例では、本願実施例で提供されるイントラ予測方法は、ビットストリームで重み行列導出モードに関する情報および2つのイントラ予測モードに関する情報を伝送する必要があるため、重み行列導出モードの場合、AVS3のAWPを例にとると、56種のモードがあり、二値化には5~6ビットが必要である。イントラ予測モードの場合、AVS3を例にとると、66種のモードがあり、2つのMPMが使用される。イントラ予測モードがMPMである場合、二値化には2ビットが必要であり、それ以外の場合、二値化には7ビットが必要である。つまり、AVS3では、上記の情報は、最大20(6+7+7)ビットのオーバーヘッドを必要とする。
上記情報の二値化オーバーヘッドを低減し、符号化性能を向上させるために、本願の実施例では、エンコーダは、現在ブロックのイントラ予測モードと重み行列との相関性を用いて上記情報を決定することができる。具体的には、現在ブロックによって使用されるイントラ予測モードと重み行列との間には、一定の相関性があり、この相関性を利用することにより、エンコーダは、イントラ予測モードを符号化する際に、重み行列の情報を利用することができ、さらに、エンコーダは、イントラ予測モードを符号化する際に、重み行列導出モードに関する情報を利用することができる。
さらに、本願実施例では、重み行列が2種の重みを含む場合、重みが変化する位置は1つの直線を形成し、または、重み行列が複数種の重みを含む場合、ブレンド領域における同じ重みを持つ位置は1つの直線を形成し、この直線を境界線と呼ぶことができる。境界線自体が角度を持っており、右方向への角度を0とし、反時計回りに角度が増加するように設定することができる。すると、境界線は、水平0度、垂直90度、45度や135度などの傾斜角度、および他の様々な異なる角度を持つことができる。1つの予測ブロックがある重み行列を使用することを選択した場合、対応するテクスチャは、境界線の両側で異なる特性を有する可能性があり、例えば、境界線の両側は2つの異なる角度のテクスチャであるか、または、境界線の一方の側は、ある角度のテクスチャであり、他方の側は、比較的に平坦なテクスチャである。境界線自体が角度を持っているため、境界線は1点に対してイントラ角度予測することによって得られると仮定することができ、それは、現在ブロックのいくつかのテクスチャに近い可能性があるため、この直線と、現在ブロックの2つのイントラ予測モードとの間に相関性がある。
具体的には、本願において、イントラ角度予測により1点から境界線が得られると仮定すると、少なくとも1つのイントラ角度予測モードを探し出すことができ、このイントラ角度予測モードにより境界線を近似的に作成することができる。例えば、水平方向の境界線は、水平イントラ予測モード(AVS3におけるモード24など)にマッチングし、垂直方向の境界線は、垂直イントラ予測モード(AVS3におけるモード12など)にマッチングし、45度の境界線は、左下から右上への45度のイントラ予測モード(AVS3におけるモード30など)にマッチングしてもよいし、右上から左下への225度のイントラ予測モード(AVS3におけるモード6など)にマッチングしてもよい。1つの重み行列に1つの重み値しかない場合、DC、Planar、Bilinearなどの明らかな角度がないモードにマッチングすることができる。これから分かるように、重み行列導出モードは、特定のイントラ予測モードにマッチングすることができるため、重み行列導出モードを用いてイントラ予測モードの符号化を支援することができる。
なお、本願において、重み行列導出モードは、重み行列のインデックスであってもよく、例えば、AWPの56種のモードは、56種の重み行列導出モードと見なすことができる。
例示的に、本願において、マッピング関係テーブルを構築することにより、重み行列導出モードとイントラ角度予測モードとの間のマッピング関係をさらに表すことができる。具体的には、AWPおよびGPMの複数のモードの境界線は、同じ角度を持っており、例えば、AVS3のAWPの境界線の角度は、8モードごとに同じである。56種のAWPモードは、合計7種の境界線角度を有する。境界線角度のインデックスは、重み行列導出モードのモード番号モジュロ8(%8)から得られることができる。例えば、表1は、マッピング関係テーブルであり、AVS3の角度モードを例にとると、境界線角度のインデックス0と1はそれぞれ、2つのイントラ角度予測モードに対応することができ、その1つは、右上隅から左下隅へのイントラ角度予測モードであり、もう1つは、左上隅から右下隅へのイントラ角度予測モードである。具体的な実施では、他の境界線角度のインデックスについても、ほぼ対応する他のイントラ角度予測モードを探し出すか、またはすべての境界線角度のインデックスが1つのイントラ角度予測モードに対応してもよい。
さらに、本願において、一般に、現在ブロックの左側と上側の参照画素を用いてイントラ予測を実行し、空間における画素間の距離が近いほど、相関性が強くなり、空間における距離が遠いほど、相関性が弱くなる。したがって、現在ブロックの一部の画素のみが1つのイントラ予測モードの予測によって得られる場合、この部分の画素の位置は、この部分に使用されるイントラ予測モードの確率に影響を与える。つまり、上記の境界線の位置と角度は、境界線の両側の2つのイントラ予測モードの選択に影響を与える。図13は、イントラ予測の概略図3であり、図13に示すように、現在ブロックの領域1部分は、予測値が第1イントラ予測モードからのものであることを示し、現在ブロックの領域2部分は、すべての予測値が第2イントラ予測モードからのものであることを示し、領域1と領域2との間のブレンド領域は、2つのイントラ予測モードの予測値を重み付けすることによって得られる。領域1について、右上部の参照画素が領域1に最も近いため、右上から左下までの1つの扇形の角度領域内のイントラ予測モード(例えば、太い矢印)は、このような空間相関性をよりうまく利用でき、使用される確率が高い。一方、領域1は左上隅の参照画素から遠く離れているため、左上から右下までの1つの扇形の角度領域内のイントラ予測モード(例えば、細い矢印)は、このような空間相関性をうまく利用できず、使用される確率が低い。
本願実施例では、さらに、エンコーダは、重み行列導出モードに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定するとき、まず、重み行列導出モードを用いてモードリスト(MPM)を決定することができ、そして、モードリストに基づいて、第1イントラ予測モードと第2イントラ予測モードをさらに決定することができる。
具体的には、本願実施例では、重み行列との相関性を用いて第1イントラ予測モードと第2イントラ予測モードを決定するとき、重み行列導出モードを用いてモードリストを構築することができ、または、MPMを構築するときに重み行列導出モードの情報を用いることができる。ここで、重み行列導出モードは、少なくとも1つのイントラ予測モードに対応することができるため、エンコーダは、現在ブロックに対して決定された重み行列導出モードに対応するイントラ予測モードをモードリストに追加するか、または重み行列導出モードに対応するイントラ予測モードに関連するいくつかのイントラ予測モードをモードリストに追加することができる。
さらに、本願実施例では、エンコーダは、重み行列導出モードを用いてモードリストを決定するとき、まず、現在ブロックの隣接ブロックに対応するイントラ予測モードを決定し、そして、隣接ブロックに対応するイントラ予測モードを追加待ちモードとして決定することができ、追加待ちモードが所定の追加条件を満たすと決定した後、エンコーダは、追加待ちモードをモードリストに追加し、つまり、現在ブロックの隣接ブロックに対応するイントラ予測モードをモードリストに追加することができ、次に、モードリストが所定のリスト長さを満たさない場合、エンコーダは引き続き、重み行列導出モードに対応する相関イントラ予測モードを決定し、そして、重み行列導出モードに対応する相関イントラ予測モードを追加待ちモードとして決定することができ、追加待ちモードが所定の追加条件を満たすと決定した場合、当該追加待ちモードをモードリストに追加し、つまり、重み行列導出モードに対応する相関イントラ予測モードをモードリストに追加する。
なお、本願実施例では、エンコーダは、隣接ブロックに対応するイントラ予測モードをモードリストに追加するとき、まず、隣接ブロックに対応するシーケンスパラメータを決定し、その後、シーケンスパラメータに基づいて、隣接ブロックに対応するイントラ予測モードをモードリストに順次に追加することができる。ここで、エンコーダは、隣接ブロックと現在ブロックとの間の空間的距離に基づいて、対応するシーケンスパラメータを決定することができ、例えば、隣接ブロックと現在ブロックとの間の空間的距離が近いほど、隣接ブロックと現在ブロックとの間の相関性が強くなり、追加処理がより先に実行され、即ち、シーケンスパラメータが小さくなり、隣接ブロックと現在ブロックとの間の空間的距離が遠いほど、隣接ブロックと現在ブロックとの間の相関性が弱くなり、追加処理がより後で実行され、即ち、シーケンスパラメータが大きくなる。
さらに、本願実施例では、エンコーダは、重み行列導出モードに対応する相関イントラ予測モードを決定するとき、まず、重み行列導出モードに対応するイントラ予測モードを決定することができ、その後、重み行列導出モードに対応するイントラ予測モードに基づいて、第1インデックス間隔に従って、相関イントラ予測モードを決定することができる。
例示的に、本願実施例では、エンコーダは、重み行列導出モードに対応するイントラ予測モードに関連するいくつかのイントラ予測モードを決定するとき、第1インデックス間隔に従って、当該重み行列導出モードに対応するイントラ予測モードのインデックス番号と1つまたは複数の第1インデックス間隔だけ異なるモードを選択することができ、例えば、インデックス番号が1異なるモード、または、インデックス番号が2異なるモードを選択することができる。例えば、重み行列導出モードに対応するイントラ予測モードのインデックスが10であり、第1インデックス間隔が2であると仮定すると、インデックスが8と12である2つのイントラ予測モードを、重み行列導出モードに対応するイントラ予測モードに関連する2つの相関イントラ予測モードとして決定することができる。
なお、本願実施例では、エンコーダが現在ブロックの隣接ブロックに対応するイントラ予測モードをモードリストに追加した後、または、エンコーダが重み行列導出モードに対応する相関イントラ予測モードをモードリストに追加した後、モードリストが所定のリスト長さを満たさない場合、即ち、モードリストが完全に充填されていない場合、エンコーダは、所定の予測モードを追加待ちモードとして決定し続けることができ、そして、追加待ちモードが所定の追加条件を満たすと決定した後、追加待ちモードをモードリストに追加し、つまり、所定の予測モードをモードリストに追加する。
理解できるように、本願において、所定の予測モードは、DCモード、Bilinearモード、Planarモードなどの様々な異なるモードのうちの1つまたは複数を含み得る。
さらに、本願実施例では、エンコーダが、現在ブロックの隣接ブロックに対応するイントラ予測モード、重み行列導出モードに対応する相関イントラ予測モード、所定の予測モードをモードリストにそれぞれ追加した後、モードリストが依然として所定のリスト長さを満たさない場合、つまり、モードリストが依然として完全に充填されていない場合、エンコーダは、関連付けイントラ予測モードを決定するためにモードリスト内の予測モードを使用することを選択することができ、そして、関連付けイントラ予測モードを追加待ちモードとして決定し、追加待ちモードが所定の追加条件を満たすと決定した場合、追加待ちモードをモードリストに追加し、つまり、モードリストに対応する関連付けイントラ予測モードをモードリストに追加する。
つまり、本願において、現在ブロックの隣接ブロックに対応するイントラ予測モード、重み行列導出モードに対応する相関イントラ予測モードおよび所定の予測モードをモードリストに順次追加した後、モードリストが依然として完全に充填されていない場合、エンコーダは、モードリスト内の既存の予測モードに基づいて、対応する関連付けイントラ予測モードを決定し、その後、これらの関連付けイントラ予測モードをモードリストに追加することができる。
例示的に、本願において、エンコーダは、モードリスト内の任意の予測モードに基づいて、第2インデックス間隔に従って、当該任意の予測モードに関連する関連付けイントラ予測モードを順次決定することができる。ここで、エンコーダは、第2インデックス間隔に従って、当該任意の予測モードのインデックス番号と1つまたは複数の第2インデックス間隔だけ異なるモードを選択することができ、例えば、インデックス番号が1異なるモード、または、インデックス番号が2異なるモードを選択することができる。
なお、本願実施例では、現在ブロックの隣接ブロックに対応するイントラ予測モードを追加待ちモードとするか、重み行列導出モードに対応する相関イントラ予測モードを追加待ちモードとするか、または所定の予測モードを追加待ちモードとするか、または関連付けイントラ予測モードを追加待ちモードとするかにも関わらず、エンコーダは、追加待ちモードが所定の追加条件を満たすか否かを判定する必要があり、具体的には、追加待ちモードが存在し、且つ追加待ちモードが、モードリスト内のすべての予測モードと異なる場合、追加待ちモードが所定の追加条件を満たすと決定することができ、当該追加待ちモードをモードリストに追加することができる。
それに対応して、追加待ちモードが存在せず、または追加待ちモードが、モードリスト内の1つの予測モードと同じである(重複する)場合、追加待ちモードが所定の追加条件を満たさないと決定することができ、この場合、当該追加待ちモードをモードリストに追加することができず、当該追加待ちモードを直接破棄する。
理解できるように、本願において、現在ブロックは、2つのイントラ予測モードを用いてイントラ予測処理を実行する必要があるため、MPMを構築する際に、より多くの位置のイントラ予測モードを参照するか、またはより多くの隣接ブロックのイントラ予測モードを参照することができる。それに対応して、本願において、現在ブロックによって使用されるモードリストの長さは、他のイントラ予測モードのモードリスト長さと異なってもよく、二値化時のMPMのコードワードが他のモードより短いため、2つのイントラ予測モードがそれぞれMPMである確率を高めることは、符号化・復号化効率を向上させるのに役立つ。
例示的に、本願実施例では、現在ブロックによって使用されるモードリストの長さが4であると仮定すると、エンコーダは、重み行列導出モードを用いてモードリストを決定するとき、具体的には、以下のステップを実行することができる。
ステップ201において、隣接ブロックのイントラ予測モードをモードリストに追加する。
本願実施例では、エンコーダは、まず、現在ブロックの隣接ブロックに対応するイントラ予測モードを決定し、その後、隣接ブロックに対応するイントラ予測モードをモードリストに順次追加することができる。
図14は、隣接ブロックの概略図であり、図14に示すように、現在ブロックがEである場合、エンコーダは、モードリストが完全に充填されるまで、隣接ブロックF、G、C、A、B、Dによって使用されるイントラ予測モードをモードリストに順次に追加することができる。F、G、C、A、B、Dのうちのある隣接ブロックの位置が利用不可能であるかイントラ予測モードを使用していない場合、この位置をスキップする。
理解できるように、本願において、複雑さが許せば、もっと右およびもっと下に位置するブロックのイントラ予測モードを使用することができる。
ステップ202において、モードリストが完全に充填されているか否かを判断し、完全に充填されていない場合、ステップ203を実行し、そうでない場合、ステップ208を実行する。
ステップ203において、重み行列導出モードに対応する相関イントラ予測モードをモードリストに追加する。
本願実施例では、隣接ブロックのイントラ予測モードをモードリストに追加した後、モードリストが完全に充填されていない場合、つまり、モードリストの長さが4より小さい場合、エンコーダは、モードリストが完全に充填されるまで、重み行列導出モードに対応するイントラ予測モードをモードリストに追加し続けることができる。
なお、本願において、エンコーダは、重み行列導出モードに対応するイントラ予測モードのみをモードリストに追加することを選択してもよいし、重み行列導出モードに対応するイントラ予測モードおよび対応する相関イントラ予測モードをモードリストに追加することを選択してもよい。
ステップ204において、モードリストが完全に充填されているか否かを判断し、完全に充填されていない場合、ステップ204を実行し、そうでない場合、ステップ208を実行する。
ステップ205において、所定の予測モードをモードリストに追加する。
本願実施例では、重み行列導出モードに対応する相関イントラ予測モードをモードリストに追加した後、モードリストが完全に充填されていない場合、つまり、モードリストの長さが4より小さい場合、エンコーダは、モードリストが完全に充填されるまで、所定の予測モードをモードリストに追加し続けることができる。
ここで、所定の予測モードは、DCモード、Bilinearモード、Planarモードなどの様々な異なるモードのうちの1つまたは複数を含み得る。
ステップ206において、モードリストが完全に充填されているか否かを判断し、完全に充填されていない場合、ステップ207を実行し、そうでない場合、ステップ208を実行する。
ステップ207において、モードリストに対応する関連付けイントラ予測モードをモードリストに追加する。
本願実施例では、所定の予測モードをモードリストに追加した後、モードリストが完全に充填されていない場合、つまり、モードリストの長さが4より小さい場合、エンコーダは、モードリストに対応する関連付けイントラ予測モードを決定し、その後、当該関連付けイントラ予測モードをモードリストに順次追加することができる。
具体的には、モードリストが完全に充填されていない場合、モードリストが完全に充填されるまで、MPMの最初のイントラ予測モードから始めて、当該最初のイントラ予測モードのインデックス番号と1、-1、2、-2、3、-3だけ異なるイントラ予測モードをMPMに追加することができる。当該最初のイントラ予測モードのインデックス番号と1、-1、2、-2、3、-3だけ異なるイントラ予測モードのうちのあるイントラ予測モードが不正で、0未満または最大値より大きい場合、当該不正であるイントラ予測モードを破棄する。
ステップ208において、モードリストを導出する。
なお、本願実施例では、モードリストの構築中に、各入れ待ちイントラ予測モード(追加待ちモード)は、モードリスト内の既存のイントラ予測モードと異なることが保証される場合に限り、モードリストに追加されることができ、そうでない場合、破棄される。
つまり、本願において、現在ブロックの第1イントラ予測モードが第2イントラ予測モードと異なることを保証するために、エンコーダは、モードリストの構築中に、モードリストに毎回追加されるイントラ予測モードが、モードリスト内の既存のイントラ予測モードと重複しないことを保証しなければならない。
さらに、本願実施例では、エンコーダは、重み行列導出モードを用いてモードリストを決定するとき、まず、重み行列導出モードに対応するリスト構築策略を決定することができ、その後、リスト構築策略に基づいて、モードリストをさらに決定することができる。
つまり、本願において、異なる重み行列、即ち、異なる重み行列導出モードについて、エンコーダは、異なる構築策略を用いてモードリストを構築することができる。例えば、構築策略に基づいて、重み行列の境界線が0度または90度である場合、つまり、水平または垂直である場合、エンコーダは、モードリストを構築するとき、重み行列に対応するイントラ予測モードを考慮に入れることを選択することができ、他の場合では、重み行列に対応するイントラ予測モードを考慮しない。
例示的に、本願において、重み行列の境界線が0度であると仮定すると、例えば、AWPのモード2やモード10(0から数えて)などのモードでは、モードリストを構築するとき、水平イントラ予測モード24をモードリストの候補に追加することができ、重み行列の境界線が90度であると仮定すると、例えば、AWPのモード6やモード14(0から数えて)などのモードでは、モードリストを構築するとき、垂直イントラ予測モード12をモードリストの候補に追加することができる。
理解できるように、本願において、重み行列の境界線が0度に近い範囲で、水平イントラ予測モード、または水平イントラ予測モードとその類似のイントラ予測モードを、モードリストの候補に追加してもよく、重み行列の境界線が90度に近い範囲内で、垂直イントラ予測モード、または水平イントラ予測モードとその類似のイントラ予測モードを、モードリストの候補に追加してもよい。
理解できるように、本願において、現在ブロックのイントラ予測に使用される2つのイントラ予測モードは異なり、つまり、第1イントラ予測モードと第2イントラ予測モードは異なり、すると、第2イントラ予測モードの復号化ときに、第1イントラ予測モードの可能性を排除することができる。つまり、第2イントラ予測モードの復号化に第1イントラ予測モードの情報を使用することができる。
本願実施例では、さらに、エンコーダは、モードリストの構築中に、候補イントラ予測モードを設定することもできる。ここで、候補イントラ予測モードは、モードリスト内のすべてのイントラ予測モードと異なる。
具体的には、本願において、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なるようにするために、第2イントラ予測モードの決定は、第1イントラ予測モードに依存してもよい。ここで、エンコーダは、モードリストに基づいて、第1イントラ予測モードと第2イントラ予測モードを決定するとき、まず、モードリスト内の1つの予測モードを第1イントラ予測モードとして決定することができ、そして、第1イントラ予測モードおよびモードリストに基づいて、第2イントラ予測モードを決定する。
さらに、本願実施例では、エンコーダは、モードリスト内の1つの予測モードを第1イントラ予測モードとして決定した後、モードリストから当該予測モードを削除し、そして、候補イントラ予測モードをモードリストに追加することができ、それにより、更新されたモードリストを取得することができ、その後、前記更新されたモードリストから1つの予測モードを選択して前記第2イントラ予測モードとして決定することができ、ここで、選択方式は、任意であってもよい。
つまり、本願実施例では、第1イントラ予測モードが1つのMPMを選択した場合、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なるようにするために、第2イントラ予測モードの選択可能なMPMは1つ減り、第1イントラ予測モードと第2イントラ予測モードの選択可能なモードリストの長さを変更しないようにするために、エンコーダは、第1イントラ予測モードを決定した後、1つのMPMを追加することができ、例えば、事前に設定された候補イントラ予測モードをモードリストに追加することができ、それにより、第2イントラ予測モードを決定するときに、依然として第1イントラ予測モードと同じ数のMPMを使用することができる。
例示的に、本願において、第1イントラ予測モードと第2イントラ予測モードの選択可能なMPMの数がN個であると仮定すると、モードリストを構築する際に、まず、N個のMPMと1つの候補のMPMを構築することができ、第1イントラ予測モードの選択可能なMPMは、上記のN個のMPMである。第1イントラ予測モードが、そのうちの1つのMPMを選択した場合、第2イントラ予測モードに対して、第1イントラ予測モードによって選択されたMPMを削除し、そして、第2イントラ予測モードが依然としてN個のMPMから選択できるように、候補のMPMをモードリストに追加する。
本願実施例では、さらに、エンコーダは、モードリストの構築中に、モードリストの長さパラメータを(N+1)(Nは正の整数である)に設定することができる。
具体的には、本願において、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なるようにするために、第2イントラ予測モードの決定は、第1イントラ予測モードに依存してもよい。ここで、エンコーダは、モードリストに基づいて、第1イントラ予測モードと第2イントラ予測モードを決定するとき、モードリストを用いて第1イントラ予測モードを決定する場合、モードリスト内の最初のN個の予測モードのうちの1つを第1イントラ予測モードとして決定することができ、そして、第1イントラ予測モードおよびモードリストに基づいて、第2イントラ予測モードを決定する。
さらに、本願実施例では、モードリストを用いて第1イントラ予測モードを決定する場合、エンコーダは、モードリスト内の最初のN個の予測モードのうちの1つを第1イントラ予測モードとして決定した後、モードリスト内の第1イントラ予測モード以外の他のN個の予測モードを用いて第2イントラ予測モードを決定する。
なお、本願実施例では、エンコーダは、モードリストに基づいて、第1イントラ予測モードと第2イントラ予測モードを決定するとき、モードリストが第1イントラ予測モードの決定に使用されない場合、エンコーダは、モードリスト内の最初のN個の予測モードのうちの1つを第2イントラ予測モードとして直接決定することができる。
つまり、本願実施例では、イントラ予測モードの選択可能なMPMの数がN個であると仮定すると、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なるようにするために、モードリストを構築するとき、(N+1)個のMPMを構築することができ、第1イントラ予測モードの場合、その選択可能なMPMは、モードリスト内の最初のN個のMPMである。第1イントラ予測モードに対してMPMが選択されない場合、第2イントラ予測モードの選択可能なMPMは、モードリスト内の最初のN個のMPMである。第1イントラ予測モードに対してMPMが選択された場合、第2イントラ予測モードの選択可能なMPMは、モードリスト内の第1イントラ予測モード以外のN個のMPMである。
例示的に、本願において、Nが4であると仮定すると、エンコーダは、5つのMPMを含むモードリストを構築することができる。MPM[x]は、(x+1)番目のMPMを表し、つまり、MPM[0]は、最初のMPMを表し、これは、配列のカウントが0から始めるためである。第1イントラ予測モードは、mode0であり、第2イントラ予測モードは、mode1である。第1イントラ予測モードと第2イントラ予測モードが両方ともMPMであり、選択可能なMPMにおける第1イントラ予測モードのインデックス番号がidx0であり、選択可能なMPMにおける第2イントラ予測モードのインデックス番号がidx1であると仮定すると、
mode0=MPM[idx0]
mode1=MPM[idx1<idx0?idx1:idx1+1]
つまり、idx1<idx0である場合、mode1=MPM[idx1]であり、
それ以外の場合、mode1=MPM[idx1+1]である。
これから分かるように、idx0とidx1の値の範囲は、どちらも0~3であり、mode1の値は、idx1だけでなくidx0にも関係する。
任意選択的に、本願実施例では、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なることだけを保証し、第1イントラ予測モードと第2イントラ予測モードの選択可能なMPMの数を制限しない場合、エンコーダは、候補イントラ予測モードの設定を実行しないか、モードリスト長さを増加させる処理を実行しなくてもよく、この場合、エンコーダは、第2イントラ予測モードの符号化方法を変更する必要がある。つまり、第1イントラ予測モードがモードリスト内の1つのMPMを選択した後、第2イントラ予測モードの選択可能なMPMは1つ減り、この場合、第2イントラ予測モードの選択可能なMPMが少なくなったため、第2イントラ予測モードの符号化方法を変更する必要がある。
例示的に、本願において、MPMの数Nが4であり、最初のビットを使用して、MPMであるか否かを示す(例えば、「1」は、MPMであることを示し、「0」は、MPMでないことを示す)ことを例にとると、第1イントラ予測モードがMPMである場合、4つのMPMがあるため、2ビットを使用して、どのMPMであるかを示し、即ち、「00、01、10、11」はそれぞれ、最初のMPM、2番目のMPM、3番目のMPM、4番目のMPMを表す。また、第1イントラ予測モードと第2イントラ予測モードが両方ともMPMである場合、第2イントラ予測モードが利用可能なMPMは3つしかなく、1~2ビットを使用して、どのMPMであるかを示すことができ、例えば、「00、01、10」はそれぞれ、残りの最初のMPM、2番目のMPM、3番目のMPMを表す。これから分かるように、1つの可能性が除外されるため、符号化方式または二値化方式を変更することにより、オーバーヘッドを節約することができる。
例示的に、本願において、Nが4であると仮定すると、4つのMPMを含むモードリストを構築することができる。MPM[x]は、(x+1)番目のMPMを表し、つまり、MPM[0]は、最初のMPMを表し、これは、配列のカウントが0から始めるためである。第1イントラ予測モードは、mode0であり、第2イントラ予測モードは、mode1である。第1イントラ予測モードと第2イントラ予測モードが両方ともMPMであり、選択可能なMPMにおける第1イントラ予測モードのインデックス番号がidx0であり、選択可能なMPMにおける第2イントラ予測モードのインデックス番号がidx1であると仮定すると、
mode0=MPM[idx0]
mode1=MPM[idx1<idx0?idx1:idx1+1]
つまり、idx1<idx0である場合、mode1=MPM[idx1]であり、
それ以外の場合、mode1=MPM[idx1+1]である。
これから分かるように、idx0の値の範囲は0~3であり、idx1の値の範囲は0~2であり、mode1の値は、idx1だけでなくidx0にも関係する。idx0は、2ビットを使用して二値化することができ、idx1は、1~2ビットを使用して二値化することができる。
本願実施例では、さらに、エンコーダは、重み行列導出モードに基づいて現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定するとき、さらに、現在ブロックの隣接ブロックに対応するイントラ予測モード、重み行列導出モードに対応する相関イントラ予測モード、所定の予測モードに対して順次に並べ替え処理を実行することができ、それにより、予測モードの候補リストを取得することができ、ここで、所定の予測モードは、DCモード、Bilinearモード、Planarモードなどの様々な予測モードのうちの1つまたは複数を含み、次に、エンコーダは、予測モードの候補リストに基づいて第1イントラ予測モードと第2イントラ予測モードを決定することができる。
具体的には、本願実施例では、重み行列との相関性を利用して第1イントラ予測モードと第2イントラ予測モードを決定するとき、さらに、重み行列導出モードに対応するイントラ予測モードまたは重み行列導出モードに対応するイントラ予測モードに関連するいくつかのイントラ予測モードは、二値化ときに通常のイントラ予測モードより短いコードワードが割り当てられるか、または、イントラ予測モードにおける可能な最長コードワードより短いコードワードが割り当てられることができ、つまり、これらのコードワードは、最長ではない。よって、重み行列導出モードに対応するイントラ予測モードまたは重み行列導出モードに対応するイントラ予測モードに関連するいくつかのイントラ予測モードは、他のモードよりも選択される確率がと高いと見なすことができる。
つまり、本願実施例では、第1イントラ予測モードおよび第2イントラ予測モードは、MPMを使用しなくてもよく、エンコーダは、第1イントラ予測モードおよび第2イントラ予測モードによって使用され得るすべてのイントラ予測モードに対して並べ替え処理を実行することによって、予測モードの候補リストを生成することができ、さらに、二値化のとき、可変長符号化を使用し、予測モードの候補リスト内の上位のイントラ予測モードには、より短いコードワードが割り当てられ、予測モードの候補リスト内の下位のイントラ予測モードには、より長いコードワードが割り当てられる。ここで、並べ替え処理とき、現在ブロックの隣接ブロックのイントラ予測モードを参照してもよいし、現在ブロックの重み行列導出モードを参照してもよい。
例示的に、本願実施例では、エンコーダは、重み行列導出モードに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定する方法は、以下のステップを含み得る。
ステップ301において、隣接ブロックのイントラ予測モードを候補リストに追加する。
本願実施例では、エンコーダは、まず、現在ブロックの隣接ブロックに対応するイントラ予測モードを決定し、その後、隣接ブロックに対応するイントラ予測モードを並べ替え、並べ替え後イントラ予測モードを候補リストに順次追加することができる。
現在ブロックがEである場合、エンコーダは、F、G、C、A、B、Dの順に、隣接ブロックF、G、C、A、B、Dによって使用されるイントラ予測モードを候補リストに追加することができる。F、G、C、A、B、Dのうちのある隣接ブロックの位置が利用不可能であるかイントラ予測モードを使用していない場合、この位置をスキップする。
理解できるように、本願において、複雑さが許せば、もっと右およびもっと下に位置するブロックのイントラ予測モードを使用することができる。
ステップ302において、重み行列導出モードに対応する相関イントラ予測モードを候補リストに追加する。
本願実施例では、隣接ブロックのイントラ予測モードを候補リストに追加した後、エンコーダは、重み行列導出モードに対応するイントラ予測モードを候補リストに追加し続けてもよい。
なお、本願において、エンコーダは、重み行列導出モードに対応するイントラ予測モードのみを候補リストに追加することを選択してもよいし、重み行列導出モードに対応するイントラ予測モードおよび対応する相関イントラ予測モードを候補リストに追加することを選択してもよい。
ステップ303において、所定の予測モードを候補リストに追加する。
本願実施例では、重み行列導出モードに対応する相関イントラ予測モードを候補リストに追加した後、エンコーダは、所定の予測モードを候補リストに追加し続けることができる。
ここで、所定の予測モードは、DCモード、Bilinearモード、Planarモードなどの様々な異なるモードのうちの1つまたは複数を含み得る。
ステップ304において、候補リストに対応する関連付けイントラ予測モードを候補リストに追加する。
本願実施例では、所定の予測モードを候補リストに追加した後、エンコーダは、候補リストに対応する関連付けイントラ予測モードを決定し、その後、当該関連付けイントラ予測モードを候補リストに順次追加することができる。
具体的には、エンコーダは、候補リスト内の最初のイントラ予測モードから始めて、当該最初のイントラ予測モードのインデックス番号と1、-1、2、-2、3、-3だけ異なるイントラ予測モードを候補リストに追加することができる。当該最初のイントラ予測モードのインデックス番号と1、-1、2、-2、3、-3だけ異なるイントラ予測モードのうちのあるイントラ予測モードが不正で、0未満または最大値より大きい場合、当該不正であるイントラ予測モードを破棄する。
ステップ305において、候補リスト以外のイントラ予測モードを候補リストに追加する。
本願実施例では、エンコーダは、予測モードのインデックス0から始めて、終了するまで、並べ替えられてないイントラ予測モードを候補リストに追加する。
これから分かるように、重み行列の境界線の角度や位置などが異なるため、イントラ予測モードの確率は異なり、第1イントラ予測モードと第2イントラ予測モードの確率は異なる。例えば、上記図面の例において、第1イントラ予測モード(白いブロックに対応する)は、左上から右下への角度モードよりも右上から左下への角度モードの確率が高く、第2イントラ予測モード(黒いブロックに対応する)は、右上から左下への角度モードの確率が、左上から右下への角度モードより高くない。したがって、各重み行列導出モードに対応する第1イントラ予測モードと第2イントラ予測モードに対して、それぞれの確率特徴に基づいてそれぞれ並べ替えを実行することができる。
さらに、本願実施例では、エンコーダは、重み行列導出モードに基づいて現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定するとき、さらに、重み行列導出モードに対応する第1イントラ予測モードの参照セットを確立し、同時に重み行列導出モードに対応する第2イントラ予測モードの参照セットを確立することができ、そして、第1イントラ予測モードの参照セットに基づいて第1イントラ予測モードを決定し、同時に第2イントラ予測モードの参照セットに基づいて第2イントラ予測モードを決定することができる。
つまり、本願実施例では、現在ブロックの重み行列導出モードに対して、エンコーダは、当該重み行列導出モードに対応する第1イントラ予測モードのすべての可能なイントラ予測モードに対して並べ替え処理を実行して、第1イントラ予測モードの参照セットを生成することができ、同時に、当該重み行列導出モードに対応する第2イントラ予測モードのすべての可能なイントラ予測モードに対して並べ替え処理を実行して、第2イントラ予測モードの参照セットを生成することができ、それにより、第1イントラ予測モードの参照セットから第1イントラ予測モードを決定することができ、第2イントラ予測モードの参照セットから第1イントラ予測モードを決定することができる。
例示的に、本願において、エンコーダは、1つのマッピングテーブルを事前設定して、各重み行列導出モードと、第1イントラ予測モードおよび第2イントラ予測モードとの間のマッピング関係を決定することができ、表2に示すように、1つの重み行列導出モードについて、表2に基づいて、この重み行列導出モードに対応する第1イントラ予測モードの可能なすべてのイントラ予測モードの順序と、この重み行列導出モードに対応する第2イントラ予測モードの可能なすべてのイントラ予測モードの順序を決定することができる。
さらに、本願実施例では、複雑さを低減するために、エンコーダは、クラスタリング手法によって上記の表2のようなルックアップテーブルを絞り込むことができ、例えば、重み行列導出モードに対して分類処理を実行して、重み行列導出モードに対応するタイプを決定することができ、同じタイプの重み行列導出モードの場合、対応する第1イントラ予測モードの可能なすべてのイントラ予測モードの順序は同じであり、さらに、対応する第2イントラ予測モードの可能なすべてのイントラ予測モードの順序は同じである。
さらに、本願実施例では、複雑さを低減するために、エンコーダは、クラスタリング手法によって上記の表2のようなルックアップテーブルを絞り込むことができ、例えば、イントラ予測モードに対して分類処理を実行して、イントラ予測モードに対応するタイプを決定することができ、例えば、DC、Planar、Bilinearなどの非角度モードが1つのタイプに属し、角度モードは、いくつかの弧度の範囲に従って分類処理を実行することができ、例えば、45度ごと、即ち1/4円が1つのタイプに属するか、または22.5度ごと、即ち1/8円が1つのタイプに属する。具体的には、角度モードをいくつかの不等間隔に分割することもできる。
図15は、クラスタリングの概略図であり、図15に示すように、すべての角度モードを9つの領域に分けることができる。各領域内の並べ替えは、モード番号の順番に従って並べ替えるか、または領域の中心から両側に向かって並べ替えることができる。
理解できるように、本願において、AVS3における角度モードの角度は連続的ではなく、前のモード3~32は、広い弧度範囲をカバーしているが比較的に疎らであり、次のモード34~65は比較的に細かいので、分類の時、この特性を利用してモード33の前後のモードを異なるカテゴリに分類することができる。
本願実施例では、さらに、本願で提案されるイントラ予測方法は、現在ブロックの予測値を決定するために2つの異なるイントラ予測モードと1つの重み行列を使用する必要があるため、本願では、オーバーヘッドを削減するために、エンコーダは、現在ブロックの2つのイントラ予測モードを制限することによりビット数を減らすことができ、同時に、エンコーダは、現在ブロックの重み行列導出モードを制限することによりビット数を減らすこともできる。
例示的に、本願において、AVS3の最初の33個の予測モードが角度範囲全体をほぼカバーしているため、AVS3では、最初の33種類の予測モードのみを使用することで良好な性能を保証することができ、符号化中に、EIPMを使用しないように調整すればよい。さらに、エンコーダは、現在ブロックによって使用される可能性のあるイントラ予測モードの数をさらに圧縮および制限して、最終的に、5ビットのみを用いて符号化が実行されるようにすることもでき、それにより、オーバーヘッドをさらに削減し、より良い性能を達成することができる。
任意選択的に、本願において、エンコーダは、現在ブロックによって使用される可能性のあるイントラ予測モードの数を減らすことにより、2つのイントラ予測モードを符号化するオーバーヘッドを削減することができる。例えば、AVS3では、66種のイントラ予測モードが使用される場合、1つのイントラ予測モードを符号化するのに最大7ビットが必要であり、33種のイントラ予測モードのみが使用され且つPCMモードが使用されない場合、1つのイントラ予測モードを符号化するのに最大6ビットのみが必要である。
さらに、本願において、イントラ予測モードが通常、DC、Planar、Bilinearなどの非角度予測モードと、角度予測モードとを含むことを考慮すると、実現プロセスでは、各非角度モードが1セットのロジックを使用するか、すべての角度モードが1セットのロジックを使用するか、または角度モードが複数のセットのロジックを使用し、異なるロジック間では、多重化できる一部の回路もあれば、多重化できない一部の回路もある可能性がある。したがって、現在ブロックによって使用される可能性のあるイントラ予測モードの数を制限するために、角度予測モードのみを選択するか、非角度予測モードのみを選択するように制限することができる。
以下では、第2イントラ予測モードの使用可能なイントラ予測モードを制限することを例として説明する。なお、対応する制限は、第1イントラ予測モードの制限にも適用できる。
方式1:第2イントラ予測モードは、非角度予測モード内の指定された1つのイントラ予測モードしか使用できない。
例えば、第2イントラ予測モードは、DCモードしか使用できず、または、第2イントラ予測モードは、Bilinearモードしか使用できない。第2イントラ予測モードについては1つの可能な選択肢しかないため、本発明のブロックが符号化および復号化に使用される場合、第2イントラ予測モードを決定することなく、デフォルトで第2イントラ予測モードを導出して現在ブロックを予測することができ、符号化時に第2イントラ予測モードをビットストリームに書き込む必要がなく、復号化時にビットストリームから、第2イントラ予測モードが何であるかを解析する必要がない。
方式2:第2イントラ予測モードは、非角度モード、または非角度モード内の一部のモードしか使用できない。
例えば、第2イントラ予測モードは、DCモードとBilinearモードしか使用できず、第2イントラ予測モードにとって2つの可能な選択肢しかないため、1ビットのintra_luma_pred_mode1で、第2イントラ予測モードがDCモードであるかBilinearモードであるかを示すことができる。符号化のとき、第2イントラ予測モードについて、DCとBilinearの2つの可能性のみを試行する必要があり、第2イントラ予測モードがどのイントラ予測モードであるかを決定した後、intra_luma_pred_mode1を決定することができる。対応するブロックを復号化するプロセスでは、第2イントラ予測モードについて、1ビットのintra_luma_pred_mode1を解析して、DCであるかBilinearであるかを決定するだけで済む。
他の実施例では、第2イントラ予測モードは、非角度モードしか使用できず、つまり、第2イントラ予測モードにとって、3つの可能な選択肢しかなく、2ビットのintra_luma_pred_mode1で、第2イントラ予測モードがどのイントラ予測モードであるかを示すことができる。
方式3:第2イントラ予測モードは、すべての角度予測モードまたは一部の角度予測モードしか使用できない。
第2イントラ予測モードの選択可能なイントラ予測モードが減らすため、ビットストリームにおける第2イントラ予測モードを表すintra_luma_pred_mode1のビット数も減少する。AVS3において、第2イントラ予測モードがすべての角度モードしか使用できないことを例にとると、AVS3には、DC、Plane、Bilinearという3種の非角度モードがある。つまり、AVS3において、第2イントラ予測モードは、0、1、2以外の他のモードしか使用できない。
1つの特定の実施例において、第2イントラ予測モードは、非角度予測モード以外のすべてのイントラ予測モードを使用することができる(即ち、第2イントラ予測モードは、すべての角度予測モードを使用することができる)。
1つの特定の実施例において、第2イントラ予測モードは、すべての角度予測モードのうちの一部を使用することができる。ここで、一部の角度予測モードは、最初の33種の角度予測モードであってもよく、または、一部の角度予測モードは、所定の間隔に従って、33種の角度予測モードまたは65種の角度予測モードから選択された一部の角度予測モードであってもよく、例えば、当該所定の間隔は、1、2または他の正の整数であってもよい。
表3は、輝度予測ブロックのイントラ予測モードの一例を示し、ここで、モード番号IntraLumaPredModeは、対応するイントラ予測モードに対応する。0は、DCモードを表し、1は、Planeモードを表し、2は、Bilinearモードを表し、12は、垂直モードを表し、24は、水平モードを表し、33は、PCMモードを表し、その他は、水平モードと垂直モード以外の角度モードであり、具体的なモード番号が表す角度は、図7を参照することができる。
第2イントラ予測モードが、0、1、2以外の他のモードしか使用できないことを例として、第2イントラ予測モードの選択可能なMPMモードリストの構築プロセスについて説明する。
各イントラ予測モードが4つのMPMを使用できることを例にとると、長さが8であるモードリストを構築することができ、ここで、AVS3には、3つの非角度予測モードしかないため、非角度予測モードの数は3以下であるべきである。ここで、最初の4つのMPMは、第1イントラ予測モードの選択に使用できる。第2イントラ予測モードは、MPMリスト内の第1イントラ予測モード以外の非角度モードの最初の4つのMPMを選択することができる。
図16を例として説明すると、構築されたMPMモードリストが、図に示すとおりであると仮定すると、第1イントラ予測モードは、最初の4つのMPMのうちの1つを選択することができ、第1イントラ予測モードが12、即ち、MPMリスト内の最初のMPMを使用すると仮定すると、第2イントラ予測モードが選択可能なMPMは、前から後ろの順に照会され、最初のMPM(12)は、第1イントラ予測モードによって使用されているため、利用不可能である。2番目のMPM(24)は、使用されておらず、利用可能な角度モードであるため、第2イントラ予測モードの利用可能なモードとなり、3番目(0)、4番目(2)、5番目(1)に対応するMPMは、使用されていないが、非角度モードであるため、利用不可能である。6番目(6)、7番目(8)、8番目(10)のMPMは、使用されておらず、利用可能な角度モードであるため、第2イントラ予測モードの利用可能なモードとなり、したがって、24、6、8、10は、第2イントラ予測モードのMPMインデックスが0、1、2、3であるモードにそれぞれ対応する。
図14に示すブロックを例として、MPMリストを構築する例を示す。
MPMモードリストの第1部分リストの長さを8に設定する。
現在ブロックはEであり、MPMモードが完全に充填されるまで、隣接ブロックF、G、C、A、B、Dによって使用されるイントラ予測モードをMPMモードリストに順次に追加する。隣接ブロックF、G、C、A、B、Dのうちのある隣接ブロックの位置が利用不可能であるかイントラ予測モードを使用していない場合、この位置をスキップする。ここで、本願において、図14に示すブロックに対応するイントラ予測モードを使用することに加えて、他のブロックに対応するイントラ予測モードを使用することもでき、例えば、現在ブロックの右側または下側のブロックに対応するイントラ予測モードを使用することができる。
さらに、MPMモードリストが完全に充填されていない場合、MPMモードリストが完全に充填されるまで、重み行列導出モードに対応するイントラ予測モードをMPMモードリストに追加する。
MPMモードリストが完全に充填されていない場合、MPMモードリストが完全に充填されるまで、DCモード、Bilinearモードを順次にMPMモードリストに追加する。
MPMモードリストが完全に充填されていない場合、MPMモードリストが完全に充填されるまで、MPMモードリスト内の最初のイントラ予測モードから始めて、当該最初のイントラ予測モードのモード番号と1、-1、2、-2、3、-3だけ異なるイントラ予測モードをMPMモードリストに追加する。当該最初のイントラ予測モードのモード番号と1、-1、2、-2、3、-3だけ異なるイントラ予測モードのうちのあるイントラ予測モードが不正で、0未満または最大値より大きいか、またはPCMである場合、当該不正なイントラ予測モードを破棄する。
MPMモードリスト内の最初のイントラ予測モードのモード番号が2番目のイントラ予測モードのモード番号より大きい場合、この2つのMPMは交換される。
MPMモードリストに追加する動作中、各入れ待ちイントラ予測モードが、MPMモードリスト内の既存のすべてのイントラ予測モードと異なる場合にのみ、MPMモードリストに入れることができ、そうでない場合は破棄される。
第2イントラ予測モードの選択可能なイントラ予測モードを制限する上記のすべてのプロセスにおいて、導出または決定された第2イントラ予測モードが不正なモードである場合、所定の対応関係に応じて修正を行うことによって、第2イントラ予測モードを正当なモードに修正する必要がある。具体的には、第2イントラ予測モードが角度予測モードに限定される場合、得られた第2イントラ予測モードがモード0、1、2であると、不正なモードを回避する(即ち、利用不可能な非角度予測モードを制限する)ために、第2イントラ予測モードは、所定の対応関係に従って、1つまたはいくつかの利用可能な角度モードに対応する必要がある。例えば、第2イントラ予測モードの復号化によってモード0が得られた場合、所定の対応関係に従って、第2イントラ予測モードをモード12、即ち垂直モードに設定し、第2イントラ予測モードの復号化によってモード1が得られた場合、所定の対応関係に従って、第2イントラ予測モードをモード18、即ち、右下45度に向いた方向のモードに設定し、第2イントラ予測モードの復号化によってモード2が得られた場合、所定の対応関係に従って、第2イントラ予測モードをモード24、即ち、水平モードに設定する。
なお、本願実施例では、エンコーダは、イントラ予測モードの数を制限するとき、すべての予測ブロックのイントラ予測モードの数を直接制限することもできるし、現在ブロックの寸法パラメータを参照して、異なるサイズの現在ブロックに対して異なる制限方式を使用することもできる。
例示的に、本願において、64×64または32×32サイズの予測ブロックのような、寸法パラメータが大きい予測ブロックについて、エンコーダは、すべてのイントラ予測モードを用いて現在ブロックの2つのイントラ予測モードを決定することができ、8x8サイズの予測ブロックのような、寸法パラメータが小さい予測ブロックについて、エンコーダは、一部のイントラ予測モードを用いて現在ブロックの2つのイントラ予測モードを決定することができ、つまり、現在ブロックによって使用可能なイントラ予測モードの数を制限することができ、これは、寸法パラメータが小さい予測ブロックにとって、微小な角度差による影響が明らかではないためである。
理解できるように、本願では、まず、1つの寸法閾値、例えば、第2寸法閾値を設定することができ、現在ブロックの寸法パラメータが第2寸法閾値より小さい場合、微小な角度差は大きな影響を及ばないと見なすことができ、よって、現在ブロックによって選択可能なイントラ予測モードの数を制限することができる。具体的には、現在ブロックの2つのイントラ予測モードのインデックス番号を制限することにより、イントラ予測モードの数を制限することができる。
例示的に、本願において、現在ブロックの寸法パラメータが第2寸法閾値より小さい場合、エンコーダは、第2モードインデックス範囲に基づいて、第1イントラ予測モードと第2イントラ予測モードを決定することができ、ここで、第2モードインデックス範囲は、イントラ予測モードのインデックス番号を制限するために使用される。具体的には、第2モードインデックス範囲は、第2下限閾値および第2上限閾値を含み得、エンコーダは、まず、第1イントラ予測モードの第1インデックス番号を決定することができ、同時に、第2イントラ予測モードの第2インデックス番号を決定することができ、そして、第1インデックス番号と第2インデックス番号の両方を、第2下限閾値より大きく設定し、第1インデックス番号と第2インデックス番号の両方を、第2上限閾値より小さく設定する。
つまり、本願において、第2モードインデックス範囲によって、現在ブロックの第1イントラ予測モードのインデックス番号と第2イントラ予測モードのインデックス番号を制限することにより、イントラ予測モードの数の制限を完了することができる。
例えば、AVS3において、第2モードインデックス範囲は、0~32であってもよく、つまり、第2モードインデックス範囲によって、第1イントラ予測モードのインデックス番号と第2イントラ予測モードのインデックス番号を0~32の範囲に制限することができ、これにより、現在ブロックは、最初の33種の予測モードを用いて、第1イントラ予測モードと第2イントラ予測モードを決定することができる。
理解できるように、本願において、第1寸法閾値は、第2寸法閾値と同じであってもよいし異なってもよく、第1モードインデックス範囲は、第2モードインデックス範囲と同じであってもよいし異なってもよい。
さらに、第1イントラ予測モードおよび第2イントラ予測モードの選択可能なイントラ予測モードが制限されない場合、決定された2つのイントラ予測モードの予測能力は対応しており、対応する重み行列を処理する必要がない。しかし、選択可能なイントラ予測モードが制限された後は、2つのイントラ予測モードの予測能力が変更されるため、対応する重み行列も調整される必要がある。
具体的には、図2に示すAWP重み行列において、重み行列0(番号0)の右下隅の白い部分は、完全に第1イントラ予測モードから得られ、左上隅の黒い部分は、完全に第2イントラ予測モードから得られ、灰色の部分は、2つのイントラ予測モードを重み付けすることによって得られる。左上隅の予測にDCモードを使用し、右下隅の予測に水平モードを使用する必要がある場合、第1イントラ予測モードを水平モードに設定し、第2イントラ予測モードをDCモードに設定することができる。逆に、左上隅の予測に水平モードを使用し、右下隅の予測にDCモードを使用する必要がある場合、第1イントラ予測モードをDCモードに設定し、第2イントラ予測モードを水平モードに設定することができる。しかし、一方のイントラ予測モードが制限される場合、例えば、第2イントラ予測モードが角度モードしか使用できない場合、既存の方法によれば、AWP重み行列0の場合、第2イントラ予測モードがDCモードを使用できないため、左上隅の予測にDCモードを使用できない。一方のイントラ予測モードが制限される場合、例えば、第2イントラ予測モードがDCモードしか使用できない場合、既存の方法によれば、上記のAWP重み行列の黒い部分は、DCモードを用いた予測によってのみ得ることができる。つまり、第2イントラ予測モードの制限は、予測の効果に大きく影響する。
したがって、本願において、場合によっては、重み行列を調整する必要があり、つまり、第1イントラ予測モードに対応する重み行列と第2イントラ予測モードに対応する重み行列を交換する必要がある。
方式1:1つの重み行列交換フラグビットが追加され、このフラグビットは、2つの予測ブロックの重み行列を交換するか否かを指示する。
方式2:重み行列に基づいて、2つの予測ブロックの重みを交換するか否かを決定する。
具体的には、第1イントラ予測モードの選択可能なイントラ予測モードが制限されない場合、第1イントラ予測モードの選択可能なイントラ予測モードの数が多く、予測能力が強く、第2イントラ予測モードの選択可能なイントラ予測モードは制限されているため、選択肢が少なく、予測能力が弱く、この場合、重み行列に基づいて、重みを自動的に割り当てることができる。割り当て結果によれば、最終予測ブロックにおいて、第1イントラ予測モードの影響を受ける点が多く、第2イントラ予測モードの影響を受ける点が少ない。
方式3:第1イントラ予測モードおよび/または第2イントラ予測モードのモード番号に基づいて、2つの予測ブロックの重みを交換するか否かを決定する。
隣接する角度予測モードによって論理的に使用される予測角度の間には一定の差があるが、補間フィルタリングおよびブロックサイズの影響により、特に、比較的小さなブロックでは、隣接する角度予測モードによって作成される予測ブロックの差はあまり大きくない。したがって、2つの予測ブロックの重みを交換するか否かのロジックは、イントラ予測モードのモード番号に設定され、例えば、あるイントラ予測モード(第1イントラ予測モードまたは第2イントラ予測モード)が偶数の角度予測モードを使用することは、2つの予測ブロックの重みが交換されないことを示し、当該イントラ予測モードが奇数の角度予測モードを使用することは、2つの予測ブロックの重みを交換することを示す。
別の実施例において、第2イントラ予測モードがある非角度モードまたはいくつかの非角度モードしか使用できない場合、例えば、第2イントラ予測モードがDCモードしか使用できない場合、第1イントラ予測モードのモード番号の奇偶性に従って、2つの予測ブロックの重みを交換するか否かを判断することができる。第1イントラ予測モードのモード番号が偶数である場合、2つの予測ブロックの重みは交換されず、そうでない場合(第1イントラ予測モードのモード番号が奇数である場合)、2つの予測ブロックの重みが交換される。
任意選択的に、本願において、エンコーダは、現在ブロックによって使用可能な重み行列導出モードの数を減らすことにより、重み行列導出モードを符号化するためのオーバーヘッドを削減することができる。例えば、AVS3では、56種の重み行列導出モードが使用される場合、1つの重み行列導出モードを符号化するには最大6ビットが必要であり、32種の重み行列導出モードのみが使用される場合、1つの重み行列導出モードを符号化するに最大5ビットが必要である。さらに、エンコーダは、現在ブロックによって使用可能な重み行列導出モードの数をさらに圧縮および制限することもでき(より少ないフラグビットを用いて、どの重み行列を選択するかまたは識別重み行列導出モードを識別するためである)、例えば、16種の重み行列導出モードのみが使用され、最初的に、4ビットのみを使用して符号化を実行することが実現され、それにより、オーバーヘッドがさらに削減され、より良い性能を達成する。なお、本願実施例では、エンコーダは、重み行列導出モードの数を制限するとき、すべての予測ブロックの重み行列導出モードの数を直接制限することもできるし、現在ブロックの寸法パラメータを参照して、異なるサイズの現在ブロックに対して異なる制限方式を使用することもできる。
例示的に、本願において、64×64または32×32サイズの予測ブロックのような、寸法パラメータが大きい予測ブロックについて、エンコーダは、すべての重み行列導出モードを用いて現在ブロックの重み行列導出モードを決定することができ、8x8サイズの予測ブロックのような、寸法パラメータが小さい予測ブロックについて、エンコーダは、一部の重み行列導出モードを用いて現在ブロックの重み行列導出モードを決定することができ、つまり、現在ブロックによって使用可能な重み行列導出モードの数を制限することができ、これは、寸法パラメータが小さい予測ブロックにとって、微小な角度差による影響が明らかではないためである。
理解できるように、本願では、まず、1つの寸法閾値、例えば、第1寸法閾値を設定することができ、現在ブロックの寸法パラメータが第1寸法閾値より小さい場合、微小な角度差は大きな影響を及ばないと見なすことができ、よって、現在ブロックによって選択可能な重み行列導出モードの数を制限することができる。具体的には、現在ブロックの重み行列導出モードのインデックス番号を制限することにより、重み行列導出モードの数を制限することができる。
例示的に、本願において、現在ブロックの寸法パラメータが第1寸法閾値より小さい場合、エンコーダは、第1モードインデックス範囲に基づいて、重み行列導出モードを決定することができ、ここで、第1モードインデックス範囲は、重み行列導出モードのインデックス番号を制限するために使用される。具体的には、第1モードインデックス範囲は、第1下限閾値および第1上限閾値を含み得、エンコーダは、重み行列導出モードのインデックス番号を第1下限閾値および第1上限閾値とそれぞれ比較することができ、重み行列導出モードのインデックス番号が第1下限閾値より小さい場合、重み行列導出モードのインデックス番号を第1下限閾値に設定することができ、重み行列導出モードのインデックス番号が第1上限閾値より大きい場合、重み行列導出モードのインデックス番号を第1上限閾値に設定することができる。
つまり、本願において、第1モードインデックス範囲によって、現在ブロックの重み行列導出モードのインデックス番号を制限することができ、それにより、重み行列導出モードの数の制限を完了することができる。
例えば、AVS3において、第1モードインデックス範囲は、0~32であってもよく、つまり、第1モードインデックス範囲によって、重み行列導出モードのインデックス番号を0~32の範囲に制限することができ、これにより、現在ブロックは、最初の33種の重み行列導出モードを用いて、現在ブロックの重み行列導出モードを決定することができる。
例1:
AWPで使用できる重み行列は、番号0~55に対応する重み行列を含み、具体的には、図2に示すとおりである。本願において、SAWPでは、32種の重み行列を使用し、つまり、SAWPで使用できる重み行列は、AWPの重み行列0~7、16~23、32~39、48~55(図2における対応する番号に対応する重み行列)に対応する。つまり、SAWPの重み行列0~7は、AWPの重み行列0~7に対応し、SAWPの重み行列8~15は、AWPの重み行列16~23に対応し、SAWPの重み行列16~23は、AWPの重み行列32~39に対応し、SAWPの重み行列24~31は、AWPの重み行列48~55に対応し、この32種の重み行列の確率が等しいと仮定すると、5ビットのフラグビットsawp_idxが必要である。
1つの特定の実施例において、sawp_idxの値とバイナリ文字列との関係は、表4に示すとおりである。
例2:この例では、SAWPで使用される重み行列は24種のみであり、SAWPで使用できる重み行列は、図2に示すAWPの重み行列8~15、24~31、40~47に対応する。つまり、SAWPの重み行列0~7は、AWPの重み行列8~15に対応し、SAWPの重み行列8~15は、AWPの重み行列24~31に対応し、SAWPの重み行列16~23は、AWPの重み行列40~47に対応し、4~5ビットのフラグビットsawp_idxが必要である。
sawp_idxの値とバイナリ文字列との関係は、表5に示すとおりである。
さらに、上記のSAWPの24種の重み行列内のインデックス番号10とインデックス番号14は、AWPの56種の重み行列内のインデックス番号26とインデックス番号30にそれぞれ対応するので、これらは、二分木分割(BT)の水平分割と垂直分割の分割方式と類似するため、実際に選択される確率が低く、より長いバイナリ文字列をそれらに割り当てることができ、選択される確率が高い重み行列に、より短いバイナリ文字列を割り当てることができる。
1つの例において、表6に示すように、SAWPの24種のモード内のインデックス番号2とインデックス番号10のバイナリ文字列を交換し、インデックス番号6とインデックス番号14のバイナリ文字列を交換する。
ステップ103において、第1イントラ予測モード、第2イントラ予測モードおよび重み行列に基づいて、現在ブロックの予測値を決定する。
本願実施例では、エンコーダは、重み行列導出モードに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、重み行列導出モードに基づいて、現在ブロックの重み行列を決定した後、さらに、第1イントラ予測モード、第2イントラ予測モードおよび重み行列に基づいて、現在ブロックの予測値を決定することができる。
理解できるように、本願実施例では、エンコーダは、第1イントラ予測モード、第2イントラ予測モードおよび重み行列に基づいて、現在ブロックの予測値を決定するとき、まず、第1イントラ予測モードに基づいて、現在ブロックの第1予測値を決定することができ、同時に、第2イントラ予測モードに基づいて、現在ブロックの第2予測値を決定することができ、そして、重み行列を用いて第1予測値および第2予測値に対して加重平均計算を実行することにより、最終的に現在ブロックの予測値を得ることができる。
さらに、本願実施例では、エンコーダは、現在ブロックの予測値を決定した後、さらに、現在ブロックの実値および予測値に対して差分演算を実行して、実値と予測値との差分結果を取得することができ、それにより、現在ブロックの予測差分、即ち、残差を決定することができる。
つまり、本願において、エンコーダは、現在ブロックの実値とイントラ予測値との間の差分を計算することにより、残差を取得することができ、当該残差は、変換、量子化、エントロピ符号化されてビットストリームに書き込まれ、復号化側に伝送される。
本願実施例では、さらに、イントラ予測モードパラメータが、現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、エンコーダが符号化処理を実行する方法は、以下のステップをさらに含み得る。
ステップ401において、モードリストに基づいて、現在ブロックの第1初期モードと第2初期モードを決定。
本願実施例では、エンコーダが現在ブロックのイントラ予測モードパラメータを決定した後、イントラ予測モードパラメータが、現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、エンコーダは、現在ブロックによって使用されるモードリスト(MPMリスト)をさらに決定することができる。そして、モードリストに基づいて、現在ブロックの第1初期モードと第2初期モードを決定することができる。
なお、本願にでは、モードリストは、現在ブロックによって使用されるイントラ予測モードを決定するために使用される。具体的には、エンコーダは、使用確率が比較的に高いいくつかのイントラ予測モードを用いてモードリストを構築することができ、それにより、モードリストに基づいて現在ブロックの2つのイントラ予測モードを決定することができる。
理解できるように、本願実施例では、エンコーダは、モードリストを決定するとき、隣接ブロックの予測モードを用いてMPMを構築するなど、MPMを構築するための一般的な方式を採用することもできるし、本願で提案されたイントラ予測方法に係るモードリストの構築方法を使用することもでき、つまり、現在ブロックの重み行列導出モードを用いてモードリストを構築することもできる。
つまり、本願において、モードリストの構築方法は、上記の実施例におけるステップ102で提供されるモードリスト構築方法を使用することを選択してもよいし、他のMPM構築方法を使用してもよく、本願は、これに対して特に限定しない。
さらに、本願実施例では、エンコーダは、現在ブロックによって使用されるモードリストを決定した後、まず、モードリストに基づいて、現在ブロックの第1初期モードと第2初期モードを決定することができる。
例示的に、本願において、エンコーダは、N個のMPMを含むモードリストを構築し、Nが2である場合、nビット(mpm_idx)を使用して、モードリスト内のどのMPMが選択されるかを示すことができ、つまり、第1初期モードと第2初期モードを決定し、そして、1ビットを使用して、オフセットする必要があるか否か(offset_needed)を示す。例えば、4つのMPMを含むモードリストが構築され、モードリスト内でイントラ予測モードを選択するとき、2ビット(mpm_idx)を使用して、モードリスト内のどのMPMが初期モードとして選択されるかを示す必要があり、表7に示すmpm_idxの値とバイナリ文字列との対応関係は、予測モードの決定に使用されることができる。
ステップ402において、オフセットモードパラメータを決定し、オフセットモードパラメータが、オフセット処理を実行することを示す場合、現在ブロックのオフセットパラメータを決定する。
本願実施例では、エンコーダはさらに、オフセットモードパラメータを決定することができ、ここで、オフセットモードパラメータは、オフセットする必要があるか否かを決定するために使用される。具体的には、オフセットモードパラメータが、オフセット処理を実行することを示す場合、エンコーダは、現在ブロックのオフセットパラメータをさらに決定することができる。
なお、本願実施例では、エンコーダは、1ビットを使用して、オフセットする必要があるか否か(offset_needed)を示すことができ、つまり、エンコーダは、オフセットモードパラメータを設定することにより、現在ブロックの予測モード(第1初期モードまたは第2初期モード)をオフセットする必要があるか否かをさらに決定することができる。
さらに、本願実施例では、オフセットモードパラメータが、オフセット処理を実行することを示す場合、エンコーダはさらに、現在ブロックのオフセットパラメータを決定することができる。ここで、オフセットパラメータは、オフセット方式とオフセット量とを含み得、つまり、オフセットパラメータを決定することにより、エンコーダは、現在ブロックの第1初期モードまたは第2初期モードに対してオフセット処理を実行するか否かを決定することができる。
なお、本願実施例では、エンコーダは、符号化ビットを用いて、オフセットパラメータ内のオフセット方式とオフセット量を指示することもできる。例えば、エンコーダは、1ビット(sign)を使用して、オフセット方式が「+」であるか「-」であるかを示すことができ、さらに、いくつかのビット(offset)を使用して、オフセット量を示すことができる。
任意選択的に、本願において、エンコーダは、オフセット方式とオフセット量を事前に設定することができ、例えば、エンコーダは、デフォルトで特定の量(1、2、4など)しかオフセットできないように設定することができる。
ステップ403において、第1初期モードおよびオフセットパラメータに基づいて、現在ブロックの第1イントラ予測モードを決定し、第2初期モードおよびオフセットパラメータに基づいて、現在ブロックの第2イントラ予測モードを決定する。
本願実施例では、エンコーダは、現在ブロックのオフセットパラメータを決定した後、第1初期モードおよびオフセットパラメータに基づいて、現在ブロックの第1イントラ予測モードを決定することができ、同時に、第2初期モードおよびオフセットパラメータに基づいて、現在ブロックの第2イントラ予測モードを決定することができる。
さらに、本願実施例では、エンコーダは、モードリストおよびオフセットパラメータに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定するとき、オフセット方式およびオフセット量に基づいて、第1初期モードに対してオフセット処理を実行し、それにより、第1イントラ予測モードを決定することができ、同時に、オフセット方式およびオフセット量に基づいて、第2初期モードに対してオフセット処理を実行し、それにより、第2イントラ予測モードを決定することができる。
つまり、本願実施例では、エンコーダは、まず、いくつかのビットを用いて、モードリスト内のどの予測モードを用いるかを決定することができ、つまり、まず、モードリストから初期モードを決定し、その後、オフセットパラメータに基づいて、初期モードに対してオフセット処理を実行することにより、最終的に現在ブロックによって使用されるイントラ予測モードを決定することができる。
理解できるように、本願実施例では、エンコーダは、第1初期モードおよび第2初期モードに対して同じオフセットパラメータを使用することができ、つまり、第1初期モードおよび第2初期モードに基づいて、同じオフセット方式およびオフセット量を用いてオフセット処理を実行する。それに対応して、エンコーダは、第1初期モードおよび第2初期モードに対して異なるオフセットパラメータを使用することもでき、つまり、第1初期モードに基づいて、1つのオフセット方式を用いてオフセット処理を実行し、同時に、第2初期モードに基づいて、別のオフセット方式を用いてオフセット処理を実行し、ここで、この2つのオフセット方式に対応するオフセット方式とオフセット量は、完全に同一ではなくてもよい。
つまり、本願において、第1初期モードのオフセット処理に対応するオフセット方式とオフセット量は、第2初期モードのオフセット処理に対応するオフセット方式とオフセット量と同じであってもよいし、異なってもよい。
任意選択的に、本願において、第1初期モードに対応するオフセットモードパラメータは、第2初期モードに対応するオフセットモードパラメータと異なってもよく、つまり、エンコーダは、第1初期モードおよび第2初期モードのオフセットモードパラメータをそれぞれ設定することにより、次のようないくつかの異なる処理方式を実現することができる:第1初期モードと第2初期モードの両方に対してオフセット処理を実行するか、または、第1初期モードと第2初期モードの両方に対してオフセット処理を実行しないか、または、第1初期モードに対してオフセット処理を実行し、第2初期モードに対してオフセット処理を実行しないか、または、第1初期モードに対してオフセット処理を実行せず、第2初期モードに対してオフセット処理を実行する。
さらに、本願実施例では、オフセットモードパラメータが、オフセット処理を実行しないことを指示した場合、エンコーダは、モードリストに基づいて、第1イントラ予測モードと第2イントラ予測モードを直接決定することができ、つまり、エンコーダは、いくつかのビットを直接用いて、モードリスト内のどの予測モードを使用するかを決定することができる。
ステップ404において、第1イントラ予測モードおよび第2イントラ予測モードに基づいて、現在ブロックの予測値を決定する。
本願実施例では、エンコーダは、モードリストおよびオフセットパラメータに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定した後、第1イントラ予測モードおよび第2イントラ予測モードに基づいて、現在ブロックの予測値をさらに決定することができる。
なお、本願実施例では、エンコーダは、現在ブロックの予測値を決定するとき、まず、第1イントラ予測モードに基づいて、現在ブロックの第1予測値を決定することができ、同時に、第2イントラ予測モードに基づいて、現在ブロックの第2予測値を決定することができ、そして、現在ブロックの重み行列を用いて第1予測値および第2予測値に対して加重平均計算を実行することにより、最終的に現在ブロックの予測値を得ることができる。
さらに、本願実施例では、エンコーダは、現在ブロックの予測値を決定した後、さらに、現在ブロックの実値および予測値に対して差分演算を実行して、実値と予測値との差分結果を取得することができ、それにより、現在ブロックの予測差分、即ち、残差を決定することができる。
つまり、本願において、エンコーダは、現在ブロックの実値とイントラ予測値との間の差分を計算することにより、残差を取得することができ、当該残差は、変換、量子化、エントロピ符号化されてビットストリームに書き込まれ、復号化側に伝送される。
本願実施例では、さらに、上記のステップ401~ステップ404に示すイントラ予測方法により、エンコーダは、まず、モードリストから1つの予測モードを選択し、そして、当該予測モードに基づいて、オフセットする必要があるか否かを決定することができ、オフセットする必要がある場合、オフセット方式とオフセット量をさらに決定し、ここで、オフセット量は、オフセットモードインデックス番号として理解することができる。
なお、本願実施例では、モードリストに対してオフセット処理を実行することによって現在ブロックの予測モードを決定する方法は、本願実施例のSAWPモードに適用されることもできるし、他のイントラ予測モードに適用されることもできるし、任意のインター予測モードに適用されることもでき、本願は、これに対して特に限定しない。また、1ビット(offset_needed)を使用して、オフセットする必要があるか否かを示すことができ、例えば、オフセットモードパラメータoffset_neededの値が0に設定されている場合、オフセット処理が実行されないと見なすことができ、オフセットモードパラメータoffset_neededの値が1に設定されている場合、オフセット処理が実行されると見なすことができる。
例示的に、本願において、4つのMPMを構築することが規定される場合、2ビットを使用して、どの予測モードを選択するかを決定し、1ビットを使用して、オフセット処理を実行するか否かを決定することができる。選択されたイントラ予測モードがMPMの1である場合、どのMPMであるかを示すための2ビット(mpm_idx)と、オフセットが必要ないことを示すための1ビット(offset_needed)の合計3ビットが必要である。
さらに、本願実施例では、オフセットモードパラメータが、オフセット処理を実行することを示す場合、オフセットパラメータをさらに決定することができ、ここで、オフセットパラメータは、1ビット(sign)のオフセット方式を含み得、いくつかのビット(offset)のオフセット量をさらに含み得る。
つまり、本願において、オフセットする必要がある場合、1ビット(sign)を使用して、オフセット方式が「+」であるか「-」であるかを示すことができ、さらに、オフセット量の設定方法は、デフォルトで特定の量(1、2、または4など)しかオフセットできないようにしてもよいし、または、いくつかのオーバーヘッドを使用してオフセット量を示してもよい。例えば、2と4などの2つの選択可能なオフセット量があると仮定すると、1ビットを使用して、オフセット量が2であるか4であるかを示すことができる。複数の選択可能なオフセット量がある場合、いくつかのビット(offset)を使用して、オフセット量を示すことができ、表8に示すoffsetの値とバイナリ文字列との対応関係は、オフセット量の決定のために使用されることができる。
上記の実施例に基づき、本願の別の実施例は、エンコーダに適用される、イントラ予測方法を提案し、図17は、イントラ予測方法の実現プロセスの概略図2であり、図17に示すように、エンコーダによって実行されるイントラ予測方法は、以下のステップを含み得る。
ステップ501において、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、現在ブロックのモードリストを決定する。
本願実施例では、エンコーダは、現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを決定した後、まず、現在ブロックのモードリストを決定することができる。
なお、本願実施例では、SAWPモードは、イントラ予測方法の1つであり、具体的には、SAWPモードによれば、現在ブロックに対して2つの異なるイントラ予測モードを決定し、そして、この2つの異なるイントラ予測モードに基づいて、2つの予測ブロックをそれぞれ決定し、次に、1つの重み行列を決定し、重み行列に従って2つの予測ブロックを結合することにより、最終的に新しい予測ブロックを得ることができ、つまり、現在ブロックの予測ブロックを得ることができる。
任意選択的に、本願において、デコーダは、まず、現在ブロックの寸法パラメータを決定することができ、そして、寸法パラメータに基づいて、現在ブロックがSAWPモードを使用するか否かを決定することができる。具体的には、幅が第1閾値より大きく、高さが第2閾値より大きい場合、現在ブロックがSAWPモードを使用すると決定し、または、幅が第3閾値より小さく、高さが第4閾値より大きい場合、現在ブロックがSAWPモードを使用すると決定する。
任意選択的に、本願において、デコーダは、まず、現在ブロックの画素パラメータを決定することができ、そして、画素パラメータと第5閾値に基づいて、現在ブロックがSAWPモードを使用するか否かを判断することができる。
任意選択的に、本願において、デコーダは、まず、現在ブロックのイントラ予測モードパラメータを決定し、そして、イントラ予測モードパラメータに基づいて、現在ブロックがSAWPモードを使用するか否かを判断することができる。
なお、本願では、重み行列導出モードは、現在ブロックによって使用される重み行列を決定するために使用される。具体的には、重み行列導出モードは、重み行列を導出するモードであってもよい。所定の長さと幅を有する予測ブロックの場合、各重み行列導出モードは、1つの重み行列を導出することができ、同じサイズの予測ブロックの場合、異なる重み行列導出モードによって導出される重み行列は異なる。
例示的に、本願において、AVS3のAWPは、56種の重み行列導出モードを有し、VVCのGPMは、64種の重み行列導出モードを有する。
さらに、本願実施例では、エンコーダは、重み行列導出モードを用いてモードリストを決定するとき、まず、現在ブロックの隣接ブロックに対応するイントラ予測モードを決定し、そして、隣接ブロックに対応するイントラ予測モードを追加待ちモードとして決定することができ、追加待ちモードが所定の追加条件を満たすと決定した後、エンコーダは、追加待ちモードをモードリストに追加し、つまり、現在ブロックの隣接ブロックに対応するイントラ予測モードをモードリストに追加することができ、次に、モードリストが所定のリスト長さを満たさない場合、エンコーダは引き続き、現在ブロックの重み行列導出モードを決定し、重み行列導出モードに対応する相関イントラ予測モードを決定し、そして、重み行列導出モードに対応する相関イントラ予測モードを追加待ちモードとして決定することができ、追加待ちモードが所定の追加条件を満たすと決定した場合、当該追加待ちモードをモードリストに追加し、つまり、重み行列導出モードに対応する相関イントラ予測モードをモードリストに追加する。
なお、本願実施例では、エンコーダが現在ブロックの隣接ブロックに対応するイントラ予測モードをモードリストに追加した後、または、エンコーダが重み行列導出モードに対応する相関イントラ予測モードをモードリストに追加した後、モードリストが所定のリスト長さを満たさない場合、即ち、モードリストが完全に充填されていない場合、エンコーダは、所定の予測モードを追加待ちモードとして決定し続けることができ、そして、追加待ちモードが所定の追加条件を満たすと決定した後、追加待ちモードをモードリストに追加し、つまり、所定の予測モードをモードリストに追加する。
理解できるように、本願において、所定の予測モードは、DCモード、Bilinearモード、Planarモードなどの様々な異なるモードのうちの1つまたは複数を含み得る。
さらに、本願実施例では、エンコーダが、現在ブロックの隣接ブロックに対応するイントラ予測モード、重み行列導出モードに対応する相関イントラ予測モード、所定の予測モードをモードリストにそれぞれ追加した後、モードリストが依然として所定のリスト長さを満たさない場合、つまり、モードリストが依然として完全に充填されていない場合、エンコーダは、関連付けイントラ予測モードを決定するためにモードリスト内の予測モードを使用することを選択することができ、そして、関連付けイントラ予測モードを追加待ちモードとして決定し、追加待ちモードが所定の追加条件を満たすと決定した場合、追加待ちモードをモードリストに追加し、つまり、モードリストに対応する関連付けイントラ予測モードをモードリストに追加する。
つまり、本願において、現在ブロックの隣接ブロックに対応するイントラ予測モード、重み行列導出モードに対応する相関イントラ予測モードおよび所定の予測モードをモードリストに順次追加した後、モードリストが依然として完全に充填されていない場合、エンコーダは、モードリスト内の既存の予測モードに基づいて、対応する関連付けイントラ予測モードを決定し、その後、これらの関連付けイントラ予測モードをモードリストに追加することができる。
なお、本願実施例では、現在ブロックの隣接ブロックに対応するイントラ予測モードを追加待ちモードとするか、重み行列導出モードに対応する相関イントラ予測モードを追加待ちモードとするか、または所定の予測モードを追加待ちモードとするか、または関連付けイントラ予測モードを追加待ちモードとするかにも関わらず、エンコーダは、追加待ちモードが所定の追加条件を満たすか否かを判定する必要があり、具体的には、追加待ちモードが存在し、且つ追加待ちモードが、モードリスト内のすべての予測モードと異なる場合、追加待ちモードが所定の追加条件を満たすと決定することができ、当該追加待ちモードをモードリストに追加することができる。
それに対応して、追加待ちモードが存在せず、または追加待ちモードが、モードリスト内の1つの予測モードと同じである(重複する)場合、追加待ちモードが所定の追加条件を満たさないと決定することができ、この場合、当該追加待ちモードをモードリストに追加することができず、当該追加待ちモードを直接破棄する。
理解できるように、本願において、現在ブロックは、2つのイントラ予測モードを用いてイントラ予測処理を実行する必要があるため、MPMを構築する際に、より多くの位置のイントラ予測モードを参照するか、またはより多くの隣接ブロックのイントラ予測モードを参照することができる。それに対応して、本願において、現在ブロックによって使用されるモードリストの長さは、他のイントラ予測モードのモードリスト長さと異なってもよく、二値化時のMPMのコードワードが他のモードより短いため、2つのイントラ予測モードがそれぞれMPMである確率を高めることは、符号化・復号化効率を向上させるのに役立つ。
さらに、本願実施例では、エンコーダは、重み行列導出モードを用いてモードリストを決定するとき、まず、重み行列導出モードに対応するリスト構築策略を決定することができ、その後、リスト構築策略に基づいて、モードリストをさらに決定することができる。
つまり、本願において、異なる重み行列、即ち、異なる重み行列導出モードについて、エンコーダは、異なる構築策略を用いてモードリストを構築することができる。例えば、構築策略に基づいて、重み行列の境界線が0度または90度である場合、つまり、水平または垂直である場合、エンコーダは、モードリストを構築するとき、重み行列に対応するイントラ予測モードを考慮に入れることを選択することができ、他の場合には、重み行列に対応するイントラ予測モードを考慮しない。
ステップ502において、モードリストに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定する。
本願実施例では、エンコーダは、現在ブロックのモードリストを構築した後、モードリストに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することができる。
理解できるように、本願において、イントラ予測に使用される現在ブロックの2つのイントラ予測モードが異なる場合、つまり、第1イントラ予測モードと第2イントラ予測モードが異なる場合、第2イントラ予測モードが復号化されるとき、第1イントラ予測モードの可能性を排除することができる。つまり、第2イントラ予測モードの復号化に第1イントラ予測モードの情報を使用することができる。
本願実施例では、さらに、エンコーダは、モードリストの構築中に、候補イントラ予測モードを設定することもできる。ここで、候補イントラ予測モードは、モードリスト内のすべてのイントラ予測モードと異なる。
具体的には、本願において、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なるようにするために、第2イントラ予測モードの決定は、第1イントラ予測モードに依存してもよい。ここで、エンコーダは、モードリストに基づいて、第1イントラ予測モードと第2イントラ予測モードを決定するとき、まず、モードリスト内の1つの予測モードを第1イントラ予測モードとして決定することができ、そして、第1イントラ予測モードおよびモードリストに基づいて、第2イントラ予測モードを決定する。
さらに、本願実施例では、エンコーダは、モードリスト内の1つの予測モードを第1イントラ予測モードとして決定した後、モードリストから当該予測モードを削除し、そして、候補イントラ予測モードをモードリストに追加することができ、それにより、更新されたモードリストを取得することができ、その後、前記更新されたモードリストから1つの予測モードを選択して前記第2イントラ予測モードとして決定することができ、ここで、選択方式は、任意であってもよい。
例示的に、本願において、第1イントラ予測モードと第2イントラ予測モードの選択可能なMPMの数がN個であると仮定すると、モードリストを構築する際に、まず、N個のMPMと1つの候補のMPMを構築することができ、第1イントラ予測モードの選択可能なMPMは、上記のN個のMPMである。第1イントラ予測モードが、そのうちの1つのMPMを選択した場合、第2イントラ予測モードに対して、第1イントラ予測モードによって選択されたMPMを削除し、そして、第2イントラ予測モードが依然としてN個のMPMから選択できるように、候補のMPMをモードリストに追加する。
本願実施例では、さらに、エンコーダは、モードリストの構築中に、モードリストの長さパラメータを(N+1)(Nは正の整数である)に設定することができる。
具体的には、本願において、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なるようにするために、第2イントラ予測モードの決定は、第1イントラ予測モードに依存してもよい。ここで、エンコーダは、モードリストに基づいて、第1イントラ予測モードと第2イントラ予測モードを決定するとき、モードリストを用いて第1イントラ予測モードを決定する場合、モードリスト内の最初のN個の予測モードのうちの1つを第1イントラ予測モードとして決定することができ、そして、第1イントラ予測モードおよびモードリストに基づいて、第2イントラ予測モードを決定する。
さらに、本願実施例では、モードリストを用いて第1イントラ予測モードを決定する場合、エンコーダは、モードリスト内の最初のN個の予測モードのうちの1つを第1イントラ予測モードとして決定した後、モードリスト内の第1イントラ予測モード以外の他のN個の予測モードを用いて第2イントラ予測モードを決定する。
なお、本願実施例では、エンコーダは、モードリストに基づいて、第1イントラ予測モードと第2イントラ予測モードを決定するとき、モードリストが第1イントラ予測モードの決定に使用されない場合、エンコーダは、モードリスト内の最初のN個の予測モードのうちの1つを第2イントラ予測モードとして直接決定することができる。
任意選択的に、本願実施例では、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なることだけを保証し、第1イントラ予測モードと第2イントラ予測モードの選択可能なMPMの数を制限しない場合、エンコーダは、候補イントラ予測モードの設定を実行しないか、モードリスト長さを増加させる処理を実行しなくてもよく、この場合、エンコーダは、第2イントラ予測モードの符号化方法を変更する必要がある。つまり、第1イントラ予測モードがモードリスト内の1つのMPMを選択した後、第2イントラ予測モードの選択可能なMPMは1つ減り、この場合、第2イントラ予測モードの選択可能なMPMが少なくなったため、第2イントラ予測モードの符号化方法を変更する必要がある。
例示的に、本願において、MPMの数Nが4であり、最初のビットを使用して、MPMであるか否かを示す(例えば、「1」は、MPMであることを示し、「0」は、MPMでないことを示す)ことを例にとると、第1イントラ予測モードがMPMである場合、4つのMPMがあるため、2ビットを使用して、どのMPMであるかを示し、即ち、「00、01、10、11」はそれぞれ、最初のMPM、2番目のMPM、3番目のMPM、4番目のMPMを表す。また、第1イントラ予測モードと第2イントラ予測モードが両方ともMPMである場合、第2イントラ予測モードが利用可能なMPMは3つしかなく、1~2ビットを使用して、どのMPMであるかを示すことができ、例えば、「00、01、10」はそれぞれ、残りの最初のMPM、2番目のMPM、3番目のMPMを表す。これから分かるように、1つの可能性が除外されるため、符号化方式または二値化方式を変更することにより、オーバーヘッドを節約することができる。
ステップ503において、第1イントラ予測モードおよび第2イントラ予測モードに基づいて、現在ブロックの予測値を決定する。
本願実施例では、エンコーダは、モードリストに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定した後、第1イントラ予測モードおよび第2イントラ予測モードに基づいて、現在ブロックの予測値をさらに決定することができる。
理解できるように、本願実施例では、エンコーダは、第1イントラ予測モードおよび第2イントラ予測モードに基づいて、現在ブロックの予測値を決定するとき、まず、第1イントラ予測モードに基づいて、現在ブロックの第1予測値を決定することができ、同時に、第2イントラ予測モードに基づいて、現在ブロックの第2予測値を決定することができ、そして、第1予測値および第2予測値に対して加重平均計算を実行することにより、最終的に現在ブロックの予測値を得ることができる。例えば、エンコーダは、重み行列を用いて、第1予測値と第2予測値に対して加重平均計算を実行して、現在ブロックの予測値を取得することができる。
さらに、本願実施例では、エンコーダは、現在ブロックの予測値を決定した後、さらに、現在ブロックの実値および予測値に対して差分演算を実行して、実値と予測値との差分結果を取得することができ、それにより、現在ブロックの予測差分、即ち、残差を決定することができる。
つまり、本願において、エンコーダは、現在ブロックの実値とイントラ予測値との間の差分を計算することにより、残差を取得することができ、当該残差は、変換、量子化、エントロピ符号化されてビットストリームに書き込まれ、復号化側に伝送される。
本願実施例は、イントラ予測方法を提供し、エンコーダ・デコーダは、2つの異なるイントラ予測モードによって現在ブロックの2つの異なる予測ブロックを決定することができ、そして、様々な重み行列を用いて予測ブロックを結合することにより、最終的により複雑な予測ブロックを得ることができ、これにより、予測の精度を向上させることができ、さらに、エンコーダ・デコーダは、重み行列と予測モードとの相関性を用いてMPMリストを構築することもでき、これにより、複雑さを大幅に低減することができる。つまり、本願で提案されるイントラ予測方法により、イントラ予測の品質を向上させながら複雑さを低減することができ、これにより、圧縮性能を向上させることができる。
本願実施例では、さらに、エンコーダは、現在ブロックのモードリストを決定した後、まず、モードリストに基づいて、現在ブロックの第1初期モードと第2初期モードを決定し、その後、オフセットモードパラメータを決定することができ、オフセットモードパラメータが、オフセット処理を実行することを示す場合、現在ブロックのオフセットパラメータを決定し、次に、第1初期モードおよびオフセットパラメータに基づいて、現在ブロックの第1イントラ予測モードを決定し、第2初期モードおよびオフセットパラメータに基づいて、現在ブロックの第2イントラ予測モードを決定することができ、最後に、第1イントラ予測モードおよび第2イントラ予測モードに基づいて、現在ブロックの予測値を決定することができる。
理解できるように、本願実施例では、エンコーダは、モードリストを決定するとき、隣接ブロックの予測モードを用いてMPMを構築するなど、MPMを構築するための一般的な方式を採用することもできるし、本願で提案されたイントラ予測方法に係るモードリストの構築方法を使用することもでき、つまり、現在ブロックの重み行列導出モードを用いてモードリストを構築することもできる。
つまり、本願において、モードリストの構築方法は、上記の実施例で提供されるモードリスト構築方法を使用することを選択してもよいし、他のMPM構築方法を使用してもよく、本願は、これに対して特に限定しない。
さらに、本願実施例では、エンコーダは、現在ブロックによって使用されるモードリストを決定した後、まず、モードリストに基づいて、現在ブロックの第1初期モードと第2初期モードを決定することができる。
例示的に、本願において、エンコーダは、N個のMPMを含むモードリストを構築し、Nが2である場合、nビット(mpm_idx)を使用して、モードリスト内のどのMPMが選択されるかを示すことができ、つまり、第1初期モードと第2初期モードを決定し、そして、1ビットを使用して、オフセットする必要があるか否か(offset_needed)を示す。例えば、4つのMPMを含むモードリストが構築され、モードリスト内でイントラ予測モードを選択するとき、2ビット(mpm_idx)を使用して、モードリスト内のどのMPMが初期モードとして選択されるかを示す必要があり、表3に示すmpm_idxの値とバイナリ文字列との対応関係は、予測モードの決定に使用されることができる。
なお、本願実施例では、エンコーダは、1ビットを使用して、オフセットする必要があるか否か(offset_needed)を示すことができ、つまり、エンコーダは、オフセットモードパラメータを設定することにより、現在ブロックの予測モード(第1初期モードまたは第2初期モード)をオフセットする必要があるか否かをさらに決定することができる。
さらに、本願実施例では、オフセットモードパラメータが、オフセット処理を実行することを示す場合、エンコーダは、現在ブロックのオフセットパラメータをさらに決定することができる。ここで、オフセットパラメータは、オフセット方式とオフセット量とを含み得、つまり、オフセットパラメータを決定することにより、エンコーダは、現在ブロックの第1初期モードまたは第2初期モードに対してオフセット処理を実行するか否かを決定することができる。
なお、本願実施例では、エンコーダは、符号化ビットを用いて、オフセットパラメータ内のオフセット方式とオフセット量を指示することもできる。例えば、エンコーダは、1ビット(sign)を使用して、オフセット方式が「+」であるか「-」であるかを示すことができ、さらに、いくつかのビット(offset)を使用して、オフセット量を示すことができる。
任意選択的に、本願において、エンコーダは、オフセット方式とオフセット量を事前に設定することができ、例えば、エンコーダは、デフォルトで特定の量(1、2、4など)しかオフセットできないように設定することができる。
さらに、本願実施例では、エンコーダは、モードリストおよびオフセットパラメータに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定するとき、オフセット方式およびオフセット量に基づいて、第1初期モードに対してオフセット処理を実行して、第1イントラ予測モードを決定することができ、同時に、オフセット方式およびオフセット量に基づいて、第2初期モードに対してオフセット処理を実行して、第2イントラ予測モードを決定することができる。
つまり、本願実施例では、エンコーダは、まず、いくつかのビットを用いて、モードリスト内のどの予測モードを用いるかを決定することができ、つまり、まず、モードリストから初期モードを決定し、その後、オフセットパラメータに基づいて、初期モードに対してオフセット処理を実行することにより、最終的に現在ブロックによって使用されるイントラ予測モードを決定することができる。
理解できるように、本願実施例では、エンコーダは、第1初期モードおよび第2初期モードに対して同じオフセットパラメータを使用することができ、つまり、第1初期モードおよび第2初期モードに基づいて、同じオフセット方式およびオフセット量を用いてオフセット処理を実行する。それに対応して、エンコーダは、第1初期モードおよび第2初期モードに対して異なるオフセットパラメータを使用することもでき、つまり、第1初期モードに基づいて、1つのオフセット方式を用いてオフセット処理を実行し、同時に、第2初期モードに基づいて、別のオフセット方式を用いてオフセット処理を実行し、ここで、この2つのオフセット方式に対応するオフセット方式とオフセット量は、完全に同一ではなくてもよい。
つまり、本願において、第1初期モードのオフセット処理に対応するオフセット方式とオフセット量は、第2初期モードのオフセット処理に対応するオフセット方式とオフセット量と同じであってもよいし、異なってもよい。
任意選択的に、本願において、第1初期モードに対応するオフセットモードパラメータは、第2初期モードに対応するオフセットモードパラメータと異なってもよく、つまり、エンコーダは、第1初期モードおよび第2初期モードのオフセットモードパラメータをそれぞれ設定することにより、次のようないくつかの異なる処理方式を実現することができる:第1初期モードと第2初期モードの両方に対してオフセット処理を実行するか、または、第1初期モードと第2初期モードの両方に対してオフセット処理を実行しないか、または、第1初期モードに対してオフセット処理を実行し、第2初期モードに対してオフセット処理を実行しないか、または、第1初期モードに対してオフセット処理を実行せず、第2初期モードに対してオフセット処理を実行する。
さらに、本願実施例では、オフセットモードパラメータが、オフセット処理を実行しないことを示す場合、エンコーダは、モードリストに基づいて、第1イントラ予測モードと第2イントラ予測モードを直接決定することができ、つまり、エンコーダは、いくつかのビットを直接用いて、モードリスト内のどの予測モードを使用するかを決定することができる。
なお、本願実施例では、エンコーダは、現在ブロックの予測値を決定するとき、まず、第1イントラ予測モードに基づいて、現在ブロックの第1予測値を決定することができ、同時に、第2イントラ予測モードに基づいて、現在ブロックの第2予測値を決定することができ、そして、第1予測値および第2予測値に対して加重平均計算を実行することにより、最終的に現在ブロックの予測値を得ることができる。
まとめると、本願実施例で提案されるイントラ予測方法は、一般的な技術におけるイントラ予測モードが単純なテクスチャしか予測できないという欠点を考慮して、2つのイントラ予測モードによって2つの予測ブロックを決定し、様々な重み行列を用いて予測ブロックを結合することにより、より複雑な予測ブロックを得ることができ、それにより、イントラ予測の品質を向上させることができ、さらに、圧縮性能を向上させることができる。これから分かるように、本願で提案されるイントラ予測方法は、イントラ予測モードの符号化を改善し、新しいシナリオにおけるイントラ予測モードの確率特徴を利用することにより、イントラ予測モードの符号化方法を改善し、圧縮性能を効果的に向上させることができる。
なお、本願で使用されるイントラ予測モードの符号化方法は、一般的な技術におけるイントラ予測方法のイントラ予測モードの符号化方法と異なってもよい。それに対応して、本願で使用されるMPM構築方法も、一般的な技術におけるイントラ予測方法のMPM構築方法と異なってもよい。
理解できるように、本願において、現在ブロックによって選択されたイントラ予測モードと重み行列との間に一定の相関性があるため、この相関性を利用して、イントラ予測モードの符号化に重み行列の情報を利用することができ、即ち、イントラ予測モードの符号化は、重み行列導出モードの情報を利用することができる。具体的には、重み行列導出モードを用いてMPMを構築することができ、または、MPMを構築する際に重み行列導出モードの情報を用いることができる。
任意選択的に、本願において、重み行列導出モードに対応するイントラ予測モードまたは重み行列導出モードに対応するイントラ予測モードに関連するいくつかのイントラ予測モードは、二値化ときに通常のイントラ予測モードより短いコードワードが割り当てられるように設定することができる。
なお、本願では、2つのイントラ予測モードを使用する必要があるため、MPMを構築する際に、より多くの位置のイントラ予測モードを参照するか、またはより多くの隣接ブロックのイントラ予測モードを参照することができる。本発明で使用されるモードリスト(即ち、MPMリスト)の長さは、他のイントラ予測モードのモードリスト(即ち、MPMリスト)の長さと異なってもよい。
本願実施例は、イントラ予測方法を提供し、エンコーダ・デコーダは、2つの異なるイントラ予測モードによって現在ブロックの2つの異なる予測ブロックを決定することができ、そして、様々な重み行列を用いて予測ブロックを結合することにより、最終的により複雑な予測ブロックを得ることができ、これにより、予測の精度を向上させることができ、さらに、エンコーダ・デコーダは、重み行列と予測モードとの相関性を用いてMPMリストを構築することもでき、これにより、複雑さを大幅に低減することができる。つまり、本願で提案されるイントラ予測方法により、イントラ予測の品質を向上させながら複雑さを低減することができ、これにより、圧縮性能を向上させることができる。
本願の1つの実施例では、デコーダに適用されるイントラ予測方法を提供し、図18は、イントラ予測方法の実現プロセスの概略図3であり、図18に示すように、デコーダによって実行されるイントラ予測方法は、以下のステップを含み得る。
ステップ601において、ビットストリームを解析して、現在ブロックのイントラ予測モードパラメータを決定する。
本願実施例では、デコーダは、ビットストリームを解析して、現在ブロックのイントラ予測モードパラメータを決定する。
なお、本願の実施において、イントラ予測モードパラメータは、現在ブロックがSAWP符号化モードを使用できるか否か、即ち、現在ブロックが予測処理を実行するために2つの異なる予測モードを使用できるか否かを指示することができる。
理解できるように、本願実施例では、イントラ予測モードパラメータを、SAWPモードが使用されるか否かを示すフラグビットとして理解することができる。具体的には、デコーダは、ビットストリームを解析し、イントラ予測モードパラメータとして使用される1つの変数を決定することができ、当該変数の値に基づいて、イントラ予測モードパラメータを決定することができる。
なお、本願実施例では、SAWPモードは、イントラ予測方法の1つであり、具体的には、SAWPモードによれば、現在ブロックに対して2つの異なるイントラ予測モードを決定し、そして、この2つの異なるイントラ予測モードに基づいて、2つの予測ブロックをそれぞれ決定し、次に、1つの重み行列を決定し、重み行列に従って2つの予測ブロックを結合することにより、最終的に新しい予測ブロックを得ることができ、つまり、現在ブロックの予測ブロックを得ることができる。
さらに、本願実施例では、SAWPモードが適用される場合、現在ブロックの寸法を制限することができる。
理解できるように、本願実施例で提案されるイントラ予測方法は、2つの異なるイントラ予測モードをそれぞれ用いて2つの予測ブロックを生成し、次に、重み行列に従って重み付けを実行して新しい予測ブロックを得る必要があり、したがって、複雑さを低減し、圧縮性能と複雑さのバランスをとるために、本願実施例では、特定のサイズの予測ブロックが当該SAWPモードを使用しないように制限することができる。したがって、本願において、デコーダは、まず、現在ブロックの寸法パラメータを決定し、次に、寸法パラメータに基づいて、現在ブロックがSAWPモードを使用するか否かを決定することができる。
なお、本願実施例では、現在ブロックの寸法パラメータは、現在ブロックの高さと幅を含み得、よって、デコーダは、現在ブロックの高さと幅を利用して、SAWPモードの使用を制限することができ、即ち、SAWPモードを使用できる予測ブロックの寸法を制限することができる。
例示的に、本願において、幅が第1閾値より大きく、高さが第2閾値より大きい場合、現在ブロックがSAWPモードを使用すると決定する。これから分かるように、1つの可能な制限方式は、予測ブロックの幅が第1閾値より大きく(または以上である)、且つ予測ブロックの高さが第2閾値より大きい(または以上である)場合にのみSAWPモードを使用することである。ここで、第1閾値と第2閾値の値は、8、16、32などであってもよく、第1閾値は、第2閾値と等しくてもよい。
例示的に、本願において、幅が第3閾値より小さく、高さが第4閾値より大きい場合、現在ブロックがSAWPモードを使用すると決定する。これから分かるように、1つの可能な制限方式は、予測ブロックの幅が第3閾値より小さく(または以下である)、且つ予測ブロックの高さが第4閾値より大きい(または以上である)場合にのみ、SAWPモードを使用することである。ここで、第3閾値と第4閾値の値は、8、16、32などであってもよく、第3閾値は、第4閾値と等しくてもよい。
さらに、本願実施例では、画素パラメータを制限することにより、SAWPモードを使用できる予測ブロックの寸法を制限することもできる。
例示的に、本願において、デコーダは、まず、現在ブロックの画素パラメータを決定し、次に、画素パラメータおよび第5閾値に基づいて、現在ブロックがSAWPモードを使用できるか否かを判断することができる。これから分かるように、1つの可能な制限方式は、予測ブロックの画素数が第5閾値より大きい(または以上である)場合にのみSAWPモードを使用することである。ここで、第5閾値の値は、8、16、32などであってもよい。
つまり、本願において、現在ブロックの寸法パラメータがサイズ要件を満たす場合にのみ、現在ブロックは、SAWPモードを使用することができる。
例示的に、本願において、現在復号化待ちフレームが本発明を使用するか否かを決定するための1つのフレームレベルのフラグが存在することができる。例えば、イントラフレーム(例えば、Iフレーム)は、本発明を使用し、インターフレーム(例えば、Bフレーム、Pフレーム)は、本発明を使用しないように設定することができる。または、イントラフレームは、本発明を使用せず、インターフレームは、本発明を使用するように設定することができる。または、一部のインターフレームは、本発明を使用し、一部のインターフレームは、本発明を使用しないように設定することができる。インターフレームも、イントラ予測を使用できるため、インターフレームも、本発明を使用することができる。
この領域が本発明を使用するか否かを決定するための、フレームレベル以下、CUレベル以上(例えば、tile、slice、patch、LCUなど)の1つのフラグが存在することができる。
ステップ602において、イントラ予測モードパラメータが、現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、現在ブロックの重み行列導出モードを決定する。
本願実施例では、デコーダが現在ブロックのイントラ予測モードパラメータを決定した後、イントラ予測モードパラメータが、現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、デコーダは、現在ブロックの重み行列導出モードをさらに決定することができる。
なお、本願では、重み行列導出モードは、現在ブロックによって使用される重み行列を決定するために使用される。具体的には、重み行列導出モードは、重み行列を導出するモードであってもよい。所定の長さと幅を有する予測ブロックの場合、各重み行列導出モードは、1つの重み行列を導出することができ、同じサイズの予測ブロックの場合、異なる重み行列導出モードによって導出される重み行列は異なる。
例示的に、本願において、AVS3のAWPは、56種の重み行列導出モードを有し、VVCのGPMは、64種の重み行列導出モードを有する。
ステップ603において、重み行列導出モードに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、重み行列導出モードに基づいて、現在ブロックの重み行列を決定する。
本願実施例では、イントラ予測モードパラメータが、現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、デコーダは、現在ブロックの重み行列導出モードを決定した後、まず、重み行列導出モードに基づいて現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することができ、同時に、重み行列導出モードに基づいて現在ブロックの重み行列を決定することができる。
なお、本願実施例では、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードは、現在の一般的な任意の1つのイントラ予測モードであってもよく、DC、Planar、Bilinearおよび角度予測モードなどのイントラ予測モードを含むが、これらに限定されない。
任意選択的に、本願において、より広い理解として、イントラ予測モードは、参照画素のサブ画素補間の改善や、MIPFやIPFなどの予測画素のフィルタリングなど、予測を改善するための技術を更に含む。
それに対応して、本願において、DCモード、Planarモード、Bilinearモードおよび角度予測モードなどのイントラ予測モードを基本イントラ予測モードと呼び、MIPFやIPFなどの予測を改善するための技術を改善イントラ予測モードと呼ぶことができる。基本イントラ予測モードは、他のイントラ予測モードに依存せずに独立して予測ブロックを生成することができるイントラ予測モードであり、つまり、参照画素と基本イントラ予測モードを決定することで、予測ブロックを決定することができる。これに対し、改善イントラ予測モードは、独立して予測ブロックを生成できず、基本イントラ予測モードに依存して予測ブロックを決定する必要がある。例えば、ある角度予測モードは、参照画素に基づいて予測ブロックを決定および生成することができ、MIPFは、この角度予測モードに基づいて、異なる位置の画素に対して異なるフィルタを使用して予測ブロックを生成または決定することができる。
例示的に、本願において、第1イントラ予測モードと第2イントラ予測モードは、両方とも基本イントラ予測モードであってもよく、つまり、本願実施例では、2つの異なる基本イントラ予測モードを使用する。この場合、改善イントラ予測モードは、第1イントラ予測モードおよび第2イントラ予測モードとそれぞれ組み合わされて、第1予測ブロックと第2予測ブロックを生成することができる。さらに、本願実施例において「新しい予測ブロック」が生成された後、当該「新しい予測ブロック」を改善することにより、更新された予測ブロックを得ることができる。
例示的に、本願において、第1イントラ予測モードと第2イントラ予測モードは、基本イントラ予測モードと改善イントラ予測モードの組み合わせであってもよく、つまり、本願実施例では、2つの異なるイントラ予測モードの組み合わせを使用する。例えば、第1イントラ予測モードと第2イントラ予測モードは両方とも同じ角度予測モードを使用するが、第1イントラ予測モードは、IPFなどのような改善イントラ予測モードを使用せず、第2イントラ予測モードは、IPFなどのような改善イントラ予測モードを使用する。または、第1イントラ予測モードと第2イントラ予測モードは両方とも同じ角度予測モードを使用するが、第1イントラ予測モードは、ある改善イントラ予測モードの一方のオプションを使用し、第2イントラ予測モードは、当該改善イントラ予測モードの他のオプションを使用する。「新しい予測ブロック」が得られた後、改善イントラ予測モードがまだ存在し得、これにより、「新しい予測ブロック」を改善して更新された予測ブロックを得ることができる。
これから分かるように、本願実施例で提案されるイントラ予測方法は、第1イントラ予測モードと第2イントラ予測モードに基づいて、現在ブロックに対して完全に同一ではない2つの予測ブロックを決定し、1つの重み行列を決定し、重み行列に従って2つの予測ブロックを結合して新しい予測ブロックを得ることができる。
さらに、本願実施例では、すべての可能な重み行列において、各重み行列のすべての点の重みが同じであるわけではない。言い換えれば、少なくとも1つの可能な重み行列は、少なくとも2つの異なる重み値を含む。
任意選択的に、本願において、すべての可能な重み行列は、少なくとも2つの異なる重み値を含む。
任意選択的に、本願において、一部の重み行列は、少なくとも2つの異なる重み値を含み、例えば、本願において、最小重み値が0であり、最大重み値が8である場合、重み値が0である点と、重み値が8であるある点を含む重み行列が存在する。それに対応して、一部の重み行列は、同じ重み値のみが含まれ、例えば、本願において、すべての点の重み値が4である重み行列が存在する。
任意選択的に、本願において、1つの重み行列には、2種の重みしか存在しなく、一方の重みは、対応する点の予測値が、完全に第1予測ブロックに対応する点の値から得られることを示し、もう一方の重みは、対応する点の予測値が、完全に第2予測ブロックに対応する点の値から得られることを示す。例えば、本願において、1つの重み行列には、2種の重みしか存在しなく、それぞれ0と1である。
任意選択的に、本願において、1つの重み行列には、複数種の重みが存在する可能性があり、ここで、最大値と最小値(例えば、0)はそれぞれ、対応する点の予測値が、完全に第1予測ブロックに対応する点の値または第2予測ブロックに対応する点の値から得られることを示す。最大値でも最小値でもない重み値は、対応する点の予測値が第1予測ブロックと第2予測ブロックに対応する点の値の加重平均から得られることを示す。この最大の重み値または最小の重み値からなる領域は、ブレンド領域(blending area)とも呼ばれる。
なお、本願において、重み行列に2種の重みしか存在しない場合、重みが変化する位置は1つの直線を形成し、または重み行列に複数種の重みが存在する場合、ブレンド領域における同じ重みを持つ位置は1つの直線(直線セグメント)を形成する。ここで、当該直線は、すべて水平および垂直である場合もあれば、すべて水平および垂直ではない場合もある。
任意選択的に、本願において、重み行列に2種の重みしか存在しない場合、重みが変化する位置は1つの曲線(曲線セグメント)を形成し、または重み行列に複数種の重みが存在する場合、ブレンド領域における同じ重みを持つ位置は1つの曲線(曲線セグメント)を形成する。
さらに、本願実施例では、デコーダは、GPMまたはAWPと類似する方法を用いて重み行列を決定することができる。具体的には、同じ符号化・復号化規格またはエンコーダ・デコーダにおいて、GPMまたはAWPを使用した場合、この方法を用いて重み行列を決定することができ、これにより、一部の同じロジックを多重化することができる。例えば、AVS3のインター予測でAWPを使用する場合、AVS3において、AWPの方法を用いて重み行列を決定することができる。もちろん、同じ符号化・復号化規格またはエンコーダ・デコーダにおけるGPMまたはAWPとは異なる方法を使用してもよく、例えば、異なるモード番号、または異なるブレンド領域アルゴリズムを使用するか、または異なるパラメータを使用することができる。インター予測では、時間領域上の相関性を利用するため、参照フレームにおける再構成された画像を参照ブロックとして使用する。一方、イントラ予測では、空間領域上の相関性を利用するため、現在ブロックの周囲の再構成された画素を参照画素として使用する。空間領域での距離が近いほど、相関性が強くなり、距離が遠いほど、相関性が低くなる。よって、ある重み行列によって、1つの予測ブロックで使用する画素位置がすべて参照画素から遠くなる場合、この部分は、先行技術よりも適切な予測値を作成できない可能性があるため、このような重み行列はイントラ予測では使用されず、インター予測で使用されることができる。
なお、本願の実施例では、2つのイントラ予測モードを使用する必要があり、一方、他の一般的なイントラ予測方法では、通常、1つのイントラ予測モードのみを使用すればよい。よって、本願実施例で使用されるイントラ予測モードの符号化方法は、他の一般的なイントラ予測方法のイントラ予測モードの符号化方法と異なっていてもよく、それに対応して、本願実施例で使用されるMPM構築方法も、他の一般的なイントラ予測方法のMPM構築方法と異なっていてもよい。
さらに、本願の実施例では、本願実施例で提供されるイントラ予測方法は、ビットストリームで重み行列導出モードに関する情報および2つのイントラ予測モードに関する情報を伝送する必要があるため、重み行列導出モードの場合、AVS3のAWPを例とにとると、56種のモードがあり、逆二値化には5~6ビットが必要である。イントラ予測モードの場合、AVS3を例にとると、66種のモードがあり、2つのMPMが使用される。イントラ予測モードがMPMである場合、逆二値化には2ビットが必要であり、それ以外の場合、二値化には7ビットが必要である。つまり、AVS3では、上記の情報は、最大20(6+7+7)ビットのオーバーヘッドを必要とする。
上記情報の逆二値化オーバーヘッドを低減し、符号化性能を向上させるために、本願の実施例では、デコーダは、現在ブロックのイントラ予測モードと重み行列との相関性を用いて上記情報を決定することができる。具体的には、現在ブロックによって使用されるイントラ予測モードと重み行列との間には、一定の相関性があり、この相関性を利用することにより、デコーダは、イントラ予測モードを復号化する際に、重み行列の情報を利用することができ、さらに、デコーダは、イントラ予測モードを復号化する際に、重み行列導出モードに関する情報を利用することができる。
さらに、本願実施例では、重み行列が2種の重みを含む場合、重みが変化する位置は1つの直線を形成し、または、重み行列が複数種の重みを含む場合、ブレンド領域における同じ重みを持つ位置は1つの直線を形成し、この直線を境界線と呼ぶことができる。境界線自体が角度を持っており、右方向への角度を0とし、反時計回りに角度が増加するように設定することができる。すると、境界線は、水平0度、垂直90度、45度や135度などの傾斜角度、および他の様々な異なる角度を持つことができる。1つの予測ブロックがある重み行列を使用することを選択した場合、対応するテクスチャは、境界線の両側で異なる特性を有する可能性があり、例えば、境界線の両側は2つの異なる角度のテクスチャであるか、または、境界線の一方の側は、ある角度のテクスチャであり、他方の側は、比較的に平坦なテクスチャである。境界線自体が角度を持っているため、境界線は1点に対してイントラ角度予測することによって得られると仮定することができ、それは、現在ブロックのいくつかのテクスチャに近い可能性があるため、この直線と、現在ブロックの2つのイントラ予測モードとの間に相関性がある。
具体的には、本願において、イントラ角度予測により1点から境界線が得られると仮定すると、少なくとも1つのイントラ角度予測モードを探し出すことができ、このイントラ角度予測モードにより境界線を近似的に作成することができる。例えば、水平方向の境界線は、水平イントラ予測モード(AVS3におけるモード24など)にマッチングし、垂直方向の境界線は、垂直イントラ予測モード(AVS3におけるモード12など)にマッチングし、45度の境界線は、左下から右上への45度のイントラ予測モード(AVS3におけるモード30など)にマッチングしてもよいし、右上から左下への225度のイントラ予測モード(AVS3におけるモード6など)にマッチングしてもよい。1つの重み行列に1つの重み値しかない場合、DC、Planar、Bilinearなどの明らかな角度がないモードにマッチングすることができる。これから分かるように、重み行列導出モードは、特定のイントラ予測モードにマッチングすることができるため、重み行列導出モードを用いてイントラ予測モードの復号化を支援することができる。
なお、本願において、重み行列導出モードは、重み行列のインデックスであってもよく、例えば、AWPの56種のモードは、56種の重み行列導出モードと見なすことができる。
例示的に、本願において、マッピング関係テーブルを構築することにより、重み行列導出モードとイントラ角度予測モードとの間のマッピング関係をさらに表すことができる。具体的には、AWPおよびGPMの複数のモードの境界線は、同じ角度を持っており、例えば、AVS3のAWPの境界線の角度は、8モードごとに同じである。56種のAWPモードは、合計7種の境界線角度を有する。境界線角度のインデックスは、重み行列導出モードのモード番号モジュロ8(%8)から得られることができる。例えば、表1は、マッピング関係テーブルであり、AVS3の角度モードを例にとると、境界線角度のインデックス0と1はそれぞれ、2つのイントラ角度予測モードに対応することができ、その1つは、右上隅から左下隅へのイントラ角度予測モードであり、もう1つは、左上隅から右下隅へのイントラ角度予測モードである。具体的な実施では、他の境界線角度のインデックスについても、ほぼ対応する他のイントラ角度予測モードを探し出すか、またはすべての境界線角度のインデックスが1つのイントラ角度予測モードに対応してもよい。
さらに、本願において、一般に、現在ブロックの左側と上側の参照画素を用いてイントラ予測を実行し、空間における画素間の距離が近いほど、相関性が強くなり、空間における距離が遠いほど、相関性が弱くなる。したがって、現在ブロックの一部の画素のみが1つのイントラ予測モードの予測によって得られる場合、この部分の画素の位置は、この部分に使用されるイントラ予測モードの確率に影響を与える。つまり、上記の境界線の位置と角度は、境界線の両側の2つのイントラ予測モードの選択に影響を与える。
本願実施例では、さらに、デコーダは、重み行列導出モードに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定するとき、まず、重み行列導出モードを用いてモードリスト(MPMリスト)を決定することができ、そして、モードリストに基づいて、第1イントラ予測モードと第2イントラ予測モードをさらに決定することができる。
具体的には、本願実施例では、重み行列との相関性を用いて第1イントラ予測モードと第2イントラ予測モードを決定するとき、重み行列導出モードを用いてモードリストを構築することができ、または、MPMを構築するときに重み行列導出モードの情報を用いることができる。ここで、重み行列導出モードは、少なくとも1つのイントラ予測モードに対応することができるため、デコーダは、現在ブロックに対して決定された重み行列導出モードに対応するイントラ予測モードをモードリストに追加するか、または重み行列導出モードに対応するイントラ予測モードに関連するいくつかのイントラ予測モードをモードリストに追加することができる。
さらに、本願実施例では、デコーダは、重み行列導出モードを用いてモードリストを決定するとき、まず、現在ブロックの隣接ブロックに対応するイントラ予測モードを決定し、そして、隣接ブロックに対応するイントラ予測モードを追加待ちモードとして決定することができ、追加待ちモードが所定の追加条件を満たすと決定した後、デコーダは、追加待ちモードをモードリストに追加し、つまり、現在ブロックの隣接ブロックに対応するイントラ予測モードをモードリストに追加することができ、次に、モードリストが所定のリスト長さを満たさない場合、デコーダは引き続き、重み行列導出モードに対応する相関イントラ予測モードを決定し、そして、重み行列導出モードに対応する相関イントラ予測モードを追加待ちモードとして決定することができ、追加待ちモードが所定の追加条件を満たすと決定した場合、当該追加待ちモードをモードリストに追加し、つまり、重み行列導出モードに対応する相関イントラ予測モードをモードリストに追加する。
なお、本願実施例では、デコーダは、隣接ブロックに対応するイントラ予測モードをモードリストに追加するとき、まず、隣接ブロックに対応するシーケンスパラメータを決定し、その後、シーケンスパラメータに基づいて、隣接ブロックに対応するイントラ予測モードをモードリストに順次に追加することができる。ここで、デコーダは、隣接ブロックと現在ブロックとの間の空間的距離に基づいて、対応するシーケンスパラメータを決定することができ、例えば、隣接ブロックと現在ブロックとの間の空間的距離が近いほど、隣接ブロックと現在ブロックとの間の相関性が強くなり、追加処理がより先に実行され、即ち、シーケンスパラメータが小さくなり、隣接ブロックと現在ブロックとの間の空間的距離が遠いほど、隣接ブロックと現在ブロックとの間の相関性が弱くなり、追加処理がより後で実行され、即ち、シーケンスパラメータが大きくなる。
さらに、本願実施例では、デコーダは、重み行列導出モードに対応する相関イントラ予測モードを決定するとき、まず、重み行列導出モードに対応するイントラ予測モードを決定することができ、その後、重み行列導出モードに対応するイントラ予測モードに基づいて、第1インデックス間隔に従って、相関イントラ予測モードを決定することができる。
例示的に、本願実施例では、デコーダは、重み行列導出モードに対応するイントラ予測モードに関連するいくつかのイントラ予測モードを決定するとき、第1インデックス間隔に従って、当該重み行列導出モードに対応するイントラ予測モードのインデックス番号と1つまたは複数の第1インデックス間隔だけ異なるモードを選択することができ、例えば、インデックス番号が1異なるモード、または、インデックス番号が2異なるモードを選択することができる。例えば、重み行列導出モードに対応するイントラ予測モードのインデックスが10であり、第1インデックス間隔が2であると仮定すると、インデックスが8と12である2つのイントラ予測モードを、重み行列導出モードに対応するイントラ予測モードに関連する2つの相関イントラ予測モードとして決定することができる。
なお、本願実施例では、デコーダが現在ブロックの隣接ブロックに対応するイントラ予測モードをモードリストに追加した後、または、デコーダが重み行列導出モードに対応する相関イントラ予測モードをモードリストに追加した後、モードリストが所定のリスト長さを満たさない場合、即ち、モードリストが完全に充填されていない場合、デコーダは、所定の予測モードを追加待ちモードとして決定し続けることができ、そして、追加待ちモードが所定の追加条件を満たすと決定した後、追加待ちモードをモードリストに追加し、つまり、所定の予測モードをモードリストに追加する。
理解できるように、本願において、所定の予測モードは、DCモード、Bilinearモード、Planarモードなどの様々な異なるモードのうちの1つまたは複数を含み得る。
さらに、本願実施例では、デコーダが、現在ブロックの隣接ブロックに対応するイントラ予測モード、重み行列導出モードに対応する相関イントラ予測モード、所定の予測モードをモードリストにそれぞれ追加した後、モードリストが依然として所定のリスト長さを満たさない場合、つまり、モードリストが依然として完全に充填されていない場合、デコーダは、関連付けイントラ予測モードを決定するためにモードリスト内の予測モードを使用することを選択することができ、そして、関連付けイントラ予測モードを追加待ちモードとして決定し、追加待ちモードが所定の追加条件を満たすと決定した場合、追加待ちモードをモードリストに追加し、つまり、モードリストに対応する関連付けイントラ予測モードをモードリストに追加する。
つまり、本願において、現在ブロックの隣接ブロックに対応するイントラ予測モード、重み行列導出モードに対応する相関イントラ予測モードおよび所定の予測モードをモードリストに順次追加した後、モードリストが依然として完全に充填されていない場合、デコーダは、モードリスト内の既存の予測モードに基づいて、対応する関連付けイントラ予測モードを決定し、その後、これらの関連付けイントラ予測モードをモードリストに追加することができる。
例示的に、本願において、デコーダは、モードリスト内の任意の予測モードに基づいて、第2インデックス間隔に従って、当該任意の予測モードに関連する関連付けイントラ予測モードを順次決定することができる。ここで、デコーダは、第2インデックス間隔に従って、当該任意の予測モードのインデックス番号と1つまたは複数の第2インデックス間隔だけ異なるモードを選択することができ、例えば、インデックス番号1異なるモード、または、インデックス番号が2異なるモードを選択することができる。
なお、本願実施例では、現在ブロックの隣接ブロックに対応するイントラ予測モードを追加待ちモードとするか、重み行列導出モードに対応する相関イントラ予測モードを追加待ちモードとするか、または所定の予測モードを追加待ちモードとするか、または関連付けイントラ予測モードを追加待ちモードとするかにも関わらず、デコーダは、追加待ちモードが所定の追加条件を満たすか否かを判定する必要があり、具体的には、追加待ちモードが存在し、且つ追加待ちモードが、モードリスト内のすべての予測モードと異なる場合、追加待ちモードが所定の追加条件を満たすと決定することができ、当該追加待ちモードをモードリストに追加することができる。
それに対応して、追加待ちモードが存在せず、または追加待ちモードが、モードリスト内の1つの予測モードと同じである(重複する)場合、追加待ちモードが所定の追加条件を満たさないと決定することができ、この場合、当該追加待ちモードをモードリストに追加することができず、当該追加待ちモードを直接破棄する。
理解できるように、本願において、現在ブロックは、2つのイントラ予測モードを用いてイントラ予測処理を実行する必要があるため、MPMを構築する際に、より多くの位置のイントラ予測モードを参照するか、またはより多くの隣接ブロックのイントラ予測モードを参照することができる。それに対応して、本願において、現在ブロックによって使用されるモードリストの長さは、他のイントラ予測モードのモードリスト長さと異なってもよく、二値化時のMPMのコードワードが他のモードより短いため、2つのイントラ予測モードがそれぞれMPMである確率を高めることは、符号化・復号化効率を向上させるのに役立つ。
なお、本願において、現在ブロックの第1イントラ予測モードが第2イントラ予測モードと異なることを保証するために、デコーダは、モードリストの構築中に、モードリストに毎回追加されるイントラ予測モードが、モードリスト内の既存のイントラ予測モードと重複しないことを保証しなければならない。
さらに、本願実施例では、デコーダは、重み行列導出モードを用いてモードリストを決定するとき、まず、重み行列導出モードに対応するリスト構築策略を決定することができ、その後、リスト構築策略に基づいて、モードリストをさらに決定することができる。
つまり、本願において、異なる重み行列、即ち、異なる重み行列導出モードについて、デコーダは、異なる構築策略を用いてモードリストを構築することができる。例えば、構築策略に基づいて、重み行列の境界線が0度または90度である場合、つまり、水平または垂直である場合、デコーダは、モードリストを構築するとき、重み行列に対応するイントラ予測モードを考慮に入れることを選択することができ、他の場合では、重み行列に対応するイントラ予測モードを考慮しない。
例示的に、本願において、重み行列の境界線が0度であると仮定すると、例えば、AWPのモード2やモード10(0から数えて)などのモードでは、モードリストを構築するとき、水平イントラ予測モード24をモードリストの候補に追加することができ、重み行列の境界線が90度であると仮定すると、例えば、AWPのモード6やモード14(0から数えて)などのモードでは、モードリストを構築するとき、垂直イントラ予測モード12をモードリストの候補に追加することができる。
理解できるように、本願において、重み行列の境界線が0度に近い範囲で、水平イントラ予測モード、または水平イントラ予測モードとその類似のイントラ予測モードを、モードリストの候補に追加してもよく、重み行列の境界線が90度に近い範囲で、垂直イントラ予測モード、または水平イントラ予測モードとその類似のイントラ予測モードを、モードリストの候補に追加してもよい。
理解できるように、本願において、現在ブロックのイントラ予測に使用される2つのイントラ予測モードは異なり、つまり、第1イントラ予測モードと第2イントラ予測モードは異なり、すると、第2イントラ予測モードの復号化ときに、第1イントラ予測モードの可能性を排除することができる。つまり、第2イントラ予測モードの復号化に第1イントラ予測モードの情報を使用することができる。
本願実施例では、さらに、デコーダは、モードリストの構築中に、候補イントラ予測モードを設定することもできる。ここで、候補イントラ予測モードは、モードリスト内のすべてのイントラ予測モードと異なる。
具体的には、本願において、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なるようにするために、第2イントラ予測モードの決定は、第1イントラ予測モードに依存してもよい。ここで、デコーダは、モードリストに基づいて、第1イントラ予測モードと第2イントラ予測モードを決定するとき、まず、モードリスト内の1つの予測モードを第1イントラ予測モードとして決定することができ、そして、第1イントラ予測モードおよびモードリストに基づいて、第2イントラ予測モードを決定する。
さらに、本願実施例では、デコーダは、モードリスト内の1つの予測モードを第1イントラ予測モードとして決定した後、モードリストから当該予測モードを削除し、そして、候補イントラ予測モードをモードリストに追加することができ、それにより、更新されたモードリストを取得することができ、その後、前記更新されたモードリストから1つの予測モードを選択して前記第2イントラ予測モードとして決定することができ、ここで、選択方式は、任意であってもよい。
つまり、本願実施例では、第1イントラ予測モードが1つのMPMを選択した場合、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なるようにするために、第2イントラ予測モードの選択可能なMPMは1つ減り、第1イントラ予測モードと第2イントラ予測モードの選択可能なモードリストの長さを変更しないようにするために、デコーダは、第1イントラ予測モードを決定した後、1つのMPMを追加することができ、例えば、事前に設定された候補イントラ予測モードをモードリストに追加することができ、それにより、第2イントラ予測モードを決定するときに、依然として第1イントラ予測モードと同じ数のMPMを使用することができる。
例示的に、本願において、第1イントラ予測モードと第2イントラ予測モードの選択可能なMPMの数がN個であると仮定すると、モードリストを構築する際に、まず、N個のMPMと1つの候補のMPMを構築することができ、第1イントラ予測モードの選択可能なMPMは、上記のN個のMPMである。第1イントラ予測モードが、そのうちの1つのMPMを選択した場合、第2イントラ予測モードに対して、第1イントラ予測モードによって選択されたMPMを削除し、そして、第2イントラ予測モードが依然としてN個のMPMから選択できるように、候補のMPMをモードリストに追加する。
本願実施例では、さらに、デコーダは、モードリストの構築中に、モードリストの長さパラメータを(N+1)(Nは正の整数である)に設定することができる。
具体的には、本願において、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なるようにするために、第2イントラ予測モードの決定は、第1イントラ予測モードに依存してもよい。ここで、デコーダは、モードリストに基づいて、第1イントラ予測モードと第2イントラ予測モードを決定するとき、モードリストを用いて第1イントラ予測モードを決定する場合、モードリスト内の最初のN個の予測モードのうちの1つを第1イントラ予測モードとして決定することができ、そして、第1イントラ予測モードおよびモードリストに基づいて、第2イントラ予測モードを決定する。
さらに、本願実施例では、モードリストを用いて第1イントラ予測モードを決定する場合、デコーダは、モードリスト内の最初のN個の予測モードのうちの1つを第1イントラ予測モードとして決定した後、モードリスト内の第1イントラ予測モード以外の他のN個の予測モードを用いて第2イントラ予測モードを決定する。
なお、本願実施例では、デコーダは、モードリストに基づいて、第1イントラ予測モードと第2イントラ予測モードを決定するとき、モードリストが第1イントラ予測モードの決定に使用されない場合、デコーダは、モードリスト内の最初のN個の予測モードのうちの1つを第2イントラ予測モードとして直接決定することができる。
つまり、本願実施例では、イントラ予測モードの選択可能なMPMの数がN個であると仮定すると、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なるようにするために、モードリストを構築するとき、(N+1)個のMPMを構築することができ、第1イントラ予測モードの場合、その選択可能なMPMは、モードリスト内の最初のN個のMPMである。第1イントラ予測モードに対してMPMが選択されない場合、第2イントラ予測モードの選択可能なMPMは、モードリスト内の最初のN個のMPMである。第1イントラ予測モードに対してMPMが選択された場合、第2イントラ予測モードの選択可能なMPMは、モードリスト内の第1イントラ予測モード以外のN個のMPMである。
例示的に、本願において、Nが4であると仮定すると、デコーダは、5つのMPMを含むモードリストを構築することができる。MPM[x]は、(x+1)番目のMPMを表し、つまり、MPM[0]は、最初のMPMを表し、これは、配列のカウントが0から始めるためである。第1イントラ予測モードは、mode0であり、第2イントラ予測モードは、mode1である。第1イントラ予測モードと第2イントラ予測モードが両方ともMPMであり、選択可能なMPMにおける第1イントラ予測モードのインデックス番号がidx0であり、選択可能なMPMにおける第2イントラ予測モードのインデックス番号がidx1であると仮定すると、
mode0=MPM[idx0]
mode1=MPM[idx1<idx0?idx1:idx1+1]
つまり、idx1<idx0である場合、mode1=MPM[idx1]であり、
それ以外の場合、mode1=MPM[idx1+1]である。
これから分かるように、idx0とidx1の値の範囲は、どちらも0~3であり、mode1の値は、idx1だけでなくidx0にも関係する。
例示的に、本願実施例では、復号化側において、デコーダは、ビットストリームを解析して、第1イントラ予測モードに関する変数intra_luma_pred_mode0を決定することができ、さらに、第2イントラ予測モードに関する変数intra_luma_pred_mode1を決定することができ、次に、デコーダは、intra_luma_pred_mode0に基づいて、第1イントラ予測モードIntraLumaPredMode0を決定することができ、同時に、intra_luma_pred_mode1に基づいて、第2イントラ予測モードIntraLumaPredMode1を決定することができる。
本願実施例では、MPMリストを構築するとき、MPM[0]<MPM[1]が保証される。初期MPM[0]>MPM[1]である場合、MPM[0]とMPM[1]を交換することができる。以降の第2ステップと第5ステップに対応させるために、エンコーダも、同様のMPMリストの構築方法を使用する必要がある。
具体的には、変数intra_luma_pred_mode0およびintra_luma_pred_mode1と、バイナリ文字列との関係は、以下の表9に示すとおりであり得る。
ここで、最初のビットを使用して、MPMであるか否かを示し、例えば、「1」は、MPMであることを示し、「0」は、MPMでないことを示す。第1イントラ予測モードがMPMである場合、モードリストに4つのMPMが含まれると仮定すると、2ビットを使用して、モードリスト内のどのMPMを使用するかを示すことができ、即ち、「00、01、10、11」はそれぞれ、モードリスト内の最初のMPM、2番目のMPM、3番目のMPM、4番目のMPMを表す。
具体的には、デコーダが、intra_luma_pred_mode0およびintra_luma_pred_mode1に基づいて、IntraLumaPredMode0とIntraLumaPredMode1をそれぞれ導出する方法は、以下のとおりである。
1、intra_luma_pred_mode0の値が0である場合、IntraLumaPredMode0は、MPM[0]に等しい。そうでない場合、intra_luma_pred_mode0の値が1である場合、IntraLumaPredMode0は、MPM[1]に等しく、intra_luma_pred_mode0の値が2である場合、IntraLumaPredMode0は、MPM[2]に等しく、intra_luma_pred_mode0の値が3である場合、IntraLumaPredMode0は、MPM[3]に等しい。
2、そうでない場合、IntraPredMode0の値(intra_luma_pred_mode0+EipmPuFlag×32)は以下のように設定される:
IntraPredMode0から4を減算した値がMPM[0]より小さい場合、IntraLumaPredMode0は、IntraPredMode0から2を減算した値に等しい;
そうでない場合、IntraPredMode0から3を減算した値がMPM[0]より大きいかつMPM[1]より小さい場合、IntraLumaPredMode0は、IntraPredMode0から1を減算した値に等しい;
そうでない場合、IntraLumaPredMode0は、IntraPredMode0に等しい。
3、intra_luma_pred_mode0の値が4より小さく、且つintra_luma_pred_mode1の値が4より小さく、且つintra_luma_pred_mode1の値がintra_luma_pred_mode0の値以上である場合、mpmPlus=1であり、それ以外の場合、mpmPlus=0である。
4、intra_luma_pred_mode1の値が0である場合、IntraLumaPredMode1は、MPM[0+mpmPlus]に等しい。そうでない場合、intra_luma_pred_mode1の値が1である場合、IntraLumaPredMode1は、MPM[1+mpmPlus]に等しく、intra_luma_pred_mode1の値が2である場合、IntraLumaPredMode1は、MPM[2+mpmPlus]に等しく、intra_luma_pred_mode1の値が3である場合、IntraLumaPredMode1は、MPM[3+mpmPlus]に等しい。
5、そうでない場合、IntraPredMode1の値(intra_luma_pred_mode1+EipmPuFlag×32)は以下のように設定される:
IntraPredMode1から4を減算した値がMPM[0]より小さい場合、IntraLumaPredMode1は、IntraPredMode1から2を減算した値に等しい;
そうでない場合、IntraPredMode1から3を減算した値がMPM[0]より大きいかつMPM[1]より小さい場合、IntraLumaPredMode1は、IntraPredMode1から1を減算した値に等しい;
そうでない場合、IntraLumaPredMode1は、IntraPredMode1に等しい。
ここで、二値変数eipm_pu_flagは、輝度イントラ予測モードの拡張フラグであり、例示的に、その値が「1」であることは、拡張角度イントラ予測モードを使用することを示し、その値が「0」であることは、拡張輝度イントラ予測モードが使用されないことを示す。EipmPuFlagの値は、eipm_pu_flagの値に等しい。具体的には、ビットストリームにeipm_pu_flagがない場合、EipmPuFlagの値は0に等しい。
任意選択的に、本願実施例では、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なることだけを保証し、第1イントラ予測モードと第2イントラ予測モードの選択可能なMPMの数を制限しない場合、デコーダは、候補イントラ予測モードの設定を実行しないか、モードリスト長さを増加させる処理を実行しなくてもよく、この場合、デコーダは、第2イントラ予測モードの復号化方法を変更する必要がある。つまり、第1イントラ予測モードがモードリスト内の1つのMPMを選択した後、第2イントラ予測モードの選択可能なMPMは1つ減り、この場合、第2イントラ予測モードの選択可能なMPMが少なくなったため、第2イントラ予測モードの復号化方法を変更する必要がある。
例示的に、本願において、MPMの数Nが4であり、最初のビットを使用して、MPMであるか否かを示す(例えば、「1」は、MPMであることを示し、「0」は、MPMでないことを示す)ことを例にとると、第1イントラ予測モードがMPMである場合、4つのMPMがあるため、2ビットを使用して、どのMPMであるかを示し、即ち、「00、01、10、11」はそれぞれ、最初のMPM、2番目のMPM、3番目のMPM、4番目のMPMを表す。また、第1イントラ予測モードと第2イントラ予測モードが両方ともMPMである場合、第2イントラ予測モードが利用可能なMPMは3つしかなく、1~2ビットを使用して、どのMPMであるかを示すことができ、例えば、「00、01、10」はそれぞれ、残りの最初のMPM、2番目のMPM、3番目のMPMを表す。これから分かるように、1つの可能性が除外されるため、逆二値化方式を変更することにより、オーバーヘッドを節約することができる。
例示的に、本願において、Nが4であると仮定すると、4つのMPMを含むモードリストを構築することができる。MPM[x]は、(x+1)番目のMPMを表し、つまり、MPM[0]は、最初のMPMを表し、これは、配列のカウントが0から始めるためである。第1イントラ予測モードは、mode0であり、第2イントラ予測モードは、mode1である。第1イントラ予測モードと第2イントラ予測モードが両方ともMPMであり、選択可能なMPMにおける第1イントラ予測モードのインデックス番号がidx0であり、選択可能なMPMにおける第2イントラ予測モードのインデックス番号がidx1であると仮定すると、
mode0=MPM[idx0]
mode1=MPM[idx1<idx0?idx1:idx1+1]
つまり、idx1<idx0である場合、mode1=MPM[idx1]であり、
それ以外の場合、mode1=MPM[idx1+1]である。
これから分かるように、idx0の値の範囲は0~3であり、idx1の値の範囲は0~2であり、mode1の値は、idx1だけでなくidx0にも関係する。idx0は、2ビットを使用して逆二値化することができ、idx1は、1~2ビットを使用して逆二値化することができる。
例示的に、本願実施例では、復号化側において、デコーダは、ビットストリームを解析して、第1イントラ予測モードに関する変数intra_luma_pred_mode0を決定することができ、さらに、第2イントラ予測モードに関する変数intra_luma_pred_mode1を決定することができ、次に、デコーダは、intra_luma_pred_mode0に基づいて、第1イントラ予測モードIntraLumaPredMode0を決定することができ、同時に、intra_luma_pred_mode1に基づいて、第2イントラ予測モードIntraLumaPredMode1を決定することができる。
本願実施例では、MPMリストを構築するとき、MPM[0]<MPM[1]が保証される。初期MPM[0]>MPM[1]である場合、MPM[0]とMPM[1]を交換することができる。以降の第2ステップと第5ステップに対応させるために、エンコーダも、同様のMPMリストの構築方法を使用する必要がある。
具体的には、変数intra_luma_pred_mode0およびintra_luma_pred_mode1と、バイナリ文字列との関係は、以下の表10に示すとおりであり得る。
intra_luma_pred_mode0の値が4より小さい場合、intra_
luma_pred_mode1とバイナリ文字列との関係は、以下の表11に示す通りであり、そうでない場合、intra_luma_pred_mode1とバイナリ文字列との関係は、intra_luma_pred_mode0とバイナリ文字列との関係と同じである。
具体的には、デコーダが、intra_luma_pred_mode0およびintra_luma_pred_mode1に基づいて、IntraLumaPredMode0とIntraLumaPredMode1をそれぞれ導出する方法は、以下のとおりである。
1、intra_luma_pred_mode0の値が0である場合、IntraLumaPredMode0は、MPM[0]に等しい。そうでない場合、intra_luma_pred_mode0の値が1である場合、IntraLumaPredMode0は、MPM[1]に等しく、intra_luma_pred_mode0の値が2である場合、IntraLumaPredMode0は、MPM[2]に等しく、intra_luma_pred_mode0の値が3である場合、IntraLumaPredMode0は、MPM[3]に等しい。
2、そうでない場合、IntraPredMode0の値(intra_luma_pred_mode0+EipmPuFlag×32)は以下のように設定される:
IntraPredMode0から4を減算した値がMPM[0]より小さい場合、IntraLumaPredMode0は、IntraPredMode0から2を減算した値に等しい;
そうでない場合、IntraPredMode0から3を減算した値がMPM[0]より大きいかつMPM[1]より小さい場合、IntraLumaPredMode0は、IntraPredMode0から1を減算した値に等しい;
そうでない場合、IntraLumaPredMode0は、IntraPredMode0に等しい。
3、intra_luma_pred_mode0の値が4より小さく、且つintra_luma_pred_mode1の値が4より小さく、且つintra_luma_pred_mode1の値がintra_luma_pred_mode0の値以上である場合、mpmPlus=1であり、それ以外の場合、mpmPlus=0である。
4、intra_luma_pred_mode1の値が0である場合、IntraLumaPredMode1は、MPM[0+mpmPlus]に等しい。そうでない場合、intra_luma_pred_mode1の値が1である場合、IntraLumaPredMode1は、MPM[1+mpmPlus]に等しく、intra_luma_pred_mode1の値が2である場合、IntraLumaPredMode1は、MPM[2+mpmPlus]に等しく、intra_luma_pred_mode1の値が3である場合、IntraLumaPredMode1は、MPM[3+mpmPlus]に等しい。
5、そうでない場合、IntraPredMode1の値(intra_luma_pred_mode1+EipmPuFlag×32)は以下のように設定される:
IntraPredMode1から4を減算した値がMPM[0]より小さい場合、IntraLumaPredMode1は、IntraPredMode1から2を減算した値に等しい;
そうでない場合、IntraPredMode1から3を減算した値がMPM[0]より大きいかつMPM[1]より小さい場合、IntraLumaPredMode1は、IntraPredMode1から1を減算した値に等しい;
そうでない場合、IntraLumaPredMode1は、IntraPredMode1に等しい。
ここで、二値変数eipm_pu_flagは、輝度イントラ予測モードの拡張フラグであり、例示的に、その値が「1」であることは、拡張角度イントラ予測モードを使用することを示し、その値が「0」であることは、拡張輝度イントラ予測モードが使用されないことを示す。EipmPuFlagの値は、eipm_pu_flagの値に等しい。具体的には、ビットストリームにeipm_pu_flagがない場合、EipmPuFlagの値は0に等しい。
本願実施例では、さらに、デコーダは、重み行列導出モードに基づいて現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定するとき、さらに、現在ブロックの隣接ブロックに対応するイントラ予測モード、重み行列導出モードに対応する相関イントラ予測モード、所定の予測モードに対して順次に並べ替え処理を実行することができ、それにより、予測モードの候補リストを取得することができ、ここで、所定の予測モードは、DCモード、Bilinearモード、Planarモードなどの様々な予測モードのうちの1つまたは複数を含み、次に、デコーダは、予測モードの候補リストに基づいて第1イントラ予測モードと第2イントラ予測モードを決定することができる。
具体的には、本願実施例では、重み行列との相関性を利用して第1イントラ予測モードと第2イントラ予測モードを決定するとき、さらに、重み行列導出モードに対応するイントラ予測モードまたは重み行列導出モードに対応するイントラ予測モードに関連するいくつかのイントラ予測モードは、二値化ときに通常のイントラ予測モードより短いコードワードが割り当てられるか、またはイントラ予測モードにおける可能な最長コードワードより短いコードワードが割り当てられることができ、つまり、これらのコードワードは、最長ではない。よって、重み行列導出モードに対応するイントラ予測モードまたは重み行列導出モードに対応するイントラ予測モードに関連するいくつかのイントラ予測モードは、他のモードよりも選択される確率がと高いと見なすことができる。
つまり、本願実施例では、第1イントラ予測モードおよび第2イントラ予測モードは、MPMを使用しなくてもよく、第1イントラ予測モードおよび第2イントラ予測モードによって使用され得るすべてのイントラ予測モードに対して並べ替え処理を実行することによって、予測モードの候補リストを生成することができ、予測モードの候補リスト内の上位のイントラ予測モードには、より短いコードワードが割り当てられ、予測モードの候補リスト内の下位のイントラ予測モードには、より長いコードワードが割り当てられる。ここで、並べ替え処理とき、現在ブロックの隣接ブロックのイントラ予測モードを参照してもよいし、現在ブロックの重み行列導出モードを参照してもよい。
さらに、本願実施例では、デコーダは、重み行列導出モードに基づいて現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定するとき、さらに、重み行列導出モードに対応する第1イントラ予測モードの参照セットを確立し、同時に重み行列導出モードに対応する第2イントラ予測モードの参照セットを確立することができ、そして、第1イントラ予測モードの参照セットに基づいて第1イントラ予測モードを決定し、同時に第2イントラ予測モードの参照セットに基づいて第2イントラ予測モードを決定することができる。
つまり、本願実施例では、現在ブロックの重み行列導出モードに対して、デコーダは、当該重み行列導出モードに対応する第1イントラ予測モードのすべての可能なイントラ予測モードに対して並べ替え処理を実行して、第1イントラ予測モードの参照セットを生成することができ、同時に、当該重み行列導出モードに対応する第2イントラ予測モードのすべての可能なイントラ予測モードに対して並べ替え処理を実行して、第2イントラ予測モードの参照セットを生成することができ、それにより、第1イントラ予測モードの参照セットから第1イントラ予測モードを決定することができ、第2イントラ予測モードの参照セットから第1イントラ予測モードを決定することができる。
さらに、本願実施例では、複雑さを低減するために、クラスタリング手法によって上記の表2のようなルックアップテーブルを絞り込むことができ、例えば、重み行列導出モードに対して分類処理を実行して、重み行列導出モードに対応するタイプを決定することができ、同じタイプの重み行列導出モードの場合、対応する第1イントラ予測モードの可能なすべてのイントラ予測モードの順序は同じであり、さらに、対応する第2イントラ予測モードの可能なすべてのイントラ予測モードの順序は同じである。
さらに、本願実施例では、複雑さを低減するために、クラスタリング手法によって上記の表2のようなルックアップテーブルを絞り込むことができ、例えば、イントラ予測モードに対して分類処理を実行して、イントラ予測モードに対応するタイプを決定することができ、例えば、DC、Planar、Bilinearなどの非角度モードが1つのタイプに属し、角度モードは、いくつかの弧度の範囲に従って分類処理を実行することができ、例えば、45度ごと、即ち1/4円が1つのタイプに属するか、または22.5度ごと、即ち1/8円が1つのタイプに属する。具体的には、角度モードをいくつかの不等間隔に分割することもできる。
本願実施例では、さらに、本願で提案されるイントラ予測方法は、現在ブロックの予測値を決定するために2つの異なるイントラ予測モードと1つの重み行列を使用する必要があるため、本願では、オーバーヘッドを削減するために、現在ブロックの2つのイントラ予測モードを制限することによりビット数を減らすことができ、同時に、現在ブロックの重み行列導出モードを制限することによりビット数を減らすこともできる。
例示的に、本願において、AVS3の最初の33個の予測モードが角度範囲全体をほぼカバーしているため、AVS3では、最初の33種類の予測モードのみを使用することで良好な性能を保証することができ、復号化中に、EIPMを使用しないように調整すればよい。さらに、現在ブロックによって使用される可能性のあるイントラ予測モードの数をさらに圧縮および制限して、最終的に、5ビットのみを用いて復号化が実行されるようにすることもでき、それにより、オーバーヘッドをさらに削減し、より良い性能を達成することができる。
任意選択的に、本願において、現在ブロックによって使用される可能性のあるイントラ予測モードの数を減らすことにより、2つのイントラ予測モードを復号化するオーバーヘッドを削減することができる。例えば、AVS3では、66種のイントラ予測モードが使用される場合、1つのイントラ予測モードを復号化するのに最大7ビットが必要であり、33種のイントラ予測モードのみが使用され且つPCMモードが使用されない場合、1つのイントラ予測モードを復号化するのに最大6ビットのみが必要である。
さらに、本願において、イントラ予測モードが通常、DC、Planar、Bilinearなどの非角度予測モードと、角度予測モードとを含むことを考慮すると、実現プロセスでは、各非角度モードは、1セットのロジックを使用し、すべての角度モードが1セットのロジックを使用するかまたは角度モードがいくつかのセットのロジックを使用し、異なるロジック間では、多重化できる一部の回路もあれば、多重化できない一部の回路もある可能性がある。したがって、現在ブロックによって使用される可能のあるイントラ予測モードの数を制限するために、角度予測モードのみを選択するか、非角度予測モードのみを選択するように制限することができる。
以下では、第2イントラ予測モードの使用可能なイントラ予測モードを制限することを例として説明する。なお、対応する制限は、第1イントラ予測モードの制限にも適用できる。
方式1:第2イントラ予測モードは、非角度予測モード内の指定された1つのイントラ予測モードしか使用できない。
例えば、第2イントラ予測モードは、DCモードしか使用できず、または、第2イントラ予測モードは、Bilinearモードしか使用できない。第2イントラ予測モードについては1つの可能な選択肢しかないため、本発明のブロックが符号化および復号化に使用される場合、第2イントラ予測モードを決定することなく、デフォルトで第2イントラ予測モードを導出して現在ブロックを予測することができ、符号化時に第2イントラ予測モードをビットストリームに書き込む必要がなく、復号化時にビットストリームから、第2イントラ予測モードが何であるかを解析する必要がない。
本実施例において、輝度予測に適用されることを例としてさらに説明する。現在ブロック(CU)がSAWP予測モードを使用する場合、ビットストリームを解析して、対応する重み行列導出モードと第1イントラ予測モードを取得する必要がある(ここで、第2イントラ予測モードにとって、1つの可能な選択肢しかなく、この場合、第2イントラ予測モードが所定のイントラ予測モードであることがデフォルトで導出される)。
それに対応する復号化プロセスは、表12に示すとおりである。
ここで、空間角加重予測モードインデックスsawp_idxは、空間角加重予測の重み行列を決定するために使用され、SawpIdxの値は、sawp_idxの値に等しい。ビットストリームにsawp_idxがない場合、SawpIdxの値は0に等しい。
空間角加重予測の第1輝度予測モードintra_luma_pred_mode0は、空間角加重予測の輝度ブロックの第1イントラ予測モードIntraLumaPredMode0を決定するために使用され、intra_luma_pred_mode0に基づいて、第1イントラ予測モードIntraLumaPredMode0を決定する。
第2イントラ予測モードIntraLumaPredMode1をデフォルトで導出する。
第1イントラ予測モードIntraLumaPredMode0および第2イントラ予測モードIntraLumaPredMode1に基づいて、イントラ予測サンプル行列predMatrix0およびpredMatrix1をそれぞれ決定する。SawpIdxに基づいて、重み行列SawpWeightArrayYを決定する。
2つのイントラ予測サンプル行列predMatrix0、predMatrix1および重み行列SawpWeightArrayYに基づいて、新しい予測サンプル行列predMatrixSawpを決定する。
具体的な方法は、以下の通りである。
空間角加重予測モードの予測サンプル行列predMatrixSawpにおける要素predMatrixSawp[x][y]の値は、((predMatrix0[x][y]*AwpWeightArrayY[x][y]+predMatrix1[x][y]*(8-AwpWeightArrayY[x][y])+4)>>3)である。
方式2:第2イントラ予測モードは、非角度モード、または非角度モード内の一部のモードしか使用できない。
例えば、第2イントラ予測モードは、DCモードとBilinearモードしか使用できず、第2イントラ予測モードにとって2つの可能な選択肢しかないため、1ビットのintra_luma_pred_mode1で、第2イントラ予測モードがDCモードであるかBilinearモードであるかを示すことができる。符号化のとき、第2イントラ予測モードについて、DCとBilinearの2つの可能性のみを試行する必要があり、第2イントラ予測モードがどのイントラ予測モードであるかを決定した後、intra_luma_pred_mode1を決定することができる。対応するブロックを復号化するプロセスでは、第2イントラ予測モードについて、1ビットのintra_luma_pred_mode1を解析して、DCであるかBilinearであるかを決定するだけで済む。
他の実施例では、第2イントラ予測モードは、非角度モードしか使用できず、つまり、第2イントラ予測モードにとって、3つの可能な選択肢しかなく、2ビットのintra_luma_pred_mode1で、第2イントラ予測モードがどのイントラ予測モードであるかを示すことができる。
本実施例において、輝度予測に適用されることを例としてさらに説明する。現在ブロック(CU)がSAWP予測モードを使用する場合、ビットストリームを解析して、対応する重み行列導出モードと2つのイントラ予測モードを取得する必要がある。具体的な復号化プロセスは、表13に示すとおりである。
空間角加重予測モードインデックスsawp_idxは、空間角加重予測の重み行列を決定するために使用され、SawpIdxの値は、sawp_idxの値に等しい。ビットストリームにsawp_idxがない場合、SawpIdxの値は0に等しい。
空間角加重予測の第1輝度予測モードintra_luma_pred_mode0は、空間角加重予測の輝度ブロックの第1イントラ予測モードIntraLumaPredMode0を決定するために使用され、空間角加重予測の第2輝度予測モードintra_luma_pred_mode1は、空間角加重予測の輝度ブロックの第2イントラ予測モードIntraLumaPredMode1を決定するために使用される。
intra_luma_pred_mode1の値が0である場合、第2イントラ予測モードIntraLumaPredMode1は、DCモード「Intra_Luma_DC」であり、intra_luma_pred_mode1の値が1である場合、第2イントラ予測モードIntraLumaPredMode1は、Bilinearモード「Intra_Luma_Bilinear」である。
intra_luma_pred_mode0およびintra_luma_pred_mode1に基づいて、第1イントラ予測モードIntraLumaPredMode0および第2イントラ予測モードIntraLumaPredMode1をそれぞれ決定する。第1イントラ予測モードIntraLumaPredMode0および第2イントラ予測モードIntraLumaPredMode1に基づいて、イントラ予測サンプル行列predMatrix0およびpredMatrix1をそれぞれ決定する。SawpIdxに基づいて、重み行列SawpWeightArrayYを決定する。
2つのイントラ予測サンプル行列predMatrix0、predMatrix1および重み行列SawpWeightArrayYに基づいて、新しい予測サンプル行列predMatrixSawpを決定する。具体的な方法は、以下の通りである。
空間角加重予測モードの予測サンプル行列predMatrixSawpにおける要素predMatrixSawp[x][y]の値は、((predMatrix0[x][y]*AwpWeightArrayY[x][y]+predMatrix1[x][y]*(8-AwpWeightArrayY[x][y])+4)>>3)である。
方式3:第2イントラ予測モードは、すべての角度予測モードまたは一部の角度予測モードしか使用できない。
第2イントラ予測モードの選択可能なイントラ予測モードが減らすため、ビットストリームにおける第2イントラ予測モードを表すintra_luma_pred_mode1のビット数も減少する。AVS3において、第2イントラ予測モードがすべての角度モードしか使用できないことを例にとると、AVS3には、DC、Plane、Bilinearという3種の非角度モードがある。つまり、AVS3において、第2イントラ予測モードは、0、1、2以外の他のモードしか使用できない。
1つの特定の実施例において、第2イントラ予測モードは、非角度予測モード以外のすべてのイントラ予測モードを使用することができる(即ち、第2イントラ予測モードは、すべての角度予測モードを使用することができる)。
1つの特定の実施例において、第2イントラ予測モードは、すべての角度予測モードのうちの一部を使用することができる。ここで、一部の角度予測モードは、最初の33種の角度予測モードであってもよく、または、一部の角度予測モードは、所定の間隔に従って、33種の角度予測モードまたは65種の角度予測モードから選択された一部の角度予測モードであってもよく、例えば、当該所定の間隔は、1、2または他の正の整数であってもよい。
表3は、輝度予測ブロックのイントラ予測モードの一例を示し、ここで、モード番号IntraLumaPredModeは、対応するイントラ予測モードに対応する。0は、DCモードを表し、1は、Planeモードを表し、2は、Bilinearモードを表し、12は、垂直モードを表し、24は、水平モードを表し、33は、PCMモードを表し、その他は、水平モードと垂直モード以外の角度モードであり、具体的なモード番号が表す角度は、図7を参照することができる。
第2イントラ予測モードが、0、1、2以外のモードしか使用できないことを例として、第2イントラ予測モードの選択可能なMPMモードリストの構築プロセスについて説明する。
各イントラ予測モードが4つのMPMを使用できることを例にとると、長さが8であるモードリストを構築することができ、ここで、AVS3には、3つの非角度予測モードしかないため、非角度予測モードの数は3以下であるべきである。ここで、最初の4つのMPMは、第1イントラ予測モードの選択に使用できる。第2イントラ予測モードは、MPMリスト内の第1イントラ予測モード以外の非角度モードの最初の4つのMPMを選択することができる。
図16を例として説明すると、構築されたMPMモードリストが、図に示すとおりであると仮定すると、第1イントラ予測モードは、最初の4つのMPMのうちの1つを選択することができ、第1イントラ予測モードが12、即ち、MPMリスト内の最初のMPMを使用すると仮定すると、第2イントラ予測モードが選択可能なMPMは、前から後ろの順に照会され、最初のMPM(12)は、第1イントラ予測モードによって使用されているため、利用不可能である。2番目のMPM(24)は、使用されておらず、利用可能な角度モードであるため、第2イントラ予測モードの利用可能なモードとなり、3番目(0)、4番目(2)、5番目(1)に対応するMPMは、使用されていないが、非角度モードであるため、利用不可能である。6番目(6)、7番目(8)、8番目(10)のMPMは、使用されておらず、利用可能な角度モードであるため、第2イントラ予測モードの利用可能なモードとなり、したがって、24、6、8、10は、第2イントラ予測モードのMPMインデックスが0、1、2、3であるモードにそれぞれ対応する。
図14に示すブロックを例として、MPMリストを構築する例を示す。
MPMモードリストの第1部分リストの長さを8に設定する。
現在ブロックはEであり、MPMモードが完全に充填されるまで、隣接ブロックF、G、C、A、B、Dによって使用されるイントラ予測モードをMPMモードリストに順次に追加する。隣接ブロックF、G、C、A、B、Dのうちのある隣接ブロックの位置が利用不可能であるかイントラ予測モードを使用していない場合、この位置をスキップする。ここで、本願において、図14に示すブロックに対応するイントラ予測モードを使用することに加えて、他のブロックに対応するイントラ予測モードを使用することもでき、例えば、現在ブロックの右側または下側のブロックに対応するイントラ予測モードを使用することができる。
さらに、MPMモードリストが完全に充填されていない場合、MPMモードリストが完全に充填されるまで、重み行列導出モードに対応するイントラ予測モードをMPMモードリストに追加する。
MPMモードリストが完全に充填されていない場合、MPMモードリストが完全に充填されるまで、DCモード、Bilinearモードを順次にMPMモードリストに追加する。
MPMモードリストが完全に充填されていない場合、MPMモードリストが完全に充填されるまで、MPMモードリスト内の最初のイントラ予測モードから始めて、当該最初のイントラ予測モードのモード番号と1、-1、2、-2、3、-3だけ異なるイントラ予測モードをMPMモードリストに追加する。当該最初のイントラ予測モードのモード番号と1、-1、2、-2、3、-3だけ異なるイントラ予測モードのうちのあるイントラ予測モードが不正で、0未満または最大値より大きいか、またはPCMである場合、当該不正なイントラ予測モードを破棄する。
MPMモードリスト内の最初のイントラ予測モードのモード番号が2番目のイントラ予測モードのモード番号より大きい場合、この2つのMPMは交換される。
MPMモードリストに追加する動作中、各入れ待ちイントラ予測モードが、MPMモードリスト内の既存のすべてのイントラ予測モードと異なる場合にのみ、MPMモードリストに入れることができ、そうでない場合は破棄される。
本実施例において、輝度予測に適用されることを例としてさらに説明する。現在ブロック(CU)がSAWP予測モードを使用する場合、ビットストリームを解析して、対応する重み行列導出モードと2つのイントラ予測モードを取得する必要がある。具体的な復号化プロセスは、表14に示すとおりである。
空間角加重予測モードインデックスsawp_idxは、空間角加重予測の重み行列を決定するために使用され、SawpIdxの値は、sawp_idxの値に等しい。ビットストリームにsawp_idxがない場合、SawpIdxの値は0に等しい。
空間角加重予測の第1輝度予測モードintra_luma_pred_mode0は、空間角加重予測の輝度ブロックの第1イントラ予測モードIntraLumaPredMode0を決定するために使用される。
空間角加重予測の第2輝度予測モードintra_luma_pred_mode1は、空間角加重予測の輝度ブロックの第2イントラ予測モードIntraLumaPredMode1を決定するために使用される。
intra_luma_pred_mode0およびintra_luma_pred_mode1に基づいて、第1イントラ予測モードIntraLumaPredMode0および第2イントラ予測モードIntraLumaPredMode1をそれぞれ決定し、当該プロセスでは、上記に記載の方法を使用する。第1イントラ予測モードIntraLumaPredMode0および第2イントラ予測モードIntraLumaPredMode1に基づいて、イントラ予測サンプル行列predMatrix0およびpredMatrix1をそれぞれ決定する。SawpIdxに基づいて、重み行列SawpWeightArrayYを決定する。
2つのイントラ予測サンプル行列predMatrix0、predMatrix1および重み行列SawpWeightArrayYに基づいて、新しい予測サンプル行列predMatrixSawpを決定する。
具体的な方法は、以下の通りである。
空間角加重予測モードの予測サンプル行列predMatrixSawpにおける要素predMatrixSawp[x][y]の値は、((predMatrix0[x][y]*AwpWeightArrayY[x][y]+predMatrix1[x][y]*(8-AwpWeightArrayY[x][y])+4)>>3)である。
第2イントラ予測モードの選択可能なイントラ予測モードを制限する上記のすべてのプロセスにおいて、導出または決定された第2イントラ予測モードが不正なモードである場合、所定の対応関係に応じて修正を行うことによって、第2イントラ予測モードを正当なモードに修正する必要がある。具体的には、第2イントラ予測モードが角度予測モードに限定される場合、得られた第2イントラ予測モードがモード0、1、2であると、不正なモードを回避する(即ち、利用不可能な非角度予測モードを制限する)ために、第2イントラ予測モードは、所定の対応関係に従って、1つまたはいくつかの利用可能な角度モードに対応する必要がある。例えば、第2イントラ予測モードの復号化によってモード0が得られた場合、所定の対応関係に従って、第2イントラ予測モードをモード12、即ち垂直モードに設定し、第2イントラ予測モードの復号化によってモード1が得られた場合、所定の対応関係に従って、第2イントラ予測モードをモード18、即ち、右下45度に向いた方向のモードに設定し、第2イントラ予測モードの復号化によってモード2が得られた場合、所定の対応関係に従って、第2イントラ予測モードをモード24、即ち、水平モードに設定する。
なお、本願実施例では、イントラ予測モードの数を制限するとき、すべての予測ブロックのイントラ予測モードの数を直接制限することもできるし、現在ブロックの寸法パラメータを参照して、異なるサイズの現在ブロックに対して異なる制限方式を使用することもできる。
例示的に、本願において、64×64または32×32サイズの予測ブロックのような、寸法パラメータが大きい予測ブロックについて、すべてのイントラ予測モードを用いて現在ブロックの2つのイントラ予測モードを決定することができ、8x8サイズの予測ブロックのような、寸法パラメータが小さい予測ブロックについて、一部のイントラ予測モードを用いて現在ブロックの2つのイントラ予測モードを決定することができ、つまり、現在ブロックによって使用可能なイントラ予測モードの数を制限することができ、これは、寸法パラメータが小さい予測ブロックにとって、微小な角度差による影響が明らかではないためである。
理解できるように、本願では、まず、1つの寸法閾値、例えば、第2寸法閾値を設定することができ、現在ブロックの寸法パラメータが第2寸法閾値より小さい場合、微小な角度差は大きな影響を及ばないと見なすことができ、よって、現在ブロックによって選択可能なイントラ予測モードの数を制限することができる。具体的には、現在ブロックの2つのイントラ予測モードのインデックス番号を制限することにより、イントラ予測モードの数を制限することができる。
例示的に、本願において、現在ブロックの寸法パラメータが第2寸法閾値より小さい場合、第2モードインデックス範囲に基づいて、第1イントラ予測モードと前記第2イントラ予測モードを決定することができ、ここで、前記第2モードインデックス範囲は、イントラ予測モードのインデックス番号を制限するために使用される。具体的には、第2モードインデックス範囲は、第2下限閾値および第2上限閾値を含み得、まず、前記第1イントラ予測モードの第1インデックス番号を決定することができ、同時に、前記第2イントラ予測モードの第2インデックス番号を決定することができ、そして、前記第1インデックス番号と前記第2インデックス番号の両方を、前記第2下限閾値より大きく設定し、前記第1インデックス番号と前記第2インデックス番号の両方を、前記第2上限閾値より小さく設定する。
つまり、本願において、第2モードインデックス範囲によって、現在ブロックの第1イントラ予測モードのインデックス番号と第2イントラ予測モードのインデックス番号を制限することにより、イントラ予測モードの数の制限を完了することができる。
例えば、AVS3において、第2モードインデックス範囲は、0~32であってもよく、つまり、第2モードインデックス範囲によって、第1イントラ予測モードのインデックス番号と第2イントラ予測モードのインデックス番号を0~32の範囲に制限することができ、これにより、現在ブロックは、最初の33種の予測モードを用いて、第1イントラ予測モードと第2イントラ予測モードを決定することができる。
理解できるように、本願において、第1寸法閾値は、第2寸法閾値と同じであってもよいし異なってもよく、第1モードインデックス範囲は、第2モードインデックス範囲と同じであってもよいし異なってもよい。
さらに、第1イントラ予測モードおよび第2イントラ予測モードの選択可能なイントラ予測モードが制限されない場合、決定された2つのイントラ予測モードの予測能力は対応しており、対応する重み行列を処理する必要がない。しかし、選択可能なイントラ予測モードが制限された後は、2つのイントラ予測モードの予測能力が変更されるため、対応する重み行列も調整される必要がある。
具体的には、図2に示すAWP重み行列において、重み行列0(番号0)の右下隅の白い部分は、完全に第1イントラ予測モードから得られ、左上隅の黒い部分は、完全に第2イントラ予測モードから得られ、灰色の部分は、2つのイントラ予測モードを重み付けすることによって得られる。左上隅の予測にDCモードを使用し、右下隅の予測に水平モードを使用する必要がある場合、第1イントラ予測モードを水平モードに設定し、第2イントラ予測モードをDCモードに設定することができる。逆に、左上隅の予測に水平モードを使用し、右下隅の予測にDCモードを使用する必要がある場合、第1イントラ予測モードをDCモードに設定し、第2イントラ予測モードを水平モードに設定することができる。しかし、一方のイントラ予測モードが制限される場合、例えば、第2イントラ予測モードが角度モードしか使用できない場合、既存の方法によれば、AWP重み行列0の場合、第2イントラ予測モードがDCモードを使用できないため、左上隅の予測にDCモードを使用できない。一方のイントラ予測モードが制限される場合、例えば、第2イントラ予測モードがDCモードしか使用できない場合、既存の方法によれば、上記のAWP重み行列の黒い部分は、DCモードを用いた予測によってのみ得ることができる。つまり、第2イントラ予測モードの制限は、予測の効果に大きく影響する。
したがって、本願において、場合によっては、重み行列を調整する必要があり、つまり、第1イントラ予測モードに対応する重み行列と第2イントラ予測モードに対応する重み行列を交換する必要がある。
方式1:1つの重み行列交換フラグビットが追加され、このフラグビットは、2つの予測ブロックの重み行列を交換するか否かを指示し、復号化プロセスにおいて、ビットストリームを解析して当該フラグビットを取得することにより、重み行列の交換を実行する必要があるか否かを決定する。
本実施例において、輝度予測に適用されることを例としてさらに説明する。現在ブロック(CU)がSAWP予測モードを使用する場合、ビットストリームを解析して、対応する重み行列導出モードと2つのイントラ予測モードを取得する必要がある。
具体的な復号化プロセスは、表15に示すとおりである。
空間角加重予測モードインデックスsawp_idxは、空間角加重予測の重み行列を決定するために使用され、SawpIdxの値は、sawp_idxの値に等しい。ビットストリームにsawp_idxがない場合、SawpIdxの値は0に等しい。
空間角加重予測の第1輝度予測モードintra_luma_pred_mode0は、空間角加重予測の輝度ブロックの第1イントラ予測モードIntraLumaPredMode0を決定するために使用される。
空間角加重予測の第2輝度予測モードintra_luma_pred_mode1は、空間角加重予測の輝度ブロックの第2イントラ予測モードIntraLumaPredMode1を決定するために使用される。
空間角加重予測のスイッチフラグswitch_flagについて、SwitchFlagの値は、switch_flagの値に等しい。
intra_luma_pred_mode0およびintra_luma_pred_mode1に基づいて、第1イントラ予測モードIntraLumaPredMode0および第2イントラ予測モードIntraLumaPredMode1をそれぞれ決定する。第1イントラ予測モードIntraLumaPredMode0および第2イントラ予測モードIntraLumaPredMode1に基づいて、イントラ予測サンプル行列predMatrix0およびpredMatrix1をそれぞれ決定する。SawpIdxに基づいて、重み行列SawpWeightArrayYを決定する。
2つのイントラ予測サンプル行列predMatrix0、predMatrix1および重み行列SawpWeightArrayYに基づいて、新しい予測サンプル行列predMatrixSawpを決定する。具体的な方法は、以下の通りである。
SwitchFlagの値が0である場合、
空間角加重予測モードの予測サンプル行列predMatrixSawpにおける要素predMatrixSawp[x][y]の値は、((predMatrix0[x][y]*AwpWeightArrayY[x][y]+predMatrix1[x][y]*(8-AwpWeightArrayY[x][y])+4)>>3)である。
そうでない場合、つまり、SwitchFlagの値が1である場合、
空間角加重予測モードの予測サンプル行列predMatrixSawpにおける要素predMatrixSawp[x][y]の値は、((predMatrix1[x][y]*AwpWeightArrayY[x][y]+predMatrix0[x][y]*(8-AwpWeightArrayY[x][y])+4)>>3)である。
方式2:重み行列に基づいて、2つの予測ブロックの重みを交換するか否かを決定する。
具体的には、第1イントラ予測モードの選択可能なイントラ予測モードが制限されない場合、第1イントラ予測モードの選択可能なイントラ予測モードの数が多く、予測能力が強く、第2イントラ予測モードの選択可能なイントラ予測モードは制限されているため、選択肢が少なく、予測能力が弱く、この場合、重み行列に基づいて、重みを自動的に割り当てることができる。割り当て結果によれば、最終予測ブロックにおいて、第1イントラ予測モードの影響を受ける点が多く、第2イントラ予測モードの影響を受ける点が少ない。
本実施例において、輝度予測に適用されることを例としてさらに説明する。現在ブロック(CU)がSAWP予測モードを使用する場合、ビットストリームを解析して、対応する重み行列導出モードと2つのイントラ予測モードを取得する必要がある。
具体的な復号化プロセスは、表16に示すとおりである。
空間角加重予測モードインデックスsawp_idxは、空間角加重予測の重み行列を決定するために使用され、SawpIdxの値は、sawp_idxの値に等しい。ビットストリームにsawp_idxがない場合、SawpIdxの値は0に等しい。
空間角加重予測の第1輝度予測モードintra_luma_pred_mode0は、空間角加重予測の輝度ブロックの第1イントラ予測モードIntraLumaPredMode0を決定するために使用される。
空間角加重予測の第2輝度予測モードintra_luma_pred_mode1は、空間角加重予測の輝度ブロックの第2イントラ予測モードIntraLumaPredMode1を決定するために使用される。
intra_luma_pred_mode0およびintra_luma_pred_mode1に基づいて、第1イントラ予測モードIntraLumaPredMode0および第2イントラ予測モードIntraLumaPredMode1をそれぞれ決定する。第1イントラ予測モードIntraLumaPredMode0および第2イントラ予測モードIntraLumaPredMode1に基づいて、イントラ予測サンプル行列predMatrix0およびpredMatrix1をそれぞれ決定する。SawpIdxに基づいて、重み行列SawpWeightArrayYを決定する。
2つのイントラ予測サンプル行列predMatrix0、predMatrix1および重み行列SawpWeightArrayYに基づいて、新しい予測サンプル行列predMatrixSawpを決定する。具体的な方法は、以下の通りである。
SawpIdxが第1セットに属する場合、
空間角加重予測モードの予測サンプル行列predMatrixSawpにおける要素predMatrixSawp[x][y]の値は、((predMatrix0[x][y]*AwpWeightArrayY[x][y]+predMatrix1[x][y]*(8-AwpWeightArrayY[x][y])+4)>>3)である。
そうでない場合、つまり、SawpIdxが第2セットに属する場合、
空間角加重予測モードの予測サンプル行列predMatrixSawpにおける要素predMatrixSawp[x][y]の値は、((predMatrix1[x][y]*AwpWeightArrayY[x][y]+predMatrix0[x][y]*(8-AwpWeightArrayY[x][y])+4)>>3)である。
ここで、第1セットは、0~27を含む。第2セットは、28~55を含む。
方式3:第1イントラ予測モードおよび/または第2イントラ予測モードのモード番号に基づいて、2つの予測ブロックの重みを交換するか否かを決定する。
隣接する角度予測モードによって論理的に使用される予測角度の間には一定の差があるが、補間フィルタリングおよびブロックサイズの影響により、特に、比較的小さなブロックでは、隣接する角度予測モードによって作成される予測ブロックの差はあまり大きくない。したがって、2つの予測ブロックの重みを交換するか否かのロジックは、イントラ予測モードのモード番号に設定され、例えば、あるイントラ予測モード(第1イントラ予測モードまたは第2イントラ予測モード)が偶数の角度予測モードを使用することは、2つの予測ブロックの重みが交換されないことを示し、当該イントラ予測モードが奇数の角度予測モードを使用することは、2つの予測ブロックの重みが交換されることを示す。
例1:
第2イントラ予測モードがある非角度モードまたはいくつかの非角度モードしか使用できない場合、例えば、第2イントラ予測モードがDCモードしか使用できない場合、第1イントラ予測モードのモード番号の奇偶性に従って、2つの予測ブロックの重みを交換するか否かを判断することができる。第1イントラ予測モードのモード番号が偶数である場合、2つの予測ブロックの重みは交換されず、そうでない場合(第1イントラ予測モードのモード番号が奇数である場合)、2つの予測ブロックの重みが交換される。
本実施例において、輝度予測に適用されることを例としてさらに説明する。現在ブロック(CU)がSAWP予測モードを使用する場合、ビットストリームを解析して、対応する重み行列導出モードと第1イントラ予測モードを取得する必要がある。さらに、第2イントラ予測モードにとって、1つの選択可能なイントラ予測モードしかない場合、第2イントラ予測モードが所定のイントラ予測モードであることがデフォルトで導出される。
具体的な復号化プロセスは、表17に示すとおりである。
空間角加重予測モードインデックスsawp_idxは、空間角加重予測の重み行列を決定するために使用され、SawpIdxの値は、sawp_idxの値に等しい。ビットストリームにsawp_idxがない場合、SawpIdxの値は0に等しい。
空間角加重予測の第1輝度予測モードintra_luma_pred_mode0は、空間角加重予測の輝度ブロックの第1イントラ予測モードIntraLumaPredMode0を決定するために使用される。
intra_luma_pred_mode0に基づいて、第1イントラ予測モードIntraLumaPredMode0を決定する。第2イントラ予測モードIntraLumaPredMode1をデフォルトで導出する。第1イントラ予測モードIntraLumaPredMode0および第2イントラ予測モードIntraLumaPredMode1に基づいて、イントラ予測サンプル行列predMatrix0およびpredMatrix1をそれぞれ決定する。SawpIdxに基づいて、重み行列SawpWeightArrayYを決定する。
2つのイントラ予測サンプル行列predMatrix0、predMatrix1および重み行列SawpWeightArrayYに基づいて、新しい予測サンプル行列predMatrixSawpを決定する。具体的な方法は、以下の通りである。
IntraLumaPredMode0が偶数である場合、空間角加重予測モードの予測サンプル行列predMatrixSawpにおける要素predMatrixSawp[x][y]の値は、((predMatrix0[x][y]*AwpWeightArrayY[x][y]+predMatrix1[x][y]*(8-AwpWeightArrayY[x][y])+4)>>3)である。
そうでない場合、つまり、IntraLumaPredMode0が奇数である場合、空間角加重予測モードの予測サンプル行列predMatrixSawpにおける要素predMatrixSawp[x][y]の値は、((predMatrix1[x][y]*AwpWeightArrayY[x][y]+predMatrix0[x][y]*(8-AwpWeightArrayY[x][y])+4)>>3)である。
例2:
第2イントラ予測モードが、非角度モードしか使用できない場合、第1イントラ予測モードまたは第2イントラ予測モードのモード番号の奇偶性を使用して、2つの予測ブロックの重み行列を交換するか否かを判断することができる。例えば、第2イントラ予測モードのモード番号が偶数である場合、2つの予測ブロックの重み行列は交換されず、そうでない場合(第2イントラ予測モードのモード番号が奇数である場合)、2つの予測ブロックの重み行列が交換される。
本実施例において、輝度予測に適用されることを例としてさらに説明する。現在ブロック(CU)がSAWP予測モードを用いる場合、ビットストリームを解析して、対応する重み行列導出モードと2つのイントラ予測モードを取得する必要がある。
具体的な復号化プロセスは、表18に示すとおりである。
空間角加重予測モードインデックスsawp_idxは、空間角加重予測の重み行列を決定するために使用され、SawpIdxの値は、sawp_idxの値に等しい。ビットストリームにsawp_idxがない場合、SawpIdxの値は0に等しい。
空間角加重予測の第1輝度予測モードintra_luma_pred_mode0は、空間角加重予測の輝度ブロックの第1イントラ予測モードIntraLumaPredMode0を決定するために使用される。
空間角加重予測の第2輝度予測モードintra_luma_pred_mode1は、空間角加重予測の輝度ブロックの第2イントラ予測モードIntraLumaPredMode1を決定するために使用される。
intra_luma_pred_mode0およびintra_luma_pred_mode1に基づいて、第1イントラ予測モードIntraLumaPredMode0および第2イントラ予測モードIntraLumaPredMode1をそれぞれ決定する。第1イントラ予測モードIntraLumaPredMode0および第2イントラ予測モードIntraLumaPredMode1に基づいて、イントラ予測サンプル行列predMatrix0およびpredMatrix1をそれぞれ決定する。SawpIdxに基づいて、重み行列SawpWeightArrayYを決定する。
2つのイントラ予測サンプル行列predMatrix0、predMatrix1および重み行列SawpWeightArrayYに基づいて、新しい予測サンプル行列predMatrixSawpを決定する。具体的な方法は、以下の通りである。
IntraLumaPredMode1が偶数である場合、空間角加重予測モードの予測サンプル行列predMatrixSawpにおける要素predMatrixSawp[x][y]の値は、((predMatrix0[x][y]*AwpWeightArrayY[x][y]+predMatrix1[x][y]*(8-AwpWeightArrayY[x][y])+4)>>3)である。
そうでない場合、つまり、IntraLumaPredMode1が奇数である場合、空間角加重予測モードの予測サンプル行列predMatrixSawpにおける要素predMatrixSawp[x][y]の値は、((predMatrix1[x][y]*AwpWeightArrayY[x][y]+predMatrix0[x][y]*(8-AwpWeightArrayY[x][y])+4)>>3)である。
任意選択的に、本願において、現在ブロックによって使用可能な重み行列導出モードの数を減らすことにより、重み行列導出モードのオーバーヘッドを削減することができる。例えば、AVS3では、56種の重み行列導出モードが使用される場合、1つの重み行列導出モードを復号化するには最大6ビットが必要であり、32種の重み行列導出モードのみが使用される場合、1つの重み行列導出モードを復号化するには最大5ビットが必要である。さらに、現在ブロックによって使用可能な重み行列導出モードの数をさらに圧縮および制限することもでき(より少ないフラグビットを用いて、どの重み行列を選択するかまたは重み行列導出モードを識別するためである)、例えば、16種の重み行列導出モードのみが使用され、最初的に、4ビットのみを使用して復号化を実行することが実現され、それにより、オーバーヘッドがさらに削減され、より良い性能を達成する。
なお、本願実施例では、重み行列導出モードの数を制限するとき、すべての予測ブロックの重み行列導出モードの数を直接制限することもできるし、現在ブロックの寸法パラメータを参照して、異なるサイズの現在ブロックに対して異なる制限方式を使用することもできる。
例示的に、本願において、64×64または32×32サイズの予測ブロックのような、寸法パラメータが大きい予測ブロックについて、すべての重み行列導出モードを用いて現在ブロックの重み行列導出モードを決定することができ、8x8サイズの予測ブロックのような、寸法パラメータが小さい予測ブロックについて、一部の重み行列導出モードを用いて現在ブロックの重み行列導出モードを決定することができ、つまり、現在ブロックによって使用可能な重み行列導出モードの数を制限することができ、これは、寸法パラメータが小さい予測ブロックにとって、微小な角度差による影響が明らかではないためである。
理解できるように、本願では、まず、1つの寸法閾値、例えば、第1寸法閾値を設定することができ、現在ブロックの寸法パラメータが第1寸法閾値より小さい場合、微小な角度差は大きな影響を及ばないと見なすことができ、よって、現在ブロックによって選択可能な重み行列導出モードの数を制限することができる。具体的には、現在ブロックの重み行列導出モードのインデックス番号を制限することにより、重み行列導出モードの数を制限することができる。
例示的に、本願において、現在ブロックの寸法パラメータが第1寸法閾値より小さい場合、第1モードインデックス範囲に基づいて、重み行列導出モードを決定することができ、ここで、第1モードインデックス範囲は、重み行列導出モードのインデックス番号を制限するために使用される。具体的には、第1モードインデックス範囲は、第1下限閾値および第1上限閾値を含み得、重み行列導出モードのインデックス番号を第1下限閾値および第1上限閾値とそれぞれ比較することができ、重み行列導出モードのインデックス番号が第1下限閾値より小さい場合、重み行列導出モードのインデックス番号を第1下限閾値に設定することができ、重み行列導出モードのインデックス番号が第1上限閾値より大きい場合、重み行列導出モードのインデックス番号を第1上限閾値に設定することができる。
つまり、本願において、第1モードインデックス範囲によって、現在ブロックの重み行列導出モードのインデックス番号を制限することができ、それにより、重み行列導出モードの数の制限を完了することができる。
例えば、AVS3において、第1モードインデックス範囲は、0~32であってもよく、つまり、第1モードインデックス範囲によって、重み行列導出モードのインデックス番号を0~32の範囲に制限することができ、これにより、現在ブロックは、最初の33種の重み行列導出モードを用いて、現在ブロックの重み行列導出モードを決定することができる。
例1:
AWPで使用できる重み行列は、番号0~55に対応する重み行列を含み、具体的には、図2に示すとおりである。本願において、SAWPでは、32種の重み行列を使用し、つまり、SAWPで使用できる重み行列は、AWPの重み行列0~7、16~23、32~39、48~55(図2における対応する番号に対応する重み行列)に対応する。つまり、SAWPの重み行列0~7は、AWPの重み行列0~7に対応し、SAWPの重み行列8~15は、AWPの重み行列16~23に対応し、SAWPの重み行列16~23は、AWPの重み行列32~39に対応し、SAWPの重み行列24~31は、AWPの重み行列48~55に対応し、この32種の重み行列の確率が等しいと仮定すると、5ビットのフラグビットsawp_idxが必要である。
この例では、角度加重予測モード(AWP)と空間角加重予測モード(SAWP)の重み行列の導出について説明する。
MとNは、現在予測ユニット(PU)の幅と高さを表し、重み行列の導出方法は、以下の通りである:
(1)stepIdx、angleIdx、およびsubAngleIdxを導出する:
角度加重予測モード(AWP)の重み行列を導出する場合、AwpIdxが入力され、即ち:
stepIdx=(AwpIdx>>3)-3、
modAngNum=AwpIdx%8;
そうでない場合、空間角加重予測モード(SAWP)の重み行列を導出する場合、SawpIdxが入力され、即ち:
stepIdx=((SawpIdx>>3)<<1)-3、
modAngNum=SawpIdx%8。
さらに、subAngleIdxの導出プロセスは、以下の表19のとおりである。
(2)参照重みリストReferenceWeight[x]を導出するプロセスは、表20に示すとおりである。
(3)現在画素位置の輝度重みを導出するプロセスは、表21に示すとおりである。
(4)現在画素位置の色重みを導出するプロセスは、表22に示すとおりである。
角度加重予測モード(AWP)の重み行列を導出する場合、WeightArrayYをAwpWeightArrayYに割り当て、WeightArrayUVをAwpWeightArrayUVに割り当てる。
空間角加重予測モード(SAWP)の重み行列を導出する場合、WeightArrayYをSawpWeightArrayYに割り当て、WeightArrayUVをSawpWeightArrayUVに割り当てる。
例2:この例では、SAWPで使用される重み行列は24種のみであり、SAWPが使用できる重み行列は、図2に示すAWPの重み行列8~15、24~31、40~47に対応する。つまり、SAWPの重み行列0~7は、AWPの重み行列8~15に対応し、SAWPの重み行列8~15は、AWPの重み行列24~31に対応し、SAWPの重み行列16~23は、AWPの重み行列40~47に対応し、4~5ビットのフラグビットsawp_idxが必要である。
この例では、角度加重予測モード(AWP)と空間角加重予測モード(SAWP)の重み行列の導出について説明する。
MとNは、現在予測ユニット(PU)の幅と高さを表し、重み行列の導出方法は、以下の通りである:
(1)stepIdx、angleIdx、およびsubAngleIdxを導出する:
角度加重予測モード(AWP)の重み行列を導出する場合、AwpIdxが入力され、即ち:
stepIdx=(AwpIdx>>3)-3、
modAngNum=AwpIdx%8。
そうでない場合、空間角加重予測モード(SAWP)の重み行列を導出する場合、SawpIdxが入力され、即ち:
stepIdx=((SawpIdx>>3)<<1)-2、
modAngNum=SawpIdx%8。
subAngleIdxの導出プロセスは、表23に示す通りである。
(2)参照重みリストReferenceWeight[x]を導出するプロセスは、表24に示すとおりである。
(3)現在画素位置の輝度重みを導出するプロセスは、表25に示すとおりである。
(4)現在画素位置の色重みを導出するプロセスは、表26に示すとおりである。
角度加重予測モード(AWP)の重み行列を導出する場合、WeightArrayYをAwpWeightArrayYに割り当て、WeightArrayUVをAwpWeightArrayUVに割り当てる。
空間角加重予測モード(SAWP)の重み行列を導出する場合、WeightArrayYをSawpWeightArrayYに割り当て、WeightArrayUVをSawpWeightArrayUVに割り当てる。
さらに、上記のSAWPの24種の重み行列内のインデックス番号10とインデックス番号14は、AWPの56種の重み行列内のインデックス番号26とインデックス番号30にそれぞれ対応するので、これらは、二分木分割(BT)の水平分割と垂直分割の分割方式と類似するため、実際に選択される確率が低く、より長いバイナリ文字列をそれらに割り当てることができ、選択される確率が高い重み行列に、より短いバイナリ文字列を割り当てることができる。
ステップ604において、第1イントラ予測モード、第2イントラ予測モードおよび重み行列に基づいて、現在ブロックの予測値を決定する。
本願実施例では、デコーダは、前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定した後、前記第1イントラ予測モード、前記第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値をさらに決定することができる。
理解できるように、本願実施例では、デコーダは、前記第1イントラ予測モード、前記第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定するとき、まず、前記第1イントラ予測モードに基づいて、前記現在ブロックの第1予測値を決定することができ、同時に、前記第2イントラ予測モードに基づいて、前記現在ブロックの第2予測値を決定することができ、そして、前記重み行列を用いて前記第1予測値および前記第2予測値に対して加重平均計算を実行することにより、最終的に前記現在ブロックの予測値を得ることができる。
本願実施例では、さらに、イントラ予測モードパラメータが、前記現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、デコーダが復号化処理を実行する方法は、以下のステップをさらに含み得る。
ステップ701において、モードリストに基づいて、現在ブロックの第1初期モードと第2初期モードを決定。
本願実施例では、現在ブロックのイントラ予測モードパラメータを決定した後、イントラ予測モードパラメータが、現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、デコーダは、現在ブロックによって使用されるモードリスト(MPMリスト)をさらに決定することができる。そして、前記モードリストに基づいて、前記現在ブロックの第1初期モードと第2初期モードを決定することができる。
なお、本願では、モードリストは、現在ブロックによって使用されるイントラ予測モードを決定するために使用される。具体的には、デコーダは、使用確率が比較的に高いいくつかのイントラ予測モードを用いてモードリストを構築することができ、それにより、モードリストに基づいて現在ブロックの2つのイントラ予測モードを決定することができる。
理解できるように、本願実施例では、デコーダは、モードリストを決定するとき、隣接ブロックの予測モードを用いてMPMを構築するなど、MPMを構築するための一般的な方式を採用することもできるし、本願で提案されたイントラ予測方法に係るモードリストの構築方法を使用することもでき、つまり、現在ブロックの重み行列導出モードを用いてモードリストを構築することもできる。
つまり、本願において、モードリストの構築方法は、上記の実施例におけるステップ102で提供されるモードリスト構築方法を使用することを選択してもよいし、他のMPM構築方法を使用してもよく、本願は、これに対して特に限定しない。
さらに、本願実施例では、デコーダは、現在ブロックによって使用されるモードリストを決定した後、まず、前記モードリストに基づいて、前記現在ブロックの第1初期モードと第2初期モードを決定することができる。
例示的に、本願において、N個のMPMを含むモードリストを構築し、Nが2である場合、nビット(mpm_idx)を使用して、モードリスト内のどのMPMが選択されるかを示すことができ、つまり、第1初期モードと第2初期モードを決定し、そして、1ビットを使用して、オフセットする必要があるか否か(offset_needed)を示す。例えば、4つのMPMを含むモードリストが構築され、モードリスト内でイントラ予測モードを選択するとき、2ビット(mpm_idx)を使用して、モードリスト内のどのMPMが初期モードとして選択されるかを示す必要があり、表3に示すmpm_idxの値とバイナリ文字列との対応関係は、予測モードの決定に使用されることができる。
ステップ702において、オフセットモードパラメータを決定し、前記オフセットモードパラメータが、オフセット処理を実行することを示す場合、前記現在ブロックのオフセットパラメータを決定する。
本願実施例では、デコーダはさらに、オフセットモードパラメータを決定することができ、ここで、オフセットモードパラメータは、オフセットする必要があるか否かを決定するために使用される。具体的には、オフセットモードパラメータが、オフセット処理を実行することを示す場合、デコーダは、現在ブロックのオフセットパラメータをさらに決定することができる。
なお、本願実施例では、1ビットを使用して、オフセットする必要があるか否か(offset_needed)を示すことができ、つまり、ビットストリームを解析してオフセットモードパラメータを決定することにより、現在ブロックの予測モード(第1初期モードまたは第2初期モード)をオフセットする必要があるか否かをさらに決定することができる。
さらに、本願実施例では、オフセットモードパラメータが、オフセット処理を実行することを示す場合、デコーダはさらに、ビットストリームを解析して現在ブロックのオフセットパラメータを決定することができる。ここで、オフセットパラメータは、オフセット方式とオフセット量とを含み得、つまり、オフセットパラメータを決定することにより、デコーダは、現在ブロックの第1初期モードまたは第2初期モードに対してオフセット処理を実行するか否かを決定することができる。
なお、本願実施例では、デコーダは、ビットストリームを解析して、オフセットパラメータにおけるオフセット方式とオフセット量を決定することもできる。例えば、1ビット(sign)を使用して、オフセット方式が「+」であるか「-」であるかを示し、いくつかのビット(offset)を使用して、オフセット量を示す。
任意選択的に、本願において、オフセット方式とオフセット量を事前に設定することができ、例えば、デフォルトで特定の量(1、2、4など)しかオフセットできないように設定することができる。
ステップ703において、第1初期モードおよびオフセットパラメータに基づいて、現在ブロックの第1イントラ予測モードを決定し、第2初期モードおよびオフセットパラメータに基づいて、現在ブロックの第2イントラ予測モードを決定する。
本願実施例では、デコーダは、前記現在ブロックのオフセットパラメータを決定した後、前記第1初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第1イントラ予測モードを決定することができ、同時に、前記第2初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第2イントラ予測モードを決定することができる。
さらに、本願実施例では、デコーダは、前記モードリストおよび前記オフセットパラメータに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定するとき、前記オフセット方式および前記オフセット量に基づいて、前記第1初期モードに対してオフセット処理を実行し、それにより、前記第1イントラ予測モードを決定することができ、同時に、前記オフセット方式および前記オフセット量に基づいて、前記第2初期モードに対してオフセット処理を実行し、それにより、前記第2イントラ予測モードを決定することができる。
つまり、本願実施例では、デコーダは、まず、ビットストリームを解析して、モードリスト内のどの予測モードを用いるかを決定することができ、つまり、まず、モードリストから初期モードを決定し、その後、オフセットパラメータに基づいて、初期モードに対してオフセット処理を実行することにより、最終的に現在ブロックによって使用されるイントラ予測モードを決定することができる。
理解できるように、本願実施例では、第1初期モードおよび第2初期モードに対して同じオフセットパラメータを使用することができ、つまり、第1初期モードおよび第2初期モードに基づいて、同じオフセット方式およびオフセット量を用いてオフセット処理を実行する。それに対応して、第1初期モードおよび第2初期モードに対して異なるオフセットパラメータを使用することもでき、つまり、第1初期モードに基づいて、1つのオフセット方式を用いてオフセット処理を実行し、同時に、第2初期モードに基づいて、別のオフセット方式を用いてオフセット処理を実行し、ここで、この2つのオフセット方式に対応するオフセット方式とオフセット量は、完全に同一ではなくてもよい。
つまり、本願において、第1初期モードのオフセット処理に対応するオフセット方式とオフセット量は、第2初期モードのオフセット処理に対応するオフセット方式とオフセット量と同じであってもよいし、異なってもよい。
任意選択的に、本願において、第1初期モードに対応するオフセットモードパラメータは、第2初期モードに対応するオフセットモードパラメータと異なってもよく、つまり、第1初期モードおよび第2初期モードのオフセットモードパラメータをそれぞれ設定することにより、次のようないくつかの異なる処理方式を実現することができる:第1初期モードと第2初期モードの両方に対してオフセット処理を実行するか、または、第1初期モードと第2初期モードの両方に対してオフセット処理を実行しないか、または、第1初期モードに対してオフセット処理を実行し、第2初期モードに対してオフセット処理を実行しないか、または、第1初期モードに対してオフセット処理を実行せず、第2初期モードに対してオフセット処理を実行する。
さらに、本願実施例では、オフセットモードパラメータが、オフセット処理を実行しないことを指示する場合、デコーダは、前記モードリストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを直接決定することができる。
ステップ704において、第1イントラ予測モードおよび第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定する。
本願実施例では、デコーダは、モードリストおよびオフセットパラメータに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定した後、前記第1イントラ予測モードおよび前記第2イントラ予測モードに基づいて、前記現在ブロックの予測値をさらに決定することができる。
なお、本願実施例では、デコーダは、現在ブロックの予測値を決定するとき、まず、前記第1イントラ予測モードに基づいて、前記現在ブロックの第1予測値を決定することができ、同時に、前記第2イントラ予測モードに基づいて、前記現在ブロックの第2予測値を決定することができ、そして、現在ブロックの重み行列を用いて前記第1予測値および前記第2予測値に対して加重平均計算を実行することにより、最終的に前記現在ブロックの予測値を得ることができる。
本願実施例では、さらに、上記のステップ701~ステップ704に示すイントラ予測方法により、デコーダは、まず、モードリストから1つの予測モードを選択し、そして、当該予測モードに基づいて、オフセットする必要があるか否かを決定することができ、オフセットする必要がある場合、オフセット方式とオフセット量をさらに決定し、ここで、オフセット量は、オフセットモードインデックス番号として理解することができる。
なお、本願実施例では、モードリストに対してオフセット処理を実行することによって現在ブロックの予測モードを決定する方法は、本願実施例のSAWPモードに適用されることもできるし、他のイントラ予測モードに適用されることもできるし、任意のインター予測モードに適用されることもでき、本願は、これに対して特に限定しない。
例示的に、本願において、4つのMPMを構築することが規定される場合、2ビットを使用して、どの予測モードを選択するかを決定し、1ビットを使用して、オフセット処理を実行するか否かを決定することができる。選択されたイントラ予測モードがMPMの1である場合、どのMPMであるかを示すための2ビット(mpm_idx)と、オフセットが必要ないことを示すための1ビット(offset_needed)の合計3ビットが必要である。
さらに、本願実施例では、オフセットモードパラメータが、オフセット処理を実行することを示す場合、オフセットパラメータをさらに決定することができ、ここで、オフセットパラメータは、1ビット(sign)のオフセット方式を含み得、いくつかのビット(offset)のオフセット量をさらに含み得る。
つまり、本願において、オフセットする必要がある場合、1ビット(sign)を使用して、オフセット方式が「+」であるか「-」であるかを示すことができ、さらに、オフセット量の設定方法は、デフォルトで特定の量(1、2、または4など)しかオフセットできないようにしてもよいし、または、いくつかのオーバーヘッドを使用してオフセット量を示してもよい。例えば、2と4などの2つの選択可能なオフセット量があると仮定すると、1ビットを使用して、オフセット量が2であるか4であるかを示すことができる。複数の選択可能なオフセット量がある場合、いくつかのビット(offset)を使用して、オフセット量を示すことができ、表4に示すoffsetの値とバイナリ文字列との対応関係は、オフセット量の決定のために使用されることができる。例示的に、復号化側において、デコーダは、ビットストリームを解析して、現在ブロックの初期モード(mpm_idx)を決定することができ、オフセットモードパラメータ(offset_needed)を決定することもでき、オフセットモードパラメータoffset_neededが、オフセット処理を実行することを示す場合、デコーダはさらに、オフセット方式(sign)とオフセット量(offset)を決定することができ、例えば、当該イントラ予測モードの復号化方法は、以下の表27に示すとおりである:
ここで、signとoffsetの順序は交換されてもよく、offsetの可能性が1つしかない場合、上記の表では、offsetがない。
具体的には、イントラ予測モードのモード番号がintra_pred_modeであり、変数offset_valueの値が0であると仮定すると、offset_neededが1である場合、offset_valueの値はoffsetの値に等しく、signが1である場合、offset_valueの値は、-offset_valueの値に等しく、intra_pred_modeの値は、MPM[mpm_idx]の値にoffset_valueの値を加算した値に等しい。
さらに、本願において、イントラ予測モードがMPMしか使用できないように設定することができ、この場合、イントラ予測モードを復号化するとき、mpm_idxのみを解析すればよく、intra_pred_modeの値は、MPM[mpm_idx]の値に等しい。
本願実施例は、イントラ予測方法を提供し、エンコーダ・デコーダは、2つの異なるイントラ予測モードによって現在ブロックの2つの異なる予測ブロックを決定することができ、そして、様々な重み行列を用いて予測ブロックを結合することにより、最終的により複雑な予測ブロックを得ることができ、これにより、予測の精度を向上させることができ、さらに、エンコーダ・デコーダは、重み行列と予測モードとの相関性を用いてMPMリストを構築することもでき、これにより、複雑さを大幅に低減することができる。つまり、本願で提案されるイントラ予測方法は、イントラ予測の品質を向上させながら複雑さを低減することができ、これにより、圧縮性能を向上させることができる。
上記の実施例に基づいて、本願の別の実施例は、デコーダに適用されるイントラ予測方法を提供し、図19は、イントラ予測方法の実現プロセスの概略図4であり、図19に示すように、デコーダによって実行されるイントラ予測方法は、以下のステップを含み得る。
ステップ801において、ビットストリームを解析して、現在ブロックのイントラ予測モードパラメータを決定する。
ステップ802において、イントラ予測モードパラメータが、現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、現在ブロックのモードリストを決定する。
ステップ803において、モードリストに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定する。
ステップ804において、第1イントラ予測モードおよび第2イントラ予測モードに基づいて、現在ブロックの予測値を決定する。
本願実施例では、デコーダは、ビットストリームを解析して、現在ブロックのイントラ予測モードパラメータを決定し、イントラ予測モードパラメータが、現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、デコーダはさらに、前記現在ブロックのモードリストを決定することができる。
なお、本願実施例では、SAWPモードは、イントラ予測方法の1つであり、具体的には、SAWPモードによれば、現在ブロックに対して2つの異なるイントラ予測モードを決定し、その後、この2つの異なるイントラ予測モードに基づいて、2つの予測ブロックをそれぞれ決定し、次に、1つの重み行列を決定し、重み行列に従って2つの予測ブロックを結合することにより、最終的に新しい予測ブロックを得ることができ、つまり、現在ブロックの予測ブロックを得ることができる。
任意選択的に、本願において、デコーダは、まず、前記現在ブロックの寸法パラメータを決定することができ、そして、前記寸法パラメータに基づいて、前記現在ブロックが前記SAWPモードを使用するか否かを決定することができる。具体的には、前記幅が第1閾値より大きく、前記高さが第2閾値より大きい場合、前記現在ブロックが前記SAWPモードを使用すると決定し、または、前記幅が第3閾値より小さく、前記高さが第4閾値より大きい場合、前記現在ブロックが前記SAWPモードを使用すると決定する。
任意選択的に、本願において、デコーダは、まず、前記現在ブロックの画素パラメータを決定することができ、そして、前記画素パラメータと第5閾値に基づいて、前記現在ブロックが前記SAWPモードを使用するか否かを判断することができる。
任意選択的に、本願において、デコーダは、まず、現在ブロックのイントラ予測モードパラメータを決定し、そして、前記イントラ予測モードパラメータに基づいて、前記現在ブロックが前記SAWPモードを使用するか否かを判断することができる。
なお、本願では、重み行列導出モードは、現在ブロックによって使用される重み行列を決定するために使用される。具体的には、重み行列導出モードは、重み行列を導出するモードであってもよい。所定の長さと幅を有する予測ブロックの場合、各重み行列導出モードは、1つの重み行列を導出することができ、同じサイズの予測ブロックの場合、異なる重み行列導出モードによって導出される重み行列は異なる。
例示的に、本願において、AVS3のAWPは、56種の重み行列導出モードを有し、VVCのGPMは、64種の重み行列導出モードを有する。
さらに、本願実施例では、デコーダは、前記重み行列導出モードを用いてモードリストを決定するとき、まず、前記現在ブロックの隣接ブロックに対応するイントラ予測モードを決定し、そして、前記隣接ブロックに対応するイントラ予測モードを追加待ちモードとして決定することができ、追加待ちモードが所定の追加条件を満たすと決定した後、デコーダは、前記追加待ちモードを前記モードリストに追加し、つまり、現在ブロックの隣接ブロックに対応するイントラ予測モードをモードリストに追加することができ、次に、モードリストが所定のリスト長さを満たさない場合、デコーダは引き続き、前記現在ブロックの重み行列導出モードを決定し、重み行列導出モードに対応する相関イントラ予測モードを決定し、そして、前記重み行列導出モードに対応する相関イントラ予測モードを前記追加待ちモードとして決定することができ、追加待ちモードが前記所定の追加条件を満たすと決定した場合、当該追加待ちモードを前記モードリストに追加し、つまり、重み行列導出モードに対応する相関イントラ予測モードをモードリストに追加する。
なお、本願実施例では、デコーダが現在ブロックの隣接ブロックに対応するイントラ予測モードをモードリストに追加した後、または、デコーダが重み行列導出モードに対応する相関イントラ予測モードをモードリストに追加した後、モードリストが前記所定のリスト長さを満たさない場合、即ち、モードリストが完全に充填されていない場合、デコーダは、所定の予測モードを前記追加待ちモードとして決定し続けることができ、そして、追加待ちモードが前記所定の追加条件を満たすと決定した後、追加待ちモードを前記モードリストに追加し、つまり、所定の予測モードをモードリストに追加する。
理解できるように、本願において、所定の予測モードは、DCモード、Bilinearモード、Planarモードなどの様々な異なるモードのうちの1つまたは複数を含み得る。
さらに、本願実施例では、デコーダが、現在ブロックの隣接ブロックに対応するイントラ予測モード、重み行列導出モードに対応する相関イントラ予測モード、所定の予測モードをモードリストにそれぞれ追加した後、モードリストが依然として前記所定のリスト長さを満たさない場合、つまり、モードリストが依然として完全に充填されていない場合、デコーダは、関連付けイントラ予測モードを決定するためにモードリスト内の予測モードを使用することを選択することができ、そして、関連付けイントラ予測モードを前記追加待ちモードとして決定し、追加待ちモードが前記所定の追加条件を満たすと決定した場合、前記追加待ちモードを前記モードリストに追加し、つまり、モードリストに対応する関連付けイントラ予測モードをモードリストに追加する。
つまり、本願において、現在ブロックの隣接ブロックに対応するイントラ予測モード、重み行列導出モードに対応する相関イントラ予測モードおよび所定の予測モードをモードリストに順次追加した後、モードリストが依然として完全に充填されていない場合、デコーダは、モードリスト内の既存の予測モードに基づいて、対応する関連付けイントラ予測モードを決定し、その後、これらの関連付けイントラ予測モードをモードリストに追加することができる。
なお、本願実施例では、現在ブロックの隣接ブロックに対応するイントラ予測モードを追加待ちモードとするか、重み行列導出モードに対応する相関イントラ予測モードを追加待ちモードとするか、または所定の予測モードを追加待ちモードとするか、または関連付けイントラ予測モードを追加待ちモードとするかにも関わらず、デコーダは、追加待ちモードが所定の追加条件を満たすか否かを判定する必要があり、具体的には、追加待ちモードが存在し、且つ前記追加待ちモードが、前記モードリスト内のすべての予測モードと異なる場合、前記追加待ちモードが前記所定の追加条件を満たすと決定することができ、当該追加待ちモードをモードリストに追加することができる。
それに対応して、追加待ちモードが存在せず、または前記追加待ちモードが、モードリスト内の1つの予測モードと同じである(重複する)場合、前記追加待ちモードが前記所定の追加条件を満たさないと決定することができ、この場合、当該追加待ちモードをモードリストに追加することができず、当該追加待ちモードを直接破棄する。
理解できるように、本願において、現在ブロックは、2つのイントラ予測モードを用いてイントラ予測処理を実行する必要があるため、MPMを構築する際に、より多くの位置のイントラ予測モードを参照するか、またはより多くの隣接ブロックのイントラ予測モードを参照することができる。それに対応して、本願において、現在ブロックによって使用されるモードリストの長さは、他のイントラ予測モードのモードリスト長さと異なってもよく、二値化時のMPMのコードワードが他のモードより短いため、2つのイントラ予測モードがそれぞれMPMである確率を高めることは、符号化・復号化効率を向上させるのに役立つ。
さらに、本願実施例では、デコーダは、前記重み行列導出モードを用いてモードリストを決定するとき、まず、前記重み行列導出モードに対応するリスト構築策略を決定することができ、その後、前記リスト構築策略に基づいて、前記モードリストをさらに決定することができる。
つまり、本願において、異なる重み行列、即ち、異なる重み行列導出モードについて、デコーダは、異なる構築策略を用いてモードリストを構築することができる。例えば、構築策略に基づいて、重み行列の境界線が0度または90度である場合、つまり、水平または垂直である場合、デコーダは、モードリストを構築するとき、重み行列に対応するイントラ予測モードを考慮に入れることを選択することができ、他の場合には、重み行列に対応するイントラ予測モードを考慮しない。
本願実施例では、デコーダは、現在ブロックのモードリストを構築した後、前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することができる。
理解できるように、本願において、イントラ予測に使用される現在ブロックの2つのイントラ予測モードが異なる場合、つまり、第1イントラ予測モードと第2イントラ予測モードが異なる場合、第2イントラ予測モードが復号化されるとき、第1イントラ予測モードの可能性を排除することができる。つまり、第2イントラ予測モードの復号化に第1イントラ予測モードの情報を使用することができる。
本願実施例では、さらに、デコーダは、モードリストの構築中に、候補イントラ予測モードを設定することもできる。ここで、候補イントラ予測モードは、モードリスト内のすべてのイントラ予測モードと異なる。
具体的には、本願において、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なるようにするために、第2イントラ予測モードの決定は、第1イントラ予測モードに依存してもよい。ここで、デコーダは、前記モードリストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定するとき、まず、前記モードリスト内の1つの予測モードを前記第1イントラ予測モードとして決定することができ、そして、前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定する。
さらに、本願実施例では、デコーダは、前記モードリスト内の1つの予測モードを前記第1イントラ予測モードとして決定した後、前記モードリストから前記1つの予測モードを削除し、そして、前記候補イントラ予測モードを前記モードリストに追加することができ、それにより、更新されたモードリストを取得することができ、その後、前記更新されたモードリストから1つの予測モードを選択して前記第2イントラ予測モードとして決定することができ、ここで、選択方式は、任意であってもよい。
例示的に、本願において、第1イントラ予測モードと前記第2イントラ予測モードの選択可能なMPMの数がN個であると仮定すると、モードリストを構築する際に、まず、N個のMPMと1つの候補のMPMを構築することができ、第1イントラ予測モードの選択可能なMPMは、上記のN個のMPMである。第1イントラ予測モードが、そのうちの1つのMPMを選択した場合、第2イントラ予測モードに対して、第1イントラ予測モードによって選択されたMPMを削除し、そして、第2イントラ予測モードが依然としてN個のMPMから選択できるように、候補のMPMをモードリストに追加する。
本願実施例では、さらに、デコーダは、モードリストの構築中に、前記モードリストの長さパラメータを(N+1)(Nは正の整数である)に設定することができる。
具体的には、本願において、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なるようにするために、第2イントラ予測モードの決定は、第1イントラ予測モードに依存してもよい。ここで、デコーダは、前記モードリストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定するとき、前記モードリストを用いて前記第1イントラ予測モードを決定する場合、前記モードリスト内の最初のN個の予測モードのうちの1つを前記第1イントラ予測モードとして決定することができ、そして、前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定する。
さらに、本願実施例では、前記モードリストを用いて前記第1イントラ予測モードを決定する場合、デコーダは、前記モードリスト内の最初のN個の予測モードのうちの1つを前記第1イントラ予測モードとして決定した後、前記モードリスト内の前記第1イントラ予測モード以外の他のN個の予測モードを用いて前記第2イントラ予測モードを決定する。
なお、本願実施例では、デコーダは、前記モードリストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定するとき、前記モードリストが前記第1イントラ予測モードの決定に使用されない場合、デコーダは、前記モードリスト内の最初のN個の予測モードのうちの1つを前記第2イントラ予測モードとして直接決定することができる。
任意選択的に、本願実施例では、現在ブロックによって使用される第1イントラ予測モードと第2イントラ予測モードが異なることだけを保証し、第1イントラ予測モードと第2イントラ予測モードの選択可能なMPMの数を制限しない場合、候補イントラ予測モードの設定を実行しないか、モードリスト長さを増加させる処理を実行しなくてもよい。
例示的に、本願において、MPMの数Nが4であり、最初のビットを使用して、MPMであるか否かを示す(例えば、「1」は、MPMであることを示し、「0」は、MPMでないことを示す)ことを例にとると、第1イントラ予測モードがMPMである場合、4つのMPMがあるため、2ビットを使用して、どのMPMであるかを示し、即ち、「00、01、10、11」はそれぞれ、最初のMPM、2番目のMPM、3番目のMPM、4番目のMPMを表す。また、第1イントラ予測モードと第2イントラ予測モードが両方ともMPMである場合、第2イントラ予測モードが利用可能なMPMは3つしかなく、1~2ビットを使用して、どのMPMであるかを示すことができ、例えば、「00、01、10」はそれぞれ、残りの最初のMPM、2番目のMPM、3番目のMPMを表す。これから分かるように、1つの可能性が除外されるため、逆二値化方式を変更することにより、オーバーヘッドを節約することができる。
ステップ503において、前記第1イントラ予測モードおよび前記第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定する。
本願実施例では、デコーダは、前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定した後、前記第1イントラ予測モードおよび第2イントラ予測モードに基づいて、前記現在ブロックの予測値をさらに決定することができる。
理解できるように、本願実施例では、デコーダは、前記第1イントラ予測モードおよび前記第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定するとき、まず、前記第1イントラ予測モードに基づいて、前記現在ブロックの第1予測値を決定することができ、同時に、前記第2イントラ予測モードに基づいて、前記現在ブロックの第2予測値を決定することができ、そして、前記第1予測値および前記第2予測値に対して加重平均計算を実行することにより、最終的に前記現在ブロックの予測値を得ることができる。例えば、デコーダは、前記重み行列を用いて、前記第1予測値と前記第2予測値に対して加重平均計算を実行して、前記現在ブロックの予測値を取得することができる。
本願実施例では、さらに、デコーダは、現在ブロックのモードリストを決定した後、まず、前記モードリストに基づいて、前記現在ブロックの第1初期モードと第2初期モードを決定し、その後、オフセットモードパラメータを決定することができ、前記オフセットモードパラメータが、オフセット処理を実行することを示す場合、前記現在ブロックのオフセットパラメータを決定し、次に、前記第1初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第1イントラ予測モードを決定し、前記第2初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第2イントラ予測モードを決定することができ、最後に、前記第1イントラ予測モードおよび第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定することができる。
理解できるように、本願実施例では、デコーダは、モードリストを決定するとき、隣接ブロックの予測モードを用いてMPMを構築するなど、MPMを構築するための一般的な方式を採用することもできるし、本願で提案されたイントラ予測方法に係るモードリストの構築方法を使用することもでき、つまり、現在ブロックの重み行列導出モードを用いてモードリストを構築することもできる。
つまり、本願において、モードリストの構築方法は、上記の実施例で提供されるモードリスト構築方法を使用することを選択してもよいし、他のMPM構築方法を使用してもよく、本願は、これに対して特に限定しない。
さらに、本願実施例では、デコーダは、現在ブロックによって使用されるモードリストを決定した後、まず、前記モードリストに基づいて、前記現在ブロックの第1初期モードと第2初期モードを決定することができる。
例示的に、本願において、N個のMPMを含むモードリストを構築し、Nが2である場合、nビット(mpm_idx)を使用して、モードリスト内のどのMPMが選択されるかを示すことができ、つまり、第1初期モードと第2初期モードを決定し、そして、1ビットを使用して、オフセットする必要があるか否か(offset_needed)を示す。例えば、4つのMPMを含むモードリストが構築され、モードリスト内でイントラ予測モードを選択するとき、2ビット(mpm_idx)を使用して、モードリスト内のどのMPMが初期モードとして選択されるかを示す必要があり、表3に示すmpm_idxの値とバイナリ文字列との対応関係は、予測モードの決定に使用されることができる。
なお、本願実施例では、1ビットを使用して、オフセットする必要があるか否か(offset_needed)を示すことができ、つまり、デコーダは、ビットストリームを解析してオフセットモードパラメータを決定することにより、現在ブロックの予測モード(第1初期モードまたは第2初期モード)をオフセットする必要があるか否かをさらに決定することができる。
さらに、本願実施例では、オフセットモードパラメータが、オフセット処理を実行することを示す場合、デコーダはさらに、現在ブロックのオフセットパラメータを決定することができる。ここで、オフセットパラメータは、オフセット方式とオフセット量とを含み得、つまり、オフセットパラメータを決定することにより、デコーダは、現在ブロックの第1初期モードまたは第2初期モードに対してオフセット処理を実行するか否かを決定することができる。
なお、本願実施例では、デコーダがビットストリームを解析することによって得られたビットは、オフセットパラメータ内のオフセット方式とオフセット量を指示することができる。例えば、1ビット(sign)を使用して、オフセット方式が「+」であるか「-」であるかを示し、いくつかのビット(offset)を使用して、オフセット量を示す。
任意選択的に、本願において、オフセット方式とオフセット量を事前に設定することができ、例えば、デフォルトで特定の量(1、2、4など)しかオフセットできないように設定することができる。
さらに、本願実施例では、デコーダは、前記モードリストおよび前記オフセットパラメータに基づいて、現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定するとき、前記オフセット方式および前記オフセット量に基づいて、前記第1初期モードに対してオフセット処理を実行して、前記第1イントラ予測モードを決定することができ、同時に、前記オフセット方式および前記オフセット量に基づいて、前記第2初期モードに対してオフセット処理を実行して、前記第2イントラ予測モードを決定することができる。
つまり、本願実施例では、デコーダは、まず、解析によって決定されたいくつかのビットに基づいて、モードリスト内のどの予測モードを使用するかを決定することができ、つまり、まず、モードリストから初期モードを決定し、その後、オフセットパラメータに基づいて、初期モードに対してオフセット処理を実行することにより、最終的に現在ブロックによって使用されるイントラ予測モードを決定することができる。
理解できるように、本願実施例では、第1初期モードおよび第2初期モードに対して同じオフセットパラメータを使用することができ、つまり、第1初期モードおよび第2初期モードに基づいて、同じオフセット方式およびオフセット量を用いてオフセット処理を実行する。それに対応して、第1初期モードおよび第2初期モードに対して異なるオフセットパラメータを使用することもでき、つまり、第1初期モードに基づいて、1つのオフセット方式を用いてオフセット処理を実行し、同時に、第2初期モードに基づいて、別のオフセット方式を用いてオフセット処理を実行し、ここで、この2つのオフセット方式に対応するオフセット方式とオフセット量は、完全に同一ではなくてもよい。
つまり、本願において、第1初期モードのオフセット処理に対応するオフセット方式とオフセット量は、第2初期モードのオフセット処理に対応するオフセット方式とオフセット量と同じであってもよいし、異なってもよい。
任意選択的に、本願において、第1初期モードに対応するオフセットモードパラメータは、第2初期モードに対応するオフセットモードパラメータと異なってもよく、つまり、第1初期モードおよび第2初期モードのオフセットモードパラメータをそれぞれ設定することにより、次のようないくつかの異なる処理方式を実現することができる:第1初期モードと第2初期モードの両方に対してオフセット処理を実行するか、または、第1初期モードと第2初期モードの両方に対してオフセット処理を実行しないか、または、第1初期モードに対してオフセット処理を実行し、第2初期モードに対してオフセット処理を実行しないか、または、第1初期モードに対してオフセット処理を実行せず、第2初期モードに対してオフセット処理を実行する。
さらに、本願実施例では、オフセットモードパラメータが、オフセット処理を実行しないことを示す場合、デコーダは、前記モードリストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを直接決定することができる。
なお、本願実施例では、デコーダは、現在ブロックの予測値を決定するとき、まず、前記第1イントラ予測モードに基づいて、前記現在ブロックの第1予測値を決定することができ、同時に、前記第2イントラ予測モードに基づいて、前記現在ブロックの第2予測値を決定することができ、そして、前記第1予測値および前記第2予測値に対して加重平均計算を実行することにより、最終的に前記現在ブロックの予測値を得ることができる。
本願実施例は、イントラ予測方法を提供し、エンコーダ・デコーダは、2つの異なるイントラ予測モードによって現在ブロックの2つの異なる予測ブロックを決定することができ、そして、様々な重み行列を用いて予測ブロックを組み合わせることにより、最終的により複雑な予測ブロックを得ることができ、これにより、予測の精度を向上させることができ、さらに、エンコーダ・デコーダは、重み行列と予測モードとの相関性を用いてMPMリストを構築することもでき、これにより、複雑さを大幅に低減することができる。つまり、本願で提案されるイントラ予測方法により、イントラ予測の品質を向上させながら複雑さを低減することができ、これにより、圧縮性能を向上させることができる。
上記の実施例に基づき、本願の別の実施例において、図20は、本願実施例によって提供されるエンコーダの構成の概略構造図1であり、図20に示されるように、本願実施例によって提供されるエンコーダ300は、第1決定部301を備えることができる。
前記第1決定部301は、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックの重み行列導出モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定し、前記第1イントラ予測モード、第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定するように構成され、
または、前記第1決定部301は、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックのモードリストを決定し、前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記第1イントラ予測モードと第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定するように構成される。
図21は、本願実施例によって提供されるエンコーダの構成の概略構造図2であり、図21に示されるように、本願実施例によって提供されるエンコーダ300は、第1プロセッサ302と、第1プロセッサ302によって実行可能命令を記憶する第1メモリ303と、第1通信インターフェース304と、第1プロセッサ302、第1メモリ303および第1通信インターフェース304を接続するために使用される第1バス305と、を備える。
さらに、本願実施例では、上記の第1プロセッサ302は、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックの重み行列導出モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定し、前記第1イントラ予測モード、第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定するように構成される。
または、上記の第1プロセッサ302は、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックのモードリストを決定し、前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記第1イントラ予測モードおよび第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定するように構成される。
図22は、本願実施例によって提供されるデコーダの構成の概略構造図1であり、図22に示すように、本願実施例によって提供されるデコーダ400は、復号化部401と、第2決定部402と、を備え、
前記復号化部401は、ビットストリームを解析するように構成され、
前記第2決定部402は、現在ブロックのイントラ予測モードパラメータを決定し、前記イントラ予測モードパラメータが、前記現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、前記現在ブロックの重み行列導出モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定し、前記第1イントラ予測モード、第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定するように構成され、
または、前記第2決定部402は、現在ブロックのイントラ予測モードパラメータを決定し、前記イントラ予測モードパラメータが、前記現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、前記現在ブロックのモードリストを決定し、前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記第1イントラ予測モードと第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定するように構成される。
図23は、本願実施例によって提供されるデコーダの構成の概略構造図2であり、図23に示されるように、本願実施例によって提供されるデコーダ400は、第2プロセッサ403と、第2プロセッサ403によって実行可能命令を記憶する第2メモリ404と、第2通信インターフェース405と、第2プロセッサ403、第2メモリ404および第1通信インターフェース405を接続するために使用される第2バス406と、を備えることができる。
さらに、本願実施例では、上記の第2プロセッサ403は、ビットストリームを解析して、現在ブロックのイントラ予測モードパラメータを決定し、前記イントラ予測モードパラメータが、前記現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、前記現在ブロックの重み行列導出モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定し、前記第1イントラ予測モード、第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定するように構成される。
または、上記の第2プロセッサ403は、ビットストリームを解析して、現在ブロックのイントラ予測モードパラメータを決定し、前記イントラ予測モードパラメータが、前記現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、前記現在ブロックのモードリストを決定し、前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記第1イントラ予測モードと第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定するように構成される。
更に、本実施例における各機能モジュールは、1つの処理ユニットに統合されてもよく、又は各ユニットは、別々に独立した物理ユニットであってもよく、又は2つ又は2つ以上のユニットが1つのユニットに統合されてもよい。前記統合されるユニットは、ハードウェアの形で実現されることができ、ソフトウェア機能モジュールの形で実現されることもできる。
統合されたユニットが、ソフトウェア機能モジュールの形で実現され、独立した製品として販売または使用されない場合、1つのコンピュータ可読記憶媒体に記憶されることができ、このような理解に基づいて、本実施例の技術的解決策は、本質でまたは先行技術に対して貢献のある部分、または当該技術的解決策の全部または一部は、ソフトウェア製品の形で具現されることができ、前記コンピュータソフトウェア製品は、1つの記憶媒体に記憶され、一台のコンピュータ機器(パーソナルコンピュータ、サーバ、またはネットワーク機器などであリ得る)、またはプロセッサ(processor)が、本実施例における方法のステップの全部または一部を実行させるために、いくつかの命令を含む。前述した記憶媒体は、Uディスク、モバイルハードディスク、読み取り専用メモリ(ROM:Read-Only Memory)、ランダムアクセスメモリ(RAM:Random Access Memory)、磁気ディスクまたは光ディスク等のプログラムコードを記憶することができる、様々な媒体を含む。
本願実施例は、エンコーダ・デコーダを提供し、一態様において、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックの重み行列導出モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定し、前記第1イントラ予測モード、前記第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定する。別の態様では、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックのモードリストを決定し、前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記第1イントラ予測モードおよび第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定する。つまり、本願実施例では、エンコーダ・デコーダは、2つの異なるイントラ予測モードによって現在ブロックの2つの異なる予測ブロックを決定することができ、そして、様々な重み行列を用いて予測ブロックを組み合わせることにより、最終的により複雑な予測ブロックを得ることができ、これにより、予測の精度を向上させることができ、さらに、エンコーダ・デコーダは、重み行列と予測モードとの相関性を用いてMPMリストを構築することもでき、これにより、複雑さを大幅に低減することができる。つまり、本願で提案されるイントラ予測方法により、イントラ予測の品質を向上させながら複雑さを低減することができ、これにより、圧縮性能を向上させることができる。
本願実施例は、プログラムが記憶された、コンピュータ可読記憶媒体を提供し、前記プログラムは、プロセッサによって実行されるとき、上記の実施例に記載の方法を実現する。
具体的には、本実施例におけるイントラ予測方法に対応するプログラム命令は、光ディスク、ハードディスク、Uディスクなどの記憶媒体に記憶され得、記憶媒体内の、イントラ予測方法に対応するプログラム命令が、電子機器によって読み取されるかまたは実行されるとき、以下のステップを実現し、前記ステップは、
現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックの重み行列導出モードを決定することと、
前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定することと、
前記第1イントラ予測モード、前記第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定することと、を含み、
または、前記ステップは、
現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックのモードリストを決定することと、
前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することと、
前記第1イントラ予測モードと第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定することと、を含み、
または、前記ステップは、
ビットストリームを解析して、現在ブロックのイントラ予測モードパラメータを決定することと、
前記イントラ予測モードパラメータが、前記現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、前記現在ブロックの重み行列導出モードを決定することと、
前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定することと、
前記第1イントラ予測モード、前記第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定することと、を含み、
または、前記ステップは、
ビットストリームを解析して、現在ブロックのイントラ予測モードパラメータを決定することと、
前記イントラ予測モードパラメータが、前記現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、前記現在ブロックのモードリストを決定することと、
前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することと、
前記第1イントラ予測モードと第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定することと、を含む。
当業者なら理解できるように、本願の実施例は、方法、システム、またはコンピュータプログラム製品として提供され得る。したがって、本願は、ハードウェアの実施例、ソフトウェアの実施例、またはソフトウェアとハードウェアの組み合わせの実施例の形を採用することができる。さらに、本願は、コンピュータ利用可能なプログラムコードを含む1つまたは複数のコンピュータ利用可能な記憶媒体(ディスクメモリおよび光学メモリなどを含むが、これらに限定されない)で実施される、コンピュータプログラム製品の形を採用することができる。
本願は、本願の実施例に係る方法、機器(システム)、およびコンピュータプログラム製品の例示的な実現フローチャートおよび/またはブロック図を参照して説明される。コンピュータプログラム命令によって、例示的な実現フローチャートおよび/またはブロック図の各プロセスおよび/またはブロック、および例示的な実現フローチャートおよび/またはブロック図のプロセスおよび/またはブロックの組み合わせを実現されることができることを理解されたい。これらのコンピュータプログラム命令を、汎用コンピュータ、専用コンピュータ、組み込みプロセッサまたは他のプログラマブルデータ処理装置のプロセッサに提供して、1つの機械を生成して、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行される命令を、例示的な実現フローチャートの1つのプロセスまたは複数のプロセスおよび/またはブロック図の1つのブロックまたは複数のブロックに指定される機能を実行するための装置を生成させる。
これらのコンピュータプログラム命令は、コンピュータまたは他のプログラマブルデータ処理装置が特定の方法で動作するようにガイドすることができる、コンピュータ可読メモリに記憶されてもよく、これにより、前記コンピュータ可読メモリに記憶された命令によって命令装置を含む製品を生成することができ、前記命令装置は、例示的な実現フローチャートの1つのプロセスまたは複数のプロセス、および/またはブロック図の1つのブロックまたは複数のブロックで指定される機能を具現する。
これらのコンピュータプログラム命令は、コンピュータまたは他のプログラマブルデータ処理装置にロードされてもよく、これにより、コンピュータまたは他のプログラマブル装置に、一連の操作ステップを実行させて、コンピュータで実現される処理を生成するようにし、それにより、コンピュータまたは他のプログラマブル装置で実行される命令は、例示的な実現フローチャートの1つのプロセスまたは複数のプロセス、および/またはブロック図の1つのブロックまたは複数のブロックで指定される機能を具現するためのステップを提供する。
上記は、本願の好ましい実施例に過ぎず、本願の保護範囲を限定することを意図するものではない。
本願実施例は、イントラ予測方法、エンコーダ、デコーダおよび記憶媒体を提供し、一態様において、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックの重み行列導出モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定し、前記第1イントラ予測モード、前記第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定する。別の態様では、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックのモードリストを決定し、前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記第1イントラ予測モードおよび第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定する。つまり、本願の実施例では、エンコーダ・デコーダは、2つの異なるイントラ予測モードによって現在ブロックの2つの異なる予測ブロックを決定することができ、そして、様々な重み行列を用いて予測ブロックを組み合わせることにより、最終的により複雑な予測ブロックを得ることができ、これにより、予測の精度を向上させることができ、さらに、エンコーダ・デコーダは、重み行列と予測モードとの相関性を用いてMPMリストを構築することもでき、これにより、複雑さを大幅に低減することができる。つまり、本願で提案されるイントラ予測方法は、イントラ予測の品質を向上させながら複雑さを低減することができ、これにより、圧縮性能を向上させることができる。

Claims (111)

  1. エンコーダに適用される、イントラ予測方法であって、
    現在ブロックのイントラ予測値が空間角加重予測(SAWP)モードを用いて決定される場合、前記現在ブロックの重み行列導出モードを決定することと、
    前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定することと、
    前記第1イントラ予測モード、前記第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定することと、を含む、前記イントラ予測方法。
  2. 前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することは、
    前記重み行列導出モードを用いてモードリストを決定することと、
    前記モードリストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することと、を含む、
    請求項1に記載のイントラ予測方法。
  3. 前記重み行列導出モードを用いてモードリストを決定することは、
    前記現在ブロックの隣接ブロックに対応するイントラ予測モードを決定し、前記隣接ブロックに対応するイントラ予測モードを追加待ちモードとして決定し、
    前記追加待ちモードが所定の追加条件を満たす場合、前記追加待ちモードを前記モードリストに追加することと、
    前記モードリストが所定のリスト長さを満たさない場合、前記重み行列導出モードに対応する相関イントラ予測モードを決定し、前記重み行列導出モードに対応する相関イントラ予測モードを前記追加待ちモードとして決定し、
    前記追加待ちモードが前記所定の追加条件を満たす場合、前記追加待ちモードを前記モードリストに追加することと、を含む、
    請求項2に記載のイントラ予測方法。
  4. 前記イントラ予測方法は、
    前記隣接ブロックに対応するシーケンスパラメータを決定することと、
    前記シーケンスパラメータに基づいて、前記隣接ブロックに対応するイントラ予測モードを前記モードリストに順次追加することと、をさらに含む、
    請求項3に記載のイントラ予測方法。
  5. 前記重み行列導出モードに対応する相関イントラ予測モードを決定することは、
    前記重み行列導出モードに対応するイントラ予測モードを決定することと、
    前記重み行列導出モードに対応するイントラ予測モードに基づいて、第1インデックス間隔に従って、前記相関イントラ予測モードを決定することと、を含む、
    請求項3に記載のイントラ予測方法。
  6. 前記イントラ予測方法は、
    前記モードリストが前記所定のリスト長さを満たさない場合、所定の予測モードを前記追加待ちモードとして決定することであって、前記所定の予測モードは、DCモード、Bilinearモード、Planarモードのうちの1つまたは複数を含む、ことと、
    前記追加待ちモードが前記所定の追加条件を満たす場合、前記追加待ちモードを前記モードリストに追加することと、をさらに含む、
    請求項3に記載のイントラ予測方法。
  7. 前記イントラ予測方法は、
    前記モードリストが前記所定のリスト長さを満たさない場合、前記モードリストの関連付けイントラ予測モードを決定し、前記関連付けイントラ予測モードを前記追加待ちモードとして決定することと、
    前記追加待ちモードが前記所定の追加条件を満たす場合、前記追加待ちモードを前記モードリストに追加することと、をさらに含む、
    請求項3に記載のイントラ予測方法。
  8. 前記モードリストの関連付けイントラ予測モードを決定することは、
    前記モードリスト内の任意の予測モードに基づいて、第2インデックス間隔に従って、前記関連付けイントラ予測モードを決定することを含む、
    請求項7に記載のイントラ予測方法。
  9. 前記イントラ予測方法は、
    前記追加待ちモードが存在し、且つ前記追加待ちモードが、前記モードリスト内のすべての予測モードと異なる場合、前記追加待ちモードが前記所定の追加条件を満たすと決定することをさらに含む、
    請求項3ないし8のいずれか一項に記載のイントラ予測方法。
  10. 前記重み行列導出モードを用いてモードリストを決定することは、
    前記重み行列導出モードに対応するリスト構築策略を決定することと、
    前記リスト構築策略に従って、前記モードリストを決定することと、を含む、
    請求項2に記載のイントラ予測方法。
  11. 前記イントラ予測方法は、
    候補イントラ予測モードを設定することをさらに含む、
    請求項2に記載のイントラ予測方法。
  12. 前記モードリストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することは、
    前記モードリスト内の1つの予測モードを前記第1イントラ予測モードとして決定することと、
    前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することと、を含む、
    請求項11に記載のイントラ予測方法。
  13. 前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することは、
    前記モードリストから前記1つの予測モードを削除し、前記候補イントラ予測モードを前記モードリストに追加して、更新されたモードリストを取得することと、
    前記更新されたモードリストから1つの予測モードを選択して、前記第2イントラ予測モードとして決定することと、を含む、
    請求項11に記載のイントラ予測方法。
  14. 前記イントラ予測方法は、
    前記モードリストの長さパラメータを(N+1)(Nは正の整数である)に設定することをさらに含む、
    請求項2に記載のイントラ予測方法。
  15. 前記モードリストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することは、
    前記モードリストを用いて前記第1イントラ予測モードを決定する場合、前記モードリスト内の最初のN個の予測モードのうちの1つを前記第1イントラ予測モードとして決定することと、
    前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することと、を含む、
    請求項14に記載のイントラ予測方法。
  16. 前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することは、
    前記モードリスト内の、前記第1イントラ予測モード以外の他のN個の予測モードを用いて、前記第2イントラ予測モードを決定することを含む、
    請求項15に記載のイントラ予測方法。
  17. 前記モードリストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することは、
    前記モードリストが前記第1イントラ予測モードの決定に使用されない場合、前記モードリスト内の最初のN個の予測モードのうちの1つを前記第2イントラ予測モードとして決定することを含む、
    請求項14に記載のイントラ予測方法。
  18. 前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することは、
    前記現在ブロックの隣接ブロックに対応するイントラ予測モード、前記重み行列導出モードに対応する相関イントラ予測モード、所定の予測モードに対して順次に並べ替え処理を実行して、予測モードの候補リストを取得することであって、前記所定の予測モードは、DCモード、Bilinearモード、Planarモードのうちの1つまたは複数を含む、ことと、
    前記予測モードの候補リストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することと、を含む、
    請求項1に記載のイントラ予測方法。
  19. 前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することは、
    前記重み行列導出モードに対応する前記第1イントラ予測モードの参照セットを確立し、前記重み行列導出モードに対応する前記第2イントラ予測モードの参照セットを確立することと、
    前記第1イントラ予測モードの参照セットに基づいて、前記第1イントラ予測モードを決定し、前記第2イントラ予測モードの参照セットに基づいて、前記第2イントラ予測モードを決定することと、を含む、
    請求項1に記載のイントラ予測方法。
  20. 前記イントラ予測方法は、
    第1モードインデックス範囲に基づいて、前記重み行列導出モードを決定することをさらに含み、前記第1モードインデックス範囲は、前記重み行列導出モードのインデックス番号を制限するために使用される、
    請求項1に記載のイントラ予測方法。
  21. 前記イントラ予測方法は、
    前記現在ブロックの寸法パラメータが第1寸法閾値より小さい場合、第1モードインデックス範囲に基づいて、前記重み行列導出モードを決定することをさらに含み、前記第1モードインデックス範囲は、前記重み行列導出モードのインデックス番号を制限するために使用される、
    請求項1に記載のイントラ予測方法。
  22. 第1モードインデックス範囲は、第1下限閾値および第1上限閾値を含み、前記イントラ予測方法は、
    前記重み行列導出モードのインデックス番号が前記第1下限閾値より小さい場合、前記重み行列導出モードのインデックス番号を前記第1下限閾値に設定することと、
    前記重み行列導出モードのインデックス番号が前記第1上限閾値より大きい場合、前記重み行列導出モードのインデックス番号を前記第1上限閾値に設定することと、をさらに含む、
    請求項20または21に記載のイントラ予測方法。
  23. 前記イントラ予測方法は、
    第2モードインデックス範囲に基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することをさらに含み、前記第2モードインデックス範囲は、イントラ予測モードのインデックス番号を制限するために使用される、
    請求項1に記載のイントラ予測方法。
  24. 前記イントラ予測方法は、
    前記現在ブロックの寸法パラメータが第2寸法閾値より小さい場合、第2モードインデックス範囲に基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することをさらに含み、前記第2モードインデックス範囲は、イントラ予測モードのインデックス番号を制限するために使用される、
    請求項1に記載のイントラ予測方法。
  25. 第2モードインデックス範囲は、第2下限閾値および第2上限閾値を含み、前記イントラ予測方法は、
    前記第1イントラ予測モードの第1インデックス番号を決定し、前記第2イントラ予測モードの第2インデックス番号を決定することと、
    前記第1インデックス番号と前記第2インデックス番号の両方を前記第2下限閾値より大きく設定し、前記第1インデックス番号と前記第2インデックス番号の両方を前記第2上限閾値より小さく設定することと、をさらに含む、
    請求項23または24に記載のイントラ予測方法。
  26. 前記イントラ予測方法は、
    前記モードリストに基づいて、前記現在ブロックの第1初期モードと第2初期モードを決定することと、
    オフセットモードパラメータを決定し、前記オフセットモードパラメータが、オフセット処理を実行することを示す場合、前記現在ブロックのオフセットパラメータを決定することと、
    前記第1初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第1イントラ予測モードを決定し、前記第2初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第2イントラ予測モードを決定することと、
    前記第1イントラ予測モードと前記第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定することと、をさらに含む、
    請求項1に記載のイントラ予測方法。
  27. 前記オフセットパラメータは、オフセット方式およびオフセット量を含み、前記第1初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第1イントラ予測モードを決定し、前記第2初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第2イントラ予測モードを決定することは、
    前記オフセット方式および前記オフセット量に基づいて、前記第1初期モードに対してオフセット処理を実行して、前記第1イントラ予測モードを決定することと、
    前記オフセット方式および前記オフセット量に基づいて、前記第2初期モードに対してオフセット処理を実行して、前記第2イントラ予測モードを決定することと、を含む、
    請求項26に記載のイントラ予測方法。
  28. 前記イントラ予測方法は、
    前記オフセットモードパラメータが、オフセット処理を実行しないことを指示する場合、前記モードリストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することをさらに含む、
    請求項26に記載のイントラ予測方法。
  29. 前記第1イントラ予測モード、第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定することは、
    前記第1イントラ予測モードに従って、前記現在ブロックの第1予測値を決定し、前記第2イントラ予測モードに従って、前記現在ブロックの第2予測値を決定することと、
    前記重み行列を用いて、前記第1予測値と前記第2予測値に対して加重平均計算を実行して、前記現在ブロックの予測値を取得することと、を含む、
    請求項1に記載のイントラ予測方法。
  30. 前記イントラ予測方法は、
    前記現在ブロックの寸法パラメータを決定することと、
    前記寸法パラメータに基づいて、前記現在ブロックが前記SAWPモードを使用するか否かを決定することと、をさらに含む、
    請求項1に記載のイントラ予測方法。
  31. 前記寸法パラメータは、幅と高さを含み、前記イントラ予測方法は、
    前記幅が第1閾値より大きく、前記高さが第2閾値より大きい場合、前記現在ブロックが前記SAWPモードを使用すると決定すること、または、
    前記幅が第3閾値より小さく、前記高さが第4閾値より大きい場合、前記現在ブロックが前記SAWPモードを使用すると決定することをさらに含む、
    請求項30に記載のイントラ予測方法。
  32. 前記イントラ予測方法は、
    前記現在ブロックの画素パラメータを決定することと、
    前記画素パラメータおよび第5閾値に基づいて、前記現在ブロックが前記SAWPモードを使用するか否かを判断することと、をさらに含む、
    請求項1に記載のイントラ予測方法。
  33. 前記イントラ予測方法は、
    現在ブロックのイントラ予測モードパラメータを決定することと、
    前記イントラ予測モードパラメータに基づいて、前記現在ブロックが前記SAWPモードを使用するか否かを判断することと、をさらに含む、
    請求項1に記載のイントラ予測方法。
  34. エンコーダに適用される、イントラ予測方法であって、
    現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックのモードリストを決定することと、
    前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することと、
    前記第1イントラ予測モードと第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定することと、を含む、前記イントラ予測方法。
  35. 前記現在ブロックのモードリストを決定することは、
    前記現在ブロックの隣接ブロックに対応するイントラ予測モードを決定し、前記隣接ブロックに対応するイントラ予測モードを追加待ちモードとして決定し、
    前記追加待ちモードが所定の追加条件を満たす場合、前記追加待ちモードを前記モードリストに追加することと、
    前記モードリストが所定のリスト長さを満たさない場合、前記現在ブロックの重み行列導出モードに基づいて、前記重み行列導出モードに対応する相関イントラ予測モードを決定し、前記重み行列導出モードに対応する相関イントラ予測モードを前記追加待ちモードとして決定し、
    前記追加待ちモードが前記所定の追加条件を満たす場合、前記追加待ちモードを前記モードリストに追加することと、を含む、
    請求項34に記載のイントラ予測方法。
  36. 前記重み行列導出モードを用いてモードリストを決定することは、
    前記重み行列導出モードに対応するリスト構築策略を決定することと、
    前記リスト構築策略に従って、前記モードリストを決定することと、を含む、
    請求項35に記載のイントラ予測方法。
  37. 前記イントラ予測方法は、
    候補イントラ予測モードを設定することをさらに含む、
    請求項34に記載のイントラ予測方法。
  38. 前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと前記第2イントラ予測モードを決定することは、
    前記モードリスト内の1つの予測モードを前記第1イントラ予測モードとして決定することと、
    前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することと、を含む、
    請求項37に記載のイントラ予測方法。
  39. 前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することは、
    前記モードリストから前記1つの予測モードを削除し、前記候補イントラ予測モードを前記モードリストに追加して、更新されたモードリストを取得することと、
    前記更新されたモードリストから1つの予測モードを選択して、前記第2イントラ予測モードとして決定することと、を含む、
    請求項38に記載のイントラ予測方法。
  40. 前記イントラ予測方法は、
    前記モードリストの長さパラメータを(N+1)(Nは正の整数である)に設定することをさらに含む、
    請求項34に記載のイントラ予測方法。
  41. 前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと前記第2イントラ予測モードを決定することは、
    前記モードリストを用いて前記第1イントラ予測モードを決定する場合、前記モードリスト内の最初のN個の予測モードのうちの1つを前記第1イントラ予測モードとして決定することと、
    前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することと、を含む、
    請求項40に記載のイントラ予測方法。
  42. 前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することは、
    前記モードリスト内の、前記第1イントラ予測モード以外の他のN個の予測モードを用いて、前記第2イントラ予測モードを決定することを含む、
    請求項41に記載のイントラ予測方法。
  43. 前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと前記第2イントラ予測モードを決定することは、
    前記モードリストが前記第1イントラ予測モードの決定に使用されない場合、前記モードリスト内の最初のN個の予測モードのうちの1つを前記第2イントラ予測モードとして決定することを含む、
    請求項40に記載のイントラ予測方法。
  44. 前記イントラ予測方法は、
    前記現在ブロックの隣接ブロックに対応するイントラ予測モード、前記重み行列導出モードに対応する相関イントラ予測モード、所定の予測モードに対して順次に並べ替え処理を実行して、予測モードの候補リストを取得することであって、前記所定の予測モードは、DCモード、Bilinearモード、Planarモードのうちの1つまたは複数を含む、ことと、
    前記予測モードの候補リストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することと、を含む、
    請求項35に記載のイントラ予測方法。
  45. 前記イントラ予測方法は、
    前記重み行列導出モードに対応する前記第1イントラ予測モードの参照セットを確立し、前記重み行列導出モードに対応する前記第2イントラ予測モードの参照セットを確立することと、
    前記第1イントラ予測モードの参照セットに基づいて、前記第1イントラ予測モードを決定し、前記第2イントラ予測モードの参照セットに基づいて、前記第2イントラ予測モードを決定することと、を含む、
    請求項35に記載のイントラ予測方法。
  46. 前記イントラ予測方法は、
    第1モードインデックス範囲に基づいて、前記重み行列導出モードを決定することをさらに含み、前記第1モードインデックス範囲は、前記重み行列導出モードのインデックス番号を制限するために使用される、
    請求項35に記載のイントラ予測方法。
  47. 前記イントラ予測方法は、
    前記現在ブロックの寸法パラメータが第1寸法閾値より小さい場合、第1モードインデックス範囲に基づいて、前記重み行列導出モードを決定することをさらに含み、前記第1モードインデックス範囲は、前記重み行列導出モードのインデックス番号を制限するために使用される、
    請求項35に記載のイントラ予測方法。
  48. 第1モードインデックス範囲は、第1下限閾値および第1上限閾値を含み、前記イントラ予測方法は、
    前記重み行列導出モードのインデックス番号が前記第1下限閾値より小さい場合、前記重み行列導出モードのインデックス番号を前記第1下限閾値に設定することと、
    前記重み行列導出モードのインデックス番号が前記第1上限閾値より大きい場合、前記重み行列導出モードのインデックス番号を前記第1上限閾値に設定することと、をさらに含む、
    請求項46または47に記載のイントラ予測方法。
  49. 前記イントラ予測方法は、
    第2モードインデックス範囲に基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することをさらに含み、前記第2モードインデックス範囲は、イントラ予測モードのインデックス番号を制限するために使用される、
    請求項34に記載のイントラ予測方法。
  50. 前記イントラ予測方法は、
    前記現在ブロックの寸法パラメータが第2寸法閾値より小さい場合、第2モードインデックス範囲に基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することをさらに含み、前記第2モードインデックス範囲は、イントラ予測モードのインデックス番号を制限するために使用される、
    請求項34に記載のイントラ予測方法。
  51. 第2モードインデックス範囲は、第2下限閾値および第2上限閾値を含み、前記イントラ予測方法は、
    前記第1イントラ予測モードの第1インデックス番号を決定し、前記第2イントラ予測モードの第2インデックス番号を決定することと、
    前記第1インデックス番号と前記第2インデックス番号の両方を前記第2下限閾値より大きく設定し、前記第1インデックス番号と前記第2インデックス番号の両方を前記第2上限閾値より小さく設定することと、をさらに含む、
    請求項49または50に記載のイントラ予測方法。
  52. 前記イントラ予測方法は、
    前記モードリストに基づいて、前記現在ブロックの第1初期モードと第2初期モードを決定することと、
    オフセットモードパラメータを決定し、前記オフセットモードパラメータが、オフセット処理を実行することを示す場合、前記現在ブロックのオフセットパラメータを決定することと、
    前記第1初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第1イントラ予測モードを決定し、前記第2初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第2イントラ予測モードを決定することと、
    前記第1イントラ予測モードと前記第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定することと、をさらに含む、
    請求項34に記載のイントラ予測方法。
  53. 前記第1イントラ予測モードと第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定することは、
    前記第1イントラ予測モードに従って、前記現在ブロックの第1予測値を決定し、前記第2イントラ予測モードに従って、前記現在ブロックの第2予測値を決定することと、
    前記第1予測値と前記第2予測値に対して加重平均計算を実行して、前記現在ブロックの予測値を取得することと、を含む、
    請求項34に記載のイントラ予測方法。
  54. デコーダに適用される、イントラ予測方法であって、
    ビットストリームを解析して、現在ブロックのイントラ予測モードパラメータを決定することと、
    前記イントラ予測モードパラメータが、前記現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、前記現在ブロックの重み行列導出モードを決定することと、
    前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定することと、
    前記第1イントラ予測モード、第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定することと、を含む、前記イントラ予測方法。
  55. 前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することは、
    前記重み行列導出モードを用いてモードリストを決定することと、
    前記モードリストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することと、を含む、
    請求項54に記載のイントラ予測方法。
  56. 前記重み行列導出モードを用いてモードリストを決定することは、
    前記現在ブロックの隣接ブロックに対応するイントラ予測モードを決定し、前記隣接ブロックに対応するイントラ予測モードを追加待ちモードとして決定し、
    前記追加待ちモードが所定の追加条件を満たす場合、前記追加待ちモードを前記モードリストに追加することと、
    前記モードリストが所定のリスト長さを満たさない場合、前記重み行列導出モードに対応する相関イントラ予測モードを決定し、前記重み行列導出モードに対応する相関イントラ予測モードを前記追加待ちモードとして決定し、
    前記追加待ちモードが前記所定の追加条件を満たす場合、前記追加待ちモードを前記モードリストに追加することと、を含む、
    請求項55に記載のイントラ予測方法。
  57. 前記イントラ予測方法は、
    前記隣接ブロックに対応するシーケンスパラメータを決定することと、
    前記シーケンスパラメータに基づいて、前記隣接ブロックに対応するイントラ予測モードを前記モードリストに順次追加することと、をさらに含む、
    請求項56に記載のイントラ予測方法。
  58. 前記重み行列導出モードに対応する相関イントラ予測モードを決定することは、
    前記重み行列導出モードに対応するイントラ予測モードを決定することと、
    前記重み行列導出モードに対応するイントラ予測モードに基づいて、第1インデックス間隔に従って、前記相関イントラ予測モードを決定することと、を含む、
    請求項56に記載のイントラ予測方法。
  59. 前記イントラ予測方法は、
    前記モードリストが前記所定のリスト長さを満たさない場合、所定の予測モードを前記追加待ちモードとして決定することであって、前記所定の予測モードは、DCモード、Bilinearモード、Planarモードのうちの1つまたは複数を含むことと、
    前記追加待ちモードが前記所定の追加条件を満たす場合、前記追加待ちモードを前記モードリストに追加することと、をさらに含む、
    請求項56に記載のイントラ予測方法。
  60. 前記イントラ予測方法は、
    前記モードリストが前記所定のリスト長さを満たさない場合、前記モードリストの関連付けイントラ予測モードを決定し、前記関連付けイントラ予測モードを前記追加待ちモードとして決定することと、
    前記追加待ちモードが前記所定の追加条件を満たす場合、前記追加待ちモードを前記モードリストに追加することと、をさらに含む、
    請求項56に記載のイントラ予測方法。
  61. 前記モードリストの関連付けイントラ予測モードを決定することは、
    前記モードリスト内の任意の予測モードに基づいて、第2インデックス間隔に従って、前記関連付けイントラ予測モードを決定することを含む、
    請求項60に記載のイントラ予測方法。
  62. 前記イントラ予測方法は、
    前記追加待ちモードが存在し、且つ前記追加待ちモードが、前記モードリスト内のすべての予測モードと異なる場合、前記追加待ちモードが前記所定の追加条件を満たすと決定することをさらに含む、
    請求項56ないし61のいずれか一項に記載のイントラ予測方法。
  63. 前記重み行列導出モードを用いてモードリストを決定することは、
    前記重み行列導出モードに対応するリスト構築策略を決定することと、
    前記リスト構築策略に従って、前記モードリストを決定することと、を含む、
    請求項55に記載のイントラ予測方法。
  64. 前記イントラ予測方法は、
    候補イントラ予測モードを設定することをさらに含む、
    請求項55に記載のイントラ予測方法。
  65. 前記モードリストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することは、
    前記モードリスト内の1つの予測モードを前記第1イントラ予測モードとして決定することと、
    前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することと、を含む、
    請求項64に記載のイントラ予測方法。
  66. 前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することは、
    前記モードリストから前記1つの予測モードを削除し、前記候補イントラ予測モードを前記モードリストに追加して、更新されたモードリストを取得することと、
    前記更新されたモードリストから1つの予測モードを選択して、前記第2イントラ予測モードとして決定することと、を含む、
    請求項64に記載のイントラ予測方法。
  67. 前記イントラ予測方法は、
    前記モードリストの長さパラメータを(N+1)(Nは正の整数である)に設定することをさらに含む、
    請求項55に記載のイントラ予測方法。
  68. 前記モードリストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することは、
    前記モードリストを用いて前記第1イントラ予測モードを決定する場合、前記モードリスト内の最初のN個の予測モードのうちの1つを前記第1イントラ予測モードとして決定することと、
    前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することと、を含む、
    請求項67に記載のイントラ予測方法。
  69. 前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することは、
    前記モードリスト内の、前記第1イントラ予測モード以外の他のN個の予測モードを用いて、前記第2イントラ予測モードを決定することを含む、
    請求項68に記載のイントラ予測方法。
  70. 前記モードリストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することは、
    前記モードリストが前記第1イントラ予測モードの決定に使用されない場合、前記モードリスト内の最初のN個の予測モードのうちの1つを前記第2イントラ予測モードとして決定することを含む、
    請求項67に記載のイントラ予測方法。
  71. 前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することは、
    前記現在ブロックの隣接ブロックに対応するイントラ予測モード、前記重み行列導出モードに対応する相関イントラ予測モード、所定の予測モードに対して順次に並べ替え処理を実行して、予測モードの候補リストを取得することであって、前記所定の予測モードは、DCモード、Bilinearモード、Planarモードのうちの1つまたは複数を含むことと、
    前記予測モードの候補リストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することと、を含む、
    請求項54に記載のイントラ予測方法。
  72. 前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することは、
    前記重み行列導出モードに対応する前記第1イントラ予測モードの参照セットを確立し、前記重み行列導出モードに対応する前記第2イントラ予測モードの参照セットを確立することと、
    前記第1イントラ予測モードの参照セットに基づいて、前記第1イントラ予測モードを決定し、前記第2イントラ予測モードの参照セットに基づいて、前記第2イントラ予測モードを決定することと、を含む、
    請求項54に記載のイントラ予測方法。
  73. 前記イントラ予測方法は、
    第1モードインデックス範囲に基づいて、前記重み行列導出モードを決定することをさらに含み、前記第1モードインデックス範囲は、前記重み行列導出モードのインデックス番号を制限するために使用される、
    請求項54に記載のイントラ予測方法。
  74. 前記イントラ予測方法は、
    前記現在ブロックの寸法パラメータが第1寸法閾値より小さい場合、第1モードインデックス範囲に基づいて、前記重み行列導出モードを決定することをさらに含み、前記第1モードインデックス範囲は、前記重み行列導出モードのインデックス番号を制限するために使用される、
    請求項54に記載のイントラ予測方法。
  75. 第1モードインデックス範囲は、第1下限閾値および第1上限閾値を含み、前記イントラ予測方法は、
    前記重み行列導出モードのインデックス番号が前記第1下限閾値より小さい場合、前記重み行列導出モードのインデックス番号を前記第1下限閾値に設定することと、
    前記重み行列導出モードのインデックス番号が前記第1上限閾値より大きい場合、前記重み行列導出モードのインデックス番号を前記第1上限閾値に設定することと、をさらに含む、
    請求項73または74に記載のイントラ予測方法。
  76. 前記イントラ予測方法は、
    第2モードインデックス範囲に基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することをさらに含み、前記第2モードインデックス範囲は、イントラ予測モードのインデックス番号を制限するために使用される、
    請求項54に記載のイントラ予測方法。
  77. 前記イントラ予測方法は、
    前記現在ブロックの寸法パラメータが第2寸法閾値より小さい場合、第2モードインデックス範囲に基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することをさらに含み、前記第2モードインデックス範囲は、イントラ予測モードのインデックス番号を制限するために使用される、
    請求項54に記載のイントラ予測方法。
  78. 第2モードインデックス範囲は、第2下限閾値および第2上限閾値を含み、前記イントラ予測方法は、
    前記第1イントラ予測モードの第1インデックス番号を決定し、前記第2イントラ予測モードの第2インデックス番号を決定することと、
    前記第1インデックス番号と前記第2インデックス番号の両方を前記第2下限閾値より大きく設定し、前記第1インデックス番号と前記第2インデックス番号の両方を前記第2上限閾値より小さく設定することと、をさらに含む、
    請求項76または77に記載のイントラ予測方法。
  79. 前記イントラ予測方法は、
    前記モードリストに基づいて、前記現在ブロックの第1初期モードと第2初期モードを決定することと、
    オフセットモードパラメータを決定し、前記オフセットモードパラメータが、オフセット処理を実行することを示す場合、前記現在ブロックのオフセットパラメータを決定することと、
    前記第1初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第1イントラ予測モードを決定し、前記第2初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第2イントラ予測モードを決定することと、
    前記第1イントラ予測モードと前記第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定することと、をさらに含む、
    請求項54に記載のイントラ予測方法。
  80. 前記オフセットパラメータは、オフセット方式およびオフセット量を含み、前記第1初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第1イントラ予測モードを決定し、前記第2初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第2イントラ予測モードを決定することは、
    前記オフセット方式および前記オフセット量に基づいて、前記第1初期モードに対してオフセット処理を実行して、前記第1イントラ予測モードを決定することと、
    前記オフセット方式および前記オフセット量に基づいて、前記第2初期モードに対してオフセット処理を実行して、前記第2イントラ予測モードを決定することと、を含む、
    請求項79に記載のイントラ予測方法。
  81. 前記イントラ予測方法は、
    前記オフセットモードパラメータが、オフセット処理を実行しないことを指示する場合、前記モードリストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することをさらに含む、
    請求項79に記載のイントラ予測方法。
  82. 前記第1イントラ予測モード、第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定することは、
    前記第1イントラ予測モードに従って、前記現在ブロックの第1予測値を決定し、前記第2イントラ予測モードに従って、前記現在ブロックの第2予測値を決定することと、
    前記重み行列を用いて、前記第1予測値と前記第2予測値に対して加重平均計算を実行して、前記現在ブロックの予測値を取得することと、を含む、
    請求項54に記載のイントラ予測方法。
  83. 前記イントラ予測方法は、
    前記現在ブロックの寸法パラメータを決定することと、
    前記寸法パラメータに基づいて、前記現在ブロックが前記SAWPモードを使用するか否かを決定することと、をさらに含む、
    請求項54に記載のイントラ予測方法。
  84. 前記寸法パラメータは、幅と高さを含み、前記イントラ予測方法は、
    前記幅が第1閾値より大きく、前記高さが第2閾値より大きい場合、前記現在ブロックが前記SAWPモードを使用すると決定すること、または、
    前記幅が第3閾値より小さく、前記高さが第4閾値より大きい場合、前記現在ブロックが前記SAWPモードを使用すると決定することをさらに含む、
    請求項83に記載のイントラ予測方法。
  85. 前記イントラ予測方法は、
    前記現在ブロックの画素パラメータを決定することと、
    前記画素パラメータおよび第5閾値に基づいて、前記現在ブロックが前記SAWPモードを使用するか否かを判断することと、をさらに含む、
    請求項54に記載のイントラ予測方法。
  86. 前記イントラ予測方法は、
    現在ブロックのイントラ予測モードパラメータを決定することと、
    前記イントラ予測モードパラメータに基づいて、前記現在ブロックが前記SAWPモードを使用するか否かを判断することと、をさらに含む、
    請求項54に記載のイントラ予測方法。
  87. デコーダに適用される、イントラ予測方法であって、
    ビットストリームを解析して、現在ブロックのイントラ予測モードパラメータを決定することと、
    前記イントラ予測モードパラメータが、前記現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、前記現在ブロックのモードリストを決定することと、
    前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定することと、
    前記第1イントラ予測モードと第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定することと、を含む、前記イントラ予測方法。
  88. 前記現在ブロックのモードリストを決定することは、
    前記現在ブロックの隣接ブロックに対応するイントラ予測モードを決定し、前記隣接ブロックに対応するイントラ予測モードを追加待ちモードとして決定し、
    前記追加待ちモードが所定の追加条件を満たす場合、前記追加待ちモードを前記モードリストに追加することと、
    前記モードリストが所定のリスト長さを満たさない場合、前記現在ブロックの重み行列導出モードに基づいて、前記重み行列導出モードに対応する相関イントラ予測モードを決定し、前記重み行列導出モードに対応する相関イントラ予測モードを前記追加待ちモードとして決定し、
    前記追加待ちモードが前記所定の追加条件を満たす場合、前記追加待ちモードを前記モードリストに追加することと、を含む、
    請求項87に記載のイントラ予測方法。
  89. 前記重み行列導出モードを用いてモードリストを決定することは、
    前記重み行列導出モードに対応するリスト構築策略を決定することと、
    前記リスト構築策略に従って、前記モードリストを決定することと、を含む、
    請求項88に記載のイントラ予測方法。
  90. 前記イントラ予測方法は、
    候補イントラ予測モードを設定することをさらに含む、
    請求項87に記載のイントラ予測方法。
  91. 前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと前記第2イントラ予測モードを決定することは、
    前記モードリスト内の1つの予測モードを前記第1イントラ予測モードとして決定することと、
    前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することと、を含む、
    請求項90に記載のイントラ予測方法。
  92. 前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することは、
    前記モードリストから前記1つの予測モードを削除し、前記候補イントラ予測モードを前記モードリストに追加して、更新されたモードリストを取得することと、
    前記更新されたモードリストから1つの予測モードを選択して、前記第2イントラ予測モードとして決定することと、を含む、
    請求項91に記載のイントラ予測方法。
  93. 前記イントラ予測方法は、
    前記モードリストの長さパラメータを(N+1)(Nは、正の整数である)に設定することをさらに含む、
    請求項87に記載のイントラ予測方法。
  94. 前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと前記第2イントラ予測モードを決定することは、
    前記モードリストを用いて前記第1イントラ予測モードを決定する場合、前記モードリスト内の最初のN個の予測モードのうちの1つを前記第1イントラ予測モードとして決定することと、
    前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することと、を含む、
    請求項93に記載のイントラ予測方法。
  95. 前記第1イントラ予測モードおよび前記モードリストに基づいて、前記第2イントラ予測モードを決定することは、
    前記モードリスト内の、前記第1イントラ予測モード以外の他のN個の予測モードを用いて、前記第2イントラ予測モードを決定することを含む、
    請求項94に記載のイントラ予測方法。
  96. 前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと前記第2イントラ予測モードを決定することは、
    前記モードリストが前記第1イントラ予測モードの決定に使用されない場合、前記モードリスト内の最初のN個の予測モードのうちの1つを前記第2イントラ予測モードとして決定することを含む、
    請求項93に記載のイントラ予測方法。
  97. 前記イントラ予測方法は、
    前記現在ブロックの隣接ブロックに対応するイントラ予測モード、前記重み行列導出モードに対応する相関イントラ予測モード、所定の予測モードに対して順次に並べ替え処理を実行して、予測モードの候補リストを取得することであって、前記所定の予測モードは、DCモード、Bilinearモード、Planarモードのうちの1つまたは複数を含むことと、
    前記予測モードの候補リストに基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することと、を含む、
    請求項88に記載のイントラ予測方法。
  98. 前記イントラ予測方法は、
    前記重み行列導出モードに対応する前記第1イントラ予測モードの参照セットを確立し、前記重み行列導出モードに対応する前記第2イントラ予測モードの参照セットを確立することと、
    前記第1イントラ予測モードの参照セットに基づいて、前記第1イントラ予測モードを決定し、前記第2イントラ予測モードの参照セットに基づいて、前記第2イントラ予測モードを決定することと、を含む、
    請求項88に記載のイントラ予測方法。
  99. 前記イントラ予測方法は、
    第1モードインデックス範囲に基づいて、前記重み行列導出モードを決定することをさらに含み、前記第1モードインデックス範囲は、前記重み行列導出モードのインデックス番号を制限するために使用される、
    請求項88に記載のイントラ予測方法。
  100. 前記イントラ予測方法は、
    前記現在ブロックの寸法パラメータが第1寸法閾値より小さい場合、第1モードインデックス範囲に基づいて、前記重み行列導出モードを決定することをさらに含み、前記第1モードインデックス範囲は、前記重み行列導出モードのインデックス番号を制限するために使用される、
    請求項88に記載のイントラ予測方法。
  101. 第1モードインデックス範囲は、第1下限閾値および第1上限閾値を含み、前記イントラ予測方法は、
    前記重み行列導出モードのインデックス番号が前記第1下限閾値より小さい場合、前記重み行列導出モードのインデックス番号を前記第1下限閾値に設定することと、
    前記重み行列導出モードのインデックス番号が前記第1上限閾値より大きい場合、前記重み行列導出モードのインデックス番号を前記第1上限閾値に設定することと、をさらに含む、
    請求項99または100に記載のイントラ予測方法。
  102. 前記イントラ予測方法は、
    第2モードインデックス範囲に基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することをさらに含み、前記第2モードインデックス範囲は、イントラ予測モードのインデックス番号を制限するために使用される、
    請求項87に記載のイントラ予測方法。
  103. 前記イントラ予測方法は、
    前記現在ブロックの寸法パラメータが第2寸法閾値より小さい場合、第2モードインデックス範囲に基づいて、前記第1イントラ予測モードと前記第2イントラ予測モードを決定することをさらに含み、前記第2モードインデックス範囲は、イントラ予測モードのインデックス番号を制限するために使用される、
    請求項87に記載のイントラ予測方法。
  104. 第2モードインデックス範囲は、第2下限閾値および第2上限閾値を含み、前記イントラ予測方法は、
    前記第1イントラ予測モードの第1インデックス番号を決定し、前記第2イントラ予測モードの第2インデックス番号を決定することと、
    前記第1インデックス番号と前記第2インデックス番号の両方を前記第2下限閾値より大きく設定し、前記第1インデックス番号と前記第2インデックス番号の両方を前記第2上限閾値より小さく設定することと、をさらに含む、
    請求項102または103に記載のイントラ予測方法。
  105. 前記イントラ予測方法は、
    前記モードリストに基づいて、前記現在ブロックの第1初期モードと第2初期モードを決定することと、
    オフセットモードパラメータを決定し、前記オフセットモードパラメータが、オフセット処理を実行することを示す場合、前記現在ブロックのオフセットパラメータを決定することと、
    前記第1初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第1イントラ予測モードを決定し、前記第2初期モードおよび前記オフセットパラメータに基づいて、前記現在ブロックの第2イントラ予測モードを決定することと、
    前記第1イントラ予測モードと前記第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定することと、をさらに含む、
    請求項87に記載のイントラ予測方法。
  106. 前記第1イントラ予測モードと第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定することは、
    前記第1イントラ予測モードに従って、前記現在ブロックの第1予測値を決定し、前記第2イントラ予測モードに従って、前記現在ブロックの第2予測値を決定することと、
    前記第1予測値と前記第2予測値に対して加重平均計算を実行して、前記現在ブロックの予測値を取得することと、を含む、
    請求項87に記載のイントラ予測方法。
  107. エンコーダであって、第1決定部を備え、
    前記第1決定部は、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックの重み行列導出モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定し、前記第1イントラ予測モード、第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定するように構成され、または
    前記第1決定部は、現在ブロックのイントラ予測値がSAWPモードを用いて決定される場合、前記現在ブロックのモードリストを決定し、前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記第1イントラ予測モードと第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定するように構成される、前記エンコーダ。
  108. エンコーダであって、
    第1プロセッサと、前記第1プロセッサによって実行可能な命令が記憶された第1メモリと、を備え、
    前記命令は、前記第1プロセッサに、請求項1ないし33または34ないし53のいずれか一項に記載のイントラ予測方法を実行させる、前記エンコーダ。
  109. 復号化部と、第2決定部と、を備える、デコーダであって、
    前記復号化部は、ビットストリームを解析するように構成され、
    前記第2決定部は、現在ブロックのイントラ予測モードパラメータを決定し、前記イントラ予測モードパラメータが、前記現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、前記現在ブロックの重み行列導出モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記重み行列導出モードに基づいて、前記現在ブロックの重み行列を決定し、前記第1イントラ予測モード、第2イントラ予測モードおよび前記重み行列に基づいて、前記現在ブロックの予測値を決定するように構成され、または
    前記第2決定部は、現在ブロックのイントラ予測モードパラメータを決定し、前記イントラ予測モードパラメータが、前記現在ブロックのイントラ予測値がSAWPモードを用いて決定されることを示す場合、前記現在ブロックのモードリストを決定し、前記モードリストに基づいて、前記現在ブロックの第1イントラ予測モードと第2イントラ予測モードを決定し、前記第1イントラ予測モードと第2イントラ予測モードに基づいて、前記現在ブロックの予測値を決定するように構成される、前記デコーダ。
  110. デコーダであって、
    第2プロセッサと、前記第2プロセッサによって実行可能な命令が記憶された第2メモリと、を備え、
    前記命令は、前記第2プロセッサに、請求項54ないし86または87ないし106のいずれか一項に記載のイントラ予測方法を実行させる、前記デコーダ。
  111. コンピュータプログラムが記憶された、コンピュータ記憶媒体であって、
    前記コンピュータプログラムは、第1プロセッサに、請求項1ないし33のいずれか一項に記載のイントラ予測方法または請求項34ないし53のいずれか一項に記載のイントラ予測方法を実行させるか、または、前記コンピュータプログラムは、第2プロセッサに、請求項54ないし86のいずれか一項に記載のイントラ予測方法または請求項87ないし106のいずれか一項に記載のイントラ予測方法を実行させる、前記コンピュータ記憶媒体。
JP2023533982A 2020-12-03 2020-12-24 イントラ予測方法、エンコーダ、デコーダおよび記憶媒体 Pending JP2023552997A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2020/133708 2020-12-03
CN2020133708 2020-12-03
PCT/CN2020/139178 WO2022116317A1 (zh) 2020-12-03 2020-12-24 帧内预测方法、编码器、解码器以及存储介质

Publications (1)

Publication Number Publication Date
JP2023552997A true JP2023552997A (ja) 2023-12-20

Family

ID=81852897

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023533982A Pending JP2023552997A (ja) 2020-12-03 2020-12-24 イントラ予測方法、エンコーダ、デコーダおよび記憶媒体

Country Status (7)

Country Link
US (2) US20230300326A1 (ja)
EP (1) EP4258658A4 (ja)
JP (1) JP2023552997A (ja)
KR (1) KR20230111254A (ja)
CN (3) CN116569546A (ja)
MX (1) MX2023006589A (ja)
WO (2) WO2022116317A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220088804A (ko) * 2019-09-24 2022-06-28 후아웨이 테크놀러지 컴퍼니 리미티드 서브픽처 디블로킹을 위한 필터 플래그
US20240048779A1 (en) * 2021-01-12 2024-02-08 Sony Semiconductor Solutions Corporation Information processing device and method
US12041255B2 (en) * 2021-08-02 2024-07-16 Tencent America LLC Constraint of intra mode for geometric partition mode with inter and intra prediction
WO2024007128A1 (zh) * 2022-07-04 2024-01-11 Oppo广东移动通信有限公司 视频编解码方法、装置、设备、系统、及存储介质
WO2024007366A1 (zh) * 2022-07-08 2024-01-11 Oppo广东移动通信有限公司 一种帧内预测融合方法、视频编解码方法、装置和系统
WO2024108391A1 (zh) * 2022-11-22 2024-05-30 Oppo广东移动通信有限公司 视频编解码方法、装置、设备、系统、及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101772459B1 (ko) * 2010-05-17 2017-08-30 엘지전자 주식회사 신규한 인트라 예측 모드
WO2013070629A1 (en) * 2011-11-07 2013-05-16 Huawei Technologies Co., Ltd. New angular table for improving intra prediction
WO2017123133A1 (en) * 2016-01-12 2017-07-20 Telefonaktiebolaget Lm Ericsson (Publ) Video coding using hybrid intra prediction
US10645395B2 (en) * 2016-05-25 2020-05-05 Arris Enterprises Llc Weighted angular prediction coding for intra coding
CN110063056B (zh) * 2016-12-07 2023-09-12 株式会社Kt 用于处理视频信号的方法和设备
WO2019010267A1 (en) * 2017-07-05 2019-01-10 Arris Enterprises Llc POST-FILTERING FOR WEIGHTED ANGULAR PREDICTION
CN111345042A (zh) * 2017-10-09 2020-06-26 艾锐势有限责任公司 自适应不等权重平面预测
CN118301338A (zh) * 2017-11-16 2024-07-05 英迪股份有限公司 图像编码/解码方法以及存储比特流的记录介质
US10785479B2 (en) * 2018-03-30 2020-09-22 Hulu, LLC Intra prediction mode signaling for video coding
US10623736B2 (en) * 2018-06-14 2020-04-14 Telefonaktiebolaget Lm Ericsson (Publ) Tile selection and bandwidth optimization for providing 360° immersive video
CN117692636A (zh) * 2018-10-27 2024-03-12 华为技术有限公司 图像预测方法及装置
EP3857889A4 (en) * 2018-11-16 2021-09-22 Beijing Bytedance Network Technology Co. Ltd. WEIGHTS IN COMBINED INTER-INTRA PREDICTION MODE
CN118488210A (zh) * 2018-12-31 2024-08-13 韩国电子通信研究院 图像编码/解码方法和发送比特流的方法
KR20200110214A (ko) * 2019-03-12 2020-09-23 현대자동차주식회사 예측 유닛을 서브 유닛들로 분할하여 예측하는 인트라 예측 방법 및 장치
WO2022119301A1 (ko) * 2020-12-01 2022-06-09 현대자동차주식회사 인트라 예측을 이용하는 비디오 코딩 방법 및 장치

Also Published As

Publication number Publication date
MX2023006589A (es) 2023-06-16
WO2022116317A1 (zh) 2022-06-09
US20230300326A1 (en) 2023-09-21
CN116569546A (zh) 2023-08-08
US20230308645A1 (en) 2023-09-28
EP4258658A1 (en) 2023-10-11
CN116601951A (zh) 2023-08-15
KR20230111254A (ko) 2023-07-25
EP4258658A4 (en) 2024-11-06
WO2022117089A1 (zh) 2022-06-09
CN116980594A (zh) 2023-10-31

Similar Documents

Publication Publication Date Title
US20230370618A1 (en) Image encoding/decoding method and device, and recording medium storing bitstream
KR102709345B1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR102704683B1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US20240064295A1 (en) Image encoding/decoding method and device, and recording medium in which bitstream is stored
KR102152975B1 (ko) 영상 부호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체
US11516496B2 (en) Image encoding/decoding method and apparatus, and recording medium storing bitstream
KR20240132433A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
JP2024128092A (ja) 画像復号方法、画像符号化方法、及び伝送方法
KR101947657B1 (ko) 인트라 예측 정보 부호화 방법 및 장치
JP2023552997A (ja) イントラ予測方法、エンコーダ、デコーダおよび記憶媒体
KR20190016989A (ko) 영상 복호화 방법 및 장치
KR20180007680A (ko) 영상 부호화/복호화 방법 및 장치
JP2024503193A (ja) フレーム内予測方法、装置、及びデコーダとエンコーダ
WO2022140905A1 (zh) 预测方法、编码器、解码器以及存储介质
JP2024511272A (ja) イントラ予測方法、符号器、復号器及び記憶媒体
CN116671103A (zh) 帧内预测方法、编码器、解码器以及存储介质
CN113924773A (zh) 图像编码/解码方法和装置以及用于存储比特流的记录介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231212

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231212