(57)【要約】  本発明に係るビデオ復号化方法は、現在ブロックのマージ候補リストを生成するステップと、前記マージ候補リストに含まれる複数のマージ候補のうちのいずれか１つを指定するステップと、指定されたマージ候補の第１アフィンシードベクトル及び第２アフィンシードベクトルに基づいて、前記現在ブロックの第１アフィンシードベクトル及び第２アフィンシードベクトルを導出するステップと、前記現在ブロックの前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルを用いることで、前記現在ブロック内のサブブロックのアフィンベクトルを導出するステップと、前記アフィンベクトルに基づいて、前記サブブロックに対して動き補償予測を実行するステップと、を含む。
2022502899.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ復号化方法であって、
現在ブロックのマージ候補リストを生成するステップと、
前記マージ候補リストに含まれる複数のマージ候補のうちのいずれか１つを指定するステップと、
指定されたマージ候補の第１アフィンシードベクトル及び第２アフィンシードベクトルに基づいて、前記現在ブロックの第１アフィンシードベクトル及び第２アフィンシードベクトルを導出するステップと、
前記現在ブロックの前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルを用いることで、前記現在ブロック内のサブブロックのアフィンベクトルを導出するステップであって、前記サブブロックは、前記現在ブロックのサイズよりも小さいサイズの領域である、ステップと、
前記アフィンベクトルに基づいて、前記サブブロックに対して動き補償予測を実行するステップと、を含み、
前記マージ候補の前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルは、前記現在ブロックに隣接する隣接ブロックの動き情報に基づいて導出される、ビデオ復号化方法。
【請求項２】
前記隣接ブロックが、前記現在ブロックの符号化ツリーユニットと異なる符号化ツリーユニットに含まれる場合、前記マージ候補の前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルは、前記隣接ブロックの左下サブブロック及び右下サブブロックの動きベクトルに基づいて導出されることを特徴とする
請求項１に記載のビデオ復号化方法。
【請求項３】
前記左下サブブロックは、前記隣接ブロックの左下隅に位置する左下参照サンプルを含み、前記右下サブブロックは、前記隣接ブロックの右下隅に位置する右下参照サンプルを含むことを特徴とする
請求項２に記載のビデオ復号化方法。
【請求項４】
前記マージ候補の前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルは、スケールファクタを用いて、前記左下サブブロックと前記右下サブブロックとの動きベクトルの差分値に対してシフト操作を行うことで得られた値に基づいて導出され、
前記スケールファクタは、左下参照サンプルと右下参照サンプルとの水平距離とオフセットを加算することで得られた値に基づいて導出されることを特徴とする
請求項３に記載のビデオ復号化方法。
【請求項５】
前記マージ候補の前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルは、スケールファクタを用いて、前記左下サブブロックと前記右下サブブロックとの動きベクトルの差分値に対してシフト操作を行うことで得られた値に基づいて導出され、前記スケールファクタは、前記右下参照サンプルの右側に隣接する隣接サンプルと前記左下参照サンプルとの距離に基づいて導出されることを特徴とする
請求項３に記載のビデオ復号化方法。
【請求項６】
前記マージ候補リストは、第１マージ候補及び第２マージ候補を含み、前記第１マージ候補は、前記現在ブロックの上方に位置する上隣接ブロックのうちの第１利用可能なブロックと決定された上隣接ブロックに基づいて導出され、前記第２マージ候補は、前記現在ブロックの左側に位置する左隣接ブロックのうちの第１利用可能なブロックと決定された左隣接ブロックに基づいて導出されることを特徴とする
請求項１に記載のビデオ復号化方法。
【請求項７】
前記隣接ブロックが、前記現在ブロックの符号化ツリーユニットと同じである符号化ツリーユニットに含まれる場合、
前記マージ候補の前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルは、前記隣接ブロックの第１アフィンシードベクトル及び第２アフィンシードベクトルに基づいて導出されることを特徴とする
請求項１に記載のビデオ復号化方法。
【請求項８】
ビデオ符号化方法であって、
現在ブロックのマージ候補リストを生成するステップと、
前記マージ候補リストに含まれる複数のマージ候補のうちのいずれか１つを指定するステップと、
指定されたマージ候補の第１アフィンシードベクトル及び第２アフィンシードベクトルに基づいて、前記現在ブロックの第１アフィンシードベクトル及び第２アフィンシードベクトルを導出するステップと、
前記現在ブロックの前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルを用いることで、前記現在ブロック内のサブブロックのアフィンベクトルを導出するステップであって、前記サブブロックは、前記現在ブロックのサイズよりも小さいサイズの領域である、ステップと、
前記アフィンベクトルに基づいて、前記サブブロックに対して動き補償予測を実行するステップと、を含み、
前記マージ候補の前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルは、前記現在ブロックに隣接する隣接ブロックの動き情報に基づいて導出される、ビデオ符号化方法。
【請求項９】
前記隣接ブロックが、前記現在ブロックの符号化ツリーユニットと異なる符号化ツリーユニットに含まれる場合、前記マージ候補の前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルは、前記隣接ブロックの左下サブブロック及び右下サブブロックの動きベクトルに基づいて導出されることを特徴とする
請求項８に記載のビデオ符号化方法。
【請求項１０】
前記左下サブブロックは、前記隣接ブロックの左下隅に位置する左下参照サンプルを含み、前記右下サブブロックは、前記隣接ブロックの右下隅に位置する右下参照サンプルを含むことを特徴とする
請求項９に記載のビデオ符号化方法。
【請求項１１】
前記マージ候補の前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルは、スケールファクタを用いて、前記左下サブブロックと前記右下サブブロックとの動きベクトルの差分値に対してシフト操作を行うことで得られた値に基づいて導出され、
前記スケールファクタは、左下参照サンプルと右下参照サンプルとの水平距離とオフセットを加算することで得られた値に基づいて導出されることを特徴とする
請求項１０に記載のビデオ符号化方法。
【請求項１２】
前記マージ候補の前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルは、スケールファクタを用いて、前記左下サブブロックと前記右下サブブロックとの動きベクトルの差分値に対してシフト操作を行うことで得られた値に基づいて導出され、
前記スケールファクタは、前記右下参照サンプルの右側に隣接する隣接サンプルと前記左下参照サンプルとの距離に基づいて導出されることを特徴とする
請求項１０に記載のビデオ符号化方法。
【請求項１３】
前記マージ候補リストは、第１マージ候補及び第２マージ候補を含み、前記第１マージ候補は、前記現在ブロックの上方に位置する上隣接ブロックのうちの第１利用可能なブロックと決定された上隣接ブロックに基づいて導出され、前記第２マージ候補は、前記現在ブロックの左側に位置する左隣接ブロックのうちの第１利用可能なブロックと決定された左隣接ブロックに基づいて導出されることを特徴とする
請求項８に記載のビデオ符号化方法。
【請求項１４】
前記隣接ブロックが、前記現在ブロックの符号化ツリーユニットと同じである符号化ツリーユニットに含まれる場合、
前記マージ候補の前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルは、前記隣接ブロックの第１アフィンシードベクトル及び第２アフィンシードベクトルに基づいて導出されることを特徴とする
請求項８に記載のビデオ符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ信号符号化／復号化方法及びそのための機器に関する。
【背景技術】
【０００２】
表示パネルがますます大きくなっていることにつれて、画質がより高いビデオサービスは必要になっている。高精細度ビデオサービスの最大の問題は、データ量の大幅な増加である。このような問題を解決するために、ビデオ圧縮率の向上に関する検討を積極的に進行している。代表的な例として、２００９年に、動画像専門家グループ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ：ＭＰＥＧ）及び国際電気通信連合−電気通信（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ−Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ：ＩＴＵ−Ｔ）傘下のビデオ符号化専門家グループ化（Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ：ＶＣＥＧ）は、ビデオ符号化共同チームＪＣＴ−ＶＣ（Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）を確立した。ＪＣＴ−ＶＣは、ビデオ圧縮規格ＨＥＶＣ（高効率ビデオ符号化：Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）を提出し、該規格が２０１３年１月２５日に承認された。その圧縮性能は、Ｈ．２６４／ＡＶＣの約２倍である。高精細度ビデオサービスの急激な成長に伴い、ＨＥＶＣの性能上の制限も次第に現れている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、ビデオ信号に対して符号化／復号化を行う場合にアフィンモデルを用いるインター予測方法及び前記インター予測方法に用いられる機器を提供することである。
【０００４】
本発明の目的は、ビデオ信号に対して符号化／復号化を行う場合にサブブロックの並進動きベクトルを用いてアフィンシードベクトルを導出する方法及び前記方法を実行するための機器を提供することである。
【０００５】
本発明のもう１つの目的は、ビデオ信号に対して符号化／復号化を行う場合に隣接ブロックと現在ブロックとの距離を２のべき級数に変換することでアフィンシードベクトルを導出する方法及び前記方法を実行するための機器を提供することである。
【０００６】
本発明が実現しようとする技術的課題は、上記言及した技術的課題に限定されず、本発明が属する技術分野において通常の知識を有する者は、下記説明により、言及されていない他の技術的課題を明瞭に理解する。
【課題を解決するための手段】
【０００７】
本発明によるビデオ信号復号化／符号化方法は、現在ブロックのマージ候補リストを生成するステップと、前記マージ候補リストに含まれる複数のマージ候補のうちのいずれか１つを指定するステップと、指定されたマージ候補の第１アフィンシードベクトル及び第２アフィンシードベクトルに基づいて、前記現在ブロックの第１アフィンシードベクトル及び第２アフィンシードベクトルを導出するステップと、前記現在ブロックの前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルを用いることで、前記現在ブロック内のサブブロックのアフィンベクトルを導出するステップと、前記アフィンベクトルに基づいて、前記サブブロックに対して動き補償予測を実行するステップと、を含む。この場合、前記サブブロックは、前記現在ブロックのサイズよりも小さいサイズの領域である。なお、前記現在ブロックに隣接する隣接ブロックの動き情報に基づいて、前記マージ候補の前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルを導出することができる。
【０００８】
本発明によるビデオ信号復号化／符号化方法において、前記隣接ブロックが、前記現在ブロックの符号化ツリーユニットと異なる符号化ツリーユニットに含まれる場合、前記隣接ブロックの左下サブブロック及び右下サブブロックの動きベクトルに基づいて、前記マージ候補の前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルを導出することができる。
【０００９】
本発明によるビデオ信号復号化／符号化方法において、前記左下サブブロックは、前記隣接ブロックの左下隅に位置する左下参照サンプルを含んでもよく、前記右下サブブロックは、前記隣接ブロックの右下隅に位置する右下参照サンプルを含んでもよい。
【００１０】
本発明によるビデオ信号復号化／符号化方法において、スケールファクタを用いて、前記左下サブブロックと前記右下サブブロックとの動きベクトルの差分値に対してシフト操作を行うことで得られた値に基づいて、前記マージ候補の前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルを導出することができ、また、左下参照サンプルと右下参照サンプルとの水平距離とオフセットを加算することで得られた値に基づいて、前記スケールファクタを導出することができる。
【００１１】
本発明によるビデオ信号復号化／符号化方法において、スケールファクタを用いて、前記左下サブブロックと前記右下サブブロックとの動きベクトルの差分値に対してシフト操作を行うことで得られた値に基づいて、前記マージ候補の前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルを導出することができ、前記右下参照サンプルの右側に隣接する隣接サンプルと前記左下参照サンプルとの距離に基づいて、前記スケールファクタを導出することができる。
【００１２】
本発明によるビデオ信号復号化／符号化方法において、前記マージ候補リストは、第１マージ候補及び第２マージ候補を含み、前記第１マージ候補は、前記現在ブロックの上方に位置する上隣接ブロックのうちの第１利用可能なブロックと決定された上隣接ブロックに基づいて導出され、前記第２マージ候補は、前記現在ブロックの左側に位置する左隣接ブロックのうちの第１利用可能なブロックと決定された左隣接ブロックに基づいて導出される。
【００１３】
本発明によるビデオ信号復号化／符号化方法において、前記隣接ブロックが、前記現在ブロックの符号化ツリーユニットと同じである符号化ツリーユニットに含まれる場合、前記隣接ブロックの第１アフィンシードベクトル及び第２アフィンシードベクトルに基づいて前記マージ候補の前記第１アフィンシードベクトル及び前記第２アフィンシードベクトルを導出することができる。
【００１４】
本発明について上記の簡単に要約された特徴は、後述する本発明の詳細な説明の例示的な実施形態だけであり、本発明の範囲を限定するものではない。
【発明の効果】
【００１５】
本発明によれば、アフィンモデルを用いるインター予測方法により、予測効率を向上させる効果がある。
【００１６】
本発明によれば、サブブロックの並進動きベクトルを用いてアフィンシードベクトルを導出することで、符号化効率を向上させる効果がある。
【００１７】
本発明によれば、隣接ブロックと現在ブロックとの距離を２のべき級数に変換することでアフィンシードベクトルを導出することにより、符号化効率を向上させる効果がある。
【００１８】
本発明で取得可能な効果は、上記効果に限定されず、本発明が属する技術分野において通常の知識を有する者は、下記記述により、言及されていない他の効果を明瞭に理解することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施例によるビデオエンコーダ（ｅｎｃｏｄｅｒ）を示すブロック図である。
【図２】本発明の実施例によるビデオデコーダ（ｄｅｃｏｄｅｒ）を示すブロック図である。
【図３】本発明の実施例による基本符号化ツリーユニットを示す図である。
【図４】符号化ブロックの複数の分割タイプを示す図である。
【図５】符号化ツリーユニットの分割例を示す図である。
【図６】本発明の実施例によるインター予測方法を示すフローチャートである。
【図７】対象の非線形動きを示す図である。
【図８】本発明の実施例によるアフィン動きに基づくインター予測方法を示すフローチャートである。
【図９】各アフィン動きモデルのアフィンシードベクトルの例を示す図である。
【図１０】４パラメータ動きモデルにおけるサブブロックのアフィンベクトルの例を示す図である。
【図１１】マージ候補の導出に利用可能な隣接ブロックを示す図である。
【図１２】アフィン隣接ブロックのアフィンシードベクトルに基づいて現在ブロックのアフィンシードベクトルを導出することを示す図である。
【図１３】サブブロックの動きベクトルをアフィン隣接ブロックのアフィンシードベクトルとする例を示す図である。
【図１４】参照サンプルの位置を示す図である。
【図１５】参照サンプルの位置を示す図である。
【図１６】参照サンプルの位置を示す図である。
【図１７】修正したアフィンマージベクトル導出方法の適用例を示す図である。
【図１８】非アフィン隣接ブロックに基づいて現在ブロックのアフィンシードベクトルを導出する例を示す図である。
【図１９】もう１つの隣接ブロックで隣接ブロックを置き換える例を示す図である。
【図２０】複数のマージ候補を用いた動き補償予測方法を示すフローチャートである。
【図２１】複数のマージ候補を用いた動き補償予測方法を示すフローチャートである。
【図２２】本発明の実施例によるイントラ予測方法を示すフローチャートである。
【図２３】各参照サンプルラインに含まれる参照サンプルを示す図である。
【図２４】イントラ予測モードを示す図である。
【図２５】参照サンプルを一行に配列した一次元配列例を示す図である。
【図２６】参照サンプルを一行に配列した一次元配列例を示す図である。
【図２７】角度イントラ予測モードとｘ軸に平行である直線との間で形成された角度を示す図である。
【図２８】現在ブロックが非正方形である場合の予測サンプルの取得例を示す図である。
【図２９】広角イントラ予測モードを示す図である。
【図３０】ブロック強度の決定プロセスを示すフローチャートである。
【図３１】事前定義されたフィルタ候補を示す図である。
【図３２】画像を複数のタイルに分割する例を示す図である。
【図３３】柔軟なタイル技術に基づく画像分割モードを示す図である。
【図３４】タイルＩＤを各符号化ツリーユニットに割り当てる例を示す図である。
【図３５】各タイルに対してループフィルタを適用するかどうかを選択的に決定する例を示す図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照しながら、本発明の実施例を詳しく説明する。
【００２１】
ビデオの符号化及び復号化は、ブロックを単位として実行される。例えば、符号化ブロック、変換ブロック又は予測ブロックに対して、変換、量子化、予測、ループフィルタリング又は再構成などの符号化／復号化処理を行うことができる。
【００２２】
以下、符号化／復号化されるべきブロックを「現在ブロック」と呼ぶ。例えば、現在符号化／復号化処理ステップによれば、現在ブロックは、符号化ブロック、変換ブロック又は予測ブロックを表すことができる。
【００２３】
なお、本明細書で用いられる用語「ユニット」は、特定の符号化／復号化プロセスを実行するための基本ユニットを表し、また、「ブロック」は、所定のサイズのサンプルアレイを表すと理解されてもよい。特に明記しない限り、「ブロック」と「ユニット」は、相互交換可能に用いられる。例えば、後述される実施例において、符号化ブロック及び符号化ユニットは、同様な意味を有すると理解されてもよい。
【００２４】
図１は、本発明の実施例によるビデオエンコーダ（ｅｎｃｏｄｅｒ）を示すブロック図である。
【００２５】
図１を参照すると、ビデオ符号化機器１００は、画像分割部１１０、予測部１２０、１２５、変換部１３０、量子化部１３５、再配列部１６０、エントロピー符号化部１６５、逆量子化部１４０、逆変換部１４５、フィルタ部１５０及びメモリ１５５を備えてもよい。
【００２６】
図１に示す各部材は、単独で示されてビデオ符号化機器における互いに異なる特徴的機能を表すが、各部材が分離したハードウェア又は単一のソフトウェアアセンブリで構成されることを表しない。つまり、説明しやすくするために、代表的な構成要素として示されて各構成要素を含み、また、少なくとも２つの構成要素を１つの構成要素に合わせてもよいか又は１つの構成要素を複数の構成要素に分けてこれにより機能を実行することができる。本発明の本質を逸脱しない限り、このような各構成要素を整合する実施例及び各構成要素を分離させる実施例も本発明の権利範囲に属する。
【００２７】
なお、一部の構成要素は、本発明における本質機能を実行するための必須な構成要素ではなく、性能を向上させるための選択可能な構成要素だけである。本発明は、本発明の本質の実現に必要な部材（性能を向上させるための構成要素を含まない）のみを含むことで実行されてもよく、また、必要な構成要素（性能を向上させるための構成要素を含まない）のみを含む構造も本発明の権利範囲に属する。
【００２８】
画像分割部１１０は、入力された画像を少なくとも１つの処理ユニットに分割することができる。この場合、処理ユニットは、予測ユニット（Ｐｒｅｄｉｃｔｉｏｎ  Ｕｎｉｔ：ＰＵ）であってもよく、変換ユニット（Ｔｒａｎｓｆｏｒｍ  Ｕｎｉｔ：ＴＵ）であってもよく、更に符号化ユニット（Ｃｏｄｉｎｇ  Ｕｎｉｔ：ＣＵ）であってもよい。画像分割部１１０は、１つの画像を複数の符号化ユニット、予測ユニット及び変換ユニットの組み合わせに分割する。所定の基準（例えば、コスト関数）に基づいて符号化ユニット、予測ユニット及び変換ユニットの組み合わせを選択して画像を符号化することができる。
【００２９】
例えば、１つの画像を複数の符号化ユニットに分割することができる。画像を符号化ユニットに分割するために、四分木構造（Ｑｕａｄ  Ｔｒｅｅ  Ｓｔｒｕｃｔｕｒｅ）のような再帰的ツリー構造を用いて、１つのビデオ又は最大符号化ユニット（ｌａｒｇｅｓｔ  ｃｏｄｉｎｇ  ｕｎｉｔ）をルートとして符号化ユニットを他の符号化ユニットに分割することができる。前記符号化ユニットは、分割された符号化ユニットの数と同じである数の子ノードを有してもよい。幾つかの制限によって分割されない符号化ユニットは、リーフノードとなる。つまり、１つの符号化ユニットが正方形分割だけを実現できると仮定する場合、１つの符号化ユニットを最大限４つの他の符号化ユニットに分割することができる。
【００３０】
以下、本発明の実施例において、符号化ユニットは、符号化を実行するユニットを指してもよく、復号化を実行するユニットを指してもよい。
【００３１】
１つの符号化ユニットにおける予測ユニットを少なくとも１つのサイズが同じである正方形又は矩形を分割することができ、１つの符号化ユニットにおける１つの予測ユニットを形状及び／又はサイズがもう１つの予測ユニットと異なるものに分割することもできる。
【００３２】
符号化ユニットに基づいてイントラ予測を実行する予測ユニットが最小符号化ユニットではない場合、複数の予測ユニットＮ×Ｎに分割する必要がなく、イントラ予測を実行することができる。
【００３３】
予測部１２０、１２５は、インター予測を実行するインター予測部１２０及びイントラ予測を実行するイントラ予測部１２５を含んでもよい。予測ユニットに対して、インター予測を用いるかそれともイントラ予測を用いるかを決定することができ、また、各予測方法に基づいて、具体的な情報（例えば、イントラ予測モード、動きベクトル、参照画像など）を決定することができる。この場合、予測を実行する処理ユニットは、予測方法及び具体的なコンテンツを決定する処理ユニットと異なることがある。例えば、予測ユニットにより、予測方法及び予測モードなどを決定することができ、また、変換ユニットにより予測を実行することができる。生成された予測ブロックとオリジナルブロックとの間の残差値（残差ブロック）を変換部１３０に入力することができる。なお、予測のための予測モード情報、動きベクトル情報などを残差値と共にエントロピー符号化部１６５において符号化してデコーダに伝送することができる。特定の符号化モードを用いる場合、予測部１２０、１２５により予測ブロックを生成することなく、直接的にオリジナルブロックを符号化してデコーダに伝送することもできる。
【００３４】
インター予測部１２０は、現在画像の直前の画像又は直後の画像における少なくとも１つの画像の情報に基づいて予測ユニットを予測することができる。幾つかの場合に、現在画像における符号化された一部の領域の情報に基づいて予測ユニットを予測することもできる。インター予測部１２０は、参照画像補間部、動き予測部、動き補償部を含んでもよい。
【００３５】
参照画像補間部は、メモリ１５５から参照画像情報を受信し、また、参照画像から、整数画素又は小数画素の画素情報を生成することができる。輝度画素について言えば、１／４画素を単位として小数画素の画素情報を生成するために、フィルタ係数が異なるＤＣＴに基づく８タップ補間フィルタ（ＤＣＴ−ｂａｓｅｄ  Ｉｎｔｅｒｐｏｌａｔｉｏｎ  Ｆｉｌｔｅｒ）を用いることができる。色度信号について言えば、１／８画素を単位として小数画素の画素情報を生成するために、フィルタ係数が異なるＤＣＴに基づく４タップ補間フィルタ（ＤＣＴ−ｂａｓｅｄ  Ｉｎｔｅｒｐｏｌａｔｉｏｎ  Ｆｉｌｔｅｒ）を用いることができる。
【００３６】
動き予測部は、参照画像補間部により補間された参照画像に基づいて、動き予測を実行することができる。動きベクトルを算出するための方法として、全探索ブロックマッチングアルゴリズム（ＦＢＭＡ：Ｆｕｌｌ  ｓｅａｒｃｈ−ｂａｓｅｄ  Ｂｌｏｃｋ  Ｍａｔｃｈｉｎｇ  Ａｌｇｏｒｉｔｈｍ）、３段階探索法（ＴＳＳ：Ｔｈｒｅｅ  Ｓｔｅｐ  Ｓｅａｒｃｈ）、新たな３段階探索アルゴリズム（ＮＴＳ：Ｎｅｗ  Ｔｈｒｅｅ−Ｓｔｅｐ  Ｓｅａｒｃｈ  Ａｌｇｏｒｉｔｈｍ）等の複数の方法を用いることができる。補間された画素によれば、動きベクトルは、１／２画素又は１／４画素を単位とした動きベクトル値を有してもよい。動き予測部において、異なる動き予測方法を用いることで現在予測ユニットを予測することができる。動き予測方法として、スキップ（Ｓｋｉｐ）方法、マージ（Ｍｅｒｇｅ）方法、アドバンスト動きベクトル予測（ＡＭＶＰ：Ａｄｖａｎｃｅｄ  Ｍｏｔｉｏｎ  Ｖｅｃｔｏｒ  Ｐｒｅｄｉｃｔｉｏｎ）方法、イントラブロック複製（Ｉｎｔｒａ  Ｂｌｏｃｋ  Ｃｏｐｙ）方法などの複数の方法を用いることができる。
【００３７】
イントラ予測部１２５は、現在ブロックの周辺の参照画素情報（前記参照画素情報は、現在画像における画素情報である）に基づいて、予測ユニットを生成することができる。現在予測ユニットの隣接ブロックは、インター予測を実行したブロックであり、且つ参照画素は、インター予測を実行した画素である場合、インター予測を実行したブロックに含まれる参照画素を、周辺のイントラ予測を実行したブロックの参照画素情報とすることができる。つまり、参照画素が利用不可能である場合、利用不可能な参照画素情報の代わりに、利用可能な参照画素のうちの少なくとも１つの参照画素を用いることができる。
【００３８】
イントラ予測において、予測モードは、予測方向に基づいて参照画素情報を用いる角度予測モード及び予測を実行する場合に方向情報を使用しない非角度モードを有してもよい。輝度情報を予測するためのモードは、色度情報を予測するためのモードと異なってもよい。色度情報を予測するために、輝度情報を予測するためのイントラ予測モード情報又は予測された輝度信号情報を用いることができる。
【００３９】
イントラ予測を実行する場合、予測ユニットのサイズが変換ユニットのサイズと同じであると、予測ユニットの左側に位置する画素、左上に位置する画素、上方に位置する画素に基づいて、予測ユニットに対してイントラ予測を実行することができる。しかしながら、イントラ予測を実行する場合、予測ユニットのサイズが変換ユニットのサイズと異なると、変換ユニットの参照画素に基づいてイントラ予測を実行することができる。なお、最小符号化ユニットのみに対して、Ｎ×Ｎ分割を用いたイントラ予測を適用することができる。
【００４０】
予測モードに基づいて参照画素に対して適応的イントラ平滑化（ＡＩＳ：Ａｄａｐｔｉｖｅ  Ｉｎｔｒａ  Ｓｍｏｏｔｈｉｎｇ）フィルタを適用した後、イントラ予測方法で、予測ブロックを生成することができる。参照画素に適用される適応的イントラ平滑化フィルタのタイプは異なる可能性がある。イントラ予測方法を実行するために、現在予測ユニットの周辺に位置する予測ユニットのイントラ予測モードに基づいて、現在予測ユニットのイントラ予測モードを予測することができる。周辺予測ユニットから予測されたモード情報を用いて現在予測ユニットの予測モードを予測する場合、現在予測ユニットのイントラ予測モードが周辺予測ユニットと同じであると、所定のフラグ情報を用いて、現在予測ユニットの予測モードが周辺予測ユニットと同じであることを表す情報を伝送することができる。現在予測ユニットの予測モードが周辺予測ユニットと異なると、エントロピー符号化を実行することで、現在ブロックの予測モード情報を符号化することができる。
【００４１】
なお、残差情報を含む残差ブロックを生成することができる。前記残差情報は、予測部１２０、１２５で生成された予測ユニットに基づいて予測を実行する予測ユニットと予測ユニットのオリジナルブロックとの差分値である。生成された残差ブロックを変換部１３０に入力することができる。
【００４２】
変換部１３０は、離散コサイン変換（ＤＣＴ）、離散サイン変換（ＤＳＴ）又は変換スキップなどのような変換方法で、残差ブロックを変換することができる。前記残差ブロックは、オリジナルブロックと、予測部１２０及び１２５により生成された予測ユニットと、の間の残差情報を含む。残差ブロックを変換するためにＤＣＴを適用するか、ＤＳＴを適用するかそれともＫＬＴを適用するかについて、残差ブロックを生成するための予測ユニットのイントラ予測モード情報に基づいて決定することができる。
【００４３】
量子化部１３５は、変換部１３０で周波数領域に変換された値を量子化することができる。量子化係数は、ブロック又は画像の重要度によって変わってもよい。量子化部１３５で算出された値は、逆量子化部１４０及び再配列部１６０に提供されてもよい。
【００４４】
再配列部１６０は、量子化された残差値に対して係数値の再配列を実行することができる。
【００４５】
再配列部１６０は、係数走査（Ｃｏｅｆｆｉｃｉｅｎｔ  Ｓｃａｎｎｉｎｇ）方法で、２次元のブロック形状係数を１次元のベクトル形態に変更することができる。例えば、再配列部１６０は、ジグザグ走査（Ｚｉｇ−Ｚａｇ  Ｓｃａｎ）方法で、ＤＣ係数乃至高周波数領域の係数を走査し、それを１次元ベクトル形態に変換することができる。変換ユニットのサイズ及びイントラ予測モードによれば、ジグザグ走査の代わりに、列方向に沿って２次元ブロック形状係数を走査する垂直走査及び行方向に沿って２次元ブロック形状係数を走査する水平走査を用いることもできる。つまり、変換ユニットのサイズ及びイントラ予測モードに基づいて、ジグザグ走査、垂直方向走査及び水平方向走査のうちのどちらを用いるかを決定することができる。
【００４６】
エントロピー符号化部１６５は、再配列部１６０で算出された値に基づいてエントロピー符号化を実行することができる。例えば、エントロピー符号化は、指数ゴロムコード（Ｅｘｐｏｎｅｎｔｉａｌ  Ｇｏｌｏｍｂ）、コンテキスト適応型可変長符号化（ＣＡＶＬＣ，Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）、コンテキスト適応型二値算術符号化（ＣＡＢＡＣ：Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）等の複数の符号化方法を用いることができる。
【００４７】
エントロピー符号化部１６５は、再配列部１６０及び予測部１２０、１２５からの符号化ユニットの残差値係数情報及びブロックタイプ情報、予測モード情報、分割ユニット情報、予測ユニット情報及び伝送ユニット情報、動きベクトル情報、参照フレーム情報、ブロックの補間情報、フィルタリング情報などの複数の情報を符号化することができる。
【００４８】
エントロピー符号化部１６５は、再配列部１６０から入力された符号化ユニットの係数値に対してエントロピー符号化を行うことができる。
【００４９】
逆量子化部１４０及び逆変換部１４５は、量子化部１３５により量子化された複数の値に対して逆量子化を行い、変換部１３０により変換された値に対して逆変換を行う。逆量子化部１４０及び逆変換部１４５で生成された残差値と、予測部１２０、１２５に含まれる動き予測部、動き補償部及びイントラ予測部により予測された予測ユニットと、をマージすることで、再構成ブロック（Ｒｅｃｏｎｓｔｒｕｃｔｅｄ  Ｂｌｏｃｋ）を生成することができる。
【００５０】
フィルタ部１５０は、デブロッキングフィルタ、オフセット補正部（ｏｆｆｓｅｔ  ｃｏｒｒｅｃｔｉｏｎ  ｕｎｉｔ）、適応型ループフィルタ（ＡＬＦ，Ａｄａｐｔｉｖｅ  Ｌｏｏｐ  Ｆｉｌｔｅｒ）のうちの少なくとも１つを含んでもよい。
【００５１】
デブロッキングフィルタは、ブロック間の境界により、再構成された画像で生成されたブロック歪みを除去することができる。デブロッキングを実行するかどうかを判定するために、ブロックに含まれる幾つかの列又は行に含まれる画素に基づいて、現在ブロックに対してデブロッキングフィルタを適用するかどうかを判定することができる。ブロックに対してデブロッキングフィルタを適用する場合、必要なデブロッキングフィルタリング強度に基づいて強フィルタ（Ｓｔｒｏｎｇ  Ｆｉｌｔｅｒ）又は弱フィルタ（Ｗｅａｋ  Ｆｉｌｔｅｒ）を適用することができる。なお、デブロッキングフィルタを用いる過程において、垂直フィルタリング又は水平フィルタリングを実行する場合、水平方向フィルタリング及び垂直方向フィルタリングを同期して実行することができる。
【００５２】
オフセット補正部は、画素単位で、デブロッキング画像とオリジナル画像とのオフセットを補正することができる。下記方式で、指定した画像に対してオフセット補正を行うことができる。画像に含まれる画素を所定の数の領域に分割した後、オフセット補正を必要とする領域を決定し、対応する領域に対してオフセット補正を適用するか又は各画素の縁情報を考慮してオフセット補正を適用する。
【００５３】
フィルタリングされた再構成画像とオリジナル画像を比較した値に基づいて、適応的ループフィルタリング（ＡＬＦ：Ａｄａｐｔｉｖｅ  Ｌｏｏｐ  Ｆｉｌｔｅｒｉｎｇ）を実行することができる。画像に含まれる画素を所定のグループに分割した後、対応するグループに用いられる１つのフィルタを決定し、各グループに対してフィルタリングを差別的に実行することができる。各符号化ユニット（Ｃｏｄｉｎｇ  Ｕｎｉｔ：ＣＵ）に対して、輝度信号を介して、適応的ループフィルタリングを適用するかどうかに関わる情報を伝送することができる。適用される適応的ループフィルタの形状及びフィルタ係数は、各ブロックによって異なってもよい。なお、適用されるブロックの特性に関わらず、同一タイプ（一定のタイプ）のＡＬＦを適用することもできる。
【００５４】
メモリ１５５は、フィルタ部１５０により算出された再構成ブロック又はブロックを記憶することができ、インター予測を実行する場合、記憶された再構成ブロック又は画像を予測部１２０、１２５に提供することができる。
【００５５】
図２は、本発明の実施例によるビデオデコーダ（ｄｅｃｏｄｅｒ）を示すブロック図である。
【００５６】
図２を参照すると、ビデオデコーダ２００は、エントロピー復号化部２１０、再配列部２１５、逆量子化部２２０、逆変換部２２５、予測部２３０、予測部２３５、フィルタ部２４０、メモリ２４５を備えてもよい。
【００５７】
ビデオエンコーダからビデオビットストリームを入力する場合、ビデオエンコーダと逆であるステップで、入力されたビットストリームを復号化することができる。
【００５８】
エントロピー復号化部２１０は、ビデオエンコーダのエントロピー符号化部でエントロピー符号化を実行するステップと逆であるステップで、エントロピー復号化を実行することができる。例えば、ビデオエンコーダで実行される方法に対応するように、指数ゴロムコード（Ｅｘｐｏｎｅｎｔｉａｌ  Ｇｏｌｏｍｂ）、コンテキスト適応型可変長符号化（ＣＡＶＬＣ：Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）、コンテキスト適応型二値算術符号化（ＣＡＢＡＣ：Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）等の複数の方法を適用することができる。
【００５９】
エントロピー復号化部２１０は、エンコーダにより実行されたイントラ予測及びインター予測に関わる情報に対して復号化を行うことができる。
【００６０】
再配列部２１５は、符号化部においてエントロピー復号化部２１０によりエントロピー復号化されたビットストリームを再配列する方法で再配列を実行することができる。１次元ベクトル形態で表す複数の係数を２次元ブロック形状の係数に再構成することで再配列を行うことができる。再配列部２１５は、下記方式で再配列を実行することができる。符号化部により実行された係数走査に関わる情報を受信し、対応する符号化部により実行された走査順に応じて逆走査を行う。
【００６１】
逆量子化部２２０は、エンコーダにより提供された量子化パラメータ及び再配列されたブロックの係数値に基づいて逆量子化を実行することができる。
【００６２】
ビデオエンコーダにより実行された量子化結果について、逆変換部２２５は、変換部により実行された変換であるＤＣＴ、ＤＳＴ及びＫＬＴに対して、逆変換を実行することができる。つまり、逆ＤＣＴ、逆ＤＳＴ及び逆ＫＬＴを実行する。逆変換は、ビデオエンコーダで決定された伝送ユニットにより実行されてもよい。ビデオデコーダの逆変換部２２５において、予測方法、現在ブロックのサイズ及び予測方向などの複数の情報に基づいて、変換方法（例えば、ＤＣＴ、ＤＳＴ、ＫＬＴ）を選択的に実行することができる。
【００６３】
予測部２３０、２３５は、エントロピー復号化部２１０により提供された、予測ブロックの生成に関わる情報及びメモリ２４５により提供された先に復号化されたブロック又は画像情報に基づいて、予測ブロックを生成することができる。
【００６４】
上述したように、ビデオエンコーダにおける操作方式と同じである方式でイントラ予測を実行する場合、予測ユニットのサイズが変換ユニットのサイズと同じであると、予測ユニットの左側に位置する画素、左上に位置する画素、上方に位置する画素に基づいて、予測ユニットに対してイントラ予測を実行することができる。イントラ予測を実行する場合、予測ユニットのサイズが変換ユニットのサイズと異なると、変換ユニットの参照画素に基づいてイントラ予測を実行することができる。なお、最小符号化ユニットのみに対して、Ｎ×Ｎ分割を用いたイントラ予測を適用することができる。
【００６５】
予測部２３０、２３５は、予測ユニット判定部、インター予測部及びイントラ予測部を含んでもよい。予測ユニット判定部は、エントロピー復号化部２１０から入力された予測ユニット情報、イントラ予測方法の予測モード情報、インター予測方法の動き予測関連情報などの複数の情報を受信し、現在符号化ユニットに基づいて、予測ユニットを分類し、予測ユニットがインター予測を実行しているかそれともイントラ予測を実行しているかを決定する。インター予測部２３０は、ビデオエンコーダにより提供された、現在予測ユニットのインター予測の実行に必要な情報を用いて、現在予測ユニットが属する現在画像の直前の画像又は直後の画像のうちの少なくとも１つの画像に含まれる情報に基づいて、現在予測ユニットに対してインター予測を実行することができる。あるいは、現在予測ユニットが属する現在画像における再構成された一部の領域の情報に基づいて、インター予測を実行することもできる。
【００６６】
インター予測を実行するために、符号化ユニットに基づいて、対応する符号化ユニットに含まれる予測ユニットの動き予測方法がスキップモード（Ｓｋｉｐ  Ｍｏｄｅ）、マージモード（Ｍｅｒｇｅ  Ｍｏｄｅ）、アドバンスド動きベクトル予測モード（ＡＭＶＰ  Ｍｏｄｅ）、イントラブロック複製モードのうちのどちらであるかを判定することができる。
【００６７】
イントラ予測部２３５は、現在画像における画素情報に基づいて予測ブロックを生成することができる。予測ユニットが、イントラ予測を実行した予測ユニットである場合、ビデオエンコーダから提供された予測ユニットのイントラ予測モード情報に基づいて、イントラ予測を実行することができる。イントラ予測部２３５は、適応的イントラ平滑化（ＡＩＳ：Ａｄａｐｔｉｖｅ  Ｉｎｔｒａ  Ｓｍｏｏｔｈｉｎｇ）フィルタ、参照画素補間部、ＤＣフィルタを含んでもよい。適応的イントラ平滑化フィルタは、現在ブロックの参照画素に対してフィルタリングを実行する部分であり、また、現在予測ユニットの予測モードに基づいて、フィルタを適用するかどうかを決定することができる。ビデオエンコーダから提供された予測ユニットの予測モード及び適応的イントラ平滑化フィルタ情報を用いて、現在ブロックの参照画素に対して適応的イントラ平滑化フィルタリングを実行することができる。現在ブロックの予測モードが、適応的イントラ平滑化フィルタリングを実行しないモードであると、適応的イントラ平滑化フィルタを適用しなくてもよい。
【００６８】
予測ユニットの予測モードが、参照画素に対して補間を行う画素値に基づいてイントラ予測を実行する予測ユニットであると、参照画素補間部は、参照画素に対して補間を行うことで、整数値又は小数値の画素単位の参照画素を生成することができる。現在予測ユニットの予測モードが、参照画素に対して補間を行わない方式で予測ブロックを生成する予測モードであると、参照画素に対して補間を行わなくてもよい。現在ブロックの予測モードがＤＣモードであると、ＤＣフィルタは、フィルタリングにより予測ブロックを生成することができる。
【００６９】
再構成されたブロック又は画像をフィルタ部２４０に提供することができる。フィルタ部２４０は、デブロッキングフィルタ、オフセット補正部、ＡＬＦを含んでもよい。
【００７０】
ビデオエンコーダから、対応するブロック又は画像に対してデブロッキングフィルタを適用するかどうかに関わる情報及びデブロッキングフィルタを適用する場合に強フィルタを用いるかそれとも弱フィルタを用いるかに関わる情報を受信することができる。ビデオデコーダのデブロッキングフィルタは、ビデオエンコーダから提供された、デブロッキングフィルタに関わる情報を受信することができ、また、ビデオデコーダは、対応するブロックに対してデブロッキングフィルタリングを実行することができる。
【００７１】
オフセット補正部は、符号化を行う場合に画像に適用されるオフセット補正のタイプ及びオフセット情報に基づいて、再構成された画像に対してオフセット補正を実行することができる。
【００７２】
エンコーダから提供された、ＡＬＦを適用するかどうかに関わる情報、ＡＬＦ係数情報等に基づいて、ＡＬＦを符号化ユニットに適用することができる。このようなＡＬＦ情報は、特定のパラメータ集合に含まれることで提供されてもよい。
【００７３】
メモリ２４５は、再構成された画像又はブロックを記憶し、前記画像又はブロックを参照画像又は参照ブロックとして利用できるようになり、また、再構成された画像を出力部に提供することができる。
【００７４】
図３は、本発明の実施例による基本符号化ツリーユニットを示す図である。
【００７５】
最大サイズの符号化ブロックを符号化ツリーブロックと定義することができる。１つの画像は、複数の符号化ツリーユニット（Ｃｏｄｉｎｇ  Ｔｒｅｅ  Ｕｎｉｔ：ＣＴＵ）に分割されてもよい。符号化ツリーユニットは、最大サイズの符号化ユニットであり、最大符号化ユニット（ＬＣＵ：Ｌａｒｇｅｓｔ  Ｃｏｄｉｎｇ  Ｕｎｉｔ）と呼ばれてもよい。図３は、１つの画像を複数の符号化ツリーユニットに分割する例を示す。
【００７６】
符号化ツリーユニットのサイズは、画像レベル又はシーケンスレベルで定義されてもよい。このため、画像パラメータ集合又はシーケンスパラメータ集合により、信号を用いて、符号化ツリーユニットのサイズを示す情報を送信することができる。
【００７７】
例えば、シーケンスにおける画像全体の符号化ツリーユニットのサイズを１２８×１２８とすることができる。あるいは、画像レベルの１２８×１２８又は２５６×２５６のうちのいずれか１つを符号化ツリーユニットのサイズと決定することができる。例えば、第１画像における符号化ツリーユニットのサイズを１２８×１２８とし、また、第２画像における符号化ツリーユニットのサイズを２５６×２５６とすることができる。
【００７８】
符号化ツリーユニットの分割により符号化ブロックを生成することができる。符号化ブロックは、符号化／復号化処理を行うための基本ユニットを表す。例えば、異なる符号化ブロックに応じて予測又は変換を実行することができ、又は、異なる符号化ブロックに応じて予測符号化モードを決定することができる。ここで、予測符号化モードは、予測画像を生成する方法を表す。例えば、予測符号化モードは、画面内予測（Ｉｎｔｒａ  Ｐｒｅｄｉｃｔｉｏｎ：イントラ予測）、画面間予測（Ｉｎｔｅｒ  Ｐｒｅｄｉｃｔｉｏｎ：インター予測）、現在画像参照（Ｃｕｒｒｅｎｔ  Ｐｉｃｔｕｒｅ  Ｒｅｆｅｒｅｎｃｉｎｇ：ＣＰＲ）、イントラブロック複製（Ｉｎｔｒａ  Ｂｌｏｃｋ  Ｃｏｐｙ：ＩＢＣ））又は組み合わせ予測（Ｃｏｍｂｉｎｅｄ  Ｐｒｅｄｉｃｔｉｏｎ）を含んでもよい。符号化ブロックについて、イントラ予測、インター予測、現在画像参照又は組み合わせ予測のうちの少なくとも１つの予測符号化モードを用いて、符号化ブロックに関わる予測ブロックを生成することができる。
【００７９】
ビットストリームを介して、信号で、現在ブロックの予測符号化モードを表す情報を送信することができる。例えば、前記情報は、予測符号化モードがイントラモードであるかそれともインターモードであるかを示す１ビットフラグであってもよい。現在ブロックの予測符号化モードがインターモードであると決定された場合のみ、現在画像参照又は組み合わせ予測を用いることができる。
【００８０】
現在画像参照は、現在画像を参照画像とし、現在画像における符号化／復号化された領域から現在ブロックの予測ブロックを取得するために用いられる。ここで、現在画像は、現在ブロックを含む画像を意味する。ビットストリームを介して、信号で、現在ブロックに対して現在画像参照を適用するかどうかを表す情報を送信することができる。例えば、前記情報は、１ビットフラグであってもよい。前記フラグが真である場合、現在ブロックの予測符号化モードを現在画像参照として決定することができる。前記フラグが偽である場合、現在ブロックの予測モードをインター予測として決定することができる。
【００８１】
あるいは、参照画像インデックスに基づいて、現在ブロックの予測符号化モードを決定することができる。例えば、参照画像インデックスが現在画像を指し示す場合、現在ブロックの予測符号化モードを現在画像参照として決定することができる。参照画像インデックスが現在の画像ではない他の画像を指し示す場合、現在ブロックの予測符号化モードをインター予測として決定することができる。つまり、現在画像参照は、現在画像における符号化／復号化された領域の情報を用いる予測方法であり、また、インター予測は、符号化／復号化された他の画像の情報を用いる予測方法である。
【００８２】
組み合わせ予測は、イントラ予測、インター予測及び現在画像参照のうちの２つ以上を組み合わせることで形成された符号化モードである。例えば、組み合わせ予測を適用する場合、イントラ予測、インター予測又は現在画像参照のうちの１つに基づいて、第１予測ブロックを生成することができ、また、もう１つに基づいて、第２予測ブロックを生成することができる。第１予測ブロック及び第２予測ブロックを生成する場合、第１予測ブロック及び第２予測ブロックの平均演算及び加重加算により最終的予測ブロックを生成することができる。ビットストリームを介して、信号で、組み合わせ予測を適用するかどうかを表す情報を送信することができる。前記情報は、１ビットフラグであってもよい。
【００８３】
図４は、符号化ブロックの複数の分割タイプを示す図である。
【００８４】
四分木分割、二分木分割又は三分木分割に基づいて、符号化ブロックを複数の符号化ブロックに分割することができる。また、四分木分割、二分木分割又は三分木分割に基づいて、分割された符号化ブロックを更に複数の符号化ブロックに分割することもできる。
【００８５】
四分木分割は、現在ブロックを４つのブロックに分割する分割技術である。四分木分割の結果として、現在ブロックを４つの正方形パーティション（図４の（ａ）における「ＳＰＬＩＴ＿ＱＴ」を参照する）に分割することができる。
【００８６】
二分木分割は、現在ブロックを２つのブロックに分割する分割技術である。垂直方向に沿って（即ち、現在ブロックを横断する垂直線を用いる）現在ブロックを２つのブロックに分割する過程を垂直方向二分木分割と呼び、また、水平方向に沿って（即ち、現在ブロックを横断する水平線を用いる）現在ブロックを２つのブロックに分割する過程を水平方向二分木分割と呼ぶことができる。二分木分割の結果として、現在ブロックを２つの非正方形パーティションに分割することができる。図４の（ｂ）における「ＳＰＬＩＴ＿ＢＴ＿ＶＥＲ」は、垂直方向二分木分割結果を表し、また、図４（ｃ）における「ＳＰＬＩＴ＿ＢＴ＿ＨＯＲ」は、水平方向二分木分割結果を表す。
【００８７】
三分木分割は、現在ブロックを３つのブロックに分割する分割技術である。垂直方向に沿って（即ち、現在ブロックを横断する２本の垂直線を用いる）現在ブロックを３つのブロックに分割する過程を垂直方向三分木分割と呼び、また、水平方向に沿って（即ち、現在ブロックを横断する２本の水平線）現在ブロックを３つのブロックに分割する過程を水平方向三分木分割と呼ぶことができる。三分木分割結果として、現在ブロックを３つの非正方形パーティションに分割することができる。この場合、現在ブロックの中心に位置するパーティションの幅／高さは、他のパーティションの幅／高さの２倍であってもよい。図４（ｄ）における「ＳＰＬＩＴ＿ＴＴ＿ＶＥＲ」は、垂直方向三分木分割結果を表し、また、図４（ｅ）における「ＳＰＬＩＴ＿ＴＴ＿ＨＯＲ」は、水平方向三分木分割結果を表す。
【００８８】
符号化ツリーユニットの分割回数を分割深度（Ｐａｒｔｉｔｉｏｎｉｎｇ  Ｄｅｐｔｈ）と定義することができる。シーケンス又は画像レベルで、符号化ツリーユニットの最大分割深度を決定することができる。従って、符号化ツリーユニットの最大分割深度は、シーケンス又は画像によって異なってもよい。
【００８９】
あるいは、複数の分割技術のそれぞれに対して最大分割深度を単独で決定することができる。例えば、四分木分割を許容する最大分割深度は、二分木分割及び／又は三分木分割を許容する最大分割深度と異なってもよい。
【００９０】
エンコーダは、ビットストリームを介して、信号で、現在ブロックの分割タイプ又は分割深度のうちの少なくとも１つを表す情報を送信することができる。デコーダは、ビットストリームから解析された情報に基づいて、符号化ツリーユニットの分割タイプ及び分割深度を決定することができる。
【００９１】
図５は、符号化ツリーユニットの分割例を示す図である。
【００９２】
四分木分割、二分木分割及び／又は三分木分割などの分割技術で符号化ブロックを分割する過程を多分木分割（Ｍｕｌｔｉ  Ｔｒｅｅ  Ｐａｒｔｉｔｉｏｎｉｎｇ）と呼ぶことができる。
【００９３】
符号化ブロックに対して多分木分割を適用することで生成された符号化ブロックを下流符号化ブロックと呼ぶことができる。符号化ブロックの分割深度がｋである場合、複数の下流符号化ブロックの分割深度をｋ＋１とする。
【００９４】
一方で、分割深度がｋ＋１である符号化ブロックについて、分割深度がｋである符号化ブロックを上流符号化ブロックと呼ぶことができる。
【００９５】
上流符号化ブロックの分割タイプ又は隣接符号化ブロックの分割タイプのうちの少なくとも１つに基づいて、現在符号化ブロックの分割タイプを決定することができる。ここで、隣接符号化ブロックは、現在符号化ブロックに隣接し、それは、現在符号化ブロックの上隣接ブロック、左隣接ブロック又は左上隅に隣接する隣接ブロックのうちの少なくとも１つを含んでもよい。ここで、分割タイプは、四分木分割を行うかどうか、二分木分割を行うかどうか、二分木分割方向、三分木分割を行うかどうか又は三分木分割方向のうちの少なくとも１つを含んでもよい。
【００９６】
符号化ブロックの分割タイプを決定するために、ビットストリームを介して、信号で、符号化ブロックが分割されたかどうかを表す情報を送信することができる。前記情報は、１ビットフラグ「ｓｐｌｉｔ＿ｃｕ＿ｆｌａｇ」であり、前記フラグが真である場合、多分木分割技術で符号化ブロックを分割することを示す。
【００９７】
「ｓｐｌｉｔ＿ｃｕ＿ｆｌａｇ」が真である場合、ビットストリームを介して、信号で、符号化ブロックが四分木分割されたかどうかを表す情報を送信することができる。前記情報は、１ビットフラグ「ｓｐｌｉｔ＿ｑｔ＿ｆｌａｇ」であり、前記フラグが真である場合、符号化ブロックは、４つのブロックに分割されてもよい。
【００９８】
例えば、図５に示す例において、符号化ツリーユニットが四分木分割された場合に分割深度が１である４つの符号化ブロックを生成することが図示される。なお、四分木分割結果として生成された４つの符号化ブロックのうちの１番目の符号化ブロック及び４番目の符号化ブロックに対して再び四分木分割を適用することを図示する。最終的に、分割深度が２である４つの符号化ブロックを生成することができる。
【００９９】
なお、分割深度が２である符号化ブロックに対して再び四分木分割を適用することで分割深度が３である符号化ブロックを生成することができる。
【０１００】
符号化ブロックに対して四分木分割を適用していない場合、符号化ブロックのサイズ、符号化ブロックが画像の境界に位置するかどうか、最大分割深度又は隣接ブロックの分割タイプのうちの少なくとも１つを考慮することで、前記符号化ブロックに対して二分木分割を実行するかそれとも三分木分割を実行するかを決定することができる。前記符号化ブロックに対して二分木分割又は三分木分割を実行すると決定した場合、ビットストリームを介して、信号で、分割方向を表す情報を送信することができる。前記情報は、１ビットフラグ「ｍｔｔ＿ｓｐｌｉｔ＿ｃｕ＿ｖｅｒｔｉｃａｌ＿ｆｌａｇ」であってもよい。前記フラグに基づいて、分割方向が垂直方向であるかそれとも水平方向であるかを決定することができる。なお、ビットストリームを介して、信号で、前記符号化ブロックに対して二分木分割又は三分木分割のうちのどちらを適用するかを表す情報を送信することができる。前記情報は、１ビットフラグ「ｍｔｔ＿ｓｐｌｉｔ＿ｃｕ＿ｂｉｎａｒｙ＿ｆｌａｇ」であってもよい。前記フラグに基づいて、前記符号化ブロックに対して二分木分割を適用するかそれとも三分木分割を適用するかを決定することができる。
【０１０１】
例えば、図５に示す例において、分割深度が１である符号化ブロックに対して垂直方向二分木分割を適用することを図示する。前記分割結果として生成された符号化ブロックにおける左側符号化ブロックに対して垂直方向三分木分割を適用し、右側符号化ブロックに対して垂直方向二分木分割を適用する。
【０１０２】
インター予測は、直前の画像の情報を用いて現在ブロックを予測する予測符号化モードである。例えば、直前の画像における、現在ブロックと同一の位置のブロック（以下、コロケーテッドブロックと呼ぶ。Ｃｏｌｌｏｃａｔｅｄ  ｂｌｏｃｋ）を現在ブロックの予測ブロックとすることができる。以下、位置が現在ブロックと同じであるブロックに基づいて生成された予測ブロックをコロケーテッド予測ブロック（Ｃｏｌｌｏｃａｔｅｄ  Ｐｒｅｄｉｃｔｉｏｎ  Ｂｌｏｃｋ）と呼ぶことができる。
【０１０３】
一方で、直前の画像に存在する対象が現在画像における他の位置に移動した場合、対称の動きにより、現在ブロックを効果的に予測することができる。例えば、直前の画像と現在画像を比較することで対象の移動方向及びサイズを了解できると、対象の動き情報を考慮して現在ブロックの予測ブロック（又は予測画像）を生成することができる。以下、動き情報を用いることで生成された予測ブロックを動き予測ブロックと呼ぶことができる。
【０１０４】
現在ブロックから予測ブロックを減算することで残差ブロック（ｒｅｓｉｄｕａｌ  ｂｌｏｃｋ）を生成することができる。この場合、対象の動きが存在する場合、動き予測ブロックの代わりにコロケーテッド予測ブロックを用いることで、残差ブロックのエネルギーを減少させ、高残差ブロックの圧縮性能を向上させることができる。
【０１０５】
上述したように、動き情報を用いて予測ブロックを生成する過程を動き補償予測と呼ぶことができる。大部分のインター予測において、動き補償予測に基づいて予測ブロックを生成することができる。
【０１０６】
動き情報は、動きベクトル、参照画像インデックス、予測方向又は双方向加重値インデックスのうちの少なくとも１つを含んでもよい。動きベクトルは、対象の移動方向及びサイズを表す。参照画像インデックスは、参照画像リストに含まれる複数の参照画像において現在ブロックの参照画像を指定する。予測方向は、一方向Ｌ０予測、一方向Ｌ１予測又は双方向予測（Ｌ０予測及びＬ１予測）のうちのいずれか１つを指す。現在ブロックの予測方向に基づいて、Ｌ０方向の動き情報又はＬ１方向の動き情報のうちの少なくとも１つを用いることができる。双方向加重値インデックスは、Ｌ０予測ブロックに適用される加重値及びＬ１予測ブロックに適用される加重値を指定する。
【０１０７】
図６は、本発明の実施例によるインター予測方法を示すフローチャートである。
【０１０８】
図６を参照すると、インター予測方法は、現在ブロックのインター予測モードを決定するステップ（Ｓ６０１）と、決定されたインター予測モードに基づいて、現在ブロックの動き情報を得るステップ（Ｓ６０２）と、得られた動き情報に基づいて、現在ブロックに対して動き補償予測を実行するステップ（Ｓ６０３）と、を含む。
【０１０９】
ここで、インター予測モードは、現在ブロックの動き情報を決定するための複数の技術を表し、また、並進（Ｔｒａｎｓｌａｔｉｏｎ）動き情報を用いたインター予測モード及びアフィン（Ａｆｆｉｎｅ）動き情報を用いたインター予測モードを含んでもよい。例えば、並進動き情報を用いたインター予測モードは、マージモード及びアドバンスド動きベクトル予測モードを含んでもよい。アフィン動き情報を用いたインター予測モードは、アフィンマージモード及びアフィン動きベクトル予測モードを含んでもよい。インター予測モードによれば、現在ブロックに隣接する隣接ブロック又はビットストリームから解析された情報に基づいて、現在ブロックの動き情報を決定することができる。
【０１１０】
以下、アフィン動き情報を用いたインター予測方法を詳しく説明する。
【０１１１】
図７は、対象の非線形動きを示す図である。
【０１１２】
ビデオ内の対称の動きは、非線形動きである可能性がある。例えば、図７に示す例のように、カメラ拡大（Ｚｏｏｍ−ｉｎ）、縮小（Ｚｏｏｍ−ｏｕｔ）、回転（Ｒｏｔａｔｉｏｎ）又はアフィン変換などの対称の非線形動きを発生する可能性がある。対象の非線形動きを発生した場合、並進動きベクトルにより対象の動きを有効に表すことができない。従って、対象の非線形動きを発生した部分において、並進動きの代わりに、アフィン動きを用いることで、符号化効率を向上させることができる。
【０１１３】
図８は、本発明の実施例によるアフィン動きに基づくインター予測方法を示すフローチャートである。
【０１１４】
ビットストリームから解析された情報に基づいて、現在ブロックに対してアフィン動きに基づくインター予測技術を適用するかどうかを決定することができる。具体的には、現在ブロックに対してアフィンマージモードを適用するかどうかを示すフラグ又は現在ブロックに対してアフィン動きベクトル予測モードを適用するかどうかを示すフラグのうちの少なくとも１つに基づいて、現在ブロックに対してアフィン動きに基づくインター予測技術を適用するかどうかを決定することができる。
【０１１５】
アフィン動きに基づくインター予測技術を現在ブロックに適用する場合、現在ブロックのアフィン動きモデルを決定することができる（Ｓ８０１）。アフィン動きモデルは、６パラメータアフィン動きモデル又は４パラメータアフィン動きモデルのうちの少なくとも１つと決定されてもよい。６パラメータアフィン動きモデルは、６つのパラメータでアフィン動きを表し、また、４パラメータアフィン動きモデルは、４つのパラメータでアフィン動きを表す。
【０１１６】
等式１は、６つのパラメータでアフィン動きを表す場合である。アフィン動きは、アフィンシードベクトルにより決定された所定領域の並進動きを表す。
【数１】
2022502899.tif 000003
【０１１７】
６つのパラメータでアフィン動きを表す場合、複雑な動きを表すことができるが、各パラメータに対して符号化を行う場合に必要なビット数は増加するため、符号化効率を低下させる。従って、４つのパラメータで、アフィン動きを表すこともできる。等式２は、４つのパラメータで、アフィン動きを表す場合である。
【数２】
2022502899.tif 000004
【０１１８】
現在ブロックのアフィン動きモデルを決定するための情報に対して符号化を行い、ビットストリームを介して、信号で送信することができる。例えば、前記情報は、１ビットフラグ「ａｆｆｉｎｅ＿ｔｙｐｅ＿ｆｌａｇ」であってもよい。前記フラグの値が０である場合、４パラメータアフィン動きモデルを適用することを表す。前記フラグの値が１である場合、６パラメータアフィン動きモデルを適用することを表す。前記フラグは、スライス（ｓｌｉｃｅ）、タイル又はブロック（例えば、符号化ブロック又は符号化ツリーユニット）を単位として符号化を行うことができる。スライスレベルで、信号を用いてフラグを送信する場合、前記スライスに属する全てのブロックに対して、前記スライスレベルで決定されたアフィン動きモデルを適用することができる。
【０１１９】
あるいは、現在ブロックのアフィンインター予測モードに基づいて、現在ブロックのアフィン動きモデルを決定することができる。例えば、アフィンマージモードを適用する場合、現在ブロックのアフィン動きモデルを４パラメータ動きモデルとして決定することができる。一方で、アフィン動きベクトル予測モードを適用する場合、現在ブロックのアフィン動きモデルを決定するための情報に対して符号化を行い、ビットストリームを介して信号で送信することができる。例えば、現在ブロックに対してアフィン動きベクトル予測モードを適用する場合、１ビットフラグ「ａｆｆｉｎｅ＿ｔｙｐｅ＿ｆｌａｇ」に基づいて、現在ブロックのアフィン動きモデルを決定することができる。
【０１２０】
次に、現在ブロックのアフィンシードベクトルを導出することができる（Ｓ８０２）。４パラメータアフィン動きモデルを選択した場合、現在ブロックの２つの制御点での動きベクトルを導出することができる。なお、６パラメータアフィン動きモデルを選択した場合、現在ブロックの３つの制御点での動きベクトルを導出することができる。制御点での動きベクトルをアフィンシードベクトルと呼ぶことができる。制御点は、現在ブロックの左上隅、右上隅又は左下隅のうちの少なくとも１つを含んでもよい。
【０１２１】
図９は、各アフィン動きモデルのアフィンシードベクトルの例を示す図である。
【０１２２】
４パラメータアフィン動きモデルにおいて、左上隅、右上隅又は左下隅のうちの２つに関わるアフィンシードベクトルを導出することができる。例えば、図９の（ａ）に示す例のように、４パラメータアフィン動きモデルを選択した場合、現在ブロックの左上隅（例えば、左上サンプル（ｘ０，ｙ０））に関わるアフィンシードベクトルｓｖ０及び現在ブロックの右上隅（例えば、右上サンプル（ｘ１，ｙ１））に関わるアフィンシードベクトルｓｖ１を用いてアフィンベクトルを導出することができる。また、左上隅に関わるアフィンシードベクトルの代わりに、左下隅に関わるアフィンシードベクトルを用いることもできる。又は、右上隅に関わるアフィンシードベクトルの代わりに、左下隅に関わるアフィンシードベクトルを用いることもできる。
【０１２３】
６パラメータアフィン動きモデルにおいて、左上隅、右上隅及び左下隅に関わるアフィンシードベクトルを導出することができる。例えば、図９の（ｂ）に示す例のように、６パラメータアフィン動きモデルを選択し場合、現在ブロックの左上隅（例えば、左上サンプル（ｘ０，ｙ０））に関わるアフィンシードベクトルｓｖ０、現在ブロックの右上隅（例えば、右上サンプル（ｘ１，ｙ１））に関わるアフィンシードベクトルｓｖ１及び現在ブロックの左上隅（例えば、左上サンプル（ｘ２，ｙ２））に関わるアフィンシードベクトルｓｖ２を用いてアフィンベクトルを導出することができる。
【０１２４】
後述する実施例において、４パラメータアフィン動きモデルで、左上制御点及び右上制御点のアフィンシードベクトルをそれぞれ第１アフィンシードベクトル及び第２アフィンシードベクトルと呼ぶ。後述する、第１アフィンシードベクトル及び第２アフィンシードベクトルを用いる実施例において、第１アフィンシードベクトル及び第２アフィンシードベクトルのうちの少なくとも１つを左下制御点のアフィンシードベクトル（第３アフィンシードベクトル）又は右下制御点のアフィンシードベクトル（第４アフィンシードベクトル）に置き換えることができる。
【０１２５】
なお、６パラメータアフィン動きモデルで、左上制御点、右上制御点及び左下制御点のアフィンシードベクトルをそれぞれ第１アフィンシードベクトル、第２アフィンシードベクトル及び第３アフィンシードベクトルと呼ぶ。後述する、第１アフィンシードベクトル、第２アフィンシードベクトル及び第３アフィンシードベクトルを用いる実施例において、第１アフィンシードベクトル、第２アフィンシードベクトル及び第３アフィンシードベクトルのうちの少なくとも１つを右下制御点のアフィンシードベクトル（第４アフィンシードベクトル）に置き換えることができる。
【０１２６】
アフィンシードベクトルを用いて、異なるサブブロックに対して、アフィンベクトルを導出することができる（Ｓ８０３）。ここで、アフィンベクトルは、アフィンシードベクトルに基づいて導出された並進動きベクトルを表す。サブブロックのアフィンベクトルをアフィンサブブロック動きベクトル又はサブブロック動きベクトルと呼ぶことができる。
【０１２７】
図１０は、４パラメータ動きモデルにおけるサブブロックのアフィンベクトルの例を示す図である。
【０１２８】
制御点の位置、サブブロックの位置及びアフィンシードベクトルに基づいてサブブロックのアフィンベクトルを導出することができる。例えば、等式３は、アフィンサブブロックベクトルの導出例を示す。
【数３】
2022502899.tif 000005
【０１２９】
等式３において、（ｘ，ｙ）は、サブブロックの位置を表す。ここで、サブブロックの位置は、サブブロックに含まれる参照サンプルの位置を表す。参照サンプルは、サブブロックの左上隅に位置するサンプルであってもよく、又はそのｘ軸又はｙ軸座標における少なくとも１つの、中心位置に位置するサンプルであってもよい。（ｘ０，ｙ０）は、第１制御点の位置を表し、（ｓｖ０ｘ，ｓｖ０ｙ）は、第１アフィンシードベクトルを表す。なお、（ｘ１，ｙ１）は、第２制御点の位置を表し、（ｓｖ１ｘ，ｓｖ１ｙ）は、第２アフィンシードベクトルを表す。
【０１３０】
第１制御点及び第２制御点はそれぞれ現在ブロックの左上隅及び右上隅に対応する場合、ｘ１−ｘ０を現在ブロックの幅と同じである値と設定することができる。
【０１３１】
続いて、各サブブロックのアフィンベクトルを用いて各サブブロックに対して動き補償予測を実行することができる（Ｓ８０４）。動き補償予測を実行した後、各サブブロックに関わる予測ブロックを生成することができる。サブブロックの予測ブロックを現在ブロックの予測ブロックと設定することができる。
【０１３２】
現在ブロックに隣接する隣接ブロックのアフィンシードベクトルに基づいて、現在ブロックのアフィンシードベクトルを導出することができる。現在ブロックのインター予測モードがアフィンマージモードである場合、マージ候補リストに含まれるマージ候補のアフィンシードベクトルを現在ブロックのアフィンシードベクトルとして決定することができる。なお、現在ブロックのインター予測モードがアフィンマージモードである場合、現在ブロックの参照画像インデックス、特定方向予測フラグ又は双方向加重値のうちの少なくとも１つを含む動き情報をマージ候補と同じであるように設定することができる。
【０１３３】
現在ブロックの隣接ブロックに基づいてマージ候補を導出することができる。前記隣接ブロックは、現在ブロックに空間的に隣接する空間的隣接ブロック及び現在画像と異なる画像に含まれる時間的隣接ブロックのうちの少なくとも１つを含んでもよい。
【０１３４】
図１１は、マージ候補の導出に利用可能な隣接ブロックを示す図である。
【０１３５】
現在ブロックの隣接ブロックは、現在ブロックの左側に隣接する隣接ブロックの（Ａ）、現在ブロックの情報に隣接する隣接ブロックの（Ｂ）、現在ブロックの右上隅に隣接する隣接ブロック（Ｃ）、現在ブロックの左下隅に隣接する隣接ブロック（Ｄ）又は現在ブロックの左上隅に隣接する隣接ブロックのうちの少なくとも１つを含んでもよい。現在ブロックの左上サンプルの座標が（ｘ０，ｙ０）であると、左隣接ブロックＡは、（ｘ０−１，ｙ０＋Ｈ−１）位置でのサンプルを含み、また、上隣接ブロックＢは、（ｘ０＋Ｗ−１，ｙ０−１）位置でのサンプルを含む。ここで、Ｗ及びＨは、それぞれ、現在ブロックの幅及び高さを表す。右上隣接ブロックＣは、（ｘ０＋Ｗ，ｙ０−１）位置でのサンプルを含み、また、左下隣接ブロックＤは、（ｘ０−１，ｙ０＋Ｈ）位置でのサンプルを含む。左上隣接ブロックＥは、（ｘ０−１，ｙ０−１）位置でのサンプルを含む。
【０１３６】
アフィンインター予測モードで、隣接ブロックに対して符号化を行う場合、対応する隣接ブロックのアフィンシードベクトルに基づいて、マージ候補のアフィンシードベクトルを導出することができる。後述において、アフィンインター予測モードで符号化される隣接ブロックは、アフィン隣接ブロックと呼ばれる。
【０１３７】
事前定義された走査順に応じて隣接ブロックを探索することで、現在ブロックのマージ候補を生成することができる。エンコーダ及びデコーダにおいて走査順を事前定義することができる。例えば、Ａ、Ｂ、Ｃ、Ｄ、Ｅの順番に応じて隣接ブロックを探索することができる。なお、探索されたアフィン隣接ブロックから、マージ候補を順に導出することができる。あるいは、現在ブロックのサイズ、形状又はアフィン動きモデルのうちの少なくとも１つに基づいて、走査順を適応的に決定することができる。つまり、異なるサイズ、形状又はアフィン動きモデルのうちの少なくとも１つを有するブロックの走査順は異なる。
【０１３８】
あるいは、現在ブロックの上方に位置するブロックを順に探索し、最初に発見されたアフィン隣接ブロックからマージ候補を導出し、また、現在ブロックの左側に位置するブロックを順に探索し、最初に発見されたアフィン隣接ブロックからマージ候補を導出する。ここで、現在ブロックの上方に位置する複数の隣接ブロックは、隣接ブロックＥ、隣接ブロックＢ又は隣接ブロックＣのうちのすくなくとも１つを含み、現在ブロックの左側に位置する複数のブロックは、ブロックＡ又はブロックＤのうちの少なくとも１つを含んでもよい。この場合、隣接ブロックＥを現在ブロックの左側に位置するブロックと分類してもよい。
【０１３９】
図示されていないが、現在ブロックの時間的隣接ブロックからマージ候補を導出することができる。ここで、時間的隣接ブロックは、コロケーテッド画像における現在ブロックと同一の位置に位置するブロック又はそれに隣接するブロックを含んでもよい。具体的には、アフィンインター予測モードで、現在ブロックの時間的隣接ブロックに対して符号化を行う場合、時間的マージ候補のアフィンシードベクトルに基づいてマージ候補を導出することができる。
【０１４０】
マージ候補を含むマージ候補リストを生成することができ、また、マージ候補リストに含まれるマージ候補のうちの１つのアフィンシードベクトルを現在ブロックのアフィンシードベクトルとして決定することができる。このために、複数のマージ候補のうちのいずれか１つを標識するインデックス情報に対して符号化を行い、ビットストリームを介して伝送することができる。
【０１４１】
もう１つの例として、走査順に応じて複数の隣接ブロックを探索することができ、また、最初に発見されたアフィン隣接ブロックのアフィンシードベクトルから現在ブロックのアフィンシードベクトルを導出することができる。
【０１４２】
上述したように、アフィンマージモードで、隣接ブロックのアフィンシードベクトルを用いて現在ブロックのアフィンシードベクトルを導出することができる。
【０１４３】
現在ブロックのインター予測モードがアフィン動きベクトル予測モードである場合、動きベクトル予測候補リストに含まれる動きベクトル予測候補のアフィンシードベクトルを現在ブロックのアフィンシードベクトル予測値として決定することができる。前記アフィンシードベクトル予測値にアフィンシードベクトル差分値を加算することで、現在ブロックのアフィンシードベクトルを導出することができる。
【０１４４】
現在ブロックの隣接ブロックに基づいて、アフィンシードベクトル予測候補を導出することができる。具体的には、所定の走査順に応じて、現在ブロックの上方に位置する複数の隣接ブロックを探索し、また、最初に発見されたアフィン隣接ブロックから第１アフィンシードベクトル予測候補を導出することができる。なお、所定の走査順に応じて、現在ブロックの左側に位置する複数の隣接ブロックを探索し、また、最初に発見されたアフィン隣接ブロックから第２アフィンシードベクトル予測候補を導出することができる。
【０１４５】
アフィンシードベクトル差分値を決定するための情報に対して符号化を行い、ビットストリームを介して伝送することができる。前記情報は、アフィンシードベクトル差分値のサイズを表すサイズ情報及びアフィンシードベクトル差分値のシンボルを表すシンボル情報を含んでもよい。各制御点に関わるアフィンシードベクトル差分値を同じであるように設定することができる。あるいは、各制御点に対して、アフィンシードベクトル差分値を異なるように設定することができる。
【０１４６】
上述したように、アフィン隣接ブロックのアフィンシードベクトルからマージ候補又はアフィンシードベクトル予測候補のアフィンシードベクトルを導出することができ、また、導出されたマージ候補又はアフィンシードベクトル予測候補のアフィンシードベクトルを用いて、現在ブロックのアフィンシードベクトルを導出することができる。あるいは、所定の走査順に応じて複数のアフィン隣接ブロックを探索した後、最初に発見されたアフィン隣接ブロックのアフィンシードベクトルから、現在ブロックのアフィンシードベクトルを導出することもできる。
【０１４７】
後述において、アフィン隣接ブロックのアフィンシードベクトルから、現在ブロックのアフィンシードベクトル、マージ候補又はアフィンシードベクトル予測候補を導出する方法を詳しく説明する。後述する実施例において、現在ブロックのアフィンシードベクトルの導出は、マージ候補のアフィンシードベクトルの導出又はアフィンシードベクトル予測候補のアフィンシードベクトルの導出と理解されてもよい。
【０１４８】
図１２は、アフィン隣接ブロックのアフィンシードベクトルに基づいて現在ブロックのアフィンシードベクトルを導出することを示す図である。
【０１４９】
アフィン隣接ブロックに、左上制御点に関わる第１アフィンシードベクトルｎｖ０及び右上制御点に関わる第２アフィンシードベクトルｎｖ１が記憶された場合、前記第１アフィンシードベクトル及び第２アフィンシードベクトルに基づいて、アフィン隣接ブロックの左下制御点に関わる第３アフィンシードベクトルｎｖ２を導出することができる。等式４は、第３アフィンシードベクトルの導出例を示す。
【数４】
2022502899.tif 000006
【０１５０】
等式４において、（ｎｖ０ｘ，ｎｖ０ｙ）は、第１アフィンシードベクトルｎｖ０を表し、（ｎｖ１ｘ，ｎｖ１ｙ）は、第２アフィンシードベクトルｎｖ１を表し、また、（ｎｖ２ｘ，ｎｖ２ｙ）は、第３アフィンシードベクトルｎｖ２を表す。なお、（ｘｎ０，ｘｎ０）は、第１制御点の位置を表し、（ｘｎ１，ｘｎ１）は、第２制御点の位置を表し、また、（ｘｎ２，ｘｎ２）は、第３制御点の位置を表す。
【０１５１】
続いて、第１アフィンシードベクトル、第２アフィンシードベクトル及び第３アフィンシードベクトルを用いて現在ブロックのアフィンシードベクトルを導出することができる。等式５は、現在ブロックの第１アフィンシードベクトルｖ０の導出例を示し、また、等式６は、現在ブロックの第２アフィンシードベクトルｖ１の導出例を示す。
【数５】
2022502899.tif 000007
【数６】
2022502899.tif 000008
【０１５２】
等式５及び等式６において、（ｖ０ｘ，ｖ０ｙ）は、現在ブロックの第１アフィンシードベクトルｓｖ０を表し、また、（ｖ１ｘ，ｖ１ｙ）は、現在ブロックの第２アフィンシードベクトルｓｖ１を表す。なお、（ｘ０，ｙ０）は、第１制御点の位置を表し、また、（ｘ１，ｙ１）は、第２制御点の位置を表す。例えば、第１制御点は、現在ブロックの左上隅を表し、また、第２制御点は、現在ブロックの右上隅を表す。
【０１５３】
前記例において、アフィン隣接ブロックに関わる３つのアフィンシードベクトルを用いて現在ブロックの複数のアフィンシードベクトルを導出することを説明した。もう１つの例として、アフィン隣接ブロックの複数のアフィンシードベクトルのうちの２つのみを用いて現在ブロックのアフィンシードベクトルを導出することもできる。
【０１５４】
あるいは、アフィン隣接ブロックに関わる左上隅の第１アフィンシードベクトル、右上隅の第２アフィンシードベクトル又は左下隅の第３アフィンシードベクトルを用いることなく、右下隅に関わる第４アフィンシードベクトルを用いて、現在ブロックの複数のアフィンシードベクトルを導出することができる。
【０１５５】
特に、現在ブロックの上境界が符号化ツリーユニットの上境界と接触しており、且つ現在ブロックの上方に隣接するアフィン隣接ブロック（以下、上方アフィン隣接ブロックと呼ぶ）の上方制御点（例えば、左上隅又は右上隅）のアフィンシードベクトルを使用しようとする場合、これらをメモリに事前記憶する必要がある。これは、ラインバッファの数の増加という問題を引き起こす可能性がある。従って、現在ブロックの上境界が符号化ツリーユニットの上境界と接触した場合、上方アフィン隣接ブロックに対して、上方制御点のアフィンシードベクトルを用いることなく、下方制御点（例えば、左下隅又は右下隅）のアフィンシードベクトルを用いると設定することができる。例えば、上方アフィン隣接ブロックの左下隅に関わる第３アフィンシードベクトル及び右下隅に関わる第４アフィンシードベクトルを用いて、現在ブロックの複数のアフィンシードベクトルを導出することができる。この場合、下隅に関わるアフィンシードベクトルを、上隅に関わるアフィンシードベクトルを複製することで導出することができ、又は、複数の上隅に関わるアフィンシードベクトルから導出することができる。例えば、第１アフィンシードベクトル、第２アフィンシードベクトル又は第３アフィンシードベクトルを右下隅に関わる第４アフィンシードベクトルに変換する／置き換えることができる。
【０１５６】
等式７及び等式８は、隣接アフィンベクトルの左下制御点に関わる第３アフィンシードベクトル及び右下制御点に関わる第４アフィンシードベクトルを用いて現在ブロックの第１アフィンシードベクトル及び第２アフィンシードベクトルを導出する例を示す。
【数７】
2022502899.tif 000009
【数８】
2022502899.tif 000010
【０１５７】
等式７及び８において、（ｘｎ２，ｙｎ２）は、アフィン隣接ブロックの左下制御点の座標を表し、また、（ｘｎ３，ｙｎ３）は、アフィン隣接ブロックの右下制御点の座標を表す。（ｘ０，ｙ０）は、現在ブロックの左上制御点の座標を表し、また、（ｘ１，ｙ１）は、現在ブロックの右上制御点の座標を表す。（ｎｖ２ｘ，ｎｖ２ｙ）は、アフィン隣接ブロックの左下制御点のアフィンシードベクトル（即ち、第３アフィンシードベクトル）を表し、また、（ｎｖ３ｘ，ｎｖ３ｙ）は、アフィン隣接ブロックの右下制御点のアフィンシードベクトル（即ち、第４アフィンシードベクトル）を表す。（ｖ０ｘ，ｖ０ｙ）は、現在ブロックの左上制御点のアフィンシードベクトル（即ち、第１アフィンシードベクトル）を表し、また、（ｖ１ｘ，ｖ１ｙ）は、現在ブロックの右上制御点のアフィンシードベクトル（即ち、第２アフィンシードベクトル）を表す。
【０１５８】
等式７及び等式８に含まれる除算をシフト操作に変更することもできる。シフト操作を、左下制御点と右下制御点との幅（即ち（ｘｎ３−ｘｎ２））から導出された値に基づいて実行することができる。
【０１５９】
上記例において、符号化／復号化されたアフィン隣接ブロックの複数のアフィンシードベクトルに基づいて、現在ブロックの複数のアフィンシードベクトルを導出することができる。このために、符号化／復号化されたアフィン隣接ブロックの複数のアフィンシードベクトルをメモリに記憶することができる。しかしながら、アフィン隣接ブロックに含まれる複数のサブブロックの複数の並進動きベクトル（即ち、複数のアフィンベクトル）に加えて、アフィン隣接ブロックの複数のアフィンシードベクトルを更にメモリに記憶したため、メモリの使用量の増加という問題を招く。このような問題を解消するために、アフィン隣接ブロックの制御点に隣接するサブブロックの動きベクトルを用いて現在ブロックのアフィンシードベクトルを導出することができる。これにより、アフィン隣接ブロックのアフィンシードベクトルに取って代わる。つまり、アフィン隣接ブロックの制御点に隣接するサブブロックの動きベクトルをアフィン隣接ブロックのアフィンシードベクトルと設定することができる。ここで、サブブロックは、エンコーダ及びデコーダで事前定義されたサイズ／形状を有するブロックであり、また、動きベクトルを記憶する基本サイズ／形状を有するブロックであってもよい。例えば、サブブロックは、サイズが４×４である正方形ブロックであってもよい。あるいは、サンプル位置を指定する動きベクトルをアフィン隣接ブロックのアフィンシードベクトルと設定することができる。
【０１６０】
図１３は、サブブロックの動きベクトルをアフィン隣接ブロックのアフィンシードベクトルとする例を示す図である。
【０１６１】
制御点に隣接するサブブロックの動きベクトルを対応する制御点のアフィンシードベクトルとすることができる。例えば、図１３に示す例において、アフィン隣接ブロックの左下隅に隣接するサブブロック（左下サブブロック）の動きベクトル（ｎｖ４ｘ，ｎｖ４ｙ）を左下制御点のアフィンシードベクトル（ｎｖ２ｘ，ｎｖ２ｙ）とすることができ、また、右下隅に隣接するサブブロック（右下サブブロック）の動きベクトル（ｎｖ５ｘ，ｎｖ５ｙ）を右下隅の制御点のアフィンシードベクトル（ｎｖ３ｘ，ｎｖ３ｙ）とすることができる。ここで、左下サブブロックは、隣接アフィンブロックの左下制御点（ｘｎ２，ｙｎ２）に隣接するサンプル（例えば、（ｘｎ２，ｙｎ２−１）位置でのサンプル）を含むサブブロックであり、また、右下サブブロックは、隣接アフィンブロックの右下制御点（ｘｎ３，ｙｎ３）に隣接するサンプル（例えば、（ｘｎ３−１，ｙｎ３−１））位置でのサンプル）を含むブロックである。等式７及び等式８に基づいて現在ブロックのアフィンシードベクトルを導出する場合、アフィン隣接ブロックの第３アフィンシードベクトルの代わりに、左下サブブロックの動きベクトルを用いることができ、また、第４アフィンシードベクトルの代わりに、右下サブブロックの動きベクトルを用いることができる。
【０１６２】
以下、後述する実施例において、アフィン隣接ブロックのアフィンシードベクトルとして用いられるサブブロックをアフィンサブブロックと呼ぶ。
【０１６３】
本発明の一実施例によれば、特定位置でのサンプルに基づいて、アフィンサブブロックを決定することができる。例えば、特定位置でのサンプルを含むサブブロックをアフィンサブブロックとすることもできる。以下、特定位置でのサンプルをアフィン参照サンプルと呼ぶ。なお、左下制御点のアフィンサブブロックを決定するための参照サンプルを左下参照サンプルと呼び、また、右下制御点のアフィンサブブロックを決定するための参照サンプルを右下参照サンプルと呼ぶ。
【０１６４】
左下参照サンプル及び右下参照サンプルは、アフィン隣接ブロックに含まれる複数のサンプルから選ばれてもよい。例えば、左下サブブロックの左上サンプル、左下サンプル、右上サンプル又は左下サンプルのうちの少なくとも１つを左下参照サンプルとし、また、右下サブブロックの左上サンプル、左下サンプル、右上サンプル又は左下サンプルのうちの少なくとも１つを右下参照サンプルとすることができる。従って、左下参照サンプルを含む左下サブブロック及び右下参照サンプルを含む右下サブブロックの動きベクトルを、それぞれ、左下制御点に関わるアフィンシードベクトル及び右下制御点に関わるアフィンシードベクトルとすることができる。
【０１６５】
もう１つの例として、左下参照サンプル又は右下参照サンプルのうちの少なくとも１つをアフィン隣接ブロック外に位置するサンプルとすることができる。これに対して、図１４から図１６を参照しながら詳しく説明する。
【０１６６】
図１４から図１６は、参照サンプルの位置を示す図である。
【０１６７】
例えば、図１４の（ａ）に示す例のように、左下制御点に対して、左下サブブロックの左上サンプルを参照サンプル（ｘｎ４，ｙｎ４）とすることができる。従って、参照サンプル（ｘｎ４，ｙｎ４）を含む左下サブブロックを、左下制御点に関わるアフィンサブブロックとすることができる。
【０１６８】
右下制御点に対して、右下サブブロックの右上サンプルの右側に位置するサンプルを参照サンプル（ｘｎ５，ｙｎ５）とすることができる。従って、参照サンプル（ｘｎ５，ｙｎ５）を含む右下サブブロックの右側に隣接するサブブロックを、右下制御点に関わるアフィンサブブロックとすることができる。
【０１６９】
あるいは、図１４の（ｂ）に示す例のように、左下制御点に対して、左下サブブロックの左上サンプルの左側に位置するサンプルを参照サンプル（ｘｎ４，ｙｎ４）とすることができる。従って、参照サンプル（ｘｎ４，ｙｎ４）を含む左下サブブロックの左側に隣接するサブブロックを左下制御点に関わるアフィンサブブロックとすることができる。
【０１７０】
右下制御点に対して、右下サブブロックの右上サンプルを参照サンプル（ｘｎ５，ｙｎ５）とすることができる。従って、参照サンプル（ｘｎ５，ｙｎ５）を含む右下サブブロックを、右下制御点に関わるアフィンサブブロックとすることができる。
【０１７１】
あるいは、図１５の（ａ）に示す例のように、左下制御点に対して、左下サブブロックの左下サンプルを参照サンプル（ｘｎ４，ｙｎ４）とすることができる。従って、参照サンプル（ｘｎ４，ｙｎ４）を含む左下サブブロックを、左下制御点に関わるアフィンサブブロックとすることができる。
【０１７２】
右下制御点に対して、右下サブブロックの右下サンプルの右側に位置するサンプルを参照サンプル（ｘｎ５，ｙｎ５）とすることができる。従って、参照サンプル（ｘｎ５，ｙｎ５）を含む右下サブブロックの右側に隣接するサブブロックを、右下制御点に関わるアフィンサブブロックとすることができる。
【０１７３】
あるいは、図１５の（ｂ）に示す例のように、左下制御点に対して、左下サブブロックの左下サンプルの左側に位置するサンプルを参照サンプル（ｘｎ４，ｙｎ４）とすることができる。従って、参照サンプル（ｘｎ４，ｙｎ４）を含む左下サブブロックの左側に隣接するサブブロックを、左下制御点に関わるアフィンサブブロックとすることができる。
【０１７４】
右下制御点に対して、右下サブブロックの右下サンプルを参照サンプル（ｘｎ５，ｙｎ５）とすることができる。従って、参照サンプル（ｘｎ５，ｙｎ５）を含む右下サブブロックを、右下制御点に関わるアフィンサブブロックとすることができる。
【０１７５】
あるいは、図１６の（ａ）に示す例のように、左下制御点に対して、左下サブブロックの左上サンプルと左下サンプルとの間に位置するサンプル（例えば、左側中間サンプル）を参照サンプル（ｘｎ４，ｙｎ４）とすることができる。従って、参照サンプル（ｘｎ４，ｙｎ４）を含む左下サブブロックを、左下制御点に関わるアフィンサブブロックとすることができる。
【０１７６】
右下制御点に対して、右下サブブロックの右上サンプルと右下サンプルとの間のサンプル（例えば、右側中間サンプル）の右側に位置するサンプルを参照サンプル（ｘｎ５，ｙｎ５）とすることができる。従って、参照サンプル（ｘｎ５，ｙｎ５）を含む右下サブブロックの右側に隣接するサブブロックを、右下制御点に関わるアフィンサブブロックとすることができる。
【０１７７】
あるいは、図１６の（ｂ）に示す例のように、左下制御点に対して、左下サブブロックの左上サンプルと左下サンプルとの間のサンプルの左側に位置するサンプルを参照サンプル（ｘｎ４，ｙｎ４）とすることができる。従って、参照サンプル（ｘｎ４，ｙｎ４）を含む左下サブブロックの左側に隣接するサブブロックを、左下制御点に関わるアフィンサブブロックとすることができる。
【０１７８】
右下制御点に対して、右下サブブロックの右上サンプルと右下サンプルとの間に位置するサンプルを参照サンプル（ｘｎ５，ｙｎ５）とすることができる。従って、参照サンプル（ｘｎ５，ｙｎ５）を含む右下サブブロックを、右下制御点に関わるアフィンサブブロックとすることができる。
【０１７９】
等式７及び等式８に基づいて現在ブロックの複数のアフィンシードベクトルを導出する場合、アフィン隣接ブロックの第３アフィンシードベクトルの代わりに、左下制御点に関わるアフィンサブブロックの動きベクトルを用いることができ、また、第４アフィンシードベクトルの代わりに、右下制御点に関わるアフィンサブブロックの動きベクトルを用いることができる。なお、左下制御点の位置の代わりに、左下参照サンプルの位置を用いることができ、また、右下制御点の位置の代わりに、右下参照サンプルの位置を用いることができる。
【０１８０】
図１４から図１６における記載と異なっており、参照サンプルに隣接するサンプルを含むサブブロックを、アフィンサブブロックとすることもできる。具体的には、アフィン隣接サブブロック外に位置するサンプルを参照サンプルとすることができ、また、アフィン隣接ブロックに含まれるサブブロックを、アフィンサブブロックとすることができる。例えば、図１４の（ａ）に示す例において、右下サブブロックの右上サンプルの右側に位置するサンプルを参照サンプル（ｘｎ５，ｙｎ５）とすることができ、また、右下サブブロックを、右下隅に関わるアフィンサブブロックとすることができる。あるいは、図１４の（ｂ）に示す例において、左下サブブロックの左上サンプルの左側に位置するサンプルを参照サンプル（ｘｎ４，ｙｎ４）とすることができ、また、左下サブブロックを、左下隅に関わるアフィンサブブロックとすることができる。
【０１８１】
図１５及び図１６に記載の実施例を同様に適用することができる。つまり、図１５の（ａ）又は図１６の（ａ）に示す例において、右下サブブロックの右下サンプル又は右側中間サンプルの右側に位置するサンプルを参照サンプル（ｘｎ５，ｙｎ５）とすることができ、また、右下サブブロックを、右下隅に関わるアフィンサブブロックとすることができる。あるいは、図１５の（ｂ）又は図１６の（ｂ）に示す例において、左下サブブロックの左下サンプル又は左側中間サンプルの左側に位置するサンプルを参照サンプル（ｘｎ４，ｙｎ４）とすることができ、また、左下サブブロックを、左下隅に関わるアフィンサブブロックとすることができる。
【０１８２】
上述した例において、アフィンサブブロックの動きベクトルを用いることでアフィン隣接ブロックのアフィンシードベクトルを導出することができる。このために、符号化／復号化されたブロックについて言えば、サブブロックを単位として動きベクトルを記憶することができる。
【０１８３】
もう１つの例として、アフィン隣接ブロックに最小数のアフィンシードベクトルを記憶した後、記憶された複数のアフィンシードベクトルを用いてアフィンサブブロックの動きベクトルを導出することができる。
【０１８４】
等式９及び等式１０は、アフィン隣接ブロックのアフィンシードベクトルを用いてアフィンサブブロックの動きベクトルを導出する例を示す。
【数９】
2022502899.tif 000011
【数１０】
2022502899.tif 000012
【０１８５】
等式９及び等式１０において、（ｎｖ４ｘ，ｎｖ４ｙ）は、左下制御点に関わるアフィンサブブロックの動きベクトルを表し、また、（ｎｖ５ｘ，ｎｖ５ｙ）は、右下制御点に関わるアフィンサブブロックの動きベクトルを表す。アフィンサブブロックの動きベクトルと制御点のアフィンシードベクトルが同じであるように設定されたため、（ｎｖ４ｘ，ｎｖ４ｙ）の代わりに、左下制御点に関わるアフィンシードベクトル（ｎｖ２ｘ，ｎｖ２ｙ）を用いることができ、又は、（ｎｖ５ｘ，ｎｖ５ｙ）の代わりに、右下制御点に関わるアフィンシードベクトル（ｎｖ３ｘ，ｎｖ３ｙ）を用いることができる。
【０１８６】
（ｘｎ４，ｙｎ４）は、左下サブブロックの参照サンプルの位置を表す。あるいは、該位置の代わりに、左下サブブロックの中心位置又は左下制御点の位置を用いることもできる。（ｘｎ５，ｙｎ５）は、右下サブブロックの参照サンプルの位置を表す。あるいは、該位置の代わりに、右下サブブロックの中心位置又は右下制御点の位置を用いることもできる。
【０１８７】
現在ブロックが符号化ツリーユニットの境界と接触しない場合に等式９及び等式１０を適用することができる。現在ブロックが符号化ツリーユニットの上境界と接触した場合、等式９及び等式１０の適用の代わりに、左下参照サンプルに基づいて決定されたアフィンサブブロックの並進動きベクトルを第３アフィンシードベクトルとし、また、右下参照サンプルに基づいて決定されたアフィンサブブロックの並進動きベクトルを第４アフィンシードベクトルとすることができる。
【０１８８】
等式７及び等式８において、（ｘｎ３−ｘｎ２）は、左下制御点と右下制御点との幅を表す。上述したように、ｘｎ３の代わりに、右下参照サンプルの位置ｘｎ５を用いることができ、また、ｘｎ２の代わりに、左下参照サンプルの位置ｘｎ４を用いることができる。以下、（ｘｎ３−ｘｎ２）又は、前記等式の代わりに参照サンプルの位置を用いることで得られた値（例えば、（ｘｎ５−ｘｎ４））を変数Ｗｓｅｅｄと定義し、前記変数をサブシードベクトル幅と呼ぶ。
【０１８９】
参照サンプルの位置によれば、サブシードベクトル幅が２のべき級数（例えば、２ｎ）ではないことを発生する可能性がある。例えば、左下サブブロックの左下サンプルを左下参照サンプルとして、右下サブブロックの右下サンプルを右下参照サンプルとする場合、サブシードベクトル幅は、２の倍数ではない。上述したように、サブシードベクトル幅が２のべき級数ではない場合、サブシードベクトル幅を２のべき級数に変換することができる。前記変換は、サブシードベクトル幅にオフセットだけ加算／減算すること、又は、参照サンプルの位置の代わりに前記参照サンプルに隣接するサンプルの位置を用いることを含んでもよい。例えば、左下参照サンプルと右下参照サンプルとの幅に１を加算することで、変換されたサブシードベクトル幅を導出することができる。あるいは、右下参照サンプルの右側に隣接する隣接参照サンプルと左下参照サンプルとの幅を、変換されたサブシードベクトル幅とすることができる。続いて、変換されたサブシードベクトル幅を等式７及び等式８に代入することで、現在ブロックのアフィンシードベクトルを導出することができる。
【０１９０】
等式７及び等式８に含まれる除算をシフト操作に変更することもできる。シフト操作を、変換されたサブシードベクトル幅（即ち、２のべき級数として表される値）から導出された値に基づいて実行することができる。
【０１９１】
アフィンサブブロックを決定するための参照サンプルがアフィン隣接ブロックに属しない場合、アフィン隣接ブロックに含まれる複数のサンプルのうちの、参照サンプルに隣接するサンプルに基づいて、アフィン隣接ブロックのアフィンシードベクトルを導出することができる。具体的には、アフィン隣接ブロックにおける参照サンプルに隣接するサンプル（以下、隣接参照サンプルと呼ばれる）を含むサブブロックの並進動きベクトルを、アフィン隣接ブロックのアフィンシードベクトルとすることができる。上述したように、隣接参照サンプルを用いてアフィンシードベクトルを導出する方法を、修正されたアフィンマージベクトル導出方法と定義することができる。
【０１９２】
図１７は、修正したアフィンマージベクトル導出方法の適用例を示す図である。
【０１９３】
アフィン隣接ブロックＥの右下参照サンプル（ｘｎ５，ｙｎ５）がアフィン隣接ブロックに属しない場合、アフィン隣接ブロックに含まれるサンプルのうちの、右下参照サンプルの左側に隣接するサンプル（ｘｎ５−１，ｙｎ５）に基づいて、アフィンシードベクトルを導出することができる。具体的には、隣接参照サンプル（ｘｎ５−１，ｙｎ５）を含むサブブロックの並進動きベクトルを、右下制御点のアフィンシードベクトルとすることができる。
【０１９４】
図１７に示す例において、右下サブブロックの右上サンプルの右側に隣接するサンプルを、右下参照サンプルとして示す。右下サブブロックの右下サンプルの右側に隣接するサンプル又は右下サブブロックの右側中間サンプルの右側に隣接するサンプルを右下参照サンプルとした場合、隣接参照サンプルの左側に隣接するサンプルに基づいて、アフィンシードベクトルを導出することができる。
【０１９５】
なお、左下参照サンプルがアフィン隣接ブロックに属しない場合、記述された実施例に応じて、左下参照サンプルの右側に隣接するサンプルに基づいて、アフィンシードベクトルを導出することもできる。
【０１９６】
異なる方式で参照サンプルの位置及びアフィンシードベクトル導出用サブブロックを設定することで、サブシードベクトル幅を２のべき級数とすることができる。
【０１９７】
現在ブロックの周辺の、アフィンインターモードで符号化されていない隣接ブロックを用いることで、現在ブロックのマージ候補、アフィンシードベクトル予測候補又はアフィンシードベクトルを導出することができる。具体的には、アフィンインターモードで符号化されていないブロックを組み合わせ、また、その組み合わせをマージ候補又はアフィンシードベクトル予測候補とすることができる。例えば、現在ブロックの左上隅に隣接する隣接ブロックのうちのいずれか１つの隣接ブロックの動きベクトル、現在ブロックの右上隅に隣接する隣接ブロックのうちのいずれか１つの隣接ブロックの動きベクトル、及び現在ブロックの左下隅に隣接する隣接ブロックのうちのいずれか１つの隣接ブロックの動きベクトルのうちの少なくとも１つの組み合わせを、マージ候補又はアフィンシードベクトル予測候補とすることができる。この場合、左上隅に隣接する隣接ブロックの動きベクトル、右上隅に隣接する隣接ブロックの動きベクトル及び左下隅に隣接する隣接ブロックの動きベクトルをそれぞれ、左上制御点の第１アフィンシードベクトル、右上制御点の第２アフィンシードベクトル及び左下制御点の第３アフィンシードベクトルとすることができる。
【０１９８】
あるいは、上記修正したアフィンマージベクトル導出方法において、アフィンインターモードで符号化されていない隣接ブロックを用いて、現在ブロックのマージ候補、アフィンシードベクトル予測候補又はアフィンシードベクトルを導出することができる。下記において、アフィンインターモードで符号化されていない隣接ブロックは、非アフィン隣接ブロックと呼ばれる。
【０１９９】
図１８は、非アフィン隣接ブロックに基づいて現在ブロックのアフィンシードベクトルを導出する例を示す図である。
【０２００】
図１８に示す例において、現在ブロックに隣接する全ての隣接ブロックがいずれも非アフィン隣接ブロックであると仮定する。
【０２０１】
現在ブロックに隣接する隣接ブロックのうちの非アフィン隣接ブロックＡから現在ブロックのアフィンシードベクトルを導出しようとする場合、Ａの左下参照サンプル及び右下参照サンプルを設定することができる。例えば、ブロックＡの左下サンプルの左側に隣接するサンプルを左下参照サンプルとすることができ、また、ブロックＡの右下サンプルを右下参照サンプルとすることができる。左下参照サンプルがブロックＡの外にあるため、左下参照サンプルの右側に隣接するサンプルを含むサブブロックの動きベクトルをブロックＡの第３アフィンシードベクトルとすることができる。なお、右下参照サンプルを含むサブブロックの動きベクトルをブロックＡの第４アフィンシードベクトルとすることができる。続いて、等式９及び１０に基づいて、ブロックＡから、現在ブロックの第１アフィンシードベクトル及び第２アフィンシードベクトルを導出することができる。
【０２０２】
サブブロックを単位として非アフィン隣接ブロックに対する動き補償予測を実行する場合のみ、非アフィン隣接ブロックからアフィンシードベクトルを導出する方法を用いることができる。ここで、サブブロックをとして動き補償予測を実行するための予測技術は、ＳＴＭＶＰ、ＡＴＭＶＰ、双方向オプティカルフロー（ＢＩＯ）、オーバラップブロック動き補償（ＯＢＭＣ）及びデコーダ側動きベクトル修正（ＤＭＶＲ）のうちの少なくとも１つを含んでもよい。
【０２０３】
上記実施例において、現在ブロックの上境界が符号化ツリーユニットの境界と接触した場合、現在ブロックの上方に位置するアフィン隣接ブロックの左下制御点の第３アフィンシードベクトル及び右下制御点の第４アフィンシードベクトルを用いて、現在ブロックのマージ候補、アフィンシードベクトル予測候補又はアフィンシードベクトルを導出することを説明した。
【０２０４】
もう１つの例として、現在ブロックの上境界が符号化ツリーユニットの境界と接触しており、且つ現在ブロックの上方に位置する隣接ブロックが現在ブロックの符号化ツリーユニットと異なる符号化ツリーユニットに属すると、前記隣接ブロックを用いることなく、現在ブロックが属する符号化ツリーユニットに含まれるこれらのブロックのうちの、前記隣接ブロックに最も近接する隣接ブロックを用いて、現在ブロックのマージ候補、アフィンシードベクトル予測候補又はアフィンシードベクトルを導出する。
【０２０５】
図１９に示す例において、現在ブロックが符号化ツリーユニットの上境界と接触しており、且つ現在ブロックの上方に位置するブロックＢ、Ｃ及びＥが現在ブロックの符号化ツリーユニットと異なる符号化ツリーユニットに属することを示す。従って、ブロックＥの代わりに、現在ブロックが属する符号化ツリーユニットに含まれるこれらのブロックのうちの、ブロックＥに隣接するブロックＦを用いて、現在ブロックのアフィンシードベクトルを導出する。
【０２０６】
現在ブロックの動き補償予測のために、複数のブロックのアフィンシードベクトルを用いることができる。例えば、マージ候補リストから複数のマージ候補を選択し、また、選択されたマージ候補のアフィンシードベクトルに基づいて、現在ブロックのアフィンシードベクトル又はサブブロックベクトルを導出することができる。複数のブロックのアフィンシードベクトルを用いて現在ブロックに対して符号化／復号化を行うことは、マルチアフィンマージ符号化方法と呼ばれてもよい。
【０２０７】
現在ブロックに対してマルチアフィンマージ符号化方法を適用したかどうかを示す情報に対して符号化を行い、ビットストリームを介して伝送することができる。あるいは、現在ブロックに隣接する隣接ブロックのうちのアフィン隣接ブロックの数、マージ候補リストに含まれるマージ候補の数、及び現在ブロックのアフィン動きモデルのうちの少なくとも１つに基づいて、現在ブロックに対してマルチアフィンマージ符号化方法を適用したかどうかを決定することができる。
【０２０８】
図２０及び図２１は、複数のマージ候補を用いた動き補償予測方法を示すフローチャートである。
【０２０９】
図２０は、複数のマージ候補のアフィンシードベクトルを用いることで現在ブロックのアフィンシードベクトルを導出する例を示す図である。図２１は、複数のマージ候補のアフィンシードベクトルを用いることで各サブブロックの動きベクトルを導出する例を示す図である。
【０２１０】
２つのマージ候補のアフィンシードベクトルの和、差、平均値、又は加重加算に基づいて、現在ブロックのアフィンシードベクトルを生成することができる。
【０２１１】
下記等式１１及び１２は、マージ候補のアフィンシードベクトルを加算することで現在ブロックのアフィンシードベクトルを導出する例を示す。
【数１１】
2022502899.tif 000013
【数１２】
2022502899.tif 000014
【０２１２】
等式１１及び１２において、ｓｖ４は、現在ブロックの第１アフィンシードベクトルを表し、ｓｖ０は、第１マージ候補の第１アフィンシードベクトルを表し、また、ｓｖ２は、第２マージ候補の第１アフィンシードベクトルを表す。なお、ｓｖ５は、現在ブロックの第２アフィンシードベクトルを表し、ｓｖ１は、第１マージ候補の第２アフィンシードベクトルを表し、ｓｖ３は、第２マージ候補の第２アフィンシードベクトルを表す。
【０２１３】
なお、下記等式１３及び１４は、マージ候補のアフィンシードベクトルの加重加算により、現在ブロックのアフィンシードベクトルを導出する例を示す。
【数１３】
2022502899.tif 000015
【数１４】
2022502899.tif 000016
【０２１４】
もう１つの例として、第１マージ候補のアフィンシードベクトル及び第２マージ候補のアフィンシードベクトルに基づいて、現在ブロックにおける各サブブロックに対して、第１サブブロック動きベクトル及び第２サブブロック動きベクトルを生成することができる。続いて、第１サブブロック動きベクトル及び第２サブブロック動きベクトルの和、差、平均値又は加重加算に基づいて、最終的サブブロック動きベクトルを生成することができる。
【０２１５】
下記等式１５は、第１サブブロック動きベクトルと第２サブブロック動きベクトルを加算することで最終的サブブロック動きベクトルを得る例を示す。
【数１５】
2022502899.tif 000017
【０２１６】
等式１５において、Ｖ０は、第１サブブロック動きベクトルを表し、Ｖ１は、第２サブブロック動きベクトルを表し、また、Ｖ２は、最終的サブブロック動きベクトルを表す。
【０２１７】
なお、下記等式１６は、第１サブブロック動きベクトル及び第２サブブロック動きベクトルの加重加算により、最終的サブブロック動きベクトルを導出する例を示す。
【数１６】
2022502899.tif 000018
【０２１８】
イントラ予測は、現在ブロックの周辺の符号化／復号化された再構成サンプルを用いて現在ブロックを予測することである。この場合、現在ブロックのイントラ予測は、インループフィルタを適用する前の再構成サンプルを用いることができる。
【０２１９】
イントラ予測技術は、マトリックス（Ｍａｔｒｉｘ）に基づくイントラ予測及び周辺の再構成サンプルとの方向性を考慮した一般的なイントラ予測を含む。ビットストリームを介して、信号で、現在ブロックのイントラ予測技術を示す情報を送信することができる。前記情報は、１ビットフラグであってもよい。あるいは、現在ブロックの位置、サイズ、形状又は隣接ブロックのイントラ予測技術のうちの少なくとも１つに基づいて、現在ブロックのイントラ予測技術を決定することができる。例えば、現在ブロックが画像の境界に跨って存在する場合、現在ブロックを、マトリックスに基づくイントラ予測を適用しないように設定することができる。
【０２２０】
マトリックスに基づくイントラ予測は、エンコーダ及びデコーダに記憶されたマトリックスと現在ブロックの周辺の再構成サンプルとのマトリックス乗算に基づいて現在ブロックの予測ブロックを得る方法である。ビットストリームを介して、信号で、記憶された複数のマトリックスのうちのいずれか１つを示すための情報を送信することができる。デコーダは、前記情報及び現在ブロックのサイズに基づいて、現在ブロックのイントラ予測に用いられるマトリックスを決定することができる。
【０２２１】
一般的なイントラ予測は、非角度イントラ予測モード又は角度イントラ予測モードに基づいて現在ブロックの予測ブロックを得る方法である。以下、図面を参照しながら、一般的なイントラ予測に基づいてイントラ予測を実行するプロセスを詳しく説明する。
【０２２２】
図２２は、本発明の実施例によるイントラ予測方法を示すフローチャートである。
【０２２３】
現在ブロックの参照サンプルラインを決定することができる（Ｓ２２０１）。参照サンプルラインは、現在ブロックの上方及び／又は左側からずれたＫ番目のラインに含まれる参照サンプルの集合である。現在ブロックの周辺の符号化／復号化された再構成サンプルから、参照サンプルを導出することができる。
【０２２４】
ビットストリームを介して、信号で、複数の参照サンプルラインのうちの現在ブロックの参照サンプルラインを標識するインデックス情報を送信することができる。複数の参照サンプルラインは、現在ブロックの上方及び／又は左側に位置する第１ライン、第２ライン、第３ライン又は第４ラインのうちの少なくとも１つに含まれてもよい。表１は、各参照サンプルラインに割り当てられたインデックスを示す。表１において、第１ライン、第２ライン及び第４ラインが参照サンプルライン候補として用いられると仮定する。
【表１】
2022502899.tif 000019
【０２２５】
現在ブロックの位置、サイズ、形状又は隣接ブロックの予測符号化モードのうちの少なくとも１つに基づいて、現在ブロックの参照サンプルラインを決定することもできる。例えば、現在ブロックが画像、タイル、スライス又は符号化ツリーユニットの境界と接した場合、第１参照サンプルラインを、現在ブロックの参照サンプルラインとして決定することができる。
【０２２６】
参照サンプルラインは、現在ブロックの上方に位置する上方参照サンプル及び現在ブロックの左側に位置する左側参照サンプルを含んでもよい。現在ブロックの周辺の再構成サンプルから、上方参照サンプル及び左側参照サンプルを導出することができる。前記再構成サンプルは、インループフィルタを適用する前の状態であってもよい。
【０２２７】
図２３は、各参照サンプルラインに含まれる参照サンプルを示す図である。
【０２２８】
現在ブロックのイントラ予測モードによれば、参照サンプルラインに属する参照サンプルのうちの少なくとも１つを利用して予測サンプルを取得することができる。
【０２２９】
次に、現在ブロックのイントラ予測モードを決定することができる（Ｓ２２０２）。現在ブロックのイントラ予測モードについて言えば、非角度イントラ予測モード又は角度イントラ予測モードのうちの少なくとも１つを現在ブロックのイントラ予測モードとして決定することができる。非角度イントラ予測モードは、平面（Ｐｌａｎｅｒ）及びＤＣを含み、また、角度イントラ予測モードは、左下対角線方向から右上対角線への３３個又は６５個のモードを含む。
【０２３０】
図２４は、イントラ予測モードを示す図である。
【０２３１】
図２４（ａ）は、３５個のイントラ予測モードを示し、また、図２４（ｂ）は、６７個のイントラ予測モードを示す。
【０２３２】
図２４に示した数より多いか又は少ない数のイントラ予測モードを定義することもできる。
【０２３３】
現在ブロックに隣接する隣接ブロックのイントラ予測モードに基づいて、最確モード（ＭＰＭ：Ｍｏｓｔ  Ｐｒｏｂａｂｌｅ  Ｍｏｄｅ）を設定することができる。ここで、隣接ブロックは、現在ブロックの左側に隣接する左隣接ブロック及び現在ブロックの上方に隣接する上隣接ブロックを含んでもよい。現在ブロックの左上サンプルの座標が（０，０）である場合、左隣接ブロックは、（−１，０）、（−１，Ｈ−１）又は（−１，（Ｈ−１）／２）位置でのサンプルを含んでもよい。ここで、Ｈは、現在ブロックの高さを表す。上隣接ブロックは、（０，−１）、（Ｗ−１，−１）又は（（Ｗ−１）／２，−１）位置でのサンプルを含んでもよい。ここで、Ｗは、現在ブロックの幅を表す。
【０２３４】
一般的なイントラ予測により隣接ブロックに対して符号化を行う場合、隣接ブロックのイントラ予測モードに基づいてＭＰＭを導出することができる。具体的には、左隣接ブロックのイントラ予測モードを変数ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとし、上方隣接ブロックのイントラ予測モードを変数ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢとすることができる。
【０２３５】
この場合、隣接ブロックが利用不可能である時（例えば、隣接ブロックが符号化／復号化されていないか又は隣接ブロックの位置が画像の境界からずれた時）、隣接ブロックがマトリックスに基づくイントラ予測により符号化を行う場合、隣接ブロックがインター予測により符号化を行う場合又は隣接ブロックが現在ブロックと異なる符号化ツリーユニットに含まれる場合、隣接ブロックのイントラ予測モードに基づいて導出された変数ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸ（ここで、Ｘは、Ａ又はＢである）を、デフォルトモードとすることができる。ここで、デフォルトモードは、平面モード、ＤＣモード、垂直方向モード又は水平方向モードのうちの少なくとも１つを含んでもよい。
【０２３６】
あるいは、マトリックスに基づくイントラ予測により隣接ブロックを符号化する場合、マトリックスのいずれか１つを指定するためのインデックス値に対応するイントラ予測モードをｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸとすることができる。このために、マトリックスを指定するためのインデックス値とイントラ予測モードとのマッピング関係を示すルックアップテーブルをエンコーダ及びデコーダに予め記憶することができる。
【０２３７】
変数ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ及び変数ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢに基づいてＭＰＭを導出することができる。エンコーダ及びデコーダにおいて、ＭＰＭリストに含まれるＭＰＭの数を事前定義することができる。例えば、ＭＰＭの数は、３つ、４つ、５つ又は６つであってもよい。あるいは、ビットストリームを介して、信号で、ＭＰＭの数を表す情報を送信することができる。あるいは、隣接ブロックの予測符号化モード、現在ブロックのサイズ又は形状のうちの少なくとも１つに基づいて、ＭＰＭの数を決定することができる。
【０２３８】
後述する実施例において、ＭＰＭの数が３つであると仮定し、該３つのＭＰＭは、ＭＰＭ［０］、ＭＰＭ［１］及びＭＰＭ［２］と呼ばれる。ＭＰＭの数が３つより多い場合、ＭＰＭは、後述する実施例で説明される３つのＭＰＭを含んでもよい。
【０２３９】
ｃａｎｄＩｎｔｒａＰｒｅｄＡがｃａｎｄＩｎｔｒａＰｒｅｄＢと同じであり、且つｃａｎｄＩｎｔｒａＰｒｅｄＡが平面モード又はＤＣモードである場合、ＭＰＭ［０］及びＭＰＭ［１］をそれぞれ、平面モード及びＤＣモードとすることができる。ＭＰＭ［２］を垂直イントラ予測モード、水平イントラ予測モード又は対角線イントラ予測モードとすることができる。対角線イントラ予測モードは、左下対角線イントラ予測モード、左上イントラ予測モード又は右上イントラ予測モードであってもよい。
【０２４０】
ｃａｎｄＩｎｔｒａＰｒｅｄＡがｃａｎｄＩｎｔｒａＰｒｅｄＢと同じであり、且つｃａｎｄＩｎｔｒａＰｒｅｄＡがイントラ予測モードである場合、ＭＰＭ［０］をｃａｎｄＩｎｔｒａＰｒｅｄＡと同じであるように設定することができる。ＭＰＭ［１］及びＭＰＭ［２］をｃａｎｄＩｎｔｒａＰｒｅｄＡと類似したイントラ予測モードと設定することができる。ｃａｎｄＩｎｔｒａＰｒｅｄＡと類似したイントラ予測モードは、ｃａｎｄＩｎｔｒａＰｒｅｄＡとのインデックス差分値が±１又は±２であるイントラ予測モードであってもよい。モジュロ演算（％）及びオフセットを用いて、ｃａｎｄＩｎｔｒａＰｒｅｄＡと類似したイントラ予測モードを導出することができる。
【０２４１】
ｃａｎｄＩｎｔｒａＰｒｅｄＡがｃａｎｄＩｎｔｒａＰｒｅｄＢと異なる場合、ＭＰＭ［０］とｃａｎｄＩｎｔｒａＰｒｅｄＡを同じであるように設定し、ＭＰＭ［１］とｃａｎｄＩｎｔｒａＰｒｅｄＢを同じであるように設定することができる。この場合、ｃａｎｄＩｎｔｒａＰｒｅｄＡ及びｃａｎｄＩｎｔｒａＰｒｅｄＢがいずれも非角度イントラ予測モードである場合、ＭＰＭ［２］を垂直イントラ予測モード、水平イントラ予測モード又は対角線イントラ予測モードとすることができる。あるいは、ｃａｎｄＩｎｔｒａＰｒｅｄＡ及びｃａｎｄＩｎｔｒａＰｒｅｄＢのうちの少なくとも１つが角度イントラ予測モードである場合、ＭＰＭ［２］を平面、ＤＣ、ｃａｎｄＩｎｔｒａＰｒｅｄＡ又はｃａｎｄＩｎｔｒａＰｒｅｄＢのうちの大きい方の値に対してオフセットを加算するか又は減算することで導出されたイントラ予測モードとすることができる。ここで、オフセットは、１又は２であってもよい。
【０２４２】
複数のＭＰＭを含むＭＰＭリストを生成することができ、また、ビットストリームを介して、信号で、現在ブロックのイントラ予測モードと同じであるＭＰＭがＭＰＭリストに含まれるかどうかを表す情報を送信することができる。前記情報は、１ビットフラグであり、ＭＰＭフラグと呼ばれてもよい。ＭＰＭフラグは、現在ブロックと同じであるＭＰＭがＭＰＭリストに含まれることを示す場合、ビットストリームを介して、信号で、ＭＰＭの１つを標識するインデックス情報を送信することができる。前記インデックス情報により指定されたＭＰＭを現在ブロックのイントラ予測モードとすることができる。ＭＰＭフラグは、現在ブロックと同じであるＭＰＭがＭＰＭリストに含まれないことを示す場合、ビットストリームを介して、信号で、ＭＰＭ以外の残差イントラ予測モードのうちのいずれか１つを指示する残差モード情報を送信することができる。残差モード情報は、ＭＰＭ以外の残差イントラ予測モードにインデックスを再び割り当てる場合に現在ブロックのイントラ予測モードに対応するインデックス値を表す。デコーダは、昇順に応じてＭＰＭを配列し、また、残差モード情報とＭＰＭを比較することで、現在ブロックのイントラ予測モードを決定することができる。例えば、残差モード情報がＭＰＭと同じであるか又はより小さい場合、残差モード情報に１を加算することで現在ブロックのイントラ予測モードを導出することができる。
【０２４３】
デフォルトモードをＭＰＭとする操作の代わりに、ビットストリームを介して、信号で、現在ブロックのイントラ予測モードがデフォルトモードであるかどうかを表す情報を送信することができる。前記情報は、１ビットフラグであり、また、前記フラグは、デフォルトモードフラグと呼ばれてもよい。ＭＰＭフラグは、現在ブロックと同じであるＭＰＭがＭＰＭリストに含まれることを示す場合のみ、信号で、デフォルトモードフラグを送信することができる。上述したように、デフォルトモードは、平面、ＤＣ、垂直方向モード又は水平方向モードのうちの少なくとも１つを含んでもよい。例えば、平面をデフォルトモードとした場合、デフォルトモードフラグは、現在ブロックのイントラ予測モードが平面であるかどうかを示すことができる。デフォルトモードフラグは、現在ブロックのイントラ予測モードがデフォルトモードではないことを示す場合、インデックス情報により示されるＭＰＭの１つを現在ブロックのイントラ予測モードとすることができる。
【０２４４】
複数のイントラ予測モードをデフォルトモードとした場合、更に、信号で、デフォルトモードのうちのいずれか１つを示すインデックス情報を送信することができる。現在ブロックのイントラ予測モードを前記インデックス情報により示されるデフォルトモードとすることができる。
【０２４５】
現在ブロックの参照サンプルラインのインデックスが０ではない場合、デフォルトモードを使用しないと設定する。従って、参照サンプルラインのインデックスが０ではない場合、信号でデフォルトモードフラグを送信することなく、また、前記デフォルトモードフラグの値を事前定義された値（即ち、偽である）と設定することができる。
【０２４６】
現在ブロックのイントラ予測モードが決定された場合、決定されたイントラ予測モードに基づいて、現在ブロックに関わる予測サンプルを得ることができる（Ｓ２２０３）。
【０２４７】
ＤＣモードを選択した場合、参照サンプルの平均値に基づいて、現在ブロックに関わる予測サンプルを生成することができる。具体的には、参照サンプルの平均値に基づいて、予測ブロックの全てのサンプルの値を生成することができる。現在ブロックの上方に位置する上方参照サンプル及び現在ブロックの左側に位置する左側参照サンプルのうちの少なくとも１つを用いて平均値を導出することができる。
【０２４８】
平均値を導出するための参照サンプルの数又は範囲は、現在ブロックの形状によって異なる可能性がある。例えば、現在ブロックは、幅が高さより大きい非正方形ブロックである場合、上方参照サンプルのみを用いて平均値を算出することができる。一方で、現在ブロックは、幅が高さより小さい非正方形ブロックである場合、左側参照サンプルのみを用いて平均値を算出することができる。つまり、現在ブロックの幅と高さが異なる場合、長い長さに隣接する参照サンプルのみを用いて平均値を算出することができる。あるいは、現在ブロックの幅と高さとの比に基づいて、上方参照サンプルのみを用いて平均値を算出するか又は左側参照サンプルのみを用いて平均値を算出するかを決定することができる。
【０２４９】
平面モードを選択した場合、水平方向予測サンプル及び垂直方向予測サンプルを用いて予測サンプルを得ることができる。ここで、予測サンプルと同じである水平線に位置する左側参照サンプル及び右側参照サンプルに基づいて水平方向予測サンプルを得て、また、予測サンプルと同じである垂直線に位置する上方参照サンプル及び下方参照サンプルに基づいて垂直方向予測サンプルを得る。ここで、現在ブロックの右上隅に隣接する参照サンプルを複製することで右側参照サンプルを生成することができ、現在ブロックの左下隅に隣接する参照サンプルを複製することで下方参照サンプルを生成することができる。左側参照サンプル及び右側参照サンプルの加重加算に基づいて、水平方向予測サンプルを得ることができ、また、上方参照サンプル及び下方参照サンプルの加重加算に基づいて、垂直方向予測サンプルを得ることができる。この場合、予測サンプルの位置に基づいて、各参照サンプルに付与された加重値を決定することができる。水平方向予測サンプル及び垂直方向予測サンプルの平均演算又は加重加算に基づいて、予測サンプルを得ることができる。加重加算を実行する場合、予測サンプルの位置に基づいて、水平方向予測サンプル及び垂直方向予測サンプルに付与された加重値を決定することができる。
【０２５０】
角度予測モードを選択した場合、選択された角度予測モードの予測方向（又は予測角度）を表すパラメータを決定することができる。下記表２に、各イントラ予測モードのイントラ予測パラメータｉｎｔｒａＰｒｅｄＡｎｇを示す。
【表２】
2022502899.tif 000020
【０２５１】
表２は、３５個のイントラ予測モードを定義した場合に２から３４のうちのいずれか１つのインデックスを有する各イントラ予測モードのイントラ方向パラメータを示す。３３種を越える角度イントラ予測モードを定義した場合、表２は、各角度イントラ予測モードのイントラ方向パラメータを更に詳しく設定する。
【０２５２】
現在ブロックの上方参照サンプル及び左側参照サンプルを一行に配列した後、イントラ方向パラメータの値に基づいて予測サンプルを得ることができる。この場合、イントラ方向パラメータの値が負数である場合、左側参照サンプル及び上方参照サンプルを一行に配列することができる。
【０２５３】
図２５及び図２６は、参照サンプルを一行に配列する一次元配列例を示す図である。
【０２５４】
図２５は、垂直方向で参照サンプルを配列する垂直方向一次元アレイの例を示し、また、図２６は、水平方向で参照サンプルを配列する水平方向一次元アレイの例を示す。３５個のイントラ予測モードを定義したと決定して、図２５及び２６の実施例を説明する。
【０２５５】
イントラ予測モードインデックスが１１から１８のうちのいずれか１つである場合、上方参照サンプルを反時計回りに回転する水平方向一次元アレイを適用することができ、また、イントラ予測モードインデックスが１９から２５のうちのいずれか１つである場合、左側参照サンプルを時計回りに回転する垂直方向一次元アレイを適用することができる。参照サンプルを一行に配列した場合、イントラ予測モード角度を考慮することができる。
【０２５６】
イントラ方向パラメータに基づいて、参照サンプル決定パラメータを決定することができる。参照サンプル決定パラメータは、参照サンプルを指定するための参照サンプルインデックス及び参照サンプルに適用される加重値を決定するための加重値パラメータを含んでもよい。
【０２５７】
参照サンプルインデックスｉＩｄｘ及び加重値パラメータｉｆａｃｔはそれぞれ、下記等式１７及び等式１８により得られる。
【数１７】
2022502899.tif 000021
【数１８】
2022502899.tif 000022
【０２５８】
等式１７及び１８において、Ｐａｎｇは、イントラ方向パラメータを表す。参照サンプルインデックスｉＩｄｘにより指定された参照サンプルは、整数画素（Ｉｎｔｅｇｅｒ  ｐｅｌ）に相当する。
【０２５９】
予測サンプルを導出するために、１つ以上の参照サンプルを指定することができる。具体的には、予測モードの勾配を考慮して、予測サンプルを導出するための参照サンプルの位置を指定することができる。例えば、参照サンプルインデックスｉＩｄｘを用いて、予測サンプルを導出するための参照サンプルを指定することができる。
【０２６０】
この場合、イントラ予測モードの勾配が１つの参照サンプルで表されない場合、複数の参照サンプルに対して補間を行うことで予測サンプルを生成することができる。例えば、イントラ予測モードの勾配は、予測サンプルと第１参照サンプルとの勾配と、予測サンプルと第２参照サンプルとの勾配と、の間の値である場合、第１参照サンプル及び第２参照サンプルに対して補間を行うことで予測サンプルを得ることができる。つまり、イントラ予測角度に追従した角度線（Ａｎｇｕｌａｒ  Ｌｉｎｅ）は、整数画素に位置する参照サンプルを経過しない場合、前記角度線が経過した位置の左右又は上下に隣接する参照サンプルに対して補間を行うことで予測サンプルを得ることができる。
【０２６１】
下記等式１９は、参照サンプルに基づいて予測サンプルを得る例を示す。
【数１９】
2022502899.tif 000023
【０２６２】
等式１９において、Ｐは、予測サンプルを表し、また、Ｒｅｆ＿１Ｄは、一次元アレイの参照サンプルのうちのいずれか１つを表す。この場合、予測サンプルの位置（ｘ，ｙ）及び参照サンプルインデックスｉＩｄｘに基づいて、参照サンプルの位置を決定することができる。
【０２６３】
イントラ予測モードの勾配は、１つの参照サンプルとして表される場合、加重値パラメータｉｆａｃｔを０とすることができる。従って、等式１９を下記等式２０のように簡略化することができる。
【数２０】
2022502899.tif 000024
【０２６４】
複数のイントラ予測モードに基づいて現在ブロックに対してイントラ予測を実行することもできる。例えば、異なる予測サンプルに対してイントラ予測モードを導出し、また、各予測サンプルに割り当てられたイントラ予測モードに基づいて予測サンプルを導出することができる。
【０２６５】
あるいは、異なる領域に対してイントラ予測モードを導出することができ、また、各領域に割り当てられたイントラ予測モードに基づいて各領域に対してイントラ予測を実行することができる。ここで、前記領域は、少なくとも１つのサンプルを含んでもよい。現在ブロックのサイズ、形状又はイントラ予測モードのうちの少なくとも１つに基づいて、前記領域のサイズ又は形状のうちの少なくとも１つを適応的に決定することができる。あるいは、エンコーダ及びデコーダにおいて、現在ブロックのサイズ又は形状に関わらず、領域のサイズ又は形状のうちの少なくとも１つを事前定義することができる。
【０２６６】
あるいは、それぞれ、複数のイントラ予測に基づいてイントラ予測を実行することができ、また、複数回のイントラ予測により得られた複数の予測サンプルの平均演算又は加重加算に基づいて、最終的予測サンプルを導出することができる。例えば、第１イントラ予測モードに基づいてイントラ予測を実行することで、第１予測サンプルを得ることができ、また、第２イントラ予測モードに基づいてイントラ予測を実行することで、第２予測サンプルを得ることができる。続いて、第１予測サンプルと第２予測サンプルとの平均演算又は加重加算に基づいて、最終的予測サンプルを得ることができる。この場合、第１イントラ予測モードが非角度／角度予測モードであるかどうか、第２イントラ予測モードが非角度／角度予測モードであるかどうか又は隣接ブロックのイントラ予測モードのうちの少なくとも１つを考慮することで、第１予測サンプル及び第２予測サンプルにそれぞれ割り当てられた加重値を決定することができる。
【０２６７】
複数のイントラ予測モードは、非角度イントラ予測モードと角度予測モードの組み合わせ、角度予測モードの組み合わせ又は非角度予測モードの組み合わせであってもよい。
【０２６８】
図２７は、角度イントラ予測モードとｘ軸に垂直である直線との間で形成された角度を示す図である。
【０２６９】
図２７に示す例において、角度予測モードは、左下対角線方向と右上対角線方向との間に存在してもよい。ｘ軸と角度予測モードで形成された角度と記述された場合、角度予測モードは、４５度（左下対角方向）から−１３５度（右側上方対角方向）との間に存在してもよい。
【０２７０】
現在ブロックが非正方形形状であると、現在ブロックのイントラ予測モードに基づいて、イントラ予測角度に追従した角度線に位置する参照サンプルのうちの、予測サンプルに近接する参照サンプルを用いることなく、予測サンプルから最も離れた参照サンプルを用いて、予測サンプルを導出する。
【０２７１】
図２８は、現在ブロックが非正方形である場合に予測サンプルを得る例を示す図である。
【０２７２】
例えば、図２８（ａ）に示す例において、現在ブロックは幅が高さより大きい非正方形形状であり、且つ現在ブロックのイントラ予測モードは角度が０度から４５度である角度イントラ予測モードであると仮定する。この場合、現在ブロックの右側列の近傍の予測サンプルＡを導出する場合、前記角度の角度モードでの参照サンプルのうちの、前記予測サンプルから離れた左側参照サンプルＬを、前記予測サンプルに近接する上方参照サンプルＴの代わりに用いることがある。
【０２７３】
もう１つの例において、図２８の（ｂ）に示す例において、現在ブロックは高さが幅より大きい非正方形形状であり、且つ現在ブロックのイントラ予測モードは角度が−９０度から−１３５度である角度イントラ予測モードであると仮定する。上述した場合、現在ブロックの下方行の近傍の予測サンプルＡを導出する場合、前記角度の角度モードでの参照サンプルのうちの、前記予測サンプルから離れた上方参照サンプルＴを、前記予測サンプルに近接する左側参照サンプルＬの代わりに用いることがある。
【０２７４】
上述した問題を解決するために、現在ブロックが非正方形である場合、現在ブロックのイントラ予測モードを逆方向のイントラ予測モードに置き換えることができる。従って、非正方形形状のブロックに対して、図２４に示した角度予測モードの角度より大きいか又は小さい角度を有する角度予測モードを用いることができる。このような角度イントラ予測モードは、広各イントラ予測モードと定義されてもよい。広角イントラ予測モードは、４５度から−１３５度の範囲に収まらない角度イントラ予測モードを表す。
【０２７５】
図２９は、広角イントラ予測モードを示す図である。
【０２７６】
図２９に示す例において、インデックスが−１から−１４であるイントラ予測モード及びインデックスが６７から８０であるイントラ予測モードは、広角イントラ予測モードを表す。
【０２７７】
図２９に、４５度より大きい角度を有する１４個の広角イントラ予測モード（−１から−１４）及び−１３５度未満の角度を有する１４個の広角イントラ予測モード（６７から８０）を示したが、より多いか又はより少ない数の広角イントラ予測モードを定義することができる。
【０２７８】
広角イントラ予測モードを用いる場合、上方参照サンプルの長さを２Ｗ＋１とし、また、左側参照サンプルの長さを２Ｈ＋１とする。
【０２７９】
広角イントラ予測モードを用いる場合、参照サンプルＴを用いて図２８（ａ）に示すサンプルＡを予測し、参照サンプルＬを用いて図２８（ｂ）に示すサンプルＡを予測することができる。
【０２８０】
既存のイントラ予測モードとＮ個の広角イントラ予測モードを加算することで、計６７＋Ｎ個のイントラ予測モードを用いることができる。例えば、表３は、２０個の広角イントラ予測モードを定義した場合のイントラ予測モードのイントラ方向パラメータを示す。
【表３】
2022502899.tif 000025
【０２８１】
現在ブロックが非正方形形状であり、且つステップＳ２２０２で取得された現在ブロックのイントラ予測モードが変換範囲内に収まった場合、現在ブロックのイントラ予測モードを広角イントラ予測モードに変換することができる。現在ブロックのサイズ、形状又は比率のうちの少なくとも１つに基づいて前記変換範囲を決定することができる。ここで、前記比率は、現在ブロックの幅と高さとの比率を表すことができる。
【０２８２】
現在ブロックは、幅が高さより大きい非正方形である場合、変換範囲を右側上方対角方向のイントラ予測モードインデックス（例えば、６６）から（右側上方対角方向のイントラ予測モードのインデックス−Ｎ）とすることができる。ここで、Ｎは、現在ブロックの比率に基づいて決定されてもよい。現在ブロックのイントラ予測モードが変換範囲内に収まった場合、前記イントラ予測モードを広角イントラ予測モードに変換することができる。前記イントラ予測モードから、事前定義された値を減算することで、前記変換を実行することができる。前記事前定義された値は、広角イントラ予測モード以外のイントラ予測モードの総数（例えば、６７）であってもよい。
【０２８３】
前記実施例によれば、６６番目と５３番目との間のイントラ予測モードをそれぞれ−１番目と−１４番目との間の広角イントラ予測モードに変換することができる。
【０２８４】
現在ブロックは、高さが幅より大きい非正方形である場合、変換範囲を、左下対角方向のイントラ予測モードインデックス（例えば、２）から（左下対角方向のイントラ予測モードのインデックス＋Ｍ）とすることができる。ここで、Ｍは、現在ブロックの比率に基づいて決定されてもよい。現在ブロックのイントラ予測モードが変換範囲内に収まった場合、前記イントラ予測モードを広角イントラ予測モードに変換することができる。前記イントラ予測モードに事前定義された値を加算することで前記変換を実行することができる。事前定義された値は、広角イントラ予測モード以外の角度イントラ予測モードの総数（例えば、６５）であってもよい。
【０２８５】
前記実施例によれば、２番目と１５番目との間のイントラ予測モードをそれぞれ６７番目と８０番目との間の広角イントラ予測モードに変換することができる。
【０２８６】
以下、変換範囲内に収まったイントラ予測モードを広角イントラ置き換え予測モードと呼ぶ。
【０２８７】
変換範囲は、現在ブロックの比率に基づいて決定されてもよい。例えば、表４及び表５はそれぞれ、広角イントラ予測モード以外の３５個のイントラ予測モード及び６７個のイントラ予測モードを定義した場合の変換範囲を示す。
【表４】
2022502899.tif 000026
【表５】
2022502899.tif 000027
【０２８８】
表４及び表５に示す例のように、変換範囲に収まった広角イントラ置き換え予測モードの数は、現在ブロックの比率によって異なってもよい。
【０２８９】
既存のイントラ予測モードに加えて広角イントラ予測モードを更に用いることに伴い、広角イントラ予測モードの符号化に必要なリソースは増加する。従って、符号化効率を低下させる可能性がある。従って、広角イントラ予測モードに対する直接的な符号化の代わりに、広角イントラ予測モードに関わる置き換えイントラ予測モードに対して符号化を行うことで、符号化効率を向上させる。
【０２９０】
例えば、６７番目の広角イントラ予測モードを用いて現在ブロックに対して符号化を行う場合、６７番目の広角置き換えイントラ予測モードとした番号２を現在ブロックのイントラ予測モードに符号化することができる。なお、−１番目の広角イントラ予測モードを用いて現在ブロックに対して符号化を行う場合、−１番目の広角置き換えイントラ予測モードとした番号６６を現在ブロックのイントラ予測モードに符号化することができる。
【０２９１】
デコーダは、現在ブロックのイントラ予測モードに対して復号化を行い、復号化されたイントラ予測モードが変換範囲に含まれるかどうかを決定することができる。復号化されたイントラ予測モードが広角置き換えイントラ予測モードである場合、イントラ予測モードを広角イントラ予測モードに変換することができる。
【０２９２】
あるいは、広角イントラ予測モードで現在ブロックに対して符号化を行う場合、広角イントラ予測モードに対して直接的に符号化を行うこともできる。
【０２９３】
イントラ予測モードの符号化は、前記ＭＰＭリストに基づいて実現してもよい。後述において、ＭＰＭリストの設定方法を詳しく説明する。後述する実施例において、角度が４５度より大きい１０個の広角イントラ予測モード（−１から−１０）及び角度が−１３５度未満である１０個の広角イントラ予測モード（６７から７６）を定義したと仮定する。
【０２９４】
広角イントラ予測モードで隣接ブロックに対して符号化を行う場合、広角イントラ予測モードに対応する広角置き換えイントラ予測モードに基づいてＭＰＭを設定することができる。例えば、隣接ブロックに対して広角イントラ予測モードで符号化を行う場合、変数ｃａｎｄＩｎｔｒａＰｒｅｄＸ（Ｘは、Ａ又はＢである）を広角置き換えイントラ予測モードとすることができる。
【０２９５】
あるいは、現在ブロックの形状に基づいて、ＭＰＭの導出方法を決定することができる。例えば、現在ブロックは、幅と高さが同じである正方形形状である場合、ｃａｎｄＩｎｔｒａＰｒｅｄＸを広角置き換えイントラ予測モードとすることができる。一方で、現在ブロックが非正方形形状である場合、ｃａｎｄＩｎｔｒａＰｒｅｄＸを広角イントラ予測モードとすることができる。
【０２９６】
あるいは、隣接ブロックの広角イントラ予測モードが現在ブロックに適用できるかどうかに基づいて、ｃａｎｄＩｎｔｒａＰｒｅｄＸを広角イントラ予測モードとするかどうかを決定することができる。例えば、現在ブロックは、幅が高さより大きい非正方形形状であると、インデックスが右上対角線方向のイントラ予測モードのインデックスより大きい広角イントラ予測モードをそのままｃａｎｄＩｎｔｒａＰｒｅｄＸとする。インデックスが左下対角線方向のイントラ予測モードのインデックス未満である広角イントラ予測モードに対して、前記広角イントラ予測モードに対応する広角置き換えイントラ予測モードをｃａｎｄＩｎｔｒａＰｒｅｄＸとする。一方で、現在ブロックは、高さが幅より大きい非正方形形状であると、インデックスが左下対角線方向のイントラ予測モードのインデックス未満である広角イントラ予測モードをそのままｃａｎｄＩｎｔｒａＰｒｅｄＸとする。インデックスが右上対角線方向のイントラ予測モードのインデックスより大きい広角イントラ予測モードに対して、前記広角イントラ予測モードに対応する広角置き換えイントラ予測モードをｃａｎｄＩｎｔｒａＰｒｅｄＸとする。
【０２９７】
つまり、広角イントラ予測モードで符号化された隣接ブロックの形状が現在ブロックの形状と同じであるか又は類似するかに基づいて、広角イントラ予測モードを用いてＭＰＭを導出するかどうか又は広角置き換えイントラ予測モードを用いてＭＰＭを導出するかどうかを決定することができる。
【０２９８】
あるいは、現在ブロックの形状に関わらず、隣接ブロックの広角イントラ予測モードをｃａｎｄＩｎｔｒａＰｒｅｄＸとすることができる。
【０２９９】
要するに、ｃａｎｄＩｎｔｒａＰｒｅｄＸを隣接ブロックの広角イントラ予測モード又は広角置き換えイントラ予測モードとすることができる。
【０３００】
ｃａｎｄＩｎｔｒａＰｒｅｄＡ及びｃａｎｄＩｎｔｒａＰｒｅｄＢに基づいてＭＰＭを導出することができる。この場合、ｃａｎｄＩｎｔｒａＰｒｅｄＡ又はｃａｎｄＩｎｔｒａＰｒｅｄＢと類似したイントラ予測モードで、ＭＰＭを導出することができる。モジュロ演算及びオフセットに基づいて、ｃａｎｄＩｎｔｒａＰｒｅｄＡ又はｃａｎｄＩｎｔｒａＰｒｅｄＢと類似したイントラ予測モードを導出することができる。この場合、現在ブロックの形状によって、モジュロ演算に用いられる定数及びオフセットを異なるように決定することができる。
【０３０１】
表６は、現在ブロックの形状に基づいてＭＰＭを導出する例を示す。
【表６】
2022502899.tif 000028
【０３０２】
ｃａｎｄＩｎｔｒａＰｒｅｄＡとｃａｎｄＩｎｔｒａＰｒｅｄＢが同じであり、且つｃａｎｄＩｎｔｒａＰｒｅｄＡが角度イントラ予測モードであると仮定する。現在ブロックが正方形形状である場合、広角イントラ予測モード以外の角度イントラ予測モードの総数から１を減算することで得られた値に基づくモジュロ演算により、ｃａｎｄＩｎｔｒａＰｒｅｄＡと類似したイントラ予測モードを得ることができる。例えば、広角イントラ予測モード以外の角度イントラ予測モードの数が６５である場合、ｃａｎｄＩｎｔｒａＰｒｅｄＡ及び６４に基づくモジュロ演算で得られた値により、ＭＰＭを導出することができる。一方で、現在ブロックは、非正方形形状である場合、広角イントラ予測モードを含む角度イントラ予測モードの総数から１を減算することで得られた値に基づくモジュロ演算により、ｃａｎｄＩｎｔｒａＰｒｅｄＡと類似したイントラ予測モードを得ることができる。例えば、広角イントラ予測モードの数が２０である場合、ｃａｎｄＩｎｔｒａｐｒｅｄＡ及び８４に基づくモジュロ演算で得られた値により、ＭＰＭを導出することができる。
【０３０３】
モジュロ演算に用いられる定数は現在ブロックの形状によって異なるように設定されたため、広角イントラ予測モードをｃａｎｄＩｎｔｒａＰｒｅｄＡと類似した角度イントラ予測モードと設定できるかどうかを決定することができる。例えば、６４を用いたモジュロ演算において、広角イントラ予測モードをｃａｎｄＩｎｔｒａＰｒｅｄＡと類似した角度イントラ予測モードとすることができないことがあるが、８４を用いたモジュロ演算において、広角イントラ予測モードをｃａｎｄＩｎｔｒａＰｒｅｄＡと類似した角度イントラ予測モードとすることができる。
【０３０４】
あるいは、ｃａｎｄＩｎｔｒａＰｒｅｄＡとｃａｎｄＩｎｔｒａＰｒｅｄＢが同じである場合、現在ブロックの形状及びｃａｎｄＩｎｔｒａＰｒｅｄＡが広角イントラ予測モードであるかどうかを考慮して、ＭＰＭを導出することができる。
【０３０５】
表７は、現在ブロックの形状に基づいてＭＰＭを導出する例を示す。
【表７】
2022502899.tif 000029
【０３０６】
2022502899.tif 000030
【０３０７】
ｃａｎｄＩｎｔｒａＰｒｅｄＡとｃａｎｄＩｎｔｒａＰｒｅｄＢが同じであると仮定する。
【０３０８】
現在ブロックが正方形形状であり、且つｃａｎｄＩｎｔｒａＰｒｅｄＡが広角イントラ予測モードである場合、ＭＰＭをデフォルトモードとすることができる。例えば、ＭＰＭ［０］、ＭＰＭ［１］及びＭＰＭ［２］をそれぞれ平面モード、ＤＣモード及び垂直イントラ予測モードとすることができる。
【０３０９】
現在ブロックが正方形形状であり、且つｃａｎｄＩｎｔｒａＰｒｅｄＡが広角イントラ予測モード以外の角度イントラ予測モードである場合、ＭＰＭをｃａｎｄＩｎｔｒａＰｒｅｄＡと類似した角度イントラ予測モードとすることができる。例えば、ＭＰＭ［０］をｃａｎｄＩｎｔｒａＰｒｅｄＡとすることができ、また、ＭＰＭ［１］及びＭＰＭ［２］をｃａｎｄＩｎｔｒａＰｒｅｄＡと類似した角度イントラ予測モードとすることができる。
【０３１０】
現在ブロックが非正方形形状であり、且つｃａｎｄＩｎｔｒａＰｒｅｄＡが角度イントラ予測モードである場合、ＭＰＭをｃａｎｄＩｎｔｒａＰｒｅｄＡと類似した角度イントラ予測モードとすることができる。例えば、ＭＰＭ［０］をｃａｎｄＩｎｔｒａＰｒｅｄＡとすることができ、また、ＭＰＭ［１］及びＭＰＭ［２］をｃａｎｄＩｎｔｒａｐｒｅｄＡと類似した角度イントラ予測モードとすることができる。
【０３１１】
モジュロ演算及びオフセットを用いて、ｃａｎｄＩｎｔｒａＰｒｅｄＡと類似した角度イントラ予測モードを導出することができる。この場合、モジュロ演算に用いられる定数は、現在ブロックの形状によって異なることがある。なお、現在ブロックの形状に基づいて、ｃａｎｄＩｎｔｒａＰｒｅｄＡと類似した角度イントラ予測モードを導出するためのオフセットを異なるように設定することができる。例えば、現在ブロックは、幅が高さより大きい非正方形形状である場合、オフセット２を用いることで、ｃａｎｄＩｎｔｒａＰｒｅｄＡと類似した角度イントラ予測モードを導出することができる。一方で、現在ブロックは、高さが幅より大きい非正方形形状である場合、オフセット２及び−８を用いて、ｃａｎｄＩｎｔｒａＰｒｅｄＡと類似した角度イントラ予測モードを導出することができる。
【０３１２】
あるいは、ｃａｎｄＩｎｔｒａＰｒｅｄＸが最大インデックスを有する広角イントラ予測モードであるかそれとも最小インデックスを有する広角イントラ予測モードであるかを考慮することで、ＭＰＭを導出することができる。
【０３１３】
表８は、広角イントラ予測モードインデックスを考慮することでＭＰＭを導出する例を示す。
【表８】
2022502899.tif 000031
【０３１４】
2022502899.tif 000032
【０３１５】
ｃａｎｄＩｎｔｒａＰｒｅｄＡとｃａｎｄＩｎｔｒａＰｒｅｄＢが同じであると仮定する。説明しやすくするために、インデックス値が左下対角線方向のイントラ予測モードのインデックス値未満である広角イントラ予測モードを下向き広角イントラ予測モードと呼び、また、インデックス値が右上対角線方向のイントラ予測モードのインデックス値より大きい広角イントラ予測モードを右向き広角イントラ予測モードと呼ぶ。
【０３１６】
ｃａｎｄＩｎｔｒａＰｒｅｄＡが下向き広角イントラ予測モードである場合、ＭＰＭをｃａｎｄＩｎｔｒａＰｒｅｄＡと類似した角度イントラ予測モードとすることができる。この場合、ｃａｎｄＩｎｔｒａＰｒｅｄＡは、最小値を有する下向き広角イントラ予測モードである場合、ＭＰＭを、事前定義されたインデックス値を有する下向き広角イントラ予測モードとすることができる。ここで、事前定義されたインデックスは、下向き広角イントラ予測モードのインデックスのうちの最大値を有するインデックスであってもよい。例えば、ｃａｎｄＩｎｔｒａＰｒｅｄＡが−１０である場合、ＭＰＭ［０］、ＭＰＭ［１］及びＭＰＭ［２］をそれぞれ−１０、−１及び−９とすることができる。
【０３１７】
ｃａｎｄＩｎｔｒａＰｒｅｄＡが右向き広角イントラ予測モードである場合、ＭＰＭをｃａｎｄＩｎｔｒａＰｒｅｄＡと類似した角度イントラ予測モードとすることができる。この場合、ｃａｎｄＩｎｔｒａＰｒｅｄＡは、最大値を有する右向き広角イントラ予測モードである場合、ＭＰＭを、事前定義されたインデックス値を有する右向き広角イントラ予測モードとすることができる。ここで、事前定義されたインデックスは、右向き広角イントラ予測モードのインデックスのうちの最小値を有するインデックスであってもよい。例えば、ｃａｎｄＩｎｔｒａＰｒｅｄＡが７７である場合、ＭＰＭ［０］、ＭＰＭ［１］及びＭＰＭ［２］をそれぞれ７７、７６及び６７とすることができる。
【０３１８】
あるいは、ｃａｎｄＩｎｔｒａＰｒｅｄＡのインデックスから１を減算することで得られたインデックスはイントラ予測モードのインデックスのうちの最小値未満であるか、又は、１を加算することで得られたインデックスは最大値より大きい場合、ＭＰＭをデフォルトモードとすることができる。ここで、デフォルトモードは、平面モード、ＤＣモード、垂直イントラ予測モード、水平イントラ予測モード及び対角イントラ予測モードのうちの少なくとも１つを含んでもよい。
【０３１９】
あるいは、ｃａｎｄＩｎｔｒａＰｒｅｄＡのインデックスから１を減算することで得られたインデックスはイントラ予測モードのインデックスのうちの最小値未満であるか、又は、１を加算することで得られたインデックスは最大値より大きい場合、ＭＰＭをｃａｎｄＩｎｔｒａＰｒｅｄＡと逆であるイントラ予測モードとするか又はｃａｎｄＩｎｔｒａＰｒｅｄＡと逆であるイントラ予測モードと類似したイントラ予測モードとすることができる。
【０３２０】
あるいは、現在ブロックの形状及び隣接ブロックの形状を考慮してＭＰＭ候補を導出することができる。例えば、現在ブロック及び隣接ブロックがいずれも非正方形形状である場合にＭＰＭを導出する方法は、現在ブロックが正方形形状であるが、隣接ブロックが非正方形形状である場合にＭＰＭを導出する方法と異なることがある。
【０３２１】
現在ブロックのサイズ、現在ブロックの形状、隣接ブロックのサイズ及び隣接ブロックの形状のうちの少なくとも１つを考慮してＭＰＭリストにおけるＭＰＭを再配列（又は再順序付け）することができる。ここで、再配列は、各ＭＰＭに割り当てられたインデックスを再割り当てることを表す。例えば、小さいインデックスを、現在ブロックのサイズ又は形状と同じであるサイズ又は形状を有する隣接ブロックのイントラ予測モードと同じであるＭＰＭに割り当てることができる。
【０３２２】
ＭＰＭ［０］及びＭＰＭ［１］をそれぞれ、左隣接ブロックのイントラ予測モードｃａｎｄＩｎｔｒａＰｒｅｄＡ及び上隣接ブロックのイントラ予測モードｃａｎｄＩｎｔｒａＰｒｅｄＢとすると仮定する。
【０３２３】
現在ブロック及び上隣接ブロックは幅が高さより大きい非正方形形状である場合、ＭＰＭを、上隣接ブロックのイントラ予測モードｃａｎｄＩｎｔｒａＰｒｅｄＢに小さいインデックスを持たせるように再配列することができる。つまり、ｃａｎｄＩｎｔｒａＰｒｅｄＢをＭＰＭ［０］に再配列し、また、ｃａｎｄＩｎｔｒａＰｒｅｄＡをＭＰＭ［１］に再配列することができる。
【０３２４】
あるいは、現在ブロック及び上隣接ブロックは高さが幅より大きい非正方形形状である場合、ＭＰＭを、上隣接ブロックのイントラ予測モードｃａｎｄＩｎｔｒａＰｒｅｄＢに小さいインデックスを持たせるように再配列することができる。つまり、ｃａｎｄＩｎｔｒａＰｒｅｄＢをＭＰＭ［０］に再配列し、また、ｃａｎｄＩｎｔｒａＰｒｅｄＡをＭＰＭ［１］に再配列することができる。
【０３２５】
あるいは、現在ブロック及び上隣接ブロックが正方形形状である場合、ＭＰＭを、上隣接ブロックのイントラ予測モードｃａｎｄＩｎｔｒａＰｒｅｄＢに小さいインデックスを持たせるように再配列することができる。つまり、ｃａｎｄＩｎｔｒａＰｒｅｄＢをＭＰＭ［０］に再配列し、また、ｃａｎｄＩｎｔｒａＰｒｅｄＡをＭＰＭ［１］に再配列することができる。
【０３２６】
ＭＰＭの再配列の代わりに、最初にｃａｎｄＩｎｔｒａＰｒｅｄＸをＭＰＭに割り当てた場合、現在ブロックのサイズ、現在ブロックの形状、隣接ブロックのサイズ及び隣接ブロックの形状のうちの少なくとも１つを考慮することができる。
【０３２７】
現在ブロックのサイズ又は形状に基づいてＭＰＭを再配列することができる。例えば、現在ブロックは、幅が高さより大きい非正方形形状であると、降順に応じてＭＰＭを再配列することができる。一方で、現在ブロックは、高さが幅より大きい非正方形形状であると、昇順に応じてＭＰＭを再配列することができる。
【０３２８】
オリジナル画像と予測画像を減算することで、導出される残差画像を導出することができる。この場合、残差画像を周波数領域に変更する場合、周波数成分のうちの高周波数成分を除去しても、ビデオの主観画質を大幅に低下させることがない。従って、高周波数成分の値を小さい値に変換するか又は高周波数成分の値を０とすると、明らかな視覚的歪みを引き起こすことなく、圧縮効率を向上させるという効果を有する。上記特性を反映するために、現在ブロックを変換することで残差画像を２次元周波数成分に分解することができる。離散コサイン変換（ＤＣＴ：Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）又は離散サイン変換（ＤＳＴ：Ｄｉｓｃｒｅｔｅ  Ｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）等の変換技術を用いて前記変換を実行することができる。
【０３２９】
ＤＣＴは、コサイン変換を用いて残差画像を２次元周波数成分に分解（又は変換）する。ＤＳＴは、サイン変換を用いて残差画像を２次元周波数成分に分解（又は変換）する。残差画像の変換結果として、周波数成分は、基本画像として表されてもよい。例えば、サイズがＮ×Ｎであるブロックに対してＤＣＴ変換を実行する場合、Ｎ２個の基本パターン成分を得ることができる。変換により、サイズがＮ×Ｎであるブロックに含まれる各基本パターン成分のサイズを得ることができる。用いられる変換技術によれば、基本パターン成分のサイズをＤＣＴ係数又はＤＳＴ係数と呼んでもよい。
【０３３０】
変換技術ＤＣＴは主に、０ではない低周波数成分が多く分布した画像に対して変換を行うために用いられる。変換技術ＤＳＴは主に、高周波数成分が多く分布した画像に用いられる。
【０３３１】
ＤＣＴ又はＤＳＴ以外の変換技術を用いて残差画像を変換することもできる。
【０３３２】
以下、残差画像を２二次元周波数成分に変換するプロセスを２次元画像変換と呼ぶ。なお、変換により得られた基本パターン成分のサイズを変換係数と呼んでもよい。例えば、変換係数は、ＤＣＴ係数又はＤＳＴ係数であってもよい。後述する主変換及び二次変換を同時に適用する場合、変換係数は、二次変換の結果により生成された基本パターン成分のサイズを表すことができる。
【０３３３】
ブロックを単位として変換技術を決定することができる。現在ブロックの予測符号化モード、現在ブロックのサイズ又は現在ブロックの形状のうちの少なくとも１つに基づいて、変換技術を決定することができる。例えば、イントラ予測モードで、現在ブロックに対して符号化を行い、且つ現在ブロックのサイズがＮ×Ｎ未満である場合、変換技術を用いてＤＳＴを実行することができる。一方で、前記条件を満たすことができない場合、変換技術ＤＣＴを用いて変換を実行することができる。
【０３３４】
残差画像において、一部のブロックに対して２次元画像変換を実行しなくてもよい。２次元画像変換を実行しないことは、変換スキップ（Ｔｒａｎｓｆｏｒｍ  Ｓｋｉｐ）と呼ばれてもよい。変換スキップを適用する場合、量子化を変換が実行されていない残差値に適用することができる。
【０３３５】
ＤＣＴ又はＤＳＴを用いて現在ブロックを変換した後、変換された現在ブロックに対して再び変換を行うことができる。この場合、ＤＣＴ又はＤＳＴに基づく変換を主変換と定義し、また、主変換を適用するブロックに対して再び変換を行うプロセスを二次変換と呼ぶ。
【０３３６】
主変換は、複数の変換カーネル候補のうちのいずれか１つを用いて実行することができる。例えば、ＤＣＴ２、ＤＣＴ８又はＤＣＴ７のうちのいずれか１つを用いて主変換を実行することができる。
【０３３７】
水平方向及び垂直方向に対して、異なる変換カーネルを用いることもできる。ビットストリームを介して、信号で、水平方向の変換カーネルと垂直方向の変換カーネルの組み合わせを表す情報を送信することもできる。
【０３３８】
主変換及び二次変換の実行ユニットは、異なる。例えば、８×８ブロックに対して主変換を実行し、また、変換された８×８ブロックにおけるサイズが４×４であるサブブロックに対して二次変換を実行することができる。この場合、二次変換を実行しない余剰領域の変換係数を０とすることもできる。
【０３３９】
あるいは、４×４ブロックに対して主変換を実行し、また、変換された４×４ブロックを含むサイズが８×８である領域に対して二次変換を実行することができる。
【０３４０】
ビットストリームを介して、信号で、二次変換を実行するかどうかを表す情報を送信することができる。
【０３４１】
デコーダにおいて、二次変換の逆変換（第２逆変換）を実行し、また、その結果に対して主変換の逆変換（第１逆変換）を実行することができる。第２逆変換及び第１逆変換の実行結果として、現在ブロックの残差信号を得ることができる。
【０３４２】
量子化は、ブロックのエネルギーの減少に用いられ、また、量子化プロセスは、変換係数を特定の定数で除算するプロセスを含む。前記定数は、量子化パラメータにより導出されてもよく、また、量子化パラメータは、１から至６３の値と定義されてもよい。
【０３４３】
エンコーダにおいて変換及び量子化を実行すると、デコーダは、逆量子化及び逆変換により、残差ブロックを得ることができる。デコーダは、予測ブロックと残差ブロックを加算することで、現在ブロックの再構成ブロックを得ることができる。
【０３４４】
現在ブロックの再構成ブロックを得ると、インループフィルタリング（Ｉｎ−ｌｏｏｐ  ｆｉｌｔｅｒｉｎｇ）により、量子化及び符号化プロセスにおいて発生した情報紛失を減少させることができる。インループフィルタは、デブロッキングフィルタ（Ｄｅｂｌｏｃｋｉｎｇ  ｆｉｌｔｅｒ）、サンプル適応型オフセットフィルタ（Ｓａｍｐｌｅ  Ａｄａｐｔｉｖｅ  Ｏｆｆｓｅｔ  ｆｉｌｔｅｒ：ＳＡＯ）又は適応型ループフィルタ（Ａｄａｐｔｉｖｅ  Ｌｏｏｐ  Ｆｉｌｔｅｒ：ＡＬＦ）のうちの少なくとも１つを含んでもよい。以下、インループフィルタを適用する前の再構成ブロックを第１再構成ブロックと呼び、また、インループフィルタを適用した後の再構成ブロックを第２再構成ブロックと呼ぶことができる。
【０３４５】
第１再構成ブロックに対してデブロッキングフィルタ、ＳＡＯ又はＡＬＦのうちの少なくとも１つを適用することで、第２再構成ブロックを得ることができる。この場合、デブロッキングフィルタを適用した後に、ＳＡＯ又はＡＬＦを適用することができる。
【０３４６】
デブロッキングフィルタは、ブロックを単位として量子化を実行する場合にブロックの境界において発生した画質劣化（ブロッキングアーチファクト：Ｂｌｏｃｋｉｎｇ  Ａｒｔｉｆａｃｔ）を軽減するために用いられる。デブロッキングフィルタを適用するために、第１再構成ブロックと隣接再構成ブロックとの間のブロック強度（Ｂｌｏｃｋｉｎｇ  Ｓｔｒｅｎｇｔｈ：ＢＳ）を決定することができる。
【０３４７】
図３０は、ブロック強度の決定プロセスを示すフローチャートである。
【０３４８】
図３０に示す例において、Ｐは、第１再構成ブロックを表し、また、Ｑは、隣接再構成ブロックを表す。ここで、隣接再構成ブロックは、現在ブロックの左側又は上方に隣接してもよい。
【０３４９】
図３０に示す例において、Ｐ及びＱの予測符号化モード、非ゼロ変換係数を含むかどうか、同じ参照画像を用いてインター予測を実行するかどうか、及び動きベクトルの差分値が閾値以上であるかどうかを考慮することで、ブロック強度を決定することができる。
【０３５０】
ブロック強度に基づいて、デブロッキングフィルタを適用したかどうかを決定することができる。例えば、ブロック強度が０である場合、フィルタリングを実行しない可能性がある。
【０３５１】
ＳＡＯは、周波数領域において量子化を実行する場合に発生したリンギングアーチファクト（Ｒｉｎｇｉｎｇ  Ａｒｔｉｆａｃｔ）を軽減するために用いられる。第１再構成画像を考慮したパターンを加算するか又は減算することで決定されたオフセットにより、ＳＡＯを実行することができる。オフセットの決定方法は、エッジオフセット（Ｅｄｇｅ  Ｏｆｆｓｅｔ：ＥＯ）又はバンドオフセット（Ｂａｎｄ  Ｏｆｆｓｅｔ）を含む。ＥＯは、周辺画素のパターンに基づいて現在サンプルのオフセットを決定する方法を表す。ＢＯは、領域における類似した輝度値を有する画素の集合に対して共通のオフセットを適用する方法を表す。具体的には、画素輝度を３２個の均等な区間に分割し、また、類似した輝度値を有する画素を１つの集合とすることができる。例えば、３２個のバンドのうちの隣接する４個のバンドを一組とし、また、４個のバンドに属するサンプルに対して、同じオフセットを適用することができる。
【０３５２】
ＡＬＦは、第１再構成画像又はデブロッキングフィルタを適用した再構成画像に対して、事前定義されたサイズ／形状のフィルタを適用することで、第２再構成画像を生成する方法である。下記等式２１は、ＡＬＦの適用例を示す。
【数２１】
2022502899.tif 000033
【０３５３】
画像、符号化ツリーユニット、符号化ブロック、予測ブロック又は変換ブロックを単位として、事前定義されたフィルタ候補のうちのいずれか１つを選択することができる。各フィルタ候補のサイズ又は形状のうちのいずれか１つは異なってもよい。
【０３５４】
図３１は、事前定義されたフィルタ候補を示す図である。
【０３５５】
図３１に示す例において、５×５、７×７及び９×９菱形のうちの少なくとも１つを選択することができる。
【０３５６】
色度成分に対して、サイズが５×５である菱形のみを用いることができる。
【０３５７】
パノラマビデオ、３６０度ビデオ又は４Ｋ／８Ｋ  ＵＨＤ（超高精細度）等などの高解像度ビデオに対して、リアルタイム符号化又は低遅延符号化を実行するために、１枚の画像を複数の領域に分割し、前記複数の領域に対して符号化／復号化を行うことができる。このために、画像をタイル（即ち、並行して符号化／復号化した基本ユニット）に分割し、またこれらのタイルを並行して処理することができる。
【０３５８】
タイルを、矩形形状を有するものに制限することができる。タイルに対して符号化／復号化を行う場合、他のタイルのデータを使用しない。タイルを単位として、コンテキスト適応型二値算術符号化（ＣＡＢＡＣ）コンテキストの確率テーブルを初期化し、また、それを、タイルの境界でループフィルタを適用しないように設定することができる。
【０３５９】
図３２は、画像を複数のタイルに分割する例を示す。
【０３６０】
タイルは、少なくとも１つの符号化ツリーユニットを含み、また、タイルの境界は、符号化ツリーユニットの境界と重なり合う。
【０３６１】
図３２に示す例において、画像は、複数のタイル集合に分割されてもよい。ビットストリームを介して、信号で、画像を複数のタイル集合に分割するための情報を送信することができる。
【０３６２】
画像の分割タイプによれば、タイルは、画像境界以外の全ての領域において、同一のサイズを有してもよい。
【０３６３】
あるいは、画像を、水平方向に互いに隣接するタイルが同一の高さを有するように分割することができ、又は、画像を、垂直方向に互いに隣接するタイルが同一の幅を有するように分割することができる。
【０３６４】
画像と交わる垂直線又は水平線のうちの少なくとも１本の線を用いて画像を分割する場合、各タイルはいずれも、異なる及び／又は行に属する。後述する例示的な実施例において、タイルが属する列は、タイル列と呼ばれ、また、タイルが属する行は、タイル行と呼ばれる。
【０３６５】
ビットストリームを介して、信号で、画像をタイルに分割する形状を決定するための情報を送信することができる。画像パラメータ集合又はシーケンスパラメータ集合により。情報に対して符号化を行い、信号で送信することができる。該情報は、画像におけるタイルの数を決定するために用いられ、また、タイル行の数を示す情報及びタイル列の数を示す情報を含んでもよい。例えば、シンタックス要素ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１は、タイル列の数から１を減算することで得られた値を示し、また、シンタックス要素ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１は、タイル行の数から１を減算することで得られた値を示す。
【０３６６】
図３２に示す例において、タイル列の数が４であり、且つタイル行の数が３であるため、ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１は３であってもよく、またｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１は、２であってもよい。
【０３６７】
画像を複数のタイルに分割する場合、ビットストリームを介して、信号で、タイルのサイズを示す情報を送信することができる。例えば、画像を複数のタイル列に分割する場合、ビットストリームを介して、信号で、各タイル列の幅を示す情報を送信する。また、画像を複数のタイル行に分割する場合、ビットストリームを介して、信号で、各タイル行の高さを示す情報を送信する。例えば、各タイル列に対して、タイル列の幅を示すシンタックス要素ｃｏｌｕｍｎ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１を符号化し、信号で送信することができる。また、各タイル行に対して、タイル行の高さを示すシンタックス要素ｒｏｗ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１を符号化し、信号で送信することができる。
【０３６８】
ｃｏｌｕｍｎ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１は、タイル列の幅から１を減算することで得られた値を示すことができる。また、ｒｏｗ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１は、タイル行の高さから１を減算することで得られた値を示すことができる。
【０３６９】
最後のタイル列に対して、ｃｏｌｕｍｎ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１に対する符号化を省略してもよく、また、最後のタイル行に対して、ｒｏｗ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１に対する符号化を省略してもよい。画像のサイズを考慮して最後のタイル列の幅及び最後の一行の高さを導出することができる。
【０３７０】
デコーダは、ｃｏｌｕｍｎ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１和ｒｏｗ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１に基づいてタイルのサイズを決定することができる。
【０３７１】
表９は、画像をタイルに分割するシンタックステーブルを示す。
【表９】
2022502899.tif 000034
【０３７２】
表９を参照すると、信号で、タイル列の数を示すシンタックス要素ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１及びタイル行の数を示すシンタックス要素ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１を送信することができる。
【０３７３】
続いて、信号で、画像が、等しいサイズのタイルに分割されたかどうかを示すシンタックス要素ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇを送信することができる。ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇが真である場合、画像境界以外の他の領域におけるタイルを等しいサイズのものに分割することができる。
【０３７４】
ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇが偽である場合、信号で、各タイル列の幅を示すシンタックス要素ｃｏｌｕｍｎ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１及び各タイル行の高さを示すシンタックス要素ｒｏｗ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１を送信することができる。
【０３７５】
シンタックス要素ｌｏｏｐ＿ｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、タイル境界でループフィルタの適用を許容するかどうかを示す。
【０３７６】
タイル列のうちの最小幅を有するタイル列は、最小幅タイルと呼ばれてもよく、また、タイル行のうちの最小高さを有するタイル行は、最小高さタイルと呼ばれてもよい。ビットストリームを介して、信号で、最小幅タイルの幅を示す情報及び最小高さタイルの高さを示す情報を送信することができる。例えば、シンタックス要素ｍｉｎ＿ｃｏｌｕｍｎ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１は、最小幅タイルの幅から１を減算することで得られた値を示し、また、シンタックス要素ｍｉｎ＿ｒｏｗ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１は、最小高さタイルの高さから１を減算することで得られた値を示す。
【０３７７】
各タイル列に対して、信号で、最小タイル幅との差分値を示す情報を送信することができる。例えば、シンタックス要素ｄｉｆｆ＿ｃｏｌｕｍｎ＿ｗｉｄｔｈは、現在タイル列と最小タイル列との幅差分値を示す。幅差分値は、符号化ツリーユニット列の数の差分値として表されてもよい。デコーダは、ｍｉｎ＿ｃｏｌｕｍｎ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１に基づいて導出された最小幅タイルの幅とｄｉｆｆ＿ｃｏｌｕｍｎ＿ｗｉｄｔｈに基づいて導出された幅差分値を加算することで、現在タイルの幅を導出することができる。
【０３７８】
なお、各タイル行に対して、信号で、最小タイル高さとの差分値を示す情報を送信することができる。例えば、シンタックス要素ｄｉｆｆ＿ｒｏｗ＿ｈｅｉｇｈｔは、現在タイル行と最小タイル行との高さ差分値を示す。高さ差分値は、符号化ツリーユニット行の数の差分値として表されてもよい。デコーダは、ｍｉｎ＿ｒｏｗ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１に基づいて導出された最小高さタイルの高さとｄｉｆｆ＿ｒｏｗ＿ｈｅｉｇｈｔに基づいて導出された高さ差分値を加算することで、現在タイルの高さを導出することができる。
【０３７９】
表１０は、サイズ差異に関わる情報を含むシンタックステーブルを示す。
【表１０】
2022502899.tif 000035
【０３８０】
画像を、水平に隣接するタイルと異なる高さを有するように分割することができ、又は、画像を、垂直に隣接するタイルと異なる幅を有するように分割することができる。上記画像分割方法は、柔軟なタイル（Ｆｌｅｘｉｂｌｅ  Ｔｉｌｅ）分割方法と呼ばれてもよく、柔軟なタイル分割方法で分割されたタイルは、柔軟なタイルと呼ばれてもよい。
【０３８１】
図３３は、柔軟なタイル技術による画像分割モードを示す図である。
【０３８２】
画像を分割することで生成されたタイルの探索順は、所定の走査順に従ってもよい。なお、所定の走査順に応じて、インデックスを各タイルに割り当てることができる。
【０３８３】
タイルの走査順は、ラスタ走査、対角線走査、垂直走査又は水平走査のうちのいずれか１つであってもよい。図３３（ａ）から図３３（ｄ）は、それぞれラスタ走査、対角線走査、垂直走査及び水平走査に基づいて、インデックスを各タイルに割り当てる例を示す。
【０３８４】
現在タイルのサイズ又は位置に基づいて次の走査順を決定することができる。例えば、現在タイルの高さは、現在タイルの右側に隣接するタイルの高さと異なる場合（例えば、右隣接タイルの高さは、現在タイルの高さより大きい場合）、現在タイルの下方に隣接するタイルの垂直線と同じである垂直線でのタイルのうちの最左側に位置するタイルは、現在タイルの後の走査対象として決定されてもよい。
【０３８５】
画像又はシーケンスを単位としてタイルの走査順を決定することができる。
【０３８６】
あるいは、画像における第１タイルのサイズを考慮することで、タイルの走査順を決定することができる。例えば、第１タイルの幅が高さより大きい場合、タイルの走査順を水平走査とすることができる。第１タイルの高さが幅より大きい場合、タイルの走査順を垂直走査とすることができる。第１タイルの幅が高さと同じである場合、タイルの走査順をラスタ走査又は対角線走査とすることができる。
【０３８７】
ビットストリームを介して、信号で、タイルの総数を示す情報を送信することができる。例えば、柔軟なタイル技術を適用する場合、信号で、画像におけるタイルの総数から２を減算することで導出されたシンタックス要素ｎｕｍｂｅｒ＿ｏｆ＿ｔｉｌｅｓ＿ｉｎ＿ｐｉｃｔｕｒｅ＿ｍｉｎｕｓ２を送信することができる。デコーダは、ｎｕｍｂｅｒ＿ｏｆ＿ｔｉｌｅｓ＿ｉｎ＿ｐｉｃｔｕｒｅ＿ｍｉｎｕｓ２に基づいて、現在画像に含まれるタイルの数を認識することができる。
【０３８８】
表１１は、タイルの数に関わる情報を含むシンタックステーブルを示す。
【表１１】
2022502899.tif 000036
【０３８９】
タイルのサイズの符号化に必要なビット数を減少させるために、サブタイルのサイズを示す情報を符号化し、信号で送信することができる。サブタイルは、タイルを構成する基本ユニットであり、また、各タイルは、少なくとも１つのサブタイルを含むように設定されてもよい。サブタイルは、１つ又は複数の符号化ツリーユニットを含んでもよい。
【０３９０】
例えば、シンタックス要素ｓｕｂｔｉｌｅ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１は、サブタイルの幅から１を減算することで得られた値を示す。シンタックス要素ｓｕｂｔｉｌｅ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１は、サブタイルの高さから１を減算することで得られた値を示す。
【０３９１】
第１タイル以外の他のタイルが直前のタイルと同一のサイズを有するかどうかを示す情報を符号化し、信号で送信することができる。例えば、シンタックス要素ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｓｉｚｅ＿ｆｌａｇは、現在タイルのサイズが直前のタイルのサイズと同じであるかどうかを示す。ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｓｉｚｅ＿ｆｌａｇが真である場合、現在タイルのサイズが直前のタイルのサイズと同じであることを示す。ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｓｉｚｅ＿ｆｌａｇが偽である場合、現在タイルのサイズを示す情報を符号化し、信号で送信することができる。１番目のタイルに対して、ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｓｉｚｅ＿ｆｌａｇの符号化を省略してもよく、また、フラグの値を偽とすることができる。
【０３９２】
タイルのサイズを示す情報は、ｉ番目のタイルの幅を示すシンタックス要素ｔｉｌｅ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１［ｉ］及びｉ番目のタイルの高さを示すシンタックス要素ｔｉｌｅ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１［ｉ］を含んでもよい。
【０３９３】
タイルのサイズを示す情報は、子タイルのサイズとの差分値を示すことができる。サブタイルのサイズ情報を用いる場合、各タイルのサイズの符号化に必要なビット数を減少することで、符号化／復号化効率を向上させることができる。例えば、下記等式２２に基づいて、ｉ番目のタイルの幅ｔｉｌｅＷｉｄｔｈを導出することができ、また、下記等式２３に基づいて、ｉ番目のタイルの高さｔｉｌｅＨｅｉｇｈｔを導出することができる。
【数２２】
2022502899.tif 000037
【数２３】
2022502899.tif 000038
【０３９４】
あるいは、サブタイルのサイズ情報の符号化を省略してもよく、また、ｉ番目のタイルのサイズをそのままタイルサイズ情報に符号化することができる。サブタイルのサイズ情報を選択的に符号化することができる。ビデオパラメータ集合、シーケンスパラメータ集合又は画像パラメータ集合を介して、信号で、サブタイルのサイズ情報が符号化されたかどうかを示す情報を送信することができる。
【０３９５】
タイルのサイズに関わる情報は、符号化ツリーユニットの数を示すものに符号化されて、信号で送信されてもよい。例えば、ｃｏｌｕｍｎ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１、ｍｉｎ＿ｃｏｌｕｍｎ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１、ｓｕｂｔｉｌｅ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１、ｔｉｌｅ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１等は、タイルに含まれる符号化ツリーユニット列の数を示すことができる。なお、ｄｉｆｆ＿ｃｏｌｕｍｎ＿ｗｉｄｔｈは、最小幅タイルに含まれる符号化ツリーユニット列の数と現在タイルに含まれる符号化ツリーユニット列の数との差分値を示すことができる。
【０３９６】
なお、ｒｏｗ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１、ｍｉｎ＿ｒｏｗ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１、ｓｕｂｔｉｌｅ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１、ｔｉｌｅ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１等は、タイルに含まれる符号化ツリーユニット行の数を示すことができる。なお、ｄｉｆｆ＿ｒｏｗ＿ｈｅｉｇｈｔは、最小高さタイルに含まれる符号化ツリーユニット行の数と現在タイルに含まれる符号化ツリーユニット行の数との差分値を示すことができる。
【０３９７】
デコーダは、シンタックス要素に基づいて導出された符号化ツリーユニット列の数及び／又は符号化ツリーユニット行の数、及び符号化ツリーユニットのサイズによって、タイルのサイズを決定することができる。例えば、ｉ番目のタイルの幅は、（ｔｉｌｅ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１［ｉ］＋１）  ＊  （符号化ツリーユニットの幅）とされてもよく、また、ｉ番目のタイルの高さは、（ｔｉｌｅ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１［ｉ］＋１）  ＊  （符号化ツリーユニットの高さ）とされてもよい。
【０３９８】
それと同時に、シーケンスパラメータ集合又は画像パラメータ集合を介して、信号で、符号化ツリーユニットのサイズを示す情報を送信することができる。
【０３９９】
表１１において、シンタックス要素ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｓｉｚｅ＿ｆｌａｇを用いて、現在タイルのサイズが直前のタイルのサイズと同じであるかどうかを示すことを説明する。もう１つの例として、現在タイルの幅が直前のタイルの幅と同じであるかどうかを示す情報又は現在タイルの高さが直前のタイルの高さと同じであるかどうかを示す情報を符号化し、信号で送信することができる。
【０４００】
表１２は、現在タイルの幅が直前のタイルの幅と同じであるかどうかを示す情報を含むシンタックステーブルを示す。
【表１２】
2022502899.tif 000039
【０４０１】
シンタックス要素ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｗｉｄｔｈ＿ｆｌａｇは、現在タイルの幅が直前のタイルの幅と同じであるかどうかを示す。ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｗｉｄｔｈ＿ｆｌａｇが真である場合、現在タイルの幅を、直前のタイルの幅に等しいように設定することができる。この場合、現在タイルの幅を示す情報の符号化を省略してもよく、また、直前のタイルの幅から、現在タイルの幅を導出することができる。
【０４０２】
ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｗｉｄｔｈ＿ｆｌａｇが偽である場合、信号で、現在タイルの幅を示す情報を送信することができる。例えば、ｔｉｌｅ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１［ｉ］は、ｉ番目のタイルの幅から１を減算することで得られた値を示すことができる。
【０４０３】
現在タイルのサイズが直前のタイルのサイズと異なると判定した場合（例えば、ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｓｉｚｅ＿ｆｌａｇの値が０である場合）のみに、シンタックス要素ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｗｉｄｔｈ＿ｆｌａｇを符号化して信号で送信することができる。
【０４０４】
ｔｉｌｅ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１［ｉ］は、ｉ番目のタイルに含まれる符号化ツリーユニット列の列から１を減算することで得られた値を有してもよい。デコーダは、ｔｉｌｅ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１［ｉ］に１を加算することで、ｉ番目のタイルに属する符号化ツリーユニットの列の数を導出し、導出された値に符号化ツリーユニットの幅を乗算することで、タイルの幅を算出することができる。
【０４０５】
表１３は、現在タイルの高さが直前のタイルの高さと同じであるかどうかを示す情報を更に含むシンタックステーブルを示す。
【表１３】
2022502899.tif 000040
【０４０６】
2022502899.tif 000041
【０４０７】
シンタックス要素ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｈｅｉｇｈｔ＿ｆｌａｇは、現在タイルの高さが直前のタイルの高さと同じであるかどうかを示す。当ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｈｅｉｇｈｔ＿ｆｌａｇが真である場合、現在タイルの高さを、直前のタイルの高さに等しいように設定することができる。この場合、現在タイルの高さを示す情報の符号化を省略してもよく、また、直前のタイルの高さから、現在タイルの高さを導出することができる。
【０４０８】
ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｈｅｉｇｈｔ＿ｆｌａｇが偽である場合、信号で、現在タイルの高さを示す情報を送信することができる。例えば、ｔｉｌｅ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１［ｉ］は、ｉ番目のタイルの高さから１を減算することで得られた値を示すことができる。
【０４０９】
現在タイルのサイズが直前のタイルのサイズと異なると判定した場合（例如，当ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｓｉｚｅ＿ｆｌａｇの値が０である場合）のみに、シンタックス要素ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｈｅｉｇｈｔ＿ｆｌａｇを符号化して信号で送信することができる。なお、ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｗｉｄｔｈ＿ｆｌａｇが偽である場合のみに、信号でシンタックス要素ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｈｅｉｇｈｔ＿ｆｌａｇを送信する。
【０４１０】
表１２は、ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｗｉｄｔｈ＿ｆｌａｇを用いる例を示し、また、表１３は、ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｗｉｄｔｈ＿ｆｌａｇ及びｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｈｅｉｇｈｔ＿ｆｌａｇを用いる例を示す。上記表に示されていないが、ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｗｉｄｔｈ＿ｆｌａｇの符号化を省略してもよく、また、ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｈｅｉｇｈｔ＿ｆｌａｇのみを用いることができる。
【０４１１】
タイル走査順、第１タイルの幅及び高さ、直前のタイルの幅及び高さのうちの少なくとも１つに基づいて、ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｈｅｉｇｈｔ＿ｆｌａｇ及びｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｓｉｚｅ＿ｆｌａｇのうちのどちらを用いるかを決定することができる。例えば、タイルの走査順が垂直方向である場合、ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｈｅｉｇｈｔ＿ｆｌａｇを用いることができ、タイルの走査順が水平方向である場合、ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｗｉｄｔｈ＿ｆｌａｇを用いることができる。あるいは、第１タイル又は直前のタイルは、幅が高さより大きい非正方形形状である場合、ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｗｉｄｔｈ＿ｆｌａｇを用いることができる。第１タイル又は直前のタイルは、高さが幅より大きい非正方形形状である場合、ｕｓｅ＿ｐｒｅｖｉｏｕｓ＿ｔｉｌｅ＿ｈｅｉｇｈｔ＿ｆｌａｇを用いることができる。
【０４１２】
信号で、画像に含まれるタイルの数を送信する場合、最後のタイルに対して、タイルのサイズに関わる情報の符号化を省略してもよい。
【０４１３】
表１４は、最後のタイルに対して、タイルのサイズ情報の符号化を省略する例を示す。
【表１４】
2022502899.tif 000042
【０４１４】
最後のタイル以外のタイルのサイズを指定した場合、画像における余剰領域を最後のタイルとすることができる。
【０４１５】
各符号化ツリーユニットに対して、符号化ツリーユニットが属するタイルを認識するための識別子（以下、タイルＩＤ、ＴｉｌｅＩＤと呼ばれる）を割り当てることができる。
【０４１６】
図３４は、タイルＩＤを各符号化ツリーユニットに割り当てる例を示す図である。
【０４１７】
同一のタイルＩＤを同一のタイルに属する符号化ツリーユニットに割り当てることができる。具体的には、Ｎ番目のＴｉｌｅＩＤをタイルＮに属する符号化ツリーユニットに割り当てることができる。
【０４１８】
各符号化ツリーユニットに割り当てられるタイルＩＤを決定するために、画像における符号化ツリーユニットの位置を示す変数ｘ及びｙを決定することができる。ここで、ｘは、符号化ツリーユニットの左上サンプルの位置（ｘ０，ｙ０）のｘ軸座標を符号化ツリーユニットの幅で割ることで得らえた値を表し、ｙは、符号化ツリーユニットの左上サンプルの位置（ｘ０，ｙ０）のｙ軸座標を符号化ツリーユニットの高さで割ることで得られた値を表す。具体的には、下記等式２４及び２５により、ｘ及びｙを導出することができる。
【数２４】
2022502899.tif 000043
【数２５】
2022502899.tif 000044
【０４１９】
以下説明されるプロセスにより、タイルＩＤを各符号化ツリーユニットに割り当てる操作を実行することができる。
【０４２０】
ｉ）タイルＩＤの初期化
各符号化ツリーユニットのタイルＩＤは、画像におけるタイルの数から１を減算することで得られた値に初期化されてもよい。
【表１５】
2022502899.tif 000045
【０４２１】
ｉｉ）タイルＩＤの導出
【表１６】
2022502899.tif 000046
【０４２２】
上記実施例において、画像パラメータ集合を介して、信号で、タイルの境界でループフィルタを適用することを許容するかどうかを示すフラグを送信することを説明した。しかしながら、全てのタイルの境界でいずれもループフィルタを使用しないと設定すれば、主観画像品質の低下及び符号化効率の低下という問題を発生することがある。
【０４２３】
従って、各タイルがループフィルタを適用することを許容するかどうかを示す情報を符号化し、信号で送信することができる。
【０４２４】
図３５は、各タイルに対してループフィルタを適用するかどうかを選択的に決定する例を示す図である。
【０４２５】
図３５に示す例において、各タイルに対して、水平又は垂直境界でループフィルタ（例えば、デブロッキングフィルタ、ＳＡＯ及び／又はＡＬＦ）の適用を許容するかどうかを決定することができる。
【０４２６】
表１７は、各タイルに対して、ループフィルタの適用を許容するかどうかを示す情報を符号化する例を示す。
【表１７】
2022502899.tif 000047
【０４２７】
表１７の例において、シンタックス要素ｌｏｏｐ＿ｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇ［ｉ］は、ループフィルタをｉ番目のタイルに適用することを許容するかどうかを示す。ｌｏｏｐ＿ｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅ＿ｆｌａｇ［ｉ］の値が１であると、タイルＩＤがｉであるタイルの水平境界及び垂直境界でループフィルタを使用できることを示す。ｌｏｏｐ＿ｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅ＿ｆｌａｇ［ｉ］の値が０であると、タイルＩＤがｉであるタイルの水平境界及び垂直境界でループフィルタを使用しないことを示す。
【０４２８】
水平方向及び垂直方向の各方向でループフィルタの適用を許容するかどうかを示す情報を符号化することができる。
【０４２９】
表１８は、それぞれ、水平方向及び垂直方向で、ループフィルタの適用を許容するかどうかを示す情報を符号化する例を示す。
【表１８】
2022502899.tif 000048
【０４３０】
表１８の例において、シンタックス要素ｌｏｏｐ＿ｆｉｌｔｅｒ＿ｈｏｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇ［ｉ］は、水平方向にｉ番目のタイルと交差する位置でループフィルタを適用することを許容するかどうかを示す。シンタックス要素ｌｏｏｐ＿ｆｉｌｔｅｒ＿ｖｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇ［ｉ］は、垂直方向にｉ番目のタイルと交差する位置でループフィルタを適用することを許容するかどうかを示す。
【０４３１】
ｌｏｏｐ＿ｆｉｌｔｅｒ＿ｈｏｒ＿ａｃｒｏｓｓ＿ｔｉｌｅ＿ｆｌａｇ［ｉ］の値が１であると、タイルＩＤがｉであるタイルの水平境界でループフィルタを使用できることを示す。ｌｏｏｐ＿ｆｉｌｔｅｒ＿ｈｏｒ＿ａｃｒｏｓｓ＿ｔｉｌｅ＿ｆｌａｇ［ｉ］の値が０であると、タイルＩＤがｉであるタイルの垂直境界でループフィルタを使用しないことを示す。
【０４３２】
ｌｏｏｐ＿ｆｉｌｔｅｒ＿ｖｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅ＿ｆｌａｇ［ｉ］の値が１であると、タイルＩＤがｉであるタイルの垂直境界でループフィルタを使用できることを示す。ｌｏｏｐ＿ｆｉｌｔｅｒ＿ｖｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅ＿ｆｌａｇ［ｉ］の値が０であると、タイルＩＤがｉであるタイルの垂直境界でループフィルタを使用しないことを示す。
【０４３３】
複数のタイルを含むタイル群がループフィルタの適用を許容するかどうかを示す情報を符号化し、信号で送信することができる。該情報に基づいて、タイル群に含まれる複数のタイルがループフィルタの適用を許容するかどうかを決定することができる。
【０４３４】
タイル群を決定するために、ビットストリームを介して、信号で、前記タイル群に属するタイルの数、タイル群のサイズ及び画像の分割情報のうちの少なくとも１つを送信することができる。あるいは、エンコーダ及びデコーダにおいて事前定義されたサイズの領域をタイル群とすることができる。
【０４３５】
ループフィルタの適用を許容するかどうかを示す情報の符号化を省略してもよく、また、タイルに含まれる符号化ツリーユニットの数、タイルの幅及びタイルの高さのうちの少なくとも１つに基づいて、ループフィルタの適用を許容するかどうかを決定することができる。例えば、タイルの幅が参照値未満である場合、水平方向にループフィルタを適用することを許容し、タイルの高さが参照値未満である場合、垂直方向にループフィルタを適用することができる。
【０４３６】
タイルの境界でループフィルタを用いる場合、タイルに含まれるデータに基づいて、タイル外部の再構成データを生成することができる。この場合、タイルに含まれるデータに対してパディング又は補間を行うことで、タイル外部の再構成ビデオを得ることができる。続いて、タイル外部の再構成データを用いることで、ループフィルタを適用することができる。
【０４３７】
復号化プロセス又は符号化プロセスに重点を置いて説明する実施例を復号化プロセス又は符号化プロセスに用いられたものも本発明の範囲内に含まれる。説明された順番と異なる順番で、所定の順番で説明された複数の実施例を変更したものも本発明の範囲内に含まれる。
【０４３８】
一連のステップ又はフローチャートに基づいて実施例を説明したが、これは、発明の時間的順番を限定しない。また、必要に応じて、同時に実行してもよいか又は他の順番に応じて実行してもよい。なお、上記実施例において、ブロック図を構成する構成要素（例えば、ユニット、モジュール等）は、それぞれ、ハードウェア機器又はソフトウェアとして実現されてもよい。また、複数の構成要素を組み合わせて単一のハードウェア機器又はソフトウェアとして実行されてもよい。前記実施例は、プログラム命令の形態で実行してもよい。前記プログラム命令は、種々のコンピュータ部材により実行されてコンピュータ可読記憶媒体に記録されてもよい。前記コンピュータ可読記憶媒体は、プログラム命令、データファイル、データ構造などを単独で含んでもよいか又はその組み合わせを含んでもよい。コンピュータ可読記憶媒体の例として、ハードディスク、フレキシブルディスク及び磁気テープなどの磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤ等の光学記録媒体、フロップティーカールディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような磁気−光学媒体（ｍａｇｎｅｔｏ−ｏｐｔｉｃａｌ  ｍｅｄｉａ）及びＲＯＭ、ＲＡＭ、フラッシュメモリ等のような、プログラム命令を記憶して該命令を実行する方式で特に配置されたハードウェア機器を含んでもよい。前記ハードウェア機器は、１つ又は複数のソフトウェアモジュールとして操作を行い、本発明による処理を実行するように構成されてもよく、その逆も同様である。
【産業上の利用可能性】
【０４３９】
本発明は、ビデオに対して符号化／復号化を行う電子機器に適用可能である。
【図１】
2022502899.tif 000049
【図２】
2022502899.tif 000050
【図３】
2022502899.tif 000051
【図４】
2022502899.tif 000052
【図５】
2022502899.tif 000053
【図６】
2022502899.tif 000054
【図７】
2022502899.tif 000055
【図８】
2022502899.tif 000056
【図９（ａ）】
2022502899.tif 000057
【図９（ｂ）】
2022502899.tif 000058
【図１０】
2022502899.tif 000059
【図１１】
2022502899.tif 000060
【図１２】
2022502899.tif 000061
【図１３】
2022502899.tif 000062
【図１４（ａ）】
2022502899.tif 000063
【図１４（ｂ）】
2022502899.tif 000064
【図１５（ａ）】
2022502899.tif 000065
【図１５（ｂ）】
2022502899.tif 000066
【図１６（ａ）】
2022502899.tif 000067
【図１６（ｂ）】
2022502899.tif 000068
【図１７】
2022502899.tif 000069
【図１８】
2022502899.tif 000070
【図１９】
2022502899.tif 000071
【図２０】
2022502899.tif 000072
【図２１】
2022502899.tif 000073
【図２２】
2022502899.tif 000074
【図２３】
2022502899.tif 000075
【図２４】
2022502899.tif 000076
【図２５】
2022502899.tif 000077
【図２６】
2022502899.tif 000078
【図２７】
2022502899.tif 000079
【図２８】
2022502899.tif 000080
【図２９】
2022502899.tif 000081
【図３０】
2022502899.tif 000082
【図３１】
2022502899.tif 000083
【図３２】
2022502899.tif 000084
【図３３】
2022502899.tif 000085
【図３４】
2022502899.tif 000086
【図３５】
2022502899.tif 000087
【国際調査報告】
2022502899.tif 000088
2022502899.tif 000089
2022502899.tif 000090
2022502899.tif 000091