(57)【要約】  画質を向上させるとともに、ＳＡＯパラメータのビット量を削減する。符号化方法は、符号化単位のブロックの画素値の階調を、所定の階調数を有する複数のクラスに分割し、該複数のクラスそれぞれに属する画素の数を算出する算出工程と、算出した画素の数が多い上位ｎ個（ｎは１以上の整数）のクラスを選択し、選択したｎ個のクラスそれぞれに属する画素の画素値に、オフセット値を加算するクラス加算工程と、加算したオフセット値を含むＳＡＯパラメータをシグナリングする第１のシグナリング工程とを有することを特徴とする。
2019135294.tif 000002
【特許請求の範囲】
【請求項１】
符号化単位のブロックの画素値の階調を、所定の階調数を有する複数のクラスに分割し、該複数のクラスそれぞれに属する画素の数を算出する算出工程と、
算出した画素の数が多い上位ｎ個（ｎは１以上の整数）のクラスを選択し、選択したｎ個のクラスそれぞれに属する画素の画素値に、オフセット値を加算するクラス加算工程と、
加算したオフセット値を含むＳＡＯパラメータをシグナリングする第１のシグナリング工程と
を有することを特徴とする符号化方法。
【請求項２】
前記画素値の階調が２ＢＤ階調（ＢＤは８以上の整数）であった場合、前記算出工程は、前記画素値の階調を、少なくとも２（ＢＤ−７）の階調数を有する複数のクラスに分割することを特徴とする請求項１に記載の符号化方法。
【請求項３】
前記クラス加算工程は、算出した画素の数が多い上位４個または６個のクラスを選択することを特徴とする請求項１または２に記載の符号化方法。
【請求項４】
符号化単位のブロックの画素値の階調を、３２個のバンドに分割するバンド分割工程と、
前記３２個のバンドの中からバンドポジションを決定し、決定したバンドポジションに応じて特定される４個のバンドそれぞれに属する画素の画素値に、オフセット値を加算するバンド加算工程と、
決定したバンドポジションと、加算したオフセット値とを含むＳＡＯパラメータをシグナリングする第２のシグナリング工程と
を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の符号化方法。
【請求項５】
符号化単位のブロックの画素値の階調を、所定の階調数を有する複数のクラスに分割し、該複数のクラスそれぞれに属する画素の数を算出する算出工程と、
シグナリングされたＳＡＯパラメータに含まれるオフセット値を取得する第１の取得工程と、
算出した画素の数が多い上位ｎ個（ｎは１以上の整数）のクラスを選択し、選択したｎ個のクラスそれぞれに属する画素の画素値に、取得したオフセット値を加算するクラス加算工程と
を有することを特徴とする復号方法。
【請求項６】
前記画素値の階調が２ＢＤ階調（ＢＤは８以上の整数）であった場合、前記算出工程は、前記画素値の階調を、少なくとも２（ＢＤ−７）の階調数を有する複数のクラスに分割することを特徴とする請求項５に記載の復号方法。
【請求項７】
前記クラス加算工程は、算出した画素の数が多い上位４個または６個のクラスを選択することを特徴とする請求項５または６に記載の復号方法。
【請求項８】
符号化単位のブロックの画素値の階調を、３２個のバンドに分割するバンド分割工程と、
シグナリングされたＳＡＯパラメータに含まれるバンドポジションとオフセット値とを取得する第２の取得工程と、
取得したバンドポジションに応じて特定される４個のバンドそれぞれに属する画素の画素値に、取得したオフセット値を加算するバンド加算工程と
を更に有することを特徴とする請求項５乃至７のいずれか１項に記載の復号方法。
【請求項９】
符号化単位のブロックの画素値の階調を、所定の階調数を有する複数のクラスに分割し、該複数のクラスそれぞれに属する画素の数を算出する算出部と、
算出した画素の数が多い上位ｎ個（ｎは１以上の整数）のクラスを選択し、選択したｎ個のクラスそれぞれに属する画素の画素値に、オフセット値を加算するクラス加算部と、
加算したオフセット値を含むＳＡＯパラメータをシグナリングするシグナリング部と
を有することを特徴とする符号化装置。
【請求項１０】
符号化単位のブロックの画素値の階調を、所定の階調数を有する複数のクラスに分割し、該複数のクラスそれぞれに属する画素の数を算出する算出部と、
シグナリングされたＳＡＯパラメータに含まれるオフセット値を取得する取得部と、
算出した画素の数が多い上位ｎ個（ｎは１以上の整数）のクラスを選択し、選択したｎ個のクラスそれぞれに属する画素の画素値に、取得したオフセット値を加算するクラス加算部と
を有することを特徴とする復号装置。
【請求項１１】
符号化単位のブロックの画素値の階調を、所定の階調数を有する複数のクラスに分割し、該複数のクラスそれぞれに属する画素の数を算出する算出工程と、
算出した画素の数が多い上位ｎ個（ｎは１以上の整数）のクラスを選択し、選択したｎ個のクラスそれぞれに属する画素の画素値に、オフセット値を加算するクラス加算工程と、
加算したオフセット値を含むＳＡＯパラメータをシグナリングするシグナリング工程と
をコンピュータに実行させるための符号化プログラム。
【請求項１２】
符号化単位のブロックの画素値の階調を、所定の階調数を有する複数のクラスに分割し、該複数のクラスそれぞれに属する画素の数を算出する算出工程と、
シグナリングされたＳＡＯパラメータに含まれるオフセット値を取得する取得工程と、
算出した画素の数が多い上位ｎ個（ｎは１以上の整数）のクラスを選択し、選択したｎ個のクラスそれぞれに属する画素の画素値に、取得したオフセット値を加算するクラス加算工程と
をコンピュータに実行させるための復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラムに関する。
【背景技術】
【０００２】
動画像データの圧縮符号化に関する国際標準として、Ｈ．２６５／ＨＥＶＣが知られている。Ｈ．２６５／ＨＥＶＣでは、圧縮符号化時の画質の劣化を抑えるループフィルタ技術として、画素適応オフセット（ＳＡＯ（Sample Adaptive Offset））が導入されている。【０００３】
Ｈ．２６５／ＨＥＶＣで導入された画素適応オフセットには、エッジオフセットとバンドオフセットとが含まれ、圧縮符号化時にいずれかのオフセットを適用することができる。このうち、バンドオフセットは、画素値の階調を３２個のバンドに分割し、その中から決定したバンドポジションに基づく連続した４個のバンドを選択したうえで、該４個のバンドそれぞれに属する画素の画素値にオフセット値を加算（または減算）する処理である。【０００４】
かかるバンドオフセットを適用することで、特定の連続する階調値に対応する画素値を調節することができるため、圧縮符号化時の誤差を低減させ画質を改善することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１４−５３４７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、現状のバンドオフセットは、バンド幅が広いうえに、特定の連続する階調値を対象としているため、画素値の詳細な調節を行うことが困難であり、画質の向上には限界があるという問題がある。【０００７】
例えば、色差における階調値の中央値付近は無彩色であるため、歪みがある場合、主観的画質の劣化が生じやすいが、現状のバンドオフセットでは、バンド幅が広いうえに、中央値以外の連続した４個のバンドが対象となった場合に、適切な対象にオフセット値を加算（または減算）することができない。このようなことから、現在検討中である次世代ビデオコーデック（Ｈ．２６５／ＨＥＶＣに続く次世代コーデック）においては、バンドオフセットにおける画質の向上が望まれる。【０００８】
また、バンドオフセットは、処理対象のブロックごとに、決定したバンドポジションと、選択した４個のバンドそれぞれに対応するオフセット値とを含むＳＡＯパラメータをシグナリングしてデコーダに送信する。このため、デコーダに送信されるＳＡＯパラメータのビット量が大きいという問題がある。このようなことから、現在検討中である次世代ビデオコーデックにおいては、ＳＡＯパラメータのビット量を削減することが望まれる。【０００９】
一つの側面では、画質を向上させるとともに、ＳＡＯパラメータのビット量を削減することを目的としている。
【課題を解決するための手段】
【００１０】
一態様によれば、符号化方法は、以下の構成を備える。すなわち、
符号化単位のブロックの画素値の階調を、所定の階調数を有する複数のクラスに分割し、該複数のクラスそれぞれに属する画素の数を算出する算出工程と、
算出した画素の数が多い上位ｎ個（ｎは１以上の整数）のクラスを選択し、選択したｎ個のクラスそれぞれに属する画素の画素値に、オフセット値を加算するクラス加算工程と、
加算したオフセット値を含むＳＡＯパラメータをシグナリングする第１のシグナリング工程とを有することを特徴とする。
【発明の効果】
【００１１】
画質を向上させるとともに、ＳＡＯパラメータのビット量を削減することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、エンコーダ及びデコーダの適用例を示す図である。
【図２】図２は、エンコーダ及びデコーダの他の適用例を示す図である。
【図３】図３は、エンコーダのハードウェア構成の一例を示す図である。
【図４】図４は、エンコーダの機能構成の一例を示す図である。
【図５】図５は、一般的なエンコーダのループフィルタ部の機能構成の一例を示す図である。
【図６】図６は、一般的なエンコーダによる画素適応オフセット処理の流れを示すフローチャートである。
【図７】図７は、一般的なエンコーダにおけるバンドオフセット処理の処理内容を説明するための図である。
【図８】図８は、一般的なエンコーダによるバンドオフセット処理の流れを示すフローチャートである。
【図９】図９は、一般的なエンコーダによるシグナリング処理の流れを示すフローチャートである。
【図１０】図１０は、第１の実施形態に係るエンコーダのループフィルタ部の機能構成の一例を示す図である。
【図１１】図１１は、第１の実施形態に係るエンコーダにおけるクラスオフセット処理の具体例を示す第１の図である。
【図１２】図１２は、第１の実施形態に係るエンコーダにおけるクラスオフセット処理の具体例を示す第２の図である。
【図１３】図１３は、第１の実施形態に係るエンコーダにおけるクラスオフセット処理の具体例を示す第３の図である。
【図１４】図１４は、第１の実施形態に係るエンコーダによるクラスオフセット処理の流れを示すフローチャートである。
【図１５】図１５は、第１の実施形態に係るエンコーダによるシグナリング処理の流れを示すフローチャートである。
【図１６】図１６は、デコーダの機能構成の一例を示す図である。
【図１７】図１７は、一般的なデコーダのループフィルタ部の機能構成の一例を示す図である。
【図１８】図１８は、一般的なデコーダによる画素適応オフセット処理の流れを示すフローチャートである。
【図１９】図１９は、一般的なデコーダによるバンドオフセット処理の流れを示すフローチャートである。
【図２０】図２０は、第１の実施形態に係るデコーダのループフィルタ部の機能構成の一例を示す図である。
【図２１】図２１は、第１の実施形態に係るデコーダによるクラスオフセット処理の流れを示すフローチャートである。
【図２２】図２２は、第２の実施形態に係るエンコーダのループフィルタ部の機能構成の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【００１４】
［第１の実施形態］
＜１．エンコーダ及びデコーダの適用例＞
はじめに、エンコーダ（符号化装置）及びデコーダ（復号装置）の適用例について説明する。図１は、エンコーダ及びデコーダの適用例を示す図である。
【００１５】
図１に示すように、エンコーダ１１０を送信装置に、デコーダ１２０を受信装置にそれぞれ配し、ネットワーク１６０を介して接続することで、エンコーダ１１０及びデコーダ１２０を適用した画像処理システム１００を形成することができる。
【００１６】
画像処理システム１００において、送信装置に配されたエンコーダ１１０は、入力された動画像データを符号化することでデータストリーム（符号化列）を生成する。また、送信装置は生成されたデータストリームを、ネットワーク１６０を介して受信装置に送信する。
【００１７】
受信装置はデータストリームを受信する。また、受信装置に配されたデコーダ１２０は、データストリームを復号することで動画像データを生成し、表示する。
【００１８】
かかる画像処理システム１００を形成することで、動画像データを送信する際の送信負荷を低減できる。このため、画像処理システム１００は、インタネット分野、放送分野、通信分野等の種々の分野に適用することができる。
【００１９】
適用例１００ａは、画像処理システム１００をインタネット分野に適用した例を示している。適用例１００ａの場合、送信装置１１０の一例であるサーバ装置１１１より送信されたデータストリームを、受信装置１２０の一例であるパーソナルコンピュータ１２１ａ、スマート端末１２１ｂ等が受信し、表示する。これにより、パーソナルコンピュータ１２１ａやスマート端末１２１ｂのユーザは、サーバ装置１１１が保持する動画像データをインタネットを介して視聴することができる。
【００２０】
適用例１００ｂは、画像処理システム１００を放送分野に適用した例を示している。適用例１００ｂの場合、送信装置１１０の一例である放送用送信機１１２より送信されたデータストリームを、受信装置１２０の一例であるテレビ１２２が受信し、表示する。これにより、例えば、テレビ１２２のユーザは、放送用送信機１１２が送信する放送内容を視聴することができる。
【００２１】
適用例１００ｃは、画像処理システム１００を通信分野に適用した例を示している。適用例１００ｃの場合、送信装置１１０の一例であるテレビ電話機１１３より送信されたデータストリームを、受信装置１２０の一例であるテレビ電話機１２３が受信し、表示する。これにより、テレビ電話機１２３のユーザは、通話相手の顔を見ながら通話することができる。
【００２２】
図２は、エンコーダ及びデコーダの他の適用例を示す図である。図２に示すように、エンコーダ１１０とデコーダ１２０とを一体的に構成することで、エンコーダ１１０及びデコーダ１２０を適用した蓄積装置２００を形成することができる。
【００２３】
蓄積装置２００は、入力された動画像データをエンコーダ１１０が符号化し、生成したデータストリームを記録媒体に格納する。また、蓄積装置２００は、記録媒体に格納されたデータストリームを、デコーダ１２０が復号することで動画像データを生成し、表示する。
【００２４】
かかる蓄積装置２００を形成することで、動画像データを格納する際の容量を低減できるため、例えば、蓄積分野に適用することができる。適用例２００ａは蓄積装置２００を蓄積分野に適用した例を示している。適用例２００ａの場合、蓄積装置２００の一例であるビデオレコーダ２１１は、内蔵するエンコーダ１１０が、動画像データを符号化することで生成したデータストリームを記録媒体２１２に格納する。また、ビデオレコーダ２１１は、内蔵するデコーダ１２０が、記録媒体２１２より読み出したデータストリームを復号することで動画像データを生成し、モニタ２１３に表示する。これにより、ビデオレコーダ２１１のユーザは、取得した動画像データを効率的に蓄積することができる。
【００２５】
＜２．エンコーダ及びデコーダのハードウェア構成＞
次に、エンコーダ及びデコーダのハードウェア構成について説明する。なお、エンコーダ１１０及びデコーダ１２０は、同様のハードウェア構成を有していることから、ここでは、エンコーダ１１０のハードウェア構成について説明する。
【００２６】
図３は、エンコーダのハードウェア構成の一例を示す図である。図３に示すように、エンコーダ１１０は、ＣＰＵ（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）処理部、
を有する（詳細は後述）。ループフィルタ部４０７が有するこれらの各部が処理を実行する際に用いるパラメータ（例えば、画素適応オフセット処理部が画素適応オフセット処理を実行する際に用いる画素適応オフセットパラメータ（ＳＡＯパラメータ）等）はシグナリングされる。ループフィルタ部４０７によりシグナリングされたパラメータ（ＳＡＯパラメータを含む）は、付帯情報としてエントロピ符号化部４０４によりデータストリームに組み込まれる。
【００４６】
復号画像記憶部４０８は、ループフィルタ部４０７によりフィルタ処理された復号画像を画面ごとに記憶する。
【００４７】
イントラ／インタ予測部４０９は、復号中の画面内の各ＣＵのブロックの復号画像を用いて処理対象のＣＵのブロックの予測画像を生成するイントラ予測（画面内予測）を行う。また、イントラ／インタ予測部４０９は、参照画面内の各ＣＵのブロックの復号画像を用いて画面間で動き補償を行い、処理対象のＣＵのブロックの予測画像を生成する動き補償インタ予測（画面間予測）を行う。
【００４８】
更に、イントラ／インタ予測部４０９は、イントラ予測により生成された各ＣＵのブロックの予測画像であるイントラ予測画像または動き補償インタ予測により生成された各ＣＵのブロックの予測画像であるインタ予測画像のいずれか一方を出力する。
【００４９】
イントラ／インタ予測部４０９より出力された各ＣＵのブロックの予測画像は、入力画面内の各ＣＵのブロックの入力画像との残差計算に用いられ、算出された予測残差信号は、直交変換部４０２に入力される。また、イントラ／インタ予測部４０９より出力された予測画像は、逆直交変換部４０６により得られた信号に加算され、復号画像としてループフィルタ部４０７に入力される。
【００５０】
＜４．ループフィルタ部の説明＞
続いて、エンコーダ１１０のループフィルタ部４０７の詳細について説明する。なお、エンコーダ１１０のループフィルタ部４０７の詳細を説明するにあたっては、まず、比較対象として、一般的な（Ｈ．２６５／ＨＥＶＣにおける）エンコーダのループフィルタ部について詳細を説明する。以下、「４．１」〜「４．４」までは、一般的なエンコーダのループフィルタ部について詳細を説明する。その後、「４．５」〜「４．８」において、第１の実施形態に係るエンコーダ１１０のループフィルタ部４０７について詳細を説明する。
【００５１】
＜４．１  一般的なエンコーダのループフィルタ部の機能構成＞
図５は、一般的なエンコーダのループフィルタ部の機能構成の一例を示す図である。図５に示すように、ループフィルタ部は、デブロッキングフィルタ部５１０、画素適応オフセット処理部５２０を有する。
【００５２】
デブロッキングフィルタ部５１０は、処理対象のブロックの復号画像をフィルタ処理することで、入力画面内の各ＣＵのブロックの入力画像を符号化した際にブロック境界で生じた歪を減少させる。画素適応オフセット処理部５２０は、デブロッキングフィルタ部５１０によりフィルタ処理された処理対象のブロックの復号画像を、画素単位で分類し、各画素に対して分類に応じたオフセット値を加算する。
【００５３】
なお、画素適応オフセット処理部５２０は、具体的には、エッジオフセット処理部５２１、バンドオフセット処理部５２２、選択部５２３を有する。
【００５４】
エッジオフセット処理部５２１は、エッジオフセットクラスとして指定された方向に連続する３画素の画素値の大小関係によりエッジ状態を分類する。また、エッジオフセット処理部５２１は、エッジ状態の分類に対応するオフセット値を処理対象のブロックの復号画像の画素値に加算する。更に、エッジオフセット処理部５２１は、画素値にオフセット値が加算された処理対象のブロックを、選択部５２３に通知する。
【００５５】
なお、エッジオフセット処理部５２１は、これらの処理（エッジオフセット処理）を、エッジオフセット処理に関わるＳＡＯパラメータを変更しながら、それぞれのＳＡＯパラメータについて実行する。
【００５６】
バンドオフセット処理部５２２は、処理対象のブロックの復号画像が取り得る画素値の階調を３２個のバンドに分割し、その中から決定したバンドポジションに基づく連続した４個のバンドを選択する。そして、バンドオフセット処理部５２２は、該４個のバンドそれぞれに属する画素の画素値に、オフセット値を加算（または減算）する。
【００５７】
具体的には、バンドオフセット処理部５２２は、図５の右側に示すように、ブロック読み出し部５４１、ＳＡＯパラメータ決定部５４２、画素値変更部５４３を有する。ブロック読み出し部５４１は、画素適応オフセット処理部５２０が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出し、画素値変更部５４３に通知する。ＳＡＯパラメータ決定部５４２は、処理対象のブロックの復号画像が取り得る画素値の階調を３２個のバンドに分割するとともに、バンドオフセット処理に関わるＳＡＯパラメータ（バンドポジション、オフセット値）を決定し、画素値変更部５４３に出力する。
【００５８】
画素値変更部５４３は、処理対象のブロックの復号画像の各色成分（輝度信号（Ｙ）、色差信号（Ｃｂ、Ｃｒ））の画素値のうち、バンドポジションに基づく連続した４個のバンドそれぞれに属する画素の画素値に、オフセット値を加算する。また、画素値変更部５４３はオフセット値が加算された処理対象のブロックの復号画像を、バンドオフセット処理に関わるＳＡＯパラメータ（バンドポジション、オフセット値）とともに選択部５２３に通知する。
【００５９】
なお、バンドオフセット処理部５２２は、これらの処理（バンドオフセット処理）を、バンドオフセット処理に関わるＳＡＯパラメータ（バンドポジション、オフセット値）を変更しながら、それぞれのＳＡＯパラメータについて実行する。
【００６０】
選択部５２３は、処理対象のブロックの復号画像に対して、エッジオフセット処理部５２１が行った各処理結果、及び、バンドオフセット処理部５２２が行った各処理結果をそれぞれ取得し、レート歪（ＲＤ（Rate Distortion））コストを算出する。また、選択部５２３は、算出したＲＤコストが最も低い処理結果を判定し、判定した処理結果の算出に用いられたＳＡＯパラメータをシグナリングする。
【００６１】
＜４．２  一般的なエンコーダの画素適応オフセット処理部による画素適応オフセット処理の流れ＞
次に、一般的なエンコーダの画素適応オフセット処理部５２０による画素適応オフセット処理の流れについて説明する。図６は、一般的なエンコーダによる画素適応オフセット処理の流れを示すフローチャートである。
【００６２】
処理対象のブロックについてデブロッキングフィルタ部５１０によるデブロッキングフィルタ処理が完了すると、画素適応オフセット処理部５２０は、図６に示す画素適応オフセット処理を開始する。なお、ここでは説明の簡略化のため、処理対象のブロック１個分の処理について説明する。
【００６３】
ステップＳ６０１において、画素適応オフセット処理部５２０は、処理対象のブロックを取得する。
【００６４】
ステップＳ６０２において、エッジオフセット処理部５２１は、取得された処理対象のブロックを読み出し、エッジオフセット処理に関わる所定のＳＡＯパラメータを用いて、エッジオフセット処理を行う。
【００６５】
ステップＳ６０３において、選択部５２３は、ステップＳ６０２におけるエッジオフセット処理の処理結果について、ＲＤコストを算出する。
【００６６】
ステップＳ６０４において、エッジオフセット処理部５２１は、処理対象のブロックに対して、予め定められた範囲内の全てのＳＡＯパラメータ（エッジオフセット処理に関わるＳＡＯパラメータ）を用いてエッジオフセット処理を実行したか否かを判定する。
【００６７】
ステップＳ６０４において、エッジオフセット処理の実行に用いられていないＳＡＯパラメータがあると判定した場合には（ステップＳ６０４においてＮｏの場合には）、ステップＳ６０２に戻る。
【００６８】
一方、ステップＳ６０４において、予め定められた範囲内の全てのＳＡＯパラメータを用いてエッジオフセット処理を実行したと判定した場合には、ステップＳ６０５に進む。
【００６９】
ステップＳ６０５において、バンドオフセット処理部５２２は、処理対象のブロックを読み出し、バンドオフセット処理に関わる所定のＳＡＯパラメータを用いて、バンドオフセット処理（詳細は後述）を行う。
【００７０】
ステップＳ６０６において、選択部５２３は、ステップＳ６０５におけるバンドオフセット処理の処理結果について、ＲＤコストを算出する。
【００７１】
ステップＳ６０７において、バンドオフセット処理部５２２は、処理対象のブロックに対して、予め定められた範囲内の全てのＳＡＯパラメータ（バンドオフセット処理に関わるＳＡＯパラメータ）を用いてバンドオフセット処理を実行したか否かを判定する。
【００７２】
ステップＳ６０７において、バンドオフセット処理の実行に用いられていないＳＡＯパラメータがあると判定した場合には（ステップＳ６０７においてＮｏの場合には）、ステップＳ６０５に戻る。
【００７３】
一方、ステップＳ６０７において、予め定められた範囲内の全てのＳＡＯパラメータを用いてバンドオフセット処理を実行したと判定した場合には、ステップＳ６０８に進む。
【００７４】
ステップＳ６０８において、選択部５２３は、エッジオフセット処理部５２１が行った各処理結果、及び、バンドオフセット処理部５２２が行った各処理結果それぞれのＲＤコストを比較し、ＲＤコストが最も低い処理結果を判定する。また、選択部５２３は、判定した処理結果の算出に用いられたＳＡＯパラメータを特定する。
【００７５】
ステップＳ６０９において、選択部５２３は、判定した処理結果を、画素適応オフセット処理の処理結果として出力する。
【００７６】
ステップＳ６１０において、選択部５２３は、特定したＳＡＯパラメータについてシグナリング処理（詳細は後述）を行う。
【００７７】
＜４．３  一般的なエンコーダにおけるバンドオフセット処理（ステップＳ６０５）の詳細＞
次に、一般的なエンコーダにおけるバンドオフセット処理（ステップＳ６０５）の詳細について説明する。
【００７８】
（１）バンドオフセット処理の処理内容
はじめに、バンドオフセット処理（ステップＳ６０５）の処理内容について説明する。図７は、一般的なエンコーダにおけるバンドオフセット処理の処理内容を説明するための図である。このうち、図７の７００ａは、処理対象のブロックを示している。図７の７００ａに示すように、一般的なエンコーダの場合、バンドオフセット処理は、復号中の画面７１０においてＣＴＵ単位のブロックに対して実行される。図７の７００ａの例は、１２８画素×１２８画素のＣＴＵ７２０のブロックに対してバンドオフセット処理が実行され、処理結果として、ＣＴＵ７２０'のブロックが生成された様子を示している。
【００７９】
図７の７００ｂは、バンドオフセット処理の具体例を示している。ここでは、復号中の画面７１０の各色成分（輝度信号（Ｙ）、色差信号（Ｃｂ、Ｃｒ））のうち、色差信号（Ｃｒ）に対するバンドオフセット処理について説明する。
【００８０】
図７の７００ｂに示すように、復号中の画面７１０において、処理対象のブロックの復号画像における色差信号（Ｃｒ）の取り得る画素値が２５６階調であった場合、画素値変更部５４３では、当該２５６階調を、３２個のバンドに分割する。これにより、１バンドあたりの階調数は８階調となる。
【００８１】
ここで、ＳＡＯパラメータ決定部５４２が、ＣＴＵ７２０のブロックの復号画像に対するバンドポジションとして、矢印７３０で示すバンドポジションを出力したとする。この場合、画素値変更部５４３は、連続する４個のバンドとして、バンド７３１〜７３４を特定する。
【００８２】
そして、画素値変更部５４３は、ＣＴＵ７２０のブロックの復号画像に含まれる各画素のうち、バンド７３１に属する画素の色差信号（Ｃｒ）の画素値にオフセット値Ｖ１を加算する。同様に、画素値変更部５４３は、ＣＴＵ７２０のブロックの復号画像に含まれる各画素のうち、バンド７３２に属する画素の色差信号（Ｃｒ）の画素値にオフセット値Ｖ２を加算する。同様に、画素値変更部５４３は、ＣＴＵ７２０のブロックの復号画像に含まれる各画素のうち、バンド７３３に属する画素の色差信号（Ｃｒ）の画素値にオフセット値Ｖ３を加算する。同様に、画素値変更部５４３は、ＣＴＵ７２０のブロックの復号画像に含まれる各画素のうち、バンド７３４に属する画素の色差信号（Ｃｒ）の画素値にオフセット値Ｖ４を加算する。
【００８３】
このように、バンドオフセット処理部５２２では、バンドオフセット処理に関わるＳＡＯパラメータ＝（矢印７３０で示すバンドポジション、オフセット値Ｖ１〜Ｖ４）を用いて、ＣＴＵ７２０のブロックの復号画像に対してバンドオフセット処理を行う。なお、バンドオフセット処理部５２２では、輝度信号（Ｙ）、色差信号（Ｃｂ）に対しても同様のバンドオフセット処理を行うものとする。これにより、バンドオフセット処理の処理結果として、ＣＴＵ７２０'のブロックが生成される。
【００８４】
なお、連続する４個のバンドそれぞれに加算（または減算）するオフセット値Ｖ１〜Ｖ４は、異なる値であっても同じ値（１種類の値）であってもよい。
【００８５】
（２）バンドオフセット処理の流れ
続いて、一般的なエンコーダによるバンドオフセット処理（ステップＳ６０５）の詳細なフローチャートについて説明する。図８は、一般的なエンコーダによるバンドオフセット処理の流れを示すフローチャートである。
【００８６】
ステップＳ８０１において、ブロック読み出し部５４１は、画素適応オフセット処理部５２０が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出す。
【００８７】
ステップＳ８０２において、ＳＡＯパラメータ決定部５４２は、バンドオフセット処理に関わるＳＡＯパラメータとして、"バンドポジション"、連続する４個のバンドのオフセット値として"オフセットの絶対値"及び"オフセットの符号"を色成分ごとに決定する。なお、ＳＡＯパラメータ決定部５４２によって決定されるバンドオフセット処理に関わるＳＡＯパラメータの範囲は色成分ごとに予め定められているものとし、ＳＡＯパラメータ決定部５４２は、当該範囲内のＳＡＯパラメータを順次決定していく。また、ＳＡＯパラメータ決定部５４２は、色成分ごとに決定したバンドオフセット処理に関わるＳＡＯパラメータ（各色成分のバンドポジション、４個のオフセット絶対値、４個のオフセット符号）を、順次、画素値変更部５４３に出力していく。
【００８８】
ステップＳ８０３において、画素値変更部５４３は、処理対象のブロックの復号画像の画素値を、バンドオフセット処理に関わるＳＡＯパラメータ（各色成分のバンドポジション、４個のオフセット絶対値、４個のオフセット符号）を用いて色成分ごとに変更する。
【００８９】
＜４．４  一般的なエンコーダによるシグナリング処理（ステップＳ６１０）の詳細＞
次に、一般的なエンコーダによるシグナリング処理（ステップＳ６１０）の詳細について説明する。図９は、一般的なエンコーダによるシグナリング処理の流れを示すフローチャートである。なお、ここでは、ＲＤコスト比較により、バンドオフセット処理に関わるＳＡＯパラメータを用いたバンドオフセット処理の処理結果が、最もＲＤコストが低い処理結果であると判定されたものとして説明する。
【００９０】
ステップＳ９０１において、選択部５２３は、画素適応オフセット処理において、バンドオフセット処理の処理結果が選択されたことを示す情報をシグナリングする。
【００９１】
ステップＳ９０２において、選択部５２３は、最もＲＤコストが低い処理結果が算出された際の、バンドオフセット処理に関わるＳＡＯパラメータである、各色成分の４個のオフセット絶対値をシグナリングする。
【００９２】
ステップＳ９０３において、選択部５２３は、最もＲＤコストが低い処理結果が算出された際の、バンドオフセット処理に関わるＳＡＯパラメータである、各色成分の４個のオフセット符号をシグナリングする。
【００９３】
ステップＳ９０４において、選択部５２３は、最もＲＤコストが低い処理結果が算出された際の、バンドオフセット処理に関わるＳＡＯパラメータである、各色成分のバンドポジションをシグナリングする。
【００９４】
＜４．５  第１の実施形態に係るエンコーダのループフィルタ部の機能構成＞
続いて、第１の実施形態に係るエンコーダ１１０のループフィルタ部４０７の機能構成について説明する。
【００９５】
図１０の右側は、第１の実施形態に係るエンコーダのループフィルタ部の機能構成の一例を示す図である。なお、図５を用いて説明した、一般的なエンコーダのループフィルタ部と同様の機能については同じ符号を付すこととし、ここでは説明を省略する。
【００９６】
図５との相違点は、画素適応オフセット処理部５２０がクラスオフセット処理部１００１を有する点と、選択部１００２の機能が選択部５２３の機能とは異なる点である。なお、後述するように、クラスオフセット処理部１００１は、色差歪みを削減することも可能であり、ＣＡＲ（Chroma Artifact Reduction）  ＳＡＯとしての機能も有する。
【００９７】
図１０に示すように、クラスオフセット処理部１００１は、ブロック読み出し部５４１と、画素数算出部１０１１と、クラス選択部１０１２と、オフセット決定部１０１３と、画素値変更部１０１４とを有する。
【００９８】
ブロック読み出し部５４１は、画素適応オフセット処理部５２０が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出し、画素値変更部１０１４に通知する。
【００９９】
画素数算出部１０１１は算出部の一例である。画素数算出部１０１１は、処理対象のブロックの復号画像の各色成分（輝度信号（Ｙ）、色差信号（Ｃｂ、Ｃｒ））の画素値の階調を、所定の階調数を有する複数のグループに分割する。以降、当該グループを、「クラス」と称する。画素数算出部１０１１は、画素値の階調を、各クラスが同じ階調数を有するように分割してもよいし、異なる階調数を有するように分割してもよい。
【０１００】
また、各クラスが有する階調数は、図５で示したバンドオフセット処理部５２２により３２個のバンドに分割された際の、各バンドが有する階調数（画素値が２５６階調であった場合、各バンドが有する階調数は"８"）よりも多くても少なくてもよい。
【０１０１】
なお、各クラスが有する階調数を、各バンドが有する階調数よりも少なくした場合（つまり、バンド幅を狭くした場合）、処理対象のブロック内において、小さな劣化が起こっている特定領域に対してオフセット値を加算することができる。この場合、一般的なエンコーダのバンドオフセット処理と比較して、色ずれの改善効果を大きくすることができる。
【０１０２】
画素数算出部１０１１は、処理対象のブロックの復号画像に含まれる各画素を、色成分ごとに、画素値に基づいて、各クラスに分類することで、各クラスに属する画素の数を算出する。
【０１０３】
クラス選択部１０１２は、算出された画素の数の多い上位ｎ個のクラス（ｎは１以上の整数。例えば、"３"）を色成分ごとに選択して、画素値変更部１０１４に通知する。
【０１０４】
なお、色成分ごとに選択する上位ｎ個のクラスを４個未満とすることで（つまり、一般的なエンコーダの場合と比較してオフセット値を加算するバンド数を少なくすることで）、各色成分のオフセット値をシグナリングした際のビット量を減らすことができる。
【０１０５】
クラス選択部１０１２は、別例として、処理対象のブロックの復号画像の各色成分が色差信号（Ｃｂ、Ｃｒ）の場合は、階調値の中央値（１＜＜（ｂｉｔｄｅｐｔｈ−１））前後のｍ個のクラス（ｍは１以上の整数。例えば"６"）を選択し、ｍ個の中から、算出された画素の数の多い上位ｎ個のクラス（ｎは１以上の整数。例えば、"３"）を選択して、画素値変更部１０１４に通知する。
【０１０６】
なお、階調値の中央値付近は無彩色であり、歪みがある場合、中央値付近を固定で選択することで、主観的な画質を向上させることができる。また、選択する上位ｎ個のクラスを４個未満とすることで（つまり、一般的なエンコーダの場合と比較してオフセット値を加算するバンド数を少なくすることで）、各色成分のオフセット値をシグナリングした際のビット量を減らすことができる。
【０１０７】
オフセット決定部１０１３は、クラス選択部１０１２から選択したｎ個のクラス情報を受け、復号時の画素値の２乗誤差が最小となるように、色成分ごとにｎ個のオフセット値（ｎ個のオフセット絶対値、ｎ個のオフセット符号）を決定する。また、オフセット決定部１０１３は、決定した各色成分のｎ個のオフセット値を画素値変更部１０１４に通知する。
【０１０８】
画素値変更部１０１４はクラス加算部の一例である。画素値変更部１０１４は、処理対象のブロックの復号画像に含まれる各画素のうち、クラス選択部１０１２により選択されたクラスに属する画素の画素値に対して、色成分ごとに、決定されたオフセット値を加算する。また、画素値変更部１０１４は、色成分ごとにオフセット値を加算した処理対象のブロックの復号画像を選択部１００２に出力する。また、画素値変更部１０１４は、クラスオフセット処理に関わるＳＡＯパラメータとして、各色成分のオフセット値を含むＳＡＯパラメータを選択部１００２に出力する。
【０１０９】
選択部１００２はシグナリング部の一例である。選択部１００２は、処理対象のブロックの復号画像に対して、エッジオフセット処理部５２１が行った各処理結果、及び、クラスオフセット処理部１００１が行った各処理結果を取得し、ＲＤコストを算出する。また、選択部１００２は、算出したＲＤコストが最も低い処理結果を判定し、判定した処理結果を選択して、適応ループフィルタ部５３０に出力する。更に、選択部１００２は、判定した処理結果の算出に用いられたＳＡＯパラメータをシグナリングする。
【０１１０】
＜４．６  第１の実施形態に係るエンコーダにおけるクラスオフセット処理の詳細＞
次に、第１の実施形態に係るエンコーダ１１０におけるクラスオフセット処理の詳細について説明する。
【０１１１】
（１）クラスオフセット処理の具体例
はじめに、クラスオフセット処理の具体例について説明する。なお、図７の説明と同様に、ここでも、色差信号（Ｃｒ）に対するクラスオフセット処理について説明する。
【０１１２】
（１−１）クラスオフセット処理の具体例その１
図１１は、第１の実施形態に係るエンコーダにおけるクラスオフセット処理の具体例を示す第１の図である。
【０１１３】
図１１の１１００ａの例は、復号中の画面７１０において、処理対象のブロックの復号画像における色差信号（Ｃｒ）の取り得る画素値が２５６階調であった場合に、画素数算出部１０１１が、当該２５６階調を１２８個のクラスに均等に分割した様子を示している。これにより、１クラスあたりの階調数は２階調となる。
【０１１４】
また、図１１の１１００ａの例は、画素数算出部１０１１が、ＣＴＵ７２０のブロックの復号画像に含まれる各画素を、色差信号（Ｃｒ）の画素値に基づいて各クラスに分類することで、ヒストグラム１１０１を生成した様子を示している。
【０１１５】
図１１の１１００ｂの例は、クラス選択部１０１２が、算出された画素の数が多い上位３個のクラスを選択した様子を示している。また、図１１の１１００ｂの例は、画素値変更部１０１４が、選択された３個のクラスに属する画素の色差信号（Ｃｒ）の画素値に対して、オフセット値Ｖ１、Ｖ２、Ｖ３をそれぞれ加算した様子を示している。
【０１１６】
図１１の１１００ｂの別例として、クラス選択部１０１２は、階調値の中央値前後の６個のクラスを固定で選択し、３個のクラスを選択するようにしてもよい。
【０１１７】
このように、図１１の例の場合、クラスオフセット処理部１００１は、ＣＴＵ７２０のブロックの復号画像に対して、下記の内容で、クラスオフセット処理を行っている。
・オフセット値を加算する対象を、８階調のバンドよりも狭い２階調のクラスとしている。
・バンドポジションに相当するパラメータを決定せず、各クラスに属する画素の数に基づいて、オフセット値を加算する対象を選択している。また、バンドポジションに相当するパラメータを決定せず、階調値の中央値前後を固定で選択し、各クラスに属する画素の数に基づいて、オフセット値を加算する対象を選択することもできる。
・オフセット値を加算する対象の数を、３個としている。
【０１１８】
これにより、クラスオフセット処理部１００１では、ＣＴＵ７２０のブロックの復号画像において、小さな劣化が起こっている特定領域の色差信号（Ｃｒ）に対してのみオフセット値を加算することができる。このため、一般的なエンコーダのバンドオフセット処理と比較して、色ずれの改善効果を大きくすることができる。
【０１１９】
また、クラスオフセット処理部１００１では、バンドポジションに相当するパラメータを、ＳＡＯパラメータに含めてデコーダ側に送信する必要がない。このため、一般的なエンコーダのバンドオフセット処理と比較して、デコーダに送信するＳＡＯパラメータのビット量を削減することができる。
【０１２０】
更に、クラスオフセット処理部１００１では、ＳＡＯパラメータに含めるオフセット値の個数を減らすことができる。このため、一般的なエンコーダのバンドオフセット処理と比較して、デコーダに送信するＳＡＯパラメータのビット量を更に削減することができる。
【０１２１】
（１−２）クラスオフセット処理の具体例その２
次に、クラスオフセット処理の他の具体例について説明する。図１２は、第１の実施形態に係るエンコーダにおけるクラスオフセット処理の具体例を示す第２の図である。
【０１２２】
図１２の１２００ａの例は、図１１の１１００ａの例と同様に、画素数算出部１０１１が、ＣＴＵ７２０のブロックの復号画像に含まれる各画素を、色差信号（Ｃｒ）の画素値に基づいて各クラスに分類することで、ヒストグラム１２０１を生成した様子を示している。図１１の１１００ａとの相違点は、算出した画素の数が多い上位３個のクラスが、連続していない点である。
【０１２３】
なお、図１２の１２００ｂに示すように、クラス選択部１０１２は、上位３個のクラスが連続しているか否かに関わらず、算出した画素の数が多い上位３個のクラスを選択する。また、画素値変更部１０１４では、クラス選択部１０１２により選択された３個のクラスに属する画素の色差信号（Ｃｒ）の画素値に対して、オフセット値Ｖ１、Ｖ２、Ｖ３をそれぞれ加算する。
【０１２４】
このように、クラスオフセット処理部１００１では、ＣＴＵ７２０のブロックの復号画像に含まれる各画素の画素値の分布に関わらず、上記具体例その１と同様の内容でクラスオフセット処理を行うことで、上記具体例その１と同様の効果を得ることができる。
【０１２５】
加えて、一般的なエンコーダのバンドオフセット処理とは異なり、連続していないクラスに属する画素の画素値に対してもオフセット値を加算することができる。このため、例えば、背景と物体のような色差の値が大きく異なるものが含まれる領域に対しても、それぞれにオフセット値を加算することができるため、色ずれの改善効果を大きくすることができる。
【０１２６】
（１−３）クラスオフセット処理の具体例その３
次に、クラスオフセット処理の他の具体例について説明する。図１３は、第１の実施形態に係るエンコーダにおけるクラスオフセット処理の具体例を示す第３の図である。
【０１２７】
図１３の１３００ａの例は、復号中の画面７１０において、処理対象のブロックの復号画像における色差信号（Ｃｒ）の取り得る画素値が２５６階調であった場合に、画素数算出部１０１１が、当該２５６階調を異なる階調数のクラスに分割した様子を示している。具体的には、画素数算出部１０１１は、階調数＝２のクラスから階調数＝１６のクラスまで含む複数のクラスに分割している。
【０１２８】
また、図１３の１３００ａの例は、画素数算出部１０１１が、ＣＴＵ７２０のブロックの復号画像に含まれる各画素を、色差信号（Ｃｒ）の画素値に基づいて各クラスに分類することで、ヒストグラム１３０１を生成した様子を示している。図１２の１２００ａとの相違点は、算出した画素の数が多い上位３個のクラスが、それぞれ、異なる階調数（階調数：２、４、６）を有している点である。
【０１２９】
なお、クラス選択部１０１２は、図１３の１３００ｂに示すように、上位３個のクラスそれぞれが有する階調数が同じであるか異なるかに関わらず、算出した画素の数が多い上位３個のクラスを選択する。また、画素値変更部１０１４では、クラス選択部１０１２により選択された各クラスに属する画素の色差信号（Ｃｒ）の画素値に対して、オフセット値Ｖ１、Ｖ２、Ｖ３をそれぞれ加算する。または、上位３個のクラスそれぞれが有する階調数が異なる場合には、画素の数が最も多い階調数に属するクラスから、画素の数が多い上位３個のクラスを選択する。
【０１３０】
このように、クラスオフセット処理部１００１では、各クラスが有する階調数が同じであるか異なるかに関わらず、上記具体例（具体例その１）と同様の内容でクラスオフセット処理を行うことで、上記具体例その１と同様の効果を得ることができる。
【０１３１】
加えて、一般的なエンコーダのバンドオフセット処理とは異なり、オフセット値を加算する階調数を階調値に応じて変えることができるため、色ずれの改善効果を大きくすることができる。
【０１３２】
（１−４）クラスオフセット処理の具体例その４
上記（１−１）〜（１−３）の例（具体例その１〜その３）では、クラス選択部１０１２が、算出した画素の数が多い上位３個のクラスを選択するものとして説明した。しかしながら、選択するクラスの数は、これに限定されず、例えば、上位４個以上のクラス（例えば、上位４個のクラスあるいは上位６個のクラス）を選択するようにしてもよい。
【０１３３】
また、上記（１−１）〜（１−２）の例では、復号中の画面７１０において、処理対象のブロックの復号画像における色差信号（Ｃｒ）の取り得る画素値が２５６階調であった場合に、各クラスが有する階調数が"２"となるように分割する場合について説明した。
【０１３４】
一方で、復号中の画面７１０において、処理対象のブロックの復号画像の色差信号（Ｃｒ）の画素値は、例えば、０〜５１１の５１２階調であってもよい。この場合、画素数算出部１０１１は、各クラスそれぞれが有する階調数が"４"となるように分割してもよい。つまり、均等に分割る場合、各クラスが有する階調数を、階調に応じて変更してもよい。例えば、復号中の画面７１０において、処理対象のブロックの復号画像における色差信号（Ｃｒ）の取り得る画素値のビット深さ（Ｂｉｔ  Ｄｅｐｔｈ）をＢＤとおく（色差信号（Ｃｒ）の画素値を２ＢＤ階調とする）。この場合、画素数算出部１０１１は、各クラスが有する階調数が、２（ＢＤ−７）となるように分割してもよい。ただし、ＢＤは、８以上の整数とする。
【０１３５】
（２）クラスオフセット処理の流れ
続いて、一般的なエンコーダによるバンドオフセット処理（図６のステップＳ６０５）に代わる処理として、第１の実施形態に係るエンコーダ１１０によるクラスオフセット処理の詳細な流れについて説明する。図１４は、第１の実施形態に係るエンコーダによるクラスオフセット処理の流れを示すフローチャートである。
【０１３６】
ステップＳ１４０１において、ブロック読み出し部５４１は、画素適応オフセット処理部５２０が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出す。
【０１３７】
ステップＳ１４０３において、画素数算出部１０１１は、処理対象のブロックの復号画像において各色成分の画素値の階調を、所定の階調数を有する複数のクラスに分割する。また、画素数算出部１０１１は、処理対象のブロックの復号画像に含まれる各画素を、色成分ごとに、画素値に基づいて各クラスに分類することで、各クラスに属する画素の数を算出する。更に、クラス選択部１０１２は、色成分ごとに、算出した画素の数が多い上位ｎ個のクラスを選択する。あるいは、クラス選択部１０１２は、色成分が色差信号（Ｃｂ、Ｃｒ）の場合は、階調値の中央値（１＜＜（ｂｉｔｄｅｐｔｈ−１））前後のｍ個のクラスを選択し、ｍ個の中から、算出した画素の数が多い上位ｎ個のクラスを選択する。
【０１３８】
ステップＳ１４０４において、オフセット決定部１０１３は、選択したｎ個のクラスに属する画素の画素値に加算するオフセット値として、色成分ごとにｎ個のオフセット絶対値とｎ個のオフセット符号とを決定する。
【０１３９】
ステップＳ１４０５において、画素値変更部１０１４は、各色成分において、選択したｎ個のクラスそれぞれに属する画素の画素値に対して、決定したｎ個のオフセット値（ｎ個のオフセット絶対値、ｎ個のオフセット符号）を加算する。
【０１４０】
＜４．７  第１の実施形態に係るエンコーダによるシグナリング処理の詳細＞
次に、第１の実施形態に係るエンコーダ１１０によるシグナリング処理の詳細について説明する。図１５は、第１の実施形態に係るエンコーダによるシグナリング処理の流れを示すフローチャートである。なお、ここでは、選択部１００２におけるＲＤコスト比較により、クラスオフセット処理に関わるＳＡＯパラメータを用いたクラスオフセット処理の処理結果が、最もＲＤコストが低い処理結果であると判定されたものとして説明する。
【０１４１】
ステップＳ１５０１において、選択部１００２は、画素適応オフセット処理において、クラスオフセット処理の処理結果が選択されたことを示す情報をシグナリングする。
【０１４２】
ステップＳ１５０２において、選択部１００２は、最もＲＤコストが低い処理結果が算出された際のＳＡＯパラメータのうち、各色成分について算出された、ｎ個のクラスそれぞれのオフセット絶対値をシグナリングする。
【０１４３】
ステップＳ１５０３において、選択部１００２は、最もＲＤコストが低い処理結果が算出された際のＳＡＯパラメータのうち、各色成分について算出された、ｎ個のクラスそれぞれのオフセット符号をシグナリングする。
【０１４４】
＜５．デコーダの機能構成＞
次に、復号プログラムを実行することで実現される、デコーダ１２０の機能構成について説明する。図１６は、デコーダの機能構成の一例を示す図である。図１６に示すように、デコーダ１２０は、エントロピ復号部１６０１、逆量子化部１６０２、逆直交変換部１６０３、ループフィルタ部１６０４、復号画像記憶部１６０５、イントラ／インタ予測部１６０６を有する。
【０１４５】
エントロピ復号部１６０１は、受信したデータストリームを復号し、量子化信号を出力する。また、エントロピ復号部１６０１は、データストリームより付帯情報（ループフィルタ部１６０４において用いられるＳＡＯパラメータ等を含む）を抽出し、ループフィルタ部１６０４に通知する。
【０１４６】
逆量子化部１６０２は、量子化信号を逆量子化し、逆直交変換部１６０３に出力する。逆直交変換部１６０３は、逆量子化された量子化信号に対して逆直交変換処理を実行する。
【０１４７】
逆直交変換部１６０３により逆直交変換処理が実行されることで得られた信号に対しては、例えば、イントラ／インタ予測部１６０６が生成した予測画像が加算されることで復号画像が生成され、ループフィルタ部１６０４に入力される。
【０１４８】
ループフィルタ部１６０４は、通知された付帯情報を用いて、入力された復号画像の符号化ノイズを低減するフィルタ処理を行う。なお、ループフィルタ部１６０４は、更に、デブロッキングフィルタ部と、画素適応オフセット処理部、適応ループフィルタ部とを有する（詳細は後述）。
【０１４９】
また、ループフィルタ部１６０４は、フィルタ処理した復号画像を復号結果として出力するとともに、復号画像記憶部１６０５に記憶する。
【０１５０】
イントラ／インタ予測部１６０６は、復号中の画面内の各ＣＵのブロックの復号画像を用いて処理対象のＣＵのブロックの予測画像を生成するイントラ予測を行う。また、イントラ／インタ予測部１６０６は、参照画面内の各ＣＵのブロックの復号画像を用いて画面内で動き補償を行い、処理対象のＣＵのブロックの予測画像を生成するインタ予測を行う。
【０１５１】
更に、イントラ／インタ予測部１６０６は、イントラ予測により生成された各ＣＵのブロックの予測画像であるイントラ予測画像または動き補償インタ予測により生成された各ＣＵのブロックの予測画像であるインタ予測画像のいずれか一方を出力する。出力された予測画像は、逆直交変換部１６０３により逆直交変換処理が実行されることで得られた信号に加算され、復号画像としてループフィルタ部１６０４に入力される。
【０１５２】
＜６．ループフィルタ部の説明＞
続いて、デコーダ１２０のループフィルタ部１６０４の詳細について説明する。なお、デコーダ１２０のループフィルタ部１６０４の詳細を説明するにあたっては、まず、比較対象として、一般的な（Ｈ．２６５／ＨＥＶＣにおける）デコーダのループフィルタ部について詳細を説明する。以下、「６．１」〜「６．３」までは、一般的なデコーダのループフィルタ部について詳細を説明する。その後、「６．４」〜「６．５」において、第１の実施形態に係るデコーダ１２０のループフィルタ部１６０４について詳細を説明する。
【０１５３】
＜６．１  一般的なデコーダのループフィルタ部の機能構成＞
図１７は、一般的なデコーダのループフィルタ部の機能構成の一例を示す図である。図１７に示すように、ループフィルタ部は、デブロッキングフィルタ部１７１０、画素適応オフセット処理部１７２０を有する。
【０１５４】
デブロッキングフィルタ部１７１０は、処理対象のブロックの復号画像をフィルタ処理することで、エンコーダが、入力画面内の各ＣＵのブロックの入力画像を符号化した際にブロック境界で生じた歪を減少させる。画素適応オフセット処理部１７２０は、デブロッキングフィルタ部１７１０によりフィルタ処理された処理対象のブロックの復号画像を、画素単位で分類し、各画素に対して分類に応じたオフセット値を加算する。
【０１５５】
なお、画素適応オフセット処理部１７２０は、具体的には、エッジオフセット処理部１７２１、バンドオフセット処理部１７２２を有しており、エントロピ復号部１６０１より通知された付帯情報に基づいて、いずれかの処理部を実行させる。
【０１５６】
エッジオフセット処理部１７２１は、エッジオフセットクラスとして指定された方向に連続する３画素の画素値の大小関係によりエッジ状態を分類する。また、エッジオフセット処理部１７２１は、エッジ状態の分類に対応するオフセット値を処理対象のブロックの復号画像の画素値に加算する。
【０１５７】
バンドオフセット処理部１７２２は、処理対象のブロックの復号画像が取り得る画素値の階調を３２個のバンドに分割し、その中からバンドポジションに基づく連続した４個のバンドを選択する。そして、バンドオフセット処理部１７２２は、該４個のバンドそれぞれに属する画素の画素値に、オフセット値を加算（または減算）する。
【０１５８】
具体的には、バンドオフセット処理部１７２２は、図１７の右側に示すように、ブロック読み出し部１７４１、ＳＡＯパラメータ取得部１７４２、画素値変更部１７４３を有する。ブロック読み出し部１７４１は、画素適応オフセット処理部１７２０が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出し、画素値変更部１７４３に通知する。ＳＡＯパラメータ取得部１７４２は、処理対象のブロックの復号画像が取り得る画素値の階調を３２個のバンドに分割する。また、ＳＡＯパラメータ取得部１７４２は、付帯情報に含まれるバンドオフセット処理に関わるＳＡＯパラメータ（バンドポジション、オフセット値）を取得し、画素値変更部１７４３に出力する。
【０１５９】
画素値変更部１７４３は、処理対象のブロックの復号画像の各色成分（輝度信号（Ｙ）、色差信号（Ｃｂ、Ｃｒ））の画素値を、ＳＡＯパラメータ取得部１７４２より出力された、バンドオフセット処理に関わるＳＡＯパラメータを用いて変更する。また、画素値変更部１７４３は画素値を変更した処理対象のブロックの復号画像を出力する。
【０１６０】
適応ループフィルタ部５３０は、画素適応オフセット処理部５２０によりオフセット処理された処理対象のブロックの復号画像をフィルタ処理することで、対応する入力画像との誤差を低減させる。
【０１６１】
＜６．２  一般的なデコーダの画素適応オフセット処理部による画素適応オフセット処理の流れ＞
次に、一般的なデコーダの画素適応オフセット処理部１７２０による画素適応オフセット処理の流れについて説明する。図１８は、一般的なデコーダによる画素適応オフセット処理の流れを示すフローチャートである。
【０１６２】
処理対象のブロックについてデブロッキングフィルタ部１７１０によるデブロッキングフィルタ処理が完了すると、画素適応オフセット処理部１７２０は、図１８に示す画素適応オフセット処理を開始する。なお、ここでは説明の簡略化のため、処理対象のブロック１個分の処理について説明する。
【０１６３】
ステップＳ１８０１において、画素適応オフセット処理部１７２０は、処理対象のブロックを取得する。
【０１６４】
ステップＳ１８０２において、画素適応オフセット処理部１７２０は、エントロピ復号部１６０１より付帯情報を取得する。
【０１６５】
ステップＳ１８０３において、画素適応オフセット処理部１７２０は、取得した付帯情報に基づいて、オフセットモードがバンドオフセットモードか否かを判定する。ステップＳ１８０３においてバンドオフセットモードであると判定した場合には（ステップＳ１８０３においてＹｅｓの場合には）、ステップＳ１８０４に進む。
【０１６６】
ステップＳ１８０４において、バンドオフセット処理部１７２２は、付帯情報に含まれるバンドオフセット処理に関わるＳＡＯパラメータを用いて、バンドオフセット処理を実行する。
【０１６７】
一方、ステップＳ１８０３においてバンドオフセットモードではないと判定した場合には（ステップＳ１８０３においてＮｏの場合には）、ステップＳ１８０５に進む。
【０１６８】
ステップＳ１８０５において、画素適応オフセット処理部１７２０は、オフセットモードがエッジオフセットモードか否かを判定する。ステップＳ１８０５においてエッジオフセットモードであると判定した場合には（ステップＳ１８０５においてＹｅｓの場合には）、ステップＳ１８０６に進む。
【０１６９】
ステップＳ１８０６において、エッジオフセット処理部１７２１は、付帯情報に含まれるエッジオフセット処理に関わるＳＡＯパラメータを用いてエッジオフセット処理を実行する。
【０１７０】
一方、ステップＳ１８０５において、エッジオフセットモードでないと判定した場合には（ステップＳ１８０５においてＮｏの場合には）、オフセットモードがオフであると判定して、処理対象のブロックに対する画素適応オフセット処理を終了する。
【０１７１】
＜６．３  一般的なデコーダの画素適応オフセット処理部のバンドオフセット処理部によるバンドオフセット処理の流れ＞
続いて、一般的なデコーダによるバンドオフセット処理（ステップＳ１８０４）の詳細なフローチャートについて説明する。図１９は、一般的なデコーダによるバンドオフセット処理の流れを示すフローチャートである。
【０１７２】
ステップＳ１９０１において、ブロック読み出し部１７４１は、画素適応オフセット処理部１７２０が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出す。
【０１７３】
ステップＳ１９０２において、ＳＡＯパラメータ取得部１７４２は、付帯情報に含まれるバンドオフセット処理に関わるＳＡＯパラメータとして、バンドポジションと、４個のオフセット絶対値と、４個のオフセット符号を色成分ごとに取得する。
【０１７４】
ステップＳ１９０３において、画素値変更部１７４３は、処理対象のブロックの復号画像の画素値を、バンドオフセット処理に関わるＳＡＯパラメータ（バンドポジション、４個のオフセット絶対値、４個のオフセット符号）を用いて色成分ごとに変更する。
【０１７５】
＜６．４  第１の実施形態に係るデコーダのループフィルタ部の機能構成＞
次に、第１の実施形態に係るデコーダ１２０のループフィルタ部１６０４の機能構成について説明する。
【０１７６】
図２０は、第１の実施形態に係るデコーダのループフィルタ部の機能構成の一例を示す図である。なお、図１７を用いて説明した、一般的なデコーダのループフィルタ部と同様の機能については同じ符号を付すこととし、ここでは説明を省略する。
【０１７７】
図１７との相違点は、画素適応オフセット処理部１７２０がクラスオフセット処理部２００１を有する点である。なお、後述するように、クラスオフセット処理部２００１は、色差歪みを削減することも可能であり、ＣＡＲ  ＳＡＯとしての機能も有する。図２０の右側に示すように、クラスオフセット処理部２００１は、ブロック読み出し部１７４１と、画素数算出部２０１１と、クラス選択部２０１２と、ＳＡＯパラメータ取得部２０１３と、画素値変更部２０１４とを有する。
【０１７８】
ブロック読み出し部１７４１は、画素適応オフセット処理部１７２０が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出し、画素値変更部２０１４に通知する。
【０１７９】
画素数算出部２０１１は算出部の一例である。画素数算出部２０１１は、処理対象のブロックの復号画像の各色成分（輝度信号（Ｙ）、色差信号（Ｃｂ、Ｃｒ））の画素値の階調を、所定の階調数を有する複数のクラスに分割する。画素数算出部２０１１は、画素値の階調を、各クラスが同じ階調数を有するように分割してもよいし、異なる階調数を有するように分割してもよい。
【０１８０】
また、各クラスが有する階調数は、図１７で示したバンドオフセット処理部１７２２により３２個のバンドに分割された際の、各バンドが有する階調数（画素値の階調が２５６階調であった場合、各バンドが有する階調数は"８"）よりも多くても少なくてもよい。
【０１８１】
ただし、画素数算出部２０１１が各クラスを生成する際の分割方法は、エンコーダ１１０において、画素数算出部１０１１が各クラスを生成する際に用いた分割方法と同じであり、予め決められているものとする。
【０１８２】
なお、各クラスが有する階調数を、各バンドが有する階調数よりも少なくした場合（つまり、バンド幅を狭くした場合）、処理対象のブロック内において、小さな劣化が起こっている特定領域に対してオフセット値を加算することができる。この場合、一般的なデコーダのバンドオフセット処理と比較して、色ずれの改善効果を大きくすることができる。
【０１８３】
更に、画素数算出部２０１１は、処理対象のブロックの復号画像に含まれる各画素を、色成分ごとに、画素値に基づいて、各クラスに分類することで、各クラスに属する画素の数を算出する。
【０１８４】
クラス選択部２０１２は、算出された画素の数が多い上位ｎ個のクラス（ｎは１以上の整数。例えば、"３"）を色成分ごとに選択して、画素値変更部２０１４に通知する。
【０１８５】
クラス選択部２０１２は、別例として、処理対象のブロックの復号画像の各色成分が色差信号（Ｃｂ、Ｃｒ）の場合は、階調値の中央値（１＜＜（ｂｉｔｄｅｐｔｈ−１））前後のｍ個のクラス（ｍは１以上の整数。例えば"６"）を選択し、ｍ個の中から、算出された画素の数の多い上位ｎ個のクラス（ｎは１以上の整数。例えば、"３"）を選択して、画素値変更部１０１４に通知する。
【０１８６】
ただし、クラス選択部２０１２が選択するクラスの数は、エンコーダ１１０において、画素数算出部１０１１が選択するクラスの数と同じであり、予め決められているものとする。
【０１８７】
ＳＡＯパラメータ取得部２０１３は、クラスオフセット処理に関わるＳＡＯパラメータを取得する。なお、本実施形態において、ＳＡＯパラメータ取得部２０１３は、ＳＡＯパラメータとして、色成分ごとにｎ個のオフセット値（ｎ個のオフセット絶対値、ｎ個のオフセット符号）を取得する。また、ＳＡＯパラメータ取得部２０１３は、取得した各色成分のｎ個のオフセット値を画素値変更部２０１４に通知する。
【０１８８】
画素値変更部２０１４はクラス加算部の一例である。画素値変更部２０１４は、処理対象のブロックの復号画像に含まれる各画素のうち、クラス選択部２０１２により選択されたクラスに属する画素の画素値に対して、色成分ごとに、通知されたオフセット値を加算する。また、画素値変更部２０１４は、色成分ごとにオフセット値を加算した処理対象のブロックの復号画像を出力する。
【０１８９】
＜６．５  第１の実施形態に係るデコーダによるクラスオフセット処理の詳細＞
次に、一般的なデコーダによるバンドオフセット処理（図１８のステップＳ１８０４）に代わる処理として、第１の実施形態に係るデコーダ１２０によるクラスオフセット処理の詳細な流れについて説明する。図２１は、第１の実施形態に係るデコーダによるクラスオフセット処理の流れを示すフローチャートである。
【０１９０】
ステップＳ２１０１において、ブロック読み出し部１７４１は、画素適応オフセット処理部１７２０が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出す。
【０１９１】
ステップＳ２１０３において、画素数算出部２０１１は、処理対象のブロックの復号画像において、各色成分の画素値の階調を、所定の階調数を有する複数のクラスに分割する。また、画素数算出部２０１１は、処理対象のブロックの復号画像に含まれる各画素を、色成分ごとに、画素値に基づいて各クラスに分類することで、各クラスに属する画素の数を算出する。更に、クラス選択部２０１２は、色成分ごとに、算出した画素の数が多い上位ｎ個のクラスを選択する。あるいは、別例として、クラス選択部２０１２は、色成分が色差信号（Ｃｂ、Ｃｒ）の場合は、階調値の中央値（１＜＜（ｂｉｔｄｅｐｔｈ−１））前後のｍ個のクラスを選択し、ｍ個の中から、算出した画素の数が多い上位ｎ個のクラスを選択する。
【０１９２】
ステップＳ２１０４において、ＳＡＯパラメータ取得部２０１３は、付帯情報に含まれるＳＡＯパラメータとして、ｎ個のクラスそれぞれのオフセット値（ｎ個のオフセット絶対値、ｎ個のオフセット符号）を色成分ごとに取得する。
【０１９３】
ステップＳ２１０５において、画素値変更部２０１４は、各色成分において、選択したｎ個のクラスそれぞれに属する画素の画素値に対して、取得したｎ個のオフセット値（ｎ個のオフセット絶対値、ｎ個のオフセット符号）を加算する。
【０１９４】
＜７．まとめ＞
以上の説明から明らかなように、第１の実施形態に係るエンコーダ１１０において、画素適応オフセット処理部は、バンドオフセット処理部に代えてクラスオフセット処理部を有しており、該クラスオフセット処理部は、
・処理対象のブロックの復号画像における各色成分の画素値の階調を、所定の階調数を有する複数のクラスに分割する。
・複数のクラスそれぞれに属する画素の数を算出し、算出した画素の数が多い上位ｎ個のクラスを選択し、選択したｎ個のクラスにオフセット値を加算する。または、階調値の中央値前後を固定で選択し、選択された複数のクラスそれぞれに属する画素の数を算出し、算出した画素の数が多い上位ｎ個のクラスを選択し、選択したｎ個のクラスにオフセット値を加算することもできる。
・加算したオフセット値を含むＳＡＯパラメータをシグナリングしてデコーダに送信する。
【０１９５】
このように、画素の数に応じてクラスを選択し、オフセット値を加算することで、第１の実施形態に係るエンコーダ１１０によれば、ＳＡＯパラメータとしてバンドポジションをデコーダに送信する必要がなくなる。この結果、ＳＡＯパラメータのビット量を削減することができる。
【０１９６】
また、第１の実施形態に係るエンコーダ１１０は、クラスオフセット処理部がクラスオフセット処理を行う際に、
・選択するクラスの数を減らすことで（４個未満とすることで）、ＳＡＯパラメータに含めるオフセット絶対値、オフセット符号の数を減らすことが可能となる。この結果、ＳＡＯパラメータのビット量を更に削減することができる。
・各クラスが有する階調数を小さくすることで、小さな劣化が起こっている特定領域に対してのみオフセット値を加算することが可能となる。この結果、色ずれの改善効果を大きくすることができる。
【０１９７】
同様に、第１の実施形態に係るデコーダ１２０において、画素適応オフセット処理部はバンドオフセット処理部に代えてクラスオフセット処理部を有しており、該クラスオフセット処理部は、
・処理対象のブロックの復号画像における各色成分の画素値の階調を、所定の階調数を有する複数のクラスに分割する。
・複数のクラスそれぞれに属する画素の数を算出し、算出した画素の数が多い上位ｎ個のクラスを選択し、選択したｎ個のクラスにオフセット値を加算する。または、階調値の中央値前後を固定で選択し、選択された複数のクラスそれぞれに属する画素の数を算出し、算出した画素の数が多い上位ｎ個のクラスを選択し、選択したｎ個のクラスにオフセット値を加算することもできる。
・ＳＡＯパラメータとして、オフセット値をエンコーダより受信する。
【０１９８】
このように、画素の数に応じてクラスを選択し、オフセット値を加算することで、第１の実施形態に係るデコーダ１２０によれば、ＳＡＯパラメータを介してバンドポジションを受信する必要がなくなる。この結果、ＳＡＯパラメータのビット量を削減することができる。
【０１９９】
また、第１の実施形態に係るデコーダ１２０は、クラスオフセット処理部がクラスオフセット処理を行う際に、
・選択するクラスの数を減らすことで（４個未満とすることで）、ＳＡＯパラメータに含めるオフセット絶対値、オフセット符号の数を減らすことが可能となる。この結果、ＳＡＯパラメータのビット量を更に削減することができる。
・各クラスが有する階調数を小さくすることで、小さな劣化が起こっている特定領域に対してのみオフセット値を加算することが可能となる。この結果、色ずれの改善効果を大きくすることができる。
【０２００】
［第２の実施形態］
上記第１の実施形態では、画素適応オフセット処理部が、バンドオフセット処理部に代えて、クラスオフセット処理部を有する構成とした。また、上記第１の実施形態では、処理対象のブロックの復号画像において、各色成分に対して、同様のオフセット処理を行うものとして説明した。
【０２０１】
しかしながら、画素適応オフセット処理部の構成はこれに限定されず、例えば、バンドオフセット処理部に加えて、クラスオフセット処理部を有する構成としてもよい。また、色成分ごとに、バンドオフセット処理またはクラスオフセット処理のいずれかを行うように構成してもよい。以下、第２の実施形態について、上記第１の実施形態との相違点を中心に説明する。
【０２０２】
図２２は、第２の実施形態に係るエンコーダのループフィルタ部の機能構成の一例を示す図である。図１０に示した機能構成との相違点は、画素適応オフセット処理部２２００が、エッジオフセット処理部５２１、クラスオフセット処理部１００１、選択部１００２に加えて、バンドオフセット処理部５２２を有している点である。
【０２０３】
図２２に示す機能構成のもと、画素適応オフセット処理部２２００では、例えば、各色成分のうち、輝度信号（Ｙ）については、バンドオフセット処理部５２２によるバンドオフセット処理を行うよう制御する。また、色差信号（Ｃｂ、Ｃｒ）については、クラスオフセット処理部１００１によるクラスオフセット処理を行うよう制御する。ただし、各色成分について、バンドオフセット処理を行うか、クラスオフセット処理を行うかは、予め設定されているものとする。
【０２０４】
なお、図２２では、エンコーダ１１０のループフィルタ部の機能構成について示したが、デコーダ１２０のループフィルタ部についても同様に構成することができる。
【０２０５】
このように、色成分ごとに、異なるオフセット処理を行う構成とすることで、色ずれの改善効果を大きくすることができる。
【０２０６】
［その他の実施形態］
上記第１及び第２の実施形態では、ｎ個のオフセット値の送信順序について特に言及しなかったが、ｎ個のオフセット値は、予め定められた順序で送信されるものとする。例えば、選択部１００２は、画素の数が多いクラスの順に、ｎ個のオフセット値を送信するように構成してもよい。あるいは、選択部１００２は、階調値の小さいクラスの順または階調値の大きいクラスの順に、ｎ個のオフセット値を送信するように構成してもよい。あるいは、選択部１００２は、階調値が中央値に近いクラスの順に、ｎ個のオフセット値を送信するように構成してもよい。
【０２０７】
また、上記第１及び第２の実施形態では、算出した画素の数が多い上位ｎ個のクラスを選択するものとして説明したが、算出した画素の数が同数のクラスが複数（ｎ個以上）となる場合も発生しうる。
【０２０８】
このような場合、クラス選択部１０１２では、選択されるクラスの数がｎ個になるように、算出した画素の数が同数のクラスの一部を、選択対象から除外する。例えば、画素の数が同数のクラスを比較して、階調値が中央値から最も離れているクラスを、選択対象から除外するようにしてもよい。
【０２０９】
また、上記第１及び第２の実施形態では、デブロッキングフィルタ部５１０による処理が実行された後に、画素適応オフセット処理部５２０による処理が実行されるものとして説明した。
【０２１０】
しかしながら、デブロッキングフィルタ部５１０による処理は、隣接するブロックの画素を利用して行われる。このため、画素の数を算出する処理が後に実行されることでオフセット値が加算される画素が確定しない場合、デブロッキングフィルタ部５１０では処理を実行することができない画素が生じる。この場合、当該画素を一時的に保持するメモリが必要となり、メモリ使用量が増大する。
【０２１１】
そこで、クラスオフセット処理部１００１による処理のうち、画素の数を算出する処理を、デブロッキングフィルタ部５１０による処理が実行される前に実行するように構成してもよい。これにより、オフセット値が加算される画素が確定するため、メモリ使用量の増大を回避することができる。なお、画素の数を算出する処理を、デブロッキングフィルタ部５１０による処理が実行される前に実行するか否かは、ストリーム単位で定義するように構成してもよい。
【０２１２】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【０２１３】
本出願は、２０１８年１月５日に出願された米国特許第６２／６１３９２０号に基づきその優先権を主張するものであり、同米国特許出願の全内容を参照することにより本願に援用する。
【符号の説明】
【０２１４】
１００            ：画像処理システム
１１０            ：エンコーダ
１２０            ：デコーダ
４０７            ：ループフィルタ部
５２０            ：画素適応オフセット処理部
５２１            ：エッジオフセット処理部
５２２            ：バンドオフセット処理部
５４１            ：ブロック読み出し部
１００１          ：クラスオフセット処理部
１００２          ：選択部
１０１１          ：画素数算出部
１０１２          ：クラス選択部
１０１３          ：オフセット決定部
１０１４          ：画素値変更部
１７２０          ：画素適応オフセット処理部
１７２１          ：エッジオフセット処理部
１７４１          ：ブロック読み出し部
２００１          ：クラスオフセット処理部
２０１１          ：画素数算出部
２０１２          ：クラス選択部
２０１３          ：ＳＡＯパラメータ取得部
２０１４          ：画素値変更部
【図１】
2019135294.tif 000003
【図２】
2019135294.tif 000004
【図３】
2019135294.tif 000005
【図４】
2019135294.tif 000006
【図５】
2019135294.tif 000007
【図６】
2019135294.tif 000008
【図７】
2019135294.tif 000009
【図８】
2019135294.tif 000010
【図９】
2019135294.tif 000011
【図１０】
2019135294.tif 000012
【図１１】
2019135294.tif 000013
【図１２】
2019135294.tif 000014
【図１３】
2019135294.tif 000015
【図１４】
2019135294.tif 000016
【図１５】
2019135294.tif 000017
【図１６】
2019135294.tif 000018
【図１７】
2019135294.tif 000019
【図１８】
2019135294.tif 000020
【図１９】
2019135294.tif 000021
【図２０】
2019135294.tif 000022
【図２１】
2019135294.tif 000023
【図２２】
2019135294.tif 000024
【国際調査報告】
2019135294.tif 000025
2019135294.tif 000026
2019135294.tif 000027
2019135294.tif 000028