(57)【特許請求の範囲】
【請求項１】
フレーム・ベースのオーディオ・エンコーダであって、
・K個の並列変換ユニットを有しており、前記K個の並列変換ユニットのそれぞれは、オーディオ信号のK個のフレームからなる現在の群のそれぞれのフレームを、周波数係数のK個の現在の集合のそれぞれに変換するよう構成されており、K＞1であり、前記K個のフレームのそれぞれは前記オーディオ信号の複数のサンプルを含み、
当該オーディオ・エンコーダはさらに、
・K個の並列な量子化およびエンコード・ユニットを有しており、前記K個の並列な量子化およびエンコード・ユニットのそれぞれは、周波数係数の前記K個の現在の集合のそれぞれを、それぞれの割り当てビット数の考慮のもとに、量子化し、エントロピー符号化するよう構成されており、
当該オーディオ・エンコーダはさらに、
・前記K個の並列な量子化およびエンコード・ユニットのそれぞれに、以前に消費されたビット数の考慮のもとに、それぞれのビット数を割り当てるよう構成されたビット割り当てユニットと、
・K個のフレームの前記現在の群に先行するK個のフレームの群について前記オーディオ信号の周波数係数のK個の集合をエンコードするために前記K個の並列な量子化およびエンコード・ユニットによって使われたビットの数を用いて、前記以前に消費されたビットの数を更新するよう構成されているビット貯蓄追跡ユニットとを有し、
前記K個の並列変換ユニットのそれぞれは、前記K個のフレームのそれぞれを、周波数係数の複数のフレーム型依存の集合に変換するよう構成されており、
当該エンコーダはさらに、
・K個の並列な信号アタック検出ユニットであって、各信号アタック検出ユニットは、前記K個のフレームのそれぞれを、前記K個のフレームの該それぞれの内部の音響アタックの有無に基づいて分類するよう構成されている、信号アタック検出ユニットと、
・前記K個のフレームの分類に基づいて前記K個のフレームのそれぞれのフレーム型を決定するよう構成されたフレーム型検出ユニットと、
・前記K個のフレームのそれぞれについて、周波数係数の前記複数のフレーム型依存の集合から前記周波数係数の集合を選択するよう構成された選択ユニットであって、選択された集合はそれぞれのフレームのフレーム型に対応するものである、選択ユニットを有する、
オーディオ・エンコーダ。
【請求項２】
前記K個の並列変換ユニットのそれぞれが前記K個のフレームのそれぞれに修正離散コサイン変換を適用するよう構成されている、請求項１記載のオーディオ・エンコーダ。
【請求項３】
前記K個の並列変換ユニットのそれぞれが、前記K個のフレームのそれぞれに窓関数を適用するよう構成されている、請求項１または２記載のオーディオ・エンコーダ。
【請求項４】
前記フレーム型が：短ブロック型、長ブロック型、開始ブロック型および停止型のうちの一つである、請求項１記載のオーディオ・エンコーダ。
【請求項５】
前記フレーム型検出ユニットが、k＝1,…,Kとして、前記K個のフレームのうちの各フレームkのフレーム型を、フレームk−1のフレーム型にも基づいて決定するよう構成されている、請求項１または４記載のオーディオ・エンコーダ。
【請求項６】
前記K個の並列変換ユニット（４０３）が前記K個の並列な信号アタック検出ユニット（３０１）および前記フレーム型検出ユニット（３０４）と並列に動作させられる、請求項１ないし５のうちいずれか一項記載のオーディオ・エンコーダ（４００）。
【請求項７】
前記K個の並列な信号アタック検出ユニット（３０１）が、前記K個の並列変換ユニット（４０３）と逐次的に動作させられる前記フレーム型検出ユニット（３０４）と逐次的に動作させられる、請求項１ないし５のうちいずれか一項記載のオーディオ・エンコーダ（４００）。
【請求項８】
前記K個の並列変換ユニット（３０３）が、前記K個のフレームのそれぞれを、前記フレーム型検出ユニット（３０４）によって決定されるそれぞれのフレームのフレーム型に対応する周波数係数の集合に変換するよう構成されている、請求項１ないし５および７のうちいずれか一項記載のオーディオ・エンコーダ（３００、５００、６００）。
【請求項９】
・K個の並列な音響心理学的ユニットをさらに有しており、前記K個の並列な音響心理学的ユニットのそれぞれは、周波数係数の前記K個の集合のそれぞれに基づいて、一つまたは複数のフレーム依存のマスキング閾値を決定するよう構成されている、
請求項１ないし８のうちいずれか一項記載のオーディオ・エンコーダ。
【請求項１０】
前記K個の並列な音響心理学的ユニットのそれぞれは、前記K個のフレームのそれぞれのフレームの情報内容を示す知覚的エントロピー値を決定するよう構成されている、請求項９記載のオーディオ・エンコーダ。
【請求項１１】
前記K個の並列な量子化およびエンコード・ユニットのそれぞれは、それぞれの一つまたは複数のフレーム依存のマスキング閾値の考慮のもとに、周波数係数の前記K個の集合のそれぞれを量子化およびエントロピー符号化するよう構成されている、請求項９または１０記載のオーディオ・エンコーダ。
【請求項１２】
前記ビット割り当てユニットが、前記K個のフレームのフレーム型の考慮のもとにそれぞれのビット数を割り当てるよう構成されている、請求項１記載のオーディオ・エンコーダ。
【請求項１３】
前記ビット割り当てユニットが、前記K個のフレームの知覚的エントロピー値の考慮のもとにそれぞれのビット数を割り当てるよう構成されている、請求項１０記載のオーディオ・エンコーダ。
【請求項１４】
前記ビット割り当てユニットは、前記オーディオ信号をエンコードするための目標ビットレートの考慮のもとに、それぞれのビット数を割り当てるよう構成されている、請求項１ないし１３のうちいずれか一項記載のオーディオ・エンコーダ。
【請求項１５】
前記ビット割り当てユニットは、現在消費されているビットの数を考慮に入れる合成による分析の仕方で、それぞれのビット数を割り当てるよう構成されている、請求項１ないし１４のうちいずれか一項記載のオーディオ・エンコーダ。
【請求項１６】
・前記ビット割り当てユニットは、現在消費されているビットの数も考慮してそれぞれのビット数を割り当て、それにより前記K個の並列な量子化およびエンコード・ユニットのそれぞれについて、割り当てられたビットのそれぞれの更新された数を与えるよう構成されており、
・前記K個の並列な量子化およびエンコード・ユニットのそれぞれは、割り当てられたビットのそれぞれの更新された数の考慮のもとに、周波数係数の前記K個の集合のそれぞれを量子化し、エントロピー符号化するよう構成されている、
請求項１ないし１５のうちいずれか一項記載のオーディオ・エンコーダ。
【請求項１７】
・前記K個の並列な量子化およびエンコード・ユニットおよび前記K個の並列変換ユニットはパイプライン・アーキテクチャにおいて動作するよう構成されており、
・前記K個の並列な量子化およびエンコード・ユニットは、前記K個の並列変換ユニットがK個のフレームの前記現在の群のフレームを変換している間に、K個のフレームの前記現在の群のK個の先行フレームに対応する周波数係数のK個の先行する集合を量子化およびエンコードする、
請求項１ないし１６のうちいずれか一項記載のオーディオ・エンコーダ。
【請求項１８】
前記K個の並列変換ユニットが少なくともK個の異なる処理ユニット上で実装される、請求項１ないし１７のうちいずれか一項記載のオーディオ・エンコーダ。
【請求項１９】
前記オーディオ・エンコーダが、AACと称される先進オーディオ符号化を実行するよう構成されている、請求項１ないし１８のうちいずれか一項記載のオーディオ・エンコーダ。
【請求項２０】
少なくともK個の異なる処理ユニット上でオーディオ信号のK個のフレームを並列にエンコードするよう構成されているフレーム・ベースのオーディオ・エンコーダであって、K＞1であり、当該オーディオ・エンコーダは、
・K個の並列な信号アタック検出ユニットであって、各信号アタック検出ユニットは、前記K個のフレームのそれぞれを、前記K個のフレームのそれぞれの中の音響アタックの有無に基づいて分類するよう構成されている、信号アタック検出ユニットと；
・k＝1,…,Kとして、前記K個のフレームのうちの各フレームkのフレーム型を、該フレームkの分類に基づきかつフレームk−1のフレーム型に基づいて決定するよう構成されたフレーム型検出ユニットと；
・K個の並列変換ユニットであって、該K個の並列変換ユニットのそれぞれは、前記K個のフレームのそれぞれを周波数係数のK個の集合のそれぞれに変換するよう構成されており、該K個の並列変換ユニットのそれぞれは、前記K個のフレームのそれぞれのフレームを周波数係数の複数のフレーム型依存の集合に変換し、該周波数係数の複数のフレーム型依存の集合から、該それぞれのフレームについて決定されたフレーム型に対応する周波数係数の集合を選択するよう構成されている、並列変換ユニットとを有する、
オーディオ・エンコーダ。
【請求項２１】
フレームのシーケンスを含むオーディオ信号をエンコードする方法であって、
・K＞1として、前記オーディオ信号のK個のフレームのそれぞれを、前記K個のフレームのそれぞれのフレーム内の音響アタックの有無に基づいて分類する段階と；
・k＝1,…,Kとして、前記K個のフレームのうちの各フレームkのフレーム型を、該フレームkの分類に基づきかつフレームk−1のフレーム型に基づいて決定する段階と；
・前記K個のフレームのそれぞれを周波数係数のK個の集合のそれぞれにK個の並列変換ユニットによって並列に変換する段階であって、該K個の並列変換ユニットのそれぞれは、前記K個のフレームのそれぞれのフレームを周波数係数の複数のフレーム型依存の集合に変換し、該周波数係数の複数のフレーム型依存の集合から、該それぞれのフレームについて決定されたフレーム型に対応する、段階とを含む、
方法。
【請求項２２】
プロセッサ上での実行のために適応された、プロセッサ上で実行されたときに請求項２１記載の方法の段階を実行するためのソフトウェア・プログラム。
【請求項２３】
プロセッサ上での実行のために適応された、コンピューティング装置上で実行されたときに請求項２１記載の方法の段階を実行するためのソフトウェア・プログラムを有する記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への相互参照
本願は2011年11月30日に出願された米国仮特許出願第61/565,037号の優先権を主張するものである。
【０００２】
発明の技術分野
本稿はオーディオ・エンコードのための方法およびシステムに関する。詳細には、本稿は並列エンコーダ・アーキテクチャを使った高速オーディオ・エンコードのための方法およびシステムに関する。
【背景技術】
【０００３】
今日のメディア・プレーヤーはmp3、mp4、WMA（Windows  Media  Audio［ウィンドウズメディアオーディオ］）、AAC（Advanced  Audio  Coding［先進オーディオ符号化］）、HE-AAC（High  Efficiency  AAC［高効率符号化］）などといったさまざまな異なるオーディオ・フォーマットをサポートする。他方、メディア・データベース（Simfyなど）は何百万ものオーディオ・ファイルをダウンロード用に提供している。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
典型的には、これら何百万ものオーディオ・ファイルを種々のメディア・プレーヤーによってサポートされるさまざまな異なるオーディオ・フォーマットおよびさまざまな異なるビットレートでエンコードし、記憶することは経済的ではない。よって、「オンザフライ」でのオーディオ・ファイルのエンコードを可能にする高速オーディオ・エンコード方式を提供し、それによりメディア・データベースが（特定のオーディオ・フォーマットで、特定のビットレートで）個別にエンコードされたオーディオ・ファイルを、それが要求されるときに生成できるようにすることが有益である。US2004/0024592A1は、複数の分割データ・セグメントをエンコードするための複数のmp3エンコード・ユニットを有するシステムを記載している。
【課題を解決するための手段】
【０００５】
ある側面によれば、フレーム・ベースのオーディオ・エンコーダが記述される。本オーディオ・エンコーダは、複数の時間領域サンプルを含むオーディオ信号をフレームのシーケンスに分割するよう構成されていてもよい。ここで、各フレームは典型的には所定数のサンプルを含む。例として、フレームは固定数M（たとえばM＝1024）のサンプルを含んでいてもよい。ある実施形態では、オーディオ・エンコーダは先進オーディオ符号化（AAC）を実行するよう構成されている。
【０００６】
オーディオ・エンコーダは、オーディオ信号のK個のフレーム（たとえばオーディオ信号のK個の相続くフレーム）を並列に処理するK個の並列変換ユニットを有していてもよい。K個の並列変換ユニットはK個の異なる処理ユニット（たとえばグラフィック処理ユニット）上で実装されてもよく、それにより（K個のフレームの逐次処理に比べて）変換プロセスをK倍に加速してもよい。変換ユニットは、フレームを周波数係数の集合に変換するよう構成されていてもよい。換言すれば、変換ユニットは、修正離散コサイン変換（MDCT）のような時間領域から周波数領域への変換を実行してもよい。よって、K個の並列変換ユニットのそれぞれは、オーディオ信号のK個のフレームの群（フレーム群とも称される）の各フレームを周波数係数のK個の集合の各集合に変換するよう構成されていてもよい。Kは1,2,3,4,5,10,20,50,100より大きくてもよい。
【０００７】
上記のように、K個の並列変換ユニットは、フレーム群のK個のフレームにそれぞれMDCTを適用するよう構成されていてもよい。さらに、K個の並列変換ユニットはフレーム群のK個のフレームにそれぞれ窓関数を適用するよう構成されていてもよい。フレームに適用される変換の型および／または窓の型が典型的にはフレームの型（すなわち、本稿でブロック型とも称されるフレーム型）に依存することを注意しておくべきである。よって、K個の並列変換ユニットはK個のフレームをK個のフレーム型依存の周波数係数の集合にそれぞれ変換するよう構成されていてもよい。
【０００８】
オーディオ・エンコーダはK個の並列な信号アタック検出ユニットを有していてもよい。信号アタック検出ユニットは、オーディオ信号のフレームを音響アタックを含むフレーム（たとえば過渡フレーム）としてまたは音響アタックを含まないフレーム（たとえばトーン様フレーム）として分類するよう構成されていてもよい。よって、K個の並列な信号アタック検出ユニットは、K個のフレームのそれぞれのフレーム内の音響アタックの有無に基づいて、フレーム群のK個のフレームをそれぞれ分類するよう構成されていてもよい。K個の並列な信号アタック検出ユニットは、少なくともK個の異なる処理ユニット上で実装されうる。特に、K個の並列な信号アタック検出ユニットは、K個の並列変換ユニットと同じそれぞれの処理ユニット上で実装されてもよい。
【０００９】
オーディオ・エンコーダはさらに、K個のフレームの分類に基づいてK個のフレームのそれぞれのフレーム型を決定するよう構成されたフレーム型検出ユニットを有していてもよい。フレーム型についての例は短ブロック型（これは典型的には過渡オーディオ信号を含むフレームについて使われる）、長ブロック型（これは典型的にはトーン様オーディオ信号を含むフレームについて使われる）、開始ブロック型（これは典型的には長ブロック型から短ブロック型への移行フレームとして使われる）および／または停止型（これは典型的には短ブロック型から長ブロック型への移行フレームとして使われる）である。よって、フレームのフレーム型は一つまたは複数の以前のフレームのフレーム型に依存してもよい。結果として、フレーム型検出ユニットは、K個のフレームのうちのフレームk（k＝1,…,K）のフレーム型を、先行フレームk−1のフレーム型にも基づいて決定するよう構成されていてもよい。
【００１０】
例として、フレーム型検出ユニットは、フレームkがアタックを含むと分類されかつその先行フレームk−1が短ブロック型または開始ブロック型である場合、フレームk（k＝1,…,K）が短ブロック型であると判定するよう構成されていてもよい。フレーム型検出ユニットは、フレームkがアタックを含まないと分類されかつその先行フレームk−1が長ブロック型または停止ブロック型である場合、フレームk（k＝1,…,K）が長ブロック型であると判定するよう構成されていてもよい。フレーム型検出ユニットは、フレームkがアタックを含むと分類されかつその先行フレームk−1が長ブロック型である場合、フレームk（k＝1,…,K）が開始ブロック型であると判定するよう構成されていてもよい。さらに、フレーム型検出ユニットは、フレームkがアタックを含まないと分類されかつその先行フレームk−1が短ブロック型である場合、フレームk（k＝1,…,K）が停止ブロック型であると判定するよう構成されていてもよい。
【００１１】
K個の並列変換ユニットは、K個の並列な信号アタック検出ユニットおよび前記フレーム型検出ユニットと並列に動作させられてもよい。よって、K個の並列変換ユニットは、K個の並列な信号アタック検出ユニットとは異なる処理ユニットにおいて実装されていてもよく、それにより少なくとも2K個の処理ユニット上でエンコーダのさらなる並列化を可能にする。そのような場合、変換ユニットはフレーム型依存の窓決めおよび／または変換処理の投機的実行を実行するよう構成されていてもよい。具体的には、変換ユニットは、フレーム群の各フレームについて周波数係数の複数のフレーム型依存の集合を決定するよう構成されていてもよい。一層具体的には、変換ユニットはフレームの可能な各フレーム型について周波数係数のフレーム型依存の集合を決定するよう構成されていてもよい。次いで、オーディオ・エンコーダは、前記複数のフレーム型依存の周波数係数の集合から（K個のフレームのそれぞれについて）適切な周波数係数の集合を選択するよう構成された選択ユニットを有していてもよい。ここで、周波数係数の適切な集合は当該フレームのフレーム型に対応する。
【００１２】
あるいはまた、K個の並列な信号アタック検出ユニットはフレーム型検出ユニットと逐次的に、またK個の並列変換ユニットと逐次的に動作させられてもよい。よって、K個の並列な信号アタック検出ユニットはK個の並列変換ユニットと同じそれぞれの処理ユニット上で実装されてもよい。この場合、K個の並列変換ユニットはそれぞれのフレームのフレーム型を知っていてもよく、よってK個並列変換ユニットはK個のフレームを、当該フレームのフレーム型に対応するそれぞれのフレーム型依存の周波数係数の集合に変換するよう構成されていてもよい。
【００１３】
オーディオ・エンコーダはK個の並列な量子化およびエンコード・ユニットを有していてもよい。K個の並列な量子化およびエンコード・ユニットは、少なくともK個の異なる処理ユニット（たとえば、K個の並列変換ユニットのそれぞれの処理ユニット）上で実装されてもよい。量子化およびエンコード・ユニットは、周波数係数の諸集合をそれぞれ、それぞれの数の割り当てビットの考慮のもとに、量子化し、エントロピー符号化（たとえばハフマン符号化）するよう構成されていてもよい。換言すれば、フレーム群のK個のフレームの量子化およびエンコードはK個の並列な量子化およびエンコード・ユニットによって独立して実行されてもよい。この目的のために、K個の並列な量子化およびエンコード・ユニットは、それぞれの割り当てビット数のK個の指示を与えられる。それぞれの割り当てビット数の指示は、合同ビット割り当てプロセスにおいて当該フレーム群について合同して決定されてもよい。これについてはのちに概説する。
【００１４】
オーディオ・エンコーダはさらに、K個の並列な音響心理学的ユニットを有していてもよい。K個の並列な音響心理学的ユニットは少なくともK個の異なる処理ユニット上で実装されてもよい。典型的には、K個の並列な音響心理学的ユニットは、K個の並列変換ユニットと同じそれぞれの処理ユニット上で実装されてもよい。K個の並列な音響心理学的ユニットは典型的にはK個の並列変換ユニットによって提供される周波数係数のK個の集合それぞれをさらに処理するからである。K個の並列な音響心理学的ユニットは、それぞれ周波数係数のK個の集合に基づいて、一つまたは複数のフレーム依存の（そして典型的には周波数依存の）マスキング閾値を決定するよう構成されていてもよい。代替的または追加的に、K個の並列な音響心理学的ユニットは、フレーム群の対応するK個のフレームについてK個の知覚的エントロピー値を決定するよう構成されていてもよい。一般的な表現では、知覚的エントロピー値は、対応するフレームの情報内容の指示を提供する。典型的には、知覚的エントロピー値は対応するフレームをエンコードするために使われるべきビット数の推定値に対応する。具体的には、所与のフレームについての知覚的エントロピー値は、量子化されたフレームに割り当てられるノイズが前記一つまたは複数のマスキング閾値のすぐ下にあるとの仮定のもとに、その所与のフレームを量子化し、エンコードするために何ビットが必要とされるかを示してもよい。
【００１５】
K個の並列な量子化およびエンコード・ユニットは、それぞれの一つまたは複数のフレーム依存のマスキング閾値の考慮のもとにそれぞれ周波数係数のK個の集合を量子化およびエントロピー符号化するよう構成されていてもよい。よって、周波数係数の集合の量子化が、音響心理学的な考察のもとに実行されることが保証され、それにより耳に聞こえる量子化ノイズを削減することができる。
【００１６】
オーディオ・エンコーダは、K個の並列な量子化およびエンコード・ユニットにそれぞれのビット数をそれぞれ割り当てるよう構成されたビット割り当てユニットを有していてもよい。この目的のために、ビット割り当てユニットは、フレーム群について利用可能なビットの総数を考慮して、利用可能なビットの総数をフレーム群の個々のフレームに分配してもよい。ビット割り当てユニットは、それぞれのビット数を、フレーム群のそれぞれのフレームのフレーム型の考慮のもとに割り当てるよう構成されていてもよい。さらに、ビット割り当てユニットは、フレーム群のフレームへのビットの割り当てを改善するために、フレーム群のフレームの一部または全部のフレーム型を考慮に入れてもよい。代替的または追加的に、ビット割り当てユニットは、K個のフレームにそれぞれのビット数を割り当てるために、K個の並列な音響心理学的ユニットによって決定されたフレーム群のK個のフレームについてのK個の知覚的なエントロピー値を考慮に入れてもよい。具体的には、ビット割り当てユニットは、フレーム群についての利用可能なビットの総数に依存して、K個の知覚的なエントロピー値をスケーリングまたは修正し、それによりビット割り当てをフレーム群のK個のフレームの知覚的エントロピーに適合させるよう構成されていてもよい。
【００１７】
オーディオ・エンコーダはさらに、当該Kフレームに先行するオーディオ信号のフレームをエンコードするために使われた以前に消費されたビットの数を追跡するよう構成されたビット貯蓄追跡ユニットを有していてもよい。典型的には、オーディオ・エンコーダはエンコードされたオーディオ信号について目標ビットレートを与えられる。よって、ビット貯蓄追跡ユニットは、目標とされるビットの数との関係で以前に消費されたビットの数を追跡するよう構成されていてもよい。さらに、ビット貯蓄追跡ユニットは、周波数係数のK個の集合をエンコードするためにK個の並列な量子化およびエンコード・ユニットによって使われたビットの数を用いて、以前に消費されたビットの数を更新し、それにより現在での消費されたビットの数を与えるよう構成されていてもよい。次いで現在消費済みのビットの数は、その後のK個のフレームのその後のフレーム群についてのビット割り当てプロセスの基礎となってもよい。
【００１８】
ビット割り当てユニットは、（ビット貯蓄追跡ユニットによって提供される）以前に消費されたビットの数の考慮のもとに、それぞれのビット数（すなわち、フレーム群のK個のフレームをエンコードするために割り当てられるそれぞれのビット数）を割り当てるよう構成されていてもよい。さらに、ビット割り当てユニットは、オーディオ信号をエンコードするために目標ビットレートの考慮のもとにそれぞれのビット数を割り当てるよう構成されていてもよい。
【００１９】
よって、ビット割り当てユニットは、フレーム群のフレームにそれぞれのビットを割り当てることを群ごとに（フレームごとではなく）行なうよう構成されていてもよい。ビットの割り当てをさらに改善するために、ビット割り当てユニットは、現在消費済みのビットの数を考慮に入れることによって、「合成による分析」の仕方でK個の量子化およびエンコード・ユニットにそれぞれのビット数を割り当てるよう構成されていてもよい。換言すれば、フレーム群について、ビット割り当ておよび量子化・エンコードの数次の逐次反復が実行されてもよく、その後の反復工程において、ビット割り当てユニットは、K個の量子化およびエンコード・ユニットによって使用された現在消費済みのビットの数を考慮に入れてもよい。
【００２０】
よって、ビット割り当てユニットは、現在消費済みのビットの数の考慮のもとにそれぞれのビット数を割り当て、それによりK個の並列な量子化およびエンコード・ユニットそれぞれについて割り当てられる更新されたそれぞれのビット数を与えるよう構成されていてもよい。K個の並列な量子化およびエンコード・ユニットは、それぞれの更新された割り当てられたビット数の考慮のもとに、周波数係数のそれぞれのK個の集合を量子化し、エントロピー符号化するよう構成されていてもよい。この逐次反復式のビット割り当てプロセスは、フレーム群のフレーム間でのビット割り当てを改善するために、所定の反復回数繰り返されてもよい。
【００２１】
K個の並列な量子化およびエンコード・ユニットおよびK個の並列変換ユニットはパイプライン・アーキテクチャにおいて動作するよう構成されていてもよい。これは、K個の並列変換ユニットが、K個の並列な量子化およびエンコード・ユニットが現在のフレーム群の周波数係数の集合をエンコードしている間に、K個の後続フレームを含む後続フレーム群を処理するよう構成されていてもよいことを意味する。換言すれば、K個の並列な量子化およびエンコード・ユニットは、K個の並列変換ユニットがK個のフレームの群のフレームを変換している間に、K個のフレームの群のK個の先行フレームに対応する周波数係数のK個の先行する集合を量子化およびエンコードしてもよい。
【００２２】
あるさらなる側面によれば、少なくともK個の異なる処理ユニット上でオーディオ信号のK個のフレーム（すなわちフレーム群）を並列にエンコードするよう構成されているフレーム・ベースのオーディオ・エンコーダが記述される。本稿において記述されるオーディオ・エンコーダに関係する特徴のいずれも適用可能である。オーディオ・エンコーダは、K個のフレームをそれぞれ周波数係数のK個の集合に変換するよう構成されているK個の並列変換ユニット；K個のフレームの各フレーム内の音響アタックの有無に基づいてそれぞれK個のフレームを分類するよう構成されているK個の並列な信号アタック検出ユニット；および／またはそれぞれ周波数係数のK個の集合を量子化およびエントロピー符号化するよう構成されているK個の並列な量子化およびエンコード・ユニット、のうちの少なくとも一つを有していてもよい。
【００２３】
あるさらなる側面によれば、少なくともK個の異なる処理ユニット上でオーディオ信号のK個のフレーム（すなわちフレーム群）を並列にエンコードするよう構成されているフレーム・ベースのオーディオ・エンコーダが記述される。本稿において記述されるオーディオ・エンコーダに関係する特徴のいずれも適用可能である。オーディオ・エンコーダは、K個のフレームをそれぞれ周波数係数のK個の集合に変換するよう構成されている変換ユニットを有する。さらに、オーディオ・エンコーダはK個の並列な量子化およびエンコード・ユニットを有し、該K個の並列な量子化およびエンコード・ユニットは、それぞれの割り当てられたビット数の考慮のもとに、それぞれ周波数係数のK個の集合を量子化およびエントロピー符号化するよう構成されている。さらに、オーディオ・エンコーダは、当該K個のフレームに先行するオーディオ信号のフレームをエンコードするために使われたビットの以前に消費された数に基づいて、それぞれK個の並列な量子化およびエンコード・ユニットにそれぞれのビット数を割り当てるよう構成されたビット割り当てユニットを有する。
【００２４】
もう一つの側面によれば、少なくともK個の異なる処理ユニット上でオーディオ信号のK個のフレームを並列にエンコードするよう構成されているフレーム・ベースのオーディオ・エンコーダが記述される。本稿において記述されるオーディオ・エンコーダに関係する特徴のいずれも適用可能である。オーディオ・エンコーダは、K個の並列な信号アタック検出ユニットを有する。それらの信号アタック検出ユニットは、K個のフレームを、各フレーム内の音響アタックの有無に基づいてそれぞれ分類するよう構成されている。さらに、オーディオ・エンコーダは、フレームkの分類に基づきかつ直前のフレームk−1のフレーム型に基づいてフレーム群のフレームk（k＝1,…,K）のフレーム型を決定するよう構成されたフレーム型検出ユニットを有する。さらに、オーディオ・エンコーダはK個の並列変換ユニットを有する。ここで、K個の並列変換ユニットは、K個のフレームをそれぞれ周波数係数のK個の集合に変換するよう構成されている。典型的には、あるフレームに対応する周波数係数の集合はそのフレームのフレーム型に依存する。換言すれば、変換ユニットは、フレーム型依存の変換を実行するよう構成される。
【００２５】
あるさらなる側面によれば、フレームのシーケンスを含むオーディオ信号をエンコードする方法が記述される。本方法は：オーディオ信号のK個のフレームを並列に周波数係数の対応するK個の集合に変換する段階；K個のフレームの各フレーム内の音響アタックの有無に基づいてK個のフレームの各フレームを並列に分類する段階；および割り当てられたそれぞれのビット数の考慮のもとで周波数係数のK個の集合の各集合を並列に量子化およびエントロピー符号化する段階、のうちの任意の一つまたは複数を含んでいてもよい。
【００２６】
もう一つの側面によれば、フレームのシーケンスを含むオーディオ信号をエンコードする方法が記述される。本方法は、オーディオ信号のK個のフレームを周波数係数のK個の対応する集合に変換する段階と；それぞれの割り当てられたビット数の考慮のもとに、周波数係数のK個の集合のそれぞれを並列に量子化およびエントロピー符号化する段階と；当該K個のフレームに先行するオーディオ信号のフレームをエンコードするために使われたビットの以前に消費された数に基づいて、前記それぞれのビット数を割り当てる段階とを含んでいてもよい。
【００２７】
あるさらなる側面によれば、フレームのシーケンスを含むオーディオ信号をエンコードする方法が記述される。本方法は、オーディオ信号のK個のフレームのそれぞれを、該K個のフレームの各フレーム内の音響アタックの有無に基づいて分類する段階と；フレームkの分類に基づきかつフレームk−1のフレーム型に基づいて前記K個のフレームの各フレームk（k＝1,…,K）のフレーム型を決定する段階と；K個のフレームのそれぞれを周波数係数のK個の集合のそれぞれに並列に変換する段階とを含んでいてもよく、フレームkに対応する周波数係数の集合kはフレームkのフレーム型に依存する。
【００２８】
あるさらなる側面によれば、ソフトウェア・プログラムが記述される。該ソフトウェア・プログラムはプロセッサ上での実行のためおよびコンピューティング装置上で実行されたときに本稿で概説される方法段階を実行するために適応されていてもよい。
【００２９】
もう一つの側面によれば、記憶媒体が記述される。該記憶媒体は、プロセッサ上での実行のためおよびコンピューティング装置上で実行されたときに本稿で概説される方法段階を実行するために適応されたソフトウェア・プログラムを有していてもよい。
【００３０】
あるさらなる側面によれば、コンピュータ・プログラム・プロダクトが記述される。コンピュータ・プログラムは、コンピュータ上で実行されたときに本稿で概説される方法段階を実行するための実行可能な命令を含んでいてもよい。
【００３１】
本稿で概説される、好ましい実施形態を含めた方法およびシステムは、単独で、あるいは本稿で開示される他の方法およびシステムとの組み合わせにおいて使用されうることを注意しておくべきである。さらに、本稿で概説される方法およびシステムのあらゆる側面は任意に組み合わされてもよい。特に、請求項の特徴は任意の仕方で互いに組み合わされてもよい。
【図面の簡単な説明】
【００３２】
本発明について、付属の図面を参照しつつ下記で例示的に説明する。
【図１ａ】例示的なオーディオ・エンコーダのブロック図である。
【図１ｂ】オーディオ・エンコーダによって適用される例示的なフレーム・ベースの時間‐周波数変換を示す図である。
【図２】例示的なオーディオ・エンコーダの摘要のブロック図である。
【図３】図２に示したエンコーダ摘要についての例示的な並列アーキテクチャのブロック図である。
【図４】図２に示したエンコーダ摘要についてのもう一つの例示的な並列アーキテクチャのブロック図である。
【図５】さまざまな並列化されたエンコーダ・プロセスを含む例示的なオーディオ・エンコーダのブロック図である。
【図６】オーディオ・エンコーダの例示的なパイプライン化アーキテクチャのブロック図である。
【図７】逐次反復式ビット割り当てプロセスの例示的なフローチャートである。
【発明を実施するための形態】
【００３３】
図１ａは、例示的なオーディオ・エンコーダ１００を示している。特に、図１ａは、例示的な先進オーディオ符号化（AAC）エンコーダ１００を示している。オーディオ・エンコーダ１００は、高効率（HE）AACのようなスペクトル帯域複製（SBR:  spectral  band  replication）ベースのエンコード方式のコンテキストにおけるコア・エンコーダとして使われてもよい。あるいはまた、オーディオ・エンコーダ１００は単独で使われてもよい。AACエンコーダ１００は典型的にはオーディオ信号１０１をフレームと呼ばれるセグメントのシーケンスに分解する。窓と呼ばれる時間領域処理が、これらのフレームにおけるデータを修正することにより、フレームからフレームへのなめらかな遷移を提供する。AACエンコーダ１００は、オーディオ信号のフレームのエンコードを、そのフレーム内に含まれる時間領域信号の特性（たとえば、オーディオ信号のトーン様セクションまたは過渡セクション）に適合させてもよい。この目的のために、AACエンコーダ１００は、M＝1028サンプルの一つの長ブロックとしてフレーム全体のエンコードとM＝128サンプルの短ブロックのシーケンスとしての該フレームのエンコードとの間で動的に切り替わるよう適応されている。よって、AACエンコーダ１００は、比較的高い周波数分解能でのエンコード（長ブロックを使う）と比較的高い時間分解能でのエンコード（短ブロックのシーケンスを使う）との間で切り換えてもよい。よって、AACエンコーダ１００は、トーン様（定常状態の、ハーモニー的にリッチな複雑なスペクトル信号）（長ブロックを使う）とインパルス様（過渡的な信号）（8個の短ブロックのシーケンスを使う）との間で揺れ動くオーディオ信号をエンコードするよう適応される。
【００３４】
サンプルからなる各ブロックは、修正離散コサイン変換（MDCT）を使って周波数領域に変換される。ブロック・ベース（フレーム・ベースとも称される）の時間周波数変換のコンテキストにおいて典型的に生じるスペクトル漏れの問題を回避するために、MDCTは重複窓を利用する。すなわち、MDCTはいわゆる重複変換の例である。このことは図１ｂに示されている。図１ｂは、フレーム１７１のシーケンスを含むオーディオ信号１０１を示している。図示した例では、各フレーム１７１はオーディオ信号１０１のM個のサンプルを含む。上記変換を単一のブロックだけに適用するのではなく、重複変換であるMDCTは、シーケンス１７２によって示されるように、二つの隣り合うフレームを重複的に変換する。逐次のフレーム間の遷移をさらになめらかにするために、長さ2Mの窓関数w[k]がさらに適用される。結果として、サイズMの周波数係数の集合のシーケンスが得られる。対応するAACデコーダでは、周波数係数の集合のシーケンスに逆MDCTが適用され、それにより長さ2Mをもつ時間領域サンプルの集合のシーケンスを与える。図１ｂに示される重複加算処理１７３を使って、デコードされたサンプル１７４の長さMのフレームが得られる。
【００３５】
図１ａは例示的なAACエンコーダ１００のさらなる詳細を示している。エンコーダ１００は、オーディオ信号１０１のサンプルからなるフレームにMDCT変換を適用するフィルタ・バンク１５１を有する。上記で概説したように、MDCT変換は重複変換であり、典型的にはオーディオ信号１０１の二つのフレームのサンプルを処理して周波数係数の集合を与える。周波数係数の集合はユニット１５２において量子化およびエントロピー符号化にかけられる。量子化・エンコード・ユニット１５２は、目標ビットレートと量子化ノイズとの間の最適化されたトレードオフが達成されることを保証する。AACエンコーダ１００のさらなるコンポーネントは、（中でも特に）量子化およびエンコードの間に適用される信号依存のマスキング閾値を決定するために使われる知覚的モデル１５３である。さらに、AACエンコーダ１００は、オーディオ信号１０１の各フレームにグローバルな調整利得を適用する利得制御ユニット１５４を有していてもよい。これをすることにより、AACエンコーダ１００のダイナミックレンジを増すことができる。さらに、温度雑音整形（TNS:  temperature  noise  shaping）１５５、後方予測１５６およびジョイントステレオ符号化１５７（たとえば、中央／サイド信号エンコード）が適用されてもよい。
【００３６】
本稿では、図１に示したオーディオ・エンコード方式を加速するためのさまざまな施策が記述される。これらの施策はAACエンコードのコンテキストにおいて記述されるが、これらの施策はオーディオ・エンコーダ一般に適用可能であることを注意しておくべきである。特に、これらの施策はブロック・ベースの（またはフレーム・ベースの）オーディオ・エンコーダ一般に適用可能である。
【００３７】
図２は、AACエンコーダ１００の摘要２００の例示的なブロック図を示している。図式２００は図１ａに示したフィルタ・バンク・ブロック１５１に関係する。上記で概説したように、オーディオ信号１０１の個別的な特性（トーン様か過渡か）にエンコードを適応させるために、AACエンコーダ１００はオーディオ信号１０１のフレームを、いわゆる長ブロックおよび短ブロックとして分類する。この目的のため、AACエンコーダ１００はオーディオ信号１０１の各フレーム（M＝1024個のサンプルを含む）を解析し、フレームについての適切なブロック型に関する決定をする。これはブロック型決定ユニット２０１において実行される。長ブロックおよび（N＝8個の）短ブロックのシーケンスに加えて、AACは「開始ブロック」（長ブロックと短ブロックのシーケンスとの間の遷移ブロックとして）および「停止ブロック」（短ブロックのシーケンスと長ブロックとの間の遷移ブロックとして）という追加的なブロック型を提供することを注意しておくべきである。
【００３８】
ブロック型についての決定後、オーディオ信号１０１のフレームに適切な窓が適用される（窓かけユニット２０２）。上記で概説したように、MDCT変換は重複変換である。すなわち、窓は、オーディオ信号の現在フレームkおよび直前フレームk−1に（すなわち合計2M＝2048個のサンプルに）適用される。窓かけユニット２０２は典型的には、ブロック型決定ユニット２０１において決定されたブロック型に適応された型の窓を適用する。つまり、窓の形はフレームkの実際の型に依存する。隣り合うフレームの群に窓を適用したのち、オーディオ信号１０１のフレームに対応する周波数係数の集合を与えるために、窓かけされた隣り合うフレームの群に適切なMDCT変換が適用される。例として、現在フレームkのブロック型が「短ブロック」であれば、現在フレームkの窓かけされたサンプルの8個の短ブロックのシーケンスが、8個の連続するMDCT変換２０３を使って周波数係数の8個の集合に変換される。他方、現在フレームkのブロック型が「長ブロック」であれば、現在フレームkの窓かけされたサンプルは、単一のMDCT変換を使って周波数係数の単一の集合に変換される。
【００３９】
上記のプロセスはオーディオ信号１０１のフレームすべてについて繰り返され、それにより、逐次的に量子化されエンコードされる周波数係数の集合のシーケンスを与える。逐次的なエンコード方式のため、全体的なエンコード速度は、オーディオ信号１０１をエンコードするために使われる処理ユニットの処理パワーによって制限される。
【００４０】
本稿では、全体的なエンコード速度を加速するために、図１ａおよび図２のコンテキストで記載された通常のオーディオ・エンコーダ１００、２００の依存チェーンを分解することが提案される。特に、少なくとも、図２のコンテキストで記述された変換関係のエンコード・タスクを並列化することが提案される。逐次的なアーキテクチャ２００に対応する並列化されたアーキテクチャの例が図３に示されている。並列化されたアーキテクチャ３００では、オーディオ信号１０１の複数のフレーム３０５が収集される。例として、オーディオ信号１０１のK＝10個のフレームが収集される。複数K個のフレーム３０５のそれぞれについて、フレームk（k＝1,…,K）がトーン様内容を含むか過渡的内容を含むかを判定するために、信号アタック検出が（信号アタック検出ユニット３０１によって）実行される。複数K個のフレーム３０５のそれぞれのこの分類に基づいて、「アタックからブロック型」ユニット３０４は複数K個のフレーム３０５のそれぞれについて個別のブロック型を決定してもよい。特に、アタックからブロック型ユニット３０４は、複数K個のフレーム３０５からの特定のフレームkが短ブロックのシーケンスとして、長ブロックとして、開始ブロックとしてまたは停止ブロックとしてエンコードされるべきかどうかを決定してもよい。
【００４１】
それぞれのブロック型を決定したところで、窓かけおよび変換ユニット３０３は、適切な窓および適切なMDCT変換を複数K個のフレーム３０５のそれぞれに適用してもよい。これは、K個のフレーム３０５について並列になされてもよい。隣り合うフレーム間の重複に鑑み、K個の並列な窓かけおよび変換プロセスに隣り合うフレームの群が入力されてもよい。例として、K個の並列な窓かけおよび変換プロセスは、インデックスk＝1,…,Kによって同定されてもよい。k番目のプロセスは複数K個のフレームのうちk番目のフレームを扱う。窓かけおよび変換は典型的には重なり合うので、k番目のプロセスはさらにk番目のフレームの一つまたは複数の先行フレーム（たとえば(k−1)番目のフレーム）を与えられてもよい。よって、上記K個のプロセスは並列に実行されてもよく、それによりオーディオ信号１０１のK個のフレーム３０５についての周波数係数のK個の集合を与えてもよい。図２に示される逐次的アーキテクチャ２００とは対照的に、並列アーキテクチャ３００はK個の並列な処理ユニット上で実行されてもよく、それにより全体的な処理速度を図２に記述された逐次的な処理に比べてK倍加速してもよい。
【００４２】
代替的または追加的に、図２のアーキテクチャ２００は、オーディオ信号１０１のフレームのブロック型決定と窓かけ／変換との間の依存チェーンを分解することによって並列化されることができる。この依存チェーンは、のちに破棄されることがありうる計算を仮に実行することによって分解されてもよい。そのような投機的実行の利益は、該投機的実行の結果として、並列化可能な多数の一様な処理タスクが実行されるということである。計算結果の一部を破棄することによって生じる不効率よりも、典型的には、並列計算によってもたらされる増大した速度のほうが重要である。
【００４３】
図２および図３のコンテキストにおいて概説したように、AACエンコーダ１００はまずブロック型について決定し、それからはじめて窓かけおよび変換処理を実行する。これは、窓かけおよび変換がひとたびブロック型決定が実行されてからでないと実行できないという依存性につながる。しかしながら、図４のエンコード方式４００によって示される投機的実行を許容するときは、AACにおいて利用可能な四つの異なる窓型を使った四つの異なる変換がオーディオ信号１０１のそれぞれの（重なった）フレームlに対して並列に実行されることができる。各フレームlについての周波数係数の四つの集合は、窓かけおよび変換ユニット４０３において並列に決定される。結果として、周波数係数の四つの集合がオーディオ信号１０１の各フレームlについて得られる（長ブロック型についての集合、短ブロック型についての集合、開始ブロック型についての集合および停止ブロック型についての集合）。ブロック型決定３０１は、フレームkの窓かけおよび変換とは独立に（たとえば並列に）実行されてもよい。並列なブロック型決定３０１において決定されたフレームlのブロック型に依存して、選択ユニット４０６を使って、周波数係数の適切な集合がフレームlについて選択されてもよい。窓かけおよび変換ユニット４０３によって提供される周波数係数の他の三つの集合は破棄されてもよい。
【００４４】
そのような投機的実行の結果として、オーディオ信号のL個のフレームが、異なる処理ユニットを使って並列に窓かけおよび変換処理４０３にかけられてもよい。処理ユニットのそれぞれ（たとえば、l＝1,…,Lとしてl番目の処理ユニット）は、その処理ユニットによって扱われるl番目のフレームについての周波数係数の四つの集合を決定する。すなわち、各処理ユニットは、ブロック型がすでにわかっているときに実行される窓かけおよび変換３０１に比べ約四倍の処理段階を実行する。にもかかわらず、全体的なエンコード速度は、図４に示した並列化されたアーキテクチャ４００によってL/4倍に高められる。Lは数百の範囲において選択されうる。これにより、提案される方法は、多数の並列プロセッサをもつプロセッサ・ファームにおける用途に好適になる。
【００４５】
並列アーキテクチャ４００は、並列アーキテクチャ３００の代替として、または並列アーキテクチャ３００と組み合わせて使用されうる。しかしながら、並列化の結果として、エンコード遅延が典型的には増大することを注意しておくべきである。他方、エンコード速度は著しく増大することがあり、そのため、エンコード・プロセスの大規模並列化によって高速（「オンザフライ」）ダウンロードが達成できるオーディオ・ダウンロード用途のコンテキストにおいて、並列化アーキテクチャが興味深いものとなる。
【００４６】
図５は、さらなる例示的な並列エンコーダ・アーキテクチャ５００を示している。アーキテクチャ５００はアーキテクチャ３００の拡張であり、音響心理学的モデル１５３を適用し、量子化およびエンコード１５２を実行するという追加的な側面を含む。図３と同様に、アーキテクチャ５００は、オーディオ信号１０１のK個のフレーム３０５を並列に処理する信号アタック検出ユニット３０１を有する。分類されたフレームに基づいて、「アタックからブロック型」ユニット３０４がK個のフレーム３０５のそれぞれのブロック型を決定する。その後、K個のフレーム３０５に対応する周波数係数のK個の集合が、窓かけおよび変換ユニット３０３内でK個の並列プロセスにおいて決定される。周波数係数のこれらK個の集合は、音響心理学的処理ユニット５０６において、周波数係数のK個の集合についての周波数依存のマスキング閾値を決定するために使われてもよい。マスキング閾値は、音響心理学的な考察のもとに周波数依存の仕方で周波数係数のK個の集合を量子化およびエンコードするための量子化およびエンコード・ユニット５０８内で使われる。換言すれば、周波数係数のk番目の集合について（すなわち、k番目のフレームについて）、音響心理学的処理ユニット５０６は、一つまたは複数の周波数依存マスキング閾値を決定する。前記一つまたは複数のマスキング閾値の決定は、周波数係数のk＝1,…,Kの集合について並列に実行されてもよい。k番目のフレームの前記一つまたは複数のマスキング閾値は、周波数係数のk番目の集合の量子化およびエンコードのために、（直列または並列化された）量子化および符号化ユニット１５２、５０８に与えられる。よって、周波数依存のマスキング閾値の決定は並列化されてもよい。すなわち、マスキング閾値の決定はK個の独立な処理ユニット上で並列に実行されてもよく、それにより全体的なエンコード速度を加速する。
【００４７】
さらに、図５は、量子化およびエンコード・プロセス１５２の例示的な並列化を示している。量子化は典型的には冪乗則量子化により行なわれる。これを行なうことにより、より大きな周波数係数値は自動的により低精度で符号化され、何らかのノイズ整形（noise  shaping）がすでに量子化プロセスに組み込まれる。次いで量子化された値はハフマン符号化によってエンコードされる。符号化プロセスをオーディオ信号１０１の種々の局所的な統計に適応させるために、データベースに記憶されているいくつかのハフマン・テーブルから特定の（最適）ハフマン・テーブルが選択されてもよい。オーディオ信号のスペクトルの異なる部分について異なるハフマン・テーブルが選択されてもよい。例として、周波数係数のk番目の集合をエンコードするために使われるハフマン・テーブルはk番目のフレームのブロック型に依存してもよい。
【００４８】
特定の（最適な）ハフマン・テーブルの探索がさらに並列化されてもよいことを注意しておくべきである。Pが可能なハフマン・テーブルの総数であるとする。k番目のフレーム（k＝1,…,K）について、周波数係数のk番目の集合は、P個の並列プロセス（P個の並列処理ユニット上で走る）においてP個のハフマン・テーブルの異なるものを使ってエンコードされてもよい。これは周波数係数のP個のエンコードされた集合につながる。ここで、周波数係数のP個のエンコードされた集合のそれぞれは、対応するビット長をもつ。最短ビット長をもつ周波数係数のエンコードされた集合につながるハフマン・テーブルが、k番目のフレームについての特定の（最適な）ハフマン・テーブルとして選択されてもよい。完全並列化方式の代わりに、（各分枝が別個の並列処理ユニットにおいて実行される）分枝のアルファ／ベータ枝刈りをもつ分断攻略戦略のような中間的な並列化方式が、k番目のフレームについての特定の（最適な）ハフマン・テーブルを決定するために使われてもよい。
【００４９】
ハフマン符号化は可変符号長法であり、量子化ノイズを周波数依存のマスキング閾値未満に保つためにノイズ整形が実行されるべきなので、グローバルな利得値（量子化きざみのサイズを決める）およびスケール因子（各スケール因子（すなわち周波数）帯域についてノイズ整形因子を決める）が典型的には実際の量子化前に適用される。オーディオ信号１０１の所与のフレームについて（目標ビットレートおよび／または目標知覚的歪みの制約条件のもとで）グローバルな利得値とスケール因子との間の最適なトレードオフを決定するプロセスは、通例、二つのネストした逐次反復ループによって、合成による分析の仕方で実行される。換言すれば、量子化およびエンコード・プロセス１５２は典型的には二つのネストした逐次反復ループ、いわゆる内側逐次反復ループ（またはレート・ループ）および外側逐次反復ループ（またはノイズ制御ループ）を含む。
【００５０】
内側逐次反復ループ（レート・ループ）のコンテキストでは、周波数係数の量子化されエンコードされた集合が目標ビットレートを満たすよう（または特定のフレームkについての割り当てられたビット数を満たすよう）、グローバル利得値が決定される。一般に、ハフマン符号テーブルは、（より頻繁な）より小さな量子化された値により短い符号語を割り当てる。符号化処理から帰結するビット数がフレームkを符号化するために利用可能なビット数を超える場合には、それは、より大きな量子化きざみサイズを与え、よってより小さな量子化された値につながるようグローバル利得を調整することによって是正できる。この処理は、ハフマン符号化に必要とされるビット数が当該フレームに割り当てられたビット以下になるまで異なる量子化きざみサイズを用いて反復される。このループがレート・ループと呼ばれるのは、このループが、ビットレートが目標ビットレートを満たすまで全体的なエンコーダ・ビットレートを修正するからである。
【００５１】
外側逐次反復ループ（ノイズ制御ループ）のコンテキストでは、周波数依存のスケール因子が、全体的な知覚的歪みを制御するために周波数依存のマスキング閾値に適応される。周波数依存のマスキング閾値に従って量子化ノイズを整形するために、スケール因子が各スケール因子帯域に適用される。スケール因子帯域は、オーディオ信号内の周波数区間に対応し、各スケール因子帯域は周波数係数の集合の異なる部分集合を含む。典型的には、スケール因子帯域は、オーディオ信号の全体的な周波数範囲の臨界サブバンドへの知覚的に動機付けられた細分に対応する。エンコーダは典型的には各スケール因子帯域についてデフォルトのスケール因子1で出発する。所与の帯域における量子化ノイズが周波数依存のマスキング閾値（すなわち、この帯域における許容されるノイズ）を超えることが見出されるならば、この帯域についてのスケール因子は、量子化ノイズを低減するよう調整される。よって、スケール因子は（レート調整ループにおいて調整される全体的な利得値とは対照的に）周波数依存の利得値に対応し、これは各スケール因子帯域における量子化きざみを個々に制御するために使用されうる。
【００５２】
より小さな量子化ノイズを達成することはより多数の量子化きざみを、よってより高いビットレートを必要とするので、新しいスケール因子が使われるたびにレート調整ループが繰り返される必要があることがありうる。換言すれば、レート・ループはノイズ制御ループ内にネストされる。外側の（ノイズ制御）ループは、実際のノイズ（もとのスペクトル値から量子化されたスペクトル値を引いた差から計算される）がすべてのスケール因子帯域（すなわち臨界帯域）についてマスキング閾値を下回るまで実行される。
【００５３】
内側逐次反復ループは常に収束するものの、これは両方の逐次反復ループの組み合わせについては真ではない。例として、知覚的モデルがあまりに小さい量子化きざみサイズを要求し、目標ビットレートでの符号化を可能にするためにはレート・ループが常に量子化きざみサイズを増大させなければならない場合、両方のループは収束しない。収束が達成されない場合に逐次反復を停止させるよう条件が設定されてもよい。代替的または追加的に、マスキング閾値の決定は目標ビットレートに基づいていてもよい。換言すれば、たとえば知覚的処理ユニット５０６において決定されるマスキング閾値は目標ビットレートに依存してもよい。これは典型的には目標ビットレートへの量子化およびエンコード方式の収束を可能にする。
【００５４】
上述した逐次反復式の量子化およびエンコード・プロセス（ノイズ割り当てプロセスとも称される）は、量子化およびエンコードされた周波数係数の集合を決定するための一つの可能なプロセスでしかないことを注意しておくべきである。本稿に記載される並列化方式は、量子化およびエンコード・ユニット５０８内の並列なノイズ割り当てプロセスの他の実装にも等しく当てはまる。
【００５５】
量子化およびエンコード・プロセスの結果として、量子化されエンコードされた周波数係数の集合が、オーディオ信号１０１の対応するフレームについて得られる。量子化されエンコードされた周波数係数のこの集合は、典型的には当該フレームに割り当てられたビット数に依存する、ある数のビットとして表現される。オーディオ信号１０１の音響的内容は、たとえばトーン様内容を含むフレームと過渡的内容を含むフレームのように、フレームごとに著しく変動することがある。よって、（ある許容される知覚的な歪みを与えられたときに）フレームをエンコードするために必要とされるビット数はフレームによって変わりうる。例として、トーン様内容を含むフレームは、過渡的内容を含むフレームに比べて低下したビット数を必要とすることがある。同時に、全体的なエンコードされたオーディオ信号はある種の目標ビットレートを満たすべきである。たとえば、フレーム当たりの平均ビット数が所定の目標値を満たすべきである。
【００５６】
所定の目標ビットレートを保証するとともにフレームの変動するビット要求を考慮に入れるため、AACエンコーダ１００は典型的には、全体的なビット貯蓄（reservoir）との関連で機能するビット割り当てプロセスを利用する。全体的なビット貯蓄は、目標ビットレートに従ってフレームごとにある数のビットで満たされる。同時に、全体的なビット貯蓄は、過去のフレームをエンコードするために使われたビットの数をもって更新される。よって、全体的なビット貯蓄は、オーディオ信号１０１をエンコードするためにすでに使われたビットの量を追跡し、それによりオーディオ信号１０１の現在フレームをエンコードするために利用可能なビット数の指示を提供する。この情報は、現在フレームのエンコードのためのビット数を割り当てるためにビット割り当てプロセスによって使用される。この割り当てプロセスについて、現在フレームのブロック型が考慮に入れられてもよい。結果として、ビット割り当てプロセスは、量子化およびエンコード・ユニット１５２に、現在フレームのエンコードのために利用可能なビット数の指示を提供してもよい。この指示は、割り当てられたビットの最小数、割り当てられたビットの最大数および／または割り当てられたビットの平均数を含んでいてもよい。
【００５７】
量子化およびエンコード・ユニット１５２は、現在フレームに対応する周波数係数の集合を量子化およびエンコードするための割り当てられたビットの数の前記指示を使い、それにより量子化されエンコードされた周波数係数の集合を決定する。これはある実際のビット数を費消する。この実際のビット数は典型的には、上記で説明した量子化およびエンコード（ネストされたループを含む）の実行後にはじめてわかるものであり、割り当てられたビット数の指示によって提供される限界内で変動しうる。全体的なビット貯蓄は、この実際のビット数を使って更新され、ビット割り当てプロセスは後続フレームについて繰り返される。
【００５８】
図５は、K個のフレーム３０５に対応する周波数係数のK個の集合の量子化およびエンコードを並列に実行する並列化された量子化およびエンコード方式５０８を示している。上記で概説したように、周波数係数のk番目の集合の実際の量子化およびエンコードは、周波数係数の他の集合の量子化およびエンコードとは独立である。結果として、周波数係数のK個の集合の量子化およびエンコードは並列に実行できる。しかしながら、周波数のk番目の集合の量子化およびエンコードのための割り当てられるビット（たとえば割り当てられるビットの最大数、最小数および／または平均数）の指示は典型的には周波数係数の(k−1)番目の集合の量子化およびエンコード後の全体的なビット貯蓄の状態に依存する。したがって、修正されたビット割り当てプロセス５０７および修正されたビット貯蓄更新プロセス５０９が本稿において記述され、これらが並列化された量子化およびエンコード・プロセス５０８の実装を可能にする。
【００５９】
ビット割り当てプロセス５０７のある例は、周波数係数のK個の集合の実際の量子化およびエンコード５０８後にビット貯蓄を更新する段階を含んでいてもよい。すると、更新されたビット貯蓄が、周波数係数のその後のK個の集合へのビットの割り当てを並列に提供するビット割り当てプロセス５０７のための基礎となりうる。換言すれば、ビット貯蓄更新プロセス５０９およびビット割り当てプロセス５０７は、K個のフレームの群毎に実行されてもよい（フレーム毎に該プロセスを実行するのではなく）。
【００６０】
より具体的には、ビット割り当てプロセス５０７は、ビット貯蓄からK個のフレームの群についての利用可能なビットの総数Tを取得する段階（フレームごとに利用可能なビット数を得るのではなく）を含んでいてもよい。その後、ビット割り当てプロセス５０７は、利用可能なビットの総数Tを、K個のフレームの群の個々のフレームに分配してもよく、それによりK個のフレームの群のそれぞれのk番目のフレームについて割り当てられたビットのそれぞれの数Tk（k＝1,…,K）を与えてもよい。ビット割り当てプロセス５０７は、前記K個のフレームの諸フレームのブロック型を考慮に入れてもよい。具体的には、ビット割り当てプロセス５０７は、個々のフレームのブロック型のみが考慮に入れられる逐次的ビット割り当てプロセス５０７とは対照的に、K個のフレームの全フレームのブロック型をまとめて考慮に入れてもよい。K個のフレームの群内の隣り合うフレームのブロック型に関するこの追加的な情報は、改善されたビット割り当てを提供するために考慮に入れられてもよい。
【００６１】
K個のフレームの群のフレームへのビットの割り当てをさらに改善するために、ビット割り当て／ビット貯蓄更新プロセスは、合成による分析の仕方で実行されてもよく、それにより全体的なビット割り当てを最適化してもよい。合成による分析方式を利用する例示的な逐次反復式ビット割り当てプロセス７００が図７に示されている。ステップ７０１では、K個のフレーム３０５の群をエンコードするためのビットの総数Tがビット貯蓄部から受領される。ビットのこの総数Tはその後、K個のフレームの群のフレームに分配され、それによりK個のフレームの群のフレームk（k＝1,…,K）のそれぞれについての割り当てられるビット数Tkを与える（ステップ７０２）。ビット割り当てプロセス７００の最初の反復工程では、分配ステップ７０２は、主として、群内のK個のフレーム３０５のブロック型に基づいていてもよい。数Tkはそれぞれの量子化およびエンコード・ユニット５０８に渡され、そこでK個のフレームが量子化され、エンコードされ、それによりK個のエンコードされたフレームを与える。K個のエンコードされたフレームはそれぞれUkビット（k＝1,…,K）を使う。使用されるビットの数Ukはステップ７０３において受領される。
【００６２】
その後、逐次反復式ビット割り当てプロセス７００についての停止基準が満たされているかどうかが検証される（ステップ７０４）。例示的な停止基準は、次の一つまたは複数の基準のANDまたはOR結合を含んでいてもよい：当該逐次反復式ビット割り当てプロセスが所定の最大回数の反復工程を実行した；使用済みビットの合計、すなわちΣUkが利用可能なビット数Tと所定の関係を満たす；数UkおよびTkが、k＝1,…,Kの一部または全部について所定の関係を満たす、など。例として、フレームlについてUl＜Tlであれば、ビット割り当てプロセス７００のもう一回の反復工程を実行することが有益であることがありうる。ここで、TlはTlとUlの差だけ減少させられ、利用可能になるビット（Tl−Ul）は別のフレームに割り当てられる。
【００６３】
停止基準が満たされていなければ（参照符号７０５）、ビット割り当てプロセス７００のさらなる反復工程が実行される。ここで、Tビットの分配（ステップ７０２）は、直前の反復工程の使用済みビットUk（k＝1,…,K）の考慮のもとに実行される。他方、停止基準が満たされている場合（参照符号７０６）、逐次反復プロセスは打ち切られ、ビット貯蓄が実際に使用済みのビット数Uk（すなわち、最後の反復工程の使用済みビット）で更新される。
【００６４】
換言すれば、K個のフレームの群について、K個の並列の量子化およびエンコード・プロセス５０８のそれぞれに対して予備的なビットがまず割り当てられてもよい。結果として、量子化されエンコードされた周波数係数のK個の集合および実際の使用されたビット数K個が決定される。これら実際のビット数K個の分布が次いで解析されてもよく、K個の並列な量子化およびエンコード・プロセス５０８へのビット割り当てが修正されてもよい。例として、特定のフレームによって使用されなかった割り当てられたビットは別のフレーム（たとえば、割り当てられたビットのすべてを使い尽くしたフレーム）に割り当てられてもよい。K個の並列な量子化およびエンコード・プロセス５０８は修正されたビット割り当てプロセスを使って繰り返されてもよい、などとなる。グループごとのビット割り当てプロセス５０７を最適化するために、このプロセスのいくつかの反復工程（たとえば二回または三回の反復工程）が実行されてもよい。
【００６５】
図６は、図３、図４および図５において概説した並列化方式の代わりにまたはそれに加えて使用できるパイプライン方式６００を示している。パイプライン方式６００では、現在フレームkの周波数係数の集合が（参照符号３０１、３０４、３０３、５０６）、先行フレーム(k−1)の周波数係数の集合の量子化およびエンコード（参照符号６０８、６０９）と並列に決定される。それらの並列プロセスは現在フレームkについてのビット割り当て段６０７において結合される。上記で概説したように、ビット割り当て段６０７は入力として、直前のフレーム(k−1)の周波数係数の集合をエンコードするために使われた実際のビット数をもって更新されたビット貯留および／または現在フレームkのブロック型を入力として使う。図６のパイプライン方式６００を使うとき、現在フレームkの周波数係数の集合の決定（参照符号３０１、３０４、３０３、５０６）のためおよび先行フレーム(k−1)の周波数係数の集合の量子化およびエンコード（参照符号６０８、６０９）のために異なる処理ユニットが使用されてもよい。その結果、エンコード方式の約二倍の加速につながる。
【００６６】
図６に示されるように、パイプライン方式６００は並列化方式３００、４００、５００との組み合わせで使用されてもよい。これは、K個のフレームからなる現在の群が変換されて周波数係数のK個の集合を与える（参照符号３０１、３０４、３０３、５０６）間に、K個のフレームからなる直前の群の周波数係数の前のK個の集合が量子化されうる（参照符号６０８、６０９）ことを意味する。上記で概説したように、K個のフレームについての周波数係数のK個の集合の決定の並列化は、K個の異なる処理ユニット上でのこれらの並列処理の実装を許容する。同様に、K個の並列な量子化およびエンコード・プロセス６０８は、K個の異なる処理ユニット上で実装されてもよい。全体として、パイプライン方式６００では、2K個の並列処理ユニットが使用されてもよく、エンコード方式の全体として2K倍（たとえば、K＝10の場合なら20倍）の加速を与える。
【００６７】
図３、図４および図５では、高速オーディオ・エンコーダの実装を提供するために使用されてもよいいくつかの構造が示された。代替的または追加的に、一つまたは複数の処理ユニット上でエンコーダの実際の実装を加速するための施策を講じることができる。特に、オーディオ・エンコーダの加速された実装を与えるために述語論理が使用されてもよい。長い処理パイプラインをもつ処理ユニットには典型的には条件付きジャンプという問題がある。そのような条件付きジャンプはパイプラインの実行を妨げる（遅らせる）からである。パイプラインの条件付き実行は、加速された実装を提供するために使用されてもよいいくつかの処理ユニットの特徴である。あるいはまた、条件付き実行は、（明示的な条件の代わりに）ビット・マスクを使ってエミュレートされてもよい。本稿では、高速オーディオ・エンコードのためのさまざまな方法およびシステムが記述されている。並列な処理ユニット上でオーディオ・エンコーダのさまざまなコンポーネントの実装を可能にし、それにより全体的なエンコード時間を短縮するいくつかの並列エンコーダ・アーキテクチャが提示される。高速オーディオ・エンコードのための方法およびシステムは、たとえばオーディオ・ダウンロード・アプリケーションのコンテキストにおいて、リアルタイムより速いオーディオ・エンコードのために使われてもよい。
【００６８】
上記の記述および図面は単に提案される方法およびシステムの原理を例解するものであることを注意しておくべきである。よって、当業者には、本稿に明示的に記述または図示されていなくても、本発明の原理を具現し、その精神および範囲内に含まれるさまざまな構成を工夫できるであろうことは理解されるであろう。さらに、本稿に記載されるあらゆる例は主として、提案される方法およびシステムの原理および発明者によって当該技術を進めるために寄与される概念を理解することにおいて読者を支援するという教育目的のためにのみ明確に意図されており、そのような個別的に記載された例および条件に限定することなく解釈されるものである。さらに、本発明の原理、側面および実施形態ならびにその個別的な例を記述する本稿におけるあらゆる陳述は、その等価物を包含することが意図されている。
【００６９】
本稿に記述される方法および装置はソフトウェア、ファームウェアおよび／またはハードウェアとして実装されてもよい。ある種のコンポーネントはたとえばデジタル信号プロセッサまたはマイクロプロセッサ上で走るソフトウェアとして実装されてもよい。他のコンポーネントはたとえば、ハードウェアおよびまたは特定用途向け集積回路として実装されてもよい。記載される方法およびシステムにおいて遭遇される信号は、ランダム・アクセス・メモリまたは光記憶媒体のような媒体上に記憶されてもよい。該信号は、電波ネットワーク、衛星ネットワーク、無線ネットワークまたは有線ネットワーク、たとえばインターネットのようなネットワークを介して転送されてもよい。本稿に記載される方法およびシステムを利用する典型的な装置は、オーディオ信号を記憶および／または表現するために使用されるポータブル電子装置または他の消費者設備である。
いくつかの態様を記載しておく。
〔態様１〕
フレーム・ベースのオーディオ・エンコーダであって、
・K個の並列変換ユニットを有しており、前記K個の並列変換ユニットのそれぞれは、オーディオ信号のK個のフレームからなる群のそれぞれのフレームを、周波数係数のK個の集合のそれぞれに変換するよう構成されており、K＞1であり、前記K個のフレームのそれぞれは前記オーディオ信号の複数のサンプルを含む、
オーディオ・エンコーダ。
〔態様２〕
前記K個の並列変換ユニットのそれぞれが前記K個のフレームのそれぞれに修正離散コサイン変換を適用するよう構成されている、態様１記載のオーディオ・エンコーダ。
〔態様３〕
前記K個の並列変換ユニットのそれぞれが、前記K個のフレームのそれぞれに窓関数を適用するよう構成されている、態様１または２記載のオーディオ・エンコーダ。
〔態様４〕
前記K個の並列変換ユニットのそれぞれが、前記K個のフレームのそれぞれを、フレーム型に依存する周波数係数の集合に変換するよう構成されている、態様１ないし３のうちいずれか一項記載のオーディオ・エンコーダ。
〔態様５〕
・K個の並列な信号アタック検出ユニットをさらに有しており、各信号アタック検出ユニットは、前記K個のフレームのそれぞれを、前記K個のフレームの該それぞれの内部の音響アタックの有無に基づいて分類するよう構成されている、
態様４記載のオーディオ・エンコーダ。
〔態様６〕
・前記K個のフレームの分類に基づいて前記K個のフレームのそれぞれのフレーム型を決定するよう構成されたフレーム型検出ユニットをさらに有する、
態様５記載のオーディオ・エンコーダ。
〔態様７〕
前記フレーム型が：短ブロック型、長ブロック型、開始ブロック型および停止型のうちの一つである、態様６記載のオーディオ・エンコーダ。
〔態様８〕
前記フレーム型検出ユニットが、k＝1,…,Kとして、前記K個のフレームのうちの各フレームkのフレーム型を、フレームk−1のフレーム型にも基づいて決定するよう構成されている、態様６または７記載のオーディオ・エンコーダ。
〔態様９〕
前記K個の並列変換ユニット（４０３）が前記K個の並列な信号アタック検出ユニット（３０１）および前記フレーム型検出ユニット（３０４）と並列に動作させられる、態様６ないし８のうちいずれか一項記載のオーディオ・エンコーダ（４００）。
〔態様１０〕
前記K個の並列変換ユニットのそれぞれは、前記K個のフレームのそれぞれを、周波数係数の複数のフレーム型依存の集合に変換するよう構成されており、
当該エンコーダはさらに、前記K個のフレームのそれぞれについて、周波数係数の前記複数のフレーム型依存の集合から前記周波数係数の集合を選択するよう構成された選択ユニットを有しており、選択された集合はそれぞれのフレームのフレーム型に対応するものである、
態様６ないし９のうちいずれか一項記載のオーディオ・エンコーダ。
〔態様１１〕
前記K個の並列な信号アタック検出ユニット（３０１）が、前記K個の並列変換ユニット（４０３）と逐次的に動作させられる前記フレーム型検出ユニット（３０４）と逐次的に動作させられる、態様６ないし８のうちいずれか一項記載のオーディオ・エンコーダ（４００）。
〔態様１２〕
前記K個の並列変換ユニット（３０３）が、前記K個のフレームのそれぞれを、前記フレーム型検出ユニット（３０４）によって決定されるそれぞれのフレームのフレーム型に対応する周波数係数の集合に変換するよう構成されている、態様６ないし８および１１のうちいずれか一項記載のオーディオ・エンコーダ（３００、５００、６００）。
〔態様１３〕
・K個の並列な量子化およびエンコード・ユニットをさらに有しており、前記K個の並列な量子化およびエンコード・ユニットのそれぞれは、周波数係数の前記K個の集合のそれぞれを、それぞれの割り当てビット数の考慮のもとに、量子化し、エントロピー符号化するよう構成されている、
態様１ないし１２のうちいずれか一項記載のオーディオ・エンコーダ。
〔態様１４〕
・K個の並列な音響心理学的ユニットをさらに有しており、前記K個の並列な音響心理学的ユニットのそれぞれは、周波数係数の前記K個の集合のそれぞれに基づいて、一つまたは複数のフレーム依存のマスキング閾値を決定するよう構成されている、
態様１３記載のオーディオ・エンコーダ。
〔態様１５〕
前記K個の並列な音響心理学的ユニットのそれぞれは、前記K個のフレームのそれぞれのフレームの情報内容を示す知覚的エントロピー値を決定するよう構成されている、態様１４記載のオーディオ・エンコーダ。
〔態様１６〕
前記K個の並列な量子化およびエンコード・ユニットのそれぞれは、それぞれの一つまたは複数のフレーム依存のマスキング閾値の考慮のもとに、周波数係数の前記K個の集合のそれぞれを量子化およびエントロピー符号化するよう構成されている、態様１４または１５記載のオーディオ・エンコーダ。
〔態様１７〕
前記K個の並列な量子化およびエンコード・ユニットのそれぞれに、それぞれのビット数を割り当てるよう構成されたビット割り当てユニットをさらに有する、
態様１３ないし１６のうちいずれか一項記載のオーディオ・エンコーダ。
〔態様１８〕
前記ビット割り当てユニットが、前記K個のフレームのフレーム型の考慮のもとにそれぞれのビット数を割り当てるよう構成されている、態様６を引用する場合の態様１７記載のオーディオ・エンコーダ。
〔態様１９〕
前記ビット割り当てユニットが、前記K個のフレームの知覚的エントロピー値の考慮のもとにそれぞれのビット数を割り当てるよう構成されている、態様１５記載のオーディオ・エンコーダ。
〔態様２０〕
・前記K個のフレームに先行する前記オーディオ信号のフレームをエンコードするために使われた以前に消費されたビットの数を追跡するよう構成されたビット貯蓄追跡ユニットをさらに有する、
態様１７ないし１９のうちいずれか一項記載のオーディオ・エンコーダ。
〔態様２１〕
前記ビット貯蓄追跡ユニットは、周波数係数の集合をエンコードするために前記K個の並列な量子化およびエンコード・ユニットによって使われたビットの数を用いて、前記以前に消費されたビットの数を更新し、それにより現在消費されるビットの数を与えるよう構成されている、態様２０記載のオーディオ・エンコーダ。
〔態様２２〕
前記ビット割り当てユニットは、前記以前に消費されたビットの数の考慮のもとに、それぞれのビット数を割り当てるよう構成されている、態様２０または２１記載のオーディオ・エンコーダ。
〔態様２３〕
前記ビット割り当てユニットは、前記オーディオ信号をエンコードするための目標ビットレートの考慮のもとに、それぞれのビット数を割り当てるよう構成されている、態様２０ないし２２のうちいずれか一項記載のオーディオ・エンコーダ。
〔態様２４〕
前記ビット割り当てユニットは、前記現在消費されるビットの数を考慮に入れる合成による分析の仕方で、それぞれのビット数を割り当てるよう構成されている、態様２１ないし２３のうちいずれか一項記載のオーディオ・エンコーダ。
〔態様２５〕
・前記ビット割り当てユニットは、前記現在消費されるビットの数の考慮のもとにそれぞれのビット数を割り当て、それにより前記K個の並列な量子化およびエンコード・ユニットのそれぞれについて、割り当てられたビットのそれぞれの更新された数を与えるよう構成されており、
・前記K個の並列な量子化およびエンコード・ユニットのそれぞれは、割り当てられたビットのそれぞれの更新された数の考慮のもとに、周波数係数の前記K個の集合のそれぞれを量子化し、エントロピー符号化するよう構成されている、
態様２１ないし２４のうちいずれか一項記載のオーディオ・エンコーダ。
〔態様２６〕
・前記K個の並列な量子化およびエンコード・ユニットおよび前記K個の並列変換ユニットはパイプライン・アーキテクチャにおいて動作するよう構成されており、
・前記K個の並列な量子化およびエンコード・ユニットは、前記K個の並列変換ユニットがK個のフレームの群のフレームを変換している間に、K個のフレームの群のK個の先行フレームに対応する周波数係数のK個の先行する集合を量子化およびエンコードする、
態様２０ないし２５のうちいずれか一項記載のオーディオ・エンコーダ。
〔態様２７〕
前記K個の並列変換ユニットが少なくともK個の異なる処理ユニット上で実装される、態様１ないし２６のうちいずれか一項記載のオーディオ・エンコーダ。
〔態様２８〕
前記オーディオ・エンコーダが、AACと称される先進オーディオ符号化を実行するよう構成されている、態様１ないし２７のうちいずれか一項記載のオーディオ・エンコーダ。
〔態様２９〕
少なくともK個の異なる処理ユニット上でオーディオ信号のK個のフレームを並列にエンコードするよう構成されているフレーム・ベースのオーディオ・エンコーダであって、K＞1であり、当該オーディオ・エンコーダは：
・前記K個のフレームのそれぞれを周波数係数のK個の集合のそれぞれに変換するようそれぞれ構成されているK個の並列変換ユニット；
・前記K個のフレームのそれぞれのフレームを、前記K個のフレームの該それぞれのフレーム内の音響アタックの有無に基づいて分類するようそれぞれ構成されているK個の並列な信号アタック検出ユニット；
・割り当てられたそれぞれのビット数の考慮のもとに、周波数係数の前記K個の集合を量子化およびエントロピー符号化するようそれぞれ構成されているK個の並列な量子化およびエンコード・ユニット、
のうちの少なくとも一つを有する、オーディオ・エンコーダ。
〔態様３０〕
少なくともK個の異なる処理ユニット上でオーディオ信号のK個のフレームを並列にエンコードするよう構成されているフレーム・ベースのオーディオ・エンコーダであって、K＞1であり、当該オーディオ・エンコーダは：
・前記K個のフレームを周波数係数のK個の対応する集合に変換するよう構成されている変換ユニットと；
・K個の並列な量子化およびエンコード・ユニットであって、該K個の並列な量子化およびエンコード・ユニットのそれぞれは、それぞれの割り当てられたビット数の考慮のもとに、周波数係数の前記K個の集合のそれぞれを量子化およびエントロピー符号化するよう構成されている、量子化およびエンコード・ユニットと；
・前記K個のフレームに先行する前記オーディオ信号のフレームをエンコードするために使われたビットの以前に消費された数に基づいて、前記K個の並列な量子化およびエンコード・ユニットのそれぞれにそれぞれのビット数を割り当てるよう構成されたビット割り当てユニットとを有する、
オーディオ・エンコーダ。
〔態様３１〕
少なくともK個の異なる処理ユニット上でオーディオ信号のK個のフレームを並列にエンコードするよう構成されているフレーム・ベースのオーディオ・エンコーダであって、K＞1であり、当該オーディオ・エンコーダは、
・K個の並列な信号アタック検出ユニットであって、各信号アタック検出ユニットは、前記K個のフレームのそれぞれを、前記K個のフレームのそれぞれの中の音響アタックの有無に基づいて分類するよう構成されている、信号アタック検出ユニットと；
・k＝1,…,Kとして、前記K個のフレームのうちの各フレームkのフレーム型を、該フレームkの分類に基づきかつフレームk−1のフレーム型に基づいて決定するよう構成されたフレーム型検出ユニットと；
・K個の並列変換ユニットであって、該K個の並列変換ユニットのそれぞれは、前記K個のフレームのそれぞれを周波数係数のK個の集合のそれぞれに変換するよう構成されており、フレームkに対応する周波数係数の集合kはフレームkのフレーム型に依存する、並列変換ユニットとを有する、
オーディオ・エンコーダ。
〔態様３２〕
フレームのシーケンスを含むオーディオ信号をエンコードする方法であって：
・K＞1として、前記オーディオ信号のK個のフレームを並列に周波数係数の対応するK個の集合に変換する段階；
・前記K個のフレームのそれぞれのフレーム内の音響アタックの有無に基づいて前記K個のフレームの各フレームを並列に分類する段階；および
・それぞれの割り当てられたビット数の考慮のもとで、周波数係数の前記K個の集合の各集合を並列に量子化およびエントロピー符号化する段階、
のうちの任意の一つまたは複数を含む、
方法。
〔態様３３〕
フレームのシーケンスを含むオーディオ信号をエンコードする方法であって、
・K＞1として、前記オーディオ信号のK個のフレームを周波数係数のK個の対応する集合に変換する段階と；
・それぞれの割り当てられたビット数の考慮のもとに、周波数係数の前記K個の集合のそれぞれを並列に量子化およびエントロピー符号化する段階と；
・前記K個のフレームに先行する前記オーディオ信号のフレームをエンコードするために使われたビットの以前に消費された数に基づいて、前記それぞれのビット数を割り当てる段階とを含む、
方法。
〔態様３４〕
フレームのシーケンスを含むオーディオ信号をエンコードする方法であって、
・K＞1として、前記オーディオ信号のK個のフレームのそれぞれを、前記K個のフレームのそれぞれのフレーム内の音響アタックの有無に基づいて分類する段階と；
・k＝1,…,Kとして、前記K個のフレームのうちの各フレームkのフレーム型を、該フレームkの分類に基づきかつフレームk−1のフレーム型に基づいて決定する段階と；
・前記K個のフレームのそれぞれを周波数係数のK個の集合のそれぞれに並列に変換する段階であって、フレームkに対応する周波数係数の集合kはフレームkのフレーム型に依存する、段階とを含む、
方法。
〔態様３５〕
プロセッサ上での実行のために適応された、プロセッサ上で実行されたときに態様３２ないし３４のうちいずれか一項記載の方法の段階を実行するためのソフトウェア・プログラム。
〔態様３６〕
プロセッサ上での実行のために適応された、コンピューティング装置上で実行されたときに態様３２ないし３４のうちいずれか一項記載の方法の段階を実行するためのソフトウェア・プログラムを有する記憶媒体。
〔態様３７〕
コンピュータ上で実行されたときに態様３２ないし３４のうちいずれか一項記載の方法の段階を実行するための実行可能な命令を含んでいる、コンピュータ・プログラム・プロダクト。
【図１ａ】
0005864776.tif 000002
【図１ｂ】
0005864776.tif 000003
【図２】
0005864776.tif 000004
【図３】
0005864776.tif 000005
【図４】
0005864776.tif 000006
【図５】
0005864776.tif 000007
【図６】
0005864776.tif 000008
【図７】
0005864776.tif 000009