(57)【特許請求の範囲】
【請求項１】
オーディオ処理アルゴリズム（「APA」）をベンチマーキングする方法であって、前記APAは実際に対応APAを実装することなく該対応APAのパフォーマンス特性をシミュレートする人工APAであり、前記対応APAは第一の展開されたシステムによる現実の使用のために意図された機能的APAであり、当該方法は：
（ａ）考えられている第二の展開されたシステムが前記APAを実行するときの期待されるリアルタイム動作をシミュレートする仕方で、オーディオ・データを処理することによることを含め、前記APAを実行するようオーディオ・プロセッサを動作させる段階であって、段階（ａ）における前記オーディオ・データの前記処理は、スリープ区間によって分離された一連の処理区間を含むバースト・モードで実行され、各処理区間の間に前記オーディオ・データのブロックが処理され、スリープ区間の間には前記オーディオ・データのブロックは処理されず、段階（ａ）は、前記バースト・モードについてのデューティーサイクルまたは前記バースト・モードについてのブロック・サイズの少なくとも一方を含む選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行される、段階と；
（ｂ）段階（ａ）を実行している間に、前記オーディオ・データの処理の間に前記APAの少なくとも一つのパフォーマンス特性を示すベンチマーキング・データを生成する段階であって、前記ベンチマーキング・データは前記APAのベンチマークを決定する、段階とを含む、
方法。
【請求項２】
段階（ｂ）は、前記オーディオ・データの前記処理の間の前記オーディオ・プロセッサによる電力消費の測定を含み、前記ベンチマークは前記電力消費を示す、請求項１記載の方法。
【請求項３】
段階（ａ）が、選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行される、請求項１記載の方法。
【請求項４】
前記人工APAは、前記対応APAを実行する前記考えられている第二の展開されたシステムの期待されるリアルタイム動作をシミュレートする仕方で、一組のベンチマーキング・パラメータに従って、前記オーディオ・データを処理するよう、前記対応APAを実行するよう前記オーディオ・プロセッサを動作させ、その間に、前記オーディオ・データの処理の間に前記対応APAの前記少なくとも一つのパフォーマンス特性を示す対応APAベンチマーキング・データを決定したとしたらその結果、前記対応APAベンチマーキング・データが、前記人工APAを実行する前記考えられている第二の展開されたシステムの期待されるリアルタイム動作をシミュレートする前記仕方で、前記一組のベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう前記人工APAを実行するよう前記オーディオ・プロセッサを動作させる間に段階（ｂ）において決定されるベンチマークに一致する対応APAベンチマークを決定するようなものである、請求項１記載の方法。
【請求項５】
前記人工APAはユーザー選択された人工APAであり、当該方法は：
少なくとも二つの選択可能な人工APAのうち少なくとも一つのユーザー選択を可能にするユーザー・コントロールを提供し、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答する段階を含む、
請求項１記載の方法。
【請求項６】
前記選択可能な人工APAが：
入力オーディオ・データに応答してデコードされたオーディオ・データを生成するよう前記オーディオ・プロセッサによって実行可能である少なくとも一つの選択可能なデコードAPAと、
前記デコードされたオーディオ・データに応答して処理されたオーディオ・データを生成するよう前記オーディオ・プロセッサによって実行可能である少なくとも一つのオーディオ後処理APAとを含む、
請求項５記載の方法。
【請求項７】
前記APAがユーザー選択されたAPAであり、当該方法は：
異なるレベルの複雑さをもつ選択可能なAPAのメニューからの少なくとも一つの選択可能なAPAのユーザー選択を可能にする少なくとも一つの複雑さコントロールを提供し、前記選択可能なAPAのうちからの前記ユーザー選択されたAPAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答する段階を含む、
請求項１記載の方法。
【請求項８】
前記人工APAがユーザー選択された人工APAであり、当該方法は：
異なるレベルの複雑さをもつ選択可能な人工APAのメニューからの少なくとも一つの選択可能な人工APAのユーザー選択を可能にする少なくとも一つの複雑さコントロールを提供し、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答する段階を含む、
請求項１記載の方法。
【請求項９】
ベンチマーキングする方法であって：
（ａ）実際に対応APAを実装することなく該対応APAのパフォーマンス特性をシミュレートする人工オーディオ処理アルゴリズム（「人工APA」）を決定する段階であって、前記対応APAは考えられている第一の展開されたシステムによる現実の使用のために意図されているオーディオ処理アルゴリズム（「APA」）である、段階と；
（ｂ）第二の展開されたシステムが前記人工APAを実行するときの期待されるリアルタイム動作をシミュレートする仕方で前記人工APAがベンチマーキング・システムによって実行されている間に、前記人工APAをベンチマーキングすることの結果として、前記人工APAのベンチマークを決定する段階とを含み、
前記ベンチマーキング・システムはオーディオ・プロセッサであるかオーディオ・プロセッサを含んでおり、段階（ｂ）は：
（ｃ）前記考えられている第二の展開されたシステムが前記人工APAを実行するときの期待されるリアルタイム動作をシミュレートする仕方で、オーディオ・データを処理することによることを含め、前記人工APAを実行するよう前記オーディオ・プロセッサを動作させる段階であって、段階（ｃ）における前記オーディオ・データの前記処理は、スリープ区間によって分離された一連の処理区間を含むバースト・モードで実行され、各処理区間の間に前記オーディオ・データのブロックが処理され、スリープ区間の間には前記オーディオ・データのブロックは処理されず、段階（ｃ）は、前記バースト・モードについてのデューティーサイクルまたは前記バースト・モードについてのブロック・サイズの少なくとも一方を含む選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行される、段階と；
（ｄ）段階（ｃ）を実行している間に、前記オーディオ・データの処理の間に前記人工APAの少なくとも一つのパフォーマンス特性を示すベンチマーキング・データを生成する段階であって、前記ベンチマーキング・データは前記人工APAの前記ベンチマークを決定する、段階とを含む、
方法。
【請求項１０】
段階（ｄ）は、前記オーディオ・データの前記処理の間の前記オーディオ・プロセッサによる電力消費の測定を含み、前記ベンチマークは前記電力消費を示す、請求項９記載の方法。
【請求項１１】
段階（ｃ）が、選択可能なベンチマーキング・パラメータのユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行される、請求項９記載の方法。
【請求項１２】
前記人工APAは、前記考えられている第一の展開されたシステムが前記対応APAを実行するときの期待されるリアルタイム動作をシミュレートする仕方で、一組のベンチマーキング・パラメータに従って、前記オーディオ・データを処理するよう、前記対応APAを実行するよう前記オーディオ・プロセッサを動作させ、その間に、前記オーディオ・データの処理の間に前記対応APAの前記少なくとも一つのパフォーマンス特性を示す対応APAベンチマーキング・データを決定したとしたらその結果、前記対応APAベンチマーキング・データが、前記考えられている第二の展開されたシステムが前記人工APAを実行するときの期待されるリアルタイム動作をシミュレートする前記仕方で、前記一組のベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう前記人工APAを実行するよう前記オーディオ・プロセッサを動作させる間に段階（ｂ）において決定されるベンチマークに一致する対応APAベンチマークを決定するようなものである、請求項９記載の方法。
【請求項１３】
前記考えられている第一の展開されたシステムが、前記考えられている第二の展開されたシステムと少なくとも実質的に同一である、請求項９記載の方法。
【請求項１４】
前記人工APAはユーザー選択された人工APAであり、当該方法は：
少なくとも二つの選択可能な人工APAのうちいずれか一つのユーザー選択を可能にするユーザー・コントロールを提供し、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答する段階を含む、
請求項９記載の方法。
【請求項１５】
前記選択可能な人工APAが：
入力オーディオ・データに応答してデコードされたオーディオ・データを生成するよう前記オーディオ・プロセッサによって実行可能である少なくとも一つの選択可能なデコードAPAと、
前記デコードされたオーディオ・データに応答して処理されたオーディオ・データを生成するよう前記オーディオ・プロセッサによって実行可能である少なくとも一つのオーディオ後処理APAとを含む、
請求項１４記載の方法。
【請求項１６】
前記人工APAがユーザー選択された人工APAであり、当該方法は：
異なるレベルの複雑さをもつ選択可能な人工APAのメニューからの少なくとも一つの選択可能な人工APAのユーザー選択を可能にする少なくとも一つの複雑さコントロールを提供し、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答する段階を含む、
請求項９記載の方法。
【請求項１７】
前記人工APAは、前記ベンチマーキング・システムのメモリに記憶されていると想定される、信号処理機能を実装するためのコードへの呼び出しを含んでおり、前記ベンチマーキング・システムによる前記人工APAの実行は、前記コードの少なくとも一部への呼び出しを含み、前記コードの少なくとも一部への前記呼び出しは、前記ベンチマーキング・システムに前記信号処理機能のシーケンスを実行させるために段階（ｂ）の間に実行される、請求項９記載の方法。
【請求項１８】
オーディオ処理アルゴリズム（「APA」）をベンチマーキングするよう構成されたオーディオ・ベンチマーキング・システムであって、前記APAは実際に対応APAを実装することなく該対応APAのパフォーマンス特性をシミュレートする人工APAであり、前記対応APAは第一の展開されたシステムによる現実の使用のために意図された機能的APAであり、当該システムは：
考えられている第二の展開されたシステムが前記APAを実行するときの期待されるリアルタイム動作をシミュレートする仕方で、オーディオ・データを処理することによることを含め、前記APAを実行するよう結合され構成されたオーディオ・プロセッサであって、前記オーディオ・プロセッサは、前記オーディオ・データの前記処理を、スリープ区間によって分離された一連の処理区間を含むバースト・モードで行なうよう構成され、各処理区間の間に前記オーディオ・データのブロックが処理され、スリープ区間の間には前記オーディオ・データのブロックは処理されず、前記オーディオ・プロセッサは、前記バースト・モードについてのデューティーサイクルまたは前記バースト・モードについてのブロック・サイズの少なくとも一方を含む選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう構成される、オーディオ・プロセッサと；
前記オーディオ・プロセッサによる前記オーディオ・データの処理の間に前記APAの少なくとも一つのパフォーマンス特性を示すベンチマーキング・データを生成するよう結合され構成された第二のサブシステムであって、前記ベンチマーキング・データは前記APAのベンチマークを決定する、第二のサブシステムとを含む、
システム。
【請求項１９】
前記第二のサブシステムは、前記オーディオ・プロセッサによる前記オーディオ・データの前記処理の間の前記オーディオ・プロセッサによる電力消費を測定するよう構成され、前記ベンチマークは前記電力消費を示す、請求項１８記載のシステム。
【請求項２０】
前記オーディオ・プロセッサが、選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう構成される、請求項１８記載のシステム。
【請求項２１】
前記人工APAは、前記考えられている第二の展開されたシステムが前記対応APAを実行するときの期待されるリアルタイム動作をシミュレートする仕方で、一組のベンチマーキング・パラメータに従って、前記オーディオ・データを処理するよう、前記対応APAを実行するよう前記オーディオ・プロセッサが動作し、その間に、前記第二のサブシステムが、前記オーディオ・データの処理の間に前記対応APAの前記少なくとも一つのパフォーマンス特性を示す対応APAベンチマーキング・データを決定したとしたらその結果、前記対応APAベンチマーキング・データが、前記考えられている第二の展開されたシステムが前記人工APAを実行するときの期待されるリアルタイム動作をシミュレートする前記仕方で、前記一組のベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう前記オーディオ・プロセッサが前記人工APAを実行する間に前記第二のサブシステムによって決定されるベンチマークに一致する対応APAベンチマークを決定するようなものである、請求項１８記載のシステム。
【請求項２２】
前記人工APAはユーザー選択された人工APAであり、当該システムは：
少なくとも二つの選択可能な人工APAのうち少なくとも一つのユーザー選択を可能にするユーザー・コントロールを提供するよう結合され構成されたユーザー・インターフェースをも含み、当該システムは、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答するよう構成される、
請求項１８記載のシステム。
【請求項２３】
前記選択可能な人工APAが：
入力オーディオ・データに応答してデコードされたオーディオ・データを生成するよう前記オーディオ・プロセッサによって実行可能である少なくとも一つの選択可能なデコードAPAと、
前記デコードされたオーディオ・データに応答して処理されたオーディオ・データを生成するよう前記オーディオ・プロセッサによって実行可能である少なくとも一つのオーディオ後処理APAとを含む、
請求項２２記載のシステム。
【請求項２４】
前記少なくとも二つの選択可能な人工APAを決定するデータを非一時的な仕方で記憶するよう結合され構成されたメモリをも含む、
請求項２２記載のシステム。
【請求項２５】
前記人工APAを決定するデータを非一時的な仕方で記憶するよう結合され構成されたメモリをも含む、
請求項１８記載のシステム。
【請求項２６】
前記人工APAがユーザー選択された人工APAであり、当該システムは：
異なるレベルの複雑さをもつ選択可能な人工APAのメニューからの少なくとも一つの選択可能な人工APAのユーザー選択を可能にする少なくとも一つの複雑さコントロールを提供するよう結合され構成されたユーザー・インターフェースをも含み、当該システムは、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答するよう構成される、
請求項１８記載のシステム。
【請求項２７】
前記APAがユーザー選択されたAPAであり、当該システムは：
異なるレベルの複雑さをもつ選択可能なAPAのメニューからの少なくとも一つの選択可能なAPAのユーザー選択を可能にする少なくとも一つの複雑さコントロールを提供するよう結合され構成されたユーザー・インターフェースをも含み、当該システムは、前記選択可能なAPAのうちからの前記ユーザー選択されたAPAのユーザー選択に対して、前記ユーザー選択されたAPAを実行するよう前記オーディオ・プロセッサを構成することによって応答するよう構成される、
請求項１８記載のシステム。
【請求項２８】
前記ベンチマーキング・データの少なくとも一部を非一時的な仕方で記憶するよう結合され構成されたメモリをも含む、
請求項１８記載のシステム。
【請求項２９】
実際に対応APAを実装することなく該対応APAのパフォーマンス特性をシミュレートする人工オーディオ処理アルゴリズム（「人工APA」）をベンチマーキングするよう構成されたオーディオ・ベンチマーキング・システムであって、前記対応APAは考えられている第一の展開されたオーディオ・プロセッサによる現実の使用のために意図されたオーディオ処理アルゴリズム（「APA」）であり、当該オーディオ・ベンチマーキング・システムは：
考えられている第二の展開されたオーディオ・プロセッサが前記人工APAを実行するときの期待されるリアルタイム動作をシミュレートする仕方で、オーディオ・データを処理することによることを含め、前記人工APAを実行するよう結合され構成されたオーディオ・プロセッサであって、前記オーディオ・プロセッサは、前記オーディオ・データの前記処理を、スリープ区間によって分離された一連の処理区間を含むバースト・モードで行なうよう構成され、各処理区間の間に前記オーディオ・データのブロックが処理され、スリープ区間の間には前記オーディオ・データのブロックは処理されず、前記オーディオ・プロセッサは、前記バースト・モードについてのデューティーサイクルまたは前記バースト・モードについてのブロック・サイズの少なくとも一方を含む選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう構成される、オーディオ・プロセッサと；
前記オーディオ・プロセッサによる前記オーディオ・データの処理の間に前記人工APAの少なくとも一つのパフォーマンス特性を示すベンチマーキング・データを生成するよう結合され構成された第二のサブシステムであって、前記ベンチマーキング・データは前記人工APAのベンチマークを決定する、第二のサブシステムとを含む、
システム。
【請求項３０】
前記第二のサブシステムは、前記オーディオ・プロセッサによる前記オーディオ・データの前記処理の間の前記オーディオ・プロセッサによる電力消費を測定するよう構成され、前記ベンチマークは前記電力消費を示す、請求項２９記載のシステム。
【請求項３１】
前記オーディオ・プロセッサが、選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう構成される、請求項２９記載のシステム。
【請求項３２】
前記人工APAは、前記対応APAを実行する前記考えられている第一の展開されたオーディオ・プロセッサの期待されるリアルタイム動作をシミュレートする仕方で、一組のベンチマーキング・パラメータに従って、前記オーディオ・データを処理するよう、前記対応APAを実行するよう前記オーディオ・プロセッサが動作し、その間に、前記第二のサブシステムが、前記オーディオ・データの処理の間に前記対応APAの前記少なくとも一つのパフォーマンス特性を示す対応APAベンチマーキング・データを決定したとしたらその結果、前記対応APAベンチマーキング・データが、前記人工APAを実行する前記考えられている第二の展開されたオーディオ・プロセッサの期待されるリアルタイム動作をシミュレートする前記仕方で、前記一組のベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう前記オーディオ・プロセッサが前記人工APAを実行する間に前記第二のサブシステムによって決定されるベンチマークに一致する対応APAベンチマークを決定するようなものである、請求項２９記載のシステム。
【請求項３３】
前記考えられている第一の展開されたシステムが、前記考えられている第二の展開されたシステムと少なくとも実質的に同一である、請求項２９記載のシステム。
【請求項３４】
前記人工APAはユーザー選択された人工APAであり、当該オーディオ・ベンチマーキング・システムは：
少なくとも二つの選択可能な人工APAのうち少なくとも一つのユーザー選択を可能にするユーザー・コントロールを提供するよう結合され構成されたユーザー・インターフェースをも含み、当該オーディオ・ベンチマーキング・システムは、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答するよう構成される、
請求項２９記載のオーディオ・ベンチマーキング・システム。
【請求項３５】
前記選択可能な人工APAが：
入力オーディオ・データに応答してデコードされたオーディオ・データを生成するよう前記オーディオ・プロセッサによって実行可能である少なくとも一つの選択可能なデコードAPAと、
前記デコードされたオーディオ・データに応答して処理されたオーディオ・データを生成するよう前記オーディオ・プロセッサによって実行可能である少なくとも一つのオーディオ後処理APAとを含む、
請求項３４記載のシステム。
【請求項３６】
前記少なくとも二つの選択可能な人工APAを決定するデータを非一時的な仕方で記憶するよう結合され構成されたメモリをも含む、
請求項３４記載のシステム。
【請求項３７】
前記人工APAを決定するデータを非一時的な仕方で記憶するよう結合され構成されたメモリをも含む、
請求項２９記載のシステム。
【請求項３８】
前記人工APAがユーザー選択された人工APAであり、当該オーディオ・ベンチマーキング・システムは：
異なるレベルの複雑さをもつ選択可能な人工APAのメニューからの少なくとも一つの選択可能な人工APAのユーザー選択を可能にする少なくとも一つの複雑さコントロールを提供するよう結合され構成されたユーザー・インターフェースをも含み、当該オーディオ・ベンチマーキング・システムは、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答するよう構成される、
請求項２９記載のオーディオ・ベンチマーキング・システム。
【請求項３９】
前記ベンチマーキング・データの少なくとも一部を非一時的な仕方で記憶するよう結合され構成されたメモリをも含む、
請求項２９記載のシステム。
【請求項４０】
オーディオ処理アルゴリズム（「APA」）のベンチマーキングを実行するよう、オーディオ・プロセッサであるまたはオーディオ・プロセッサを含む処理システムをプログラムするためのコンピュータ実行可能コードを非一時的な仕方で記憶しているコンピュータ読み取り可能な媒体であって、前記ベンチマーキングを実行することは：
（ａ）考えられている展開されたシステムが前記APAを実行するときの期待されるリアルタイム動作をシミュレートする仕方で、オーディオ・データを処理することによることを含め、前記APAを実行するよう前記オーディオ・プロセッサを動作させる段階と；
（ｂ）段階（ａ）を実行している間に、前記オーディオ・データの処理の間に前記APAの少なくとも一つのパフォーマンス特性を示すベンチマーキング・データを生成する段階であって、前記ベンチマーキング・データは前記APAのベンチマークを決定する、段階とによることを含み、
前記コンピュータ実行可能コードは、段階（ａ）における前記オーディオ・データの前記処理が、スリープ区間によって分離された一連の処理区間を含むバースト・モードで実行され、各処理区間の間に前記オーディオ・データのブロックが処理され、スリープ区間の間には前記オーディオ・データのブロックは処理されず、段階（ａ）は、前記バースト・モードについてのデューティーサイクルまたは前記バースト・モードについてのブロック・サイズの少なくとも一方を含む選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行される、よう、前記処理システムをプログラムするためのコードを含み、
前記コンピュータ実行可能コードは、前記APAが実際に対応APAを実装することなく該対応APAのパフォーマンス特性をシミュレートするユーザー選択された人工APAであり、前記対応APAは第一の展開されたシステムによる現実の使用のために意図された機能的APAであるよう、かつ、前記APAの前記ベンチマーキングが：
少なくとも二つの選択可能な人工APAのうち少なくとも一つのユーザー選択を可能にするユーザー・コントロールを提供し、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答する段階を含む、よう、前記処理システムをプログラムするためのコードを含む、
媒体。
【請求項４１】
前記コンピュータ実行可能コードは、段階（ｂ）が、前記オーディオ・データの前記処理の間の前記オーディオ・プロセッサによる電力消費の測定を含み、前記ベンチマークが前記電力消費を示すよう、前記処理システムをプログラムするためのコードを含む、請求項４０記載の媒体。
【請求項４２】
前記コンピュータ実行可能コードは、段階（ａ）が、選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行されるよう、前記処理システムをプログラムするためのコードを含む、請求項４０記載の媒体。
【請求項４３】
実際に対応APAを実装することなく該対応APAのパフォーマンス特性をシミュレートする人工オーディオ処理アルゴリズム（「人工APA」）のベンチマーキングを実行するよう、オーディオ・プロセッサであるまたはオーディオ・プロセッサを含む処理システムをプログラムするためのコンピュータ実行可能コードを非一時的な仕方で記憶しているコンピュータ読み取り可能な媒体であって、前記対応APAは考えられている第一の展開されたシステムによる現実の使用のために意図されたオーディオ処理アルゴリズム（「APA」）であり、前記人工APAの前記ベンチマーキングは：
（ａ）考えられている第二の展開されたシステムが前記人工APAを実行するときの期待されるリアルタイム動作をシミュレートする仕方でオーディオ・データを処理することによることを含め、前記人工APAを実行するよう前記オーディオ・プロセッサを動作させる段階であって、前記コンピュータ実行可能コードは、段階（ａ）における前記オーディオ・データの前記処理が、スリープ区間によって分離された一連の処理区間を含むバースト・モードで実行され、各処理区間の間に前記オーディオ・データのブロックが処理され、スリープ区間の間には前記オーディオ・データのブロックは処理されず、段階（ａ）は、前記バースト・モードについてのデューティーサイクルまたは前記バースト・モードについてのブロック・サイズの少なくとも一方を含む選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行される、よう、前記処理システムをプログラムするためのコードを含む、段階と；
（ｂ）段階（ａ）を実行している間に、前記オーディオ・データの処理の間に前記人工APAの少なくとも一つのパフォーマンス特性を示すベンチマーキング・データを生成する段階であって、前記ベンチマーキング・データは前記人工APAのベンチマークを決定する、段階とを含む、
媒体。
【請求項４４】
前記コンピュータ実行可能コードは、段階（ｂ）が、前記オーディオ・データの前記処理の間の前記オーディオ・プロセッサによる電力消費の測定を含み、前記ベンチマークが前記電力消費を示すよう、前記処理システムをプログラムするためのコードを含む、請求項４３記載の媒体。
【請求項４５】
前記コンピュータ実行可能コードは、段階（ａ）が、選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行されるよう、前記処理システムをプログラムするためのコードを含む、請求項４３記載の媒体。
【請求項４６】
前記コンピュータ実行可能コードは、前記人工APAがユーザー選択された人工APAであるよう、かつ、前記人工APAの前記ベンチマーキングが：
少なくとも二つの選択可能な人工APAのうち少なくとも一つのユーザー選択を可能にするユーザー・コントロールを提供し、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答する段階を含む、よう、前記処理システムをプログラムするためのコードを含む、
請求項４３記載の媒体。
【請求項４７】
前記コンピュータ実行可能コードは、前記少なくとも二つの選択可能な人工APAを決定するためのコードを含む、請求項４６記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への相互参照
本願は2014年12月19日に出願された米国仮特許出願第62/094,200号の優先権を主張するものである。同出願の内容はここに参照によってその全体において組み込まれる。
【０００２】
技術分野
本発明は、オーディオ処理に、より詳細にはオーディオ処理方法のベンチマーク（たとえば、電力消費を、また任意的には少なくとも一つの他の有意な特性をも示すデータ）の決定に関する。いくつかの実施形態では、オーディオ処理方法のベンチマークは、該方法（または該方法に対応する人工オーディオ処理アルゴリズム）が、展開されたシステムによって該方法（またはそれと同様のオーディオ処理方法）の期待されるリアルタイム実行をシミュレートするモードにおいて実行されている間に決定される。
【背景技術】
【０００３】
請求項を含む本開示を通じて、用語「プロセッサ」は、データ（たとえばオーディオまたはビデオまたは他の画像データ）に対して動作を実行するよう（たとえばソフトウェアまたはファームウェアを用いて）プログラム可能または他の仕方で構成可能であるシステムまたは装置を表わす広義で使用される。プロセッサの例は、フィールドプログラマブルゲートアレイ（または他の構成可能な集積回路またはチップセット）、オーディオまたは他のサウンド・データに対してパイプライン化された処理を実行するようプログラムされたおよび／または他の仕方で構成されたデジタル信号プロセッサ、プログラム可能な汎用プロセッサもしくはコンピュータおよびプログラム可能なマイクロプロセッサ・チップまたはチップセットを含む。
【０００４】
請求項を含む本開示を通じて、表現「オーディオ・プロセッサ」および「オーディオ処理ユニット」は、オーディオ・データを処理するよう構成されたプロセッサを表わすために、交換可能に、広義で使われる。オーディオ処理ユニットの例は、これに限られないが、エンコーダ（たとえばトランスコーダ）、デコーダ、コーデック、前処理システム、後処理システムおよびビットストリーム処理システムを含む。オーディオ・プロセッサの例は、適切に構成されたフィールドプログラマブルゲートアレイ（または他の構成可能な集積回路またはチップセット）、オーディオまたは他のサウンド・データに対してパイプライン化された処理を実行するようプログラムされたおよび／または他の仕方で構成されたデジタル信号プロセッサ、適切にプログラムされた（および／または他の仕方で構成された）プログラム可能な汎用プロセッサもしくはコンピュータおよび適切にプログラムされた（および／または他の仕方で構成された）プログラム可能なマイクロプロセッサ・チップまたはチップセットを含む。
【０００５】
本稿では、「オーディオ処理方法」および「オーディオ処理アルゴリズム」という表現は交換可能に同義語として、入力オーディオ・データに応答して出力（処理済み）オーディオ・データを生成するよう入力オーディオ・データを処理するオーディオ・プロセッサによって実装される方法を表わすために使われる。
【０００６】
オーディオ・データに対してさまざまな型の有用な処理を実行するために幅広い多様なオーディオ処理アルゴリズムが商業的に使われている。
【０００７】
しばしば、オーディオ処理アルゴリズム（audio  processing  algorithm）（「APA」）のベンチマーキングを実行して、APAを実行するよう構成されたオーディオ・プロセッサによって実行される（すなわち、該オーディオ・プロセッサ上で走る）APAの電力消費を、また任意的には少なくとも一つの他のパフォーマンス特性をも示すベンチマークを決定することが有用である。
【０００８】
現代のオーディオ・プロセッサ、特にポータブル装置で走るAPAの電力およびパフォーマンス（たとえばサイクル複雑さ）測定は、決定的に重要である（電力消費はバッテリー寿命に影響するので）とともに、非常に困難である。発明者らは、困難の一部は、現代のプロセッサがピークまたはバースト時の電力消費を最大にしつつ定常状態の電力消費を最小にするために動的な電圧およびクロック周波数スケーリングを使う仕方から生じていることを認識するに至った。発明者らは、さらに、これらの機能の存在のため、各ノードが「バッチ」モードで（すなわち関連するオーディオ・データの処理が終了するまではできるだけ高速で）走るベンチマーキング動作において決定されるAPAの伝統的なベンチマークが、「リアルタイム」モードで（すなわち、実際の展開において実行されると予期されるのと少なくとも肝要な点では同じ仕方で）走る同じAPAのそれぞれのコスト（たとえば電力消費）を正確に表わすことが妨げられていることを認識するに至った。
【０００９】
請求項を含む本開示を通じて、ベンチマークされているAPAが処理されたオーディオを生成するためにプロセッサにおいて「リアルタイム・モード」で実行される（または走る）という表現は、オーディオ処理が、ベンチマークされるべきAPAを実行する考えられている展開されたシステム（エンドユーザーによって展開されるオーディオ処理システム）によるAPAの期待されるリアルタイム実行をシミュレートする仕方で実行されることを表わす。たとえば、本発明のいくつかの実施形態では、APAはランタイム・モードで（ベンチマーキングの間に）実行される。このモードでは、オーディオ処理は、オーディオ・データのバーストに対する処理区間（それぞれ選択された継続時間をもつ）（各処理区間においてオーディオ・データのバーストが処理を受ける）の間にのみ実行される。該処理区間どうしは、オーディオ処理が実行されない選択された継続時間の区間（「スリープ区間」）によって分離される（各スリープ区間は、二つの連続する処理区間の間に生じる）。ここで、オーディオ処理の実行は、（処理されたオーディオをバッファリングする）信号出力バッファが空になることを防ぎ、かつ展開されるシステムによるAPAの期待されるリアルタイム実行の間にオーディオ処理が実行されるのと同じ仕方に一致する（少なくとも、オーディオ・サンプル処理のその平均レートが実際の展開におけるオーディオ・サンプル処理の期待される平均レートに一致するという点で、任意的には少なくとも一つの他の点で）または一致することが意図されている仕方で、行なわれる。リアルタイム・モードで走るAPAのベンチマーキングは、結果として得られるベンチマークが、実際のオーディオ処理フレームワークにおけるAPAの実行を示し、それにより、ベンチマークされている各APAが（ベンチマーキングの間）実際の展開において実行されると期待されるのと同じ仕方で（少なくとも、そのオーディオ・サンプル処理の平均レートが実際の展開におけるオーディオ・サンプル処理の期待される平均レートに一致するという肝要な点で）実行されるようにすることが意図されている。典型的には、ベンチマークされているAPAのリアルタイム・モードでの実行は、（たとえばバースト・サイズおよびスリープ区間の継続時間の適切な選択により、）考えられている展開されるシステムのCPU電圧および／または周波数の変動（「スロットリング」）（たとえば、最大まで上方スロットリング調整し、次いで、もし測定されるプロセッサ温度が熱を散逸できるより速く上昇するほど十分な継続時間にわたって十分迅速に処理が続く場合には、より低い値に戻すよう下方スロットリング調整する）をシミュレートする。
【００１０】
より多くのオーディオ処理アルゴリズムがモバイル装置（たとえばタブレットおよびスマートフォン）による実行のために開発されるにつれて、アルゴリズムの実行中に（かかるアルゴリズムを実行するようプログラムされているまたは他の仕方で構成されている）製品が消費する電力に対する敏感さも大幅に高まった。これは、ターゲット・ハードウェア・プラットフォームが性能および効率の一層の改善に関するムーアの法則に則った進行の減速に達したのと同時に、劇的により洗練された複雑なオーディオ処理アルゴリズムを要求する、よりよい、より没入的な経験に対する需要とは対照的である。現在のところ、実行時間（たとえば処理レート（たとえばMCPS、すなわち百万クロック・サイクル毎秒（millions  of  clock  cycles  per  second）の単位）および関連するオーディオ・データを処理するために必要とされるクロック・サイクル数によって決定される）および、より重要なことには、オーディオ処理アルゴリズムを実行するシステム（特にモバイル装置）の電力消費の両方を測定することが非常に重要である。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
残念ながら、まさにそのようなベンチマーキング測定を行なうことがますます重要になってきたときに、それを行なうことはより難しくもなりつつある。発明者らは、増大する難しさの一つの理由は、ハードウェア・プラットフォームがますます積極的なプロセッサ電圧およびクロックのスケーリングを使っていることであると認識するに至った。そのため、伝統的な、逐次反復的なバッチ・モードのベンチマーキングは不適切になる。伝統的には、単一の反復工程の実行時間が正確に推定できるよう、ベンチマーキングを受けているAPAは、連続して多数回実行される。典型的な現代のハードウェアでは、そのような処理は、典型的にはピーク計算負荷を表わし、そのため典型的にはCPU電圧および周波数は最大まで上方スロットリング調整され、（試験が長時間続く場合には）熱を散逸できるより速く上昇するプロセッサ温度をシステムが測定すると下方スロットリング調整される。このスロットリングのため、通常の長時間平均測定はほぼ無意味になる。なお悪いことに、プロセッサの電力消費は、大まかに言ってV2R則に従うので、電圧に関して非線形である（そしてより高いCPU周波数をサポートするために通例電圧はスケールアップされる）。発明者らは、多数の現代の装置において走っているAPAの電力消費（および複雑さパフォーマンス）を正確に測定する唯一の方法は、APA（またはAPAに対応する人工APA）での測定を、APA（または対応する人工APA）がその期待される最終的な送達される形にできるだけ近い状態で走っている状態で行なうことであると認識するに至った。発明者らはまた、このことが、APAのベンチマーキングが（少なくとも典型的な状況においては）、APA（またはそれに対応する人工APA）が、展開されるシステムによるAPAの期待されるリアルタイム実行をシミュレートするリアルタイム・モード（たとえば、周期的に生じるバーストにおいてオーディオ・データのブロックに対してオーディオ処理を行ない、実際の展開における期待されるスループット・レートに一致するようできるだけ少ないプロセッサ資源を使う）で走っている状態で実行されるべきであることをも認識するに至った。
【００１２】
発明者らは、APAの送達されるベンチマークが、サイズおよびアクセス・パターンの両方において、ベンチマークされるアルゴリズムの期待される実際の展開（たとえば、意図されたユーザーに送達されるべきオーディオ処理コードの典型的な意図された使用）において生じると期待されるものと同様の処理システム・メモリを使用して決定されることも重要であることも認識するに至った。この認識の根底にあるのは、低周波数への選択性をもって（よってかなりのバッファリングおよびレイテンシーをもって）多くのチャネルのオーディオ・データを記憶し、処理するために必要とされる比較的大きなメモリ・スペースはしばしば、エンドユーザー実装を、ベンチマーキング動作において達成可能な最適パフォーマンスより悪くする（たとえば、直接的な消費電力における、および実際の展開において生起するプロセッサ停止サイクルにおける、比較的高いキャッシュミスのコストのため）という発明者の認識である。
【００１３】
発明者らはまた、実際にAPAを広めることなく、一つまたは複数の展開されたオーディオ処理システムのそれぞれで走る際のAPAをベンチマーキングするためのシステム（またはそのようなベンチマーキングを実行するようシステムをプログラムするためのコンピュータ実装可能コード）を提供し、広めることが望ましいであろうことをも認識するに至った。たとえば、APAは秘密を含んでいることがあり、よって該実際のAPAを広めることは望まれない。この認識に鑑み、本発明のいくつかの実施形態のある側面は、一つまたは複数の展開されたオーディオ処理システムのそれぞれで走る「人工（synthetic）」APAをベンチマーキングするための方法およびシステム（またはそのようなベンチマーキングを実行するようシステムをプログラムするためのコンピュータ実装可能コード）である。ここで、人工APAは実際の（機能的）APAに対応し、これをエミュレートする（後述するように）。ここで、機能的APA（またはそれに対する変形）は、（展開されたシステム上で走る）実際の使用のために意図されており、展開されたシステムで走る際の機能的APA（またはそれに対する変形）をベンチマークすることが所望される。そのような人工APAは自由に広められてもよい（たとえば、本発明のベンチマーキング方法の実施形態を実行するようシステムをプログラムするためのコンピュータ実装可能コードに含められてもよい）。それでも対応する機能的APAは秘密として維持される。
【課題を解決するための手段】
【００１４】
あるクラスの実施形態では、本発明の方法は、考えられている展開されたシステム（エンドユーザーによって展開されるオーディオ処理システム）によるAPAの期待されるリアルタイムの実行をシミュレートする仕方で（すなわち選択可能なベンチマーキング・パラメータから決定される少なくとも一つのベンチマーキング・パラメータに従って）APAが実行されている間に、オーディオ処理アルゴリズム（「APA」）をベンチマーキングする方法である。本方法は：
（ａ）APAを実行する考えられている展開されたシステムの期待されるリアルタイム動作をシミュレートする仕方でAPAを実行するようオーディオ・プロセッサを動作させる段階であって、オーディオ・データを処理することによることを含む、段階と；
（ｂ）段階（ａ）を実行している間に、前記オーディオ・データの処理の間にAPAの少なくとも一つのパフォーマンス特性を示すベンチマーキング・データを生成する段階であって、前記ベンチマーキング・データは前記APAのベンチマークを決定する、段階とを含む。
【００１５】
段階（ｂ）は典型的には、前記オーディオ・データの前記処理の間の前記オーディオ・プロセッサによる電力消費の測定を含み、前記ベンチマークは前記電力消費を示す。いくつかの実施形態では、ベンチマーキングされるAPAは、対応APA（counterpart  APA）（展開されたシステムによる実際の使用のために意図される機能的APA）に対応する人工オーディオ処理アルゴリズム（本稿では時に「ノード」または「人工APA」）である。人工APA（「ノード」）は、該人工APAが（一組のベンチマーキング・パラメータに従って）本発明のベンチマーキング方法の実施形態を実行するよう構成されたプロセッサによってベンチマーキングされるとき、結果として得られるベンチマークが、同じベンチマーキング・パラメータに従って対応する対応APAをベンチマーキングした結果として同じプロセッサによって決定されるであろうベンチマークに一致する（と少なくとも実質的に同じである）ようなものである。人工APAは、多様なユーザー、見込みユーザーおよび対応APA（または人工APAより大きく、人工APAに対応する少なくとも一つの対応APAを含むAPA）の開発者によって有用であると期待される。いくつかの実施形態では、APAのベンチマーキングは、APAを走らせている考えられている展開されたシステム（あるいは、APAがノードである場合には、該ノードに対応する対応APAを走らせている考えられている展開されたシステム）の期待されるリアルタイム動作をシミュレートする仕方（本稿では時に「リアルタイム・モード」と称される）で、少なくとも一つの選択可能なベンチマーキング・パラメータのユーザー選択の結果として、便利に実行される。これは、現実的なベンチマーキング測定がなされ、それでいてベンチマーキング・フレームワークが諸プラットフォームおよび考えられている（ターゲットの）展開された諸プロセッサを横断して比較的ポータブルであることを許容する。
【００１６】
典型的には、ベンチマーキングされるAPAはバースト・モードで実行される。これは、スリープ区間によって分離された一連の処理区間においてオーディオ・データのブロック（バースト）を処理するという意味においてである。ここで、各処理区間の間にオーディオ・データのブロックが処理され、スリープ区間の間にはオーディオ・データは処理されない。選択可能なベンチマーキング・パラメータがデューティーサイクルおよび／またはブロック・サイズを決定してもよい。これにより典型的にはユーザーは、（バースト・モード・ベンチマーキング動作の）平均スループット・レートおよびブロック・サイズが、ベンチマーキングされるAPAまたはそれと同様のAPA（あるいは、APAがノードである場合には、ベンチマーキングされるノードに対応する対応APA）を考えられている展開されたシステムが実行するときに期待されるものと一致させるパラメータを選択できる。たとえば、選択可能なベンチマーキング・パラメータのメニューが、（異なるレベルの複雑さをもつ）一組の選択可能な人工APAを示してもよく、ベンチマーキングのためにそれらの人工APAの一つを選択することが、ベンチマーキングの際に用いられるデューティーサイクルおよびブロック・サイズを決定してもよい（ここで、前記デューティーサイクルおよびブロック・サイズはあらかじめ決定されたものであり、よって前記ベンチマーキングの際の選択された人工APAの実行は、ある考えられている展開されたシステムによる選択された人工APAの実行をエミュレートする）。もう一つの例では、選択可能なベンチマーキング・パラメータのメニューが、（典型的には異なるレベルの複雑さをもつ）一組の選択可能な人工APAと一組の選択可能なデューティーサイクルおよび／またはブロック・サイズ・パラメータとの両方を示してもよい（よって、ユーザーは、ベンチマーキングされるAPAと、考えられている展開されたシステムによるAPAの実行をエミュレートするようベンチマークの際に用いられるデューティーサイクルおよび／またはブロック・サイズ・パラメータとの所望される組み合わせを選択できる）。バースト・モード動作は、プロセッサ（たとえばCPU）電圧および／または処理レートもしくは周波数の期待されるスロットリング（たとえば、最大まで上方スロットリング調整し、続いて、熱を散逸できるよりも速く測定されるプロセッサ温度が上昇する場合には下方スロットリング調整をして戻す）をもって考えられている展開されたシステムによる前記APA（またはそれと同様のAPA）の実行をシミュレートすることができる（そして典型的にはそうする）。典型的には、バースト・モード動作は、信号出力バッファが空になるのを防ぐために時間を通じて均等に拡散している一連の短い処理区間（この区間中ではオーディオ・データの小さな諸ブロックが処理される）を含む。
【００１７】
好ましい実施形態では、ベンチマーキング方法（および該方法を実行するようプログラムされたまたは他の仕方で構成されたプロセッサ）は、ユーザーがAPA（たとえばノード）のベンチマーキングを便利に、APAを走らせている考えられている展開されたシステム（あるいは、APAがノードである場合には、該ノードに対応する対応APAを走らせている考えられている展開されたシステム）の期待されるリアルタイム動作をシミュレートする（たとえば、ユーザー指定可能なベンチマーキング・パラメータのユーザー選択の結果としてシミュレートするまたは模倣する）仕方（本稿では時に「リアルタイム・モード」と称される）で実行できるようにするユーザー・コントロールを提供する。こうして、結果として得られるベンチマークは、ベンチマーキングされたAPA（またはそれと同様のAPA）を実行するシステムの（実際の展開における）期待される動作を評価するために使用可能である。好ましい実施形態では、本方法（および該方法を実行するよう構成されたプロセッサ）は、多様な異なるAPA（たとえば、入力オーディオ・ファイルを処理する選択されたオーディオ・デコード・ノードと後処理ノードと逐次に走る（デコード・ノードの出力を処理する）選択されたオーディオ後処理ノードとの多様な選択可能な組み合わせ）をベンチマーキングするために有用である。いくつかの実施形態では、少なくとも二つの利用可能なオーディオ・デコード・ノード（オーディオ・コーデックによって通常実装される型の諸アルゴリズム）の任意の一つおよび／または少なくとも二つの利用可能なオーディオ後処理ノード（オーディオ後処理器によって通常実装される型の諸アルゴリズム）の任意の一つおよび／またはオーディオ・デコード・ノードとオーディオ後処理ノードの少なくとも二つの利用可能な組み合わせ（たとえばオーディオ後処理ノードと逐次に走るオーディオ・デコード・ノード）のうちの任意の一つの選択を許容するユーザー・コントロールが提供される。
【００１８】
第二のクラスの実施形態では、本発明の方法は、対応APA（考えられている第一の展開されたシステムによる現実の使用のために意図されている機能的APA）に対応する人工オーディオ処理アルゴリズム（本稿では時に「ノード」または「人工APA」と称される）を決定する段階と、前記ノード（または前記ノードを含むAPA）が、前記ノード（または前記ノードを含むAPA）を実行する考えられている第二の展開されたシステムの期待されるリアルタイム動作を（たとえば少なくとも一つの選択可能なベンチマーキング・パラメータのユーザー選択の結果として）シミュレートする仕方でベンチマーキング・システムによって実行されている間に、前記ノードをベンチマーキングすることの結果として前記ノード（または前記ノードを含むAPA）のベンチマークを決定する段階とを含む。
【００１９】
考えられている第二の展開されたシステムは、エンドユーザーによる展開のために考えられている（または展開されることが期待される）オーディオ処理システムであり、第一の展開されたシステムと同一である（または少なくとも実質的に同一である）ことができるが、その必要はない。前記ノードは、前記ノードが（一組のベンチマーキング・パラメータを使って）本発明のベンチマーキング方法の実施形態を実行するよう構成されたプロセッサによってベンチマーキングされるとき、結果として得られるベンチマークが、同じベンチマーキング・パラメータを使って対応する対応APAをベンチマーキングした結果として同じプロセッサによって決定されるであろうベンチマークに一致する（と少なくとも実質的に同じである）よう、決定される。このように、前記ノードは、（秘密として保たれることが望まれる）秘密の対応APAに対応するよう決定されることができる。前記ノードは、次いで、（本発明のベンチマーキング方法のある実施形態を実行するようシステムをプログラムするソフトウェアとともに）諸ユーザーに広められることができる。それにより、秘密の対応APAを実際に広めることなく、前記ノードおよび前記秘密の対応APAに対応し（あるいは似ており）多様な考えられている展開されたシステム上で走ることが意図されているユーザー定義された対応APAをベンチマーキングすること（あるいはそのようなユーザー決定された対応APAを含むAPAをベンチマーキングすること）ができる。
【００２０】
典型的には、第二のクラスの方法のベンチマーキングする段階の間、ベンチマーキングされているノード（または該ノードを含むAPA）は、スリープ区間によって分離された一連の処理区間を有するバースト・モードで実行される。ここで、各処理区間の間にオーディオ・データのブロックが処理され、スリープ区間の間にはオーディオ・データは処理されない。選択可能なベンチマーキング・パラメータがデューティーサイクル（後続スリープ区間に対する処理区間の継続時間の比）および／またはブロック・サイズを決定してもよい。これにより典型的には、（バースト・モード動作の）平均スループット・レートおよびブロック・サイズが、前記ノード（あるいは前記ノードに対応する対応APA）を考えられている第二の展開されたシステムが実行するときに期待されるものと一致する。
【００２１】
第二のクラスの方法によって決定される前記ノード（人工APA）は、（システムのメモリ内の）ライブラリに記憶されていると想定される、信号処理機能を実装するためのコードへの呼び出しを含んでいてもよい（またさらには主としてかかる呼び出しから構成されていてもよい）。よって、ベンチマーキング・システムによる前記ノードの実行は、システムに信号処理機能のシーケンスを実行させるために実行される（システムのメモリに記憶されている）前記コードの少なくとも一部への諸呼び出しを含む。この場合、（ベンチマーキング・システムによる）前記ノードの実行は、好ましくは、対応する対応APAの実行の動的な作業負荷およびメモリ要求を模倣する（たとえば、ベンチマーキング・システムのライブラリ内の処理機能への前記ノードによる呼び出しの数およびシーケンスが、第一の展開されたシステムのライブラリ内の対応する処理機能への前記対応する対応APAによる呼び出しの数およびシーケンスに一致する）。APAによって呼び出されうる信号処理機能の例は（これに限られないが）FFT、DCT、DST、IIRおよびFIRフィルタ、行列およびベクトルの数学演算およびスカラーの数学演算（たとえば乗累算、加算およびシフト）を含む。
【００２２】
「ノード」（人工APA）を決定および／またはベンチマークするいくつかの実施形態では、ノードは、該ノードの実行が参照コードの同じプロセッサによる実行のパフォーマンス特性の少なくとも重要なものをエミュレートするという意味で、完全な参照APA（参照コード）をエミュレートする。たとえば、参照APAはデコード方法またはオーディオ後処理方法（あるいはデコード方法および該デコード方法のデコードされたオーディオ出力を処理するオーディオ後処理方法）であってもよい。
【００２３】
「ノード」（人工APA）を決定および／またはベンチマークするいくつかの実施形態では、ノードは、（秘密として保たれることが望まれる）秘密の対応APAに対応するよう決定される。すると、ノードは、（本発明のベンチマーキング方法のある実施形態を実行するようシステムをプログラムするソフトウェアとともに）諸ユーザーに広められることができる。それにより、前記ノードおよび前記秘密の対応APAに対応し（あるいは似ており）多様な考えられている展開されたシステム上で走ることが意図されているユーザー定義された対応APAをベンチマーキングすること（あるいはそのようなユーザー決定された対応APAを含むAPAをベンチマーキングすること）ができる。これは、秘密の対応APAを実際に広めることなく達成できる。たとえば、「ノード」を決定および／またはベンチマーキングするいくつかの実施形態では、ノードは、参照コード（該参照コードは秘密として保たれることが望まれていてもよい）が呼び出すのと同様の仕方で（ライブラリに記憶されていると想定される）信号処理機能を呼び出すよう書かれてもよいが、該ノードは、参照コードが実装するのと同じアルゴリズムを実際に実装することなく参照コードのパフォーマンス特性をシミュレートするという主要な相違がある。このようにして、ノード（およびノードをベンチマーキングする方法）は、参照コードとは独立に修正（改善）されることができ、ノードは、参照コードよりも自由に頒布されることができる。
【００２４】
秘密のAPAは、その振る舞いおよび機能を変える一組のパラメータを有していてもよく、それがそのパフォーマンス（たとえば電力消費および／または別の複雑さ属性）に影響することができる。たとえば、ドルビー・デジタル・プラス・デコード方法（または別のデコード方法）を実行するAPAは、その出力モード（または他の）デコード設定に基づいて可変の計算／電力負荷をもちうる。同様に、オーディオ後処理APAは、どの機能が有効にされているかに依存してその負荷を変えることがある。選択可能な人工ノードのライブラリ（たとえば図２に示されるX個の選択可能なコーデック・ノードおよびX個の選択可能な後処理ノードのライブラリ）が提供されるいくつかの実施形態では、選択可能なノードは、秘密の諸APAまたは少なくとも一つの秘密のAPAの、キーとなる（たとえば典型的なまたは重要な）構成に対応する人工ノードであってもよく、あるいはかかる人工ノードを含んでいてもよい。たとえば、ある秘密のAPAは異なる複数の動作モードを有していてもよく、本発明のある実施形態は、少なくとも二つの選択可能な人工ノードを提供してもよい。各人工ノードが、これらのモードのうちの異なるものに対応する（をエミュレートする）のである。後者の実施形態のある実装は、対応するノードの各クラス（またはサブクラス）についてただ一組の人工APAコードを提供してもよく（たとえば、ノードの一つのクラスはコーデック・ノード、たとえば図２のX個の選択可能なコーデック・ノードであってもよく、別のクラスは後処理ノード、たとえば図２のX個の選択可能な後処理ノードであってもよい）、固定構成のソフトウェア構成パラメータ（たとえば、システムのユーザー・インターフェースを介してベンチマーキング・システム・ユーザーによって指定される）がベンチマーキング・システムに、（一つのクラスの異なる複数の人工ノードに対応する）人工APAコードのいくつかの異なるインスタンス化（または変形）のうちの任意のものを実装（ベンチマーキング）させてもよい。
いくつかの実施形態では、本発明のベンチマーキング方法は、通常「コマンドライン専用」ソフトウェアと称される型のベンチマーキング・ソフトウェアを用いて（本発明に従って）プログラムされたオーディオ・プロセッサによって実装される（すなわち、プログラムされたプロセッサは、テキスト行として入力されたユーザー・コマンドに応答してベンチマーキングを実行するようベンチマーキング・ソフトウェアを実行する）。他の実施形態では、プロセッサは、本発明のベンチマーキング方法のパフォーマンスを制御するためにユーザーによって使用可能なグラフィカル・ユーザー・インターフェース（GUI）を実装するベンチマーキング・ソフトウェアを用いて（本発明に従って）プログラムされる。たとえば、通常のプロセッサのオペレーティング・システムはコマンドライン・インターフェースを用いてベンチマーキング・ソフトウェアを走らせることを許さないが、本発明のシステムは、前記通常のプロセッサ（たとえばスマートフォンまたは他のモバイル装置）を、本発明の方法のパフォーマンスを制御するために使用可能GUIを含むベンチマーキング・ソフトウェアのある実施形態を用いてプログラムすることによって実装されてもよい。この例では、ベンチマーキング・ソフトウェアは自らGUIを実装し、ユーザーはこのGUIを用いて、本発明に基づくベンチマーキングを実行するよう、プログラムされたシステムを制御する。
【００２５】
いくつかの実施形態では、本発明のベンチマーキング方法およびシステムは、以下のユーザー・コントロールの一つまたは複数を提供する：
ベンチマーキングされるべきAPAの選択可能なバージョン（たとえば、選択されたオーディオ処理動作が有効（「オン」）または無効（「オフ」）だが他のすべては同じバージョン）のユーザー選択（好ましくは便利かつ簡単に）と、ベンチマーキングの間のAPAの各選択されたバージョンの実行中に消費される電力の測定とを許容する少なくとも一つのコントロール；
異なるレベルの複雑さをもつ選択可能なAPAのメニューからベンチマークされるべきAPAのユーザー選択を許容する少なくとも一つの複雑さコントロール。ユーザーは典型的には、それぞれの選択可能なAPAの複雑さ（たとえば作業負荷およびメモリ・フットプリント）の指標を提供され、該メニューは、選択可能なAPAを複雑さの順に呈示してもよい（たとえば、諸APAの代表的な作業負荷およびメモリ・フットプリントの指標が複雑さの順に与えられる）。選択可能なAPAは、ある範囲の技術および典型的な使用事例に対応してもよく（たとえば、ある範囲の技術および典型的な使用事例をエミュレートする人工APAであってもよい）、選択可能なAPAのメニューは、ターゲット・プロセッサ（エンドユーザーによって展開されると期待されるオーディオ・プロセッサ）の能力レベル記述を提供してもよい（あるいは該提供を可能にしてもよい）。該能力レベル記述は、各ターゲット・プロセッサによってどのレベルの技術複雑さが効率的に受け入れられることができるか、および（指定された諸APAを走らせるときに）どのターゲット・プロセッサ（もしあれば）が過剰なメモリ・バス・サイクルまたは他の要因のため受け入れられないパフォーマンスをもちうるかを示す。
【００２６】
本発明の他の側面は、本発明のベンチマーキング方法の任意の実施形態を実行するようプログラムされたまたは他の仕方で構成されたプロセッサ、本発明の方法の任意の実施形態を実装するよう構成された（たとえばプログラムされた）システムまたは装置（たとえば、適切にプログラムされた汎用プロセッサ、コンピュータ・システムまたはモバイル装置）、本発明の方法またはその段階の任意の実施形態に従って決定される少なくとも一つの人工APAを示すデータ、あるいはかかる実施形態によって生成されるベンチマーク（すなわちベンチマークを示すデータ）を（たとえば非一時的な仕方で）記憶するメモリ（たとえばバッファ）を含むシステムまたは装置ならびに本発明の方法またはその段階の任意の実施形態を実装するためのコードを（たとえば非一時的な仕方で）記憶するコンピュータ可読媒体（たとえばディスク）を含む。たとえば、本発明のシステムは、プログラム可能な汎用プロセッサ、デジタル信号プロセッサまたはマイクロプロセッサであって、本発明の方法またはその段階の実施形態を含む多様な動作の任意のものをデータに対して実行するよう、ソフトウェアまたはファームウェアを用いてプログラムされたおよび／または他の仕方で構成されたものであることができ、あるいはそれを含むことができる。そのような汎用プロセッサは、入力装置、メモリおよび呈されたデータに応答して本発明の方法（またはその段階）の実施形態を実行するようプログラムされた（および／または他の仕方で構成された）処理回路を含むコンピュータ・システムであってもよく、あるいはそれを含んでいてもよい。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施形態に基づいてAPAのベンチマーキングを実行するよう構成されているプロセッサ４０を含むオーディオ・データ処理システムの簡略化されたブロック図である。
【図２】本発明の実施形態に基づいてAPAのベンチマーキングを実行するよう構成されたプロセッサの簡略化されたブロック図である。APAは、コーデック・ノード（サブシステム５によって実行される）および後処理ノード（サブシステム７によって実行される）を含む人工APAまたはコーデック・ノード（サブシステム５によって実行される）のみを含む人工APAまたは後処理ノード（サブシステム７によって実行される）のみを含む人工APAまたは他のAPAであってもよい。
【図３】本発明のベンチマーキング方法の実施形態を実装するためのコードを（非一時的な仕方で）記憶するコンピュータ可読媒体（ディスク）の簡略化された正面図である。
【発明を実施するための形態】
【００２８】
〈記法および命名法〉
請求項を含む本開示を通じて、信号またはデータ「に対して」動作を実行する（たとえば信号またはデータをフィルタリングする、スケーリングする、変換するまたは利得を適用する）という表現は、信号またはデータに対して直接的に、または信号またはデータの処理されたバージョンに対して（たとえば、予備的なフィルタリングまたは前処理を該動作の実行に先立って受けている前記信号のバージョンに対して）該動作を実行することを表わすために広義で使用される。
【００２９】
請求項を含む本開示を通じて、「システム」という表現は、装置、システムまたはサブシステムを表わす広義で使用される。たとえば、デコーダを実装するサブシステムはデコーダ・システムと称されてもよく、そのようなサブシステムを含むシステム（たとえば、複数の入力に応答してX個の出力信号を生成するシステムであって、前記サブシステムが入力のうちのM個を生成し、他のX−M個の入力は外部源から受領されるもの）もデコーダ・システムと称されることがある。
【００３０】
請求項を含む本開示を通じて、「結合する」または「結合される」という用語は、直接的または間接的な接続を意味するために使われる。よって、第一の装置が第二の装置に結合する場合、その接続は、直接接続を通じてであってもよいし、他の装置および接続を介した間接的な接続を通じてであってもよい。
【００３１】
請求項を含む本開示を通じて、以下の表現は以下の定義をもつ。
【００３２】
スピーカーおよびラウドスピーカーは、任意の音を発するトランスデューサを表わすものとして同義に使われる。この定義は、複数のトランスデューサ（たとえばウーファーおよびツイーター）として実装されるラウドスピーカーを含む。
【００３３】
スピーカー・フィード：ラウドスピーカーに直接加えられるオーディオ信号または直列の増幅器およびラウドスピーカーに加えられるオーディオ信号。
【００３４】
チャネル（または「オーディオ・チャネル」）：モノフォニック・オーディオ信号。そのような信号は典型的には、該信号を所望されるまたは公称上の位置にあるラウドスピーカーに直接加えるのと等価であるようにレンダリングされることができる。所望される位置は、物理的なラウドスピーカーでは典型的にそうであるように静的であってもよく、あるいは動的であってもよい。
【００３５】
オーディオ・プログラム：一つまたは複数のオーディオ・チャネル（少なくとも一つのスピーカー・チャネルおよび／または少なくとも一つのオブジェクト・チャネル）および任意的には関連するメタデータ（たとえば、所望される空間的オーディオ呈示を記述するメタデータ）の集合。
【００３６】
レンダリング：オーディオ・プログラムを一つまたは複数のスピーカー・フィードに変換するプロセスまたはオーディオ・プログラムを一つまたは複数のスピーカー・フィードに変換し、該スピーカー・フィードを一つまたは複数のラウドスピーカーを使って音に変換するプロセス。（後者の場合、レンダリングは本稿では時にラウドスピーカー「による」レンダリングと称される。）オーディオ・チャネルは、信号を所望される位置にある物理的なラウドスピーカーに直接加えることによって（所望される位置「において」）トリビアルにレンダリングされることができる。あるいは、一つまたは複数のオーディオ・チャネルは、（聴取者にとって）そのようなトリビアルなレンダリングと実質的に等価であるよう設計された多様な仮想化技法の一つを使ってレンダリングされることができる。この後者の場合、各オーディオ・チャネルは、一般には所望される位置とは異なる既知の位置にあるラウドスピーカー（単数または複数）に加えられるべき一つまたは複数のスピーカー・フィードに変換されてもよく、それによりフィードに応答してラウドスピーカーによって発される音は、所望される位置から発しているように知覚されることになる。
【００３７】
〈本発明の例示的実施形態の詳細な説明〉
本発明の実施形態の例について、図１および図２を参照して述べる。
【００３８】
図１は、本発明の実施形態に基づいてベンチマーキングを実行する本発明の実施形態に基づいて構成されているプロセッサ４０を含むオーディオ・データ処理システムの簡略化されたブロック図である。図１のシステムは、ユーザー・インターフェース・サブシステム５０、メモリ５４（これはベンチマーキングの間、サブシステム５２によって処理されるべきオーディオ・データを記憶する）、オーディオ処理サブシステム５２、ベンチマーク・データ生成サブシステム６２、処理時間サンプリング・サブシステム５６および６０、処理遅延制御サブシステム５８、センサー・サブシステム６４、メモリ６６（これは、ベンチマーキングを受けるAPAの実行の間、サブシステム５２によって呼び出されうる信号処理機能を実装するためのコードを記憶している）およびメモリ６８（これはベンチマーキング動作の間に生成されるベンチマーク・データを記憶する）を図のように接続したものを含んでいる。プロセッサ４０は汎用プロセッサ（または他のプロセッサ）を本発明の実施形態に基づくベンチマーキングを実行するよう構成したものであってもよい。これは、（たとえば後述のように）電力消費を測定するためにセンサー・サブシステム６４をプロセッサの回路要素（典型的にはバッテリーまたは他の電源）に結合し、プログラムされたプロセッサ４０がベンチマーキングを実行できるようにするソフトウェアでサブシステム５０、５２、５６、５８、６０、６２、６４をプログラミングし、必要とされるデータおよびコードを要素５４および６６に記憶することによる。
【００３９】
ユーザー・インターフェース５０は、図１のシステムのベンチマーキング動作を制御するためにユーザー入力４１に応答して動作可能である。これは、（コマンドを示す）ユーザー入力４１に応答しておよび／またはデフォルト設定に従ってベンチマーキングを実行するようサブシステム５２、６２、５８を構成することによる。ユーザー・インターフェース５０は、ディスプレイ４３に、サブシステム６２において生成されたベンチマーク・データ、ユーザー選択可能なパラメータ（たとえば、ベンチマーキングのために選択可能なオーディオ処理アルゴリズム（APA））を示すメニューおよび典型的にはまたシステム構成および状態に関する他の情報を表示させるよう動作可能である。システムは、開始コマンド４２に応答してベンチマーキング動作を開始する。「終了」コマンドに応答して、システムはベンチマーキング動作を打ち切り、動作の間に生成されたベンチマーク・データを示すレポート（プロファイル・レポート４４）の最も最近に更新されたバージョンを出力する。
【００４０】
メモリ５４は、（サブシステム５２によって実装される）APAによって該APAのベンチマーキングの間に処理されるべきエンコードされたマルチチャネル・オーディオ・プログラムの少なくともあるセグメントを示すオーディオ・データを（非一時的な仕方で）記憶してもよい。動作では、（プログラムまたはプログラム・セグメントを示す）オーディオ・データのブロックのシーケンスを示すビットストリームがメモリ５４からベンチマーキング処理サブシステム５２に出力される。
【００４１】
図１のシステムの動作では、本発明の方法の典型的な実施形態を実行するために、プロセッサ４０（すなわちプロセッサ４０のサブシステム５２）は、APAを（該APAのベンチマーキングの間）ランタイム・モードで実行する。このモードでは、サブシステム５２は、オーディオ処理を、オーディオ・データのバーストに対する処理区間（それぞれ選択された継続時間をもつ）の間にのみ実行する（典型的には各バーストはブロックのうちの一つである）。各処理区間においてオーディオ・データのバースト（たとえばブロック）が処理を受ける。該処理区間どうしは、サブシステム５２がオーディオ処理を実行しない（サブシステム５８によって決定される）選択された継続時間の区間（「スリープ区間」）によって分離される。各スリープ区間は、二つの連続する処理区間の間に生じる。典型的には、これは（処理されたオーディオをバッファリングする）サブシステム５２の信号出力バッファが空になることを防ぎ、かつ展開されるシステムによるAPAの期待されるリアルタイム実行の間にオーディオ処理が実行されるのと同じ仕方に一致する（少なくとも、オーディオ・サンプル処理のその平均レートが実際の展開におけるオーディオ・サンプル処理の期待される平均レートに一致するという点で、任意的には少なくとも一つの他の点で）または一致することが意図されている仕方で、行なわれる。
【００４２】
ベンチマーキング動作の間、サブシステム５６は、各処理区間の終了時刻を測定し（同定し）、各終了時刻を示すデータがサブシステム６２に提供される。各処理区間の終わりに、サブシステム５８は、選択されたスリープ区間継続時間にわたってシステムにオーディオ処理を休止させる（すなわち、システムにスリープ区間にはいらせる）。それにより、システムがオーディオ処理を実行する平均オーディオ・データ・フレーム・レートをスロットリングする。ベンチマーキング動作の間、サブシステム６０は各スリープ区間の終了時刻（すなわち次の処理区間の開始時刻）を測定し（同定し）、そのような各処理区間開始時刻を示すデータがサブシステム６２に提供される。
【００４３】
ベンチマーキングの間、サブシステム５２によって実行されるAPAは、メモリ６６に（ライブラリとして）記憶されている、信号処理機能を実行するためのコードへの呼び出しを呈してもよい。こうして、サブシステム５２によるAPAの実行は、メモリ６６に記憶されたコードへの呼び出しのシーケンスを含んでいてもよく、次いで、そのようなコードがサブシステム５２によって実行されて、信号処理機能のシーケンスを実行する。
【００４４】
ベンチマーキングの間、センサー・サブシステム６４は、各処理区間（または各処理区間および各スリープ区間）の間にプロセッサ４０によって消費される電力を測定し、電力消費を示すデータがサブシステム６４からサブシステム６２に提供される。典型的な実施形態では、サブシステム６４は、プロセッサ４０の電源（典型的にはバッテリー）と直列に結合された電流感知抵抗器を含む。このように電源に結合された抵抗器を用いて、サブシステム６４は、十分に高いサンプル・レートで、負荷および抵抗器両方のまわりの電圧をモニタリングする。電流感知抵抗器のまわりの電圧を等価な電流に較正した後、負荷電圧と電流の積のサンプルごとの平均が、捕捉されたデータに対して計算され、負荷に送達される平均電力の推定値を生じる。
【００４５】
サブシステム６２は、ベンチマーキング動作の間、サブシステム５２によって（典型的にはバースト式に）実行されるAPAのベンチマークを示すベンチマーク・データを生成する。ベンチマーキング・データは典型的には、ベンチマーキングの間に時折（たとえば各処理区間後に）更新され、ベンチマーキング・データの最も最近更新されたセットがユーザー・インターフェース５０に呈され（それによりディスプレイ４３によって表示されることができる）、メモリ６８に記憶される。「終了」コマンドに応答して、システムはベンチマーキング動作を打ち切り、ベンチマーキング・データの最も最近更新されたバージョンを（典型的にはベンチマーク・データを示すプロファイル・レポート４４の形で）出力する。
【００４６】
図２は、APAのベンチマーキングを実行するよう本発明のベンチマーキング方法の実施形態を実行するようソフトウェアを用いてプログラムされた（または他の仕方で構成された）オーディオ・プロセッサ（プログラムされたオーディオ・プロセッサ３）の簡略化されたブロック図である。APAは、コーデック・ノード（サブシステム５によって実行される）およびオーディオ後処理ノード（サブシステム７によって実行される）を含む人工APAである。サブシステム５は（有効にされるとき）、（エンコードされたオーディオ・データである）入力オーディオに対してデコード動作をエミュレートする動作を実行するよう結合され、構成されている（典型的にはユーザー選択されたコーデック・ノードであるコーデック・ノード）。サブシステム７は（有効にされるとき）、有効にされたサブシステム５によって生成された処理済みオーディオに対して（あるいはサブシステム５が無効にされている場合には入力オーディオに対して）オーディオ後処理をエミュレートする動作を実行するよう結合され、構成されている（典型的にはユーザー選択されたオーディオ後処理ノードであるオーディオ後処理ノード）。サブシステム５および７は一緒になって（あるいはその一方が無効にされている場合にはサブシステム５および７のそれぞれが個々に）図２のシステムのオーディオ処理サブシステムをなす。
【００４７】
ソフトウェアは、ユーザー・インターフェースおよび制御サブシステム１１を実装するようプロセッサ３をプログラムする。サブシステム１１は、プロセッサ３に入力された（コマンドを示す）ユーザー入力に応答しておよび／またはデフォルト設定に従って（それぞれ本発明の実施形態に基づく）いくつかの利用可能なベンチマーキング動作のうちの選択されたものを実行するよう前記プロセッサを構成する。サブシステム１１は、プログラムされたプロセッサのベンチマーキング動作を制御するよう動作可能である。これは、ユーザー入力に応答しておよび／またはデフォルト設定に従ってベンチマーキングを実行するようサブシステム５、７、１５を構成することによることを含む。典型的には、ディスプレイがプロセッサ３に結合されている。プロファイリング・サブシステム１５において生成されたベンチマーク・データ、ユーザー選択可能なパラメータ（たとえば、サブシステム５および７による実行のために、よってベンチマーキングのために選択されうるコーデック・ノードおよび後処理ノード）を示すメニューおよびシステム構成および状態に関する他の情報を表示することにおいて使うためである。システムは、開始コマンドに応答してベンチマーキング動作を開始する。終了コマンドに応答して、システムはベンチマーキング動作を打ち切り、動作の間にサブシステム１５によって生成された（そしてバッファ１７に非一時的な仕方で記憶された）ベンチマーク・データの最も最近に更新されたバージョンを出力する。
【００４８】
図２のプロセッサ３はまた、（ベンチマーキングの間にサブシステム５および／またはサブシステム７によって処理されるべきオーディオ・データを非一時的な仕方で記憶する）バッファ１と、センサー・サブシステム１６と、メモリ１３（これはベンチマーキングを受けるAPAの実行の間、サブシステム５および／またはサブシステム７によって呼び出されうる信号処理機能を実装するためのコードを記憶している）と、バッファ９（これは、ベンチマーキング動作の間にサブシステム５および７のうち各有効にされたものによって処理された処理済みオーディオ・データを非一時的な仕方で記憶する）とを、図のように接続された形で含んでいる。プロセッサ３は汎用プロセッサ（または他のプロセッサ）を本発明の実施形態に基づくベンチマーキングを実行するよう構成したものであってもよい。これは、（たとえば後述のように）電力消費を測定するためにセンサー・サブシステム１６をプロセッサの回路要素（典型的にはバッテリーまたは他の電源）に結合し、プログラムされたプロセッサがベンチマーキングを実行できるようにするソフトウェアでサブシステム５、７、１１、１５をプログラミングすることによる。必要とされるデータおよびコードが要素１３に記憶される。
【００４９】
図２のシステムの動作では、本発明の実施形態に従ってベンチマーキングを実行するために、人工APA（サブシステム５および／またはサブシステム７によって実装される）が、エンコードされたマルチチャネル・オーディオ・プログラムの少なくともあるセグメントを示すオーディオ・データを処理し、該人工APAがベンチマーキングされる。典型的には、（プログラムまたはプログラム・セグメントを示す）オーディオ・データのブロックのシーケンスを示すビットストリームがバッファ１からサブシステム５に呈される。
【００５０】
典型的な実施形態では、有効にされたサブシステム５は選択されたコーデック・ノードを（ベンチマーキングの間）ランタイム・モードで実行する。このモードでは、サブシステム５は、オーディオ・データのバーストに対する処理区間（それぞれ選択された継続時間をもつ）の間にのみ（デコードをエミュレートする）オーディオ処理を実行する（典型的には各バーストはブロックのうちの一つである）。各処理区間においてオーディオ・データのバースト（たとえばブロック）が処理を受ける。該処理区間どうしは、サブシステム５がオーディオ処理を実行しない選択された継続時間の区間（「スリープ区間」）によって分離される。各スリープ区間は、二つの連続する処理区間の間に生じる。典型的には、これは（処理されたオーディオをバッファリングする）サブシステム５の信号出力バッファが空になることを防ぎ、かつ展開されるシステムによるノードの期待されるリアルタイム実行の間にオーディオ処理が実行されるのと同じ仕方に一致する（少なくとも、オーディオ・サンプル処理のその平均レートが実際の展開におけるオーディオ・サンプル処理の期待される平均レートに一致するという点で、任意的には少なくとも一つの他の点で）または一致することが意図されている仕方で、行なわれる。
【００５１】
典型的な実施形態ではまた、有効にされたサブシステム７は、選択された後処理ノードを（ベンチマーキングの間）ランタイム・モードで実行する。このモードでは、サブシステム７は、有効にされたサブシステム５で生成された（そしてそこから出力された）処理済みオーディオ・データのバーストに対する（あるいはサブシステム５による処理が無効にされている場合にはサブシステム５を通じて渡される入力オーディオのバーストに対する）処理区間（それぞれ選択された継続時間をもつ）の間にのみ後処理をエミュレートするオーディオ処理を実行する。典型的には各バーストはブロックである。各処理区間においてオーディオ・データのバースト（たとえばブロック）が処理を受ける。該処理区間どうしは、サブシステム７がオーディオ処理を実行しない選択された継続時間の区間（「スリープ区間」）によって分離される。各スリープ区間は、二つの連続する処理区間の間に生じる。典型的には、これは（処理されたオーディオをバッファリングする）サブシステム７の信号出力バッファが空になることを防ぎ、かつ展開されるシステムによるノードの期待されるリアルタイム実行の間にオーディオ処理が実行されるのと同じ仕方に一致する（少なくとも、オーディオ・サンプル処理のその平均レートが実際の展開におけるオーディオ・サンプル処理の期待される平均レートに一致するという点で、任意的には少なくとも一つの他の点で）または一致することが意図されている仕方で、行なわれる。
【００５２】
ベンチマーキングの間、サブシステム５および／またはサブシステム７によって実行される人工APAは、メモリ１３に（ライブラリとして）記憶されている、信号処理機能を実装するためのコードへの呼び出しを呈してもよい。こうして、人工APAの実行は、メモリ１３に記憶されたコードへの呼び出しのシーケンスを含んでいてもよく、次いで、そのようなコードがサブシステム５（および／またはサブシステム７）によって実行されて、信号処理機能のシーケンスを実行する。
【００５３】
ベンチマーキングの間、センサー・サブシステム１６は、各処理区間（または各処理区間および各スリープ区間）の間にプロセッサ３によって消費される電力を測定し、電力消費を示すデータがサブシステム１６からサブシステム１５に提供される。典型的な実施形態では、サブシステム１６は、プロセッサ３の電源（典型的にはバッテリー）と直列に結合された電流感知抵抗器を含む。このように電源に結合された抵抗器を用いて、サブシステム１６は、十分に高いサンプル・レートで、負荷および抵抗器両方のまわりの電圧をモニタリングする。電流感知抵抗器のまわりの電圧を等価な電流に較正した後、負荷電圧と電流の積のサンプルごとの平均が、捕捉されたデータに対して計算され、負荷に送達される平均電力の推定値を生じる。
【００５４】
プロセッサ３は、プロファイリング・サブシステム１５（ノード／コード・プロファイラー）を実装するソフトウェアをもプログラムされる。ベンチマーキング動作において、サブシステム１５は、サブシステム５および７の各有効にされたものの動作の結果として生成されるベンチマーキング・データを処理し、ベンチマーキング出力データを生成する（図２では「複雑さ／統計レポート」として特定されている）。ベンチマーキング出力データは、サブシステム５および７の各有効にされたものによって（典型的にはバースト式に）実行される人工APAのベンチマークを示す。ベンチマーキング出力データは典型的には、ベンチマーキングの間に時折（たとえば各処理区間後に）更新され、ベンチマーキング・データの最も最近更新されたセットがユーザー・インターフェース１１に呈され（それによりディスプレイによって表示されることができる）、バッファ１７に記憶される。終了コマンドに応答して、システムはベンチマーキング動作を打ち切り、ベンチマーキング出力データの最も最近更新されたバージョンを（典型的にはベンチマーク出力データを示す複雑さ／統計プロファイル・レポートの形で）出力する。
【００５５】
図２の実施形態は、選択されたオーディオ・デコード・ノード（オーディオ・コーデックによって通常実装される型のデコード・プロセスをエミュレートする、サブシステム５によって実行される人工APA）のベンチマーキングおよび／または選択されたオーディオ後処理ノード７（オーディオ後処理器によって通常実装される型のオーディオ処理アルゴリズムをエミュレートする、サブシステム７によって実行される人工APA）のベンチマーキングおよび／または選択されたオーディオ・デコード・ノード（これは典型的にはブロックごとに、バッファ１からサブシステム５に呈される入力オーディオのブロックを処理する）および／または該オーディオ・デコード・ノードと逐次に走る選択されたオーディオ後処理ノード（これは入力オーディオのブロックに応答してサブシステム５から出力されるオーディオの各処理済みブロックを処理する）の組み合わせをサポートする。入力オーディオ・ファイルに応答してサブシステム５および７の有効にされたそれぞれが動作する結果、出力オーディオ・ファイルが生成される。動作では、サブシステム５および７の一方または両方が、メモリ１３に（ライブラリとして）事前に記憶されているサブルーチン（または他のコード）を呼び出してもよい。
【００５６】
サブシステム１１の典型的な実装は、（GUIを使って、またはコマンドライン・インターフェースに入力されるテキスト行として実装されうる）一組のユーザー・コントロールを実装するためにユーザー入力に応答する。たとえば、ユーザーは、プレイ／ストップ・コントロールを（ここで、「プレイ」はベンチマーキング動作を開始する）、任意的にはベンチマーキング動作のさまざまなモードを選択するためのコントロール（たとえば、いくつかの異なるチャネル構成を処理することをシミュレートするために負荷およびメモリ・フットプリントの調整を許容するコントロール）を有してもよい。ある例示的実装では、サブシステム１１は、下記を含むユーザー・コントロールを提供する。
【００５７】
ユーザー・コントロール  目的
複雑さユーザー・ダイアル
プログラムされたプロセッサ３によって入力オーディオ・ファイルに対して実行される人工APAの複雑さおよび／または型を（たとえば本稿の他所で述べる仕方でメニューから選択されたコーデック・ノードおよび選択されたオーディオ後処理ノードの組み合わせを選択することによって）変える。
オン／オフ
ベンチマーキングされることのできる各コーデック・ノードおよびオーディオ後処理ノードをオフまたはオンにする（たとえば、ベンチマーキング動作の間、サブシステム５によるコーデック・ノードの実行を有効にしてサブシステム７によるオーディオ後処理ノードの実行を無効にする、あるいはベンチマーキング動作の間、サブシステム５によるコーデック・ノードの実行およびサブシステム７によるオーディオ後処理ノードの実行両方を有効にする）。
開始
複雑さユーザー・ダイアルおよびオン／オフ・コントロールによって指定されるベンチマーク動作の実行を開始する。
一時停止
ベンチマーキングの実行を一時停止し、ベンチマーキング出力データの最新バージョンの出力をさせる（たとえば、表示画面へのプリント）。
ストップ
ベンチマーキングの実行を完全に停止させる。
複雑さ統計レポート・プリント
ベンチマーキング出力データの最新バージョンの出力をさせる（たとえば、表示画面へのプリント）。
複雑さ統計レポート出力
ベンチマーキング出力データの最新バージョンを（バッファ１７から）ファイルに出力する。
入力ファイル指定
使われる入力オーディオ・ファイルのパスを指定する。
【００５８】
いくつかの実施形態では、ユーザーが、オーディオ・サンプル・レートに関わりなく、オーディオ・データのブロックがオーディオ処理を（処理区間とそれに続く（処理しない）スリープ区間を含むサイクルにおいて）受ける（各処理区間において一つのブロックが処理される）デューティーサイクルと、各ブロックのサイズとを制御できるようにするユーザー・コントロールが（たとえば図１のユーザー・インターフェース・サブシステム５０によって、あるいは図２のサブシステム１１によって）設けられる。たとえば、ベンチマーキングが、特定の考えられている展開されたシステム（たとえばアンドロイド・オペレーティング・システムをもつモバイル装置）によって（ベンチマークされる）APAのリアルタイム実行をシミュレートする場合、サンプル・レートに関わりなく、ブロック・サイズX（ここで、展開されたシステムがアンドロイド・オペレーティング・システムをもつモバイル装置である場合、Xは5msに等しくてもよい）が好ましいことがあり、デューティーサイクル（各処理区間の継続時間の、後続のスリープ区間の継続時間に対する比）は、ベンチマーキング中の全体的な平均処理レートが展開されたシステムのリアルタイム動作において期待されるものに一致するように、選択されてもよい。サンプル・レートは通例、現実世界のシステムにおいて出力オーディオのクロック・レートによって決定される。たとえば、オーディオは典型的には48000サンプル毎秒で再生される。アンドロイド・オペレーティング・システムをもつモバイル装置の例を使うと、そのような装置を使ったオーディオ・ベンチマーキングの実行中、装置は、5msの継続時間の諸ブロック（これは48kHzでは200サンプルである）においてオーディオを処理するよう制御されてもよい。この場合、期間は5msであり、デューティーサイクルは、200個のサンプルに対してAPA処理を行なうために必要とされるプロセッサ時間を、該期間の残り時間で割ったものである。該期間の残り時間はスリープ区間である。
【００５９】
いくつかの実施形態では、本発明（たとえば、ベンチマーキング・ソフトウェアで本発明に従ってプログラムされたオーディオ・プロセッサ）に基づくベンチマーキングは、選択されたデコード・ノードまたは選択された後処理ノードのベンチマーキングを（たとえば図２のサブシステム５または７において）個々に、あるいは並行して走る選択されたデコード・ノードおよび選択された後処理ノードの両方を（たとえば図２のサブシステム５および７において）実行するよう制御可能である。
【００６０】
典型的な動作では、図１（または図２）のシステムは、APAをベンチマーキングするための本発明の方法の実施形態を、考えられている展開されたシステム（エンドユーザーによって展開されるオーディオ処理システム）によるAPA（またはそれに似たAPA）の期待されるリアルタイム実行を（たとえば選択可能なベンチマーキング・パラメータのユーザー選択の結果として）シミュレートする仕方で図１（または図２）のシステムによってAPAが実行されている間に、実行する。いくつかの実施形態では、ベンチマーキングされるAPAは、対応APA（展開されたシステムによる現実の使用のために意図されている機能的APA）に対応する人工APA（本稿では時に「ノード」と称される）である。人工APAは、該人工APAが（一組のあらかじめ決定されたまたはユーザー指定されたベンチマーキング・パラメータに従って）システムによってベンチマーキングされるとき、結果として得られるベンチマークが、同じベンチマーキング・パラメータに従って対応する対応APAをベンチマーキングした結果として同じシステムによって決定されるであろうベンチマークに一致する（と少なくとも実質的に同じである）ようなものである。
【００６１】
典型的には、図１（または図２）のシステムのベンチマーキング動作の間、ベンチマーキングされるAPAは、オーディオ・データのブロック（バースト）を、スリープ区間によって分離された一連の処理区間において処理するという意味で、バースト・モードで実行される。ここで、各処理区間の間にオーディオ・データのブロックが処理され、スリープ区間の間にはオーディオ・データは処理されない。選択可能なベンチマーキング・パラメータがデューティーサイクルおよび／またはブロック・サイズを決定してもよい。これにより典型的にはユーザーは、（バースト・モード・ベンチマーキング動作の）平均スループット・レートおよびブロック・サイズが、ベンチマーキングされるAPAまたはそれと同様のAPA（あるいは、APAがノードである場合には、ベンチマーキングされるノードに対応する対応APA）を考えられている展開されたシステムが実行するときに期待されるものと一致させるパラメータを選択できる。たとえば、選択可能なベンチマーキング・パラメータのメニュー（たとえば図１のユーザー・インターフェース５０または図２のサブシステム１１によって提供される）が、（異なるレベルの複雑さをもつ）一組の選択可能な人工APAを示してもよく、ベンチマーキングのためにそれらの人工APAの一つを選択することが、ベンチマーキングの際に用いられるデューティーサイクルおよびブロック・サイズを決定してもよい（ここで、前記デューティーサイクルおよびブロック・サイズはあらかじめ決定されたものであり、よって前記ベンチマーキングの際の選択された人工APAの実行は、ある考えられている展開されたシステムによる選択された人工APAの実行をエミュレートする）。もう一つの例では、選択可能なベンチマーキング・パラメータのメニュー（たとえば図１のユーザー・インターフェース５０または図２のサブシステム１１によって提供される）が、（典型的には異なるレベルの複雑さをもつ）一組の選択可能な人工APAと一組の選択可能なデューティーサイクルおよび／またはブロック・サイズ・パラメータとの両方を示す（よって、ユーザーは、ベンチマーキングされるAPAと、考えられている展開されたシステムによるAPAの実行をエミュレートするようベンチマークの際に用いられるデューティーサイクルおよび／またはブロック・サイズ・パラメータとの所望される組み合わせを選択できる）。バースト・モード動作は、プロセッサ（たとえばCPU）電圧および／または処理レートもしくは周波数の期待されるスロットリング（たとえば、最大まで上方スロットリング調整し、続いて、熱を散逸できるよりも速く測定されるプロセッサ温度が上昇する場合には下方スロットリング調整をして戻す）をもって考えられている展開されたシステムによる前記APA（またはそれと同様のAPA）の実行をシミュレートすることができる（そして典型的にはそうする）。典型的には、バースト・モード動作は、信号出力バッファが空になるのを防ぐために時間を通じて均等に拡散している一連の短い処理区間（この区間中ではオーディオ・データの小さな諸ブロックが処理される）を含む。
【００６２】
図１（または図２）のシステムの典型的な動作では、システムは、ユーザーがAPA（たとえばノード）のベンチマーキングを便利に、APAを走らせている考えられている展開されたシステム（あるいは、APAがノードである場合には、該ノードに対応する対応APAを走らせている考えられている展開されたシステム）の期待されるリアルタイム動作をシミュレートする（たとえば、ユーザー指定可能なベンチマーキング・パラメータのユーザー選択の結果としてシミュレートするまたは模倣する）仕方（本稿では時に「リアルタイム・モード」と称される）で実行できるようにするユーザー・コントロールを提供する。こうして、結果として得られるベンチマークは、ベンチマーキングされたAPA（またはそれと同様のAPA）を実行するシステムの（実際の展開における）期待される動作を評価するために使用可能である。典型的な動作では、図１（または図２）のシステムは、多様な異なるAPA（たとえば、入力オーディオ・ファイルを処理する、図２のサブシステム５によって実行される、選択されたオーディオ・デコード・ノードと、後処理ノードと逐次に走る（デコード・ノードの出力を処理する、図２のサブシステム７によって実行される）選択されたオーディオ後処理ノードとの多様な選択可能な組み合わせ）をベンチマーキングするために有用である。いくつかの実施形態では、少なくとも二つの利用可能なオーディオ・デコード・ノード（オーディオ・コーデックによって通常実装される型の諸アルゴリズム）の任意の一つおよび／または少なくとも二つの利用可能なオーディオ後処理ノード（オーディオ後処理器によって通常実装される型の諸アルゴリズム）の任意の一つおよび／またはオーディオ・デコード・ノードとオーディオ後処理ノードの少なくとも二つの利用可能な組み合わせ（たとえばオーディオ後処理ノードと逐次に走るオーディオ・デコード・ノード）のうちの任意の一つの選択を許容するユーザー・コントロールが提供される（たとえば図２のサブシステム１１によって提供される）。
【００６３】
図２のシステムは、対応APA（第一の展開されたシステムによる現実の使用のために意図されている機能的APA）に対応する人工APA（「ノード」）を決定する段階を含むベンチマーキングのための発明方法の実施形態を実行するよう動作させられてもよい。そのような各ノードはあらかじめ決定されていてもよく、サブシステム５および／またはサブシステム７においてそのような各ノードを実行するためのコードがメモリ１３に記憶されていてもよい。サブシステム１１によって提供される選択可能なベンチマーキング・パラメータのメニューが、前記ノードのうち（それについてあらかじめ決定された実行可能なコードが１３に記憶されているところの）一組の選択可能なノードを、また任意的には、一組の選択可能なデューティーサイクルおよび／またはブロック・サイズ・パラメータをも、示してもよい（それにより、ユーザーは、ベンチマーキングされるべき所望されるノードと、考えられている展開されたシステムによる該ノードの実行をエミュレートするために前記ベンチマーキングの間に用いられるべきデューティーサイクルおよびブロック・サイズ・パラメータとを選択することができる）。
【００６４】
図２のシステムによって実行可能な各ノードは、該ノードの実行が参照コードの図２のシステムによる実行のパフォーマンス特性のうち少なくとも重要なものをエミュレートするという意味で、完全な参照APA（参照コード）をエミュレートしうる。参照APAはデコード方法またはオーディオ後処理方法（あるいはデコード方法および該デコード方法のデコードされたオーディオ出力を処理するオーディオ後処理方法）であってもよい。
【００６５】
たとえば、図２のシステムのいくつかの実装では、サブシステム１１は、下記を含む一組のあらかじめ決定されたノードの任意のものを（ベンチマーキングするために）選択することを許容するユーザー・コントロールを提供する。
【００６６】
第一のノード（最低レベルの複雑さをもつ）。これは、最低レベルの複雑さをもつ第一のデコード方法（たとえば（７つの全周波数範囲チャネルを含む）7.1チャネル・オーディオ・プログラムの通常の向上AC3（E-AC3）デコード）および該第一のデコード方法のデコードされたオーディオ出力を処理する第一のオーディオ後処理方法である第一の参照APAをエミュレートする。
【００６７】
第二のノード。これは（第一の参照APAより高いレベルの複雑さをもつ）第二の参照APAをエミュレートする。第二の参照APAは、第一のデコード方法より高いレベルの複雑さをもつ第二のデコード方法に続いて、該第二のデコード方法のデコードされたオーディオ出力を処理する前記第一のオーディオ後処理方法（第一のノードによってエミュレートされるのと同じオーディオ後処理方法）をもつものである。たとえば、第二のデコード方法は、8個のオーディオ・オブジェクト・チャネルを含むオブジェクト・ベースのエンコードされたオーディオ・プログラムおよび7.1チャネル・フォーマットの、E-AC3エンコードに従ってエンコードされた一組のスピーカー・チャネル（すなわち、7個の全周波数範囲のスピーカー・チャネルを含む）をデコードすることによって、Mチャネルのデコードされた出力（M個のスピーカー・チャネルを含む；Mは2より大きい）を生成してもよい。
【００６８】
第三のノード。これは（第二の参照APAより高いレベルの複雑さをもつ）第三の参照APAをエミュレートする。第三の参照APAは、前記第二のデコード方法（第二のノードによってエミュレートされるのと同じデコード方法）に続いて、該第二のデコード方法のデコードされたオーディオ出力を処理する（第一のオーディオ後処理方法より高いレベルの複雑さをもつ）第二のオーディオ後処理方法をもつものである。たとえば、第二のオーディオ後処理方法は、前記第一のオーディオ後処理方法によって実行されるすべての処理を（前記第二のデコード方法のMチャネルのデコードされた出力に対して）実行してMチャネルの後処理されたオーディオを生成し（Mは2より大きい）、さらに該Mチャネルの後処理されたオーディオに応答して二チャネルの仮想化された出力を生成するヘッドフォン仮想化器をも実装してもよい。
【００６９】
第四のノード。これは（第三の参照APAより高いレベルの複雑さをもつ）第四の参照APAをエミュレートする。第四の参照APAは、前記第二のデコード方法より高いレベルの複雑さをもつ第三のデコード方法に続いて、該第三のデコード方法のデコードされたオーディオ出力を処理する前記第二のオーディオ後処理方法（第三のノードによってエミュレートされるのと同じオーディオ後処理方法）をもつものである。たとえば、第三のデコード方法は、16個のオーディオ・オブジェクト・チャネルを含むオブジェクト・ベースのエンコードされたオーディオ・プログラムおよび7.1チャネル・フォーマットの、E-AC3エンコードに従ってエンコードされた一組のスピーカー・チャネル（すなわち、7個の全周波数範囲のスピーカー・チャネルを含む）をデコードすることによって、Mチャネルのデコードされた出力（M個のスピーカー・チャネルを含む）を生成してもよい。
【００７０】
図２のシステムは、典型的には、ベンチマーキングの間に前記第一のデコード方法、第二のデコード方法および第三のデコード方法のうちのいずれかの選択されたものを実行するようサブシステム５によって実行可能なコード（たとえばメモリ１３に事前に記憶されているコード）と、ベンチマーキングの間に前記第一のオーディオ後処理方法および第二のオーディオ後処理方法のうちのいずれかの選択されたものを実行するようサブシステム７によって実行可能なコード（たとえばメモリ１３に事前に記憶されているコード）と、をもって実装される。上記の「第一のノード」のユーザー選択に応答して、ベンチマーキングの間に、サブシステム５は第一のデコード方法を実行して入力オーディオを処理して、サブシステム７は第一のオーディオ後処理方法を実行してサブシステム５の出力を処理する。上記の「第二のノード」のユーザー選択に応答して、ベンチマーキングの間に、サブシステム５は第二のデコード方法を実行して入力オーディオを処理して、サブシステム７は第一のオーディオ後処理方法を実行してサブシステム５の出力を処理する。上記の「第三のノード」のユーザー選択に応答して、ベンチマーキングの間に、サブシステム５は第二のデコード方法を実行して入力オーディオを処理して、サブシステム７は第二のオーディオ後処理方法を実行してサブシステム５の出力を処理する。上記の「第四のノード」のユーザー選択に応答して、ベンチマーキングの間に、サブシステム５は第三のデコード方法を実行して入力オーディオを処理して、サブシステム７は第二のオーディオ後処理方法を実行してサブシステム５の出力を処理する。
【００７１】
好ましくは、図２のシステムは、上記の第一のノード、第二のノード、第三のノードおよび第四のノードに対する以下の変形の一つを（ベンチマーキングの際に実行するために）選択することを許容するユーザー・コントロールを提供する。
【００７２】
第一のノードの簡略化バージョン。これは、前記第一のデコード方法のみをエミュレートする（すなわち、サブシステム５の動作を有効にし、サブシステム７を無効にすることによる。これにより、ベンチマーキングの間、サブシステム７は前記第一のオーディオ後処理方法を実行せず、サブシステム５は前記第一のデコード方法を実行する）。
【００７３】
第一のノードの第二の簡略化バージョン（ベンチマーキングの間に処理されるべきオーディオ・データがデコード済みの7.1チャネル・オーディオ・プログラムを示している場合に有用）。これは、前記第一のオーディオ後処理方法のみをエミュレートする（すなわち、サブシステム５の動作を無効にし、サブシステム７の動作を有効にすることによる。これにより、ベンチマーキングの間、サブシステム７は前記第一のオーディオ後処理方法を実行するが、サブシステム５は前記第一のデコード方法を実行しない）。
【００７４】
第二のノードの簡略化バージョン。これは、前記第二のデコード方法のみをエミュレートする（すなわち、サブシステム５の動作を有効にし、サブシステム７を無効にすることによる。これにより、ベンチマーキングの間、サブシステム７は前記第一のオーディオ後処理方法を実行せず、サブシステム５は前記第二のデコード方法を実行する）。
【００７５】
第三のノードの簡略化バージョン（ベンチマーキングの間に処理されるべきオーディオ・データがM個のスピーカー・チャネルを含むデコード済みのMチャネル・オーディオを示している場合に有用）。これは、前記第二のオーディオ後処理方法のみをエミュレートする（すなわち、サブシステム５の動作を無効にし、サブシステム７の動作を有効にすることによる。これにより、ベンチマーキングの間、サブシステム７は前記第二のオーディオ後処理方法を実行するが、サブシステム５は前記第二のデコード方法を実行しない）。
【００７６】
第四のノードの簡略化バージョン。これは、前記第三のデコード方法のみをエミュレートする（すなわち、サブシステム５の動作を有効にし、サブシステム７を無効にすることによる。これにより、ベンチマーキングの間、サブシステム７は前記第二のオーディオ後処理方法を実行せず、サブシステム５は前記第三のデコード方法を実行する）。
【００７７】
「ノード」（人工APA）を決定および／またはベンチマークするいくつかの実施形態では、ノードは、（秘密として保たれることが望まれる）秘密の対応APAに対応するよう決定される。すると、ノードは、（本発明のベンチマーキング方法のある実施形態を実行するようシステムをプログラムするソフトウェアとともに）諸ユーザーに広められることができる。それにより、前記ノードおよび前記秘密の対応APAに対応し（あるいは似ており）多様な考えられている展開されたシステム上で走ることが意図されているユーザー定義された対応APAをベンチマーキングすること（あるいはそのようなユーザー決定された対応APAを含むAPAをベンチマーキングすること）ができる。これは、秘密の対応APAを実際に広めることなく達成できる。たとえば、（ノードを決定および／またはベンチマーキングする）図２のいくつかの実装では、ノードは、参照コード（該参照コードは秘密として保たれることが望まれていてもよい）が呼び出すのと同様の仕方で（メモリ１３にライブラリとして記憶されている）信号処理機能を呼び出すよう決定されてもよい（そして、サブシステム５および／またはサブシステム７において該ノードを実行するためのコードがメモリ１３に記憶されてもよい）が、該ノードは、参照コードが実装するのと同じアルゴリズムを実際に実装することなく参照コードのパフォーマンス特性をシミュレートするという主要な相違がある。このようにして、ノード（およびノードをベンチマーキングする方法）は、参照コードとは独立に修正（改善）されることができ、ノードは、参照コードよりも自由に頒布されることができる。
【００７８】
図２のシステムの典型的な実装の動作では、選択されたノードは、前記ノードを実行する考えられている第二の展開されたシステムによる前記ノードの期待されるリアルタイム実行を（たとえば選択可能なベンチマーキング・パラメータのユーザー選択の結果として）シミュレートする仕方でシステムが前記ノードを実行している間に、ベンチマークされる。考えられている第二の展開されたシステムは、エンドユーザーによる展開のために考えられている（または展開されることが期待される）オーディオ処理システムであり、上述した第一の展開されたシステムと同一であることができるが、その必要はない。前記ノードは、前記ノードが（一組のベンチマーキング・パラメータに従って）図２のシステムによってベンチマーキングされるとき、結果として得られるベンチマークが、同じベンチマーキング・パラメータに従って対応する対応APAをベンチマーキングした結果として図２のシステムによって決定されるであろうベンチマークに一致する（と少なくとも実質的に同じである）よう、決定される。このように、前記ノードは、（秘密として保たれることが望まれる）秘密の対応APAに対応するよう決定されることができる。前記ノードは、次いで、（本発明のベンチマーキング方法のある実施形態を実行するよう図２のシステムをプログラムするソフトウェアとともに）諸ユーザーに広められることができる。それにより、秘密の対応APAを実際に広めることなく、前記ノードおよび前記秘密の対応APAに対応し（あるいは似ており）多様な考えられている展開されたシステム上で走ることが意図されているユーザー定義された対応APAをベンチマーキングすること（あるいはそのようなユーザー決定された対応APAを含むAPAをベンチマーキングすること）ができる。
【００７９】
典型的には、ノードのベンチマーキングの間、図２のシステムは前記ノードを、オーディオ・データのブロック（バースト）を、スリープ区間によって分離された一連の処理区間において処理するという意味で、バースト・モードで実行する。ここで、各処理区間の間にオーディオ・データのブロックが処理され、スリープ区間の間にはオーディオ・データは処理されない。サブシステム１１は好ましくは、デューティーサイクルおよび／またはブロック・サイズを決定するために選択されることのできる選択可能なベンチマーキング・パラメータのメニューを提供する。典型的にはこれにより、（バースト・モード動作の）平均スループット・レートおよびブロック・サイズが、前記ノード（または前記ノードに対応する対応APA）を考えられている第二の展開されたシステムが実行するときに期待されるものと一致する。
【００８０】
図２（または図１）のシステムによって実行されるノードは、（たとえば図２のシステムのメモリ１３内の）ライブラリに記憶されていると想定される、信号処理機能を実装するためのコードへの呼び出しを含んでいてもよい（またさらには主としてかかる呼び出しから構成されていてもよい）。よって、システムによる前記ノードの実行は、システムに信号処理機能のシーケンスを実行させるために実行される（システムのメモリに記憶されている）コードへの諸呼び出しを含む。この場合、（ベンチマーキング・システムによる）前記ノードの実行は、好ましくは、対応する対応APAの実行の動的な作業負荷およびメモリ要求を模倣する（たとえば、ベンチマーキング・システムのライブラリ内の処理機能への前記ノードによる呼び出しの数およびシーケンスが、第一の展開されたシステムのライブラリ内の対応する処理機能への前記対応する対応APAによる呼び出しの数およびシーケンスに一致する）。APAによって呼び出されうる信号処理機能の例は（これに限られないが）FFT、フィルタ、ミキサーおよびベクトル乗算を含む。
【００８１】
いくつかの実施形態では、本発明のベンチマーキング方法は、通常「コマンドライン専用」ソフトウェアと称される型のベンチマーキング・ソフトウェアを用いて（本発明に従って）プログラムされたオーディオ・プロセッサ（たとえば図１のプロセッサ４０または図２のプロセッサ３）によって実装される（すなわち、プログラムされたプロセッサは、テキスト行として入力されたユーザー・コマンドに応答してベンチマーキングを実行するようベンチマーキング・ソフトウェアを実行する）。他の実施形態では、プロセッサは、本発明のベンチマーキング方法のパフォーマンスを制御するためにユーザーによって使用可能なグラフィカル・ユーザー・インターフェース（GUI）を実装するベンチマーキング・ソフトウェアを用いて（本発明に従って）プログラムされる。たとえば、通常のプロセッサのオペレーティング・システムはコマンドライン・インターフェースを用いてベンチマーキング・ソフトウェアを走らせることを許さないが、本発明のシステムは、前記通常のプロセッサ（たとえばスマートフォンまたは他のモバイル装置）を、本発明の方法のパフォーマンスを制御するために使用可能なGUIを含むベンチマーキング・ソフトウェアのある実施形態を用いてプログラムすることによって実装されてもよい。この例では、ベンチマーキング・ソフトウェアは自らGUIを実装し、ユーザーはこのGUIを用いて、本発明に基づくベンチマーキングを実行するよう、プログラムされたシステムを制御する。
【００８２】
いくつかの実施形態では、本発明のベンチマーキング方法およびシステムは、バッチ・モードの動作を提供する。このモードでは、等価な機能が、ベンチマーク・フレームワークのコマンドライン・インスタンス化を介して実行されることができる。コマンドライン実行形式は、ベンチマーキング方法が一部のプロセッサ・ボードと対話できる（そして該プロセッサ・ボードによって実装されることができる）唯一の手段であることがある。一方、他の一部のプロセッサについては（たとえばいくつかのモバイル装置では）、GUIはベンチマーキング方法がそのようなプロセッサと対話できる（そして該プロセッサによって実装されることができる）唯一の手段である。
【００８３】
いくつかの実施形態では、本発明のベンチマーキング方法およびシステムは、以下のユーザー・コントロールの一つまたは複数を提供する：
ベンチマーキングされるべきAPA（たとえば人工APA）の選択可能なバージョン（たとえば、選択されたオーディオ処理動作が有効（「オン」）または無効（「オフ」）だが他のすべては同じバージョン）のユーザー選択（好ましくは便利かつ簡単に）と、ベンチマーキングの間のAPAの各選択されたバージョンによって消費される電力の測定とを許容する少なくとも一つのコントロール；
異なるレベルの複雑さをもつ選択可能なAPAのメニューからベンチマークされるべきAPAのユーザー選択を許容する少なくとも一つの複雑さコントロール（たとえば図２のシステムの上記の例示的実装において「第一のノード」、「第二のノード」、「第三のノード」および「第四のノード」の間で選択しうる上述した「複雑さユーザー・ダイアル」コントロール）。ユーザーは典型的には、それぞれの選択可能なAPAの複雑さ（たとえば作業負荷およびメモリ・フットプリント）の指標を提供され、該メニューは、選択可能なAPAを複雑さの順に呈示してもよい（たとえば、諸APAの代表的な作業負荷およびメモリ・フットプリントの指標が複雑さの順に与えられる）。選択可能なAPAは、ある範囲の技術および典型的な使用事例に対応してもよく（たとえば、ある範囲の技術および典型的な使用事例をエミュレートする人工APAであってもよい）、選択可能なAPAのメニューは、ターゲット・プロセッサ（エンドユーザーによって展開されると期待されるオーディオ・プロセッサ）の「能力レベル」記述を提供してもよい（あるいは該提供を可能にしてもよい）。該記述は、各ターゲット・プロセッサによってどのレベルの技術の複雑さが効率的に受け入れられることができるか、および（指定された諸APAを走らせるときに）どのターゲット・プロセッサ（もしあれば）が過剰なメモリ・バス・サイクルまたは他の要因のため受け入れられないパフォーマンスをもちうるかを示す。
【００８４】
典型的な実施形態では、本発明のベンチマーキング・ソフトウェアは、オーディオ・ファイルの入力と、選択されたAPAが実行された（すなわちそれがオーディオ・データを処理している間にベンチマーキングを受けた）後の処理されたオーディオ・ファイルの出力とをサポートする。
【００８５】
いくつかの実施形態では、本発明のベンチマーキング方法は、選択され、ベンチマーキングされたAPAについての複雑さ尺度を示すベンチマーク（たとえば、図１のメモリ６８または図２のバッファ１７内のデータによって示されるベンチマーク）を生成する。たとえば、ベンチマーキング方法のある例示的実施形態は、（電力消費および任意的には他の測定される値のほかに）ベンチマーキングされるAPAに関して、以下の複雑さ尺度の全部または一部を示す：
プロセッサ使用（たとえば、図２のシステムによる入力オーディオ１に応答した出力オーディオ９の生成のために必要とされる平均MCPS（Million  Cycles  Per  Second［百万サイクル毎秒］）および／またはCPI（Cycles  per  instruction［サイクル毎命令］））；および
メモリ使用（たとえば、図２のシステムによって入力オーディオ１に応答して出力オーディオ９を生成するために使われるコード・サイズ（Kbytes）、静的メモリ（Kbytes）、動的メモリ（Kbytes）およびスタック・サイズ（Kbytes））。
【００８６】
好ましくは、本発明の方法は、デコード・ノード（たとえば図２のサブシステム５によって実行される）および後処理ノード（たとえば図２のサブシステム７によって実行される）を示すベンチマーク（たとえば図２のバッファ１７内のデータによって示されるベンチマーク）を、たとえ両方のノードがベンチマーク動作の間に並行して実行されるとしても、別個に決定する。好ましくは、ベンチマークは、ログ・ファイルに集められ、将来の参照のために記憶されたデータによって示される。好ましくは、ベンチマークは、ブロックごとに報告される統計および平均およびピーク情報を示し、入力オーディオに応答して出力オーディオを生成するために必要とされる電力消費（たとえばミリワット単位で測定される）およびレイテンシー（たとえばミリ秒単位で測定される）を示す。
【００８７】
本発明に従ってオーディオ・プロセッサをプログラムするために用いられるベンチマーキング・ソフトウェアのいくつかの実施形態は、モバイル・オペレーティング・システム（たとえばアンドロイド）によって実行可能である、あるいはリナックスまたは他の通常のオペレーティング・システムと互換である（たとえばそれと互換なCコードである）ことが考えられている。
【００８８】
いくつかの実施形態では、以下の段階を実行するようベンチマーキング・ソフトウェアによって（本発明に従って）プログラムされたオーディオ・プロセッサによって実行される：
（ａ）選択された入力オーディオ・データ（たとえば、選択された一組のオーディオ・チャネルを示す一組の入力オーディオ・ビットストリーム）およびユーザー・コマンド（GUIまたは他のユーザー・インターフェースを介して入力される開始またはプレイ・コマンド）に応答して、トランスポート・システムに、前記オーディオ・データをループで連続的に再生させる（ベンチマーキングされているAPAによるループでの処理のため）。場合によっては、ブロック時間整列特異性（block  time-alignment  idiosyncrasies）がならされるよう、ビットストリームが諸ブロック全体を示すのではないことが好ましいことがある。ベンチマーキング・ソフトウェアは、根底にある処理ブロック・サイズに対応していてもいなくてもよいシステム適切な処理ブロック・サイズを決定する；
（ｂ）ベンチマーキングされるべき選択されたAPA（たとえばオーディオ・デコード・ノード（たとえば図２のサブシステム５による実行のため）および／またはオーディオ後処理ノード（たとえば図２のサブシステム７による実行のため））を初期化する（そして適宜構成設定する）；
（ｃ）オーディオ・データの各OSサイズのブロックについてのオーディオ・データに選択されたAPA（たとえばノード（単数または複数））を適用し、平均の全体的な処理レートが期待されるリアルタイムの平均スループットに一致するのに十分長く該APAをスリープにする。
【００８９】
平均スループット処理レートを達成するようこのタイミング制御（すなわち、各バーストにスリープ区間が続くときのオーディオ・データ処理のバーストのデューティーサイクルの制御）を実装する方法の例は、下記を含む。
【００９０】
エンドユーザーによる展開のために考えられている実際のプロセッサ（または考えられている展開されるプロセッサの動作特性に一致する動作特性をもつことがわかっているプロセッサ）上でベンチマーキングされるべきAPA（たとえば人工APA）を実行することによってベンチマーキングを実行する。そうする間、タイミング制御を実装するために、プロセッサの実際の出力呼び出しに頼る（各出力呼び出しは、ベンチマーキングされているAPAによるオーディオ・データのバーストの処理の新たなサイクルの開始のインスタンスとして認識される）。たとえば、オーディオ・クロック・レートの特定の部分区間において（たとえば、サンプル・レートが48kHzであるとき512/48000秒の各区間毎に一度）、呼び出しプログラムは（512個のサンプルを含む）オーディオ・データの新しいブロックを処理のために提供する必要があってもよい。こうして、処理は512サンプルのバーストのオーディオ・データに対して実行され、ベンチマーキング・ソフトウェアは、バーストの処理の各新しいサイクルの始まりのタイミングを認識する。この技法は、（ベンチマーキングの間の）オーディオ処理動作を、OSがこの場合のために利用可能にする、どんなものであれリアルタイムのオーディオ優先状態（real-time  audio  priority  state）にフィットさせるという利点をもちうる。
【００９１】
あるいは、エンドユーザーによる展開のために考えられているもの以外だが、前記考えられている展開されるプロセッサの期待される動作特性を知っているプロセッサ上で、ベンチマーキングされるべきAPAを実行することによって、ベンチマーキングを実行する。この場合、（ベンチマーキングされるべきAPAおよび考えられている展開されるプロセッサの各関連する対について）デューティーサイクルは典型的には、ベンチマーク・システム・セットアップの一部として構成設定される。セットアップ後は、典型的にはベンチマーク・システム・ユーザーがそれを修正する必要はない。セットアップの間、ベンチマーキング・システムは、次のものを含む多様な方法の任意のものにおいて、考えられている展開されるプロセッサによる関連するAPAの現実の実行において期待される平均スループット処理レートを達成するよう、オーディオ・データ処理のバースト（各バーストにはスリープ区間が続く）のデューティーサイクルを制御するよう構成されることができる：
十分小さなタイムアウトをもってOSブロッキング呼び出しを使う（たとえばselect()、poll()など）；
定常的な処理レートを保つために所望されるスリープ時間をチューニングするようソフトウェアの位相ロックループ適応を使う；
OSが提供する再帰タイマーを使う（たとえばsetitimer()/sigwait()）；または
スレッド・セマフォでブロックして、上記のようなタイマーを走らせて正しい間隔で信号を送る別のスレッドをもつ。
【００９２】
いくつかの実施形態では、本発明のベンチマーキング方法は、以下の段階の一つまたは複数を含む：
dlb_intrinsics/instrument/profiling状態を問い合わせし、（ベンチマーキングされているAPAによる）オーディオ・データの各ブロックの処理の毎回の完了後に状態をログ記録する。利用可能であれば、瞬時CPU周波数およびプロセッサIDのようなシステム情報も、キャッシュミス計数のようなプロセッサ状態レジスタからの他の有用な情報と一緒に、ログ記録される。ローカルのみの動作モードでは、この情報は、GUI上での表示の必要のために十分に大きい巡回バッファに記録されてもよい；
ユーザー「ストップ」コマンド（またはGUIまたは他のユーザー・インターフェースを介して入力される他の状態変更コマンド）に応答して、巡回ログ・バッファからの現在のプロファイリング状態の、特定の状態または構成をもって注釈付けされた、別のログへの捕捉を引き起こす。このロールアップ・プロファイリング・データは、前記APAおよび試験対象の考えられている展開されるプロセッサについての識別情報および可能性としてはユーザーのIDと一緒に、ネットワークを通じてデータベース・システムにログ記録されることができる；
GUI（または他のユーザー・インターフェース）が、有用なパフォーマンス統計の全部または部分集合の、定期的に更新される表示を提供する。これにより、ユーザーは、手動でメモを取ったり、あるいは振る舞いを期待と突き合わせて検査したりすることができる；
ベンチマーキング・プロセスは無期限で（ベンチマーキング・データの更新は時折行なわれる）、あるいはユーザーが明示的に打ち切るまで、続けられる。これは、バッテリー耐久試験および物理的な電力測定具もしくはOSレベルのプロファイリング器具の使用を許容する。
【００９３】
本発明の典型的な実施形態は、下記を含む、有用な商業的応用をもつことが期待される。
【００９４】
SOCハードウェア設計者による使用：どんなシリコン企業内にも、次世代SOC（シリコンオンチップ）デバイスを設計するいくらかのハードウェア設計者〔アーキテクト〕がいる。彼らは、複数のCPU、相互接続バス・システム、メモリ・サブシステムおよびメモリ・インターフェース（たとえば外部のDDR3/4メモリ・デバイスへの）を含む該デバイスのそれぞれのキーとなるコンポーネントのレイアウトを設計する。これらの個人は、自分の将来アーキテクチャーが、将来のオーディオ技術（たとえばベンチマーキングされるAPA）の電力効率、レイテンシー、コンピューティング要件および潜在的なキャッシュミスをどのように改善するかをプロファイリングするために、本発明の実施形態に従って決定されるベンチマークを利用することが考えられる。これらの個人は典型的には、アーキテクチャー・トレードオフについて実験し、特定のベンチマークを与えられたときに結果がどのように変わるかを調べることができるようにしてくれるシミュレーターをもっている。典型的な実施形態に基づいて決定されたベンチマークは、現在のインフラストラクチャーに容易に接続でき、現在のアーキテクチャー決定および調整についてのトレードオフを理解できるようにしてくれる、使うのが簡単なベンチマークであろう。
【００９５】
SWコンパイラー・エンジニアによる使用：典型的なCPUベースのSOCおよびCPU  IPプロバイダーは、コンパイラー開発専門のチームをもつ。これらのコンパイラーは一般のまたは手製のコード（たとえばCコード）を取り、該コードを特定の命令セットおよびSOCのための機械コードにコンパイルする。これらのコンパイルをできるだけ効率的にすることは、メモリ・フットプリント、計算量、キャッシュミスおよび電力消費を減らすために決定的である。しばしば、オーディオ・コードのためのコンパイラーを最適化するためにコンパイラー・チームが使う例は時代遅れになっており、次の12か月において市場に投入されるオーディオ・アルゴリズムの進んだ性質を反映していない。本発明の典型的な実施形態に従って生成されるベンチマーク・スイートは、コンパイラー・エンジニアが、自分のコンパイラーにおける変化をプロファイリングするとともに、市場で入手可能な評価プラットフォームをもつ既存のターゲットSOCで電力消費を実際に測定することができるようにする。その結果は、彼らに、以前の世代よりも効率的なコンパイラーをリリースできるようにするとともに、実際の相違を実証することができる。
【００９６】
マイクロアーキテクチャーIP設計者による使用：典型的なCPU  IPおよびDSP  IP企業またはグループ内には、次世代のCPU／DSPデバイスを設計するいくらかのCPU／DSPおよびメモリ・バス・マイクロアーキテクチャー設計者がいる。SOCハードウェア設計者と同様に、これらの個人は、自分の将来アーキテクチャーが、ベンチマーキングされる技術と同様の将来の技術の電力効率、レイテンシー、コンピューティング要件および潜在的なキャッシュミスをどのように改善するかをプロファイリングするために、本発明の実施形態に従って決定されるベンチマークを利用することができる。これらの個人は典型的には、アーキテクチャー・トレードオフについて実験し、特定のベンチマークされるAPAを与えられたときに結果がどのように変わるかを調べることができるようにしてくれる、電力シミュレーターと結合されたRTLをもっていて、これを使う。
【００９７】
CPU  SOCベンチマーク技術マーケティング・エンジニアによる使用：市場にリリースされる現在のSOCデバイスのベンチマーキングは非常に一般的であり、マーケティング差別化のアクティブな分野である。技術マーケティング・エンジニアはしばしば、パフォーマンスおよび電力についてのベンチマーキングが行なわれることを保証し、結果をターゲット顧客に公開することに割り当てられる。典型的な実施形態に従って生成されるベンチマークは、これらの個人に、今日市場で入手可能なオーディオ技術にずっとよく関連するとともに、オーディオに関する自分たちの技術の利点を伝え、実証するベンチマークを提供する。
【００９８】
本発明の他の側面は下記を含む。
【００９９】
本発明の方法またはその段階の任意の実施形態に従って決定される少なくとも一つの人工APAを示すデータを（たとえば非一時的な仕方で）記憶するメモリ（たとえば、選択可能なあらかじめ決定されたノードが記憶されている図２のシステムの実装のメモリ１３）を含むシステムまたは装置；
本発明の方法またはその段階の任意の実施形態によって生成される少なくとも一つのベンチマークを示すデータ（たとえばベンチマークを示すデータ）を（たとえば非一時的な仕方で）記憶するメモリ（たとえば、図２のバッファ１７または図１のシステムのメモリ６８）を含むシステムまたは装置；
本発明の方法またはその段階の任意の実施形態を実装するためのコードを（たとえば非一時的な仕方で）記憶するコンピュータ可読媒体（たとえばディスク）。そのような媒体の例は：本発明のベンチマーキング方法の実施形態を実装する（たとえば実行するようプロセッサをプログラムする）ためのコンピュータ実行可能コードを（非一時的な仕方で）記憶しているディスクである図３のコンピュータ可読媒体１００；ならびに選択可能なあらかじめ決定されたノードが記憶されている（図２のシステムの実装の）メモリ１３を含む。
【０１００】
本発明の実施形態は、ハードウェア、ファームウェア、ソフトウェアまたはそれらの組み合わせにおいて（たとえばプログラム可能な論理アレイとして）実装されうる。たとえば、図１のプロセッサ４０または図２のプロセッサ３は、適切にプログラムされた（または他の仕方で構成された）ハードウェアまたはファームウェアにおいて、たとえばプログラムされた汎用プロセッサ、デジタル信号プロセッサまたはマイクロプロセッサとして、実装されてもよい。特に断わりのない限り、本発明の一部として含まれるアルゴリズムまたはプロセスは、いかなる特定のコンピュータまたは他の装置にも本来的に関係するものではない。特に、さまざまな汎用機械が本稿の教示に従って書かれたプログラムと一緒に使用されてもよいし、あるいは要求される方法段階を実行するようより特化した装置（たとえば集積回路）を構築することがより便利であることもありうる。このように、本発明は、それぞれ少なくとも一つのプロセッサと、少なくとも一つのデータ記憶システム（揮発性および不揮発性メモリおよび／または記憶要素）と、少なくとも一つの入力装置またはポートと、少なくとも一つの出力装置またはポートとを有する一つまたは複数のプログラム可能なコンピュータ・システム（たとえば、図１のシステムまたは図２のシステムを実装するコンピュータ・システム）で実行される一つまたは複数のコンピュータ・プログラムにおいて実装されてもよい。プログラム・コードは、本稿に記載される機能を実行して出力情報を生成するよう、入力データに適用される。出力情報は、既知の仕方で一つまたは複数の出力装置に加えられる。
【０１０１】
そのような各プログラムは、コンピュータ・システムと連絡するために、いかなる所望されるコンピュータ言語（マシン、アセンブリまたは高レベル手続き型、ロジカルまたはオブジェクト指向プログラミング言語を含む）で実装されてもよい。いずれの場合にも、言語はコンパイルされる言語でもインタープリットされる言語でもよい。
【０１０２】
たとえば、コンピュータ・ソフトウェア命令シーケンスによって実装されるとき、本発明の実施形態のさまざまな機能および段階は、好適なデジタル信号処理ハードウェアにおいて走るマルチスレッド・ソフトウェア命令シーケンスによって実装されてもよく、その場合、諸実施形態のさまざまな装置、段階および機能はソフトウェア命令の一部に対応してもよい。
【０１０３】
そのような各コンピュータ・プログラムは、好ましくは、汎用または特殊目的のプログラム可能なコンピュータによって読み取り可能な記憶媒体またはデバイス（たとえば、半導体メモリまたはメディアまたは磁気もしくは光学式メディア）に記憶されるまたはダウンロードされて、該記憶媒体またはデバイスが該コンピュータ・システムによって読み取られるときに前記コンピュータを、本稿に記載される手順を実行するよう構成し、動作させる。本発明のシステムは、コンピュータ・プログラムで構成された（すなわちコンピュータ・プログラムを非一時的な仕方で記憶している）コンピュータ読み取り可能な記憶媒体として実装されてもよい。ここで、そのように構成された該記憶媒体は、コンピュータ・システムに、本稿に記載される機能を実行するよう特定の、あらかじめ定義された仕方で動作させる。
【０１０４】
諸実装が例として、個別的な例示的実施形態を用いて記述されてきたが、本発明の実装が開示される実施形態に限定されないことは理解しておくべきである。むしろ、当業者に明白となるさまざまな修正および類似の構成をカバーすることが意図されている。したがって、付属の請求項の範囲は、そのようなすべての修正および類似の構成を包含するよう最も広い解釈を与えられるべきである。
いくつかの態様を記載しておく。
〔態様１〕
オーディオ処理アルゴリズム（「APA」）をベンチマーキングする方法であって：
（ａ）前記APAを実行する考えられている展開されたシステムの期待されるリアルタイム動作をシミュレートする仕方で、オーディオ・データを処理することによることを含め、前記APAを実行するようオーディオ・プロセッサを動作させる段階と；
（ｂ）段階（ａ）を実行している間に、前記オーディオ・データの処理の間に前記APAの少なくとも一つのパフォーマンス特性を示すベンチマーキング・データを生成する段階であって、前記ベンチマーキング・データは前記APAのベンチマークを決定する、段階とを含む、
方法。
〔態様２〕
段階（ｂ）は、前記オーディオ・データの前記処理の間の前記オーディオ・プロセッサによる電力消費の測定を含み、前記ベンチマークは前記電力消費を示す、態様１記載の方法。
〔態様３〕
段階（ａ）が、選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行される、態様１記載の方法。
〔態様４〕
段階（ａ）における前記オーディオ・データの前記処理は、スリープ区間によって分離された一連の処理区間を含むバースト・モードで実行され、各処理区間の間に前記オーディオ・データのブロックが処理され、スリープ区間の間には前記オーディオ・データのブロックは処理されず、段階（ａ）は、前記バースト・モードについてのデューティーサイクルまたは前記バースト・モードについてのブロック・サイズの少なくとも一方を含む選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行される、態様１記載の方法。
〔態様５〕
前記APAは対応APAに対応する人工APAであり、前記対応APAは第一の展開されたシステムによる現実の使用のために意図された機能的APAである、態様１記載の方法。
〔態様６〕
前記人工APAは、前記対応APAを実行する前記考えられている展開されたシステムの期待されるリアルタイム動作をシミュレートする仕方で、一組のベンチマーキング・パラメータに従って、前記オーディオ・データを処理するよう、前記対応APAを実行するよう前記オーディオ・プロセッサを動作させ、その間に、前記オーディオ・データの処理の間に前記対応APAの前記少なくとも一つのパフォーマンス特性を示す対応APAベンチマーキング・データを決定したとしたらその結果、前記対応APAベンチマーキング・データが、前記人工APAを実行する前記考えられている展開されたシステムの期待されるリアルタイム動作をシミュレートする前記仕方で、前記一組のベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう前記人工APAを実行するよう前記オーディオ・プロセッサを動作させる間に段階（ｂ）において決定されるベンチマークに一致する対応APAベンチマークを決定するようなものである、態様５記載の方法。
〔態様７〕
前記人工APAはユーザー選択された人工APAであり、当該方法は：
少なくとも二つの選択可能な人工APAのうち少なくとも一つのユーザー選択を可能にするユーザー・コントロールを提供し、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答する段階を含む、
態様５記載の方法。
〔態様８〕
前記選択可能な人工APAが：
入力オーディオ・データに応答してデコードされたオーディオ・データを生成するよう前記オーディオ・プロセッサによって実行可能である少なくとも一つの選択可能なデコードAPAと、
前記デコードされたオーディオ・データに応答して処理されたオーディオ・データを生成するよう前記オーディオ・プロセッサによって実行可能である少なくとも一つのオーディオ後処理APAとを含む、
態様７記載の方法。
〔態様９〕
前記APAがユーザー選択されたAPAであり、当該方法は：
異なるレベルの複雑さをもつ選択可能なAPAのメニューからの少なくとも一つの選択可能なAPAのユーザー選択を可能にする少なくとも一つの複雑さコントロールを提供し、前記選択可能なAPAのうちからの前記ユーザー選択されたAPAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答する段階を含む、
態様１記載の方法。
〔態様１０〕
前記人工APAがユーザー選択された人工APAであり、当該方法は：
異なるレベルの複雑さをもつ選択可能な人工APAのメニューからの少なくとも一つの選択可能な人工APAのユーザー選択を可能にする少なくとも一つの複雑さコントロールを提供し、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答する段階を含む、
態様５記載の方法。
〔態様１１〕
ベンチマーキングする方法であって：
（ａ）対応APAに対応する人工オーディオ処理アルゴリズム（「人工APA」）を決定する段階であって、前記対応APAは考えられている第一の展開されたシステムによる現実の使用のために意図されているオーディオ処理アルゴリズム（「APA」）である、段階と；
（ｂ）前記人工APAが、前記人工APAを実行する考えられている第二の展開されたシステムの期待されるリアルタイム動作をシミュレートする仕方でベンチマーキング・システムによって実行されている間に、前記人工APAをベンチマーキングすることの結果として前記人工APAのベンチマークを決定する段階とを含む、
方法。
〔態様１２〕
前記ベンチマーキング・システムはオーディオ・プロセッサであるかオーディオ・プロセッサを含んでおり、段階（ｂ）は：
（ｃ）前記人工APAを実行する前記考えられている第二の展開されたシステムの期待されるリアルタイム動作をシミュレートする仕方で、オーディオ・データを処理することによることを含め、前記人工APAを実行するよう前記オーディオ・プロセッサを動作させる段階と；
（ｄ）段階（ｃ）を実行している間に、前記オーディオ・データの処理の間に前記人工APAの少なくとも一つのパフォーマンス特性を示すベンチマーキング・データを生成する段階であって、前記ベンチマーキング・データは前記人工APAの前記ベンチマークを決定する、段階とを含む、
態様１１記載の方法。
〔態様１３〕
段階（ｄ）は、前記オーディオ・データの前記処理の間の前記オーディオ・プロセッサによる電力消費の測定を含み、前記ベンチマークは前記電力消費を示す、態様１２記載の方法。
〔態様１４〕
段階（ｃ）が、選択可能なベンチマーキング・パラメータのユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行される、態様１２記載の方法。
〔態様１５〕
段階（ｃ）における前記オーディオ・データの前記処理は、スリープ区間によって分離された一連の処理区間を含むバースト・モードで実行され、各処理区間の間に前記オーディオ・データのブロックが処理され、スリープ区間の間には前記オーディオ・データのブロックは処理されず、段階（ｃ）は、前記バースト・モードについてのデューティーサイクルまたは前記バースト・モードについてのブロック・サイズの少なくとも一方を含む選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行される、態様１２記載の方法。
〔態様１６〕
前記人工APAは、前記対応APAを実行する前記考えられている第一の展開されたシステムの期待されるリアルタイム動作をシミュレートする仕方で、一組のベンチマーキング・パラメータに従って、前記オーディオ・データを処理するよう、前記対応APAを実行するよう前記オーディオ・プロセッサを動作させ、その間に、前記オーディオ・データの処理の間に前記対応APAの前記少なくとも一つのパフォーマンス特性を示す対応APAベンチマーキング・データを決定したとしたらその結果、前記対応APAベンチマーキング・データが、前記人工APAを実行する前記考えられている第二の展開されたシステムの期待されるリアルタイム動作をシミュレートする前記仕方で、前記一組のベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう前記人工APAを実行するよう前記オーディオ・プロセッサを動作させる間に段階（ｂ）において決定されるベンチマークに一致する対応APAベンチマークを決定するようなものである、態様１２記載の方法。
〔態様１７〕
前記考えられている第一の展開されたシステムが、前記考えられている第二の展開されたシステムと少なくとも実質的に同一である、態様１２記載の方法。
〔態様１８〕
前記人工APAはユーザー選択された人工APAであり、当該方法は：
少なくとも二つの選択可能な人工APAのうちいずれか一つのユーザー選択を可能にするユーザー・コントロールを提供し、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答する段階を含む、
態様１２記載の方法。
〔態様１９〕
前記選択可能な人工APAが：
入力オーディオ・データに応答してデコードされたオーディオ・データを生成するよう前記オーディオ・プロセッサによって実行可能である少なくとも一つの選択可能なデコードAPAと、
前記デコードされたオーディオ・データに応答して処理されたオーディオ・データを生成するよう前記オーディオ・プロセッサによって実行可能である少なくとも一つのオーディオ後処理APAとを含む、
態様１８記載の方法。
〔態様２０〕
前記人工APAがユーザー選択された人工APAであり、当該方法は：
異なるレベルの複雑さをもつ選択可能な人工APAのメニューからの少なくとも一つの選択可能な人工APAのユーザー選択を可能にする少なくとも一つの複雑さコントロールを提供し、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答する段階を含む、
態様１２記載の方法。
〔態様２１〕
前記人工APAは、前記ベンチマーキング・システムのメモリに記憶されていると想定される、信号処理機能を実装するためのコードへの呼び出しを含んでおり、前記ベンチマーキング・システムによる前記人工APAの実行は、前記コードの少なくとも一部への呼び出しを含み、前記コードの少なくとも一部への前記呼び出しは、前記ベンチマーキング・システムに前記信号処理機能のシーケンスを実行させるために段階（ｂ）の間に実行される、態様１１記載の方法。
〔態様２２〕
オーディオ処理アルゴリズム（「APA」）をベンチマーキングするよう構成されたオーディオ・ベンチマーキング・システムであって、当該システムは：
前記APAを実行する考えられている展開されたシステムの期待されるリアルタイム動作をシミュレートする仕方で、オーディオ・データを処理することによることを含め、前記APAを実行するよう結合され構成されたオーディオ処理サブシステムと；
前記オーディオ処理サブシステムによる前記オーディオ・データの処理の間に前記APAの少なくとも一つのパフォーマンス特性を示すベンチマーキング・データを生成するよう結合され構成された第二のサブシステムであって、前記ベンチマーキング・データは前記APAのベンチマークを決定する、第二のサブシステムとを含む、
システム。
〔態様２３〕
前記第二のサブシステムは、前記オーディオ処理サブシステムによる前記オーディオ・データの前記処理の間の前記オーディオ・プロセッサによる電力消費を測定するよう構成され、前記ベンチマークは前記電力消費を示す、態様２２記載のシステム。
〔態様２４〕
前記オーディオ処理サブシステムが、選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう構成される、態様２２記載のシステム。
〔態様２５〕
前記オーディオ処理サブシステムは、前記オーディオ・データの前記処理を、スリープ区間によって分離された一連の処理区間を含むバースト・モードで行なうよう構成され、各処理区間の間に前記オーディオ・データのブロックが処理され、スリープ区間の間には前記オーディオ・データのブロックは処理されず、前記オーディオ処理サブシステムは、前記バースト・モードについてのデューティーサイクルまたは前記バースト・モードについてのブロック・サイズの少なくとも一方を含む選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう構成される、態様２２記載のシステム。
〔態様２６〕
前記APAは対応APAに対応する人工APAであり、前記対応APAは第一の展開されたシステムによる現実の使用のために意図された機能的APAである、態様２２記載のシステム。
〔態様２７〕
前記人工APAは、前記対応APAを実行する前記考えられている展開されたシステムの期待されるリアルタイム動作をシミュレートする仕方で、一組のベンチマーキング・パラメータに従って、前記オーディオ・データを処理するよう、前記対応APAを実行するよう前記オーディオ処理サブシステムが動作し、その間に、前記第二のサブシステムが、前記オーディオ・データの処理の間に前記対応APAの前記少なくとも一つのパフォーマンス特性を示す対応APAベンチマーキング・データを決定したとしたらその結果、前記対応APAベンチマーキング・データが、前記人工APAを実行する前記考えられている展開されたシステムの期待されるリアルタイム動作をシミュレートする前記仕方で、前記一組のベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう前記オーディオ処理サブシステムが前記人工APAを実行する間に前記第二のサブシステムによって決定されるベンチマークに一致する対応APAベンチマークを決定するようなものである、態様２６記載のシステム。
〔態様２８〕
前記人工APAはユーザー選択された人工APAであり、当該システムは：
少なくとも二つの選択可能な人工APAのうち少なくとも一つのユーザー選択を可能にするユーザー・コントロールを提供するよう結合され構成されたユーザー・インターフェースをも含み、当該システムは、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ処理サブシステムを構成することによって応答するよう構成される、
態様２６記載のシステム。
〔態様２９〕
前記選択可能な人工APAが：
入力オーディオ・データに応答してデコードされたオーディオ・データを生成するよう前記オーディオ処理サブシステムによって実行可能である少なくとも一つの選択可能なデコードAPAと、
前記デコードされたオーディオ・データに応答して処理されたオーディオ・データを生成するよう前記オーディオ処理サブシステムによって実行可能である少なくとも一つのオーディオ後処理APAとを含む、
態様２８記載のシステム。
〔態様３０〕
前記少なくとも二つの選択可能な人工APAを決定するデータを非一時的な仕方で記憶するよう結合され構成されたメモリをも含む、
態様２８記載のシステム。
〔態様３１〕
前記人工APAを決定するデータを非一時的な仕方で記憶するよう結合され構成されたメモリをも含む、
態様２６記載のシステム。
〔態様３２〕
前記人工APAがユーザー選択された人工APAであり、当該システムは：
異なるレベルの複雑さをもつ選択可能な人工APAのメニューからの少なくとも一つの選択可能な人工APAのユーザー選択を可能にする少なくとも一つの複雑さコントロールを提供するよう結合され構成されたユーザー・インターフェースをも含み、当該システムは、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ処理サブシステムを構成することによって応答するよう構成される、
態様２６記載のシステム。
〔態様３３〕
前記APAがユーザー選択されたAPAであり、当該システムは：
異なるレベルの複雑さをもつ選択可能なAPAのメニューからの少なくとも一つの選択可能なAPAのユーザー選択を可能にする少なくとも一つの複雑さコントロールを提供するよう結合され構成されたユーザー・インターフェースをも含み、当該システムは、前記選択可能なAPAのうちからの前記ユーザー選択されたAPAのユーザー選択に対して、前記ユーザー選択されたAPAを実行するよう前記オーディオ処理サブシステムを構成することによって応答するよう構成される、
態様２２記載のシステム。
〔態様３４〕
前記ベンチマーキング・データの少なくとも一部を非一時的な仕方で記憶するよう結合され構成されたメモリをも含む、
態様２２記載のシステム。
〔態様３５〕
対応APAに対応する人工オーディオ処理アルゴリズム（「人工APA」）をベンチマーキングするよう構成されたオーディオ・ベンチマーキング・システムであって、前記対応APAは考えられている第一の展開されたオーディオ処理システムによる現実の使用のために意図されたオーディオ処理アルゴリズム（「APA」）であり、当該オーディオ・ベンチマーキング・システムは：
前記人工APAを実行する考えられている第二の展開されたオーディオ処理システムの期待されるリアルタイム動作をシミュレートする仕方で、オーディオ・データを処理することによることを含め、前記人工APAを実行するよう結合され構成されたオーディオ処理サブシステムと；
前記オーディオ処理サブシステムによる前記オーディオ・データの処理の間に前記人工APAの少なくとも一つのパフォーマンス特性を示すベンチマーキング・データを生成するよう結合され構成された第二のサブシステムであって、前記ベンチマーキング・データは前記人工APAのベンチマークを決定する、第二のサブシステムとを含む、
システム。
〔態様３６〕
前記第二のサブシステムは、前記オーディオ処理サブシステムによる前記オーディオ・データの前記処理の間の前記オーディオ・プロセッサによる電力消費を測定するよう構成され、前記ベンチマークは前記電力消費を示す、態様３５記載のシステム。
〔態様３７〕
前記オーディオ処理サブシステムが、選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう構成される、態様３５記載のシステム。
〔態様３８〕
前記オーディオ処理サブシステムは、前記オーディオ・データの前記処理を、スリープ区間によって分離された一連の処理区間を含むバースト・モードで行なうよう構成され、各処理区間の間に前記オーディオ・データのブロックが処理され、スリープ区間の間には前記オーディオ・データのブロックは処理されず、前記オーディオ処理サブシステムは、前記バースト・モードについてのデューティーサイクルまたは前記バースト・モードについてのブロック・サイズの少なくとも一方を含む選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう構成される、態様３５記載のシステム。
〔態様３９〕
前記人工APAは、前記対応APAを実行する前記考えられている第一の展開されたオーディオ処理システムの期待されるリアルタイム動作をシミュレートする仕方で、一組のベンチマーキング・パラメータに従って、前記オーディオ・データを処理するよう、前記対応APAを実行するよう前記オーディオ処理サブシステムが動作し、その間に、前記第二のサブシステムが、前記オーディオ・データの処理の間に前記対応APAの前記少なくとも一つのパフォーマンス特性を示す対応APAベンチマーキング・データを決定したとしたらその結果、前記対応APAベンチマーキング・データが、前記人工APAを実行する前記考えられている第二の展開されたオーディオ処理システムの期待されるリアルタイム動作をシミュレートする前記仕方で、前記一組のベンチマーキング・パラメータに従って前記オーディオ・データを処理するよう前記オーディオ処理サブシステムが前記人工APAを実行する間に前記第二のサブシステムによって決定されるベンチマークに一致する対応APAベンチマークを決定するようなものである、態様３８記載のシステム。
〔態様４０〕
前記考えられている第一の展開されたシステムが、前記考えられている第二の展開されたシステムと少なくとも実質的に同一である、態様３５記載のシステム。
〔態様４１〕
前記人工APAはユーザー選択された人工APAであり、当該オーディオ・ベンチマーキング・システムは：
少なくとも二つの選択可能な人工APAのうち少なくとも一つのユーザー選択を可能にするユーザー・コントロールを提供するよう結合され構成されたユーザー・インターフェースをも含み、当該オーディオ・ベンチマーキング・システムは、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ処理サブシステムを構成することによって応答するよう構成される、
態様３５記載のオーディオ・ベンチマーキング・システム。
〔態様４２〕
前記選択可能な人工APAが：
入力オーディオ・データに応答してデコードされたオーディオ・データを生成するよう前記オーディオ処理サブシステムによって実行可能である少なくとも一つの選択可能なデコードAPAと、
前記デコードされたオーディオ・データに応答して処理されたオーディオ・データを生成するよう前記オーディオ処理サブシステムによって実行可能である少なくとも一つのオーディオ後処理APAとを含む、
態様４１記載のシステム。
〔態様４３〕
前記少なくとも二つの選択可能な人工APAを決定するデータを非一時的な仕方で記憶するよう結合され構成されたメモリをも含む、
態様４１記載のシステム。
〔態様４４〕
前記人工APAを決定するデータを非一時的な仕方で記憶するよう結合され構成されたメモリをも含む、
態様３５記載のシステム。
〔態様４５〕
前記人工APAがユーザー選択された人工APAであり、当該オーディオ・ベンチマーキング・システムは：
異なるレベルの複雑さをもつ選択可能な人工APAのメニューからの少なくとも一つの選択可能な人工APAのユーザー選択を可能にする少なくとも一つの複雑さコントロールを提供するよう結合され構成されたユーザー・インターフェースをも含み、当該オーディオ・ベンチマーキング・システムは、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ処理サブシステムを構成することによって応答するよう構成される、
態様３５記載のオーディオ・ベンチマーキング・システム。
〔態様４６〕
前記ベンチマーキング・データの少なくとも一部を非一時的な仕方で記憶するよう結合され構成されたメモリをも含む、
態様３５記載のシステム。
〔態様４７〕
オーディオ処理アルゴリズム（「APA」）のベンチマーキングを実行するよう、オーディオ・プロセッサであるまたはオーディオ・プロセッサを含む処理システムをプログラムするためのコンピュータ実行可能コードを非一時的な仕方で記憶しているコンピュータ読み取り可能な媒体であって、前記ベンチマーキングを実行することは：
（ａ）前記APAを実行する考えられている展開されたシステムの期待されるリアルタイム動作をシミュレートする仕方で、オーディオ・データを処理することによることを含め、前記APAを実行するよう前記オーディオ・プロセッサを動作させる段階と；
（ｂ）段階（ａ）を実行している間に、前記オーディオ・データの処理の間に前記APAの少なくとも一つのパフォーマンス特性を示すベンチマーキング・データを生成する段階であって、前記ベンチマーキング・データは前記APAのベンチマークを決定する、段階とによることを含む、
媒体。
〔態様４８〕
前記コンピュータ実行可能コードは、段階（ｂ）が、前記オーディオ・データの前記処理の間の前記オーディオ・プロセッサによる電力消費の測定を含み、前記ベンチマークが前記電力消費を示すよう、前記処理システムをプログラムするためのコードを含む、態様４７記載の媒体。
〔態様４９〕
前記コンピュータ実行可能コードは、段階（ａ）が、選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行されるよう、前記処理システムをプログラムするためのコードを含む、態様４７記載の媒体。
〔態様５０〕
前記コンピュータ実行可能コードは、段階（ａ）における前記オーディオ・データの前記処理が、スリープ区間によって分離された一連の処理区間を含むバースト・モードで実行され、各処理区間の間に前記オーディオ・データのブロックが処理され、スリープ区間の間には前記オーディオ・データのブロックは処理されず、段階（ａ）は、前記バースト・モードについてのデューティーサイクルまたは前記バースト・モードについてのブロック・サイズの少なくとも一方を含む選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行される、よう、前記処理システムをプログラムするためのコードを含む、態様４７記載の媒体。
〔態様５１〕
前記コンピュータ実行可能コードは、前記APAが対応APAに対応するユーザー選択された人工APAであり、前記対応APAは第一の展開されたシステムによる現実の使用のために意図された機能的APAであるよう、かつ、前記APAの前記ベンチマーキングが：
少なくとも二つの選択可能な人工APAのうち少なくとも一つのユーザー選択を可能にするユーザー・コントロールを提供し、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答する段階を含む、よう、前記処理システムをプログラムするためのコードを含む、
態様４７記載の媒体。
〔態様５２〕
対応APAに対応する人工オーディオ処理アルゴリズム（「人工APA」）のベンチマーキングを実行するよう、オーディオ・プロセッサであるまたはオーディオ・プロセッサを含む処理システムをプログラムするためのコンピュータ実行可能コードを非一時的な仕方で記憶しているコンピュータ読み取り可能な媒体であって、前記対応APAは考えられている第一の展開されたシステムによる現実の使用のために意図されたオーディオ処理アルゴリズム（「APA」）であり、前記人工APAの前記ベンチマーキングは：
（ａ）前記人工APAを実行する考えられている第二の展開されたシステムの期待されるリアルタイム動作をシミュレートする仕方でオーディオ・データを処理することによることを含め、前記人工APAを実行するよう前記オーディオ・プロセッサを動作させる段階と；
（ｂ）段階（ａ）を実行している間に、前記オーディオ・データの処理の間に前記人工APAの少なくとも一つのパフォーマンス特性を示すベンチマーキング・データを生成する段階であって、前記ベンチマーキング・データは前記人工APAのベンチマークを決定する、段階とを含む、
媒体。
〔態様５３〕
前記コンピュータ実行可能コードは、段階（ｂ）が、前記オーディオ・データの前記処理の間の前記オーディオ・プロセッサによる電力消費の測定を含み、前記ベンチマークが前記電力消費を示すよう、前記処理システムをプログラムするためのコードを含む、態様５２記載の媒体。
〔態様５４〕
前記コンピュータ実行可能コードは、段階（ａ）が、選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行されるよう、前記処理システムをプログラムするためのコードを含む、態様５２記載の媒体。
〔態様５５〕
前記コンピュータ実行可能コードは、段階（ａ）における前記オーディオ・データの前記処理が、スリープ区間によって分離された一連の処理区間を含むバースト・モードで実行され、各処理区間の間に前記オーディオ・データのブロックが処理され、スリープ区間の間には前記オーディオ・データのブロックは処理されず、段階（ａ）は、前記バースト・モードについてのデューティーサイクルまたは前記バースト・モードについてのブロック・サイズの少なくとも一方を含む選択可能なベンチマーキング・パラメータからユーザー選択によって決定される少なくとも一つのベンチマーキング・パラメータに従って実行される、よう、前記処理システムをプログラムするためのコードを含む、態様５２記載の媒体。
〔態様５６〕
前記コンピュータ実行可能コードは、前記人工APAがユーザー選択された人工APAであるよう、かつ、前記人工APAの前記ベンチマーキングが：
少なくとも二つの選択可能な人工APAのうち少なくとも一つのユーザー選択を可能にするユーザー・コントロールを提供し、前記選択可能な人工APAのうちからの前記ユーザー選択された人工APAのユーザー選択に対して、前記ユーザー選択された人工APAを実行するよう前記オーディオ・プロセッサを構成することによって応答する段階を含む、よう、前記処理システムをプログラムするためのコードを含む、
態様５２記載の媒体。
〔態様５７〕
前記コンピュータ実行可能コードは、前記少なくとも二つの選択可能な人工APAを決定するためのコードを含む、態様５６記載の媒体。
【図１】
0006486473.tif 000002
【図２】
0006486473.tif 000003
【図３】
0006486473.tif 000004