JP4321625B2 - Digital filter processing method and digital filter apparatus - Google Patents

Digital filter processing method and digital filter apparatus Download PDF

Info

Publication number
JP4321625B2
JP4321625B2 JP2007134323A JP2007134323A JP4321625B2 JP 4321625 B2 JP4321625 B2 JP 4321625B2 JP 2007134323 A JP2007134323 A JP 2007134323A JP 2007134323 A JP2007134323 A JP 2007134323A JP 4321625 B2 JP4321625 B2 JP 4321625B2
Authority
JP
Japan
Prior art keywords
data
filter
samples
processing
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007134323A
Other languages
Japanese (ja)
Other versions
JP2007295591A (en
Inventor
了 神谷
智明 安藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2007134323A priority Critical patent/JP4321625B2/en
Publication of JP2007295591A publication Critical patent/JP2007295591A/en
Application granted granted Critical
Publication of JP4321625B2 publication Critical patent/JP4321625B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Stereophonic System (AREA)

Description

本発明は、ディジタルフィルタ演算を複数サンプル毎に間歇的に行なうようにしたディジタルフィルタ処理方法及び装置に関する。   The present invention relates to a digital filter processing method and apparatus for performing digital filter operation intermittently for each of a plurality of samples.

近年、臨場感に溢れる音響を実現するために、各種の音像定位装置が開発されている。例えば、映画や音楽コンサートなどを想定したシステムとして、5.1チャンネル方式が規格化されている。この方式にあっては、視聴者の前方に3チャンネルのスピーカを配置するとともに、その後方に2チャンネルのスピーカを配置し、音源の移動に応じて各スピーカから発音される音量および位相が調整される。   In recent years, various sound image localization apparatuses have been developed in order to realize realistic sound. For example, the 5.1 channel system has been standardized as a system that assumes movies and music concerts. In this system, a three-channel speaker is arranged in front of the viewer and a two-channel speaker is arranged behind the viewer, and the volume and phase generated by each speaker are adjusted according to the movement of the sound source. The

また、他の方式として、音源から左右の耳までの頭部伝達関数HRTF(HeadRelated Trausfer Function)を、音源の座標と対応付けて予め測定しておき、音源の座標が変化するのに応じて、頭部伝達関数HRTFの係数を動的に変化させる3次元サウンドポジショニングシステムが知られている。この3Dサウンドポジショニングシステムにあっては、発音に用いるスピーカやアンプが左右の耳に対応する2チャンネルで足りるので、システムを簡易に構成することができる。   As another method, a head related transfer function HRTF (Head Related Trausfer Function) from the sound source to the left and right ears is measured in advance in association with the coordinates of the sound source, and as the coordinates of the sound source change, A three-dimensional sound positioning system that dynamically changes the coefficient of the head-related transfer function HRTF is known. In this 3D sound positioning system, the speaker and the amplifier used for sound generation need only two channels corresponding to the left and right ears, so that the system can be configured simply.

図7は、一般的な3次元サウンドポジショニングシステムの機能ブロック図である。なお、この例では3つの音源を用いている。図において、SG1〜SG3は音源であって、波形データW1〜W3を各々生成する。また、F1〜F3はFIR(有限インパルス応答)フィルタであって、その特性は仮想音源から左右の耳までの頭部伝達関数HRTFを表している。ここで、音源SG1〜SG3が仮想的に移動したとすれば、その座標によって、FIRフィルタF1〜F3の係数は、動的に変更されるようになっている。   FIG. 7 is a functional block diagram of a general three-dimensional sound positioning system. In this example, three sound sources are used. In the figure, SG1 to SG3 are sound sources, and generate waveform data W1 to W3, respectively. F1 to F3 are FIR (finite impulse response) filters, and their characteristics represent the head-related transfer function HRTF from the virtual sound source to the left and right ears. Here, if the sound sources SG1 to SG3 are virtually moved, the coefficients of the FIR filters F1 to F3 are dynamically changed according to the coordinates.

また、A1,A2は加算器であって、FIRフィルタF1〜F3からの各データを加算する。これにより、L,Rチャンネルの波形データを各々得ることができる。ところで、加算器A1,A2から出力される波形データは、左右の耳に直接入力されることを前提とした頭部伝達関数HRTFによって生成される。したがって、ヘッドホンのように発音手段が左右の耳に近接しており、一方の発音手段からの発音が、片方の耳だけで聞かれる場合は問題ないが、LチャンネルとRチャンネルのスピーカを視聴者の前方に設置すると、片方のスピーカの発音によって、両方の耳に音が入力されてしまいクロストークが生じる。クロストーク処理部Cは、クロストークを聴感上なくすように予め補正されたLチャンネル波形データDLとRチャンネル波形データDRを生成するために用いられる。なお、加算器A1,A2までの処理は各音別の処理であり、一方、クロストーク処理は、各音に共通した処理である。   A1 and A2 are adders, which add data from the FIR filters F1 to F3. Thereby, the waveform data of the L and R channels can be obtained respectively. By the way, the waveform data output from the adders A1 and A2 is generated by the head related transfer function HRTF on the premise that it is directly input to the left and right ears. Therefore, there is no problem if the sound generation means is close to the left and right ears as in headphones, and the sound from one sound generation means is heard only by one ear, but the L channel and R channel speakers are connected to the viewer. If the speaker is installed in front of the speaker, sound is input to both ears due to the sound of one speaker, resulting in crosstalk. The crosstalk processing unit C is used to generate L channel waveform data DL and R channel waveform data DR that have been corrected in advance so as to eliminate the crosstalk in the sense of hearing. The processing up to the adders A1 and A2 is processing for each sound, while the crosstalk processing is processing common to each sound.

次に、図8は、FIRフィルタF1のブロック図である。この装置が、例えばパーソナルコンピュータ内に設けられているとすると、FIRフィルタF1は、図示せぬホストドライバとPCIバス等で接続されており、積和算の演算を行うDSP100と、DSP100を制御するCPU200、CPU200に接続される作業メモリ210、HRTF係数データhを記憶したHRTF係数データメモリ110から構成される。以上の構成により、ホストドライバから座標命令Pがバスを介してFIRフィルタF1に転送されると、CPU200は、作業メモリ210を用いて、フィルタの各タップ係数に相当するHRTF係数データhの記憶領域を指示するアドレスを演算し、当該アドレスをDSP100に送る。この後、DSP100は、転送されたアドレスに基づいて、HRTF係数データメモリ110からHRTF係数データhを読み出し、こHRTF係数データhと波形データW1との間で積和算の演算を行って、処理済波形データW1’を生成する。   Next, FIG. 8 is a block diagram of the FIR filter F1. If this apparatus is provided in, for example, a personal computer, the FIR filter F1 is connected to a host driver (not shown) via a PCI bus or the like, and controls the DSP 100 that performs a product-sum operation and the DSP 100. The CPU 200, the working memory 210 connected to the CPU 200, and the HRTF coefficient data memory 110 storing the HRTF coefficient data h are configured. With the above configuration, when the coordinate command P is transferred from the host driver to the FIR filter F1 via the bus, the CPU 200 uses the work memory 210 to store a storage area for HRTF coefficient data h corresponding to each tap coefficient of the filter. Is calculated, and the address is sent to the DSP 100. Thereafter, the DSP 100 reads out the HRTF coefficient data h from the HRTF coefficient data memory 110 based on the transferred address, performs a product-sum operation between the HRTF coefficient data h and the waveform data W1, and performs processing. Completed waveform data W1 ′ is generated.

ところで、音源を定位させる方向精度は、HRTF係数データhのデータ量に依存する。このため、臨場感に溢れる発音を行うべく、音像定位の精度を向上させると、FIRフィルタF1の内部に大容量のHRTF係数データメモリ110を設ける必要がある。   By the way, the direction accuracy for locating the sound source depends on the data amount of the HRTF coefficient data h. For this reason, if the accuracy of sound image localization is improved in order to produce sound with a sense of presence, it is necessary to provide a large-capacity HRTF coefficient data memory 110 inside the FIR filter F1.

また、従来のシステムにあっては、ホストドライバから転送される座標命令Pを解釈して、HRTF係数データhを選択する必要があるため、CPU200をコントローラとして、FIRフィルタF1の内部に設ける必要があった。   In the conventional system, it is necessary to interpret the coordinate command P transferred from the host driver and select the HRTF coefficient data h. Therefore, it is necessary to provide the CPU 200 as a controller inside the FIR filter F1. there were.

一方、ホストドライバ側には、パーソナルコンピュータの全体を制御するCPUや、大容量のメインメモリ等が設けられていることが多い。このため、従来のシステムでは、ホストドライバ側の回路構成を有効に活用することができず、FIRフィルタの回路規模が大きくなってしまうといった問題があった。   On the other hand, on the host driver side, a CPU for controlling the entire personal computer, a large-capacity main memory, and the like are often provided. For this reason, the conventional system cannot effectively use the circuit configuration on the host driver side, and there is a problem that the circuit scale of the FIR filter becomes large.

本発明は、上述の点に鑑みなされたもので、その目的の1つは、コンピュータのバスに接続されて動作するディジタルフィルタ処理方法及び装置であって、その回路規模を増大させることなく、かつ効率的に動作させることができるディジタルフィルタ処理方法及び装置を提供しようとするものである。   The present invention has been made in view of the above-mentioned points, and one of its purposes is a digital filter processing method and apparatus that operates by being connected to a computer bus without increasing the circuit scale. It is an object of the present invention to provide a digital filtering method and apparatus that can be operated efficiently.

上記目的の達成のために、本発明に係るディジタルフィルタ処理方法は、フィルタ処理されるべきディジタルデータの複数サンプルと前記フィルタ処理において使用される係数組とを、コンピュータのバスを介して、バースト転送する第1ステップと、バースト転送されてきた複数サンプルのディジタルデータに対して、所定のサンプリング周期よりも速い処理レートで、バースト転送されてきた前記係数組を使用してフィルタ処理を施す第2ステップと、フィルタ処理されたディジタルデータをバッファし、前記所定のサンプリング周期に従って出力する第3ステップとを具備する。   In order to achieve the above object, a digital filter processing method according to the present invention performs burst transfer of a plurality of samples of digital data to be filtered and coefficient sets used in the filter processing via a computer bus. And a second step of performing a filtering process on the plurality of samples of digital data that have been burst transferred using the coefficient group that has been burst transferred at a processing rate faster than a predetermined sampling period. And a third step of buffering the filtered digital data and outputting in accordance with the predetermined sampling period.

フィルタされるべきディジタルデータの複数サンプルをコンピュータのバスを介してまとめて転送するので、コンピュータの側では、所定のサンプリング周期に同期してディジタルデータを送り出す必要がなく、時間的に拘束されない。従って、コンピュータ及びそのバスを他の用途にも効率的に使用することができる。また、第2ステップにおけるフィルタ処理は、所定のサンプリング周期よりも速い処理レートで、所定のフィルタ関数に従うフィルタ演算処理を行なうので、例えば複数f個のサンプル数のディジタルデータに対するフィルタ処理を行なうために、通常必要とされるfサンプリング周期分の時間をかけることなく、素早くフィルタ演算が行なわれる。かくして、第1ステップでは、複数サンプルからなるディジタルデータのかたまり毎に、フィルタされるべきディジタルデータの複数サンプルをコンピュータのバスを介して間歇的に転送することができ、これに伴い、第2ステップでは、複数サンプルからなるディジタルデータの各かたまり毎に、間歇的にフィルタ演算処理を行なうことができる。フィルタ演算処理済みのデータは、第3ステップで次々にバッファ記憶され、所定のサンプリング周期に従って出力することで、所定のサンプリング周期に従う通常のフィルタ演算処理済みデータを得ることができる。   Since a plurality of samples of digital data to be filtered are collectively transferred via a computer bus, the computer does not need to send out digital data in synchronization with a predetermined sampling period, and is not time-constrained. Therefore, the computer and its bus can be efficiently used for other purposes. In addition, since the filter processing in the second step performs filter calculation processing according to a predetermined filter function at a processing rate faster than a predetermined sampling period, for example, to perform filter processing on digital data of a plurality of f samples. The filter operation is performed quickly without taking the time required for the f sampling period that is normally required. Thus, in the first step, for each block of digital data consisting of a plurality of samples, a plurality of samples of the digital data to be filtered can be intermittently transferred via the computer bus. Then, filter operation processing can be performed intermittently for each block of digital data composed of a plurality of samples. Data that has been subjected to the filter calculation process is successively stored in the buffer in the third step, and output according to a predetermined sampling period, whereby normal data that has been subjected to the filter calculation process according to the predetermined sampling period can be obtained.

第2ステップでは、間歇的なフィルタ演算を行なうが故に、1チャンネルについてのフィルタ演算のみならず、複数チャンネルについてのフィルタ演算をそれぞれ空き時間を利用して行なうことができ、回路規模を大きくすることなく、多くのチャンネルについてのそれぞれ独立のフィルタ演算処理を行なうことができる。   In the second step, since intermittent filter operations are performed, not only filter operations for one channel but also filter operations for a plurality of channels can be performed using empty time, and the circuit scale is increased. Independent filter operation processing can be performed for many channels.

前記第1ステップでは、フィルタされるべき一連のディジタルデータを複数の区間に分割し、各区間毎の複数サンプル(例えばf個)からなるディジタルデータブロックを、間歇的に転送するものであり、1区間分のディジタルデータを転送するときにそれに隣接する区間に属するディジタルデータの一部(例えばn個のサンプル)を併せて転送することで、1区間分のサンプル数(f個)よりも多いサンプル数(f+n個)からなる時系列的なディジタルデータを転送する。これにより、前記第2ステップでは、1区間分のサンプル数よりも多いサンプル数からなる時系列的なディジタルデータを使用して、前記所定のフィルタ関数に従うフィルタ処理を施すことで、少なくとも1区間分のサンプル数(f個)に相当するフィルタ処理済みデータを得る。こうして、間歇的なフィルタ演算処理を実行ならしめることができる。すなわち、通常、1組のフィルタ係数の数がk個であるとすると、k−1個の単位遅延を含む、いわゆるk−1次のフィルタ演算を行なうこととなり、k個分の係数の積和により、1サンプル分のフィルタ処理済みデータを得る。よって、fサンプル分のフィルタ処理済みデータを得るためには、フィルタされるべき時系列的なディジタルデータは少なくともf+k個のサンプル分入力されるべきである。しかして、上記で、余分に転送される隣接区間のデータのサンプル数nを、n≧kとすることで、少なくとも1区間分のサンプル数(f個)に相当するフィルタ処理済みデータを得ることができる。余分に転送された隣接区間のデータのサンプル数nは、次に当該区間についてのフィルタ演算処理を行なうときにも使用されるものである。そのために、第2ステップの段階でこれを適宜保存しておいてもよいが、そうせずに、次に当該区間についての第1ステップでの転送処理に際して、再送するようにするとよい。第2ステップのフィルタ演算処理段階でこれを保存しておくことは、その分のレジスタを必要とするので、回路規模を幾分大きくしてしまうが、第1ステップでそのような再送処理を行なうことは、コンピュータの処理として簡単に余分のレジスタを必要とすることなく行なえる、という利点がある。   In the first step, a series of digital data to be filtered is divided into a plurality of sections, and a digital data block composed of a plurality of samples (for example, f) in each section is intermittently transferred. Samples larger than the number of samples (f) for one section by transferring a part of digital data (for example, n samples) belonging to the section adjacent to the section when transferring the digital data for the section. Time-series digital data consisting of a number (f + n) is transferred. Thus, in the second step, by using time-series digital data having a number of samples larger than the number of samples for one section, and performing filtering processing according to the predetermined filter function, at least one section is obtained. Filtered data corresponding to the number of samples (f) is obtained. In this way, intermittent filter calculation processing can be performed. That is, if the number of sets of filter coefficients is k, normally, a so-called k−1 order filter operation including k−1 unit delays is performed, and a product sum of k coefficients. Thus, filtered data for one sample is obtained. Therefore, in order to obtain filtered data for f samples, time-series digital data to be filtered should be input for at least f + k samples. Thus, by setting n ≧ k as the number of samples of the data in the adjacent section that is redundantly transferred in the above, it is possible to obtain filtered data corresponding to the number of samples (f) for at least one section. Can do. The number of samples n of the data in the adjacent section transferred in excess is used when the filter calculation process for the section is next performed. For this purpose, it may be stored appropriately at the stage of the second step, but instead, it may be retransmitted at the time of transfer processing at the first step for the section. Preserving this in the filter operation processing stage of the second step requires a corresponding register, so that the circuit scale is somewhat increased, but such retransmission processing is performed in the first step. This has the advantage that it can be easily performed without requiring an extra register as a computer process.

前記第1ステップで転送される前記隣接する区間に属するディジタルデータの一部として、更に、補間用の所定サンプル数(例えばj個)からなるディジタルデータが含まれていてよい。これにより、前記第2ステップでは、1区間分のサンプル数と補間用の所定サンプル数とを合計したサンプル数(例えばf+j個)からなるフィルタ処理済みデータを得る。そして、更に、補間用の所定サンプル数(j個)に相当するフィルタ処理済みデータを次の区間のためにバッファする第4ステップと、前の区間においてバッファされた補間用の所定サンプル数(j個)に相当するフィルタ処理済みデータと、今回の区間についての1区間分のサンプル数(f個)に相当するフィルタ処理済みデータとを用いて所定の補間処理を行う第5ステップとを具備する。   As a part of the digital data belonging to the adjacent section transferred in the first step, digital data composed of a predetermined number of samples (for example, j) for interpolation may be further included. Thereby, in the second step, filtered data including the number of samples (for example, f + j) obtained by summing the number of samples for one section and the predetermined number of samples for interpolation is obtained. Further, a fourth step of buffering the filtered data corresponding to the predetermined number of samples for interpolation (j) for the next section, and the predetermined number of samples for interpolation (j in the previous section) And a fifth step of performing a predetermined interpolation process using the filtered data corresponding to the number of samples (f) corresponding to one section for the current section. .

こうして、重複するj個のサンプル点について、前の区間で使用したフィルタ係数に従うフィルタ演算結果と、今回の区間で使用したフィルタ係数に従うフィルタ演算結果とが補間され、補間結果としてj個のデータが得られる。このj個の補間済みデータは、他のk−j個のフィルタ済みデータと共に、合計kサンプル分のフィルタ済み及び補間済みデータとして、第3ステップを介して、出力される。これにより、前回の区間についてのフィルタ演算で使用した係数組と今回の区間についてのフィルタ演算で使用した係数組との内容が異なっていても(つまり、フィルタ係数が時変動しても)、両区間のフィルタ演算処理済みデータを補間によって滑らかにつなげることができる。   In this way, with respect to j sample points that overlap, the filter calculation result according to the filter coefficient used in the previous section and the filter calculation result according to the filter coefficient used in the current section are interpolated, and j data is obtained as the interpolation result. can get. These j interpolated data are output through the third step as filtered and interpolated data for a total of k samples together with other k−j filtered data. As a result, even if the content of the coefficient group used in the filter operation for the previous section is different from the content of the coefficient group used in the filter operation for the current section (that is, even if the filter coefficient varies over time), both It is possible to smoothly connect the data subjected to the filter calculation processing in the section by interpolation.

好ましくは、前記第1ステップでは、前記フィルタ処理において使用される係数組をも前記コンピュータのバスを介して転送するようにするとよい。前記第2ステップでは、転送されてきた前記係数組を使用して前記フィルタ処理を施せばよい。これにより、第2ステップの側、つまりフィルタ演算用のプロセッサ(例えばDSP)の側において、複数組のフィルタ係数を予め記憶しているメモリを準備しておく必要がなく、その回路規模を大きくすることがない。例えば、フィルタ係数を時変動させる場合は、大容量の係数メモリが必要であるが、必要な係数組のみをバスを介して転送する構成とすれば、そのような大容量のメモリをフィルタ演算用のプロセッサの側に設ける必要がなく、ホストコンピュータ側に設けておけばよいこととなる。また、フィルタ係数を時変動させない場合でも、音像定位制御のように、音像定位の座標位置を解析し、解析した座標位置に応じたフィルタ係数組を選択的に読み出すような処理を行なう場合は、係数メモリをホストコンピュータ側に設けておけば、解析のための複雑なホストコンピュータ側で行なうことが容易にでき、その点でも、フィルタ演算用のプロセッサの側の構成を簡素化することができる。   Preferably, in the first step, coefficient sets used in the filtering process are also transferred through the bus of the computer. In the second step, the filtering process may be performed using the transferred coefficient set. As a result, it is not necessary to prepare a memory for storing a plurality of sets of filter coefficients in advance on the second step side, that is, the filter calculation processor (for example, DSP) side, and the circuit scale is increased. There is nothing. For example, when changing filter coefficients from time to time, a large capacity coefficient memory is required. However, if only a necessary coefficient set is transferred via a bus, such a large capacity memory is used for filter operation. It is not necessary to provide it on the processor side, and it is sufficient to provide it on the host computer side. Further, even when the filter coefficient is not changed over time, as in the case of sound image localization control, when analyzing the coordinate position of the sound image localization and performing a process of selectively reading out the filter coefficient set corresponding to the analyzed coordinate position, If the coefficient memory is provided on the host computer side, it can be easily performed on the complicated host computer side for analysis, and the configuration on the processor side for the filter operation can be simplified also in this respect.

勿論、第2ステップにおけるフィルタ演算処理のために使用する係数組は、フィルタ処理用のプロセッサの側においてメモリ等に記憶しておき、バスを介して転送しなくてもよい場合もありうる。例えば、フィルタ係数が時変動しない場合は、そのような係数は最低1組記憶されていればよいのでそれほどのメモリ容量は要求されないかもしれない。あるいは、音像定位のための複雑な座標解析が不要の場合は、そのような解析処理が不要である。これらの場合、フィルタ演算処理のために使用する係数組を、フィルタ処理用のプロセッサの側においてメモリ等に予め記憶しておくことができる。   Of course, the coefficient set used for the filter operation processing in the second step may be stored in a memory or the like on the processor side for the filter processing and may not be transferred via the bus. For example, if the filter coefficient does not change over time, it is sufficient that at least one set of such coefficients is stored, so that not much memory capacity may be required. Alternatively, when complicated coordinate analysis for sound image localization is unnecessary, such analysis processing is unnecessary. In these cases, the coefficient group used for the filter calculation process can be stored in advance in a memory or the like on the filter processing processor side.

一実施例として、前記第1ステップは前記コンピュータの汎用プロセッサ側のプログラムによって実行し、前記第2及び第3ステップは前記バスに接続されたフィルタ処理用プロセッサ側のプログラムによって実行する。しかして、本発明は、高能力のホストコンピュータをフィルタ処理のために無駄に拘束することがないので、その有効活用を図ることができると共に、フィルタ処理用プロセッサの回路規模やソフトウェア規模を大型化することなく、簡素化し、効率的にディジタルフィルタ処理を行なわせることができる。   As an embodiment, the first step is executed by a program on the general-purpose processor side of the computer, and the second and third steps are executed by a program on the filter processing processor side connected to the bus. Thus, the present invention does not waste a high-capacity host computer for filtering, so that it can be used effectively, and the circuit scale and software scale of the filtering processor are increased. Therefore, it is possible to simplify and efficiently perform digital filter processing.

別の観点に従えば、本発明に係る、コンピュータのバスに接続されるディジタルフィルタ装置は、前記バスを介して、所定の1フレーム期間における任意の1又は複数の時点で、フィルタ演算処理されるべきディジタルデータの複数サンプルと、前記フィルタ演算処理において使用されるフィルタ係数組とのバースト転送を受けるインターフェース部と、前記インターフェース部を介して受けた前記ディジタルデータに対して、前記インターフェース部を介して受けた前記フィルタ係数組を使用して所定のフィルタ演算処理を行うフィルタ演算部と、前記フィルタ演算部の出力をバッファし出力する出力部とを具備する。   According to another aspect, the digital filter device connected to a computer bus according to the present invention is subjected to filter calculation processing at any one or a plurality of points in a predetermined one frame period via the bus. An interface unit that receives burst transfer of a plurality of digital data samples and a filter coefficient set used in the filter calculation process, and the digital data received via the interface unit via the interface unit A filter operation unit that performs a predetermined filter operation process using the received filter coefficient group; and an output unit that buffers and outputs an output of the filter operation unit.

実施態様において、前記フィルタ演算部は、所定のサンプリング周期とは非同期で、若しくは高速で、フィルタ演算処理を行なう。一方、前記出力部は、バッファしたフィルタ処理済みデータを所定のサンプリング周期に同期して出力する。また、前記インターフェース部では、前記1フレーム期間内の異なる時点で、複数チャンネルのうちの個々のチャンネルについての所定サンプル数のディジタルデータの転送をそれぞれ受け、前記フィルタ演算部では、各チャンネル毎のフィルタ演算処理を前記1フレーム期間内で高速で行なう。その場合、前記出力部では、各チャンネル毎のフィルタ処理済みデータを同一サンプル時点毎に累算しつつバッファする。更に、前記インターフェース部では、前記フィルタ演算部において使用されるフィルタ係数組をも前記コンピュータのバスを介して受取り、前記フィルタ演算部では、受け取った前記フィルタ係数組を使用して前記所定のフィルタ演算処理を行なう。   In an embodiment, the filter calculation unit performs a filter calculation process asynchronously with a predetermined sampling period or at a high speed. On the other hand, the output unit outputs the buffered filtered data in synchronization with a predetermined sampling period. The interface unit receives digital data of a predetermined number of samples for each of a plurality of channels at different time points within the one frame period, and the filter operation unit receives a filter for each channel. Arithmetic processing is performed at high speed within the one frame period. In this case, the output unit buffers the filtered data for each channel while accumulating the data at the same sample time. Further, the interface unit also receives a filter coefficient set used in the filter calculation unit via the computer bus, and the filter calculation unit uses the received filter coefficient set to perform the predetermined filter calculation. Perform processing.

本発明で提案するディジタルフィルタ処理方法及び/又は装置は、ディジタル楽音信号の処理は勿論のこと、汎ゆる分野で応用することができる。すなわち、コンピュータに接続して効率的なフィルタ処理を行なう方法及び/または装置として最適であり、コンピュータの時間利用効率及びフィルタプロセッサ側の回路規模の縮小の両面で、優れた効果を発揮する。なお、本発明で、コンピュータとは、必ずしも、パーソナルコンピュータや大型のホストコンピュータなどスタンドアロンタイプのコンピュータ装置・機器・設備のみを示すのではなく、各種応用装置・機器・設備の中に組み込まれたCPU等を主要構成要素とするマイクロコンピュータデバイスやチップをも包含する、広義の意味で使用する。例えば、電子ゲーム装置や特定の応用装置・機器あるいは或る種のマルチメディア機器などの中にマイクロコンピュータデバイスが組み込まれていて、そのバスにフィルタ処理用のプロセッサ(例えばDSP)が接続される、といったような形態も、本発明の範囲に含まれる。   The digital filter processing method and / or apparatus proposed in the present invention can be applied to various fields as well as processing of digital musical tone signals. That is, it is optimal as a method and / or apparatus for performing efficient filter processing by connecting to a computer, and exhibits excellent effects in terms of both time utilization efficiency of the computer and reduction of the circuit scale on the filter processor side. In the present invention, a computer does not necessarily indicate only a stand-alone type computer device / equipment / equipment such as a personal computer or a large host computer, but a CPU incorporated in various application devices / equipment / equipment. Are used in a broad sense, including microcomputer devices and chips whose main components are. For example, a microcomputer device is incorporated in an electronic game device, a specific application device / equipment, or some kind of multimedia device, and a filter processor (for example, DSP) is connected to the bus. Such forms are also included in the scope of the present invention.

例えば、本発明を音像定位制御に応用することで、回路規模を増大させることなく、高品質な音像定位効果を楽音信号に付与することができるようになる。すなわち、本発明に係る音像定位装置は、波形データをfサンプル毎のフレームに分割し、フレーム単位で間歇的に音像の定位効果を前記波形データに付与する音像定位装置であって、発音の位置情報に対応する係数データを予め格納した第1の記憶部と、前記波形データを記憶した第2の記憶部と、前記係数データと前記波形データに基づいて、出力データを生成するkタップのFIRフィルタ演算部と、前記第1の記憶部、前記第2の記憶部および前記FIRフィルタ演算部と接続され、バースト転送に対応するバスと、現在のフレームの前記位置情報に対応するk個の前記係数データを前記第1の記憶部から読み出し、隣接フレーム間でk個以上の前記波形データが重なるように前記第2記憶部からf+k個以上の前記波型データをフレーム単位毎に読み出し、読み出された前記係数データと前記波形データを、前記バスを介して前記FIRフィルタ演算部にバースト転送するように制御する制御部とを備えたことを特徴とする。ここで、前記制御部は、音原の移動が聴感上検知できないような短い周期で前記バースト転送を行うように制御してよい。また、前記位置情報は、前記フレームの中央付近のタイミングにおける発音の位置を示すものであってよい。   For example, by applying the present invention to sound image localization control, a high-quality sound image localization effect can be imparted to a musical sound signal without increasing the circuit scale. That is, the sound image localization apparatus according to the present invention is a sound image localization apparatus that divides waveform data into frames for each f sample, and intermittently gives a sound image localization effect to the waveform data on a frame-by-frame basis. A first storage unit that stores coefficient data corresponding to information in advance; a second storage unit that stores the waveform data; and a k-tap FIR that generates output data based on the coefficient data and the waveform data A filter operation unit, connected to the first storage unit, the second storage unit, and the FIR filter operation unit, a bus corresponding to burst transfer, and k number of the corresponding to the position information of the current frame Coefficient data is read from the first storage unit, and f + k or more waveform data is stored in the second storage unit so that k or more waveform data overlap between adjacent frames. Reading for each over arm unit, the waveform data and the coefficient data read out, characterized in that a control unit for controlling to burst transfer to the FIR filter operation unit via the bus. Here, the control unit may perform control so that the burst transfer is performed at a short cycle such that the movement of the sound source cannot be detected from an auditory sense. The position information may indicate the position of the sound generation at a timing near the center of the frame.

この発明は、方法発明として構成し、実施することができるのみならず、装置発明として構成し、実施することもできる。また、この発明は、コンピュータプログラムまたはDSP等のためのマイクロプログラムの形態で実施することができるし、そのようなコンピュータプログラムまたはマイクロプログラムを記憶した記録媒体の形態で実施することもできる。   The present invention can be configured and implemented not only as a method invention but also as a device invention. In addition, the present invention can be implemented in the form of a computer program or a microprogram for a DSP or the like, or in the form of a recording medium storing such a computer program or microprogram.

上述したように本発明に係る発明特定事項によれば、隣接するフレームで重複する入力データをディジタルフィルタに転送するようにしたので、ディジタルフィルタを間歇的に動作させることができる。   As described above, according to the invention specific matter according to the present invention, since input data overlapping in adjacent frames is transferred to the digital filter, the digital filter can be operated intermittently.

図1は本発明に係わる音像定位装置の一実施形態である3次元サウンドポジショニングシステムのブロック図である。1はCPUであって、装置全体を制御する。また、MはCPU1に接続されている当該システムのメインメモリであって、例えば、EDODRAM(Extended Data Out DRAM)等によって構成される。また、メインメモリMのある記憶領域は、波形バッファメモリM1やHRTF係数データメモリM2として機能する。また、メインメモリMの他の記憶領域には、ドライバプログラムやアプリケーションプログラムが格納されており、これらのデータおよびプログラムは、コンピュータシステムの起動時や特定の命令入力時にハードディスク等の2次記憶装置から読み出され、メインメモリMに格納されようになっている。   FIG. 1 is a block diagram of a three-dimensional sound positioning system which is an embodiment of a sound image localization apparatus according to the present invention. Reference numeral 1 denotes a CPU which controls the entire apparatus. M is a main memory of the system connected to the CPU 1, and is constituted by, for example, an EDODRAM (Extended Data Out DRAM). The storage area in which the main memory M is located functions as the waveform buffer memory M1 and the HRTF coefficient data memory M2. In addition, a driver program and an application program are stored in another storage area of the main memory M. These data and programs are stored in a secondary storage device such as a hard disk when the computer system is started or when a specific command is input. It is read out and stored in the main memory M.

また、波形バッファメモリM1には、複数の音源によって生成された各波形データWが記憶される。この波形データWのサンプリングレートは、例えば48KHzである。HRTF係数データメモリM2には、音源の座標を指定する座標命令Pに対応づけられてHRTF係数データhが格納されており、CPU1の読出命令に従って、座標命令Pに対応するHRTF係数データhが読み出されるようになっている。   The waveform buffer memory M1 stores each waveform data W generated by a plurality of sound sources. The sampling rate of the waveform data W is 48 KHz, for example. The HRTF coefficient data memory M2 stores HRTF coefficient data h in association with the coordinate command P for designating the coordinates of the sound source, and the HRTF coefficient data h corresponding to the coordinate command P is read in accordance with the read command of the CPU1. It is supposed to be.

このように波形バッファメモリM1とHRTF係数データメモリM2とは、当該システムのメインメモリMの一部として構成される。したがって、このシステムでは、波形データWやHRTF係数データhを記憶するために特別なメモリをディジタルフィルタ計算機3の側に予め設けておく必要がない。   Thus, the waveform buffer memory M1 and the HRTF coefficient data memory M2 are configured as a part of the main memory M of the system. Therefore, in this system, it is not necessary to provide a special memory in advance on the digital filter computer 3 side in order to store the waveform data W and the HRTF coefficient data h.

ここで、波形データWの一例を図2に示す。この例にあっては、連続する波形データWをfサンプルのフレームに分割し、フレーム単位で効果付与処理を行なっている。なお、サンプリングレートを48KHzとし、1フレームを256サンプルで構成するとすれば、1フレーム期間は、図示するように略5.3msとなる。   An example of the waveform data W is shown in FIG. In this example, continuous waveform data W is divided into f sample frames, and the effect imparting process is performed in units of frames. If the sampling rate is 48 KHz and one frame is composed of 256 samples, one frame period is approximately 5.3 ms as shown in the figure.

次に、2は高速のデータ転送が可能なバスであり、例えば、PCIバスを用いるのが好適である。PCIバスは、データ/アドレスとも32ビット幅(あるいは64ビット幅)の転送となっている。また、PCIバスの動作クロックは33MHzであり、理論上の最高データ転送速度は132Mバイト/秒(あるいは264Mバイト/秒)である。さらに、サポートしているバスマスタ機能では、汎用DMAコントローラを使用しない高速なDMAやCPUにかかる負荷の軽減を実現することができる。   Next, reference numeral 2 denotes a bus capable of high-speed data transfer. For example, a PCI bus is preferably used. The PCI bus has a data / address transfer of 32 bits (or 64 bits). The operation clock of the PCI bus is 33 MHz, and the theoretical maximum data transfer rate is 132 Mbytes / second (or 264 Mbytes / second). Furthermore, with the supported bus master function, it is possible to reduce the load on the high-speed DMA and CPU that do not use the general-purpose DMA controller.

また、PCIバスは、ISAバスではサポートされていないバースト転送モードを備えている。バースト転送モードとは、1回のアドレス指定で複数のデータをまとめて連続的に転送するモードであり、このバースト転送モードを利用することにより、後述のバースト転送モードを備えたDRAM(Dynamic RAM)からの連続データの読み出しを高速化することができる。さらに、PCIバスには、バスに接続するためのインタフェースを安価に製造できるという利点もある。以上がPCIバスを用いる理由であり、このような特性を有するのであれば、PCIバス以外の拡張バスを用いてもよい。   The PCI bus also has a burst transfer mode that is not supported by the ISA bus. The burst transfer mode is a mode in which a plurality of data is transferred continuously in a single address specification. By using this burst transfer mode, a DRAM (Dynamic RAM) having a burst transfer mode described later is used. Reading of continuous data from can be speeded up. Further, the PCI bus has an advantage that an interface for connecting to the bus can be manufactured at a low cost. The above is the reason for using the PCI bus. If it has such characteristics, an expansion bus other than the PCI bus may be used.

次に、3はバス2に接続されるディジタルフィルタ計算機であって、積和算の高速演算を行うもので、例えば、単純FIRフィルタ演算を行う。このディジタルフィルタ計算機3は、DSP(Digital Signal Processor)によって構成される。ディジタルフィルタ計算機3の機能ブロックを図3に示す。図3に示されたディジタルフィルタ計算機3において、バスインターフェース301を介してバス2との間でデータのやりとりを行なう。ウェーブ入力バッファ302は、バス2を介してバースト転送されてくるデータのうち、一転送単位分の波形サンプルデータ(例えば、f+k+j個のサンプル数からなる)をバッファ記憶する。係数入力バッファ303は、バス2を介してバースト転送されてくるデータのうち、一転送単位分のフィルタ係数データ(例えば、k個の係数データ)をバッファ記憶する。制御部304は。ディジタルフィルタ計算機3における各部間のデータのやりとりの制御及びその他の制御を行うなもので、ウェーブ入力バッファ302及び係数入力バッファ303にバッファ記憶したデータをフィルタ演算部305に供給し、該供給した波形サンプルデータ及び係数データに基づき所定のアルゴリズムに従うフィルタ演算を該フィルタ演算部305で高速で実行させる。   Next, reference numeral 3 denotes a digital filter computer connected to the bus 2, which performs a high-speed product-sum operation. For example, a simple FIR filter operation is performed. The digital filter calculator 3 is constituted by a DSP (Digital Signal Processor). A functional block of the digital filter calculator 3 is shown in FIG. In the digital filter computer 3 shown in FIG. 3, data is exchanged with the bus 2 via the bus interface 301. The wave input buffer 302 buffers and stores waveform sample data (for example, composed of f + k + j samples) for one transfer unit among the data transferred in burst via the bus 2. The coefficient input buffer 303 stores filter coefficient data (for example, k pieces of coefficient data) for one transfer unit among data transferred in burst via the bus 2. The control unit 304. The digital filter calculator 3 controls the exchange of data between the units and other controls. The data stored in the wave input buffer 302 and the coefficient input buffer 303 is supplied to the filter operation unit 305, and the supplied waveform is supplied. Based on the sample data and the coefficient data, a filter operation according to a predetermined algorithm is executed by the filter operation unit 305 at high speed.

図4は、フィルタ演算部305が実行するフィルタ演算アルゴリズムの典型例を示す機能ブロック図であり、単純FIR(有限インパルス応答)フィルタ演算を行う。この図において、311〜31k-1は、Dフリップフロップであり、サンプルクロックに同期して、動作するようになっている。また、320〜32k-1は乗算器であって、そこにはHRTF係数データh0〜hk-1がセットされるようになっており、波形データWとの間で乗算が行われる。33は加算器であって、乗算器320〜32k-1の各出力データを加算する。以上の構成により、タップ数kのFIRフィルタが構成される。このFIRフィルタを左右それぞれに対応したHRTF係数データに基づき2系統設けることによって、波形データWに音響効果処理を施される。これにより、あたかも音源が移動したような効果を波形データWに付与して、立体的な臨場感を演出することが可能となる。   FIG. 4 is a functional block diagram showing a typical example of the filter calculation algorithm executed by the filter calculation unit 305, and performs simple FIR (finite impulse response) filter calculation. In this figure, 311 to 31k-1 are D flip-flops that operate in synchronization with the sample clock. Reference numerals 320 to 32k-1 denote multipliers, in which HRTF coefficient data h0 to hk-1 are set, and multiplication with the waveform data W is performed. An adder 33 adds the output data of the multipliers 320 to 32k-1. With the above configuration, an FIR filter having k taps is configured. By providing two systems of these FIR filters based on HRTF coefficient data corresponding to the left and right, the sound effect processing is performed on the waveform data W. Thereby, it is possible to give the waveform data W an effect as if the sound source has moved, and to produce a three-dimensional presence.

また、34はクロスフェード処理部であり、加算器33の出力データに対して、クロスフェード処理を施す。クロスフェード処理については後述する。クロスフェード処理部34から出力されるフィルタ処理済み(及びクロスフェード処理済み)のデータは、図3に示されるダブルバッファからなる出力バッファ306及び307の一方に累算的に取り込まれる。すなわち、出力バッファ306及び307は、それぞれ1フレーム分の波形データのサンプル数fに対応する数のアドレス場所を有しており、各サンプル毎のフィルタ出力データを各アドレス場所に記憶する。ここで、ディジタルフィルタ計算機3におけるフィルタ演算部305においては、複数チャンネルについての1フレーム分のフィルタ演算をそれぞれ独立にかつ高速で行なうようになっており、各チャンネルについての各サンプル毎のフィルタ出力データを、ダブルバッファからなる出力バッファ306及び307の一方における、対応する各アドレス場所に足し込む(累算する)ようになっている。こうして、全てのチャンネルについての1フレーム分の高速フィルタ演算が終了したときには、書き込みモード中である出力バッファ306及び307の一方における各アドレス場所には、fサンプル数分の各チャンネルのフィルタ演算結果を、同じサンプル時間同士で累算したものが蓄積されたことになる。ダブルバッファからなる出力バッファ306及び307は、書き込みモードと読出モードが1フレーム毎に交互に切り替わるように制御される。すなわち、前回フレームの期間で書き込みモードであった出力バッファ306及び307の一方は、今回フレームの期間では、読出モードとなり、fサンプル数分の各チャンネルのフィルタ演算結果の累算データを、所定のサンプリング周波数(例えば48kHz)に従って順次読み出す。なお、左右2系統のフィルタ処理出力を生ずるために、ダブルバッファからなる出力バッファ306及び307とは別に、もう1系統のダブルバッファからなる出力バッファ308及び309が設けられる。フィルタ演算部305は、左右2系統のフィルタ処理で共用するようにしてもよいし、別系統で設けてもよい。   Reference numeral 34 denotes a cross-fade processing unit, which performs cross-fade processing on the output data of the adder 33. The cross fade process will be described later. The filtered data (and the crossfade processed data) output from the crossfade processing unit 34 is cumulatively taken into one of the output buffers 306 and 307 formed of a double buffer shown in FIG. That is, the output buffers 306 and 307 each have the number of address locations corresponding to the number f of waveform data samples for one frame, and store the filter output data for each sample in each address location. Here, the filter calculation unit 305 in the digital filter calculator 3 performs the filter calculation for one frame for a plurality of channels independently and at high speed, and the filter output data for each sample for each channel. Is added (accumulated) to each corresponding address location in one of the output buffers 306 and 307 formed of a double buffer. Thus, when the high-speed filter operation for one frame is completed for all channels, the filter operation result for each channel for the number of f samples is stored in each address location in one of the output buffers 306 and 307 in the write mode. That is, the accumulation of the same sample times is accumulated. The output buffers 306 and 307 formed of a double buffer are controlled so that the write mode and the read mode are alternately switched every frame. That is, one of the output buffers 306 and 307 that was in the write mode in the previous frame period is in the read mode in the current frame period, and the accumulated data of the filter operation results of each channel for the number of f samples is set to a predetermined value. Read sequentially according to the sampling frequency (for example, 48 kHz). In order to generate two left and right filter processing outputs, output buffers 308 and 309 made up of another double buffer are provided separately from the output buffers 306 and 307 made up of a double buffer. The filter calculation unit 305 may be shared by the left and right two-line filter processing, or may be provided in another system.

ここで、複数のチャンネルとは、それぞれで異なるフィルタ係数組を使用するチャンネル(いわばフィルタ処理チャンネル)に相当する。例えば、3次元サウンドポジショニングシステムで、3音源からの波形データ(3チャンネルの波形データ)をそれぞれに対応する頭部伝達関数HRTFでフィルタ処理する場合、左系統用に3チャンネル、右系統用に3チャンネル、のフィルタ処理がそれぞれのHRTF係数データを用いて行なわれる。なお、各バッファ302,303,306〜309は、それぞれ1チャンネルについての1フレーム分のデータをバッファ記憶するのに必要なアドレス数だけあればよいので、全体として、極めて少容量で済む。すなわち、複数チャンネル分のフィルタ処理を行なう場合であっても、ディジタルフィルタ計算機3においては、1フレーム時間内において各チャンネル毎に別々に高速で(つまり出力サンプリング周波数よりも高速で)フィルタ演算処理を行なうので、各入力バッファ302,303は、そのときの1フレーム分のフィルタ演算に必要な1チャンネル分のデータをバッファ記憶する容量を有しているだけでよい。また、各出力バッファ306〜309はそれぞれ1フレーム分のサンプル数(f個)のデータをバッファ記憶する容量を有しているだけでよい。   Here, the plurality of channels correspond to channels that use different filter coefficient groups (so-called filter processing channels). For example, in a three-dimensional sound positioning system, when waveform data from three sound sources (3-channel waveform data) is filtered with the corresponding head-related transfer function HRTF, 3 channels for the left system and 3 for the right system Channel filtering is performed using the respective HRTF coefficient data. The buffers 302, 303, and 306 to 309 each need only the number of addresses required to buffer-store data for one frame for one channel, and therefore the total capacity is extremely small. That is, even when the filter processing for a plurality of channels is performed, the digital filter calculator 3 performs the filter calculation processing separately for each channel at a high speed (that is, at a speed higher than the output sampling frequency) within one frame time. Therefore, each of the input buffers 302 and 303 need only have a capacity for buffer storing data for one channel necessary for the filter calculation for one frame at that time. Further, each of the output buffers 306 to 309 only needs to have a capacity for buffer storing data of the number of samples (f) for one frame.

ここで、メインメモリMからディジタルフィルタ計算機3に転送されるデータは、バス2を介して間歇的に伝送される。図5(a)は、1音の処理に対応するバースト転送の様子を示したものである。図に示すように1回のバースト転送において、ディジタルフィルタ計算機3のタップ数kだけのHRTF係数データhと、kよりも多い所定サンプル数(f+k+j個)の波形データWとがバス2を介してディジタルフィルタ計算機3へ転送される。   Here, data transferred from the main memory M to the digital filter computer 3 is transmitted intermittently via the bus 2. FIG. 5A shows a state of burst transfer corresponding to processing of one sound. As shown in the figure, in one burst transfer, HRTF coefficient data h corresponding to the number of taps k of the digital filter calculator 3 and waveform data W of a predetermined number of samples (f + k + j) larger than k are transmitted via the bus 2. It is transferred to the digital filter calculator 3.

このように、本実施形態においては、バースト転送によってデータを転送しているので、音響効果付与のためにバス2を常時占有することはない。また、図5(a)に示す例は、1つの音源に対応する波形データWと1系統のHRTF係数データh0〜hk-1とを転送するものであったが、前述のように実際には1つの音源に対して、波形データW(共通)と左右の耳に対応した2系統のHRTF係数データが転送される。さらに、バス2はPCIバスのように高速でデータ転送が可能であるから、複数の音に対して効果付与処理を行う場合には、転送データを時分割多重して転送することができる。これにより、複数の音源からの音に対して、音像定位処理を行うことが可能となる。   As described above, in the present embodiment, since the data is transferred by burst transfer, the bus 2 is not always occupied to give the acoustic effect. In the example shown in FIG. 5 (a), the waveform data W corresponding to one sound source and one system of HRTF coefficient data h0 to hk-1 are transferred. For one sound source, waveform data W (common) and two systems of HRTF coefficient data corresponding to the left and right ears are transferred. Furthermore, since the bus 2 can transfer data at a high speed like the PCI bus, when the effect imparting process is performed on a plurality of sounds, the transfer data can be time-division multiplexed and transferred. Thereby, it is possible to perform sound image localization processing on sounds from a plurality of sound sources.

ところで、HRTF係数データh0〜hk-1は、頭部伝達関数HRTFによって定まるものであるから、音源の移動に伴って連続的に変化する。したがって、HRTF係数データh0〜hk-1の更新は、本来、1サンプル周期毎に行うことが望ましい。しかし、1サンプル周期毎の更新を行うには、短時間でHRTF係数データh0〜hk-1をHRTF係数データメモリM2から読み出す必要があり、さらに読み出したデータをバス2を介して転送する必要がある。この場合には、バス2を長時間占有することになるので、HRTF係数データhの転送処理と他の処理との間でバス2の奪い合いが生じることが多い。一方、人の聴覚には、短い時間間隔で音源が不連続に移動したとしても、それを検知することができず、音源が連続して移動したように感じられるといった特性がある。換言すれば、人の耳は、ある程度の時間をかけて音源が不連続に移動した場合に、不連続であることを始めて検知する。   By the way, since the HRTF coefficient data h0 to hk-1 is determined by the head related transfer function HRTF, it continuously changes as the sound source moves. Therefore, it is desirable to update the HRTF coefficient data h0 to hk-1 every sampling period. However, in order to update every sample period, it is necessary to read out the HRTF coefficient data h0 to hk-1 from the HRTF coefficient data memory M2 in a short time, and to transfer the read data via the bus 2. is there. In this case, since the bus 2 is occupied for a long time, there is often a contention for the bus 2 between the transfer processing of the HRTF coefficient data h and other processing. On the other hand, human hearing has a characteristic that even if the sound source moves discontinuously at short time intervals, it cannot be detected and the sound source feels moved continuously. In other words, when the sound source moves discontinuously over a certain period of time, the human ear first detects that it is discontinuous.

そこで、本実施形態においては、フィルタ処理を一定の間隔(フレーム周期)に区切り、一定周期内では頭部伝達関数HRTFに変化がないものとして取り扱うことにより、データ転送に必要な係数の個数を低減し、バス2の占有時間を減らしている。すなわち、頭部伝達関数HRTFの更新を、聴感上の変化が認められない程度の時間間隔で行っている。この時間間隔としては、略10ms以下が望ましい。   Therefore, in the present embodiment, the number of coefficients necessary for data transfer is reduced by dividing the filter processing into fixed intervals (frame periods) and treating the head-related transfer function HRTF as not changing within a fixed period. In addition, the occupied time of the bus 2 is reduced. That is, the head-related transfer function HRTF is updated at a time interval such that no change in audibility is recognized. This time interval is preferably about 10 ms or less.

この例にあっては、ディジタルフィルタ計算機3におけるHRTF係数データh0〜hk-1の更新周期を、バースト転送周期(すなわち、フレーム周期)と一致させ、10ms以下に設定している。例えば、サンプリング周波数を48KHz、1フレームのサンプル数を256サンプルに設定すると、更新周期は略5.3msとなる。なお、音源が高速で移動する場合には、頭部伝達関数HRTFの変化が大きくなるため、音源の移動が不連続となるように人の耳で感じられる場合も起こり得る。このため、本実施形態にあっては、後述するクロスフェード処理を行って、人の耳で音源が連続的に移動するように感じられるようにしている。   In this example, the update period of the HRTF coefficient data h0 to hk-1 in the digital filter computer 3 is set to 10 ms or less so as to coincide with the burst transfer period (that is, the frame period). For example, if the sampling frequency is set to 48 KHz and the number of samples in one frame is set to 256 samples, the update cycle is approximately 5.3 ms. When the sound source moves at high speed, the change in the head-related transfer function HRTF becomes large, and it may happen that the sound source is felt by the human ear so that the movement of the sound source becomes discontinuous. For this reason, in the present embodiment, a cross-fade process, which will be described later, is performed so that the sound source can be felt to move continuously with human ears.

次に、図面を参照しつつ、本実施形態の動作を説明する。まず、バースト転送処理について説明すると、図5(b)に示すとおり、n番目のフレームにおいて、ドライバ側からバス2を介して伝送する転送データ群Fnは次のようになる。
Fn=(hn,0、hn,1、…hn,k-1、df(n-1)、df(n-1)+1、…dfn-1+k+j)
ただし、fは1フレーム当たりのサンプル数、また、jはオーバラップ数である。
Next, the operation of this embodiment will be described with reference to the drawings. First, burst transfer processing will be described. As shown in FIG. 5B, the transfer data group Fn transmitted from the driver side via the bus 2 in the nth frame is as follows.
Fn = (hn, 0, hn, 1,... Hn, k-1, df (n-1), df (n-1) +1, ... dfn-1 + k + j)
Here, f is the number of samples per frame, and j is the number of overlaps.

この図に示すように、転送データFnは、k個のHTRF係数データhn,0〜hn,k-1と、f+k+j個の波形データdf(n-1)〜dfn-1+k+jとから構成されている。ここで、転送する波形データ数を、1フレームのサンプル数fより多いf+k+j個としたのは、以下の理由による。まず、FIRフィルタ処理にあっては、フィルタのタップ数kだけの波形データWとHRTF係数データhとの積和算によって、あるサンプルの出力データを生成する。したがって、1フレーム期間(fサンプル)分の出力データを生成するためには、f+k個の波形データWが必要となり、さらに、クロスフェード処理のためのオーバーラップ処理のためにj個の波形データが必要となるので、転送する波形データ数は、f+k+j個となるのである。すなわち、この例にあっては、1フレーム期間のサンプル数f以上の波形データWを再送することによって、単純FIRフィルタ計算機3において、間歇的な処理を可能としている。   As shown in this figure, the transfer data Fn is composed of k pieces of HTRF coefficient data hn, 0 to hn, k-1 and f + k + j pieces of waveform data df (n-1) to dfn-1 + k + j. It is configured. Here, the reason why the number of waveform data to be transferred is f + k + j, which is larger than the number of samples f in one frame, is as follows. First, in the FIR filter processing, output data of a certain sample is generated by multiply-adding the waveform data W and the HRTF coefficient data h corresponding to the number of taps k of the filter. Therefore, in order to generate output data for one frame period (f samples), f + k pieces of waveform data W are required. Furthermore, j pieces of waveform data are used for the overlap processing for the cross-fade processing. Therefore, the number of waveform data to be transferred is f + k + j. That is, in this example, the simple FIR filter calculator 3 can perform intermittent processing by retransmitting the waveform data W having the number of samples f or more in one frame period.

次に、演算部305におけるFIRフィルタ処理例を説明する。演算部305では、あるフレームにおいて、1フレームのサンプル数fとオーバーラップ処理のためのサンプル数jを加えたf+j個を処理する。ここで、n番目のフレームにおける、図に示す加算器の各出力データを要素とするベクトルをXnとすると、ベクトルXnは以下の式で表される。
Xn=(Hn・D[f(n-1):f(n-1)+k-1]、Hn・D[f(n-1)+1:f(n-1)+k]、… Hn・D[fn+j:fn-1+k+j])
=(xn,0、xn,1、…xn,f+j-1)
ただし、「・」はベクトルの内積を表すものとする。
Next, an example of FIR filter processing in the calculation unit 305 will be described. In a certain frame, the arithmetic unit 305 processes f + j, which is obtained by adding the number of samples f per frame and the number of samples j for overlap processing. Here, in the n-th frame, when a vector having each output data of the adder shown in the figure as an element is Xn, the vector Xn is expressed by the following expression.
Xn = (Hn.D [f (n-1): f (n-1) + k-1], Hn.D [f (n-1) +1: f (n-1) + k], ... Hn ・ D [fn + j: fn-1 + k + j])
= (Xn, 0, xn, 1, ... xn, f + j-1)
However, “·” represents an inner product of vectors.

ここで、サンプルの順番とデータとの関係について定義する。n番目のフレームにおける、タップ数kのHRTF係数データh0〜hk-1を、(hn,0、hn,1、hn,2、…hn,k-1)で表すものとし、各係数データを要素とする係数ベクトルをHnで表すものとすると、係数ベクトルHnは次の式で与えられるものとする。
Hn=(hn,0、hn,1、hn,2、…hn,k-1)
Here, the relationship between the sample order and the data is defined. In the n-th frame, HRTF coefficient data h0 to hk-1 having k taps are represented by (hn, 0, hn, 1, hn, 2,... hn, k-1), and each coefficient data is an element. The coefficient vector Hn is assumed to be given by the following equation:
Hn = (hn, 0, hn, 1, hn, 2,... Hn, k-1)

また、連続するサンプルの波形データを要素とするベクトルDを次式で定義するものとする。ただし、d0、d1、d2、…dmは、各サンプルにおける波形データである。
D=(d0、d1、d2、…dm)
Further, a vector D having the waveform data of successive samples as an element is defined by the following equation. However, d0, d1, d2,... Dm are waveform data in each sample.
D = (d0, d1, d2, ... dm)

また、a番目の波形データdaのみを要素とするベクトルをD[a]で表すものとし、a番目からb番目までの波形データda〜dbを要素とするベクトルをD[a:b]で表すものとすると、D[a]とD[a:b]は、以下に示す式で与えられるものとする。
D[a]=daD[a:b]=(da、da+1、…db)
Further, a vector having only the a-th waveform data da as an element is represented by D [a], and a vector having elements a to b as waveform data da to db is represented by D [a: b]. Assume that D [a] and D [a: b] are given by the following equations.
D [a] = daD [a: b] = (da, da + 1,... Db)

以上の定義を用いて、ベクトルXnを具体的に考察する。まず、図5(b)に示す転送データが、hn,0から順に単純FIRフィルタ3に供給されると、HRTF係数データhn,0、hn,1、…hn,k-1が、図4に示す乗算器320〜32k-1に順にセットされる。この後、k個の波形データdf(n-1)〜df(n-1)+k-1とHRTF係数データhn,0、hn,1、…hn,k-1との間で、内積が演算され出力データxn,0が生成される。したがって、xn,0は、次式で与えられる。
xn,0=hn,0 df(n-1)+hn,1 df(n-1)+1+…+hn,k-1df(n-1)+k-1
Using the above definition, the vector Xn is specifically considered. First, when the transfer data shown in FIG. 5B is supplied to the simple FIR filter 3 in order from hn, 0, the HRTF coefficient data hn, 0, hn, 1,... Hn, k-1 are shown in FIG. The multipliers 320 to 32k-1 are set in order. Thereafter, the inner product is obtained between the k waveform data df (n-1) to df (n-1) + k-1 and the HRTF coefficient data hn, 0, hn, 1,... Hn, k-1. The output data xn, 0 is generated by calculation. Therefore, xn, 0 is given by the following equation.
xn, 0 = hn, 0 df (n-1) + hn, 1 df (n-1) +1 + ... + hn, k-1 df (n-1) + k-1

そして、次のサンプル周期においては、波形データを1サンプルずらして、演算が行われ、次式で示される出力データxn,1が生成される。
xn,1=hn,0 df(n-1)+1+hn,1 df(n-1)+2+…+hn,k-1df(n-1)+k以下、同様に波形データを順にずらしながら演算することによって、加算器33から出力データxn,0〜xn,f+j-1が出力される。
In the next sample period, the waveform data is shifted by one sample and the calculation is performed to generate output data xn, 1 represented by the following equation.
xn, 1 = hn, 0 df (n-1) + 1 + hn, 1 df (n-1) +2+... + hn, k-1df (n-1) + k, and similarly, the waveform data is sequentially shifted while calculating As a result, output data xn, 0 to xn, f + j−1 is output from the adder 33.

次に、ディジタルフィルタ計算機3のクロスフェード処理部34で行われるクロスフェード処理について説明する。図6は、クロスフェード処理を説明するための概念図である。上述した第nフレームの出力データxn,0〜xn,f+j-1と、第n+1フレームの出力データxn+1,0〜xn+1,f+j-1とは、図6に示すように波形データdf(n-1)〜df(n+1)-1+k+jに基づいて生成される。この図から判るように、波形データdfn〜dfn-1+k+jは、第nフレームと第n+1フレームに重複して使用される。この結果、j個の出力データxn,f〜xn,f+j-1と出力データxn+1,0〜xn+1,j-1とが、異なるHRTF係数データに従ってオーバーラップして生成される。   Next, the crossfade process performed by the crossfade processing unit 34 of the digital filter computer 3 will be described. FIG. 6 is a conceptual diagram for explaining the cross-fade process. The nth frame output data xn, 0 to xn, f + j-1 and the (n + 1) th frame output data xn + 1,0 to xn + 1, f + j-1 are as shown in FIG. Are generated based on the waveform data df (n-1) to df (n + 1) -1 + k + j. As can be seen from this figure, the waveform data dfn to dfn-1 + k + j are used redundantly in the nth frame and the n + 1th frame. As a result, j pieces of output data xn, f to xn, f + j-1 and output data xn + 1,0 to xn + 1, j-1 are generated in accordance with different HRTF coefficient data. .

これらの出力データxn,f〜xn,f+j-1と出力データxn+1,0〜xn+1,j-1とに基づいて、第nフレームと第n+1フレームとの間のクロスフェード処理が行われる。ここで、第n+1フレームにおけるクロスフェード処理部34の出力データを要素とするベクトルをYnとすると、Yn+1は、以下の式で与えられる。
Yn+1=((1−aβ)Xn[f+a-1]+aβXn+1[a-1]、Xn+1[j:f])
ただし、β=1/jである。また、aはオバーラップするデータの順番を表しており、j以下の自然数である。
Based on the output data xn, f to xn, f + j-1 and the output data xn + 1,0 to xn + 1, j-1, crossfade processing between the nth frame and the n + 1th frame Is done. Here, if a vector having the output data of the crossfade processing unit 34 in the (n + 1) th frame as an element is Yn, Yn + 1 is given by the following equation.
Yn + 1 = ((1-aβ) Xn [f + a-1] + aβXn + 1 [a-1], Xn + 1 [j: f])
However, β = 1 / j. Moreover, a represents the order of data to be overlapped, and is a natural number equal to or less than j.

例えば、j=4、f=256であるとすれば、第n+1フレームのオーバーラップ部分に対応する出力データyn+1,0〜出力データyn+1,j-1は、図6に示すように以下の式で表すことができる。
第1番目(a=1);yn+1,0=0.8xn,256+0.2xn+1,0 第2番目(a=2);yn+1,1=0.6xn,257+0.4xn+1,1 第3番目(a=3);yn+1,2=0.4xn,258+0.6xn+1,2 第4番目(a=4);yn+1,4=0.2xn,259+0.8xn+1,3
For example, if j = 4 and f = 256, the output data yn + 1,0 to output data yn + 1, j-1 corresponding to the overlap portion of the (n + 1) th frame are as shown in FIG. It can be represented by the following formula.
1st (a = 1); yn + 1,0 = 0.8xn, 256 + 0.2xn + 1,0 2nd (a = 2); yn + 1,1 = 0.6xn, 257 + 0.4xn + 1 , 1 3rd (a = 3); yn + 1,2 = 0.4xn, 258 + 0.6xn + 1,2 4th (a = 4); yn + 1,4 = 0.2xn, 259 + 0.8xn +1,3

すなわち、オバーラップ部分のデータの順番が進むにつれて、第nフレームの出力データの影響が少なくなり、逆に、第n+1フレームの出力データの影響が大きくなる。これにより、音源が高速に移動した場合であっても、聴感上、音源が自然に移動したように感じられるようにすることができる。なお、クロスフェード処理のためにオーバーラップして生成されるデータのうち、先行フレームのオーバーラップ分データ(例えば第nフレームのj個の前記フィルタ出力データxn,f〜xn,f+j-1)は、次フレーム期間において行なうクロスフェード演算で利用できるようにするため、適宜バッファ記憶しておくものとする。そのためのバッファ記憶領域を、クロスフェード処理部34の内部に有していてもよいし、(「チャンネル数×j」のバッファ領域があればよい)、あるいは、バス2を介してメインメモリMに一旦転送してメインメモリM内でバッファ記憶しておき、次フレーム期間で他のデータと共にフィルタ計算機3の側へバースト転送するようにしてもよい。すなわち、第nフレームのときに求めたクロスフェード処理用(つまりオーバーラップ分)のフィルタ出力データxn,f〜xn,f+j-1は、次の第n+1フレームまで適切にバッファ記憶され、該第n+1フレームの先頭のj個のフィルタ出力データxn+1,0〜xn+1,j-1とクロスフェード合成される。このクロスフェード結果が第n+1フレームの先頭のj個分のフィルタ処理済み(及びクロスフェード処理済み)出力データとなり、それに後続するf−j個のフィルタ出力データxn+1,j〜xn+1,f-1と共に、当該第n+1フレームについての合計f個のフィルタ処理済み(及びクロスフェード処理済み)出力データとして、出力バッファ306(又は307)に送られ、f個の各アドレス場所に足し込まれる。   That is, as the order of data in the overlap portion advances, the influence of the output data of the nth frame decreases, and conversely, the influence of the output data of the (n + 1) th frame increases. Thereby, even if the sound source moves at high speed, it can be felt that the sound source has moved naturally in terms of hearing. Of the data generated by the overlap for the cross-fade process, the data corresponding to the overlap of the preceding frame (for example, the j pieces of filter output data xn, f to xn, f + j-1 of the nth frame) ) Is stored in a buffer as appropriate so that it can be used in the cross-fade calculation performed in the next frame period. A buffer storage area for this purpose may be provided inside the cross-fade processing unit 34 (there should be a buffer area of “number of channels × j”) or in the main memory M via the bus 2. It may be transferred once and stored in the buffer in the main memory M, and burst transferred to the filter computer 3 side together with other data in the next frame period. That is, the filter output data xn, f to xn, f + j-1 for crossfading processing (that is, for overlap) obtained at the nth frame is appropriately buffered and stored until the next n + 1th frame. Crossfade synthesis is performed with the first j pieces of filter output data xn + 1,0 to xn + 1, j-1 of the (n + 1) th frame. This crossfade result is the output data for the first j of the (n + 1) th frame that has been filtered (and crossfade processed), and the subsequent fj filter output data xn + 1, j to xn + 1, Along with f-1, a total of f filtered (and crossfade processed) output data for the (n + 1) th frame is sent to the output buffer 306 (or 307) and added to each of the f address locations. .

