JP6146686B2 - データ構造、データ格納装置、データ取り出し装置および電子楽器 - Google Patents

データ構造、データ格納装置、データ取り出し装置および電子楽器 Download PDF

Info

Publication number
JP6146686B2
JP6146686B2 JP2016152124A JP2016152124A JP6146686B2 JP 6146686 B2 JP6146686 B2 JP 6146686B2 JP 2016152124 A JP2016152124 A JP 2016152124A JP 2016152124 A JP2016152124 A JP 2016152124A JP 6146686 B2 JP6146686 B2 JP 6146686B2
Authority
JP
Japan
Prior art keywords
frame
data
bit length
effective bit
waveform data
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.)
Active
Application number
JP2016152124A
Other languages
English (en)
Other versions
JP2017058663A (ja
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to RU2016136820A priority Critical patent/RU2662633C2/ru
Priority to US15/265,820 priority patent/US10210854B2/en
Priority to CN201610825908.5A priority patent/CN106875933B/zh
Priority to EP16189007.4A priority patent/EP3144926B1/en
Publication of JP2017058663A publication Critical patent/JP2017058663A/ja
Application granted granted Critical
Publication of JP6146686B2 publication Critical patent/JP6146686B2/ja
Priority to US16/239,073 priority patent/US10515618B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/008Means for controlling the transition from one tone waveform to another
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0316Speech enhancement, e.g. noise reduction or echo cancellation by changing the amplitude
    • G10L21/0324Details of processing therefor
    • G10L21/0332Details of processing therefor involving modification of waveforms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

本発明は、音色(波形種)に応じてフレームサイズを可変させるデータ構造、データ格納装置、データ取り出し装置および電子楽器に関する。
簡単な構成で伸長処理可能な圧縮データ構造を用いた波形生成技術が知られている。この種の技術として、例えば特許文献1には、圧縮波形データを記憶するフレームサイズを固定とし、そのフレーム内の固定された位置に副情報領域とデータ領域とを設け、それぞれ副情報と圧縮波形データを記憶する技術が開示されている。
この技術によれば、圧縮波形データのサンプルのビット数が異なる場合でもデータ領域のサイズが変わらないので、記憶する圧縮波形データのサンプルのビット数に応じて、1つのフレームに記憶される圧縮波形データのサンプル数が変化する。したがって、圧縮波形データのサンプルのビット数が異なる場合であっても、フレームの開始位置がメモリアドレス上で一定間隔ごとに並ぶ為、アドレス管理が容易になることから簡単な構成で伸長処理することが可能になる。
特許第3826870号公報
ところで、上記特許文献1に開示の技術では、以下に述べる弊害がある。
(a)フレームサイズが一定であることは、アドレス管理を容易(簡単な構成で伸長処理可能)にする反面、隣り合うフレームの1サンプルあたりのビット数が変化しない場合はヘッダ情報(副情報)が重複し、ヘッダ情報のメモリエリアが無駄になってしまう。
(b)ヘッダ情報は、データを復元する作業上、データを連続してリードする動作とは別に、予めアクセスし情報を取得する必要がある為、ヘッダ情報へのアクセスが多いと、連続アクセスが優位なメモリを使用するにあたり、転送できるデータ量を減少させてしまう。
(c)フレームサイズを小さく設定すると、波形が急激に変化する場合には、その変化に追随して効率的にデータを変換できるのに対し、波形があまり変化しない場合には、フレーム数の増加に伴って重複する無駄なヘッダ情報が増えてしまう。
(d)フレームサイズを大きく設定すると、波形が急激に変化する場合には、大小様々なデータ列の中で絶対値の最大のビット数に合わせることで、多くのビット長の波形サンプルにおける符号ビットを増やすことになってしまう。
つまり、以上に述べた(a)〜(d)の弊害をまとめて換言すると、音色(波形種)に応じてフレームサイズを可変させることが出来ない、という問題がある。
そこで本発明は、上述した事情に鑑みてなされたもので、音色(波形種)に応じてフレームサイズを可変させることが出来るデータ構造、データ格納装置、データ取り出し装置および電子楽器を提供することを目的としている。
上記目的を達成するため、本発明のデータ構造は、
電子楽器がメモリからフレーム化された圧縮波形データをヘッダ情報に基づいて取り出すデータ構造であって、
格納対象となった圧縮波形データの有効ビット長がばらついた場合に格納容量の小さいフレームが設定され、一方、有効ビット長がばらつかない場合に格納容量の大きいフレームが設定され、
前記格納容量の小さいフレームおよび前記格納容量の大きいフレームは、それぞれ副情報領域およびデータ領域を含み、
前記副情報領域は、少なくとも前記ヘッダ情報として、格納対象となる圧縮波形データの共通有効ビット長と、前記格納容量の小さいフレームおよび前記格納容量の大きいフレームの何れであるかを識別する識別子とを含み、
前記データ領域は、前記副情報領域に格納される圧縮波形データの共通有効ビット長に応じたサンプル数分の圧縮波形データを含み、
前記共通有効ビット長は、前記データ領域に格納されるサンプル数分の各圧縮波形データの有効ビット長の内、最も大きい有効ビット長であり、
取り出し対象となるフレームの前記副情報領域に含まれる前記識別子および前記共通有効ビット長に基づいて生成した読み出しアドレスに従って、前記取り出し対象となるフレームの前記データ領域より前記圧縮波形データが取り出される
ことを特徴とする。
本発明のデータ格納装置は、
副情報領域およびデータ領域を備え、格納容量の小さいフレームおよび格納容量の大きいフレームの内、格納対象となる圧縮波形データの有効ビット長がばらついた場合に前記格納容量の小さいフレームを設定し、一方、有効ビット長がばらつかない場合に前記格納容量の大きいフレームを設定するフレーム設定部と、
前記フレーム設定部により設定された前記格納容量の小さいフレームおよび前記格納容量の大きいフレームの何れかに含まれる前記副情報領域に、少なくとも前記格納対象となる圧縮波形データの共通有効ビット長と、前記格納容量の小さいフレームおよび前記格納容量の大きいフレームの何れであるかを識別する識別子とを格納する副情報格納部と、
前記フレーム設定部により設定された前記格納容量の小さいフレームおよび前記格納容量の大きいフレームの何れかに含まれる前記データ領域に、前記副情報領域に格納された圧縮波形データの共通有効ビット長に応じたサンプル数分の圧縮波形データを格納するデータ格納部と、
を具備することを特徴とする。
本発明のデータ取り出し装置は、
メモリからフレーム化された圧縮波形データをヘッダ情報に基づいて取り出す装置であって、
格納対象となった圧縮波形データの有効ビット長がばらついた場合に格納容量の小さいフレームが設定され、一方、有効ビット長がばらつかない場合に格納容量の大きいフレームが設定され、
前記格納容量の小さいフレームおよび前記格納容量の大きいフレームは、それぞれ副情報領域およびデータ領域を含み、
前記副情報領域は、少なくとも前記ヘッダ情報として、格納対象となる圧縮波形データの共通有効ビット長と、前記格納容量の小さいフレームおよび前記格納容量の大きいフレームの何れであるかを識別する識別子とを含み、
前記データ領域は、前記副情報領域に格納される圧縮波形データの共通有効ビット長に応じたサンプル数分の圧縮波形データを含み、
前記共通有効ビット長を、前記データ領域に格納されるサンプル数分の各圧縮波形データの有効ビット長の内、最も大きい有効ビット長としたデータ構造を備えるメモリと、
前記メモリ内において指定されるフレームの前記副情報領域に含まれる前記識別子および前記共通有効ビット長に基づいて読み出しアドレスデータを生成するアドレスデータ生成部と、
前記アドレスデータ生成部により生成された読み出しアドレスデータに従って、前記指定されたフレームの前記データ領域から前記圧縮波形データを取り出す取り出し部と、
前記取り出し部により前記指定されたフレームの前記データ領域から前記圧縮波形データを取り出し終えた後、次に取り出し対象となるフレームを指定するフレーム指定部と、
を具備することを特徴とする。
本発明の電子楽器は、
データ構造におけるヘッダ情報に基づいて、フレーム化された圧縮波形データを取り出す電子楽器であって、
前記データ構造は、
格納対象となった圧縮波形データの有効ビット長がばらついた場合に格納容量の小さいフレームが設定され、一方、有効ビット長がばらつかない場合に格納容量の大きいフレームが設定され、
前記格納容量の小さいフレームおよび前記格納容量の大きいフレームは、それぞれ副情報領域およびデータ領域を含み、
前記副情報領域は、少なくとも前記ヘッダ情報として、格納対象となる圧縮波形データの共通有効ビット長と、前記格納容量の小さいフレームおよび前記格納容量の大きいフレームの何れであるかを識別する識別子とを含み、
前記データ領域は、前記副情報領域に格納される圧縮波形データの共通有効ビット長に応じたサンプル数分の圧縮波形データを含み、
前記共通有効ビット長は、前記データ領域に格納されるサンプル数分の各圧縮波形データの有効ビット長の内、最も大きい有効ビット長であり、
取り出し対象となるフレームの前記副情報領域に含まれる前記識別子および前記共通有効ビット長から生成した読み出しアドレスに従って、前記取り出し対象となるフレームの前記データ領域より前記圧縮波形データが取り出されるデータ構造であり、
前記データ構造を有するメモリと、
前記メモリ内において指定されるフレームの前記副情報領域に含まれる前記識別子および前記共通有効ビット長に基づいて読み出しアドレスデータを生成するアドレスデータ生成部
前記アドレスデータ生成部により生成された読み出しアドレスデータに従って、前記指定されたフレームの前記データ領域から前記圧縮波形データを取り出す取り出し部、並びに
前記取り出し部により前記指定されたフレームの圧縮波形データを取り出し終えた後、次に取り出し対象となるフレームを指定するフレーム指定部
を具備するデータ取り出し装置と、
演奏操作に応じた演奏情報を発生する演奏入力部と、
前記演奏情報に応じた楽音の発生を指示する指示処理と、当該指示処理に応答して、前記データ取り出し装置が前記メモリから必要な圧縮波形データを取り出すように制御する制御処理とを実行する処理部と、
前記データ取り出し装置から取り出された前記圧縮波形データを伸長して得た波形データに基づいて楽音を発生する発音部と、
を具備することを特徴とする。
本発明では、音色(波形種)に応じてフレームサイズを可変させることが出来る。
本発明の実施の一形態による波形データ格納装置100の構成を示すブロック図である。 図2(a)は判定部13が備えるワークメモリの構成を示すメモリマップ、図2(b)は配列wav[ ]に格納される波形サンプルの一例を示す図である。 テーブル512sampleno[ ]の内容を示す図である。 テーブル256sampleno[ ]の内容を示す図である。 ハードウェアで構成される判定部13の機能を、ソフトウェアの処理動作として捉えたフローチャートである。 図6(a)は512バイト/フレームの構成例を示す図、図6(b)は256バイト/フレームの構成例を示す図である。 ピアノ音の原波形データWを圧縮してフレームに格納する一例を示す図である。 波形データ取り出し装置150の構成を示すブロック図である。 波形データ取り出し装置150を具備する電子楽器200の構成を示すブロック図である。
以下、図面を参照して本発明の実施形態について説明する。図1は、本発明の実施の一形態による波形データ格納装置100の全体構成を示すブロック図である。なお、本実施形態では、ADPCM形式のデータ圧縮を採用した一例としているが、これに限らず、例えば線形予測符号LPCなど他の圧縮方式を用いても構わない。
図1において、波形データ圧縮部1は、減算器10、加算器11およびADPCM予測部12から構成される。減算器10は、原波形データW(n)から予測データP(n)を減算して差分抽出される予測誤差データE(n)を発生する。加算器11は、予測誤差データE(n)に予測データP(n)を加算してADPCM予測部12に供給する。ADPCM予測部12は、適応予測モデルを用いて次サンプルの原波形データW(n+1)に対する予測データP(n)および予測係数PCを発生する。
判定部13は、量子化ビット長判定部13aとサイズ判定部13bとから構成される。量子化ビット長判定部13aは、現サンプルの予測誤差データE(n)と過去所定サンプル数分の予測誤差データEとに基づいて量子化されたサンプルの有効ビット長を判定する。サイズ判定部13bは、量子化ビット長判定部13aで判定された有効ビット長に基づいて算出される共通有効ビット長により1フレームサイズを256バイト(ヘッダ情報を格納する副情報領域4バイト+データ領域252バイト)あるいは512バイト(ヘッダ情報を格納する副情報領域4バイト+データ領域508バイト)の何れにするかを判定する。この判定の詳細については後述する。
ここで、図2〜図5を参照して判定部13の概略的な構成および動作について説明する。判定部13は、図示されていない論理演算回路およびワークメモリを備えるハードウェアで具現される。以下では、説明の簡略化を図る為、ハードウェアで具現される判定部13の機能を、ソフトウェアの処理動作として捉えたフローチャートを用いて説明する。なお、これら処理は、CPUがソフトウェアにより実行しても構わない。
先ず最初に、図2(a)は判定部13が備えるワークメモリの構成を示すメモリマップである。この図において、テーブル512sampleno[ ]は、1フレームサイズを512バイトとした場合に格納可能なサンプル数を、共通有効ビット長に応じて読み出すデータテーブルであり、その内容を図3に図示する。
図3に図示するテーブル512sampleno[ ]は、共通有効ビット長を読み出しアドレス(引数)とし、当該共通有効ビット長に対応する512バイト/フレームに格納可能なサンプル数を読み出す。例えば共通有効ビット長が「20」ビットの場合には、テーブル512sampleno[ ]から512バイト/フレームに格納可能なサンプル数として「203」が読み出される(決定される)。
なお、512バイト/フレームに格納可能なサンプル数は、次式(1)で算出される。
サンプル数=INT(4064ビット/共通有効ビット長) …(1)
上記(1)式において、INTは小数点以下を切り捨てるINT関数、「4064ビット」は、8ビット×(フレームサイズ(512バイト)−ヘッダーサイズ(副情報領域4バイト))である。また、図3に図示したテーブル512sampleno[ ]に併記されるブロック時間msとは、サンプル数に対応した波形区間長を表し、ビットレートMbpsとは共通有効ビット長にサンプリング周波数(44.1kHz)乗算して得た値である。
テーブル256sampleno[ ]は、上記テーブル512sampleno[ ]と同様、共通有効ビット長を読み出しアドレス(引数)とし、当該共通有効ビット長に対応して256バイト/フレームに格納可能なサンプル数を読み出すデータテーブルであり、その内容を図4に図示する。図4に図示するテーブル256sampleno[ ]において、例えば共通有効ビット長が「20」ビットの場合には、256バイト/フレームに格納可能なサンプル数として「100」が読み出される(決定される)。
なお、256バイト/フレームに格納可能なサンプル数は、次式(2)で算出される。
サンプル数=INT(2016ビット/共通有効ビット長) …(2)
上記(2)式において、INTは小数点以下を切り捨てるINT関数、「4016」は、8ビット×(フレームサイズ(256バイト)−ヘッダーサイズ(副情報領域4バイト))である。また、図4に図示したテーブル256sampleno[ ]に併記されるブロック時間msとは、サンプル数に対応した波形区間長を表し、ビットレートMbpsとは共通有効ビット長にサンプリング周波数(44.1kHz)乗算して得た値である。
配列wav[ ]は、波形サンプル(予測誤差データE)の共通有効ビット長を2ビットと仮定した場合に512バイト/フレームにおける格納可能な最大サンプル数となる「2032」個の波形サンプル(予測誤差データE)を一時記憶するレジスタである。以後、予測誤差データEを波形サンプルと称す。この配列wav[ ]には、例えば図2(b)に図示する形態で「2032」個の波形サンプルが格納される。波形サンプルは、符号ビットSおよび実データビットMから構成され、実データビットMのビット長を有効ビット長と称す。配列wavlength[ ]は、上記配列wav[ ]に取り込んだ「2032」個の各波形サンプルの有効ビット長を一時記憶するレジスタである。
レジスタpは、配列wav[ ]に対して波形サンプルを読み出し・書き込みする際に参照するアドレスポインタである。以後、レジスタpの内容をアドレスポインタpと称す。レジスタiは配列wavlength[ ]に格納された各波形サンプルの有効ビット長を指定するデータポインタである。以後、レジスタiの内容をポインタiと称す。レジスタbitlengthは、初期値「2」から順次歩進される変数である。以後、レジスタbitlengthの内容をビット長変数bitlengthと称す。波形サンプルの或る区間において最大の有効ビット長(bitlength)を共通有効ビット長(Bitlength256又はBitlength512)とする。レジスタBitlength256は、256バイト/フレームに格納する波形サンプルの共通有効ビット長を保持する。レジスタBitlength512は、512バイト/フレームに格納する波形サンプルの共通有効ビット長を保持する。
次に、図5を参照して判定部13の動作について説明する。図5は、ハードウェアで構成される判定部13の機能を、ソフトウェアの処理動作として捉えたフローチャートである。判定部13は、図5に図示するフローチャートで表す動作を1フレーム毎に実行する。
判定部13は、先ずステップS10に進み、512バイト/フレームに格納可能な最大サンプル数となる「2032」個の波形サンプルを、アドレスポインタpに従って配列wav[ ]に格納する。続いて、ステップS11に進むと、判定部13は、配列wav[ ]に格納した「2032」個の波形サンプル毎の有効ビット長を配列wavlength[ ]に取り込む。なお、ここで言う有効ビット長とは、図2(b)に図示する符号ビットSおよび実データビットMからなる波形サンプル(予測誤差データE)における実データビットMのビット長を指す。
次に、判定部13は、ステップS12に進み、ポインタiをゼロリセットすると共に、ビット長変数bitlengthに初期値「2」をセットする。続いて、判定部13は、ステップS13に進み、ビット長変数bitlengthと、ポインタiで指定され、配列wavlength[i]の波形サンプルの有効ビット長とが一致するかどうかを判断する。
一致しなければ、上記ステップS13の判断結果は「NO」になり、判定部13はステップS14に進み、ビット長変数bitlengthをインクリメントして歩進させた後、再び上記ステップS13に処理を戻す。以後、ポインタiで指定され、配列wavlength[i]に格納される波形データ(予測誤差データE)の有効ビット長に一致するまでステップS13〜S14を繰り返してビット長変数bitlengthを歩進させる。
そして、歩進させたビット長変数bitlengthと、ポインタiで指定され、配列wavlength[i]に格納される波形サンプルの有効ビット長とが一致し、これによりポインタiで指定される波形サンプルの有効ビット長が、歩進させたビット長変数bitlengthとして検出されると、上記ステップS13の判断結果が「YES」になり、ステップS15に進む。
ステップS15に進むと、判定部13は、上記ステップS13で検出した有効ビット長に対応してテーブル256sampleno[bitlength]から読み出した256バイト/フレームに格納可能なサンプル数−1とポインタiの値とが一致したか否か、つまり256バイト/フレーム分を処理し終えたか否かを判断する。
256バイト/フレーム分を処理し終えていなければ、上記ステップS15の判断結果は「NO」になり、ステップS17に進む。ステップS17に進むと、上記ステップS13で検出した有効ビット長に対応してテーブル512sampleno[bitlength]から読み出した512バイト/フレームに格納可能なサンプル数−1とポインタiの値が一致したか否か、つまり512バイト/フレーム分を処理し終えたか否かを判断する。
512バイト/フレーム分を処理し終えていなければ、上記ステップS17の判断結果は「NO」になり、ステップS19に進み、ポインタiの値をインクリメントして歩進させた後、上述のステップS13に処理を戻し、歩進されたポインタiで指定される次の波形サンプル(予測誤差データE)の有効ビット長を、上述のステップS13〜S14において検出する。
以後、ポインタiの歩進に応じて更新される波形サンプルについて有効ビット長を順番に検出する過程において、検出した有効ビット長に対応してテーブル256sampleno[bitlength]から読み出した256バイト/フレームに格納可能なサンプル数−1とポインタiの値とが一致して256バイト/フレーム分を処理し終えると、上述したステップS15の判断結果が「YES」になり、ステップS16に進む。
ステップS16に進むと、判定部13は、256バイト/フレーム分を処理し終え時点で検出した有効ビット長、すなわちビット長変数bitlengthの値を共通有効ビット長としてレジスタBitlength256に保持すると共に、ビット長変数bitlengthの値を初期値「2」に再初期化する。なお、ここで言う共通有効ビット長とは、例えば図2(b)に図示する一例の場合、波形サンプルa〜fの中で最も有効ビット長(実データビットMのビット長)が大きい10ビットとなる。
さて、こうして前半フレームに相当する256バイト/フレーム分を処理し終えると、判定部13は、後半フレームについて処理を進める。すなわち、前半フレームと同様に、ポインタiの歩進に応じて更新される波形サンプルについて有効ビット長を順番に検出する(ステップS13〜S14、S19)。
そして、有効ビット長を検出する過程において、検出した有効ビット長(ビット長変数bitlengthの値)に対応してテーブル512sampleno[bitlength]から読み出した512バイト/フレームに格納可能なサンプル数−1とポインタiの値とが一致して256バイト/フレーム分を処理し終えると、前述したステップS17の判断結果が「YES」になり、ステップS18に進む。
ステップS18に進むと、判定部13は、512バイト/フレーム分を処理し終え時点で検出した有効ビット長、すなわちビット長変数bitlengthの値を共通有効ビット長としてレジスタBitlength512に保持する。続いて、ステップS20に進むと、判定部13は、レジスタBitlength256に保持した共通有効ビット長と、レジスタBitlength512に保持した共通有効ビット長とが同一であるか否かを判断する。
レジスタBitlength256に保持した共通有効ビット長と、レジスタBitlength512に保持した共通有効ビット長とが同一の場合には、上記ステップS20の判断結果が「YES」になり、ステップS21に進む。そして、判定部13は、ステップS21〜S22において、512バイト/フレームを表す識別子をフレームサイズとして出力すると共に、レジスタBitlength512に保持した共通有効ビット長を出力する。
この後、ステップS23に進むと、判定部13は、検出した有効ビット長に対応してテーブル512sampleno[bitlength]から読み出した512バイト/フレームに格納可能なサンプル数を、当初読み込んだ2032サンプルから減算した分だけアドレスポインタpを戻して1フレーム分の処理を終える。
一方、レジスタBitlength256に保持した共通有効ビット長と、レジスタBitlength512に保持した共通有効ビット長とが同一でない場合には、上記ステップS20の判断結果が「NO」になり、ステップS24に進む。そして、判定部13は、ステップS24〜S25において、256バイト/フレームを表す識別子をフレームサイズとして出力すると共に、レジスタBitlength256に保持した共通有効ビット長を出力する。
この後、ステップS26に進むと、判定部13は、検出した有効ビット長に対応してテーブル256sampleno[bitlength]から読み出した256バイト/フレームに格納可能なサンプル数を、当初読み込んだ2032サンプルから減算した分だけアドレスポインタpを戻して1フレーム分の処理を終える。
このように、判定部13では、各波形サンプル(予測誤差データE)の個々の有効ビット長を順番に読み出しながら、読み出した有効ビット長の中で最も大きい有効ビット長を共通有効ビット長とし、当該共通有効ビット長に対応して256バイト/フレームに格納可能なサンプル数−1に読み出したサンプル数が達した時に前半フレームを形成し、さらに後半フレームについても同様に、各波形サンプル(予測誤差データE)の個々の有効ビット長を順番に読み出しながら、読み出した有効ビット長の中で最も大きい有効ビット長を共通有効ビット長とし、当該共通有効ビット長に対応して512バイト/フレームに格納可能なサンプル数−1に読み出したサンプル数が達した時に後半フレームを形成する。
そして、前半フレームと後半フレームの共通有効ビット長が一致する場合には、512バイト/フレームを表す識別子をフレーム種類として出力すると共に、後半フレームの共通有効ビット長を出力する。一方、前半フレームと後半フレームの共通有効ビット長が一致しない場合には、256バイト/フレームを表す識別子をフレーム種類として出力すると共に、前半フレームの共通有効ビット長を出力する。
なお、本実施形態では、説明の簡略化を図る為、512バイト/フレームおよび256バイト/フレームの2種のフレームサイズに分けるようにしたが、これに限定されず、例えば128バイト/フレームを加える等、3種以上の任意のフレームサイズに判別する態様としても構わない。また、本実施形態では、波形サンプル(予測誤差データE)の共通有効ビット長を2ビットと仮定した場合に512バイト/フレームにおける格納可能な最大サンプル数となる「2032」サンプルを読み込むようにしたが、これに限定されず、任意のフレームサイズに対応して読み込むサンプル数を決定しても構わない。
次に、再び図1を参照して波形データ格納装置100の構成について説明を進める。図1において、ヘッダ情報生成部15は、波形データ圧縮部1が発生する圧縮方式を識別するためのデータである「圧縮モード」と、判定部13から出力される「フレーム種類(識別子)」および「共通有効ビット長」に基づき1フレーム毎のヘッダ情報を生成する。
ヘッダ情報は、例えば図6(a)に図示する一例のように、4バイト分のデータ容量を有する副情報領域に格納され、例えば「圧縮モード」を格納する領域、フレーム化する際の「共通有効ビット長」を格納する領域、「音量補正パラメータ」を格納する領域、1フレーム内のデータ領域内のサイズを表す「フレーム種類(識別子」を格納する領域および拡張性を考慮したリザーブ領域の「reserved」から構成される。こうしたヘッダ情報は、ヘッダ情報生成部15から格納部16に供給される。
波形サンプルを圧縮する際に、音量パラメータを変更することにより圧縮率を変更させることができる。例えば、波形サンプルの前半のアタック部では原音そのままの音量データとして格納し、波形サンプルの後半は原音から音量を下げた音量データで格納する。そうすることで、波形サンプルの前半のアタック部では低い圧縮レートにより高品位に格納でき、波形サンプルの後半は高い圧縮レートにより低品位に格納できる。「音量補正パラメータ」とは、波形データ取り出し装置150が圧縮された波形データを取り出す際に、メモリに記憶される波形データの音量を原音の音量に復元するために用いるパラメータである。波形データ格納装置100が波形サンプルの原音から音量データを変更してメモリに格納し、波形データ取り出し装置150が圧縮された波形データをメモリから取り出し、この音量補正パラメータを用いることで原音の音量に復元することができる。
また、本実施形態では、副情報領域をフレームのヘッダ部に配置しているが、これに限定されず、副情報領域をフレームの他の部分、例えばフッタ領域に配置する態様であっても構わない。また、本実施形態のように、副情報領域のサイズが固定の場合は、フレームサイズは、フレーム内のデータ領域サイズと同等である。
格納部16では、ヘッダ情報中の「フレーム種類(識別子)」で指定されるサイズのデータ領域を含むフレームの副情報領域(図6参照)にヘッダ情報を格納する一方、ヘッダ情報中の「共通有効ビット長」で波形サンプル(予測誤差データE)を抽出した圧縮サンプルを副情報領域以降のデータ領域に順次格納する。このデータ領域は、「フレーム種類(識別子)」と「共通有効ビット長」とに応じた個数の圧縮サンプルが格納可能であり、このデータ領域に格納可能な個数の圧縮サンプルが格納されると、再び判定部13によって、これ以降に供給される波形サンプルに基づいてフレーム種類(識別子)および共通有効ビット長を判定する動作を繰り返して、新たなフレームの作成を開始する。
次に、図7を参照してピアノ音の原波形データWを圧縮してフレームに格納する一例について説明する。ピアノ音をサンプリングした原波形データWを、図3に図示するように、立ち上がりから所定レベルに減衰するまでのA区間と、それ以降のB区間とに区分する。音の出だしであるアタック領域を含むA区間では波形が急激に変化するのに対し、持続領域となるB区間では波形が緩やかに変化する。
波形が急激に変化するA区間では、各波形サンプル(予測誤差データE)の個々の有効ビット長がばらつく為に前半フレームと後半フレームの共通有効ビット長が一致しない。この為、前述した判定部13では、A区間における1フレームサイズを256バイトと判定する。この結果、前述の格納部16では、図6(b)に図示するフレームの副情報領域にヘッダ情報を格納すると共に、量子化された各波形サンプル(予測誤差データE)をヘッダ情報中の「共通有効ビット長」で抽出した圧縮サンプルを、当該「共通有効ビット長」に基づいて決定されるサンプル数分、データ領域に順次格納する。例えば、共通有効ビット長が9ビットであった場合には、データ領域(252バイト)に224サンプル分収納する。
一方、波形が穏やかに変化するB区間では、各波形サンプル(予測誤差データE)の個々の有効ビット長がばらつかず、前半フレームと後半フレームの共通有効ビット長が一致する。この為、前述した判定部13では、A区間における1フレームサイズを512バイトと判定する。
この結果、前述の格納部16では、図6(a)に図示するフレームの副情報領域にヘッダ情報を格納すると共に、量子化された各波形サンプル(予測誤差データE)をヘッダ情報中の「共通有効ビット長」で抽出した圧縮サンプルを、当該「共通有効ビット長」に基づいて決定されるサンプル数分、データ領域に順次格納する。例えば、共通有効ビット長が10ビットであった場合には、データ領域(508バイト)に406サンプル分収納する。
こうして形成されるフレームは、格納部16からフレーム単位で出力されてメモリ17(図1参照)に格納される。メモリ17に格納されたフレームは、図8に示す波形データ取り出し装置150により読み出される。
次に、図8を参照して波形データ取り出し装置150の概略構成について説明する。この波形データ取り出し装置150は、メモリ17内の指定されたフレームにおける副情報領域から読み出された共通有効ビット長を歩進レートとして、アドレスデータを生成するアドレスデータ生成部151と、生成されたアドレスデータによって、メモリ17に記憶されたフレーム内のデータ領域から圧縮サンプルを取り出す取り出し部152と、メモリ17内のデータ領域から取り出された圧縮サンプルの数が、副情報領域に記憶されたフレーム種類(識別子)で指定されるフレームサイズを超えたときに、メモリ17内から指定されたフレームに続く次のフレームを指定するフレーム指定部153とを有する。
アドレスデータ生成部151は、レジスタBITW、カウンタBITC、判断部151a、判断部151b及びセレクタSELを有し、取り出し部152はアドレスカウンタADRC_H及びアドレスカウンタADRCを有し、フレーム指定部153は、ヘッダレジスタHR、アドレス変換器及び比較器COMPを有する。
波形データ取り出し装置150では、図示されていないホスト(CPU)からアドレスカウンタADRC_Hにフレーム上位アドレスがロードされ、アドレスカウンタADRCにはフレーム内アドレスがロードされる。アドレスカウンタADRCに読み出し開始アドレスとしてフレーム先頭を指定する「0」が格納されると、取り出し対象となるフレームの副情報領域からヘッダ情報をメモリ17から読み出してヘッダレジスタHRに格納する。
ヘッダレジスタHRに格納されたヘッダ情報中の共通有効ビット長は、レジスタBITWに格納される。レジスタHRに格納されたヘッダ情報中のフレーム種類(識別子)は、1フレームサイズ分のフレーム内アドレスに変換した後に比較器COMPの一端に入力される。フレーム内のデータ領域に格納される1つの圧縮サンプルのビット位置を指定するカウンタBITCは、アドレスカウンタADRC(フレーム内アドレス)がヘッダ情報を示す「0」又は「1」と判断部151aで判断された場合はリセットされる一方、同様に判断部151bにおいてもヘッダ情報を示す「0」又は「1」と判断された場合は、セレクタSELに対して「1」を供給して、アドレスカウンタADRCを強制的に歩進(インクリメント)させる。「0」および「1」以外(ヘッダ情報以外)の場合、セレクタSELはカウンタBITCのCarry信号をアドレスカウンタADRCに供給するように構成されている。
カウンタBITCを用いてレジスタBITWを累算してアドレスカウンタADRCを歩進させることによりフレーム内のデータ領域に格納される圧縮サンプルの読み出しアドレスを発生させる。アドレスカウンタADRCから出力される読み出しアドレスは、比較器COMPの他端に入力される。比較器COMPは、アドレスカウンタADRC(フレーム内アドレス)が1フレームサイズ分に達した場合に当該アドレスカウンタADRCをリセットする。
このように、波形データ取り出し装置150では、取り出し対象となるフレームのデータ領域に格納される各圧縮サンプルの個々の読み出しアドレスを、ヘッダ情報中のフレーム種類(識別子)および共通有効ビット長を参照して生成し、生成した読み出しアドレスに応じて各フレームから圧縮サンプルを読み出すようになっている。
次に、図9を参照して、上述したメモリ17と波形データ取り出し装置150とを具備する電子楽器200について説明する。図9は、電子楽器200の全体構成を示すブロック図である。この図において、演奏入力部20は、演奏操作に応じた演奏情報を発生する。操作部21は、各種操作スイッチを有し、ユーザ操作されるスイッチ種に応じたスイッチイベントを発生する。CPU22は、演奏入力部20が発生する演奏情報に応じたノートオン・ノートオフイベントを発生して波形取り出し装置150に供給すると共に、波形データ取り出し装置150によりメモリ17から楽音形成に必要な圧縮サンプル(圧縮波形データ)の読み出しを指示する。
ROM23は、CPU22にロードされる各種制御プログラムを記憶する。RAM24は、CPU22の処理に使用される各種レジスタ・フラグデータを一時記憶する。メモリ17は、所定の音色の圧縮サンプル(圧縮波形データ)が記憶されており、このメモリ17からCPU22の読み出し指示に応じて、波形データ取り出し装置150が楽音発生に必要な圧縮サンプルを読み出す。
伸長部25は、波形データ取り出し装置150により読み出される圧縮サンプルに伸長処理を施して得た波形データを発音部26に供給する。発音部26は、伸長部25から供給される波形データに基づいて楽音データを形成し、さらにこの楽音データをアナログ形式の楽音信号に変換した後、その楽音信号から不要ノイズを除去する等のフィルタリングを施してからレベル増幅してスピーカより放音させる。
以上説明したように、本実施形態によれば、波形が急激に変化する区間では、各波形サンプル(予測誤差データE)の有効ビット長がばらついて前半フレームと後半フレームの共通有効ビット長が一致しない為に1フレームサイズを256バイトと判定し、一方、波形が穏やかに変化する区間では、各波形サンプル(予測誤差データE)の有効ビット長がばらつかず、前半フレームと後半フレームの共通有効ビット長が一致する為に1フレームサイズを512バイトと判定するので、音色(波形種)に応じてフレームサイズを可変させることが可能になる。
また、こうしてフレームサイズを可変させることによって、フレームサイズ固定の場合に比較してフレーム数の増加に伴って重複する無駄なヘッダ情報が増えたり、波形サンプルにおける符号化ビットが増えたりする弊害を解消することが出来る。
加えて、上述した実施形態では、フレームの副情報領域にヘッダ情報として「音量補正パラメータ」を設けたので、例えば波形サンプルの前半のアタック部では原音そのままの音量データとして格納し、波形サンプルの後半は原音から音量を下げた音量データで格納する。そうすることで、波形サンプルの前半のアタック部では低い圧縮レートにより高品位に格納でき、波形サンプルの後半は高い圧縮レートにより低品位に格納できる。
また、波形データ取り出し装置150が圧縮された波形データをメモリから取り出す際に、音量補正パラメータを用いることで原音の音量に復元することができる。
加えて、本実施形態では、前半フレームと後半フレームの共通有効ビット長が不一致ならば、1フレームサイズを副情報領域4バイトとデータ領域252バイトとを含む256バイト/フレームと判定し、一方、前半フレームと後半フレームの共通有効ビット長が一致すれば、1フレームサイズを副情報領域4バイトとデータ領域508バイトとを含む512バイト/フレームと判定するようにしたが、これに限らず、量子化ビット長判定部13aで判定された量子化ビット長が同一ビット長で所定サンプル数以上連続した場合にサイズ判定部13bが1フレームサイズを512バイト/フレームと判定し、一方、量子化ビット長判定部13aで判定された量子化ビット長が同一ビット長で所定サンプル数以上連続しない場合にサイズ判定部13bが1フレームサイズを256バイト/フレームと判定する態様とすることも出来る。
すなわち、波形が急激に変化する区間では、量子化ビット長判定部13aで判定される量子化ビット長が同一ビット数で所定サンプル数以上連続しない為、サイズ判定部13bが1フレームサイズを256バイト/フレームと判定し、一方、波形が穏やかに変化する区間では、量子化ビット長判定部13aで判定される量子化ビット長が同一ビット数で所定サンプル数以上連続する為、サイズ判定部13bが1フレームサイズを512バイトと判定する簡便な手法を用いることも可能である。
以上、本発明の実施の一形態について説明したが、本発明はそれに限定されるものではなく、本願出願の特許請求の範囲に記載された発明とその均等の範囲に含まれる。以下では、本願出願当初の特許請求の範囲に記載された各発明について付記する。
(付記)
[請求項1]
データサイズが異なる複数の種類のフレームによって構成され、
前記複数の種類のフレームには、夫々副情報領域及びデータ領域が設定され、
前記副情報領域は、波形サンプルにおいて或る区間の共通有効ビット長のデータを記憶する領域と、前記複数の種類のフレームのいずれかを識別する識別子を記憶する領域と、を含み、
前記データ領域は、前記波形サンプルから前記共通有効ビット長で抽出され、前記共通有効ビット長に基づいて決定される個数の前記抽出される波形サンプルを記憶する領域である、
ことを特徴とする波形データ構造。
[請求項2]
前記データ領域は、音量が変更された前記波形サンプルを記憶する領域であり、
前記副情報領域は、前記データ領域に記憶された波形サンプルの音量を補正する音量補正パラメータを記憶する領域を含む、
ことを特徴とする請求項1に記載の波形データ構造。
[請求項3]
少なくとも、互いに格納可能な波形サンプルの数が異なる第1および第2のフレームによって構成され、
前記第1および第2のフレームは、副情報領域とデータ領域とを備え、
前記副情報領域は、前記データ領域に格納する波形サンプルの共通有効ビット長のデータを記憶する領域と、前記第1および第2のフレームのいずれかを識別するフレーム種類のデータを記憶する領域とを含むフレーム属性データを有し、
前記データ領域は、前記副情報領域に設けられたフレーム属性データ中の前記フレーム種類で識別される前記第1および第2のフレームに応じて決定され、前記副情報領域に設けられた前記フレーム属性データ中の前記共通有効ビット長に応じたサンプル数に合わせた波形サンプルを収納する、
ことを特徴とする波形データ構造。
[請求項4]
前記共通有効ビット長は、前記データ領域への格納対象となる複数の波形サンプルの有効ビット長の内、最も大きい有効ビット長であることを特徴とする請求項1乃至3の何れかに記載の波形データ構造。
[請求項5]
前記第1のフレームのデータ領域には、当該第1のフレーム全体から前記副情報領域分を減算した残りのデータ容量を前記共通有効ビット長で除した整数分の波形サンプルが収納され、
前記第2のフレームのデータ領域には、当該第2のフレーム全体から前記副情報領域分を減算した残りのデータ容量を前記共通有効ビット長で除した整数分の波形サンプルが収納されることを特徴とする請求項3記載の波形データ構造。
[請求項6]
格納対象となる各波形サンプルの有効ビット長のばらつきに応じて、互いに格納可能な波形サンプルの設定数が異なる、少なくとも第1および第2のうちの何れかのフレームを判定する判定部と、
前記判定部により判定された前記第1および第2の何れかのフレームの副情報領域に、前記波形サンプルの共通有効ビット長と、前記第1および第2の何れかのフレームを識別するフレーム種類とを含むフレーム属性データを格納する副情報格納部と、
前記判定部により判定された前記第1および第2の何れかのフレームのデータ領域に、前記副情報領域に格納された前記フレーム属性データ中の前記共通有効ビット長に応じた波形サンプル数の設定数に合わせて前記波形サンプルを格納する波形サンプル格納部と、
を具備することを特徴とする波形データ格納装置。
[請求項7]
前記判定部は、格納対象となる各波形サンプルの有効ビット長がばらついた場合に、前記第1および第2のフレームの内でサイズの小さい方を判定し、一方、格納対象となる各波形サンプルの有効ビット長がばらつかない場合に、前記第1および第2のフレームの内でサイズの大きい方を判定することを特徴とする請求項6記載の波形データ格納装置。
[請求項8]
前記判定部は、
仮想的な前半フレームおよび後半フレームを定義しておき、
格納対象の各波形サンプルの有効ビット長の中で最も大きい有効ビット長を第一の共通有効ビット長として抽出し、抽出した前記第一の共通有効ビット長に対応して決定される前記前半フレームに格納可能な数に前記波形サンプル数が達する時に前記前半フレームを形成する前半フレーム形成部と、
前記前半フレーム形成部が格納対象にする以降の各波形サンプルの有効ビット長の中で最も大きい有効ビット長を第二の共通有効ビット長として抽出し、抽出した前記第二の共通有効ビット長に対応して決定される前記後半フレームに格納可能な数に前記波形サンプル数が達する時に前記後半フレームを形成する後半フレーム形成部と、
前記前半フレーム形成部で抽出した前記第一の共通有効ビット長と、前記後半フレーム形成部で抽出した前記第二の共通有効ビット長とが一致する場合に、前記第1および第2のフレームの内でサイズの大きい方を表すフレーム種類と前記後半フレーム形成部が抽出した前記第二の共通有効ビット長とを含むフレーム属性データを生成する第1のフレーム属性データ生成部と、
前記前半フレーム形成部で抽出した前記第一の共通有効ビット長と、前記後半フレーム形成部で抽出した前記第二の共通有効ビット長とが一致しない場合に、前記第1および第2のフレームの内でサイズの小さい方を表すフレーム種類と前記前半フレーム形成部が抽出した前記第一の共通有効ビット長とを含むフレーム属性データを生成する第2のフレーム属性データ生成部と、
を具備することを特徴とする請求項6乃至7の何れかに記載の波形データ格納装置。
[請求項9]
前記波形サンプル格納部は、前記副情報領域に格納されたフレーム属性データ中の共通有効ビット長で各波形サンプルを符号化した圧縮波形サンプルを、前記判定部により判定された前記第1および第2の何れかのフレームのデータ領域に格納することを特徴とする請求項6乃至8の何れかに記載の波形データ格納装置。
[請求項10]
供給される波形サンプルのビット長に応じて、前記波形サンプルを格納するフレームサイズが異なる複数のフレームのうち、いずれのフレームに格納するかを判定する判定部と、
少なくとも前記波形サンプルのビット長を示すビット長データと、前記判定部により判定された前記いずれのフレームに格納するかを示すフレーム種類データとを、メモリ内に設定した副情報領域に格納し、前記副情報領域に格納された前記フレーム種類データに基づくサイズのデータ領域を前記メモリ内に設定するとともに、前記メモリ内に設定される前記データ領域に、前記波形サンプルを格納する格納部と、
を具備することを特徴とする波形データ格納装置。
[請求項11]
前記判定部は、
原波形をサンプリングした波形サンプルの適応予測で得られる予測誤差データの量子化ビット長が、同一ビット長で所定サンプル数以上連続するか否かを判別する連続判別部と、
前記連続判別部により同一ビット長で所定サンプルデータ数以上連続しないと判別された場合には、少なくともサイズの異なる大小何れかのデータ領域サイズの内、サイズの小さいデータ領域サイズと判定し、一方、同一ビット数で所定サンプル数以上連続すると判別された場合には、サイズの大きいデータ領域サイズと判定するサイズ判定部と
を具備することを特徴とする請求項10記載の波形データ格納装置。
[請求項12]
波形データ格納装置で用いられる格納方法であって、
前記波形データ格納装置が、
格納対象となる各波形サンプルの有効ビット長のばらつきに応じて、互いに格納可能な波形サンプルの数が異なる、少なくとも第1および第2のうちの何れかのフレームを判定し、
判定された前記第1および第2の何れかのフレームの副情報領域に、前記波形サンプルの共通有効ビット長と、前記第1および第2の何れかのフレームを識別するフレーム種類とを含むフレーム属性データを格納し、
判定された前記第1および第2の何れかのフレームのデータ領域に、前記副情報領域に格納された前記フレーム属性データ中の前記共通有効ビット長に応じたサンプル数分の波形サンプルを格納する、
ことを特徴とする波形データ格納方法。
[請求項13]
波形データ格納装置で用いられる格納方法であって、
前記波形データ格納装置は、
格納対象となる各波形サンプルの有効ビット長がばらついた場合に、前記第1および第2のフレームの内でサイズの小さい方を判定し、
格納対象となる各波形サンプルの有効ビット長がばらつかない場合に、前記第1および第2のフレームの内でサイズの大きい方を判定する
ことを特徴とする請求項12記載の波形データ格納方法。
[請求項14]
波形データ格納装置で用いられる格納方法であって、
前記波形データ格納装置は、
仮想的な前半フレームおよび後半フレームを定義しておき、
格納対象の各波形サンプルの有効ビット長の中で最も大きい有効ビット長を第一の共通有効ビット長として抽出し、抽出した前記第一の共通有効ビット長に対応して決定される前記前半フレームに格納可能な数に前記波形サンプル数が達する時に前記前半フレームを形成し、
前記前半フレームを形成する以降の各波形サンプルの有効ビット長の中で最も大きい有効ビット長を第二の共通有効ビット長として抽出し、抽出した前記第二の共通有効ビット長に対応して決定される前記後半フレームに格納可能な数に前記波形サンプル数が達する時に前記後半フレームを形成し、
前記前半フレームを形成した際に抽出した前記第一の共通有効ビット長と、前記後半フレームを形成した際に抽出した前記第二の共通有効ビット長とが一致する場合に、前記第1および第2のフレームの内でサイズの大きい方を表すフレーム種類と前記後半フレーム形成部が抽出した前記第二の共通有効ビット長とを含むフレーム属性データを生成し、
前記前半フレームを形成した際に抽出した前記第一の共通有効ビット長と、前記後半フレームを形成した際に抽出した前記第二の共通有効ビット長とが一致しない場合に、前記第1および第2のフレームの内でサイズの小さい方を表すフレーム種類と前記前半フレームを形成した際に抽出した前記第一の共通有効ビット長とを含むフレーム属性データを生成する、
ことを特徴とする請求項12乃至13の何れかに記載の波形データ格納方法。
[請求項15]
波形データ格納装置で用いられる格納方法であって、
前記波形データ格納装置が、
供給される波形サンプルのビット長に応じて、前記波形サンプルを格納するフレームの領域サイズを判定し、
少なくとも前記波形サンプルのビット長を示すビット長データと前記判定された前記領域サイズを示すデータ領域サイズデータとを、メモリ内に設定した副情報領域に格納し、
前記副情報領域に格納された前記データ領域サイズデータで示される前記領域サイズのデータ領域を前記メモリ内に設定するとともに、前記設定された前記データ領域に前記波形サンプルを格納する
ことを特徴とする波形データ格納方法。
[請求項16]
波形データ格納装置で用いられる格納方法であって、
前記波形データ格納装置は、
原波形をサンプリングした波形サンプルの適応予測で得られる予測誤差データの量子化ビット長が、同一ビット長で所定サンプル数以上連続するか否かを判別し、
同一ビット長で所定サンプルデータ数以上連続しないと判別された場合には、少なくともサイズの異なる大小何れかのデータ領域サイズの内、サイズの小さいデータ領域サイズと判定し、
同一ビット数で所定サンプル数以上連続すると判別された場合には、少なくともサイズの異なる大小何れかのデータ領域サイズの内、サイズの大きいデータ領域サイズと判定する
ことを特徴とする請求項14記載の波形データ格納方法。
[請求項17]
請求項1の波形データ構造を備えたメモリ内において指定されたフレームの前記副情報領域から読み出された前記共通有効ビット長に基づいてアドレスデータを生成するアドレスデータ生成部と、
前記アドレス生成部により生成されたアドレスデータに従って、前記指定されたフレームのデータ領域から前記波形サンプルを取り出す取り出し部と、
前記取り出し部により前記波形サンプルが取り出された後に取り出す次のフレームを指定するフレーム指定部と、
を具備することを特徴とする波形データ取り出し装置。
[請求項18]
請求項2の波形データ構造を備えたメモリ内において指定された前記第1および第2の何れかのフレームの前記副情報領域に設けられたフレーム属性データ中の前記共通有効ビット長に応じたアドレスデータに従って、前記指定されたフレームのデータ領域から前記波形サンプルを順次読み出す読み出し部と、
前記読み出し部により前記波形サンプルが読み出された後に読み出す、前記指定されたフレームに続く前記第1および第2の何れかの次フレームを指定する次フレーム指定部と、
を具備することを特徴とする波形データ取り出し装置。
[請求項19]
波形データ取り出し装置で用いられる波形データ取り出し方法であって、
前記波形データ取り出し装置が、
請求項1の波形データ構造を備えたメモリ内において指定されたフレームの前記副情報領域から読み出されたビット長データに基づいてアドレスデータを生成し、
前記生成された前記アドレスデータに従って、前記指定されたフレームのデータ領域から前記波形サンプルを取り出し、
前記波形サンプルが取り出された後に取り出す次のフレームを指定する
ことを特徴とする波形データ取り出し方法。
[請求項20]
波形データ取り出し装置で用いられる波形データ取り出し方法であって、
前記波形データ取り出し装置が、
請求項2の波形データ構造を備えたメモリ内において指定された前記第1および第2の何れかのフレームの前記副情報領域に設けられたフレーム属性データ中の共通有効ビット長に応じたアドレスデータに従って、前記指定されたフレームのデータ領域から波形サンプルを順次読み出し、
前記波形サンプルが読み出された後に読み出す、前記指定されたフレームに続く前記第1および第2の何れかの次フレームを指定する
ことを特徴とする波形データ取り出し方法。
[請求項21]
請求項1に記載の波形データ構造を有するメモリと、
請求項17に記載の波形データ取り出し装置と、
演奏操作に応じた演奏情報を発生する演奏入力部と、
前記演奏情報に応じた楽音の発生を指示する指示処理と、当該指示処理に応答して、前記波形データ取り出し装置が前記メモリから必要な波形サンプルを取り出すように制御する制御処理とを実行する処理部と、
前記波形データ取り出し装置から取り出された前記波形サンプルを伸長して得た波形データに基づいて楽音を発生する発音部と、
を具備することを特徴とする電子楽器。
[請求項22]
請求項2に記載の波形データ構造を有するメモリと、
請求項18に記載の波形データ取り出し装置と、
演奏操作に応じた演奏情報を発生する演奏入力部と、
前記演奏情報に応じた楽音の発生を指示する指示処理と、当該指示処理に応答して、前記波形データ取り出し装置が前記メモリから必要な波形サンプルを取り出すように制御する制御処理とを実行する処理部と、
前記波形データ取り出し装置から取り出された前記波形サンプルを伸長して得た波形データに基づいて楽音を発生する発音部と、
を具備することを特徴とする電子楽器。
[請求項23]
前記発音部は、
前記波形データ取り出し装置がフレームの前記副情報領域から抽出した音量補正パラメータに基づいて復元される波形サンプルを発音することを特徴とする請求項21乃至22の何れかに記載の電子楽器。
1 波形データ圧縮部
10 減算器
11 加算器
12 ADPCM予測部
13 判定部
13a 量子化ビット長判定部
13b サイズ判定部
15 ヘッダ情報生成部
16 格納部
17 メモリ
20 演奏入力部
21 操作部
22 CPU
23 ROM
24 RAM
25 伸長部
26 発音部
100 波形データ格納装置
150 波形データ取り出し装置
200 電子楽器

Claims (4)

  1. 電子楽器がメモリからフレーム化された圧縮波形データをヘッダ情報に基づいて取り出すデータ構造であって、
    格納対象となった圧縮波形データの有効ビット長がばらついた場合に格納容量の小さいフレームが設定され、一方、有効ビット長がばらつかない場合に格納容量の大きいフレームが設定され、
    前記格納容量の小さいフレームおよび前記格納容量の大きいフレームは、それぞれ副情報領域およびデータ領域を含み、
    前記副情報領域は、少なくとも前記ヘッダ情報として、格納対象となる圧縮波形データの共通有効ビット長と、前記格納容量の小さいフレームおよび前記格納容量の大きいフレームの何れであるかを識別する識別子とを含み、
    前記データ領域は、前記副情報領域に格納される圧縮波形データの共通有効ビット長に応じたサンプル数分の圧縮波形データを含み、
    前記共通有効ビット長は、前記データ領域に格納されるサンプル数分の各圧縮波形データの有効ビット長の内、最も大きい有効ビット長であり、
    取り出し対象となるフレームの前記副情報領域に含まれる前記識別子および前記共通有効ビット長に基づいて生成した読み出しアドレスに従って、前記取り出し対象となるフレームの前記データ領域より前記圧縮波形データが取り出される
    ことを特徴とするデータ構造。
  2. 副情報領域およびデータ領域を備え、格納容量の小さいフレームおよび格納容量の大きいフレームの内、格納対象となる圧縮波形データの有効ビット長がばらついた場合に前記格納容量の小さいフレームを設定し、一方、有効ビット長がばらつかない場合に前記格納容量の大きいフレームを設定するフレーム設定部と、
    前記フレーム設定部により設定された前記格納容量の小さいフレームおよび前記格納容量の大きいフレームの何れかに含まれる前記副情報領域に、少なくとも前記格納対象となる圧縮波形データの共通有効ビット長と、前記格納容量の小さいフレームおよび前記格納容量の大きいフレームの何れであるかを識別する識別子とを格納する副情報格納部と、
    前記フレーム設定部により設定された前記格納容量の小さいフレームおよび前記格納容量の大きいフレームの何れかに含まれる前記データ領域に、前記副情報領域に格納された圧縮波形データの共通有効ビット長に応じたサンプル数分の圧縮波形データを格納するデータ格納部と、
    を具備することを特徴とするデータ格納装置。
  3. メモリからフレーム化された圧縮波形データをヘッダ情報に基づいて取り出す装置であって、
    格納対象となった圧縮波形データの有効ビット長がばらついた場合に格納容量の小さいフレームが設定され、一方、有効ビット長がばらつかない場合に格納容量の大きいフレームが設定され、
    前記格納容量の小さいフレームおよび前記格納容量の大きいフレームは、それぞれ副情報領域およびデータ領域を含み、
    前記副情報領域は、少なくとも前記ヘッダ情報として、格納対象となる圧縮波形データの共通有効ビット長と、前記格納容量の小さいフレームおよび前記格納容量の大きいフレームの何れであるかを識別する識別子とを含み、
    前記データ領域は、前記副情報領域に格納される圧縮波形データの共通有効ビット長に応じたサンプル数分の圧縮波形データを含み、
    前記共通有効ビット長を、前記データ領域に格納されるサンプル数分の各圧縮波形データの有効ビット長の内、最も大きい有効ビット長としたデータ構造を備えるメモリと、
    前記メモリ内において指定されるフレームの前記副情報領域に含まれる前記識別子および前記共通有効ビット長に基づいて読み出しアドレスデータを生成するアドレスデータ生成部と、
    前記アドレスデータ生成部により生成された読み出しアドレスデータに従って、前記指定されたフレームの前記データ領域から前記圧縮波形データを取り出す取り出し部と、
    前記取り出し部により前記指定されたフレームの前記データ領域から前記圧縮波形データを取り出し終えた後、次に取り出し対象となるフレームを指定するフレーム指定部と、
    を具備することを特徴とするデータ取り出し装置。
  4. データ構造におけるヘッダ情報に基づいて、フレーム化された圧縮波形データを取り出す電子楽器であって、
    前記データ構造は、
    格納対象となった圧縮波形データの有効ビット長がばらついた場合に格納容量の小さいフレームが設定され、一方、有効ビット長がばらつかない場合に格納容量の大きいフレームが設定され、
    前記格納容量の小さいフレームおよび前記格納容量の大きいフレームは、それぞれ副情報領域およびデータ領域を含み、
    前記副情報領域は、少なくとも前記ヘッダ情報として、格納対象となる圧縮波形データの共通有効ビット長と、前記格納容量の小さいフレームおよび前記格納容量の大きいフレームの何れであるかを識別する識別子とを含み、
    前記データ領域は、前記副情報領域に格納される圧縮波形データの共通有効ビット長に応じたサンプル数分の圧縮波形データを含み、
    前記共通有効ビット長は、前記データ領域に格納されるサンプル数分の各圧縮波形データの有効ビット長の内、最も大きい有効ビット長であり、
    取り出し対象となるフレームの前記副情報領域に含まれる前記識別子および前記共通有効ビット長から生成した読み出しアドレスに従って、前記取り出し対象となるフレームの前記データ領域より前記圧縮波形データが取り出されるデータ構造であり、
    前記データ構造を有するメモリと、
    前記メモリ内において指定されるフレームの前記副情報領域に含まれる前記識別子および前記共通有効ビット長に基づいて読み出しアドレスデータを生成するアドレスデータ生成部
    前記アドレスデータ生成部により生成された読み出しアドレスデータに従って、前記指定されたフレームの前記データ領域から前記圧縮波形データを取り出す取り出し部、並びに
    前記取り出し部により前記指定されたフレームの圧縮波形データを取り出し終えた後、次に取り出し対象となるフレームを指定するフレーム指定部
    を具備するデータ取り出し装置と、
    演奏操作に応じた演奏情報を発生する演奏入力部と、
    前記演奏情報に応じた楽音の発生を指示する指示処理と、当該指示処理に応答して、前記データ取り出し装置が前記メモリから必要な圧縮波形データを取り出すように制御する制御処理とを実行する処理部と、
    前記データ取り出し装置から取り出された前記圧縮波形データを伸長して得た波形データに基づいて楽音を発生する発音部と、
    を具備することを特徴とする電子楽器。
JP2016152124A 2015-09-15 2016-08-02 データ構造、データ格納装置、データ取り出し装置および電子楽器 Active JP6146686B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
RU2016136820A RU2662633C2 (ru) 2015-09-15 2016-09-14 Структура данных о волновой форме, устройство для хранения данных о волновой форме, способ сохранения данных о волновой форме, устройство для извлечения данных о волновой форме, способ извлечения данных о волновой форме и электронный музыкальный инструмент
US15/265,820 US10210854B2 (en) 2015-09-15 2016-09-14 Waveform data structure, waveform data storage device, waveform data storing method, waveform data extracting device, waveform data extracting method and electronic musical instrument
CN201610825908.5A CN106875933B (zh) 2015-09-15 2016-09-14 波形数据结构、波形数据存放装置及方法、波形数据取出装置及方法以及电子乐器
EP16189007.4A EP3144926B1 (en) 2015-09-15 2016-09-15 Waveform data structure for musical instrument with scalable storage-frame length depending on tones .
US16/239,073 US10515618B2 (en) 2015-09-15 2019-01-03 Waveform data structure, waveform data storage device, waveform data storing method, waveform data extracting device, waveform data extracting method and electronic musical instrument

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015182212 2015-09-15
JP2015182212 2015-09-15

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2017098579A Division JP6604486B2 (ja) 2015-09-15 2017-05-18 データ格納装置、データ取り出し装置、電子楽器および方法

Publications (2)

Publication Number Publication Date
JP2017058663A JP2017058663A (ja) 2017-03-23
JP6146686B2 true JP6146686B2 (ja) 2017-06-14

Family

ID=58390130

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016152124A Active JP6146686B2 (ja) 2015-09-15 2016-08-02 データ構造、データ格納装置、データ取り出し装置および電子楽器
JP2017098579A Active JP6604486B2 (ja) 2015-09-15 2017-05-18 データ格納装置、データ取り出し装置、電子楽器および方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2017098579A Active JP6604486B2 (ja) 2015-09-15 2017-05-18 データ格納装置、データ取り出し装置、電子楽器および方法

Country Status (3)

Country Link
JP (2) JP6146686B2 (ja)
CN (1) CN106875933B (ja)
RU (1) RU2662633C2 (ja)

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347478A (en) * 1991-06-09 1994-09-13 Yamaha Corporation Method of and device for compressing and reproducing waveform data
JP2745866B2 (ja) * 1991-06-09 1998-04-28 ヤマハ株式会社 波形データ及び楽音制御用のディジタルデータ圧縮方法並びに波形データ再生装置
JPH06309895A (ja) * 1993-04-28 1994-11-04 Mitsubishi Electric Corp 半導体メモリオーディオ記録再生装置
JP2770137B2 (ja) * 1994-09-22 1998-06-25 日本プレシジョン・サーキッツ株式会社 波形データ圧縮装置
JP3654079B2 (ja) * 1999-09-27 2005-06-02 ヤマハ株式会社 波形生成方法及び装置
JP4293712B2 (ja) * 1999-10-18 2009-07-08 ローランド株式会社 オーディオ波形再生装置
SG118122A1 (en) * 2001-03-27 2006-01-27 Yamaha Corp Waveform production method and apparatus
US7308406B2 (en) * 2001-08-17 2007-12-11 Broadcom Corporation Method and system for a waveform attenuation technique for predictive speech coding based on extrapolation of speech waveform
EP1304680A3 (en) * 2001-09-13 2004-03-03 Yamaha Corporation Apparatus and method for synthesizing a plurality of waveforms in synchronized manner
JP3826870B2 (ja) * 2002-10-01 2006-09-27 ヤマハ株式会社 圧縮データ構造、波形生成装置および波形記憶装置
US7378586B2 (en) * 2002-10-01 2008-05-27 Yamaha Corporation Compressed data structure and apparatus and method related thereto
JP3826878B2 (ja) * 2002-11-19 2006-09-27 コニカミノルタフォトイメージング株式会社 撮像装置
RU2314502C2 (ru) * 2004-02-26 2008-01-10 Эл Джи Электроникс Инк. Устройство и способ для обработки звука звонка
JP4639966B2 (ja) * 2005-05-31 2011-02-23 ヤマハ株式会社 オーディオデータ圧縮方法およびオーディオデータ圧縮回路並びにオーディオデータ伸張回路
EP1933305B1 (en) * 2005-09-05 2011-12-21 Fujitsu Ltd. Audio encoding device and audio encoding method
RU68691U1 (ru) * 2007-06-15 2007-11-27 Илларион Борисович Полумисков Система преобразования голоса в звучания музыкальных инструментов
CN101594537B (zh) * 2009-06-04 2011-07-27 北京京北方信息技术有限公司 海量图像数据压缩方法
US8183452B2 (en) * 2010-03-23 2012-05-22 Yamaha Corporation Tone generation apparatus
JP6021498B2 (ja) * 2012-08-01 2016-11-09 任天堂株式会社 データ圧縮装置、データ圧縮プログラム、データ圧縮システム、データ圧縮方法、データ伸張装置、データ圧縮伸張システム、および圧縮データのデータ構造

Also Published As

Publication number Publication date
CN106875933B (zh) 2020-12-18
JP2017058663A (ja) 2017-03-23
JP2017138629A (ja) 2017-08-10
CN106875933A (zh) 2017-06-20
RU2016136820A3 (ja) 2018-03-19
JP6604486B2 (ja) 2019-11-13
RU2016136820A (ru) 2018-03-19
RU2662633C2 (ru) 2018-07-26

Similar Documents

Publication Publication Date Title
US10515618B2 (en) Waveform data structure, waveform data storage device, waveform data storing method, waveform data extracting device, waveform data extracting method and electronic musical instrument
US7276655B2 (en) Music synthesis system
JP6146686B2 (ja) データ構造、データ格納装置、データ取り出し装置および電子楽器
US8706506B2 (en) Waveform compressing apparatus, waveform decompressing apparatus, and method of producing compressed data
US9165563B2 (en) Coding device, coding method, decoding device, decoding method, and storage medium
JP3826870B2 (ja) 圧縮データ構造、波形生成装置および波形記憶装置
JP4538705B2 (ja) ディジタル信号処理方法、学習方法及びそれらの装置並びにプログラム格納媒体
JP2004294969A (ja) 音声信号圧縮装置、音声信号圧縮方法及びプログラム
JPH03233500A (ja) 音声合成方式およびこれに用いる装置
JP3933072B2 (ja) 波形圧縮装置
WO2017164216A1 (ja) 音響処理方法および音響処理装置
JP3912304B2 (ja) 圧縮データ構造、波形生成装置および波形記憶装置
JP2014021162A (ja) 復号装置、復号方法、及びプログラム
JP4107085B2 (ja) 波形データ圧縮方法
JP2001282246A (ja) 波形データ時間伸張圧縮装置
JP3787986B2 (ja) 音波形データ圧縮・復元方式とその動作を実行するためのプログラムを記録した記録媒体
JP4007194B2 (ja) 音源装置
JP3116381B2 (ja) 楽音波形圧縮方法
JP4437703B2 (ja) 話速変換方法および装置
JP3933073B2 (ja) 波形伸長装置
JP2010034794A (ja) オーディオ符号化装置、オーディオ符号化プログラム及びオーディオ符号化方法
JP6130128B2 (ja) 圧縮データのデータ構造、記録媒体、データ圧縮装置、データ圧縮システム、データ圧縮プログラム、およびデータ圧縮方法
JP3210165B2 (ja) 音声符号化復号化方法および装置
JPH1152996A (ja) データ圧縮装置およびデータ伸長装置
JP2005275010A (ja) 音声伸張装置、音声伸張方法及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170327

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: 20170421

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170504

R150 Certificate of patent or registration of utility model

Ref document number: 6146686

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150