(57)【特許請求の範囲】
【請求項１】
異なるオーディオ周波数レンジに対応し、ユーザにより選択可能な複数の異なるオーディオ品質レベルのうちの選択された一つのオーディオ品質レベルに対応するオーディオ周波数レンジ内のオーディオ・クリップの部分を復号することにより、前記オーディオ・クリップを選択的に復号するように構成されているオーディオ・デコーダと、
前記オーディオ・デコーダに結合されているスピーカであって、前記選択的に復号されたオーディオ・クリップを出力するように構成されているスピーカと、
入力されるビットレートと、オーディオ・ビット・ストリームにおける任意の連続するグラニュールを構成する最小ビット数及び対応する最大ビット数と、任意の連続するグラニュールの処理に必要な最小プロセッサ・サイクル数及び対応する最大プロセッサ・サイクル数と、所定の時間間隔においてプロセッサにより読み取られるグラニュール数と、を用いて、ＰＣＭサンプルの再生速度を持続させる最小プロセッサ周波数を決定するように構成された内部バッファ及び再生バッファとを備え、
前記異なるオーディオ周波数レンジのそれぞれは、ＡＭオーディオ品質、ＦＭオーディオ品質及びＣＤオーディオ品質のうちの１つに対応する周波数レンジを少なくとも含み、
前記オーディオ・デコーダは、ソフトウェアを用いて実装されるものであり、装置は更に、前記オーディオ・デコーダを実行するように構成されているプロセッサを備え、
前記オーディオ・デコーダは、ハフマン復号を前記オーディオ・クリップ全体に対して実行するように構成され、前記プロセッサは更に、前記複数の異なるオーディオ品質レベルのうちの前記選択された一つのオーディオ品質レベルに従って、前記ハフマン復号されたオーディオから前記ＰＣＭサンプルを生成するように構成されている
装置。
【請求項２】
請求項１に記載の装置において、前記オーディオ・デコーダに結合されているキーパッドであって、前記ユーザにより選択可能な複数の前記オーディオ品質レベルのうちの前記選択された一つのオーディオ品質レベルを選択できるように構成されているキーパッドを更に備える装置。
【請求項３】
請求項１又は２に記載の装置において、前記プロセッサは更に、前記異なるオーディオ周波数レンジそれぞれに対して異なる電力を消費する装置。
【請求項４】
請求項１乃至３のいずれか一項に記載の装置において、前記オーディオ周波数レンジの各々は、前記プロセッサが実行されるべき周波数を定める装置。
【請求項５】
請求項１乃至４のいずれか一項に記載の装置において、当該装置は電池式である装置。
【請求項６】
請求項１乃至５のいずれか一項に記載の装置において、当該装置は携帯オーディオ・プレーヤ、携帯電話又は携帯情報端末のいずれか一つである装置。
【請求項７】
オーディオ・デコーダが、第１のオーディオ周波数レンジに対応する第１のオーディオ品質レベル、又は前記第１のオーディオ周波数レンジとは異なる第２のオーディオ周波数レンジに対応する第２のオーディオ品質レベルの選択を受けるステップと、
前記オーディオ・デコーダが、前記選択に基づいて、前記第１のオーディオ周波数レンジ内の第１のオーディオ・クリップの部分、又は前記第２のオーディオ周波数レンジ内の第２のオーディオ・クリップの部分を復号するステップと、
前記第１のオーディオ・クリップ又は前記第２のオーディオ・クリップの前記復号された部分を出力するステップと、
内部バッファ及び再生バッファが、入力されるビットレートと、オーディオ・ビット・ストリームにおける任意の連続するグラニュールを構成する最小ビット数及び対応する最大ビット数と、任意の連続するグラニュールの処理に必要な最小プロセッサ・サイクル数及び対応する最大プロセッサ・サイクル数と、所定の時間間隔においてプロセッサにより読み取られるグラニュール数とを用いて、ＰＣＭサンプルの再生速度を持続させる最小プロセッサ周波数を決定するステップと
を含み、
前記第１のオーディオ周波数レンジ及び第２のオーディオ周波数レンジのそれぞれは、ＡＭオーディオ品質、ＦＭオーディオ品質及びＣＤオーディオ品質のうちの１つに対応する周波数レンジを少なくとも含み、
前記第１のオーディオ周波数レンジ内の前記第１のオーディオ・クリップの部分を復号する前記ステップ及び前記第２のオーディオ周波数レンジ内の前記第２のオーディオ・クリップの部分を復号する前記ステップの双方、又はいずれか一方のステップは、プロセッサが前記オーディオ・デコーダを実装するために用いられるソフトウェアを実行するステップを含み、
前記第１のオーディオ周波数レンジ内の前記第１のオーディオ・クリップの部分を復号する前記ステップ及び前記第２のオーディオ周波数レンジ内の前記第２のオーディオ・クリップの部分を復号する前記ステップの双方、又はいずれか一方のステップは、前記オーディオ・デコーダが、前記第１又は第２のオーディオ・クリップ全体に対してハフマン復号するステップと、前記第１及び第２のオーディオ品質レベルのうちの前記選択されたオーディオ品質レベルに従って、前記ハフマン復号されたオーディオから前記ＰＣＭサンプルを生成するステップとを含む
方法。
【請求項８】
請求項７に記載の方法において、前記第１及び第２のオーディオ周波数レンジの各々は、前記プロセッサが実行されるべき周波数を定める方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、マルチメディア・アプリケーションにおける低電力復号に関する。具体的には、オーディオ・データを復号するための方法と装置、及びオーディオ・データを復号するためのコンピュータ・プログラムを記録しているコンピュータ読取り可能媒体を含むコンピュータ・プログラム・プロダクトに関する。
【背景技術】
【０００２】
携帯電話、携帯情報端末（ＰＤＡ）及び携帯オーディオ・プレーヤ等の携帯用コンシューマ電子機器の多くは、内蔵式のコンピュータ・システムを備えることがますます増えている。これらの内蔵式コンピュータ・システムは、典型的には、汎用コンピュータ・ハードウェア・プラットフォームまたはアーキテクチャ・テンプレートに従って設定される。これらのコンシューマ電子機器間の唯一の相違点は、通常は、特定の機器上で実行されているソフトウェア・アプリケーションである。さらに、幾つかの異なる機能性を集めて１つの機器にすることも増えている。例えば、携帯電話の中には、情報端末（ＰＤＡ）及び／または携帯オーディオ・プレーヤとして動作するものもある。従って、携帯用内蔵式コンピュータ・システムの分野における焦点は、異なるアプリケーションのための専用ハードウェアではなく、異なる機能性の適切なソフトウェア実装へと移ってきた。
【０００３】
このような携帯用機器にとって、携帯用機器に内蔵されるコンピュータ・システムの電力消費は、おそらくは、ハードウェア及びソフトウェアの双方の設計において最も重要な制約である。携帯用機器に内蔵されるコンピュータ・システムの電力消費を最小限に抑える１つの周知方法は、内蔵されるコンピュータ・システムのプロセッサの電圧及び周波数（即ち、クロック周波数）をマルチメディア・ストリームの処理に必要な可変ワークロードに応じて動的にスケーリングするというものである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
携帯用機器に内蔵されるコンピュータ・システムの電力消費を最小限に抑える別の周知方法は、バッファを使用してマルチメディア・ストリームを平坦化しかつ異なる処理速度を有する２つの構成成分を分離するというものである。これは、内蔵プロセッサが周期的にオフ切換されることを有効化し、またはプロセッサがより低い周波数で実行されることを有効化し、これにより、エネルギーを節約する。また、マルチメディア・アプリケーションに関連づけられるサービス品質（ＱｏＳ）要件を維持すると同時に内蔵式コンピュータ・システムの電力消費を最小限に抑えるという課題に対処する既知のスケジューリング方法も幾つか存在する。
【０００５】
ほとんどの知覚オーディオ・コーダ／デコーダ（即ち、コーデック）は、少なくとも高いビットレートにおいてトランスペアレントなオーディオ品質を達成するように設計される。ＭＰ３等の高品質オーディオ・コーデックの周波数レンジは、約２０ｋＨｚまでである。しかしながら大部分の大人は、高齢者であれば特に、１６ｋＨｚより上の周波数成分をほとんど聞きとることができない。ＭＰ３デコーダ等の標準デコーダは、聴力損失の有無に関わらず、個々のユーザの聴力の能力を考慮することなく、入力されるビット・ストリーム内の全てを単に復号する。その結果、関係のない計算量は多大なものとなり、よって、携帯用コンピューティング・デバイスまたはこのようなデコーダを使用する類似デバイスの電池電力が浪費される。
本発明の目的は、既存装置における１つまたは複数の欠点を実質的に克服する、または少なくとも改善することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様によれば、オーディオ・クリップを表すオーディオ・データを復号する方法が提供されていて、上記方法は、
予め決められた数の周波数帯のうちの１つを選択するステップと、
上記選択される周波数帯に従って上記オーディオ・クリップを表すオーディオ・データの一部を復号するステップと、
を含み、
上記オーディオ・クリップを表すオーディオ・データの残りの部分は放棄され、かつ、
上記復号されるオーディオ・データの部分を上記復号されるオーディオ・データを表すサンプル・データに変換するステップと、を含む。
【０００７】
本発明の別の態様によれば、オーディオ・クリップを表すオーディオ・データを復号するためのデコーダが提供されていて、上記方法は、
予め決められた数の周波数帯のうちの１つを選択するための復号レベル選択手段と、
上記選択される周波数帯に従って上記オーディオ・クリップを表すオーディオ・データの一部を復号するための復号手段と、
を含み、
上記オーディオ・クリップを表すオーディオ・データの残りの部分は放棄され、かつ、
上記復号されるオーディオ・データの部分を上記復号されるオーディオ・データを表すサンプル・データに変換するためのデータ変換手段と、を含む。
【０００８】
本発明のさらに別の態様によれば、携帯用電子デバイスが提供されていて、上記デバイスは、
予め決められた数の周波数帯のうちの１つを選択するための復号レベル選択手段と、
上記選択される周波数帯に従って上記オーディオ・クリップを表すオーディオ・データの一部を復号するための復号手段と、
を備え、
上記オーディオ・クリップを表すオーディオ・データの残りの部分は放棄され、かつ、
上記復号されるオーディオ・データの部分を上記復号されるオーディオ・データを表すサンプル・データに変換するためのデータ変換手段と、を備える。
【０００９】
また、本発明の他の態様も開示されている。
【発明を実施するための最良の形態】
【００１０】
次に、添付の図面を参照し、本発明の１つまたは複数の実施形態について説明する。
【００１１】
添付の図面における任意の１つまたはそれ以上において、同じ引用符号を有するステップ及び／または特徴が言及される場合、これらのステップ及び／または特徴は、反対の意図が明らかでない限り、本明細書の目的に沿って同じ機能または動作を有する。
【００１２】
「背景」部分に記述されている議論及び先に述べた先行技術装置に関する議論は、これらの個々の刊行物及び／または使用法を通じて公知となっている文書またはデバイスの議論に関連するものであるということも注意すべきである。しかしながら、このような議論によって、本件の発明者または特許出願者は、こうした文書またはデバイスを多少なりとも技術上共通の一般的知識の一部を形成するものとして表現している、と解釈されるべきではない。
【００１３】
ほとんどの知覚オーディオ・コーダ／デコーダ（即ち、コーデック）は、少なくとも高いビットレートにおいてトランスペアレントなオーディオ品質を達成するように設計される。ＭＰ３等の高品質オーディオ・コーデックの周波数レンジは、約２０ｋＨｚまでである。しかしながら大部分の大人は、高齢者であれば特に、１６ｋＨｚより上の周波数成分をほとんど聞きとることができない。従って、知覚的に見当はずれの周波数成分を決定することは不必要である。さらに、ほとんどの人が聞き取れる広い周波数帯内では、帯域によって、他の帯域より音が大きく印象に残るものがある。概して、高い周波数帯域は、知覚的には低い周波数帯域ほど重要ではない。幾分かの高周波数成分が復号されずに残ったとしても、知覚的な低下はほとんどない。ＭＰ３デコーダ等の標準デコーダは、聴力損失の有無に関わらず、個々のユーザの聴力の能力を考慮することなく、入力されるビット・ストリーム内の全てを単に復号する。その結果、関係のない計算量は多大なものとなり、よって、携帯用コンピューティング・デバイスまたはこのようなデコーダを使用する類似デバイスの電池電力が浪費される。
【００１４】
以下、図１から図８までを参照して、好適な実施形態により、コード化されたビット・ストリームの形式のオーディオ・データを復号する方法８００について説明する。本明細書において説明する好適な方法８００の原理は、既存のほとんどのオーディオ・フォーマットに対して一般的な適用可能性を有する。但し、説明を容易にするために、好適な方法８００のステップを、ＭＰ３オーディオ・フォーマットとしても知られるＭＰＥＧ１、第３層のオーディオ・フォーマットに関連して説明する。ＭＰ３は非スケーラブルなコーデックであり、広範に普及している。方法８００は、特に、ＭＰ３等の非スケーラブル・コーデックに、またアドバンスト・オーディオ・コーディング（ＡＡＣ）にも適用可能である。非スケーラブルなコーデックは課せられるワークロードが低く、典型的には基層のみが復号されてエンハンスメント層は無視されるＭＰＥＧ−４のスケーラブル・コーデック等のスケーラブル・コーデックより人気が高い。
【００１５】
方法８００は、所望されるオーディオ品質に関する個々のユーザの固有の判断を組み込み、ユーザが複数の出力品質レベル間を切換できるようにする。このような各レベルは各々異なるレベルの電力消費に、従って電池の寿命に関連づけられる。ここで説明している方法８００は、異なるレベルに関連している感知される出力品質の差が比較的少ない、という意味において、知覚意識型である。但し、コード化されたビット・ストリームの形式のオーディオ・クリップ等の、この同じオーディオ・データをより低い出力品質において復号することは、携帯用機器に内蔵されるプロセッサが消費するエネルギーを大幅に節約することになる。
【００１６】
およそオーディオ・コーデックの知覚品質を評価するためには、厳密な主観的聴き取りテストが実行される。これらのテストは、通常、聴力損失のない、専門家である聞き手またはパネラーが高品質のヘッドホンを使用して、静かな環境において実行される。しかしながら、一般的なユーザにとっての現実の環境は、通常、これとはかなり異なる。まず、携帯オーディオ・プレーヤが、例えば家庭の居間におけるような静かな環境で使用されることは比較的まれである。むしろ、携帯オーディオ・プレーヤは、移動中及びバス、列車または飛行機の中等の様々な環境において、単純なイヤホンを用いて使用されることの方が遙かに一般的である。これらの相違には、必要とされるオーディオ品質に関して重要な含むところがある。
【００１７】
本発明者らが行った実験によれば、ほとんどのユーザにとって、騒がしい環境においてコンパクト・ディスク（ＣＤ）と周波数変調（ＦＭ）品質のオーディオとを区別することは困難である。このような環境では、ほとんどのユーザが少しぐらいの品質低下には寛大であるように思われる。方法８００は、ユーザがリスニング環境に合わせて復号プロファイルを変えることを有効化するが、標準ＭＰ３デコーダにはこれができない。
【００１８】
異なるアプリケーション及び信号は、異なる帯域を必要とする。例えば、物語を話すオーディオ・クリップに必要な帯域幅は、音楽クリップに比べて格段に少ない。方法８００は、ユーザが特定のサービス及び信号タイプに合わせて適切な復号プロファイルを選ぶことを可能にし、同じく、方法８００を使用する携帯用コンピューティング・デバイスの電池寿命を延ばす。方法８００は、ユーザが、オーディオ品質の僅かな低下（この低下は、特定のユーザには知覚できない程度のものである）によって、例えば携帯オーディオ・プレーヤの電池寿命を大幅に延ばすことができる、ということを承知の上で、電池寿命と復号されるオーディオ品質とのかね合いを制御することを可能にする。この特徴は、ユーザが、その聴能、リスニング環境及びサービス・タイプに従って、復号されるオーディオの容認できる品質レベルを調整することを可能にする。例えば、静かな環境では、ユーザは電力消費が増えても完璧なサウンド品質の方を求めるかもしれない。反対に、長距離飛行の間は、ユーザはオーディオ品質が少々低下しても、より長い電池寿命の方を好むかもしれない。
【００１９】
方法８００は、好適には、図１に示すもの等の電池式携帯用コンピューティング・デバイス１００（例えば、携帯オーディオ（またはマルチメディア）プレーヤ、携帯（マルチメディア）電話、ＰＤＡまたはこれらに類似するもの）を使用して実施される。図２から８までに示されるプロセスは、携帯用コンピューティング・デバイス１００内で実行されるソフトウェア・プログラム等のソフトウェアとして実装されてもよい。具体的には、方法８００の諸ステップは、携帯用コンピューティング・デバイス１００により実行されるソフトウェア内の命令によって実行される。命令は、各々が１つまたは複数の特定のタスクを実行するための１つまたは複数のソフトウェア・モジュールとして形成されてもよい。ソフトウェアは、第１の部分が方法８００を実行しかつ第２の部分が上記第１の部分とユーザとの間のユーザ・インタフェースを管理する、２つの別々の部分に分割されてもよい。ソフトウェアは、例えば、後述する格納デバイスを含むコンピュータ読取り可能媒体に格納されてもよい。ソフトウェアは、例えば、メーカーによってコンピュータ読取り可能媒体からシリアル・リンクを介して携帯用コンピューティング・デバイス１００へロードされ、次に携帯用コンピューティング・デバイス１００によって実行されてもよい。このようなソフトウェアを有する、またはコンピュータ・プログラムが記録されているコンピュータ読取り可能媒体は、コンピュータ・プログラム・プロダクトである。コンピュータ・システム１００におけるコンピュータ・プログラム・プロダクトの使用は、好適には、説明している方法８００を実装するための効果的な装置に影響を与える。
【００２０】
携帯用コンピューティング・デバイス１００は、少なくとも１つのプロセッサ・ユニット１０５と、例えば半導体ランダム・アクセス・メモリ（ＲＡＭ）及び読取り専用メモリ（ＲＯＭ）から形成されるメモリ・ユニット１０６とを含む。また、携帯用コンピューティング・デバイス１００は、キーパッド１０２と、液晶ディスプレイ（ＬＣＤ）等のディスプレイ１１４と、スピーカ１１７と、マイクロホン１１３とを備えてもよい。携帯用コンピューティング・デバイス１００は、好適には電池によって電力を供給される。トランシーバ・デバイス１１６は、携帯用コンピューティング・デバイス１００により、例えば無線通信チャネル１２１または他の機能媒体を介して接続可能な通信ネットワーク１２０（例えば、電気通信ネットワーク）を相手に通信し合うために使用される。携帯用コンピューティング・デバイス１００のコンポーネント１０５から１１７までは、典型的には、相互接続バス１０４を介して通信する。
【００２１】
典型的には、アプリケーション・プログラムはメモリ・デバイス１０６のＲＯＭに存在し、その実行中はプロセッサ１０５によって読取られ、かつ、制御される。さらに、ソフトウェアは、他のコンピュータ読取り可能媒体から携帯用コンピューティング・デバイス１００へロードされる場合もある。本明細書において使用している「コンピュータ読取り可能媒体」という用語は、命令及び／またはデータを実行及び／または処理するためにこれらを携帯用コンピューティング・デバイス１００へ供給することに関与する任意の格納または送信媒体を指す。
【００２２】
或いは、方法８００は、説明している方法８００の機能またはサブ機能を実行する１つまたは複数の集積回路を備える専用ハードウェア・ユニット内に実装されてもよい。
【００２３】
方法８００によれば、任意のオーディオ・クリップを復号するためにユーザにより選択される復号レベルは、プロセッサ１０５が実行されるべき周波数を決定する。多くの既知の動的な電圧／周波数スケーリング方法とは対照的に、方法８００は、プロセッサ１０５の電圧または周波数のランタイム・スケーリングを含まない。プロセッサ１０５が固定数の電圧−周波数動作点を有していれば、方法８００における復号レベルはこれらの動作点に一致するように同調されてもよい。
【００２４】
方法８００において、内部に実装されるオーディオ・デコーダ（例えば、ＭＰ３デコーダ）を含む携帯用コンピューティング・デバイス１００の周波数帯域幅は、復号レベルの数に等しい数のグループに仕切られる。これらのグループは、好適には、後に詳述するその知覚関連度に従って順序づけられる。復号に４つのレベル（即ち、レベル１から４まで）が存在すれば、最も高い知覚関連度を有する周波数帯域幅グループはレベル１に関連づけられてもよく、最も低い知覚関連度を有するグループはレベル４に関連づけられてもよい。ＭＰ３のケースにおける周波数帯域幅のこのような４つのレベルへの分割を下記の表１に示す。以下、表１の第２欄（即ち、復号されるサブバンドの指数）について説明する。
【００２５】
【表１】
0005576021.tif 000002
【００２６】
方法８００の諸ステップを実装するプロセッサ１０５は、「知覚意識型低電力ＭＰ３（ＰＬ−ＭＰ３）」デコーダと呼んでもよい。方法８００は、汎用電圧／周波数スケーラブル・プロセッサだけでなく、電圧／周波数スケーラビリティのない汎用プロセッサにも有用である。
【００２７】
また方法８００は、周波数スケーリングを許容せず完全なＭＰ３復号を実行するほど強力ではないプロセッサによって使用されてもよい。その場合、方法８００は、正規ＭＰ３ファイルを比較的低い品質で復号するために使用されてもよい。
【００２８】
方法８００は、プロセッサ１０５により供給される処理電力に依存して、ユーザが復号レベル（即ち、このような４レベルのうちの１つ）を選べるようにする。方法８００は、プロセッサ１０５により、ユーザが選ぶ復号レベルを基礎として実行される。各レベルは、異なるレベルの電力消費及び対応する出力オーディオ品質レベルに関連づけられる。プロセッサ１０５は、コード化されたビット・ストリーム形式のオーディオ・データを入力として採用し、図２に示すように、パルス・コード変調（ＰＣＭ）サンプル形式の復号されたデータ・ストリームを生成する。方法８００は、ネットワークからダウンロードされつつある、または流されつつあるコード化されたビット・ストリームを復号するために適用されてもよい。また、方法８００は、例えば携帯用コンピューティング・デバイス１００のメモリ１０６内に格納されるコード化されたビット・ストリーム形式のオーディオ・クリップを復号するために使用されてもよい。
【００２９】
コード化されたビット・ストリーム形式のオーディオ・クリップがレベル１で復号される場合は、このレベルに関連づけられる０から５５１２．５Ｈｚまでの周波数レンジのみが復号される。より高いレベル（即ち、レベル２から３まで）では、より大きい周波数レンジが復号され、最後にレベル４では、周波数レンジ全体が復号される。方法８００に関連づけられる計算ワークロードは復号レベルに伴ってほぼ直線的にスケーリングするが、先に述べたように、より低い周波数レンジは、より高い周波数レンジに比べて格段に高い知覚関連度を有する。従って、オーディオ・クリップがより低いレベルで復号される場合には、出力品質のほんの僅かな部分を犠牲にするだけで、プロセッサ１０５は、より高い復号レベルに比べて遙かに低い周波数（即ち、クロック周波数）及び電圧で実行されることが可能である。
【００３０】
近年、オーディオ・デコーダのハードウェア実装が幾つか開発されている。これらのハードウェア実装の中には、超低電力消費用に設計されている有線デコーダ・チップを含むものがある。このようなデコーダ・チップの一例として、Ａｔｍｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ（登録商標）の超低電力ＭＰ３デコーダがあるが、これは、特に携帯電話におけるＭＰ３リング・トーンを扱うために設計されたものである。
【００３１】
方法８００は、方法８００の諸ステップを実装するソフトウェアを実行するプロセッサ１０５の電力消費を低減する。方法８００は、特定のデコーダ部分を実装する任意の特定のハードウェア実装または任意のコプロセッサに依存しない。方法８００は、全て携帯オーディオ／ビデオ・プレーヤとして使用され得るＰＤＡ、携帯オーディオ・プレーヤまたは携帯電話及び強力な電圧及び周波数スケーラブル・プロセッサを含むこれらに類似するものによる使用に極めて有用である。
【００３２】
他の多くのマルチメディア・ビット・ストリームのように、ＭＰ３ビット・ストリームは、図３に示すようなフレーム構造を有する。ＭＰ３ビット・ストリームのフレーム３００は、ヘッダ３０１と、任意選択のエラー防止用ＣＲＣ３０２と、サイド情報３０３としてコード化される制御ビット集合と、これに続く、ＭＰ３における基本コーディング・ユニットである２つのグラニュール（即ち、グラニュール０及びグラニュール２）から成るメイン・データ３０４とを含む。ステレオ・オーディオの場合、各グラニュール（例えば、グラニュール１）は、スケール係数３０５及びハフマン・コードのスペクトル・データ３０６から成る２つのチャネルのためのデータを含む。また、各フレームの終わりに、何らかの補助データを有することも可能である。方法８００は、このようなＭＰ３ビット・ストリームをフレーム毎に、またはグラニュール毎に処理する。
【００３３】
次に、図８を参照して、オーディオ・データを復号する方法８００について説明する。方法８００は、ＲＯＭ１０６に常駐しかつその実行中はプロセッサ１０５によって制御されているソフトウェアとして実装されてもよい。方法８００を実装する携帯用コンピューティング・デバイス１００は、図４に示すように、標準ＭＰ３オーディオ・デコーダ４００に従って構成されてもよい。方法８００のステップは各々、別々のソフトウェア・モジュールを使用して実装されてもよい。
【００３４】
方法８００は、表１の４つの復号レベル（即ち、レベル１から４まで）のうちの１つが選択される第１のステップ８０１において開始される。例えば、携帯用コンピューティング・デバイス１００のユーザは、キーパッド１０２を使用して４つの復号レベルのうちの１つを選択してもよい。プロセッサ１０５は、メモリ１０６のＲＡＭ内に、４つの復号レベルのうちのどれが選択されているかを示すフラグを格納してもよい。
【００３５】
次のステップ８０２では、プロセッサ１０５は、コード化された入力ビット・ストリーム形式のデータをパースし、上記データを、メモリ１０６内に構成される内部バッファ５００（図５参照）内に格納する。内部バッファ５００については、後に詳述する。次に、ステップ８０３において、プロセッサ１０５はハフマン復号を使用して、格納されたデータのサイド情報を復号する。ステップ８０３は、図４に示すように、標準ＭＰ３デコーダ４００のハフマン復号ソフトウェア・モジュール４０１等のソフトウェア・モジュールを使用して実行されてもよい。
【００３６】
方法８００は次のステップ８０４へ続き、ここでプロセッサ１０５は、復号されたオーディオ・データの周波数帯域を、ステップ８０１で選択された復号レベルに従ってＰＣＭオーディオ・サンプルへ変換する。例えば、ステップ８０１でレベル１が選択されていれば、ステップ８０４において、０から５５１２．５Ｈｚまでの周波数レンジ内の復号されたオーディオ・データがＰＣＭオーディオ・サンプルへ変換される。ステップ８０４は、図４に示すような標準ＭＰ３デコーダ４００の逆量子化ソフトウェア・モジュール４０２、逆修正離散コサイン変換（ＩＭＤＣＴ）ソフトウェア・モジュール４０３及び多相合成ソフトウェア・モジュール４０４等のソフトウェア・モジュールによって実行されてもよい。
【００３７】
方法８００は次のステップ８０５で完了し、ここで、プロセッサ１０５はＰＣＭオーディオ・サンプルをメモリ１０６内に構成される再生バッファ５０１（図５参照）へ書き込む。この再生バッファ５０１は、次に、プロセッサ１０５によって何らかの指定された速度で読み取られ、スピーカ１１７を介してオーディオとして出力されてもよい。
【００３８】
最も高いワークロードがかかる標準ＭＰ３デコーダ４００の３つのモジュールは、逆量子化モジュール４０２、ＩＭＤＣＴモジュール４０３及び多相合成フィルタバンク・モジュール４０４である。伝統的に、標準ＭＰ３デコーダ４００は、最も高い計算ワークロードに対応する周波数帯域全体を復号する。図４に示すように、好適な方法８００では、復号レベル（即ち、レベル１から３まで）に依存して、逆量子化モジュール４０２、ＩＭＤＣＴモジュール４０３及び多相合成フィルタバンク・モジュール４０３は部分的な周波数レンジしか処理せず、これにより、計算コストを下げる。
【００３９】
メモリ及び／または計算効率的実装に使用される既知の最適化方法には、刊行物「ゼロ計算の非実行：効率的なホームスパンＭＰＥＧオーディオ第ＩＩ層復号及び最適化方針」２００４年ＡＣＭマルチメディア会報、２００４年１０月、においてＤｅ  Ｓｍｅｔ等が説明している「Ｄｏ  Ｎｏｔ  Ｚｅｒｏ−Ｐｕｔｅ」アルゴリズム等、幾つかの方法が存在する。「Ｄｏ  Ｎｏｔ  Ｚｅｒｏ−Ｐｕｔｅ」アルゴリズムは、無駄なゼロ値データの処理で浪費されている高コストの計算サイクルをなくすることにより、ＭＰＥＧ１第ＩＩ層における多相フィルタバンク計算を最適化しようとするものである。本発明者らは、この種のアプローチを冗長計算を排除するものとして分類している。これに対して、方法８００は、異なる知覚関連度を有する周波数帯域に従ってワークロードを分割し、ユーザが無関係の計算をなくすることができるようにする。
【００４０】
以下、計算上最も要求の多い３つのモジュール、即ち、逆量子化モジュール４０２、ＩＭＤＣＴモジュール４０３及び多相合成フィルタバンク・モジュール４０４におけるワークロードの低減を、式（１）から（４）で表現する。
【００４１】
１つのグラニュールの逆量子化のためにプロセッサ１０５により実行されなければならない計算（ロング・ブロックの場合）は、次のような式（１）で表される。
【００４２】
0005576021.tif 000003
【００４３】
但し、ｉｓｉは逆量子化されているｉ番目の入力係数であり、ｓｉｇｎ（ｉｓｉ）はｉｓｉの符号であり、ｇｌｏｂａｌ＿ｇａｉｎはグラニュールｇｒ全体の対数型量子化器のステップ・サイズである。Ｓｃａｌｅｆａｃ＿ｍｕｌｔｉｐｌｉｅｒは、スケール係数帯の乗算器である。Ｓｃａｌｅｆａｃ＿ｌは、グラニュールｇｒのチャネルｃｈのスケール係数帯ｓｆｂの対数量子化係数である。ｐｒｅｆｌａｇは、量子化値の追加的な高周波数増幅のフラグである。ｐｒｅｔａｂは、スケール係数帯のプリエンファシス表である。ｘｒｉは、ｉ番目の逆量子化係数である。
【００４４】
方法８００の諸ステップを実行しない標準ＭＰ３デコーダ４００の場合、ｉ＝０，１，．．．，Ｎ−１，Ｎ＝５７６，であるが、方法８００の諸ステップを実行するデコーダ４００のプロセッサ１０５の場合、ｉ＝０，１，．．．，ｓｂｌ＊１８−１である。例えば、レベル１のレンジは、ｉ＝０，１，．．．，１４３まで減る。
【００４５】
ＩＭＤＣＴモジュール４０３に必要な計算は、式（２）に従って次のように表すことができる。
【００４６】
0005576021.tif 000004
【００４７】
但し、ｉ＝０，１，．．．，ｎ−１，ｎ＝３６，であり、ＸｋはＩＭＤＣＴ演算のｋ番目の入力係数であり、ｘｉはｉ番目の出力係数である。方法８００を実行しない標準ＭＰ３デコーダ４００の場合、３２サブバンド全体が決定されるが、好適な方法８００では、
ｓｂｌ≦３２サブバンドしか計算されない。
【００４８】
多相合成フィルタバンク・モジュール４０４の行列演算に必要な計算は、下記式のように表される。
【００４９】
0005576021.tif 000005
【００５０】
方法８００によれば、式（３）は、次のような式（４）になる。
【００５１】
0005576021.tif 000006
【００５２】
但し、Ｓｋは多相合成演算のｋ番目の入力係数であり、Ｖｉはｉ番目の出力係数である。式（４）は、方法８００を実装するプロセッサ１０５の計算ワークロードが帯域幅に伴って線形的に低減することを示す。
【００５３】
合計計算ワークロードの僅かな比率（本件の例では４％）しか必要としないステップ８０２による（即ち、ハフマン復号モジュール４０１が実行するような）ビット・ストリームの解凍の後は、後続ステップ８０４に関連づけられる（即ち、モジュール４０２、４０３及び４０４が実行するような）ワークロードを分割することができる。細分性は、ＭＰＥＧ１オーディオ標準に規定されている３２サブバンドの全てに対応するものが選択されてもよい。しかしながら、簡略にするために、好適な方法８００では、これらの３２サブバンドは、図４及び表１に示すように、各グループが１つの復号レベルに対応する僅か４つのグループに分割される。
【００５４】
先に述べたように、復号レベル１は、基層として定義することのできる最も低い周波数帯域幅（０から５．５ｋＨｚまで）をカバーする。基層は合計帯域幅の４分の１しか占有せず、オーディオ・クリップの復号においてプロセッサ１０５により実行される合計計算ワークロードの約４分の１に貢献するだけであるが、知覚的に最も関連のある周波数帯域はこの基層である。ニュースやスポーツ解説のようなサービスにとっては、表１のレベル１に対応する出力オーディオ品質で十分であることは確実である。レベル２は１１ｋＨｚの帯域幅をカバーしてほぼＦＭ無線品質に達し、特に騒がしい環境においては音楽クリップをも十分に聴ける性能を有する。レベル３は１６．５ｋＨｚの帯域幅をカバーし、ＣＤ品質に極めて近い出力を生成する。最後に、レベル４は、２２ｋＨｚの全帯域幅を復号する標準ＭＰ３デコーダに対応する。
【００５５】
レベル１、２及び３は異なる周波数成分を表すデータの一部しか処理しないが、レベル４は全データを処理し、よって計算コストは高まる。レベル３及び４に対応するオーディオ品質は、騒がしい環境ではほとんど区別できないが、実質的には異なる電力消費レベルに関連づけられる。
【００５６】
４つの周波数帯の各々はほぼ同じワークロードを必要とするが、全体的なＱｏＳに対する個々の知覚的貢献度は大いに異なる。概して、低い周波数帯（即ちレベル１）は、高位のどの周波数帯よりも遙かに重要である。
【００５７】
方法８００によれば、任意の特定の復号レベルにおいて、プロセッサ１０５がオーディオ・データを復号するための最低動作周波数を決定することができる。次には、計算された周波数をプロセッサ１０５による電力消費の推定に使用することができ、１つのグラニュールを構成するビット数の可変性、及び任意のグラニュールを処理する際のプロセッサ・サイクル要件の可変性も考慮される。この可変性を計上することにより、携帯用コンピューティング・デバイス１００の再生遅延が変更される際のプロセッサ１０５の周波数要件の変化を決定することができる。
【００５８】
先に述べたように、かつ図５に示すように、プロセッサ１０５は、メモリ１０６内に構成されるサイズｂの内部バッファ５００を使用してオーディオ・ビット・ストリーム（例えば、オーディオ・クリップ）形式のオーディオ・データを復号する。復号されたオーディオ・ストリームはＰＣＭサンプルのシーケンスであり、メモリ１０６内に構成されるサイズＢの再生バッファ５０１へ書き込まれる。この再生バッファ５０１は、プロセッサ１０５により、何らかの指定された速度で読み取られる。
【００５９】
復号されるべき入力ビット・ストリームは、ｒビット／秒の定速で内部バッファ５００へ供給されるものとする。ＭＰ３フレーム構造において１つのグラニュールを構成するビット数は、可変である。１グラニュール当たりの最大ビット数は、１つのグラニュールにおける最小ビット数のほぼ３倍であり、この最低数は約１２００ビットである。この可変性は、２つの関数φｌ（ｋ）及びφｕ（ｋ）を使用して特徴づけることができ、φｌ（ｋ）はオーディオ・ビット・ストリームにおける任意の連続するｋ個のグラニュールを構成する最小ビット数を示し、φｕ（ｋ）は対応する最大ビット数を示す。φｌ（ｋ）及びφｕ（ｋ）は、処理されるべきオーディオ・クリップを表現するオーディオ・クリップ数を分析することによって得ることができる。
【００６０】
次に、復号されるべきオーディオ・クリップを所与として、ｘ（ｔ）は時間間隔［０，ｔ］において再生バッファ５０１に着信するグラニュールの数を示すものとする。１つのグラニュールを構成するビット数は可変性であることから、関数ｘ（ｔ）はオーディオ・クリップに依存する。関数φｌ（ｋ）及びφｕ（ｋ）と同様に、グラニュールの着信プロセスの可変性を内部バッファ５０１内へ制限する２つの関数αｌ（Δ）及びαｕ（Δ）が使用されてもよい。２つの関数αｌ（Δ）及びαｕ（Δ）は、下記のように定義される。
【００６１】
0005576021.tif 000007
【００６２】
但し、αｌ（Δ）は長さΔの任意の時間間隔において内部バッファ５０１に着信することのできるグラニュールの最低数を示し、αｕ（Δ）は対応する最大数を示す。
【００６３】
関数φｌ（ｋ）及びφｕ（ｋ）が与えられると、以下の解釈により、φ１／ｌ（ｎ）及びφ１／ｕ（ｎ）で示されるこれらの２関数の擬似逆数を決定することが可能である。これらの関数は共に、ビット数ｎを引数として用いる。φ１／ｌ（ｎ）は、ｎビットで構成され得るグラニュールの最大数を返し、φ１／ｕ（ｎ）はｎビットで構成され得るグラニュールの最低数を返す。入力ビット・ストリームは内部バッファ５０１にｒビット／秒の定速で到達することから、αｌ（Δ）は、下記式で定義することができる。
【００６４】
0005576021.tif 000008
【００６５】
同じく、任意のグラニュールの処理に必要なプロセッサ・サイクル数も可変であることから、この可変性は、２つの関数γｌ（ｋ）及びγｕ（ｋ）を使用して捕捉することができる。関数γｌ（ｋ）及びγｕ（ｋ）は共に、グラニュール数ｋを引数として用いる。γｌ（ｋ）は、任意の連続するｋ個のグラニュールの処理に必要な最小プロセッサ・サイクル数を返し、γｕ（ｋ）は対応する最大プロセッサ・サイクル数を返す。図６は、持続時間約３０秒における、ビットレート１６０キロビット／秒のオーディオ・クリップに対応するプロセッサ１０５のグラニュール当たりのサイクル要件を示す。図６は、表１の４つの復号レベルに対応するプロセッサ・サイクル要件を示している。図６において注目すべきことは、（ｉ）復号レベルの上昇に伴うプロセッサ・サイクル要件の増大、（ｉｉ）任意の復号レベルのグラニュール当たりのプロセッサ・サイクル要件の可変性、の２点である。
【００６６】
再生バッファ５０１は、ｄ秒の再生遅延（または、バッファ時間）の後、プロセッサ１０５によりｃ個のＰＣＭサンプル／秒という定速で読み取られるものとする。一般に、ｃは、各チャネルにつき４４．１Ｋ個のＰＣＭサンプル／秒であり（故に、ステレオ出力では４４．１Ｋ×２個のＰＣＭサンプル／秒）、ｄは０．５秒から２秒までの値に設定することができる。グラニュール当たりのＰＣＭサンプル数がｓ（５７６×２に等しい）であれば、再生速度はｃ／ｓグラニュール／秒に等しい。関数Ｃ（ｔ）が時間間隔［０，ｔ］においてプロセッサ１０５により読み取られるグラニュール数を表すものであれば、下記のようになる。
【００６７】
0005576021.tif 000009
【００６８】
ここで、入力されるビットレートｒ、復号されるべき可能オーディオ・クリップ集合を特徴づける関数φｌ（ｋ）、φｕ（ｋ）、γｌ（ｋ）及びγｕ（ｋ）及び関数Ｃ（ｔ）を所与とすれば、ｃ個のＰＣＭサンプル／秒の再生速度を持続させる最小プロセッサ周波数ｆを決定することができる。これは、再生バッファ５０１が絶対にアンダーフローしないことを要求することに等しい。ｙ（ｔ）が時間間隔［０，ｔ］において再生バッファ５０１へ書き込まれる合計グラニュール数を示すものであれば、これは、全てのｔ≧０についてｙ（ｔ）≧Ｃ（ｔ）であることを要求することに等しい。
【００６９】
プロセッサ１０５により周波数ｆで提供されるサービスを、関数β（Δ）で表すものとする。αｌ（Δ）と同様に、β（Δ）は、長さΔの任意の時間間隔において（内部バッファ５００において利用可能であれば）確実に処理されるべきグラニュールの最低数を表す。従って、各のように示すことができる。
【００７０】
0005576021.tif 000010
【００７１】
上記プラス−マイナス畳み込み演算子は、２つの関数ｆ及びｇに関して、下記のように定義される。
【００７２】
0005576021.tif 000011
【００７３】
故に、制約ｙ（ｔ）≧Ｃ（ｔ），ｔ≧０が成り立つためには、下記の不等式が成り立てばよい。
【００７４】
0005576021.tif 000012
【００７５】
0005576021.tif 000013
【００７６】
0005576021.tif 000014
この結果を不等式（１）に使用すると、β（ｔ）を下記のように決定することができる。
【００７７】
0005576021.tif 000015
【００７８】
但し、β（ｔ）は、長さｔの任意の時間間隔において処理される必要のあるグラニュール数に関して定義される。プロセッサ・サイクルに関する等価サービスを得るためには、先に定義された関数γｕ（ｋ）を使用することができる。再生バッファ５０１が絶対にアンダーフローしないことを確実にすべくプロセッサ１０５により保証されなければならない最小サービスは、下記式によって、全ｔ≧０に関するプロセッサ・サイクル数で与えられる。
【００７９】
0005576021.tif 000016
【００８０】
故に、指定された再生速度を持続するためにプロセッサ１０５が実行すべき最低周波数は、下記式によって与えられる。
【００８１】
0005576021.tif 000017
【００８２】
任意の動作点に対応して電圧がクロック周波数に比例する電圧／周波数スケーラブル・プロセッサを想定した場合、持続時間ｔのオーディオ・クリップを復号する間のエネルギー消費はｆ３ｔに比例する。
【００８３】
図７は、表１の復号レベルに対応する長さｔの任意の間隔において必要とされるプロセッサ・サイクル数を示す。図７から、各復号レベルが最低（定）周波数ｆに関連づけられることが分かる。復号レベルが上がると、関連するｆ値も増加する。
【００８４】
プロセッサ１０５は、何らかの復号レベルに対応するｆプロセッサ・サイクル／秒に等しい定周波数で実行されるものとする。内部及び再生バッファ５００及び５０１は、これらのバッファが絶対にオーバーフローしないことを保証する最小サイズを決定することができ、γ１／ｌ（ｎ）及びγ１／ｕ（ｎ）で示される２つの関数γｌ及びγｕの擬似逆数が各々決定されてもよい。これらの関数γｌ及びγｕは共に、プロセッサ・サイクル数ｎを引数として用いる。γ１／ｌ（ｎ）は、ｎプロセッサ・サイクルを使用して処理され得るグラニュールの最大数を返し、γ１／ｕ（ｎ）は対応する最小数を返す。
【００８５】
長さΔの任意の時間間隔において処理されることが保証されるグラニュールの最低数は、プロセッサ１０５が周波数ｆで実行されるとき、γ１／ｕ（ｆ△）に等しい。内部バッファ５００が絶対にオーバーフローしないような内部バッファ５００の最小サイズｂは、下記式の数のグラニュールによって与えられることは明らかであると思われる。
【００８６】
0005576021.tif 000018
【００８７】
同様に、長さΔの任意の時間間隔において処理され得るグラニュールの最大数は、γ１／ｌ（ｆ△）によって与えられる。再生バッファ５０１におけるグラニュールの着信プロセスは、下記の関数によって上限とされる。
【００８８】
0005576021.tif 000019
【００８９】
但し、上記関数は、長さΔの任意の時間間隔において再生バッファ５０１に書き込まれ得るグラニュールの最大数である。この時点で、バッファ５０１が絶対にオーバーフローしないことを保証するバッファ５０１の最小サイズ（即ち、Ｂ）が下記式のグラニュールに等しいことは明らかである。
【００９０】
0005576021.tif 000020
ビット数及びＰＣＭサンプル数に関連するサイズｂ及びＢは、各々φｕ（ｂ）及びｓＢである。
【００９１】
ある実装においては、プロセッサ１０５は、復号レベルが下記の表２に従って設定されるＩｎｔｅｌ  ＸＳｃａｌｅ  ４００ＭＨｚプロセッサであってもよい。
【００９２】
【表２】
0005576021.tif 000021
【００９３】
上述の好適な方法は、特定の制御フローを含む。本好適な方法には、本発明の精神または範囲を逸脱することなく異なる制御フローを使用する他の変形例が多く存在する。さらに、本好適な方法ステップのうちの１つまたはそれ以上は、連続的でなく並行して実行されてもよい。
【産業上の利用可能性】
【００９４】
上述の内容から、説明した装置がコンピュータ及びデータ処理産業に適用可能であることは明らかである。
【００９５】
これまでの説明は、本発明の幾つかの実施形態に関して行ったものに過ぎず、本発明に対しては、本発明の精神及び範囲を逸脱することなく修正及び／または変更を行うことができ、実施形態は例示的なものであって、限定的なものではない。
【００９６】
（オーストラリア出願のみ）
本明細書の文脈において、「を備える」という用語は「を主に、但し必ずしも唯一ではなく含む」または「を有する」または「を含む」を意味し、「からのみ成る」を意味しない。「を備える（comprising）」という用語の変形としての語尾変化した「を備える（comprise, comprises）」は、相応に変わる意味を有する。
【図面の簡単な説明】
【００９７】
【図１】説明する実施形態を実施し得る基礎を成すプロセッサを備える携帯用コンピューティング・デバイスを示す略ブロック図である。
【図２】コード化されたビット・ストリームを入力として採用し、かつ、復号されたパルス・コード変調（ＰＣＭ）サンプルのストリームを生成する図１のプロセッサを示す図である。
【図３】ＭＰＥＧ１の第３層（即ち、ＭＰ３）規格ビット・ストリームのフレーム構造を示す図である。
【図４】規格ＭＰ３デコーダのモジュール及び提案する新規デコーダ・アーキテクチャを示すブロック図である。
【図５】オーディオ・データの復号において図１のプロセッサが使用する内部バッファ及び再生バッファを示す図である。
【図６】予め決められた持続時間における図１のプロセッサの１つのオーディオ・クリップに対応するグラニュール当たりのサイクル要件を示すグラフである。
【図７】上記好適な実施形態の復号レベルに対応する任意の長さ間隔ｔにおける必要なプロセッサ・サイクルを示す図である。
【図８】上記好適な実施形態による、コード化されたビット・ストリーム形式のオーディオ・データの復号方法を示す図である。
【図１】
0005576021.tif 000022
【図２】
0005576021.tif 000023
【図３】
0005576021.tif 000024
【図４】
0005576021.tif 000025
【図５】
0005576021.tif 000026
【図６】
0005576021.tif 000027
【図７】
0005576021.tif 000028
【図８】
0005576021.tif 000029