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

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

▶ フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェラインの特許一覧
特許6254142周波数ドメインにおける遅延を使用しながら複数のラウドスピーカのためのラウドスピーカ信号を計算する装置及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6254142
(24)【登録日】2017年12月8日
(45)【発行日】2017年12月27日
(54)【発明の名称】周波数ドメインにおける遅延を使用しながら複数のラウドスピーカのためのラウドスピーカ信号を計算する装置及び方法
(51)【国際特許分類】
   H04S 7/00 20060101AFI20171218BHJP
   H04R 3/00 20060101ALI20171218BHJP
【FI】
   H04S7/00 300
   H04R3/00 310
【請求項の数】17
【全頁数】33
(21)【出願番号】特願2015-249310(P2015-249310)
(22)【出願日】2015年12月22日
(62)【分割の表示】特願2014-551566(P2014-551566)の分割
【原出願日】2012年12月28日
(65)【公開番号】特開2016-106459(P2016-106459A)
(43)【公開日】2016年6月16日
【審査請求日】2015年12月22日
(31)【優先権主張番号】102012200512.9
(32)【優先日】2012年1月13日
(33)【優先権主張国】DE
(73)【特許権者】
【識別番号】500341779
【氏名又は名称】フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン
(74)【代理人】
【識別番号】100085497
【弁理士】
【氏名又は名称】筒井 秀隆
(72)【発明者】
【氏名】フランク,アンドレアス
(72)【発明者】
【氏名】ラース,ミヒャエル
(72)【発明者】
【氏名】スラドチェック,クリストフ
【審査官】 渡邊 正宏
(56)【参考文献】
【文献】 特表2001−509610(JP,A)
【文献】 特表2010−539833(JP,A)
【文献】 特表2010−520671(JP,A)
【文献】 特表2002−508616(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04R 3/00− 3/14
H04S 1/00− 7/00
(57)【特許請求の範囲】
【請求項1】
複数のオーディオ音源を使用しながら複数のラウドスピーカについてラウドスピーカ信号を計算する装置であって、1つのオーディオ音源は1つのオーディオ信号(10)を含む、装置において、
各オーディオ信号(10)をブロック毎にスペクトルドメインへと変換し、各オーディオ信号について複数の時間的に連続する短時間スペクトルを取得する順変換ステージ(100)と、
各オーディオ信号について複数の時間的に連続する短時間スペクトルを蓄積するメモリ(200)と、
ある遅延値(701)に基づいて、1つのラウドスピーカと1つのオーディオ信号との組合せについて、前記複数の時間的に連続する短時間スペクトルの中の特定の短時間スペクトルにアクセスするメモリアクセス制御部(600)と、
前記オーディオ信号とラウドスピーカとの組合せに対して提供されたフィルタを使用して、前記オーディオ信号とラウドスピーカとの組合せに係る前記特定の短時間スペクトルをフィルタリングすることで、オーディオ信号とラウドスピーカとの各組合せに対して各フィルタ済み短時間スペクトルを取得する、フィルタステージ(300)と、
1つのラウドスピーカについて前記各フィルタ済み短時間スペクトルを合計し、合計済み短時間スペクトルを各ラウドスピーカについて取得する、合計ステージ(400)と、
前記各ラウドスピーカについての合計済み短時間スペクトルをブロック毎に時間ドメインへと逆変換し、前記ラウドスピーカ信号を取得する逆変換ステージ(800)と、
を備える装置。
【請求項2】
請求項1に記載の装置において、
前記フィルタステージ(300)は、前記ラウドスピーカとオーディオ信号との組合せについて提供されたフィルタのインパルス応答から、1つの修正済みインパルス応答を決定するよう構成され、その修正済みインパルス応答では、幾つかのゼロが前記インパルス応答の時間的開始点において挿入され、前記ゼロの数に対応した持続時間が前記遅延値に対応する持続時間とストライド値に対応する持続時間との整数除算の剰余以下となるように、前記幾つかのゼロを挿入するよう構成され、前記ストライド値は、時間的サンプルの第1ブロックの1番目のサンプルが、時間的サンプルの後続の第2のブロックの1番目のサンプルから間隔をあけて配置されたサンプルの数に等しい、装置。
【請求項3】
請求項2に記載の装置において、
前記フィルタは、2つの隣接する離散インパルス応答値の間の持続時間の小数部によって遅延を達成するよう構成された小数部遅延フィルタを含み、前記小数部は、前記遅延値に対応する持続時間と前記ストライド値に対応する持続時間との整数除算の剰余と、前記インパルス応答に挿入されたゼロの数とに依存している、装置。
【請求項4】
請求項1乃至3のいずれかに記載の装置において、
前記フィルタステージ(300)は、前記特定の短時間スペクトルと前記フィルタの伝達関数とを、スペクトル値毎に乗算するよう構成されている、装置。
【請求項5】
請求項1に記載の装置において、
前記メモリ(200)は、各オーディオ音源について、前記オーディオ音源について蓄積された短時間スペクトルへの任意のアクセスを持つ周波数ドメイン遅延ライン(201、202、203)を含み、そのアクセス操作が各短時間スペクトルについて1つのブロックインデックス(269)を介して実行可能である、装置。
【請求項6】
請求項1乃至5のいずれかに記載の装置において、
前記順変換ステージ(100)は前記オーディオ音源の数に等しい数の変換ブロック(101,102,103)を含み、
前記逆変換ステージ(800)は前記ラウドスピーカ信号の数に等しい数の変換ブロック(801,802,803)を含み、
周波数ドメイン遅延ライン(201,202,203)の数はオーディオ音源の数に等しく、
前記フィルタステージ(300)は、前記オーディオ音源の数とラウドスピーカ信号の数との積に等しい数の単一フィルタ(301〜309)を含む、装置。
【請求項7】
請求項2又は3に記載の装置において、
前記順変換ステージと逆変換ステージとはオーバーラップ・セーブ法に従って構成されており、
前記順変換ステージ(100)は、前記ストライド値(B)を使用しながら前記オーディオ信号をオーバーラップしているブロックへと分解して、前記短時間スペクトルを取得するよう構成され、
前記逆変換ステージ(800)は、あるラウドスピーカについてのフィルタ済み短時間スペクトルの逆変換に続いて、逆変換済みブロック内の特定の領域を廃棄し、かつそれまで廃棄されなかったあらゆる部分を継ぎ合わせることで、前記ラウドスピーカのためのラウドスピーカ信号を得るように構成されている、装置。
【請求項8】
請求項2又は3に記載の装置において、
前記順変換ステージ(100)と逆変換ステージ(800)とはオーバーラップ加算法に従って構成されており、
前記順変換ステージ(100)は、前記ストライド値(B)を使用しながら前記オーディオ信号を隣接するブロックへと分解し、前記隣接するブロックはオーバーラップ加算法に従ってゼロパディングされており、その変換は前記オーバーラップ加算法に従ってゼロパディングされたブロックを用いて実行され、
前記逆変換ステージ(800)は、あるラウドスピーカについて合計されたスペクトルの逆変換に続いて、逆変換済みブロックのオーバーラップ領域を合計することにより、前記ラウドスピーカのためのラウドスピーカ信号を得るように構成されている、装置。
【請求項9】
請求項1乃至8のいずれかに記載の装置において、
前記順変換ステージ(100)と逆変換ステージ(800)とは、それぞれデジタルフーリエ変換アルゴリズムと逆デジタルフーリエ変換アルゴリズムとを実行するよう構成されている、装置。
【請求項10】
請求項1乃至9のいずれかに記載の装置において、
前記オーディオ音源の仮想位置と前記ラウドスピーカの位置とを使用しながら、ラウドスピーカとオーディオ音源との各組合せについて前記遅延値(701)を生成し、かつ前記メモリアクセス制御部(600)又は前記フィルタステージ(300)へ前記遅延値(701)を提供する、波面合成オペレータ(700)をさらに備える、装置。
【請求項11】
請求項1乃至10のいずれかに記載の装置において、
前記オーディオ音源は指向特性を有し、前記フィルタステージ(300)はラウドスピーカとオーディオ信号との異なる組合せに対して異なるフィルタを使用するよう構成されている、装置。
【請求項12】
請求項1乃至11のいずれかに記載の装置において、
前記順変換ステージ(100)は、ストライド値(B)を使用しながら前記ブロック毎の変換を実行するよう構成され、
前記メモリアクセス制御部(600)は、前記遅延値をストライド値の倍数と1つの剰余とに区分すると共に、前記ストライド値の倍数を使用しながら前記メモリ(200)にアクセスすることで、前記特定の短時間スペクトルをリトリーブするよう構成されている、装置。
【請求項13】
請求項12に記載の装置において、
前記フィルタステージ(300)は前記剰余を使用しながら前記フィルタを形成するよう構成されている、装置。
【請求項14】
請求項1乃至11のいずれかに記載の装置において、
前記順変換ステージ(100)は、ブロック毎の高速フーリエ変換を使用するよう構成され、前記フィルタが遅延へのさらなる寄与を提供しない場合、そのブロック長はK+Bに等しく、Bは連続するブロックの生成におけるストライド値であり、Kは前記フィルタステージのフィルタの次数である、装置。
【請求項15】
請求項1乃至13のいずれかに記載の装置において、
前記順変換ステージ(100)は、ブロック毎の高速フーリエ変換を使用するよう構成され、前記フィルタによって追加の遅延が提供される場合、そのブロック長はK+2B−1に等しく、Bは連続するブロックの生成におけるストライド値であり、Kはいかなる遅延ラインを持たない前記フィルタの次数であり、最大で(B−1)個のゼロがインパルス応答に挿入されている、装置。
【請求項16】
複数のオーディオ音源を使用しながら複数のラウドスピーカについてラウドスピーカ信号を計算する方法であって、1つのオーディオ音源は1つのオーディオ信号(10)を含む、方法において、
各オーディオ信号(10)をブロック毎にスペクトルドメインへと変換し、各オーディオ信号について複数の時間的に連続する短時間スペクトルを取得するステップと、
各オーディオ信号について複数の時間的に連続する短時間スペクトルを蓄積するステップと、
ある遅延値(701)に基づいて、1つのラウドスピーカと1つのオーディオ信号との組合せについて、前記複数の時間的に連続する短時間スペクトルの中で、特定の短時間スペクトルにアクセスするステップと、
前記オーディオ信号とラウドスピーカとの組合せに対して提供されたフィルタを使用して、前記オーディオ信号とラウドスピーカとの組合せに係る前記特定の短時間スペクトルをフィルタリングすることで、オーディオ信号とラウドスピーカとの各組合せに対して各フィルタ済み短時間スペクトルを取得するステップと、
1つのラウドスピーカについての前記各フィルタ済み短時間スペクトルを合計し、合計済み短時間スペクトルを各ラウドスピーカについて取得するステップと、
前記各ラウドスピーカについての合計済み短時間スペクトルをブロック毎に時間ドメインへと逆変換し、前記ラウドスピーカ信号を取得するステップと、
を含む方法。
【請求項17】
コンピュータ又はプロセッサ上で実行したとき、請求項16に記載の方法を実行するためのプログラムコードを有するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、周波数ドメインにおけるフィルタリングを使用しながら複数のラウドスピーカのためのラウドスピーカ信号を計算する装置及び方法に関し、例えば波面合成レンダラ装置及びそのような装置を操作する方法に関する。
【背景技術】
【0002】
家電分野においては、新たな技術や革新的な製品に対する要求が常に存在する。本願が扱う例は、オーディオ信号をできるだけ臨場感を持って再生したいという要求である。
【0003】
オーディオ信号の多チャネルラウドスピーカ再生の方法は、長年に亘って公知となり、標準化されてきた。全ての従来技術には、ラウドスピーカの配置とリスナーの位置との両方が、既に伝送フォーマット上に組み込まれているという欠点がある。リスナーに対してラウドスピーカが不正確に配置された場合には、オーディオ品質が有意に劣化することになる。最適なサウンドは、再生空間の小さな部分内、所謂スィートスポットにおいてのみ聞くことができる。
【0004】
オーディオ再生において、自然な空間的印象を改善し、音に包まれた感覚を向上させることが、新たな技術の助力を得て達成できる。そのような技術の基本である、いわゆる波面合成(WFS)は、デルフト工科大学において研究され、1980年代後期に初めて発表された(非特許文献1)。
【0005】
しかし、波面合成の方法はコンピュータ性能と伝送レートとに対して膨大な要件を課すため、波面合成が現実に使用されることは、現在に至るまで稀であった。これまで、マイクロプロセッサ技術とオーディオ符号化との分野において達成された進歩によってのみ、波面合成の技術が特定のアプリケーションにおいて使用可能となっている。
【0006】
WFSの基本的な概念は、波動理論のホイヘンスの原理を適用することに基づいている。即ち、波面が当たる各点は素元波の開始点となり、球形又は円形の形状で伝播するという理論である。
【0007】
ホイヘンスの原理が音響学に適用された場合、互いに隣接して配置された多数のラウドスピーカ(所謂ラウドスピーカアレイ)を使用することにより、どのような音場も再現可能である。この目的で、各ラウドスピーカのオーディオ信号が音源のオーディオ信号から所謂WFSオペレータを適用することで生成される。最も簡素な場合、即ち1つの点音源と線形ラウドスピーカアレイを再現する場合には、このWFSオペレータは入力信号の振幅スケーリングと時間遅延とに対応するであろう。そのような振幅スケーリングと時間遅延の適用は、以下においては「スケールと遅延」と称する。
【0008】
再生されるべき単一の点音源とラウドスピーカの線形配置とがある場合には、個別のラウドスピーカから放射された音場が適正に重畳するように、各ラウドスピーカのオーディオ信号に対して時間遅延と振幅スケーリングとが適用され得る。複数の音源がある場合には、各ラウドスピーカに対する寄与が各音源について別々に計算され、結果として得られる信号同士が加算されるであろう。再生されるべき音源が反射する壁面を持つ室内に位置する場合には、反射もまた追加的な音源としてラウドスピーカアレイを介して再生されなければならないであろう。従って、計算における作業量は、音源の個数と録音室の反射特性とラウドスピーカの個数とに大きく依存している。
【0009】
この技術の利点は、特に、自然な空間的サウンド印象が再生室の大部分に亘って可能となることである。公知の技術とは異なり、音源の方向と距離とが非常に正確な方法で再生される。限定的な範囲ではあるが、実際のラウドスピーカアレイとリスナーとの間に仮想音源でさえも配置され得る。
【0010】
音伝播のための理想的なラウドスピーカ特性、規則的で切れ目ないラウドスピーカアレイ又は自由音場条件など、理論的に想定される前提条件が少なくとも近似的に満たされた場合、波面合成の適用は良好な結果をもたらすことができる。しかし現実には、例えば不完全なラウドスピーカアレイ又は部屋の音響の有意な影響によって、そのような条件が満たされる場合は多くない。
【0011】
環境的条件は、環境のインパルス応答によって記述されることができる。
【0012】
この点については以下の例を用いてより詳細に説明する。ラウドスピーカは壁面に対して音声信号を放射するが、その壁面の反射は望ましくないと想定すべきである。
【0013】
この簡素な例について、波面合成を使用しているときの部屋補償(room compensation)は、壁面から反射された音声信号がいつラウドスピーカに戻り到達するか、及び、この反射された音声信号がどの振幅を有するかを調べるために、初めに壁面の反射を決定することを含むであろう。この壁面による反射が望ましくない場合、波面合成は、この壁面による反射を次のような方法で除去する可能性を提供する。即ち、ラウドスピーカに対し、元のオーディオ信号に加えて、反射信号とは位相において逆であって対応する振幅を有する信号を組み込み、その結果、順方向の補償波が反射波を消去して、考慮対象となる環境内ではこの壁面による反射が除去されるという方法である。これは、初めに環境のインパルス応答を計算して、この環境のインパルス応答に基づいて壁面の性質や位置が決定されることによって実行されてもよい。これは、壁面により反射される音声を、追加的なWFS音源、即ち所謂ミラー音源を用いて表現することを含み、ミラー音源の信号は、元の音源信号からフィルタリング及び遅延を用いて生成される。
【0014】
この環境のインパルス応答が測定された場合、更に、オーディオ信号上に重畳されるべきであってかつラウドスピーカに対して組み込まれるべき補償信号が続いて計算された場合、この壁面による反射の消去が発生して、その結果、この環境内にいるリスナーは、この壁面が全く存在しないという印象を持つようになるであろう。
【0015】
しかしながら、反射波の最適な補償のために決定的に重要な点は、部屋のインパルス応答が正確に決定されて、過剰補償または不足補償が発生しないようにすることである。
【0016】
このように、波面合成は、大きな再生領域に亘る仮想音源の正確なマッピングを可能にする。同時に、サウンドミキサーやサウンドエンジニアに対し、より複雑な音声情景を作成する中での新たな技術的及び創造的可能性を提供する。1980年代の末期においてデルフト工科大学で開発されていたような波面合成は、サウンド再生のホログラフィックな手法を表現するものである。キルヒホフ−ヘルムホルツ(Kirchhoff-Helmholtz)の積分方程式は、この基礎としての役割を担う。その方程式は、閉鎖された体積内におけるどのような音場も、その体積の表面上にモノポール及びダイポールの音源(ラウドスピーカアレイ)を分布させることで生成し得ることを示している。
【0017】
波面合成においては、仮想位置にある仮想音源を放射しているオーディオ信号から、ラウドスピーカアレイの各ラウドスピーカについての合成信号が計算され、それら合成信号が有する振幅及び遅延は、ラウドスピーカアレイの中に存在するラウドスピーカによって出力された個々のサウンド波の重畳の結果として得られる波が、仮想位置にある仮想音源が実位置を有する実音源であった場合にその仮想位置にある仮想音源から結果として得られるであろう波と対応するような、振幅及び遅延となる。
【0018】
典型的には、複数の仮想音源が異なる仮想位置に存在する。典型的には、複数のラウドスピーカについての複数の合成信号内に1つの仮想音源が結果として得られるように、各仮想位置にある各仮想音源について合成信号が計算される。1つのラウドスピーカの観点から見れば、そのラウドスピーカは異なる仮想音源から発生している複数の合成信号を受け取ることになるであろう。それら音源の重畳は線形重畳原理によって可能であるが、次に、ラウドスピーカによって実際に放射される再生信号をもたらすことになる。
【0019】
波面合成の可能性を更に追求すると、ラウドスピーカアレイのサイズを大きくすることが考えられる。即ち、より多くの個別のラウドスピーカが提供されることになる。しかし、このことはまた、波面合成ユニットが提供しなければならない演算性能を増大させてしまう結果を招く。なぜなら、典型的に、チャネル情報もまた考慮されなければならないからである。具体的には、このことは原理的に各仮想音源から各ラウドスピーカへの専用の各伝送チャネルが存在することを意味するものであり、さらにまた、原理的に各仮想音源が各ラウドスピーカのための各合成信号をもたらし、及び/又は、各ラウドスピーカが仮想音源と同数の合成信号を取得する場合が存在し得ることを意味するものである。
【0020】
波面合成の可能性を更に追求すると、具体的には、映画のアプリケーションにおいて仮想音源が移動可能にもなる効果を得ようとすると、合成信号の計算と、チャネル情報の計算と、それらチャネル情報と合成信号とを結合させることによる再生信号の生成とのために、かなり多量の演算操作が実行されなければならない点に留意すべきである。
【0021】
波面合成の更なる重要な展開には、複雑で周波数依存の指向特性を有する仮想音源の再生が含まれる。音源/ラウドスピーカの各組合せについて、遅延に加え、特定のフィルタを用いた入力信号の畳み込みをも考慮しなければならないことから、典型的には、現存するシステムにおいて演算のために消費可能な能力を超過してしまうことになる。
【先行技術文献】
【非特許文献】
【0022】
【非特許文献1】Berkhout, A.J.; de Vries, D.; Vogel, P.: Acoustic Control By Wavefield Synthesis. JASA 93, 1993
【発明の概要】
【発明が解決しようとする課題】
【0023】
本発明の目的は、複数のオーディオ音源を使用しながら複数のラウドスピーカのための複数のラウドスピーカ信号を計算する効率的な概念を提供することである。
【課題を解決するための手段】
【0024】
本発明の目的は、請求項1に記載のラウドスピーカ信号を計算する装置、請求項18に記載のラウドスピーカ信号を計算する方法、又は請求項19に記載のコンピュータプログラムによって達成される。
【0025】
本発明の利点を挙げると、本発明は、順変換(forward transform)ステージとメモリとメモリアクセス制御部とフィルタステージと合計ステージと逆変換(backtransform)ステージとの組合せにより、効率的な概念であって、複数の順変換および逆変換の計算が、オーディオ音源とラウドスピーカとの各個別の組合せについて実行される必要がなく、代わりに、各個別のオーディオ音源についてだけ実行されればよい、という特徴を有する概念を提供する。
【0026】
同様に、逆変換は、各個別のオーディオ信号/ラウドスピーカの組合せについて計算される必要がなく、代わりに、複数のラウドスピーカについてだけ計算されればよい。つまり、順変換の計算の数はオーディオ音源の個数と等しく、逆変換の計算の数は、1つのラウドスピーカ信号が1つのラウドスピーカを駆動するときに駆動されるべきラウドスピーカ信号の個数及び/又はラウドスピーカの個数と等しいことを意味する。加えて、特に有利な点として、周波数ドメインにおける遅延の導入がメモリアクセス制御部によって効率的に達成される点が挙げられる。つまり、オーディオ信号/ラウドスピーカの1つの組合せに関する1つの遅延値に基づいて、その変換に使用されたストライドがその目的のために有利に使用される。特に、順変換ステージは、各オーディオ信号に対し、各オーディオ信号のためのメモリ内に蓄積された短時間スペクトル(short-term spectra:STS)のシーケンスを提供する。そこで、メモリアクセス制御部は、時間的に連続する短時間スペクトルのシーケンスに対するアクセスを有する。次に、遅延値に基づいて、その短時間スペクトルのシーケンスから、1つのオーディオ信号/ラウドスピーカの組合せのために、例えばある波面合成オペレータによって提供された遅延値に最も合致するような1つの短時間スペクトルが選択される。例えば、1つの短時間スペクトルから次の短時間スペクトルへの個々のブロックの計算におけるストライド値が20msであり、波面合成オペレータが100msの遅延を必要とする場合、考慮対象となるオーディオ信号/ラウドスピーカの組合せに関し、メモリ内の直近の短時間スペクトルではなく、メモリに蓄積されかつ逆向きに数えて5つ目の短時間スペクトルを使用して、全体的な遅延を容易に達成できる。従って、本発明の装置は既に、ストライドによって決定された特定のラスタ(グリッド)内に蓄積された短時間スペクトルだけに基づいて、遅延を実行できる状態にある。そのラスタが特定のアプリケーションに対して既に十分である場合には、更なる尺度を用いる必要はない。しかしながら、より精密な遅延制御が必要とされる場合には、フィルタステージにおいて、特定の短時間スペクトルを周波数ドメインでフィルタ処理するために、フィルタインパルス応答の開始位置に特定数のゼロを用いて操作されているインパルス応答を持つあるフィルタを使用してもよい。このような方法で、より精密な遅延の細分化(granulation)が達成可能となり、そのより精密な遅延とは、メモリアクセス制御部内で行われる場合のようなブロックストライドに従う持続時間で発生するのではなく、サンプリング周期に従う持続時間、即ち2つのサンプル間の時間的距離に従う持続時間で、かなり精密な方法で発生する。加えて、精密度がもう一段高い遅延の細分化が必要とされる場合には、フィルタステージにおいて、既にゼロを用いて補足されていたインパルス応答が小数部遅延(fractional delay)フィルタを使用して実行される。従って、本発明の実施形態においては、いかなる必要な遅延値も、周波数ドメインで、即ち順変換と逆変換との間に計算されてもよく、その遅延の主要部分がメモリアクセス制御部によって単純に達成されてもよい。この場合、細分化は既に達成されており、それがブロックストライドに従う細分化及び/又はブロックストライドに対応する持続時間に従う細分化であってもよい。より精密な遅延が必要とされる場合、そのより精密な遅延は、フィルタステージにおいて、オーディオ信号とラウドスピーカとの各個別の組合せのためのフィルタインパルス応答を、そのインパルス応答の開始点にゼロを挿入する方法で修正することにより実行される。これは言わば時間ドメインにおける遅延を表現するが、しかしこの遅延は、本願に従えば、周波数ドメインにおける短時間スペクトル上に「押印(imprinted)」されて、その結果、適用された遅延は、オーバーラップ・セーブ・アルゴリズム又はオーバーラップ加算アルゴリズムなどの高速畳み込みアルゴリズムと互換性を有し、及び/又は高速畳み込みによって提供される枠組み内で効率的に実装できる。
【0027】
本発明は特に静的な音源に適している。なぜなら、静的な仮想音源は、各オーディオ信号/ラウドスピーカの組合せについての静的な遅延値をも有するからである。従って、メモリアクセス制御は、仮想音源の各位置について固定的に設定されてもよい。加えて、フィルタステージの各個別ブロック内の特定のラウドスピーカ/オーディオ信号の組合せについてのインパルス応答は、実際のレンダリングアルゴリズムを実行する前に既に事前設定されてもよい。この目的で、当該オーディオ信号/ラウドスピーカの組合せのために実際に必要とされるインパルス応答が、そのインパルス応答の開始位置に適数のゼロを挿入するよう修正されて、より精密に解像された遅延を達成する。その後、このインパルス応答はスペクトルドメインへと変換されて個別のフィルタ内に蓄積される。実際の波面合成レンダリングの計算においては、個別のフィルタブロック内の個別フィルタの蓄積された伝送関数に常に頼る可能性もある。次に、ある静的な音源が1つの位置から次の位置へと遷移した場合、メモリアクセス制御のリセットと個別フィルタのリセットとが必要になるであろう。しかしこれらのリセットは、例えばある静的な音源が1つの位置から次の位置へと遷移した場合について、例えば10秒の時間インターバルで既に事前計算されている。このように、静的音源が依然としてその古い位置においてレンダリングされているときでも、個別フィルタの周波数ドメイン伝達関数は既に事前計算されていてもよく、その結果、その静的音源がその新たな位置においてレンダリングされるべきときには、個別フィルタステージはその中に蓄積された伝達関数を既に有しており、それらの伝達関数はまた、適正な数のゼロが挿入された状態のインパルス応答に基づいて計算されたものである。
【0028】
好ましい波面合成レンダラ装置及び/又は波面合成レンダラ装置を作動させる好ましい方法は、音源信号x0…xN-1についてサンプリング値を提供するN個の仮想音源と、音源信号x0…xN-1からM個のラウドスピーカ信号y0…yM-1についてサンプリング値を提供する信号処理ユニットとを含み、フィルタスペクトルは音源/ラウドスピーカの各組合せについて前記信号処理ユニットに蓄積され、ブロック長Lの複数のFFT計算ブロックを使用する各音源信号x0…xN-1はスペクトルに変換され、FFT計算ブロックは長さ(L−B)のオーバーラップと長さBのストライドとを含み、各スペクトルは個々の同じ音源の関連するフィルタスペクトルと乗算され、それによりスペクトルが生成される。スペクトルに対するアクセスは、ラウドスピーカがそれぞれの場合に互いに所定の遅延をもって駆動されるように実行され、その遅延はストライドBの整数倍に対応しており、個々の同じラウドスピーカiの全てのスペクトルは加算され、それによりスペクトルQjが生成され、そして各スペクトルQjはIFFT計算ブロックを使用してM個のラウドスピーカ信号y0…yM-1についてのサンプリング値へと変換される。
【0029】
1つの実施形態では、ラウドスピーカ信号y0…yM-1における遅延をスペクトルへの目標付きアクセス(targeted access)によって生成するために、個別スペクトルのブロック毎のシフトが使用されてもよい。この遅延にかかる演算消費は、スペクトルへの目標付きアクセスにのみ依存しており、そのためその遅延がストライドBの整数倍に相当する限り、遅延を導入するための追加の演算能力を必要としない。
【0030】
全体として、本発明は指向性音源又は指向特性を持つ音源の波面合成に関連している。幾つかの仮想音源と多数のラウドスピーカとからなる現実のリスニング状況とWFSセットアップにとって、仮想音源とラウドスピーカとの各組合せについて個別FIRフィルタを適用する必要性は、構成を簡素にすることを度々阻害する。
【0031】
この複雑性における高速な増加を抑制するために、本発明は、時間/周波数技術に基づいた効率的な処理構造を提案している。高速畳み込みアルゴリズムの要素をWFSレンダリングシステムの構造へと組み合わせることで、操作と中間結果との効率的再利用を可能とし、それにより効率性におけるかなりの増加を達成できる。仮想音源やラウドスピーカの数が増加するにつれて、潜在的な加速が増加したとしても、適切なサイズでのWFSセットアップについての実質的な節約が達成される。加えて、フィルタの大きさの次数とブロック遅延値とについてのパラメータ選択の可能性についての広範な多様性に対して、パワーゲインが比較的一定になる。WFSのような音響再生技術によって固有に必要となる時間遅延の取り扱いは、オーバーラップ・セーブ技術の修正を必要とする。このことは、遅延値を区分けし、かつ周波数ドメイン遅延ライン又は周波数ドメインで構成された遅延ラインを使用することによって、効率的に達成できる。
【0032】
よって、本発明はWFSにおける指向性音源または指向特性を含む音源をレンダリングすることに限定されず、任意の時間遅延を持つ大量のマルチチャネル・フィルタリングを使用する他の処理作業にも適用できる。
【0033】
望ましい実施例はオーバーラップ・セーブ法に従って生成されるべきスペクトルについて提案している。このオーバーラップ・セーブ法は高速畳み込みの一方法である。これは、入力シーケンスx0…xN-1を互いにオーバーラップしているサブシーケンスへと分解する操作を含む。これに続いて、非周期高速畳み込みに合致する部分が、形成された周期畳み込み結果(巡回畳み込み)から差し引かれる。
【0034】
さらに好ましい実施例は、FFTによって時間離散インパルス応答から変換されるべきフィルタスペクトルを提供する。そのフィルタスペクトルの計算がその計算のタイムクリティカルな部分には影響を及ぼさないように、タイムクリティカルな計算ステップが実際に実行される前に、フィルタスペクトルは提供されてもよい。
【0035】
さらに好ましい実施例では、ラウドスピーカがゼロの数に応じた所定の遅延を持って相互に駆動されるように、各インパルス応答の前に幾つかのゼロが配置されるようにする。このようにして、ストライドBの整数倍に相当しないような遅延でさえも実現可能である。この目的で、所望の遅延が2つの部分に分解される。第1の部分はストライドBの整数倍であり、一方、第2の部分は剰余を表す。このような分解において、第2の部分はストライドBよりも必然的に小さくなる。
【図面の簡単な説明】
【0036】
本発明の更なる詳細と利点とは、図面を用いて以下に説明する実施形態から明らかになる。
図1a】本発明の一実施形態に係るラウドスピーカ信号を計算する装置のブロック図である。
図1b】適用されるべき遅延をメモリアクセス制御部とフィルタステージとによって決定する手順の概略を示す。
図1c】新たな遅延値が設定されるべきときにフィルタ処理済み短時間スペクトルを得るためのフィルタステージの好適な実施例の代表例を示す。
図1d】本発明の文脈におけるオーバーラップ・セーブ法の概略を示す。
図1e】本発明の文脈におけるオーバーラップ加算法の概略を示す。
図2】いかなる周波数依存のフィルタリングも使用せずに時間ドメインにおける遅延と振幅スケーリング(スケールと遅延)とを用いたWFSレンダリングシステムを使用する場合の信号処理の基本的構造を示す。
図3】オーバーラップとセーブ技術を使用する場合の信号処理の基本的構造を示す。
図4】本発明に係る周波数ドメイン遅延ラインを使用する場合の信号処理の基本的構造を示す。
図5】本発明に係る周波数ドメイン遅延ラインを用いた信号処理の基本的構造を示す。
図6a】音源の数に対する種々の畳み込みアルゴリズムに係る演算能力の消費を比較して示す。
図6b】ラウドスピーカの数に対する種々の畳み込みアルゴリズムに係る演算能力の消費を比較して示す。
図6c】フィルタ次数に対する種々の畳み込みアルゴリズムに係る演算能力の消費を比較して示す。
図6d】ブロックストライドに対する種々の畳み込みアルゴリズムに係る演算能力の消費を比較して示す。
図7】本明細書で使用する記号の幾何学的配置を示す。
図8a】オーディオ信号/ラウドスピーカのある組合せに係るインパルス応答を示す。
図8b】オーディオ信号/ラウドスピーカのある組合せに係るゼロ挿入後のインパルス応答を示す。
図9】メモリとメモリアクセス制御部との作動を示した図である。
【発明を実施するための形態】
【0037】
図1aは、複数のオーディオ音源を使用して、例えば1つの再生室内の所定の位置に配置されていてもよい複数のラウドスピーカのための複数のラウドスピーカ信号を計算する装置を示しており、各オーディオ音源が各オーディオ信号10を含んでいる。オーディオ信号10は順変換ステージ100へと供給され、このステージ100は各オーディオ信号をブロック単位でスペクトルドメインへと変換するよう構成されており、その結果、時間的に連続する複数の短時間スペクトルが各オーディオ信号について取得される。加えて、各オーディオ信号のための時間的に連続する幾つかの短時間スペクトルを蓄積するよう構成されたメモリ200が準備されている。メモリの構成とストレージのタイプに依存して、複数の短時間スペクトルのうちの各短時間スペクトルに対し、経時的に増大する時間値が関連付けられてもよく、メモリはその場合、各オーディオ信号のための時間的に連続する幾つかの短時間スペクトルを、その時間値と共に蓄積する。しかしながら、この場合、メモリ内の短時間スペクトルは、時間的に連続する方法で配置される必要はない。代わりに、どの時間値がどのスペクトルに対応するか、及びどのスペクトルがどのオーディオ信号に属しているか、を定義するメモリコンテンツの表が存在する限り、短時間スペクトルは、例えばRAMメモリ内のいずれの位置に蓄積されてもよい。
【0038】
メモリアクセス制御部は、ラウドスピーカとオーディオ信号との各組合せについて、そのオーディオ信号/ラウドスピーカの組合せのために予め定義された遅延値に基づいて、複数の短時間スペクトルの中から特定のある短時間スペクトルを採用するよう構成されている。メモリアクセス制御部600によって決定されたそれら特定の短時間スペクトルは、次に、オーディオ信号とラウドスピーカとの各組合せのための各特定の短時間スペクトルをフィルタ処理するフィルタステージ300へと供給され、その結果、そのフィルタステージにおいて、オーディオ信号とラウドスピーカとのそれぞれの組合せに対して提供される各フィルタを用いたフィルタ処理が実行され、更に、そのようなオーディオ信号とラウドスピーカとの各組合せについて、フィルタ処理済み短時間スペクトルのシーケンスが取得される。フィルタ処理済み短時間スペクトルは、次にフィルタステージ300により、1つのラウドスピーカについてのフィルタ処理済み短時間スペクトルを合計する合計ステージ400へと供給され、その結果、各ラウドスピーカについて1つの合計された短時間スペクトルが取得される。それらの合計された短時間スペクトルは、次に各ラウドスピーカについての合計された短時間スペクトルをブロック単位で逆変換するための逆変換ステージ800へと供給されて、時間ドメイン内における短時間スペクトルが取得され、これによってラウドスピーカ信号が決定されてもよい。このように、ラウドスピーカ信号は、逆変換ステージ800によって、出力12において出力される。
【0039】
波面合成の装置の一実施形態においては、遅延値701が波面合成オペレータ(WFSオペレータ)700によって供給され、このオペレータ700は、オーディオ信号とラウドスピーカとの各個別の組合せについての各遅延値701を、入力702を介して供給される音源位置の関数として、更に、ラウドスピーカ位置、即ち再生室内に配置されたラウドスピーカの位置であって、入力703を介して供給される位置の関数として、計算する。装置が波面合成以外の異なるアプリケーション、即ちアンビソニックス構成やその他のために構成されている場合でも、WFSオペレータ700に対応する構成要素、即ち個々のラウドスピーカ信号についての各遅延値を計算し、及び/又は、オーディオ信号/ラウドスピーカの個々の組合せについての各遅延値を計算する構成要素が存在するであろう。各構成に依存するが、WFSオペレータ700は遅延値に加えてスケーリング値も計算し、そのスケーリング値もまた、典型的にはフィルタステージ300内でスケーリングファクタによって考慮され得るであろう。そのスケーリング値は、フィルタステージ300において使用されるフィルタ係数をスケーリングすることにより、追加の演算能力を必要とすることなく考慮されることができる。
【0040】
従って、メモリアクセス制御部600は、特定の構成においては、オーディオ信号とラウドスピーカとの異なる組合せについての遅延値を取得するよう構成されてもよく、更に、各組合せについてメモリに対するアクセス値を計算するよう構成されてもよい。この点については、以下に図1bを参照しながら説明する。図1bを参照しながら更に説明するように、フィルタステージ300は、オーディオ信号とラウドスピーカとの異なる組合せについての遅延値を取得して、そこから、オーディオ信号/ラウドスピーカの個々の組合せについての各インパルス応答において考慮されるべきゼロの個数を計算するよう構成されてもよい。一般的に言えば、フィルタステージ300は、サンプリング周期の倍数でより精密な細分性をもって遅延を実行するよう構成されており、他方、メモリアクセス制御部600は、効率的なメモリアクセス操作によって、順変換ステージにより適用されたストライドBの細分性で遅延を実行するよう構成されている。
【0041】
図1bは、図1aの構成要素700,600,300によって実行されてもよい機能の流れを示す。
【0042】
特に、WFSオペレータ700は、図1bのステップ20において示すように、遅延値Dを提供するよう構成されている。ステップ21においては、例えばメモリアクセス制御部600は、遅延値Dをブロックサイズ及び/又はストライドBの倍数と剰余とに分割するであろう。特に、遅延値Dは、ストライドBと倍数Dbとの積と、剰余と、を含む数に等しい。代替的に、倍数Dbを一方とし、剰余Drを他方として、これらの数は整数除算(integer division)を実行することにより、特に、遅延値Dに対応する持続時間とストライドBに対応する持続時間との整数除算を実行することにより、計算され得る。その整数除算の結果はDbになり、その整数除算の余りはDrとなるであろう。次に、メモリアクセス制御部600は、ステップ22において、倍数Dbを用いてメモリアクセスの制御を実行するであろう。この点については、後段で図9を参照しながら更に詳細に説明する。このように、遅延Dbは、遅延値及び/又は倍数Dbに従って選択された特定の蓄積された短時間スペクトルに対する任意のアクセスによって単純に構成されるため、周波数ドメインにおいて効率的に計算される。非常に精密な遅延が必要とされるような、本発明の更なる実施形態においては、好適にはフィルタステージ300において実行されるステップ23が、剰余Drをサンプリング周期TAの倍数と剰余Dr’とに分割するステップを含む。サンプリング周期TAは、後段で図8a及び図8bを参照しながら更に詳細に説明するが、インパルス応答の2つの値の間のサンプリング周期を表しており、典型的には図1の順変換ステージ100の入力10における離散オーディオ信号のサンプリング周期に合致する。サンプリング周期TAの倍数DAは、次にステップ24において、フィルタのインパルス応答内にDA個のゼロを挿入することによってフィルタを制御するために使用される。ステップ23においてDr’で示される分割の剰余は、次に(サンプリング周期TAの量子化によって必要とされた精密度よりも幾分でも更に精密な遅延制御が必要とされる場合には)ステップ25において使用され、このステップでは、小数部遅延フィルタ(FDフィルタ)がDr’に従って設定される。このように、幾つかのゼロが既に挿入されていたフィルタがFDフィルタとして更に構成される。
【0043】
ステップ24においてフィルタを制御することで達成された遅延は「時間ドメイン」における遅延として解釈されてもよいが、周波数ドメインにおける前記遅延は、フィルタステージの特定の構成により、メモリ200から(具体的には倍数Dbを使用しながら)読み出されていた特定の短時間スペクトルに対して適用される。従って、その結果は、図1b内に符号26で示すように、全体の遅延を3個のブロックへと分割することになる。第1のブロックは、Db即ちブロックサイズと、ストライドBとの積に対応する持続時間である。第2の遅延ブロックは、サンプリング持続時間TAのDA倍、即ちこの積DA×TAに対応する持続時間である。次に、小数部遅延及び/又は遅延剰余Dr’が残る。Dr’はTAよりも小さく、DA×TAはBよりも小さい。これは、図1b内のブロック21及び23の隣の2つの分割方程式に直接的によるものである。
【0044】
次に、図1cを参照しながらフィルタステージ300の好適な構成について説明する。
【0045】
ステップ30において、1つのオーディオ信号/ラウドスピーカの組合せについて1つのインパルス応答が提供される。特に指向性音源については、オーディオ信号とラウドスピーカとの各組合せについて専用のインパルス応答が与えられるであろう。しかし、他の音源についても、オーディオ信号とラウドスピーカとの少なくとも特定の組合せに対しては、異なるインパルス応答が存在する。ステップ31においては、図1b内でステップ23を用いて説明したように、挿入されるべきゼロの個数、即ち値DAが決定される。次に、ステップ32において、DAと等しい個数のゼロがインパルス応答内の開始位置に挿入され、修正済みのインパルス応答が得られる。この点に関しては図8aを参照されたい。図8aはインパルス応答h(t)の一例を示しており、実際のアプリケーションと比較すると短か過ぎるものであるが、サンプル3において第1の値を有している。従って、値t=0からt=3の間の期間を、音源からマイクロホンなどの録音位置又はリスナーまで伝わる音によって発生する遅延と見なすことができる。この後には、インパルス応答の多様なサンプルが続き、それらは距離TA、即ちサンプリング持続時間であってサンプリング周波数の逆数と等しい持続時間を有する。図8bは1つのインパルス応答であって、具体的には、オーディオ信号/ラウドスピーカの組合せについてTA=4個のゼロを挿入した後の同じインパルス応答を示している。従って、図8bに示すインパルス応答は、ステップ32において得られるインパルス応答と同じである。次に、図1cに示すように、この修正済みのインパルス応答、即ち図8bのようなインパルス応答のスペクトルドメインへの変換がステップ33において実行される。次に、ステップ34において、特定の短時間スペクトル、即ちDbによってメモリから読み出されておりかつ決定されていた短時間スペクトルが、好適にはスペクトル値毎に、ステップ33において得られた、変換された修正済みインパルス応答によって乗算されて、最終的にフィルタ済み短時間スペクトルが取得される。
【0046】
この実施形態においては、順変換ステージ100は、時間的サンプルのシーケンスからストライドBを用いて短時間スペクトルのシーケンスを決定するよう構成されており、その結果、短時間スペクトルへと変換された時間的サンプルの第1ブロックの1番目のサンプルが、時間的サンプルの後続の第2ブロックの1番目のサンプルから、ストライド値と等しい数のサンプル分だけ間隔を空けて配置されるようになる。この場合、ストライド値は、新たなブロックのそれぞれ1番目のサンプルによって定義され、そのストライド値は、図1d及び図1eを参照しながら以下に説明するように、オーバーラップ・セーブ法とオーバーラップ加算法との両方のために存在する。
【0047】
加えて、メモリ200内の任意のストレージを可能にするために、短時間スペクトルと関連付けられた時間値が、好ましくはブロックインデックスとして蓄積される。そのブロックインデックスとは、短時間スペクトルの1番目のサンプルが参照値からその分だけ時間的に間隔を空けて離される、ストライド値の数を示すものである。参照値とは、例えば図9内の符号249における短時間スペクトルのインデックス0である。
【0048】
更に、メモリアクセス手段は、好適には、特定の短時間スペクトルの遅延値と時間値とに基づいて、その特定の短時間スペクトルを以下のように決定するよう構成されている。即ち、特定の短時間スペクトルの時間値が、その遅延値に対応する持続時間をストライド値に対応する持続時間で割り算した結果の整数部と等しいか又は1だけ大きくなるように決定される。1つの実装例においては、使用される結果の整数部が実際に必要とされる遅延よりも常に小さくなるよう、正確に設定される。しかし代替的に、その結果の整数部に1を加算した数を使用することもでき、その値は、実際に必要とされる遅延の言わば「切上げ」の値である。「切上げ」の場合には、僅かに大き過ぎる遅延が達成されるが、アプリケーションによっては容易に満足なものになり得る。実装例によるが、切上げ又は切捨てのいずれが実行されるかという問題は、剰余の量の関数として決定されてもよい。例えば、剰余がストライドに対応する持続時間の50%以上である場合には、切上げが実行されてもよい。即ち、1だけ大きい値が取られてもよい。反対に、剰余が50%未満である場合には、「切捨て」が実行されてもよい。即ち、整数除算の結果のままの値が取られてもよい。実際に、例えばゼロを挿入することによって剰余が構成されない場合にも、切捨てに言及してもよい。
【0049】
換言すれば、切上げ及び/又は切捨てを含む上述のような実装例は、ブロック長の細分化によってのみ達成される遅延が適用される場合に、即ちインパルス応答内にゼロを挿入することによって更に精密な遅延が達成されることがない場合に使用されてもよい。しかしながら、インパルス応答内にゼロを挿入することによって更に精密な遅延が達成される場合には、ブロックオフセットを決定するために、切上げよりもむしろ切捨ての方が実行されるであろう。
【0050】
このような実装例を説明するために、図9を参照されたい。図9は、入力インターフェイス250と出力インターフェイス260とを含む特定のメモリ300を示す。各オーディオ信号から、即ちオーディオ信号1とオーディオ信号2とオーディオ信号3とオーディオ信号4から、例えば7個の短時間スペクトルを有する短時間スペクトルの時間的シーケンスがメモリ内に蓄積される。特に、それらスペクトルは、メモリ内に常に7個の短時間スペクトルが存在するように、かつ、メモリが充満しており更なる新たな短時間スペクトルがメモリ内へと供給されたときにはメモリの出力260において対応するスペクトルがいわば「押し出される(falls out)」ように、メモリ内に読み込まれる。そのような押し出しは、例えばメモリセルを上書きすることによって、又は、図9で単に説明の便宜上示したように、個別のメモリフィールド内へと然るべくインデックスを付けることによって実行される。アクセス制御部は、アクセス制御ライン265を介してアクセスし、特定のメモリフィールド、即ち特定の短時間スペクトルであって、次に読出し出力267を介して図1aのフィルタステージ300に対して供給される短時間スペクトルを読み出す。
【0051】
特定の例示的なアクセス制御部は、例えば図4に示す実装例に関し、またそこに示され図9で説明するような特定のOSブロック、即ち特定のオーディオ信号/ラウドスピーカの組合せについて、オーディオ信号の対応する短時間スペクトルを対応する時間値を使用して読み出してもよく、その時間値は図9の符号269においてはBの倍数である。特に、その遅延値は、組合せOS301については2個のストライド長の遅延2Bが必要とされてもよい。加えて、遅延なし、即ち遅延0が組合せOS304について必要とされてもよく、他方、OS302については、5個のストライド値の遅延、即ち5Bが必要とされてもよく、その他、図9に示すような遅延が必要とされてもよい。この点に関する限り、メモリアクセス制御部265は、時間における特定の点において、図9内の表270に従って対応する短時間スペクトルの全てを読出してもよく、次にそれらをフィルタステージへと出力267を介して供給してもよい。この点については後段で図4を参照しながら説明する。図9に示す実施形態においては、ストレージ深度は例示的に7個の短時間スペクトルに相当し、最大では6個のストライド値Bに対応する持続時間と等しい持続時間を構成してもよい。つまり、図9のメモリを使用すると、図1bのステップ21において最大で6となるDbの値が構成されてもよい。特定の実装例においてどのように遅延要件とストライド値Bとが設定されるかに依るが、メモリはより大きくても又はより小さくてもよく、及び/又はより深くても又は浅くてもよい。
【0052】
上段で図1cを参照しながら説明したようなある特定の実装例においては、フィルタステージが、修正済みのインパルス応答を、ラウドスピーカとオーディオ信号との組合せに対して提供されたフィルタのインパルス応答から、幾つかのゼロをインパルス応答の時間的な開始位置に挿入することによって、決定するよう構成されており、そのゼロの個数は、そのオーディオ信号とラウドスピーカとの組合せについての遅延値と、そのオーディオ信号とラウドスピーカとの組合せについて選択された特定の短時間スペクトルとに依存する。好適には、フィルタステージは、以下のような個数のゼロを挿入するよう構成される。即ち、そのゼロの個数に対応しかつ値DAと等しい可能性のある持続時間が、図1bにおいて余り値Drをサンプリング持続時間TAによって整数除算した場合の剰余以下となるように選択される。図1bを参照しながら既に説明したように、符号25において、フィルタのインパルス応答は、隣接する離散インパルス応答値同士間の持続時間の小数部に従う遅延を達成するよう構成された小数部遅延フィルタについてのインパルス応答であってもよく、その小数部は、図1bの遅延値(D−Db×B−DA×TA)と等しい。この点は図1bの符号26からも明らかであろう。
【0053】
好ましくは、メモリ200は、各オーディオ音源のために、図4の周波数ドメイン遅延ライン、又はFDL201,202,203を含む。それらFDL201,202,203は、図9においても概略的に示されているが、対応する音源及び/又は対応するオーディオ信号のために蓄積された短時間スペクトルに対する任意のアクセスを可能にするものであり、各短時間スペクトルに対するアクセス操作は時間値又はインデックス269を介して実行できる。
【0054】
図4に示すように、順変換ステージには、幾つかの変換ブロック101,102,103が追加的に設けられており、それらはオーディオ信号と同数である。加えて、逆変換ステージ800には、幾つかの変換ブロック801,802,803が設けられており、それらはラウドスピーカと同数である。更に、周波数ドメインの遅延ライン201,202,203が各オーディオ音源のために各オーディオ信号について設けられ、フィルタステージは、幾つかの単一フィルタ301〜309を含むよう構成されており、それら単一フィルタの個数は、オーディオ音源の数とラウドスピーカの数との積と同数である。換言すれば、専用の単一フィルタ、即ち図4においては単純化するために記号OSで示すフィルタが、各オーディオ信号/ラウドスピーカの組合せについて存在する。
【0055】
好適な実施形態において、順変換ステージ100と逆変換ステージ800とは、オーバーラップ・セーブ法に従って構成されている。これについては図1dを用いて後段で説明する。オーバーラップ・セーブ法とは、高速畳み込みの一方法である。図1eで説明するオーバーラップ加算法とは異なり、ここでの入力シーケンスは、図1dにおいて符号36で示すように、互いにオーバーラップしているサブシーケンスへと分解される。これに続き、非周期の高速畳み込みに合致する部分が、形成された周期畳み込みによる結果(巡回畳み込み)から差し引かれる。オーバーラップ・セーブ法はまた、より高い次数のFIRフィルタを高率的に構成するためにも使用され得る。ステップ36で形成されたブロックは、次に、ステップ37で示すように、各場合に図1aの順変換ステージ100において変換されて、短時間スペクトルのシーケンスが得られる。次に、短時間スペクトルは、ステップ38において要約して示されるように、本発明の全体的な機能によって、スペクトルドメインで処理される。加えて、処理済みの短時間スペクトルは、ブロック800、即ちステップ39で示す逆変換ブロックにおいて逆変換され、時間値のブロックが得られる。2個の有限信号を畳み込むことで形成される出力信号は、一般的には3個の部分へと分割されてもよい。即ち、過渡挙動(transient behavior)と、静的挙動(stationary behavior)と、減衰挙動(decay behavior)と、である。オーバーラップ・セーブ法では、入力信号はセグメントへと分解され、各セグメントはフィルタを用いた周期畳み込みによって個別に畳み込まれる。次に、それらの部分的な畳み込みが再結集される。このとき、それら部分的畳み込みの各々の減衰領域は、後続の畳み込み結果とオーバーラップして、それと干渉することになり得る。従って、不正確な結果を招く減衰領域は、この方法の枠組みでは廃棄される。これにより、個々の畳み込みの個々の静的部分が直接的に相互に隣接するようになり、従って、畳み込みの正確な結果がもたらされる。一般的に、ステップ40は、ブロック39の後で得られた時間値のブロックから干渉部分を廃棄するステップを含み、ステップ41は、残ったサンプリングを正確な時間的順序で継ぎ合わせて、対応するラウドスピーカ信号を最終的に得るステップを含む。
【0056】
代替的に、順変換ステージ100と逆変換ステージ800との両方は、オーバーラップ加算法を実行するよう構成されてもよい。オーバーラップ加算法は、セグメント畳み込みとも呼ばれるものであるが、これもまた高速畳み込みの一方法であり、符号43で説明するように、入力シーケンスが、実際に隣接するサンプルのブロックへとストライドBを用いて分解されるように制御された方法である。しかしながら、符号44で示すような各ブロックに対するゼロの付加(ゼロパディングとも呼ばれる)により、それらのブロックは連続的なオーバーラッピング・ブロックとなる。このように、入力信号は長さBの複数の部分へと分割され、次にステップ44に従うゼロパディングによってそれらが拡張されるため、畳み込み操作の結果として1つのより長い長さを達成することになる。次に、ステップ44によって生成されかつゼロを用いてパディングされたブロックは、ステップ45において順変換ステージ100により変換されて、短時間スペクトルのシーケンスが取得される。次に、ステップ46において短時間スペクトルがスペクトルドメインで処理され、次に、図1dのブロック39によって実行された処理に従って、ステップ47において処理済みのスペクトルの逆変換が実行されて、時間値のブロックが取得される。次に、ステップ48は、時間値のブロックをオーバーラップ加算することで、正確な結果を得ることを含む。個々の畳み込み結果は合算され、ここでは、個々の畳み込み結果がオーバーラップして、その操作の結果は理論的に無限の長さを有する1つの入力シーケンスの畳み込みと対応する。ステップ41においていわば「継ぎ合わせ(piecing together)」が実行されるオーバーラップ・セーブ法とは対照的に、オーバーラップ加算法は、図1eのステップ48において、時間値ブロックのオーバーラップ加算を実行することを含む。
【0057】
実装例によるが、順変換ステージ100と逆変換ステージ800とは、図4に示す個別のFFTブロック又は図4に示すIFFTブロックとして構成されてもよい。一般的に、DFTアルゴリズム、即ちFFTアルゴリズムから逸脱し得る離散フーリエ変換のためのアルゴリズムが好ましい。更に、他の周波数ドメインの変換方法、例えば離散サイン変換(DST)法、離散コサイン変換(DCT)法、変形離散コサイン変換(MDCT)法又は同様の方法もまた、当該アプリケーションに適切である場合には使用されてもよい。
【0058】
図1aを用いて既に説明したように、本発明の装置は好適には波面合成システムのために使用され、その場合、波面合成オペレータ700が存在して、ラウドスピーカとオーディオ音源との各組合せのために、またオーディオオーディオ音源の仮想位置とラウドスピーカの位置とを使用しながら遅延値を計算するよう構成されており、その遅延値に基づいて、次にメモリアクセス制御部600とフィルタステージ300とが操作してもよい。
【0059】
波面合成を使用しながら、指向性音源又は指向特性を有する音源を作成するための幾つかの手法が存在する。実験結果に加え、殆どの手法が、円形又は球形の調和関数(harmonics)を形成すべく、音場を拡張又は発展させることに基づいている。本願で提示する手法もまた、円形調和関数を形成すべく仮想音源の音場の拡張を使用して、二次的音源のための駆動関数を取得するものである。この駆動関数はまた、以下ではWFSオペレータとしても称されるであろう。
【0060】
図7は、波面合成の一般的な方程式において、即ち波面合成オペレータにおいて使用される記号の幾何学的配置を示す。要約すれば、指向性音源についてはWFSオペレータは周波数依存である。即ち、WFSオペレータは各周波数について、周波数依存の遅延に対応した個別の振幅と位相とを有する。いずれの信号をレンダリングするためにも、この周波数依存の操作は時間ドメイン信号のフィルタリングを必要とする。このフィルタリング操作は、FIRフィルタリングとして構成されてもよく、そのFIR係数は周波数依存のWFSオペレータから適切な設計方法により決定されてもよい。FIRフィルタは更に遅延を含み、その遅延の主要部分は仮想音源とラウドスピーカとの間の信号伝達時間から決定され、従って周波数独立型であり、即ち一定であってもよい。好ましくは、その周波数依存の遅延は図1aから図1eを参照しながら上述した処理によって処理される。しかしながら、本発明はまた、代替的な構成であって、音源が指向性ではない場合もしくは周波数独立型の遅延だけが存在する場合、又は一般的に高速畳み込みが特定のオーディオ信号/ラウドスピーカの組合せ間の遅延と共に使用されるべき場合に対しても適用され得る。
【0061】
以下の記載は、波面合成処理の例示的な記述である。代替的な記述及び実装例もまた公知である。二次モノポール音源のxに沿った直線的な分布(黒点)を使用することにより、一次音源Ψの音場が、y<yLの領域内で生成される。
【0062】
図7の幾何学的配置を使用すれば、2次元の第1種レイリー積分(Rayleigh I integral)は、周波数ドメインで次式(1)によって示される。
【0063】
【数1】
【0064】
この数式によれば、y=yLの状態で二次モノポールライン音源の線形分布を使用しながら、一次音源の音圧
がレシーバ位置Rにおいて生成され得る。この目的で、二次音源の位置における一次音源Ψの垂直線
方向の速度
が既知とならなければならない。数式(1)の中で、ωは角周波数、cは音速、
は0次の第2種ハンケル関数である。一次音源位置から二次音源位置までの経路は、
によって示される。同様に、
は一次音源からレシーバRまでの経路である。一次音源Ψにより放射され、所望の指向特性を有するいかなる2次元音場も、円形調和関数を形成するような拡張によって記述され得る。
【0065】
【数2】
ここで、S(ω)は音源のスペクトルであり、αはベクトル
の方位角である。
は大きさの次数vの円形調和関数の拡張係数である。動き方程式を使用しながらWFS二次音源駆動関数Q(...)は、次式のように示される。
【0066】
【数3】
【0067】
実現可能な合成オペレータを取得するために、2つの仮定が立てられる。第1に、放射された波長と比較してラウドスピーカのサイズが小さい場合には、実際のラウドスピーカは点音源のような挙動を有する。従って、二次音源駆動関数はライン音源よりも二次点音源を使用すべきである。第2に、ここではWFS駆動関数の効率的な処理だけに焦点を当てている。ハンケル関数の計算は比較的大量の労力を必要とする一方で、近距離音場の指向性の挙動は現実的な観点から見て比較的重要性が乏しい。
【0068】
結果的に、ハンケル関数の遠距離音場近似だけが二次と一次の音源記述(1),(2)に対して適用される。その結果、二次音源駆動関数が得られる。
【0069】
【数4】
【0070】
その結果、合成積分は次式のように示され得る。
【数5】
【0071】
理想的なモノポール特性を有する仮想音源については、音源駆動関数の指向性の項目はより簡素になり、結果的にG(ω,α)=1となる。この場合、ゲイン
【数6】
と、周波数独立型の時間遅延
に対応する遅延項
【数7】
と、一定の位相シフトjとだけが二次音源信号に適用される。
【0072】
モノポール音源の合成に加え、普通のWFSシステムでも、平面波と呼ばれる平面的な波面の再生を可能にできる。これらは無限距離に配置されたモノポール音源として考えられてもよい。モノポール音源の場合と同様に、結果として得られる合成オペレータは、静的フィルタ(static filter)とゲインファクタと時間遅延とを含む。
【0073】
複雑な指向特性については、ゲインファクタA(...)は、仮想音源の指向特性とアラインメントと周波数と、仮想及び二次音源の位置と、に依存するようになる。その結果、合成オペレータは、特に各二次音源について特有のフィルタを含む。
【0074】
【数8】
【0075】
音源の基本的なタイプの場合には、遅延は仮想音源と二次音源との間の伝播時間に基づき数式(4)から抽出できる。
【0076】
【数9】
【0077】
現実的なレンダリングのために、指向特性に関する時間離散フィルタが、周波数応答(8)により決定されなければならない。任意の周波数応答を近似できる能力と、それらの特有の安定性とから、ここではFIRフィルタだけが考慮対象となる。これらの指向性フィルタは以下ではhm,n[k]と称する。ここで、n=0,...,N−1は仮想音源のインデックスを示し、m=0,...,M−1はラウドスピーカのインデックスを示し、kは時間ドメインインデックスを示す。Kは指向性フィルタの大きさの次数である。そのようなフィルタはN個の仮想音源とM個のラウドスピーカとの各組合せに対して必要となるため、その生成は比較的効率的であるべきである。
【0078】
ここで、簡素なウィンドウ(又は周波数サンプリング設計)が使用される。所望の信号応答(9)は、区間0≦ω<2π内のK+1個の等距離的にサンプリングされた周波数値において評価される。離散フィルタ係数hm,n[k],k=0,...,Kは、逆離散フーリエ変換(IDFT)により、更にインパルス応答のカットオフに起因するギブズ現象(Gibbs phenomenon)を低減するために適切なウィンドウ関数w[k]を適用することにより、取得される。
【0079】
【数10】
【0080】
この設計方法を採用することで、幾つかの最適化が可能となる。第1に、周波数応答
の共役対称性(conjugated symmetry)である。この関数は、ラスターポイントの略半分についてだけ評価される必要がある。第2に、二次音源駆動関数の幾つかの部分、例えば拡張係数
は、任意の所与の仮想音源の全ての駆動関数について同一であり、従って一度だけ計算される。指向性フィルタhm,n[k]は合成エラーを2通りの方法で導入する。その一方は、フィルタの大きさの制限された次数が、
の不完全な近似という結果を招く。他方は、数式(4)の無限和が有限境界によって置き換えられるべき点である。結果として、生成された指向特性のビーム幅は無限に狭くなり得ない。
【0081】
図2は、スケールと遅延の操作に基づく簡素なWFSオペレータが使用される場合の信号処理の基本的な構造を示す。この図は、一次音源の基本的なタイプの合成のためのWFSレンダリングシステムの信号処理構造を示す。二次音源駆動信号は、一次音源と二次音源の各組合せについてスケーリング操作および遅延操作(S&D=スケールと遅延)を処理し、静的入力フィルタH(ω)を処理することで決定されてもよい。
【0082】
WFS処理は一般的に時間離散処理システムとして構成される。それは大きく分けて2つの作業を含む。即ち、合成オペレータを計算する作業と、このオペレータを時間離散音源信号に対して適用する作業である。後者は、以下においてはWFSレンダリングと称する。
【0083】
全体的な複雑性に対する合成オペレータの影響は典型的に低い。なぜなら、そのような合成オペレータは比較的稀にしか計算されないからである。音源特性が離散的な方法においてのみ変化する場合には、オペレータは必要に応じて計算されるであろう。連続的に変化する音源特性の場合、例えば移動音源の場合には、そのような値を粗いグリッドで計算して、その間に簡素な補間方法を使用することで、典型的には十分である。
【0084】
これとは対照的に、合成オペレータを音源信号へと適用することは、フルのオーディオサンプリングレートで実行されなければならない。図2は、N個の仮想音源とM個のラウドスピーカとを有する典型的なWFSレンダリングシステムを示す。第2.2章で示したように、二次音源駆動関数は、固定のプレフィルタH(ω)=jと、時間遅延
及びスケーリングファクタ
の適用と、を含む。H(ω)は音源やラウドスピーカの位置から独立しているため、それは入力信号に対し、時間ドメイン遅延ライン内に蓄積される前に適用される。この遅延ラインを使用しながら、仮想音源とラウドスピーカとの各組合せについて、コンポーネント信号が計算され、これがスケールと遅延の操作(S&D)により表現されている。最も簡素な場合、遅延値はサンプリング周期の最も近い整数倍数へと切捨てられて、インデックス付きアクセスとして遅延ラインに適用される。移動音源オブジェクトの場合には、ランダムな位置にある音源信号をサンプル間で補間するために、より複雑なアルゴリズムが必要になる。最後に、コンポーネント信号が各ラウドスピーカについて集積されて、駆動信号が形成される。
【0085】
スケールと遅延の操作の数は、仮想音源の個数Nとラウドスピーカの個数Mとの積によって形成される。従って、この積は典型的には高い値に達する。その結果、たとえ整数遅延だけが使用されるとしても、スケールと遅延の操作は、殆どのWFSシステムの性能において最も重要な部分である。
【0086】
図3は、オーバーラップとセーブの技術を使用する場合の信号処理の基本的な構造を示す。オーバーラップ・セーブ法は、高速畳み込みの一方法である。オーバーラップ加算法とは対照的に、ここでの入力シーケンスx[n]は、互いにオーバーラップするサブシーケンスへと分解される。この後で、非周期高速畳み込みに合致する部分が、形成された周期畳み込みによる結果(巡回畳み込み)から取り除かれる。
【0087】
図2を用いて、仮想音源とラウドスピーカとの各組合せに適用されるスケールと遅延の操作が、従来のWFSレンダリングシステムにとって性能上重要であると説明した。指向特性を有する音源にとっては、典型的にはFIRフィルタとして構成される追加的なフィルタリング操作が上述の各組合せについて必要となる。FIRフィルタの演算上の消費を考慮した場合、結果的な演算量は、現実の殆どのWFSレンダリングシステムにとって経済的に実現可能ではなくなるであろう。
【0088】
必要な演算資源を実質的に低減させるために、本発明は2つの相互作用的な効果に基づくある信号処理スキームを提案する。
【0089】
第1の効果は、例えばオーバーラップ・セーブ法やオーバーラップ加算法などの変換ドメインにおける高速畳み込み方法を使用することで、FIRフィルタの効率が上昇する場合が多いという事実に関係する。一般的に、そのようなアルゴリズムは、高速フーリエ変換(FFT)技術を用いて入力信号のセグメントを周波数ドメインへと変換し、周波数ドメインの乗算を用いて畳み込みを実行し、その信号を時間ドメインへと逆変換する。実際の性能はハードウエアに大きく依存するが、フィルタの規模の次数は、典型的には16から50の間の領域であり、このとき変換ベースのフィルタリングは直接的な畳み込みよりも効率的となる。オーバーラップ加算アルゴリズム及びオーバーラップ・セーブ・アルゴリズムにとって、順FFT及び逆FFTの操作は演算消費の大部分を占める。
【0090】
好ましくは、オーバーラップ・セーブ法だけを考慮対象とする。なぜなら、それは隣接する出力ブロック同士の構成要素の加算を含まないからである。オーバーラップ加算と比べて算術上の複雑さが低いことに加え、オーバーラップ・セーブ法の特性は、提案の処理スキームのためのより簡素な制御理論を結果として提供する。
【0091】
演算上の消費を低減させる更なる実施形態は、WFS処理スキームの構造を活用する。一方では、ここで各入力信号が多数の遅延及びフィルタリング操作のために使用される。他方では、多数の音源についての結果が各ラウドスピーカについて合計される。このように、各入力または出力信号について一回だけ典型的な操作を実行する信号処理アルゴリズムの区分化(partitioning)は、効率におけるゲインを約束する。一般的に、WFSレンダリングアルゴリズムのそのような区分化は、基本的なタイプの音源の移動音源に関する性能において、かなりの向上をもたらす。
【0092】
変換ベースの高速畳み込みが指向性音源または指向特性を有する音源のレンダリングのために使用される場合、順方向及び逆方向のフーリエ変換操作が、そのような区分化のための自明の候補となる。結果として得られるスキームを図3に示す。入力信号xn[k],n=0,...,N−1は複数のブロックへと区分されて、高速フーリエ変換(FFT)を使用しながら周波数ドメインへと変換される。その周波数ドメイン表現は、オーバーラップ・セーブ操作によって個々のラウドスピーカ信号要素を畳み込むために、即ち複素乗算のために、複数回使用される。全ての音源の構成要素信号を集積することにより、ラウドスピーカ信号が周波数ドメインで計算される。最終的に、これらのブロックの高速逆フーリエ変換(IFFT)とオーバーラップ・セーブ・スキームに従う連結とが実行されて、ラウドスピーカ駆動信号ym[k],m=0,...,M−1が時間ドメインで生成される。このような方法で、変換ドメインの畳み込みにおける性能において最も重要な部分、即ちFFTとIFFTの操作は、各音源または各ラウドスピーカについて一度だけ実行される。
【0093】
図4は周波数ドメイン遅延ラインを本発明に従って使用する場合の信号処理の基本的な構造を示す。ここでは、ブロックベースの変換ドメインWFS信号処理スキームを示す。OSはオーバーラップ・セーブを表し、FDLは周波数ドメイン遅延ラインを表す。
【0094】
図4図1aの実施形態の特定の実装例を示しており、行列形状の構造と、個々のFFTブロック101,102,103を含む順変換ステージ100を含む。加えて、メモリ200が異なる周波数ドメイン遅延ライン201,202,203を含み、それらは図4では図示しないメモリアクセス制御部600を介して駆動されており、その結果、各フィルタステージ301〜309についての正確な短時間スペクトルを決定し、更にその正確な短時間スペクトルを、図9を用いて説明したように特定の時点において読み出し、それを対応するフィルタステージに対して供給する。加えて、合計ステージ400は、概略図に示す合計部401〜406を含み、逆変換ステージ800は個別のIFFTブロック801,802,803を含み、それらによって最終的にラウドスピーカ信号を取得する。好ましくは、ブロック101〜103とブロック801〜803との両方は、例えばオーバーラップ・セーブ法またはオーバーラップ加算法などの高速畳み込みの方法により必要とされるような処理ステップを、実際の変換の前または実際の逆変換の後に実行するよう構成されている。
【0095】
図7を用いて説明したように、WFSオペレータは各音源/ラウドスピーカの組合せのために個々の遅延を決定する。提案の信号処理スキームによって効率的な多チャネル畳み込みが可能となるが、そのような遅延の適用には詳細な考慮が必要である。従来の時間ドメインアルゴリズムを用いて、時間ドメイン遅延ラインにアクセスすることにより整数値のサンプル遅延が構成されてもよく、このとき全体的な演算量には殆ど影響がない。周波数ドメインにおいては、時間遅延は同じ方法では決定されることができない。
【0096】
概念的には、ランダム時間遅延はFIR指向性フィルタ内に容易に構築され得る。しかし、典型的なWFSシステム内における遅延値の範囲は大きいため、この手法は非常に長いフィルタ長をもたらし、結果的に大きなFFTブロックサイズをもたらす。一方では、これは演算にかかる消費とストレージ要件をかなり増大させてしまう。他方では、そのような大きなFFTサイズに必要とされるブロック形成の遅延によって、入力ブロックを形成するための待ち時間が多くのアプリケーションにとって許容されない。
【0097】
上述の理由から、本願では、周波数ドメイン遅延ラインと遅延値の区分化とに基づくある処理スキームを提示する。従来のオーバーラップ・セーブ法と同様に、入力信号は、サイズLを有するオーバーラップするブロックと、隣接するブロック同士の間のストライド(又は遅延ブロックサイズ)Bとに区分される。それらブロックは周波数ドメインへと変換されて、Xn[l]によって示され、ここでnは音源を表し、lはブロックインデックスである。これらのブロックはある構造内に蓄積され、その構造は、Xn[l−1]の形態を有する最も直近の周波数ドメインブロックへのインデックス付きアクセスを可能にする。概念的には、このデータ構造は、区分化された畳み込みの文脈内で使用される周波数ドメイン遅延ラインと同じである。
【0098】
サンプルにおいて示された遅延値Dは、ブロック遅延量の倍数と、剰余Dr又はDr’へと区分化される。
【0099】
【数11】
【0100】
ブロック遅延Dbは周波数ドメイン遅延ラインへのインデックス付きアクセスとして適用される。他方、剰余部分は指向性フィルタhm,n[k]内に含まれ、このフィルタは形式的には遅延オペレータδ(k−Dr)を用いた畳み込みによって表現される。
【0101】
【数12】
【0102】
整数遅延値に関しては、この操作はDr個のゼロを伴う先行するhm,n[k]と対応する。結果として得られるフィルタは、オーバーラップ・セーブ法の要件に従ってゼロを用いてパディングされる。次に、周波数ドメインフィルタ表現Hdm,nがFFTによって取得される。
【0103】
音源nからラウドスピーカmへの信号要素の周波数ドメイン表現は、次式により計算される。
【0104】
【数13】
ここで、・は要素毎の複素乗算を表す。ラウドスピーカmのための駆動信号の周波数ドメイン表現は、対応する要素信号を集積することで決定され、それは複素値ベクトル加算として実現される。
【0105】
【数14】
【0106】
アルゴリズムの剰余は、通常のオーバーラップ・セーブ・アルゴリズムと同じである。ブロックym[l]は時間ドメインへと変換されて、各時間ドメインブロックから所定数のサンプルを削除することによりラウドスピーカ駆動信号ym[k]が形成される。この信号処理構造は図4に概略的に示されている。
【0107】
変換されたセグメントの長さと隣接するセグメント同士間のシフトとは、従来のオーバーラップ・セーブ・アルゴリズムの導出法から導出される。長さP(L<P)のシーケンスを持つ、長さLのセグメントの線形畳み込みは、サイズLの2個の周波数ドメインベクトルの複素乗算に対応しており、L−P+1個の出力サンプルを生成する。それにより、入力セグメント同士はある量分だけシフトされなければならず、その量は後にB=L−P+1として示される。逆に、大きさの次数がK(長さP=K+1)のFIRフィルタを用いる畳み込みのために各入力セグメントからB個の出力サンプルを得るためには、変換されたセグメントは次式のような長さを持たなければならない。
【0108】
【数15】
【0109】
遅延の剰余部Drの整数部分が数式(12)に従ってフィルタhdm,n[k]内に埋め込まれている場合には、hdm,n[k]について必要とされる大きさの次数は、K’=K+B−1という結果となる。これは、hdm,n[k]に先立って最大でB−1個のゼロがあるという事実に基づくものであり、その数はDr(11)についての最大値である。従って、提案のアルゴリズムについて必要とされるセグメント長は、次式で示す通りである。
【0110】
【数16】
【0111】
これまで、整数のサンプル遅延値Dだけについて考慮してきた。しかし、提案の処理スキームは、FDフィルタ(FD=小数部遅延)、いわゆる指向性フィルタhdm,n[k]を準備することにより、どのような遅延値でも含むように拡張することができる。ここでは、FIR−FDフィルタだけについて考慮する。なぜなら、それらは提案のアルゴリズム内へと容易に統合できるからである。この目的で、剰余遅延Drは、FDフィルタ設計においては慣習的であるが、整数部Dintと小数遅延値dとに区分化される。整数部分はhm,n[k]の前にDint個のゼロを置くことにより、hdm,n[k]内に統合される。小数遅延値は、この小数値dのために設計されたFDフィルタを用いてこれを畳み込むことにより、hdm,n[k]に適用される。
【0112】
このように、hdm,n[k]の大きさの必要とされる次数は、FDフィルタの大きさの次数KFDに伴って増大し、必要とされるブロックサイズL(16)は次式(17)のように変化する。
【0113】
【数17】
【0114】
しかしながら、ランダム遅延値を使用することの利点は非常に限定的である。上述したように、小数遅延値は移動仮想音源だけについて求められる。しかし、静的な音源に関する限り、小数遅延値は品質上良好な効果を有しない。他方では、移動する指向性音源、又は指向特性を有する音源の合成には、合成フィルタの連続する時間的変化が求められるであろう。それら合成フィルタの設計は、簡素な構成内におけるレンダリングの全体的な演算量を支配する可能性もある。
【0115】
図5は、本発明に係る周波数ドメイン遅延ラインを有する信号処理の基本的な構造を示す。音源信号xkはスペクトルへと変換され、それらスペクトルは互いにオーバーラップするブロック長LのFFT計算ブロック502内にあり、それらFFT計算ブロックは、長さ(L−B)の相互オーバーラップと長さBのストライドとを含む。
【0116】
次のステップにおいて、オーバーラップ・セーブ法(OS)に従う高速畳み込みと、IFFTを用いたラウドスピーカ信号y0...yM-1への逆変換とがステージ503において実行される。ここで決定的な点は、スペクトルへのアクセスが行われる方法である。一例として、図中にはアクセス操作504,505,506,507が示される。アクセス操作507の時間との関係において、アクセス操作504,505,506は過去である。
【0117】
ラウドスピーカ511がアクセス操作507によって駆動され、同時にラウドスピーカ510と512とがアクセス操作506によって駆動される場合、リスナーにとっては、まるでラウドスピーカ510と512とのラウドスピーカ信号がラウドスピーカ511のラウドスピーカ信号と比較して遅延されているように感じる。同様のことが、アクセス操作505とラウドスピーカ509,513のラウドスピーカ信号、及び、アクセス操作504とラウドスピーカ508,514のラウドスピーカ信号についても言える。
【0118】
この方法で、各個別のラウドスピーカは、ブロックストライドBの倍数に対応する遅延を用いて駆動されてもよい。ブロックストライドBよりも小さい遅延が提供されるべき場合には、その遅延は、オーバーラップ・セーブ法の主題であるフィルタの対応するインパルス応答の前にゼロを配置することで達成されてもよい。
【0119】
図6a〜図6dは、異なる畳み込みアルゴリズムについての演算消費を比較して表現している。ここで示すことは、3個の異なる指向性音源、又は指向特性を有する音源のレンダリングアルゴリズムの演算量の比較である。各場合において表現しているものは、単一のサンプルを計算するための全てのラウドスピーカ信号に対するコマンド数である。デフォルトパラメータは、N=16,M=128,K=1023,B=1024である。変換ベースのアルゴリズムについて、FFT演算量のための比例定数はp=3に設定される。
【0120】
本発明が提案する処理構造によって達成される効率の潜在的な向上を評価する目的で、ここでは算術的コマンドの数に基づく性能比較を提供する。この比較が提供するものは、異なるアルゴリズム同士の相対的性能の大まかな評価でしかない点を理解すべきである。実際の性能は、実際のハードウエア・アーキテクチャの特性に基づいて異なる可能性がある。性能特性、特に関係するFFT操作の性能特性は、使用されるライブラリと実際のFFTサイズとハードウエアとに基づいて非常に異なる。加えて、使用されるハードウエアのメモリ容量が、比較されたアルゴリズムの効率に対して決定的な影響を与える可能性がある。このような理由から、メモリ消費の主因であるフィルタ係数と遅延ライン構造とに関するメモリ要件もまた記載されている。
【0121】
指向性音源、又は指向特性を有する音源のためのレンダリングアルゴリズムの複雑性を決定する主要なパラメータは、仮想音源の個数Nと、ラウドスピーカの個数Mと、指向性フィルタのフィルタ次数Kとである。高速畳み込みに基づく方法については、隣接する入力ブロック同士間のシフト、即ちブロック遅延Bとも呼ばれるシフトが、性能及びメモリ要件の障害となる。加えて、高速畳み込みアルゴリズムのブロック毎の操作が、B−1個のサンプルの構成待ち時間を導入してしまう。Dmaxと呼ばれかつサンプルの個数として示される、最大限に許容された遅延値は、遅延ライン構造に必要とされるメモリサイズに影響を与える。
【0122】
3個の異なるアルゴリズムが比較される。即ち、線形畳み込みと、フィルタ毎の高速畳み込みと、提案の処理構造である。線形畳み込みに基づく方法は、大きさの次数KのNM個の時間ドメイン畳み込みを実行する。その結果、各サンプルに付きNM(2K+1)のコマンド量が発生する。加えて、ラウドスピーカ駆動信号を集積するために、M(N−1)個の実数加算(real additions)が必要となる。個々の遅延ラインのために必要とされるメモリは、Dmax+K個の浮動小数点値である。MN個のFIRフィルタhm,n[k]の各々が、浮動小数点値のためのK+1個のメモリワードを必要とする。これらの性能価をまとめた表を以下に示す。この表は、指向性音源または指向特性を有する音源のための波面合成信号処理スキームについての性能比較を示すものである。1つのサンプルを全てのラウドスピーカについて計算するためのコマンド数が示されている。メモリ要件は、浮動小数点値の数として特定されている。
【0123】
【表1】
【0124】
フィルタ毎の高速畳み込みと呼ばれる第2のアルゴリズムは、オーバーラップ・セーブの高速畳み込み方法を使用しながら、MN個のFIRフィルタを個別に計算する。数式(15)に従えば、各ブロックについてB個のサンプルを計算するためのFFTブロックのサイズはL=K+Bである。各ブロックのために、サイズLの実数値FFTと同一サイズの逆FFTとが実行される。pLlog2(L)のコマンドの数が、サイズLの順方向または逆方向のFFTについて想定され、ここで、pは実構成に依存する比例定数である。pは2.5〜3の間の値を有すると想定されてもよい。
【0125】
実数値シーケンスの周波数変換は対称であるので、オーバーラップ・セーブ法において実行される長さLの複素ベクトル乗算は、およそL/2の複素乗算を必要とする。単一の複素乗算は6個の算術的コマンドによって実行されるので、1つのベクトル乗算に掛かる手間は3L個のコマンド量になる。従って、オーバーラップ・セーブ法を使用しながらのフィルタリングは、全てのラウドスピーカ信号に係る1つの出力サンプルについて
を必要とする。線形畳み込みアルゴリズムと同様に、ラウドスピーカ信号を集積するときに掛かる手間は、M(N−1)個のコマンド量となる。遅延ラインメモリは線形畳み込みアルゴリズムと同一である。対照的に、フィルタに関するメモリ要件は、周波数変換の前のフィルタhm,n[k]のゼロパディングによって増大する。注意すべき点として、変換済みのシーケンスの対称性により、長さLの実フィルタの周波数ドメイン表現が、L個の実数値浮動小数点値内に蓄積されてもよい点が挙げられる。
【0126】
提案された効率的な処理スキームに関し、ブロック遅延BのためのブロックサイズはL=K+2B−1(16)と等しい。従って、単一のFFT又は逆FFT操作はp(K+2B−1)log2(K+2B−1)個のコマンドを必要とする。しかしながら、N個の順FFT操作とM個の逆FFT操作とが、各オーディオブロックに対して必要とされる。複素乗算と加算とは、それぞれ周波数ドメイン表現に対して実行され、長さK+2B−1の各対称的な周波数ドメインブロックについて、それぞれ3(K+2B−1)個とK+2B−1個とのコマンドを必要とする。各処理済みブロックはB個の出力サンプルを生成するので、1つのサンプリングクロック反復についての全体的なコマンド数は、
に達する。周波数ドメイン遅延ラインはサイズL及びシフトBのブロック内に入力信号を蓄積するので、単一の入力信号のために必要となるメモリ位置の数は
である。これと同様に、周波数変換済みのフィルタはK+2B−1個のメモリワードを必要とする。
【0127】
これらアルゴリズムの相対的な性能を評価するために、例示的な波面合成レンダリングシステムを、16個の仮想音源と、128個のラウドスピーカチャネルと、大きさの次数が1023の指向性フィルタと、1024のブロック遅延と、を有する場合について想定する。全体的な演算量に対する各パラメータの影響を評価するために、各パラメータは個別に変動する。
【0128】
図6aは、演算量を仮想音源の数Nの関数として示す。予期されるように、フィルタ毎の高速畳み込みアルゴリズムの効率は、線形畳み込みアルゴリズムの効率を略一定のファクタ分だけ超えている。フィルタ毎の高速畳み込みと比較した場合の提案のアルゴリズムの効率におけるゲインは、数Nが増大するにつれて更に増大する。従って、比較的一定の比率が急速に達成される。提案のアルゴリズムは単一の音源についてさえもより効率的であることが見て取れる。しかし、それはサイズK+2B−1のM+N=129個の変換だけを必要としており、これに対し、フィルタ毎の高速畳み込みについては2MN=256個が必要とされる。この差は、大きなブロックサイズや、提案のアルゴリズムにより必要とされる乗算及び加算の手間の増加によって償却されるものではない。
【0129】
ラウドスピーカの個数の影響を図6bに示す。演算量の分析から予期されるように、関数は品質の点で図6aの関数と非常に似ている。従って、提案の処理構造は、たとえ小型から中型サイズのラウドスピーカ構成に関しても、演算量において有意な低減を達成できる。
【0130】
指向性フィルタの大きさの次数の影響を図6cに示す。高速畳み込みアルゴリズムの固有の特性として、線形畳み込みの性能と比べたその性能は、フィルタの大きさの次数が増大するにつれて向上する。損益分岐点、即ちフィルタ毎の高速畳み込みが線形畳み込みよりも効率的になる点は、31から63までの間にあることが解明されている。対照的に、提案のアルゴリズムの効率は、フィルタの大きさの次数に関わらず遥かに上回っている。特に、線形畳み込みがより効率的になる損益分岐点は、高速畳み込みとの分岐点よりも遥かに低い。これは、フィルタ毎の高速畳み込みの場合に主要な複雑性を生むFFT及びIFFT操作の数が、提案の処理スキームによってかなり減少しているという事実に起因する。ここで注意すべきは、この実験においては、ブロック遅延量Bが、フィルタ長(実際にはB=K+1)に比例するよう選択されている点である。なぜなら、そのような選択はオーバーラップ・セーブ・アルゴリズムにとって有益であることが証明されているからである。
【0131】
図6dには、フィルタの大きさの固定次数Kについてのブロック遅延量Bの影響を示す。線形畳み込みはブロック毎ではないため、このアルゴリズムについて演算量は一定である。提案のアルゴリズムの効率は、フィルタ毎の高速畳み込みの効率を、略一定のファクタ分だけ超えていることが解明されている。この点が暗示することは、フィルタ毎の高速畳み込みのブロックサイズがK+Bであることと比較して、L=K+2B−1に増大したブロックサイズが、ブロック遅延とは無関係に、効率上は何の負の効果も生まないということである。
【0132】
考慮対象の構成(N=16,M=128,K=1023,B=1024)と、48kHzのサンプリング周波数における1秒の遅延値に対応する最大遅延値Dmax=48000とに対し、線形畳み込みアルゴリズムは凡そ2.9×106個のメモリワードを必要とする。同じパラメータに対し、フィルタ毎の高速畳み込みアルゴリズムは凡そ5.0×106個の浮動小数点メモリ位置を使用する。この増加は、事前計算された周波数ドメインフィルタ表現のサイズに起因する。提案のアルゴリズムは、周波数ドメイン遅延ラインと、入力信号及びフィルタの周波数ドメイン表現のための増大したブロックサイズとに起因して、凡そ8.6×106個のメモリのワードを必要とする。従って、フィルタ毎の高速畳み込みの場合と比較した提案のアルゴリズムの性能の向上は、必要とされるメモリにおける72.7%の増加によって達成される。従って、提案のアルゴリズムは、より効率的な構成を可能にするために、例えば入力信号の周波数ドメイン表現などの事前計算された結果を蓄積するための追加的なメモリを使用する、空間−時間の妥協として認識されてもよい。
【0133】
追加的なメモリ要件は、例えばキャッシュ局在性(cache locality)の減少に起因して、性能に対する逆効果をもたらす可能性がある。同時に、メモリアクセス操作の減少を暗示するコマンド数の減少により、そのような逆効果が最小限となる可能性が高い。従って、意図されたハードウエア・アーキテクチャについて、提案アルゴリズムの性能ゲインを検証し評価することが必要である。同様に、例えばFFTブロックサイズL又はブロック遅延Bなどのアルゴリズムのパラメータは、特定の目標プラットフォームに対して調整されるべきである。
【0134】
具体的な構成要素は装置の構成要素として説明してきたが、上述の説明は方法のステップとしても同様に認識されてもよく、その逆もまた然りである。
【0135】
環境要件にも依るが、本発明の方法は、ハードウエア又はソフトウエアにおいて実装可能である。その実装は、非一時的な記憶媒体、デジタル記憶媒体、特にディスク又はCDなど、電子的に読み取り可能な制御信号を有し、本発明の方法が実行されるようにプログラム可能なコンピュータシステムと協働可能な記憶媒体上に実行されてもよい。一般的に、本発明はまた、プログラムコードを有するコンピュータプログラム製品の中にあり、そのプログラムコードは機械読み取り可能なキャリアに記憶され、当該コンピュータプログラム製品がコンピュータ上で作動するときに、本発明の方法を実行する。換言すれば、本発明は、そのコンピュータプログラムがコンピュータ上で作動するときに、本発明の方法を実行するためのプログラムコードを有する、コンピュータプログラムとして実現されてもよい。
図1a
図1b
図1c
図1d
図1e
図2
図3
図4
図5
図6a
図6b
図6c
図6d
図7
図8a
図8b
図9