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