以上、説明したように本実施形態によれば、波形データWを所定のサンプル数に分割したフレーム単位で、フィルタ処理を行うために、フィルタのタップ数K以上の波形データを次のフレームで再送するようにしたので、バス2を介してディジタルフィルタ計算機3にデータをバースト転送するにも拘わらず、連続した波形データに対してフィルタ処理を行うことができる。   As described above, according to the present embodiment, in order to perform the filtering process in units of frames obtained by dividing the waveform data W into a predetermined number of samples, waveform data having the number of filter taps K or more is retransmitted in the next frame. Thus, although the data is burst transferred to the digital filter calculator 3 via the bus 2, the filter processing can be performed on the continuous waveform data.

また、ドライバ側で波形データWとHRTF係数データhを記憶保持しておき、これを小分けして必要に応じて各フレーム毎にバス2を介して転送するようにしたので、ディジタルフィルタ計算機3側において、すべての波形データWと時変動するすべてのHRTF係数データhを保持するメモリを予め具備しておく必要がない。さらに、ディジタルフィルタ計算機3側では、フィルタ処理に伴う、積和算を所定のタイミングで実行する通常のフィルタ処理だけを行なえばよいので、音像定位制御用の座標命令を解釈して実行する制御手段を特別に設ける必要がない。このため、例えば、ディジタルフィルタ計算機3を音源装置として、コンピュータの拡張用ボードに収納する場合には、この音源装置つまり拡張用ボードの構成を簡素化し、製造コストを大幅に低減することができる。   Further, the waveform data W and the HRTF coefficient data h are stored and held on the driver side, and are divided and transferred as necessary via the bus 2 for each frame. However, it is not necessary to previously provide a memory for holding all the waveform data W and all the HRTF coefficient data h that fluctuates over time. Further, the digital filter computer 3 only needs to perform normal filter processing for executing product-sum calculation at a predetermined timing, which accompanies the filter processing. Therefore, control means for interpreting and executing coordinate commands for sound image localization control There is no need to provide specially. For this reason, for example, when the digital filter computer 3 is housed in a computer expansion board as a sound source device, the configuration of the sound source device, that is, the expansion board can be simplified, and the manufacturing cost can be greatly reduced.

