(57)【特許請求の範囲】
【請求項１】
画像内のブロックノイズを検出する方法であって、
当該方法は、命令を有するメモリに接続された処理装置が実行し、
前記画像内の隣接する画素の画素値の差分量を算出するステップと、
前記画像内の特徴から結果として生じる差分量の組を、前記差分量から排除して縮小差分量の組を生成するステップと、
前記縮小差分量の組にメジアンフィルタを適用して平均差分量の組を生成するステップと、
前記縮小差分量の組から前記平均差分量の組を減じて結果差分量の組を生成するステップと、
前記画像内のエッジ検出を行ってエッジ画素位置を検出するステップと、
前記結果差分量の組の中で前記エッジ画素位置に対応する差分量を抑制して抑制差分量の組を生成するステップと、
を含むことを特徴とする方法。
【請求項２】
前記算出された差分量が、横に隣接する画素の水平差分量及び縦に隣接する画素の垂直差分量を含み、
前記水平差分量を垂直方向に平均化して、前記画素の幅の前記水平差分量の平均値の第１のベクトルを生成するステップと、
前記垂直差分量を水平方向に平均化して、前記画像の高さの前記垂直差分量の平均値の第２のベクトルを生成するステップと、
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第１のベクトルを前記画像の前記幅に沿った画素位置と対照させてグラフにプロットするステップをさらに含む、
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記第２のベクトルを前記画像の前記高さに沿った画素位置と対照させてグラフにプロットするステップをさらに含む、
ことを特徴とする請求項２に記載の方法。
【請求項５】
前記垂直差分量の前記平均値又は前記水平差分量の前記平均値からＤＣレベルを除去するステップをさらに含む、
ことを特徴とする請求項２に記載の方法。
【請求項６】
前記ＤＣレベルが、前記平均値にメジアンフィルタを適用し、この結果を前記平均値から減じることによって除去される、
ことを特徴とする請求項５に記載の方法。
【請求項７】
前記画像の前記検出されたエッジ画素位置近くの前記第１及び第２のベクトルの値を抑制するステップをさらに含む、
ことを特徴とする請求項２に記載の方法。
【請求項８】
１組の距離サイズおよび１組のオフセット候補について前記差分量の正規化した合計を求めるステップと、
前記正規化した合計の最大値を使用して、前記ブロックノイズの距離サイズ及びオフセットを求めるステップと、
をさらに含むことを特徴とする請求項２に記載の方法。
【請求項９】
前記距離サイズおよびオフセットを使用して、公称ブロックサイズ及び開始境界ブロック位置を求めるステップをさらに含む、
ことを特徴とする請求項８に記載の方法。
【請求項１０】
３つの正規化した前記差分量の合計を求めるステップをさらに含み、
前記３つの正規化した合計の第１の合計では、公称位置及び該公称位置に隣接する第１の位置を使用して合計値を算出し、該合計値のうちの大きい方をもたらす前記位置を選択し、
前記３つの正規化した合計の第２の合計では、前記公称位置及び該公称位置に隣接する第２の位置を使用して合計値を算出し、該合計値のうちの大きい方をもたらす前記位置を選択し、
前記３つの正規化した合計の第３の合計では、前記公称位置を使用して合計値を算出し、前記公称位置を選択する、
ことを特徴とする請求項８に記載の方法。
【請求項１１】
最大限に正規化した差分量の合計を生成する距離サイズ候補及びオフセット値を識別するステップと、
前記最大限に正規化した合計を、前記距離サイズ候補の他の２つのオフセット値に関して算出した合計と比較して、前記ブロックノイズのブロックサイズを求めるとともに、公称ブロックサイズ及び開始境界位置を使用して最終的なブロックサイズ及びオフセット値を選択するステップと、
をさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
次の境界ブロック位置を識別するステップをさらに含み、
前記次の境界ブロック位置が、
前記開始ブロック位置を前記公称ブロックサイズにより増分することと、
前記次の境界ブロック位置の周辺のウィンドウ内の最大又は最大に近い差分量値の位置を識別することと、
前記最大又は最大に近い値の前記位置を前記次の境界ブロック位置として選択することと、
によって求められる、
ことを特徴とする請求項９に記載の方法。
【請求項１３】
複数の次の境界ブロック位置を使用してブロック境界マップを生成するステップをさらに含む、
ことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記差分量を使用して前記画像がスケーリングされているかどうかを判定するステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項１５】
前記横及び縦に隣接する画素が１画素差である、
ことを特徴とする請求項２に記載の方法。
【請求項１６】
閾値以上の前記差分量の組を識別し、該差分量の組を前記閾値に設定することにより、前記差分量の組を減衰させるステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項１７】
前記縮小差分量の組から前記平均差分量の組を減じるステップが、ゼロ未満の値をゼロに切り上げるステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項１８】
前記エッジ検出がソーベルフィルタを使用して行われる、
ことを特徴とする請求項１に記載の方法。
【請求項１９】
前記ソーベルフィルタが３×３である、
ことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記結果差分量の組の中で前記エッジ画素位置に対応する差分量を抑制するステップが、対応する勾配の大きさが勾配閾値以上の前記エッジ画素位置の位置における前記エッジ差分量をゼロに設定するステップをさらに含む、
ことを特徴とする請求項２に記載の方法。
【請求項２１】
前記差分量が、輝度及び彩度に関して算出される、
ことを特徴とする請求項２に記載の方法。
【請求項２２】
前記彩度に関して算出した前記差分量を使用して彩度ブロック境界マップを生成し、前記輝度に関して算出した前記差分量を使用して輝度ブロック境界マップを生成するステップをさらに含む、
ことを特徴とする請求項２１に記載の方法。
【請求項２３】
正規化した合計を使用して前記ブロックノイズのノイズ特性の組を求め、差分量データを使用して前記画像の画像特性の組を求めるステップをさらに含む、
ことを特徴とする請求項８に記載の方法。
【請求項２４】
前記ノイズ特性の組が、ブロックノイズの強度及びブロックサイズを含み、前記画像特性の組が、前記画像内の詳細量を含む、
ことを特徴とする請求項２３に記載の方法。
【請求項２５】
前記ノイズ特性及び画像特性の組を使用してブロックノイズフィルタのゲイン値を求めることを特徴とする請求項２３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
〔優先権の主張〕
本出願は、２００９年２月１０日に出願された「ブロックノイズの検出及びフィルタ」という名称の米国仮特許出願第６１／１５１，４３４号の優先権を主張するものであり、該特許の内容は引用により本明細書に明確に組み入れられる。
【背景技術】
【０００２】
画像、音声又はビデオコンテンツなどのデジタルコンテンツの圧縮では、圧縮したデジタルコンテンツにアーチファクトが生じることがある。アーチファクトの生じる種類及び程度は、データ型及び圧縮技術によって様々である。通常、圧縮アーチファクトは、ＤＶＤなどの媒体、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ、ＪＰＥＧなどの圧縮ビデオフォーマットに生じる。特に、デジタル圧縮したビデオ又は画像ファイルには、ブロックノイズが存在することがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願第１２／２０４，７６０号明細書
【図面の簡単な説明】
【０００４】
【図１】デジタル画像及び／又はビデオ内にどのようにしてブロックノイズが生じるか、及びブロックノイズ検出器によって求めた制御パラメータを使用してどのようにブロックノイズフィルタを適用するかについての例を示すブロック図である。
【図２】ブロックノイズ検出器及び／又はブロックノイズフィルタを有する画像又はビデオプロセッサを備えたシステムの例を示すブロック図である。
【図３】ブロックノイズ検出器及び／又はブロックノイズフィルタを有する画像又はビデオプロセッサを備えた光ディスク装置の例を示すブロック図である。
【図４】ブロックノイズ検出器内の構成要素の例を示すブロック図である。
【図５】ブロックノイズフィルタ内の構成要素の例を示すブロック図である。
【図６】行又は列にわたる差分量の平均の例を示す図である。
【図７】平均差分量に適用したメジアンフィルタの出力の例を示す図である。
【図８】ＤＣレベルを除去した平均差分量の例を示す図である。
【図９】ＤＣレベルを除去してエッジスパイクを抑えた平均差分量の例を示す図である。
【図１０】様々なブロック間隔及びオフセットで正規化した合計差分量の例を示す図である。
【図１１】スケーリングした画像の平均差分量の例を示す図である。
【図１２】スケーリングした画像の、様々なブロック間隔及びオフセットで正規化した合計差分量の例を示す図である。
【図１３】隣接する非ゼロの間隔値を合計した場合の、スケーリングした画像の、様々なブロック間隔及びオフセットで正規化した合計差分量の例を示す図である。
【図１４】行又は列にわたる平均差分量の例を示す図である。
【図１５】マルチ画素の幅のピークを示す可変オフセットを使用して一定間隔で正規化した合計差分量の例を示す図である。
【図１６Ａ】隣接する非ゼロの距離値を合計した場合の、可変オフセットを使用して一定間隔で正規化した合計差分量の例を示す図である。
【図１６Ｂ】図１５及び図１６Ａの合計した差分量を操作することによって得られる値の例を含む表である。
【図１７】スケーリングの影響があるノイズ境界及び影響がないノイズ境界にブロックノイズフィルタを適用した効果の例を示す図である。
【図１８】スケーリングの影響があるノイズ境界及び影響がないノイズ境界にブロックノイズフィルタを適用した効果の例を示す図である。
【図１９】ブロックノイズ検出の例示的な処理のフロー図である。
【図２０】ブロックノイズフィルタの制御パラメータを選択するための例示的な処理のフロー図である。
【図２１】画像にブロックノイズフィルタを適用するフロー図である。
【図２２】本明細書で説明する方法のいずれか１つ又はそれ以上を機械に実施させるための命令セットを実行できる例示的なコンピュータシステムの形の機械の図形表示である。
【発明を実施するための形態】
【０００５】
以下の説明及び図面は例示的なものであり、限定的なものと解釈すべきではない。本開示を完全に理解できるようにするために数多くの具体的な詳細について説明する。しかしながら、いくつかの例では、説明を曖昧にしないために周知の又は従来の詳細については説明していない。本開示における１つの又はある実施形態への言及は、必ずではないが同じ実施形態についての言及とすることができ、このような言及は実施形態の少なくとも１つを意味する。
【０００６】
本明細書における「１つの実施形態」又は「ある実施形態」への言及は、実施形態に関連して説明する特定の特徴、構造又は特性が本開示の少なくとも１つの実施形態に含まれることを意味する。本明細書の様々な箇所に出現する「１つの実施形態では」という表現は、必ずしも全てが同じ実施形態について言及するものではなく、他の実施形態を互いに排除する別個の又は代替の実施形態について言及するものでもない。さらに、実施形態によって示すことができるものとできないものがある様々な特徴についても説明する。同様に、実施形態によって要件とすることができるものとできないものがある様々な要件についても説明する。
【０００７】
一般に、本明細書で使用する用語は、本開示の文脈及び個々の用語を使用する特定の文脈において、当技術における通常の意味を有する。実務者に本開示の説明に関するさらなる指針を与えるために、以下又は本明細書の別の箇所において、本開示を説明するために使用するいくつかの用語について説明する。便宜上、イタリック体及び／又は引用符などを使用していくつかの用語を強調表示していることがある。強調表示の使用によって用語の範囲及び意味に影響が及ぶものではなく、強調表示されているかどうかに関わらず、同じ文脈では用語の範囲及び意味は同じものである。なお、同じものを２通り以上の言い方で述べることができる。
【０００８】
この結果、本明細書で用語について詳しく述べたり又は説明したりしているかどうかに関わらず、本明細書で説明する用語のいずれか１つ又はそれ以上に代わりの言語及び同義語を使用することができ、またいずれかの特別な意味が置かれることもない。いくつかの用語については同義語を使用している。１又はそれ以上の同義語の記述は、他の同義語の使用を排除するものではない。本明細書で説明するいずれかの用語の例などの例を本明細書のいずれかの箇所で使用していたとしても、これらは例示的なものにすぎず、本開示又はいずれかの例示する用語の範囲及び意味をさらに限定することを意図するものではない。同様に、本開示は、本明細書で示す様々な実施形態に限定されるものではない。
【０００９】
本開示の範囲をさらに限定することを意図せずに、以下、本開示の実施形態による機器、装置、方法及びこれらの関連結果の例を示す。なお、例では読者の便宜を図って表題又は副題を使用することがあるが、これらは決して本開示の範囲を限定すべきものではない。特に定義していない限り、本明細書で使用する全ての技術用語及び科学用語は、本開示が属する技術の当業者によって一般的に理解されるものと同じ意味を有する。不一致が生じた場合、定義を含めて本明細書が優先する。
【００１０】
本開示の様々な実施形態は、ブロックノイズの検出及びフィルタ処理のためのシステム及び方法を含む。
【００１１】
図１は、デジタル画像及び／又はビデオ１０２内にどのようにしてブロックノイズ１０６が生じるか、及びブロックノイズ検出器１５２によって求めた制御パラメータを使用してどのようにブロックノイズフィルタ１５４を適用するかについての例を示すブロック図１００である。
【００１２】
通常の画像又はビデオ圧縮方式では、デジタル画像／ビデオ１０２内にブロックノイズなどのアーチファクトが生じる。特に、非可逆圧縮方式を適用することにより、画像／ビデオ１０６内にブロックノイズが生じることがある。
【００１３】
本明細書で説明する技術は、影響を受けたデジタル画像／ビデオ１０６を分析して処理し、ブロックノイズ（ブロックサイズ、オフセット、境界位置、（ブロックノイズの程度などの）ブロックノイズの強度など）及び／又は画像特性（画像内の詳細の量など）の属性／特性を識別するブロックノイズ検出器１５２に関する。
【００１４】
ブロックノイズ検出器１５２は、ブロックノイズ及び／又は画像特性を使用してブロックノイズフィルタ１５４への制御パラメータ１０８を生成することができる。制御パラメータ１０８は、ブロックノイズフィルタゲイン値、エッジ強度乗数などを含むことができる。ブロックノイズフィルタ１５４は、オリジナル画像に対し、ブロックノイズアーチファクトの視認性を低減又は除去するように作用することができる。
【００１５】
１つの実施形態では、画像内の（ほぼ）一定間隔を空けた垂直方向のみの端部又は水平方向のみの端部を識別することにより、デジタル圧縮を介して生じたブロックノイズを検出することができる。検出は、垂直及び水平の輝度画素差を分析して規則的な間隔のピークを検出することによって行うことができる。この検出に基づいて、ブロックノイズ境界の位置を示す垂直及び水平マップが生成される。
【００１６】
検出した輝度ブロックサイズから彩度ブロックサイズを推定することができ、彩度画素差データを使用して彩度に関する別個の境界マップが作成される。検出前に解像度をスケーリングした画像にも、サイズ及びオフセットを求めるための修正案を使用して対応がなされ、ブロック境界マップでは、このようなスケーリングによるブロック境界のぶれに関する対策が行われる。これらのブロック境界マップを、マップ内容に基づいて画像内のブロックノイズをフィルタ処理するノイズフィルタ機能に渡すことができる。
【００１７】
一般に、ブロックノイズの検出は、画像フレームの全体又は大部分に対して行われ、通常、検出結果は、フレーム全体又はフレームの大部分を分析するまで完全なものではない。このため、分析結果により多くのデータを含めることにより検出の統計的信頼性が向上する。ビデオソースの場合、フレームの最後まで検出結果を入手することができず、これにより検出処理に１フレーム遅延が生じる。従って、通常、次のフレーム期間においてブロックノイズフィルタ操作が適用されるようになる。ブロックノイズ境界の検出は空間的にのみ行われて時間的側面は伴わず、すなわちビデオフレーム／フィールドシーケンスの各々の単一の画像フレームに対して個別に行われる。
【００１８】
垂直及び水平ブロック境界の位置に加え、この機能は、ブロックノイズフィルタ機能のための制御パラメータも自動的に決定する。これらのパラメータには、垂直及び水平フィルタ強度、及びフィルタがノイズを抑制して画像内の物体の端部に沿ったアーチファクトをフィルタ処理するために使用する垂直及び水平勾配乗数が含まれる。
【００１９】
ブロックノイズを検出して制御パラメータを算出するための処理については、図６〜図１６及び図１９〜図２０に関連する説明をさらに参照しながらより詳細に説明する。
【００２０】
図２は、ブロックノイズ検出器２５２及び／又はブロックノイズフィルタ２５４を有する画像又はビデオプロセッサ２５０を備えたシステム２００の例を示すブロック図である。
【００２１】
システム２００は、処理装置２０２、メモリ２０４、及び／又は画像／ビデオプロセッサ２５０を含む。いくつかの実施形態では、上述したモジュール／装置又はこれらを表す機能のいずれかが、全体的に又は部分的にシステム２００の外部に存在してもよい。
【００２２】
一般に、システム２００は、以下に限定されるわけではないが、インターネットコンテンツ（ストリーミング及び／又はローカルに記憶されたもの）、（ビデオカメラ、カメラなどの）デジタル撮像装置によって記録されたコンテンツ、ユーザが作成したコンテンツ、（ＶＨＳ、磁気媒体又は光学媒体などの）記憶媒体に記憶されたコンテンツなどを含む、様々なソースから得たデジタル画像、デジタルビデオ及び／又はデジタル音声を受け取って処理することができる。互換性のある光学媒体フォーマットの種類として、以下に限定されるわけではないが、ＣＤ、ＤＶＤ、ＨＤ−ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）及びＨＤＶを挙げることができる。互換性のある光ディスクとして、読み出し専用メモリ（ＲＯＭ）、追記型（ＷＯＲＭ）、対話型（Ｉ）、及び／又は消去可能型（Ｅ）を挙げることもできる。ブロックノイズを含むビデオのさらなるソースとしては、例えば、デジタルブロードキャストテレビ、衛星テレビ、デジタルケーブルテレビなどが挙げられる。
【００２３】
システム２００の１つの実施形態は、メモリ２０４に結合された処理装置２０２を含む。処理装置２０２は、システム２００が使用する命令を実行できるソフトウェアエージェント及び／又はハードウェア構成要素のいずれの組み合わせであってもよい。命令には、メモリ２０４と通信することによってアクセスすることができる。
【００２４】
１つの実施形態では、処理装置２０２が、内部及び／又は外部の要求に対処して必要な計算を行う。処理装置２０２はメモリ２０４と通信することができ、いくつかの実施形態では、このメモリ２０４が、処理装置２０２及び／又は画像プロセッサ２５０によって実行可能な一連の命令を記憶する。
【００２５】
メモリ２０４は、画像プロセッサ２５０のデータ入力／出力バッファとして機能するソフトウェアエージェント及び／又はハードウェア構成要素のいずれの組み合わせであってもよい。メモリ２０４内のデータは、システム２００の内部及び／又は外部にあるいずれかのエンティティから受け取ることができる。
【００２６】
システム２００の１つの実施形態は、メモリ２０４に結合することができる画像／ビデオプロセッサ２５０を含む。画像プロセッサ２５０は、例えば、ブロックノイズの検出及びブロックノイズのフィルタ処理などの画像及び／又はビデオ処理を実行することができるソフトウェアエージェント及び／又はハードウェア構成要素のいずれの組み合わせであってもよい。画像プロセッサ２５０の１つの実施形態は、ブロックノイズ検出器２５２及び／又はブロックノイズフィルタ２５４を含む。デジタル画像／ビデオは、メモリ２０４から受け取り又は取り出すことができる。
【００２７】
図６〜図１６及び図１９〜図２０の例をさらに参照しながら説明するブロックノイズの検出及び／又はブロックノイズのフィルタ処理に加え、画像プロセッサ２５０が適用できる処理として、限定ではなく一例として、（拡大、スケーリング、縮小、回転などの）幾何学的変形、色調整、輝度調整、コントラスト調整、量子化、異なる色空間への変換、デジタル合成、光学的合成、補間、エイリアスの低減、フィルタ処理、画像編集、画像登録、画像の安定化、画像のセグメント化などが挙げられる。
【００２８】
図４の例をさらに参照しながらブロックノイズ検出器２５２の構成要素／モジュール例を示し、図５の例をさらに参照しながらブロックノイズフィルタの構成要素例を示す。
【００２９】
図３は、ブロックノイズ検出器３５２及び／又はブロックノイズフィルタ３５４を有する画像又はビデオプロセッサ３５０を備えた光ディスク装置３００の例を示すブロック図である。
【００３０】
（光ディスク装置３００などの）メディアプレーヤは、光ディスクリーダ３０２、処理装置３０４、メモリユニット３０６及び／又は画像／ビデオプロセッサを含むことができる。いくつかの実施形態では、上述したモジュール／装置又はこれらを表す機能のいずれかが、全体的に又は部分的に（光ディスク装置３００などの）メディアプレーヤの外部に存在してもよい。代替の実施形態では、光ディスク装置以外のメディアプレーヤの場合、本開示の新規技術から逸脱することなく、光ディスクリーダ３０２を、他のいずれかの適当なメディアリーダに置き換えることができる。他の種類の適当なメディアリーダは、公知の及び／又は便利な手段で動作することができる。
【００３１】
光ディスクリーダ３０２は、光ディスク上に光を照射し、光ディスクから反射した光を検出し、及び／又は検出した光を電気信号に変換することができるソフトウェアエージェント及び／又はハードウェア構成要素のいずれの組み合わせであってもよい。光ディスクリーダ３０２は、以下に限定されるわけではないが、ＣＤ、ＤＶＤ、ＨＤ―ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）及びＨＤＶなどのあらゆる光ディスクを読み取ることができる。互換性のある光ディスクとして、読み出し専用メモリ（ＲＯＭ）、追記型（ＷＯＲＭ）、対話型（Ｉ）、及び／又は消去可能型（Ｅ）を挙げることもできる。
【００３２】
１つの実施形態では、光ディスク装置３００が、光ディスクリーダ３０２に結合されたメモリ３０６を含む。メモリ３０６は、光ディスクリーダ３０２のデータ入力／出力バッファとして機能するソフトウェアエージェント及び／又はハードウェア構成要素のいずれの組み合わせであってもよい。光ディスク装置３００の１つの実施形態は、光ディスクリーダ３０２に結合された処理装置３０４を含む。いくつかの例では、処理装置３０４が、メモリ３０６及び／又は画像／ビデオプロセッサ３５０に結合される。処理装置３０４は、光ディスク装置３００が使用する命令を実行できるソフトウェアエージェント及び／又はハードウェア構成要素のいずれの組み合わせであってもよい。
【００３３】
１つの実施形態では、処理装置３０４が、内部及び／又は外部の要求に対処して必要な計算を行う。処理装置３０４はメモリ４０６と通信することができ、いくつかの実施形態では、このメモリ４０６が、処理装置３０４及び／又は画像プロセッサ３５０によって実行可能な一連の命令を記憶する。画像／ビデオプロセッサ３５０は、画像、ビデオ処理、及び／又はデジタル音声処理を実行できるソフトウェアエージェント及び／又はハードウェア構成要素のいずれの組み合わせであってもよい。
【００３４】
１つの実施形態では、プロセッサ３５０が、ブロックノイズの検出及び／又はフィルタ処理に関連するタスクの一部又は全部を実行するためのブロックノイズ検出器３５２及び／又はブロックノイズフィルタ３５４を含む。図４の例をさらに参照しながらブロックノイズ検出器２５２の構成要素／モジュール例を示し、図５の例をさらに参照しながらブロックノイズフィルタの構成要素例を示す。
【００３５】
図４は、ブロックノイズ検出器４５２内の構成要素の例を示すブロック図である。
【００３６】
ブロックノイズ検出器４５２は、差分量（ｄＭａｇ）生成器４０２、ｄＭａｇプロセッサ４０４、可変間隔／一定間隔モジュールとスケーリングモジュール４０８とを有するｄＭａｇ加算器４０６、ブロックサイズ及びオフセット評価器４１０、境界マップ生成器４１２、フィルタゲイン生成器４１４、及び／又は（フィルタ制御パラメータ生成器４２０の構成要素とすることができるような）エッジ勾配乗数生成器４１６を含む。いくつかの実施形態では、上述したモジュール／装置又はこれらを表す機能のいずれかが、全体的に又は部分的に検出器４５２の外部に存在してもよい。
【００３７】
差分量（ｄＭａｇ）生成器４０２は、ファームウェア、ハードウェア、これらの組み合わせ、又はいずれかの適用可能な公知の又は便利な装置又はシステムにおいて、例えば機械上のコンピュータ可読媒体又はコンピュータ可読記憶媒体内で具体化されるソフトウェアとして実現することができる。本明細書で説明するこの及びその他のエンジンは、本明細書で暗示的に、明示的に又は本質的に説明する機能の少なくとも一部及び／又は同等の機能を実行できるあらゆる機械、製造物又は合成物を含むことが意図されている。
【００３８】
ｄＭａｇ生成器４０２は、（ビデオのフレーム又は画像フレームなどの）画像内の隣接する画素の画素値の差分量を算出することができるソフトウェアエージェント及び／又はハードウェア構成要素のいずれの組み合わせであってもよい。１つの実施形態では、ｄＭａｇ生成器４０２が、オプティマイザ及び行／列平均生成器を含む。
【００３９】
１つの実施形態では、画像又はビデオのブロックノイズの検出において画像の差分量（ｄＭａｇ）を使用する。差分量は、生成器４０２が画素値内の垂直及び水平方向の１画素差を計算することによって求めることができる。これらは、隣接する画素位置間の差分の大きさであり、すなわち画素位置Ｎでは、差分量は画素Ｎの絶対画素値から画素Ｎ＋１を減じたものである。差分量は、輝度及び彩度に関して算出することができる。
【００４０】
算出したｄＭａｇ値を、一連の操作の１又はそれ以上によって（ｄＭａｇオプティマイザなどにより）最適化して、ブロックノイズを示すための信号対ノイズ比（ＳＮＲ）を高めることができる。例えば、通常、ブロックノイズによって生じる差分値の大きさは、画像内の主な特徴によって生じる差分値と比較すると相対的に小さい。例えば、通常、ノイズブロック間の境界によって生じる垂直及び水平ラインのクロスハッチは、画像内の他の形状の輪郭と比較すると薄いものである。
【００４１】
より大きな画像特徴がブロックノイズの差分に打ち勝って、ブロックノイズ境界の識別が誤判定されないように、特定の閾値を上回る差分値の大きさを閾値又はその近くに制限することができる。一例として、画素値に８ビット表現を使用する画像の場合、このような閾値を（２５５の８ビット最大から）１０とすることができる。
【００４２】
さらに、通常、ブロックノイズ境界に起因する差分量における小ピークは１画素幅である。（場合によっては、アップスケーリング、彩度アップサンプリング、又は単純に画像画素値の影響によってわずかに大きくなる場合がある。）この結果、このような特徴を検出して分離することができる。
【００４３】
これを行う１つの方法は、このような特徴を除外するフィルタ処理を使用することである。その後、このようなフィルタの出力を画像から取り去ると、ブロックノイズによる差分量値などの小さな特徴のみが残る。この処理によって差分量画像の信号対ノイズ比が増加し、この場合の「信号」はノイズブロック間の境界の差分量であり、通常はブロックノイズの結果である。
【００４４】
１つの実施形態では、行／列平均生成器が、水平及び垂直差分量を各々に垂直な方向に合計した後に平均化する（例えば、水平差分量の行を（垂直方向に）平均化し、垂直差分量の列を（水平方向に）平均化する）。この結果を使用して、行／列平均生成器は、画像の幅である水平差分量ベクトル及び画像の高さである垂直差分量ベクトルを生成することができる。この平均化処理は、規則的なブロック境界の特徴を強化する傾向にある。しかしながら、より不規則に存在する残留画像データ又はランダムノイズデータは補強されず、差分量平均の背景強度が異なるようになる。
【００４５】
図６は、行又は列にわたる差分量（ｄＭａｇ）の平均の例を示す図であり、平均化した水平差分量のプロット６００を示している。個々の水平位置に関する差分量を縦軸６０４に示し、画像の幅全体にわたる画素位置を横軸６０２に沿って示している。画像内の一定間隔のピーク６０６は、一般にブロック間の水平境界に対応する。
【００４６】
プロットの平均すなわち「ＤＣ」レベル６０８は、主にランダムノイズ及び低レベル画像データの残りから生じる。画像６００の終端の大きなスパイク６１０は、オリジナル画像と、画像の左右における狭い垂直陰線との間の大きな差分によって生じる。ここでは（及び以下の項では）、例示を目的として水平差分量プロットのみを示す。垂直プロットに関しても同様の結果が得られる。
【００４７】
この方法はブロック境界の位置に対して行われ、この位置は、一般に全ての列にわたる垂直差分量、及び全ての行にわたる水平差分量に関して同じである。ブロックサイズが画像にわたって大幅に変化する例では、修正手順を行うことができる。
【００４８】
図６の例に示すように、通常、平均差分量ベクトル内には、背景すなわち「ＤＣ」レベル６０８が存在する。これは、前の処理ステップのものと同様のメジアンフィルタ法を使用することによって大部分が除去される。メジアンフィルタは、行／列平均生成器によって平均差分量に対して適用することができ、その後、この結果が平均差分量から減じられる。メジアンフィルタは１×Ｎ画素の領域に適用され、この場合、Ｎは一定であっても又はプログラム可能であってもよい。前回と同様に、良好に機能するように経験的に７のＮ値を示している。
【００４９】
図７は、平均差分量に適用したメジアンフィルタの出力７０６の例を示している。（なお、画像７００内の縦軸７０４はプロットのデータコンテンツに正規化されているので、メジアンフィルタの出力は、前回のプロットと比較して誇張されたように見える）。
【００５０】
図８は、平均差分量からメジアンフィルタの出力を減じることによってＤＣレベルを除去した平均差分量の例を示している。背景すなわち「ＤＣ」レベルが除去されたことが容易に分かる。
【００５１】
図８の例は、オリジナル画像の黒い境界に起因して、平均差分量の端部に依然としてスパイク８１０が存在することを示している。これらの境界は、アスペクト比の補正によって生じることがあり（すなわち、レターボックス、ピラーボックス）、或いは画像端部のほんの小さな黒いストリップであることもある。次のステップで平均差分量を分析して、データ内のピークによって表されるブロック境界のサイズ及び位置を求める。しかしながら、これらの非常に大きなスパイクが存在すると、その大きさに起因してブロックサイズ及び位置の分析が狂うことがある。従って、ブロックサイズ及び位置の検出前にこのようなスパイクを除去し、或いは大幅に低減させることが有益である。
【００５２】
これらのスパイクを処理する１つの方法は、差分量ベクトルの端部近くの全ての値を単純に抑制することである。この方法はうまく機能できることが多いが、画像の実際の端部がどこに位置するかについての知識を前提とする。しかしながら、これは必ずしも確実に分かるものではない。ここで使用する技術は、ベクトル内の最初のいくつかの最大値を識別し、これらの最大値の大きさを比較し、その後この比較結果に基づいて最大ピークの振幅を低減させるというものである。
【００５３】
平均差分量から中央値を減じたものにこのアルゴリズム（例えば、行／列平均生成器により）を適用した結果を図９の例に示す。（なお、画像内の縦軸９０４はプロットデータコンテンツに正規化されているので、大きなピークを低減させることにより全体的なデータセットの縮尺がより均一になっている）。
【００５４】
検出器４０４の１つの実施形態は、ｄＭａｇプロセッサ４０４を含む。ｄＭａｇプロセッサ４０４は、ファームウェア、ハードウェア、これらの組み合わせ、又はいずれかの適用可能な公知の又は便利な装置又はシステムにおいて、例えば機械上のコンピュータ可読媒体又はコンピュータ可読記憶媒体内で具体化されるソフトウェアとして実現することができる。本明細書で説明するこの及びその他のエンジンは、本明細書で暗示的に、明示的に又は本質的に説明する機能の少なくとも一部及び／又は同等の機能を実行できるあらゆる機械、製造物又は合成物を含むことが意図されている。
【００５５】
ｄＭａｇプロセッサ４０４は、差分量データを分析、処理、及び／又はフィルタ処理して、画像又はビデオフレーム内のブロックノイズを示すＳＮＲを増加させることができるハードウェア構成要素及び／又はソフトウェアエージェントのいずれの組み合わせであってもよい。
【００５６】
１つの実施形態では、ｄＭａｇプロセッサ４０４が、ブロックノイズに対応する特徴を分離するフィルタを実装する。例えば、特徴を分離するためにメジアンフィルタを使用することができる。メジアンフィルタ又はその他の同様のフィルタは、小さな領域内の中央値画素を選択することができる。プロセッサ４０４は、水平差分量については１×Ｎ画素の水平方向領域に、垂直差分量についてはＮ×１画素の垂直方向領域にメジアンフィルタを適用することができる。この場合のＮは、一定であっても又はプログラム可能であってもよい。例えば、最も一般的なブロックサイズが８画素であるという主な理由により、７のＮ値を使用することができる。１つの実施形態では、プロセッサ４０４が、フィルタ処理していない差分量からメジアンフィルタの出力を減じて、ゼロ未満の値をゼロに切り上げる。この処理によって画像特徴の大部分を除去することができ、従ってノイズブロック間の境界を検出するための信号対ノイズ比が増加する。
【００５７】
１つの実施形態では、ｄＭａｇプロセッサ４０４が、画像内の物体端部の周囲の差分量値を抑制することができる。差分量から中央値を減じた後でも、依然としてオリジナル画像からの物体端部の残りが存在する。これらは、オリジナル画像内の端部を検出してこれらの位置における差分量を抑制することにより、さらに低減することができる。
【００５８】
１つの実施形態では、プロセッサ４０４が、例えばオリジナル画像の輝度部分に（３×３ソーベルフィルタなどの）垂直及び水平両方のフィルタを適用し、その後個々の結果の絶対値をとって垂直及び水平勾配量を生じさせることによりエッジ検出を行う。ソーベルフィルタは、例えば以下のようなものである。
【００５９】
（なお、フィルタの出力は、４で除算することによって正規化しなければならない。）
【００６０】
勾配量を閾値と比較し、勾配量が閾値を上回る位置では差分量をゼロに設定することができる。垂直差分量及び水平差分量は、適当な勾配量を使用して別個に処理される。一般的な閾値は、８ビットの勾配量を表すために２０に設定することができる。この処理により、差分量データの信号対ノイズ比がさらに向上する。
【００６１】
検出器４０４の１つの実施形態は、ｄＭａｇ加算器４０６を含む。ｄＭａｇ生成器４０６は、ファームウェア、ハードウェア、これらの組み合わせ、又はいずれかの適用可能な公知の又は便利な装置又はシステムにおいて、例えば機械上のコンピュータ可読媒体又はコンピュータ可読記憶媒体内で具体化されるソフトウェアとして実現することができる。本明細書で説明するこの及びその他のエンジンは、本明細書で暗示的に、明示的に又は本質的に説明する機能の少なくとも一部及び／又は同等の機能を実行できるあらゆる機械、製造物又は合成物を含むことが意図されている。
【００６２】
ｄＭａｇ加算器４０６は、一定の及び／又は可変の距離／間隔合計を生成することができるハードウェア構成要素及び／又はソフトウェアエージェントのいずれの組み合わせであってもよい。
【００６３】
加算器４０６は、異なる間隔及びオフセットの差分量を合計してノイズブロックのサイズ及びこれらの位置を識別することができる。加算器４０６は、データの開始から差分量ベクトル全体にわたって一連の距離間隔及び一連のオフセットで均一に（又はほぼ均一に）間隔を空けた正規化した差分量の合計を算出することができる。
【００６４】
距離サイズは、最小ブロックサイズから最大ブロックサイズ（ＭｉｎＳｉｚｅ：ＭａｘＳｉｚｅ）に及ぶことができ、オフセット範囲は、最小開始位置から最大開始位置（ＭｉｎＯｆｆｓｅｔ：ＭａｘＯｆｆｓｅｔ）に及ぶことができる。距離サイズによってブロックのサイズが識別され、オフセットによってブロックの位置が識別される。加算器４０６は、ブロックサイズの範囲内の個々の入力、及びオフセットの範囲内の個々の入力のために差分量データを個別に合計することができる。その後、加算器４０６は、差分量ベクトル内のいくつかの位置にわたって存在し得る個々のサイズのブロックの個数に基づいて合計を正規化することができる。
【００６５】
全ての距離サイズ及びオフセットの合計が計算されると、加算器４０６によって全ての合計の平均値が算出される。これを距離／オフセット合計の各々から減じてＳＮＲを向上させる。マイナスの結果はゼロに切り上げることができる。
【００６６】
通常は、差分量ベクトル内の実際のブロック境界のピーク位置と一致する距離サイズ及びオフセットの合計が最大となる（又は最大に近くなる）。このサイズ距離の整数倍数にも同じことが当てはまる。この距離サイズ（及びその倍数）は、差分量ベクトル内のブロック境界のピークと一致するときにも、この距離サイズのオフセットで繰り返す。
【００６７】
図１０は、様々なブロック間隔及びオフセットで正規化した合計差分量の例を示す図であり、結果として生じる水平差分量ベクトルの距離／オフセット合計を示している。軸１００２はオフセット値を示し、軸１００４は正規化した合計差分量の振幅を示し、プロット１０００では異なる距離サイズに関して異なる曲線を示している。
【００６８】
加算器４０６は、この例では４から１６までの全ての距離サイズについて、及び１から３２までのオフセットについて合計を算出することができる。このプロット内の最高振幅値は、８及び１６のブロックサイズに関するものである。これらの両サイズは８画素ごとにピークを繰り返し、ブロックサイズが８である見込みが最も高いことを示している。最初の値のオフセットは８であり、最初のブロック境界が８番目の画素位置又はその近くに存在することを示している（最初のブロックが画像の左端部に一致する８画素幅のブロックに関して予想される）。
【００６９】
ブロックノイズの検出前に画像がスケーリングされている場合、ブロックの間の鮮明な境界が（２つなどの）複数の画素にわたって不鮮明になることがある。これは、ほとんどのシーラに備わっているローパスフィルタ、及び画像内の画素数、従ってブロック内の画素数が変化することによって生じる。この結果、差分量ベクトル内で検出されたブロック境界のピークが単一画素の幅のピークでなく、複数の画素の幅である可能性がある。図１１は、スケーリングした画像の平均差分量の例を示すとともに、生じ得るピークの不鮮明化を示している。
【００７０】
プロット１１００は、２／３のスケーリング率で縮小された画像の垂直差分量の拡大部分である。この結果、３つのオリジナルの８画素ブロックを含む２４画素が１６画素にスケーリングされ、（平均して）５−１／３画素ブロックが３つとなる。図１１の例のプロット１１００では、縮小処理におけるブロック境界の不鮮明化に起因して、全ての３つおきのピークが実際には２画素の幅であることがわかる。
【００７１】
プロット１１００に示す差分量ベクトルを、前のステップで説明したように距離／オフセット合計を算出するように処理すると、ブロック境界の不鮮明化により、距離のピークが１画素の幅よりも大きくなる可能性がある。図１２は、スケーリングした画像の様々なブロック間隔及びオフセットで正規化した合計差分量の例を示している。
【００７２】
プロット例１２００では、最大振幅の距離サイズは１６であり、これは３つの５−１／３画素ブロックの群に対応する。距離１６のピーク間のオフセット間隔は、次のピークとの距離を求めるために２画素幅の距離ピークのいずれの部分を使用するかによって５画素と６画素の間で変化する。振幅距離が小さいほど同様の挙動を示し、例えば８画素の距離も、明らかに不鮮明な距離ピークを有する。これらの不鮮明な距離ピークでは、ピーク位置に不確実性が加わることにより、及び（公称オフセットの値が複数の位置にわたって広がるため）距離ピーク振幅が減少することにより、ブロックサイズが実際にどれだけであるかを判断することがより困難になる。
【００７３】
この問題を回避する１つの方法は、不鮮明な距離ピークを（スケーリングマネージャ４０８などによって）１つの値に統一することである。加算器４０６の１つの実施形態は、スケーリングマネージャ４０８を含む。スケーリングマネージャ４０８は、ファームウェア、ハードウェア、これらの組み合わせ、又はいずれかの適用可能な公知の又は便利な装置又はシステムにおいて、例えば機械上のコンピュータ可読媒体又はコンピュータ可読記憶媒体内で具体化されるソフトウェアとして実現することができる。本明細書で説明するこの及びその他のエンジンは、本明細書で暗示的に、明示的に又は本質的に説明する機能の少なくとも一部及び／又は同等の機能を実行できるあらゆる機械、製造物又は合成物を含むことが意図されている。スケーリングマネージャ４０８は、スケーリングした画像に合計処理を順応させることができるハードウェア構成要素及び／又はソフトウェアエージェントのいずれの組み合わせであってもよい。
【００７４】
例えば、スケーリングマネージャ４０８は、いずれの側もゼロ値に隣接していない距離ピークの例を１つのピークに統一することができる。これは、例えばピークの各々の側の２つの値をピーク値に加算し、その後隣接する値をゼロに設定することによって行うことができる。合計演算は、両方の隣接する値よりも大きな距離／オフセット値に関してのみ行われる。
【００７５】
隣接する非ゼロの距離値を合計した結果の例を、図１３の例示的なプロット１３００に示す。このプロットは、図１２のプロット１２００と同じデータに基づくものであるが、隣接する非ゼロの位置の距離値を合計している。今回は、個々のピーク位置が明確に定められており、異なるオフセットにわたって振幅が規則正しくなっている。
【００７６】
なお、画像のスケーリングを行わなかった場合、通常、個々のピークはばらばらにならず、各々の側にゼロ値が存在する。従って、上述したピークデータ統合操作を行うことによって与えられる影響はほとんど又は全く無く、基本的に距離／オフセットデータは変わらないままとなる。一般に、距離／オフセットデータの組を統合すると、元々の距離／オフセットの組の結果と全く同じ又はそれよりも優れた結果が得られる。
【００７７】
図１４は、行又は列にわたる平均差分量の例を示している。
【００７８】
プロット１４００が示すピークは、一見すると、ブロックノイズを示す規則的な間隔のパターンであるように見える。プロット１４００内のピーク間の間隔を精査すると、これらが７画素又は８画素離れていることが分かる。しかしながら、ピーク間隔のパターンには規則性が無いように見える。
【００７９】
図１５は、可変オフセットを使用して一定間隔で正規化した合計差分量のプロット１５００の例であり、図１４の例に示す平均差分量データのマルチ画素幅のピークを示している。
【００８０】
プロット１５００は、ピーク及び可変間隔の寄せ集めのように見え、明確なパターンを示していない。しかしながら、このプロットからは、マルチ画素の幅のピークが存在することが明らかであり、統一したピークプロットを吟味すべきであることを示している。図１６Ａは、隣接する非ゼロの距離値を合計した場合の、可変オフセットを使用して可変間隔で正規化した合計差分量の例を示している。
【００８１】
プロット１６００では、最高ピーク値の距離と、２つの最高距離のピーク間の１５個の間隔とによって示されるように、１５個のブロックサイズが存在することが見て取れる。しかしながら、このプロットには、１５画素の距離に関する他のピークがいくつか存在し、これらの振幅はあまりに大きいので、１５個のブロックサイズの選択は不確実である。このことは、差分量プロット内に示すピーク間隔によって裏付けられ、ブロックサイズが１５でないことを明確に示している。また、この例の距離／オフセットデータの挙動は、不鮮明なピークを統合した後でさえ識別できるパターンがしばしば全く存在しない多くの場合よりも実際のところ良好である。
【００８２】
従って、画像のスケーリングによってブロックサイズが画像の幅及び／又は高さにわたって可変となる場合には、別の方法を使用して公称ブロックサイズを識別することができる。
【００８３】
この種のスケーリングした画像の１つの重要な特徴は、ブロックサイズは公称値を有するが、使用するスケーリング率に応じて１つのブロックから次のブロックへと±１画素ずつ変化できるという点である。この変化は通常１画素であり、公称ブロックサイズから一方向に生じる。従って、１つの実施形態では、（ｄＭａｇ加算器４０６などを介して）ピークを合計するときに、距離サイズ内の１画素の変化を用いて合計を行うことができる。
【００８４】
加算器４０６は開始点を選択し、その後一連の距離サイズ（すなわち、前回の距離／オフセット計算の場合のようにＭｉｎＳｉｚｅ〜ＭａｘＳｉｚｅ）を使用して差分量値を調べることができる。その後、加算器４０６は、これらの位置で発見した値を合計することができる。個々の距離サイズに関して、加算器４０６は差分合計の組を求める。例えば、現在の距離サイズから−１画素オフセットした場合を考慮した合計、オフセットを考慮しない合計、及び＋１画素オフセットした場合を考慮した合計という３つの異なる合計を算出することができる。
【００８５】
合計に値を追加すべき個々の位置において、（「−１」オフセットの場合には公称及び公称−１などの）考慮した差分量値を調べて最大のものを選択する。選択した位置における値を、その距離の合計に追加する。この位置も開始点になり、これに距離サイズを加えて次の位置を求める。このようにして全ての距離サイズに関して、及び距離ごとに−１、０、＋１の画素オフセットに関して差分量値を調べる。合計が算出されると、これらを調べて（もしあれば）どのブロックサイズが示されているかを判定することができる。
【００８６】
ｄＭａｇ加算器４０６が実行する以下のステップにより、手順をより詳細に説明する。  水平可変距離の処理
Ａ）開始点を識別する。
１）ベクトル内の最大差分量値を求める。（無効な外れ値と考えられる）端部の１６画素内にある点を検索から除外する。識別したばかりの最大値の１／４である閾値を設定する。
２）  最小ブロックサイズ（４）のオフセットから開始して、閾値を上回るが（無効な外れ値とみなされるであろう）前回求めた最大値を上回らない位置に到達するまで値を調べる。これが第１の開始位置候補である。
３）開始位置候補を実証する。この値は、両側の値（すなわち、真のピーク）を上回るとともに閾値を上回らなければならない。現在の候補が実証されなかった場合、有効な開始位置が見つかるまで値を調べ続ける。開始点が差分量配列内に離れ過ぎている（すなわち、配列の終端に近い）場合、この差分量データは識別可能なブロック境界を示すものではなく、従って全ての合計をゼロに設定する。これが真であるための条件は、（幅−１−ＭａｘＳｉｚｅ−ＨｏｒｉｚｏｎｔａｌＳｔａｒｔＬｏｃａｔｉｏｎ）がゼロ以下であることである。
Ｂ）ＭｉｎＳｉｚｅ〜ＭａｘＳｉｚｅの個々の距離サイズに対して以下を行う。
１）個々の距離の−１、０、及び＋１のオフセット変化を考慮して、開始点から開始して距離値ずつ差分量値を調べる。個々の距離及び−１、０、＋１のオフセット変化の値を合計する。この合計は以下のように行う。
−１のオフセット変化
現在の距離サイズの増分を用いて値を調べる。公称位置における値が公称位置−１における値を下回る場合、−１のオフセット変化の場合の距離合計に、この位置における値−１を加え、そうでない場合には公称位置における値を加える。識別した最大位置を次のステップの開始点として使用する。
０のオフセット変化
現在の距離サイズの増分を用いて値を調べる。オフセットがゼロなので、公称距離サイズでの値のみを使用する。識別した位置を次のステップの開始点として使用する。
＋１のオフセット変化
現在の距離サイズの増分を用いて値を調べる。公称位置における値が公称位置＋１における値を下回る場合、＋１のオフセット変化の場合の距離合計に、この位置における値＋１を加え、そうでない場合には公称位置における値を加える。識別した最大位置を次のステップの開始点として使用する。
２）合計を（幅／距離−サイズ）で除算することにより個々の合計を正規化する。
垂直可変距離の処理
Ａ）水平処理を繰り返すが、画像幅の代わりに垂直差分量ベクトル及び（垂直ベクトル長である）画像高さを使用する。垂直ブロック境界の場合、開始点が差分量ベクトルの終端に近すぎることにより有効なブロックサイズが存在しない条件は、（高さ−１−ＭａｘＳｉｚｅ−ＶｅｒｔｉｃａｌＳｔａｒｔＬｏｃａｔｉｏｎ）がゼロ以下であることである。
【００８７】
図１６Ｂの例示的な表は、図１５及び図１６Ａの例におけるプロット１５００及び１６００で使用した例の差分量データに対してこの手順を実行した結果を示している。
【００８８】
８画素距離の−１オフセット及び７画素距離の＋１オフセットに関して最大距離合計が見出される。図１６Ｂの表内では、これらを要素１６１０として識別している。この種の関係（すなわち、距離Ｎの−１オフセットと距離Ｎ−１の＋１オフセットとの合計が両方とも大きくかつ類似する場合）は、スケーリングした画像の平均ブロックサイズがこれらの２つの距離サイズ間に存在することを示す。従って、この例では、ブロックサイズが７画素と８画素の間になるようにスケーリングされたようである。この種の場合には、小さい方の距離を公称ブロックサイズとして使用することが慣例である。
【００８９】
次のステップでは、このブロックサイズして特定のブロック境界位置（不均一な間隔で発生する）をどのように識別するかを示す。また、値１６１０とサイズ及び構造が類似するが、最大値の距離サイズの２倍の距離サイズに関する１６２０として識別される値にも留意されたい。非可変オフセットを使用した距離／オフセット合計法の場合と同様に、この方法は、最大値を生じるために合計される同じデータ点に２倍の距離サイズがまたがることになるので典型的なパターンである。
【００９０】
この可変オフセット合計を評価器４１０が使用してブロックサイズを求めることができる。
【００９１】
検出器４０４の１つの実施形態は、ブロックサイズ及びオフセット評価器４１０を含む。ブロックサイズ及びオフセット評価器４１０は、ファームウェア、ハードウェア、これらの組み合わせ、又はいずれかの適用可能な公知の又は便利な装置又はシステムにおいて、例えば機械上のコンピュータ可読媒体又はコンピュータ可読記憶媒体内で具体化されるソフトウェアとして実現することができる。本明細書で説明するこの及びその他のエンジンは、本明細書で暗示的に、明示的に又は本質的に説明する機能の少なくとも一部及び／又は同等の機能を実行できるあらゆる機械、製造物又は合成物を含むことが意図されている。
【００９２】
評価器４１０は、差分量データからブロックノイズ特性を求めることができるハードウェア構成要素及び／又はソフトウェアエージェントのいずれの組み合わせであってもよい。
【００９３】
例えば、加算器４０６により生成される差分量の可変オフセット合計を評価器４１０が使用してブロックサイズを求めることができる。評価器４１０は、水平及び垂直の合計に関して処理を行うことができ、以下の例示的なステップにおいて詳細に示す。
Ａ）最初と最後の距離合計（すなわち、ＭｉｎＳｉｚｅ距離の−１オフセット及びＭａｘＳｉｚｅ距離の＋１オフセット）を隣接値に設定することにより、これらを効果的に廃棄することができる。これは、これらのブロックサイズがＭｉｎＳｉｚｅ〜ＭａｘＳｉｚｅ（例えば、４：１６）のブロックサイズ範囲外にあるという理由で行われる。
Ｂ）最大差分量合計を含む距離サイズ及び可変オフセット値を求める。
Ｃ）最大合計がゼロでないことをチェックする。（この条件は、距離の開始位置が右／下の画像端部に近すぎて、この結果全ての合計が前のステップでゼロに設定されているときに発生する。）ゼロである場合、ブロックサイズを（有効なブロックサイズが見つからないことを示す）ゼロに設定して終了する。
Ｄ）識別した最大合計を、同じ距離の他の２つの可変オフセットの合計と比較する。
Ｅ）（「現在の距離」が最大の距離を示す場合）以下のようにしてブロックサイズを求める。
中心（ゼロ）オフセットがその距離の最大値である場合、又は距離の全てのオフセットが等しい場合、現在の距離が偶数であって現在の距離の半分の中心オフセットの値が最大値に非常に近ければ（例えば、７／８）、ブロックサイズを現在の距離の半分に設定し、そうでなければブロックサイズを現在の距離に設定する。
そうでない場合、−１オフセットは最大でないので、次に小さな距離値を調べる。前のステップにおいて正規化処理を実行する方法に起因して、次に大きな距離の−１オフセットの方が常に大きいので、＋１オフセットが最大であることはない。
次に小さな距離サイズの＋１オフセットがこの同じ距離の０及び−１オフセットと類似する（例えば、１５／１６）か又は上回り、現在の距離の＋１オフセットに近い（例えば、３／４）場合、
最大距離（Ｎ）が奇数であり、かつ（Ｎ＋１）／２の距離の−１オフセットが最大値に近い（例えば、７／８）場合、
（Ｎ−１）／２の距離の＋１オフセットが（Ｎ＋１）／２の距離の−１オフセットに近い（３／４）場合、
ブロックサイズを（Ｎ−１）／２に設定する。
そうでない場合、ブロックサイズをＮ−１に設定する。
そうでない場合、最大距離（Ｎ）が偶数であり、かつＮ／２の距離の−１オフセットが最大値に近い（７／８）場合、
（Ｎ／２）−１の距離の＋１オフセットが、Ｎ／２距離の−１オフセットに近い（例えば、３／４）場合、
ブロックサイズを（Ｎ／２）−１に設定する。
そうでない場合、ブロックサイズをＮ−１に設定する。
そうでない場合、ブロックサイズをＮ−１に設定する。
そうでない場合、ブロックサイズをＮに設定する。
【００９４】
１つの実施形態では、評価器４１０が、オフセットピーク間の間隔を求めるために、加算器４０６が生成した距離／オフセット合計も調べる。例えば、評価器４１０は、正規化した差分量の合計を様々な距離及びオフセットにわたって調べて、ピーク間の最高（又は最高に近い）振幅ピーク及び間隔を識別することができる。
【００９５】
評価器４１０は、ピーク振幅及び間隔データの両方を使用してブロックサイズ及びオフセットを識別することができる。以下の手順を使用して、どのピーク振幅が大きいか、及びこれらのピーク間の間隔を識別する。
【００９６】
Ａ）最大ピーク振幅を求める。この値から、閾値（最大の５／８である上限閾値、及び最大の３／８である下限閾値）の組を生成する。後でブロックノイズフィルタパラメータを設定する際に使用するために最大値を保存し、ブロックサイズ及び開始ブロック境界位置をアルゴリズムで求める際に使用するために最大値を含むオフセットを保存する。
【００９７】
Ｂ）距離サイズごとに、個々のオフセットでの値を調べ、上限閾値を超える値を有する全てのピーク及び下限閾値を下回る値を超える全てのピークを識別する。
【００９８】
Ｃ）上限閾値を超える少なくとも１つのピークを有する距離サイズごとに、距離のオフセットを調べて、下限閾値を超えるピーク間の間隔を識別する。ピーク間の間隔は、単純にこれらのピークのオフセット値間の差分である。閾値を超えるピーク間の個々の間隔を「オフセット配列」に保存する。
【００９９】
Ｄ）統合された距離／オフセット値の垂直及び水平の両方の組に対して（すなわち、画像スケーリングによる隣接ピークが１画素幅のピークに統合されている場合）上記の処理を行う。
【０１００】
図１０の例に示す距離／オフセットデータにこの手順を実行した場合、以下のピーク間隔が求められる。
【０１０１】
距離における最大ピーク：１６
【０１０２】
オフセットにおける最大ピーク：３２
【０１０３】
距離サイズ８の場合の水平オフセット間隔：
【０１０４】
８  ８  ８
【０１０５】
距離サイズ１６の場合の水平オフセット間隔：
【０１０６】
８  ８  ８
【０１０７】
このデータに基づいて、ブロックサイズが８であることが確実に明らかである。しかしながら、図１６Ａに示す距離／オフセットデータに同じ手順を実行した場合、以下が求められる。
【０１０８】
距離における最大ピーク：１５
【０１０９】
オフセットにおける最大ピーク：１１
【０１１０】
距離サイズ１４の場合の水平オフセット間隔：
【０１１１】
４  ３  ５  ２  ４  ３
【０１１２】
距離サイズ１５の場合の水平オフセット間隔：
【０１１３】
２  ６  ７  ８
【０１１４】
距離サイズ１６の場合の水平オフセット間隔：
【０１１５】
３  ６  ７  ３  ６
【０１１６】
この例では、ブロックサイズがどのようなものであり得るかを示す明確な指標はない。距離サイズ間に、矛盾する間隔が示される。この種の不確定なデータが、可変オフセット手順も使用する理由の１つである。
【０１１７】
このようにして求めた（オフセット配列などの）ピーク間隔測定値を評価器４１０が使用して、ブロックサイズ及びオフセットを求めることができる。
【０１１８】
ブロックサイズは、距離／オフセット配列内の距離サイズ及びピーク値間の間隔の両方によって求められるが、開始オフセットは、距離／オフセット配列内の最大ピークのブロックサイズ及びオフセットによって決まる。
【０１１９】
以下の一連の優先順位を付けたステップ例を実行して、ブロックサイズ及びオフセットを求めることができる。これらのステップは、オフセット配列データに対して実行される。「ＭａｘＰｅａｋＯｆｆｓｅｔ」という用語は、前のステップからの統合したピークデータセットを使用して振幅が最大となるピークのオフセットを示す。同じ一連のステップを、垂直及び水平の両方のオフセット配列に適用することができる。
【０１２０】
Ａ）標準的な８画素ブロックサイズを探す。これが真であるための条件は以下の通りである。
【０１２１】
・非ゼロの入力を含むオフセット配列内の最大距離サイズが１６である。
【０１２２】
・最大ピーク値が８の倍数の距離サイズで発生する。
【０１２３】
・少なくとも３つの測定されたピーク間間隔がオフセット配列行の１つに存在する。
【０１２４】
・距離サイズ８のオフセット配列内の最初の３つの入力が全て８である。
【０１２５】
・距離サイズ１６のオフセット配列内の最初の３つの入力が全て８である。
【０１２６】
ブロックサイズを８に設定する。
【０１２７】
開始オフセットを（ＭａｘＰｅａｋＯｆｆｓｅｔ  ｍｏｄ  ８）＋８に設定する。
【０１２８】
Ｂ）  ４、８、１２及び１６の距離サイズ内に現れる４画素ブロックサイズを探す。これが真であるための条件は以下の通りである。
【０１２９】
・非ゼロの入力を含むオフセット配列内の最大距離サイズが１６である。
【０１３０】
・最大ピークが４の倍数の距離サイズで発生する。
【０１３１】
・オフセット配列内の全ての４の倍数の距離が少なくとも１つの非ゼロ入力を有する。
【０１３２】
・オフセット配列内の４の倍数の距離のうちの少なくとも３つが４の平均間隔を有する。
【０１３３】
ブロックサイズを４に設定する。
【０１３４】
開始オフセットを（ＭａｘＰｅａｋＯｏｆｓｅｔ  ｍｏｄ  ４）＋４に設定する。
【０１３５】
Ｃ）距離サイズの半分が同じピーク間隔を有する偶数の距離サイズを探す。これが真であるための条件は以下の通りである。
【０１３６】
・最大差分値を有する距離サイズが偶数である。
【０１３７】
・この距離サイズのオフセット配列内の全ての入力が同じである。
【０１３８】
・この距離サイズのオフセット配列内の全ての入力が、この距離サイズの半分のオフセット配列内の入力と同じである。
【０１３９】
・ブロックサイズをこの距離のピーク間間隔に設定する。
【０１４０】
・開始オフセットを（ＭａｘＰｅａｋＯｆｆｓｅｔ  ｍｏｄ  ＢｌｏｃｋＳｉｚｅ）＋ＢｌｏｃｋＳｉｚｅに設定する。
【０１４１】
Ｄ）距離サイズの２／３及び１／３が同じブロックサイズを有する３の倍数の距離サイズを探す。これが真であるための条件は以下の通りである。
【０１４２】
・最大差分値を有する距離サイズが３の倍数である。
【０１４３】
・この距離サイズが１２以上である（従って、この１／３は４以上である）。
【０１４４】
・この距離サイズのオフセット配列内の全ての入力が同じである。
【０１４５】
・この距離サイズのオフセット配列内の全ての入力が、この距離サイズの２／３のオフセット配列内の入力と同じであり、かつこの距離サイズの１／３のオフセット配列内の入力と同じである。
【０１４６】
・ブロックサイズをこの距離のピーク間間隔に設定する。
【０１４７】
・開始オフセットを（ＭａｘＰｅａｋＯｆｆｓｅｔ  ｍｏｄ  ＢｌｏｃｋＳｉｚｅ）＋ＢｌｏｃｋＳｉｚｅに設定する。
【０１４８】
Ｅ）（単複の）非ゼロの測定オフセットを有する、最大ピーク値を含む距離サイズに等しい単一の距離サイズのみを探す。これが真であるための条件は以下の通りである。
【０１４９】
・非ゼロの入力を含むオフセット配列内に単一の距離サイズが存在する。
【０１５０】
・この距離サイズのオフセット配列内の最初の入力が距離サイズと同じである。
【０１５１】
・公称ブロックサイズをこの距離サイズに設定する。
【０１５２】
・開始オフセットを（ＭａｘＰｅａｋＯｏｆｓｅｔ  ｍｏｄ  ＢｌｏｃｋＳｉｚｅ）＋ＢｌｏｃｋＳｉｚｅに設定する。
【０１５３】
Ｆ）４−４−３の１１の「マクロ」ブロックの特別な例を探す。この状況は、ＶＣＤ画像のスケーリングのいくつかの場合に見られる。これが真であるための条件は以下の通りである。
【０１５４】
・最大又は最大に近いピークが１１の距離サイズで発生する。
【０１５５】
・オフセット配列内に５よりも多くのピーク間間隔入力が存在する。
【０１５６】
・１１画素距離の行内の最初の６つのオフセット配列入力が、「４  ４  ３  ４  ４  ３」の数列の回転変動である。
【０１５７】
ブロックサイズを４に設定する。
【０１５８】
開始オフセット値を、最大ピークのオフセットを求められた距離サイズ（すなわち、１１）で除算した余りに設定し、この余りが公称ブロックサイズ（４）未満の場合には公称ブロックサイズ（４）を加算する。
【０１５９】
Ｇ）５のブロックを有し、ピーク間間隔が５−１１又は１１−５の距離１６のオフセット配列入力内にある１６の「マクロ」ブロックの特別な例を探す。この例は、一般に１９２０を１２８０に縮小すること、及び１０８０を７２０に縮小することによって生じる。（すなわち、３つの８画素ブロックが１６画素内の３ブロックの群に縮小される。）これが真であるための条件は以下の通りである。
【０１６０】
・非ゼロの入力を含むオフセット配列内の最大距離サイズが１６である。
【０１６１】
・最大ピークが１６の距離サイズで発生する。
【０１６２】
・オフセット配列内に２又はそれ以上のピーク間間隔入力が存在する。
【０１６３】
・１６画素距離の行内の最初の２つのオフセット配列入力が５−１１又は１１−５である。
【０１６４】
ブロックサイズを５に設定する。
【０１６５】
開始オフセット値を、最大ピークのオフセットを求められた距離サイズ（すなわち、１６）で除算した余りに設定し、この余りが公称ブロックサイズ（５）未満の場合には公称ブロックサイズ（５）を加算する。
【０１６６】
Ｈ）（単複の）非ゼロの測定オフセットを有する単一の距離サイズのみを探す。
【０１６７】
ブロックサイズを、単一の距離のオフセット配列内の入力の（四捨五入した）平均値に設定する。
【０１６８】
・評価器４１０は、最初に単一の距離サイズの統合された距離／オフセット合計内のオフセット入力を調べ、その後最大値入力のオフセットを発見することにより、開始オフセット値を求めることができる。次に、この開始オフセットを、このオフセットを単一の距離サイズで除算した後の余りに設定し、その余りが公称ブロックサイズ未満の場合には公称ブロックサイズを加算することができる。
【０１６９】
Ｉ）その他の場合、ブロックサイズ及びオフセットを（ブロックが検出されなかったことを示す）ゼロに設定する。
【０１７０】
その後、評価器４１０は、オフセット配列内の入力及び可変オフセット（−１／０／＋１）法に基づく入力を調べることにより、前のステップで求めたブロックサイズ及びオフセットから最終的なものを選択することができる。オフセット配列内の入力から求めたブロックサイズが（有効なブロックサイズが見つからなかったことを示す）ゼロである場合、可変オフセット法によって求めた値を使用する。
【０１７１】
垂直ブロックサイズ及びオフセットを求めるための１つの特例が存在する。オフセット配列内の入力から求めた垂直ブロックサイズが２である場合、オリジナル画像データは、ほぼ間違いなく、間に時間差を有する２つの織り混ざったフィールドが混在するものである（例えば、これらは同じ時点から得られたものではない）。この場合、ブロックサイズを（有効ブロックサイズが存在しないことを示す）ゼロに設定する。
【０１７２】
検出器４０４の１つの実施形態は、境界マップ生成器４１２を含む。境界マップ生成器４１２は、ファームウェア、ハードウェア、これらの組み合わせ、又はいずれかの適用可能な公知の又は便利な装置又はシステムにおいて、例えば機械上のコンピュータ可読媒体又はコンピュータ可読記憶媒体内で具体化されるソフトウェアとして実現することができる。本明細書で説明するこの及びその他のエンジンは、本明細書で暗示的に、明示的に又は本質的に説明する機能の少なくとも一部及び／又は同等の機能を実行できるあらゆる機械、製造物又は合成物を含むことが意図されている。
【０１７３】
境界マップ生成器４１２は、公称ブロックサイズ及び開始ブロック境界位置を使用してブロック境界のマップを生成することができるハードウェア構成要素及び／又はソフトウェアエージェントのいずれの組み合わせであってもよい。
【０１７４】
生成器４１２は、差分量ベクトル内のピークの間隔に基づいて輝度ブロック境界を判定することができる。使用する手順は、すでに判定されている最初のブロック境界の位置から開始することができ、その後差分量データを公称ブロックサイズずつ調べる。各ステップにおいて、最大ピーク位置を求めて小ウィンドウが検索され、これがその後、ブロック境界としてマーキングされる。この位置が次の検索の開始点となり、処理はデータの終わりまで続く。
【０１７５】
生成器４１２は、この処理中に識別されたブロック境界の位置を含むブロック境界マップを作成することができる。境界マップは、差分量ベクトルと同じサイズのベクトルである。境界マップ入力は３つの値を有し、０は、ある位置にブロック境界が存在しないことを示し、１は、ある位置にブロック境界が存在することを示し、１／２の値は、二次的境界の特徴が存在することを示す。二次的境界の特徴は、スケーリングによって不鮮明になった境界を含み、従って境界が１よりも大きな画素幅であることを示す。
【０１７６】
以下の手順では、これをどのように実行するかに関するさらなる詳細を示す。なお、ブロック境界マップは、手順の前に全てゼロに初期化することができ、処理の各ステップのデフォルト検索ウィンドウは±２画素である。この手順は、水平及び垂直の両方の輝度ブロック境界マップの場合と同じである。
【０１７７】
Ａ）最初に、ブロックサイズが０であるかどうかをチェックする。０であれば、ブロックノイズ境界が見つからず、境界マップは全てゼロのままとなる。
【０１７８】
Ｂ）最初の境界の位置を開始オフセット値に設定する。この位置の境界マップ値を最大値である１．０に設定する。これが、最初のピーク検索の基準にもなる。
【０１７９】
Ｃ）スケーリングによって生じる開始位置における「二倍幅ピーク」を探す。開始位置に隣接する位置のいずれかが開始位置の大きさよりも大きい場合、この隣接するブロック境界マップの位置の値を１．０に設定する。そうでない場合、開始位置に隣接する位置のいずれかが開始位置の大きさの１／１０よりも大きければ、ブロック境界マップの値を０．５に設定する。
【０１８０】
Ｄ）個々のブロック境界位置候補の周りのウィンドウ内のピークを探しながら、以下のように差分量データを調べる。
【０１８１】
基準に公称ブロックサイズを追加して、新たなピーク検索のためにウィンドウの中心位置を求める。
【０１８２】
検索ウィンドウ内の最大値（すなわちピーク）の位置を識別する。
【０１８３】
新たに識別されたピークの大きさが前の位置のピークの大きさの１／５を上回る場合、
【０１８４】
・このブロック境界マップ内の位置を１．０に設定する。
【０１８５】
・これを現在のピーク及び次の検索のための基準としてマーキングする。
【０１８６】
スケーリングによって生じる開始位置における「二倍幅ピーク」を探す。開始位置に隣接する位置のいずれかが開始位置の大きさの１／１０よりも大きい場合、ブロック境界マップの値を０．５に設定する。
【０１８７】
そうでない場合、新たに識別されたピークの大きさが前の位置のピーク値の１／２０を上回り、次に高い位置における大きさが新たなピークの大きさの４倍未満であれば（注：これにより、真のピークでなく検索ウィンドウの境界に存在するにすぎないピーク位置が排除される）、
【０１８８】
・ブロック境界位置配列内のこの位置を変更せずに、これを次の検索のための基準として設定する。
【０１８９】
そうでない場合、次の検索のための基準として前回の基準及び公称ブロックサイズを使用する。
【０１９０】
差分量ベクトルの終端に達するまで上記一連のステップを繰り返す。
【０１９１】
生成器４１２は、彩度のマップを生成することもできる。彩度ブロック境界マップを作成する手順は、輝度マップを作成する手順と類似する。違いは、輝度の代わりに彩度差分量データを使用し、彩度ブロック境界マップでは、彩度拡大の後に画像スケーリングを行う可能性により２つの別個のピークが可能になる点である。従って、以下の修正手順の例を使用することができる。
【０１９２】
Ａ）最初に、ブロックサイズが０であるかどうかをチェックする。０であれば、ブロックノイズ境界が見つからず、境界マップは全てゼロのままとなる。
【０１９３】
Ｂ）最初の境界の位置を開始オフセット値に設定することができる。この位置の境界マップ値を最大値である１．０に設定する。これが、最初のピーク検索の基準にもなる。
【０１９４】
Ｃ）スケーリングによって生じる開始位置における「二倍幅ピーク」を探す。開始位置に隣接する位置のいずれかが開始位置の大きさよりも大きい場合、この隣接するブロック境界マップの位置の値を１．０に設定する。そうでない場合、開始位置に隣接する位置のいずれかが開始位置の大きさの１／１０よりも大きければ、ブロック境界マップの値を０．５に設定する。
【０１９５】
Ｄ）個々のブロック境界位置候補の周りのウィンドウ内のピークを探しながら、以下のように差分量データを調べる。
【０１９６】
基準に公称ブロックサイズを追加して、新たなピーク検索のためにウィンドウの中心位置を求める。
【０１９７】
検索ウィンドウ内の最大値（すなわちピーク）の位置を識別する。
【０１９８】
新たに識別されたピークの大きさが前の位置のピークの大きさの１／５を上回る場合、
【０１９９】
・このブロック境界マップ内の位置を１．０に設定する。
【０２００】
・これを現在のピーク及び次の検索のための基準としてマーキングする。
【０２０１】
スケーリングによって生じる開始位置における「二倍幅ピーク」及び「二重分離ピーク」を探す。開始位置に直接隣接する位置のいずれかが開始位置の大きさの１／１０よりも大きい場合、ブロック境界マップの値を０．５に設定する。直接隣接する位置が有効値を有していない場合、境界マップ値を変更するための同じ基準を使用して中心から２画素離れた隣接位置をチェックする。
【０２０２】
・複数の二重ピークの選択を不適格とみなす。
【０２０３】
複数の分離したピークがある場合、２つのうちの大きい方を選択する。
【０２０４】
そうでない場合、分離したピークが左に、接続されたピークが右にあれば、大きい方を選択する。
【０２０５】
そうでない場合、分離したピークが右に、接続されたピークが左にあれば、大きい方を選択する。
【０２０６】
そうでない場合、新たに識別されたピークの大きさが前の位置のピーク値の１／２０を上回り、次に高い位置における大きさが新たなピークの大きさの４倍未満であれば（注：これにより、真のピークでなく検索ウィンドウの境界に存在するにすぎないピーク位置が排除される）、
【０２０７】
・ブロック境界位置配列内のこの位置を変更せずに、これを次の検索のための基準とし
て設定する。
【０２０８】
そうでない場合、次の検索のための基準として前の基準及び公称ブロックサイズを使用する。
【０２０９】
差分量ベクトルの終端に達するまで上記一連のステップを繰り返す。
【０２１０】
検出器４０４の１つの実施形態は、フィルタゲイン生成器４１４を含む。フィルタゲイン生成器４１４は、ファームウェア、ハードウェア、これらの組み合わせ、又はいずれかの適用可能な公知の又は便利な装置又はシステムにおいて、例えば機械上のコンピュータ可読媒体又はコンピュータ可読記憶媒体内で具体化されるソフトウェアとして実現することができる。本明細書で説明するこの及びその他のエンジンは、本明細書で暗示的に、明示的に又は本質的に説明する機能の少なくとも一部及び／又は同等の機能を実行できるあらゆる機械、製造物又は合成物を含むことが意図されている。
【０２１１】
フィルタゲイン生成器４１４は、ブロックノイズフィルタのフィルタゲイン値を算出し、決定し、生成することができるハードウェア構成要素及び／又はソフトウェアエージェントのいずれの組み合わせであってもよい。
【０２１２】
フィルタゲイン生成器４１４は、基準値から開始して、いくつかの計算した「修正子」に基づいて基準値を修正することによりフィルタゲインを算出することができる。これらの修正子は以下に列挙する因子に基づくものであり、これらを基準ゲインに加えて最終的なゲイン値を求めることができる。一般に、縦横のフィルタゲインに関して別個の修正子値を計算することができる。ゲイン計算における因子として、以下を使用することができる。
【０２１３】
・公称ゲインは１．０である。
【０２１４】
・ブロック境界強度（ＢＢＳ）によりゲインが増加する。
【０２１５】
・低い詳細度（合計した差分量）によりゲインが増加する。
【０２１６】
・ブロックサイズを大きいことによりゲインが増加する。
【０２１７】
・１．０未満のブロック境界強度によりゲインが急速に減少する。
【０２１８】
・ブロック境界強度とともに閾値を超える距離をカウントすることにより、ブロックノイズがさらに存在するかどうかを判定することができ、すなわち著しいブロックノイズが存在しないとみなされる場合、ゲインをゼロに設定することができる。
【０２１９】
修正子を全て計算したら、これらを基準ゲイン値と統一して水平及び垂直フィルタゲインを生成することができる。最初のステップは、ブロックノイズが存在しないことを示す条件を識別することである。これらの条件が存在しない場合、基準ゲイン値に様々なゲイン修正子を追加し、結果を上限及び下限（それぞれ２．３及び０）に限定する。その後、ゲイン修正子の効果によってゼロゲインとなる場合、及び修正子の総合効果の大部分が画像詳細修正子の大きさによって構成される場合のような特別な場合、フィルタゲインを１．０に設定する。このことは、画像の詳細度が高いこと自体によってフィルタゲインがゼロに強制されるという例を認識することを目的としている。
【０２２０】
水平及び垂直ゲインを計算したら、もう１つの特別な条件を探す。以下の条件が満たされる場合、水平及び垂直フィルタゲインをゼロに設定する。
【０２２１】
１）距離／オフセット法を介したブロックサイズの判定が水平及び垂直ともにゼロである。
【０２２２】
２）フィルタゲインの一方がゼロであり、又は両方とも非常に低い（この場合、低い＝０．２５）。
【０２２３】
検出器４０４の１つの実施形態は、エッジ勾配乗数生成器４１６を含む。エッジ勾配乗数生成器４１６は、ファームウェア、ハードウェア、これらの組み合わせ、又はいずれかの適用可能な公知の又は便利な装置又はシステムにおいて、例えば機械上のコンピュータ可読媒体又はコンピュータ可読記憶媒体内で具体化されるソフトウェアとして実現することができる。本明細書で説明するこの及びその他のエンジンは、本明細書で暗示的に、明示的に又は本質的に説明する機能の少なくとも一部及び／又は同等の機能を実行できるあらゆる機械、製造物又は合成物を含むことが意図されている。
【０２２４】
エッジ勾配乗数生成器４１６は、ブロックノイズフィルタのエッジ勾配乗数を算出し、決定し、及び／又は生成することができるハードウェア構成要素及び／又はソフトウェアエージェントのいずれの組み合わせであってもよく、これらの構成要素及び機能については図５の例をさらに参照しながら説明する。１つの実施形態では、フィルタゲイン生成器４１４及び／又はエッジ勾配乗数生成器が、フィルタ制御パラメータ生成器４２０の構成要素である。
【０２２５】
フィルタゲイン生成器４１６は、基準値から開始して、いくつかの計算した「修正子」に基づいて基準値を修正することによりフィルタゲインを算出することができる。これらの修正子は、例えば画像内の詳細のブロック強度及びレベルに基づいて決定することができ、これらを基準勾配乗数に加えて最終的な勾配乗数値が得られる。水平及び垂直フィルタゲインに関して別個の修正子値を計算する。勾配乗数の計算における因子として以下を使用することができる。
【０２２６】
・公称乗数は２．０である。
【０２２７】
・高いブロック境界強度により乗数が減少し、非常に低いブロック境界強度により乗数が増加する。
【０２２８】
・高い詳細度により乗数が増加する。
【０２２９】
修正子を全て計算したら、生成器４１６は、基準勾配乗数値を統一して水平及び垂直勾配乗数を生成することができる。基準勾配乗数値には２つの修正子を加えることができ、結果を下限である１．０に限定する。
【０２３０】
図５は、ブロックノイズフィルタ５５４内の構成要素の例を示すブロック図である。
【０２３１】
ブロックノイズの処理における次の段階は、ブロックノイズ境界をフィルタ処理することである。これを効果的に行うために、ブロックノイズフィルタを、画像内のブロックノイズの特性に基づいて適切に構成することができる。フィルタへの制御入力として、例えば、（図４の例のブロックノイズ検出器によって求められた）輝度及び／又は彩度境界マップ、垂直及び水平フィルタゲイン値、及び垂直及び水平エッジ強度乗数（エッジ勾配乗数など）が挙げられる。フィルタ入力マネージャ５０２は、フィルタ５５４へのこれらの入力を算出又は管理することができる。これらの後者の値は、例えば以下のような因子に基づいて自動的に決定することができる。
【０２３２】
・ブロック検出強度（ピーク差分量値）
【０２３３】
・ブロックサイズ
【０２３４】
・画像内の詳細のレベル（画像全体にわたる差分量値の正規化した合計）
【０２３５】
・閾値を超える大きさを有する距離の数。
【０２３６】
・フィルタ制御値を計算するためのプロトコルは、複数の画像タイプの分析から得られる経験的データに基づくことができる。
【０２３７】
フィルタ入力マネージャ５０２は、フィルタ５５４への以下の入力を算出又は管理することができる。
【０２３８】
水平輝度ブロック境界マップ：
【０２３９】
水平輝度ブロック境界位置のマップ。これは入力画像の幅の配列であり、入力は一次及び二次境界を示す。
【０２４０】
垂直輝度ブロック境界マップ：
【０２４１】
垂直輝度ブロック境界位置のマップ。これは入力画像の幅の配列であり、入力は一次及び二次境界を示す。
【０２４２】
水平彩度ブロック境界マップ：
【０２４３】
水平彩度ブロック境界位置のマップ。これは入力画像の幅の配列であり、入力は一次及び二次境界を示す。
【０２４４】
垂直彩度ブロック境界マップ：
【０２４５】
垂直彩度ブロック境界位置のマップ。これは入力画像の幅の配列であり、入力は一次及び二次境界を示す。
【０２４６】
水平フィルタゲイン：
【０２４７】
水平フィルタのゲイン値。ゲイン値は、水平フィルタ係数及びフィルタの幅の選択に影響を与える。
【０２４８】
垂直フィルタゲイン：
【０２４９】
垂直フィルタのゲイン値。ゲイン値は、垂直フィルタ係数及びフィルタの幅の選択に影響を与える。
【０２５０】
水平勾配乗数：
【０２５１】
水平勾配は、水平方向の画像特徴エッジにおけるフィルタ処理を抑制するために使用される。勾配乗数は、抑制を行う度合いに影響を与える。
【０２５２】
垂直勾配乗数：
【０２５３】
垂直勾配は、垂直方向の画像特徴エッジにおけるフィルタ処理を抑制するために使用される。勾配乗数は、抑制を行う度合いに影響を与える。
【０２５４】
ブロックノイズフィルタ５５４の１つの実施形態は、画像勾配生成器５０４を含む。画像勾配生成器５０４は、ファームウェア、ハードウェア、これらの組み合わせ、又はいずれかの適用可能な公知の又は便利な装置又はシステムにおいて、例えば機械上のコンピュータ可読媒体又はコンピュータ可読記憶媒体内で具体化されるソフトウェアとして実現することができる。本明細書で説明するこの及びその他のエンジンは、本明細書で暗示的に、明示的に又は本質的に説明する機能の少なくとも一部及び／又は同等の機能を実行できるあらゆる機械、製造物又は合成物を含むことが意図されている。
【０２５５】
画像勾配生成器５０４は、画像内の勾配を算出し、決定し、及び／又は生成することができるハードウェア構成要素及び／又はソフトウェアエージェントのいずれの組み合わせであってもよい。
【０２５６】
画像勾配は、画像内のオブジェクトの端部に沿ったアーチファクトを抑制するために使用することができる。勾配は、５×５ソーベルフィルタを使用して輝度画素データを用いて計算される。ソーベルフィルタは、例えば以下のように定義される。
【０２５７】
ＨｏｒＳｏｂｅｌＦｉｌｔｅｒ５×５＝［−１  ０  ０  ０  １
【０２５８】
−２  ０  ０  ０  ２
【０２５９】
−４  ０  ０  ０  ４
【０２６０】
−２  ０  ０  ０  ２
【０２６１】
−１  ０  ０  ０  １］；
【０２６２】
ＶｅｒｔＳｏｂｅｌＦｉｌｔｅｒ５×５＝［  １  ２  ４  ２  １
【０２６３】
０  ０  ０  ０  ０
【０２６４】
０  ０  ０  ０  ０
【０２６５】
０  ０  ０  ０  ０
【０２６６】
−１  −２  −４  −２  −１］；
【０２６７】
（なお、フィルタの出力は１０で除算することにより正規化される）
【０２６８】
最初に、輝度データに２次元ガウスフィルタを適用することができ、その後ソーベルフィルタを適用して垂直及び水平画像勾配を生成する。この結果の絶対値をとって垂直及び水平勾配の大きさを取り出すことができる。
【０２６９】
ブロックノイズフィルタ５５４の１つの実施形態は、垂直フィルタ５０６を含む。垂直フィルタ５０６は、ファームウェア、ハードウェア、これらの組み合わせ、又はいずれかの適用可能な公知の又は便利な装置又はシステムにおいて、例えば機械上のコンピュータ可読媒体又はコンピュータ可読記憶媒体内で具体化されるソフトウェアとして実現することができる。本明細書で説明するこの及びその他のエンジンは、本明細書で暗示的に、明示的に又は本質的に説明する機能の少なくとも一部及び／又は同等の機能を実行できるあらゆる機械、製造物又は合成物を含むことが意図されている。
【０２７０】
垂直フィルタ５０６は、縦寸法に沿って画像をフィルタ処理することができるハードウェア構成要素及び／又はソフトウェアエージェントのいずれの組み合わせであってもよい。
【０２７１】
垂直フィルタ５０６は、ブロック境界マップ、フィルタゲイン及び／又は勾配乗数入力値のうちの１つ又はそれ以上に基づいて画像を縦寸法に沿ってフィルタ処理することができる。このフィルタは、垂直ブロック境界マップにより示されるブロック境界位置におけるＹ、Ｃｂ及びＣｒの垂直差分を、境界に隣接するブロックの高さの一部にわたって分配する。
【０２７２】
フィルタ５０６は、垂直フィルタゲイン要素に基づいて垂直輝度フィルタの係数を決定することができる。輝度フィルタは、例えばブロック境界位置のそれぞれの側に反映される３つの係数で構成される。これ以外の数の係数も同様に使用することができる。係数を追加すると、より良い結果を生み出すことができる。以下の方程式は、どのようにしてフィルタ係数を計算できるかについての例を示している。
【０２７３】
フィルタは、輝度ブロック境界マップ内のピークを有する位置において適用することができる。境界マップ内の隣接位置が同じ非ゼロの振幅を有する場合、指数が最高の（又は最高に近い）ものを中心ピークの位置として選択することができる。
【０２７４】
１つの実施形態では、３つの輝度差分値が算出され、その後これらにフィルタ係数の組を各々乗じる。最初の差分値は、中心ピーク位置における隣接画素間の差分に基づいて求めることができる。残りの２つの差分値は、計算した最初の差分値、個々の隣接位置における隣接画素値間の差分、及び隣接位置のブロック境界マップの強度値に基づいて算出することができる。
【０２７５】
中心ブロック境界差分値は、中心位置の画素値と次に高い位置の画素値との間の差分である。隣接値は、まず個々の隣接位置の境界マップ値がゼロであるかどうかに基づいて求めることができる。ゼロである場合、隣接差分値もゼロとなる。そうでない場合、隣接値は、中心差分値及び隣接画素差分値の大きさの最小値（又は最小に近い値）に隣接画素差分値の符号（±１）を乗じたものである。
【０２７６】
中心画素が位置Ｎにある場合、３つの差分値の各々をどのように計算するかについての例が以下の方程式によって記述される（この場合、「Ｄｉｆｆ１」は中心位置にあるが、「Ｄｉｆｆ０」及び「Ｄｉｆｆ２」は、それぞれ中心の前後の位置にある）。
【０２７７】
その後、計算したフィルタ係数及び個々の画素位置のブロック境界差分値を使用して、画像に垂直フィルタ５０６を適用することができる。ブロック境界ピーク位置から±４画素内の近くに位置し、境界に対して垂直方向にある個々の画素については、垂直フィルタ５０６がフィルタの効果を算出し、フィルタ計算に基づいて画素値を修正する。以下の方程式は、Ｎがブロック境界（２画素間に位置すると仮定）の直前（真上）の画素位置にあると仮定した場合、いかにしてフィルタ計算を行うかについての例を示している。この計算は、境界と直交する画素の１つの列に関するものである。
【０２７８】
１つの実施形態では、垂直フィルタ５０６が、例えば垂直フィルタゲイン係数に基づいて垂直彩度の係数を算出する。通常、彩度の方が輝度よりも帯域幅が小さくブロックサイズが大きいので、彩度の方が強くフィルタ処理される。彩度フィルタは、ブロック境界位置のそれぞれの側に反映される最大４つの係数で構成することができる。これ以外の数の係数も同様に使用することができる。係数を追加すると、より良い結果を生み出すことができる。通常、彩度ブロックの方が輝度ブロックよりも大きく、従って効果的に取り除くにはより大きなフィルタが必要であるため、彩度フィルタの係数の数の方が多い。また、彩度の不鮮明なブロック境界は、輝度のように１画素ではなく２画素に及ぶこともある。以下の方程式は、いかにしてフィルタ係数を計算できるかについての例を記述するものである。
【０２７９】
垂直フィルタ５０６は、輝度ブロック境界マップ内のピークを有する位置において適用することができる。境界マップ内の隣接位置が同じ非ゼロの振幅を有する場合、指数が最高のものが中心ピークの位置として選択される。彩度ブロック境界マップは、Ｃｂ及びＣｒの両方に使用され、フィルタはこれらの両方に全く同様に実施される。
【０２８０】
彩度の差分値は、輝度に３つの差分値を使用するのに対して５つの差分値を使用する点を除き、輝度の場合と同様に算出される。通常使用する差分値の数が多い理由は２つある。
【０２８１】
１）通常、彩度ブロックの方が輝度ブロックよりも大きいので、彩度フィルタがまたがる画素位置の数の方が多い。
【０２８２】
２）  彩度フィルタにより、接していない隣接ブロックの境界値が、アップサンプリングされた彩度のスケーリングに対応できるようになる。
【０２８３】
中心画素が位置Ｎにある場合、以下の方程式により、５つの差分値の各々をどのように計算するかについての例が記述される（この場合、「Ｄｉｆｆ２」が中心位置にあり、他の「Ｄｉｆｆ」の値が中心に隣接する位置にある）。
【０２８４】
その後、計算したフィルタ係数及び個々の画素位置のブロック境界差分値を使用してフィルタ自体を画像に適用する。ブロック境界ピーク位置から±６画素内の近くに位置し、境界に対して垂直方向にある個々の画素については、垂直フィルタ５０６がフィルタの効果を算出し、フィルタ計算に基づいて画素値を修正する。
【０２８５】
以下の方程式は、Ｎがブロック境界（２画素間に位置すると仮定）の直前（真上）の画素位置であると仮定した場合、いかにしてフィルタ計算を行うかについての例を示している。この計算は、境界に沿った１つの列に関するものである。２つの別個の種類のフィルタ計算が存在し、１つは分離したピークがブロック境界マップ内に存在しない（すなわち、「隣接」値が中央ピークから１画素しか離れていない位置にあり）場合に使用され、もう１つは少なくとも１つの分離したピークが存在する（すなわち、「隣接」値が中央ピークから２画素離れた位置にある）場合に使用される。
【０２８６】
分離していない２つのピークが存在する場合、以下の方程式を使用する。
分離した２つのピークが存在する場合、以下の方程式を使用する。
【０２８７】
ブロックノイズフィルタ５５４の１つの実施形態は、水平フィルタ５１０を含む。水平フィルタ５１０は、ファームウェア、ハードウェア、これらの組み合わせ、又はいずれかの適用可能な公知の又は便利な装置又はシステムにおいて、例えば機械上のコンピュータ可読媒体又はコンピュータ可読記憶媒体内で具体化されるソフトウェアとして実現することができる。本明細書で説明するこの及びその他のエンジンは、本明細書で暗示的に、明示的に又は本質的に説明する機能の少なくとも一部及び／又は同等の機能を実行できるあらゆる機械、製造物又は合成物を含むことが意図されている。
【０２８８】
水平フィルタ５１０は、横寸法に沿って画像をフィルタ処理することができるハードウェア構成要素及び／又はソフトウェアエージェントのいずれの組み合わせであってもよい。
【０２８９】
１つの実施形態では、水平フィルタ５１０が、水平ブロック境界マップ、フィルタゲイン、及び勾配乗数の入力値に基づいて、垂直フィルタ処理した後の画像を横寸法に沿ってフィルタ処理する。このフィルタは、水平ブロック境界マップによって指定されるブロック境界位置におけるＹ、Ｃｂ及びＣｒの水平差分を、境界に隣接するブロックの幅の一部にわたって分配する。
【０２９０】
水平フィルタ５１０は、オリジナル画像ではなく垂直フィルタの出力に適用され、水平ブロック境界マップによって指定される位置において水平方向に適用されるという点を除き、垂直フィルタと同様に実施することができる。
【０２９１】
個々の水平ブロック境界位置のフィルタ処理が完了した後で、垂直フィルタ処理した画像とオリジナル画像とを、例えばエッジブレンダ５０８により垂直勾配の強度値に基づいて混合することができる。この出力を水平フィルタへ送ることができる。ブレンダ５０８は、垂直フィルタ処理した画像と水平フィルタ処理した画像とを、入力画像の水平勾配を使用して混合することができる。１つの実施形態では、エッジブレンダ５０８が、水平画像勾配の大きさに水平勾配乗数を乗じたものに基づいてブレンド係数を生成する。結果として得られるブレンドマップ値が１を超えた場合、１に切り下げることができる。その後、ブレンドマップ及び混合した画像を、垂直フィルタ処理した画像に使用する方法と同様の方法で算出することができる。
【０２９２】
ブロックノイズフィルタ５５４の１つの実施形態は、エッジスムーザ５１２を含む。エッジスムーザ５１２は、ファームウェア、ハードウェア、これらの組み合わせ、又はいずれかの適用可能な公知の又は便利な装置又はシステムにおいて、例えば機械上のコンピュータ可読媒体又はコンピュータ可読記憶媒体内で具体化されるソフトウェアとして実現することができる。本明細書で説明するこの及びその他のエンジンは、本明細書で暗示的に、明示的に又は本質的に説明する機能の少なくとも一部及び／又は同等の機能を実行できるあらゆる機械、製造物又は合成物を含むことが意図されている。
【０２９３】
エッジスムーザ５１２は、ブロック境界を除去して及び／又はアーチファクトをフィルタ処理することができるハードウェア構成要素及び／又はソフトウェアエージェントのいずれの組み合わせであってもよい。エッジスムーザ５１２は、２００８年９月４日に出願された「画像内のエッジを滑らかにして不揃いを解消するためのシステム、方法及び装置」という名称の同時係属中米国特許出願第１２／２０４，７６０号に記載されるように実現することができ、該特許内容は引用により本明細書に組み入れられる。
【０２９４】
１つの実施形態では、エッジスムーザ５１２が、結果として得られた画像にエッジスムージングを行ってブロック境界を除去し、画像内の物体端部に沿ったアーチファクトをフィルタ処理する。あらゆる好適なエッジスムージングフィルタを使用することができる。フィルタのカーネルサイズは、ブロックフィルタのゲイン値に基づいて決定することができる。１つの実施形態では、垂直及び水平フィルタゲイン値がゼロである場合、エッジスムージングステップが省略される。両方のゲイン値が２未満の場合、小さなフィルタカーネルを使用する。そうでない場合、大きなエッジスムージングフィルタカーネルを使用する。
【０２９５】
図１７〜図１８は、スケーリングの影響があるノイズ境界及び影響がないノイズ境界にブロックノイズフィルタを適用した効果の例を示している。
【０２９６】
ブロックノイズフィルタは、境界に隣接するとともにこれに垂直な画素の中の隣接ブロック間の境界にわたって差分を分配することによりブロックノイズを低減させる。フィルタ係数は、フィルタへの制御入力であるフィルタゲイン値に基づく。フィルタの位置は、入力ブロック境界マップによって決定され、ブロック境界は、２つの画素位置間に位置するように指定される。
【０２９７】
フィルタの効果の例を図１７の例に示す。この図は、「画素０」と「画素１」の間に位置する仮想ブロック境界にわたるビデオ信号の大きさを示すものであり、左ブロックのレベルは０であり、右ブロックは１である。プロット内の赤い線は、元々の事前フィルタ処理後の信号である。フィルタにより、ブロック境界に隣接する画素間の左右のブロック（すなわち、元々の信号における０から１への大きな段差）間の差が広がる。青い線は、フィルタ処理した結果である。
【０２９８】
フィルタは、ブロック境界に対するスケーリングの影響を処理することもできる。このことを図１８の例に示しており、ここでは２回スケーリングされた信号を示している。この例は、最初に４：２：０から４：４：４にアップサンプリングして、その後異なる解像度にスケーリングした彩度信号をシミュレーションしたものである。これにより、ブロック境界近くの画素内に２画素幅の棚（すなわち、図の赤線内の画素−１及び画素０）が生じる。この結果、画素値がブロック境界を左から右へ移行する際に、画素値内に左側の画素−２と画素−１の間の小さな段差、及び右側の画素０と画素１の間の大きな主な段差という２つの段差が存在する。元々の信号を赤色で示し、最終的なフィルタ処理した結果を青色で示している。フィルタ全体に対する大小の段差の影響を茶色及び黄色でそれぞれ示している。２つの段差の応答の合計が全体的なフィルタ応答となる。
【０２９９】
フィルタを適用した後で、フィルタ処理した画像及びフィルタ処理していない画像にエッジブレンディング操作を行うことができ、ブレンディングの程度は勾配乗数の制御入力によって決まる。場合によっては、エッジスムージング機能を適用してブロックノイズを除去し、画像内の物体端部に沿ったアーチファクトをフィルタ処理する。
【０３００】
図１９は、ブロックノイズ検出のための処理例のフロー図である。
【０３０１】
処理１９０２において、差分量（ｄＭａｇ）を算出する。処理１９０４において、高レベルのｄＭａｇ値を抑制する。処理１９０６において、ｄＭａｇから中央値を取り除く。処理１９０８において、物体端部周囲のｄＭａｇ値を抑制する。処理１９１０において、行及び列にわたるｄＭａｇの平均を算出し、この平均を最適化して中央値を減じる。処理１９１２において、ｄＭａｇｓの合計を算出し、場合によっては正規化する。処理１９１４は、距離／オフセット合計からのピークを処理ブロック１９１２で計算した固定オフセットと統合するものである。次に処理ブロック１９１８において、これらの統合したピークの距離／オフセット合計を調べて、距離サイズごとの異なるオフセット値のピーク間の間隔を求める。次に処理ブロック１９２０において、このピーク間隔を、固定距離と距離オフセットとの合計に基づいてブロックサイズ及びオフセットを求める基準として使用する。処理１９１４、１９１８及び１９２０と平行して、処理ブロック１９１６において、可変オフセットを用いて算出した正規化した距離／オフセット合計を調べてブロックサイズを求める。処理１９２２において、処理１９２０及び１９１６で２つの異なる方法で求めたブロックサイズ及びオフセット値を調べて、最終的なブロックサイズ及びオフセットを選択する。
【０３０２】
図２０は、ブロックノイズフィルタの制御パラメータを選択するための処理例のフロー図である。
【０３０３】
処理２００２において、ブロックノイズフィルタゲインを求める。処理２００４において、エッジ勾配乗数を求める。処理２００６において、ブロックノイズをフィルタ処理する。
【０３０４】
図２１は、画像にブロックノイズフィルタを適用するフロー図である。
【０３０５】
処理２１０２において、画像内のブロックノイズ特性に基づいてブロックノイズフィルタのゲイン設定を選択する。処理２１０４において、垂直ゲイン係数を使用して垂直輝度フィルタの係数を算出する。
【０３０６】
処理２１０６において、垂直ゲイン係数を使用して垂直彩度フィルタの係数を算出する。処理２１０８において、垂直フィルタ及び彩度フィルタの係数を使用して縦寸法に沿って画像をフィルタ処理し、垂直フィルタ処理した画像を生成するとともに、垂直フィルタ処理した画像とオリジナル画像を混合することにより混合画像を生成する。
【０３０７】
処理２１１０において、水平ゲイン係数を使用して水平彩度フィルタの係数を算出する。処理２１１２において、水平ゲイン係数を使用して水平輝度フィルタの係数を算出する。処理２１１４において、垂直フィルタ処理した画像を、水平フィルタ及び彩度フィルタの係数を使用して横寸法に沿ってフィルタ処理し、水平フィルタ処理した画像を生成する。処理２１１６において、垂直フィルタ処理した画像と水平フィルタ処理した画像とを混合することにより混合画像を生成する。
【０３０８】
図２２は、本明細書で説明する方法のいずれか１つ又はそれ以上を機械に実施させるための命令セットを実行できる例示的なコンピュータシステムの形の機械の図形表示である。
【０３０９】
図２２の例では、コンピュータシステム２２００が、プロセッサ、メモリ、不揮発性メモリ、及びインターフェイス装置を含む。様々な一般的な構成要素（キャッシュメモリなど）については、説明を簡単にするために省略する。コンピュータシステム９００は、本明細書で説明する構成要素のいずれかを実装できるハードウェア装置を示すものである。コンピュータシステム２２００は、いずれの適用可能な公知の又は便利な種類であってもよい。コンピュータシステム２２００の構成要素は、バス又は他の何らかの公知の又は便利な装置を介してともに結合することができる。
【０３１０】
プロセッサは、例えばＩｎｔｅｌ  Ｐｅｎｔｉｕｍ（登録商標）マイクロプロセッサ又はＭｏｔｏｒｏｌａパワーＰＣマイクロプロセッサなどの従来のマイクロプロセッサとすることができる。当業者であれば、「機械可読（記憶）媒体」又は「コンピュータ可読（記憶）媒体」という用語が、プロセッサがアクセスできるあらゆる種類の装置を含むことを認識するであろう。
【０３１１】
メモリは、バスなどによってプロセッサに結合される。メモリは、限定ではなく一例として、ダイナミックラム（ＤＲＡＭ）及びスタティックＲＡＭ（ＳＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）を含むことができる。メモリは、ローカルメモリ、遠隔メモリ、又は分散メモリであってもよい。
【０３１２】
バスは、プロセッサを不揮発性メモリ及びドライブユニットにも結合する。多くの場合、不揮発性メモリは、磁気フロッピ、又はＣＤ―ＲＯＭ、ＥＰＲＯＭ又はＥＥＰＲＯＭなどの、ハードディスク、光磁気ディスク、光ディスク、読み出し専用メモリ（ＲＯＭ）、磁気又は光学カード、又は多量のデータのための別の形の記憶装置である。多くの場合、このデータの一部は、コンピュータ２２００内のソフトウェアの実行中に、直接メモリアクセス処理によってメモリに書き込まれる。不揮発性記憶装置は、ローカル不揮発性記憶装置、遠隔不揮発性記憶装置、又は分散型不揮発性記憶装置とすることができる。システムは、メモリ内の全ての利用可能な適用可能データで構築することができるので、不揮発性メモリは任意である。典型的なコンピュータシステムは、通常、少なくともプロセッサ、メモリ、及びメモリをプロセッサに結合する装置（バスなど）を含む。
【０３１３】
通常、ソフトウェアは、不揮発性メモリ及び／又はドライブユニットに記憶される。実際には、大きなプログラムの場合、プログラム全体をメモリに記憶することが不可能なこともある。にもかかわらず、必要な場合には、ソフトウェアが実行のために処理に適したコンピュータ可読の場所に移動され、本明細書では、例示を目的としてこの場所のことをメモリという。ソフトウェアを実行のためにメモリに移動するときでさえ、通常、プロセッサはハードウェアレジスタを活用して、ソフトウェアに関連する値、及び理想的には実行速度を上げるように機能するローカルキャッシュを記憶する。本明細書で使用するソフトウェアプログラムは、ソフトウェアプログラムが「コンピュータ可読媒体内で実施される」と言う場合、いずれかの公知の又は便利な場所（不揮発性記憶装置からハードウェアレジスタまで）に記憶されることが想定されている。プロセッサが読み込み可能なレジスタに、プログラムに関連する少なくとも１つの値が記憶される場合、プロセッサは、「プログラムを実行するように構成されている」とみなされる。
【０３１４】
バスは、プロセッサをネットワークインターフェイス装置にも結合する。インターフェイスは、モデム又はネットワークインターフェイスの一方は両方を含むことができる。モデム又はネットワークインターフェイスは、コンピュータシステム２２００の一部と見なすことができる。インターフェイスは、アナログモデム、ｉｓｄｎモデム、ケーブルモデム、トークンリングインターフェイス、衛星通信インターフェイス（「ダイレクトＰＣ」など）、又はコンピュータシステムを他のコンピュータシステムに結合するためのその他のインターフェイスを含むことができる。インターフェイス２０８は、１又はそれ以上の入力及び／又は出力装置を含むことができる。Ｉ／Ｏ装置は、限定ではなく一例として、キーボード、マウス又はその他のポインティングデバイス、ディスクドライブ、プリンタ、スキャナ、及びディスプレイ装置を含むその他の入力及び／又は出力装置を含むことができる。ディスプレイ装置は、限定ではなく一例として、ブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、又は他の何らかの適用可能な公知の又は便利なディスプレイ装置を含むことができる。説明を簡単にするために、インターフェイス内には、図２２の例には示していないいずれかの装置のコントローラが存在することが想定される。
【０３１５】
動作中は、コンピュータシステム９００を、ディスクオペレーティングシステムなどのファイル管理システムを含むオペレーティングシステムソフトウェアによって制御することができる。関連するファイル管理システムソフトウェアを含むオペレーティングシステムソフトウェアの一例として、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ社製のＷｉｎｄｏｗｓ（登録商標）として知られているオペレーティングシステムのファミリ、及びこれらの関連するファイル管理システムがある。この関連するファイル管理システムソフトウェアを含むオペレーティングシステムソフトウェアの別の例には、Ｌｉｎｕｘ（登録商標）オペレーティングシステム及びこの関連するファイル管理システムがある。通常、ファイル管理システムは、不揮発性メモリ及び／又はドライブユニット内に記憶され、オペレーティングシステムが必要とする様々な行為をプロセッサに実行させてデータを入出力するとともに、ファイルを不揮発性メモリ及び／又はドライブユニットに記憶することを含めてメモリにデータを記憶する。
【０３１６】
詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットにおける演算のアルゴリズム及び記号表現の観点から示すことができる。これらのアルゴリズムによる記述及び表現は、データ処理における当業者が自らの研究内容を他の当業者に最も効果的に伝えるために使用する手段である。本明細書では、及び一般的に、アルゴリズムとは、望ましい結果をもたらす首尾一貫した一連の演算であると考えられる。これらの演算は、物理量の物理的操作を必要とするものである。必ずしもそうではないが、通常これらの量は、記憶、転送、合成、比較、及び別様に操作できる電気又は磁気信号の形をとる。主に共通使用という理由で、時にはこれらの信号をビット、値、要素、記号、文字、用語、番号などと呼ぶことが便利であることが分かっている。
【０３１７】
しかしながら、これらの及び同様の用語は、全て適当な物理量に関連付けられるべきものであり、またこれらの量に与えられた便利な表記に過ぎないことに留意されたい。以下の説明から明らかなように、特に別途述べていない限り、本発明全体を通じて「ｐｒｏｃｅｓｓｉｎｇ（処理する）」又は「ｃｏｍｐｕｔｉｎｇ（算出する）」又は「ｃａｌｃｕｌａｔｉｎｇ（計算する）」又は「ｄｅｔｅｒｍｉｎｉｎｇ（決定する）」又は「ｄｉｓｐｌａｙｉｎｇ（表示する）」などの用語を利用した説明は、コンピュータシステムのレジスタ及びメモリ内の物理（電子）量として表されるデータを操作し、コンピュータシステムのメモリ、レジスタ、又はその他のこのような情報記憶装置、送信又は表示装置内の物理量として同様に表される他のデータに変換するコンピュータシステム又は同様の電子コンピュータ装置の動作及び処理を意味するものである。
【０３１８】
本明細書で示すアルゴリズム及び表示は、本質的にいずれかの特定のコンピュータ又はその他の装置に関連するものではない。本明細書の教示に従うプログラムとともに様々な汎用システムを使用することができ、或いはいくつかの実施形態の方法を実行するために、より特殊化した装置を構成することが便利であると証明することができる。以下の説明から様々なこれらのシステムに必要な構造が明らかとなるであろう。また、いずれかの特定のプログラミング言語に関連して技術を説明しているわけではなく、従って様々なプログラミング言語を使用して様々な実施形態を実施することができる。
【０３１９】
代替の実施形態では、機械がスタンドアロン装置として動作し、又は他の機械に接続する（例えば、ネットワーク化する）ことができる。ネットワーク化した展開では、この機械は、クライアント−サーバのネットワーク環境ではサーバ又はクライアントマシンとして、又はピアツーピア（又は分散型）ネットワーク環境ではピアマシンとして動作することができる。
【０３２０】
この機械は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、ラップトップコンピュータ、セットトップボックス（ＳＴＢ）、携帯情報端末（ＰＤＡ）、携帯電話、ｉＰｈｏｎｅ、Ｂｌａｃｋｂｅｒｒｙ、プロセッサ、電話、ウェブ機器、ネットワークルータ、スイッチ又はブリッジ、又はこの機械が取るべき行動を指定する（順次的な又はそれ以外の）命令セットを実行できるいずれの機械であってもよい。
【０３２１】
例示的な実施形態では、機械可読媒体又は機械可読記憶媒体を単一の媒体として示しているが、「機械可読媒体」及び「機械可読記憶媒体」という用語は、１又はそれ以上の命令セットを記憶する単一の媒体又は複数の媒体（集中型又は分散型データベース及び／又は関連するキャッシュ及びサーバなど）を含むと理解すべきである。この「機械可読媒体」及び「機械可読記憶媒体」という用語はまた、機械が実行するための命令セットを記憶し、コード化し、又は伝達することができ、本明細書で開示した技術及び技術革新の方法のいずれか１つ又はそれ以上を機械に実行させるいずれかの媒体を含むと理解すべきである。
【０３２２】
一般に、本開示の実施形態を実施するために実行されるルーチンは、オペレーティングシステム又は特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、又は「コンピュータプログラム」と呼ぶ一連の命令の一部として実現することができる。通常、コンピュータプログラムは、コンピュータ内の様々なメモリ及び記憶装置に様々な時点で設定され、コンピュータ内の１又はそれ以上の処理装置又はプロセッサによって読み込まれて実行された場合、本開示の様々な態様に関する要素を実行するようにコンピュータを動作させる１又はそれ以上の命令を含む。
【０３２３】
さらに、実施形態については、完全に機能するコンピュータ及びコンピュータシステムを背景として説明したが、当業者であれば、様々な実施形態を様々な形のプログラム製品として販売することができ、また実際に販売を行うために、特定の種類の機械又はコンピュータ可読媒体に関係なく本開示が等しく適用されることを認識するであろう。
【０３２４】
機械可読記憶媒体、機械可読媒体、又はコンピュータ可読（記憶）媒体のさらなる例として、以下に限定されるわけではないが、とりわけ揮発性及び不揮発性記憶装置、フロッピ及びその他のリムーバブルディスク、ハードディスクドライブ、（コンパクトディスク型読み出し専用メモリ（ＣＤ―ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）などの）光ディスクなどの記録可能型媒体、及びデジタル及びアナログ通信リンクなどの送信型媒体が挙げられる。
【０３２５】
文脈上明確に別の意味に解す場合を除き、説明及び特許請求の範囲を通じて、「備える（ｃｏｍｐｒｉｓｅ）」、「備えている（ｃｏｍｐｒｉｓｉｎｇ）」という単語、及び同様の単語は、排他的又は網羅的な意味ではなく包括的な意味で、すなわち「含むけれども限定はされない」という意味で解釈すべきである。本明細書で使用する「接続された（ｃｏｎｎｅｃｔｅｄ）」、「結合された（ｃｏｕｐｌｅｄ）」という用語、又はこれらのあらゆる変形は、２又はそれ以上の要素間の直接的又は間接的ないずれかの接続又は結合を意味し、要素間の接続の結合は、物理的なもの、論理的なもの、又はこれらの組み合わせとすることができる。また、「本明細書において（ｈｅｒｅｉｎ）」、「上記で（ａｂｏｖｅ）」、「以下で（ｂｅｌｏｗ）」という単語、及び同様の趣旨の単語は、本出願において使用する場合、総じて本出願のことを意味し、本出願のいずれかの特定の部分を意味するものではない。状況によっては、上記の詳細な説明において単数形又は複数形を使用する単語が、それぞれ複数又は単数を含むことがある。２又はそれ以上の項目のリストに関する「又は（ｏｒ）」という単語は、リスト内の項目のいずれか、リスト内の項目全て、及びリスト内の項目のいずれかの組み合わせという単語の解釈を全て含む。
【０３２６】
上記の本開示の実施形態についての詳細な説明は網羅的なものではなく、又は本教示を上記で開示した形に限定するものでもない。上記では、例示を目的として本開示の特定の実施形態及び例について説明しているが、当業者であれば理解するであろうように、本開示の範囲内で様々な同等の修正が可能である。例えば、処理又はブロックを所定の順序で示しているが、代替の実施形態では、ステップを有するルーチンを異なる順序で実施し、又は異なる順序のブロックを有するシステムを使用することができ、いくつかの処理又はブロックを削除、移動、追加、細分化、結合、及び／又は修正して代替例又は副結合を提供することができる。これらの処理又はブロックの各々は、様々な異なる方法で実施することができる。また、場合によって処理又はブロックが連続して実行されるように示しているが、代わりにこれらの処理又はブロックを並行して、又は異なる時間に実行することもできる。さらに、本明細書で示すあらゆる特定の数字は一例にすぎず、代替の実施構成では異なる値又は範囲を使用することができる。
【０３２７】
本明細書で提示する本開示の教示は、上述したシステムに限らず他のシステムにも適用することができる。上述した様々な実施形態の要素及び行為を組み合わせてさらなる実施形態を提供することができる。
【０３２８】
上述したあらゆる特許及び出願及びその他の引用文献は、添付の出願書類にリストできるあらゆるものを含め、引用により本明細書に組み入れられる。必要であれば、本開示の態様を、上述した様々な引用文献のシステム、機能及び概念を採用してさらに別の本開示の実施形態を提供するように修正することができる。
【０３２９】
上記の詳細な説明に照らして、本開示にこれらの及びその他の変更を行うことができる。上記の説明では本開示のいくつかの実施形態について説明し、また考えられる最良の形態について説明しているが、これらが本文中でいかに詳細に見えても、様々な方法で教示を実践することができる。システムの詳細は、この実施構成の詳細において大幅に変更することができるが、それでもなお本明細書で開示する主題に含まれる。上述したように、本開示のいくつかの特徴又は態様を説明する際に使用した特定の用語を、この用語が関連する本開示のいずれかの特定の特性、特徴又は態様に制限されるように本明細書で定義し直されていることを意味するものであると理解すべきではない。一般に、以下の特許請求の範囲で使用する用語は、上記の詳細な説明の項で明確に定義していない限り、本開示を本明細書で開示する特定の実施形態に限定するものであると解釈すべきではない。従って、本開示の実際の範囲は、開示した実施形態のみならず、特許請求の範囲による開示を実践又は実施する全ての同等の方法も含むものである。
以下、参考形態の例を付記する。
１．
画像内のブロックノイズを検出する方法であって、
前記画像内の隣接する画素の画素値の差分量を算出するステップと、
前記画像内の特徴によって生じた前記差分量から差分量の組を排除するステップと、
前記画像にメジアンフィルタを適用して出力を生成するステップと、
前記差分量から前記出力を減じるステップと、
前記画像内のエッジ検出を行ってエッジ画素位置を検出するステップと、
を含むことを特徴とする方法。
２．
前記差分量が、横に隣接する画素の水平差分量及び縦に隣接する画素の垂直差分量を含み、
前記水平差分量を垂直方向に平均化して、前記画像の幅の前記水平差分量の平均値の第１のベクトルを生成するステップと、
前記垂直差分量を水平方向に平均化して、前記画像の高さの前記垂直差分量の平均値の第２のベクトルを生成するステップと、
をさらに含むことを特徴とする１．に記載の方法。
３．
前記第１のベクトルを前記画像の前記幅に沿った画素位置と対照させてグラフにプロットするステップをさらに含む、
ことを特徴とする２．に記載の方法。
４．
前記第２のベクトルを前記画像の前記高さに沿った画素位置と対照させてグラフにプロットするステップをさらに含む、
ことを特徴とする２．に記載の方法。
５．
前記垂直差分量の前記平均値又は前記水平差分量の前記平均値からＤＣレベルを除去するステップをさらに含む、
ことを特徴とする２．に記載の方法。
６．
前記ＤＣレベルが、前記平均値にメジアンフィルタを適用し、この結果を前記平均値から減じることによって除去される、
ことを特徴とする５．に記載の方法。
７．
前記第１及び第２のベクトルの値を前記画像の前記エッジ近くに抑制するステップをさらに含む、
ことを特徴とする２．に記載の方法。
８．
１組の距離サイズ候補及び１組のオフセット候補について前記差分量の正規化した合計を求めるステップと、
前記正規化した合計の最大値を使用して、前記ブロックノイズの距離サイズ及びオフセットを求めるステップと、
をさらに含むことを特徴とする２．に記載の方法。
９．
前記距離サイズ及びオフセットを使用して、公称ブロックサイズ及び開始境界ブロック位置を求めるステップをさらに含む、
ことを特徴とする８．に記載の方法。
１０．
３つの正規化した前記差分量の合計を求めるステップをさらに含み、
前記３つの正規化した合計の第１の合計では、公称位置及び該公称位置−１を使用して合計値を算出し、該合計値のうちの大きい方をもたらす前記位置を選択し、
前記３つの正規化した合計の第２の合計では、公称位置及び該公称位置＋１を使用して合計値を算出し、該合計値のうちの大きい方をもたらす前記位置を選択し、
前記３つの正規化した合計の第３の合計では、前記公称位置を使用して合計値を算出し、前記公称位置を選択する、
ことを特徴とする８．に記載の方法。
１１．
最大限に正規化した差分量の合計を生成する距離サイズ候補及びオフセット値を識別するステップと、
前記最大限に正規化した合計を、前記距離サイズ候補の他の２つのオフセット値に関して算出した合計と比較して、前記ブロックノイズのブロックサイズを求めるとともに、前記公称ブロックサイズ及び前記開始境界位置を使用して最終的なブロックサイズ及びオフセット値を選択するステップと、
をさらに含むことを特徴とする１０．に記載の方法。
１２．
次の境界ブロック位置を識別するステップをさらに含み、
前記次の境界ブロック位置が、
前記開始ブロック位置を前記公称ブロックサイズにより増分することと、
前記次の境界ブロック位置の周辺のウィンドウ内の最大又は最大に近い差分量値の位置を識別することと、
前記最大又は最大に近い値の前記位置を前記次のブロック境界位置として選択することと、
によって求められる、
ことを特徴とする９．に記載の方法。
１３．
複数の次の境界ブロック位置を使用してブロック境界マップを生成するステップをさらに含む、
ことを特徴とする１２．に記載の方法。
１４．
前記差分量を使用して前記画像がスケーリングされているかどうかを判定するステップをさらに含む、
ことを特徴とする１．に記載の方法。
１５．
前記横及び縦に隣接する画素が１画素差である、
ことを特徴とする１．に記載の方法。
１６．
閾値以上の前記差分量の組を識別し、該差分量の組を前記閾値に設定することにより、前記差分量の組を減衰させるステップをさらに含む、
ことを特徴とする１．に記載の方法。
１７．
前記メジアンフィルタの前記出力を前記差分量から減じるステップが、ゼロ未満の値をゼロに切り上げるステップをさらに含む、
ことを特徴とする１．に記載の方法。
１８．
前記エッジ検出がソーベルフィルタを使用して行われる、
ことを特徴とする１．に記載の方法。
１９．
前記ソーベルフィルタが３×３である、
ことを特徴とする１８．に記載の方法。
２０．
前記エッジ画素位置における前記エッジ差分量を抑制するステップが、対応する勾配の大きさが勾配閾値以上の前記エッジ画素位置の位置における前記エッジ差分量をゼロに設定するステップをさらに含む、
ことを特徴とする２．に記載の方法。
２１．
前記差分量が、輝度及び彩度に関して算出される、
ことを特徴とする２．に記載の方法。
２２．
前記彩度に関して算出した前記差分量を使用して彩度ブロック境界マップを生成し、前記輝度に関して算出した前記差分量を使用して輝度ブロック境界マップを生成するステップをさらに含む、
ことを特徴とする２１．に記載の方法。
２３．
正規化した合計を使用して前記ブロックノイズのノイズ特性の組を求め、差分量データを使用して前記画像の画像特性の組を求めるステップをさらに含む、
ことを特徴とする８．に記載の方法。
２４．
前記ノイズ特性の組が、ブロックノイズの強度及びブロックサイズを含み、前記画像特性の組が、前記画像内の詳細量を含む、
ことを特徴とする２３．に記載の方法。
２５．
前記ノイズ特性及び画像特性の組を使用してブロックノイズフィルタのゲイン値を求めるステップをさらに含む、
ことを特徴とする２３．に記載の方法。
２６．
ブロックノイズフィルタを、画像内のブロックノイズをフィルタ処理するように構成する方法であって、
横に隣接する画素の水平差分量及び縦に隣接する画素の垂直差分量を含む、前記画像内の隣接する画素の画素値の差分量を算出するステップと、
前記差分量の正規化した合計を使用して前記ブロックノイズのノイズ特性の組を求めるステップと、
差分量データを使用して前記画像の画像特性の組を求めるステップと、
前記ノイズ特性及び画像特性の組を使用して前記ブロックノイズフィルタへの入力を構成するステップと、
を含むことを特徴とする方法。
２７．
前記ブロックノイズフィルタへの前記入力が、垂直フィルタゲイン及び水平フィルタゲインを有するゲイン値を含む、
ことを特徴とする２６．に記載の方法。
２８．
前記ノイズ特性の組が、ブロックノイズの強度及びブロックサイズを含み、
前記画像特性の組が、前記画像内の詳細量を含む、
ことを特徴とする２６．に記載の方法。
２９．
前記ゲイン値が、水平フィルタゲイン及び垂直フィルタゲインを含む、
ことを特徴とする２６．に記載の方法。
３０．
ブロックノイズの強度が増加した場合に前記ブロックノイズフィルタの前記ゲイン値を増加させるステップをさらに含む、
ことを特徴とする２７．に記載の方法。
３１．
前記画像内の詳細量が少ない場合に前記ブロックノイズフィルタの前記ゲイン値を増加させるステップをさらに含む、
ことを特徴とする２７．に記載の方法。
３２．
ブロックノイズが大きい場合に前記ブロックノイズフィルタの前記ゲイン値を増加させるステップをさらに含む、
ことを特徴とする２７．に記載の方法。
３３．
前記ブロックノイズフィルタへの前記入力が、水平エッジ乗数及び垂直エッジ乗数を有するエッジ勾配乗数をさらに含む、
ことを特徴とする２６．に記載の方法。
３４．
ブロックノイズの強度が増加した場合に前記エッジ勾配乗数を減少させるステップをさらに含む、
ことを特徴とする３３．に記載の方法。
３５．
前記画像内の詳細量が多い場合に前記エッジ勾配乗数を増加させるステップをさらに含む、
ことを特徴とする３３．に記載の方法。
３６．
前記画像内のブロックノイズ境界位置のブロック境界マップを生成するステップをさらに含み、前記ブロック境界マップが垂直及び水平境界を含む、
ことを特徴とする２６．に記載の方法。
３７．
前記ブロックノイズフィルタを、前記ブロック境界マップ、前記ゲイン値、及び前記エッジ勾配乗数で構成するステップと、
前記画像に前記ブロックノイズフィルタを適用してフィルタ処理した画像を生成するステップと、
をさらに含むことを特徴とする２６．に記載の方法。
３８．
前記フィルタ処理した画像にエッジブレンディングを行うステップをさらに含む、
ことを特徴とする３７．に記載の方法。
３９．
前記フィルタ処理した画像にエッジスムージングを行うステップをさらに含む、
ことを特徴とする３７．に記載の方法。
４０．
画像にブロックノイズフィルタを適用する方法であって、
前記画像内のブロックノイズ特性に基づいて、前記ブロックノイズフィルタの、垂直ゲイン係数を含むゲイン設定を選択するステップと、
前記垂直ゲイン係数を使用して垂直輝度フィルタの係数の組を算出するステップと、
前記垂直ゲイン係数を使用して垂直彩度フィルタの係数の組を算出するステップと、
前記垂直フィルタ及び彩度フィルタの前記係数を使用して前記画像を縦寸法に沿ってフィルタ処理して、垂直フィルタ処理した画像を生成するステップと、
を含むことを特徴とする方法。
４１．
前記ゲイン設定が水平ゲイン係数を含み、
前記水平ゲイン係数を使用して水平輝度フィルタの係数の組を算出するステップと、
前記水平ゲイン係数を使用して水平彩度フィルタの係数の組を算出するステップと、
前記水平フィルタ及び彩度フィルタの前記係数を使用して前記画像を横寸法に沿ってフィルタ処理して、水平フィルタ処理した画像を生成するステップと、
をさらに含むことを特徴とする４０．に記載の方法。
４２．
前記垂直フィルタ処理した画像と前記画像を混合することによって第１の混合画像を生成するステップと、
前記垂直フィルタ処理した画像と前記水平フィルタ処理した画像とを混合することによって第２の混合画像を生成するステップと、
をさらに含むことを特徴とする４１．に記載の方法。
４３．
前記混合画像にエッジスムージングを行うステップをさらに含む、
ことを特徴とする４２．に記載の方法。
４４．
前記画像内の隣接する画素の画素値の差分量を算出するための手段と、
前記画像内の特徴によって生じる前記差分量から差分量の組を排除するための手段と、
距離サイズ候補の組及びオフセット候補の組の正規化した前記差分量の合計を求めるための手段と、
前記差分量値の行及び列の平均を算出して求めるための手段と、
前記距離サイズ及びオフセットを使用して公称ブロックサイズ及び開始境界ブロック位置を求めるための手段と、
前記公称ブロックサイズを使用して前記開始ブロック位置を増分することによって求められる次の境界ブロック位置を識別する手段と、
前記正規化した合計の最大値を使用して前記ブロックノイズの距離サイズ及びオフセットを求めるための手段と、
複数の次の境界ブロック位置を使用してブロック境界マップを生成する手段と、
を備えることを特徴とするシステム。
４５．
動作時に光ディスクを読み取る光ディスクリーダと、
前記光ディスクリーダに結合されたメモリと、
前記メモリに結合されたグラフィックプロセッサと、
を備え、前記グラフィックプロセッサが、画像にブロックノイズフィルタを適用するアルゴリズムを実行し、該アルゴリズムが、
前記画像内のブロックノイズ特性に基づいて、前記ブロックノイズフィルタの、垂直ゲイン係数及び水平ゲイン係数を含むゲイン設定を選択することと、
前記垂直ゲイン係数を使用して垂直輝度フィルタの係数を算出することと、
前記垂直ゲイン係数を使用して垂直彩度フィルタの係数を算出することと、
前記垂直フィルタ及び彩度フィルタの前記係数を使用して、前記画像を縦寸法に沿ってフィルタ処理して垂直フィルタ処理した画像を生成することと、
前記水平ゲイン係数を使用して水平輝度フィルタの係数を算出することと、
前記水平ゲイン係数を使用して水平彩度フィルタの係数を算出することと、
前記水平フィルタ及び彩度フィルタの前記係数を使用して、前記垂直フィルタ処理した画像を横寸法に沿ってフィルタ処理して水平フィルタ処理した画像を生成することと、
前記垂直フィルタ処理した画像と前記画像とを混合することによって第１の混合画像を生成することと、
前記垂直フィルタ処理した画像と前記水平フィルタ処理した画像とを混合することによって第２の混合画像を生成することと、
によって実行される、
ことを特徴とする光ディスク装置。
４６．
前記光ディスクリーダがＢｌｕ−ｒａｙ（登録商標）ディスクリーダである、
ことを特徴とする４５．に記載の装置。
４７．
前記光ディスクリーダがＤＶＤリーダである、
ことを特徴とする４５．に記載の装置。
４８．
前記光ディスクリーダがＨＤ−ＤＶＤリーダである、
ことを特徴とする５．に記載の装置。
【０３３０】
以下、本開示のいくつかの態様をいくつかの請求項の形で示すが、発明者らは、本開示の様々な態様をあらゆる数の請求項の形で検討している。例えば、米国特許法第１１２条第１３段落に従って、本開示の１つの態様のみを手段プラス機能の請求項として記載しているが、他の態様も同様に、手段プラス機能の請求項として、又はコンピュータ可読媒体内で具体化されるような他の形で具体化することができる。（米国特許法第１１２条第１３段落の下で処理されると想定される請求項は、いずれも「〜のための手段（ｍｅａｎｓ  ｆｏｒ)」という単語で始まる。）従って、出願人は、本願出願後に追加の請求項を加えて、本開示の他の態様のために追加の請求項の形を続ける権利を有している。
【符号の説明】
【０３３１】
４００  ブロックノイズ検出器
４０２  差分量生成器
４０４  ｄＭａｇプロセッサ
４０６  ｄＭａｇ加算器
４０８  スケーリングマネージャ
４１０  ブロックサイズ及びオフセット評価器
４１２  境界マップ生成器
４１４  フィルタゲイン生成器
４１６  エッジ勾配乗数生成器
４２０  フィルタ制御パラメータ生成器
【図１】
0005839631.tif 000002
【図２】
0005839631.tif 000003
【図３】
0005839631.tif 000004
【図４】
0005839631.tif 000005
【図５】
0005839631.tif 000006
【図６】
0005839631.tif 000007
【図７】
0005839631.tif 000008
【図８】
0005839631.tif 000009
【図９】
0005839631.tif 000010
【図１０】
0005839631.tif 000011
【図１１】
0005839631.tif 000012
【図１２】
0005839631.tif 000013
【図１３】
0005839631.tif 000014
【図１４】
0005839631.tif 000015
【図１５】
0005839631.tif 000016
【図１６Ａ】
0005839631.tif 000017
【図１６Ｂ】
0005839631.tif 000018
【図１７】
0005839631.tif 000019
【図１８】
0005839631.tif 000020
【図１９】
0005839631.tif 000021
【図２０】
0005839631.tif 000022
【図２１】
0005839631.tif 000023
【図２２】
0005839631.tif 000024