説明

グラフィクスプロセッシングユニットおよび情報処理装置

【課題】オーディオデータをビデオデータに連携させて処理することができるグラフィクスプロセッシングユニットを実現する。
【解決手段】実施形態によれば、グラフィクスプロセッシングユニットは、複数のプロセッシングコア内の少なくとも一つの第1プロセッシングコアを用いてビデオデータのフレーム群を解析して前記ビデオデータの特徴を検出すると共に、前記複数のプロセッシングコア内の少なくとも一つの第2プロセッシングコアを用いて、メモリ上のオーディオデータに前記検出されたビデオデータの特徴に関連付けられた加工を施す。グラフィクスプロセッシングユニットは、オーディオ信号出力インタフェースを有しており、加工が施されたオーディオデータに対応するオーディオ信号をサウンド機器に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、グラフィクスプロセッシングユニットおよび同グラフィクスプロセッシングユニットを用いた情報処理装置に関する。
【背景技術】
【0002】
一般に、パーソナルコンピュータのような情報処理装置においては、その情報処理装置の描画性能を高めるためにグラフィクスプロセッシングユニット(GPU)が用いられている。最近のGPUの多くは、並列動作可能な複数のプロセッシングコアを含み、例えば2次元または3次元のグラフィクス演算等を高速に実行することができる。
【0003】
一方、情報処理装置におけるオーディオデータ(サウンドデータとも云う)の処理は、通常、サウンドコントローラと称されるデジタル信号プロセッサ(DSP)によって実行される。しかし、一般に、DSPの演算処理能力は比較的低い。このため、DSP単体でオーディオデータに高度な処理を施すことは困難である。
【0004】
また、最近では、ビデオデータとオーディオデータの双方を扱うように設計されたメディア処理LSIも開発されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】再公表特許第2005/096168号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、通常のメディア処理LSIによって実現されるのは、せいぜい、ビデオデータをエンコードまたはデコードする機能と、オーディオデータをエンコードまたはデコードする機能程度である。また、通常のメディア処理LSIでは、ビデオデータに対する処理とオーディオデータに対する処理は互いに独立されている。
【0007】
ビデオデータとオーディオデータとを含むデジタルコンテンツ(例えば、ムービー、DVDビデオ、放送番組データ等)においては、それらビデオデータとオーディオデータとは互いに関連している。このため、デジタルコンテンツを再生する装置においては、ビデオデータに対する処理とオーディオデータに対する処理とを互いに連携させるための新たな機能の実現が必要である。
【0008】
本発明は上述の事情を考慮してなされたものであり、オーディオデータをビデオデータに連携させて処理することができるグラフィクスプロセッシングユニットおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
実施形態によれば、グラフィクスプロセッシングユニットは、ホストインタフェースと、メモリコントローラと、複数のプロセッシングコアと、演算制御手段と、映像信号出力インタフェースと、オーディオ信号出力インタフェースとを具備する。ホストインタフェースは、ホストからビデオデータおよびオーディオデータを受信する。メモリコントローラは、前記受信されたビデオデータおよびオーディオデータをメモリに格納する。前記複数のプロセッシングコアは前記メモリに結合されている。演算制御手段は、前記複数のプロセッシングコア内の少なくとも一つの第1プロセッシングコアを用いて前記メモリ上のビデオデータのフレーム群を解析して前記ビデオデータの特徴を検出すると共に、前記複数のプロセッシングコア内の少なくとも一つの第2プロセッシングコアを用いて、前記メモリ上のオーディオデータに前記検出されたビデオデータの特徴に関連付けられた加工を施す。映像信号出力インタフェースは、ビデオデータに対応する映像信号を生成し、生成された映像信号をディスプレイ機器に出力する。オーディオ信号出力インタフェースは、加工が施されたオーディオデータに対応するオーディオ信号を生成し、生成されたオーディオ信号をサウンド機器に出力する。
【図面の簡単な説明】
【0010】
【図1】実施形態に係る情報処理装置の構成を示す斜視図。
【図2】同実施形態の情報処理装置のシステム構成を示すブロック図。
【図3】同実施形態の情報処理装置に設けられるグラフィクスプロセッシングユニットの構成を示すブロック図。
【図4】図3のグラフィクスプロセッシングユニットによって実行される処理の流れを説明するための図。
【図5】図3のグラフィクスプロセッシングユニットによって実行されるリバーブ処理の流れを説明するための図。
【図6】図3のグラフィクスプロセッシングユニットによってビデオデータおよびオーディオデータに対して実行される処理の流れを説明するための図。
【図7】図3のグラフィクスプロセッシングユニットがビデオデータの解析結果に基づいて実行するオーディオ処理の例を説明するための図。
【図8】従来のグラフィクスプロセッシングユニットを用いたシステムにおけるビデオデータおよびオーディオデータの流れを説明するための図。
【図9】図3のグラフィクスプロセッシングユニットを用いたシステムにおけるビデオデータおよびオーディオデータの流れを説明するための図。
【図10】図3のグラフィクスプロセッシングユニットの機能構成を説明するための図。
【発明を実施するための形態】
【0011】
以下、図面を参照して、実施形態を説明する。
図1は、本発明の一実施形態に係る情報処理装置の外観を示す斜視図である。この情報処理装置は、例えばノートブックタイプのパーソナルコンピュータ10として実現されている。図1に示すように、本コンピュータ10は、コンピュータ本体11と、ディスプレイユニット12とから構成されている。ディスプレイユニット12には、LCD(liquid crystal display)17が組み込まれている。ディスプレイユニット12は、コンピュータ本体11の上面が露出される開放位置とコンピュータ本体11の上面を覆う閉塞位置との間を回動自在にコンピュータ本体11に取り付けられている。
【0012】
コンピュータ本体11は、薄い箱形の筐体を有しており、その上面には、キーボード13、本コンピュータ10を電源オン/電源オフするためのパワーボタン14、入力操作パネル15、タッチパッド16、スピーカ18A,18Bなどが配置されている。入力操作パネル15上には、各種操作ボタンが設けられている。
【0013】
また、コンピュータ本体11の右側面には、例えばUSB(universal serial bus)2.0規格のUSBケーブルやUSBデバイスを接続するためのUSBコネクタ19が設けられている。さらに、コンピュータ本体11の背面には、例えばHDMI(high-definition multimedia interface)規格に対応した外部ディスプレイ接続端子(図示せず)が設けられている。この外部ディスプレイ接続端子は、デジタル映像信号を外部ディスプレイに出力するために用いられる。
【0014】
図2は、本コンピュータ10のシステム構成を示す図である。
本コンピュータ10は、図2に示されているように、CPU101、ノースブリッジ102、主メモリ103、サウスブリッジ104、グラフィクスプロセッシングユニット(GPU)105、メモリ105A、BIOS−ROM107、LANコントローラ108、ハードディスクドライブ(HDD)109、光ディスクドライブ(ODD)110、USBコントローラ111A、カードコントローラ111B、無線LANコントローラ112、エンベデッドコントローラ/キーボードコントローラ(EC/KBC)113、EEPROM114等を備える。
【0015】
CPU101は、本コンピュータ10内の各部の動作を制御するプロセッサである。CPU101は、HDD109から主メモリ103にロードされる、オペレーティングシステム(OS)、及び各種アプリケーションプログラムを実行する。アプリケーションプログラムには、各種デジタルコンテンツ(例えば、ムービー、DVDビデオ、放送番組データ等)を再生するための動画プレーヤが含まれている。この動画プレーヤは、デジタルコンテンツ内のビデオデータおよびオーディオデータをGPU105を用いて再生するように構成されている。また、CPU101は、BIOS−ROM107に格納されたBIOSも実行する。BIOSは、ハードウェア制御のためのプログラムである。
【0016】
ノースブリッジ102は、CPU101のローカルバスとサウスブリッジ104との間を接続するブリッジデバイスである。ノースブリッジ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ102は、例えば、PCI Express規格のシリアルバスなどを介してGPU105との通信を実行する機能も有している。
【0017】
GPU105は、本コンピュータ10のディスプレイモニタとして使用されるLCD17および外部ディスプレイを制御する。GPU105によって生成される映像信号はLCD17に送られる。また、GPU105は、HDMI制御回路3およびHDMI端子2を介して、外部ディスプレイ1にデジタル映像信号を送出することもできる。HDMI端子2は、前述の外部ディスプレイ接続端子である。HDMI端子2は、非圧縮のデジタル映像信号とデジタルオーディオ信号とを1本のケーブルでテレビのような外部ディスプレイ1に送出することができる。HDMI制御回路3は、HDMIモニタと称される外部ディスプレイ1にデジタル映像信号をHDMI端子2を介して送出するためのインタフェースである。
【0018】
GPU105は、PCI Express規格のシリアルバス等を介してCPU101に結合されており、CPU101からの要求に応じてグラフィクスデータ、ビデオデータおよびオーディオデータを処理するように構成されている。より詳しくは、GPU105は、オーディオデータ(サウンドデータとも云う)をスピーカまたは他の外部サウンド機器に出力するためのオーディオ信号出力インタフェースと、オーディオデータを解析および処理する機能とを有している。したがって、本コンピュータ10においては、グラフィクスデータのみならず、ビデオデータおよびオーディオデータもGPU105によって処理することができる。そしてGPU105によってそれぞれ生成される映像信号およびオーディオ信号(サウンド信号とも云う)は、GPU105から直接的にディスプレイ機器(例えば、LCD17、外部ディスプレイ)およびサウンド機器(スピーカ18A,18B、外部サウンド機器)にそれぞれ出力される。
【0019】
このように、本実施形態では、GPU105はビデオデータおよびオーディオデータを同時に処理し、そしてビデオデータに対応する映像信号およびオーディオデータに対応するオーディオ信号を外部に直接的に出力することができる。
【0020】
GPU105は、複数のプロセッシングコア(ストリーミングプロセッサ)を内蔵している。GPU105は、例えば、PCI EXPRESSバスを介してCPU101からオーディオデータを受信し、その受信したオーディオデータを複数のプロセッシングコア内の少なくとも一つを用いて処理する。プロセッシングコアによるオーディオデータの処理は、プロセッシングコアに対応する命令セットをファームウェアまたはソフトウェアによってコントロールする事によって実現してもよい。これによって、GPU105によって実行されるオーディオデータの処理をプログラマブルにすることが可能となり、GPU105によってオーディオデータに対する様々な処理(編集)を実行することができる。オーディオデータの編集とは、オーディオデータに加工を施すことを意味する。オーディオデータの編集には、例えば、各種サウンドエフェクト、各種フィルタ、2D−3Dサウンド変換、音量調節、等が含まれる。たとえば、GPU105は、プロセッシングコア上にロードされたプログラムに従って、オーディオデータを解析し、その解析結果に従ってオーディオデータを適応的に処理(編集)することが出来る。
【0021】
同様に、GPU105は、例えば、PCI EXPRESSバスを介してCPU101からビデオデータを受信し、その受信したビデオデータを複数のプロセッシングコア内の少なくとも一つを用いて処理することもできる。プロセッシングコアによるビデオデータの処理も、プロセッシングコアに対応する命令セットをファームウェアまたはソフトウェアによってコントロールする事によって実現してもよい。これによって、GPU105によって実行されるビデオデータの処理をプログラマブルにすることが可能となり、GPU105によってビデオデータに対する様々な処理(編集)を実行することができる。ビデオデータの編集とは、ビデオデータに加工を施すことを意味する。ビデオデータの編集には、例えば、高解像度変換、2D−3D変換、リサイズ、回転、等が含まれる。GPU105は、プロセッシングコア上にロードされたプログラムに従って、ビデオデータのフレームそれぞれを解析し、その解析結果に従ってビデオデータを適応的に処理することが出来る。
【0022】
さらに、GPU105は、ビデオデータの内容に応じてオーディオデータを適応的に処理することもできる。この場合、GPU105は、ビデオデータのフレーム群を解析してそのビデオデータの特徴を検出し、オーディオデータに、検出されたビデオデータの特徴に関連付けられた加工を施す。例えば、GPU105は、ビデオデータの特徴に基づいてそのビデオデータ内の特定のシーン(例えば、会話シーン、画像の暗いシーン、画像が明るいシーン、動きの激しいシーン、動きの少ないシーン、等)を検出し、検出された特定のシーンに属するオーディオデータ内の各フレームに対して、その特定のシーンに関連付けられた所定の加工を施す。各ビデオフレームの解析においては、例えば、GPU105は、ビデオデータの各フレームのヒストグラムを生成し、そのヒストグラムに基づいて各ビデオフレームの特徴を検出してもよい。
【0023】
逆に、GPU105は、1以上のプロセッシングコアを用いてオーディオデータのフレーム群を解析してそのオーディオデータの特徴を検出し、別の1以上のプロセッシングコアを用いて、ビデオデータに、検出されたオーディオデータの特徴に関連付けられた加工を施すこともできる。
【0024】
ビデオデータの処理結果およびオーディオデータの処理結果は映像信号およびオーディオ信号として直接的に外部に出力してもよいが、代わりに、ビデオデータの処理結果およびオーディオデータの処理結果をCPU101に転送してもよい。また、ビデオデータの処理およびオーディオデータの処理を再帰的に実行するために、ビデオデータの処理結果およびオーディオデータの処理結果をGPU105内の対応するプロセッシングコアにそれぞれフィードバックしてもよい。
【0025】
さらに、GPU105は、ビデオデータ内の各ビデオフレームおよびオーディオデータ内の各オーディオフレームにタイムスタンプ(タイムコード)を付与してもよい。このタイムスタンプにより、処理されたビデオデータと処理されたオーディオデータとを同期化することができ、処理されたビデオデータに対応する映像信号と処理されたオーディオデータに対応するオーディオ信号とを互いに同期した状態で外部に出力することが出来る。
【0026】
サウスブリッジ104は、PCI(Peripheral Component Interconnect)バス上の各デバイス及びLPC(Low Pin Count)バス上の各デバイスを制御する。また、サウスブリッジ104は、HDD109及びODD110を制御するためのIDE(Integrated Drive Electronics)コントローラを内蔵している。
【0027】
LANコントローラ108は、例えばIEEE 802.3規格の有線通信を実行する有線通信デバイスであり、一方、無線LANコントローラ112は、例えばIEEE 802.11g規格の無線通信を実行する無線通信デバイスである。USBコントローラ111Aは、(USBコネクタ19を介して接続される)例えばUSB 2.0規格に対応した外部機器との通信を実行する。カードコントローラ111Bは、コンピュータ本体11に設けられたカードスロットに挿入される、SDカードのようなメモリカードに対するデータの書き込み及び読み出しを実行する。
【0028】
EC/KBC113は、電力管理のためのエンベデッドコントローラと、キーボード13及びタッチパッド16を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。EC/KBC113は、ユーザによるパワーボタン14の操作に応じて本コンピュータ10を電源オン/電源オフする機能を有している。
【0029】
次いで、図3を参照して、GPU105の構成を説明する。
GPU105は、PCI Expressインタフェース201、ハブ202、グラフィクスエンジン203、複数のストリーミングプロセッサ(SP)204、メモリコントローラ205、メモリ105A、映像信号出力インタフェース206、オーディオ信号入出力インタフェース207を備えている。
【0030】
PCI Expressインタフェース201は、ホスト(CPU101、主メモリ103)と通信するためのホストインタフェースである。PCI Expressインタフェース201は、ホスト(CPU101、主メモリ103)からグラフィスクデータ、ビデオデータおよびオーディオデータを受信する。また、PCI Expressインタフェース201は、ホストからグラフィスクデータ、ビデオデータおよびオーディオデータを処理するための要求(命令群)も受信する。PCI Expressインタフェース201によってCPU101から受信されたグラフィスクデータ、ビデオデータおよびオーディオデータは、メモリコントローラ205によってメモリ105Aに格納される(バッファリング)。メモリ105Aはフレームバッファまたはビデオメモリと称されるメモリである。メモリ105AはGPU105のローカルメモリとして使用される。メモリ105Aは、例えば、GPU105にメモリバスを介して接続される外部メモリまたはGPU105に内蔵される内部メモリのいずれか一方、または双方によって実現される。内部メモリはキャッシュメモリであってもよい。
【0031】
グラフィクスエンジン203は、グラフィスクデータ、ビデオデータおよびオーディオデータそれぞれに対する処理を、複数のストリーミングプロセッサ(SP)204を用いて実行する。各ストリーミングプロセッサ(SP)204はグラフィクス演算および汎用演算を実行可能なプロセッシングコア(プログラマブルシェーダ)として機能する。各ストリーミングプロセッサ(SP)204によって実行される演算の内容は、グラフィクスエンジン203から各ストリーミングプロセッサ(SP)204にロードされる命令群によって決定することができる。各ストリーミングプロセッサ(SP)204は、メモリコントローラ205を介してメモリ105A上のグラフィスクデータ、ビデオデータおよびオーディオデータそれぞれを参照することができる。さらに、各ストリーミングプロセッサ(SP)204は、グラフィスクデータ、ビデオデータまたはオーディオデータに対する処理結果を、メモリコントローラ205を介してメモリ105Aにライトすることができる。
【0032】
複数のストリーミングプロセッサ(SP)204には、実行すべき処理がグラフィクスエンジン203によって割り当てられる。この意味で、グラフィクスエンジン203は、複数の処理を並列実行する為にそれら複数の処理を複数のストリーミングプロセッサ(SP)204に割り当てるディスパッチャ(スケジューラとも云う)である。
【0033】
本実施形態では、ビデオデータの各フレームの解析結果に応じてオーディオデータの各フレームを適応的に処理できるようにするために、グラフィクスエンジン203は、演算制御部203Aを含む。
【0034】
演算制御部203Aは、例えば、複数のストリーミングプロセッサ(SP)204内の少なくとも一つの第1ストリーミングプロセッサ(SP)204に、メモリ104A上のビデオデータのフレーム群を解析してビデオデータの特徴を検出するための第1のタスクを割り当てる。タスクはスレッドとして実現しても良い。さらに、演算制御部203Aは、複数のストリーミングプロセッサ(SP)204内の少なくとも一つの第2ストリーミングプロセッサ(SP)204に、メモリ104A上のオーディオデータに対して、検出されたビデオデータの特徴に関連付けられた加工を施すための第2のタスクを割り当てる。第1のタスクと第2のタスクは並列に実行される。
【0035】
第1のタスクが割り当てられた各第1ストリーミングプロセッサ(SP)204は、演算制御部203Aからその第1ストリーミングプロセッサ(SP)204にロードされる命令を実行する。そして、各第1ストリーミングプロセッサ(SP)204は、メモリ105Aからビデオデータのフレームをフェッチし、そのフレームの画像を解析する。解析処理では、例えば、各ビデオフレームの画像特徴を検出する処理、ビデオフレームに出現する特定のオブジェクト(例えば人物)を検出する処理、特定のオブジェクトの動きを検出する処理、ビデオフレーム内の特定のオブジェクトの位置を検出する処理などを実行してもよい。各ビデオフレームの特徴を示す解析処理結果は、メモリ105Aに格納される。
【0036】
第2のタスクが割り当てられた各第2ストリーミングプロセッサ(SP)204は、演算制御部203Aからロードされる命令を実行する。そして、各第2ストリーミングプロセッサ(SP)204は、例えば、メモリ105Aに格納された各ビデオフレームの特徴を示す解析処理結果に基づいて、各オーディオフレームに対して、対応するビデオフレームの特徴に関連付けられた加工(編集)を施す。この場合、各第2ストリーミングプロセッサ(SP)204は、メモリ105Aからオーディオデータのフレームをフェッチし、そのフェッチしたオーディオデータのフレームに対して、対応するビデオフレームの特徴に関連付けられた加工(編集)を施す。
【0037】
このように、本実施形態では、複数のストリーミングプロセッサ(SP)204を用いて、メモリ105A上のビデオデータを解析する処理と、ビデオデータの解析結果に応じてメモリ105A上のオーディオデータを加工(編集)する処理とを並列に実行することができる。
【0038】
映像信号出力インタフェース206は、ストリーミングプロセッサ(SP)204によって処理されたビデオデータに対応する映像信号を生成し、生成された映像信号をディスプレイ機器に出力する。この映像信号出力インタフェース206は、デジタル−アナログコンバータ(DAC)301、ディスプレイアナログ出力インタフェース302、ディスプレイディジタル出力インタフェース303を含む。デジタル−アナログコンバータ(DAC)301とデジタル−アナログコンバータ(DAC)301は、処理されたビデオデータからアナログ映像信号(RGB)を生成する。アナログ映像信号(RGB)はGPU105に設けられたアナログ映像信号出力ピンを介して外部のRGBモニタに出力される。ディスプレイディジタル出力インタフェース303は、処理されたビデオデータからデジタル映像信号を生成する。デジタル映像信号は、GPU105に設けられたデジタル映像信号出力ピンを介して外部のデジタルモニタ(DVIモニタ、HDMIモニタ、DPモニタ等)に出力される。
【0039】
オーディオ信号入出力インタフェース207は、オーディオ信号を外部機器から入力すると共に、オーディオ信号を外部機器へ出力する。オーディオ信号入出力インタフェース207は、デジタル−アナログコンバータ(DAC)311、サウンドアナログ出力インタフェース312、アナログ−ディジタルコンバータ(ADC)313、サウンドアナログ入力インタフェース314、サウンドデジタル出力インタフェース315、およびサウンドデジタル入力インタフェース316を含む。
【0040】
デジタル−アナログコンバータ(DAC)311とサウンドアナログ出力インタフェース312は、処理されたオーディオデータからアナログオーディオ信号(アナログサウンド信号とも云う)を生成する。アナログオーディオ信号はGPU105に設けられたアナログオーディオ信号出力ピンを介してスピーカまたは他の外部アナログサウンド機器に出力される。サウンドアナログ入力インタフェース314はマイクロフォンなどからアナログオーディオ信号を入力し、アナログ−ディジタルコンバータ(ADC)313は入力されたアナログオーディオ信号をデジタルオーディオ信号に変換する。
【0041】
サウンドデジタル出力インタフェース315は、処理されたオーディオデータからデジタルオーディオ信号(デジタルサウンド信号とも云う)を生成する。デジタルオーディオ信号は、GPU105に設けられたデジタルオーディオ信号出力ピンを介して外部のデジタルサウンド機器に出力される。サウンドデジタル入力インタフェース316は外部からデジタルオーディオ信号を入力する。
【0042】
入力されたオーディオ信号もストリーミングプロセッサ(SP)204によって処理することが出来る。例えば、演算制御部203Aは、1以上のストリーミングプロセッサ(SP)204を用いて、マイクから入力された音声信号を認識する音声認識処理を実行することもできる。音声認識の結果はPCI Expressインタフェース201を介してホストに送信することが出来る。
【0043】
このように、本実施形態においては、GPU105には、オーディオ信号の入出力の為に必要な外部インタフェースが追加されており、さらに、従来、DSPで行われていたオーディオ処理を拡張した高度なオーディオ処理がGPU105のメモリ105Aとストリーミングプロセッサ204を用いて実行される。これによって、コンピュータ10のシステムからオーディオ処理用のDSPを排除する事が可能になり、システムのトータルコストを削減できる。
【0044】
図4は、ストリーミングプロセッサ(SP)204によって実行される演算処理を示している。演算制御部203Aからの1以上の命令はストリーミングプロセッサ204に入力される(Input Assembler)。ストリーミングプロセッサ(SP)204は、命令に従って、メモリ105Aからデータをフェッチし、フェッチしたデータに各種演算を施す。実行される演算内容は、命令によって決定される。ストリーミングプロセッサ(SP)204は、演算結果を必要に応じてメモリ105Aにライトするかストリーミングプロセッサ(SP)204自身にフィードバックしながら、データのフェッチおよび演算を順次実行する。
【0045】
図5は、ストリーミングプロセッサ(SP)204によって実行されるリバーブ処理のための演算処理の例を示している。ストリーミングプロセッサ(SP)204には以下の命令が予めロードされる。
【0046】
data[n] = data[n]+data[n-1]×R
ここで、Rはリバーブ処理における残響の強さを示す係数である。
【0047】
オーディオデータは時系列状に並んだ一連のデータ(A,B,C,D,……)から構成される。オーディオデータは予めメモリ105Aにバッファリングされる。ストリーミングプロセッサ(SP)204は、メモリ105Aからオーディオデータを離散データとして取得していき、あらかじめ与えられた命令を実行する。これにより、最終的には、各離散データに残響効果が適用されたオーディオデータがストリーミングプロセッサ(SP)204によって生成される。図5の「Output」の部分で、GPU105は、リバーブ処理されたオーディオデータに対応するオーディオ信号を外部に出力する。
【0048】
以上のようにして、DSPの代替処理をGPU105内のストリーミングプロセッサ(SP)204によって実行することができる。
【0049】
次に、図6を参照して、GPU105によって実行されるビデオデータおよびオーディオデータに対する処理の流れを説明する。本実施形態では、以下の処理が全てGPU105によって完結可能である。
【0050】
(1)GPU105はビデオデータおよびオーディオデータをホストから受信し、受信したビデオデータおよびオーディオデータをメモリ105Aに格納する。また、GPU105はビデオデータとオーディオデータとがマルチプレクスされたストリーミングデータをホストから受信し、受信したストリーミングデータをメモリ105Aに格納してもよい。
【0051】
(2)GPU105はビデオデータを解析し、その解析結果に応じてビデオデータを処理する。ビデオデータの解析および処理はGPU105内の1以上のストリーミングプロセッサ(SP)204によって実行される。ストリーミングプロセッサ(SP)204によるビデオデータの解析および処理はストリーミングプロセッサ(SP)204にロードされた命令に従って実行される。ビデオデータの解析および処理に並行して、GPU105はオーディオデータを解析し、その解析結果に応じてオーディオデータを処理することができる。オーディオデータの解析および処理はGPU105内の別の1以上のストリーミングプロセッサ(SP)204によって実行される。ストリーミングプロセッサ(SP)204によるオーディオデータの解析および処理はストリーミングプロセッサ(SP)204にロードされた命令に従って実行される。
【0052】
(3)ビデオデータの処理では、1つ前のビデオフレームの演算結果を現在のビデオフレームの演算のためにフィードバックしてもよい。同様に、オーディオデータ処理でも、1つ前のオーディオフレームの演算結果を現在のオーディオフレームの演算のためにフィードバックしてもよい。さらに、GPU105は、上述したように、ビデオフレームそれぞれの解析結果に基づいて対応するオーディオフレームを処理することもできる。
【0053】
(4)GPU105は、処理されたビデオデータに対応する映像信号および処理されたオーディオデータに対応するオーディオ信号を外部に直接的に出力する。
【0054】
これによって、一度データがGPU105のメモリ105Aにロードされた後は、GPU105はCPU101との通信を行う必要がなくなる為、CPUリソースを削減できる。
【0055】
次に、図7を参照して、ビデオフレームの解析結果に基づいてオーディオフレームを処理する例について説明する。ここでは、人が喋っているシーンに属するオーディオデータ内のフレームそれぞれに対して、聞き取りやすいよう人の声を強調するという加工を施す場合を例示して説明する。
【0056】
ストリーミングプロセッサ(SP)204には、以下の処理の実行を指示する命令群が予めロードされる。
【0057】
(1)ビデオデータの各フレームの画像を解析して、唇を探索し、唇の動きを認識する。
【0058】
(2)唇の動きから「人が喋っているシーン」を検出(認識)する。
【0059】
(3)人が喋っているシーンに属するオーディオデータのフレームそれぞれに対して、人の声帯音域が強調されるように、音域のゲーティング、イコライジング等の加工を施す。
【0060】
(4)加工されたオーディオデータの各フレームを、メモリ105A上の対応するオーディオフレームにフィードバックする。
【0061】
この後、幾つかのストリーミングプロセッサ(SP)204は、ビデオデータとオーディオデータをメモリ105Aからフェッチしていき、あらかじめ与えられた命令を実行する。これにより、最終的には、人が喋っているシーンでは、人の声帯音域が強調されたオーディオデータがストリーミングプロセッサ(SP)204によって生成される。そして、ビデオデータに対応する映像信号および処理されたオーディオデータに対応するオーディオ信号が外部に直接的に出力される。
【0062】
なお、ビデオフレームの解析結果に基づいてオーディオフレームを処理する例は上述の例に制限されない。例えば、ビデオデータ内のフレームそれぞれの輝度に応じてオーディオデータ内のフレームそれぞれの音量を調整してもよい。この場合、比較的暗いシーンに対応するオーディオデータの音量はダウンし、比較的明るいシーンに対応するオーディオデータの音量はアップしてもよい。また、特定のシーンに属する各オーディオフレームに対してリバーブ処理やサラウンド処理等を適用するようにしてもよい。
【0063】
ところで、近年では、GPUを汎用演算に使用するといういわゆる「GPGPU」環境も開発され始めている。「GPGPU」環境は、科学技術演算のような汎用演算をGPUに実行させるために使用される。「GPGPU」環境では、CPUからGPUに命令群およびデータが送られ、そしてGPUによって得られた演算結果がGPUからCPUに戻される。したがって、たとえ図8のように、(1)CPU501から従来のGPU503に対してオーディオデータをインプットしたとしても、(2)GPU503からCPU501にオーディオデータの処理結果を戻すことが必要となり、さらには、(3)オーディオデータの処理結果をCPU501からDSP504に転送することが必要となる。よって、多くのバス帯域が消費されることになる。
【0064】
本実施形態では、図9に示すように、GPU105がビデオデータおよびオーディオデータの双方を複数のストリーミングプロセッサ(SP)204を用いて処理でき、且つGPU105が映像信号およびオーディオ信号を直接的に出力することができる。よって、(1)CPU101からGPU105にビデオデータおよびオーディオデータを転送するだけで、(2)GPU105が映像信号およびオーディオ信号を出力することが可能となる。よって、CPUリソースやバス帯域を消費しなくて済むようになる。
【0065】
次に、図10を参照して、GPU105の機能構成について説明する。
GPU105は、ビデオストリームバッファ601、ビデオデコーダ602、ビデオフレームバッファ603、オーディオストリームバッファ604、オーディオデコーダ605、ビデオフレームバッファ606、ビデオ&オーディオ編集処理部607、およびビデオ&オーディオ同期化処理部608を含む。ビデオストリームバッファ601、ビデオフレームバッファ603、オーディオストリームバッファ604、およびビデオフレームバッファ606は、それぞれメモリ105A上の記憶領域である。
【0066】
ビデオストリームバッファ601はホストから転送されるビデオデータのストリームを格納するためのバッファである。ビデオデータのストリームは符号化されていてもよい。オーディオストリームバッファ604はホストから転送されるオーディオデータのストリームを格納するためのバッファである。オーディオデータのストリームも符号化されていてもよい。
【0067】
ビデオデコーダ602は、ビデオストリームバッファ601からビデオデータをフェッチし、フェッチしたビデオデータをデコードする。ビデオデータをデコードすることにより、フレーム単位のデータ、および、その各フレームに付随する各情報(例えばカラー情報等)、同期を行う為のタイムコードが取り出される。カラー情報は、対応するビデオフレームのカラーフォーマット(YUV、RGB等)を示す。デコードによってフレーム毎に得られるビデオフレーム(画像データ)、カラー情報およびタイムコードは、ビデオフレームバッファ603に格納される。ビデオデコーダ602は、例えば、1以上のストリーミングプロセッサ(SP)204にデコード処理を実行させることによって実現してもよい。換言すれば、ビデオデコーダ602は、演算制御部203Aと、演算制御部203Aによってビデオデコードのためのタスクが割り当てられる1以上のストリーミングプロセッサ(SP)204とによって実現してもよい。
【0068】
オーディオデコーダ605は、オーディオストリームバッファ604からオーディオデータをフェッチし、フェッチしたオーディオデータをデコードする。オーディオデータをデコードすることにより、フレーム単位のデータ、および、その各フレームに付随する各情報、同期を行う為のタイムコードが取り出される。デコードによってフレーム毎に得られるオーディオフレーム(データ)、タイムコードは、オーディオフレームバッファ606に格納される。
【0069】
ビデオ&オーディオ編集処理部607は、ビデオフレームバッファ603上のビデオデータの解析および処理を実行すると共に、オーディオフレームバッファ606上のオーディオデータの解析および処理を実行する。さらに、このビデオ&オーディオ編集処理部607は、ビデオフレームバッファ603上のビデオデータのフレームそれぞれの解析結果に基づいて、オーディオフレームバッファ606上のオーディオデータを処理することもできる。このビデオ&オーディオ編集処理部607は、演算制御部203Aと、演算制御部203Aによってビデオ解析用のタスクが割り当てられる1以上のストリーミングプロセッサ(SP)204と、演算制御部203Aによってオーディオ編集用のタスクが割り当てられる1以上のストリーミングプロセッサ(SP)204とによって実現してもよい。
【0070】
なお、このビデオ&オーディオ編集処理部607は、オーディオフレームバッファ606上のオーディオデータの各フレームの解析結果に基づいて、ビデオフレームバッファ603上のビデオデータの各フレームを処理することもできる。このビデオ&オーディオ編集処理部607は、演算制御部203Aと、演算制御部203Aによってオーディオ解析用のタスクが割り当てられる1以上のストリーミングプロセッサ(SP)204と、演算制御部203Aによってビデオ編集用のタスクが割り当てられる1以上のストリーミングプロセッサ(SP)204とによって実現してもよい。
【0071】
ビデオ&オーディオ同期化処理部608は、解析および処理された各ビデオフレームのタイムコードと解析および処理された各オーディオフレームのタイムコードとを用いて、ビデオデータとオーディオデータとを同期化する。そして、処理されたビデオデータに対応する映像信号は映像信号出力インタフェース206を介して外部に出力される。同時に、処理されたオーディオデータに対応するオーディオ信号はオーディオ信号入出力インタフェース207を介して外部に出力される。
【0072】
なお、ここでは、ビデオデータとオーディオデータとを連携して処理する例を中心に説明したが、同様にして、グラフィクスデータの各フレームの解析結果に応じてオーディオデータの各フレームを処理することもできる。
【0073】
以上説明したように、本実施形態によれば、GPU105はビデオデータの各シーンの特徴等に対応する様々な加工をオーディオデータに適応的に施すことができ、そしてビデオデータに対応する映像信号およびオーディオデータに対応するオーディオ信号を外部に直接的に出力することができる。よって、オーディオデータをビデオデータに連携させて処理することができる。
【0074】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0075】
101…CPU、103…主メモリ、105…GPU、201…PCI Expressインタフェース、202…ハブ、203…グラフィクスエンジン、204…ストリーミングプロセッサ(SP)、205…メモリコントローラ、105A…メモリ、206…映像信号出力インタフェース、207…オーディオ信号入出力インタフェース。