また、上述した実施形態にあっては、波形データWとHRTF係数データhをフレーム周期毎にバースト転送し、同一フレーム内は、同一のHRTF係数データhを用いてFIRフィルタ処理を行った。この場合、HRTF係数データhはバースト転送周期で更新されることになるので、理論上、音源はバースト転送周期で不連続に移動したことになる。しかし、人の耳では、音源がある程度の速度で不連続に移動しても、連続して移動したように検知される。したがって、上述したようにバースト転送周期(フレーム周期)を、音源が通常の速度で移動した場合に、連続して移動したように感じられるように短い周期に設定することにより、違和感のない音像定位を得ることができる。   In the embodiment described above, the waveform data W and the HRTF coefficient data h are burst-transferred for each frame period, and the FIR filter process is performed using the same HRTF coefficient data h in the same frame. In this case, since the HRTF coefficient data h is updated in the burst transfer cycle, theoretically, the sound source has moved discontinuously in the burst transfer cycle. However, in the human ear, even if the sound source moves discontinuously at a certain speed, it is detected as if it moved continuously. Therefore, as described above, the burst transfer cycle (frame cycle) is set to a short cycle so that when the sound source moves at a normal speed, it is felt that the sound source has moved continuously. Can be obtained.

さらに、上述した実施形態にあっては、バースト転送において、1フレーム分の波形データ(f個)およびFIRフィルタ処理のための再送用の波形データ(k個)に加えて、オバーラップ処理用の波形データ(j個)をバースト転送するようにしたので、j個の波形データについては、隣接するフレームにおいて異なるHRTF係数データを用いたFIRフィルタ処理が行われる。そして、フィルタ処理済のデータにクロスフェードを施すようにしたので、人の耳では音源がより連続して移動したように感じられる。これにより、音源が高速で移動した場合であっても、連続して移動したように感じさせることができる。   Furthermore, in the above-described embodiment, in burst transfer, in addition to waveform data (f pieces) for one frame and waveform data for retransmission (k pieces) for FIR filter processing, waveforms for overlap processing are used. Since the data (j pieces) are burst transferred, the FIR filter processing using different HRTF coefficient data is performed on the j pieces of waveform data in adjacent frames. Since the filtered data is subjected to crossfading, it is felt that the sound source has moved more continuously in the human ear. Thereby, even if the sound source moves at a high speed, it can be felt as if it has moved continuously.

