(57)【要約】【課題】リンギング以外の微小信号の欠落を招くことなく、少ない演算量でデリンギング処理を実行することが可能な情報処理装置を実現する。【解決手段】ＣＰＵ１１１は、ブロック毎に当該ブロックに属する最大画素値と最小画素値との間の差分値を検出し、その差分値ｄ１に応じて、当該ブロックがリンギングノイズを発生する原因となるエッジ（信号の立ち上がりまたは立ち下がり）を含む可能性があるブロックであるか否かを判別する。最大画素値と最小画素値との間の差分値ｄ１がある閾値Ｔｈ１よりも大きいブロックは、リンギングノイズを発生する原因となるエッジを含む可能性があるブロックであると判定される。そして、ＣＰＵ１１１は、エッジを含む可能性があると判定された各ブロック毎に、リンギングノイズを除去するための平滑化処理を実行する。【選択図】      図５
2006279709.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックから構成される画像データを処理可能な情報処理装置において、
前記各ブロック毎に、当該ブロックに属する最大画素値と最小画素値との間の差分値が第１の閾値よりも大きいか否かを判別する処理を実行する判別手段と、
前記差分値が前記第１の閾値よりも大きいことが判別された各ブロック毎に、リンギングノイズを除去するための平滑化処理を実行する平滑化手段とを具備することを特徴とする情報処理装置。
【請求項２】
前記平滑化手段は、
前記差分値が前記第１の閾値よりも大きいことが判別された各ブロック毎に、当該ブロックに含まれる複数の画素の中から、周辺画素の画素値との差分値が第２の閾値よりも小さい画素を検出する手段と、
前記検出された画素の画素値を当該検出された画素の周辺画素の画素値に基づいて補正する手段とを含むことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記差分値が前記第１の閾値よりも大きいことが判別された各ブロック毎に、当該ブロックに対応する前記差分値に応じて前記第２の閾値を変更する手段をさらに具備することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記画像データは、複数のブロックを各々が含む複数のマクロブロックから構成されており、
前記判別手段は、前記各ブロック毎に、当該ブロックに属する最大画素値と最小画素値との間の差分値が前記第１の閾値よりも大きいか否かを判別する処理を実行する手段を含み、
前記平滑化手段は、前記差分値が前記第１の閾値よりも大きいと判断されたブロックと同一のマクロブロックに属する全てのブロックの各々について、前記リンギングノイズを除去するための平滑化処理を実行することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記平滑化手段は、
前記差分値が前記第１の閾値よりも大きいと判断されたブロックと同一のマクロブロックに属する全てのブロックの各々について、当該ブロックに含まれる複数の画素の中から、周辺画素の画素値との差分値が第２の閾値よりも小さい画素を検出する手段と、
前記検出された画素の画素値を当該検出された画素の周辺画素の画素値に基づいて補正する手段とを含むことを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記各ブロックはマクロブロックであることを特徴とする請求項１記載の情報処理装置。
【請求項７】
複数のブロックから構成される画像データを処理する画像処理方法において、
前記各ブロック毎に、当該ブロックに属する最大画素値と最小画素値との間の差分値が第１の閾値よりも大きいか否かを判別する判別ステップと、
前記差分値が前記第１の閾値よりも大きいことが判別された各ブロック毎に、リンギングノイズを除去するための平滑化処理を実行する平滑化ステップとを具備することを特徴とする画像処理方法。
【請求項８】
前記平滑化ステップは、
前記差分値が前記第１の閾値よりも大きいことが判別された各ブロック毎に、当該ブロックに含まれる複数の画素の中から、周辺画素の画素値との差分値が第２の閾値よりも小さい画素を検出するステップと、
前記検出された画素の画素値を当該検出された画素の周辺画素の画素値に基づいて補正するステップとを含むことを特徴とする請求項７記載の画像処理方法。
【請求項９】
前記差分値が前記第１の閾値よりも大きいことが判別された各ブロック毎に、当該ブロックに対応する前記差分値に応じて前記第２の閾値を変更するステップをさらに具備することを特徴とする請求項８記載の画像処理方法。
【請求項１０】
前記画像データは、複数のブロックを各々が含む複数のマクロブロックから構成されており、
前記判別ステップは、前記各ブロック毎に、当該ブロックに属する最大画素値と最小画素値との間の差分値が前記第１の閾値よりも大きいか否かを判別する処理を実行するステップを含み、
前記平滑化ステップは、前記差分値が前記第１の閾値よりも大きいと判断されたブロックと同一のマクロブロックに属する全てのブロックの各々について、前記リンギングノイズを除去するための平滑化処理を実行することを特徴とする請求項７記載の画像処理方法。
【請求項１１】
前記平滑化ステップは、
前記差分値が前記第１の閾値よりも大きいと判断されたブロックと同一のマクロブロックに属する全てのブロックの各々について、当該ブロックに含まれる複数の画素の中から、周辺画素の画素値との差分値が第２の閾値よりも小さい画素を検出するステップと、
前記検出された画素の画素値を当該検出された画素の周辺画素の画素値に基づいて補正するステップとを含むことを特徴とする請求項１０記載の画像処理方法。
【請求項１２】
前記各ブロックはマクロブロックであることを特徴とする請求項７記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパーソナルコンピュータのような情報処理装置および同装置で用いられる画像処理方法に関する。
【背景技術】
【０００２】
近年、ＤＶＤ（Digital Versatile Disc）プレーヤ、ＴＶ装置のようなオーディオ・ビデオ（ＡＶ）機器と同様のＡＶ機能を備えたパーソナルコンピュータが開発されている。
【０００３】
このパーソナルコンピュータにおいては、ＭＰＥＧのようなブロック符号化方式で圧縮符号化された画像データをデコードおよび再生する機能が必要とされる。ＭＰＥＧのようなブロック符号化方式においては、直交変換、量子化等の処理がブロック単位で実行される。この場合、直交変換された画像データの高周波成分は比較的粗く量子化されるため、画像データ内のエッジ部周辺にはリンギングノイズが発生されやすい。
【０００４】
リンギングノイズを低減する技術の一つとして、特許文献１には、隣接する画素間の差分値に応じてエッジを検出し、検出されたエッジを含むブロックの平滑化処理を実行する技術が開示されている。
【０００５】
しかし、通常、自然画像においては、信号の立ち上がり部または立ち下がり部は複数の画素に跨っている。このため、隣接する画素間の差分値を用いても、エッジを検出することは実際上困難である。したがって、検出されなかったエッジ周辺に存在するリンギングノイズが除去されずに残ってしまうことになる。
【０００６】
したがって、近年では、リンギングノイズを除去するためのほとんどのデリンギング処理回路においては、画面全体に対して平滑化処理が施される。これにより、リンギングノイズを低減することができる。
【特許文献１】特開２００１−２４５１７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、パーソナルコンピュータのような情報処理装置において画像データのデコードおよび再生をソフトウェアによって実行する場合には、デリンギング処理のための演算量をできるだけ少なくすることが要求される。
【０００８】
画面全体に対して平滑化処理を施すという従来のデリンギング処理は多くの演算量を必要とする。このため、従来のデリンギング処理をパーソナルコンピュータに適用することは、現実的ではない。
【０００９】
また、画面全体に対して平滑化処理を施すと、リンギング以外の微小信号も除去されてしまい、画面のボケ感が増すという問題も発生する。
【００１０】
本発明は上述の事情を考慮してなされたものであり、リンギング以外の微小信号の欠落を招くことなく、少ない演算量でデリンギング処理を実行することが可能な情報処理装置および画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述の課題を解決するため、本発明は、複数のブロックから構成される画像データを処理可能な情報処理装置において、前記各ブロック毎に、当該ブロックに属する最大画素値と最小画素値との間の差分値が第１の閾値よりも大きいか否かを判別する処理を実行する判別手段と、前記差分値が前記第１の閾値よりも大きいことが判別された各ブロック毎に（あるいはマクロブロック毎に）、リンギングノイズを除去するための平滑化処理を実行する平滑化手段とを具備することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、リンギング以外の微小信号の欠落を招くことなく、少ない演算量でデリンギング処理を実行することが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の実施形態を説明する。
【００１４】
まず、図１および図２を参照して、本発明の一実施形態に係る情報処理装置の構成について説明する。この情報処理装置は、バッテリ駆動可能な携帯型のノートブック型パーソナルコンピュータ１０として実現されている。
【００１５】
図１は、ノートブック型パーソナルコンピュータ１０のディスプレイユニットを開いた状態における斜視図である。本コンピュータ１０は、コンピュータ本体１１と、ディスプレイユニット１２とから構成される。ディスプレイユニット１２には、ＬＣＤ２０（Liquid Crystal Display）から構成される表示装置が組み込まれており、そのＬＣＤ２０の表示画面はディスプレイユニット１２のほぼ中央に位置されている。
【００１６】
ディスプレイユニット１２は、コンピュータ本体１１に支持され、そのコンピュータ本体１１に対してコンピュータ本体１１の上面が露出される開放位置とコンピュータ本体１１の上面を覆う閉塞位置との間を回動自由に取り付けられている。コンピュータ本体１１は薄い箱形の筐体を有しており、その上面にはキーボード１３、本コンピュータ１０を電源オン／オフするためのパワーボタン１４、入力操作パネル１５、およびタッチパッド１６などが配置されている。
【００１７】
入力操作パネル１５は、押されたボタンに対応するイベントを入力する入力装置であり、複数の機能をそれぞれ起動するための複数の機能をそれぞれ起動するための複数のボタンを備えている。これらのボタン群には、ＴＶ起動ボタン１５Ａ、ＤＶＤ（Digital Versatile Disc）起動ボタン１５Ｂも含まれている、ＴＶ起動ボタン１５Ａがユーザによって押下された時、ＴＶ機能を実行するためのアプリケーションプログラムが自動的に起動される。ＤＶＤ起動ボタン１５Ｂは、ＤＶＤに記録されたビデオコンテンツを再生するためのボタンである。ＤＶＤ起動ボタン１５Ｂがユーザによって押下された時、ビデオコンテンツを再生するためのアプリケーションプログラムが自動的に起動される。
【００１８】
次に、図２を参照して、本コンピュータ１０のシステム構成について説明する。
【００１９】
本コンピュータ１０は、図２に示されているように、ＣＰＵ１１１、ノースブリッジ１１２、主メモリ１１３、グラフィクスコントローラ１１４、サウスブリッジ１１９、ＢＩＯＳ−ＲＯＭ１２０、ハードディスクドライブ（ＨＤＤ）１２１、光ディスクドライブ（ＯＤＤ）１２２、ＴＶ放送チューナ１２３、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１２４、およびネットワークコントローラ１２５等を備えている。
【００２０】
ＣＰＵ１１１は、本コンピュータ１０の動作を制御するために設けられたプロセッサであり、ハードディスクドライブ（ＨＤＤ）１２１から主メモリ１１３にロードされる、オペレーティングシステム（ＯＳ）、およびビデオ再生アプリケーションプログラム２０１のような各種アプリケーションプログラムを実行する。
【００２１】
ビデオ再生アプリケーションプログラム２０１は、画像データを再生するためのプログラムであり、ＭＰＥＧ２規格のようなブロック符号化方式で圧縮符号化されたデジタル画像データ（例えば、ＴＶ放送チューナ１２３によって受信および圧縮符号化された放送番組データ、光ディスクドライブ（ＯＤＤ）１２２から読み出されるＭＰＥＧ２規格のビデオコンテンツ、など）をデコードするための機能を有している。
【００２２】
このビデオ再生アプリケーションプログラム２０１は、図３に示すように、デコード処理モジュール２１１、デブロッキング処理モジュール２１２、およびデリンギング処理モジュール２１３を備えている。
【００２３】
デコード処理モジュール２１１は、ＭＰＥＧ２のようなブロック符号化方式で圧縮符号化された動画像データをデコードするソフトウェアデコーダである。デブロッキング処理モジュール２１２、およびデリンギング処理モジュール２１３は、デコードされた動画像データを高画質化するために用いられる。デブロッキング処理モジュール２１２は、デコードされた動画像データに含まれるブロックノイズを低減するためのデブロッキング処理を実行する。デリンギング処理モジュール２１３は、デブロッキング処理された動画像データに含まれるリンギングノイズを低減するためのデリンギング処理を実行するモジュールである。デリンギング処理された動画像データは、表示ドライバ２０２を介してグラフィクスコントローラ１１４に送られる。
【００２４】
ＣＰＵ１１１はビデオ再生アプリケーションプログラム２０１を実行することにより、デコード処理、デブロッキング処理、およびデリンギング処理をメモリ１１３上で行う。
【００２５】
次に、図４および図５を参照して、デリンギング処理モジュール２１３によって実行されるデリンギング処理について説明する。
【００２６】
図４は、デコードされた動画像データのデータ構造の例を示している。ＭＰＥＧ２規格の符号化処理においては、動画像データは例えば８×８画素のブロック単位で処理される。デコード処理においても、圧縮符号化された動画像データは８×８画素のブロック単位で処理される。デコードされた動画像データは、各々が８×８画素の複数のブロックＢ１〜Ｂ１２…を含む。
【００２７】
本実施形態のデリンギング処理においては、デリンギング処理モジュール２１３は、ブロック毎に当該ブロックに属する最大画素値と最小画素値との間の差分値を検出し、その差分値に応じて、当該ブロックがリンギングノイズを発生する原因となるエッジ（信号の立ち上がりまたは立ち下がり）を含む可能性があるブロックであるか否かを判別する。最大画素値と最小画素値との間の差分値がある閾値よりも大きいブロックは、リンギングノイズを発生する原因となるエッジを含む可能性があるブロックであると判定される。一方、最大画素値と最小画素値との間の差分値が閾値以下のブロックは、リンギングノイズを発生する原因となるエッジを含まないブロックであると判定される。この判定方法は、２画素よりも多い幾つかの画素上に跨って存在しているエッジをも検出することが可能である。よって、リンギングノイズを発生する原因となるエッジを含むブロックを精度よく検出することができる。
【００２８】
そして、デリンギング処理モジュール２１３は、エッジを含む可能性があると判定された各ブロック毎に、リンギングノイズを除去するための平滑化処理を実行する。例えば、ブロックＢ１〜Ｂ１２の中で、ブロックＢ１，Ｂ４，Ｂ６，Ｂ７，Ｂ１０がエッジを含む可能性があるブロックであると判定されたならば、デリンギング処理モジュール２１３は、これらブロックＢ１，Ｂ４，Ｂ６，Ｂ７，Ｂ１０の各々の平滑化処理を実行し、ブロックＢ２，Ｂ３，Ｂ５，Ｂ８，Ｂ９，Ｂ１１，Ｂ１２に対しては平滑化処理を実行しない。これにより、画面全体に対して平滑化処理を実行する従来のデリンギング処理に比し、デリンギングのために必要な演算量を大幅に低減することができる。またデリンギング以外の微小信号が欠落されるという事態の発生を防止することもできる。
【００２９】
以下、図５のフローチャートを参照して、デリンギング処理の手順の第１の例を説明する。
【００３０】
ＣＰＵ１１１は、処理対象の８×８画素のブロック（画素ブロック）を取り込む（ステップＳ１０１，Ｓ１０２）。ＣＰＵ１１１は、取り込んだ画素ブロック内の最大画素値（ＭＡＸ）および最小画素値（ｍｉｎ）を求める（ステップＳ１０３，Ｓ１０４）。そして、ＣＰＵ１１１は、最大画素値と最小画素値との間の差分値ｄ１（ｄ１＝ＭＡＸ−ｍｉｎ）を算出する（ステップＳ１０５）。
【００３１】
次に、ＣＰＵ１１１は、算出された差分値ｄ１が予め決められた所定の第１の閾値Ｔｈ１よりも大きいか否かを判別する処理を実行する（ステップＳ１０６）。差分値ｄ１が第１の閾値Ｔｈ１以下である場合（ステップＳ１０６のＮＯ）、ＣＰＵ１１１は、何も実行せずに、ステップＳ１０１に戻り、次の画素ブロックの処理を開始する。一方、差分値ｄ１が第１の閾値Ｔｈ１よりも大きいならば（ステップＳ１０６のＹＥＳ）、ＣＰＵ１１１は、現在処理中の画素ブロック内にはリンギングを発生させる立ち上がり信号または立ち下がり信号が存在すると推定し、当該ブロック内にはリンギングが有ると判定する（ステップＳ１０８）。
【００３２】
次に、ＣＰＵ１１１は、リンギングが有ると判定された画素ブロックに対して、平滑化処理を実行する。この平滑化処理においては、リンギングが有ると判定された画素ブロックの中から、周辺画素の画素値との差分値が予め決められた所定の第２の閾値Ｔｈ２よりも小さい画素がリンギングを含む可能性がある画素として検出される。この検出された画素の画素値は、その周辺画素の画素値との差分が低減されるように補正される。
【００３３】
以下、平滑化処理の具体的な手順を説明する。ここでは、図５に示すように、画素群が配置されているものとする。ＣＰＵ１１１は、リンギングが有ると判定された画素ブロック内の各画素毎に、次の処理を行う。
【００３４】
ＣＰＵ１１１は、リンギングが有ると判定された画素ブロックから、或る画素Ａと上下左右に存在する４画素Ｕ，Ｄ，Ｌ，Ｒを取り込む（ステップＳ１０９，Ｓ１１０）。ＣＰＵ１１１は、４画素Ｕ，Ｄ，Ｌ，Ｒの画素値の平均値Ｈを算出する（ステップＳ１１１）。そして、ＣＰＵ１１１は、画素Ａと平均値Ｈとの間の差分の絶対値ｄ２（ｄ２＝｜Ｈ−Ａ｜）が第２の閾値Ｔｈ２よりも小さいか否かを判別する（ステップＳ１１２）。ｄ２が第２の閾値Ｔｈ２よりも小さいならば（ステップＳ１１２のＹＥＳ）、ＣＰＵ１１１は、画素Ａの画素値を平均値Ｈで置換して、画素Ａの画素値を補正する（ステップＳ１１３）。一方、ｄ２が第２の閾値Ｔｈ２以上であれば（ステップＳ１１２のＮＯ）、ＣＰＵ１１１は、画素Ａの画素値を補正しない（ステップＳ１１４）。
【００３５】
リンギングが有ると判定された画素ブロック内の全ての画素に関する処理が完了するまで、ステップＳ１０９〜Ｓ１１４の処理は繰り返し実行される（ステップＳ１１５）。
【００３６】
なお、第２の閾値Ｔｈ２は固定値でもよいが、リンギングが有ると判定された画素ブロック毎に、当該画素ブロックに対応するｄ１に応じて第２の閾値Ｔｈ２を変更してもよい。この場合、リンギングが有ると判定された画素ブロック毎に第２の閾値Ｔｈ２は動的に変更される。第２の閾値Ｔｈ２は、ｄ１に所定の係数を乗じることによって求めることができる。
【００３７】
図６は、第２の閾値Ｔｈ２を変更する処理の手順を示している。この処理は、例えば、図５のステップＳ１０８にて行われる。
【００３８】
ＣＰＵ１１１は、差分値ｄ１を入力し（ステップＳ２０１）、その差分値ｄ１に定数αを乗算する（ステップＳ２０２）。そして、ＣＰＵ１１１は、乗算結果（ｄ１×α）を第２の閾値Ｔｈ２として設定する（ステップＳ２０３）。
【００３９】
差分値ｄ１が大きい画素ブロックほど、その画素ブロックに含まれるリンギングの値も大きいと考えられる。このため、差分値ｄ１に応じて第２の閾値Ｔｈ２を変更することにより、リンギングをより確実に除去することが可能となる。
【００４０】
なお、図５で説明した平滑化処理においては、各画素の画素値をその周辺の複数画素（周辺４画素）の平均値Ｈと比較するという比較方法を使用し、また画素値の補正を周辺４画素の平均値Ｈで置換するという補正方法を用いたが、他の画素比較方法及び他の補正方法を用いても同様の効果が得られることは言うまでもない。
【００４１】
また、以上の説明では、８×８の画素ブロック単位でデリンギング処理を行ったが、例えば１６×１６のマクロブロック単位でデリンギング処理を行っても同様の効果を得ることができる。この場合、ＣＰＵ１１１は、まず、１６×１６のマクロブロック毎に、当該マクロブロックに属する最大画素値と最小画素値との間の差分値を検出し、その差分値に応じて、当該マクロブロックがリンギングノイズを発生する原因となるエッジ（信号の立ち上がりまたは立ち下がり）を含む可能性があるマクロブロックであるか否かを判別する。最大画素値と最小画素値との間の差分値がある閾値よりも大きいマクロブロックは、リンギングノイズを発生する原因となるエッジを含む可能性があるマクロブロックであると判定される。ＣＰＵ１１１は、エッジを含む可能性があると判定された各マクロブロック毎に、リンギングノイズを除去するための平滑化処理を実行する。
【００４２】
次に、図７および図８を参照して、デリンギング処理モジュール２１３によって実行されるデリンギング処理の第２の例について説明する。
【００４３】
通常、ＭＰＥＧ２のようなブロック符号化方式においては、量子化テーブルに設定すべき８×８の量子化係数は、１６×１６のマクロブロック単位で決定される。つまり、同一のマクロブロック内に属する４つの８×８画素ブロックは同一の量子化テーブルによって量子化される。このため、同一のマクロブロック内に属する４つの画素ブロックの内のいずれか一つにリンギングが有ると判定されたならば、他の３つの画素ブロックにもリンギングが有る可能性が高いと考えることができる。
【００４４】
図７には、マクロブロックと画素ブロックとの関係が示されている。マクロブロックＭＢ１は各々が８×８画素の４つの画素ブロックＢ１，Ｂ２，Ｂ５，Ｂ６から構成され、またマクロブロックＭＢ２は各々が８×８画素の４つの画素ブロックＢ３，Ｂ４，Ｂ７，Ｂ８から構成されている。
【００４５】
デリンギング処理モジュール２１３は、画素ブロック毎に当該画素ブロックに属する最大画素値と最小画素値との間の差分値を検出し、その差分値に応じて、当該画素ブロックがリンギングを含むブロックであるか否かを判別する。例えば、画素ブロックＢ１がリンギングを含むブロックであると判定されたならば、マクロブロックＭＢ１に含まれる４つの画素ブロックＢ１，Ｂ２，Ｂ５，Ｂ６の全てに対して平滑化処理が実行される。これにより、リンギングを含む可能性が高いと予想される画素ブロック全てに対して平滑化処理を行うことができる。
【００４６】
以下、図８のフローチャートを参照して、デリンギング処理の具体的な手順を説明する。
【００４７】
ＣＰＵ１１１は、処理対象のマクロブロックの中から、処理対象の画素ブロックを取り込む（ステップＳ３０１，Ｓ３０２）。ＣＰＵ１１１は、取り込んだ画素ブロック内の最大画素値（ＭＡＸ）と最小画素値（ｍｉｎ）との間の差分値ｄｎ（ｄｎ＝ＭＡＸ−ｍｉｎ）を算出する（ステップＳ３０３）。処理対象のマクロブロック内の全ての画素ブロックそれぞれに対応する差分値ｄｎが算出されるまで、ステップＳ３０２、Ｓ３０３の処理は繰り返し実行される。
【００４８】
次いで、ＣＰＵ１１１は、処理対象のマクロブロック内に、差分値ｄｎが予め決められた所定の第１の閾値Ｔｈ１よりも大きい画素ブロックが存在するか否かを判別する（ステップＳ３０５）。もし存在しないならば（ステップＳ３０６のＮＯ）、ＣＰＵ１１１は、何も実行せずに、ステップＳ３０１に戻り、次のマクロブロックの処理を開始する。一方、差分値ｄｎが第１の閾値Ｔｈ１よりも大きい画素ブロックが存在するならば（ステップＳ３０６のＹＥＳ）、ＣＰＵ１１１は、現在処理中のマクロブロック内にはリンギングを発生させる立ち上がり信号または立ち下がり信号が存在すると推定し、当該マクロブロック内にはリンギングが有ると判定する（ステップＳ３０８）。
【００４９】
次に、ＣＰＵ１１１は、リンギングが有ると判定されたマクロブロック内の各画素ブロックに対して、平滑化処理を実行する。
【００５０】
すなわち、ＣＰＵ１１１は、処理対象の画素ブロックを取り込み、そしてその画素ブロックから、或る画素Ａと上下左右に存在する４画素Ｕ，Ｄ，Ｌ，Ｒを取り込む（ステップＳ３０９，Ｓ３１０）。ＣＰＵ１１１は、４画素Ｕ，Ｄ，Ｌ，Ｒの画素値の平均値Ｈを算出する（ステップＳ３１１）。そして、ＣＰＵ１１１は、画素Ａと平均値Ｈとの間の差分の絶対値ｄ２（ｄ２＝｜Ｈ−Ａ｜）が第２の閾値Ｔｈ２よりも小さいか否かを判別する（ステップＳ３１２）。ｄ２が第２の閾値Ｔｈ２よりも小さいならば（ステップＳ３１２のＹＥＳ）、ＣＰＵ１１１は、画素Ａの画素値を平均値Ｈで置換して、画素Ａの画素値を補正する（ステップＳ３１３）。一方、ｄ２が第２の閾値Ｔｈ２以上であれば（ステップＳ３１２のＮＯ）、ＣＰＵ１１１は、画素Ａの画素値を補正しない（ステップＳ３１４）。
【００５１】
処理対象の現在の画素ブロック内の全ての画素に関する処理が完了するまで、ステップＳ３１０〜Ｓ３１４の処理は繰り返し実行される（ステップＳ３１５，Ｓ３１６）。
【００５２】
処理対象の現在の画素ブロック内の全ての画素に関する処理が完了すると（ステップＳ３１５のＹＥＳ）、ＣＰＵ１１１は、ステップＳ３１８に進み、処理対象の現在のマクロブロック内の次の画素ブロックの処理を開始する。
【００５３】
そして、処理対象の現在のマクロブロック内の全ての画素ブロックの処理が完了すると（ステップＳ３１７のＹＥＳ）、ＣＰＵ１１１は、ステップＳ３０１に進み、次のマクロブロックの処理を開始する。
【００５４】
なお、図８の処理においても、リンギングが有ると判定された画素ブロック毎に、当該画素ブロックに対応するｄ１に応じて第２の閾値Ｔｈ２を変更してもよい。
【００５５】
図９は、第２の閾値Ｔｈ２を変更する処理の手順を示している。この処理は、例えば、図５のステップＳ３０８にて行われる。
【００５６】
ＣＰＵ１１１は、差分値ｄｎを入力し（ステップＳ４０１）、その差分値ｄ１に定数αを乗算する（ステップＳ４０２）。そして、ＣＰＵ１１１は、乗算結果（ｄｎ×α）を第２の閾値Ｔｈ２として設定する（ステップＳ４０３）。
【００５７】
第２の閾値Ｔｈ２は、同一のマクロブロック内に属するすべての画素ブロックに共通に使用することができる。
【００５８】
以上説明したように、本実施形態においては、各ブロック（あるいはマクロブロック）毎に最大画素値と最小画素値との差分に応じて当該ブロックがリンギングを含む画像であるか否かが判定される。したがって、自然画像のようにエッジが複数画素にわたって発生する画像データを処理する場合でも、エッジを含み、リンギングが発生する可能性の有るブロックを正しく検出することができる。よって、リンギングが有るブロック（あるいはマクロブロック）に対してのみ平滑化処理を実行することができるので、画面全体を平滑化する従来のデリンギング処理に比し、必要な演算量を大幅に低減することができる。またリンギングが無いブロックは平滑化されないので、リンギング以外の微小信号が除去されてしまうという不具合の発生を防止することができる。
【００５９】
なお、本実施形態によるデリンギング処理においては、各画素の画素値としては各画素の輝度値を使用すればよい。また、動画像データに限らず、例えばＪＰＥＧ等のブロック符号化方式で符号化された静止画像データに対しても同様に適用することができる。
【００６０】
また上述のデリンギング処理は全てコンピュータプログラムによって実現されているので、このコンピュータプログラムをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータに導入するだけで、本実施形態と同様の効果を容易に実現することができる。
【００６１】
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階では、その要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６２】
【図１】本発明の一実施形態に係る情報処理装置の外観を示す斜視図。
【図２】図１の情報処理装置のシステム構成の例を示すブロック図。
【図３】図１の情報処理装置によって実行されるビデオ再生アプリケーションプログラムの構成を説明するための図。
【図４】図１の情報処理装置によって実行されるデリンギング処理の第１の例を説明するための図。
【図５】図４のデリンギング処理の手順を説明するためのフローチャート。
【図６】図４のデリンギング処理で用いられる第２の閾値を変更するための手順を説明するフローチャート。
【図７】図１の情報処理装置によって実行されるデリンギング処理の第２の例を説明するための図。
【図８】図７のデリンギング処理の手順を説明するフローチャート。
【図９】図７のデリンギング処理で用いられる第２の閾値を変更するための手順を説明するフローチャート。
【符号の説明】
【００６３】
１０…パーソナルコンピュータ、１１１…ＣＰＵ、１１３…メモリ、１１４…グラフィクスコントローラ、２０１…ビデオ再生アプリケーション、２１１…デコード処理モジュール、２１２…デブロッキング処理モジュール、２１３…デリンギング処理モジュール。
【図１】
2006279709.tif 000003
【図２】
2006279709.tif 000004
【図３】
2006279709.tif 000005
【図４】
2006279709.tif 000006
【図５】
2006279709.tif 000007
【図６】
2006279709.tif 000008
【図７】
2006279709.tif 000009
【図８】
2006279709.tif 000010
【図９】
2006279709.tif 000011