(57)【特許請求の範囲】
【請求項１】
コンピューターが、デジタル画像の画素に関連付けられたモスキートノイズ値を１画素単位で決定する段階と、
前記コンピューターが、前記デジタル画像に関連付けられたブロックノイズ値を１画素単位で決定し、前記デジタル画像がブロッキーかブロッキーでないかを検出する段階と、
前記コンピューターが、２次元（２Ｄ）モスキートフィルタ出力、２次元（２Ｄ）ブロックフィルタ出力、１次元（１Ｄ）水平フィルタ出力、および１次元（１Ｄ）垂直フィルタ出力を含むフィルタ出力を提供する複数の適応フィルタを用いて、前記デジタル画像をフィルタリングする段階と、
前記コンピューターが、前記モスキートノイズ値及び前記ブロックノイズ値に少なくとも一部基づいて、前記複数の適応フィルタからのフィルタ出力を組み合わせることにより、前記デジタル画像における圧縮アーティファクトを１画素単位で低減する段階と
を備え、
前記モスキートノイズ値を決定する段階は、
前記コンピューターが、強方向性エッジを検出し、
前記コンピューターが、前記強方向性エッジの近傍にモスキートノイズが発生する可能性のある領域を決定し、
前記コンピューターが、前記モスキートノイズが発生する可能性のある領域の画素について前記モスキートノイズ値を決定することにより行われ、
前記デジタル画像をフィルタリングする段階は、
（ｉ）前記デジタル画像は前記画像全体に渡って検出されるブロック境界を有し、前記デジタル画像がブロッキーである場合、前記コンピューターは、前記２次元（２Ｄ）モスキートフィルタの出力および前記２次元（２Ｄ）ブロックフィルタの出力を組み合わせて前記デジタル画像をフィルタリングし、
（ｉｉ）前記デジタル画像がブロッキーではないがブロックノイズを一部含む場合、前記コンピューターは前記１次元（１Ｄ）水平フィルタの出力および前記１次元（１Ｄ）垂直フィルタの出力を組み合わせて、ブロックノイズが検出された領域における前記デジタル画像をフィルタリングし、
（ｉｉｉ）前記デジタル画像においてブロックノイズが検出されない場合、前記コンピューターは前記２次元（２Ｄ）モスキートフィルタの出力を適用せずに前記デジタル画像をフィルタリングする方法。
【請求項２】
デジタル画像の画素に関連付けられたモスキートノイズ値を１画素単位で決定し、デジタル画像に存在するモスキートノイズの量を検出するモスキートノイズ検出ロジックと、
前記デジタル画像に関連付けられたブロックノイズ値を１画素単位で決定し、前記デジタル画像に存在するブロックノイズの量を検出し、前記デジタル画像がブロッキーかブロッキーでないかを検出するブロックノイズ検出ロジックと、
前記デジタル画像をフィルタリングして、２次元（２Ｄ）モスキートフィルタ出力、２Ｄブロックフィルタ出力、１次元（１Ｄ）水平方向ブロックフィルタ出力、及び１Ｄ垂直方向ブロックフィルタ出力の複数の適応フィルタ出力を生成するフィルタロジックと、
前記モスキートノイズの量及び前記ブロックノイズの量に少なくとも一部基づいて、画質を向上させるべく前記複数の適応フィルタ出力を選択する選択ロジックと、
前記複数の適応フィルタ出力の組み合わせに基づいて、前記デジタル画像における圧縮アーティファクトを１画素単位で低減する圧縮アーティファクトロジックと
を備え、
前記モスキートノイズ値の決定においては、
強方向性エッジが検出され、
前記強方向性エッジの近傍にモスキートノイズが発生する可能性のある領域が決定され、
前記モスキートノイズが発生する可能性のある領域の画素について前記モスキートノイズ値が決定され、
前記選択ロジックにおいて、
（ｉ）前記デジタル画像は前記画像全体に渡って検出されるブロック境界を有し、前記デジタル画像がブロッキーである場合、前記選択ロジックは、前記２次元（２Ｄ）モスキートフィルタの出力および前記２次元（２Ｄ）ブロックフィルタの出力を組み合わせて、
（ｉｉ）前記デジタル画像がブロッキーではないがブロックノイズを一部含む場合、前記選択ロジックは、前記１次元（１Ｄ）水平フィルタの出力および前記１次元（１Ｄ）垂直フィルタの出力を組み合わせて、
（ｉｉｉ）前記デジタル画像においてブロックノイズが検出されない場合、前記選択ロジックは、前記２次元（２Ｄ）モスキートフィルタの出力を適用しない装置。
【請求項３】
前記デジタル画像は、現在フレームであって、
前記選択ロジックは、複数の前フレームのセットの履歴に少なくとも一部基づいて、前記複数の適応フィルタ出力を選択し、
ブロッキーなフレームは、フレーム全体に渡ってブロックノイズを有し、
前記複数の前フレームのセットの一定数がブロッキーである場合は、前記現在のフレームはブロッキーである請求項２に記載の装置。
【請求項４】
前記モスキートノイズ検出ロジックは、
強方向性エッジを検出し、
前記強方向性エッジを、大きな拡張幅で拡張し、
前記強方向性エッジを、小さな拡張幅で拡張し、
前記大きな拡張幅及び前記小さな拡張幅内の画素でエッジマップを形成し、
前記エッジマップに対応する前記デジタル画像の平坦領域を決定し、
モスキートノイズ閾値を超えるモスキートノイズ強度を有する画素を決定し、
前記エッジマップに対応するモスキート画素値、前記平坦領域に対応する画素値、及び前記モスキートノイズ閾値を超えるモスキートノイズ強度を有する画素を掛け合わせることにより、モスキートノイズ出力を生成する請求項２または３に記載の装置。
【請求項５】
３×３画素の領域における隣接する画素のリンギング値を計算するリンギング検出ロジックをさらに備える請求項４に記載の装置。
【請求項６】
前記リンギング検出ロジックは、
【数１】
0005233014.tif 000004
に従って前記リンギング値を計算し、
ｒｓ０８は、中央に位置する画素を基準として、左上隅の画素及び右下隅の画素について計算され、ｒｓ１７は、前記中央に位置する画素の上方に位置する画素及び下方に位置する画素について計算され、ｒｓ２６は、前記中央に位置する画素を基準として、右上隅に位置する画素及び左下隅に位置する画素について計算され、ｒｓ３５は、前記中央に位置する画素の左側の画素と右側の画素について計算され、
【数２】
0005233014.tif 000005
であって、
ｄｉ＝ｘｉ−ｘ４は、前記中央に位置する画素とその他の画素それぞれとの差である請求項５に記載の装置。
【請求項７】
前記エッジマップは、前記方向性エッジ周辺の画素領域であり、前記方向性エッジ上の画素は、前記エッジマップには含まれず、前記大きな拡張幅は、前記エッジマップの外側のエッジの画素を規定し、前記小さな拡張幅は、前記エッジマップの内側のエッジの画素を規定する請求項４から６のいずれか一項に記載の装置。
【請求項８】
前記ブロックノイズ検出ロジックは、
水平方向ブロック境界が存在するかを検出し、
垂直方向ブロック境界が存在するかを検出し、
前記水平方向ブロック境界が一定の間隔で周期的に繰り返されること又は前記垂直方向ブロック境界が一定の間隔で周期的に繰り返されることのどちらか一方を少なくとも示すブロック位相が、前記デジタル画像に存在するか判断し、
前記ブロック位相に少なくとも一部基づいて、前記デジタル画像の画素に対応するグリッドを生成し、
前記ブロックノイズ検出ロジックは、前記グリッド及び前記デジタル画像の画素に少なくとも一部基づいて、前記ブロックノイズの量を検出する請求項２から７のいずれか一項に記載の装置。
【請求項９】
前記ブロックノイズ検出ロジックは、
前記デジタル画像の垂直方向の１つの列における画素に少なくとも一部基づいて、水平方向ブロック境界を決定し、
前記水平方向ブロック境界の位相に対応する水平方向アキュムレータをインクリメントし、
前記デジタル画像の水平方向の１つの行における画素に少なくとも一部基づいて、垂直方向ブロック境界を決定し、
前記垂直方向ブロック境界の位相に対応する垂直方向アキュムレータをインクリメントし、
水平方向アキュムレータ値及び垂直方向アキュムレータ値に少なくとも一部基づいて、前記デジタル画像のブロックグリッドを生成し、
前記ブロックノイズ検出ロジックは、前記ブロックグリッド及び前記デジタル画像の画素に少なくとも一部基づいて、前記ブロックノイズの量を検出する請求項２に記載の装置。
【請求項１０】
前記圧縮アーティファクトロジックは、前記ブロックグリッドに少なくとも一部基づいて、前記デジタル画像における圧縮アーティファクトを低減する請求項９に記載の装置。
【請求項１１】
画素値が、モスキートノイズ量及びブロックノイズ量を含む場合に、
前記選択ロジックは、前記２Ｄモスキートフィルタ出力に少なくとも一部基づいて前記複数の適応フィルタ出力を選択し、
前記複数の適応フィルタ出力は、前記２Ｄブロックフィルタ出力、前記１Ｄ水平方向ブロックフィルタ出力及び前記１Ｄ垂直方向ブロックフィルタ出力のうちの少なくとも１つに基づく請求項２から１０のいずれか一項に記載の装置。
【請求項１２】
コンピューターは、デジタル画像中にモスキートノイズが存在すると判断した場合に、デジタル画像の画素に関連付けられたモスキートノイズ値を１画素単位で決定し、モスキートノイズ強度を示すモスキートノイズ出力を生成する段階と、
前記コンピューターが、デジタル画像中にブロックノイズが存在すると判断した場合に、前記デジタル画像に関連付けられたブロックノイズ値を１画素単位で決定し、ブロックノイズの強度を表すブロックノイズ出力を生成し、前記デジタル画像がブロッキーかブロッキーでないかを検出する段階と、
前記コンピューターが、２次元（２Ｄ）モスキートフィルタ、２Ｄブロックフィルタ、１次元（１Ｄ）水平方向フィルタ及び１Ｄ垂直方向フィルタを用いて、前記デジタル画像をフィルタリングすることにより、２Ｄモスキートフィルタ出力、２Ｄブロックフィルタ出力、１Ｄ水平方向フィルタ出力、及び１Ｄ垂直方向フィルタ出力の複数の適応フィルタ出力を生成する段階と、
前記コンピューターが、画質を改善するべく、前記モスキートノイズ出力及び前記ブロックノイズ出力に少なくとも一部基づいて、前記複数の適応フィルタ出力を選択する段階と、
前記コンピューターが、前記複数の適応フィルタ出力に少なくとも一部基づいて、前記デジタル画像における圧縮アーティファクトを１画素単位で低減する段階と
を備え、
前記コンピューターは、前記ブロックノイズが、垂直方向ブロックノイズ、水平方向ブロックノイズ、並びに前記デジタル画像全体に渡る水平方向ブロックノイズ及び垂直方向ブロックノイズからなるグローバルブロックノイズのうちのいずれかであると特定し、
前記モスキートノイズ値を決定する段階においては、
前記コンピューターが、強方向性エッジが検出し、
前記コンピューターが、前記強方向性エッジの近傍にモスキートノイズが発生する可能性のある領域を決定し、
前記コンピューターが、前記モスキートノイズが発生する可能性のある領域の画素について前記モスキートノイズ値を決定し、
前記複数の適応フィルタ出力を選択する段階においては、
（ｉ）前記デジタル画像は前記画像全体に渡って検出されるブロック境界を有し、前記デジタル画像がブロッキーである場合、前記コンピューターは、前記２次元（２Ｄ）モスキートフィルタの出力および前記２次元（２Ｄ）ブロックフィルタの出力を組み合わせて、
（ｉｉ）前記デジタル画像がブロッキーではないがブロックノイズを一部含む場合、前記コンピューターは、前記１次元（１Ｄ）水平フィルタの出力および前記１次元（１Ｄ）垂直フィルタの出力を組み合わせて、
（ｉｉｉ）前記デジタル画像においてブロックノイズが検出されない場合、前記コンピューターは、前記２次元（２Ｄ）モスキートフィルタの出力を適用しない方法。
【請求項１３】
前記デジタル画像は、現在フレームであって、
前記複数の適応フィルタ出力を選択する段階は、複数の前フレームのセットの履歴に少なくとも一部基づき、
ブロッキーなフレームは、フレーム全体に渡ってブロックノイズを有し、
前記複数の前フレームのセットの一定数がブロッキーである場合は、前記現在のフレームはブロッキーである請求項１２に記載の方法。
【請求項１４】
現在のフレームがブロッキーである場合には、前記複数の適応フィルタ出力として、前記２Ｄブロックフィルタ出力が選択される請求項１２または１３に記載の方法。
【請求項１５】
モスキートノイズが存在すると判断する段階は、
方向性エッジを検出する段階と、
前記方向性エッジを、大きな拡張幅で拡張する段階と、
前記方向性エッジを、小さな拡張幅で拡張する段階と、
前記大きな拡張幅及び前記小さな拡張幅内の画素でエッジマップを形成し、前記エッジマップに対応する、前記デジタル画像の平坦領域を決定する段階と、
前記エッジマップに対応するモスキート画素値、前記平坦領域に対応する画素値、及び前記モスキートノイズ出力に対応する画素値強度の少なくとも３つの値を掛け合わせることにより、前記モスキートノイズ出力を生成する段階とを備える請求項１２から１４のいずれか一項に記載の方法。
【請求項１６】
前記画素値強度は、３×３画素の領域の隣接する複数の画素のリンギング値を計算することにより決定され、前記画素値強度は、前記３×３画素の領域の中央に位置する画素に対応している請求項１５に記載の方法。
【請求項１７】
前記リンギング値は、
【数１】
0005233014.tif 000006
【数２】
0005233014.tif 000007
に従って計算され、ここで、ｄｉ＝ｘｉ−ｘ４は、前記中央に位置する画素とその他の画素それぞれとの差である請求項１６に記載の方法。
【請求項１８】
ブロックノイズが存在すると判断する段階は、
水平方向ブロック境界を検出する段階と、
垂直方向ブロック境界を検出する段階と、
前記デジタル画像にブロック位相が存在するか判断する段階と、
前記デジタル画像の画素に対応するグリッドを、前記ブロック位相に少なくとも一部基づいて生成する段階と、
前記グリッド及び前記デジタル画像の前記画素に少なくとも一部基づいて、前記ブロックノイズ出力を生成する段階とをさらに備え、
前記ブロック位相は、前記水平方向ブロック境界が一定の間隔で繰り返されている、及び前記垂直方向ブロック境界が一定の間隔で繰り返されていることの少なくとも一方を示す請求項１２から１７のいずれか一項に記載の方法。
【請求項１９】
前記デジタル画像の垂直方向の少なくとも１つの列における画素に少なくとも一部基づいて、水平方向ブロック境界を決定する段階と、
前記水平方向ブロック境界の位相に対応する水平方向アキュムレータをインクリメントする段階と、
前記デジタル画像の水平方向の少なくとも１つの行における画素に少なくとも一部基づいて、垂直方向ブロック境界を決定する段階と、
前記垂直方向ブロック境界の位相に対応する垂直方向アキュムレータをインクリメントする段階と、
水平方向アキュムレータ値及び垂直方向アキュムレータ値に少なくとも一部基づいて、前記デジタル画像のブロックグリッドを生成する段階とを備え、
前記画質を改善するべく前記複数の適応フィルタ出力を選択する段階は、前記ブロックグリッドに少なくとも一部基づいて行われる請求項１２から１８のいずれか一項に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
［優先権情報］
本願は、２００８年９月９日出願の米国仮出願６１／０９５，４６６号明細書の優先権を主張するものであり、前記出願の内容は、参照により本明細書に組み込まれる。
【０００２】
現在の様々な製品には、動画圧縮技術が利用されている。動画圧縮は、デジタルテレビのセットトップボックス、デジタル衛星システム、高解像度テレビ（ＨＤＴＶ）デコーダ、デジタル多用途ディスク（ＤＶＤ）プレーヤー、テレビビデオ会議システム及びその他のデジタル動画アプリケーションで利用されている。動画コンテンツの画像を、動画コンテンツの不必要な特徴部分を取り除くことにより、動画圧縮することが可能となる。動画コンテンツを圧縮することにより、コンテンツを格納するのに必要な記憶領域を小さくすることができる。圧縮された動画コンテンツは、圧縮されない動画コンテンツよりも速く送信できる。
【０００３】
消費者家電業界で採用されている画像圧縮標準は、ブロックベースのものである。ブロックベースの圧縮規格の一例としては、国際標準化機構（ＩＳＯ）と国際電気通信連合（ＩＴＵ）が共同で開発したアドバンスト・ビデオ・コーディング（ＡＶＣ）／Ｈ．２６４規格が挙げられる。典型的なブロックベースの動画圧縮は、ブロックノイズ及びモスキートノイズを含むアーティファクトを画像データに発生させてしまう。アーティファクトは、動画圧縮エンコーダにおいて、イメージ化されたデータを量子化する際に生成される。これらのアーティファクトは、低いビットレートの画像データで、よく見られる。アーティファクトは、ブルーレイ符号化された映画のような高品質なものであっても、しばしば発生する。デジタル画像で構成された動画を見る観察者は、このようなアーティファクトを感知することがある。従来の小さなディスプレイで画像を見る場合よりも、今日の大きなディスプレイで画像を観賞する場合の方が、ブロックノイズやモスキートノイズをより発見し易くなっている。したがって、デジタル画像ノイズを低減する方法が求められている。
【発明の概要】
【０００４】
一実施形態において、方法は、コンピューターが、デジタル画像の画素に関連付けられたモスキートノイズ値を１画素単位で決定する段階を備える。また、この方法では、コンピューターが、デジタル画像に関連付けられたブロックノイズ値を１画素単位で決定し、デジタル画像がブロッキーかブロッキーでないかを検出する。また、コンピューターが、２次元（２Ｄ）モスキートフィルタ出力、２次元（２Ｄ）ブロックフィルタ出力、１次元（１Ｄ）水平フィルタ出力、および１次元（１Ｄ）垂直フィルタ出力を含むフィルタ出力を提供する複数の適応フィルタを用いて、デジタル画像をフィルタリングする。デジタル画像における圧縮アーティファクトが低減される。コンピューターが、複数の適応フィルタからのフィルタ出力を組み合わせることにより、圧縮アーティファクトが低減される。モスキートノイズ値及びブロックノイズ値に少なくとも一部基づいて、フィルタ出力が組み合わせられる。モスキートノイズ値を決定する段階は、コンピューターが、強方向性エッジを検出し、コンピューターが、強方向性エッジの近傍にモスキートノイズが発生する可能性のある領域を決定し、コンピューターが、モスキートノイズが発生する可能性のある領域の画素についてモスキートノイズ値を決定することにより行われる。デジタル画像をフィルタリングする段階は、（ｉ）デジタル画像は画像全体に渡って検出されるブロック境界を有し、デジタル画像がブロッキーである場合、コンピューターは、２次元（２Ｄ）モスキートフィルタの出力および２次元（２Ｄ）ブロックフィルタの出力を組み合わせてデジタル画像をフィルタリングし、（ｉｉ）デジタル画像がブロッキーではないがブロックノイズを一部含む場合、コンピューターは１次元（１Ｄ）水平フィルタの出力および１次元（１Ｄ）垂直フィルタの出力を組み合わせて、ブロックノイズが検出された領域におけるデジタル画像をフィルタリングし、（ｉｉｉ）デジタル画像においてブロックノイズが検出されない場合、コンピューターは２次元（２Ｄ）モスキートフィルタの出力を適用せずにデジタル画像をフィルタリングする。
【０００５】
別の実施例として、装置が含まれる。この装置は、デジタル画像の画素に関連付けられたモスキートノイズ値を１画素単位で決定し、デジタル画像に存在するモスキートノイズの量を検出するモスキートノイズ検出ロジックを含む。装置は、デジタル画像に関連付けられたブロックノイズ値を１画素単位で決定し、デジタル画像に存在するブロックノイズの量を検出し、デジタル画像がブロッキーかブロッキーでないかを検出するブロックノイズ検出ロジックを含む。装置はまた、デジタル画像をフィルタリングして、２次元（２Ｄ）モスキートフィルタ出力、２Ｄブロックフィルタ出力、１次元（１Ｄ）水平方向ブロックフィルタ出力、及び１Ｄ垂直方向ブロックフィルタ出力の複数の適応フィルタ出力を生成するフィルタロジックを含む。装置はまた、モスキートノイズの量及びブロックノイズの量に少なくとも一部基づいて、画質を向上させるべく複数の適応フィルタ出力を選択する選択ロジックを含む。修正フィルタ出力は、２Ｄモスキートフィルタ出力、２Ｄブロックフィルタ出力、１Ｄ水平方向ブロックフィルタ出力、及び１Ｄ垂直方向ブロックフィルタ出力のうちの少なくとも１つである。装置はまた、複数の適応フィルタ出力の組み合わせ基づいて、デジタル画像における圧縮アーティファクトを１画素単位で低減する圧縮アーティファクトロジックを含む。モスキートノイズ値の決定においては、強方向性エッジが検出され、強方向性エッジの近傍にモスキートノイズが発生する可能性のある領域が決定され、モスキートノイズが発生する可能性のある領域の画素についてモスキートノイズ値が決定され、選択ロジックにおいて、（ｉ）デジタル画像は画像全体に渡って検出されるブロック境界を有し、デジタル画像がブロッキーである場合、選択ロジックは、２次元（２Ｄ）モスキートフィルタの出力および２次元（２Ｄ）ブロックフィルタの出力を組み合わせて、（ｉｉ）デジタル画像がブロッキーではないがブロックノイズを一部含む場合、選択ロジックは、１次元（１Ｄ）水平フィルタの出力および１次元（１Ｄ）垂直フィルタの出力を組み合わせて、（ｉｉｉ）デジタル画像においてブロックノイズが検出されない場合、選択ロジックは、２次元（２Ｄ）モスキートフィルタの出力を適用しない。
【０００６】
別の実施例は、方法を含む。方法は、コンピューターが、デジタル画像中にモスキートノイズが存在すると判断した場合に、デジタル画像の画素に関連付けられたモスキートノイズ値を１画素単位で決定し、モスキートノイズ強度を示すモスキートノイズ出力を生成する段階を備える。モスキートノイズ出力は、モスキートノイズ強度を示す。方法は、また、コンピューターが、デジタル画像中にブロックノイズが存在すると判断した場合に、デジタル画像に関連付けられたブロックノイズ値を１画素単位で決定し、ブロックノイズの強度を表すブロックノイズ出力を生成し、デジタル画像がブロッキーかブロッキーでないかを検出する段階を備える。コンピューターは、ブロックノイズの強度を表し、ブロックノイズが、垂直方向ブロックノイズ、水平方向ブロックノイズ及びグローバルブロックノイズのうちのいずれかであると特定する。グローバルブロックノイズは、デジタル画像全体に渡る水平方向ブロックノイズ及び垂直方向ブロックノイズから構成される。方法は、コンピューターが、２次元（２Ｄ）モスキートフィルタ、２Ｄブロックフィルタ、１次元（１Ｄ）水平方向フィルタ及び１Ｄ垂直方向フィルタのうちの少なくとも１つを用いて、デジタル画像をフィルタリングすることにより、２Ｄモスキートフィルタ出力、２Ｄブロックフィルタ出力、１Ｄ水平方向フィルタ出力、及び１Ｄ垂直方向フィルタ出力の複数の適応フィルタ出力を生成する段階を備える。方法は、コンピューターが、画質を改善するべく、モスキートノイズ出力及びブロックノイズ出力に少なくとも一部基づいて、数の適応フィルタ出力を選択する段階を備える。複数の適応フィルタ出力は、２Ｄモスキートフィルタ出力、２Ｄブロックフィルタ出力、１Ｄ水平方向フィルタ出力、及び１Ｄ垂直方向フィルタ出力のうちの少なくとも１つである。方法は、また、コンピューターが、複数の適応フィルタ出力に少なくとも一部基づいて、デジタル画像における圧縮アーティファクトを１画素単位で低減する段階を備える。モスキートノイズ値を決定する段階においては、コンピューターが、強方向性エッジが検出し、コンピューターが、強方向性エッジの近傍にモスキートノイズが発生する可能性のある領域を決定し、コンピューターが、モスキートノイズが発生する可能性のある領域の画素についてモスキートノイズ値を決定する。複数の適応フィルタ出力を選択する段階においては、（ｉ）デジタル画像は画像全体に渡って検出されるブロック境界を有し、デジタル画像がブロッキーである場合、コンピューターは、２次元（２Ｄ）モスキートフィルタの出力および２次元（２Ｄ）ブロックフィルタの出力を組み合わせて、（ｉｉ）デジタル画像がブロッキーではないがブロックノイズを一部含む場合、コンピューターは１次元（１Ｄ）水平フィルタの出力および１次元（１Ｄ）垂直フィルタの出力を組み合わせて、（ｉｉｉ）デジタル画像においてブロックノイズが検出されない場合、コンピューターは２次元（２Ｄ）モスキートフィルタの出力を適用しない。
【０００７】
添付の図面は本明細書に組み込まれ、明細書の一部を構成し、様々なシステム及び方法の例、及びその他、本発明の様々な側面の実施形態例が描かれている。図に描かれた要素の境界（例えば、ボックス、ボックスのグループ、又は他の形）は、境界の一例を示しているに過ぎない。別の例では、１つの要素を、複数の要素として設計してもよく、また、複数の要素を、１つの要素として設計してもよいことは、当業者にとって明らかである。また、一例では、ある要素が、別の要素の内部構成要素として描かれている場合であっても、外部構成要素として実装されてもよく、またその反対も可能である。また、各要素は、実寸で描かれていない。
【図面の簡単な説明】
【０００８】
【図１】動画データ処理に関するシステムの一実施形態を示した図である。
【図２】デジタル画像ノイズの低減に関する装置の一実施形態を示している。
【図３】モスキートノイズ検出に関するロジックの一実施形態を示した図である
【図４】エッジ周辺の領域を決定するエッジの拡張例を示した図である。
【図５】リンギング検出器によって使用される画素の一例を示した図である。
【図６】ブロックノイズ検出に関連するロジックの一実施形態を示したものである。
【図７】ブロック検出器に使用される画素の一例を示した図である。
【図８】デジタル画像ノイズの低減に関する装置の他の実施形態を示した図である。
【図９】デジタル画像ノイズの低減に関する方法の一実施形態を示した図である。
【図１０】デジタル画像ノイズの低減に関する方法の他の実施形態を示した図である。
【図１１】デジタル画像ノイズの低減に関する方法の他の実施形態を示した図である。
【図１２】デジタル画像ノイズの低減に関する方法の別の実施形態を示した図である。
【図１３】デジタル画像ノイズの低減に関する方法の別の実施形態を示した図である。
【図１４】デジタル画像ノイズの低減に関する方法の別の実施形態を示した図である。
【発明を実施するための形態】
【０００９】
デジタル動画画像ノイズの低減に関するシステム、方法例、及び他の実施形態が以下に記載される。一実施形態では、圧縮デジタル動画画像のブロックノイズ及びモスキートノイズを低減する方法を提供する。この方法は、動画デコーダから情報を必要としない、後処理（ポストプロセッシング）技術であってもよい。他の実施形態では、方法は、デジタル画像データが圧縮されると同時にブロックノイズを取り除く、インライン処理であってもよい。アーティファクトを含まないデジタル画像データは、そのまま保存される。従来の方法でも、ノイズの多い素材からノイズを除去することは可能であったが、フィルタリングプロセスにおいて、デジタル画像の良好な部分まで平滑化される及び不鮮明にしてしまう場合があり、不適当であった。
【００１０】
一実施形態では、平坦領域の近くの画素をフィルタリングすることにより、モスキートノイズを低減できる。平坦領域とは、隣接する画素間で、大きく画素値が変化しない領域のことである。平坦領域は、強い方向性のあるエッジ（縁）の近傍に、画定される。モスキートノイズは、強い方向性エッジの近くに存在する平坦領域の画素値における大きな変化を検出するリンギング検出器によって、検出される。
【００１１】
ブロックノイズは、ブロックグリッドが検出された場合に、全ブロックグリッドをフィルタリングすることにより、低減することができる場合がある。ブロックグリッドは、画素レベルでブロック境界検出値を分析し、様々な位相へとグループ化する。位相は、ブロック境界が周期的に一定の間隔で発生することを示すものである。
【００１２】
グリッドに一部基づいて、エッジ適応フィルタを使用して、モスキートノイズ及びブロックノイズをフィルタリングしてもよい。エッジ適応フィルタは、ノイズによって破損される可能性が高い領域を見つける。エッジ適応フィルタは、画像の実際のエッジを平滑化することなく、ノイズをフィルタリングすることができる。一実施形態において、フィルタリングのレベルは、ノイズレベルに比例させている。エッジ適応フィルタは、ノイズを含んでいる可能性の低い画像部分をフィルタリングしないことにより、元の画像の特徴を保存する。このように、画像全体又の一部、又は画像の複数フレームの一部をフィルタリングし、他の部分はフィルタリングを行わない。フィルタリングされない部分では、元の画像の特徴が保存される。
【００１３】
以下、本明細書で使用される言葉の定義について説明する。これらの定義は、ある言葉の範囲に含まれる要素のあらゆる例及び／又は形式を含み、実装においても使用される場合がある。しかしながら、これらの例に限定されることを意図していない。また、以下の定義には、言葉の単数形及び複数形の両方が含まれる。
【００１４】
「基づく」、「一部基づく」、「少なくとも一部基づく」等の表現は、ある動作が、関連付けられた条件のみに基づく、若しくは他の条件又は他の動作と共にその条件に基づくことを意味する。
【００１５】
「一実施形態」、「ある実施形態」、「一例」、「ある例」等の表現は、記載される実施形態又は実施例が、特定の特徴、構造、性質、特性、要素、又は限定を含むことを意味するが、必ずしも全ての実施形態又は実施例が、特定の特徴、構造、性質、特性、要素又は限定を含むことを意味しない。また、「一実施形態において」という表現が繰り返し使用されるが、必ずしも同じ実施形態を指しているわけではない。無論、同じ実施形態の場合もある。
【００１６】
本明細書で使用されている「コンピュータ可読媒体」という言葉は、信号、命令及び／又はデータを格納する媒体を意味する。コンピュータ可読媒体は、これらに限定するわけではないが、不揮発性媒体及び揮発性媒体の形態を含む。不揮発性媒体としては、例えば、光ディスク、磁気ディスク等が含まれる。揮発性媒体としては、例えば、半導体メモリ、ダイナミックメモリ等が含まれる。コンピュータ可読媒体の典型的な例としては、特にこれらに限定するわけではないが、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能ロジックデバイス、コンパクトディスク（ＣＤ）、その他の光学媒体、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、メモリチップ、メモリカード、メモリスティック、及び、コンピュータ、プロセッサ又は他の電子デバイスが読み込むことができる他の媒体を含む。
【００１７】
本明細書で使用される「ロジック（論理）」という言葉は、これらに限定されないが、機能又は動作を実行する、及び／又は他のロジック、方法及び／又はシステムからの機能又は動作を実行させる、ハードウェア、ファームウェア、機械に格納され実行されるソフトウェア、及び／又はこれらの組み合わせを含む。ロジックは、ソフトウェア制御マイクロプロセッサ、個別ロジック（例えば、ＡＳＩＣ）、アナログ回路、デジタル回路、プログラムされたロジックデバイス、命令を備えるメモリデバイス等を含んでもよい。ロジックは、１以上のゲート、複数ゲートの組み合わせ、又は他の回路構成要素を含んでもよい。複数の論理的ロジックについて記載される場合であっても、複数の論理的ロジックを１つの物理的ロジックに組み込むことが可能である。同様に、１つの論理的ロジックが記載される場合であっても、１つの論理的ロジックを複数の物理的ロジックの間で分配することが可能である。
【００１８】
［概略］
図１は、動画データを処理可能なシステム１００の一実施形態を示したものである。システム１００は、動画入力ロジック１１０に入力された入力動画ストリーム１０５を受信する。入力は、個別フレームの形式であってもよいし、圧縮されていてもよい。また、入力は、圧縮されたマクロブロックであってもよい。マクロブロックは、Ｈ．２６４規格、ＭＰＥＧ（ｍｏｔｉｏｎｓ  ｐｉｃｔｕｒｅ  ｅｘｐｅｒｔｓ  ｇｒｏｕｐ）規格、又はその他の圧縮規格に準拠した、より小さなブロックから構成されていてもよい。動画入力ロジック１１０は、動画入力データを格納し、データフレームを並べ替えて、動画入力を、動画伸長（ｄｅｃｏｍｐｒｅｓｓｉｏｎ）ロジック１２０による処理のために準備する。
【００１９】
動画伸長ロジック１２０は、圧縮された動画データを伸長する。一実施形態において、動画データは、動画データを圧縮するのに使用した関数の逆変換を適用することにより、伸長を行ってもよい。圧縮／伸長アルゴリズムは、情報の損失を伴う場合がある。情報の損失を伴う圧縮規格では、動画データが伸長されるときに、画質の劣化が生じる。
【００２０】
圧縮アルゴリズムを、画像の一部分を符号化するのに使用してもよい。人間が目で認識可能な画像部分を、人間の目に認識されないような画像部分よりも高い解像度で符号化するようにしてもよい。例えば、花を、青空の領域よりも高い解像度で符号化してもよい。人間の目は、動画データの符号化に使用されたブロックの境界を認識する場合がある。人間の目が認識可能な境界を、ブロックノイズと呼ぶ。また、ブロックベースの圧縮の間に、モスキートノイズが挿入される場合がある。以下に記載するロジック、方法及びシステムは、伸長プロセスに伴って発生する、画像が伸長された後に発生する、又はこの両方で発生するブロックノイズ及びモスキートノイズを低減することができる。
【００２１】
動画後処理ロジック１３０は、入力動画をレンダリングのために準備する。動画後処理ロジック１３０は、レンダリングのために、伸長フレームをスケジュールする。動画後処理ロジック１３０は、表示可能な形式の出力動画を生成する。幾つかの実施形態では、ブロックノイズ及びモスキートノイズは、動画後処理ロジック１３０による伸長後に取り除かれる。デジタル画像、デジタル動画画像、非動画画像データ又はその他の種類の画像データから、ノイズが取り除かれる。
【００２２】
図２は、デジタル画像ノイズを低減する装置２００の一実施形態を示している。装置２００は、デジタル画像から、モスキートノイズ及びブロックノイズ等のアーティファクトを適応的に取り除く。モスキートノイズ検出ロジック２１０及びブロックノイズ検出ロジック２２０は、装置２００の制御経路を形成している。装置２００は、２次元（２Ｄ）モスキート（ＭＱ）フィルタロジック２３０、２Ｄブロックフィルタロジック２４０、１次元（１Ｄ）水平（Ｈ）フィルタロジック２５０及び１Ｄ垂直（Ｖ）フィルタロジック２６０を入力データ経路に備え、これら全てを「データ経路におけるフィルタ」と総称する。データ経路におけるフィルタは、装置２００が受信した輝度入力をフィルタリングする。出力生成ロジック２７０は、モスキートノイズ及び／又はブロックノイズが検出されるか否かに少なくとも一部基づいて、複数のフィルタの出力を組み合わせることにより、１画素毎に、輝度出力を生成する。輝度出力は、デジタル画像を表現する画素値のアレイに対応する。装置２００は、デジタル画像の複数の画素について、ブロックノイズ及びモスキートノイズに対する輝度入力をフィルタリングする。
【００２３】
一実施形態では、モスキートノイズ検出ロジック２１０は、モスキートノイズの影響を受けている画素を特定し、エッジ適応フィルタを使用して、これらの画素をフィルタリングする。ブロックノイズ検出ロジック２２０は、入力フレームにおけるブロック境界を見つけ、位相カウントを使用して、ブロック境界を、様々な位相へと統計的に分類する。位相カウントに少なくとも一部基づいて、入力フレームを、ブロッキーである、すなわちブロック歪みが多い、又はブロッキーでない、すなわちブロック歪みが少ない、のどちらかに分類する。ブロック歪みが多いフレーム、すなわちブロッキーなフレームを、様々なプログラム可能オプションに基づいて、フィルタリングしてもよい。ブロックノイズ検出ロジック２２０及びモスキートノイズ検出ロジック２１０は、直列で動作してもよいし、並列に動作してもよい。
【００２４】
モスキートノイズ検出ロジック２１０は、１画素あたりのモスキートノイズの量を表す、複数ビットを生成する。一実施形態において、ブロックノイズ検出ロジック２２０は、３ビット信号を生成する。例えば、水平ビットは、水平方向のブロック境界が検出されたことを示し、垂直ビットは、垂直方向のブロック境界が検出されたことを示し、グローバルビットは、グローバルフィルタリングモードであることを示す。グローバルビットは、入力フレームがブロック歪みが多い画像であり、フレーム全体をフィルタリングすべきであることを示す。一実施形態において、グローバルビットが設定されている場合には、水平ビット及び垂直ビットは、無視してもよい。出力生成ロジック２７０は、制御経路からの信号及びデータ経路における４つのフィルタからの出力に、少なくとも一部基づいて、輝度出力を計算する。その他のビット量及び信号を、実装してもよい。
【００２５】
［フィルタ］
図２に示す２Ｄモスキートフィルタロジック２３０及び２Ｄブロックフィルタロジック２４０は、一実施形態では、２次元エッジ適応フィルタである。２Ｄモスキートフィルタロジック２３０は、モスキートノイズの影響を受けている画素をフィルタリングし、２Ｄブロックフィルタロジック２４０は、ブロックノイズの影響を受けている画素をフィルタリングする。２Ｄモスキートフィルタロジック２３０及び２Ｄブロックフィルタロジック２４０は、それぞれ、プログラム可能な閾値及びカーネルサイズを有する。１Ｄ水平方向フィルタロジック２５０及び１Ｄ垂直方向フィルタロジック２６０は、水平方向及び垂直方向で動作する。１Ｄ水平方向フィルタロジック２５０及び１Ｄ垂直方向フィルタロジック２６０は、それぞれ水平方向のブロック境界及び垂直方向のブロック境界をフィルタリングする。２Ｄモスキートフィルタロジック２３０、２Ｄブロックフィルタロジック２４０、１Ｄ水平方向フィルタロジック２５０及び１Ｄ垂直方向フィルタロジック２６０は、線形モード又はエッジ適応モードで動作することができ、係数及び閾値の様々なセットを使用してプログラム可能である。
【００２６】
［モスキートノイズ検出］
図３は、モスキートノイズ検出ロジック３００の実施形態を示す。モスキートノイズ検出ロジック３００は、エッジ検出ロジック３１０を使用して、強い方向性エッジを特定し、これらのエッジ周辺にバンド（帯）を生成する。検出されたエッジの例が、図４に示されている。一実施形態において、エッジ検出ロジック３１０は、方向性エッジ検出マスクを４つ有するエッジフィルタである。マスクを画像上で走査して、最大４つの出力をプログラム可能な閾値と比較することにより、画素が、エッジマップで表されるエッジの一部であるか否かを判断する。エッジマップは、２値で表され、"１"は、現在の画素が、検出されたエッジに存在していることを示す。ここで、その他の数のマスクを実装してもよい。
【００２７】
エッジマップが発見されると、エッジマップは、各エッジの両側の領域に拡張される。エッジマップを拡張して、検出されたエッジ付近の領域におけるノイズを検出してもよい。大拡張ロジック３２０は、一のエッジマップを生成し、小拡張ロジック３３０は、第二のエッジマップを生成する。大拡張と小拡張の一例が、図４に示されている。大拡張の拡張幅及び小拡張の拡張幅は、大閾値レジスタ３４０における値及び小閾値レジスタ３５０における値によって決定されてもよい。一実施形態では、大拡張ロジック３２０及び小拡張ロジック３３０は、検出エッジを水平方向に±７画素までおよび水平方向に±３画素までそれぞれ拡張する。
【００２８】
大拡張ロジック３２０よって拡張されたエッジマップと小拡張ロジック３３０によって拡張されたエッジマップとの差分が、最終的なエッジマップとなる。最終的なエッジマップ内に位置する画素は、モスキートノイズを含む対象画素として特定される。この二重の拡張により、検出されたエッジ周辺にバンド（帯領域）が形成される。モスキートノイズの探索は、このバンド内で行われる。小拡張は、検出されたエッジの画素がフィルタリングされるのを防ぐため、これらの画素をモスキートノイズ探索から除外する。一般的に、検出されたエッジをフィルタリングしてしまうと、イメージ全体がシャープさを失ってしまうことにつながる。
【００２９】
方向性の強い画像の近くに存在するデジタル画像の平坦領域において、モスキートノイズが検出される。平坦領域とは、隣接する画素間で画素値が僅かしか変化しない領域のことである。例えば、雲のない空の写真は、平坦であるといえる。雲のない空の画像は、水色の画素の画像となる。このような画像では、１画素毎の画素値の変化が非常に小さいことから、平坦領域を形成する。通常、１画素毎に画素値が大きく変化するような複雑な画像領域では、モスキートノイズを検出することは不可能である。
【００３０】
平坦性検出ロジック３６０は、現在の画素に隣接する複数の画素における最大の輝度値と最小の輝度値を見つける。これら２つの値の差の絶対値が閾値よりも小さい場合には、現在の画素に"１"が割り当てられ、そうでない場合には、"０"が割り当てられる。無論、他の値を用いてもよい。平坦領域は、平坦性マップに変換される。平坦性拡張ロジック３７０は、実際の平坦領域を超えて平坦性マップを拡張することができ、ノイズを含む可能性のある平坦領域の近くの画素を検出する。平坦性マップは、エッジマップと同様に拡張される。平坦性マップとエッジマップとが交差する部分を分析して、強いエッジの近くの平坦領域を特定することができる。
【００３１】
大平坦性拡張及び小平坦性拡張の拡張範囲は、プログラム可能な値であってもよい。大平坦性拡張及び小平坦性拡張の拡張範囲は、異なる範囲であってもよい。拡張の範囲は、拡張する画像の種類に依存してもよい。例えば、高精細（ＨＤ）画像と、ビデオホームシステム（ＶＨＳ）画像とで、拡張範囲を異ならせてもよい。
【００３２】
リンギング検出ロジック３８０は、モスキートノイズを検出する。図５では、リンギング検出ロジック３８０により、現在の画素を中心として３×３の隣接画素が分析される。リンギング検出ロジック３８０は、画素のモスキートノイズを、８ビット値で出力する。中央に位置する現在の画素に対するリンギング検出ロジック３８０の出力は、リンギング強度ｒｓとなり、次の式１及び式２で表される。
【数１】
0005233014.tif 000002
ここで、
【数２】
0005233014.tif 000003
である。差ｄｉ＝ｘｉ−ｘ４は、中央に位置する現在の画素とその他の各画素との差である。図５に示すように、値ｒｓ０８は、中央の画素Ｘ４を基準として、左上の画素Ｘ０及び右下の画素Ｘ８を使用して計算される。また、中央の画素Ｘ４の上に位置する画素Ｘ１及び中央の画素Ｘ４の下に位置する画素Ｘ４を使用して、値ｒｓ１７を計算する。
【００３３】
画素のモスキートノイズレベルは、３つの値を掛け算することにより求められる。３つの値は、最終的なエッジマップ、拡張された平坦性マップ、及びリンギング検出ロジック３８０からのモスキートノイズから得られる。得られた値は、図２の出力生成ロジック２７０に送られて、モスキートノイズを低減するためのフィルタリンが行われる。
【００３４】
一実施形態において、モスキートノイズ検出ロジック３００は、ブロックノイズが検出されると、自動的に動作可能となる。ブロックノイズが検出されない場合には、モスキートノイズ低減も行われず、ブロックノイズのない良好な品質の動画が保存される。
【００３５】
［ブロックノイズ検出］
図６は、ブロックノイズ検出ロジック６００の一実施形態を示したものである。ブロックノイズ検出ロジック６００は、圧縮された画像を形成するのに使用されたブロックのエッジを判断する。通常、画像は、マクロブロックから構成されている。マクロブロックは、１６×１６画素の正方形の領域である。あるブロック符号化標準では、マクロブロックは、さらに小さな複数のサブブロックからなる。フレーム間で画像データが大きく変化しない場合には、マクロブロックを使用することにより、画像の個々のフレームを、少ないデータに圧縮することができる。平坦領域は、大きなサブブロックで構成され、詳細領域は、小さなサブブロックで構成される。
【００３６】
画像の観察者が、画像を符号化する時に使用されたブロックのエッジを視認できる場合に、ブロックノイズが発生する。動画を表示する画面が大きくなるに従い、ブロックノイズの問題が顕著になりつつあり、また、より解像度の高い画像を生成することが求められている。ブロックノイズは、画像全体のブロックの周辺で発生する、又は画像におけるブロック部分の周辺で発生すると考えられる。ブロックノイズが画像全体に渡って生じる場合は、その画像は、ブロック歪みが多い画像、すなわちブロッキーな画像であると称される。
【００３７】
画素レベルのブロック境界検出器が２種類設けられており、１つは、ソフト検出器６１０であり、もう１つは、ハード検出器６２０である。ハード検出器６２０は、はっきりとしたブロック境界を検出し、ソフト検出器６１０は、はっきりとはしていない境界を検出する。はっきりとした境界（ｈａｒｄ  ｂｏｕｎｄａｒｙ）と、はっきりしていない境界（ｓｏｆｔ  ｂｏｕｎｄａｒｙ）とでは、厳密さの度合いが異なる。ハード検出器６２０からの出力は、個々のブロック画素フィルタリングに使用され、ソフト検出器６１０からの出力は、統計的な分析を使用した画像全体に渡るブロックグリッドに対する複数の出力フラグを生成するのに使用される。ソフト検出器６１０及びハード検出器６２０は、異なる閾値を使用して互いに異なるようにプログラムされる。画像全体に渡ってブロッキーでないと判断された場合に、ハード検出器６２０は、個々のブロックをフィルタすることができる。ソフト検出器６１０は、水平ソフトブロック検出ロジック６３０及び垂直ソフトブロック検出ロジック６４０を含む。水平ソフトブロック検出ロジック６３０は、水平方向のブロック境界を検出し、垂直ソフトブロック検出ロジック６４０は、垂直方向のブロック境界を検出する。
【００３８】
ハード検出器６２０は、水平方向ハードブロック検出ロジック６５０及び垂直方向ブロック検出ロジック６６０を含む。水平方向ハードブロック検出ロジック６５０は、水平方向のブロック境界を検出し、垂直方向ブロック検出ロジック６６０は、垂直方向のブロック境界を検出する。イメージがブロッキーでない場合、すなわち濃淡が少ない場合、図２の出力生成ロジック２７０によって、ハード検出器の出力が使用される。ハード検出器の出力は、ブロック出力ロジック６９０に供給される。
【００３９】
図７は、垂直ブロック境界がどのように検出されるかを示した図である。図７には、デジタル画像の１行から、隣接する８つの画素（Ａ〜Ｈ）が示されている。現在の画素がＤであるとすると、ブロックノイズ検出ロジック６００は、画素Ｄと画素Ｅとの間にブロック境界が存在するか否かを判断する。ブロック境界は、８つの画素を２つのグループにグループ化することによって決定される。画素の２つのグループは、ブロック境界の両側に位置すると仮定する。ブロックノイズ検出ロジック６００は、４つのブロック条件についての比較結果を評価する。
１．平坦性条件（１）
ａ．ｍａｘ（Ａ，Ｂ，Ｃ，Ｄ）−  ｍｉｎ（Ａ，Ｂ，Ｃ，Ｄ)  ＜  閾値１  及び
ｂ．ｍａｘ（Ｅ，Ｆ，Ｇ，Ｈ）−  ｍｉｎ（Ｅ，Ｆ，Ｇ，Ｈ)  ＜  閾値１
２．平坦性条件（２）
ａ．｜Ａ−Ｂ｜＜閾値２  及び
ｂ．｜Ｂ−Ｃ｜＜閾値２  及び
ｃ．｜Ｃ−Ｄ｜＜閾値２  及び
ｄ．｜Ｅ−Ｆ｜＜閾値２  及び
ｅ．｜Ｆ−Ｇ｜＜閾値２  及び
ｆ．｜Ｇ−Ｈ｜＜閾値２  及び
３．差分条件（１）
ａ．｜ｍｅａｎ（Ａ，Ｂ，Ｃ，Ｄ）｜−｜ｍｅａｎ（Ｅ，Ｆ，Ｇ，Ｈ）｜＞閾値３
４．差分条件（２）
ａ．｜Ｄ−Ｅ｜＞閾値４
画素Ａ、Ｂ、Ｃ及びＤは、第１のブロックに関連付けられ、画素Ｅ、Ｆ、Ｇ及びＨは、第２のブロックに関連付けられている。第１閾値、第２閾値、第３閾値及び第４閾値は、プログラム可能な値である。第１閾値、第２閾値、第３閾値及び第４閾値は、装置９００が処理する画像フォーマットに基づいて、プログラム可能である。特定の比較がブロックノイズの検出にどの程度寄与しているのかを測るために、これらの比較条件を重み付けしてもよい。
【００４０】
平坦性条件は、イントラグループ、すなわちグループ内の比較であり、差分条件は、インターグループ、すなわちグループ間の比較である。ブロック境界を検出するのに、これら４つの条件の全てを満たす必要はない。多くの場合、１つの平坦性条件と１つの差分条件を満たせば、ブロック境界を十分検出できる。これらの条件を満足する画素は、ブロック境界画素（Ｄ及びＥ）と呼ばれる。検出を改善するために、ブロック境界は、複数の画素の行を跨いで連続的であることから、画素の隣接する行を使用して、結果が正しいか評価することができる。水平方向のブロック境界も、決定するのに考慮される複数の画素が画素の一列から選択される点を除いて、同様な方法で決定される。水平方向ソフトブロック検出ロジック６３０及び垂直方向ソフトブロック検出ロジック６４０は、１ビットフラグを、フェーズ発見ロジック６７０へと受け渡す。各フラグにおける高い値は、ブロック境界が検出されたことを示す。
【００４１】
ブロックノイズ検出ロジック６００は、処理される画像の種類に応じて、異なる閾値でプログラムされてもよい。例えば、高解像度（ＨＤ）画像と、ＶＨＳ画像とでは、ブロック境界の閾値を異ならせてもよい。ブロック検出器６３０、６４０、６５０及び６６０は、上述の複数のブロック条件に異なる重み付けをしてプログラムしてもよい。例えば、平坦性条件（１）及び差分条件（１）は、他のブロック条件よりも、高いウェイトが与えられる。
【００４２】
一実施形態において、位相発見ロジック６７０は、ブロッキーなフレーム、すなわちブロック歪みの多いフレームを見つける。ブロッキーなフレームとは、画像中の多数のブロック間に、はっきりとしたブロック境界を有するフレームのことである。一実施形態では、ブロッキーな画像は、画像全体に渡って、ブロックフィルタリングされる。一例では、圧縮アルゴリズムは、８×８画素のブロック境界を有する画像を符号化する。ブロックが８×８画素のブロックである場合には、ブロック境界は、８画素毎の決まった間隔で形成される。
【００４３】
また、一実施形態では、位相発見ロジック６７０は、画像の特定の位相において、ブロック境界が検出された数を数える。例えば、８×８ブロックの場合、位相発見ロジック６７０は、８個の位相カウンタを有する。フェーズカウンタは、位相発見ロジック６７０によって処理される画像の様々な位相間で、水平方向及び垂直方向に同期されている。ブロック境界が検出されると、関係する位相カウンタがインクリメントされる。水平方向境界又は垂直方向境界が検出されたのか、及び検出された境界がどのフェーズであったのかに基づいて、関係する位相カウンタが決定される。フレームの終わりに、垂直帰線消去期間が存在する。従って、フレームの終わりに、位相カウンタが評価される。位相カウンタのうちの１つに高い値が存在し、他の７つの位相カウンタには低い値が存在する場合には、ブロッキーなフレームが検出されたことを意味する。また、最も高い値の位相カウンタと２番目に高い値のフェーズカウンタとの差分が、プログラム可能な閾値よりも大きな値である場合にも、ブロッキーなフレームが検出されたことを意味する。水平情報及び垂直情報は、消去期間の間にラッチされる。
【００４４】
画像がブロッキーである場合には、フィルタリングされる。グリッド生成ロジック６８０は、消去期間の間にラッチされた位相情報を使用して、１画素単位で現在処理されているフレームをフィルタリングするための出力フラグを生成する。出力フラグは、ブロックグリッドを生成するのに使用される。ブロックグリッドは、現在処理されているフレームをフィルタするのに使用される。ブロックのグリッドを使用してフレームをフィルタリングすることにより、フレーム全体に渡ってブロックフィルタリングを行うことができる。個々のブロック境界を探す従来のフィルタリングでは、ブロック境界における画素値が、ブロック境界を検出可能な程度に変化しない場合には、ブロック境界を検出できなかった。ブロックグリッドを生成することにより、検出するには弱すぎるブロックも、画像を横断するブロックグリッドの一部としてフィルタリングすることができる。
【００４５】
一実施形態において、入力画素の位相が、格納されているブロック位相と一致する場合、ブロック出力６９０は、対応するフラグ＿ｈ又はフラグ＿ｖ信号の一方又は両方を高（ｈｉｇｈ）に設定する。画素が、ブロックの角に位置する画素に対応する場合、フラグ＿ｈ及びフラグ＿ｖは両方とも高（ｈｉｇｈ）に設定される。フラグ＿ｈ及びフラグ＿ｖ信号は、フィルタリングのために、図２の出力生成ロジック２７０に受け渡される。フラグ＿ｈ又はフラグ＿ｖの値は、ブロック出力ロジック６９０に供給される。フラグ＿ｈ又はフラグ＿ｖの値を決定するフェーズカウンタの値と関連付けられているフレームが、フレームバッファに格納されていなかった場合は、フラグ＿ｈ又はフラグ＿ｖの値を次のフレームに適用して、処理を行ってもよい。動画セッションの間はブロック位相が固定されていることから、フレーム間のレイテンシは、通常、許容範囲である。
【００４６】
一実施形態において、位相発見ロジック６７０及びグリッド生成ロジック６８０は、適応ブロックノイズ検出を提供する。ブロック境界の性質は変化し、これらをモデル化するのが容易でなかったことから、従来の画素レベルの検出では、全てのブロック境界を検出することができなかった。また、ブロック検出信号が、画像の特徴を間違ってブロック境界として検出してしまう場合があった。従来の画素レベルのインジケーターのみを利用する場合は、複数のブロック境界の一部はフィルタリングされず、画像の特徴が不正確にフィルタリングされてしまう場合がある。一実施形態において、ブロックグリッドが検出されなかった場合には、ブロックフィルタリングはこれ以上行われない。ブロックノイズ検出ロジック６００の適応性は、ブロッキーでない画像素材を保存すると同時に、ブロッキーな素材、すなわち濃淡のムラの多い素材をきれいにする。
【００４７】
一実施形態では、ヒステリシスを導入して、ブロック画像が検出されない場合であっても、一定の数のフレームに対してブロックフィルタリングを行うようにする。これは、フレームの大部分がブロッキーであると検出されている一方で、数個の断続的に配置されたフレームがブロッキーでないと検出されている場合に、有用である。ヒステリシスは、最後にラッチされたブロック位相のグローバルブロックフィルタリングをこれらのフレームに対して設定する。ヒステリシスを使用することにより、ブロック境界検出の一貫性を改善することができる。別の実施形態では、前のフレーム数が一定の閾値数、ブロッキーであると判断された場合には、フレームがブロッキーであると分類されてもよい。
【００４８】
別の実施形態では、水平及び垂直方向におけるアキュムレータの最も高い値及び２番目に高い値との差を利用して、入力フレームのブロック歪みの多さを示す複数ビットレベルを生成する。差が大きい値である場合には、フレームが非常にブロッキーであることを示し、差が小さい値である場合には、ブロッキーではないことを示すようにしてもよい。ブロック歪みの多さのレベルに応じて、異なるフィルタリングオプションを用いることができる。例えば、高度にブロック歪みが多い場合には、フレーム全体をフィルタリングする。別のレベルのブロック歪みの多さである場合には、グリッド生成ロジック６８０によって生成されたグリッド上の画素をフィルタリングする。水平方向ハードブロック検出ロジック６５０及び垂直方向ハードブロック検出ロジック６６０によって、ブロック境界であると検出されたグリッド画素は、ブロック歪みのレベルが低いことを示す、閾値以下のブロック歪みについてフィルタリングを行う。水平方向ソフトブロック検出ロジック６３０及び垂直方向ソフトブロック検出ロジック６４０によって検出されたグリッド画素は、別の閾値以下のブロック歪みについてフィルタリングされる。
【００４９】
一実施形態において、位相発見ロジック６７０による一方向のグリッド検出は、別の方向のグリッド検出に依存する。例えば、前に実施される水平方向のフィルタリングの影響により、垂直方向のブロック境界を検出するのは難しくなってしまう場合がある。その結果、垂直方向のグリッドは、位相発見ロジック６７０によって検出された水平方向グリッドに少なくとも一部依存する。
【００５０】
別の実施形態では、装置２００は、圧縮スキームの一部が可変ブロックサイズを有するという条件に依存する。位相発見ロジック６７０は、位相アキュムレータにおいて２つ以上の高い値を探し、高い値を有する位相アキュムレータに対応するグリッドを形成する。例えば、ブロックサイズが４及び８であるデジタル画像の場合、アキュムレータから２つの最大値が選択され、検出されたアキュムレータの最大値に基づいて、２つのグリッドが形成される。
【００５１】
［出力生成ロジック］
図２に示すように、一実施形態では、出力生成ロジック２７０は、検出されたグリッド及びフィルタリングされた画像値を使用して、輝度出力を計算する。ブロックノイズではなく、モスキートノイズによって劣化されていると検出された画素については、２Ｄフィルタモスキートフィルタ出力と、元の輝度とを混合することにより、輝度出力が生成される。混合は、図３のモスキートノイズ検出ロジック３００によって示されたノイズレベルである混合ファクタによって制御される。高いノイズレベルを有する画素に対するフィルタ出力には、元の輝度よりも、高い重み付けがなされる。低いノイズレベルを有する画素に対するフィルタ出力には、元の輝度よりも、低い重み付けがなされる。
【００５２】
モスキートノイズによってではなく、ブロックノイズによって劣化している画素の場合は、垂直方向ブロック境界画素に対しては１Ｄ水平方向フィルタロジック２５０出力、及び水平方向ブロック境界画素に対しては１Ｄ垂直方向フィルタロジック２６０の出力が、出力となる。隅に位置する画素の場合は、水平方向及び垂直方向にフィルタリングされた画素値が選択される。これらの画素に対しては、画素値が大きく変化する部分に影響を与えるような１Ｄフィルタの出力となるような出力が選択される。エッジ適応フィルタは、ブロックグリッド上に位置する画像の強い特徴を保存することから、線形フィルタよりも、エッジ適応１Ｄフィルタの方が望ましい。これは、画面表示（ＯＳＤ）、レターボックス、混合素材等についても同様である。
【００５３】
モスキートノイズ及びブロックノイズの両方に影響を受けている画素の場合、２Ｄモスキートフィルタロジック出力と、２Ｄブロックフィルタロジック出力との間で選択を行う。これにより、最終的な画像には、アーティファクトのようなグリッドを発生させてしまう可能性のある画素値の急激な飛躍をなくすことができる。画像がブロッキーである場合には、２Ｄブロックフィルタロジック出力が使用される。一実施形態において、画像がブロッキーでない場合には、モスキートノイズフィルタリングをオフにしてもよい。
【００５４】
図８は、デジタル画像ノイズ低減に関連する装置８００の一実施形態を示した図である。装置８００は、ブロック境界に関連する領域におけるノイズをフィルタリングするのに適応可能である。アーティファクトを含むデジタル画像の領域がフィルタリングされ、アーティファクトを含まない領域はフィルタリングされないことから、デジタル装置８００は、適応的である。上述したように、２種類のアーティファクトとして、モスキートノイズとブロックノイズとが含まれる。
【００５５】
一実施形態において、装置８００は、デジタル画像に存在するモスキートノイズの量を検出するモスキートノイズ検出ロジック８１０を備え、デジタル画像は、画素によって構成されている。ブロックノイズ検出ロジック８２０は、デジタル画像に存在するブロックノイズの量を検出する。上述したように、ブロックノイズ検出ロジック８２０は、まず、水平方向ブロック境界又は垂直方向ブロック境界が存在するかを検出してもよい。一実施形態において、モスキートノイズ検出ロジック８２０は、モスキートノイズの量を表す８ビット値を生成する。
【００５６】
一実施形態において、モスキートノイズ検出ロジック８２０は、方向性エッジを検出する。モスキートノイズ検出ロジック８１０は、方向性エッジを、上述したように、大きな拡張幅及び小さな拡張幅で、拡張する。拡張を実施して、強い方向性エッジの近くの領域に、発生する可能性のあるモスキートノイズを閉じ込める。大拡張及び小拡張により、エッジマップが形成される。
【００５７】
モスキートノイズ検出ロジック８１０は、エッジマップに対応するデジタル画像の平坦領域を決定する。上述したように、平坦領域とは、隣接する画素間で、画素値が大きく変化しない画像領域のことである。モスキートノイズ検出ロジック８１０は、エッジマップの平坦領域における画素に対応するモスキートノイズ強度を判断する。モスキートノイズは、モスキートノイズ検出ロジック８１０が、エッジマップに対応するモスキート画素値、平坦領域に対応する画素値及びモスキートノイズ強度の画素値を掛け合わせることにより求められる。
【００５８】
一実施形態において、エッジマップは、方向性エッジ周辺の画素の領域である。方向性エッジは、ブロック境界が検出されたエッジのことである。方向性エッジ上の画素は、エッジマップには含まれない。大拡張は、エッジマップの外側の縁上の画素を規定し、小拡張は、エッジマップの内側の縁上の画素を規定する。
【００５９】
一実施形態において、ブロックノイズ検出ロジック８２０は、水平方向ブロック境界がデジタル画像中に存在するかを判断することにより、存在するブロックノイズの量を検出する。判断は、ブロック位相がデジタル画像に存在するか否かを判断することで行われる。ブロック位相の存在は、水平ブロック境界が、周期的に一定の間隔で繰り返していることを意味する。位相は、水平方向ブロックエッジグリッドの位置に対応している。例えば、デジタル画像が、最も大きいブロックサイズとして１６×１６の画素ブロックで符号化される場合には、可能性のある１６の水平方向ブロックエッジ位置に対応して、１６の位相が存在する。水平方向ブロック境界は、上述したように、デジタル画像における少なくとも１つの垂直方向の列の複数の画素に少なくとも基づいて決定される。
【００６０】
ブロックノイズ検出ロジック８２０は、水平方向ブロック境界の検出と同様な方法で、垂直方向ブロック境界を決定する。垂直方向ブロック境界に対応する垂直方向アキュムレータは、垂直方向ブロック境界が検出されると、インクリメントされる。垂直方向ブロック境界は、上述したように、デジタル画像における少なくとも１つの水平方向の行の複数の画素に少なくとも基づいて決定される。
【００６１】
ブロックノイズ検出ロジック８２０は、水平方向アキュムレータの値及び垂直方向アキュムレータの値に少なくとも一部基づいて、デジタル画像のブロックグリッドを生成する。アキュムレータ間の値の差が閾値を超える場合は、ブロックエッジのグリッドが、最も大きな値を含むアキュムレータによって表される位相に対応する。規則正しいアレイのブロックが画像の符号化に使用されることから、画像の垂直方向及び水平方向のブロック境界は、一定の決まったパターンで繰り返される。
【００６２】
別の実施形態では、装置８００は、水平方向及び／又は垂直方向のブロック位相に少なくとも一部基づいて、グリッドを生成する。グリッドは、水平及び垂直方向ブロック位相以外の他のパラメータに基づいて生成されてもよい。グリッドは、デジタル画像の画素、及びデジタル画像の圧縮に使用されたブロックのブロック境界に対応している。
【００６３】
装置８００は、デジタル画像をフィルタリングするフィルタロジック８３０を備える。フィルタロジック８３０は、２次元（２Ｄ）モスキートフィルタ出力、２Ｄブロックフィルタ出力、１次元（１Ｄ）水平方向ブロックフィルタ出力及び１Ｄ垂直方向ブロックフィルタ出力を生成する。上述したように、２Ｄモスキートフィルタ出力及び２Ｄブロックフィルタ出力は、デジタル画像全体をフィルタリングすることによって生成される出力である。１Ｄ水平方向ブロックフィルタ出力及び１Ｄ垂直方向ブロックフィルタ出力は、画像を水平方向及び垂直方向にそれぞれフィルタリングすることによって生成される出力である。一実施形態において、フィルタロジック８３０は、画素値の加重平均に少なくとも一部基づいて、画素値をフィルタリングする。
【００６４】
装置８００は、選択ロジック８４０を備える。選択ロジック８４０は、モスキートノイズの量及びブロックノイズの量に少なくとも一部基づいて、画質を改善する修正フィルタを選択する。修正フィルタは、２Ｄモスキートフィルタ出力、２Ｄブロックフィルタ出力、１Ｄ水平方向ブロックフィルタ出力及び１Ｄ垂直方向ブロックフィルタ出力のうちの１つ又は複数を混合して出力する。一実施形態では、画像が、画像全体に渡ってブロッキーである場合には、選択ロジック８４０は、２Ｄモスキートフィルタ出力及び２Ｄブロックフィルタ出力を選択する。他の実施形態では、画像が、画像全体に渡ってブロッキーでない場合には、検出されたブロック境界に対して、１Ｄ水平方向ブロックフィルタ出力及び１Ｄ垂直方向ブロックフィルタ出力が適用される。
【００６５】
圧縮アーティファクト論理８５０は、修正フィルタ出力に少なくとも一部基づいて、デジタル画像におけるブロックノイズ及びモスキートノイズの圧縮アーティファクトを低減する。一実施形態において、比較アーティファクトロジック８５０は、ブロックグリッドに少なくとも一部基づいて、デジタル画像における圧縮アーティファクトブロックノイズを低減する。例えば、画像画素が、グリッドの距離内に位置する場合には、アーティファクトノイズが低減される。
【００６６】
一実施形態において、デジタル画像が、動画データの現在のフレームであるとする。選択ロジック８４０は、動画データの複数の前フレームのセットの履歴に少なくとも一部基づいて、修正フィルタ出力を選択する。（前フレームのセットのうち）前フレームが一定数を超えてブロッキーである場合には、現在のフレームもブロッキーであると判断される。ブロッキーなフレームとは、フレームの大部分に渡ってブロックノイズが存在するフレームのことである。例えば、存在する可能性のある複数のブロック境界のうち、５０％が検出された場合には、そのフレームがブロッキーなフレームであると言える。一実施形態において、選択ロジック８４０は、現在のフレームがブロッキーである場合に、２Ｄブロックフィルタロジック出力を選択して、修正フィルタ出力とする。
【００６７】
一実施形態において、装置８００は、チップに実装される。チップとは、半導体材料に形成されるミクロンサイズの電子回路のセットのことである。チップは、画像を処理する電子デバイス内に設けられてもよい。他の実施形態では、チップは、選択された規格に準じてデジタル画像を処理するために実装される。一例では、規格は、Ｈ．２６４規格であってもよい。
【００６８】
図９は、デジタル画像のノイズ低減に関連する方法１０００の一実施形態を示したものである。幾つかの実施形態においては、方法１０００は、装置２００及び／又は装置８００（それぞれ、図２及び図８参照）と関連していてもよい。本明細書に記載される他の方法についても同様である。方法１０００は、デジタル画像からブロックノイズ及びモスキートノイズを取り除く又は少なくとも低減することにより、デジタル画像の品質を向上させる。方法１０００では、ブロック境界の近傍のノイズをフィルタする適応フィルタを使用して、ノイズをフィルタリングする。本明細書に記載される方法１０００又はその他の方法は、ハードウェア、ファームウェア、又はハードウェアとファームウェアの組み合わせに実装してもよい。一実施形態において、方法１０００は、チップで実行されるように実装される。
【００６９】
方法１０００によれば、１０１０において、モスキートノイズがデジタル画像に存在するか否かを判断する。方法１０００では、上述したように、平坦画像領における強いエッジの近傍に、モスキートノイズを検出してもよい。
【００７０】
方法１０００では、１０２０において、モスキートノイズ強度を示すモスキートノイズ出力を生成する。一実施形態において、モスキートノイズ強度は、検出されるモスキートノイズに比例する。モスキートノイズ強度は、リンギング検出器により生成されてもよい。モスキートノイズが存在しない画素については、モスキートノイズ強度の値が０であってもよい。一実施形態において、モスキートノイズ出力は、１画素毎に、８ビット値で生成される。
【００７１】
方法１０００では、１０３０において、ブロックノイズがデジタル画像に存在するか否かが判断される。上述したように、ブロックノイズは、ブロック境界付近で判断される。ブロック境界は、グリッドによって表現されていてもよい。上述したように、位相アキュムレータに少なくとも一部基づいて、グリッドが決定される。
【００７２】
１０４０において、ブロックノイズ出力が生成される。ブロックノイズ出力は、ブロックノイズの強度を表す。ブロックノイズ出力は、ブロックノイズ及び可能性のあるグローバルブロックノイズを特定する。グローバルブロックノイズは、上述したように、デジタル画像全体に渡る水平ブロックノイズ及び垂直方向ブロックノイズから構成される。
【００７３】
１０５０において、フィルタ出力が生成される。一実施形態において、２Ｄモスキートフィルタ、２Ｄブロックフィルタ、１Ｄ水平方向フィルタ及び１Ｄ垂直方向フィルタ、又は別の組み合わせに対するフィルタ出力が生成されてもよい。フィルタは、適応フィルタである。適応フィルタは、ブロック境界付近のノイズをフィルタリングする。ブロック境界は、上述したような方法で判断できる。
【００７４】
１０６０において、修正フィルタ出力が選択される。修正フィルタ出力は、画質を改善すべく、選択される。修正フィルタ出力は、２Ｄモスキートフィルタ出力、２Ｄブロックフィルタ出力、１Ｄ水平方向フィルタ出力及び１Ｄ垂直方向フィルタ出力のうちの少なくとも１つの混合である。これらのフィルタ出力の混合は、モスキートノイズ出力及びブロックノイズ出力に少なくとも一部基づく。
【００７５】
方法１０００では、１０７０において、修正フィルタ出力に少なくとも一部基づいて、デジタル画像における圧縮アーティファクトを低減する。例えば、画像の大部分に渡ってブロック境界が検出され、画像がブロッキーである場合、２Ｄモスキートフィルタ出力及び／又は２Ｄブロックフィルタ出力を組み合わせて、デジタル画像のフィルタリングを行う。画像がブロッキーであるとまではいかないが、ブロックノイズが一部存在する場合、１Ｄ水平方向フィルタ出力及び１Ｄ垂直方向フィルタ出力を組み合わせて、ブロックノイズが検出された領域におけるアーティファクトノイズを低減する。一実施形態において、ブロックノイズが検出されていない場合には、圧縮アーティファクトの低減に、２Ｄモスキートフィルタ出力を適用しない。別の実施形態では、方法１０００は、Ｈ．２６４規格に従って圧縮されたデジタル画像の圧縮アーティファクトを低減する。
【００７６】
一実施形態において、デジタル画像は、動画データの現在のフレームであるとする。現在のフレームとは、動画データストリームと関連付けられたデータのフレームであってもよい。データの前のフレームの履歴が存在してもよい。全フレームのブロックデータを使用して、データの特定のフレームの一定数が、ブロッキーであると判断されてもよい。複数の前フレームのセットからなる履歴に少なくとも一部基づいて、フィルタ出力を選択する。前フレームが一定数を越えてブロッキーである場合には、現在のフレームも、自動的にブロッキーであると判断される。
【００７７】
図１０及び図１１は、デジタル画像からデジタル画像ノイズを取り除くことに関連する方法１１００の一実施形態を示した図である。方法１１００は、デジタル画像からブロックノイズ及びモスキートノイズを取り除く又は低減することにより、デジタル画像の品質を向上させる。方法１１００では、ブロック境界の近傍のノイズをフィルタする適応フィルタを使用して、ノイズをフィルタリングする。方法１１００は、ハードウェア、ファームウェア、又はこれらの組み合わせに実装してもよい。
【００７８】
デジタル画像データを処理する際に、方法１１００によれば、１１１０において、モスキートノイズがデジタル画像に存在するか否かを判断する。一実施形態において、方法１１００では、上述したように、平坦画像領における強いエッジの近傍に、モスキートノイズを検出してもよい。１１２０において、方向性エッジを決定することにより、モスキートノイズが検出される。方向性エッジは、４つの方向性フィルタの出力を分析することにより、検出される。
【００７９】
方法１１００では、１１３０において、方向性エッジを、大きな拡張幅で拡張する。１１４０において、方向性エッジを、小さな拡張幅で拡張する。大拡張及び小拡張は、モスキートノイズ検出の実行を、強いエッジの近くの領域に限定する。大拡張及び小拡張は、図４を参照して説明したように、実行される。大きな拡張幅及び小さな拡張幅に位置する画素は、エッジマップを構成する。
【００８０】
１１５０では、デジタル画像のエッジマップに対応する平坦領域が決定される。平坦領域とは、画素間で画素値が大きく変化しない領域のことである。平坦領域におけるモスキートノイズは修正可能であるが、複雑な領域では修正することが難しい。平坦領域は、上記のように決定される。
【００８１】
１１６０において、１画素単位で、モスキートノイズを補償するモスキートノイズ出力が生成される。モスキートノイズ出力は、少なくとも３つの値を掛け合わせることにより生成される。一実施形態において、掛け合わされる少なくとも３つの値とは、エッジマップに対応する値、平坦領域に対応する値、及びモスキートノイズ出力に対応する強度の３つである。モスキートノイズ出力は、１画素単位でモスキートノイズをフィルタリングするのに使用される。
【００８２】
一実施形態において、画素値の大きさは、リンギング検出器によって決定される。リンギング検出器は、３×３の画素領域における隣接する画素のリンギング値を計算する。画素値の大きさは、図５を参照して上述したように、３×３の画素領域の中央に位置する画素に対応する。一実施形態において、リンギング値を、上述の式１及び式２に従って計算してもよい。
【００８３】
方法１１００では、１１７０において、デジタル画像にブロックノイズが存在するか否かが判断される。上述したように、ブロック境界となる候補を見つけることにより、ブロックノイズを決定してもよい。ブロックノイズの検出を容易にするため、１１８０において、水平方向ブロック境界が存在するか否かの判断がなされる。そして、１１９０において、垂直方向ブロック境界が存在するか否かの判断がなされる。図７を参照して上記で説明したように、画素列を分析することにより、水平方向境界及び垂直方向境界を決定してもよい。
【００８４】
１２１０において、デジタル画像にブロック位相が存在するか否かの判断が行われる。ブロック位相は、水平方向ブロック境界が一定の間隔で繰り返されているか否か、及び／又は垂直方向ブロック境界が一定の間隔で繰り返されているか否かを示す。上述したように画素の行をトレースすると同時に、アキュムレータをインクリメントすることにより、位相が決定されてもよい。
【００８５】
１２２０において、ブロック位相に基づいてグリッドが生成される。グリッドは、ブロック境界及びデジタル画像の画素に対応する。ブロック境界において、検出可能な量によって画素値が異なることがない場合、ブロック境界を検出するは難しい。グリッドを使用することにより、通常では検出することができないブロック境界を検出することができるようになる。
【００８６】
１２３０において、ブロックノイズ出力が生成される。ブロックノイズ出力は、デジタル画像の画素値及びグリッドに少なくとも一部基づいて、生成される。ブロックノイズ出力は、画素毎に決定される。例えば、グリッド画素が、デジタル画像の画素に対応する場合、デジタル画像の画素がフィルタリングされる。
【００８７】
図１０の１０５０におけるフィルタ出力生成及び１０６０におけるフィルタ選択と同様に、１２４０において、フィルタ出力が生成され、１２５０において、修正フィルタ出力が選択される。１２６０において、方法１１００は、修正フィルタ出力に基づいて、デジタル画像中の圧縮アーティファクトを低減する。方法１１００では、ブロックノイズが存在しない領域はフィルタリングされないことから、デジタル画像のこれら領域は保存される。また、ブロック境界及び平坦領域に対する画素位置に少なくとも一部基づいて、領域がフィルタリングされることから、ブロックノイズが存在しない領域は保存される。
【００８８】
図１２は、デジタル画像ノイズの低減に関する方法１３００の一実施形態を示した図である。方法１３００は、デジタル画像からブロックノイズ及びモスキートノイズを取り除く又は低減することにより、デジタル画像の品質を向上させる。
【００８９】
方法１３００によれば、１３１０において、モスキートノイズがデジタル画像に存在するか否かを判断する。方法１３００では、上述したように、平坦画像領における強いエッジの近傍に、モスキートノイズを検出してもよい。
【００９０】
方法１３００では、モスキートノイズが存在する場合に、１３２０において、モスキートノイズ強度を示すモスキートノイズ出力を生成する。モスキートノイズ強度は、検出されるモスキートノイズに比例させてもよい。モスキートノイズ強度は、リンギング検出器により生成されてもよい。モスキートノイズが存在しない画素については、モスキートノイズ強度の値が０であってもよい。一実施形態において、モスキートノイズ出力は、１画素毎に、８ビット値で生成される。
【００９１】
方法１３００では、１３３０において、ブロックノイズがデジタル画像に存在するか否かが判断される。１３３０におけるブロックノイズ決定は、図１０を参照して上記で説明した１０３０におけるブロックノイズ決定と同様なものである。
【００９２】
１３４０において、水平方向ブロック境界を決定する。上述したように、境界は、画素の一列に基づいて決定されてもよい。水平方向ブロック境界は、上述したように、デジタル画像における少なくとも１つの縦の列の複数の画素に基づいて決定される。１３５０において、水平方向ブロック境界の位相に対応する水平方向アキュムレータが、インクリメントされる。
【００９３】
１３６０において、垂直方向ブロック境界を決定する。一実施形態において、垂直方向ブロック境界は、デジタル画像における少なくとも１つの水平方向の行の複数の画素に基づいて決定される。１３６５において、垂直方向ブロック境界の位相に対応する垂直方向アキュムレータが、インクリメントされる。
【００９４】
方法１３００では、１３７０において、デジタル画像のブロックグリッドが生成される。ブロックグリッドは、水平方向アキュムレータの値及び垂直方向アキュムレータの値に少なくとも一部基づいて生成される。デジタル画像がブロッキーであって、デジタル画像を表現している複数のブロックが検出され、これらのブロックの境界の近くにノイズが検出される場合に、グリッドが生成される。一実施形態において、上述したように平坦領域が検出され、平坦領域内の画素が、フィルタリングされる。
【００９５】
１３７５において、ブロックノイズ出力が生成される。一実施形態において、ブロックノイズ出力は、上述したように、２Ｄモスキートフィルタ、２Ｄブロックフィルタ、１Ｄ水平方向フィルタ及び１Ｄ垂直方向フィルタを使用して生成される。これらのフィルタは、適応フィルタである。適応フィルタは、ブロック境界付近のノイズをフィルタリングする。
【００９６】
１３８０において、修正フィルタ出力が選択される。修正フィルタ出力は、少なくとも一部、ブロックグリッドに基づいて選択される。修正フィルタ出力は、画質を改善するために選択される。一実施形態において、修正フィルタ出力は、２Ｄモスキートフィルタ、２Ｄブロックフィルタ、１Ｄ水平方向フィルタ及び１Ｄ垂直方向フィルタからの出力の混合である。これらのフィルタ出力の混合は、モスキートノイズ出力及びブロックノイズ出力に、少なくとも一部基づく。
【００９７】
方法１３００では、１３９０において、修正フィルタ出力に基づいて、デジタル画像における圧縮アーティファクトを低減する。デジタル画像におけるアーティファクトは、１画素単位で低減される。アーティファクトは、グリッドに少なくとも一部基づいて、及び画素が、強いエッジの近くの平坦領域に位置しているかに基づいて、低減される。方法１３００は、ブロックノイズ又はモスキートノイズによって変更されにくい画像領域に影響を与えることなく、ブロック境界付近のノイズをフィルタリングすることができる。
【００９８】
図１３は、デジタル画像ノイズを低減することに関連する方法１４００の別の実施形態を示した図である。方法１４００は、デジタル画像からブロックノイズ及びモスキートノイズを取り除く又は低減することにより、デジタル画像の品質を向上させる。
【００９９】
方法１４００では、１４１０において、複数画素のグリッドで表現されるデジタル画像に、水平方向ブロック境界が存在するか否かを検出する。１４２０において、垂直方向ブロック境界が存在するかを検出する決定が行われる。水平方向及び垂直方向ブロック境界は、上述に記載されたように決定される。
【０１００】
１４３０において、デジタル画像にブロック位相が存在するか判断する。ブロック位相は、水平方向ブロック境界が一定の周期で繰り返されているか、及び垂直方向ブロック境界が一定の周期で繰り返されているかを示す。ブロック境界は、上述したように決定される。
【０１０１】
１４４０において、ブロック位相に基づいてグリッドが生成される。グリッドは、上述したように生成される。グリッドは、デジタル画像の画素に対応し、デジタル画像全体に渡って生成される。グリッド上の画素は、ブロック境界画素を表す。
【０１０２】
方法１４００では、１４５０において、ブロックノイズの量が検出される。ブロックノイズは、上述したように検出される。ブロックノイズは、グリッド及びデジタル画像の画素に少なくとも一部基づいて検出される。
【０１０３】
１４６０において、デジタル画像のブロックノイズ圧縮アーティファクトが低減される。アーティファクトは、上述したように、検出されたブロックノイズの量に少なくとも一部基づいて、低減される。方法１４００では、水平方向ブロック境界、垂直方向ブロック境界及びグリッドに基づいて、アーティファクトが低減される。
【０１０４】
図１４は、デジタル画像ノイズを低減することに関連する方法１６００の別の実施形態を示した図である。方法１６００は、デジタル画像のブロック境界に隣接するモスキートノイズを取り除く又は低減することにより、デジタル画像の品質を向上させる。
【０１０５】
方法１６００では、１６１０において、ブロック境界が検出される。上記で説明したように、水平方向画素列及び垂直方向画素列を分析することにより、ブロック境界を検出してもよい。モスキートノイズは、ブロック境界と関係していることから、ブロック境界を検出する。
【０１０６】
１６２０において、方法１６００は、強い方向性エッジに隣接するモスキートノイズが発生する可能性のある領域を決定する。上述したように、このような領域としては、隣接する画素間で画素値の大きな変化を伴う平坦領域であってもよい。モスキートノイズを含まない領域に影響を与えることなく、平坦領域におけるモスキートノイズを修正することができる。１６３０において、モスキートノイズを含む可能性のある領域の画素について、モスキートノイズ値を決定する。
【０１０７】
１６４０、１６５０及び１６６０において、ブロックノイズが検出され、デジタル画像がフィルタリングされ、圧縮アーティファクトが除去される。図１５を参照して説明した１５２０、１５３０及び１５４０と同様に、ブロックノイズが検出され、デジタル画像がフィルタリングされ、圧縮アーティファクトが除去される。
【０１０８】
一実施形態において、本明細書に記載される方法は、コンピュータ可読媒体において実体化され、そこに格納されるコンピュータ実行可能な命令として実装されてもよいことは、当業者にとって明らかである。機械（例えば、プロセッサ、デバイス）によって実行されると、命令は機械に、ここに記載された方法又はこれらの均等物を実行させる。また、方法は、回路を使用して実装されてもよい。
【０１０９】
システム及び方法の例が記載され、例が詳細に説明されたが、これらの詳細事項により、添付の特許請求の範囲を限定することを出願人は意図していない。また、本明細書に記載されたシステム及び方法を説明することを目的として、考え得る限りの構成要素又は方法の組み合わせを全て記載することは、不可能である。従って、本発明は特定の詳細事項、例示された装置、及び説明例に限定されない。また、本願は、変更、改良、変形例も添付の特許請求の範囲に含まれることを意図している。
【図１】
0005233014.tif 000008
【図２】
0005233014.tif 000009
【図３】
0005233014.tif 000010
【図４】
0005233014.tif 000011
【図５】
0005233014.tif 000012
【図６】
0005233014.tif 000013
【図７】
0005233014.tif 000014
【図８】
0005233014.tif 000015
【図９】
0005233014.tif 000016
【図１０】
0005233014.tif 000017
【図１１】
0005233014.tif 000018
【図１２】
0005233014.tif 000019
【図１３】
0005233014.tif 000020
【図１４】
0005233014.tif 000021