【特許請求の範囲】
【請求項1】
ホストからビデオデータおよびオーディオデータを受信するホストインタフェースと、
前記受信されたビデオデータおよびオーディオデータをメモリに格納するメモリコントローラと、
前記メモリに結合された複数のプロセッシングコアと、
前記複数のプロセッシングコア内の少なくとも一つの第1プロセッシングコアを用いて前記メモリ上のビデオデータのフレーム群を解析して前記ビデオデータの特徴を検出すると共に、前記複数のプロセッシングコア内の少なくとも一つの第2プロセッシングコアを用いて、前記メモリ上のオーディオデータに前記検出されたビデオデータの特徴に関連付けられた加工を施す演算制御手段と、
前記ビデオデータに対応する映像信号を生成し、生成された映像信号をディスプレイ機器に出力する映像信号出力インタフェースと、
前記加工が施されたオーディオデータに対応するオーディオ信号を生成し、生成されたオーディオ信号をサウンド機器に出力するオーディオ信号出力インタフェースとを具備するグラフィクスプロセッシングユニット。
【請求項2】
前記演算制御手段は、前記ビデオデータの特徴に基づいて前記ビデオデータ内の特定のシーンを検出し、前記特定のシーンに属する前記オーディオデータ内の各フレームに対して所定の加工を施す請求項1記載のグラフィクスプロセッシングユニット。
【請求項3】
前記演算制御手段は、前記少なくとも一つの第1プロセッシングコアに前記メモリ上のビデオデータのフレーム群を解析して前記ビデオデータの特徴を検出するための第1のタスクを割り当て、前記少なくとも一つの第2プロセッシングコアに前記メモリ上のオーディオデータに前記検出されたビデオデータの特徴に関連付けられた加工を施すための第2のタスクを割り当てる請求項1記載のグラフィクスプロセッシングユニット。
【請求項4】
前記演算制御手段は、前記複数のプロセッシングコア内の少なくとも一つのプロセッシングコアを用いて前記メモリ上のオーディオデータのフレーム群を解析して前記オーディオデータの特徴を検出すると共に、前記複数のプロセッシングコア内の少なくとも一つのプロセッシングコアを用いて、前記メモリ上のビデオデータに前記検出されたオーディオデータの特徴に関連付けられた加工を施す請求項1記載のグラフィクスプロセッシングユニット。
【請求項5】
サウンド機器からのオーディオ信号を入力するオーディオ信号入力インタフェースをさらに具備する請求項1記載のグラフィクスプロセッシングユニット。
【請求項6】
CPUと、
前記CPUに結合され、前記CPUからの要求に応じてグラフィクスデータ、ビデオデータおよびオーディオデータを処理するように構成されたグラフィクスコントローラとを具備し、
前記グラフィクスコントローラは、
前記CPUからビデオデータおよびオーディオデータを受信するホストインタフェースと、
前記受信されたビデオデータおよびオーディオデータをメモリに格納するメモリコントローラと、
前記メモリに結合された複数のプロセッシングコアと、
前記複数のプロセッシングコア内の少なくとも一つの第1プロセッシングコアを用いて前記メモリ上のビデオデータのフレーム群を解析して前記ビデオデータの特徴を検出すると共に、前記複数のプロセッシングコア内の少なくとも一つの第2プロセッシングコアを用いて、前記メモリ上のオーディオデータに前記検出されたビデオデータの特徴に関連付けられた加工を施す演算制御手段と、
前記ビデオデータに対応する映像信号を生成し、生成された映像信号をディスプレイ機器に出力する映像信号出力インタフェースと、
前記加工が施されたオーディオデータに対応するオーディオ信号を生成し、生成されたオーディオ信号をサウンド機器に出力するオーディオ信号出力インタフェースとを具備する情報処理装置。
【請求項7】
前記演算制御手段は、前記ビデオデータの特徴に基づいて前記ビデオデータ内の特定のシーンを検出し、前記特定のシーンに属する前記オーディオデータ内の各フレームに対して所定の加工を施す請求項6記載の情報処理装置。
【請求項8】
前記演算制御手段は、前記少なくとも一つの第1プロセッシングコアに前記メモリ上のビデオデータのフレーム群を解析して前記ビデオデータの特徴を検出するための第1のタスクを割り当て、前記少なくとも一つの第2プロセッシングコアに前記メモリ上のオーディオデータに前記検出されたビデオデータの特徴に関連付けられた加工を施すための第2のタスクを割り当てる請求項6記載の情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−15807(P2012−15807A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−150457(P2010−150457)
【出願日】平成22年6月30日(2010.6.30)
【特許番号】特許第4818450号(P4818450)
【特許公報発行日】平成23年11月16日(2011.11.16)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】