(57)【要約】  バンドオフセットにおける画質の改善効果を向上させる。符号化方法は、符号化単位のブロックを、複数のサブブロックに分割する分割工程と、前記複数のサブブロックのうちの少なくとも２つの第１サブブロックについて、バンドポジションを決定する決定工程と、前記複数のサブブロックのうち、前記第１サブブロック以外の第２サブブロックについて、前記符号化単位のブロック内における前記第１サブブロックに対する位置関係と、前記第１サブブロックについて決定されたバンドポジションとに基づいて、前記第２サブブロックのバンドポジションを算出する算出工程と、を有し、前記第１サブブロック及び第２サブブロックそれぞれについて決定または算出されたバンドポジションを用いて、サブブロックごとにバンドオフセットを実行することを特徴とする。
2019082291.tif 000002
【特許請求の範囲】
【請求項１】
符号化単位のブロックを、複数のサブブロックに分割する分割工程と、
前記複数のサブブロックのうちの少なくとも２つの第１サブブロックについて、バンドポジションを決定する決定工程と、
前記複数のサブブロックのうち、前記第１サブブロック以外の第２サブブロックについて、前記符号化単位のブロック内における前記第１サブブロックに対する位置関係と、前記第１サブブロックについて決定されたバンドポジションとに基づいて、前記第２サブブロックのバンドポジションを算出する算出工程と、を有し、
前記第１サブブロック及び第２サブブロックそれぞれについて決定または算出されたバンドポジションを用いて、サブブロックごとにバンドオフセットを実行することを特徴とする符号化方法。
【請求項２】
前記第１サブブロックは、前記複数のサブブロックのうち、前記符号化単位のブロックの４つの頂点のうち、左上の頂点と左下の頂点をそれぞれ含む２つのサブブロック、または、左上の頂点と右上の頂点と左下の頂点をそれぞれ含む３つのサブブロックであることを特徴とする請求項１に記載の符号化方法。
【請求項３】
前記算出工程は、２つの前記第１サブブロックそれぞれのバンドポジションを用いて補間処理することで、該２つの第１サブブロックの間に位置する第２サブブロックのバンドポジションを算出することを特徴とする請求項２に記載の符号化方法。
【請求項４】
前記決定工程は、
処理対象の前記符号化単位のブロックがマージモードであった場合、
処理対象の前記符号化単位のブロックに隣接する符号化単位のブロックについてサブブロックごとにバンドオフセットを実行する際に決定した、少なくとも２つの第１サブブロックのバンドポジションを取得し、
取得した少なくとも２つの第１サブブロックのバンドポジションに基づいて、処理対象の前記符号化単位のブロックにおける、少なくとも２つの第１サブブロックのバンドポジションを算出することを特徴とする請求項３に記載の符号化方法。
【請求項５】
前記決定工程は、
処理対象の前記符号化単位のブロックがマージモードであった場合、
処理対象の前記符号化単位のブロックに隣接する符号化単位のブロックから取得した２つの第１サブブロックそれぞれのバンドポジションの差分に基づいて、該取得した２つの第１サブブロックの間における、互いに隣接するサブブロック同士のバンドポジションの差分の平均値を算出し、
算出した平均値と、該取得した２つの第１サブブロックのバンドポジションとに基づいて、処理対象の前記符号化単位のブロックにおける、少なくとも２つの第１サブブロックのバンドポジションを算出することを特徴とする請求項４に記載の符号化方法。
【請求項６】
前記符号化単位のブロックについて画素適応オフセット処理が実行される際に用いられる画素適応オフセットパラメータに、決定された前記少なくとも２つの第１サブブロックのバンドポジションを含めてシグナリングするシグナリング工程を更に有することを特徴とする請求項１乃至５のいずれか１項に記載の符号化方法。
【請求項７】
前記複数のサブブロックのうち、前記第１サブブロック及び第２サブブロックそれぞれについて、１のオフセット値を用いて、サブブロックごとにバンドオフセットを実行した場合、前記シグナリング工程は、前記画素適応オフセットパラメータに、該１のオフセット値を含めてシグナリングすることを特徴とする請求項６に記載の符号化方法。
【請求項８】
前記複数のサブブロックのうち、前記第１サブブロック及び第２サブブロックそれぞれについて、複数の異なるオフセット値を用いて、サブブロックごとにバンドオフセットを実行した場合、前記シグナリング工程は、前記画素適応オフセットパラメータに、前記第１サブブロック及び第２サブブロックそれぞれの、複数の異なるオフセット値を含めてシグナリングすることを特徴とする請求項６に記載の符号化方法。
【請求項９】
復号単位のブロックを、複数のサブブロックに分割する分割工程と、
前記複数のサブブロックのうちの少なくとも２つの第１サブブロックのバンドポジションを取得する取得工程と、
前記複数のサブブロックのうち、前記第１サブブロック以外の第２サブブロックについて、前記復号単位のブロック内における前記第１サブブロックに対する位置関係と、前記第１サブブロックについて取得されたバンドポジションとに基づいて、前記第２サブブロックのバンドポジションを算出する算出工程と、を有し、
前記第１サブブロック及び第２サブブロックそれぞれについて取得または算出されたバンドポジションを用いて、サブブロックごとにバンドオフセットを実行することを特徴とする復号方法。
【請求項１０】
前記第１サブブロックは、前記複数のサブブロックのうち、前記復号単位のブロックの４つの頂点のうち、左上の頂点と左下の頂点をそれぞれ含む２つのサブブロック、または、左上の頂点と右上の頂点と左下の頂点をそれぞれ含む３つのサブブロックであることを特徴とする請求項９に記載の復号方法。
【請求項１１】
前記算出工程は、２つの前記第１サブブロックそれぞれのバンドポジションを用いて補間処理することで、該２つの第１サブブロックの間に位置する第２サブブロックのバンドポジションを算出することを特徴とする請求項１０に記載の復号方法。
【請求項１２】
前記取得工程は、
処理対象の前記復号単位のブロックがマージモードであった場合、
処理対象の前記復号単位のブロックに隣接する復号単位のブロックについてサブブロックごとにバンドオフセットを実行する際に用いられた、少なくとも２つの第１サブブロックのバンドポジションを取得し、
隣接する復号単位のブロックにおいて用いられた少なくとも２つの第１サブブロックのバンドポジションに基づいて、処理対象の前記復号単位のブロックにおける、少なくとも２つの第１サブブロックのバンドポジションを算出することを特徴とする請求項１０に記載の復号方法。
【請求項１３】
前記取得工程は、
処理対象の前記復号単位のブロックがマージモードであった場合、
処理対象の前記復号単位のブロックに隣接する復号単位のブロックにおいて用いられた２つの第１サブブロックそれぞれのバンドポジションの差分に基づいて、該隣接する復号単位のブロックにおいて用いられた２つの第１サブブロックの間における、互いに隣接するサブブロック同士のバンドポジションの差分の平均値を算出し、
算出した平均値と、該隣接する復号単位のブロックにおいて用いられた２つの第１サブブロックのバンドポジションとに基づいて、処理対象の前記復号単位のブロックにおける、少なくとも２つの第１サブブロックのバンドポジションを算出することを特徴とする請求項１２に記載の復号方法。
【請求項１４】
前記複数のサブブロックのうち、前記第１サブブロック及び第２サブブロックそれぞれについて、１のオフセット値を用いて、サブブロックごとにバンドオフセットを実行することを特徴とする請求項９乃至１３のいずれか１項に記載の復号方法。
【請求項１５】
前記複数のサブブロックのうち、前記第１サブブロック及び第２サブブロックそれぞれについて、複数の異なるオフセット値を用いて、サブブロックごとにバンドオフセットを実行することを特徴とする請求項９乃至１３のいずれか１項に記載の復号方法。
【請求項１６】
符号化単位のブロックを、複数のサブブロックに分割する分割手段と、
前記複数のサブブロックのうちの少なくとも２つの第１サブブロックについて、バンドポジションを決定する決定手段と、
前記複数のサブブロックのうち、前記第１サブブロック以外の第２サブブロックについて、前記符号化単位のブロック内における前記第１サブブロックに対する位置関係と、前記第１サブブロックについて決定されたバンドポジションとに基づいて、前記第２サブブロックのバンドポジションを算出する算出手段と、を有し、
前記第１サブブロック及び第２サブブロックそれぞれについて決定または算出されたバンドポジションを用いて、サブブロックごとにバンドオフセットを実行することを特徴とする符号化装置。
【請求項１７】
復号単位のブロックを、複数のサブブロックに分割する分割手段と、
前記複数のサブブロックのうちの少なくとも２つの第１サブブロックのバンドポジションを取得する取得手段と、
前記複数のサブブロックのうち、前記第１サブブロック以外の第２サブブロックについて、前記復号単位のブロック内における前記第１サブブロックに対する位置関係と、前記第１サブブロックについて取得されたバンドポジションとに基づいて、前記第２サブブロックのバンドポジションを算出する算出手段と、を有し、
前記第１サブブロック及び第２サブブロックそれぞれについて取得または算出されたバンドポジションを用いて、サブブロックごとにバンドオフセットを実行することを特徴とする復号装置。
【請求項１８】
コンピュータに、
符号化単位のブロックを、複数のサブブロックに分割する分割工程と、
前記複数のサブブロックのうちの少なくとも２つの第１サブブロックについて、バンドポジションを決定する決定工程と、
前記複数のサブブロックのうち、前記第１サブブロック以外の第２サブブロックについて、前記符号化単位のブロック内における前記第１サブブロックに対する位置関係と、前記第１サブブロックについて決定されたバンドポジションとに基づいて、前記第２サブブロックのバンドポジションを算出する算出工程と、を実行させるプログラムであって、
前記第１サブブロック及び第２サブブロックそれぞれについて決定または算出されたバンドポジションを用いて、サブブロックごとにバンドオフセットを実行することを特徴とする符号化プログラム。
【請求項１９】
コンピュータに、
復号単位のブロックを、複数のサブブロックに分割する分割工程と、
前記複数のサブブロックのうちの少なくとも２つの第１サブブロックのバンドポジションを取得する取得工程と、
前記複数のサブブロックのうち、前記第１サブブロック以外の第２サブブロックについて、前記復号単位のブロック内における前記第１サブブロックに対する位置関係と、前記第１サブブロックについて取得されたバンドポジションとに基づいて、前記第２サブブロックのバンドポジションを算出する算出工程と、を実行させるプログラムであって、
前記第１サブブロック及び第２サブブロックそれぞれについて取得または算出されたバンドポジションを用いて、サブブロックごとにバンドオフセットを実行することを特徴とする復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラムに関する。
【背景技術】
【０００２】
動画像信号の圧縮符号化に関する国際標準として、Ｈ．２６５／ＨＥＶＣが知られている。Ｈ．２６５／ＨＥＶＣでは、圧縮符号化時の画質の劣化を抑えるループフィルタ技術として、画素適応オフセット（ＳＡＯ（Sample Adaptive Offset））が導入されている。【０００３】
Ｈ．２６５／ＨＥＶＣで導入された画素適応オフセットには、エッジオフセットとバンドオフセットとが含まれ、圧縮符号化時にいずれかのオフセットを適用することができる。このうち、バンドオフセットは、画素値の階調を３２個のバンドに分割し、その中から階調が連続する４個のバンドを選択したうえで、該４個のバンドに属する画素値について、所定のオフセット値を加算（または減算）する処理である。【０００４】
かかるバンドオフセットを適用することで、特定の連続する階調について画素値を調節することができるため、画像の圧縮符号化において、誤差を低減させることが可能となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１４−５３４７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のバンドオフセットは、連続する４個のバンドの選択及び所定のオフセット値の加算（または減算）を、符号化単位のブロックであるＣＴＵ（Coding Tree Unit）ごとに行っていた。このため、ＣＴＵのブロックサイズが大きい場合には、圧縮符号化時の画質の劣化を抑える効果（画質の改善効果）が限定されてしまうという問題があった。【０００７】
加えて、圧縮符号化に関する次世代の国際標準では、現在の国際標準であるＨ．２６５／ＨＥＶＣにおけるＣＴＵのブロックサイズよりも大きいブロックサイズのＣＴＵが規定されることが見込まれており、このような問題がより顕著になることが予想される。【０００８】
一つの側面では、バンドオフセットにおける画質の改善効果を向上させることを目的としている。
【課題を解決するための手段】
【０００９】
一態様によれば、符号化方法は、以下の構成を備える。すなわち、
符号化単位のブロックを、複数のサブブロックに分割する分割工程と、
前記複数のサブブロックのうちの少なくとも２つの第１サブブロックについて、バンドポジションを決定する決定工程と、
前記複数のサブブロックのうち、前記第１サブブロック以外の第２サブブロックについて、前記符号化単位のブロック内における前記第１サブブロックに対する位置関係と、前記第１サブブロックについて決定されたバンドポジションとに基づいて、前記第２サブブロックのバンドポジションを算出する算出工程と、を有し、
前記第１サブブロック及び第２サブブロックそれぞれについて決定または算出されたバンドポジションを用いて、サブブロックごとにバンドオフセットを実行することを特徴とする。
【発明の効果】
【００１０】
バンドオフセットにおける画質の改善効果を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、エンコーダ及びデコーダの適用例を示す図である。
【図２】図２は、エンコーダ及びデコーダの他の適用例を示す図である。
【図３】図３は、エンコーダのハードウェア構成の一例を示す図である。
【図４】図４は、エンコーダの機能構成の一例を示す図である。
【図５】図５は、一般的なエンコーダのループフィルタ部の機能構成の一例を示す図である。
【図６】図６は、一般的なエンコーダによる画素適応オフセット処理の流れを示すフローチャートである。
【図７】図７は、一般的なエンコーダにおけるバンドオフセット処理の処理内容を説明するための図である。
【図８】図８は、一般的なエンコーダによるバンドオフセット処理の流れを示すフローチャートである。
【図９】図９は、一般的なエンコーダによるシグナリング処理の流れを示すフローチャートである。
【図１０】図１０は、第１の実施形態に係るエンコーダのループフィルタ部の機能構成の一例を示す図である。
【図１１】図１１は、第１の実施形態に係るエンコーダによる画素適応オフセット処理の流れを示すフローチャートである。
【図１２】図１２は、第１の実施形態に係るエンコーダにおける領域バンドオフセット処理の処理内容を説明するための第１の図である。
【図１３】図１３は、第１の実施形態に係るエンコーダにおける領域バンドオフセット処理の処理内容を説明するための第２の図である。
【図１４】図１４は、第１の実施形態に係るエンコーダによる領域バンドオフセット処理において、各領域のバンドポジションを算出するための算出方法を示す図である。
【図１５】図１５は、第１の実施形態に係るエンコーダによる領域バンドオフセット処理の流れを示すフローチャートである。
【図１６】図１６は、第１の実施形態に係るエンコーダによるシグナリング処理の流れを示すフローチャートである。
【図１７】図１７は、デコーダの機能構成の一例を示す図である。
【図１８】図１８は、一般的なデコーダのループフィルタ部の機能構成の一例を示す図である。
【図１９】図１９は、一般的なデコーダによる画素適応オフセット処理の流れを示すフローチャートである。
【図２０】図２０は、第１の実施形態に係るデコーダのループフィルタ部の機能構成の一例を示す図である。
【図２１】図２１は、第１の実施形態に係るデコーダによる適応オフセット処理の流れを示すフローチャートである。
【図２２】図２２は、第１の実施形態に係るデコーダによる領域バンドオフセット処理の流れを示すフローチャートである。
【図２３】図２３は、第２の実施形態に係るエンコーダによる領域バンドオフセット処理において、各領域のバンドポジションを算出するための算出方法を示す図である。
【図２４】図２４は、第２の実施形態に係るエンコーダによる領域バンドオフセット処理の流れを示すフローチャートである。
【図２５】図２５は、第２の実施形態に係るエンコーダによるシグナリング処理の流れを示すフローチャートである。
【図２６】図２６は、一般的なエンコーダにおけるマージモードによるバンドオフセット処理において、バンドポジションを決定するための決定方法を示す図である。
【図２７】図２７は、一般的なエンコーダによるマージモードを含むバンドオフセット処理の流れを示すフローチャートである。
【図２８】図２８は、一般的なエンコーダによるマージモードを含むシグナリング処理の流れを示すフローチャートである。
【図２９】図２９は、一般的なデコーダによるマージモードを含む画素適応オフセット処理の流れを示すフローチャートである。
【図３０】図３０は、一般的なデコーダにおける、マージモードによるバンドオフセット処理の詳細を示すフローチャートである。
【図３１】図３１は、第３の実施形態に係るエンコーダにおける、マージモードによる領域バンドオフセット処理において、各領域のバンドポジションを算出するための算出方法を示す図である。
【図３２】図３２は、第３の実施形態に係るエンコーダによる、マージモードを含む領域バンドオフセット処理の流れを示すフローチャートである。
【図３３】図３３は、第３の実施形態に係るエンコーダによる、マージモードを含むシグナリング処理の流れを示すフローチャートである。
【図３４】図３４は、第３の実施形態に係るデコーダによる、マージモードを含む画素適応オフセット処理の流れを示すフローチャートである。
【図３５】図３５は、第３の実施形態に係るデコーダにおける、マージモードによる領域バンドオフセット処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【００１３】
［第１の実施形態］
＜１．エンコーダ及びデコーダの適用例＞
はじめに、エンコーダ（符号化装置）及びデコーダ（復号装置）の適用例について説明する。図１は、エンコーダ及びデコーダの適用例を示す図である。
【００１４】
図１に示すように、エンコーダ１１０を送信装置に、デコーダ１２０を受信装置にそれぞれ配し、ネットワーク１６０を介して接続することで、画像処理システム１００を形成することができる。
【００１５】
画像処理システム１００において、送信装置に配されたエンコーダ１１０は、入力された画像データを符号化することでデータストリームを生成する。また、送信装置は生成されたデータストリームを、ネットワーク１６０を介して受信装置に送信する。
【００１６】
受信装置はデータストリームを受信する。また、受信装置に配されたデコーダ１２０は、データストリームを復号することで画像データを生成し、表示する。
【００１７】
かかる画像処理システム１００を形成することで、エンコーダ１１０及びデコーダ１２０は、例えば、インタネット分野、放送分野、通信分野等の種々の分野に適用することができる。
【００１８】
適用例１００ａは、画像処理システム１００をインタネット分野に適用した例を示している。適用例１００ａの場合、送信装置１１０の一例であるサーバ装置１１１より送信されたデータストリームを、受信装置１１０の一例であるパーソナルコンピュータ１２１ａ、スマート端末１２１ｂ等が受信し、表示する。これにより、パーソナルコンピュータ１２１ａやスマート端末１２１ｂのユーザは、サーバ装置１１１が保持する動画像データをインタネットを介して視聴することができる。
【００１９】
適用例１００ｂは、画像処理システム１００を放送分野に適用した例を示している。適用例１００ｂの場合、送信装置１１０の一例である放送用送信機１１２より送信されたデータストリームを、受信装置１１０の一例であるテレビ１２２が受信し、表示する。これにより、例えば、テレビ１２２のユーザは、放送用送信機１１２が送信する放送内容を視聴することができる。
【００２０】
適用例１００ｃは、画像処理システム１００を通信分野に適用した例を示している。適用例１００ｃの場合、送信装置１１０の一例であるテレビ電話機１１３より送信されたデータストリームを、受信装置１１０の一例であるテレビ電話機１２３が受信し、表示する。これにより、テレビ電話機１２３のユーザは、通話相手の顔を見ながら通話することができる。
【００２１】
図２は、エンコーダ及びデコーダの他の適用例を示す図である。図２に示すように、エンコーダ１１０とデコーダ１２０とを一体的に構成することで、蓄積装置２００を形成することができる。
【００２２】
蓄積装置２００は、入力された画像データをエンコーダ１１０が符号化し、生成したデータストリームを記録媒体に格納する。また、蓄積装置２００は、記録媒体に格納されたデータストリームを、デコーダ１２０が復号することで画像データを生成し、表示する。
【００２３】
かかる蓄積装置２００を形成することで、エンコーダ１１０及びデコーダ１２０は、例えば、蓄積分野に適用することができる。適用例２００ａは蓄積装置２００を蓄積分野に適用した例を示している。適用例２００ａの場合、蓄積装置２００の一例であるビデオレコーダ２１１は、内蔵するエンコーダ１１０が、画像データを符号化することで生成したデータストリームを記録媒体２１２に格納する。また、ビデオレコーダ２１１は、内蔵するデコーダ１２０が、記録媒体２１２より読み出したデータストリームを復号することで生成した画像データを、モニタ２１３に表示する。これにより、ビデオレコーダ２１１のユーザは、取得した動画像データを効率的に蓄積することができる。
【００２４】
＜２．エンコーダ及びデコーダのハードウェア構成＞
次に、エンコーダ及びデコーダのハードウェア構成について説明する。なお、エンコーダ１１０及びデコーダ１２０は、同様のハードウェア構成を有していることから、ここでは、エンコーダ１１０のハードウェア構成について説明する。
【００２５】
図３は、エンコーダのハードウェア構成の一例を示す図である。図３に示すように、エンコーダ１１０は、ＣＰＵ（Central Processing Unit）３０１、ＲＯＭ（Read Only Memory）３０２、ＲＡＭ（Random Access Memory）３０３を有する。ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３は、いわゆるコンピュータを形成する。また、エンコーダ１１０は、補助記憶装置３０４、入力装置３０５、表示装置３０６、接続装置３０７、ドライブ装置３０８を有する。なお、エンコーダ１１０の各ハードウェアは、バス３０９を介して相互に接続される。
【００２６】
ＣＰＵ３０１は、補助記憶装置３０４にインストールされた各種プログラム（例えば、符号化プログラム等）を実行する。
【００２７】
ＲＯＭ３０２は、不揮発性メモリである。ＲＯＭ３０２は、補助記憶装置３０４にインストールされた各種プログラムをＣＰＵ３０１が実行するために必要な各種プログラム、データ等を記憶する、主記憶デバイスとして機能する。具体的には、ＲＯＭ３０２はＢＩＯＳ（Basic Input/Output System）やＥＦＩ（Extensible Firmware Interface）等のブートプログラム等を記憶する。
【００２８】
ＲＡＭ３０３は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）等の揮発性メモリである。ＲＡＭ３０３は、補助記憶装置３０４にインストールされた各種プログラムがＣＰＵ３０１によって実行される際に展開される作業領域を提供する、主記憶デバイスとして機能する。
【００２９】
補助記憶装置３０４は、インストールされた各種プログラムや、各種プログラムを実行する際に用いる情報を記憶する補助記憶デバイスである。
【００３０】
入力装置３０５は、エンコーダ１１０に対して各種指示を入力する際に用いる入力デバイスである。
【００３１】
表示装置３０６は、エンコーダ１１０の内部情報を表示する表示デバイスである。接続装置３０７は、エンコーダ１１０が、デコーダ１２０と接続し、通信を行うための通信デバイスである。
【００３２】
ドライブ装置３０８はコンピュータ読み取り可能な記録媒体３１０をセットするためのデバイスである。ここでいう記録媒体３１０には、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。あるいは、記録媒体３１０には、ＲＯＭ、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
【００３３】
なお、補助記憶装置３０４にインストールされる各種プログラムは、例えば、配布された記録媒体３１０がドライブ装置３０８にセットされ、該記録媒体３１０に記録された各種プログラムがドライブ装置３０８により読み出されることでインストールされてもよい。あるいは、補助記憶装置３０４にインストールされる各種プログラムは、接続装置３０７を介してネットワーク１６０からダウンロードされることでインストールされてもよい。
【００３４】
なお、図３に示すハードウェア構成は、あくまで一例にすぎず、適用形態によっては、図３に示すハードウェアの一部を除外して、あるいは他のハードウェアに置き換えて適用してもよいことはいうまでもない。
【００３５】
＜３．エンコーダの機能構成＞
次に、符号化プログラムが実行されることで実現される、エンコーダ１１０の機能構成について説明する。図４は、エンコーダの機能構成の一例を示す図である。図４に示すように、エンコーダ１１０は、ブロック分割部４０１、直交変換部４０２、量子化部４０３、エントロピ符号化部４０４を有する。また、エンコーダ１１０は、逆量子化部４０５、逆直交変換部４０６、ループフィルタ部４０７、復号画像記憶部４０８、イントラ／インタ予測部４０９を有する。
【００３６】
ブロック分割部４０１は、入力された画像データを符号化ツリーユニット（ＣＴＵ（Coding Tree Unit））のブロックごとに、再帰的に、符号化ユニット（ＣＵ（Coding Unit））のブロックに分割する。なお、一般的な（Ｈ．２６５／ＨＥＶＣにおける）ブロック分割部では、更に、各ＣＵを予測ユニット（ＰＵ（Prediction Unit））と変換ユニット（ＴＵ（Transform Unit））のブロックに分割する。しかしながら、圧縮符号化に関する次世代の国際標準では、ＰＵ、ＴＵを廃止し、全てＣＵに分割することから、本実施形態において、ブロック分割部４０１は、ＣＴＵのブロックを、全てＣＵに分割するものとして説明する。なお、圧縮符号化に関する次世代の国際標準では、ＣＴＵのサイズは、最大１２８画素×１２８画素以上であるので、以下では、ＣＴＵのサイズは、１２８画素×１２８画素として説明する。
【００３７】
直交変換部４０２は、入力された予測残差信号に対して直交変換処理を行う。量子化部４０３は、直交変換処理された予測残差信号を量子化することで量子化信号を生成し、エントロピ符号化部４０４及び逆量子化部４０５に出力する。
【００３８】
エントロピ符号化部４０４は、量子化信号をエントロピ符号化することで、データストリームを生成し、出力する。
【００３９】
逆量子化部４０５は、量子化信号を逆量子化し、逆直交変換部４０６に出力する。逆直交変換部４０６は、逆量子化された量子化信号に対して逆直交変換処理を行うことで、入力された予測残差信号と同程度の信号を得る。
【００４０】
逆直交変換部４０６により得られた信号は、例えば、イントラ／インタ予測部４０９により動き補償された予測画像に加算されることで復号画像が生成され、ループフィルタ部４０７に入力される。
【００４１】
ループフィルタ部４０７は、復号画像の符号化ノイズを低減するフィルタ処理を行う。ループフィルタ部４０７がフィルタ処理を行うことで、復号画像のフレーム間で画質劣化が伝播することを防ぐことができる。なお、ループフィルタ部４０７は、更に、
・デブロッキングフィルタ（Deblocking Filter）部、
・画素適応オフセット（Sample Adaptive Offset）処理部、
・適応ループフィルタ（Adaptive Loop Filter）部、
を有する（詳細は後述）。ループフィルタ部４０７が有するこれらの各部が処理を実行する際に用いるパラメータ（例えば、画素適応オフセット処理部が画素適応オフセット処理を実行する際に用いる画素適応オフセットパラメータ等）はシグナリングされる。ループフィルタ部４０７によりシグナリングされたパラメータは、付帯情報としてエントロピ符号化部４０４によりデータストリームに組み込まれる。
【００４２】
復号画像記憶部４０８は、フィルタ処理された復号画像を記憶する。
【００４３】
イントラ／インタ予測部４０９は、復号画像の各ブロックを用いて予測画像のブロックを生成するイントラ予測を行う。また、イントラ／インタ予測部４０９は、復号画像の各フレームのブロックに基づいて動き補償を行い、予測画像のブロックを生成するインタ予測を行う。
【００４４】
更に、イントラ／インタ予測部４０９は、イントラ予測により生成されたブロックまたはインタ予測により生成されたブロックのいずれか一方を含む予測画像を出力する。
【００４５】
イントラ／インタ予測部４０９より出力された予測画像は、入力された画像データとの残差計算に用いられ、予測残差信号として、直交変換部４０２に入力される。また、イントラ／インタ予測部４０９より出力された予測画像に対しては、ブロックごとに逆直交変換部４０６により得られた予測残差信号と同程度の信号が加算され、復号画像としてループフィルタ部４０７に入力される。
【００４６】
＜４．ループフィルタ部の説明＞
続いて、エンコーダ１１０のループフィルタ部４０７の詳細について説明する。なお、以下、エンコーダ１１０のループフィルタ部４０７の詳細を説明するにあたっては、比較対象として、まず、一般的な（Ｈ．２６５／ＨＥＶＣにおける）エンコーダのループフィルタ部について詳細を説明する。以下、「４．１」〜「４．４」までは、一般的なエンコーダのループフィルタ部について詳細を説明する。その後、「４．５」〜「４．８」において、第１の実施形態に係るエンコーダ１１０のループフィルタ部４０７について詳細を説明する。
【００４７】
＜４．１  一般的なエンコーダのループフィルタ部の機能構成＞
図５は、一般的なエンコーダのループフィルタ部の機能構成の一例を示す図である。図５に示すように、ループフィルタ部は、デブロッキングフィルタ部５１０、画素適応オフセット処理部５２０を有する。
【００４８】
デブロッキングフィルタ部５１０は、復号画像の各ブロックをフィルタ処理することで、画像データの各ブロックを符号化した際にブロック境界で生じた歪を減少させる。画素適応オフセット処理部５２０は、デブロッキングフィルタ部５１０によりフィルタ処理された復号画像の各ブロックを、画素単位で分類し、各画素に対して分類に応じたオフセット値を加算する。
【００４９】
なお、画素適応オフセット処理部５２０は、更に、エッジオフセット処理部５２１、バンドオフセット処理部５２２、選択部５２３を有する。
【００５０】
エッジオフセット処理部５２１は、エッジオフセットクラスとして指定された方向に連続する３画素の大小関係によりエッジ状態を分類する。また、エッジオフセット処理部５２１は、エッジ状態の分類に対応するオフセット値を復号画像の各ブロックの画素値に加算する。更に、エッジオフセット処理部５２１は、画素値にオフセット値が加算された各ブロックを、選択部５２３に通知する。
【００５１】
なお、エッジオフセット処理部５２１は、これらの処理（エッジオフセット処理）を、エッジオフセット処理に関わるＳＡＯパラメータを変更しながら、それぞれのＳＡＯパラメータについて実行する。
【００５２】
バンドオフセット処理部５２２は、復号画像が取り得る画素値の階調を３２個のバンドに分割し、その中から階調が連続する４個のバンドを選択したうえで、該４個のバンドに属する画素値に対して、オフセット値を加算（または減算）する。
【００５３】
具体的には、バンドオフセット処理部５２２は、図５に示すように、ブロック取得部５４１、ＳＡＯパラメータ変更部５４２、画素値変更部５４３を有する。ブロック取得部５４１は、画素適応オフセット処理部５２０が取得した処理対象のブロックを読み出し、画素値変更部５４３に通知する。ＳＡＯパラメータ変更部５４２は、バンドオフセット処理に関わるＳＡＯパラメータを決定し、画素値変更部５４３に出力する。
【００５４】
画素値変更部５４３は、処理対象のブロックの画素値を、ＳＡＯパラメータ変更部５４２より出力されたバンドオフセット処理に関わるＳＡＯパラメータを用いて変更する。また、画素値変更部５４３は画素値を変更したブロックを、バンドオフセット処理に関わるＳＡＯパラメータとともに選択部５２３に通知する。
【００５５】
なお、バンドオフセット処理部５２２は、これらの処理（バンドオフセット処理）を、バンドオフセット処理に関わるＳＡＯパラメータを変更しながら、それぞれのＳＡＯパラメータについて実行する。
【００５６】
選択部５２３は、処理対象のブロックに対して、エッジオフセット処理部５２１が行った処理結果、及び、バンドオフセット処理部５２２が行った処理結果をそれぞれ取得し、レート歪（ＲＤ（Rate Distortion））コストを算出する。また、選択部５２３は、算出したＲＤコストが最も低い処理結果を判定し、判定した処理結果の算出に用いられたＳＡＯパラメータをシグナリングする。
【００５７】
＜４．２  一般的なエンコーダの画素適応オフセット処理部による画素適応オフセット処理の流れ＞
次に、一般的なエンコーダの画素適応オフセット処理部５２０による画素適応オフセット処理の流れについて説明する。図６は、一般的なエンコーダによる画素適応オフセット処理の流れを示すフローチャートである。
【００５８】
処理対象のブロックについてデブロッキングフィルタ部５１０によるデブロッキングフィルタ処理が完了すると、画素適応オフセット処理部５２０は、図６に示す画素適応オフセット処理を開始する。
【００５９】
ステップＳ６０１において、画素適応オフセット処理部５２０は、処理対象のブロックを取得する。
【００６０】
ステップＳ６０２において、エッジオフセット処理部５２１は、取得された処理対象のブロックを読み出し、エッジオフセット処理に関わる所定のＳＡＯパラメータを用いて、エッジオフセット処理を行う。
【００６１】
ステップＳ６０３において、選択部５２３は、ステップＳ６０２におけるエッジオフセット処理の処理結果について、ＲＤコストを算出する。
【００６２】
ステップＳ６０４において、エッジオフセット処理部５２１は、処理対象のブロックに対して、予め定められた範囲内の全てのＳＡＯパラメータ（エッジオフセット処理に関わるＳＡＯパラメータ）を用いてエッジオフセット処理を実行したか否かを判定する。
【００６３】
ステップＳ６０４において、エッジオフセット処理の実行に用いられていないＳＡＯパラメータがあると判定した場合には（ステップＳ６０４においてＮｏの場合には）、ステップＳ６０２に戻る。
【００６４】
一方、ステップＳ６０４において、予め定められた範囲内の全てのＳＡＯパラメータを用いてエッジオフセット処理を実行したと判定した場合には、ステップＳ６０５に進む。
【００６５】
ステップＳ６０５において、バンドオフセット処理部５２２は、処理対象のブロックに対して、バンドオフセット処理に関わる所定のＳＡＯパラメータを用いて、バンドオフセット処理（詳細は後述）を行う。
【００６６】
ステップＳ６０６において、選択部５２３は、ステップＳ６０６におけるバンドオフセット処理の処理結果について、ＲＤコストを算出する。
【００６７】
ステップＳ６０７において、バンドオフセット処理部５２２は、処理対象のブロックに対して、予め定められた範囲内の全てのＳＡＯパラメータ（バンドオフセット処理に関わるＳＡＯパラメータ）を用いてバンドオフセット処理を実行したか否かを判定する。
【００６８】
ステップＳ６０７において、バンドオフセット処理の実行に用いられていないＳＡＯパラメータがあると判定した場合には（ステップＳ６０７においてＮｏの場合には）、ステップＳ６０５に戻る。
【００６９】
一方、ステップＳ６０７において、予め定められた範囲内の全てのＳＡＯパラメータを用いてバンドオフセット処理を実行したと判定した場合には、ステップＳ６０８に進む。
【００７０】
ステップＳ６０８において、選択部５２３は、エッジオフセット処理部５２１が行った各処理結果、及び、バンドオフセット処理部５２２が行った各処理結果について、それぞれのＲＤコストを比較し、ＲＤコストが最も低い処理結果を判定する。また、選択部５２３は、判定した処理結果の算出に用いられたＳＡＯパラメータを特定する。
【００７１】
ステップＳ６０９において、選択部５２３は、判定した処理結果を、画素適応オフセット処理の処理結果として選択して出力する。
【００７２】
ステップＳ６１０において、選択部５２３は、特定したＳＡＯパラメータについてシグナリング処理（詳細は後述）を行う。
【００７３】
＜４．３  一般的なエンコーダにおけるバンドオフセット処理（ステップＳ６０５）の詳細＞
次に、一般的なエンコーダにおけるバンドオフセット処理（ステップＳ６０５）の詳細について説明する。
【００７４】
（１）バンドオフセット処理の処理内容
はじめに、バンドオフセット処理の処理内容について説明する。図７は、一般的なエンコーダにおけるバンドオフセット処理の処理内容を説明するための図である。このうち、図７の７００ａは、処理対象のブロックを示している。図７の７００ａに示すように、一般的なエンコーダの場合、バンドオフセット処理は、復号画像７１０においてＣＴＵ単位のブロックに対して実行される。図７の７００ａの例は、６４画素×６４画素のＣＴＵ７２０のブロックに対してバンドオフセット処理が実行され、処理結果として、ＣＴＵ７２０'のブロックが生成された様子を示している。
【００７５】
図７の７００ｂは、バンドオフセット処理の具体例を示している。図７の７００ｂに示すように、復号画像７１０が０〜２５５の２５６階調の画素値を有していた場合、３２個のバンドが設定されることで、１バンドあたりの階調数は８階調となる。
【００７６】
ここで、ＳＡＯパラメータ変更部５４２が、ＣＴＵ７２０用のバンドポジションとして、矢印７３０で示すバンドポジションを出力したとする。この場合、画素値変更部５４３は、連続する４個のバンドとして、バンド７３１〜７３４を認識する。
【００７７】
そして、画素値変更部５４３は、ＣＴＵ７２０のブロックに含まれる各画素のうち、画素値が、バンド７３１に属する画素について、オフセット値Ｖ１を加算する。同様に、画素値変更部５４３は、ＣＴＵ７２０のブロックに含まれる各画素のうち、画素値が、バンド７３２に属する画素について、オフセット値Ｖ２を加算する。同様に、画素値変更部５４３は、ＣＴＵ７２０のブロックに含まれる各画素のうち、画素値が、バンド７３３に属する画素について、オフセット値Ｖ３を加算する。同様に、画素値変更部５４３は、ＣＴＵ７２０のブロックに含まれる各画素のうち、画素値が、バンド７３４に属する画素について、オフセット値Ｖ４を加算する。
【００７８】
このように、画素値変更部５４３は、バンドオフセット処理に関わるＳＡＯパラメータ＝（矢印７３０で示すバンドポジション、オフセット値Ｖ１〜Ｖ４）を用いて、ＣＴＵ７２０のブロックに対してバンドオフセット処理を行う。これにより、画素値変更部５４３は、バンドオフセット処理の処理結果として、ＣＴＵ７２０'のブロックを生成する。
【００７９】
なお、連続する４つのバンドそれぞれに加算（または減算）するオフセット値Ｖ１〜Ｖ４は、異なる値であっても同じ値（１つの値）であってもよい。
【００８０】
（２）バンドオフセット処理の流れ
続いて、一般的なエンコーダによるバンドオフセット処理（ステップＳ６０５）の詳細なフローチャートについて説明する。図８は、一般的なエンコーダによるバンドオフセット処理の流れを示すフローチャートである。
【００８１】
ステップＳ８０１において、ブロック取得部５４１は、画素適応オフセット処理部５２０が取得した処理対象のブロックを読み出す。
【００８２】
ステップＳ８０２において、ＳＡＯパラメータ変更部５４２は、バンドオフセット処理に関わるＳＡＯパラメータとして、"バンドポジション"、連続する４つのバンドの"オフセットの絶対値"及び"オフセットの符号"を決定する。なお、ＳＡＯパラメータ変更部５４２によって決定されるバンドオフセット処理に関わるＳＡＯパラメータの範囲は予め定められているものとし、ＳＡＯパラメータ変更部５４２は、当該範囲内のＳＡＯパラメータを順次決定していく。また、ＳＡＯパラメータ変更部５４２は、決定したバンドオフセット処理に関わるＳＡＯパラメータを、順次、画素値変更部５４３に出力していく。
【００８３】
ステップＳ８０３において、画素値変更部５４３は、ブロック取得部５４１により読み出された処理対象のブロックの画素値を、ＳＡＯパラメータ変更部５４２により出力された、バンドオフセット処理に関わるＳＡＯパラメータを用いて変更する。
【００８４】
＜４．４  一般的なエンコーダによるシグナリング処理（ステップＳ６１０）の詳細＞
次に、一般的なエンコーダによるシグナリング処理（ステップＳ６１０）の詳細について説明する。図９は、一般的なエンコーダによるシグナリング処理の流れを示すフローチャートである。なお、ここでは、ＲＤコスト比較により、バンドオフセット処理に関わる所定のＳＡＯパラメータを用いたバンドオフセット処理の処理結果が、最もＲＤコストが低い処理結果であると判定されたものとして説明する。
【００８５】
ステップＳ９０１において、選択部５２３は、画素適応オフセット処理において、バンドオフセット処理の処理結果が選択されたことを示す情報をシグナリングする。
【００８６】
ステップＳ９０２において、選択部５２３は、最もＲＤコストが低い処理結果が算出された際の、バンドオフセット処理に関わるＳＡＯパラメータである４つのオフセット絶対値をシグナリングする。
【００８７】
ステップＳ９０３において、選択部５２３は、最もＲＤコストが低い処理結果が算出された際の、バンドオフセット処理に関わるＳＡＯパラメータである４つのオフセット符号をシグナリングする。
【００８８】
ステップＳ９０４において、選択部５２３は、最もＲＤコストが低い処理結果が算出された際の、バンドオフセット処理に関わるＳＡＯパラメータであるバンドポジションをシグナリングする。
【００８９】
＜４．５  第１の実施形態に係るエンコーダのループフィルタ部の機能構成＞
続いて、第１の実施形態に係るエンコーダ１１０のループフィルタ部４０７の機能構成について説明する。
【００９０】
図１０は、第１の実施形態に係るエンコーダのループフィルタ部の機能構成の一例を示す図である。なお、図５を用いて説明した、一般的なエンコーダのループフィルタ部と同様の機能については同じ符号を付すこととし、ここでは説明を省略する。
【００９１】
図５との相違点は、画素適応オフセット処理部５２０が、領域バンドオフセット処理部１００１、選択部１００２、適応ループフィルタ部１００３を有する点である。領域バンドオフセット処理部１００１は、バンドオフセット処理部５２２のように、ＣＴＵ単位のブロックでバンドオフセット処理を行うのではなく、ＣＴＵを更に複数の領域に分割し、領域単位（サブブロック単位）でバンドオフセット処理を行う。領域単位のバンドオフセット処理を「領域バンドオフセット処理」と称す。
【００９２】
領域単位でバンドオフセット処理を行うために、領域バンドオフセット処理部１００１は、ブロック取得部５４１、領域分割部１０１１、ＳＡＯパラメータ変更部１０１２、ＳＡＯパラメータ算出部１０１３、画素値変更部１０１４を有する。
【００９３】
このうち、領域分割部１０１１は分割手段の一例であり、ブロック取得部５４１が読み出した処理対象のブロックを、１６個の正方形の領域（サブブロック）に分割する。なお、処理対象のブロックの分割数は、１６個より多くても少なくてもよい。また、領域分割部１０１１は、分割により得られた領域を、順次、画素値変更部１０１４に出力する。
【００９４】
ＳＡＯパラメータ変更部１０１２は決定手段の一例であり、領域バンドオフセット処理に関わるＳＡＯパラメータを順次決定し、決定した領域バンドオフセット処理に関わるＳＡＯパラメータを、順次、ＳＡＯパラメータ算出部１０１３に出力する。なお、本実施形態のＳＡＯパラメータ変更部１０１２は、領域分割部１０１１により分割される１６個の領域のうち、左上隅に位置する領域と左下隅に位置する領域の２つの領域について、領域バンドオフセット処理に関わるＳＡＯパラメータを決定するものとする。つまり、ＳＡＯパラメータ変更部１０１２は、処理対象のブロックの４つの頂点のうちの左上の頂点を含む領域と、左下の頂点を含む領域の２つの領域（第１サブブロック）についてのＳＡＯパラメータを決定するものとする。
【００９５】
ＳＡＯパラメータ算出部１０１３は算出手段の一例である。ＳＡＯパラメータ算出部１０１３は、２つの領域以外（第１サブブロック以外）の残りの領域（第２サブブロック）の領域バンドオフセット処理に関わるＳＡＯパラメータを算出する。具体的には、ＳＡＯパラメータ算出部１０１３は、決定された２つの領域の領域バンドオフセット処理に関わるＳＡＯパラメータを用いて補間処理することで算出する。ＳＡＯパラメータ算出部１０１３は、補間処理を行うにあたり、処理対象のブロック内における２つの領域と残りの領域それぞれとの位置関係を用いる。
【００９６】
また、ＳＡＯパラメータ算出部１０１３は、決定された、または、算出した１６個の領域それぞれの、領域バンドオフセット処理に関わるＳＡＯパラメータを、画素値変更部１０１４に出力する。
【００９７】
画素値変更部１０１４は、ＳＡＯパラメータ算出部１０１３より出力された、領域バンドオフセット処理に関わるＳＡＯパラメータを用いて、処理対象のブロックの各領域の画素値を変更する。また、画素値変更部１０１４は、画素値が変更された１６個の領域を含む処理対象のブロックを、領域バンドオフセット処理の処理結果として選択部１００２に出力する。
【００９８】
なお、画素値変更部１０１４は、ＳＡＯパラメータ変更部１０１２より、決定された領域バンドオフセット処理に関わるＳＡＯパラメータが出力されるごとに、１６個の領域の画素値を変更する。そして、画素値変更部１０１４は、画素値を変更した１６個の領域を含む処理対象のブロックを、領域バンドオフセット処理の処理結果として選択部１００２に出力する。
【００９９】
選択部１００２は、処理対象のブロックに対して、エッジオフセット処理部５２１が行った各処理結果、バンドオフセット処理部５２２が行った各処理結果、及び、領域バンドオフセット処理部１００１が行った各処理結果を取得し、ＲＤコストを算出する。また、選択部１００２は、算出したＲＤコストが最も低い処理結果を判定し、判定した処理結果を選択して、適応ループフィルタ部１００３に出力する。更に、選択部１００２は、判定した処理結果の算出に用いられたＳＡＯパラメータをシグナリングする。
【０１００】
適応ループフィルタ部１００３は、画素適応オフセット処理部５２０によりオフセット処理された復号画像の各ブロックをフィルタ処理することで、入力画像との誤差を低減させる。
【０１０１】
＜４．６  第１の実施形態に係るエンコーダの画素適応オフセット処理部による画素適応オフセット処理の流れ＞
次に、第１の実施形態に係るエンコーダ１１０の画素適応オフセット処理部５２０による画素適応オフセット処理の流れについて説明する。図１１は、第１の実施形態に係るエンコーダによる画素適応オフセット処理の流れを示すフローチャートである。なお、図６を用いて説明した、一般的なエンコーダによる画素適応オフセット処理のフローチャートと同様の工程については同じ符号を付すこととし、ここでは説明を省略する。
【０１０２】
図６との相違点は、ステップＳ１１０１〜Ｓ１１０３、Ｓ１１０４である。ステップＳ１１０１において、領域バンドオフセット処理部１００１は、処理対象のブロックに対して、領域バンドオフセット処理に関わる所定のＳＡＯパラメータを用いて、領域バンドオフセット処理（詳細は後述）を行う。
【０１０３】
ステップＳ１１０２において、選択部５２３は、ステップＳ１１０１における領域バンドオフセット処理の処理結果について、ＲＤコストを算出する。
【０１０４】
ステップＳ１１０３において、領域バンドオフセット処理部１００１は、処理対象のブロックに対して、予め定められた範囲内の全てのＳＡＯパラメータを用いて領域バンドオフセット処理を実行したか否かを判定する。
【０１０５】
ステップＳ１１０３において、領域バンドオフセット処理の実行に用いられていないＳＡＯパラメータがあると判定した場合には（ステップＳ１１０３においてＮｏの場合には）、ステップＳ１１０１に戻る。
【０１０６】
一方、ステップＳ１１０３において、予め定められた範囲内の全てのＳＡＯパラメータを用いて領域バンドオフセット処理を実行したと判定した場合には、ステップＳ６０８に進む。
【０１０７】
また、ステップＳ１１０４において、選択部１００２は、特定したＳＡＯパラメータについてシグナリング処理（詳細は後述）を行う。なお、領域バンドオフセット処理の処理結果が最もＲＤコストが低いと判定された場合、選択部１００２は、領域バンドオフセット処理に関わるＳＡＯパラメータをシグナリングする。ただし、選択部１００２は、領域バンドオフセット処理に関わるＳＡＯパラメータのうち、ＳＡＯパラメータ変更部１０１２より出力される２つの領域についての領域バンドオフセット処理に関わるＳＡＯパラメータをシグナリングする。
【０１０８】
＜４．７  第１の実施形態に係るエンコーダにおける領域バンドオフセット処理（ステップＳ１１０１）の詳細＞
次に、第１の実施形態に係るエンコーダ１１０における領域バンドオフセット処理（ステップＳ１１０１）の詳細について説明する。
【０１０９】
（１）領域バンドオフセット処理の処理内容
はじめに、バンドオフセット処理の処理内容について説明する。図１２は、第１の実施形態に係るエンコーダにおける領域バンドオフセット処理の処理内容を説明するための第１の図である。
【０１１０】
図１２に示すように、第１の実施形態に係るエンコーダ１１０の場合、領域バンドオフセット処理は、復号画像７１０に含まれるＣＴＵ７２０のブロックを１６個の領域に分割し、領域単位で実行される。ＣＴＵ７２０のブロックの分割数は、１６個より多くても少なくてもよい。
【０１１１】
図１２の例では、１２８画素×１２８画素のＣＴＵ７２０のブロックが、領域１〜領域１６の１６個の領域に分割されることで、ＣＴＵ１２１０のブロックが生成され、領域１から、順次、領域バンドオフセット処理が実行される。
【０１１２】
そして、領域１６に対する領域バンドオフセット処理が完了することで、ＣＴＵ１２１０'のブロックが生成される。領域バンドオフセット処理部１００１は、生成したＣＴＵ１２１０'のブロックを、ＣＴＵ７２０のブロックに対する領域バンドオフセット処理の処理結果（ＣＴＵ７２０'のブロック）として、選択部１００２に出力する。
【０１１３】
（２）領域バンドオフセット処理の具体例
図１３は、第１の実施形態に係るエンコーダにおける領域バンドオフセット処理の処理内容を説明するための第２の図である。図１３に示すように、復号画像７１０が０〜２５５の２５６階調の画素値を有していた場合、３２個のバンドが設定されることで、１バンドあたりの階調数は８階調となる。
【０１１４】
図１３の１３０１＿１は、ＳＡＯパラメータ変更部１０１２が、ＣＴＵ１２１０のブロックの領域１用のバンドポジションとして、矢印１３１０＿１で示すバンドポジションを出力した様子を示している。この場合、画素値変更部１０１４は、連続する４個のバンドとして、バンド１３１１＿１〜１３１４＿１を認識する。
【０１１５】
そして、画素値変更部１０１４は、ＣＴＵ１２１０のブロックの領域１に含まれる各画素のうち、画素値が、バンド１３１１＿１に属する画素について、オフセット値Ｖ１＿１を加算する。同様に、画素値変更部１０１４は、ＣＴＵ１２１０のブロックの領域１に含まれる各画素のうち、画素値が、バンド１３１２＿１に属する画素について、オフセット値Ｖ２＿１を加算する。同様に、画素値変更部１０１４は、ＣＴＵ１２１０のブロックの領域１に含まれる各画素のうち、画素値が、バンド１３１３＿１に属する画素について、オフセット値Ｖ３＿１を加算する。同様に、画素値変更部１０１４は、ＣＴＵ１２１０のブロックの領域１に含まれる各画素のうち、画素値が、バンド１３１４＿１に属する画素について、オフセット値Ｖ４＿１を加算する。
【０１１６】
なお、領域バンドオフセット処理部１００１は、領域２〜１６についても同様の処理を行う。図１３の１３０１＿１６は、このうち、ＳＡＯパラメータ変更部１０１２が、ＣＴＵ１２１０のブロックの領域１６用のバンドポジションとして、矢印１３１０＿１６で示すバンドポジションを出力した様子を示している。この場合、画素値変更部１０１４は、連続する４個のバンドとして、バンド１３１１＿１６〜１３１４＿１６を認識する。
【０１１７】
そして、画素値変更部１０１４は、ＣＴＵ１２１０のブロックの領域１６に含まれる各画素のうち、画素値が、バンド１３１１＿１６に属する画素について、オフセット値Ｖ１＿１６を加算する。同様に、画素値変更部１０１４は、ＣＴＵ１２１０のブロックの領域１６に含まれる各画素のうち、画素値が、バンド１３１２＿１６に属する画素について、オフセット値Ｖ２＿１６を加算する。同様に、画素値変更部１０１４は、ＣＴＵ１２１０のブロックの領域１６に含まれる各画素のうち、画素値が、バンド１３１３＿１６に属する画素について、オフセット値Ｖ３＿１６を加算する。同様に、画素値変更部１０１４は、ＣＴＵ１２１０のブロックの領域１６に含まれる各画素のうち、画素値が、バンド１３１４＿１６に属する画素について、オフセット値Ｖ４＿１６を加算する。
【０１１８】
このように、画素値変更部１０１４は、領域バンドオフセット処理に関わるＳＡＯパラメータとして、
・矢印１３１０＿１〜１３１０＿１６で示すバンドポジション、
・オフセット値Ｖ１＿１〜Ｖ４＿１６のオフセット絶対値
・オフセット値Ｖ１＿１〜Ｖ４＿１６のオフセット符号、
を用いて、ＣＴＵ１２１０のブロックに対して領域バンドオフセット処理を行う。これにより、画素値変更部１０１４は、領域バンドオフセット処理の処理結果として、ＣＴＵ１２１０'のブロックを生成することができる。
【０１１９】
（３）ＳＡＯパラメータ算出部の処理内容
続いて、ＳＡＯパラメータ算出部１０１３の処理内容について説明する。上述したように、ＳＡＯパラメータ算出部１０１３は、ＳＡＯパラメータ変更部１０１２から出力される２つの領域以外の残りの領域の領域バンドオフセット処理に関わるＳＡＯパラメータを算出する。具体的には、ＳＡＯパラメータ算出部１０１３は、２つの領域の領域バンドオフセット処理に関わるＳＡＯパラメータを用いて補間処理することで算出する。ＳＡＯパラメータ算出部１０１３は、補間処理を行うにあたり、処理対象のブロック内における２つの領域と残りの領域それぞれとの位置関係を用いる。
【０１２０】
図１４は、第１の実施形態に係るエンコーダによる領域バンドオフセット処理において、各領域のバンドポジションを算出するための算出方法を示す図である。図１４に示すように、ＣＴＵ１２１０のブロックの領域１〜領域１６の１６個の領域のうち、ＳＡＯパラメータ変更部１０１２は、領域１と領域１３についてのバンドポジション"ＢＰ１"、"ＢＰ２"を出力する。
【０１２１】
ＳＡＯパラメータ算出部１０１３は、ＳＡＯパラメータ変更部１０１２より出力された、領域１についてのバンドポジション＝"ＢＰ１"に基づいて、領域２、領域３、領域４のバンドポジションを算出する（下式（１））。
【０１２２】
また、ＳＡＯパラメータ算出部１０１３は、ＳＡＯパラメータ変更部１０１２より出力された、領域１３についてのバンドポジション＝"ＢＰ２"に基づいて、領域１４、領域１５、領域１６のバンドポジションを算出する（下式（２））。
【０１２３】
また、ＳＡＯパラメータ算出部１０１３は、バンドポジション＝"ＢＰ１"、"ＢＰ２"に基づいて、領域５、領域６、領域７、領域８のバンドポジションを算出する（下式（３））。
【０１２４】
更に、ＳＡＯパラメータ算出部１０１３は、バンドポジション＝"ＢＰ１"、"ＢＰ２"に基づいて、領域９、領域１０、領域１１、領域１２のバンドポジションを算出する（下式（４））。
【０１２５】
【数１】
2019082291.tif 000003
（４）領域バンドオフセット処理の流れ
続いて、第１の実施形態に係るエンコーダ１１０による領域バンドオフセット処理（ステップＳ１１０１）の詳細なフローチャートについて説明する。図１５は、第１の実施形態に係るエンコーダによる領域バンドオフセット処理の流れを示すフローチャートである。
【０１２６】
ステップＳ１５０１において、ブロック取得部５４１は、処理対象のブロックを読み出す。
【０１２７】
ステップＳ１５０２において、領域分割部１０１１は、処理対象のブロックを、領域１〜領域１６の１６個の領域に分割する。
【０１２８】
ステップＳ１５０３において、ＳＡＯパラメータ変更部１０１２は、領域１と領域１３それぞれについて、領域バンドオフセット処理に関わるＳＡＯパラメータを決定する。具体的には、ＳＡＯパラメータ変更部１０１２は、領域１と領域１３それぞれについて、バンドポジション、４つのオフセット絶対値、４つのオフセット符号を決定する。ＳＡＯパラメータ変更部１０１２は、決定した領域１と領域１３の領域バンドオフセット処理に関わるＳＡＯパラメータをＳＡＯパラメータ算出部１０１３に出力する。
【０１２９】
ステップＳ１５０４において、ＳＡＯパラメータ算出部１０１３は、領域２〜１２、領域１４〜１６それぞれについてバンドポジションを算出する。なお、領域２〜１２、領域１４〜１６それぞれについての、４つのオフセット絶対値、４つのオフセット符号は、ここでは、領域１または領域１３と同じ値（１つの値）に決定するものとする。
【０１３０】
ステップＳ１５０５において、画素値変更部１０１４は、決定された、または、算出された、領域バンドオフセット処理に関わるＳＡＯパラメータを用いて、１６個の領域それぞれの画素値を変更する。
【０１３１】
＜４．８  第１の実施形態に係るエンコーダによるシグナリング処理（ステップＳ１１０４）の詳細＞
次に、第１の実施形態に係るエンコーダ１１０によるシグナリング処理（ステップＳ１１０４）の詳細について説明する。図１６は、第１の実施形態に係るエンコーダによるシグナリング処理の流れを示すフローチャートである。なお、ここでは、選択部１００２におけるＲＤコスト比較により、領域バンドオフセット処理に関わる所定のＳＡＯパラメータを用いた領域バンドオフセット処理の処理結果が、最もＲＤコストが低い処理結果であると判定されたものとして説明する。
【０１３２】
ステップＳ１６０１において、選択部１００２は、画素適応オフセット処理において、領域バンドオフセット処理の処理結果が選択されたことを示す情報をシグナリングする。
【０１３３】
ステップＳ１６０２において、選択部１００２は、最もＲＤコストが低い処理結果が算出された際の、領域バンドオフセット処理に関わるＳＡＯパラメータのうち、領域１の４つのオフセット絶対値をシグナリングする。
【０１３４】
ステップＳ１６０３において、選択部１００２は、最もＲＤコストが低い処理結果が算出された際の、領域バンドオフセット処理に関わるＳＡＯパラメータのうち、領域１の４つのオフセット符号をシグナリングする。
【０１３５】
ステップＳ１６０４において、選択部１００２は、最もＲＤコストが低い処理結果が算出された際の、領域バンドオフセット処理に関わるＳＡＯパラメータのうち、領域１のバンドポジションをシグナリングする。
【０１３６】
ステップＳ１６０５において、選択部１００２は、最もＲＤコストが低い処理結果が算出された際の、領域バンドオフセット処理に関わるＳＡＯパラメータのうち、領域１３の４つのオフセット絶対値をシグナリングする。
【０１３７】
ステップＳ１６０６において、選択部１００２は、最もＲＤコストが低い処理結果が算出された際の、領域バンドオフセット処理に関わるＳＡＯパラメータのうち、領域１３の４つのオフセット符号をシグナリングする。
【０１３８】
ステップＳ１６０７において、選択部１００２は、最もＲＤコストが低い処理結果が算出された際の、領域バンドオフセット処理に関わるＳＡＯパラメータのうち、領域１３のバンドポジションをシグナリングする。
【０１３９】
＜５．デコーダの機能構成＞
次に、復号プログラムを実行することで実現される、デコーダ１２０の機能構成について説明する。図１７は、デコーダの機能構成の一例を示す図である。図１７に示すように、デコーダ１２０は、エントロピ復号部１７０１、逆量子化部１７０２、逆直交変換部１７０３、ループフィルタ部１７０４、復号画像記憶部１７０５、イントラ／インタ予測部１７０６を有する。
【０１４０】
エントロピ復号部１７０１は、受信したデータストリームを復号し、量子化信号を出力する。また、エントロピ復号部１７０１は、データストリームより付帯情報（ループフィルタ部１７０４において用いられるＳＡＯパラメータ等を含む）を抽出し、ループフィルタ部１７０４に通知する。
【０１４１】
逆量子化部１７０２は、量子化信号を逆量子化し、逆直交変換部１７０３に出力する。逆直交変換部１７０３は、逆量子化された量子化信号に対して逆直交変換処理を行うことで、予測残差信号を得る。
【０１４２】
逆直交変換部１７０３により得られた予測残差信号は、例えば、イントラ／インタ予測部１７０６により動き補償された予測画像のブロックに加算されることで復号画像が生成され、ループフィルタ部１７０４に入力される。
【０１４３】
ループフィルタ部１７０４は、通知された付帯情報を用いて、入力された復号画像の符号化ノイズを低減するフィルタ処理を行う。ループフィルタ部１７０４がフィルタ処理を行うことで、復号画像のフレーム間で画質劣化が伝播することを防ぐことができる。なお、ループフィルタ部１７０４は、更に、デブロッキングフィルタ部と、画素適応オフセット処理部と、適応ループフィルタ部とを有する（詳細は後述）。
【０１４４】
また、ループフィルタ部１７０４は、フィルタ処理した復号画像を復号結果として出力するとともに、復号画像記憶部１７０５に記憶する。
【０１４５】
イントラ／インタ予測部１７０６は、復号画像の各ブロックを用いて予測画像のブロックを生成するイントラ予測を行う。また、イントラ／インタ予測部１７０６は、復号画像の各フレーム間のブロックに基づいて動き補償を行い、予測画像のブロックを生成するインタ予測を行う。
【０１４６】
更に、イントラ／インタ予測部１７０６は、イントラ予測により生成されたブロックまたはインタ予測により生成されたブロックのいずれか一方を含む予測画像を出力する。出力された予測画像に対しては、逆直交変換部１７０３により得られた予測残差信号が加算され、復号画像として、ループフィルタ部１７０４に入力される。
【０１４７】
＜６．ループフィルタの説明＞
続いて、デコーダ１２０のループフィルタ部１７０４の詳細について説明する。なお、以下、デコーダ１２０のループフィルタ部１７０４の詳細を説明するにあたっては、比較対象として、まず、一般的な（Ｈ．２６５／ＨＥＶＣにおける）デコーダのループフィルタ部について詳細を説明する。以下、「６．１」〜「６．２」までは、一般的なデコーダのループフィルタ部について詳細を説明する。その後、「６．３」〜「６．５」において、第１の実施形態に係るデコーダ１２０のループフィルタ部１７０４について詳細を説明する。
【０１４８】
＜６．１  一般的なデコーダのループフィルタ部の機能構成＞
図１８は、一般的なデコーダのループフィルタ部の機能構成の一例を示す図である。図１８に示すように、ループフィルタ部は、デブロッキングフィルタ部１８１０、画素適応オフセット処理部１８２０を有する。
【０１４９】
デブロッキングフィルタ部１８１０は、復号画像の各ブロックをフィルタ処理することで、エンコーダ１１０が、画像データの各ブロックを符号化した際にブロック境界で生じた歪を減少させる。画素適応オフセット処理部１８２０は、デブロッキングフィルタ部１８１０によりフィルタ処理された復号画像の各ブロックを、画素単位で分類し、各画素に対して分類に応じたオフセット値を加算する。
【０１５０】
なお、画素適応オフセット処理部１８２０は、更に、エッジオフセット処理部１８２１、バンドオフセット処理部１８２２を有しており、エントロピ復号部１７０１より通知された付帯情報に基づいて、いずれかの処理部を実行させる。
【０１５１】
エッジオフセット処理部１８２１は、エッジオフセットクラスとして指定された方向に連続する３画素の大小関係によりエッジ状態を分類する。また、エッジオフセット処理部１８２１は、エッジ状態の分類に対応するオフセット値を復号画像の各ブロックの画素値に加算する。
【０１５２】
バンドオフセット処理部１８２２は、復号画像が取り得る画素値の階調を３２個のバンドに分割し、その中から階調が連続する４個のバンドを選択したうえで、該４個のバンドに属する画素値に対して、所定のオフセット値を加算（または減算）する。
【０１５３】
具体的には、バンドオフセット処理部１８２２は、更に、ブロック取得部１８４１、ＳＡＯパラメータ取得部１８４２、画素値変更部１８４３を有する。ブロック取得部１８４１は、画素適応オフセット処理部１８２０が取得した処理対象のブロックを読み出し、画素値変更部１８４３に通知する。ＳＡＯパラメータ取得部１８４２は、付帯情報に含まれるバンドオフセット処理に関わるＳＡＯパラメータを取得し、画素値変更部１８４３に出力する。
【０１５４】
画素値変更部１８４３は、処理対象のブロックの画素値を、ＳＡＯパラメータ取得部１８４２より出力された、バンドオフセット処理に関わるＳＡＯパラメータを用いて変更する。また、画素値変更部１８４３は画素値を変更したブロックを出力する。
【０１５５】
＜６．２  一般的なデコーダの画素適応オフセット処理部による画素適応オフセット処理の流れ＞
次に、一般的なデコーダの画素適応オフセット処理部１８２０による画素適応オフセット処理の流れについて説明する。図１９は、一般的なデコーダによる画素適応オフセット処理の流れを示すフローチャートである。
【０１５６】
処理対象のブロックについてデブロッキングフィルタ部１８１０によるデブロッキングフィルタ処理が完了すると、画素適応オフセット処理部１８２０は、図１９に示す画素適応オフセット処理を開始する。
【０１５７】
ステップＳ１９０１において、画素適応オフセット処理部１８２０は、処理対象のブロックを取得する。
【０１５８】
ステップＳ１９０２において、画素適応オフセット処理部１８２０は、エントロピ復号部１７０１より付帯情報を取得する。
【０１５９】
ステップＳ１９０３において、画素適応オフセット処理部１８２０は、取得した付帯情報に基づいて、オフセットモードがバンドオフセットモードか否かを判定する。ステップＳ１９０３においてバンドオフセットモードであると判定した場合には（ステップＳ１９０３においてＹｅｓの場合には）、ステップＳ１９０４に進む。
【０１６０】
ステップＳ１９０４において、バンドオフセット処理部１８２２は、付帯情報に含まれるバンドオフセット処理に関わるＳＡＯパラメータを用いて、バンドオフセット処理を実行する。具体的には、ＳＡＯパラメータ取得部１８４２が、付帯情報に含まれるバンドオフセット処理に関わるＳＡＯパラメータを取得し、ブロック取得部１８４１が、取得された処理対象のブロックを読み出す。更に、画素値変更部１８４３が処理対象のブロックの画素値を変更する。
【０１６１】
一方、ステップＳ１９０３においてバンドオフセットモードではないと判定した場合には（ステップＳ１９０３においてＮｏの場合には）、ステップＳ１９０５に進む。
【０１６２】
ステップＳ１９０５において、画素適応オフセット処理部１８２０は、オフセットモードがエッジオフセットモードか否かを判定する。ステップＳ１９０５においてエッジオフセットモードであると判定した場合には（ステップＳ１９０５においてＹｅｓの場合には）、ステップＳ１９０８に進む。
【０１６３】
ステップＳ１９０８において、エッジオフセット処理部１８２１は、付帯情報に含まれるエッジオフセット処理に関わるＳＡＯパラメータを用いてエッジオフセット処理を実行する。
【０１６４】
一方、ステップＳ１９０５において、エッジオフセットモードでないと判定した場合には（ステップＳ１９０５においてＮｏの場合には）、オフセットモードがオフであると判定して、処理対象のブロックに対する画素適応オフセット処理を終了する。
【０１６５】
＜６．３  第１の実施形態に係るデコーダのループフィルタ部の機能構成＞
次に、第１の実施形態に係るデコーダ１２０のループフィルタ部１７０４の機能構成について説明する。
【０１６６】
図２０は、第１の実施形態に係るデコーダのループフィルタ部の機能構成の一例を示す図である。なお、図１８を用いて説明した、一般的なデコーダのループフィルタ部と同様の機能については同じ符号を付すこととし、ここでは説明を省略する。
【０１６７】
図１８との相違点は、画素適応オフセット処理部１８２０が、領域バンドオフセット処理部２００１、適応ループフィルタ部２００２を有する点である。画素適応オフセット処理部１８２０は、エントロピ復号部１７０１より通知された付帯情報に基づいて、エッジオフセット処理部１８２１、バンドオフセット処理部１８２２、領域バンドオフセット処理部２００１のいずれかの処理部を実行させる。
【０１６８】
領域バンドオフセット処理部２００１は、バンドオフセット処理部１８２２のように、ＣＴＵ単位のブロックではなく、ＣＴＵのブロックを更に複数の領域（サブブロック）に分割した領域単位（サブブロック単位）でバンドオフセット処理を行う。
【０１６９】
領域単位で行うために、領域バンドオフセット処理部２００１は、ブロック取得部１８４１、領域分割部２０１１、ＳＡＯパラメータ取得部１８４２、ＳＡＯパラメータ算出部２０１２、画素値変更部１８４３を有する。
【０１７０】
このうち、領域分割部２０１１は、ブロック取得部１８４１が読み出した処理対象のブロックを、１６個の正方形の領域（サブブロック）に分割する。なお、処理対象のブロックの分割数は、１６個より多くても少なくてもよい。また、領域分割部２０１１は、分割により得られた領域を、順次、画素値変更部１８４３に出力する。
【０１７１】
ＳＡＯパラメータ取得部１８４２は、領域バンドオフセット処理に関わるＳＡＯパラメータを取得する。なお、本実施形態において、ＳＡＯパラメータ取得部１８４２は、領域分割部２０１１により分割される１６個の領域のうち、左上隅に位置する領域と、左下隅に位置する領域の２つの領域について、領域バンドオフセット処理に関わるＳＡＯパラメータを取得する。つまり、ＳＡＯパラメータ取得部１８４２は、処理対象のブロックの４つの頂点のうちの左上の頂点を含む領域と、左下の頂点を含む領域の２つの領域（第１サブブロック）について、領域バンドオフセット処理に関わるＳＡＯパラメータを取得する。
【０１７２】
ＳＡＯパラメータ算出部２０１２は、２つの領域以外（第１サブブロック以外）の残りの領域（第２サブブロック）の領域バンドオフセット処理に関わるＳＡＯパラメータを算出する。具体的には、ＳＡＯパラメータ算出部２０１２は、２つの領域の領域バンドオフセット処理に関わるＳＡＯパラメータを用いて補間処理することで算出する。ＳＡＯパラメータ算出部２０１２は、補間処理を行うにあたり、処理対象のブロック内における２つの領域と残りの領域それぞれとの位置関係を用いる。ＳＡＯパラメータ算出部２０１２は、取得または算出した１６個の領域それぞれの、領域バンドオフセット処理に関わるＳＡＯパラメータを、画素値変更部１８４３に出力する。
【０１７３】
画素値変更部１８４３は、処理対象のブロックの各領域の画素値を、ＳＡＯパラメータ算出部２０１２より出力された、領域バンドオフセット処理に関わるＳＡＯパラメータを用いて変更する。また、画素値変更部１８４３は、１６個の領域それぞれの画素値を変更したブロックを、適応ループフィルタ部２００２に出力する。
【０１７４】
適応ループフィルタ部２００２は、画素適応オフセット処理部５２０によりオフセット処理された復号画像の各ブロックをフィルタ処理することで、入力画像との誤差を低減させる。
【０１７５】
＜６．４  第１の実施形態に係るデコーダの画素適応オフセット処理部による画素適応オフセット処理の流れ＞
次に、第１の実施形態に係るデコーダ１２０の画素適応オフセット処理部１８２０による画素適応オフセット処理の流れについて説明する。図２１は、第１の実施形態に係るデコーダによる画素適応オフセット処理の流れを示すフローチャートである。なお、図１９を用いて説明した、一般的なデコーダによる画素適応オフセット処理のフローチャートと同様の工程については同じ符号を付すこととし、ここでは説明を省略する。
【０１７６】
図１９との相違点は、ステップＳ２１０１〜２１０２である。ステップＳ２１０１において、画素適応オフセット処理部１８２０は、取得した付帯情報に基づいて、オフセットモードが領域バンドオフセットモードか否かを判定する。ステップＳ２１０１において、領域バンドオフセットモードであると判定した場合には（ステップＳ２１０１においてＹｅｓの場合には）、ステップＳ２１０２に進む。
【０１７７】
ステップＳ２１０２において、領域バンドオフセット処理部２００１は、処理対象のブロックに対して、領域バンドオフセット処理を行う。なお、デコーダ１２０による領域バンドオフセット処理については、以下に詳説する。
【０１７８】
＜６．５  第１の実施形態に係るデコーダによる領域バンドオフセット処理（ステップＳ２１０２）の詳細＞
図２２は、第１の実施形態に係るデコーダによる領域バンドオフセット処理の流れを示すフローチャートである。
【０１７９】
ステップＳ２２０１において、ブロック取得部１８４１は、処理対象のブロックを読み出す。
【０１８０】
ステップＳ２２０２において、領域分割部２０１１は、処理対象のブロックを、領域１〜領域１６の１６個の領域に分割する。
【０１８１】
ステップＳ２２０３において、ＳＡＯパラメータ取得部１８４２は、付帯情報に含まれる領域バンドオフセット処理に関わるＳＡＯパラメータを取得する。具体的には、ＳＡＯパラメータ取得部１８４２は、処理対象のブロックの領域１、１３のバンドポジションと、４つのオフセット絶対値、４つのオフセット符号を取得する。
【０１８２】
ステップＳ２２０４において、ＳＡＯパラメータ算出部２０１２は、取得した領域１、１３のバンドポジションに基づいて、領域２〜１２、１４〜１６のバンドポジションを算出する。また、ＳＡＯパラメータ算出部２０１２は、取得した領域１または領域１３の４つのオフセット絶対値、４つのオフセット符号を用いて、領域２〜１２、１４〜１６それぞれの、４つのオフセット絶対値、４つのオフセット符号を決定する。
【０１８３】
ステップＳ２２０５において、画素値変更部１８４３は、領域１〜１６それぞれのバンドポジション、４つのオフセット絶対値、４つのオフセット符号を用いて、処理対象のブロックの領域１〜１６それぞれの画素値を変更する。
【０１８４】
＜７．まとめ＞
以上の説明から明らかなように、第１の実施形態に係るエンコーダ１１０の画素適応オフセット処理部は、エッジオフセット処理部、バンドオフセット処理部に加えて、領域バンドオフセット処理部を有しており、
・符号化単位のブロックを１６個の領域（サブブロック）に分割し、２つの領域（左上隅の領域と左下隅の領域）についてバンドポジションを決定する。
・残りの領域のバンドポジションは、決定した２つの領域のバンドポジションを用いて補間処理を行うことで算出する。
・決定または算出した１６個の領域それぞれのバンドポジションを用いて、１６個の領域それぞれについてバンドオフセット処理（領域バンドオフセット処理）を実行する。
・領域バンドオフセット処理の処理結果についてのＲＤコストが最も低いと判定した場合、判定した処理結果の算出に用いられた１６個の領域のバンドポジションのうち、２つの領域のバンドポジションについてシグナリングを行う。そして、シグナリングしたバンドポジションを含む領域バンドオフセット処理に関わるＳＡＯパラメータを、付帯情報としてデコーダ１２０に送信する。
【０１８５】
また、第１の実施形態に係るデコーダ１２０の画素適応オフセット処理部は、エッジオフセット処理部、バンドオフセット処理部に加えて、領域バンドオフセット処理部を有しており、
・復号単位のブロックを１６個の領域に分割するとともに、付帯情報に含まれる２つの領域のバンドポジションを取得する。
・残りの領域のバンドポジションを、取得した２つの領域のバンドポジションを用いて補間処理を行うことで算出する。
・取得または算出した１６個の領域それぞれのバンドポジションを用いて、１６個の領域それぞれについてバンドオフセット処理（領域バンドオフセット処理）を実行する。
【０１８６】
このように、第１の実施形態に係るエンコーダ及びデコーダは、領域単位でバンドオフセット処理（領域バンドオフセット処理）を実行する。これにより、第１の実施形態に係るエンコーダ及びデコーダによれば、一般的なエンコーダ及びデコーダと比較して、ＣＴＵのブロックのサイズが大きい場合でも、画素適応オフセット処理部において画質の改善効果を向上させることができる。
【０１８７】
また、第１の実施形態に係るエンコーダは、１６個の領域のバンドポジション全てをシグナリングする代わりに、２つの領域のバンドポジションをシグナリングする。これにより、第１の実施形態に係るエンコーダによれば、領域単位でバンドオフセット処理を行った場合でも、付帯情報の情報量の増大を抑制することができる。
【０１８８】
［第２の実施形態］
上記第１の実施形態では、符号化単位のブロックを１６個の領域に分割した際、ＳＡＯパラメータ変更部１０１２が２つの領域（左上隅の領域と左下隅の領域）についてバンドポジションを決定するものとして説明した。
【０１８９】
しかしながら、バンドポジションの決定方法はこれに限定されず、３つの領域（左上隅の領域と左下隅の領域と右上隅の領域）についてバンドポジションを決定するように構成してもよい。つまり、処理対象のブロックの４つの頂点のうちの左上の頂点を含む領域と、右上の頂点を含む領域と、左下の頂点を含む領域の３つの領域（第１サブブロック）についてバンドポジションを決定するように構成してもよい。
【０１９０】
以下、第２の実施形態について、第１の実施形態との相違点である、エンコーダ１１０における領域バンドオフセット処理（ステップＳ１１０１）を中心に説明する（デコーダ１２０側の相違点については説明を省略する）。
【０１９１】
＜１．第２の実施形態に係るエンコーダにおける領域バンドオフセット処理（ステップＳ１１０１）の詳細＞
（１）ＳＡＯパラメータ算出部の処理内容
第２の実施形態において、ＳＡＯパラメータ変更部１０１２は、３つの領域のバンドポジションを決定する。また、ＳＡＯパラメータ算出部１０１３は、ＳＡＯパラメータ変更部１０１２より出力された３つの領域のバンドポジションを用いて、残りの領域のバンドポジションを算出する。
【０１９２】
具体的には、ＳＡＯパラメータ算出部１０１３は、３つの領域のバンドポジションを用いて補間処理することで算出する。ＳＡＯパラメータ算出部１０１３は、補間処理を行うにあたり、処理対象のブロック内における３つの領域と、残りの領域それぞれとの位置関係を用いる。
【０１９３】
図２３は、第２の実施形態に係るエンコーダによる領域バンドオフセット処理において、各領域のバンドポジションを算出するための算出方法を示す図である。図２３に示すように、ＳＡＯパラメータ変更部１０１２は、ＣＴＵ１２１０のブロックの領域１〜領域１６の１６個の領域のうち、領域１、領域４、領域１３について、バンドポジション"ＢＰ１"、"ＢＰ２"、"ＢＰ３"を決定する。
【０１９４】
ＳＡＯパラメータ算出部１０１３は、ＳＡＯパラメータ変更部１０１２より出力された、バンドポジション"ＢＰ１"、"ＢＰ２"、"ＢＰ３"に基づいて、残りの領域（領域２、領域３、領域５〜領域１２、領域１４〜領域１６）のバンドポジションを算出する。
【０１９５】
【数２】
2019082291.tif 000004
（２）領域バンドオフセット処理の流れ
続いて、第２の実施形態に係るエンコーダ１１０による領域バンドオフセット処理（ステップＳ１１０１）の詳細なフローチャートについて説明する。図２４は、第２の実施形態に係るエンコーダによる領域バンドオフセット処理の流れを示すフローチャートである。なお、図１５を用いて説明した、第１の実施形態に係るエンコーダ１１０による領域バンドオフセット処理との相違点は、ステップＳ２４０１、Ｓ２４０２である。
【０１９６】
ステップＳ２４０１において、ＳＡＯパラメータ変更部１０１２は、領域１、領域４、領域１３それぞれについて、領域バンドオフセット処理に関わるＳＡＯパラメータを決定する。具体的には、ＳＡＯパラメータ変更部１０１２は、領域１、領域４、領域１３それぞれについて、バンドポジション、４つオフセット絶対値、４つのオフセット符号を決定する。ＳＡＯパラメータ変更部１０１２は、決定した、領域バンドオフセット処理に関わるＳＡＯパラメータをＳＡＯパラメータ算出部１０１３に出力する。
【０１９７】
ステップＳ２４０２において、ＳＡＯパラメータ算出部１０１３は、領域２、３、５〜１２、１４〜１６それぞれについて、"バンドポジション"を算出する。なお、領域２、３、５〜１２、１４〜１６それぞれについての、４つのオフセット絶対値、４つのオフセット符号は、ここでは、領域１、領域４または領域１３のいずれかと同じ値（１つの値）に決定するものとする。
【０１９８】
＜２．第２の実施形態に係るエンコーダによるシグナリング処理（ステップＳ１１０４）の詳細＞
次に、第２の実施形態に係るエンコーダ１１０によるシグナリング処理（ステップＳ１１０４）の詳細について説明する。図２５は、第２の実施形態に係るエンコーダによるシグナリング処理の流れを示すフローチャートである。
【０１９９】
なお、ここでは、ＲＤコスト比較により、領域バンドオフセット処理に関わる所定のＳＡＯパラメータを用いた領域バンドオフセット処理の処理結果が、最もＲＤコストが低い処理結果であると判定されたものとして説明する。図１６を用いて説明した、第１の実施形態に係るエンコーダ１１０によるシグナリング処理（ステップＳ１１０４）との相違点は、ステップＳ２５０１〜Ｓ２５０３である。そこで、以下では、ステップＳ２５０１〜Ｓ２５０３について説明する。
【０２００】
ステップＳ２５０１において、選択部１００２は、最もＲＤコストが低い処理結果が算出された際の、領域バンドオフセット処理に関わるＳＡＯパラメータである、領域４の４つのオフセット絶対値をシグナリングする。
【０２０１】
ステップＳ２５０２において、選択部１００２は、最もＲＤコストが低い処理結果が算出された際の、領域バンドオフセット処理に関わるＳＡＯパラメータである、領域４の４つのオフセット符号をシグナリングする。
【０２０２】
ステップＳ２５０３において、選択部１００２は、最もＲＤコストが低い処理結果が算出された際の、領域バンドオフセット処理に関わるＳＡＯパラメータである、領域４のバンドポジションをシグナリングする。
【０２０３】
＜３．まとめ＞
以上の説明から明らかなように、第２の実施形態に係るエンコーダ１１０の画素適応オフセット処理部は、エッジオフセット処理部、バンドオフセット処理部に加えて、領域バンドオフセット処理部を有しており、
・符号化単位のブロックを１６個の領域（サブブロック）に分割し、３つの領域（左上隅の領域、右上隅の領域、左下隅の領域）についてバンドポジションを決定する。
・残りの領域のバンドポジションは、決定した３つの領域のバンドポジションを用いて補間処理を行うことで算出する。
・決定または算出した１６個の領域それぞれのバンドポジションを用いて、１６個の領域それぞれについてバンドオフセット処理（領域バンドオフセット処理）を実行する。
・１６個の領域のバンドポジションのうち、３つの領域（左上隅の領域、右上隅の領域、左下隅の領域）のバンドポジションについてシグナリングを行う。そして、シグナリングしたバンドポジションを含む領域バンドオフセット処理に関わるＳＡＯパラメータを、付帯情報としてデコーダ１２０に送信する。
【０２０４】
このように、第２の実施形態に係るエンコーダは、１６個の領域のバンドポジション全てをシグナリングする代わりに、３つの領域のバンドポジションをシグナリングする。これにより、第２の実施形態に係るエンコーダによれば、領域単位でバンドオフセット処理を行った場合でも（つまり、領域バンドオフセット処理を行った場合でも）、付帯情報の情報量の増大を抑制することができる。
【０２０５】
なお、上記説明では、デコーダ１２０の画素適応オフセット処理部については説明を省略したが、３つの領域のバンドポジションを用いて残りの領域のバンドポジションを算出するほかは、上記第１実施形態と同様である。つまり、第２の実施形態に係るエンコーダ及びデコーダの場合も、上記第１の実施形態に係るエンコーダ及びデコーダの場合と同様の効果を享受することができる。また、上記第１及び第２の実施形態では、符号化単位のブロックを１６個の領域（サブブロック）に分割し、２つの領域または３つの領域についてバンドポジションを決定するものとして説明した。しかしながら、バンドポジションを決定する領域の数は、３つ以上であってもよい。
【０２０６】
［第３の実施形態］
上記第１及び第２の実施形態では、領域バンドオフセット処理を実行するにあたり、１６個の領域のうちの２つまたは３つの領域のバンドポジションを、処理対象のブロックごとに、別々に決定する場合について説明した。
【０２０７】
しかしながら、バンドポジションの決定方法はこれに限定されず、例えば、上側または左側に隣接するＣＴＵのブロックに対して領域バンドオフセット処理を行った際に用いたバンドポジションを利用するように構成してもよい。
【０２０８】
なお、上側または下側に隣接するＣＴＵのブロックに対して領域バンドオフセット処理を行った際に用いたバンドポジションを利用するモードを、"マージモード"と称する。以下、第３の実施形態について、第２の実施形態との相違点を中心説明する。
【０２０９】
なお、以下、マージモードによる領域バンドオフセット処理の詳細を説明するにあたっては、比較対象として、まず、一般的な（Ｈ．２６５／ＨＥＶＣにおける）エンコーダのマージモードによるバンドオフセット処理について詳細を説明する。以下、「１」〜「３」までは一般的なエンコーダにおけるマージモードによるバンドオフセット処理について詳細を説明する。その後、「４」〜「６」において第３の実施形態に係るエンコーダ１１０におけるマージモードによる領域バンドオフセット処理について詳細を説明する。
【０２１０】
＜１．一般的なエンコーダにおけるマージモードによるバンドオフセット処理（ステップＳ６０５）の詳細＞
（１）一般的なエンコーダにおけるマージモードによるバンドオフセット処理の具体例
図２６は、一般的なエンコーダにおけるマージモードによるバンドオフセット処理において、バンドポジションを決定するための決定方法を示す図である。図２６に示すように、ＳＡＯパラメータ変更部５４２が、ＣＴＵ７２０のブロックのバンドポジションを決定したとする。また、画素値変更部５４３が、決定されたＣＴＵ７２０のブロックのバンドポジションを用いてバンドオフセット処理を実行し、処理結果についてのＲＤコストが最小になったとする。
【０２１１】
この場合、選択部５２３は、ＳＡＯパラメータ変更部５４２が決定した、ＣＴＵ７２０のブロックのバンドポジションをシグナリングする。
【０２１２】
続いて、処理対象がＣＴＵ２６００のブロックに移行したとする。このとき、ＳＡＯパラメータ変更部５４２がＣＴＵ２６００のブロックのバンドポジションの決定に際して、マージモードを適用したとする。
【０２１３】
この場合、ＳＡＯパラメータ変更部５４２では、ＣＴＵ２６００のブロックのバンドポジションとして、ＣＴＵ７２０のブロックのバンドポジションをコピーして出力する。
【０２１４】
（２）マージモードを含むバンドオフセット処理の流れ
次に、一般的なエンコーダによるマージモードを含むバンドオフセット処理（ステップＳ６０５）の詳細なフローチャートについて説明する。図２７は、一般的なエンコーダによるマージモードを含むバンドオフセット処理の流れを示すフローチャートである。なお、図８を用いて説明した、一般的なエンコーダによるバンドオフセット処理との相違点は、ステップＳ２７０１〜Ｓ２７０３である。
【０２１５】
ステップＳ２７０１において、ＳＡＯパラメータ変更部５４２は、処理対象のブロックについて、マージモードによるバンドオフセット処理を実行するか否かを判定する。ステップＳ２７０１において実行すると判定した場合には（ステップＳ２７０１においてＹｅｓの場合には）、ステップＳ２７０２に進む。
【０２１６】
ステップＳ２７０２において、ＳＡＯパラメータ変更部５４２は、上側に隣接するＣＴＵのブロックまたは左側に隣接するＣＴＵのブロックのバンドオフセット処理に関わるＳＡＯパラメータをコピーする。
【０２１７】
ステップＳ２７０３において、ＳＡＯパラメータ変更部５４２は、コピーしたバンドオフセット処理に関わるＳＡＯパラメータにより、処理対象のブロックのバンドオフセット処理に関わるＳＡＯパラメータを決定する。具体的には、ＳＡＯパラメータ変更部５４２は、処理対象のブロックのバンドポジション、４つのオフセット絶対値、４つのオフセット符号を決定する。
【０２１８】
なお、マージモードによるバンドオフセット処理を実行する場合、図６の画素適応オフセット処理に示したステップＳ６０２〜Ｓ６０４、Ｓ６０６〜Ｓ６０８は実行されず、マージモードによるバンドオフセット処理の処理結果が出力される。
【０２１９】
＜２．一般的なエンコーダによるマージモードを含むシグナリング処理（ステップＳ６１０）の詳細＞
次に、一般的なエンコーダ１１０によるマージモードを含むシグナリング処理（ステップＳ６１０）の詳細について説明する。なお、ここでは、説明の簡略化のため、マージモードが適用されなかった場合、バンドオフセット処理に関わるＳＡＯパラメータをシグナリングする処理が実行されるものとする。
【０２２０】
図２８は、一般的なエンコーダによるマージモードを含むシグナリング処理の流れを示すフローチャートである。第１の実施形態において図９を用いて説明したシグナリング処理との相違点は、ステップＳ２８０１〜Ｓ２８０２である。
【０２２１】
ステップＳ２８０１において、選択部５２３は、マージモードが適用されたか否かを判定する。
【０２２２】
ステップＳ２８０１において、マージモードが適用されたと判定した場合には、ステップＳ２８０２に進む。ステップＳ２８０２において、選択部５２３は、マージモードを適用したことを示す情報をシグナリングする。
【０２２３】
＜３．一般的なデコーダの画素適応オフセット処理部による、マージモードを含む画素適応オフセット処理の流れ＞
次に、一般的な（Ｈ．２６５／ＨＥＶＣにおける）デコーダの画素適応オフセット処理部１８２０による、マージモードを含む画素適応オフセット処理について説明する。図２９は、一般的なデコーダによるマージモードを含む画素適応オフセット処理の流れを示すフローチャートである。図１９を用いて説明した、一般的なデコーダによる画素適応オフセット処理との相違点は、ステップＳ２９０１及びＳ２９０２である。
【０２２４】
ステップＳ２９０１において、画素適応オフセット処理部１８２０は、取得した付帯情報に基づいて、処理対象のブロックについてマージモードが適用されているか否かを判定する。ステップＳ２９０１においてマージモードが適用されていると判定した場合には（ステップＳ２９０１においてＹｅｓの場合には）、ステップＳ２９０２に進む。
【０２２５】
ステップＳ２９０２において、バンドオフセット処理部１８２２は、バンドオフセット（マージモードの場合）処理を実行する。なお、バンドオフセット（マージモードの場合）処理の詳細は以下に説明する。
【０２２６】
＜４．一般的なデコーダにおける、マージモードによるバンドオフセット処理の流れ＞
次に、一般的なデコーダにおける、マージモードによるバンドオフセット処理（ステップＳ２９０２）の詳細について説明する。図３０は、一般的なデコーダにおける、マージモードによるバンドオフセット処理の詳細を示すフローチャートである。
【０２２７】
ステップＳ２２０１において、ブロック取得部１８４１は、処理対象のブロックを読み出す。
【０２２８】
ステップＳ３００１において、ＳＡＯパラメータ取得部１８４２は、上側または左側に隣接するＣＴＵのブロックのバンドオフセット処理に関わるＳＡＯパラメータを取得する。
【０２２９】
ステップＳ３００２において、ＳＡＯパラメータ取得部１８４２は、取得したバンドオフセット処理に関わるＳＡＯパラメータを用いて、処理対象のブロックのバンドポジション、４つのオフセット絶対値、４つのオフセット符号を決定する。
【０２３０】
ステップＳ３００３において、画素値変更部１８４３は、バンドポジション、４つのオフセット絶対値、４つのオフセット符号を用いて、処理対象のブロックの画素値を変更する。
【０２３１】
＜５．第３の実施形態に係るエンコーダにおけるマージモードによる領域バンドオフセット処理（ステップＳ１１０１）の詳細＞
（１）マージモードによる領域バンドオフセット処理の処理内容
次に、第３の実施形態に係るエンコーダ１１０における、マージモードによる領域バンドオフセット処理（ステップＳ１１０１）の詳細について説明する。図３１は、第３の実施形態に係るエンコーダにおける、マージモードによる領域バンドオフセット処理において各領域のバンドポジションを算出するための算出方法を示す図である。
【０２３２】
なお、図３１の例は、２つのＣＴＵ（ＣＴＵ１２１０とＣＴＵ３１００）のブロックのうち、ＣＴＵ１２１０のブロックについては、マージモードによらずに領域バンドオフセット処理が実行されたものとする。
【０２３３】
具体的には、
・ＳＡＯパラメータ変更部１０１２によりＣＴＵ１２１０のブロックの領域１、４、１３のバンドポジションが決定され、
・ＳＡＯパラメータ算出部１０１３によりＣＴＵ１２１０のブロックの領域２、３、５〜１２、１４〜１６のバンドポジションが算出され、
・これらのバンドポジションを用いて領域バンドオフセット処理された処理結果が、最もＲＤコストが低い処理結果であると判定され、
・領域１、４、１３のバンドポジションがシグナリングされている、
状態にあるとする。
【０２３４】
このような状態において、ＣＴＵ３１００に対して、マージモードによる領域バンドオフセット処理を実行する場合について説明する。図３１に示すように、ＳＡＯパラメータ変更部１０１２は、ＣＴＵ３１００のブロックの領域１、４、１３のバンドポジションを、ＣＴＵ１２１０のブロックの領域１、４、１３のバンドポジションに基づいて算出する。
【０２３５】
具体的には、ＳＡＯパラメータ変更部１０１２は、ＣＴＵ３１００のブロックの領域１のバンドポジションを、以下の手順で算出する。
・ＣＴＵ１２１０のブロックの領域１のバンドポジションと領域４のバンドポジションとの間の傾斜（領域間（隣接するサブブロック同士）のバンドポジションの差分の平均値）を算出する。
・算出した傾斜に、ＣＴＵ１２１０のブロックの領域４のバンドポジションを加算する。
【０２３６】
また、ＳＡＯパラメータ変更部１０１２は、ＣＴＵ３１００のブロックの領域４のバンドポジションを、以下の手順で算出する。
・ＣＴＵ１２１０のブロックの領域１のバンドポジションと領域４のバンドポジションとの差分を算出する。
・算出した差分に、ＣＴＵ３１００のブロックの領域１のバンドポジションを加算する。
【０２３７】
また、ＳＡＯパラメータ変更部１０１２は、ＣＴＵ３１００の領域１３のバンドポジションを、以下の手順で算出する。
・ＣＴＵ１２１０のブロックの領域１のバンドポジションと領域１３のバンドポジションとの差分を算出する。
・算出した差分に、ＣＴＵ３１００のブロックの領域１のバンドポジションを加算する。
【０２３８】
ＳＡＯパラメータ変更部１０１２により、ＣＴＵ３１００のブロックの領域１、４、１３のバンドポジションが算出されると、ＳＡＯパラメータ算出部１０１３は、ＣＴＵ３１００のブロックの残りの領域２〜３、５〜１２、１４〜１６のバンドポジションを算出する。なお、ＣＴＵ３１００のブロックの残りの領域２〜３、５〜１２、１４〜１６のバンドポジションの算出方法は、ＣＴＵ１２１０の領域２〜３、５〜１２、１４〜１６のバンドポジションの算出方法と同様であるため、ここでは説明を省略する。
【０２３９】
（２）マージモードを含む領域バンドオフセット処理の流れ
続いて、第３の実施形態に係るエンコーダ１１０による、マージモードを含む領域バンドオフセット処理（ステップＳ１１０１）の詳細なフローチャートについて説明する。図３２は、第３の実施形態に係るエンコーダによる、マージモードを含む領域バンドオフセット処理の流れを示すフローチャートである。なお、図２４を用いて説明した、第２の実施形態に係るエンコーダ１１０による領域バンドオフセット処理との相違点は、ステップＳ３２０１〜Ｓ３２０４である。
【０２４０】
ステップＳ３２０１において、ＳＡＯパラメータ変更部１０１２は、処理対象のブロックにおいてマージモードを適用するか否かを判定する。ステップＳ３２０１において、マージモードを適用すると判定した場合には、ステップＳ３２０２に進む。
【０２４１】
ステップＳ３２０２において、ＳＡＯパラメータ変更部１０１２は、上側に隣接するＣＴＵのブロックまたは左側に隣接するＣＴＵのブロックの、領域バンドオフセット処理に関わるＳＡＯパラメータをコピーする。
【０２４２】
ステップＳ３２０３において、ＳＡＯパラメータ変更部１０１２は、コピーした領域バンドオフセット処理に関わるＳＡＯパラメータに含まれる、領域１、４、１３のバンドポジションを取得する。そして、ＳＡＯパラメータ変更部１０１２は、取得した領域１、４、１３のバンドポジションに基づいて、処理対象のブロックの領域１、４、１３のバンドポジションを算出する。
【０２４３】
ステップＳ３２０４において、ＳＡＯパラメータ算出部１０１３は、算出された領域１、４、１３のバンドポジションに基づいて、処理対象のブロックの領域２、３、５〜１２、１４〜１６のバンドポジションを算出する。また、ＳＡＯパラメータ算出部１０１３は、コピーした領域バンドオフセット処理に関わるＳＡＯパラメータに含まれる、領域１（または領域４、領域１３）の４つのオフセット絶対値、オフセット符号を取得する。そして、ＳＡＯパラメータ算出部１０１３は、取得した領域１（または領域４、領域１３）の４つのオフセット絶対値、オフセット符号を、処理対象のブロックの領域１〜１６の４つのオフセット絶対値、オフセット符号に決定する。
【０２４４】
なお、マージモードのよる領域バンドオフセット処理を実行する場合、図１１の適応オフセット処理に示したステップＳ６０２〜Ｓ６０７、Ｓ１１０２〜Ｓ６０８は実行されず、マージモードによる領域バンドオフセット処理の処理結果が出力される。
【０２４５】
＜６．第３の実施形態に係るエンコーダによる、マージモードを含むシグナリング処理（ステップＳ１１０４）の詳細＞
次に、第３の実施形態に係るエンコーダ１１０による、マージモードを含むシグナリング処理（ステップＳ１１０４）の詳細について説明する。なお、ここでは、説明の簡略化のため、マージモードが適用されなかった場合、領域バンドオフセット処理に関わるＳＡＯパラメータをシグナリングする処理が実行されるものとする。
【０２４６】
図３３は、第３の実施形態に係るエンコーダによる、マージモードを含むシグナリング処理の流れを示すフローチャートである。
【０２４７】
ステップＳ３３０１において、選択部１００２は、マージモードが適用されたか否かを判定する。ステップ３３０１においてマージモードが適用されたと判定した場合には、ステップＳ３３０２に進む。
【０２４８】
ステップＳ３３０２において、選択部１００２は、マージモードが適用されたことを示す情報をシグナリングする。
【０２４９】
＜７．第３の実施形態に係るデコーダの画素適応オフセット処理部によるマージモードを含む画素適応オフセット処理の流れ＞
次に、第３の実施形態に係るデコーダ１２０の画素適応オフセット処理部１８２０による、マージモードを含む画素適応オフセット処理の流れについて説明する。図３４は、第３の実施形態に係るデコーダによる、マージモードを含む画素適応オフセット処理の流れを示すフローチャートである。なお、第１の実施形態に係るデコーダによる、マージモードを含む画素適応オフセット処理（図２１）及び一般的なデコーダによる画素適応オフセット処理（図２９）と同様の工程については同じ符号を付すこととし、ここでは説明を省略する。
【０２５０】
図２１及び図２９との相違点は、ステップＳ３４０１及びＳ３４０２である。ステップＳ３４０１において、画素適応オフセット処理部１８２０は、取得した付帯情報に基づいて、上側または左側に隣接するＣＴＵのブロックのオフセットモードが領域バンドオフセットモードか否かを判定する。ステップＳ３４０１において、領域バンドオフセットモードであると判定した場合には（ステップＳ３４０１においてＹｅｓの場合には）、ステップＳ３４０２に進む。
【０２５１】
ステップＳ３４０２において、領域バンドオフセット処理部２００１は、処理対象のブロックに対して、マージモードによる領域バンドオフセット処理を行う。なお、マージモードによる領域バンドオフセット処理の詳細は、以下に説明する。
【０２５２】
＜８．第３の実施形態に係るデコーダにおける、マージモードによる領域バンドオフセット処理（ステップＳ３４０２）の詳細＞
図３５は、第３の実施形態に係るデコーダにおける、マージモードによる領域バンドオフセット処理の流れ示すフローチャートである。なお、図２２を用いて説明した、領域バンドオフセット処理との相違点は、ステップＳ３５０１〜Ｓ３５０３である。
【０２５３】
ステップＳ３５０１において、ＳＡＯパラメータ取得部１８４２は、上側または左側に隣接するＣＴＵのブロックについての付帯情報に含まれる、領域バンドオフセット処理に関わるＳＡＯパラメータを取得する。具体的には、ＳＡＯパラメータ取得部１８４２は、隣接するＣＴＵのブロックの領域１、４、１３のバンドポジションと、４つのオフセット絶対値、４つのオフセット符号を取得する。
【０２５４】
ステップＳ３５０２において、ＳＡＯパラメータ算出部２０１２は、隣接するＣＴＵのブロックの領域１、４、１３のバンドポジションに基づいて、処理対象のブロックの領域１、４、１３のバンドポジションを算出する。
【０２５５】
ステップＳ３５０３において、ＳＡＯパラメータ算出部２０１２は、処理対象のブロックの領域１、４、１３のバンドポジションに基づいて、処理対象のブロックの領域２、３、５〜１２、１４〜１６のバンドポジションを算出する。また、ＳＡＯパラメータ算出部２０１２は、領域１（または領域４、１３）の４つのオフセット絶対値、オフセット符号を、処理対象のブロックの領域１〜１６の４つのオフセット絶対値、オフセット符号に決定する。
【０２５６】
これにより、画素値変更部１８４３では、算出または決定された、領域１〜１６それぞれのバンドポジション、４つのオフセット絶対値、４つのオフセット符号を用いて、処理対象のブロックの領域１〜１６それぞれの画素値を変更する。
【０２５７】
＜９．まとめ＞
以上の説明から明らかなように、第３の実施形態に係るエンコーダ１１０の画素適応オフセット処理部は、上記第２の実施形態に加えて、マージモードによる領域バンドオフセット処理が適用可能であり、マージモードを適用した場合、
・処理対象のブロックに隣接するブロックの３つの領域（左上隅の領域、右上隅の領域、左下隅の領域）のバンドポジションを取得する。
・処理対象のブロックを１６個の領域に分割し、３つの領域（左上隅の領域、右上隅の領域、左下隅の領域）のバンドポジションを、取得した３つの領域のバンドポジションに基づいて算出する。
・残りの領域のバンドポジションは、算出した３つの領域のバンドポジションを用いて補間処理を行うことで算出する。
・算出した１６個の領域それぞれのバンドポジションを用いて、１６個の領域それぞれについてバンドオフセット処理（領域バンドオフセット処理）を実行する。
・マージモードによる領域バンドオフセット処理が実行されたことを示す情報をシグナリングし、付帯情報としてデコーダ１２０に送信する。
【０２５８】
また、第３の実施形態に係るデコーダ１２０の画素適応オフセット処理部は、上記第２の実施形態に加えて、マージモードによる領域バンドオフセット処理に対応可能であり、
・マージモードによる領域バンドオフセット処理が適用されたと判定した場合に、処理対象のブロックに隣接するブロックの３つの領域（左上隅の領域、右上隅の領域、左下隅の領域）のバンドポジションを取得する。
・処理対象のブロックを１６個の領域に分割し、３つの領域（左上隅の領域、右上隅の領域、左下隅の領域）のバンドポジションを、取得した３つの領域のバンドポジションに基づいて算出する。
・残りの領域のバンドポジションを、算出した３つの領域のバンドポジションを用いて補間処理を行うことで算出する。
・算出した１６個の領域それぞれのバンドポジションを用いて、１６個の領域それぞれについてバンドオフセット処理（領域バンドオフセット処理）を実行する。
【０２５９】
このように、第３の実施形態に係るエンコーダは、３つの領域のバンドポジションをシグナリングする代わりに、マージモードによる領域バンドオフセット処理が実行されたことを示す情報をシグナリングする。これにより、第３の実施形態に係るエンコーダによれば、領域単位でバンドオフセット処理を行った場合でも、付帯情報の情報量の増大を抑制することができる。
【０２６０】
［その他の実施形態］
上記第１及び第２の実施形態では、領域バンドオフセット処理に関わるＳＡＯパラメータのうち、４つのオフセット絶対値及び４つのオフセット符号についても、領域１、１３（または領域１、４、１３）についてのみシグナリングするものとして説明した。しかしながら、シグナリング対象の領域バンドオフセット処理に関わるＳＡＯパラメータはこれに限定されない。
【０２６１】
例えば、領域１〜１６それぞれについて、４つのオフセット絶対値及び４つのオフセット符号として互いに異なる値を用いたとする。この場合、領域１〜領域１６すべてについて４つのオフセット絶対値及び４つのオフセット符号をシグナリングするように構成してもよい。
【０２６２】
この場合、デコーダ１２０では、シグナリングされた領域１〜領域１６それぞれの４つのオフセット絶対値及び４つのオフセット符号を用いて、領域バンドオフセット処理を実行するものとする。
【０２６３】
あるいは、領域２〜１６と、領域１とで１つの値（４つのオフセット絶対値が同じ値及び４つのオフセット符号が同じ符号）を用いたとする。この場合、領域１の４つのオフセット絶対値及び４つのオフセット符号のみをシグナリングするように構成してもよい。
【０２６４】
この場合、デコーダ１２０では、シグナリングされた領域１の４つのオフセット絶対値及び４つのオフセット符号を用いて、領域１〜領域１６の領域バンドオフセット処理を実行するものとする。
【０２６５】
また、上記第１及び第２の実施形態では、領域バンドオフセット処理に関わるＳＡＯパラメータとして、４つのオフセット絶対値及び４つのオフセット符号をシグナリングするものとして説明した。しかしながら、シグナリング対象の領域バンドオフセット処理に関わるＳＡＯパラメータは、これに限定されない。例えば、４つのオフセット絶対値及び４つのオフセット符号をシグナリングする代わりに、１つのオフセット絶対値及び１つのオフセット符号のみをシグナリングするように構成してもよい。ただし、この場合、選択部１００２は、処理対象のブロックにおいて決定された各領域のバンドポジションのうち、最大のバンドポジションと、最小のバンドポジションとを特定する。そして、選択部１００２は、特定した最大のバンドポジションと最小のバンドポジションとの間に含まれる各バンドそれぞれについて、１つのオフセット絶対値及び１つのオフセット符号をシグナリングする。
【０２６６】
この場合、デコーダ１２０では、シグナリングされた各バンドのオフセット絶対値及びオフセット符号を参照し、各領域のバンドポジションに対応するバンドのオフセット絶対値及びオフセット符号を抽出する。これにより、デコーダ１２０では、各領域のオフセット絶対値及びオフセット符号を決定することができる。
【０２６７】
また、上記第１及び第２の実施形態では、領域バンドオフセット処理部１００１をバンドオフセット処理部５２２とは別個に設ける構成としたが、例えば、領域バンドオフセット処理部１００１は、バンドオフセット処理部５２２に代えて設ける構成としてもよい。
【０２６８】
この場合、領域バンドオフセット処理部１００１は、例えば、処理対象のブロックを１６個の領域に分割してから領域ごとにバンドオフセット処理を行うモードと、分割せずにバンドオフセット処理を行うモードとを切り替えて実行するように構成してもよい。つまり、処理対象のブロックを領域に分割する際の分割数を切り替えることで、バンドオフセット処理を行うモードと領域バンドオフセット処理を行うモードとを切り替えるように構成してもよい。
【０２６９】
なお、画素適応オフセット処理部５２０において、バンドオフセット処理と領域バンドオフセット処理とを、常に両方実行する必要はなく、いずれか一方のみを実行させる場合があってもよいし、両方実行しない場合があってもよいことはいうまでもない。
【０２７０】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【０２７１】
１００            ：画像処理システム
１１０            ：エンコーダ
１２０            ：デコーダ
４０７            ：ループフィルタ部
５２０            ：画素適応オフセット処理部
５２１            ：エッジオフセット処理部
５２２            ：バンドオフセット処理部
５４１            ：ブロック取得部
１００１          ：領域バンドオフセット処理部
１００２          ：選択部
１０１１          ：領域分割部
１０１２          ：ＳＡＯパラメータ変更部
１０１３          ：ＳＡＯパラメータ算出部
１０１４          ：画素値変更部
１７０４          ：ループフィルタ部
１８２０          ：画素適応オフセット処理部
１８２１          ：エッジオフセット処理部
１８２２          ：バンドオフセット処理部
１８４１          ：ブロック取得部
１８４２          ：ＳＡＯパラメータ取得部
１８４３          ：画素値変更部
２００１          ：領域バンドオフセット処理部
２０１１          ：領域分割部
２０１２          ：ＳＡＯパラメータ算出部
【図１】
2019082291.tif 000005
【図２】
2019082291.tif 000006
【図３】
2019082291.tif 000007
【図４】
2019082291.tif 000008
【図５】
2019082291.tif 000009
【図６】
2019082291.tif 000010
【図７】
2019082291.tif 000011
【図８】
2019082291.tif 000012
【図９】
2019082291.tif 000013
【図１０】
2019082291.tif 000014
【図１１】
2019082291.tif 000015
【図１２】
2019082291.tif 000016
【図１３】
2019082291.tif 000017
【図１４】
2019082291.tif 000018
【図１５】
2019082291.tif 000019
【図１６】
2019082291.tif 000020
【図１７】
2019082291.tif 000021
【図１８】
2019082291.tif 000022
【図１９】
2019082291.tif 000023
【図２０】
2019082291.tif 000024
【図２１】
2019082291.tif 000025
【図２２】
2019082291.tif 000026
【図２３】
2019082291.tif 000027
【図２４】
2019082291.tif 000028
【図２５】
2019082291.tif 000029
【図２６】
2019082291.tif 000030
【図２７】
2019082291.tif 000031
【図２８】
2019082291.tif 000032
【図２９】
2019082291.tif 000033
【図３０】
2019082291.tif 000034
【図３１】
2019082291.tif 000035
【図３２】
2019082291.tif 000036
【図３３】
2019082291.tif 000037
【図３４】
2019082291.tif 000038
【図３５】
2019082291.tif 000039
【国際調査報告】
2019082291.tif 000040
2019082291.tif 000041
2019082291.tif 000042
2019082291.tif 000043