(57)【特許請求の範囲】
【請求項１】
ピクチャを構成するブロック単位で符号化する動画像符号化装置であって、
前記ピクチャが、前記ブロック以上の大きさの複数のタイルに分割された分割領域の情報を設定する領域設定部と、
符号化対象となるブロックの画像データを符号化してブロック符号列を生成するとともに、前記符号化対象となるブロックの復号された画像データを取得するブロック符号化部と、
前記復号された画像データを前記符号化対象となるブロックのフィルタパラメータに基づいてフィルタリングするループフィルタ部と、
前記符号化対象となるブロックのフィルタパラメータを、隣接する符号化済みのブロックから取得するか否かを示す取得フラグを符号化すると共に、前記取得フラグが取得しない旨を示す場合、前記フィルタパラメータに関する情報を符号化して、フィルタ符号列を生成するフィルタパラメータ符号化部と、
ピクチャ特性を示すピクチャパラメータセットに前記分割領域の情報を符号化すると共に、前記ピクチャパラメータセットを符号列ストリームに多重化し、前記フィルタ符号列と前記ブロック符号列とをブロック単位で前記符号列ストリームに多重化する多重化部とを備え、
前記フィルタパラメータ符号化部は、前記符号化対象となるブロックがタイル境界に接するか否かを検査し、前記符号化対象となるブロックがタイル境界に接する場合、前記取得フラグを符号化することを特徴とする動画像符号化装置。
【請求項２】
ピクチャを構成するブロック単位で符号化する動画像符号化方法であって、
前記ピクチャが、前記ブロック以上の大きさの複数のタイルに分割された分割領域の情報を設定する領域設定ステップと、
符号化対象となるブロックの画像データを符号化してブロック符号列を生成するとともに、前記符号化対象となるブロックの復号された画像データを取得するブロック符号化ステップと、
前記復号された画像データを前記符号化対象となるブロックのフィルタパラメータに基づいてフィルタリングするループフィルタステップと、
前記符号化対象となるブロックのフィルタパラメータを、隣接する符号化済みのブロックから取得するか否かを示す取得フラグを符号化すると共に、前記取得フラグが取得しない旨を示す場合、前記フィルタパラメータに関する情報を符号化して、フィルタ符号列を生成するフィルタパラメータ符号化ステップと、
ピクチャ特性を示すピクチャパラメータセットに前記分割領域の情報を符号化すると共に、前記ピクチャパラメータセットを符号列ストリームに多重化し、前記フィルタ符号列と前記ブロック符号列とをブロック単位で前記符号列ストリームに多重化する多重化ステップとを備え、
前記フィルタパラメータ符号化ステップは、前記符号化対象となるブロックがタイル境界に接するか否かを検査し、前記符号化対象となるブロックがタイル境界に接する場合、前記取得フラグを符号化することを特徴とする動画像符号化方法。
【請求項３】
ピクチャを構成するブロック単位で符号化する動画像符号化プログラムであって、
前記ピクチャが、前記ブロック以上の大きさの複数のタイルに分割された分割領域の情報を設定する領域設定ステップと、
符号化対象となるブロックの画像データを符号化してブロック符号列を生成するとともに、前記符号化対象となるブロックの復号された画像データを取得するブロック符号化ステップと、
前記復号された画像データを前記符号化対象となるブロックのフィルタパラメータに基づいてフィルタリングするループフィルタステップと、
前記符号化対象となるブロックのフィルタパラメータを、隣接する符号化済みのブロックから取得するか否かを示す取得フラグを符号化すると共に、前記取得フラグが取得しない旨を示す場合、前記フィルタパラメータに関する情報を符号化して、フィルタ符号列を生成するフィルタパラメータ符号化ステップと、
ピクチャ特性を示すピクチャパラメータセットに前記分割領域の情報を符号化すると共に、前記ピクチャパラメータセットを符号列ストリームに多重化し、前記フィルタ符号列と前記ブロック符号列とをブロック単位で前記符号列ストリームに多重化する多重化ステップとをコンピュータに実行させ、
前記フィルタパラメータ符号化ステップは、前記符号化対象となるブロックがタイル境界に接するか否かを検査し、前記符号化対象となるブロックがタイル境界に接する場合、前記取得フラグを符号化することを特徴とする動画像符号化プログラム。
【請求項４】
ピクチャを構成するブロック単位で符号化する動画像符号化方法により符号化された符号化ストリームをパケット化して符号化データを得るパケット処理部と、
パケット化された前記符号化データを送信する送信部とを備え、
前記符号化方法は、
前記ピクチャが、前記ブロック以上の大きさの複数のタイルに分割された分割領域の情報を設定する領域設定ステップと、
符号化対象となるブロックの画像データを符号化してブロック符号列を生成するとともに、前記符号化対象となるブロックの復号された画像データを取得するブロック符号化ステップと、
前記復号された画像データを前記符号化対象となるブロックのフィルタパラメータに基づいてフィルタリングするループフィルタステップと、
前記符号化対象となるブロックのフィルタパラメータを、隣接する符号化済みのブロックから取得するか否かを示す取得フラグを符号化すると共に、前記取得フラグが取得しない旨を示す場合、前記フィルタパラメータに関する情報を符号化して、フィルタ符号列を生成するフィルタパラメータ符号化ステップと、
ピクチャ特性を示すピクチャパラメータセットに前記分割領域の情報を符号化すると共に、前記ピクチャパラメータセットを符号列ストリームに多重化し、前記フィルタ符号列と前記ブロック符号列とをブロック単位で前記符号列ストリームに多重化する多重化ステップとを備え、
前記フィルタパラメータ符号化ステップは、前記符号化対象となるブロックがタイル境界に接するか否かを検査し、前記符号化対象となるブロックがタイル境界に接する場合、前記取得フラグを符号化することを特徴とする送信装置。
【請求項５】
ピクチャを構成するブロック単位で符号化する動画像符号化方法により符号化された符号化ストリームをパケット化して符号化データを得るパケット処理ステップと、
パケット化された前記符号化データを送信する送信ステップとを備え、
前記符号化方法は、
前記ピクチャが、前記ブロック以上の大きさの複数のタイルに分割された分割領域の情報を設定する領域設定ステップと、
符号化対象となるブロックの画像データを符号化してブロック符号列を生成するとともに、前記符号化対象となるブロックの復号された画像データを取得するブロック符号化ステップと、
前記復号された画像データを前記符号化対象となるブロックのフィルタパラメータに基づいてフィルタリングするループフィルタステップと、
前記符号化対象となるブロックのフィルタパラメータを、隣接する符号化済みのブロックから取得するか否かを示す取得フラグを符号化すると共に、前記取得フラグが取得しない旨を示す場合、前記フィルタパラメータに関する情報を符号化して、フィルタ符号列を生成するフィルタパラメータ符号化ステップと、
ピクチャ特性を示すピクチャパラメータセットに前記分割領域の情報を符号化すると共に、前記ピクチャパラメータセットを符号列ストリームに多重化し、前記フィルタ符号列と前記ブロック符号列とをブロック単位で前記符号列ストリームに多重化する多重化ステップとを備え、
前記フィルタパラメータ符号化ステップは、前記符号化対象となるブロックがタイル境界に接するか否かを検査し、前記符号化対象となるブロックがタイル境界に接する場合、前記取得フラグを符号化することを特徴とする送信方法。
【請求項６】
ピクチャを構成するブロック単位で符号化する動画像符号化方法により符号化された符号化ストリームをパケット化して符号化データを得るパケット処理ステップと、
パケット化された前記符号化データを送信する送信ステップとをコンピュータに実行させ、
前記符号化方法は、
前記ピクチャが、前記ブロック以上の大きさの複数のタイルに分割された分割領域の情報を設定する領域設定ステップと、
符号化対象となるブロックの画像データを符号化してブロック符号列を生成するとともに、前記符号化対象となるブロックの復号された画像データを取得するブロック符号化ステップと、
前記復号された画像データを前記符号化対象となるブロックのフィルタパラメータに基づいてフィルタリングするループフィルタステップと、
前記符号化対象となるブロックのフィルタパラメータを、隣接する符号化済みのブロックから取得するか否かを示す取得フラグを符号化すると共に、前記取得フラグが取得しない旨を示す場合、前記フィルタパラメータに関する情報を符号化して、フィルタ符号列を生成するフィルタパラメータ符号化ステップと、
ピクチャ特性を示すピクチャパラメータセットに前記分割領域の情報を符号化すると共に、前記ピクチャパラメータセットを符号列ストリームに多重化し、前記フィルタ符号列と前記ブロック符号列とをブロック単位で前記符号列ストリームに多重化する多重化ステップとを備え、
前記フィルタパラメータ符号化ステップは、前記符号化対象となるブロックがタイル境界に接するか否かを検査し、前記符号化対象となるブロックがタイル境界に接する場合、前記取得フラグを符号化することを特徴とする送信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動き補償予測を用いた動画像符号化技術に関し、特にループフィルタとして機能するフィルタ情報を符号化する動画像符号化技術に関する。
【背景技術】
【０００２】
一般的な動画像圧縮符号化であるＭＰＥＧ−４ＡＶＣ／Ｈ．２６４（以下、ＡＶＣ）ではループフィルタとしてデブロックフィルタが利用される。ＡＶＣのデブロックフィルタは、対象画像を細かいブロックに分割し、ブロック毎に隣接するブロックの境界付近の画素を補正する技術である。
【０００３】
デブロックフィルタは、ブロック間の量子化幅や予測方法の相違などによって生じるブロックの境界付近の誤差を画素単位で補正し、補正したピクチャを参照ピクチャとして動き補償予測で利用することで予測効率を向上させている。
【０００４】
特許文献１には、ＡＶＣのデブロックフィルタを制御する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】ＷＯ２００９／０９３４７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＡＶＣのデブロックフィルタはブロックの境界付近の画素しか補正しないため、ブロック境界ではないブロック内部の画素を補正することはできない。そのため、ブロック境界ではないブロック内部の画素に誤差が生じた場合に、予測効率が良くならない場合があった。
【０００７】
このような状況下、本発明者らは、ループフィルタを使用する動画像符号化方式において、ブロック境界ではないブロック内部の画素に誤差が生じた場合でも予測効率を向上させる必要性を認識するに至った。
【０００８】
本発明はこうした状況に鑑みてなされたものであり、その目的は、ブロック境界ではないブロック内部の画素に誤差が生じた場合にもブロック境界ではないブロック内部の画素を補正することで予測効率の向上を図って符号化効率を向上させる動画像符号化技術を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明のある態様の動画像符号化装置は、ピクチャを構成するブロック単位で符号化する動画像符号化装置であって、前記ピクチャが、前記ブロック以上の大きさの複数のタイルに分割された分割領域の情報を設定する領域設定部（１０２）と、符号化対象となるブロックの画像データを符号化してブロック符号列を生成するとともに、前記符号化対象となるブロックの復号された画像データを取得するブロック符号化部（１０２）と、前記復号された画像データを前記符号化対象となるブロックのフィルタパラメータに基づいてフィルタリングするループフィルタ部（１０４）と、前記符号化対象となるブロックのフィルタパラメータを、隣接する符号化済みのブロックから取得するか否かを示す取得フラグを符号化すると共に、前記取得フラグが取得しない旨を示す場合、前記フィルタパラメータに関する情報を符号化して、フィルタ符号列を生成するフィルタパラメータ符号化部（１０５）と、ピクチャ特性を示すピクチャパラメータセットに前記分割領域の情報を符号化すると共に、前記ピクチャパラメータセットを符号列ストリームに多重化し、前記フィルタ符号列と前記ブロック符号列とをブロック単位で前記符号列ストリームに多重化する多重化部（１０７）とを備える。前記フィルタパラメータ符号化部（１０５）は、前記符号化対象となるブロックがタイル境界に接するか否かを検査し、前記符号化対象となるブロックがタイル境界に接する場合、前記取得フラグを符号化する。
【００１１】
本発明のさらに別の態様は、動画像符号化方法である。この方法は、ピクチャを構成するブロック単位で符号化する動画像符号化方法であって、前記ピクチャが、前記ブロック以上の大きさの複数のタイルに分割された分割領域の情報を設定する領域設定ステップと、符号化対象となるブロックの画像データを符号化してブロック符号列を生成するとともに、前記符号化対象となるブロックの復号された画像データを取得するブロック符号化ステップと、前記復号された画像データを前記符号化対象となるブロックのフィルタパラメータに基づいてフィルタリングするループフィルタステップと、前記符号化対象となるブロックのフィルタパラメータを、隣接する符号化済みのブロックから取得するか否かを示す取得フラグを符号化すると共に、前記取得フラグが取得しない旨を示す場合、前記フィルタパラメータに関する情報を符号化して、フィルタ符号列を生成するフィルタパラメータ符号化ステップと、ピクチャ特性を示すピクチャパラメータセットに前記分割領域の情報を符号化すると共に、前記ピクチャパラメータセットを符号列ストリームに多重化し、前記フィルタ符号列と前記ブロック符号列とをブロック単位で前記符号列ストリームに多重化する多重化ステップとを備える。前記フィルタパラメータ符号化ステップは、前記符号化対象となるブロックがタイル境界に接するか否かを検査し、前記符号化対象となるブロックがタイル境界に接する場合、前記取得フラグを符号化する。
【００１３】
本発明のさらに別の態様は、送信装置である。この装置は、ピクチャを構成するブロック単位で符号化する動画像符号化方法により符号化された符号化ストリームをパケット化して符号化データを得るパケット処理部と、パケット化された前記符号化データを送信する送信部とを備える。前記符号化方法は、前記ピクチャが、前記ブロック以上の大きさの複数のタイルに分割された分割領域の情報を設定する領域設定ステップと、符号化対象となるブロックの画像データを符号化してブロック符号列を生成するとともに、前記符号化対象となるブロックの復号された画像データを取得するブロック符号化ステップと、前記復号された画像データを前記符号化対象となるブロックのフィルタパラメータに基づいてフィルタリングするループフィルタステップと、前記符号化対象となるブロックのフィルタパラメータを、隣接する符号化済みのブロックから取得するか否かを示す取得フラグを符号化すると共に、前記取得フラグが取得しない旨を示す場合、前記フィルタパラメータに関する情報を符号化して、フィルタ符号列を生成するフィルタパラメータ符号化ステップと、ピクチャ特性を示すピクチャパラメータセットに前記分割領域の情報を符号化すると共に、前記ピクチャパラメータセットを符号列ストリームに多重化し、前記フィルタ符号列と前記ブロック符号列とをブロック単位で前記符号列ストリームに多重化する多重化ステップとを備える。前記フィルタパラメータ符号化ステップは、前記符号化対象となるブロックがタイル境界に接するか否かを検査し、前記符号化対象となるブロックがタイル境界に接する場合、前記取得フラグを符号化する。
【００１４】
本発明のさらに別の態様は、送信方法である。この方法は、ピクチャを構成するブロック単位で符号化する動画像符号化方法により符号化された符号化ストリームをパケット化して符号化データを得るパケット処理ステップと、パケット化された前記符号化データを送信する送信ステップとを備える。前記符号化方法は、前記ピクチャが、前記ブロック以上の大きさの複数のタイルに分割された分割領域の情報を設定する領域設定ステップと、符号化対象となるブロックの画像データを符号化してブロック符号列を生成するとともに、前記符号化対象となるブロックの復号された画像データを取得するブロック符号化ステップと、前記復号された画像データを前記符号化対象となるブロックのフィルタパラメータに基づいてフィルタリングするループフィルタステップと、前記符号化対象となるブロックのフィルタパラメータを、隣接する符号化済みのブロックから取得するか否かを示す取得フラグを符号化すると共に、前記取得フラグが取得しない旨を示す場合、前記フィルタパラメータに関する情報を符号化して、フィルタ符号列を生成するフィルタパラメータ符号化ステップと、ピクチャ特性を示すピクチャパラメータセットに前記分割領域の情報を符号化すると共に、前記ピクチャパラメータセットを符号列ストリームに多重化し、前記フィルタ符号列と前記ブロック符号列とをブロック単位で前記符号列ストリームに多重化する多重化ステップとを備える。前記フィルタパラメータ符号化ステップは、前記符号化対象となるブロックがタイル境界に接するか否かを検査し、前記符号化対象となるブロックがタイル境界に接する場合、前記取得フラグを符号化する。
【００１５】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１６】
本発明によれば、ブロック境界ではないブロック内部の画素に誤差が生じた場合にもブロック境界ではないブロック内部の画素を補正することで予測効率の向上を実現することができる。
【図面の簡単な説明】
【００１７】
【図１】ＣＴＢとＣＵの関係を説明する図である。
【図２】タイルについて説明する図である。
【図３】第１の実施の形態に係る動画像符号化装置の構成を説明する図である。
【図４】第１の実施の形態に係る動画像符号化装置の動作を説明するフローチャートである。
【図５】ＣＴＢアドレスとＣＴＢ符号順序を説明する図である。
【図６】図３のフィルタパラメータ決定部の構成を説明する図である。
【図７】図３のフィルタパラメータ決定部の動作を説明するフローチャートである。
【図８】図６のエッジタイプフィルタ部の動作を説明するフローチャートである。
【図９】エッジアングルに応じた隣接画素Ａと隣接画素Ｂを説明する図である。
【図１０】右辺や下辺がタイル境界に接しているＣＴＢの画素Ａと画素Ｘを説明する図である。
【図１１】図６のバンドタイプフィルタ部の動作を説明するフローチャートである。
【図１２】符号化対象ＣＴＢと符号化対象ＣＴＢに隣接するＣＴＢを説明する図である。
【図１３】図３のフィルタパラメータ符号化部の動作を説明するフローチャートである。
【図１４】隣接ＣＴＢの有効性の導出を説明するフローチャートである。
【図１５】シンタックスを説明する図である。
【図１６】シンタックスを説明する図である。
【図１７】第１の実施の形態による符号化ストリームの構成の一例を説明する図である。
【図１８】第１の実施の形態に係る動画像復号装置の構成を説明する図である。
【図１９】第１の実施の形態に係る動画像復号装置の動作を説明するフローチャートである。
【図２０】図１８のフィルタパラメータ復号部の動作を説明するフローチャートである。
【図２１】第２の実施の形態に係る動画像符号化装置の動作を説明するフローチャートである。
【図２２】第２の実施の形態による符号化ストリームの構成の一例を説明する図である。
【図２３】第２の実施の形態に係る動画像復号装置の動作を説明するフローチャートである。
【図２４】第３の実施の形態に係るＰＰＳのシンタックスを説明する図である。
【図２５】第３の実施の形態に係る動画像符号化装置の動作を説明するフローチャートである。
【図２６】第３の実施の形態に係る動画像復号装置の動作を説明するフローチャートである。
【図２７】第３の実施の形態のエッジタイプフィルタ部の動作を説明するフローチャートである。
【図２８】第３の実施の形態における隣接ＣＴＢの有効性の導出を説明するフローチャートである。
【図２９】第４の実施の形態に係るＰＰＳのシンタックスを説明する図である。
【図３０】第４の実施の形態における隣接ＣＴＢの有効性の導出を説明するフローチャートである。
【図３１】第５の実施の形態におけるＣＴＢの位置に応じて利用可能なフィルタタイプを説明するための図である。
【図３２】第５の実施の形態におけるエッジタイプフィルタ部の動作を説明するフローチャートである。
【図３３】第６の実施の形態に係るｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの符号列を説明する図である。
【図３４】第６の実施の形態における隣接ＣＴＢの有効性の導出を説明するフローチャートである。
【図３５】第７の実施の形態に係るループフィルタユニットのシンタックスを説明する図である。
【図３６】第７の実施の形態に係るｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの符号列を説明する図である
【図３７】第４の実施の形態に係る動画像復号装置２００の動作を説明するフローチャートである。
【発明を実施するための形態】
【００１８】
［第１の実施の形態］
まず、本発明の実施の形態の前提となる技術を説明する。
【００１９】
２００３年に、国際標準化機構（ＩＳＯ）と国際電気標準会議（ＩＥＣ）のジョイント技術委員会（ＩＳＯ／ＩＥＣ）と、国際電気通信連合電気通信標準化部門（ＩＴＵ−Ｔ）の共同作業によってＡＶＣと呼ばれる動画像符号化方式（ＩＳＯ／ＩＥＣでは１４４９６−１０、ＩＴＵ−ＴではＨ．２６４の規格番号がつけられている）が国際標準として制定された。ＡＶＣではループフィルタとしてデブロックフィルタが利用される。
【００２０】
最初に、デブロックフィルタについて説明する。デブロックフィルタは、量子化パラメータやイントラ予測（画面内予測）であるかインター予測（動き補償予測）であるかなどの情報によって、デブロックフィルタの強度をブロック単位で適応的に変え、ブロックの境界付近の画素間の画素値の差によってデブロックフィルタのＯＮ／OFFを画素単位で制御しながら、ブロック間の量子化幅や予測方法の相違などによって生じるブロックの境界付近の誤差を画素単位で補正して誤差を低減する技術である。デブロックフィルタは、視覚的に目立ちやすいブロック境界の誤差を低減して主観画質を向上させ、さらに、ブロック境界の誤差を低減した画像を参照画像として用いることにより、インター予測の効率を向上させる効果がある。
【００２１】
デブロックフィルタの制御情報として、ＡＶＣではデブロックフィルタをスライス単位でＯＮ／ＯＦＦするためのフラグ、デブロックフィルタの適用度合い（画素単位のＯＮ／ＯＦＦ）を調整するための情報がスライスヘッダにある。
【００２２】
近年のハードウェアやＣＰＵは並列処理を前提とした構成を取ることが一般的となりつつあり、動画像符号化も並列処理に対応することが重要な課題となっている。画像のサイズが大きくなるほどこの課題は大きくなる。そのため、一般的な動画像符号化方式であるＡＶＣなどでは、動画像ピクチャを複数の領域に分割し、各領域を並列に符号化または復号するためにスライスが用いられる。スライスを並列に処理する場合、各スライス境界のデブロックフィルタの処理が課題となる。ＡＶＣのデブロックフィルタでは、画像の左上のブロックからラスタースキャン順に各ブロックについて垂直方向のフィルタと水平方向のフィルタが順に処理されるため、領域境界のデブロックフィルタを事前に処理することができない。そのため、ＡＶＣではスライス単位でデブロックフィルタをＯＮ／ＯＦＦするためのフラグが導入されており、ループフィルタを含めた並列処理を容易に実現する場合などに利用されている。
【００２３】
しかし、ＡＶＣのデブロックフィルタはブロックの境界付近の画素しか補正できないため、ブロック境界ではないブロック内部の画素に誤差が生じた場合に、予測効率が良くならない可能性があった。そこで、ブロック境界のみならず、ブロックの内部の画素を補正するフィルタとしてＳＡＯフィルタ（Ｓａｍｐｌｅ  Ａｄａｐｔａｔｉｖｅ  Ｏｆｆｓｅｔ  Ｆｉｌｔｅｒ）を導入する。
【００２４】
ここで、ＳＡＯフィルタの概要について説明する。ＳＡＯフィルタはブロックの境界付近の画素のみならず、ブロックの内部の全ての画素に対して所定のオフセット値を加え、画素を補正するフィルタである。ブロックの内部の全ての画素に対して処理を行うため、デブロックフィルタのようにブロック間の相違などの情報を利用して詳細な適応処理をすることは困難で、デブロックフィルタよりもより細かい領域単位でオフセット値を調整して性能の向上を図る必要がある。細かい領域単位でオフセット値を調整することで誤差の補正の精度は向上するが、細かい領域単位でオフセット値を符号化するための符号量が増加するため、これを抑制する必要がある。ＳＡＯフィルタの詳細については後述する。
【００２５】
以下、ＳＡＯフィルタを効果的に動作させることのできる動画像符号化装置及び動画像復号装置を実現する。
【００２６】
（符号化ツリーブロック）
本実施の形態では、入力された画像信号（ピクチャ）は符号化ツリーブロック単位に分割されて符号化と復号の処理がなされる。符号化ツリーブロック（ＣＴＢ）は階層的に４分割されて、符号化ユニット（ＣＵ）となる。ＣＴＢ内の各ＣＵはそれぞれイントラ予測またはインター予測を用いて予測符号化される。
【００２７】
本実施の形態では、ＣＴＢを６４（画素）×６４（画素）、最大の分割回数を３回とする。そのため、ＣＵの大きさとして、８×８、１６×１６、３２×３２、６４×６４が存在する。図１はＣＴＢとＣＵの関係を説明する図である。
【００２８】
本実施の形態では、ＣＴＢを６４（画素）×６４（画素）、ＣＴＢの最大の分割回数を３回とするが、この組み合わせに限定されない。また、ＣＵはさらに１つから４つの予測ブロックに分割されて、それぞれの予測ブロックについてイントラ予測またはインター予測を用いて予測符号化されてもよい。
【００２９】
（ピクチャ）
ピクチャは符号化と復号の単位となる１枚の画像である。ピクチャには、イントラ予測のみを用いたＩピクチャ、イントラ予測と単予測のインター予測を用いたＰピクチャ、イントラ予測と、単予測と双予測のインター予測を用いたＢピクチャがある。
【００３０】
（タイル）
本実施の形態では、ピクチャを垂直方向と水平方向に分割された領域として定義することのできるタイルを導入する。
【００３１】
次に図を用いてタイルについて説明する。図２はタイルについて説明する図である。図２（ａ）はピクチャが垂直方向に２つに分割されて、ピクチャがタイル０とタイル１で構成される例である。図２（ｂ）はピクチャが垂直方向と水平方向にそれぞれ２つに分割されて、ピクチャがタイル０からタイル３で構成される例である。ピクチャ内のタイルはラスタースキャン順に処理される。また、タイル内のＣＴＢはラスタースキャン順に処理される。ここでは、説明を容易にするためにタイルがピクチャ内で同一の大きさとなるようにしているが、タイルは同一の大きさである必要はない。図２（ａ）と図２（ｂ）で示されるように、タイルは矩形領域として定義される。
【００３２】
（スライス）
本実施の形態では、スライスはタイル内のＣＴＢをラスタースキャン順に包含する。ここでは、ピクチャ内のスライスは１つであるとして説明するが、スライスは１つのタイル内の１以上のＣＴＢから構成することができる。すなわち、タイルは１以上のスライスに分割されることもできる。また、スライスは複数のタイルを包含することもできる。すなわち、複数のタイルを１つのスライスにまとめることもできる。
【００３３】
本実施の形態では、タイルを導入することで、スライスでは実現できなかった垂直方向に領域を分割することができる。垂直方向に領域を分割することで、各タイルの水平画素数を減ずることができ、各タイルを独立処理（並列処理）する場合に、ラインメモリ量を削減することができる。一方、タイルに分割することで垂直方向の境界が長くなるため、垂直方向の境界の処理が符号化効率や視覚的な違和感などとして認識されて課題となる。これは大画面になるほど影響が大きくなる。また、タイル内のＣＴＢはラスタースキャン順に処理されてスライスはタイル内のＣＴＢをラスタースキャン順に包含する構成とするため、タイルとスライスを組み合わせることで、スライスの垂直方向の境界についても同様の課題が生じる場合がある。なお、スライスのみで領域を構成する場合、垂直方向の境界はスライスの開始ＣＴＢにのみ発生するため、垂直方向の境界に対する課題は小さい。
【００３４】
以下、図面とともに本発明の好適な実施の形態に係る動画像符号化装置、動画像符号化方法および動画像符号化プログラム、ならびに動画像復号装置、動画像復号方法および動画像復号プログラムの詳細について説明する。なお、図面の説明において同一要素には同一符号を付与して重複する説明を省略する。
【００３５】
（動画像符号化装置１００の構成）
図３は、第１の実施の形態に係る動画像符号化装置１００の構成を説明する図である。動画像符号化装置１００は、入力される動画像を、１ピクチャ単位で符号化する装置である。
【００３６】
動画像符号化装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、フレームメモリ、ハードディスクなどを備える情報処理装置などのハードウェアにより実現される。動画像符号化装置１００は、上記の構成要素が動作することにより、以下に説明する機能的な構成要素を実現する。
【００３７】
本実施の形態の動画像符号化装置１００は、画像データ取得部１０１、ＣＴＢ符号化部１０２、フィルタパラメータ決定部１０３、フィルタパラメータ符号化部１０５、ループフィルタ１０４、フレームメモリ１０６、符号列多重部１０７、及び符号化制御部１１０を含む。符号化制御部１１０は、タイル設定部１１１、ループフィルタ設定部１１２、及び領域情報設定部１１３を含む。
【００３８】
（動画像符号化装置１００の機能と動作）
図４は、第１の実施の形態に係る動画像符号化装置１００の動作を説明するフローチャートである。以下、図３と図４を用いて、各部の機能と動作について説明する。ここでは、入力されるピクチャのサイズは７６８×３８４、ビット深度は８ビットとする。この場合、ＣＴＢは水平方向に１２個、垂直方向に６個存在し、ピクチャ内で７２個のＣＴＢが存在する。以降、ピクチャの水平方向のＣＴＢ数をＮｕｍＣｔｂＩｎＰｉｃＷｉｄｔｈとする。ビット深度が８ビットであるため、画素値は０から２５５となる。入力されたピクチャは、ＧＯＰ（Ｇｒｏｕｐ  ｏｆ  Ｐｉｃｔｕｒｅ）として一般的なＭ＝３、Ｎ＝１５で符号化され、ＩピクチャはＩスライスだけ、ＰピクチャはＰスライスだけ、ＢピクチャはＢスライスだけで符号化されるものとする。ここでは、ピクチャのサイズを７６８×３８４としてＣＴＢの倍数に設定したがこれに限定されない。また、ＧＯＰをＭ＝３、Ｎ＝１５としたが、ＩピクチャだけとなるＮ＝１などとしてもよく、これらに限定されない。
【００３９】
最初に、タイル設定部１１１は、タイルを設定する（Ｓ１００）。これ以降、特に断らない限り、ピクチャは図２（ｂ）のように４つのタイルから構成されるものとする。
【００４０】
次に、ループフィルタ設定部１１２は、ループフィルタ情報を設定する（Ｓ１０１）。ここで、ループフィルタ情報について説明する。ループフィルタ情報とは、ループフィルタインタリーブフラグ（ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇ）である。ループフィルタインタリーブフラグは、フィルタパラメータの符号化単位がＣＴＢ単位で多重化するかピクチャ単位で多重化するかを示すフラグである。ループフィルタインタリーブフラグが１であれば、フィルタパラメータがＣＴＢ単位で多重化されることを示し、ループフィルタインタリーブフラグが０であれば、フィルタパラメータがピクチャ単位で多重化されることを示す。以降、フラグは０または１の値の１ビットの情報であるとする。
【００４１】
本実施の形態では、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇは１に設定される。つまり、フィルタパラメータはＣＴＢ単位で多重化される。
【００４２】
まず、領域情報設定部１１３は、ＣＴＢに対してＣＴＢアドレスとＣＴＢ符号順序を設定する（Ｓ１０２）。ここで、ＣＴＢアドレスとＣＴＢ符号順序について説明する。図５はＣＴＢアドレスとＣＴＢ符号順序を説明する図である。
【００４３】
図５（a）はピクチャ内の各ＣＴＢに設定されるＣＴＢアドレスを示す。ＣＴＢアドレスは図５（a）のように、ピクチャ内の各ＣＴＢに対してラスタースキャン順に１ずつインクリメントして設定される。図５（ｂ）は図２（ｂ）のようにピクチャが４つのタイルから構成される場合のピクチャ内の各ＣＴＢに設定されるＣＴＢ符号順序を示す。第１のタイルはＣＴＢ符号順序が０から１７であり、第２のタイルはＣＴＢ符号順序が１８から３５であり、第３のタイルはＣＴＢ符号順序が３６から５３であり、第４のタイルはＣＴＢ符号順序が５４から７１である。ＣＴＢ符号順序は図５（ｂ）のように、タイル内の各ＣＴＢに対してラスタースキャン順に１ずつインクリメントして設定される。図５で示されるように、タイルが垂直方向に分割される場合、ＣＴＢアドレス（ＣＴＢのアドレス順序）と、ＣＴＢが符号化される順序とが同一とはならないブロックが発生する。また、図５で示されるように、ＣＴＢアドレスはピクチャに応じたラスタースキャン順で定まり、ＣＴＢ符号順序はタイルに応じたラスタースキャン順で定まる。
【００４４】
図５で示されるように、ＣＴＢアドレスはタイルに依存せずピクチャのサイズによって設定され、ＣＴＢ符号順序はピクチャのサイズとタイルのサイズによって設定される。つまり、ＣＴＢアドレスはピクチャ内の位置を示し、ＣＴＢアドレスによってＣＴＢのピクチャ内での位置関係を得ることができる。ＣＴＢがいずれのタイルに属するかを識別するのに、ＣＴＢアドレスとＣＴＢ符号順序のそれぞれまたは両方を用いてもよい。
【００４５】
また、符号化制御部１１０は、ＳＰＳ、ＰＰＳ、スライスヘッダなどピクチャを符号化するために必要となる情報を必要に応じて設定して管理する。ＳＰＳ、ＰＰＳ、スライスヘッダについては後述する。そして、画像データ取得部１０１、ＣＴＢ符号化部１０２、フィルタパラメータ決定部１０３、フィルタパラメータ符号化部１０５、ループフィルタ１０４、フレームメモリ１０６、及び符号列多重部１０７を制御して符号化ストリームを生成する。
【００４６】
なお、タイル、ループフィルタ情報、ＳＰＳ、ＰＰＳ、スライスヘッダなどピクチャを符号化するために必要となる情報は動画像符号化装置１００内で共有されているものとし、これらデータのフローの説明は特に断らない限り省略する。
【００４７】
次に、ＣＴＢ符号順序に従って、ピクチャ内の全てのＣＴＢについて以下の処理が繰り返し行われる（Ｓ１０３からＳ１１１）。
【００４８】
次に、画像データ取得部１０１は、符号化対象となるＣＴＢである符号化対象ＣＴＢのピクチャ内の位置に基づいて、端子１０より入力される画像データから符号化対象ＣＴＢに該当するＣＴＢの原画像データを取得する（Ｓ１０４）。そして、画像データ取得部１０１はＣＴＢの原画像データをＣＴＢ符号化部１０２に供給する。また、画像データ取得部１０１はＣＴＢの原画像データをフィルタパラメータ決定部１０３に供給する。ここで、符号化対象ＣＴＢが属するタイルを符号化対象タイル、符号化対象ＣＴＢが属するスライスを符号化対象スライスとする。
【００４９】
次に、エントロピー符号部の設定が行われる（Ｓ１０５）。ここで、エントロピー符号部の設定について説明する。符号化対象ＣＴＢがスライスまたはタイルの最初のＣＴＢであれば、ＣＴＢ符号化部１０２はＣＴＢ符号化部１０２の内部のエントロピー符号部を初期化し、フィルタパラメータ符号化部１０５はフィルタパラメータ符号化部１０５の内部のエントロピー符号部を初期化する。なお、ＣＴＢ符号化部１０２の内部のエントロピー符号部とフィルタパラメータ符号化部１０５の内部のエントロピー符号部は、ＡＶＣで利用されている算術符号化のＣＡＢＡＣであるとする。
【００５０】
次に、ＣＴＢ符号化部１０２は、画像データ取得部１０１より供給されるＣＴＢの原画像データをスライスタイプに基づいて、画面内予測（イントラ予測）や動き補償予測（インター予測）を行って誤差信号を算出し、誤差信号について直交変換や量子化処理を用いて符号化し、ＣＴＢ符号列を生成するとともに、局部復号を行って復号画像データを生成する（Ｓ１０６）。なお、ＣＴＢ符号化部１０２で行われる符号化の処理は、ＣＴＢを階層的に符号化して量子化などによって符号化歪が生じる可能性のある方法であればよく、ここでは詳細な説明は省略する。また、局部復号についても一般的な動画像符号化で行われる手法であるためここでは詳細な説明は省略するが、復号画像データは、動画像符号化装置１００の出力する符号化ストリームを復号した際に得られる画像データである。ＣＴＢ符号化部１０２は、生成したＣＴＢ符号列を符号列多重部１０７に供給する。また、ＣＴＢ符号化部１０２は、復号画像データをフィルタパラメータ決定部１０３とループフィルタ１０４に供給する。
【００５１】
次に、フィルタパラメータ決定部１０３は、画像データ取得部１０１より供給されるＣＴＢの原画像データとＣＴＢ符号化部１０２より供給される復号画像データに基づいてフィルタパラメータを決定する（Ｓ１０７）。フィルタパラメータ決定部１０３は、フィルタパラメータをフィルタパラメータ符号化部１０５とループフィルタ１０４に供給する。フィルタパラメータ決定部１０３の詳細については後述する。
【００５２】
ループフィルタ１０４は、フィルタパラメータ決定部１０３より供給されるフィルタパラメータに基づいてＣＴＢ符号化部１０２より供給される復号画像データに対してループフィルタを実行する（Ｓ１０８）。ループフィルタを実行して得た新たな復号画像データをフレームメモリ１０６に供給する。
【００５３】
次に、フィルタパラメータ符号化部１０５は、フィルタパラメータ決定部１０３より供給されるフィルタパラメータをループフィルタユニットに符号化し（Ｓ１０９）、ループフィルタユニットを符号列多重部１０７に供給する。フィルタパラメータ符号化部１０５とループフィルタユニットについては後述する。
【００５４】
次に、符号列多重部１０７は、ＣＴＢ符号化部１０２より供給されるＣＴＢ符号列とフィルタパラメータ符号化部１０５より供給されるループフィルタユニットを、必要に応じてＳＰＳ、ＰＰＳ、スライスヘッダなどとともに符号化ストリームとして多重化し（Ｓ１１０）、符号化ストリームを端子１１より出力する。符号列多重部１０７の詳細については後述する。
【００５５】
ピクチャ内の全てのＣＴＢについて処理が完了すれば、処理を終了する。
【００５６】
（フィルタパラメータ決定部１０３）
続いて、フィルタパラメータ決定部１０３の詳細な構成について説明する。図６はフィルタパラメータ決定部１０３の構成を説明する図である。図６で示されるように、フィルタパラメータ決定部１０３は、フィルタパラメータ設定部１２０、ループフィルタ実行部１２１、誤差計測部１２２、及びフィルタパラメータ確定部１２３で構成される。端子１２はＣＴＢ符号化部１０２に接続され、端子１３は画像データ取得部１０１に接続され、端子１４はフィルタパラメータ符号化部１０５とループフィルタ１０４に接続されている。ループフィルタ実行部１２１は、フィルタタイプ判定部１３０、エッジタイプフィルタ１３１、バンドタイプフィルタ１３２を含む。
【００５７】
引き続いて、フィルタパラメータ決定部１０３の動作について説明する。図７はフィルタパラメータ決定部１０３の動作を説明するフローチャートである。以下、図６と図７を用いて、フィルタパラメータ決定部１０３の動作について説明する。
【００５８】
最初に、フィルタパラメータ設定部１２０は、端子１２より供給される復号画像データと端子１３より供給される原画像データに基づいて、フィルタパラメータ候補リストを生成し（Ｓ１２０）、生成したフィルタパラメータ候補リストをループフィルタ実行部１２１に供給する。フィルタパラメータ設定部１２０の詳細については後述する。
【００５９】
次に、フィルタパラメータ候補リストに登録されている全てのフィルタパラメータについて以下の処理が繰り返される（Ｓ１２１からＳ１２６）。
【００６０】
まず、ループフィルタ実行部１２１は、端子１２より供給される復号画像データに対してフィルタパラメータに基づいてループフィルタを適用して新たな復号画像データを生成し（Ｓ１２２）、当該復号画像データを誤差計測部１２２に供給する。ループフィルタ実行部１２１の詳細については後述する。
【００６１】
誤差計測部１２２は、ループフィルタ実行部１２１より供給される復号画像データと端子１３より供給される原画像データの誤差評価値を算出する（Ｓ１２３）。ここでは、誤差評価値はブロック内の復号画像データと原画像データの絶対差分和（ＳＡＤ）とする。
【００６２】
次に、誤差計測部１２２は、誤差評価値が最小であるか検査する（Ｓ１２４）。誤差評価値が最小であれば（Ｓ１２４のＹ）、フィルタパラメータをフィルタパラメータ確定部１２３に供給し、フィルタパラメータ確定部１２３は当該フィルタパラメータを保持する（Ｓ１２５）。
【００６３】
誤差評価値が最小でなければ（Ｓ１２４のＮ）、次のフィルタパラメータが処理される（Ｓ１２６）。フィルタパラメータ候補リストに登録されている全てのフィルタパラメータの処理が完了すると、フィルタパラメータ確定部１２３が保持している誤差評価値が最小であるフィルタパラメータをフィルタパラメータとして確定して（Ｓ１２７）、処理を終了する。
【００６４】
ここでは、誤差評価値としてＳＡＤを用いたが、フィルタパラメータが算出できればよく、これに限定されずＳＳＤなどを用いても良い。また、復号画像データと原画像データの誤差だけでなく、フィルタパラメータを伝送するのに必要な符号量を加味して評価しても良い。
【００６５】
（フィルタパラメータ設定部１２０）
続いて、フィルタパラメータ設定部１２０の詳細について説明する。
【００６６】
最初に、フィルタパラメータについて説明する。フィルタパラメータは、フィルタタイプ、バンド幅、バンド位置、オフセット０、オフセット１、オフセット２、オフセット３、オフセット４で構成される。
【００６７】
フィルタタイプには、フィルタタイプ０、フィルタタイプ１、フィルタタイプ２、フィルタタイプ３、フィルタタイプ４、及びフィルタタイプ５の６つがある。
【００６８】
フィルタタイプ０はループフィルタを処理しないことを示し、フィルタタイプ１はループフィルタがバンドタイプフィルタであることを示し、フィルタタイプ２からフィルタタイプ５はループフィルタがエッジタイプフィルタであることを示す。
【００６９】
フィルタパラメータ設定部１２０は、復号画像データと原画像データの誤差評価値が閾値以下であれば、フィルタタイプをフィルタタイプ０だけで構成されるフィルタパラメータ候補リストを生成し、誤差評価値が閾値以下でなければ、フィルタパラメータが取り得る全ての組み合わせのフィルタパラメータを含むフィルタパラメータ候補リストを生成する。
【００７０】
（ループフィルタ実行部１２１）
続いて、ループフィルタ実行部１２１の詳細について説明する。ループフィルタ実行部１２１は、フィルタタイプ判定部１３０とエッジタイプフィルタ１３１、バンドタイプフィルタ１３２で構成される。
【００７１】
引き続いて、ループフィルタ実行部１２１の動作について説明する。
最初に、フィルタタイプ判定部１３０は、フィルタタイプの判定をする。フィルタタイプが０であれば、端子１２より供給される復号画像データをフィルタ適用後の復号画像データとして誤差計測部１２２に出力する。フィルタタイプが１であれば、バンドタイプフィルタ１３２は、端子１２より供給される復号画像データにフィルタパラメータに基づいてバンドタイプフィルタを適用し、フィルタ適用後の復号画像データを誤差計測部１２２に出力する。フィルタタイプが２から５であれば、エッジタイプフィルタ１３１は、端子１２より供給される復号画像データにフィルタパラメータに基づいてエッジタイプフィルタを適用し、フィルタ適用後の復号画像データを誤差計測部１２２に出力する。
【００７２】
（エッジタイプフィルタ１３１）
続いて、エッジタイプフィルタ１３１の詳細について説明する。エッジタイプフィルタ１３１は、エッジアングル設定部１４１、隣接画素設定部１４２、エッジタイプ判定部１４３、エッジオフセット値設定部１４４、およびエッジオフセット値加算部１４５を含む。
【００７３】
図８はエッジタイプフィルタ１３１の動作を説明するフローチャートである。以下、図８を用いて、エッジタイプフィルタ１３１の動作を説明する。
【００７４】
最初に、エッジアングル設定部１４１は、エッジアングルの判定を行う（Ｓ１３０）。エッジアングルｎはフィルタタイプｎとする。ｎは２，３，４，５である。次に、符号化ツリーブロック内の６４個の画素Ｘに対してラスタースキャン順に以下の処理を繰り返して行う（Ｓ１３１からＳ１３９）。Ｘは０、１、２、・・・、６３である。
【００７５】
まず、隣接画素設定部１４２は、エッジアングルに応じた隣接画素Ａと隣接画素Ｂを設定する（Ｓ１３２）。エッジアングルに応じた隣接画素Ａと隣接画素Ｂについては後述する。次に、隣接画素設定部１４２は隣接画素Ａまたは隣接画素Ｂがピクチャ外であるか検査する（Ｓ１３３）。隣接画素Ａまたは隣接画素Ｂがピクチャ外であれば（Ｓ１３３のＹ）、エッジオフセット値設定部１４４はオフセット値を０に設定して（Ｓ１３７）、エッジオフセット値加算部１４５は画素Ｘにオフセット値を加算して処理画素Ｘ'を算出する（Ｓ１３８）。隣接画素Ａまたは隣接画素Ｂがピクチャ外でなければ（Ｓ１３３のＮ）、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが１であるか検査する（Ｓ１４０）。ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが１であれば（Ｓ１４０のＹ）、隣接画素設定部１４２は隣接画素Ａまたは隣接画素Ｂがタイル外であるか検査する（Ｓ１３４）。隣接画素Ａまたは隣接画素Ｂがタイル外であるとは、隣接画素Ａまたは隣接画素Ｂが画素Ｘとは異なるタイルに属するＣＴＢに含まれることである。ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが１でなければ（Ｓ１４０のＮ）、エッジタイプ判定部１４３は、エッジタイプの判定をする（Ｓ１３５）。
【００７６】
隣接画素Ａまたは隣接画素Ｂがタイル外であれば（Ｓ１３４のＹ）、エッジオフセット値設定部１４４はオフセット値を０に設定して（Ｓ１３７）、エッジオフセット値加算部１４５は画素Ｘにオフセット値を加算して処理画素Ｘ'を算出する（Ｓ１３８）。隣接画素Ａまたは隣接画素Ｂがタイル外でなければ（Ｓ１３４のＮ）、エッジタイプ判定部１４３は、エッジタイプの判定をする（Ｓ１３５）。エッジタイプの判定については後述する。次に、エッジオフセット値設定部１４４は、オフセット値の設定をする（Ｓ１３６）。次に、エッジオフセット値加算部１４５は、画素Ｘにオフセット値を加算して処理画素Ｘ'を算出する（Ｓ１３８）。処理画素Ｘ'の算出については後述する。
【００７７】
（エッジアングルに応じた隣接画素Ａと隣接画素Ｂ）
図９はエッジアングルに応じた隣接画素Ａと隣接画素Ｂを説明する図である。エッジアングル１の場合、隣接画素Ａは画素Ｘの左の画素、隣接画素Ｂは画素Ｘの右の画素となる（図９（ａ））。エッジアングル２の場合、隣接画素Ａは画素Ｘの上の画素、隣接画素Ｂは画素Ｘの下の画素となる（図９（ｂ））。エッジアングル３の場合、隣接画素Ａは画素Ｘの右上の画素、隣接画素Ｂは画素Ｘの左下の画素となる（図９（ｃ））。エッジアングル４の場合、隣接画素Ａは画素Ｘの左上の画素、隣接画素Ｂは画素Ｘの右下の画素となる（図９（ｄ））。このように、水平方向、垂直方向、右斜め方向、及び左斜め方向に対してエッジタイプフィルタを作用させることで、各方向に生じた誤差を補正することが可能となる。ここで、エッジアングル１、エッジアングル２、エッジアングル３、及びエッジアングル４はそれぞれ、フィルタタイプ２、フィルタタイプ３、フィルタタイプ４、及びフィルタタイプ５に割り当てられる。
【００７８】
以上のように、エッジタイプフィルタ１３１において、フィルタパラメータがＣＴＢ単位で多重化されている（ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが１）場合、隣接画素Ａまたは隣接画素Ｂがタイル外であれば、オフセット値を０に設定してループフィルタを作用させないようにすることで、ループフィルタの動作をＣＴＢ単位で完結させることができる。そのため、図１０のようにＣＴＢ内の画素で右辺や下辺がタイル境界に接しているＣＴＢ内の画素Ｘにループフィルタを作用させるために必要となるフィルタ適用前の画素Ａと画素Ｘは、タイル境界を跨いで保持される必要がなくなる。
【００７９】
（エッジタイプの判定）
エッジタイプは、画素Ｘと隣接画素Ａの差分の符号と、画素Ｘと隣接画素Ｂの差分の符号の和を加算した値である符号和ＳＳで決定する。画素ｍの画素値をＰ（ｍ）とすると、符号和ＳＳは式（１）で算出される。
ＳＳ＝Ｓｉｇｎ（Ｐ（Ｘ）−Ｐ（Ａ））＋Ｓｉｇｎ（Ｐ（Ｘ）−Ｐ（Ｂ））；    式（１）
ここで、Ｓｉｇｎ（ｉ）は入力値ｉが０未満であれば−１を、入力値ｉが０以上であれば１を返す関数である。
【００８０】
ＳＳが０、−２、−１、１、２である場合のエッジタイプをそれぞれ０、１、２、３、４とする。エッジタイプの０、１、２、３、４のオフセット値としてオフセット０、オフセット１、オフセット２、オフセット３、オフセット４がそれぞれ設定される。ここで、ＳＳが０である場合は画素Ｘ、隣接画素Ａ、及び隣接画素Ｂが直線的に並んでいるため、誤差はないとしてオフセット０は０に設定する。ＳＳが０でない場合は歪みを補正するためオフセット０からオフセット４のそれぞれを適切な値に設定する。
【００８１】
（エッジタイプフィルタの処理画素Ｘ'の算出）
画素Ｘのエッジタイプフィルタ適用後の処理画素Ｘ'は式（２）で算出される。
Ｐ（Ｘ'）＝Ｐ（Ｘ）＋ＯＦＦＳＥＴ［ＳＳ］；  式（２）
ここで、ＯＦＦＳＥＴ［ｍ］はオフセットｍである（ｍ＝０，１，・・・，４）。
【００８２】
以上のように、エッジタイプフィルタでは、水平方向、垂直方向、右斜め方向、及び左斜め方向に対して、隣接画素との差分の符号によって、画素単位で適応的に誤差を補正することが可能となる。
【００８３】
（バンドタイプフィルタ１３２）
続いて、バンドタイプフィルタ１３２の詳細について説明する。バンドタイプフィルタ１３２は、ハンド幅設定部１５１、バンド位置設定部１５２、バンドオフセット値設定部１５３、およびバンドオフセット値加算部１５４を含む。
【００８４】
図１１はバンドタイプフィルタ１３２の動作を説明するフローチャートである。以下、図１１を用いて、バンドタイプフィルタの動作を説明する。
【００８５】
最初に、ハンド幅設定部１５１は、バンド幅を設定する（Ｓ１５０）。
【００８６】
（バンド幅）
ここで、バンド幅について説明する。バンド幅は、入力画像の取り得る画素値の範囲を複数のバンドに分割する際のバンド幅である。本実施の形態では、バンド幅は３２とする。本実施の形態では入力画像は８ビットであるため０から２５５までの画素値の範囲を有するため、０から３１（バンド０）、３２から６３（バンド１）、６４から９５（バンド２）、９６から１２７（バンド３）、１２８から１５９（バンド４）、１６０から１９１（バンド５）、１９２から２２３（バンド６）、２２４から２５５（バンド７）の８つのバンドに分割される。
【００８７】
このようにバンド幅を設定して、バンド幅を大きくすることで、広範囲の画素値を一括して補正することができ、バンド幅を小さくすることで、狭範囲の画素値を一括して補正することができる。例えば、あるピクチャ内の画素の取り得る画素値のレンジが広い場合にはバンド幅が大きくなるようにし、あるピクチャ内の画素の取り得る画素値のレンジが狭い場合には、バンド幅が小さくなるようにして、ピクチャの特性に応じて、復号画像を適切に補正することができる。本実施の形態ではバンド幅は固定値として説明しているが、入力画像の取り得る画素値の範囲を１以上のバンドに分割できればよく、１６や１２８でもよい。また、バンド幅をＰＰＳなどに多重化して伝送し、ピクチャ内の画素の取り得る画素値のレンジなどに合わせて適応的に変更することで、効果的にバンドタイプフィルタを作用させることができる。
【００８８】
ステップＳ１５０に続いて、３つのバンド位置について以下の処理が繰り返される（Ｓ１５１からＳ１５８）。ここで、３つのバンド位置について説明する。１番目のバンド位置はフィルタパラメータに含まれるバンド位置である。２番目のバンド位置は１番目のバンド位置を１つだけずらしたバンド位置となる。例えば、１番目のバンド位置がバンド２であったとすると、２番目のバンド位置はバンド３となる。同様に、３番目のバンド位置は２番目のバンド位置を１つだけずらしたバンド位置となる。
【００８９】
バンド位置設定部１５２は、ｂ番目のバンド位置を設定する（Ｓ１５２）。ここで、ｂは０と１である。バンド位置は、バンド幅によって分割されたバンドのいずれかを示す値であって、ここでは、０から７までの整数となる。例えば、バンド位置の０はバンド０を示し、バンド位置の２はバンド３を示す。
【００９０】
ステップＳ１５２に続いて、バンドオフセット値設定部１５３は、バンド毎のオフセット値を設定する（Ｓ１５３）。バンド位置で示されたバンドのオフセット値はオフセット０に設定されて、バンド位置で示されたバンド以外のバンドのオフセット値は０に設定される。
【００９１】
次に、画素値の符号化ツリーブロック内の６４個の画素Ｘに対してラスタースキャン順に以下の処理が行なわれる（Ｓ１５４からＳ１５７）。Ｘは０、１、・・・、６３である。
【００９２】
まず、バンドオフセット値加算部１５４は、画素Ｘの属するバンドであるｘｂを決定する（Ｓ１５５）。次に、バンドオフセット値加算部１５４は、画素Ｘに画素Ｘが属するバンドのオフセット値Ｏｂ［ｘｂ］を加算して処理画素Ｘ'を算出する（Ｓ１５６）。
【００９３】
（バンドタイプフィルタの処理画素Ｘ'の算出）
画素Ｘのバンドタイプフィルタ適用後の処理画素Ｘ'は式（３）で算出される。
Ｐ（Ｘ'）＝Ｐ（Ｘ）＋Ｏｂ［ｘｂ］；式（３）
【００９４】
以上のように、バンドタイプフィルタは特定範囲内の画素値の画素だけを補正することができるため、平坦領域に発生し易いノイズなどを低減する効果がある。特に、４：２：０フォーマットなど輝度信号より解像度を減らした色差信号については、輝度信号よりもがＤＣに誤差が発生し易くエッジが少ないため、バンドタイプフィルタの効果が大きい。また、隣接画素を参照しないためエッジタイプのオフセットよりもフィルタリングの処理量やメモリ量を少なく実現することができる。
【００９５】
（ループフィルタ１０４）
続いて、ループフィルタ１０４について説明する。ループフィルタ１０４は、ループフィルタ実行部１２１と同一の機能と動作を有するため、ここでの説明は省略する。
【００９６】
（フィルタパラメータ符号化部１０５）
続いて、フィルタパラメータ符号化部１０５の詳細について説明する。図１２は符号化対象ＣＴＢと符号化対象ＣＴＢに隣接するＣＴＢを説明する図である。図１３はフィルタパラメータ符号化部１０５の動作を説明するフローチャートである。以下、図１２と図１３を用いて、フィルタパラメータ符号化部１０５の動作を説明する。
【００９７】
最初に、隣接ＣＴＢの有効性であるａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇとａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇを導出する（Ｓ１６０）。次に、ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇが１であるか検査する（Ｓ１６１）。ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇが１であれば（Ｓ１６１のＹ）、符号化対象ＣＴＢと符号化対象ＣＴＢの左に位置するＣＴＢのフィルタパラメータが同一であるか検査する（Ｓ１６２）。ここで、符号化対象ＣＴＢの左に位置するＣＴＢは図１２のＣＴＢのＡである。符号化対象ＣＴＢと符号化対象ＣＴＢの左に位置するＣＴＢのフィルタパラメータが同一であれば（Ｓ１６２のＹ）、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇを１としてｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇを符号化し（Ｓ１６３）、処理を終了する。符号化対象ＣＴＢと符号化対象ＣＴＢの左に位置するＣＴＢのフィルタパラメータが同一でなければ（Ｓ１６２のＮ）、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇを０としてｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇを符号化する（Ｓ１６４）。
【００９８】
ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇが１でない場合と（Ｓ１６１のＮ）、ステップＳ１６４に続いて、ａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇが１であるか検査する（Ｓ１６５）。ａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇが１であれば（Ｓ１６５のＹ）、符号化対象ＣＴＢと符号化対象ＣＴＢの上に位置するＣＴＢのフィルタパラメータが同一であるか検査する（Ｓ１６６）。ここで、符号化対象ＣＴＢの上に位置するＣＴＢは図１２のＣＴＢのＢである。符号化対象ＣＴＢと符号化対象ＣＴＢの上に位置するＣＴＢのフィルタパラメータが同一であれば（Ｓ１６６のＹ）、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇを１としてｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇを符号化し（Ｓ１６７）、処理を終了する。符号化対象ＣＴＢと符号化対象ＣＴＢの上に位置するＣＴＢのフィルタパラメータが同一でなければ（Ｓ１６６のＮ）、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇを０としてｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇを符号化する（Ｓ１６８）。ステップＳ１６８に続いて、ループフィルタ符号化パラメータであるｌｏｏｐｆｉｌｔｅｒ＿ｃｏｄ＿ｐａｒａｍ（）を符号化する。ここで、ループフィルタ符号化パラメータはフィルタパラメータの全ての要素を符号化した符号列である。
【００９９】
なお、フィルタパラメータ符号化部１０５は、符号化対象ＣＴＢの左と上に位置するＣＴＢのフィルタパラメータを参照するため、ピクチャ内の全てのＣＴＢのフィルタパラメータを保持しているものとする。
【０１００】
ここで、ＣＴＢ単位でフィルタパラメータを符号化する場合、全てのフィルタパラメータをループフィルタ符号化パラメータとして符号化すると、フィルタパラメータの符号化に膨大な符号量が必要となって、画像データを符号化したＣＴＢ符号列に十分に符号量を割り当てることができなくなり、結果的に符号化効率が低下する可能性がある。また、同一オブジェクトに属するＣＴＢに対して異なるフィルタパラメータを用いた場合、同一オブジェクト内でのループフィルタの特性の相違がブロック歪みとして視覚的に認識される可能性がある。そのため、一般的には同一オブジェクト内ではフィルタパラメータは同一になるようにフィルタパラメータが設定される可能性が高い。よって、以上のように、符号化対象ＣＴＢのフィルタパラメータが符号化対象ＣＴＢに隣接する符号化済みのＣＴＢのフィルタパラメータと同一である場合には、符号化対象ＣＴＢのフィルタパラメータとして符号化対象ＣＴＢに隣接する符号化済みのＣＴＢのフィルタパラメータを利用することを示す１ビットのフラグを符号化することで、視覚的な劣化を伴うことなく、ループフィルタ符号化パラメータに要する符号量を１ビットに削減して、符号化効率を向上させることができる。なお、ループフィルタ符号化パラメータの詳細については後述するが、ループフィルタ符号化パラメータの符号化に要する符号量は１ビットよりも十分に大きな符号量となる。一方、符号化対象ＣＴＢのフィルタパラメータが符号化対象ＣＴＢに隣接する符号化済みのＣＴＢのフィルタパラメータと同一でない場合には、符号化対象ＣＴＢのフィルタパラメータとして符号化対象ＣＴＢに隣接する符号化済みのＣＴＢのフィルタパラメータを利用しないことを示す１ビットのフラグを符号化し、ループフィルタ符号化パラメータを符号化することで、ＣＴＢ毎にフィルタパラメータを変更できる。
【０１０１】
ここで、隣接ＣＴＢの有効性であるａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇとａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇの導出について説明する。図１４は隣接ＣＴＢの有効性の導出を説明するフローチャートである。最初に、ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇとａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇは１に設定される（Ｓ１８０）。次に、符号化対象ＣＴＢの左辺がピクチャ境界に接しているか検査する（Ｓ１８１）。符号化対象ＣＴＢの左辺がピクチャ境界に接していれば（Ｓ１８１のＹ）、ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇを０とする（Ｓ１８４）。符号化対象ＣＴＢの左辺がピクチャ境界に接していなければ（Ｓ１８１のＮ）、符号化対象ＣＴＢの左辺がタイル境界に接しているか検査する（Ｓ１８２）。ここで、符号化対象ＣＴＢの左辺がタイル境界に接しているとは、符号化対象ＣＴＢと符号化対象ＣＴＢの左に位置するＣＴＢが別のタイルに属することである。一方、符号化対象ＣＴＢの左辺がタイル境界に接していないとは、符号化対象ＣＴＢと、符号化対象ＣＴＢの左に位置するＣＴＢとが同一のタイルに属することである。符号化対象ＣＴＢの左辺がタイル境界に接していれば（Ｓ１８２のＹ）、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが１であるか検査する（Ｓ１８３）。ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが１であれば（Ｓ１８３のＹ）、ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇを０とする（Ｓ１８４）。ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが１でない場合（Ｓ１８３のＮ）は、ステップＳ１８４はスキップされる。符号化対象ＣＴＢの左辺がタイル境界に接していない場合（Ｓ１８２のＮ）は、ステップＳ１８３とステップＳ１８４はスキップされる。
【０１０２】
次に、符号化対象ＣＴＢの上辺がピクチャ境界に接しているか検査する（Ｓ１８５）。符号化対象ＣＴＢの上辺がピクチャ境界に接していれば（Ｓ１８５のＹ）、ａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇを０とする（Ｓ１８８）。符号化対象ＣＴＢの上辺がピクチャ境界に接していなければ（Ｓ１８５のＮ）、符号化対象ＣＴＢの上辺がタイル境界に接しているか検査する（Ｓ１８６）。ここで、符号化対象ＣＴＢの上辺がタイル境界に接しているとは、符号化対象ＣＴＢと符号化対象ＣＴＢの上に位置するＣＴＢが別のタイルに属することである。一方、符号化対象ＣＴＢの上辺がタイル境界に接していないとは、符号化対象ＣＴＢと、符号化対象ＣＴＢの上に位置するＣＴＢとが同一のタイルに属することである。符号化対象ＣＴＢの上辺がタイル境界に接していれば（Ｓ１８６のＹ）、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが１であるか検査する（Ｓ１８７）。ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが１であれば（Ｓ１８７のＹ）、ａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇを０とする（Ｓ１８８）。ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが１でない場合（Ｓ１８７のＮ）は、ステップＳ１８８はスキップされる。符号化対象ＣＴＢの上辺がタイル境界に接していない場合（Ｓ１８６のＮ）は、ステップＳ１８７とステップＳ１８８はスキップされる。
【０１０３】
ここで、フィルタパラメータがＣＴＢ単位で多重化され（ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが１）、符号化処理がタイル単位で独立（並列）に行なわれるような場合に、符号化対象ＣＴＢの左辺がタイル境界に接している符号化対象ＣＴＢについて、左に位置するＣＴＢからフィルタパラメータを取得することを許可すると、左に位置するＣＴＢのフィルタパラメータが確定されるまで、符号化対象ＣＴＢとフィルタパラメータと左に位置するＣＴＢのフィルタパラメータとが同一であるか検査することができないため、待ち時間が生じる可能性がある。そこで、ＣＴＢの左辺がタイル境界に接しているような符号化対象ＣＴＢについては、左に位置するＣＴＢのフィルタパラメータの利用を禁止する。さらに、ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇを０としてｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇを符号化しないようにすることで、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇの符号量を削減し、符号化効率の低下を抑制する。また、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇを符号化しないようにすることで、明示的に左に位置するＣＴＢのフィルタパラメータの利用を禁止することができる。同様に、符号化対象ＣＴＢの上辺がタイル境界に接している場合に、ａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇを０としてｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇを符号化しないようにすることで符号化効率の低下を抑制し、明示的に上に位置するＣＴＢのフィルタパラメータの利用を禁止することができる。
【０１０４】
（シンタックス）
続いて、本実施の形態に係るシンタックスについて説明する。符号化においてはシンタックスに含まれる各要素が符号化ストリーム中に符号化される。一方、復号においては、シンタックスに含まれる各要素が符号化ストリームから復号されて、符号化において符号化された要素と同じ値を取得することができる。これ以降、特に断らない限り、シンタックスを構成する各要素は固定長ビットで符号列となる。図１５と図１６はシンタックスを説明する図である。以下、図１５と図１６を用いて、シンタックスについて説明する。ここでは、説明を容易にするためにシンタックスを構成する各要素は固定長ビットで符号列となるとしたが、可変長ビットとしてもよい。
【０１０５】
最初に、ＳＰＳ（Ｓｅｑｕｅｎｃｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ）について説明する。ＳＰＳはシーケンス（符号化ストリーム）の特性を決定するためのパラメータ群を定義するパラメータセットである。ピクチャのサイズ、ビット深度、ＣＴＢのサイズ、ＣＴＢの分割回数などが定義される。
【０１０６】
続いて、ＰＰＳ（Ｐｉｃｔｕｒｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ）について説明する。図１５（ａ）はＰＰＳのシンタックスの一例を説明する図である。ＰＰＳはピクチャの特性を決定するためのパラメータ群を定義するパラメータセットである。ＰＰＳには、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇ、ｐｉｃ＿ｌｏｏｐｆｉｌｔｅｒ＿ｐａｒａｍ（）、ｔｉｌｅｓ＿ｃｏｄｉｎｇ＿ｆｌａｇ、ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１、ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１、ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇ、ｃｏｌｍｎ＿ｗｉｄｔｈ、ｃｏｌｍｎ＿ｈｅｉｇｈｔがシンタックスに従って設置され、動画像符号化において符号化され、動画像復号において復号される。
【０１０７】
ＰＰＳのシンタックス要素であるｔｉｌｅｓ＿ｃｏｄｉｎｇ＿ｆｌａｇ、ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１、ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１、ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇ、ｃｏｌｍｎ＿ｗｉｄｔｈ、ｃｏｌｍｎ＿ｈｅｉｇｈｔはタイル情報である。ｔｉｌｅｓ＿ｃｏｄｉｎｇ＿ｆｌａｇは、１であればピクチャは複数のタイルで構成され、０であればピクチャはタイルとして構成されないことを示す。ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１とｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１はそれぞれタイルを垂直方向と水平方向に分割する数を示す。ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇはピクチャを予め定められた方法で分割するか否かを決定する情報である。ここでは、予め定められた方法とは、ピクチャを同じ大きさのタイルに分割することを示す。ｃｏｌｍｎ＿ｗｉｄｔｈ［ｉ］とｃｏｌｍｎ＿ｈｅｉｇｈｔ［ｉ］はそれぞれｉ番目のタイルの幅と高さを示す。図２（ｂ）の場合は、ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１とｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１は１、ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇは１として符号化される。なお、シーケンス単位でタイルの構成が変更されない場合、これらタイル情報のシンタックス要素をＳＰＳに設置することもできる。
【０１０８】
（スライスヘッダ）
続いて、スライスヘッダについて説明する。図１５（ｂ）はスライスヘッダのシンタックスの一例を説明する図である。スライスヘッダはスライスの特性を決定するためのパラメータ群を定義するヘッダ情報である。スライスヘッダには、ｓｌｉｃｅ＿ａｄｄｒｅｓｓ、ｓｌｉｃｅ＿ｔｙｐｅ、ｎｕｍ＿ｏｆ＿ｔｉｌｅｓ、ｔｉｌｅ＿ｐｏｓｉｔｉｏｎがシンタックスに従って設置され、動画像符号化において符号化され、動画像復号において復号される。
【０１０９】
ｓｌｉｃｅ＿ａｄｄｒｅｓｓ（スライスアドレス）は、スライスに含まれる最初のＣＴＢのＣＴＢアドレスを示す。ｓｌｉｃｅ＿ｔｙｐｅ（スライスタイプ）は、イントラ予測のみを用いたＩスライス、イントラ予測と単予測のインター予測（動き補償予測）を用いたＰスライス、イントラ予測と、単予測と双予測のインター予測を用いたＢスライスを示す値である。ｎｕｍ＿ｏｆ＿ｔｉｌｅｓはスライスに含まれるタイル数を示す。ｔｉｌｅ＿ｐｏｓｉｔｉｏｎはタイルの先頭バイトのスライスヘッダの先頭バイトからのバイト数を示す。
【０１１０】
（ループフィルタに関するシンタックス）
図１６（ａ）はＰＰＳ内のピクチャループフィルタパラメータ（ｐｉｃ＿ｌｏｏｐｆｉｌｔｅｒ＿ｐａｒａｍ（））のシンタックスの一例を説明する図である。ピクチャループフィルタパラメータには、ｌｏｏｐｆｉｌｔｅｒ＿ｕｎｉｔ（）がシンタックスに従って設置され、動画像符号化において符号化され、動画像復号において復号される。ｎｕｍ＿ｏｆ＿ｃｔｂｓはピクチャ内の総ＣＴＢ数であって、ＰＰＳ内にはピクチャ内の全てのＣＴＢのｌｏｏｐｆｉｌｔｅｒ＿ｕｎｉｔ（）が格納される。
【０１１１】
図１６（ｂ）はループフィルタ符号化パラメータ（ｌｏｏｐｆｉｌｔｅｒ＿ｃｏｄ＿ｐａｒａｍ（））のシンタックスの一例を説明する図である。ループフィルタ符号化パラメータには、ｌｏｏｐｆｉｌｔｅｒ＿ｔｙｐｅ＿ｉｄｘ、ｌｏｏｐｆｉｌｔｅｒ＿ｂａｎｄ＿ｐｏｓｉｔｉｏｎ、ｌｏｏｐｆｉｌｔｅｒ＿ｏｆｆｓｅｔがシンタックスに従って設置され、動画像符号化において符号化され、動画像復号において復号される。
【０１１２】
ｌｏｏｐｆｉｌｔｅｒ＿ｔｙｐｅ＿ｉｄｘはフィルタパラメータのフィルタタイプを示すインデックスであって、０から５の整数である。ｌｏｏｐｆｉｌｔｅｒ＿ｔｙｐｅ＿ｉｄｘは３ビットの符号列である。ｌｏｏｐｆｉｌｔｅｒ＿ｂａｎｄ＿ｐｏｓｉｔｉｏｎはフィルタパラメータのバンド位置であって、０から７までの整数を示す３ビットの符号列である。ｌｏｏｐｆｉｌｔｅｒ＿ｏｆｆｓｅｔはフィルタパラメータのオフセットであって、ｌｏｏｐｆｉｌｔｅｒ＿ｔｙｐｅ＿ｉｄｘが１の場合は−３２から３１までの整数であって６ビットの符号列となり、ｌｏｏｐｆｉｌｔｅｒ＿ｔｙｐｅ＿ｉｄｘが２から５の場合は０から３１までの整数であって５ビットの符号列となる。
【０１１３】
ここで、エッジタイプフィルタに要する符号量はｌｏｏｐｆｉｌｔｅｒ＿ｔｙｐｅ＿ｉｄｘの３ビットとｌｏｏｐｆｉｌｔｅｒ＿ｏｆｆｓｅｔの５ビットが４個であり、２３ビットとなる。バンドタイプフィルタに要する符号量はｌｏｏｐｆｉｌｔｅｒ＿ｔｙｐｅ＿ｉｄｘの３ビットとｌｏｏｐｆｉｌｔｅｒ＿ｂａｎｄ＿ｐｏｓｉｔｉｏｎの３ビットとｏｏｐｆｉｌｔｅｒ＿ｏｆｆｓｅｔの６ビットが３個であり、２４ビットとなる。
【０１１４】
ここで、本実施の形態ではエッジタイプフィルタとバンドタイプフィルタのオフセット数をそれぞれ４個と３個に設定している。これは、バンドタイプフィルタのフィルタパラメータはエッジタイプフィルタのフィルタパラメータよりも１個あたりの符号量が大きいため、エッジタイプフィルタとバンドタイプフィルタのそれぞれに要する符号量を均衡させるためである。エッジタイプフィルタとバンドタイプフィルタのそれぞれに要する符号量を均衡させることで、エッジタイプフィルタとバンドタイプフィルタのそれぞれのループフィルタ符号化パラメータの符号化時間と復号時間を均衡させることができ、ハードウェアの回路設計やソフトウェアの設計を容易にすることができる。ここでは、エッジタイプフィルタとバンドタイプフィルタのオフセット数をそれぞれ４個と３個に設定したが、例えば、エッジタイプフィルタとバンドタイプフィルタのオフセット数をそれぞれ２個と１個などのように設定してもよい。
【０１１５】
図１６（ｃ）はループフィルタユニット（ｌｏｏｐｆｉｌｔｅｒ＿ｕｎｉｔ（））のシンタックスの一例を説明する図である。ループフィルタユニットには、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇ、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇ、ｌｏｏｐｆｉｌｔｅｒ＿ｃｏｄ＿ｐａｒａｍ（）がシンタックスに従って設置され、動画像符号化において符号化され、動画像復号において復号される。
【０１１６】
（符号列多重部１０７の機能と動作）
以下、符号列多重部１０７によって多重化される符号化ストリームの構成について説明する。図１７は第１の実施の形態による符号化ストリームの構成の一例を説明する図である。図１７はｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが１である場合の符号化ストリームの構成を示す。ＳＰＳは符号列多重部１０７によって符号化されて、符号化ストリームの先頭に多重化される。ＰＰＳは符号列多重部１０７によって符号化されて、ピクチャの先頭に多重化される。スライスヘッダは符号列多重部１０７によって符号化されて、スライスの先頭に多重化される。スライスヘッダに続いて、そのスライスに属するＣＴＢについてＣＴＢ符号順序に以下の処理が繰り返し行われる。まず、ＣＴＢのループフィルタユニットが多重化されて、その後にＣＴＢ符号列が多重化される。
【０１１７】
ここで、ＳＰＳ、ＰＰＳ、スライスヘッダには一般的な同期コードが付与されて、ＳＰＳ、ＰＰＳ、スライスヘッダは符号化ストリーム中から分離できるようになる。また、タイルにはヘッダが付与されないが、スライスヘッダのｔｉｌｅ＿ｐｏｓｉｔｉｏｎによって符号化ストリーム中から分離できる。
【０１１８】
以上のように、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇを１に設定してＣＴＢ符号順序にＣＴＢのフィルタパラメータをＣＴＢ単位で多重化することで、フィルタパラメータの伝送遅延を抑制した動画像符号化装置を実現することができる。
【０１１９】
（動画像復号装置２００の構成）
図１８は、第１の実施の形態に係る動画像復号装置２００の構成を説明する図である。動画像復号装置２００は、動画像符号化装置１００によって生成された符号化ストリームが入力されて、ピクチャ単位で復号ピクチャを再生する装置である。
【０１２０】
動画像復号装置２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、フレームメモリ、ハードディスクなどを備える情報処理装置などのハードウェアにより実現される。動画像復号装置２００は、上記の構成要素が動作することにより、以下に説明する機能的な構成要素を実現する。
【０１２１】
本実施の形態の動画像復号装置２００は、符号列分離部２０１、ＣＴＢ復号部２０２、ループフィルタ２０３、フィルタパラメータ復号部２０４、フレームメモリ２０５、及び復号制御部２１０を含む。
【０１２２】
（動画像復号装置２００の機能と動作）
復号制御部２１０は、領域情報、ループフィルタ情報、ＳＰＳ、ＰＰＳ、スライスヘッダなどピクチャを復号するために必要となる情報を管理して、符号列分離部２０１、ＣＴＢ復号部２０２、ループフィルタ２０３、フィルタパラメータ復号部２０４、フレームメモリ２０５を制御して符号化ストリームを復号する。なお、領域情報、ループフィルタ情報、ＳＰＳ、ＰＰＳ、スライスヘッダなどピクチャを復号するために必要となる情報は動画像復号装置２００内で共有されているものとし、これらデータのフローの説明は省略する。
【０１２３】
図１９は、第１の実施の形態に係る動画像復号装置２００の動作を説明するフローチャートである。図１８はピクチャ単位の復号動作を示す。以下、図１８と図１９を用いて、各部の機能と動作について説明する。
【０１２４】
本実施の形態では、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇは１に設定された符号化ストリームが入力されるとする。
【０１２５】
最初に、符号列分離部２０１は、端子２０より入力される符号化ストリームからピクチャストリームを取得する（Ｓ５００）。ここで、ピクチャストリームとはピクチャ単位の符号化ストリームであり、ピクチャストリームの最初のＣＴＢの符号列の前にＳＰＳが存在する場合にはＳＰＳも含まれる。
【０１２６】
次に、符号列分離部２０１は、タイルストリームにＳＰＳが含まれていればＳＰＳを復号し、ピクチャのサイズを取得する。また、図１５のシンタックスに従ってＰＰＳを復号し、ループフィルタ情報とタイル情報を取得する（Ｓ５０１）。
【０１２７】
復号制御部２１０は、ピクチャのサイズとタイル情報から領域情報を導出する。ここで、領域情報は動画像符号化装置１００で設定された領域情報と同じ情報が導出されるものとする。なお、ピクチャのサイズとタイル情報によって設定されるＣＴＢアドレス（ＣＴＢのアドレス順序）と、ＣＴＢが符号化される順序との関係も動画像符号化装置１００で設定された動画像符号化装置１００で設定された関係と同一となる。
【０１２８】
次に、ピクチャストリームに含まれる全てのＣＴＢについて、以下の処理が繰り返し行われる（Ｓ５０２からＳ５０８）。
【０１２９】
まず、スライスヘッダがあれば、図１５のシンタックスに従ってスライスヘッダを復号してスライスアドレスを取得し、スライスアドレスをＣＴＢアドレスとし、領域情報からＣＴＢアドレスに該当するＣＴＢ符号順序を得る。スライスヘッダがなければＣＴＢ符号順序を１だけインクリメントし、領域情報からＣＴＢ符号順序に該当するＣＴＢアドレスを得る（Ｓ５０３）。ここで、ＣＴＢアドレスは、ＣＴＢ符号順序から図５に示すＣＴＢアドレスとＣＴＢ符号順序の関係に基づいて導出される。例えば、ＣＴＢ符号順序が８のＣＴＢのＣＴＢアドレスは１４となる。次のＣＴＢではＣＴＢ符号順序が１だけインクリメントされて９となり、ＣＴＢアドレスは１５となる。以上のように、ＣＴＢ符号順序からＣＴＢアドレスとＣＴＢ符号順序の関係に基づいてＣＴＢアドレスを得る。
【０１３０】
次に、ＣＴＢ復号部２０２は、ＣＴＢ復号部２０２内部のエントロピー復号部の設定をする（Ｓ５０４）。ここで、ＣＴＢ復号部２０２の内部のエントロピー復号部は、動画像符号化装置１００によって生成された符号列を復号可能なＣＡＢＡＣであって、スライスまたはタイルの開始において初期化される。
【０１３１】
次に、符号列分離部２０１は復号対象ＣＴＢのループフィルタユニットをフィルタパラメータ復号部２０４に供給し、フィルタパラメータ復号部２０４はループフィルタユニットをフィルタパラメータに復号して（Ｓ５０５）、当該フィルタパラメータをループフィルタ２０３に供給する。フィルタパラメータ復号部２０４の詳細については後述する。
次に、符号列分離部２０１は復号対象ＣＴＢのＣＴＢ符号列をＣＴＢ復号部２０２に供給し、ＣＴＢ復号部２０２は復号対象ＣＴＢのＣＴＢ符号列を復号して、復号対象ＣＴＢの復号画像データを取得して（Ｓ５０６）、当該復号画像データをループフィルタ２０３に供給する。
【０１３２】
次に、ループフィルタ２０３は、ＣＴＢ復号部２０２より供給される復号画像データに対して、符号列分離部２０１より供給されるフィルタパラメータに基づいてループフィルタを実行し（Ｓ５０７）、新たな復号画像データを生成して、当該復号画像データをフレームメモリ２０５に供給する。ループフィルタ２０３は動画像符号化装置１００のループフィルタ１０４と同一の機能を有するため、説明は省略する。
【０１３３】
（フィルタパラメータ復号部２０４の機能と動作）
続いて、フィルタパラメータ復号部２０４の機能と動作について説明する。
図２０はフィルタパラメータ復号部２０４の動作を説明するフローチャートである。以下、図２０を用いて、フィルタパラメータ復号部２０４の機能と動作について説明する。
【０１３４】
最初に、フィルタパラメータ復号部２０４は、ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇとａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇを導出する（Ｓ５１０）。ここで、ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇとａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇの導出方法は図１４で説明した処理において「符号化対象ＣＴＢ」を「復号対象ＣＴＢ」に置き換えたものと同一である。
【０１３５】
次に、ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇが１であるか検査する（Ｓ５１１）。ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇが１であれば（Ｓ５１１のＹ）、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇを復号する（Ｓ５１２）。次に、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇが１であるか検査する（Ｓ５１３）。ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇが１であれば（Ｓ５１３のＹ）、復号対象ＣＴＢの左に位置するＣＴＢのフィルタパラメータを復号対象ＣＴＢのフィルタパラメータとして（Ｓ５１４）、処理を終了する。
【０１３６】
ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇが１でないか（Ｓ５１１のＮ）、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇが１でなければ（Ｓ５１３のＮ）、ａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇが１であるか検査する（Ｓ５１５）。ａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇが１であれば（Ｓ５１５のＹ）、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇを復号する（Ｓ５１６）。次に、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇが１であるか検査する（Ｓ５１７）。ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇが１であれば（Ｓ５１７のＹ）、復号対象ＣＴＢの上に位置するＣＴＢのフィルタパラメータを復号対象ＣＴＢのフィルタパラメータとして（Ｓ５１８）、処理を終了する。ａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇが１でないか（Ｓ５１５のＮ）、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇが１でなければ（Ｓ５１７のＮ）、ｌｏｏｐｆｉｌｔｅｒ＿ｃｏｄ＿ｐａｒａｍ（）を復号して（Ｓ５１９）、処理を終了する。
【０１３７】
以上のように、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇを１に設定してＣＴＢ符号順序にＣＴＢのフィルタパラメータをＣＴＢ単位で分離して復号し、ＣＴＢ単位でループフィルタを実行することで、ピクチャ内の全てのＣＴＢの復号処理の完了直後に復号画像データを出力することのできる低遅延な動画像復号装置を実現することができる。なお、フィルタパラメータ復号部２０４は、復号対象ＣＴＢの左と上に位置するＣＴＢのフィルタパラメータを参照するため、ピクチャ内の全てのＣＴＢのフィルタパラメータを保持しているものとする。
【０１３８】
また、復号対象ＣＴＢの左辺がタイル境界に接している場合、復号対象ＣＴＢのフィルタパラメータとして復号対象ＣＴＢの左に位置する復号済みのＣＴＢのフィルタパラメータを利用すると、復号対象ＣＴＢの左辺が接しているＣＴＢの処理が終了するまで復号対象ＣＴＢのフィルタパラメータが確定できなくなる。そこで、復号対象ＣＴＢの左辺がタイル境界に接している場合、復号対象ＣＴＢのフィルタパラメータとして復号対象ＣＴＢの左に位置する復号済みのＣＴＢのフィルタパラメータを利用するか否かを示すフラグであるｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇを復号しないことで、復号対象ＣＴＢの左に位置する復号済みのＣＴＢのフィルタパラメータを利用不能とする。このようにすることで、復号対象ＣＴＢの左辺がタイル境界に接している場合でも、復号対象ＣＴＢのループフィルタユニットを復号した直後にフィルタパラメータを得ることを可能とする。そして、復号対象ＣＴＢの左辺が接しているＣＴＢの処理の終了を待つことなく、ループフィルタ２０３の処理をＣＴＢ単位で動作させて、ループフィルタ適用後の復号画像データの出力遅延を最小限に低減することができる。
【０１３９】
同様に、復号対象ＣＴＢの上辺がタイル境界に接している場合、復号対象ＣＴＢのフィルタパラメータとして復号対象ＣＴＢの上に位置する復号済みのＣＴＢのフィルタパラメータを利用するか否かを示すフラグであるｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇを復号しないことで、復号対象ＣＴＢの上に位置する復号済みのＣＴＢのフィルタパラメータを利用不能とする。このようにすることで、復号対象ＣＴＢの上辺がタイル境界に接している場合でも、復号対象ＣＴＢのループフィルタユニットを復号した直後にフィルタパラメータを得ることを可能とする。そして、復号対象ＣＴＢの上辺が接しているＣＴＢの処理の終了を待つことなく、ループフィルタ２０３の処理をＣＴＢ単位で動作させて、ループフィルタ適用後の復号画像データの出力遅延を最小限に低減することができる。
【０１４０】
［第２の実施の形態］
次に、第２の実施の形態について説明する。第２の実施の形態は第１の実施の形態とはｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが０に設定されることが異なる。つまり、フィルタパラメータはピクチャ単位で符号化される。
以下、第１の実施の形態とは異なる点について説明する。
【０１４１】
最初に、本実施の形態に係る動画像符号化装置１００の動作を説明する。図２１は、第２の実施の形態に係る動画像符号化装置１００の動作を説明するフローチャートである。図２１に示すように、ステップＳ１０７からステップＳ１１０がピクチャ内の全てのＣＴＢの符号化処理がなされた後に実行される。ＣＴＢアドレスの順序に従って、ピクチャ内の全てのＣＴＢについてステップＳ１０７、ステップＳ１０８、ステップＳ１０９の処理が繰り返し行われる（Ｓ１１２からＳ１１３）。
【０１４２】
次に、ピクチャの全てのＣＴＢについて、符号列多重部１０７はＣＴＢ符号化部１０２より供給されるＣＴＢ符号列とフィルタパラメータ符号化部１０５より供給されるループフィルタユニットを、必要に応じてＳＰＳ、ＰＰＳ、スライスヘッダなどとともに符号化ストリームとして多重化する（Ｓ１１０）。ここで、符号列多重部１０７によって多重化される符号化ストリームの構成について説明する。図２２は第２の実施の形態による符号化ストリームの構成の一例を説明する図である。図２２はｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが０である場合の符号化ストリームの構成を示す。ＳＰＳは符号化ストリームの先頭に多重化される。ＰＰＳはピクチャの先頭に多重化される。このとき、ＰＰＳにはループフィルタユニットをピクチャ単位でまとめたピクチャループフィルタパラメータが多重化される。スライスの先頭にはスライスヘッダが多重化される。スライスヘッダに続いて、そのスライスに属するＣＴＢについてＣＴＢ符号順序にＣＴＢ符号列が多重化される。
【０１４３】
また、ステップＳ１０５のエントロピー符号部の設定の動作が異なる。本実施の形態では、符号化対象ＣＴＢがスライスまたはタイルの最初のＣＴＢである場合、フィルタパラメータ符号化部１０５はフィルタパラメータ符号化部１０５の内部のエントロピー符号部を初期化しない。
【０１４４】
ここで、フィルタパラメータの符号化について、第１の実施の形態ではｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが１に設定されていたため、符号化対象ＣＴＢの左辺がタイル境界に接している場合、ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇが０に設定されたが、第２の実施の形態ではｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが０に設定されるため、符号化対象ＣＴＢの左辺がタイル境界に接している場合でも、ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇが１に設定される。そのため、符号化対象ＣＴＢの左辺がタイル境界に接している場合でもｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇを符号化することが可能となって、符号化効率を向上させることができる。同様に符号化対象ＣＴＢの上辺がタイル境界に接している場合でもｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇを符号化することが可能となって、符号化効率を向上させることができる。
【０１４５】
また、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇを０に設定してフィルタパラメータをピクチャ単位でまとめて多重化することで、フィルタパラメータの符号量を抑制した符号化装置を実現することができる。
【０１４６】
続いて、本実施の形態に係る動画像復号装置２００の動作を説明する。図２３は第２の実施の形態に係る動画像復号装置２００の動作を説明するフローチャートである。図２３に示すように、ステップＳ５０５とステップＳ５０７がピクチャ内の全てのＣＴＢの復号処理がなされた後に実行される。ＣＴＢアドレスの順序に従って、ピクチャ内の全てのＣＴＢについてステップＳ５０５、ステップＳ５０７の処理が繰り返し行われる（Ｓ５１０からＳ５１１）。
【０１４７】
ここで、本実施の形態におけるステップＳ５０５について説明する。符号列分離部２０１はピクチャループフィルタパラメータ中の復号対象ＣＴＢのループフィルタユニットをフィルタパラメータ復号部２０４に供給し、フィルタパラメータ復号部２０４はループフィルタユニットをフィルタパラメータに復号して（Ｓ５０５）、当該フィルタパラメータをループフィルタ２０３に供給する。
【０１４８】
また、ループフィルタ２０３の動作が異なる。本実施の形態では、ループフィルタはピクチャ内の全てのＣＴＢの復号処理がなされた後に実行されるため、ループフィルタ２０３はピクチャ内の全てのＣＴＢの復号画像データを保持している。
【０１４９】
また、ステップＳ５０４のエントロピー復号部の設定の動作が異なる。本実施の形態では、復号対象ＣＴＢがスライスまたはタイルの最初のＣＴＢであっても、フィルタパラメータ復号部２０４はフィルタパラメータ復号部２０４の内部のエントロピー復号部を初期化しないことが第１の実施の形態とは異なる。
【０１５０】
以上のように、本実施の形態に係る動画像復号装置２００は、本実施の形態に係る動画像符号化装置１００によって生成された符号化ストリームを復号し、復号画像データを出力することができる。
【０１５１】
［第３の実施の形態］
次に、第３の実施の形態について説明する。本実施の形態は第１の実施の形態とはループフィルタを適用する画素が異なる。第１の実施の形態ではＣＴＢで完結するようにループフィルタを動作させたが、本実施の形態ではＣＴＢを跨ってループフィルタを実行させることを可能とする。
以下、第１の実施の形態とは異なる点について説明する。
【０１５２】
最初に、ＰＰＳのシンタックスが異なる。図２４は、第３の実施の形態に係るＰＰＳのシンタックスを説明する図である。ＰＰＳにｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが追加されることが第１の実施の形態とは異なる。ｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇはループフィルタをタイル境界に跨って処理することを許可するか否かを示す１ビットのフラグである。ｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが１であれば、ループフィルタをタイル境界に跨って処理することを許可し、ｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが０であれば、ループフィルタをタイル境界に跨って処理することを許可しない。本実施の形態では、ｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇは１であるとする。
【０１５３】
図２５は、第３の実施の形態に係る動画像符号化装置１００の動作を説明するフローチャートである。図２５を用いて第１の実施の形態とは異なる本実施の形態に係る動画像符号化装置１００の動作を説明する。ステップＳ１０２に引き続いて、ピクチャの全てのＣＴＢのフィルタパラメータが決定される（Ｓ１１２）。ここで、ピクチャの全てのＣＴＢのフィルタパラメータが決定される方法については、例えば、一般的な２パスのエンコードや前のピクチャのデータを参照にして生成するなどの手法で実現できる。
【０１５４】
また、ステップＳ１０７の代わりにステップＳ１１５が実施される。ステップＳ１１５では、ステップＳ１１２で決定されたフィルタパラメータについて、符号化対象のＣＴＢのフィルタパラメータが取得される。
【０１５５】
また、ステップＳ１１１に引き続いて、タイル境界を跨る画素についてループフィルタを実行する（Ｓ１１６）。タイル境界を跨る画素とは、垂直方向のタイル境界であれば、タイル境界の左に位置する画素とタイル境界の右に位置する画素であり、水平方向のタイル境界であれば、タイル境界の上に位置する画素とタイル境界の下に位置する画素である。ステップＳ１１６は、ステップＳ１０３からステップＳ１１１をタイル単位で独立処理（並列処理）させる場合に必要な処理である。
【０１５６】
以上のように、ピクチャ内の全てのＣＴＢのフィルタパラメータをＣＴＢ単位の符号化処理の前に決定し、ピクチャ内の全てのＣＴＢについてＣＴＢ単位の符号化処理が終了した後にループフィルタを実行することで、符号化ストリームの出力は、ＣＴＢ単位の符号化処理で出力することができるため、低遅延の動画像符号化装置を実現することができる。
【０１５７】
図２６は、第３の実施の形態に係る動画像復号装置２００の動作を説明するフローチャートである。図２６を用いて第１の実施の形態とは異なる本実施の形態に係る動画像復号装置２００の動作を説明する。ステップＳ５０６の次にステップＳ５０７が実施されない。ステップＳ５０８に引き続いて、ピクチャ内の全てのＣＴＢについて、ＣＴＢアドレスの順序でステップＳ５１２とステップＳ５０７の処理が繰り返し行われる（Ｓ５１０からＳ５１１）。以下、ステップＳ５１２とステップＳ５０７について説明する。
【０１５８】
処理対象ＣＴＢのｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇが１であれば、処理対象ＣＴＢの左に位置するＣＴＢからフィルタパラメータを取得する。処理対象ＣＴＢのｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇが０で、処理対象ＣＴＢのｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇが１であれば、処理対象ＣＴＢの上に位置するＣＴＢからフィルタパラメータを取得する。処理対象ＣＴＢのｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇが０で、処理対象ＣＴＢのｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇが０であれば、処理対象ＣＴＢのファイルパラメータを取得する（Ｓ５１２）。
【０１５９】
ループフィルタ１０４は、処理対象ＣＴＢの復号画像データに対して、処理対象ＣＴＢのフィルタパラメータに基づいてループフィルタを実行し、新たな復号画像データを生成して、当該復号画像データをフレームメモリ２０５に供給する（Ｓ５０７）。ここでは、ループフィルタ１０４はピクチャ内のすべてのＣＴＢの復号画像データを保持しているとするが、ＣＴＢ復号部２０２より供給される復号画像データをフレームメモリ２０５に供給して記憶させ、ステップＳ５０７ではフレームメモリ２０５から処理対象ＣＴＢの復号画像データを取得するようにしてもよい。
【０１６０】
続いて、エッジタイプフィルタ１３１の動作について説明する。図２７は第３の実施の形態のエッジタイプフィルタ１３１の動作を説明するフローチャートである。ステップＳ１４０が第1の実施の形態とは異なる。ステップＳ１４０では、ｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが１であれば、ステップＳ１３４の画素Ａまたは画素Ｂがタイル外であるかの検査結果をスキップして、エッジタイプフィルタを実行するステップであるステップＳ１３５以降の動作を行う。
【０１６１】
このように、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが１としてフィルタパラメータの伝送遅延を小さくする場合でも、ｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが１であれば、エッジタイプフィルタにおいてタイル外の画素Ａと画素Ｂを参照することで、タイル境界の左右または上下に接する２画素にループフィルタを適用することが可能となって、タイル境界の歪を低減することができる。また動き補償予測などで利用される参照ピクチャの画質が改善されるため、符号化効率を向上させることができる。
【０１６２】
続いて、フィルタパラメータ符号化部１０５とフィルタパラメータ復号部２０４の動作における隣接ＣＴＢの有効性であるａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇとａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇの導出について説明する。図２８は第３の実施の形態における隣接ＣＴＢの有効性の導出を説明するフローチャートである。ステップＳ１９０とステップＳ１９１が追加されている点が第1の実施の形態とは異なる。ステップＳ１９０とステップＳ１９１はｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが１であるか検査する。以下、ステップＳ１９０とステップＳ１９１について説明する。
【０１６３】
ｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが１であれば（Ｓ１９０のＹ）、ステップ１８２、ステップ１８３、及びステップ１８４がスキップされて、符号化対象ＣＴＢの左辺がタイル境界に接しているか否かに関わらずａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇが１に設定される。ｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが１でなければ（Ｓ１９０のＮ）、ステップＳ１８２が実行される。
ｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが１であれば（Ｓ１９０のＹ）、ステップ１８６、ステップ１８７、及びステップ１８８がスキップされて、符号化対象ＣＴＢの上辺がタイル境界に接しているか否かに関わらずａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇが１に設定される。ｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが１でなければ（Ｓ１９１のＮ）、ステップＳ１８６が実行される。
【０１６４】
以上のように、ｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが１に設定される場合、フィルタパラメータの符号化では、タイル境界を跨いでフィルタパラメータを取得することを示すフラグであるｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇとｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇの符号化を許可し、タイル境界を跨いでフィルタパラメータが同一となるような場合、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇやｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇを１に設定してフィルタパラメータに要する符号量を１ビットにすることで、符号化効率を向上させることができる。
【０１６５】
また、ｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが１に設定される場合、ファイルユニットの復号では、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇ、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇ、及びｌｏｏｐｆｉｌｔｅｒ＿ｃｏｄ＿ｐａｒａｍ（）を復号しておき、全てのＣＴＢの復号処理が終了した後で、ループフィルタを実行する前にｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇが１であるＣＴＢについては当該ＣＴＢの左に位置するＣＴＢからフィルタパラメータを取得し、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇが１であるＣＴＢについては当該ＣＴＢの上に位置するＣＴＢからフィルタパラメータを取得するようにすることで、フィルタパラメータの復号処理を停止させることなく、ピクチャの全てのＣＴＢの復号処理が終了した後にループフィルタを正確に実行させることができる。
【０１６６】
ここで、ファイルユニットのシンタックス要素において最も複雑な構造を有するｌｏｏｐｆｉｌｔｅｒ＿ｃｏｄ＿ｐａｒａｍ（）を事前に復号しておくことで、フィルタパラメータを取得する遅延を最小限に抑制することができる。
【０１６７】
また、ループフィルタの実行遅延を抑制する場合には、ステップＳ５０５において、タイル境界の外のフィルタパラメータを利用しないＣＴＢについてはループフィルタを実行しておき、全てのＣＴＢの復号処理が終了した後で、タイル境界の外のフィルタパラメータを利用するＣＴＢについてループフィルタを実行するようにしてもよい。
【０１６８】
［第４の実施の形態］
次に、第４の実施の形態について説明する。第４の実施の形態は第３の実施の形態とはタイル境界におけるフィルタリングとフィルタパラメータの符号化の制御が異なる。
以下、第３の実施の形態とは異なる点について説明する。
【０１６９】
最初に、ＰＰＳのシンタックスが異なる。図２９は、第４の実施の形態に係るＰＰＳのシンタックスを説明する図である。ＰＰＳにｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが追加されることが第３の実施の形態とは異なる。ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇはタイル境界を跨ってフィルタパラメータを取得することを許可するか否かを示す１ビットのフラグである。ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが１であれば、タイル境界を跨ってフィルタパラメータを取得することを許可し、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが０であれば、タイル境界を跨ってフィルタパラメータを取得することを許可しない。本実施の形態では、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇは０であるとする。
【０１７０】
続いて、フィルタパラメータ符号化部１０５とフィルタパラメータ復号部２０４の動作における隣接ＣＴＢの有効性であるａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇとａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇの導出について説明する。図３０は第４の実施の形態における隣接ＣＴＢの有効性の導出を説明するフローチャートである。ステップＳ１９０とステップＳ１９1が第３の実施の形態とは異なる。ステップＳ１９０とステップＳ１９１はｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇが１であるか検査する。
【０１７１】
続いて、動画像復号装置２００の動作を説明する。図３７は、第４の実施の形態に係る動画像復号装置２００の動作を説明するフローチャートである。図３７を用いて第３の実施の形態とは異なる本実施の形態に係る動画像復号装置２００の動作を説明する。
ステップＳ５０６に続いて、タイル境界に接する画素以外の画素についてループフィルタが実行される（Ｓ５２０）。また、ステップＳ５０８に続いて、タイル境界に接する画素についてループフィルタが実行される（Ｓ５２１）。
【０１７２】
以上のように、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇを１、ｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇを１、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇを０に設定することで、全てのＣＴＢの復号処理が終了した後のループフィルタに係る処理を、タイル境界に接する画素だけにすることで、タイル境界の歪を低減しながらループフィルタの実行遅延を最小限にすることができる。また、ピクチャ内のすべてのＣＴＢの復号処理が完了した後にループフィルタを実行させるために記憶する必要のある復号画素を、タイル境界に接する画素に対する隣接画素Ａと隣接画素Ｂだけにすることができ、復号画像データの記憶容量を削減することができる。また、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇを１、ｌｏｏｐｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇを１、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｆｌａｇを１に設定することで、第３の実施の形態と同じ効果を得ることができる。
【０１７３】
［第５の実施の形態］
次に、第５の実施の形態について説明する。第５の実施の形態は第１の実施の形態とは利用可能なフィルタタイプが異なる。第１の実施の形態ではタイル境界に位置するＣＴＢとそれ以外のＣＴＢにおいて利用可能なフィルタタイプは同一であったが、本実施の形態ではタイル境界に位置するＣＴＢとそれ以外のＣＴＢにおいて利用可能なフィルタタイプが異なる。
以下、第１の実施の形態とは異なる点について説明する。
【０１７４】
図３１は第５の実施の形態におけるＣＴＢの位置に応じて利用可能なフィルタタイプを説明するための図である。図３１を用いてＣＴＢの位置に応じて利用可能なフィルタタイプについて説明する。ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇとａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇが共に０で、ＣＴＢの左辺と上辺が共にピクチャ境界とタイル境界に接しないＣＴＢについては、第１の実施の形態と同様にフィルタタイプ０からフィルタタイプ５まで全てのフィルタタイプの利用を許可して、フィルタタイプの昇順にｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘを０から割り当てる。ＣＴＢの左辺がピクチャ境界またはタイル境界に接するＣＴＢについては、フィルタタイプ１とフィルタタイプ２だけを利用を許可し、フィルタタイプ１とフィルタタイプ２にｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘとしてそれぞれ０と１を割り当てる。ＣＴＢの上辺がピクチャ境界またはタイル境界に接するＣＴＢについては、フィルタタイプ１とフィルタタイプ３だけを利用を許可し、フィルタタイプ１とフィルタタイプ３にｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘとしてそれぞれ０と１を割り当てる。
【０１７５】
次に、エッジタイプフィルタ１３１の動作について説明する。図３２は第５の実施の形態におけるエッジタイプフィルタ１３１の動作を説明するフローチャートである。画素Ａまたは画素Ｂがピクチャ境界であるか検査するステップＳ１３３、画素Ａまたは画素Ｂがタイル境界であるか検査するステップＳ１３４、オフセット値を０に設定するステップＳ１３７が省略されている点が異なる。
【０１７６】
以上のように、ｌｏｏｐｆｉｌｔｅｒ＿ｉｎｔｅｒｌｅａｖｅ＿ｆｌａｇが１である場合、ＣＴＢの左辺がピクチャ境界またはタイル境界に接するＣＴＢについては、ピクチャ境界またはタイル境界の外の画素を参照するフィルタタイプであるフィルタタイプ２、フィルタタイプ４、及びフィルタタイプ５を無効とすることで、ピクチャ境界またはタイル境界の外の画素を参照する必要がなくなるため、エッジタイプフィルタ１３１のステップＳ１３３、ステップＳ１３４、及びステップＳ１３７が不要となって、エッジタイプフィルタ１３１の処理量を削減することができる。同様に、ＣＴＢの上辺がピクチャ境界またはタイル境界に接するＣＴＢについては、ピクチャ境界またはタイル境界の外の画素を参照するフィルタタイプであるフィルタタイプ１、フィルタタイプ４、及びフィルタタイプ５を無効とすることで、ピクチャ境界またはタイル境界の外の画素を参照する必要がなくなるため、エッジタイプフィルタ１３１のステップＳ１３３、ステップＳ１３４、及びステップＳ１３７が不要となって、エッジタイプフィルタ１３１の処理量を削減することができる。
【０１７７】
また、有効なフィルタタイプのみにｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘを割り当てることで、ＣＴＢの左辺または上辺がピクチャ境界またはタイル境界に接するＣＴＢについては、ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの符号量を１ビットのフラグに削減することで、符号化効率を向上させることができる。ここで、フィルタタイプ０、つまりループフィルタを処理しないフィルタタイプについては、フィルタタイプ１またはフィルタタイプ２でオフセットを０として設定することで対応できる。
【０１７８】
さらに、第３の実施の形態や第４の実施の形態における動画像符号化装置において、本実施の形態のようにタイル境界におけるフィルタタイプに制限を設けることで、常にＣＴＢで完結した低遅延の動画像符号化装置と動画像復号装置を実現することが可能となる。
【０１７９】
［第６の実施の形態］
次に、第６の実施の形態について説明する。第６の実施の形態は第４の実施の形態とはｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの符号列とａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇとａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇの導出が異なる。
以下、第４の実施の形態とは異なる点について説明する。
【０１８０】
最初に、ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの符号列が異なる。図３３は、第６の実施の形態に係るｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの符号列を説明する図である。ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの０はフィルタタイプ０を示し、符号列（ｂｉｎ）は'０'である。ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの１はフィルタタイプ１を示し、符号列（ｂｉｎ）は'１０'となる。ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの２はフィルタタイプ２を示し、符号列（ｂｉｎ）は'１１００'となる。ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの３はフィルタタイプ３を示し、符号列（ｂｉｎ）は'１１０１'となる。ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの４はフィルタタイプ４を示し、符号列（ｂｉｎ）は'１１１０'となる。ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの５はフィルタタイプ５を示し、符号列（ｂｉｎ）は'１１１１'となる。
【０１８１】
ここで、バンドタイプフィルタのフィルタパラメータはエッジタイプフィルタのフィルタパラメータよりも１個あたりの符号量が大きいため、バンドタイプフィルタのｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘにエッジタイプフィルタｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘよりも短い符号量を割り当てることで、エッジタイプフィルタとバンドタイプフィルタのそれぞれに要する符号量を均衡させることができる。
【０１８２】
エッジタイプフィルタとバンドタイプフィルタのそれぞれに要する符号量を均衡させることで、エッジタイプフィルタとバンドタイプフィルタのそれぞれのループフィルタ符号化パラメータの符号化時間と復号時間を均衡させることができ、ハードウェアの回路設計やソフトウェアの設計を容易にすることができる。ここでは、バンドタイプフィルタのｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘを２ビット、エッジタイプフィルタｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘを４ビットに設定したが、バンドタイプフィルタのｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘがエッジタイプフィルタｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘよりも短い符号量であれば、これに限定されない。
【０１８３】
次に、ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇとａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇの導出が異なる。続いて、フィルタパラメータ符号化部１０５とフィルタパラメータ復号部２０４の動作における隣接ＣＴＢの有効性であるａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇとａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇの導出について説明する。図３４は第６の実施の形態における隣接ＣＴＢの有効性の導出を説明するフローチャートである。ステップＳ１９６とステップＳ１９７が追加されている点が第４の実施の形態とは異なる。以下、ステップＳ１９６とステップＳ１９７について説明する。
【０１８４】
符号化対象ＣＴＢの左に位置するＣＴＢのフィルタパラメータのフィルタタイプがフィルタタイプ０（フィルタＯＦＦ）であるか検査する（Ｓ１９６）。符号化対象ＣＴＢの左に位置するＣＴＢのフィルタパラメータのフィルタタイプがフィルタタイプ０であれば（Ｓ１９６のＹ）、ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇを０とする（Ｓ１８４）。符号化対象ＣＴＢの左に位置するＣＴＢのフィルタパラメータのフィルタタイプがフィルタタイプ０でなければ（Ｓ１９６のＮ）、Ｓ１８２を実行する。
【０１８５】
符号化対象ＣＴＢの上に位置するＣＴＢのフィルタパラメータのフィルタタイプがフィルタタイプ０（フィルタＯＦＦ）であるか検査する（Ｓ１９７）。符号化対象ＣＴＢの上に位置するＣＴＢのフィルタパラメータのフィルタタイプがフィルタタイプ０であれば（Ｓ１９７のＹ）、ａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇを０とする（Ｓ１８８）。符号化対象ＣＴＢの上に位置するＣＴＢのフィルタパラメータのフィルタタイプがフィルタタイプ０でなければ（Ｓ１９７のＮ）、Ｓ１８６を実行する。
【０１８６】
ここで、フィルタタイプがフィルタタイプ０である場合、ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘは１ビットであるため、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇやｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇを用いて符号化するよりも少ない符号量で済む可能性が高い。これは、左に位置するＣＴＢのフィルタパラメータのフィルタタイプがフィルタタイプ０であれば、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇの１ビットで済むが、左に位置するＣＴＢのフィルタパラメータのフィルタタイプがフィルタタイプ０でなく、上に位置するＣＴＢのフィルタパラメータのフィルタタイプがフィルタタイプ０であれば、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇとｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇの２ビットとなり、左に位置するＣＴＢのフィルタパラメータのフィルタタイプがフィルタタイプ０でなく、上に位置するＣＴＢのフィルタパラメータのフィルタタイプがフィルタタイプ０でなければ、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇ、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇ、ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの３ビットとなるためである。
【０１８７】
したがって、フィルタタイプがフィルタタイプ０である場合、ｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ｌｅｆｔ＿ｆｌａｇとｌｏｏｐｆｉｌｔｅｒ＿ｍｅｒｇｅ＿ａｂｏｖｅ＿ｆｌａｇを符号化せず、ループフィルタ符号化パラメータだけを符号化するようにして符号化効率を向上させることができる。
【０１８８】
［第７の実施の形態］
次に、第７の実施の形態について説明する。第７の実施の形態は第６の実施の形態とはループフィルタユニットのシンタックスとｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの符号列が異なる。
以下、第６の実施の形態とは異なる点について説明する。
【０１８９】
最初に、ループフィルタユニットのシンタックスが異なる。図３５は第７の実施の形態に係るループフィルタユニットのシンタックスを説明する図である。ループフィルタ許可フラグであるｅｎａｂｌｅ＿ｌｏｏｐｆｉｌｔｅｒ＿ｆｌａｇが追加されている。ｅｎａｂｌｅ＿ｌｏｏｐｆｉｌｔｅｒ＿ｆｌａｇはＣＴＢのループフィルタのＯＮとＯＦＦを制御するフラグであって、ｅｎａｂｌｅ＿ｌｏｏｐｆｉｌｔｅｒ＿ｆｌａｇが１であるＣＴＢについてはループフィルタを実行し、ｅｎａｂｌｅ＿ｌｏｏｐｆｉｌｔｅｒ＿ｆｌａｇが０であるＣＴＢについてはループフィルタを実行しない。
【０１９０】
次に、ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの符号列が異なる。図３６は、第７の実施の形態に係るｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの符号列を説明する図である。ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの０はフィルタタイプ１を示し、符号列（ｂｉｎ）は'０'である。ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの１はフィルタタイプ２を示し、符号列（ｂｉｎ）は'１００'となる。ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの２はフィルタタイプ３を示し、符号列（ｂｉｎ）は'１０１'となる。ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの３はフィルタタイプ４を示し、符号列（ｂｉｎ）は'１１０'となる。ｌｏｏｐｆｌｉｔｅｒ＿ｔｙｐｅ＿ｉｄｘの４はフィルタタイプ５を示し、符号列（ｂｉｎ）は'１１１'となる。
【０１９１】
次に、フィルタパラメータ符号化部１０５とフィルタパラメータ復号部２０４の動作における隣接ＣＴＢの有効性であるａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇとａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇの導出が異なる。第６の実施の形態とは、ステップＳ１９６とステップＳ１９７が異なり、ステップＳ１９６とステップＳ１９７について説明する。
【０１９２】
符号化対象ＣＴＢの左に位置するＣＴＢのフィルタパラメータのループフィルタ許可フラグが０であるか検査する（Ｓ１９６）。符号化対象ＣＴＢの左に位置するＣＴＢのフィルタパラメータのループフィルタ許可フラグが０であれば（Ｓ１９６のＹ）、ａｖａｉｌａｂｌｅ＿ｌｅｆｔ＿ｃｔｂ＿ｆｌａｇを０とする（Ｓ１８４）。符号化対象ＣＴＢの左に位置するＣＴＢのフィルタパラメータのループフィルタ許可フラグが０でなければ（Ｓ１９６のＮ）、Ｓ１８２を実行する。
【０１９３】
符号化対象ＣＴＢの上に位置するＣＴＢのフィルタパラメータのループフィルタ許可フラグが０であるか検査する（Ｓ１９７）。符号化対象ＣＴＢの上に位置するＣＴＢのフィルタパラメータのループフィルタ許可フラグが０であれば（Ｓ１９７のＹ）、ａｖａｉｌａｂｌｅ＿ａｂｏｖｅ＿ｃｔｂ＿ｆｌａｇを０とする（Ｓ１８８）。符号化対象ＣＴＢの上に位置するＣＴＢのフィルタパラメータのループフィルタ許可フラグが０でなければ（Ｓ１９７のＮ）、Ｓ１８６を実行する。
【０１９４】
以上述べた実施の形態の動画像符号化装置と動画像復号装置では、領域の境界としてタイル境界を説明したが、タイル内のＣＴＢはラスタースキャン順に処理されてスライスはタイル内のＣＴＢをラスタースキャン順に包含するようにタイルとスライスを構成した場合に、タイルとスライスを組み合わせることで、スライス境界についてもタイル境界をスライス境界に置き換えることで同様に適用することができる。
【０１９５】
以上述べた実施の形態の動画像符号化装置と動画像復号装置では、ループフィルタとしてＳＡＯフィルタを用いたが、例えば、デブロックフィルタとＳＡＯフィルタを組み合わせることもできる。
【０１９６】
以上述べた実施の形態の動画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
【０１９７】
動画像符号化装置と動画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
【０１９８】
動画像送信装置は、動画像符号化装置が出力する符号化ストリームをバッファするメモリと、符号化ストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、動画像復号装置に提供するパケット処理部とを含む。
【０１９９】
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ＲＯＭ（リード・オンリ・メモリ）やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
【０２００】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０２０１】
１００  動画像符号化装置、  １０１  画像データ取得部、  １０２  ＣＴＢ符号化部、  １０３  フィルタパラメータ決定部、  １０４  ループフィルタ、  １０５  フィルタパラメータ符号化部、  １０６  フレームメモリ、  １０７  符号列多重部、  １１０  符号化制御部、  １１１  タイル設定部、  １１２  ループフィルタ設定部、  １１３  領域情報設定部、  １２０  フィルタパラメータ設定部、  １２１  ループフィルタ実行部、  １２２  誤差計測部、  １２３  フィルタパラメータ確定部、  １３０  フィルタタイプ判定部、  １３１  エッジタイプフィルタ、  １３２  バンドタイプフィルタ、  １４１  エッジアングル設定部、  １４２  隣接画素設定部、  １４３  エッジタイプ判定部、  １４４  エッジオフセット値設定部、  １４５  エッジオフセット値加算部、  １５１  ハンド幅設定部、  １５２  バンド位置設定部、  １５３  バンドオフセット値設定部、  １５４  バンドオフセット値加算部、  ２００  動画像復号装置、  ２０１  符号列分離部、  ２０２  ＣＴＢ復号部、  ２０３  ループフィルタ、  ２０４  フィルタパラメータ復号部、  ２０５  フレームメモリ、  ２１０  復号制御部。
【図１】
0005888279.tif 000002
【図２】
0005888279.tif 000003
【図３】
0005888279.tif 000004
【図４】
0005888279.tif 000005
【図５】
0005888279.tif 000006
【図６】
0005888279.tif 000007
【図７】
0005888279.tif 000008
【図８】
0005888279.tif 000009
【図９】
0005888279.tif 000010
【図１０】
0005888279.tif 000011
【図１１】
0005888279.tif 000012
【図１２】
0005888279.tif 000013
【図１３】
0005888279.tif 000014
【図１４】
0005888279.tif 000015
【図１５】
0005888279.tif 000016
【図１６】
0005888279.tif 000017
【図１７】
0005888279.tif 000018
【図１８】
0005888279.tif 000019
【図１９】
0005888279.tif 000020
【図２０】
0005888279.tif 000021
【図２１】
0005888279.tif 000022
【図２２】
0005888279.tif 000023
【図２３】
0005888279.tif 000024
【図２４】
0005888279.tif 000025
【図２５】
0005888279.tif 000026
【図２６】
0005888279.tif 000027
【図２７】
0005888279.tif 000028
【図２８】
0005888279.tif 000029
【図２９】
0005888279.tif 000030
【図３０】
0005888279.tif 000031
【図３１】
0005888279.tif 000032
【図３２】
0005888279.tif 000033
【図３３】
0005888279.tif 000034
【図３４】
0005888279.tif 000035
【図３５】
0005888279.tif 000036
【図３６】
0005888279.tif 000037
【図３７】
0005888279.tif 000038