特許第5728098号(P5728098)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インテル・コーポレーションの特許一覧

特許5728098アプリケーションに依存しないオーディオアクセレレーションを行うシステム、方法、およびソフトウェアプログラム
<>
  • 特許5728098-アプリケーションに依存しないオーディオアクセレレーションを行うシステム、方法、およびソフトウェアプログラム 図000002
  • 特許5728098-アプリケーションに依存しないオーディオアクセレレーションを行うシステム、方法、およびソフトウェアプログラム 図000003
  • 特許5728098-アプリケーションに依存しないオーディオアクセレレーションを行うシステム、方法、およびソフトウェアプログラム 図000004
  • 特許5728098-アプリケーションに依存しないオーディオアクセレレーションを行うシステム、方法、およびソフトウェアプログラム 図000005
  • 特許5728098-アプリケーションに依存しないオーディオアクセレレーションを行うシステム、方法、およびソフトウェアプログラム 図000006
  • 特許5728098-アプリケーションに依存しないオーディオアクセレレーションを行うシステム、方法、およびソフトウェアプログラム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5728098
(24)【登録日】2015年4月10日
(45)【発行日】2015年6月3日
(54)【発明の名称】アプリケーションに依存しないオーディオアクセレレーションを行うシステム、方法、およびソフトウェアプログラム
(51)【国際特許分類】
   G10L 19/00 20130101AFI20150514BHJP
   G06T 1/20 20060101ALI20150514BHJP
【FI】
   G10L19/00 400Z
   G10L19/00 250
   G06T1/20 B
