(57)【特許請求の範囲】
【請求項１】
ホストからビデオデータおよびオーディオデータを受信するホストインタフェースと、
前記受信されたビデオデータおよびオーディオデータをメモリに格納するメモリコントローラと、
前記メモリに結合された複数のプロセッシングコアと、
前記複数のプロセッシングコア内の少なくとも一つの第１プロセッシングコアを用いて前記メモリ上のビデオデータのフレーム群を解析して前記ビデオデータの特徴を検出すると共に、前記複数のプロセッシングコア内の少なくとも一つの第２プロセッシングコアを用いて、前記メモリ上のオーディオデータに前記検出されたビデオデータの特徴に関連付けられた加工を施す演算制御手段と、
前記ビデオデータに対応する映像信号を生成し、生成された映像信号をディスプレイ機器に出力する映像信号出力インタフェースと、
前記加工が施されたオーディオデータに対応するオーディオ信号を生成し、生成されたオーディオ信号をサウンド機器に出力するオーディオ信号出力インタフェースとを具備するグラフィクスプロセッシングユニット。
【請求項２】
前記演算制御手段は、前記ビデオデータの特徴に基づいて前記ビデオデータ内の特定のシーンを検出し、前記特定のシーンに属する前記オーディオデータ内の各フレームに対して所定の加工を施す請求項１記載のグラフィクスプロセッシングユニット。
【請求項３】
前記演算制御手段は、前記少なくとも一つの第１プロセッシングコアに前記メモリ上のビデオデータのフレーム群を解析して前記ビデオデータの特徴を検出するための第１のタスクを割り当て、前記少なくとも一つの第２プロセッシングコアに前記メモリ上のオーディオデータに前記検出されたビデオデータの特徴に関連付けられた加工を施すための第２のタスクを割り当てる請求項１記載のグラフィクスプロセッシングユニット。
【請求項４】
前記演算制御手段は、前記複数のプロセッシングコア内の少なくとも一つのプロセッシングコアを用いて前記メモリ上のオーディオデータのフレーム群を解析して前記オーディオデータの特徴を検出すると共に、前記複数のプロセッシングコア内の少なくとも一つのプロセッシングコアを用いて、前記メモリ上のビデオデータに前記検出されたオーディオデータの特徴に関連付けられた加工を施す請求項１記載のグラフィクスプロセッシングユニット。
【請求項５】
サウンド機器からのオーディオ信号を入力するオーディオ信号入力インタフェースをさらに具備する請求項１記載のグラフィクスプロセッシングユニット。
【請求項６】
ＣＰＵと、
前記ＣＰＵに結合され、前記ＣＰＵからの要求に応じてグラフィクスデータ、ビデオデータおよびオーディオデータを処理するように構成されたグラフィクスコントローラとを具備し、
前記グラフィクスコントローラは、
前記ＣＰＵからビデオデータおよびオーディオデータを受信するホストインタフェースと、
前記受信されたビデオデータおよびオーディオデータをメモリに格納するメモリコントローラと、
前記メモリに結合された複数のプロセッシングコアと、
前記複数のプロセッシングコア内の少なくとも一つの第１プロセッシングコアを用いて前記メモリ上のビデオデータのフレーム群を解析して前記ビデオデータの特徴を検出すると共に、前記複数のプロセッシングコア内の少なくとも一つの第２プロセッシングコアを用いて、前記メモリ上のオーディオデータに前記検出されたビデオデータの特徴に関連付けられた加工を施す演算制御手段と、
前記ビデオデータに対応する映像信号を生成し、生成された映像信号をディスプレイ機器に出力する映像信号出力インタフェースと、
前記加工が施されたオーディオデータに対応するオーディオ信号を生成し、生成されたオーディオ信号をサウンド機器に出力するオーディオ信号出力インタフェースとを具備する情報処理装置。
【請求項７】
前記演算制御手段は、前記ビデオデータの特徴に基づいて前記ビデオデータ内の特定のシーンを検出し、前記特定のシーンに属する前記オーディオデータ内の各フレームに対して所定の加工を施す請求項６記載の情報処理装置。
【請求項８】
前記演算制御手段は、前記少なくとも一つの第１プロセッシングコアに前記メモリ上のビデオデータのフレーム群を解析して前記ビデオデータの特徴を検出するための第１のタスクを割り当て、前記少なくとも一つの第２プロセッシングコアに前記メモリ上のオーディオデータに前記検出されたビデオデータの特徴に関連付けられた加工を施すための第２のタスクを割り当てる請求項６記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、グラフィクスプロセッシングユニットおよび同グラフィクスプロセッシングユニットを用いた情報処理装置に関する。
【背景技術】
【０００２】
一般に、パーソナルコンピュータのような情報処理装置においては、その情報処理装置の描画性能を高めるためにグラフィクスプロセッシングユニット（ＧＰＵ）が用いられている。最近のＧＰＵの多くは、並列動作可能な複数のプロセッシングコアを含み、例えば２次元または３次元のグラフィクス演算等を高速に実行することができる。
【０００３】
一方、情報処理装置におけるオーディオデータ（サウンドデータとも云う）の処理は、通常、サウンドコントローラと称されるデジタル信号プロセッサ（ＤＳＰ）によって実行される。しかし、一般に、ＤＳＰの演算処理能力は比較的低い。このため、ＤＳＰ単体でオーディオデータに高度な処理を施すことは困難である。
【０００４】
また、最近では、ビデオデータとオーディオデータの双方を扱うように設計されたメディア処理ＬＳＩも開発されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】再公表特許第２００５／０９６１６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、通常のメディア処理ＬＳＩによって実現されるのは、せいぜい、ビデオデータをエンコードまたはデコードする機能と、オーディオデータをエンコードまたはデコードする機能程度である。また、通常のメディア処理ＬＳＩでは、ビデオデータに対する処理とオーディオデータに対する処理は互いに独立されている。
【０００７】
ビデオデータとオーディオデータとを含むデジタルコンテンツ（例えば、ムービー、ＤＶＤビデオ、放送番組データ等）においては、それらビデオデータとオーディオデータとは互いに関連している。このため、デジタルコンテンツを再生する装置においては、ビデオデータに対する処理とオーディオデータに対する処理とを互いに連携させるための新たな機能の実現が必要である。
【０００８】
本発明は上述の事情を考慮してなされたものであり、オーディオデータをビデオデータに連携させて処理することができるグラフィクスプロセッシングユニットおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
実施形態によれば、グラフィクスプロセッシングユニットは、ホストインタフェースと、メモリコントローラと、複数のプロセッシングコアと、演算制御手段と、映像信号出力インタフェースと、オーディオ信号出力インタフェースとを具備する。ホストインタフェースは、ホストからビデオデータおよびオーディオデータを受信する。メモリコントローラは、前記受信されたビデオデータおよびオーディオデータをメモリに格納する。前記複数のプロセッシングコアは前記メモリに結合されている。演算制御手段は、前記複数のプロセッシングコア内の少なくとも一つの第１プロセッシングコアを用いて前記メモリ上のビデオデータのフレーム群を解析して前記ビデオデータの特徴を検出すると共に、前記複数のプロセッシングコア内の少なくとも一つの第２プロセッシングコアを用いて、前記メモリ上のオーディオデータに前記検出されたビデオデータの特徴に関連付けられた加工を施す。映像信号出力インタフェースは、ビデオデータに対応する映像信号を生成し、生成された映像信号をディスプレイ機器に出力する。オーディオ信号出力インタフェースは、加工が施されたオーディオデータに対応するオーディオ信号を生成し、生成されたオーディオ信号をサウンド機器に出力する。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る情報処理装置の構成を示す斜視図。
【図２】同実施形態の情報処理装置のシステム構成を示すブロック図。
【図３】同実施形態の情報処理装置に設けられるグラフィクスプロセッシングユニットの構成を示すブロック図。
【図４】図３のグラフィクスプロセッシングユニットによって実行される処理の流れを説明するための図。
【図５】図３のグラフィクスプロセッシングユニットによって実行されるリバーブ処理の流れを説明するための図。
【図６】図３のグラフィクスプロセッシングユニットによってビデオデータおよびオーディオデータに対して実行される処理の流れを説明するための図。
【図７】図３のグラフィクスプロセッシングユニットがビデオデータの解析結果に基づいて実行するオーディオ処理の例を説明するための図。
【図８】従来のグラフィクスプロセッシングユニットを用いたシステムにおけるビデオデータおよびオーディオデータの流れを説明するための図。
【図９】図３のグラフィクスプロセッシングユニットを用いたシステムにおけるビデオデータおよびオーディオデータの流れを説明するための図。
【図１０】図３のグラフィクスプロセッシングユニットの機能構成を説明するための図。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、実施形態を説明する。  
図１は、本発明の一実施形態に係る情報処理装置の外観を示す斜視図である。この情報処理装置は、例えばノートブックタイプのパーソナルコンピュータ１０として実現されている。図１に示すように、本コンピュータ１０は、コンピュータ本体１１と、ディスプレイユニット１２とから構成されている。ディスプレイユニット１２には、ＬＣＤ（liquid crystal display）１７が組み込まれている。ディスプレイユニット１２は、コンピュータ本体１１の上面が露出される開放位置とコンピュータ本体１１の上面を覆う閉塞位置との間を回動自在にコンピュータ本体１１に取り付けられている。
【００１２】
コンピュータ本体１１は、薄い箱形の筐体を有しており、その上面には、キーボード１３、本コンピュータ１０を電源オン／電源オフするためのパワーボタン１４、入力操作パネル１５、タッチパッド１６、スピーカ１８Ａ，１８Ｂなどが配置されている。入力操作パネル１５上には、各種操作ボタンが設けられている。
【００１３】
また、コンピュータ本体１１の右側面には、例えばＵＳＢ（universal serial bus）２．０規格のＵＳＢケーブルやＵＳＢデバイスを接続するためのＵＳＢコネクタ１９が設けられている。さらに、コンピュータ本体１１の背面には、例えばＨＤＭＩ(high-definition multimedia interface)規格に対応した外部ディスプレイ接続端子（図示せず）が設けられている。この外部ディスプレイ接続端子は、デジタル映像信号を外部ディスプレイに出力するために用いられる。
【００１４】
図２は、本コンピュータ１０のシステム構成を示す図である。  
本コンピュータ１０は、図２に示されているように、ＣＰＵ１０１、ノースブリッジ１０２、主メモリ１０３、サウスブリッジ１０４、グラフィクスプロセッシングユニット（ＧＰＵ）１０５、メモリ１０５Ａ、ＢＩＯＳ−ＲＯＭ１０７、ＬＡＮコントローラ１０８、ハードディスクドライブ（ＨＤＤ）１０９、光ディスクドライブ（ＯＤＤ）１１０、ＵＳＢコントローラ１１１Ａ、カードコントローラ１１１Ｂ、無線ＬＡＮコントローラ１１２、エンベデッドコントローラ／キーボードコントローラ（ＥＣ／ＫＢＣ）１１３、ＥＥＰＲＯＭ１１４等を備える。
【００１５】
ＣＰＵ１０１は、本コンピュータ１０内の各部の動作を制御するプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０９から主メモリ１０３にロードされる、オペレーティングシステム（ＯＳ）、及び各種アプリケーションプログラムを実行する。アプリケーションプログラムには、各種デジタルコンテンツ（例えば、ムービー、ＤＶＤビデオ、放送番組データ等）を再生するための動画プレーヤが含まれている。この動画プレーヤは、デジタルコンテンツ内のビデオデータおよびオーディオデータをＧＰＵ１０５を用いて再生するように構成されている。また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０７に格納されたＢＩＯＳも実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００１６】
ノースブリッジ１０２は、ＣＰＵ１０１のローカルバスとサウスブリッジ１０４との間を接続するブリッジデバイスである。ノースブリッジ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ１０２は、例えば、PCI Express規格のシリアルバスなどを介してＧＰＵ１０５との通信を実行する機能も有している。
【００１７】
ＧＰＵ１０５は、本コンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７および外部ディスプレイを制御する。ＧＰＵ１０５によって生成される映像信号はＬＣＤ１７に送られる。また、ＧＰＵ１０５は、ＨＤＭＩ制御回路３およびＨＤＭＩ端子２を介して、外部ディスプレイ１にデジタル映像信号を送出することもできる。ＨＤＭＩ端子２は、前述の外部ディスプレイ接続端子である。ＨＤＭＩ端子２は、非圧縮のデジタル映像信号とデジタルオーディオ信号とを１本のケーブルでテレビのような外部ディスプレイ１に送出することができる。ＨＤＭＩ制御回路３は、ＨＤＭＩモニタと称される外部ディスプレイ１にデジタル映像信号をＨＤＭＩ端子２を介して送出するためのインタフェースである。
【００１８】
ＧＰＵ１０５は、PCI Express規格のシリアルバス等を介してＣＰＵ１０１に結合されており、ＣＰＵ１０１からの要求に応じてグラフィクスデータ、ビデオデータおよびオーディオデータを処理するように構成されている。より詳しくは、ＧＰＵ１０５は、オーディオデータ（サウンドデータとも云う）をスピーカまたは他の外部サウンド機器に出力するためのオーディオ信号出力インタフェースと、オーディオデータを解析および処理する機能とを有している。したがって、本コンピュータ１０においては、グラフィクスデータのみならず、ビデオデータおよびオーディオデータもＧＰＵ１０５によって処理することができる。そしてＧＰＵ１０５によってそれぞれ生成される映像信号およびオーディオ信号（サウンド信号とも云う）は、ＧＰＵ１０５から直接的にディスプレイ機器（例えば、ＬＣＤ１７、外部ディスプレイ）およびサウンド機器（スピーカ１８Ａ，１８Ｂ、外部サウンド機器）にそれぞれ出力される。
【００１９】
このように、本実施形態では、ＧＰＵ１０５はビデオデータおよびオーディオデータを同時に処理し、そしてビデオデータに対応する映像信号およびオーディオデータに対応するオーディオ信号を外部に直接的に出力することができる。
【００２０】
ＧＰＵ１０５は、複数のプロセッシングコア（ストリーミングプロセッサ）を内蔵している。ＧＰＵ１０５は、例えば、PCI EXPRESSバスを介してＣＰＵ１０１からオーディオデータを受信し、その受信したオーディオデータを複数のプロセッシングコア内の少なくとも一つを用いて処理する。プロセッシングコアによるオーディオデータの処理は、プロセッシングコアに対応する命令セットをファームウェアまたはソフトウェアによってコントロールする事によって実現してもよい。これによって、ＧＰＵ１０５によって実行されるオーディオデータの処理をプログラマブルにすることが可能となり、ＧＰＵ１０５によってオーディオデータに対する様々な処理（編集）を実行することができる。オーディオデータの編集とは、オーディオデータに加工を施すことを意味する。オーディオデータの編集には、例えば、各種サウンドエフェクト、各種フィルタ、２Ｄ−３Ｄサウンド変換、音量調節、等が含まれる。たとえば、ＧＰＵ１０５は、プロセッシングコア上にロードされたプログラムに従って、オーディオデータを解析し、その解析結果に従ってオーディオデータを適応的に処理（編集）することが出来る。
【００２１】
同様に、ＧＰＵ１０５は、例えば、PCI EXPRESSバスを介してＣＰＵ１０１からビデオデータを受信し、その受信したビデオデータを複数のプロセッシングコア内の少なくとも一つを用いて処理することもできる。プロセッシングコアによるビデオデータの処理も、プロセッシングコアに対応する命令セットをファームウェアまたはソフトウェアによってコントロールする事によって実現してもよい。これによって、ＧＰＵ１０５によって実行されるビデオデータの処理をプログラマブルにすることが可能となり、ＧＰＵ１０５によってビデオデータに対する様々な処理（編集）を実行することができる。ビデオデータの編集とは、ビデオデータに加工を施すことを意味する。ビデオデータの編集には、例えば、高解像度変換、２Ｄ−３Ｄ変換、リサイズ、回転、等が含まれる。ＧＰＵ１０５は、プロセッシングコア上にロードされたプログラムに従って、ビデオデータのフレームそれぞれを解析し、その解析結果に従ってビデオデータを適応的に処理することが出来る。
【００２２】
さらに、ＧＰＵ１０５は、ビデオデータの内容に応じてオーディオデータを適応的に処理することもできる。この場合、ＧＰＵ１０５は、ビデオデータのフレーム群を解析してそのビデオデータの特徴を検出し、オーディオデータに、検出されたビデオデータの特徴に関連付けられた加工を施す。例えば、ＧＰＵ１０５は、ビデオデータの特徴に基づいてそのビデオデータ内の特定のシーン（例えば、会話シーン、画像の暗いシーン、画像が明るいシーン、動きの激しいシーン、動きの少ないシーン、等）を検出し、検出された特定のシーンに属するオーディオデータ内の各フレームに対して、その特定のシーンに関連付けられた所定の加工を施す。各ビデオフレームの解析においては、例えば、ＧＰＵ１０５は、ビデオデータの各フレームのヒストグラムを生成し、そのヒストグラムに基づいて各ビデオフレームの特徴を検出してもよい。
【００２３】
逆に、ＧＰＵ１０５は、１以上のプロセッシングコアを用いてオーディオデータのフレーム群を解析してそのオーディオデータの特徴を検出し、別の１以上のプロセッシングコアを用いて、ビデオデータに、検出されたオーディオデータの特徴に関連付けられた加工を施すこともできる。
【００２４】
ビデオデータの処理結果およびオーディオデータの処理結果は映像信号およびオーディオ信号として直接的に外部に出力してもよいが、代わりに、ビデオデータの処理結果およびオーディオデータの処理結果をＣＰＵ１０１に転送してもよい。また、ビデオデータの処理およびオーディオデータの処理を再帰的に実行するために、ビデオデータの処理結果およびオーディオデータの処理結果をＧＰＵ１０５内の対応するプロセッシングコアにそれぞれフィードバックしてもよい。
【００２５】
さらに、ＧＰＵ１０５は、ビデオデータ内の各ビデオフレームおよびオーディオデータ内の各オーディオフレームにタイムスタンプ（タイムコード）を付与してもよい。このタイムスタンプにより、処理されたビデオデータと処理されたオーディオデータとを同期化することができ、処理されたビデオデータに対応する映像信号と処理されたオーディオデータに対応するオーディオ信号とを互いに同期した状態で外部に出力することが出来る。
【００２６】
サウスブリッジ１０４は、ＰＣＩ（Peripheral Component Interconnect）バス上の各デバイス及びＬＰＣ（Low Pin Count）バス上の各デバイスを制御する。また、サウスブリッジ１０４は、ＨＤＤ１０９及びＯＤＤ１１０を制御するためのＩＤＥ（Integrated Drive Electronics）コントローラを内蔵している。
【００２７】
ＬＡＮコントローラ１０８は、例えばIEEE 802.3規格の有線通信を実行する有線通信デバイスであり、一方、無線ＬＡＮコントローラ１１２は、例えばIEEE 802.11g規格の無線通信を実行する無線通信デバイスである。ＵＳＢコントローラ１１１Ａは、（ＵＳＢコネクタ１９を介して接続される）例えばUSB 2.0規格に対応した外部機器との通信を実行する。カードコントローラ１１１Ｂは、コンピュータ本体１１に設けられたカードスロットに挿入される、ＳＤカードのようなメモリカードに対するデータの書き込み及び読み出しを実行する。
【００２８】
ＥＣ／ＫＢＣ１１３は、電力管理のためのエンベデッドコントローラと、キーボード１３及びタッチパッド１６を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。ＥＣ／ＫＢＣ１１３は、ユーザによるパワーボタン１４の操作に応じて本コンピュータ１０を電源オン／電源オフする機能を有している。
【００２９】
次いで、図３を参照して、ＧＰＵ１０５の構成を説明する。  
ＧＰＵ１０５は、PCI Expressインタフェース２０１、ハブ２０２、グラフィクスエンジン２０３、複数のストリーミングプロセッサ（ＳＰ）２０４、メモリコントローラ２０５、メモリ１０５Ａ、映像信号出力インタフェース２０６、オーディオ信号入出力インタフェース２０７を備えている。
【００３０】
PCI Expressインタフェース２０１は、ホスト（ＣＰＵ１０１、主メモリ１０３）と通信するためのホストインタフェースである。PCI Expressインタフェース２０１は、ホスト（ＣＰＵ１０１、主メモリ１０３）からグラフィスクデータ、ビデオデータおよびオーディオデータを受信する。また、PCI Expressインタフェース２０１は、ホストからグラフィスクデータ、ビデオデータおよびオーディオデータを処理するための要求（命令群）も受信する。PCI Expressインタフェース２０１によってＣＰＵ１０１から受信されたグラフィスクデータ、ビデオデータおよびオーディオデータは、メモリコントローラ２０５によってメモリ１０５Ａに格納される（バッファリング）。メモリ１０５Ａはフレームバッファまたはビデオメモリと称されるメモリである。メモリ１０５ＡはＧＰＵ１０５のローカルメモリとして使用される。メモリ１０５Ａは、例えば、ＧＰＵ１０５にメモリバスを介して接続される外部メモリまたはＧＰＵ１０５に内蔵される内部メモリのいずれか一方、または双方によって実現される。内部メモリはキャッシュメモリであってもよい。
【００３１】
グラフィクスエンジン２０３は、グラフィスクデータ、ビデオデータおよびオーディオデータそれぞれに対する処理を、複数のストリーミングプロセッサ（ＳＰ）２０４を用いて実行する。各ストリーミングプロセッサ（ＳＰ）２０４はグラフィクス演算および汎用演算を実行可能なプロセッシングコア（プログラマブルシェーダ）として機能する。各ストリーミングプロセッサ（ＳＰ）２０４によって実行される演算の内容は、グラフィクスエンジン２０３から各ストリーミングプロセッサ（ＳＰ）２０４にロードされる命令群によって決定することができる。各ストリーミングプロセッサ（ＳＰ）２０４は、メモリコントローラ２０５を介してメモリ１０５Ａ上のグラフィスクデータ、ビデオデータおよびオーディオデータそれぞれを参照することができる。さらに、各ストリーミングプロセッサ（ＳＰ）２０４は、グラフィスクデータ、ビデオデータまたはオーディオデータに対する処理結果を、メモリコントローラ２０５を介してメモリ１０５Ａにライトすることができる。
【００３２】
複数のストリーミングプロセッサ（ＳＰ）２０４には、実行すべき処理がグラフィクスエンジン２０３によって割り当てられる。この意味で、グラフィクスエンジン２０３は、複数の処理を並列実行する為にそれら複数の処理を複数のストリーミングプロセッサ（ＳＰ）２０４に割り当てるディスパッチャ（スケジューラとも云う）である。
【００３３】
本実施形態では、ビデオデータの各フレームの解析結果に応じてオーディオデータの各フレームを適応的に処理できるようにするために、グラフィクスエンジン２０３は、演算制御部２０３Ａを含む。
【００３４】
演算制御部２０３Ａは、例えば、複数のストリーミングプロセッサ（ＳＰ）２０４内の少なくとも一つの第１ストリーミングプロセッサ（ＳＰ）２０４に、メモリ１０４Ａ上のビデオデータのフレーム群を解析してビデオデータの特徴を検出するための第１のタスクを割り当てる。タスクはスレッドとして実現しても良い。さらに、演算制御部２０３Ａは、複数のストリーミングプロセッサ（ＳＰ）２０４内の少なくとも一つの第２ストリーミングプロセッサ（ＳＰ）２０４に、メモリ１０４Ａ上のオーディオデータに対して、検出されたビデオデータの特徴に関連付けられた加工を施すための第２のタスクを割り当てる。第１のタスクと第２のタスクは並列に実行される。
【００３５】
第１のタスクが割り当てられた各第１ストリーミングプロセッサ（ＳＰ）２０４は、演算制御部２０３Ａからその第１ストリーミングプロセッサ（ＳＰ）２０４にロードされる命令を実行する。そして、各第１ストリーミングプロセッサ（ＳＰ）２０４は、メモリ１０５Ａからビデオデータのフレームをフェッチし、そのフレームの画像を解析する。解析処理では、例えば、各ビデオフレームの画像特徴を検出する処理、ビデオフレームに出現する特定のオブジェクト（例えば人物）を検出する処理、特定のオブジェクトの動きを検出する処理、ビデオフレーム内の特定のオブジェクトの位置を検出する処理などを実行してもよい。各ビデオフレームの特徴を示す解析処理結果は、メモリ１０５Ａに格納される。
【００３６】
第２のタスクが割り当てられた各第２ストリーミングプロセッサ（ＳＰ）２０４は、演算制御部２０３Ａからロードされる命令を実行する。そして、各第２ストリーミングプロセッサ（ＳＰ）２０４は、例えば、メモリ１０５Ａに格納された各ビデオフレームの特徴を示す解析処理結果に基づいて、各オーディオフレームに対して、対応するビデオフレームの特徴に関連付けられた加工（編集）を施す。この場合、各第２ストリーミングプロセッサ（ＳＰ）２０４は、メモリ１０５Ａからオーディオデータのフレームをフェッチし、そのフェッチしたオーディオデータのフレームに対して、対応するビデオフレームの特徴に関連付けられた加工（編集）を施す。
【００３７】
このように、本実施形態では、複数のストリーミングプロセッサ（ＳＰ）２０４を用いて、メモリ１０５Ａ上のビデオデータを解析する処理と、ビデオデータの解析結果に応じてメモリ１０５Ａ上のオーディオデータを加工（編集）する処理とを並列に実行することができる。
【００３８】
映像信号出力インタフェース２０６は、ストリーミングプロセッサ（ＳＰ）２０４によって処理されたビデオデータに対応する映像信号を生成し、生成された映像信号をディスプレイ機器に出力する。この映像信号出力インタフェース２０６は、デジタル−アナログコンバータ（ＤＡＣ）３０１、ディスプレイアナログ出力インタフェース３０２、ディスプレイディジタル出力インタフェース３０３を含む。デジタル−アナログコンバータ（ＤＡＣ）３０１とデジタル−アナログコンバータ（ＤＡＣ）３０１は、処理されたビデオデータからアナログ映像信号（ＲＧＢ）を生成する。アナログ映像信号（ＲＧＢ）はＧＰＵ１０５に設けられたアナログ映像信号出力ピンを介して外部のＲＧＢモニタに出力される。ディスプレイディジタル出力インタフェース３０３は、処理されたビデオデータからデジタル映像信号を生成する。デジタル映像信号は、ＧＰＵ１０５に設けられたデジタル映像信号出力ピンを介して外部のデジタルモニタ（ＤＶＩモニタ、ＨＤＭＩモニタ、ＤＰモニタ等）に出力される。
【００３９】
オーディオ信号入出力インタフェース２０７は、オーディオ信号を外部機器から入力すると共に、オーディオ信号を外部機器へ出力する。オーディオ信号入出力インタフェース２０７は、デジタル−アナログコンバータ（ＤＡＣ）３１１、サウンドアナログ出力インタフェース３１２、アナログ−ディジタルコンバータ（ＡＤＣ）３１３、サウンドアナログ入力インタフェース３１４、サウンドデジタル出力インタフェース３１５、およびサウンドデジタル入力インタフェース３１６を含む。
【００４０】
デジタル−アナログコンバータ（ＤＡＣ）３１１とサウンドアナログ出力インタフェース３１２は、処理されたオーディオデータからアナログオーディオ信号（アナログサウンド信号とも云う）を生成する。アナログオーディオ信号はＧＰＵ１０５に設けられたアナログオーディオ信号出力ピンを介してスピーカまたは他の外部アナログサウンド機器に出力される。サウンドアナログ入力インタフェース３１４はマイクロフォンなどからアナログオーディオ信号を入力し、アナログ−ディジタルコンバータ（ＡＤＣ）３１３は入力されたアナログオーディオ信号をデジタルオーディオ信号に変換する。
【００４１】
サウンドデジタル出力インタフェース３１５は、処理されたオーディオデータからデジタルオーディオ信号（デジタルサウンド信号とも云う）を生成する。デジタルオーディオ信号は、ＧＰＵ１０５に設けられたデジタルオーディオ信号出力ピンを介して外部のデジタルサウンド機器に出力される。サウンドデジタル入力インタフェース３１６は外部からデジタルオーディオ信号を入力する。
【００４２】
入力されたオーディオ信号もストリーミングプロセッサ（ＳＰ）２０４によって処理することが出来る。例えば、演算制御部２０３Ａは、１以上のストリーミングプロセッサ（ＳＰ）２０４を用いて、マイクから入力された音声信号を認識する音声認識処理を実行することもできる。音声認識の結果はPCI Expressインタフェース２０１を介してホストに送信することが出来る。
【００４３】
このように、本実施形態においては、ＧＰＵ１０５には、オーディオ信号の入出力の為に必要な外部インタフェースが追加されており、さらに、従来、ＤＳＰで行われていたオーディオ処理を拡張した高度なオーディオ処理がＧＰＵ１０５のメモリ１０５Ａとストリーミングプロセッサ２０４を用いて実行される。これによって、コンピュータ１０のシステムからオーディオ処理用のＤＳＰを排除する事が可能になり、システムのトータルコストを削減できる。
【００４４】
図４は、ストリーミングプロセッサ（ＳＰ）２０４によって実行される演算処理を示している。演算制御部２０３Ａからの１以上の命令はストリーミングプロセッサ２０４に入力される(Input Assembler)。ストリーミングプロセッサ（ＳＰ）２０４は、命令に従って、メモリ１０５Ａからデータをフェッチし、フェッチしたデータに各種演算を施す。実行される演算内容は、命令によって決定される。ストリーミングプロセッサ（ＳＰ）２０４は、演算結果を必要に応じてメモリ１０５Ａにライトするかストリーミングプロセッサ（ＳＰ）２０４自身にフィードバックしながら、データのフェッチおよび演算を順次実行する。
【００４５】
図５は、ストリーミングプロセッサ（ＳＰ）２０４によって実行されるリバーブ処理のための演算処理の例を示している。ストリーミングプロセッサ（ＳＰ）２０４には以下の命令が予めロードされる。
【００４６】
data[n] = data[n]+data[n-1]×R
ここで、Rはリバーブ処理における残響の強さを示す係数である。
【００４７】
オーディオデータは時系列状に並んだ一連のデータ（Ａ，Ｂ，Ｃ，Ｄ，……）から構成される。オーディオデータは予めメモリ１０５Ａにバッファリングされる。ストリーミングプロセッサ（ＳＰ）２０４は、メモリ１０５Ａからオーディオデータを離散データとして取得していき、あらかじめ与えられた命令を実行する。これにより、最終的には、各離散データに残響効果が適用されたオーディオデータがストリーミングプロセッサ（ＳＰ）２０４によって生成される。図５の「Output」の部分で、ＧＰＵ１０５は、リバーブ処理されたオーディオデータに対応するオーディオ信号を外部に出力する。
【００４８】
以上のようにして、ＤＳＰの代替処理をＧＰＵ１０５内のストリーミングプロセッサ（ＳＰ）２０４によって実行することができる。
【００４９】
次に、図６を参照して、ＧＰＵ１０５によって実行されるビデオデータおよびオーディオデータに対する処理の流れを説明する。本実施形態では、以下の処理が全てＧＰＵ１０５によって完結可能である。
【００５０】
（１）ＧＰＵ１０５はビデオデータおよびオーディオデータをホストから受信し、受信したビデオデータおよびオーディオデータをメモリ１０５Ａに格納する。また、ＧＰＵ１０５はビデオデータとオーディオデータとがマルチプレクスされたストリーミングデータをホストから受信し、受信したストリーミングデータをメモリ１０５Ａに格納してもよい。
【００５１】
（２）ＧＰＵ１０５はビデオデータを解析し、その解析結果に応じてビデオデータを処理する。ビデオデータの解析および処理はＧＰＵ１０５内の１以上のストリーミングプロセッサ（ＳＰ）２０４によって実行される。ストリーミングプロセッサ（ＳＰ）２０４によるビデオデータの解析および処理はストリーミングプロセッサ（ＳＰ）２０４にロードされた命令に従って実行される。ビデオデータの解析および処理に並行して、ＧＰＵ１０５はオーディオデータを解析し、その解析結果に応じてオーディオデータを処理することができる。オーディオデータの解析および処理はＧＰＵ１０５内の別の１以上のストリーミングプロセッサ（ＳＰ）２０４によって実行される。ストリーミングプロセッサ（ＳＰ）２０４によるオーディオデータの解析および処理はストリーミングプロセッサ（ＳＰ）２０４にロードされた命令に従って実行される。
【００５２】
（３）ビデオデータの処理では、１つ前のビデオフレームの演算結果を現在のビデオフレームの演算のためにフィードバックしてもよい。同様に、オーディオデータ処理でも、１つ前のオーディオフレームの演算結果を現在のオーディオフレームの演算のためにフィードバックしてもよい。さらに、ＧＰＵ１０５は、上述したように、ビデオフレームそれぞれの解析結果に基づいて対応するオーディオフレームを処理することもできる。
【００５３】
（４）ＧＰＵ１０５は、処理されたビデオデータに対応する映像信号および処理されたオーディオデータに対応するオーディオ信号を外部に直接的に出力する。
【００５４】
これによって、一度データがＧＰＵ１０５のメモリ１０５Ａにロードされた後は、ＧＰＵ１０５はＣＰＵ１０１との通信を行う必要がなくなる為、ＣＰＵリソースを削減できる。
【００５５】
次に、図７を参照して、ビデオフレームの解析結果に基づいてオーディオフレームを処理する例について説明する。ここでは、人が喋っているシーンに属するオーディオデータ内のフレームそれぞれに対して、聞き取りやすいよう人の声を強調するという加工を施す場合を例示して説明する。
【００５６】
ストリーミングプロセッサ（ＳＰ）２０４には、以下の処理の実行を指示する命令群が予めロードされる。
【００５７】
（１）ビデオデータの各フレームの画像を解析して、唇を探索し、唇の動きを認識する。
【００５８】
（２）唇の動きから「人が喋っているシーン」を検出（認識）する。
【００５９】
（３）人が喋っているシーンに属するオーディオデータのフレームそれぞれに対して、人の声帯音域が強調されるように、音域のゲーティング、イコライジング等の加工を施す。
【００６０】
（４）加工されたオーディオデータの各フレームを、メモリ１０５Ａ上の対応するオーディオフレームにフィードバックする。
【００６１】
この後、幾つかのストリーミングプロセッサ（ＳＰ）２０４は、ビデオデータとオーディオデータをメモリ１０５Ａからフェッチしていき、あらかじめ与えられた命令を実行する。これにより、最終的には、人が喋っているシーンでは、人の声帯音域が強調されたオーディオデータがストリーミングプロセッサ（ＳＰ）２０４によって生成される。そして、ビデオデータに対応する映像信号および処理されたオーディオデータに対応するオーディオ信号が外部に直接的に出力される。
【００６２】
なお、ビデオフレームの解析結果に基づいてオーディオフレームを処理する例は上述の例に制限されない。例えば、ビデオデータ内のフレームそれぞれの輝度に応じてオーディオデータ内のフレームそれぞれの音量を調整してもよい。この場合、比較的暗いシーンに対応するオーディオデータの音量はダウンし、比較的明るいシーンに対応するオーディオデータの音量はアップしてもよい。また、特定のシーンに属する各オーディオフレームに対してリバーブ処理やサラウンド処理等を適用するようにしてもよい。
【００６３】
ところで、近年では、ＧＰＵを汎用演算に使用するといういわゆる「ＧＰＧＰＵ」環境も開発され始めている。「ＧＰＧＰＵ」環境は、科学技術演算のような汎用演算をＧＰＵに実行させるために使用される。「ＧＰＧＰＵ」環境では、ＣＰＵからＧＰＵに命令群およびデータが送られ、そしてＧＰＵによって得られた演算結果がＧＰＵからＣＰＵに戻される。したがって、たとえ図８のように、（１）ＣＰＵ５０１から従来のＧＰＵ５０３に対してオーディオデータをインプットしたとしても、（２）ＧＰＵ５０３からＣＰＵ５０１にオーディオデータの処理結果を戻すことが必要となり、さらには、（３）オーディオデータの処理結果をＣＰＵ５０１からＤＳＰ５０４に転送することが必要となる。よって、多くのバス帯域が消費されることになる。
【００６４】
本実施形態では、図９に示すように、ＧＰＵ１０５がビデオデータおよびオーディオデータの双方を複数のストリーミングプロセッサ（ＳＰ）２０４を用いて処理でき、且つＧＰＵ１０５が映像信号およびオーディオ信号を直接的に出力することができる。よって、（１）ＣＰＵ１０１からＧＰＵ１０５にビデオデータおよびオーディオデータを転送するだけで、（２）ＧＰＵ１０５が映像信号およびオーディオ信号を出力することが可能となる。よって、ＣＰＵリソースやバス帯域を消費しなくて済むようになる。
【００６５】
次に、図１０を参照して、ＧＰＵ１０５の機能構成について説明する。  
ＧＰＵ１０５は、ビデオストリームバッファ６０１、ビデオデコーダ６０２、ビデオフレームバッファ６０３、オーディオストリームバッファ６０４、オーディオデコーダ６０５、ビデオフレームバッファ６０６、ビデオ＆オーディオ編集処理部６０７、およびビデオ＆オーディオ同期化処理部６０８を含む。ビデオストリームバッファ６０１、ビデオフレームバッファ６０３、オーディオストリームバッファ６０４、およびビデオフレームバッファ６０６は、それぞれメモリ１０５Ａ上の記憶領域である。
【００６６】
ビデオストリームバッファ６０１はホストから転送されるビデオデータのストリームを格納するためのバッファである。ビデオデータのストリームは符号化されていてもよい。オーディオストリームバッファ６０４はホストから転送されるオーディオデータのストリームを格納するためのバッファである。オーディオデータのストリームも符号化されていてもよい。
【００６７】
ビデオデコーダ６０２は、ビデオストリームバッファ６０１からビデオデータをフェッチし、フェッチしたビデオデータをデコードする。ビデオデータをデコードすることにより、フレーム単位のデータ、および、その各フレームに付随する各情報（例えばカラー情報等）、同期を行う為のタイムコードが取り出される。カラー情報は、対応するビデオフレームのカラーフォーマット（ＹＵＶ、ＲＧＢ等）を示す。デコードによってフレーム毎に得られるビデオフレーム（画像データ）、カラー情報およびタイムコードは、ビデオフレームバッファ６０３に格納される。ビデオデコーダ６０２は、例えば、１以上のストリーミングプロセッサ（ＳＰ）２０４にデコード処理を実行させることによって実現してもよい。換言すれば、ビデオデコーダ６０２は、演算制御部２０３Ａと、演算制御部２０３Ａによってビデオデコードのためのタスクが割り当てられる１以上のストリーミングプロセッサ（ＳＰ）２０４とによって実現してもよい。
【００６８】
オーディオデコーダ６０５は、オーディオストリームバッファ６０４からオーディオデータをフェッチし、フェッチしたオーディオデータをデコードする。オーディオデータをデコードすることにより、フレーム単位のデータ、および、その各フレームに付随する各情報、同期を行う為のタイムコードが取り出される。デコードによってフレーム毎に得られるオーディオフレーム（データ）、タイムコードは、オーディオフレームバッファ６０６に格納される。
【００６９】
ビデオ＆オーディオ編集処理部６０７は、ビデオフレームバッファ６０３上のビデオデータの解析および処理を実行すると共に、オーディオフレームバッファ６０６上のオーディオデータの解析および処理を実行する。さらに、このビデオ＆オーディオ編集処理部６０７は、ビデオフレームバッファ６０３上のビデオデータのフレームそれぞれの解析結果に基づいて、オーディオフレームバッファ６０６上のオーディオデータを処理することもできる。このビデオ＆オーディオ編集処理部６０７は、演算制御部２０３Ａと、演算制御部２０３Ａによってビデオ解析用のタスクが割り当てられる１以上のストリーミングプロセッサ（ＳＰ）２０４と、演算制御部２０３Ａによってオーディオ編集用のタスクが割り当てられる１以上のストリーミングプロセッサ（ＳＰ）２０４とによって実現してもよい。
【００７０】
なお、このビデオ＆オーディオ編集処理部６０７は、オーディオフレームバッファ６０６上のオーディオデータの各フレームの解析結果に基づいて、ビデオフレームバッファ６０３上のビデオデータの各フレームを処理することもできる。このビデオ＆オーディオ編集処理部６０７は、演算制御部２０３Ａと、演算制御部２０３Ａによってオーディオ解析用のタスクが割り当てられる１以上のストリーミングプロセッサ（ＳＰ）２０４と、演算制御部２０３Ａによってビデオ編集用のタスクが割り当てられる１以上のストリーミングプロセッサ（ＳＰ）２０４とによって実現してもよい。
【００７１】
ビデオ＆オーディオ同期化処理部６０８は、解析および処理された各ビデオフレームのタイムコードと解析および処理された各オーディオフレームのタイムコードとを用いて、ビデオデータとオーディオデータとを同期化する。そして、処理されたビデオデータに対応する映像信号は映像信号出力インタフェース２０６を介して外部に出力される。同時に、処理されたオーディオデータに対応するオーディオ信号はオーディオ信号入出力インタフェース２０７を介して外部に出力される。
【００７２】
なお、ここでは、ビデオデータとオーディオデータとを連携して処理する例を中心に説明したが、同様にして、グラフィクスデータの各フレームの解析結果に応じてオーディオデータの各フレームを処理することもできる。
【００７３】
以上説明したように、本実施形態によれば、ＧＰＵ１０５はビデオデータの各シーンの特徴等に対応する様々な加工をオーディオデータに適応的に施すことができ、そしてビデオデータに対応する映像信号およびオーディオデータに対応するオーディオ信号を外部に直接的に出力することができる。よって、オーディオデータをビデオデータに連携させて処理することができる。
【００７４】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７５】
１０１…ＣＰＵ、１０３…主メモリ、１０５…ＧＰＵ、２０１…PCI Expressインタフェース、２０２…ハブ、２０３…グラフィクスエンジン、２０４…ストリーミングプロセッサ（ＳＰ）、２０５…メモリコントローラ、１０５Ａ…メモリ、２０６…映像信号出力インタフェース、２０７…オーディオ信号入出力インタフェース。
【要約】
【課題】オーディオデータをビデオデータに連携させて処理することができるグラフィクスプロセッシングユニットを実現する。
【解決手段】実施形態によれば、グラフィクスプロセッシングユニットは、複数のプロセッシングコア内の少なくとも一つの第１プロセッシングコアを用いてビデオデータのフレーム群を解析して前記ビデオデータの特徴を検出すると共に、前記複数のプロセッシングコア内の少なくとも一つの第２プロセッシングコアを用いて、メモリ上のオーディオデータに前記検出されたビデオデータの特徴に関連付けられた加工を施す。グラフィクスプロセッシングユニットは、オーディオ信号出力インタフェースを有しており、加工が施されたオーディオデータに対応するオーディオ信号をサウンド機器に出力する。
【選択図】図３【図１】
0004818450.tif 000002
【図２】
0004818450.tif 000003
【図３】
0004818450.tif 000004
【図４】
0004818450.tif 000005
【図５】
0004818450.tif 000006
【図６】
0004818450.tif 000007
【図７】
0004818450.tif 000008
【図８】
0004818450.tif 000009
【図９】
0004818450.tif 000010
【図１０】
0004818450.tif 000011