(57)【要約】【課題】  ＨＥＶＣ方式のイントラスムージング処理の適応可否を、入力画像に応じて適応的に決定して、符号化画質を維持する。【解決手段】  グラデーション検出部１０２は、入力画像を所定の画素ブロック単位でグラデーション画像かいなかを検出する。イントラスムージング処理決定手段１０４は、画面内に所定数以上グラデーション画像が含まれる場合に、画面内予測モードにおいて符号化ブロック境界の参照画素の線形補間を有効化するように符号化部１０５に指示する。【選択図】  図１
2018050150.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を符号化する画像符号化装置であって、
前記入力画像を符号化ブロック単位で符号化する符号化手段であって、画面内予測モードにおいて符号化ブロック境界の参照画素を線形補間するモードを有する符号化手段と、
前記符号化手段が符号化しようとする前記符号化ブロックに対して所定の画素ブロック単位でグラデーション画像かいなかを検出するグラデーション検出手段と、
前記符号化手段が符号化対象ブロック画像に対して前記画面内予測モードでの参照画像の線形補間処理の適用可否を決定するイントラスムージング処理決定手段であって、前記グラデーション検出手段により前記グラデーション画像と判定された前記画素ブロック数が所定数以上になったとき、前記線形補間の有効化を前記符号化手段に指示するイントラスムージング処理決定手段
とを有することを特徴とする画像符号化装置。
【請求項２】
前記グラデーション検出手段は、前記所定の画素ブロック単位の画像データの画素値から分散値を算出する分散値算出手段を有し、
当該分散値が所定値未満だった場合、前記所定の画素ブロック単位の画像データがグラデーション画像を含むと判断する
ことを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記グラデーション検出手段は、前記所定の画素ブロック単位の画像データについて画素値の最大値と最小値の差を計算するダイナミックレンジ算出手段を有し、
前記ダイナミックレンジが所定値未満だった場合、当該所定の画素ブロック単位の画像データがグラデーション画像を含むと判断する
ことを特徴とする請求項１に記載に画像符号化装置。
【請求項４】
前記グラデーション検出手段は、
前記所定の画素ブロック単位の画像データをさらに小さな画素ブロックに分割して、周波数変換する周波数変換手段と、
前記周波数変換手段による周波数変換の係数値からＤＣ成分のみを抽出するＤＣ成分取得手段
とを有し、
前記ＤＣ成分取得手段で取得したＤＣ成分値の最大と最小の差が所定値未満だった場合、前記所定の画素ブロック単位の画像データはグラデーション画像を含むと判断する
ことを特徴とする請求項１に記載の画像符号化装置。
【請求項５】
前記グラデーション検出手段は、グラデーション検出の結果の連続検出回数を計数する連続検出回数計数手段を有し、
前記イントラスムージング処理決定手段は、前記連続検出回数計数手段に従い、前記グラデーション画像が所定フレーム期間、連続する場合に、符号化対象ブロック画像に対するイントラスムージング処理の適用可否を切り替える
ことを特徴とする請求項１から６のいずれか１項に記載の画像符号化装置。
【請求項６】
前記イントラスムージング処理決定手段は、前記連続検出回数計数手段に従い、前記グラデーション画像でない非グラデーション画像が所定フレーム期間、連続する場合に、符号化画像に対するイントラスムージング処理の適用可否を切り替えることを特徴とする請求項５に記載の画像符号化装置。
【請求項７】
前記グラデーション検出手段は、グラデーション検出の結果の連続検出回数を計数する連続検出回数計数手段を有し、
前記イントラスムージング処理決定手段は、前記連続検出回数計数手段に従い、前記グラデーション画像でない非グラデーション画像が所定フレーム期間、連続する場合に、符号化対象ブロック画像に対するイントラスムージング処理の適用可否を切り替える
ことを特徴とする請求項１から６のいずれか１項に記載の画像符号化装置。
【請求項８】
前記所定の画素ブロックのサイズは、ＨＥＶＣ規格（ＩＳＯ／ＩＥＣ  ２３００８−２）で定義されるＣｏｄｉｎｇ  Ｔｒｅｅ  Ｕｎｉｔであることを特徴とする請求項１から７のいずれか１項に記載の画像符号化装置。
【請求項９】
入力画像を符号化する画像符号化方法であって、
前記入力画像の符号化しようとする符号化ブロックに対して所定の画素ブロック単位でグラデーション画像かいなかを検出するグラデーション検出ステップと、
前記グラデーション検出ステップにより前記グラデーション画像と判定された前記画素ブロック数が所定数以上になったとき、画面内予測モードにおいて符号化ブロック境界の参照画素の線形補間を有効化するイントラスムージング処理決定ステップと、
前記入力画像を前記符号化ブロック単位で符号化する符号化ステップであって、前記線形補間の有効化に従い、前記画面内予測モードにおいて符号化ブロックの境界の参照画素を線形補間する符号化ステップ
とを有することを特徴とする画像符号化方法。
【請求項１０】
請求項１から８の何れか１項に記載の画像符号化装置としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置、画像符号化方法及びコンピュータプログラムに関し、特に、画面内予測を用いる画像符号化装置、画像符号化方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、被写体を動画撮影することで得られた動画像データを圧縮符号化して記録するカメラ一体型動画像記録装置として、デジタルビデオカメラがよく知られている。
【０００３】
動画圧縮方式としては、フレーム間で動き予測を用いて高い圧縮率で圧縮可能なＭＰＥＧ２方式及びＨ．２６４方式が一般的に用いられている。近年では、より複雑な予測方式を用いて高効率に圧縮可能なＨＥＶＣ方式（ＩＳＯ／ＩＥＣ２３００８−２）が用いられるようになっている。
【０００４】
ＨＥＶＣ方式では、Ｈ．２６４方式に対して圧縮効率を向上させるためのさまざま改良が採用されている。その一つとして、画面内予測処理時に近接画素間の相関関係を利用して符号化効率を高めるため、符号化ブロックに隣接する参照画素にフィルタ処理を施す技術が知られている。特に、このフィルタ処理において、色の濃淡や明暗が段階的に少しずつ変化するグラデーション領域に対して、視覚的な品質を高めるための特別なフィルタ処理を条件により適用できるようになっている。
【０００５】
図１４を参照して、グラデーション領域用フィルタ処理の必要性を簡単に説明する。図１４（ａ）は、グラデーション領域内にブロック境界がある場合の画素値の変化例を示す。横軸は、画素を示し、縦軸は輝度値を示す。Ｈ．２６４方式では、ブロック単位で圧縮処理を行うので、符号化対象ブロック周辺に隣接する符号化済み画素ブロック間でブロック境界の画素が不連続になる。この結果、画面内予測を採用する符号化画像ブロックにおいて、ブロック境界の参照画素間で画素値が不連続な値となったまま予測画像を生成することになる。そうすると、図１４（ｂ）に示すように、擬似輪郭が発生してしまう。図１４（ｂ）では、符号化対象ブロックの中心に右上から左下に接続する線状に擬似輪郭が発生する様子を示す。
【０００６】
このような問題に対し、特許文献１には、規格で定められている画素位置よりもさらに広範囲に参照画素を定義して予測値を生成する方法が記載されている。特許文献２には、符号化ブロック単位でグラデーション検出を行い、グラデーション画像と判定した画像ブロックにおいては、画面内予測の画素サイズを規格上最小のサイズに設定することが記載されている。
【０００７】
そこで、ＨＥＶＣ方式では、隣接するブロック境界の参照画素両端の画素値と平均値との差の絶対値が、輝度のビット深度に応じて決定される閾値未満である場合、参照画素の中を線形補間するイントラスムージング処理が定義されている。ただし、この処理を適用するためには、ブロック境界間の画素値の差に加え、以下の３条件をすべて満たす必要がある。第１に、周波数変換を行う画素ブロックサイズ（Ｔｒａｓｎｆｏｒｍ  Ｕｎｉｔサイズ：ＴＵサイズ）が３２×３２画素であること。第２に、方向性予測のモード値（ｐｒｅｄＭｏｄeＩｎｔｒａ）が、１（ＤＣ予測）、１０（水平方向予測）及び２６（垂直方向予測）のいずれでもないこと。第３に、シーケンスパラメータセット（以下、「ＳＰＳ」と呼ぶ）の変数ｓｔｒｏｎｇ＿ｉｎｔｒａ＿ｓｍｏｏｔｈｉｎｇ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１であること。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２４５０８８公報
【特許文献２】特開２０１１−２３９３６５公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
引用文献１に記載の技術は、Ｈ．２６４方式に限定されるものであり、ＨＥＶＣ方式を採用する動画符号化装置には適用できない。
【００１０】
引用文献２に記載の技術は、ＨＥＶＣ方式のイントラスムージング処理に依らない方法である。しかし、マクロブロック単位での処理になるので、符号化ピクチャ全体および動画シーケンス全体で符号化効率を必ずしも高めることができない。
【００１１】
ＨＥＶＣ方式のイントラスムージング処理を採用する方式において、ＳＰＳ中の変数ｓｔｒｏｎｇ＿ｉｎｔｒａ＿ｓｍｏｏｔｈｉｎｇ＿ｅｎａｂｌｅｄ＿ｆｌａｇを常に１にすると、符号化シーケンスすべてに対して線形補間フィルタ処理が適用される。この方法では、入力画像の絵柄によっては画像の解像感が損なわれてしまい、必ずしも視覚特性を向上できない場合がある。
【００１２】
本発明は、入力画像に応じて適応的にイントラスムージング処理の適用可否を決定できる、ＨＥＶＣ方式を適用可能な画像符号化装置、画像符号化方法及びコンピュータプログラムを提示することを目的とする。
【課題を解決するための手段】
【００１３】
上記の課題を解決するために、本発明に係る画像符号化装置は、入力画像を符号化する画像符号化装置であって、前記入力画像を符号化ブロック単位で符号化する符号化手段であって、画面内予測モードにおいて符号化ブロック境界の参照画素を線形補間するモードを有する符号化手段と、前記符号化手段が符号化しようとする前記符号化ブロックに対して所定の画素ブロック単位でグラデーション画像かいなかを検出するグラデーション検出手段と、前記符号化手段が符号化対象ブロック画像に対して前記画面内予測モードでの参照画像の線形補間処理の適用可否を決定するイントラスムージング処理決定手段であって、前記グラデーション検出手段により前記グラデーション画像と判定された前記画素ブロック数が所定数以上になったとき、前記線形補間の有効化を前記符号化手段に指示するイントラスムージング処理決定手段とを有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、入力画像のグラデーション検出結果に基づいてイントラスムージング処理の適用可否を判断するので、符号化ピクチャ全体および動画シーケンスとしての画質を維持または改善できる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施例１の概略構成ブロック図である。
【図２】符号化部の概略構成ブロック図である。
【図３】実施例１の動作フローチャートである。
【図４Ａ】実施例１の符号化データ構造例である。
【図４Ｂ】実施例１のパラメータセットのリンク例である。
【図５】実施例２の概略構成ブロック図である。
【図６】実施例２の動作フローチャートである。
【図７】実施例２の入力画像とヒストグラム例を示す図である。
【図８】実施例３の概略構成ブロック図である。
【図９】実施例３の動作フローチャートである。
【図１０】実施例３の動作説明図である。
【図１１】実施例４の概略構成ブロック図である。
【図１２】実施例４の動作フローチャートである。
【図１３】実施例４の動作説明図である。
【図１４】従来技術で発生する擬似輪郭の説明図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して、本発明の実施例を詳細に説明する。
【実施例１】
【００１７】
図１は、本発明に係る画像符号化装置の一実施例を採用する撮像装置の概略構成ブロック図を示す。図１に示す撮像装置は、撮像部１０１、グラデーション検出部１０２、イントラスムージング処理決定部１０４、および符号化部１０５から構成されている。グラデーション検出部１０２は分散値算出部１０３を有する。
【００１８】
撮像部１０１は、ＣＣＤセンサ等の撮像素子、撮像素子に被写体光学像を入射する光学系、及び、撮像素子の出力画像信号をデジタル化し、所定の映像フォーマットの動画像データとして出力する画像処理部からなる。
【００１９】
グラデーション検出部１０２は、撮像部１０１から出力される動画像データの各フレーム画像を複数の画素ブロックに分割し、画素ブロック単位でグラデーション画像であるか否かを判断検出する。分散値算出部１０３は、各画像領域における画素値分布の分散を算出する。グラデーション検出部１０２は、分散値算出部１０３で算出された分散値が、単色の分散値でなく、且つ、一定値未満の値を示す場合に、グラデーション画像と判定する。
【００２０】
イントラスムージング処理決定部１０４は、グラデーション検出部１０２の検出結果に従い、当該フレーム画像中に含まれるグラデーション画像と判断された画素ブロック数を累積する。１つのフレーム画像中でグラデーション画像の画素ブロック数が所定数以上の場合、イントラスムージング処理決定部１０４は、そのフレーム画像の画面内予測モードで符号化ブロック境界の参照画素の線形補間の適用可否を決定する。適用する場合、イントラスムージング処理決定部１０４は、イントラスムージング処理を有効にする指示信号（スムージング有効化指示信号）を符号化部１０５に出力する。
【００２１】
符号化部１０５は、撮像部１０１から出力される動画像データを、イントラスムージング処理決定部１０４からの通知を参照しつつ、ＨＥＶＣ方式で圧縮符号化し、得られた符号データを所定のビットストリーム形式で出力する。
【００２２】
本実施例では、グラデーション検出の画素ブロックのサイズを、符号化部１０５での処理単位と同一のサイズ、すなわち、ＨＥＶＣ規格で定義されているＣＴＵ（Ｃｏｄｉｎｇ  Ｔｒｅｅ  Ｕｎｉｔ）としているが、異なっても良い。
【００２３】
図２は、符号化部１０５の概略構成ブロック図を示す。符号化部１０５は、撮像部１０１からの動画像データをフレーム単位でフレームメモリ２０１に格納する。フレームメモリ２０１は、他に、動き予測処理で用いる参照画像データを格納する。
【００２４】
イントラ予測部２０２は、フレームメモリ２０１に格納されたフレーム画像データから符号化対象ブロックの画像データを読み出し、符号化対象ブロック周辺の参照画素データから生成される複数のイントラ予測画像との相関を計算する。イントラ予測部２０２には、イントラスムージング処理決定部１０４の出力信号も入力する。イントラスムージング処理決定部１０４からスムージング有効化指示信号が入力する場合、イントラ予測部２０２は、イントラ予測のための予測画像の生成においてブロック境界の参照画素に対する線形補間処理を有効にする。イントラ予測部２０２は、最も相関の高いイントラ予測方式を選択し、イントラ・インター判定部２０４に通知する。
【００２５】
インター予測部２０３は、フレームメモリ２０１に格納される符号化対象ブロックの原画像データと符号化済みの画像データとの間で、符号化ブロック単位で画素データ同士のパターンマッチングを行い、動きベクトルを算出する。インター予測部２０３は、算出した動きベクトルをイントラ・インター判定部２０４に供給する。
【００２６】
イントラ・インター判定部２０４は、イントラ予測部２０２とインター予測部２０３の出力結果に基づいて適用すべき予測モードを決定し、予測画像生成部２０５に出力する。例えば、イントラ・インター判定部２０４は、イントラ予測部２０２の出力に従い、符号化対象画像ブロックについて予測画像を生成し、この予測画像と符号化対象ブロック画像との予測誤差を算出する。イントラ・インター判定部２０４はまた、インター予測部２０３で求めた動きベクトルに従い、参照画像から予測画像を生成し、この予測画像と符号化対象ブロック画像との予測誤差を算出する。そして、イントラ・インター判定部２０４は両予測誤差を比較し、小さい方の予測方式を、符号化に適用すべき予測モードとする。イントラ予測部２０２及び／またはインター予測部２０３が予測誤差の算出までを実行している場合、イントラ・インター判定部２０４は、不足する予測誤差を算出した上で、比較し、適用すべき予測モードを決定すればよい。
【００２７】
予測画像生成部２０５は、イントラ・インター判定部２０４で決定された予測モードに応じて予測画像を生成する。予測画像生成部２０５には、イントラスムージング処理決定部１０４の出力信号も入力する。イントラスムージング処理決定部１０４がスムージング有効化指示信号を出力する場合、先に説明したように、符号化対象画像はグラデーション画像ということになる。予測画像生成部２０５は、グラデーション画像の場合、イントラ予測モード、ＴＵサイズが３２×３２画素、そして、方向性予測のモード値が１、１０及び２６のいずれでもないという３条件を、適用すべき符号化条件が満たすかどうかを判定する。これらの３条件を満たすとき、予測画像生成部２０５は、線形補間処理を施した参照画素から予測画像を生成する。
【００２８】
減算器２１４は、フレームメモリ２０１からの符号化すべき画像データから、予測画像生成部２０５からの予測画像を減算する。減算器２１４での減算により生成される差分画像データは、整数変換部２０６に入力する。整数変換部２０６は、減算器２１４からの差分画像データを符号化ブロック単位で空間周波数領域に変換する。整数変換部２０６の整数変換は、周波数変換の一例である。
【００２９】
量子化部２０７は、目標符号量に基づいて量子化係数を算出し、整数変換部２０６から出力される空間周波数領域の係数データを量子化する。量子化された係数データは、エントロピー符号化部２０８と逆量子化部２１０に入力する。
【００３０】
エントロピー符号化部２０８は、量子化部２０７からの量子化された係数データをエントロピー符号化する。例えば、エントロピー符号化部２０８は、インター予測の場合、動き予測で用いたベクトル値を、ＣＡＢＡＣ（コンテキスト適応算術符号化）方式等のビットデータの出現確率の偏りを利用して情報圧縮する。エントロピー符号化部２０８は、圧縮後の符号化データをビットストリーム生成部２１３に供給する。
【００３１】
ビットストリーム生成部２１３は、エントロピー符号化部２０８からの符号化データに復号に必要なパラメータを含むヘッダ情報を付加し、所定のストリーミング形式で出力する。復号処理に必要なパラメータは、例えば、ＳＰＳ及びピクチャパラメタセット（以下、「ＰＰＳ」という。）を含む。ビットストリーム生成部２１３はまた、符号化画像においてイントラスムージング処理を適用したピクチャに対しＳＰＳ中のｓｔｒｏｎｇ＿ｉｎｔｒａ＿ｓｍｏｏｔｈｉｎｇ＿ｅｎａｂｌｅｄ＿ｆｌａｇフィールド値を１としたヘッダを参照するように関連付ける。
イントラスムージング処理を適用した符号化ピクチャに対するＳＰＳおよびＰＰＳヘッダとの関連付け方法の詳細と、ビットストリームのデータ構造との関係は。後述する。ビットストリーム生成部２１３の出力は、例えば、メモリカードまたはハードディスクなどの図示しない記録媒体に記録される。
【００３２】
符号量制御部２０９は、エントロピー符号化部２０８が出力する符号化データの符号量を取得し、ビットレート及びバッファモデルに基づいて１ピクチャ当たりの目標符号量を算出し、量子化部２０７の量子化係数をフィードバック制御する。
【００３３】
ローカルでの復号処理に関係する部分を説明する。逆量子化部２１０は、量子化部２０７からの量子化した係数データに量子化係数を乗算することで逆量子化する。これにより、係数データが再構成される。逆整数変換部２１１は、逆量子化部２１０から出力される係数データを画素データに逆整数変換する。加算器２１５は、逆整数変換部２１１の出力に予測画像生成部２０５からの予測画像データを加算する。これにより、画像データが復元される。加算器２１５の出力画像データは参照画像データとして予測画像生成部２０５とループフィルタ２１２に供給される。
【００３４】
ループフィルタ２１２は、加算器２１５の出力画像データに、ブロック境界で発生する符号化歪みを軽減するフィルタ処理を施し、フレームメモリ２０１に格納する。
【００３５】
図３は、本実施例の符号化処理のフローチャートを示す。図３に示す処理は、グラデーション検出部１０２、分散値算出部１０３、イントラスムージング処理決定部１０４およびビットストリーム生成部２１３により実行される。図３に示す処理は、入力フレーム画像単位に繰り返して実行される。演算負担を軽減する見地からは、図３に示す処理を、人間の視覚特性上、変化を検知しやすい輝度成分について実行するようにしてもよい。
【００３６】
Ｓ３０１で、グラデーション検出部１０２は、分散値算出部１０３により入力フレーム画像データについて全ＣＴＵブロック分の分散値ＶＡＲを計算済みか否かを判断する。全ＣＴＵブロックについて分散値を算出済みの場合（Ｓ３０１でＴＲＵＥ）、Ｓ３０５に遷移し、分散値を未算出のＣＴＵブロック画像が残っている場合（Ｓ３０１でＦＡＬＳＥ）、Ｓ３０２に遷移する。
【００３７】
Ｓ３０２で、分散値算出部１０３は、各ＣＴＵブロック画像の分散値ＶＡＲを一つずつ計算する。ここでは、分散値算出部１０３は、所定の画像ブロック内の全画素に対して、各画素値の二乗和の平均値から全画素の平均値の二乗を減じた値を、分散値ＶＡＲとして計算する。すなわち、
【数１】
2018050150.tif 000003
分散値ＶＡＲは、画像ブロックにおける画素値の散らばり具合を示す指標である。分散値が大きいと画素のバラツキが大きく複雑な絵柄であると判断できる。他方、分散値ＶＡＲが小さい場合、平坦な絵柄であると判断できる。
【００３８】
Ｓ３０２に続くＳ３０３で、グラデーション検出部１０２は、Ｓ３０２で算出された分散値が閾値未満かどうかを判断する。この閾値は、グラデーション画像のような平坦な絵柄の場合に取り得る値として予め定められる。この閾値は、分散値を計算するブロック画像の大きさに依存するが、３２×３２画素または６４×６４画素のマクロブロックサイズの場合、１０から１００程度に設定されるのが好ましい。ブロック画像の分散値が閾値未満である場合（Ｓ３０３でＴＲＵＥ）、Ｓ３０４に遷移する。他方、ブロック画像の分散値が閾値以上である場合（Ｓ３０３でＦＡＬＳＥ）、Ｓ３０１に戻って、次のＣＴＵブロック画像について処理を繰り返す。
【００３９】
Ｓ３０４で、グラデーション検出部１０２は、入力画像中に含まれるグラデーション画像と推定されるＣＴＵブロック数の値をインクリメントする。この後、Ｓ３０１に戻って、次のＣＴＵブロック画像について処理が繰り返される。
【００４０】
Ｓ３０５で、グラデーション検出部１１０２は、グラデーション画像と推定したＣＴＵブロック数が予め定めた閾値以上であるかどうかを判断する。この閾値は、注目する入力フレーム画像中に分散値の小さい、すなわちグラデーション画像のような平坦な絵柄を多く含むか否かを判断するのに使用される。この閾値は、例えば、画面内の全ＣＴＵブロック中、８割から９割以上が平坦となる個数を目安として設定するものとする。入力フレーム画像が、グラデーション画像を多く含む場合（Ｓ３０５でＴＲＵＥ）、Ｓ３０６に遷移する。入力フレーム画像に多くのオブジェクトやテクスチャ等の複雑な絵柄を含む分散値の大きな画像である場合（Ｓ３０５でＦＡＬＳＥ）、Ｓ３０８に遷移する。
【００４１】
Ｓ３０６で、イントラスムージング処理決定部１０４は、イントラスムージング処理有効化信号を符号化部１０５に出力し、符号化部１０５は、このイントラスムージング処理有効化信号に従い入力フレーム画像データを符号化する。Ｓ３０７で、ビットストリーム生成部２１３は、符号化したピクチャデータについて、ｓｔｒｏｎｇ＿ｉｎｔｒａ＿ｓｍｏｏｔｈｉｎｇ＿ｅｎａｂｌｅｄ＿ｆｌａｇを１に設定したＳＰＳとスライスヘッダを関連付けたビットストリームを生成する。
【００４２】
Ｓ３０８で、符号化部１０５は、フレーム画像データを、イントラスムージング処理を無効にして圧縮符号化する。Ｓ３０９で、ビットストリーム生成部２１３は、符号化したピクチャデータについて、ｓｔｒｏｎｇ＿ｉｎｔｒａ＿ｓｍｏｏｔｈｉｎｇ＿ｅｎａｂｌｅｄ＿ｆｌａｇを０に設定したＳＰＳとスライスヘッダを関連付けてビットストリーム生成する。
【００４３】
ビットストリーム生成部２１３から出力されるビットストリームデータの構造を説明する。図４Ａは、ステップＳ３０７およびＳ３０９において、イントラスムージング処理を有効にした場合のビットストリーム構造例を示し、図４Ｂは、パラメータセットの参照関係を示す。
【００４４】
図４Ａに示すように、ＨＥＶＣ方式の符号化ビットストリ-ムでは、Ｈ．２６４方式と同じく複数のアクセスユニット（以下、「ＡＵ」という。）が復号順に連続したデータ構造が採用されている。各ＡＵは、画面単位に復号化可能な符号化データから成る。ＡＵは、開始位置を示すアクセスユニットデリミタ（ＡＵＤ）、復号時に必要な各種パラメータを持つビデオパラメタセット（ＶＰＳ）、及び、ＳＰＳまたはＰＰＳと呼ばれる複数のＮＡＬユニットから構成される。実際のマクロブロック単位で符号化されたデータは、スライスデータとしてヘッダパラメタに続いて１ピクチャずつ格納される。
【００４５】
ＳＰＳまたはＰＰＳと呼ばれるヘッダ情報は、規格上、ストリーム途中で変更可能である。例えば、絵柄に応じて量子化マトリクス及びデブロッキングフィルタ強度等のパラメータをＡＵ単位にリロードできる。この機能を実現するには、ストリーム出力のタイミングで、符号化スライスデータと、この符号化スライスデータを復号する際に必要なヘッダ情報とを、それぞれのヘッダ情報に含まれる識別子（ＩＤ）によって関連付ける。
【００４６】
図４Ｂは、ＶＰＳ、ＳＰＳ、ＰＰＳ及びスライスデータ間の参照関係を示す。ＶＰＳは、当該ＶＰＳを識別するためのｖｐｓ＿ｖｉｄｅｏ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄを持つ。ＳＰＳは、当該ＳＰＳが参照するＶＰＳのＩＤを付したｓｐｓ＿ｖｉｄｅｏ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄと、当該ＳＰＳを識別するためのｓｐｓ＿ｓｅｑ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄを持つ。同様に、ＰＰＳは、当該ＰＰＳが参照するＳＰＳのＩＤを付したｐｐｓ＿ｓｅｑ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄと、当該ＰＰＳを識別するｐｐｓ＿ｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄを持つ。スライスヘッダは、当該スライスが参照するＰＰＳのＩＤと、ｓｌｉｃｅ＿ｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄを収容する。これら識別情報のリンクに基づいて、図４Ｂに矢印で示す参照関係のように、スライスデータからＰＰＳ、ＰＰＳからＳＰＳ、そしてＳＰＳからＶＰＳへと同じＩＤとなるヘッダ情報の関連づけを行う。これにより、ＡＵ単位で異なるヘッダを参照できるようになる。
【００４７】
図４Ｂに示す例では、スライス０およびスライス１に該当する入力画像が非グラデーション画像であり、スライス２に該当する部分がグラデーション画像である。この結果、これらスライス０，１に対して、ｓｔｒｏｎｇ＿ｉｎｔｒａ＿ｓｍｏｏｔｈｉｎｇ＿ｅｎａｂｌｅｄ＿ｆｌａｇ値が０のＳＰＳ０を参照する構成になっている。スライス２に対しては、ｓｔｒｏｎｇ＿ｉｎｔｒａ＿ｓｍｏｏｔｈｉｎｇ＿ｅｎａｂｌｅｄ＿ｆｌａｇ値が１のＳＰＳ２を参照するようになっている。これにより、スライス２の復号時には、スムージング処理を用いた予測画像を生成してブロック境界の歪みの無い再生画像を得ることができる。
【００４８】
ステップＳ３０７，Ｓ３０９で行うイントラスムージング処理の有効または無効の設定は、符号化済みのスライスデータが生成された後に、それぞれ対応するフラグ値を有するＳＰＳを予め用意してから関連づけるようにしても良い。
【００４９】
このように、実施例１では、符号化処理を行う前に入力画像データに対して分散値に基づきグラデーション画像かどうかを判別し、この判別結果に基づいて画面内予測時のイントラスムージング処理を制御する。
【実施例２】
【００５０】
入力画像データのダイナミックレンジを用いてグラデーション画像を判定する実施例２を説明する。図５は、実施例２を採用する撮像装置の概略構成ブロック図を示す。図１と同じ機能の構成要素には同じ符号を付してあり、詳細な説明を省略する。
【００５１】
グラデーション検出部１０２に代わるグラデーション検出部５０２は、分散値算出部１０３に代わるダイナミックレンジ算出部５０３を有する。グラデーション検出部５０２は、ダイナミックレンジ算出部５０３により算出されるフレーム画像のダイナミックレンジにより入力画像の注目部分がグラデーション画像かどうかを判定することで、グラデーション画像を検出する。
【００５２】
図６は、図３に代わる実施例２の動作フローチャートを示す。なお、Ｓ６０５〜Ｓ６０９の処理は、それぞれ、Ｓ３０５〜Ｓ３０９の処理と同じである。
【００５３】
Ｓ６０１で、グラデーション検出部５０２は、ダイナミックレンジ算出部５０３により入力フレーム画像データについて全ＣＴＵブロック分のダイナミックレンジを計算済みか否かを判断する。全ＣＴＵブロックについてダイナミックレンジを算出済みの場合（Ｓ６０１でＴＲＵＥ）、Ｓ６０５に遷移し、ダイナミックレンジを未算出のＣＴＵブロック画像が残っている場合（Ｓ６０１でＦＡＬＳＥ）、Ｓ６０２に遷移する。
【００５４】
Ｓ６０２で、ダイナミックレンジ算出部５０３は、注目するＣＴＵブロックのダイナミックレンジを算出する。例えば、ダイナミックレンジ算出部５０３は、ＣＴＵブロック中の全画素における最大画素値と最小画素値の差を算出し、ダイナミックレンジとする。図７は、非グラデーション画像とグラデーション画像について、画像とそのヒストグラムの例を示す。図７（ａ）は、非グラデーション画像の例を示し、図７（ｂ）はグラデーション画像の例を示す。図７（ｃ）は、図７（ａ）に示す非グラデーション画像の画素値に対するヒストグラム例を示す。図７（ｄ）は、図７（ｂ）に示すグラデーション画像の画素値に対するヒストグラム例を示す。図７（ｃ）、（ｄ）で横軸は、注目する領域または画像に含まれる画素の画素値を示す。図７に示すように、被写体・物体を含む図７（ａ）に示すような画像の場合、そのヒストグラム形状は、図７（ｃ）に示すように、山が複数で広範な画素値分布となり、ダイナミックレンジが広くなる。他方、図７（ｂ）に示すように空などの平坦なグラデーションの画像の場合、画素値に対するヒストグラムは、図７（ｄ）に示すように、ピークが無いかまたは一つの、特定の画素値レンジに集中する狭ダイナミックレンジになる。
【００５５】
Ｓ６０２に続くＳ６０３で、グラデーション検出部５０２は、Ｓ６０２で算出されたダイナミックレンジが閾値未満かどうかを判断する。この閾値は、グラデーション画像のような平坦な絵柄の場合に取り得る値として予め定められる。例えば、入力画像が８ビットで表現される場合、最大２５５階調のダイナミックレンジを有するが、その内の数パーセントから数十パーセント程度に、閾値を設定する。グラデーション検出部５０２は、輝度変化の少ない又は無い平坦な色調の画像を検出していることになる。
【００５６】
ブロック画像のダイナミックレンジが閾値未満である場合（Ｓ６０３でＴＲＵＥ）、Ｓ６０４に遷移する。他方、ブロック画像のダイナミックレンジが閾値以上である場合（Ｓ６０３でＦＡＬＳＥ）、Ｓ６０１に戻って、次のＣＴＵブロック画像について処理を繰り返す。
【００５７】
Ｓ６０５以降の処理は、図３のＳ３０５以降の処理と同じなので、説明を省略する。
【００５８】
このように、実施例２では、入力画像データのダイナミックレンジを用いてグラデーション画像かどうかを判定し、この判断結果に基づいて画面内予測時におけるイントラスムージング処理を制御する。
【実施例３】
【００５９】
入力画像を小さな複数のブロック画像に分割し、各ブロック画像の周波数変換係数中に高周波成分が出現しない場合に、ＤＣ成分値によりグラデーション画像かどうかを判定する実施例３を説明する。図８は、実施例３を採用する撮像装置の概略構成ブロック図を示す。図１と同じ機能の構成要素には同じ符号を付してあり、詳細な説明を省略する。
【００６０】
グラデーション検出部１０２に代わるグラデーション検出部８０２は、分散値算出部１０３に代えて、周波数変換部８０６及びＤＣ成分取得部８０７を有する。周波数変換部８０６は、入力画像をＣＴＵブロックより小さいサイズのブロック画像に分割し、各ブロック画像の画素値を周波数変換する。ＤＣ成分取得部８０７は、周波数変換部８０６による周波数変換の結果からＣＴＵブロックサイズ内のＤＣ成分値を抽出し、ＤＣ成分の最大値と最小値の差を計算する。この差は、実施例２におけるダイナミックレンジに相当する。グラデーション検出部５０２は、ＤＣ成分取得部８０７により算出されるＤＣ成分の最大値と最小値の差によりグラデーション画像かどうかを判定することで、グラデーション画像を検出する。
【００６１】
図９は、図８に示す実施例３の動作フローチャートを示す。図９を参照して、実施例３の動作を説明する。
【００６２】
Ｓ９０１で、グラデーション検出部８０２は、入力フレーム画像データの全ＣＴＵブロックについてグラデーション画像か否かを判定済みかどうかを判断する。全ＣＴＵブロックについてグラデーション画像か否かを判定した場合（Ｓ９０１でＴＲＵＥ）、Ｓ９０８に遷移し、未判定のＣＴＵブロック画像が残っている場合（Ｓ９０１でＦＡＬＳＥ）、Ｓ９０２に遷移する。
【００６３】
Ｓ９０２で、グラデーション検出部８０２は、周波数変換を行うために、注目するＣＴＵブロック画像をさらに小さな複数のブロック画像に分割する。ＣＴＵサイズを３２×３２画素または６４×６４画素としてグラデ-ション判定を行う単位としている場合、分割後のブロックサイズを１６×１６画素または８×８画素等の約数で表現できるサイズに設定する。
【００６４】
Ｓ９０３で、グラデーション検出部８０２は周波数変換部８０６により、Ｓ９０２で分割したブロック画像を周波数変換させる。周波数変換方式は、アダマール変換、整数精度の離散コサイン変換（ＤＣＴ）及び実数精度ＤＣＴ等の公知技術のいずれかを適用してもよい。本発明は、特定の周波数変換方式に限定されない。
【００６５】
Ｓ９０４で、グラデーション検出部８０２は、周波数変換部８０６の出力から周波数変換の係数値を取得し、高周波成分の係数値が書定数以上存在するか否かを判断する。高周波成分の信号を多く持つことは、画像の特性としてエッジやテクスチャを含むことを示すものであり、イントラスムージング処理を施すに適したグラデーション画像ではないと判断できる。逆に、ＣＴＵブロック中の分割小ブロック画像に高周波成分が存在しないか少ない場合、グラデーション画像である可能性が高い。そこで、ＣＴＵブロック中の分割小ブロック画像に高周波成分が存在しないか少ない場合（Ｓ９０４でＦＡＬＳＥ）、Ｓ９０５に遷移する。当該ブロック画像に高周波成分を多く含まれる場合（Ｓ９０４でＴＲＵＥ）、Ｓ９０１に戻り、次のＣＴＵブロック画像について処理を繰り返す。
【００６６】
Ｓ９０５で、グラデーション検出部８０２のＤＣ成分取得部８０７が、Ｓ９０３で求めたＣＴＵブロック内の全周波数成分の係数の内、図１０に示すように分割小ブロック単位で導出した周波数領域のＤＣ成分を取得する。図１０（ａ）は、ＣＴＵブロック画像の直交変換の関係を示す。図１０（ｂ）は非グラデーション画像のＤＣ成分値の分布例を示し、図１０（ｃ）は、グラデーション画像のＤＣ成分値の分布例を示す。
【００６７】
ＤＣ成分は分割小ブロック内の画素値の平均値であり、分割小ブロックの明るさを示す指標である。ＤＣ成分が画像明るさを示す指標であることから、平坦ではあるがグラデーションを含まない画像では、ＣＴＵサイズ内でも明るさの変化が存在する。この場合、図１０（ｂ）に示すように、ＤＣ成分の最小値と最大値の差が大きくなる。他方、グラデーション画像の場合、分割小ブロック単位での明るさがＣＴＵ単位でもほとんど変わらず、この結果、図１０（ｃ）に示すように、ＤＣ成分の最小値と最大値の差が少なくなる。
【００６８】
Ｓ９０６で、グラデーション検出部８０２は、このような画像特性に基づいて、グラデーション画像かどうかを判定する。すなわち、グラデーション検出部８０２は、ＤＣ成分の最大値と最小値の差を算出し、この差値が予め定めた所定値未満か否かでグラデーション画像かどうかを判定し、グラデーション画像を決定する。差値が所定値未満であった場合（Ｓ９０６でＴＲＵＥ）、Ｓ９０７に遷移する。他方、差値が所定値以上である場合（Ｓ９０６でＦＡＬＳＥ）、Ｓ９０１に戻って、次のＣＴＵブロック画像について処理を繰り返す。
【００６９】
Ｓ９０７で、Ｓ３０４と同様に、グラデーション検出部８０２は、入力画像中に含まれるグラデーション画像と推定されるＣＴＵブロック数の値をインクリメントする。この後、Ｓ９０１に戻って、次のＣＴＵブロック画像について処理が繰り返される。
【００７０】
Ｓ９０８〜Ｓ９１２の処理は、それぞれ、図３のＳ３０５〜Ｓ３０９の処理と同じである。
【００７１】
このように、実施例３では、ＤＣ成分の最大値と最小値の差によりグラデーション画像を判定し、この判定結果に基づいてイントラスムージング処理を有効または無効に制御する。
【実施例４】
【００７２】
連続して所定回数以上グラデーション検出し、または検出しないときに、イントラスムージング処理の有効／無効を切り替えるようにした実施例４を説明する。実施例４では、動作シーケンス中のフラッシュや点滅等、一瞬だけオブジェクトが画面内に現れたような時にイントラスムージング処理を無効化または有効化されてしまうことで動画画質を損なうことを防止できる。
【００７３】
図１１は、実施例４を採用する撮像装置の概略構成ブロック図を示す。図１と同じ機能の構成要素には同じ符号を付してあり、詳細な説明を省略する。
【００７４】
グラデーション検出部１０２に代わるグラデーション検出部１１０２は、分散値算出部１０３に加えて、連続検出回数計数部１１０７を有する。連続検出回数計数部１１０７は、グラデーション検出の連続回数及び非グラデーション検出の連続回数を計算する。本実施例では、グラデーション画像または非グラデーション画像の連続検出回数に応じて、符号化のイントラスムージング処理の有効化・無効化を制御する。実施例２および実施例３に示す構成においても、連続検出回数計数部１１０７の処理を追加することもできる。
【００７５】
ＣＰＵ１１１６は、図１１に示す撮像装置を全体的に制御する。特に、ＣＰＵ１１１６は、操作部１１１７によるユーザ操作に従い、符号化部１０５の符号化の開始と終了を制御する。ＣＰＵ１１１６が、グラデーション検出部１１０２及びイントラスムージング処理決定部１０４の機能をＣＰＵ１１１６上で動作するプログラムにより実現しても良い。
【００７６】
図１２は、実施例４の動作フローチャートを示す。図１２に示す処理は、符号化すべき入力画像データが無くなるまで、繰り返し実行される。
【００７７】
Ｓ１２０１で、ＣＰＵ１１１６は、符号化部１０５に入力するフレーム画像が符号化すべき最終フレームかどうかを判定する。これは例えば、ユーザが操作部１１１７により録画停止をＣＰＵ１１１６に指示したときに発生しうる。最終フレームの場合（Ｓ１２０１でＴＲＵＥ）、ＣＰＵ１１１６は、図１２に示すフローを終了する。最終フレームでない場合、すなわち、符号化すべき入力画像がある場合（Ｓ１２０１でＦＡＬＳＥ）、Ｓ１２０２に遷移する。ス入力フレーム画像データの全ＣＴＵブロックについて分散値を算出済みの場合（Ｓ１２０２でＴＲＵＥ）、Ｓ１２０６に遷移し、分散値を未算出のＣＴＵブロック画像が残っている場合（Ｓ１２０２でＦＡＬＳＥ）、Ｓ１２０３に遷移する。テップＳ１２０２〜Ｓ１２０５はそれぞれ、Ｓ３０１〜Ｓ３０５の処理と同じなので、説明を省略する。
【００７８】
Ｓ１２０６で、グラデーション検出部１１０２は、Ｓ３０５と同様に、グラデーション画像と推定したＣＴＵブロック数が予め定めた閾値以上であるかどうかを判断する。入力フレーム画像がグラデーション画像を多く含む場合（Ｓ１２０５でＴＲＵＥ）、Ｓ１２０７に遷移する。入力フレーム画像に多くのオブジェクトやテクスチャ等の複雑な絵柄を含む分散値の大きな画像である場合（Ｓ１２０６でＦＡＬＳＥ）、Ｓ１２１４に遷移する。
【００７９】
Ｓ１２０７で、グラデーション検出部１１０２は、連続検出回数計数部１１０７の非グラデーション画像連続フレーム数ＣＮＧＲをゼロに初期化する。Ｓ１２０８で、グラデーション検出部１１０２は、グラデーション画像連続フレーム数ＣＧＲＤに１を加算するインクリメント処理を行い、Ｓ１２０９に遷移する。
【００８０】
Ｓ１２０９で、グラデーション検出部１１０２は、グラデーション画像連続フレーム数ＣＧＲＤが所定値以上か否かを判断する。所定フレーム期間以上連続してグラデーション画像であった場合（Ｓ１２０９でＴＲＵＥ）、ステップＳ１２１０に遷移する。グラデーション画像連続フレーム数ＣＧＲＤが所定フレーム期間未満の場合は（Ｓ１２０９でＦＡＬＳＥ）、ステップＳ１２１２に遷移する。
【００８１】
Ｓ１２１０で、イントラスムージング処理決定部１０４は、Ｓ３０６と同様に、イントラスムージング処理有効化信号を符号化部１０５に出力する。符号化部１０５は、このイントラスムージング処理有効化信号に従い入力フレーム画像データを符号化する。Ｓ１２１１で、ビットストリーム生成部２１３はＳ３０７と同じようにビットストリームを生成する。すなわち、ビットストリーム生成部２１３は符号化したピクチャデータについてｓｔｒｏｎｇ＿ｉｎｔｒａ＿ｓｍｏｏｔｈｉｎｇ＿ｅｎａｂｌｅｄ＿ｆｌａｇを１に設定したＳＰＳとスライスヘッダを関連付けたビットストリームを生成する。Ｓ１２１１の後、Ｓ１２０１に戻る。
【００８２】
Ｓ１２１２で、符号化部１０５は、Ｓ３０８と同様に、フレーム画像データを、イントラスムージング処理を無効にして圧縮符号化する。Ｓ１２１３で、ビットストリーム生成部２１３は、Ｓ３０９と同様に、符号化したピクチャデータについて、ｓｔｒｏｎｇ＿ｉｎｔｒａ＿ｓｍｏｏｔｈｉｎｇ＿ｅｎａｂｌｅｄ＿ｆｌａｇを０に設定したＳＰＳとスライスヘッダを関連付けてビットストリーム生成する。Ｓ１２１３の後、Ｓ１２０１に戻る。
【００８３】
Ｓ１２１４で、グラデーション検出部１１０２は、連続検出回数計数部１１０７のグラデーション画像連続フレーム数ＣＧＲＤをゼロに初期化する。Ｓ１２１５で、グラデーション検出部１１０２は、非グラデーション画像連続フレーム数ＣＮGＲに１を加算するインクリメント処理を行い、Ｓ１２１６に遷移する。
【００８４】
Ｓ１２１８で、グラデーション検出部１１０２は、非グラデーション画像連続フレーム数ＣＮＧＲが所定値以上か否かを判断する。所定フレーム期間以上連続して非グラデーション画像であった場合（Ｓ１２１８でＴＲＵＥ）、ステップＳ１２１２に遷移する。非グラデーション画像連続フレーム数ＣＮGＲが所定フレーム期間未満の場合（Ｓ１２１８でＦＡＬＳＥ），ステップＳ１２１０に遷移する。
【００８５】
グラデーション画像連続フレーム数ＣＧＲＤの閾値（Ｓ１２０９）は例えば、ランダムアクセス再生を行う画面内符号化ピクチャ（Ｉピクチャ）から次のＩピクチャまでのフレーム枚数に設定される。他には、いわゆるＧＯＰ長に相当するフレーム数、またはＩピクチャおよび前方参照ピクチャ（Ｐピクチャ）の参照フレーム間の距離に相当するフレーム数でもよい。非グラデーション画像連続フレーム数ＣＮＧＲの閾値（Ｓ１２１６）も、これらの何れかに設定されるのが好ましい。
【００８６】
図１３は、実施例４における画像とスムージング処理の制御の例を示す。図１３（ａ）は、比較用に、実施例４による連続回数による制御を適用しない例を示し、図１３（ｂ）は、本実施例４による例を示す。図１３では、入力画像例として、グラデーションを背景として、小さなオブジェクトが画面左下から右上に時間経過とともに移動するシーンを示している。そして、シーン途中の３番目のフレームに突然画面内に多くのエッジとテクスチャを含むオブジェクトが出現する。画像例の下側に、イントラスムージング処理の有効（ＯＮ）・無効（ＯＦＦ）状態を示した。
【００８７】
実施例１から３では、図１３（ａ）に例示したように、急な入力画像のシーンが切り替わると、そのフレームだけスムージング処理が無効になる。他方、実施例４による連続検出回数計数部１１０７を用いたフィルタ処理の切替えを行った場合、図中（ｂ）に示すように、３番目のフレームに対してもスムージング処理を有効（ＯＮ）にしたまま、符号化が行われる。このような制御によって、視覚上ユーザに対して急な画質変化の発生を抑止でき、動画像としての画質を維持または向上できる。
【００８８】
グラデーション検出部１０２，５０２，８０２，１１０２、イントラスムージング処理決定部１０４及び符号化部１０５の機能の一部または全部は、コンピュータ上で動作するコンピュータプログラムにより実現できる。また、動画の符号化に適用した実施例を説明したが、画面内予測に限る機能は、静止画の符号化にも適用可能である。
【図１】
2018050150.tif 000004
【図２】
2018050150.tif 000005
【図３】
2018050150.tif 000006
【図４Ａ】
2018050150.tif 000007
【図４Ｂ】
2018050150.tif 000008
【図５】
2018050150.tif 000009
【図６】
2018050150.tif 000010
【図７】
2018050150.tif 000011
【図８】
2018050150.tif 000012
【図９】
2018050150.tif 000013
【図１０】
2018050150.tif 000014
【図１１】
2018050150.tif 000015
【図１２】
2018050150.tif 000016
【図１３】
2018050150.tif 000017
【図１４】
2018050150.tif 000018