(57)【特許請求の範囲】
【請求項１】
ダウンコーデックファンクションドライバを実行するホストプロセッサが、ダウンコーデックにアクセス可能とする段階と、
前記ダウンコーデックファンクションドライバを実行する前記ホストプロセッサが、オーディオデータをグラフィックエンジンへと転送する段階と、
前記オーディオデータのデコードを実行するために前記グラフィックエンジンにより必要とされる推定されたレイテンシーを表す推定されたレイテンシー情報をメディアアプリケーションに報告する段階と
を備え、
前記推定されたレイテンシー情報は、前記グラフィックエンジンにより生成される方法。
【請求項２】
前記転送する段階は、
前記ダウンコーデックファンクションドライバを実行する前記ホストプロセッサが前記オーディオデータをグラフィックドライバへ再転送する段階と、
前記グラフィックドライバが前記オーディオデータを前記グラフィックエンジンへ送信する段階と、
前記グラフィックエンジンが前記オーディオデータを復号化しデコードする段階と
を有する、請求項１に記載の方法。
【請求項３】
前記ダウンコーデックファンクションドライバを実行する前記ホストプロセッサが、復号化されデコードされた前記オーディオデータを前記グラフィックエンジンから受信する段階をさらに備える請求項１または２に記載の方法。
【請求項４】
前記受信する段階は、前記復号化されデコードされたオーディオデータを前記グラフィックエンジンから受信したグラフィックドライバから、前記ダウンコーデックファンクションドライバを実行する前記ホストプロセッサが、前記復号化されデコードされたオーディオデータを受信する段階を有する、請求項３に記載の方法。
【請求項５】
前記ダウンコーデックファンクションドライバを実行する前記ホストプロセッサが、復号化されデコードされた前記オーディオデータを前記ダウンコーデックへ送信する段階をさらに備える請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記ダウンコーデックが、前記復号化されデコードされたオーディオデータをレンダリングする段階をさらに備える請求項５に記載の方法。
【請求項７】
復号化およびデコードを行うべくオーディオデータをグラフィックエンジンへと転送する手順と、
前記デコードを実行するために前記グラフィックエンジンにより必要とされる推定されたレイテンシーを表す推定されたレイテンシー情報をメディアアプリケーションに報告する手順と
をホストプロセッサに実行させ、
前記推定されたレイテンシー情報は、前記グラフィックエンジンにより生成されるソフトウェアプログラム。
【請求項８】
前記オーディオデータを転送する前記手順は、前記オーディオデータをグラフィックドライバへ再転送して、前記グラフィックドライバが前記オーディオデータを前記グラフィックエンジンへ送信させる、手順を備える、請求項７に記載のソフトウェアプログラム。
【請求項９】
復号化されデコードされた前記オーディオデータを前記グラフィックエンジンから受信する手順をさらに前記ホストプロセッサに実行させる請求項７に記載のソフトウェアプログラム。
【請求項１０】
前記復号化されデコードされたオーディオデータを受信する前記手順は、前記復号化されデコードされたオーディオデータを前記グラフィックエンジンから受信したグラフィックドライバから前記復号化されデコードされたオーディオデータを受信する手順を備える、請求項９に記載のソフトウェアプログラム。
【請求項１１】
レンダリングを行うべく、前記復号化されデコードされたオーディオデータをダウンコーデックへ送信する手順をさらに前記ホストプロセッサに実行させる請求項９または１０に記載のソフトウェアプログラム。
【請求項１２】
ホストプロセッサと、
前記ホストプロセッサと通信を行い、復号化およびデコードを行うべく前記ホストプロセッサに対しオーディオデータをグラフィックエンジンに転送させる複数の処理命令を格納したメモリと
を備え、
前記メモリは、前記ホストプロセッサに対し、前記デコードを実行するために前記グラフィックエンジンにより必要とされる推定されたレイテンシーを表す推定されたレイテンシー情報をメディアアプリケーションに報告させる命令を格納し、
前記推定されたレイテンシー情報は、前記グラフィックエンジンにより生成されるシステム。
【請求項１３】
前記オーディオデータを転送させる前記複数の処理命令は、前記ホストプロセッサに対し、前記オーディオデータをグラフィックドライバへ再転送させ、前記グラフィックドライバに対し、前記オーディオデータを前記グラフィックエンジンに送信させる命令を含む、請求項１２に記載のシステム。
【請求項１４】
前記メモリは、前記ホストプロセッサに対し、復号化されデコードされた前記オーディオデータを前記グラフィックエンジンから受信させる複数の処理命令をさらに格納する、請求項１２に記載のシステム。
【請求項１５】
前記復号化されデコードされたオーディオデータを前記グラフィックエンジンから受信させる前記複数の処理命令は、前記ホストプロセッサに対し、前記復号化されデコードされたオーディオデータを前記グラフィックエンジンから受信したグラフィックドライバから前記復号化されデコードされたオーディオデータを受信させる命令を含む、請求項１４に記載のシステム。
【請求項１６】
前記メモリは、前記ホストプロセッサに対し、レンダリングを行うべく、前記復号化されデコードされたオーディオデータをダウンコーデックへ送信させる複数の処理命令をさらに格納する、請求項１２から１５のいずれか１項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
今日のメディアアプリケーションは典型的には、ホストプロセッサでオーディオのデコードを行う。このことにより、特にプレミアムのオーディオの場合において、中央処理装置（ＣＰＵ）での繰り返しの処理が必要となり得る。これに伴うホストプロセッサが消費する電力量の増加は避けられない。例えばブルーレイの再生において、ＤＴＳ  ＨＤ  ＭａｓｔｅｒオーディオをデコードすることによりＣＰＵの消費電力が最大０．５Ｗ増加することを測定結果が示している。
【背景技術】
【０００２】
しかし独立したグラフィックエンジンは、動画ストリームのデコードに加えオーディオストリームのデコードにも用いることができる必要な信号処理ロジック（乗算−累積など）を有し得る。グラフィックエンジンコアは、メディアワークロードを汎用のＣＰＵコアよりも（消費電力に関し）効率的に処理し得る。動画フレームをグラフィックエンジンで処理することにより、ホストプロセッサで同じフレームを処理するのと比較し、ＣＰＵの消費電力を数ワット節約できる。グラフィックエンジンは数１０〜数１００の並列スレッドを実行する性能を有し得、これにより、（同じワークロードをホストプロセッサで実行するよりも）はるかに短い時間で並列処理可能なワークロードを完了することが出来る。結果的に、ＣＰＵパッケージ全体がより頻繁にスリープ状態に入ることが出来、ＣＰＵの消費電力が節約される。プレミアムなオーディオの処理を行う際に、高度な並列処理が可能となり得る。
【０００３】
オーディオ処理にグラフィックエンジンを活用するスキームの１つは、オーディオパスとして既に動画に用いられているソフトウェアアーキテクチャをほぼ複製する処理を伴う。しかしこのスキームにより、メディアアプリケーションがグラフィックエンジンにおいて動画のデコードと併せてオーディオのデコードを行えるよう、当該メディアアプリケーションを修正しなければならないという負担が生じる。
【図面の簡単な説明】
【０００４】
【図１】図１は、実施形態が動作するメディア処理アーキテクチャを示すブロック図である。
【図２】図２は、実施形態に係るコンポーネントおよびデータフローを示すブロック図である。
【図３】図３は、実施形態に係るコンピュータ構成を示すブロック図である。
【図４】図４は、実施形態に係る処理を示すフローチャートである。
【図５】図５は、実施形態に係る、オーディオデータのグラフィックエンジンへの転送を示すフローチャートである。
【図６】図６は、実施形態に係る、ダウンコーデックファンクションドライバによる、グラフィックエンジンからの復号化されデコードされたオーディオデータの受信を示すフローチャートである。  図面において、符号の一番左側の数字は、当該符号が最初に扱われた図面の番号を示す。
【発明を実施するための形態】
【０００５】
図面を参照して実施形態を説明する。図面において同様の符号は、同一の要素、または機能的に同様の要素を指す。特定の構成および配置について説明するが、それらは例示のみを目的としていることが理解されるべきである。当業者であれば、本願発明の思想および態様から逸脱することなく他の構成および配置を用いることが出来ることを理解されよう。本明細書で説明されるシステムおよびアプリケーションの他に様々なシステムおよびアプリケーションにおいて本願発明を適用出来ることが、当業者には明白である。
【０００６】
本明細書において、ホストプロセッサの代わりにグラフィックエンジンでオーディオの復号化およびデコードを可能とする方法、システム、およびコンピュータプログラム製品を開示する。以下に説明するようにこれは、メディアアプリケーションプログラムを修正する必要なく実現され得る。
【０００７】
本明細書で説明するシステムの実施形態は、図１に示すアーキテクチャ構成で実現し得る。アーキテクチャ１００は、ホストプロセッサ１１０を含んでよい。プロセッサ１１０はグラフィックエンジン１２０と通信を行ってもよい。典型的にはグラフィックエンジン１２０は、グラフィック処理を行うのに用いられる。以下により詳細に説明するように、実施形態によるとグラフィックエンジン１２０は、オーディオ処理にも用いることが出来る。示されるアーキテクチャは、ダウンコーデック１３０も含んでよい。実施形態においてダウンコーデック１３０は、デコードされたオーディオサンプルを受信し当該オーディオを処理することによりスピーカまたはヘッドフォンなどの１以上の出力デバイスから出力を行うコンポーネントであってよい。ホストプロセッサ１１０、グラフィックエンジン１２０、およびダウンコーデック１３０は、通信インフラ１４０を介して通信を行ってよい。実施形態において、通信インフラ１４０は、例えばバスなどの形態をとり得る。
【０００８】
実施形態において、本願発明はメディアシステムに組み込まれてもよい。例えば実施形態は、パソコン（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯端末（ＰＤＡ）、携帯電話、携帯電話とＰＤＡとの組み合わせ、テレビ、スマートデバイス（スマートフォン、スマートタブレット、またはスマートテレビなど）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイス、若しくは他の固定型または携帯型の情報アプライアンスに組み込まれてもよい。
【０００９】
図２は、実施形態に係る、本明細書で説明されるシステム２００を示すブロック図である。ダウンコーデックファンクションドライバ２３０は最初にメディアアプリケーション２１０を、ダウンコーデック２９０に対してアクセス可能としてよい。その後メディアアプリケーション２１０は、暗号化され符号化されたオーディオデータ２２０をダウンコーデックファンクションドライバ２３０へ送信してよい。その後ダウンコーデックファンクションドライバ２３０は、オーディオデータ２２０をグラフィック（ＧＦＸ）ドライバ２４０へ再転送してよい。その後グラフィックドライバ２４０は、オーディオデータ２２０をグラフィックエンジン２５０へ渡してよい。示される実施形態においてグラフィックエンジン２５０は、限定するわけではないが、Ｉｎｔｅｌ  Ｇｒａｐｈｉｃｓ  Ｅｎｇｉｎｅ  ＧＥＮ（Ｉｎｔｅｌ  Ｃｏｒｐ．（米国カリフォルニア州サンタクララ市）により販売）などであってよい。代替的な実施形態においては、他のグラフィクスエンジンが用いられてもよい。
【００１０】
その後グラフィックエンジン２５０はオーディオデータを復号化しデコードしてよい。その後、復号化されデコードされたオーディオデータ２６０は、グラフィックドライバ２４０へ戻されてもよい。その後グラフィックドライバ２４０は、復号化されデコードされたオーディオデータ２６０をダウンコーデックファンクションドライバ２３０へ送信してよい。その後ダウンコーデックファンクションドライバ２３０は、処理を行うべく、復号化されデコードされたオーディオデータ２６０をダウンコーデック２９０へ渡してよい。示される実施形態において、復号化されデコードされたオーディオデータ２６０は、バスドライバ２７０およびオーディオコントローラ２８０を介してダウンコーデック２９０へ送信されてよい。
【００１１】
本明細書で開示される１以上の特徴は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにより実装されてもよい。ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせの例としては、個別または集積回路ロジック、特定用途向け集積回路（ＡＳＩＣ）ロジック、プログラマブルゲートアレイ、および／またはマイクロコントローラなどが挙げられる。若しくは本明細書で開示される１以上の特徴は、ドメイン固有の集積回路パッケージ、または集積回路パッケージの組み合わせの一部として実装されてもよい。本明細書で用いられるソフトウェアという用語は、コンピュータシステムに対し、本明細書で開示される１以上の特徴、および／または特徴の組み合わせを実行させるコンピュータプログラムロジックを格納した非一時的なコンピュータ可読媒体を含むコンピュータプログラム製品のことを指す。
【００１２】
実施形態においてダウンコーデックファンクションドライバ２３０は、ソフトウェアまたはファームウェアとして実装されてもよい。そのようなソフトウェアまたはファームウェアを用いた実施形態は、図３のコンピューティングシステム３００の構成において示されている。システム３００は中央処理装置（ＣＰＵ）３２０およびメモリ３１０のボディを含んでよい。メモリ３１０は、コンピュータプログラムロジック３４０を格納し得る１以上の非一時的なコンピュータ可読媒体を含んでよい。メモリ３１０は、読み取り専用メモリ（ＲＯＭ）、またはランダムアクセスメモリ（ＲＡＭ）デバイスなどとして実装されてよい。ＣＰＵ３２０およびメモリ３１０は、バスなど当業者に公知の技術のうち何れかを用いて通信を行ってもよい。
【００１３】
メモリ３１０に格納されるコンピュータプログラムロジック３４０は、ＣＰＵ３２０により読み取られ実行されてもよい。Ｉ／Ｏ３３０としてまとめて示される１以上のＩ／Ｏポートおよび／またはＩ／ＯデバイスもＣＰＵ３２０およびメモリ３１０に接続されてもよい。図３の実施形態においてダウンコーデックファンクションドライバ２３０は、より大きなコンピュータプログラムロジック３４０のボディの一部として示されている。
【００１４】
ダウンコーデックファンクションドライバ２３０は再転送ロジック３５０を含んでもよい。
【００１５】
再転送ロジック３５０は、オーディオデータをメディアアプリケーションからグラフィックドライバへ再転送させてもよい。ダウンコーデックファンクションドライバ２３０は受信ロジック３６０も含んでよい。受信ロジック３６０は、復号化されデコードされたオーディオデータをグラフィックドライバから受信させ、レンダリングのために当該データをダウンコーデックへ転送させる。
【００１６】
実施形態において、本明細書で説明されるシステムの処理は、図４に示されるように実行されてもよい。４１０において、ダウンコーデックファンクションドライバは、メディアアプリケーションをダウンコーデックにアクセス可能としてよい。４２０において、ダウンコーデックファンクションドライバは、メディアアプリケーションから受信した暗号化され符号化されたオーディオデータを、復号化およびデコードを行うべくグラフィックエンジンへと転送してよい。実施形態において、このオーディオデータの復号化に、動画の復号化に用いられたものと同じキーを用いてもよい。４３０において、復号化およびデコードが完了した後、ダウンコーデックファンクションドライバは復号化されデコードされたオーディオをグラフィックエンジンから受信してもよい。４４０において、ダウンコーデックファンクションドライバは、復号化されデコードされたオーディオをダウンコーデックへ送信してもよい。４５０において、ダウンコーデックは、オーディオの処理を行ってもよい。
【００１７】
一実施形態に係る、暗号化され符号化されたオーディオのグラフィックエンジンへの転送（図４の４２０）は、図５においてより詳細に示されている。ここで、暗号化され符号化されたオーディオは、グラフィックドライバを介してグラフィックエンジンへ送信されてもよい。５１０において、ダウンコーデックファンクションドライバは、暗号化され符号化されたオーディオデータを受信してもよい。５２０において、ダウンコーデックファンクションドライバは、オーディオデータをグラフィックドライバへ再転送してもよい。５３０において、グラフィックドライバは、暗号化され符号化されたオーディオデータをグラフィックエンジンへ送信してもよい。５４０において、グラフィックエンジンは、オーディオデータの復号化およびデコードを行ってもよい。
【００１８】
実施形態に係る、ダウンコーデックファンクションドライバによる、復号化されデコードされたオーディオデータのグラフィックエンジンからの受信（図４の４３０）は、図６においてより詳細に示されている。６１０において、グラフィックエンジンは、復号化されデコードされたオーディオデータをグラフィックドライバへ送信してもよい。６２０において、グラフィックドライバは、処理を行うべく、復号化されデコードされたオーディオデータをダウンコーデックファンクションドライバへ送信してもよい。
【００１９】
なお、グラフィックエンジンが復号化およびデコードを完了した後、再暗号化は必ずしも必要ではない。これは復号化されたオーディオストリームが、暗号化を必要とするパス上で必ずしも渡される必要がないからである。そのようなパスの例としては、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）またはＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）規格に準拠するコンポーネントまたは他のインフラ、および、Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｆａｃｅ（ＨＤＭＩ（登録商標））ポートを含むパスが挙げられる。他方、ダウンコーデックが暗号化を必要とするバスに取り付けられていた場合、グラフィックエンジンは、オーディオデータをダウンコーデックファンクションドライバへ戻す前に、オーディオデータの再暗号化を行うか、または（４８ｋＨｚなどへ）ダウンサンプリングを行う。これは、ダウンサンプリングされたプレミアムでないオーディオは暗号化を必要としないためである。
【００２０】
さらに、ダウンコーデックファンクションドライバに対し、オーディオデータをグラフィックエンジンへ、そしてダウンコーデックへと再転送させることにより、オーディオのパスにおいて追加的なレイテンシーが生じ得る。ダウンコーデックファンクションドライバに対し、グラフィックエンジンがオーディオパケットをデコードするのに必要となると推定されたレイテンシーをメディアアプリケーションへ報告させることによって、このデコードによるレイテンシーに対応してもよい。このレイテンシーに関する情報は、グラフィックエンジンによって生成され、ダウンコーデックファンクションドライバへ提供されてもよい。そのようなメカニズムを用いることにより、動画ストリームとオーディオストリームとの間の同期化を促し得る。
【００２１】
機能、特徴、およびそれらの関係を示す機能ブロックを用いて、本明細書において、方法およびシステムを開示する。これらの機能ブロックの境界のうち少なくともいくつかが、説明を分かりやすくするべく、本明細書において適宜定められている。特定される機能、およびそれらの関連動作が適切に実行される範囲において代替的な境界を定めることも可能である。
【００２２】
本明細書において様々な実施形態が開示されるが、それら実施形態は例示のみを目的としており、限定を目的としていないことが理解されるべきである。当業者には、本明細書で開示される方法およびシステムの思想および態様から逸脱することなく、形式および詳細において様々な変更が加えられ得ることが明白であろう。よって、特許請求項の範囲および態様は、本明細書に開示される例示的な実施形態の何れによっても限定されるべきではない。
【図１】
0005728098.tif 000002
【図２】
0005728098.tif 000003
【図３】
0005728098.tif 000004
【図４】
0005728098.tif 000005
【図５】
0005728098.tif 000006
【図６】
0005728098.tif 000007