(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-08
(45)【発行日】2024-11-18
(54)【発明の名称】ディジタル信号処理装置及びディジタル信号処理装置の制御方法
(51)【国際特許分類】
G10H 1/00 20060101AFI20241111BHJP
G10K 15/12 20060101ALI20241111BHJP
G06F 13/38 20060101ALI20241111BHJP
【FI】
G10H1/00 C
G10K15/12
G06F13/38 310A
(21)【出願番号】P 2020160987
(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】
バースト長のオーディオデータをバースト転送するDRAMと、
前記バースト長の2倍のオーディオデータを蓄積可能な第1のバッファ・メモリと、
サンプリング周期でオーディオデータを1ワードずつ前記第1のバッファ・メモリの任意のアドレスから順に書き込み開始し、前記第1のバッファ・メモリの前半エリアの前記バースト長のオーディオデータと前記第1のバッファ・メモリの後半エリアの前記バースト長のオーディオデータとを交互に前記DRAMにバースト転送するように制御する制御手段と、
仮想シフトポインターを用いた遅延エフェクト実現手段を有し、
前記制御手段は、前記第1のバッファ・メモリの後半エリアにオーディオデータを1ワードずつ順に書き込んでいる間に、前記第1のバッファ・メモリの前半エリアの前記バースト長のオーディオデータを前記DRAMにバースト転送するように制御し、前記第1のバッファ・メモリの前半エリアにオーディオデータを1ワードずつ順に書き込んでいる間に、前記第1のバッファ・メモリの後半エリアの前記バースト長のオーディオデータを前記DRAMにバースト転送するように制御する上で、
前記第1のバッファ・メモリにオーディオデータを書き込
み開始するアドレスによって、バースト長未満の遅延長を制御することを特徴とするディジタル信号処理装置。
【請求項2】
さらに、前記バースト長の2倍のオーディオデータを蓄積可能な第2のバッファ・メモリを有し、
前記制御手段は、前記DRAMから前記第2のバッファ・メモリの前半エリアへの前記バースト長のオーディオデータのバースト転送と、前記DRAMから前記第2のバッファ・メモリの後半エリアへの前記バースト長のオーディオデータのバースト転送とを交互に行うように制御し、前記バースト転送のサンプリング周期に対して任意の数のサンプリング周期後のサンプリング周期から、前記サンプリング周期で、前記第2のバッファ・メモリに転送されたオーディオデータを1ワードずつ順に読み出し開始し、
前記制御手段は、前記第2のバッファ・メモリの後半エリアからオーディオデータを1ワードずつ順に読み出している間に、前記DRAMから前記第2のバッファ・メモリの前半エリアに前記バースト長のオーディオデータをバースト転送するように制御し、前記第2のバッファ・メモリの前半エリアからオーディオデータを1ワードずつ順に読み出している間に、前記DRAMから前記第2のバッファ・メモリの後半エリアに前記バースト長のオーディオデータをバースト転送するように制御する上で、前記第2のバッファ・メモリからオーディオデータを読み出し開始する
前記サンプリング周期後のサンプリング周期によって、バースト長未満の遅延長を制御することを特徴とする請求項1に記載のディジタル信号処理装置。
【請求項3】
前記DRAMは、SDRAMであることを特徴とする請求項1または2に記載のディジタル信号処理装置。
【請求項4】
バースト長のオーディオデータをバースト転送するDRAMと、
前記バースト長の2倍のオーディオデータを蓄積可能な第1のバッファ・メモリとを有するディジタル信号処理装置の制御方法であって、
サンプリング周期でオーディオデータを1ワードずつ前記第1のバッファ・メモリの任意のアドレスから順に書き込み開始するステップと、
前記第1のバッファ・メモリの前半エリアの前記バースト長のオーディオデータと前記第1のバッファ・メモリの後半エリアの前記バースト長のオーディオデータとを交互に前記DRAMにバースト転送するように制御するステップとを有し、
前記第1のバッファ・メモリの後半エリアにオーディオデータを1ワードずつ順に書き込んでいる間に、前記第1のバッファ・メモリの前半エリアの前記バースト長のオーディオデータを前記DRAMにバースト転送するように制御し、前記第1のバッファ・メモリの前半エリアにオーディオデータを1ワードずつ順に書き込んでいる間に、前記第1のバッファ・メモリの後半エリアの前記バースト長のオーディオデータを前記DRAMにバースト転送するように制御する上で、
前記第1のバッファ・メモリにオーディオデータを書き込
み開始するアドレスによって、バースト長未満の遅延長を制御することを特徴とするディジタル信号処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【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では、音波形データにエフェクトを加えるため、音波形データを遅延させる。しかし、DRAMのバースト転送を用いると、音波形データの遅延時間は、バースト長の倍数に限定されてしまう。複数の遅延信号がすべてバースト長の倍数である場合には、その周期性により強い相関が現れて、高品質のエフェクトを実現できない。
【0007】
仮想シフトポインターを用いたオーディオ遅延装置において、遅延RAMにDRAMのバースト転送を用いて複数サンプル単位でアクセスすると、複数サンプル単位の倍数サンプルの遅延を実現する事ができるが、任意のサンプリング周期単位の遅延時間を実現する事が難しかった。
【0008】
本発明の目的は、サンプリング周期に対してバースト長の倍数の遅延時間に捕らわれずに、任意長の遅延を実現できるようにすることである。
【課題を解決するための手段】
【0009】
本発明のディジタル信号処理装置は、バースト長のオーディオデータをバースト転送するDRAMと、前記バースト長の2倍のオーディオデータを蓄積可能な第1のバッファ・メモリと、サンプリング周期でオーディオデータを1ワードずつ前記第1のバッファ・メモリの任意のアドレスから順に書き込み開始し、前記第1のバッファ・メモリの前半エリアの前記バースト長のオーディオデータと前記第1のバッファ・メモリの後半エリアの前記バースト長のオーディオデータとを交互に前記DRAMにバースト転送するように制御する制御手段と、仮想シフトポインターを用いた遅延エフェクト実現手段を有し、前記制御手段は、前記第1のバッファ・メモリの後半エリアにオーディオデータを1ワードずつ順に書き込んでいる間に、前記第1のバッファ・メモリの前半エリアの前記バースト長のオーディオデータを前記DRAMにバースト転送するように制御し、前記第1のバッファ・メモリの前半エリアにオーディオデータを1ワードずつ順に書き込んでいる間に、前記第1のバッファ・メモリの後半エリアの前記バースト長のオーディオデータを前記DRAMにバースト転送するように制御する上で、前記第1のバッファ・メモリにオーディオデータを書き込み開始するアドレスによって、バースト長未満の遅延長を制御する。
【0010】
本発明のディジタル信号処理装置の制御方法は、バースト長のオーディオデータをバースト転送するDRAMと、前記バースト長の2倍のオーディオデータを蓄積可能な第1のバッファ・メモリとを有するディジタル信号処理装置の制御方法であって、サンプリング周期でオーディオデータを1ワードずつ前記第1のバッファ・メモリの任意のアドレスから順に書き込み開始するステップと、前記第1のバッファ・メモリの前半エリアの前記バースト長のオーディオデータと前記第1のバッファ・メモリの後半エリアの前記バースト長のオーディオデータとを交互に前記DRAMにバースト転送するように制御するステップとを有し、前記第1のバッファ・メモリの後半エリアにオーディオデータを1ワードずつ順に書き込んでいる間に、前記第1のバッファ・メモリの前半エリアの前記バースト長のオーディオデータを前記DRAMにバースト転送するように制御し、前記第1のバッファ・メモリの前半エリアにオーディオデータを1ワードずつ順に書き込んでいる間に、前記第1のバッファ・メモリの後半エリアの前記バースト長のオーディオデータを前記DRAMにバースト転送するように制御する上で、前記第1のバッファ・メモリにオーディオデータを書き込み開始するアドレスによって、バースト長未満の遅延長を制御する。
【発明の効果】
【0011】
本発明によれば、サンプリング周期に対してバースト長の倍数の遅延時間に捕らわれずに、任意長の遅延を実現できる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、本実施形態によるディジタル信号処理装置の構成例を示す図である。
【
図2】
図2は、第1のバッファ・メモリのアクセス方法を示す図である。
【
図3】
図3は、SDRAMのアクセス方法を示す図である。
【
図4】
図4は、第2のバッファ・メモリのアクセス方法を示す図である。
【発明を実施するための形態】
【0013】
図1は、本実施形態によるディジタル信号処理装置100の構成例を示す図である。ディジタル信号処理装置100は、例えば、リバーブを実現するエフェクト装置である。原音が発生すると、原音の直接音と遅延音が合成されて、人間の耳に到達する。直接音は、原音が人間に耳に直接到達する音である。遅延音は、原音が様々な物体に反射することにより生成される遅延時間が異なる複数の遅延音である。ディジタル信号処理装置100は、原音のオーディオデータに対して、遅延時間が異なる複数の遅延信号を生成し、原音のオーディオデータと複数の遅延信号を合成することにより、リバーブを実現する。
【0014】
ディジタル信号処理装置100は、CPU101と、プログラムROM102と、ワークRAM103と、バス104と、アナログ/ディジタルコンバータ105と、DSP106と、ディジタル/アナログコンバータ108と、バス109と、SDRAM110と、SDRAM111とを有する。DSP106は、第1及び第2のバッファ・メモリ107を有する。以下、ディジタル信号処理装置100の制御方法を説明する。
【0015】
第1及び第2のバッファ・メモリ107の各々は、バス109に対して、32ビット(1ワード)幅のオーディオデータを入出力可能である。第1及び第2のバッファ・メモリ107は、例えば、SRAM(静的ランダムアクセスメモリ)であり、オーディオデータを蓄積することができる。
【0016】
SDRAM110及び111は、同期式動的ランダムアクセスメモリであり、DRAM(動的ランダムアクセスメモリ)の一種である。SDRAM110及び111は、例えば、DDR3のSDRAMである。
【0017】
SDRAM110は、バス109に対して、16ビット(1ワード)のオーディオデータを入出力可能である。SDRAM110は、バス109に対して、16ビット(1ワード)のオーディオデータを入出力可能である。
【0018】
第1及び第2のバッファ・メモリ107の各々は、バス109を介して、SDRAM110及び111に対して、32ビット(1ワード)のオーディオデータを入出力することができる。SDRAM110が入出力する16ビットのオーディオデータは、第1又は第2のバッファ・メモリ107が入出力する32ビットのオーディオデータのうちの上位16ビットのオーディオデータである。SDRAM111が入出力する16ビットのオーディオデータは、第1又は第2のバッファ・メモリ107が入出力する32ビットのオーディオデータのうちの下位16ビットのオーディオデータである。
【0019】
SDRAM110及び111は、バス109を介して、第1及び第2のバッファ・メモリ107の各々に対して、2以上であるバースト長(第1の数)のワード数のオーディオデータをバースト転送可能である。すなわち、SDRAM110及び111は、バス109を介して、第1及び第2のバッファ・メモリ107の各々に対して、1つのアドレス情報を基に、バースト長のワード数のオーディオデータを連続して高速に転送する。バースト長は、例えば、4ワード又は8ワードである。以下、バースト長が8ワードである場合を例に説明する。
【0020】
CPU101は、中央処理ユニットである。プログラムROM(リードオンリーメモリ)102は、プログラムを記憶する。ワークRAM(ランダムアクセスメモリ)103は、CPU101のワーク領域として機能する。CPU101は、プログラムROM102に記憶されているプログラムをワークRAM103に展開し、ワークRAM103に展開されたプログラムを実行することにより、DSP106を制御する。DSP106は、ディジタルシグナルプロセッサであり、制御部の一種である。
【0021】
アナログ/ディジタルコンバータ105は、マイク等から原音のアナログのオーディオ信号を入力し、サンプリング周期で、アナログのオーディオ信号をディジタルの1ワード(32ビット)のオーディオデータに変換する。オーディオデータは、楽音データ又は音声データである。
【0022】
DSP106は、サンプリング周期で、アナログ/ディジタルコンバータ105により変換されたディジタルのオーディオデータを第1のバッファ・メモリ107に1ワードずつ順に書き込む。なお、DSP106は、アナログ/ディジタルコンバータ105の代わりに、楽音発生装置又はオーディオ受信装置等からディジタルのオーディオデータを入力してもよい。
【0023】
次に、DSP106は、第1のバッファ・メモリ107からSDRAM110及び111にバースト長のワード数(8ワード)のオーディオデータをバースト転送するように制御する。DSP106は、SDRAM110及び111のライトポインタが示すアドレスに対して、バースト長のワード数(8ワード)のオーディオデータを書き込む。
【0024】
次に、DSP106は、SDRAM110及び111から第2のバッファ・メモリ107にバースト長のワード数(8ワード)のオーディオデータをバースト転送するように制御する。この際、DSP106は、SDRAM110及び111のリードポインタが示すアドレスから、バースト長のワード数(8ワード)のオーディオデータを読み出し、バースト転送するように制御する。DSP106は、バースト転送により、バースト長のワード数(8ワード)のオーディオデータを第2のバッファ・メモリ107に書き込む。
【0025】
SDRAM110及び111のライトポインタが示すアドレスとリードポインタが示すアドレスとの差が、原音に対する遅延信号の遅延時間に対応する。この遅延時間は、サンプリング周期に対して、バースト長の倍数(8の倍数)の遅延時間である。
【0026】
SDRAM110及び111の代わりに、SRAMを用いて、遅延信号を生成することも可能であるが、遅延時間が長い遅延信号を生成するためには、大容量のSRAMが必要になる。SRAMは、SDRAM110及び111に比べ、高価であるデメリットがある。そこで、本実施形態では、SDRAM110及び111を用いて、遅延信号を生成可能にすることにより、コストを低減することができる。また、SDRAM110及び111のバースト転送を用いることにより、リアルタイムで多数の遅延信号を高速に生成することができる。
【0027】
次に、DSP106は、サンプリング周期で、第2のバッファ・メモリ107に転送されたオーディオデータを1ワード単位で読み出すことにより、原音に対する複数の遅延信号を生成する。第2のバッファ・メモリ107の読み出しタイミングは、原音に対する遅延信号の遅延時間に対応する。
【0028】
次に、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと、上記の遅延信号とを合成し、合成後のオーディオデータをディジタル/アナログコンバータ108に出力する。なお、DSP106が必ずしも合成しなくてもよく、DSP106の外部の装置が合成してもよい。
【0029】
ディジタル/アナログコンバータ108は、サンプリング周期で、ディジタルの1ワード(32ビット)のオーディオデータをアナログのオーディオ信号に変換し、アナログのオーディオ信号をオーディオシステムに出力する。オーディオシステムは、アンプ及びスピーカを有し、アンプによりオーディオ信号を増幅し、増幅したオーディオ信号をスピーカにより発音する。これにより、原音に対してリバーブの効果が付与された音が発音される。
【0030】
図2は、第1のバッファ・メモリ107のアクセス方法を示す図である。第1のバッファ・メモリ107は、アドレスA0~A15を有し、バースト長の2倍(16ワード)のオーディオデータを蓄積可能なリングバッファである。サンプリング周期T0~T31は、それぞれ、アナログ/ディジタルコンバータ105のサンプリング周期である。
【0031】
周期T0~T31では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータa~z、A~Fを第1のバッファ・メモリ107に書き込む。
【0032】
サンプリング周期T0では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータaを第1のバッファ・メモリ107のアドレスA2に書き込む。
【0033】
サンプリング周期T1では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータbを第1のバッファ・メモリ107のアドレスA3に書き込む。
【0034】
サンプリング周期T2では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータcを第1のバッファ・メモリ107のアドレスA4に書き込む。
【0035】
サンプリング周期T3では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータdを第1のバッファ・メモリ107のアドレスA5に書き込む。
【0036】
サンプリング周期T4では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータeを第1のバッファ・メモリ107のアドレスA6に書き込む。
【0037】
サンプリング周期T5では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータfを第1のバッファ・メモリ107のアドレスA7に書き込む。
【0038】
サンプリング周期T6では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータgを第1のバッファ・メモリ107のアドレスA8に書き込む。
【0039】
サンプリング周期T7では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータhを第1のバッファ・メモリ107のアドレスA9に書き込む。
【0040】
また、サンプリング周期T7では、DSP106は、第1のバッファ・メモリ107のアドレスA0~A7に蓄積されているバースト長のワード数(8ワード)のオーディオデータ「-,-,a,b,c,d,e,f」をSDRAM110及び111にバースト転送して書き込む。ここで、「-」は、不定値である。
図3に示すように、サンプリング周期T8では、SDRAM110及び111のアドレスa0~a7には、オーディオデータ「-,-,a,b,c,d,e,f」が書き込まれる。
【0041】
サンプリング周期T8では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータiを第1のバッファ・メモリ107のアドレスA10に書き込む。
【0042】
サンプリング周期T9では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータjを第1のバッファ・メモリ107のアドレスA11に書き込む。
【0043】
サンプリング周期T10では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータkを第1のバッファ・メモリ107のアドレスA12に書き込む。
【0044】
サンプリング周期T11では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータlを第1のバッファ・メモリ107のアドレスA13に書き込む。
【0045】
サンプリング周期T12では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータmを第1のバッファ・メモリ107のアドレスA14に書き込む。
【0046】
サンプリング周期T13では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータnを第1のバッファ・メモリ107のアドレスA15に書き込む。
【0047】
サンプリング周期T14では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータoを第1のバッファ・メモリ107のアドレスA0に書き込む。
【0048】
サンプリング周期T15では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータpを第1のバッファ・メモリ107のアドレスA1に書き込む。
【0049】
また、サンプリング周期T15では、DSP106は、第1のバッファ・メモリ107のアドレスA8~A15に蓄積されているバースト長のワード数(8ワード)のオーディオデータ「g,h,i,j,k,l,m,n」をSDRAM110及び111にバースト転送して書き込む。
図3に示すように、サンプリング周期T16では、SDRAM110及び111のアドレスa8~a15には、オーディオデータ「g,h,i,j,k,l,m,n」が書き込まれる。
【0050】
サンプリング周期T16では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータqを第1のバッファ・メモリ107のアドレスA2に上書きする。
【0051】
サンプリング周期T17では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータrを第1のバッファ・メモリ107のアドレスA3に上書きする。
【0052】
サンプリング周期T18では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータsを第1のバッファ・メモリ107のアドレスA4に上書きする。
【0053】
サンプリング周期T19では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータtを第1のバッファ・メモリ107のアドレスA5に上書きする。
【0054】
サンプリング周期T20では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータuを第1のバッファ・メモリ107のアドレスA6に上書きする。
【0055】
サンプリング周期T21では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータvを第1のバッファ・メモリ107のアドレスA7に上書きする。
【0056】
サンプリング周期T22では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータwを第1のバッファ・メモリ107のアドレスA8に上書きする。
【0057】
サンプリング周期T23では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータxを第1のバッファ・メモリ107のアドレスA9に上書きする。
【0058】
また、サンプリング周期T23では、DSP106は、第1のバッファ・メモリ107のアドレスA0~A7に蓄積されているバースト長のワード数(8ワード)のオーディオデータ「o,p,q,r,s,t,u,v」をSDRAM110及び111にバースト転送して書き込む。
図3に示すように、サンプリング周期T24では、SDRAM110及び111のアドレスa16~a23には、オーディオデータ「o,p,q,r,s,t,u,v」が書き込まれる。
【0059】
サンプリング周期T24では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータyを第1のバッファ・メモリ107のアドレスA10に上書きする。
【0060】
サンプリング周期T25では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータzを第1のバッファ・メモリ107のアドレスA11に上書きする。
【0061】
サンプリング周期T26では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータAを第1のバッファ・メモリ107のアドレスA12に上書きする。
【0062】
サンプリング周期T27では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータBを第1のバッファ・メモリ107のアドレスA13に上書きする。
【0063】
サンプリング周期T28では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータCを第1のバッファ・メモリ107のアドレスA14に上書きする。
【0064】
サンプリング周期T29では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータDを第1のバッファ・メモリ107のアドレスA15に上書きする。
【0065】
サンプリング周期T30では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータEを第1のバッファ・メモリ107のアドレスA0に上書きする。
【0066】
サンプリング周期T31では、DSP106は、アナログ/ディジタルコンバータ105により変換されたオーディオデータFを第1のバッファ・メモリ107のアドレスA1に上書きする。
【0067】
また、サンプリング周期T31では、DSP106は、第1のバッファ・メモリ107のアドレスA8~A15に蓄積されているバースト長のワード数(8ワード)のオーディオデータ「w,x,y,z,A,B,C,D」をSDRAM110及び111にバースト転送して書き込む。
図3に示すように、サンプリング周期T32では、SDRAM110及び111のアドレスa24~a31には、オーディオデータ「w,x,y,z,A,B,C,D」が書き込まれる。以下、DSP106は、上記と同様の処理を繰り返す。
【0068】
以上のように、DSP106は、サンプリング周期T0~T31で、アナログ/ディジタルコンバータ105により変換されたオーディオデータa~z,A~Fを1ワードずつ第1のバッファ・メモリ107のアドレスA2から順に書き込み開始する。そして、DSP106は、第1のバッファ・メモリ107の先頭アドレスA0から開始するオーディオデータ「-,-,a~z,A~F」をバースト長のワード数(8ワード)の単位でSDRAM110及び111にバースト転送するように制御する。その際、DSP106は、第1のバッファ・メモリ107の前半エリアのバースト長のオーディオデータと第1のバッファ・メモリ107の後半エリアのバースト長のオーディオデータとを交互にSDRAM110及び111にバースト転送するように制御する。これにより、DSP106は、SDRAM110及び111のアドレスa2から開始するアドレスに順にオーディオデータa~z,A~Fを書き込むことができる。
【0069】
DSP106は、第1のバッファ・メモリ107の後半エリアにオーディオデータを1ワードずつ順に書き込んでいる間に、第1のバッファ・メモリ107の前半エリアのバースト長のオーディオデータをSDRAM110及び111にバースト転送するように制御し、第1のバッファ・メモリ107の前半エリアにオーディオデータを1ワードずつ順に書き込んでいる間に、第1のバッファ・メモリ107の後半エリアのバースト長のオーディオデータをSDRAM110及び111にバースト転送するように制御する上で、どれだけ先行してオーディオデータを書き込むかによって、バースト長未満の遅延長を制御する。
【0070】
なお、DSP106は、サンプリング周期T0~T31で、アナログ/ディジタルコンバータ105により変換されたオーディオデータa~z、A~Fを1ワードずつ第1のバッファ・メモリ107の任意のアドレスA0~A15から順に書き込み開始してもよい。これにより、DSP106は、SDRAM110及び111の任意のアドレスa0~a15から開始するアドレスに順にオーディオデータa~z,A~Fを書き込むことができる。
【0071】
したがって、DSP106は、サンプリング周期T0~T31で、アナログ/ディジタルコンバータ105により変換されたオーディオデータa~z、A~Fを1ワード単位で第1のバッファ・メモリ107の先頭アドレスA0以外のアドレスA1~A15から順に書き込み開始することができる。
【0072】
また、DSP106は、サンプリング周期T0~T31で、アナログ/ディジタルコンバータ105により変換されたオーディオデータa~z、A~Fを1ワードずつ、第1のバッファ・メモリ107の先頭アドレスA0から、先頭アドレスA0にバースト長(8ワード)の数を加算したアドレスA8の1つ前のアドレスA7までのうちの任意のアドレスから順に書き込み開始することが好ましい。
【0073】
図4は、第2のバッファ・メモリ107のアクセス方法を示す図である。第2のバッファ・メモリ107は、アドレスA0~A15を有し、バースト長の2倍(16ワード)のオーディオデータを蓄積可能なリングバッファである。サンプリング周期T0~T31は、それぞれ、アナログ/ディジタルコンバータ105のサンプリング周期である。
【0074】
サンプリング周期T0では、DSP106は、
図3のSDRAM110及び111のアドレスa0~a7に記憶されているバースト長のワード数(8ワード)のオーディオデータ「-,-,a,b,c,d,e,f」を、第2のバッファ・メモリ107のアドレスA0~A7にバースト転送する。
【0075】
図2では、DSP106は、第1のバッファ・メモリ107に蓄積されているオーディオデータをSDRAM110及び111のライトポインタが示すアドレスに書き込む。
図4のサンプリング周期T0では、DSP106は、オーディオデータをSDRAM110及び111のリードポインタが示すアドレスから読み出す。SDRAM110及び111のライトポインタが示すアドレスとリードポインタが示すアドレスとの差が、原音に対する遅延信号の遅延時間に対応する。この遅延時間は、サンプリング周期の8の倍数(バースト長の数の倍数)である。
【0076】
サンプリング周期T0~T5では、DSP106は、第2のバッファ・メモリ107に蓄積されているオーディオデータを読み出さず、待機する。
【0077】
サンプリング周期T6では、DSP106は、第2のバッファ・メモリ107のアドレスA0に蓄積されているオーディオデータ「-」を読み出す。
【0078】
サンプリング周期T7では、DSP106は、第2のバッファ・メモリ107のアドレスA1に蓄積されているオーディオデータ「-」を読み出す。
【0079】
サンプリング周期T8では、DSP106は、
図3のSDRAM110及び111のアドレスa8~a15に記憶されているバースト長のワード数(8ワード)のオーディオデータ「g,h,i,j,k,l,m,n」を、第2のバッファ・メモリ107のアドレスA8~A15にバースト転送する。
【0080】
また、サンプリング周期T8では、DSP106は、第2のバッファ・メモリ107のアドレスA2に蓄積されているオーディオデータaを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0081】
サンプリング周期T9では、DSP106は、第2のバッファ・メモリ107のアドレスA3に蓄積されているオーディオデータbを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0082】
サンプリング周期T10では、DSP106は、第2のバッファ・メモリ107のアドレスA4に蓄積されているオーディオデータcを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0083】
サンプリング周期T11では、DSP106は、第2のバッファ・メモリ107のアドレスA5に蓄積されているオーディオデータdを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0084】
サンプリング周期T12では、DSP106は、第2のバッファ・メモリ107のアドレスA6に蓄積されているオーディオデータeを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0085】
サンプリング周期T13では、DSP106は、第2のバッファ・メモリ107のアドレスA7に蓄積されているオーディオデータfを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0086】
サンプリング周期T14では、DSP106は、第2のバッファ・メモリ107のアドレスA8に蓄積されているオーディオデータgを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0087】
サンプリング周期T15では、DSP106は、第2のバッファ・メモリ107のアドレスA9に蓄積されているオーディオデータhを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0088】
サンプリング周期T16では、DSP106は、
図3のSDRAM110及び111のアドレスa16~a23に記憶されているバースト長のワード数(8ワード)のオーディオデータ「o,p,q,r,s,t,u,v」を、第2のバッファ・メモリ107のアドレスA0~A7にバースト転送する。
【0089】
また、サンプリング周期T16では、DSP106は、第2のバッファ・メモリ107のアドレスA10に蓄積されているオーディオデータiを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0090】
サンプリング周期T17では、DSP106は、第2のバッファ・メモリ107のアドレスA11に蓄積されているオーディオデータjを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0091】
サンプリング周期T18では、DSP106は、第2のバッファ・メモリ107のアドレスA12に蓄積されているオーディオデータkを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0092】
サンプリング周期T19では、DSP106は、第2のバッファ・メモリ107のアドレスA13に蓄積されているオーディオデータlを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0093】
サンプリング周期T20では、DSP106は、第2のバッファ・メモリ107のアドレスA14に蓄積されているオーディオデータmを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0094】
サンプリング周期T21では、DSP106は、第2のバッファ・メモリ107のアドレスA15に蓄積されているオーディオデータnを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0095】
サンプリング周期T22では、DSP106は、第2のバッファ・メモリ107のアドレスA0に蓄積されているオーディオデータoを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0096】
サンプリング周期T23では、DSP106は、第2のバッファ・メモリ107のアドレスA1に蓄積されているオーディオデータpを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0097】
サンプリング周期T24では、DSP106は、
図3のSDRAM110及び111のアドレスa24~a31に記憶されているバースト長のワード数(8ワード)のオーディオデータ「w,x,y,z,A,B,C,D」を、第2のバッファ・メモリ107のアドレスA8~A15にバースト転送する。
【0098】
また、サンプリング周期T24では、DSP106は、第2のバッファ・メモリ107のアドレスA2に蓄積されているオーディオデータqを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0099】
サンプリング周期T25では、DSP106は、第2のバッファ・メモリ107のアドレスA3に蓄積されているオーディオデータrを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0100】
サンプリング周期T26では、DSP106は、第2のバッファ・メモリ107のアドレスA4に蓄積されているオーディオデータsを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0101】
サンプリング周期T27では、DSP106は、第2のバッファ・メモリ107のアドレスA5に蓄積されているオーディオデータtを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0102】
サンプリング周期T28では、DSP106は、第2のバッファ・メモリ107のアドレスA6に蓄積されているオーディオデータuを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0103】
サンプリング周期T29では、DSP106は、第2のバッファ・メモリ107のアドレスA7に蓄積されているオーディオデータvを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0104】
サンプリング周期T30では、DSP106は、第2のバッファ・メモリ107のアドレスA8に蓄積されているオーディオデータwを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。
【0105】
サンプリング周期T31では、DSP106は、第2のバッファ・メモリ107のアドレスA9に蓄積されているオーディオデータxを読み出すことにより、遅延信号を生成する。そして、DSP106は、アナログ/ディジタルコンバータ105により変換された原音のオーディオデータと遅延信号とを合成する。以下、DSP106は、上記と同様の処理を繰り返す。
【0106】
なお、
図2の書き込みのためのバースト転送と、
図4の読み出しのためのバースト転送は、8サンプリング周期毎に、1回のバースト転送を行う例を示したが、これに限定されない。
図2では、DSP106は、8サンプリング周期毎に、2回のバースト転送を行ってもよい。例えば、
図2のサンプリング周期T7では、DSP106は、第1のバッファ・メモリ107のアドレスA0~A7のオーディオデータをSDRAM110及び111にバースト転送し、第1のバッファ・メモリ107のアドレスA8~A15のオーディオデータをSDRAM110及び111にバースト転送する。また、
図2のサンプリング周期T15では、DSP106は、第1のバッファ・メモリ107のアドレスA8~A15のオーディオデータをSDRAM110及び111にバースト転送し、第1のバッファ・メモリ107のアドレスA0~A7のオーディオデータをSDRAM110及び111にバースト転送する。この2回のバースト転送により、オーディオデータは、よりリアルタイムに、SDRAM110及び111に書き込まれる。これは、より少ないサンプル数の遅延を実現できることを意味する。
【0107】
以上のように、DSP106は、SDRAM110及び111から第2のバッファ・メモリ107にバースト長のワード数(8ワード)のオーディオデータをバースト転送するように制御する。この際、DSP106は、SDRAM110及び111から第2のバッファ・メモリ107の前半エリアへのバースト長のオーディオデータのバースト転送と、SDRAM110及び111から第2のバッファ・メモリ107の後半エリアへのバースト長のオーディオデータのバースト転送とを交互に行うように制御する。また、DSP106は、バースト転送のサンプリング周期T0に対して6サンプリング周期後のサンプリング周期T6から、サンプリング周期T6~T31で、第2のバッファ・メモリ107に転送されたオーディオデータを1ワード単位で順に読み出し開始する。
【0108】
DSP106は、第2のバッファ・メモリ107の後半エリアからオーディオデータを1ワードずつ順に読み出している間に、SDRAM110及び111から第2のバッファ・メモリ107の前半エリアにバースト長のオーディオデータをバースト転送するように制御し、第2のバッファ・メモリ107の前半エリアからオーディオデータを1ワードずつ順に読み出している間に、SDRAM110及び111から第2のバッファ・メモリ107の後半エリアにバースト長のオーディオデータをバースト転送するように制御する上で、どれだけ先行してオーディオデータを読み出すかによって、バースト長未満の遅延長を制御する。SDRAM110及び111のバースト転送のタイミングとバッファ・メモリ107への読み書きのタイミングのズレを制御することにより、バースト転送周期単位よりも短いサンプリング周期単位の遅延時間を有するオーディオデータを生成することができる。
【0109】
DSP106は、サンプリング周期T8で、第2のバッファ・メモリ107のアドレスA2を開始アドレスとして、オーディオデータa~z,A~Fを1ワード単位で順に読み出す。そのため、DSP106は、サンプリング周期T6から、第2のバッファ・メモリ107のアドレスA0を開始アドレスとして、オーディオデータの読み出しを開始する。
【0110】
なお、DSP106は、バースト転送のサンプリング周期T0に対して任意の数のサンプリング周期後のサンプリング周期T0~T31から、サンプリング周期T0~T31で、第2のバッファ・メモリ107に転送されたオーディオデータを1ワード単位で順に読み出し開始してもよい。
【0111】
例えば、DSP106は、サンプリング周期T0から、第2のバッファ・メモリ107のアドレスA0を開始アドレスとして、オーディオデータの読み出しを開始することにより、サンプリング周期T2で、第2のバッファ・メモリ107のアドレスA2を開始アドレスとして、オーディオデータa~z,A~Fを1ワード単位で順に読み出すことができる。
【0112】
また、DSP106は、サンプリング周期T1から、第2のバッファ・メモリ107のアドレスA0を開始アドレスとして、オーディオデータの読み出しを開始することにより、サンプリング周期T3で、第2のバッファ・メモリ107のアドレスA2を開始アドレスとして、オーディオデータa~z,A~Fを1ワード単位で順に読み出すことができる。
【0113】
また、DSP106は、サンプリング周期T2から、第2のバッファ・メモリ107のアドレスA0を開始アドレスとして、オーディオデータの読み出しを開始することにより、サンプリング周期T4で、第2のバッファ・メモリ107のアドレスA2を開始アドレスとして、オーディオデータa~z,A~Fを1ワード単位で順に読み出すことができる。
【0114】
したがって、DSP106は、バースト転送のサンプリング周期T0に対して1サンプリング周期以上後のサンプリング周期T1~T31から、サンプリング周期T1~T31で、第2のバッファ・メモリ107に転送されたオーディオデータを1ワード単位で順に読み出し開始することができる。
【0115】
また、DSP106は、バースト転送のサンプリング周期T0に対して2サンプリング周期以上後のサンプリング周期T2~T31から、サンプリング周期T2~T31で、第2のバッファ・メモリ107に転送されたオーディオデータを1ワード単位で順に読み出し開始することができる。
【0116】
また、DSP106は、バースト転送のサンプリング周期T0から、バースト転送のサンプリング周期T0に対してバースト長(8ワード)の数のサンプリング周期の後のサンプリング周期T8の1つ前のサンプリング周期T7までのうちの任意のサンプリング周期T0~T7から、サンプリング周期T0~T31で、第2のバッファ・メモリ107に転送されたオーディオデータを1ワード単位で順に読み出し開始することが好ましい。
【0117】
本実施形態によれば、DSP106は、サンプリング周期の8の倍数(バースト長の倍数)の遅延時間を有する遅延信号だけでなく、サンプリング周期単位の遅延時間を有する遅延信号を生成することができる。
【0118】
DSP106は、
図4のようにサンプリング周期T8で、第2のバッファ・メモリ107のアドレスA2からオーディオデータaを読み出すと、サンプリング周期の8の倍数の遅延時間を有する遅延信号を生成することができる。
【0119】
また、DSP106は、サンプリング周期T9で、第2のバッファ・メモリ107のアドレスA2からオーディオデータaを読み出すと、(サンプリング周期の8の倍数)+(サンプリング周期)×1の遅延時間を有する遅延信号を生成することができる。
【0120】
また、DSP106は、サンプリング周期T7で、第2のバッファ・メモリ107のアドレスA2からオーディオデータaを読み出すと、(サンプリング周期の8の倍数)-(サンプリング周期)×1の遅延時間を有する遅延信号を生成することができる。
【0121】
また、DSP106は、サンプリング周期T6で、第2のバッファ・メモリ107のアドレスA2からオーディオデータaを読み出すと、(サンプリング周期の8の倍数)-(サンプリング周期)×2の遅延時間を有する遅延信号を生成することができる。
【0122】
同様に、DSP106は、サンプリング周期T2で、第2のバッファ・メモリ107のアドレスA2からオーディオデータaを読み出すと、(サンプリング周期の8の倍数)-(サンプリング周期)×6の遅延時間を有する遅延信号を生成することができる。
【0123】
以上のように、DSP106は、サンプリング周期の8の倍数(バースト長の倍数)の遅延時間を有する遅延信号だけでなく、サンプリング周期単位の遅延時間を有する遅延信号を生成することができる。DSP106は、仮想シフトポインターを用いた遅延エフェクト実現部である。
【0124】
バースト長をNサンプルとすると、第1のバッファ・メモリ107にオーディオデータを1ワードずつN個書き込むタイミングにはN通りある。第1のバッファ・メモリ107において、バースト転送したエリアの直後からN個書き込む場合と、1アドレス先行して書き込み始める場合とでは、遅延量が1サンプル異なる。同様に、Mアドレス先行して書き込み始めると、遅延量がMサンプル異なる。このようにNサンプル×整数+Mの遅延量を実現できるようになる。逆に、SDRAM110及び111から第2のバッファ・メモリ107への読み込みにおいても、同様に処理する事によって、1サンプル単位の遅延制御が可能になる。
【0125】
なお、DSP106は、時分割処理により、遅延時間が異なる複数の遅延信号を生成し、原音のオーディオデータと複数の遅延信号を合成することにより、高品質のリバーブを実現することができる。
【0126】
複数の遅延信号がすべてサンプリング周期のバースト長の倍数である場合には、その周期性により強い相関が現れて、高品質のリバーブを実現できない。本実施形態によれば、DSP106は、サンプリング周期のバースト長の倍数の遅延時間を有する遅延信号だけでなく、サンプリング周期単位の遅延時間を有する遅延信号を生成することができるので、高品質のリバーブを実現することができる。
【0127】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0128】
100 ディジタル信号処理装置
101 CPU
102 プログラムROM
103 ワークRAM
104 バス
105 アナログ/ディジタルコンバータ
106 DSP
107 バッファ・メモリ
108 ディジタル/アナログコンバータ
109 バス
110,111 SDRAM