【請求項の数】16
【全頁数】9
(21)【出願番号】特願2013-554444(P2013-554444)
(86)(22)【出願日】2011年12月28日
(65)【公表番号】特表2014-511503(P2014-511503A)
(43)【公表日】2014年5月15日
(86)【国際出願番号】US2011067580
(87)【国際公開番号】WO2012112219
(87)【国際公開日】20120823
【審査請求日】2013年8月28日
(31)【優先権主張番号】13/029,661
(32)【優先日】2011年2月17日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】カブーラソス、ニコス
(72)【発明者】
【氏名】ウォーレル、デヴォン
【審査官】 千本 潤介
(56)【参考文献】
【文献】 特開2010−114919(JP,A)
【文献】 米国特許出願公開第2007/0198412(US,A1)
【文献】 米国特許出願公開第2009/0141034(US,A1)
【文献】 米国特許出願公開第2011/0087345(US,A1)
【文献】 米国特許出願公開第2009/0069910(US,A1)
【文献】 米国特許出願公開第2010/0146620(US,A1)
【文献】 米国特許出願公開第2004/0111627(US,A1)
【文献】 千種 菊里 KUKURI CHIGUSA,オープンなGPGPUの規格 もう1つの高速化手法OpenCL,月刊アスキードットテクノロジーズ 第14巻 第12号 ASCII.technologies,日本,株式会社アスキー・メディアワークス,2009年10月27日,第14巻第12号,132〜133頁
【文献】 Seung Gu Kang et al.,Power analysis for decoding of the digital audio encoding format MP3: Decoding the central processing unit and the graphics processing unit. ,The Journal of the Acoustical Society of America,米国,the Acoustical Society of America,2010年 3月,Vol.127, No.3, Pt.2 of 2,2037頁,URL,http://scitation.aip.org/content/asa/journal/jasa/127/3/10.1121/1.3385354
(58)【調査した分野】(Int.Cl.,DB名)
G10L 19/00
G06T 1/20
(57)【特許請求の範囲】
【請求項1】
ダウンコーデックファンクションドライバを実行するホストプロセッサが、ダウンコーデックにアクセス可能とする段階と、
前記ダウンコーデックファンクションドライバを実行する前記ホストプロセッサが、オーディオデータをグラフィックエンジンへと転送する段階と、
前記オーディオデータのデコードを実行するために前記グラフィックエンジンにより必要とされる推定されたレイテンシーを表す推定されたレイテンシー情報をメディアアプリケーションに報告する段階と
を備え
前記推定されたレイテンシー情報は、前記グラフィックエンジンにより生成される方法。
【請求項2】
前記転送する段階は、
前記ダウンコーデックファンクションドライバを実行する前記ホストプロセッサが前記オーディオデータをグラフィックドライバへ再転送する段階と、
前記グラフィックドライバが前記オーディオデータを前記グラフィックエンジンへ送信する段階と、
前記グラフィックエンジンが前記オーディオデータを復号化しデコードする段階と
を有する、請求項1に記載の方法。
【請求項3】
前記ダウンコーデックファンクションドライバを実行する前記ホストプロセッサが、復号化されデコードされた前記オーディオデータを前記グラフィックエンジンから受信する段階をさらに備える請求項1または2に記載の方法。
【請求項4】
前記受信する段階は、前記復号化されデコードされたオーディオデータを前記グラフィックエンジンから受信したグラフィックドライバから、前記ダウンコーデックファンクションドライバを実行する前記ホストプロセッサが、前記復号化されデコードされたオーディオデータを受信する段階を有する、請求項3に記載の方法。
【請求項5】
前記ダウンコーデックファンクションドライバを実行する前記ホストプロセッサが、復号化されデコードされた前記オーディオデータを前記ダウンコーデックへ送信する段階をさらに備える請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記ダウンコーデックが、前記復号化されデコードされたオーディオデータをレンダリングする段階をさらに備える請求項5に記載の方法。
【請求項7】
復号化およびデコードを行うべくオーディオデータをグラフィックエンジンへと転送する手順と、
前記デコードを実行するために前記グラフィックエンジンにより必要とされる推定されたレイテンシーを表す推定されたレイテンシー情報をメディアアプリケーションに報告する手順と
をホストプロセッサに実行させ、
前記推定されたレイテンシー情報は、前記グラフィックエンジンにより生成されるソフトウェアプログラム。
【請求項8】
前記オーディオデータを転送する前記手順は、前記オーディオデータをグラフィックドライバへ再転送して、前記グラフィックドライバが前記オーディオデータを前記グラフィックエンジンへ送信させる、手順を備える、請求項7に記載のソフトウェアプログラム。
【請求項9】
復号化されデコードされた前記オーディオデータを前記グラフィックエンジンから受信する手順をさらに前記ホストプロセッサに実行させる請求項7に記載のソフトウェアプログラム。
【請求項10】
前記復号化されデコードされたオーディオデータを受信する前記手順は、前記復号化されデコードされたオーディオデータを前記グラフィックエンジンから受信したグラフィックドライバから前記復号化されデコードされたオーディオデータを受信する手順を備える、請求項に記載のソフトウェアプログラム。
【請求項11】
レンダリングを行うべく、前記復号化されデコードされたオーディオデータをダウンコーデックへ送信する手順をさらに前記ホストプロセッサに実行させる請求項9または10に記載のソフトウェアプログラム。
【請求項12】
ホストプロセッサと、
前記ホストプロセッサと通信を行い、復号化およびデコードを行うべく前記ホストプロセッサに対しオーディオデータをグラフィックエンジンに転送させる複数の処理命令を格納したメモリと
を備え
前記メモリは、前記ホストプロセッサに対し、前記デコードを実行するために前記グラフィックエンジンにより必要とされる推定されたレイテンシーを表す推定されたレイテンシー情報をメディアアプリケーションに報告させる命令を格納し、
前記推定されたレイテンシー情報は、前記グラフィックエンジンにより生成されるシステム。
【請求項13】
前記オーディオデータを転送させる前記複数の処理命令は、前記ホストプロセッサに対し、前記オーディオデータをグラフィックドライバへ再転送させ、前記グラフィックドライバに対し、前記オーディオデータを前記グラフィックエンジンに送信させる命令を含む、請求項12に記載のシステム。
【請求項14】
前記メモリは、前記ホストプロセッサに対し、復号化されデコードされた前記オーディオデータを前記グラフィックエンジンから受信させる複数の処理命令をさらに格納する、請求項12に記載のシステム。
【請求項15】
前記復号化されデコードされたオーディオデータを前記グラフィックエンジンから受信させる前記複数の処理命令は、前記ホストプロセッサに対し、前記復号化されデコードされたオーディオデータを前記グラフィックエンジンから受信したグラフィックドライバから前記復号化されデコードされたオーディオデータを受信させる命令を含む、請求項14に記載のシステム。
【請求項16】
前記メモリは、前記ホストプロセッサに対し、レンダリングを行うべく、前記復号化されデコードされたオーディオデータをダウンコーデックへ送信させる複数の処理命令をさらに格納する、請求項12から15のいずれか1項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
今日のメディアアプリケーションは典型的には、ホストプロセッサでオーディオのデコードを行う。このことにより、特にプレミアムのオーディオの場合において、中央処理装置(CPU)での繰り返しの処理が必要となり得る。これに伴うホストプロセッサが消費する電力量の増加は避けられない。例えばブルーレイの再生において、DTS HD MasterオーディオをデコードすることによりCPUの消費電力が最大0.5W増加することを測定結果が示している。
【背景技術】
【0002】
しかし独立したグラフィックエンジンは、動画ストリームのデコードに加えオーディオストリームのデコードにも用いることができる必要な信号処理ロジック(乗算−累積など)を有し得る。グラフィックエンジンコアは、メディアワークロードを汎用のCPUコアよりも(消費電力に関し)効率的に処理し得る。動画フレームをグラフィックエンジンで処理することにより、ホストプロセッサで同じフレームを処理するのと比較し、CPUの消費電力を数ワット節約できる。グラフィックエンジンは数10〜数100の並列スレッドを実行する性能を有し得、これにより、(同じワークロードをホストプロセッサで実行するよりも)はるかに短い時間で並列処理可能なワークロードを完了することが出来る。結果的に、CPUパッケージ全体がより頻繁にスリープ状態に入ることが出来、CPUの消費電力が節約される。プレミアムなオーディオの処理を行う際に、高度な並列処理が可能となり得る。
【0003】
オーディオ処理にグラフィックエンジンを活用するスキームの1つは、オーディオパスとして既に動画に用いられているソフトウェアアーキテクチャをほぼ複製する処理を伴う。しかしこのスキームにより、メディアアプリケーションがグラフィックエンジンにおいて動画のデコードと併せてオーディオのデコードを行えるよう、当該メディアアプリケーションを修正しなければならないという負担が生じる。
【図面の簡単な説明】
【0004】
図1図1は、実施形態が動作するメディア処理アーキテクチャを示すブロック図である。
図2図2は、実施形態に係るコンポーネントおよびデータフローを示すブロック図である。
図3図3は、実施形態に係るコンピュータ構成を示すブロック図である。
図4図4は、実施形態に係る処理を示すフローチャートである。
図5図5は、実施形態に係る、オーディオデータのグラフィックエンジンへの転送を示すフローチャートである。
図6図6は、実施形態に係る、ダウンコーデックファンクションドライバによる、グラフィックエンジンからの復号化されデコードされたオーディオデータの受信を示すフローチャートである。 図面において、符号の一番左側の数字は、当該符号が最初に扱われた図面の番号を示す。
【発明を実施するための形態】
【0005】
図面を参照して実施形態を説明する。図面において同様の符号は、同一の要素、または機能的に同様の要素を指す。特定の構成および配置について説明するが、それらは例示のみを目的としていることが理解されるべきである。当業者であれば、本願発明の思想および態様から逸脱することなく他の構成および配置を用いることが出来ることを理解されよう。本明細書で説明されるシステムおよびアプリケーションの他に様々なシステムおよびアプリケーションにおいて本願発明を適用出来ることが、当業者には明白である。
【0006】
本明細書において、ホストプロセッサの代わりにグラフィックエンジンでオーディオの復号化およびデコードを可能とする方法、システム、およびコンピュータプログラム製品を開示する。以下に説明するようにこれは、メディアアプリケーションプログラムを修正する必要なく実現され得る。
【0007】
本明細書で説明するシステムの実施形態は、図1に示すアーキテクチャ構成で実現し得る。アーキテクチャ100は、ホストプロセッサ110を含んでよい。プロセッサ110はグラフィックエンジン120と通信を行ってもよい。典型的にはグラフィックエンジン120は、グラフィック処理を行うのに用いられる。以下により詳細に説明するように、実施形態によるとグラフィックエンジン120は、オーディオ処理にも用いることが出来る。示されるアーキテクチャは、ダウンコーデック130も含んでよい。実施形態においてダウンコーデック130は、デコードされたオーディオサンプルを受信し当該オーディオを処理することによりスピーカまたはヘッドフォンなどの1以上の出力デバイスから出力を行うコンポーネントであってよい。ホストプロセッサ110、グラフィックエンジン120、およびダウンコーデック130は、通信インフラ140を介して通信を行ってよい。実施形態において、通信インフラ140は、例えばバスなどの形態をとり得る。
【0008】
実施形態において、本願発明はメディアシステムに組み込まれてもよい。例えば実施形態は、パソコン(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯端末(PDA)、携帯電話、携帯電話とPDAとの組み合わせ、テレビ、スマートデバイス(スマートフォン、スマートタブレット、またはスマートテレビなど)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス、若しくは他の固定型または携帯型の情報アプライアンスに組み込まれてもよい。
【0009】
図2は、実施形態に係る、本明細書で説明されるシステム200を示すブロック図である。ダウンコーデックファンクションドライバ230は最初にメディアアプリケーション210を、ダウンコーデック290に対してアクセス可能としてよい。その後メディアアプリケーション210は、暗号化され符号化されたオーディオデータ220をダウンコーデックファンクションドライバ230へ送信してよい。その後ダウンコーデックファンクションドライバ230は、オーディオデータ220をグラフィック(GFX)ドライバ240へ再転送してよい。その後グラフィックドライバ240は、オーディオデータ220をグラフィックエンジン250へ渡してよい。示される実施形態においてグラフィックエンジン250は、限定するわけではないが、Intel Graphics Engine GEN(Intel Corp.(米国カリフォルニア州サンタクララ市)により販売)などであってよい。代替的な実施形態においては、他のグラフィクスエンジンが用いられてもよい。
【0010】
その後グラフィックエンジン250はオーディオデータを復号化しデコードしてよい。その後、復号化されデコードされたオーディオデータ260は、グラフィックドライバ240へ戻されてもよい。その後グラフィックドライバ240は、復号化されデコードされたオーディオデータ260をダウンコーデックファンクションドライバ230へ送信してよい。その後ダウンコーデックファンクションドライバ230は、処理を行うべく、復号化されデコードされたオーディオデータ260をダウンコーデック290へ渡してよい。示される実施形態において、復号化されデコードされたオーディオデータ260は、バスドライバ270およびオーディオコントローラ280を介してダウンコーデック290へ送信されてよい。
【0011】
本明細書で開示される1以上の特徴は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにより実装されてもよい。ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせの例としては、個別または集積回路ロジック、特定用途向け集積回路(ASIC)ロジック、プログラマブルゲートアレイ、および/またはマイクロコントローラなどが挙げられる。若しくは本明細書で開示される1以上の特徴は、ドメイン固有の集積回路パッケージ、または集積回路パッケージの組み合わせの一部として実装されてもよい。本明細書で用いられるソフトウェアという用語は、コンピュータシステムに対し、本明細書で開示される1以上の特徴、および/または特徴の組み合わせを実行させるコンピュータプログラムロジックを格納した非一時的なコンピュータ可読媒体を含むコンピュータプログラム製品のことを指す。
【0012】
実施形態においてダウンコーデックファンクションドライバ230は、ソフトウェアまたはファームウェアとして実装されてもよい。そのようなソフトウェアまたはファームウェアを用いた実施形態は、図3のコンピューティングシステム300の構成において示されている。システム300は中央処理装置(CPU)320およびメモリ310のボディを含んでよい。メモリ310は、コンピュータプログラムロジック340を格納し得る1以上の非一時的なコンピュータ可読媒体を含んでよい。メモリ310は、読み取り専用メモリ(ROM)、またはランダムアクセスメモリ(RAM)デバイスなどとして実装されてよい。CPU320およびメモリ310は、バスなど当業者に公知の技術のうち何れかを用いて通信を行ってもよい。
【0013】
メモリ310に格納されるコンピュータプログラムロジック340は、CPU320により読み取られ実行されてもよい。I/O330としてまとめて示される1以上のI/Oポートおよび/またはI/OデバイスもCPU320およびメモリ310に接続されてもよい。図3の実施形態においてダウンコーデックファンクションドライバ230は、より大きなコンピュータプログラムロジック340のボディの一部として示されている。
【0014】
ダウンコーデックファンクションドライバ230は再転送ロジック350を含んでもよい。
【0015】
再転送ロジック350は、オーディオデータをメディアアプリケーションからグラフィックドライバへ再転送させてもよい。ダウンコーデックファンクションドライバ230は受信ロジック360も含んでよい。受信ロジック360は、復号化されデコードされたオーディオデータをグラフィックドライバから受信させ、レンダリングのために当該データをダウンコーデックへ転送させる。
【0016】
実施形態において、本明細書で説明されるシステムの処理は、図4に示されるように実行されてもよい。410において、ダウンコーデックファンクションドライバは、メディアアプリケーションをダウンコーデックにアクセス可能としてよい。420において、ダウンコーデックファンクションドライバは、メディアアプリケーションから受信した暗号化され符号化されたオーディオデータを、復号化およびデコードを行うべくグラフィックエンジンへと転送してよい。実施形態において、このオーディオデータの復号化に、動画の復号化に用いられたものと同じキーを用いてもよい。430において、復号化およびデコードが完了した後、ダウンコーデックファンクションドライバは復号化されデコードされたオーディオをグラフィックエンジンから受信してもよい。440において、ダウンコーデックファンクションドライバは、復号化されデコードされたオーディオをダウンコーデックへ送信してもよい。450において、ダウンコーデックは、オーディオの処理を行ってもよい。
【0017】
一実施形態に係る、暗号化され符号化されたオーディオのグラフィックエンジンへの転送(図4の420)は、図5においてより詳細に示されている。ここで、暗号化され符号化されたオーディオは、グラフィックドライバを介してグラフィックエンジンへ送信されてもよい。510において、ダウンコーデックファンクションドライバは、暗号化され符号化されたオーディオデータを受信してもよい。520において、ダウンコーデックファンクションドライバは、オーディオデータをグラフィックドライバへ再転送してもよい。530において、グラフィックドライバは、暗号化され符号化されたオーディオデータをグラフィックエンジンへ送信してもよい。540において、グラフィックエンジンは、オーディオデータの復号化およびデコードを行ってもよい。
【0018】
実施形態に係る、ダウンコーデックファンクションドライバによる、復号化されデコードされたオーディオデータのグラフィックエンジンからの受信(図4の430)は、図6においてより詳細に示されている。610において、グラフィックエンジンは、復号化されデコードされたオーディオデータをグラフィックドライバへ送信してもよい。620において、グラフィックドライバは、処理を行うべく、復号化されデコードされたオーディオデータをダウンコーデックファンクションドライバへ送信してもよい。
【0019】
なお、グラフィックエンジンが復号化およびデコードを完了した後、再暗号化は必ずしも必要ではない。これは復号化されたオーディオストリームが、暗号化を必要とするパス上で必ずしも渡される必要がないからである。そのようなパスの例としては、Peripheral Component Interconnect Express(PCIe)またはUniversal Serial Bus(USB)規格に準拠するコンポーネントまたは他のインフラ、および、High−Definition Multimedia Inteface(HDMI(登録商標))ポートを含むパスが挙げられる。他方、ダウンコーデックが暗号化を必要とするバスに取り付けられていた場合、グラフィックエンジンは、オーディオデータをダウンコーデックファンクションドライバへ戻す前に、オーディオデータの再暗号化を行うか、または(48kHzなどへ)ダウンサンプリングを行う。これは、ダウンサンプリングされたプレミアムでないオーディオは暗号化を必要としないためである。
【0020】
さらに、ダウンコーデックファンクションドライバに対し、オーディオデータをグラフィックエンジンへ、そしてダウンコーデックへと再転送させることにより、オーディオのパスにおいて追加的なレイテンシーが生じ得る。ダウンコーデックファンクションドライバに対し、グラフィックエンジンがオーディオパケットをデコードするのに必要となると推定されたレイテンシーをメディアアプリケーションへ報告させることによって、このデコードによるレイテンシーに対応してもよい。このレイテンシーに関する情報は、グラフィックエンジンによって生成され、ダウンコーデックファンクションドライバへ提供されてもよい。そのようなメカニズムを用いることにより、動画ストリームとオーディオストリームとの間の同期化を促し得る。
【0021】
機能、特徴、およびそれらの関係を示す機能ブロックを用いて、本明細書において、方法およびシステムを開示する。これらの機能ブロックの境界のうち少なくともいくつかが、説明を分かりやすくするべく、本明細書において適宜定められている。特定される機能、およびそれらの関連動作が適切に実行される範囲において代替的な境界を定めることも可能である。
【0022】
本明細書において様々な実施形態が開示されるが、それら実施形態は例示のみを目的としており、限定を目的としていないことが理解されるべきである。当業者には、本明細書で開示される方法およびシステムの思想および態様から逸脱することなく、形式および詳細において様々な変更が加えられ得ることが明白であろう。よって、特許請求項の範囲および態様は、本明細書に開示される例示的な実施形態の何れによっても限定されるべきではない。
図1
図2
図3
図4
図5
図6