[go: up one dir, main page]

JP2025512523A - 復号化方法、符号化方法、デコーダ、エンコーダ - Google Patents

復号化方法、符号化方法、デコーダ、エンコーダ Download PDF

Info

Publication number
JP2025512523A
JP2025512523A JP2024560810A JP2024560810A JP2025512523A JP 2025512523 A JP2025512523 A JP 2025512523A JP 2024560810 A JP2024560810 A JP 2024560810A JP 2024560810 A JP2024560810 A JP 2024560810A JP 2025512523 A JP2025512523 A JP 2025512523A
Authority
JP
Japan
Prior art keywords
prediction mode
mode
transform
block
intra prediction
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
JP2024560810A
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 JP2025512523A publication Critical patent/JP2025512523A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • 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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Figure 2025512523000001
本願の実施例は、復号化方法、符号化方法、デコーダ、およびエンコーダを提供する。前記復号化方法は、前記コードストリームを復号化して、前記現在ブロックの第1変換係数を取得するステップと、前記第1変換係数に対して第1変換を実行して、前記現在ブロックの第2変換係数を取得するステップと、前記第2変換係数に対して第2変換を実行して、前記現在ブロックの残差ブロックを取得するステップと、予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて、前記現在ブロックに対して予測し、前記現在ブロックの予測ブロックを取得するステップと、前記現在ブロックの予測ブロックと前記現在ブロックの残差ブロックに基づいて、前記現在ブロックの再構成ブロックを取得するステップと、を含む。本願では、予測モード導出モードと第2変換とを基に第1変換を導入して、現在ブロックの解凍効率を向上できる。

Description