以上、本発明に係わる実施形態を説明したが、本発明は上述した実施形態に限定されるものではなく、以下に述べる各種の変形が可能である。上述した実施形態では、HRTF係数データhをフレーム単位でバースト転送するようにして、単純FIRフィルタ計算機3におけるHRTF係数データhの更新を、フレーム周期で行うようにした。この場合、あるフレームにおけるHRTF係数データhは、当該フレーム期間中のいずれかのタイミングで生成されたものであれば、当該フレームの代表値として取り扱うことができる。   The embodiment according to the present invention has been described above. However, the present invention is not limited to the above-described embodiment, and various modifications described below are possible. In the above-described embodiment, the HRTF coefficient data h is updated in the frame period in the simple FIR filter calculator 3 by burst-transferring the HRTF coefficient data h in units of frames. In this case, if the HRTF coefficient data h in a certain frame is generated at any timing during the frame period, it can be handled as a representative value of the frame.

ところで、HRTF係数データhは、音源の座標Pに基づいて生成されるものであるから、正確には各サンプルタイミング毎に変化している。ここで、フレーム期間の中央付近のタイミングで、当該フレームを代表するHRTF係数データhを生成すると、誤差を最小にすることができ、音源が高速で移動した場合にも、聴感上、音源の移動がより連続的であると感じさせることができる。したがって、HRTF係数データhは、フレーム期間中央付近における音源の座標Pに基づいて生成されたものであることが望ましい。   By the way, since the HRTF coefficient data h is generated based on the coordinates P of the sound source, it accurately changes at each sample timing. Here, if the HRTF coefficient data h representing the frame is generated at a timing near the center of the frame period, the error can be minimized, and even if the sound source moves at high speed, the movement of the sound source is audible. Can be felt more continuous. Therefore, the HRTF coefficient data h is desirably generated based on the coordinates P of the sound source in the vicinity of the center of the frame period.

