(57)【要約】【課題】復号画像の画質をより向上させる補正技術を提供する。【解決手段】符号化対象画像を圧縮符号化して復号することによりローカルデコード画像を生成する生成手段と、前記ローカルデコード画像の所定の画素群の各画素について、前記符号化対象画像の対応する画素の画素値との差分値を算出する差分演算手段と、前記差分値の最頻出値を検出する検出手段と、前記最頻出値を用いて前記ローカルデコード画像の前記所定の画素群の各画素を補正する補正手段と、を備えることを特徴とする画像符号化装置を提供する。【選択図】図６
2015080115.tif 000002
【特許請求の範囲】
【請求項１】
符号化対象画像を圧縮符号化して復号することによりローカルデコード画像を生成する生成手段と、
前記ローカルデコード画像の所定の画素群の各画素について、前記符号化対象画像の対応する画素の画素値との差分値を算出する差分演算手段と、
前記差分値の最頻出値を検出する検出手段と、
前記最頻出値を用いて前記ローカルデコード画像の前記所定の画素群の各画素を補正する補正手段と、
を備えることを特徴とする画像符号化装置。
【請求項２】
前記差分値の平均値を算出する差分平均値演算手段と、
前記差分値の数に対する前記最頻出値の数の比率が閾値以下であるか否かを判定する判定手段と、
を更に備え、
前記補正手段は、前記比率が前記閾値以下である場合、前記最頻出値の代わりに前記差分値の平均値を用いて前記ローカルデコード画像の各画素を補正する
ことを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記判定手段は、前記差分値のうち、前記最頻出値を含む所定の範囲の値の数を前記最頻出値の数として、前記判定を行う
ことを特徴とする請求項２に記載の画像符号化装置。
【請求項４】
前記差分平均値演算手段は、前記差分値の和を前記差分値の数で割ることにより、前記差分値の平均値を算出する
ことを特徴とする請求項２又は３に記載の画像符号化装置。
【請求項５】
前記ローカルデコード画像の前記所定の画素群の画素値の平均値を算出するローカルデコード画像平均値演算手段と、
前記ローカルデコード画像の前記所定の画素群に対応する前記符号化対象画像の画素群の画素値の平均値を算出する符号化対象画像平均値演算手段と、
を更に備え、
前記差分平均値演算手段は、前記ローカルデコード画像平均値演算手段により算出された平均値と前記符号化対象画像平均値演算手段により算出された平均値とを用いて、前記差分値の平均値を算出する
ことを特徴とする請求項２又は３に記載の画像符号化装置。
【請求項６】
前記ローカルデコード画像の前記所定の画素群は、前記ローカルデコード画像の全ての画素を含む
ことを特徴とする請求項１乃至５のいずれか１項に記載の画像符号化装置。
【請求項７】
前記ローカルデコード画像の各画素を前記所定の画素群を含む複数の画素群に分類する分類手段を更に備え、
前記検出手段は、前記複数の画素群それぞれについて、前記差分値の最頻出値を検出する
ことを特徴とする請求項１乃至５のいずれか１項に記載の画像符号化装置。
【請求項８】
前記分類手段は、前記ローカルデコード画像の各画素が、前記ローカルデコード画像の画素が取り得る画素値の範囲に含まれる連続する複数の部分範囲のいずれに属するかに応じて、前記ローカルデコード画像の各画素を前記複数の画素群に分類する
ことを特徴とする請求項７に記載の画像符号化装置。
【請求項９】
前記符号化対象画像は、ＨＥＶＣ（Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）規格に従うＣＴＵ（Ｃｏｄｉｎｇ  Ｔｒｅｅ  Ｕｎｉｔ）である
ことを特徴とする請求項１乃至８のいずれか１項に記載の画像符号化装置。
【請求項１０】
画像符号化装置のよる画像符号化方法であって、
前記画像符号化装置の生成手段が、符号化対象画像を圧縮符号化して復号することによりローカルデコード画像を生成する生成工程と、
前記画像符号化装置の差分演算手段が、前記ローカルデコード画像の所定の画素群の各画素について、前記符号化対象画像の対応する画素の画素値との差分値を算出する差分演算工程と、
前記画像符号化装置の検出手段が、前記差分値の最頻出値を検出する検出工程と、
前記画像符号化装置の補正手段が、前記最頻出値を用いて前記ローカルデコード画像の前記所定の画素群の各画素を補正する補正工程と、
を備えることを特徴とする画像符号化方法。
【請求項１１】
コンピュータを、請求項１乃至９のいずれか１項に記載の画像符号化装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置、画像符号化方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、音声信号、映像信号など所謂マルチメディアに関連する情報のデジタル化が急進しており、これに対応して、映像信号の圧縮符号化／復号技術が注目されている。圧縮符号化／復号技術により、映像信号の格納に必要な記憶容量や伝送に必要な帯域を減少させることができる。
【０００３】
一般的な圧縮符号化／復号技術では、多くの映像信号が有する自己相関性の高さ（即ち、冗長性）を利用して情報量（データ量）を圧縮している。映像信号が有する冗長性には、時間冗長性及び二次元の空間冗長性がある。時間冗長性は、ブロック単位の動き検出及び動き補償を用いて低減することができる。一方、空間冗長性は、離散コサイン変換（ＤＣＴ）を用いて低減させることができる。
【０００４】
このような技術を用いた最も高能率な符号化方式として現状普及しているものに、Ｈ．２６４／ＭＰＥＧ−４  ＰＡＲＴ１０（ＡＶＣ）（以下、Ｈ．２６４と呼ぶ）がある。しかしながら、昨今、ハイビジョン画像の１６倍のＳＨＶ（Ｓｕｐｅｒ  Ｈｉｇｈ  Ｖｉｓｉｏｎ）の画像を圧縮したい、或いは、限られた伝送帯域において、より解像度の高い映像を送受信したいといった、更なる高圧縮率符号化に対するニーズが高まっている。このため、ＩＴＵ−ＴとＩＳＯ／ＩＥＣの共同の標準化団体であるＪＣＴＶＣ（Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  −  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）により、符号化効率の改善に関する検討が行われた。その結果、ＨＥＶＣ（Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）と呼ばれる符号化方式が２０１３年１月にＩＴＵ−Ｔにて正式に承認されている。
【０００５】
ＨＥＶＣでは、Ｈ．２６４の２倍の圧縮効率を有すると想定されている。この圧縮効率を実現するためにＨＥＶＣでは様々な新技術が導入されている。その中の１つに、ＳＡＯ（Ｓａｍｐｌｅ  Ａｄａｐｔｉｖｅ  Ｏｆｆｓｅｔ）と呼ばれる適応ループフィルタが存在する。ＳＡＯの基本的な方式については特許文献１に記載されている。以下、ＨＥＶＣにおけるＳＡＯについて、より具体化に説明する。
【０００６】
ＳＡＯは、デブロッキングフィルタ後の画素に対してＳＡＯで設定する条件に該当するか否かの判定を行い、適切なオフセット値を画素に付加することで、符号化後の画像を原画に近づけ、画質を向上させることを狙った技術である。また、ＳＡＯのモードとして、２種類のモードが規定されている。いずれのモードにおいても、各画素は５つのカテゴリに分類され、カテゴリ毎にオフセット値が設定される。オフセット値を付加するあるいは付加しないといった処理は、ＣＴＵ（Ｃｏｄｉｎｇ  Ｔｒｅｅ  Ｕｎｉｔ）単位で実施される。
【０００７】
ＳＡＯのモードの１つであるＢａｎｄ  Ｏｆｆｓｅｔモード（以下、ＢＯと呼ぶ）について、図３を用いて説明する。ＢＯでは、画素値の最小値（図３では０）から最大値（図３では２５５）までを３２のバンドに等分し、各画素に対し、画素が属するバンドに応じてオフセット値を切り替えてオフセット処理を実施する。
【０００８】
ＢＯでは、３２のバンドのうち、４つの連続したバンドに属する画素に対してオフセット値が付加される。ＢＯを実施するＣＴＵでは、オフセット適用バンドを示すｓａｏ＿ｂａｎｄ＿ｐｏｓｉｔｉｏｎ（図３では、画素値３２）が指定され、そこから連続した４つのバンド（図３では、画素値３２から画素値６３）が、オフセットオンの４カテゴリとして指定される。一方、それ以外のバンドは、オフセットオフのカテゴリとなる。ＢＯは、特定の範囲の値をもつ画素を補正するため、ＣＴＵに含まれる画素値にばらつきが少ない場合に特に有効に補正が働くモードである。
【０００９】
続いて、ＳＡＯのもう１つのモードであるＥｄｇｅ  Ｏｆｆｓｅｔモード（以下、ＥＯと呼ぶ）について、図４を用いて説明する。ＥＯでは、図４の下側に示すようにＣＴＵ内の画素を、隣接画素との画素値の大小関係に基づいてカテゴリ分けを行う。大小関係の比較に用いられる隣接画素の位置としては、図４の上側に示すように４パターンが定義されており、符号化装置は、この４種のうちどのパターンを用いるかを決定する。ＥＯでは、局所的な画素値の山、谷を平坦になるよう補正する効果がある。そのため、ＥＯは、原画像の急峻なエッジ付近で発生するモスキートノイズの補正に有効に働くモードである。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１２−００５１１３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ＳＡＯは、符号化時に適切なオフセット値を設定することにより、復号画像を原画像に近づけ画質を向上することができる。しかしながら、オフセット値が適切に設定できないと、逆に画質を劣化させてしまう恐れがある。
【００１２】
特許文献１では、オフセット値を決定する方法として、符号化前の画素値の平均値と符号化後（ローカルデコード後）の画素値の平均値の差を用いる方式を提案している。この方式では、平均的な画素値の補正を行えるためＰＳＮＲが向上し、基本的な画質の向上を図ることができる。しかし、符号化後の画素値の状態によっては充分な画質向上が行えない場合がある。充分な画質向上が行えない例について、図５を用いて説明する。
【００１３】
図５（ａ）は、一例としてＣＴＵサイズが４×４とした場合の、符号化対象ＣＴＵの各画素値と、符号化後であってＳＡＯ処理を実施する前のローカルデコードＣＴＵの各画素値とを表している。ここでは、ＳＡＯモードとしてＢＯを適用した例を示す。また、図３と同様、ｓａｏ＿ｂａｎｄ＿ｐｏｓｉｔｉｏｎを画素値３２からに設定し、すべてのローカルデコードＣＴＵの画素値がＶａｌ１のカテゴリに属す場合を例として用いる。図５（ａ）において、符号化前の画素値の平均値と符号化後の画素値の平均値の差を算出すると、値は２になる。従って、特許文献１に従うと、オフセット値は２である。
【００１４】
図５（ｂ）は、オフセット値を２に設定した場合のＳＡＯ処理後ＣＴＵと符号化対象ＣＴＵの各画素の差分値と、ＳＡＯ処理前ＣＴＵと符号化対象ＣＴＵの各画素の差分値とを、左上からラスタ順にグラフ化し比較したものである。図５（ｂ）においては、差分値が０に近づくほど符号化対象ＣＴＵとの差が小さくなるため、画質が向上することを示している。ＳＡＯ処理後の差分値を見ると、オフセット値を付加したことで、一部の画素を除き多くの画素において差分値が０に近づき、多少の画質改善が行えていることが分かる。しかしながら、ほとんどの画素で３の差分値が残っており、依然として符号化対象ＣＴＵの画素値との差を解消しきれていない。
【００１５】
本発明はこのような状況に鑑みてなされたものであり、復号画像の画質をより向上させる補正技術を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するために、本発明は、符号化対象画像を圧縮符号化して復号することによりローカルデコード画像を生成する生成手段と、前記ローカルデコード画像の所定の画素群の各画素について、前記符号化対象画像の対応する画素の画素値との差分値を算出する差分演算手段と、前記差分値の最頻出値を検出する検出手段と、前記最頻出値を用いて前記ローカルデコード画像の前記所定の画素群の各画素を補正する補正手段と、を備えることを特徴とする画像符号化装置を提供する。
【００１７】
なお、その他の本発明の特徴は、添付図面及び以下の発明を実施するための形態における記載によって更に明らかになるものである。
【発明の効果】
【００１８】
本発明によれば、復号画像の画質をより向上させることが可能となる。
【図面の簡単な説明】
【００１９】
【図１】第１の実施形態に係るＳＡＯ設定部２１６の詳細なブロック図。
【図２】第１の実施形態に係る画像符号化装置２００の構成を示すブロック図。
【図３】ＳＡＯのＢａｎｄ  Ｏｆｆｓｅｔモードの説明図。
【図４】ＳＡＯのＥｄｇｅ  Ｏｆｆｓｅｔモードの説明図。
【図５】従来のＳＡＯにおける課題の説明図。
【図６】第１の実施形態に係るＳＡＯ設定部２１６が実行する処理を示すフローチャート。
【図７】ＳＡＯオフセット値の決定方法の具体例を示す図。
【図８】第１の実施形態に係るＳＡＯ処理により符号化対象ＣＴＵとローカルデコードＣＴＵとの差分値が０に近づく様子を説明する図。
【図９】第２の実施形態に係るＳＡＯ設定部２１６の詳細なブロック図。
【図１０】第２の実施形態に係るＳＡＯ設定部２１６が実行する処理を示すフローチャート。
【発明を実施するための形態】
【００２０】
以下、添付図面を参照して、本発明の実施形態を説明する。なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。また、実施形態の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。
【００２１】
［第１の実施形態］
図２は、第１の実施形態に係る画像符号化装置２００の構成を示すブロック図である。図２に示すように、画像符号化装置２００は、フレームメモリ２０１、フィルタ後参照フレームメモリ２０２、予測モード決定部２０３、予測画像生成部２０４、直交変換部２０６、量子化部２０７、及びエントロピー符号化部２０８を備える。画像符号化装置２００はまた、逆量子化部２０９、逆直交変換部２１０、減算器２１２、加算器２１３、フィルタ前参照フレームメモリ２１４、ループフィルタ２１５、及びＳＡＯ設定部２１６も備える。
【００２２】
まず、画像符号化装置２００が入力画像を符号化する手順について、図２を参照しながら説明する。フレームメモリ２０１には、表示順に入力画像（原画像）が保存される。そして、符号化順に符号化対象ブロックが予測モード決定部２０３、予測画像生成部２０４、減算器２１２へと順次送信される。符号化対象ブロックは、例えば、ＨＥＶＣ（Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）規格に従うＣＴＵ（Ｃｏｄｉｎｇ  Ｔｒｅｅ  Ｕｎｉｔ）である。
【００２３】
フィルタ後参照フレームメモリ２０２には、フィルタ後にＳＡＯ処理された符号化済み画像が参照画像として保存される。そして、符号化順に符号化対象ブロックの参照画像が予測モード決定部２０３、予測画像生成部２０４へと順次送信される。
【００２４】
減算器２１２は、フレームメモリ２０１から送信されてくる符号化対象ブロックから、予測画像生成部２０４から送信されてくる予測画像ブロックを減算し、画像残差データを出力する。
【００２５】
直交変換部２０６は、減算器２１２から出力された画像残差データを直交変換処理して、変換係数を量子化部２０７に送信する。量子化部２０７は、直交変換部２０６からの変換係数を所定の量子化パラメータを用いて量子化し、エントロピー符号化部２０８及び逆量子化部２０９に送信する。
【００２６】
エントロピー符号化部２０８は、量子化部２０７で量子化された変換係数や後述するＳＡＯ設定部２１６から送信されるＳＡＯパラメータなどが入力され、ＣＡＢＡＣなどのエントロピー符号化を施して、符号化データとして出力する。
【００２７】
続いて、量子化部２０７で量子化された変換係数を用いて参照画像データ（フィルタ前参照画像データ及びフィルタ後参照画像データ）を生成する手順について述べる。逆量子化部２０９は、量子化部２０７から送信されてくる量子化された変換係数を逆量子化する。逆直交変換部２１０は、逆量子化部２０９で逆量子化された変換係数を逆直交変換し、復号残差データを生成し加算器２１３に送信する。
【００２８】
加算器２１３は、復号残差データと後述する予測画像データとを加算して参照画像データ（フィルタ前参照画像データ）を生成し、フィルタ前参照フレームメモリ２１４に保存する。フィルタ前参照画像データは、ループフィルタ２１５へも送信される。ループフィルタ２１５は、フィルタ前参照画像データをフィルタリングしてノイズを除去し、フィルタ後参照画像データをＳＡＯ設定部２１６に送信する。これにより、符号化対象ブロックを圧縮符号化して復号することにより得られるローカルデコード画像がＳＡＯ設定部２１６に入力される。
【００２９】
ＳＡＯ設定部２１６は、適応オフセット（ＳＡＯ）処理を施し、ＳＡＯ処理を施した後の参照画像データをフィルタ後参照フレームメモリ２０２に保存する。なお、ＳＡＯ処理のためのオフセット値（ＳＡＯオフセット値）の決定方法については、後に詳細に説明する。
【００３０】
続いて、前述の入力画像データ、フィルタ前参照画像データ、及びフィルタ後参照画像データを用いて予測画像データを生成する手順について述べる。予測モード決定部２０３は、フレームメモリ２０１から送信される符号化対象ブロック、及びフィルタ後参照フレームメモリ２０２から送信されるフィルタ後参照画像データから、符号化対象ブロックの予測モードを決定する。そして、予測モード決定部２０３は、決定した予測モードを、フィルタ後参照画像データの番号と共に予測画像生成部２０４に送信する。
【００３１】
予測画像生成部２０４は、予測画像データを生成する。その際、予測モード決定部２０３からの予測モードに基づき、フィルタ後参照フレームメモリ２０２中の参照画像データを参照するか、或いはフィルタ前参照フレームメモリ２１４から送信される符号化対象ブロック周辺の復号化済み画素を用いるかを判断する。予測画像生成部２０４は、予測画像データを生成したら、予測画像データを減算器２１２に送信する。
【００３２】
続いて、ＳＡＯ設定部２１６におけるＳＡＯオフセット値の決定方法について、ＳＡＯ設定部２１６の詳細なブロック図（図１）、ＢＯの説明図（図３）、ＥＯ説明図（図４）、図６のフローチャート、図７、及び図８を参照して説明する。
【００３３】
図１に示すように、ＳＡＯ設定部２１６は、ＳＡＯモード設定部１００、カテゴリ分類部１０１、画素差分演算部１０２、画素差分平均値演算部１０３、画素差分最頻出値検出部１０４、及びＳＡＯモード決定部１０５を含む。ＳＡＯ設定部２１６はまた、ＳＡＯオフセット値決定部１０６、及びＳＡＯ実行部１０７も含む。
【００３４】
図６は、ＳＡＯ設定部２１６が実行する処理を示すフローチャートである。Ｓ６０１で、ＳＡＯモード設定部１００は、図３で示したＢＯか、又は、図４の上側に示したＥＯの４種類のエッジのいずれかのモードを設定し、カテゴリ分類部１０１に送信する。なお、処理が後述のＳ６０７からＳ６０１に戻ることにより、Ｓ６０１では全てのモードが順に設定される。
【００３５】
Ｓ６０２で、カテゴリ分類部１０１は、ＳＡＯモード設定部１００で設定されたモードに従い、ループフィルタ２１５から入力されるフィルタ後参照画像データ（ローカルデコード画像）の各画素がいずれのカテゴリに該当するか分類する。即ち、ＢＯの場合は図３で示したいずれのバンド（カテゴリ）に属するか、ＥＯの場合は図４の下側に示したいずれのカテゴリに属するか（或いは属さないか）を分類する。なお、ＢＯの場合、カテゴリ分類部１０１は、現時点ではｓａｏ＿ｂａｎｄ＿ｐｏｓｉｔｉｏｎを設定せず、各画素が３２バンド（図３だと０〜２５５の範囲の画素値）のいずれのバンド（部分範囲）に属するかを分類する。カテゴリ分類部１０１は、カテゴリの分類を行った後、ローカルデコード画像を画素差分演算部１０２に送信する。
【００３６】
Ｓ６０３で、画素差分演算部１０２は、カテゴリ分類部１０１から送信されるローカルデコード画像、及びフレームメモリ２０１から送信される符号化対象画像を用いて、カテゴリ別の画素差分値を演算する。カテゴリ別に演算された差分値は、画素差分平均値演算部１０３及び画素差分最頻出値検出部１０４に送信される。
【００３７】
Ｓ６０４で、画素差分平均値演算部１０３は、画素差分演算部１０２から送信される画素差分値を用いて、カテゴリ別に画素差分値の平均値を演算する。この演算は、例えば、カテゴリごとに、画素差分値の和を画素差分値の数で割ることにより行われる。演算した画素差分平均値は、ＳＡＯモード決定部１０５に送信される。
【００３８】
Ｓ６０５で、画素差分最頻出値検出部１０４は、カテゴリ別に画素差分値を確認し、画素差分値毎に発生した数をカウントする。そして、カテゴリ別の該当画素の数、最頻出の画素差分値、及び最頻出の画素差分値の数を検出し、ＳＡＯオフセット値決定部１０６に送信する。
【００３９】
Ｓ６０６で、ＳＡＯモード決定部１０５は、画素差分平均値演算部１０３から送信されるカテゴリ毎の画素差分平均値をＳＡＯの各カテゴリのオフセット値として用いて、ループフィルタ２１５から入力されるローカルデコード画像に対し仮のＳＡＯ処理を行う。なお、ＳＡＯモード設定部１００で設定されたモードがＢＯの場合は、ＳＡＯモード決定部１０５は、まず画素差分最頻出値検出部１０４でカウントしている画素差分値のカテゴリ別の数と各カテゴリの画素差分平均値を乗算した値を算出する。続いて、連続した４バンドで算出した値の和をとり、和が最も大きくなる連続した４バンドの始点をｓａｏ＿ｂａｎｄ＿ｐｏｓｉｔｉｏｎとして設定し、ＳＡＯを適用する。ＳＡＯモード決定部１０５は、ＳＡＯを適応したローカルデコード画像を生成した後、フレームメモリ２０１から送信される符号化対象画像と各画素で差分をとり、差分絶対値和を算出し、ＳＡＯモード別に保持する。
【００４０】
Ｓ６０７では、全てのＳＡＯモード（ＢＯが１種類、ＥＯが４種類）についてＳ６０１〜Ｓ６０６の処理が完了したか否かが判定され、完了していない場合、処理はＳ６０１に戻り、完了した場合、処理はＳ６０８に進む。
【００４１】
Ｓ６０８で、ＳＡＯモード決定部１０５は、Ｓ６０６で算出された各モードの差分絶対値和に基づき、最も差分絶対値和が小さいモードを最終的なＳＡＯのモードとして決定し、決定したモードをＳＡＯオフセット値決定部１０６に通知する。
【００４２】
Ｓ６０９で、ＳＡＯオフセット値決定部１０６は、決定されたＳＡＯモードにおけるカテゴリ別該当画素の数から各カテゴリにおける閾値Ｔｈｃａｔを設定し、最頻出値の数Ｃｎｔｆｒｅと比較する。そして、Ｃｎｔｆｒｅが閾値よりも大きければ（Ｃｎｔｆｒｅ＞Ｔｈｃａｔであれば）、Ｓ６１０においてＳＡＯオフセット値決定部１０６は、最頻出値をそのカテゴリにおけるＳＡＯのオフセット値として採用する。他方、Ｃｎｔｆｒｅが閾値以下であれば（Ｃｎｔｆｒｅ≦Ｔｈｃａｔであれば）、Ｓ６１１においてＳＡＯオフセット値決定部１０６は、画素差分平均値をそのカテゴリにおけるＳＡＯのオフセット値として採用する。採用されたオフセット値は、ＳＡＯ実行部１０７に通知される。
【００４３】
Ｓ６１２で、ＳＡＯ実行部１０７は、Ｓ６０８で決定されたＳＡＯモード、及び、Ｓ６１０又はＳ６１１で決定されたオフセット値を用いて、ＳＡＯ処理前のローカルデコード画像に対してＳＡＯ処理（各画素の補正）を適用する。そして、ＳＡＯ実行部１０７は、ＳＡＯ処理されたローカルデコード画像をフィルタ後参照フレームメモリ２０２に保存する。また、ＳＡＯ実行部１０７は、ＳＡＯ処理に用いたＳＡＯパラメータ（ＳＡＯモード及びオフセット値）を符号化するために、ＳＡＯパラメータをエントロピー符号化部２０８に送信する。
【００４４】
なお、Ｓ６０９において、各カテゴリにおける閾値Ｔｈｃａｔは各カテゴリに該当する画素の数Ｃｎｔｃａｔと、係数αとを用いて、以下の数式（１）１のように求められる。
Ｔｈｃａｔ＝Ｃｎｔｃａｔ×α  （αは０〜１の実数）  ・・・  （１）
【００４５】
ここで、各カテゴリにおけるＳＡＯオフセット値の決定方法を、図７の具体例を用いて説明する。この例では、ＳＡＯモードとしてＢＯが選択されており、ＳＡＯが適応されるバンドが画素値３２〜６３の４バンドに設定されているものとするが、他のＳＡＯモードの場合も基本的な考え方は同様である。図７は、ＣＴＵのサイズが３２×３２の場合の、符号化対象ＣＴＵの画素値、ローカルデコードＣＴＵ（ＳＡＯ前）の画素値、及び、カテゴリ別の符号化対象ＣＴＵとローカルデコードＣＴＵ（ＳＡＯ前）の画素差分値を示している。
【００４６】
図７において、Ｖａｌ０（画素値３２〜３９）のカテゴリに該当する画素の数は１４個となっている。また、Ｖａｌ１（画素値４０〜４７）のカテゴリに該当する画素の数は１４個、Ｖａｌ２（画素値４８〜５５）のカテゴリに該当する画素の数は１６個となっている。Ｖａｌ３（画素値５６〜６３）のカテゴリに該当する画素の数は１３個となっている。また、いずれのカテゴリにも属さない画素は７個ある。このように、ローカルデコードＣＴＵの各画素は、Ｖａｌ０〜Ｖａｌ３それぞれに対応する４つの画素群と、Ｖａｌ０〜Ｖａｌ３のいずれにも対応しない１つの画素群とに分類される。
【００４７】
ここで、閾値Ｔｈｃａｔを、各カテゴリに該当する画素の数の７０％に設定する。換言すると、各カテゴリに該当する画素の数に対する最頻出値の数の比率が７０％を超えるか否かが基準となる。すると、係数αには０．７が設定され、各カテゴリに設定されるＴｈｃａｔは以下のように求められる。
Ｖａｌ０のＴｈｃａｔ：１４×０．７＝９
Ｖａｌ１のＴｈｃａｔ：１４×０．７＝９
Ｖａｌ２のＴｈｃａｔ：１６×０．７＝１１
Ｖａｌ３のＴｈｃａｔ：１３×０．７＝９
【００４８】
また、Ｖａｌ０のカテゴリにおいては、最頻出値が５で１０個あるので、最頻出値の数Ｃｎｔｆｒｅは１０である。同様に、Ｖａｌ１のカテゴリにおいては、最頻出値が７で９個あるので、最頻出値の数Ｃｎｔｆｒｅは９であり、Ｖａｌ２のカテゴリにおいては、最頻出値が３で１４個あるので、最頻出値の数Ｃｎｔｆｒｅは１４である。Ｖａｌ３のカテゴリにおいては、最頻出値が１で６個あるので、最頻出値の数Ｃｎｔｆｒｅは６である。
【００４９】
従って各カテゴリにおけるＴｈｃａｔとＣｎｔｆｒｅを比較し、ＳＡＯのオフセット値を求めると、Ｖａｌ０のカテゴリにおいては、Ｔｈｃａｔが９、Ｃｎｔｆｒｅが１０であり、Ｃｎｔｆｒｅの方が大きいため、オフセット値は最頻出値である５に設定される。他方、Ｖａｌ１のカテゴリにおいては、Ｔｈｃａｔが９、Ｃｎｔｆｒｅが９であり、ＣｎｔｆｒｅがＴｈｃａｔより大きくならないため、オフセット値は差分平均値である−５に設定される。同様に、Ｖａｌ２のカテゴリにおいては、Ｔｈｃａｔが１１、Ｃｎｔｆｒｅが１４であり、Ｃｎｔｆｒｅの方が大きいため、オフセット値は最頻出値である３に設定される。Ｖａｌ３のカテゴリにおいては、Ｔｈｃａｔが９、Ｃｎｔｆｒｅが６であり、Ｃｎｔｆｒｅの方が小さいため、オフセット値は差分平均値である−２に設定される。
【００５０】
以上のように、最頻出値の数が多い場合には最頻出値をＳＡＯのオフセット値として用いることで、より多くの数の画素において符号化対象画像との差分が無くなるため、画質の向上が期待できる。一方、最頻出値の数が少ない場合には差分平均値を用いた方が、ＳＡＯ処理後の画素値と符号化対象画像の画素値との差分が平均的に０に近づくため、画質の向上が期待できる。
【００５１】
図８を参照して、第１の実施形態に係るＳＡＯ処理により符号化対象ＣＴＵとローカルデコードＣＴＵとの差分値が０に近づく様子を説明する。図８（ａ）は、図５（ａ）と同様、ＣＴＵサイズが４×４とした場合の、符号化対象ＣＴＵの各画素値と、ＳＡＯ処理を実施する前のローカルデコードＣＴＵの各画素値とを表している。また、ＳＡＯモードはＢＯであり、ｓａｏ＿ｂａｎｄ＿ｐｏｓｉｔｉｏｎは画素値３２に設定されており、すべてのローカルデコードＣＴＵの画素値がＶａｌ１のカテゴリに属するものとする。この場合、Ｖａｌ１のオフセット値は、差分最頻出値である５に設定される。
【００５２】
図８（ｂ）は、オフセット値を５に設定した場合のＳＡＯ処理後ＣＴＵと符号化対象ＣＴＵの各画素の差分値と、ＳＡＯ処理前ＣＴＵと符号化対象ＣＴＵの各画素の差分値とを、左上からラスタ順にグラフ化し比較したものである。図８（ｂ）においては、図５（ｂ）の場合と異なり、多くの画素において差分値が０である。
【００５３】
なお、本実施形態では、ＳＡＯモードを決定する方式として、仮のＳＡＯ処理を行った場合のローカルデコード画像と符号化対象画像の差分絶対値和が最も小さいモードをＳＡＯモードとして決定する方式を一例として挙げたが、この方式に限定されない。別の方式としては、例えば、仮のＳＡＯ処理を行った場合のローカルデコード画像と符号化対象画像の差分絶対値和にＳＡＯパラメータの符号量を考慮したコストを加え、コストが最小になるモードを選択する方式などが考えられる。
【００５４】
また、本実施形態では、ＳＡＯ設定部２１６は、カテゴリ別に画素差分最頻出値を検出したが、カテゴリを分けずに、ローカルデコード画像の全ての画素の差分値から最頻出値を検出してもよい。カテゴリを分けずに最頻出値を検出する方式は、特に平坦な映像で、差分値の凹凸が大きくならない場合にＢＯを適用する際に、有効に働くことが期待できる。
【００５５】
また、本実施形態では、ＳＡＯ設定部２１６は、最頻出値の数Ｃｎｔｆｒｅをカウントする際に、カテゴリ毎の最頻出値のみをカウントしていたが、最頻出値周辺の値を複数用いて、幅を設けてカウントを行ってもよい。図７を用いて具体的に説明する。ここでは、例としてＣｎｔｆｒｅをカウントする際、最頻出値だけで無く最頻出値と前後の３つの値をカウントアップに用いるものとする。この場合、Ｖａｌ０に属する画素のＣｎｔｆｒｅをカウントアップする際の対象の画素値は、４〜６となる。同様に、Ｖａｌ１に属する画素のＣｎｔｆｒｅをカウントアップする際の対象の画素値は、６〜８となり、Ｖａｌ２に属する画素のＣｎｔｆｒｅをカウントアップする際の対象の画素値は、２〜４となる。Ｖａｌ３に属する画素のＣｎｔｆｒｅをカウントアップする際の対象の画素値は、０〜２となる。そのため、Ｖａｌ１、Ｖａｌ２におけるＣｎｔｆｒｅは変わらないがＶａｌ０においてはＣｎｔｆｒｅが１２になる。また、Ｖａｌ３においてはＣｎｔｆｒｅが７になる。
【００５６】
以上説明したように、第１の実施形態によれば、画像符号化装置２００は、一定条件下で、ＳＡＯ処理のオフセット値を、ＳＡＯ処理前ＣＴＵと符号化対象ＣＴＵの各画素の差分値の最頻出値に設定する。これにより、復号画像の画質を向上させることが可能となる。
【００５７】
［第２の実施形態］
続いて，図９及び図１０を参照して、第２の実施形態について説明する。第２の実施形態では、画像符号化装置２００の基本的な構成は第１の実施形態と同様であるが（図２参照）、ＳＡＯ設定部２１６の構成及び動作が第１の実施形態と若干異なる。
【００５８】
図９は、第２の実施形態に係るＳＡＯ設定部２１６の詳細なブロック図である。図９において、図１と同一又は同様の機能を持つブロックには図１と同一の符号を付し、その説明を省略する。図９に示すように、ＳＡＯ設定部２１６は、符号化対象画像平均値演算部９０８、及び、ローカルデコード画像平均値演算部９０９を含む。これらのブロックの機能については、図１０を参照して説明する。
【００５９】
図１０は、第２の実施形態に係るＳＡＯ設定部２１６が実行する処理を示すフローチャートである。図１０において、図６と同一又は同様の処理が行われるステップには図６と同一の符号を付し、その説明を省略する。
【００６０】
Ｓ１００１で、符号化対象画像平均値演算部９０８は、フレームメモリ２０１から送信される符号化対象画像とカテゴリ分類部１０１の分類結果とを用いて、カテゴリ別に画素の平均値を演算する。符号化対象画像平均値演算部９０８は、算出したカテゴリ別の平均値を画素差分演算部１０２に送信する。
【００６１】
Ｓ１００２で、ローカルデコード画像平均値演算部９０９は、カテゴリ分類部１０１から送信されるＳＡＯ処理前のローカルデコード画像とカテゴリ分類結果とを用いて、カテゴリ別に画素の平均値を演算する。ローカルデコード画像平均値演算部９０９は、算出したカテゴリ別の平均値を画素差分演算部１０２に送信する。
【００６２】
Ｓ１００３で、画素差分演算部１０２は、カテゴリ分類部１０１から送信されるローカルデコード画像、及びフレームメモリ２０１から送信される符号化対象画像を用いて、カテゴリ別の画素差分値を演算する。また、画素差分演算部１０２は、符号化対象画像平均値演算部９０８から送信される符号化対象画像のカテゴリ別画素平均値とローカルデコード画像平均値演算部９０９から送信されるローカルデコード画像のカテゴリ別画素平均値との差分値を演算する。カテゴリ別に演算された差分値は、画素差分最頻出値検出部１０４に送信される。また、カテゴリ別画素平均値の差分値は、ＳＡＯモード決定部１０５に送信される。
【００６３】
Ｓ１００４で、画素差分最頻出値検出部１０４は、カテゴリ別に画素差分値を確認し、画素差分値毎に発生した数をカウントする。そして、カテゴリ別の該当画素の数、最頻出の画素差分値、及び最頻出の画素差分値の数を検出し、ＳＡＯオフセット値決定部１０６に送信する。
【００６４】
Ｓ１００５の処理は、Ｓ６０６（図６）の処理とほぼ同じである。但し、Ｓ１００５では、Ｓ１００３において画素差分演算部１０２から送信されたカテゴリ別画素平均値の差分値が、ＳＡＯの各カテゴリのオフセット値として用いられる。
【００６５】
以上の通り、第２の実施形態では、演算の順序が第１の実施形態と異なるが、第１の実施形態と同様、画像符号化装置２００は、一定条件下で、ＳＡＯ処理のオフセット値を、ＳＡＯ処理前ＣＴＵと符号化対象ＣＴＵの各画素の差分値の最頻出値に設定する。これにより、復号画像の画質を向上させることが可能となる。
【００６６】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015080115.tif 000003
【図２】
2015080115.tif 000004
【図３】
2015080115.tif 000005
【図４】
2015080115.tif 000006
【図５】
2015080115.tif 000007
【図６】
2015080115.tif 000008
【図７】
2015080115.tif 000009
【図８】
2015080115.tif 000010
【図９】
2015080115.tif 000011
【図１０】
2015080115.tif 000012