(57)【特許請求の範囲】
【請求項１】
第１波形区間における各圧縮波形データそれぞれの各有効ビット長に基づいて決定される第１共通有効ビット長と、第２波形区間における各圧縮波形データそれぞれの各有効ビット長に基づいて決定される第２共通有効ビット長と、が一致するか否かを判断する判断処理と、
一致しないと判断された場合に、第１フレーム種類の前半フレームの副情報領域に、前記第１共通有効ビット長を示すデータと、前記第１フレーム種類を識別する第１識別子を示すデータと、を格納し、前記前半フレームのデータ領域に、前記第１波形区間における各圧縮波形データから前記第１共通有効ビット長に基づいて抽出した複数の抽出波形データを格納し、前記第１フレーム種類の前記前半フレームとは異なる前記第１フレーム種類の後半フレームの副情報領域に、前記第２共通有効ビット長を示すデータと、前記第１フレーム種類を識別する第１識別子を示すデータと、を格納し、前記後半フレームのデータ領域に、前記第２波形区間における各圧縮波形データから前記第２共通有効ビット長に基づいて抽出した複数の抽出波形データを格納する第１フレームデータ格納処理と、
一致すると判断された場合に、前記第１フレーム種類より格納容量が大きい第２フレーム種類の第２フレームの副情報領域に、一致する共通有効ビット長を示すデータと、前記第２フレーム種類を識別する第２識別子を示すデータと、を格納し、前記第２フレームのデータ領域に、前記第１波形区間における各圧縮波形データ及び前記第２波形区間における各圧縮波形データから前記一致する共通有効ビット長に基づいて抽出した複数の抽出波形データを格納する第２フレームデータ格納処理と、
を実行するデータ格納装置。
【請求項２】
データ格納装置のコンピュータに、
第１波形区間における各圧縮波形データそれぞれの各有効ビット長に基づいて決定される第１共通有効ビット長と、第２波形区間における各圧縮波形データそれぞれの各有効ビット長に基づいて決定される第２共通有効ビット長と、が一致するか否かを判断する判断処理と、
一致しないと判断された場合に、第１フレーム種類の前半フレームの副情報領域に、前記第１共通有効ビット長を示すデータと、前記第１フレーム種類を識別する第１識別子を示すデータと、を格納し、前記前半フレームのデータ領域に、前記第１波形区間における各圧縮波形データから前記第１共通有効ビット長に基づいて抽出した複数の抽出波形データを格納し、前記第１フレーム種類の前記前半フレームとは異なる前記第１フレーム種類の後半フレームの副情報領域に、前記第２共通有効ビット長を示すデータと、前記第１フレーム種類を識別する第１識別子を示すデータと、を格納し、前記後半フレームのデータ領域に、前記第２波形区間における各圧縮波形データから前記第２共通有効ビット長に基づいて抽出した複数の抽出波形データを格納する第１フレームデータ格納処理と、
一致すると判断された場合に、前記第１フレーム種類より格納容量が大きい第２フレーム種類の第２フレームの副情報領域に、一致する共通有効ビット長を示すデータと、前記第２フレーム種類を識別する第２識別子を示すデータと、を格納し、前記第２フレームのデータ領域に、前記第１波形区間における各圧縮波形データ及び前記第２波形区間における各圧縮波形データから前記一致する共通有効ビット長に基づいて抽出した複数の抽出波形データを格納する第２フレームデータ格納処理と、
を実行させる方法。
【請求項３】
複数の第１圧縮波形データそれぞれの各有効ビット長に基づいて決定される第１共通有効ビット長の共通有効ビット長データと、第１フレーム種類を識別する第１識別子の識別子データと、を記憶している副情報領域と、前記複数の第１圧縮波形データから前記第１共通有効ビット長に基づいて抽出された複数の抽出波形データを記憶しているデータ領域と、を有する第１フレーム領域と、前記第１フレーム種類より格納容量が大きい第２フレーム種類の第２フレーム領域であって、複数の第２圧縮波形データそれぞれの各有効ビット長に基づいて決定される第２共通有効ビット長の共通有効ビット長データと、前記第２フレーム種類を識別する第２識別子の識別子データと、を記憶している副情報領域と、前記複数の第２圧縮波形データから前記第２共通有効ビット長に基づいて抽出された複数の抽出波形データを記憶しているデータ領域と、を有する第２フレーム領域と、を含む複数のフレーム領域を有するメモリから、或るフレーム領域内の副情報領域に記憶されている共通有効ビット長データと、識別子データと、を読み込み、
読み込まれた前記識別子データに基づいて識別されるフレーム種類に応じた第１アドレスデータを生成し、
読み込まれた前記共通有効ビット長データが示す共通有効ビット長に従って順次生成される第２アドレスデータが示す第２アドレスに従って、前記或るフレーム領域内のデータ領域に記憶されている複数の抽出波形データを読み込み、
前記第１アドレスデータが示す第１アドレスと、順次生成される前記第２アドレスデータが示す第２アドレスと、が一致すると判断された場合に、前記或るフレーム領域の次のフレーム領域内のデータ領域に記憶されている複数の抽出波形データを読み込むために、前記次のフレーム領域内の副情報領域に記憶されている共通有効ビット長データと、識別子データと、を読み込む、
データ取り出し装置。
【請求項４】
前記第１アドレスデータが示す第１アドレスと、順次生成される前記第２アドレスデータが示す第２アドレスと、が一致すると判断されない場合に、前記次のフレーム領域内の副情報領域に記憶されている共通有効ビット長データと、識別子データと、を読み込まない、請求項３に記載のデータ取り出し装置。
【請求項５】
データ取り出し装置のコンピュータに、
複数の第１圧縮波形データそれぞれの各有効ビット長に基づいて決定される第１共通有効ビット長の共通有効ビット長データと、第１フレーム種類を識別する第１識別子の識別子データと、を記憶している副情報領域と、前記複数の第１圧縮波形データから前記第１共通有効ビット長に基づいて抽出された複数の抽出波形データを記憶しているデータ領域と、を有する第１フレーム領域と、前記第１フレーム種類より格納容量が大きい第２フレーム種類の第２フレーム領域であって、複数の第２圧縮波形データそれぞれの各有効ビット長に基づいて決定される第２共通有効ビット長の共通有効ビット長データと、前記第２フレーム種類を識別する第２識別子の識別子データと、を記憶している副情報領域と、前記複数の第２圧縮波形データから前記第２共通有効ビット長に基づいて抽出された複数の抽出波形データを記憶しているデータ領域と、を有する第２フレーム領域と、を含む複数のフレーム領域を有するメモリから、或るフレーム領域内の副情報領域に記憶されている共通有効ビット長データと、識別子データと、を読み込ませ、
読み込まれた前記識別子データに基づいて識別されるフレーム種類に応じた第１アドレスデータを生成させ、
読み込まれた前記共通有効ビット長データが示す共通有効ビット長に従って順次生成される第２アドレスデータが示す第２アドレスに従って、前記或るフレーム領域内のデータ領域に記憶されている複数の抽出波形データを読み込ませ、
前記第１アドレスデータが示す第１アドレスと、順次生成される前記第２アドレスデータが示す第２アドレスと、が一致すると判断された場合に、前記或るフレーム領域の次のフレーム領域内のデータ領域に記憶されている複数の抽出波形データを読み込むために、前記次のフレーム領域内の副情報領域に記憶されている共通有効ビット長データと、識別子データと、を読み込ませる、
方法。
【請求項６】
データ取り出し装置のコンピュータに、
前記第１アドレスデータが示す第１アドレスと、順次生成される前記第２アドレスデータが示す第２アドレスと、が一致すると判断されない場合に、前記次のフレーム領域内の副情報領域に記憶されている共通有効ビット長データと、識別子データと、を読み込ませない、請求項５に記載の方法。
【請求項７】
請求項３または請求項４に記載のデータ取り出し装置を備え、
取り出された前記複数の抽出波形データに基づいて発音する電子楽器。
【請求項８】
電子楽器のコンピュータに、
複数の第１圧縮波形データそれぞれの各有効ビット長に基づいて決定される第１共通有効ビット長の共通有効ビット長データと、第１フレーム種類を識別する第１識別子の識別子データと、を記憶している副情報領域と、前記複数の第１圧縮波形データから前記第１共通有効ビット長に基づいて抽出された複数の抽出波形データを記憶しているデータ領域と、を有する第１フレーム領域と、前記第１フレーム種類より格納容量が大きい第２フレーム種類の第２フレーム領域であって、複数の第２圧縮波形データそれぞれの各有効ビット長に基づいて決定される第２共通有効ビット長の共通有効ビット長データと、前記第２フレーム種類を識別する第２識別子の識別子データと、を記憶している副情報領域と、前記複数の第２圧縮波形データから前記第２共通有効ビット長に基づいて抽出された複数の抽出波形データを記憶しているデータ領域と、を有する第２フレーム領域と、を含む複数のフレーム領域を有するメモリから、或るフレーム領域内の副情報領域に記憶されている共通有効ビット長データと、識別子データと、を読み込ませ、
読み込まれた前記識別子データに基づいて識別されるフレーム種類に応じた第１アドレスデータを生成させ、
読み込まれた前記共通有効ビット長データが示す共通有効ビット長に従って順次生成される第２アドレスデータが示す第２アドレスに従って、前記或るフレーム領域内のデータ領域に記憶されている複数の抽出波形データを読み込ませ、
前記第１アドレスデータが示す第１アドレスと、順次生成される前記第２アドレスデータが示す第２アドレスと、が一致すると判断された場合に、前記或るフレーム領域の次のフレーム領域内のデータ領域に記憶されている複数の抽出波形データを読み込むために、前記次のフレーム領域内の副情報領域に記憶されている共通有効ビット長データと、識別子データと、を読み込ませ、
読み込まれた前記複数の抽出波形データに基づいて発音させる、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音色（波形種）に応じてフレームサイズを可変させるデータ格納装置、データ取り出し装置、電子楽器および方法に関する。
【背景技術】
【０００２】
簡単な構成で伸長処理可能な圧縮データ構造を用いた波形生成技術が知られている。この種の技術として、例えば特許文献１には、圧縮波形データを記憶するフレームサイズを固定とし、そのフレーム内の固定された位置に副情報領域とデータ領域とを設け、それぞれ副情報と圧縮波形データを記憶する技術が開示されている。
【０００３】
この技術によれば、圧縮波形データのサンプルのビット数が異なる場合でもデータ領域のサイズが変わらないので、記憶する圧縮波形データのサンプルのビット数に応じて、１つのフレームに記憶される圧縮波形データのサンプル数が変化する。したがって、圧縮波形データのサンプルのビット数が異なる場合であっても、フレームの開始位置がメモリアドレス上で一定間隔ごとに並ぶ為、アドレス管理が容易になることから簡単な構成で伸長処理することが可能になる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３８２６８７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記特許文献１に開示の技術では、以下に述べる弊害がある。
（ａ）フレームサイズが一定であることは、アドレス管理を容易（簡単な構成で伸長処理可能）にする反面、隣り合うフレームの１サンプルあたりのビット数が変化しない場合はヘッダ情報（副情報）が重複し、ヘッダ情報のメモリエリアが無駄になってしまう。
【０００６】
（ｂ）ヘッダ情報は、データを復元する作業上、データを連続してリードする動作とは別に、予めアクセスし情報を取得する必要がある為、ヘッダ情報へのアクセスが多いと、連続アクセスが優位なメモリを使用するにあたり、転送できるデータ量を減少させてしまう。
【０００７】
（ｃ）フレームサイズを小さく設定すると、波形が急激に変化する場合には、その変化に追随して効率的にデータを変換できるのに対し、波形があまり変化しない場合には、フレーム数の増加に伴って重複する無駄なヘッダ情報が増えてしまう。
【０００８】
（ｄ）フレームサイズを大きく設定すると、波形が急激に変化する場合には、大小様々なデータ列の中で絶対値の最大のビット数に合わせることで、多くのビット長の波形サンプルにおける符号ビットを増やすことになってしまう。
【０００９】
つまり、以上に述べた（ａ）〜（ｄ）の弊害をまとめて換言すると、音色（波形種）に応じてフレームサイズを可変させることが出来ない、という問題がある。
【００１０】
そこで本発明は、上述した事情に鑑みてなされたもので、音色（波形種）に応じてフレ
ームサイズを可変させることが出来るデータ構造、データ格納装置、データ取り出し装置
および電子楽器を提供することを目的としている。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明の一態様のデータ格納装置は、第１波形区間における各圧縮波形データそれぞれの各有効ビット長に基づいて決定される第１共通有効ビット長と、第２波形区間における各圧縮波形データそれぞれの各有効ビット長に基づいて決定される第２共通有効ビット長と、が一致するか否かを判断する判断処理と、一致しないと判断された場合に、第１フレーム種類の前半フレームの副情報領域に、前記第１共通有効ビット長を示すデータと、前記第１フレーム種類を識別する第１識別子を示すデータと、を格納し、前記前半フレームのデータ領域に、前記第１波形区間における各圧縮波形データから前記第１共通有効ビット長に基づいて抽出した複数の抽出波形データを格納し、前記第１フレーム種類の前記前半フレームとは異なる前記第１フレーム種類の後半フレームの副情報領域に、前記第２共通有効ビット長を示すデータと、前記第１フレーム種類を識別する第１識別子を示すデータと、を格納し、前記後半フレームのデータ領域に、前記第２波形区間における各圧縮波形データから前記第２共通有効ビット長に基づいて抽出した複数の抽出波形データを格納する第１フレームデータ格納処理と、一致すると判断された場合に、前記第１フレーム種類より格納容量が大きい第２フレーム種類の第２フレームの副情報領域に、一致する共通有効ビット長を示すデータと、前記第２フレーム種類を識別する第２識別子を示すデータと、を格納し、前記第２フレームのデータ領域に、前記第１波形区間における各圧縮波形データ及び前記第２波形区間における各圧縮波形データから前記一致する共通有効ビット長に基づいて抽出した複数の抽出波形データを格納する第２フレームデータ格納処理と、を実行する。
また本発明の一態様のデータ取り出し装置は、複数の第１圧縮波形データそれぞれの各有効ビット長に基づいて決定される第１共通有効ビット長の共通有効ビット長データと、第１フレーム種類を識別する第１識別子の識別子データと、を記憶している副情報領域と、前記複数の第１圧縮波形データから前記第１共通有効ビット長に基づいて抽出された複数の抽出波形データを記憶しているデータ領域と、を有する第１フレーム領域と、前記第１フレーム種類より格納容量が大きい第２フレーム種類の第２フレーム領域であって、複数の第２圧縮波形データそれぞれの各有効ビット長に基づいて決定される第２共通有効ビット長の共通有効ビット長データと、前記第２フレーム種類を識別する第２識別子の識別子データと、を記憶している副情報領域と、前記複数の第２圧縮波形データから前記第２共通有効ビット長に基づいて抽出された複数の抽出波形データを記憶しているデータ領域と、を有する第２フレーム領域と、を含む複数のフレーム領域を有するメモリから、或るフレーム領域内の副情報領域に記憶されている共通有効ビット長データと、識別子データと、を読み込み、読み込まれた前記識別子データに基づいて識別されるフレーム種類に応じた第１アドレスデータを生成し、読み込まれた前記共通有効ビット長データが示す共通有効ビット長に従って順次生成される第２アドレスデータが示す第２アドレスに従って、前記或るフレーム領域内のデータ領域に記憶されている複数の抽出波形データを読み込み、前記第１アドレスデータが示す第１アドレスと、順次生成される前記第２アドレスデータが示す第２アドレスと、が一致すると判断された場合に、前記或るフレーム領域の次のフレーム領域内のデータ領域に記憶されている複数の抽出波形データを読み込むために、前記次のフレーム領域内の副情報領域に記憶されている共通有効ビット長データと、識別子データと、を読み込む。
【発明の効果】
【００１５】
本発明では、音色（波形種）に応じてフレームサイズを可変させることが出来る。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の一形態による波形データ格納装置１００の構成を示すブロック図である。
【図２】図２（ａ）は判定部１３が備えるワークメモリの構成を示すメモリマップ、図２（ｂ）は配列ｗａｖ［  ］に格納される波形サンプルの一例を示す図である。
【図３】テーブル５１２ｓａｍｐｌｅｎｏ［  ］の内容を示す図である。
【図４】テーブル２５６ｓａｍｐｌｅｎｏ［  ］の内容を示す図である。
【図５】ハードウェアで構成される判定部１３の機能を、ソフトウェアの処理動作として捉えたフローチャートである。
【図６】図６（ａ）は５１２バイト／フレームの構成例を示す図、図６（ｂ）は２５６バイト／フレームの構成例を示す図である。
【図７】ピアノ音の原波形データＷを圧縮してフレームに格納する一例を示す図である。
【図８】波形データ取り出し装置１５０の構成を示すブロック図である。
【図９】波形データ取り出し装置１５０を具備する電子楽器２００の構成を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施形態について説明する。図１は、本発明の実施の一形態による波形データ格納装置１００の全体構成を示すブロック図である。なお、本実施形態では、ＡＤＰＣＭ形式のデータ圧縮を採用した一例としているが、これに限らず、例えば線形予測符号ＬＰＣなど他の圧縮方式を用いても構わない。
【００１８】
図１において、波形データ圧縮部１は、減算器１０、加算器１１およびＡＤＰＣＭ予測部１２から構成される。減算器１０は、原波形データＷ（ｎ）から予測データＰ（ｎ）を減算して差分抽出される予測誤差データＥ（ｎ）を発生する。加算器１１は、予測誤差データＥ（ｎ）に予測データＰ（ｎ）を加算してＡＤＰＣＭ予測部１２に供給する。ＡＤＰＣＭ予測部１２は、適応予測モデルを用いて次サンプルの原波形データＷ（ｎ＋１）に対する予測データＰ（ｎ）および予測係数ＰＣを発生する。
【００１９】
判定部１３は、量子化ビット長判定部１３ａとサイズ判定部１３ｂとから構成される。量子化ビット長判定部１３ａは、現サンプルの予測誤差データＥ（ｎ）と過去所定サンプル数分の予測誤差データＥとに基づいて量子化されたサンプルの有効ビット長を判定する。サイズ判定部１３ｂは、量子化ビット長判定部１３ａで判定された有効ビット長に基づいて算出される共通有効ビット長により１フレームサイズを２５６バイト（ヘッダ情報を格納する副情報領域４バイト＋データ領域２５２バイト）あるいは５１２バイト（ヘッダ情報を格納する副情報領域４バイト＋データ領域５０８バイト）の何れにするかを判定する。この判定の詳細については後述する。
【００２０】
ここで、図２〜図５を参照して判定部１３の概略的な構成および動作について説明する。判定部１３は、図示されていない論理演算回路およびワークメモリを備えるハードウェアで具現される。以下では、説明の簡略化を図る為、ハードウェアで具現される判定部１３の機能を、ソフトウェアの処理動作として捉えたフローチャートを用いて説明する。なお、これら処理は、ＣＰＵがソフトウェアにより実行しても構わない。
【００２１】
先ず最初に、図２（ａ）は判定部１３が備えるワークメモリの構成を示すメモリマップである。この図において、テーブル５１２ｓａｍｐｌｅｎｏ［  ］は、１フレームサイズを５１２バイトとした場合に格納可能なサンプル数を、共通有効ビット長に応じて読み出すデータテーブルであり、その内容を図３に図示する。
【００２２】
図３に図示するテーブル５１２ｓａｍｐｌｅｎｏ［  ］は、共通有効ビット長を読み出しアドレス（引数）とし、当該共通有効ビット長に対応する５１２バイト／フレームに格納可能なサンプル数を読み出す。例えば共通有効ビット長が「２０」ビットの場合には、テーブル５１２ｓａｍｐｌｅｎｏ［  ］から５１２バイト／フレームに格納可能なサンプル数として「２０３」が読み出される（決定される）。
【００２３】
なお、５１２バイト／フレームに格納可能なサンプル数は、次式（１）で算出される。
サンプル数＝ＩＮＴ（４０６４ビット／共通有効ビット長）  …（１）
上記（１）式において、ＩＮＴは小数点以下を切り捨てるＩＮＴ関数、「４０６４ビット」は、８ビット×（フレームサイズ（５１２バイト）−ヘッダーサイズ（副情報領域４バイト））である。また、図３に図示したテーブル５１２ｓａｍｐｌｅｎｏ［  ］に併記されるブロック時間ｍｓとは、サンプル数に対応した波形区間長を表し、ビットレートＭｂｐｓとは共通有効ビット長にサンプリング周波数（４４．１ｋＨｚ）乗算して得た値である。
【００２４】
テーブル２５６ｓａｍｐｌｅｎｏ［  ］は、上記テーブル５１２ｓａｍｐｌｅｎｏ［  ］と同様、共通有効ビット長を読み出しアドレス（引数）とし、当該共通有効ビット長に対応して２５６バイト／フレームに格納可能なサンプル数を読み出すデータテーブルであり、その内容を図４に図示する。図４に図示するテーブル２５６ｓａｍｐｌｅｎｏ［  ］において、例えば共通有効ビット長が「２０」ビットの場合には、２５６バイト／フレームに格納可能なサンプル数として「１００」が読み出される（決定される）。
【００２５】
なお、２５６バイト／フレームに格納可能なサンプル数は、次式（２）で算出される。
サンプル数＝ＩＮＴ（２０１６ビット／共通有効ビット長）  …（２）
上記（２）式において、ＩＮＴは小数点以下を切り捨てるＩＮＴ関数、「４０１６」は、８ビット×（フレームサイズ（２５６バイト）−ヘッダーサイズ（副情報領域４バイト））である。また、図４に図示したテーブル２５６ｓａｍｐｌｅｎｏ［  ］に併記されるブロック時間ｍｓとは、サンプル数に対応した波形区間長を表し、ビットレートＭｂｐｓとは共通有効ビット長にサンプリング周波数（４４．１ｋＨｚ）乗算して得た値である。
【００２６】
配列ｗａｖ［  ］は、波形サンプル（予測誤差データＥ）の共通有効ビット長を２ビットと仮定した場合に５１２バイト／フレームにおける格納可能な最大サンプル数となる「２０３２」個の波形サンプル（予測誤差データＥ）を一時記憶するレジスタである。以後、予測誤差データＥを波形サンプルと称す。この配列ｗａｖ［  ］には、例えば図２（ｂ）に図示する形態で「２０３２」個の波形サンプルが格納される。波形サンプルは、符号ビットＳおよび実データビットＭから構成され、実データビットＭのビット長を有効ビット長と称す。配列ｗａｖｌｅｎｇｔｈ［  ］は、上記配列ｗａｖ［  ］に取り込んだ「２０３２」個の各波形サンプルの有効ビット長を一時記憶するレジスタである。
【００２７】
レジスタｐは、配列ｗａｖ［  ］に対して波形サンプルを読み出し・書き込みする際に参照するアドレスポインタである。以後、レジスタｐの内容をアドレスポインタｐと称す。レジスタｉは配列ｗａｖｌｅｎｇｔｈ［  ］に格納された各波形サンプルの有効ビット長を指定するデータポインタである。以後、レジスタｉの内容をポインタｉと称す。レジスタｂｉｔｌｅｎｇｔｈは、初期値「２」から順次歩進される変数である。以後、レジスタｂｉｔｌｅｎｇｔｈの内容をビット長変数ｂｉｔｌｅｎｇｔｈと称す。波形サンプルの或る区間において最大の有効ビット長（ｂｉｔｌｅｎｇｔｈ）を共通有効ビット長（Ｂｉｔｌｅｎｇｔｈ２５６又はＢｉｔｌｅｎｇｔｈ５１２）とする。レジスタＢｉｔｌｅｎｇｔｈ２５６は、２５６バイト／フレームに格納する波形サンプルの共通有効ビット長を保持する。レジスタＢｉｔｌｅｎｇｔｈ５１２は、５１２バイト／フレームに格納する波形サンプルの共通有効ビット長を保持する。
【００２８】
次に、図５を参照して判定部１３の動作について説明する。図５は、ハードウェアで構成される判定部１３の機能を、ソフトウェアの処理動作として捉えたフローチャートである。判定部１３は、図５に図示するフローチャートで表す動作を１フレーム毎に実行する。
【００２９】
判定部１３は、先ずステップＳ１０に進み、５１２バイト／フレームに格納可能な最大サンプル数となる「２０３２」個の波形サンプルを、アドレスポインタｐに従って配列ｗａｖ［  ］に格納する。続いて、ステップＳ１１に進むと、判定部１３は、配列ｗａｖ［  ］に格納した「２０３２」個の波形サンプル毎の有効ビット長を配列ｗａｖｌｅｎｇｔｈ［  ］に取り込む。なお、ここで言う有効ビット長とは、図２（ｂ）に図示する符号ビットＳおよび実データビットＭからなる波形サンプル（予測誤差データＥ）における実データビットＭのビット長を指す。
【００３０】
次に、判定部１３は、ステップＳ１２に進み、ポインタｉをゼロリセットすると共に、ビット長変数ｂｉｔｌｅｎｇｔｈに初期値「２」をセットする。続いて、判定部１３は、ステップＳ１３に進み、ビット長変数ｂｉｔｌｅｎｇｔｈと、ポインタｉで指定され、配列ｗａｖｌｅｎｇｔｈ［ｉ］の波形サンプルの有効ビット長とが一致するかどうかを判断する。
【００３１】
一致しなければ、上記ステップＳ１３の判断結果は「ＮＯ」になり、判定部１３はステップＳ１４に進み、ビット長変数ｂｉｔｌｅｎｇｔｈをインクリメントして歩進させた後、再び上記ステップＳ１３に処理を戻す。以後、ポインタｉで指定され、配列ｗａｖｌｅｎｇｔｈ［ｉ］に格納される波形データ（予測誤差データＥ）の有効ビット長に一致するまでステップＳ１３〜Ｓ１４を繰り返してビット長変数ｂｉｔｌｅｎｇｔｈを歩進させる。
【００３２】
そして、歩進させたビット長変数ｂｉｔｌｅｎｇｔｈと、ポインタｉで指定され、配列ｗａｖｌｅｎｇｔｈ［ｉ］に格納される波形サンプルの有効ビット長とが一致し、これによりポインタｉで指定される波形サンプルの有効ビット長が、歩進させたビット長変数ｂｉｔｌｅｎｇｔｈとして検出されると、上記ステップＳ１３の判断結果が「ＹＥＳ」になり、ステップＳ１５に進む。
【００３３】
ステップＳ１５に進むと、判定部１３は、上記ステップＳ１３で検出した有効ビット長に対応してテーブル２５６ｓａｍｐｌｅｎｏ［ｂｉｔｌｅｎｇｔｈ］から読み出した２５６バイト／フレームに格納可能なサンプル数−１とポインタｉの値とが一致したか否か、つまり２５６バイト／フレーム分を処理し終えたか否かを判断する。
【００３４】
２５６バイト／フレーム分を処理し終えていなければ、上記ステップＳ１５の判断結果は「ＮＯ」になり、ステップＳ１７に進む。ステップＳ１７に進むと、上記ステップＳ１３で検出した有効ビット長に対応してテーブル５１２ｓａｍｐｌｅｎｏ［ｂｉｔｌｅｎｇｔｈ］から読み出した５１２バイト／フレームに格納可能なサンプル数−１とポインタｉの値が一致したか否か、つまり５１２バイト／フレーム分を処理し終えたか否かを判断する。
【００３５】
５１２バイト／フレーム分を処理し終えていなければ、上記ステップＳ１７の判断結果は「ＮＯ」になり、ステップＳ１９に進み、ポインタｉの値をインクリメントして歩進させた後、上述のステップＳ１３に処理を戻し、歩進されたポインタｉで指定される次の波形サンプル（予測誤差データＥ）の有効ビット長を、上述のステップＳ１３〜Ｓ１４において検出する。
【００３６】
以後、ポインタｉの歩進に応じて更新される波形サンプルについて有効ビット長を順番に検出する過程において、検出した有効ビット長に対応してテーブル２５６ｓａｍｐｌｅｎｏ［ｂｉｔｌｅｎｇｔｈ］から読み出した２５６バイト／フレームに格納可能なサンプル数−１とポインタｉの値とが一致して２５６バイト／フレーム分を処理し終えると、上述したステップＳ１５の判断結果が「ＹＥＳ」になり、ステップＳ１６に進む。
【００３７】
ステップＳ１６に進むと、判定部１３は、２５６バイト／フレーム分を処理し終え時点で検出した有効ビット長、すなわちビット長変数ｂｉｔｌｅｎｇｔｈの値を共通有効ビット長としてレジスタＢｉｔｌｅｎｇｔｈ２５６に保持すると共に、ビット長変数ｂｉｔｌｅｎｇｔｈの値を初期値「２」に再初期化する。なお、ここで言う共通有効ビット長とは、例えば図２（ｂ）に図示する一例の場合、波形サンプルａ〜ｆの中で最も有効ビット長（実データビットＭのビット長）が大きい１０ビットとなる。
【００３８】
さて、こうして前半フレームに相当する２５６バイト／フレーム分を処理し終えると、判定部１３は、後半フレームについて処理を進める。すなわち、前半フレームと同様に、ポインタｉの歩進に応じて更新される波形サンプルについて有効ビット長を順番に検出する（ステップＳ１３〜Ｓ１４、Ｓ１９）。
【００３９】
そして、有効ビット長を検出する過程において、検出した有効ビット長（ビット長変数ｂｉｔｌｅｎｇｔｈの値）に対応してテーブル５１２ｓａｍｐｌｅｎｏ［ｂｉｔｌｅｎｇｔｈ］から読み出した５１２バイト／フレームに格納可能なサンプル数−１とポインタｉの値とが一致して２５６バイト／フレーム分を処理し終えると、前述したステップＳ１７の判断結果が「ＹＥＳ」になり、ステップＳ１８に進む。
【００４０】
ステップＳ１８に進むと、判定部１３は、５１２バイト／フレーム分を処理し終え時点で検出した有効ビット長、すなわちビット長変数ｂｉｔｌｅｎｇｔｈの値を共通有効ビット長としてレジスタＢｉｔｌｅｎｇｔｈ５１２に保持する。続いて、ステップＳ２０に進むと、判定部１３は、レジスタＢｉｔｌｅｎｇｔｈ２５６に保持した共通有効ビット長と、レジスタＢｉｔｌｅｎｇｔｈ５１２に保持した共通有効ビット長とが同一であるか否かを判断する。
【００４１】
レジスタＢｉｔｌｅｎｇｔｈ２５６に保持した共通有効ビット長と、レジスタＢｉｔｌｅｎｇｔｈ５１２に保持した共通有効ビット長とが同一の場合には、上記ステップＳ２０の判断結果が「ＹＥＳ」になり、ステップＳ２１に進む。そして、判定部１３は、ステップＳ２１〜Ｓ２２において、５１２バイト／フレームを表す識別子をフレームサイズとして出力すると共に、レジスタＢｉｔｌｅｎｇｔｈ５１２に保持した共通有効ビット長を出力する。
【００４２】
この後、ステップＳ２３に進むと、判定部１３は、検出した有効ビット長に対応してテーブル５１２ｓａｍｐｌｅｎｏ［ｂｉｔｌｅｎｇｔｈ］から読み出した５１２バイト／フレームに格納可能なサンプル数を、当初読み込んだ２０３２サンプルから減算した分だけアドレスポインタｐを戻して１フレーム分の処理を終える。
【００４３】
一方、レジスタＢｉｔｌｅｎｇｔｈ２５６に保持した共通有効ビット長と、レジスタＢｉｔｌｅｎｇｔｈ５１２に保持した共通有効ビット長とが同一でない場合には、上記ステップＳ２０の判断結果が「ＮＯ」になり、ステップＳ２４に進む。そして、判定部１３は、ステップＳ２４〜Ｓ２５において、２５６バイト／フレームを表す識別子をフレームサイズとして出力すると共に、レジスタＢｉｔｌｅｎｇｔｈ２５６に保持した共通有効ビット長を出力する。
【００４４】
この後、ステップＳ２６に進むと、判定部１３は、検出した有効ビット長に対応してテーブル２５６ｓａｍｐｌｅｎｏ［ｂｉｔｌｅｎｇｔｈ］から読み出した２５６バイト／フレームに格納可能なサンプル数を、当初読み込んだ２０３２サンプルから減算した分だけアドレスポインタｐを戻して１フレーム分の処理を終える。
【００４５】
このように、判定部１３では、各波形サンプル（予測誤差データＥ）の個々の有効ビット長を順番に読み出しながら、読み出した有効ビット長の中で最も大きい有効ビット長を共通有効ビット長とし、当該共通有効ビット長に対応して２５６バイト／フレームに格納可能なサンプル数−１に読み出したサンプル数が達した時に前半フレームを形成し、さらに後半フレームについても同様に、各波形サンプル（予測誤差データＥ）の個々の有効ビット長を順番に読み出しながら、読み出した有効ビット長の中で最も大きい有効ビット長を共通有効ビット長とし、当該共通有効ビット長に対応して５１２バイト／フレームに格納可能なサンプル数−１に読み出したサンプル数が達した時に後半フレームを形成する。
【００４６】
そして、前半フレームと後半フレームの共通有効ビット長が一致する場合には、５１２バイト／フレームを表す識別子をフレーム種類として出力すると共に、後半フレームの共通有効ビット長を出力する。一方、前半フレームと後半フレームの共通有効ビット長が一致しない場合には、２５６バイト／フレームを表す識別子をフレーム種類として出力すると共に、前半フレームの共通有効ビット長を出力する。
【００４７】
なお、本実施形態では、説明の簡略化を図る為、５１２バイト／フレームおよび２５６バイト／フレームの２種のフレームサイズに分けるようにしたが、これに限定されず、例えば１２８バイト／フレームを加える等、３種以上の任意のフレームサイズに判別する態様としても構わない。また、本実施形態では、波形サンプル（予測誤差データＥ）の共通有効ビット長を２ビットと仮定した場合に５１２バイト／フレームにおける格納可能な最大サンプル数となる「２０３２」サンプルを読み込むようにしたが、これに限定されず、任意のフレームサイズに対応して読み込むサンプル数を決定しても構わない。
【００４８】
次に、再び図１を参照して波形データ格納装置１００の構成について説明を進める。図１において、ヘッダ情報生成部１５は、波形データ圧縮部１が発生する圧縮方式を識別するためのデータである「圧縮モード」と、判定部１３から出力される「フレーム種類（識別子）」および「共通有効ビット長」に基づき１フレーム毎のヘッダ情報を生成する。
【００４９】
ヘッダ情報は、例えば図６（ａ）に図示する一例のように、４バイト分のデータ容量を有する副情報領域に格納され、例えば「圧縮モード」を格納する領域、フレーム化する際の「共通有効ビット長」を格納する領域、「音量補正パラメータ」を格納する領域、１フレーム内のデータ領域内のサイズを表す「フレーム種類（識別子」を格納する領域および拡張性を考慮したリザーブ領域の「ｒｅｓｅｒｖｅｄ」から構成される。こうしたヘッダ情報は、ヘッダ情報生成部１５から格納部１６に供給される。
【００５０】
波形サンプルを圧縮する際に、音量パラメータを変更することにより圧縮率を変更させることができる。例えば、波形サンプルの前半のアタック部では原音そのままの音量データとして格納し、波形サンプルの後半は原音から音量を下げた音量データで格納する。そうすることで、波形サンプルの前半のアタック部では低い圧縮レートにより高品位に格納でき、波形サンプルの後半は高い圧縮レートにより低品位に格納できる。「音量補正パラメータ」とは、波形データ取り出し装置１５０が圧縮された波形データを取り出す際に、メモリに記憶される波形データの音量を原音の音量に復元するために用いるパラメータである。波形データ格納装置１００が波形サンプルの原音から音量データを変更してメモリに格納し、波形データ取り出し装置１５０が圧縮された波形データをメモリから取り出し、この音量補正パラメータを用いることで原音の音量に復元することができる。
【００５１】
また、本実施形態では、副情報領域をフレームのヘッダ部に配置しているが、これに限定されず、副情報領域をフレームの他の部分、例えばフッタ領域に配置する態様であっても構わない。また、本実施形態のように、副情報領域のサイズが固定の場合は、フレームサイズは、フレーム内のデータ領域サイズと同等である。
【００５２】
格納部１６では、ヘッダ情報中の「フレーム種類（識別子）」で指定されるサイズのデータ領域を含むフレームの副情報領域（図６参照）にヘッダ情報を格納する一方、ヘッダ情報中の「共通有効ビット長」で波形サンプル（予測誤差データＥ）を抽出した圧縮サンプルを副情報領域以降のデータ領域に順次格納する。このデータ領域は、「フレーム種類（識別子）」と「共通有効ビット長」とに応じた個数の圧縮サンプルが格納可能であり、このデータ領域に格納可能な個数の圧縮サンプルが格納されると、再び判定部１３によって、これ以降に供給される波形サンプルに基づいてフレーム種類（識別子）および共通有効ビット長を判定する動作を繰り返して、新たなフレームの作成を開始する。
【００５３】
次に、図７を参照してピアノ音の原波形データＷを圧縮してフレームに格納する一例について説明する。ピアノ音をサンプリングした原波形データＷを、図３に図示するように、立ち上がりから所定レベルに減衰するまでのＡ区間と、それ以降のＢ区間とに区分する。音の出だしであるアタック領域を含むＡ区間では波形が急激に変化するのに対し、持続領域となるＢ区間では波形が緩やかに変化する。
【００５４】
波形が急激に変化するＡ区間では、各波形サンプル（予測誤差データＥ）の個々の有効ビット長がばらつく為に前半フレームと後半フレームの共通有効ビット長が一致しない。この為、前述した判定部１３では、Ａ区間における１フレームサイズを２５６バイトと判定する。この結果、前述の格納部１６では、図６（ｂ）に図示するフレームの副情報領域にヘッダ情報を格納すると共に、量子化された各波形サンプル（予測誤差データＥ）をヘッダ情報中の「共通有効ビット長」で抽出した圧縮サンプルを、当該「共通有効ビット長」に基づいて決定されるサンプル数分、データ領域に順次格納する。例えば、共通有効ビット長が９ビットであった場合には、データ領域（２５２バイト）に２２４サンプル分収納する。
【００５５】
一方、波形が穏やかに変化するＢ区間では、各波形サンプル（予測誤差データＥ）の個々の有効ビット長がばらつかず、前半フレームと後半フレームの共通有効ビット長が一致する。この為、前述した判定部１３では、Ａ区間における１フレームサイズを５１２バイトと判定する。
【００５６】
この結果、前述の格納部１６では、図６（ａ）に図示するフレームの副情報領域にヘッダ情報を格納すると共に、量子化された各波形サンプル（予測誤差データＥ）をヘッダ情報中の「共通有効ビット長」で抽出した圧縮サンプルを、当該「共通有効ビット長」に基づいて決定されるサンプル数分、データ領域に順次格納する。例えば、共通有効ビット長が１０ビットであった場合には、データ領域（５０８バイト）に４０６サンプル分収納する。
【００５７】
こうして形成されるフレームは、格納部１６からフレーム単位で出力されてメモリ１７（図１参照）に格納される。メモリ１７に格納されたフレームは、図８に示す波形データ取り出し装置１５０により読み出される。
【００５８】
次に、図８を参照して波形データ取り出し装置１５０の概略構成について説明する。この波形データ取り出し装置１５０は、メモリ１７内の指定されたフレームにおける副情報領域から読み出された共通有効ビット長を歩進レートとして、アドレスデータを生成するアドレスデータ生成部１５１と、生成されたアドレスデータによって、メモリ１７に記憶されたフレーム内のデータ領域から圧縮サンプルを取り出す取り出し部１５２と、メモリ１７内のデータ領域から取り出された圧縮サンプルの数が、副情報領域に記憶されたフレーム種類（識別子）で指定されるフレームサイズを超えたときに、メモリ１７内から指定されたフレームに続く次のフレームを指定するフレーム指定部１５３とを有する。
【００５９】
アドレスデータ生成部１５１は、レジスタＢＩＴＷ、カウンタＢＩＴＣ、判断部１５１ａ、判断部１５１ｂ及びセレクタＳＥＬを有し、取り出し部１５２はアドレスカウンタＡＤＲＣ＿Ｈ及びアドレスカウンタＡＤＲＣを有し、フレーム指定部１５３は、ヘッダレジスタＨＲ、アドレス変換器及び比較器ＣＯＭＰを有する。
【００６０】
波形データ取り出し装置１５０では、図示されていないホスト（ＣＰＵ）からアドレスカウンタＡＤＲＣ＿Ｈにフレーム上位アドレスがロードされ、アドレスカウンタＡＤＲＣにはフレーム内アドレスがロードされる。アドレスカウンタＡＤＲＣに読み出し開始アドレスとしてフレーム先頭を指定する「０」が格納されると、取り出し対象となるフレームの副情報領域からヘッダ情報をメモリ１７から読み出してヘッダレジスタＨＲに格納する。
【００６１】
ヘッダレジスタＨＲに格納されたヘッダ情報中の共通有効ビット長は、レジスタＢＩＴＷに格納される。レジスタＨＲに格納されたヘッダ情報中のフレーム種類（識別子）は、１フレームサイズ分のフレーム内アドレスに変換した後に比較器ＣＯＭＰの一端に入力される。フレーム内のデータ領域に格納される１つの圧縮サンプルのビット位置を指定するカウンタＢＩＴＣは、アドレスカウンタＡＤＲＣ（フレーム内アドレス）がヘッダ情報を示す「０」又は「１」と判断部１５１ａで判断された場合はリセットされる一方、同様に判断部１５１ｂにおいてもヘッダ情報を示す「０」又は「１」と判断された場合は、セレクタＳＥＬに対して「１」を供給して、アドレスカウンタＡＤＲＣを強制的に歩進（インクリメント）させる。「０」および「１」以外（ヘッダ情報以外）の場合、セレクタＳＥＬはカウンタＢＩＴＣのＣａｒｒｙ信号をアドレスカウンタＡＤＲＣに供給するように構成されている。
【００６２】
カウンタＢＩＴＣを用いてレジスタＢＩＴＷを累算してアドレスカウンタＡＤＲＣを歩進させることによりフレーム内のデータ領域に格納される圧縮サンプルの読み出しアドレスを発生させる。アドレスカウンタＡＤＲＣから出力される読み出しアドレスは、比較器ＣＯＭＰの他端に入力される。比較器ＣＯＭＰは、アドレスカウンタＡＤＲＣ（フレーム内アドレス）が１フレームサイズ分に達した場合に当該アドレスカウンタＡＤＲＣをリセットする。
【００６３】
このように、波形データ取り出し装置１５０では、取り出し対象となるフレームのデータ領域に格納される各圧縮サンプルの個々の読み出しアドレスを、ヘッダ情報中のフレーム種類（識別子）および共通有効ビット長を参照して生成し、生成した読み出しアドレスに応じて各フレームから圧縮サンプルを読み出すようになっている。
【００６４】
次に、図９を参照して、上述したメモリ１７と波形データ取り出し装置１５０とを具備する電子楽器２００について説明する。図９は、電子楽器２００の全体構成を示すブロック図である。この図において、演奏入力部２０は、演奏操作に応じた演奏情報を発生する。操作部２１は、各種操作スイッチを有し、ユーザ操作されるスイッチ種に応じたスイッチイベントを発生する。ＣＰＵ２２は、演奏入力部２０が発生する演奏情報に応じたノートオン・ノートオフイベントを発生して波形取り出し装置１５０に供給すると共に、波形データ取り出し装置１５０によりメモリ１７から楽音形成に必要な圧縮サンプル（圧縮波形データ）の読み出しを指示する。
【００６５】
ＲＯＭ２３は、ＣＰＵ２２にロードされる各種制御プログラムを記憶する。ＲＡＭ２４は、ＣＰＵ２２の処理に使用される各種レジスタ・フラグデータを一時記憶する。メモリ１７は、所定の音色の圧縮サンプル（圧縮波形データ）が記憶されており、このメモリ１７からＣＰＵ２２の読み出し指示に応じて、波形データ取り出し装置１５０が楽音発生に必要な圧縮サンプルを読み出す。
【００６６】
伸長部２５は、波形データ取り出し装置１５０により読み出される圧縮サンプルに伸長処理を施して得た波形データを発音部２６に供給する。発音部２６は、伸長部２５から供給される波形データに基づいて楽音データを形成し、さらにこの楽音データをアナログ形式の楽音信号に変換した後、その楽音信号から不要ノイズを除去する等のフィルタリングを施してからレベル増幅してスピーカより放音させる。
【００６７】
以上説明したように、本実施形態によれば、波形が急激に変化する区間では、各波形サンプル（予測誤差データＥ）の有効ビット長がばらついて前半フレームと後半フレームの共通有効ビット長が一致しない為に１フレームサイズを２５６バイトと判定し、一方、波形が穏やかに変化する区間では、各波形サンプル（予測誤差データＥ）の有効ビット長がばらつかず、前半フレームと後半フレームの共通有効ビット長が一致する為に１フレームサイズを５１２バイトと判定するので、音色（波形種）に応じてフレームサイズを可変させることが可能になる。
【００６８】
また、こうしてフレームサイズを可変させることによって、フレームサイズ固定の場合に比較してフレーム数の増加に伴って重複する無駄なヘッダ情報が増えたり、波形サンプルにおける符号化ビットが増えたりする弊害を解消することが出来る。
【００６９】
加えて、上述した実施形態では、フレームの副情報領域にヘッダ情報として「音量補正パラメータ」を設けたので、例えば波形サンプルの前半のアタック部では原音そのままの音量データとして格納し、波形サンプルの後半は原音から音量を下げた音量データで格納する。そうすることで、波形サンプルの前半のアタック部では低い圧縮レートにより高品位に格納でき、波形サンプルの後半は高い圧縮レートにより低品位に格納できる。
【００７０】
また、波形データ取り出し装置１５０が圧縮された波形データをメモリから取り出す際に、音量補正パラメータを用いることで原音の音量に復元することができる。
【００７１】
加えて、本実施形態では、前半フレームと後半フレームの共通有効ビット長が不一致ならば、１フレームサイズを副情報領域４バイトとデータ領域２５２バイトとを含む２５６バイト／フレームと判定し、一方、前半フレームと後半フレームの共通有効ビット長が一致すれば、１フレームサイズを副情報領域４バイトとデータ領域５０８バイトとを含む５１２バイト／フレームと判定するようにしたが、これに限らず、量子化ビット長判定部１３ａで判定された量子化ビット長が同一ビット長で所定サンプル数以上連続した場合にサイズ判定部１３ｂが１フレームサイズを５１２バイト／フレームと判定し、一方、量子化ビット長判定部１３ａで判定された量子化ビット長が同一ビット長で所定サンプル数以上連続しない場合にサイズ判定部１３ｂが１フレームサイズを２５６バイト／フレームと判定する態様とすることも出来る。
【００７２】
すなわち、波形が急激に変化する区間では、量子化ビット長判定部１３ａで判定される量子化ビット長が同一ビット数で所定サンプル数以上連続しない為、サイズ判定部１３ｂが１フレームサイズを２５６バイト／フレームと判定し、一方、波形が穏やかに変化する区間では、量子化ビット長判定部１３ａで判定される量子化ビット長が同一ビット数で所定サンプル数以上連続する為、サイズ判定部１３ｂが１フレームサイズを５１２バイトと判定する簡便な手法を用いることも可能である。
【００７３】
以上、本発明の実施の一形態について説明したが、本発明はそれに限定されるものではなく、本願出願の特許請求の範囲に記載された発明とその均等の範囲に含まれる。以下では、本願出願当初の特許請求の範囲に記載された各発明について付記する。
【００７４】
（付記）
［請求項１］
データサイズが異なる複数の種類のフレームによって構成され、
前記複数の種類のフレームには、夫々副情報領域及びデータ領域が設定され、
前記副情報領域は、波形サンプルにおいて或る区間の共通有効ビット長のデータを記憶する領域と、前記複数の種類のフレームのいずれかを識別する識別子を記憶する領域と、を含み、
前記データ領域は、前記波形サンプルから前記共通有効ビット長で抽出され、前記共通有効ビット長に基づいて決定される個数の前記抽出される波形サンプルを記憶する領域である、
ことを特徴とする波形データ構造。
［請求項２］
前記データ領域は、音量が変更された前記波形サンプルを記憶する領域であり、
前記副情報領域は、前記データ領域に記憶された波形サンプルの音量を補正する音量補正パラメータを記憶する領域を含む、
ことを特徴とする請求項１に記載の波形データ構造。
［請求項３］
少なくとも、互いに格納可能な波形サンプルの数が異なる第１および第２のフレームによって構成され、
前記第１および第２のフレームは、副情報領域とデータ領域とを備え、
前記副情報領域は、前記データ領域に格納する波形サンプルの共通有効ビット長のデータを記憶する領域と、前記第１および第２のフレームのいずれかを識別するフレーム種類のデータを記憶する領域とを含むフレーム属性データを有し、
前記データ領域は、前記副情報領域に設けられたフレーム属性データ中の前記フレーム種類で識別される前記第１および第２のフレームに応じて決定され、前記副情報領域に設けられた前記フレーム属性データ中の前記共通有効ビット長に応じたサンプル数に合わせた波形サンプルを収納する、
ことを特徴とする波形データ構造。
［請求項４］
前記共通有効ビット長は、前記データ領域への格納対象となる複数の波形サンプルの有効ビット長の内、最も大きい有効ビット長であることを特徴とする請求項１乃至３の何れかに記載の波形データ構造。
［請求項５］
前記第１のフレームのデータ領域には、当該第１のフレーム全体から前記副情報領域分を減算した残りのデータ容量を前記共通有効ビット長で除した整数分の波形サンプルが収納され、
前記第２のフレームのデータ領域には、当該第２のフレーム全体から前記副情報領域分を減算した残りのデータ容量を前記共通有効ビット長で除した整数分の波形サンプルが収納されることを特徴とする請求項３記載の波形データ構造。
［請求項６］
格納対象となる各波形サンプルの有効ビット長のばらつきに応じて、互いに格納可能な波形サンプルの設定数が異なる、少なくとも第１および第２のうちの何れかのフレームを判定する判定部と、
前記判定部により判定された前記第１および第２の何れかのフレームの副情報領域に、前記波形サンプルの共通有効ビット長と、前記第１および第２の何れかのフレームを識別するフレーム種類とを含むフレーム属性データを格納する副情報格納部と、
前記判定部により判定された前記第１および第２の何れかのフレームのデータ領域に、前記副情報領域に格納された前記フレーム属性データ中の前記共通有効ビット長に応じた波形サンプル数の設定数に合わせて前記波形サンプルを格納する波形サンプル格納部と、
を具備することを特徴とする波形データ格納装置。
［請求項７］
前記判定部は、格納対象となる各波形サンプルの有効ビット長がばらついた場合に、前記第１および第２のフレームの内でサイズの小さい方を判定し、一方、格納対象となる各波形サンプルの有効ビット長がばらつかない場合に、前記第１および第２のフレームの内でサイズの大きい方を判定することを特徴とする請求項６記載の波形データ格納装置。
［請求項８］
前記判定部は、
仮想的な前半フレームおよび後半フレームを定義しておき、
格納対象の各波形サンプルの有効ビット長の中で最も大きい有効ビット長を第一の共通有効ビット長として抽出し、抽出した前記第一の共通有効ビット長に対応して決定される前記前半フレームに格納可能な数に前記波形サンプル数が達する時に前記前半フレームを形成する前半フレーム形成部と、
前記前半フレーム形成部が格納対象にする以降の各波形サンプルの有効ビット長の中で最も大きい有効ビット長を第二の共通有効ビット長として抽出し、抽出した前記第二の共通有効ビット長に対応して決定される前記後半フレームに格納可能な数に前記波形サンプル数が達する時に前記後半フレームを形成する後半フレーム形成部と、
前記前半フレーム形成部で抽出した前記第一の共通有効ビット長と、前記後半フレーム形成部で抽出した前記第二の共通有効ビット長とが一致する場合に、前記第１および第２のフレームの内でサイズの大きい方を表すフレーム種類と前記後半フレーム形成部が抽出した前記第二の共通有効ビット長とを含むフレーム属性データを生成する第１のフレーム属性データ生成部と、
前記前半フレーム形成部で抽出した前記第一の共通有効ビット長と、前記後半フレーム形成部で抽出した前記第二の共通有効ビット長とが一致しない場合に、前記第１および第２のフレームの内でサイズの小さい方を表すフレーム種類と前記前半フレーム形成部が抽出した前記第一の共通有効ビット長とを含むフレーム属性データを生成する第２のフレーム属性データ生成部と、
を具備することを特徴とする請求項６乃至７の何れかに記載の波形データ格納装置。
［請求項９］
前記波形サンプル格納部は、前記副情報領域に格納されたフレーム属性データ中の共通有効ビット長で各波形サンプルを符号化した圧縮波形サンプルを、前記判定部により判定された前記第１および第２の何れかのフレームのデータ領域に格納することを特徴とする請求項６乃至８の何れかに記載の波形データ格納装置。
［請求項１０］
供給される波形サンプルのビット長に応じて、前記波形サンプルを格納するフレームサイズが異なる複数のフレームのうち、いずれのフレームに格納するかを判定する判定部と、
少なくとも前記波形サンプルのビット長を示すビット長データと、前記判定部により判定された前記いずれのフレームに格納するかを示すフレーム種類データとを、メモリ内に設定した副情報領域に格納し、前記副情報領域に格納された前記フレーム種類データに基づくサイズのデータ領域を前記メモリ内に設定するとともに、前記メモリ内に設定される前記データ領域に、前記波形サンプルを格納する格納部と、
を具備することを特徴とする波形データ格納装置。
［請求項１１］
前記判定部は、
原波形をサンプリングした波形サンプルの適応予測で得られる予測誤差データの量子化ビット長が、同一ビット長で所定サンプル数以上連続するか否かを判別する連続判別部と、
前記連続判別部により同一ビット長で所定サンプルデータ数以上連続しないと判別された場合には、少なくともサイズの異なる大小何れかのデータ領域サイズの内、サイズの小さいデータ領域サイズと判定し、一方、同一ビット数で所定サンプル数以上連続すると判別された場合には、サイズの大きいデータ領域サイズと判定するサイズ判定部と
を具備することを特徴とする請求項１０記載の波形データ格納装置。
［請求項１２］
波形データ格納装置で用いられる格納方法であって、
前記波形データ格納装置が、
格納対象となる各波形サンプルの有効ビット長のばらつきに応じて、互いに格納可能な波形サンプルの数が異なる、少なくとも第１および第２のうちの何れかのフレームを判定し、
判定された前記第１および第２の何れかのフレームの副情報領域に、前記波形サンプルの共通有効ビット長と、前記第１および第２の何れかのフレームを識別するフレーム種類とを含むフレーム属性データを格納し、
判定された前記第１および第２の何れかのフレームのデータ領域に、前記副情報領域に格納された前記フレーム属性データ中の前記共通有効ビット長に応じたサンプル数分の波形サンプルを格納する、
ことを特徴とする波形データ格納方法。
［請求項１３］
波形データ格納装置で用いられる格納方法であって、
前記波形データ格納装置は、
格納対象となる各波形サンプルの有効ビット長がばらついた場合に、前記第１および第２のフレームの内でサイズの小さい方を判定し、
格納対象となる各波形サンプルの有効ビット長がばらつかない場合に、前記第１および第２のフレームの内でサイズの大きい方を判定する
ことを特徴とする請求項１２記載の波形データ格納方法。
［請求項１４］
波形データ格納装置で用いられる格納方法であって、
前記波形データ格納装置は、
仮想的な前半フレームおよび後半フレームを定義しておき、
格納対象の各波形サンプルの有効ビット長の中で最も大きい有効ビット長を第一の共通有効ビット長として抽出し、抽出した前記第一の共通有効ビット長に対応して決定される前記前半フレームに格納可能な数に前記波形サンプル数が達する時に前記前半フレームを形成し、
前記前半フレームを形成する以降の各波形サンプルの有効ビット長の中で最も大きい有効ビット長を第二の共通有効ビット長として抽出し、抽出した前記第二の共通有効ビット長に対応して決定される前記後半フレームに格納可能な数に前記波形サンプル数が達する時に前記後半フレームを形成し、
前記前半フレームを形成した際に抽出した前記第一の共通有効ビット長と、前記後半フレームを形成した際に抽出した前記第二の共通有効ビット長とが一致する場合に、前記第１および第２のフレームの内でサイズの大きい方を表すフレーム種類と前記後半フレーム形成部が抽出した前記第二の共通有効ビット長とを含むフレーム属性データを生成し、  前記前半フレームを形成した際に抽出した前記第一の共通有効ビット長と、前記後半フレームを形成した際に抽出した前記第二の共通有効ビット長とが一致しない場合に、前記第１および第２のフレームの内でサイズの小さい方を表すフレーム種類と前記前半フレームを形成した際に抽出した前記第一の共通有効ビット長とを含むフレーム属性データを生成する、
ことを特徴とする請求項１２乃至１３の何れかに記載の波形データ格納方法。
［請求項１５］
波形データ格納装置で用いられる格納方法であって、
前記波形データ格納装置が、
供給される波形サンプルのビット長に応じて、前記波形サンプルを格納するフレームの領域サイズを判定し、
少なくとも前記波形サンプルのビット長を示すビット長データと前記判定された前記領域サイズを示すデータ領域サイズデータとを、メモリ内に設定した副情報領域に格納し、
前記副情報領域に格納された前記データ領域サイズデータで示される前記領域サイズのデータ領域を前記メモリ内に設定するとともに、前記設定された前記データ領域に前記波形サンプルを格納する
ことを特徴とする波形データ格納方法。
［請求項１６］
波形データ格納装置で用いられる格納方法であって、
前記波形データ格納装置は、
原波形をサンプリングした波形サンプルの適応予測で得られる予測誤差データの量子化ビット長が、同一ビット長で所定サンプル数以上連続するか否かを判別し、
同一ビット長で所定サンプルデータ数以上連続しないと判別された場合には、少なくともサイズの異なる大小何れかのデータ領域サイズの内、サイズの小さいデータ領域サイズと判定し、
同一ビット数で所定サンプル数以上連続すると判別された場合には、少なくともサイズの異なる大小何れかのデータ領域サイズの内、サイズの大きいデータ領域サイズと判定する
ことを特徴とする請求項１４記載の波形データ格納方法。
［請求項１７］
請求項１の波形データ構造を備えたメモリ内において指定されたフレームの前記副情報領域から読み出された前記共通有効ビット長に基づいてアドレスデータを生成するアドレスデータ生成部と、
前記アドレス生成部により生成されたアドレスデータに従って、前記指定されたフレームのデータ領域から前記波形サンプルを取り出す取り出し部と、
前記取り出し部により前記波形サンプルが取り出された後に取り出す次のフレームを指定するフレーム指定部と、
を具備することを特徴とする波形データ取り出し装置。
［請求項１８］
請求項２の波形データ構造を備えたメモリ内において指定された前記第１および第２の何れかのフレームの前記副情報領域に設けられたフレーム属性データ中の前記共通有効ビット長に応じたアドレスデータに従って、前記指定されたフレームのデータ領域から前記波形サンプルを順次読み出す読み出し部と、
前記読み出し部により前記波形サンプルが読み出された後に読み出す、前記指定されたフレームに続く前記第１および第２の何れかの次フレームを指定する次フレーム指定部と、
を具備することを特徴とする波形データ取り出し装置。
［請求項１９］
波形データ取り出し装置で用いられる波形データ取り出し方法であって、
前記波形データ取り出し装置が、  請求項１の波形データ構造を備えたメモリ内において指定されたフレームの前記副情報領域から読み出されたビット長データに基づいてアドレスデータを生成し、
前記生成された前記アドレスデータに従って、前記指定されたフレームのデータ領域から前記波形サンプルを取り出し、
前記波形サンプルが取り出された後に取り出す次のフレームを指定する
ことを特徴とする波形データ取り出し方法。
［請求項２０］
波形データ取り出し装置で用いられる波形データ取り出し方法であって、
前記波形データ取り出し装置が、
請求項２の波形データ構造を備えたメモリ内において指定された前記第１および第２の何れかのフレームの前記副情報領域に設けられたフレーム属性データ中の共通有効ビット長に応じたアドレスデータに従って、前記指定されたフレームのデータ領域から波形サンプルを順次読み出し、
前記波形サンプルが読み出された後に読み出す、前記指定されたフレームに続く前記第１および第２の何れかの次フレームを指定する
ことを特徴とする波形データ取り出し方法。
［請求項２１］
請求項１に記載の波形データ構造を有するメモリと、
請求項１７に記載の波形データ取り出し装置と、
演奏操作に応じた演奏情報を発生する演奏入力部と、
前記演奏情報に応じた楽音の発生を指示する指示処理と、当該指示処理に応答して、前記波形データ取り出し装置が前記メモリから必要な波形サンプルを取り出すように制御する制御処理とを実行する処理部と、
前記波形データ取り出し装置から取り出された前記波形サンプルを伸長して得た波形データに基づいて楽音を発生する発音部と、
を具備することを特徴とする電子楽器。
［請求項２２］
請求項２に記載の波形データ構造を有するメモリと、
請求項１８に記載の波形データ取り出し装置と、
演奏操作に応じた演奏情報を発生する演奏入力部と、
前記演奏情報に応じた楽音の発生を指示する指示処理と、当該指示処理に応答して、前記波形データ取り出し装置が前記メモリから必要な波形サンプルを取り出すように制御する制御処理とを実行する処理部と、
前記波形データ取り出し装置から取り出された前記波形サンプルを伸長して得た波形データに基づいて楽音を発生する発音部と、
を具備することを特徴とする電子楽器。
［請求項２３］
前記発音部は、
前記波形データ取り出し装置がフレームの前記副情報領域から抽出した音量補正パラメータに基づいて復元される波形サンプルを発音することを特徴とする請求項２１乃至２２の何れかに記載の電子楽器。
【符号の説明】
【００７５】
１  波形データ圧縮部
１０  減算器
１１  加算器
１２  ＡＤＰＣＭ予測部
１３  判定部
１３ａ  量子化ビット長判定部
１３ｂ  サイズ判定部
１５  ヘッダ情報生成部
１６  格納部
１７  メモリ
２０  演奏入力部
２１  操作部
２２  ＣＰＵ
２３  ＲＯＭ
２４  ＲＡＭ
２５  伸長部
２６  発音部
１００  波形データ格納装置
１５０  波形データ取り出し装置
２００  電子楽器
【図１】
0006604486.tif 000002
【図２】
0006604486.tif 000003
【図３】
0006604486.tif 000004
【図４】
0006604486.tif 000005
【図５】
0006604486.tif 000006
【図６】
0006604486.tif 000007
【図７】
0006604486.tif 000008
【図８】
0006604486.tif 000009
【図９】
0006604486.tif 000010