また、上述した実施形態では、連続した波形データWに対して音像定位の処理を間歇的に行なうために、FIRフィルタのタップ数(つまり1組の係数の数)kに相当するサンプル数の波形データを再送するようにしているが、本発明はこれに限定されるものではない。すなわち、本発明は、一般的なディジタルフィルタにおける新規な間歇的フィルタ処理方式を提案するものである。従って、ディジタルフィルタの使用目的や、処理対象とするディジタルデータの種類を問わず、本発明を適用することができる。また、この場合、フィルタ係数を時変動させずに固定してもよい。そのような場合は、フィルタ係数をバス2を介してバースト転送せずに、ディジタル計算機3の側で予め記憶保持させておくようにしてもよい。また、FIRフィルタに限らず、IIR(無限インパルス応答)フィルタにおいても本発明を適用してもよい。   Further, in the above-described embodiment, in order to intermittently perform the sound image localization processing on the continuous waveform data W, the waveform of the number of samples corresponding to the number of taps of the FIR filter (that is, the number of coefficients in one set) k. Data is retransmitted, but the present invention is not limited to this. That is, the present invention proposes a novel intermittent filter processing method in a general digital filter. Therefore, the present invention can be applied regardless of the purpose of use of the digital filter and the type of digital data to be processed. In this case, the filter coefficient may be fixed without changing with time. In such a case, the filter coefficient may be stored and held in advance on the digital computer 3 side without burst transfer via the bus 2. Further, the present invention may be applied not only to the FIR filter but also to an IIR (infinite impulse response) filter.

