(57)【特許請求の範囲】
【請求項１】
リコンストラクト画像のブロックの平坦さに関連する指標により示される前記平坦さが小さくなるのに応じて、前記リコンストラクト画像の前記ブロックに適用されるオフセット値が小さくなるように、前記オフセット値を修正するオフセット修正部と、
前記オフセット修正部により修正されたオフセット値で、前記リコンストラクト画像の画素値をオフセットするオフセット部と、
を備える画像処理装置。
【請求項２】
前記平坦さに関連する指標は、画素値の分散、標準偏差、及び一次微分総和、のうちの１つ以上を含む、請求項１に記載の画像処理装置。
【請求項３】
前記オフセット修正部は、前記ブロックにおける高周波成分のロスに関連する指標により示される前記ロスが小さくなるのに応じて、前記ブロックに適用される前記オフセット値が小さくなるように前記オフセット値を修正する、
請求項１に記載の画像処理装置。
【請求項４】
前記高周波成分のロスに関連する指標は、変換係数がゼロであるサブブロックの割合、量子化パラメータ、及び動き補償のサンプル精度が特定の精度であるサブブロックの割合、のうちの１つ以上を含む、請求項３に記載の画像処理装置。
【請求項５】
前記オフセット修正部は、前記変換係数がゼロであるサブブロックの割合が大きくなるのに応じて、前記ブロックに適用される前記オフセット値が小さくなるように前記オフセット値を修正する、請求項４に記載の画像処理装置。
【請求項６】
前記オフセット修正部による前記修正の強さは、前記量子化パラメータの値が大きいほど弱められる、請求項５に記載の画像処理装置。
【請求項７】
前記オフセット修正部は、前記量子化パラメータが小さくなるのに応じて、前記ブロックに適用される前記オフセット値が小さくなるように前記オフセット値を修正する、請求項４に記載の画像処理装置。
【請求項８】
前記オフセット修正部は、前記動き補償のサンプル精度が小数精度であるサブブロックの割合が大きくなるのに応じて、前記ブロックに適用される前記オフセット値が小さくなるように前記オフセット値を修正する、請求項４に記載の画像処理装置。
【請求項９】
前記オフセット修正部は、動きベクトルがゼロであるサブブロックの割合にさらに基づいて、前記オフセット値を修正する、請求項１に記載の画像処理装置。
【請求項１０】
前記オフセット修正部は、前記動きベクトルがゼロであるサブブロックの割合が大きくなるのに応じて、前記ブロックに適用される前記オフセット値が小さくなるように前記オフセット値を修正する、請求項９に記載の画像処理装置。
【請求項１１】
前記画像処理装置は、前記リコンストラクト画像に適用すべきオフセット値を、レート歪み最適化に基づいて前記ブロックごとに判定するオフセット判定部、をさらに備え、
前記オフセット修正部は、前記オフセット判定部により判定された前記オフセット値を修正する、
請求項１に記載の画像処理装置。
【請求項１２】
前記オフセット判定部は、前記ブロックごとにオフセットタイプを選択し、
前記オフセット修正部は、選択された前記オフセットタイプがエッジオフセットであるブロックについて、前記オフセット値を修正する、
請求項１１に記載の画像処理装置。
【請求項１３】
前記オフセット部は、Ｂピクチャ又はＢスライスに属するブロックの画素値をオフセットすることをスキップする、請求項１に記載の画像処理装置。
【請求項１４】
前記オフセット部は、動きベクトルがゼロであるブロック又はサブブロックの画素値をオフセットすることをスキップする、請求項１に記載の画像処理装置。
【請求項１５】
前記ブロックは、ＣＴＢ（Coding  Tree  Block）に相当する、請求項１に記載の画像処理装置。
【請求項１６】
リコンストラクト画像のブロックの平坦さに関連する指標により示される前記平坦さが小さくなるのに応じて、前記リコンストラクト画像の前記ブロックに適用されるオフセット値が小さくなるように、前記オフセット値を修正することと、
修正された前記オフセット値で、前記リコンストラクト画像の画素値をオフセットすることと、
を含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置、画像処理方法及び画像処理システムに関する。
【背景技術】
【０００２】
Ｈ．２６４／ＡＶＣよりも符号化効率をさらに向上することを目的として、ＩＴＵ−ＴとＩＳＯ／ＩＥＣとの共同の標準化団体であるＪＣＴＶＣ（Joint  Collaboration  Team-Video  Coding）により、ＨＥＶＣ（High  Efficiency  Video  Coding）と呼ばれる画像符号化方式の標準化が進められ、その標準仕様の初版が２０１３年の年初に公表された（例えば、非特許文献１参照）。その後も継続的に、符号化ツールの充実化などの様々な観点で、ＨＥＶＣの仕様の拡張が図られている（例えば、非特許文献２参照）。
【０００３】
サンプル適応オフセット（ＳＡＯ：Sample  Adaptive  Offset）は、ＨＥＶＣにおいて新たに導入された技術のうちの１つである。ＳＡＯフィルタは、インループフィルタの一種であり、主にリンギングノイズ又はモスキートノイズといったノイズを除去するために、復号画像（リコンストラクト画像）の画素値の各々にオフセットを適用する。ＳＡＯのオフセット値は、ＣＴＢ（Coding  Tree  Block）ごとに、ＲＤ（Rate-Distortion）最適化の観点から決定される。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Benjamin  Bross,  el.  al,  “High  Efficiency  Video  Coding  (HEVC)  text  specification  draft  10  (for  FDIS  &  Last  Call)”（JCTVC-L1003_v34,  2013年1月14-23日）
【非特許文献２】David  Flynn,  el.  al,  “High  Efficiency  Video  Coding  (HEVC)  Range  Extensions  text  specification:  Draft  5”（JCTVC-O1005_v2，  2013年10月23-11月1日）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＲＤ最適化は、主観的画質（ユーザの視覚を通じて感知される画質）を考慮しない。そのため、ＳＡＯ処理において、例えば過剰な又は不必要なオフセットが適用され、却ってテクスチャがぼける（不鮮明になる）といった、望ましくない結果が生じることがある。
【０００６】
従って、ＳＡＯ処理の作用を適応的に軽減し、復号画像の主観的な画質の劣化を防止することのできる技術が提供されることが有益である。
【課題を解決するための手段】
【０００７】
本開示によれば、リコンストラクト画像に適用すべきオフセット値を、前記リコンストラクト画像のブロックごとの画像特徴量に基づいて修正するオフセット修正部と、前記オフセット修正部により修正されたオフセット値で、前記リコンストラクト画像の画素値をオフセットするオフセット部と、を備える画像処理装置が提供される。
【０００８】
また、本開示によれば、リコンストラクト画像に適用すべきオフセット値を、前記リコンストラクト画像のブロックごとの画像特徴量に基づいて修正することと、修正された前記オフセット値で、前記リコンストラクト画像の画素値をオフセットすることと、を含む画像処理方法が提供される。
【０００９】
また、本開示によれば、リコンストラクト画像に適用すべきオフセット値を、前記リコンストラクト画像のブロックごとの画像特徴量に基づいて修正するオフセット修正部と、前記オフセット修正部により修正されたオフセット値を符号化する符号化部と、前記符号化部により符号化された前記修正されたオフセット値を復号する復号部と、前記復号部により復号された前記修正されたオフセット値で、前記リコンストラクト画像の画素値をオフセットするオフセット部と、を備える画像処理システムが提供される。
【発明の効果】
【００１０】
本開示に係る技術によれば、ＳＡＯ処理の作用を適応的に軽減し、復号画像の主観的な画質の劣化を防止することができる。
なお、上記の効果は必ずしも限定的なものではなく、上記の効果と共に、又は上記の効果に代えて、本明細書に示されたいずれかの効果、又は本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１１】
【図１Ａ】エッジオフセットについて説明するための第１の説明図である。
【図１Ｂ】エッジオフセットについて説明するための第２の説明図である。
【図２】バンドオフセットについて説明するための説明図である。
【図３】画像符号化装置の概略的な構成の一例を示すブロック図である。
【図４】ＳＡＯフィルタの詳細な構成の一例を示すブロック図である。
【図５Ａ】特徴量と修正オフセット値との間の関係の第１の例を示すグラフである。
【図５Ｂ】特徴量と修正オフセット値との間の関係の第２の例を示すグラフである。
【図６】一実施形態に係るＳＡＯ処理の概略的な流れの一例を示すフローチャートである。
【図７】図６に示したオフセット判定処理の流れの一例を示すフローチャートである。
【図８】図６に示したオフセット修正処理の、第１の実施例に係る流れの一例を示すフローチャートである。
【図９Ａ】図６に示したオフセット修正処理の、第２の実施例に係る流れの一例を示すフローチャートである。
【図９Ｂ】図６に示したオフセット修正処理の、第２の実施例に係る流れの他の例を示すフローチャートである。
【図１０】図６に示したオフセット修正処理の、第３の実施例に係る流れの一例を示すフローチャートである。
【図１１】一実施形態に係るＳＡＯ処理の概略的な流れの他の例を示すフローチャートである。
【図１２】一実施形態に係る画像処理システムの構成の一例を示すブロック図である。
【図１３】装置のハードウェア構成の一例を示すブロック図である。
【図１４】携帯電話機の概略的な構成の一例を示すブロック図である。
【図１５】記録再生装置の概略的な構成の一例を示すブロック図である。
【図１６】撮像装置の概略的な構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１３】
また、以下の順序で説明を行う。
１．サンプル適応オフセット（ＳＡＯ）の基本的な仕組み
２．エンコーダの構成例
３．ＳＡＯフィルタの詳細な構成例
４．処理の流れ
４−１．ＳＡＯ処理の概略
４−２．オフセット判定処理
４−３．オフセット修正処理
５．画像処理システム
６．ハードウェア構成例
７．応用例
８．まとめ
【００１４】
＜１．サンプル適応オフセット（ＳＡＯ）の基本的な仕組み＞
サンプル適応オフセット（ＳＡＯ）は、ＨＥＶＣにおいて新たに導入された技術のうちの１つである。ＳＡＯフィルタは、デブロックフィルタと同様、インループフィルタの一種である。ＳＡＯフィルタは、主にリンギングノイズ又はモスキートノイズといったノイズを除去するために、リコンストラクト画像の画素値の各々にオフセットを適用する。ＨＥＶＣでは、ＳＡＯフィルタのオフセットタイプとして、エッジオフセット及びバンドオフセットという２つのタイプが定義されている。オフセットタイプは、ＣＴＵ（Coding  Tree  Unit）において符号化されるパラメータsao_type_idx_luma及びsao_type_idx_chromaによって特定される。例えば、これらパラメータの値が１であればバンドオフセット、２であればエッジオフセットが、対応するＣＴＢ（Coding  Tree  Block）において利用される。
【００１５】
（１）エッジオフセット
エッジオフセット処理は、直交変換係数の量子化などに起因して復号画像に生じ得るリンギングノイズのような、エッジ状のノイズを除去するためのオフセット処理である。エッジオフセット処理では、ＣＴＵごとに、エッジの角度に対応するエッジオフセットクラスが、図１Ａに示したような４通りの候補クラスＣＬ０〜ＣＬ３の中から特定される。図中の画素Ｐｃは注目画素であり、画素Ｐａ及び画素Ｐｂは注目画素に隣接する隣接画素である。また、これら３つの画素の画素値のパターンに対応するカテゴリが、各注目画素について、図１Ｂに示したような４通りの候補カテゴリＣＧ１〜ＣＧ４の中から決定される。エンコーダは、各ＣＴＢの色成分ごとに、これら４通りの候補カテゴリの各々について最適なオフセット値を判定し、判定したオフセット値を符号化する。特定されたエッジオフセットクラスもまた符号化される。
【００１６】
（２）バンドオフセット
バンドオフセット処理は、画素値の特定の帯域に現れる復号画素値の原画素値からのズレを補償する。バンドオフセット処理では、画素値のレンジが例えば３２個のバンドに分割され、バンド位置によって特定されるバンドに属する画素値を有する画素に、オフセットが適用される。図２の例では、０〜２５５という画素値のレンジが３２個のバンドＢ００〜Ｂ３１に分割されており、それらバンドのうちのバンドＢ０３、Ｂ０４、Ｂ０５及びＢ０６に属する画素値に、オフセットが適用される。エンコーダは、オフセットを適用すべきバンドの各々について最適なオフセット値を判定し、判定したオフセット値を符号化する。オフセットを適用すべきバンドのバンド位置もまた符号化される。
【００１７】
こうしたＳＡＯ処理において、オフセット値（及びオフセットタイプなどのその他のパラメータ）は、ブロック（典型的には、ＣＴＢ）ごとに、ＲＤ（Rate-Distortion）最適化の観点から決定される。ＲＤ最適化に従えば、画質を表すＰＳＮＲ（Peak  Signal-to-Noise  Ratio）と符号量との間の関係は最適になり得る。しかし、ＰＳＮＲは必ずしも主観的画質に一致せず、ＲＤ最適化において主観的画質は考慮されない。そのため、既存のＳＡＯ処理において、例えば過剰な又は不必要なオフセットが復号画像へ適用される結果として、却ってテクスチャがぼけてしまい、主観的画質が損なわれることがある。
【００１８】
上述した既存の仕組みの欠点を解消し又は少なくとも緩和するために、本開示に係る技術は、ＳＡＯ処理の作用を適応的に軽減する。それにより、復号画像の主観的な画質の劣化が防止される。後述する実施形態では、ＲＤ最適化に従って判定されるオフセット値がブロックごとの画像特徴量に基づいて修正され、修正後のオフセット値でブロック内の各画素値がオフセットされる。そのような実施形態について、次節以降でより具体的に説明する。
【００１９】
＜２．エンコーダの構成例＞
図３は、画像符号化装置１０の概略的な構成の一例を示すブロック図である。図３を参照すると、画像符号化装置１０は、並び替えバッファ１１、減算部１３、直交変換部１４、量子化部１５、可逆符号化部１６、蓄積バッファ１７、レート制御部１８、逆量子化部２１、逆直交変換部２２、加算部２３、デブロックフィルタ２４、ＳＡＯフィルタ２５、フレームメモリ２６、スイッチ２７、モード設定部２８、イントラ予測部３０及びインター予測部３５を備える。
【００２０】
並び替えバッファ１１は、一連の画像データに含まれる画像を並び替える。並び替えバッファ１１は、符号化処理に係るＧＯＰ（Group  of  Pictures）構造に応じて画像を並び替えた後、並び替え後の画像データを減算部１３、ＳＡＯフィルタ２５、イントラ予測部３０及びインター予測部３５へ出力する。
【００２１】
減算部１３は、並び替えバッファ１１から入力される画像データと予測画像データとの差分である予測誤差データを算出し、算出した予測誤差データを直交変換部１４へ出力する。
【００２２】
直交変換部１４は、各ＣＴＢ内に設定される１つ以上の変換ブロック（ＴＢ：Transform  Block）の各々について直交変換処理を実行する。ここでの直交変換は例えば、離散コサイン変換（ＤＣＴ）又はカルーネン・レーベ変換などであってよい。より具体的には、直交変換部１４は、減算部１３から入力される予測誤差データを、ＴＢごとに、空間領域の画像信号から周波数領域の変換係数データに変換する。そして、直交変換部１４は、変換係数データを量子化部１５へ出力する。なお、必ずしも全てのＴＢが変換係数データを有するわけではない。予測誤差が符号化されない（例えば、動き補償のみで画像が再構築される）ＴＢは、変換係数データを有さず、そうしたＴＢについてはゼロを示す符号化ブロックフラグ（ＣＢＦ：Coded  Block  Flag）が符号化され得る。
【００２３】
量子化部１５には、直交変換部１４から入力される変換係数データ、及び後に説明するレート制御部１８からのレート制御信号が供給される。量子化部１５は、レート制御信号に従って決定される量子化ステップで変換係数データを量子化する。また、量子化部１５は、各ＴＢについて使用した量子化ステップを表す量子化パラメータを生成する。量子化部１５は、量子化後の変換係数データ（以下、量子化データという）を可逆符号化部１６及び逆量子化部２１へ出力する。また、量子化部１５は、生成した量子化パラメータを可逆符号化部１６へ出力する。
【００２４】
可逆符号化部１６は、１つ以上の符号化ブロック（ＣＢ：Coding  Block）の各々について量子化部１５から入力される量子化データを符号化することにより、符号化ストリームを生成する。また、可逆符号化部１６は、デコーダにより参照される様々なパラメータを符号化して、符号化されたパラメータを符号化ストリームのヘッダ領域に挿入する。可逆符号化部１６により符号化されるパラメータは、画像にＣＴＢ、ＣＢ、ＴＢ及びＰＢをどのように設定すべきかを示すブロック情報、量子化パラメータ、符号化ブロックフラグ、並びに、後述するＳＡＯ関連パラメータ、イントラ予測に関する情報及びインター予測に関する情報を含み得る。そして、可逆符号化部１６は、生成した符号化ストリームを蓄積バッファ１７へ出力する。
【００２５】
蓄積バッファ１７は、可逆符号化部１６から入力される符号化ストリームを半導体メモリなどの記憶媒体を用いて一時的に蓄積する。そして、蓄積バッファ１７は、蓄積した符号化ストリームを、伝送路の帯域に応じたレートで、図示しない伝送部（例えば、通信インタフェース又は周辺機器との接続インタフェースなど）へ出力する。
【００２６】
レート制御部１８は、蓄積バッファ１７の空き容量を監視する。そして、レート制御部１８は、蓄積バッファ１７の空き容量に応じてレート制御信号を生成し、生成したレート制御信号を量子化部１５へ出力する。例えば、レート制御部１８は、蓄積バッファ１７の空き容量が少ない時には、量子化データのビットレートを低下させるためのレート制御信号を生成する。また、例えば、レート制御部１８は、蓄積バッファ１７の空き容量が十分大きい時には、量子化データのビットレートを高めるためのレート制御信号を生成する。
【００２７】
逆量子化部２１、逆直交変換部２２及び加算部２３は、ローカルデコーダを構成する。逆量子化部２１は、量子化部１５により使用されたものと同じ量子化ステップで量子化データを逆量子化し、変換係数データを復元する。そして、逆量子化部２１は、復元した変換係数データを逆直交変換部２２へ出力する。
【００２８】
逆直交変換部２２は、逆量子化部２１から入力される変換係数データについて逆直交変換処理を実行することにより、予測誤差データを復元する。直交変換と同様、逆直交変換は、ＴＢごとに実行される。そして、逆直交変換部２２は、復元した予測誤差データを加算部２３へ出力する。
【００２９】
加算部２３は、逆直交変換部２２から入力される復元された予測誤差データとイントラ予測部３０又はインター予測部３５から入力される予測画像データとを加算することにより、復号画像データ（リコンストラクト画像）を生成する。そして、加算部２３は、生成した復号画像データをデブロックフィルタ２４及びフレームメモリ２６へ出力する。
【００３０】
デブロックフィルタ２４及びＳＡＯフィルタ２５は、それぞれ、リコンストラクト画像の画質の向上を目的とするインループフィルタである。デブロックフィルタ２４は、加算部２３から入力される復号画像データをフィルタリングすることによりブロック歪みを除去し、フィルタリング後の復号画像データをＳＡＯフィルタ２５へ出力する。
【００３１】
ＳＡＯフィルタ２５は、デブロックフィルタ２４から入力される復号画像データにエッジオフセット処理又はバンドオフセット処理を適用することによりノイズを除去し、処理後の復号画像データをフレームメモリ２６へ出力する。より具体的には、ＳＡＯフィルタ２５は、画像内の各ブロックにおいてＲＤ最適化に従って判定されるオフセット値をブロックごとの画像特徴量に基づいて修正し、修正したオフセット値で各ブロック内の画素値の各々をオフセットする。ＳＡＯフィルタ２５のより詳細な構成について、後にさらに説明する。
【００３２】
フレームメモリ２６は、加算部２３から入力されるフィルタリング前の復号画像データ、及びＳＡＯフィルタ２５から入力されるインループフィルタの適用後の復号画像データを記憶媒体を用いて記憶する。
【００３３】
スイッチ２７は、イントラ予測のために使用されるフィルタリング前の復号画像データをフレームメモリ２６から読み出し、読み出した復号画像データを参照画像データとしてイントラ予測部３０に供給する。また、スイッチ２７は、インター予測のために使用されるフィルタリング後の復号画像データをフレームメモリ２６から読み出し、読み出した復号画像データを参照画像データとしてインター予測部３５に供給する。
【００３４】
モード設定部２８は、各ＣＴＢの最適なブロック分割及び予測モードを、イントラ予測部３０及びインター予測部３５から入力されるコストの比較に基づいて判定する。モード設定部２８は、イントラ予測モードを選択したブロックについては、イントラ予測部３０により生成される予測画像データを減算部１３へ出力すると共に、イントラ予測に関する情報を可逆符号化部１６へ出力する。また、モード設定部２８は、インター予測モードを選択したブロックについては、インター予測部３５により生成される予測画像データを減算部１３へ出力すると共に、インター予測に関する情報を可逆符号化部１６へ出力する。
【００３５】
イントラ予測部３０は、原画像データ及び復号画像データに基づいて、各ＣＴＢ内に設定される１つ以上の予測ブロック（ＰＢ：Prediction  Block）の各々についてイントラ予測処理を実行する。例えば、イントラ予測部３０は、予測モードセット内の各候補モードによる予測結果を所定のコスト関数を用いて評価する。次に、イントラ予測部３０は、コストが最小となる予測モード、即ち圧縮率が最も高くなる予測モードを、最適モードとして選択する。また、イントラ予測部３０は、最適モードに従って予測画像データを生成する。そして、イントラ予測部３０は、最適モードを表すイントラ予測に関する情報、コスト、及び予測画像データを、モード設定部２８へ出力する。
【００３６】
インター予測部３５は、原画像データ及び復号画像データに基づいて、１つ以上のＰＢの各々についてインター予測処理を実行する。例えば、インター予測部３５は、予測モードセット内の各候補モードによる予測結果を所定のコスト関数を用いて評価する。次に、インター予測部３５は、コストが最小となる予測モード、即ち圧縮率が最も高くなる予測モードを、最適モードとして選択する。また、インター予測部３５は、最適モードに従って予測画像データを生成する。そして、インター予測部３５は、最適モードを表すインター予測に関する情報、コスト、及び予測画像データを、モード設定部２８へ出力する。ここでのインター予測に関する情報は、動きベクトル情報を含み得る。動きベクトル情報は、各ＰＢに適用すべき動きベクトルを、整数サンプル（integer  samples）精度又は小数サンプル（fractional  samples）精度で表す。動きベクトルが小数サンプル精度で表される場合には、補間フィルタを用いて補間される小数サンプル位置の参照画素値が、動き補償のために利用される。
【００３７】
＜３．ＳＡＯフィルタの詳細な構成例＞
図４は、図３に示したＳＡＯフィルタ２５の詳細な構成の一例を示すブロック図である。図４を参照すると、ＳＡＯフィルタ２５は、オフセット判定部４１、特徴量取得部４３、オフセット修正部４５及びオフセット部４７を有する。
【００３８】
（１）オフセット判定部
オフセット判定部４１は、図１Ａ、図１Ｂ及び図２を用いて説明した既存のＳＡＯ処理と同様に、リコンストラクト画像に適用すべきオフセット値をレート歪み（ＲＤ）最適化に基づいてブロックごとに判定する。ここでのブロックは、典型的には、ＣＴＢ（Coding  Tree  Block）に相当し得る。より具体的には、オフセット判定部４１は、エッジオフセット及びバンドオフセットを含み得るオフセットタイプの各々について、デブロックフィルタ２４から入力されるリコンストラクト画像Ｉｒｅｃに適用すべき適切なオフセット値のセットを判定する。エッジオフセットのケースでは、オフセット値のセットは、それぞれのカテゴリに対応するオフセット値を含み、候補クラスごとに判定され得る。また、オフセット判定部４１は、各オフセットタイプ（及び候補クラス）ごとに、原画像Ｉｏｒｇと処理後のリコンストラクト画像との間の誤差及び見込まれる符号量から、コストを計算する。そして、オフセット判定部４１は、計算したコストが最も低い値を示すオフセットタイプ、及びエッジオフセットの場合にはそのクラスを選択する。ここでの選択結果に対応するオフセット値のセットが、リコンストラクト画像に適用すべき（但し、修正前の）オフセット値である。オフセット判定部４１は、オフセットタイプとしてエッジオフセットを選択した場合には、図１Ｂに示したような４通りの候補カテゴリＣＧ１〜ＣＧ４にそれぞれ対応するオフセット値Ｖと、関連するパラメータ（オフセットタイプ、エッジオフセットクラスなど）とをオフセット修正部４５へ出力する。一方、オフセット判定部４１は、オフセットタイプとしてバンドオフセットを選択した場合には、対象のバンドにそれぞれ対応するオフセット値Ｖと、関連するパラメータ（オフセットタイプ、バンド位置など）とをオフセット修正部４５へ出力する。なお、オフセット判定部４１は、あるＣＴＢについてエッジオフセット処理及びバンドオフセット処理のいずれも行わないことを選択してもよい。この場合には、オフセット判定部４１は、オフセット無しを意味する値（例えば、ゼロ）を示すオフセットタイプをオフセット修正部４５へ出力する。
【００３９】
（２）特徴量取得部
特徴量取得部４３は、オフセット判定部４１により判定されるオフセット値を修正する際に参照される画像特徴量を、リコンストラクト画像のブロックごとに取得する。ここでは、限定ではないものの、画像特徴量に関する３通りの実施例について説明する。第１の実施例において、特徴量取得部４３により取得される画像特徴量は、各ブロックの平坦さに関連する指標を含む。例えば、各ブロックの平坦さ（flatness）を、画素値の分散、標準偏差、及び一次微分総和、のうちの１つ以上によって表現することができる。特徴量取得部４３は、例えば、デブロックフィルタ２４から入力されるリコンストラクト画像Ｉｒｅｃのブロックごとに、次の式（１）のように画素値の分散（平均二乗誤差）ＶＡＲｉを計算してもよい。式（１）において、ＮはブロックＢｉに属する画素の数、ＰｋはブロックＢｉに属するｋ番目の画素の画素値、ＰＡＶＥ＿ｉはブロックＢｉに属する画素群の画素値の平均を表す。
【００４０】
【数１】
0006269431.tif 000002
【００４１】
また、特徴量取得部４３は、分散ＶＡＲｉの正の平方根に等しい標準偏差を計算してもよい。また、特徴量取得部４３は、次の式（２）のように一次微分総和ＤＥＳＵＭｉを計算してもよい。式（２）において、Ｐｘ，ｙはブロックＢｉに属する画素位置（ｘ，ｙ）の画素値を表す。
【００４２】
【数２】
0006269431.tif 000003
【００４３】
これら分散、標準偏差、及び一次微分総和は、あるブロックが完全に平坦である（即ち、ブロックに属する画素群の画素値が全て等しい）場合には、ゼロを示す。これら指標の値が大きいことは、ブロックの画像が高周波成分を多く含むことを示唆する。そうした高周波成分のうちのある部分は、オフセットによって除去されるべき、リンギングノイズ又はモスキートノイズといったノイズに起因し得る。一方、これら指標の値がより小さいことは、ブロックの画像に含まれる高周波成分がより少なく、従って除去すべきノイズもより少ないことを示唆する。そうしたブロックについては、ＳＡＯ処理によるノイズ除去の利得よりも、画像の不鮮明化に伴う主観的画質の劣化の作用の方が上回る可能性が高いことから、ＳＡＯ処理の強度を適応的に軽減することが有益である。
【００４４】
第２の実施例において、特徴量取得部４３により取得される画像特徴量は、各ブロックの高周波成分のロスに関連する指標を含む。例えば、あるＴＢが変換係数を含まないことを符号化ブロックフラグ（ＣＢＦ）が示している場合、そのＴＢは、量子化誤差（変換係数の量子化の際の周波数成分の切り捨てに起因する誤差）を包含しない。これは、高周波成分のロスが無く、ＴＢに含まれるノイズが無いか又は小さいことを意味する。ＴＢ（変換ブロック）は、ＣＴＢのサブブロックである。そこで、特徴量取得部４３は、例えば、デブロックフィルタ２４から入力されるリコンストラクト画像Ｉｒｅｃのブロックごとの高周波成分のロスに関連する指標として、当該ブロックに属するサブブロックのＣＢＦの値を集計することにより、変換係数がゼロであるサブブロックの割合（以下、ゼロ係数率という）を計算してもよい。ゼロ係数率がより大きいブロックについては、ＳＡＯ処理によるノイズ除去の利得よりも、画像の不鮮明化に伴う主観的画質の劣化の作用の方が上回る可能性が高いことから、ＳＡＯ処理の強度を適応的に軽減することが有益である。
【００４５】
代替的に又は追加的に、特徴量取得部４３は、高周波成分のロスに関連する指標として、ブロック又はサブブロックの各々について使用された量子化パラメータ（例えば、ブロック内での平均値）を取得してもよい。量子化パラメータの値が大きいことは、量子化に伴う高周波成分のロスが大きいことを意味し、逆に量子化パラメータの値が小さいことは、量子化に伴う高周波成分のロスが小さいことを意味する。よって、量子化パラメータの値がより小さいブロックについては、ＳＡＯ処理によるノイズ除去の利得よりも、画像の不鮮明化に伴う主観的画質の劣化の作用の方が上回る可能性が高いことから、ＳＡＯ処理の強度を適応的に軽減することが有益である。また、上述したゼロ係数率に基づく（又は第１の実施例におけるブロックの平坦さに基づく）ＳＡＯ処理の強度の軽減の度合いが、量子化パラメータの値が大きいほど弱められてもよい。
【００４６】
代替的に又は追加的に、特徴量取得部４３は、高周波成分のロスに関連する指標として、動き補償のサンプル精度が特定の精度であるサブブロックの割合を取得してもよい。例えば、あるＰＢ（予測ブロック）において動き補償のサンプル精度が小数精度（１／２精度又は１／４精度など）である場合、そのＰＢにおいて補間フィルタが利用され得る。ＰＢは、ＣＴＢのサブブロックである。そして、タップ長の長い補間フィルタ（ＨＥＶＣにおける補間フィルタの最大タップ長は８タップである）は、実質的なローパスフィルタとして作用し、画像を平滑化する効果を有する。そのため、動き補償のサンプル精度が小数精度であるサブブロックの割合（以下、小数精度サブブロック率という）が大きい場合、さらにオフセットを適用することで、画像が過剰に不鮮明化される可能性が高い。一方、あるＰＢにおいて動き補償のサンプル精度が整数精度のみである場合、そのＰＢにおいて補間フィルタは利用されない。そのため、この場合、さらにオフセットを適用しても、画像が過剰に不鮮明化する可能性は低い。動き補償のサンプル精度は、動きベクトル情報から把握され得る。
【００４７】
第３の実施例において、特徴量取得部４３により取得される画像特徴量は、各ブロックにおける動きベクトルがゼロであるサブブロックの割合（以下、ゼロベクトル率という）を含む。例えば、画角内で被写体が静止している場合、その被写体を映すＰＢにおいて、動きベクトルはゼロになり得る。その場合にＳＡＯ処理を実行すると、インター予測の予測画素値にオフセットが累積的に加算される結果、画像が不鮮明化することがある。そこで、特徴量取得部４３は、デブロックフィルタ２４から入力されるリコンストラクト画像Ｉｒｅｃのブロックごとに、例えば動きベクトル情報を用いてゼロベクトル率を計算してもよい。ゼロベクトル率がより大きいブロックについては、ＳＡＯ処理によるノイズ除去の利得よりも、画像の不鮮明化に伴う主観的画質の劣化の作用の方が上回る可能性が高いことから、ＳＡＯ処理の強度を適応的に軽減することが有益である。動きベクトルがゼロであるサブブロックについては、オフセットの累積的な加算を回避するために、オフセットの適用がスキップされてもよい。
【００４８】
特徴量取得部４３は、上述したいずれかの手法又は他の手法に従って取得されるブロックごとの画像特徴量Ｒを、オフセット修正部４５へ出力する。
【００４９】
（３）オフセット修正部
オフセット修正部４５は、オフセット判定部４１により判定されたリコンストラクト画像に適用すべきオフセット値を、特徴量取得部４３から入力されるブロックごとの画像特徴量に基づいて修正する。例えば、オフセット修正部４５は、上述した平坦さに関連する指標に基づき、より平坦なブロックにより小さいオフセット値が適用されるように、オフセット値を修正してもよい。また、オフセット修正部４５は、上述した高周波成分のロスに関連する指標に基づき、高周波成分のロスのより小さいブロックにより小さいオフセット値が適用されるように、オフセット値を修正してもよい。高周波成分のロスのより小さいブロックとは、例えば、ゼロ係数率がより大きく、量子化パラメータがより小さく、又は小数精度サブブロック率がより大きいブロックを含み得る。また、オフセット修正部４５は、ゼロベクトル率がより大きいブロックにより小さいオフセット値が適用されるように、オフセット値を修正してもよい。
【００５０】
オフセット修正部４５により実行される処理は、概念的には、次のような関数の形式で表現され得る。
【００５１】
【数３】
0006269431.tif 000004
【００５２】
ここで、Ｖ及びＶｍｏｄはそれぞれ修正前の及び修正後のオフセット値、Ｒｉはｉ番目（ｉは１以上の整数）の特徴量を表す。関数Ｆは、例えば次の式（４）ような線形形式であり得る。係数αは、典型的には、特徴量Ｒ１、Ｒ２、…に依存するゼロ以上１以下の修正係数である。演算Ｃｌｉｐ（Ｘ）は、関数の出力値をオフセットの所定のレンジに制限するための演算であり、例えばＸが上界Ｘｍａｘを上回る場合にはＣｌｉｐ（Ｘ）＝Ｘｍａｘである。
【００５３】
【数４】
0006269431.tif 000005
【００５４】
図５Ａは、特徴量Ｒと修正オフセット値Ｖｍｏｄとの間の関係の第１の例を示すグラフである。グラフの横軸は特徴量Ｒ、縦軸は修正オフセット値Ｖｍｏｄを示す。図示したグラフＧ１１によれば、修正オフセット値Ｖｍｏｄは、特徴量Ｒに従って単調増加する直線を描いている。修正オフセット値Ｖｍｏｄの最大値は修正前のオフセット値Ｖに等しい。こうしたグラフＧ１１は、画像特徴量の値がより小さい場合にＳＡＯ処理の作用をより強く軽減させるようなシナリオに適している。例えば、画像特徴量Ｒが上述した分散、標準偏差、若しくは一次微分総和、又は量子化パラメータに相当するケースは、グラフＧ１１のシナリオに当てはまる。一方、グラフＧ１２によれば、修正オフセット値Ｖｍｏｄは、特徴量Ｒに従って単調減少する直線を描いている。こうしたグラフＧ１２は、画像特徴量の値がより大きい場合にＳＡＯ処理の作用をより強く軽減させるようなシナリオに適している。例えば、画像特徴量Ｒが上述したゼロ係数率、小数精度サブブロック率又はゼロベクトル率に相当するケースは、グラフＧ１２のシナリオに当てはまる。
【００５５】
図５Ｂは、特徴量Ｒと修正オフセット値Ｖｍｏｄとの間の関係の第２の例について説明するためのグラフである。図示したグラフＧ２によれば、修正オフセット値Ｖｍｏｄは、特徴量Ｒに従って階段状に増加する折れ線を描いている。例えば、特徴量Ｒが第１のサブレンジ［０，ｒ１］に属する場合には、修正係数α＝１／４がオフセット値Ｖに乗算される。特徴量Ｒが第２のサブレンジ［ｒ１，ｒ２］に属する場合には、修正係数α＝１／３がオフセット値Ｖに乗算される。特徴量Ｒが第３のサブレンジ［ｒ２，ｒ３］に属する場合には、修正係数α＝１／２がオフセット値Ｖに乗算される。特徴量Ｒが第４のサブレンジ［ｒ３，ｒ４］に属する場合には、修正オフセット値Ｖｍｏｄは修正前のオフセット値Ｖに等しい。こうした修正係数は、例えば事前のチューニングを通じて予め決定され、対応する特徴量のサブレンジに関連付けてメモリに格納され得る。そして、オフセット修正部４５は、オフセットを修正する際に、特徴量の値に対応する修正係数をメモリから取得し得る。可逆符号化部１６は、こうした修正係数を定義するパラメータを追加的に符号化してもよい。
【００５６】
図５Ａ及び図５Ｂに示したグラフは、説明のための例に過ぎない。オフセット修正部４５は、修正オフセット値Ｖｍｏｄが様々な傾き及び切片を有する直線、又は様々な曲線若しくは折れ線などの他の軌跡を描くように、オフセット値を修正してよい。１つの変形例において、オフセット修正部４５は、修正係数αを、オフセット値の修正の強さが量子化パラメータの値が大きいほど弱められるように調整し得る。次の式（５）における修正係数αａｄｊは、調整された修正係数を表し、上界１．０を超えない範囲で修正係数αと調整因子ｗとの積に等しい。
【００５７】
【数５】
0006269431.tif 000006
【００５８】
調整因子ｗは、例えば、量子化パラメータがサブレンジ［０，２０］に属する場合には１．０、量子化パラメータがサブレンジ［２０，３０］に属する場合には１．２、量子化パラメータがサブレンジ［３０，４０］に属する場合には１．６に等しい、といったように、量子化パラメータのサブレンジに関連付けて予め定義され得る。このように量子化パラメータの値が大きいほどオフセット値を修正するための修正係数を大きく設定することで、オフセット値の修正の強さを弱めることができる。それにより、ＳＡＯ処理の作用を軽減する中に、量子化誤差が大きいケースで高周波成分のロスに起因するノイズの除去の効果を維持する仕組みを取り入れることができる。
【００５９】
上述したように、エッジオフセット処理は、エッジ状のノイズを除去する処理である。よって、エッジオフセットを軽減することは、エッジが過剰に不鮮明化されることを防止することにつながる。これに対し、バンドオフセット処理は、特定の帯域に現れる画素値のズレを補償する処理である。よって、バンドオフセットを軽減することは、必ずしも画像の不鮮明化の防止にはつながらない。そこで、オフセット修正部４５は、オフセット判定部４１により判定されたオフセットタイプがエッジオフセットであるブロックについてオフセット値を修正する一方、オフセットタイプがバンドオフセットであるブロックについてはオフセット値を修正しなくてもよい。それにより、バンドオフセットの作用を減殺することなく、エッジオフセットによる画像の不鮮明化を効果的に防止することができる。
【００６０】
オフセット修正部４５は、上述したいずれかの手法又は他の手法に従ってオフセット値を修正した場合には、修正オフセット値Ｖｍｏｄをオフセット部４７へ出力する。オフセット値が修正されなかった場合には、もとのオフセット値Ｖがオフセット部４７へ出力される。また、オフセット修正部４５は、オフセット部４７へ出力される値に対応するＳＡＯ関連パラメータを、符号化のために可逆符号化部１６へ出力する。ここでのＳＡＯ関連パラメータは、例えば、オフセットタイプ、オフセット値のセット、及び、必要に応じてエッジオフセットクラス又はバンド位置など、を特定するパラメータであってよい。
【００６１】
（４）オフセット部
オフセット部４７は、オフセット修正部４５によりオフセット値が修正された場合には、修正された当該オフセット値Ｖｍｏｄでリコンストラクト画像の画素値をオフセットする。オフセット部４７は、オフセット値が修正されなかった場合には、オフセット判定部４１により判定されたオフセット値Ｖで画素値をオフセットし得る。オフセット部４７は、オフセットタイプがエッジオフセットであるブロックについては、注目画素のカテゴリを４通りの候補カテゴリＣＧ１〜ＣＧ４の中から決定し、決定したカテゴリに対応する（修正された）オフセット値を注目画素の画素値に加算する。オフセット部４７は、オフセットタイプがバンドオフセットであるブロックについては、注目画素の画素値が属するバンドを３２個のバンドの中から識別し、識別したバンドに対応する（修正された）オフセット値を注目画素の画素値に加算する。オフセット部４７は、例えばオフセットタイプがオフセット無しを示している場合に、画素値のオフセットをスキップしてもよい。
【００６２】
ブロックがＢピクチャ又はＢスライスに属する場合、そのブロックにおいて、インター予測の際に双予測（Bi-Prediction）が実行され得る。双予測は、予測画素値を導出するための、複数の参照画素値の加重平均の演算を含んでおり、これが実質的なローパスフィルタとして作用し、画像を平滑化する効果を有する。そのため、オフセット部４７は、Ｂピクチャ又はＢスライスに属するブロックの画素値のオフセットをスキップすることにより、画像が過剰に不鮮明化されることを回避してもよい。また、オフセット部４７は、画角内で被写体が静止している場合のオフセットの累積的な加算を通じて画像が不鮮明化することを回避するために、動きベクトルがゼロであるブロック又はサブブロックの画素値のオフセットをスキップしてもよい。
【００６３】
＜４．処理の流れ＞
［４−１．ＳＡＯ処理の概略］
図６は、一実施形態に係るＳＡＯフィルタ２５により実行されるＳＡＯ処理の概略的な流れの一例を示すフローチャートである。図６に示した処理は、画像内のブロックの各々について繰り返される。
【００６４】
図６を参照すると、まず、オフセット判定部４１は、ＲＤ最適化に基づいて、注目ブロックに適用すべきオフセットタイプ（ＳＡＯタイプ）及びオフセット値、並びに関連するパラメータを判定する（ステップＳ１０）。その後の処理は、判定されたオフセットタイプに依存して分岐する（ステップＳ２０）。
【００６５】
判定されたオフセットタイプがエッジオフセットである場合、特徴量取得部４３は、オフセット値を修正する際に参照される注目ブロックの画像特徴量を取得する（ステップＳ３０）。次に、オフセット修正部４５は、特徴量取得部４３から入力される注目ブロックの画像特徴量に基づいて、オフセット判定部４１から入力されるオフセット値を修正する（ステップＳ４０）。次に、オフセット部４７は、オフセット修正部４５により修正されたオフセット値で注目ブロックに属する画素群の各画素値をオフセットする（ステップＳ５０）。
【００６６】
判定されたオフセットタイプがバンドオフセットである場合、オフセット部４７は、未修正の（即ち、オフセット判定部４１により判定された）オフセット値で注目ブロックに属する画素群の各画素値をオフセットする（ステップＳ５５）。
【００６７】
次に、可逆符号化部１６は、オフセット修正部４５により修正されたオフセット値を特定するパラメータを含むＳＡＯ関連パラメータを符号化する（ステップＳ６０）。なお、注目ブロックのＳＡＯ関連パラメータが符号化済みの隣接ブロックのＳＡＯ関連パラメータと同一である場合には、ＳＡＯ関連パラメータの代わりにコピーモードを有効化するコピーフラグが符号化され得る。しかし、コピーモードは本開示に係る技術に直接的に関連しないため、ここではその説明を省略する。
【００６８】
次に、未処理のブロックが残っている場合には、処理はステップＳ１０へ戻り、次のブロックを注目ブロックとして上述した処理が繰り返される（ステップＳ７０）。未処理のブロックが残っていない場合には、図６に示したＳＡＯ処理は終了する。
【００６９】
［４−２．オフセット判定処理］
図７は、図６のステップＳ１０に相当するオフセット判定処理の流れの一例を示すフローチャートである。図７に示した処理は、注目ブロックの色成分ごとに繰り返される（ステップＳ１１）。
【００７０】
まず、オフセット判定部４１は、エッジオフセットの各クラスについて、４通りの候補カテゴリのそれぞれの最適なオフセット値を判定する（ステップＳ１２）。次に、オフセット判定部４１は、各クラスについてＲＤ最適化のためのコストを計算する（ステップＳ１３）。
【００７１】
また、オフセット判定部４１は、バンドオフセットのバンドごとの最適なオフセット値を判定する（ステップＳ１４）。次に、オフセット判定部４１は、各バンド位置についてＲＤ最適化のためのコストを計算する（ステップＳ１５）。
【００７２】
次に、オフセット判定部４１は、計算したコストを互いに比較することにより、注目ブロックにとって最適なオフセットタイプ（ＳＡＯタイプ）、対応するオフセット値のセット、及び関連するパラメータ（エッジオフセットクラス又はバンド位置など）を決定する（ステップＳ１６）。なお、エッジオフセットクラスなどのいくつかのパラメータは、２つの色差成分について共通的に決定されてよい。
【００７３】
［４−３．オフセット修正処理］
（１）第１の実施例
図８は、図６のステップＳ３０及びＳ４０に相当するオフセット修正処理の、第１の実施例に係る流れの一例を示すフローチャートである。
【００７４】
まず、特徴量取得部４３は、注目ブロックの平坦さに関連する指標を、デブロックフィルタ２４から入力されるリコンストラクト画像を用いて計算する（ステップＳ３１）。ここでの平坦さに関連する指標は、例えば、画素値の分散、標準偏差、若しくは一次微分総和、又はこれらの何らかの組合せであってよい。
【００７５】
次に、オフセット修正部４５は、特徴量取得部４３により計算された注目ブロックの平坦さに関連する指標の値に対応する修正係数を取得する（ステップＳ４１）。例えば、オフセット修正部４５は、計算された指標を用いて修正係数を算出してもよく、又は指標値に関連付けられる修正係数をメモリから取得してもよい。
【００７６】
次に、オフセット修正部４５は、取得した修正係数を用いて、例えば図５Ａ又は図５Ｂを用いて説明した手法に従い、注目ブロックに適用すべきオフセット値を修正する（ステップＳ４７）。
【００７７】
（２）第２の実施例
図９Ａは、図６のステップＳ３０及びＳ４０に相当するオフセット修正処理の、第２の実施例に係る流れの一例を示すフローチャートである。
【００７８】
まず、特徴量取得部４３は、注目ブロックの高周波成分のロスに関連する指標を、例えば符号化ブロックフラグ、量子化パラメータ又は動きベクトル情報などの符号化パラメータを参照することにより取得する（ステップＳ３２）。ここでの高周波成分のロスに関連する指標は、例えば、変換係数がゼロであるサブブロックの割合（ゼロ係数率）、量子化パラメータ（ブロック内での平均値）若しくは動き補償のサンプル精度が小数精度であるサブブロックの割合（小数精度サブブロック率）、又はこれらの何らかの組合せであってよい。
【００７９】
次に、オフセット修正部４５は、特徴量取得部４３により取得された高周波成分のロスに関連する指標の値に対応する修正係数を取得する（ステップＳ４２）。例えば、オフセット修正部４５は、高周波成分のロスの度合いから修正係数を算出してもよく、又は指標値に関連付けられる修正係数をメモリから取得してもよい。
【００８０】
次に、オフセット修正部４５は、取得した修正係数を用いて、例えば図５Ａ又は図５Ｂを用いて説明した手法に従い、注目ブロックに適用すべきオフセット値を修正する（ステップＳ４７）。
【００８１】
図９Ｂは、図６のステップＳ３０及びＳ４０に相当するオフセット修正処理の、第２の実施例に係る流れの他の例を示すフローチャートである。
【００８２】
まず、特徴量取得部４３は、注目ブロックの高周波成分のロスに関連する指標として、符号化ブロックフラグの集計に基づくゼロ係数率、及び量子化パラメータを取得する（ステップＳ３２ａ）。
【００８３】
次に、オフセット修正部４５は、特徴量取得部４３により取得されたゼロ係数率の値に対応する修正係数を取得する（ステップＳ４２ａ）。ここでオフセット修正部４５により取得される修正係数は、例えば、ゼロ係数率が大きいほどより小さい値を示す。
【００８４】
次に、オフセット修正部４５は、取得した修正係数を、量子化パラメータを用いて調整する（ステップＳ４３）。その結果、量子化パラメータの値が大きいほど、修正係数の値は１を超えない範囲で増加され得る（即ち、修正の強さが弱められ得る）。
【００８５】
次に、オフセット修正部４５は、量子化パラメータを用いて調整した修正係数を用いて、注目ブロックに適用すべきオフセット値を修正する（ステップＳ４７ａ）。
【００８６】
なお、図９Ｂに示したようにオフセット値の修正の前に修正係数が調整される代わりに、ゼロ係数率に基づくオフセット値の一次修正と、量子化パラメータに基づくオフセット値の二次修正とが行われてもよい。また、ゼロ係数率の代わりに、例えば小数精度サブブロック率などの他の指標が利用されてもよい。
【００８７】
（３）第３の実施例
図１０は、図６のステップＳ３０及びＳ４０に相当するオフセット修正処理の、第３の実施例に係る流れの一例を示すフローチャートである。
【００８８】
まず、特徴量取得部４３は、例えば動きベクトル情報を参照することにより、注目ブロックの動きベクトルがゼロであるサブブロックの割合（ゼロベクトル率）を計算する（ステップＳ３３）。
【００８９】
次に、オフセット修正部４５は、特徴量取得部４３により計算されたゼロベクトル率の値に対応する修正係数を取得する（ステップＳ４４）。例えば、オフセット修正部４５は、ゼロベクトル率を用いて修正係数を算出してもよく、又はゼロベクトル率の値に関連付けられる修正係数をメモリから取得してもよい。
【００９０】
次に、オフセット修正部４５は、取得した修正係数を用いて、例えば図５Ａ又は図５Ｂを用いて説明した手法に従い、注目ブロックに適用すべきオフセット値を修正する（ステップＳ４７）。
【００９１】
（４）変形例
図１１は、一実施形態に係るＳＡＯフィルタ２５により実行されるＳＡＯ処理の概略的な流れの他の例を示すフローチャートである。図１１に示した処理は、画像内のブロックの各々について繰り返される。
【００９２】
図１１を参照すると、まず、オフセット部４７により、注目ブロックがＢピクチャ又はＢスライスに属するか否かが判定される（ステップＳ５）。ここで、注目ブロックがＢピクチャ又はＢスライスに属すると判定された場合には、ステップＳ１０〜Ｓ６０の処理はスキップされる。注目ブロックがＢピクチャ又はＢスライスに属しないと判定された場合には、処理はステップＳ１０へ進む。
【００９３】
ステップＳ１０〜Ｓ６０の処理は、図６を用いて説明したものと同様であるため、ここではその説明を省略する。ステップＳ７０において、未処理のブロックが残っている場合には、処理はステップＳ５へ戻り、次のブロックを注目ブロックとして上述した処理が繰り返される。未処理のブロックが残っていない場合には、図１１に示したＳＡＯ処理は終了する。
【００９４】
＜５．画像処理システム＞
一実施形態において、上述した画像符号化装置１０と、画像符号化装置１０により符号化された画像を復号する画像復号装置と、を含む画像処理システムが提供されてもよい。図１２は、そのような画像処理システム１の構成の一例を示すブロック図である。図１２を参照すると、画像処理システム１は、画像符号化装置１０と画像復号装置６０と、を含む。画像符号化装置１０は、符号化ストリームから再構築されるリコンストラクト画像に適用すべきオフセット値を画像のブロックごとの画像特徴量に基づいて修正し、修正したオフセット値を特定する符号化パラメータを符号化ストリームに挿入する。画像復号装置６０は、符号化ストリームを受け取り、画像符号化装置１０により符号化された修正されたオフセット値を復号する。そして、画像復号装置６０は、復号された修正されたオフセット値で、リコンストラクト画像の画素値をオフセットする。
【００９５】
より具体的には、画像復号装置６０は、蓄積バッファ６１、可逆復号部６２、逆量子化部６３、逆直交変換部６４、加算部６５、デブロックフィルタ６６、ＳＡＯフィルタ６７、並び替えバッファ６８、Ｄ／Ａ（Digital  to  Analogue）変換部６９、フレームメモリ７０、セレクタ７１ａ及び７１ｂ、イントラ予測部８０並びにインター予測部８５を備える。
【００９６】
蓄積バッファ６１は、符号化ストリームを記憶媒体を用いて一時的に蓄積する。
【００９７】
可逆復号部６２は、蓄積バッファ６１から入力される符号化ストリームから、符号化の際に使用された符号化方式に従って量子化データを復号する。また、可逆復号部６２は、符号化ストリームのヘッダ領域に挿入されている情報を復号する。可逆復号部６２により復号される情報は、例えば、ＳＡＯ関連パラメータ、イントラ予測に関する情報及びインター予測に関する情報を含み得る。可逆復号部６２は、量子化データを逆量子化部６３へ出力する。また、可逆復号部６２は、ＳＡＯ関連パラメータをＳＡＯフィルタ６７へ出力する。また、可逆復号部６２は、イントラ予測に関する情報をイントラ予測部８０へ出力する。また、可逆復号部６２は、インター予測に関する情報をインター予測部８５へ出力する。
【００９８】
逆量子化部６３は、可逆復号部６２から入力される量子化データを、符号化の際に使用されたものと同じ量子化ステップで逆量子化し、変換係数データを復元する。逆量子化部６３は、復元した変換係数データを逆直交変換部６４へ出力する。
【００９９】
逆直交変換部６４は、符号化の際に使用された直交変換方式に従い、逆量子化部６３から入力される変換係数データについて逆直交変換を行うことにより、予測誤差データを生成する。逆直交変換部６４は、生成した予測誤差データを加算部６５へ出力する。
【０１００】
加算部６５は、逆直交変換部６４から入力される予測誤差データと、セレクタ７１ｂから入力される予測画像データとを加算することにより、復号画像データを生成する。そして、加算部６５は、生成した復号画像データをデブロックフィルタ６６及びフレームメモリ７０へ出力する。
【０１０１】
デブロックフィルタ６６は、加算部６５から入力される復号画像データをフィルタリングすることによりブロック歪みを除去し、フィルタリング後の復号画像データをＳＡＯフィルタ６７へ出力する。
【０１０２】
ＳＡＯフィルタ６７は、デブロックフィルタ６６から入力される復号画像データにエッジオフセット処理又はバンドオフセット処理を適用することによりノイズを除去し、処理後の復号画像データを並び替えバッファ６８及びフレームメモリ７０へ出力する。より具体的には、ＳＡＯフィルタ６７は、可逆復号部６２により復号されるＳＡＯ関連パラメータから、典型的にはＣＴＢに相当し得るブロックごとに、オフセットタイプ、オフセット値のセット、及び、エッジオフセットクラス又はバンド位置などのその他のパラメータを識別する。ここで識別されるオフセット値は、画像符号化装置１０によりブロックごとの画像特徴量に基づいて修正された値を示し得る。そして、ＳＡＯフィルタ６７は、復号されたオフセット値で各ブロック内の画素値の各々をオフセットする。ＳＡＯフィルタ６７は、オフセットタイプがオフセット無しを示す場合、ブロックがＢピクチャ若しくはＢスライスに属する場合、又は動きベクトルがゼロである場合に、当該ブロックについてオフセットをスキップしてもよい。
【０１０３】
並び替えバッファ６８は、ＳＡＯフィルタ６７から入力される画像を並び替えることにより、時系列の一連の画像データを生成する。そして、並び替えバッファ６８は、生成した画像データをＤ／Ａ変換部６９へ出力する。
【０１０４】
Ｄ／Ａ変換部６９は、並び替えバッファ６８から入力されるデジタル形式の画像データをアナログ形式の画像信号に変換する。そして、Ｄ／Ａ変換部６９は、例えば、画像復号装置６０と接続されるディスプレイ（図示せず）にアナログ画像信号を出力することにより、復号された映像を表示させる。
【０１０５】
フレームメモリ７０は、加算部６５から入力されるフィルタリング前の復号画像データ、及びＳＡＯフィルタ６７から入力されるフィルタリング後の復号画像データを記憶媒体を用いて記憶する。
【０１０６】
セレクタ７１ａは、可逆復号部６２により取得されるモード情報に応じて、画像内のブロックごとに、フレームメモリ７０からの画像データの出力先をイントラ予測部８０とインター予測部８５との間で切り替える。例えば、セレクタ７１ａは、イントラ予測モードが指定された場合には、フレームメモリ７０から供給されるフィルタリング前の復号画像データを参照画像データとしてイントラ予測部８０へ出力する。また、セレクタ７１ａは、インター予測モードが指定された場合には、フィルタリング後の復号画像データを参照画像データとしてインター予測部８５へ出力する。
【０１０７】
セレクタ７１ｂは、可逆復号部６２により取得されるモード情報に応じて、加算部６５へ供給すべき予測画像データの出力元をイントラ予測部８０とインター予測部８５との間で切り替える。例えば、セレクタ７１ｂは、イントラ予測モードが指定された場合には、イントラ予測部８０から出力される予測画像データを加算部６５へ供給する。また、セレクタ７１ｂは、インター予測モードが指定された場合には、インター予測部８５から出力される予測画像データを加算部６５へ供給する。
【０１０８】
イントラ予測部８０は、可逆復号部６２から入力されるイントラ予測に関する情報とフレームメモリ７０からの参照画像データとに基づいてイントラ予測処理を行い、予測画像データを生成する。そして、イントラ予測部８０は、生成した予測画像データをセレクタ７１ｂへ出力する。
【０１０９】
インター予測部８５は、可逆復号部６２から入力されるインター予測に関する情報とフレームメモリ７０からの参照画像データとに基づいてインター予測処理を行い、予測画像データを生成する。そして、インター予測部８５は、生成した予測画像データをセレクタ７１ｂへ出力する。
【０１１０】
＜６．ハードウェア構成例＞
上述した実施形態は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。画像符号化装置１０又は画像復号装置６０がソフトウェアを使用する場合、ソフトウェアを構成するプログラムは、例えば、装置の内部又は外部に設けられる記憶媒体（非一時的な媒体：non-transitory  media）に予め格納される。そして、各プログラムは、例えば、実行時にＲＡＭ（Random  Access  Memory）に読み込まれ、ＣＰＵ（Central  Processing  Unit）などのプロセッサにより実行される。
【０１１１】
図１３は、上述した実施形態を適用可能な装置のハードウェア構成の一例を示すブロック図である。図１３を参照すると、画像処理装置８００は、システムバス８１０、画像処理チップ８２０及びオフチップメモリ８９０を備える。画像処理チップ８２０は、ｎ個（ｎは１以上）の処理回路８３０−１、８３０−２、…、８３０−ｎ、参照バッファ８４０、システムバスインタフェース８５０及びローカルバスインタフェース８６０を含む。
【０１１２】
システムバス８１０は、画像処理チップ８２０と外部モジュール（例えば、中央制御機能、アプリケーション機能、通信インタフェース又はユーザインタフェースなど）との間の通信路を提供する。処理回路８３０−１、８３０−２、…、８３０−ｎは、システムバスインタフェース８５０を介してシステムバス８１０と接続され、及びローカルバスインタフェース８６０を介してオフチップメモリ８９０と接続される。処理回路８３０−１、８３０−２、…、８３０−ｎは、オンチップメモリ（例えば、ＳＲＡＭ）に相当し得る参照バッファ８４０にもアクセスすることができる。オフチップメモリ８９０は、例えば、画像処理チップ８２０により処理される画像データを記憶するフレームメモリであってよい。
【０１１３】
一例として、処理回路８３０−１は上述したＳＡＯフィルタ２５又はＳＡＯフィルタ６７に、処理回路８３０−２は可逆符号化部１６又は可逆復号部６２に相当し得る。なお、これら処理回路は、同一の画像処理チップ８２０ではなく、別個のチップ上に形成されてもよい。上述した手法に従ってエンコーダ側のＳＡＯフィルタにおいてオフセット値が修正される場合、ＳＡＯ関連パラメータのシンタックスはインパクトを受けない。よって、オフセット値がＲＤ最適化に基づく値から修正されるか否かに依存してデコーダのロジックを改変する必要性は無い。
【０１１４】
＜７．応用例＞
上述した実施形態は、衛星回線、ケーブルＴＶ回線、インターネット、若しくはセルラー通信ネットワークなどを用いて映像の符号化ストリームを送信する送信装置、又は映像の符号化ストリームを光ディスク、磁気ディスク若しくはフラッシュメモリなどの媒体に記録する記録装置、といった様々な電子機器に応用され得る。以下、３つの応用例について説明する。
【０１１５】
（１）第１の応用例
図１４は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機９２０は、アンテナ９２１、通信部９２２、音声コーデック９２３、スピーカ９２４、マイクロホン９２５、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、制御部９３１、操作部９３２、センサ部９３３、バス９３４及びバッテリー９３５を備える。
【０１１６】
アンテナ９２１は、通信部９２２に接続される。スピーカ９２４及びマイクロホン９２５は、音声コーデック９２３に接続される。操作部９３２は、制御部９３１に接続される。バス９３４は、通信部９２２、音声コーデック９２３、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、制御部９３１及びセンサ部９３３を相互に接続する。
【０１１７】
携帯電話機９２０は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
【０１１８】
音声通話モードにおいて、マイクロホン９２５により生成されるアナログ音声信号は、音声コーデック９２３に供給される。音声コーデック９２３は、アナログ音声信号を音声データへ変換し、変換された音声データをＡ／Ｄ変換し圧縮する。そして、音声コーデック９２３は、圧縮後の音声データを通信部９２２へ出力する。通信部９２２は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号をアンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部９２２は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック９２３へ出力する。音声コーデック９２３は、音声データを伸張し及びＤ／Ａ変換し、アナログ音声信号を生成する。そして、音声コーデック９２３は、生成した音声信号をスピーカ９２４に供給して音声を出力させる。
【０１１９】
また、データ通信モードにおいて、例えば、制御部９３１は、操作部９３２を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部９３１は、文字を表示部９３０に表示させる。また、制御部９３１は、操作部９３２を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部９２２へ出力する。通信部９２２は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号をアンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部９２２は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部９３１へ出力する。制御部９３１は、表示部９３０に電子メールの内容を表示させると共に、電子メールデータを記録再生部９２９の記憶媒体に記憶させる。
【０１２０】
記録再生部９２９は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、ＲＡＭ又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、ＵＳＢメモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
【０１２１】
また、撮影モードにおいて、例えば、カメラ部９２６は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部９２７へ出力する。画像処理部９２７は、カメラ部９２６から入力される画像データを符号化し、符号化ストリームを記録再生部９２９の記憶媒体に記憶させる。
【０１２２】
また、テレビ電話モードにおいて、例えば、多重分離部９２８は、画像処理部９２７により符号化された映像ストリームと、音声コーデック９２３から入力される音声ストリームとを多重化し、多重化したストリームを通信部９２２へ出力する。通信部９２２は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号をアンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部９２２は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部９２８へ出力する。多重分離部９２８は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部９２７、音声ストリームを音声コーデック９２３へ出力する。画像処理部９２７は、映像ストリームを復号し、映像データを生成する。映像データは、表示部９３０に供給され、表示部９３０により一連の画像が表示される。音声コーデック９２３は、音声ストリームを伸張し及びＤ／Ａ変換し、アナログ音声信号を生成する。そして、音声コーデック９２３は、生成した音声信号をスピーカ９２４に供給して音声を出力させる。
【０１２３】
センサ部９３３は、加速度センサ及びジャイロセンサなどのセンサ群を含み、携帯電話機９２０の動きを表す指標を出力する。バッテリー９３５は、図中では省略されている電力供給ラインを介して、通信部９２２、音声コーデック９２３、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、制御部９３１及びセンサ部９３３に電力を供給する。
【０１２４】
このように構成された携帯電話機９２０において、画像処理部９２７は、上述した実施形態に係る画像符号化装置１０の機能を有する。それにより、携帯電話機９２０において、画像特徴量に基づいてＳＡＯ処理の作用を適応的に軽減することができる。
【０１２５】
（２）第２の応用例
図１５は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置９４０は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置９４０は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置９４０は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置９４０は、音声データ及び映像データを復号する。
【０１２６】
記録再生装置９４０は、チューナ９４１、外部インタフェース９４２、エンコーダ９４３、ＨＤＤ（Hard  Disk  Drive）９４４、ディスクドライブ９４５、セレクタ９４６、デコーダ９４７、ＯＳＤ（On-Screen  Display）９４８、制御部９４９、及びユーザインタフェース９５０を備える。
【０１２７】
チューナ９４１は、アンテナ（図示せず）を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ９４１は、復調により得られた符号化ビットストリームをセレクタ９４６へ出力する。即ち、チューナ９４１は、記録再生装置９４０における伝送手段としての役割を有する。
【０１２８】
外部インタフェース９４２は、記録再生装置９４０と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース９４２は、例えば、ＩＥＥＥ１３９４インタフェース、ネットワークインタフェース、ＵＳＢインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース９４２を介して受信される映像データ及び音声データは、エンコーダ９４３へ入力される。即ち、外部インタフェース９４２は、記録再生装置９４０における伝送手段としての役割を有する。
【０１２９】
エンコーダ９４３は、外部インタフェース９４２から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ９４３は、符号化ビットストリームをセレクタ９４６へ出力する。
【０１３０】
ＨＤＤ９４４は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラム及びその他のデータを内部のハードディスクに記録する。また、ＨＤＤ９４４は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
【０１３１】
ディスクドライブ９４５は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ９４５に装着される記録媒体は、例えばＤＶＤディスク（ＤＶＤ−Ｖｉｄｅｏ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等）又はＢｌｕ−ｒａｙ（登録商標）ディスクなどであってよい。
【０１３２】
セレクタ９４６は、映像及び音声の記録時には、チューナ９４１又はエンコーダ９４３から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをＨＤＤ９４４又はディスクドライブ９４５へ出力する。また、セレクタ９４６は、映像及び音声の再生時には、ＨＤＤ９４４又はディスクドライブ９４５から入力される符号化ビットストリームをデコーダ９４７へ出力する。
【０１３３】
デコーダ９４７は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ９４７は、生成した映像データをＯＳＤ９４８へ出力する。また、デコーダ９０４は、生成した音声データを外部のスピーカへ出力する。
【０１３４】
ＯＳＤ９４８は、デコーダ９４７から入力される映像データを再生し、映像を表示する。また、ＯＳＤ９４８は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのＧＵＩの画像を重畳してもよい。
【０１３５】
制御部９４９は、ＣＰＵなどのプロセッサ、並びにＲＡＭ及びＲＯＭなどのメモリを有する。メモリは、ＣＰＵにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置９４０の起動時にＣＰＵにより読み込まれ、実行される。ＣＰＵは、プログラムを実行することにより、例えばユーザインタフェース９５０から入力される操作信号に応じて、記録再生装置９４０の動作を制御する。
【０１３６】
ユーザインタフェース９５０は、制御部９４９と接続される。ユーザインタフェース９５０は、例えば、ユーザが記録再生装置９４０を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース９５０は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９４９へ出力する。
【０１３７】
このように構成された記録再生装置９４０において、エンコーダ９４３は、上述した実施形態に係る画像符号化装置１０の機能を有する。それにより、記録再生装置９４０において、画像特徴量に基づいてＳＡＯ処理の作用を適応的に軽減することができる。
【０１３８】
（３）第３の応用例
図１６は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置９６０は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
【０１３９】
撮像装置９６０は、光学ブロック９６１、撮像部９６２、信号処理部９６３、画像処理部９６４、表示部９６５、外部インタフェース９６６、メモリ９６７、メディアドライブ９６８、ＯＳＤ９６９、制御部９７０、ユーザインタフェース９７１、センサ９７２、バス９７３及びバッテリー９７４を備える。
【０１４０】
光学ブロック９６１は、撮像部９６２に接続される。撮像部９６２は、信号処理部９６３に接続される。表示部９６５は、画像処理部９６４に接続される。ユーザインタフェース９７１は、制御部９７０に接続される。バス９７３は、画像処理部９６４、外部インタフェース９６６、メモリ９６７、メディアドライブ９６８、ＯＳＤ９６９、制御部９７０及びセンサ９７２を相互に接続する。
【０１４１】
光学ブロック９６１は、フォーカスレンズ及び絞り機構などを有する。光学ブロック９６１は、被写体の光学像を撮像部９６２の撮像面に結像させる。撮像部９６２は、ＣＣＤ又はＣＭＯＳなどのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部９６２は、画像信号を信号処理部９６３へ出力する。
【０１４２】
信号処理部９６３は、撮像部９６２から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部９６３は、カメラ信号処理後の画像データを画像処理部９６４へ出力する。
【０１４３】
画像処理部９６４は、信号処理部９６３から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部９６４は、生成した符号化データを外部インタフェース９６６又はメディアドライブ９６８へ出力する。また、画像処理部９６４は、外部インタフェース９６６又はメディアドライブ９６８から入力される符号化データを復号し、画像データを生成する。そして、画像処理部９６４は、生成した画像データを表示部９６５へ出力する。また、画像処理部９６４は、信号処理部９６３から入力される画像データを表示部９６５へ出力して画像を表示させてもよい。また、画像処理部９６４は、ＯＳＤ９６９から取得される表示用データを、表示部９６５へ出力する画像に重畳してもよい。
【０１４４】
ＯＳＤ９６９は、例えばメニュー、ボタン又はカーソルなどのＧＵＩの画像を生成して、生成した画像を画像処理部９６４へ出力する。
【０１４５】
外部インタフェース９６６は、例えばＵＳＢ入出力端子として構成される。外部インタフェース９６６は、例えば、画像の印刷時に、撮像装置９６０とプリンタとを接続する。また、外部インタフェース９６６には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置９６０にインストールされ得る。さらに、外部インタフェース９６６は、ＬＡＮ又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース９６６は、撮像装置９６０における伝送手段としての役割を有する。
【０１４６】
メディアドライブ９６８に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ９６８に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はＳＳＤ（Solid  State  Drive）のような非可搬性の記憶部が構成されてもよい。
【０１４７】
制御部９７０は、ＣＰＵなどのプロセッサ、並びにＲＡＭ及びＲＯＭなどのメモリを有する。メモリは、ＣＰＵにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置９６０の起動時にＣＰＵにより読み込まれ、実行される。ＣＰＵは、プログラムを実行することにより、例えばユーザインタフェース９７１から入力される操作信号に応じて、撮像装置９６０の動作を制御する。
【０１４８】
ユーザインタフェース９７１は、制御部９７０と接続される。ユーザインタフェース９７１は、例えば、ユーザが撮像装置９６０を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース９７１は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９７０へ出力する。
【０１４９】
センサ９７２は、加速度センサ及びジャイロセンサなどのセンサ群を含み、撮像装置９６０の動きを表す指標を出力する。バッテリー９７４は、図中では省略されている電力供給ラインを介して、撮像部９６２、信号処理部９６３、画像処理部９６４、表示部９６５、メディアドライブ９６８、ＯＳＤ９６９、制御部９７０及びセンサ９７２に電力を供給する。
【０１５０】
このように構成された撮像装置９６０において、画像処理部９６４は、上述した実施形態に係る画像符号化装置１０の機能を有する。それにより、撮像装置９６０において、画像特徴量に基づいてＳＡＯ処理の作用を適応的に軽減することができる。
【０１５１】
＜８．まとめ＞
ここまで、図１〜図１６を用いて、本開示に係る技術の実施形態について詳細に説明した。上述した実施形態によれば、サンプル適応オフセット（ＳＡＯ）処理において、リコンストラクト画像に適用すべきオフセット値が当該画像のブロックごとの画像特徴量に基づいて修正され、修正されたオフセット値でリコンストラクト画像の画素値がオフセットされる。それにより、ＳＡＯ処理において過剰な又は不必要なオフセットが適用される結果として画像のテクスチャが不鮮明化し、復号画像の主観的画質が劣化してしまうという不都合を防止することができる。
【０１５２】
一実施例によれば、あるブロックの画像が比較的平坦であることを画像特徴量が示す場合に、ＳＡＯ処理において当該ブロックに適用されるオフセットが縮小される。その結果、より少ない高周波成分しか含まない（即ち、除去すべきノイズも少ないと見込まれる）ブロックについて、ノイズ除去の利得に見合わない主観的画質の劣化が防止される。
【０１５３】
別の実施例によれば、あるブロックの高周波成分のロスが比較的少ないことを画像特徴量が示す場合に、ＳＡＯ処理において当該ブロックに適用されるオフセットが縮小される。その結果、高周波成分のロスに起因して生じるノイズが少ないと見込まれるブロックについて、ノイズ除去の利得に見合わない主観的画質の劣化が防止される。
【０１５４】
また別の実施例によれば、あるブロック内の全ての又は比較的多くのサブブロックにおいて動きベクトルがゼロである場合に、ＳＡＯ処理において当該ブロックに適用されるオフセットが縮小され又はオフセットの適用がスキップされる。その結果、動きの無い画像領域においてオフセットが累積的に加算されることに起因する画像の不鮮明化が防止される。
【０１５５】
また、上述した実施形態によれば、レート歪み（ＲＤ）最適化に基づいて判定されるオフセットを修正することにより得られる修正オフセット値が、ＳＡＯ処理において利用され得る。かかる構成によれば、主観的画質を考慮しないＲＤ最適化のみに基づくオフセット値が利用される既存の手法と比較して、復号画像の主観的画質を向上させることができる。
【０１５６】
本明細書に記述したＣＴＢ、ＣＢ、ＰＢ及びＴＢとの用語は、ＣＴＵ、ＣＵ、ＰＵ及びＴＵとの用語にそれぞれ置き換えられてもよい。ＣＴＢ、ＣＢ、ＰＢ及びＴＢは、画像の一部分としての個々のブロック（又はサブブロック）を主に意味する一方、ＣＴＵ、ＣＵ、ＰＵ及びＴＵは、関連付けられるシンタックスをも含む論理的な単位を主に意味する。
【０１５７】
また、本明細書では、ＳＡＯ関連パラメータが、符号化ストリームのヘッダに多重化されて、符号化側から復号側へ伝送される例について主に説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像（スライス若しくはブロックなど、画像の一部であってもよい）と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像（又はビットストリーム）とは別の伝送路上で伝送されてもよい。また、情報は、画像（又はビットストリーム）とは別の記録媒体（又は同一の記録媒体の別の記録エリア）に記録されてもよい。さらに、情報と画像（又はビットストリーム）とは、例えば、複数フレーム、１フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
【０１５８】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１５９】
また、本明細書に記載された効果は、あくまで説明的又は例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果と共に、又は上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏し得る。
【０１６０】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
リコンストラクト画像に適用すべきオフセット値を、前記リコンストラクト画像のブロックごとの画像特徴量に基づいて修正するオフセット修正部と、
前記オフセット修正部により修正されたオフセット値で、前記リコンストラクト画像の画素値をオフセットするオフセット部と、
を備える画像処理装置。
（２）
前記画像特徴量は、各ブロックの平坦さに関連する指標を含み、
前記オフセット修正部は、より平坦なブロックにより小さいオフセット値が適用されるように前記オフセット値を修正する、
前記（１）に記載の画像処理装置。
（３）
前記平坦さに関連する指標は、画素値の分散、標準偏差、及び一次微分総和、のうちの１つ以上を含む、前記（２）に記載の画像処理装置。
（４）
前記画像特徴量は、各ブロックにおける高周波成分のロスに関連する指標を含み、
前記オフセット修正部は、高周波成分のロスのより小さいブロックにより小さいオフセット値が適用されるように前記オフセット値を修正する、
前記（１）に記載の画像処理装置。
（５）
前記高周波成分のロスに関連する指標は、変換係数がゼロであるサブブロックの割合、量子化パラメータ、及び動き補償のサンプル精度が特定の精度であるサブブロックの割合、のうちの１つ以上を含む、前記（４）に記載の画像処理装置。
（６）
前記オフセット修正部は、前記変換係数がゼロであるサブブロックの割合がより大きいブロックにより小さいオフセット値が適用されるように前記オフセット値を修正する、前記（５）に記載の画像処理装置。
（７）
前記オフセット修正部による前記修正の強さは、前記量子化パラメータの値が大きいほど弱められる、前記（６）に記載の画像処理装置。
（８）
前記オフセット修正部は、前記量子化パラメータがより小さいブロックにより小さいオフセット値が適用されるように前記オフセット値を修正する、前記（５）に記載の画像処理装置。
（９）
前記オフセット修正部は、前記動き補償のサンプル精度が小数精度であるサブブロックの割合がより大きいブロックにより小さいオフセット値が適用されるように前記オフセット値を修正する、前記（５）に記載の画像処理装置。
（１０）
前記画像特徴量は、動きベクトルがゼロであるサブブロックの割合を含む、前記（１）に記載の画像処理装置。
（１１）
前記オフセット修正部は、前記動きベクトルがゼロであるサブブロックの割合がより大きいブロックにより小さいオフセット値が適用されるように前記オフセット値を修正する、前記（１０）に記載の画像処理装置。
（１２）
前記画像処理装置は、前記リコンストラクト画像に適用すべきオフセット値を、レート歪み最適化に基づいて前記ブロックごとに判定するオフセット判定部、をさらに備え、
前記オフセット修正部は、前記オフセット判定部により判定された前記オフセット値を、前記画像特徴量に基づいて修正する、
前記（１）〜（１１）のいずれか１項に記載の画像処理装置。
（１３）
前記オフセット判定部は、前記ブロックごとにオフセットタイプを選択し、
前記オフセット修正部は、選択された前記オフセットタイプがエッジオフセットであるブロックについて、前記オフセット値を修正する、
前記（１２）に記載の画像処理装置。
（１４）
前記オフセット部は、Ｂピクチャ又はＢスライスに属するブロックの画素値をオフセットすることをスキップする、前記（１）〜（１３）のいずれか１項に記載の画像処理装置。
（１５）
前記オフセット部は、動きベクトルがゼロであるブロック又はサブブロックの画素値をオフセットすることをスキップする、前記（１）〜（１４）のいずれか１項に記載の画像処理装置。
（１６）
前記ブロックは、ＣＴＢ（Coding  Tree  Block）に相当する、前記（１）〜（１５）のいずれか１項に記載の画像処理装置。
（１７）
リコンストラクト画像に適用すべきオフセット値を、前記リコンストラクト画像のブロックごとの画像特徴量に基づいて修正することと、
修正された前記オフセット値で、前記リコンストラクト画像の画素値をオフセットすることと、
を含む画像処理方法。
（１８）
リコンストラクト画像に適用すべきオフセット値を、前記リコンストラクト画像のブロックごとの画像特徴量に基づいて修正するオフセット修正部と、
前記オフセット修正部により修正されたオフセット値を符号化する符号化部と、
前記符号化部により符号化された前記修正されたオフセット値を復号する復号部と、
前記復号部により復号された前記修正されたオフセット値で、前記リコンストラクト画像の画素値をオフセットするオフセット部と、
を備える画像処理システム。
【符号の説明】
【０１６１】
１            画像処理システム
１０          画像処理装置（画像符号化装置）
１６          可逆符号化部
２５          ＳＡＯフィルタ
４１          オフセット判定部
４３          特徴量取得部
４５          オフセット修正部
４７          オフセット部
６０          画像処理装置（画像復号装置）
６２          可逆復号部
６７          ＳＡＯフィルタ
【図１Ａ】
0006269431.tif 000007
【図１Ｂ】
0006269431.tif 000008
【図２】
0006269431.tif 000009
【図３】
0006269431.tif 000010
【図４】
0006269431.tif 000011
【図５Ａ】
0006269431.tif 000012
【図５Ｂ】
0006269431.tif 000013
【図６】
0006269431.tif 000014
【図７】
0006269431.tif 000015
【図８】
0006269431.tif 000016
【図９Ａ】
0006269431.tif 000017
【図９Ｂ】
0006269431.tif 000018
【図１０】
0006269431.tif 000019
【図１１】
0006269431.tif 000020
【図１２】
0006269431.tif 000021
【図１３】
0006269431.tif 000022
【図１４】
0006269431.tif 000023
【図１５】
0006269431.tif 000024
【図１６】
0006269431.tif 000025