(57)【要約】      （修正有）【課題】コスト計算の処理量を低減することが可能な画像処理装置及び画像処理方法を提供する。【解決手段】サンプル適応オフセットフィルタ３００において、画像のビット深度に応じて制限されたオフセット値の候補から、復号された復号画像の画素に対して適用するオフセット値を設定する設定部として機能する制御部３１０と、復号画像の画素に対して、設定部により設定されたオフセット値を適用するフィルタ処理を実行するフィルタ処理部３９０と、を備える。【選択図】図７
2015216627.tif 000002
【特許請求の範囲】
【請求項１】
画像のビット深度に応じて制限されたオフセット値の候補から、復号された復号画像の画素に対して適用する前記オフセット値を設定する設定部と、
前記復号画像の画素に対して、前記設定部により設定された前記オフセット値を適用するフィルタ処理を実行するフィルタ処理部と、
を備える、画像処理装置。
【請求項２】
前記設定部は、第１のビット深度よりも大きい第２のビット深度の場合における前記オフセット値の候補の数を、前記第１のビット深度の場合における前記オフセット値の候補の数に制限する、請求項１に記載の画像処理装置。
【請求項３】
前記設定部は、前記第２のビット深度の場合における前記オフセット値の候補の数を、前記第１のビット深度の場合に前記オフセット値がとり得る値の数に制限する、請求項２に記載の画像処理装置。
【請求項４】
当該第１のビット深度の場合に前記オフセット値のとり得る値は０〜７であり、
当該第２のビット深度の場合に前記オフセット値のとり得る値は０〜３１である、請求項２に記載の画像処理装置。
【請求項５】
前記設定部は、前記画像を量子化する際に用いる量子化パラメタに応じて、前記復号画像の画素に対して適用する前記オフセット値の候補を設定する、請求項２に記載の画像処理装置。
【請求項６】
前記設定部は、前記量子化パラメタに応じて、前記復号画像の画素に対して適用する前記オフセット値の候補の最大値を制限する、請求項５に記載の画像処理装置。
【請求項７】
前記設定部は、前記量子化パラメタが小さいほど、前記オフセット値の候補の最大値が小さくなるように当該オフセット値の候補を設定する、請求項６に記載の画像処理装置。
【請求項８】
前記設定部は、前記量子化パラメタに応じて、隣接する候補間の間隔を設定する、請求項５に記載の画像処理装置。
【請求項９】
前記設定部は、前記量子化パラメタが大きいほど、隣接する候補間の間隔が大きくなるように、当該間隔を設定する、請求項８に記載の画像処理装置。
【請求項１０】
前記設定部は、前記画像の特徴量に応じて、前記復号画像の画素に対して適用する前記オフセット値の候補を設定する、請求項２に記載の画像処理装置。
【請求項１１】
前記特徴量は、前記画像における画素の画素値の分散値であり、
前記設定部は、前記分散値に応じて、前記復号画像の画素に対して適用する前記オフセット値の候補を設定する、請求項１０に記載の画像処理装置。
【請求項１２】
前記設定部は、前記分散値が小さいほど、前記オフセット値がとり得る値のうち、より小さい値を当該オフセット値の候補として設定する、請求項１１に記載の画像処理装置。
【請求項１３】
前記フィルタ処理部にフィルタ処理が実行された復号画像を用いて、前記画像を符号化する符号化部を更に備える、請求項１に記載の画像処理装置。
【請求項１４】
前記符号化部は、ＣＴＢ（Coding  Tree  Block）を再帰的に分割したＣＢ（Coding  Block）を単位として、前記画像を符号化する、請求項１３に記載の画像処理装置。
【請求項１５】
前記フィルタ処理部は、前記ＣＴＢを単位として、前記オフセット値を適用するフィルタ処理を実行する、請求項１４に記載の画像処理装置。
【請求項１６】
前記設定部は、前記オフセット値の候補の数を、前記復号画像のピクチャタイプに応じて制限する、請求項１に記載の画像処理装置。
【請求項１７】
前記設定部は、対象となる復号画像のピクチャタイプが、他の復号画像を参照するピクチャタイプの場合には、前記オフセット値の候補の数を、参照先となる当該他の復号画像における前記オフセット値の候補の数に制限する、請求項１６に記載の画像処理装置。
【請求項１８】
プロセッサが、画像のビット深度に応じて制限されたオフセット値の候補から、復号された復号画像の画素に対して適用する前記オフセット値を設定することと、
前記復号画像の画素に対して、設定された前記オフセット値を適用するフィルタ処理を実行することと、
を含む、画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
現在、Ｈ．２６４／ＡＶＣよりも符号化効率をさらに向上することを目的として、ＩＴＵ−ＴとＩＳＯ／ＩＥＣとの共同の標準化団体であるＪＣＴＶＣ（Joint  Collaboration  Team-Video  Coding）により、ＨＥＶＣ（High  Efficiency  Video  Coding）と呼ばれる画像符号化方式の標準化が進められている（例えば、非特許文献１参照）。
【０００３】
ＨＥＶＣは、ＭＰＥＧ２及びＡＶＣ（Advanced  Video  Coding）などの既存の画像符号化方式と同様、シングルレイヤの符号化のみならず、スケーラブル符号化をも提供する。ＨＥＶＣのスケーラブル符号化技術を、ＳＨＶＣ（Scalable  HEVC）ともいう（例えば、非特許文献２参照）。スケーラブル符号化とは、一般には、粗い画像信号を伝送するレイヤと精細な画像信号を伝送するレイヤとを階層的に符号化する技術をいう。
【０００４】
ＨＥＶＣの標準仕様の初版は２０１３年の年初に公表されたが、上述したＳＨＶＣ以外にも、符号化ツールの充実化などの様々な観点での仕様の拡張が継続的に行われている（例えば、非特許文献３参照）。特に、ＨＥＶＣから、サンプル適応オフセット（ＳＡＯ：Sample  Adaptive  Offset）フィルタと呼ばれる技術を適用されている。このサンプル適応オフセットフィルタでは、バンドオフセットとエッジオフセットと呼ばれる技術に基づく複数のモードのうち、最適なモードを選択することで、符号化効率の向上が図られている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Benjamin  Bross,  el.  al,  “High  Efficiency  Video  Coding  (HEVC)  text  specification  draft  10  (for  FDIS  &  Consent)”（JCTVC-L1003_v4,  2013年1月14-23日）
【非特許文献２】Jianle  Chen,  el.  al,  “High  efficiency  video  coding  (HEVC)  scalable  extensions  Draft  5”（JCTVC-P1008_v4，  2014年1月9-17日）
【非特許文献３】David  Flynn,  el.  al,  “High  Efficiency  Video  Coding  (HEVC)  Range  Extensions  text  specification:  Draft  5”（JCTVC-O1005_v2，  2013年10月23-11月1日）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一方で、サンプル適応オフセットフィルタは、最適なモード及びオフセット値を設定する際の処理量が大きくなる傾向にあり、回路規模や消費電力の増加の要因となる場合がある。
【０００７】
そこで、本開示では、コスト計算の処理量を低減することが可能な、画像処理装置及び画像処理方法を提案する。
【課題を解決するための手段】
【０００８】
本開示によれば、画像のビット深度に応じて制限されたオフセット値の候補から、前記画像の画素に対して適用する前記オフセット値を設定する制御部と、前記画像の画素に対して、前記制御部により設定された前記オフセット値を適用するためのフィルタ処理を実行するフィルタ処理部と、を備える、画像処理装置が提供される。
【０００９】
また、本開示によれば、プロセッサが、画像のビット深度に応じて制限されたオフセット値の候補から、前記画像の画素に対して適用する前記オフセット値を設定することと、前記画像の画素に対して、設定された前記オフセット値を適用するためのフィルタ処理を実行することと、を含む、画像処理方法が提供される。
【発明の効果】
【００１０】
以上説明したように本開示によれば、コスト計算の処理量を低減することが可能な画像処理装置及び画像処理方法が提供される。
【００１１】
なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１２】
【図１】エッジオフセット処理の概要について説明するための説明図である。
【図２】バンドオフセット処理の概要について説明するための説明図である。
【図３】本開示の第１の実施形態に係る画像符号化装置の構成の一例を示したブロック図である。
【図４】同実施形態に係るループフィルタの構成の一例を示したブロック図である。
【図５】同実施形態に係る画像符号化装置の一連の処理の流れについて説明するための説明図である。
【図６】同実施形態に係る画像符号化装置の一連の処理の流れの一例を示したフローチャートである。
【図７】同実施形態に係るサンプル適応オフセットフィルタの構成の一例を示したブロック図である。
【図８】同実施形態に係るサンプル適応オフセットフィルタの一連の処理の流れの一例を示したフローチャートである。
【図９】同実施形態に係る切り替え判定部による、スライスごとのＳＡＯ処理の適用の可否の判定に係る処理の一例について示したフローチャートである。
【図１０】比較例に係るオフセット判定部の構成の一例を示したブロック図である。
【図１１】比較例に係る各オフセット測定部と各オフセット値との対応関係の一例を示したテーブルである。
【図１２】比較例に係るオフセット判定部の一連の処理の流れの一例を示したフローチャートである。
【図１３】同実施形態に係るオフセット判定部の構成の一例について示したブロック図である。
【図１４】同実施形態に係る各オフセット測定部と各オフセット値との対応関係の一例を示したテーブルである。
【図１５】同実施形態に係る各オフセット測定部と各オフセット値との対応関係の一例を示したテーブルである。
【図１６】同実施形態に係る各オフセット測定部と各オフセット値との対応関係の一例を示したテーブルである。
【図１７】同本実施形態に係るオフセット判定部の一連の処理の流れの一例を示したフローチャートである。
【図１８】Ｈ．２６５／ＨＥＶＣにおけるイントラ予測の予測モードについて説明するための説明図である。
【図１９】イントラ予測の予測モードとして方向性予測が選択された場合の復号画像データの特徴について説明するための説明図である。
【図２０】本開示の第２の実施形態に係る画像符号化装置における、イントラ予測の予測モードとＳＡＯの各モードとの対応関係の一例を示している。
【図２１】同実施形態に係るループフィルタの構成の一例を示したブロック図である。
【図２２】同実施形態に係るサンプル適応オフセットフィルタの構成の一例を示したブロック図である。
【図２３】比較例に係るモード判定部の一連の処理の流れの一例を示したフローチャートである。
【図２４】同実施形態に係るモード判定部の一連の処理の流れの一例を示したフローチャートである。
【図２５】Ｂスライスのうち、インター予測における双予測に基づき生成される予測画像データの一例について説明するための説明図である。
【図２６】本開示の第３の実施形態に係るサンプル適応オフセットフィルタの構成の一例を示したブロック図である。
【図２７】同実施形態に係る第１の判定部の構成の一例を示したブロック図である。
【図２８】同実施形態に係るサンプル適応オフセットフィルタの一連の処理の流れの一例を示したフローチャートである。
【図２９】同実施形態に係る第１の判定部の一連の処理の流れの一例を示したフローチャートである。
【図３０】同実施形態に係る第２の判定部の一連の処理の流れの一例を示したフローチャートである。
【図３１】本開示の第４の実施形態に係る画像符号化装置の概要について説明するための説明図である。
【図３２】同実施形態に係るサンプル適応オフセットフィルタの処理の内容について説明するための説明図である。
【図３３】同実施形態に係るオフセット判定部の一連の処理の流れの一例を示したフローチャートである。
【図３４】同実施形態に係るオフセット判定部の一連の処理の流れの一例を示したフローチャートである。
【図３５】エンコーダのハードウェア構成の一例を示すブロック図である。
【図３６】携帯電話機の概略的な構成の一例を示すブロック図である。
【図３７】記録再生装置の概略的な構成の一例を示すブロック図である。
【図３８】撮像装置の概略的な構成の一例を示すブロック図である。
【図３９】ビデオセットの概略的な構成の一例を示すブロック図である。
【図４０】ビデオプロセッサの概略的な構成の一例を示すブロック図である。
【図４１】ビデオプロセッサの概略的な構成の他の例を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１４】
なお、説明は以下の順序で行うものとする。
１．サンプル適応オフセットフィルタの概要
２．第１の実施形態
２−１．画像符号化装置の全体的な構成例
２−２．ループフィルタの構成例
２−３．一連の処理の流れ
２−４．サンプル適応オフセットフィルタ
２−４−１．サンプル適応オフセットフィルタの構成例
２−４−２．サンプル適応オフセットフィルタの処理の流れ
２−５．オフセット判定部
２−５−１．オフセット判定部の比較例
２−５−２．オフセット判定部の構成例
２−５−３．オフセット判定部の処理の流れ
２−６．まとめ
３．第２の実施形態
３−１．概要
３−２．ループフィルタの構成例
３−３．サンプル適応オフセットフィルタの構成例
３−４．モード判定部の処理の流れ
３−４−１．モード判定部の比較例
３−４−２．モード判定部の処理の流れ
３−５．変形例
３−６．まとめ
４．第３の実施形態
４−１．概要
４−２．サンプル適応オフセットフィルタの構成例
４−３．サンプル適応オフセットフィルタの処理の流れ
４−４．変形例
４−５．まとめ
５．第４の実施形態
５−１．概要
５−２．処理
５−３．まとめ
６．ハードウェア構成例
７．応用例
７−１．様々な製品への応用
７−２．様々な実装レベル
８．まとめ
【００１５】
＜１．サンプル適応オフセットフィルタの概要＞
まず、サンプル適応オフセットフィルタの概要について説明する。サンプル適応オフセット（以下、「ＳＡＯ」と呼ぶ場合がある）フィルタは、Ｈ．２６５／ＨＥＶＣで新たに導入されたループフィルタ技術であり、デブロッキングフィルタ処理の後に実行される。ＳＡＯは、エッジオフセット（ＥＯ：Edge  Offset）とバンドオフセット（ＢＯ：Band  Offset）と呼ばれる２種類の技術から構成されており、ＣＴＵ（Coding  Tree  Unit）ごと（即ち、ＬＣＵ（Largest  Coding  Unit）ごと）にパラメタが設定される。
【００１６】
まず、エッジオフセット処理の概要について説明する。エッジオフセット処理は、処理対象となる画素と、当該画素に隣接する２つの隣接画素の相対関係に応じて、画素ごとに画素値に対してオフセット値の加減算を行う処理である。
【００１７】
例えば、図１は、エッジオフセット処理の概要について説明するための説明図である。図１に示すＥＯ＿０〜ＥＯ＿３は、エッジオフセット処理における画素配列の候補（クラス）を示している。図１において、参照符号ｃで示された画素が処理対象となる画素を示しており、参照符号ａ及びｂで示された画素が、処理対象となる画素ｃの隣接画素を示している。なお、クラスＥＯ＿０〜ＥＯ＿３のうち、どのクラスを用いるかについては、符号化パラメタ「sao_eo_class_luma」及び「sao_eo_class_chroma」により、輝度と色差との双方についてＣＴＵごとに選択できる。
【００１８】
また、カテゴリ１〜カテゴリ４は、対象画素ｃと隣接画素ａ及びｂとの間の画素値の関係を分類したものである。例えば、カテゴリ１は、対象画素ｃの画素値が、隣接画素ａ及びｂのいずれの画素値よりも小さい場合を示している。また、カテゴリ２は、対象画素ｃの画素値が、隣接画素ａ及びｂのいずれか一方よりも小さく、他方と等しい場合を示している。カテゴリ１及び２の場合には、対象画素ｃに対してオフセットを加算することで、対象画素ｃと隣接画素ａ及びｂとの間で画素値の平滑化が行われる。
【００１９】
カテゴリ３は、対象画素ｃの画素値が、隣接画素ａ及びｂのいずれか一方よりも大きく、他方と等しい場合を示している。また、カテゴリ４は、対象画素ｃの画素値が、隣接画素ａ及びｂのいずれの画素値よりも大きい場合を示している。カテゴリ３及び４の場合には、対象画素ｃに対してオフセットが減算することで、対象画素ｃと隣接画素ａ及びｂとの間で画素値の平滑化が行われる。
【００２０】
なお、エッジオフセットでは、上記に説明したカテゴリ１〜カテゴリ４に加えて、エッジオフセット処理を行わないことを示すカテゴリ０が設けられている。
【００２１】
このように、エッジオフセット処理では、クラスＥＯ＿０〜ＥＯ＿３からいずれかのクラスを選択し、選択されたクラスに応じて対象画素ｃの画素値と隣接画素ａ及びｂの画素値との関係がカテゴリ０〜カテゴリ４のいずれに該当するかを特定する。そして、該当するカテゴリに応じて、オフセットを加減算することで、画素系列の平滑化処理を行う。
【００２２】
次に、バンドオフセット処理の概要について説明する。バンドオフセット処理では、画素値の階調（即ち、０からビット深度に応じて表現可能な最大値）を３２個のバンドに分割し、その中から連続する４個のバンドに属する画素に対して、バンドごとに設定したオフセット値によって画素値を変更（加減算）する。
【００２３】
例えば、図２は、バンドオフセット処理の概要について説明するための説明図であり、ビット深度が８ビットの場合を示している。なお、Ｈ．２６５／ＨＥＶＣでは、画素のビット深度として、８ビット（画素値が０〜２５５）と１０ビット（画素値が０〜１０２３）とを利用できる。即ち、図２に示すビット深度が８ビットの場合の例では、画素値０〜２５５を３２のバンドに分割しており、分割された０〜３１のバンドのうち、バンド３〜６の４つのバンドが選択された場合を示している。
【００２４】
以上のように、サンプル適応オフセットフィルタでは、ＣＴＵごとに、上記に説明したエッジオフセット処理とバンドオフセット処理とのうちいずれかを選択し、選択した処理に応じて該当する画素値に対してオフセットを加減算することで平滑化処理を施す。
【００２５】
＜２．第１の実施形態＞
［２−１．画像符号化装置の全体的な構成例］
以下に、本開示の第１の実施形態に係る画像符号化装置について説明する。まず、図３を参照して、本実施形態に係る画像符号化装置１の構成の一例について説明する。図３は、第１の実施形態に係る画像符号化装置１の構成の一例を示したブロック図である。図１に示すように、画像符号化装置１は、並び替えバッファ１１と、減算部１３と、直交変換部１４と、量子化部１５と、可逆符号化部１６と、蓄積バッファ１７と、レート制御部１８と、逆量子化部２１と、逆直交変換部２２と、加算部２３と、ループフィルタ２４と、フレームメモリ２５と、選択部２６及び２７と、イントラ予測部３０と、インター予測部３５とを含む。
【００２６】
並び替えバッファ１１は、一連の画像データに含まれる画像を並び替える。並び替えバッファ１１は、符号化処理に係るＧＯＰ（Group  of  Pictures）構造に応じて画像を並び替えた後、並び替え後の画像データを減算部１３、イントラ予測部３０、インター予測部３５及びループフィルタ２４へ出力する。
【００２７】
減算部１３には、並び替えバッファ１１から入力される画像データ、及び後に説明するイントラ予測部３０又はインター予測部３５から入力される予測画像データが供給される。減算部１３は、並び替えバッファ１１から入力される画像データと予測画像データとの差分である予測誤差データを算出し、算出した予測誤差データを直交変換部１４へ出力する。
【００２８】
直交変換部１４は、減算部１３から入力される予測誤差データについて直交変換を行う。直交変換部１４により実行される直交変換は、例えば、離散コサイン変換（Discrete  Cosine  Transform：ＤＣＴ）又はカルーネン・レーベ変換などであってよい。直交変換は、ＣＵを分割することにより形成されるＴＵ（変換単位）の各々について実行される。ＴＵのサイズは、４×４画素、８×８画素、１６×１６画素及び３２×３２画素から適応的に選択される。直交変換部１４は、直交変換処理により取得される変換係数データを量子化部１５へ出力する。
【００２９】
量子化部１５には、直交変換部１４から入力される変換係数データ、及び後に説明するレート制御部１８からのレート制御信号が供給される。量子化部１５は、レート制御信号に従って決定される量子化ステップで変換係数データを量子化する。量子化部１５は、量子化後の変換係数データ（以下、量子化データという）を可逆符号化部１６及び逆量子化部２１へ出力する。なお、この量子化データが、「ビットストリーム」の一例に相当する。
【００３０】
可逆符号化部１６は、量子化部１５から入力される量子化データについて可逆符号化処理を行うことにより、符号化ストリームを生成する。また、可逆符号化部１６は、デコーダにより参照される様々なパラメタを符号化して、符号化されたパラメタを符号化ストリームのヘッダ領域に挿入する。可逆符号化部１６により符号化されるパラメタは、Quad-Tree構造を特定する上述したパラメタ、並びに後に説明するイントラ予測に関する情報及びインター予測に関する情報を含み得る。そして、可逆符号化部１６は、生成した符号化ストリームを蓄積バッファ１７へ出力する。
【００３１】
蓄積バッファ１７は、可逆符号化部１６から入力される符号化ストリームを半導体メモリなどの記憶媒体を用いて一時的に蓄積する。そして、蓄積バッファ１７は、蓄積した符号化ストリームを、伝送路の帯域に応じたレートで、図示しない伝送部（例えば、通信インタフェース又は周辺機器との接続インタフェースなど）へ出力する。
【００３２】
レート制御部１８は、蓄積バッファ１７の空き容量を監視する。そして、レート制御部１８は、蓄積バッファ１７の空き容量に応じてレート制御信号を生成し、生成したレート制御信号を量子化部１５へ出力する。例えば、レート制御部１８は、蓄積バッファ１７の空き容量が少ない時には、量子化データのビットレートを低下させるためのレート制御信号を生成する。また、例えば、レート制御部１８は、蓄積バッファ１７の空き容量が十分大きい時には、量子化データのビットレートを高めるためのレート制御信号を生成する。
【００３３】
逆量子化部２１、逆直交変換部２２及び加算部２３は、ローカルデコーダを構成する。なお、当該ローカルデコーダが、量子化データを復元して復号画像データを生成する「複合部」の一例に相当する。
【００３４】
逆量子化部２１は、量子化部１５により使用されたものと同じ量子化ステップで量子化データを逆量子化し、変換係数データを復元する。そして、逆量子化部２１は、復元した変換係数データを逆直交変換部２２へ出力する。
【００３５】
逆直交変換部２２は、逆量子化部２１から入力される変換係数データについて逆直交変換処理を行うことにより、予測誤差データを復元する。直交変換と同様、逆直交変換は、ＴＵごとに実行される。そして、逆直交変換部２２は、復元した予測誤差データを加算部２３へ出力する。
【００３６】
加算部２３は、逆直交変換部２２から入力される復元された予測誤差データとイントラ予測部３０又はインター予測部３５から入力される予測画像データとを加算することにより、復号画像データ（リコンストラクト画像）を生成する。そして、加算部２３は、生成した復号画像データをループフィルタ２４及びフレームメモリ２５へ出力する。
【００３７】
ループフィルタ２４は、画質の向上を目的とする、デブロックフィルタ（ＤＦ）、サンプル適応オフセット（ＳＡＯ）フィルタ及び適応ループフィルタ（ＡＬＦ）などのフィルタ群を含む。ループフィルタ２４は、加算部２３から入力される復号画像データを、並び替えバッファ１１から供給される原画像データに基づきフィルタリング処理を施し、フィルタリング後の復号画像データをフレームメモリ２５へ出力する。なお、ループフィルタ２４の詳細については別途後述する。
【００３８】
フレームメモリ２５は、加算部２３から入力されるフィルタリング前の復号画像データ、及びループフィルタ２４から入力されるフィルタリング後の復号画像データを記憶媒体を用いて記憶する。
【００３９】
選択部２６は、イントラ予測のために使用されるフィルタリング前の復号画像データをフレームメモリ２５から読み出し、読み出した復号画像データを参照画像データとしてイントラ予測部３０に供給する。また、選択部２６は、インター予測のために使用されるフィルタリング後の復号画像データをフレームメモリ２５から読み出し、読み出した復号画像データを参照画像データとしてインター予測部３５に供給する。
【００４０】
選択部２７は、イントラ予測モードにおいて、イントラ予測部３０から出力されるイントラ予測の結果としての予測画像データを減算部１３へ出力すると共に、イントラ予測に関する情報を可逆符号化部１６へ出力する。また、選択部２７は、インター予測モードにおいて、インター予測部３５から出力されるインター予測の結果としての予測画像データを減算部１３へ出力すると共に、インター予測に関する情報を可逆符号化部１６へ出力する。選択部２７は、イントラ予測モードとインター予測モードとを、コストの大きさに応じて切り替える。
【００４１】
イントラ予測部３０は、原画像データ及び復号画像データに基づいて、ＣＵを分割することにより形成されるＰＵ（予測単位）ごとにイントラ予測処理を行う。例えば、イントラ予測部３０は、予測モードセット内の各候補モードによる予測結果を所定のコスト関数を用いて評価する。次に、イントラ予測部３０は、コストが最小となる予測モード、即ち圧縮率が最も高くなる予測モードを、最適な予測モードとして選択する。また、イントラ予測部３０は、当該最適な予測モードに従って予測画像データを生成する。そして、イントラ予測部３０は、選択した最適な予測モードを表す予測モード情報を含むイントラ予測に関する情報、コスト、及び予測画像データを、選択部２７へ出力する。
【００４２】
インター予測部３５は、原画像データ及び復号画像データに基づいて、ＣＵを分割することにより形成されるＰＵごとにインター予測処理を行う。例えば、インター予測部３５は、予測モードセット内の各候補モードによる予測結果を所定のコスト関数を用いて評価する。次に、インター予測部３５は、コストが最小となる予測モード、即ち圧縮率が最も高くなる予測モードを、最適な予測モードとして選択する。また、インター予測部３５は、当該最適な予測モードに従って予測画像データを生成する。そして、インター予測部３５は、選択した最適な予測モードを表す予測モード情報と動き情報とを含むインター予測に関する情報、コスト、及び予測画像データを、選択部２７へ出力する。
【００４３】
［２−２．ループフィルタの構成例］
次に、図４を参照して、本実施形態に係るループフィルタ２４の構成の一例について説明する。図４は、本実施形態に係るループフィルタ２４の構成の一例を示したブロック図である。図４に示すように、ループフィルタ２４は、原画像保持部１００と、デブロックフィルタ２００と、サンプル適応オフセット（ＳＡＯ）フィルタ３００と、適応ループフィルタ４００とを含む。
【００４４】
原画像保持部１００は、並び替えバッファ１１からループフィルタ２４に供給される原画像データを保持するための保持部である。ループフィルタ２４内の各構成は、原画像保持部１００に保持された原画像データを適宜参照することで、各々のフィルタ処理を実行する。
【００４５】
また、逆量子化部２１、逆直交変換部２２及び加算部２３（即ち、ローカルデコーダ）により復号された復号画像データ（リコンストラクト画像）は、まず、デブロックフィルタ２００に供給される。
【００４６】
デブロックフィルタ２００は、適宜デブロックフィルタ処理を行うことにより復号画像データのブロック歪を除去する。なお、本説明では、デブロックフィルタ処理の詳細な説明については省略する。デブロックフィルタ２００は、そのフィルタ処理結果をサンプル適応オフセットフィルタ３００に出力する。
【００４７】
サンプル適応オフセットフィルタ３００は、デブロックフィルタ２００によるフィルタ後の復号画像データに対して、ＣＴＵごとに、適用するＳＡＯのモードと、適用するオフセット値とを決定する。
【００４８】
なお、ＳＡＯのモードとは、図１及び図２に示したエッジオフセットとバンドオフセットのうち、いずれが選択されたかを示している。また、エッジオフセットが選択された場合には、ＳＡＯのモードは、図１に示したエッジオフセットのクラスＥＯ＿０〜ＥＯ＿３とのうちどのクラスが選択され、当該クラスに対応してカテゴリ０〜４のうちいずれのカテゴリが選択されたかを示している。また、バンドオフセットが選択された場合には、ＳＡＯのモードは、図２に示したバンドオフセットの各バンドのうちどのバンドが選択されたかを示している。
【００４９】
そして、サンプル適応オフセットフィルタ３００は、決定したモード及びオフセット値に基づき、復号画像データに対してＣＴＵごとにフィルタ処理（以降では、「ＳＡＯ処理」と呼ぶ場合がある）を施す。
【００５０】
特に、本実施形態に係るサンプル適応オフセットフィルタ３００は、復号画像データの復号元である量子化データを生成する際の量子化ステップ（ＱＰ：Quantization  Parameter）に基づき、ＳＡＯ処理の処理負荷を軽減する。なお、サンプル適応オフセットフィルタ３００が、復号画像データの復号元である量子化データの量子化ステップを取得できれば、その取得元は特に限定されない。具体的な一例として、サンプル適応オフセットフィルタ３００は、量子化部１５から、当該量子化ステップを取得してもよい。なお、本実施形態に係るサンプル適応オフセットフィルタ３００の詳細については別途後述する。
【００５１】
サンプル適応オフセットフィルタ３００は、ＳＡＯ処理後の復号画像データを、適応ループフィルタ４００に出力する。また、サンプル適応オフセットフィルタ３００は、ＣＴＵごとに決定したＳＡＯのモードとオフセット値とを、符号化パラメタとして可逆符号化部１６に出力する。この出力を受けて、可逆符号化部１６は、生成した符号化ストリームに対して、供給されたＳＡＯのモードとオフセット値とを符号化して、当該符号化ストリームのヘッダ領域に挿入する。
【００５２】
適応ループフィルタ４００は、サンプル適応オフセットフィルタ３００から供給されるＳＡＯ処理後の復号画像データに対して、適応ループフィルタ（ＡＬＦ:AdaptiveLoop  Filter)処理を行う。適応ループフィルタ４００においては、フィルタとして、例えば、２次元のウィナーフィルタ（Wiener  Filter）が用いられる。もちろん、ウィナーフィルタ以外のフィルタが用いられてもよい。
【００５３】
適応ループフィルタ４００は、タップサイズの異なる複数のフィルタを有しており、適応ループフィルタタ処理を行う。適応ループフィルタ４００は、フィルタ処理結果をフレームメモリ２５に出力する。
【００５４】
以上、図４を参照して、本実施形態に係るループフィルタ２４の構成の一例について説明した。
【００５５】
［２−３．一連の処理の流れ］
次に、図５及び図６を参照して、本実施形態に係る画像符号化装置の一連の処理の流れについて説明する。図５及び図６は、本実施形態に係る画像符号化装置の一連の処理の流れについて説明するための説明図である。
【００５６】
例えば、図５は、画像符号化装置が、ピクチャＰ１を複数のブロック（ＣＴＵ）に分割して、当該ブロックごとに符号化する処理の流れを示している。図５に示すように、画像符号化装置は、ピクチャＰ１を、左上から右下に向けてラスタスキャンすることで、固定ブロックサイズの複数のＣＴＵに分割して処理する。即ち、図５に示す例の場合には、画像符号化装置は、ブロックＵ１１、Ｕ１２、…、Ｕ１ｍ、Ｕ２１、Ｕ２２、Ｕ２３、Ｕ２４の順で、ピクチャＰ１を分割して処理する。
【００５７】
なお、以下の説明では、特に、ブロックＵ２３を処理の対象とした場合の動作に着目して、当該ブロックＵ２３の復号画像データが生成され、ループフィルタ２４によりフィルタ処理が施されるまでの、画像符号化装置の一連の処理の流れについて説明する。なお、この場合には、ブロックＵ１１〜Ｕ１ｍ、Ｕ２１、及びＵ２２は、処理済のブロックとなり、当該処理済のブロックのうち、特にブロックＵ１３及びＵ２２は、処理対象ブロックＵ２３の隣接ブロックとなる。
【００５８】
次に、図６を図３及び図４とあわせて参照して、ピクチャＰ１中の一のＣＴＵの復号画像データが生成され、ループフィルタ２４によりフィルタ処理が施されるまで処理の流れについて説明する。図６は、本実施形態に係る画像符号化装置の一連の処理の流れの一例を示したフローチャートであり、特に、ピクチャＰ１中の一のＣＴＵの復号画像データが生成され、ループフィルタ２４によりフィルタ処理が施されるまで処理の流れを示している。なお、本説明では、復号画像データの生成に着目するものとし、量子化データを可逆符号化することで符号化ストリームを生成して出力する処理については、説明は省略する。
【００５９】
（ステップＳ１１）
並び替えバッファ１１（図３参照）は、一連の画像データに含まれる画像を並び替える。並び替えバッファ１１は、符号化処理に係るＧＯＰ（Group  of  Pictures）構造に応じて画像を並び替えた後、並び替え後の画像データを減算部１３、イントラ予測部３０、インター予測部３５及びループフィルタ２４へ出力する。
【００６０】
また、選択部２６は、イントラ予測のために使用されるフィルタリング前の復号画像データをフレームメモリ２５から読み出し、読み出した復号画像データを参照画像データとしてイントラ予測部３０に供給する。また、選択部２６は、インター予測のために使用されるフィルタリング後の復号画像データをフレームメモリ２５から読み出し、読み出した復号画像データを参照画像データとしてインター予測部３５に供給する。
【００６１】
イントラ予測部３０は、供給された原画像データ及び復号画像データに基づいて、ＣＵを分割することにより形成されるＰＵ（予測単位）ごとにイントラ予測処理を行う。
【００６２】
なお、このとき、イントラ予測部３０は、図５におけるブロックＵ２３をイントラ予測処理の対象とする場合には、当該ブロックＵ２３の原画像データと、処理済の隣接ブロックＵ１３及びＵ２２の復号画像データとに基づきイントラ予測処理を実行する。
【００６３】
イントラ予測部３０は、予測モードセット内の各候補モードによる予測結果を所定のコスト関数を用いて評価し、当該評価結果に基づき最適な予測モードとして選択する。また、イントラ予測部３０は、当該最適な予測モードに従って予測画像データを生成する。そして、イントラ予測部３０は、選択した最適な予測モードを表す予測モード情報を含むイントラ予測に関する情報、コスト、及び予測画像データを、選択部２７へ出力する。
【００６４】
また、インター予測部３５は、原画像データ及び復号画像データに基づいて、ＣＵを分割することにより形成されるＰＵごとにインター予測処理を行う。
【００６５】
インター予測部３５は、予測モードセット内の各候補モードによる予測結果を所定のコスト関数を用いて評価し、当該評価結果に基づき最適な予測モードとして選択する。また、インター予測部３５は、当該最適な予測モードに従って予測画像データを生成する。そして、インター予測部３５は、選択した最適な予測モードを表す予測モード情報と動き情報とを含むインター予測に関する情報、コスト、及び予測画像データを、選択部２７へ出力する。
【００６６】
選択部２７は、イントラ予測モードにおいて、イントラ予測部３０から出力されるイントラ予測の結果としての予測画像データを減算部１３へ出力すると共に、イントラ予測に関する情報を可逆符号化部１６へ出力する。また、選択部２７は、インター予測モードにおいて、インター予測部３５から出力されるインター予測の結果としての予測画像データを減算部１３へ出力すると共に、インター予測に関する情報を可逆符号化部１６へ出力する。選択部２７は、イントラ予測モードとインター予測モードとを、コストの大きさに応じて切り替える。
【００６７】
（ステップＳ１２）
減算部１３には、並び替えバッファ１１から入力される画像データと、イントラ予測部３０又はインター予測部３５から入力される予測画像データとが供給される。減算部１３は、並び替えバッファ１１から入力される画像データと予測画像データとの差分である予測誤差データを算出し、算出した予測誤差データを直交変換部１４へ出力する。
【００６８】
（ステップＳ１３）
直交変換部１４は、減算部１３から入力される予測誤差データについて直交変換を行う。直交変換部１４は、直交変換処理により取得される変換係数データを量子化部１５へ出力する。
【００６９】
量子化部１５には、直交変換部１４から入力される変換係数データ、及びレート制御部１８からのレート制御信号が供給される。量子化部１５は、レート制御信号に従って決定される量子化ステップで変換係数データを量子化する。量子化部１５は、量子化後の変換係数データ（即ち、量子化データ）を可逆符号化部１６及び逆量子化部２１へ出力する。
【００７０】
（ステップＳ１４）
逆量子化部２１は、量子化部１５により使用されたものと同じ量子化ステップで量子化データを逆量子化し、変換係数データを復元する。そして、逆量子化部２１は、復元した変換係数データを逆直交変換部２２へ出力する。
【００７１】
逆直交変換部２２は、逆量子化部２１から入力される変換係数データについて逆直交変換処理を行うことにより、予測誤差データを復元する。直交変換と同様、逆直交変換は、ＴＵごとに実行される。そして、逆直交変換部２２は、復元した予測誤差データを加算部２３へ出力する。
【００７２】
（ステップＳ１５）
加算部２３は、逆直交変換部２２から入力される復元された予測誤差データとイントラ予測部３０又はインター予測部３５から入力される予測画像データとを加算することにより、復号画像データ（リコンストラクト画像）を生成する。そして、加算部２３は、生成した復号画像データをループフィルタ２４及びフレームメモリ２５へ出力する。
【００７３】
（ステップＳ１６）
ループフィルタ２４に出力された復号画像データは、デブロックフィルタ２００（図４参照）に供給される。デブロックフィルタ２００は、適宜デブロックフィルタ処理を行うことにより復号画像データのブロック歪を除去する。デブロックフィルタ２００は、そのフィルタ処理結果をサンプル適応オフセットフィルタ３００に出力する。
【００７４】
（ステップＳ１７）
サンプル適応オフセットフィルタ３００は、デブロックフィルタ２００によるフィルタ後の復号画像データに対して、ＣＴＵごとに、適用するＳＡＯのモードと、適用するオフセット値とを決定する。そして、サンプル適応オフセットフィルタ３００は、決定したモード及びオフセット値に基づき、復号画像データに対してＣＴＵごとにフィルタ処理（即ち、ＳＡＯ処理）を施す。即ち、ステップＳ１７に示す契機において、図５に示した処理対象ブロックＵ２３に対して、ＳＡＯ処理が施されることとなる。
【００７５】
サンプル適応オフセットフィルタ３００は、ＳＡＯ処理後の復号画像データを、適応ループフィルタ４００に出力する。また、サンプル適応オフセットフィルタ３００は、ＣＴＵごと（即ち、ＬＣＵごと）に決定したＳＡＯのモードとオフセット値とを、符号化時のパラメタとして可逆符号化部１６に出力する。この出力を受けて、可逆符号化部１６は、生成した符号化ストリームに対して、供給されたＳＡＯのモードとオフセット値とを符号化して、当該符号化ストリームのヘッダ領域に挿入する。
【００７６】
（ステップＳ１８）
適応ループフィルタ４００は、サンプル適応オフセットフィルタ３００から供給されるＳＡＯ処理後の復号画像データに対して、適応ループフィルタ（ＡＬＦ:AdaptiveLoop  Filter)処理を行う。
【００７７】
（ステップＳ１９）
適応ループフィルタ４００は、フィルタ処理結果をフレームメモリ２５に出力する。以上のようにして、図５に示したブロックＵ２３の復号画像データが生成され、フレームメモリ２５に記憶される。なお、フレームメモリ２５に記憶されたブロックＵ２３の復号画像データは、例えば、図５に示す未処理ブロックのうち、当該ブロックＵ２３に隣接するブロック（例えば、ブロックＵ２４）のイントラ予測及びインター予測に用いられる。
【００７８】
以上、図５及び図６を参照して、本実施形態に係る画像符号化装置の一連の処理の流れについて説明した。
【００７９】
［２−４．サンプル適応オフセットフィルタ］
＜＜２−４−１．サンプル適応オフセットフィルタの構成例＞＞
次に、本実施形態に係るサンプル適応オフセットフィルタ３００の詳細について説明する。まず、図７を参照して、本実施形態に係るサンプル適応オフセットフィルタ３００の構成の一例について説明する。図７は、第１の実施形態に係るサンプル適応オフセットフィルタ３００の構成の一例を示したブロック図である。
【００８０】
図７に示すように、本実施形態に係るサンプル適応オフセットフィルタ３００は、制御部３１０と、フィルタ処理部３９０とを含む。また、制御部３１０は、解析部３２０と、切り替え判定部３６０とを含む。なお、制御部３１０が、「設定部」の一例に相当する。
【００８１】
切り替え判定部３６０は、復号画像データのスライスごとに、輝度と色度とのそれぞれについてＳＡＯ処理の適用の可否を判定し、判定結果に基づき解析部３２０の動作を制御する。
【００８２】
具体的には、切り替え判定部３６０は、処理対象のスライスが、Ｉスライス及びＰスライスのいずれかの場合には、当該スライスに対するＳＡＯ処理の適用を解析部３２０に指示する。
【００８３】
また、切り替え判定部３６０は、処理対象のスライスがＢスライスの場合には、当該Ｂスライスの直前のスライス（即ち、ＩスライスまたはＰスライス）において、ＳＡＯ処理が適用されたＣＴＵの数（以降では、「モード数」と呼ぶ場合がある）に応じて、当該Ｂスライスに対してＳＡＯ処理の適用の可否を判定する。
【００８４】
具体的な一例として、切り替え判定部３６０は、直前のスライスにおいてモード数が所定の閾値ＴＨ１１以上（例えば、半数以上）の場合には、処理対象のＢスライスに対するＳＡＯ処理の適用を解析部３２０に指示する。一方で、直前のスライスにおいてモード数が閾値ＴＨ１１未満の場合には、切り替え判定部３６０は、処理対象のＢスライスに対するＳＡＯ処理の適用を制限する（即ち、非適用とする）ように解析部３２０に指示する。
【００８５】
また、切り替え判定部３６０は、スライスごとのＳＡＯ処理の適用の可否を、符号化時のパラメタとして可逆符号化部１６に出力する。なお、スライスごとのＳＡＯ処理の適用の可否を制御するためのパラメタの一例として、輝度に対応した「slice_sao_luma_flag」と、色度に対応した「slice_sao_chroma_flag」とが挙げられる。
【００８６】
解析部３２０は、統計量取得部３３０と、モード判定部３４０とを含む。解析部３２０は、原画像保持部１００（図４参照）に保持された原画像データと、デブロックフィルタ２００から出力される復号画像データとに基づき、ＳＡＯ処理を施すためのＳＡＯのモードとオフセット値とをＣＴＵごと（即ち、ＬＣＵごと）に決定する。なお、解析部３２０の処理については、切り替え判定部３６０からの指示に基づき、スライス単位で適用の可否が制御される。以下に、解析部３２０の各構成の詳細について説明する。
【００８７】
統計量取得部３３０は、原画像データと復号画像データとに基づきＳＡＯのモードとオフセットとを特定するための統計量を算出する。
【００８８】
具体的な一例として、統計量取得部３３０は、復号画像データ中の画素単位で、図１に示したエッジオフセットのクラスＥＯ＿０〜ＥＯ＿３それぞれについて、対象画素と隣接画素との対応関係を解析し、カテゴリ０〜４それぞれの出現頻度を計上する。また、このとき、統計量取得部３３０は、計上したカテゴリごとに、復号画像データと原画像データとの間の画素値の差を累積計上する。そして、統計量取得部３３０は、クラスＥＯ＿０〜ＥＯ＿３それぞれについて計上されたカテゴリ０〜４それぞれの出現頻度と、当該カテゴリごとに累積計上された画素値とを、統計量として算出する。
【００８９】
また、統計量取得部３３０は、図２に示したバンドオフセットのバンド０〜３１それぞれについて、対応する画素の頻度を計上し、その画素における復号画像データと原画像データとの間の画素値の差をバンドごとに累積計上する。そして、統計量取得部３３０は、バンドごとに計上した頻度と、バンドごとに累積計上した画素値の差とを、統計量として算出する。
【００９０】
統計量取得部３３０は、以上のようにして算出した統計量を、モード判定部３４０に出力する。
【００９１】
モード判定部３４０は、オフセット判定部３５０を含む。モード判定部３４０は、統計量取得部３３０から供給される統計量に基づき、復号画像データ中のＣＴＵ単位でＳＡＯの各モードについて、オフセット値と当該オフセット値に対応するコストとを、オフセット判定部３５０に算出させる。
【００９２】
具体的には、モード判定部３４０は、エッジオフセットの各クラスＥＯ＿０〜ＥＯ＿３と各カテゴリ１〜４との組み合わせのそれぞれについて、オフセット値と当該オフセット値に対応するコストとを、オフセット判定部３５０に算出させる。同様に、モード判定部３４０は、バンドオフセットの各バンドそれぞれについて、オフセット値と当該オフセット値に対応するコストとを、オフセット判定部３５０に算出させる。また、モード判定部３４０は、ＳＡＯ処理を適用しない場合のコストについても算出する。
【００９３】
オフセット判定部３５０は、モード判定部３４０から指示されたモードに対し、オフセット値の候補それぞれについてコストを算出する。そして、オフセット判定部３５０は、算出した各コストを比較することで、符号化効率を最も向上させることが可能なオフセット値と当該オフセット値に対応するコストとを特定する。なお、オフセット判定部３５０の詳細については別途後述する。
【００９４】
モード判定部３４０は、ＳＡＯの各モードについて算出された各コストを比較し、当該比較結果に基づき、符号化効率を最も向上させることが可能なＳＡＯのモードと、当該モードに対応するオフセット値とをＣＴＵごと（即ち、ＬＣＵごと）に特定する。そして、モード判定部３４０は、ＣＴＵごとに特定したモードと、当該モードに対応するオフセット値とを、後述するフィルタ処理部３９０に出力する。なお、このときモード判定部３４０は、コストの比較の結果として、ＳＡＯ処理を適用しないと判定した場合には、対象となるＣＴＵに対してＳＡＯ処理を適用しないようにフィルタ処理部３９０に指示する。
【００９５】
また、モード判定部３４０は、ＣＴＵごとに特定したＳＡＯのモードとオフセット値とを、符号化時のパラメタとして可逆符号化部１６に出力する。なお、当該符号化時のパラメタとしては、例えば、エッジオフセットとバンドオフセットとのいずれかを示すパラメタとして、輝度に対応した「sao_type_idx_luma」や、色度に対応した「sao_typ_idx_chroma」が挙げられる。また、エッジオフセットが適用された場合に、エッジオフセットのクラスを示すパラメタとして、輝度に対応した「sao_eo_class_luma」や、色度に対応した「sao_eo_class_chroma」が挙げられる。また、バンドオフセットが適用された場合に、バンドの位置を示すパラメタとして、「sao_band_position」が挙げられる。また、オフセット値を通知するためのパラメタとして、オフセット値の絶対値を示す「sao_offset_abs」と、オフセット値の正負を示す「sao_offset_sign」が挙げられる。
【００９６】
フィルタ処理部３９０は、復号画像データの各ＣＴＵに対して、モード判定部３４０から供給されるＳＡＯのモードとオフセット値とに基づいてＳＡＯ処理を施す。なお、モード判定部３４０から、ＳＡＯ処理を適用しない旨が指示された場合には、フィルタ処理部３９０は、対象となるＣＴＵに対してＳＡＯ処理を施さない。また、切り替え判定部３６０の判定結果に基づき、ＳＡＯ処理を適用しないと判定されたスライスについても同様に、フィルタ処理部３９０は、当該判定結果に基づき対応するスライスに対してＳＡＯ処理を施さないことは言うまでもない。
【００９７】
そして、フィルタ処理部３９０は、ＳＡＯ処理が施された復号画像データを、適応ループフィルタ４００（図４参照）に出力する。
【００９８】
＜＜２−４−２．サンプル適応オフセットフィルタの処理の流れ＞＞
次に、図８を参照して、本実施形態に係るサンプル適応オフセットフィルタの一連の処理の流れの一例について説明する。図８は、本実施形態に係るサンプル適応オフセットフィルタの一連の処理の流れの一例を示したフローチャートである。
【００９９】
（ステップＳ１００）
まず、切り替え判定部３６０は、復号画像データのスライスごとに、輝度と色度とのそれぞれについてＳＡＯ処理の適用の可否を判定し、判定結果に基づき解析部３２０の動作を制御する。なお、切り替え判定部３６０による、ＳＡＯ処理の適用の可否の判定に係る動作については、詳細を別途後述する。
【０１００】
（ステップＳ５００）
スライスに対してＳＡＯ処理が適用されると判定された場合には（ステップＳ２００、ＹＥＳ）、解析部３２０は、原画像データと（デブロックフィルタ処理後の）復号画像データとに基づき、ＳＡＯ処理を施すためのＳＡＯのモードとオフセット値とをＣＴＵごとに決定する。
【０１０１】
具体的には、統計量取得部３３０は、原画像データと復号画像データとに基づきＳＡＯのモードとオフセットとを特定するための統計量を算出し、算出した統計量を、モード判定部３４０に出力する。
【０１０２】
モード判定部３４０は、統計量取得部３３０から供給される統計量に基づき、復号画像データ中のＣＴＵ単位でＳＡＯの各モードについて、オフセット値として取り得る値のそれぞれにおけるコストをオフセット判定部３５０に算出させる。
【０１０３】
モード判定部３４０は、ＳＡＯの各モードについて算出された、各コストを比較し、当該比較結果に基づき、符号化効率を最も向上させることが可能なＳＡＯのモードをＣＴＵごと（即ち、ＬＣＵごと）に特定する。そして、モード判定部３４０は、ＣＴＵごとに特定したモードと、当該モードに対応するオフセット値とを、後述するフィルタ処理部３９０に出力する。また、モード判定部３４０は、ＣＴＵごとに特定したＳＡＯのモードとオフセット値とを、符号化時のパラメタとして可逆符号化部１６に出力する。
【０１０４】
（ステップＳ６００）
フィルタ処理部３９０は、復号画像データの各ＣＴＵに対して、モード判定部３４０から供給されるＳＡＯのモードとオフセット値とに基づいてＳＡＯ処理を施す。
【０１０５】
（ステップＳ７００）
以上の処理を、対象となるスライス中の一連のＣＴＵについて実行し（ステップＳ７００、ＮＯ）、一連のＣＴＵに対する処理の完了をもって（ステップＳ７００、ＹＥＳ）、対象となるスライスに対するＳＡＯ処理の適用が完了する。
【０１０６】
（ステップＳ２００）
なお、対象となるスライスに対してＳＡＯ処理を適用しない場合（ステップＳ２００、ＮＯ）には、当該スライスに対して、ステップＳ３００〜Ｓ７００で示された各処理は実行されない。
【０１０７】
次に、図９を参照して、図８においてステップＳ１００で示された処理、即ち、切り替え判定部３６０による、スライスごとのＳＡＯ処理の適用の可否の判定に係る処理の一例について説明する。図９は、本実施形態に係る切り替え判定部による、スライスごとのＳＡＯ処理の適用の可否の判定に係る処理の一例について示したフローチャートである。
【０１０８】
（ステップＳ１０１、Ｓ１０４）
切り替え判定部３６０は、処理対象のスライスが、Ｂスライスではない場合、即ち、Ｉスライス及びＰスライスのいずれかの場合には（ステップＳ１０１、ＮＯ）、当該スライスに対するＳＡＯ処理の適用を解析部３２０に指示する（ステップＳ１０４）。
【０１０９】
（ステップＳ１０１、Ｓ１０２）
また、切り替え判定部３６０は、処理対象のスライスがＢスライスの場合には（ステップＳ１０１、ＹＥＳ）、当該Ｂスライスの直前のスライス（即ち、ＩスライスまたはＰスライス）において、ＳＡＯ処理が適用されたＣＴＵの数（モード数）を取得する（ステップＳ１０２）。
【０１１０】
（ステップＳ１０３、Ｓ１０４）
切り替え判定部３６０は、取得したモード数が、所定の閾値ＴＨ１１以上の場合には（ステップＳ１０３、ＮＯ）、当該スライスに対するＳＡＯ処理の適用を解析部３２０に指示する（ステップＳ１０４）。
【０１１１】
（ステップＳ１０３、Ｓ１０５）
一方で、切り替え判定部３６０は、取得したモード数が、所定の閾値ＴＨ１１未満の場合には（ステップＳ１０３、ＹＥＳ）、当該スライスに対するＳＡＯ処理の適用を制限する（即ち、非適用とする）ように解析部３２０に指示する（ステップＳ１０５）。
【０１１２】
以上のようにして、切り替え判定部３６０は、スライスごとにＳＡＯ処理の適用の可否を判定し、判定結果に基づき解析部３２０の動作を制御する。
【０１１３】
以上、図８及び図９を参照して、本実施形態に係るサンプル適応オフセットフィルタ３００の一連の処理の流れの一例について説明した。
【０１１４】
［２−５．オフセット判定部］
次に、オフセット判定部３５０の詳細について説明する。オフセット判定部３５０は、統計量取得部３３０で生成された統計量に基づき、オフセット値として取り得る値それぞれについてコストを算出し、算出した各コストを比較することで、符号化効率を最も向上させることが可能なオフセット値を特定する。
【０１１５】
なお、前述したように、Ｈ．２６５／ＨＥＶＣでは、画素のビット深度として、８ビット（画素値が０〜２５５）と１０ビット（画素値が０〜１０２３）とを利用でき、各ビット深度に応じて、適用可能なオフセット値の候補が異なる。具体的には、ビット深度が８ビットの場合には、オフセット値のとり得る値は０〜７となり、ビット深度が１０ビットの場合には、オフセット値のとり得る値は０〜３１となる。
【０１１６】
そのため、従来の方式では、画素のビット深度が１０ビットの場合には、ビット深度が８ビットの場合に比べてオフセット値の候補数が４倍となるため、コスト計算の処理量が増加し、回路規模や消費電力の増加の要因となる場合がある。そこで、本説明では、本実施形態に係るオフセット判定部３５０の特徴をわかりやすくするために、まず、従来の方式に基づくオフセット判定部の概要について比較例として説明したうえで、本実施形態に係るオフセット判定部３５０について説明する。
【０１１７】
＜＜２−５−１．オフセット判定部の比較例＞＞
図１０〜図１２を参照して、比較例に係るオフセット判定部について説明する。なお、以降では、比較例に係るオフセット判定部と、本実施形態に係るオフセット判定部３５０とを明示的に区別する場合には、比較例に係るオフセット判定部を、「オフセット判定部３５０ａ」と記載する場合がある。
【０１１８】
まず、図１０を参照して、比較例に係るオフセット判定部３５０ａの構成の一例について説明する。図１０は、比較例に係るオフセット判定部３５０ａの構成の一例を示したブロック図である。
【０１１９】
図１０に示すように、オフセット判定部３５０ａは、１以上のオフセット測定部３５１と、オフセット決定部３５３とを含む。
【０１２０】
オフセット測定部３５１は、統計量取得部３３０で生成された統計量（例えば、処理対象となる画素の出現頻度や、復号画像データと原画像データとの間の画素値の差）を基に、各オフセット値について、当該オフセット値を適用した場合のコストを算出する。なお、このとき算出されるコストとは、例えば、復号画像データに発生した原画像データとの間の誤差（例えば、量子化誤差）を緩和して原画像データに近づけるために、各オフセット値に基づくオフセット処理に要するデータ量（即ち、デコーダ側に送信するデータ量）等が挙げられる。なお、コスト計算の具体的な内容については、本明細書では詳細な説明は省略する。
【０１２１】
図１０に示す例では、ビット深度が１０ビットの場合のオフセット値０〜３１のそれぞれについてコストを並列に計算するために、オフセット測定部３５１として、Offset[0]測定部〜Offset[31]測定部を設けている。
【０１２２】
例えば、図１１の参照符号ｄ４０で示されたテーブルは、図１０に示した各オフセット測定部３５１（即ち、Offset[0]測定部〜Offset[31]測定部）と、各オフセット値との対応関係を示している。図１１に示すように、Offset[0]測定部は、オフセット値が０の場合におけるコストを計算する。同様に、Offset[1]測定部〜Offset[31]測定部は、それぞれオフセット値１〜３１に対応づけられている。
【０１２３】
即ち、図１０に示す例では、ビット深度が８ビットの場合には、Offset[0]測定部〜Offset[31]測定部のうち、参照符号３５１ａで示された、Offset[0]測定部〜Offset[7]測定部が使用される。また、ビット深度が１０ビットの場合には、参照符号３５１ｂで示された、Offset[0]測定部〜Offset[31]測定部の全てが使用されることとなる。
【０１２４】
オフセット決定部３５３は、各オフセット測定部３５１が算出したコストを比較し、当該比較結果に基づき、オフセット値の候補の中から、コストが最も低いオフセット値を決定する。そして、オフセット決定部３５３は、決定したオフセット値と、当該オフセット値に対応するコストとを出力する。この出力を受けて、モード判定部３４０（図７参照）は、ＳＡＯの各モードについて算出された各コストを比較し、当該比較結果に基づき、符号化効率を最も向上させることが可能なＳＡＯのモードと、当該モードに対応するオフセット値とをＣＴＵごと（即ち、ＬＣＵごと）に特定する。
【０１２５】
次に、図１２を参照して、比較例に係るオフセット判定部３５０ａの一連の処理の流れの一例について説明する。図１２は、比較例に係るオフセット判定部３５０ａの一連の処理の流れの一例を示したフローチャートである。
【０１２６】
（ステップＳ６１１〜Ｓ６１４）
まず、オフセット判定部３５０ａは、カウンタ値であるＣｏｕｎｔを０で初期化する（ステップＳ６１１）。そして、カウンタ値Ｃｏｕｎｔが示すオフセット値の候補についてコストを算出する。例えば、カウンタ値Ｃｏｕｎｔが０の場合には、オフセット判定部３５０ａは、オフセット値「０」のコストを算出する。このとき、図１０に示す例の場合には、各オフセット測定部３５１のうち、Offset[0]測定部がオフセット値「０」のコストを算出することとなる。同様に、カウンタ値Ｃｏｕｎｔが１の場合には、オフセット判定部３５０ａは、オフセット値「１」のコストを算出する（ステップＳ６１３）。コストの算出が完了すると、オフセット判定部３５０ａは、カウンタ値Ｃｏｕｎｔをインクリメントする（ステップＳ６１４）。
【０１２７】
以上のようにして、オフセット判定部３５０ａは、画素のビット深度に応じて、各オフセット値におけるコストを算出する（ステップＳ６１２、ＮＯ）。例えば、ビット深度が８ビットの場合には、オフセット判定部３５０ａは、オフセット値「０」〜「７」のそれぞれについてコストを算出する。また、ビット深度が１０ビットの場合には、オフセット判定部３５０ａは、オフセット値「０」〜「３１」のそれぞれについてコストを算出する。
【０１２８】
（ステップＳ６１５）
ビット深度に応じて各カウンタ値のコストの算出が完了すると（ステップＳ６１２、ＹＥＳ）、オフセット判定部３５０ａは、算出した各オフセット値のコストを比較し、当該比較結果に基づき、コストが最も低いオフセット値を決定する。
【０１２９】
以上、図１０〜図１２を参照して説明したように、画素のビット深度が８ビットの場合は、オフセット値のとり得る値は０〜７となり、オフセット判定部３５０ａは、オフセット値０〜７のそれぞれについて計８回のコスト計算を行うことになる。また、ビット深度が１０ビットの場合には、オフセット値のとり得る値は０〜３１となるため、オフセット判定部３５０ａは、オフセット値０〜３１のそれぞれについて計３２回のコスト計算を行うこととなる。
【０１３０】
即ち、画素のビット深度が１０ビットの場合には、ビット深度が８ビットの場合に比べてオフセット値の候補数が４倍となるため、コスト計算の処理量についても、ビット深度が８ビットの場合の４倍の処理量となる。そのため、ビット深度が１０ビットの画像を処理対象とする場合には、図１２に基づき説明したように、オフセット値それぞれのコスト計算の回数（処理量）が、ビット深度が８ビットの場合に比べて４倍となり、消費電力の増加の要因となり得る。
【０１３１】
また、ビット深度が１０ビットの画像を処理対象とする場合には、図１０に示すように、ビット深度が８ビットの場合に比べて、４倍の数のオフセット測定部３５１（即ち、Offset[0]測定部〜Offset[31]測定部）が必要となり、回路規模が増加する場合が少なからずある。また、ビット深度が１０ビットの画像を処理対象となる場合に、追加で必要となる、オフセット値８〜３１のコストを計算するための回路、即ち、Offset[8]測定部〜Offset[31]測定部については、画素のビット深度が８ビットの場合には使用されない。換言すると、画素のビット深度が８ビットの画像を処理対象とする限りは、Offset[8]測定部〜Offset[31]測定部は冗長な構成となり得る。
【０１３２】
そこで、本実施形態に係るオフセット判定部３５０は、ビット深度が１０ビットの場合に、オフセット値として取り得る値（即ち、０〜３１）の中から当該オフセット値の候補を制限し、制限された候補の中から適用するオフセット値を特定する。このような構成により、本実施形態に係るオフセット判定部３５０は、オフセット値それぞれのコスト計算のための処理量を、ビット深度が８ビットの場合と１０ビットの場合とで共通化して、回路規模や消費電力を低減する。そこで、以下に、本実施形態に係るオフセット判定部３５０の詳細について説明する。
【０１３３】
＜＜２−５−２．オフセット判定部の構成例＞＞
まず、図１３を参照して、本実施形態に係るオフセット判定部３５０の構成の一例について説明する。図１３は、第１の実施形態に係るオフセット判定部３５０の構成の一例について示したブロック図である。
【０１３４】
図１３に示すように、本実施形態に係るオフセット判定部３５０は、候補制御部３５５を備え、オフセット測定部３５１として、Offset[0]測定部〜Offset[7]測定部のみを備える点で、図１０に示した比較例に係るオフセット判定部３５０ａと異なる。そこで、本説明では、本実施形態に係るオフセット判定部３５０の各構成について、主に、オフセット判定部３５０ａと異なる部分に着目して説明する。
【０１３５】
候補制御部３５５は、画素のビット深度と、復号画像データの復号元である量子化データを生成する際の量子化ステップ（ＱＰ）とに基づき、オフセット値の候補を決定し、決定した各候補それぞれを、Offset[0]測定部〜Offset[7]測定部に割り当てる。なお、当該量子化ステップの取得元については、前述した通り特に限定はされない。具体的な一例として、候補制御部３５５は、量子化部１５が、復号画像データの復号元である量子化データを生成する際に適用した量子化ステップを、当該量子化部１５から取得してもよい。
【０１３６】
ここで、量子化ステップと、ＳＡＯ処理のために適用されるオフセット値との関係の傾向について説明する。一般的には、変換係数データ（直交化後の予測誤差データ）を量子化することで量子化データを生成する場合には、量子化ステップが小さいほど、原画像データと復号画像データとの差が小さくなる傾向にある（即ち、量子化誤差が小さくなる傾向にある）。そのため、量子化ステップが小さい場合には、ＳＡＯ処理のために適用するオフセット値として、比較的小さい値が選択される場合が多い。
【０１３７】
また、画像中の画素値の変化する場合（例えば、テクスチャがより細かい画像の場合）には、より大きい量子化ステップが選択される傾向にある。また、量子化ステップが大きいほど、原画像データと復号画像データとの差が大きくなる傾向にある（即ち、量子化誤差が大きくなる傾向にある）。このように量子化誤差が大きい場合には、オフセット値の各候補についてコストを計算しても、近傍に位置する候補間では、算出されるコストの差が大きく変化しない場合が少なからずある。
【０１３８】
以上のような特性を利用して、候補制御部３５５は、画素のビット深度が１０ビットの場合に、オフセット値として取り得る値（即ち、０〜３１）の中から当該オフセット値の候補を、量子化ステップに基づき制限する。そして、候補制御部３５５は、制限されたオフセット値の各候補それぞれを、Offset[0]測定部〜Offset[7]測定部に割り当てる。
【０１３９】
ここで、図１４〜図１６を参照して、オフセット値の各候補と、Offset[0]測定部〜Offset[7]測定部との対応関係の一例について説明する。図１４〜図１６は、オフセット値の各候補と、Offset[0]測定部〜Offset[7]測定部との対応関係を示した制御テーブルの一例について説明するための説明図である。なお、図１４〜図１６において、定数Ｎ（Ｎは、０≦Ｎの整数）は、オフセット値の候補の数（換言すると、オフセット測定部３５１の数）に応じて決まる値であり、Ｎ＋１がオフセット値の候補の数に相当する。
【０１４０】
例えば、図１４に示す制御テーブルｄ５１は、画素のビット深度が８ビットの場合と、画素のビット深度が１０ビットであり、かつ、量子化ステップが第１の閾値ＴＨ２１未満（ＱＰ＜ＴＨ２１）の場合とのいずれかの場合に対応している。
【０１４１】
図１４に示す制御テーブルｄ５１では、Offset[0]測定部〜Offset[N]測定部に対して、オフセット値の候補として０〜Ｎを対応付けている。即ち、候補制御部３５５は、制御テーブルｄ５１に基づき各オフセット測定部３５１にオフセット値の候補を割り当てる場合には、Offset[ｉ]測定部（ｉは、０≦ｉ≦Ｎの整数）には、オフセット値としてｉを割り当ることとなる。例えば、Ｎ＝７の場合には、図１３に示すように、Offset[0]測定部、Offset[1]測定部、…、Offset[7]測定部に対して、オフセット値の候補として０、１、…、７が割り当てられることとなる。
【０１４２】
次に、図１５に示す制御テーブルｄ５２について説明する。制御テーブルｄ５２は、画素のビット深度が１０ビットであり、かつ、量子化ステップが第１の閾値ＴＨ２１より大きく第２の閾値ＴＨ２２以下（ＴＨ２１＜ＱＰ≦ＴＨ２２）の場合に対応している。なお、第２の閾値ＴＨ２２は、第１の閾値ＴＨ２１よりも大きい値であることは言うまでもない。
【０１４３】
図１５に示す制御テーブルｄ５２では、Offset[0]測定部〜Offset[N]測定部に対して、オフセット値の候補として０〜２×Ｎを対応付けている。即ち、候補制御部３５５は、制御テーブルｄ５２に基づき各オフセット測定部３５１にオフセット値の候補を割り当てる場合には、Offset[ｉ]測定部（ｉは、０≦ｉ≦Ｎの整数）には、オフセット値として２×ｉを割り当ることとなる。例えば、Ｎ＝７の場合には、図１５に示すように、Offset[0]測定部、Offset[1]測定部、…、Offset[7]測定部に対して、オフセット値の候補として０、２、…、１４が割り当てられることとなる。
【０１４４】
次に、図１６に示す制御テーブルｄ５３について説明する。制御テーブルｄ５３は、画素のビット深度が１０ビットであり、かつ、量子化ステップが第２の閾値ＴＨ２２より大きい場合（ＴＨ２２＜ＱＰ）に対応している。
【０１４５】
図１４に示す制御テーブルｄ５３では、Offset[0]測定部〜Offset[N]測定部に対して、オフセット値の候補として０〜４×Ｎを対応付けている。即ち、候補制御部３５５は、制御テーブルｄ５２に基づき各オフセット測定部３５１にオフセット値の候補を割り当てる場合には、Offset[ｉ]測定部（ｉは、０≦ｉ≦Ｎの整数）には、オフセット値として４×ｉを割り当ることとなる。例えば、Ｎ＝７の場合には、図１６に示すように、Offset[0]測定部、Offset[1]測定部、…、Offset[7]測定部に対して、オフセット値の候補として０、４、…、２８が割り当てられることとなる。
【０１４６】
このように、候補制御部３５５は、画素のビット深度と取得した量子化ステップとに基づき、制御テーブルｄ５１〜ｄ５３のいずれかを選択し、選択した制御テーブルに応じて、Offset[0]測定部〜Offset[7]測定部それぞれに対してオフセット値の候補を割り当てる。
【０１４７】
具体的には、候補制御部３５５は、画素のビット深度が１０ビットの場合には、量子化ステップが小さいほど、オフセット値の候補の最大値がより小さくなるように設定し、隣接する候補間の間隔（即ち、隣接する候補間の差分）がより小さくなるように設定する。また、候補制御部３５５は、画素のビット深度が１０ビットの場合には、量子化ステップが大きいほど、オフセット値の候補の最大値がより大きくなるように設定し、隣接する候補間の間隔（即ち、隣接する候補間の差分）がより大きくなるように設定する。以上のような構成により、候補制御部３５５は、画素のビット深度が１０ビットの場合におけるオフセット値の候補数を、８ビットの場合におけるオフセット値の候補数（換言すると、８ビットの場合にオフセット値がとり得る値の範囲）に制限することが可能となる。
【０１４８】
なお、第１の閾値ＴＨ２１及び第２の閾値ＴＨ２２の値については、画像符号化装置の構成や各種パラメタ（例えば、原画像データの解像度等）に応じて、あらかじめ実験を行うことで事前に決定すればよい。また、上記に説明した構成はあくまで一例であり、オフセット測定部３５１の数や、オフセット値の候補を特定するための制御テーブルの数は、適宜変更してもよい。もちろん、オフセット測定部３５１の数や、制御テーブルの数を変更する場合には、各制御テーブルで設定されるオフセット値の候補や、各制御テーブルを切り替えるための閾値には、事前の実験等に基づき決定した適切な値を、あらかじめ設定しておけばよい。
【０１４９】
なお、以降の処理については、前述した比較例に係るオフセット判定部３５０ａと同様である。即ち、各オフセット測定部３５１（即ち、Offset[0]測定部〜Offset[7]測定部の）は、割り当てられたオフセット値の候補についてコストを算出して、オフセット決定部３５３に出力する。
【０１５０】
オフセット決定部３５３は、各オフセット測定部３５１が算出したコストを比較し、当該比較結果に基づき、オフセット値の候補の中から、コストが最も低いオフセット値を決定する。そして、オフセット決定部３５３は、決定したオフセット値と、当該オフセット値に対応するコストとを出力する。この出力を受けて、モード判定部３４０（図７参照）は、ＳＡＯの各モードについて算出された各コストを比較し、当該比較結果に基づき、符号化効率を最も向上させることが可能なＳＡＯのモードと、当該モードに対応するオフセット値とをＣＴＵごと（即ち、ＬＣＵごと）に特定する。
【０１５１】
以上、図１３〜図１６を参照して、本実施形態に係るオフセット判定部３５０の構成の一例について説明した。上記に示した構成により、本実施形態に係るオフセット判定部３５０は、画素のビット深度が１０ビットの場合におけるコスト計算の処理量を、８ビットの場合と同等の処理量に制限することが可能となる。そのため、本実施形態に係るオフセット判定部３５０は、ビット深度が１０ビットの場合においても、オフセット測定部３５１として８ビットの場合と同様の構成（即ち、Offset[0]測定部〜Offset[7]測定部）を用いて、オフセット値を決定することが可能となる。即ち、本実施形態に係るオフセット判定部３５０に依れば、比較例に係るオフセット判定部３５０ａに比べて回路規模を縮小することが可能となる。また、本実施形態に係るオフセット判定部３５０は、コスト計算の処理量の低減に伴い、比較例に係るオフセット判定部３５０ａに比べて消費電力を低減することが可能となる。
【０１５２】
なお、図１３を参照しながら上記に説明したオフセット判定部３５０の構成はあくまで一例であり、必ずしも、図１０に示す構成に限定するものではない。例えば、本実施形態に係るオフセット判定部３５０に、オフセット測定部３５１としてOffset[0]測定部〜Offset[31]測定部を設け、一部のみを使用するモードと、全てを使用するモードとを切り替えられるように、当該オフセット判定部３５０を構成してもよい。
【０１５３】
例えば、バッテリー駆動時のように消費電力を制限する必要がある場合には、オフセット測定部３５１として、前述したように、Offset[0]測定部〜Offset[7]測定部のみを使用してもよい。また、電源駆動時のように処理量をより向上させることが可能な場合には、オフセット測定部３５１として、Offset[0]測定部〜Offset[31]測定部の全てを使用し、前述した比較例に係るオフセット判定部３５０ａと同様に動作してもよい。このように、本実施形態に係るオフセット測定部３５１は、画像符号化装置が動作する状況等のように、所定の条件に応じて、一部のオフセット測定部３５１のみを使用するモードに切り替えることで、コスト計算の処理量の低減できるように構成してもよい。
【０１５４】
＜＜２−５−３．オフセット判定部の処理の流れ＞＞
次に、図１７を参照して、本実施形態に係るオフセット判定部３５０の一連の処理の流れの一例について説明する。図１７は、本実施形態に係るオフセット判定部３５０の一連の処理の流れの一例を示したフローチャートである。なお、図１７において、定数Ｎ（Ｎは、０≦Ｎの整数）は、前述したように、オフセット値の候補の数（換言すると、オフセット測定部３５１の数）に応じて決まる値であり、Ｎ＋１がオフセット値の候補の数に相当する。
【０１５５】
（ステップＳ６２１）
まず、オフセット判定部３５０は、カウンタ値であるＣｏｕｎｔを０で初期化する（ステップＳ６１１）。そして、カウンタ値Ｃｏｕｎｔが示すオフセット値の候補についてコストを算出する。このとき、オフセット判定部３５０は、画素のビット深度と、復号画像データの復号元である量子化データを生成する際の量子化ステップ（ＱＰ）とに基づき、オフセット値の候補を制限する。
【０１５６】
（ステップＳ６２３、Ｓ６２４）
具体的には、画素のビット深度が８ビットの場合と、画素のビット深度が１０ビットであり、かつ、量子化ステップが第１の閾値ＴＨ２１以下（ＱＰ≦ＴＨ２１）の場合とのいずれかの場合には（ステップＳ６２３、ＮＯ）、オフセット判定部３５０は、当該条件に対応したテーブル１を選択する。なお、テーブル１の具体的な一例としては、図１４に示す制御テーブルｄ５１が挙げられる。
【０１５７】
そして、オフセット判定部３５０は、選択されたテーブル１に基づき、カウンタ値Ｃｏｕｎｔが示すオフセット値の候補を特定し、特定した候補についてコストを計算する。この場合には、カウンタ値Ｃｏｕｎｔ＝ｉ（ｉは、０≦ｉ≦Ｎの整数）の場合には、オフセット値の候補としてｉが特定されることとなる。
【０１５８】
（ステップＳ６２５）
また、画素のビット深度が１０ビットであり、かつ、量子化ステップが第１の閾値ＴＨ２１より大きい場合には（ステップＳ６２４、ＹＥＳ）、オフセット判定部３５０は、当該量子化ステップが第２の閾値ＴＨ２２（ＴＨ２２＞ＴＨ２１）より大きいか否かを判定する。
【０１５９】
（ステップＳ６２６）
量子化ステップが第２の閾値ＴＨ２２以下の場合には（ステップＳ６２５、ＮＯ）、オフセット判定部３５０は、当該条件に対応したテーブル２を選択する。なお、テーブル２の具体的な一例としては、図１５に示す制御テーブルｄ５２が挙げられる。
【０１６０】
そして、オフセット判定部３５０は、選択されたテーブル２に基づき、カウンタ値Ｃｏｕｎｔが示すオフセット値の候補を特定し、特定した候補についてコストを計算する。この場合には、カウンタ値Ｃｏｕｎｔ＝ｉ（ｉは、０≦ｉ≦Ｎの整数）の場合には、オフセット値の候補として２×ｉが特定されることとなる。
【０１６１】
（ステップＳ６２７）
また、量子化ステップが第２の閾値ＴＨ２２より大きい場合には（ステップＳ６２５、ＹＥＳ）、オフセット判定部３５０は、当該条件に対応したテーブル３を選択する。なお、テーブル３の具体的な一例としては、図１６に示す制御テーブルｄ５３が挙げられる。
【０１６２】
そして、オフセット判定部３５０は、選択されたテーブル３に基づき、カウンタ値Ｃｏｕｎｔが示すオフセット値の候補を特定し、特定した候補についてコストを計算する。この場合には、カウンタ値Ｃｏｕｎｔ＝ｉ（ｉは、０≦ｉ≦Ｎの整数）の場合には、オフセット値の候補として４×ｉが特定されることとなる。
【０１６３】
（ステップＳ６２８）
オフセット判定部３５０は、カウンタ値Ｃｏｕｎｔが示すオフセット値の候補を特定し、特定した候補についてコストの計算が完了すると、カウンタ値Ｃｏｕｎｔをインクリメントする
【０１６４】
（ステップＳ６２２）
以上のようにして、オフセット判定部３５０は、カウンタ値Ｃｏｕｎｔが所定の定数Ｎより大きくなるまで、オフセット値の候補を特定し、特定した候補についてコストの計算を行う（ステップＳ６２２、ＮＯ）。
【０１６５】
（ステップＳ６２９）
カウンタ値Ｃｏｕｎｔが０〜Ｎのそれぞれについて、オフセット値の候補を特定し、特定した候補についてコストの計算が完了すると（ステップＳ６２２、ＹＥＳ）、オフセット判定部３５０は、オフセット値の候補ごとに算出したコストを比較する。そして、オフセット判定部３５０は、当該比較結果に基づき、コストが最も低い候補をオフセット値として決定する。
【０１６６】
以上、図１７を参照して、本実施形態に係るオフセット判定部３５０の一連の処理の流れの一例について説明した。
【０１６７】
［２−６．まとめ］
以上、説明したように、本実施形態に係る画像符号化装置では、オフセット判定部３５０は、画素のビット深度と、復号画像データの復号元である量子化データを生成する際の量子化ステップ（ＱＰ）とに基づき、ＳＡＯ処理のためのオフセット値の候補を制限する。
【０１６８】
このような構成により、本実施形態に係るオフセット判定部３５０は、画素のビット深度が１０ビットの場合におけるコスト計算の処理量を、８ビットの場合と同等の処理量に制限することが可能となる。そのため、本実施形態に係るオフセット判定部３５０に依れば、ビット深度が１０ビットの場合においても、オフセット値の各候補のコストを計算する構成として、８ビットの場合と同様の構成を利用して、オフセット値を決定することが可能となる。即ち、本実施形態に係る画像符号化装置に依れば、オフセット判定部３５０の回路規模を、画素のビット深度が１０ビットの場合にとり得るオフセット値それぞれについてコストを計算する場合に比べて縮小することが可能となる。また、本実施形態に係る画像符号化装置は、画素のビット深度が１０ビットの場合におけるコスト計算の処理量の低減に伴い、消費電力をより低減することも可能となる。
【０１６９】
なお、上記では、量子化ステップに基づき、オフセット値の候補を制限する例について説明したが、オフセット値の候補を制限するための判定基準は、必ずしも量子化ステップには限定されない。具体的な一例として、オフセット判定部３５０は、原画像データの特徴量に基づき、オフセット値の候補を制限してもよい。
【０１７０】
原画像データの特徴量の具体的な一例として、例えば、原画像データ中の画素値の変化量の指標となる分散値が挙げられる。
【０１７１】
例えば、原画像データの分散値が小さい場合には、画素値の変化が小さい場合を示している。分散値が小さい原画像データの具体的な一例として、濃淡の少ない、もしくは、濃淡の変化が緩やかな平坦な画像が挙げられる。このような場合には、ブロック（ＣＴＵ）間の類似性が高く、原画像データと復号画像データとの差が小さくなる傾向にある。そのため、原画像データの分散値が小さい場合には、オフセット判定部３５０は、図１４に示した制御テーブルｄ５１のように、オフセット値がより小さくなるように、オフセットの候補を制限してもよい。
【０１７２】
また、原画像データの分散値が大きい場合には、画素値の変化が大きい場合を示している。分散値が大きい原画像データの具体的な一例として、テクスチャのより細かい画像が挙げられる。このような場合には、ブロック（ＣＴＵ）間の類似性が低く、原画像データと復号画像データとの差が大きくなる傾向にある。そのため、原画像データの分散値が大きい場合には、オフセット判定部３５０は、図１５及び図１６に示した制御テーブルｄ５２及びｄ５３のように、オフセット値がより大きくなるように、オフセットの候補を制限してもよい。
【０１７３】
なお、原画像データの特徴量については、例えば、統計量取得部３３０が、取得した原画像データに基づき特徴量として算出すればよい。
【０１７４】
以上のように、適用されるオフセット値の傾向に応じてあらかじめ条件を設定し、当該条件に応じてオフセット判定部３５０がオフセット値の候補を制限できれば、オフセット値の候補を制限するための判定基準は特に限定されない。もちろん、適用されるオフセット値の傾向に応じて条件が設定できれば、原画像データの特徴量として、分散値以外のパラメタを用いてもよいことは言うまでもない。
【０１７５】
＜３．第２の実施形態＞
［３−１．概要］
次に、第２の実施形態に係る画像符号化装置について説明する。前述した第１の実施形態に係る画像符号化装置では、サンプル適応オフセットフィルタは、オフセット値の候補を制限することで、当該オフセット値を特定するための処理量を低減することにより、一連のコスト計算に係る処理量を低減していた。これに対して、本実施形態に係る画像符号化装置では、サンプル適応オフセットフィルタは、処理対象となるＣＴＵに対するイントラ予測の結果として特定される予測モードに応じて、ＳＡＯのモードの候補を制限する。これにより、本実施形態に係る画像符号化装置は、ＳＡＯのモードを特定するための処理量を低減することにより、一連のコスト計算に係る処理量を低減する。そこで、まず、図１８〜図２０を参照して、本実施形態に係る画像符号化装置の概要について、特に、サンプル適応オフセットフィルタに着目して説明する。
【０１７６】
図１８は、Ｈ．２６５／ＨＥＶＣにおけるイントラ予測の予測モードについて説明するための説明図である。イントラ予測の予測モードとしては、プレーナ予測、ＤＣ予測、及び方向性予測が存在し、方向性予測については３２種類の予測方向が設定される。そのため、Ｈ．２６５／ＨＥＶＣでは、プレーナ予測、ＤＣ予測、及び方向性予測の各予測方法と、当該方向性予測における各予測方向とのそれぞれを、予測モードとして設定することで区別している。
【０１７７】
具体的には、図１８に示すように、プレーナ予測の場合には、予測モードのモード値として「０」が設定される。また、ＤＣ予測の場合には、予測モードのモード値として「１」が設定される。
【０１７８】
また、方向性予測の場合には、予測モードのモード値として「２〜３４」のいずれかが、予測方向に応じて設定される。具体的な一例として、図１８に示すように、方向性予測の予測方向が水平方向（右から左に向けた方向）の場合には、予測モードのモード値として「１０」が設定される。また、他の一例として、方向性予測の予測方向が垂直方向（下から上に向けた方向）の場合には、予測モードのモード値として「２６」が設定される。
【０１７９】
ここで、図１９を参照して、イントラ予測の予測モードとして方向性予測が選択された場合の復号画像データの特徴について説明する。図１９は、イントラ予測の予測モードとして方向性予測が選択された場合の復号画像データの特徴について説明するための説明図である。
【０１８０】
図１９において、参照符号ｄ１０は、原画像中の予測対象ブロックを示しており、参照符号ｄ２０は、予測対象ブロックｄ１０の復号画像データを示している。また、参照符号ｄ１１は、予測対象ブロックｄ１０に対するイントラ予測のための予測ブロックを示しており、参照符号ｄ１３は、方向性予測の予測方向を示している。
【０１８１】
図１９に示す例では、予測対象ブロックｄ１０は、縦方向に各画素間の相関性が高い。そのため、図１９に示す例の場合には、イントラ予測の予測モードとして、参照符号ｄ１３に示すように縦方向に沿った予測方向を示す方向性予測が選択され、予測モードのモード値として「２６」が設定される。
【０１８２】
図１９に示す例において、予測対象ブロックｄ１０と復号画像データｄ２０とを比較するとわかるように、復号画像データｄ２０の各画素は、予測方向ｄ１３と同じ方向に沿って画素間の相関性が高い。そのため、復号画像データｄ２０は、イントラ予測の予測方向ｄ１３と同じ方向にはエッジが立ちにくい傾向にある。そのため、例えば、図１９に示す復号画像データｄ２０が処理対象の場合には、図１に示すエッジオフセットの各クラスＥＯ＿０〜ＥＯ＿３のうち、予測方向ｄ１３と同じ成分を有するクラスＥＯ＿１〜ＥＯ＿３は選択されにくく、クラスＥＯ＿０がより選択されやすい傾向にある。
【０１８３】
そこで、本実施形態に係る画像符号化装置では、サンプル適応オフセットフィルタは、上記に説明した特性を利用することで、イントラ予測の各予測モードとＳＡＯの各モードとをあらかじめ対応付けておく。例えば、図２０に示す制御テーブルｄ３０は、本実施形態に係る画像符号化装置における、イントラ予測の予測モードとＳＡＯの各モードとの対応関係の一例を示している。
【０１８４】
図２０に示した制御テーブルｄ３０において、「intra  mode」は、図１８に基づき説明した、イントラ予測の各予測モードにおけるモード値を示している。また、「SAO  mode」は、図１及び図２に示したＳＡＯの各モードを示している。また、「SaoTypeIdx」は、ＳＡＯのモードに応じて設定される符号化パラメタを示しており、同パラメタは、Ｈ．２６５／ＨＥＶＣの規格に基づき規定されている。
【０１８５】
図２０に示すように、予測モードのモード値が「０」の場合（即ち、プレーナ予測の場合）、及び、モード値が「１」の場合（即ち、ＤＣ予測の場合）には、ＳＡＯのモードとしてバンドオフセットが設定される。図２０において、「ＢＯ」は、バンドオフセットを示している。
【０１８６】
また、予測モードのモード値が「２〜３４」の場合（即ち、方向性予測の場合）には、ＳＡＯのモードとしてエッジオフセットが設定される。具体的には、予測モードのモード値が示す予測方向と、エッジオフセットの対象画素ｃに対する隣接画素ａ及びｂの方向との相対的な位置関係が、より垂直に近くなるように、当該モード値と、エッジオフセットの各クラスＥＯ＿０〜ＥＯ＿３とが対応付けられている。
【０１８７】
例えば、予測モードのモード値が、２〜５、３０〜３４の場合には、エッジオフセットのクラスＥＯ＿２が対応付けられている。また、予測モードのモード値が、６〜１３の場合には、クラスＥＯ＿１が対応付けられている。同様に、予測モードのモード値が、１４〜２１の場合には、クラスＥＯ＿３が対応付けられており、予測モードのモード値が、２２〜２９の場合には、クラスＥＯ＿０が対応付けられている。
【０１８８】
そして、サンプル適応オフセットフィルタは、復号画像データｄ２０（ＣＴＵ単位）に対応する予測対象ブロックｄ１０の予測モードと、図２０に示した制御テーブルｄ３０とを照合することで、当該復号画像データｄ２０におけるＳＡＯのモードを特定する。
【０１８９】
なお、前述したように、第１の実施形態に係る画像符号化装置では、サンプル適応オフセットフィルタは、ＳＡＯのモードごとに（即ち、バンドオフセットと、エッジオフセットの各クラスそれぞれについて）、オフセット値及びコストを算出し、当該コストを比較することで、適用するＳＡＯのモードとオフセット値とを決定していた。これに対して、本実施形態に係る画像符号化装置では、サンプル適応オフセットフィルタは、イントラ予測の予測モードに応じてＳＡＯのモードを決定するため、決定されたモードにおけるオフセット値の算出のみを実行すればよい。即ち、本実施形態に係る画像符号化装置は、ＳＡＯのモードごとにオフセット値及びコストを算出する場合に比べて、コスト計算の処理量を低減することが可能となり、ひいては、消費電力を低減することも可能となる。
【０１９０】
そこで、以降では、本実施形態に係る画像符号化装置について、前述した第１の実施形態とは異なる部分に着目し、特に、ループフィルタ内のサンプル適応オフセットフィルタについて、さらに詳しく説明する。
【０１９１】
［３−２．ループフィルタの構成例］
まず、図２１を参照して、本実施形態に係る画像符号化装置におけるループフィルタ２４の構成の一例について説明する。図２１は、本実施形態に係るループフィルタ２４の構成の一例を示したブロック図である。なお、本説明では、第１の実施形態に係るループフィルタ２４（図４参照）と異なる構成に着目して説明し、その他の構成については詳細な説明は省略する。
【０１９２】
図２１に示すように、本実施形態に係るループフィルタ２４では、サンプル適応オフセットフィルタ３００は、処理対象となる復号画像データの各ブロックに対して、イントラ予測時に特定された予測モード（即ち、符号化パラメタのうちの予測パラメタ）を取得する。例えば、図６に示した画像符号化装置の一連の処理の流れのうち、ステップＳ１１においてイントラ予測の予測モードが決定され、サンプル適応オフセットフィルタ３００は、ステップＳ１７に示す処理において、ステップＳ１１で決定された予測モードを使用する。
【０１９３】
なお、サンプル適応オフセットフィルタ３００が、処理対象となるＣＴＵに対して設定されたイントラ予測の予測モードを取得できれば、当該予測モードの取得元は特に限定されない。具体的な一例として、サンプル適応オフセットフィルタ３００は、イントラ予測部３０（図３参照）から、処理対象となるブロックに対応するイントラ予測の予測モードを取得してもよい。
【０１９４】
以上、図２１を参照して、本実施形態に係るループフィルタ２４について説明した。
【０１９５】
［３−３．サンプル適応オフセットフィルタの構成例］
次に、図２２を参照して、本実施形態に係るサンプル適応オフセットフィルタ３００の構成の一例について説明する。図２２は、本実施形態に係るサンプル適応オフセットフィルタ３００の構成の一例を示したブロック図である。なお、本実施形態に係るサンプル適応オフセットフィルタ３００は、モード判定部３４０の動作が、前述した第１の実施形態に係るサンプル適応オフセットフィルタ３００（図７参照）とは異なる。そこで、本説明では、モード判定部３４０に着目して説明し、その他の構成については、詳細な説明は省略する。
【０１９６】
本実施形態に係るモード判定部３４０は、復号画像データ中のＣＴＵごとに、当該ＣＴＵに対して設定されたイントラ予測の予測モード（即ち、符号化パラメタのうちの予測パラメタ）を取得する。なお、当該予測モードの取得元としては、例えば、イントラ予測部３０（図３参照）が挙げられる。
【０１９７】
また、モード判定部３４０は、図２０に示すような、イントラ予測の予測モードとＳＡＯのモードとをあらかじめ対応付けた制御テーブルｄ３０を参照可能に構成されている。なお、モード判定部３４０が、制御テーブルｄ３０を参照可能であれば、当該制御テーブルｄ３０のデータを記憶する場所は特に限定されない。
【０１９８】
モード判定部３４０は、取得したイントラ予測の予測モードと、制御テーブルｄ３０とを照合することで、処理対象となるＣＴＵに対して設定するＳＡＯのモードを決定する。
【０１９９】
例えば、イントラ予測の予測モードのモード値が０の場合、即ち、プレーナ予測の場合には、モード判定部３４０は、制御テーブルｄ３０に基づき、ＳＡＯのモードとしてバンドオフセットを選択する。また、イントラ予測の予測モードのモード値が１の場合、即ち、ＤＣ予測の場合についても、モード判定部３４０は、制御テーブルｄ３０に基づき、ＳＡＯのモードとしてバンドオフセットを選択する。これらの場合には、SaoTypeIdxに対して、バンドオフセットを示す１が設定されることとなる。
【０２００】
また、イントラ予測の予測モードのモード値が２〜３４の場合、即ち、方向性予測の場合には、モード判定部３４０は、制御テーブルｄ３０に基づき、ＳＡＯのモードとしてエッジオフセットを選択し、当該エッジオフセットのクラスを特定する。この場合には、SaoTypeIdxに対して、エッジオフセットを示す２が設定されることとなる。
【０２０１】
ＳＡＯのモードを決定すると、モード判定部３４０は、決定したＳＡＯのモードについて、オフセット値と当該オフセット値に対応するコストとを、オフセット判定部３５０に算出させる。
【０２０２】
例えば、ＳＡＯのモードがバンドオフセットの場合には、モード判定部３４０は、当該バンドオフセットの各バンドそれぞれについて、オフセット値と当該オフセット値に対応するコストとをオフセット判定部３５０に算出させる。
【０２０３】
また、ＳＡＯのモードがエッジオフセットの場合には、モード判定部３４０は、エッジオフセットの各クラスＥＯ＿０〜ＥＯ＿３のうち、決定されたクラスのみをオフセット値と当該オフセット値に対応するコストとの算出対象とする。即ち、モード判定部３４０は、決定されたクラスについて、カテゴリ１〜４（図１参照）それぞれに対し、オフセット値と当該オフセット値に対応するコストとをオフセット判定部３５０に算出させる。
【０２０４】
なお、オフセット判定部３５０は、前述した第１の実施形態と同様である。即ち、オフセット判定部３５０は、オフセット値の候補それぞれについてコストを算出し、算出した各コストを比較することで、符号化効率を最も向上させることが可能なオフセット値を特定する。
【０２０５】
そして、モード判定部３４０は、オフセット判定部３５０に算出させたコストを評価することで、ＣＴＵごとにＳＡＯのモードと当該モードに対応するオフセット値とを特定する。例えば、ＳＡＯのモードがバンドオフセットの場合には、モード判定部３４０は、各バンドそれぞれについて算出されたコストを比較することで、符号化効率を最も向上させることが可能なバンド（連続する４つのバンド）を特定する。また、ＳＡＯのモードがエッジオフセットの場合には、モード判定部３４０は、特定したクラスのカテゴリ１〜４（図１参照）それぞれについて算出されたコストを比較することで、符号化効率を最も向上させることが可能なカテゴリを特定する。
【０２０６】
そして、モード判定部３４０は、ＣＴＵごとに特定したモードと、当該モードに対応するオフセット値とを、するフィルタ処理部３９０と可逆符号化部１６とに出力する。
【０２０７】
なお、以降の処理については、前述した第１の実施形態に係るサンプル適応オフセットフィルタ３００と同様である。即ち、フィルタ処理部３９０は、復号画像データの各ＣＴＵに対して、モード判定部３４０から供給されるＳＡＯのモードとオフセット値とに基づいてＳＡＯ処理を施す。そして、フィルタ処理部３９０は、ＳＡＯ処理が施された復号画像を、適応ループフィルタ４００（図４参照）に出力する。
【０２０８】
［３−４．モード判定部の処理の流れ］
次に、モード判定部の処理の流れについて説明する。なお、本説明では、本実施形態に係るモード判定部の特徴をわかりやすくするために、まず、従来の方式に基づくモード判定部の処理の流れを比較例として説明したうえで、本実施形態に係るモード判定部３４０の処理の流れについて説明する。
【０２０９】
＜＜３−４−１．モード判定部の比較例＞＞
図２３を参照して、比較例に係るモード判定部の一連の処理の流れの一例について説明する。図２３は、比較例に係るモード判定部の一連の処理の流れの一例を示したフローチャートである。なお、以降では、比較例に係るモード判定部と、本実施形態に係るモード判定部３４０とを明示的に区別する場合には、比較例に係るモード判定部を、「モード判定部３４０ａ」と記載する場合がある。
【０２１０】
（ステップＳ５０１〜Ｓ５０３）
モード判定部３４０ａは、まず、ＳＡＯのモードを示すパラメタ「SaoTypeIdx」に０を設定し（ステップＳ５０１）、ＳＡＯ処理を適用しない場合のコストを計算する（ステップＳ５０２）。そして、ＳＡＯ処理を適用しない場合のコストの計算が完了すると、モード判定部３４０ａは、SaoTypeIdxをインクリメントする（ステップＳ５０３）。これにより、SaoTypeIdxに１が設定される。
【０２１１】
（ステップＳ５０４、Ｓ５１１、Ｓ５１２）
次いで、モード判定部３４０ａは、SaoTypeIdxの値が１のため（ステップＳ５０４、ＮＯ、ステップＳ５１１、ＹＥＳ）、バンドオフセットの各バンドそれぞれについて、オフセット値と当該オフセット値に対応するコストとを、オフセット判定部３５０に算出させる（ステップＳ５１２）。これにより、バンドオフセットの各バンドそれぞれに対して、オフセット値と当該オフセット値に対応するコストとが設定される。
【０２１２】
（ステップＳ５１３）
バンドオフセットの各バンドそれぞれについてコストの算出が完了すると、モード判定部３４０ａは、SaoTypeIdxをインクリメントする。これにより、SaoTypeIdxに２が設定される。
【０２１３】
（ステップＳ５０４、Ｓ５１１、Ｓ５１４）
次いで、モード判定部３４０ａは、SaoTypeIdxの値が２のため（ステップＳ５０４、ＮＯ、ステップＳ５１１、ＹＥＳ）、エッジオフセットの各クラスＥＯ＿０〜ＥＯ＿３と各カテゴリ１〜４との組み合わせのそれぞれについて、オフセット値と当該オフセット値に対応するコストとを、オフセット判定部３５０に算出させる（ステップＳ５１４）。これにより、エッジオフセットの各クラスそれぞれの各カテゴリ１〜４に対して、オフセット値と当該オフセット値に対応するコストとが設定される。
【０２１４】
（ステップＳ５１５）
エッジオフセットの各クラスと各カテゴリとの組み合わせのそれぞれについてコストの算出が完了すると、モード判定部３４０ａは、SaoTypeIdxをインクリメントする。これにより、SaoTypeIdxに３が設定される。
【０２１５】
（ステップＳ５０４）
以上のようにして、ＳＡＯの各モードのそれぞれについて、オフセット値と当該オフセット値に対応するコストとが設定される。このとき、SaoTypeIdxには、前述の通り３が設定されていることとなる。
【０２１６】
（ステップＳ５２０）
SaoTypeIdxが３以上の場合には（ステップＳ５０４、ＹＥＳ）、モード判定部３４０ａは、ＳＡＯの各モードについて算出された各コストを比較し、当該比較結果に基づき、符号化効率を最も向上させることが可能なＳＡＯのモードと、当該モードに対応するオフセット値とを特定する。
【０２１７】
以上、説明したように、比較例に係るモード判定部３４０ａは、ＳＡＯの全てのモード、即ち、バンドオフセットと、エッジオフセットの各クラスとのそれぞれについてコスト計算を行う。そして、モード判定部３４０ａは、モードごとに計算されたコストを比較し、当該比較結果に基づいて、ＳＡＯ処理のためのＳＡＯのモードを特定している。
【０２１８】
具体的には、画素のビット深度を８ビットとすると、モード判定部３４０ａは、バンドオフセットにおけるバンド０〜３１それぞれについて、オフセット値の候補０〜７それぞれのコストを計算する。即ち、モード判定部３４０ａは、バンドオフセットについて、（バンド数）×（オフセットの候補数）＝３２×８＝２５６回のコスト計算を行う。
【０２１９】
同様に、モード判定部３４０ａは、エッジオフセットにおけるクラスＥＯ＿０〜ＥＯ＿３とカテゴリ１〜４との組み合わせのそれぞれについて、オフセット値の候補０〜７それぞれのコストを計算する。即ち、モード判定部３４０ａは、エッジオフセットについて、（クラス数）×（カテゴリ数）×（オフセットの候補数）＝４×４×８＝１２８回のコスト計算を行う。
【０２２０】
即ち、比較例に係るモード判定部３４０ａは、画素のビット深度が８ビットの場合には、ＳＡＯのモードを特定するために、計３８４回のコスト計算を行うこととなる。なお、画素のビット深度が１０ビットの場合については、オフセット値の候補０〜３１となる点を除けば、その他の処理については同様である。このように、比較例に係るモード判定部３４０ａは、ＳＡＯのモードを特定するためのコスト計算の処理量が大きくなる傾向にあり、消費電力の増加の要因となり得る。
【０２２１】
そこで、本実施形態に係るモード判定部３４０は、処理対象となるＣＴＵに対するイントラ予測の結果として特定される予測モードに応じて、ＳＡＯのモードの候補を制限する。これにより、本実施形態に係る画像符号化装置は、ＳＡＯのモードを特定するための処理量を低減することで、コスト計算に係る処理量を低減する。
【０２２２】
＜＜３−４−２．モード判定部の処理の流れ＞＞
以下に、図２４を参照して、本実施形態に係るモード判定部２４０の一連の処理の流れの一例について説明する。図２４は、本実施形態に係るモード判定部２４０の一連の処理の流れの一例を示したフローチャートである。
【０２２３】
なお、ステップＳ５０１〜Ｓ５０３に係る処理は、前述した比較例に係るモード判定部３４０ａと同様のため、詳細な説明は省略する。即ち、モード判定部３４０は、ＳＡＯのモードを示すパラメタ「SaoTypeIdx」に０を設定し（ステップＳ５０１）、ＳＡＯ処理を適用しない場合のコストを計算する（ステップＳ５０２）。そして、ＳＡＯ処理を適用しない場合のコストの計算が完了すると、モード判定部３４０は、SaoTypeIdxをインクリメントする（ステップＳ５０３）。これにより、SaoTypeIdxに１が設定される。
【０２２４】
（ステップＳ５０４、Ｓ５３１）
次いで、モード判定部３４０は、SaoTypeIdxの値が１のため（ステップＳ５０４、ＮＯ）、処理対象となるＣＴＵに対して設定されたイントラ予測の予測モードを取得する。なお、当該予測モードの取得元としては、例えば、イントラ予測部３０（図３参照）が挙げられる。
【０２２５】
モード判定部３４０は、イントラ予測の予測モードとＳＡＯのモードとをあらかじめ対応付けた制御テーブルｄ３０（図２０参照）と、取得した予測モードとを照合することで、処理対象となるＣＴＵに対して設定するＳＡＯのモードを決定する。そして、モード判定部３４０は、決定したＳＡＯのモードに応じて、SaoTypeIdxを設定する。
【０２２６】
具体的な一例として、イントラ予測の予測モードのモード値が０の場合、即ち、プレーナ予測の場合には、モード判定部３４０は、制御テーブルｄ３０に基づき、SaoTypeIdxに対してバンドオフセットを示す１を設定する。また、イントラ予測の予測モードのモード値が１の場合、即ち、ＤＣ予測の場合についても、モード判定部３４０は、制御テーブルｄ３０に基づき、SaoTypeIdxにバンドオフセットを示す１を設定する。
【０２２７】
また、イントラ予測の予測モードのモード値が２〜３４の場合、即ち、方向性予測の場合には、モード判定部３４０は、制御テーブルｄ３０に基づき、SaoTypeIdxにエッジオフセットを示す２を設定する。
【０２２８】
（ステップＳ５３２、Ｓ５３３）
SaoTypeIdxに対してバンドオフセットを示す１が設定されている場合には（ステップＳ５３２、ＹＥＳ）、モード判定部３４０は、当該バンドオフセットの各バンドそれぞれについて、オフセット値と当該オフセット値に対応するコストとをオフセット判定部３５０に算出させる。
【０２２９】
（ステップＳ５３４）
バンドオフセットの各バンドそれぞれについてオフセット値と当該オフセット値に対応するコストとの算出が完了すると、モード判定部３４０は、SaoTypeIdxに対して「３」を設定する。
【０２３０】
（ステップＳ５３２、Ｓ５３５）
また、SaoTypeIdxに対して１以外の値が設定されている場合（ステップＳ５３２、ＹＥＳ）、例えば、エッジオフセットを示す２が設定されている場合には、モード判定部３４０は、予測モードのモード値と制御テーブルｄ３０とに基づき、エッジオフセットのクラス（図１参照）を設定する。
【０２３１】
（ステップＳ５３６）
そして、モード判定部３４０は、決定されたクラスについて、カテゴリ１〜４（図１参照）それぞれに対し、オフセット値と当該オフセット値に対応するコストとをオフセット判定部３５０に算出させる。
【０２３２】
（ステップＳ５３７）
決定されたクラスについて、カテゴリ１〜４それぞれに対するオフセット値と当該オフセット値に対応するコストとの算出が完了すると、モード判定部３４０は、SaoTypeIdxに対して「３」を設定する。
【０２３３】
（ステップＳ５０４）
以上のようにして、ＳＡＯのモードが決定され、当該モードについてオフセット値と当該オフセット値に対応するコストとが設定される。このとき、SaoTypeIdxには、前述の通り３が設定されていることとなる。
【０２３４】
（ステップＳ５２０）
SaoTypeIdxが３以上の場合には（ステップＳ５０４、ＹＥＳ）、モード判定部３４０は、オフセット判定部３５０に算出させたコストを評価することで、ＳＡＯのモードと当該モードに対応するオフセット値とを特定する。
【０２３５】
例えば、ＳＡＯのモードがバンドオフセットの場合には、バンドオフセットの各バンドに対してのみ、オフセットと当該オフセットに対応するコストが設定されている。この場合には、モード判定部３４０は、各バンドそれぞれについて算出されたコストを比較することで、符号化効率を最も向上させることが可能なバンド（連続する４つのバンド）を特定する。なお、この場合には、モード判定部３４０は、SaoTypeIdxに対して、バンドオフセットを示す１を設定し直す。
【０２３６】
また、ＳＡＯのモードがエッジオフセットの場合には、選択されたクラスについてのみ、カテゴリ１〜４（図１参照）に対して、オフセットと当該オフセットに対応するコストが設定されている。この場合には、モード判定部３４０は、特定したクラスのそれぞれについて算出されたコストを比較することで、符号化効率を最も向上させることが可能なカテゴリを特定する。なお、この場合には、モード判定部３４０は、SaoTypeIdxに対して、エッジオフセットを示す２を設定し直す。
【０２３７】
以上のようにして、本実施形態に係るモード判定部３４０は、ＳＡＯのモードと当該モードに対応するオフセット値とを特定する。以上、図２４を参照して、本実施形態に係るモード判定部３４０の一連の処理の流れの一例について説明した。
【０２３８】
［３−５．変形例］
次に、本実施形態に係るモード判定部３４０の変形例について説明する。上記に説明した例では、モード判定部３４０は、イントラ予測の予測モードに基づきＳＡＯのモードの候補を制限していた。しかしながら、原画像データや復号画像データの特徴に応じてＳＡＯのモードの候補を制限できれば、当該ＳＡＯのモードを制限する方法は、必ずしも、イントラ予測の予測モードを用いた方法には限定されない。そこで、以下に、原画像データや復号画像データの特徴に応じてＳＡＯのモードの候補を制限する方法の一例について、変形例として説明する。
【０２３９】
例えば、Ｈ．２６５／ＨＥＶＣでは、予測誤差データに直交変換を施さずに、当該予測誤差データを量子化することで量子化データを生成する、「トランスフォームスキップ」と呼ばれる技術を適用することが可能である。
【０２４０】
例えば、直交変換後の予測誤差データを量子化する場合には、一部の帯域（例えば、高域）に対して量子化に伴うオフセットが適用される。これに対して、直交変換を行わずに予測誤差データを量子化する場合には、画像データ全体に対して一様にオフセットが適用される。そのため、トランスフォームスキップが適用された場合には、ＳＡＯのモードとしてバンドオフセットが選択されやすい傾向にある。
【０２４１】
このような特性を利用して、モード判定部３４０は、トランスフォームスキップが適用されている場合には、ＳＡＯのモードとしてバンドオフセットを設定してもよい。
【０２４２】
また、他の一例として、Ｈ．２６５／ＨＥＶＣでは、「strong-intra-smoothing」と呼ばれる技術を適用することができる。このstrong-intra-smoothingでは、予測対象ブロックに対するイントラ予測のための予測ブロックに対して平滑化処理が施される。そのため、予測対象ブロックは、画素値の変化が小さい画像、即ち、濃淡の少ない、もしくは、濃淡の変化が緩やかな平坦な画像となりやすい。即ち、strong-intra-smoothingが適用された場合には、ＳＡＯのモードとしてバンドオフセットが選択されやすい傾向にある。
【０２４３】
このような特性を利用して、モード判定部３４０は、strong-intra-smoothingが適用されている場合には、ＳＡＯのモードとしてバンドオフセットを設定してもよい。
【０２４４】
また、前述した実施形態に係るモード判定部３４０では、イントラ予測の方向性予測における予測方向に基づき、画素間の相関性が高い方向を認識していた。しかしながら、画素間の相関性が高い方向を認識できれば、必ずしも、イントラ予測の方向性予測における予測方向に基づく方法には限定されない。
【０２４５】
例えば、モード判定部３４０は、原画像データ中の特徴量に基づき、画素間の相関性が高い方向を認識してもよい。原画像データ中の特徴量に基づく方法としては、例えば、原画像データのテクスチャに応じて、画素間の相関性が高い方向を認識する方法が挙げられる。
【０２４６】
具体的には、モード判定部３４０は、原画像データから抽出されたエッジの方向に基づき、画素間の相関性が高い方向を認識してもよい。なお、この場合には、例えば、統計量取得部３３０（図７または図２２参照）が、原画像データに対してソーベルフィルタ等のフィルタ処理を施すことで、当該原画像データからエッジを抽出し、抽出されたエッジの情報を統計量としてモード判定部３４０に出力すればよい。
【０２４７】
以上、変形例として、原画像データや復号画像データの特徴に応じてＳＡＯのモードの候補を制限する方の一例について説明した。なお、変形例として上記に説明した各方法の一部または全部と、上述したイントラ予測の予測モードに基づく方法とは適宜組み合わせてもよい。また、上述したイントラ予測の予測モードに基づく方法を、変形例として上記に説明した各方法の一部または全部とを適宜置き換えてもよい。
【０２４８】
［３−６．まとめ］
以上、説明したように、本実施形態に係る画像符号化装置では、モード判定部３４０は、イントラ予測の各予測モードとＳＡＯの各モードとをあらかじめ対応付けておく。そして、モード判定部３４０は、処理対象となるＣＴＵに対して設定されたイントラ予測の予測モードを取得し、取得した予測モードに基づきＳＡＯのモードを特定する。このように、本実施形態に係るモード判定部３４０は、取得したイントラ予測の予測モードに応じて、ＳＡＯのモードの候補を制限している。そのうえで、モード判定部３４０は、特定したモードに対してのみ、オフセット値と当該オフセット値に対応するコストとを算出する。
【０２４９】
このような構成により、本実施形態に係るモード判定部３４０は、比較例に係るモード判定部３４０ａのように、ＳＡＯの各モードについてコスト計算を行う場合に比べて、当該コスト計算に係る処理量を大幅に低減することが可能となる。
【０２５０】
具体的には、画素のビット深度を８ビットとすると、本実施形態に係るモード判定部３４０は、バンドオフセットが選択された場合には、バンド０〜３１それぞれについてのみ、オフセット値の候補０〜７それぞれのコストを計算すればよい。即ち、バンドオフセットが選択された場合には、モード判定部３４０は、（バンド数）×（オフセットの候補数）＝３２×８＝２５６回のコスト計算を行えばよいこととなる。
【０２５１】
同様に、モード判定部３４０は、エッジオフセットが選択された場合には、あわせて選択されたエッジオフセットのクラスについてのみ、カテゴリ１〜４のそれぞれについて、オフセット値の候補０〜７それぞれのコストを計算すればよい。即ち、エッジオフセットが選択された場合には、モード判定部３４０は、（カテゴリ数）×（オフセットの候補数）＝４×８＝３２回のコスト計算を行えばよいこととなる。
【０２５２】
前述した、比較例に係るモード判定部３４０ａでは、ＳＡＯのモードを特定するために計３８４回のコスト計算を行う必要があった点を鑑みると、本実施形態に係るモード判定部３４０は、コスト計算に係る処理量を大幅に低減できることがわかる。また、本実施形態に係るモード判定部３４０は、コスト計算の処理量の低減に伴い、比較例に係るモード判定部３４０ａに比べて消費電力を低減することが可能となることは言うまでもない。
【０２５３】
なお、本実施形態に係るサンプル適応オフセットフィルタ３００と、前述した第１の実施形態に係るサンプル適応オフセットフィルタ３００とを組み合わせてもよい。
【０２５４】
具体的な一例として、本実施形態に係るサンプル適応オフセットフィルタ３００において、モード判定部３４０内のオフセット判定部３５０として、前述した第１の実施形態に係るオフセット判定部３５０を適用してもよい。このような構成とすることで、オフセット値を特定するためのコスト計算の処理量をさらに低減し、かつ、オフセット判定部３５０の回路規模を縮小することが可能となる。もちろん、コスト計算の処理量がさらに低減されるため、消費電力をさらに低減することが可能となる。
【０２５５】
＜４．第３の実施形態＞
［４−１．概要］
次に、第３の実施形態に係る画像符号化装置について説明する。前述した第１の実施形態に係る画像符号化装置では、サンプル適応オフセットフィルタは、スライス単位でＳＡＯ処理の適用の可否を制御していた。本実施形態に係る画像符号化装置では、サンプル適応オフセットフィルタは、ＳＡＯ処理の適用の可否について、復号画像データに対して設定された符号化パラメタに基づき、スライス単位での制御に加えて、ＣＴＵ（即ち、ＬＣＵ）単位で制御する。そこで、まず、図２５を参照して、本実施形態に係る画像符号化装置の概要について、特に、サンプル適応オフセットフィルタに着目して説明する。
【０２５６】
図２５は、Ｂスライス（または、Ｂピクチャ）のうち、インター予測における双予測（Bi-prediction）に基づき生成される予測画像データの一例を模式的に示している。図２５において、参照符号ｄ６０は、インター予測における双予測に基づき生成される予測画像データ（ＴＵ）の各画素の画素値の一例を模式的に示している。また、参照符号ｄ６１は、予測画像データｄ６０を生成するために使用される、Ｌ０方向（過去）のＩスライスまたはＰスライスの復号画像データ（ＴＵ）の各画素の画素値の一例を模式的に示している。同様に、参照符号ｄ６２は、予測画像データｄ６０を生成するために使用される、Ｌ１方向（未来）のＩスライスまたはＰスライスの復号画像データ（ＴＵ）の各画素の画素値の一例を模式的に示している。
【０２５７】
図２５に示すように、インター予測の双予測が適用された場合には、生成される予測画像データｄ６０の各画素の画素値は、予測のための復号画像データｄ６１及びｄ６２の各画素の画素値の平均となる。そのため、インター予測の双予測が適用された場合には、Ｂスライスの復号画像データ（例えば、予測画像データｄ６０の復号画像データ）は、ＩスライスまたはＰスライスの復号画像データに比べて、ディティール感が損なわれた、画素値の変化がより小さい画像となりやすい傾向にある。また、Ｂスライスに対してイントラ予測が適用された場合についても、同様の傾向があることがわかっている。
【０２５８】
また、Ｂスライスの予測画像データは、ＩスライスまたはＰスライスの予測画像データに比べて、より大きい量子化ステップ（ＱＰ）が選択されやすい傾向にある。このように、量子化ステップが大きい場合においても、量子化ステップが小さい場合に比べて、ディティール感が損なわれた、画素値の変化がより小さい画像となりやすい傾向にある。
【０２５９】
なお、前述したように、ＳＡＯ処理は、復号画像データに発生した原画像データとの間の誤差（例えば、量子化誤差）を緩和する処理に相当し、対象となる画素値に対してオフセットを加減算することで平滑化処理を施す処理に相当する。そのため、図２５に示す予測画像データｄ６０の復号画像データのような、Ｂスライスの復号画像データに対してＳＡＯ処理を施した場合には、よりディティール感が損なわれる場合もある。このような場合には、ＳＡＯ処理を施すことにより、Ｂスライスと、前後のＩスライスまたはＰスライスとの間の画質差がさらに大きくなり、主観として画質が劣化する可能性がある。
【０２６０】
そこで、本実施形態に係るサンプル適応オフセットフィルタは、さらに、対象となる復号画像データに設定された符号化パラメタに応じて、ＳＡＯ処理の適用の可否を制御する。また、本実施形態に係るサンプル適応オフセットフィルタは、ＳＡＯ処理の適用の可否を、スライス単位の制御に加えて、ＣＴＵ単位で制御する。なお、詳細は後述するが、符号化パラメタの一例としては、インター予測やイントラ予測の予測モードのような予測パラメタや、量子化ステップのような量子化パラメタ等が挙げられる。
【０２６１】
具体的には、サンプル適応オフセットフィルタは、インター予測の双予測が適用された場合等のように、他のスライスに比べて、画素値の変化がより小さくなる場合には、処理対象となるＳＡＯ処理を、スライス単位もしくはＣＴＵ単位で非適用とする。
【０２６２】
このような構成により、本実施形態に係る画像符号化装置では、サンプル適応オフセットフィルタは、符号化に伴う画質の劣化を抑制し、かつ、コスト計算の処理量を低減する。もちろん、本実施形態に係る画像符号化装置は、コスト計算の処理量が低減されるため、消費電力を低減することも可能となる。
【０２６３】
そこで、以降では、本実施形態に係る画像符号化装置について、前述した第１の実施形態とは異なる部分に着目し、特に、ループフィルタ内のサンプル適応オフセットフィルタについて、さらに詳しく説明する。
【０２６４】
［４−２．サンプル適応オフセットフィルタの構成例］
まず、図２６を参照して、本実施形態に係るサンプル適応オフセットフィルタ３００の構成の一例について説明する。図２６は、本実施形態に係るサンプル適応オフセットフィルタ３００の構成の一例を示したブロック図である。なお、本実施形態に係るサンプル適応オフセットフィルタ３００は、切り替え判定部３６０の構成が、前述した第１の実施形態に係るサンプル適応オフセットフィルタ３００（図７参照）とは異なる。そこで、本説明では、切り替え判定部３６０に着目して説明し、その他の構成については、詳細な説明は省略する。
【０２６５】
図２６に示すように、本実施形態に係る切り替え判定部３６０は、第１の判定部３７０と、第２の判定部３８０とを含む。
【０２６６】
第１の判定部３７０の機能は、前述した第１の実施形態に係る切り替え判定部３６０の機能に相当する。即ち、第１の判定部３７０は、復号画像データに対するＳＡＯ処理の適用の可否を、スライス単位で制御する。
【０２６７】
ここで、図２７を参照して、本実施形態に係る第１の判定部３７０の構成について詳しく説明する。図２７は、スライス単位でＳＡＯ処理の適用の可否を制御するための第１の判定部３７０の構成の一例を示したブロック図である。
【０２６８】
図２７に示すように、第１の判定部３７０は、モード数カウント部３７１と、判定処理部３７３とを含む。
【０２６９】
モード数カウント部３７１は、処理対象のスライスがＢスライスの場合に、当該Ｂスライスの直前のスライス（即ち、ＩスライスまたはＰスライス）において、ＳＡＯ処理が適用されたブロック（ＣＴＵ）の数を計上する。そして、モード数カウント部３７１は、計上した数、即ち、直前のスライスにおいてＳＡＯ処理が適用されたブロック（ＣＴＵ）の数を、モード数として判定処理部３７３に出力する。
【０２７０】
判定処理部３７３は、処理対象のスライスが、Ｉスライス及びＰスライスのいずれかの場合には、当該スライスに対するＳＡＯ処理の適用を解析部３２０に指示する。
【０２７１】
また、判定処理部３７３は、処理対象のスライスがＢスライスの場合には、当該Ｂスライスの直前のスライスにおいてＳＡＯ処理が適用されたブロック（ＣＴＵ）の数、即ち、モード数を、モード数カウント部３７１から取得する。そして、判定処理部３７３は、取得したモード数に応じて、当該Ｂスライスに対してＳＡＯ処理の適用の可否を制御する。
【０２７２】
具体的な一例として、判定処理部３７３は、取得したモード数が所定の閾値ＴＨ１１未満の場合には、処理対象のＢスライスに対するＳＡＯ処理の適用を制限する（即ち、非適用とする）ように解析部３２０に指示する。
【０２７３】
なお、ここまでの処理は、前述した第１の実施形態に係る切り替え判定部３６０と同様である。
【０２７４】
本実施形態に係る判定処理部３７３は、取得したモード数、即ち、ＳＡＯ処理が適用されたブロック（ＣＴＵ）の数が閾値ＴＨ１１以上の場合には、復号画像データの復号元である量子化データを生成する際の量子化ステップ（ＱＰ）を取得する。なお、判定処理部３７３が、復号画像データの復号元である量子化データの量子化ステップを取得できれば、その取得元は特に限定されない。具体的な一例として、判定処理部３７３は、量子化部１５（図３参照）から、当該量子化ステップを取得してもよい。
【０２７５】
そして、判定処理部３７３は、取得した量子化ステップに基づき、処理対象のＢスライスに対するＳＡＯ処理の適用の可否を制御する。
【０２７６】
具体的には、判定処理部３７３は、取得した量子化ステップが所定の閾値ＴＨ１２以下の場合には、処理対象のＢスライスに対するＳＡＯ処理の適用を解析部３２０に指示する。また、取得した量子化ステップが所定の閾値ＴＨ１２より大きい場合には、処理対象のＢスライスに対するＳＡＯ処理の適用を制限する（即ち、非適用とする）ように解析部３２０に指示する。
【０２７７】
なお、量子化ステップに基づき処理対象のＢスライスに対するＳＡＯ処理の適用の可否を制限するための閾値ＴＨ１２には、事前の実験等に基づき決定した適切な値を、あらかじめ設定しておけばよい。
【０２７８】
また、判定処理部３７３は、スライスごとのＳＡＯ処理の適用の可否を、符号化時のパラメタとして可逆符号化部１６に出力する。なお、本処理については、前述した第１の実施形態に係る切り替え判定部３６０と同様である。
【０２７９】
以上のようにして、第１の判定部３７０は、スライス単位でＳＡＯ処理の適用の可否を制御する。
【０２８０】
なお、前述したように、量子化ステップが比較的大きいＢスライスの復号画像データは、ＩスライスまたはＰスライスの復号画像データに比べて、ディティール感が損なわれる傾向にあり、ＳＡＯ処理を施すことでディティール感の損失が顕著に表れる場合がある。
【０２８１】
しかしながら、第１の判定部３７０は、量子化ステップが比較的大きいＢスライスについては、ＳＡＯ処理の適用を制限する。即ち、第１の判定部３７０により、スライス単位でＳＡＯ処理の適用の可否が制御されることで、画質の劣化が抑えられ、かつ、コスト計算の処理量が低減される。
【０２８２】
次に、図２６を再度参照して、第２の判定部３８０について説明する。第２の判定部３８０は、復号画像データに対するＳＡＯ処理の適用の可否を、ＣＴＵ（即ち、ＬＣＵ）単位で、当該ＣＴＵに設定された符号化パラメタに基づき制御する。
【０２８３】
具体的な一例として、第２の判定部３８０は、ＳＡＯ処理の適用の可否を判定するための符号化パラメタとして、処理対象となるＣＴＵに対して設定された予測モード（即ち、イントラ予測やインター予測）を示す予測パラメタを使用する。
【０２８４】
なお、第２の判定部３８０が、処理対象となるＣＴＵに対して設定された予測モードを示す予測パラメタを取得できれば、その取得元は特に限定されない。具体的な一例として、第２の判定部３８０は、選択部２７（図３参照）が、イントラ予測及びインター予測それぞれのコストの大きさに応じて切り替えて出力する情報（即ち、イントラ予測またはインター予測に関する情報）として、当該予測パラメタを選択部２７から取得してもよい。
【０２８５】
第２の判定部３８０は、取得した予測パラメタに基づき、処理対象となるＣＴＵに対して設定された予測モードを認識する。そして、第２の判定部３８０は、処理対象となるＣＴＵに対して設定された予測モードが、イントラ予測と、インター予測における双予測とのうちのいずれかの場合には、当該ＣＴＵに対するＳＡＯ処理の適用を制限する（即ち、非適用とする）ように解析部３２０に指示する。なお、イントラ予測及びインター予測における双予測のいずれでもない場合には、第２の判定部３８０は、処理対象となるＣＴＵに対するＳＡＯ処理の適用を解析部３２０に指示する。
【０２８６】
以上のようにして、第２の判定部３８０は、ＣＴＵ単位でＳＡＯ処理の適用の可否を制御する。
【０２８７】
なお、前述したように、インター予測の双予測が適用されたＢスライスの復号画像データは、ＩスライスまたはＰスライスの復号画像データに比べて、ディティール感が損なわれる傾向にあり、ＳＡＯ処理を施すことでディティール感の損失が顕著に表れる場合がある。また、Ｂスライスに対してイントラ予測が適用された場合についても、同様の傾向があることがわかっている。
【０２８８】
しかしながら、第２の判定部３８０は、処理対象となるＣＴＵに対して設定された予測モードが、イントラ予測と、インター予測における双予測とのうちのいずれかの場合には、当該ＣＴＵに対するＳＡＯ処理の適用を制限する。即ち、第２の判定部３８０により、ＣＴＵ単位でＳＡＯ処理の適用の可否が制御されることで、画質の劣化が抑えられ、かつ、コスト計算の処理量が低減される。
【０２８９】
なお、以降の処理、即ち、切り替え判定部３６０の制御に応じた解析部３２０及びフィルタ処理部３９０の動作は、前述した第１及び第２の実施形態と同様である。以上、図２６及び図２７を参照して、本実施形態に係るサンプル適応オフセットフィルタ３００の構成の一例について説明した。
【０２９０】
［４−３．サンプル適応オフセットフィルタの処理の流れ］
次に、図２８を参照して、本実施形態に係るサンプル適応オフセットフィルタ３００の一連の処理の流れについて説明する。図２８は、本実施形態に係るサンプル適応オフセットフィルタ３００の一連の処理の流れの一例を示したフローチャートである。
【０２９１】
なお、本実施形態に係るサンプル適応オフセットフィルタ３００は、ステップＳ１００ａで示された処理の内容と、ステップＳ３００及びＳ４００で示された処理が追加されている点とが、前述した第１の実施形態に係るサンプル適応オフセットフィルタ３００（図８参照）と異なる。そこで、以降では、前述した第１の実施形態に係るサンプル適応オフセットフィルタ３００と異なる、ステップＳ１００ａ、Ｓ３００、及びＳ４００に着目して説明し、その他の処理については詳細な説明は省略する。
【０２９２】
（ステップＳ１００ａ）
切り替え判定部３６０は、復号画像データのスライスごとに、輝度と色度とのそれぞれについてＳＡＯ処理の適用の可否を判定し、判定結果に基づき解析部３２０の動作を制御する。特に、本実施形態に係る切り替え判定部３６０は、処理対象となるスライスがＢスライスであり、かつ、量子化ステップが所定の閾値ＴＨ１２以上の場合には、当該スライスに対するＳＡＯ処理の適用を制限する。なお、切り替え判定部３６０による、スライス単位のＳＡＯ処理の適用の可否の判定に係る動作については、詳細を別途後述する。
【０２９３】
（ステップＳ３００）
スライスに対してＳＡＯ処理が適用されると判定された場合には（ステップＳ２００、ＹＥＳ）、切り替え判定部３６０は、当該スライスのＣＴＵごとに、輝度と色度とのそれぞれについてＳＡＯ処理の適用の可否を判定し、判定結果に基づき解析部３２０の動作を制御する。特に、本実施形態に係る切り替え判定部３６０は、処理対象となるＣＴＵに対して設定された予測モードが、イントラ予測と、インター予測における双予測とのうちのいずれかの場合には、当該ＣＴＵに対するＳＡＯ処理の適用を制限する。なお、切り替え判定部３６０による、ＣＴＵ単位のＳＡＯ処理の適用の可否の判定に係る動作については、詳細を別途後述する。
【０２９４】
（ステップＳ５００）
ＣＴＵに対してＳＡＯ処理が適用されると判定された場合には（ステップＳ４００、ＹＥＳ）、解析部３２０は、当該ＣＴＵについて、原画像データと（デブロックフィルタ処理後の）復号画像データとに基づき、ＳＡＯ処理を施すためのＳＡＯのモードとオフセット値とを決定する。
【０２９５】
（ステップＳ６００）
フィルタ処理部３９０は、復号画像データの各ＣＴＵに対して、モード判定部３４０から供給されるＳＡＯのモードとオフセット値とに基づいてＳＡＯ処理を施す。
【０２９６】
（ステップＳ７００）
以上の判定及び処理を、対象となるスライス中の一連のＣＴＵについて実行し（ステップＳ７００、ＮＯ）、一連のＣＴＵに対する判定及び処理の完了をもって（ステップＳ７００、ＹＥＳ）、対象となるスライスに対するＳＡＯ処理の適用が完了する。
【０２９７】
（ステップＳ２００）
なお、対象となるスライスに対してＳＡＯ処理を適用しない場合（ステップＳ２００、ＮＯ）には、当該スライスに対して、ステップＳ３００〜Ｓ７００で示された各処理は実行されない。
【０２９８】
次に、図２９を参照して、図２８においてステップＳ１００ａで示された処理、即ち、本実施形態に係る切り替え判定部３６０（具体的には、第１の判定部３７０）による、スライスごとのＳＡＯ処理の適用の可否の判定に係る処理の一例について説明する。図２９は、本実施形態に係る切り替え判定部による、スライスごとのＳＡＯ処理の適用の可否の判定に係る処理の一例について示したフローチャートである。
【０２９９】
なお、本実施形態に係る切り替え判定部３６０は、ステップＳ１１０で示された処理が追加されている点が、前述した第１の実施形態に係る切り替え判定部３６０（図９参照）と異なる。そこで、以降では、前述した第１の実施形態に係る切り替え判定部３６０と異なる、ステップＳ１１０で示された処理に着目して説明し、その他の処理については詳細な説明は省略する。
【０３００】
（ステップＳ１０１、Ｓ１０２）
本実施形態に係る切り替え判定部３６０は、処理対象のスライスがＢスライスの場合には（ステップＳ１０１、ＹＥＳ）、当該Ｂスライスの直前のスライス（即ち、ＩスライスまたはＰスライス）において、ＳＡＯ処理が適用されたＣＴＵの数（モード数）を取得する（ステップＳ１０２）。
【０３０１】
（ステップＳ１０３）
切り替え判定部３６０は、取得したモード数が、所定の閾値ＴＨ１１以上の場合には（ステップＳ１０３、ＮＯ）、復号画像データの復号元である量子化データを生成する際の量子化ステップ（ＱＰ）を取得する。そして、判定処理部３７３は、取得した量子化ステップに基づき、処理対象のＢスライスに対するＳＡＯ処理の適用の可否を制御する。
【０３０２】
（ステップＳ１０４）
具体的には、取得した量子化ステップが所定の閾値ＴＨ１２以下の場合には（ステップＳ１０３、ＮＯ）、切り替え判定部３６０は、処理対象のＢスライスに対するＳＡＯ処理の適用を解析部３２０に指示する。
【０３０３】
（ステップＳ１０５）
また、取得した量子化ステップが所定の閾値ＴＨ１２より大きい場合には（ステップＳ１０３、ＹＥＳ）、切り替え判定部３６０は、処理対象のＢスライスに対するＳＡＯ処理の適用を制限する（即ち、非適用とする）ように解析部３２０に指示する。
【０３０４】
以上のようにして、本実施形態に係る切り替え判定部３６０は、スライスごとにＳＡＯ処理の適用の可否を判定し、判定結果に基づき解析部３２０の動作を制御する。
【０３０５】
次に、図３０を参照して、図２８においてステップＳ３００で示された処理、即ち、本実施形態に係る切り替え判定部３６０（具体的には、第２の判定部３８０）による、ＣＴＵごとのＳＡＯ処理の適用の可否の判定に係る処理の一例について説明する。図３０は、本実施形態に係る切り替え判定部による、ＣＴＵごとのＳＡＯ処理の適用の可否の判定に係る処理の一例について示したフローチャートである。
【０３０６】
（ステップＳ３０１）
切り替え判定部３６０は、ＳＡＯ処理の適用の可否を判定するための符号化パラメタとして、処理対象となるＣＴＵに対して設定された予測モード（即ち、イントラ予測やインター予測）を示す予測パラメタを使用する。なお、切り替え判定部３６０は、当該予測パラメタを、例えば、選択部２７（図３参照）から取得し、取得した予測パラメタに基づき、処理対象となるＣＴＵに対して設定された予測モードを認識する。
【０３０７】
（ステップＳ３０２）
そして、切り替え判定部３６０は、認識した予測モードが、イントラ予測と、インター予測における双予測とのうちのいずれかに該当するか否かを判定する。
【０３０８】
（ステップＳ３０４）
認識した予測モードが、イントラ予測と、インター予測における双予測とのうちのいずれかの場合には（ステップＳ３０２、ＹＥＳ）、切り替え判定部３６０は、当該ＣＴＵに対するＳＡＯ処理の適用を制限する（即ち、非適用とする）ように解析部３２０に指示する。
【０３０９】
（ステップＳ３０３）
なお、認識した予測モードが、イントラ予測及びインター予測における双予測のいずれでもない場合には（ステップＳ３０２、ＮＯ）、切り替え判定部３６０は、当該ＣＴＵに対するＳＡＯ処理の適用を解析部３２０に指示する。
【０３１０】
なお、以降は、ＳＡＯ処理の適用対象となったＣＴＵに対してのみ、解析部３２０により、コストの算出とＳＡＯのモード及びオフセット値の特定とが行われ、当該ＳＡＯのモード及びオフセット値に基づき、フィルタ処理部３９０によりＳＡＯ処理が施される。
【０３１１】
以上、図２８〜図３０を参照して、本実施形態に係るサンプル適応オフセットフィルタ３００の一連の処理の流れについて説明した。以上のように、本実施形態に係るサンプル適応オフセットフィルタは、対象となる復号画像データに設定された符号化パラメタに応じて、ＳＡＯ処理の適用の可否を制御する。また、本実施形態に係るサンプル適応オフセットフィルタは、ＳＡＯ処理の適用の可否を、スライス単位の制御に加えて、ＣＴＵ単位で制御する。
【０３１２】
このような構成により、本実施形態に係る画像符号化装置では、サンプル適応オフセットフィルタは、符号化に伴う画質の劣化を抑制し、かつ、コスト計算の処理量を低減する。もちろん、本実施形態に係る画像符号化装置は、コスト計算の処理量が低減されるため、消費電力を低減することも可能となる。
【０３１３】
［４−４．変形例］
次に、本実施形態に係る切り替え判定部３６０の変形例について説明する。上記に説明した例では、切り替え判定部３６０は、スライスの種別、インター予測やイントラ予測の予測モードのような予測パラメタ、及びＱＰのような量子化パラメタに基づき、ＳＡＯ処理の適用の可否を、スライス単位またはＣＴＵ単位で制御していた。しかしながら、前述したように、ＳＡＯ処理の適用に伴う画質への影響を加味して、当該ＳＡＯ処理の適用の可否を、スライス単位またはＣＴＵ単位で制御可能であれば、その方法は、必ずしも、前述した予測パラメタや量子化パラメタに基づく方法には限定されない。
【０３１４】
具体的な一例として、復号画像データ中の各画素の輝度成分及び色差成分のうち、色差成分の方が、ＳＡＯ処理を施すことによる画質改善の影響が大きいことが、実験等によりわかっている。
【０３１５】
このような特性を利用して、切り替え判定部３６０は、復号画像データの輝度成分に対するＳＡＯ処理の適用を制限し、色度成分に対してのみＳＡＯ処理が適用されるように制御してもよい。
【０３１６】
なお、このとき切り替え判定部３６０は、ＳＡＯ処理の適用の可否を、スライス単位で制御してもよいし、ＣＴＵ単位で制御してもよい。もちろん、切り替え判定部３６０は、一括して復号画像中の色度成分に対してのみＳＡＯ処理を適用するように制御してもよい。
【０３１７】
また、変形例として上記に説明した方法を、上述した予測パラメタや量子化パラメタに基づく方法とは適宜組み合わせてもよい。また、上述した予測パラメタや量子化パラメタに基づく方法を、変形例として上記に説明した方法と適宜置き換えてもよい。
【０３１８】
［４−５．まとめ］
以上、説明したように、本実施形態に係るサンプル適応オフセットフィルタは、対象となる復号画像データに設定された符号化パラメタに応じて、ＳＡＯ処理の適用の可否を制御する。また、本実施形態に係るサンプル適応オフセットフィルタは、ＳＡＯ処理の適用の可否を、スライス単位の制御に加えて、ＣＴＵ単位で制御する。
【０３１９】
このような構成により、本実施形態に係る画像符号化装置では、サンプル適応オフセットフィルタは、符号化に伴う画質の劣化を抑制し、かつ、コスト計算の処理量を低減する。もちろん、本実施形態に係る画像符号化装置は、コスト計算の処理量が低減されるため、消費電力を低減することも可能となる。
【０３２０】
また、本実施形態に係るサンプル適応オフセットフィルタ３００と、前述した第１及び第２の実施形態に係るサンプル適応オフセットフィルタ３００のいずれかまたは双方とを組み合わせてもよい。
【０３２１】
具体的な一例として、本実施形態に係るサンプル適応オフセットフィルタ３００において、モード判定部３４０内のオフセット判定部３５０として、前述した第１の実施形態に係るオフセット判定部３５０を適用してもよい。このような構成とすることで、オフセット値を特定するためのコスト計算の処理量を低減し、かつ、オフセット判定部３５０の回路規模を縮小することが可能となる。
【０３２２】
また、本実施形態に係るサンプル適応オフセットフィルタ３００において、モード判定部３４０として、前述した第２の実施形態に係るモード判定部３４０を適用してもよい。このような構成とすることで、ＳＡＯのモードを特定するためのコスト計算の処理量をさらに低減することが可能となる。
【０３２３】
また、上記に示すように、各実施形態に係るサンプル適応オフセットフィルタ３００を適宜組み合わせることで、コスト計算の処理量がさらに低減されるため、消費電力をさらに低減することが可能となることは言うまでもない。
【０３２４】
＜５．第４の実施形態＞
［５−１．概要］
次に、第４の実施形態に係る画像符号化装置について説明する。前述した第１の実施形態に係る画像符号化装置では、サンプル適応オフセットフィルタは、オフセット値の候補を制限することで、当該オフセット値を特定するための処理量を低減することにより、一連のコスト計算に係る処理量を低減していた。これに対して、本実施形態に係る画像符号化装置では、サンプル適応オフセットフィルタは、対象となるピクチャのピクチャタイプに応じて、オフセット値の候補をさらに制限することで、当該オフセット値を特定するための処理量をさらに低減する。
【０３２５】
一般的に、各ピクチャと原画像との間の乖離度が高いほど（即ち、原画像に類似していないほど）、より大きいオフセット値が選択される傾向にある。これに対して、ＰピクチャやＢピクチャのように、他のピクチャを参照した予測結果に基づき生成されるピクチャは、参照先となるピクチャとの間で時間的な相関性を有しており、原画像との間の差分（換言すると、オフセット値の候補の数）についても、参照先のピクチャに依存する。そのため、他のピクチャを参照した予測結果に基づき生成されるピクチャでは、参照先のピクチャで選択されたオフセット値よりも値の大きいオフセット値の候補（換言すると、より原画像から乖離するオフセット値の候補）が選択されない傾向にある。即ち、ＰピクチャやＢピクチャにおいて選択され得るオフセット値（即ち、原画像との差分）の候補としては、参照先のピクチャで選択されたオフセット値の候補と同じ値か、または、より値の小さい候補となるため、ＰピクチャやＢピクチャにおいて選択され得るオフセット値の候補の数は、参照先のピクチャ以下となる。
【０３２６】
そこで、本実施形態に係る画像符号化装置におけるサンプル適応オフセットフィルタでは、処理対象となるピクチャのピクチャタイプが、ＰピクチャやＢピクチャ（即ち、他のピクチャを参照した予測結果に基づき生成されるピクチャ）の場合には、当該ピクチャのオフセット値の候補の数を、参照先のピクチャで選択されたオフセット値の最大値までを対象とした候補の数に制限する。このような制御により、本実施形態に係るサンプル適応オフセットフィルタ（特に、オフセット判定部３５０）では、オフセット値の候補の数を制限することで、適用するオフセット値を決定するための、当該オフセット値の候補ごとのコスト計算の処理量を低減する。
【０３２７】
以下に、図面を参照して、本実施形態に係る画像符号化装置におけるサンプル適応オフセットフィルタの動作の詳細について説明する。例えば、図３１は、本実施形態に係る画像符号化装置の概要について説明するための説明図であり、各ピクチャ（即ち、Ｉピクチャ、Ｐピクチャ、及びＢピクチャ）間の参照関係の一例を示している。なお、図３１は、ピクチャデプスが３の場合における、各ピクチャ間の参照関係の一例を示している。
【０３２８】
ここで、ピクチャデプスについて概要を説明する。インター予測においては、エンコード済みのピクチャを用いて、現時のエンコード対象のブロックが予測される。そのため、エンコードするピクチャの順序と参照関係が重要になる。ピクチャデプスは、画像のピクチャ間（GOP構造）の参照関係を示す情報であり、詳しくは、参照関係において、同じ状況にあるものを、例えば、１乃至５にグルーピングするものである。
【０３２９】
図３１に示す例では、横方向がデコード順序の時間を表している。また、長方形で示された部分のそれぞれは、各ピクチャを表しており、当該長方形で示された部分の中に提示されたＩ、Ｂ、及びＰの符号のそれぞれは、当該ピクチャのピクチャタイプを示している。即ち、符号Ｉが付されたピクチャは、Ｉピクチャを示している。同様に、符号Ｂが付されたピクチャは、Ｂピクチャを示しており、符号Ｐが付されたピクチャは、Ｐピクチャを示している。また、各ピクチャ間をつなぐ矢印は、インター予測を行うために参照するピクチャ（即ち、ピクチャ間の参照関係）を示している。
【０３３０】
例えば、図３１に示す例では、ピクチャデプス１には、Ｉピクチャ及びＰピクチャが含まれている。Ｉピクチャは、他のピクチャを参照しない。また、Ｐピクチャは、自身よりも左側（即ち、過去側）に位置するＩピクチャ及びＰピクチャのうち、直近のピクチャを参照する。具体的には、Ｉピクチャの右側（即ち、未来側）に位置するＰピクチャは、当該Ｉピクチャを参照している。同様に、Ｐピクチャの右側に位置する他のＰピクチャは、自身の左側（即ち、過去側）に位置するＰピクチャを参照することとなる。
【０３３１】
ピクチャデプス２には、ピクチャデプス１のピクチャを参照するＢピクチャが含まれている。例えば、図３１において、ピクチャデプス２に含まれるＢピクチャのうち、ＩピクチャとＰピクチャとの間に位置するＢピクチャは、当該Ｉピクチャ及びＰピクチャを参照している。また、Ｐピクチャと他のＰピクチャとの間に位置するＢピクチャは、当該Ｐピクチャ及び他のＰピクチャを参照している。
【０３３２】
また、ピクチャデプス３には、前後（即ち、過去及び未来）の参照方向のうち、一方については、ピクチャデプス１のピクチャ（即ち、ＩピクチャまたはＰピクチャ）を参照し、他方についてはピクチャデプス２のピクチャ（即ち、Ｂピクチャ）を参照するＢピクチャが含まれている。例えば、ピクチャデプス３に含まれるＢピクチャのうち、ピクチャデプス１に含まれるＩピクチャと、ピクチャデプス２に含まれるＢピクチャとの間に位置するＢピクチャは、当該ピクチャデプス１に含まれるＩピクチャと、ピクチャデプス２に含まれるＢピクチャとを参照している。同様に、ピクチャデプス２に含まれるＢピクチャと、ピクチャデプス１に含まれるＰピクチャとの間に位置するＢピクチャは、当該ピクチャデプス２に含まれるＢピクチャと、ピクチャデプス１に含まれるＰピクチャとを参照している。
【０３３３】
ここで、本実施形態に係るサンプル適応オフセットフィルタ（特に、オフセット判定部３５０）が、対象となるピクチャのピクチャタイプに応じて、当該ピクチャにおけるオフセット値の候補の数を制限する処理の内容について、具体的な例を挙げて説明する。例えば、図３２は、本実施形態に係るサンプル適応オフセットフィルタが、ピクチャタイプに応じてオフセット値の候補の数を制限する処理の内容について説明するための説明図である。なお、図３２において、Ｉピクチャ、Ｐピクチャ、及びＢピクチャは、それぞれ参照関係にあるものとする。即ち、図３２において、Ｐピクチャは、Ｉピクチャを参照しており、Ｂピクチャは、Ｉピクチャ及びＰピクチャを参照しているものとする。
【０３３４】
本実施形態に係るオフセット判定部３５０は、ピクチャタイプがＩピクチャの場合には、第１の実施形態に係るオフセット判定部３５０と同様に、オフセット値の候補の数の最大値を「８」とする。即ち、ピクチャタイプがＩピクチャの場合には、例えば、図１３に示すオフセット測定部３５１のうち、Offset[0]測定部〜Offset[7]測定部の全てが使用されることとなる。
【０３３５】
また、ピクチャタイプがＰピクチャの場合には、オフセット判定部３５０は、当該Ｐピクチャの参照先であるＩピクチャにおいて選択されたオフセット値のうち最大値までを対象として、当該Ｐピクチャにおけるオフセット値の候補の数を制限する。なお、参照先のピクチャにおいて選択されたオフセット値の最大値については、例えば、当該参照先のピクチャにおけるオフセット値の特定のために算出した統計量に基づき取得することが可能である。
【０３３６】
具体的な一例として、図３２に示す例では、Ｉピクチャで選択されたオフセット値の最大が、Offset[5]測定部が対象とするオフセット値であったものとする。この場合には、オフセット判定部３５０は、当該Ｉピクチャを参照するＰピクチャについては、Offset[5]測定部が対象とするオフセット値まで（即ち、Offset[0]測定部〜Offset[5]測定部が対象とするオフセット値）を、当該Ｐピクチャに対応するオフセット値の候補とする。即ち、図３２に示す例の場合には、Ｐピクチャについては、オフセット値の候補の数が「６」に制限され、図１３に示すオフセット測定部３５１のうち、Offset[0]測定部〜Offset[5]測定部が使用されることとなる。
【０３３７】
また、ピクチャタイプがＢピクチャの場合には、オフセット判定部３５０は、当該Ｂピクチャの参照先であるＩピクチャ及びＰピクチャにおいて選択されたオフセット値のうち最大値までを対象として、当該Ｂピクチャにおけるオフセット値の候補の数を制限する。
【０３３８】
なお、このとき、オフセット判定部３５０は、各参照先（例えば、Ｉピクチャ及びＰピクチャ）において選択されたオフセット値の最大値のうち、値の小さい方に基づき、当該Ｂピクチャにおけるオフセット値の候補の数を制限する。これは、Ｂピクチャは、自身の前後（例えば、図３２におけるＩピクチャ及びＰピクチャ）を参照できるため、各参照先のピクチャのうち、原画像との差分がより少ないピクチャを参照すればよいことに起因する。
【０３３９】
例えば、図３２に示す例では、Ｉピクチャで選択されたオフセット値の最大が、Offset[5]測定部が対象とするオフセット値であり、Ｐピクチャで選択されたオフセット値の最大が、Offset[3]測定部が対象とするオフセット値であったものとする。この場合には、オフセット判定部３５０は、当該Ｉピクチャ及びＰピクチャを参照するＢピクチャについては、Offset[3]測定部が対象とするオフセット値まで（即ち、Offset[0]測定部〜Offset[3]測定部が対象とするオフセット値）を、当該Ｂピクチャに対応するオフセット値の候補とする。即ち、図３２に示す例の場合には、Ｂピクチャについては、オフセット値の候補の数が「４」に制限され、図１３に示すオフセット測定部３５１のうち、Offset[0]測定部〜Offset[3]測定部が使用されることとなる。
【０３４０】
なお、図３２を参照して示した例では、Ｂピクチャとして、図３１に示す例において、ピクチャデプス２に含まれるＢピクチャの場合の例について説明したが、他のピクチャデプスにおけるＢピクチャについても、基本的な思想は変わらない。
【０３４１】
例えば、図３１に示す例において、ピクチャデプス１に含まれるＩピクチャと、ピクチャデプス２に含まれるＢピクチャとの間に位置するＢピクチャ（即ち、デコード順序が「１」で示されたＢピクチャ）に着目する。この場合には、オフセット判定部３５０は、ピクチャデプス１に含まれるＩピクチャと、ピクチャデプス２に含まれるＢピクチャとのそれぞれにおいて、選択されたオフセット値の最大値のうち、より低い値に基づき、ピクチャデプス２に含まれるＢピクチャにおけるオフセット値の候補の数を制限する。
【０３４２】
具体的な一例として、Ｉピクチャ側で選択されたオフセット値の最大値がOffset[5]測定部が対象とするオフセット値であり、ピクチャデプス２に含まれるＢピクチャ側で選択されたオフセット値の最大値がOffset[3]測定部が対象とするオフセット値であるものとする。この場合には、オフセット判定部３５０は、Offset[3]測定部が対象とするオフセット値に基づき、ピクチャデプス２に含まれるＢピクチャにおけるオフセット値の候補の数を制限することとなる。
【０３４３】
なお、このとき、ピクチャデプス２に含まれるＢピクチャは、ピクチャデプス１に含まれるＩピクチャを参照している。そのため、ピクチャデプス２に含まれるＢピクチャにおいて選択されたオフセット値の最大値は、ピクチャデプス１に含まれるＩピクチャにおいて選択されたオフセット値の最大値を超えることはない。このような特性を利用して、オフセット判定部３５０は、例えば、参照先のピクチャのうちいずれか一方がＢピクチャの場合には、当該Ｂピクチャにおいて選択されたオフセット値の最大値に基づき、対象となるピクチャ（即ち、よりピクチャデプスの深いＢピクチャ）におけるオフセット値の候補の数を制限してもよい。
【０３４４】
また、上記に説明した特性上、より深いピクチャデプスに含まれるピクチャほど、オフセット値の最大値はより小さくなり、オフセット値の候補の数はより制限されることとなる。そのため、オフセット判定部３５０は、例えば、複数の参照先を有するピクチャ（即ち、Ｂピクチャ）の場合には、より深いピクチャデプスに含まれるピクチャで選択されたオフセット値の最大値に基づき、対象となるピクチャにおけるオフセット値の候補の数を制限してもよい。
【０３４５】
以上、図３１及び図３２を参照して、本実施形態に係る画像符号化装置におけるサンプル適応オフセットフィルタの概要について説明した。
【０３４６】
［５−２．処理］
次に、本実施形態に係る画像符号化装置におけるサンプル適応オフセットフィルタの一連の処理の流れの一例について、特に、オフセット判定部３５０の処理に着目して説明する。例えば、図３３及び図３４は、本実施形態に係る画像符号化装置における、オフセット判定部３５０の一連の処理の流れの一例を示したフローチャートである。
【０３４７】
図３３に示すフローチャートを、図１７に示したフローチャートと比較するとわかるように、本実施形態に係るオフセット判定部３５０は、ステップＳ８００で示した処理（即ち、オフセット値の候補数の数を制限するための処理）を含む点で、前述した第１の実施形態に係るオフセット判定部３５０と異なる。そこで、本説明では、本実施形態に係るオフセット判定部３５０の処理の流れの一例について、前述した第１の実施形態に係るオフセット判定部３５０（図１７参照）と異なる部分に着目して説明し、その他の部分については、詳細な説明は省略する。
【０３４８】
（ステップＳ８００）
まず、オフセット判定部３５０は、対象となるピクチャのピクチャタイプに応じて、オフセット値の候補の数（即ち、オフセット値の候補の数の最大値Ｎ）を制限する。
【０３４９】
ここで、図３４を参照する。図３４は、オフセット判定部３５０が、対象となるピクチャのピクチャタイプに応じて、オフセット値の候補の数を制限する処理（即ち、図３３においてステップＳ８００で示された処理）の流れの一例について示したフローチャートである。
【０３５０】
（ステップＳ８０１）
まず、オフセット判定部３５０は、処理の対象となるピクチャのピクチャタイプを示す情報に基づき、当該ピクチャが、Ｉ、Ｐ、及びＢピクチャのいずれに相当するかを判別する。
【０３５１】
（ステップＳ８０５）
対象となるピクチャがＩピクチャの場合には（ステップＳ８０３、ＹＥＳ）、オフセット判定部３５０は、オフセット値の候補の数の最大値Ｎを７に設定する。
【０３５２】
（ステップＳ８０９）
また、対象となるピクチャがＰピクチャの場合には（ステップＳ８０３、ＮＯ、かつ、ステップＳ８０７、ＹＥＳ）、オフセット判定部３５０は、当該ピクチャのオフセット値の候補の数の最大値Ｎを、当該ピクチャが参照する他のピクチャ（例えば、ＩまたはＰピクチャ）で選択されたオフセット値の最大値に基づき制限する。なお、このときオフセット判定部３５０は、参照先となる他のピクチャにおけるオフセット値の特定のために算出した統計量に基づき、当該他のピクチャで選択されたオフセット値の最大値を特定すればよい。
【０３５３】
（ステップＳ８０９）
また、対象となるピクチャがＢピクチャの場合には（ステップＳ８０３、ＮＯ、かつ、ステップＳ８０７、ＮＯ）、オフセット判定部３５０は、当該ピクチャのオフセット値の候補の数の最大値Ｎを、当該ピクチャが参照する他のピクチャ（例えば、Ｉ、Ｐ、またはＢピクチャ）それぞれで選択されたオフセット値の最大値のうち、小さい方の値に基づき制限する。なお、このときオフセット判定部３５０は、参照先となる他のピクチャそれぞれにおけるオフセット値の特定のために算出した統計量に基づき、当該他のピクチャで選択されたオフセット値の最大値を特定すればよい。
【０３５４】
以上のようにして、オフセット判定部３５０は、対象となるピクチャのピクチャタイプに応じて、オフセット値の候補の数（即ち、オフセット値の候補の数の最大値Ｎ）を制限する。
【０３５５】
なお、以降の処理（即ち、図３３におけるステップＳ６２１以降の処理）については、前述した第１の実施形態に係るオフセット判定部３５０の場合と同様である。
【０３５６】
なお、図３３に示す例では、図１７に示す例と比較した場合に、オフセット値の候補の数の最大値Ｎが、ステップＳ８００の処理結果に基づき制限されている。そのため、本実施形態に係るオフセット判定部３５０に依れば、ピクチャタイプがＰまたはＢピクチャの場合については、制限されたオフセット値の候補の数だけ、当該候補に対応するコストの計算を省略することが可能となる（即ち、ステップＳ６２２〜Ｓ６２８で示された一連の処理の実行回数（ループ回数）が制限される）。そのため、本実施形態に係るオフセット判定部３５０は、前述した第１の実施形態に係るオフセット判定部３５０（図１７参照）に比べて、オフセット値を特定するための、オフセット値の候補ごとのコスト計算に係る処理量を低減することが可能となる。
【０３５７】
以上、図３３及び図３４を参照して、本実施形態に係る画像符号化装置におけるサンプル適応オフセットフィルタの一連の処理の流れの一例について、特に、オフセット判定部３５０の処理に着目して説明した。
【０３５８】
［５−３．まとめ］
以上、説明したように、本実施形態に係る画像符号化装置のサンプル適応オフセットフィルタは、対象となるピクチャのピクチャタイプに応じて、オフセット値の候補をさらに制限する。具体的には、サンプル適応オフセットフィルタは、対象となるピクチャが、ＰピクチャやＢピクチャ（即ち、他のピクチャを参照した予測結果に基づき生成されるピクチャ）の場合には、当該ピクチャのオフセット値の候補の数を、参照先である他のピクチャで選択されたオフセット値の最大値に基づき制限する。このような構成により、本実施形態に係るサンプル適応オフセットフィルタは、適用するオフセット値を決定するための、当該オフセット値の候補ごとのコスト計算の処理量を低減することが可能となる。
【０３５９】
特に、サンプル適応オフセットフィルタでは、一般的に、ＢピクチャやＰピクチャを処理対象とする場合には、Ｉピクチャを処理対象とする場合に比べて処理量が大きくなる傾向にある。これに対して、本実施形態に係るサンプル適応オフセットフィルタでは、ＰピクチャやＢピクチャを対象とする場合に、オフセット値の候補ごとのコスト計算の処理負荷が軽減されるため、ＰピクチャやＢピクチャを対象とした場合の処理量を軽減することが可能となる。
【０３６０】
なお、参照関係にあるピクチャ間がより類似する傾向にあるほど、各ピクチャにおいて選択されるオフセット値がより小さくなる傾向にある。即ち、本実施形態に係るサンプル適応オフセットフィルタでは、上記に説明した処理の特性上、参照関係にあるピクチャ間がより類似する場合において、ＰピクチャやＢピクチャにおけるオフセット値の候補の数を、より制限することが可能となる。
【０３６１】
具体的な一例として、フレームレートがより高いほど、各フレーム間の時系列に沿った距離がより短くなり、フレーム間がより類似する傾向にあるため、より小さいオフセット値が選択されやすくなる傾向にある。そのため、本実施形態に係るサンプル適応オフセットフィルタにおいては、フレームレートがより高いほど、ＰピクチャやＢピクチャにおけるオフセット値の候補の数を、より制限することが可能となり、ひいては、処理量をより低減することが可能となる傾向にある。
【０３６２】
＜６．ハードウェア構成例＞
上述した実施形態は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。画像符号化装置１０がソフトウェアを使用する場合、ソフトウェアを構成するプログラムは、例えば、装置の内部又は外部に設けられる記憶媒体（非一時的な媒体：non-transitory  media）に予め格納される。そして、各プログラムは、例えば、実行時にＲＡＭ（Random  Access  Memory）に読み込まれ、ＣＰＵ（Central  Processing  Unit）などのプロセッサにより実行される。
【０３６３】
図３５は、上述した実施形態を適用可能なエンコーダのハードウェア構成の一例を示すブロック図である。図３５を参照すると、エンコーダ８００は、システムバス８１０、画像処理チップ８２０及びオフチップメモリ８９０を備える。画像処理チップ８２０は、ｎ個（ｎは１以上）の処理回路８３０−１、８３０−２、…、８３０−ｎ、参照バッファ８４０、システムバスインタフェース８５０及びローカルバスインタフェース８６０を含む。
【０３６４】
システムバス８１０は、画像処理チップ８２０と外部モジュール（例えば、中央制御機能、アプリケーション機能、通信インタフェース又はユーザインタフェースなど）との間の通信路を提供する。処理回路８３０−１、８３０−２、…、８３０−ｎは、システムバスインタフェース８５０を介してシステムバス８１０と接続され、及びローカルバスインタフェース８６０を介してオフチップメモリ８９０と接続される。処理回路８３０−１、８３０−２、…、８３０−ｎは、オンチップメモリ（例えば、ＳＲＡＭ）に相当し得る参照バッファ８４０にもアクセスすることができる。オフチップメモリ８９０は、例えば、画像処理チップ８２０により処理される画像データを記憶するフレームメモリであってよい。
【０３６５】
一例として、処理回路８３０−１は上述したイントラ予測部３０に、処理回路８３０−２は上述したインター予測部３５に、他の処理回路は直交変換部１４に、また別の処理回路は可逆符号化部１６に相当し得る。また、別の処理回路は、ループフィルタ２４に相当し得る。また、ループフィルタ２４を構成する、デブロックフィルタ２００、サンプル適応オフセットフィルタ３００、及び適応ループフィルタ４００のそれぞれを、別の処理回路として構成してもよい。なお、これら処理回路は、同一の画像処理チップ８２０ではなく、別個のチップ上に形成されてもよい。
【０３６６】
＜７．応用例＞
［７−１．様々な製品への応用］
上述した実施形態は、衛星回線、ケーブルＴＶ回線、インターネット、若しくはセルラー通信ネットワークなどを用いて映像の符号化ストリームを送信する送信装置、又は映像の符号化ストリームを光ディスク、磁気ディスク若しくはフラッシュメモリなどの媒体に記録する記録装置、といった様々な電子機器に応用され得る。以下、３つの応用例について説明する。
【０３６７】
（１）第１の応用例
図３６は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機９２０は、アンテナ９２１、通信部９２２、音声コーデック９２３、スピーカ９２４、マイクロホン９２５、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、制御部９３１、操作部９３２、センサ部９３３、バス９３４及びバッテリー９３５を備える。
【０３６８】
アンテナ９２１は、通信部９２２に接続される。スピーカ９２４及びマイクロホン９２５は、音声コーデック９２３に接続される。操作部９３２は、制御部９３１に接続される。バス９３４は、通信部９２２、音声コーデック９２３、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、制御部９３１及びセンサ部９３３を相互に接続する。
【０３６９】
携帯電話機９２０は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
【０３７０】
音声通話モードにおいて、マイクロホン９２５により生成されるアナログ音声信号は、音声コーデック９２３に供給される。音声コーデック９２３は、アナログ音声信号を音声データへ変換し、変換された音声データをＡ／Ｄ変換し圧縮する。そして、音声コーデック９２３は、圧縮後の音声データを通信部９２２へ出力する。通信部９２２は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号をアンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部９２２は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック９２３へ出力する。音声コーデック９２３は、音声データを伸張し及びＤ／Ａ変換し、アナログ音声信号を生成する。そして、音声コーデック９２３は、生成した音声信号をスピーカ９２４に供給して音声を出力させる。
【０３７１】
また、データ通信モードにおいて、例えば、制御部９３１は、操作部９３２を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部９３１は、文字を表示部９３０に表示させる。また、制御部９３１は、操作部９３２を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部９２２へ出力する。通信部９２２は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号をアンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部９２２は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部９３１へ出力する。制御部９３１は、表示部９３０に電子メールの内容を表示させると共に、電子メールデータを記録再生部９２９の記憶媒体に記憶させる。
【０３７２】
記録再生部９２９は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、ＲＡＭ又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、ＵＳＢメモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
【０３７３】
また、撮影モードにおいて、例えば、カメラ部９２６は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部９２７へ出力する。画像処理部９２７は、カメラ部９２６から入力される画像データを符号化し、符号化ストリームを記録再生部９２９の記憶媒体に記憶させる。
【０３７４】
また、テレビ電話モードにおいて、例えば、多重分離部９２８は、画像処理部９２７により符号化された映像ストリームと、音声コーデック９２３から入力される音声ストリームとを多重化し、多重化したストリームを通信部９２２へ出力する。通信部９２２は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号をアンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部９２２は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部９２８へ出力する。多重分離部９２８は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部９２７、音声ストリームを音声コーデック９２３へ出力する。画像処理部９２７は、映像ストリームを復号し、映像データを生成する。映像データは、表示部９３０に供給され、表示部９３０により一連の画像が表示される。音声コーデック９２３は、音声ストリームを伸張し及びＤ／Ａ変換し、アナログ音声信号を生成する。そして、音声コーデック９２３は、生成した音声信号をスピーカ９２４に供給して音声を出力させる。
【０３７５】
センサ部９３３は、加速度センサ及びジャイロセンサなどのセンサ群を含み、携帯電話機９２０の動きを表す指標を出力する。バッテリー９３５は、図中では省略されている電力供給ラインを介して、通信部９２２、音声コーデック９２３、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、制御部９３１及びセンサ部９３３に電力を供給する。
【０３７６】
このように構成された携帯電話機９２０において、画像処理部９２７は、上述した実施形態に係る画像符号化装置１０の機能を有する。それにより、携帯電話機９２０において、適用するＳＡＯのモードと、適用するオフセット値とを決定するためのコスト計算の処理量を低減し、ひいては、携帯電話機９２０の消費電力や回路規模を低減することが可能となる。
【０３７７】
（２）第２の応用例
図３７は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置９４０は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置９４０は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置９４０は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置９４０は、音声データ及び映像データを復号する。
【０３７８】
記録再生装置９４０は、チューナ９４１、外部インタフェース９４２、エンコーダ９４３、ＨＤＤ（Hard  Disk  Drive）９４４、ディスクドライブ９４５、セレクタ９４６、デコーダ９４７、ＯＳＤ（On-Screen  Display）９４８、制御部９４９、及びユーザインタフェース９５０を備える。
【０３７９】
チューナ９４１は、アンテナ（図示せず）を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ９４１は、復調により得られた符号化ビットストリームをセレクタ９４６へ出力する。即ち、チューナ９４１は、記録再生装置９４０における伝送手段としての役割を有する。
【０３８０】
外部インタフェース９４２は、記録再生装置９４０と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース９４２は、例えば、ＩＥＥＥ１３９４インタフェース、ネットワークインタフェース、ＵＳＢインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース９４２を介して受信される映像データ及び音声データは、エンコーダ９４３へ入力される。即ち、外部インタフェース９４２は、記録再生装置９４０における伝送手段としての役割を有する。
【０３８１】
エンコーダ９４３は、外部インタフェース９４２から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ９４３は、符号化ビットストリームをセレクタ９４６へ出力する。
【０３８２】
ＨＤＤ９４４は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラム及びその他のデータを内部のハードディスクに記録する。また、ＨＤＤ９４４は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
【０３８３】
ディスクドライブ９４５は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ９４５に装着される記録媒体は、例えばＤＶＤディスク（ＤＶＤ−Ｖｉｄｅｏ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等）又はＢｌｕ−ｒａｙ（登録商標）ディスクなどであってよい。
【０３８４】
セレクタ９４６は、映像及び音声の記録時には、チューナ９４１又はエンコーダ９４３から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをＨＤＤ９４４又はディスクドライブ９４５へ出力する。また、セレクタ９４６は、映像及び音声の再生時には、ＨＤＤ９４４又はディスクドライブ９４５から入力される符号化ビットストリームをデコーダ９４７へ出力する。
【０３８５】
デコーダ９４７は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ９４７は、生成した映像データをＯＳＤ９４８へ出力する。また、デコーダ９０４は、生成した音声データを外部のスピーカへ出力する。
【０３８６】
ＯＳＤ９４８は、デコーダ９４７から入力される映像データを再生し、映像を表示する。また、ＯＳＤ９４８は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのＧＵＩの画像を重畳してもよい。
【０３８７】
制御部９４９は、ＣＰＵなどのプロセッサ、並びにＲＡＭ及びＲＯＭなどのメモリを有する。メモリは、ＣＰＵにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置９４０の起動時にＣＰＵにより読み込まれ、実行される。ＣＰＵは、プログラムを実行することにより、例えばユーザインタフェース９５０から入力される操作信号に応じて、記録再生装置９４０の動作を制御する。
【０３８８】
ユーザインタフェース９５０は、制御部９４９と接続される。ユーザインタフェース９５０は、例えば、ユーザが記録再生装置９４０を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース９５０は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９４９へ出力する。
【０３８９】
このように構成された記録再生装置９４０において、エンコーダ９４３は、上述した実施形態に係る画像符号化装置１０の機能を有する。それにより、記録再生装置９４０において、適用するＳＡＯのモードと、適用するオフセット値とを決定とを決定するためのコスト計算の処理量を低減し、ひいては、記録再生装置９４０の消費電力や回路規模を低減することが可能となる。
【０３９０】
（３）第３の応用例
図３８は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置９６０は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
【０３９１】
撮像装置９６０は、光学ブロック９６１、撮像部９６２、信号処理部９６３、画像処理部９６４、表示部９６５、外部インタフェース９６６、メモリ９６７、メディアドライブ９６８、ＯＳＤ９６９、制御部９７０、ユーザインタフェース９７１、センサ９７２、バス９７３及びバッテリー９７４を備える。
【０３９２】
光学ブロック９６１は、撮像部９６２に接続される。撮像部９６２は、信号処理部９６３に接続される。表示部９６５は、画像処理部９６４に接続される。ユーザインタフェース９７１は、制御部９７０に接続される。バス９７３は、画像処理部９６４、外部インタフェース９６６、メモリ９６７、メディアドライブ９６８、ＯＳＤ９６９、制御部９７０及びセンサ９７２を相互に接続する。
【０３９３】
光学ブロック９６１は、フォーカスレンズ及び絞り機構などを有する。光学ブロック９６１は、被写体の光学像を撮像部９６２の撮像面に結像させる。撮像部９６２は、ＣＣＤ又はＣＭＯＳなどのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部９６２は、画像信号を信号処理部９６３へ出力する。
【０３９４】
信号処理部９６３は、撮像部９６２から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部９６３は、カメラ信号処理後の画像データを画像処理部９６４へ出力する。
【０３９５】
画像処理部９６４は、信号処理部９６３から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部９６４は、生成した符号化データを外部インタフェース９６６又はメディアドライブ９６８へ出力する。また、画像処理部９６４は、外部インタフェース９６６又はメディアドライブ９６８から入力される符号化データを復号し、画像データを生成する。そして、画像処理部９６４は、生成した画像データを表示部９６５へ出力する。また、画像処理部９６４は、信号処理部９６３から入力される画像データを表示部９６５へ出力して画像を表示させてもよい。また、画像処理部９６４は、ＯＳＤ９６９から取得される表示用データを、表示部９６５へ出力する画像に重畳してもよい。
【０３９６】
ＯＳＤ９６９は、例えばメニュー、ボタン又はカーソルなどのＧＵＩの画像を生成して、生成した画像を画像処理部９６４へ出力する。
【０３９７】
外部インタフェース９６６は、例えばＵＳＢ入出力端子として構成される。外部インタフェース９６６は、例えば、画像の印刷時に、撮像装置９６０とプリンタとを接続する。また、外部インタフェース９６６には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置９６０にインストールされ得る。さらに、外部インタフェース９６６は、ＬＡＮ又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース９６６は、撮像装置９６０における伝送手段としての役割を有する。
【０３９８】
メディアドライブ９６８に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ９６８に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はＳＳＤ（Solid  State  Drive）のような非可搬性の記憶部が構成されてもよい。
【０３９９】
制御部９７０は、ＣＰＵなどのプロセッサ、並びにＲＡＭ及びＲＯＭなどのメモリを有する。メモリは、ＣＰＵにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置９６０の起動時にＣＰＵにより読み込まれ、実行される。ＣＰＵは、プログラムを実行することにより、例えばユーザインタフェース９７１から入力される操作信号に応じて、撮像装置９６０の動作を制御する。
【０４００】
ユーザインタフェース９７１は、制御部９７０と接続される。ユーザインタフェース９７１は、例えば、ユーザが撮像装置９６０を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース９７１は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９７０へ出力する。
【０４０１】
センサ９７２は、加速度センサ及びジャイロセンサなどのセンサ群を含み、撮像装置９６０の動きを表す指標を出力する。バッテリー９７４は、図中では省略されている電力供給ラインを介して、撮像部９６２、信号処理部９６３、画像処理部９６４、表示部９６５、メディアドライブ９６８、ＯＳＤ９６９、制御部９７０及びセンサ９７２に電力を供給する。
【０４０２】
このように構成された撮像装置９６０において、画像処理部９６４は、上述した実施形態に係る画像符号化装置１０の機能を有する。それにより、撮像装置９６０において、適用するＳＡＯのモードと、適用するオフセット値とを決定とを決定するためのコスト計算の処理量を低減し、ひいては、撮像装置９６０の消費電力や回路規模を低減することが可能となる。
【０４０３】
［７−２．様々な実装レベル］
本開示に係る技術は、例えば、システムＬＳＩ（Large  Scale  Integration）などのプロセッサ、複数のプロセッサを用いるモジュール、複数のモジュールを用いるユニット、ユニットにさらにその他の機能を付加したセットなどの様々な実装レベルにおいて実現されてよい。
【０４０４】
（１）ビデオセット
本開示に係る技術をセットとして実現する場合の例について、図３９を参照して説明する。図３９は、ビデオセットの概略的な構成の一例を示すブロック図である。
【０４０５】
近年、電子機器は多機能化している。電子機器の開発又は製造は、個々の機能ごとに行われた後、複数の機能を統合する段階へと進む。従って、電子機器の一部のみを製造し又は販売する事業者が存在する。当該事業者は、単一の機能若しくは互いに関連する複数の機能を有する構成要素を提供し、又は統合的な機能群を有するセットを提供する。図３９に示したビデオセット１３００は、画像の符号化及び復号（いずれか一方でもよい）のための構成要素と、それら機能に関連する他の機能を有する構成要素とを統合的に含むセットである。
【０４０６】
図３９を参照すると、ビデオセット１３００は、ビデオモジュール１３１１、外部メモリ１３１２、パワーマネージメントモジュール１３１３、及びフロントエンドモジュール１３１４を含むモジュール群と、コネクティビティモジュール１３２１、カメラ１３２２、及びセンサ１３２３を含む関連機能のためのデバイス群と、を有する。
【０４０７】
モジュールは、互いに関連するいくつかの機能のための部品を集約することにより形成される構成要素である。モジュールは、どのような物理的構成を有していてもよい。一例として、モジュールは、同一の又は異なる機能を有する複数のプロセッサと、抵抗及びコンデンサなどの電子回路素子と、その他のデバイスとを回路基板に一体的に配置することにより形成され得る。モジュールに他のモジュール又はプロセッサなどを組合せることにより、別のモジュールが形成されてもよい。
【０４０８】
図３９の例では、ビデオモジュール１３１１において、画像処理に関する機能のための部品が集約されている。ビデオモジュール１３１１は、アプリケーションプロセッサ１３３１、ビデオプロセッサ１３３２、ブロードバンドモデム１３３３、及びベースバンドモジュール１３３４を有する。
【０４０９】
プロセッサは、例えばＳＯＣ（System  On  a  Chip）又はシステムＬＳＩ（Large  Scale  Integration）であってよい。ＳｏＣ又はシステムＬＳＩは、所定のロジックを実装するハードウェアを含んでもよい。また、ＳｏＣ又はシステムＬＳＩは、ＣＰＵと、当該ＣＰＵに所定の機能を実行させるためのプログラムを記憶する非一時的な有形の媒体（non-transitory  tangible  media）とを含んでもよい。プログラムは、例えば、ＲＯＭにより記憶され、実行時にＲＡＭ（Random  Access  Memory）に読み込まれた上でＣＰＵにより実行され得る。
【０４１０】
アプリケーションプロセッサ１３３１は、画像処理に関するアプリケーションを実行するプロセッサである。アプリケーションプロセッサ１３３１において実行されるアプリケーションは、画像処理のための何らかの演算に加えて、例えばビデオプロセッサ１３３２及びその他の構成要素の制御を行ってもよい。ビデオプロセッサ１３３２は、画像の符号化及び復号に関する機能を有するプロセッサである。なお、アプリケーションプロセッサ１３３１及びビデオプロセッサ１３３２は、１つのプロセッサに一体化されてもよい（図中の点線１３４１参照）。
【０４１１】
ブロードバンドモデム１３３３は、インターネット又は公衆交換電話網などのネットワークを介する通信に関する処理を行うモジュールである。例えば、ブロードバンドモデム１３３３は、送信データを含むデジタル信号をアナログ信号に変換するためのデジタル変調、及び受信データを含むアナログ信号をデジタル信号に変換するためのデジタル復調を実行する。ブロードバンドモデム１３３３により処理される送信データ及び受信データは、例えば、画像データ、画像データの符号化ストリーム、アプリケーションデータ、アプリケーションプログラム及び設定データなどの任意の情報を含み得る。
【０４１２】
ベースバンドモジュール１３３４は、フロントエンドモジュール１３１４を介して送受信されるＲＦ（Radio  Frequency）信号のためのベースバンド処理を行うモジュールである。例えば、ベースバンドモジュール１３３４は、送信データを含む送信ベースバンド信号を変調し及びＲＦ信号へと周波数変換して、ＲＦ信号をフロントエンドモジュール１３１４へ出力する。また、ベースバンドモジュール１３３４は、フロントエンドモジュール１３１４から入力されるＲＦ信号を周波数変換し及び復調して、受信データを含む受信ベースバンド信号を生成する。
【０４１３】
外部メモリ１３１２は、ビデオモジュール１３１１の外部に設けられる、ビデオモジュール１３１１からアクセス可能なメモリデバイスである。多数のフレームを含む映像データのような大規模データが外部メモリ１３１２に格納される場合、外部メモリ１３１２は、例えばＤＲＡＭ（Dynamic  Random  Access  Memory）のような比較的安価で大容量の半導体メモリを含み得る。
【０４１４】
パワーマネージメントモジュール１３１３は、ビデオモジュール１３１１及びフロントエンドモジュール１３１４への電力供給を制御するモジュールである。
【０４１５】
フロントエンドモジュール１３１４は、ベースバンドモジュール１３３４に接続され、フロントエンド機能を提供するモジュールである。図３９の例において、フロントエンドモジュール１３１４は、アンテナ部１３５１、フィルタ１３５２及び増幅部１３５３を有する。アンテナ部１３５１は、無線信号を送信し又は受信する１つ以上のアンテナ素子と、アンテナスイッチなどの関連する構成要素とを有する。アンテナ部１３５１は、増幅部１３５３により増幅されるＲＦ信号を無線信号として送信する。また、アンテナ部１３５１は、無線信号として受信されるＲＦ信号をフィルタ１３５２へ出力し、当該ＲＦ信号をフィルタ１３５２にフィルタリングさせる。
【０４１６】
コネクティビティモジュール１３２１は、ビデオセット１３００の外部接続に関する機能を有するモジュールである。コネクティビティモジュール１３２１は、任意の外部接続プロトコルをサポートしてよい。例えば、コネクティビティモジュール１３２１は、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＩＥＥＥ８０２．１１（例えばＷｉ−Ｆｉ（登録商標））、ＮＦＣ（Near  Field  Communication）又はＩｒＤＡ（InfraRed  Data  Association）などの無線接続プロトコルをサポートするサブモジュールと、対応するアンテナとを有していてもよい。また、コネクティビティモジュール１３２１は、ＵＳＢ（Universal  Serial  Bus）又はＨＤＭＩ（登録商標）（High-Definition  Multimedia  Interface）などの有線接続プロトコルをサポートするサブモジュールと、対応する接続端子とを有していてもよい。
【０４１７】
また、コネクティビティモジュール１３２１は、磁気ディスク、光ディスク、光磁気ディスク、若しくは半導体メモリなどの記憶媒体、又はＳＳＤ（Solid  State  Drive）若しくはＮＡＳ（Network  Attached  Storage）などのストレージデバイスへのデータの書込み及び当該記憶媒体からのデータの読出しを行うドライブを含んでもよい。コネクティビティモジュール１３２１は、これら記憶媒体又はストレージデバイスを含んでもよい。また、コネクティビティモジュール１３２１は、画像を出力するディスプレイ又は音声を出力するスピーカへの接続性を提供してもよい。
【０４１８】
カメラ１３２２は、被写体を撮像することにより撮像画像を取得するモジュールである。カメラ１３２２により取得される一連の撮像画像は、映像データを構成する。カメラ１３２２により生成される映像データは、例えば、必要に応じてビデオプロセッサ１３３２により符号化され、外部メモリ１３１２により又はコネクティビティモジュール１３２１に接続される記憶媒体により記憶され得る。
【０４１９】
センサ１３２３は、例えば、ＧＰＳセンサ、音声センサ、超音波センサ、光センサ、照度センサ、赤外線センサ、角速度センサ、角加速度センサ、速度センサ、加速度センサ、ジャイロセンサ、地磁気センサ、衝撃センサ及び温度センサのうちの１つ以上を含み得るモジュールである。センサ１３２３により生成されるセンサデータは、例えば、アプリケーションプロセッサ１３３１によりアプリケーションの実行のために利用され得る。
【０４２０】
このように構成されたビデオセット１３００において、本開示に係る技術は、例えば、ビデオプロセッサ１３３２において利用され得る。この場合、ビデオセット１３００は、本開示に係る技術を適用したセットとなる。
【０４２１】
なお、ビデオセット１３００は、画像データを処理する様々な種類の装置として実現されてよい。例えば、ビデオセット１３００は、図２０〜図２３を用いて説明したテレビジョン装置９００、携帯電話機９２０、記録再生装置９４０又は撮像装置９６０に相当してもよい。また、ビデオセット１３００は、図２４を用いて説明したデータ伝送システム１０００におけるＰＣ１００４、ＡＶ機器１００５、タブレット装置１００６若しくは携帯電話機１００７などの端末装置、図２５を用いて説明したデータ伝送システム１１００における放送局１１０１若しくは端末装置１１０２、又は、図２６を用いて説明したデータ伝送システム１２００における撮像装置１２０１若しくはストリーム記憶装置１２０２に相当してもよい。
【０４２２】
（２）ビデオプロセッサ
図４０は、ビデオプロセッサ１３３２の概略的な構成の一例を示すブロック図である。ビデオプロセッサ１３３２は、入力映像信号及び入力音声信号をそれぞれ符号化して映像データ及び音声データを生成する機能と、符号化された映像データ及び音声データを復号して出力映像信号及び出力音声信号を生成する機能と、を有する。
【０４２３】
図４０を参照すると、ビデオプロセッサ１３３２は、ビデオ入力処理部１４０１、第１スケーリング部１４０２、第２スケーリング部１４０３、ビデオ出力処理部１４０４、フレームメモリ１４０５、メモリ制御部１４０６、エンコード・デコードエンジン１４０７、ビデオＥＳ（Elementary  Stream）バッファ１４０８Ａ及び１４０８Ｂ、オーディオＥＳバッファ１４０９Ａ及び１４０９Ｂ、オーディオエンコーダ１４１０、オーディオデコーダ１４１１、多重化部（ＭＵＸ）１４１２、逆多重化部（ＤＥＭＵＸ）１４１３、並びに、ストリームバッファ１４１４を有する。
【０４２４】
ビデオ入力処理部１４０１は、例えばコネクティビティモジュール１３２１から入力された映像信号をデジタル画像データに変換する。第１スケーリング部１４０２は、ビデオ入力処理部１４０１から入力される画像データについてフォーマット変換及びスケーリング（拡大／縮小）を行う。第２スケーリング部１４０３は、ビデオ出力処理部１４０４へ出力される画像データについてのフォーマット変換及びスケーリング（拡大／縮小）を行う。第１スケーリング部１４０２及び第２スケーリング部１４０３におけるフォーマット変換は、例えば、４：２：２／Ｙ−Ｃｂ−Ｃｒ方式と４：２：０／Ｙ−Ｃｂ−Ｃｒ方式との間の変換などであってよい。ビデオ出力処理部１４０４は、デジタル画像データを出力映像信号に変換し、出力映像信号を例えばコネクティビティモジュール１３２１へ出力する。
【０４２５】
フレームメモリ１４０５は、ビデオ入力処理部１４０１、第１スケーリング部１４０２、第２スケーリング部１４０３、ビデオ出力処理部１４０４、及びエンコード・デコードエンジン１４０７によって共用される、画像データを記憶するメモリデバイスである。フレームメモリ１４０５は、例えばＤＲＡＭなどの半導体メモリを用いて実現されてよい。
【０４２６】
メモリ制御部１４０６は、エンコード・デコードエンジン１４０７から入力される同期信号に基づき、アクセス管理テーブル１４０６Ａに記憶されるフレームメモリ１４０５についてのアクセススケジュールに従って、フレームメモリ１４０５へのアクセスを制御する。アクセス管理テーブル１４０６Ａは、エンコード・デコードエンジン１４０７、第１スケーリング部１４０２及び第２スケーリング部１４０３などにおいて実行される処理に依存し、メモリ制御部１４０６により更新される。
【０４２７】
エンコード・デコードエンジン１４０７は、画像データを符号化して符号化映像ストリームを生成するためのエンコード処理、並びに、符号化映像ストリームから画像データを復号するためのデコード処理を行う。例えば、エンコード・デコードエンジン１４０７は、フレームメモリ１４０５から読み出した画像データを符号化し、符号化映像ストリームをビデオＥＳバッファ１４０８Ａに順次書き込む。また、例えば、ビデオＥＳバッファ１４０８Ｂから符号化映像ストリームを順次読み出し、復号した画像データをフレームメモリ１４０５に書き込む。エンコード・デコードエンジン１４０７は、これら処理において、フレームメモリ１４０５を作業領域として使用し得る。エンコード・デコードエンジン１４０７は、例えば、各ＬＣＵ（Largest  Coding  Unit）の処理を開始するタイミングで、メモリ制御部１４０６へ同期信号を出力する。
【０４２８】
ビデオＥＳバッファ１４０８Ａは、エンコード・デコードエンジン１４０７によって生成された符号化映像ストリームをバッファリングする。ビデオＥＳバッファ１４０８Ａによりバッファリングされる符号化映像ストリームは、多重化部１４１２へ出力される。ビデオＥＳバッファ１４０８Ｂは、逆多重化部１４１３から入力される符号化映像ストリームをバッファリングする。ビデオＥＳバッファ１４０８Ｂによりバッファリングされる符号化映像ストリームは、エンコード・デコードエンジン１４０７へ出力される。
【０４２９】
オーディオＥＳバッファ１４０９Ａは、オーディオエンコーダ１４１０によって生成された符号化音声ストリームをバッファリングする。オーディオＥＳバッファ１４０９Ａによりバッファリングされる符号化音声ストリームは、多重化部１４１２へ出力される。オーディオＥＳバッファ１４０９Ｂは、逆多重化部１４１３から入力される符号化音声ストリームをバッファリングする。オーディオＥＳバッファ１４０９Ｂによりバッファリングされる符号化音声ストリームは、オーディオデコーダ１４１１へ出力される。
【０４３０】
オーディオエンコーダ１４１０は、例えばコネクティビティモジュール１３２１から入力される入力音声信号をデジタル変換し、例えばＭＰＥＧオーディオ方式又はＡＣ３（Audio  Code  number  3）方式などの音声符号化方式に従って入力音声信号を符号化する。オーディオエンコーダ１４１０は、符号化音声ストリームをオーディオＥＳバッファ１４０９Ａに順次書き込む。オーディオデコーダ１４１１は、オーディオＥＳバッファ１４０９Ｂから入力される符号化音声ストリームから音声データを復号し、アナログ信号へ変換する。オーディオデコーダ１４１１は、再生されたアナログ音声信号として、例えばコネクティビティモジュール１３２１へ音声信号を出力する。
【０４３１】
多重化部１４１２は、符号化映像ストリームと符号化音声ストリームとを多重化して、多重化ビットストリームを生成する。多重化ビットストリームのフォーマットは、いかなるフォーマットであってもよい。多重化部１４１２は、所定のヘッダ情報をビットストリームに付加してもよい。また、多重化部１４１２は、ストリームのフォーマットを変換してもよい。例えば、多重化部１４１２は、符号化映像ストリームと符号化音声ストリームとが多重化されたトランスポートストリーム（転送用フォーマットのビットストリーム）を生成し得る。また、多重化部１４１２は、符号化映像ストリームと符号化音声ストリームとが多重化されたファイルデータ（記録用フォーマットのデータ）を生成し得る。
【０４３２】
逆多重化部１４１３は、多重化部１４１２による多重化とは逆の手法で、多重化ビットストリームから符号化映像ストリーム及び符号化音声ストリームを逆多重化する。即ち、逆多重化部１４１３は、ストリームバッファ１４１４から読み出されるビットストリームから映像ストリームと音声ストリームとを抽出（又は分離）する。逆多重化部１４１３は、ストリームのフォーマットを変換（逆変換）してもよい。例えば、逆多重化部１４１３は、コネクティビティモジュール１３２１又はブロードバンドモデム１３３３から入力され得るトランスポートストリームをストリームバッファ１４１４を介して取得し、当該トランスポートストリームを映像ストリームと音声ストリームとに変換してもよい。また、逆多重化部１４１３は、コネクティビティモジュール１３２１により記憶媒体から読み出されるファイルデータをストリームバッファ１４１４を介して取得し、当該ファイルデータを映像ストリームと音声ストリームとに変換してもよい。
【０４３３】
ストリームバッファ１４１４は、ビットストリームをバッファリングする。例えば、ストリームバッファ１４１４は、多重化部１４１２から入力されるトランスポートストリームをバッファリングし、所定のタイミングで又は外部からの要求に応じて、例えばコネクティビティモジュール１３２１又はブロードバンドモデム１３３３へトランスポートストリームを出力する。また、例えば、ストリームバッファ１４１４は、多重化部１４１２から入力されるファイルデータをバッファリングし、所定のタイミングで又は外部からの要求に応じて、例えばコネクティビティモジュール１３２１へ、当該ファイルデータを記録のために出力する。さらに、ストリームバッファ１４１４は、例えばコネクティビティモジュール１３２１又はブロードバンドモデム１３３３を介して取得されるトランスポートストリームをバッファリングし、所定のタイミングで又は外部からの要求に応じて、当該トランスポートストリームを逆多重化部１４１３へ出力する。また、ストリームバッファ１４１４は、例えばコネクティビティモジュール１３２１により記憶媒体から読み出されたファイルデータをバッファリングし、所定のタイミングで又は外部からの要求に応じて、当該ファイルデータを逆多重化部１４１３へ出力する。
【０４３４】
このように構成されたビデオプロセッサ１３３２において、本開示に係る技術は、例えば、エンコード・デコードエンジン１４０７において利用され得る。この場合、ビデオプロセッサ１３３２は、本開示に係る技術を適用したチップ又はモジュールとなる。
【０４３５】
図４１は、ビデオプロセッサ１３３２の概略的な構成の他の例を示すブロック図である。図４１の例において、ビデオプロセッサ１３３２は、映像データを所定の方式で符号化し及び復号する機能を有する。
【０４３６】
図４１を参照すると、ビデオプロセッサ１３３２は、制御部１５１１、ディスプレイインタフェース１５１２、ディスプレイエンジン１５１３、画像処理エンジン１５１４、内部メモリ１５１５、コーデックエンジン１５１６、メモリインタフェース１５１７、多重化／逆多重化部１５１８、ネットワークインタフェース１５１９、及びビデオインタフェース１５２０を有する。
【０４３７】
制御部１５１１は、ディスプレイインタフェース１５１２、ディスプレイエンジン１５１３、画像処理エンジン１５１４、及びコーデックエンジン１５１６などの、ビデオプロセッサ１３３２内の様々な処理部の動作を制御する。制御部１５１１は、例えば、メインＣＰＵ１５３１、サブＣＰＵ１５３２及びシステムコントローラ１５３３を有する。メインＣＰＵ１５３１は、ビデオプロセッサ１３３２内の各処理部の動作を制御するためのプログラムを実行する。メインＣＰＵ１５３１は、プログラムの実行を通じて生成される制御信号を各処理部に供給する。サブＣＰＵ１５３２は、メインＣＰＵ１５３１の補助的な役割を果たす。例えば、サブＣＰＵ１５３２は、メインＣＰＵ１５３１が実行するプログラムの子プロセス及びサブルーチンを実行する。システムコントローラ１５３３は、メインＣＰＵ１５３１及びサブＣＰＵ１５３２によるプログラムの実行を管理する。
【０４３８】
ディスプレイインタフェース１５１２は、制御部１５１１による制御の下、画像データを例えばコネクティビティモジュール１３２１へ出力する。例えば、ディスプレイインタフェース１５１２は、デジタル画像データから変換されるアナログ画像信号又はデジタル画像データそのものを、コネクティビティモジュール１３２１に接続されるディスプレイへ出力する。ディスプレイエンジン１５１３は、制御部１５１１による制御の下、画像データの属性が出力先のディスプレイの仕様に適合するように、画像データについてのフォーマット変換、サイズ変換及び色域変換などを実行する。画像処理エンジン１５１４は、制御部１５１１による制御の下、画像データについて、画質改善などの目的を有するフィルタリング処理を含み得る画像処理を実行する。
【０４３９】
内部メモリ１５１５は、ディスプレイエンジン１５１３、画像処理エンジン１５１４、及びコーデックエンジン１５１６により共用される、ビデオプロセッサ１３３２の内部に設けられるメモリデバイスである。内部メモリ１５１５は、例えば、ディスプレイエンジン１５１３、画像処理エンジン１５１４、及びコーデックエンジン１５１６の間で画像データを入出力する際に利用される。内部メモリ１５１５は、いかなる種類のメモリデバイスであってもよい。例えば、内部メモリ１５１５は、ブロック単位の画像データ及び関連するパラメータを記憶するための、比較的小さいメモリサイズを有していてもよい。内部メモリ１５１５は、例えばＳＲＡＭ（Static  Random  Access  Memory）のような（例えば、外部メモリ１３１２に対して相対的に）小容量だが応答速度の速いメモリであってもよい。
【０４４０】
コーデックエンジン１５１６は、画像データを符号化して符号化映像ストリームを生成するためのエンコード処理、並びに、符号化映像ストリームから画像データを復号するためのデコード処理を行う。コーデックエンジン１５１６によりサポートされる画像符号化方式は、任意の１つ又は複数の方式であってよい。図４１の例において、コーデックエンジン１５１６は、ＭＰＥＧ−２  Ｖｉｄｅｏ用ブロック１５４１、ＡＶＣ／Ｈ．２６４用ブロック１５４２、ＨＥＶＣ／Ｈ．２６５用ブロック１５４３、ＨＥＶＣ／Ｈ．２６５（スケーラブル）用ブロック１５４４、ＨＥＶＣ／Ｈ．２６５（マルチビュー）用ブロック１５４５、及びＭＰＥＧ−ＤＡＳＨ用ブロック１５５１を有する。これら機能ブロックは、それぞれ、対応する画像符号化方式に従って画像データを符号化し及び復号する。
【０４４１】
ＭＰＥＧ−ＤＡＳＨ用ブロック１５５１は、画像データをＭＰＥＧ−ＤＡＳＨ方式に従って伝送することを可能とするための機能ブロックである。ＭＰＥＧ−ＤＡＳＨ用ブロック１５５１は、標準仕様に準拠するストリームの生成、及び生成したストリームの伝送の制御を実行する。伝送される画像データの符号化及び復号は、コーデックエンジン１５１６に含まれる他の機能ブロックにより実行されてよい。
【０４４２】
メモリインタフェース１５１７は、ビデオプロセッサ１３３２を外部メモリ１３１２と接続するためのインタフェースである。画像処理エンジン１５１４又はコーデックエンジン１５１６により生成されるデータは、メモリインタフェース１５１７を介して外部メモリ１３１２へ出力される。また、外部メモリ１３１２から入力されるデータは、メモリインタフェース１５１７を介して画像処理エンジン１５１４又はコーデックエンジン１５１６へ供給される。
【０４４３】
多重化／逆多重化部１５１８は、符号化映像ストリーム及び関連するビットストリームの多重化及び逆多重化を行う。多重化の際に、多重化／逆多重化部１５１８は、多重化ストリームに所定のヘッダ情報を付加してもよい。また、逆多重化の際に、多重化／逆多重化部１５１８は、分離された個々のストリームに所定のヘッダ情報を付加してもよい。即ち、多重化／逆多重化部１５１８は、多重化又は逆多重化と共にフォーマット変換を実行し得る。例えば、多重化／逆多重化部１５１８は、複数のビットストリームと転送用フォーマットを有する多重化ストリームであるトランスポートストリームとの間の変換及び逆変換、並びに、複数のビットストリームと記録用フォーマットを有するファイルデータとの間の変換及び逆変換をサポートしてもよい。
【０４４４】
ネットワークインタフェース１５１９は、例えば、ビデオプロセッサ１３３２をブロードバンドモデム１３３３又はコネクティビティモジュール１３２１へ接続するためのインタフェースである。ビデオインタフェース１５２０は、例えば、ビデオプロセッサ１３３２をコネクティビティモジュール１３２１又はカメラ１３２２へ接続するためのインタフェースである。
【０４４５】
このように構成されたビデオプロセッサ１３３２において、本開示に係る技術は、例えば、コーデックエンジン１５１６において利用され得る。この場合、ビデオプロセッサ１３３２は、本開示に係る技術を適用したチップ又はモジュールとなる。
【０４４６】
なお、ビデオプロセッサ１３３２の構成は、上述した２つの例に限定されない。例えば、ビデオプロセッサ１３３２は、１つの半導体チップとして実現されてもよく、又は複数の半導体チップとして実現されてもよい。また、ビデオプロセッサ１３３２は、複数の半導体を積層することにより形成される３次元積層ＬＳＩ、又は複数のＬＳＩの組合せとして実現されてもよい。
【０４４７】
＜８．まとめ＞
以上、図１〜図４１を参照して、本開示の各実施形態に係る画像符号化装置について詳細に説明した。
【０４４８】
なお、本開示に係る技術は、スケーラブル符号化技術に応用されてもよい。ＨＥＶＣのスケーラブル符号化技術を、ＳＨＶＣ（Scalable  HEVC）ともいう。例えば、上述した実施形態は、マルチレイヤの符号化ストリームに含まれる個々のレイヤ（ベースレイヤ及びエンハンスメントレイヤ）に適用可能である。決定されたＳＡＯのモードやオフセット値に関する情報は、レイヤごとに生成され符号化されてもよく、又はレイヤ間で再利用されてもよい。また、本開示に係る技術は、マルチビュー符号化技術に応用されてもよい。例えば、上述した実施形態は、マルチビューの符号化ストリームに含まれる個々のビュー（ベースビュー及びノンベースビュー）に適用可能である。決定されたＳＡＯのモードやオフセット値に関する情報は、ビューごとに生成され符号化されてもよく、又はビュー間で再利用されてもよい。
【０４４９】
本明細書に記述したＣＵ、ＰＵ及びＴＵとの用語は、ＨＥＶＣにおいて、個々のブロックに関連付られるシンタックスをも含む論理的な単位を意味する。画像の一部分としての個々のブロックのみに着目する場合、これらは、ＣＢ（Coding  Block）、ＰＢ（Prediction  Block）及びＴＢ（Transform  Block）との用語にそれぞれ置き換えられてもよい。ＣＢは、ＣＴＢ（Coding  Tree  Block）を四分木（Quad-Tree）状に階層的に分割することにより形成される。１つの四分木の全体がＣＴＢに相当し、ＣＴＢに対応する論理的な単位はＣＴＵ（Coding  Tree  Unit）と呼ばれる。
【０４５０】
また、本明細書では、決定されたＳＡＯのモードやオフセット値に関する情報が、符号化ストリームのヘッダに多重化されて、符号化側から復号側へ伝送される例について主に説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像（スライス若しくはブロックなど、画像の一部であってもよい）と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像（又はビットストリーム）とは別の伝送路上で伝送されてもよい。また、情報は、画像（又はビットストリーム）とは別の記録媒体（又は同一の記録媒体の別の記録エリア）に記録されてもよい。さらに、情報と画像（又はビットストリーム）とは、例えば、複数フレーム、１フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
【０４５１】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０４５２】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【０４５３】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
画像のビット深度に応じて制限されたオフセット値の候補から、復号された復号画像の画素に対して適用する前記オフセット値を設定する設定部と、
前記復号画像の画素に対して、前記設定部により設定された前記オフセット値を適用するフィルタ処理を実行するフィルタ処理部と、
を備える、画像処理装置。
（２）
前記設定部は、第１のビット深度よりも大きい第２のビット深度の場合における前記オフセット値の候補の数を、前記第１のビット深度の場合における前記オフセット値の候補の数に制限する、前記（１）に記載の画像処理装置。
（３）
前記設定部は、前記第２のビット深度の場合における前記オフセット値の候補の数を、前記第１のビット深度の場合に前記オフセット値がとり得る値の数に制限する、前記（２）に記載の画像処理装置。
（４）
当該第１のビット深度の場合に前記オフセット値のとり得る値は０〜７であり、
当該第２のビット深度の場合に前記オフセット値のとり得る値は０〜３１である、前記（２）に記載の画像処理装置。
（５）
前記設定部は、前記画像を量子化する際に用いる量子化パラメタに応じて、前記復号画像の画素に対して適用する前記オフセット値の候補を設定する、前記（２）に記載の画像処理装置。
（６）
前記設定部は、前記量子化パラメタに応じて、前記復号画像の画素に対して適用する前記オフセット値の候補の最大値を制限する、前記（５）に記載の画像処理装置。
（７）
前記設定部は、前記量子化パラメタが小さいほど、前記オフセット値の候補の最大値が小さくなるように当該オフセット値の候補を設定する、前記（６）に記載の画像処理装置。
（８）
前記設定部は、前記量子化パラメタに応じて、隣接する候補間の間隔を設定する、前記（５）に記載の画像処理装置。
（９）
前記設定部は、前記量子化パラメタが大きいほど、隣接する候補間の間隔が大きくなるように、当該間隔を設定する、前記（８）に記載の画像処理装置。
（１０）
前記設定部は、前記画像の特徴量に応じて、前記復号画像の画素に対して適用する前記オフセット値の候補を設定する、前記（２）に記載の画像処理装置。
（１１）
前記特徴量は、前記画像における画素の画素値の分散値であり、
前記設定部は、前記分散値に応じて、前記復号画像の画素に対して適用する前記オフセット値の候補を設定する、前記（１０）に記載の画像処理装置。
（１２）
前記設定部は、前記分散値が小さいほど、前記オフセット値がとり得る値のうち、より小さい値を当該オフセット値の候補として設定する、前記（１１）に記載の画像処理装置。
（１３）
前記フィルタ処理部にフィルタ処理が実行された復号画像を用いて、前記画像を符号化する符号化部を更に備える、前記（１）に記載の画像処理装置。
（１４）
前記符号化部は、ＣＴＢ（Coding  Tree  Block）を再帰的に分割したＣＢ（Coding  Block）を単位として、前記画像を符号化する、前記（１３）に記載の画像処理装置。
（１５）
前記フィルタ処理部は、前記ＣＴＢを単位として、前記オフセット値を適用するフィルタ処理を実行する、前記（１４）に記載の画像処理装置。
（１６）
前記設定部は、前記オフセット値の候補の数を、前記復号画像のピクチャタイプに応じて制限する、前記（１）に記載の画像処理装置。
（１７）
前記設定部は、対象となる復号画像のピクチャタイプが、他の復号画像を参照するピクチャタイプの場合には、前記オフセット値の候補の数を、参照先となる当該他の復号画像における前記オフセット値の候補の数に制限する、前記（１６）に記載の画像処理装置。
（１８）
プロセッサが、画像のビット深度に応じて制限されたオフセット値の候補から、復号された復号画像の画素に対して適用する前記オフセット値を設定することと、
前記復号画像の画素に対して、設定された前記オフセット値を適用するフィルタ処理を実行することと、
を含む、画像処理方法。
【符号の説明】
【０４５４】
１０    画像符号化装置
１１    バッファ
１３    減算部
１４    直交変換部
１５    量子化部
１６    可逆符号化部
１７    蓄積バッファ
１８    レート制御部
２１    逆量子化部
２２    逆直交変換部
２３    加算部
２４    ループフィルタ
２５    フレームメモリ
２６    選択部
２７    選択部
３０    イントラ予測部
３５    インター予測部
１００  原画像保持部
２００  デブロックフィルタ
２４０  モード判定部
３００  サンプル適応オフセットフィルタ
３１０  制御部
３２０  解析部
３３０  統計量取得部
３４０  モード判定部
３５０  オフセット判定部
３５１  オフセット測定部
３５３  オフセット決定部
３５５  候補制御部
３６０  切り替え判定部
３７０  第１の判定部
３７１  モード数カウント部
３７３  判定処理部
３８０  第２の判定部
３９０  フィルタ処理部
４００  適応ループフィルタ
【図１】
2015216627.tif 000003
【図２】
2015216627.tif 000004
【図３】
2015216627.tif 000005
【図４】
2015216627.tif 000006
【図５】
2015216627.tif 000007
【図６】
2015216627.tif 000008
【図７】
2015216627.tif 000009
【図８】
2015216627.tif 000010
【図９】
2015216627.tif 000011
【図１０】
2015216627.tif 000012
【図１１】
2015216627.tif 000013
【図１２】
2015216627.tif 000014
【図１３】
2015216627.tif 000015
【図１４】
2015216627.tif 000016
【図１５】
2015216627.tif 000017
【図１６】
2015216627.tif 000018
【図１７】
2015216627.tif 000019
【図１８】
2015216627.tif 000020
【図１９】
2015216627.tif 000021
【図２０】
2015216627.tif 000022
【図２１】
2015216627.tif 000023
【図２２】
2015216627.tif 000024
【図２３】
2015216627.tif 000025
【図２４】
2015216627.tif 000026
【図２５】
2015216627.tif 000027
【図２６】
2015216627.tif 000028
【図２７】
2015216627.tif 000029
【図２８】
2015216627.tif 000030
【図２９】
2015216627.tif 000031
【図３０】
2015216627.tif 000032
【図３１】
2015216627.tif 000033
【図３２】
2015216627.tif 000034
【図３３】
2015216627.tif 000035
【図３４】
2015216627.tif 000036
【図３５】
2015216627.tif 000037
【図３６】
2015216627.tif 000038
【図３７】
2015216627.tif 000039
【図３８】
2015216627.tif 000040
【図３９】
2015216627.tif 000041
【図４０】
2015216627.tif 000042
【図４１】
2015216627.tif 000043