要は、入力データをfサンプル毎のフレームに分割し、この入力データをkタップの(つまり、k個の係数を使用する)フィルタに転送して、間歇的にFIRフィルタ処理を行う場合に、一のフレーム期間中に入力データをf+nサンプルだけフィルタに転送し、次のフレーム期間中に一のフレームにおいて転送したf+nサンプルの入力データのうち、後半のnサンプルの入力データが重なるようにn+f個の入力データをフィルタに転送し、n≧kとなるように設定すればよい。この場合には、フィルタへ、そのタップ数k以上の入力データ(n個)が再送されることになるので、処理を連続したものにすることができる。   In short, when the input data is divided into frames for every f samples, this input data is transferred to a k-tap filter (that is, using k coefficients), and FIR filter processing is performed intermittently. Input data is transferred to the filter by f + n samples during one frame period, and n + f pieces of n + f input data of the latter half of the f + n sample input data transferred in one frame during the next frame period are overlapped. Is transferred to the filter and set so that n ≧ k. In this case, the input data (n pieces) having the tap number k or more is retransmitted to the filter, so that the processing can be continued.

また、上述した実施形態においては、クロスフェード処理部34において、クロスフェード処理を行ったが、この処理は必要に応じて適宜省略してもよい。あるいは、フィルタ演算部305の内部にクロスフェード処理部34を設けずに、外部に、つまり、出力バッファ出力側にクロスフェード合成処理部(補間部)を設けるようにしてもよい。その場合は、所定のサンプリング周期に同期したタイミングでクロスフェード(補間)演算が行なわれることになる。   In the above-described embodiment, the cross-fade processing unit 34 performs the cross-fade processing. However, this processing may be omitted as appropriate. Alternatively, the cross-fade processing unit 34 may not be provided inside the filter calculation unit 305, but a cross-fade synthesis processing unit (interpolation unit) may be provided outside, that is, on the output buffer output side. In that case, a cross-fade (interpolation) calculation is performed at a timing synchronized with a predetermined sampling period.

