(57)【要約】【課題】画像データに対してより効率的に複数の画像処理をマルチコアＣＰＵまたはＧＰＵが施す技術を提供する。【解決手段】入力される画像フレームを複数のブロックに分割し、この分割したブロックごとに一つ以上の画像処理を記述する画像データ形式に基づいて動作するマルチコアＣＰＵとＧＰＵのいずれか又は双方から成るプロセッサを備え、前記プロセッサは前記画像データ形式に基づく画像処理を並列して実施することを特徴とする画像処理装置。【選択図】  図４
2011128909.tif 000002
【特許請求の範囲】
【請求項１】
入力される画像フレームを複数のブロックに分割し、この分割したブロックごとに一つ以上の画像処理を記述する画像データ形式に基づいて動作するマルチコアＣＰＵとＧＰＵのいずれか又は双方から成るプロセッサを備え、
前記プロセッサは前記画像データ形式に基づく画像処理を並列して実施することを特徴とする画像処理装置。
【請求項２】
前記画像処理として拡大処理を含み、前記プロセッサとしてＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えたことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記拡大処理は、前記ＧＰＵが専任されて行うことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記ＧＰＵは、ＣＰＵから受信する圧縮された画像データを伸張しこの伸張された画像データに対して前記画像処理を行うことを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記プロセッサによる画像処理結果を表示するディスプレイを更に備えたことを特徴とする請求項１に記載の画像処理装置。
【請求項６】
入力される画像フレームを画像ブロックに分割し、この画像ブロックごとに一つ以上の画像処理を記述する画像データ形式に基づいて動作する工程を含み、
前記工程は前記画像データ形式に基づく画像処理を並列して実施することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ)のマルチコア化、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ)による汎用演算(Ｇｅｎｅｒａｌ Ｐｕｒｐｏｓｅ  ＧＰＵ、ＧＰＧＰＵ)によって、ＣＰＵとＧＰＵの処理能力は飛躍的に向上している。この高い処理能力を持ったＣＰＵとＧＰＵを協調動作させることによって更なる処理能力の向上が期待される。例えば特許文献１に記載されている内容は、情報処理装置で、ＣＰＵとＧＰＵで構成され、ＣＰＵから通知されるディスプレイリストに基づいてＧＰＵは描画コンテクストを読み出し、レンダリング処理を行いフレームメモリに描画するというものである。
【０００３】
しかしながら、一般にＣＰＵとＧＰＵのいずれであれ画像データに対して効率的に複数の画像処理を施すのは容易でなかった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１８４６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、画像データに対してより効率的に複数の画像処理をマルチコアＣＰＵまたはＧＰＵが施す技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の画像処理装置は、入力される画像フレームを複数のブロックに分割し、この分割したブロックごとに一つ以上の画像処理を記述する画像データ形式に基づいて動作するマルチコアＣＰＵとＧＰＵのいずれか又は双方から成るプロセッサを備え、前記プロセッサは前記画像データ形式に基づく画像処理を並列して実施することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、画像データに対してより効率的に複数の画像処理をマルチコアＣＰＵまたはＧＰＵが施す画像処理装置が得られる。
【図面の簡単な説明】
【０００８】
【図１】本発明の画像処理装置の実施形態であるコンピュータの構成を示す図。
【図２】同実施形態の低解像度画像に対して各種フィルタを適用する例を示す図。
【図３】同実施形態の画像フレームをブロック分割する例を示す図。
【図４】同実施形態の画像処理ブロック情報データの形態を示す図。
【図５】同実施形態に用いられるフィルタを適用される画素領域Ｐと左のマージン領域ＭＬと右のマージン領域ＭＲとの配置関係を示す説明図。
【図６】同実施形態のＣＰＵとＧＰＵで処理する画像フィルタの数を変える例。
【図７】同実施形態のＣＰＵからＧＰＵの画像転送を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、本発明による画像処理装置の実施形態を図１乃至図７を参照して説明する。
ＣＰＵとＧＰＵの協調動作についてはＭＰＥＧ‐２などのエンコード処理において、その負荷およびコンテンツのピクチャ配列に応じて、ＣＰＵとＧＰＵを使い分けて、再生を高速化する方法が提案されている。
【００１０】
本実施形態としては、デコード処理の後段に位置するより一般的な、拡大処理を含む画像処理をＣＰＵとＧＰＵで協調動作させる例について説明する。
まず、図１を参照しながら、本発明の画像処理装置の一実施形態であるコンピュータの構成について説明する。図１は、本発明の画像処理装置の一実施形態であるコンピュータの構成を示す図である。
【００１１】
コンピュータ１０は、図１に示すように、ＣＰＵ１１１と、ノースブリッジ１１３と、メインメモリ１１５と、グラフィカルプロセッシングユニット（ＧＰＵ）１１７と、ＶＲＡＭ１１８と、サウスブリッジ１１９と、ＢＩＯＳ−ＲＯＭ１２１と、ハードディスクドライブ（ＨＤＤ）１２３と、光ディスクドライブ（ＯＤＤ）１２５と、アナログＴＶチューナ１２７と、デジタルＴＶチューナ１２９と、エンベデッド・コントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１３１と、ネットワークコントローラ１３３と、無線通信デバイス１３５とを有する。
【００１２】
ＣＰＵ１１１は、本コンピュータ１０の動作を制御するために設けられたプロセッサであり、ＨＤＤ１２３からメインメモリ１１５にロードされる、オペレーティングシステム（ＯＳ）、及び画像処理プログラム２０等の各種プログラムを実行する。画像処理プログラム２０は、例えばＭＰＥＧ‐２等の符号化方式で符号化された動画像符号化列を復号した後に得られる画像データを処理するためのプログラムである。画像処理プログラム２０が復号化を待つ該動画像符号化列は、例えばＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）からＯＤＤ１２５が読み込んだものや、デジタルＴＶチューナ１２９が受信したものが考えられる。
【００１３】
また、ＣＰＵ１１１は、ＢＩＯＳ−ＲＯＭ１２１に格納されたＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）も実行する。ＢＩＯＳはハードウェア制御のためのプログラムである。
【００１４】
ノースブリッジ１１３はＣＰＵ１１１のローカルバスと、サウスブリッジ１１９との間を接続するブリッジである。ノースブリッジ１１３には、メインメモリ１１５をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ１１３は、ＰＣＩ  Ｅｘｐｒｅｓｓバス等を介してＧＰＵ１１７との通信を実行する機能も有している。
【００１５】
ＧＰＵ１１７は本コンピュータ１０のディスプレイモニタとして使用されるＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）１２０を制御する表示コントローラである。このＧＰＵ１１７はＯＳ等によりＶＲＡＭ１１８に書き込まれた画像データをＬＣＤ１２０に表示する。また先述の通り、ＧＰＵ１１７は画像処理プログラム２０による制御の下、動画像符号化列の復号化結果の画像データに対して画像処理を行う機能も有する。
【００１６】
サウスブリッジ１１９は、ＬＰＣ（Ｌｏｗ  Ｐｉｎ  Ｃｏｕｎｔ）バス上の各デバイス、及びＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス上の各デバイスを制御する。また、サウスブリッジ１１９は、ＨＤＤ１２３、ＯＤＤ１２５を制御するためのＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）コントローラを内蔵している。
【００１７】
さらに、サウスブリッジ１１９は、リアルタイムクロック（ＲＴＣ）１１９Ａを備えている。ＲＴＣ１１９Ａは、現在時刻（年、月、日、時、分、秒）を計時する時計モジュールとして機能する。
【００１８】
アナログＴＶチューナ１２７、デジタルＴＶチューナ１２９は、其々放送波によって放送される放送番組データを受信する受信部である。本実施例では、アナログＴＶチューナ１２７は、アナログ放送信号によって放送される放送番組データを受信するアナログＴＶチューナから構成され、デジタルＴＶチューナ１２９は、地上波デジタル放送信号によって放送される放送番組データを受信するデジタルＴＶチューナから構成されている。
【００１９】
ＥＣ／ＫＢＣ１３１は、電力管理のためのエンベデッド・コントローラと、キーボード（ＫＢ）１３２及びタッチパッド１３５を制御するためのキーボードコントローラとが集約された、１チップマイクロコンピュータである。ＥＣ／ＫＢＣ１３１は、ユーザによるパワーボタンの操作に応じて本コンピュータ１０をパワーオン／パワーオフする機能を有している。本コンピュータ１０の各コンポーネントに供給される動作電源は、本コンピュータ１０に内蔵されたバッテリ１３６、又はＡＣアダプタ１３８を介して外部から供給される外部電源から生成される。
【００２０】
ネットワークコントローラ１３３は有線ネットワークに接続するためのデバイスであり、インターネット等の外部ネットワークとの通信を実行するために使用される。また、無線通信デバイス１３５は無線ネットワークに接続するためのデバイスであり、他の無線通信デバイスとの一対一の無線通信や、インターネット等の外部ネットワークとの通信等に使用される。
【００２１】
次に、図２を参照して画像処理プログラム２０の機能を説明する。図２は、画像処理プログラム２０が扱う対象とする画像データの構成を示す。
先述の通り、図２に示す画像処理プログラム２０は、ＣＰＵ１１１及びＧＰＵ１１７を用いて復号化後の画像データの画像処理を行う。図２は、ＣＰＵ１１１で拡大処理する前の低解像度画像に対して破線囲い枠２１で示すように画像フィルタＡおよび画像フィルタＢを適用し、ＧＰＵ１１７上で破線囲い枠２２で示すように画像の拡大処理を行う画像フィルタＣを適用後、高解像度画像に対して画像フィルタＤを適用する例である。
【００２２】
図３は、画像フレームをブロック分割する例を示す図である。
まずＣＰＵ１１１は、処理元の低解像画像をＮ個の矩形ブロックに分割し、このＮ個分の画像処理ブロック情報データをメインメモリ１１５内に作成する。各矩形ブロックは必ずしも同一サイズでなくともよいが、例えば縦横８画素×８画素のサイズとする。
【００２３】
この画像処理ブロック情報データは、図４に示す形態のように以下の要素から構成される。
（１）画像処理ブロック番号
画像処理ブロック番号は、処理元の画像フレームをＮ個の画像ブロックに分割した際の画像ブロック番号である。これは例えば図３に示したブロック１〜ブロックＮに各相当する１〜Ｎの番号である。
【００２４】
（２ａ）参照画像データのオフセット位置
参照画像データのオフセット位置は、画像ブロック情報データ内に含まれる画像ブロックデータのオフセット位置である。例えばブロックＩ（１≦Ｉ≦Ｎ）のブロックに関して、画像処理ブロック番号記述位置からの参照画像データのオフセット位置を表す。
【００２５】
（２ｂ）参照画像データのデータサイズ
参照画像データのデータサイズは、画像ブロックデータのデータサイズである。例えばブロックＩ（１≦Ｉ≦Ｎ）のブロックで、参照画像データのデータサイズを表す。上記のように縦横８画素×８画素のサイズであれば、例えば画素単位で６４と表す。
【００２６】
（２ｃ）参照画像データのデータフォーマット
参照画像データのデータフォーマットには、画像ブロックデータのデータ形式を特定するＩＤが含まれている。このデータ形式としては、種別として画像の圧縮／非圧縮や圧縮の場合の圧縮方法が記述される。
【００２７】
（３）画像処理フィルタリスト
画像処理フィルタリストには、１つ以上の画像フィルタリスト（後述）が含まれる。
（４）参照画像データ
参照画像データには、実際の画像ブロックデータが含まれる。
また、画像処理ブロック情報データ内の画像処理フィルタリスト（１〜Ｋ）は、各画像フィルタリストとして次のような要素から構成される。
（ａ）画像処理フィルタ番号
画像処理フィルタ番号には、適用する画像処理のフィルタ番号が残り行うべきフィルタ数として非負の整数で降順に指定される（最後の画像処理フィルタリストＫに相当する画像フィルタのフィルタ番号は０）。
【００２８】
（ｂ）画像処理フィルタ種別
画像処理フィルタ種別には、画像処理フィルタの種別を特定するＩＤが含まれる。この種別としては後述のＡ、Ｂ、Ｃ、Ｄの種類別や更にどのようなアルゴリズムを用いたフィルタであるかといったことが記述される。
【００２９】
（ｃ）画像処理フィルタパラメータ
画像処理フィルタパラメータには、画像フィルタを適用する際に画像フィルタに渡されるパラメータを指定する。
（ｄ）参照ブロック情報（座標、幅、高さ）
参照ブロック情報には、画像フィルタを適用する前の画像ブロックの画像フレームに対する座標、画像ブロックの幅および高さが含まれる。
（ｅ）参照ブロックマージン
参照ブロックマージンには、フィルタを適用する際に参照する左右上下の拡張画素のマージンを指定する。図５では、あるフィルタを適用される画素領域Ｐと左のマージン領域ＭＬと右のマージン領域ＭＲとの配置関係が例示されている。フィルタにより画素領域とマージン領域との配置関係やマージン領域のサイズは適宜変わる。
【００３０】
（ｆ）処理後ブロック情報（座標、幅、高さ）
処理後ブロック情報には、画像フィルタを適用した後の画像ブロックの画像フレームに対する座標、画像ブロックの幅および高さが含まれる
各画像ブロックに対して、１つ以上の画像フィルタリスト内のそれぞれこれらａ〜ｆの情報に従って、画像フィルタを適用していくことになる。
以下では、この画像処理ブロック情報データおよび画像処理フィルタリストを使って、ＳＤ入力画像に対して、ノイズ除去フィルタＡ、先鋭化フィルタＢ、拡大フィルタＣ、ポストフィルタＤの４種類の画像フィルタを適用し、ＨＤ画像に変換する例を説明する。
【００３１】
図６は、画像ブロック毎にＣＰＵとＧＰＵで処理する画像フィルタの数を変える例である。画像フレームを矩形ブロックに分割し、Ｎ個の画像処理ブロック情報データを作成する。なおこのような画像データ形式の作成は装置内で行なわずにネットワークで得るような形態でもよい。
【００３２】
ＣＰＵがＣＰＵとＧＰＵで処理する画像フィルタの数を変える制御をしている具体例として、例えば図６内のブロック１は、ノイズ除去フィルタＡと先鋭化フィルタＢと拡大フィルタＣとポストフィルタＤをＧＰＵで処理する例である。また図６内のブロック２は、ノイズ除去フィルタＡをＣＰＵで処理し、先鋭化フィルタＢと拡大フィルタＣとポストフィルタＤをＧＰＵで処理する例である。また図６内のブロックＮは、ノイズ除去フィルタＡと先鋭化フィルタＢをＣＰＵで処理し、拡大フィルタＣとポストフィルタＤをＧＰＵで処理する例である。このようなフィルタの数、種類とは予め不揮発性のメモリに記録しておけばよい。
【００３３】
いずれも最初の画像処理ブロック情報データには４つの画像処理フィルタリストと、処理前の画像ブロックデータが含まれている。ＣＰＵ側では最初の画像処理フィルタリストを解析し、画像フィルタの種別を特定する。また、画像処理ブロック情報データの情報に基づいて画像ブロックデータを取得し、指定された画像フィルタに対して、画像ブロックデータ、画像処理前後のブロック座標位置、サイズ、マージン情報を指定されたパラメータ情報を渡して画像処理を行う。
【００３４】
画像処理後は概要として、先頭の画像フィルタリストを削除し、次の画像フィルタリストを解析し、最初の画像フィルタと同様の処理を行う。この際最初の画像フィルタで処理後の画像ブロックを、次の画像フィルタの入力画像とする。
【００３５】
ブロックＮの例では、ＣＰＵ側では先鋭化フィルタＢの適用後、拡大フィルタＣとポストフィルタＤの処理をＧＰＵに分担させるよう画像処理ブロック情報データを更新してＧＰＵに転送する他に、ＧＰＵに既存のコマンドを用いて画像データを転送する。この際図７に示すように以下の処理を行う。
【００３６】
ステップＳ７１（リスト削除）：処理済みの画像フィルタリストを削除する。
ステップＳ７２（データ変換、格納）：処理後の画像ブロックを画像データ形式に従って変換し、参照画像データ部（Ｎ−３）に格納する。
ステップＳ７３（データ情報更新）：参照画像データのオフセット位置および参照画像データサイズを更新する（Ｎ−３）。
この際、画像データ形式として可逆圧縮可能な画像フォーマットを指定すると、圧縮しない場合と比較してＣＰＵとＧＰＵの画像転送コストを削減することができる。可逆圧縮可能な画像フォーマットとして、静止画像ではＰＮＧやＧＩＦといったものがある。圧縮方法としては、精度の高い非可逆なフォーマットでもよい。
【００３７】
ＧＰＵでは転送された画像処理ブロック情報データ中の画像ブロック情報に基づいて、ブロックの画像データを解凍（伸張）し、低解像度の画像処理と同様に拡大フィルタＣおよびポストフィルタＤの画像処理を行う。
【００３８】
ＧＰＵは、転送されたデータ形式が画像処理ブロック情報データであった場合に図７のフローの処理を実行する。或いはＧＰＵが図７の処理をすることを命令されると共に（または命令された後）、画像処理ブロック情報データが入力されたら、図７のフローの処理を実行するような構成としておいてもよい。
【００３９】
以上の実施形態では、ＣＰＵとＧＰＵの協調動作によって拡大処理も含む複数の画像処理を行う画像処理装置において以下のような効果を得ることができる。
（１）画像フレームをブロックに分割し、画像ブロック毎に複数の画像処理リストを指定可能とする
（２）画像ブロック毎に可逆圧縮を含む画像フォーマットを指定可能とする
（３）ＣＰＵ側で低解像画像の処理を行い、ＧＰＵ側で高解像画像の処理を行うことによって、以下のように、画像処理の処理時間を短縮することができる
（３ａ）ＣＰＵ，ＧＰＵ内の並列処理を容易にする
例えばＣＰＵのコアの性能、扱い易いデータサイズに合わせて画像ブロックサイズを決めるのが好適である。
（３ｂ）ＣＰＵとＧＰＵの同時処理を容易にする
或るブロックはＣＰＵ、別のブロックはＧＰＵで扱う等である。
（３ｃ）ＣＰＵとＧＰＵ間のデータ転送量を削減
なお近年、ＧＰＵもグレードによって、動作速度や容量の異なるフレームメモリを有するものも現れている。ＣＰＵとＧＰＵの各グレードのものの組合せによって図６にヴァリエーションを表したような協調動作の分担の既定値（例えば最初の画像処理ブロック情報データのＫ個のフィルタリストのうち何個ずつ分担するか）を設定しておいてもよい。また、各コアの動作の終了等のステータスを監視してＧＰＵの動作をカバーするような動的な構成としてもよい。
【００４０】
なお、この発明は上記実施形態に限定されるものではなく、この外その要旨を逸脱しない範囲で種々変形して実施することができる。
例えば、マルチコア／ＧＰＵ環境としてプロセッサはＣＰＵとＧＰＵのいずれか片方のみでもよい。また画像データ形式自体に並列性を持たせる方法としては、上記のようなリスト形式のものでなくても構わない。
【００４１】
また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係わる構成要素を適宜組み合わせても良いものである。
【符号の説明】
【００４２】
１０・・・コンピュータ
２０・・・復号化プログラム
１１１・・・ＣＰＵ
１１３・・・ノースブリッジ
１１５・・・メインメモリ
１１７・・・ＧＰＵ
１１８・・・ＶＲＡＭ
１１９・・・サウスブリッジ
１１９Ａ・・・ＲＴＣ
１２１・・・ＢＩＯＳ−ＲＯＭ
１２３・・・ＨＤＤ
１２５・・・ＯＤＤ
１２７・・・アナログＴＶチューナ
１２９・・・デジタルＴＶチューナ
１３１・・・ＥＣ／ＫＢＣ
１３２・・・キーボード
１３３・・・ネットワークコントローラ
１３４・・・タッチパッド
１３５・・・無線通信デバイス
１３６・・・バッテリ
１３８・・・ＡＣアダプタ
【図１】
2011128909.tif 000003
【図２】
2011128909.tif 000004
【図３】
2011128909.tif 000005
【図４】
2011128909.tif 000006
【図５】
2011128909.tif 000007
【図６】
2011128909.tif 000008
【図７】
2011128909.tif 000009