本願の実施例は、画像ビデオの符号化・復号化の技術分野に関し、より具体的には、復号化方法、符号化方法、デコーダおよびエンコーダに関する。
デジタルビデオ圧縮技術は、送信・保存しやすくなるように、主に膨大なデジタルビデオデータを圧縮する。インターネットビデオの普及に伴い、ビデオの鮮明さに対する要求は、ますます高くなっていく。既存のデジタルビデオ圧縮規格でもビデオ解凍技術を実現できるが、圧縮効率を向上させるために、より優れるデジタルビデオ解凍技術を追求する必要がある。
本願の実施例は、圧縮効率を向上可能な復号化方法、符号化方法、デコーダおよびエンコーダを提供する。
第1側面では、本願は、復号化方法を提供することであって、前記方法は、
コードストリームを復号化して、現在ブロックの第1変換係数を取得するステップと、
前記第1変換係数に対して第1変換を実行して、前記現在ブロックの第2変換係数を取得するステップと、
前記第2変換係数に対して第2変換を実行して、前記現在ブロックの残差ブロックを取得するステップと、
予測モード導出モードによって導出された第2イントラ予測モードと第1イントラ予測モードとに基づいて、前記現在ブロックの予測ブロックを取得するステップと、
前記現在ブロックの予測ブロックと前記現在ブロックの残差ブロックに基づいて、前記現在ブロックの再構成ブロックを取得するステップと、を含む。
第2側面では、本願は、符号化方法を提供することであって、前記方法は、
予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて、現在ブロックに対して予測し、前記現在ブロックの予測ブロックを取得するステップと、
前記現在ブロックの予測ブロックに基づいて、前記現在ブロックの残差ブロックを取得するステップと、
前記現在ブロックの残差ブロックに対して第3変換を実行して、前記現在ブロックの第3変換係数を取得するステップと、
第3変換係数に対して第4変換を実行して、前記現在ブロックの第4変換係数を取得するステップと、
第4変換係数に対して符号化するステップと、を含む。
第3側面では、本願は、デコーダを提供することであって、前記デコーダは、
コードストリームを復号化して現在ブロックの第1変換係数を取得することに用いられる復号化ユニットと、
前記第1変換係数に対して第1変換を実行して、前記現在ブロックの第2変換係数を取得し、前記第2変換係数に対して第2変換を実行して、前記現在ブロックの残差ブロックを取得することに用いられる変換ユニットと
予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて、前記現在ブロックに対して予測し、前記現在ブロックの予測ブロックを取得することに用いられる予測ユニットと、
前記現在ブロックの予測ブロックと、前記現在ブロックの残差ブロックとに基づいて、前記現在ブロックの再構成ブロックを取得することに用いられる再構成ユニットと、を含む。
第4側面では、本願は、エンコーダを提供することであって、前記エンコーダは、
予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて、現在ブロックを予測し、前記現在ブロックの予測ブロックを取得することに用いられる予測ユニットと、
前記現在ブロックの予測ブロックに基づいて、前記現在ブロックの残差ブロックを取得することに用いられる残差ユニットと、
前記現在ブロックの残差ブロックに対して第3変換を実行して、前記現在ブロックの第3変換係数を取得し、
前記第3変換係数に対して第4変換を実行して、前記現在ブロックの第4変換係数を取得する変換ユニットと、
前記第4変換係数に対して符号化することに用いられる符号化ユニットと、を含む。
第5側面では、本願は、デコーダを提供することであって、前記デコーダは、
コンピュータ命令を実行するように構成されるプロセッサと、
コンピュータ命令が記憶されるコンピュータ読み取り可能な記憶媒体であって、コンピュータ命令は、プロセッサが上記第1側面または各側面における復号化方法をロードして実行するように構成されるコンピュータ読み取り可能な記憶媒体と、を含む。
一実装形態では、該プロセッサは1つまたは複数であり、該メモリは1つまたは複数である。
一実装形態では、該コンピュータ読み取り可能な記憶媒体はプロセッサと共に実現されてもよいし、プロセッサと別に設置されてもよい。
第6側面では、本願は、エンコーダを提供することであって、前記エンコーダは、
コンピュータ命令を実行するように構成されるプロセッサと、
コンピュータ命令が記憶されるコンピュータ読み取り可能な記憶媒体であって、コンピュータ命令はプロセッサが上記第2側面または各側面における符号化方法をロードして実行するように構成されるコンピュータ読み取り可能な記憶媒体と、を含む。
一実装形態では、該プロセッサは1つまたは複数であり、該メモリは1つまたは複数である。
一実装形態では、該コンピュータ読み取り可能な記憶媒体はプロセッサと共に実現されてもよいし、コンピュータ読み取り可能な記憶媒体はプロセッサとは別に設置されてもよい。
第7側面では、本願は、コンピュータ命令が記憶されるコンピュータ読み取り可能な記憶媒体を提供することであって、コンピュータ命令がコンピュータ装置のプロセッサによって読み取られて実行される場合、コンピュータ装置は上記第1側面に係る復号化方法または上記第2側面に係る符号化方法を実行させる。
第8の側面において、本願は、上記第1側面に係るコードストリームまたは上記第2側面に係るコードストリームを提供する。
上記の技術的方案に基づいて、本願は、予測モード導出モードと第2変換を基に、第1変換を導入して、現在ブロックの解凍効率を向上させることができる。
本願の実施例によって提供される符号化フレームワークの概略ブロック図である。 本願の実施例によって提供される65つの角度予測モードの具体的な方向の概略図である。 本願の実施例によって提供される広角度予測モードの参照画素の例である。 本願の実施例によって提供されるMIPモードの概略図である。 本願の実施例によって提供されるDIMDに基づいて予測モードを導出する概略図である。 本願の実施例によって提供されるDIMDに基づいて予測ブロックを導出する概略図である。 本願の実施例によって提供されるTIMDで使用されるテンプレートの概略図である。 本願の実施例によって提供されるGPMの正方形ブロックにおける64つの重み導出モードに対応する重みマップの例である。 本願の実施例によって提供される重み導出モードにおける分割線の例である。 本願の実施例によって提供されるAWPの正方形ブロックにおける56つの重み導出モードに対応する重みマップの例である。 本願の実施例によって提供されるGPMまたはAWPの概略図である。 本願の実施例によって提供されるDCT2タイプの基画像の例示である。 本願の実施例によって提供されるLFNSTの例である。 本願の実施例によって提供されるLFNSTの変換行列群の例である。 本願の実施例によって提供される復号化フレームワークの概略ブロック図である。 本願の実施例によって提供される復号化方法の概略的なフローチャートである。 本願の実施例によって提供される符号化方法の概略的なフローチャートである。 本願の実施例によって提供されるデコーダの概略ブロック図である。 本願の実施例によって提供されるエンコーダの概略ブロック図である。 本願の実施例によって提供される電子機器の概略ブロック図である。
以下、添付図面を参照して、本願の実施例における技術的方案について説明する。
本願の実施例によって提供される方案は、デジタルビデオ符号化技術の分野に適用することができる。例えば、画像符号化・復号化、ビデオ符号化・復号化、ハードウェアビデオ符号化・復号化、専用回路ビデオ符号化・復号化、リアルタイムビデオ符号化・復号化の分野を含むが、これらに限定されない。さらに、本願の実施例によって提供される方案は、オーディオおよびビデオ符号化規格(Audio Video coding Standard、AVS)、第2世代AVS規格(AVS2)、または第3世代AVS規格(AVS3)に組み込まれることができる。例えば、H.264/オーディオビデオ符号化(Audio Video coding、AVC)規格、H.265/高効率ビデオ符号化(High Efficiency Video Coding、HEVC)規格、およびH.266/多用途ビデオ符号化(Versatile Video Coding、VVC)規格を含むが、これらに限定されない。さらに、本願の実施例によって提供される方案は、画像の非可逆圧縮(lossy compression)、画像の可逆圧縮(lossless compression)にも用いられることができる。該可逆圧縮は、視覚的可逆圧縮(visually lossless compression)または数学的可逆圧縮(mathematically lossless compression)であってもよい。
ビデオの符号化・復号化の規格は、いずれもブロックベースのハイブリッド符号化フレームワークを採用する。ビデオにおける各フレームは、同じサイズ(128×128、64×64など)の最も大きな符号化ユニット(largest coding unit、LCU)または符号化ツリーユニット(Coding Tree Unit、CTU)の正方形に分割される。各最大符号化ユニットまたは符号化ツリーユニットは、ルールに従って長方形の符号化ユニット(coding unit、CU)に分割される。符号化ユニットは、予測ユニット(prediction unit、PU)、変換ユニット(transform unit、TU)などに分割されることもある。ハイブリッド符号化フレームワークは、予測(prediction)、変換(transform)、量子化(quantization)、エントロピー符号化(entropy coding)、ループフィルター(in loop filter)などのモジュールを含む。予測モジュールは、イントラ予測(intra prediction)とインター予測(inter prediction)を含む。インター予測は、動き推定(motion estimation)と動き補償(motion compensation)を含む。ビデオにおける1つのフレームにおける隣接する画素間には強い関連性があるため、ビデオ符号化・復号化技術では、イントラ予測方法が使用され、隣接する画素間の空間的冗長性が排除される。イントラ予測は、同一フレーム画像の情報のみを参照し、現在の分割ブロックにおける画素情報を予測する。ビデオにおける隣接フレームの間には強い関連性があるため、ビデオ符号化・復号化技術では、インター予測方法が使用され、隣接フレームの間の時間的冗長性を排除し、符号化効率を向上させる。インター予測では、異なるフレームの画像情報を参照し、動き推定を用いて現在の分割ブロックに最も適合する動きベクトル情報を探索することができる。この変換は、予測された画像ブロックを周波数領域に変換し、エネルギーを再配分して、量子化と組み合わせることで、人間の目に影響を与えていない情報を削除できることにより、視覚的冗長性を除去する。エントロピー符号化は、現在のコンテキストモデルとバイナリコードストリームの確率情報に基づいて文字的冗長性を排除できる。
デジタルビデオ符号化プロセスでは、エンコーダは、まずオリジナルビデオシーケンスから白黒画像またはカラー画像を読み取り、次にその白黒画像またはカラー画像に対して符号化する。白黒画像は輝度成分の画素を含むことができ、カラー画像はクロミナンス成分の画素を含むことができる。選択的に、カラー画像には輝度成分を持つ画素も含まれる場合がある。オリジナルビデオシーケンスのカラーフォーマットは、輝度クロミナンス(YCbCr、YUV)フォーマットまたは赤緑青(Red-Green-Blue、RGB)フォーマットなどであってもよい。具体的には、エンコーダは、1つの白黒画像またはカラー画像を読み取った後、ブロックにそれぞれ分割し、現在ブロックに対してイントラ予測またはインター予測を使用して、現在ブロックの予測ブロックを生成する。現在ブロックのオリジナルブロックから予測ブロックを減算して残差ブロックを取得して、残差ブロックを変換・量子化して量子化係数行列を取得して、量子化係数行列に対してエントロピー符号化してコードストリームに出力する。デジタルビデオ復号化プロセスにおいて、デコーダは、現在ブロックに対してイントラ予測またはインター予測を使用して、現在ブロックの予測ブロックを生成する。また、デコーダは、コードストリームを復号化して量子化係数行列を取得し、量子化係数行列に対して逆量子化・逆変換を実行して残差ブロックを取得し、予測ブロックと残差ブロックを加算して再構成ブロックを取得する。再構成ブロックは、再構成画像の構成に用いられ、デコーダは、画像またはブロックに基づいて、再構成画像に対してループフィルタリングを実行して、復号化画像を取得する。
現在ブロック(current block)は、現在の符号化ユニット(CU)または現在の予測ユニット(PU)などでもよい。
符号化側でも、復号化画像を取得するために復号化側と類似する処理が必要であることに留意されたい。復号化画像は、後続のフレームのインター予測の参照フレームとして使用できる。符号化側で決定されたブロック分割情報や、予測、変換、量子化、エントロピー符号化、ループフィルタリングなどのモード情報やパラメータ情報は、必要に応じてコードストリームに出力する必要がある。復号化側は、解析および既存の情報を分析して、符号化側と同じブロック分割情報や、予測、変換、量子化、エントロピー符号化、ループフィルタリングおよびその他のモード情報またはパラメータ情報を決定することにより、符号化側で取得される復号化画像と復号化側で取得される復号化画像とは同じであることを保証する。符号化側で取得される復号化画像は、通常、再構成画像とも呼ばれる。予測時に、現在ブロックを予測ユニットに分割することができ、変換時に、現在ブロックを変換ユニットに分割することができる。予測ユニットと変換ユニットとの間の分割は、同じであっても異なっていてもよい。勿論、上記はブロックベースのハイブリッド符号化フレームワークにおけるビデオコーデックの基本的なプロセスに過ぎなく、技術の発展に伴い、フレームワークの一部のモジュールやプロセスの一部のステップが最適化される可能性がある。本願は、ブロックベースのハイブリッド符号化フレームワークにおけるビデオコーデックの基本的なフローに適用される。
理解しやすくするように、本願によって提供される符号化フレームワークを先に簡単に紹介する。
図1は、本願の実施例によって提供される符号化フレームワーク100の概略ブロック図である。
図1に示すように、符号化フレームワーク100は、イントラ予測ユニット180、インター予測ユニット170、残差ユニット110、変換・量子化ユニット120、エントロピー符号化ユニット130、逆変換・逆量子化ユニット140、およびループフィルタリングユニット150を含むことができる。選択的に、符号化フレームワーク100は、復号化画像バッファユニット160を含むこともできる。該符号化フレームワーク100は、ハイブリッドフレームワーク符号化モードと呼ばれてもよい。
イントラ予測ユニット180またはインター予測ユニット170は、符号化対象の画像ブロックを予測して予測ブロックを出力することができる。残差ユニット110は、予測ブロックと符号化対象画像ブロックとに基づいて、予測ブロックと符号化対象画像ブロックとの差分値である残差ブロックを算出することができる。変換・量子化ユニット120は、残差ブロックに対して変換・量子化などの操作を実行して、人間の目に鈍感な情報を除去し、視覚的冗長性を除去することに用いられる。選択的に、変換・量子化ユニット120による変換・量子化前の残差ブロックは、時間領域残差ブロックと呼ばれることがあり、変換・量子化ユニット120による変換・量子化後の時間領域残差ブロックは、周波数残差ブロックまたは周波数領域の残差ブロックと呼ばれることがある。エントロピー符号化ユニット130は、変換・量子化ユニット120から出力された変換量子化係数を受信した後、その変換量子化係数に基づいてコードストリームを出力することができる。例えば、エントロピー符号化ユニット130は、バイナリコードストリームのターゲットコンテキストモデル及び確率情報に従って文字的冗長性を除去することができる。例えば、エントロピー符号化ユニット130は、コンテキストベースの適応型バイナリ算術エントロピー符号化(CABAC)に用いられる。エントロピー符号化ユニット130は、ヘッダ情報符号化ユニットと呼ばれてもよい。選択的に、本願では、符号化対象画像ブロックは、オリジナル画像ブロックまたはターゲット画像ブロックと呼ぶこともでき、予測ブロックは、予測画像ブロックまたは画像予測ブロックと呼ぶこともでき、また、予測信号や予測情報と呼ぶこともできる。再構成ブロックは、再構成画像ブロックまたは画像再構成ブロックとも呼ばれ、再構成信号または再構成情報とも呼ばれる。また、符号化側では、符号化対象の画像ブロックを符号化ブロックまたは符号化画像ブロックと呼ぶこともあり、復号化側では、符号化対象の画像ブロックを復号化ブロックまたは復号化画像と呼ぶこともある。符号化対象画像ブロックは、CTUであってもよいし、CUであってもよい。
符号化フレームワーク100は、予測ブロックと符号化対象画像ブロックとの残差を算出して残差ブロックを取得し、変換、量子化などのプロセスを経て復号化側に送信する。相応に、デコーダはコードストリームを受信して復号化した後、逆変換や逆量子化などの手順を通じて残差ブロックを取得する。デコーダによって予測された予測ブロックに残差ブロックを重ね合わせ、再構成ブロックを取得する。
符号化フレームワーク100における逆変換・逆量子化ユニット140、ループフィルタリングユニット150、および復号化画像バッファユニット160は、1つのデコーダを形成することに用いられることに留意されたい。イントラ予測ユニット180またはインター予測ユニット170は、既存の再構成ブロックに基づいて符号化対象画像ブロックを予測することができることにより、符号化側と復号化側が参照フレームに対する理解の一貫性を保証することができる。言い換えると、エンコーダはデコーダの処理ループをコピーでき、デコーダと同じ予測を生成できる。具体的には、量子化された変換係数を逆変換・逆量子化ユニット140で逆変換・逆量子化し、復号化側で近似残差ブロックをコピーする。近似残差ブロックに予測ブロックを重ね合わせた後、ループフィルタリングユニット150を介して、ブロックベースの処理および量子化によって引き起こされるブロッキング効果を滑らかに除去することができる。ループフィルタリングユニット150によって出力された画像ブロックは、後続の画像の予測に使用するために復号化画像バッファユニット160に格納され得る。
図1は本願の例示にすぎず、本願を限定するものではないことを理解されたい。
例えば、符号化フレームワーク100におけるループフィルタリングユニット150は、デブロッキングフィルタ(DBF)およびサンプル適合補償フィルタリング(SAO)を含むことができる。DBFの機能はブロッキング効果を除去することであり、SAOの機能はリンギング効果を除去することである。本願の他の実施例では、該符号化フレームワーク100は、ビデオ圧縮効率を向上させるために、ニューラルネットワークベースのループフィルタリングアルゴリズムを採用することができる。言い換えると、該符号化フレームワーク100は、深層学習ニューラルネットワークに基づくビデオ符号化ハイブリッドフレームワークであってもよい。一実現形態では、デブロッキングフィルタおよびサンプル適合補償フィルタリングを基に、畳み込みニューラルネットワークに基づくモデルを使用して、画素をフィルタリングした結果を算出することができる。ループフィルタリングユニット150の輝度成分とクロミナンス成分のネットワーク構造は同一であっても異なっていてもよい。輝度成分にはより多くの視覚情報が含まれることを考慮すると、輝度成分も使用してクロミナンス成分のフィルタリングをガイドし、クロミナンス成分の再構成品質を向上させることができる。
以下、イントラ予測とインター予測の関連内容について説明する。
インター予測について、インター予測は、異なるフレームの画像情報を参照し、動き推定を使用して、符号化対象画像ブロックに最もマッチングする動きベクトル情報を検索し、時間的冗長性を除去する。インター予測で使用されるフレームはPフレーム及び/またはBフレームであり、Pフレームは順方向予測フレームを指し、Bフレームは双方向予測フレームを指す。
イントラ予測について、イントラ予測は、画像の同じフレームの情報のみを参照し、符号化対象画像ブロックにおける画素情報を予測して空間的冗長性を除去する。イントラ予測で使用されるフレームは、Iフレームでもよい。例えば、左から右、上から下の符号化順序に従って、符号化対象画像ブロックは、左上側にある画像ブロック、上側にある画像ブロック、および左側にある画像ブロックを参照情報として参照して、画像ブロックを予測することができる。符号化対象画像ブロックは次の画像ブロックの参照情報として使用される。これにより、画像全体を予測することができる。入力したデジタルビデオが、YUV4:2:0というフォーマットなどのカラー形式の場合、デジタルビデオの各画像フレームの4画素ごとに、4つのY成分と2つのUV成分で構成される。符号化フレームワークは、Y成分(即ち輝度ブロック)とUV成分(即ちクロミナンスブロック)とを別々に符号化する。同様に、復号化側もフォーマットに応じて対応する復号化することができる。
イントラ予測プロセスに対して、イントラ予測は、角度予測モードと非角度予測モードを利用して符号化対象画像ブロックを予測でき、予測ブロックを取得する。予測ブロックと符号化対象画像ブロックとにより算出されたレート歪み情報に基づいて、符号化対象画像ブロックの最適な予測モードを絞り出し、該予測モードがコードストリームを通じてデコーダに送信する。復号化側は予測モードを解析し、ターゲット復号化ブロックの予測ブロックを予測し、コードストリーム伝送により得られた時間領域残差ブロックを重ね合わせて再構成ブロックを取得することができる。
長年にわたるデジタルビデオの符号化・復号化規格の発展を経て、平均モードやプレーナモードを有する非角度予測モードは比較的安定した状態を維持する。デジタルビデオの符号化・復号化規格の推進に伴い、角度予測モードは増加し続けている。国際デジタルビデオ符号化規格のHシリーズを例とすると、H.264/AVC規格には8つの角度予測モードと1つの非角度予測モードしかないが、H.265/HEVCは33つの角度予測モードと2つの非角度予測モードに拡張される。H.266/VVCでは、イントラ予測モードがさらに拡張されており、輝度ブロックに対して、67つの従来の予測モードと非従来の行列加重イントラ予測モード(Matrix weighted intra-frame prediction、MIP)がある。67つの従来の予測モードには、プレーナモード、直流(DC)モード、65つの角度予測モードが含まれる。プレーナモードは、通常、グラデーションがあるテクスチャを有するブロックを処理することに用いられ、DCモードは、通常、平らな領域を処理することに用いられ、角度予測モードは、通常、明らかな角度テクスチャを持つブロックを処理することに用いられる。
本願では、イントラ予測に用いられる現在ブロックは正方形ブロックでもよいし、長方形ブロックでもよいことに留意されたい。
さらに、イントラ予測ブロックはいずれも正方形であるため、各角度予測モードを使用する確率は等しい。現在ブロックの長さと幅が等しくない場合、水平ブロック(幅が高さよりも大きい)の上側にある参照画素の使用確率は、左側にある参照画素の使用確率よりも大きい。垂直ブロック(高さが幅よりも大きい)の上側にある参照画素の使用確率は、左側にある参照画素の使用確率よりも小さい。これに基づいて、本願は、広角度予測モードを導入して、長方形ブロックを予測する場合、従来の予測モードを広角度予測モードに切り替え、広角度予測モードで長方形ブロックを予測する場合、現在ブロックの予測角度範囲は、従来の予測モードで予測できる予測角度範囲よりも大きい。選択的に、広角度予測モードを使用する場合でも、従来の角度予測モードのインデックスを使用して、信号を送信することができる。これに応じて、復号化側は信号を受信した後に従来の角度予測モードを広角度予測モードに切り替えることができる。これにより、イントラ予測モードの総数とイントラモード符号化方法は変更されず、イントラモード符号化方法も変更されていない。
図2は、本願の実施例によって提供される65つの角度予測モードの具体的な方向の概略図である。
図2に示すように、インデックス0はプレーンモードの識別に用いられ、インデックス1はDCモードの識別に用いられ、インデックス-14~80はそれぞれ異なる角度予測モードの識別に用いられる。具体的には、インデックス2~66は従来の角度予測モードを識別することに用いられ、インデックス-1~-14およびインデックス67~80は広角度予測モードを識別することに用いられる。言い換えると、インデックス2~66により識別される従来のイントラ予測モードは正方形ブロックの予測に用いられ、インデックス-1~-14および67~80により識別される広角度予測モードは長方形ブロックの予測に用いられる。
本願に係るインデックスxによって識別される予測モードは、予測モードxと呼ばれてもよいことを理解されたい。例えば、インデックス2によって識別されるイントラ予測モードは、イントラ予測モード2と呼ばれてもよい。
図3は、本願の実施例によって提供される広角度予測モードの参照画素の例である。
図3に示すように、広角度予測モードでは、サイズW×HであるCUの場合、その上側にある参照画素の数は2W+1で、左側の参照サンプル点の数は2H+1である。具体的には、図3の(a)に示すように、W>H(例えば、8×4CU)の場合、イントラ予測モード2に近い(イントラ予測モード2より大きい)CUの右下端の点が参照画素をインデックスすることができないことがある。イントラ予測モード66に近い(イントラ予測モード66よりも大きい)一部が依然として参照画素をインデックスすることができるため、予測角度範囲を拡大するように、イントラ予測モード2に近い(イントラ予測モード2よりも大きい)いくつかの準水平角度モードを、イントラ予測モード66に近い(イントラ予測モード66より大きい)いくつかの準垂直角度モードに置き換える必要がある。同様に、図3の(b)に示すように、W<H(例えば、4×8CU)の場合、イントラ予測モード66に近い(イントラ予測モード66より小さい)一部は参照画素をインデックスすることができないことがある。イントラ予測モード2に近い(イントラ予測モード2よりも小さい)一部は依然として参照画素をインデックスすることができるため、予測角度範囲を拡大するように、イントラ予測モード66に近い(イントラ予測モード66より小さい)いくつかの準垂直角度モードをイントラ予測モード2に近い(イントラ予測モード2よりも小さい)いくつかの準水平角度モードに置き換える必要がある。
場合によって、実行対象イントラ予測モードは、現在ブロックのサイズに基づいて決定または選択されてもよく、例えば、現在ブロックのサイズに基づいて、広角度予測モードを決定・選択して、現在ブロックに対してイントラ予測を実行してもよい。例えば、現在ブロックが長方形のブロック(幅と高さとは異なるサイズを有する)である場合、広角度予測モードを使用して現在ブロックのイントラを予測することができる。現在ブロックのアスペクト比は、置き換え対象角度予測モードおよび置き換えた角度予測モードを決定することに用いられる。例えば、現在ブロックに対して予測する場合、現在ブロックの対角(現在ブロックの左下隅から右上隅まで)を超えない角度を有する任意のイントラ予測モードを置き換えた角度予測モードとして選択されてもよい。
以下は、本願に係る他のイントラ予測モードを説明する。
(1)行列ベースのイントラ予測(Matrix based intra prediction、MIP)モード。
MIPモードは、行列加重イントラ予測(Matrix weighted intra prediction)モードとも呼ばれる。MIPモードに含まれるプロセスは、ダウンサンプリング工程、行列乗算工程、およびアップサンプリング工程という3つの主要なステップに分けられる。具体的には、まず、ダウンサンプリング工程におい空間的に隣接する再構成サンプルをダウンサンプリングして、次にダウンサンプリングされたサンプルシーケンスを行列乗算工程の入力ベクトルとして使用する。即ち、ダウンサンプリング工程の出力ベクトルを行列乗算工程の入力として使用し、予め設定された行列と乗算し、オフセットベクトルを加算し、算出されたサンプルベクトルを出力する。行列乗算工程の出力ベクトルをアップサンプリング工程の入力ベクトルとして使用し、アップサンプリングにより最終の予測ブロックを取得する。
図4は、本願の実施例によって提供されるMIPモードの概略図である。
図4に示すように、ダウンサンプリング工程において、MIPモードは現在の符号化ユニットの上に隣接する再構成サンプルを平均することによって、上に隣接するダウンサンプリング再構成サンプルベクトルbdrytopを取得し、左に隣接する再構成されたサンプルを平均することによって、左に隣接するダウンサンプリング再構成サンプルベクトルbdryleftを取得する。bdryTopとbdryLeftを取得した後、これらを行列乗算工程の入力ベクトルbdryredとして使用する。具体的には、サンプルベクトルは、bdryredに基づく最上位行ベクトルbdryTop red、bdryLeft、A・bdryred+bによって取得される。ここで、Aは予め設定された行列である。bは予め設定されたバイアスベクトル、kはMIPモードのインデックスである。サンプルベクトルを取得した後、線形補間によってアップサンプリングされ、実際の符号化ユニットサンプル数とマッチングする予測サンプルブロックを取得する。
言い換えると、幅W、高さHのブロックを予測するために、MIPは入力として現在ブロックの左側にある1列のHつの再構成画素と、現在ブロックの上側にある1行のWつの再構成画素を必要とする。MIPは、参照画素の平均化(Averaging)、行列の乗算(Matrix Vector Multiplication)、および補間(Interpolation)の3つのステップで予測ブロックを生成する。MIPの核心は行列乗算であり、行列乗算により入力画素(参照画素)を用いて予測ブロックを生成する処理と考えることができる。MIPは、複数タイプの行列を提供する。予測方法の相違は行列の相違に反映され、同じ入力画素に異なる行列を使用すると、異なる結果になる。参照画素の平均化と補間との工程は、パフォーマンスと複雑さとのバランスを取る設計である。大きなサイズであるブロックの場合、参照画素の平均化によってダウンサンプリングと同じ効果を達成でき、入力をより小さな行列に適合させることができ、補間によってアップサンプリング効果が得られる。これにより、各サイズのブロックにMIP行列を提供する必要はなく、1つまたは複数の特定のサイズの行列だけを提供すればよい。圧縮性能に対する要求が高まり、ハードウェアの機能が向上するにつれて、次世代の規格ではより複雑なMIPが登場する可能性がある。
MIPモードは、ニューラルネットワークから簡素化することができる。例えば、トレーニングに基づいて行列を取得できるため、強い汎化能力と従来の予測モデルでは達成できない予測効果を備える。MIPモードは、ニューラルネットワークに基づくイントラ予測モデルのハードウェアとソフトウェアの複雑さを複数の簡素化によって取得されたモデルであり、膨大なトレーニングサンプルの上で、複数の予測モードはさまざまなモデルとパラメータを代表する。自然なシーケンスのテクスチャを良好にカバーする。
MIPはプレーナモードに似ているが、明らかにMIPはプレーナモードよりも複雑で柔軟性が高くなる。
ブロックサイズが異なる符号化ユニットでは、MIPモードの数が異なる場合があることに注意されたい。例示的に、サイズ4×4である符号化ユニットの場合、MIPモードでは16つの予測モードがあり、幅が4または高さが4である8×8の符号化ユニットの場合、MIPモードでは8つの予測モードがある。他のサイズの符号化ユニットの場合、MIPモードには6つの予測モードがある。また、MIPモードは転置機能を有し、現在のサイズに適する予測モードに対して、エンコーダ側で転置算出を試行できる。したがって、MIPモードは、現在の符号化ユニットがMIPモードを使用するか否かを示す1つのフラグビットを必要とするだけでなく、現在の符号化ユニットがMIPモードを使用する場合、1つの転置フラグビットをデコーダに追加送信する必要がある。
(2)デコーダ側のイントラモード導出(Decoder side IntraMode Derivation、DIMD)モード。
DIMDモードの主なのは、デコーダがエンコーダと同じ方法を使用してイントラ予測モードを導出することにより、コードストリームにおいて現在の符号化ユニットのイントラ予測モードインデックスの送信を回避してビットオーバーヘッドを節約できることである。
DIMDモードの具体的なプロセスは、次の2つの主なステップに分けることができる。
ステップ1:予測モデルを導出する。
図5は、本願の実施例によって提供されるDIMDに基づいて予測モードを導出する概略図である。
図5(a)に示すように、DIMDは再構成領域におけるテンプレートにおける画素(現在ブロックの左側と上側の再構成画素)を使用して予測モードを導出する。例えば、テンプレートは、現在ブロックの上側にある3つの隣接する行の再構成サンプル、左側の3つの隣接する列の再構成サンプル、および左上側にある対応の隣接する再構成サンプルを含むことができ、これに基づいて、ウィンドウ(例えば、図5(a)に示すように、または図5(b)に示すウィンドウ)に従ってテンプレートにおける複数の勾配値を決定し、各勾配値は、勾配方向に適したイントラ予測モード(Intra prediction mode、IPM)に適合することに用いられる。これに基づいて、複数の勾配値のうち最大および2番目に大きい勾配値に適合する予測モードを導出の予測モードとして使用できる。例えば、図5の(b)に示すように、サイズ4×4であるブロックの場合、勾配値を決定する必要がある全ての画素を分析して対応する勾配ヒストグラム(histogram of gradients)を取得する。図5(c)に示すように、他のサイズであるブロックの場合、勾配値を決定する必要がある全ての画素を分析して、対応する勾配ヒストグラムを取得して、最終的に勾配ヒストグラムにおける最大および2番目に大きい勾配に対応する予測モードを導出した予測モードとして使用される。
勿論、本願における勾配ヒストグラムは、導出予測モードを決定するための例示にすぎず、様々な簡易な形式で実現することができ、本願はこれを限定していない。さらに、本願は、統計的勾配ヒストグラムの方法を限定するものではなく、例えば、勾配ヒストグラムを算出するためにソーベル演算子または他の方法が使用されてもよい。
ステップ2:予測ブロックを導出する。
図6は、本願の実施例によって提供されるDIMDに基づいて予測ブロックを導出する概略図である。
図6に示すように、エンコーダは3つのイントラ予測モード(プレーナモードとDIMDに基づいて導出された2つのイントラ予測モード)の予測値に重み付けを行うことができる。コーデックは、同じ予測ブロック導出方法を使用して、現在ブロックの予測ブロックを取得する。最も大きな勾配値に対応する予測モードが予測モード1であり、2番目に大きい勾配値に対応する予測モードが予測モード2であるとする。エンコーダは次の2つの条件を判断する。
(1)予測モード2の勾配は0ではなく、
(2)予測モード1と予測モード2とは、いずれもプレーナモードまたはDC予測モードではない。
上記の2つの条件が同時に成立しない場合、予測モード1のみを使用して現在ブロックの予測サンプル値を算出する。即ち、予測モード1に対して通常の予測プロセスを適用する。上記の2つの条件が同時に成立した場合は、加重平均法を使用して、現在ブロックの予測ブロックを導出する。具体的に、重み付けの1/3をプレーナモードで占め、残りの2/3を予測モード1と予測モード2の合計の重みとする。例えば、予測モード1の勾配振幅値を予測モード1の勾配振幅値と予測モード2の勾配振幅値との和で除算したものを予測モード1の重み付け重みとする。予測モード2の勾配振幅値を予測モード1の勾配振幅値と予測モード2の勾配振幅値との和で除算したものを予測モード2の重み付け重みとする。上記3つの予測モードに基づいて得られた予測ブロック、即ちプレーナモード、予測モード1、予測モード2に基づいてそれぞれ得られた予測ブロック1、予測ブロック2、予測ブロック3を重み付けして平均化して、現在符号化ユニットの予測ブロックを取得する。デコーダは同じ手順に従って予測ブロックを取得する。
言い換えると、上記のステップ2における重みの算出は次の通りである。
Weight(PLANAR)=1/3
Weight(mode1)=2/3×(amp1/(amp1+amp2))
Weight(mode2)=1-Weight(PLANAR)-Weight(mode1)
ただし、mode1、mode2はそれぞれ予測モード1、予測モード2を表し、amp1、amp2はそれぞれ予測モード1の勾配振幅値、予測モード2の勾配振幅値を表す。DIMDモードでは、現在の符号化ユニットがDIMDモードを使用するか否かを示すことに用いられる1つのフラグビットをデコーダに送信する必要がある。
勿論、上記の加重平均法は本願の例示に過ぎず、本願を限定するものとして理解されるべきではない。
要するに、DIMDは再構成画素の勾配分析を使用してイントラ予測モードをスクリーニングし、2つのイントラ予測モードとプレーナモードを分析結果に従って重み付けを行うことができる。DIMDの利点は、現在ブロックに対してDIMDモードが選択された場合、コードストリームにおいてどのイントラ予測モードが使用されるかを示す必要がなく、代わりにデコーダ自体が上記のプロセスを通じて導出し、ある程度でオーバーヘッドが節約されることになる。
(3)テンプレートベースのイントラモード導出(Template based Intra Mode Derivation、TIMD)モード。
TIMDモードの技術原理は、前述のDIMDモードの技術原理と似ており、いずれもコーデックが同じ動作で予測モードを導出することにより、送信モードインデックスのオーバーヘッドを節約する。TIMDモードは2つの主要な部分として理解できる。まず、テンプレートに従って各予測モードのコスト情報を算出して、最小コストと2番目に小さいコストに対応する予測モードが選択される。最小コストに対応する予測モードは予測モード1として記録され、次に小さいコストに対応する予測モードは予測モード2として記録される。次に小さいコストの値(costMode2)と最小コストの値(costMode1)との比例は、costMode2<2×costMode1ような事前に設定された条件に満たした場合、予測モード1および予測モード2がそれぞれ対応する予測ブロックは、予測モード1および予測モード2がそれぞれ対応する重みに従って重み付けして融合して、最終的な予測ブロックを取得することができる。
例えば、予測モード1と予測モード2がそれぞれ対応する重みは下記のように決定される。
weight1=costMode2/(costMode1+costMode2)
weight2=1-weight1
ただし、weight1は予測モード1に対応する予測ブロックの重みであり、Weight2は予測モード2に対応する予測ブロックの重みである。しかしながら、次に小さいコスト値CostMode2と最小のコスト値CostMode1との比が予め設定された条件に満たさない場合、予測ブロック間の重み付け融合は行われず、予測モード1に対応する予測ブロックは、TIMDの予測ブロックとなる。
TIMDモードを使用して現在ブロックに対してイントラ予測を実行する場合、現在ブロックの再構成サンプルテンプレートに利用可能な隣接する再構成サンプルが含まれていない場合、TIMDモードはプレーナモードを選択して、現在ブロックに対してイントラ予測を実行し、即ち重み付けされていない融合は実行されていない。DIMDモードと同じように、TIMDモードは、現在の符号化ユニットがTIMDモードを使用するか否かを示すフラグビットをデコーダに送信する必要がある。
図7は、本願の実施例によって提供されるTIMDによって使用されるテンプレートの概略図である。
図7に示すように、現在ブロックは幅がM、且つ高さがNの符号化ユニットである場合、コーデックは幅が2(M+L1)+1、高さが2(N+L2)+1に等しい符号化ユニットに基づいて、現在ブロックの参照テンプレート(Reference of template)を選択して現在ブロックのテンプレートを算出することができる。この時点で、現在ブロックのテンプレートに使用可能な隣接テンプレートが含まれていない場合,TIMDモードはプレーナモードを選択して、現在ブロックに対してイントラ予測を実行する。例えば、利用可能な隣接再構成サンプルは、図7における現在CUの左側および上側に隣接するサンプルであり、即ち、斜め充填領域には利用可能な再構成サンプルがない。即ち、斜め充填領域には利用可能な再構成サンプルがない場合、TIMDモードはプレーナモードを選択して、現在ブロックに対してイントラ予測を実行する。
境界の場合を除いて、現在ブロックを符号化・復号化するとき、理論的には、現在ブロックの左側と上側で再構成値を取得できる。即ち、現在ブロックのテンプレートには、利用可能な隣接する再構成サンプルが含まれる。具体的な実現では、デコーダはあるイントラ予測モードを使用してテンプレート上で予測し、予測値と再構成値を比較して、テンプレートにおけるイントラ予測モードのコストを取得できる。例えば、SAD、SATD、SSEなどである。テンプレートと現在ブロックは隣接しているため、テンプレートにおける再構成サンプルは現在ブロックにおける画素と相関するため、テンプレートにおける1つの予測モードのパフォーマンスを使用して、現在ブロックにおける該予測モードのパフォーマンスを推定できる。TIMDは、テンプレートにいくつかの候補イントラ予測モードを予測し、テンプレートにおける候補イントラ予測モードのコストを取得し、コストが最も低い1つまたは2つのイントラ予測モードを現在ブロックのイントラ予測値とする。2つのイントラ予測モード間のテンプレートにおけるコストの差が大きくない場合、2つのイントラ予測モードの予測値に重み付けを行って平均化してことにより、圧縮性能を向上させることができる。選択的に、2つの予測モードの予測値の重みは、上記記載に係るコストに関連し、例えば、重みはコストに反比例する。
要するに、TIMDは、テンプレートにおけるイントラ予測モードの予測効果を使用してイントラ予測モードをスクリーニングし、テンプレートにおけるコストに応じて2つのイントラ予測モードに重み付けを行うことができる。TIMDの利点は、現在ブロックがTIMDモードを選択した場合、コードストリームにおいてどのイントラ予測モードが使用されているかを示す必要がなく、代わりにデコーダ自体が上記のプロセスを通じてそれを導出し、オーバーヘッドがある程度で節約されることになる。
いくつかのイントラ予測モードについての上記の簡単な紹介を通じて、DIMDモードの技術原理がTIMDモードの技術原理に近く、いずれもデコーダを使用してエンコーダと同じ操作を実行し、現在の符号化ユニットの予測モードを推測する。この予測モードでは、複雑さが許容できる場合、予測モードのインデックスの送信を節約できるため、オーバーヘッドが節約され、圧縮効率が向上する。しかしながら、参照情報の制限と、予測品質があまり改善されないため、DIMDモードとTIMDモードは、一貫したテクスチャ特性を持つ広い領域でより効果的に機能するが、テクスチャがわずかに変化することやテンプレート領域がカバーできない場合、この予測モードの予測効果は低い。
また、DIMDモードであってもTIMDモードであっても、複数の従来の予測モードに基づいて得られた予測ブロックを融合したり、複数の従来の予測モードに基づいて得られた予測ブロックに対して重み付けを実行したりすることで、予測ブロックの融合は単一の予測モードで達成できない効果を生み出すことができる。DIMDモードは、追加の重み付け予測モードとしてプレーナモードを導入することによって、隣接する再構成サンプルと予測サンプル間の空間関連性を高め、イントラ予測の予測効果を向上させるが、プレーナモードの予測原理は、比較的簡易であり、右上隅と左下隅とは明らかな相違がある一部の予測ブロックである場合、追加の重み付き予測モードとしてプレーナモードを使用すると、逆効果をもたらす可能性がある。
(4)幾何学的分割モード(geometric partitioning mode、GPM)および角度重み付け予測(angular weighted prediction、AWP)。
ビデオ符号化・復号化規格では、従来の単方向予測では現在ブロックと同じサイズの参照ブロックを1つだけ使用し、従来の双方向予測では、現在ブロックと同じサイズの2つの参照ブロックを使用し、予測ブロックの各ポイントの画素は2つの参照ブロックの対応する位置の平均値であり、即ち各参照ブロックにおける全ての点が50%を占める。さらに、双方向加重予測では、2つの参照ブロックの割合を異なるものにすることができる。例えば、第1参照ブロックにおける全てのポイントが75%を占め、第2参照ブロックにおける全てのポイントが25%を占めるが、同一の参照ブロックにおける全てのポイントの比例は同じである。さらに、復号化側動きベクトルリファインメント(decoder side motion vector refinement、DMVR)や双方向オプティカルフロー(bi-directional optical flow、BIOまたはBDOF)などのいくつかの最適化方法では、参照画素または予測画素に何らかの変化が生じることになる。
GPMまたはAWPの場合、現在ブロックと同じサイズの2つの参照ブロックも使用するが、一部の画素位置は第1参照ブロックに対応する画素値を100%使用し、一部の画素位置は第2参照ブロックに対応する画素値を100%使用する。境領域またはブレンディング領域と呼ばれる領域では、2つの参照ブロックの対応する位置の画素値が一定の割合に従って使用される。境領域の重みも徐々に変化する。これらの重みがどのように割り当てられるかは、GPMまたはAWPの重み導出モードによって決まる。GPMまたはAWPの重み導出モードに従って、各画素位置の重みを決定する。
勿論、ブロックサイズが非常に小さいなどの場合、いくつかのGPMまたはAWPモードでは、一部の画素位置が第1参照ブロックに対応する位置の画素値を100%使用することが保証することができない。一部の画素位置は第2参照ブロックに対応する画素値を100%使用することが保証することができない。このとき、GPMまたはAWPは現在ブロックと異なるサイズである2つの参照ブロックを使用する。即ちそれぞれが必要な部分を参照ブロックとする。即ち、重みが0以外の部分が参照ブロックとして使用され、重みが0である部分は排除される。本願はその実現方法を制限しない。
図8は、本願の実施例によって提供されるGPMの正方形ブロックにおける64つの重み導出モードに対応する重みマップの例示である。
図8に示すように、GPMの正方形ブロックにおける64つの重み導出モードに対応する重みマップがある。また、各重み導出モードに対応する重みマップについて、黒色は第1参照ブロックの対応位置の重み値が0%であることを意味し、白色は第1参照ブロックの対応位置の重み値が100%であることを意味し、灰色の領域は、色の濃さに応じて、第1参照ブロックの対応する位置の重み値が0%より大きく100%未満であることを意味し、第2参照ブロックの対応位置の重み値は、100%から第1参照ブロックの対応位置の重み値を引いた値となることを意味する。
図9は、本願の実施例によって提供される重み導出モードにおける分割線の例である。
図9に示すように、重み導出モードの分割線は、GPMに対応する2つの予測モードの同じ重みを有する点で構成される線であってもよい。即ち、GPMの重み行列において、分割線は、GPMに対応する2つの予測モードの重みが同じ点で構成される線である。言い換えると、分割線は、GPMの重み値行列のうち重み値が変化する領域において、GPMに対応する2つの予測モードの重み値が同じ点で構成される線であってもよい。言い換えると、分割線は、重みが中央値である点で構成される線であり、重みが中央値である点は画素全体の中間に位置してもよいが、画素全体の中間に位置しなくてもよい。0~8を重み値とすると、中央値である重みは4でもよい。
図10は、本願の実施例によって提供されるAWPの正方形ブロックにおける56つの重み導出モードに対応する重みマップの例である。
図10に示すように、AWPの正方形ブロックにおける56つの重み導出モードに対応する重みマップである。各重み導出モードに対応する重みマップについて、黒色は第1参照ブロックの対応位置の重み値が0%であることを意味し、白色は第1参照ブロックの対応位置の重み値が100%であることを意味し、灰色の領域は、色の濃さに応じて、第1参照ブロックの対応する位置の重み値が0%より大きく100%未満であり、第2参照ブロックの対応位置の重み値は、100%から第1参照ブロックの対応位置の重み値を引いた値となることを意味する。
GPMとAWPの重み導出方法は異なってもよいことを注意されたい。例えば、GPMは、各重み導出モードに基づいて角度とオフセットを決定し、各重み導出モードに対応する重みマップを算出する。AWPは、まず各重み導出モードに基づいて1次元重みラインを決定し、次にインター角度予測と同じ方法を使用して1次元重みラインを画像全体に広げ、各重み導出モードに対応する重みマップを取得する。勿論、他の実施例では、各重み導出モードに対応する重みマップを重み行列と呼ぶこともできる。
以下では、GPMを例として、重みの導出方法を説明する。
エンコーダは、各重み導出モードに従って対応する分割線を決定し、分割線に基づいて対応する重み行列を決定することができる。例えば、エンコーダは、表1を使用して、重み導出モードに対応する角度インデックス変数angleIdxおよび距離インデックス変数distanceIdxを決定し、重み導出モードmerge_gpm_partition_Idxを決定することができる。角度インデックス変数angleIdxおよび距離インデックス変数distanceIdxは、分割線を決定することに用いられる変数である。即ち、分割線の角度とオフセットをそれぞれ決定することに用いられる。エンコーダは、各重み導出モードに対応する分割線を決定した後、各重み導出モードに対応する分割線に基づいて、各重み導出モードに対応する重み行列を決定することができる。
表1に示すように、64つの重み導出モード(例えば、図8に示す64つのモード)があり、そのインデックス(merge_gpm_partition_Idx)の取り得る値は0~63である。これらの64つの重み導出モードのそれぞれは、1つの角度インデックス変数angleIdxと距離インデックス変数distanceIdxに対応できる。各重み導出モードのそれぞれは1つの分割線に対応することができることに相当する。勿論、1つの角度インデックス変数angleIdxまたは1つの距離インデックス変数distanceIdxは、1つまたは複数の重み導出モードのインデックスに対応することができ、表1は、本願の例示にすぎず、本願を限定するものとして理解されるべきではない。
3つの成分(例えば、Y、Cb、Cr)はいずれもGPMを使用できるため、1つの成分のGPMの予測サンプル行列を生成するプロセスは、1つのサブプロセスにパッケージすることができ、即ちGPMの重み付け予測工程(Weighted samples prediction process for geometric partitioning mode)に対して、3つの成分がいずれもこの工程を呼び出すことができ、呼び出されるパラメータだけは異なる。本願では輝度成分を例として説明する。例示的に、GPMの重み付き予測プロセスから現在の輝度ブロックの予測行列predSamplesL「xL」「YL」を導出できる。ただし、xL=0..cbWidth-1、yL=0..cbHeight-1である。ただし、nCbWはcbWidthに設定され、nCbHはcbHeightに設定される。
GPMの重み付き予測工程の入力には、現在ブロックの幅nCbW、現在ブロックの高さnCbH、2つの(nCbW)×(nCbH)の予測サンプル行列predSamplesLAおよびpredSamplesLB、GPMの「分割」角度インデックスangleIdx、GPMの距離インデックス変数distanceIdx、成分インデックス変数cIdxを含む。例えば、cIdxが0である場合、輝度成分を表すことに用いられる。GPMの重み付き予測プロセスの出力は、(nCbW)×(nCbH)のGPM予測サンプル行列pbSamples「x」「y」である。ただし、x=0..nCbW-1、y=0..nCbH-1である。
予測サンプル行列pbSamples「x」「y」は次のように導出できる。
例示的に、まず、変数nW、nH、shift1、offset1、displacementX、displacementY、partFliP、shiftHorを次のように導出できる。
nW=(cIdx==0)?nCbW:nCbW×SubWidthC
nH=(cIdx==0)?nCbH:nCbH×SubHeightC
shift1=Max(5、17-BitDepth)、ただし、BitDepthは符号化・復号化のビット深度である。
offset1=1<<(shift1-1)
displacementX=angleIdx
displacementY=(angleIdx+8)%32
partFlip=(angleIdx>=13&&angleIdx<=27)?0:1
shiftHor=(angleIdx%16==8||(angleIdx%16!=0&&nH>=nW))?0:1
次に、変数offsetXとoffsetYを次のように導出できる。
shiftHorの値が0である場合、
offsetX=(-nW)>>1
offsetY=((-nH)>>1)+(angleIdx<16?(distanceIdx×nH)>>3:-((distanceIdx×nH)>>3))
それ以外(即ち、shiftHorの値が1である)の場合、
offsetX=((-nW)>>1)+(angleIdx<16?(distanceIdx×nW)>>3:-((distanceIdx×nW)>>3))
offsetY=(-nH)>>1
そして、予測サンプル行列pbSamples「x」「y」は次のように導出される。ただし、x=0..nCbW-1、y=0..nCbH-1)。
変数xLとyLは次のように導出される。
xL=(cIdx==0)?x:x×SubWidthC
yL=(cIdx==0)?y:y×SubHeightC
weightIdx=(((xL+offsetX)<<1)+1)×disLut「displacementX」+(((yL+offsetY)<<1)+1)×disLut「displacementY」
ただし、表2によりdisLut「displacementX」を取得することができる。
weightIdxL=partFlip?32+weightIdx:32-weightIdx
wValue=Clip3(0、8、(weightIdxL+4)>>3)
pbSamples「x」「y」=Clip3(0、(1<<BitDepth)-1、(predSamplesLA「x」「y」×wValue+predSamplesLB「x」「y」×(8-wValue)+offset1)>>shift1)。
ただし、PbSamples「x」「y」は、(x,y)点の予測サンプルを表す。wValueは(x,y)点の1つの予測モードの予測行列の予測値predSamplesLA「x」「y」の重みを表す。(8-wValue)は(x,y)点のもう1つの予測モードの予測行列の予測値predSamplesLB「x」「y」の重みを表す。
1つの重み導出モードについて、その重み導出モードを使用して各ポイントに対して1つの重み値wValueを導出し、1つのGPM予測値pbSamples「x」「y」を算出できることに注意されたい。このような重みwValueは1つの行列の形式で記述する必要はないが、各位置のwValueを1つの行列に保存すれば、1つの重み行列になることがわかる。各点の重みを別々に算出して重み付けしてGPMの予測値を取得する原理は、全ての重みを算出して、統合に重み付けしてGPMの予測サンプル行列を取得する原理と同じである。理解しやすくなるように、重み行列マップを使用してより直感的である。実際には、各位置の重みに従って記述することもできる。例えば、重み行列導出モードは重み導出モードともいえるが、本願では特に限定されない。
さらに、CU、PU、TUの分割はいずれも長方形の分割に基づくものであるが、GPMとAWPは分割せずに予測された非長方形の分割効果を実現する。GPMとAWPは、2つの参照ブロックの重みのマスク(mask)、即ち前述の重みマップまたは重み行列を使用する。このマスクは、予測ブロックを生成するときの2つの参照ブロックの重みを決定する。言い換える、予測ブロックの一部の位置は第1参照ブロックから取得され、位置の一部は第2参照ブロックから取得されると単純に理解できる。一方、ブレンディング領域(blending area)は2つの参照ブロックの対応する位置を使用して重み付けされて取得されるものである。これにより、ブレンディングがより滑らかになる。GPMやAWPは現在ブロックを2つのCUやPUに分割しないため、予測後の残差の変換、量子化、逆変換、逆量子化なども現在ブロックを1つの全体として処理される。
GPMは重み行列を使用して2つのインター予測ブロックを結合できることに注意されたい。本願は、これを2つの任意の予測ブロックの結合に拡張する。例えば、2つのインター予測ブロック、2つのイントラ予測ブロック、1つのインター予測ブロックと1つのイントラ予測ブロックである。画面コンテンツの符号化においても、イントラブロックコピー(intra block copy、IBC)モードの予測ブロックやパレット(palette)モードの予測ブロックを1つまたは2つの予測ブロックとして使用できる。説明の便宜上、本願では、イントラモード、インターモード、IBCモード、パレットモードを予測モードと総称する。予測モードは、コーデックに基づいて現在ブロックの予測ブロックの情報を生成することができると理解する。例示的に、イントラ予測では、予測モードは、DCモード、プレーンモード、様々なイントラ角度予測モードなどのあるイントラ予測モードであってもよい。勿論、フレーム内参照画素の最適化方法や、予備予測ブロック生成後の最適化方法(例えば波フィルタリングなど)などの補助情報を取り込むこともできる。例えば、インター予測では、予測モードは、融合(merge)モード、動きベクトル差分融合(Merge with Motion Vector Difference、MMVD)モード、アドバンスト動きベクトル予測モード(Advanced Motion Vector Prediction、AMVP)であってもよい。例示的に、予測モードは、単方向予測、双方向予測、または多仮説予測であってもよい。さらに、インター予測モードが単方向予測であり、動き情報が決定できる場合には、その動き情報に基づいて予測ブロックを決定することができる。インター予測モードが双方向予測であり、2つの動き情報が決定できる場合には、その動き情報に基づいて予測ブロックを決定することができる。
図11は、本願の実施例によって提供されるGPMまたはAWPの概略図である。
図11に示すように、GPMが決定する必要がある情報は、1つの重み導出モードと2つの予測モードとして表すことができる。重み導出モードは重み行列または重みを決定することに用いられ、2つの予測モードはそれぞれ予測ブロックまたは予測値を決定する。重み導出モードは、分割モードまたは重み行列導出モードとも呼ばれる。2つの予測モードは、同じ予測モードであっても異なる予測モードであってもよい。例えば、イントラ予測モード、インター予測モード、IBCモード、およびパレットモードを含むが、これらに限定されない。
残差ブロックの変換に関する内容について説明する。
符号化するとき、現在ブロックを先に予測する。空間または時間の関連性を使用して、現在ブロックと同じまたは類似した画像を取得する。1つのブロックについて、予測ブロックと現在ブロックが完全に同一である可能性はあるが、ビデオにおける全てのブロックが同じ状況であることを保証するのは困難である。特に自然のビデオやカメラにより撮影されたビデオである場合、画像のテクスチャが複雑であり、かつ画像におけるノイズなどの要因があるため、通常、予測ブロックは現在ブロックに非常に似ているが、相違がある。さらに、ビデオの不規則な動き、歪み、オクルージョン、輝度などの変化により、現在ブロックを完全に予測することは困難である。したがって、ハイブリッド符号化フレームワークは、現在ブロックのオリジナル画像から予測画像を減算して残差画像を取得するか、または、現在ブロックから予測ブロックを引いて残差ブロックを取得する。残差ブロックは通常、オリジナル画像よりもはるかに簡素であるため、予測によって圧縮効率が大幅に向上する。残差ブロックに対して直接符号化しなく、通常は先に変換を行う。変換とは、残差画像を空間領域から周波数領域に変換し、残差画像の相関性を除去することである。残差画像が周波数領域に変換された後、エネルギーは主に低周波数領域に集中するため、変換された非ゼロ係数の大部分は左上隅に集中する。次に、量子化を使用してさらに圧縮する。また、人間の目は高周波に対して敏感ではないため、高周波領域では、より大きな量子化ステップサイズを使用できる。
画像変換技術は、直交関数または直交行列でオリジナル画像を表現できるようにオリジナル画像を変換する技術であり、この変換は2次元で線形可逆である。一般にオリジナル画像を空間領域画像と呼ばれ、変換された画像は変換領域画像(周波数領域とも呼ばれる)と呼ばれる。変換領域画像は空間領域画像に逆変換することができる。画像変換後は、画像自体の特性をより効果的に反映できる一方で、エネルギーを少量のデータに集中させることができるため、画像の保存、送信及び処理が容易になる。
画像ビデオ符号化の分野において、エンコーダが残差ブロックを取得した後、残差ブロックを変換できる。変換方法は、離散コサイン変換(Discrete Cosine Transform、DCT)および離散サイン変換(Discrete Sine Transform、DST)を含むが、これらに限定されていない。DCTはエネルギー集中特性が強いため、オリジナル画像をDCT変換した後に、0ではない係数が一部の領域(例えば左上隅の領域)のみに存在する。勿論、ビデオの符号化・復号化では画像をブロックに分割して処理するため、変換もブロック単位で行われる。ビデオ符号化・復号化で使用可能なDCTは、DCT2およびDCT8タイプを含むが、これらに限定されていない。ビデオ符号化・復号化で使用可能なDSTは、DST7タイプを含むが、これらに限定されていない。ただし、DCT2タイプはビデオ圧縮規格で一般的に用いられる変換であり、VVCでDCT8タイプとDST7タイプを使用できる。変換は一般的なビデオ圧縮において非常に有用であるが、必ずしも全てのブロックは変換を行う必要ではない。場合によって、変換を行った方が、変換を行わない圧縮よりも効果的でないこともある。したがって、場合によって、エンコーダは、現在のブロックに対して変換を使用するか否かを選択することができる。
エンコーダが現在の画像における現在ブロックを変換するとき、基関数または基画像を使用して、現在ブロックの残差ブロックを変換できる。基画像は、基関数をグラフで表現したものである。
図12は、本願の実施例によって提供されるDCT2タイプの基画像の例示である。
図12に示すように、DCT2タイプの基画像は、基関数に従って描かれた8×8の小ブロックで構成される基画像であり、各小ブロックは8×8の要素(サブブロック)で構成される。具体的な実現では、8×8の小ブロックで構成される基画像を使用して8×8ブロックサイズのブロックを変換することができ、8×8変換係数行列が得られる。
前述したように、VVCにおいて、DCT2タイプを使用して残差ブロックに対して基本的な変換を実行することに加えて、DCT8タイプとDST7タイプを使用して残差ブロックに対して基本的な変換、即ちマルチ変換モード選択(multiple transform selection、MTS)を実行することもできる。基本変換が使用する基関数に対応する変換タイプを、基本変換が使用する変換カーネルタイプと呼ぶこともできる。エンコーダがさまざまな残差分布特性に基づいて基本的な変換を実行する場合、最も適切な変換カーネルタイプを選択することで圧縮性能を向上させることができる。基本変換は主要変換(core transform)とも呼ばれる。MTSは、いくつかの構文要素を通じて変換カーネルタイプを選択できる。構文要素を通じて変換カーネルタイプを選択するMTSを、表3と併せて以下に示す。
表3に示すように、MTS_CU_flagの値が0である場合、水平方向および鉛直方向の基本変換の変換カーネルタイプはDCT2を使用する。MTS_CU_flagの値が1、MTS_Hor_flagの値が0、およびMTS_Ver_flagの値が0である場合、水平方向の変換カーネルタイプはDST7を使用し、鉛直方向の変換カーネルタイプはDST7を使用する。
VVC規格では、MTSの構文を書き換えたり簡素化したりすることもできる。即ち、VVCは構文要素mts_Idxを使用して、基本変換の変換カーネルタイプを決定する。
表4に示すように、trTypeHorは水平変換の変換カーネルタイプを表し、trTypeVerは鉛直変換の変換カーネルタイプを表し、trTypeHorおよびtrTypeVerでは、0がDCT2タイプの変換を示し、1がDST7タイプの変換を示し、2がDCT8タイプの変換を示す。
残差の分布はイントラ予測モードと一定の関連性があるため、基本的な変換ではこの関連性を利用することもできる。1つの手段は、イントラ予測モードに従ってMTSの変換カーネルタイプをグループ化することである。1つのグループ化の例を次の表に示す。
表5に示すように、イントラ予測モードのインデックスが0または1である場合、MTSのインデックス0を有する変換カーネルタイプ群を対応的に選択して、VVCではインデックス0を有するモードがPlanarであり、インデックス1を有するモードがDCであり、DCおよびPlanarの両方がより平坦な予測値を生成する。イントラ予測モードのインデックスが2~12である場合、MTS1のインデックスは1である変換カーネルタイプ群を対応的に選択する。イントラ予測モードの画像によれば、2~12の角度が左下方向を向いていることが分かる。
各変換カーネルタイプ群には、1つの水平変換と鉛直変換の変換カーネルタイプの選択が存在する場合や、複数の水平変換と鉛直変換の変換カーネルタイプの選択がある場合があることを注意されたい。即ち、イントラ予測モードがどの変換カーネルタイプを選択したことに応じて、変換カーネルタイプ群をさらに細分することができ、例えば、何らかの識別またはブロックサイズ情報などを通じて変換カーネルタイプをさらに選択することができ、ここでは詳しく説明しない。大事なのは、基本変換はイントラ予測モードに応じて変換カーネルタイプ群を選択できることである。イントラ予測モードに従って基本変換の変換カーネルタイプ群を選択する方法は、将来、より詳細な基本変換のグループ化を推測することもできることも分かるが、本願ではこれを限定しない。
さらに、本願では主変換に係る変換カーネルタイプは、変換行列、変換タイプ、変換カーネルなどの類似または同一の意味を持つ他の用語とも呼ばれることがある。主変換に係る変換カーネルタイプ群は変換行列群、変換タイプ群、変換カーネル群、などの類似または同一の意味を有する他の用語と呼ばれ、本願では特に限定されない。即ち、本願に係る選択変換カーネルタイプ群または変換カーネルタイプ群は、選択変換行列または変換行列群と呼ぶこともでき、また、選択変換タイプまたは選択変換タイプ群と呼ぶこともでき、選択カーネルまたは変換カーネル群と呼ばれてもよい。変換カーネルタイプまたは変換タイプは、DCT2、DCT8、DST7などを含む場合があり、DCT5、DST4、DST1または識別変換(Identity Transform、IDTR)などを含んでもよい。
さらに、異なるサイズのブロックは、対応するサイズの変換カーネルタイプを使用できるが、本願では詳しく説明しない。
画像はいずれも2次元であり、ハードウェアにとって、2次元変換演算を直接実行する演算量およびメモリのオーバーヘッドは受け入れないため、上記のDCT2タイプ、DCT8タイプ、およびDST7タイプの変換は、水平方向と鉛直方向である1次元変換に分けて2つのステップで実行される。例えば、先に水平変換を実行してから鉛直変換を実行するか、先に鉛直変換を実行してから水平変換を実行する。上記の変換方法は、水平および鉛直方向のテクスチャに対してはより効果的であるが、斜めテクスチャに対してはあまり効果的ではない。水平テクスチャと鉛直テクスチャがありふれたものため、上記の変換方法は圧縮効率を向上させるのに非常に有用である。しかしながら、技術の発展につれて、水平および鉛直テクスチャの残差を処理するだけでは、圧縮効率の要求を満たすことができなくなる。
これに基づいて、本願は二次変換の概念を導入する。即ち、エンコーダは一次変換(primary transform)を基に二次変換を実行して、圧縮効率を向上させることができる。
例示的に、主変換は、水平方向および鉛直方向のテクスチャを処理するために用いられることができ、例えば、主変換には、上記記載に係るDCT2タイプ、DCT8タイプ、およびDST7タイプ変換が含まれるが、これらに限定されない。二次変換は、斜めテクスチャを処理することに用いられる。例えば、二次変換には、低周波非分離変換(low frequency non-separable transfrom、LFNST)を含むが、これらに限定されていない。符号化側では、二次変換は主変換の後、量子化の前に用いられる。復号化側では、二次変換は逆量子化の後、逆一次変換の前に用いられる。
図13は、本願の実施例によって提供されるLFNSTの例示である。
図13に示すように、符号化側で、LFNSTは基本変換の後に左上隅の低周波係数に対して二次変換を実行する。一次変換は、画像の非関連化によってエネルギーを左上隅に集中させる。二次変換は、一次変換の低周波係数に対して非関連化を行う。符号化側では、16つの係数が4×4LFNSTに入力する際に、8つの係数が出力され、64つの係数が8×8LFNSTに入力する際に、16つの係数が出力される。復号化側では、8つの係数が4×4逆LFNSTに入力する際に、16つの係数が出力され、16つの係数が8×8逆LFNSTに入力する際に、64つの係数が出力される。
エンコーダが現在の画像における現在ブロックに対して二次変換を実行するとき、選択された変換行列群内のある変換行列を使用して、現在ブロックの残差ブロックを変換することができる。二次変換はLFNSTであることを例とすると、変換行列はある斜めテクスチャを変換することに用いられる行列を指し、変換行列群はいくつかの類似する斜めテクスチャを変換することに用いられる行列を含むことができる。
図14は、本願の実施例によって提供されるLFNSTの変換行列群の例である。
図14の(a)~(d)に示すように、LFNSTは4群の変換行列を有することができ、同じ変換行列群における変換行列は同じ斜めテクスチャを有する。例えば、図14の(a)に示される変換行列群は、インデックスが0である変換行列群であってもよく、図14の(b)に示される変換行列群は、インデックスが1である変換行列群であってもよい。図14の(c)に示す変換行列群はインデックス2である変換行列群であり、図14の(d)に示す変換行列群はインデックス3である変換行列群である。
本願では、二次変換に係る変換行列は、変換カーネル、変換カーネルタイプまたは基関数、および類似または同一の意味を有する他の用語とも呼ばれることがあり、二次変換に係る変換行列群も変換カーネル群、変換カーネル群、変換カーネルタイプ群、または基関数群などの用語は、類似または同一の意味を有し、本願では特に限定されない。即ち、本願に係る選択変換行列または変換行列群は、選択変換カーネルタイプまたは変換カーネルタイプ群と呼ぶこともでき、選択変換タイプまたは選択変換タイプ群と呼ぶこともできる。選択カーネルまたは変換カーネル群とも呼ばれる。
以下に、LFNSTをイントラ符号化ブロックに適用する関連方案について説明する。
イントラ予測では、参照として現在ブロックの周囲の再構成された画素を使用して現在ブロックに対して予測する。現在のビデオは左から右、上から下に符号化されるため、現在ブロックで使用可能な参照画素は通常、左側と上側にある。角度予測では、指定された角度に従って参照画素を現在ブロックに平坦化することを予測値とする。これは、予測されたブロックが明確な方向性テクスチャを持つことを意味し、角度予測後の現在ブロックの残差も統計的に明らかな角度特性を反映する。したがって、LFNSTによって選択された変換行列は、イントラ予測モードにバインドできる。即ち、イントラ予測モードが決定された後、LFNSTは、テクスチャ方向がイントラ予測モードの角度特性に適合する一群(set)の変換行列を使用できる。
例えば、LFNSTに合計4つの変換行列群があり、各群に2つの変換行列があるとする。イントラ予測モードと変換行列群との対応を表6に示す。
表6に示すように、イントラ予測モード0~81は、4つの変換行列群のインデックスと関連付けることができる。
クロミナンスイントラ予測で使用されるクロス成分予測モードは81~83であるが、輝度イントラ予測にはこれらのモードがないことに注意されたい。LFNSTの変換行列は、転置により1つの変換行列群を使用してより多くの角度を処理できる。例えば、イントラ予測モード13~23とイントラ予測モード45~55はいずれも変換行列群2に対応するが、イントラ予測モード13~23は明らかに水平モードに近く、イントラ予測モード45~55は明らかに鉛直モードに近い。イントラ予測モード45~55に対応する後変換および逆変換は、必要な転置により適合されることになる。
具体的な実現では、LFNSTには合計4つの変換行列群があるため、符号化側は、現在ブロックで使用されるイントラ予測モードに基づいて、LFNSTがどの変換行列群を使用するかを決定し、決定された1つの変換行列群に用いられる変換行列を決定できる。イントラ予測モードとLFNST変換行列群との間の関連性を利用することにより、コードストリームにおける送信においてLFNSTを選択した変換行列を減らすことができる。現在ブロックがLFNSTを使用するか否かことやLFNSTを使用しようとする場合、群における第1ブロックを使用するか第2ブロックを使用するかは、コードストリームといくつかの条件によって決定できる。
勿論、共通のイントラ予測モードが67つあるが、LFNSTには4つの変換行列群しかないことを考慮すると、複数の類似角度予測モードは1つのLFNST変換行列群にしか対応できず、性能と複雑さとのバランスを取る設計である。各変換行列は、変換行列の係数を保存するための記憶領域が必要になるためである。圧縮効率の要件とハードウェア機能の向上により、LFNSTはより複雑になるように設計することもできる。例えば、より大きな変換行列、より多くの変換行列群を使用し、変換行列群ごとにより多くの変換行列を使用する。例えば、表7は、イントラ予測モードと変換行列群との別の対応関係を示す。
表7に示すように、35つの変換行列群が使用され、各変換行列群は3つの変換行列を使用する。変換行列群とイントラ予測モードの対応関係は、次のように表すことができる。イントラ予測モード0~34の場合、変換行列群0~34に順方向に対応する。即ち予測モードの番号が大きいほど変換行列群のインデックスが大きくなる。イントラ予測モード35~67の場合、転置により、2~33に逆方向に対応する。即ち、予測モードの番号が大きいほど、変換行列群のインデックスが小さくなる。残りの予測モードについては、いずれもインデックス2である変換行列群に対応できる。即ち、転置を考慮しない場合、1つのイントラ予測モードが1つの変換行列群に相当する。この設計により、各イントラ予測モードに対応する残差は、より適切なLFNST変換行列を取得することができ、圧縮性能も向上する。
勿論、理論的には、広角度モードでも1対1設計を実現できるが、この設計のコスパが低いため、本願では詳しく説明しない。
また、LFNSTについて、MIPを変換行列群に適合させるために、本願でプレーナモードが適合した変換行列群をMIPに適合する変換行列群として使用することができる。
LFNSTは2次変換の例示にすぎず、2次変換に対する制限として理解されるべきではないことに注意されたい。例えば、LFNSTは分離不可能な二次変換であるが、他の代替実施例では、分離可能な二次変換も使用して、斜めテクスチャの残差の圧縮効率を向上させることができる。
図15は、本願の実施例によって提供される復号化フレームワーク200の概略ブロック図である。
図15に示すように、復号フレームワーク200は、エントロピー復号化ユニット210、逆変換・逆量子化ユニット220、残差ユニット230、イントラ予測ユニット240、インター予測ユニット250、ループフィルタリングユニット260、および復号化画像バッファーユニット270を含む。
エントロピー復号化ユニット210は、コードストリームを受信して復号化した後、予測ブロックと周波数領域残差ブロックを取得し、周波数領域残差ブロックに対して、逆変換・逆量子化ユニット220は、変換および逆量子化などのステップを実行して時間領域残差ブロックを取得する。残差ユニット230は、逆変換・逆量子化ユニット220による変換・逆量子化後の時間領域残差ブロックに、イントラ予測ユニット240またはインター予測ユニット250により予測された予測ブロックを重ね合わせ、再構成ブロックを取得する。
図16は、本願の実施例によって提供される復号化方法300の概略フローチャートである。復号化方法300はデコーダによって実行できることを理解されたい。例えば、図15に示す復号フレームワーク200に適用される。説明の便宜上、以下ではデコーダを例に挙げる。
図16に示すように、復号化方法300は、以下の一部または全部を含むことができる。
S310、デコーダはコードストリームを復号化して、現在ブロックの第1変換係数を取得する。
S320、デコーダは、前記第1変換係数に対して第1変換を実行して、前記現在ブロックの第2変換係数を取得する。
S330、デコーダは、前記第2変換係数に対して第2変換を実行して、前記現在ブロックの残差ブロックを取得する。
S340、デコーダは、予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて、前記現在ブロックに対して予測し、前記現在ブロックの予測ブロックを取得する。
S350、デコーダは、前記現在ブロックの予測ブロックと前記現在ブロックの残差ブロックに基づいて、前記現在ブロックの再構成ブロックを取得する。
本願では、予測モード導出モードと第2変換を基に、第1変換を導入して、現在ブロックの解凍効率を向上させることができる。
例示的に、前記第1変換はLFNSTであってもよい。即ち、本願は、LFNSTを予測モード導出モードに盛り込むことにより、斜めテクスチャの残差の圧縮効率を向上させることができる。
勿論、予測モード導出モードおよびLFNSTの適合方法は、他の二次変換方法にも適用可能である。例えば、LFNSTは非分離型二次変換であるが、他の代替実施例では、予測モード導出モードは分離型二次変換にも適用可能であり、本願では特に限定されない。
いくつかの実施例では、前記予測モード導出モードは、デコーダ側イントラモード導出DIMDモード、または、テンプレートベースのイントラモード導出TIMDモードを含むことができる。
いくつかの実施例では、前記S320は、以下を含むことができる。
前記コードストリームを復号化して、第1識別子と第2識別子を取得し、
前記第1識別子が、予測モード導出モードを使用して現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子が、第1変換を使用して現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、第1変換係数に対して第1変換を実行して、第2変換係数を取得する。
例示的に、前記現在シーケンスは、前記現在ブロックを含む画像シーケンスである。
例示的に、前記第1識別子は、現在シーケンスが予測モード導出モードを使用するか否かを制御することに用いられる。
例示的に、前記第1識別子の取り得る値が第1数値である場合、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別する。前記第1識別子の取り得る値が第2数値である場合、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容しないことを識別する。一つの実現様態としては、前記第1数値が0であり、前記第2数値が1である。別の実現態様として、前記第1数値が1であり、前記第2数値が0である。勿論、前記第1数値や前記第2数値は他の取り得る値であってもよい。
例示的に、前記第2識別子は、現在シーケンスが第1変換を使用するか否かを制御することに用いられる。
例示的に、前記第2識別子の取り得る値が第3数値である場合、前記第1変換を使用して現在シーケンスにおける画像ブロックを変換することを許容することを識別する。また、前記第2識別子の値が第4数値である場合、前記第1変換を使用して現在シーケンスにおける画像ブロックを変換することを許容しないことを識別する。1つの実現態様としては、前記第3数値が0、前記第4数値が1である。別の実現態様として、前記第3数値が1、前記第4数値が0である。勿論、前記第3数値や前記第4数値は他の取り得る値であってもよい。
例示的に、第1識別子がsps_timd/dimd_enabled_flagとして記録され、第2識別子がsps_lfnst_enabled_flagとして記録されている場合、sps_timd/dimd_enabled_flagとsps_lfnst_enabled_flagの取り得る値がいずれも1であるときに、前記第1変換係数に対して第1変換を実行して、前記第2変換係数を取得する。
例示的に、前記第1識別子が予測モード導出モードを使用して現在シーケンスにおける画像ブロックを予測することを許容しないことを識別することに用いられる場合、及び/または、前記第2識別子が第1変換を使用して現在シーケンスにおける画像ブロックを変換することを許容しないことを識別することに用いられる場合、前記第1変換係数に対して前記第1変換を実行していない。言い換えると、前記第1変換係数に対して前記第2変換を直接に実行でき、前記現在ブロックの残差値を取得する。
勿論、他の代替実施例では、前記第1識別子及び/または前記第2識別子は、画像(picture)、スライス(slice)、最大符号化単位(largest coding unit、LCU)、ツリーユニット(Coding Tree Unit、CTU)、符号化ユニット(coding unit、CU)、予測ユニット(prediction unit、PU)、また、変換ユニット(transform unit、TU)などのレベルの識別子に置き換えることもできる。あるいは、前記第1識別子および前記第2識別子を基に、予測モード導出モードを使用するか否か、または、前記第1変換を使用するか否かについて、画像、スライス、LCU、CTU、CU、PUおよびTUなどのレベルの識別子を追加してもよい。本願の実施例では特に限定されない。
いくつかの実施例では、S320は、以下を含むことができる。
前記第1識別子が、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子が、前記第1変換を使用して前記現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、前記コードストリームを復号化して第3識別子を取得する。
前記第3識別子が、前記現在シーケンスにおける画像ブロックが前記予測モード導出モードと前記第1変換を同時に使用できることを識別することに用いられる場合、前記第1変換係数に対して前記第1変換を実行して、前記第2変換係数を取得する。
例示的に、前記第3識別子は、予測モード導出モードと第1変換とを共用できるか否かを制御することに用いられる。
例示的に、前記第3識別子の取り得る値が第5数値である場合、前記現在シーケンスにおける画像ブロックが前記予測モード導出モードと前記第1変換を同時に使用できることを許容することを識別する。前記第3識別子の取り得る値が第6数値である場合、現在シーケンスにおける画像ブロックが予測モード導出モードと第1変換を同時に使用することを許容しないことを識別する。1つの実現態様としては、前記第5数値が0、前記第6数値が1である。別の実装態様として、前記第5数値が1、前記第6数値が0である。勿論、前記第5数値や前記第6数値は他の取り得る値であってもよい。
例示的に、第1識別子がsps_timd/dimd_enabled_flagとして記録され、第2識別子がsps_lfnst_enabled_flagとして記録され、第3識別子がsps_timd/dimd_lfnst_enabled_flagとして記録される場合、sps_timd/dimd_enabled_flagとsps_lfnst_enabled_flagの取り得る値がいずれも1である場合、sps_timd/dimd_lfnst_enabled_flagが1であるか否か、且つsps_timd/dimd_lfnst_enabled_flagが1である場合、前記第1変換係数に対して前記第1変換を実行して、前記第2変換係数を取得する。
勿論、他の代替実施例では、前記第3識別子は、画像(picture)、スライス(slice)、最大符号化単位(largest coding unit、LCU)、ツリーユニット(Coding Tree Unit、CTU)、符号化ユニット(coding unit、CU)、予測ユニット(prediction unit、PU)、または変換ユニット(transform unit、TU)などのレベルの識別子に置き換えることもできる。あるいは、前記第3識別子を基に、前記予測モード導出モードまたは前記第1変換を使用するか否かについて、画像、スライス、LCU、CTU、CU、PU、またはTUなどのレベルの識別子を追加してもよい。本願の実施例はこれを特に限定するものではない。
いくつかの実施例では、S320は以下を含むことができる。
前記第1識別子が、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子が、前記第1変換を使用して前記現在シーケンスにおける画像ブロックを変換することを識別することに用いられる場合、デコーダは、前記現在ブロックの高さ及び/または幅が第1閾値以上である場合、前記第1変換係数に対して前記第1変換を実行して、前記第2変換係数を取得する。
例示的に、第1識別子がsps_timd/dimd_enabled_flagとして記録され、第2識別子がsps_lfnst_enabled_flagとして記録され、第3識別子がsps_timd/dimd_lfnst_enabled_flagとして記録される場合、sps_timd/dimd_enabled_flagとsps_lfnst_enabled_flagの取り得る値がいずれも1である場合、デコーダは、前記現在ブロックの高さ及び/または幅を決定する。前記現在ブロックの高さ及び/または幅が第1閾値以上である場合、前記第1変換係数に対して前記第1変換を実行して、前記第2変換係数を取得する。
例示的に、前記第1閾値は、4、8、16、32、64、または他の取り得る値であってもよい。
いくつかの実施例では、前記S320の前に、前記方法300はさらに、以下を含むことができる。
デコーダは、前記第1変換が使用する変換行列群を決定する。
予測モード導出モードは、2つの予測モード(即ち、第1イントラ予測モードと第2イントラ予測モード)を組み合わせて現在ブロックに対して予測するため、異なるイントラ予測モードで現在ブロックに対して予測して取得られる予測ブロックは、異なるテクスチャ特性を示すことがあることに留意されたい。したがって、現在ブロックが予測モード導出モードを選択する場合、第1イントラ予測モードにより現在ブロックの予測ブロックが1つのテクスチャ特性を示される可能性があり、第2イントラ予測モードにより現在ブロックの予測ブロックがもう1つのテクスチャ特性を示される可能性がある。言い換えると、現在ブロックに対して予測した後、統計的な観点から、現在ブロックの予測ブロックも2つのテクスチャ特性を示すことがある。即ち、現在ブロックの残差ブロックは必ずしもある予測モードに示される規律に合わない。したがって、予測モード導出モードに対して、デコーダが第1変換係数に対して第1変換を行う前に、その特性に適合する変換行列群を決定する必要がある。しかしながら、第1変換が使用する変換行列群は、一般的に、単一のイントラ予測モードによって定義される変換行列群である。そのため、予測モード導出モードに対して、第1変換が使用する変換行列群を決定する方案を改良する必要があり、下記には各実現様態を例示的に説明する。
いくつかの実施例では、第1変換が使用する変換行列群は、プレーナモードまたは直流DCモードに適合する変換行列群と同じである。
例示的に、デコーダが現在ブロックの予測モードをチェックするとき、現在ブロックが予測モード導出モードを使用している場合、デコーダは予測モード導出モードとプレーナモード(またはDCモード)を1つのカテゴリに分類し、予測モード導出モードを決定する。プレーナモード(またはDCモード)に従って、第1変換に用いられる変換行列群を適合する。言い換えると、デコーダが現在ブロックの予測モードをチェックするときに、現在ブロックが予測モード導出モードを使用している場合、エンコーダは現在ブロックの予測モードをプレーナモード(またはDCモード)に戻すことができることにより、デコーダは、プレーナモード(またはDCモード)に適合する変換行列群を前記第1変換が使用する変換行列群に決定する。言い換えると、デコーダが現在ブロックの予測モードをチェックするとき、現在ブロックが予測モード導出モードを使用する場合、デコーダは、現在ブロックの第1変換が使用した変換行列群が、プレーナモード(またはDCモード)に適合する変換行列群であってもよいと判断する。
本実施例では、プレーナモード(またはDCモード)と予測モード導出モードの両方も様々なテクスチャ特性を反映できるため、プレーナモードまたは直流DCモードに適合する変換行列群を第1変換が使用する変換行列群に決定することにより、予測モード導出モードと第1変換に基づいて現在ブロックを復号化するだけでなく、第1変換が使用する変換行列群のテクスチャ特性が現在ブロックの残差ブロックのテクスチャ特性にできる限り接近することを保証でき、解凍効率を向上させる。
いくつかの実施例では、デコーダは、第1イントラ予測モードおよび第2イントラ予測モードに基づいて第3イントラ予測モードを決定し、第1変換が使用する変換行列群は、第3イントラ予測モードに適合する変換行列群と同じである。
例示的に、デコーダは、第3イントラ予測モードが適合した変換行列群を、第1変換が使用する変換行列群に決定することができる。
例示的に、デコーダ側が現在ブロックの予測モードをチェックするとき、現在ブロックが予測モード導出モードを使用する場合、デコーダは第1イントラ予測モードと第2イントラ予測モードに基づいて、第3イントラ予測モードを決定する。デコーダが第3イントラ予測モードに従って第1変換が使用する変換行列群を適合できるように、予測モード導出モードと第3イントラ予測モードを1つのカテゴリに分類する。言い換えると、デコーダが現在ブロックの予測モードをチェックするとき、現在ブロックが予測モード導出モードを使用する場合、エンコーダは現在ブロックの予測モードを第3イントラ予測モードに戻すことができることにより、デコーダが第3イントラ予測モードに適合する変換行列群を、前記第1変換が使用する変換行列群に決定する。言い換えると、デコーダが現在ブロックの予測モードをチェックするとき、現在ブロックが予測モード導出モードを使用する場合、デコーダが現在ブロックに対する第1変換が使用する変換行列群は第3イントラ予測モードに適合する変換行列群であってもよいと判断してもよい。
勿論、他の代替実施例では、デコーダは、先に第3イントラ予測モードを決定し、第3イントラ予測モードにより前記第1変換が使用する変換行列群を明示的に決定しなくてもよい。その代わりに、前記第3イントラ予測モードに適合する変換行列群を前記第1変換が使用する変換行列群とする。
いくつかの実施例では、デコーダは、前記第1イントラ予測モードおよび前記第2イントラ予測モードにおけるデフォルト予測モードを前記第3イントラ予測モードに決定するか、または、デコーダは、前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定するか、または、デコーダが、前記第1イントラ予測モードのタイプおよび前記第2イントラ予測モードのタイプに基づいて、前記第3イントラ予測モードを決定するか、または、デコーダが前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて前記第3イントラ予測モードを決定する。
例示的に、デコーダが現在ブロックの予測モードをチェックするとき、現在ブロックが予測モード導出モードを使用する場合、第1変換が使用する変換行列群を選択する場合、第1イントラ予測モードと第2イントラ予測モードに基づいて、第1変換が使用する変換行列群を決定する。1つの実現態様としては、任意の場合でも第1イントラ予測モードを使用して決定することができる。即ち、任意の場合でも第1イントラ予測モードに適合する変換行列群を、第1変換が使用する変換行列群に決定する。または、任意の場合でも第2イントラ予測モードを用いて決定することもできる。即ち、任意の場合でも第2イントラ予測モードに適合する変換行列群を第1変換が使用する変換行列に決定する。もう1つの実現態様において、場合によって、第1イントラ予測モードを使用して決定することができる。即ち、場合によって、第1イントラ予測モードに適合する変換行列群を第1変換が使用する変換行列群に決定する。または、場合によって、第2イントラ予測モードを使用して決定することができる。即ち、第2イントラ予測モードに適合する変換行列群を第1変換が使用する変換行列群に決定する。場合によって、プレーンモードまたはDCモードにより決定される。即ち、場合によって、プレーンモードまたはDCモードに適合する変換行列群を第1変換が使用する変換行列群に決定する。ある予測モードを使用して決定するということは、予測モード導出モードがある予測モードと同じカテゴリに分類され、デコーダがある予測モードに基づいて第1変換が使用する変換行列群を適合できることを意味する。言い換えると、デコーダが現在ブロックの予測モードをチェックするときに、現在ブロックが予測モード導出モードを使用している場合、前記ある予測モードを返すことができることにより、デコーダは前記ある予測モードに従って第1変換が使用する変換行列群に適合できる。言い換えると、デコーダが現在ブロックの予測モードをチェックするとき、現在ブロックが予測モード導出モードを使用する場合、デコーダは、現在ブロックの第1変換に使用された変換行列群が、前記ある予測モードに適合する変換行列群であってもよい。
いくつかの実施例では、デコーダが前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定するとき、第1イントラ予測モードと第2イントラ予測モードとのうちの最も大きな重みを有するイントラ予測モードを第3イントラ予測モードに決定する。
例示的に、デコーダが前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて前記第3イントラ予測モードを決定する場合、重みの大きいイントラ予測モードの優先度は、重みの小さいイントラ予測モードの優先度よりも高い。例えば、第1イントラ予測モードの重みが第2イントラ予測モードの重みよりも大きい場合、第1イントラ予測モードを第3イントラ予測モードに決定し、第2イントラ予測モードの重みが第1イントラ予測モードの重みよりも大きい場合、第2イントラ予測モードを第3イントラ予測モードに決定する。
いくつかの実施例では、デコーダが前記第1イントラ予測モードのタイプおよび前記第2イントラ予測モードのタイプに基づいて前記第3イントラ予測モードを決定するとき、前記第1イントラ予測モードおよび前記第2イントラ予測モードが角度予測モードと非角度予測モードを含む場合、前記角度予測モードを第3イントラ予測モードに決定する。
例示的に、デコーダが前記第1イントラ予測モードのタイプと前記第2イントラ予測モードのタイプに基づいて前記第3イントラ予測モードを決定する場合、角度予測モードが第3イントラ予測モードとする優先度は、非角度予測モードが第3イントラ予測モードとする優先度よりも高い。例えば、前記第1イントラ予測モードが角度予測モードであり、前記第2イントラ予測モードが非角度予測モード(例えば、プレーナモードまたはDCモード)である場合、第1イントラ予測モード(即ち角度予測モード)を第3イントラ予測モードに決定する。
いくつかの実施例では、前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値以下である場合、第1予測モードに対応するイントラ予測モードを前記第3イントラ予測モードに決定して、前記第1予測角度は、前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測に基づいて決定される。前記第1イントラ予測モードの予測角度および前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値より大きい場合、プレーナモードまたは直流DCモードを第3イントラ予測モードに決定する。
例示的に、デコーダが前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて前記第3イントラ予測モードを決定する場合、第1イントラ予測モードの予測角度と第2イントラ予測モードの予測角度との差は比較的小さい場合、デコーダは、第1イントラ予測モード、第2イントラ予測モード、または第1イントラ予測モードに位置する予測角度と第2イントラ予測モードの予測角度との間の予測角度を。例えば、第1イントラ予測モードの予測角度と第2イントラ予測モードの予測角度との差が比較的大きい場合、デコーダは、プレーナモードまたはDCモードを第3イントラ予測モードに決定することができる。
いくつかの実施例では、デコーダは、前記予測モード導出モードに適合された変換行列群を、前記第1変換が使用する変換行列群に決定する。
例示的に、デコーダは、予測モード導出モードに対して、適合または専用の変換行列群を定義することができる。
いくつかの実施例では、前記第1変換は、現在ブロックにおける斜め方向に沿うテクスチャを処理することに用いられ、前記第2変換は、現在ブロックにおける水平方向および鉛直方向に沿うテクスチャを処理することに用いられる。
なお、復号化側の第1変換は、符号化側の第1変換の逆変換であり、復号化側の第2変換は、符号化側の第2変換の逆変換である。例えば、符号化側では、第1変換は上記記載に係る二次変換であり、第2変換は、上記記載に係る基本変換または主変換であり、復号化側では、前記第1変換は、上記記載に係る二次変換の逆変換でもよい。例えば、符号化側では、前記第1変換は逆LFNSTでもよく、前記第2変換はDCT2タイプ、DCT8タイプ、またはDST7タイプなどでもよい。デコーダについて、前記第1変換は、逆(反)LFNSTでもよく、第2変換は、逆(反)DCT2タイプ、逆(反)DCT8タイプ、または逆(反)DST7タイプなどでもよい。
以上、デコーダの視点から本願の実施例に係る復号化方法を詳細に説明した。下記に、図17を参照しながら、エンコーダの視点から本願の実施例に係る符号化方法を説明する。
図17は、本願の実施例によって提供される符号化方法400の概略フローチャートである。符号化方法400はエンコーダによって実行されることを理解されたい。例えば、図1に示す符号化フレームワーク100に適用される。説明を簡単にするために、以下ではエンコーダを例として使用する。
図17に示すように、符号化方法400は、以下を含むことができる。
S410、予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて現在ブロックに対して予測し、前記現在ブロックの予測ブロックを取得する。
S420、前記現在ブロックの予測ブロックに基づいて前記現在ブロックの残差ブロックを取得する。
S430、前記現在ブロックの残差ブロックに対して第3変換を実行して、前記現在ブロックの第3変換係数を取得する。
S440、前記第3変換係数に対して第4変換を実行して、前記現在ブロックの第4変換係数を取得する。
S450、前記第4変換係数に対して符号化する。
なお、復号化側の第1変換は、符号化側の第4変換の逆変換であり、復号化側の第2変換は、符号化側の第3変換の逆変換である。例えば、前記第3変換は、上記記載に係る基本変換または主変換であり、前記第4変換は、上記記載に係る二次変換であり、対応的に、前記第1変換は、二次変換の逆変換(または反変換)である。前記第2変換は、基本変換または主変換の逆変換(または反変換)であってもよい。例えば、前記第1変換は、逆(反)LFNSTであってもよく、前記第2変換は、逆(反)DCT2タイプ、逆(反)DCT8タイプ、または逆(反)DST7タイプなどであってもよい。前記第3変換は、DCT2タイプ、DCT8タイプ、またはDST7タイプなどであってもよく、前記第4変換は、LFNSTであってもよい。
いくつかの実施例では、予測モード導出モードは、デコーダ側イントラモード導出モードまたはテンプレートベースのイントラモード導出モードを含む。
いくつかの実施例では、S450は、以下を含むことができる。
第1識別子、第2識別子、および第4変換係数に対して符号化する。
前記第1識別子は、前記予測モード導出モードを使用して現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子は、前記第4変換を使用して前記現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる。
いくつかの実施例では、S450は、以下を含むことができる。
第1識別子、第2識別子、第4変換係数、および第3識別子を符号化する。
前記第3識別子は、前記現在シーケンスにおける画像ブロックが前記予測モード導出モードと前記第4変換を同時に使用することを許容することを識別することに用いられる。
いくつかの実施例では、S440は、以下を含むことができる。
前記現在ブロックの高さ及び/または幅が第1閾値以上である場合、前記第3変換係数に対して第4変換を実行して、前記第4変換係数を取得する。
いくつかの実施例では、S440の前に、前記方法400は、以下をさらに含むことができる。
前記第4変換が使用する変換行列群を決定する。
いくつかの実施例では、前記第4変換が使用する変換行列群は、プレーナモードまたは直流DCモードに適合する変換行列群と同じである。
いくつかの実施例では、第4変換が使用する変換行列群を決定することは、以下を含むことができる。
第1イントラ予測モードと第2イントラ予測モードに基づいて、第3イントラ予測モードを決定する。
前記第4変換が使用する変換行列群は、前記第3イントラ予測モードに適合する変換行列群と同じである。
いくつかの実施例では、前記第1イントラ予測モードおよび前記第2イントラ予測モードに基づいて、第3イントラ予測モードを決定することは、
前記第1イントラ予測モードと前記第2イントラ予測モードのうちのデフォルト予測モードを前記第3イントラ予測モードに決定すること、または、
前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定すること、または、
前記第1イントラ予測モードのタイプと前記第2イントラ予測モードのタイプに基づいて、前記第3イントラ予測モードを決定すること、または、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて、前記第3イントラ予測モードを決定することを含む。
いくつかの実施例では、前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定することは、
前記第1イントラ予測モードと前記第2イントラ予測モードのうちの重みが最も大きいイントラ予測モードを前記第3イントラ予測モードに決定することを含む。
いくつかの実施例では、前記第1イントラ予測モードのタイプと前記第2イントラ予測モードのタイプに基づいて、前記第3イントラ予測モードを決定することは、
前記第1イントラ予測モードおよび前記第2イントラ予測モードは、角度予測モードと非角度予測モードを含む場合、角度予測モードを前記第3イントラ予測モードに決定することを含む。
いくつかの実施例では、第1イントラ予測モードの予測角度および第2イントラ予測モードの予測角度に基づいて、第3イントラ予測モードを決定することは、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値以下である場合、第1予測角度に対応するイントラ予測モードを前記第3イントラ予測モードに決定することであって、前記第1予測角度は、前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて決定されることと、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値より大きい場合、プレーナモードまたは直流DCモードを前記第3イントラ予測モードに決定することを含む。
いくつかの実施例では、前記第4変換が使用する変換行列群を決定することは、
前記予測モード導出モードに適合する変換行列群を、第4変換が使用する変換行列群に決定することを含む。
いくつかの実施例では、前記第4変換は、前記現在ブロックにおける斜め方向に沿うテクスチャを処理することに用いられ、前記第3変換は、前記現在ブロックにおける水平方向および鉛直方向に沿うテクスチャを処理することに用いられる。
符号化方法は、復号化方法の逆のプロセスとして理解できることを理解されたい。したがって、符号化方法400の具体的な方案は、復号化方法300の関連内容を参照することができる。説明の便宜上、本願では詳しく説明しない。
以上、添付図面を参照しながら本願の好適な実施例について詳細に説明したが、本願はその技術的思想の範囲内において上記実施例の具体的な内容に限定されるものではない。これらの簡易な修正は、いずれも本願の保護範囲に属する。例えば、上記記載に係る特定の実施例で説明された各特定の技術的特徴は、矛盾することなく任意の適切な方法で組み合わせることができる。別の例として、本願の思想に反しない限り、本願の様々な実施例を任意に組み合わせて実施することも可能である。また、本願の様々な方法の実施例において、上記記載に係るプロセスの順番の大きさは、各プロセスの実行順序を意味しなく、その機能および内部のロジックによって決定されるべきであり、本願の実施例をいかなる制限も構成しないことも理解されたい。
上記には、本願の方法の実施例について詳細に説明し、本願の装置の実施例については図18から図20を参照しながら、以下に詳細に説明する。
図18は、本願の実施例のデコーダ500の概略ブロック図である。
図18に示すように、前記デコーダ500は、
コードストリームを復号化して現在ブロックの第1変換係数を取得することに用いられる復号化ユニット510と、
前記第1変換係数に対して第1変換を実行して、前記現在ブロックの第2変換係数を取得し、前記第2変換係数に対して第2変換を実行して、前記現在ブロックの残差ブロックを取得する変換ユニット520と、
予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて、前記現在ブロックに対して予測し、前記現在ブロックの予測ブロックを取得することに用いられる予測ユニット530と、
前記現在ブロックの予測ブロックと前記現在ブロックの残差ブロックに基づいて、前記現在ブロックの再構成ブロックを取得することに用いられる再構成ユニット540と、を含む。
いくつかの実施例では、前記予測モード導出モードは、デコーダ側イントラモード導出モードまたはテンプレートベースのイントラモード導出モードを含む。
いくつかの実施例では、前記変換ユニット520は、
コードストリームを復号化して、第1識別子と第2識別子を取得し、
前記第1識別子が、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子が、前記第1変換を使用して前記現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、前記第1変換係数に対して第1変換を実行して、前記第2変換係数を取得することに用いられる。
いくつかの実施例では、前記変換ユニット520は、
前記第1識別子が、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子が、前記第1変換を使用して前記現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、前記コードストリームを復号化して第3識別子が取得し、
前記第3識別子は、前記現在シーケンスにおける画像ブロックが前記予測モード導出モードと前記第1変換を同時に使用できることを識別することに用いられる場合、前記第1変換係数に対して第1変換を実行して、前記第2変換係数を取得することに用いられる。
いくつかの実施例では、前記変換ユニット520は、
前記第1識別子が、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子が、前記第1変換を使用して前記現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、前記現在ブロックの高さ及び/または幅が第1閾値以上であるとき、前記第1変換係数に対して前記第1変換を実行して、前記第2変換係数を取得することに用いられる。
いくつかの実施例では、前記変換ユニット520は、前記第2変換係数に対して前記第2変換を実行し、前記現在ブロックの残差ブロックを取得する前に、
前記第1変換が使用する変換行列群を決定することにさらに用いられる。
いくつかの実施例では、前記変換ユニット520は、
いくつかの実施例では、前記第1変換が使用する変換行列群は、プレーナモードまたは直流DCモードに適合する変換行列群と同じであることに用いられる。
いくつかの実施例では、前記変換ユニット520は、
前記第1イントラ予測モードと前記第2イントラ予測モードに基づいて、前記第3イントラ予測モードを決定することにさらに用いられる。
前記第1変換が使用する変換行列群は、前記第3イントラ予測モードに適合する変換行列群と同じである。
いくつかの実施例では、前記変換ユニット520は、
前記第1イントラ予測モードと前記第2イントラ予測モードのうちのデフォルト予測モードを前記第3イントラ予測モードに決定すること、または、
前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定すること、または、
前記第1イントラ予測モードのタイプと前記第2イントラ予測モードのタイプに基づいて、前記第3イントラ予測モードを決定すること、または、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて、前記第3イントラ予測モードを決定することに用いられる。
いくつかの実施例では、前記変換ユニット520は、
前記第1イントラ予測モードと前記第2イントラ予測モードのうちの重みが最も大きいイントラ予測モードを前記第3イントラ予測モードに決定することに用いられる。
いくつかの実施例では、前記変換ユニット520は、
前記第1イントラ予測モードおよび前記第2イントラ予測モードが角度予測モードと非角度予測モードを含む場合、前記角度予測モードを前記第3イントラ予測モードに決定することに用いられる。
いくつかの実施例では、前記変換ユニット520は、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値以下である場合、前記第1予測角度に対応するイントラ予測モードを前記第3イントラ予測モードに決定することであって、前記第1予測角度は、前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて決定されることと、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が前記第2閾値より大きい場合、プレーナモードまたは直流DCモードを前記第3イントラ予測モードに決定することに用いられる。
いくつかの実施例では、前記変換ユニット520は、
前記予測モード導出モードに適合する変換行列群を前記第1変換が使用する変換行列群に決定することに用いられる。
いくつかの実施例では、前記第1変換は、現在ブロックにおける斜め方向に沿うテクスチャを処理することに用いられ、前記第2変換は、現在ブロックにおける水平方向および鉛直方向に沿うテクスチャを処理することに用いられる。
図19は、本願の実施例のエンコーダ600の概略ブロック図である。
図19に示すように、エンコーダ600は、
予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて現在ブロックに対して予測し、前記現在ブロックの予測ブロックを取得することに用いられる予測ユニット610と、
前記現在ブロックの予測ブロックに基づいて、前記現在ブロックの残差ブロックを取得することに用いられる残差ユニット620と、
前記現在ブロックの残差ブロックに対して第3変換を実行して、前記現在ブロックの第3変換係数を取得し、
前記第3変換係数に対して第4変換を実行して、前記現在ブロックの第4変換係数を取得することに用いられる変換ユニット630と、
前記第4変換係数に対して符号化することに用いられる符号化ユニット640と、を含む。
いくつかの実施例では、前記予測モード導出モードは、デコーダ側イントラモード導出モードまたはテンプレートベースのイントラモード導出モードを含む。
いくつかの実施例では、前記符号化ユニット640は、
第1識別子、第2識別子、および第4変換係数に対して符号化することに用いられ、
前記第1識別子は、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子は、前記第4変換が現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる。
いくつかの実施例では、前記符号化ユニット640は、
第1識別子、第2識別子、第4変換係数、および第3識別子を符号化することに用いられ、
前記第3識別子は、現在シーケンスにおける画像ブロックが予測モード導出モードと第4変換を同時に使用することを許容することを識別することに用いられる。
いくつかの実施例では、前記変換ユニット630は、
前記現在ブロックの高さ及び/または幅が第1閾値以上である場合、前記第3変換係数に対して前記第4変換を実行して、前記第4変換係数を取得することに用いられる。
いくつかの実施例では、前記変換ユニット630は、前記第3変換係数に対して第4変換を実行し、前記現在ブロックの第4変換係数を取得する前に、
前記第4変換が使用する変換行列群を決定することに用いられる。
いくつかの実施例では、前記第4変換が使用する変換行列群は、プレーナモードまたは直流DCモードに適合する変換行列群と同じである。
いくつかの実施例では、前記変換ユニット630は、
前記第1イントラ予測モードと前記第2イントラ予測モードに基づいて、前記第3イントラ予測モードを決定する。
前記第4変換が使用する変換行列群は、前記第3イントラ予測モードに適合する変換行列群と同じである。
いくつかの実施例では、前記変換ユニット630は、
前記第1イントラ予測モードと前記第2イントラ予測モードのうちのデフォルト予測モードを前記第3イントラ予測モードに決定すること、または、
前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定すること、または、
前記第1イントラ予測モードのタイプと前記第2イントラ予測モードのタイプに基づいて、前記第3イントラ予測モードを決定すること、または、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて、前記第3イントラ予測モードを決定することに用いられる。
いくつかの実施例では、前記変換ユニット630は、
前記第1イントラ予測モードと前記第2イントラ予測モードのうちの重みが最も大きいイントラ予測モードを前記第3イントラ予測モードに決定することに用いられる。
いくつかの実施例では、前記変換ユニット630は、
前記第1イントラ予測モードおよび前記第2イントラ予測モードが角度予測モードと非角度予測モードを含む場合、前記角度予測モードを第3イントラ予測モードに決定することに用いられる。
いくつかの実施例では、前記変換ユニット630は、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値以下である場合、前記第1予測角度に対応するイントラ予測モードを前記第3イントラ予測モードに決定することであって、前記第1予測角度は、前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて決定され、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値より大きい場合、プレーナモードまたは直流DCモードを前記第3イントラ予測モードに決定することに用いられる。
いくつかの実施例では、前記変換ユニット630は、
前記予測モード導出モードに適合する変換行列群を、前記第4変換が使用する変換行列群に決定することに用いられる。
いくつかの実施例では、前記第4変換は、現在ブロックにおける斜め方向に沿うテクスチャを処理することに用いられ、前記第3変換は、現在ブロックにおける水平方向および鉛直方向に沿うテクスチャを処理することに用いられる。
装置の実施例と方法の実施例は互いに対応して、類似する説明が方法の実施例を参照することができることを理解されたい。繰り返しを避けるため、ここでは詳しく説明しない。具体的には、図18に示されるデコーダ500は、本願の実施例の方法300を実行する際の対応する主体に対応することができ、デコーダ500における各ユニットの前述および他の動作及び/または機能は、それぞれ、方法300などの各方法における対応のプロセスを実現するためである。類似的に、図19に示されるエンコーダ600は、本願の実施例の方法400を実行する際の対応する主体に対応することができ、即ち、エンコーダ600の各ユニットの前述及び他の動作及び/または機能は、それぞれ、方法400などの各方法における対応するプロセスを実現するためである。
また、本願の実施例に含まれるデコーダ500またはエンコーダ600の各ユニットは、別々または全体的に1つまたはいくつかの他のユニットを結合して形成することができ、またはユニットのある(いくつか)をより小さな機能を有する複数のユニッさらに分解することができることも理解されたい。ここで、本願の実施例の技術的効果の実現に影響を与えることなく、同じ動作を達成することができる。上記のユニットは論理的な機能に基づいて分割されており、実際の実装では、1つのユニットの機能を複数のユニットで実現したり、複数のユニットの機能を1つのユニットで実現したりすることもできる。本願の他の実施例では、デコーダ500またはエンコーダ600は、他のユニットを含んでもよく、実際の応用例では、これらの機能は、他のユニットの支援を受けて実現されてもよく、複数のユニットが協働して実現されてもよい。本願の別の実施例によれば、中央処理装置(CPU)、ランダムアクセス記憶媒体(RAM)、読み取り専用メモリ(ROM)などの処理要素および記憶要素を含む汎用コンピュータを含む汎用コンピュータ装置が提供される。対応する方法に含まれる各ステップを実行することができるコンピュータプログラム(プログラムコードを含む)を実行して、本願の実施例に係るデコーダ500またはエンコーダ600を構成し、符号化方法または復号化方法を実現する。コンピュータプログラムは、例えばコンピュータ読み取り可能な記憶媒体に記録され、コンピュータ読み取り可能な記憶媒体を介して電子機器にロード・実行されて本願の実施例の対応する方法を実現することができる。
言い換えると、上記の各部は、ハードウェアで実現することもできるし、ソフトウェアの命令で実現することもできるし、ソフトウェアとハードウェアとの組み合わせで実現することもできる。具体的には、本願実施例の方法実施例におけるステップは、プロセッサ内のハードウェアの集積論理回路および/またはソフトウェアの形態の命令によって完成されてもよく、本願実施例に開示された方法と連動する方法のステップは、ハードウェア復号プロセッサに直接具現化されてもよく、または復号プロセッサ内のハードウェアとソフトウェアの組み合わせで実行されてもよい。選択的に、ソフトウェアは、ランダムアクセスメモリ、フラッシュメモリ、読み取り専用メモリ、プログラマブル読み取り専用メモリ、電気的に消去可能なプログラマブルメモリ、レジスタなどの当分野で周知した記憶媒体に配置される。該当記憶媒体はメモリ内に配置され、プロセッサはメモリにおける情報を読み取り、ハードウェアと組み合わせて上記の方法の実施例のステップを完成する。
図20は、本願の一実施例により提供される電子機器700の概略構造図である。
図20に示すように、電子機器700は、プロセッサ710とコンピュータ読み取り可能な記憶媒体720を少なくとも含む。プロセッサ710およびコンピュータ読み取り可能な記憶媒体720は、バスまたは他の手段を通じて接続され得る。コンピュータ読み取り可能な記憶媒体720は、コンピュータプログラム721を記憶することに用いられ、コンピュータプログラム721はコンピュータ命令を含み、プロセッサ710は、コンピュータ読み取り可能な記憶媒体720に記憶されたコンピュータ命令を実行することに用いられる。プロセッサ710は、電子機器700のコンピューティングカーネルおよび制御カーネルである。プロセッサ710は、1つまたは複数のコンピュータ命令を実現するのに適しており、特に、1つまたは複数のコンピュータ命令をロードして実行して、対応する方法フローまたは対応する機能を実現するように構成される。
例示として、プロセッサ710は、中央処理装置(Central Processing Unit、CPU)と呼ばれてもよい。プロセッサ710は、汎用プロセッサ、デジタル信号プロセッサ(Digital Signal Processor、DSP)、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、およびフィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA)、または他のプログラマブルロジックデバイス、ディスクリートゲートまたはトランジスタロジックデバイス、ディスクリートハードウェア成分などを含むことができるが、これらに限定されない。
例示として、コンピュータ読み取り可能な記憶媒体720は、高速RAMメモリ、または少なくとも1つのディスクメモリなどの不揮発性メモリ(Non-volatile Memory)であってもよく、選択的に少なくとも1つのディスクメモリであってもよい。選択的に、前述のプロセッサ710から離れた場所に配置されるコンピュータ読み取り可能な記憶媒体であってもよい。具体的には、コンピュータ読み取り可能な記憶媒体720には、揮発性メモリ及び/または不揮発性メモリが含まれるが、これらに限定されない。その中で、不揮発性メモリは、読み取り専用メモリ(Read-Only Memory、ROM)、プログラマブル読み取り専用メモリ(Programmable ROM、PROM)、消去可能なプログラマブル読み取り専用メモリ(Erasable PROM、EPROM)、電気的にリムーバブルプログラム可能な読み取り専用メモリ(Electrically EPROM、EEPROM)またはフラッシュメモリであってもよい。揮発性メモリは、外部キャッシュとしてランダムアクセスメモリ(Random Access Memory、RAM)を使用してもよい。例として、限定的な説明ではないが、スタティックランダムアクセスメモリ(Static RAM、SRAM)、ダイナミックランダムアクセスメモリ(Dynamic RAM、DRAM)、同期ダイナミックランダムアクセスメモリ(Synchronous DRAM、SDRAM)、ダブルコードストリーム同期ダイナミックランダムアクセスメモリ(Double Data Rate SDRAM、DDRS DRAM)、拡張同期ダイナミックランダムアクセスメモリ(Enhanced SDRAM、ESDRAM)、同期リンクダイナミックランダムアクセスメモリ(synch link DRAM、SLDRAM)、およびダイレクトバスランダムアクセスメモリ(Direct Rambus RAM、DR RAM))との多くの形式のRAMが利用可能である。
一実装形態では、該当電子機器700は、本願の実施例に係るエンコーダまたは符号化フレームワークであってもよく、コンピュータ読み取り可能な記憶媒体720は、第1コンピュータ命令を記憶する。記憶媒体720に記憶された第1コンピュータ命令は、プロセッサ710によってロード・実行されることにより、本願の実施例によって提供される符号化方法の対応するステップを実現することに用いられる。言い換えると、コンピュータ読み取り可能な記憶媒体720における第1コンピュータ命令は、プロセッサ710によって対応するステップがロード・実行される。繰り返しを避けるため、ここでは詳しく説明しない。
一実装形態では、該当電子機器700は、本願の実施例に係るデコーダまたは復号化フレームワークであってもよく、コンピュータ読み取り可能な記憶媒体720は、第2コンピュータ命令を記憶する。記憶媒体720に記憶された第2コンピュータ命令は、プロセッサ710によってロードされ、実行されることにより、本願の実施例によって提供される復号化方法の対応するステップを実現することに用いられる。言い換えると、コンピュータ読み取り可能な記憶媒体720における第2コンピュータ命令は、プロセッサ710によって対応するステップがロード・実行される。繰り返しを避けるため、ここでは詳しく説明しない。
本願の別の態様によれば、本願の実施例は、上記記載に係るエンコーダとデコーダとを含む符号化・復号化システムも提供する。
本願の別の態様によれば、本願の実施例は、コンピュータ読み取り可能な記憶媒体(Memory)も提供する。コンピュータ読み取り可能な記憶媒体は、電子機器700におけるメモリデバイスであり、プログラムおよびデータを記憶することに用いられる。例えば、コンピュータ読み取り可能な記憶媒体720である。ここで、コンピュータ読み取り可能な記憶媒体720は、電子機器700に内蔵された記憶媒体を含み得るが、電子機器700がサポートする拡張記憶媒体も含み得る。コンピュータ読み取り可能な記憶媒体は、電子機器700のオペレーティングシステムを記憶する記憶空間を提供する。さらに、プロセッサ710によってロード・実行されることに適する1つ以上のコンピュータ命令も記憶空間に記憶される。これらのコンピュータ命令は、1つ以上のコンピュータプログラム721(プログラムコードを含む)であってもよい。
本願の別の態様によれば、コンピュータ読み取り可能な記憶媒体に記憶されたコンピュータ命令を含むコンピュータプログラム製品またはコンピュータプログラムが提供される。例えば、コンピュータプログラム721である。このとき、データ処理装置700は、コンピュータであってもよい。プロセッサ710は、コンピュータ読み取り可能な記憶媒体720からコンピュータ命令を読み取る。これにより、コンピュータは、上記の選択的な態様に提供された符号化方法または復号化方法を実行する。
言い換えると、ソフトウェアにより実現される場合、その全体または一部がコンピュータプログラム製品の形で実現されてもよい。コンピュータプログラム製品には、1つまたは複数のコンピュータ命令が含まれている。コンピュータプログラム命令がコンピュータにロード・実行されると、本願の実施例の処理の全部または一部が実行され、または本願の実施例の機能が実現される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または他のプログラム可能なデバイスであってもよい。コンピュータ命令は、あるコンピュータ読み取り可能な記憶媒体に記憶されたり、あるコンピュータ読み取り可能な記憶媒体から別のコンピュータ読み取り可能な記憶媒体に送信されたりすることがある。例えば、コンピュータ命令は、有線(同軸ケーブル、光ファイバー、デジタルユーザ線(digital subscriber line、DSL)など)または無線(赤外線、無線、マイクロ波など)手段を介してウェブサイト、コンピュータ、サーバー、またはデータセンターから別のウェブサイト、コンピュータ、サーバー、またはデータセンターに送信することができる。
当業者は、本明細書に開示される実施例に関連して説明される各例のユニットおよびプロセスステップは、電子ハードウェア、またはコンピュータソフトウェアと電子ハードウェアの組み合わせによって実現されることを理解することができる。これらの機能がハードウェアで実行されるかソフトウェアで実行されるかは、特定のアプリケーションと技術ソリューションの設計制約条件次第である。当業者は、特定の用途ごとに異なる方法を使用して説明された機能を実現することができるが、そのような実現は本願の範囲を超えるものとみなされるべきではない。
なお、上記の内容は本願の特定の実施例にすぎず、本願の保護範囲はこれに限定されなく、当業者であれば、開示された技術的範囲内で容易に想到できる変更または置換は、本願の保護範囲に含まれるものとする。したがって、本願の保護範囲は請求の範囲の保護範囲に従うべきである。
本願の実施例は、画像ビデオの符号化・復号化の技術分野に関し、より具体的には、復号化方法、符号化方法、デコーダおよびエンコーダに関する。
デジタルビデオ圧縮技術は、送信・保存しやすくなるように、主に膨大なデジタルビデオデータを圧縮する。インターネットビデオの普及に伴い、ビデオの鮮明さに対する要求は、ますます高くなっていく。既存のデジタルビデオ圧縮規格でもビデオ解凍技術を実現できるが、圧縮効率を向上させるために、より優れるデジタルビデオ解凍技術を追求する必要がある。
本願の実施例は、圧縮効率を向上可能な復号化方法、符号化方法、デコーダおよびエンコーダを提供する。
第1側面では、本願は、復号化方法を提供することであって、前記方法は、
コードストリームを復号化して、現在ブロックの第1変換係数を取得するステップと、
前記第1変換係数に対して第1変換を実行して、前記現在ブロックの第2変換係数を取得するステップと、
前記第2変換係数に対して第2変換を実行して、前記現在ブロックの残差ブロックを取得するステップと、
予測モード導出モードによって導出された第2イントラ予測モードと第1イントラ予測モードとに基づいて、前記現在ブロックの予測ブロックを取得するステップと、
前記現在ブロックの予測ブロックと前記現在ブロックの残差ブロックに基づいて、前記現在ブロックの再構成ブロックを取得するステップと、を含む。
第2側面では、本願は、符号化方法を提供することであって、前記方法は、
予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて、現在ブロックに対して予測し、前記現在ブロックの予測ブロックを取得するステップと、
前記現在ブロックの予測ブロックに基づいて、前記現在ブロックの残差ブロックを取得するステップと、
前記現在ブロックの残差ブロックに対して第3変換を実行して、前記現在ブロックの第3変換係数を取得するステップと、
第3変換係数に対して第4変換を実行して、前記現在ブロックの第4変換係数を取得するステップと、
第4変換係数に対して符号化するステップと、を含む。
第3側面では、本願は、デコーダを提供することであって、前記デコーダは、
コードストリームを復号化して現在ブロックの第1変換係数を取得することに用いられる復号化ユニットと、
前記第1変換係数に対して第1変換を実行して、前記現在ブロックの第2変換係数を取得し、前記第2変換係数に対して第2変換を実行して、前記現在ブロックの残差ブロックを取得することに用いられる変換ユニットと
予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて、前記現在ブロックに対して予測し、前記現在ブロックの予測ブロックを取得することに用いられる予測ユニットと、
前記現在ブロックの予測ブロックと、前記現在ブロックの残差ブロックとに基づいて、前記現在ブロックの再構成ブロックを取得することに用いられる再構成ユニットと、を含む。
第4側面では、本願は、エンコーダを提供することであって、前記エンコーダは、
予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて、現在ブロックを予測し、前記現在ブロックの予測ブロックを取得することに用いられる予測ユニットと、
前記現在ブロックの予測ブロックに基づいて、前記現在ブロックの残差ブロックを取得することに用いられる残差ユニットと、
前記現在ブロックの残差ブロックに対して第3変換を実行して、前記現在ブロックの第3変換係数を取得し、
前記第3変換係数に対して第4変換を実行して、前記現在ブロックの第4変換係数を取得する変換ユニットと、
前記第4変換係数に対して符号化することに用いられる符号化ユニットと、を含む。
第5側面では、本願は、デコーダを提供することであって、前記デコーダは、
コンピュータ命令を実行するように構成されるプロセッサと、
コンピュータ命令が記憶されるコンピュータ読み取り可能な記憶媒体であって、コンピュータ命令は、プロセッサが上記第1側面または各側面における復号化方法をロードして実行するように構成されるコンピュータ読み取り可能な記憶媒体と、を含む。
一実装形態では、該プロセッサは1つまたは複数であり、該メモリは1つまたは複数である。
一実装形態では、該コンピュータ読み取り可能な記憶媒体はプロセッサと共に実現されてもよいし、プロセッサと別に設置されてもよい。
第6側面では、本願は、エンコーダを提供することであって、前記エンコーダは、
コンピュータ命令を実行するように構成されるプロセッサと、
コンピュータ命令が記憶されるコンピュータ読み取り可能な記憶媒体であって、コンピュータ命令はプロセッサが上記第2側面または各側面における符号化方法をロードして実行するように構成されるコンピュータ読み取り可能な記憶媒体と、を含む。
一実装形態では、該プロセッサは1つまたは複数であり、該メモリは1つまたは複数である。
一実装形態では、該コンピュータ読み取り可能な記憶媒体はプロセッサと共に実現されてもよいし、コンピュータ読み取り可能な記憶媒体はプロセッサとは別に設置されてもよい。
第7側面では、本願は、コンピュータ命令が記憶されるコンピュータ読み取り可能な記憶媒体を提供することであって、コンピュータ命令がコンピュータ装置のプロセッサによって読み取られて実行される場合、コンピュータ装置は上記第1側面に係る復号化方法または上記第2側面に係る符号化方法を実行させる。
第8の側面において、本願は、上記第1側面に係るコードストリームまたは上記第2側面に係るコードストリームを提供する。
上記の技術的方案に基づいて、本願は、予測モード導出モードと第2変換を基に、第1変換を導入して、現在ブロックの解凍効率を向上させることができる。
本願の実施例によって提供される符号化フレームワークの概略ブロック図である。 本願の実施例によって提供される65つの角度予測モードの具体的な方向の概略図である。 本願の実施例によって提供される広角度予測モードの参照画素の例である。 本願の実施例によって提供されるMIPモードの概略図である。 本願の実施例によって提供されるDIMDに基づいて予測モードを導出する概略図である。 本願の実施例によって提供されるDIMDに基づいて予測ブロックを導出する概略図である。 本願の実施例によって提供されるTIMDで使用されるテンプレートの概略図である。 本願の実施例によって提供されるGPMの正方形ブロックにおける64つの重み導出モードに対応する重みマップの例である。 本願の実施例によって提供される重み導出モードにおける分割線の例である。 本願の実施例によって提供されるAWPの正方形ブロックにおける56つの重み導出モードに対応する重みマップの例である。 本願の実施例によって提供されるGPMまたはAWPの概略図である。 本願の実施例によって提供されるDCT2タイプの基画像の例示である。 本願の実施例によって提供されるLFNSTの例である。 本願の実施例によって提供されるLFNSTの変換行列群の例である。 本願の実施例によって提供される復号化フレームワークの概略ブロック図である。 本願の実施例によって提供される復号化方法の概略的なフローチャートである。 本願の実施例によって提供される符号化方法の概略的なフローチャートである。 本願の実施例によって提供されるデコーダの概略ブロック図である。 本願の実施例によって提供されるエンコーダの概略ブロック図である。 本願の実施例によって提供される電子機器の概略ブロック図である。
以下、添付図面を参照して、本願の実施例における技術的方案について説明する。
本願の実施例によって提供される方案は、デジタルビデオ符号化技術の分野に適用することができる。例えば、画像符号化・復号化、ビデオ符号化・復号化、ハードウェアビデオ符号化・復号化、専用回路ビデオ符号化・復号化、リアルタイムビデオ符号化・復号化の分野を含むが、これらに限定されない。さらに、本願の実施例によって提供される方案は、オーディオおよびビデオ符号化規格(Audio Video coding Standard、AVS)、第2世代AVS規格(AVS2)、または第3世代AVS規格(AVS3)に組み込まれることができる。例えば、H.264/オーディオビデオ符号化(Audio Video coding、AVC)規格、H.265/高効率ビデオ符号化(High Efficiency Video Coding、HEVC)規格、およびH.266/多用途ビデオ符号化(Versatile Video Coding、VVC)規格を含むが、これらに限定されない。さらに、本願の実施例によって提供される方案は、画像の非可逆圧縮(lossy compression)、画像の可逆圧縮(lossless compression)にも用いられることができる。該可逆圧縮は、視覚的可逆圧縮(visually lossless compression)または数学的可逆圧縮(mathematically lossless compression)であってもよい。
ビデオの符号化・復号化の規格は、いずれもブロックベースのハイブリッド符号化フレームワークを採用する。ビデオにおける各フレームは、同じサイズ(128×128、64×64など)の最も大きな符号化ユニット(largest coding unit、LCU)または符号化ツリーユニット(Coding Tree Unit、CTU)の正方形に分割される。各最大符号化ユニットまたは符号化ツリーユニットは、ルールに従って長方形の符号化ユニット(coding unit、CU)に分割される。符号化ユニットは、予測ユニット(prediction unit、PU)、変換ユニット(transform unit、TU)などに分割されることもある。ハイブリッド符号化フレームワークは、予測(prediction)、変換(transform)、量子化(quantization)、エントロピー符号化(entropy coding)、ループフィルター(in loop filter)などのモジュールを含む。予測モジュールは、イントラ予測(intra prediction)とインター予測(inter prediction)を含む。インター予測は、動き推定(motion estimation)と動き補償(motion compensation)を含む。ビデオにおける1つのフレームにおける隣接する画素間には強い関連性があるため、ビデオ符号化・復号化技術では、イントラ予測方法が使用され、隣接する画素間の空間的冗長性が排除される。イントラ予測は、同一フレーム画像の情報のみを参照し、現在の分割ブロックにおける画素情報を予測する。ビデオにおける隣接フレームの間には強い関連性があるため、ビデオ符号化・復号化技術では、インター予測方法が使用され、隣接フレームの間の時間的冗長性を排除し、符号化効率を向上させる。インター予測では、異なるフレームの画像情報を参照し、動き推定を用いて現在の分割ブロックに最も適合する動きベクトル情報を探索することができる。この変換は、予測された画像ブロックを周波数領域に変換し、エネルギーを再配分して、量子化と組み合わせることで、人間の目に影響を与えていない情報を削除できることにより、視覚的冗長性を除去する。エントロピー符号化は、現在のコンテキストモデルとバイナリコードストリームの確率情報に基づいて文字的冗長性を排除できる。
デジタルビデオ符号化プロセスでは、エンコーダは、まずオリジナルビデオシーケンスから白黒画像またはカラー画像を読み取り、次にその白黒画像またはカラー画像に対して符号化する。白黒画像は輝度成分の画素を含むことができ、カラー画像はクロミナンス成分の画素を含むことができる。選択的に、カラー画像には輝度成分を持つ画素も含まれる場合がある。オリジナルビデオシーケンスのカラーフォーマットは、輝度クロミナンス(YCbCr、YUV)フォーマットまたは赤緑青(Red-Green-Blue、RGB)フォーマットなどであってもよい。具体的には、エンコーダは、1つの白黒画像またはカラー画像を読み取った後、ブロックにそれぞれ分割し、現在ブロックに対してイントラ予測またはインター予測を使用して、現在ブロックの予測ブロックを生成する。現在ブロックのオリジナルブロックから予測ブロックを減算して残差ブロックを取得して、残差ブロックを変換・量子化して量子化係数行列を取得して、量子化係数行列に対してエントロピー符号化してコードストリームに出力する。デジタルビデオ復号化プロセスにおいて、デコーダは、現在ブロックに対してイントラ予測またはインター予測を使用して、現在ブロックの予測ブロックを生成する。また、デコーダは、コードストリームを復号化して量子化係数行列を取得し、量子化係数行列に対して逆量子化・逆変換を実行して残差ブロックを取得し、予測ブロックと残差ブロックを加算して再構成ブロックを取得する。再構成ブロックは、再構成画像の構成に用いられ、デコーダは、画像またはブロックに基づいて、再構成画像に対してループフィルタリングを実行して、復号化画像を取得する。
現在ブロック(current block)は、現在の符号化ユニット(CU)または現在の予測ユニット(PU)などでもよい。
符号化側でも、復号化画像を取得するために復号化側と類似する処理が必要であることに留意されたい。復号化画像は、後続のフレームのインター予測の参照フレームとして使用できる。符号化側で決定されたブロック分割情報や、予測、変換、量子化、エントロピー符号化、ループフィルタリングなどのモード情報やパラメータ情報は、必要に応じてコードストリームに出力する必要がある。復号化側は、解析および既存の情報を分析して、符号化側と同じブロック分割情報や、予測、変換、量子化、エントロピー符号化、ループフィルタリングおよびその他のモード情報またはパラメータ情報を決定することにより、符号化側で取得される復号化画像と復号化側で取得される復号化画像とは同じであることを保証する。符号化側で取得される復号化画像は、通常、再構成画像とも呼ばれる。予測時に、現在ブロックを予測ユニットに分割することができ、変換時に、現在ブロックを変換ユニットに分割することができる。予測ユニットと変換ユニットとの間の分割は、同じであっても異なっていてもよい。勿論、上記はブロックベースのハイブリッド符号化フレームワークにおけるビデオコーデックの基本的なプロセスに過ぎなく、技術の発展に伴い、フレームワークの一部のモジュールやプロセスの一部のステップが最適化される可能性がある。本願は、ブロックベースのハイブリッド符号化フレームワークにおけるビデオコーデックの基本的なフローに適用される。
理解しやすくするように、本願によって提供される符号化フレームワークを先に簡単に紹介する。
図1は、本願の実施例によって提供される符号化フレームワーク100の概略ブロック図である。
図1に示すように、符号化フレームワーク100は、イントラ予測ユニット180、インター予測ユニット170、残差ユニット110、変換・量子化ユニット120、エントロピー符号化ユニット130、逆変換・逆量子化ユニット140、およびループフィルタリングユニット150を含むことができる。選択的に、符号化フレームワーク100は、復号化画像バッファユニット160を含むこともできる。該符号化フレームワーク100は、ハイブリッドフレームワーク符号化モードと呼ばれてもよい。
イントラ予測ユニット180またはインター予測ユニット170は、符号化対象の画像ブロックを予測して予測ブロックを出力することができる。残差ユニット110は、予測ブロックと符号化対象画像ブロックとに基づいて、予測ブロックと符号化対象画像ブロックとの差分値である残差ブロックを算出することができる。変換・量子化ユニット120は、残差ブロックに対して変換・量子化などの操作を実行して、人間の目に鈍感な情報を除去し、視覚的冗長性を除去することに用いられる。選択的に、変換・量子化ユニット120による変換・量子化前の残差ブロックは、時間領域残差ブロックと呼ばれることがあり、変換・量子化ユニット120による変換・量子化後の時間領域残差ブロックは、周波数残差ブロックまたは周波数領域の残差ブロックと呼ばれることがある。エントロピー符号化ユニット130は、変換・量子化ユニット120から出力された変換量子化係数を受信した後、その変換量子化係数に基づいてコードストリームを出力することができる。例えば、エントロピー符号化ユニット130は、バイナリコードストリームのターゲットコンテキストモデル及び確率情報に従って文字的冗長性を除去することができる。例えば、エントロピー符号化ユニット130は、コンテキストベースの適応型バイナリ算術エントロピー符号化(CABAC)に用いられる。エントロピー符号化ユニット130は、ヘッダ情報符号化ユニットと呼ばれてもよい。選択的に、本願では、符号化対象画像ブロックは、オリジナル画像ブロックまたはターゲット画像ブロックと呼ぶこともでき、予測ブロックは、予測画像ブロックまたは画像予測ブロックと呼ぶこともでき、また、予測信号や予測情報と呼ぶこともできる。再構成ブロックは、再構成画像ブロックまたは画像再構成ブロックとも呼ばれ、再構成信号または再構成情報とも呼ばれる。また、符号化側では、符号化対象の画像ブロックを符号化ブロックまたは符号化画像ブロックと呼ぶこともあり、復号化側では、符号化対象の画像ブロックを復号化ブロックまたは復号化画像と呼ぶこともある。符号化対象画像ブロックは、CTUであってもよいし、CUであってもよい。
符号化フレームワーク100は、予測ブロックと符号化対象画像ブロックとの残差を算出して残差ブロックを取得し、変換、量子化などのプロセスを経て復号化側に送信する。相応に、デコーダはコードストリームを受信して復号化した後、逆変換や逆量子化などの手順を通じて残差ブロックを取得する。デコーダによって予測された予測ブロックに残差ブロックを重ね合わせ、再構成ブロックを取得する。
符号化フレームワーク100における逆変換・逆量子化ユニット140、ループフィルタリングユニット150、および復号化画像バッファユニット160は、1つのデコーダを形成することに用いられることに留意されたい。イントラ予測ユニット180またはインター予測ユニット170は、既存の再構成ブロックに基づいて符号化対象画像ブロックを予測することができることにより、符号化側と復号化側が参照フレームに対する理解の一貫性を保証することができる。言い換えると、エンコーダはデコーダの処理ループをコピーでき、デコーダと同じ予測を生成できる。具体的には、量子化された変換係数を逆変換・逆量子化ユニット140で逆変換・逆量子化し、復号化側で近似残差ブロックをコピーする。近似残差ブロックに予測ブロックを重ね合わせた後、ループフィルタリングユニット150を介して、ブロックベースの処理および量子化によって引き起こされるブロッキング効果を滑らかに除去することができる。ループフィルタリングユニット150によって出力された画像ブロックは、後続の画像の予測に使用するために復号化画像バッファユニット160に格納され得る。
図1は本願の例示にすぎず、本願を限定するものではないことを理解されたい。
例えば、符号化フレームワーク100におけるループフィルタリングユニット150は、デブロッキングフィルタ(DBF)およびサンプル適合補償フィルタリング(SAO)を含むことができる。DBFの機能はブロッキング効果を除去することであり、SAOの機能はリンギング効果を除去することである。本願の他の実施例では、該符号化フレームワーク100は、ビデオ圧縮効率を向上させるために、ニューラルネットワークベースのループフィルタリングアルゴリズムを採用することができる。言い換えると、該符号化フレームワーク100は、深層学習ニューラルネットワークに基づくビデオ符号化ハイブリッドフレームワークであってもよい。一実現形態では、デブロッキングフィルタおよびサンプル適合補償フィルタリングを基に、畳み込みニューラルネットワークに基づくモデルを使用して、画素をフィルタリングした結果を算出することができる。ループフィルタリングユニット150の輝度成分とクロミナンス成分のネットワーク構造は同一であっても異なっていてもよい。輝度成分にはより多くの視覚情報が含まれることを考慮すると、輝度成分も使用してクロミナンス成分のフィルタリングをガイドし、クロミナンス成分の再構成品質を向上させることができる。
以下、イントラ予測とインター予測の関連内容について説明する。
インター予測について、インター予測は、異なるフレームの画像情報を参照し、動き推定を使用して、符号化対象画像ブロックに最もマッチングする動きベクトル情報を検索し、時間的冗長性を除去する。インター予測で使用されるフレームはPフレーム及び/またはBフレームであり、Pフレームは順方向予測フレームを指し、Bフレームは双方向予測フレームを指す。
イントラ予測について、イントラ予測は、画像の同じフレームの情報のみを参照し、符号化対象画像ブロックにおける画素情報を予測して空間的冗長性を除去する。イントラ予測で使用されるフレームは、Iフレームでもよい。例えば、左から右、上から下の符号化順序に従って、符号化対象画像ブロックは、左上側にある画像ブロック、上側にある画像ブロック、および左側にある画像ブロックを参照情報として参照して、画像ブロックを予測することができる。符号化対象画像ブロックは次の画像ブロックの参照情報として使用される。これにより、画像全体を予測することができる。入力したデジタルビデオが、YUV4:2:0というフォーマットなどのカラー形式の場合、デジタルビデオの各画像フレームの4画素ごとに、4つのY成分と2つのUV成分で構成される。符号化フレームワークは、Y成分(即ち輝度ブロック)とUV成分(即ちクロミナンスブロック)とを別々に符号化する。同様に、復号化側もフォーマットに応じて対応する復号化することができる。
イントラ予測プロセスに対して、イントラ予測は、角度予測モードと非角度予測モードを利用して符号化対象画像ブロックを予測でき、予測ブロックを取得する。予測ブロックと符号化対象画像ブロックとにより算出されたレート歪み情報に基づいて、符号化対象画像ブロックの最適な予測モードを絞り出し、該予測モードがコードストリームを通じてデコーダに送信する。復号化側は予測モードを解析し、ターゲット復号化ブロックの予測ブロックを予測し、コードストリーム伝送により得られた時間領域残差ブロックを重ね合わせて再構成ブロックを取得することができる。
長年にわたるデジタルビデオの符号化・復号化規格の発展を経て、平均モードやプレーナモードを有する非角度予測モードは比較的安定した状態を維持する。デジタルビデオの符号化・復号化規格の推進に伴い、角度予測モードは増加し続けている。国際デジタルビデオ符号化規格のHシリーズを例とすると、H.264/AVC規格には8つの角度予測モードと1つの非角度予測モードしかないが、H.265/HEVCは33つの角度予測モードと2つの非角度予測モードに拡張される。H.266/VVCでは、イントラ予測モードがさらに拡張されており、輝度ブロックに対して、67つの従来の予測モードと非従来の行列加重イントラ予測モード(Matrix weighted intra-frame prediction、MIP)がある。67つの従来の予測モードには、プレーナモード、直流(DC)モード、65つの角度予測モードが含まれる。プレーナモードは、通常、グラデーションがあるテクスチャを有するブロックを処理することに用いられ、DCモードは、通常、平らな領域を処理することに用いられ、角度予測モードは、通常、明らかな角度テクスチャを持つブロックを処理することに用いられる。
本願では、イントラ予測に用いられる現在ブロックは正方形ブロックでもよいし、長方形ブロックでもよいことに留意されたい。
さらに、イントラ予測ブロックはいずれも正方形であるため、各角度予測モードを使用する確率は等しい。現在ブロックの長さと幅が等しくない場合、水平ブロック(幅が高さよりも大きい)の上側にある参照画素の使用確率は、左側にある参照画素の使用確率よりも大きい。垂直ブロック(高さが幅よりも大きい)の上側にある参照画素の使用確率は、左側にある参照画素の使用確率よりも小さい。これに基づいて、本願は、広角度予測モードを導入して、長方形ブロックを予測する場合、従来の予測モードを広角度予測モードに切り替え、広角度予測モードで長方形ブロックを予測する場合、現在ブロックの予測角度範囲は、従来の予測モードで予測できる予測角度範囲よりも大きい。選択的に、広角度予測モードを使用する場合でも、従来の角度予測モードのインデックスを使用して、信号を送信することができる。これに応じて、復号化側は信号を受信した後に従来の角度予測モードを広角度予測モードに切り替えることができる。これにより、イントラ予測モードの総数とイントラモード符号化方法は変更されず、イントラモード符号化方法も変更されていない。
図2は、本願の実施例によって提供される65つの角度予測モードの具体的な方向の概略図である。
図2に示すように、インデックス0はプレーンモードの識別に用いられ、インデックス1はDCモードの識別に用いられ、インデックス-14~80はそれぞれ異なる角度予測モードの識別に用いられる。具体的には、インデックス2~66は従来の角度予測モードを識別することに用いられ、インデックス-1~-14およびインデックス67~80は広角度予測モードを識別することに用いられる。言い換えると、インデックス2~66により識別される従来のイントラ予測モードは正方形ブロックの予測に用いられ、インデックス-1~-14および67~80により識別される広角度予測モードは長方形ブロックの予測に用いられる。
本願に係るインデックスxによって識別される予測モードは、予測モードxと呼ばれてもよいことを理解されたい。例えば、インデックス2によって識別されるイントラ予測モードは、イントラ予測モード2と呼ばれてもよい。
図3は、本願の実施例によって提供される広角度予測モードの参照画素の例である。
図3に示すように、広角度予測モードでは、サイズW×HであるCUの場合、その上側にある参照画素の数は2W+1で、左側の参照サンプル点の数は2H+1である。具体的には、図3の(a)に示すように、W>H(例えば、8×4CU)の場合、イントラ予測モード2に近い(イントラ予測モード2より大きい)CUの右下端の点が参照画素をインデックスすることができないことがある。イントラ予測モード66に近い(イントラ予測モード66よりも大きい)一部が依然として参照画素をインデックスすることができるため、予測角度範囲を拡大するように、イントラ予測モード2に近い(イントラ予測モード2よりも大きい)いくつかの準水平角度モードを、イントラ予測モード66に近い(イントラ予測モード66より大きい)いくつかの準垂直角度モードに置き換える必要がある。同様に、図3の(b)に示すように、W<H(例えば、4×8CU)の場合、イントラ予測モード66に近い(イントラ予測モード66より小さい)一部は参照画素をインデックスすることができないことがある。イントラ予測モード2に近い(イントラ予測モード2よりも小さい)一部は依然として参照画素をインデックスすることができるため、予測角度範囲を拡大するように、イントラ予測モード66に近い(イントラ予測モード66より小さい)いくつかの準垂直角度モードをイントラ予測モード2に近い(イントラ予測モード2よりも小さい)いくつかの準水平角度モードに置き換える必要がある。
場合によって、実行対象イントラ予測モードは、現在ブロックのサイズに基づいて決定または選択されてもよく、例えば、現在ブロックのサイズに基づいて、広角度予測モードを決定・選択して、現在ブロックに対してイントラ予測を実行してもよい。例えば、現在ブロックが長方形のブロック(幅と高さとは異なるサイズを有する)である場合、広角度予測モードを使用して現在ブロックのイントラを予測することができる。現在ブロックのアスペクト比は、置き換え対象角度予測モードおよび置き換えた角度予測モードを決定することに用いられる。例えば、現在ブロックに対して予測する場合、現在ブロックの対角(現在ブロックの左下隅から右上隅まで)を超えない角度を有する任意のイントラ予測モードを置き換えた角度予測モードとして選択されてもよい。
以下は、本願に係る他のイントラ予測モードを説明する。
(1)行列ベースのイントラ予測(Matrix based intra prediction、MIP)モード。
MIPモードは、行列加重イントラ予測(Matrix weighted intra prediction)モードとも呼ばれる。MIPモードに含まれるプロセスは、ダウンサンプリング工程、行列乗算工程、およびアップサンプリング工程という3つの主要なステップに分けられる。具体的には、まず、ダウンサンプリング工程におい空間的に隣接する再構成サンプルをダウンサンプリングして、次にダウンサンプリングされたサンプルシーケンスを行列乗算工程の入力ベクトルとして使用する。即ち、ダウンサンプリング工程の出力ベクトルを行列乗算工程の入力として使用し、予め設定された行列と乗算し、オフセットベクトルを加算し、算出されたサンプルベクトルを出力する。行列乗算工程の出力ベクトルをアップサンプリング工程の入力ベクトルとして使用し、アップサンプリングにより最終の予測ブロックを取得する。
図4は、本願の実施例によって提供されるMIPモードの概略図である。
図4に示すように、ダウンサンプリング工程において、MIPモードは現在の符号化ユニットの上に隣接する再構成サンプルを平均することによって、上に隣接するダウンサンプリング再構成サンプルベクトルbdrytopを取得し、左に隣接する再構成されたサンプルを平均することによって、左に隣接するダウンサンプリング再構成サンプルベクトルbdryleftを取得する。bdryTopとbdryLeftを取得した後、これらを行列乗算工程の入力ベクトルbdryredとして使用する。具体的には、サンプルベクトルは、bdryredに基づく最上位行ベクトルbdryTop red、bdryLeft、A・bdryred+bによって取得される。ここで、Aは予め設定された行列である。bは予め設定されたバイアスベクトル、kはMIPモードのインデックスである。サンプルベクトルを取得した後、線形補間によってアップサンプリングされ、実際の符号化ユニットサンプル数とマッチングする予測サンプルブロックを取得する。
言い換えると、幅W、高さHのブロックを予測するために、MIPは入力として現在ブロックの左側にある1列のHつの再構成画素と、現在ブロックの上側にある1行のWつの再構成画素を必要とする。MIPは、参照画素の平均化(Averaging)、行列の乗算(Matrix Vector Multiplication)、および補間(Interpolation)の3つのステップで予測ブロックを生成する。MIPの核心は行列乗算であり、行列乗算により入力画素(参照画素)を用いて予測ブロックを生成する処理と考えることができる。MIPは、複数タイプの行列を提供する。予測方法の相違は行列の相違に反映され、同じ入力画素に異なる行列を使用すると、異なる結果になる。参照画素の平均化と補間との工程は、パフォーマンスと複雑さとのバランスを取る設計である。大きなサイズであるブロックの場合、参照画素の平均化によってダウンサンプリングと同じ効果を達成でき、入力をより小さな行列に適合させることができ、補間によってアップサンプリング効果が得られる。これにより、各サイズのブロックにMIP行列を提供する必要はなく、1つまたは複数の特定のサイズの行列だけを提供すればよい。圧縮性能に対する要求が高まり、ハードウェアの機能が向上するにつれて、次世代の規格ではより複雑なMIPが登場する可能性がある。
MIPモードは、ニューラルネットワークから簡素化することができる。例えば、トレーニングに基づいて行列を取得できるため、強い汎化能力と従来の予測モデルでは達成できない予測効果を備える。MIPモードは、ニューラルネットワークに基づくイントラ予測モデルのハードウェアとソフトウェアの複雑さを複数の簡素化によって取得されたモデルであり、膨大なトレーニングサンプルの上で、複数の予測モードはさまざまなモデルとパラメータを代表する。自然なシーケンスのテクスチャを良好にカバーする。
MIPはプレーナモードに似ているが、明らかにMIPはプレーナモードよりも複雑で柔軟性が高くなる。
ブロックサイズが異なる符号化ユニットでは、MIPモードの数が異なる場合があることに注意されたい。例示的に、サイズ4×4である符号化ユニットの場合、MIPモードでは16つの予測モードがあり、幅が4または高さが4である8×8の符号化ユニットの場合、MIPモードでは8つの予測モードがある。他のサイズの符号化ユニットの場合、MIPモードには6つの予測モードがある。また、MIPモードは転置機能を有し、現在のサイズに適する予測モードに対して、エンコーダ側で転置算出を試行できる。したがって、MIPモードは、現在の符号化ユニットがMIPモードを使用するか否かを示す1つのフラグビットを必要とするだけでなく、現在の符号化ユニットがMIPモードを使用する場合、1つの転置フラグビットをデコーダに追加送信する必要がある。
(2)デコーダ側のイントラモード導出(Decoder side IntraMode Derivation、DIMD)モード。
DIMDモードの主なのは、デコーダがエンコーダと同じ方法を使用してイントラ予測モードを導出することにより、コードストリームにおいて現在の符号化ユニットのイントラ予測モードインデックスの送信を回避してビットオーバーヘッドを節約できることである。
DIMDモードの具体的なプロセスは、次の2つの主なステップに分けることができる。
ステップ1:予測モデルを導出する。
図5は、本願の実施例によって提供されるDIMDに基づいて予測モードを導出する概略図である。
図5(a)に示すように、DIMDは再構成領域におけるテンプレートにおける画素(現在ブロックの左側と上側の再構成画素)を使用して予測モードを導出する。例えば、テンプレートは、現在ブロックの上側にある3つの隣接する行の再構成サンプル、左側の3つの隣接する列の再構成サンプル、および左上側にある対応の隣接する再構成サンプルを含むことができ、これに基づいて、ウィンドウ(例えば、図5(c)に示すように、または図5(b)に示すウィンドウ)に従ってテンプレートにおける複数の勾配値を決定し、各勾配値は、勾配方向に適したイントラ予測モード(Intra prediction mode、IPM)に適合することに用いられる。これに基づいて、複数の勾配値のうち最大および2番目に大きい勾配値に適合する予測モードを導出の予測モードとして使用できる。例えば、図5の(b)に示すように、サイズ4×4であるブロックの場合、勾配値を決定する必要がある全ての画素を分析して対応する勾配ヒストグラム(histogram of gradients)を取得する。図5(c)に示すように、他のサイズであるブロックの場合、勾配値を決定する必要がある全ての画素を分析して、対応する勾配ヒストグラムを取得して、最終的に勾配ヒストグラムにおける最大および2番目に大きい勾配に対応する予測モードを導出した予測モードとして使用される。
勿論、本願における勾配ヒストグラムは、導出予測モードを決定するための例示にすぎず、様々な簡易な形式で実現することができ、本願はこれを限定していない。さらに、本願は、統計的勾配ヒストグラムの方法を限定するものではなく、例えば、勾配ヒストグラムを算出するためにソーベル演算子または他の方法が使用されてもよい。
ステップ2:予測ブロックを導出する。
図6は、本願の実施例によって提供されるDIMDに基づいて予測ブロックを導出する概略図である。
図6に示すように、エンコーダは3つのイントラ予測モード(プレーナモードとDIMDに基づいて導出された2つのイントラ予測モード)の予測値に重み付けを行うことができる。コーデックは、同じ予測ブロック導出方法を使用して、現在ブロックの予測ブロックを取得する。最も大きな勾配値に対応する予測モードが予測モード1であり、2番目に大きい勾配値に対応する予測モードが予測モード2であるとする。エンコーダは次の2つの条件を判断する。
(1)予測モード2の勾配は0ではなく、
(2)予測モード1と予測モード2とは、いずれもプレーナモードまたはDC予測モードではない。
上記の2つの条件が同時に成立しない場合、予測モード1のみを使用して現在ブロックの予測サンプル値を算出する。即ち、予測モード1に対して通常の予測プロセスを適用する。上記の2つの条件が同時に成立した場合は、加重平均法を使用して、現在ブロックの予測ブロックを導出する。具体的に、重み付けの1/3をプレーナモードで占め、残りの2/3を予測モード1と予測モード2の合計の重みとする。例えば、予測モード1の勾配振幅値を予測モード1の勾配振幅値と予測モード2の勾配振幅値との和で除算したものを予測モード1の重み付け重みとする。予測モード2の勾配振幅値を予測モード1の勾配振幅値と予測モード2の勾配振幅値との和で除算したものを予測モード2の重み付け重みとする。上記3つの予測モードに基づいて得られた予測ブロック、即ちプレーナモード、予測モード1、予測モード2に基づいてそれぞれ得られた予測ブロック1、予測ブロック2、予測ブロック3を重み付けして平均化して、現在符号化ユニットの予測ブロックを取得する。デコーダは同じ手順に従って予測ブロックを取得する。
言い換えると、上記のステップ2における重みの算出は次の通りである。
Weight(PLANAR)=1/3
Weight(mode1)=2/3×(amp1/(amp1+amp2))
Weight(mode2)=1-Weight(PLANAR)-Weight(mode1)
ただし、mode1、mode2はそれぞれ予測モード1、予測モード2を表し、amp1、amp2はそれぞれ予測モード1の勾配振幅値、予測モード2の勾配振幅値を表す。DIMDモードでは、現在の符号化ユニットがDIMDモードを使用するか否かを示すことに用いられる1つのフラグビットをデコーダに送信する必要がある。
勿論、上記の加重平均法は本願の例示に過ぎず、本願を限定するものとして理解されるべきではない。
要するに、DIMDは再構成画素の勾配分析を使用してイントラ予測モードをスクリーニングし、2つのイントラ予測モードとプレーナモードを分析結果に従って重み付けを行うことができる。DIMDの利点は、現在ブロックに対してDIMDモードが選択された場合、コードストリームにおいてどのイントラ予測モードが使用されるかを示す必要がなく、代わりにデコーダ自体が上記のプロセスを通じて導出し、ある程度でオーバーヘッドが節約されることになる。
(3)テンプレートベースのイントラモード導出(Template based Intra Mode Derivation、TIMD)モード。
TIMDモードの技術原理は、前述のDIMDモードの技術原理と似ており、いずれもコーデックが同じ動作で予測モードを導出することにより、送信モードインデックスのオーバーヘッドを節約する。TIMDモードは2つの主要な部分として理解できる。まず、テンプレートに従って各予測モードのコスト情報を算出して、最小コストと2番目に小さいコストに対応する予測モードが選択される。最小コストに対応する予測モードは予測モード1として記録され、次に小さいコストに対応する予測モードは予測モード2として記録される。次に小さいコストの値(costMode2)と最小コストの値(costMode1)との比例は、costMode2<2×costMode1ような事前に設定された条件に満たした場合、予測モード1および予測モード2がそれぞれ対応する予測ブロックは、予測モード1および予測モード2がそれぞれ対応する重みに従って重み付けして融合して、最終的な予測ブロックを取得することができる。
例えば、予測モード1と予測モード2がそれぞれ対応する重みは下記のように決定される。
weight1=costMode2/(costMode1+costMode2)
weight2=1-weight1
ただし、weight1は予測モード1に対応する予測ブロックの重みであり、Weight2は予測モード2に対応する予測ブロックの重みである。しかしながら、次に小さいコスト値CostMode2と最小のコスト値CostMode1との比が予め設定された条件に満たさない場合、予測ブロック間の重み付け融合は行われず、予測モード1に対応する予測ブロックは、TIMDの予測ブロックとなる。
TIMDモードを使用して現在ブロックに対してイントラ予測を実行する場合、現在ブロックの再構成サンプルテンプレートに利用可能な隣接する再構成サンプルが含まれていない場合、TIMDモードはプレーナモードを選択して、現在ブロックに対してイントラ予測を実行し、即ち重み付けされていない融合は実行されていない。DIMDモードと同じように、TIMDモードは、現在の符号化ユニットがTIMDモードを使用するか否かを示すフラグビットをデコーダに送信する必要がある。
図7は、本願の実施例によって提供されるTIMDによって使用されるテンプレートの概略図である。
図7に示すように、現在ブロックは幅がM、且つ高さがNの符号化ユニットである場合、コーデックは幅が2(M+L1)+1、高さが2(N+L2)+1に等しい符号化ユニットに基づいて、現在ブロックの参照テンプレート(Reference of template)を選択して現在ブロックのテンプレートを算出することができる。この時点で、現在ブロックのテンプレートに使用可能な隣接テンプレートが含まれていない場合,TIMDモードはプレーナモードを選択して、現在ブロックに対してイントラ予測を実行する。例えば、利用可能な隣接再構成サンプルは、図7における現在CUの左側および上側に隣接するサンプルであり、即ち、斜め充填領域には利用可能な再構成サンプルがない。即ち、斜め充填領域には利用可能な再構成サンプルがない場合、TIMDモードはプレーナモードを選択して、現在ブロックに対してイントラ予測を実行する。
境界の場合を除いて、現在ブロックを符号化・復号化するとき、理論的には、現在ブロックの左側と上側で再構成値を取得できる。即ち、現在ブロックのテンプレートには、利用可能な隣接する再構成サンプルが含まれる。具体的な実現では、デコーダはあるイントラ予測モードを使用してテンプレート上で予測し、予測値と再構成値を比較して、テンプレートにおけるイントラ予測モードのコストを取得できる。例えば、SAD、SATD、SSEなどである。テンプレートと現在ブロックは隣接しているため、テンプレートにおける再構成サンプルは現在ブロックにおける画素と相関するため、テンプレートにおける1つの予測モードのパフォーマンスを使用して、現在ブロックにおける該予測モードのパフォーマンスを推定できる。TIMDは、テンプレートにいくつかの候補イントラ予測モードを予測し、テンプレートにおける候補イントラ予測モードのコストを取得し、コストが最も低い1つまたは2つのイントラ予測モードを現在ブロックのイントラ予測値とする。2つのイントラ予測モード間のテンプレートにおけるコストの差が大きくない場合、2つのイントラ予測モードの予測値に重み付けを行って平均化してことにより、圧縮性能を向上させることができる。選択的に、2つの予測モードの予測値の重みは、上記記載に係るコストに関連し、例えば、重みはコストに反比例する。
要するに、TIMDは、テンプレートにおけるイントラ予測モードの予測効果を使用してイントラ予測モードをスクリーニングし、テンプレートにおけるコストに応じて2つのイントラ予測モードに重み付けを行うことができる。TIMDの利点は、現在ブロックがTIMDモードを選択した場合、コードストリームにおいてどのイントラ予測モードが使用されているかを示す必要がなく、代わりにデコーダ自体が上記のプロセスを通じてそれを導出し、オーバーヘッドがある程度で節約されることになる。
いくつかのイントラ予測モードについての上記の簡単な紹介を通じて、DIMDモードの技術原理がTIMDモードの技術原理に近く、いずれもデコーダを使用してエンコーダと同じ操作を実行し、現在の符号化ユニットの予測モードを推測する。この予測モードでは、複雑さが許容できる場合、予測モードのインデックスの送信を節約できるため、オーバーヘッドが節約され、圧縮効率が向上する。しかしながら、参照情報の制限と、予測品質があまり改善されないため、DIMDモードとTIMDモードは、一貫したテクスチャ特性を持つ広い領域でより効果的に機能するが、テクスチャがわずかに変化することやテンプレート領域がカバーできない場合、この予測モードの予測効果は低い。
また、DIMDモードであってもTIMDモードであっても、複数の従来の予測モードに基づいて得られた予測ブロックを融合したり、複数の従来の予測モードに基づいて得られた予測ブロックに対して重み付けを実行したりすることで、予測ブロックの融合は単一の予測モードで達成できない効果を生み出すことができる。DIMDモードは、追加の重み付け予測モードとしてプレーナモードを導入することによって、隣接する再構成サンプルと予測サンプル間の空間関連性を高め、イントラ予測の予測効果を向上させるが、プレーナモードの予測原理は、比較的簡易であり、右上隅と左下隅とは明らかな相違がある一部の予測ブロックである場合、追加の重み付き予測モードとしてプレーナモードを使用すると、逆効果をもたらす可能性がある。
(4)幾何学的分割モード(geometric partitioning mode、GPM)および角度重み付け予測(angular weighted prediction、AWP)。
ビデオ符号化・復号化規格では、従来の単方向予測では現在ブロックと同じサイズの参照ブロックを1つだけ使用し、従来の双方向予測では、現在ブロックと同じサイズの2つの参照ブロックを使用し、予測ブロックの各ポイントの画素は2つの参照ブロックの対応する位置の平均値であり、即ち各参照ブロックにおける全ての点が50%を占める。さらに、双方向加重予測では、2つの参照ブロックの割合を異なるものにすることができる。例えば、第1参照ブロックにおける全てのポイントが75%を占め、第2参照ブロックにおける全てのポイントが25%を占めるが、同一の参照ブロックにおける全てのポイントの比例は同じである。さらに、復号化側動きベクトルリファインメント(decoder side motion vector refinement、DMVR)や双方向オプティカルフロー(bi-directional optical flow、BIOまたはBDOF)などのいくつかの最適化方法では、参照画素または予測画素に何らかの変化が生じることになる。
GPMまたはAWPの場合、現在ブロックと同じサイズの2つの参照ブロックも使用するが、一部の画素位置は第1参照ブロックに対応する画素値を100%使用し、一部の画素位置は第2参照ブロックに対応する画素値を100%使用する。境領域またはブレンディング領域と呼ばれる領域では、2つの参照ブロックの対応する位置の画素値が一定の割合に従って使用される。境領域の重みも徐々に変化する。これらの重みがどのように割り当てられるかは、GPMまたはAWPの重み導出モードによって決まる。GPMまたはAWPの重み導出モードに従って、各画素位置の重みを決定する。
勿論、ブロックサイズが非常に小さいなどの場合、いくつかのGPMまたはAWPモードでは、一部の画素位置が第1参照ブロックに対応する位置の画素値を100%使用することが保証することができない。一部の画素位置は第2参照ブロックに対応する画素値を100%使用することが保証することができない。このとき、GPMまたはAWPは現在ブロックと異なるサイズである2つの参照ブロックを使用する。即ちそれぞれが必要な部分を参照ブロックとする。即ち、重みが0以外の部分が参照ブロックとして使用され、重みが0である部分は排除される。本願はその実現方法を制限しない。
図8は、本願の実施例によって提供されるGPMの正方形ブロックにおける64つの重み導出モードに対応する重みマップの例示である。
図8に示すように、GPMの正方形ブロックにおける64つの重み導出モードに対応する重みマップがある。また、各重み導出モードに対応する重みマップについて、黒色は第1参照ブロックの対応位置の重み値が0%であることを意味し、白色は第1参照ブロックの対応位置の重み値が100%であることを意味し、灰色の領域は、色の濃さに応じて、第1参照ブロックの対応する位置の重み値が0%より大きく100%未満であることを意味し、第2参照ブロックの対応位置の重み値は、100%から第1参照ブロックの対応位置の重み値を引いた値となることを意味する。
図9は、本願の実施例によって提供される重み導出モードにおける分割線の例である。
図9に示すように、重み導出モードの分割線は、GPMに対応する2つの予測モードの同じ重みを有する点で構成される線であってもよい。即ち、GPMの重み行列において、分割線は、GPMに対応する2つの予測モードの重みが同じ点で構成される線である。言い換えると、分割線は、GPMの重み値行列のうち重み値が変化する領域において、GPMに対応する2つの予測モードの重み値が同じ点で構成される線であってもよい。言い換えると、分割線は、重みが中央値である点で構成される線であり、重みが中央値である点は画素全体の中間に位置してもよいが、画素全体の中間に位置しなくてもよい。0~8を重み値とすると、中央値である重みは4でもよい。
図10は、本願の実施例によって提供されるAWPの正方形ブロックにおける56つの重み導出モードに対応する重みマップの例である。
図10に示すように、AWPの正方形ブロックにおける56つの重み導出モードに対応する重みマップである。各重み導出モードに対応する重みマップについて、黒色は第1参照ブロックの対応位置の重み値が0%であることを意味し、白色は第1参照ブロックの対応位置の重み値が100%であることを意味し、灰色の領域は、色の濃さに応じて、第1参照ブロックの対応する位置の重み値が0%より大きく100%未満であり、第2参照ブロックの対応位置の重み値は、100%から第1参照ブロックの対応位置の重み値を引いた値となることを意味する。
GPMとAWPの重み導出方法は異なってもよいことを注意されたい。例えば、GPMは、各重み導出モードに基づいて角度とオフセットを決定し、各重み導出モードに対応する重みマップを算出する。AWPは、まず各重み導出モードに基づいて1次元重みラインを決定し、次にインター角度予測と同じ方法を使用して1次元重みラインを画像全体に広げ、各重み導出モードに対応する重みマップを取得する。勿論、他の実施例では、各重み導出モードに対応する重みマップを重み行列と呼ぶこともできる。
以下では、GPMを例として、重みの導出方法を説明する。
エンコーダは、各重み導出モードに従って対応する分割線を決定し、分割線に基づいて対応する重み行列を決定することができる。例えば、エンコーダは、表1を使用して、重み導出モードに対応する角度インデックス変数angleIdxおよび距離インデックス変数distanceIdxを決定し、重み導出モードmerge_gpm_partition_Idxを決定することができる。角度インデックス変数angleIdxおよび距離インデックス変数distanceIdxは、分割線を決定することに用いられる変数である。即ち、分割線の角度とオフセットをそれぞれ決定することに用いられる。エンコーダは、各重み導出モードに対応する分割線を決定した後、各重み導出モードに対応する分割線に基づいて、各重み導出モードに対応する重み行列を決定することができる。
表1に示すように、64つの重み導出モード(例えば、図8に示す64つのモード)があり、そのインデックス(merge_gpm_partition_Idx)の取り得る値は0~63である。これらの64つの重み導出モードのそれぞれは、1つの角度インデックス変数angleIdxと距離インデックス変数distanceIdxに対応できる。各重み導出モードのそれぞれは1つの分割線に対応することができることに相当する。勿論、1つの角度インデックス変数angleIdxまたは1つの距離インデックス変数distanceIdxは、1つまたは複数の重み導出モードのインデックスに対応することができ、表1は、本願の例示にすぎず、本願を限定するものとして理解されるべきではない。
3つの成分(例えば、Y、Cb、Cr)はいずれもGPMを使用できるため、1つの成分のGPMの予測サンプル行列を生成するプロセスは、1つのサブプロセスにパッケージすることができ、即ちGPMの重み付け予測工程(Weighted samples prediction process for geometric partitioning mode)に対して、3つの成分がいずれもこの工程を呼び出すことができ、呼び出されるパラメータだけは異なる。本願では輝度成分を例として説明する。例示的に、GPMの重み付き予測プロセスから現在の輝度ブロックの予測行列predSamplesL「xL」「YL」を導出できる。ただし、xL=0..cbWidth-1、yL=0..cbHeight-1である。ただし、nCbWはcbWidthに設定され、nCbHはcbHeightに設定される。
GPMの重み付き予測工程の入力には、現在ブロックの幅nCbW、現在ブロックの高さnCbH、2つの(nCbW)×(nCbH)の予測サンプル行列predSamplesLAおよびpredSamplesLB、GPMの「分割」角度インデックスangleIdx、GPMの距離インデックス変数distanceIdx、成分インデックス変数cIdxを含む。例えば、cIdxが0である場合、輝度成分を表すことに用いられる。GPMの重み付き予測プロセスの出力は、(nCbW)×(nCbH)のGPM予測サンプル行列pbSamples「x」「y」である。ただし、x=0..nCbW-1、y=0..nCbH-1である。
予測サンプル行列pbSamples「x」「y」は次のように導出できる。
例示的に、まず、変数nW、nH、shift1、offset1、displacementX、displacementY、partFliP、shiftHorを次のように導出できる。
nW=(cIdx==0)?nCbW:nCbW×SubWidthC
nH=(cIdx==0)?nCbH:nCbH×SubHeightC
shift1=Max(5、17-BitDepth)、ただし、BitDepthは符号化・復号化のビット深度である。
offset1=1<<(shift1-1)
displacementX=angleIdx
displacementY=(angleIdx+8)%32
partFlip=(angleIdx>=13&&angleIdx<=27)?0:1
shiftHor=(angleIdx%16==8||(angleIdx%16!=0&&nH>=nW))?0:1
次に、変数offsetXとoffsetYを次のように導出できる。
shiftHorの値が0である場合、
offsetX=(-nW)>>1
offsetY=((-nH)>>1)+(angleIdx<16?(distanceIdx×nH)>>3:-((distanceIdx×nH)>>3))
それ以外(即ち、shiftHorの値が1である)の場合、
offsetX=((-nW)>>1)+(angleIdx<16?(distanceIdx×nW)>>3:-((distanceIdx×nW)>>3))
offsetY=(-nH)>>1
そして、予測サンプル行列pbSamples「x」「y」は次のように導出される。ただし、x=0..nCbW-1、y=0..nCbH-1)。
変数xLとyLは次のように導出される。
xL=(cIdx==0)?x:x×SubWidthC
yL=(cIdx==0)?y:y×SubHeightC
weightIdx=(((xL+offsetX)<<1)+1)×disLut「displacementX」+(((yL+offsetY)<<1)+1)×disLut「displacementY」
ただし、表2によりdisLut「displacementX」を取得することができる。
weightIdxL=partFlip?32+weightIdx:32-weightIdx
wValue=Clip3(0、8、(weightIdxL+4)>>3)
pbSamples「x」「y」=Clip3(0、(1<<BitDepth)-1、(predSamplesLA「x」「y」×wValue+predSamplesLB「x」「y」×(8-wValue)+offset1)>>shift1)。
ただし、PbSamples「x」「y」は、(x,y)点の予測サンプルを表す。wValueは(x,y)点の1つの予測モードの予測行列の予測値predSamplesLA「x」「y」の重みを表す。(8-wValue)は(x,y)点のもう1つの予測モードの予測行列の予測値predSamplesLB「x」「y」の重みを表す。
1つの重み導出モードについて、その重み導出モードを使用して各ポイントに対して1つの重み値wValueを導出し、1つのGPM予測値pbSamples「x」「y」を算出できることに注意されたい。このような重みwValueは1つの行列の形式で記述する必要はないが、各位置のwValueを1つの行列に保存すれば、1つの重み行列になることがわかる。各点の重みを別々に算出して重み付けしてGPMの予測値を取得する原理は、全ての重みを算出して、統合に重み付けしてGPMの予測サンプル行列を取得する原理と同じである。理解しやすくなるように、重み行列マップを使用してより直感的である。実際には、各位置の重みに従って記述することもできる。例えば、重み行列導出モードは重み導出モードともいえるが、本願では特に限定されない。
さらに、CU、PU、TUの分割はいずれも長方形の分割に基づくものであるが、GPMとAWPは分割せずに予測された非長方形の分割効果を実現する。GPMとAWPは、2つの参照ブロックの重みのマスク(mask)、即ち前述の重みマップまたは重み行列を使用する。このマスクは、予測ブロックを生成するときの2つの参照ブロックの重みを決定する。言い換える、予測ブロックの一部の位置は第1参照ブロックから取得され、位置の一部は第2参照ブロックから取得されると単純に理解できる。一方、ブレンディング領域(blending area)は2つの参照ブロックの対応する位置を使用して重み付けされて取得されるものである。これにより、ブレンディングがより滑らかになる。GPMやAWPは現在ブロックを2つのCUやPUに分割しないため、予測後の残差の変換、量子化、逆変換、逆量子化なども現在ブロックを1つの全体として処理される。
GPMは重み行列を使用して2つのインター予測ブロックを結合できることに注意されたい。本願は、これを2つの任意の予測ブロックの結合に拡張する。例えば、2つのインター予測ブロック、2つのイントラ予測ブロック、1つのインター予測ブロックと1つのイントラ予測ブロックである。画面コンテンツの符号化においても、イントラブロックコピー(intra block copy、IBC)モードの予測ブロックやパレット(palette)モードの予測ブロックを1つまたは2つの予測ブロックとして使用できる。説明の便宜上、本願では、イントラモード、インターモード、IBCモード、パレットモードを予測モードと総称する。予測モードは、コーデックに基づいて現在ブロックの予測ブロックの情報を生成することができると理解する。例示的に、イントラ予測では、予測モードは、DCモード、プレーンモード、様々なイントラ角度予測モードなどのあるイントラ予測モードであってもよい。勿論、フレーム内参照画素の最適化方法や、予備予測ブロック生成後の最適化方法(例えば波フィルタリングなど)などの補助情報を取り込むこともできる。例えば、インター予測では、予測モードは、融合(merge)モード、動きベクトル差分融合(Merge with Motion Vector Difference、MMVD)モード、アドバンスト動きベクトル予測モード(Advanced Motion Vector Prediction、AMVP)であってもよい。例示的に、予測モードは、単方向予測、双方向予測、または多仮説予測であってもよい。さらに、インター予測モードが単方向予測であり、動き情報が決定できる場合には、その動き情報に基づいて予測ブロックを決定することができる。インター予測モードが双方向予測であり、2つの動き情報が決定できる場合には、その動き情報に基づいて予測ブロックを決定することができる。
図11は、本願の実施例によって提供されるGPMまたはAWPの概略図である。
図11に示すように、GPMが決定する必要がある情報は、1つの重み導出モードと2つの予測モードとして表すことができる。重み導出モードは重み行列または重みを決定することに用いられ、2つの予測モードはそれぞれ予測ブロックまたは予測値を決定する。重み導出モードは、分割モードまたは重み行列導出モードとも呼ばれる。2つの予測モードは、同じ予測モードであっても異なる予測モードであってもよい。例えば、イントラ予測モード、インター予測モード、IBCモード、およびパレットモードを含むが、これらに限定されない。
残差ブロックの変換に関する内容について説明する。
符号化するとき、現在ブロックを先に予測する。空間または時間の関連性を使用して、現在ブロックと同じまたは類似した画像を取得する。1つのブロックについて、予測ブロックと現在ブロックが完全に同一である可能性はあるが、ビデオにおける全てのブロックが同じ状況であることを保証するのは困難である。特に自然のビデオやカメラにより撮影されたビデオである場合、画像のテクスチャが複雑であり、かつ画像におけるノイズなどの要因があるため、通常、予測ブロックは現在ブロックに非常に似ているが、相違がある。さらに、ビデオの不規則な動き、歪み、オクルージョン、輝度などの変化により、現在ブロックを完全に予測することは困難である。したがって、ハイブリッド符号化フレームワークは、現在ブロックのオリジナル画像から予測画像を減算して残差画像を取得するか、または、現在ブロックから予測ブロックを引いて残差ブロックを取得する。残差ブロックは通常、オリジナル画像よりもはるかに簡素であるため、予測によって圧縮効率が大幅に向上する。残差ブロックに対して直接符号化しなく、通常は先に変換を行う。変換とは、残差画像を空間領域から周波数領域に変換し、残差画像の相関性を除去することである。残差画像が周波数領域に変換された後、エネルギーは主に低周波数領域に集中するため、変換された非ゼロ係数の大部分は左上隅に集中する。次に、量子化を使用してさらに圧縮する。また、人間の目は高周波に対して敏感ではないため、高周波領域では、より大きな量子化ステップサイズを使用できる。
画像変換技術は、直交関数または直交行列でオリジナル画像を表現できるようにオリジナル画像を変換する技術であり、この変換は2次元で線形可逆である。一般にオリジナル画像を空間領域画像と呼ばれ、変換された画像は変換領域画像(周波数領域とも呼ばれる)と呼ばれる。変換領域画像は空間領域画像に逆変換することができる。画像変換後は、画像自体の特性をより効果的に反映できる一方で、エネルギーを少量のデータに集中させることができるため、画像の保存、送信及び処理が容易になる。
画像ビデオ符号化の分野において、エンコーダが残差ブロックを取得した後、残差ブロックを変換できる。変換方法は、離散コサイン変換(Discrete Cosine Transform、DCT)および離散サイン変換(Discrete Sine Transform、DST)を含むが、これらに限定されていない。DCTはエネルギー集中特性が強いため、オリジナル画像をDCT変換した後に、0ではない係数が一部の領域(例えば左上隅の領域)のみに存在する。勿論、ビデオの符号化・復号化では画像をブロックに分割して処理するため、変換もブロック単位で行われる。ビデオ符号化・復号化で使用可能なDCTは、DCT2およびDCT8タイプを含むが、これらに限定されていない。ビデオ符号化・復号化で使用可能なDSTは、DST7タイプを含むが、これらに限定されていない。ただし、DCT2タイプはビデオ圧縮規格で一般的に用いられる変換であり、VVCでDCT8タイプとDST7タイプを使用できる。変換は一般的なビデオ圧縮において非常に有用であるが、必ずしも全てのブロックは変換を行う必要ではない。場合によって、変換を行った方が、変換を行わない圧縮よりも効果的でないこともある。したがって、場合によって、エンコーダは、現在のブロックに対して変換を使用するか否かを選択することができる。
エンコーダが現在の画像における現在ブロックを変換するとき、基関数または基画像を使用して、現在ブロックの残差ブロックを変換できる。基画像は、基関数をグラフで表現したものである。
図12は、本願の実施例によって提供されるDCT2タイプの基画像の例示である。
図12に示すように、DCT2タイプの基画像は、基関数に従って描かれた8×8の小ブロックで構成される基画像であり、各小ブロックは8×8の要素(サブブロック)で構成される。具体的な実現では、8×8の小ブロックで構成される基画像を使用して8×8ブロックサイズのブロックを変換することができ、8×8変換係数行列が得られる。
前述したように、VVCにおいて、DCT2タイプを使用して残差ブロックに対して基本的な変換を実行することに加えて、DCT8タイプとDST7タイプを使用して残差ブロックに対して基本的な変換、即ちマルチ変換モード選択(multiple transform selection、MTS)を実行することもできる。基本変換が使用する基関数に対応する変換タイプを、基本変換が使用する変換カーネルタイプと呼ぶこともできる。エンコーダがさまざまな残差分布特性に基づいて基本的な変換を実行する場合、最も適切な変換カーネルタイプを選択することで圧縮性能を向上させることができる。基本変換は主要変換(core transform)とも呼ばれる。MTSは、いくつかの構文要素を通じて変換カーネルタイプを選択できる。構文要素を通じて変換カーネルタイプを選択するMTSを、表3と併せて以下に示す。
表3に示すように、MTS_CU_flagの値が0である場合、水平方向および鉛直方向の基本変換の変換カーネルタイプはDCT2を使用する。MTS_CU_flagの値が1、MTS_Hor_flagの値が0、およびMTS_Ver_flagの値が0である場合、水平方向の変換カーネルタイプはDST7を使用し、鉛直方向の変換カーネルタイプはDST7を使用する。
VVC規格では、MTSの構文を書き換えたり簡素化したりすることもできる。即ち、VVCは構文要素mts_Idxを使用して、基本変換の変換カーネルタイプを決定する。
表4に示すように、trTypeHorは水平変換の変換カーネルタイプを表し、trTypeVerは鉛直変換の変換カーネルタイプを表し、trTypeHorおよびtrTypeVerでは、0がDCT2タイプの変換を示し、1がDST7タイプの変換を示し、2がDCT8タイプの変換を示す。
残差の分布はイントラ予測モードと一定の関連性があるため、基本的な変換ではこの関連性を利用することもできる。1つの手段は、イントラ予測モードに従ってMTSの変換カーネルタイプをグループ化することである。1つのグループ化の例を次の表に示す。
表5に示すように、イントラ予測モードのインデックスが0または1である場合、MTSのインデックス0を有する変換カーネルタイプ群を対応的に選択して、VVCではインデックス0を有するモードがPlanarであり、インデックス1を有するモードがDCであり、DCおよびPlanarの両方がより平坦な予測値を生成する。イントラ予測モードのインデックスが2~12である場合、MTS1のインデックスは1である変換カーネルタイプ群を対応的に選択する。イントラ予測モードの画像によれば、2~12の角度が左下方向を向いていることが分かる。
各変換カーネルタイプ群には、1つの水平変換と鉛直変換の変換カーネルタイプの選択が存在する場合や、複数の水平変換と鉛直変換の変換カーネルタイプの選択がある場合があることを注意されたい。即ち、イントラ予測モードがどの変換カーネルタイプを選択したことに応じて、変換カーネルタイプ群をさらに細分することができ、例えば、何らかの識別またはブロックサイズ情報などを通じて変換カーネルタイプをさらに選択することができ、ここでは詳しく説明しない。大事なのは、基本変換はイントラ予測モードに応じて変換カーネルタイプ群を選択できることである。イントラ予測モードに従って基本変換の変換カーネルタイプ群を選択する方法は、将来、より詳細な基本変換のグループ化を推測することもできることも分かるが、本願ではこれを限定しない。
さらに、本願では主変換に係る変換カーネルタイプは、変換行列、変換タイプ、変換カーネルなどの類似または同一の意味を持つ他の用語とも呼ばれることがある。主変換に係る変換カーネルタイプ群は変換行列群、変換タイプ群、変換カーネル群、などの類似または同一の意味を有する他の用語と呼ばれ、本願では特に限定されない。即ち、本願に係る選択変換カーネルタイプ群または変換カーネルタイプ群は、選択変換行列または変換行列群と呼ぶこともでき、また、選択変換タイプまたは選択変換タイプ群と呼ぶこともでき、選択カーネルまたは変換カーネル群と呼ばれてもよい。変換カーネルタイプまたは変換タイプは、DCT2、DCT8、DST7などを含む場合があり、DCT5、DST4、DST1または識別変換(Identity Transform、IDTR)などを含んでもよい。
さらに、異なるサイズのブロックは、対応するサイズの変換カーネルタイプを使用できるが、本願では詳しく説明しない。
画像はいずれも2次元であり、ハードウェアにとって、2次元変換演算を直接実行する演算量およびメモリのオーバーヘッドは受け入れないため、上記のDCT2タイプ、DCT8タイプ、およびDST7タイプの変換は、水平方向と鉛直方向である1次元変換に分けて2つのステップで実行される。例えば、先に水平変換を実行してから鉛直変換を実行するか、先に鉛直変換を実行してから水平変換を実行する。上記の変換方法は、水平および鉛直方向のテクスチャに対してはより効果的であるが、斜めテクスチャに対してはあまり効果的ではない。水平テクスチャと鉛直テクスチャがありふれたものため、上記の変換方法は圧縮効率を向上させるのに非常に有用である。しかしながら、技術の発展につれて、水平および鉛直テクスチャの残差を処理するだけでは、圧縮効率の要求を満たすことができなくなる。
これに基づいて、本願は二次変換の概念を導入する。即ち、エンコーダは一次変換(primary transform)を基に二次変換を実行して、圧縮効率を向上させることができる。
例示的に、主変換は、水平方向および鉛直方向のテクスチャを処理するために用いられることができ、例えば、主変換には、上記記載に係るDCT2タイプ、DCT8タイプ、およびDST7タイプ変換が含まれるが、これらに限定されない。二次変換は、斜めテクスチャを処理することに用いられる。例えば、二次変換には、低周波非分離変換(low frequency non-separable transfrom、LFNST)を含むが、これらに限定されていない。符号化側では、二次変換は主変換の後、量子化の前に用いられる。復号化側では、二次変換は逆量子化の後、逆一次変換の前に用いられる。
図13は、本願の実施例によって提供されるLFNSTの例示である。
図13に示すように、符号化側で、LFNSTは基本変換の後に左上隅の低周波係数に対して二次変換を実行する。一次変換は、画像の非関連化によってエネルギーを左上隅に集中させる。二次変換は、一次変換の低周波係数に対して非関連化を行う。符号化側では、16つの係数が4×4LFNSTに入力する際に、8つの係数が出力され、64つの係数が8×8LFNSTに入力する際に、16つの係数が出力される。復号化側では、8つの係数が4×4逆LFNSTに入力する際に、16つの係数が出力され、16つの係数が8×8逆LFNSTに入力する際に、64つの係数が出力される。
エンコーダが現在の画像における現在ブロックに対して二次変換を実行するとき、選択された変換行列群内のある変換行列を使用して、現在ブロックの残差ブロックを変換することができる。二次変換はLFNSTであることを例とすると、変換行列はある斜めテクスチャを変換することに用いられる行列を指し、変換行列群はいくつかの類似する斜めテクスチャを変換することに用いられる行列を含むことができる。
図14は、本願の実施例によって提供されるLFNSTの変換行列群の例である。
図14の(a)~(d)に示すように、LFNSTは4群の変換行列を有することができ、同じ変換行列群における変換行列は同じ斜めテクスチャを有する。例えば、図14の(a)に示される変換行列群は、インデックスが0である変換行列群であってもよく、図14の(b)に示される変換行列群は、インデックスが1である変換行列群であってもよい。図14の(c)に示す変換行列群はインデックス2である変換行列群であり、図14の(d)に示す変換行列群はインデックス3である変換行列群である。
本願では、二次変換に係る変換行列は、変換カーネル、変換カーネルタイプまたは基関数、および類似または同一の意味を有する他の用語とも呼ばれることがあり、二次変換に係る変換行列群も変換カーネル群、変換カーネル群、変換カーネルタイプ群、または基関数群などの用語は、類似または同一の意味を有し、本願では特に限定されない。即ち、本願に係る選択変換行列または変換行列群は、選択変換カーネルタイプまたは変換カーネルタイプ群と呼ぶこともでき、選択変換タイプまたは選択変換タイプ群と呼ぶこともできる。選択カーネルまたは変換カーネル群とも呼ばれる。
以下に、LFNSTをイントラ符号化ブロックに適用する関連方案について説明する。
イントラ予測では、参照として現在ブロックの周囲の再構成された画素を使用して現在ブロックに対して予測する。現在のビデオは左から右、上から下に符号化されるため、現在ブロックで使用可能な参照画素は通常、左側と上側にある。角度予測では、指定された角度に従って参照画素を現在ブロックに平坦化することを予測値とする。これは、予測されたブロックが明確な方向性テクスチャを持つことを意味し、角度予測後の現在ブロックの残差も統計的に明らかな角度特性を反映する。したがって、LFNSTによって選択された変換行列は、イントラ予測モードにバインドできる。即ち、イントラ予測モードが決定された後、LFNSTは、テクスチャ方向がイントラ予測モードの角度特性に適合する一群(set)の変換行列を使用できる。
例えば、LFNSTに合計4つの変換行列群があり、各群に2つの変換行列があるとする。イントラ予測モードと変換行列群との対応を表6に示す。
表6に示すように、イントラ予測モード0~81は、4つの変換行列群のインデックスと関連付けることができる。
クロミナンスイントラ予測で使用されるクロス成分予測モードは81~83であるが、輝度イントラ予測にはこれらのモードがないことに注意されたい。LFNSTの変換行列は、転置により1つの変換行列群を使用してより多くの角度を処理できる。例えば、イントラ予測モード13~23とイントラ予測モード45~55はいずれも変換行列群2に対応するが、イントラ予測モード13~23は明らかに水平モードに近く、イントラ予測モード45~55は明らかに鉛直モードに近い。イントラ予測モード45~55に対応する後変換および逆変換は、必要な転置により適合されることになる。
具体的な実現では、LFNSTには合計4つの変換行列群があるため、符号化側は、現在ブロックで使用されるイントラ予測モードに基づいて、LFNSTがどの変換行列群を使用するかを決定し、決定された1つの変換行列群に用いられる変換行列を決定できる。イントラ予測モードとLFNST変換行列群との間の関連性を利用することにより、コードストリームにおける送信においてLFNSTを選択した変換行列を減らすことができる。現在ブロックがLFNSTを使用するか否かことやLFNSTを使用しようとする場合、群における第1ブロックを使用するか第2ブロックを使用するかは、コードストリームといくつかの条件によって決定できる。
勿論、共通のイントラ予測モードが67つあるが、LFNSTには4つの変換行列群しかないことを考慮すると、複数の類似角度予測モードは1つのLFNST変換行列群にしか対応できず、性能と複雑さとのバランスを取る設計である。各変換行列は、変換行列の係数を保存するための記憶領域が必要になるためである。圧縮効率の要件とハードウェア機能の向上により、LFNSTはより複雑になるように設計することもできる。例えば、より大きな変換行列、より多くの変換行列群を使用し、変換行列群ごとにより多くの変換行列を使用する。例えば、表7は、イントラ予測モードと変換行列群との別の対応関係を示す。
表7に示すように、35つの変換行列群が使用され、各変換行列群は3つの変換行列を使用する。変換行列群とイントラ予測モードの対応関係は、次のように表すことができる。イントラ予測モード0~34の場合、変換行列群0~34に順方向に対応する。即ち予測モードの番号が大きいほど変換行列群のインデックスが大きくなる。イントラ予測モード35~67の場合、転置により、2~33に逆方向に対応する。即ち、予測モードの番号が大きいほど、変換行列群のインデックスが小さくなる。残りの予測モードについては、いずれもインデックス2である変換行列群に対応できる。即ち、転置を考慮しない場合、1つのイントラ予測モードが1つの変換行列群に相当する。この設計により、各イントラ予測モードに対応する残差は、より適切なLFNST変換行列を取得することができ、圧縮性能も向上する。
勿論、理論的には、広角度モードでも1対1設計を実現できるが、この設計のコスパが低いため、本願では詳しく説明しない。
また、LFNSTについて、MIPを変換行列群に適合させるために、本願でプレーナモードが適合した変換行列群をMIPに適合する変換行列群として使用することができる。
LFNSTは2次変換の例示にすぎず、2次変換に対する制限として理解されるべきではないことに注意されたい。例えば、LFNSTは分離不可能な二次変換であるが、他の代替実施例では、分離可能な二次変換も使用して、斜めテクスチャの残差の圧縮効率を向上させることができる。
図15は、本願の実施例によって提供される復号化フレームワーク200の概略ブロック図である。
図15に示すように、復号フレームワーク200は、エントロピー復号化ユニット210、逆変換・逆量子化ユニット220、残差ユニット230、イントラ予測ユニット240、インター予測ユニット250、ループフィルタリングユニット260、および復号化画像バッファーユニット270を含む。
エントロピー復号化ユニット210は、コードストリームを受信して復号化した後、予測ブロックと周波数領域残差ブロックを取得し、周波数領域残差ブロックに対して、逆変換・逆量子化ユニット220は、変換および逆量子化などのステップを実行して時間領域残差ブロックを取得する。残差ユニット230は、逆変換・逆量子化ユニット220による変換・逆量子化後の時間領域残差ブロックに、イントラ予測ユニット240またはインター予測ユニット250により予測された予測ブロックを重ね合わせ、再構成ブロックを取得する。
上記に説明した符号化/複合化フレームおよび関連技術方案に基づいて、下記には、本願によって提供される符号化/複合化方法を具体的に説明する。
第1側面では、復号化方法を提供して、該方法は、
コードストリームを復号化して、現在ブロックの第1変換係数を取得するステップと、
第1変換係数に対して第1変換を実行して、現在ブロックの第2変換係数を取得するステップと、
第2変換係数に対して第2変換を実行して、現在ブロックの残差ブロックを取得するステップと、
予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて、現在ブロックに対して予測し、現在ブロックの予測ブロックを取得するステップと、
現在ブロックの予測ブロックと現在ブロックの残差ブロックに基づいて、現在ブロックの再構成ブロックを取得するステップと、を含む。
第1側面に係る前記方法に基づいて、1番目の可能な実現方式において、予測モード導出モードは、デコーダ側イントラモード導出モードまたはテンプレートベースのイントラモード導出モードを含む。
第1側面または1番目の可能な実現方式に基づいて、2番目の可能な実現方式において、第1変換係数に対して第1変換を実行して、現在ブロックの第2変換係数を取得するステップは、
コードストリームを復号化して、第1識別子と第2識別子を取得するステップと、
第1識別子が、予測モード導出モードを使用して現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、第2識別子が、第1変換を使用して現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、第1変換係数に対して第1変換を実行して、第2変換係数を取得するステップと、を含む。
2番目の可能な実現方式に基づいて、3番目の可能な実現方式において、第1変換係数に対して第1変換を実行して、現在ブロックの第2変換係数を取得するステップは、
第1識別子が、予測モード導出モードを使用して現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、第2識別子が、第1変換を使用して現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、前ードストリームを復号化して第3識別子を取得するステップと、
第3識別子が、現在シーケンスにおける画像ブロックが予測モード導出モードと第1変換を同時に使用できることを許容することを識別することに用いられる場合、第1変換係数に対して第1変換を実行して、現在ブロックの第2変換係数を取得するステップと、を含む。
2番目の可能な実現方式に基づいて、4番目の可能な実現方式において、第1変換係数に対して第1変換を実行して、現在ブロックの第2変換係数を取得するステップは、
第1識別子が、予測モード導出モードを使用して現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、第2識別子が、前記第1変換を使用して前記現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、現在ブロックの高さ及び/または幅が第1閾値以上であるとき、第1変換係数に対して第1変換を実行して、第2変換係数を取得するステップ、を含む。
第1側面~4番目の可能な実現方式のいずれか1つに基づいて、5番目の可能な実現方式において、第2変換係数に対して第2変換を実行して、現在ブロックの残差ブロックを取得するステップの前に、方法は、
第1変換が使用する変換行列群を決定するステップ、をさらに含む。
5番目の可能な実現方式に基づいて、6番目の可能な実現方式において、第1変換が使用する変換行列群は、プレーナモードまたは直流DCモードに適合する変換行列群と同じである。
5番目の可能な実現方式に基づいて、7番目の可能な実現方式において、第1変換が使用する変換行列群を決定するステップは、
第1イントラ予測モードと第2イントラ予測モードに基づいて、第3イントラ予測モードを決定するステップであって、第1変換が使用する変換行列群は、第3イントラ予測モードに適合する変換行列群と同じであるステップを含む。
7番目の可能な実現方式に基づいて、8番目の可能な実現方式において、第1イントラ予測モードと第2イントラ予測モードに基づいて、第3イントラ予測モードを決定するステップは、
第1イントラ予測モードと第2イントラ予測モードのうちのデフォルト予測モードを第3イントラ予測モードに決定するステップ、または、
第1イントラ予測モードの重み及び/または第2イントラ予測モードの重みに基づいて、第3イントラ予測モードを決定するステップ、または、
第1イントラ予測モードのタイプと第2イントラ予測モードのタイプに基づいて、第3イントラ予測モードを決定するステップ、または、
第1イントラ予測モードの予測角度と第2イントラ予測モードの予測角度に基づいて、第3イントラ予測モードを決定するステップ、を含む。
8番目の可能な実現方式に基づいて、9番目の可能な実現方式において、第1イントラ予測モードと第2イントラ予測モードに基づいて、第3イントラ予測モードを決定するステップは、
第1イントラ予測モードと前記第2イントラ予測モードのうちの重みが最も大きいイントラ予測モードを前記第3イントラ予測モードに決定するステップを含む。
8番目の可能な実現方式に基づいて、10番目の可能な実現方式において、第1イントラ予測モードと第2イントラ予測モードに基づいて、第3イントラ予測モードを決定するステップは、
第1イントラ予測モードおよび第2イントラ予測モードが角度予測モードと非角度予測モードを含む場合、角度予測モードを第3イントラ予測モードに決定するステップを含む。
8番目の可能な実現方式に基づいて、11番目の可能な実現方式において、第1イントラ予測モードと第2イントラ予測モードに基づいて、第3イントラ予測モードを決定するステップは、
第1イントラ予測モードの予測角度と第2イントラ予測モードの予測角度との差の絶対値が第2閾値以下である場合、第1予測角度に対応するイントラ予測モードを第3イントラ予測モードに決定するステップであって、第1予測角度は、第1イントラ予測モードの予測角度と第2イントラ予測モードの予測角度に基づいて決定されるステップと、
第1イントラ予測モードの予測角度と第2イントラ予測モードの予測角度との差の絶対値が第2閾値より大きい場合、プレーナモードまたは直流DCモードを第3イントラ予測モードに決定するステップと、を含む。
5番目の可能な実現方式に基づいて、12番目の可能な実現方式において、第1変換が使用する変換行列群を決定するステップは、
予測モード導出モードに適合する変換行列群を、第1変換が使用する変換行列群に決定するステップを含む。
第1側面~12番目の可能な実現方式のいずれか1つに基づいて、13番目の可能な実現方式において、第1変換は、現在ブロックにおける斜め方向に沿ったテクスチャを処理することに用いられ、第2変換は、前記現在ブロックにおける水平方向および鉛直方向に沿うテクスチャを処理することに用いられる。
第2側面では、本願は、符号化方法をさらに提供して、該方法は、
予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて現在ブロックに対して予測し、現在ブロックの予測ブロックを取得するステップと、
現在ブロックの予測ブロックに基づいて、現在ブロックの残差ブロックを取得するステップと、
現在ブロックの残差ブロックに対して第3変換を実行して、現在ブロックの第3変換係数を取得するステップと、
第3変換係数に対して第4変換を実行して、現在ブロックの第4変換係数を取得するステップと、
第4変換係数に対して符号化するステップと、を含む。
第2側面に係る方法に基づいて、1番目の可能な実現方式において、予測モード導出モードは、デコーダ側イントラモード導出モードまたはテンプレートベースのイントラモード導出モードを含む。
第2側面または1番目の可能な実現方式に基づいて、2番目の可能な実現方式において、第4変換係数に対して符号化するステップは、
第1識別子、第2識別子、および第4変換係数に対して符号化するステップであって、第1識別子は、予測モード導出モードを使用して現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、第2識別子は、第4変換を使用して現在シーケンスにおける画像ブロックを変換することを許容することを識別するステップを含む。
2番目の可能な実現方式に基づいて、3番目の可能な実現方式において、第1識別子、第2識別子、および第4変換係数に対して符号化するステップは、
第1識別子、第2識別子、第4変換係数、および第3識別子を符号化するステップであって、第3識別子は、現在シーケンスにおける画像ブロックが前記予測モード導出モードと前記第4変換を同時に使用することを許容することを識別するステップを含む。
第2側面~3番目の可能な実現方式に基づいて、4番目の可能な実現方式において、第3変換係数に対して第4変換を実行して、現在ブロックの第4変換係数を取得するステップは、
現在ブロックの高さ及び/または幅が第1閾値以上である場合、第3変換係数に対して第4変換を実行して、第4変換係数を取得するステップを含む。
第2側面~4番目の可能な実現方式に基づいて、5番目の可能な実現方式において、第3変換係数に対して第4変換を実行して、現在ブロックの第4変換係数を取得するステップの前に、方法は、
第4変換が使用する変換行列群を決定するステップを更に含む。
5番目の可能な実現方式に基づいて、6番目の可能な実現方式において、第4変換が使用する変換行列群は、プレーナモードまたは直流DCモードに適合する変換行列群と同じである。
5番目の可能な実現方式に基づいて、7番目の可能な実現方式において、第4変換が使用する変換行列群を決定するステップは、
第1イントラ予測モードと第2イントラ予測モードに基づいて、第3イントラ予測モードを決定するステップであって、第4変換が使用する変換行列群は、第3イントラ予測モードに適合する変換行列群と同じであるステップを含む。
5番目の可能な実現方式に基づいて、8番目の可能な実現方式において、第1イントラ予測モードと第2イントラ予測モードに基づいて、第3イントラ予測モードを決定するステップは、
第1イントラ予測モードと第2イントラ予測モードのうちのデフォルト予測モードを第3イントラ予測モードに決定するステップ、または、
第1イントラ予測モードの重み及び/または第2イントラ予測モードの重みに基づいて、第3イントラ予測モードを決定するステップ、または、
第1イントラ予測モードのタイプと第2イントラ予測モードのタイプに基づいて、第3イントラ予測モードを決定するステップ、または、
第1イントラ予測モードの予測角度と第2イントラ予測モードの予測角度に基づいて、第3イントラ予測モードを決定するステップ、を含む。
8番目の可能な実現方式に基づいて、9番目の可能な実現方式において、第1イントラ予測モードの重み及び/または第2イントラ予測モードの重みに基づいて、第3イントラ予測モードを決定するステップは、
第1イントラ予測モードと第2イントラ予測モードのうちの重みが最も大きいイントラ予測モードを第3イントラ予測モードに決定するステップを含む。
8番目の可能な実現方式に基づいて、10番目の可能な実現方式において、第1イントラ予測モードのタイプおよび第2イントラ予測モードのタイプに基づいて、第3イントラ予測モードを決定するステップは、
第1イントラ予測モードおよび第2イントラ予測モードが角度予測モードと非角度予測モードを含む場合、角度予測モードを第3イントラ予測モードに決定するステップを含む。
8番目の可能な実現方式に基づいて、11番目の可能な実現方式において、第1イントラ予測モードの予測角度と第2イントラ予測モードの予測角度に基づいて、第3イントラ予測モードを決定するステップは、
第1イントラ予測モードの予測角度と第2イントラ予測モードの予測角度との差の絶対値が第2閾値以下である場合、第1予測角度に対応するイントラ予測モードを第3イントラ予測モードに決定するステップであって、第1予測角度は、第1イントラ予測モードの予測角度と第2イントラ予測モードの予測角度に基づいて決定されるステップと、
第1イントラ予測モードの予測角度と第2イントラ予測モードの予測角度との差の絶対値が第2閾値より大きい場合、プレーナモードまたは直流DCモードを第3イントラ予測モードに決定するステップと、を含む。
12番目の可能な実現方式に基づいて、12番目の可能な実現方式において、第4変換が使用する変換行列群を決定するステップは、
予測モード導出モードに適合する変換行列群を、第4変換が使用する変換行列群に決定するステップを含む。
第2側面~12番目の可能な実現方式のいずれか1つに基づいて、13番目の可能な実現方式において、第4変換は、現在ブロックにおける斜め方向に沿ったテクスチャを処理することに用いられ、第3変換は、現在ブロックにおけるテクスチャを処理することに用いられる。
図16は、本願の実施例によって提供される復号化方法300の概略フローチャートである。復号化方法300はデコーダによって実行できることを理解されたい。例えば、図15に示す復号フレームワーク200に適用される。説明の便宜上、以下ではデコーダを例に挙げる。
図16に示すように、復号化方法300は、以下の一部または全部を含むことができる。
S310、デコーダはコードストリームを復号化して、現在ブロックの第1変換係数を取得する。
S320、デコーダは、前記第1変換係数に対して第1変換を実行して、前記現在ブロックの第2変換係数を取得する。
S330、デコーダは、前記第2変換係数に対して第2変換を実行して、前記現在ブロックの残差ブロックを取得する。
S340、デコーダは、予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて、前記現在ブロックに対して予測し、前記現在ブロックの予測ブロックを取得する。
S350、デコーダは、前記現在ブロックの予測ブロックと前記現在ブロックの残差ブロックに基づいて、前記現在ブロックの再構成ブロックを取得する。
本願では、予測モード導出モードと第2変換を基に、第1変換を導入して、現在ブロックの解凍効率を向上させることができる。
例示的に、前記第1変換はLFNSTであってもよい。即ち、本願は、LFNSTを予測モード導出モードに盛り込むことにより、斜めテクスチャの残差の圧縮効率を向上させることができる。
勿論、予測モード導出モードおよびLFNSTの適合方法は、他の二次変換方法にも適用可能である。例えば、LFNSTは非分離型二次変換であるが、他の代替実施例では、予測モード導出モードは分離型二次変換にも適用可能であり、本願では特に限定されない。
いくつかの実施例では、前記予測モード導出モードは、デコーダ側イントラモード導出DIMDモード、または、テンプレートベースのイントラモード導出TIMDモードを含むことができる。
いくつかの実施例では、前記S320は、以下を含むことができる。
前記コードストリームを復号化して、第1識別子と第2識別子を取得し、
前記第1識別子が、予測モード導出モードを使用して現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子が、第1変換を使用して現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、第1変換係数に対して第1変換を実行して、第2変換係数を取得する。
例示的に、前記現在シーケンスは、前記現在ブロックを含む画像シーケンスである。
例示的に、前記第1識別子は、現在シーケンスが予測モード導出モードを使用するか否かを制御することに用いられる。
例示的に、前記第1識別子の取り得る値が第1数値である場合、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別する。前記第1識別子の取り得る値が第2数値である場合、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容しないことを識別する。一つの実現様態としては、前記第1数値が0であり、前記第2数値が1である。別の実現態様として、前記第1数値が1であり、前記第2数値が0である。勿論、前記第1数値や前記第2数値は他の取り得る値であってもよい。
例示的に、前記第2識別子は、現在シーケンスが第1変換を使用するか否かを制御することに用いられる。
例示的に、前記第2識別子の取り得る値が第3数値である場合、前記第1変換を使用して現在シーケンスにおける画像ブロックを変換することを許容することを識別する。また、前記第2識別子の値が第4数値である場合、前記第1変換を使用して現在シーケンスにおける画像ブロックを変換することを許容しないことを識別する。1つの実現態様としては、前記第3数値が0、前記第4数値が1である。別の実現態様として、前記第3数値が1、前記第4数値が0である。勿論、前記第3数値や前記第4数値は他の取り得る値であってもよい。
例示的に、第1識別子がsps_timd/dimd_enabled_flagとして記録され、第2識別子がsps_lfnst_enabled_flagとして記録されている場合、sps_timd/dimd_enabled_flagとsps_lfnst_enabled_flagの取り得る値がいずれも1であるときに、前記第1変換係数に対して第1変換を実行して、前記第2変換係数を取得する。
例示的に、前記第1識別子が予測モード導出モードを使用して現在シーケンスにおける画像ブロックを予測することを許容しないことを識別することに用いられる場合、及び/または、前記第2識別子が第1変換を使用して現在シーケンスにおける画像ブロックを変換することを許容しないことを識別することに用いられる場合、前記第1変換係数に対して前記第1変換を実行していない。言い換えると、前記第1変換係数に対して前記第2変換を直接に実行でき、前記現在ブロックの残差値を取得する。
勿論、他の代替実施例では、前記第1識別子及び/または前記第2識別子は、画像(picture)、スライス(slice)、最大符号化単位(largest coding unit、LCU)、ツリーユニット(Coding Tree Unit、CTU)、符号化ユニット(coding unit、CU)、予測ユニット(prediction unit、PU)、また、変換ユニット(transform unit、TU)などのレベルの識別子に置き換えることもできる。あるいは、前記第1識別子および前記第2識別子を基に、予測モード導出モードを使用するか否か、または、前記第1変換を使用するか否かについて、画像、スライス、LCU、CTU、CU、PUおよびTUなどのレベルの識別子を追加してもよい。本願の実施例では特に限定されない。
いくつかの実施例では、S320は、以下を含むことができる。
前記第1識別子が、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子が、前記第1変換を使用して前記現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、前記コードストリームを復号化して第3識別子を取得する。
前記第3識別子が、前記現在シーケンスにおける画像ブロックが前記予測モード導出モードと前記第1変換を同時に使用できることを識別することに用いられる場合、前記第1変換係数に対して前記第1変換を実行して、前記第2変換係数を取得する。
例示的に、前記第3識別子は、予測モード導出モードと第1変換とを共用できるか否かを制御することに用いられる。
例示的に、前記第3識別子の取り得る値が第5数値である場合、前記現在シーケンスにおける画像ブロックが前記予測モード導出モードと前記第1変換を同時に使用できることを許容することを識別する。前記第3識別子の取り得る値が第6数値である場合、現在シーケンスにおける画像ブロックが予測モード導出モードと第1変換を同時に使用することを許容しないことを識別する。1つの実現態様としては、前記第5数値が0、前記第6数値が1である。別の実装態様として、前記第5数値が1、前記第6数値が0である。勿論、前記第5数値や前記第6数値は他の取り得る値であってもよい。
例示的に、第1識別子がsps_timd/dimd_enabled_flagとして記録され、第2識別子がsps_lfnst_enabled_flagとして記録され、第3識別子がsps_timd/dimd_lfnst_enabled_flagとして記録される場合、sps_timd/dimd_enabled_flagとsps_lfnst_enabled_flagの取り得る値がいずれも1である場合、sps_timd/dimd_lfnst_enabled_flagが1であるか否か、且つsps_timd/dimd_lfnst_enabled_flagが1である場合、前記第1変換係数に対して前記第1変換を実行して、前記第2変換係数を取得する。
勿論、他の代替実施例では、前記第3識別子は、画像(picture)、スライス(slice)、最大符号化単位(largest coding unit、LCU)、ツリーユニット(Coding Tree Unit、CTU)、符号化ユニット(coding unit、CU)、予測ユニット(prediction unit、PU)、または変換ユニット(transform unit、TU)などのレベルの識別子に置き換えることもできる。あるいは、前記第3識別子を基に、前記予測モード導出モードまたは前記第1変換を使用するか否かについて、画像、スライス、LCU、CTU、CU、PU、またはTUなどのレベルの識別子を追加してもよい。本願の実施例はこれを特に限定するものではない。
いくつかの実施例では、S320は以下を含むことができる。
前記第1識別子が、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子が、前記第1変換を使用して前記現在シーケンスにおける画像ブロックを変換することを識別することに用いられる場合、デコーダは、前記現在ブロックの高さ及び/または幅が第1閾値以上である場合、前記第1変換係数に対して前記第1変換を実行して、前記第2変換係数を取得する。
例示的に、第1識別子がsps_timd/dimd_enabled_flagとして記録され、第2識別子がsps_lfnst_enabled_flagとして記録され、第3識別子がsps_timd/dimd_lfnst_enabled_flagとして記録される場合、sps_timd/dimd_enabled_flagとsps_lfnst_enabled_flagの取り得る値がいずれも1である場合、デコーダは、前記現在ブロックの高さ及び/または幅を決定する。前記現在ブロックの高さ及び/または幅が第1閾値以上である場合、前記第1変換係数に対して前記第1変換を実行して、前記第2変換係数を取得する。
例示的に、前記第1閾値は、4、8、16、32、64、または他の取り得る値であってもよい。
いくつかの実施例では、前記S320の前に、前記方法300はさらに、以下を含むことができる。
デコーダは、前記第1変換が使用する変換行列群を決定する。
予測モード導出モードは、2つの予測モード(即ち、第1イントラ予測モードと第2イントラ予測モード)を組み合わせて現在ブロックに対して予測するため、異なるイントラ予測モードで現在ブロックに対して予測して取得られる予測ブロックは、異なるテクスチャ特性を示すことがあることに留意されたい。したがって、現在ブロックが予測モード導出モードを選択する場合、第1イントラ予測モードにより現在ブロックの予測ブロックが1つのテクスチャ特性を示される可能性があり、第2イントラ予測モードにより現在ブロックの予測ブロックがもう1つのテクスチャ特性を示される可能性がある。言い換えると、現在ブロックに対して予測した後、統計的な観点から、現在ブロックの予測ブロックも2つのテクスチャ特性を示すことがある。即ち、現在ブロックの残差ブロックは必ずしもある予測モードに示される規律に合わない。したがって、予測モード導出モードに対して、デコーダが第1変換係数に対して第1変換を行う前に、その特性に適合する変換行列群を決定する必要がある。しかしながら、第1変換が使用する変換行列群は、一般的に、単一のイントラ予測モードによって定義される変換行列群である。そのため、予測モード導出モードに対して、第1変換が使用する変換行列群を決定する方案を改良する必要があり、下記には各実現様態を例示的に説明する。
いくつかの実施例では、第1変換が使用する変換行列群は、プレーナモードまたは直流DCモードに適合する変換行列群と同じである。
例示的に、デコーダが現在ブロックの予測モードをチェックするとき、現在ブロックが予測モード導出モードを使用している場合、デコーダは予測モード導出モードとプレーナモード(またはDCモード)を1つのカテゴリに分類し、予測モード導出モードを決定する。プレーナモード(またはDCモード)に従って、第1変換に用いられる変換行列群を適合する。言い換えると、デコーダが現在ブロックの予測モードをチェックするときに、現在ブロックが予測モード導出モードを使用している場合、エンコーダは現在ブロックの予測モードをプレーナモード(またはDCモード)に戻すことができることにより、デコーダは、プレーナモード(またはDCモード)に適合する変換行列群を前記第1変換が使用する変換行列群に決定する。言い換えると、デコーダが現在ブロックの予測モードをチェックするとき、現在ブロックが予測モード導出モードを使用する場合、デコーダは、現在ブロックの第1変換が使用した変換行列群が、プレーナモード(またはDCモード)に適合する変換行列群であってもよいと判断する。
本実施例では、プレーナモード(またはDCモード)と予測モード導出モードの両方も様々なテクスチャ特性を反映できるため、プレーナモードまたは直流DCモードに適合する変換行列群を第1変換が使用する変換行列群に決定することにより、予測モード導出モードと第1変換に基づいて現在ブロックを復号化するだけでなく、第1変換が使用する変換行列群のテクスチャ特性が現在ブロックの残差ブロックのテクスチャ特性にできる限り接近することを保証でき、解凍効率を向上させる。
いくつかの実施例では、デコーダは、第1イントラ予測モードおよび第2イントラ予測モードに基づいて第3イントラ予測モードを決定し、第1変換が使用する変換行列群は、第3イントラ予測モードに適合する変換行列群と同じである。
例示的に、デコーダは、第3イントラ予測モードが適合した変換行列群を、第1変換が使用する変換行列群に決定することができる。
例示的に、デコーダ側が現在ブロックの予測モードをチェックするとき、現在ブロックが予測モード導出モードを使用する場合、デコーダは第1イントラ予測モードと第2イントラ予測モードに基づいて、第3イントラ予測モードを決定する。デコーダが第3イントラ予測モードに従って第1変換が使用する変換行列群を適合できるように、予測モード導出モードと第3イントラ予測モードを1つのカテゴリに分類する。言い換えると、デコーダが現在ブロックの予測モードをチェックするとき、現在ブロックが予測モード導出モードを使用する場合、エンコーダは現在ブロックの予測モードを第3イントラ予測モードに戻すことができることにより、デコーダが第3イントラ予測モードに適合する変換行列群を、前記第1変換が使用する変換行列群に決定する。言い換えると、デコーダが現在ブロックの予測モードをチェックするとき、現在ブロックが予測モード導出モードを使用する場合、デコーダが現在ブロックに対する第1変換が使用する変換行列群は第3イントラ予測モードに適合する変換行列群であってもよいと判断してもよい。
勿論、他の代替実施例では、デコーダは、先に第3イントラ予測モードを決定し、第3イントラ予測モードにより前記第1変換が使用する変換行列群を明示的に決定しなくてもよい。その代わりに、前記第3イントラ予測モードに適合する変換行列群を前記第1変換が使用する変換行列群とする。
いくつかの実施例では、デコーダは、前記第1イントラ予測モードおよび前記第2イントラ予測モードにおけるデフォルト予測モードを前記第3イントラ予測モードに決定するか、または、デコーダは、前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定するか、または、デコーダが、前記第1イントラ予測モードのタイプおよび前記第2イントラ予測モードのタイプに基づいて、前記第3イントラ予測モードを決定するか、または、デコーダが前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて前記第3イントラ予測モードを決定する。
例示的に、デコーダが現在ブロックの予測モードをチェックするとき、現在ブロックが予測モード導出モードを使用する場合、第1変換が使用する変換行列群を選択する場合、第1イントラ予測モードと第2イントラ予測モードに基づいて、第1変換が使用する変換行列群を決定する。1つの実現態様としては、任意の場合でも第1イントラ予測モードを使用して決定することができる。即ち、任意の場合でも第1イントラ予測モードに適合する変換行列群を、第1変換が使用する変換行列群に決定する。または、任意の場合でも第2イントラ予測モードを用いて決定することもできる。即ち、任意の場合でも第2イントラ予測モードに適合する変換行列群を第1変換が使用する変換行列に決定する。もう1つの実現態様において、場合によって、第1イントラ予測モードを使用して決定することができる。即ち、場合によって、第1イントラ予測モードに適合する変換行列群を第1変換が使用する変換行列群に決定する。または、場合によって、第2イントラ予測モードを使用して決定することができる。即ち、第2イントラ予測モードに適合する変換行列群を第1変換が使用する変換行列群に決定する。場合によって、プレーンモードまたはDCモードにより決定される。即ち、場合によって、プレーンモードまたはDCモードに適合する変換行列群を第1変換が使用する変換行列群に決定する。ある予測モードを使用して決定するということは、予測モード導出モードがある予測モードと同じカテゴリに分類され、デコーダがある予測モードに基づいて第1変換が使用する変換行列群を適合できることを意味する。言い換えると、デコーダが現在ブロックの予測モードをチェックするときに、現在ブロックが予測モード導出モードを使用している場合、前記ある予測モードを返すことができることにより、デコーダは前記ある予測モードに従って第1変換が使用する変換行列群に適合できる。言い換えると、デコーダが現在ブロックの予測モードをチェックするとき、現在ブロックが予測モード導出モードを使用する場合、デコーダは、現在ブロックの第1変換に使用された変換行列群が、前記ある予測モードに適合する変換行列群であってもよい。
いくつかの実施例では、デコーダが前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定するとき、第1イントラ予測モードと第2イントラ予測モードとのうちの最も大きな重みを有するイントラ予測モードを第3イントラ予測モードに決定する。
例示的に、デコーダが前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて前記第3イントラ予測モードを決定する場合、重みの大きいイントラ予測モードの優先度は、重みの小さいイントラ予測モードの優先度よりも高い。例えば、第1イントラ予測モードの重みが第2イントラ予測モードの重みよりも大きい場合、第1イントラ予測モードを第3イントラ予測モードに決定し、第2イントラ予測モードの重みが第1イントラ予測モードの重みよりも大きい場合、第2イントラ予測モードを第3イントラ予測モードに決定する。
いくつかの実施例では、デコーダが前記第1イントラ予測モードのタイプおよび前記第2イントラ予測モードのタイプに基づいて前記第3イントラ予測モードを決定するとき、前記第1イントラ予測モードおよび前記第2イントラ予測モードが角度予測モードと非角度予測モードを含む場合、前記角度予測モードを第3イントラ予測モードに決定する。
例示的に、デコーダが前記第1イントラ予測モードのタイプと前記第2イントラ予測モードのタイプに基づいて前記第3イントラ予測モードを決定する場合、角度予測モードが第3イントラ予測モードとする優先度は、非角度予測モードが第3イントラ予測モードとする優先度よりも高い。例えば、前記第1イントラ予測モードが角度予測モードであり、前記第2イントラ予測モードが非角度予測モード(例えば、プレーナモードまたはDCモード)である場合、第1イントラ予測モード(即ち角度予測モード)を第3イントラ予測モードに決定する。
いくつかの実施例では、前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値以下である場合、第1予測モードに対応するイントラ予測モードを前記第3イントラ予測モードに決定して、前記第1予測角度は、前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測に基づいて決定される。前記第1イントラ予測モードの予測角度および前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値より大きい場合、プレーナモードまたは直流DCモードを第3イントラ予測モードに決定する。
例示的に、デコーダが前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて前記第3イントラ予測モードを決定する場合、第1イントラ予測モードの予測角度と第2イントラ予測モードの予測角度との差は比較的小さい場合、デコーダは、第1イントラ予測モード、第2イントラ予測モード、または第1イントラ予測モードに位置する予測角度と第2イントラ予測モードの予測角度との間の予測角度を。例えば、第1イントラ予測モードの予測角度と第2イントラ予測モードの予測角度との差が比較的大きい場合、デコーダは、プレーナモードまたはDCモードを第3イントラ予測モードに決定することができる。
いくつかの実施例では、デコーダは、前記予測モード導出モードに適合された変換行列群を、前記第1変換が使用する変換行列群に決定する。
例示的に、デコーダは、予測モード導出モードに対して、適合または専用の変換行列群を定義することができる。
いくつかの実施例では、前記第1変換は、現在ブロックにおける斜め方向に沿うテクスチャを処理することに用いられ、前記第2変換は、現在ブロックにおける水平方向および鉛直方向に沿うテクスチャを処理することに用いられる。
なお、復号化側の第1変換は、符号化側の第1変換の逆変換であり、復号化側の第2変換は、符号化側の第2変換の逆変換である。例えば、符号化側では、第1変換は上記記載に係る二次変換であり、第2変換は、上記記載に係る基本変換または主変換であり、復号化側では、前記第1変換は、上記記載に係る二次変換の逆変換でもよい。例えば、符号化側では、前記第1変換はLFNSTでもよく、前記第2変換はDCT2タイプ、DCT8タイプ、またはDST7タイプなどでもよい。デコーダについて、前記第1変換は、逆(反)LFNSTでもよく、第2変換は、逆(反)DCT2タイプ、逆(反)DCT8タイプ、または逆(反)DST7タイプなどでもよい。
以上、デコーダの視点から本願の実施例に係る復号化方法を詳細に説明した。下記に、図17を参照しながら、エンコーダの視点から本願の実施例に係る符号化方法を説明する。
図17は、本願の実施例によって提供される符号化方法400の概略フローチャートである。符号化方法400はエンコーダによって実行されることを理解されたい。例えば、図1に示す符号化フレームワーク100に適用される。説明を簡単にするために、以下ではエンコーダを例として使用する。
図17に示すように、符号化方法400は、以下を含むことができる。
S410、予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて現在ブロックに対して予測し、前記現在ブロックの予測ブロックを取得する。
S420、前記現在ブロックの予測ブロックに基づいて前記現在ブロックの残差ブロックを取得する。
S430、前記現在ブロックの残差ブロックに対して第3変換を実行して、前記現在ブロックの第3変換係数を取得する。
S440、前記第3変換係数に対して第4変換を実行して、前記現在ブロックの第4変換係数を取得する。
S450、前記第4変換係数に対して符号化する。
なお、復号化側の第1変換は、符号化側の第4変換の逆変換であり、復号化側の第2変換は、符号化側の第3変換の逆変換である。例えば、前記第3変換は、上記記載に係る基本変換または主変換であり、前記第4変換は、上記記載に係る二次変換であり、対応的に、前記第1変換は、二次変換の逆変換(または反変換)である。前記第2変換は、基本変換または主変換の逆変換(または反変換)であってもよい。例えば、前記第1変換は、逆(反)LFNSTであってもよく、前記第2変換は、逆(反)DCT2タイプ、逆(反)DCT8タイプ、または逆(反)DST7タイプなどであってもよい。前記第3変換は、DCT2タイプ、DCT8タイプ、またはDST7タイプなどであってもよく、前記第4変換は、LFNSTであってもよい。
いくつかの実施例では、予測モード導出モードは、デコーダ側イントラモード導出モードまたはテンプレートベースのイントラモード導出モードを含む。
いくつかの実施例では、S450は、以下を含むことができる。
第1識別子、第2識別子、および第4変換係数に対して符号化する。
前記第1識別子は、前記予測モード導出モードを使用して現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子は、前記第4変換を使用して前記現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる。
いくつかの実施例では、S450は、以下を含むことができる。
第1識別子、第2識別子、第4変換係数、および第3識別子を符号化する。
前記第3識別子は、前記現在シーケンスにおける画像ブロックが前記予測モード導出モードと前記第4変換を同時に使用することを許容することを識別することに用いられる。
いくつかの実施例では、S440は、以下を含むことができる。
前記現在ブロックの高さ及び/または幅が第1閾値以上である場合、前記第3変換係数に対して第4変換を実行して、前記第4変換係数を取得する。
いくつかの実施例では、S440の前に、前記方法400は、以下をさらに含むことができる。
前記第4変換が使用する変換行列群を決定する。
いくつかの実施例では、前記第4変換が使用する変換行列群は、プレーナモードまたは直流DCモードに適合する変換行列群と同じである。
いくつかの実施例では、第4変換が使用する変換行列群を決定することは、以下を含むことができる。
第1イントラ予測モードと第2イントラ予測モードに基づいて、第3イントラ予測モードを決定する。
前記第4変換が使用する変換行列群は、前記第3イントラ予測モードに適合する変換行列群と同じである。
いくつかの実施例では、前記第1イントラ予測モードおよび前記第2イントラ予測モードに基づいて、第3イントラ予測モードを決定することは、
前記第1イントラ予測モードと前記第2イントラ予測モードのうちのデフォルト予測モードを前記第3イントラ予測モードに決定すること、または、
前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定すること、または、
前記第1イントラ予測モードのタイプと前記第2イントラ予測モードのタイプに基づいて、前記第3イントラ予測モードを決定すること、または、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて、前記第3イントラ予測モードを決定することを含む。
いくつかの実施例では、前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定することは、
前記第1イントラ予測モードと前記第2イントラ予測モードのうちの重みが最も大きいイントラ予測モードを前記第3イントラ予測モードに決定することを含む。
いくつかの実施例では、前記第1イントラ予測モードのタイプと前記第2イントラ予測モードのタイプに基づいて、前記第3イントラ予測モードを決定することは、
前記第1イントラ予測モードおよび前記第2イントラ予測モードは、角度予測モードと非角度予測モードを含む場合、角度予測モードを前記第3イントラ予測モードに決定することを含む。
いくつかの実施例では、第1イントラ予測モードの予測角度および第2イントラ予測モードの予測角度に基づいて、第3イントラ予測モードを決定することは、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値以下である場合、第1予測角度に対応するイントラ予測モードを前記第3イントラ予測モードに決定することであって、前記第1予測角度は、前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて決定されることと、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値より大きい場合、プレーナモードまたは直流DCモードを前記第3イントラ予測モードに決定することを含む。
いくつかの実施例では、前記第4変換が使用する変換行列群を決定することは、
前記予測モード導出モードに適合する変換行列群を、第4変換が使用する変換行列群に決定することを含む。
いくつかの実施例では、前記第4変換は、前記現在ブロックにおける斜め方向に沿うテクスチャを処理することに用いられ、前記第3変換は、前記現在ブロックにおける水平方向および鉛直方向に沿うテクスチャを処理することに用いられる。
符号化方法は、復号化方法の逆のプロセスとして理解できることを理解されたい。したがって、符号化方法400の具体的な方案は、復号化方法300の関連内容を参照することができる。説明の便宜上、本願では詳しく説明しない。
以上、添付図面を参照しながら本願の好適な実施例について詳細に説明したが、本願はその技術的思想の範囲内において上記実施例の具体的な内容に限定されるものではない。これらの簡易な修正は、いずれも本願の保護範囲に属する。例えば、上記記載に係る特定の実施例で説明された各特定の技術的特徴は、矛盾することなく任意の適切な方法で組み合わせることができる。別の例として、本願の思想に反しない限り、本願の様々な実施例を任意に組み合わせて実施することも可能である。また、本願の様々な方法の実施例において、上記記載に係るプロセスの順番の大きさは、各プロセスの実行順序を意味しなく、その機能および内部のロジックによって決定されるべきであり、本願の実施例をいかなる制限も構成しないことも理解されたい。
上記には、本願の方法の実施例について詳細に説明し、本願の装置の実施例については図18から図20を参照しながら、以下に詳細に説明する。
図18は、本願の実施例のデコーダ500の概略ブロック図である。
図18に示すように、前記デコーダ500は、
コードストリームを復号化して現在ブロックの第1変換係数を取得することに用いられる復号化ユニット510と、
前記第1変換係数に対して第1変換を実行して、前記現在ブロックの第2変換係数を取得し、前記第2変換係数に対して第2変換を実行して、前記現在ブロックの残差ブロックを取得する変換ユニット520と、
予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて、前記現在ブロックに対して予測し、前記現在ブロックの予測ブロックを取得することに用いられる予測ユニット530と、
前記現在ブロックの予測ブロックと前記現在ブロックの残差ブロックに基づいて、前記現在ブロックの再構成ブロックを取得することに用いられる再構成ユニット540と、を含む。
いくつかの実施例では、前記予測モード導出モードは、デコーダ側イントラモード導出モードまたはテンプレートベースのイントラモード導出モードを含む。
いくつかの実施例では、前記変換ユニット520は、
コードストリームを復号化して、第1識別子と第2識別子を取得し、
前記第1識別子が、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子が、前記第1変換を使用して前記現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、前記第1変換係数に対して第1変換を実行して、前記第2変換係数を取得することに用いられる。
いくつかの実施例では、前記変換ユニット520は、
前記第1識別子が、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子が、前記第1変換を使用して前記現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、前記コードストリームを復号化して第3識別子が取得し、
前記第3識別子は、前記現在シーケンスにおける画像ブロックが前記予測モード導出モードと前記第1変換を同時に使用できることを識別することに用いられる場合、前記第1変換係数に対して第1変換を実行して、前記第2変換係数を取得することに用いられる。
いくつかの実施例では、前記変換ユニット520は、
前記第1識別子が、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子が、前記第1変換を使用して前記現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、前記現在ブロックの高さ及び/または幅が第1閾値以上であるとき、前記第1変換係数に対して前記第1変換を実行して、前記第2変換係数を取得することに用いられる。
いくつかの実施例では、前記変換ユニット520は、前記第2変換係数に対して前記第2変換を実行し、前記現在ブロックの残差ブロックを取得する前に、
前記第1変換が使用する変換行列群を決定することにさらに用いられる。
いくつかの実施例では、前記第1変換が使用する変換行列群は、プレーナモードまたは直流DCモードに適合する変換行列群と同じであることに用いられる。
いくつかの実施例では、前記変換ユニット520は、
前記第1イントラ予測モードと前記第2イントラ予測モードに基づいて、前記第3イントラ予測モードを決定することにさらに用いられる。
前記第1変換が使用する変換行列群は、前記第3イントラ予測モードに適合する変換行列群と同じである。
いくつかの実施例では、前記変換ユニット520は、
前記第1イントラ予測モードと前記第2イントラ予測モードのうちのデフォルト予測モードを前記第3イントラ予測モードに決定すること、または、
前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定すること、または、
前記第1イントラ予測モードのタイプと前記第2イントラ予測モードのタイプに基づいて、前記第3イントラ予測モードを決定すること、または、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて、前記第3イントラ予測モードを決定することに用いられる。
いくつかの実施例では、前記変換ユニット520は、
前記第1イントラ予測モードと前記第2イントラ予測モードのうちの重みが最も大きいイントラ予測モードを前記第3イントラ予測モードに決定することに用いられる。
いくつかの実施例では、前記変換ユニット520は、
前記第1イントラ予測モードおよび前記第2イントラ予測モードが角度予測モードと非角度予測モードを含む場合、前記角度予測モードを前記第3イントラ予測モードに決定することに用いられる。
いくつかの実施例では、前記変換ユニット520は、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値以下である場合、前記第1予測角度に対応するイントラ予測モードを前記第3イントラ予測モードに決定することであって、前記第1予測角度は、前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて決定されることと、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が前記第2閾値より大きい場合、プレーナモードまたは直流DCモードを前記第3イントラ予測モードに決定することに用いられる。
いくつかの実施例では、前記変換ユニット520は、
前記予測モード導出モードに適合する変換行列群を前記第1変換が使用する変換行列群に決定することに用いられる。
いくつかの実施例では、前記第1変換は、現在ブロックにおける斜め方向に沿うテクスチャを処理することに用いられ、前記第2変換は、現在ブロックにおける水平方向および鉛直方向に沿うテクスチャを処理することに用いられる。
図19は、本願の実施例のエンコーダ600の概略ブロック図である。
図19に示すように、エンコーダ600は、
予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて現在ブロックに対して予測し、前記現在ブロックの予測ブロックを取得することに用いられる予測ユニット610と、
前記現在ブロックの予測ブロックに基づいて、前記現在ブロックの残差ブロックを取得することに用いられる残差ユニット620と、
前記現在ブロックの残差ブロックに対して第3変換を実行して、前記現在ブロックの第3変換係数を取得し、
前記第3変換係数に対して第4変換を実行して、前記現在ブロックの第4変換係数を取得することに用いられる変換ユニット630と、
前記第4変換係数に対して符号化することに用いられる符号化ユニット640と、を含む。
いくつかの実施例では、前記予測モード導出モードは、デコーダ側イントラモード導出モードまたはテンプレートベースのイントラモード導出モードを含む。
いくつかの実施例では、前記符号化ユニット640は、
第1識別子、第2識別子、および第4変換係数に対して符号化することに用いられ、
前記第1識別子は、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子は、前記第4変換が現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる。
いくつかの実施例では、前記符号化ユニット640は、
第1識別子、第2識別子、第4変換係数、および第3識別子を符号化することに用いられ、
前記第3識別子は、現在シーケンスにおける画像ブロックが予測モード導出モードと第4変換を同時に使用することを許容することを識別することに用いられる。
いくつかの実施例では、前記変換ユニット630は、
前記現在ブロックの高さ及び/または幅が第1閾値以上である場合、前記第3変換係数に対して前記第4変換を実行して、前記第4変換係数を取得することに用いられる。
いくつかの実施例では、前記変換ユニット630は、前記第3変換係数に対して第4変換を実行し、前記現在ブロックの第4変換係数を取得する前に、
前記第4変換が使用する変換行列群を決定することに用いられる。
いくつかの実施例では、前記第4変換が使用する変換行列群は、プレーナモードまたは直流DCモードに適合する変換行列群と同じである。
いくつかの実施例では、前記変換ユニット630は、
前記第1イントラ予測モードと前記第2イントラ予測モードに基づいて、前記第3イントラ予測モードを決定する。
前記第4変換が使用する変換行列群は、前記第3イントラ予測モードに適合する変換行列群と同じである。
いくつかの実施例では、前記変換ユニット630は、
前記第1イントラ予測モードと前記第2イントラ予測モードのうちのデフォルト予測モードを前記第3イントラ予測モードに決定すること、または、
前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定すること、または、
前記第1イントラ予測モードのタイプと前記第2イントラ予測モードのタイプに基づいて、前記第3イントラ予測モードを決定すること、または、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて、前記第3イントラ予測モードを決定することに用いられる。
いくつかの実施例では、前記変換ユニット630は、
前記第1イントラ予測モードと前記第2イントラ予測モードのうちの重みが最も大きいイントラ予測モードを前記第3イントラ予測モードに決定することに用いられる。
いくつかの実施例では、前記変換ユニット630は、
前記第1イントラ予測モードおよび前記第2イントラ予測モードが角度予測モードと非角度予測モードを含む場合、前記角度予測モードを第3イントラ予測モードに決定することに用いられる。
いくつかの実施例では、前記変換ユニット630は、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値以下である場合、前記第1予測角度に対応するイントラ予測モードを前記第3イントラ予測モードに決定することであって、前記第1予測角度は、前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて決定され、
前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値より大きい場合、プレーナモードまたは直流DCモードを前記第3イントラ予測モードに決定することに用いられる。
いくつかの実施例では、前記変換ユニット630は、
前記予測モード導出モードに適合する変換行列群を、前記第4変換が使用する変換行列群に決定することに用いられる。
いくつかの実施例では、前記第4変換は、現在ブロックにおける斜め方向に沿うテクスチャを処理することに用いられ、前記第3変換は、現在ブロックにおける水平方向および鉛直方向に沿うテクスチャを処理することに用いられる。
装置の実施例と方法の実施例は互いに対応して、類似する説明が方法の実施例を参照することができることを理解されたい。繰り返しを避けるため、ここでは詳しく説明しない。具体的には、図18に示されるデコーダ500は、本願の実施例の方法300を実行する際の対応する主体に対応することができ、デコーダ500における各ユニットの前述および他の動作及び/または機能は、それぞれ、方法300などの各方法における対応のプロセスを実現するためである。類似的に、図19に示されるエンコーダ600は、本願の実施例の方法400を実行する際の対応する主体に対応することができ、即ち、エンコーダ600の各ユニットの前述及び他の動作及び/または機能は、それぞれ、方法400などの各方法における対応するプロセスを実現するためである。
また、本願の実施例に含まれるデコーダ500またはエンコーダ600の各ユニットは、別々または全体的に1つまたはいくつかの他のユニットを結合して形成することができ、またはユニットのある(いくつか)をより小さな機能を有する複数のユニッさらに分解することができることも理解されたい。ここで、本願の実施例の技術的効果の実現に影響を与えることなく、同じ動作を達成することができる。上記のユニットは論理的な機能に基づいて分割されており、実際の実装では、1つのユニットの機能を複数のユニットで実現したり、複数のユニットの機能を1つのユニットで実現したりすることもできる。本願の他の実施例では、デコーダ500またはエンコーダ600は、他のユニットを含んでもよく、実際の応用例では、これらの機能は、他のユニットの支援を受けて実現されてもよく、複数のユニットが協働して実現されてもよい。本願の別の実施例によれば、中央処理装置(CPU)、ランダムアクセス記憶媒体(RAM)、読み取り専用メモリ(ROM)などの処理要素および記憶要素を含む汎用コンピュータを含む汎用コンピュータ装置が提供される。対応する方法に含まれる各ステップを実行することができるコンピュータプログラム(プログラムコードを含む)を実行して、本願の実施例に係るデコーダ500またはエンコーダ600を構成し、符号化方法または復号化方法を実現する。コンピュータプログラムは、例えばコンピュータ読み取り可能な記憶媒体に記録され、コンピュータ読み取り可能な記憶媒体を介して電子機器にロード・実行されて本願の実施例の対応する方法を実現することができる。
言い換えると、上記の各部は、ハードウェアで実現することもできるし、ソフトウェアの命令で実現することもできるし、ソフトウェアとハードウェアとの組み合わせで実現することもできる。具体的には、本願実施例の方法実施例におけるステップは、プロセッサ内のハードウェアの集積論理回路および/またはソフトウェアの形態の命令によって完成されてもよく、本願実施例に開示された方法と連動する方法のステップは、ハードウェア復号プロセッサに直接具現化されてもよく、または復号プロセッサ内のハードウェアとソフトウェアの組み合わせで実行されてもよい。選択的に、ソフトウェアは、ランダムアクセスメモリ、フラッシュメモリ、読み取り専用メモリ、プログラマブル読み取り専用メモリ、電気的に消去可能なプログラマブルメモリ、レジスタなどの当分野で周知した記憶媒体に配置される。該当記憶媒体はメモリ内に配置され、プロセッサはメモリにおける情報を読み取り、ハードウェアと組み合わせて上記の方法の実施例のステップを完成する。
図20は、本願の一実施例により提供される電子機器700の概略構造図である。
図20に示すように、電子機器700は、プロセッサ710とコンピュータ読み取り可能な記憶媒体720を少なくとも含む。プロセッサ710およびコンピュータ読み取り可能な記憶媒体720は、バスまたは他の手段を通じて接続され得る。コンピュータ読み取り可能な記憶媒体720は、コンピュータプログラム721を記憶することに用いられ、コンピュータプログラム721はコンピュータ命令を含み、プロセッサ710は、コンピュータ読み取り可能な記憶媒体720に記憶されたコンピュータ命令を実行することに用いられる。プロセッサ710は、電子機器700のコンピューティングカーネルおよび制御カーネルである。プロセッサ710は、1つまたは複数のコンピュータ命令を実現するのに適しており、特に、1つまたは複数のコンピュータ命令をロードして実行して、対応する方法フローまたは対応する機能を実現するように構成される。
例示として、プロセッサ710は、中央処理装置(Central Processing Unit、CPU)と呼ばれてもよい。プロセッサ710は、汎用プロセッサ、デジタル信号プロセッサ(Digital Signal Processor、DSP)、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、およびフィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA)、または他のプログラマブルロジックデバイス、ディスクリートゲートまたはトランジスタロジックデバイス、ディスクリートハードウェア成分などを含むことができるが、これらに限定されない。
例示として、コンピュータ読み取り可能な記憶媒体720は、高速RAMメモリ、または少なくとも1つのディスクメモリなどの不揮発性メモリ(Non-volatile Memory)であってもよく、選択的に少なくとも1つのディスクメモリであってもよい。選択的に、前述のプロセッサ710から離れた場所に配置されるコンピュータ読み取り可能な記憶媒体であってもよい。具体的には、コンピュータ読み取り可能な記憶媒体720には、揮発性メモリ及び/または不揮発性メモリが含まれるが、これらに限定されない。その中で、不揮発性メモリは、読み取り専用メモリ(Read-Only Memory、ROM)、プログラマブル読み取り専用メモリ(Programmable ROM、PROM)、消去可能なプログラマブル読み取り専用メモリ(Erasable PROM、EPROM)、電気的にリムーバブルプログラム可能な読み取り専用メモリ(Electrically EPROM、EEPROM)またはフラッシュメモリであってもよい。揮発性メモリは、外部キャッシュとしてランダムアクセスメモリ(Random Access Memory、RAM)を使用してもよい。例として、限定的な説明ではないが、スタティックランダムアクセスメモリ(Static RAM、SRAM)、ダイナミックランダムアクセスメモリ(Dynamic RAM、DRAM)、同期ダイナミックランダムアクセスメモリ(Synchronous DRAM、SDRAM)、ダブルコードストリーム同期ダイナミックランダムアクセスメモリ(Double Data Rate SDRAM、DDRS DRAM)、拡張同期ダイナミックランダムアクセスメモリ(Enhanced SDRAM、ESDRAM)、同期リンクダイナミックランダムアクセスメモリ(synch link DRAM、SLDRAM)、およびダイレクトバスランダムアクセスメモリ(Direct Rambus RAM、DR RAM))との多くの形式のRAMが利用可能である。
一実装形態では、該当電子機器700は、本願の実施例に係るエンコーダまたは符号化フレームワークであってもよく、コンピュータ読み取り可能な記憶媒体720は、第1コンピュータ命令をを記憶する。記憶媒体720に記憶された第1コンピュータ命令は、プロセッサ710によってロード・実行されることにより、本願の実施例によって提供される符号化方法の対応するステップを実現することに用いられる。言い換えると、コンピュータ読み取り可能な記憶媒体720における第1コンピュータ命令は、プロセッサ710によって対応するステップがロード・実行される。繰り返しを避けるため、ここでは詳しく説明しない。
一実装形態では、該当電子機器700は、本願の実施例に係るデコーダまたは復号化フレームワークであってもよく、コンピュータ読み取り可能な記憶媒体720は、第2コンピュータ命令を記憶する。記憶媒体720に記憶された第2コンピュータ命令は、プロセッサ710によってロードされ、実行されることにより、本願の実施例によって提供される復号化方法の対応するステップを実現することに用いられる。言い換えると、コンピュータ読み取り可能な記憶媒体720における第2コンピュータ命令は、プロセッサ710によって対応するステップがロード・実行される。繰り返しを避けるため、ここでは詳しく説明しない。
本願の別の態様によれば、本願の実施例は、上記記載に係るエンコーダとデコーダとを含む符号化・復号化システムも提供する。
本願の別の態様によれば、本願の実施例は、コンピュータ読み取り可能な記憶媒体(Memory)も提供する。コンピュータ読み取り可能な記憶媒体は、電子機器700におけるメモリデバイスであり、プログラムおよびデータを記憶することに用いられる。例えば、コンピュータ読み取り可能な記憶媒体720である。ここで、コンピュータ読み取り可能な記憶媒体720は、電子機器700に内蔵された記憶媒体を含み得るが、電子機器700がサポートする拡張記憶媒体も含み得る。コンピュータ読み取り可能な記憶媒体は、電子機器700のオペレーティングシステムを記憶する記憶空間を提供する。さらに、プロセッサ710によってロード・実行されることに適する1つ以上のコンピュータ命令も記憶空間に記憶される。これらのコンピュータ命令は、1つ以上のコンピュータプログラム721(プログラムコードを含む)であってもよい。
本願の別の態様によれば、コンピュータ読み取り可能な記憶媒体に記憶されたコンピュータ命令を含むコンピュータプログラム製品またはコンピュータプログラムが提供される。例えば、コンピュータプログラム721である。このとき、電子機器700は、コンピュータであってもよい。プロセッサ710は、コンピュータ読み取り可能な記憶媒体720からコンピュータ命令を読み取る。これにより、コンピュータは、上記の選択的な態様に提供された符号化方法または復号化方法を実行する。
言い換えると、ソフトウェアにより実現される場合、その全体または一部がコンピュータプログラム製品の形で実現されてもよい。コンピュータプログラム製品には、1つまたは複数のコンピュータ命令が含まれている。コンピュータプログラム命令がコンピュータにロード・実行されると、本願の実施例の処理の全部または一部が実行され、または本願の実施例の機能が実現される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または他のプログラム可能なデバイスであってもよい。コンピュータ命令は、あるコンピュータ読み取り可能な記憶媒体に記憶されたり、あるコンピュータ読み取り可能な記憶媒体から別のコンピュータ読み取り可能な記憶媒体に送信されたりすることがある。例えば、コンピュータ命令は、有線(同軸ケーブル、光ファイバー、デジタルユーザ線(digital subscriber line、DSL)など)または無線(赤外線、無線、マイクロ波など)手段を介してウェブサイト、コンピュータ、サーバー、またはデータセンターから別のウェブサイト、コンピュータ、サーバー、またはデータセンターに送信することができる。
当業者は、本明細書に開示される実施例に関連して説明される各例のユニットおよびプロセスステップは、電子ハードウェア、またはコンピュータソフトウェアと電子ハードウェアの組み合わせによって実現されることを理解することができる。これらの機能がハードウェアで実行されるかソフトウェアで実行されるかは、特定のアプリケーションと技術ソリューションの設計制約条件次第である。当業者は、特定の用途ごとに異なる方法を使用して説明された機能を実現することができるが、そのような実現は本願の範囲を超えるものとみなされるべきではない。
なお、上記の内容は本願の特定の実施例にすぎず、本願の保護範囲はこれに限定されなく、当業者であれば、開示された技術的範囲内で容易に想到できる変更または置換は、本願の保護範囲に含まれるものとする。したがって、本願の保護範囲は請求の範囲の保護範囲に従うべきである。

Claims (34)

  1. 復号化方法であって、
    コードストリームを復号化して、現在ブロックの第1変換係数を取得するステップと、
    前記第1変換係数に対して第1変換を実行して、前記現在ブロックの第2変換係数を取得するステップと、
    前記第2変換係数に対して第2変換を実行して、前記現在ブロックの残差ブロックを取得するステップと、
    予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて、前記現在ブロックに対して予測し、前記現在ブロックの予測ブロックを取得するステップと、
    前記現在ブロックの予測ブロックと前記現在ブロックの残差ブロックに基づいて、前記現在ブロックの再構成ブロックを取得するステップと、を含む、
    ことを特徴とする復号化方法。
  2. 前記予測モード導出モードは、デコーダ側イントラモード導出モードまたはテンプレートベースのイントラモード導出モードを含む、
    ことを特徴とする請求項1に記載の方法。
  3. 前記第2変換係数に対して第2変換を実行して前記現在ブロックの残差ブロックを取得するステップは、
    前記コードストリームを復号化して、第1識別子と第2識別子を取得するステップと、
    前記第1識別子が、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子が、前記第1変換を使用して前記現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、前記第1変換係数に対して第1変換を実行して、前記第2変換係数を取得するステップと、を含む、
    ことを特徴とする請求項1または2に記載の方法。
  4. 前記第1変換係数に対して第1変換を実行して、前記現在ブロックの第2変換係数を取得するステップは、
    前記第1識別子が、予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子が、前記第1変換を使用して前記現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、前記コードストリームを復号化して第3識別子を取得するステップと、
    前記第3識別子が、現在シーケンスにおける画像ブロックが予測モード導出モードと第1変換を同時に使用できることを許容することを識別することに用いられる場合、前記第1変換係数に対して第1変換を実行して、前記現在ブロックの第2変換係数を取得するステップと、を含む、
    ことを特徴とする請求項3に記載の方法。
  5. 前記第1変換係数に対して第1変換を実行して、前記現在ブロックの第2変換係数を取得するステップは、
    前記第1識別子が、前記予測モード導出モードを使用して前記現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子が、前記第1変換を使用して前記現在シーケンスにおける画像ブロックを変換することを許容することを識別することに用いられる場合、前記現在ブロックの高さ及び/または幅が第1閾値以上であるとき、前記第1変換係数に対して第1変換を実行して、前記第2変換係数を取得するステップ、を含む、
    ことを特徴とする請求項3に記載の方法。
  6. 前記第2変換係数に対して第2変換を実行して、前記現在ブロックの残差ブロックを取得するステップの前に、前記方法は、
    前記第1変換が使用する変換行列群を決定するステップ、をさらに含む、
    ことを特徴とする請求項1~5のいずれかに記載の方法。
  7. 前記第1変換が使用する変換行列群は、プレーナモードまたは直流DCモードに適合する変換行列群と同じである、
    ことを特徴とする請求項6に記載の方法。
  8. 前記第1変換が使用する変換行列群を決定するステップは、
    前記第1イントラ予測モードと前記第2イントラ予測モードに基づいて、前記第3イントラ予測モードを決定するステップであって、前記第1変換が使用する変換行列群は、前記第3イントラ予測モードに適合する変換行列群と同じであるステップを含む、
    ことを特徴とする請求項6に記載の方法。
  9. 前記第1イントラ予測モードおよび前記第2イントラ予測モードに基づいて、第3イントラ予測モードを決定するステップは、
    前記第1イントラ予測モードと前記第2イントラ予測モードのうちのデフォルト予測モードを前記第3イントラ予測モードに決定するステップ、または、
    前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定するステップ、または、
    前記第1イントラ予測モードのタイプと前記第2イントラ予測モードのタイプに基づいて、前記第3イントラ予測モードを決定するステップ、または、
    前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて、前記第3イントラ予測モードを決定するステップ、を含む、
    ことを特徴とする請求項8に記載の方法。
  10. 前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定するステップは、
    前記第1イントラ予測モードと前記第2イントラ予測モードのうちの重みが最も大きいイントラ予測モードを前記第3イントラ予測モードに決定するステップを含む、
    ことを特徴とする請求項9に記載の方法。
  11. 前記第1イントラ予測モードのタイプおよび前記第2イントラ予測モードのタイプに基づいて、前記第3イントラ予測モードを決定するステップは、
    前記第1イントラ予測モードおよび前記第2イントラ予測モードが角度予測モードと非角度予測モードを含む場合、前記角度予測モードを前記第3イントラ予測モードに決定するステップを含む、
    ことを特徴とする請求項9に記載の方法。
  12. 前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて、前記第3イントラ予測モードを決定するステップは、
    前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値以下である場合、前記第1予測角度に対応するイントラ予測モードを前記第3イントラ予測モードに決定するステップであって、前記第1予測角度は、前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて決定されるステップと、
    前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が前記第2閾値より大きい場合、プレーナモードまたは直流DCモードを前記第3イントラ予測モードに決定するステップと、を含む、
    ことを特徴とする請求項9に記載の方法。
  13. 前記第1変換が使用する変換行列群を決定するステップは、
    前記予測モード導出モードに適合する変換行列群を、前記第1変換が使用する変換行列群に決定するステップを含む、
    ことを特徴とする請求項6に記載の方法。
  14. 前記第1変換は、前記現在ブロックにおける斜め方向に沿ったテクスチャを処理することに用いられ、前記第2変換は、前記現在ブロックにおける水平方向および鉛直方向に沿うテクスチャを処理することに用いられる、
    ことを特徴とする請求項1~13のいずれかに記載の方法。
  15. 符号化方法であって、
    予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて現在ブロックに対して予測し、前記現在ブロックの予測ブロックを取得するステップと、
    前記現在ブロックの予測ブロックに基づいて、前記現在ブロックの残差ブロックを取得するステップと、
    前記現在ブロックの残差ブロックに対して第3変換を実行して、前記現在ブロックの第3変換係数を取得するステップと、
    前記第3変換係数に対して第4変換を実行して、前記現在ブロックの第4変換係数を取得するステップと、
    前記第4変換係数に対して符号化するステップと、を含む、
    ことを特徴とする符号化方法。
  16. 前記予測モード導出モードは、デコーダ側イントラモード導出モードまたはテンプレートベースのイントラモード導出モードを含む、
    ことを特徴とする請求項15に記載の方法。
  17. 前記第4変換係数に対して符号化するステップは、
    第1識別子、第2識別子、および第4変換係数に対して符号化するステップであって、前記第1識別子は、予測モード導出モードを使用して現在シーケンスにおける画像ブロックを予測することを許容することを識別することに用いられ、前記第2識別子は、第4変換を使用して現在シーケンスにおける画像ブロックを変換することを許容することを識別するステップを含む、
    ことを特徴とする請求項15または16に記載の方法。
  18. 前記第1識別子、前記第2識別子、および前記第4変換係数に対して符号化するステップは、
    第1識別子、第2識別子、第4変換係数、および第3識別子を符号化するステップであって、前記第3識別子は、前記現在シーケンスにおける画像ブロックが前記予測モード導出モードと前記第4変換を同時に使用することを許容することを識別するステップを含む、
    ことを特徴とする請求項17に記載の方法。
  19. 前記第3変換係数に対して第4変換を実行して、前記現在ブロックの前記第4変換係数を取得するステップは、
    前記現在ブロックの高さ及び/または幅が第1閾値以上である場合、前記第3変換係数に対して前記第4変換を実行して、前記第4変換係数を取得するステップを含む、
    ことを特徴とする請求項15~18のいずれかに記載の方法。
  20. 前記第3変換係数に対して第4変換を実行して、前記現在ブロックの前記第4変換係数を取得するステップの前に、前記方法は、
    前記第4変換が使用する変換行列群を決定するステップを更に含む、
    ことを特徴とする請求項15~19のいずれかに記載の方法。
  21. 前記第4変換が使用する変換行列群は、プレーナモードまたは直流DCモードに適合する変換行列群と同じである、
    ことを特徴とする請求項20に記載の方法。
  22. 前記第4変換が使用する変換行列群を決定するステップは、
    前記第1イントラ予測モードと前記第2イントラ予測モードに基づいて、第3イントラ予測モードを決定するステップであって、前記第4変換が使用する変換行列群は、前記第3イントラ予測モードに適合する変換行列群と同じであるステップを含む、
    ことを特徴とする請求項20に記載の方法。
  23. 前記第1イントラ予測モードおよび前記第2イントラ予測モードに基づいて、第3イントラ予測モードを決定するステップは、
    前記第1イントラ予測モードと前記第2イントラ予測モードのうちのデフォルト予測モードを前記第3イントラ予測モードに決定するステップ、または、
    前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定するステップ、または、
    前記第1イントラ予測モードのタイプと前記第2イントラ予測モードのタイプに基づいて、前記第3イントラ予測モードを決定するステップ、または、
    前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて、前記第3イントラ予測モードを決定するステップ、を含む、
    ことを特徴とする請求項22に記載の方法。
  24. 前記第1イントラ予測モードの重み及び/または前記第2イントラ予測モードの重みに基づいて、前記第3イントラ予測モードを決定するステップは、
    前記第1イントラ予測モードと前記第2イントラ予測モードのうちの重みが最も大きいイントラ予測モードを前記第3イントラ予測モードに決定するステップを含む、
    ことを特徴とする請求項23に記載の方法。
  25. 前記第1イントラ予測モードのタイプおよび前記第2イントラ予測モードのタイプに基づいて、前記第3イントラ予測モードを決定するステップは、
    前記第1イントラ予測モードおよび前記第2イントラ予測モードが角度予測モードと非角度予測モードを含む場合、前記角度予測モードを前記第3イントラ予測モードに決定するステップを含む、
    ことを特徴とする請求項23に記載の方法。
  26. 前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度に基づいて、前記第3イントラ予測モードを決定するステップは、
    前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値以下である場合、前記第1予測角度に対応するイントラ予測モードを前記第3イントラ予測モードに決定するステップであって、前記第1予測角度は、第1イントラ予測モードの予測角度と第2イントラ予測モードの予測角度に基づいて決定されるステップと、
    前記第1イントラ予測モードの予測角度と前記第2イントラ予測モードの予測角度との差の絶対値が第2閾値より大きい場合、プレーナモードまたは直流DCモードを前記第3イントラ予測モードに決定するステップと、を含む、
    ことを特徴とする請求項23に記載の方法。
  27. 前記第4変換が使用する変換行列群を決定するステップは、
    前記予測モード導出モードに適合する変換行列群を、前記第4変換が使用する変換行列群に決定するステップを含む、
    ことを特徴とする請求項20に記載の方法。
  28. 前記第4変換は、前記現在ブロックにおける斜め方向に沿ったテクスチャを処理することに用いられ、前記第3変換は、前記現在ブロックにおけるテクスチャを処理することに用いられる、
    ことを特徴とする請求項15~27のいずれかに記載の方法。
  29. デコーダであって、
    コードストリームを復号化して現在ブロックの第1変換係数を取得することに用いられる復号化ユニットと、
    前記第1変換係数に対して第1変換を実行して、前記現在ブロックの第2変換係数を取得し、前記第2変換係数に対して第2変換を実行して、前記現在ブロックの残差ブロックを取得する変換ユニットと、
    予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて、現在ブロックに対して予測して、前記現在ブロックの予測ブロックを取得することに用いられる予測ユニットと、
    前記現在ブロックの予測ブロックと、前記現在ブロックの残差ブロックとに基づいて、前記現在ブロックの再構成ブロックを取得することに用いられる再構成ユニットと、を含む、
    ことを特徴とするデコーダ。
  30. エンコーダであって、
    予測モード導出モードによって導出された第1イントラ予測モードと、第2イントラ予測モードとに基づいて、現在ブロックを予測し、前記現在ブロックの予測ブロックを取得することに用いられる予測ユニットと、
    前記現在ブロックの予測ブロックに基づいて、前記現在ブロックの残差ブロックを取得することに用いられる残差ユニットと、
    前記現在ブロックの残差ブロックに対して第3変換を実行して、前記現在ブロックの第3変換係数を取得し、
    前記第3変換係数に対して第4変換を実行して、前記現在ブロックの第4変換係数を取得することに用いられる変換ユニットと、
    前記第4変換係数に対して符号化することに用いられる符号化ユニットと、を含む、
    ことを特徴とするエンコーダ。
  31. 電子機器であって、
    コンピュータプログラムを実行するように構成されるプロセッサと、
    コンピュータ読み取り可能な記憶媒体であって、コンピュータ読み取り可能な記憶媒体に記憶されたコンピュータプログラムがプロセッサによって実行されるとき、請求項1~14のいずれかに記載の方法、または、請求項15~28のいずれかに記載の方法を実現する、
    ことを特徴とする電子機器。
  32. コンピュータプログラムを記憶することに用いられるコンピュータ読み取り可能な記憶媒体であって、コンピュータプログラムがコンピュータに請求項1~14のいずれか、または、請求項15~28のいずれかに記載の方法を実行させる、
    ことを特徴とするコンピュータ読み取り可能な記憶媒体。
  33. コンピュータプログラム/命令を含むコンピュータプログラム製品であって、前記コンピュータプログラム/命令がプロセッサによって実行されるとき、請求項1~14のいずれかに記載の方法、または、請求項15~28のいずれかに記載の方法を実現する、
    ことを特徴とするコンピュータプログラム製品。
  34. 請求項1~14のいずれかに記載の方法、または、請求項15~28のいずれかに記載の方法により生成されたものである、
    ことを特徴とするコードストリーム。