また、上述した実施形態において、フィルタの処理単位であるフレーム期間は、一定のものとして取り扱ったが、これを可変するようにしてもよい。例えば、同時に処理する音数が4個の場合には、1フレームを256サンプルで構成し、同時に処理する音数が2個の場合には、1フレームを128サンプルで構成するといったように、音数に応じて、フレームを構成するサンプル数を可変してもよい。この場合には、音数が少なくなると、バースト転送周期が短くなるので、HRTF係数データhの更新間隔を短くすることができ、音像定位の方向精度を向上させることができる。また、上記実施例では、1フレーム分のデータを1回のバースト転送で送信するようにしているが、1回に限らず、1フレーム分のデータを数回に小分けして、それぞれ一括転送するようにしてもよい。また、上記実施例では、出力バッファ306〜309は、複数チャンネルについてのフィルタ処理済みデータをサンプリング毎に累算してバッファ記憶する構成であるが、これに限らず、各チャンネル別に出力バッファを設け、累算処理を伴わずに、単純に1チャンネルのフィルタ処理済みデータをバッファ記憶するようにしてもよい。また、ディジタルフィルタ計算機3の出力バッファ306〜309からのデータの読み出しは、必ずしも、所定のサンプリング周期に同期して行なわなくてもよい。例えば、ディジタルフィルタ計算機3の出力バッファ306〜309からフィルタ処理済みのデータを高速読み出しして、別途出力装置または利用装置に転送し、これらの出力装置または利用装置の側で、最終的に所定のサンプリング周期に同期してデータが出力されるようになっていてもよい。   In the above-described embodiment, the frame period, which is a processing unit of the filter, is handled as a fixed one, but it may be variable. For example, if the number of sounds to be processed simultaneously is four, one frame is composed of 256 samples, and if the number of sounds to be processed simultaneously is two, one frame is composed of 128 samples. Depending on the number, the number of samples constituting the frame may be varied. In this case, when the number of sounds is reduced, the burst transfer cycle is shortened, so that the update interval of the HRTF coefficient data h can be shortened, and the direction accuracy of sound image localization can be improved. In the above-described embodiment, data for one frame is transmitted by one burst transfer. However, the data is not limited to one time, and the data for one frame is divided into several times and transferred in batches. You may do it. In the above embodiment, the output buffers 306 to 309 are configured to accumulate and store the filtered data for a plurality of channels for each sampling. However, the present invention is not limited to this, and an output buffer is provided for each channel. Instead of accumulating, one channel of filtered data may be simply buffered. Further, reading of data from the output buffers 306 to 309 of the digital filter computer 3 is not necessarily performed in synchronization with a predetermined sampling period. For example, the filtered data is read out from the output buffers 306 to 309 of the digital filter computer 3 at a high speed and transferred separately to an output device or a utilization device. Data may be output in synchronization with the sampling period.

