JP2009206713A - 画像処理装置および方法、並びにプログラム - Google Patents

画像処理装置および方法、並びにプログラム Download PDF

Info

Publication number
JP2009206713A
JP2009206713A JP2008045850A JP2008045850A JP2009206713A JP 2009206713 A JP2009206713 A JP 2009206713A JP 2008045850 A JP2008045850 A JP 2008045850A JP 2008045850 A JP2008045850 A JP 2008045850A JP 2009206713 A JP2009206713 A JP 2009206713A
Authority
JP
Japan
Prior art keywords
block
pixel
unit
noise
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008045850A
Other languages
English (en)
Other versions
JP5071721B2 (ja
JP2009206713A5 (ja
Inventor
Koji Aoyama
幸治 青山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2008045850A priority Critical patent/JP5071721B2/ja
Priority to US12/394,318 priority patent/US20090214133A1/en
Publication of JP2009206713A publication Critical patent/JP2009206713A/ja
Publication of JP2009206713A5 publication Critical patent/JP2009206713A5/ja
Application granted granted Critical
Publication of JP5071721B2 publication Critical patent/JP5071721B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20004Adaptive image processing
    • G06T2207/20012Locally adaptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Image Processing (AREA)

Abstract

【課題】ブロックノイズを低減する。
【解決手段】位置制御部31は、ブロックサイズ情報およびブロック境界初期位置に基づいて、各ブロック毎のブロック境界位置、および、各画素のブロック境界位置からの距離を計算し、前記画素の位置制御情報を生成する。ブロックノイズ検出部33は、位置制御情報に基づいて、ブロック境界位置におけるブロックノイズ特徴情報を検出する。ノイズ低減処理部34は、ブロックノイズ特徴情報に基づいて、ブロック境界位置に存在する画素のノイズを低減する。本発明は、例えば、テレビジョン受像機などの画像処理装置に適用することができる。
【選択図】図3

Description

本発明は、画像処理装置および方法、並びにプログラムに関し、特に、ブロックノイズを低減できるようにした画像処理装置および方法、並びにプログラムに関する。
エンコードされた画像データをデコードする際、デコードされる画像にはノイズが発生することが知られている。
例えば、画像データをMPEG(Moving Picture Experts Group)などの圧縮方式で圧縮する際、エンコーダは、画像データを複数の画素数からなる方形状のブロックに分割し、分割した各ブロックをDCT(Discrete Cosine Transform)処理する。
このため、デコーダが、MPEG方式でエンコードされた画像データをデコードすると、デコードされた画像データにおいては、原理的に、各ブロックの境界部分での段差が生じブロックノイズが発生する。
そこで、このブロックノイズを低減または除去する技術が提案されている(特許文献1参照)。
このようなブロックノイズを低減または除去する技術は、一般に、既知であるブロックサイズ(MPEG2であれば8)とブロック境界位置にLPF(Low Pass Filter:低域通過フィルタ)を適用し平滑化することにより実現される。
特開2002−232890号公報
しかしながら、特許文献1で示されるような技術では、画像の情報がボケなどで失われたり、ブロック境界のみに平滑化を適用することによる新たなブロック歪みを生じさせることがあった。
また、画像内容や圧縮符号化の条件(たとえばビットレート)などによりブロックノイズの程度や強度も大きく異なり、一律のブロックノイズ低減処理では、ブロックノイズ強度が強い場合、ブロックノイズの低減の効果が十分でなかったり、ブロックノイズ強度が弱く、ほとんどブロックノイズが存在しない場合、不要に効果が発揮され、画像の情報を欠落させることによる弊害が発生することがあった。
また、画像データに基づいて、画像をスケーリング(解像度変換)するような場合、スケーリングによる影響や、入力される画像データがアナログ信号によるものであるのか、または、デジタル信号によるものであるかにより、デジタル復号された信号の品質が大きく異るので、歪みの程度が一定とはならず、さらに、画像内容や圧縮符号化の条件以外の要因からも、ブロックノイズを低減させる効果を均質なものとすると、ブロックノイズを十分に低減させることができなかったり、逆に、必要な画像の情報を欠落させてしまうことがあった。
本発明は、このような状況に鑑みてなされたものであり、ブロックノイズを低減させる効果を、ブロック境界におけるノイズの特徴毎に制御することにより、デコードされる画像データの全体から、ブロックノイズを低減させるものである。
本発明の一側面の画像処理装置は、画像のノイズを低減する画像処理装置であって、ブロックサイズ情報およびブロック境界初期位置に基づいて、各ブロック毎のブロック境界位置、および、各画素のブロック境界位置からの距離を計算し、前記画素の位置制御情報を生成する位置制御情報生成手段と、前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出するブロックノイズ検出手段と、前記ブロックノイズ特徴情報に基づいて、前記ブロック毎にノイズを低減するノイズ低減処理手段とを含む。
前記画像の注目画素の注目画素エッジを検出する注目画素エッジ検出手段と、前記注目画素の近傍のブロック境界における境界エッジを検出する境界エッジ検出手段と、前記注目画素エッジ、および前記境界エッジに基づいて、前記ノイズの低減における強度を制御するエッジ重みを計算するエッジ重み計算手段と、前記ブロックノイズ特徴情報に基づいて、前記ノイズの低減における強度を制御する処理重みを計算する処理重み計算手段と、前記ブロック境界からの位置情報に基づいて、ノイズ低減処理の強度を制御する位置重みを計算する位置重み計算手段と、前記エッジ重みに基づいて、前記注目画素を制御するエッジ重み制御手段と、前記処理重みに基づいて、前記注目画素を制御する処理重み制御手段と、前記位置重みに基づいて、前記注目画素を制御する位置重み制御手段とをさらに含ませるようにしてもよい。
前記注目画素エッジ検出手段および境界エッジ検出手段は、それぞれ前記ブロックサイズ情報に基づいて、前記注目画素エッジ、および境界エッジの検出に使用する画素の範囲を切り替えるようにしてもよい。
前記画像のブロックサイズは、所定のブロックサイズからのスケーリング率として指定されるようにしてもよく、前記ブロック境界初期位置は、画素以下の精度で指定されるようにしてもよい。
前記ブロックノイズ検出手段には、前記ブロック境界位置における画素間の段差と、前記ブロック境界位置の周辺の画素間の段差の平均との比較結果に基づいて、前記ブロックノイズ特徴情報が段差であるか否かを判定する段差判定手段をさらに含ませるようにすることができ、前記段差判定手段の段差判定結果に基づいて、前記ブロックノイズ特徴情報を単純段差として検出させるようにすることができる。
前記ブロックノイズ検出手段には、前記ブロック境界位置における画素間の段差と、前記ブロック境界位置の周辺の画素間の段差の平均との比較結果に基づいて、前記ブロックノイズ特徴情報が単純段差であるか否かを判定する段差判定手段と、前記ブロック境界位置の周辺部の傾きの比較結果に基づいて、周辺部が全体として同一の傾き持つか否かによりグラデーション段差であるか否かを判定するグラデーション段差手段と、前記ブロック境界位置において、前記注目画素および前記注目画素の周辺画素の差分の大きさと所定の閾値との比較、および前記差分の正負の符号の組み合わせに基づいて、前記注目画素の属する前記ブロックのブロックノイズ特徴が孤立点であるか否かを判定する孤立点判定手段と、前記ブロック境界位置において、前記差分の正負の符号の組み合わせに基づいて、前記ブロックノイズ特徴が、模様成分のピークが集中するテクスチャ偏りであるか否かを判定するテクスチャ判定手段とを含ませるようにすることができ、前記段差判定手段、前記グラデーション段差手段、前記孤立点判定手段、およびテクスチャ判定手段の判定結果に基づいて、前記ブロックノイズ特徴情報を検出させるようにすることができる。
ノイズ低減手段には、前記ブロックノイズ特徴情報が、グラデーション段差である場合、前記ブロック境界位置の段差を、前記ブロック境界位置から前記注目画素までの距離に応じて段差補正する段差補正手段と、前記ブロックノイズ特徴情報が、前記孤立点である場合、前記ブロック境界位置において、前記孤立点を除去して補正する除去補正手段と、前記ブロックノイズ特徴情報が、前記テクスチャ偏りである場合、前記ブロック境界位置において、前記注目画素を含むブロックを平滑化する第1の平滑化手段と、前記ブロックノイズ特徴情報が、前記単純段差である場合、前記ブロック境界位置において、前記注目画素を含むブロックを、前記第1の平滑化手段とは、異なる強度で平滑化する第2の平滑化手段とを含ませるようにすることができる。
前記ブロックノイズ特徴情報検出手段には、前記ブロックサイズ情報に基づいて、検出に使用する近傍画素を選択できるようにさせることができる。
前記ノイズ低減手段には、前記ブロックサイズ情報に基づいて、低減処理を切り替えるようにさせることができる。
本発明の一側面の画像処理方法は、画像のノイズを低減する画像処理装置の画像処理方法であって、ブロックサイズ情報およびブロック境界初期位置に基づいて、各ブロック毎のブロック境界位置、および、各画素のブロック境界位置からの距離を計算し、前記画素の位置制御情報を生成する位置制御情報生成ステップと、前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出するブロックノイズ検出ステップと、前記ブロックノイズ特徴情報に基づいて、前記ブロック毎にノイズを低減するノイズ低減処理ステップとを含む。
本発明の一側面のプログラムは、画像のノイズを低減する画像処理装置を制御するコンピュータに、ブロックサイズ情報およびブロック境界初期位置に基づいて、各ブロック毎のブロック境界位置、および、各画素のブロック境界位置からの距離を計算し、前記画素の位置制御情報を生成する位置制御情報生成ステップと、前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出するブロックノイズ検出ステップと、前記ブロックノイズ特徴情報に基づいて、前記ブロック毎にノイズを低減するノイズ低減処理ステップとを含む処理を実行させる。
本発明のプログラム格納媒体には、請求項11に記載のプログラムを格納させるようにすることができる。
本発明の一側面においては、画像のノイズを低減する画像処理装置であって、ブロックサイズ情報およびブロック境界初期位置に基づいて、各ブロック毎のブロック境界位置、および、各画素のブロック境界位置からの距離が計算され、前記画素の位置制御情報が生成され、前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報が検出され、前記ブロックノイズ特徴情報に基づいて、前記ブロック毎にノイズが低減される。
本発明の一側面によれば、エンコードされた画像データがデコードされる際に生じるブロックノイズを低減させることが可能となる。
図1は、本発明が適用される画像処理装置の実施の形態の構成例を示す図である。
図1の画像処理装置1は、ブロック境界情報検出部11およびブロックノイズ低減処理部12より構成されており、入力される画像をブロック境界におけるノイズの特徴毎にノイズの低減レベルを制御し、ブロックノイズを低減した画像を出力する。
画像処理装置1に入力される画像は、プレーヤなどによりDVD(Digital Versatile Disc)やHDD(Hard Disc Drive)などの記憶媒体から、読み出され、デコードされることにより出力される画像などを含む。ところで、これらのプレーヤのうち、一部のプレーヤは、画像の拡大機能を備えており、例えば、記録されている画像データが図2の画像Aで示される720画素×480画素のようなSD(Standard Definition)解像度の画像データであっても、画像Cで示されるような出力解像度である1920画素×1080画素のHD(Hi Definition)解像度に変換して出力することができる。また、記録信号がHD信号の場合、図2の画像Bで示されるような1440画素×1080画素の解像度の信号が存在しており、一部のプレーヤでは、このような画像Bの画像データを、1920画素×1080画素のHD解像度の画像Cに変換して出力することができる。
したがって、画像処理装置1に入力される画像は、アナログ信号がアナログデジタル変換された画像データ、若しくはデジタル信号からなる画像データでもよいし、アナログ信号、または、上述したようないずれかの解像度の原画像データに対して解像度変換された(スケーリングされた)画像であってもよい。
ブロック境界情報検出部11は、入力された画像よりデコード前にエンコードされていた状態におけるDCT(Discrete Cosine Transform)処理される単位であるブロックサイズ、およびブロック境界位置を検出し、それぞれの情報をブロックサイズ情報およびブロック境界位置の情報としてブロックノイズ低減処理部12に供給する。
ブロックノイズ低減処理部12は、入力された画像を、ブロック境界情報検出部11より供給されてくるブロックサイズおよびブロック境界位置の情報に基づいて、ブロック境界位置の画素におけるノイズの特徴毎に適応的にノイズを低減する処理を施し、ブロックノイズを低減した画像を出力する。
次に、図3を参照して、ブロックノイズ低減処理部12の実施の形態の構成例について説明する。
ブロックノイズ低減処理部12は、位置制御部31、エッジ検出部32、ブロックノイズ検出部33、ノイズ低減処理部34、データ記憶部35、検出データバッファ部36、処理重み制御部37、エッジ重み制御部38、位置重み制御部39、位置制御情報バッファ部40、およびエッジ重みバッファ部41より構成されている。
位置制御部31は、ブロックサイズ情報およびブロック境界位置情報に基づいて、現在の処理位置、すなわち、処理対象となっている画素(以下、注目画素とも称する)のスケーリング前の位置の画素、スケーリング前のブロック内の位置、スケーリング前のブロック境界までの距離、現在属しているブロック番号、および、現在最も近いブロック境界位置を計算し、位置制御情報として位置制御情報バッファ部40に格納する。この位置制御情報は、エッジ検出部32、ブロックノイズ検出部33、ノイズ低減処理部34、エッジ重み制御部38、および位置重み制御部39により読み出され、各種の処理に利用される。尚、位置制御部31の詳細な構成については、図4を参照して後述する。
エッジ検出部32は、レジスタ、およびメモリなどの記憶配列に入力画像データを保持しているデータ記憶部35より、画像データを読み出し、位置制御情報およびブロックサイズの情報に基づいて、エッジ強度を求めると共に、そのエッジ強度からエッジ重みを計算して、エッジ重みバッファ部41に記憶させる。尚、エッジ検出部32の詳細な構成については、図5を参照して後述する。
ブロックノイズ検出部33は、レジスタ、およびメモリなどの記憶配列に入力画像データを保持しているデータ記憶部35より、入力画像データを読み出し、位置制御情報およびブロックサイズの情報に基づいて、ブロック境界位置の画素毎のブロックノイズの特徴情報を、ブロックノイズ特徴情報として供給し、レジスタ、およびメモリなどの記憶配列からなる検出データバッファ部36に格納させる。尚、ブロックノイズ検出部33の詳細な構成については、図6を参照して後述する。
ノイズ低減処理部34は、検出データバッファ部36に格納されているブロックノイズ特徴情報を読み出し、ブロックノイズ特徴情報に対応するノイズ低減処理を施し、ノイズ低減画像データを処理重み制御部37に供給する。尚、ノイズ低減処理部34の詳細な構成については、図7を参照して後述する。
処理重み制御部37は、検出データバッファ部36に格納されている一連のブロックノイズ特徴情報から処理重みを計算し、計算した処理重みに基づいて、データ記憶部35より読み出した入力画像データと、ノイズ低減処理部34により低減処理されたノイズ低減画像データとを合成し、処理重み制御画像データとしてエッジ重み制御部38に供給する。尚、処理重み制御部37の詳細な構成については、図8を参照して後述する。
エッジ重み制御部38は、エッジ重みバッファ部41からのエッジ重みを読み出し、位置制御情報に基づいて、データ記憶部35に格納されている入力画像データと処理重み制御画像データとを合成し、エッジ重み制御画像として位置重み制御部39に供給する。尚、エッジ重み制御部38の詳細な構成については、図9を参照して後述する。
位置重み制御部39は、位置制御情報のブロック内における位置情報により、位置重みを計算し、計算された位置重みに基づいて、データ記憶部35より読み出される入力画像データとエッジ重み制御部38より供給されてくるエッジ重み制御画像データとを合成し、ブロックノイズ低減処理画像として出力する。尚、位置重み制御部39の詳細な構成については、図10を参照して後述する。
次に、図4を参照して、位置制御部31の詳細な実施の形態の構成例について説明する。
位置制御部31は、スケーリング前位置計算部51、スケーリング前ブロック内位置計算部52、境界距離計算部53、所属ブロック番号計算部54、および境界座標計算部55を備えている。
スケーリング前位置計算部51は、ブロック境界位置の情報、およびブロックサイズの情報に基づいて、各画素についてスケーリング前の画素の位置を計算し、ブロック境界位置の情報、およびブロックサイズ情報と共に、スケーリング前ブロック内位置計算部52に供給する。
スケーリング前ブロック内位置計算部52は、スケーリング前の位置の情報、ブロック境界位置の情報、およびブロックサイズ情報に基づいて、各画素について、スケーリング前のブロック内の位置を計算し、ブロック境界位置の情報、およびブロックサイズ情報と共に、境界距離計算部53に供給する。
境界距離計算部53は、ブロック内の位置の情報、スケーリング前の位置の情報、ブロック境界位置の情報、およびブロックサイズ情報に基づいて、各画素について最も近いブロック境界位置までの距離(画素数)を計算し、ブロック境界位置の情報、およびブロックサイズ情報と共に、計算結果を所属ブロック番号計算部54に供給する。
所属ブロック番号計算部54は、各画素について最も近いブロック境界位置までの距離の情報、ブロック内の位置の情報、スケーリング前の位置の情報、ブロック境界位置の情報、およびブロックサイズ情報に基づいて、各画素が所属するブロック番号を計算し、最も近いブロック境界位置までの距離、ブロック境界位置の情報、およびブロックサイズ情報と共に、ブロック番号を境界座標計算部55に供給する。
境界座標計算部55は、ブロック番号、各画素について現在位置から最も近いブロック境界位置までの距離の情報、ブロック内の位置の情報、スケーリング前の位置の情報、ブロック境界位置の情報、およびブロックサイズの情報に基づいて、スケーリング後の画像データにおける最も近いブロック境界位置の座標を計算し、ブロック番号、各画素について現在位置から最も近いブロック境界位置までの距離の情報、ブロック内の位置の情報、スケーリング前の位置の情報、ブロック境界位置の情報、およびブロックサイズ情報を位置制御情報として位置制御情報バッファ部40に格納させる。
次に、図5を参照して、エッジ検出部32の詳細な実施の形態の構成例について説明する。
エッジ検出部32は、現在位置エッジ情報計算部61、境界位置エッジ情報計算部62、エッジ情報生成部63、およびエッジ重み計算部64を備えている。
現在位置エッジ情報計算部61は、各画素におけるエッジ情報ed_xを計算し、エッジ情報生成部63に供給する。
境界位置エッジ情報計算部62は、各画素の近傍のブロック境界位置における画素のエッジ情報ed_bを計算し、エッジ情報生成部63に供給する。
エッジ情報生成部63は、エッジ情報ed_x,ed_bを比較し、大きい方の値をエッジ情報ed_maxとして、エッジ重み計算部64に供給する。
エッジ重み計算部64は、エッジ情報ed_maxに基づいて、エッジ重みedwgtを計算してエッジ重みバッファ部41に記憶させる。
次に、図6を参照して、ブロックノイズ検出部33の詳細な実施の形態の構成例について説明する。
ブロックノイズ検出部33は、境界判定部81、グラデーション段差条件計算部82、グラデーション段差条件判定部83、ブロックノイズ特徴判定部84、孤立点条件計算部85、孤立点条件判定部86、テクスチャ偏り条件計算部87、テクスチャ偏り条件判定部88、単純段差条件計算部89、および単純段差条件判定部90を備えている。
境界判定部81は、位置制御情報およびブロックサイズの情報に基づいて、処理対象となる画素の位置がブロック境界の条件を満たすか否かを判定し、判定結果をグラデーション段差条件計算部82およびブロックノイズ特徴判定部84に供給する。
グラデーション段差条件計算部82は、境界判定部81より処理対象となる画素が境界のものであることを示す判定結果が入力されると、入力画像データより注目画素、および、注目画素の周辺画素の画素間の画素値より、ブロック境界における画素値の変化を示すグラデーション段差条件式を計算し、計算結果をグラデーション段差条件判定部83に供給する。
グラデーション段差条件判定部83は、グラデーション段差条件の計算結果に基づいて、グラデーション段差が存在するか否かを判定し、判定結果をブロックノイズ特徴判定部84および孤立点条件計算部85に供給する。
ブロックノイズ特徴判定部84は、境界判定部81、グラデーション段差条件判定部83、孤立点条件判定部86、テクスチャ偏り条件判定部88、および単純段差条件判定部90からの判定結果に基づいて、ブロックノイズ特徴が、グラデーション段差、孤立点、テクスチャ偏り、単純段差、または、ノイズなしのいずれかを判定し、判定結果をブロックノイズ特徴情報として検出データバッファ部36に格納させる。
孤立点条件計算部85は、グラデーション段差条件判定部83の判定結果がグラデーション段差を示すものではない場合、入力画像データより注目画素、および、注目画素の周辺画素の画素間の画素値の変化が孤立点であることを示す孤立点条件式を計算し、計算結果を孤立点条件判定部86に供給する。
孤立点条件判定部86は、孤立点条件式の計算結果に基づいて、処理対象となる画素が、孤立点であるか否かを判定し、判定結果をブロックノイズ特徴判定部84およびテクスチャ偏り条件計算部87に供給する。
テクスチャ偏り条件計算部87は、孤立点条件判定部85の判定結果が孤立点を示すものではない場合、入力画像データより注目画素の周辺画素に特定の振幅成分が含まれていることを示すテクスチャ偏り条件式を計算し、計算結果をテクスチャ偏り条件判定部88に供給する。
テクスチャ偏り条件判定部88は、テクスチャ偏り条件の計算結果に基づいて、処理対象となる画素周辺に、テクスチャ偏りが生じているか否かを判定し、判定結果をブロックノイズ特徴判定部84および単純段差条件計算部89に供給する。
単純段差条件計算部89は、テクスチャ偏り条件判定部88の判定結果がテクスチャ偏りを示すものではない場合、入力画像データより注目画素の周辺画素に単純段差が生じていることを示す単純段差条件式を計算し、計算結果を単純段差条件判定部90に供給する。
単純段差条件判定部90は、単純段差条件の計算結果に基づいて、処理対象となる画素周辺に、単純段差が生じているか否かを判定し、判定結果をブロックノイズ特徴判定部84に供給する。
次に、図7を参照して、ノイズ低減処理部34の詳細な実施の形態の構成例について説明する。
ノイズ低減処理部34は、近傍情報取得部111、ブロックノイズ特徴情報取得部112、グラデーション段差補正部113、出力部114、孤立点除去部115、テクスチャ平滑化処理部116、単純段差平滑化処理部117を備えている。
近傍情報取得部111は、入力画像データおよびブロックサイズの情報に基づいて、注目画素近傍の画像情報を抽出する。
ブロックノイズ特徴情報取得部112は、位置制御情報に基づいて、ブロックノイズ特徴情報を取得し、取得したブロックノイズ特徴情報の内容に応じて、グラデーション段差補正部113、孤立点除去部115、テクスチャ平滑化処理部116、または、単純段差平滑化処理部117にブロックノイズ特徴情報およびブロック番号の情報を供給する。
グラデーション段差補正部113は、段差計算部113a、補正量計算部113b、および補正処理部113cを備えており、ブロックノイズ特徴情報取得部112よりグラデーション段差であることを示すブロックノイズ特徴情報が供給されると、段差計算部113a、補正量計算部113b、および補正処理部113cを利用して、対応するブロック番号の近傍画素の情報を近傍情報取得部111より供給された画素を用いて、グラデーション段差補正し、出力部114に供給する。
孤立点除去部115は、孤立点除去補正フィルタ部115aを備えており、ブロックノイズ特徴情報取得部112より孤立点であることを示すブロックノイズ特徴情報が供給されると、孤立点除去補正フィルタ部115aを利用して、対応するブロック番号の近傍画素の情報を近傍情報取得部111より供給された画素を用いて、孤立点除去補正し、出力部114に供給する。
テクスチャ平滑化処理部116は、テクスチャ補正フィルタ部116aを備えており、ブロックノイズ特徴情報取得部112よりテクスチャ偏りを示すブロックノイズ特徴情報が供給されると、テクスチャ補正フィルタ部116aを利用して、対応するブロック番号の近傍画素の情報を近傍情報取得部111より供給された画素を用いて、テクスチャ平滑化補正し、出力部114に供給する。
単純段差平滑化処理部117は、単純段差補正フィルタ部117aを備えており、ブロックノイズ特徴情報取得部112より単純段差を示すブロックノイズ特徴情報が供給されると、単純段差補正フィルタ部117aを利用して、対応するブロック番号の近傍画素の情報を近傍情報取得部111より供給された画素を用いて、単純段差平滑化補正し、出力部114に供給する。
出力部114は、グラデーション段差補正部113、孤立点除去部115、テクスチャ平滑化処理部116、および単純段差平滑化処理部117より供給されてくる補正された画素をノイズ低減画像データとして出力する。
次に、図8を参照して、処理重み制御部37の詳細な実施の形態の構成例について説明する。
処理重み制御部37は、近傍データ取得部131、バッファ部132、比較部133、比較結果記憶部134、処理重み計算部135、および処理重み付加部136を備えている。
近傍データ取得部131は、検出データバッファ部36より注目画素を含む周辺の画素のブロックノイズ特徴情報を取得し、バッファ部132に格納する。
比較部133は、バッファ部132に格納されている画素の情報に基づいて、注目画素と、その近傍画素とのブロックノイズ特徴情報を比較し、比較結果を比較結果記憶部134に記憶させる。
処理重み計算部135は、比較結果記憶部134に記憶されている、注目画素と、その近傍画素とのブロックノイズ特徴情報の比較結果に基づいて、処理重みを計算し、処理重み付加部136に供給する。
処理重み付加部136は、処理重み計算部135より供給されてくる処理重みを用いて、ノイズ低減処理部34より供給されてくるノイズ低減画像データと入力画像データとを合成し、処理重み制御画像データを生成してエッジ重み制御部38に供給する。
次に、図9を参照して、エッジ重み制御部38の詳細な実施の形態の構成例について説明する。
エッジ重み制御部38は、データ取得部151およびエッジ重み付加部152を備えている。
データ取得部151は、入力画像データおよび処理重み制御画像データを取得し、エッジ重み付加部152に供給する。
エッジ重み付加部152は、エッジ重みバッファ部41に記憶されてくるエッジ重みに基づいて、入力画像データと処理重み制御画像データとを合成し、エッジ重み制御画像データとして位置重み制御部39に供給する。
次に、図10を参照して、位置重み制御部39の詳細な構成例について説明する。
位置重み制御部39は、距離ID計算部172、位置重み計算部173、および位置重み付加部174を備えている。
データ取得部171は、位置制御情報、ブロックノイズ特徴情報、入力画像データ、およびエッジ重み制御画像データを取得し、位置制御情報を距離ID計算部172に供給し、ブロックノイズ特徴情報を位置重み計算部173に供給し、入力画像データ、およびエッジ重み制御画像データを位置重み付加部174に供給する。
距離ID計算部172は、位置制御情報のうち、注目画素のブロック境界位置からの距離IDを求め、位置重み計算部173に供給する。
位置重み計算部173は、注目画素のブロックノイズ特徴情報と、注目画素のブロック内の距離IDに基づいて、テーブル173aに予め登録されている位置重みを読み出し、位置重みを決定して位置重み付加部174に供給する。
位置重み付加部174は、位置重み計算部173より供給されてくる位置重みに基づいて、入力画像データとエッジ重み制御画像データとを合成し、位置重み制御画像データを生成して出力する。
次に、図11のフローチャートを参照して、図1の画像処理装置によるブロックノイズ低減処理について説明する。尚、この処理においては、入力画像データにおける各画素に対してノイズ低減処理が施されることになるが、ここでは、水平方向に1ライン分の画素についてノイズ低減処理がなされる例について説明するものとし、その他のラインの画素については、順次同様にライン数分だけ繰り返されるものとする。ただし、当然のことながら、垂直方向に1行ずつ処理するようにしてもよいし、それ以外の順序で、異なる方向に処理するようにしてもよいものである。
ステップS11において、ブロック境界情報検出部11は、入力画像データがスケーリングされる前の画像においてDCT処理における処理単位となるブロックサイズ64/block_ratio、およびブロック境界位置block_posを検出し、ブロックノイズ低減処理部12に供給する。
ここで、ブロック境界位置block_posは、スケーリングされる前の画素を1としたとき、画素以下の大きさを1/64画素の精度で表現する大きさを座標の最小単位として指定できるものとする。したがって、例えば、スケーリング前の水平解像度が、1440画素に対して、スケーリング後の水平解像度が1920画素である場合、スケーリング前の画素のサイズは、64(最小単位)であるのに対して、スケーリング後の画素のサイズは、48(最小単位)で表現されることになり、同様にしてブロックサイズにおいても、同様の比率となる。つまり、この場合、入力画像データにおけるブロックサイズ比block_ratioは、48と表現されることになる。換言すれば、スケーリング前のブロックサイズは、スケーリング後のブロックサイズ(入力画像データにおけるブロックサイズ)の1.333(=64/48)倍となる。以降において、特に数値に単位の無い座標位置の値、または、サイズの表記については、スケーリング前の画像データにおける画素のサイズを1としたときの1/64画素となる最小単位であるものとする。
尚、この例では、最小単位をスケーリング前の画素のサイズを1とした1/64画素の精度として説明しているが、精度となる最小単位は任意に選ぶことができる。また、浮動小数点で計算しても構わない。
ステップS12において、ブロックノイズ低減処理部12は、位置制御部31を制御して、位置制御情報生成処理を実行させ、位置制御情報を生成し、位置制御情報バッファ部40に記憶させる。尚、位置制御情報生成処理は、図12を参照して、詳細を後述する。
ステップS13において、エッジ検出部32は、入力画像データおよびブロックサイズの情報に基づいて、エッジ検出処理を実行し、エッジを検出し、エッジ重みedwgtを生成し、エッジ重みバッファ部41に記憶させる。尚、エッジ検出処理は、図15を参照して、詳細を後述する。
ステップS14において、ブロックノイズ検出部33は、入力画像データ、および位置制御情報とに基づいて、ブロックノイズ検出処理を実行し、ブロック境界位置の画素についてブロックノイズを検出し、検出したブロックノイズの特徴を示す、ブロックノイズ特徴情報bclassを生成し、検出データバッファ部36に記憶させる。尚、ブロックノイズ検出処理は、図17を参照して、詳細を後述する。
ステップS15において、ノイズ低減処理部34は、入力画像データ、位置制御情報、ブロックサイズの情報、およびブロックノイズ特徴情報に基づいて、ノイズ低減処理を実行し、入力画像データについてノイズを低減し、ノイズ低減画像データFIL_OUTとして、順次処理重み制御部37に供給する。尚、ノイズ低減処理は、図20を参照して、詳細を後述する。
ステップS16において、処理重み制御部37は、入力画像データD[x][y]、ノイズ低減画像データFIL_OUT、およびブロックノイズ特徴情報に基づいて、処理重み制御処理を実行し、処理重みpwgtを生成すると共に、処理重みpwgtに基づいて、入力画像データD[x][y]、およびノイズ低減画像データFIL_OUTを合成して、処理重み制御画像データP_OUTを生成し、エッジ重み制御部38に供給する。尚、処理重み制御処理は、図22を参照して、詳細を後述する。
ステップS17において、エッジ重み制御部38は、入力画像データD[x][y]、処理重み制御画像データP_OUT、およびエッジ重みedwgtに基づいて、エッジ重み制御処理を実行し、エッジ重みedwgtに基づいて、入力画像データD[x][y]、および処理重み制御画像データP_OUTを合成して、エッジ重み制御画像データE_POTを生成し、位置重み制御部39に供給する。尚、エッジ重み制御処理は、図24を参照して、詳細を後述する。
ステップS18において、位置重み制御部39は、入力画像データD[x][y]、エッジ重み制御画像データE_OUT、ブロックノイズ特徴情報、および位置制御情報に基づいて、位置重み制御処理を実行し、位置重みposwgtを計算し、計算した位置重みposwgtに基づいて、入力画像データD[x][y]、およびエッジ重み制御画像データE_OUTを合成して、位置重み制御画像データを生成し、ブロックノイズ低減処理された画像データを出力する。尚、位置重み制御処理は、図25を参照して、詳細を後述する。
以上の処理により入力画像データは、ブロック境界位置の画素におけるブロックノイズの特徴情報に基づいて、適切に画像が補正されることにより、ブロックノイズが低減される。
次に、図12のフローチャートを参照して、図4の位置制御部31による位置制御情報生成処理について説明する。
ステップS31において、位置制御部31は、図示せぬ制御カウンタcntを初期化する(cnt=0)。
ステップS32において、位置制御部31は、図示せぬ位置カウンタpos_cntを初期化する(pos_cnt=−block_pos)。すなわち、ブロック境界位置block_posは、スケーリング前の画像データにおけるブロック境界を構成する画素の中央位置の座標であり、図13で示されるように、例えば、座標を右方向に昇べきの単位として構成するものとすれば、左端のブロック境界位置が原点(=0)であることが望ましいため、座標系の左端がブロック境界位置分だけオフセットされる。
尚、図13においては、水平方向の座標系を説明する図であり、最上段が、制御カウンタcntを、2段目がスケーリング後の画像データにおける画素位置において、画素値の情報が反映されるべき、対応するスケーリング前の画素の画素位置の座標であり、3段目が、スケーリング前の画像データにおける画素位置の座標系である。また、座標系を示す目盛りは、最小間隔が16(最小単位)を示しており、実線で示される目盛りの位置が、スケーリング後の画像データにおける画素位置の座標を示している。
したがって、例えば、ブロック境界位置が、画像の左端から64である場合、図2中の左端の座標は、図中で示されるように、−64となり、入力画像データにおけるスケーリング後の画素位置を順次制御カウンタcntで表現するとき、対応する画素の座標は、順次−64,−16,32,80・・・と表現されることになる。
尚、図14においては、上から、制御カウンタcnt、位置カウンタpos_cnt、スケーリング前の位置org_pos、スケーリング前のブロック内の位置org_bcnt、スケーリング前の境界までの距離org_bbdist、現在位置が所属するブロック番号bpos、および最も近いブロック境界の座標bbposの制御カウンタcntに対応する値をまとめた後述する位置制御情報である。尚、スケーリング前の位置org_pos、スケーリング前のブロック内の位置org_bcnt、スケーリング前の境界までの距離org_bbdist、現在位置が所属するブロック番号bpos、および最も近いブロック境界の座標bbposについては、詳細を後述する。
ステップS33において、スケーリング前位置計算部51は、ブロック境界位置、およびブロックサイズの情報に基づいて、今現在の制御カウンタcntで表現される入力画像データ上の位置が、スケーリング前の画像におけるどの画素に対応するかを示す、スケーリング前の(画像データにおける画素の)位置org_posを以下の式(1)を計算することにより求め、ブロック境界位置およびブロックサイズの情報と共にスケーリング前ブロック内位置計算部52に供給する。
org_pos=F1[(pos_cnt+32)/64]
・・・(1)
ここで、F[A]は、Aの小数点以下を四捨五入する計算を実行する関数を表している。
すなわち、画像の左端は、左端の画素の左端となり、その左端の位置から座標を設定すると、画素の位置が、各画素の左端を基準として表現されるため、画素の中心位置が画素の座標として表現されてない。そこで、スケーリング前の画像データにおける画素のサイズである64に対して中心位置となる32をオフセットさせることにより、各画素の中心位置を基準とした座標に変換し、さらに、画素のサイズである64で除した後、小数点以下を四捨五入することで、図14のスケーリング前の位置org_posで示されるように、スケーリング後の各画素が、スケーリング前の画像データにおける、いずれの画素と対応しているかが求められる。
すなわち、例えば、図13,図14で示されるように、例えば、制御カウンタcnt=0対応する位置カウンタpos_cntは−64であり、スケーリング前の位置org_posは−1となる。また、例えば、制御カウンタcnt=1対応する位置カウンタpos_cntは−16であり、スケーリング前の位置org_posは0となる。さらに、例えば、制御カウンタcnt=2対応する位置カウンタpos_cntは32であり、スケーリング前の位置org_posは0となる。
しかしながら、例えば、制御カウンタcnt=2,3に対応する位置カウンタpos_cntは、それぞれ−32,80であるが、スケーリング前の位置org_posは、いずれも1となる。すなわち、制御カウンタcnt=2,3の画素に対応する、スケーリング前の(画素の)位置org_posは、いずれも同一の画素であることが示されている。これは、スケーリング前の画素の位置を示す位置org_posは、画素の大きさである位置カウンタpos_cntが64(最小単位)ずつ変化するのに対して、入力画像データにおける各画素位置(スケーリング後の画像データの各画素位置)は、位置カウンタpos_cntが、スケーリング後の画像データにおける画素の大きさである48(最小単位)ずつ変化するためである。このように、スケーリング後の画像データである入力画像データにおける各画素は、対応するスケーリング前の画像データにおける各画素との対応が、1対1とはならない場合がある。
また、図13で示されるように、32だけオフセットされることにより、実際のブロック境界位置は、位置R1,R2,R3となり、スケーリング前のブロックサイズが8画素であったのに対して、スケーリング後のブロックサイズは、10.666画素となる。また、ブロック境界位置である位置R1は、座標系の左端から、スケーリング前の1画素分の位置であるので、スケーリング後の画素の1.333倍の位置であるとも言える。
ステップS34において、スケーリング前ブロック内位置計算部52は、今現在の制御カウンタcntで表現される位置が、スケーリング前のブロック内におけるいずれの画素に対応するかを示す、スケーリング前のブロック内の位置org_bcntを以下の式(2)を計算することにより求め、スケーリング前の位置org_pos、ブロック境界位置およびブロックサイズの情報と共に境界距離計算部53に供給する。尚、ここでは、1ブロックは、8画素×8画素であるものとする。
org_bcnt=F2[org_pos/8]
・・・(2)
ここで、F2[B]は、Bの剰余計算を求める関数を表している。すなわち、式(2)が計算されることにより、スケーリング前の画素の位置を8で除したときの剰余が求められるので、図14におけるスケーリング前のブロック内の位置org_bcntで示されるように、スケーリング前のブロック内における画素の位置として、0,1,2・・・7のいずれかが求められる。
ステップS35において、境界距離計算部53は、今現在のカウンタcntで表現される位置が、スケーリング前の(最も近い)ブロック境界位置までの距離org_bbdistを、以下の式(3)を計算することにより求め、スケーリング前のブロック内の位置org_bcnt、スケーリング前の位置org_pos、ブロック境界位置およびブロックサイズの情報と共に所属ブロック番号計算部54に供給する。
org_bbdist =org_bcnt (org_bcnt≦3)
org_bcnt−8 (org_bcnt>3)
・・・(3)
すなわち、スケーリング前のブロック境界位置までの距離org_bbdistは、スケーリング前のブロック内の位置org_bcntが3以下の場合、0,1,2,3のいずれかであり、スケーリング前のブロック内の位置org_bcntが3よりも大きい場合、−1,−2,−3,−4のいずれかである。つまり、入力画像データである、スケーリング後の画像データにおける各画素の、スケーリング前のブロック境界位置までの距離org_bbdistは、スケーリング前の最も近いブロック境界位置までの画素数として求められ、正の値である0乃至3の値の場合、図13における左方向に存在するブロック境界までの距離が示され、負の値である−1乃至−4の値の場合、図13における右方向に存在するブロック境界までの距離が示される。また、スケーリング前のブロック境界位置までの距離org_bbdistは、その絶対値が小さいほどブロック境界位置に近く、大きいほどブロック境界位置から離れていることが示される。
ステップS36において、所属ブロック番号計算部54は、今現在のカウンタcntで表現される位置の画素が、スケーリング前のどのブロックに所属していたのかを示すブロック番号bposを、以下の式(4)を計算することにより求め、スケーリング前のブロック境界位置までの距離org_bbdist、スケーリング前のブロック内の位置org_bcnt、スケーリング前の位置org_pos、ブロック境界位置およびブロックサイズの情報と共に境界座標計算部55に供給する。
bpos = F1[(org_pos−org_bbdist)/8]
・・・(4)
すなわち、ここでは、ブロックは、8画素×8画素であるので、スケーリング前の位置org_posから、ブロック内の位置org_bbdistを減算することにより、ブロック境界位置となる画素位置を求め、8で除することにより、例えば、図13で示されるように、基準となる左からのブロック数を求め、所属するブロック番号bposが求められる。
ステップS37において、境界座標計算部55は、今現在のカウンタcntで表現される位置の画素からみて、スケーリング前の画像データにおける最も近いブロック境界位置の、スケーリング後の座標bbposを、以下の式(5)を計算することにより求める。
bbpos = (bpos×8×64+block_pos)/block_ratio
・・・(5)
すなわち、所属ブロック番号bposは、図13で示されるように、基準となる左端からのブロック数であるので、ブロックを構成する画素数である8と、スケーリング前の画素のサイズである64(最小単位)を乗じて、さらに、オフセットされているブロック境界位置の情報を加算することで、最も近いブロック境界位置を、基準となる左端からの最小単位による距離として求め、これをスケーリング後の画素サイズとなるブロックサイズ比で除することにより、最も近いブロック境界位置の座標bbposとして求める。
ステップS38において、境界座標計算部55は、ステップS33乃至S37の処理により求められた、スケーリング前の位置org_pos、スケーリング前のブロック内の位置org_bcnt、スケーリング前のブロック境界位置までの距離org_bbdist、ブロック番号bpos、およびブロック境界位置の座標bbposが、今現在のカウンタcnt、および位置カウンタpos_cntに対応付けられて、位置制御情報として位置制御情報バッファ部40に記憶される。
ステップS39において、位置制御部31は、制御カウンタcntを1インクリメントする。
ステップS40において、位置制御部31は、位置カウンタpos_cntに、スケーリング後の画素の大きさを示すblock_ratioを加算する。
ステップS41において、位置制御部31は、1ライン分の処理が終了したか否かを判定し、終了していないと判定した場合、処理は、ステップS33に戻る。すなわち、1ライン分の処理が終了するまで、ステップS33乃至S40の処理が繰り返される。そして、ステップS41において、1ライン分の処理が終了したと判定された場合、位置制御情報生成処理は終了する。
以上の処理により、図14で示されるようなスケーリング後の画像データにおける各画素毎の、スケーリング前の画像データにおける画素、およびブロックとの位置を制御する情報が、位置制御情報として生成され、位置制御情報バッファ部40に記憶される。
尚、上述したように、図12のフローチャートにおける処理は、1ライン分の処理について説明するものであり、実際には、1フレーム、または1フィールド分の画像が処理されるので、ライン数分同様の処理が繰り返される。また、1フレーム、または1フィールド分の画像が処理できればよいので、水平方向のライン単位での処理のみならず、垂直方向の行単位で処理するようにしてもよい。
次に、図15のフローチャートを参照して、エッジ検出部32によるエッジ検出処理について説明する。
ステップS61において、エッジ検出部32は、スケーリング後の画像データのうち、未処理の1画素を注目画素D[x][y]に設定する。尚、D[x][y]は、水平方向の座標xおよび垂直方向の座標yで指定される、データ記憶部35に記憶されている入力画像データの画素のデータを示す。
ステップS62において、現在位置エッジ情報計算部61は、データ記憶部35に記憶されている入力画像データのうち、注目画素D[x][y]と、水平方向、垂直方向、および斜方向に隣接する画素D[x+1][y],D[x−1][y],D[x][y+1],D[x+1][y+1],D[x−1][y+1],D[x+1][y−1],D[x][y−1],D[x−1][y−1]の合計9画素を読み出し、以下の式(6)を計算することにより、注目画素のエッジ情報である、現在位置エッジ情報ed_xを求め、エッジ情報生成部63に供給する。
ed_x=(2×(|D[x+1][y]−D[x][y]|+|D[x][y]−D[x−1][y]|)
+(|D[x+1][y+1]−D[x][y+1]|+|D[x][y+1]−D[x−1][y+1]|)
+(|D[x+1[y−1]]−D[x][y−1]|+|D[x][y−1]−D[x−1][y−1]|))/8
・・・(6)
すなわち、式(6)における現在位置エッジ情報ed_xは、注目画素と上下の画素について、左右の画素間との差分絶対値和を求め、注目画素のラインについてのみ2倍し、これらを加算して8で除したものである。したがって、注目画素とその上下の画素における左右の画素間との間にエッジが存在すれば、現在位置エッジ情報ed_xは、大きな値となり、エッジが存在せず平坦な画像であれば、小さい値となる。
ステップS63において、境界位置エッジ情報計算部61は、位置制御情報バッファ部40より、注目画素D[x][y]の位置からみて、近傍のブロック境界位置bbposを読み出し、対応する境界画素D[b][y]と、水平方向、垂直方向、および斜方向に隣接する画素D[b+1][y],D[b−1][y],D[b][y+1],D[b+1][y+1],D[b−1][y+1],D[b+1][y−1],D[b][y−1],D[b−1][y−1]の合計9画素を読み出し、以下の式(7)を計算することにより、境界位置画素のエッジ情報である、境界位置エッジ情報ed_bを求め、エッジ情報生成部63に供給する。
ed_b=(2×(|D[b+1][y]−D[b][y]|+|D[b][y]−D[b−1][y]|)
+(|D[b+1][y+1]−D[b][y+1]|+|D[b][y+1]−D[b−1][y+1]|)
+(|D[b+1][y−1]−D[b][y−1]|+|D[b][y−1]−D[b−1][y−1]|))/8
・・・(7)
すなわち、式(7)における境界位置エッジ情報ed_bは、境界画素と上下の画素について、左右の画素間との差分絶対値和を求め、注目画素のラインについてのみ2倍し、これらを加算して8で除したものである。したがって、境界画素とその上下の画素における左右の画素間との間にエッジが存在すれば、境界位置エッジ情報ed_bは、大きな値となり、エッジが存在せず平坦な画像であれば、小さい値となる。
ステップS64において、エッジ情報生成部63は、現在位置エッジ情報計算部61、および境界位置エッジ情報計算部62より、それぞれ供給されてくる現在位置エッジ情報ed_xおよび境界位置エッジ情報ed_bとを比較し、現在位置エッジ情報ed_xが、境界位置エッジ情報ed_bよりも大きいか否かを判定する。
ステップS64において、例えば、現在位置エッジ情報ed_xが、境界位置エッジ情報ed_bよりも大きい場合、ステップS65において、エッジ情報生成部63は、現在位置エッジ情報ed_xをエッジ情報ed_maxとしてエッジ重み計算部64に供給する。
一方、ステップS64において、例えば、現在位置エッジ情報ed_xが、境界位置エッジ情報ed_bよりも大きくない場合、ステップS66において、エッジ情報生成部63は、境界位置エッジ情報ed_bをエッジ情報ed_maxとしてエッジ重み計算部64に供給する。
ステップS67において、エッジ重み計算部64は、エッジ情報生成部63より供給されてきたエッジ情報ed_maxに基づいて、以下の式(8)を計算することによりエッジ重みedwgtを求め、画素位置の情報と対応付けて、エッジ重みバッファ部41に記憶させる。
edwgt=0 (ed_max<core)
(ed_max−core)/(clip−core) (core≦ed_max<clip)
1 (ed_max≧clip)
・・・(8)
ここで、core、clipは、図16で示されるエッジ重みedwgtとエッジ情報ed_maxとの関係に従い、エッジ重みedwgtを正規化するためのパラメータである。尚、図16においては、横軸がエッジ情報ed_maxを表し、縦軸がエッジ重みedwgtの値を表している。すなわち、エッジ情報ed_maxの値がcoreとして設定される値より小さい場合、エッジ重みedwgtは0であり、エッジ情報ed_maxの値がcoreより大きくclipよりも小さい場合、エッジ重みedwgtは、(ed_max−core)/(clip−core)であり、エッジ情報ed_maxの値がclipよりも大きい場合、エッジ重みedwgtは、1として設定される。結果として、エッジ重みedwgtは、エッジ情報ed_maxの値の大きさに応じて、0乃至1が設定される。
ステップS68において、エッジ検出部32は、未処理の画素が存在するか否かを判定し、未処理の画素が存在する場合、処理は、ステップS61に戻り、未処理の画素が存在しないと判定されるまで、ステップS61乃至S68の処理が繰り返される。そして、ステップS68において、未処理の画素が存在しないと判定された場合、処理は終了する。
以上の処理により、エッジ重みedwgtは、注目画素におけるエッジの強度と、注目画素近傍の境界画素おけるエッジの強度とのいずれか大きな値をとるエッジ情報ed_maxが小さい場合、0であるものとみなされ、coreよりも大きくclipよりも小さい場合、clip−core間の差分に対する、エッジ情報ed_maxとcoreとの差分が正規化された値がエッジ重みedwgtとして設定され、エッジ情報ed_maxがclipよりも大きい場合、1に設定され、エッジ情報の大きさに応じて、すなわち、エッジの偏りに対応して重みが設定される。
尚、エッジ重みedwgtの正規化に当たっては、図16における関係のみならず、エッジ情報ed_maxにおける単調増加に比例した関係が保たれるものであれば、その他の関係を用いた正規化を行うものでもよい。また、式(7),式(8)においては、注目画素に対して水平方向、垂直方向、および斜方向に隣接する8画素との関係について求められる例について説明してきたが、ブロックサイズの大きさに比例して、注目画素からより離れた位置に存在する画素との関係を利用してもよく、例えば、注目画素を中心とした5画素×5画素の範囲に存在する24画素と注目画素との差分を利用するようにしてもよいし、その24画素のうち、隣接する8画素を除く、1画素離れた画素からなる16画素との差分を利用するようにしてもよいし、さらに、注目画素を中心として、所定数の複数画素離れた画素と注目画素との差分を利用するようにしてもよい。
次に、図17のフローチャートを参照して、図6のブロックノイズ検出部33によるブロックノイズ検出処理について説明する。
ステップS81において、ブロックノイズ検出部33は、データ記憶部35に記憶されている入力画像データのうち、未処理の画素を抽出し、注目画素として設定する。
ステップS82において、境界判定部81は、位置制御情報バッファ部40より位置制御情報を読み出し、スケーリング前のブロック境界内の位置org_bcntが0であるか否かにより、注目画素がブロック境界位置であるか否かを判定する。
ステップS82において、例えば、注目画素がブロック境界位置ではない場合、すなわち、スケーリング前のブロック境界内の位置org_bcntが0ではない場合、ステップS83乃至S97の処理はスキップされて、処理は、ステップS98に進む。
一方、ステップS82において、例えば、注目画素がブロック境界位置であった場合、すなわち、スケーリング前のブロック境界内の位置org_bcntが0である場合、ステップS83において、境界判定部81は、注目画素近傍の画素データをデータ記憶部35より読み出し、グラデーション段差条件計算部82、孤立点条件計算部85、テクスチャ偏り条件計算部87、および単純段差条件計算部89に供給する。すなわち、例えば、図18で示されるように、注目画素が斜線で示される画素P6であって、ブロック境界L1に存在する場合、例えば、画素P1乃至P5、および画素P7乃至P18が近傍の画素の画素値として読み出される。尚、図18においては、注目画素の画素位置が(x,y)で表現され、注目画素P6が、上述したD[x][y]で表現されると、画素P1乃至P18は、それぞれD[x−5][y],D[x−4][y],D[x−3][y],D[x−2][y],D[x−1][y],D[x][y],D[x+1][y],D[x+2][y],D[x+3][y],D[x+4][y],D[x−2][y−1],D[x−1][y−1],D[x][y−1],D[x+1][y−1],D[x−2][y+1],D[x−1][y+1],D[x][y+1],D[x+1][y+1]として表現されることになる。
ステップS84において、グラデーション段差条件計算部82は、以下の式(9)乃至式(20)を計算することにより、グラデーション段差条件式c_grad1乃至12を計算し、グラデーション段差条件判定部83に供給する。
c_grad1=||P5−P4|−|P6−P5||
・・・(9)
c_grad2=||P5−P4|−|P4−P3||
・・・(10)
c_grad3=||P7−P6|−|P6−P5||
・・・(11)
c_grad4=||P7−P6|−|P8−P7||
・・・(12)
c_grad5=|P6−P5|
・・・(13)
c_grad6=(|P5−P4|+|P4−P3|+|P7−P6|+|P8−P7|)/4
・・・(14)
c_grad7=(P6−P5)×(P3−P2)
・・・(15)
c_grad8=(P6−P5)×(P4−P3)
・・・(16)
c_grad9=(P6−P5)×(P5−P4)
・・・(17)
c_grad10=(P6−P5)×(P7−P6)
・・・(18)
c_grad11=(P6−P5)×(P8−P7)
・・・(19)
c_grad12=(P6−P5)×(P9−P8)
・・・(20)
ステップS85において、グラデーション段差条件判定部83は、グラデーション段差条件計算部82より供給されてきたグラデーション段差条件式c_grad1乃至12である式(9)乃至式(20)を取得し、これらの条件に応じて、グラデーション段差条件c_grad(c_grad1乃至12で表現される条件式により表現される条件)がグラデーション段差があることを満たすか否かを判定する。
より詳細には、グラデーション段差条件判定部83は、以下の式(21)乃至式(27)について比較し、式(21),式(22)のいずれかが真であり、かつ、式(23)が真であり、かつ、式(24)乃至式(27)の条件のいずれかが真であるか否かを判定することにより、グラデーション段差条件c_gradを満たしているか否かを判定し、グラデーション段差であるか否かを判定する。
c_grad1>c_grad2
・・・(21)
c_grad3>c_grad4
・・・(22)
c_grad5>c_grad6
・・・(23)
c_grad7<0 & c_grad8<0 & c_grad9<0 & c_grad10<0
・・・(24)
c_grad12<0 & c_grad11<0 & c_grad10<0 & c_grad9<0
・・・(25)
c_grad7≧0 & c_grad8≧0 & c_grad9≧0 & c_grad10≧0
・・・(26)
c_grad12≧0 & c_grad11≧0 & c_grad10≧0 & c_grad9≧0
・・・(27)
尚、式(24)乃至式(27)における「&」は、論理的にANDを表している。
すなわち、式(21)においては、図18における注目画素P6からみて、ブロック境界L1を跨ぐ画素間の画素値の変化が、ブロック境界L1の左側における画素値の変化よりも大きいことを示し、逆に、式(22)においては、図18における注目画素P6からみて、ブロック境界L1の画素値の変化が、ブロック境界L1の右側における画素値の変化よりも大きいことを示している。
また、式(23)は、ブロック境界L1を跨ぐ画素間の画素値の変化が、ブロック境界L1に隣接し、ブロック境界L1を跨がない、画素間の差分の平均よりも大きいことを示している。
さらに、式(24)乃至式(27)は、いずれもブロック境界L1を跨ぐ画素間の変化の方向(画素の階調が順次上昇しているか、または、順次下降している方向)と一致する変化をしていることを示している。
ステップS85において、例えば、グラデーション段差条件c_gradが満たされていると判定された場合、ステップS86において、グラデーション段差条件判定部83は、グラデーション段差条件c_gradが満たされていることを示す判定結果をブロックノイズ特徴判定部84、および孤立点条件計算部85に供給する。ブロックノイズ特徴判定部84は、この判定結果に基づいて、注目画素のブロックノイズ特徴情報bclassをグラデーション段差を示すGRADATIONとして設定する。
一方、ステップS85において、グラデーション段差条件c_gradが満たされていないと判定された場合、ステップS87において、グラデーション段差条件判定部83は、グラデーション段差条件が満たされていないことを示す判定結果をブロックノイズ特徴判定部84、および孤立点条件計算部85に供給する。この判定結果に基づいて、孤立点条件計算部85は、孤立点条件式c_point1乃至10である以下の式(28)乃至式(37)を計算し、孤立点条件判定部86に供給する。
c_point1=(P5−P4)×(P6−P5)
・・・(28)
c_point2=(P16−P5)×(P5−P12)
・・・(29)
c_point3=(P5−P4)×(P16−P5)
・・・(30)
c_point4=MAX[|P5−P12|,|P16−P5|,|P5−P4|,|P6−P5|]
・・・(31)
c_point5=MIN[|P5−P12|,|P16−P5|,|P5−P4|,|P6−P5|]
・・・(32)
c_point6=(P6−P5)×(P7−P6)
・・・(33)
c_point7=(P17−P6)×(P6−P13)
・・・(34)
c_point8=(P6−P5)×(P17−P6)
・・・(35)
c_point9=MAX[|P6−P13|,|P17−P6|,|P6−P5|,|P7−P6|]
・・・(36)
c_point10=MIN[|P6−P13|,|P17−P6|,|P6−P5|,|P7−P6|]
・・・(37)
ここで、MAX[A,B,C,D]およびMIN[A,B,C,D]は、それぞれ、[A,B,C,D]の値のうち、最大値、および最小値を選択することを示している。
ステップS88において、孤立点条件判定部86は、孤立点条件計算部85より供給されてきた孤立点条件式c_point1乃至10である式(28)乃至式(37)を取得し、これらの条件に応じて、孤立点条件c_pointが孤立点であることを満たすか否かを判定する。
より詳細には、孤立点条件判定部86は、以下の式(38)乃至式(47)について比較し、式(38)乃至式(42)の全てが真であるか、または、式(43)乃至式(47)の全てが真であるか否かを判定することにより、孤立点条件c_point(孤立点条件式c_point1乃至10で表現される条件)を満たしているか否かを判定する。
c_point1<0
・・・(38)
c_point2<0
・・・(39)
c_point3>0
・・・(40)
c_point4≧th1
・・・(41)
(c_point5)/4<c_point4
・・・(42)
c_point6<0
・・・(43)
c_point7<0
・・・(44)
c_point8>0
・・・(45)
c_point9≧th1
・・・(46)
(c_point10)/4<c_point9
・・・(47)
ここで、th1は、所定の閾値を示している。
すなわち、式(38)においては、図18における注目画素P6とブロック境界L1を跨いて隣接する画素P5との変化方向と、画素P5と隣接する画素P4との画素間の変化方向とが、一致していないことが示され、また、式(39)においては、画素P5と上下に隣接する画素間のそれぞれの変化方向が一致していないことが示されている。さらに、式(40)においては、画素P5の下方向の隣接画素P16との変化方向と、画素P5の左方向に隣接画素P4との変化方向が同一であることが示されている。また、式(40)においては、画素P5と、画素P5の上下左右方向にそれぞれ隣接する画素間の差分絶対値のうち、最小値が、所定の閾値th1よりも大きいことを示している。さらに、式(41)においては、画素P5の上下左右方向にそれぞれ隣接する画素間の差分絶対値のうち、最大値の1/4が、最小値よりも小さいことを示している。
一方、式(43)においては、図18における注目画素P6とブロック境界L1を跨いて隣接する画素P5との変化方向と、注目画素P6と隣接する画素P7との画素間の変化方向とが、一致していないことが示され、また、式(44)においては、注目画素P6と上下に隣接する画素間のそれぞれの変化方向が一致していないことが示されている。さらに、式(45)においては、注目画素P6の下方向の隣接画素P17との変化方向と、画素P6の左方向の隣接画素P5との変化方向が同一であることが示されている。また、式(46)においては、画素P6と、画素P6の上下左右方向にそれぞれ隣接する画素間の差分絶対値のうち、最小値が、所定の閾値th1よりも大きいことを示している。さらに、式(47)においては、画素P6の上下左右方向にそれぞれ隣接する画素間の差分絶対値のうち、最大値の1/4が、最小値よりも小さいことを示している。
すなわち、注目画素P6、または、ブロック境界L1を挟んで隣接する画素P5のいずれかが、隣接画素との差が大きく、変化の方向が一致しない場合、注目画素を孤立点としてみなす。
ステップS88において、例えば、式(38)乃至式(42)の全てが真であるか、または、式(43)乃至式(47)の全てが真である場合、ステップS89において、孤立点条件判定部86は、孤立点条件c_pointが満たされていることを示す判定結果をブロックノイズ特徴判定部84、およびテクスチャ偏り条件計算部87に供給する。ブロックノイズ特徴判定部84は、この判定結果に基づいて、注目画素のブロックノイズ特徴情報bclassを孤立点を示すPOINTとして設定する。
一方、ステップS88において、孤立点条件c_pointが満たされていないと判定された場合、ステップS90において、孤立点条件判定部86は、孤立点条件が満たされていないことを示す判定結果をブロックノイズ特徴判定部84、およびテクスチャ偏り条件計算部87に供給する。この判定結果に基づいて、テクスチャ偏り条件計算部87は、テクスチャ偏り条件式c_tex1乃至8である以下の式(48)乃至式(55)を計算し、テクスチャ偏り条件判定部88に供給する。尚、式(48)乃至式(52)は、それぞれc_grad1乃至c_grad4およびc_grad9と同一である。
c_tex1=||P5−P4|−|P6−P5||(=c_grad1)
・・・(48)
c_tex2=||P5−P4|−|P4−P3||(=c_grad2)
・・・(49)
c_tex3=||P7−P6|−|P6−P5||(=c_grad3)
・・・(50)
c_tex4=||P7−P6|−|P8−P7||(=c_grad4)
・・・(51)
c_tex5=(P5−P4)×(P6−P5)(=c_grad9)
・・・(52)
c_tex6=(P5−P4)×(P4−P3)
・・・(53)
c_tex7=(P7−P6)×(P6−P5)
・・・(54)
c_tex8=(P7−P6)×(P8−P7)
・・・(55)
ステップS91において、テクスチャ偏り条件判定部88は、テクスチャ偏り条件計算部87より供給されてきたテクスチャ偏り条件式c_tex1乃至8である式(48)乃至式(55)を取得し、これらの条件に応じて、テクスチャ偏り条件c_texがテクスチャ偏りがあることを満たすか否かを判定する。
より詳細には、テクスチャ偏り条件判定部88は、以下の式(56)乃至式(59)について比較し、式(56),式(57)のいずれかが真であり、かつ、式(58)および式(59)が真であるか、または、式(60)および式(61)の条件のいずれかが真であるか否かを判定することにより、テクスチャ偏り条件c_texを満たしているか否かを判定する。
c_tex1>c_tex2
・・・(56)
c_tex3>c_tex4
・・・(57)
c_tex5<0
・・・(58)
c_tex6≧0
・・・(59)
c_tex7<0
・・・(60)
c_tex8≧0
・・・(61)
すなわち、式(56)においては、図18における注目画素P5からみて、ブロック境界L1を跨ぐ画素間の画素値の変化が、ブロック境界L1の左側における画素値の変化よりも大きいことを示し、逆に、式(57)においては、図18における注目画素P5からみて、ブロック境界L1の画素値の変化が、ブロック境界L1の右側における画素値の変化よりも大きいことを示している。
また、式(58)においては、図18で示されるように、ブロック境界L1を跨ぐ2画素と、その左側に存在する画素P4乃至P6のそれぞれで隣接する画素間の画素値の変化方向を示し、式(59)においては、式(58)における画素P4乃至P6に対して、それぞれ1画素左側に隣接する画素P3乃至P5のそれぞれで隣接する画素間の画素値の変化方向を示している。
さらに、式(60)においては、図18で示されるように、ブロック境界L1を跨ぐ2画素と、その右側に存在する画素P5乃至P7のそれぞれで隣接する画素間の画素値の変化方向を示し、式(61)においては、式(60)における画素P5乃至P7に対して、それぞれ1画素右側に隣接する画素P6乃至P8のそれぞれで隣接する画素間の画素値の変化方向を示している。
ステップS91において、例えば、テクスチャ偏り条件c_texが満たされていると判定された場合、ステップS92において、テクスチャ偏り条件判定部88は、満たされていることを示す判定結果をブロックノイズ特徴判定部84、および単純段差条件計算部89に供給する。ブロックノイズ特徴判定部84は、この判定結果に基づいて、注目画素のブロックノイズ特徴情報bclassを模様成分のピークが集中するテクスチャ偏りを示すTEXTUREとして設定する。
一方、ステップS91において、テクスチャ偏り条件c_texが満たされていないと判定された場合、ステップS93において、テクスチャ偏り条件判定部88は、テクスチャ偏り条件が満たされていないことを示す判定結果をブロックノイズ特徴判定部84、および単純段差条件計算部89に供給する。この判定結果に基づいて、単純段差条件計算部89は、単純段差条件式c_step1,2である以下の式(62),式(63)を計算し、単純段差条件判定部90に供給する。
c_step1=|P6−P5|
・・・(62)
c_step2=(|P5−P4|+|P4−P3|+|P3−P2|+|P2−P1|
+|P7−P6|+|P8−P7|+|P9−P8|+|P10−P10|)/8
・・・(63)
ステップS94において、単純段差条件判定部90は、単純段差条件計算部89より供給されてきた単純段差条件式c_step1,2である式(62),式(63)を取得し、これらの条件に応じて、単純段差条件c_stepが単純段差があることを満たすか否かを判定する。
より詳細には、単純段差条件判定部90は、以下の式(64)について比較し、式(64)が真であるか否かを判定することにより、単純段差条件c_stepを満たしているか否かを判定する。
c_step1>c_step2
・・・(64)
すなわち、式(64)においては、図18における注目画素P6と、ブロック境界L1を跨ぐ画素間の画素値の変化が、ブロック境界L1を跨ぐ、水平方向の8画素における変化の平均よりも大きいことを示している。
ステップS94において、例えば、単純段差条件c_stepが満たされていると判定された場合、ステップS95において、単純段差条件判定部90は、単純段差条件c_stepが満たされていることを示す判定結果をブロックノイズ特徴判定部84に供給する。ブロックノイズ特徴判定部84は、この判定結果に基づいて、注目画素のブロックノイズ特徴情報bclassを単純段差を示すSTEPとして決定する。
一方、ステップS94において、単純段差条件c_stepが満たされていないと判定された場合、ステップS96において、単純段差条件判定部90は、単純段差条件が満たされていないことを示す判定結果をブロックノイズ特徴判定部84に供給する。この判定結果に基づいて、すなわち、グラデーション段差、孤立点、テクスチャ偏り、および単純段差のいずれでもないとの判定結果に基づいて、ブロックノイズ特徴判定部84は、注目画素のブロックノイズ特徴情報bclassをノイズが存在しないことを示すNOT_NOISEに設定する。
ステップS97において、ブロックノイズ特徴判定部84は、ステップS86,S89,S92,S95,S96のいずれかの処理により決定されたブロック特徴情報bclassを検出データバッファ部36に記憶させる。
一方、ステップS82において、ブロック境界位置ではないと判定された場合、処理は、ステップS96に進む。すなわち、ブロック境界位置ではないと判定された場合、注目画素のブロックノイズ特徴情報bclassは、ノイズが存在しないことを示すNOT_NOISEに設定される。
ステップS98において、境界判定部81は、データ記憶部35に記憶されている入力画像データのうち、未処理の画素が存在するか否かを判定し、未処理の画素が存在すると判定された場合、処理は、ステップS81に戻る。すなわち、未処理の画素が存在しないと判定されるまで、ステップS81乃至S98の処理が繰り返される。そして、ステップS98において、未処理の画素がないと判定された場合、処理は終了する。
以上の処理により、入力画像データのうち、ブロック境界位置の画素について、ブロックノイズ特徴情報bclassが設定されて、設定されたブロックノイズ特徴情報bclassが検出データバッファ部36に記憶される。
尚、式(9)乃至式(64)で示される関係については、図18中の画像の相対位置を示しているが、これは、ブロックが16画素×16画素未満(ブロックサイズ比では32より大きい)の場合、関係が成立するが、ブロックサイズが16画素×16画素以上(ブロックサイズ比が32以下)の場合、例えば、図19で示されるように、水平方向、または、垂直方向に1画素おきに参照することで、スケーリングにより高域の情報が失われたときでも、ブロックノイズ特徴情報bclassを検出することができる。
すなわち、図19の場合、画素P1乃至P18は、画素D[x−9][y],D[x−7][y],D[x−5][y],D[x−3][y],D[x−1][y],D[x+1][y],D[x+3][y],D[x+5][y],D[x+7][y],D[x+9][y],D[x−3][y−1],D[x−1][y−1],D[x+1][y−1],D[x+3][y−1],D[x−3][y+1],D[x−1][y+1],D[x+1][y+1],D[x+3][y+1]となり、ブロック境界L1は、水平方向の原点位置となる。
次に、図20のフローチャートを参照して、図7のノイズ低減処理部34によるノイズ低減処理について説明する。
ステップS111において、近傍情報取得部111は、入力画像データのうち、未処理の画素のいずれかを注目画素に設定し、設定した注目画素の情報をブロックノイズ特徴情報取得部112に供給する。
ステップS112において、ブロックノイズ特徴情報取得部112は、検出データバッファ部36より注目画素のブロックノイズ特徴情報bclassを取得する。
ステップS113において、近傍情報取得部111は、入力画像データのうち注目画素と、その近傍の画素のデータをデータ記憶部35より取得し、グラデーション段差補正部113、出力部114、孤立点除去部115、テクスチャ平滑化処理部116、および単純段差平滑化処理部117に供給する。
ステップS114において、ブロックノイズ特徴情報取得部112は、注目画素のブロックノイズ特徴情報bclassが、グラデーション段差を示すGRADATIONであるか否かを判定する。ステップS114において、例えば、注目画素のブロックノイズ特徴情報bclassが、グラデーション段差を示すGRADATIONである場合、ステップS115において、ブロックノイズ特徴情報取得部112は、グラデーション段差補正部113に対して補正処理を指示する。これに応じて、グラデーション段差補正部113は、グラデーション段差を補正し、補正結果を出力部114に出力する。
より具体的には、グラデーション段差補正部113は、段差計算部113aを制御して、注目画素から最も近いブロック境界の画素の変化を段差stepとして計算させる。例えば、図21の上部の場合、段差計算部113aブロック境界L1を跨ぐ画素P5,P6の画素間差分を段差step(=P5−P6)を計算する。尚、図21の上部においては、水平方向の画素P1乃至P10における画素値を縦軸の高さで示したものであり、ブロック境界L1を跨ぐ画素間の段差stepが示されている。
そして、グラデーション段差補正部113は、補正量計算部113bを制御して、以下の式(65)を計算することにより、近傍の画素の補正量を計算する。
Δ[Px]=−(step×(7−org_bbdist×2))/16 (org_bbdist≧0)
(step×(7−|org_bbdist+1|×2))/16 (org_bbdist<0)
・・・(65)
ここで、Δ[Px]は、画素Pxの補正量を示し、stepは、段差計算部113aにより計算された段差を示し、org_bbdistは、図14で示されるスケーリング前のブロック境界位置までの距離を示している。すなわち、補正量計算部113bは、式(65)を計算することにより、スケーリング前のブロック境界位置までの距離org_bbdist応じた補正量を計算する。
さらに、グラデーション段差補正部113は、補正処理部113cを制御して、以下の式(66)を計算させることにより、画素値を補正する。
FIL_OUT=Px+Δ[Px]
・・・(66)
ここで、FIL_OUTは、ノイズ低減画像データを示し、Pxは、図21の上部で示される入力画像データにおける水平方向xの画素P1乃至P10の画素値を示している。
すなわち、補正処理部113cは、式(66)を計算することにより、図21の下部の点線で示されるように、近傍のブロック境界を跨ぐ画素間の画素値の差分(段差step)と、ブロック境界からの距離(距離org_bbdist)に応じて、画素値を補正する。図21の下部においては、実線で示される入力画像データに対して、点線で示されるように、ブロック境界からの距離に応じた補正量で、画素値が補正されることが示されている。
尚、ブロック境界の画素間の画素値の差分を段差stepとする例について説明してきたが、ブロック境界における画素間の画素値の変化が反映できればよいので、例えば、ブロック境界位置の画素ではなく、その画素に隣接する画素同士の差分を用いて、補正量を調整するようにしてもよい。また、ブロック境界からの距離に応じた補正ができればよいので、上述したような段差stepを用いた方法以外でもよく、例えば、LPF(Low Pass Filter:低域通過フィルタ)を用いるようにしても良い。
一方、ステップS114において、例えば、注目画素のブロックノイズ特徴情報bclassが、グラデーション段差を示すGRADATIONではない場合、ステップS116において、ブロックノイズ特徴情報取得部112は、注目画素のブロックノイズ特徴情報bclassが、孤立点を示すPOINTであるか否かを判定する。ステップS116において、例えば、注目画素のブロックノイズ特徴情報bclassが、孤立点を示すPOINTである場合、ステップS117において、ブロックノイズ特徴情報取得部112は、孤立点除去部115に対して孤立点除去処理を指示する。これに応じて、孤立点除去部115は、孤立点除去補正フィルタ部115aを使用して、孤立点除去を実行することにより、画素値を補正し、補正結果を出力部114に出力する。
より具体的には、孤立点除去補正フィルタ部115aは、メディアンフィルタのような非線型フィルタであり、以下の式(67)で示されるような計算により孤立点を除去する。
FIL_OUT =MED[D[x−1],D[x],D[x+1]]
・・・(67)
ここで、MED[A,B,C]はA,B,Cの中の中間の値を選択する関数である。また、D[x−1],D[x],D[x+1]は、D[x]が、注目画素の画素値を示し、D[x−1],D[x+1]が、注目画素に隣接する左右の画素の画素値を示している。尚、孤立点除去補正フィルタ部115aは、LPFとして実現してもよいが、メディアンフィルタを使用することにより、LPFよりも、より低減効果を強めることができる。
一方、ステップS116において、例えば、注目画素のブロックノイズ特徴情報bclassが、孤立点を示すPOINTではない場合、ステップS118において、ブロックノイズ特徴情報取得部112は、注目画素のブロックノイズ特徴情報bclassが、テクスチャ偏りを示すTEXTUREであるか否かを判定する。ステップS118において、例えば、注目画素のブロックノイズ特徴情報bclassが、テクスチャ偏りを示すTEXTUREである場合、ステップS119において、ブロックノイズ特徴情報取得部112は、テクスチャ平滑化処理部116に対してテクスチャ平滑化処理を指示する。これに応じて、テクスチャ平滑化処理部116は、テクスチャ補正フィルタ部116aを使用して、テクスチャ補正処理を実行することにより、画素値を補正し、補正結果を出力部114に出力する。
より具体的には、テクスチャ補正フィルタ部116aは、LPFであり、以下の式(68)で示されるような計算により孤立点を除去する。
FIL_OUT =0.25×D[x−1]+0.5×D[x]+0.25×D[x+1]
・・・(68)
尚、式(68)においては、注目画素とその左右に隣接する3画素によるLPFを用いた例について説明してきたが、それ以上の画素数を利用したLPFを使用するようにしても良い。
さらに、ステップS118において、例えば、注目画素のブロックノイズ特徴情報bclassが、テクスチャ偏りを示すTEXTUREではない場合、ステップS120において、ブロックノイズ特徴情報取得部112は、注目画素のブロックノイズ特徴情報bclassが、単純段差を示すSTEPであるか否かを判定する。ステップS120において、例えば、注目画素のブロックノイズ特徴情報bclassが、単純段差を示すSTEPである場合、ステップS121において、ブロックノイズ特徴情報取得部112は、単純段差平滑化処理部117に対して単純段差平滑化処理を指示する。これに応じて、単純段差平滑化処理部117は、単純段差補正フィルタ部117aを使用して、単純段差補正処理を実行することにより、画素値を補正し、補正結果を出力部114に出力する。
より具体的には、単純段差補正フィルタ部117aは、LPFであり、例えば、上述した式(68)で示されるような計算により孤立点を除去する。
尚、以上においては、単純段差に対しての補正処理と、テクスチャ偏りに対しての補正処理とが同一のLPFにより処理される例について説明してきたが、異なるLPFとするようにしてもよい。また、単純段差に対しての補正処理と、テクスチャ偏りに対しての補正処理とで、利用する画素数が異なるLPFを使用するようにしても良い。
また、ステップS120において、例えば、注目画素のブロックノイズ特徴情報bclassが、単純段差を示すSTEPではない場合、すなわち、ブロックノイズ特徴情報bclassが、単純段差を示すNON_NOISEである場合、処理は、ステップS122に進む。
ステップS122において、出力部114は、近傍情報取得部111、グラデーション段差補正部113、孤立点除去部115、テクスチャ平滑化処理部116、または単純段差平滑化処理部117のいずれかから供給された画素値をノイズ低減画像データFIL_OUTとして出力する。
ステップS123において、近傍情報取得部111は、入力画像データのうち、未処理の画素が存在するか否かを判定し、存在する場合、処理は、ステップS111に戻る。すなわち、全ての入力画像データにおける画素について処理が終了するまで、ステップS111乃至S123の処理が繰り返される。そして、ステップS123において、未処理の画素が存在しないと判定された場合、処理は終了する。
すなわち、グラデーション段差補正部113、孤立点除去部115、テクスチャ平滑化処理部116、または単純段差平滑化処理部117のいずれかから補正処理された画素値が供給された場合、出力部114は、その補正結果をノイズ低減画像データFIL_OUTとして出力し、補正対象とされなかった画素については、近傍情報取得部111から供給された画素値がそのままノイズ低減画像データFIL_OUTとして出力される。
以上の処理によりブロックノイズ特徴情報に応じて、各画素のノイズが低減される。このため、ブロックノイズのノイズの強さや種類に応じて、各画素が補正されることになるので、一律にノイズを低減させる処理をする場合と異なり、強いノイズに対して補正の程度が弱すぎることにより、ノイズが十分に低減できなかったり、弱いノイズに対して、必要以上に強い補正をすることにより、実際の画像データが欠落してしまうといった事態を抑制させることができ、ブロックノイズの種類に応じた適応的なブロックノイズの低減を実現することができる。
次に、図22のフローチャートを参照して、図8の処理重み制御部37により処理重み制御処理について説明する。
ステップS141において、近傍データ取得部131は、ノイズ低減処理部34より供給されてきたノイズ低減画像データFIL_OUTを取得し、対応する入力画像データをデータ記憶部35より取得すると共に、さらに、ノイズ低減画像データFIL_OUTに対応する近傍画素のブロックノイズ特徴情報bclassを検出データバッファ部36より読み出し、バッファ部132に記憶させる。すなわち、例えば、図23の黒丸で示されるように、ノイズ低減画像データFIL_OUT[y][bpos]のブロックノイズ特徴情報がbclass[y][bpos]で表現される場合、近傍データ取得部131は、その近傍の画素として、垂直方向に配置される、同一のブロック番号のブロックに属する画素のブロックノイズ特徴情報bclass[y−3][bpos],bclass[y−2][bpos],bclass[y−1][bpos],bclass[y+1][bpos],bclass[y+2][bpos],bclass[y+3][bpos]を、検出データバッファ部36より読み出し、バッファ部132にブロックノイズ特徴情報class_buf[0]乃至[6]として記憶させる。
ステップS142において、処理重み処理部37は、図示せぬループカウンタcntを0にリセットし、ステップS143において、図示せぬ条件カウンタcond_cntを0にリセットする。
ステップS144において、比較部133は、バッファ部132に記憶されている7画素のブロックノイズ特徴情報class_buf[0]乃至[6]のうち、供給されてきたノイズ低減画像データFIL_OUTのブロックノイズ特徴情報に対応するブロックノイズ特徴情報class_buf[c]=class_buf[3]と、ブロックノイズ特徴情報class_buf[cnt]とを比較し、ブロックノイズ特徴情報class_buf[c]=class_buf[3]がブロックノイズ特徴情報class_buf[cnt]と同一であるか否かを判定する。
ステップS144において、例えば、ブロックノイズ特徴情報class_buf[c]=class_buf[3]がブロックノイズ特徴情報class_buf[cnt]と同一であると判定された場合、ステップS145において、比較部133は、図示せぬ条件カウンタcond_cntを1インクリメントし、比較結果記憶部134に記憶させる。
ステップS146において、比較部133は、図示せぬループカウンタcntを1インクリメントする。
一方、ステップS144において、例えば、ブロックノイズ特徴情報class_buf[c]=class_buf[3]がブロックノイズ特徴情報class_buf[cnt]と同一ではないと判定された場合、ステップS145の処理がスキップされる。
ステップS147において、処理重み制御部37は、ループカウンタcntが、バッファ部132にブロックノイズ特徴情報として読み込まれている個数である7以上であるか否かを判定する。ステップS147において、例えば、7以上ではない場合、処理は、ステップS144に戻る。すなわち、ノイズ低減画像データFIL_OUTに対応するclass_buf[c]=class_buf[3]が、記憶されている全てのブロックノイズ特徴情報class_buf[0]乃至[6]と同一であるか否かが判定され、同一である個数が、条件カウンタcond_cntとして比較結果記憶部134に記憶される。
そして、ステップS147において、ループカウンタcntが、バッファ部132にブロックノイズ特徴情報として読み込まれている個数である7以上であると判定された場合、ステップS148において、処理重み計算部135は、比較結果記憶部134に記憶されている条件カウンタcond_cntを読み出し、条件カウンタcond_cntに基づいて、処理重みpwgtを計算し、処理重み付加部136に供給する。
より具体的には、処理重み計算部135は、条件カウンタcond_cntが、ブロックノイズ特徴情報class_buf[cnt]の個数であった7の半数より大きい、すなわち、条件カウンタcond_cntが4以上である場合、処理重みpwgtを4に設定し、4以上ではない場合、条件カウンタcond_cntの値を処理重みpwgtとして設定する。
ステップS149において、処理重み付加部136は、処理重み計算部135より供給されてきた処理重みpwgtに基づいて、ノイズ低減画像データFIL_OUTと、入力画像データD[x][y]とを合成することで、処理重みpwgtを付加して、処理重み制御画像データP_OUTとしてエッジ重み制御部38に出力する。
より具体的には、処理重み付加部136は、以下の式(69)を計算することにより、ノイズ低減画像データFIL_OUTと、入力画像データD[x][y]とを合成することで、処理重みpwgtを付加して、処理重み制御画像データP_OUTとしてエッジ重み制御部38に出力する。
P_OUT=FIL_OUT×pwgt/4+D[x][y]×(1−pwgt/4)
・・・(69)
以上の処理により供給されてきたノイズ低減画像データFIL_OUTの画素のブロックノイズ特徴情報が、その近傍の画素のものと同一なものが多いほど、処理重みによりノイズ低減画像データFIL_OUTの影響が強い処理重み制御画像データP_OUTが生成され、逆に、ノイズ低減画像データFIL_OUTの画素のブロックノイズ特徴情報が、その近傍の画素のものと同一なものが少ないほど、入力画像データの影響が強い処理重み制御画像データP_OUTが生成される。
すなわち、ブロックノイズ特徴情報は、ブロック単位でのノイズの特徴を示したものであるので、ブロック単位で同一の情報となる可能性が高く、また、同一の情報となるほどブロックノイズ特徴情報の信頼性も高いと考えることができる。そこで、近傍の画素について、同一のブロックノイズ特徴情報を備えた画素が多い場合、処理重みpwgtを大きくして、ブロックノイズ特徴情報に基づいてノイズ低減されたノイズ低減画像データの合成比率を増すように処理重み制御画像を生成させ、逆に、同一のブロックノイズ特徴情報を備えた画素が少ない場合、処理重みpwgtを小さくして、入力画像データの合成比率を増すように処理重み制御画像を生成させる。このようにすることで、ノイズ低減画像データの合成比率を、ブロックノイズの強さに合わせて適応的に調整することが可能となる。
次に、図24のフローチャートを参照して、図9のエッジ重み制御部38によるエッジ重み制御処理について説明する。
ステップS161において、データ取得部151は、処理重み制御部37より供給されてくる処理重み制御画像データP_OUTを取得し、さらに、処理重み制御画像データP_OUTに対応する画素位置の入力画像データD[x][y]を、エッジ重み付加部152に供給する。
ステップS162において、エッジ重み付加部152は、エッジ重みバッファ部41より、処理重み制御画像データP_OUTに対応する位置のエッジ重みバッファ部41よりエッジ重みedwgtを読み出す。
ステップS163において、エッジ重み付加部152は、エッジ重みedwgtに基づいて、処理重み制御画像データP_OUTと、入力画像データD[x][y]とを合成することで、エッジ重みedwgtを付加して、エッジ重み制御画像データE_OUTとして位置重み制御部39に出力する。
より具体的には、エッジ重み付加部152は、以下の式(70)を計算することにより、処理重み制御画像データP_OUTと、入力画像データD[x][y]とを合成することで、エッジ重みedwgtを付加して、エッジ重み制御画像データE_OUTとして位置重み制御部39に出力する。
E_OUT=P_OUT×edwgt+D[x][y]×(1−edwgt)
・・・(70)
以上の処理により供給されてきた処理重み制御画像データP_OUTのエッジ重みedwgtが大きいほど、処理重み制御画像データP_OUTの影響が強いエッジ重み制御画像データE_OUTが生成され、逆に、エッジ重みedwgtが小さいほど、入力画像データの影響が強いエッジ重み制御画像データE_OUTが生成される。
次に、図25を参照して、図10の位置重み制御部39による位置重み制御処理について説明する。
ステップS181において、データ取得部171は、エッジ重み制御部38より供給されてきたエッジ制御画像データE_OUTの位置に基づいて、検出データバッファ部36より、対応する位置のブロックノイズ特徴情報bclassを取得すると共に、位置制御情報を取得し、ブロックノイズ特徴情報bclassを、位置重み計算部173に供給し、位置制御情報およびエッジ制御画像データE_OUTを距離ID計算部172に供給する。
ステップS182において、距離ID計算部172は、位置制御情報におけるスケーリング前のブロック境界位置までの距離org_bbdistに基づいて、以下の式(71)を計算することにより、距離IDdist_idを計算し、位置重み計算部173に供給する。
dist_id=org_bbdist (org_bbdist≧0)
|1+org_bbdist| (org_bbdist<0)
・・・(71)
すなわち、距離ID計算部172は、図26で示されるように、ブロック境界L1からの距離に応じた距離IDが設定され、ブロック境界位置までの距離org_bbdistで表現される0,−1の画素が、距離IDがdist_id=0として計算され、ブロック境界位置までの距離org_bbdistで表現される1,−2の画素が、距離IDがdist_id=1として計算され、ブロック境界位置までの距離org_bbdistで表現される2,−3の画素が、距離IDがdist_id=2として計算され、ブロック境界位置までの距離org_bbdistで表現される3,−4の画素が、距離IDがdist_id=3として計算される。
ステップS183において、位置重み計算部173は、ブロックノイズ特徴情報bclassおよび距離IDに基づいて、テーブル173aを参照して、位置重みposwgtを計算し、位置重み付加部174に供給する。
テーブル173aには、例えば、図27で示されるように、ブロックノイズ特徴情報bclassと距離IDとの組み合わせから位置重みposwgtが設定されている。すなわち、図27においては、ブロックノイズ特徴情報bclassがグラデーション段差を示すGRADATIONである場合、距離IDが0乃至3のとき、位置重みposwgtが1.0に設定され、ブロックノイズ特徴情報bclassが孤立点を示すPOINTである場合、または、テクスチャ偏りを示すTEXTUREである場合、距離IDが0のとき、位置重みposwgtが1.0に設定され、距離IDが1乃至3のとき、位置重みposwgtが0.0に設定され、ブロックノイズ特徴情報bclassが単純段差を示すSTEPである場合、距離IDが0のとき、位置重みposwgtが1.0に設定され、距離IDが1のとき、位置重みposwgtが0.5に設定され、距離IDが2のとき、位置重みposwgtが0.25に設定され、距離IDが3のとき、位置重みposwgtが0.0に設定され、さらに、ブロックノイズ特徴情報bclassがノイズがないことを示すNOT_NOISEである場合、距離IDが0乃至3のとき、位置重みposwgtが0.0に設定される。
すなわち、位置重みposwgtは、ブロックノイズが、広い範囲で影響するグラデーション段差については、距離に関わらず大きな重みが設定されている。また、局地的なブロックノイズである、孤立点やテクスチャ偏りについては、ブロック境界位置に最も近い位置についてのみ大きく重みを設定し、離れた位置に対しては重みを付加しない。さらに、単純段差のブロックノイズについては、ブロック境界位置からの距離に応じて重みが小さく設定されている。
ステップS184において、位置重み付加部174は、入力画像データD[x][y]およびエッジ重み制御画像データE_OUTに対して、以下の式(72)を計算することにより、位置重みを付加し、ブロックノイズ低減画像データとして出力する。
OUT = (E_OUT×poswgt+(1−poswgt)×D[x][y])
・・・(72)
すなわち、位置重みposwgtが大きいほど、エッジ重み制御画像データの影響が大きな画像が生成され、逆に、位置重みposwgtが小さいほど、補正前の入力画像データがそのまま出力される。
以上の処理によりブロック境界位置からの距離、すなわち、ブロック内における位置に応じた重みが設定されて、入力画像データが補正される。
尚、位置重みによる制御効果を高めるようにしてもよく、そのような場合、例えば、テーブル172aにおける設定を変更するようにしてもよいし、例えば、図28で示されるような設定とするようにしてもよい。すなわち、図28においては、図27で示される例と比べて、ブロックノイズ特徴情報bclassがテクスチャ偏り示すTEXTUREの場合、および単純段差を示すSTEPの場合において、設定が異なる。より詳細には、図28においては、ブロックノイズ特徴情報bclassがテクスチャ偏り示すTEXTUREの場合、距離IDが0乃至3に対して、それぞれ重みが1.0,0.75,0.5,0.25と設定されており、ブロック境界L1からの距離に応じて重みが徐々に低下するように設定されている。また、図28においては、ブロックノイズ特徴情報bclassが単純段差示すSTEPの場合、距離IDが0乃至3に対して、重みが一律に1.0と設定されており、ブロック境界L1からの距離に関わらず、重みを大きくするように設定されている。
また、ブロックノイズの歪みの程度によっては、よりブロックノイズ低減効果を強くしたり、弱くしたい場合がある。例えば、低減効果を強くするには、ブロックノイズ検出部33でのブロックノイズの検出条件を、単純段差条件のみを検出するようにするなどして緩くし、ブロックノイズを検出し易い状態にしてもよい。また、ノイズ低減処理部34でより強く低減効果を出すため、LPFで使用する画素数を、例えば、7画素程度にすることで、より強い効果のLPFに切り替えるようにしてもよい。さらに、エッジ検出部32におけるエッジ判定条件を緩くし、より強いエッジにも低減処理を施すようにしても良い。また、位置重み制御部39における、例えば、図27または図28で示される多くの条件で、大きな重みを付加するようにすることで、位置重みの計算の条件を、より広範囲に低減処理が効くように変更するようにしてもよい。さらに、これらの対応を全て施すことで、より低減効果を高めるようにしても良い。
また、ブロックノイズの低減効果を弱くしたい場合、上記と逆の調整により低減効果を弱くするようにしても良い。
このように、ノイズブロックの低減効果を必要に応じて、柔軟に変更させるようにしてもよい。
さらに、以上においては、水平方向の処理を例にして説明を進めてきたが、処理方向を90度変更するのみで、垂直方向にも同様の処理を適用できることができる。また、水平方向、および垂直方向のそれぞれの処理を順に実行することにより縦線状のブロックノイズだけでなく、横線状のブロックノイズをも低減させることが可能となる。
本発明によればスケーリングによりブロック境界位置が様々なサイズに変換された場合でも、効果的にブロックノイズを低減することが可能となる。また、様々なブロックノイズの歪み具合に対して、最適な低減方法を選択し適用することが可能となる。
ところで、上述した一連の画像処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図29は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)1001を内蔵している。CPU1001にはバス1004を介して、入出力インタフェース1005が接続されている。バス1004には、ROM(Read Only Memory)1002およびRAM(Random Access Memory)1003が接続されている。
入出力インタフェース1005には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部1006、処理操作画面や処理結果の画像を表示デバイスに出力する出力部1007、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部1008、LAN(Local Area Network)アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部1009が接続されている。また、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどのリムーバブルメディア1011に対してデータを読み書きするドライブ1010が接続されている。
CPU1001は、ROM1002に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア1011から読み出されて記憶部1008にインストールされ、記憶部1008からRAM1003にロードされたプログラムに従って各種の処理を実行する。RAM1003には、CPU1001が各種の処理を実行する上において必要なデータなども適宜記憶される。
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
本発明が適用される画像処理装置の実施の形態の構成例を説明する図である。 図1の画像処理装置によりブロックノイズ低減処理を施す画像の解像度の例を説明する図である。 図1のブロックノイズ低減処理部の実施の形態の構成例を説明する図である。 図3の位置制御部の実施の形態の構成例を説明する図である。 図3のエッジ検出部の実施の形態の構成例を説明する図である。 図3のブロックノイズ検出部の実施の形態の構成例を説明する図である。 図3のノイズ低減処理部の実施の形態の構成例を説明する図である。 図3の処理重み制御部の実施の形態の構成例を説明する図である。 図3のエッジ重み制御部の実施の形態の構成例を説明する図である。 図3の位置重み制御部の実施の形態の構成例を説明する図である。 ブロックノイズ低減処理を説明するフローチャートである。 位置制御情報生成処理を説明するフローチャートである。 位置制御情報生成処理を説明する図である。 位置制御情報生成処理を説明する図である。 エッジ検出処理を説明するフローチャートである。 エッジ検出処理を説明する図である。 ブロックノイズ検出処理を説明するフローチャートである。 ブロックノイズ検出処理を説明する図である。 ブロックノイズ検出処理を説明する図である。 ノイズ低減処理を説明するフローチャートである。 ノイズ低減処理を説明する図である。 処理重み制御処理を説明するフローチャートである。 処理重み制御処理を説明する図である。 エッジ重み制御処理を説明するフローチャートである。 位置重み制御処理を説明するフローチャートである。 位置重み制御処理を説明する図である。 位置重み制御処理を説明する図である。 位置重み制御処理を説明する図である。 汎用のパーソナルコンピュータの構成例を説明する図である。
符号の説明
1 画像処理装置 11 ブロック境界情報検出装置, 12 ブロックノイズ低減処理部, 31 位置制御部, 32 エッジ検出部, 33 ブロックノイズ検出部, 34 ノイズ低減処理部, 35 データ記憶部, 36 検出データバッファ部, 37 処理重み制御部, 38 エッジ重み制御部, 39 位置重み制御部, 40 位置制御情報バッファ部, 41 ブロックノイズ特徴情報バッファ部

Claims (12)

  1. 画像のノイズを低減する画像処理装置において、
    ブロックサイズ情報およびブロック境界初期位置に基づいて、各ブロック毎のブロック境界位置、および、各画素のブロック境界位置からの距離を計算し、前記画素の位置制御情報を生成する位置制御情報生成手段と、
    前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出するブロックノイズ検出手段と、
    前記ブロックノイズ特徴情報に基づいて、前記ブロック毎にノイズを低減するノイズ低減処理手段と
    を含む画像処理装置。
  2. 前記画像の注目画素の注目画素エッジを検出する注目画素エッジ検出手段と、
    前記注目画素の近傍のブロック境界における境界エッジを検出する境界エッジ検出手段と、
    前記注目画素エッジ、および前記境界エッジに基づいて、前記ノイズの低減における強度を制御するエッジ重みを計算するエッジ重み計算手段と、
    前記ブロックノイズ特徴情報に基づいて、前記ノイズの低減における強度を制御する処理重みを計算する処理重み計算手段と、
    前記ブロック境界からの位置情報に基づいて、ノイズ低減処理の強度を制御する位置重みを計算する位置重み計算手段と、
    前記エッジ重みに基づいて、前記注目画素を制御するエッジ重み制御手段と、
    前記処理重みに基づいて、前記注目画素を制御する処理重み制御手段と、
    前記位置重みに基づいて、前記注目画素を制御する位置重み制御手段と
    をさらに含む請求項1に記載の画像処理装置。
  3. 前記注目画素エッジ検出手段および境界エッジ検出手段は、それぞれ前記ブロックサイズ情報に基づいて、前記注目画素エッジ、および境界エッジの検出に使用する画素の範囲を切り替える
    請求項2に記載の画像処理装置。
  4. 前記画像のブロックサイズは、所定のブロックサイズからのスケーリング率として指定され、
    前記ブロック境界初期位置は、画素以下の精度で指定される
    請求項1に記載の画像処理装置。
  5. 前記ブロックノイズ検出手段は、
    前記ブロック境界位置における画素間の段差と、前記ブロック境界位置の周辺の画素間の段差の平均との比較結果に基づいて、前記ブロックノイズ特徴情報が段差であるか否かを判定する段差判定手段をさらに含み、
    前記段差判定手段の段差判定結果に基づいて、前記ブロックノイズ特徴情報を単純段差として検出する
    請求項1に記載の画像処理装置。
  6. 前記ブロックノイズ検出手段は、
    前記ブロック境界位置における画素間の段差と、前記ブロック境界位置の周辺の画素間の段差の平均との比較結果に基づいて、前記ブロックノイズ特徴情報が単純段差であるか否かを判定する段差判定手段と、
    前記ブロック境界位置の周辺部の傾きの比較結果に基づいて、周辺部が全体として同一の傾き持つか否かによりグラデーション段差であるか否かを判定するグラデーション段差手段と、
    前記ブロック境界位置において、前記注目画素および前記注目画素の周辺画素の差分の大きさと所定の閾値との比較、および前記差分の正負の符号の組み合わせに基づいて、前記注目画素の属する前記ブロックのブロックノイズ特徴が孤立点であるか否かを判定する孤立点判定手段と、
    前記ブロック境界位置において、前記差分の正負の符号の組み合わせに基づいて、前記ブロックノイズ特徴が、模様成分のピークが集中するテクスチャ偏りであるか否かを判定するテクスチャ判定手段と
    を含み、
    前記段差判定手段、前記グラデーション段差手段、前記孤立点判定手段、およびテクスチャ判定手段の判定結果に基づいて、前記ブロックノイズ特徴情報を検出する
    請求項1に記載の画像処理装置。
  7. ノイズ低減手段は、
    前記ブロックノイズ特徴情報が、グラデーション段差である場合、
    前記ブロック境界位置の段差を、前記ブロック境界位置から前記注目画素までの距離に応じて段差補正する段差補正手段と、
    前記ブロックノイズ特徴情報が、前記孤立点である場合、
    前記ブロック境界位置において、前記孤立点を除去して補正する除去補正手段と、
    前記ブロックノイズ特徴情報が、前記テクスチャ偏りである場合、
    前記ブロック境界位置において、前記注目画素を含むブロックを平滑化する第1の平滑化手段と、
    前記ブロックノイズ特徴情報が、前記単純段差である場合、
    前記ブロック境界位置において、前記注目画素を含むブロックを、前記第1の平滑化手段とは、異なる強度で平滑化する第2の平滑化手段と
    を含む
    請求項6に記載の画像処理装置。
  8. 前記ブロックノイズ特徴情報検出手段は、前記ブロックサイズ情報に基づいて、検出に使用する近傍画素を選択できる
    請求項1に記載の画像処理装置。
  9. 前記ノイズ低減手段は、前記ブロックサイズ情報に基づいて、低減処理を切り替える
    請求項1に記載の画像処理装置。
  10. 画像のノイズを低減する画像処理装置の画像処理方法において、
    ブロックサイズ情報およびブロック境界初期位置に基づいて、各ブロック毎のブロック境界位置、および、各画素のブロック境界位置からの距離を計算し、前記画素の位置制御情報を生成する位置制御情報生成ステップと、
    前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出するブロックノイズ検出ステップと、
    前記ブロックノイズ特徴情報に基づいて、前記ブロック毎にノイズを低減するノイズ低減処理ステップと
    を含む画像処理方法。
  11. 画像のノイズを低減する画像処理装置を制御するコンピュータに、
    ブロックサイズ情報およびブロック境界初期位置に基づいて、各ブロック毎のブロック境界位置、および、各画素のブロック境界位置からの距離を計算し、前記画素の位置制御情報を生成する位置制御情報生成ステップと、
    前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出するブロックノイズ検出ステップと、
    前記ブロックノイズ特徴情報に基づいて、前記ブロック毎にノイズを低減するノイズ低減処理ステップと
    を含む処理を実行させるプログラム。
  12. 請求項11に記載のプログラムを格納するプログラム格納媒体。
JP2008045850A 2008-02-27 2008-02-27 画像処理装置および方法、並びにプログラム Expired - Fee Related JP5071721B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008045850A JP5071721B2 (ja) 2008-02-27 2008-02-27 画像処理装置および方法、並びにプログラム
US12/394,318 US20090214133A1 (en) 2008-02-27 2009-02-27 Image processing device and method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008045850A JP5071721B2 (ja) 2008-02-27 2008-02-27 画像処理装置および方法、並びにプログラム

Publications (3)

Publication Number Publication Date
JP2009206713A true JP2009206713A (ja) 2009-09-10
JP2009206713A5 JP2009206713A5 (ja) 2011-04-14
JP5071721B2 JP5071721B2 (ja) 2012-11-14

Family

ID=40998381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008045850A Expired - Fee Related JP5071721B2 (ja) 2008-02-27 2008-02-27 画像処理装置および方法、並びにプログラム

Country Status (2)

Country Link
US (1) US20090214133A1 (ja)
JP (1) JP5071721B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011114704A (ja) * 2009-11-27 2011-06-09 Toshiba Corp 画像処理装置および同装置における画像処理方法
WO2012036251A1 (en) * 2010-09-15 2012-03-22 Sharp Kabushiki Kaisha Methods and apparatuses for estimating compression noise
WO2012042929A1 (en) * 2010-09-28 2012-04-05 Sharp Kabushiki Kaisha Methods and systems for estimation of compression noise
JP2017513326A (ja) * 2014-03-14 2017-05-25 クゥアルコム・インコーポレイテッドQualcomm Incorporated ピクセル距離を使用したデブロックフィルタ処理
JP2017108427A (ja) * 2011-11-11 2017-06-15 ジーイー ビデオ コンプレッション エルエルシー 高い分割自由度を伴う効果的なパーティション符号化
WO2018105195A1 (ja) * 2016-12-07 2018-06-14 三菱電機株式会社 映像障害検知装置、映像障害検知方法、及びプログラム
US10321139B2 (en) 2011-11-11 2019-06-11 Ge Video Compression, Llc Effective prediction using partition coding
US10321148B2 (en) 2011-11-11 2019-06-11 Ge Video Compression, Llc Effective wedgelet partition coding using spatial prediction
US10382777B2 (en) 2010-11-04 2019-08-13 Ge Video Compression, Llc Picture coding supporting block merging and skip mode
US10574982B2 (en) 2011-11-11 2020-02-25 Ge Video Compression, Llc Effective wedgelet partition coding

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010004111A (ja) * 2008-06-18 2010-01-07 Nec Electronics Corp 画像処理装置および画像処理方法並びにプログラム
TWI398825B (zh) * 2009-10-07 2013-06-11 Altek Corp Method of suppressing noise by using multiple digital images
US8600188B2 (en) 2010-09-15 2013-12-03 Sharp Laboratories Of America, Inc. Methods and systems for noise reduction and image enhancement
US8532429B2 (en) 2010-09-28 2013-09-10 Sharp Laboratories Of America, Inc. Methods and systems for noise reduction and image enhancement involving selection of noise-control parameter
US8538193B2 (en) 2010-09-28 2013-09-17 Sharp Laboratories Of America, Inc. Methods and systems for image enhancement and estimation of compression noise
JP5744510B2 (ja) * 2010-12-28 2015-07-08 キヤノン株式会社 画像処理方法
US9558535B2 (en) * 2012-08-07 2017-01-31 Sharp Kabushiki Kaisha Image processing device, image processing method, image processing program, and image display device
WO2014024916A1 (ja) * 2012-08-07 2014-02-13 シャープ株式会社 画像処理装置、画像処理方法、画像処理プログラム及び画像表示装置
JP6472884B2 (ja) * 2015-08-11 2019-02-20 オリンパス株式会社 画像処理装置、画像処理方法および画像処理プログラム
JP6654397B2 (ja) * 2015-10-09 2020-02-26 株式会社イシダ X線検査装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1070717A (ja) * 1996-06-19 1998-03-10 Matsushita Electric Ind Co Ltd 画像符号化装置及び画像復号化装置
JPH10229546A (ja) * 1997-02-13 1998-08-25 Sony Corp 映像信号処理装置及び方法
JPH11196419A (ja) * 1997-12-26 1999-07-21 Sony Corp 画像信号処理装置及び画像信号処理方法
JP2005236955A (ja) * 2004-01-20 2005-09-02 Victor Co Of Japan Ltd ブロックノイズ低減装置
JP2007166522A (ja) * 2005-12-16 2007-06-28 Toshiba Corp 復号化装置及び復号化方法及びプログラム
JP2007312369A (ja) * 2006-04-18 2007-11-29 Pioneer Electronic Corp ブロックノイズ除去装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1848219B1 (en) * 2006-04-18 2008-11-05 Pioneer Corporation Block noise removal device
US8200028B2 (en) * 2007-12-07 2012-06-12 Csr Technology Inc. System and method for detecting edges in a video signal

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1070717A (ja) * 1996-06-19 1998-03-10 Matsushita Electric Ind Co Ltd 画像符号化装置及び画像復号化装置
JPH10229546A (ja) * 1997-02-13 1998-08-25 Sony Corp 映像信号処理装置及び方法
JPH11196419A (ja) * 1997-12-26 1999-07-21 Sony Corp 画像信号処理装置及び画像信号処理方法
JP2005236955A (ja) * 2004-01-20 2005-09-02 Victor Co Of Japan Ltd ブロックノイズ低減装置
JP2007166522A (ja) * 2005-12-16 2007-06-28 Toshiba Corp 復号化装置及び復号化方法及びプログラム
JP2007312369A (ja) * 2006-04-18 2007-11-29 Pioneer Electronic Corp ブロックノイズ除去装置

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011114704A (ja) * 2009-11-27 2011-06-09 Toshiba Corp 画像処理装置および同装置における画像処理方法
WO2012036251A1 (en) * 2010-09-15 2012-03-22 Sharp Kabushiki Kaisha Methods and apparatuses for estimating compression noise
WO2012042929A1 (en) * 2010-09-28 2012-04-05 Sharp Kabushiki Kaisha Methods and systems for estimation of compression noise
US10785500B2 (en) 2010-11-04 2020-09-22 Ge Video Compression, Llc Picture coding supporting block merging and skip mode
US10602182B2 (en) 2010-11-04 2020-03-24 Ge Video Compression, Llc Picture coding supporting block merging and skip mode
US10382777B2 (en) 2010-11-04 2019-08-13 Ge Video Compression, Llc Picture coding supporting block merging and skip mode
US10321139B2 (en) 2011-11-11 2019-06-11 Ge Video Compression, Llc Effective prediction using partition coding
US10785497B2 (en) 2011-11-11 2020-09-22 Ge Video Compression, Llc Effective wedgelet partition coding using spatial prediction
US10321148B2 (en) 2011-11-11 2019-06-11 Ge Video Compression, Llc Effective wedgelet partition coding using spatial prediction
US10334255B2 (en) 2011-11-11 2019-06-25 Ge Video Compression, Llc Effective prediction using partition coding
US10341667B2 (en) 2011-11-11 2019-07-02 Ge Video Compression, Llc Adaptive partition coding
US10362317B2 (en) 2011-11-11 2019-07-23 Ge Video Compression, Llc Adaptive partition coding
US11863763B2 (en) 2011-11-11 2024-01-02 Ge Video Compression, Llc Adaptive partition coding
US10542263B2 (en) 2011-11-11 2020-01-21 Ge Video Compression, Llc Effective prediction using partition coding
US10542278B2 (en) 2011-11-11 2020-01-21 Ge Video Compression, Llc Effective wedgelet partition coding using spatial prediction
US10567776B2 (en) 2011-11-11 2020-02-18 Ge Video Compression, Llc Adaptive partition coding
US10574982B2 (en) 2011-11-11 2020-02-25 Ge Video Compression, Llc Effective wedgelet partition coding
US10574981B2 (en) 2011-11-11 2020-02-25 Ge Video Compression, Llc Effective Wedgelet partition coding
JP2017108427A (ja) * 2011-11-11 2017-06-15 ジーイー ビデオ コンプレッション エルエルシー 高い分割自由度を伴う効果的なパーティション符号化
US10771793B2 (en) 2011-11-11 2020-09-08 Ge Video Compression, Llc Effective prediction using partition coding
US10771794B2 (en) 2011-11-11 2020-09-08 Ge Video Compression, Llc Adaptive partition coding
US11722657B2 (en) 2011-11-11 2023-08-08 Ge Video Compression, Llc Effective wedgelet partition coding
US11425367B2 (en) 2011-11-11 2022-08-23 Ge Video Compression, Llc Effective wedgelet partition coding
US10911753B2 (en) 2011-11-11 2021-02-02 Ge Video Compression, Llc Effective wedgelet partition coding
US10986352B2 (en) 2011-11-11 2021-04-20 Ge Video Compression, Llc Adaptive partition coding
US11032562B2 (en) 2011-11-11 2021-06-08 Ge Video Compression, Llc Effective wedgelet partition coding using spatial prediction
US11032555B2 (en) 2011-11-11 2021-06-08 Ge Video Compression, Llc Effective prediction using partition coding
JP2017513326A (ja) * 2014-03-14 2017-05-25 クゥアルコム・インコーポレイテッドQualcomm Incorporated ピクセル距離を使用したデブロックフィルタ処理
JPWO2018105195A1 (ja) * 2016-12-07 2019-03-28 三菱電機株式会社 映像障害検知装置、映像障害検知方法、及びプログラム
WO2018105195A1 (ja) * 2016-12-07 2018-06-14 三菱電機株式会社 映像障害検知装置、映像障害検知方法、及びプログラム

Also Published As

Publication number Publication date
US20090214133A1 (en) 2009-08-27
JP5071721B2 (ja) 2012-11-14

Similar Documents

Publication Publication Date Title
JP5071721B2 (ja) 画像処理装置および方法、並びにプログラム
JP4635779B2 (ja) データ処理装置およびデータ処理方法、並びにプログラム
JP5075861B2 (ja) 画像処理装置及び画像処理方法
US8224124B2 (en) Image processing device and image processing method, and program
US9153010B2 (en) Image processing device and image processing method generating a high-resolution image from a low-resolution image
US20090232407A1 (en) Image processing device, method, and program
WO2015064672A1 (ja) 画像高画質化装置、画像表示装置、画像高画質化方法及びコンピュータプログラム
JP2003526272A (ja) ビデオ画像のシャープさを改善するシステム及び方法
WO2009101693A1 (ja) 画像処理装置、画像処理方法および画像処理プログラム
US20100189349A1 (en) Image processing device, display device and image processing method, and its program
JP4762352B1 (ja) 画像処理装置及び画像処理方法
US7106346B2 (en) Signal processing apparatus and method, recording medium, and program
US20080001975A1 (en) Image processing apparatus and image processing method
US10922792B2 (en) Image adjustment method and associated image processing circuit
JP2008047088A (ja) 画像処理装置及び画像処理プログラム
WO2015064671A1 (ja) 画像高画質化装置、画像表示装置、画像高画質化方法及びコンピュータプログラム
JP4835949B2 (ja) 画像処理装置および方法、学習装置および方法、プログラム、並びに記録媒体
JP4799678B1 (ja) 符号化歪み低減装置、符号化歪み低減方法およびそのためのプログラム
JP2008278185A (ja) データ処理装置およびデータ処理方法、並びにプログラム
JP5002684B2 (ja) 画像処理装置、表示装置、および画像処理方法
JP2006217403A (ja) 符号化装置および方法、復号化装置および方法、記録媒体、プログラム、画像処理システム、並びに画像処理方法
JP4449430B2 (ja) 画像処理装置および画像処理方法、プログラム、並びに記録媒体
JP2010199994A (ja) 画像処理装置
JP4716086B2 (ja) 符号化装置および方法、記録媒体、プログラム、並びに画像処理システム
JP2005269542A (ja) 画像処理方法および装置並びにプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120327

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120726

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120808

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150831

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees