次に、この発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.第1実施例:
B.平滑化処理の実施例:
C.変形例:
A.第1実施例:
図1は、本発明の一実施例としてのプリンタを示す説明図である。図1(A)は、プリンタ100の外観を示し、図1(B)は、プリンタ100の構成の概略を示している。図1(A)に示すように、このプリンタ100は、ディスプレイ40と、操作パネル50と、メモリカードインターフェース70と、を備えている。さらに、図1(B)に示すように、このプリンタ100は、制御部200と、印刷エンジン300と、を備えている。
制御部200は、CPU210と、ROM220と、RAM230と、を備えるコンピュータである。この制御部200は、プリンタ100の各構成要素を制御する。印刷エンジン300は、与えられた印刷データに応じて印刷を実行する印刷機構である。印刷機構としては、インク滴を印刷媒体に吐出して画像を形成する印刷機構や、トナーを印刷媒体上に転写・定着させて画像を形成する印刷機構等の種々の印刷機構を採用可能である。ディスプレイ40は、画像を含む種々の情報を表示する。ディスプレイ40としては、液晶ディスプレイや有機ELディスプレイ等の種々のディスプレイを採用可能である。操作パネル50は、停止ボタン52と、選択ボタン54と、再生ボタン56と、送りボタン58と、戻しボタン59と、を含む複数のボタンを有している。いずれかのボタンが押下された場合には、そのボタンが押下されたことを示す信号が、制御部200に供給される。操作パネル50は、ユーザの指示を受ける入力部として機能する。このような入力部としては、操作パネル50に限らず、タッチパネル等のユーザの指示を受ける種々の入力装置を採用可能である。メモリカードインターフェース70は、メモリカードMCを挿入するスロットMSを含んでいる。メモリカードMCに格納されたデータは、メモリカードインターフェース70を介して、制御部200によって読み出される。
図2は、ROM220(図1)に格納されたモジュールを示す説明図である。第1実施例では、選択モジュール400と、フィルタモジュール420と、出力モジュール430と、がROM220に格納されている。これらのモジュールは、CPU210によって実行されるプログラムである。また、各モジュールは、RAM230(図1(B))を介して種々のデータをやりとりすることが可能である。
図3は、フィルタモジュール420を示す説明図である。フィルタモジュール420は、色成分取得モジュール421と、平滑化モジュール424と、を含んでいる。なお、図2、図3に示す各モジュールの機能については、後述する。
図4は、動画像処理の手順を示すフローチャートである。この動画像処理は、制御部200(図1)によって実行される。この動画像処理では、動画像に含まれる複数の静止画像の中からユーザによって対象画像が指定され、そして、対象画像が印刷される。制御部200は、スロットMS(図1)に動画像データを格納するメモリカードMCが挿入されたことに応じて、自動的に動画像処理を開始する。あるいは、制御部200は、ユーザの指示に従って、動画像処理を開始してもよい。
最初のステップS100では、選択モジュール400(図2)が、メモリカードMCから動画像データを取得し、動画像の再生を開始する。動画像データのフォーマットとしては、MPEG(Moving Picture Experts Group)やMotionJPEG等の種々のフォーマットがある。また、スキャン方式としては、プログレッシブとインタレースとがある。第1実施例では、動画像データのフォーマットが、プログレッシブスキャンのMPEGフォーマットであることとしている。このような動画像データは、複数のピクチャを含んでいる。このようなピクチャには、いわゆるIピクチャ、Pピクチャ、Bピクチャが含まれ得る(図示省略)。第1実施例では、1枚のピクチャが、ある時点における1枚のフレーム画像(静止画像)を表している。
選択モジュール400は、各ピクチャをデコードすることによって、時系列に沿って並ぶ複数の静止画像を表す静止画像データ(フレーム画像データ)を取得し、取得した静止画像データが表す静止画像(フレーム画像)をディスプレイ40に表示させる。そして、選択モジュール400は、表示されるフレーム画像を時系列に沿った順番に切り換えることによって、動画像を再生する。
よく知られているように、MPEGフォーマットのピクチャは、画素ブロック毎に符号化されている。選択モジュール400は、画素ブロック毎にデータを復号(デコード)することによって、フレーム画像データを復元する。
また、図4のステップS100では、ユーザによって対象画像が指定される。第1実施例では、選択ボタン54(図1(B))が押下された時点に表示されているフレーム画像が対象画像として利用される。ユーザは、ディスプレイ40に表示される動画像を見て、好みのショットが表示された時点で選択ボタン54を押下すればよい。選択ボタン54が押下されたことを示す信号は、操作パネル50から制御部200に供給される。以下、この信号を「指定信号」とも呼ぶ。
選択モジュール400は、指定信号の受信に応じて、その時点に表示されていたフレーム画像が対象画像として指定されていることを、認識する。選択モジュール400は、指定信号の受信に応じて、動画像の再生を停止する。そして、選択モジュール400は、対象画像を表す対象画像データ(デコードによって生成された画像データ)を、フィルタモジュール420に供給する。
図4の次のステップS110では、フィルタモジュール420によって、対象画像データに対するフィルタ処理が実行される。このフィルタ処理は、画像データに含まれるノイズを低減する処理である。この処理の詳細については後述する。フィルタ処理が完了したことに応答して、フィルタモジュール420は、処理済みの対象画像データを出力モジュール430に供給する。
次のステップS130では、出力モジュール430は、対象画像データを利用した印刷を開始する。出力モジュール430は、対象画像データを利用して印刷データを生成し、生成した印刷データを印刷エンジン300に供給する。印刷エンジン300は、受信した印刷データを利用して印刷を実行する。印刷が完了したことに応じて、図4の動画像処理は終了する。
図5は、フィルタ処理の手順を示すフローチャートである。ステップS510では、色成分毎に平滑化処理が実行される。図6は、色成分毎の平滑化処理の概略図である。図6には、対象画像SIが処理される場合を示している。対象画像SIにはノイズNsが含まれている。ノイズNsには、種々のノイズが含まれる(例えば、いわゆるブロックノイズや、撮像素子によって生じたノイズ)。
まず、色成分取得モジュール421が、対象画像SIを表す対象画像データから、各画素の色を表す輝度成分Yと2種類の色差成分U、Vとを取得する。本実施例では、対象画像データの各画素の色が、YUV色空間で表されている。従って、色成分取得モジュール421は、対象画像データに含まれる画素値(Y、U、Vの各色成分の階調値)を、そのまま色成分Y、U、Vとして取得する。
なお、対象画像データが、YUV色空間とは異なる色空間(例えば、RGB色空間)で表されている場合がある。この場合には、色成分取得モジュール421は、元の色空間からYUV色空間への変換によって、輝度成分Yと色差成分U、Vとを取得する。
図6の2段目に示す3枚の画像SIY、SIU、SIVは、それぞれ、Y、U、Vの各色成分で表された画像を示している。各画像SIY、SIU、SIVには、ノイズNsが含まれている。なお、本実施例では、輝度成分Yと比べて、色差成分U、Vに強いノイズNsが含まれている。この理由は、本実施例で利用されている動画像データの生成時において、輝度成分Yのサンプル数よりも色差成分U、Vのサンプル数が少ないからである(例えば、YUV422、YUV420)。
次に、平滑化モジュール424(図3)は、3つの色成分Y、U、Vのそれぞれに対して平滑化処理を実行する。平滑化モジュール424は、強度の異なる2つの平滑化フィルタを利用する。図7(A)、6(B)は、2つの平滑化フィルタF1、F2を示す説明図である。本実施例では、対象画素の画素値が、対象画素と対象画素の周囲の画素とのそれぞれの画素値に重みを付して得られる重み付き合計値に設定される。各平滑化フィルタF1、F2の要素は重みを表している。中央要素CELを中心とする要素配置は、対象画素を中心とする画素配置と同じである。例えば、中央要素CELは、対象画素の重みを示し、中央要素CELの上の要素は、対象画素の上の画素の重みを示している。
色差成分フィルタF2による平滑化処理の強度(「平滑化強度」とも呼ぶ)は、輝度成分フィルタF1の平滑化強度よりも強い。平滑化強度が強いほど、対象画素と対象画素に隣接する画素との間の画素値の差が小さくなる。また、輝度成分フィルタF1は、輝度成分Yの平滑化に利用され、色差成分フィルタF2は、2つの色差成分U、Vのそれぞれの平滑化処理に利用される。
図6の4段目に示す3枚の画像SIYf、SIUf、SIVfは、それぞれ、平滑化処理済みのY、U、Vの各色成分で表された画像を示している。各画像SIYf、SIUf、SIVfにおいて、ノイズNsが平滑化処理によって低減されている。その結果、処理済みの3成分Y、U、Vで表される処理済み対象画像SIfにおいても、ノイズNsが低減されている。
平滑化モジュール424は、平滑化処理が完了したことに応答して、処理済み対象画像SIfを表す処理済み対象画像データを生成する(各画素の色は、処理済みの色成分Y、U、Vで表されている)。そして、生成した対象画像データを、出力モジュール430(図2)に供給する。
このように、本実施例では、輝度成分Yに対しては弱い平滑化処理が実行される。人の視覚は輝度成分Yの変化に敏感であるので、輝度成分Yに対する平滑化強度を弱くすることによって、画像が過剰にぼやけることを防止できる。また、色差成分U、Vに対しては強い平滑化処理が実行される。人の視覚は色差成分U、Vの変化に鈍感であるので、色差成分U、Vに対する平滑化強度を強くすることによって、画像が過剰にぼやけることを避けつつ、ノイズを低減することができる。すなわち、ノイズ低減と画像ぼやけと色成分との関係を考慮してノイズを低減することができる。
特に、本実施例のように、色差成分U、Vに、輝度成分Yと比べて強いノイズが含まれている場合には、色差成分U、Vに対する平滑化強度を強くすることによるノイズ低減の効果が顕著である。
B.平滑化処理の実施例:
上述の実施例において、平滑化処理としては、所定の平滑化フィルタを利用する処理に限らず、種々の処理を採用可能である。例えば、ブロックノイズ強度に応じた平滑化処理を実行してもよい。ブロックノイズは、以下に説明する画像で生じ得るノイズである。すなわち、画像を複数のブロックに分割して符号化する技術が知られている(例えば、JPEG方式やMPEG方式)。このように符号化されたデータからは、ブロック毎の復号によって、画像データが復元される。このような符号−復号処理としては、非可逆性の処理が知られている(例えば、非可逆性圧縮−伸長)。また、このような非可逆性の処理に起因して、復号後の画像データにブロックノイズ(「ブロック歪み」とも呼ばれる)が生じる場合がある。そこで、このようなブロックノイズを効果的に低減するために、ブロックノイズの強度を算出し、その強度が強いほど強い平滑化処理を実行してもよい。以下、ブロックノイズ強度を利用した平滑化処理の実施例について説明する。
B1.ブロックノイズ強度を利用した平滑化処理の第1実施例:
図8は、ピクチャの概要図である。本実施例では、1枚のピクチャPCTは矩形画像を表している。また、1枚のピクチャPCTは、複数の矩形状の画素ブロックBLKに分割され、画素ブロックBLK毎にデータが符号化されている。これらの画素ブロックBLKは、横方向hrと縦方向vtのそれぞれに沿って並んで配置されている。本実施例では、この画素ブロックBLKは、8*8画素のブロックである。選択モジュール400は、画素ブロックBLK毎にデータを復号(デコード)することによって、フレーム画像データを復元する。
なお、ピクチャPCTの横方向hrの画素数と縦方向vtの画素数としては、種々の値が採用され得る。ピクチャPCTによって表される画像(被写体)が同一の場合には、ピクチャPCTの画素数が多いほど、1つの画素ブロックBLKは、被写体のより細かい一部分を表す。また、1つの画素ブロックBLKの画素数としても、種々の値を採用可能である。
データ符号化としては、フレーム間予測、動き補償、DCT(離散コサイン変換)、ハフマン符号化等を組み合わせた種々の符号化を採用可能である。そして、このような符号化によってデータが圧縮され得る。本実施例では、このような符号化として、非可逆性の処理が採用されている(例えば、DCTによって得られる複数の周波数成分の内の一部の高周波数成分が省略される)。その結果、データの復号(デコード)によって、ブロックノイズが生じ得る。例えば、画素ブロックBLKの境界線に沿った色(画素値)の段差が生じる。
なお、フレーム間予測は、ピクチャの種類毎に異なっている。Iピクチャは予測無しの符号化を用いたデータであり、Pピクチャは順方向予測符号化を用いたデータであり、Bピクチャは双方向予測符号化を用いたデータである。Iピクチャに関しては、原画像に対してDCTが実行される。PピクチャとBピクチャとに関しては、フレーム間予測によって生成された予測誤差画像に対してDCTが実行される。
図9は、フィルタモジュール420bを示す説明図である。図3に示すフィルタモジュール420との差違は、ノイズ強度算出モジュール422が追加されている点だけである。
図10は、色成分毎の平滑化処理の詳細な手順を示すフローチャートである。フィルタモジュール420b(図9)は、図10の手順に従って、図5のステップS510の処理を実行する。最初のステップS200では、ノイズ強度算出モジュール422は、輝度成分Yを利用してブロックノイズ強度を算出する。次のステップS210では、平滑化モジュール424は、ブロックノイズ強度が強いほど強い平滑化処理を実行する。このような平滑化処理によってブロックノイズが低減される(「デブロッキング処理」とも呼ばれる)。以下、最初にブロックノイズ強度について説明し、続けて、平滑化処理について説明する。
ブロックノイズ強度:
図11、図12は、ブロックノイズ強度の算出に利用される画素値を示す説明図である。本実施例では、ノイズ強度算出モジュール422(図9)は、色成分変換モジュール421(図9)によって取得された輝度成分Yに関するブロックノイズ強度を算出する。すなわち、ブロックノイズ強度の算出に、輝度成分Yの画素値が利用される。
図11には、対象画像SIが示されている。以下、対象画像SIに含まれる複数の画素ブロックBLKの内の1つの画素ブロックFに注目して説明を行う(以下、この画素ブロックFを「対象ブロックF」とも呼ぶ)。図中には、対象ブロックFを中心とする3*3の画素ブロックのグループBGが拡大して示されている。この対象ブロックFの上右下左には、上ブロックNと、右ブロックEと、下ブロックSと、左ブロックWとが、配置されている。また、対象ブロックFと、これらの4つの画素ブロックN、E、S、Wと間には、境界線Bn、Be、Bs、Bwが、それぞれ形成されている。以下、横方向hrに延びる境界線Bn、Bsのことを「横境界線Bn、Bs」とも呼ぶ。また、縦方向vtに延びる境界線Bw、Beのことを「縦境界線Bw、Be」とも呼ぶ。
図11には、対象ブロックFの8*8の画素値f11〜f88が示されている。画素値を表す符号は、アルファベットと2つの数字とで構成されている。アルファベットは、画素ブロックを表すアルファベット符号の小文字を示している。最初の数字は、画素ブロック内の縦方向vtの画素位置を示している。最上位置から下に向かって順番に1〜8が割り当てられている。以下、この縦方向vtの画素位置を縦画素位置vtpと呼ぶ。また、最後の数字は、画素ブロック内の横方向hrの画素位置を示している。最左位置から右に向かって順番に1〜8が割り当てられている。以下、この横方向hrの画素位置を横画素位置hrpと呼ぶ。
また、対象ブロックF内の64の画素値f11〜f88は、横方向hrに沿って並ぶ8つの画素列Vf1〜Vf8に分けられる。各画素列Vf1〜Vf8は、縦方向vtに沿って並ぶ8つの画素値で構成される。画素列を表す符号は、「V」に続くアルファベットと数字とで構成されている。アルファベットは、画素ブロックを表すアルファベット符号の小文字を示している。数字は、横画素位置hrpを示している。
以下、対象ブロックFとは異なる他の画素ブロックの画素値に関しても、同じ表記法に基づく符号を用いる。
図12は、左境界線Bwの周辺の画素値を示している。図示された画素値は、この左境界線Bwにおけるブロックノイズ強度の算出に利用される。この左境界線Bwは、左ブロックWの第8列Vw8と対象ブロックFの第1列Vf1とに挟まれている。第8列Vw8の左には第7列Vw7が配置され、第1列Vf1の右には第2列Vf2が配置されている。
ノイズ強度算出モジュール422(図9)は、まず、これらの画素列Vw7、Vw8、Vf1、Vf2を利用することによってMSDS(Mean Square Difference of Slopes)を算出する。このMSDSは、以下に示す数式1によって表されている。
2つの画素列の和は、行列の和と同様に、算出される。また、2つの画素列の差は、行列の差と同様に算出される。換言すれば、各画素列は、8次元の列ベクトルとして演算に利用される。例えば、演算「Vf1−Vw8」によって、i行目の値が「fi1−wi8」であるような8次元の列ベクトルが算出される。また、L2ノルムは、2次のノルムとも呼ばれ、いわゆるユークリッド距離を算出する演算である。一般に、p次(pは1以上の整数)のノルムは以下の数式2によって表されている。
MSDSの算出に利用される境界差分列Vdbは、左境界線Bwを挟んで隣接する2本の画素列Vf1、Vw8の間の差分を表している。このような境界差分列Vdbは、左境界線Bw上における左境界線Bwと垂直な方向の画素値の変化率を表している。画素値の変化率は、単位長さ当たりの画素値の変化量を意味している。本実施例では、1画素当たりの画素値の変化量が、画素値の変化率として利用される。
第1内部差分列Vdfは、対象ブロックFの内部の2本の画素列Vf1、Vf2の間の画素値の差分を表している。これらの画素列Vf1、Vf2は、左境界線Bwに最も近い2本の画素列である(左境界線Bwに隣接する第1画素列Vf1と、この第1画素列Vf1に隣接する第2画素列Vf2)。このような第1内部差分列Vdfは、対象ブロックFの内部における左境界線Bwと垂直な方向の画素値の変化率を表している。
第2内部差分列Vdwは、第1内部差分列Vdfと同様の差分列を、左ブロックWに関して算出したものである。第2内部差分列Vdwの算出には、左ブロックWの内部の、左境界線Bwに最も近い2本の画素列Vw8、Vw7が、利用される。
MSDSは、境界差分列Vdbと、2つの内部差分列Vdf、Vdwの平均との差分を利用して算出される。この差分は、左境界線Bwと垂直な方向に沿ってみたときの、画素値変化率の2次微分を表している。このような差分(2次微分)は、左境界線Bw上での変化率が、その両側の変化率と比べて大きく外れている場合に大きくなる。すなわち、このような差分(2次微分)は、左境界線Bwに沿ってブロックノイズが生じている場合に、大きくなる。
図13は、左境界線Bwと垂直な方向に沿ってみたときの画素値の変化の一例を示すグラフである。横軸は、横方向hrの画素位置を示している。横軸に添えられた数値は、横画素位置hrpを示している。縦軸は画素値を示している。本実施例では、画素値は、0〜255の範囲内の整数値に設定される。グラフには、左境界線Bwを垂直に横切る代表的な1つの行が示されている。このグラフには、左境界線Bwに近い6つの画素列の画素値が示されている(Vw6〜Vw8、Vf1〜Vf3)。図13のグラフでは、画素位置が左ブロックWから対象ブロックFに向かって変化したときに、画素値がゆっくりと低減している。このような緩やかな画素値の変化は、例えば、画素ブロックW、Fが、緩やかなグラデーションを表している場合に、生じる。
図13では、各画素ブロックF、Wの内部での画素値の変化は小さく、内部差分列Vdf、Vdwが示す差分は「3」である。一方、境界差分列Vdbが示す差分は、画素ブロック内部の差分よりも大きな「6」である。このように、左境界線Bw上で画素値がステップ状に変化している。ここで、左境界線Bwを横切る他の7つの行についても、画素値が同様に変化していることとする。すなわち、左境界線Bwと垂直な方向のステップ状の画素値変化が、左境界線Bwに沿って並んで形成されている。
このような左境界線Bwに沿ったステップ状の画素値変化は、原画像には無い場合であっても、非可逆性符号化と復号とによって生じ得る(ブロックノイズ)。また、このような左境界線Bwに沿って並ぶステップ状の画素値変化は、図13に示すように画素値がゆっくり変化する領域においては、特に目立ちやすい(見た目のブロックノイズ強度が強い)。また、図12に示すように、MSDSの算出に利用される差分列Vdb、Vdf、Vdwは、いずれも、左境界線Bwと平行な複数の画素列の間の画素値差分を表している。従って、MSDSは、左境界線Bwに沿ってブロックノイズが生じた場合に、大きくなる。
図14は、画素値の変化の別の例を示すグラフである。縦軸と横軸とは、図13の例と同じである。図14の例では、図13の例とは異なり、画素位置が左ブロックWから対象ブロックFに向かって変化したときに、画素値が急激に低減している。特に、画素ブロックW、Fの内部においても画素値が大きく変化している。このような急な画素値の変化は、例えば、画素ブロックW、Fが、被写体の左境界線Bwと平行に延びるエッジを表している場合に、生じる。特に、画素ブロックW、Fが、エッジの多い被写体(例えば、芝生)を表す場合には、ブロック内部での画素値の変化が大きくなる。
図14では、内部差分列Vdf、Vdwが示す差分は「10」である。また、境界差分列Vdbが示す差分は「16」である。左境界線Bwを横切る他の7つの行についても、画素値が同様に変化していることとする。すなわち、比較的大きな画素値変化が、左境界線Bwに沿って並んで形成されている。ところが、左境界線Bwの周辺での変化(10)に対する左境界線Bw上の変化(16)の割合(16/10)は、図13の例(6/3)と比べて大幅に小さい。このように、変化の割合が小さい場合には、ブロックノイズは目立ちにくい(見た目のブロックノイズ強度が弱い)。ところが、上述のMSDSは、大きくなってしまう。
このようなMSDSの特性は、数学的にも示される。以下に示す数式3は、MSDSを表す数式1に三角不等式を適用して得られる関係式を示している。
ブロック内部エッジ強度BES(以下「エッジ強度BES」とも呼ぶ)は、各ブロックF、Wの内部における、左境界線Bwと垂直な方向の画素値の変化率の大きさを表している。図14に示すように各画素ブロックF、Wが画像中の被写体のエッジを表している場合に、このエッジ強度BESは大きくなる。従って、エッジ強度BESは、画素ブロック内部のエッジ強度を表していると考えることができる。また、数式3に示すように、このエッジ強度BESが大きい場合には、MSDSの平方根の上限値が大きくなる。すなわち、エッジ強度BESが大きい場合には、ブロックノイズが目立たない場合であっても、MSDSが大きくなり得る。
そこで、本実施例では、以下に示す数式4で表される値をブロックノイズ強度BNSとして利用する。
数式4によって示されるように、ブロックノイズ強度BNSは、MSDSの平方根をエッジ強度BESで割って得られる値である。その結果、画素ブロック内部での画素値の変化率(Vdw、Vdf)が大きいほど、ブロックノイズ強度BNSは小さくなる。例えば、図13に示すように画素値の変化が小さい領域中の左境界線Bwに関しては、大きなブロックノイズ強度BNSが算出される。また、図14に示すように画素値の変化が大きい領域中の左境界線Bwに関しては、小さなブロックノイズ強度BNSが算出される。これらの結果、ブロックノイズ強度BNSは、見た目のブロックノイズ強度を適切に反映可能である。
なお、エッジ強度BESは「0」になり得る。この場合には、「MSDS>0」が成立する場合には、BNSが所定の最大値に設定される。この所定の最大値は、エッジ強度BESが「0」ではない場合のブロックノイズ強度BNSの定義上の最大値である。この定義上の最大値は、例えば、エッジ強度BESが0より大きな最小値「1」であり、Vdbの8つの要素の全てが最大値「255」である場合に得られる仮想的なBNSと同じである。エッジ強度BESが「1」である場合としては、例えば、第1内部差分列Vdfの8つの要素の内の、1つの要素が「1」であり、他の7つの要素が「0」であり、さらに、第2内部差分列Vdwの8つの要素の全てが「0」である場合がある。なお、エッジ強度BESが「0」であっても、「MSDS>0」が成立しない場合には、BNSは「0」に設定される。
以上、左境界線Bwのブロックノイズ強度BNSについて説明したが、他の境界線Bn、Be、Bs(図11)についても、同様に、ブロックノイズ強度BNSが算出される。ここで、横境界線Bn、Bsに関しては、画素列の代わりに、画素行が、8次元ベクトルとして演算に利用される。
平滑化処理:
次に平滑化処理について説明する。図15は、平滑化フィルタを示す説明図である。平滑化モジュール424(図9)は、この平滑化フィルタSF1を利用して、対象画像に含まれる複数の画素のそれぞれに対して平滑化処理を実行する。この平滑化フィルタSF1は、3*3のマトリックスである。本実施例では、対象画素の画素値が、対象画素と対象画素の周囲の8つの画素との9つの画素の画素値の重み付き合計値に設定される。中央要素CELを中心とする9つの要素の配置は、対象画素を中心とする9つの画素の配置と同じである。例えば、中央要素CELは、対象画素の重みを示し、中央要素CELの上の要素UELは、対象画素の上の画素の重みを示している。
平滑化フィルタSF1の各要素は、正規化強度αを利用して表されている。この正規化強度αは、上述のブロックノイズ強度BNSを、0〜1の範囲に正規化した値である。このような正規化は、ブロックノイズ強度BNSを、その最大値(MAX(BNS))で割ることによって、行われる。また、図15に示す「1/Σ(各要素)」は、図示されたマトリックスの各要素(例えば、α、α2、α4)を、9つの要素の合計値で割ることを意味している。これにより、平滑化フィルタSF1の各要素は、9つの要素の合計値が「1」となるように設定される。その結果、平滑化処理後の画素値が、過剰に大きな値や、過剰に小さな値に設定されることが防止される。なお、αが「ゼロ」である場合には、平滑化モジュール424は、平滑化処理を実行しない。
また、平滑化フィルタSF1の各要素は、正規化強度αのべき乗で表されている。その指数は、中央要素CEL(対象画素)からの距離が遠いほど大きい値に設定されている。具体的には、中央要素CELの指数は「1」であり、上下左右の要素の指数は「2」であり、4隅の要素の指数は「4」である。その結果、各要素は、中央要素CEL(対象画素)から遠いほど小さくなる。
図16は、平滑化フィルタSF1の要素と、中央要素CEL(対象画素)からの距離との関係を示すグラフである。横軸は距離を示し、縦軸は要素を示している。正規化強度αが大きい場合には、距離の変化に対する要素の変化が小さくなる。すなわち、対象画素の重みと、周辺の画素の重みとの差が小さい。その結果、平滑化の強度が強くなる、すなわち、対象画素と周辺画素との間の画素値の差分が大幅に小さくなる。一方、正規化強度αが小さい場合には、距離の変化に対する要素の変化が大きくなる。すなわち、周辺の画素の重みは、対象画素の重みと比べて、大幅に小さい。その結果、平滑化の強度が弱くなる、すなわち、対象画素と周辺画素との間の画素値の差分の減少量は小さい。
図17は、平滑化処理の概要を示す説明図である。図中には対象画像SIが示されている。また、図中には、対象画像SIに含まれる複数の画素ブロックBLKの内の第1画素ブロックBLK1と第2画素ブロックBLK2との平滑化処理の概要が示されている。
上述したように1つの画素ブロックは4つの境界線Bn、Be、Bs、Bwに囲まれており、ノイズ強度算出モジュール422(図9)は、各境界線毎にブロックノイズ強度BNSを算出する。その結果、1つの画素ブロックに関連して4つの正規化強度αが利用可能である。そこで、本実施例では、平滑化モジュール424は、4つの正規化強度から算出される代表値を利用して、1つの画素ブロックの平滑化処理を実行する。代表値としては、4つの正規化強度の関数で表される種々の値を採用可能である(例えば、平均値、最大値、中央値(メディアン)、最小値)。本実施例では、最大値が採用される。最大値を採用すれば、ブロックノイズが残ることを抑制できる。
例えば、第1画素ブロックBLK1の4つの境界線Bn1、Be1、Bs1、Bw1に対して、4つ正規化強度αn1、αe1、αs1、αw1が、それぞれ算出される。平滑化モジュール424は、これらの正規化強度αn1、αe1、αs1、αw1の代表値αf1を用いて平滑化フィルタSF1(図15)の各要素を決定する。本実施例では、代表値αfとして最大値が利用される。そして、決定された平滑化フィルタSF1を用いて、第1画素ブロックBLK1内の全ての画素の平滑化処理を実行する。
同様に、第2画素ブロックBLK2の4つの境界線Bn2、Be2、Bs2、Bw2に対して、4つ正規化強度αn2、αe2、αs2、αw2が、それぞれ算出される。平滑化モジュール424は、これらの正規化強度の代表値αf2を用いて、平滑化フィルタSF1の各要素を決定する。そして、決定された平滑化フィルタSF1を用いて、第2画素ブロックBLK2内の全ての画素の平滑化処理を実行する。
ここで、第1代表強度αf1が第2代表強度αf2よりも大きいと仮定する。この場合には、第1画素ブロックBLK1の画素には強い平滑化処理が実行され、第2画素ブロックBLK2には弱い平滑化処理が実行される。
他の画素ブロックの画素についても、同様に、平滑化処理が実行される。このように、ノイズ強度算出モジュール422(図9)は、対象画像SIに含まれる複数の境界線のそれぞれに関するブロックノイズ強度BNSを算出する(図10:S200)。そして、平滑化モジュール424は、画素ブロック毎に、平滑化フィルタSF1を決定して、画素ブロック内の各画素の平滑化処理を実行する(図10:S210)。なお、1つの画素ブロックに関連するブロックノイズ強度BNSの算出と平滑化処理とが、画素ブロックを切り替えつつ繰り返し実行されてもよい。また、対象画像SIの縁の画素ブロックに関しては、他の画素ブロックと接する一部の境界線の正規化強度α(ブロックノイズ強度BNS)を利用すればよい。例えば、左上隅の画素ブロックBLK3に関しては、右境界線Be3の正規化強度αe3と、下境界線Bs3と正規化強度αs3とから算出される代表値を利用すればよい。
以上のように、本実施例では、正規化強度αが大きいほど、すなわち、ブロックノイズ強度BNSが大きいほど、平滑化の強度は強くなる。その結果、ブロックノイズ強度BNSが小さい領域では、過剰な平滑化が抑制されるので、画像がぼやけることを抑制できる。そして、ブロックノイズ強度BNSが大きい領域では、強い平滑化によって、ブロックノイズを低減することができる。
以上、輝度成分Yの平滑化について説明した。色差成分U、Vに関しても、輝度成分Yと同様に、平滑化モジュール424は、代表値αfに応じた強度で平滑化処理を実行する。ただし、各画素位置における色差成分U、Vの平滑化の強度は、輝度成分Yよりも強い。
図18は、ノイズ強度と平滑化強度との関係を示すグラフである。横軸はブロックノイズ強度αfを示し、縦軸は平滑化の強度αを示している。ブロックノイズ強度αfは、ブロック毎に算出された正規化強度の代表値を示している(図17)。平滑化の強度は、図15に示すフィルタの要素の決定に利用される値αを示している。また、第1平滑化強度αYは、輝度成分Yに適用され、第2平滑化強度αUVは、各色差成分U、Vに適用される。
各平滑化強度αY、αUVのそれぞれは、ブロックノイズ強度αfが強いほど強くなるように予め設定されている。なお、上述したように、第1平滑化強度αYとしては、代表値αfが、そのまま、利用される。さらに、ブロックノイズ強度αfが同じ場合に、第2平滑化強度αUVは、第1平滑化強度αYよりも大きくなるように設定されている。これらの結果、個々の画素位置において、色差成分U、Vには、最強の平滑化処理が実行される。そして、個々の画素位置において、各色差成分U、Vに対する平滑化強度は、輝度成分Yに対する平滑化強度よりも強い。これらの結果、画像が過剰にぼやけることを抑制し、そして、ノイズを低減することができる。
なお、強度αUVとしては、種々の値を採用可能である。例えば、第1平滑化強度αYに、正の所定値を足して得られる値を、強度αUVとして利用してもよい。また、第1平滑化強度αYに1より大きな所定値を乗じて得られる値を、強度UVとして利用してもよい。
また、色差成分U、Vに対して、輝度成分Yとは異なる形式で表された平滑化フィルタを適用してもよい。図19(A)、19(B)は、2つの平滑化フィルタF11、F12を示す説明図である。各フィルタF11、F12は、いずれも、3*3のマトリクスである。中央要素CELの周りの8つの要素は、正規化強度αのべき乗で表されている。輝度成分フィルタF11は、図15に示す平滑化フィルタSF1と同じである。一方、色差成分フィルタF12における各要素の指数は、輝度成分フィルタF11における同じ位置の要素の指数よりも小さい。従って、正規化強度αが同じ場合には、色差成分フィルタF12の平滑化強度は、輝度成分フィルタF11の平滑化強度よりも、強い。このようなフィルタF11、F12を用いれば、各色差成分U、Vに対して、輝度成分Yよりも強い平滑化処理を実行できる。
B2.ブロックノイズ強度を利用した平滑化処理の第2実施例:
図20は、平滑化処理の別の実施例の概要を示す説明図である。図17に示す実施例との差違は、画素ブロック内の画素位置が境界線に近いほど、平滑化の強度を強くしている点だけである。装置構成と処理手順とは、図1、図2、図9、図10に示す実施例と同じである。
図中には、平滑レベルマトリクスSLの一例が示されている。この8*8のマトリクスSLは、画素ブロック内の各画素位置における平滑化のレベルを示している。図20の例では、レベルは1〜4のいずれかに設定されている。大きいレベルは、強い平滑化を意味している。また、レベルは、画素ブロックの境界線Bn、Be、Bs、Bwに近いほど大きな値に設定されている。
また、図中には、図11と同様の対象画像SIと画素ブロックグループBGとが示されている。平滑化モジュール424(図9)は、4つの境界線Bn、Be、Bs、Bwのそれぞれに対応する4つの正規化強度αn、αe、αs、αwから代表正規化強度αfを決定する。そして、平滑化モジュール424は、代表正規化強度αfに、係数「SLe/4」を乗じて得られる値αfpに基づいて、各画素位置における平滑化フィルタSF1(図15)を決定する。ここで、代表正規化強度αfとしては、図17に示す実施例で説明した種々の代表値(例えば、最大値)を採用可能である。また、要素SLeは、平滑レベルマトリクスSLの要素(レベル)である。
図中には、下境界線Bsに接する第1画素PXaの第1平滑化フィルタSFaと、画素ブロックの中央部の第2画素PXbの第2平滑化フィルタSFbと、が示されている。第1平滑化フィルタSFaの決定に利用される要素SLeは「4」である。その結果、値αfpが代表正規化強度αfと同じになるので、平滑化の強度が強くなる。一方、第2平滑化フィルタSFbの決定に利用される要素SLeは「1」である。その結果、値αfpが代表正規化強度αfの1/4となるので、平滑化の強度が弱くなる。
以上のように、第2実施例では、境界線に接している画素に対しては、画素ブロックの中央の画素と比べて強い平滑化処理が実行されるので、境界線の近傍に生じたブロックノイズを低減し、そして、画素ブロックの中央部分の画像がぼやけることを抑制できる。また、第2実施例では、画素ブロック内の画素位置が境界線に近いほど平滑化の強度が強くなるように、複数の段階に分けて平滑化の強度が変化する。従って、画素ブロック内で平滑化強度がステップ状に大きく変化することが抑制される。その結果、画素ブロック内に、このような強度の大きな変化に起因するノイズが生じることを抑制できる。
なお、平滑化のレベルとしては、図20に示す実施例に限らず、種々のレベルを採用可能である。一般には、平滑化モジュール424(図9)は、画素ブロックの境界線に近いほど強くなるように平滑化の強度を設定することが好ましい。
また、平滑化モジュール424(図9)は、図18に示す実施例と同様に、輝度成分Yの平滑化強度から、色差成分U、Vの平滑化強度を決定すればよい。また、図19に示す実施例と同様に、色成分毎に形式の異なる平滑化フィルタを利用してもよい。
B3.ブロックノイズ強度を利用した平滑化処理の第3実施例:
図21は、平滑化処理の別の実施例の概要を示す説明図である。図17に示す実施例との差違は、代表正規化強度αfの代わりに、画素ブロック内の画素位置に応じた補間によって算出された正規化強度を利用する点だけである。装置構成と処理手順とは、図1、図2、図9、図10に示す実施例と同じである。
図21には、ある対象画素PXxの平滑化処理の概要が示されている。本実施例では、平滑化モジュール424(図9)は、横方向hrの線形補間によって横正規化強度αph1を算出し、縦方向vtの線形補間によって縦正規化強度αpv1を算出する。
横正規化強度αph1は、左境界線Bwの左正規化強度αwと、右境界線Beの右正規化強度αeとから算出される。左境界線Bwに接する画素位置(hrp=1)では、横正規化強度αph1は左正規化強度αwに設定される。右境界線Beに接する画素位置(hrp=8)では、横正規化強度αph1は右正規化強度αeに設定される。間の画素位置(hrp=2〜7)では、横正規化強度αph1は線形補間によって決定される。その結果、対象画素PXxが左境界線Bwに近いほど、横正規化強度αph1は左正規化強度αwに近くなる。そして、対象画素PXxが右境界線Beに近いほど、横正規化強度αph1は右正規化強度αeに近くなる。
縦正規化強度αpv1は、上境界線Bnの上正規化強度αnと、下境界線Bsの下正規化強度αsとから算出される。上境界線Bnに接する画素位置(vtp=1)では、縦正規化強度αpv1は上正規化強度αnに設定される。下境界線Bsに接する画素位置(vtp=8)では、縦正規化強度αpv1は下正規化強度αsに設定される。間の画素位置(vtp=2〜7)では、縦正規化強度αpv1は線形補間によって決定される。その結果、対象画素PXxが上境界線Bnに近いほど、縦正規化強度αpv1は上正規化強度αnに近くなる。そして、対象画素PXxが下境界線Bsに近いほど、縦正規化強度αpv1は下正規化強度αsに近くなる。
平滑化モジュール424(図9)は、横正規化強度αph1から平滑化フィルタSF1を決定し、この平滑化フィルタSF1を利用して横平滑画素値SPVh1を算出する。そして、平滑化モジュール424は、縦正規化強度αpv1から平滑化フィルタSF1を決定し、この平滑化フィルタSF1を利用して縦平滑画素値SPVv1を算出する。そして、平滑化モジュール424は、これらの平滑画素値SPVh1、SPVv1の平均値SPV1を、対象画素PXxの最終的な画素値として採用する。
以上説明した第3実施例の平滑化処理は、以下のように言い換えることができる。すなわち、平滑化モジュール424(図9)は、4つの正規化強度αn、αe、αs、αwに、対象画素PXxに近いほど大きくなる重みを付すことによって、各正規化強度αn、αe、αs、αwを平滑化処理に利用している。その結果、ブロックノイズ強度BNS(正規化強度α)が大きい境界線に近い画素に対しては、強い平滑化処理が実行されるので、ブロックノイズを低減することができる。そして、ブロックノイズ強度BNSの強い境界線から遠い画素に対して強い平滑化処理が実行されることが抑制されるので、過剰に画像がぼやけることを抑制できる。
なお、平滑化モジュール424(図9)は、図18に示す実施例と同様に、輝度成分Yの平滑化強度(正規化強度αph1、αpv1)から、色差成分U、Vの平滑化強度を決定すればよい。また、図19に示す実施例と同様に、色成分毎に形式の異なる平滑化フィルタを利用してもよい。
B4.ブロックノイズ強度を利用した平滑化処理の第4実施例:
図22は、平滑化処理の別の実施例の概要を示す説明図である。図17に示す実施例との差違は、各正規化強度αn、αe、αs、αwを平滑化処理に利用するために、画素ブロック内の画素位置に応じて決まる重みを各正規化強度αn、αe、αs、αwに付す点である。装置構成と処理手順とは、図1、図2、図9、図10に示す実施例と同じである。
本実施例では、平滑化モジュール424(図9)は、横正規化強度αph2と縦正規化強度αpv2とを算出する。横正規化強度αph2は、左境界線Bwの左正規化強度αwと、右境界線Beの右正規化強度αeとの重み付き合計値である。図22の中段のグラフは、各正規化強度αw、αeの重み(縦軸)と、横画素位置hrp(横軸)との関係を示している。黒丸は左正規化強度αwの重みを示し、白丸は右正規化強度αeの重みを示している。左正規化強度αwの重みは左境界線Bwに近いほど大きく、右正規化強度αeの重みは右境界線Beに近いほど大きい。また、横画素位置hrpが左境界線Bwよりも右境界線Beに近い範囲では(5〜8)、左正規化強度αwの重みはゼロに設定されている。横画素位置hrpが右境界線Beよりも左境界線Bwに近い範囲では(1〜4)、右正規化強度αeの重みはゼロに設定されている。これらの結果、横画素位置hrpが右境界線Beよりも左境界線Bwに近い範囲では(1〜4)、左正規化強度αwに重みを乗じた値が横正規化強度αph2として利用される。横画素位置hrpが左境界線Bwよりも右境界線Beに近い範囲では(5〜8)、右正規化強度αeに重みを乗じた値が横正規化強度αph2として利用される。
縦正規化強度αpv2は、上境界線Bnの上正規化強度αnと、下境界線Bsの下正規化強度αsとの重み付き合計値である。図22の下段のグラフは、各正規化強度αn、αsの重み(縦軸)と、縦画素位置vtp(横軸)との関係を示している。黒丸は上正規化強度αnの重みを示し、白丸は下正規化強度αsの重みを示している。上正規化強度αnの重みは上境界線Bnに近いほど大きく、下正規化強度αsの重みは下境界線Bsに近いほど大きい。また、縦画素位置vtpが上境界線Bnよりも下境界線Bsに近い範囲では(5〜8)、上正規化強度αnの重みはゼロに設定されている。縦画素位置vtpが下境界線Bsよりも上境界線Bnに近い範囲では(1〜4)、下正規化強度αsの重みがゼロに設定されている。これらの結果、縦画素位置vtpが下境界線Bsよりも上境界線Bnに近い範囲では(1〜4)、上正規化強度αnに重みを乗じた値が縦正規化強度αpv2として利用される。縦画素位置vtpが上境界線Bnよりも下境界線Bsに近い範囲では(5〜8)、下正規化強度αsに重みを乗じた値が縦正規化強度αpv2として利用される。
平滑化モジュール424(図9)は、横正規化強度αph2から平滑化フィルタSF1を決定し、この平滑化フィルタSF1を利用して横平滑画素値SPVh2を算出する。そして、平滑化モジュール424は、縦正規化強度αpv2から平滑化フィルタSF1を決定し、この平滑化フィルタSF1を利用して縦平滑画素値SPVv2を算出する。そして、平滑化モジュール424は、これらの平滑画素値SPVh2、SPVv2の平均値SPV2を、最終的な画素値として採用する。
以上のように、第4実施例では、平滑化モジュール424(図9)は、4つの正規化強度αn、αe、αs、αwに、対象画素に近いほど大きくなる重みを付すことによって、各正規化強度αn、αe、αs、αwを平滑化処理に利用している。その結果、ブロックノイズ強度BNSが(正規化強度α)が大きい境界線に近い画素に対しては、強い平滑化処理が実行されるので、ブロックノイズを低減することができる。そして、ブロックノイズ強度BNSが小さい境界線に近い画素に対しては、弱い平滑化処理が実行されるので、過剰に画像がぼやけることを抑制できる。
また、図22に示す実施例では、境界線に接している画素に対しては、画素ブロックの中央の画素と比べて強い平滑化処理が実行されるので、境界線の近傍に生じたブロックノイズを低減し、そして、画素ブロックの中央部分の画像がぼやけることを抑制できる。
なお、図22では、横画素位置hrpが「1」の場合と「8」の場合とで重みが同じ「4/4」である。一方、左正規化強度αwは、右正規化強度αeと異なり得る。従って、実際の平滑化の強度は、横画素位置hrpが「1」の場合と「8」の場合との間で、異なり得る。これは、縦方向vtについても同様である。このように、本実施例では、最寄りの境界線までの距離が同じ場合であっても、実際の平滑化の強度は、最寄りの境界線毎に異なり得る。換言すれば、最寄りの境界線が同じである画素のグループ内において、画素が境界線に近いほど平滑化の強度が強い。
なお、平滑化モジュール424(図9)は、図18に示す実施例と同様に、輝度成分Yの平滑化強度(正規化強度αph2、αpv2)から、色差成分U、Vの平滑化強度を決定すればよい。また、図19に示す実施例と同様に、色成分毎に形式の異なる平滑化フィルタを利用してもよい。
B5.ブロックノイズ強度を利用した平滑化処理の第5実施例:
図23は、平滑化処理の別の実施例の概要を示す説明図である。上述の各実施例との差違は、異方性の平滑化フィルタが利用される点である。図23には、横平滑化フィルタSFhと縦平滑化フィルタSFvとが示されている。装置構成と処理手順とは、図1、図2、図9、図10に示す実施例と同じである。
横平滑化フィルタSFhは、図15に示す平滑化フィルタSF1において、中央要素CELと中央要素CELの左右の要素とをそのまま維持し、他の要素をゼロに設定したものと同じである。この横平滑化フィルタSFhを利用すれば、横方向hrに沿って画素を辿ったときの画素値の変化を小さくすることができる(以下「横方向hrに沿った平滑化」あるいは「横平滑化」とも呼ぶ)。
横平滑化フィルタSFhの要素の決定には、図15で説明した正規化強度αの代わりに横正規化強度αph3が利用される。本実施例では、横正規化強度αph3として、左正規化強度αwと右正規化強度αeとの平均値が利用される(これらの正規化強度αw、αeは、縦境界線Bw、Beでの強度である(図20))。この横正規化強度αph3は、1つの画素ブロック内の全ての画素に対して共通に利用される。
縦平滑化フィルタSFvは、図15に示す平滑化フィルタSF1において、中央要素CELと中央要素CELの上下の要素とをそのまま維持し、他の要素をゼロに設定したものと同じである。この縦平滑化フィルタSFvを利用すれば、縦方向vtに沿って画素を辿ったときの画素値の変化を小さくすることができる(以下「縦方向vtに沿った平滑化」あるいは「縦平滑化」とも呼ぶ)。
縦平滑化フィルタSFvの要素の決定には、図15で説明した正規化強度αの代わりに縦正規化強度αpv3が利用される。本実施例では、縦正規化強度αpv3として、上正規化強度αnと下正規化強度αsとの平均値が利用される(これらの正規化強度αn、αsは、横境界線Bn、Bsでの強度である(図20))。この縦正規化強度αpv3は、1つの画素ブロック内の全ての画素に対して共通に利用される。
平滑化モジュール424(図9)は、横正規化強度αph3と縦正規化強度αpv3とを算出する。そして、平滑化モジュール424は、横平滑化フィルタSFhを利用して横平滑画素値SPVh3を算出し、縦平滑化フィルタSFvを利用して縦平滑画素値SPVv3を算出し、これらの平滑画素値SPVh3、SPVv3の平均値SPV3を対象画素の最終的な画素値として採用する。
図23の下段に示す平滑化フィルタSF3は、2つの平滑化フィルタSFh、SFvを総合して1つのフィルタにまとめたものである。図示するように、フィルタSF3の要素は、横方向hrと縦方向vtとの間で非対称である。このように、本実施例では、平滑化モジュール424(図9)は、横方向hrと縦方向vtとで強度が異なる異方性の平滑化処理を実行する。その結果、一方向の画素値変化を示すブロックノイズの強度が強いことに起因して、その方向と垂直な方向の平滑化の強度が過剰に強くなることを抑制できる。
特に、本実施例では、横平滑化の強度は、横正規化強度αph3が大きいほど、強い。この結果、横平滑化の強度を、横方向hrの画素値変化を示すブロックノイズ強度に応じて適切に調整することができる。同様に、縦平滑化の強度は、縦正規化強度αpv3が大きいほど、強い。この結果、縦平滑化の強度を、縦方向vtの画素値変化を示すブロックノイズの強度に応じて適切に調整することができる。
なお、横正規化強度αph3としては、横方向hrに沿って画素を辿ったときの画素値の変化の大きさ(すなわち、縦方向vtに沿って延びるブロックノイズの強度)を示すような種々の値を採用可能である。例えば、図21の横正規化強度αph1や、図22の横正規化強度αph2を、そのまま採用してもよい。この場合には、画素ブロック内の画素位置に応じて横正規化強度αph3は変わり得る。一般には、横正規化強度αph3は、縦境界線Bw、Beの正規化強度αw、αeの内の少なくとも一方を利用して決定されることが好ましい。こうすれば、強いブロックノイズの延びる方向に適合した平滑化処理が実行されるので、画像がぼやける等の不具合の発生を抑制しつつブロックノイズを低減することができる。
同様に、縦正規化強度αpv3としては、縦方向vtに沿って画素を辿ったときの画素値の変化の大きさ(すなわち、横方向hrに沿って延びるブロックノイズの強度)を示すような種々の値を採用可能である。例えば、図21の縦正規化強度αpv1や、図22の縦正規化強度αpv2を、そのまま採用してもよい。この場合には、画素ブロック内の画素位置に応じて縦正規化強度αpv3は変わり得る。一般には、縦正規化強度αpv3は、横境界線Bn、Bsの正規化強度αn、αsの内の少なくとも一方を利用して決定されることが好ましい。
なお、平滑化モジュール424(図9)は、図18に示す実施例と同様に、輝度成分Yの平滑化強度(正規化強度αph3、αpv3)から、色差成分U、Vの平滑化強度を決定すればよい。また、図19に示す実施例と同様に、色成分毎に形式の異なる平滑化フィルタを利用してもよい。
B6.ブロックノイズ強度を利用した平滑化処理の第6実施例:
図24は、平滑化処理の別の実施例の概要を示す説明図である。本実施例では、平滑化モジュール424(図9)は、横平滑画素値SPVh4と縦平滑画素値SPVv4との重み付き平均値SPV4を、最終的な平滑画素値として利用する。装置構成と処理手順とは、図1、図2、図9、図10に示す実施例と同じである。
横平滑画素値SPVh4としては、図23に示す横平滑画素値SPVh3が利用される。この横平滑画素値SPVh4(SPVh3)は、横平滑化によって算出された平滑画素値である。また、縦平滑画素値SPVv4としては、図23に示す縦平滑画素値SPVv3が利用される。この縦平滑画素値SPVv4(SPVv3)は、縦平滑化によって算出された平滑画素値である。
図24には、横重みマトリクスHWが示されている。この8*8のマトリクスHWは、画素ブロック内の各画素位置における横平滑画素値SPVh4の重みを示している(「横重みHWe」とも呼ぶ)。縦平滑画素値SPVv4の重みは、「1−横重みHWe」に設定される(「縦重み」とも呼ぶ)。
最も近い境界線が縦境界線Bw、Beである複数の画素HPについては、縦重みよりも横重みHWeが大きい。そして、縦境界線Bw、Beの中央部に近いほど、横重みHWeが大きい。図24の下段に示すように、このような画素HPに関しては、平均値SPV4は、主に横平滑画素値SPVh4によって決まる。
逆に、最も近い境界線が横境界線Bn、Bsである複数の画素VPについては、横重みHWeよりも縦重みが大きい。そして、境界線Bn、Bsの中央部に近いほど、縦重みが大きい(横重みHWeが小さい)。図24の下段に示すように、このような画素VPに関しては、平均値SPV4は、主に縦平滑画素値SPVv4によって決まる。
横境界線Bn、Bsからの距離と、縦境界線Bw、Beからの距離が同じである画素については、縦重みと横重みHWeとが同じ「0.5」である。また、画素ブロックの中央部の4つの画素についても、縦重みと横重みHWeとが同じ「0.5」である。
図25は、平滑化フィルタを示す説明図である。この平滑化フィルタSF4は、上述の横重みマトリクスHWと、図23に示す平滑画素値SPVh3、SPVv3(平滑化フィルタSFh、SFv)とを組み合わせることによって得られる平滑化フィルタである。図24に示す平滑画素値SPVh4、SPVv4として図23に示す平滑画素値SPVh3、SPVv3をそれぞれ利用することは、この平滑化フィルタSF4を用いて平滑画素値を算出することと等価である。
図示するように、フィルタSF4の要素は、横方向hrと縦方向vtとの間で非対称である。特に、縦境界線Bw、Beに近い画素に関しては、横重みHWeが大きいので、横平滑化の強度が強くなる。このような縦境界線Bw、Beの周辺では、横方向hrの画素値変化(縦方向vtに延びるブロックノイズ)が生じやすい。これらの結果、強い横平滑化によってブロックノイズを低減可能である。そして、境界線Bw、Beと平行な縦方向vtの平滑化の強度を弱めることによって画像がぼやけることを抑制できる。
一方、横境界線Bn、Bsに近い画素に関しては、横重みHWeが小さいので、縦平滑化の強度が強くなる。このような横境界線Bn、Bsの周辺では、縦方向vtの画素値変化(横方向hrに延びるブロックノイズ)が生じやすい。これらの結果、強い縦平滑化によってブロックノイズを低減可能である。そして、境界線Bn、Bsと平行な横方向hrの平滑化の強度を弱めることによって画像がぼやけることを抑制できる。
なお、横平滑画素値SPVh4としては、縦方向vtに延びる2本の境界線Bw、Beの少なくとも一方におけるブロックノイズ強度BNSを利用する種々の平滑化によって算出される画素値を採用可能である。同様に、縦平滑画素値SPVv4としては、横方向hrに延びる2本の境界線Bn、Bsの少なくとも一方におけるブロックノイズ強度BNSを利用する種々の平滑化によって算出される画素値を採用可能である。例えば、本実施例の平滑画素値SPVh4、SPVv4として、図21に示す平滑画素値SPVh1、SPVv1を利用してもよく、図22に示す平滑画素値SPVh2、SPVv2を利用してもよい。
これらの場合も、横重みHWeと縦重み(1−HWe)とのそれぞれは、平滑化の強度決定に対する重みを示している。すなわち、横重みHWeは、横平滑画素値SPVh4(SPVh1、SPVh2)の決定に利用された横正規化強度αph1、αph2の重みを示している。縦重み(1−HWe)は、縦平滑画素値SPVv4(SPVv1、SPVv2)の決定に利用された縦正規化強度αpv1、αpv2の重みを示している。すなわち、縦境界線Bw、Beの周辺では、縦正規化強度αpv1、αpv2よりも、横正規化強度αph1、αph2が、大きな重みで平滑化の強度決定に利用される。その結果、縦境界線Bw、Beの周辺で生じやすい横方向hrの画素値変化を示すブロックノイズを効果的に低減可能である。そして、縦正規化強度αpv1、αpv2の重みを小さくすることによって、画像が過剰にぼやけることを抑制できる。
逆に、横境界線Bn、Bsの周辺に関しては、縦正規化強度αpv1、αpv2の重みを大きくすることによって、横境界線Bn、Bsの周辺で生じやすい縦方向vtの画素値変化を示すブロックノイズを効果的に低減可能である。そして、横正規化強度αph1、αph2の重みを小さくすることによって、画像が過剰にぼやけることを抑制できる。
なお、平滑化モジュール424(図9)は、図18に示す実施例と同様に、輝度成分Yの平滑化強度から、色差成分U、Vの平滑化強度を決定すればよい。そして、平滑化モジュール424は、横平滑画素値と縦平滑画素値との重み付き平均値を、各色成分毎に算出すればよい。また、色成分毎に形式の異なる異方性平滑化フィルタを利用してもよい。
B7.ブロックノイズ強度を利用した平滑化処理の第7実施例:
図26は、第7実施例におけるフィルタモジュール420aを示す説明図である。図9に示すフィルタモジュール420bとの差違は、エッジ方向検出モジュール423が追加されている点だけである。装置構成の他の部分は、図1、図2に示す実施例と同じである。また、画像処理は、図4、図5、図10に示す実施例と同様に実行される。ただし、本実施例では、図10のステップS210で、エッジ方向検出モジュール423は、画素ブロックが表す画像のエッジ方向を検出する。そして、平滑化モジュール424は、検出されたエッジ方向を利用して平滑化処理を実行する。
図27は、エッジ方向とエッジ強度BESとの関係を示す説明図である。図27には、図11と同様に、対象画像SIと、対象ブロックFを中心とする3*3の画素ブロックグループBGが示されている。また、画素ブロックグループBGの上には、図13と同様の第1グラフGhが示されている。横軸は横方向hrの画素位置を示し、縦軸は画素値を示している。また、画素ブロックグループBGの右には、第2グラフGvが示されている。この第2グラフGvは、縦方向vtの画素位置(縦軸)と画素値(横軸)との関係を示している。
図27の例では、画素ブロックグループBGは、対象画像SIの被写体のエッジを表している。このエッジは、ほぼ縦方向vtに延びている。これは、画素ブロックグループBGの全体(特に対象ブロックFとその周辺)において、横方向hrに画素を辿ったときの画素値の変化が大きく、縦方向vtに画素を辿ったときの画素値の変化が小さいことを意味している(グラフGh、Gv参照)。これらの結果、左境界線Bwでのエッジ強度BESwと、右境界線Beでのエッジ強度BESeが大きくなる(以下、これらのエッジ強度BESw、BESeのことを「縦エッジ強度BESw、BESe」とも呼ぶ)。そして、上境界線Bnでのエッジ強度BESnと、下境界線Bsでのエッジ強度BESsとが小さくなる(以下、これらのエッジ強度BESn、BESsのことを「横エッジ強度BESn、BESs」とも呼ぶ)。
逆に、画素ブロックグループBGが横方向hrに延びるエッジを表す場合には、横エッジ強度BESn、BESsが大きくなり、縦エッジ強度BESw、BESeが小さくなる(図示省略)。
一般には、エッジの方向と境界線とがなす角度が小さいほど、その境界線に関するエッジ強度BESが大きくなる。従って、横エッジ強度BESn、BESsに対する縦エッジ強度BESw、BESeの比率によって、エッジ方向を表すことができる。
図28は、エッジ方向算出を示す概要図である。対象ブロックFの左上半分の第1三角領域AA1内の画素については、エッジ方向検出モジュール423(図26)は、まず、上横エッジ強度BESnと左縦エッジ強度BESwとから傾斜角度DA1を算出する(DA1=arctan(BESw/BESn))。
この第1傾斜角度DA1は、エッジ方向と横方向hrとのなす角度を示している。図28の下段には、2つのエッジ方向EGa、EGbが示されている。第1エッジ方向EGaは、右上に向かって延びるエッジ方向を示している。第2エッジ方向EGbは、右下に向かって延びるエッジ方向を示している。また、2つのエッジ方向EGa、EGbのそれぞれに関して、エッジ方向と横方向hrとのなす角度Axは、同じである。なお、右上は、横方向hrを基準とする反時計回り方向の角度(以下「基準角度θ」と呼ぶ)が0〜90度の範囲を示している。右下は、基準角度θが−90〜0度の範囲を示している。
第1三角領域AA1が第1エッジ方向EGaに延びるエッジを表す場合には、第1傾斜角度DA1は角度Axである。また、第1三角領域AA1が第2エッジ方向EGbに延びるエッジを表す場合も、第1傾斜角度DA1は角度Axである。このように、1つの値を示す第1傾斜角度DA1は、エッジ方向が右上を指す場合と、エッジ方向が右下を指す場合との両方を示し得る。この理由は、数式3に示すように、エッジ強度BESn、BESwのそれぞれが、ゼロ以上の値に設定されるからである。ここで、第1傾斜角度DA1は、横方向hrを基準とする0〜90度の範囲の値に設定される。
そこで、エッジ方向検出モジュール423(図26)は、エッジ方向をより詳細に特定する処理を実行する。具体的には、第1三角領域AA1内の、第1ラインLn1上における画素値の変化率の大きさと、第3ラインLn3上における画素値の変化率の大きさとの比較結果から、右上と右下とが区別される。
第1ラインLn1は、対象ブロックFの左上隅の画素(f11)から右下(θ=−45度)に向かって中央部の画素(f44)まで延びるライン(f11、f22、f33、f44)を示している。この第1ラインLn1上の画素値の変化率の大きさVR1は、種々の方法で算出され得る。例えば、以下の演算式を採用可能である。
VR1=(|f22-f11|+|f33−f22|+|f44−f33|)/3
この大きさVR1は、第1ラインLn1上で隣接する画素間の画素値差分の絶対値の平均値を示している。
第3ラインLn3は、左下隅の画素(f81)から右上(θ=45度)に向かって右上隅の画素(f18)まで延びるライン(f81、f72、f63、・・・f27、f18)を示している。この第3ラインLn3上の画素値の変化率の大きさVR3は、種々の方法で算出され得る。例えば、以下の演算式を採用可能である。
VR3=(|f72−f81|+|f63−f72|+|f54−f63|+|f45−f54|+|f36−f45|+|f27−f36|+|f18−f27|)/7
この大きさVR3は、第3ラインLn3上で隣接する画素間の画素値差分の絶対値の平均値を示している。
第1エッジ方向EGaのようにエッジ方向が右上を向いている場合には、第1大きさVR1が第3大きさVR3よりも大きくなる。一方、第2エッジ方向EGbのようにエッジ方向が右下を向いている場合には、第1大きさVR1が第3大きさVR3よりも小さくなる。従って、エッジ方向検出モジュール423(図26)は、第1大きさVR1が第3大きさVR3以上である場合には、第1傾斜角度DA1を、そのまま、第1エッジ角度EA1として採用する。第1大きさVR1が第3大きさVR3よりも小さい場合には、第1傾斜角度DA1の符号を負(−)に設定して得られる値を、第1エッジ角度EA1として採用する。エッジ方向を示すこの第1エッジ角度EA1は、横方向hrを基準とする反時計回り方向の角度で表されている(−90〜+90度)。
対象ブロックFの右下半分の第2三角領域AA2内の画素については、エッジ方向検出モジュール423(図26)は、下横エッジ強度BESsと右縦エッジ強度BESeとから第2傾斜角度DA2を算出し、第2傾斜角度DA2から第2エッジ角度EA2を算出する。エッジ方向を示すこの第2エッジ角度EA2は、横方向hrを基準とする反時計回り方向の角度で表されている(−90〜+90度)。なお、2つの領域AA1、AA2の境界上の画素については、2つのエッジ角度EA1、EA2の内の任意の一方を利用可能である。なお、第2エッジ角度EA2の算出方法は、第1エッジ角度EA1の算出方法と同様である。ただし、第1ラインLn1の代わりに第2ラインLn2が利用される。第2ラインLn2は、対象ブロックFの右下隅の画素(f88)から左上(θ=135度)に向かって中央部の画素(f55)まで延びるライン(f88、f77、f66、f55)を示している。
図29は、エッジ方向を利用する平滑化処理の概要図である。本実施例では、平滑化モジュール424(図26)は、平滑化の方向が互いに異なる4種類の異方性平滑化フィルタSFh、SFi1、SFv、SFi2の中から、エッジ角度EAに応じて平滑化フィルタを選択する。
ここで、平滑化の方向は、平滑化の強度が最も強くなる方向、すなわち、画素値の変化率を最も強くなだらかにすることが可能な方向を意味している。このような平滑化の方向は、例えば、以下のようなテスト画像データを用いて確認され得る。テスト画像内の或る特定画素の画素値がピークに設定され、他の画素の画素値が、特定画素からの距離が遠いほど小さくなるように設定されていると仮定する。ここで、テスト画像内における画素値分布の形状は、特定画素をピークとする等方的な山形状である。このようなテスト画像の全体に、同じ平滑化フィルタを用いた平滑化処理を実行する。すると、特定画素と、その周辺の画素との間の画素値差分が小さくなる。この画素値差分の減少量は、平滑化の強度に相当する(減少量が大きいほど平滑化強度が強い)。ここで、画素値差分の減少量を、周辺画素毎に比較する。周辺画素としては、例えば、特定画素の周囲を囲む8つの画素を採用可能である。ここで、特定画素から、画素値差分の減少量が最も大きい周辺画素へ向かう方向が、平滑化の方向であるということができる。以下、平滑化の方向を、横方向hrを基準とする反時計回り方向の角度θsで表す。なお、ある方向の平滑化の強度が強いことは、その方向と逆方向の平滑化の強度が強いことと等価である。従って、平滑化方向θsは、−90〜+90度の範囲の値によって表され得る。
図29には、エッジ角度EAの範囲と平滑化フィルタとの関係を表すテーブルが示されている。エッジ角度EAが横範囲EARh(−22.5〜+22.5度)内の場合には、横平滑化フィルタSFhが選択される。この横平滑化フィルタSFhは、図23に示す横平滑化フィルタSFhと同じである。この平滑化フィルタSFhの平滑化方向θsは0度である。
エッジ角度EAが第1斜範囲EARi1(+22.5〜+67.5度)内の場合には、第1斜平滑化フィルタSFi1が選択される。この第1斜平滑化フィルタSFi1は、図15に示す平滑化フィルタSF1において、中央要素CELと、中央要素CELの右上と左下とのそれぞれの要素とをそのまま維持し、他の要素をゼロに設定したものと同じである。この第1斜平滑化フィルタSFi1を利用すれば、右上から左下に向かって画素を辿ったときの画素値の変化を小さくすることができる。このように、この平滑化フィルタSFi1の平滑化方向θsは45度である。
エッジ角度EAが縦範囲EARv(+67.5〜+90度、−90〜−67.5度)内の場合には、縦平滑化フィルタSFvが選択される。この縦平滑化フィルタSFvは、図23に示す縦平滑化フィルタSFvと同じである。この平滑化フィルタSFvの平滑化方向θsは90度である。
エッジ角度EAが第2斜範囲RARi2(−67.5〜−22.5度)内の場合には、第2斜平滑化フィルタSFi2が選択される。この第2斜平滑化フィルタSFi2は、図15に示す平滑化フィルタSF1において、中央要素CELと、中央要素CELの左上と右下とのそれぞれの要素とをそのまま維持し、他の要素をゼロに設定したものと同じである。この第2斜平滑化フィルタSFi2を利用すれば、左上から右下に向かって画素を辿ったときの画素値の変化を小さくすることができる。このように、この平滑化フィルタSFi2の平滑化方向θsは−45度である。
平滑化モジュール424(図26)は、各平滑化フィルタの要素を、代表正規化強度αfに基づいて決定する。代表正規化強度αfとしては、図17に示す実施例で説明した種々の代表値(例えば、最大値)を採用可能である。
なお、本実施例では、傾斜角度DA1、DA2が、0〜+22.5度、+67.5〜+90度のいずれかの範囲内にある場合には、エッジ方向が右上を指す場合と、エッジ方向が右下を指す場合とで共通の平滑化フィルタが利用される。従って、この場合には、右上と右下とを区別する処理を省略してもよい。
以上のように、本実施例では、エッジ角度EA(図28のエッジ角度EA1、EA2)に応じて、エッジ方向とほぼ平行な方向の画素値変化を平滑化する平滑化フィルタが選択される。すなわち、エッジ方向の平滑化の強度が、エッジ方向と垂直な方向の平滑化の強度よりも、強くなる。その結果、被写体のエッジが過剰に滑らかになることを抑制できる。そして、ブロックノイズを低減することができる。
なお、エッジ方向検出モジュール423は、ノイズ強度算出モジュール422と同様に、輝度成分Yを利用してエッジ方向を算出すればよい。そして、平滑化モジュール424は、各色成分Y、U、Vに対して、4つのフィルタSFh、SFi1、SFv、SFi2の中からエッジ方向に応じて選択された1つのフィルタを共通に利用すればよい。また、平滑化モジュール424(図26)は、図18に示す実施例と同様に、輝度成分Yの平滑化強度から、色差成分U、Vの平滑化強度を決定すればよい。また、色成分毎に形式の異なる平滑化フィルタを利用してもよい。
B8.ブロックノイズ強度を利用した平滑化処理の第8実施例:
図30は、第8実施例における色成分毎の平滑化処理の手順を示すフローチャートである。図10に示す処理との差違は、2つのステップS200、S210の間に、ノイズを付加するステップS205が追加されている点だけである。2つのステップS200、S210の処理としては、上述の各実施例の処理を採用可能である。
本実施例では、平滑化モジュール424(図9、図26)は、画素値にノイズを付加し、ノイズが付加された画像データを利用して平滑化処理を実行する。これは、平滑化フィルタを用いた平滑化処理では解消が困難な境界線上の画素値の不連続性を緩和するためである。
図31は、境界線上の不連続性を示す概略図である。図中には、左境界線Bwにおける不連続性が示されている。第1画素列Vf1の8つの画素値f11〜f81は全て「100」であり、第8画素列Vw8の8つの画素値w18〜w88は全て「101」である。このように左境界線Bwの全体に亘って画素値の変化率は、最小値(1)である。この場合には、平滑画素値を中間の値(例えば、100.5)に設定することができないので、平滑化フィルタを利用した平滑化処理では、不連続性を解消することが困難である。また、このような不連続性は、筋状のノイズとして目立ちやすい。そこで、本実施例では、このような不連続性を解消するために、画素値にノイズを付加する。なお、このような画素値分布は、例えば、画素ブロックF、Wが、緩やかなグラデーションを表す場合に、生じ得る。
図32は、ノイズ付加を示す概要図である。先ず、平滑化モジュール424(図9、図26)は、対象ブロックFの第i行の差分指標値Δiを算出する。この差分指標値Δiは、第i行に関する、対象ブロックFと左ブロックWとの間の画素値の差分を表している。具体的には、左ブロックWの第i行の第8列の画素値wi8から、対象ブロックFの第i行の8つの画素値fi1〜fi8の平均値fi_aveを差し引いた差分が、差分指標値Δiとして利用される。
次に、平滑化モジュール424は、差分指標値Δiに横画素位置hrpで決まる係数ncを乗じてノイズ特性値Δijを算出する。図32の中段のグラフに示すように、この係数ncは、横画素位置hrpが左境界線Bwに近いほど大きい。図32の実施例では、左境界線Bwに最も近い4つの横画素位置hrp(1〜4)に対して、係数ncが「3/4」、「2/4」、「1/4」、「0」に、それぞれ設定されている。なお、横画素位置hrpが5よりも大きな範囲では(5〜8)、係数ncはゼロに設定されている。
次に、平滑化モジュール424は、ノイズ特性値Δijからノイズのパラメータを決定する。本実施例では、正規分布に従う乱数がノイズとして利用される。そして、平均値が「Δij/2」に設定され、分散が「(Δij/4)2」に設定される。このように、ノイズの大きさは、ノイズ特性値Δij(すなわち、差分指標値Δi)が大きいほど大きい。なお、このようなノイズは、例えば、平均がゼロで分散が1の正規分布に従う乱数Rnを用いた演算式「(Δij/2)+(Δij/4)*Rn」によって生成可能である。
平滑化モジュール424は、このようにして得られるランダムノイズを、対象ブロックFの第i行の8つの画素値fi1〜fi8に付加する(だたし、平均と分散とが共にゼロに設定される5つの画素値fi4〜fi8にはノイズ付加は行われない)。図32の下には、ノイズ付加による画素値の変化の概要が示されている。この図では、5つの画素値wi8、fi1〜fi4が示されている。黒丸はノイズ付加前の画素値を示している。白丸はノイズ付加後の平均画素値を示している。矢印で示される範囲は、ノイズ付加後の画素値の偏差を示している。ここで、説明を簡単にするために、対象ブロックFの画素値fi1〜fi4は、全て平均値fi_aveであることとしている。
図示するように、左境界線Bwに近いほど、対象ブロックFの画素値が左ブロックWの画素値wi8に近くなる可能性が高い。また、左境界線Bwから遠いほど、画素値の変化量が小さい。これらにより、対象ブロックFの中央部分の画素値が過剰に変化することを抑制しつつ、左境界線Bw上の不連続性を解消することができる。
図33は、ノイズ付加結果の一例を示す概略図である。この図には、図31に示す対象ブロックFにノイズを付加した場合の例が示されている。図示するように、第1画素列Vf1の8つの画素値f11〜f81に、ノイズ付加によるバラツキが生じている。その結果、第8画素列Vw8の画素値との不連続性が大幅に緩和されている。実際には、第8画素列Vw8の8つの画素値w18〜w88にもノイズが付加されるので、左境界線Bw上の不連続性は、より適切に、緩和される。さらに、ノイズ付加の後に平滑化処理が実行されるので、付加されたノイズが目立つことも抑制される。
以上、左境界線Bwについて説明したが、対象ブロックFの他の境界線Bn、Be、Bsについても、同様に、ノイズ付加処理が実行される。ここで、横境界線Bn、Bsに関しては、横方向hrと縦方向vtを入れ替えた関係に従ってノイズパラメータが決定される。ここで、ブロックノイズ強度BNSが大きいほど大きな重みをノイズに付してもよい。
なお、ノイズとしては、図32に示すノイズに限らず、種々のノイズを採用可能である。例えば、乱数を利用してノイズを生成する代わりに、予め設定されたノイズパターンを利用してもよい。また、横画素位置hrpと縦画素位置vtpとに依存しない一様なノイズを付加してもよい。ただし、境界線に近いほど画素値の変化が大きくなるようなノイズを採用することが好ましい。こうすれば、画素ブロックの中央部分の画素値が過剰に変化することを抑制しつつ、境界線上の不連続性を解消することができる。
また、ノイズの大きさ(すなわち、ノイズ付加による画素値の変化量)は、境界線における画素値の変化率が大きいほど大きいことが好ましい。このような変化率を表す指標としては、上述の差分指標値Δiに限らず、変化率と正の相関を有する種々の指標値を採用可能である。例えば、一方の画素ブロック内の画素値の平均値と、他方の画素ブロック内の画素値の平均値との差分を利用してもよい。いずれの場合も、このような指標値が大きいほど大きなノイズを付加すれば、過剰なノイズ付加を避けることができ、そして、境界線上の不連続性が解消されずに残ることを抑制できる。また、大きなノイズが付加された場合であっても、ブロックノイズ強度BNSが強いほど強い平滑化が実行されるので、ノイズが目立つことも抑制できる。
また、ノイズの周波数分布において、ピークが所定値よりも高いことが好ましい。例えば、1サイクル/4画素よりも高い周波数にピークがあれば、ノイズの斑が目立つことを抑制できる。
また、このようなノイズ付加を、所定の条件が成立した場合に実行してもよい。このような条件としては、例えば、境界線に関するブロックノイズ強度BNSが所定の閾値よりも強いこと、を採用可能である。
なお、図30のステップS205では、平滑化モジュール424(図9、図26)は、輝度成分Yに対してノイズを付加する。また、平滑化モジュール424は、輝度成分Yに加えて、他の色成分U、Vにノイズを付加してもよい。各色成分U、Vに付加されるノイズとしては、輝度成分Yに対して付加されたノイズと同じノイズを採用可能である。この代わりに、各色成分U、V毎に、輝度成分Yと同じ方法でノイズを算出してもよい。
B9.ブロックノイズ強度を利用した平滑化処理の第9実施例:
上述の各実施例において、ブロックノイズ強度BNSとしては、数式4によって表される値に限らず、他の演算式によって表される値を採用してもよい。例えば、以下の数式5で表される値を採用してもよい。
この数式5は、数式4におけるL2ノルムをL1ノルムに置き換えたものである。L1ノルムは、1次のノルムとも呼ばれ、全ての要素の絶対値の合計値を算出する演算である(数式2参照)。このようなL1ノルムを用いた数式5を利用すれば、n乗(nは2以上の整数)とn乗根との代わりに絶対値計算と加減算とを含む整数演算によってブロックノイズ強度BNSを算出することが可能である。その結果、演算処理の負荷を大幅に軽減することが可能である。
また、数式5において、L1ノルムを最大値ノルムに置き換えてもよい。最大値ノルムは、スープノルムとも呼ばれ、全ての要素の絶対値の内の最大の値を算出する演算である。この場合も、n乗(nは2以上の整数)とn乗根とを計算せずにブロックノイズ強度BNSを算出することが可能である。その結果、演算処理の負荷を大幅に軽減することが可能である。
一般に、数式5において、L1ノルムをp次のノルムに置き換えることが可能である(数式2参照)。p次のノルムは、幾何学的ベクトルの長さの概念を一般化したものである。従って、このようなノルムを用いることによって、差分列(例えば、Vdb、Vdw、Vdf)が示す差分の総合値(すなわち、境界線と垂直な方向に画素を辿ったときの画素値の変化率、換言すれば、境界線と平行に延びるエッジの強さ)を適切に算出することが可能である。その結果、いずれのノルムを利用しても、ブロックノイズの強度を適切に算出することが可能である。なお、上述の最大値ノルムは、p次ノルムの次数pを無限大に設定したときの極限であると見なすことが可能である。
C.変形例:
なお、上記各実施例における構成要素の中の、独立クレームでクレームされた要素以外の要素は、付加的な要素であり、適宜省略可能である。また、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
変形例1:
上述の各実施例において、対象画像データの各画素の色を表す色成分としては、Y、U、V成分に限らず、任意の色成分を採用可能である。例えば、R、G、B成分や、Y、Cb、Cr成分を採用してもよい。いずれの場合も、輝度成分と第1と第2の色差成分とを含む色空間とは異なる色空間で表された対象画像データを利用するために、色成分取得モジュール421が、元の色空間(色成分)から、輝度と第1と第2の色差とで表された所定の色空間への変換機能を有していることが好ましい。ただし、このような変換機能が省略されてもよい。なお、輝度成分と2種類の色差成分としては、Y、U、V成分に限らず、種々の成分を採用可能である。例えば、Y、Cb、Cr成分を採用してもよく、L、a*、b*成分を採用してもよい。
変形例2:
上述の各実施例において、平滑化処理の対象の色成分としては、輝度成分と、第1と第2の色差成分とのうちの第1色差成分を含む少なくとも一部の成分を採用可能である。例えば、2つの色差成分に対して平滑化処理を実行し、輝度成分に対する平滑化処理を省略してもよい。ただし、輝度成分と、第1と第2の色差成分とのそれぞれに平滑化処理を実行すれば、ノイズ低減の効果が顕著である。
また、輝度成分と第1と第2の色差成分のそれぞれに対して平滑化処理を実行する場合には、個々の画素位置において、第1色差成分の平滑化強度と、第2色差成分の平滑化強度とのそれぞれが、輝度成分の平滑化強度よりも強いことが好ましい。こうすれば、輝度成分が過剰に平滑化されて画像がぼやけることを抑制できる。そして、第1と第2の色差成分のそれぞれを強く平滑化することによってノイズを低減することができる。
いずれの場合も、個々の画素位置において、第1色差成分に対して最も強い平滑化処理が実行されることが好ましい。こうすれば、輝度成分に対して過剰に強い平滑化処理が実行されることが防止されるので、画像が過剰にぼやけることを防止できる。そして、第1色差成分に対する強い平滑化処理によって、ノイズを適切に低減することができる。なお、平滑化処理が実行されない色成分に関しては、平滑化強度がゼロに設定されているということができる。また、通常は、カラー画像データの色は、輝度成分と2種類の色差成分とで表すことが可能である。ここで、上述の第1色差成分としては、2種類の色差成分の内の任意の一方を採用可能である。また、第1色差成分と第2色差成分との間で平滑化強度が異なっていても良い。
変形例3:
上述の各実施例において、平滑化処理の対象となる領域は、対象画像データによって表される対象画像の内の一部の領域であってもよい。例えば、フィルタモジュール420、420a、420b(図3、図9、図32)は、処理対象領域として、ユーザによって指定された一部の領域を採用してもよい。また、他の装置からの指示によって指定された一部の領域が採用されてもよい。例えば、特定の被写体(例えば、人物)を表す一部の領域を特定する特定装置によって、平滑化処理の対象領域が指定されてもよい。
変形例4:
上述の各実施例において、ブロックノイズ強度の算出に利用される色成分としては、輝度成分に限らず、種々の成分を採用可能である。例えば、色差成分Uを利用してもよい。
また、ブロックノイズ強度の算出と、算出されたブロックノイズ強度に応じた平滑化処理の強度の決定との全体を、色成分毎に実行してもよい。図34は、ブロックノイズ強度と平滑化強度との関係を示すグラフである。図18に示す実施例との差違は、各色成分Y、U、Vの平滑化強度αY、αU、αVが、各色成分Y、U、Vのブロックノイズ強度αfY、αfU、αfVに応じて、それぞれ決定される点だけである。ブロックノイズ強度αfY、αfU、αfVは、上述の各実施例と同様にノイズ強度算出モジュール422(図9、図26)によって、各色成分Y、U、V毎に算出される。平滑化モジュール424は、各平滑化強度αY、αU、αVを、図34のグラフに従って、決定する。各平滑化強度αY、αU、αVは、ブロックノイズ強度αfY、αfU、αfVが強いほど強くなるように、それぞれ設定されている。図34の実施例では、図18の実施例と同様に、同じノイズ強度に対する2つの色差成分の平滑化強度αU、αVは、同じ値に設定されている。
また、個々の画素位置においては、各ノイズ強度αfY、αfU、αfVが互いに異なる値となり得る。そこで、図34のグラフでは、2つの色差成分の平滑化強度αU、αVは、輝度成分の平滑化強度αY以下の値にならないように、十分に大きな値に設定されている。これらの結果、個々の画素位置において、各色差成分の平滑化強度αU、αVは、輝度成分の平滑化強度αYよりも強い値に設定される。また、色差成分の平滑化強度αU、αVの傾き(ノイズ強度の変化に対する平滑化強度の変化の割合)は、輝度成分の平滑化強度αYの傾きよりも大きい。その結果、色差成分U、Vに関しては、強いノイズを強い平滑化によって低減できる。また、輝度成分Yに関しては、平滑化強度αYが過剰に強くなることを防止できる。
なお、各色成分のノイズ強度と平滑化強度との対応関係としては、図34に示す対応関係に限らず、種々の対応関係を採用可能である。例えば、3種類のノイズ強度αfY、αfU、αfVのそれぞれの値の任意の組合せに関して、色差成分の平滑化強度αU、αVのそれぞれが、輝度成分の平滑化強度αYよりも強い値に設定されてもよい。また、これらの対応関係を、種々の画像データを利用した官能評価を利用して、実験的に決定してもよい。また、図34に示すような各色成分毎のノイズ強度と平滑化強度との決定は、図8〜図33に示す各実施例に適用可能である。
また、一部の色成分に対する平滑化強度をブロックノイズ強度に応じて決定し、残りの処理色成分に対する平滑化強度を所定の強さに維持してもよい。また、色成分毎に平滑化の方向が異なっていても良い。この場合も、色成分間の平滑化強度を、第7実施例で説明したようなテスト画像データを用いて比較可能である。上述したように、このテスト画像データでは、テスト画像内における色成分の画素値分布の形状が、特定画素をピークとする等方的な山形状である。このようなテスト画像の全体に、同じ平滑化フィルタを用いた平滑化処理を実行する。すると、特定画素と、その周辺の8つの画素との間の画素値差分が小さくなる。この8つの画素値差分減少量のうちの最大値を、その平滑化フィルタによる平滑化強度として利用可能である。そして、このような平滑化強度を用いて、色成分間の平滑化強度を比較可能である。ここで、各色成分の平滑化強度の算出に、同じ画素値分布を利用すればよい。このような平滑化強度の比較は、各色成分の平滑化の方向が同じ場合や、等方的な平滑化処理が実行される場合にも、同様に実行可能である。
いずれの場合も、個々の画素位置において、第1色差成分に対して最も強い平滑化処理が実行されることが好ましい。そして、個々の画素位置において、第1色差成分の平滑化強度と、第2色差成分の平滑化強度とのそれぞれが、輝度成分の平滑化強度よりも強いことが好ましい。
変形例5:
上述の各実施例において、フィルタモジュール420、420a、420b(図3、図9、図32)は、輝度成分と2つの色差成分とを含む色空間とは異なる色空間で表された処理済み対象画像データを生成してもよい。例えば、フィルタモジュール420、420a、420bは、RGB色空間で表された処理済み対象画像データを生成してもよい。この場合には、平滑化処理が実行された後の色成分(輝度成分、色差成分)から所定の出力色成分への変換を実行する出力変換モジュール(図示せず)を利用すればよい。このような出力変換モジュールは、フィルタモジュール420、420a、420bに設けられてもよく、また、他の画像処理装置に設けられても良い。いずれの場合も、平滑化モジュール424は、処理済みの色成分(輝度成分と色差成分)で表された画像データを出力変換モジュールに送出すればよい。ここで、出力色成分が対象画像データの各画素の色を表す色成分と異なっていてもよい。
変形例6:
上述の各実施例において、対象画素ブロックと他の画素ブロックとの間の境界線におけるブロックノイズ強度を算出するためのノイズ強度演算としては、種々の演算を採用可能である。ここで、対象画素ブロック内の画素値の変化率の大きさを示す指数が大きいほど弱いブロックノイズ強度が算出されるように、ノイズ強度演算が設定されていることが好ましい。こうすれば、画像がぼやける等の不具合の発生を抑制しつつブロックノイズを低減することができる。ここで、このような指数としては、種々の値を採用可能である。例えば、上述の各実施例のようにエッジ強度BESを採用してもよい。また、対象画素ブロック内の画素値の分散を採用してもよい。分散の算出には、対象画素ブロックの全体を利用してもよく、所定の一部の領域を利用してもよい。また、対象画素ブロック内の所定の複数の画素位置における画素値変化率の代表値(例えば、平均値、最大値、最頻値、中央値(メディアン)、最小値)を採用してもよい。このような種々の指数の少なくとも一部に関して、指数が大きいほどブロックノイズ強度が弱いことが好ましい。また、数式4、数式5で表される演算式の分母を、このような指標に置き換えても良い。
ここで、ブロックノイズ強度は、以下のように設定されることが好ましい。すなわち、ブロックノイズ強度は、第1算出値を第2算出値で除した値に設定される。ここで、境界線と垂直な方向の画素値の変化率を垂直変化率と呼ぶ。第1算出値は、境界線上における垂直変化率の2次微分と正の相関を有するという第1特徴を示す。第2算出値は、対象画素ブロック内の垂直変化率である対象変化率の大きさを示す対象変化指数と正の相関を有するという第2特徴を示す。さらに、第2算出値は、他の画素ブロック内の垂直変化率である隣接変化率の大きさを示す隣接変化指数と正の相関を有するという第3特徴とを示す。このようなブロックノイズ強度を利用すれば、適切なブロックノイズ強度を算出できる。
第1算出値としては、第1特徴を示す種々の値を採用可能である。例えば、上述の各実施例のようにMSDSの平方根を利用してもよい。また、境界線上の所定の複数の画素位置における垂直変化率の2次微分の代表値(例えば、平均値、最大値、最頻値、中央値(メディアン)、最小値)を採用してもよい。
対象変化指数としては、対象画素ブロック内の垂直変化率の大きさを示す種々の値を採用可能である。例えば、上述の各実施例のように第1内部差分列Vdfのノルムを採用してもよい。また、対象画素ブロック内の所定の複数の画素位置における垂直変化率の代表値(例えば、平均値、最大値、最頻値、中央値(メディアン)、最小値)を採用してもよい。このような種々の対象変化指数の少なくとも一部に関して、第2算出値が対象変化指数と正の相関を有することが好ましい。これらの説明は、隣接変化指数についても、同様である。なお、上述の各実施例では、隣接変化指数として、第2内部差分列Vdwのノルムが利用されている。
なお、第1算出値と対象変化指数と隣接変化指数とのそれぞれは、境界線と垂直な複数の画素ラインを利用して算出可能である。また、各画素ラインから算出された値を総合するために、p次ノルム(数式2)を採用可能である。ここで、1次ノルムと最大値ノルムのいずれかを利用すれば、演算負荷を大幅に低減できる。また、第1算出値と対象変化指数と隣接変化指数とのそれぞれは、互いに異なる画素ラインから算出されてもよい。
いずれの場合も、画素値変化率は、単位長さ当たりの画素値の変化量を意味している。そして、単位長さとしては、1画素分の長さに限らず、任意の長さ(2画素分の長さや3画素分の長さ)を採用可能である。例えば、3画素分の長さを採用してもよい。この場合には、上述の各実施例で利用される差分列Vdb、Vdw、Vdfとして、2画素分の間を空けて選択された画素列の差分を利用すればよい(Vdb=Vf2−Vw7、Vdw=Vw7−Vw4、Vdf=Vf5−Vf2)。ただし、境界線上に生じやすいブロックノイズの強度を算出するためには、単位長さとして小さい長さ(例えば1画素分の長さ)を採用することが好ましい。
変形例7:
上述の各実施例において、平滑化処理の強度は、対象画素ブロックの各画素毎に決定されることが好ましい。こうすれば、画像がぼやける等の不具合の発生を抑制しつつブロックノイズを低減することが容易である。このように平滑化処理の強度を決定する方法としては、例えば、図20、図21、図22、図24に示す実施例が挙げられる。
変形例8:
上述の各実施例において、平滑化処理の対象の画素として、画素ブロック内の一部の画素を採用してもよい。例えば、境界線に近い一部の画素を採用可能である。ただし、上述の各実施例のように全ての画素に平滑化処理を実行すれば、平滑化処理が実行された画素と平滑化処理が実行されなかった画素との間の境界に沿ってノイズが生じることを抑制できる。
また、平滑化フィルタとしては、図15、図23、図29の実施例に限らず、種々のフィルタを採用可能である。例えば、フィルタ範囲が3*3よりも広くてもよい。
変形例9:
上述の各実施例において、対象画像データとしては、種々の画像データを採用可能である。例えば、画像データの中には、各画素の画素値を表すデータの一部が省略されている圧縮画像データがある。特に、輝度成分と比べて、色差成分のデータが高い割合で省略されている圧縮画像データがある(例えば、YUV422形式や、YUV420形式)。このような圧縮画像データの復号を利用して生成された画像データに関しては、輝度成分と比べて、色差成分に強いノイズが生じ得る。従って、このような画像データを対象画像データとして採用する場合には、上述の各実施例におけるノイズ低減の効果が顕著である。
また、上述の各実施例において、平滑化処理の対象となる対象画像データとしては、動画像に含まれるフレーム画像データに限らず、種々の画像データを採用可能である。例えば、JPEG画像データやTIFF画像データ等の静止画像データを採用してもよい。また、ブロックノイズ強度に応じて平滑化強度が調整される平滑化処理(デブロッキング処理)の対象となる対象画像データとしては、動画像に含まれるフレーム画像データに限らず、複数の画素を含む画素ブロック毎の復号を利用して生成された種々の画像データを採用可能である。例えば、JPEG画像データをデコードして得られる画像データを採用してもよい。
また、このような平滑化処理を実行する画像処理装置において、上述の圧縮画像データの復号や上述の画素ブロック毎の復号を行う復号処理部を省略してもよい(図2の実施例では、選択モジュール400が復号処理部に相当する)。この場合には、画像処理装置は、他の装置によって復号(デコード)された画像データを処理対象として利用すればよい。いずれの場合も、対象画像データの取得方法としては、任意の方法を採用可能である。例えば、着脱可能なメモリカードやネットワークを通じて対象画像データを取得してもよい。
また、対象画像データ内の画素ブロックの配置設定(画素ブロックのサイズ(縦画素数と横画素数)を含む)を特定する方法としては、種々の方法を採用可能である。例えば、所定の配置設定が採用されてもよい。この代わりに、対象画像データに対応付けられた配置情報(画素ブロックの配置設定を表す)を利用してもよい。対象画像データと配置情報とは、フィルタモジュール420a、420b(図9、図26:モジュール421、422、423、424)に対して、種々の処理部(例えば、上述の復号処理部や外部装置)から供給され得る。同様に、復号処理部は、画素ブロックの配置設定を種々の方法で特定可能である。例えば、符号化された画像データの解析結果や、その画像データに対応付けられた情報(例えば、ヘッダ情報)から、配置設定を特定可能である。
変形例10:
上述の各実施例において、動画像に含まれる複数のフレーム画像を合成することによって、ユーザによって指定された画像と同じ画像を表す高解像度画像を生成してもよい。ここで、選択モジュール400(図2)が、合成に利用される複数のフレーム画像を選択すればよい。フィルタモジュール420は、各フレーム画像に対してデブロッキング処理を実行すればよい。そして、出力モジュール430は、デブロッキング処理が施された複数のフレーム画像を合成することによって、高解像度画像を生成すればよい。
変形例11:
上述の各実施例において、平滑化処理によって生成された画像データの用途としては、印刷に限らず、種々の用途を採用可能である。例えば、図4のステップS130において、出力モジュール430(図2)は、印刷を実行する代わりに、生成された画像データを含む画像データファイルをユーザに提供してもよい(例えば、ユーザに提供されるデータを格納するためのメモリ(例えば、着脱可能なメモリカードMC(図1))に画像データファイルを格納してもよく、また、ネットワークを通じて接続された通信機器に画像データファイルを送信してもよい)。また、動画像を再生する際に、各フレーム画像に対して平滑化処理を実行してもよい。このように、平滑化処理を実行する画像処理装置としては、プリンタ100に限らず、任意の装置を採用可能である。例えば、デジタルカメラ、携帯電話、携帯情報端末、動画像再生装置等の種々の装置を採用可能である。特に、第9実施例で説明したように、n乗(nは2以上の整数)とn乗根とを含まない整数演算によってブロックノイズ強度BNSを算出すれば、大幅に演算負荷を軽減することができる。その結果、画像処理装置の処理能力が高くない場合であっても、高速に平滑化処理を実行することができる。
変形例12:
上述の各実施例において、動画像データのフォーマットとしては、MPEGフォーマットに限らず、任意のフォーマットを採用可能である。また、上述の各実施例では、プログレッシブスキャンの動画像データを利用しているが、インタレーススキャンの動画像データを利用してもよい。この場合には、対象画像として、フレーム画像の代わりにフィールド画像を採用することが可能である。また、フィールド画像をそのまま採用する代わりに、2枚のフィールド画像から再構成された1枚のフレーム画像を採用してもよい。このようなフィールド画像からのフレーム画像の再構成は、選択モジュール400(より一般的には、画素ブロック毎の復号を行う復号処理部)によって実行され得る。
変形例13:
上述の第7実施例において、エッジ方向の検出方法としては、図28に示す方法に限らず、種々の方法を採用可能である。例えば、ソーベルフィルタを利用してエッジ方向を検出してもよい。ただし、図28に示すように、ブロックノイズ強度BNSの算出のために既に算出済みのエッジ強度BESを利用すれば、演算負荷を軽減できる。エッジ強度BESからエッジ方向を算出する方法としては、種々の方法を採用可能である。例えば、2つの縦エッジ強度BESw、BESeの平均値と、2つの横エッジ強度BESn、BESsの平均値とから、エッジ角度を算出してもよい。
また、平滑化の方向が互いに異なる異方性平滑化フィルタとしては、図29に示したフィルタに限らず、種々のフィルタを採用可能である。また、このような異方性平滑化フィルタの総数としては、4に限らず、種々の複数を採用可能である。ここで、図29の実施例のように、平滑化方向θsが、−90〜+90度の範囲内に均等に分布するように、複数の異方性平滑化フィルタを準備することが好ましい。また、異方性平滑化フィルタの総数が4以上であることが好ましい。いずれの場合も、平滑化モジュール424は、平滑化の方向が互いに異なる複数種類の平滑化フィルタの中から、平滑化の方向がエッジ方向に最も近い平滑化フィルタを選択することが好ましい。
また、平滑化の強度を、図20に示す実施例と同様に、画素位置に応じて変化させてもよい。
変形例14:
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図2のフィルタモジュール420の機能を、論理回路を有するハードウェア回路によって実現してもよい。
また、本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア(コンピュータプログラム)は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。