また、上述した実施形態において、ディジタルフィルタ計算機3のタップ数(つまり、1組の係数の数)kは固定のものとして説明したが、これを可変するようにしてもよい。例えば、音数が4音の場合には、上述したようにタップ数kを90に設定し、音数が14音の場合には、タップ数を25に設定するといったように、音数に応じて、タップ数kを可変してもよい。この場合には、音数が少なくなると、FIRフィルタのタップ数kが増加するため、頭部伝達関数HRTFをより忠実に再現するフィルタを構成することができる。一方、音数が多くなった場合には、転送するデータ数を減らすことができるので、1音当たりのバス2の占有時間を減少させて、バス2の奪い合いを回避することができる。   In the above-described embodiment, the number of taps (that is, the number of coefficients in one set) k of the digital filter calculator 3 is described as being fixed. However, this may be varied. For example, when the number of sounds is 4, the tap number k is set to 90 as described above, and when the number of sounds is 14, the tap number is set to 25. Thus, the tap number k may be varied. In this case, when the number of sounds decreases, the number of taps k of the FIR filter increases, so that a filter that more faithfully reproduces the head related transfer function HRTF can be configured. On the other hand, when the number of sounds increases, the number of data to be transferred can be reduced, so that the bus 2 occupying time per sound can be reduced and the bus 2 contention can be avoided.

本発明に係わる音像定位装置の一実施形態である3Dサウンドポジショニングシステムのブロック図である。1 is a block diagram of a 3D sound positioning system which is an embodiment of a sound image localization apparatus according to the present invention. 同実施形態に係わる波形データの一例を示す図である。It is a figure which shows an example of the waveform data concerning the embodiment. 同実施形態に係わるディジタルフィルタ計算機の機能ブロック図である。It is a functional block diagram of the digital filter computer concerning the embodiment. 同実施形態に係わるフィルタ演算部が実行するフィルタ演算アルゴリズムの典型例を示す機能ブロック図である。It is a functional block diagram which shows the typical example of the filter calculation algorithm which the filter calculation part concerning the embodiment performs. 同実施形態において、1音の処理に対応するバースト転送の様子を示した図である。In the same embodiment, it is the figure which showed the mode of the burst transfer corresponding to the process of 1 sound. 同実施形態に係わるクロスフェード処理を説明するための概念図である。It is a conceptual diagram for demonstrating the cross fade process concerning the embodiment. 一般的な3Dサウンドポジショニングシステムの機能ブロック図である。It is a functional block diagram of a general 3D sound positioning system. 図7に示すFIRフィルタF1のブロック図である。It is a block diagram of FIR filter F1 shown in FIG.

符号の説明Explanation of symbols

1…CPU(制御部)、2…バス、3…ディジタルフィルタ計算機(演算部)、34…クロスフェード処理部、W…波形データ(入力データ)、M1…波形バッファメモリ(第1の記憶部)、M2…HRTF係数データメモリ(第2の記憶部)、h…HRTF係数データ(係数データ)、P…座標命令(位置情報)。 DESCRIPTION OF SYMBOLS 1 ... CPU (control part), 2 ... Bus, 3 ... Digital filter computer (arithmetic part), 34 ... Cross fade processing part, W ... Waveform data (input data), M1 ... Waveform buffer memory (1st memory | storage part) , M2 ... HRTF coefficient data memory (second storage unit), h ... HRTF coefficient data (coefficient data), P ... coordinate command (position information).

Claims (2)

フィルタ処理されるべきディジタルデータの複数サンプルと前記フィルタ処理において使用される係数組とを、コンピュータのバスを介して、バースト転送する第1ステップと、
バースト転送されてきた複数サンプルのディジタルデータに対して、所定のサンプリング周期よりも速い処理レートで、バースト転送されてきた前記係数組を使用してフィルタ処理を施す第2ステップと、
フィルタ処理されたディジタルデータをバッファし、前記所定のサンプリング周期に従って出力する第3ステップと
を具備するディジタルフィルタ処理方法。
A first step of burst-transferring a plurality of samples of digital data to be filtered and coefficient sets used in the filtering via a computer bus;
A second step of performing a filtering process on the plurality of samples of digital data that have been burst-transferred using the coefficient set that has been burst-transferred at a processing rate faster than a predetermined sampling period;
And a third step of buffering the filtered digital data and outputting the buffered data according to the predetermined sampling period.
コンピュータのバスに接続されるディジタルフィルタ装置であって、
バスを介して、所定の1フレーム期間における任意の1又は複数の時点で、フィルタ演算処理されるべきディジタルデータの複数サンプルと、前記フィルタ演算処理において使用されるフィルタ係数組とのバースト転送を受けるインターフェース部と、
前記インターフェース部を介して受けた前記ディジタルデータに対して、前記インターフェース部を介して受けた前記フィルタ係数組を使用して所定のフィルタ演算処理を行うフィルタ演算部と、
前記フィルタ演算部の出力をバッファし出力する出力部と
を具備するディジタルフィルタ装置。
A digital filter device connected to a computer bus comprising:
A burst transfer of a plurality of samples of digital data to be filtered and a filter coefficient set used in the filtering operation is received via the bus at any one or a plurality of points in a predetermined one frame period. An interface part;
A filter operation unit that performs a predetermined filter operation process on the digital data received through the interface unit using the filter coefficient group received through the interface unit;
An output unit for buffering and outputting the output of the filter operation unit.
JP2007134323A 1997-10-31 2007-05-21 Digital filter processing method and digital filter apparatus Expired - Fee Related JP4321625B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007134323A JP4321625B2 (en) 1997-10-31 2007-05-21 Digital filter processing method and digital filter apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP30132897 1997-10-31
JP2007134323A JP4321625B2 (en) 1997-10-31 2007-05-21 Digital filter processing method and digital filter apparatus

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP31254998A Division JP4042229B2 (en) 1997-10-31 1998-11-02 Digital filter processing method, digital filter device, recording medium, and sound image localization device

Publications (2)

Publication Number Publication Date
JP2007295591A JP2007295591A (en) 2007-11-08
JP4321625B2 true JP4321625B2 (en) 2009-08-26

Family

ID=38765683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007134323A Expired - Fee Related JP4321625B2 (en) 1997-10-31 2007-05-21 Digital filter processing method and digital filter apparatus

Country Status (1)

Country Link
JP (1) JP4321625B2 (en)

Also Published As

Publication number Publication date
JP2007295591A (en) 2007-11-08

Similar Documents

Publication Publication Date Title
US6487572B2 (en) Digital filtering method and device and sound image localizing device
CN101868984B (en) Apparatus and method for determining a component signal with great accuracy
JP4700071B2 (en) Apparatus and method for simulating a wavefront synthesis system
US20110144783A1 (en) Apparatus and method for controlling a wave field synthesis renderer means with audio objects
JP4547009B2 (en) Apparatus and method for controlling wavefront synthesis rendering means
AU2021233166B2 (en) Apparatus and method for rendering a sound scene using pipeline stages
CN102760437A (en) Audio decoding device of control conversion of real-time audio track
JP4042229B2 (en) Digital filter processing method, digital filter device, recording medium, and sound image localization device
US7813826B2 (en) Apparatus and method for storing audio files
JP4321625B2 (en) Digital filter processing method and digital filter apparatus
JP3991458B2 (en) Musical sound data processing apparatus and computer system
JPH02110597A (en) Address control circuit
JPH09182200A (en) Device and method for controlling sound image
EP4138406B1 (en) Noise cancellation method for audio signal, audio signal processing apparatus, and electronic device
JP2006033551A (en) Sound image fix controller
JP3810110B2 (en) Stereo sound processor using linear prediction coefficient
RU2815296C1 (en) Device and method for rendering audio scene using pipeline cascades
JPH1042398A (en) Surround reproducing method and device
JP4106739B2 (en) Digital signal processing method and digital signal processing apparatus
JP3252426B2 (en) Digital sound recording and playback device
JP2007214815A (en) Out-of-head sound image localization device
JP2542616Y2 (en) Reverberation device
JP5012165B2 (en) Sound playback device
KR20000037594A (en) Method for correcting sound phase according to predetermined position and moving information of pseudo sound source in three dimensional space
JP2002244683A (en) Sound signal processor

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090512

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090525

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120612

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120612

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130612

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140612

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees