(57)【要約】オーディオストリームの処理を伴う技術が開示される。例えば、ホストプロセッシングプラットフォームは、符号化オーディオストリームを含むコンテンツストリームを受け取ってよい。次いで、グラフィクスエンジンは、それから復号化オーディオストリームを生成する。この生成は、グラフィクスエンジンが様々な動作、例えばエントロピ復号化動作、逆量子化動作、及び逆離散コサイン変換動作を実行することを伴ってよい。実施形態において、コンテンツストリームは符号化ビデオストリームを更に含む。よって、グラフィクスエンジンは、それから復号化ビデオストリームを生成してよい。このようなオーディオ及びビデオ復号化は並行して実行されてよい。
2014507897.tif 000002
【特許請求の範囲】
【請求項１】
符号化オーディオストリームを含むコンテンツストリームをホストプロセッシングプラットフォームで受け取るステップと、
グラフィクスエンジンで前記符号化オーディオストリームから復号化オーディオストリームを生成するステップと
を有する方法。
【請求項２】
前記復号化オーディオストリームを生成するステップは、
エントロピ復号化動作を実行するステップと、
逆量子化動作を実行するステップと、
逆離散コサイン変換動作を実行するステップと
を有する、請求項１に記載の方法。
【請求項３】
前記エントロピ復号化動作は、ハフマン復号化動作である、
請求項２に記載の方法。
【請求項４】
前記符号化オーディオストリームは、１又はそれ以上のオーディオフレームを含み、夫々のオーディオフレームは、複数の時間サンプルの夫々について、複数のサブバンド係数を含み、当該方法は、
符号化画像フレームとして現れるよう前記オーディオフレームの１又はそれ以上をフォーマットするステップ
を更に有する、請求項１に記載の方法。
【請求項５】
前記復号化オーディオストリームを生成するステップは、
前記ホストプロセッシングプラットフォームが１又はそれ以上のドライバ呼び出しを前記グラフィクスエンジンへ置くことを含む、
請求項１に記載の方法。
【請求項６】
前記コンテンツストリームは、符号化ビデオストリームを更に含み、当該方法は、
前記グラフィクスエンジンで前記符号化ビデオストリームから復号化ビデオストリームを生成するステップ
を更に有する、請求項１に記載の方法。
【請求項７】
前記復号化ビデオストリームと前記復号化オーディオストリームとを同期させるステップ
を更に有する請求項６に記載の方法。
【請求項８】
前記復号化オーディオストリームを生成するステップ及び前記復号化ビデオストリームを生成するステップは、並行して実行される、
請求項６に記載の方法。
【請求項９】
前記復号化オーディオストリームをオーディオ出力装置へ送るステップ
を更に有する請求項１に記載の方法。
【請求項１０】
前記復号化オーディオストリームは、デジタルパルス符号変調（ＰＣＭ）信号を含む、
請求項１に記載の方法。
【請求項１１】
符号化オーディオストリームを含むコンテンツストリームを受け取るホストプロセッシングプラットフォームと、
前記符号化オーディオストリームから復号化オーディオストリームを生成するグラフィクスエンジンと
を有する装置。
【請求項１２】
前記符号化オーディオストリームは、１又はそれ以上のオーディオフレームを含み、夫々のオーディオフレームは、複数の時間サンプルの夫々について、複数のサブバンド係数を含み、
前記ホストプロセッシングプラットフォームは、符号化画像フレームとして現れるよう前記オーディオフレームの１又はそれ以上をフォーマットする、
請求項１１に記載の装置。
【請求項１３】
前記グラフィクスエンジンは、前記符号化オーディオストリームに対して複数の動作を実行し、該複数の動作は、エントロピ復号化動作、逆量子化動作、及び逆離散コサイン変換動作を含む、
請求項１１に記載の装置。
【請求項１４】
オーディオ出力装置を更に有し、前記ホストプロセッシングプラットフォームは、前記復号化オーディオストリームを前記オーディオ出力装置へ送る、
請求項１１に記載の装置。
【請求項１５】
前記ホストプロセッシングプラットフォームは、マルチコアプロセッサの第１プロセッサコアに含まれ、前記グラフィクスエンジンは、前記マルチコアプロセッサの第２プロセッサコアに含まれる、
請求項１１に記載の装置。
【請求項１６】
前記コンテンツストリームを記憶する記憶媒体
を更に有する請求項１１に記載の装置。
【請求項１７】
前記コンテンツストリームは、符号化ビデオストリームを更に含み、前記グラフィクスエンジンは、前記符号化オーディオストリームの生成と並行して前記符号化ビデオストリームから復号化ビデオストリームを生成する、
請求項１１に記載の装置。
【請求項１８】
グラフィクスエンジンでホストプロセッシングプラットフォームから符号化オーディオストリームを受け取るステップと、
前記グラフィクスエンジンで前記符号化オーディオストリームから復号化オーディオストリームを生成するステップと
を有し、
前記復号化オーディオストリームを生成するステップは、前記グラフィクスエンジンが前記符号化オーディオストリームに対して複数の動作を実行するステップを含み、該複数の動作は、エントロピ復号化動作、逆量子化動作、及び逆離散コサイン変換動作を含む、
方法。
【請求項１９】
前記複数の動作は、前記ホストプロセッシングプラットフォームによって開始される１又はそれ以上のドライバ呼び出しに基づく、
請求項１８に記載の方法。
【請求項２０】
前記復号化オーディオストリームは、デジタルパルス符号変調（ＰＣＭ）信号を含む、
請求項１８に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
多くのコンピュータプラットフォームはホスト中央演算処理部（ＣＰＵ）（ここでは「ホスト」とも呼ばれる。）を有して、ユーザアプリケーションに関連する様々な処理動作を実行する。そのようなアプリケーションは、例えばビデオ及び／又はオーディオストリームのようなメディアの復号化及び出力（レンダリング）を含んでよい。
【０００２】
ビデオに関して、ホストは、通常、ビデオの復号化及びレンダリングを含む動作を実行するようグラフィクスエンジンに依存する。しかし、オーディオについては、ホストが、通常、その復号化及びレンダリングを含む動作を実行する。専用ハードウェアのオーディオコーデック（エンコーダ／デコーダ）が用いられてよいが、それらは多額の費用を追加する。
【０００３】
あいにく、ホストによるオーディオストリームの処理はそれほど電力効率が良くない。例えば、オーディオ処理は、通常、典型的なクライアントプラットフォームにおいて２又は４よりも多いスレッドで行われ得ない。
【図面の簡単な説明】
【０００４】
【図１】例となる装置の図である。
【図２】例となるオーディオフレームの図である。
【図３】例となるオーディオストリーム復号化パイプラインの図である。
【図４】オーディオパイプラインに対応するグラフィクスドライバ呼び出しを示す図である。
【図５】論理フロー図である。
【発明を実施するための形態】
【０００５】
図面において、同じ参照符号は、概して、同じ、機能上類似する、及び／又は構造上類似する要素を示す。要素が最初に現れる図は、参照符号における最左の数字によって示される。本発明は、添付の図面を参照して記載される。
【０００６】
実施形態は、オーディオストリームの処理を含む技術を提供する。例えば、ホストプロセッシングプラットフォームは、符号化オーディオストリームを含むコンテンツストリームを受け取ってよい。次いで、グラフィクスエンジンは、それから復号化オーディオストリームを生成する。この生成は、グラフィクスエンジンが様々な動作、例えばエントロピ復号化動作、逆量子化動作、及び逆離散コサイン変換動作を実行することを伴ってよい。実施形態において、コンテンツストリームは、符号化ビデオストリームを更に含む。よって、グラフィクスエンジンは、それから復号化オーディオストリームを生成してよい。このようなオーディオ及びビデオ復号化は、並行して実行されてよい。
【０００７】
グラフィクスエンジンは、ビデオコーデックに関連する動作の実行のためのハードウェア加速を提供する。例えば、グラフィクスプロセッシングユニット（ＧＰＵ）は、多くのタイプのビデオコーデックを実施するために用いられ得るハードウェア加速を提供する。そのようなコーデックの例には、ｈ．２６４、ｍｐｅｇ２、ｖｃ−１等がある（が、これらに限られない）。しかし、ビデオコーデックは、現在のところ、オーディオストリームを処理しない。代わりに、上述されたように、オーディオストリームの処理は、通常、ホストによって扱われる。残念ながら、このアプローチは、過度の電力量を消費しうる。
【０００８】
実施形態において、しかしながら、グラフィクスエンジンは、オーディオストリームを処理するために用いられてよい。結果として、完全なメディア（ビデオ及びオーディオ）処理プラットフォームが独立系ソフト開発会社（ＩＳＶ）に提供され得る。
【０００９】
また、オーディオストリームを処理するためのグラフィクスエンジンの使用は、有利に、メディア再生シナリオにおけるホストＣＰＵの電力損失を減らしうる。例えば、無損失高精細度（ＨＤ）オーディオストリームは高いビットレート有する（平均で３〜６Ｍｂｐｓであるが、それらは１５〜２０Ｍｂｐｓのピークレートに到達しうる。）。そのようなオーディオストリームを処理することは、相当量のＣＰＵサイクルと電力消費を必要とする。より詳しくは、実験測定は、約０．５ワットのＣＰＵ電力がブルーレイディスク再生中にオーディオ処理に因ると示している。
【００１０】
オーディオストリームが基本的には性質上ビデオストリームとは全く異なるにしても、それらは、実施形態が利用する多くの類似性を有する。例えば、ビデオストリーム及びオーディオストリームは両方とも、しばしば、例えばハフマン圧縮のような可変長復号化（ＶＬＤ）スキームにより圧縮される。また、ビデオストリーム及びオーディオストリームは両方とも、しばしば、エンコーダで量子化され、デコーダで逆量子化される。更に、ビデオストリーム及びオーディオストリームは両方とも、しばしば、エンコーダで離散コサイン（ＤＣＴ）変換を用いて変換され、次いでデコーダで逆ＤＣＴ（ｉＤＣＴ）変換を介して逆変換される。
【００１１】
実施形態は、それらの類似性を利用して、ビデオストリーム及びオーディオストリームの両方を処理することができる統合化されたビデオ／オーディオ処理環境を提供する。更に、オーディオコーダ／デコーダ（コーデック）は、しばしば、（スレッダビリティの程度がオーディオコーデックによって異なるとしても）極めてスレッダブルである（すなわち、マルチスレッドに適する）。これは、有利に、統合化されたビデオ／オーディオ並列実行エンジンとしてビデオとともにオーディオを処理するグラフィクスエンジンを促進することができる。グラフィクスエンジンにおけるオーディオ処理の実行は、有利に、より高速であり且つより電力効率が良い。
【００１２】
図１は、例となる動作環境１００の図である。環境１００は、ここで記載される技術を用いてよい。環境１００は、様々な要素を含んでよい。例えば、図１は、ホストプロセッシングプラットフォーム１０２と、グラフィクスエンジン１０４と、コンテンツソース１０６と、オーディオ出力装置１０７と、ディスプレイ装置１０８と、インターフェース１０９とを含む環境１００を示す。それらの要素は、ハードウェア及び／又はソフトウェアの何らかの組み合わせにおいて実施されてよい。
【００１３】
ホストプロセッシングプラットフォーム１０２は、中央演算処理部（ＣＰＵ）のような１又はそれ以上のプロセッサ（例えば、マイクロプロセッサ）により実施されてよい。ホストプロセッシングプラットフォーム１０２は、様々な処理及びアプリケーションを実行してよい。図１に示されるように、ホストプロセッシングプラットフォーム１０２は、オペレーティングシステム（ＯＳ）１１０を実行する。このオペレーティングシステムにより、様々なアプリケーション及び処理が実行されてよい。例えば、図１は、メディアアプリケーション１１２と、１又はそれ以上のグラフィクスエンジンドライバ１１１とを実行するプロセッシングプラットフォーム１０２を示す。
【００１４】
アプリケーション１１２は、オーディオ及び／又はビデオ（すなわち、グラフィクス）を伴う動作を実行してよい。例えば、アプリケーション１１２は、符号化されたコンテンツ（例えば、符号化オーディオ／ビデオコンテンツ）を受け取る媒体であってよい。このコンテンツは、コンテンツソース１０６から受け取られてよい。
【００１５】
実施形態において、グラフィクスエンジンドライバ１１１は、ホストプロセッシングプラットフォーム１０２によって実行されるソフトウェアを含む。ドライバ１１１は、アプリケーション１１２のような処理がグラフィクスエンジン１０４と相互に作用することを可能にしてよい。これは、アプリケーション１１２がドライバ１１１によって提供される呼び出し又はルーチンを呼び出すことを含んでよい。ここで記載されるように、そのようなルーチンは、ビデオストリームに加えてオーディオストリームの復号化を含んでよい。つまり、ドライバ１１１は、グラフィクスエンジン１０４へコマンドを発してよい。それに応答して、グラフィクスエンジン１０４は、結果として得られたデータをアプリケーション１１２へ（例えば、ドライバ１１１を介して）供給してよい。
【００１６】
実施形態において、コンテンツソース１０６は、デジタルビデオディスク（ＤＶＤ）、ブルーレイ、及び／又はコンパクトディスク（ＣＤ）リーダ等の、１又はそれ以上の読み込まれたディスクから符号化オーディオ及び／又はビデオデータを提供する光学記憶媒体を有してよい。更に、又は代替的に、コンテンツソース１０６は、符号化されたコンテンツを記憶する磁気的又は電子的な記憶媒体（例えば、磁気ディスクドライブ又はソリッドステートドライブ）を有してよい。実施形態は、しかしながら、そのような記憶媒体の例に限られない。
【００１７】
更に、コンテンツソース１０６は、符号化されたコンテンツを有線又は無線通信媒体から受け取る通信インターフェースを有してよい。通信媒体の例には、ローカルエリアネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、無線メトロポリタンエリアネットワーク（ＷＭＡＮ）、携帯電話ネットワーク、ケーブル放送システム、地上又は衛星ビデオ放送ネットワーク（例えば、ＤＶＢネットワーク）等がある（が、これらに限られない）。そのようなコンテンツを受信すると、アプリケーション１１２は、かかるコンテンツを復号化するよう動作して、それが１又はそれ以上の装置によって出力され得るようにする。
【００１８】
実施形態において、グラフィクスエンジン１０４は、グラフィクスプロセッシングユニット（ＧＰＵ）によって提供される。より詳しくは、グラフィクスエンジン１０４は、ビデオ及びオーディオ処理にしばしば必要とされる多数の機能（ハフマン復号化、ｉＤＣＴ等）の加速を提供する。このＧＰＵは、ホストプロセッシングプラットフォーム１０２からビデオ及びグラフィクスレンダリングをアンロードして加速させる１又はそれ以上の専用マイクロプロセッサを有してよい。また、グラフィクスエンジン１０４は、マルチスレッドの且つ並列な処理をサポートすることができる複数の並列演算実行部（ＥＵ）を有してよい。グラフィクスエンジン１０４は、カリフォルニア州サンタクララのインテルコーポレイションによって製造されている市販のグラフィクスエンジンを有してよい。実施形態は、しかしながら、この例に限られない。
【００１９】
一般的な動作において、グラフィクスエンジン１０４は、アプリケーション１１２に対して、ビデオ復号化に関連する動作を提供してよい。そのような動作は、可変長復号化（ＶＬＤ）、逆量子化、及び逆離散コサイン変換（ＤＣＴ）といった動作を含んでよい（が、これらに限られない）。グラフィクスエンジン１０４は、そのような動作を迅速に且つ効率的に実行するよう専用のハードウェア及び／又はメモリを提供してよい。
【００２０】
そのような動作は、オーディオ復号化にも共通する。よって、ビデオ復号化動作を実行することに加えて、グラフィクスエンジン１０４は、アプリケーション１１２のためのオーディオ復号化動作を実行してよい。そのようなオーディオ復号化は、様々なコーデックに従ってよい。例となるコーデックには、ＤＴＳ−ＨＤマスタオーディオ、ドルビートゥルーＨＤ、ＭＰ３、ＡＡＣ等がある（が、これらに限られない）。なお、如何なるオーディオコーデックが用いられてもよい。実施形態において、そのようなオーディオ及びビデオ復号化動作の実行は、グラフィクスエンジンドライバ１１１を通じてアプリケーション１１２によって開始されてよい。
【００２１】
オーディオ出力装置１０７は、ホストプロセッシングプラットフォーム１０２及び／又はグラフィクスエンジン１０４から受け取ったオーディオストリームから音響信号を生成するよう１又はそれ以上のスピーカを有してよい。実施形態において、そのようなオーディオストリームは、デジタルパルス符号変調（ＰＣＭ）信号であってよい。よって、オーディオ出力装置１０７は、アナログ−デジタル変換器（ＡＤＣ）及びフィルタのような構成要素を更に有して、それらのデジタル信号をスピーカのためのアナログ信号に変換してよい。更なる構成要素は、増幅器、ユーザコントロール（例えば、ボリューム、トーン、イコライゼーション、バランス等）を有してよい。オーディオ出力装置１０７のそのような構成要素は、ハードウェア及び／又はソフトウェアの何らかの組み合わせにおいて実施されてよい。
【００２２】
ディスプレイ装置１０８は、視覚出力をユーザへ提供する物理的ディスプレイを有する。この出力は、連続画像（又はフレーム）の形をとってよい。例となる物理的ディスプレイには、発光ダイオード（ＬＥＤ）ディスプレイ、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、及び陰極線管（ＣＲＴ）がある。実施形態は、しかしながら、これらの例に限られない。ディスプレイ装置１０８によって出力されるフレームの夫々は、複数のピクセルを有してよい。それらのピクセルを表すデータ（例えば、色及び／又は強さの値）は、ディスプレイ装置１０８内の１又はそれ以上のフレームバッファに格納されてよい。このデータは、「フレームデータ」と呼ばれることがある。そのようなフレームバッファは、揮発性ランダムアクセスメモリ（ＲＡＭ）（例えば、動的ＲＡＭ）のような記憶装置によって提供されてよい。なお、不揮発性メモリのような他のタイプの記憶媒体が使用されてもよい。
【００２３】
インターフェース１０９は、図１の要素の間を結合することを提供する。例えば、インターフェース１０９は、要素の様々な対の間の１又はそれ以上のポイント・ツー・ポイント接続（例えば、パラレルインターフェース、シリアルインターフェース、専用信号線、等）を有してよい。
【００２４】
更に、又は代替的に、インターフェース１０９は、物理接続処理部３０２ａ〜ｎを提供するマルチドロップ又はバスインターフェースを有してよい。例となるバスインターフェースには、様々なコンピュータシステムバスインターフェースはもちろん、ユニバーサルシリアルバス（ＵＳＢ）がある。
【００２５】
更に、インターフェース１０９は、ソフトウェア処理間のデータの交換を提供する１又はそれ以上のソフトウェアインターフェース（例えば、アプリケーションプログラマインターフェース、遠隔プロシージャ呼び出し、共有メモリ等）を有してよい。
【００２６】
実施形態において、図１の要素は、コンピュータシステム内に実装されてよい。そのようなコンピュータシステムは、パーソナルコンピュータ（例えば、デスクトップ、ラップトップ、ノートブック、又はタブレットコンピュータ）であってよい。代替的に、そのようなコンピュータシステムは、携帯電話機、パーソナルデジタルアシスタント（ＰＤＡ）、携帯電話スマートホン、又は携帯型メディアプレーヤーのような携帯用デバイスであってよい。実施形態は、しかしながら、それらの例に限られない。
【００２７】
上述されたように、図１の要素は、１又はそれ以上のプロセッサ（例えば、マイクロプロセッサ）を有してよい。例えば、プロセッシングプラットフォーム１０２及びグラフィクスエンジン１０４は、１又はそれ以上のプロセッサにより実施されてよい。一例として、ホストプロセッシングプラットフォーム１０２は、１又はそれ以上のＣＰＵにより実施されてよく、且つ／あるいは、グラフィクスエンジン１０４は、１又はそれ以上のＧＰＵにより実施されてよい。それらのＣＰＵ及び／又はＧＰＵは、１又はそれ以上の記憶媒体に記憶されている命令（例えば、ソフトウェア）に従って動作してよい。そのような記憶媒体の一部又は全ては、プロセッシングプラットフォーム１０２及び／又はグラフィクスエンジン１０４に含まれてよい。更に、又は代替的に、そのような記憶媒体の一部又は全ては、プロセッシングプラットフォーム１０２及びグラフィクスエンジン１０４の外にあってよい。そのような記憶媒体は、メモリ（揮発性又は不揮発性）、ディスク記憶装置、光記憶装置等を有してよい。
【００２８】
ホストプロセッシングプラットフォーム１０２及びグラフィクスエンジン１０４は、マルチコアプロセッサにおける夫々のコアにより実施されてよい。よって、それらの要素は共に、集積回路内にある。
【００２９】
ここで、例となる一連の動作について記載する。図１に示されるように、ホストプロセッシングプラットフォーム１０２は、コンテンツソース１０６からコンテンツストリーム１１９を受け取ってよい。実施形態において、コンテンツストリーム１１９は、符号化オーディオストリームを含む。更に、コンテンツストリーム１１９は、符号化ビデオストリームを含んでよい。
【００３０】
（ホストプロセッシングプラットフォーム１０２で実行されている）アプリケーション１１２は、コンテンツストリーム１１９を受け取ってよい。この受け取りは直接的であっても、あるいは、１又はそれ以上の中間処理要素を介してもよい。そのような処理要素は、ＯＳ１１０、グラフィクスエンジンドライバ１１１、アプリケーションプログラマインターフェース（ＡＰＩ）等を有してよい。
【００３１】
コンテンツストリーム１１９から、アプリケーション１１２は符号化オーディオストリーム１２０及び符号化ビデオストリーム１２４を取り出して、それらをグラフィクスエンジン１０４へ供給する。次いで、グラフィクスエンジン１０４は、それらのストリームに対して様々な動作を実行する。結果として、グラフィクスエンジン１０４は、復号化オーディオストリーム１２２及び復号化ビデオストリーム１２６を生成する。実施形態において、グラフィクスエンジン１０４は、それらのオーディオ及びビデオストリームを並行して処理してよい。
【００３２】
グラフィクスエンジン１０４によって実行される動作は、ホストプロセッシングプラットフォーム１０２によって起動されてよい。例えば、アプリケーション１１２は、指示をグラフィクスエンジン１０４へ送ってよい。そのような指示は、ドライバ１１１を通じて送信されてよい。
【００３３】
図１は、復号化オーディオストリーム１２２及び復号化ビデオストリーム１２６がホストプロセッシングプラットフォーム１０２へ供給されることを示す。受け取られると、更なる動作、例えば、オーディオ／ビデオ同期化及びＯＳ１１０によって保持されている出力スタックへのバッファリングが実行されてよい。そのような動作の後、対応する復号化オーディオストリーム１２８及び対応する復号化ビデオストリーム１３０が夫々、オーディオ出力装置１０７及びディスプレイ装置１０８へ供給される。
【００３４】
ここで記載されるように、オーディオストリーム処理及びビデオストリーム処理は、類似した特性を有する。ここで、オーディオストリームの処理に関する詳細が与えられる。オーディオサンプルは、通常、多数の周波数サブバンド係数（例えば、３２又は６４の係数）に（不可逆に）変換される。多数のオーディオサンプルについて、それらのサブバンド係数は、オーディオフレームを形成するよう（逓増的な時間順序において）まとめられる。
【００３５】
図２は、例となるオーディオフレーム２００の図である。この図は、時間に従う列において水平に且つサブバンドに従う行において垂直に配置されている。よって、図は、２次元行列の値を提供する。それらの値の夫々は、オーディオサンプルのサブバンド係数である。
【００３６】
より詳細には、特定の列におけるサブバンド係数は、Ｎ個のサブバンド（通常、Ｎ＝３２又は６４）に分解された同じオーディオサンプルに属する。オーディオフレームにおける次の列（すなわち、右の列）は、次の時点に符号化されるオーディオサンプルを表す。よって、列＃１にあるオーディオサンプルが最初に符号化され、続いて列＃２にある次のオーディオサンプルが符号化され、続いて列＃３にある次のオーディオサンプルが符号化され、以降同様に続く。従って、図２は、Ｍ個のオーディオサンプルのサブバンド係数が単一のオーディオフレームを形成するようまとめられていることを示す。
【００３７】
可逆オーディオストリームは、しばしば、図２に示されているもののようなフレームから構成される不可逆コアを含む。更に、可逆オーディオストリームは、追加の残留ストリームを含んでよい。この残留ストリームは、デコーダが原のオーディオストリームの無損失生成を達成することを可能にする。
【００３８】
図２から分かるように、オーディオフレームは、オーディオフレームにおける各サンプルの水平及び垂直座標（ｘ，ｙ）がピクセルの空間座標を表さないことを除いて、ビデオフレームに類似する。むしろ、それらの座標は、オーディオサンプルの周波数（サブバンド）及び時間座標を表す。
【００３９】
図３は、例となる不可逆オーディオストリーム復号化パイプライン３００の図である。図３に示されるように、このパイプラインは、可変長復号化（ＶＬＤ）モジュール３０２と、逆量子化（逆Ｑ）モジュール３０４と、付加的なオーディオ処理モジュール３０６と、逆ＤＣＴ（ｉＤＣＴ）モジュール３０８と、直交ミラーフィルタ（ＱＭＦ）モジュール３１０と、オーディオ後処理モジュール３１２とを有する。これらのモジュールは、ハードウェア及び／又はソフトウェアの何らかの組み合わせにおいて実施されてよい。更に、図３のモジュールは一例として提示されているのであり、限定としてではない。よって、特定のコーデック特性に依存して、このオーディオパイプラインは、更なる又はより少ないモジュールを有してよい。
【００４０】
一般的な動作において、パイプライン３００は、符号化された（圧縮された）オーディオストリーム３２０を受け取り、対応する復号化オーディオストリーム３２２を生成する。より詳細には、図３は、圧縮オーディオストリーム３２０を受け取るＶＬＤモジュール３０２を示す。次いで、ＶＬＤモジュール３０２は、このストリームに対してエントロピ復号化を実行する。この復号化は、ハフマン復号化であってよい。実施形態は、しかしながら、この例に限られない。この復号化の結果は、逆Ｑモジュール３０４によって逆量子化される。
【００４１】
モジュール３０６は、モジュール３０４の逆量子化結果に対して追加のオーディオ処理を実行してよい。一例として、モジュール３０６は、それらの結果に対して逆適応差分パルス符号変調（ＡＤＰＣＭ）を実行してよい。しかし、更なる及び／又は代替の動作が実行されてもよい。実施形態において、このオーディオ処理は（特定のオーディオコーデックの仕様に依存して）複数のサブバンド及び／又はオーディオサンプルにわたって（例えば、図２に示されるフレームの行及び／又は列にわたって）スレッダブルであってよい。
【００４２】
ＤＣＴ変換を用いるオーディオコーデックについて、逆ＤＣＴモジュール３０８は、モジュール３０６の出力に対して逆ＤＣＴを実行する。この後、ＱＭＦモジュール３１０は、モジュール３０８によって与えられる周波数領域の係数を、時間領域におけるパルス符号変調（ＰＣＭ）オーディオサンプルに変換する。実施形態において、ＱＭＦモジュール３１０は、必ずしもオーディオサンプル（例えば、図２の列）にわたってではなく、サブバンド（例えば、図２の行）にわたって通常スレッダブルである動作を実行する。
【００４３】
しばしば、モジュール３０８及び３１０によって実行される逆ＤＣＴ及びＱＭＦ動作は、オーディオパイプラインにおける最も計算的に集中的な動作である。例えば、組み合わされる場合に、それらの動作は、消費される総ＭＩＰＳ（million  instructions  per  second）の３０〜５０％に相当しうる。
【００４４】
図３に示されるように、オーディオ後処理モジュール３１２は、ＱＭＦモジュール３１０によって与えられるＰＣＭサンプルに対して動作を実行してよい。例として、動作には、ダウンミキシング（オーディオストリームにおける数又はオーディオチャネルを減らすこと）が含まれる。しかし、代替の及び／又は更なる動作が実行されてもよい。これは、復号化オーディオストリーム３２２を生成する。復号化オーディオストリーム３２２は、増幅器及び／又はスピーカのような出力装置へ送信されてよい。
【００４５】
図３のパイプラインは、複数のオーディオチャネル（例えば、２、５又はそれ以上のオーディオチャネル）の夫々に別々に適用されてよい。よって、夫々のチャネルは、独立に処理されてよい。しかし、実施形態は、そのような独立した処理に限られない。
【００４６】
図３の一部のモジュールは、ビデオパイプラインにも共通である。例えば、ＶＬＤモジュール３０２、逆Ｑモジュール３０４、及び逆ＤＣＴモジュール３０６は、ビデオパイプラインにおいて用いられてよい。よって、図３において、それらのモジュールは、灰色で影を付けられている。そのような共通性の結果として、実施形態は、ビデオパイプラインにおいて実行される示された動作（ＶＬＤ、逆Ｑ、ｉＤＣＴ等）を有するために、ビデオパイプラインへオーディオフレームを送ってよい。
【００４７】
更に、グラフィクスエンジン（例えば、グラフィクスエンジン１０４）によって直接にサポートされないオーディオ処理動作は、多くの場合において極めてスレッダブルである。よって、そのような動作は、グラフィクスエンジンの複数の実行ユニットによって実行されてよい。更に、オーディオチャネルが独立して処理され得る場合に、スレッダビリティの程度（マルチスレッディングに適する程度）は高められる。そのようなスレッダビリティは、グラフィックスエンジンの複数の実行ユニットによってサポートされてよい。
【００４８】
オーディオフレームを処理するよう、グラフィクスエンジンによって提供されるビデオパイプラインを用いて、メディアアプリケーションは、グラフィクスドライバ（例えば、図１のグラフィクスエンジンドライバ１１１）への多数の呼び出しを実行してよい。異なったドライバ呼び出しの正確な数及び性質は、実施に特有であってよい。例えば、そのようなドライバ呼び出しは、用いられる特定のオーディオコーデックに依存してよい（例えば、ＤＴＳ−ＨＤマスタオーディオ、ドルビートゥルーＨＤ等）。図４は、そのようなドライバ呼び出しの例を与える。
【００４９】
特に、図４は、図３のオーディオパイプラインに対応するグラフィクスドライバ呼び出しを示す図である。それらのドライバ呼び出しは、限定ではなく例示のために与えられる。よって、より少ない又はより多い呼び出しの組み合わせが用いられてよい。
【００５０】
図４は、モジュール３０２及び３０４の動作を呼び出す第１のドライバ呼び出し４０２と、モジュール３０６の動作を呼び出す第２のドライバ呼び出し４０４とを示す。また、第３のドライバ呼び出し４０６は、モジュール３０８の動作を呼び出す。更に、第４のドライバ呼び出し４０８は、モジュール３１０及び３１２の動作を呼び出す。これらのドライバ呼び出しは、限定ではなく例示のために与えられている。よって、より少ない又はより多いドライバ呼び出しの他の配置が用いられてよい。例えば、実施形態は、多くのドライバ呼び出しが、夫々のオーディオフレームを処理するのに必要とされるアプリケーション／ドライバインタラクションの数を減らすように結合される最適化された実施を用いてよい。
【００５１】
図５は、例となる論理フロー５００を表す。フロー５００は、ここで記載される１又はそれ以上の実施形態によって実行される動作を表すことができる。図５は特定のシーケンスを示すが、他のシーケンスが用いられてよい。更に、表されている動作は、種々の並列な及び／又は順次的な結合において、実行されてよい。
【００５２】
ブロック５０２で、アプリケーションは、１又はそれ以上のオーディオフレームを、それらのフォーマットがビデオフレームのフォーマットと互換性があるように再フォーマットする。実施形態において、これは、複数のオーディオフレームを単一のより大きいフレームにまとめることを含んでよい。代替的に、又は追加的に、これは、時間及び／又は周波数におけるオーディオフレームの次元を変更することを含んでよい。例えば、付加的なサブバンド及び／又は時間サンプルがオーディオフレームにゼロ詰めされてよく、オーディオフレームをビデオ対応サイズとする。
【００５３】
ブロック５０４で、第１のグラフィクスドライバ呼び出しが実行される。この呼び出しは、エントロピ復号化及び逆量子化（例えば、モジュール３０２及び３０４によって実行される動作）のためにグラフィクスエンジン（例えば、グラフィクスエンジン１０４）へオーディオフレームを送る。実施形態において、グラフィクスエンジンは、それらの動作を実行することができる固定機能の及び／又はプログラム可能なＶＬＤエンジンを有する。
【００５４】
ブロック５０６で、第２のドライバ呼び出しが実行される。この呼び出しは、他のオーディオ特有の処理（例えば、モジュール３０６の処理）の実行を開始する。上述されたように、そのような処理は、サブバンド、オーディオサンプル及びオーディオチャネルにわたって、極めてスレッダブルでありうる。結果として、高い程度のスレッダビリティが達成され得る。これは、グラフィクスエンジンの実行ユニットによる高速な効率的実行を可能にする。
【００５５】
第３のドライバ呼び出しがブロック５０８で実行される。このドライバ呼び出しにおいて、アプリケーションは、オーディオフレームをグラフィクスエンジンに送ってよく、逆ＤＣＴがオーディオフレームに対して実行され得るようにする。ここで記載されるように、グラフィクスエンジンは、この動作のための加速を提供するよう固定の及び／又はプログラム可能な機能を有する。
【００５６】
ブロック５１０で、第４のドライバ呼び出しが実行される。この呼び出しは、ＱＭＦ動作及びその他のオーディオ後処理（例えば、モジュール３１０及び３１２の動作）の実行を開始する。上述されたように、それらの動作は、極めてスレッダブルでありうる（スレッダビリティの程度は、オーディオコーデックスキームによって異なりうる。）。よって、それらの動作は、グラフィクスエンジンの実行ユニットにおけるマルチスレッドの実行にとって優れた候補でありうる。
【００５７】
ブロック５１０の実行は、復号化されたオーディオを生成する。然るに、このオーディオがビデオストリームに付随する場合には、ビデオストリーム及びオーディオストリームはブロック５１２で同期されてよい（時間において整列されてよい）。実施形態において、そのような同期化は、アプリケーションによって実行されてよい。
【００５８】
ブロック５１４で、アプリケーションは、復号化オーディオストリームを出力オーディオスタックへ送ってよい。このスタックは、出力バッファリング能力を提供してよい。次いで、オーディオは、ブロック５１６で１又はそれ以上の装置を通じて出力される。そのような装置は、ＰＣＭデコーダ、フィルタ、増幅器、及び／又はスピーカの何らかの組み合わせを有してよい。
【００５９】
夫々のオーディオフレームは、通常、一定量の時間（例えば、オーディオフレームのサイズに依存して５又は１０ミリ秒）を表す。よって、アプリケーションは、対応する一定レートでオーディオフレームをグラフィクスパイプラインへ送ってよい。然るに、ブロック５０２〜５１６のいずれの組み合わせも、繰り返し実行されてよい。
【００６０】
また、実施形態において、アプリケーションは、ここで記載されるオーディオ処理のためのグラフィクスドライバ呼び出しを、正規のグラフィクスドライバ呼び出しと混ぜて／重ね合わせてよい。よって、オーディオフレーム及びビデオフレームは、並列にグラフィクスエンジンによって復号化されて後処理されてよい。
【００６１】
ここで記載されるように、種々の実施形態はハードウェア要素、ソフトウェア要素、又はそれらの組み合わせを用いて実施されてよい。ハードウェア要素の例には、プロセッサ、マイクロプロセッサ、回路、回路素子（例えば、トランジスタ、抵抗、キャパシタ、インダクタンス等）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能論理デバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等がある。
【００６２】
ソフトウェアの例には、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、ファンクション、メソッド、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、又はそれらのいずれかの組み合わせがある。
【００６３】
幾つかの実施形態は、例えば、機械によって読取可能な記憶媒体又は物を用いて、実施されてよい。記憶媒体は、機械によって実行される場合にその機械に実施形態に従う方法及び／又は動作を実行させることができる命令又は命令の組を記憶してよい。そのような機械には、例えば、何らかの適切なプロセッシングプラットフォーム、コンピュータプラットフォーム、コンピュータ装置、プロセッシング装置、コンピュータシステム、プロセッシングシステム、コンピュータ、プロセッサ等があり、ハードウェア及び／又はソフトウェアの何らかの適切な組み合わせを用いて実施されてよい。
【００６４】
ここで記載されるように、実施形態は、記憶媒体又は機械読取可能な物を有してよい。それらは、例えば、何らかの適切なタイプのメモリユニット、メモリ装置、メモリアーティクル、メモリ媒体、記憶装置、記憶アーティクル、記憶媒体、及び記憶ユニット（例えば、メモリ、可搬型又は固定型の媒体、消去可能又は消去不可能な媒体、書込可能又は書換可能な媒体、デジタル又はアナログ媒体、ハードディスク、フロッピー（登録商標）ディスク、コンパクトディスク読出専用メモリ（ＣＤ−ＲＯＭ）、リコーダブルＣＤ（ＣＤ−Ｒ）、リライタブルＣＤ（ＣＤ−ＲＷ）、光ディスク、磁気媒体、磁気光学媒体、可搬型のメモリカード又はディスク、種々のタイプのデジタルバーサタイルディスク（ＤＶＤ）、テープ、カセット、等）を有してよい。命令は、何らかの適切な高度の、低度の、オブジェクト指向の、視覚的な、コンパイルされた及び／又はインタプリタされたプログラミング言語を用いて実施される何らかの適切なタイプのコード（例えば、ソースコード、コンパイルされたコード、インタプリタされたコード、実行可能コード、静的コード、動的コード、暗号化されたコード等）を有してよい。
【００６５】
以上本発明の様々な実施形態が記載されてきたが、当然にそれらは単なる一例として提示されているのであり、限定ではない。例えば、ここで記載されている技術は、２進数を用いることに制限されない。よって、当該技術は、如何なる基底の数によっても用いられてよい。
【００６６】
然るに、当業者には明らかなように、形態及び詳細における種々の変更が、本発明の精神及び適用範囲から逸脱することなしに、それらの実施形態に対してなされ得る。よって、本発明の技術的範囲は、上記の実施例のいずれによっても制限されるべきではなく、特許請求の範囲及びそれらの均等物に従ってのみ定義されるべきである。
【図１】
2014507897.tif 000003
【図２】
2014507897.tif 000004
【図３】
2014507897.tif 000005
【図４】
2014507897.tif 000006
【図５】
2014507897.tif 000007
【国際調査報告】
2014507897.tif 000008
2014507897.tif 000009