JP2024560810A 2022-04-12 2022-04-12 復号化方法、符号化方法、デコーダ、エンコーダ Pending JP2025512523A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/086448 WO2023197181A1 (zh) 2022-04-12 2022-04-12 解码方法、编码方法、解码器以及编码器

Publications (1)

Publication Number Publication Date
JP2025512523A true JP2025512523A (ja) 2025-04-17

Family

ID=88328719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024560810A Pending JP2025512523A (ja) 2022-04-12 2022-04-12 復号化方法、符号化方法、デコーダ、エンコーダ

Country Status (6)

Country Link
US (1) US20250039454A1 (ja)
EP (1) EP4510588A1 (ja)
JP (1) JP2025512523A (ja)
CN (1) CN119013989A (ja)
MX (1) MX2024012724A (ja)
WO (1) WO2023197181A1 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018199051A1 (ja) * 2017-04-25 2018-11-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法および復号方法
US10567801B2 (en) * 2018-03-07 2020-02-18 Tencent America LLC Method and apparatus for video coding with primary and secondary transforms
US10819979B2 (en) * 2018-09-06 2020-10-27 Tencent America LLC Coupled primary and secondary transform
WO2020216302A1 (en) * 2019-04-23 2020-10-29 Beijing Bytedance Network Technology Co., Ltd. Intra Prediction and Residual Coding
JP7477538B2 (ja) * 2019-06-25 2024-05-01 フラウンホファー ゲセルシャフト ツール フェールデルンク ダー アンゲヴァンテン フォルシュンク エー.ファオ. 行列ベースのイントラ予測および二次変換を使用したコーディング

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
BENJAMIN BROSS, ET AL.: ""Versatile Video Coding (Draft 5)"", DOCUMENT: JVET-N1001-V8, [ONLINE], vol. JVET-O0449 (version 2), JPN6025037594, 4 July 2019 (2019-07-04), ISSN: 0005686942 *
JIANLE CHEN, ET AL.: ""Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5)"", DOCUMENT: JVET-N1002-V2, [ONLINE], vol. JVET-N1002 (version 2), JPN6025037596, 11 June 2019 (2019-06-11), pages 1 - 5, ISSN: 0005686944 *
JIE ZHAO, ET AL.: ""EE2 Related - DIMD with implicitly derived multiple blending modes"", DOCUMENT: JVET-W0126, [ONLINE], vol. JVET-W0126 (version 2), JPN6025037599, 8 July 2021 (2021-07-08), pages 1 - 4, ISSN: 0005686947 *
MOHSEN ABDOLI, ET AL.: ""Non-CE3: Decoder-side Intra Mode Derivation with Prediction Fusion Using Planar"", DOCUMENT: JVET-O0449-V2, [ONLINE], vol. JVET-O0449 (version 2), JPN6025037600, 4 July 2019 (2019-07-04), pages 1 - 9, ISSN: 0005686948 *
MUHAMMED COBAN, ET AL.: ""Algorithm description of Enhanced Compression Model 3 (ECM 3)"", DOCUMENT: JVET-X2025-V2, [ONLINE], vol. JVET-X2025 (version 2), JPN6025037598, 7 January 2022 (2022-01-07), pages 1 - 9, ISSN: 0005686946 *
ZHIHUANG XIE, ET AL.: ""AHG 12: On signalling of intra template matching"", DOCUMENT: JVET-X0124-V2, [ONLINE], vol. JVET-X0124 (version 2), JPN6025037597, 5 October 2021 (2021-10-05), pages 1 - 5, ISSN: 0005686945 *
村上 篤道(外2名)編, 「高効率映像符号化技術 HEVC/H.265とその応用」, vol. 第1版, JPN6025037595, 25 February 2013 (2013-02-25), JP, pages 69 - 73, ISSN: 0005686943 *

Also Published As

Publication number Publication date
MX2024012724A (es) 2024-11-08
CN119013989A (zh) 2024-11-22
EP4510588A1 (en) 2025-02-19
WO2023197181A1 (zh) 2023-10-19
US20250039454A1 (en) 2025-01-30

Similar Documents

Publication Publication Date Title
TWI834773B (zh) 使用適應性迴路濾波器以編碼和解碼影像之一或多個影像部分的方法、裝置和電腦可讀儲存媒體
WO2023193253A1 (zh) 解码方法、编码方法、解码器以及编码器
JP2025513075A (ja) ビデオコーデック方法、装置、機器、システム、及び記憶媒体
JP7481332B2 (ja) デコードのための予測方法及びその装置、並びにコンピュータ記憶媒体
WO2023123398A1 (zh) 滤波方法、滤波装置以及电子设备
JP2025512523A (ja) 復号化方法、符号化方法、デコーダ、エンコーダ
JP2025520837A (ja) コーディング方法、エンコーダー、デコーダー及び記憶媒体
JP2025512019A (ja) コーディング方法及び装置、エンコーディングデバイス、デコーディングデバイス、並びに記憶媒体
US20250039453A1 (en) Decoding method, encoding method, decoder, and encoder
US20250039452A1 (en) Decoding method, encoding method, decoder, and encoder
US12395627B2 (en) Intra prediction method and decoder
WO2024007116A1 (zh) 解码方法、编码方法、解码器以及编码器
WO2023193254A1 (zh) 解码方法、编码方法、解码器以及编码器
WO2025199802A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
WO2025091378A1 (zh) 编解码方法、编解码器以及存储介质
WO2025147924A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
WO2025065696A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
TW202429888A (zh) 解碼方法、編碼方法、解碼器、編碼器、電子設備、儲存媒介、電腦程式產品和碼流
JP2025512375A (ja) ビデオ符号化方法及びビデオ復号方法、エンコーダ、デコーダ、並びに記憶媒体
JP2025512022A (ja) 符号化及び復号化方法、装置、符号化機器、復号化機器及び記憶媒体
CN119032561A (zh) 编解码方法、装置、编码设备、解码设备以及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241015

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20241015

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250912