(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-18
(45)【発行日】2024-09-27
(54)【発明の名称】ディジタル信号処理装置及びディジタル信号処理装置の制御方法
(51)【国際特許分類】
G10H 1/00 20060101AFI20240919BHJP
G10K 15/12 20060101ALI20240919BHJP
G06F 13/38 20060101ALI20240919BHJP
【FI】
G10H1/00 C
G10K15/12
G06F13/38 310A
(21)【出願番号】P 2020160991
(22)【出願日】2020-09-25
【審査請求日】2023-08-22
(73)【特許権者】
【識別番号】000001410
【氏名又は名称】株式会社河合楽器製作所
(74)【代理人】
【識別番号】100090273
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】岡本 誠司
【審査官】土井 悠生
(56)【参考文献】
【文献】特開2016-177226(JP,A)
【文献】特開2011-197552(JP,A)
【文献】特開2011-007888(JP,A)
【文献】特開平09-244642(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10H 1/00-7/12
G10K 15/00-15/12
G06F 13/38-13/42
(57)【特許請求の範囲】
【請求項1】
オーディオデータを蓄積するための第1のバッファ・メモリと、
バースト長のオーディオデータをバースト転送するDRAMと、
サンプリング周期でオーディオデータを1ワードずつ前記第1のバッファ・メモリに順に書き込み、前記バースト長のバースト転送をするワード数に相当するサンプリング周期数の時間間隔で、前記第1のバッファ・メモリから前記DRAMに前記バースト長のオーディオデータをバースト転送するように制御する制御手段とを有し、
前記制御手段は、前記サンプリング周期でオーディオデータを1ワードずつ前記第1のバッファ・メモリ
に順に書き込み開始
するアドレスに応じて、前記第1のバッファ・メモリから前記DRAMにバースト転送する周期の位相をサンプリング周期単位でずらすことにより、前記オーディオデータにサンプリング周期単位の遅延時間を付与することができることを特徴とするディジタル信号処理装置。
【請求項2】
さらに、オーディオデータを蓄積するための第2のバッファ・メモリを有し、
前記制御手段は、前記バースト長のバースト転送をするワード数に相当するサンプリング周期数の時間間隔で、前記DRAMから前記第2のバッファ・メモリに前記バースト長のオーディオデータをバースト転送するように制御し、前記サンプリング周期で前記第2のバッファ・メモリに蓄積されているオーディオデータを1ワードずつ順に読み出すことを特徴とする請求項1に記載のディジタル信号処理装置。
【請求項3】
前記制御手段は、前記DRAMから前記第2のバッファ・メモリにバースト転送する周期の位相をサンプリング周期単位でずらすことにより、前記オーディオデータにサンプリング周期単位の遅延時間を付与することができることを特徴とする請求項2に記載のディジタル信号処理装置。
【請求項4】
前記DRAMは、SDRAMであることを特徴とする請求項1~3のいずれか1項に記載のディジタル信号処理装置。
【請求項5】
オーディオデータを蓄積するための第1のバッファ・メモリと、
バースト長のオーディオデータをバースト転送するDRAMとを有するディジタル信号処理装置の制御方法であって、
サンプリング周期でオーディオデータを1ワードずつ前記第1のバッファ・メモリに順に書き込むステップと、
前記バースト長のバースト転送をするワード数に相当するサンプリング周期数の時間間隔で、前記第1のバッファ・メモリから前記DRAMに前記バースト長のオーディオデータをバースト転送するように制御するステップとを有し、
前記サンプリング周期でオーディオデータを1ワードずつ前記第1のバッファ・メモリ
に順に書き込み開始
するアドレスに応じて、前記第1のバッファ・メモリから前記DRAMにバースト転送する周期の位相をサンプリング周期単位でずらすことにより、前記オーディオデータにサンプリング周期単位の遅延時間を付与することができることを特徴とするディジタル信号処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディジタル信号処理装置及びディジタル信号処理装置の制御方法に関する。
【背景技術】
【0002】
特許文献1には、ディジタル信号処理装置内で仮想シフトを行うためのアドレス回路が記載されている。アドレス回路は、インデックスレジスタに補助的なインデックスレジスタを組合せ、補助的なインデックスレジスタにインデックスレジスタの下位と同じ値を設定し、上位アドレスをインデックスレジスタより、下位アドレスを補助的なインデックスレジスタより取り出して、通常のインデックス修飾を行い、補助的なインデックスレジスタにインデックスレジスタ下位とポインタを加えた値を設定して仮想シフトのためのアドレス修飾を行う。
【0003】
特許文献2には、第1のカウンタと、第2のカウンタとを有するアドレス発生回路が記載されている。クリア手段は、第1のカウンタに対する計数制御信号により第2のカウンタの内容を選択的にゼロにクリアする。加算器は、第1のカウンタの出力と第2のカウンタの出力とを加算する。
【0004】
特許文献3には、波形信号処理部及びメモリアクセス部を有する音波形データ用ディジタル信号処理装置が記載されている。波形信号処理部は、音波形データにエフェクトを加えるための波形信号処理を、M個(Mは2以上の整数)の時分割波形信号処理によって行う。メモリアクセス部は、波形信号処理の過程において音波形データを遅延させるためにK個(KはM以下の2以上の整数)の時分割波形信号処理に対応するK個のバンクを有して外付けされるDRAMに対し、K個のバンクにK個の互いにずれたタイミングでアクセス開始を可能とするものであり、K個の時分割波形信号処理の1つから書き込み又は読み出しの要求を受けたとき、DRAMに対し、バンクにアクセス開始可能なタイミングで、対応するバンクに対する書き込み又は読み出しのための制御信号を出力することにより、音波形データの書き込み又は読み出しを行う。
【先行技術文献】
【特許文献】
【0005】
【文献】特開昭58-2935号公報
【文献】特開昭62-57067号公報
【文献】特開2003-108122号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献3では、音波形データにエフェクトを加えるため、音波形データを遅延させる。高品質なエフェクトを加えるためには、遅延時間が異なる多数の遅延信号が必要である。
【0007】
本発明の目的は、サンプリング周期に対してバースト長の倍数の遅延時間を有するオーディオデータの他、サンプリング周期単位の遅延時間を有するオーディオデータを生成することができるようにすることである。
【課題を解決するための手段】
【0008】
本発明のディジタル信号処理装置は、オーディオデータを蓄積するための第1のバッファ・メモリと、バースト長のオーディオデータをバースト転送するDRAMと、サンプリング周期でオーディオデータを1ワードずつ前記第1のバッファ・メモリに順に書き込み、前記バースト長のバースト転送をするワード数に相当するサンプリング周期数の時間間隔で、前記第1のバッファ・メモリから前記DRAMに前記バースト長のオーディオデータをバースト転送するように制御する制御手段とを有し、前記制御手段は、前記サンプリング周期でオーディオデータを1ワードずつ前記第1のバッファ・メモリに順に書き込み開始するアドレスに応じて、前記第1のバッファ・メモリから前記DRAMにバースト転送する周期の位相をサンプリング周期単位でずらすことにより、前記オーディオデータにサンプリング周期単位の遅延時間を付与することができる。
【0009】
本発明のディジタル信号処理装置の制御方法は、オーディオデータを蓄積するための第1のバッファ・メモリと、バースト長のオーディオデータをバースト転送するDRAMとを有するディジタル信号処理装置の制御方法であって、サンプリング周期でオーディオデータを1ワードずつ前記第1のバッファ・メモリに順に書き込むステップと、前記バースト長のバースト転送をするワード数に相当するサンプリング周期数の時間間隔で、前記第1のバッファ・メモリから前記DRAMに前記バースト長のオーディオデータをバースト転送するように制御するステップとを有し、前記サンプリング周期でオーディオデータを1ワードずつ前記第1のバッファ・メモリに順に書き込み開始するアドレスに応じて、前記第1のバッファ・メモリから前記DRAMにバースト転送する周期の位相をサンプリング周期単位でずらすことにより、前記オーディオデータにサンプリング周期単位の遅延時間を付与することができる。
【発明の効果】
【0010】
本発明によれば、サンプリング周期に対してバースト長の倍数の遅延時間を有するオーディオデータの他、サンプリング周期単位の遅延時間を有するオーディオデータを生成することができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、本実施形態によるディジタル信号処理装置の構成例を示す図である。
【
図2】
図2は、アナログ/ディジタルコンバータのサンプリング周期を示す図である。
【
図3】
図3(A)及び(B)は、バッファ・メモリからSDRAMへのバースト転送を示す図である。
【
図4】
図4(A)及び(B)は、SDRAMからバッファ・メモリへのバースト転送を示す図である。
【発明を実施するための形態】
【0012】
図1は、本実施形態によるディジタル信号処理装置100の構成例を示す図である。ディジタル信号処理装置100は、例えば、リバーブを実現するエフェクト装置である。原音が発生すると、原音の直接音と遅延音が合成されて、人間の耳に到達する。直接音は、原音が人間に耳に直接到達する音である。遅延音は、原音が様々な物体に反射することにより生成される遅延時間が異なる複数の遅延音である。ディジタル信号処理装置100は、原音のオーディオデータに対して、遅延時間が異なる複数の遅延信号を生成し、原音のオーディオデータと複数の遅延信号を合成することにより、リバーブを実現する。高品質なリバーブを実現するためには、遅延時間が異なる多数の遅延信号が必要である。
【0013】
ディジタル信号処理装置100は、CPU101と、プログラムROM102と、ワークRAM103と、バス104と、アナログ/ディジタルコンバータ105と、DSP106と、ディジタル/アナログコンバータ108と、バス109と、SDRAM110と、SDRAM111とを有する。DSP106は、複数のバッファ・メモリ107を有する。以下、ディジタル信号処理装置100の制御方法を説明する。
【0014】
複数のバッファ・メモリ107の各々は、バス109に対して、32ビット(1ワード)幅のオーディオデータを入出力可能である。複数のバッファ・メモリ107は、例えば、SRAM(静的ランダムアクセスメモリ)であり、オーディオデータを蓄積することができる。
【0015】
SDRAM110及び111は、同期式動的ランダムアクセスメモリであり、DRAM(動的ランダムアクセスメモリ)の一種である。SDRAM110及び111は、例えば、DDR3のSDRAMである。
【0016】
SDRAM110は、バス109に対して、16ビット(1ワード)のオーディオデータを入出力可能である。SDRAM110は、バス109に対して、16ビット(1ワード)のオーディオデータを入出力可能である。
【0017】
複数のバッファ・メモリ107の各々は、バス109を介して、SDRAM110及び111に対して、32ビット(1ワード)のオーディオデータを入出力することができる。SDRAM110が入出力する16ビットのオーディオデータは、バッファ・メモリ107が入出力する32ビットのオーディオデータのうちの上位16ビットのオーディオデータである。SDRAM111が入出力する16ビットのオーディオデータは、バッファ・メモリ107が入出力する32ビットのオーディオデータのうちの下位16ビットのオーディオデータである。
【0018】
SDRAM110及び111は、バス109を介して、複数のバッファ・メモリ107の各々に対して、2以上であるバースト長(第1の数)のワード数のオーディオデータをバースト転送する。すなわち、SDRAM110及び111は、バス109を介して、複数のバッファ・メモリ107の各々に対して、1つのアドレス情報を基に、バースト長のワード数のオーディオデータを連続して高速に転送する。バースト長は、例えば、4ワード又は8ワードである。以下、バースト長が8ワードである場合を例に説明する。
【0019】
CPU101は、中央処理ユニットである。プログラムROM(リードオンリーメモリ)102は、プログラムを記憶する。ワークRAM(ランダムアクセスメモリ)103は、CPU101のワーク領域として機能する。CPU101は、プログラムROM102に記憶されているプログラムをワークRAM103に展開し、ワークRAM103に展開されたプログラムを実行することにより、DSP106を制御する。DSP106は、ディジタルシグナルプロセッサであり、制御部の一種である。
【0020】
アナログ/ディジタルコンバータ105は、マイク等から原音のアナログのオーディオ信号を入力し、サンプリング周期で、アナログのオーディオ信号をディジタルの1ワード(32ビット)のオーディオデータに変換する。オーディオデータは、楽音データ又は音声データである。
【0021】
DSP106は、サンプリング周期で、アナログ/ディジタルコンバータ105により変換されたディジタルのオーディオデータを複数のバッファ・メモリ107に1ワードずつ順に書き込む。なお、DSP106は、アナログ/ディジタルコンバータ105の代わりに、楽音発生装置又はオーディオ受信装置等からディジタルのオーディオデータを入力してもよい。
【0022】
次に、DSP106は、複数のバッファ・メモリ107の各々からSDRAM110及び111にバースト長のワード数(8ワード)のオーディオデータをバースト転送するように制御する。DSP106は、SDRAM110及び111のライトポインタが示すアドレスに対して、バースト長のワード数(8ワード)のオーディオデータを書き込む。
【0023】
次に、DSP106は、SDRAM110及び111から複数のバッファ・メモリ107の各々にバースト長のワード数(8ワード)のオーディオデータをバースト転送するように制御する。この際、DSP106は、SDRAM110及び111のリードポインタが示すアドレスから、バースト長のワード数(8ワード)のオーディオデータを読み出し、バースト転送するように制御する。DSP106は、バースト転送により、バースト長のワード数(8ワード)のオーディオデータをバッファ・メモリ107に書き込む。
【0024】
SDRAM110及び111のライトポインタが示すアドレスとリードポインタが示すアドレスとの差が、原音に対する遅延信号の遅延時間に対応する。
【0025】
SDRAM110及び111の代わりに、SRAMを用いて、遅延信号を生成することも可能であるが、遅延時間が長い遅延信号を生成するためには、多数のSRAMが必要になる。SRAMは、SDRAM110及び111に比べ、高価であるデメリットがある。そこで、本実施形態では、SDRAM110及び111を用いて、遅延信号を生成可能にすることにより、コストを低減することができる。また、SDRAM110及び111のバースト転送を用いることにより、リアルタイムで多数の遅延信号を高速に生成することができる。
【0026】
次に、DSP106は、サンプリング周期で、複数のバッファ・メモリ107の各々に蓄積されているオーディオデータを1ワードずつ順に読み出すことにより、原音に対する複数の遅延信号を生成する。バッファ・メモリ107の読み出しタイミングは、原音に対する遅延信号の遅延時間に対応する。
【0027】
次に、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと、上記の複数の遅延信号とを合成し、合成後のオーディオデータをディジタル/アナログコンバータ108に出力する。なお、DSP106が必ずしも合成しなくてもよく、DSP106の外部の装置が合成してもよい。
【0028】
ディジタル/アナログコンバータ108は、サンプリング周期で、ディジタルの1ワード(32ビット)のオーディオデータをアナログのオーディオ信号に変換し、アナログのオーディオ信号をオーディオシステムに出力する。オーディオシステムは、アンプ及びスピーカを有し、アンプによりオーディオ信号を増幅し、増幅したオーディオ信号をスピーカにより発音する。これにより、原音に対してリバーブの効果が付与された音が発音される。
【0029】
図2は、アナログ/ディジタルコンバータ105のサンプリング周期T0~T7を示す図である。アナログ/ディジタルコンバータ105は、サンプリング周期T0~T7の各々で、アナログのオーディオ信号をディジタルの1ワードのオーディオデータに変換する。SDRAM110及び111は、バースト転送周期TTで、バッファ・メモリ107に対して、バースト長のワード数(8ワード)のオーディオデータをバースト転送する。バースト転送周期TTは、連続するバースト長の数のサンプリング周期T0~T7の合計周期と同じであり、サンプリング周期T0~T7を含む。
【0030】
SDRAM110及び111は、サンプリング周期T0~T7の各々当たり、複数のバッファ・メモリ107に対して、最大1024回のバースト転送が可能である。すなわち、SDRAM110及び111は、バースト転送周期TT当たり、複数のバッファ・メモリ107に対して、最大1024回×8=8192回のバースト転送が可能である。1個の遅延モジュールは、SDRAM110及び111の1回の書き込みと1回の読み出しで実現されるので、遅延モジュール数は、8192回/2=4096個である。
【0031】
DSP106は、8192個のバッファ・メモリ107を有する。SDRAM110及び111は、バースト転送周期TTで、最大8192個のバッファ・メモリ107に対して、バースト転送が可能である。
【0032】
DSP106は、サンプリング周期T0~T7の各々当たり、1024個のバッファ・メモリ107に対して、オーディオデータを1ワードずつ書き込む。そして、DSP106は、サンプリング周期T0~T7の各々当たり、最大1024個のバッファ・メモリ107に対して、バースト転送が可能である。
【0033】
図3(A)及び(B)は、バッファ・メモリ107からSDRAM110及び111へのバースト転送を示す図である。
【0034】
図3(A)は、第1のバッファ・メモリ107のアクセス方法を示す図である。
図3(A)の第1のバッファ・メモリ107は、8192個のバッファ・メモリ107のうちの最大1024個のバッファ・メモリ107である。第1のバッファ・メモリ107は、8ワードのオーディオデータを蓄積可能なリングバッファである。
【0035】
サンプリング周期T0では、DSP106は、アナログ/ディジタルコンバータ105により変換された1ワードのオーディオデータW(0)を、第1のバッファ・メモリ107の第1のアドレスに書き込む。
【0036】
サンプリング周期T1は、サンプリング周期T0に対して、1サンプリング周期後のサンプリング周期である。サンプリング周期T1では、DSP106は、アナログ/ディジタルコンバータ105により変換された1ワードのオーディオデータW(1)を、第1のバッファ・メモリ107の第2のアドレスに書き込む。
【0037】
サンプリング周期T2は、サンプリング周期T0に対して、2サンプリング周期後のサンプリング周期である。サンプリング周期T2では、DSP106は、アナログ/ディジタルコンバータ105により変換された1ワードのオーディオデータW(2)を、第1のバッファ・メモリ107の第3のアドレスに書き込む。
【0038】
同様に、サンプリング周期T3~T6では、DSP106は、アナログ/ディジタルコンバータ105により変換された1ワードのオーディオデータW(3)~W(6)を、第1のバッファ・メモリ107の第4~第7のアドレスにそれぞれ書き込む。
【0039】
サンプリング周期T7は、サンプリング周期T0に対して、7サンプリング周期後のサンプリング周期である。サンプリング周期T7では、DSP106は、アナログ/ディジタルコンバータ105により変換された1ワードのオーディオデータW(7)を、第1のバッファ・メモリ107の第8のアドレスに書き込む。
【0040】
DSP106は、サンプリング周期T7で、最大1024個の第1のバッファ・メモリ107に蓄積されている8ワードのオーディオデータW(0)~W(7)をSDRAM110及び111にバースト転送し、8ワードのオーディオデータW(0)~W(7)をSDRAM110及び111に書き込む。
【0041】
サンプリング周期T8(T0)は、サンプリング周期T0に対して、8サンプリング周期後のサンプリング周期である。サンプリング周期T8(T0)では、DSP106は、アナログ/ディジタルコンバータ105により変換された1ワードのオーディオデータW(8)を、第1のバッファ・メモリ107の第1のアドレスに書き込む(上書きする)。
【0042】
同様に、サンプリング周期T9~T15では、DSP106は、アナログ/ディジタルコンバータ105により変換された1ワードのオーディオデータW(9)~W(15)を、第1のバッファ・メモリ107の第2~第8のアドレスにそれぞれ書き込む(上書きする)。
【0043】
その後、DSP106は、サンプリング周期T15で、最大1024個の第1のバッファ・メモリ107に蓄積されている8ワードのオーディオデータW(8)~W(15)をSDRAM110及び111にバースト転送し、8ワードのオーディオデータW(8)~W(15)をSDRAM110及び111に書き込む。
【0044】
以下、同様に、DSP106は、バースト転送周期TTで、最大1024個の第1のバッファ・メモリ107に蓄積されているオーディオデータをSDRAM110及び111に8ワード単位でバースト転送する。DSP106は、バースト長のバースト転送をするワード数(8ワード)に相当する8サンプリング周期数の時間間隔で、第1のバッファ・メモリ107からSDRAM110及び111にバースト長のオーディオデータをバースト転送するように制御する。
【0045】
図3(B)は、第2のバッファ・メモリ107のアクセス方法を示す図である。
図3(B)の第2のバッファ・メモリ107は、
図3(A)の第1のバッファ・メモリ107とは異なるバッファ・メモリであり、8192個のバッファ・メモリ107のうちの最大1024個のバッファ・メモリ107である。第2のバッファ・メモリ107は、8ワードのオーディオデータを蓄積可能なリングバッファである。
【0046】
サンプリング周期T0では、DSP106は、アナログ/ディジタルコンバータ105により変換された1ワードのオーディオデータW(0)を、第2のバッファ・メモリ107の第8のアドレスに書き込む。
【0047】
サンプリング周期T1では、DSP106は、アナログ/ディジタルコンバータ105により変換された1ワードのオーディオデータW(1)を、第2のバッファ・メモリ107の第1のアドレスに書き込む。
【0048】
サンプリング周期T2では、DSP106は、アナログ/ディジタルコンバータ105により変換された1ワードのオーディオデータW(2)を、第2のバッファ・メモリ107の第2のアドレスに書き込む。
【0049】
同様に、サンプリング周期T3~T6では、DSP106は、アナログ/ディジタルコンバータ105により変換された1ワードのオーディオデータW(3)~W(6)を、第2のバッファ・メモリ107の第3~第6のアドレスにそれぞれ書き込む。
【0050】
サンプリング周期T7では、DSP106は、アナログ/ディジタルコンバータ105により変換された1ワードのオーディオデータW(7)を、第2のバッファ・メモリ107の第7のアドレスに書き込む。
【0051】
サンプリング周期T8(T0)では、DSP106は、アナログ/ディジタルコンバータ105により変換された1ワードのオーディオデータW(8)を、第2のバッファ・メモリ107の第8のアドレスに書き込む(上書きする)。
【0052】
DSP106は、サンプリング周期T8(T0)で、最大1024個の第2のバッファ・メモリ107に蓄積されている8ワードのオーディオデータW(1)~W(8)をSDRAM110及び111にバースト転送し、8ワードのオーディオデータW(1)~W(8)をSDRAM110及び111に書き込む。
【0053】
同様に、サンプリング周期T9~T16では、DSP106は、アナログ/ディジタルコンバータ105により変換された1ワードのオーディオデータW(9)~W(16)を、第2のバッファ・メモリ107の第1~第8のアドレスにそれぞれ書き込む(上書きする)。
【0054】
DSP106は、サンプリング周期T16(T0)で、最大1024個の第2のバッファ・メモリ107に蓄積されている8ワードのオーディオデータW(9)~W(16)をSDRAM110及び111にバースト転送し、8ワードのオーディオデータW(9)~W(16)をSDRAM110及び111に書き込む。
【0055】
以下、同様に、DSP106は、バースト転送周期TTで、最大1024個の第2のバッファ・メモリ107に蓄積されているオーディオデータをSDRAM110及び111に8ワード単位でバースト転送する。DSP106は、バースト長のバースト転送をするワード数(8ワード)に相当する8サンプリング周期数の時間間隔で、第2のバッファ・メモリ107からSDRAM110及び111にバースト長のオーディオデータをバースト転送するように制御する。
【0056】
また、DSP106は、8192個のバッファ・メモリ107のうちの他の最大1024個のバッファ・メモリ107の第7のアドレスからオーディオデータW(0)の書き込みを開始し、サンプリング周期T9(T1)で、8ワードのオーディオデータW(2)~W(9)をSDRAM110及び111にバースト転送する。
【0057】
また、DSP106は、8192個のバッファ・メモリ107のうちのさらに他の最大1024個のバッファ・メモリ107の第6のアドレスからオーディオデータW(0)の書き込みを開始し、サンプリング周期T10(T2)で、8ワードのオーディオデータW(3)~W(10)をSDRAM110及び111にバースト転送する。
【0058】
また、DSP106は、8192個のバッファ・メモリ107のうちのさらに他の最大1024個のバッファ・メモリ107の第5のアドレスからオーディオデータW(0)の書き込みを開始し、サンプリング周期T11(T3)で、8ワードのオーディオデータW(4)~W(11)をSDRAM110及び111にバースト転送する。
【0059】
また、DSP106は、8192個のバッファ・メモリ107のうちのさらに他の最大1024個のバッファ・メモリ107の第4のアドレスからオーディオデータW(0)の書き込みを開始し、サンプリング周期T12(T4)で、8ワードのオーディオデータW(5)~W(12)をSDRAM110及び111にバースト転送する。
【0060】
また、DSP106は、8192個のバッファ・メモリ107のうちのさらに他の最大1024個のバッファ・メモリ107の第3のアドレスからオーディオデータW(0)の書き込みを開始し、サンプリング周期T13(T5)で、8ワードのオーディオデータW(6)~W(13)をSDRAM110及び111にバースト転送する。
【0061】
また、DSP106は、8192個のバッファ・メモリ107のうちのさらに他の最大1024個のバッファ・メモリ107の第2のアドレスからオーディオデータW(0)の書き込みを開始し、サンプリング周期T14(T6)で、8ワードのオーディオデータW(7)~W(14)をSDRAM110及び111にバースト転送する。
【0062】
以上のように、DSP106は、バースト長の数(第1の数)の連続するサンプリング周期T0~T7のうちのサンプリング周期T7において、
図3(A)の第1のバッファ・メモリとSDRAM110,111との間でバースト長の数のワード数のオーディオデータをバースト転送するように制御する。また、DSP106は、バースト長の数の連続するサンプリング周期T0~T7のうちのサンプリング周期T7とは異なるサンプリング周期T0(T8)において、
図3(B)の第2のバッファ・メモリ107とSDRAM110,111との間でバースト長の数のワード数のオーディオデータをバースト転送するように制御する。
【0063】
DSP106は、サンプリング周期でオーディオデータを1ワードずつバッファ・メモリ107の任意のアドレスから順に書き込み開始し、バッファ・メモリ107からSDRAM110及び111にバースト転送する周期の位相をサンプリング周期単位でずらすことにより、オーディオデータにサンプリング周期単位の遅延時間を付与することができる。
【0064】
図4(A)及び(B)は、SDRAM110及び111からバッファ・メモリ107へのバースト転送を示す図である。
【0065】
図4(A)は、第3のバッファ・メモリ107のアクセス方法を示す図である。
図4(A)の第3のバッファ・メモリ107は、
図3(A)の第1のバッファ・メモリ107及び
図3(B)の第2のバッファ・メモリ107とは異なるバッファ・メモリであり、8192個のバッファ・メモリ107のうちの最大1024個のバッファ・メモリ107である。第3のバッファ・メモリ107は、8ワードのオーディオデータを蓄積可能なリングバッファである。
【0066】
サンプリング周期T0では、DSP106は、
図3(A)又は(B)等で書き込まれた8ワードのオーディオデータをSDRAM110及び111のリードポインタが示すアドレスから読み出す。例えば、DSP106は、
図3(A)で書き込まれた8ワードのオーディオデータW(0)~W(7)をSDRAM110及び111のリードポインタが示すアドレスから読み出す。SDRAM110及び111のライトポインタが示すアドレスとリードポインタが示すアドレスとの差が、原音に対する遅延信号の遅延時間に対応する。そして、DSP106は、SDRAM110及び111から第3のバッファ・メモリ107に8ワードのオーディオデータW(0)~W(7)をバースト転送し、8ワードのオーディオデータW(0)~W(7)を第3のバッファ・メモリ107に書き込む。
【0067】
サンプリング周期T0では、DSP106は、第3のバッファ・メモリ107の第1のアドレスに蓄積されている1ワードのオーディオデータW(0)を読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0068】
サンプリング周期T1では、DSP106は、第3のバッファ・メモリ107の第2のアドレスに蓄積されている1ワードのオーディオデータW(1)を読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0069】
サンプリング周期T2では、DSP106は、第3のバッファ・メモリ107の第3のアドレスに蓄積されている1ワードのオーディオデータW(2)を読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0070】
同様に、サンプリング周期T3~T6では、DSP106は、第3のバッファ・メモリ107の第4~第7のアドレスに蓄積されているオーディオデータW(3)~W(6)を読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0071】
サンプリング周期T7では、DSP106は、第3のバッファ・メモリ107の第8のアドレスに蓄積されている1ワードのオーディオデータW(7)を読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0072】
同様に、サンプリング周期T8~T15では、DSP106は、SDRAM110及び111に書き込まれたオーディオデータW(8)~W(15)を第3のバッファ・メモリ107に書き込み、オーディオデータW(8)~W(15)を順に読み出す。以下、DSP106は、同様の処理を繰り返す。
【0073】
以上のように、DSP106は、バースト長のバースト転送をするワード数(8ワード)に相当する8サンプリング周期数の時間間隔で、SDRAM110及び111から第3のバッファ・メモリ107にバースト長のオーディオデータをバースト転送するように制御し、サンプリング周期で第3のバッファ・メモリ107に蓄積されているオーディオデータを1ワードずつ順に読み出す。
【0074】
図4(B)は、第4のバッファ・メモリ107のアクセス方法を示す図である。
図4(B)の第4のバッファ・メモリ107は、第1~第3のバッファ・メモリ107とは異なるバッファ・メモリであり、8192個のバッファ・メモリ107のうちの最大1024個のバッファ・メモリ107である。第4のバッファ・メモリ107は、8ワードのオーディオデータを蓄積可能なリングバッファである。
【0075】
サンプリング周期T1では、DSP106は、
図3(A)又は(B)等で書き込まれた8ワードのオーディオデータをSDRAM110及び111のリードポインタが示すアドレスから読み出す。例えば、DSP106は、
図3(A)で書き込まれた8ワードのオーディオデータW(0)~W(7)をSDRAM110及び111のリードポインタが示すアドレスから読み出す。そして、DSP106は、SDRAM110及び111から第4のバッファ・メモリ107に8ワードのオーディオデータW(0)~W(7)をバースト転送し、8ワードのオーディオデータW(0)~W(7)を第4のバッファ・メモリ107に書き込む。
【0076】
サンプリング周期T1では、DSP106は、第4のバッファ・メモリ107の第1のアドレスに蓄積されている1ワードのオーディオデータW(0)を読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0077】
サンプリング周期T2では、DSP106は、第4のバッファ・メモリ107の第2のアドレスに蓄積されている1ワードのオーディオデータW(1)を読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0078】
サンプリング周期T3では、DSP106は、第4のバッファ・メモリ107の第3のアドレスに蓄積されている1ワードのオーディオデータW(2)を読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0079】
同様に、サンプリング周期T4~T7では、DSP106は、第4のバッファ・メモリ107の第4~第7のアドレスに蓄積されているオーディオデータW(3)~W(6)を読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0080】
サンプリング周期T8(T0)では、DSP106は、第4のバッファ・メモリ107の第8のアドレスに蓄積されている1ワードのオーディオデータW(7)を読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0081】
同様に、サンプリング周期T9~T16では、DSP106は、SDRAM110及び111に書き込まれたオーディオデータW(8)~W(15)を第4のバッファ・メモリ107に書き込み、オーディオデータW(8)~W(15)を順に読み出す。以下、DSP106は、同様の処理を繰り返す。
【0082】
DSP106は、バースト長のバースト転送をするワード数(8ワード)に相当する8サンプリング周期数の時間間隔で、SDRAM110及び111から第4のバッファ・メモリ107にバースト長のオーディオデータをバースト転送するように制御し、サンプリング周期で第4のバッファ・メモリ107に蓄積されているオーディオデータを1ワードずつ順に読み出す。
【0083】
以上のように、DSP106は、バースト長の数(第1の数)の連続するサンプリング周期T0~T7のうちのサンプリング周期T0において、
図4(A)の第3のバッファ・メモリとSDRAM110,111との間でバースト長の数のワード数のオーディオデータをバースト転送するように制御する。また、DSP106は、バースト長の数の連続するサンプリング周期T0~T7のうちのサンプリング周期T0とは異なるサンプリング周期T1において、
図4(B)の第4のバッファ・メモリ107とSDRAM110,111との間でバースト長の数のワード数のオーディオデータをバースト転送するように制御する。
【0084】
DSP106は、SDRAM110及び111からバッファ・メモリ107にバースト転送する周期の位相をサンプリング周期単位でずらすことにより、オーディオデータにサンプリング周期単位の遅延時間を付与することができる。
【0085】
SDRAM110及び111は、サンプリング周期T0~T7の各々で、9192個のバッファ・メモリ107のうちの1024個のバッファ・メモリ107に対して、バースト転送により、オーディオデータを書き込み又は読み出しを行うことができる。
【0086】
図3(A)及び(B)のように、DSP106は、サンプリング周期T0~T7のすべてで、バッファ・メモリ107からSDRAM110及び111にバースト転送することができる。また、
図4(A)及び(B)のように、DSP106は、サンプリング周期T0~T7のすべてで、SDRAM110及び111からバッファ・メモリ107にバースト転送することができる。
【0087】
これにより、DSP106は、サンプリング周期の8の倍数の遅延時間を有する遅延信号だけでなく、サンプリング周期単位の遅延時間を有する遅延信号を生成することができる。
【0088】
DSP106は、
図3(A)のようにサンプリング周期T0でバッファ・メモリ107に書き込んだオーディオデータW(0)を、
図4(A)のようにサンプリング周期T0でバッファ・メモリ107から読み出すと、サンプリング周期の8の倍数の遅延時間を有する遅延信号を生成することができる。
【0089】
また、DSP106は、
図3(A)のようにサンプリング周期T0でバッファ・メモリ107に書き込んだオーディオデータW(0)を、
図4(B)のようにサンプリング周期T1でバッファ・メモリ107から読み出すと、(サンプリング周期の8の倍数)+(サンプリング周期)×1の遅延時間を有する遅延信号を生成することができる。
【0090】
また、DSP106は、
図3(A)のようにサンプリング周期T0でバッファ・メモリ107に書き込んだオーディオデータW(0)を、サンプリング周期T2でバッファ・メモリ107から読み出すと、(サンプリング周期の8の倍数)+(サンプリング周期)×2の遅延時間を有する遅延信号を生成することができる。
【0091】
同様に、DSP106は、
図3(A)のようにサンプリング周期T0でバッファ・メモリ107に書き込んだオーディオデータW(0)を、サンプリング周期T3~T7でバッファ・メモリ107から読み出すと、(サンプリング周期の8の倍数)+(サンプリング周期)×3~(サンプリング周期の8の倍数)+(サンプリング周期)×7の遅延時間を有する遅延信号を生成することができる。
【0092】
また、DSP106は、サンプリング周期T1でバッファ・メモリ107に書き込んだオーディオデータを、サンプリング周期T0でバッファ・メモリ107から読み出すと、(サンプリング周期の8の倍数)-(サンプリング周期)×1の遅延時間を有する遅延信号を生成することができる。
【0093】
以上のように、DSP106は、9192個のバッファ・メモリ107のバッファ・メモリ107を用い、サンプリング周期T0~T7のすべてで、SDRAM110及び111のバースト転送を可能にする。これにより、DSP106は、遅延時間が異なる多数の遅延信号を生成し、原音のオーディオデータと多数の遅延信号を合成することにより、高品質のリバーブを実現することができる。
【0094】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0095】
100 ディジタル信号処理装置
101 CPU
102 プログラムROM
103 ワークRAM
104 バス
105 アナログ/ディジタルコンバータ
106 DSP
107 バッファ・メモリ
108 ディジタル/アナログコンバータ
109 バス
110,111 SDRAM