本発明のフレーム内予測方法及び装置によれば、現在ブロックのフレーム内予測モードを導出し、複数の画素ラインのうち、前記現在ブロックのフレーム内予測に用いられる画素ラインを決定し、前記フレーム内予測モード及び前記決定された画素ラインに基づいて、前記現在ブロックのフレーム内予測を実行することができる。
本発明のフレーム内予測方法及び装置によれば、前記決定された画素ラインの第1参照画素に対してフィルタリングを実行することができる。
本発明のフレーム内予測方法及び装置によれば、フレーム内予測に用いられる第1参照画像に対してフィルタリングを実行するかどうかを指示する第1フラグに基づいて、前記フィルタリングを選択的に実行することができる。
本発明のフレーム内予測方法及び装置によれば、現在ブロックの符号化パラメータに基づいて、復号装置から、前記第1フラグを導出することができる。前記符号化パラメータは、ブロックサイズ、成分タイプ、フレーム内予測モード、又はサブブロックを単位とするフレーム内予測を実行するかどうかのうちの少なくとも1つを含んでもよい。
本発明のフレーム内予測方法及び装置によれば、前記フレーム内予測による前記現在ブロックの予測画素を補正することができる。
本発明のフレーム内予測方法及び装置によれば、前記補正は、前記現在ブロックの予測画素の位置に基づいて、前記補正に用いられる第2参照画素又は加重値のうちの少なくとも1つを決定することを更に含んでもよい。
本発明のフレーム内予測方法及び装置によれば、前記現在ブロックの画素ラインの位置、前記現在ブロックのフレーム内予測モード、又は前記現在ブロックのサブブロックを単位とするフレーム内予測を実行するかどうかのうちの少なくとも1つに基づいて、前記補正工程を選択的に実行することができる。
本発明のフレーム内予測方法及び装置によれば、現在ブロックのサブブロックを単位として前記フレーム内予測を実行し、分割を実行するかどうかを示す第2フラグ、分割方向情報、又は分割数情報のうちの少なくとも1つに基づいて前記サブブロックを決定することができる。
本発明のフレーム内予測方法及び装置によれば、所定のデフォルトモード又は複数のMPM候補に基づいて、前記フレーム内予測モードを導出することができる。
本発明は、種々の変更を実行することができ、且つ、種々の実施例を有する。ここで、図面を参照しながら、特定の実施例を説明する。しかしながら、本発明を特定の実施形態に限定するのではなく、本発明の思想および技術範囲に含まれる全ての変更、均等物又は代替物を含むと理解されなければならない。
第1、第2、A、Bのような用語を、様々な要素を記述するために本明細書において使用することができるとは言え、これらの要素は、これらの用語により限定されるべきではない。これらの用語は、素子同士を区別するためのものに過ぎない。例えば、本発明の範囲から逸脱することなく第1素子は、第2素子と呼ばれてもよく、また同様に、第2素子は、第1素子と呼ばれてもよい。用語「及び/又は」は、複数の関連アイテムの組み合わせ又は複数の関連アイテムのうちのいずれのアイテムを含んでもよい。
1つの素子がもう1つの素子に「接続」又は「結合」される場合、これは、もう1つの素子に直接的に接続又は結合されてもよいが、これらの間に他の素子が存在してもよいことが理解されるべきである。また、1つの素子がもう1つの素子に「直接接続」又は「直接結合」される場合、これらの間に他の素子が存在しないことが理解されるべきである。
本願に用いられる用語は、特定の実施例を説明するためのものに過ぎず、本発明を限定するものではない。文脈により明確に述べられていない限り、単数形は、複数形を含む。本願において、「含む」又は「有する」などの用語は、明細書に記載の特徴、数字、工程、動作、構造要素、部材又はこれらの組み合わせが存在することを意味するものであり、1つ又は1つ以上の他の特徴、数字、工程、動作、構造要素、部材又はこれらの組み合わせが存在するか又は付加される可能性を予め排除するものではない。
特に定義しない限り、本明細書に用いられる全ての用語は、技術的又は科学的用語を含み、当業者によって一般的に理解されるような意味と同じである。通常使用される辞書に定義されている用語は、関連技術の文脈上の意味に基づいて解釈されるべきであり、また、本願において明確に定義しない限り、想像される意味又は過度に形式的な意味で解釈されるべきではない。
ビデオ符号化装置及び復号装置は、パソコン(PC:Personal Computer)、ノートパソコン、パーソナルデジタルアシスタント(PDA:Personal Digital Assistant)、ポータブルマルチメディアプレイヤー(PMP:Portable Multimedia Player)、ポータブルゲーム機(PSP:Play Station Portable)、無線通信端末(Wireless Communication Terminal)、スマートフォン(Smart Phone)、テレビ、仮想現実機器(VR:Virtual Reality)、拡張現実機器(AR:Augmented Reality)、複合現実機器(MR:Mixed Reality)、ヘッドマウントディスプレイ(HMD:Head Mounted Display)、スマートグラス(Smart Glasses)などのようなユーザ端末であってもよく、又は、アプリケーションサーバ及びサービスサーバなどのようなサーバ端末であってもよい。それは、種々の装置を含んでもよい。例えば、通信装置は、種々の装置又は有線及び無線ネットワークと通信するための通信モデムなどを含む。メモリ(Memory)は、画像の符号化又は復号を行うか又は符号化又は復号を行うために、フレーム内予測又はフレーム間予測に用いられる種々のプログラム及びデータを記憶する。プロセッサ(Processor)は、プログラムを実行することで、コンピューティング及び制御を行う。また、画像の符号化装置によりビットストリームに符号化された画像は、リアルタイムまたは非リアルタイムに、インターネット、ローカルエリアネットワーク、無線LANネットワーク、WiBroネットワーク、移動体通信ネットワークなどのような有線及び無線通信ネットワーク(Network)又はケーブル、ユニバーサルシリアルバス(USB:Universal Serial Bus)等のような種々の通信インタフェースにより、画像の復号装置に伝送され、続いて、画像の復号装置により復号され、画像に復元されて再生される。
また、画像の符号化装置によりビットストリームに符号化された画像は、コンピュータ可読記憶媒体により、符号化装置から復号装置に伝送されてもよい。
前記画像の符号化装置及び画像の復号装置はそれぞれ、単独した装置であってもよいが、場合によって1つの画像の符号化/復号装置に構成されてもよい。この場合、画像の符号化装置の幾つかの構成は、画像の復号装置の幾つかの構成と実質的に同じである技術的要素は、少なくとも同一の構造を含むか又は同一の機能を実行することで実現される。
従って、技術的要素及びその操作原理等に関する下記詳細な説明において、技術要素に対する重複した説明を省略する。
また、画像の復号装置が、画像の符号化装置で実行される画像の符号化方法を復号に適用するコンピューティング装置に対応しているため、以下、画像の符号化装置を重点的に説明する。
コンピューティング装置は、画像の符号化方法及び/又は画像復号方法を実現させるためのプログラム又はソフトウェアモジュールを記憶するメモリと、前記メモリに接続されてプログラムを実行するプロセッサと、を備える。画像の符号化装置は、エンコーダと呼ばれてもよく、画像の復号装置は、デコーダと呼ばれてもよい。
一般的には、画像は、一連の静止画像(Still Image)となるように構成されてもよい。また、これらの静止画像は、ピクチャグループ(Group of Pictures:GOP)に分類されてもよく、各静止画像は、ピクチャと呼ばれてもよい。この場合、ピクチャは、プログレッシブ信号(Progressive)、インターレース信号(Interlace)におけるフレーム(Frame)及びフィールド(Field)のうちのいずれか1つを表すことができる。フレームを単位として符号化/復号を実行する場合、画像は、「フレーム」で表されてもよく、フィールドを単位として符号化/復号を実行する場合、画像は、「フィールド」で表されてもよい。本発明において、プログレッシブ信号を仮定して説明するが、インターレース信号にも適用可能である。上位概念として、GOP又はシーケンス(Sequence)等を単位としてもよい。また、各ピクチャは、スライス、tile、ブロックなどの所定の領域に分割されてもよい。また、1つのGOPは、Iピクチャ、Pピクチャ及びBピクチャのような単位を含んでもよい。Iピクチャは、参照ピクチャを用いることなくそれ自身によって符号化/復号するピクチャを指してもよい。また、Pピクチャ及びBピクチャは、参照ピクチャを用いて運動推定(Motion Estimation)及び運動補償(Motion Compensation)を行うことで符号化/復号するピクチャを指してもよい。一般的に、Pピクチャの場合、Iピクチャ及びPピクチャは、参照ピクチャとして用いられてもよい。Bピクチャの場合、Iピクチャ及びPピクチャは、参照ピクチャとして用いられてもよいが、上記定義は、符号化/復号の設定によって異なってもよい。
ここで、符号化/復号するために参照されるピクチャを参照ピクチャ(Reference Picture)と呼び、参照されるブロック又は画素を参照ブロック(Reference Block)及び参照画素(Reference Pixel)と呼ぶ。また、参照データ(Reference Data)は、空間ドメイン(Spatial Domain)の画素値だけではなく、周波数ドメイン(Frequency Domain)の係数値及び符号化/復号過程で生成、決定された種々の符号化/復号情報であってもよい。例えば、予測部におけるフレーム内予測関連情報又は運動関連情報、変換部/逆変換部における変換関連情報、量子化部/逆量子化部における量子化情報及び符号化部/復号部における符号化/復号関連情報(コンテキスト情報)、ループフィルタ部におけるフィルタリング関連情報などであってもよい。
画像を成す最小単位は、画素(Pixel)であってもよい。また、1つの画素を表すためのビット数は、ビット深度(Bit Depth)と呼ばれる。一般的には、ビット深度は、8ビットであってもよく、符号化の設定に応じて、より多くのビット深度をサポートすることができる。ビット深度は、色空間(Color Space)に基づいて、少なくとも1つのビット深度をサポートすることができる。また、画像の色フォーマット(Color Format)に基づいて、少なくとも1つの色空間を設定することができる。色フォーマットに基づいて、特定のサイズを有する1枚以上のピクチャ又は他のサイズを有する1枚以上のピクチャにより構成されてもよい。例えば、YCbCrが4:2:0である場合、輝度成分(該例においてYである)及び2つの色差成分(該例においてCb/Crである)から構成されてもよい。この場合、色差成分と輝度成分との構成比は、水平と垂直との比1:2であってもよい。もう1つの例として、4:4:4の場合、水平と垂直で同じ構成比となってもよい。上記例のように、ピクチャが1つ以上の色空間からなる場合、ピクチャを各色空間に分割することができる。
本発明において、幾つかの色フォーマット(該例においてYCbCrである)の幾つかの色空間(該例においてYである)に基づいて説明する。色フォーマットによる他の色空間に対して類似した操作(特定の色空間に依存した設定)を実行することができる。しかしながら、各色空間に一部の差異(特定の色空間から独立した設定)が生じる可能性もある。つまり、各色空間に依存する設定は、各成分の構成比に比例する設定、又はその構成比に依存する設定(例えば、4:2:0、4:2:2、4:4:4等)を意味してもよい。各色空間から独立した設定は、各成分の構成比と無関係な設定、又は対応する色空間のみに対する設定を意味してもよい。本発明において、エンコーダ/デコーダによって、幾つかの構成に対して、独立した設定又は従属設定を有してもよい。
画像の符号化過程に必要な設定情報又はシンタックス要素(Syntax Element)は、ビデオ、シーケンス、ピクチャ、スライス、tile、ブロックなどの単位レベルで決定されてもよく、ビデオパラメータセット(Video Parameter Set,VPS)、序列パラメータセット(Sequence Parameter Set,SPS)、画像パラメータセット(Picture Parameter Set,PPS)、スライスヘッダ、tileヘッダ、ブロックヘッダなどの単位でビットストリームに収録されて、エンコーダに伝送されてもよい。デコーダは、同一レベルの単位で解析(Parsing)を行い、エンコーダから伝送された設定情報を復元して画像復号プロセスに用いることができる。また、関連情報は、補足拡張情報(Supplement Enhancement Information,SEI)又はメタデータ(Meta data)等の形態で、ビットストリームに伝送されて解析されて使用に備える。各パラメータセットは、一意的なID値を有し、また、下位パラメータセットは、参照する上位パラメータセットのID値を有してもよい。例えば、下位パラメータセットは、1つ以上の上位パラメータセットのうち、同じID値を有する上位パラメータセットの情報を参照することができる。前記種々の単位の例における1つの単位が1つ以上の他の単位を含む場合、該単位は、上位単位と呼ばれてもよく、且つ含まれる単位は、下位単位と呼ばれてもよい。
前記単位で生成される設定情報は、各対応する単位において独立して設定される内容を含んでもよく、又は、前の単位、後の単位、又は上位単位の従属設定によって決定される内容を含んでもよい。ここで、従属設定は、フラグ情報で対応する単位の設定情報を表すと理解されてもよい(例えば、該1ビットフラグが1であると、実行し、0であると、実行しない)。該フラグ情報は、前の単位、後の単位、上位単位の設定を示す。本発明において、独立設定の例に基づいて設定情報を説明するが、現在単位の前、後又は上位単位の設定情報の内容に追加又は置き換える例を含んでもよい。
図1は、本発明の実施例による画像の符号化装置を示すブロック図である。図2は、本発明の実施例による画像の復号装置を示すブロック図である。
図1に示すように、画像の符号化装置は、予測部、減算部、変換部、量子化部、逆量子化部、逆変換部、加算部、ループフィルタ部、メモリ及び/又は符号化部を備えてもよい。また、上記構造のうちの幾つかの構造は、含まれてなくてもよく、必要に応じて、一部又は全てを選択的に含んでもよい。また、示されていない幾つかの他の構成を含んでもよい。
図2に示すように、画像の復号装置は、復号部、予測部、逆量子化部、逆変換部、加算部、ループフィルタ部及び/又はメモリを備えてもよい。また、上記構造のうちの幾つかの構造は、含まれてなくてもよく、必要に応じて、一部又は全てを選択的に含んでもよい。また、示されていない幾つかの他の構成を含んでもよい。
画像の符号化装置と画像の復号装置は、それぞれ単独した装置であってもよく、必要に応じて1つの画像の符号化/復号装置で構成されてもよい。この場合、画像の符号化装置の幾つかの構成は、画像の復号装置の幾つかの構成と実質的に同じである技術的要素は、少なくとも同一の構造を含むか又は同一の機能を実行することで実現される。従って、技術的要素及びその操作原理等に関する下記詳細な説明において、技術要素に対する重複した説明を省略する。また、画像の復号装置が、画像の符号化装置で実行される画像の符号化方法を復号に用いるコンピューティング装置に対応するため、以下、画像の符号化装置に関する説明に重点を置く。画像の符号化装置は、エンコーダと呼ばれてもよく、画像の復号装置は、デコーダと呼ばれてもよい。
予測部は、フレーム内予測を実行するフレーム内予測部と、フレーム間予測を実行するフレーム間予測部と、を備えてもよい。フレーム内予測は、現在ブロックの隣接ブロックの画素を参照画素としてフレーム内予測モードを決定し、フレーム内予測モードを利用して予測ブロックを生成することができる。フレーム間予測は、1つ以上の参照画像を利用して現在ブロックの運動情報を決定し、前記運動情報を利用して運動補償を実行し、予測ブロックを生成することができる。現在ブロック(符号化ユニット又は予測ユニット)に対して、フレーム内予測を用いるかそれともフレーム間予測を用いるかを決定し、また、各予測方法による具体的な情報(例えば、フレーム内予測モード、運動ベクトル、参照画像等)を決定することができる。この場合、符号化/復号の設定に基づいて、予測を実行する処理ユニットと、予測方法及び具体的な内容を決定する処理ユニットと、を決定することができる。例えば、予測ユニット(又は符号化部)により、予測方法、予測モード等を決定し、予測ブロックユニット(又は符号化ユニット、変換ユニット)により、予測を実行する。
減算部は、現在ブロックから予測ブロックを減算して残差ブロック(Residual Block)を生成する。つまり、減算部は、符号化対象の現在ブロックの各画素の画素値と予測器により生成された予測ブロックの各画素の予測画素値との差を算出し、残差ブロックを生成する。該残差ブロックは、画像における残差信号(Residual Signal)である。
変換部は、空間ドメインに属する信号を周波数ドメインに属する信号に変換することができる。変換処理により得られた信号は、変換係数(Transformed Coefficient)と呼ばれる。例えば、減算部から受け取られた残差信号を有する残差ブロックに対して変換を行うことで、変換係数を有する変換ブロックを得ることができるが、符号化設定に基づいて入力信号を決定する。これは、残差信号に限定されない。
変換部は、アダマール変換(Hadamard Transform)、離散サイン変換(DSTベースの変換:DST Based-Transform: Discrete Sine Transform)又は離散コサイン変換(DCTベースの変換:DCT Based-Transform: Discrete Cosine Transform)などのような変換技術を利用して残差ブロックを変換することができる。本発明は、これに限定されず、改良及び修正を行うための種々の変換技術を用いることができる。
例えば、前記変換のうちの少なくとも1つの変換技術をサポートすることができ、且つ、各変換技術において、少なくとも1つの細部変換技術をサポートする。この場合、少なくとも1つの細部変換技術は、各変換方法において異なる基底ベクトル(basis vector)の一部を設定する変換技術であってもよい。例えば、DSTベースの変換及びDCTベースの変換を変換技術とすることができる。DST場合、DST-I、DST-II、DST-III、DST-V、DST-VI、DST-VII、DST-VIIIなどの細部変換技術をサポートすることができる。DCTの場合、DCT-I、DCT-II、DCT-III、DCT-V、DCT-VI、DCT-VII、DCT-VIIIなどの細部変換技術をサポートすることができる。
前記変換の1つ(例えば、1つの変換技術及び1つの細部変換技術)を基本変換技術とすることができる。従って、付加変換技術(例えば、複数の変換技術、複数の細部変換技術)をサポートすることができる。シーケンス、ピクチャ、スライス、tile等を単位として、付加変換技術をサポートするかどうかを決定することができる。これにより、該単位で関連情報を生成することができる。また、変換技術の付加をサポートする場合、ブロックなどの単位で変換技術選択情報を決定し、関連情報を生成することができる。
水平/垂直方向に変換を実行することができる。例えば、変換における基底ベクトルを利用して水平方向に一次元変換を実行し、垂直方向に一次元変換を実行することで、二次元変換を実行する。これにより、空間ドメインの画素値を周波数ドメインに変換する。
また、水平/垂直方向の変換を自己適応的に実行することができる。詳しくは、少なくとも1つの符号化設定に基づいて、自己適応的変換を実行するかどうかを決定することができる。例えば、フレーム内予測の場合、予測モードが水平モードである場合、水平方向にDCT-Iを適用し、垂直方向にDST-Iを適用することができる。予測モードが垂直モードである場合、水平方向にDST-VIを適用し、垂直方向にDCT-VIを適用することができる。Diagonal down leftの場合、水平方向にDCT-IIを適用し、垂直方向にDCT-Vを適用することができる。Diagonal down rightの場合、水平方向にDST-Iを適用し、垂直方向にDST-VIを適用することができる。
変換ブロックのサイズ及び形状の各候補の符号化コストに基づいて、各変換ブロックのサイズ及び形状を決定することができる。決定された各変換ブロックの画像データ及び決定された各変換ブロックのサイズ及び形状などの情報に対して符号化を実行することができる。
変換形式における正方形を基本変換形式に変換することができ、また、付加の変換形式(例えば、矩形形状)をサポートすることができる。シーケンス、ピクチャ、スライス、tile等を単位として、付加の変換形式をサポートするかどうかを決定し、該単位で関連情報を生成することができる。ブロックなどの単位で変換形式選択情報を決定し、関連情報を生成することができる。
また、符号化情報に基づいて、サポートされる変換ブロック形式を決定することができる。この場合、符号化情報は、スライスタイプ、符号化モード、ブロックのサイズ及び形状、ブロック分割方式などに対応する。つまり、少なくとも1つの符号化情報に基づいて、変換形式をサポートすることができ、また、少なくとも1つの符号化情報に基づいて、種々の変換形式をサポートすることができる。前者は、暗黙的(Implicit)なものであってもよく、後者は、明示的(Explicit)なものであってもよい。明示的なものの場合、複数の候補グループのうちの最適な候補グループを指示するための自己適応的選択情報を生成してビットストリームに収録することができる。該例を含む本発明において、符号化情報を明示的に生成する場合、対応する情報は、種々の単位でビットストリームに収録される。また、デコーダは、種々の単位で関連情報を解析し、復号された情報を復元することが理解されるべきである。また、符号化/復号情報を暗黙的に処理する場合、エンコーダ及びデコーダは、同一のプロセス及びルールにより処理されることが理解されるべきである。
一例として、スライスタイプに基づいて、サポートされる矩形形状変換を決定することができる。Iスライスの場合、サポートされる変換は、正方形変換であってもよく、P/Bスライスの場合、変換は、正方形又は矩形形状の変換であってもよい。
一例として、符号化モードに基づいて、サポートされる矩形形状変換を決定することができる。Intraの場合、サポートされる変換形式は、正方形形状の変換であってもよく、Interの場合、サポートされる変換形式は、正方形又は長方形形状の変換であってもよい。
一例として、ブロックのサイズ及び形状に基づいて、サポートされる矩形形状変換を決定することができる。所定のサイズ又はより大きなブロックにおいてサポートされる変換形式は、正方形形状の変換であってもよく、所定のサイズ未満のブロックにおいてサポートされる変換形式は、正方形又は矩形形状の変換であってもよい。
一例として、ブロック分割方式に応じて、サポートされる矩形形状の変換を決定することができる。変換を実行するブロックが四分木(Quard Tree)分割方式で得られたブロックである場合、サポートされる変換形式は、正方形形状の変換である。また、二分木(Binary Tree)分割方法で得られたブロックである場合、サポートされる変換形式は、正方形又は矩形形状の変換である。
上記例は、1つの符号化情報に基づいて変換形式をサポートすることを示す例であり、また、複数の情報を組み合わせることで、付加の変換形式のサポートを設定することができる。上記例は、上記に限定されず、種々の符号化設定に基づいて、付加の変換形式をサポートすることを示す例であり、また、種々の修正例を実現することができる。
符号化設定又は画像の特性に基づいて、変換プロセスを省略することができる。例えば、符号化設定(該例において、可逆圧縮と仮定する)に応じて、変換プロセス(逆処理プロセスを含む)を省略することができる。もう1つの例として、画像の特性に基づいて変換による圧縮性能を発揮しない場合、変換プロセスを省略することができる。この場合、省略される変換は、単位全体であってもよい、又は、水平単位及び垂直単位のうちの1つを省略してもよい。また、ブロックのサイズ及び形状に基づいて、このような省略をサポートするかどうかを決定することができる。
例えば、水平と垂直変換の省略がバンドリングされたという設定において、変換省略フラグが1である場合、水平及び垂直方向に変換を実行しない。0である場合、水平及び垂直方向に変換を実行することができる。水平及び垂直変換を独立して実行するという設定において、第1変換省略フラグが1である場合、水平方向に変換を実行しない。0である場合、水平方向に変換を実行する。第2変換省略フラグが1である場合、垂直方向に変換を実行しない。0である場合、垂直方向に変換を実行する。
ブロックサイズが範囲Aに対応する場合、変換省略をサポートすることができる。範囲Bにt対応する場合、変換省略をサポートしない。例えば、ブロックの水平方向の長さがMより大きいか又は垂直方向の長さがNより大きい場合、変換省略フラグをサポートしない。また、ブロックの水平方向の長さがm未満であるか又はブロックの垂直方向の長さがn未満である場合、変換省略フラグをサポートする。M(m)とN(n)は、同じであっても異なってもよい。シーケンス、ピクチャ、スライスなどを単位として変換に関する設定を決定することができる。
付加的変換技術をサポートする場合、少なくとも1つの符号化情報に基づいて、変換技術の設定を決定することができる。この場合、符号化情報は、スライスタイプ、符号化モード、ブロックのサイズ及び形状、、予測モード等に対応することができる。
一例として、符号化モードに基づいて変換技術のサポートを決定することができる。Intraである場合、サポートされる変換技術は、DCT-I、DCT-III、DCT-VI、DST-II、DST-IIIであってもよい。Interであると、サポートされる変換技術は、DCT-II、DCT-III、DST-IIIであってもよい。
一例として、スライスタイプに基づいて変換方策のサポートを決定することができる。Iスライスの場合、サポートされる変換技術は、DCT-I、DCT-II、DCT-IIIであってもよい。Pスライスの場合、サポートされる変換技術は、DCT-V、DST-V、DST-VIであってもよい。Bスライスの場合、サポートされる変換技術は、DCT-I、DCT-II、DST-IIIであってもよい。
一例として、予測モードに基づいて変換技術のサポートを決定することができる。予測モードAでサポートされる変換技術は、DCT-1、DCT-IIであってもよい。予測モードBでサポートされる変換技術は、DCT-1、DST-1であってもよい。また、予測モードCでサポートされる変換技術は、DCT-Iであってもよい。この場合、予測モードA及びBは、方向性モード(Directional Mode)であってもよい。また、予測モードCは、非方向性モード(Non-Directional Mode)であってもよい。
一例として、変換技術のサポートは、ブロックのサイズ及び形状によって決まってもよい。特定サイズ以上のブロックでサポートされる変換技術は、DCT-IIであってもよい。特定サイズ未満のブロックでサポートされる変換技術は、DCT-II、DST-Vであってもよい。また、特定サイズ以上であって特定サイズ未満のブロックでサポートされる変換技術は、DCT-I、DCT-II、DST-Iであってもよい。また、正方形形状でサポートされる変換技術は、DCT-1、DCT-IIであってもよく、矩形形状でサポートされる変換技術は、DCT-1、DST-1であってもよい。
上記例は、1つの符号化情報に基づいて変換形式をサポートすることを示す例であり、また、複数の情報を組み合わせることで、付加の変換形式のサポートを設定することができる。上記例に限定されず、他の例に変換してもよい。また、変換部は、変換ブロックの生成に必要な情報を符号化部に送信して該情報を符号化し、該情報をビットストリームに収録し、続いて該情報をデコーダに送信する。デコーダの復号部は、該情報を解析して逆変換プロセスに用いる。
量子化部は、入力信号を量子化することができる。量子化プロセスで得られた信号は、量子化係数(Quantized Coefficient)と呼ばれる。例えば、変換部から受け取られた、残差変換係数を有する残差ブロックに対して量子化を実行することで、量子化係数を有する量子化ブロックを得ることができる。この場合、符号化設定に基づいて、入力信号を決定する。該符号化設定は、残差変換係数に限定されない。
量子化部は、デッドゾーン均一閾値量子化(Dead Zone Uniform Threshold Quantization)、量子化加重行列(Quantization Weighted Matrix)等のような量子化技術により、変換後の残差ブロックを量子化することができるが、これに限定されず、改良及び修正を行う種々の量子化技術を利用することができる。
また、量子化部は、量子化ブロックの生成に必要な情報を符号化部に送信して該情報を符号化し、該情報をビットストリームに収録し、続いて、該情報をデコーダに送信することができる。また、デコーダの復号部は、該情報を解析して逆量子化プロセスに用いる。
変換部及び量子化部により残差ブロックに対して変換及び量子化を実行することを仮定して上記例を説明したが、残差ブロックの残差信号を変換して、変換係数を有する残差ブロックを生成することができる。また、量子化プロセスを実行しなくてもよい。残差ブロックの残差信号を変換係数に変換せずに量子化プロセスのみを実行することができるだけではなく、変換及び量子化プロセスを実行しなくてもよい。これは、エンコーダの設定によって決定することができる。
符号化部は、少なくとも1つの走査順番(例えば、ジグザグ走査、垂直走査、水平走査等)に応じで走査を行うことで生成された残差ブロックの量子化係数、変換係数又は残差信号などに基づいて、量子化係数シーケンス、変換係数シーケンス又は信号シーケンスを生成することができる。また、少なくとも1つのエントロピー符号化(Entropy Coding)技術を利用して符号化を実行することができる。この場合、符号化設定(例えば、符号化モード、予測モード等)に基づいて、操作順番に関する情報を決定し、関連情報を暗黙的又は明示的に生成することができる。例えば、フレーム内予測モードに基づいて複数の走査順番のうちの1つを選択することができる。この場合、走査パターンをジグザグ形(Zig-Zag)、対角線形、ラスタ形(Raster)等の種々のパターンの1つと設定することができる。
また、各構成部から送信された符号化情報を含む符号化データを生成し、ビットストリームに出力することができる。これは、マルチプレクサ(MUX:Multiplexer)により実現することができる。この場合、符号化技術は、指数ゴロム(Exponential Golomb)、コンテキスト適応型可変長符号化(CAVLC:Context Adaptive Variable Length Coding)、コンテキスト適応型二値算術符号化(CABAC:Context Adaptive Binary Arithmetic Coding)等の方法により、符号化を実行することができる。本発明は、これに限定されず、改良及び修正された種々の符号化技術を用いることができる。
前記残差ブロックデータ及び符号化/復号プロセスで生成された情報等のシンタックス要素(Syntax)に対してエントロピー符号化を実行する(該例において、シンタックスをCABACとする)場合、エントロピー符号化装置は、二値化部(Binarizer)、コンテキストモデリング部(Context Modeler)、二値算術符号化部(Binary Arithmetic Coder)を備えてもよい。この場合、二値算術符号化部は、レギュラー符号化部(Regular Coding Engine)及びバイパス符号化部(Bypass Coding Engine)を含んでもよい。この場合、レギュラー符号化部は、コンテキストモデラーに関わる部材であってもよく、バイパス符号化部は、コンテキストモデラーと無関係な部材であってもよい。
前記エントロピー符号化装置に入力されたシンタックス要素が二進値でなくてもよいため、シンタックス要素が二進値ではない場合、二値化部は、シンタックス要素に対して二値化を実行することで、0又は1からなるbinストリング(Bin String)を出力することができる。この場合、binは、0又は1からなるビットを表す。また、二値算術エンコーダにより符号化を実行することができる。この場合、0及び1の発生確率に基づいて、レギュラー符号化部又はバイパス符号化部のうちの1つを選択することができる。これは、符号化/復号の設定に応じて決定することができる。シンタックス要素が0及び1という周波数の同じであるデータであれば、バイパス符号化部を用いることができる、異なるデータであれば、レギュラー符号化部を用いることができる。また、コンテキストモデリング(又はコンテキスト情報更新)により、次のレギュラー符号化部の実行の時に、参照とすることができる。
この場合、コンテキストは、binの発生確率に関する情報である。コンテキストモデリングは、二値化結果としたbinを入力することで、二値算術符号化に必要なbinの確率を推定するプロセスである。確率推定を実行するために、binのシンタックス要素、binストリングにおけるbinの位置インデックス、及びbinが周囲のブロックに含まれる確率などを用いることができる。また、このために、少なくとも1つのコンテキストテーブルを用いることができる。例えば、周囲のブロックがフラグの組み合わせを用いるかどうかに基づいて、複数のコンテキストテーブルを幾つかのフラグのための情報とすることができる。
シンタックス要素に対して二値化を実行する時、種々の方法を用いることができる。例えば、固定長二値化(Fixed Length Binarization)及び可変長二値化(Variable Length Binarization)に分けられてもよい。可変長二値化の場合、単項二値化(Unary Binarization、Truncated Unary Binarization)、短縮ライス二値化(Truncated Rice Binarization)、第K次指数ゴロム二値化(K-thExp-Golomb Binarization)及び短縮二進二値化(Truncated binary)を用いることができる。また、シンタックス要素の値の範囲に基づいて、シンボル有り又はシンボル無しの二値化を実行することができる。本発明において、シンタックス要素の二値化プロセスは、上記例で言及した二値化を含むだけでなく、他の付加的二値化方法も含む。
逆量子化部及び逆変換部は、変換部及び量子化部のプロセスを逆実行することで実現することができる。例えば、逆量子化部は、量子化部により生成された量子化変換係数に対して逆量子化を実行することができる。逆変換部は、逆量子化された変換係数に対して逆変換を実行し、復元された残差ブロックを生成することができる。
加算器は、予測ブロックと復元した残差ブロックを加算することで、現在ブロックを復元する。復元されたブロックは、メモリに記憶されて参照データ(予測部、フィルタ部など)として用いられる。
ループフィルタ部は、デブロッキングフィルタ、画素適応オフセット(Sample Adaptive Offset,SAO)、適応ループフィルタ(Adaptive Loop Filter,ALF)等のような少なくとも1つの後処理フィルタ部材を含んでもよい。デブロッキングフィルタは、復元画像におけるブロック同士の境界で発生したブロック歪みを除去することができる。ALFは、復元した画像と入力画像を比較することで得られた値に基づいて、フィルタリングを実行することができる。詳しくは、デブロッキングフィルタによりブロックをフィルタリングした後に復元された画像と入力画像を比較することで得られた値に基づいて、フィルタリングを実行することができる。また、SAOによりブロックをフィルタリングした後に復元された画像と入力画像を比較することで得られた値に基づいて、フィルタリングを実行することができる。
メモリは、復元したブロック又はピクチャを記憶することができる。メモリに記憶された復元ブロック又はピクチャを、フレーム内予測又はフレーム間予測を実行する予測部に提供することができる。詳しくは、エンコーダは、圧縮ビットストリームのキュー(Queue)形式の記憶空間を、符号化ピクチャバッファ(Coded Picture Buffer:CPB)として扱い、ピクチャ単位で復号画像を記憶する空間を復号ピクチャバッファ(Decoded Picture Buffer:DPB)として扱うことができる。CPBの場合、復号順番に応じて復号単位を記憶する。また、デコーダにおいて、復号操作をエミュレーション(Emulation)することができる。エミュレーションプロセスにおいて、圧縮したビットストリームを記憶することができ、復号プロセスにより、CPBから出力されたビットストリームを復元し、復元された画像をDPBに記憶すr。後続の画像の符号化及び復号プロセスにおいて、DPBに記憶されたピクチャを参照することができる。
復号部は、前記符号化部内のプロセスを逆に実行することで実現することができる。例えば、ビットストリームから、量子化係数シーケンス、変換係数シーケンス又は信号シーケンスを受け取って復号を実行し、復号儒法を含む復号データを解析して各構成部に送信することができる。
一方で、図1及び図2の画像の符号化装置及び画像の復号装置に示していないが、分割ブロック部を含んでもよい。ピクチャ分割部から、基本符号化ユニットに関わる情報を得ることができる。基本符号化ユニットは、画像の符号化/復号プロセスにおいて予測、変換、量子化などに用いられる基本(又は開始)ユニットを表すことができる。この場合、符号化ユニットは、色フォーマット(該例において、YCbCrである)に基づいて、1つの輝度符号化ブロック及び2つの色差符号化ブロックを構成することができる。また、色フォーマットに基づいて、各ブロックのサイズを決定することができる。後述の例において、ブロック(該例における輝度成分)に基づいて説明する。この場合、該ブロックが、各ユニットを決定した後に取得されるユニットであることを前提として、類似した設定で他のタイプのブロックに適用可能であることを前提として、説明する。
画像の符号化装置及び復号装置の各素子について、分割ブロック部を設定することができる。また、該プロセスにより、ブロックのサイズ及び形状を決定することができる。この場合、設定部に基づいて、異なるブロックを定義することができる。予測部の場合の予測ブロック、変換部の場合の変換ブロック及び量子化部の場合の量子化ブロックに対応してもよい。本発明は、これに限定されず、他の構成部によるブロック単位を更に定義することができる。ブロックのサイズ及び形状は、ブロックの水平及び垂直方向の長さにより限定されてもよい。
分割ブロック部において、ブロックをM×Nとして表すことができる。また、各ブロックの最大値及び最小値範囲内で得られる。例えば、ブロックの形状が正方形であってもよい。ブロックの最大値が256×256であり、最小値が8×8である場合、サイズが2m×2mであるブロック(該例において、mは、3から8の正数である。例えば、8×8、16×16、32×32、64×64、128×128、256×256である)、サイズが2m×2mであるブロック(該例において、mは、4から128の正数である)又はサイズがm×mであるブロック(該例において、mは、8から256の正数である)を得ることができる。又は、ブロックの形状は、正方形及び矩形であってもよい。該ブロックの範囲が上記例と同じである場合、サイズが2m×2nであるブロック(該例において、m及びnは、3から8の整数である。水平と垂直との比率が最大2:1である場合を例とすると、8×8、8×16、16×8、16×16、16×32、32×16、32×32、32×64、64×32、64×64、64×128、128×64、128×128、128×256、256×128、256×256である。符号化/復号の設定によれば、水平と垂直との比率が限定されないか、又は比率が最大値である場合がある)を得ることができる。又は、サイズが2m×2nであるブロック(該例において、m及びnは、4から128の整数である)を得ることができる。又は、サイズがm×nであるブロック(m及びnは、8から256の整数である)を得ることができる。
符号化/復号の設定(例えば、ブロックのタイプ、分割方式、分割設定等)に基づいて、取得可能なブロックを決定することができる。例えば、符号化ブロック(Coding Block)は、サイズ2m×2nのブロックであり、予測ブロック(Prediction Block)は、サイズ2m×2n又はサイズm×nのブロックであり、変換ブロック(Transform Block)は、サイズ2m×2nのブロックである。前記設定に基づいて、ブロックサイズ及び範囲のような情報(例えば、インデックス及び倍数に関わる情報)を生成することができる。
ブロックのタイプに基づいて、上記範囲(該例において、最大値及び最小値である)を決定することができる。また、幾つかのブロックにおいて、ブロックの範囲情報を明示的に生成することができる。幾つかのブロックにおいて、ブロックの範囲情報を暗黙的に決定することができる。例えば、符号化ブロック及び変換ブロックにおいて関連情報を明示的に生成することができ、予測ブロックにおいて、関連情報を暗黙的に処理することができる。
明示的な場合、少なくとも1つの範囲情報を生成することができる。例えば、符号化ブロックの場合、範囲に関する情報として、最大値及び最小値情報を生成することができる。又は、最大値と所定の最小値(例えば、8)との差異に基づいて(例えば、最大値及び最小値を生成するインデックス同士の差異の情報に基づいて)生成することができる。また、矩形ブロックの水平方向及び垂直方向の長さに関わる複数の範囲情報を生成することができる。
暗黙的な場合、符号化/復号の設定(例えば、ブロックのタイプ、分割方法、分割設定等)に基づいて範囲情報を得ることができる。例えば、予測ブロックの場合、上位単位とした符号化ブロック(該例において、符号化ブロックの最大サイズがM×Nであり、最小サイズがm×nである)において、予測ブロックの分割設定(該例において、四分木分割+分割深度が0である)で得られる候補グループ(該例において、M×N及びm/2×n/2)により最大値及び最小値情報を得る。
分割ブロック部の初期(又は開始)ブロックのサイズ及び形状は、上位単位によって決まってもよい。符号化ブロックの場合、ピクチャ分割部から得られた基本符号化ブロックは、初期ブロックであってもよい。予測ブロックの場合、符号化ブロックは、初期ブロックであってもよい。変換ブロックの場合、符号化ブロック又は予測ブロックは、初期ブロックであってもよい。これは、符号化/復号の設定によって決まってもよい。例えば、符号化モードがIntraである場合、予測ブロックは、変換ブロックの上位単位であってもよい。Interの場合、予測ブロックは、変換ブロックから独立した単位であってもよい。初期ブロックは、小さなブロックに分割されて分割の開始単位とすることができる。各ブロックの分割による最適なサイズ及び形状が決定された場合、該ブロックは、下位単位の初期ブロックと決定されてもよい。例えば、前者の場合、符号化ブロックであってもよい。後者場合(下位単位)、予測ロック又は変換ブロックであってもよい。上記例において、下位単位の初期ブロックを決定する場合、最適なサイズ及び形状を有するブロック(例えば、上位単位)を検索するための分割プロセスを実行することができる。
要するに、分割ブロックユニットは、基本符号化ユニット(又は最大符号化ユニット)を少なくとも1つの符号化ユニット(又は下位符号化ユニット)に分割することができる。また、符号化ユニットは、少なくとも1つの予測ユニットに分割されてもよく、また、少なくとも1つの変換ユニットに分割されてもよい。符号化ユニットは、少なくとも1つの符号化ブロックに分割されてもよく、符号化ブロックは、少なくとも1つの予測ブロックに分割されてもよく、また、少なくとも1つの変換ブロックに分割されてもよい。予測ユニットは、少なくとも1つの予測ブロックに分割されてもよく、変換ユニットは、少なくとも1つの変換ブロックに分割されてもよい。
上記例に示すように、モード決定により、最適なサイズ及び形状を有するブロックを見つける場合、該モードに用いられるモード情報(例えば、分割情報)を生成することができる。モード情報は、該ブロックの所属する構成部で生成された情報(例えば、予測関連情報、変換関連情報など)と共に、ビットストリームに収録されてデコーダに伝送されることができる。また、デコーダにおいて、同一のレベルの単一で解析され、画像の符号化プロセスに用いる。
以下、分割方式に関する例を説明する。また、初期ブロックが正方形形状を有することを仮定して説明する。しかしながら、矩形の場合、同様又は類似した例を適用できる。
分割ブロック部は、種々の分割方式をサポートすることができる。例えば、ツリーベースの分割又はタイプベースの分割をサポートすることができる。また、他の方法を用いることができる。ツリーベースの分割の場合、分割フラグを用いて分割情報を生成することができる。タイプベースの分割の場合、所定の候補グループに含まれるブロック形状のインデックス情報を利用して分割情報を生成することができる。
図3は、ツリーベースのブロック形状を示す概略図である。
図3を参照すると、aは、分割されていない1つの2N×2Nを得る例を表し、bは、一部の分割フラグ(該例において、二分木の水平分割である)により2N×Nを得る例を表し、cは、分割フラグ(該例において、二分木の垂直分割である)により2つのN×2Nを得る例を表し、dは、一部の分割フラグ(該例において、四分木の四分割又は二分木の水平及び垂直分割である)により4つのN×Nを得る例を表す。分割に用いられるツリータイプに基づいて、取得されるべきブロックの形状を決定することができる。例えば、四分木分割を実行する場合、取得可能な候補ブロックは、a及びdであってもよい。二分木分割を実行する場合、取得可能な候補ブロックは、a、b、c及びdであってもよい。四分木の場合、1つの分割フラグをサポートし、対応するフラグが「0」であれば、aを得ることができ、対応するフラグが「1」であれば、dを得ることができる。二分木の場合、複数の分割フラグをサポートし、そのうちの1つは、分割を実行するかどうかを指示するフラグであってもよく、そのうちの1つは、水平/垂直分割であるかどうかを指示するフラグであってもよい。そのうちの1つは、重なり合った水平/垂直分割を許容するかどうかを指示するフラグであってもよい。重なり合いを許容する場合、取得可能な候補ブロックは、a、b、c及びdであってもよい。重なり合いを許容しない場合、取得可能な候補ブロックは、a、b及びcであってもよい。四分木は、ツリーベースの基本分割方式であってもよい。また、ツリー分割方式(該例において二分木である)は、ツリーベースの分割方式に含まれてもよい。付加のツリー分割を許容することを示すフラグが暗黙的又は明示的に活性化された場合、複数のツリー分割を実行することができる。ツリーベースの分割は、再帰分割(Recursive Partition)を実行できる方式であってもよい。つまり、分割されたブロックを初期ブロックと再設定し、ツリーベースの分割を実行することができる。これは、分割範囲及び分割許容深度などのような分割設定によって決まってもよい。これは、階層的分割方式の例であってもよい。
図4は、タイプベースのブロック形状を示す概略図である。
図4に示すように、タイプに基づいて、分割されたブロックは、1つの分割形状(該例においてaである)、2つの分割形状(該例においてb、c、d、e、f及びgである)及び4つの分割形状(該例においてhである)を有してもよい。様々な設定により、候補グループを構成することができる。例えば、候補グループは、図5に示したa、b、c、n又はa、bからg、n又はa、n、q等により構成されてもよいが、これに限定されず、後述される例を更に含んでもよい。従って、種々の変形例を実行することができる。対称分割(Symmetric Partition)を許容することを示すフラグが活性化された場合、サポートされるブロックは、図4に示したa、b、c、hであってもよい。非対称分割(Asymmetric Partition)を許容することを示すフラグが活性化された場合、サポートされるブロックは、図4に示したaからhの全てであってもよい。前者の場合、関連情報(該例において、対称分割を許容することを示すフラグである)を暗黙的に活性化することができる。後者の場合、関連情報(該例において、非対称分割を許容することを示すフラグである)を明示的に生成することができる。タイプベースの分割は、一次分割をサポートする方式であってもよい。ツリーベースの分割に比べて、タイプベースの分割により得られたブロックについて、更なる分割を実行できないことがある。これは、分割許容深度がゼロ(例えば、単層分割)である例であってもよい。
図5は、本発明の分割ブロック部により得られる種々のブロック形状を示す概略図である。
図5を参照すると、分割設定及び分割方式に応じて、ブロックaからsを得ることができる。また、示されていない付加ブロック形状を有してもよい。
一例として、ツリーベースの分割は、非対称分割を許容することができる。例えば、二分木の場合、図5に示したb、cブロック(該例において、複数のブロックに分割された)は、非対称分割を許容することができる。又は、図5に示したbからgのブロックは(該例において、複数のブロックに分割された)は、非対称分割を許容することができる。符号化/復号の設定に応じて、非対称分割を許容することを示すフラグを明示的又は暗黙的に非活性化した場合、取得可能な候補ブロックは、b又はcである可能性がある(該例において、水平及び垂直方向の重なり合った分割を許容しないと仮定する)。また、非対称分割を許容することを示すフラグが活性化された場合、取得可能な候補ブロックは、b、d、e(該例において、水平分割である)又はc、f、g(該例において、垂直分割である)であってもよい。該例は、水平又は垂直分割フラグにより分割方向を決定し、また、非対称分割を許容することを示すフラグに基づいてブロック形状を決定することに対応する。しかしながら、本発明は、これに限定されず、他の例に変換されてもよい。
一例として、付加されたツリー分割をツリーベースの分割に用いることができる。例えば、三分木、四分木、八分木等の分割を実行し、n個の分割ブロックを得ることができる(該例において、nは、3、4、8であり、nは整数である)。三分木の場合、サポートされるブロック(該例において、複数のブロックに分割された)は、hからmであってもよい。四分木の場合、サポートされるブロックは、nからpであってもよい。八分木の場合、サポートされるブロックは、qであってもよい。符号化/復号の設定に基づいて、前記ツリーベースの分割をサポートするかどうかを暗黙的に決定するか又は関連情報を明示的に生成することができる。また、符号化/復号の設定に基づいて、二分木又は四分木分割を単独で用いることができる。又は、二分木及び四分木分割を混用することもできる。例えば、二分木の場合、図5に示したb、cにおけるブロックを得ることができる。二分木と三分木を混用する場合(該例において、二分木の使用範囲と三分木の使用範囲が一部重なり合ったと仮定する)、b、c、i、lのようなブロックを得ることができる。符号化/復号の設定に基づいて、現在のツリー以外の更なる分割を許容することを示すフラグを明示的又は暗黙的に非活性化すると、取得可能な候補ブロックは、b又はcであってもよい。活性化した場合、取得可能な候補ブロックは、b、i又はb、h、i、j(該例において、水平分割である)又はc、l又はc、k、l、m(該例において、垂直分割である)である。該例は、水平又は垂直分割フラグにより分割方向を決定し、また、付加される分割を許容することを示すフラグに基づいてブロック形状を決定することに対応する。しかしながら、本発明は、これに限定されず、他の例に変換されてもよい。
一例として、タイプベースのブロックは、非矩形パーティション(Non-Rectangular Partition)を許容することができる。例えば、r、sの形状による分割が可能である。上記タイプベースのブロック候補グループと組み合わせる場合、a、b、c、h、r、s又はaからh、r、sのブロックは、サポートされるブロックであってもよい。また、候補グループに、hからmのようなn個の分割をサポートするブロック(例えば、nは整数である。該例において、1、2及び4以外の3である)が含まれてもよい。
符号化/復号の設定に基づいて、分割方式を決定することができる。
一例として、ブロックのタイプに基づいて分割方式を決定することができる。例えば、符号化ブロック及び変換ブロックは、ツリーベースの分割を利用することができる。予測ブロックは、タイプベースの分割を利用することができる。また、2つのタイプの分割方式を組み合わせた形態を用いることができる。例えば、予測ブロックは、ツリーベースの分割とタイプベースの分割を組み合わせた分割方式を利用することができる。また、分割方式は、ブロックに適用される少なくとも1つの範囲によって異なる。
例えば、ブロックのサイズに基づいて分割方式を決定することができる。例えば、ブロックの最大値と最小値との特定の範囲(例えば、a×bからc×dという後者が大きい場合)は、ツリーに基づいて分割を実行することができる。また、特定の範囲(例えば、e×fからg×h)は、タイプに基づいて分割を実行することができる。この場合、分割方式に基づいた範囲情報を明示的に生成するか又は暗黙的に決定することができる。
一例として、ブロックの形状(又は分割される前のブロック)に基づいて分割方式を決定することができる。例えば、ブロック形状が正方形であると、ツリーベースの分割及びタイプベースの分割を実行することができる。又は、ブロックが矩形であると、ツリーベースの分割を実行することができる。
符号化/復号の設定に基づいて分割設定を決定することができる。
一例として、ブロックのタイプに基づいて分割設定を決定することができる。例えば、ツリーベースの分割において、符号化ブロック及び予測ブロックは、四分木を利用することができる。変換ブロックは、二分木を利用することができる。又は、符号化ブロックにおいて、分割許容深度は、mであってもよい。予測ブロックにおいて、分割許容深度は、nである。変換ブロックにおいて、分割許容深度は、oとしてもよい。また、m、n及びoは、同じであっても異なってもよい。
例えば、ブロックのサイズに基づいて分割設定を決定することができる。例えば、特定の範囲(例えば、a×bからc×d)で、四分木分割を実行することができるが、特定の範囲(例えば、e×fからg×hである。該例において、c×dがg×hより大きいと仮定する)で、二分木分割を実行することができる。この場合、前記範囲は、ブロックの最大値と最小値との全ての範囲を含んでもよい。また、該範囲は、互いに重なり合わない設定を有してもよく、重なり合った設定を有してもよい。例えば、特定の範囲の最小値は、特定の範囲の最大値に等しくてもよい。又は、特定の範囲の最小値は、特定の範囲の最大値未満であってもよい。重なり合った範囲が存在すれば、より大きい最大値を有する分割方式は、優先度を有してもよい。つまり、優先度を有する分割方式において、分割結果に基づいて、低い優先度を有する分割方式を実行するかどうかを決定することができる。この場合、ツリータイプに基づいた範囲情報を明示的に生成するか又は暗黙的に決定することができる。
もう1つの例として、ブロックの特定の範囲(前記例と同じである)で、幾つかの候補グループを有するタイプベースの分割を実行することができる。特定の範囲(上記例と同じである)で、幾つかの候補グループ(該例において、少なくとも1つの設定が前の1つの候補グループと異なる)を有するタイプベースの分割を実行することができる。この場合、前記範囲は、ブロックの最大値と最小値との全ての範囲を含むことができる。また、該範囲は、互いに重なり合わない設定を有してもよい。
一例として、ブロックの形状に基づいて分割設定を決定することができる。例えば、ブロックが正方形形状を有する場合、四分木分割を実行することができる。また、ブロックが矩形である場合、二分木分割を実行することができる。
例えば、符号化/復号情報(例えば、sliceタイプ、色成分、符号化モード等)に基づいて分割設定を決定することができる。例えば、sliceタイプがIである場合、特定の範囲(例えば、a×bからc×d)で、Pであれば、特定の範囲(例えば、e×fからg×h)で、Bであれば、特定の範囲(例えば、i×jからk×l)で四分木(又は二分木)分割を実行することができる。また、sliceタイプがIである場合、四分木(又は二分木)分割の分割許容深度をmとすることができる。sliceタイプがPである場合、分割許容深度は、nとすることができる。sliceタイプがBである場合、分割許容深度は、oとすることができる。mとoは同じであっても異なってもよい。幾つかのsliceタイプは、他のslice(例えば、P及びBslice)と同じである設定を有してもよい。
もう1つの例として、色成分が輝度成分である場合、四分木(又は二分木)分割の許容深度をmとすることができる。色差成分の場合、nとすることができる。mとnは、同じであっても異なってもよい。また、色成分が輝度成分である場合の四分木(又は二分木)の分割範囲(例えば、a×bからc×d)と色差成分の場合の四分木(又は二分木)の分割範囲(例えば、e×fからg×h)は、同じであっても異なってもよい。
もう1つの例として、符号化モードがIntraである場合、四分木(又は二分木)の分割深度は、mであってもよい。Interである場合、n(該例において、nがmより大きいと仮定する)であってもよい。また、mとnは、同じであっても異なってもよい。また、符号化モードがIntraである場合の四分木(又は二分木)分割の範囲とInterの場合の四分木(又は二分木)分割の範囲は、同じであっても異なってもよい。
上記例において、符号化/復号情報に基づいて、自己適応的分割候補グループ設定をサポートするかどうかに関わる情報を明示的に生成するか又は暗黙的に決定することができる。
上記例によれば、符号化/復号の設定に基づいて分割方式及び分割設定を決定することを説明した。上記例において、各素子の状況によって他の形式に変換されてもよいことを示す。また、複数の素子の組み合わせに基づいて、分割方式及び分割設定を決定することができる。例えば、ブロックのタイプ、サイズ、形状、符号化/復号情報などに基づいて、分割方式及び分割設定を決定することができる。
また、上記例において、分割方式、設定などに関わる素子を決定するか又は情報を明示的に生成することで、上記例における適応状況を許容するかどうかを決定することができる。
前記分割設定にいて、分割深度は、初期ブロックに基づいた空間分割の回数を指す(該例において、初期ブロックの分割深度は、0である)。また、分割深度が増加するほど、より小さなブロックに分割可能になる。分割方式に基づいて、深度に関わる設定を変えることができる。例えば、ツリーベースの分割方式において、四分木分割深度及び二分木分割深度として、共通深度を用いてもよく、ツリータイプによる単独した深度を用いてもよい。
上記例において、ツリーのタイプに基づいて単独した分割深度を用いる場合、ツリーの分割開始位置(該例において、分割される前のブロックである)で分割深度を0とすることができる。各ツリーの分割範囲(該例における最大値)に基づくことなく、分割開始位置を中心として分割深度を算出することができる。
図6は、本発明の実施例によるツリーベースの分割を示す概略図である。
aは、四分木及び二分木分割の例を示す。具体的には、aの左上ブロックは、四分木分割を示し、右上ブロック及び左下ブロックは、四分木及び二分木分割を示し、右下ブロックは、二分木分割を示す。図面において、実線(該例において、Quad1である)は、四分木に分割された場合の境界線を表す。点線(該例において、Binary1である)は、二分木に分割された場合の境界線を表す。太実線(該例において、Binary2である)は、二分木に分割された場合の境界線を表す。点線と太実線との差異は、分割方法の差異である。
一例として、(左上ブロックの四分木分割許容深度は、3である。現在ブロックがN×Nであると、分割を実行し、水平又は垂直分割のうちの1つが(N>>3)に達するまで継続し、分割情報を生成し、(N>>2)の分割情報を生成するまで継続する。これは、後述される例と同じである。四分木の最大値及び最小値がN×N、(N>>3)×(N>>3)である)ツリー分割を実行する場合、水平、垂直方向長さの1/2の長さを有する4つのブロックに分割することができる。分割が活性化される場合、分割フラグの値は、「1」であってもよい。分割が非活性化される場合、分割フラグの値は、「0」であってもよい。該設定によれば、左上ブロックの分割フラグは、bの左上ブロックと共に生成される可能性がある。
一例として、(右上ブロックについて、四分木分割許容深度が0であり、二分木分割許容深度が4であり、四分木分割の最大値及び最小値が、N×N、(N>>2)×(N>>2)であり、二分木の最大値及び最小値が(N>>1)×(N>>1)、(N>>3)×(N>>3)であると仮定する)右上ブロックは、初期ブロックについて四分木分割を実行する場合、水平、垂直方向長さの1/2の長さを有する4つのブロックに分割される。分割されたブロックのサイズは、(N>>1)×(N>>)である。これは、二分木分割を実行できることを意味する(該例において、四分木分割の最小値より大きいが、分割深度が限られる)。つまり、該例は、四分木分割及び二分木分割を重なり合って使用できない例であってもよい。該例における二分木分割情報は、複数の分割フラグから構成されてもよい。幾つかのフラグは、水平分割フラグ(該例において、x/yにおけるxに対応する)であってもよく、幾つかのフラグは、垂直分割フラグ(該例において、x/yにおけるyに対応する)であってもよい。分割フラグの設定は、四分木分割と類似した設定(例えば、活性化を実行するかどうか)を有してもよい。該例において、2つのフラグは、繰り返して活性化されてもよい。図面において、「-」を用いてフラグ情報を生成する場合、「-」は、フラグの暗黙的処理に対応する可能性がある。ここで、ツリー分割の最大値、最小値及び分割深度などの条件に応じて付加分割を実行できない場合、フラグの暗黙的処理が生じる可能性がある。該設定によれば、右上ブロックの分割フラグは、bの左上ブロックと共に生成される可能性がある。
一例として、(左下ブロックについて、四分木分割許容深度が3であり、二分木分割許容深度が2であり、四分木分割の最大値及び最小値がN×N、(N>>3)×(N>>3)であり、二分木分割の最大値和最小値が(N>>2)×(N>>2)、(N>>4)×(N>>4)であり、重なり合った範囲において、分割優先度は、四分木分割に与えられると仮定する)右下ブロックは、初期ブロックについて四分木分割を実行する場合、水平、垂直方向長さの1/2の長さを有する4つのブロックに分割される。分割されたブロックのサイズは、(N>>1)×(N>>)である。これは、該例の設定に基づいて、二分木分割及び四分木分割を実行できることを意味する。つまり、該例は、四分木分割及び二分木分割を重なり合って使用できる例であってもよい。この場合、優先度が決定された四分木分割に基づいて、二分木分割を実行するかどうかを決定することができる。四分木分割を実行する場合、二分木分割を実行しない。四分木分割が実行されていない場合、二分木分割を実行することができる。四分木分割を実行しない場合、上記設定に基づいて分割実行要件を満たしても、四分木分割を実行できない可能性もある。該例における二分木分割情報は、複数の分割フラグから構成されてもよい。幾つかのフラグは、分割フラグ(該例において、x/yにおけるxに対応する)であってもよく、幾つかのフラグは、分割方向フラグ(該例において、x/yにおけるyに対応する。xに基づいて、y情報を生成するかどうかを決定することができる)であってもよい。分割フラグは、四分木分割と類似した設定を有してもよい。該例において、水平分割と垂直分割は互いに重なり合うように活性化されることが不可能である。図面において、フラグ情報を「-」として生成する場合、「-」は、上記例と類似した設定を有してもよい。該設定によれば、左下ブロックの分割フラグは、bの左下ブロックと共に生成される可能性がある。
一例として、(右下ブロックについて、二分木分割許容深度が5であり、二分木分割の最大値及び最小値がN×N、(N>>2)×(N>>3)であると仮定する)右下ブロックは、初期ブロックについて二分木分割を実行する場合、水平、垂直方向長さの1/2の長さを有する2つのブロックに分割される。該例における分割フラグは、左下ブロックと同じであるように設定されてもよい。図面において、フラグ情報を「-」として生成する場合、「-」は、上記例と類似した設定を有してもよい。該例において、二分木の水平と垂直方向の最小値を異なるように設定することを示す。該設定によれば、右下ブロックの分割フラグは、bの右下ブロックと共に生成される可能性がある。
上記例に示すように、ブロック情報(例えば、タイプ、サイズ、形状、位置、sliceタイプ、色成分等)を決定した後、これに基づいて分割方式及び分割設定を決定することができ、分割プロセスを実行することができる。
図7は、本発明の実施例によるツリーベースの分割を示す概略図である。
ブロックa及びブロックbを参照すると、太実線L0は、最大の符号化ブロックを表す。太実線及び他の線L1からL5により分割されたブロックは、分割された符号化ブロックを表す。ブロック内の番号は、分割されたサブブロックの位置を表す(該例において、ラスタ走査(RasterScan)順番による)。「-」の数は、ブロックの有する分割深度を表す。ブロック間の境界線の数字は、分割回数を表す。例えば、四つに分割すると(該例において、四分木である)、UL(0)-UR(1)-DL(2)-DR(3)の順番を有する。2つに分割すると(該例において、二分木である)、L又はU(0)-R又はD(1)の順番を有する。これは、各分割深度で定義されてもよい。後述される例において、取得可能な符号化ブロックが限られた場合を示す。
一例として、aの最大符号化ブロックが64×64であり、最小符号化ブロックが16×16であり、四分木分割を用いると仮定する。この場合、2-0、2-1、2-2ブロック(該例においてサイズ16×16である)のサイズが最小符号化ブロックのサイズに等しいであるため、例えば2-3-0、2-3-1、2-3-2,2-3-3ブロック(該例においてサイズ8×8である)のようなより小さなブロックに分割されない可能性がある。この場合、ブロック2-0、2-1、2-2及び2-3において、16×16ブロックである1つの候補グループを取得できるため、ブロック分割情報を生成しない。
一例として、bの最大符号化ブロックが64×64であり、最小符号化ブロックの水平又は垂直方向長さが8であり、許容される分割深度が3であると仮定する。この場合、1-0-1-1(該例において、サイズ16×16であり、分割深度が3である)ブロックが最小符号化条件を満たすため、より小さなブロックに分割可能である。しかしながら、許容可能な分割に等しいため、より深い分割深度を有するブロック(該例において1-0-1-0-0、1-0-1-0-1ブロックである)に分割されない可能性がある。この場合、1-0-1-0及び1-0-1-1ブロックにおいて、16×8ブロックである1つの候補グループを取得できるため、ブロック分割情報を生成しない。
上記例に示すように、符号化/復号に基づいて四分木分割又は二分木分割をサポートすることができる。または、四分木分割と二分木分割の混用をサポートすることができる。例えば、ブロックサイズ、分割深度等に基づいて、上記方式のうちの1つ又は2つをサポートすることができる。ブロックが第1ブロック範囲に属すると、四分木をサポートすることができる。該ブロックが第2ブロック範囲に属すると、二分木分割をサポートすることができる。複数の分割方式をサポートする場合、各方式の最大符号化ブロックサイズ、最小符号化ブロックサイズ、許容可能な分割深度などのうちの少なくとも1つの設定を有してもよい。前記範囲は、互いに重なり合うように設定されてもよく、重なり合わないように設定されてもよい。または、1つの範囲は、もう1つの範囲を含むこともある。上記設定は、sliceタイプ、符号化モード、色成分などのような単一又は混合要因によって決まってもよい。
一例として、sliceタイプに基づいて分割設定を決定することができる。I sliceの場合、サポート可能な分割設定として、四分木の場合のサポート可能な分割範囲128×128から32×32であり、二分木の場合のサポート可能な分割範囲32×32から8×8である。P/Bsliceの場合、サポート可能な分割設定として、四分木の場合のサポート可能な分割範囲128×128から32×32であり、二分木の場合のサポート可能な分割範囲64×64から8×8である。
一例として、符号化モードに基づいて分割設定を決定することができる。符号化モードがIntraである場合、サポートされる分割設定について言えば、二分木の場合、64×64から8×8の分割範囲及び許容可能な分割深度2をサポートすることができる。符号化モードがInterである場合、サポートされる分割設定について言えば、二分木の場合、32×32から8×8の分割範囲及び許容可能な分割深度3をサポートすることができる。
一例として、色成分に基づいて分割設定を決定することができる。輝度成分の場合、四分木の場合のサポート可能な分割範囲は、256×256から64×64であり、二分木の場合のサポート可能な分割範囲は、64×64から16×16である。色差成分の場合、四分木の場合に輝度成分と同様な設定をサポートする(該例において、色差フォーマットに基づいて各ブロックの長さ割合を設定する)。二分木の場合、サポートされる分割範囲は、64×64から4×4である(該例において、これと同様な輝度成分における範囲が128×128から8×8であり、4:2:0であると仮定する)。
前記例において、ブロックのタイプに基づいた様々な分割設定を説明する。また、幾つかのブロックは、他のブロックと組み合わせられて分割プロセスを実行することができる。例えば、符号化ブロックと変換ブロックを組み合わせて1つユニットを構成する場合、分割プロセスを実行して最適なブロックサイズ及び形状を得る。これは、符号化ブロックの最適なブロックサイズ及び形状であってもよく、変換ブロックの最適なサイズ及び形状であってもよい。又は、符号化ブロックと変換ブロックを組み合わせて1つユニットを構成してもよい。予測ブロックと変換ブロックを組み合わせて1つユニットを構成してもよい。符号化ブロック、予測ブロック及び変換ブロックを組み合わせて1つユニットを構成してもよい。他のブロックを組み合わせてもよい。
本発明において、各ブロックにおいて単独した分割設定を提供することを説明する。また、複数のユニットを組み合わせて1つのユニットを構成して、1つの分割設定を共有してもよい。
上記プロセスにおいて、生成された情報は、エンコーダにおけるシーケンス、ピクチャ、slice、tile等における少なくとも1つのユニットとしてビットストリームに収録される。また、デコーダは、ビットストリームから関連情報を解析する。
画像の符号化/復号プロセスにおいて、入力画素値と出力画素値が異なる可能性がある。また、画素値の調整プロセス(Adjustment)を実行することで、誤操作による歪みを防止することができる。画素値調整方法は、画素値範囲を超える画素値を画素値範囲内に調整するプロセスであり、クリッピング(Clipping)と呼ばれてもよい。
表1は、画素値調整を実行するためのクリッピング関数(Clip_x)の例示的なコードを示す。表1を参照すると、入力画素値(pixel_val)、許容される画素値範囲の最小値(minI)及び最大値(maxI)をクリッピング関数(Clip_x)のパラメータとして入力することができる。この場合、ビット深度(bit_depth)に基づいて記述すると、最小値(minI)は、0であってもよく、最大値(maxI)は、(2bit_depth-1)であってもよい。クリッピング関数(Clip_x)を実行する場合、最小値(minI)未満の入力画素値(pixel_val、パラメータA)は、最小値(minI)に変更される。また、最大値maxI(パラメータC)より大きい入力画素値を最大値(maxI)に変更することができる。従って、出力値(output)を、画素値調整された出力画素値(pixel_val’)として返送することができる。
この場合、画素値範囲は、ビット深度によって決まるが、画像の種類及び特性によれば、画像を構成する画素値(例えば、ピクチャ、slice、tile、ブロック等)は、異なるため、全ての画素値範囲内で生成されるとは限らない。実際の画像を構成する画素値の範囲を参照しながら、これを画像の符号化/復号プロセスに用いることができる。
例えば、表1による画素値調整方法において、クリッピング関数の最小値(minI)を、実際の画像を構成する画素値のうちの最小値として用い、クリッピング関数の最大値(maxI)を、実際の画像を構成する画素値のうちの最大値として用いることができる。
要するに、画像の符号化/復号装置は、ビット深度に基づいた画素値調整方法及び/又は画像を構成する画素値の範囲に基づいた画素値調整方法を用いることができる。エンコーダ/デコーダにおいて、自己適応的画素値調整方法をサポートするかどうかを決定するためのフラグ情報をサポートすることができる。フラグ情報が「1」である場合、画素値調整方法選択情報を生成することができる。フラグ情報が「0」である場合、所定の画素値調整方法(該例において、ビット深度に基づいた方法である)を基本画素値調整方法とすることができる。画素値調整方法選択情報は、画像を構成する画素値の範囲に基づいた画素値調整方法を指示する場合、画像の画素値関連情報を含んでもよい。例えば、色成分の、各画像に関わる最小値及び最大値並び後述される中間値の情報を含んでもよい。調整時に生成された情報は、エンコーダのビデオ、シーケンス、ピクチャ、slice、tile、ブロックなどを単位として収録されて伝送される。また、デコーダに記録された情報を解析し、関連単位で関連情報を復元することができる。
一方で、前記プロセスにおいて、ビット深度に基づいた画素値調整又は画像を構成する画素値の範囲に基づいた画素値調整により、画素値の最小値及び最大値を含む画素値範囲を変更(決定又は定義)することができる。付加画素値範囲を変更(決定又は定義)することもできる。例えば、実際の画像を構成する画素値の最大値と最小値を変更することができ、画素値を構成するための中間値を変更することもできる。
つまり、ビット深度に基づいた画素値調整プロセスにおいて、minIは、画像の最小画素値を表し、maxIは、画像の最大画素値を表し、Iは、色成分を表し、medianIは、画像の中心画素値を表す。minIは、0であってもよく、maxIは、(1<<bit_depth-1)-1であってもよく、midIは、1<<(bit_depth-1)であってもよい。また、符号化/復号の設定に基づいて、上記例を含む他の形態でmedianIを得ることができる。中間値は、本発明における説明のための用語だけであり、画像の符号化/復号プロセスにおいて、画素値調整プロセスにより変更(決定又は定義)される画素値範囲情報のうちの1つの情報を指す。
例えば、画像を構成する画素値の範囲に基づいた画素値調整プロセスにおいて、minIは、画像の最小画素値であってもよく、maxIは、画像の最大画素値であってもよく、medianIは、画像の中心画素値であってもよい。medianIは、画像における画素値の平均値であり、画像の画素にアライメントする場合に中心に位置する値であってもよく、画像の画素値範囲に基づいて得られた値であってもよい。少なくとも1つのminI、maxIにおいて、medianIを導出することができる。つまり、medianIは、画像の画素値範囲内で存在する1つの画素値であってもよい。
具体的に、medianIは、例えば(minI+maxI)/2又は(minI+maxI)>>1、(minI+maxI+1)/2、(minI+maxI+1)>>1のような、画像の画素値範囲情報(該例において、minI、maxIである)に基づいて得られた値であってもよい。また、符号化/復号の設定に基づいて、上記例を含む他の形態でmedianIを得ることもできる。
続いて、画素値調整処理の実施例(該例において中間値である)を説明する。
一例として、基本ビット深度は、8ビット(0から255)であり、また、画像を構成する画素値の範囲に基づいた画素値調整プロセス(該例において、最小値が10であり、最大値が190である。最小値及び最大値から(平均)中間値100を導出する)を選択する。現在ブロックの位置が画像(該例においてピクチャである)における1つ目のブロックであれば、符号化/復号に用いられる隣接ブロック(該例において、左、左下、左上、上、右上である)が存在しない。従って、参照画像について、中間値100でパディングすることができる。前記参照画像を利用して予測モードに基づいてフレーム内予測プロセスを実行することができる。
一例として、基本ビット深度は、10ビット位(0から1023)であり、また、画像を構成する画素値の範囲に基づいた画素値調整プロセス(該例において、中間値が600であり、関連シンタックス要素が存在する)を選択する。現在ブロックの位置が画像(該例においてslice、tileである)における1つ目のブロックであれば、符号化/復号に用いられる隣接ブロック(該例において、左、左下、左上、上、右上である)が存在しない。従って、参照画像について、中間値600でパディングすることができる。前記参照画像を利用して予測モードに基づいてフレーム内予測プロセスを実行することができる。
一例として、基本ビット深度は、10ビットであり、また、画像を構成する画素値の範囲に基づいた画素値調整プロセス(該例において、中間値が112であり、関連シンタックス要素が存在する)を選択する。隣接ブロックの符号化モード(フレーム内予測/フレーム間予測)等に基づいて、現在ブロックの予測において対応するブロックの画素を使用できるかどうかを決定するという設定を活性化する(該例において、対応するブロックの符号化モードがフレーム内予測である場合、現在ブロックの参照画素として用いることができ、フレーム内予測時に利用不可能である。該設定を非活性化する場合、現在ブロックの画素として用いることができるが、対応するブロックの符号化モードに関わらない。関連シンタックス要素は、constrained_intra_pred_flagであり、P又はB画像タイプに発生する可能性がある)。現在ブロックが画像の左側に位置すると、符号化/復号に用いられる隣接ブロック(該例において、左、左下、左上である)は存在しない。符号化/復号に用いられる隣接ブロック(該例において、右及び右上である)が存在するが、該ブロックの符号化モードがフレーム間予測であるため、上記設定により無効化される。従って、利用可能な参照画素が存在しない。参照画素は、中間値(該例において112である)でパディングすることができる。つまり、利用可能な参照画素が存在しないため、画像画素値範囲における中間値でパディングすることができる。前記参照画像を利用して予測モードに基づいてフレーム内予測プロセスを実行することができる。
上記実施例において、予測部について、前記中間値に関わる全てのケースを示した。これは、ビデオ符号化/復号のもう1つの設定に含まれてもよい。また、本発明は、上記実施例に限定されず、様々な場合に、修正及び拡張を実行することができる。
本発明において、画素値調整プロセスは、予測部、変換部、量子化部、逆量子化部、逆変換部、フィルタ部、メモリ等による符号化/復号プロセスに適用可能である。例えば、画素値調整方法における入力画素は、予測プロセスにおける参照画素(Reference Sample)又は予測画素(Prediction Sample)であってもよく、また、変換、量子化、逆変換及び逆量子化プロセスにおける復元画素(Reconstructed Sample)であってもよい。また、該画素は、ループフィルタリングプロセスにおける復元画素であってもよく、又はメモリに記憶された画素であってもよい。この場合、変換、量子化及び逆変換、逆量子化プロセスにおいて、復元画素は、ループフィルタを適用する前の復元画素であってもよい。ループフィルタにおける復元画素は、ループフィルタを適用した復元画素であってもよい。デブロッキングフィルタプロセスにおける復元画素は、復号フィルタを適用した復元画素であってもよい。SAOプロセスにおける復元画素は、SAOを適用した復元画素であってもよい。ALFプロセスにおける復元画素は、ALFを適用した復元画素であってもよい。上記のような様々なケースのような例を説明したが、本発明は、これに限定されず、画素値調整プロセスを呼び出す全ての符号化/復号プロセスの入力、中間、出力工程に適用可能である。
後述される例において、輝度成分のクリッピング関数Clip_Yと色差成分Cb、Crのクリッピング関数Clip_Cb、Clip_Crをサポートすることを仮定して以下のように説明する。
本発明において、予測部をフレーム内予測とフレーム間予測に分類することができ、また、以下のようにフレーム内予測及びフレーム間予測を定義することができる。
フレーム内予測は、現在画像の符号化/復号(例えば、ピクチャ、slice、tile等)を完了する領域から予測値を生成する技術であってもよく、フレーム間予測は、現在画像の前の1つの符号化/復号を完了した画像(例えば、ピクチャ、slice、tile等)から予測値を生成する技術であってもよい。
また、フレーム内予測は、現在画像の符号化/復号を完了する領域から予測値を生成する技術であってもよいが、例えば、参照画像から予測値を生成するという方法、ブロックマッチング(Block Matching)、テンプレートマッチング(Template Matching)等の予測方法は、除外されてもよい。フレーム間予測は、少なくとも1つの符号化/復号を完了する画像から予測値を生成する技術であってもよく、前記符号化/復号を完了する画像は、現在画像を含むように構成されてもよい。
符号化/復号の設定が上記定義の1つに従うものであって、且つ1つ目の定義に従うと仮定する上で下記例を説明する。また、予測値を、空間ドメインにおいて予測により得られた値と仮定する上で説明するが、本発明は、これに限定されない。
図8は、本発明の実施例によるブロック分割プロセスを示す。詳しくは、1つの上記方法により、基本符号化ブロックから得られたブロックのサイズ及び形状の例を示す。
図面において、太実線は、基本符号化ブロックを表し、太点線は、四分木分割境界を表し、二重実線は、対称二分木分割境界を表し、実線は、三分木分割境界を表し、細点線は、非対称二分木分割境界を表す。太実線以外の線は、いずれも、各分割方法で分割された境界を表す。下記分割設定(例えば、分割種類、分割情報、分割情報設定順番等)は、対応する例に限定されず、多種の変換例を有してもよい。
説明を容易にするために、基本符号化ブロック(2N×2N。128×128)に基づいて、左上、右上、左下及び右下ブロック(NxN,64×64)に、単独したブロック分割設定を有させることを仮定して、説明する。まず、初期ブロックにおいて、1つの分割操作(分割深度0->1である。つまり、分割深度が1増加した)により、4つのサブブロックを得る。また、四分木の分割設定について、最大符号化フロックが128×128であり、最小符号化ブロックが8×8であり、最大分割深度が4であると仮定する。これは、一般的に各ブロックに適用される設定である。
(1回、左上ブロック、A1-A6)
該例において、単一木分割(該例において、四分木である)をサポートする場合、1つのブロック分割設定(例えば、最大符号化ブロック、最小符号化ブロック、分割深度ブロック等)により、取得可能なブロックのサイズ及び形状を決定することができる。該例において、分割(水平及び垂直方向の2つの分割をそれぞれ実行する)により1つのブロックを取得できる時、1つの分割操作に必要な分割情報(分割前の4Mx4Nによれば、分割深度は1増加する)は、分割を実行するかどうかを示すフラグであり(該例において、0であれば、x分割を行い、1であれば、o分割を行う)、取得可能な候補は、4M×4N及び2M×2Nであってもよい。
(2回、右上ブロック、A7からA11)
該例において、多木分割(該例において、四分木、二分木である)をサポートする時、複数のブロック分割設定により、取得可能なブロックのサイズ及び形状を決定することができる。該例において、二分木の場合、最大符号化ブロックが64×64であり、且つ最小符号化ブロックの長さが4であり、最大分割深度が4であると仮定する。
該例において、分割で得られるブロックが2つ以上(該例において2又は4である)である場合、1回の分割操作(四分木分割深度が1増加する)に必要な分割情報は、分割を行うかどうかを示すフラグ、分割種類を示すフラグ、分割形状を示すフラグ、分割方向を示すフラグであり、取得可能な候補は、4M×4N、4M×2N、2M×4N、4M×N/4M×3N、4M×3N/4M×N、M×4N/3M×4N、3M×4N/M×4Nである。
四分木分割範囲と二分木分割範囲が重なり合い(つまり、現在のステップにおいて、四分木分割と二分木分割がいずれも使用できる範囲)、現在ブロック(分割前の状態)が、四分木分割により得られたブロックである(親ブロック<分割深度が現在より1小さい場合>は、四分木分割により得られたブロックである)場合、分割情報は、以下に分割されてもよい。つまり、複数の分割方法により、各分割設定によるブロックを得ることができる場合、下記カテゴリで分割情報を生成することができる。
上記表において、aは、四分木分割を実行するかどうかを示すフラグであり、1であれば、四分木分割(QT)を実行する。該フラグが0であれば、bを確認する。bは、二分木分割を実行するかどうかを示すフラグである。bが0であれば、該ブロックにおいて分割を実行しない(分割しない)。bが1であれば、二分木分割を実行する。
cは、分割方向を示すフラグである。0であれば、水平分割(hor)を表す。1であれば、垂直分割(ver)を表す。dは、分割形式フラグを表す。0であれば、対称分割(SBT:Symmetric Binary Tree)を表す。1であれば、非対称分割(ABT:Asymmetric Binary Tree)を表す。dが1である場合のみ、非対称分割における細分化割合(1/4又は3/4)の情報を確認する。0である場合、左/右ブロック又は上/下ブロックにおいて、左ブロックと上ブロックとの比は、1/4であり、上ブロックと下ブロックとの比は、3/4である。1である場合、逆の割合を有する。
(2)二分木分割のみが実行できる場合
上記表において、a以外のフラグbからeで、分割情報を表すことができる。
図8において、A7ブロックの場合、事前分割ブロック(A7からA11)において四分木分割を実行できる(つまり、四分木分割を実行できるが、四分木分割ではなく、二分木分割になった場合)ため、(1)における分割情報の生成に対応する。
また、A8からA11の場合、事前分割ブロック(A8からA11)において四分木分割が実行されていないが、二分木分割が実行された場合(つまり、ブロック<A8からA11>において四分木分割を実行できなくなった場合)、(2)における分割情報の生成に対応する。
(3回、左下ブロック、A12からA15)
該例において、多木分割(該例において、四分木、二分木、三分木である)をサポートし、且つ複数のブロック分割設定により、取得可能なブロックのサイズ及び形状を決定することができる。該例において、二分木/三分木の場合、最大符号化ブロックが64×64であり、最小符号化ブロックの一辺の長さが4であり、最大分割深度が4であると仮定する。
該例において、分割により取得可能なブロックが2以上である(該例において、2、3、4である)場合、一回の分割操作に必要な分割情報は、分割を行うかどうかを示すフラグ、分割種類を表すフラグ、分割形状を示すフラグ、分割方向を示すフラグであり、取得可能な候補は、4M x 4N、 4M x 2N、2M x 4N、4M x N/4M x 2N/4M x N、M x 4N/2M x 4N/M x 4Nである。
四分木の分割範囲が二分木/三分木の分割範囲と重なり合い、且つ現在ブロックが、四分木分割により得られたブロックであると、分割情報は、以下を含んでもよい。
上記表において、aは、四分木分割を実行するかどうかを示すフラグである。1であれば、四分木分割を実行する。該フラグが0であれば、二分木分割を実行するかそれとも三分木分割を実行するかを示すフラグであるbを確認する。bが0であれば、該ブロックに対して更なる分割を実行しない。1であれば、二分木分割又は三分木分割を実行する。
cは、分割方向を示すフラグである。0であれば、水平分割を表す。1であれば、垂直分割を表す。dは、分割種類を表すフラグである。0であれば、バイナリ分割(BT)を表す。1であれば、三分木分割(TT)を表す。
(2)二分木/三分木分割のみが実行可能である場合
上記表において、a以外のフラグbからdで分割情報を表すことができる。
図8において、A12、A15ブロックは、事前分割ブロックA12からA15において四分木分割を実行できる場合に対応する。従って、(1)における分割情報の生成に対応する。
また、A13及びA14は、事前分割ブロックA13、A14における分割が四分木ではなく三分木であるため、(2)における分割情報の生成に対応する。
(4回、左下ブロック、A16-A20)
該例において、多木分割(該例において四分木、二分木、三分木である)をサポートし、複数のブロック分割設定により、取得可能なブロックのサイズ及び形状を決定することができる。該例において、二分木/三分木の場合、最大符号化ブロックが64×64であり、最小符号化ブロックの一辺の長さが4であり、最大分割深度が4であると仮定する。
該例において、分割(該例において、2、3、4である)により、2つ以上のブロックを得ることができる時、一回の分割操作に必要な分割情報は、分割を実行するかどうかを示すフラグ、分割種類を示すフラグ、分割形式を示すフラグ、分割方向を示すフラグである。取得可能な候補は、4M×4N、4M×2N、2M×4N、4M×N/4M×3N、4M×3N/4M×N、M×4N/3M×4N、3M×4N/M×4N、4M×N/4M×2N/4M×N、M×4N/2M×4N/M×4Nである。
四分木の分割範囲が二分木/三分木の分割範囲と重なり合い、現在のブロックが、四分木分割で得られたブロックである場合、分割情報は、以下を含んでもよい。
上記表において、aは、四分木分割を実行するかどうかを示すフラグである。1であれば、四分木分割を実行する。該フラグが0であれば、二分木分割を実行するかどうかを示すフラグbを確認する。bが0であれば、該ブロックに対して更なる分割を実行しない。1であれば、二分木分割又は三分木分割を実行する。
cは、分割方向を示すフラグである。0であれば、水平分割を表す。1であれば、垂直分割を表す。dは、分割種類を示すフラグである。0であれば、三分木分割を表す。1であれば、二分木分割を表す。dが1であれば、分割形式に対応するフラグeを確認する。eが0であれば、対称分割を実行する。eが1であれば、非対称分割を表す。eが1であれば、非対称分割における細部分割割合の情報情報を確認する。これは、上記例と同じである。
(2)二分木/三分木分割のみが実行できる場合
上記表において、a以外のフラグbからfで分割情報を表すことができる。
図8において、A20ブロックは、予備分割ブロックA16からA19において四分木分割を実行できるため、(1)における分割情報の生成に対応する。
また、A16からA19の場合、予備分割ブロックA16からA19において四分木分割ではなく二分木分割を実行したため、(2)における分割情報の生成に対応する。
続いて、本発明における予測部のフレーム内予測を説明する。
図9は、画像の符号化/復号装置において予め定義されたフレーム内予測モードの例を示す図である。
図9を参照すると、67個の予測モードは、フレーム内予測に用いられる予測モード候補グループとなるように構成される。ここで、65個の予測モードは、方向性モード(2から66)であり、2個の予測モードは、非方向性モード(DC、平面)である。この場合、方向性モードは、勾配(例えば、dy/dx)又は角度情報(度)に分けられてもよい。上記例で説明された全て又は一部の予測モードは、輝度成分又は色差成分の予測モード候補グループに含まれてもよく、他の付加モードは、予測モード候補グループに含まれてもよい。
また、色空間同士の相関性を利用することで、符号化/復号を完了したもう1つの色空間の復元ブロックを現在ブロックの予測に用いることができ、また、それをサポートする予測モードを含んでもよい。例えば、色差成分の場合、現在ブロックに対応する輝度成分の復元ブロックを利用して、現在ブロックの予測ブロックを生成することができる。つまり、色空間同士の相関性を考慮して、復元ブロックに基づいて予測ブロックを生成することができる。
符号化/復号の設定に基づいて、予測モード候補グループを自己適応的に決定することができる。予測の正確性を向上させるために、候補グループの数を増加させてもよい。また、予測モードによるビット量を減させるために、候補グループの数を減少させてもよい。
例えば、A候補グループ(67個であり、65個の方向性モード及び2個の非方向性モードである)、B候補グループ(35個であり、33個の方向性モード及び2個の非方向性モードである)、C候補グループ(18個であり、17個の方向性モード及び1個の非方向性モードである)のうちの1つを選択し、ブロックのサイズ及び形状に基づいて、候補グループを自己適応的に選択又は決定することができる。
また、予測モード候補グループは、符号化/復号の設定に基づいて様々な設定を有してもよい。例えば、図2に示すように、図9において、モード同士の均等化方式で予測モード候補グループを背定する。又は、図9において、18と34とのモード数が2と18とのモード数より大きいという方式で候補グループを設定することができる。又は、逆であってもよい。また、ブロックの形状(つまり、正方形、矩形_水平長の場合、矩形_垂直長の場合)に基づいて候補グループを自己適応的に設定することができる。例えば、現在ブロックの幅が高さより大きいと、2から15に属するフレーム内予測モードを利用せず、67から80に属するフレーム内予測モードで置き換えを行うことができる。また、現在ブロックの幅が高さ未満であれば、53から66に属するフレーム内予測モードを利用せず、-14から-1に属するフレーム内予測モードで置き換えを行うことができる。
本発明において、別途説明しない限り、同一のモード間隔を有する所定の予測モード候補グループ(候補グループA)を利用してフレーム内予測を実行するが、本発明の主な素子は、変更された後に、上記自己適応的フレーム内予測に用いることができる。
図9は、ブロックの形状が正方形又は矩形である場合にサポートされる予測モードであってもよい。また、ブロックの形状が矩形である場合、サポートされる予測モードは、上記例と異なる予測モードであってもよい。例えば、予測モード候補グループの数が異なる。又は、予測モード候補グループの数が同じであるが、ブロック長さがより長い予測モードは、密集する。逆に、予測モードを分散させるか又は逆にしてもよい。本発明において、図9に示すように、ブロックの形状に関わらず、予測モードについて、予測モード設定(方向性モード間の等しい間隔)をサポートする上で説明するが、他の状況にも適用可能である。
様々な方法で、予測モードに割り当てるインデックスを設定することができる。方向性モードの場合、予測モードの角度又は傾斜度情報に基づいて、事前設定された優先度情報に応じて、各モードに割り当てられるインデックスを決定することができる。例えば、x軸又はy軸に対応するモード(図9におけるモード18、50)は、順位の高い優先度を有してもよい。また、前記水平又は垂直モードに基づいて45度又は-45度の角度差を有する対角線モード(モード2、34、66)は、次の優先度を有する可能性がある。前記対角線モードに基づいて22.5度又は-22.5度の角度差を有する対角線モードは、次の優先度を有する可能性がある。このような方式(次は、11.25度又は-11.25度等である)又は他の種々の方法で優先度情報を設定することができる。
又は、所定の予測モードに基づいて、特定の方向順でインデックスを割り当てることができる。例えば、図9に示すように、1つの対角線モード(モード2)から、時計回り方向に沿ってインデックスを割り当てることができる。下記例において、所定の予測モードに基づいて、時計回り方向に沿ってインデックスを割り当てることを例として説明する。
また、非方向性予測モードは、方向性モードに優先してインデックス情報を割り当てることができる。又は、方向性モード間でインデックス情報を割り当てることができる。又は、末端でインデックス情報を割り当てることができる。これは、符号化/復号の設定によって決まってもよい。該例において、非方向性モードについて予測モードのうち最も優先してインデックスを割り当てる例(低インデックス割り当てを利用する。モード0が平面であり、モード1がDCである)について、説明する。
上記例により、予測モードに割り当てられるインデックスの種々の例を説明したが、上記例に限定されず他の設定でインデックスを割り当ててもよい。又は、種々の変換例を有してもよい。
上記例において、予測モードにインデックスを割り当てる例において、優先度情報を説明したが、優先度情報は、予測モードにインデックスを割り当てることに用いられるだけでなく、予測モードの符号化/復号プロセスに用いられてもよい。例えば、優先度情報は、MPM設定などに用いられてもよく、また、予測モードの符号化/復号プロセスにおいて、複数の優先度情報集合をサポートすることができる。
以下、現在ブロックのフレーム内予測モード(特に、輝度成分)を導出する方法を説明する。
現在ブロックは、画像の符号化/復号装置で予め定義されたデフォルトモードを用いることができる。前記デフォルトモードは、方向性モード又は非方向性モードであってもよい。例えば、方向性モードは、垂直モード、水平モード又は対角線モードのうちの少なくとも1つを含んでもよい。非方向性モードは、平面モード又はDCモードのうちの少なくとも1つを含んでもよい。現在ブロックがデフォルトモードを用いると決定する場合、現在ブロックのフレーム内予測モードをデフォルトモードとして設定することができる。
又は、複数のMPM候補に基づいて、現在ブロックのフレーム内予測モードを導出することができる。まず、前記予測モード候補グループから所定のMPM候補を選択することができる。MPM候補の数は、3つ、4つ、5つ又はより多いの数であってもよい。現在ブロックに隣接する隣接ブロックのフレーム内予測モードに基づいて、MPM候補を導出することができる。隣接ブロックは、現在ブロックの左側、上端、左上端、左下端又は右上端のうちの少なくとも1つに隣接するブロックであってもよい。
具体的には、左側ブロックのフレーム内予測モード(candIntraPredModeA)と上端ブロックのフレーム内予測モード(candIntraPredModeB)が同じであるかどうか、candIntraPredModeAとcandIntraPredModeBが非方向性モードであるかどうかによって、MPM候補を決定することができる。
例えば、candIntraPredModeAとcandIntraPredModeBが同じであり、且つcandIntraPredModeAが非方向性モードではない場合、現在ブロックのMPM候補は、candIntraPredModeA、(candIntraPredModeA-n)、(candIntraPredModeA+n)又は非方向性モードのうちの少なくとも1つを含んでもよい。ここで、nは、1、2又はより大きい整数であってもよい。前記非方向性モードは、平面モード又はDCモードのうちの少なくとも1つを含んでもよい。例えば、下記表2に示すように、現在ブロックのMPM候補を決定することができる。表2のインデックスは、MPM候補の位置又は優先度を示すが、これに限定されない。例えば、DCモードにindex1を割り当てるか又はindex4を割り当てることができる。
又は、candIntraPredModeAとcandIntraPredModeBが異なり、且つcandIntraPredModeAとcandIntraPredModeBがいずれも非方向性モードではない場合、現在ブロックのMPM候補は、candIntraPredModeA、candIntraPredModeB、(maxAB-n)、(maxAB+n)又は非方向性モードのうちの少なくとも1つを含んでもよい。ここで、maxABは、candIntraPredModeA及びcandIntraPredModeBのうちの最大値を表し、nは、1、2又はより大きい整数であってもよい。前記非方向性モードは、平面モード及びDCモードのうちの少なくとも1つを含んでもよい。例えば、下記表3に示すように、現在ブロックのMPM候補を決定することができる。表3のインデックスは、MPM候補の位置又は優先度を示すが、これに限定されない。例えば、DCモードに最大のindexを割り当てることができる。candIntraPredModeAとcandIntraPredModeBとの差が所定の閾値範囲内である場合、表3におけるMPM候補1を適用する。そうでなければ、MPM候補2を適用する。ここで、閾値範囲は、2以上62以下の範囲であってもよい。
又は、candIntraPredModeAとcandIntraPredModeBが異なり、且つcandIntraPredModeA及びcandIntraPredModeBのうちの1つのみが非方向性モードである場合、現在ブロックのMPM候補は、maxAB、(maxAB-n)、(maxAB+n)又は非方向性モードのうちの少なくとも1つを含んでもよい。ここで、maxABは、candIntraPredModeA及びcandIntraPredModeBの最大値を表し、nは、1、2又はより大きい整数であってもよい。前記非方向性モードは、平面モード及びDCモードのうちの少なくとも1つを含んでもよい。例えば、表4に示すように、現在ブロックのMPM候補を決定することができる。表4のindexは、MPM候補の位置又は優先度を示すが、これに限定されない。例えば、DCモードにインデックス0を割り当てるか又は最大indexを割り当てる。
又は、candIntraPredModeAとcandIntraPredModeBが異なり、且つcandIntraPredModeAとcandIntraPredModeBがいずれも非方向性モードである場合、現在ブロックのMPM候補は、非方向性モード、垂直モード、水平モード、(垂直モード-m)、(垂直モード+m)、(水平モード-m)又は(水平モード+m)のうちの少なくとも1つを含んでもよい。ここで、mは、1、2、3、4又はより大きい整数であってもよい。前記非方向性モードは、平面モード及びDCモードのうちの少なくとも1つを含んでもよい。例えば、下記表5に示すように、現在ブロックのMPM候補を決定することができる。表5のindexは、MPM候補の位置又は優先度を示すが、これに限定されない。例えば、水平モードにindex1を割り当てる又は最大indexを割り当てることができる。
前記複数のMPM候補のうち、MPMインデックスにより示されるMPM候補は、現在ブロックのフレーム内予測モードと設定されてもよい。MPMインデックスは、画像の符号化装置により符号化してシグナルリングすることができる。
上述したように、デフォルトモード又はMPM候補のうちのいずれか1つを選択的に利用することでフレーム内予測モードを導出することができる。符号化装置からシグナルリングされているフラグに基づいて選択を実行することができる。この場合、フラグは、現在ブロックのフレーム内予測モードをデフォルトモードにするかどうかを示すことができる。前記フラグが第1値であれば、現在ブロックのフレーム内予測モードをデフォルトモードにする。そうでなければ、現在ブロックのフレーム内予測モードをMPM候補から導出するかどうかに関する情報、MPMインデックス等の情報をシグナルリングすることができる。
色差成分は、輝度成分の予測モード候補グループと同じである候補グループを有してもよく、又は輝度成分の予測モード候補グループのうちの一部のモードによって候補グループを構成してもよい。この場合、色差成分の予測モード候補グループは、固定構成又は可変(又は自己適応的な)構成を有してもよい。
(固定候補グループ構成vs可変候補グループ構成)
固定構成の例として、輝度成分の予測モード候補グループのうちの一部のモード(例えば、DCモード、平面モード、垂直モード、水平モード、対角線モードであると仮定し、対角線モードが、DL、UL、URのうちの少なくとも1つのモードであると仮定し、DLは、右下から右上への方向に予測を行い、ULは、左上から右下への方向に予測を行い、URは、右上から左下への方向に予測を行い、それぞれ図9におけるモード2、34及び66であると仮定し、また、他の対角線モードであってもよい)を色差成分の予測モード候補グループとして構成し、フレーム内予測を実行する。
可変構成の一例として、輝度成分の予測モード候補グループのうちの一部のモード(例えば、DCモード、平面モード、垂直モード、水平モード、対角URモードであると仮定し、通常、多く選択されるモードを基本予測モード候補グループとして構成する)を色差成分の基本予測モード候補グループとして構成する。前記候補グループに含まれるモードが色差成分の特性を正確に反映できない可能性があり、これを改良するために、色差成分の予測モード候補グループ構成を変えてもよい。
例えば、色差成分のブロックと同じ位置又はそれに対応する位置の輝度成分のブロック又はサブブロックの少なくとも1つの予測モードを(後続の例1)基本予測モード候補グループに含ませることができる。又は、幾つかのモードを置き換えて、新たな予測モード候補グループ(後続の例2)を構成することができる。例えば、輝度成分における、色差成分<色フォーマットによる>に対応する位置は、1つのブロックで構成されず、ブロック分割により複数のサブブロックに分割される場合、所定の位置のブロックを表す。この場合、色差成分のブロックに対応する輝度成分ブロックにおける左上、右上、左下、右下、中間、上中、下中、左中,右中等の位置で所定ブロックの位置を決定する。画像内の座標で区別するとした場合、左上は、(0,0)座標を含む位置であってもよく、右上は、(blk_width-1,0)座標を含む位置であってもよく、左下は、(0,blk_height-1)座標を含む位置であってもよく、右下は、(blk_width-1,blk_height-1)座標を含む位置であってもよく、中心は、(blk_width/2-1,blk_height/2-1)、(blk_width/2,blk_height/2-1)、(blk_width/2-1,blk_height/2)、(blk_width/2,blk_height/2のうちの1つの座標を含む位置であってもよく、上中は、(blk_width/2-1,0)、(blk_width/2,0)のうちの1つの座標を含む位置であってもよく、下中は、(blk_width/2-1,blk_height-1)、(blk_width/2,blk_height-1)のうちの1つの座標を含む位置であってもよく、左中は、(0,blk_height/2-1)、(0,blk_height/2)のうちの1つの座標を含む位置であってもよく、右中は、(blk_width-1,blk_height/2-1)、(blk_width-1,blk_height/2)のうちの1つの座標を含む位置であってもよい。つまり、前記座標位置を含むブロックを意味する。上記blk_widthとblk_heightは、輝度ブロックの水平及び垂直方向の長さを指す。座標は、上記に限定されず、他を含んでもよい。次の記述において、色差成分の予測モード候補グループに追加される輝度成分の予測モード<又は色モード>は、所定の優先度<例えば、左上-右上-左下-右下-中間とする>に基づいて、少なくとも1つの予測モードを追加する。2つの予測モードを追加する場合、上記設定に基づいて、左上ブロックのモード及び右上ブロックのモードを追加する。この場合、左上及び右上位置でのブロックは、1つのブロックで構成される場合、次の優先度の左下ブロックモードを追加する。
又は、現在ブロックを中心として、左、上、左上、右上、左下等に位置する隣接ブロック又は対応するブロックのサブブロック(隣接ブロックが複数のブロックで構成される場合)の少なくとも1つの予測モード(所定の位置のブロックに隣接ブロックを指してもよい。複数のモードが色差成分の予測モード候補グループに含まれる時、優先度に応じて候補集合として所定の優先度のブロック、及びサブブロック内に位置する所定の優先度のサブブロックの予測モードを含んでもよい)を、基本予測モード候補グループに含ませることができる。又は、一部のモードを置き換えることで新たな予測モード候補グループを構成することができる。
上記記述に付加内容が追加される場合、輝度成分のブロック又は隣接ブロック(輝度ブロック)の予測モードを含んでもよいだけでなく、該予測モードから導出された少なくとも1つのモードを色差成分の予測モードとして含んでもよい。下記例において、輝度成分の予測モードを色差成分の予測モードとして含む例を挙げる。輝度成分の予測モードから導出された予測モード(例えば、該モードの隣接モード、方向性モードを例として、水平モード18が輝度成分の予測モードである場合、モード17、19、16等のモードは、導出された予測モードに相当する。色差成分の複数の予測モードを色差成分の予測モード候補グループとする場合、候補グループ構成の優先度は、輝度成分の予測モードから輝度成分の予測モードから導出されたモードまでの順番に応じて設定されてもよい)又は隣接ブロックの予測モードから導出された予測モードを色差成分の予測モード候補グループとして含む例に関する詳細な説明を省略するが、下記記載と同様な構成又は変わった構成を適用することができる。
一例(1)として、輝度成分の予測モードが色差成分の予測モード候補グループのうちの1つと合致した場合、候補グループの構成が同じであり(候補グループの数が不変のままであり)、合致しない場合、候補グループの構成は、異なる(候補グループの数は増加する)。
上記例における候補グループの構成が同じである場合、予測モードのインデックスは、同じであってもよいか又は他のインデックスが割り当てられてもよい。これは、符号化/復号の設定によって決まってもよい。例えば、色差成分の予測モード候補グループのインデックスが平面0、DC1、垂直2、水平3、対角線UR4であると、輝度成分が水平である場合、予測モード候補グループの構成は、不変のままであり、各予測モードのインデックスは、不変のままであり、又は他のインデックス(該例において、水平0、平面1、DC2、垂直3、対角線UR4)が割り当てられてもよい。上記インデックス再設定は、予測モード符号化/復号プロセスにおいて、少ないモードビット(少ないビッドを小さなインデックスに割り当てると仮定する)を生成するために実行されるプロセスの例であってもよい。
上記例における候補グループの構成が異なる場合、予測モードのインデックスが不変のままである場合に追加されてもよい又は異なるインデックスが割り当てられてもよい。例えば、予測モード候補グループのインデックス構成が前記例と同じであると、輝度成分の予測モードが対角線DLである場合、予測モード候補グループの構成を1増加させる。また、現在の候補グループの予測モードのインデックスが不変のままであり、新規追加されたモードのインデックスを最終のものとするか(該例において、対角線DL5である)又は他のインデックスを割り当てることができる(該例において、対角線DL0、平面1、DC2、垂直3、水平4、対角線UL5)。
例(2)として、輝度成分の予測モードが、色差成分の予測モード候補グループのうちの1つと合致した場合、候補グループの構成が同じである(候補グループのモードが不変のままである)。また、合致しない場合、候補グループの構成が異なる(候補グループのモードのうちの少なくとも1つを置き換える)。
上記例における候補グループの構成が同じである場合、予測モードのインデックスは同じであってもよく又は他のインデックスが割り当てられてもよい。例えば、色差成分の予測モード候補グループのインデックスが平面0、DC1、垂直2、水平3、対角線UR4であると、輝度成分の予測モードが垂直である場合、予測モード候補グループの構成は、不変のままであり、また、各予測モードのインデックスは不変のままである。又は、他のインデックスを割り当ててもよい(該例において、垂直0、水平1、対角線UL2、平面3、DC4である。輝度成分のモードが方向性モードである場合の方向性モードが前に位置する例、輝度成分が非方向性である場合の非方向性モードが前に位置する例であってもよいが、これに限定されない)。
上記例における候補グループの構成が異なる場合、予測モードのインデックスが不変のままであるモードは、不変であり、且つ置き換えたモードのインデックスを変更モードに割り当てることができるか又は現在と異なるインデックスを複数の予測モードに割り当てることができる。例えば、予測モード候補グループのインデックス構成が上記例と同じであり、輝度成分の予測モードが対角線DLである場合、予測モード候補グループのうちの1つのモード(本例において対角線ULである)を置き換える。また、現在の候補グループの予測モードインデックスは、不変のままである。置き換えられるモードのインデックスを割り当て、新規追加されたモードのインデックス(例えば、対角線DL4)とする。又は、他のインデックス(該例において、対角線DL0、平面1、DC2、垂直(3)、水平4)を割り当てる。
前記説明において、より少ないモードビットを割り当てることを目的として、インデックスの再設定の例を示すが、これは、符号化/復号の設定による例だけであり、他の例を有してもよい。予測モードのインデックスが不変のままであれば、少量のビットを小さいインデックスに割り当てる二値化を実行することができる。又は、インデックスの大きさと無関係にビットを割り当てる二値化を実行することができる。例えば、再設定された予測モード候補グループが、平面0、DC1、垂直2、水平3、対角線DL4である場合、大きいインデックスを対角線DLに割り当てても、輝度成分から得られたモードであるため、他の予測モードよりも少ないモードビットと設定することができる。
前記予測モードは、画像タイプと無関係にサポートされるモードであってもよい。幾つかの画像(例えば、画像Iタイプがサポートするモードであるが、画像タイプP又はBがサポートしないモードである)タイプに基づいて、サポートされるモードであるかどうかを決定することができる。
上記例で説明される内容は、例示に過ぎず、付加又は変更された例を有してもよい。また、上記例で説明される符号化/復号の設定は、暗黙的に決定されてもよく又はビデオ、シーケンス、ピクチャ、slice、tile等を単位として関連情報を明示的に含んでもよい。
(同一の色空間における予測値の取得vs他の色空間における予測値の取得)
上記例で説明されるフレーム内予測モードの場合、同一の時刻、同一の空間内の隣接領域から、予測ブロックの生成に用いられるデータを得る方法(例えば、補外、補間、平均化など)の予測モードを説明する。
また、同一の時刻、異なる空間内の領域から、予測ブロックの生成に用いられるデータを得る方法の予測モードをサポートすることができる。
例えば、上記内容の例は、色空間同士の相関性を利用して他の色空間から予測ブロックの生成に用いられるデータを得る方法の予測モードであってもよい。この場合、YCbCrを例とした場合、色空間同士の相関性は、YとCb、YとCr、CbとCrの相関性を表すことができる。つまり、色差成分Cb又はCrの場合、現在ブロックに対応する輝度成分の復元ブロックを現在ブロックの予測ブロックとして生成することができる(色差vs輝度は、後述される例の基本構成である)。又は、幾つかの色差成分(Cr又はCb)の現在ブロックに対応する幾つかの色差成分(Cb又はCr)の復元ブロックを色差成分(Cr又はCb)の予測ブロックとして生成することができる。この場合、他の色空間の復元ブロックを予測ブロックとして直接的に生成することができる(つまり、補正を実行しない)。又は、色同士の相関性を考慮して得られたブロックを予測ブロックとして生成することができる(例えば、現在の復元ブロックに対して補正を実行する。P=a*R+bにおいて、a及びbは、補正にもちられる値を表す。R及びPはそれぞれ、様々な色空間で得られた値及び現在の色空間の予測値を表す)。
該例において、色空間同士の相関性を用いることで得られたデータを現在ブロックの予測値として用いることを例として説明するが、該データを、既存の現在ブロックの予測値を補正する補正値(例えば、他の色空間の残差値を補正値として用いる。つまり、他の予測値が存在し、該予測値に対して補正を行う。これらの予測値を加算した値も予測値である。詳しく区別するために説明する)として用いることもできる。本発明において、前者を説明するが、本発明はこれに限定されず、同じ補正値又は変換した補正値を用いることもできる。
前記予測モードは、画像タイプと関係なくサポートされるモードであってもよい。幾つかの画像(例えば、画像タイプIがサポートするモードであるが、画像タイプP又はBがサポートしないモードである)タイプに基づいて、サポートされるモードであるかどうかを決定することもできる。
(相関性情報の取得のために比較される部分)
上記例において、色空間同士の相関性情報(a、b等)は、相関情報を明示的に含んでもよく、暗黙的に得られたものであってもよい。この場合、相関情報を得るために比較される領域は、1)色差成分の現在ブロックと輝度成分に対応するブロックであってもよい。又は、2)色差成分の現在ブロック的の隣接領域(例えば、左ブロック、上ブロック、左上ブロック、右上ブロック、左下ブロック等)と輝度成分に対応するブロックに隣接する領域であってもよい。前者は、明示的な処理の場合の例であり、後者は、暗黙的な処理の場合の例である。
例えば、各色空間の少なくとも1つの画素値の比較などにより関連情報を得る(この場合、比較される画素値(Pixel Value)は、各色空間における1つの画素(Pixel)から得られた画素値であってもよく、また、複数の画素から得られた画素値であってもよい。加重平均化などのフィルタリングプロセスにより導出さた画素値である。つまり、各色空間の1つの画素値の比較のために参照又は使用される画素の数は、1つの画素vs1つの画素、1つの画素vs複数の画素等であってもよい。この場合、前者は、予測値を生成するための色空間である可能性があり、後者は、参照として用いられる色空間である可能性がある。上記例は、色フォーマットによるものであってもよい。又は、色フォーマットと無関係な方式で色成分の1つの画素値を輝度成分に対応する1つの画素の画素値と比較し、色差成分の1つの画素の画素値を輝度成分の複数の画素に対してフィルタリング<a-tap separate 1D filter、b x c mask non-separable 2D filter、d-tap directional filter等>を行うことで得られた画素値と比較し、符号化/復号の設定に基づいて、両者のうちの1つの方法を利用することができる。上記において、色差及び輝度の例を説明するが、色差<Cb>及び色差<Cr>の変換例を有してもよい)。
上記例において、関連情報を暗黙的に取得する時に比較する領域は、現在の色成分の現在ブロックの最近傍画素ライン(例えば、p[-1,-1]~p[blk_width-1,-1]、p[-1,0]~p[-1,blk_height-1]に含まれる画素)及びそれに対応する他の色空間の画素ライン、又は現在の色成分の現在ブロックの複数の画素ライン(例えば、上記場合、p[-2,-2]~p[blk_width-1,-2]、p[-2,-1]~p[-2,blk_height-1]を含む複数の画素ラインに含まれる画素)及びそれに対応する他の色空間の画素ラインであってもよい。
具体的には、色フォーマットが4:2:0であると仮定する。現在色空間(該例において色差である)における1つの画素の画素値を比較するために、他の色空間(該例において輝度である)における対応する4つの画素(色差成分の1つの画素は、輝度成分の2×2内の4つの画素に対応する)における所定の位置(該例において、2×2内の左上、右上、左下、右下から選択する)での1つの画素の画素値を用いることができる。又は、色度空間における1つの画素の画素値を比較するために、輝度空間における複数の画素(例えば、対応する2×2画素のうちの少なくとも2つの画素など)に対してフィルタリングを実行することで得られた画素値を用いることができる。
要するに、現在ブロックの隣接領域の復元した画素又はそれに対応する他の色空間の復元した画素から前記パラメータ情報を導出することができる。つまり、関連情報に基づいて、少なくとも1つのパラメータを生成することができ(例えば、a又はb、a1、b1又はa2、b2等)、また、他の色空間における復元ブロックと乗算又は加算される値(例えば、a、a1、a2/b、b1、b2)としてもよい。
この場合、上記例で比較された画素の利用可能性を確認した後に比較処理を実行することができる。例えば、隣接領域が利用可能である場合、それを、比較される画素に作用させることができる。隣接領域が利用不可能である場合、符号化/復号の設定によって決まってもよい。例えば、隣接領域における画素が利用不可能である場合、色空間の相関情報を得るプロセスにおいてそれを除外することができる。又は、利用不可能な領域をパディングした後にそれを比較プロセスに含ませることができる。これは、符号化/復号の設定によって決まってもよい。
例えば、色空間同士の相関性情報を得るプロセスにおいて除外される場合、少なくとも1つの色空間の画素を含む領域が利用不可能である例であってもよい。詳しくは、2つの色空間のうちの画素が利用不可能であるか又は2つの色空間の画素が利用不可能である例である。これは、符号化/復号の設定によって決まってもよい。
又は、利用不可能な領域において、比較のためのデータをパディングした後(又は、参照画素パディングプロセスに類似した操作)、色空間同士の相関性情報を得るためのプロセスを実行する場合、種々のパディング方法を用いることができる。例えば、所定の画素値(例えば、ビット深度の中間値1<<(bit_depth-1)、画像の実際画素の最小値と最大値との値、画像の実際画素の平均値、中間値など)でパディングすることができる。又は、隣接画素又は隣接画素に対してフィルタリング(参照画素フィルタリングプロセスに類似した操作)を実行することで得られた値でパディングすることができる。又は、他の方法を用いることができる。
図10は、相関性情報を得るために色空間同士の画素を比較する例を示す。説明を容易にするために、4:4:4の色フォーマットを用いると仮定する。この場合、色フォーマットの成分比に基づいて後続のプロセス(つまり、成分比による変換プロセスを含む)を説明する。
R0は、両側の色空間領域を使用できる例を表す。両側の色空間領域がいずれも使用可能な領域であるため、比較仮定において、対応する領域の画素を使用して関連情報を得ることができる。
R1は、両側の色空間領域のうちの1つが使用不可能である例を表す(該例において、現在の色空間の隣接空間が使用可能であり、他の色空間に対応する領域が使用不可能である)。種々の方法で、使用不可能な領域をパディングした後、使用不可能な領域を比較プロセスに用いることができる。
R2は、両側の色空間領域のうちの1つが使用不可能である例を表す(該例において、色空間の隣接領域が使用不可能であり、他の色空間に対応する領域は、使用可能である)。片側で使用不可能な領域が存在するため、比較プロセスにおいて、2つの色空間に対応する領域を用いることができない。
R3は、両側の色空間領域がいずれも使用不可能である例を表す。種々の方法で、使用不可能な領域をパディングする。これを比較プロセスに用いることができる。
R4は、両側の色空間領域がいずれも使用不可能である例を表す。両側でいずれも、使用不可能な領域が存在するため、比較プロセスにおいて、両側の色空間に対応する領域を用いることができない。
また、図10と異なっており、現在ブロックの隣接領域又は他の色空間に対応する領域がいずれも使用不可能である場合、様々な設定を行うことができる。
一例として、所定値(該例において、aは、1であり、bは、0である)をa及びbに割り当てることができる。この場合、1つのモードを保持することを意味する可能性がある。該モードは、現在ブロックの予測ブロックを用いてもう1つの色空間のデータをパディングする。また、このような場合、予測モード符号化/復号を実行する時、該モードの発生(又は選択)確率又は優先度は、現在の場合と異なるように設定されてもよい(例えば、選択確率を低い確率と見做すか又は優先度を優先順位の低い優先度と設定する。換言すれば、正確度の低い相関性情報であるため、該予測モードにより得られた予測ブロックの正確度が極めて低い可能性がある。最終的に最適な予測モードとして選択されることが不能である)。
例えば、比較されるデータが存在しないため、現在ブロックの予測ブロックでもう1つの色空間のデータをパディングするモードをサポートしない可能性がある。つまり、該モードは、少なくとも1つの使用可能な領域が存在する場合にサポートされるモードであってもよい。この場合、予測モード符号化/復号を実行する時、他のモードで該モードで代替することを許容しないと設定してもよい。前者は、予測モード候補グループの数を維持する設定であってもよく、後者は、予測モード候補グループの数が減少した設定であってもよい。
上記例に限定されず、様々な変換例を有してもよい。
上記例において、使用不可能な場合は、該領域において符号化/復号が完了されていない場合、画像(例えば、ピクチャ,slice,tile等)の境界外に位置する(つまり、現在ブロック及び該領域は、同一の画像内に含まれない)場合を指す。また、符号化/復号の設定(例えば、constrained_intra_pred_flag等。例えば、P又はB slice/タイプの場合、上記フラグが1であり、対応する領域の符号化モードがInterである時)に基づいて、使用不可能なものを追加することができる。
後述される例において、色空間の比較により関連情報を得た後、他の色空間の復元データを使用して現在ブロックの予測ブロックを生成する場合、上記制限が生じる可能性がある。つまり、上述したように、現在ブロックに対応する他の色空間の領域が使用不可能である場合、該モードの使用は、制限されるか又は利用不可能になる可能性がある。
上記プロセスで得られた色空間同士の相関性情報を表すパラメータ及び現在ブロックに対応する他の色空間の復元データを使用して現在ブロックの予測値を生成することができる。この場合、現在ブロックの予測に用いられる他の色空間の復元データは、所定の位置での画素の画素値又はフィルタリングプロセスにより得られた画素値であってもよい。
例えば、4:4:4の場合、色度空間の1つの画素の予測性を生成するために、輝度空間において、画素に対応する画素値を用いることができる。又は、色度空間の1つの画素の予測値を生成するために、輝度空間において、複数の画素(例えば、対応する画素を中心として、左、右、上、下、左上、右上、左下、右下等の方向に位置する画素。5-tap及び7-tapフィルタを用いることを例として、対応する画素を中心とした、左、右、上、下でそれぞれ2つ、3つが存在すると理解されてもよい)に対してフィルタリングを実行することで得られた画素値を用いることができる。
例えば、4:2:0の場合、色度空間の1つの画素の予測値を生成するために、輝度空間における対応する4つの画素(色差成分の1つの画素は、輝度成分の2×2個の画素に対応する)における所定の位置(左上、右上、左下、右下から選択される)での1つの画素の画素値を用いることができる。又は、色度空間の1つの画素の予測値を生成するために、輝度空間において複数の画素(例えば、対応する2×2画素のうちの少なくとも2つの画素である。又は、2×2画素を中心として、左、右、上、下、左上、右上、左下、右下などの方向に位置する画素である)に対してフィルタリングを実行することで得られた画素値を用いることができる。
要するに、上記プロセスで得られた相関性情報を表すパラメータを他の色空間で得られた画素値に適用(乗算又は加算など)することで、画素値を得て、現在色空間内の画素の予測値とすることができる。
上記例において、幾つかの色フォーマット、幾つかの画素値取得プロセスなどを説明したが、これに限定されず、他の場合に、同一の例又は修正した例を用いることができる。
(同一の色空間での予測値の取得vs異なる色空間での予測値の取得)で説明された内容は、固定の候補グループ構成vs可変候補グループ構成に適用可能である。例えば、他の色空間において予測値を取得できない場合、候補グループに、予測値の置き換えモードが含まれてもよい。
上記例によれば、上記予測モードの場合、画像、シーケンス、ピクチャ、slice、tileを単位として関連情報(例えば、サポートするかどうかに関わる情報、パラメータ情報など)を含んでもよい。
要するに、方法(上記方法は、符号化/復号の設定に基づいて、同一の時刻、同一の空間内の隣接領域から、予測ブロックの生成に用いられるデータを取得する方法である)に関わる予測モード(モードA)で、予測モード候補グループを構成する。又は、前記予測モード以外に、予測モード候補グループは、方法(上記方法は、同一の時刻、異なる空間内の領域から、予測ブロックの生成に用いられるデータを取得する方法である)に関わる予測モード(B_mode)を含んでもよい。
上記例において、モードAのみ又はモードBの身を用いて予測モード候補グループを構成することができる。また、モードAとモードBを混用することで予測モード候補グループを構成することができる。また、予測モード候補グループ構成に関わる設定情報を明示的に生成するできる。又は、予測モード候補グループ構成に関わる情報を予め暗黙的に決定することができる。
例えば、幾つかの符号化/復号の設定(該例において画像タイプである)と関係なく、同じ構成を有してもよい。又は、幾つかの符号化/復号の設定に基づいて単一の構成を有してもよい(例えば、I画像タイプにおいて、モードA、モードB_1<色モード>、モードB_2<カラーコピーモード>で予測モード候補グループを構成し、P画像タイプにおいて、モードA、モードB_1で予測モード候補グループを構成し、B画像タイプにおいて、モードA及びモードB_2で予測モード候補グループ等を構成する)。
本発明において、輝度成分のための予測モード候補グループは、図9に示すとおりである。色差成分の予測モード候補グループは、図9において水平、垂直、対角線モード(図9における平面、DC、カラーモード1、カラーモード2、カラーモード3、カラーコピーモード1、カラーコピーモード2、隣接ブロックモード1(左ブロック)、隣接モード2(上ブロック))で構成されることを例として説明するが、他の種々の予測モード候補グループ構成を有してもよい。
本発明の実施例による画像の符号化方法において、フレーム内予測は、以下のように構成されてもよい。予測部のフレーム内予測は、参照画素配置ステップ、予測ブロック生成ステップ、予測モード決定ステップ及び予測モード符号化ブロックを含んでもよい。また、画像の符号化装置は、参照画像配置ステップ、予測ブロック生成ステップ、予測モード決定ステップ、予測モード符号化ステップを実現させるための参照画素配置部、予測ブロック生成部、予測モード符号化部を備えるように構成されてもよい。上記プロセスのうちの幾つかのステップを省略してもよく、他のステップを追加してもよく、上記順番以外の他の順番に変換してもよい。
また、本発明の実施例による画像復号方法において、フレーム内予測は、以下のように構成されてもよい。予測部のフレーム内予測は、予測モード復号ステップ、参照画素配置ステップ、予測ブロック生成ステップを含んでもよい。また、画像の復号装置は、予測モード復号ステップ、参照画素配置ステップ、予測ブロック生成ステップを実現させるための予測モード復号部、参照画素配置部、予測ブロック生成部を備えるように構成されてもよい。上記プロセスのうちの幾つかのステップを省略してもよく、他のステップを追加してもよく、上記順番以外の他の順番に変換してもよい。
前記予測ブロックブロック生成ステップにおいて、現在ブロック(例えば、符号化ブロック、予測ブロック、変換ブロック等)を単位としたフレーム内予測を実行することができる。又は、所定のサブブロックを単位とするフレーム内予測を実行することができる。このため、現在ブロックがサブブロックに分割されてフレーム内予測を行うかを指示するためのフラグを用いることができる。フラグは、符号化装置により符号化してシグナルリングされてもよい。該フラグが第1値であれば、現在ブロックは、複数のサブブロックに分割される。そうでなければ、現在ブロックは、複数のサブブロックに分割されない。ここの分割は、上記ツリー構造ベースの分割の後に実行される付加的分割であってもよい。現在ブロックに属するサブブロックは、1つのフレーム内予測モードを共有するが、各サブブロックのために異なる参照画素を配置することができる。又は、前記サブブロックは、同一のフレーム内予測モード及び参照画素を用いることができる。又は、サブブロックは、同一の参照画素を用いることができるが、各サブブロックについて異なるフレーム内予測モードを用いることができる。
垂直又は水平方向に前記分割を実行することができる。符号化装置からシグナルリングされるフラグに基づいて、分割方向を決定することができる。例えば、前記フラグが第1値である場合、水平方向に分割を行うことができる。そうでなければ、垂直方向に分割を行うことができる。又は、現在ブロックのサイズに基づいて分割方向を決定することができる。例えば、現在ブロックの高さが所定の閾値より大きい場合、水平方向に分割を行うことができる。また、現在ブロックの幅が所定の閾値より大きい場合、垂直方向に分割を行うことができる。ここで、閾値は、符号化/復号装置において予め定義された固定値であってもよい。又は、ブロックサイズに関わる情報(例えば、最大変換ブロックのサイズ、最大符号化ブロックのサイズなど)に基づいて閾値を決定することができる。ブロックサイズに関わる情報について、シーケンス、ピクチャ、slice、tile、brick又はCTU rowのうちの少なくとも1つのレベルでシグナルリングすることができる。
現在ブロックのサイズ、形状、分割深度、フレーム内予測モード等により、サブブロックの数を可変に決定することができる。例えば、現在ブロックが4×8又は8×4である場合、現在ブロックは、2つのサブブロックに分割されてもよい。又は、現在ブロックが8×8以上である場合、現在ブロックは、4つのサブブロックに分割されてもよい。
本発明において、主に、エンコーダを説明する。デコーダの場合、エンコーダの操作に基づいて導出できるため、詳細な説明を省略する。
図11は、フレーム内予測に用いられる参照画素配置を示す概略図である。分割ブロック部から、予測に用いられる現在ブロックのサイズ及び形状(M×N)を得て、4×4から128×128の範囲内でフレーム内予測をサポートできることを例として説明する。一般的には、予測ブロックユニットでフレーム内予測を実行できるが、分割ブロック部の設定に基づいて、符号化ブロック、変換ブロック単位のフレーム内予測を実行することができる。ブロック情報を確認した後、参照画素配置部は、現在ブロックの予測に用いられる参照画素を配置することができる。この場合、一時メモリ(例えば、アレイ<Array>、メインアレイ又はサブアレイなど)により参照画素を管理することができる。該ブロックの各フレーム内予測プロセスにおいて、該参照画素を生成して削除する。また、一時メモリの容量は、参照画素の配置によって決まってもよい。
該例において、現在ブロックを中心として、左ブロック、上ブロック、左上ブロック、右ブロック、左下ブロックが現在ブロックの予測に用いられることを例として説明するが、これに限定されない。他の構成を有するブロック候補グループを現在ブロックの予測に用いることができる。例えば、前記参照画素に対する隣接ブロックの候補グループは、ラスタ又はZ走査の場合の一例であってもよい。また、走査順番に応じて前記候補グループのうちの一部を除去してもよく、又は他のブロック候補グループ(例えば、上ブロック、下ブロック、右下ブロック等を付加的に配置する)を含むように構成されてもよい。
又は、他の色空間(例えば、現在ブロックがCrに属すれば、他の色空間は、Y又はCbに対応する)における現在ブロックに対応するブロック(例えば、各色空間における同一の座標又は色成分の構成比に基づいて、対応する座標を有する場合)は、現在ブロックの予測に用いられる。また、説明を容易にするために、前記所定の位置(左、上、左上、右上、左下)で1つのブロックを構成することを例として説明するが、対応する位置で、少なくとも1つのブロックが存在してもよい。つまり、前記所定の位置で、対応するブロックを分割することで得られた複数のサブブロックが存在してもよい。
要するに、現在ブロックの隣接領域は、現在ブロックのフレーム内予測に用いられる参照画素の位置であってもよい。また、予測モードに基づいて、もう1つの色空間の現在ブロックに対応する領域を更に参照画素の位置とすることを考慮してもよい。上記例に加えて、予測モード、方法等に基づいて定義された参照画素の位置を決定することができる。例えば、ブロックマッチングなどのような方法で予測ブロックを生成する場合、参照画素の位置を、現在画像の現在ブロックの前の符号化/復号を完了した領域又は符号化/復号を完了した領域におけるサーチ範囲内に含まれる領域(例えば、現在ブロックの左側、上側、左上側又は右上側等を含む)と認めることができる。
図11に示すように、現在ブロックの予測に用いられる参照画素は、左ブロック、上ブロック、左上ブロック、右上ブロック、左下ブロックの隣接画素(図11におけるRef_L、Ref_T、Ref_TL、Ref_TR、Ref_BL)で構成されてもよい。この場合、参照画素は一般的には、現在ブロックに最も近接する隣接ブロックの画素(図11のa)で構成されるが、他の画素(図11のb及び他の外線の画素)を含んでもよい。つまり、現在ブロックに隣接する第1画素ラインa、第1画素ラインに隣接する第2画素ラインb、第2画素ラインに隣接する第3画素ライン又は第3画素ラインに隣接する第4画素ラインのうちの少なくとも1つを用いることができる。例えば、符号化/復号の設定に基づいて、複数の画素ラインは、第1から第4画素ラインの全てを含んでもよく、又は、第3画素ライン以外の他の画素ラインを含んでもよく、又は、複数本の画素ラインは、第1画素ライン及び第4画素ラインのみを含んでもよい。
現在ブロックは、複数本の画素ラインのうちのいずれか1本を選択的に参照してフレーム内予測を実行することができる。この場合、符号化装置からシグナルリングされるインデックス(refIdx)に基づいて前記選択を実行することができる。又は、現在ブロックのサイズ、形状、分割種類、フレーム内予測モードが非方向性モードであるかどうか、フレーム内予測モードの角度等に基づいて、複数本の画素ラインのうちのいずれか1本を選択的に用いることができる。例えば、フレーム内予測モードが平面モード又はDCモードである場合、第1画素ラインのみを用いてもよい。又は、現在ブロックのサイズ(幅又は高さ)が所定の閾値以下である場合、第1画素ラインのみを用いてもよい。又は、フレーム内予測モードが所定の閾値角度より大きい(又は所定の閾値角度未満である)場合、第1画素ラインのみを用いてもよい。前記閾値角度は、前記予測モード候補グループのモード2、モード66に対応するフレーム内予測モードの角度であってもよい。
また、現在ブロックに隣接する画素は、少なくとも1つの参照画素層に分類されてもよい。現在ブロックに最も近接する画素は、ref_0(現在ブロックの境界画素の画素値との差が1である画素。p(-1,-1)からp(2m-1,-1)、p(-1,0)からp(-1,2n-1))である。次の隣接画素(現在ブロックの境界画素の画素値との差が2である。p(-2,-2)からp(2m,-2)、p(-2,-1)からp(-2,2n))は、ref_1である。次の隣接画素(現在ブロックの境界画素の画素値との差が3である。p(-3,-3)からp(2m+1,-3)、p(-3,-2)からp(-3,2n+1))は、ref_2等である。つまり、参照画素は、現在ブロックの境界画素に隣接する画素の距離に基づいて、複数の参照画素層に分類されてもよい。
また、ここで、各隣接する隣接ブロックに対して異なる参照画素層を設定することができる。例えば、現在ブロック及び上端に隣接するブロックを参照ブロックとする場合、層ref_0による参照画素を用いることができる。また、上端に隣接するブロックを参照ブロックとする場合、層ref_1による参照画素を用いることができる。
この場合、一般的に、フレーム内予測を実行する場合に参照される参照画素集合は、現在ブロックに隣接する隣接ブロックに属する。該隣接ブロックは、左下、左、左上、上端、右上端に位置し、また、層ref_0(境界画素に最も近接する画素)に属する画素である。別途説明しない限り、これらの画素であると認められる。しかしながら、上記隣接ブロックに属する一部の画素のみを参照画素集合として用いることができる。又は、2つ以上の層に属する画素を参照画素集合として用いることができる。ここで、参照画素集合又は層を暗黙的に決定するか(符号化/復号装置で事前設定される)又は明示的に決定することができる(符号化装置から決定のための情報を受け取ることができる)。
ここで、サポートされる参照画素層の最大数が3であることを例として説明するが、該数より大きい値を有してもよい。参照画素層の数と参照可能な隣接ブロックの位置による参照画素集合の数(又は、参照画素候補グループと呼ばれてもよい)は、ブロックのサイズ、形状、予測モード、画像タイプ(I/P/B。この場合、画像は、ピクチャ、slice、tile等である)、色成分などに基づいて異なるように設定されてもよく、また、シーケンス、ピクチャ、slice、tileを単位として関連情報に含まれてもよい。
本発明は、現在ブロックに最も近接する参照画素層から低インデックス(0から1ずつ逓増する)を割り当てることを例として説明するが、本発明は、これに限定されない。また、上記インデックス設定(複数の参照画素集合のうちの1つを選択する場合、低インデックスに対して短いビットを割り当てる二値化等)で、後述される参照画素配置の関連情報を生成することができる。
また、2つ以上の参照画素層がサポートされる場合、2つ以上の参照画素層に含まれる各参照画素を加重平均化に用いることができる。
例えば、参照画素を用いて予測ブロックを生成することができる。該参照画素は、図11の層ref_0(最近傍の画素層)及び層ref_1(次の画素層)における画素の加重和から得られたものである。この場合、予測モード(例えば、方向性予測モード)に基づて、各参照画素層に加重和が適用される画素は、整数単位の画素であってもよく、小数単位の画素であってもよい。また、加重値(例えば、7:1、3:1、2:1、1:1)を、第1参照画素層の参照画素を用いることで得られた予測ブロック及び第2参照画素層の参照画素を用いることで得られた予測ブロックにそれぞれ適用することで、1つの予測ブロックを得る。この場合、現在ブロックに隣接する参照画素層による予測ブロックであれば、より高い加重値を有してもよい。
一般的には、上記例において、隣接ブロックの最近傍画素を参照画素とすることができるが、これに限定されない。例えば、様々な数であってもよい(例えば、ref_0及びref_1を参照画素層として選択し、ref_0及びref_1により加重加算などの方法を実行することで予測画素値を生成する。つまり、暗黙的な場合である)。
また、参照画素配置に関わる情報(例えば、参照画素層又は集合に関する選択情報等)は、所定の情報(例えば、参照画素層がref_0と事前設定される場合)を含まなくてもよい。例えば、ref_1、ref_2、ref_3等と配置されてもよいが、これに限定されない。
上記例により参照画素配置を説明すうが、これは、様々な符号化/復号情報などと組み合わせてフレーム内予測設定を決定することができる。この場合、符号化/復号情報は、画像タイプ、色成分、現在ブロックのサイズ、形状、予測モード(予測モードの種類(方向性、非方向性)、予測モードの方向(垂直、水平、対角線1、対角線2等)等を含む。また、隣接ブロックの符号化/復号情報及び現在ブロックと隣接ブロックの符号化/復号情報の組み合わせにより、フレーム内予測設定(該例において、参照画素配置設定である)を決定することができる。
図12は、フレーム内予測に用いられる参照画素範囲を示す概略図である。詳しくは、参照画素範囲は、ブロックのサイズ、形状、予測モードの構成(該例において、予測モードの角度情報である)等によって決まってもよい。図12における矢印により示される位置は、予測に用いられる画素である。
図12を参照すると、A、A’、B、B’、C画素は、8×2、2×8、8×4、4×8、8×8ブロックの右側下端に位置する画素を指す。該画素の予測を実行するために、上側及び左側ブロックで用いられる画素AT、AL、BT、BL、CT、CLにより、各ブロックの参照画素範囲を確認することができる。
例えば、参照画素がA及びA’画素(矩形ブロック)である場合、p(0,-1)からp(9,-1)、p(-1,0)からp(-1,9)、p(-1,-1)の範囲内にある。参照画素がB及びB’画素(矩形ブロック)である場合、p(0,-1)からp(11,-1)、p(-1,0)からp(-1,11)、p(-1,-1)の範囲内にある。参照画素がC画素(正方形ブロック)である場合、p(0,-1)からp(15,-1)、p(-1,0)からp(-1,15)、p(-1,-1)の範囲内にある。
上記プロセスで得られた参照画素の範囲情報(例えば、P(-1,-1)、P(M+N-1,-1)、P(-1,N+M-1)等をフレーム内予測プロセス(例えば、参照画素フィルタリング、予測画素生成プロセス等)に用いることができる。また、参照画素をサポートする場合は、上記に限定されず、他の場合を有してもよい。
フレーム内予測の参照画素配置部は、参照画素生成部、参照画素補間部、参照画素フィルタ部等を備えてもよく、また、上記構成の全て又は一部を備えてもよい。
参照画素配置部は、参照画素の利用可能性(Availability)を確認し、利用可能な参照画素及び利用不可能な参照画素に対して分類を行うことができる。例えば、所定の位置でのブロック(又は参照画素候補ブロック)を使用できれば、対応するブロックを参照画素として用いることができ、ブロックを使用できなければ、該ブロックを参照画素として用いることができない。
下記条件のうちの少なくとも1つを満たす場合、参照画素が利用不可能であると判定する。例えば、ピクチャ境界外に位置すること、現在ブロックと同一の分割単位(例えば、slice、tile等)に属しないこと、符号化/復号が完了されていないこと、符号化/復号の設定に応じて使用が制限されることのうちのいずれか1つを満たすと、利用不可能であると判定する。つまり、上記条件を満たしない場合、利用可能であると判定する。
また、参照画素の使用は、符号化/復号の設定に制限される。例えば、限られたフレーム内予測(例えば、constrained_intra_pred_flag)を実行するかどうかに基づいて参照画素の使用を制限することができる。通信環境などのような外部要因に対して、エラーロバスト性符号化/復号を実行する場合、他の画像から参照されて復元されたブロックを参照画素として用いることを禁止しようとする時、限られたフレーム内予測を実行することができる。
前記限られたフレーム内予測を非活性化する場合(例えば、Iピクチャタイプ又はP又はBピクチャタイプにおいて、constrained_intra_pred_flag=0)、全ての参照画素候補ブロックは、利用可能である。活性化する場合(例えば、P又はB画像タイプにおいて、constrained_intra_pred_flag=1)、参照画素候補ブロックの符号化モード(フレーム内又はフレーム間)に基づいて、対応するブロックの参照画素を用いるかどうかを決定することができる。つまり、ブロックの符号化モードがIntraであれば、限られたフレーム内予測を活性化するかどうかに関わらず、該ブロックを用いることができる。Interの場合、限られたフレーム内予測が活性化されているかどうかに基づいて、利用可能であるか(非活性化)又は利用不可能である(活性化)と判定する。
また、もう1つの色空間における現在ブロックに対応する復元ブロックの符号化モードに基づいて、限られたフレーム内予測を適用することができる。例えば、現在ブロックは、幾つかの色差成分Cb、Crに属する。また、現在ブロックに対応する輝度成分Yの符号化/復号を完了したブロックの符号化モードに基づいて、利用可能であるかを判定することができる。上記例は、他の色空間の復元ブロックを参照画素として用いる例であってもよい。また、色空間に基づいて符号化モードを独立して決定する例であってもよい。
この場合、参照画素候補ブロックは、幾つかの予測方(例えば、現在画像において、ブロックマッチング又はテンプレートマッチングなどにより予測を行う)で符号化/復号を完了する場合、符号化/復号の設定に基づいて、参照画素を用いるかどうかを決定することができる。
一例として、前記予測方法で符号化/復号を実行する場合、符号化モードをIntraとすると、対応するブロックが利用可能であると判定することができる。又は、Intraであっても、利用不可能であるという特別の場合を許容できる。
例えば、前記予測方法で符号化/復号を実行する場合、符号化モードをInterとすると、対応するブロックが利用不可能であると判定することができる。又は、Interであっても、利用可能であるという特別の場合を許容できる。
つまり、符号化/復号の設定に基づいて、符号化モードに応じて使用できるかどうかを決定することについて、例外を作るかを決定することができる。
限られたフレーム内予測は、幾つかの画像タイプ(例えば、P又はB slice/tileタイプ等)に適用される設定であってもよい。
参照画素の利用可能性により、参照画素候補ブロックを、全ての参照画素候補ブロックがいずれも利用可能である場合、幾つかの参照画素を利用できる場合、全ての参照画素がいずれも利用不可能である場合に分類することができる。全ての参照画素候補ブロックがいずれも利用可能である場合以外、他の全ての場合に、候補ブロック位置での利用不可能な参照画素をパディング又は生成することができる。
参照画素候補ブロックが利用可能である場合、該ブロックの所定位置の画素(該例において、該画素が現在ブロックに隣接すると仮定する)を現在ブロックの参照画素メモリに記憶することができる。この場合、対応するブロック位置での画素データを、直接コピー又は参照画素フィルタリングなどのプロセスにより参照画素メモリに記憶することができる。
参照画素候補ブロックが利用不可能である場合、参照画素生成プロセスにより、得られた画素を現在ブロックの参照画素メモリに記憶することができる。
要するに、参照画素候補ブロックが利用可能な状態である場合、参照画素を配置することができる。参照画素候補ブロックが利用不可能な状態である場合、参照画素を生成することができる。
以下、様々な方法で、利用不可能なブロック位置での参照画素をパディングする例を示す。
例えば、任意の画素値で参照画素を生成することができる。また、該画素値は、画素値範囲に属する画素値であってもよい(例えば、ビット深度に基づいた画素値調整プロセス又は画像の画素値範囲情報に基づいた画素値調整プロセスなどの最小値、最大値、中間値などから導出された値)。詳しくは、これは、全ての参照画素候補ブロックがいずれも利用不可能である場合の適用例であってもよい。
又は、符号化/復号を完了した画像から参照画素を生成することができる。詳しくは、利用不可能なブロックに隣接する少なくとも1つの利用可能なブロックから参照画素を生成することができる。この場合、補外、補完、コピーなどの方法の少なくとも1つを用いることができる。また、参照画素生成(又はコピー、補外)方向は、時計回り方向又は逆時計回り方向であってもよく、符号化/復号の設定によって決まってもよい。例えば、ブロック内の参照画素生成方向は、所定の方向に沿ってもよく、又は利用不可能なブロックの位置によって自己適応的に決まった方向に沿ってもよい。又は、他の色空間における、現在ブロックに対応する領域の場合、上記例と同様な方法を用いることができる。相違点は以下のとおりである。現在色空間において現在ブロックの隣接参照画素をパディングするプロセスであれば、他の色空間の場合、現在ブロックm×nに対応するブロックM×Nをパディングプロセスを行う。従って、前記方法を含む他の種々の方法(例えば、Planarの補間、平均化などのような、周囲画素の垂直、水平、対角線等の方向での補外。この場合、パディング方向は、現在ブロックに対応するブロックの周囲画素からブロックの内部に指向する方向を指す)で対応する領域を生成することができる。該例は、他の色空間から予測ブロックを生成するための予測モードを、候補グループから除外することなく、候補グループに含ませる例であってもよい。
また、参照画素の利用可能性の確認プロセスにより、参照画素の配置を完了した後、参照画素の線形補間により、小数単位の参照画素を生成することができる。又は、参照画素フィルタリングプロセスを実行した後に参照画素補間プロセスを実行することができる。又は、配置された参照画素に対するフィルタリングプロセスのみを実行することができる。要するに、予測ブロック生成プロセスの前に実行することができる。
この場合、水平、垂直、幾つかの対角線モード(例えば、対角線右下、対角線左下、対角線右上)、非方向性モード、色モード、カラーコピーモード等の場合、補間プロセスを実行しない。他のモード(他の対角線モード)の場合、補間を実行することができる。
サポートされる予測モード候補グループ(又は予測モードの総数)、予測モード設定(例えば、予測モード方向角度、予測モード間隔)等に基づいて、補間精度を決定することができる。
小数単位の参照画素補間のために、1つの所定のフィルタ(例えば、2タップ線形補間フィルタ)を用いることができ、複数のフィルタ候補グループのうちの1つ(例えば、4タップ三次フィルタ、4タップガウシアンフィルタ、6タップウィーナーフィルタ、8タップカルマンフィルタ)を用いることができる。
複数のフィルタ候補グループのうちの1つを用いる場合、フィルタ選択情報を明示的に生成するか又は暗黙的に決定することができ、また、符号化/復号の設定(例えば、補間精度、ブロックサイズ、形状、予測モード等)によって決まってもよい。
例えば、ブロックサイズの範囲に基づいて、用いられる補間フィルタを決定し、補間精度に基づいて、用いられる補間フィルタを決定し、予測モードの特性(例えば、方向性情報など)に基づいて、補間フィルタを決定することができる。
詳しくは、ブロックサイズ範囲によれば、範囲Aで所定の補間フィルタaを用い、範囲Bで所定の補間フィルタbを用い、範囲Cで複数の補間フィルタCのうちの1つの補間フィルタcを用い、範囲Dで、複数の補間フィルタDのうちの1つの補間フィルタdを用い、幾つかのhん愛で、所定の補間フィルタを用い、幾つかの範囲で複数の補間フィルタのうちの1つを用いることができる。この場合、1つの補間フィルタを用いると、暗黙的な場合に属し、複数の補間フィルタのうちの1つの補間フィルタを用いると、明示的な場合に属する。ブロックサイズ範囲に対して分割を行うブロックのサイズは、M×Nであってもよい(該例において、M及びNは、4、8、16、32、64、128等である。つまり、M及びNは、各ブロックサイズ範囲の最小値又は最大値であってもよい)。
ビデオ、シーケンス、ピクチャ、slice、tile、ブロックなどを単位として前記補間関連情報を含んでもよい。補間プロセスは、参照画素配置部により実行されるプロセスであってもよく、又は、予測ブロック生成部により実行されるプロセスであってもよい。
また、参照画素を配置した後、参照画素に対してフィルタリングを行う。これにより、符号化/復号プロセスを行った後に残った劣化を減少させることで予測精度を向上させる。この場合、用いられるフィルタは、ローパスフィルタであってもよい。符号化/復号の設定に基づいて、フィルタリングを適用するかどうかを決定することができる。フィルタリングを適用すれば、固定フィルタリング又は自己適応的フィルタリングを適用することができる。また、ブロックのサイズ、形状、予測モード等に基づいて符号化/復号の設定を定義することができる。
固定フィルタリングは、所定のフィルタを参照画素フィルタ部に適用することを指す。自己適応的フィルタリングは、複数のフィルタのうちの1つのフィルタを参照画素フィルタ部に適用することを指す。この場合、自己適応的フィルタリングであると、符号化/復号の設定に基づいて複数のフィルタのうちの1つを暗黙的に決定するか又は選択情報を明示的に生成することができる。フィルタ候補グループとして、3タップ(例えば、[1,2,1]/4)又は5タップ(例えば、[2,3,6,3,2])等のフィルタを含んでもよい。
一例として、幾つかの設定(ブロック範囲A)で、フィルタリングを適用しなくてもよい。
一例として、幾つかの設定(ブロック範囲B、幾つかのモードC)で、フィルタリングを適用しなくてもよく、また、幾つかの設定(ブロック範囲B、幾つかのモードD)で、所定のフィルタ(3タップフィルタ)によりフィルタリングを適用することができる。
例えば、幾つかの設定(ブロック範囲E、幾つかののモードF)で適用しなくてもよく、また、幾つかの設定(ブロック範囲E、幾つかのモードG)で、所定のフィルタ(3タップフィルタ)によりフィルタリングを適用することができる。幾つかの設定(ブロック範囲E、幾つかのモードH)で、所定のフィルタ(5タップフィルタ)によりフィルタリングを適用することができる。幾つかの設定(ブロック範囲E、幾つかのモードI)で、複数のフィルタのうちの1つを選択してフィルタリングを実行することができる。
一例として、幾つかの設定(ブロック範囲J、幾つかのモードK)で、所定のフィルタ(5タップフィルタ)によりフィルタリングを適用することができ、また、所定のフィルタ(3タップフィルタ)により、フィルタリングを更に適用することができる。つまり、複数のフィルタリングプロセスを実行することができる。詳しくは、先行フィルタリング結果に基づいてフィルタリングを更に適用することができる。
上記例において、ブロックサイズ範囲に対して分割を行うブロックのサイズは、MxNであってもよい(該例において、M及びNは、4、8、16、32、64、128等である。つまり、M及びNは、各ブロックサイズ範囲の最小値又は最大値であってもよい)。また、予測モードを方向性モード、非方向性モード、カラーモード、カラーコピーモード等に大まかに分類することができる。また、詳しくは、水平又は垂直モード/対角線モード(45度間隔)/水平又は垂直モードに隣接するモード1、水平或垂直モードに隣接するモード2(モード間隔は、前のモード間隔よりも僅かに長い)等である。つまり、上述したように、分類モードに基づいて、フィルタリングを適用するかどうか、フィルタリングのタイプを決定することができる。
また、上記例において、ブロック範囲、予測モード等のような複数の要因に基づいて自己適応的フィルタリングを適用することを示す。しかしながら、前記複数の要因を常に必要とするとは限らない。、また、少なくとも1つの要因に基づいて自己適応的フィルタリングを適用する例を有してもよい。また、上記例に限定されず、種々の変換例を有してもよい。ビデオ、シーケンス、ピクチャ、slice、tile、ブロックを単位として参照画素フィルタ関連情報を含んでもよい。
所定のフラグに基づいて上記フィルタリングを選択的に実行することができる。ここで、フラグは、参照画素をフィルタリングしてフレーム内予測を行うかどうかを指示することができる。フラグは、符号化装置により符号化してシグナルリングされてもよい。又は、現在ブロックの符号化パラメータに基づいて、復号装置からフラグを導出することができる。前記符号化パラメータは、参照画素の位置/領域、ブロックサイズ、成分タイプ、サブブロックを単位とするフレーム内予測及びフレーム内予測モードのうちの少なくとも1つを適用するかどうかを含んでもよい。
例えば、現在ブロックの参照画素が現在ブロックに隣接する第1画素ラインである場合、参照画素に対してフィルタリングを実行することができる。そうでなければ、参照画素に対してフィルタリングを実行しなくてもよい。又は、現在ブロックに属する画素の数が所定の閾値より大きいと、参照画素に対してフィルタリングを実行することができる。そうでなければ、参照画素に対してフィルタリングを実行しないことがある。閾値は、符号化/復号装置で予め約束した値であってもよく、また、16、32、64又はより大きな整数であってもよい。又は、現在ブロックのサイズが所定の閾値より大きい場合、参照画素に対してフィルタリングを実行することができる。そうでなければ、、参照画素に対してフィルタリングを実行しなくてもよい。閾値は、M×Nで表されてもよく、符号化/復号装置で予め約束した値である。M及びNは、8、16、32又はより大きな整数であってもよい。前記数閾値又はサイズ閾値は、前記数閾値又はサイズ閾値のうちの1つ又はそれらの組み合わせにより参照画素に対してフィルタリングを実行するように設定されてもよい。又は、現在ブロックが輝度成分であれば、参照画素に対してフィルタリングを実行することができる。そうでなければ、参照画素に対してフィルタリングを実行しなくてもよい。又は、現在ブロックが、サブブロック単位の上記フレーム内予測を実行していないと(つまり、現在ブロックは、複数のサブブロックに分割されていない)、参照画素に対してフィルタリングを実行する。そうでなければ、参照画素に対してフィルタリングを実行しなくてもよい。又は、現在ブロックのフレーム内予測モードが非方向性モード又は所定の方向性モードである場合、参照画素に対してフィルタリングを実行することができる。そうでなければ、参照画素に対してフィルタリングを実行しなくてもよい。ここで、非方向性モードは、平面モード又はDCモードであってもよい。しかしながら、非方向性モードのうちのDCモードで、参照画素のフィルタリングを実行することに制限されてもよい。前記方向性モードは、整数画素を参照するフレーム内予測モードを表すことができる。例えば、前記方向性モードは、図9に示すモード-14、-12、-10、-6、2、18、34、50、66、72、78、80に対応するフレーム内予測モードのうちの少なくとも1つを含んでもよい。しかしながら、方向性モードに、モード18及び50にそれぞれ対応する水平モード及び垂直モードを含まれないように限定することができる。
前記フラグに基づいて参照画素に対してフィルタリングを実行する場合、符号化/復号装置で予め定義されたフィルタにより、フィルタリングを実行することができる。前記フィルタのタップ数は、1、2、3、4、5又はより大きな数であってもよい。参照画素の位置に基づいて、フィルタタップの数を可変に決定することができる。例えば、1-タップフィルタを画素ラインの最下端、最上端、最左側、最右側のうちの少なくとも一側に対応する参照画素に適用し、3-タップフィルタを残りの参照画素に適用することができる。また、参照画素の位置に基づいてフィルタ強度を可変に決定することができる。例えば、フィルタリング強度s1を画素ラインの最下端、最上端、最左側、最右のうちの少なくとも一側に対応する参照画素に適用し、フィルタリング強度s2を残りの参照画素(s1<s2)に適用することができる。前記フィルタ強度は、符号化装置からシグナルリングされてもよく、又は、上記符号化パラメータによって決まってもよい。nタップフィルタを参照画素に適用する時、フィルタを現在参照画素及び(n-1)個の周囲参照画素に適用することができる。前記周囲参照画素は、現在参照画素の上端、下端、左側又は右側のうちの少なくとも1つの方向での画素を表すことができる。周囲参照画素は、現在参照画素と同一の画素ラインに属してもよく、また、周囲参照画素の一部は、現在参照画素と異なる画素ラインに属してもよい。
例えば、現在参照画素が現在ブロックの左側に位置する場合、周囲参照画素は、現在参照画素の上端又は下端の少なくとも方向での隣接画素であってもよい。又は、現在参照画素が現在ブロックの上端に位置する場合、周囲参照画素は、周囲参照画素は、現在参照画素の左側及び右側のうちの少なくとも1つの方向での隣接画素であってもよい。又は、現在参照画素が現在ブロックの左上端に位置する場合、周囲参照画素は、現在参照画素の下端又は右側のうちの少なくとも1つの方向での隣接画素であってもよい。前記フィルタの係数の割合は、[1:2:1]、[1:3:1]又は[1:4:1]であってもよい。
予測ブロック生成部は、少なくとも1つの予測モードに基づいて予測ブロックを生成し、フレーム内予測モードに基づいて参照画素を用いることができる。この場合、参照画素は、予測モードに基づいて補外(Extrapolation)等の方法(方向性モード)に用いられてもよく、また、補間(Interpolation)、平均値(DC)又はコピー(Copy)等の方法(非方向性モード)に用いられてもよい。また、上述したように、現在ブロックは、フィルタリングされた参照画素又はフィルタリングされていない参照画素を用いることができる。
図13は、予測ブロックの生成に関わる、現在ブロックに隣接するブロックを示す図である。
例えば、方向性モードの場合、水平モードと幾つかの対角線モード(対角線右上。水平以外の対角線を含む)とのモードで左下ブロック+左ブロック(図13におけるRef_BL、Ref_L)を用いることができる。水平モードで、左ブロックを用いることができる。水平と垂直とのモードで、左ブロック+左上ブロック+上ブロック(図13におけるRef_L、Ref_TL,Ref_T)を用いることができる。垂直モードで、上ブロック(図13におけるRef_L)を用いることができる。垂直と幾つかの対角線モード(対角線左下。垂直以外の対角線を含む)とのモードで、上ブロック+右上ブロック(図13におけるRef_T、Ref_TR)の参照画素を用いることができる。又は、非方向性モードで、左ブロック及び上ブロック(図13におけるRef_L、Ref_T)又は左下ブロック、左ブロック、左上ブロック、上ブロック、右上ブロックの参照画素(図13におけるRef_BL、Ref_L、Ref_TL、Ref_T、Ref_TR)を用いることができる。又は、色空間相関性のモード(カラーコピーモード)の場合、他の色空間の復元ブロック(図12に示されていないが、本発明において、Ref_Colと呼ばれる。同一時刻、異なる空間のブロックの並列参照(Collocated reference)を表す)を参照画素として用いることができる。
フレーム内予測に用いられる参照画素は、複数の概念に区分されてもよい。例えば、フレーム内予測に用いられる参照画素は、第1参照画素と第2参照画素として区分されてもよい。第1参照画素は、現在ブロックの予測値の生成に直接的に用いられる画素であってもよく、第2参照画素は、現在ブロックの予測値の生成に間接的に用いられる画素であってもよい。又は、第1参照画素は、現在ブロックの全ての画素の予測値の生成に用いられる画素であってもよく、第2参照画素は、現在ブロックの一部の画素の予測値の生成に用いられる画素であってもよい。又は、第1参照画素は、現在ブロックの主要の予測値の生成に用いられる画素であってもよく、第2参照画素は、現在ブロックの補助の予測値の生成に用いられる画素であってもよい。又は、第1参照画素(無条件)は、現在ブロックの予測方向の起点部の領域に位置する画素であってもよく、第2参照画素は、現在ブロック(必須)の予測方向の起点部に位置しない画素であってもよい。
上記例に示すように、種々の定義により、参照画像を区分できるが、予測モードに基づいて定義を区分しないケースもある。つまり、参照画素を区分するために用いられる定義は、予測モードによって異なる。
上記例により記載されている参照画素は、第1参照画像であってもよい。第2参照画素は更に予測ブロックの生成に関与することができる。幾つかの対角線モード(対角線右上。水平以外の対角線を含む)間のモードで、左上ブロック+上ブロック+右上ブロック(図13におけるRef_TL、Ref_T、Ref_TR)の参照画素を用いることができる。水平モードで、左上ブロック+上ブロック+右上ブロック(図13におけるRef_TL、Ref_T、Ref_TR)を用いることができる。垂直モードで、左上+左+左下ブロック(図13におけるRef_TL、Ref_T、Ref_TR)の参照画素を用いることができる。垂直モードで、左上ブロック+左ブロック+左下ブロック(図13におけるRef_TL、Ref_L、Ref_BL)の参照画素を用いることができ、垂直と幾つかの対角線モード(対角線左下。垂直以外の対角線を含む)の間のモードで、左上ブロック+左ブロック+左下ブロック(図13におけるRef_TL、Ref_L、Ref_BL)の参照画素を用いることができる。詳しくは、前記参照画素を第2参照画素として用いることができる。また、非方向性モード及びカラーコピーモードで、第1参照画像を用いるか又は第1、第2参照画素を用いて、予測ブロックを生成することができる。
また、第2参照画素は、符号化/復号を完了した画素を含むだけでなく、現在ブロックにおける画素(該例において、予測画素である)も含む。つまり、主要予測値は、補助予測値を生成するための画素であってもよい。本発明において、符号化/復号を完了した画素を第2参照画素として用いる例を主に説明するが、これに限定されない。符号化/復号を完了していない画素(該例において、予測画素である)を用いる変換例を有してもよい。
現在予測モードの欠点を補償するという目的で、複数の参照画素を用いて予測ブロックを生成又は補正することができる。
例えば、方向性モードは、幾つかの参照画素(第1参照画素)を用いて対応するブロックの方向性を予測するという目的で用いられるモードであるが、ブロックにおける変化を正確に反映できない可能性がある。これは、予測正確度の低下を引き起こす可能性がある。この場合、付加的参照画素(第2参照画素)を用いて予測ブロックを生成又は補正する場合、予測の正確度を向上させることができる。
従って、下記例において、上記例における種々の参照画素を用いて予測ブロックを生成する例を説明するが、本発明は、上記例に限定されない。第1、第2参照画素のような用語を使用しなくても、上記定義から導出して理解することができる。
付加的参照画素を用いて予測ブロックを生成するという設定を明示的に決定するか又は暗黙的に設定することができる。明示的な場合、単位は、ビデオ、シーケンス、ピクチャ、スライス、tile等を含んでもよい。下記例において、暗黙的処理を説明するが、本発明は、これに限定されない。また、他の修正(明示的な場合又は混用の場合)例を有してもよい。
予測モードによれば、種々の方式で予測ブロックを生成することができる。詳しくは、予測モードで用いられる参照画素の位置に基づいて予測方法を生成することができる。また、ブロックにおける画素位置に基づいて予測方法を決定することができる。
以下、水平モードの場合について説明する。
例えば、左ブロックが参照画素(図13におけるRef_L)として用いられる場合、(例えば、補外等)最近傍画素(図13における1300)を用いることで、水平方向に予測ブロックを生成する。
また、水平方向に対応する現在ブロックに隣接する参照画素を用いることで予測ブロックを生成(又は補正。生成は、最終的予測値に関わってもよい。補正は、全ての画素に関わらなくてもよい)することができる。詳しくは、ブロックに対応する最近傍画素(図13における1310。別の1320及び1330を考慮してもよい)を用いて予測値を補正する。かた、前記画素の変化程度又は勾配情報など(例えば、R0-T0、T0-TL、T2-TL、T2-T0、T2-T1等の画素値変化程度又は勾配情報)を補正プロセスにフィードバックすることができる。
この場合、補正を実行する画素は、現在ブロックにおける全ての画素であってもよく、一部の画素に限定されてもよい(例えば、特定の形状を有しないか又は不規則な位置にある単一の画素を単位として決定することができる。後述される例のように、ラインのような一定の形状を有する画素を単位として決定する。説明を容易にするために、後述される例において、ラインを単位とした画素単位を例として説明する)。前記補正画素が一部の画素に限定的に用いられる場合、単位を予測モード方向に対応する少なくとも1つのラインと決定することができる。例えば、aからdに対応する画素は、補正ターゲットに含まれてもよい。更に、eからhに対応する画素も補正ターゲットに含まれてもよい。また、前記ラインの位置と無関係に、ブロックの隣接画素から得られた補正情報を同様に適用することができる。又は、ラインを単位として上記補正情報を異なるように適用することができる。また、前記隣接画素との距離が遠いほど、補正情報の適用は少なくなることがある(例えば、距離に基づいて、L1-TL、L0-TL等のような大きい分割値を設定することができる。)。
この場合、補正対象に含まれる画素は、1つの画像において1つのみの設定を有してもよい。又は、種々の符号化/復号素子によって自己適応的に決定することができる。
自己適応的決定を例として、ブロックのサイズに基づいて、補正しようとする画素を決定することができる。8×8未満のブロックにおいて、いずれのラインを補正しない。8×8より大きくて32×32未満であるブロックについて、1本の画素ラインのみを補正することができる。32×32より大きいブロックについて、2本の画素ラインを補正することができる。ブロックサイズ範囲の定義は、本発明の上述から得られる。
又は、ブロックの形状(例えば、正方形、矩形。具体的には、水平方向の長さが長い矩形又は垂直方向の長さが長い矩形)に基づいて、補正しようとする画素を決定することができる。例えば、8×4ブロックの場合、2本の画素ライン(図13において、aからh)に対して補正を実行することができる。4×8ブロックの場合、1本の画素ライン(図13において、aからd)に対して補正を実行することができる。8×4の場合、水平方向に伸長したブロックの形状が水平モードと決定されると、現在ブロックの方向性は、上部ブロックに多く依存する。4×8の場合、垂直方向に伸長したブロックの形状が水平モードと決定されるt、現在ブロックの方向性は、上部ブロックにあまりに依存しない。また、上記と逆な設定も可能である。
又は、予測モードに基づいて、補正しようとする画素を決定することができる。水平又は垂直モードで、a個の画素ラインは、補正ターゲットであってもよい。他のモードで、b個の画素ラインは、補正ターゲットであってもよい。上述したように、幾つかのモード(例えば、非方向性モードDC、カラーコピーモード等)の場合、補正しようとする画素は、矩形形状ではなく、画素を単位(例えば、aからd、e、i、m)として指定された範囲である。後述される例において詳しく説明する。
上述に加えて、付加される符号化/復号素子に基づいて、自己適応的設定を適用することができる。上述において、水平モードに対する制限を主に説明したが、上記例に限定されず、同様又は類似した設定を他のモードに適用することもできる。また、1つの符号化/復号素子ではなく、複数の素子の組み合わせにより、上記例を実現させることができる。
垂直モードの場合、様々な方向を水平モードの予測方法に適用できるため、詳細な説明を省略する。また、下記例において、水平モードの説明と同様なものを省略する。
以下、対角線モード(Diagonalupright)の場合を説明する。
例えば、左ブロック及び左下ブロックを参照画素(第1参照画素又はメイン参照画素。図13におけるRef_L及びRef_BL)として用いる場合、ブロックに対応する(例えば、補外等)最近傍画素(図13における1300及び1340)を用いて対角線方向において予測ブロックを生成する。
また、対角線に対向する位置にある現在ブロックに隣接する参照画素(第2参照画素又は補助参照画素であり、図13におけるRef_T、Ref_TR)を用いて予測ブロックを生成(又は補正)することができる。詳しくは、ブロックに対応する最近傍画素(図13における1310及び1330であり、さらに1320も考慮してもよい)を用いて予測値を補正することもでき、また、前記補助参照画素及びメイン参照画素の加重平均値(例えば、予測画素とメイン参照画素、予測画素と補助参照画素のx軸又はy軸の距離差のいちの少なくとも1つに基づいて加重値を得ることができる。メイン参照画素及び補助参照画素に適用される加重値の例は、15:1から8:8を含んでもよい。2つ以上の補助参照画素があれば、加重値の例は、14:1:1、12:2:2、10:3:3、8:4:4等のように、補助参照画素間で同様な加重値を有してもよい。又は12:3:1、10:4:2、8:6:2等のように、補助参照画素は、異なる加重値を有してもよい。この場合、対応する予測画素を中心として、現在予測モード方向において、傾斜情報などの接近程度に基づいて、異なる加重値を決定する。つまり、予測画素と各補助参照画素の勾配がどの現在予測モードの勾配に近いかを確認する)により、補正プロセスにフィードバックすることができる。
この場合、前記フィルタリングは、1つの画像における1つの設定を有するか又は種々の符号化/復号素子によって前記フィルタリングを自己適応的に決定する。
自己適応的決定を例として、補正しようとする画素の位置に基づいて、フィルタリングを適用する画素(例えば、画素の数など)を決定することができる。予測モードが対角線モード(該例において、モード2である)であり、補正しようとする画素がcである場合、L3(該例において、第1参照画素である)を用いて予測を実行し、しかもT3(該例において、第2参照画素である)を用いて補正を実行する。つまり、1つの第1参照画素及び1つの第2参照画素を1つの画素予測に用いることができる。
又は、予測モードが対角線モード(該例においてモード3である)であって補正しようとする画素がbである場合、L1とL2との小数単位の画素に対して補間を行うことで得られたL1*(又はL2*。該例において第1参照画素である)を用いて予測を実行し、T2(該例において第2参照画素である)を用いて補正を実行し、又はT3を用いて補正を実行することができる。又は、T2及びT3を用いて補正を実行し、又は、予測モードの方向性に基づいて得られたT2とT3との小数単位の画素に対して補間を行うことで得られたT2*(又はT3*)を用いて補正を実行することができる。つまり、1つの画素を予測するために、1つの第1参照画素(該例において、L1*と仮定すると、直接的に用いられる画素がL1及びL2と認められる場合、2つの画素と認められる。又は、L1*に対して補間を実行するために用いられるフィルタに基づいて、2つ又はより多くの画素と認められる)及び2つの第2参照画素(該例において、T2とT3の場合、L1*は、1つの画素と認められる)を用いることができる。
要するに、少なくとも1つの第1参照画素及び少なくとも1つの第2参照画素を1つの画素予測に用いることができる。これは、予測モード及び予測画素の位置によって決まってもよい。
前記補正画素が限定的に幾つかの画素に適用されると、フレーム内予測モード方向に基づいて、少なくとも1本の水平ライン又は垂直ラインを単位として、補正された画素を決定することができる。例えば、a、e、i、mに対応する画素又はaからdに対応する画素は、補正ターゲットに含まれてもよい。更に、b、f、j、nに対応する画素又はeからhに対応する画素も補正ターゲットに含まれてもよい。幾つかの対角線右上(Diagonal up right)の場合、水平ライン単位の画素を補正することができる。幾つかの対角線左下(Diagonal down left)の場合、垂直ライン単位の画素を補正することができるが、これに限定されない。
上述に加えて、付加される符号化/復号素子に基づいて、自己適応的設定を適用することができる。上述において、対角線右上(Diagonal up right)に対する制限を主に説明するが、上記例において限定的に適用するだけでなく、同様又は類似した設定は、他のモードに適用可能である。また、1つの符号化/復号素子の組み合わせではなく、複数の素子により、上記例を実現させることができる。
対角線左下(Diagonal down left)の場合、対角線右上の予測方法について異なる方向を適用すればよいため、詳細な説明を省略する。
以下、左上(Diagonal up left)の場合を説明する。
例えば、左ブロック、左上ブロック及び上ブロックが参照画素(第1参照画素又はメイン参照画素。図13におけるRef_L、Ref_TL、Ref_T)として用いられる場合、ブロックに対応する(例えば、補外等)最近傍画素(図13における1300、1310、1320)を用いて対角線方向に予測ブロックを生成する。
また、対角線にマッチングした位置での現在ブロックに隣接する参照画素(第2参照画素又は補助参照画素。図13におけるRef_L、Ref_TL、Ref_T。位置は、メイン参照画素と同じである)を用いて予測ブロックを生成(又は補正)することができる。詳しくは、ブロックに対応する最近傍画素(図13における1300の左側に位置する画素、1320の左側、上側、左上側に位置する画素、1310の上側に位置する画素など)を用いて予測値を補正することもできる。また、前記補助参照画素及びメイン参照画素の加重平均値(例えば、メイン参照画素及び補助参照画素の加重値の比率の例は、7:1から4:4等であってもよい。補助参照画素が2つ以上である場合、加重値の例は、14:1:1、12:2:2、10:3:3、8:4:4等のように、補助参照画素において同一の加重値を有してもよく、又は、12:3:1、10:4:2、8:6:2のように、補助参照画素間で異なる加重値を有してもよい。この場合、メイン参照画素に近接するかどうかに基づいて、適用される加重値を決定することができる)又は線形補外などにより、前記補正プロセスにフィードバックすることができる。
前記補正された画素が限定的に幾つかの画素に適用されると、予測モードで用いられる参照画素に隣接する水平ライン又は垂直ラインを単位として、補正される画素を決定することができる。この場合、水平ライン及び垂直ラインを同時に考慮することができ、また、重なり合いを許容できる。例えば、aからdに対応する画素及びa、e、i、mに対応する画素(a重なり合い)は、補正ターゲットに含まれてもよい。更に、eからhに対応する画素及びb,f,j、nに対応する画素(a、b、e、f重なり合い)は、補正ターゲットに含まれてもよい。
以下、非方向性モード(DC)の場合を説明する。
例えば、左ブロック、上ブロック、左上ブロック、右上ブロック、左下ブロックのうちの少なくとも1つを参照画素として用いる場合、該ブロックの最近傍画素(該例において、図13における1300、1310の画素)を利用(例えば、平均化など)して予測ブロックを生成することができる。
又は、前記参照画素の隣接画素(参照画素の第2参照画素又は補助参照画素。図13におけるRef_L和Ref_Tの、該例における位置は、メイン参照画素と同じである。又は、メイン参照画素に加えて、次の近接位置での画素を更に含む。対角線右上(Diagonal up left)の場合に類似する)を用いて予測ブロックを生成(又は補正)することができる。詳しくは、対応するブロックのメイン参照画素と同様又は類似した位置での画素を用いることで、予測値を補正することができる。また、前記補助参照画素及びメイン参照画素の加重平均値(例えば、メイン参照画素と補助参照画素の加重値の比率の例は、15:1から8:8等であってもよい。補助参照画素が2つ以上であれば、加重値の例は、14:1:1、12:2:2、10:3:3、8:4:4等のように、補助参照画素において同様な加重値を有してもよい。又は、12:3:1、10:4:2、8:6:2のように、補助参照画素間で異なる加重値を有してもよい)により、前記補正プロセスにフィードバックすることができる。
前記フィルタリングは、1つの画像における1つの設定を有するか又は種々の符号化/復号素子によって前記フィルタリングを決定する。
自己適応的決定の場合を例として、ブロックのサイズに基づいて、フィルタを決定することができる。現在ブロックの左上端、上端、左端に位置する画素(該例において、左上端に位置する画素が、該画素の左側及び上方に位置する画素に対してフィルタリングを行い、上端に位置する画素が、該画素の上側の画素に対してフィルタリングを行い、左端の画素は、該画素の左側の画素に対してフィルタリングを行うと仮定する)について、16×16未満のブロックにおいて、幾つかのフィルタリング設定を用い(該例において、8:4:4、12:4の加重比率に応じてフィルタリングを適用する)、16×16より大きいブロックにおいて、幾つかのフィルタリング設定を用いる(該例において、10:3:3、14:2の加重比率に応じてフィルタリングを適用する)。
又は、ブロックの形状に基づいてフィルタを決定することができる。例えば、16x8のブロックについて、現在ブロックの上端に位置する画素は、幾つかのフィルタリング設定(該例において、該画素の左上側、上側、右上側の画素に対してフィルタリングを行うと仮定する。つまり、フィルタリングを適用する画素も変化する例と認められる。フィルタリングの加重比は、10::2:2:2である)を用いることができ、現在ブロックの左端に位置する画素は、幾つかのフィルタリング設定(該例において、該画素の左側画素に対してフィルタリングを行う。フィルタリングの加重比は、12:4である)を用いることができる。これは、水平方向の長さが長いブロック形状に適用可能であるブロック上側の複数の画素の例である。また、これと逆な設定を実現させることもできる。
前記補正された画素は幾つかの画素に限定されると、予測モードで用いられる参照画素に隣接する水平ライン又は垂直ラインを単位として、補正した画素を決定することができる。この場合、水平ライン及び垂直ラインを同時に考慮することができ、重なり合いを許容できる。例えば、aからdに対応する画素及びa、e、i、mに対応する画素(a重なり合い)は、補正ターゲットに含まれてもよい。更に、eからhに対応する画素及びb、f、j、nに対応する画素(a、b、e、f重なり合い)は、補正ターゲットに含まれてもよい。
上述に加えて、付加される符号化/復号素子に基づいて、自己適応的設定を適用することができる。上述において、非方向性モードに対する制限を主に説明したが、上記例において限定的に適用するだけでなく、同様又は類似した設定を他のモードに適用することもできる。また、1つの符号化/復号素子ではなく、複数の素子の組み合わせにより、上記例を実現させることができる。
以下、カラーコピーモードの場合を説明する。
カラーコピーモードについて、現在の予測モードの予測方法と異なる方法で予測ブロックを生成するが、同様又は類似したように参照画素を用いて予測ブロックを生成(又は補正)することができる。上記例及び後述される例により、予測ブロックの内容を導出して取得することができるため、予測ブロックの内容の取得を省略する。
例えば、異なる色空間における、現在ブロックに対応するブロックを参照画素(第1参照画素又はメイン参照画素)として使用(例えば、コピー)することで予測ブロックを生成することができる。
又は、現在ブロックに隣接するブロックの参照画素(第2参照画素又は補助参照画素。図13におけるRef_L、Ref_T、Ref_TL、Ref_TR、Ref_BL)を用いることで予測ブロックを生成(又は補正)することができる。詳しくは、ブロックに対応する最近傍画素(該例の図13における1300、1310)を用いて予測値を補正することができる。また、前記補助参照画素とメイン参照画素の加重平均値(例えば、メイン参照画素と補助参照画素の加重値の比率の例は、15:1から8:8等であってもよい。補助参照画素が2つ以上であれば、加重値の例は、14:1:1、12:2:2、10:3:3、8:4:4等のように、補助参照画素において同様な加重値を有してもよい。又は、12:3:1、10:4:2、8:6:2等のように、補助参照画素間で異なる加重値を有してもよい)により前記補正プロセスにフィードバックすることができる。
又は、他の色空間で取得されたブロックに隣接するブロックの画素(第2参照画素又は補助参照画素。図13におけるピクチャが、他の色空間における、現在ブロックに対応するブロックであると仮定する場合、画素は、Ref_L、Ref_T、Ref_TL、Ref_TB,Ref_BL及び図13に示されていないRef_R,Ref_BR、Ref_Bである)を用いて予測ブロックを生成(又は補正)することができる。補正しようとする画素及びその周囲画素(例えば、異なる色空間における第1参照画素又は第1参照画素と第2参照画素であり、つまり、ブロック内において、加重平均化などを適用する場合、補正しようとする第1参照画素とフィルタリングを適用した第1参照画素が必要であり、ブロック境界において、補正しようとする第1参照画素とフィルタリングを適用した第1参照画素及び第2参照画素が必要である)に対してフィルタリングを実行し、前記補正プロセスにフィードバックすることができる。
前記2つのケースが同時に発生する場合、現在ブロックの隣接ブロックの画素を用いることができるだけでなく、他の色空間で取得された予測ブロックにおける画素を用いて補正を行うこともできる。また、補正しようとする画素とその周囲画素(例えば、補正ターゲット画素の隣接ブロックの画素と補正ターゲット画素に隣接する現在ブロック内の画素)に対してフィルタリングを実行し(例えば、補正ターゲット位置で、MxNマスクを用いて、フィルタリングを適用する。この場合、前記マスクは、前記画素と上、下、左、右、左上、右上、左下、右下等の全て又は一部の画素に対してフィルタリングを実行する)、補正プロセスにフィードバックする。
該例は、他の色空間における現在ブロックの予測値を得た後にフィルタリングを適用することを示す。予測値を得る前に対応する色空間においてフィルタリングが実行された値を現在ブロックの予測値とすることもできる。この場合、これは、順番の点だけで上記例と相違するが、フィルタリング対象は同じであることに留意されたい。
この場合、前記フィルタリングは、1つの画像において1つのみの設定を有する。又は、種々の符号化/復号素子によって前記フィルタリングを自己適応的に決定することができる。
例えば、自己適応的決定について、予測モードに基づいて、フィルタリングのための設定を決定することができる。詳しくは、それは、カラーコピーモードにおける細部カラーコピーモード設定に基づいて自己適応的にフィルタリングを行うことができる。例えば、幾つかのカラーコピーモード(該例において、現在ブロックの隣接領域及び異なる色空間に対応するブロックの隣接領域から1つの相関情報集合<a及びb>を得る場合)で、幾つかのフィルタリング設定<1>を用いることができ、幾つかのカラーコピーモード(該例において、上記モードに比べて、複数の相関性情報集合を得る場合。つまり、a1及びb1、a2及びb2である)で、幾つかのフィルタリング設定<2>を用いることができる。
前記フィルタリング設定において、フィルタリングを適用するかどうかを決定することができる。例えば、フィルタリング設定によれば、フィルタリング<1>を適用するか又はフィルタリング<2>を適用しない。又は、Aフィルタ<1>又はBフィルタ<2>を用いることができる。又は、フィルタリングを現在ブロックの左側及び上側の全ての画素に適用することができ、又はフィルタリングを左側及び上側の幾つかの画素に適用することができる。
補正しようとする画素が幾つかの画素に限られてると、水平ライン又は垂直ラインを単位として補正しようとする画素を決定することができる。前記水平ライン又は垂直ラインは、予測モードに用いられる参照画素に隣接する(該例において補助参照画素である。前記例と異なる)。この場合、水平ライン及び垂直ラインを同時に考慮することができ、また、重なり合いを許容することができる。
例えば、aからdに対応する画素及びa、e、i、mに対応する画素(a重なり合い)は、補正ターゲットに含まれてもよい。更に、eからhに対応する画素及びb、f、j、nに対応する画素(a、b、e、f重なり合い)も補正ターゲットに含まれてもよい。
要するに、他の色空間から、予測ブロックの生成に用いられるメイン参照画素を得ることができ、また、現在色空間の現在ブロックに隣接するブロックから、予測ブロックを補正するための補助参照画素を得ることができる。また、他の色空間の対応するブロックに隣接するブロックから得ることもできる。また、現在ブロックの予測ブロックの幾つかの画素から得ることができる。つまり、予測ブロックにおける幾つかの画素は、予測ブロックにおける幾つかの画素の補正に用いられる。
上述に加えて、付加される符号化/復号素子に基づいて、自己適応的設定を適用することができる。上述において、非方向性モードに対する制限を主に説明したが、上記例において限定的に適用するだけでなく、同様又は類似した設定を他のモードに適用することもできる。また、1つの符号化/復号素子ではなく、複数の素子の組み合わせにより、上記例を実現させることができる。
該例は、色空間同士の相関性を用いて現在ブロックの予測ブロックを得る例であるが、相関性を得るためのブロックは、現在ブロックの隣接領域及び異なる色空間の対応するブロックの隣接領域から得られたものであるため、ブロック境界に対してフィルタリングを適用することができる。
符号化/復号の設定によれば、複数の参照画素を用いて予測ブロックを生成することが多い。詳しくは、符号化/復号の設定に基づいて、予測ブロックを生成又は補正するために第2参照画素の使用をサポートするかどうかを決定することができる。
一例として、予測プロセスにおいて、付加画素を使用するかどうかを暗黙的又は明示的に決定することができる。明示的な場合、ビデオ、シーケンス、ピクチャ、スライス、tile、ブロックを単位として上記情報を含んでもよい。
一例として、予測プロセスにおいて付加画素を使用するかどうかを決定することは、全ての予測モードに適用可能であるか又は幾つかの予測モードに適用可能である。この場合、幾つかの予測モードは、水平、垂直、幾つかの対角線モード、非方向性モード、カラーコピーモード等のうちの少なくとも1つであってもよい。
一例として、予測プロセスにおいて付加画素を使用するかどうかを決定することは、全てのブロックに適用可能であるか又は幾つかのブロックに適用可能である。この場合、ブロックサイズ、形状などに基づいて幾つかのブロックを定義することができる。対応するブロックは、MxNである(例えば、M及びNの長さは、8、16、32、64等である。正方形であれば、長さは、8×8、16×16、32×32、64×64等である。矩形であれば、2:1矩形、4:1矩形等の形状を有してもよい)。
また、幾つかの符号化/復号の設定に基づいて、予測プロセスにおいて付加画素を使用するかどうかを決定することができる。この場合、符号化/復号の設定は、constrained_intra_pred_flagであってもよい。また、該フラグに基づいて、予測プロセスにおいて付加参照画素を限定的に用いることができる。
例えば、第2参照画素を含む領域の使用は、前記フラグにより限定された場合(即ち、上記フラグに基づいて、参照画素パディング等のプロセスによりパディングされた領域)、第2参照画素を予測プロセスに用いることを制限することができる。又は、第2参照画素は、前記フラグと関係なく、予測プロセスに適用可能である。
上記例における説明に加えて、1つ又は複数の素子の組み合わせのような種々の適用及び修正を有してもよい。また、上記例において、カラーコピーモードに関わる幾つかの状況を説明したが、カラーコピーに加えて、該例は、同様又は変換的に、複数の参照画素を用いて予測ブロックを生成又は補正する予測モードに適用可能である。
上記例により、各予測モードで、複数の参照画素を用いて予測ブロックを生成又は補正するための設定を説明したが、各予測モードに対して複数の設定を用いることができる。つまり、フィルタリング設定候補グループは、選択情報を生成するために複数となるように構成されてもよい。
要するに、フィルタリングを実行するかどうかに関わる情報を明示的又は暗黙的に処理することができる。フィルタリングを実行する場合、フィルタリング選択情報に関わる情報を明示的又は暗黙的に処理することができる。情報を明示的に処理する場合、ビデオ、シーケンス、ピクチャ、スライス,tile及びブロックを単位として前記情報を含んでもよい。
前記生成された予測ブロックを補正することができる。以下、予測ブロック補正プロセスを説明する。
所定の参照画素及び加重に基づいて前記補正プロセスを実行することができる。この場合、補正される現在ブロックにおける画素(以下、現在画素と呼ばれる)の位置に基づいて、参照画素及び加重値を決定することができる。現在ブロックのフレーム内予測モードに基づいて、前記参照画素及び加重値を決定することができる。
現在ブロックのフレーム内予測モードが非方向性モードである場合、現在画素の参照画素refL、refTは、現在ブロックに隣接する第1画素ラインに属してもよく、また、現在画素と同様の水平ライン/垂直ラインに位置してもよい。加重値は、x軸方向での第1加重値wL、y軸方向での第2加重値wT又は対角線方向での第3加重値wTLのうちの少なくとも1つを含んでもよい。第1加重値は、左側参照画素に適用される加重値を指してもよい。第2加重値は、上端参照画素に適用される加重値を指してもよい。第3加重値は、左上端参照画素に適用される加重値を指してもよい。ここで、現在画素の位置情報及び所定のスケーリングファクタ(nScale)に基づいて、第1加重値及び第2加重値を決定することができる。スケーリングファクタは、現在ブロックの幅W及び高さHによって決まってもよい。例えば、現在画素predPixel[x][y]の第1加重値wL[x]は、(32>>((x<<1)>>nScale))と決定され、第2加重値(wT[x])は、(32>>((y<<1)>>nScale))と決定されてもよい。第3加重値wTL[x][y]は、((wL[x]>>4)+(wT[y]>>4))と決定されてもよい。しかしながら、フレーム内予測モードが平面モードである場合、第3加重値は、0と決定されてもよい。スケーリングファクタは、((Log2(nTbW)+Log2(nTbH)-2)>>2)としてもよい。
現在ブロックのフレーム内予測モードが垂直/水平モードである場合、現在画素の参照画素refL及びrefTは、現在ブロックに隣接する第1画素ラインに属し、また、当前画素と同様の水平/垂直ラインに位置してもよい。垂直モードで、現在画素predPixel[x][y]の第1加重値wL[x]は、(32>>((x<<1)>>nScale))と決定され、第2加重値(wT[y]])は、0と決定されてもよく、第3加重値wTL[x][y]は、第1加重値に等しいと決定されてもよい。また、水平モードで、現在画素predPixel[x][y]の第1加重値wL[x]は、0と決定され、第2加重値wT[y]は、(32>>((y<<1)>>nScale))と決定され、また、第3加重値wTL[x][y]は、第2加重値に等しいと決定されてもよい。
現在ブロックのフレーム内予測モードが対角線モードである場合、現在画素の参照画素refL及びrefTは、現在ブロックに隣接する第1画素ラインに属し、また、現在画素と同様の対角線に位置してもよい。ここで、対角線は、現在ブロックのフレーム内予測モードと同様の角度を有する。前記対角線は、左下端から右上端方向への対角線を表すことができる。又は、左上端から右下端方向への対角線を表すことができる。この場合、現在画素predPixel[x][y]の第1加重値wL[x]は、(32>>((x<<1)>>nScale))と決定され、第2加重値wT[y])は、(32>>((y<<1)>>nScale))と決定され、第3加重値wTL[x][y]は、0と決定されてもよい。
現在ブロックのフレーム内予測モードがモード10以下である場合、現在画素の参照画素refL及びrefTは、現在ブロックに隣接する第1画素ラインに属し、また、現在画素と同様の対角線に位置してもよい。ここで、対角線は、現在ブロックのフレーム内予測モードと同様の角度を有する。この場合、参照画素を制限してもよい。従って、現在ブロックの左側参照画素又は上端参照画素のうちの1つのみを用いる。現在画素predPixel[x][y]の第1加重値wL[x]は、0と決定され、第2加重値wT[y]は、(32>>((y<<1)>>nScale))と決定され、第3加重値wTL[x][y]は、0と決定されてもよい。
現在ブロックのフレーム内予測モードがモード58以上である場合、現在画素の参照画素refL及びrefTは、現在ブロックに隣接する第1画素ラインに属し、また、現在画素と同様の対角線に位置してもよい。ここで、対角線は、現在ブロックのフレーム内予測モードと同様の角度を有する。この場合、参照画素を制限してもよい。従って、現在ブロックの左側参照画素又は上端参照画素のうちの1つのみを用いる。現在画素predPixel[x][y]の第1加重値wL[x]は、(32>>((x<<1)>>nScale))と決定され、第2加重値wT[y]は、0と決定され、第3加重値wTL[x][y]は、0と決定されてもよい。
決定した参照画素refL[x][y]、refT[x][y]及び加重値wL[x]、wT[y]、wTL[x][y]に基づいて、現在画素predPixels[x][y])に対して下記式1のような補正を実行することができる。
[式1]
predPixels[x][y]=clip1Cmp((refL[x][y]*wL[x]+refT[x][y]*wT[y]-p[-1][-1]*wTL[x][y]+(64-wL[x]-wT[y]+wTL[x][y])*predPixels[x][y]+32)>>6)
しかしながら、現在ブロックがサブブロックを単位とするフレーム内予測を実行しない場合のみ、上記補正処理を実行することができる。現在ブロックの参照画素が第1画素ラインである場合のみ、前記補正処理を実行することができる。現在ブロックのフレーム内予測モードが特定のモードに対応する場合のみ、前記補正処理を実行することができる。ここで、特定のモードは、非方向性モード、垂直モード、水平モード、所定の第1閾値モード未満であるモード、所定の第2閾値モードより大きいモードのうちの少なくとも1つを含んでもよい。前記第1閾値モードは、8、9、10、11又は12であってもよく、前記第2閾値モードは、56、57、58、59又は60であってもよい。
予測モード決定部は、複数の予測モード候補グループから最適モードを選択するプロセスを実行する。ブロック歪み(例えば、現在ブロック及び復元ブロックの歪み。絶対差分値の和(Sum of Absolute Difference:SAD)、二乗差の和(Sum of Square Difference:SSD)等)及び対応するモードの生成ビット量のレート歪み(Rate-Distortion)技術を用いて、符号化コストが最適であるモードを決定することができる。上記プロセスにより決定された予測モードで生成された予測ブロックを減算部及び加算部に送信することができる。
予測モード符号化部は、予測モード決定部により選択された予測モードに対して符号化を実行することができる。予測モード候補グループにおいて、予測モードに対応するインデックス情報に対して符号化を実行するか又は予測モードに対して予測を実行することで、これに関わる情報を符号化することができる。つまり、前者の場合、予測を実行することなく、予測モードに対して直接的に符号化を実行する方法を表す。後者の場合、予測モードに対して予測を実行することで、モード予測情報及び予測情報に基づいて得られた情報に対して符号化を実行する方法を表す。また、前者は、色差成分に適用される例であってもよいが、これに限定されず、他の例を有してもよい。
予測モードに対して予測を実行して符号化を実行する場合、予測モードの予測値(又は予測情報)は、最確モード(Most Probable Mode:MPM)と呼ばれてもよい。この場合、所定の予測モード(例えば、DCモード、平面(Planar)モード、垂直モード、水平モード、対角線モード等)又は空間的に隣接するブロック(例えば、左ブロック、上ブロック、左上ブロック、右上ブロック、左下ブロック等)の予測モード等をMPMと設定する。該例において、対角線モードは、右上対角線(Diagonal up right)、右下対角線(Diagonal down right)、左下対角線(Diagonal down left)を表し、図9のモード9、モード2及びモード66に対応してもよい。
また、MPM候補グループに含まれるモードから導出されたモードでMPM候補グループを構成することができる。例えば、MPM候補グループに含まれた方向性モードの場合、モード間隔差がaであるモード(例えば、aは、1、-1、2、-2等のような、ゼロではない整数である。図9におけるモード10を含むモードの場合、導出されたモードは、モード9、モード11、モード8、モード12等である)をMPM候補グループに再び(又は付加的に)含ませる。
上記例は、複数のモードでMPM候補グループを構成することに対応してもよい。また、符号化/復号の設定(例えば、予測モード候補グループ、画像タイプ、ブロックサイズ、ブロック形状等)に基づいて、MPM候補グループ(又はMPM候補グループの数)を決定することができる。また、少なくとも1つのモードを含んでもよい。
MPM候補グループを構成するための予測モードは、優先度を有する可能性がある。前記優先度に基づいて、MPM候補グループに含まれる予測モードの順番を決定することができる。前記優先度に基づいて、MPM候補グループの数をパディングした後、MPM候補グループの構成を完了することができる。この場合、優先度は、順に、空間的隣接ブロックの予測モード、所定の予測モード、最初にMPM候補グループに含まれる予測モードから導出されたモードであってもよいが、他の修正を有してもよい。
MPMを用いて現在ブロックの予測モードの符号化を実行する場合、予測モードがMPMとマッチングするかどうかに関わる情報(例えば、most_probable_mode_flag)を生成することができる。
MPMとマッチングすれば(例えば、most_probable_mode_flag=1)、MPMの構成に基づいて、MPMインデックス情報(例えば、mpm_idx)を追加的に生成することができる。例えば、MPM構成は、1つの予測モードであれば、追加的なMPMインデックス情報を生成しない。MPM構成が多種の予測モードであれば、MPM候補グループにおいて、現在ブロックの予測モードに対応するインデックス情報を生成することができる。
MPMとマッチングしなければ(例えば、most_probable_mode_flag=0)、予測モード候補グループにおけるMPM候補グループ以外の残りの予測モード候補グループ(又は非MPM候補グループ)において、現在モードの予測モードに対応する非MPMインデックス情報(例えば、non_mpm_idx)生成することができる。これは、非MPMを1つの群になるように構成する例であってもよい。
非MPM候補グループが複数の群からなる場合、現在ブロックの予測モードがどの群に属するかに関わる情報を生成することができる。例えば、非MPMは、A及びB群(Aは、m個の予測モードから構成され、Bは、n個の予測モードから構成され、非MPMは、m+n個の予測モードから構成されると仮定する。nは、mより大きい。Aのモードが方向性モードであり、且つ均等な間隔を有し、Bのモードが方向性モードであり、且つ均等な間隔を有しないと仮定する)から構成され、且つ、現在ブロックの予測モードは、A群の予測モードとマッチングすれば(例えば、non_mpm_A_flag=1)、A群の候補グループにおいて、現在ブロックの予測モードに対応するインデックス情報を生成することができ、マッチングしなければ(例えば、non_mpm_A_flag=0)、残りの予測モード候補グループ(又はB群の候補グループ)において、現在ブロックの予測モードに対応するインデックス情報を生成することができる。上記例のように、非MPMは、少なくとも1つの予測モード候補グループとなるように構成されてもよい。また、非MPM構成は、予測モード候補グループによって決まってもよい。例えば、予測モード候補グループが35個以下である場合、非MPMは、1つであってもよく、他の場合、非MPMは、2つ以上であってもよい。
上記例のように、非MPMをサポートする目的は、非MPMが複数の群からなる場合、予測モードの数が大きくて且つ予測モードがMPMにより予測されない場合にモードビット量を減少させることである。
MPMを用いて現在ブロックの予測モード符号化(又は予測モード復号)を実行する場合、各予測モード候補グループ(例えば、MPM候補グループ、非MPM候補グループ等)に適用される二値化テーブルを単独で生成することができ、各候補グループに適用される二値化方法を単独で用いることもできる。
予測モード符号化部により生成された、予測に関わる情報を符号化部に伝送し、ビットストリームに収録することができる。
図14は、本発明の一実施例によるツリーベースの分割ブロックの例を示す。
図14において、iは、四分木分割を表し、iiは、二分木分割における水平分割を表し、iiiは、二分木分割における垂直分割を表す。図面において、AからCは、初期ブロック(分割される前のブロック。例えば、符号化ツリーユニットとする)を表し、上記文字の後の数字は、分割を実行する場合の各パーティションの番号を表す。四分木の場合、左上ブロック、右上ブロック、左下ブロック、右下ブロックにそれぞれ数字0から3が割り当てられる。二分木の場合、左/上ブロック、右/下ブロックにそれぞれ0及び1が割り当てられる。
図14を参照すると、分割プロセスで得られた文字及び番号により、対応するブロックを取得するために実行される分割状態又は情報を確認することができる。
例えば、図14のiにおいて、ブロックA00は、初期ブロックAに対して四分木分割を実行した後、得られた4つのブロックのうちの左上ブロック(0をAに追加する)A0に対して四分木分割を実行することで得られた4つのブロックのうちの左上ブロック(0をA0に追加する)である。
又は、図14のiiにおいて、ブロックB10は、初期ブロックBに対して二分木分割における水平分割を実行した後、得られた2つのブロックのうちの下ブロック(1をBに追加する)B1に対して二分木分割における水平分割を実行することで得られた2つのブロックのうちの上ブロック(0をB1に追加する)である。
上記分割により、各ブロックの分割状態、情報(例えば、サポートされる分割設定<ツリー方式の種類など>)、最小サイズ及び最大サイズのようなブロックのサポート範囲<詳しくは、分割方法によるサポート範囲>、分割許容深度<詳しくは、分割方法によるサポート範囲>、分割フラグ<詳しくは、分割方法による分割フラグ>、画像タイプ<I/P/B>、符号化モード<Intra/Inter>等ブロックの分割状態、情報確認に必要な符号化/復号の設定、及び情報等)を知ることができ、また、現在ブロック(サブブロック)を得るための分割工程の前に現在ブロックがどのブロック(親ブロック)に属するかを確認することができる。例えば、図14のiにおいて、ブロックA31の場合、隣接ブロックは、A30、A12、A13を含んでもよく、前の分割工程においてA30とA31が同一のブロックA3に属すると判定することができる。A12及びA13の場合、前の工程であるA3の分割工程において、A12及びA13は、もう1つのブロックA1に属し、前の工程の先行工程のみにおいて、A12及びA13が同一のブロックAに属することを確認することができる。
上記例は、1つの分割操作(四分木の四分割又は二分木の水平/垂直分割)を説明するためのものであるため、後述される例において、複数のツリーベースの分割を引き続き説明する。
図15は、本発明の一実施例による複数のツリーベースの分割ブロックの例を示す。
図15に示すように、分割プロセスで得られた文字及び番号により、対応するブロックを得るために実行される分割状態又は情報を確認することができる。該例において、各文字は、1つの初期ブロックを意味するものではなく、番号で、分割に関わる情報を表す。
例えば、ブロックA1A1B0の場合、初期ブロックにおいて四分木分割を実行する場合、右上ブロックA1を得る。ブロックA1において四分木分割を実行する場合、右上ブロック(A1をA1に追加する)を得る。ブロックA1A1において二分木分割における水平分割を実行する場合、上ブロック(B0をA1A1に追加する)を得る。
任意選択的に、ブロックA3B1C1の場合、初期ブロックにおいて四分木分割を実行する場合、右下ブロックA3を得る。ブロックA3において二分木分割における水平分割を実行する場合、下ブロック(B1をA3に追加する)を得る。A3B1における二分木分割における垂直分割を実行する場合、右ブロック(C1をA3B1に追加する)を得る。
該例において、前記分割情報により、各ブロックの分割工程に応じて、例えば現在ブロックと隣接ブロックがどの工程において同じであるかのような、現在ブロックと隣接ブロックとの関係情報を確認することができる。
図14及び図15は、各ブロックの分割情報の確認の幾つかの例を示す。分割情報を確認するための種々の情報及び情報の組み合わせ(例えば、分割フラグ、深度情報、深度情報最大値、ブロックの範囲等)を用いて各ブロックの分割情報を確認することができる。これにより、ブロック同士の関係を確認できる。
図16は、分割ブロックの種々の状況を示す概略図である。
一般的には、画像に種々のテクスチャ情報が存在するため、1つの符号化/復号方法で符号化/復号を実行することが困難である。例えば、幾つかの領域は、特定の方向に強い縁成分が存在する領域を有してもよい。幾つかの領域は、縁成分が存在しない複雑な領域を有してもよい。これに対して符号化を効果的に実行するために、ブロック分割は、重要な役割を果たす。
ブロック分割の目的は、画像の特徴に基づいて領域を効果的に分割することである。しかしながら、1つのみの分割方式(例えば、四分木分割)を用いる場合、画像の特性を適切に反映して分割を実行することが困難である。
図16に示すように、四分木分割及び二分木分割に基づいて、種々のテクスチャを含む画像を分割することを確認できる。aからeは、四分木分割のみをサポートする可能性がある。fからjは、二分木分割のみをサポートする可能性がある。
該例において、四分木分割によるパーティションをUL、UR、DL、DRと呼ぶ。また、これに基づいて二分木分割を説明する。
図16におけるaは、四分木分割が最適な特性を発揮するテクスチャ形態であり、四分木の一回の分割(Div_HV)により4つに分割し、各ブロックを単位として符号化/復号を実行する。それと同時に、図16のfに示すように、二分木分割を用いる場合、四分木に比べて、三回の分割(二回のDiv_V、一回のDiv_H)を必要とする可能性がある。
図16のbは、テクスチャがブロックの上部及び下部領域に分けられることを示す。図16のbにおいて、四分木分割を用いる場合、一回の分割(Div_HV)を必要とする。図16のgにおいて、二分木分割を用いて一回の分割Div_Hを実行する。四分木分割が1ビットのフラグを必要とし、二分木分割が2ビット以上のフラグを必要とすると仮定すると、フラグビットについて言えば、四分木が効果的であると認められ、各ブロック単位で符号化/復号情報(例えば、テクスチャ情報を表すための情報(テクスチャを表すための情報(残留信号、符号化係数、符号化係数が存在するかどうかを表す情報等))、予測情報<例えば、フレーム内予測関連情報、フレーム間予測関連情報>、変換情報<例えば、変換種類情報、変換分割情報等>)を生成する。この場合、テクスチャ情報は、類似した領域の分割により生成された情報であるため、二分木分割に比べて、四分木分割の効率は高くない。
図16に示す他の場合に、テクスチャの種類に基づいてどのツリーがより効果的であるかを決定することもできる。上記例により、可変ブロックのサイズ及び種々の分割方式に対するサポートが十分に重要であることを確認できる。これにより、上記例により、画像特徴による有効領域を分割することができる。
以下、四分木分割及び二分木分割の実行について詳しく分析する。
図16のbを参照しながら、右下ブロック(現在ブロック)に隣接するブロック(該例において、左ブロック及び上ブロックである)を説明する。左ブロックは、現在ブロックと類似した特性を有するブロックであり、上ブロックは、現在ブロックと異なる特性を有するブロックであることが明らかである。幾つかのブロック(該例において、左ブロック)と類似した特性を有するが、四分木分割の特性から見れば、分割が実行された可能性がある。
この場合、現在ブロックは、左ブロックと類似した特性を有するため、類似した符号化/復号情報を生成する可能性がある。これを効果的に減少させるためのフレーム内予測モード(例えば、最確モード。つまり、現在ブロックの予測モードのビット量の減少を目的として隣接ブロックから現在ブロックのモードを予測する情報)、運動情報予測モード(例えば、スキップ(skip)モード、マージモード、モードビットの減少のための情報(例えば、競合モード))を生成する場合、左ブロックの情報は、参考に有効である。つまり、左ブロック又は上ブロックのうちの1つのブロックから現在ブロックの符号化情報(例えば、フレーム内予測情報、フレーム間予測情報、フィルタ情報、係数情報等)を参考する場合、正確な情報(該例において、左ブロックである)を参考できる。
図16におけるeに示すように、最右下隅の1つの小ブロック(現在ブロックを2回分割することで得られたブロック)を仮定する。同様に、現在ブロックは、左ブロック又は上ブロックのうちの上ブロックと類似した特性を有する。これにより、対応するブロック(該例において上ブロックである)からの符号化情報を参照して符号化特性を向上させることができる。
逆に、図16におけるjに示すように、最右側ブロック(現在ブロックを2回分割することで得られたブロック)に隣接する左ブロックを参照する。該例において、上ブロックが存在しないため、左ブロックのみを参照する場合、現在ブロックが左ブロックと異なる特性を有するブロックであることを確認できる。四分木分割が、隣接ブロックにおける一部と類似する可能性があり、二分木分割は、隣接ブロックと異なる特性を有する確率が高い。
詳しくは、幾つかのブロック(x)とその隣接ブロック(y)がそれぞれ分割される前に同一のブロックである場合、四分木分割について、幾つかのブロック(x)は、分割される前のブロックと同一の隣接ブロック(y)と類似した特性を有してもよく、異なる特性を有してもよい。逆に、二分木について、幾つかのブロック(x)は、分割される前のブロックと同一の隣接ブロック(y)と異なる特性を有することが多い。換言すれば、類似した特性の場合、ブロックの分割を実行する必要がなく、分割される前に、ブロックは最終的に決定されるが、異なる特性を有するため、分割されることが多い。
上記例以外、図16のiにおいて、右下ブロックxと左下ブロックyは、下記関係を有する可能性がある。つまり、上ブロックの画像特性が類似するため、分割が実行されていない場合に画定される。また、下ブロックの画像特性が異なるため、左下ブロックと右下ブロックに分割された後に画定される。
要するに、四分木分割の場合、現在ブロックに隣接する隣接ブロックにおいて、親ブロックが現在ブロックと同じである隣接ブロックを有すると、水平及び垂直方向に無条件に1/2の四分木特性に分割されるため、現在ブロックと類似した特性を有するか又は異なる特性を有する可能性がある。二分木分割の場合、現在ブロックに隣接する隣接ブロックにおいて、親ブロックが現在ブロックと同じである隣接ブロックを有すると、画像特性に基づいて水平又は垂直分割を実行できるため、分割されたことは、異なる特性により分割されたことを意味する。
(四分木分割)
現在ブロックに比べて、分割前のブロックが同じである隣接ブロック(該例において、左ブロック、上ブロックであると仮定するが、これに限定されない)は、現在ブロックと類似又は異なる特性を有してもよい。
また、現在ブロックと分割前のブロックが異なる隣接ブロックは、現在ブロックと類似又は異なる特性を有してもよい。
(二分木分割)
現在ブロックに比べて、分割前のブロックが同じである隣接ブロック(該例において左ブロック又は上ブロックであると仮定する。二分木であるため、最大候補数が1つである)は、異なる特性を有してもよい。
また、現在ブロックに比べて、分割前のブロックが異なる隣接ブロックは、現在ブロックと類似又は異なる特性を有してもよい。
以下、上記仮定が本発明の主な仮定であることを前提として説明する。上述によれば、隣接ブロックの特性が現在ブロックと類似又は異なる場合(1)及び隣接ブロックの特性が現在ブロックの特性と異なる場合(2)に分けられる。
図15を再び参照する。
一例として(現在ブロックがA1A2である)、A1A2ブロックの分割前のブロックA1がA0ブロックの分割前のブロック(初期ブロック)と異なるため、隣接ブロックにおけるA0ブロック(左ブロック)を普通のケース(つまり、特性が現在ブロックと類似又は異なるかどうかが分からない場合)に分類することができる。
隣接するA1A0ブロック(上ブロック)について、A1A2ブロックの分割前のブロックA1がA1A0ブロックの分割前のブロックA1と同じであるため、分割方式を確認できる。この場合、四分木分割(A)であるため、普通のケースに分類される。
一例として(現在ブロックがA2B0B1である)、隣接ブロックにおけるA2B0B0ブロック(上ブロック)について、A2B0B1ブロックの分割前のブロックA2B0がA2B0B1ブロックの分割前のブロックA2B0B1と同じであるため、分割方式を確認する。この場合、二分木分割(B)であるため、例外的なケースに分類される。
一例として(現在ブロックがA3B1C0である)、隣接ブロックにおいて、A3B1C0ブロックの分割前のブロックA3B1がA3B0ブロックの分割前のブロックA3と異なるため、A3B0ブロック(該例において、右上ブロックである)は、普通のケースに分類される。
上記例に記載したように、隣接ブロックを普通のケースと例外的なケースに分類することができる。普通のケースについて言えば、隣接ブロックの符号化情報が現在ブロックの符号化情報として使用できるかどうかが分からない。例外的なケースについて言えば、隣接ブロックの符号化情報が現在ブロックの符号化情報として使用できる状態を強制的に判定する。
上記分類によれば、隣接ブロックから現在ブロックの予測方法を得る方法を用いることができる。
要するに、現在ブロックが隣接ブロックの分割前のブロックと同じであるかどうか(A)を確認する。
Aの結果として同一であれば、現在ブロック(同じであれば、現在ブロックだけでなく、隣接ブロックも同一の分割方式で画定されたブロックであるため、現在ブロックのみを確認する)の分割方式(B)を確認する。
Aの結果として異なると、終了(停止)する。
Bの結果が四分木分割であれば、隣接ブロックを普通状態と表記して終了(停止)する。
Bの結果が二分木分割であれば、隣接ブロックを例外的な状態と表記して終了(停止)する。
上記例は、本発明のフレーム内予測モード予測候補グループ(最確モードに関わる)の設定に適用可能である。普通の予測候補グループ設定(例えば、候補グループ構成の優先度等)及び例外的な予測候補グループ設定をサポートし、上記隣接ブロックの状態に基づいて、優先度を繰り下げるか又は該ブロックから導出された候補グループを排除することができる。
この場合、前記設定を適用する隣接ブロックは、空間(同一の空間)に限られるか又は同一の画像の他の色空間から導出されることに適用可能である。例えば、カラーコピーモードに適用可能である。つまり、カラーコピーモードにより導出されたブロックの分割状態により上記設定を実行することができる。
上記例以外、後述される例は、ブロック同士の関係(上記イベントにおいて、分割ブロック情報等を利用して現在ブロックと他のブロックとの相対的関係を識別する)に基づいて符号化/復号の設定(例えば、予測候補グループ設定、参照画素設定等)を自己適応的に設定する例である。
該例(輝度成分)において、符号化/復号装置で予め定義されたフレーム内予測モードが35個である場合、隣接ブロック(該例において左、上である)から3個の候補を選択してMPM候補グループを構成することを仮定して説明する。
1つの候補をそれぞれ左ブロックL0及び上ブロックT0に追加して2つの候補を構成することができる。各ブロックにおいて候補グループを構成できなければ、DCモード、平面モード、垂直モード、水平モード、対角線モード等の候補で代替してパディングすることができる。上記プロセスにより2つの候補をパディングすれば、種々の数のもので残った1つの候補をパディングすることを考慮できる。
例えば、ブロックにおいてパディングされた候補が同じであれば、候補グループに含まれるモードと重なり合わない方式で、上記モードの隣接モード(例えば、同一のモードがk_modeである場合、k_mode-2、k_mode-2、k_mode+1、k_mode+2等である)に代える。又は、各ブロックにおいてパディングされた候補が同じ又は異なる場合、平面モード、DCモード、垂直モード、水平モード、対角線モードを追加することで候補グループを構成することができる。
上記プロセスにより、フレーム内予測モード候補グループ(普通のケース)を構成することができる。このように構築された候補グループは、普通のケースに属する。また、隣接ブロックに基づいて、自己適応的にフレーム内予測モード候補グループ(例外的なケース)を構成することができる。
例えば、隣接ブロックが例外的な状態と表記されると、該ブロックから導出された候補グループを排除することができる。左ブロックが例外的な状態と表記されると、候補グループは、上ブロック及び所定の予測モード(例えば、DCブロック、平面ブロック、垂直ブロック、水平ブロック、対角線ブロック、上ブロックから導出されたモード等)で構成されてもよい。MPM候補グループが3つ以上のMPM候補で構成される場合、上記例を同様/類似に適用することもできる。
下記仮定に基づいて説明する。該例(色差成分)において、5つのフレーム内予測モード(該例において、DCモード、平面モード、垂直モード、水平モード、カラーモードである)を有し、また、優先度を自己適応的に決定した後に順序付けされた予測モードで候補グループを構成することで、符号化/復号を実行する(つまり、MPMを使用することなく、符号化/復号を直接的に実行する)。
まず、カラーモードに最高優先度(該例において、0番のインデックスである。「0」について、1ビットを割り当てる)を与え、他のモード(該例において、平面、垂直、水平、DCである)に低優先度(該例において、それぞれ1番から4番のインデックスである。「100」、「101」、「110」、「111」で3ビットを割り当てる)を与える。
色モードが候補グループの他の予測モードのうちの1つ(DC、平面、垂直、水平)とマッチングすれば、マッチングした予測モードに与えた優先度(該例においてインデックス1番から4番である)に所定の予測モード(例えば、対角線モード等)を割り当てることができる。マッチングしなければ、候補グループ構成を終了する。
上記プロセスにより、フレーム内予測モードのめの候補グループを構成することができる。このような例は、普通のケースに対応し、色モードを取得したブロックに基づいて自己適応的候補グループを構成することができる。
該例において、色モードを取得した他の色空間における、現在ブロックに対応するブロックは、1つのブロック(つまり、未分割状態)となるように構成されるため、これを普通のケースと呼ぶ。複数のブロック(つまり、2つ以上に分割された)であれば、例外的なケースと認められる。上述したように、以下仮定で挙げられた例である可能性がある。該例は、現在ブロックと隣接ブロックの親ブロックが同じであるかどうか、分割方式等に基づいて分類を実行する例と異なり、異なる色空間に対応するブロックが複数である場合、現在ブロックの特性と異なる可能性がより高い。つまり、ブロック同士の関係に基づいて、符号化/復号の設定を自己適応的に決定する例であると理解される。
上記仮定で例を挙げると、対応するブロックを例外的な状態と表記すると、該ブロックから導出された予測モードの優先度を繰り下げることができる。この場合、他の予測モードのうちの1つ(平面、DC、垂直、水平)を高優先度に割り当て、低優先度を前記優先度に含まれない他の予測モード及び色モードに割り当てることができる。
説明を容易にするために、幾つかの仮定で上記例を説明するが、これに限定されない。同様又は類似した適用は、本発明の上記種々の実施例に適用可能である。
要するに、隣接ブロックに、例外的状態と表記されるブロックが存在する場合、候補グループAを用いることができる。例外的状態と表記されるブロックが存在する場合、候補グループBを用いることができる。上記分類は、2つのケースに分類されるが、例外的状態及びブロック位置に基づいて、ブロック単位のフレーム内予測候補グループ構成を自己適応的に実現させることができる。
また、上記例において、分割方式におけるツリーベースの分割を仮定するが、これに限定されない。詳しくは、上記例は、少なくとも1つのツリーベースの分割方式で得られたブロックを符号化ブロックと設定し、また、該ブロックを予測ブロック、変換ブロック等に分割することなく、予測、変換などを直接的に実行する例である可能性がある。
分割設定のもう1つの例は、ツリーベースの分割を利用して符号化ブロックを得て、得られた符号化ブロックに基づいて少なくとも1つの予測ブロックを得ることである。
例えば、ツリーベースの分割(該例において四分木である)を用いて符号化ブロック(2N×2N)を得る。また、予測ブロックは、タイプベースの分割(該例においてサポート可能な候補タイプは、2N×2N、2N×N、N×2N、N×Nである)により得られたものである。この場合、1つの符号化ブロック(該例において、該ブロックが親ブロックであると仮定する)を複数の予測ブロック(該例においてこれらのブロックがサブブロックであると仮定する)に分割する場合、上記例外的状態等の設定も予測ブロックに適用可能である。
図16のgに示すように、符号化ブロック(太実線)に、2つの予測ブロック(細実線により分けられる)が存在すれば、下ブロックは、上ブロックと異なる特性を有し、上ブロックの符号化情報を参照しないか又は優先度を繰り下げる。
図17は、本発明の実施例による分割ブロックの例を示す。詳しくは、基本符号化ブロック(最大符号化ブロック、8N×8N)が四分木に基づいた分割により符号化ブロック(斜線ブロック、2N×2N)を得る例を示す。また、得られた符号化ブロックは、タイプベースの分割により、少なくとも1つの予測ブロック(2N×2N、2N×N、N×2N、N×N)に分割される。
以下、矩形形状のブロックを得る場合(2N×N和N×2N)のフレーム内予測モード候補グループ設定について説明する。
図18は、予測情報を生成するブロック(該例において、予測ブロックは、2N×Nである)のフレーム内予測モード候補グループの設定の種々の例を示す。
該例において、(輝度成分)が67個のフレーム内予測モードを有する場合、隣接ブロック(該例において、左、上、左上、右上、左下である)から、6つの候補を選択し、これをMPM候補グループに配置する。
図13を参照すると、L3-T3-B0-R0-TLの順番で4つの候補を配置することができ、所定のモード(例えば、平面、DC)で2つの候補を配置することができる。上記構成において、最大数(該例において6である)がパディングされていないと、候補グループに含まれる予測モードから導出された予測モード(例えば、k_modeの場合、k_mode-2、k_mode-2、k_mode+1、k_mode+2等であってもよい)、所定のモード(例えば、垂直、水平、対角線等)等を含んでもよい。
該例において、空間での隣接ブロックの場合、候補グループの優先度が現在ブロックの左ブロック-上ブロック-左下ブロック-右上ブロック-左上ブロックという順番(詳しくは、左ブロックの下側、上ブロックの右側に位置するサブブロック)であり、所定のモードについて、順番が平面-DC-垂直-水平-対角線モードであると仮定する。
図18のaに示すように、上記例における候補グループ設定と同様に、現在ブロック(2N×N、PU0)は、l1-t3-l2-tr-tlの順番で候補グループを構成することができる(他の内容が重複するため、省略する)。該例において、現在ブロックの隣接ブロックは、符号化/復号を完了したブロック(符号化ブロック。つまり、他の符号化ブロックにおける予測ブロック)であってもよい。
上記と異なっており、現在ブロックの位置がPUlに対応する場合、少なくとも1つのフレーム内予測モード候補グループを設定することができる。一般的には、現在ブロックに隣接するブロックであるほど、現在ブロックの特性と類似する可能性が高くなる。従って、対応するブロックにより候補グループを配置することは最も有利である(1)。また、符号化/復号の並行処理を実行するために、候補グループを配置する必要がある(2)。
現在ブロックがPU1であれば、(1)における候補設定において、図18のbに示すように、l3-c7-bl-k-l1の順番で候補グループ(c7又はtrからkを導出できる)を配置し、また、(2)における候補グループ設定において、図18のcに示すように、l3-bl-k-l1の順番で、候補グループ(tr等からkを導出できる)を配置することができる。上記2つの例は、上ブロックのフレーム内予測モードの候補グループを含むかどうかという点で相違する。つまり、前者の場合、フレーム内予測モードの符号化/復号効率を向上させるために、上ブロックのフレーム内予測モードを候補グループに含ませる。後者の場合、符号化/復号が完了されるかどうかが決定されていない状態であるため、並行処理のために、候補グループから、参照できない上ブロックのフレーム内予測モードを排除する。
図19は、予測情報を生成するブロック(該例において、予測ブロックは、N×2Nである)のフレーム内予測モード候補グループの設定に関わる種々の例を示す。
該例において、(輝度成分)が67個のフレーム内予測モードを有する場合、隣接ブロック(該例において、左、上、左上、右上、左下である)から6つの候補を選択し、MPM候補グループに配置する。
図13を参照すると、L3-L2-L1-L0の順番(上ブロック)で1つの候補を配置することができ、T3-T2-T1-T0の順番(上ブロック)で1つの候補を構成することができ、B0-R0-TLの順番(左上ブロック、右上ブロック、左下ブロック)で2つの候補を配置し、所定のモード(例えば、Planar、DC)で2つの候補を配置することができる。上記構成において、最大数がパディングされていないと、候補グループに含まれる予測モードから導出された予測モード、所定のモード等を含んでもよい。この場合、候補グループ構成の優先度は、左ブロック-上ブロック-平面ブロック-DCブロック-左下ブロック-右上ブロック-左上ブロックの順番であってもよい。
図19のaに示すように、上記例における候補グループ設定と同様に、現在ブロック(N×2N。PU0)は、l3-l2-l1-l0の順番で候補を配置し、t1-t0の順番で候補を配置し、bl-t2-tlの順番で2つの候補を配置することができる。該例において、現在ブロックの隣接ブロックは、符号化/復号を完了したブロック(符号化ブロック。つまり、他の符号化ブロックにおける予測ブロック)であってもよい。
上記と異なっており、現在ブロックの位置がPUlに対応する場合、少なくとも1つのフレーム内予測モード候補グループを設定することができる。上記例において、(1)及び(2)を配置することができる。
現在ブロックがPU1であれば、(1)における候補グループ設定において、図19のbに示すように、c13-c9-c5-c1の順番で候補グループを配置し、t3-t2の順番で候補グループを配置し、k-tr-t1の順番で2つの候補グループ(bl又はc13等からkを導出する)を配置し、また、(2)における候補グループ設定において、図19のcに示すように、t3-t2の順番で候補グループを配置し、k-tr-t1の順番で2つの候補グループ(blなどからkを導出できる)を配置することができる。上記2つの例は、上ブロックのフレーム内予測モードの候補グループを含むかどうかという点で相違する。つまり、前者の場合、フレーム内予測モードの符号化/復号効率を向上させるために、左ブロックのフレーム内予測モードを候補グループに含ませる。後者の場合、符号化/復号が完了されるかどうかが決定されていない状態であるため、並行処理のために、候補グループから、参照できない左ブロックのフレーム内予測モードを排除する。
従って、候補グループ構成の設定に基づいて候補グループ構成を決定することができる。該例において、候補グループ構成設定(該例において、並行処理のための候補グループ構成設定である)を暗黙的に決定することができ、又は、関連情報をビデオ、シーケンス、ピクチャ、スライス、tile等の単位に明示的に収録することができる。
上述を以下のにまとめる。関連情報を暗黙的に決定するか又は明示的に生成すると仮定する。
符号化/復号の初期段階でフレーム内予測モード候補グループ構成設定(A)を確認する。
Aに対する確認結果は、同一の符号化ブロックにおける先行予測ブロックの設定を参照できることであれば、該ブロックのフレーム内予測モードを候補グループに含ませる(終了)。
Aに対する確認結果は、同一の符号化ブロックにおける先行予測ブロックの設定を参照することを禁止することであれば、該ブロックのフレーム内予測モードを候補グループから排除する(終了)。
説明を容易にするために、幾つかの仮定で上記例を説明したが、これに限定されず、同様又は類似した適用は、本発明の上記種々の実施例に適用可能である。
図20は、本発明の実施例によるブロック分割の例を示す。詳しくは、基本符号化ブロック(最大符号化ブロック)に対して二分木に基づいた分割(又は複数のツリーベースの分割)を行うことで符号化ブロック(斜線ブロックAxB)を得る例を示す。得られた符号化ブロックは、予測ブロックと設定される。
この場合、矩形ブロックを得る場合(AxB、A≠B)の運動情報予測候補グループ設定を説明する。
図21は、予測情報を生成するブロック(該例において、符号化ブロック。2N×N)のフレーム内予測モード候補グループの設定に関わる種々の例を示す。
下記仮定で説明する。該例(輝度成分)において、67個のフレーム内予測モードを有する場合、隣接ブロック(該例において左、上、左上、右上、左下である)から6つの候補を選択し、MPM候補グループに配置する。非MPM候補グループは、複数の群(該例において、A及びBである。Aは、非MPM候補において、現在ブロックの予測モードを予測する可能性がより高いモードは、Aに属する)となるように構成される場合、A群において、16個の候補が配置され、B群において、45個の候補が配置される。
この場合、群Aは、MPM候補グループのモードに含まれない一定のルール(例えば、方向性モードにおける等距離モードで構成される)に応じて分類された候補を含む。又は、MPM候補グループ優先度に基づいて、最終MPM候補グループに含まれない候補等を含んでもよい。B群は、MPM候補グループ及び非MPM候補グループにおける、A群に含まれない候補で構成されてもよい。
図21のaに示すように、現在ブロック(CU0又はPU0。サイズが2NxNであり、水平/垂直が2:1であると仮定する)は、l1-t3-planar-DC-l2-tr-tl-l1*-t3*-l2*-tr*-tl*-垂直-水平-対角線モードの順番で、6つの候補で候補グループを構成することができる。上記例において、*は、各ブロックの予測モードから導出されたモード(例えば、+1、-1等の加算モード)を表す。
また、図21のbに示すように、現在ブロック(CU1又はPU1。、サイズは、2N×Nである)は、l3-c7-planar-DC-bl-k-l1-l3*-c7*-bl*-k*-l1*-垂直-水平-対角線モードの順番で、6つの候補で候補グループを構成することができる。
該例において、図18の(2)の設定を適用する場合、図21のbに示すように、l3-planar-DC-bl-k-l1-c7-l3*-bl*-k*-l1*-垂直-水平-対角線-c7*に応じて、上ブロックの予測モード候補グループから排除されるか又は優先度が繰り下げられるため、A群に含まれる可能性がある。
しかしながら、矩形形状のブロックであってもよく、該ブロックは符号化ユニットに分割され、また、更なる分割を行うことなく、直ちに予測ユニットと設定されるという点で、図18と相違する。従って、図18に示すように、候補グループ構成設定は、該例((2)のような設定)に適用されない可能性がある。
しかしながら、図21におけるkの場合、符号化/復号が完了されていない位置であるため、符号化/復号を完了した隣接ブロックから導出することができる。
図22は、予測情報を生成するブロック(該例において、符号化ブロックN×2N)のフレーム内予測モード候補グループの設定に関わる種々の例を示す。
下記仮定に基づいて説明する。該例(色差成分)において、5つのフレーム内予測モード(該例において、DCモード、平面モード、垂直モード、水平モード、カラーコピーモードである)を有する場合、優先度に応じて順序付けされた予測モードで構成される候補グループを自己適応的に決定し、符号化/復号を実行する。
この場合、隣接ブロック(該例において、左、上、左上、右上、左下である)に基づいて優先度を決定することを例として優先度を説明する。
図13に示すように、左ブロックL3、上ブロックT3、左上ブロックTL、右上ブロックR0、左下ブロックB0において、第1レベルの候補を決定することができる。この場合、前記ブロックを有する予測モードのうち、最頻値を有するモードを第1レベルの候補と決定する。複数のモードが最頻値を有すると、所定の優先度(例えば、カラーコピーモード-平面-垂直-水平-DC)を与える。
該例において、隣接ブロックからモード(前記モードは、現在ブロックの予測モードと推算されたモードである)を得て優先度を決定する(つまり、割り当てられるビット量を決定する。例えば、第1レベルの場合、「0」である。第2から第4レベルの場合、「100」、「101」、「110」、「111」である)という点及び予測モードの予測を実行するという点で、MPM候補設定(該例において第1ビットを0又は1と決定する。1であれば、2ビットを追加する必要がある。符号化/復号の設定によれば、第1ビットについて、バイパス符号化又は普通の符号化を実行することができ、残りのビットについてバイパス符号化を実行することができる)と類似すると認められる。
図22のaに示すように、現在ブロック(CU0又はPU0。サイズがN×2Nであり、且つ水平/垂直が1:2であると仮定する)は、l3、t1、t1、t2、b1ブロックにおいて、第1レベルの候補を決定することができる。
また、図22のbに示すように、現在ブロック(CU1又はPU1。サイズがN×2Nである)は、c13、t3、t1、tr、kブロックにおいて、第1レベルの候補を決定することができる。
該例において、図19における(2)の設定を適用する場合、現在ブロックCU1は、t3、t1、tr、kブロックにおいて第1レベルの候補を決定することができる。また、カラーコピーモードを取得した他の色空間における、現在ブロックに対応するブロックが1つのブロックとなるように構成されていない場合、所定の優先度において、カラーコピーモードの優先度を繰り下げ、優先度をPlanar-垂直-水平-DC-カラーコピーモード等に変更する。上述したように、下記仮定で挙げられた例であってもよい。該例は、現在ブロックと隣接ブロックの親ブロックが同じであるかどうか、分割方式などに基づいて分類を実行する例と異なるが、異なる色空間に対応するブロックが複数である場合、現在ブロックの特性と異なる可能性がより高い。つまり、ブロック同士の関係に基づいて、符号化/復号の設定を自己適応的に決定する例と理解される。
しかしながら、矩形形状のブロックであってもよく、該ブロックは符号化ユニットに分割され、また、更なる分割を行うことなく、直ちに予測ユニットと設定されるという点で、図19と相違する。従って、図19に示すように、候補グループ構成設定は、該例に適用されない可能性がある。
しかしながら、図22におけるkの場合、符号化/復号が完了されていない位置であるため、符号化/復号を完了した隣接ブロックから導出することができる。
説明を容易にするために、幾つかの仮定で上記例を説明するが、これに限定されない。本発明の上記種々の実施例において、同様又は類似した適用を有してもよい。
図21及び図22の実施例において、二分木分割により分割されたM×N(M≠N)ブロックが連続的に生成することを仮定する。
上述において、図14から図16に記載のケース(現在ブロックと隣接ブロックとの関係などを決定することで候補グループを設定する例)が発生することがある。つまり、図21及び図21において、CU0とCU1の分割前の隣接ブロックが同じであり、二分木分割の水平分割又は垂直分割によりCU0及びCU1を得ることができる。
また、図18及び図19に示す実施例において、符号化ブロックが分割された後に、符号化ブロックにおける複数の矩形形状の予測ブロックが生成されると仮定する。
上述において、図14から図16に記載のケースが発生することもある。従って、図18及び図19の例と衝突することが発生する。例えば、図18において、PU1の場合、PU0の情報を用いるかどうかを決定することができる。図14から図16において、PU1の特性がPU0の特性と異なるため、PU0の情報を使用しない。
上述について、符号化/復号の初期段階の設定に基づいて、衝突しない場合、候補グループを構成することができる。種々の他の符号化/復号の設定に基づいて、運動情報予測の候補グループを設定することができる。
上記例により、予測モード候補グループの設定を説明する。また、例外的状態が表記された隣接ブロックからの参照画素を現在ブロックの予測に用いることを制限するように設定することができる。
例えば、本発明の実施例による第1参照画素と第2参照画素を区分することで予測ブロックを生成する場合、第2参照画素が、例外的状態と表記されたブロックに含まれると、第2参照画素を用いて予測ブロックを生成することを制限することができる。つまり、第1参照画素のみを用いて予測ブロックを生成することができる。
要するに、上記例は、第2参照画素の使用に関わる符号化/復号の設定のうちの1つの素子と認められてもよい。
本発明のフレーム内予測モード候補グループの設定に関わる種々のケースを説明する。
該例において、67個のフレーム内予測モードが存在し、65個の方向性モードと、2個の平面及びDCの非方向性モードと、で構成されるが、これに限定されない。他のフレーム内予測モードを設定することができる。該例において、MPM候補グループに6つの候補が含まれると仮定する。しかしながら、これに限定されない。MPM候補グループは、4個、5個又は7個の候補で構成されてもよい。また、候補グループにおいて重なり合いモードが存在しないという設定を有する。また、優先度は、MPM候補グループに含まれるかどうかを決定するための順番を指すが、MPM候補グループに属する各候補の二値化、エントロピー符号化/復号の設定などを決定するための素子と認められてもよい。輝度成分を中心として後述の例を説明するが、色差成分について、同様、類似又は変更した適用を実行することもできる。
本発明のフレーム内予測モード候補グループ(例えば、MPM候補グループ等)に含まれるモードは、空間的隣接ブロックの予測モード、所定の予測モード及び候補に含まれる予測モードから導出された予測モード等であってもよい。この場合、符号化/復号の設定に基づいて、候補グループを構成するためのルール(例えば、優先度等)を決定することができる。
後述される例において、固定の候補グループ構成を説明する。
一例(1)として、フレーム内予測モード候補グループ(該例において、MPM候補グループである)を構成するための固定の優先度をサポートすることができる。例えば、1つの所定の優先度をサポートすることができる。例えば、空間的隣接ブロックの予測モードが候補グループに追加される場合、左ブロック(図13におけるL3)-上ブロック(図13におけるT3)-左下ブロック(図13におけるB0)-右上ブロック(図13におけるR0)-左上ブロック(図13におけるTL)の順番に従う。所定の予測モードが候補グループに追加される場合、平面-DC-垂直-水平-対角線モードの順番に従う。また、上記例を組み合わせた設定であってもよい。例えば、左ブロック-上ブロック-平面ブロック-DCブロック-左下ブロック-右上ブロック-左上ブロックの順番に従う。優先度に応じて候補を実行しても、候補の数をパディングできない場合、含まれる予測モードの導出モード(例えば、左ブロックモードの+1、-1、上ブロックモードの+1、-1等)、垂直モード、水平モード、対角線モード等は、次の優先度を有してもよい。
上記例において、空間的に隣接するブロックの予測モードを候補グループに追加する場合、候補モードは、左ブロック-上ブロック-左下ブロック-右上ブロック-左上ブロックの優先度を有する。また、順番に応じて左ブロック(図12におけるL3)の予測モードを候補グループに含ませる。対応するブロックが存在しない場合、次の優先度の上ブロック(図13におけるT3)とした予測モードを候補グループに含ませる。このように、順番に応じて候補グループに含まれる。対応するブロックの予測モードが利用不可能であるか又は含まれるモードと重なり合う場合、該順番は、次のブロックへジャンプする。
もう1つの例として、空間的に隣接するブロックの予測モードを候補グループに追加する場合、左ブロック-上ブロック-左下ブロック-右上ブロック-左上ブロックの順番で候補グループを構成することができる。この場合、左ブロックの予測モードとして、まず、L3に位置するブロックの予測モードを考慮するが、利用不可能であるか又は重なり合ったモードが存在すれば、左ブロックの次のサブブロックL2、L1、L0の順番に応じて、左ブロックの予測モード候補をパディングする。同様に、同様又は類似した設定を上ブロック(T3-T2-T1-T0)、左下ブロック(B0-B1-B2-B3)、右上ブロック(R0-R1-R2-R3)、左上ブロック(TL)に適用する。例えば、L3-L2-L1-L0の順番に応じて実行しても、候補グループに追加できない場合、次の順番のブロックを実行することができる。
後述される例において、自己適応的候補グループの構成を説明する。自己適応的候補グループの構成は、現在ブロックの状態(例えば、ブロックのサイズ及び形状)、隣接ブロックの状態(例えば、ブロックのサイズ及び形状、予測モード等)又は現在ブロックと隣接ブロックとの関係によって決まってもよい。
一例(3)として、フレーム内予測モード候補グループ(該例において、MPM候補グループである)を構成するための自己適応的優先度をサポートすることができる。頻度に基づいて優先度を設定することができる。つまり、頻繁に発生したモードは、高優先度を有してもよく、発生頻度の低い予測モードは、低優先度を有してもよい。
例えば、空間的に隣接するブロックの予測モードの頻度に基づいて優先度を設定することができる。
頻度が同じである場合に用いられる所定の優先度をサポートすることができる。例えば、左ブロック、上ブロック、左下ブロック、右上ブロック、左上ブロックにおいてそれぞれ2回発生したモード(各ブロックのために1つの予測モードを取得すると仮定する)がモード6及びモード31であり、1回発生したモードがモード14であると仮定すると、該例(左ブロック-上ブロック-左下ブロック-右上ブロック-左上ブロックの順番で、前の1つの順番に出現したブロックに発生したモードがモード6であると仮定する)において、モード6及びモード31を第1候補及び第2候補として含む。
平面及びDCを第3及び第4候補として含む。また、1回の頻度を有する予測モードのモード14を第5候補として含む。続いて、第1候補及び第2候補から導出されたモード5及びモード7並びにモード30及び32を次の優先度に配置することができる。また、第5候補から導出されたモードとしたモード13及びモード15を次の優先度に配置する。続いて、垂直モード、水平モード、対角線モードは、次の優先度を有してもよい。
つまり、頻度が2以上である予測モードについて、平面モード及びDCモードより上位になる優先度を配置する。頻度が1である予測モードについて、平面及びDCモードより下位になる優先度を配置する。上記例のような導出モード、所定のモード等は、下位に配置される。
要するに、所定の優先度(例えば、左ブロック-上ブロック-平面ブロック-DCブロック-左下ブロック-右上ブロック-左上ブロックの順番)は、一般的な画像の統計特性を考慮した上で設定された優先度である。また、自己適応的優先度(該例において、頻度に応じて候補グループに含まれる)は、画像の一部の特徴を考慮して、所定の優先度の一部の修正(該例において、固定平面及びDCは、前に2回以上の頻度のモードを配置し、後に1回の頻度のモードを配置することである)を実行する。
また、頻度に基づいて候補グループ構成に関わる優先度を決定できるだけでなく、該頻度に基づいて、MPM候補グループに属する各候補の二値化及びエントロピー符号化/復号の設定を決定することもできる。一例として、該頻度に基づいて、m個の頻度を有するMPM候補の二値化を決定することができる。又は、頻度に応じて、候補に関わるコンテキスト情報を自己適応的に決定することができる。つまり、該例において、前記モードの選択確率を高いものと設定するコンテキスト情報を用いることができる。つまり、mが1から4である場合(該例において、計6個の候補のうちの2個に非方向性モードが含まれるため、頻度の最大値が4である)、異なるコンテキスト情報を設定することができる。
binインデックス(Bin index。二値化設定に基づいて1ビット以上設定する場合の各ビットの順番である。例えば、MPM候補が「010」である場合、第1binから第3binは、0、1、0であってもよい)の0と1のうちの0は、該候補がMPMとして選択される(1つのbinを用いて最終的なMPMであるかどうかを決定する場合、又は、最終的なMPMを認識するために、付加binを確認する必要がある場合。つまり、上記「010」において、第1binが0であれば、該モードが最終的なMPMであるかどうかを確認するために、第2bin及び第3binを確認する必要がある。1つのbinであれば、該binの0及び1に基づいて、最終的なMPMであるかどうかを直ちに確認することができる)binを表す。1は、前記候補がMPMとして選択されていないbinを表す。0の発生確率の高いコンテキスト情報を適用できる(つまり、二値算術を実行する時、0の発生確率を90%、1の発生確率を10%とする。基本的には、0及び1の発生確率が60%、40%であると仮定する)。従って、コンテキスト適応型二値算術符号化(CABAC)を適用できる。
一例(4)として、フレーム内予測モード候補グループ(該例において、MPM候補グループ)を構成するための自己適応的優先度をサポートすることができる。例えば、空間的に隣接するブロックの予測モードの方向性に基づいて優先度を設定することができる。
この場合、方向性によるカテゴリは、右上方に向かうモード群(図9における2から17)、水平モード群(図9における18)、右下方に向かうモード群(図9における19から49)、垂直モード群(図9における50)、左下方に向かうモード群(図9における51から66)、非方向性モード群(平面、直流モード)である。又は、水平方向性モード群(図9におけるモード2から34)、垂直方向性モード群(図9における35から66)、非方向性モード群(平面、DCモード)に分けられてもよい。また、種々の構成例を有してもよい。
例えば、基本候補グループの優先度が左上ブロック-平面ブロック-DCブロック-左下ブロック-右上ブロック-左上ブロックの順番であれば、上記順番に応じて候補グループを構成することができる。しかしながら、候補グループを構成した後、カテゴリに基づいて、各候補の二値化、エントロピー符号化/復号の設定のための優先度を決定することができる。一例として、MPM候補グループにおける大量の候補を含むカテゴリに対してビットが少ない二値化を実行することができる。又は、カテゴリに基づいて、コンテキスト情報を自己適応的に決定することができる。つまり、各カテゴリに含まれるモードの数(例えば、第1カテゴリがm個であり、第2カテゴリがn個である場合、mとnの組み合わせに基づいてコンテキスト情報を決定する)に基づいて、コンテキスト情報を決定する。
一例(5)として、現在ブロックのサイズ及び形状に基づいて自己適応的優先度をサポートすることができる。例えば、ブロックのサイズに基づいて優先度を決定し、また、ブロックの形状に基づいて優先度を決定することができる。
ブロックサイズが32×32以上であれば、左ブロック-上ブロック-平面ブロック-DCブロック-左下ブロック-右上ブロック-左上ブロックの順番に応じて候補グループに含まれてもよい。32×32未満であれば、左ブロック-上ブロック-左下ブロック-右上ブロック-左上ブロック-平面ブロック-DCブロックの順番に応じて候補グループに含まれてもよい。
又は、ブロックの形状が正方形であれば、左ブロック-上ブロック-平面ブロック-DCブロック-左下ブロック-右上ブロック-左上ブロックの順番に応じて候補グループに含まれてもよい。ブロックの形状が矩形(水平方向に長尺状である)であれば、上ブロック-右上ブロック-左上ブロック-平面ブロック-DCブロック-左ブロック-左下ブロックの順番に応じて候補グループに含まれてもよい。ブロックの形状が矩形(垂直方向に長尺状である)であれば、左ブロック-左下ブロック-左上ブロック-平面ブロック-DCブロック-上ブロック-右上ブロックの順番に応じて候補グループに含まれてもよい。該例は、長いブロックに隣接するブロックが優先順位を有すると理解されてもよい。
一例(6)として、現在ブロックと隣接ブロックとの関係に基づいて自己適応的優先度をサポートすることができる。
図23aに示すように、隣接ブロック(該例において、左ブロックのサブブロックである)の予測モードに基づいて予測ブロックを生成する例を示す。
左ブロック(該例において、左ブロックの上サブブロックである)の予測モード(説明を容易にするために用いられる。方向性に関わるもののみを参照すればよい)は、図9における51から66に存在する方向性モード(垂直モードで右へ傾斜したモード)である場合、左ブロックの予測ブロックを生成する時の参照画素は、図面における斜線部(TL、Tの一部)に対応する。左ブロックの右領域について、実際に、左ブロックの左領域との相関性が高い領域であってもよいが、現在、符号化/復号が実行されていないため、符号化/復号を完了したTの下部領域の参照画素により、予測ブロックを生成することができる。
上述したように、Tブロックの一部の下部領域から予測を実行しても、最終的予測モードは、51から66に存在するモードと決定される。これは、現在ブロックの領域2400も上記予測モードと同様又は類似した方向性(又は縁等)を有することを表すことができる。
つまり、左ブロックの予測モードが現在ブロックの予測モードとして選択される確率が高いことを意味する可能性がある。又は、51から66が選択される確率が高いことを意味する可能性がある。
図23bに示すように、上記例により関連記述を得た場合、図9における2から17(水平モードで下へ傾斜したモード)に上ブロックの予測モードが存在する場合、現在ブロックの幾つかの領域にも対応する予測モードと同様の方向性を有することを意味する可能性がある。
つまり、上ブロックの予測モードが現在ブロックの予測モードとして選択される確率が高いことを意味する可能性がある。又は2から至17が選択される確率が高いことを意味する可能性がある。
上述したように、隣接ブロックの予測モードにより、現在ブロックの予測モードの発生の可能性を決定する場合、優先度を自己適応的に決定することができる。
例えば、基本候補グループ構成の優先度が左ブロック-上ブロック-平面ブロック-DCブロック-左下ブロック-右上ブロック-左上ブロックの順番であると、23aと同様の場合、優先度は不変のままである。図23bの場合、上ブロック-左ブロック-平面ブロック-DCブロック-左下ブロック-右上ブロック-左上ブロックの順番に応じて変化する可能性がある。
又は、図23aの場合、左ブロック-(左+1)ブロック-(左-1)ブロック-上ブロック-Planarブロック-DCブロック-左下ブロック-右上ブロック-左下ブロックの順番であってもよい。また、図23bの場合、上ブロック-(上-1)ブロック-(上+1)ブロック-左ブロック-Planarブロック-DCブロック-左下ブロック-右上-左下ブロックの順番に応じて変化してもよい。
図24aに示すように、一例を示す。それは、隣接ブロック(該例において、左ブロックである)の予測モードに基づいて予測ブロックを生成する。
左ブロックの予測モードが図9における51から66に存在する方向性を有するモードである場合、左ブロックの予測ブロックの生成のために参照される画素は、図面における斜線部TL、Tに対応する。左ブロックの右領域は、左ブロックの左領域との相関性が高い領域であってもよいが、現在、符号化/復号が実行されていないため、符号化/復号を完了したTの下部領域の参照画素により、予測ブロックを生成することができる。
上述したように、Tブロックの下部領域から予測を実行しても、最終的予測モードを51から66に存在するモードと決定する。これは、現在ブロックの幾つかの領域も上記予測モードと同様又は類似した方向性(又は縁等)を有することを意味する。
つまり、左ブロックの予測モードが選択される確率が高いことを意味する可能性がある。又は、51から66が選択される確率が高いことを意味する可能性がある。
図24bに示すように、上記例により関連記述を得た場合、図9におけるモード2から17に上ブロックの予測モードが存在する場合、現在ブロックの幾つかの領域にも対応する予測モードと同様の方向性を有することを意味する可能性がある。
つまり、上ブロックの予測モードが現在ブロックの予測モードとして選択される確率が高いことを意味する可能性がある。又は2から至17が選択される確率が高いことを意味する可能性がある。
上述したように、隣接ブロックの予測モードにより、現在ブロックの予測モードの発生の可能性を決定する場合、優先度を自己適応的に決定することができる。
例えば、基本候補グループ構成の優先度が、左ブロック-上ブロック-平面ブロック-DCブロック-左下ブロック-右上ブロック-左上ブロックの順番であると、図24aの場合、優先度は、不変のままである。図23bの場合、上ブロック-左ブロック-平面ブロック-DCブロック-左下ブロック-右上ブロック-左上ブロックの順番に応じて変化する可能性がある。この場合、図24aの場合、優先度は先と同じである。逆に、MPM候補グループにおける左ブロックの予測モード候補の二値化及びエントロピー符号化/復号の設定を自己適応的に決定することができる。一例として、左ブロックの予測モード候補の二値化(より短いビットを割り当てる)を決定することができる。又は、コンテキスト情報を自己適応的に決定することができる。つまり、該例において、前記候補の選択確率を高いものと設定するコンテキスト情報を用いることができる。
binインデックスの0と1のうちの0は、該候補がMPMとして選択される(1つのbinを用いて最終的なMPMであるかどうかを決定する場合、又は、最終的なMPMを認識するために、付加binを確認する場合)binを表し、1は、前記候補がMPMとして選択されていないbinを表すと、0の発生確率の高いコンテキスト情報を適用することで、CABACを適用することができる。
又は、図24aの場合、左ブロック-(左+1)ブロック-(左-1)ブロック-(左+2)ブロック-(左-2)ブロック-上ブロック-Planarブロック-DCブロック-左下ブロック-右上ブロック-左下ブロックの順番であってもよい。図24bの場合、上ブロック-(上-1)ブロック-(上+1)ブロック-(上-2)ブロック-(上+2)ブロック-左ブロック-Planarブロック-DCブロック-左下ブロック-右上-左下ブロックの順番に応じて変化してもよい。
図25aに示すように、一例を示す。それは、隣接ブロック(該例において、左ブロックである)の予測モードに基づいて予測ブロックを生成する。
左ブロック及び左下ブロックの予測モードが図9の51から66に存在する方向性を有することを考慮する。左ブロック及び左下ブロックは同一のブロックに属してもよく、又は、同一のブロックに属しなくてもよい。該例において、説明を容易にするために、左ブロック及び左下ブロックは、分割が完了された同一のブロック(つまり、同一ブロック)に属すると仮定する。
(左+左下)ブロックの予測ブロックの生成時の参照画素は、図面における斜線部TL、T、TRに対応する。上述したように、Tブロック及びTRブロックの下部領域から予測を実行しても、最終的予測モードは、51から66に存在するモードと決定される。これは、現在ブロックの全体領域も上記予測モードと同様又は類似した方向性を有することを意味する。
つまり、左ブロック又は左下ブロックの予測モード(該例において、2つのブロックの予測モードが同じである場合)が現在ブロックの予測モードとして選択される確率が(極めて)高いことを意味する可能性がある。又は、モード51から66が選択される確率(該例において、2つのブロックの予測モードが異なる場合)が高いことを意味する可能性がある。
図25bにおいて、図9におけるモード2から17に(上+右上)ブロックの予測モードが存在する場合、現在ブロックの全体領域にも、対応する予測モードと同様の方向性を有することを意味する可能性がある。
つまり、上ブロック又は左上ブロックの予測モード(該例において、2つのブロックの予測モードが同じである場合)が現在ブロックの予測モードとして選択される確率が(極めて)高いことを意味する可能性がある。又は、モード2から17が選択される確率(該例において、2つのブロックの予測モードが異なる場合)が高いことを意味する可能性がある。
上述したように、隣接ブロックの予測モードにより、現在ブロックの予測モードの発生の可能性を決定する場合、優先度を自己適応的に決定することができる。
例えば、基本候補グループ構成の優先度が左ブロック-上ブロック-平面ブロック-DCブロック-左下ブロック-右上ブロック-左上ブロックの順番であると、図25aの場合、左ブロック-左下ブロック-平面ブロック-DCブロック-上ブロック-右上ブロック-左上ブロックの順番に応じて変化する可能性がある。図25bの場合、上ブロック-右上ブロック-平面ブロック-DCブロック-左ブロック-左下ブロック-左上ブロックの順番に応じて変化してもよい。つまり、関連ブロックの優先度を上位に配置してもよい。
又は、図25aの場合、左ブロック-左下ブロック-(左+1)ブロック-(左-1)ブロック-(左下+1)ブロック-(左下-1)ブロック-平面ブロック-DCブロック-上ブロック-右上ブロック-左上ブロックの順番に応じて変化してもよい。図25bの場合、上ブロック-右上ブロック-(上-1)ブロック-(上+1)ブロック-(右上-1)ブロック-(右上+1)ブロック-平面ブロック-DCブロック-左ブロック-左下ブロック-左上ブロックの順番に応じて変化してもよい。
また、図25の場合、第4例に記載したカテゴリに基づいて、MPM候補グループに属する各候補の二値化、エントロピー符号化/復号の設定を決定することができる。一例として、MPM候補(図24のa及びbのモード)の二値化(つまり、より短いビットを割り当てる)を決定することができる。または、カテゴリに基づいたコンテキスト情報を自己適応的に決定することができる。つまり、該例において、前記モード(図25のa及びbのモード)の所属カテゴリの発生確率を高いものと設定するコンテキスト情報を用いることができる。
binインデックスの0と1のうちの0は、上記カテゴリと異なるカテゴリに属するモードがMPMとして選択されるbinを表し、1は、該カテゴリに属するモードがMPMとして選択されるbinを表すと、1の発生確率が高いコンテキスト情報を適用することで、CABACを適用することができる。
上述を確認するために、所定の方向(左、上、左上、右上、左下)に位置するブロックが単一のブロック(つまり、未分割)であるかどうかを確認する必要がある。従って、単一のブロックであれば、該ブロックの予測モードにより、上述を実行する。分割ブロックであれば、一部又は全ての各ブロックの予測モードを確認し、上述を実行する。しかしながら、この場合、複雑性が大幅に増加する可能性がある。
このため、該プロセスを簡単に設定することができる。現在ブロックの範囲が(a,b)から(a+M-1,b+N-1)であると仮定する。左ブロックは、現在ブロックを中心とした、(a-1,b)から(a-1,b+N-1)の範囲に属する画素を含む。全ての画素ではなく、一部の画素の予測モードを確認することで、左ブロックの予測モードの方向性を決定することができる。
例えば、(a-1,b)の左ブロックの右上側(現在ブロックを基準とする。左上端)座標の予測モード、(a-1,b+N-1)の左ブロックの右下側(現在ブロックを基準とする。左下端)座標の予測モードを用いて、予測ブロックの方向性を判定する。この場合、左ブロックは、単一のブロックとなるように構成されてもよく、分割ブロックとなるように構成されてもよい。単一のブロック又は分割ブロックであっても、前記座標を含む予測モードは、同じであってもよい。しかしながら、異なっても、例えば図24aにより説明する場合、図9の51から66のカテゴリに属する予測モードであれば、該予測モードに対する予測モード符号化に、高優先度を割り当てることができる。
上記例において、左側ブロックを例とするが、同様に、他の方法を適用できる。左ブロックに加えて、左下ブロックの予測モードを確認するために、例えば、(a-1,b+N)のような、左下ブロックの座標に属する予測モードを確認する必要がある。
要するに、所定の方向に位置するブロックの幾つかの座標の予測モードを確認し、該方向の予測モード又は予測モード方向性を確認することで、フレーム内予測モード候補グループ構成の参考とする。この場合、座標の数は、例えば、1、2、3のような1以上の整数であってもよい。
要するに、現在ブロックとの相関性が高いモードと判定した場合、候補グループにおける該モードに高優先度を割り当てることができる。又は、該モードに基づいて導出された予測モード(例えば、隣接予測モード。例えば、+1又は-1)に、候補グループにおいて、高優先度を割り当てることができる。つまり、空間的隣接ブロックの予測モード又は所定の予測モード(DCモード、平面モード、水平モード、垂直モード、対角線モード等)のうちの全て又は一部に優先してもよい。
上記例と異なっており、現在ブロックとの相関性が高いと判定できなければ、基本的な候補グループを構成することができる。つまり、相関性の高いプロセスの候補グループ構成方法を考慮して、隣接ブロックの状態情報(ブロックサイズ、形状、位置、予測モード等)に基づいて、複数の予測モード候補グループ構成法又は構成された候補グループのうちの1つを選択することができる。
図26は、現在ブロックと隣接ブロックとの関係を示す概略図である。
図26のaは、分割ブロックによる符号化順番を示す。
四分木分割を実行する場合、左上ブロック(0)-右上ブロック(1)-左下ブロック(2)-右下ブロック(3)の順番に応じて符号化を実行する。前記サブブロック(深度1)において四分木分割を更に実行する場合、各サブブロック(深度2)において、上記順番に応じて符号化を実行し、且つ、深度情報に優先して符号化を実行する。深度1で分割される左上ブロックについて、深度2で、左上ブロック(0-0)-右上ブロック(0-1)-左下ブロック(0-2)-右下ブロック(0-3)の順番を有する。深度1で分割される右下ブロックについて、深度2で、左上ブロック(3-0)、右上ブロック(3-1)、左下ブロック(3-2)、右下ブロック(3-3)の順番を有する。つまり、深度情報で表されるx-y-zの順番に応じて符号化を実行する。
二分木分割を実行する時、水平分割の場合、左ブロック(0)-右ブロック(1)又は上ブロック(0)-下ブロック(1)の順番に応じて符号化を実行する。前記サブブロック(深度1)において二分木分割を更に実行する場合、各サブブロック(深度2)において、上記順番に応じて符号化を実行し、且つ深度情報に優先して符号化を実行する。
図26aにおいて、ブロック3が図25aと同じであり、ブロック16が図23aと同じである場合、ブロック20は、図24aと同じである場合に対応する。
例えば、ブロック3は、左ブロックと左下ブロックに分割されておらず、1つのブロックとなり、特定方向での予測モード(1つのモード)を有するか又は左ブロックと左下ブロックが分離しても、特定方向での予測モード(1つ以上のモード)を有するものである。
ブロック16は、左ブロックが分割された後に複数のサブブロックとなり、そのうちの少なくとも1つのサブブロックが特定方向での予測モード(1つのモード)を有するものである。
ブロック20は、左ブロックが1つのブロックとなり、特定方向での予測モード(1つのモード)を有するか又は左ブロックに分割された後に複数のサブブロックとなり、且つ全てのサブブロックが特定方向での予測モード(1つ以上のモード)を有するものである。
図26bにより、現在ブロックと隣接ブロックとの関係の一例を示す。図26bのように推定されると判定すれば、それが予測モード候補グループの構成に含まれると認められる。
上記例により、現在ブロックと隣接ブロックとの関係の幾つかの例を示すが、種々の他の場合を有してもよく、これを考慮してフレーム内予測モード候補グループ構成を設定することができる。
また、上記例において、フレーム内予測モード候補グループの種々の構成を示す。各実施例に記載の1つの設定に適用される候補グループ構成を有してもよい。各実施例に記載の設定は、他の実施例に同様又は類似するように適用可能であり、且つ、候補グループを構成するために、複数の設定が適用可能である。また、上記例と付加的設定を組み合わせることで、候補グループを構成することができる。
該例において、一例を仮定する。その非MPM候補グループは、複数の候補グループ(A群及びB群)となるように構成される。MPM候補グループの予測モードを選択することなく、非MPM候補グループの予測モードのうちの次の、現在ブロックの予測モードと推定されるモード候補グループ(A群)を用いて、符号化/復号を実行する。
該例において、候補グループAに16個の候補が含まれ、候補グループBに45個の候補が含まれると仮定する。
候補グループAの構成の設定は、種々の方法を用いることができる。MPM候補グループの優先度に依存せずに含まれる予測モードを候補グループAに含ませることができる。
又は、上記例と無関係に所定のカテゴリに基づいてA候補グループを構成することができる。例えば、図9において、候補グループに、所定の間隔を有する予測モードを配置することができる。つまり、図8における2、6、10、14、18等は、A群に含まれてもよい。この場合、群Bについて、3、4、5、7、8、9、11等は、B群に含まれてもよい。勿論、MPM候補グループに含まれるモードが除外された設定である。
上記例に限定されず、様々な変形及び他の設定を有してもよい。
要するに、まず、MPM候補グループを構成し、続いて候補グループAを構成する。また、残りの予測モードは、B候補グループを構成することができる。
MPM候補グループモードは、Truncated Unary二値化を用いることができ、A候補グループモードは、固定長二値化を用いることができ、B候補グループモードは、Truncated Binary二値化を用いることができるが、種々の他の二値化方法を用いることもできる。
MPM候補グループモードは、レギュラー符号化部により、全て又は一部のbinに対して符号化/復号を実行することができる。また、非MPM候補モードは、バイパス符号化部により、全てのbinに対して符号化/復号を実行することができる。又は、非MPM候補グループにおける候補グループAモードは、レギュラー符号化部により、一部のbinに対して符号化/復号を実行することができるが、これに限定されず、種々の形態を用いることができる。
以上は、基本設定に関する説明であるが、本発明は、複数の変換実施例を有してもよい。
続いて、複数の参照画素を利用して予測ブロックを生成することを説明する。
図27は、複数の参照画素層を利用して予測ブロックを生成する例を示す。
加重平均をref_1のa及びref_2のbに適用することで生成された画素値を現在ブロックのx画素の予測値とすることができる。
複数の参照画素層を利用して予測ブロックを生成する場合、より高い予測効果を発生することがある。つまり、現在ブロックの画素の予測値を生成する場合、複数の画素でより正確な予測結果を生成できることを意味する。
しかしながら、re1_1及びref_2を、現在ブロックと縁方向等との相関性が高い場合に適用することができる。幾つかの場合、複数の参照画素層を利用すると、低い予測結果を発生することがある。例えば、現在ブロックの、垂直方向での相関性が高く、上ブロックの、対角線方向での相関性が高いと、複数の参照画素層を利用する場合、高い効果を実現できない。
この場合、好ましくは、1つの現在の参照画素層又は複数の参照画素層の使用を明示的に決定する。
又は、参照画素層同士の相関性が高いかどうかを決定することで、複数の参照画素層を利用して予測ブロックを生成するかどうかを暗黙的に決定することができる。
上記例において、フレーム内予測の場合、所定のサブブロックを単位として分割を行い、サブブロックに基づいた予測及び変換などを実行することを説明した。この場合、現在ブロックに属するサブブロックは、1つのフレーム内予測モードを共有することができる。この場合、複数の参照画素層を前記ブロックにおけるサブブロックに適用すると、高い効果を実現させる可能性がある。
図28は、複数の参照画素層を利用して現在ブロックにおけるサブブロックを生成する例を示す。現在ブロックは、4M×4Nであり、サブブロックは4M×Nでありる。また、順方向予測(上->下又は左->右。参照として、逆方向の場合、下->上、右->下である)を行う。予測方向が左上ブロック、上ブロック、右上ブロックである参照画素を利用する予測モードは、k(図9における66番)である。
図28を参照すると、xを含むサブブロック4M×Nは、符号化した1つ目の先行サブブロックを参照画素層としてフレーム内予測を実行することができる。又は、xを含むサブブロックは、符号化した2つ目の先行サブブロックを参照画素層としてフレーム内予測を実行することができる。又は、xを含むサブブロックは、1つ目又は2つ目の先行サブブロックを参照画素層としてフレーム内予測を実行することができる(各参照画素層に加重値を適用する場合、xを含むサブブロックに適用される加重値は、他のサブブロックの加重値以上である)。
一般的には、符号化ブロックを基準として、複数の参照画素層を使用する場合、無条件で使用すると、常に正確な結果を発生するとは限らない。しかしながら、上記例において、符号化に用いられるターゲットサブブロックの先行サブブロックは、ターゲットサブブロックと同一の方向を有するため、より高い結果を発生する。従って、複数の参照画素層の設定を現在ブロックのサブブロックに明示的に適用することで、参照画素層の実行又は選択を明示的に決定することができる。又は、複数の参照画素層をターゲットサブブロックの上位k個のサブブロックに暗黙的に適用することで、ターゲットサブブロックの予測値を生成することができる。
サブブロック単位で複数のサブブロックを、異なる参照画素層を使用するように設定することができる。上記設定を利用して予測ブロックを生成しよとする場合、現在ブロックにおけるサブブロックの位置に応じて、様々な設定を実行することができる。
例えば、現在ブロックにおいて4つの水平分割されたサブブロックをサポートすると仮定する。従って、1つ目のサブブロックは、現在ブロックの最近傍参照画素を利用して予測及び符号化を実行することができ。2つ目のサブブロックは、現在ブロックの最近傍参照画素及び1つ目のサブブロックのデータを利用して予測及び符号化を実行することができる。
また、3つ目のサブブロックは、1つ目及び2つ目のサブブロックのデータを利用して予測及び符号化を実行することができ、4つ目のサブブロックは、2つ目及び3つ目のサブブロックのデータを利用して予測及び符号化を実行することができる。
以上、各参照画素層(又はサブブロック)に適用される参照画素フィルタリング及び参照画素補間は、同一のフィルタを用いてもよく、異なるフィルタを用いてもよい。この場合、フィルタタップ数及びフィルタ係数によりフィルタを区分する。また、フィルタリングを同様又は異なるように適用することができる。又は、参照画素フィルタリング及び参照画素補間をそれぞれ実行することなく、1つのフィルタにより実現させることができる。例えば、3タップ低周波フィルタを用いた参照画素フィルタリングを実行することなく、1つの6タップ補間フィルタを実行する。また、4タップ補間フィルタを使用しないため、2回のフィルタリングを実行しない可能性がある。
上述したように、種々の参照画素構成を設定し、続いて、複数の参照画素層を利用して予測を実行することができる。本発明の上記種々の他の実施例により上記種々の組み合わせを説明することができる。
以下、予測ブロックの生成例を説明する。
上記において、フレーム内予測に用いられる参照画素を複数の概念に区分できることを説明した。複数の参照画素層を利用する場合と異なっており、予測モードに基づいて、第1参照画素及び第2参照画素を利用して予測ブロックを生成又は補正することができる。
予測モードに基づいて異なる形態を適用する例を説明した。しかしながら、該例は、上記現在ブロックを複数のサブブロックに分割する場合に適用可能である。つまり、参照画素を第1参照画素として現在ブロックの隣接ブロックに適用し、第2参照画素として予測モードの方向と逆である位置又は予測モードの方向に対応する位置にある画素を用い、現在ブロックが複数のサブブロックに分割される場合、第1参照画素は、直上ブロックであってもよい。つまり、本発明は、複数の参照画素を利用して予測ブロックを生成する例において、第1参照画素の位置を変更することができる。
又は、現在ブロックを複数のサブブロックに分割して変換を実行する場合、上記方法を用いなくてもよい。その原因は、符号化を完了した最近傍画素が配列された場合、第2参照画素を利用すると、効率が高くなる可能性があることである。
つまり、現在ブロック(変換ブロック)をサブブロックに分割して符号化を実行するかどうかを判定する。従って、分割を行うことなく、元のブロックサイズで、予測、変換等により符号化を実行すると、本発明は、予測モードに基づいて第1参照画素及び第2参照画素を利用して予測ブロックを生成するか又は予測ブロックを補正することができる。分割した後に符号化を実行すると、第2参照画素を利用して予測ブロックを生成するか又は予測ブロックを補正することを禁止する。
符号化/復号の設定に基づいて分割を行ったに符号化を実行する場合、第2参照画素を利用すると、第1参照画素の位置を調整することで対応するプロセスを実行することができる。
図29は、フレーム内予測に用いられる参照画素配置を示す概略図である。分割ブロック部から予測を実行する現在ブロックのサイズ及び形状(M×N)を得ることができる。また、下記仮定で説明する。フレーム内予測を実行するために、4×4から256×256の範囲をサポートする。一般的には、予測ブロックを単位としたフレーム内予測を実行できるが、ブロック分割部の設定に基づいて、符号化ブロックを単位、変換ブロックを単位としたフレーム内予測を実行できる。ブロック情報を確認した後、参照画素配置部は、現在ブロックの予測に用いられる参照画素を配置することができる。この場合、一時メモリ(例えば、アレイ<Array>、メインアレイ又はサブアレイ等)により参照画素を管理することができる。該ブロックの各フレーム内予測プロセスにおいて、該参照画素を生成して削除する。また、一時メモリの容量は、参照画素の配置によって決まってもよい。
該例において、現在ブロックを中心として、左ブロック、上ブロック、左上ブロック、右ブロック、左下ブロックが現在ブロックの予測に用いられることを例として説明するが、これに限定されない。他の構成を有するブロック候補グループを現在ブロックの予測に用いることができる。例えば、前記参照画素に対する隣接ブロックの候補グループは、ラスタ又はZ走査の場合の一例であってもよい。また、走査順番に応じて前記候補グループのうちの一部を除去してもよく、又は他のブロック候補グループ(例えば、上ブロック、下ブロック、右下ブロック等を更に配置する)を含むように構成されてもよい。つまり、走査順番に応じて参照可能な隣接ブロックの位置を変更する。
又は、他の色空間(例えば、現在ブロックがCrに属すれば、他の色空間は、Y又はCbに対応する)における現在ブロックに対応するブロック(例えば、各色空間における同一の座標又は色成分の構成比に基づいて、対応する座標を有する場合)は、現在ブロックの予測に用いられる。また、説明を容易にするために、前記所定の位置(左、上、左上、右上、左下)で1つのブロックを構成することを例として説明するが、対応する位置で、少なくとも1つのブロックが存在してもよい。つまり、前記所定の位置で、対応するブロックを分割することで得られた複数のサブブロックが存在してもよい。
要するに、現在ブロックの隣接領域は、現在ブロックのフレーム内予測に用いられる参照画素の位置であってもよい。また、予測モードに基づいて、もう1つの色空間の現在ブロックに対応する領域を更に参照画素の位置とすることを考慮してもよい。上記例に加えて、予測モード、方法等に基づいて定義された参照画素の位置を決定することができる。例えば、ブロックマッチングなどのような方法で予測ブロックを生成する場合、参照画素の位置を、現在画像の現在ブロックの前の符号化/復号を完了した領域又は符号化/復号を完了した領域におけるサーチ範囲内に含まれる領域(例えば、現在ブロックの左側、上側、左上側又は右上側等を含む)と認めることができる。
図29に示すように、現在ブロック(MxN)の予測に用いられる参照画素は、左ブロック、上ブロック、左上ブロック、右上ブロック、左下ブロックの隣接画素(図7におけるRef_L、Ref_T、Ref_TL、Ref_TR、Ref_BL)で構成されてもよい。
この場合、少なくとも1つの参照画素層により隣接画素を分類することができる。また、最近傍画素は、ref_0(画素値差1。p(-1,-1)からp(2M-1,-1))、p(-1,0)からp(-1,2N-1))であってもよく、次の隣接画素(画素値差2。p(-2,-2)からp(2M,-2)、p(-2,-1)からp(-2,2N))は、ref_1であってもよく、また次の隣接画素(画素値差3。p(-3,-3)からp(2M+1,-3)、p(-3,-2)からp(-3,2N+1))は、ref_2等であってもよい。詳しくは、ref_kは、隣接ブロック(該例においてRef_TL、Ref_T、Ref_TR、Ref_L、Ref_BLである)における画素値差がk+1である参照画素集合を表す。また、本発明において、参照画素集合ref_kの使用について、下記仮定で説明(又は主な説明)を行う。Ref_TL、Ref_T、Ref_TR、Ref_L、Ref_BLにおける画素値差k+1の画素を参照画素として予測ブロックに用いるが、これに限定されない。これは、現在ブロックの予測に用いられる参照画素集合において、各隣接ブロックは、同じであっても異なってもよいことを意味する。
例えば、以下のように、Ref_TL、Ref_T及びRef_TRにおいて、ref_0(p(-1,-1)からp(2M-1,-1))を利用し、Ref_Lにおいて、ref_1(p(-2,0)からp(-2,N-1))を利用し、また、Ref_BLにおいて、ref_2(p(-3,N)からp(-3,2N+1))を用いる。
また、1つの参照画素集合は、Ref_TL、Ref_T、Ref_TB、Ref_L、Ref_BL(つまり、現在ブロックのフレーム内予測に用いられる隣接ブロックから取得する)を集めた参照画素を指す。後述される例において、参照画素集合は、前記参照画素の一部の組み合わせで構成されてもよい(例えば、Ref_T+Ref_TR、Ref_L+Ref_BL、Ref_T+Ref_TL+Ref_L等。又は、各位置でのブロックは、サブブロックで構成される。即ち、Ref_T0+Ref_T1、Ref_L0+Ref_TL+Ref_T等)。
本発明において、最大限3つの参照画素集合が存在することを例として説明するが、これに限定されず、より多くの参照画素集合(kが3以上である)を利用することができる。この場合、サポートされる参照画素集合(又は集合の最大数。後述される例において、参照画素候補グループを指す)は、符号化/復号の設定(例えば、ブロックサイズ、形状、予測モード、画像タイプ、色成分等)によって決まってもよい。
本発明は、最近傍参照画素集合から低インデックス(0から1ずつ逓増する)を割り当てることを例として説明するが、本発明は、これに限定されない。また、上記インデックス設定(複数の参照画素集合のうちの1つを選択する場合、低インデックスに対して短いビットを割り当てる二値化等)で、後述される参照画素配置の関連情報を生成することができるが、これに限定されない。
一般的には、隣接ブロックの最近傍画を参照画素(該例において、参照画素層ref_0である)とすることができるが、符号化/復号の設定に基づいて、他の画素を参照画素とすることができる。他の参照画素層又は少なくとも1つの参照画素層を利用すると、予測の正確度を向上させることができる。この場合、参照画素層設定に関わる種々の設定を有してもよい。
例えば、フレーム内予測に用いられる参照画素集合を暗黙的に決定することができるか又は用いられる参照画素集合に関わる情報を明示的に生成することができる。詳しくは、少なくとも1つの所定の参照画素集合を参照画素とすることができる。又は、参照画素集合選択情報により決定された少なくとも1つの参照画素集合を参照画素とすることもできる。上記プロセスにより、参照画素集合(例えば、ref_0、ref_1、ref_2、ref_0+ref_1、ref_0+ref_2、ref_1+ref_2、ref_0+ref_1+ref_2)は、現在ブロックの参照画素とすることができる。
また、参照画素とする参照画素集合が1つである場合及び2つ以上である場合に基づいて区分することができる。前者の場合、1つの参照画素集合における画素を利用して予測ブロックを生成することを表す。後者の場合、各参照画素集合に位置する少なくとも1つの画素(例えば、2つ以上の参照画素集合が参照画素とされる場合、各参照画素集合に位置する画素値(該値は、各参照画素集合における1つの画素又は複数の画素から導出された値であってもよい)の中間値、加重平均などにより導出された値により、予測ブロックを生成することを表す。
例えば、参照画素を利用して予測ブロックを生成することができる。該参照画素は、第1参照画素集合に位置する画素(該例におけるref_0)及び第2参照画素集合に位置する画素(該例におけるref_1)の加重加算により得られたものである。この場合、予測モード(例えば方向性予測モード)によれば、各参照画素集合に加重加算した画素を適用する場合、整数単位の画素であってもよく、小数単位の画素であってもよい。又は、加重値(例えば、7:1、3:1、2:1、1:1等)をそれぞれ、第1参照画素集合に位置する画素を参照画素とすることで得られた予測ブロック及び第2参照画素集合に位置する画素を利用することで得られた予測ブロックに適用し、1つの予測ブロックを得る。
参照画素配置に関わる情報を明示的に生成する場合、自己適応的参照画素配置を許容する指示情報(該例において、adaptive_intra_ref_pixel_enabled_flagである)は、ビデオ、シーケンス、ピクチャ、スライス、tile等を単位として生成される。
指示情報が、自己適応的参照画素配置(該例において、adaptive_intra_ref_sample_enabled_flag=1である)を許容することを意味すると、自己適応的参照画素配置情報(該例において、adaptive_intra_ref_sample_flagである)は、ピクチャ、スライス、tile、ブロック等を単位として生成される。
前記配置情報が、自己適応的参照画素配置(該例においてadaptive_intra_ref_sample_flag=1である)を許容することを表すと、参照画素配置関連情報(例えば、参照画素集合選択情報等。該例において、intra_ref_idxである)は、ピクチャ、スライス、tile、ブロック等を単位として生成される。
この場合、自己適応的参照画素配置を許容しないか又は適用的参照画素配置ではない場合、所定の設定に基づいて、参照画素を配置することができる。一般的には、その例は、隣接ブロックの最近傍画素を参照画素とすることであってもよいが、これに限定されず、種々の数であってもよい(例えば、ref_0及びref_1を参照画素とし、ref_0及びref_1により加重加算などの方法で予測画素値を生成する場合など。即ち、暗黙的場合)。
また、上記所定の場合(例えば、ref_0の場合)に加えて、参照画素配置関連情報(例えば、参照画素集合選択情報等)は、候補グループ(例えば、ref_1、ref_2、ref_3等)で構成されてもよいが、これに限定されない。
上記例により、上位層ユニットについて、階層化構造で説明するが、これに限定されない。また、幾つかの場合、関連情報を暗黙的に決定することができる。例えば、上述したように、幾つかの場合、符号化/復号の設定に基づいて関連情報を生成することができる。幾つかの場合、関連情報を暗黙的に決定する。幾つかの場合、上記の組み合わせであってもよい。
上記例により、幾つかの参照画素配置を説明した。それを種々の符号化/復号情報などと組み合わせてフレーム内予測設定を決定することができる。この場合、符号化/復号情報は、画像タイプ(I/P/B)、色成分、現在ブロックのサイズ、形状、予測モード(予測モードの種類(方向性、非方向性)、予測モードの方向(垂直、水平、対角線1、対角線2等)等を含む。また、隣接ブロックの符号化/復号情報及び現在ブロックと隣接ブロックの符号化/復号情報の組み合わせにより、フレーム内予測設定(該例において、参照画素配置設定である)を決定することができる。
図30は、参照画素配置を示す概略図である。
図30aは、1つの参照画素集合を参照画素とすることを示す。ref_0を参照画素とした後、後続のフレーム内予測プロセス(参照画素生成、参照画素フィルタリング、参照画素補間、予測ブロック生成、後処理フィルタリング等。参照画素集合配置に基づいて、幾つかのフレーム内予測プロセスを自己適応的に配置することができる)を実行することができる。例えば、1つの参照画像集合を利用して参照画素集合情報を生成することを実行しない。また、非方向性モードに基づいたフレーム内予測プロセスを実行することができる。
図30bは、最大限2つの参照画素集合を参照画素とすることを示す。ref_0+ref_1(図面においてandである)を参照画素とした後、後続のフレーム内予測プロセスを実行することができる。例えば、複数の参照画素集合であるが、参照画素集合情報が生成されない。しかしながら、幾つかの予測モード(該例において、左上から左下へ又は左下から右上への方向である)に基づいてフレーム内予測プロセスを実行することができる。
図30cは、最大限1つの参照画素集合を参照画素とすることを示す。ref_0、ref_1又はref_2のうちの1つ(図面においてorである)を参照画素とした後、後続のフレーム内予測プロセスを実行することができる。例えば、複数の参照画素集合であるため、参照画素集合情報が生成される。また、幾つかの予測モード(該例において、左上から右下への方向である)に基づいたフレーム内予測処理を実行することができる。
要するに、図30のb及びcは、それぞれ、2つ、3つの参照画素集合(換言すれば、それぞれ2つ及び3つの参照画素候補グループである)をサポートすることを示す。また、bは、参照画素で構成される参照画素集合が最大限2つであることを表す(例えば、各参照画素集合の画素値の加重平均などにより導出される)。また、cは、参照画素で構成される参照画素集合が最大限1つであることを表す(例えば、3つの候補グループから選択された1つの参照画素集合の画素値により導出される)。
図31は、参照画素配置を示す概略図である。
図31aは、ブロックサイズが64×64以上である場合、1つの参照画素集合が参照画素候補グループであることを表す。図31bは、ブロックサイズが16×16以上であって64×64未満である場合の2つの参照画素集合が参照画素候補グループである(参照画素に用いられる参照画素集合が最大限2つであることを意味する。つまり、図30のb及びcと理解されてもよい。以下は同様である)ことを表す。図31cは、ブロックのサイズが16×16未満である場合、3つの参照画素集合が参照画素候補グループである(参照画素に用いられる参照画素集合が最大限3つであることを意味する)ことを表す。該例において、現在ブロックのサイズが大きいほど、隣接ブロックのサイズが小さくなる可能性が大きくなる。これは、他の画像特性により引き起こされた分割結果である可能性がある。従って、現在ブロックの画素値との距離が大きい画素で予測を実行することを避けるために、ブロックのサイズが大きいほど、参照画素集合の候補数が減少すると仮定するが、逆の場合を仮定してもよい。これに限定されず、種々の変更を行うことができる。
図32は、参照画素配置に関わる概略図である。
図32は、ブロックの形状が矩形(該例において水平方向での長さが長い形状である)である場合、長さが長い一側の複数の参照画素集合が、参照画素候補グループであり、長さが短い一側の1つの参照画素集合が参照画素候補グループであることを示す。該例において、長さが短い一側が1つの参照画素集合で構成されると仮定するが、長さが長い一側に比べて、少ない数を設定すると理解されてもよい。また、逆の場合、数に対する設定を行ってもよい。該例の目的は、ブロックの形状が矩形である場合、長さが短い参照画素と現在ブロックとの距離が頻繁に遠くなることによる予測正確度の低下を防止することであるが、これに限定されない。
例えば、ブロックの上側、右上側の参照画素を利用して予測を行う方向性モードの場合、複数の参照画素集合(図30のb及びcはいずれも考えられる)を利用して予測を実行することができる。また、ブロックの左側、左下側の参照画素を利用して予測を行う方向性モードの場合、単一の参照画素集合を利用して予測を実行することができる。つまり、1つのブロックの隣接ブロックに基づいて、参照画素集合を自己適応的に決定する場合であってもよい。
複数の参照画素集合のうちの1つの参照画素集合を参照画素とする例として、各参照画素集合が同じ又は類似した場合、生成された参照画素配置情報(例えば、参照画素選択情報、適用的参照画素許容情報等)は、繰り返して生成された情報である可能性がある。例えば、各参照画素集合の参照画素分布特性(例えば、各参照画素集合の平均値、分散などにより判定を行う。一例として、上記プロセスで得られた値と閾値<Threshold>を比較することで判定を行う。つまり、どの参照画素集合を利用するかに関わらず、同じ又はほぼ類似した予測ブロックを生成すると判定すれば、関連情報を省略することができる。該例において、最後に選択された予測モードに対して比較を実行することに限定されてもよい)が同じ又は類似したと判定する場合、参照画素配置情報を省略してもよい。この場合、所定の方法(例えば、最近傍参照画素集合)で、参照画素を構成することができる。フレーム内予測情報(例えば、フレーム内予測モード情報)を受け取ることで参照画素配置情報を受け取るかを決定する場合、デコーダによる判定は、エンコーダによる判定と同じであってもよい。また、該判定に基づいて、参照画素配置情報を受け取るかどうかを決定することができる。
前記種々の例により、複数の参照画素集合を参照画素とすることを示すが、これに限定されず、種々の変換例を有してもよく、また、他の付加的配置と組み合わせられてもよい。
フレーム内予測の参照画素配置部は、参照画素生成部、参照画素補間部、参照画素フィルタ部等を備えてもよく、また、上記構成の全て又は一部を備えてもよい。
参照画素配置部は、参照画素の利用可能性(Availability)を確認し、利用可能な参照画素及び利用不可能な参照画素に対して分類を行うことができる。例えば、所定の位置でのブロック(又は参照画素候補ブロック)を使用できれば、対応するブロックを参照画素として用いることができ、ブロックを使用できなければ、該ブロックを参照画素として用いることができない。
下記条件のうちの少なくとも1つを満たす場合、参照画素が利用不可能であると判定する。例えば、ピクチャ境界外に位置すること、現在ブロックと同一の分割単位(例えば、slice、tile等)に属しないこと、符号化/復号が完了されていないこと、符号化/復号の設定に応じて使用が制限されることのうちのいずれか1つを満たすと、利用不可能であると判定する。つまり、上記全ての条件を満たしない場合、利用可能であると判定する。
また、参照画素の使用は、符号化/復号の設定に制限される。例えば、限られたフレーム内予測(例えば、constrained_intra_pred_flag)を実行するかどうかに基づいて参照画素の使用を制限することができる。通信環境などのような外部要因に対して、エラーロバスト性符号化/復号を実行する場合、他の画像から参照されて復元されたブロックを参照画素として用いることを禁止しようとする時、限られたフレーム内予測を実行することができる。
参照画素の利用可能性により、参照画素候補ブロックを、全ての参照画素候補ブロックを使用できる場合、幾つかの参照画素を使用できる場合、全ての参照画素を使用できない場合に分類することができる。全ての参照画素候補ブロックを使用できる場合以外の他の場合に、候補ブロック位置で利用不可能な参照画素をパディング又は生成することができる。
参照画素候補ブロックを使用できる場合、該ブロックの所定の位置での画素(該例において、該画素が現在ブロックに隣接すると仮定する)を、現在ブロックの参照画素メモリに含ませることができる。
参照画素候補ブロックを使用できない場合、参照画素生成プロセスにより得られた画素を、現在ブロックの参照画素メモリに含ませることができる。
要するに、参照画素候補ブロックが利用可能な状態である場合、参照画素を配置することができる。参照画素候補ブロックが利用不可能な状態である場合、参照画素を生成することができる。
参照画素フィルタ部は、一般的には、ローパスフィルタ(Low-pass Filter。例えば、3タップ、5タップフィルタ等を用いる。[1,2,1]/4、[2,3,6,3,2]/16)を利用してスムージング処理(Smoothing)を実行することをその主要目的とするが、フィルタの適用目的(例えば、シャープニング(Sharpening)等)に基づいて、他の種類のフィルタ(例えば、ハイパスフィルタ等)を用いることできる。本発明において、スムージングを目的としてフィルタリングを実行し、符号化/復号プロセスにおける劣化を減少させることを主に説明する。
符号化/復号の設定に基づいて、参照画素フィルタリングを実行するかどうかを決定することができる。つまり、参照画素に対して、フィルタリングを適用するか又はフィルタリングを適用しない。しかしながら、このよう統一したフィルタリング操作により、画像の一部の特性を反映できないという欠点が生じる。また、画像の一部の特徴を反映する符号化/復号情報等によりフィルタリングを実行すると、符号化性能の向上に寄与する。
前記画像の特性を、画像タイプ(I/P/B)、色成分(Y/Cb/Cr)、量子化パラメータ、現在ブロックの符号化/復号情報(例えば、サイズ、形状、分割情報、予測モード等)に基づいて判定することができるだけでなく、隣接ブロックの符号化/復号情報、現在ブロックと隣接ブロックの符号化/復号情報の組み合わせなどに基づいて判定することもできる。また、参照画素分布特性(例えば、参照画素領域の分散、標準偏差等)に基づいて判定することができる(例えば、参照画素領域が平坦領域であるかそれとも非連続的領域であるか等)。従って、画像の特性情報を確認できる場合、参照画素フィルタリングを適用するかどうかを予め設定することができる。
又は、参照画素フィルタリングを明示的に設定することができる。例えば、フィルタリングを適用するかどうかに関わる情報を生成する可能性がある。この場合、1つのフィルタが存在する場合、フィルタ選択情報を生成しない。複数のフィルタ候補グループが存在する場合、フィルタ選択情報を生成する可能性がある。
上記例により、参照画素フィルタリングに関わる暗黙的及び明示的設定を説明したが、これらの組み合わせが存在してもよい。例えば、幾つかの場合、明示的設定を利用すると決定し、別の幾つかの場合、暗黙的設定を利用すると決定する。ここの暗黙的設定は、デコーダが参照画素フィルタに関わる情報(例えば、フィルタリングを適用するかどうかに関わる情報、フィルタ種類情報)を導出できることを意味する。
参照画素補間部は、参照画素の線形補間により、小数単位の参照画素を生成することができる。本発明において、参照画素配置部の一部のプロセスとして説明したが、これは、予測ブロック生成部に含まれて予測ブロックの生成の前に実行されるように構成される1つの部材と理解されてもよい。
また、前記参照画素フィルタ部から区分された1つの単独した部材とするが、1つの部材に集積されるように構成されてもよい。これは、参照画素補間部及び参照画素フィルタ部により複数のフィルタリングを適用する場合、参照画素に歪みが発生した場合に対応する設定である。
幾つかの予測モード(例えば、水平、垂直、幾つかの対角線モード<45度の角度をなすモード。例えば、右下対角線,左下対角線,右上対角線>、非方向性モード、カラーモード、カラーコピーモード等。即ち、予測ブロックを生成する時に小数補間を必要としないモード)で参照画素補間プロセスを実行しない。これは、他の予測モードで実行することができる(予測ブロックを生成する時に小数補間を必要とするモード)。
予測モード(又は予測モードの方向性)に基づいて、補間精度(例えば、画素単位。例えば、1、1/2、1/4、1/8、1/16、1/32、1/64等)を決定することができる。例えば、45度の角度をなす予測モードで、補間プロセスを必要としない。22.5度又は67.5度の角度をなす予測モードで、1/2画素を単位とした補間を必要とする。上述したように、予測モードに基づいて、少なくとも1つの補間精度及び最大補間精度を決定することができる。
参照画素補間のために、1つの所定の補間フィルタ(例えば、2タップ(2-tap)線形補間フィルタ。つまり、如何なる場合、該補間フィルタのみを用いる)を用いることができ、また、複数の補間フィルタ候補グループ(例えば、4タップ三次フィルタ、4タップガウシアンフィルタ、6タップウィーナーフィルタ、8タップカルマンフィルタ等。つまり、符号化/復号の設定に基づいて適用された補間フィルタを決定する)のうちの1つを用いることができる。この場合、補間フィルタは、タップ数(つまり、フィルタリングを適用する画素の数)、フィルタリング係数などの差異により区分することができる。
補間は、段階的に実行する例を含んでもよい。例えば、低精度から高精度への順番(例えば、1/2->1/4-1/8)で実行する。一括して実行する例を含んでもよい。前者の場合、補間は、整数単位の画素及び小数単位の画素(該例において、現在補間されるべき画素の精度より低い精度で補間を実行した画素を指す)に基づいて補間を実行することを指す(つまり、整数単位を利用するだけでなく、小数単位も利用して補間を行うことを意味する)。後者の場合、整数単位の画素に基づいて補間を実行することを意味する(つまり、整数単位の画素のみを利用して補間を行うことを意味する)。
複数のフィルタ部候補グループのうちの1つを利用する場合、フィルタ選択情報を明示的に生成するか又は暗黙的に決定することができる。また、符号化/復号の設定(例えば、補間精度、ブロックサイズ、形状、予測モード等)に基づいて決定することができる。この場合、明示的に生成された単位は、ビデオ、シーケンス、ピクチャ、slice、tile、ブロック等に対応する。
予測ブロック生成部は、少なくとも1つの予測モードに基づいて予測ブロックを生成することができ、また、該予測モードに基づいて、参照画素を利用することができる。この場合、参照画素は、予測モードに基づいて補外(Extrapolation)等方法(方向性モード)に用いられてもよく、また、補間(Interpolation)、平均値(DC)又はコピー(Copy)等の方法(非方向性モード)に用いられてもよい。
また、参照画素のコピーにより予測ブロックを生成することができる。参照画素をコピーする場合、1つの参照画素をコピーすることで1つ以上の予測画素を生成することができ、1つ以上の参照画素をコピーすることで1つ以上の予測画素を生成することもできる。また、コピーされた参照画素の数は、コピーされる予測画素の数以下である。
また、予測ブロックは一般的には、予測ブロック生成プロセスで得られた1つの予測ブロックで構成されるが、下記例を含んでもよい。つまり、複数の予測ブロックを得て、加重加算などを適用することで、1つの最終的予測ブロックを得る。ここで、複数の予測ブロックは、参照画素集合に基づいて得られた予測ブロックを指してもよい。また、他の場合、同様の予測ブロックを指してもよい。
予測モード決定部は、複数の予測モード候補グループから最適モードを選択するプロセスを実行する。一般的には、ブロック歪み(例えば、現在ブロック及び復元ブロックの歪み。絶対差分値の和(Sum of Absolute Difference:SAD)、二乗差の和(Sum of Square Difference:SSD)等)及び対応するモードの生成ビット量のレート歪み(Rate-Distortion)技術を用いて、符号化コストが最適であるモードを決定することができる。上記プロセスにより決定された予測モードで生成された予測ブロックを減算部及び加算部に送信することができる。
予測モード符号化部は、予測モード決定部により選択された予測モードに対して符号化を実行することができる。予測モード候補グループにおいて、前記予測モードに対応するインデックス情報に対して符号化を実行するか又は予測モードに対して予測を実行することで、これに関わる情報を符号化することができる。つまり、前者の場合、予測を実行することなく、予測モードに対して直接的に符号化を実行する方法を表す。後者の場合、予測モードに対して予測を実行することで、モード予測情報及び予測情報に基づいて得られた情報に対して符号化を実行する方法を表す。また、前者は、色差成分に適用可能である例であり、後者は、輝度成分に適用可能である例であるが、これに限定されず、他の場合、同様に適用可能である。
予測モードに対して予測を実行して符号化を実行する場合、予測モードの予測値(又は予測情報)は、最確モード(Most Probable Mode:MPM)と呼ばれてもよい。この場合、所定の予測モード(例えば、DCモード、平面(Planar)モード、垂直モード、水平モード、対角線モード等)又は空間的に隣接するブロック(例えば、左ブロック、上ブロック、左上ブロック、右上ブロック、左下ブロック等)の予測モード等をMPMと設定する。該例において、対角線モードは、右上対角線(Diagonal up right)、右下対角線(Diagonal down right)、左下対角線(Diagonal down left)を表し、図9のモード2、モード34及びモード66に対応してもよい。
また、MPM候補グループに含まれるモードから導出されたモードでMPM候補グループを構成することができる。例えば、MPM候補グループに含まれたモードのうちの方向性モードの場合、モード間隔差がaであるモード(例えば、aは、1、-1、2、-2等のような、ゼロではない整数である。図9におけるモード10を含むモードの場合、モード9、モード11、モード8、モード12等を導出するモードに対応する)をMPM候補グループに再び(又は付加的に)含ませる。
上記例は、複数のモードでMPM候補グループを構成することに対応してもよい。また、符号化/復号の設定(例えば、予測モード候補グループ、画像タイプ、ブロックサイズ、ブロック形状等)に基づいて、MPM候補グループ構成(例えば、MPM候補グループの数、構成優先度)を決定することができる。また、少なくとも1つのモードを含んでもよい。
MPM候補グループを構成するための予測モードは、優先度を有する可能性がある。前記優先度に基づいて、MPM候補グループに含まれる予測モードの順番を決定することができる。前記優先度に基づいて、MPM候補グループの数をパディングした後、MPM候補グループの構成を完了することができる。この場合、空間的に隣接するブロックの予測モード、所定の予測モード、最初にMPM候補グループに含まれる予測モードから導出されたモードの順番に応じて優先度を決定することができるが、他の修正を有してもよい。
例えば、空間的に隣接するブロックにおいて、左-上-左下-右上-左上ブロックなどの順番に応じて候補グループに含まれてもよい。また、所定の予測モードにおいて、DC-平面-垂直-水平モード等の順番に応じて候補グループに含まれてもよい。含まれたモードに+1、-1等を加算することで得られた予測モードを候補グループに含ませることができる。又は、予測モードは、左-上-DC-平面-左下-右上-左上-左+1-左-1-上+1等の優先度で、候補グループに含まれてもよい。
MPMを用いて現在ブロックの予測モードの符号化を実行する場合、予測モードがMPMとマッチングするかどうかに関わる情報(例えば、most_probable_mode_flag)を生成することができる。
MPMとマッチングすれば(例えば、most_probable_mode_flag=1)、MPMの構成に基づいて、MPMインデックス情報(例えば、mpm_idx)を追加的に生成することができる。例えば、MPM構成は、1つの予測モードであれば、追加的なMPMインデックス情報を生成しない。MPM構成が多種の予測モードであれば、MPM候補グループにおいて、現在ブロックの予測モードに対応するインデックス情報を生成することができる。
MPMとマッチングしなければ(例えば、most_probable_mode_flag=0)、予測モード候補グループにおけるMPM候補グループ以外の残りの予測モード候補グループ(又は非MPM候補グループ)において、現在モードの予測モードに対応する非MPMインデックス情報(例えば、non_mpm_idx)生成することができる。これは、非MPMを1つの群になるように構成する例であってもよい。
非MPM候補グループが複数の群からなる場合、現在ブロックの予測モードの所属する群に関わる情報を生成することができる。例えば、非MPMは、A群及びB群から構成され、且つ、現在ブロックの予測モードは、A群の予測モードとマッチングすれば(例えば、non_mpm_A_flag=1)、A群の候補グループにおいて、現在ブロックの予測モードに対応するインデックス情報を生成することができ、マッチングしなければ(例えば、non_mpm_A_flag=0)、残りの予測モード候補グループ(又はB群の候補グループ)において、現在ブロックの予測モードに対応するインデックス情報を生成することができる。上記例のように、非MPMは、少なくとも1つの予測モード候補グループ(又は集合)となるように構成されてもよい。また、非MPM構成は、予測モード候補グループによって決まってもよい。例えば、予測モード候補グループが35個以下である場合、これは、1つであってもよく、他の場合、これは、2つ以上であってもよい。
この場合、A群は、MPM候補グループ以外に最も高い確率を有する、現在ブロックの予測モードとマッチングしたと判定されたモードで候補グループを構成することができる。例えば、MPM候補グループに含まれていない次の予測モードをA群に含ませるか又は所定の間隔の方向性を有する予測モードをA群に含ませることができる。
上記例のように、非MPMが複数の群からなる場合、予測モードの数が大きく、且つ予測モードがMPMにより予測されない時、モードビット量の減少を目的として非MPMをサポートすることができる。
MPMを利用して現在ブロックの予測モード符号化(又は予測モード復号)を実行する場合、各予測モード候補グループ(例えば、MPM候補グループ、非MPM候補グループ等)に適用される二値化テーブルを単独で生成することができ、各候補グループに適用される二値化方法を単独で用いることもできる。
上記例において、MPM候補グループ、非MPM候補グループなどのような用語は、本発明に用いられる幾つかの用語だけであるが、これに限定されない。具体的には、現在フレーム内の予測モードを複数のカテゴリに分けた後の所属カテゴリに関わる情報、及び該カテゴリにおけるモード情報を表す。他の表現形態として、主要MPM候補グループ、補助MPM候補グループ等の用語を用いてもよい。
予測モード符号化部により生成された、予測に関わる情報は、符号化部に伝送されてビットストリームに収録されてもよい。
以下、1つの参照画素集合を参照画素候補グループとする場合、1つの参照画素集合を用いる場合、2つ以上の参照画素集合を用いる場合に分けられる。
(1)1つの参照画素集合を用いる場合
該例において、複数の参照画素集合で候補グループを構成する場合、1つの参照画素集合(図29におけるref_0、ref_1、ref_2のうちの1つ)を選択してフレーム内予測に用いると仮定する。
1つの参照画素集合を用いてフレーム内予測を実行する場合、以下を発生することがある。
参照画素集合refを用いて参照画素生成、参照画素フィルタリング、参照画素補間などの予測前処理プロセスにより得られたref*により、予測ブロックPを生成することができる。
例えば、参照画素フィルタ部により、refに位置する画素に対して5タップローパスフィルタリングを適用し、また、参照画素補間部により、ref’(つまり、参照画素フィルタリングされた画素)に位置する画素に対して6タップ線形補間フィルタリングを適用する。また、上記プロセスで得られたref*を用いて予測ブロックを生成することができる。
下記において、単一の参照画素集合を用いる場合の予測前処理プロセスを説明する。
例えば、図29における参照画素集合ref_2を用いる場合、Ref_TL及びRef_TRの位置を参照画素として利用でき、且つRef_Tの位置を参照画素として利用できないと、利用可能な参照画素における隣接するP(-1,-3)とP(n,-3)により、Ref_T位置のP(0,-3)からP(n-1,-3)位置の画素を生成し、参照画素とすることができる。
上記プロセスにより参照画素を構成した後、予測ブロックを生成する前に、参照画素フィルタ部及び参照画素補間部などの部材を実行することができる。
参照画素フィルタ部の場合、ターゲット画素を中心とした隣接画素にフィルタリングを適用することができる。一般的には、フィルタに適用される画素の数が増加する場合、精度がより高いフィルタリング効果(例えば、スムージング、シャープニング等)を発生する可能性がある。
参照画素補間部の場合、補間されるべき画素を中心とした隣接画素にフィルタリングを適用することができる。また、フィルタに適用される画素の数が増加する場合、同様に、精度がより高いフィルタリング効果を発生する可能性もある。
前記2つのステップは、いずれもフィルタリングプロセスとする。場合によって、不必要なフィルタリング効果を発生する可能性がある。つまり、各ステップにフィルタリングを適用する場合に望まれた効果は、もう1つのステップにフィルタリングを適用する時に悪影響を発生する場合に発生してもよい。
例えば、参照画素補間プロセスにおいて、補間ターゲットである小数画素は、隣接する整数画素においてフィルタリングを適用することができる。該例の先行ステップにおいて参照画素フィルタリングを適用すると(つまり、整数単位画素に適用される)、参照画素フィルタリングにより各整数画素の量子化誤差を減少させるという効果を発生することができ、参照画素補間プロセスにおいて前記画素を用いることにより量子化誤差を更に、補間された画素に含ませることを発生することもできる。
(S1.Refスムージング処理)
m*=v0xl’+v1xm’+v2xn’
m*=m+k1
(mは、元画素であり、m*は、フィルタリングされた画素であり、m’は、フィルタリング前の画素であり、l’及びn’は、隣接する、フィルタリングを実行する前の画素であり、vは、フィルタリング係数であり、k1は、量子化誤差である)
(S2.補間プロセス)
z*=(w0xa’+w1xb’+w2xc’+w3xd’+w4xe’+w5xf’)
z*=z+k2
(zは、該位置と推定された元画素であり、z*は、補間画素であり、a’からf’は隣接する画素<フィルタリングが実行されてきない>であり、wは、フィルタ係数であり、k2は、量子化誤差である)
(S3.Refスムージングプロセス+補間プロセス)
z**=(w0xa*+w1xb*+w2xc*+w3xd*+w4xe*+w5xf*)
z**=z+k3
(zは、該位置と推定された元画素であり、z**は補間画素であり、a*からf*は、隣接する、フィルタリングした画素であり、wは、フィルタ係数であり、k3は、量子化誤差である)
上記式において、参照画素フィルタリングプロセスS1における入力画素値は、符号化/復号を完了した隣接ブロックの隣接画素である。また、上記プロセスにより得られた出力値は、符号化/復号時に含まれる量子化誤差減少のための元画素に近接する可能性が高い画素である。
また、参照画素補間プロセスS2における入力画素値は、符号化/復号を完了した隣接ブロックの隣接画素である。また、上記プロセスにより得られた出力値は、該画素位置の元画素に近接する可能性が高い画素である。該プロセスにより、量子化誤差を含む隣接ブロックの隣接画素に加重加算を適用することで補間画素を得る(つまり、量子化誤差を目的とせずにフィルタリングを適用するが、前記プロセスにより量子化誤差を減少させることもできる)。従って、量子化誤差が減少して元画素に近接する画素を得る可能性がある。つまり、小数単位画素を生成できるだけでなく、ローパスフィルタ部の効果を発生することもできる。
また、各プロセスを順次実行する場合S3において、各プロセスで望まれる効果を保持できるかどうかを考慮する必要がある。つまり、フィルタリングを実行するかどうか(1つのみを実行するか又は2つを実行する)、フィルタのタイプ(効果がより高いフィルタ又は効果がやや高いフィルタを用いる。該プロセスにおいて高い効果を発生するが、他のプロセスにおいて該効果を失うか又は悪い効果を引き起こす)、フィルタタップの増加などによれば、良好なフィルタリング効果を保持できるとは限らない。
(2)複数以上の参照画素集合を用いる場合
該例において、複数の参照画素集合で候補グループを構成し、2つ以上の参照画素集合(図29におけるref_1、ref_2、ref3のうちの2つ以上)を選択してフレーム内予測に用いると仮定する。
複数の参照画素集合を用いてフレーム内予測を実行する場合、以下を発生する可能性がある。
<1>図33におけるaに示すように、参照画素集合ref_Aにより第1予測ブロックを生成することができる。つまり、ref_Aを用いて参照画素生成、参照画素フィルタリング、参照画素補間などの予測前処理プロセスにより得られたref_A*を利用して予測ブロックPAw生成することができる。また、ref_Bの前記予測前処理プロセスにより得られたref_B*を利用して予測ブロックPBを生成することができる。
前記得られた複数の予測ブロックにより最終的予測ブロックPを生成することができる。
例えば、参照画素フィルタ部により、ref_Aに位置する画素に3タップローパスフィルタリングを適用する。また、参照画素により、ref_A’(つまり、参照画素フィルタリングした画素)に位置する画素に4タップCubicフィルタリングを適用することができる。また、ref_Bに位置する画素に5タップローパスフィルタリングを適用する。また、ref_B’(つまり、参照画素フィルタリングした画素)に位置する画素に6タップ線形補間フィルタリングを適用することができる。
また、上記プロセスで得られたref_A*及びref_B*により各予測ブロックを生成する。続いて、加重平均(例えば、3:1などのような高加重値を現在ブロックに隣接する予測ブロックに適用する)等を適用することで予測ブロックを生成する。
<2>図33におけるbに示すように、参照画素集合ref_A及びref_Bにより予測ブロックを生成することができる。この場合、ref_A和ref_Bを用いて参照画素生成、参照画素フィルタリング、参照画素補間などの予測前処理プロセスにより得られたref*を利用して予測ブロックPを生成することができる。
例えば、参照画素フィルタ部により、ref_Aに位置する画素に3タップローパスフィルタリングを適用し、参照画素補間部により、ref_A’に位置する画素に4タップキュービックフィルタリングを適用することができる。また、ref_Bに位置する画素に5タップローパスフィルタリングを適用し、ref_B’に位置する画素に2タップ線形補間フィルタリングを適用することができる。
また、上記プロセスで得られたref_A*及びref_B*を利用して、ref*を取得した後に予測ブロックを生成することができる。つまり、予測モードに基づいて、各参照画素集合におけるフレーム内予測モードの方向性に対応する画素値(例えば、ref_A*におけるpa及びref_B*におけるpb)を得た後、加重平均(例えば、pa×A+pb×B)を適用することで予測ブロックを生成することができる。
上記<1>及び<2>等の方法(<1>において、各参照画素集合に予測ブロックを生成した後、予測ブロック間の加重平均を適用する。<2>において、1つの予測ブロックを生成する過程中に画素間の加重平均を適用する。つまり、同様又は類似した結果を得るが、プロセスにおいて相違点が存在する)で、2つ以上の画素集合を利用して予測ブロックを生成することができる。
以下、2つ以上の参照画素集合を用いる場合の予測前処理プロセスを説明する。
例えば、図29における参照画素集合ref_1及びref_2を用いる場合、Ref_TL及びRef_TRの位置を参照画素として用いることができ、且つRef_Tの位置を参照として用いることができないと、参照画素集合ref_1における利用可能な参照画素のうちの隣接するP(-1,-1)及びP(n,-1)により、ref_1においてRef_T位置のP(0,-1)からP(n-1,-1)位置の画素を生成し、参照画素集合ref_2において、利用可能な参照画素のうちの隣接するP(-1,-2)及びP(n,-2)により、ref_2においてRef_T位置のP(0,-2)からP(n-1,-2)位置の画素を生成することができる。
又は、ref_1における利用不可能な画素位置で、ref_1及びref_2の利用可能な画素を用いて予測ブロックを生成することができ、ref_2の利用不可能な画素位置で、上述したように、ref_2及びref_1の利用可能な画素を用いて予測ブロックを生成することができる。
参照画素フィルタ部の場合、ターゲット画素を中心として隣接する画素にフィルタリングを適用することができる。また、参照画素補間部の場合、補間される画素を中心として隣接する画素にフィルタリングを適用することができる。
該例において、同様に、(1)における1つの参照画素集合を用いて予測ブロックを生成する場合で言及したように、フィルタリング適用において悪影響を発生する。
(1)におけるプロセスに続き、(2)における<1>について更に説明する。
(S4フレーム内予測プロセス)
P=v0xP1+v1+P2
上記式は、各参照画素集合を用いることで得られた予測ブロックに対して加重加算を実行することで、最終的予測ブロックを得るプロセスを表す。つまり、各参照画素集合においてS3プロセスにより得られた値を利用して予測ブロックを得て、該予測ブロックの加重加算を適用することで、予測ブロックの精度を向上させることができるかどうかを考慮する必要がある。
(1)及び(2)により考慮する問題について、1つの方法は解決手段とすることができる。該方法において、複数の候補グループ(例えば、<フィルタリングなし、3タップフィルタリング又は5タップフィルタリング>のうちの1つを参照画素フィルタに関わる候補グループとして選択し、<4タップフィルタリング又は6タップフィルタリング>のうちの1つを参照画素補間に関わる候補グループとして選択する)のうちの1つを明示的に選択する。また、以下により、暗黙的に決定された最適方法を説明する。
下記実施例により、1つの参照画素集合又は2つ以上の参照画素集合を利用して予測ブロックを生成する場合のフレーム内予測プロセスを説明する。
(3)1つの参照画素集合を用いる場合の予測前処理プロセス
図34におけるaに示すように、予測のための参照画素を記憶する一時メモリを必要とする可能性がある。また、メインアレイ又はサブアレイを有してもよい。該例において、図面に示すようなメインアレイで参照画素を構成すると仮定する。
図面に示すように、予測のめたの参照画素集合に位置する画素をrefにパディングすることができる。この場合、参照画素生成部等により参照画素を構成又は生成してrefを構成した後、参照画素フィルタ部により処理する。参照画素フィルタ部で得られた参照画素は、ref’で表される。続いて、ref’に対して参照画素補間プロセスを実行することで得られた参照画素をref*で表す。ref*を利用することで予測ブロックを生成することができる。
*整数単位画素は、ref’で構成され、小数単位画素は、ref’を用いて補間されたref*で構成される(図12におけるb)
上記例に記載したように、ref*(ref*の整数単位画素は、ref’と同じである)に対して、順に、参照画素フィルタリングプロセス及び参照画素補間プロセスを実行する。従って、該プロセスで得られた整数単位画素を小数単位の画素補間に用いる場合、繰り返したフィルタリングにより引き起こされた正確率の低い参照画素を得ることができる。従って、参照画素フィルタリングプロセス及び参照画素補間プロセスをそれぞれ実行する必要がある。
例えば、参照画素フィルタリングを省略して、参照画素補間のみを実行してもよい。この場合、予測のための整数単位の画素は、参照画素フィルタリングが適用されていない現在の隣接画素であってもよく、小数単位の画素は、現在の隣接整数単位画素で補間を適用する画素であってもよい。
*整数単位画素は、refで構成され、小数単位画素は、refを用いて補間されたref*で構成される(図34におけるc)
又は、小数単位画素に対して補間を実行する場合、参照画素としてref’を用いることなく、refを用いる。この場合、予測のための整数単位の画素は、参照画素フィルタリングを適用した画素であってもよく、小数単位の画素は、現在の隣接画素を、参照画素フィルタリングを実行する前の画素として、補間を適用する画素であってもよい。
*整数単位画素は、ref’で構成され、小数単位画素は、refを用いて補間されたref*で構成される(図34におけるd)。
図34におけるbからdは、refにおいて各位置での画素にフィルタリングを適用する回数を示す。図34におけるc及びdは、多くとも1回のフィルタリングを適用することで参照画素を構成する例を示す。
(4)2つ以上の参照画素集合を用いる場合の予測前処理プロセス
説明を容易にするために、前記例の(2)における<2>の場合、2つの参照画素集合を利用して予測ブロックを生成すると仮定する。
ref_Aを構成した後、参照画素フィルタ部により、ref_A’を得ることができる。また、ref_A’に対して参照画素補間プロセスを実行した後、ref_A*を得る。同様に、ref_Bの場合、ref_B’によりref_B*を得て、ref_A*及びref_B*(つまり、図34のbにおけるref*)を用いて予測ブロックを生成することができる。この場合、予測モードに基づいて、ref_A*及びref_B*に存在する整数単位画素又は小数単位画素を用いて予測ブロックを生成することができる。
上述したように、ref_A*、ref_B*に対して、参照画素フィルタリングプロセス及び参照画素補間プロセスを順に実行する。従って、該プロセスで得られた整数単位画素を小数単位の画素補間に用いる場合、繰り返したフィルタリングにより引き起こされた正確率の低い参照画素を得ることができる。また、2つ以上の参照画素集合に位置する画素は、加重加算などの方式でフィルタリングを更に実行できるため、最終的予測のための画素に対して多すぎる回数のフィルタリングを実行した結果を得ることができる。
以下、予測画素のための参照画素の種々の組み合わせを示す。例えば、予測モードの方向性に基づいて、ref_A及びref_Bにおいて2つの整数単位画素を用いて予測画素(例えば、垂直モード、水平モード等)を生成することができる。1つの整数単位画素及び1つの小数単位画素を用いて予測画素(例えば、方向性モード等)を生成することができる。また、2つの小数単位画素を用いて測画素(例えば、方向性モード等)を生成することができる。これは、図35にけるbからdにより確認できる。
上記の場合、図34におけるbに示すように、単一の参照画素集合にフィルタリングを適用する場合を、他の参照画素集合との加重平均値などを適用する場合と見做すと仮定すると、図35におけるbに適用されるフィルタリングの回数は、2回であってもよく、図35におけるcについて、3回であり、図35におけるdについて、4回である。
上記について、下記例を適用できる。
例えば、各参照画素集合において参照画素フィルタリングを省略し、参照画素補間プロセスのみを実行してもよい。この場合、予測のための整数単位は、参照画素フィルタリングが適用されていない現在の隣接画素であってもよく、小数単位の画素は、現在の隣接整数単位画素で補間を適用する画素であってもよい。
具体的には、参照画素フィルタリングの場合、ターゲット画素と類似した画素にフィルタリングを適用することで、量子化誤差をより効果的に減少させることができる。該例において、2つ以上の参照画素集合を用いて予測を実行することは、現在ブロックの方向性も該参照画素を含むブロックの境界部(つまり、現在ブロックに隣接する2つ以上の参照画素集合)に存在することを意味する。従って、先と同様に、現在ブロックの予測モードの方向性に関わらず、最近傍画素のみを利用してフィルタリンを利用する。これは、ターゲット画素及び元画素値に基づいて異なる画素に対してフィルタリングを実行する場合と同じである。
又は、各参照画素集合に対して参照画素フィルタリング及び参照画素補間プロセスを実行することができる。しかしながら、図35におけるbに示すように、整数単位の画素のみを用いて加重平均値を適用する場合、参照画素フィルタリングを適用した画素を用いることができる。また、図35におけるcに示すように、整数単位及び小数単位の画素を利用して加重平均を適用する場合に用いられる整数単位画素として、参照画素フィルタリングが適用されていない画素を用いることができる。
上記例により、1つの参照画素集合を用いる場合、及び2つ以上の参照画素集合を用いる場合の予測前処理プロセスを説明した。
上記例において、フィルタを繰り返して使用することにより悪影響を発生する場合を仮定して説明するが、画像を定義できない特徴は1つのみである。他の変形例が存在してもよい。
例えば、(3)及び(4)について、常に利用してもよく(例えば、現在ブロックのサイズ、形状、予測モード等の状態に関わらず)、自己適応的に利用してもよい(例えば、現在ブロックの状態によって決まる)。
(3)及び(4)を自己適応的に利用する場合、(3)及び(4)における設定の全て又は一部を適用することができる。幾つかの場合、変更してもよいか又は逆の例を適用してもよい。
一例として、(3)の幾つかのモード(例えば、垂直、水平、45度、135度の角度を有する角線モード等)において5タップ(tap)ローパスフィルタリングを実行することができる。該例において、小数単位の補間プロセスを必要としないため、精密なフィルタリングを実行して(該例においてタップ数が長いほど、精密になると仮定する)量子化誤差を減少させることができる。
又は、(3)の幾つかのモード(例えば、方向性モード等)において、3タップローパスフィルタリングを実行し、また、6タップガウシアン補間フィルタリングを実行することができる。該例において、小数単位補間プロセスを必要とし、整数単位の画素にフィルタリングを適用して簡潔なフィルタリングを実行し(例えば、フィルタタイプが異なる場合、フィルタを適用する画素の数が減少した場合、tap数が少ない場合、フィルタリングが簡潔であると仮定する)、複数のフィルタリング(該例において、整数単位に参照画素フィルタリングを適用し、また、これらの画素を用いて小数単位画素に対して補間を実行する時にフィルタリングを適用する)の量子化誤差などを減少させる。つまり、図34におけるbに示すとおりであってもよい(図12におけるbを説明する場合、既存のケースとして説明されるが、該例において説明する場合、図34におけるc及びcではなく、bを適用することができる)。
一例として、(3)において、所定のサイズ以上のブロック(例えば、32×32)の場合、5タップローパスフィルタリングを実行し、また、4タップ三次補間フィルタリングを実行することができるが、補間に適用される画素は、ローパスフィルタリング前の画素(即ち、整数単位画素)を入力画素とすることができる。また、所定のサイズ未満のブロックの場合、上記プロセスと同じである参照画素フィルタリング及び参照画素補間プロセスを実行するが、補間に適用される画素は、ローパスフィルタリングした画素を入力画素とすることができる。
一例として、(4)の幾つかのモード(例えば、垂直、水平モード等)において、各参照画素集合に対して5タップローパスフィルタリングを実行することができる(つまり、それらのタップ数が同じであっても、他の方向性モードで用いられる3タップフィルタより精密なフィルタを用いるか又は異なるタイプのフィルタを用いる)。該例において、補間プロセスを必要としないため、フィルタリングを実行して量子化誤差を減少させることができる。又は、現在ブロックに隣接する参照画素集合に対して5タップローパスフィルタリングを実行し、また、次の隣接する参照画素集合に対して3タップローパスフィルタリングを実行することができる。該例において、参照画素集合(該例において、加重値を現在ブロックに近接する画素に追加すると仮定する)に対して精密なフィルタリングを実行することができる。前記参照画素集合は、2つ以上の参照画素集合に対してより高い加重値を割り当てる。又は、現在ブロックに隣接する参照画素集合に対して5タップローパスフィルタリングを実行し、次の隣接する照画素集合に対してローパスフィルタリングを実行しない。該例において、加重値がより高い参照画素集の画素を中心として、該画素の所属する参照画素集合に隣接する画素及び他の参照画素集合における該画素に隣接する画素にローパスフィルタリングを適用すると理解されてもよい(つまり、現在、一次元フィルタリングであれば、該例において、二次元フィルタリングの概念と理解されてもよい)。
また、(4)の幾つかのモード(例えば、方向性モード等)において、各参照画素集合に対して3タップローパスフィルタリングを実行し、また、現在ブロックに隣接する参照画素集合に対して8タップ三次補間フィルタリングを実行し、次の隣接する参照画素集合に対して2タップ線形補間フィルタリングを実行することができる。又は、各参照画素集合に対してローパスフィルタリングを実行せず、現在ブロックに隣接する参照画素集合に対して6タップガウシアン補間フィルタリングを実行し、次の隣接する参照画素集合に対して4タップガウシアン補間フィルタリングを実行することができる。又は、現在ブロックに隣接する参照画素集合に対して5タップローパスフィルタリングを実行し、次の隣接する参照画素集合に対して3タップローパスフィルタリングを実行し、各参照画素集合に対して4タップ三次補間フィルタリングを実行することができる。又は、現在ブロックに隣接する参照画素集合Aに対して3タップローパスフィルタリングを実行し、次の隣接する参照画素集合Bに対してローパスフィルタリングを実行せず、また、現在ブロックに隣接する参照画素集合Aに対して8タップガウシアン補間フィルタリングを実行し、次の隣接する参照画素集合Bに対して4タップ三次補間フィルタリングを実行する。
一例として、(4)において、所定のサイズ以上(例えば、64×64)のブロックの場合、各参照画素集合に対してローパスフィルタリングを実行せず、4タップ三次補間フィルタリングを実行することができる。また、所定のサイズ未満であって所定のサイズより大きいブロック(例えば、16×16から64×64)において、各参照画素集合に対して3タップローパスフィルタリングを実行し、また、4タップガウシアン補間フィルタリングを実行する。加重平均に用いられる画素が整数単位画素集合のみから構成される場合、ローパスフィルタリングした画素を用いる。整数単位と小数単位の組み合わせで構成される場合、整数単位画素は、ローパスフィルタリング前の画素を用いることができる。また、所定のサイズ未満(16×16)のブロックにおいて、各参照画素集合に対して5タップローパスフィルタリングを実行し、6タップ三次補間フィルタリングを実行する。加重平均に用いられる画素は、整数単位であるかそれとも小数単位であるかに関わらず、ローパスフィルタリングした画素を用いることもできる。
上記例により、1つの参照画素集合を用いる場合及び2つ以上の参照画素集合を用いる場合を説明する。
予測前処理プロセスに関わる明示的処理を実行することができる。つまり、選択情報を生成することができる。1つの参照画素集合又は複数の参照画素を用いる場合、もう1つの選択情報を生成することもできる。参照画素フィルタリングの設定について、フィルタリングを実行しないか又は、フィルタAにより実行するか、又はフィルタBにより実行し、また1つの選択情報を生成する。参照画素補間設定について、フィルタAにより実行するか又はフィルタBにより実行する。
又は、予測前処理プロセスに関わる暗黙的処理を実行することができる。つまり、ブロックサイズ、形状及び予測モード等の符号化情報(状態)に基づいて、上記参照画素集合の数、参照画素フィルタリング設定及び参照画素補間設定を暗黙的に決定する。この場合、参照画素集合の数が2つ以上であると決定されると、複数の参照画素集合に対して同一の参照画素フィルタリング、参照画素補間設定又は他の設定を実行すると暗黙的に決定することができる。
又は、予測前処理プロセスに関わる組み合わせた処理を実行することができる。つまり、幾つかの場合、暗黙的処理を実行することができ、別の幾つかの場合、明示的処理を実行することができる。この場合、符号化情報に基づいて、組み合わせた処理の基準を決定することができる。つまり、ブロックサイズ、形状又は予測モードのうちの少なくとも1つの組み合わせに基づいて、暗黙的処理又は明示的処理を決定することができる。
本発明において、暗黙的処理又は組み合わせた処理について説明する。前記2つの処理について、符号化情報に基づいて、フレーム内予測設定を設定する(例えば、予測前処理等。上記において、予測前処理のみにおいて自己適応的設定を有するが、フレーム内予測の他のプロセス<後述におけるフレーム内予測モード候補グループの構成。つまり、フレーム内予測モード数、予測方向などの符号化情報によって決まる場合>においても自己適応的設定を有してもよい)。
以下のように整理される。
(エンコーダ)
<1>現在ブロックのサイズ及び形状を確認する
-フレーム内予測モード候補グループ設定(つまり、モード数、角度等を決定する。1つの候補グループであれば、該プロセスを省略してもよい)
<2>現在ブロックのサイズ、形状及び予測モードを確認する(この場合、予測モードは、上記プロセスで決定されたフレーム内予測モード候補グループで定義される)。
-参照画素集合設定(つまり、1つ又は2つ以上を使用する)
-参照画素フィルタリング設定(2つ以上の参照画素集合があれば、各集合においてフィルタリング設定を決定することができる)
-参照画素補間設定(同様に、2つ以上の参照画素集合があれば、各集合において補間設定を決定することができる)
<3>フレーム内予測関連情報の符号化(予測モード及び上記プロセスの各設定において複数の候補グループが存在するため、選択情報を生成すると、該情報もフレーム内予測情報に含まれる)。
(デコーダ)
<1>現在ブロックのサイズ、形状を確認する(この前のステップにおいて、ブロック情報は、分割ブロック部により分析され、関連情報が確認される)
-フレーム内予測モード候補グループ設定(該候補グループに基づいて予測モード情報を分析して復元する)
<2>現在ブロックのサイズ、形状及び予測モードを確認する
-参照画素設定
-参照画素フィルタリング設定
-参照画素補間設定
<3>フレーム内予測関連情報の復号(予測モード及び他の選択可能な情報。該情報は、該ステップにおいて分析されたものと認められる)
エンコーダにおいて、現在ブロックの状態に基づいて、フレーム内予測モード候補グループを確認することができる。つまり、幾つかのモードを有するか、どのようなモード設定を有する候補グループを利用するかを決定する。全ての条件がいずれも同一のフレーム内予測モード候補グループを有すれば、構わない。2つ以上のフレーム内予測モード候補グループを利用すると、確認を必要とする。つまり、現在ブロックの状態に基づいて、どの候補グループを用いるかを知ることができ、又は情報により、どの候補グループを用いるかを明示的に知ることができる。
該プロセスに基づいて予測モード番号などを割り当てるが、予測モード候補グループが異なると、各予測モードの方向又は角度等は、候補グループによって異なる。従って、該候補グループのプロセスを統一する必要がある可能性がある。つまり、図9における予測モードを利用する場合の50番は、垂直モードである可能性があるが、もう1つの予測モード候補グループにおける50番は、垂直モードであるとは限らないため、確認を必要とする。
従って、本発明において、操作、設定などが予測モードに基づいて変わることを説明した。
例えば、if(intramode==Vertical)条件文によれば、フレーム内予測処理(例えば、参照画素補間、参照画素フィルタリング等)を実行するかどうかを決定する必要がある場合、intramodeが50番であれば、1つの予測モード候補グループを用いる時、直接確認できる。フレーム内予測モード候補グループにおいて該モードがどのモードであるか(方向性モード又は非方向性モード。方向性モードであれば、垂直モード又は水平モードであるかを判定する。方向性モードでなければ、整数画素のみにより予測ブロックを生成する方向性モード等であるかを判定する)を知る必要があるため、該予測モード候補グループにおける上記モードがどの方向のモードを有するかを確認した後、上記条件文に入力する。つまり、if(intramode<x>==Vertical)の場合、xのフレーム内予測モード候補グループにおけるモードxが垂直であるかを確認するプロセスに変更される。
また、現在ブロックの状態及びフレーム内予測設定を確認する必要がある。この場合、現在ブロックのサイズ、形状、予測モード等のうちの少なくとも1つ又は複数の要因により、現在ブロックの状態を定義することができる。現在ブロックの状態に基づいて、参照画素集合、参照画素フィルタリング、参照画素補間等を設定する。つまり、参照画素集合の数、どの参照画素集合を用いるか、参照画素フィルタリングを適用するかどうか、どのフィルタを用いるかである。関連情報を明示的に決定すると、フラグ(flag)を生成する可能性がある。関連情報を暗黙的に確認すると、符号化情報(上記現在ブロックの状態など又は現在の画像タイプ<I/P/B>、現在画像<Y/Cb/Cr>等は、フレーム内予測設定に影響を与えることがある)に基づいて決定することができる。
本発明は、参照画素集合、参照画素フィルタリング及び参照画素補間を中心として説明するが、フレーム内予測に関わる更なる設定を含んでもよい。例えば、予測プロセスにおいて、上述したように、符号化情報に基づいて、予測モードに応じて(補外、平均、補間)参照画素を用いて予測ブロックを生成することを決定することもできる。又は、現在の方向性に応じて使用される参照画素以外の他の参照画素等(例えば、予測画素位置に基づいて予測画素を補正するために、他の参照画素などを利用して補正値を生成した後に現在予測値などに追加する)を利用して予測ブロックを生成する。この場合、関連情報を明示的に確認する場合、関連情報により、どの予測方法を知ることもできる。そうでなければ、関連情報を暗黙的に確認する場合、現在ブロックの状態などに基づいて、どの予測方法を用いるかを決定することもできる。
デコーダにおいて、エンコーダにより関連技術を逆に導出することもできる。明示的な部分は、関連情報を分析し、暗黙的な部分は、符号化情報等に基づいて関連情報を確認する。
以上において、本発明に用いられる参照画素集合の数に基づいて変更された設定により、参照画素フィルタリング設定及び参照画素補間設定を決定することを考慮することができる。
本発明は、画像信号の符号化/復号に適用可能である。