(57)【特許請求の範囲】
【請求項１】
Ｘビットの固定小数点波形データをＮビットの仮数部で表現するのに必要な連続的ベキ数の数Ｅ（Ｘ＝Ｎ＋Ｅ−１の関係）のいずれかを、ｎ（2ｎ＜Ｅの関係）ビットの指数部で指定可能な数２ｎまで間引き、当該間引かれた不連続なベキ数を前記ｎビットの指数部で指定可能な値夫々に割り当てる割当手段と、
前記割当手段により割当てられた指数部の値に応じて、Ｘビットの固定小数点波形データを前記ｎビットの指数部とＮビットの仮数部とから構成される浮動小数点波形データに変換する変換手段と
を具備することを特徴とする波形データ変換装置。
【請求項２】
前記割当手段は、前記ｎビットの指数部で指定可能な数２ｎとなるように１つ置きに間引いた奇数列のベキ数夫々を、当該ｎビットの指数部で指定可能な値夫々に割り当てることを特徴とする請求項１記載の波形データ変換装置。
【請求項３】
前記割当手段は、前記ｎビットの指数部で指定可能な数２ｎとなるように１つ置きに間引いた偶数列のベキ数夫々を、当該ｎビットの指数部で指定可能な値夫々に割り当てることを特徴とする請求項１記載の波形データ変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、固定小数点形式の波形データを浮動小数点形式に変換する波形データ変換装置に関する。
【背景技術】
【０００２】
データ量を縮減する為にデータ形式を固定小数点形式から浮動小数点形式に変換させる技術が知られている。この種の技術として、例えば特許文献１には、波形データを指数部データと仮数部データとに分けて１サンプル点当りのデータビット数（語長）を縮減させる技術が開示されている。
【０００３】
【特許文献１】特開平７−１６０２６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、電子楽器の音源には、デジタル・シグナル・プロセッサ（ＤＳＰ）と呼ばれる信号処理装置が設けられる。信号処理装置では、外部メモリを用いて波形データに遅延を施すことが多い。上記特許文献１に開示の技術のように、固定小数点形式の波形データを浮動小数点形式に変換してデータ量を縮減する場合には、外部メモリの語長（格納幅）と、信号処理装置の内部で処理される固定小数点形式の処理語長とを調和させる必要がある。この点について図７を参照して説明する。
【０００５】
図７は、固定小数点２０ビットデータと、指数部３ビットおよび仮数部１３ビットからなる浮動小数点１６ビットデータとの変換関係を示す図である。一般に浮動小数点データにおける指数部の語長をＥｎ、仮数部の語長（有効桁数）をＫｎとすると、固定小数点データの語長Ｘｎは、Ｋｎ＋２＾Ｅｎ−１なる式で表現できる。なお、上記式中の「＾」はベキ乗（累乗）を表す。
【０００６】
したがって、図７に図示した一例において、浮動小数点１６ビットデータの指数部および仮数部の各語長の変化に対応する固定小数点データの語長Ｘｎは、１６−Ｅｎ＋２＾Ｅｎ−１なる式で表現できる。具体的には、Ｅｎ＝０の時に語長Ｘｎは「１６」、Ｅｎ＝１の時に語長Ｘｎは「１６」、Ｅｎ＝２の時に語長Ｘｎは「１７」、Ｅｎ＝３の時に語長Ｘｎは「２０」、Ｅｎ＝４の時に語長Ｘｎは「２７」と変化する。
【０００７】
一方、信号処理装置の内部処理語長（固定小数点形式）は、一般に８の倍数、つまり１６ビット、２４ビットあるいは３２ビットであり、この内で上記語長Ｘｎに一致する語長は１６ビット以外に無い。つまり換言すれば、固定小数点データを浮動小数点データに変換する場合、変換効率の良い固定小数点形式の語長は限られる。したがって、外部メモリの語長が信号処理装置の処理語長に調和しなければ、固定小数点形式から浮動小数点形式に変換した波形データを切り捨てることになり、これが音質劣化を招いてしまう。
【０００８】
本発明は、このような事情に鑑みてなされたもので、必要な分解能を確保しながらも切り捨てによる音質劣化を回避することができる波形データ変換装置を提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、請求項１に記載の発明では、Ｘビットの固定小数点波形データをＮビットの仮数部で表現するのに必要な連続的ベキ数の数Ｅ（Ｘ＝Ｎ＋Ｅ−１の関係）のいずれかを、ｎ（2ｎ＜Ｅの関係）ビットの指数部で指定可能な数２ｎまで間引き、当該間引かれた不連続なベキ数を前記ｎビットの指数部で指定可能な値夫々に割り当てる割当手段と、前記割当手段により割当てられた指数部の値に応じて、Ｘビットの固定小数点波形データを前記ｎビットの指数部とＮビットの仮数部とから構成される浮動小数点波形データに変換する変換手段とを具備することを特徴とする。
【００１１】
上記請求項１に従属する請求項２に記載の発明では、前記割当手段は、前記ｎビットの指数部で指定可能な数２ｎとなるように１つ置きに間引いた奇数列のベキ数夫々を、当該ｎビットの指数部で指定可能な値夫々に割り当てることを特徴とする。
【００１２】
上記請求項１に従属する請求項３に記載の発明では、前記割当手段は、前記ｎビットの指数部で指定可能な数２ｎとなるように１つ置きに間引いた偶数列のベキ数夫々を、当該ｎビットの指数部で指定可能な値夫々に割り当てることを特徴とする。
【発明の効果】
【００１３】
請求項１に記載の発明によれば、固定小数点波形データを仮数部の語長で表現するのに必要なベキ数の数を、指数部で指定可能な数まで間引き、間引かれた不連続なベキ数を指数部の値に割り当て、割当てられた指数部の値に応じて、固定小数点波形データを指数部と仮数部とから構成される浮動小数点波形データに変換する。これにより、固定小数点波形データを浮動小数点波形データに変換する場合に、必要な分解能を確保しながら波形データの切り捨てによる音質劣化を回避できる。
【発明を実施するための最良の形態】
【００１５】
（１）発明の概要
図１は、本発明の概要を説明するための図である。前述したように、固定小数点形式の波形データを浮動小数点形式の波形データに変換する場合、外部メモリの語長幅が信号処理装置の処理語長に調和することが好ましい。例えば外部メモリの語長（格納幅）が１６ビットの場合を想定すると、指数部３ビットおよび仮数部１３ビットの浮動小数点形式ならば、固定小数点２０ビットまでしか表現できない。したがって、信号処理装置の処理語長が２４ビットであると、その下位４ビットは切り捨てられてしまう。一方、指数部４ビットおよび仮数部１２ビットの浮動小数点形式にすれば、固定小数点２７ビットまで対応可能だが分解能は半減する。
【００１６】
その為、本発明による波形データ変換装置では、図１に図示する通り、例えば固定小数点２４ビットの波形データを、語長１６ビットの外部メモリに効率良く格納できるように、指数部３ビットおよび仮数部１３ビットで構成される浮動小数点１６ビットの波形データに変換する。すなわち、浮動小数点１６ビットの波形データでは、その上位３ビット（１５ＳＢ〜１３ＳＢ）の指数部がベキ数を表す。３ビットの指数で表現し得るベキ数は「０」〜「７」である。これに対し、仮数部１３ビットで２４ビット長のデータを表現するには、「０」〜「１１」のベキ数が必要になる。
【００１７】
そこで、仮数部１３ビットで２４ビット長のデータを表現するのに必要なベキ数「０」〜「１１」の内、「１」、「３」、「５」、「７」を間引いた不連続なベキ数「０」、「２」、「４」、「６」、「８」、「９」、「１０」、「１１」を、１５ＳＢ〜１３ＳＢの指数部の値に置換する。こうすると、仮数部１３ビットが有効桁となるのは、もともとのベキ数が「０」、「２」、「４」、「６」、「８」、「９」、「１０」および「１１」の場合である。一方、間引いたベキ数「１」、「３」、「５」、「７」は、仮数部１３ビットで２４ビット長のデータを表現するのに必要なベキ数の「２」、「４」、「６」、「８」に対応し、これらのベキ数を用いる際には、４ビットの指数部と１２ビットの仮数部とからなる浮動小数点１６ビットに変換する。
【００１８】
（２）実施の形態
次に、図２〜図５を参照して本発明の実施の形態について説明する。図２は、実施の一形態による信号処理装置２０の構成を示すブロック図である。この図に示す信号処理装置２０は、電子楽器の音源に用いられるものであり、デジタル・シグナル・プロセッサ（以下、ＤＳＰと記す）２１およびデータ形式変換器２２から構成される。ＤＳＰ２１は、図示されていないＣＰＵの制御の下に、例えば固定小数点２４ビットの波形データについて積和演算処理する。データ形式変換器２２は、ＤＳＰ２１の制御の下に、Ａ／Ｄ変換器１０から供給される固定小数点２４ビットの波形データを、浮動小数点１６ビットの波形データに変換して外部メモリ３０にストアする。また、データ形式変換器２２は、ＤＳＰ２１の制御の下に、外部メモリ３０から読み出す浮動小数点１６ビットの波形データを、固定小数点２４ビットの波形データに変換してＤＳＰ２１に出力する。
【００１９】
ＤＳＰ２１では、データ形式変換器２２を介して外部メモリ３０に記憶される波形データをサンプリング周期毎に読み出し、読み出した波形データについて、例えば遅延フィードバック演算を施し、これにて生成される楽音データをＤ／Ａ変換器４０に出力する。Ｄ／Ａ変換器４０は、ＤＳＰ２１が出力する楽音データをＤ／Ａ変換してなる楽音信号を発生する。
【００２０】
次に、図３〜図４を参照してデータ形式変換器２２の構成を説明する。データ形式変換器２２は、固定小数点２４ビットの波形データを浮動小数点１６ビットの波形データに変換する第１の変換部と、浮動小数点１６ビットの波形データを固定小数点２４ビットの波形データに変換する第２の変換部とに大別される。
【００２１】
図３は、第１の変換部の構成を示すブロック図である。第１の変換部は、図１に図示したように、仮数部１３ビットで２４ビット長のデータを表現するのに必要なベキ数「０」〜「１１」の内、「１」、「３」、「５」、「７」を間引いた不連続なベキ数「０」、「２」、「４」、「６」、「８」、「９」、「１０」、「１１」を、１５ＳＢ〜１３ＳＢの指数部の値に置換する一方、その置換された指数部の値に応じて、固定小数点２４ビットの波形データを１３ビットの仮数部で表現する。
【００２２】
なお、図３には図示していないが、上記置換により間引かれるベキ数（「１」、「３」、「５」、「７」）、すなわち元々のベキ数の「２」、「４」、「６」、「８」を用いる際には、固定小数点２４ビットの波形データを、４ビットの指数部と１２ビットの仮数部とからなる浮動小数点１６ビットに変換する構成を設ければよい。
【００２３】
第１の変換部は、エクスクルーシブＯＲ回路２３１〜２３７、ＡＮＤゲート回路２４１〜２４６、反転回路２５１、８−３エンコーダ２５および８−１セレクタ２６を備える。エクスクルーシブＯＲ回路２３１は、入力される固定小数点２４ビットデータの２３ＳＢ（最上位ビットＭＳＢ）から０ＳＢ（最下位ビットＬＳＢ）の内、２３ＳＢから１２ＳＢまでの１２ビット全てが一致した場合に「Ｈ」レベル出力を発生する。同様に、エクスクルーシブＯＲ回路２３２は、２３ＳＢから１４ＳＢまでの１０ビット全てが一致した場合に「Ｈ」レベル出力を発生する。エクスクルーシブＯＲ回路２３３は、２３ＳＢから１６ＳＢまでの８ビット全てが一致した場合に「Ｈ」レベル出力を発生する。
【００２４】
エクスクルーシブＯＲ回路２３４は、２３ＳＢから１８ＳＢまでの６ビット全てが一致した場合に「Ｈ」レベル出力を発生する。エクスクルーシブＯＲ回路２３５は、２３ＳＢから２０ＳＢまでの４ビット全てが一致した場合に「Ｈ」レベル出力を発生する。エクスクルーシブＯＲ回路２３６は、２３ＳＢから２１ＳＢまでの３ビット全てが一致した場合に「Ｈ」レベル出力を発生する。エクスクルーシブＯＲ回路２３７は、２３ＳＢから２２ＳＢまでの２ビットが一致した場合に「Ｈ」レベル出力を発生する。
【００２５】
ＡＮＤゲート回路２４１〜２４６および反転回路２５１は、上記エクスクルーシブＯＲ回路２３１〜２３７が同時に複数の「Ｈ」レベル出力を８−３エンコーダ２５に供給するのを防止しており、より多くの一致を優先する。８−３エンコーダ２５は、入力端「０」〜「７」の内、前段からの「Ｈ」レベル出力が供給される入力端の番号を３ビットにエンコードしてなる指数部の値を発生する。８−１セレクタ２６は、入力端「０」〜「７」の内、上記８−３エンコーダ２５が発生する３ビットの指数部の値で指定される入力端に供給される１３ビットデータを選択し、これを仮数部として出力する。
【００２６】
なお、８−１セレクタ２６において、入力端「０」には固定小数点２４ビットデータの１２ＳＢから０ＳＢ（ＬＳＢ）までの１３ビットが供給される。同様に、入力端「１」には１４ＳＢから２ＳＢまでの１３ビットが供給される。入力端「２１には１６ＳＢから４ＳＢまでの１３ビットが供給される。入力端「３」には１８ＳＢから６ＳＢまでの１３ビットが供給される。入力端「４」には２０ＳＢから８ＳＢまでの１３ビットが供給される。入力端「５」には２１ＳＢから９ＳＢまでの１３ビットが供給される。入力端「６」には２２ＳＢから１０ＳＢまでの１３ビットが供給される。入力端「７」には２３ＳＢから１１ＳＢまでの１３ビットが供給される。
【００２７】
上記構成によれば、固定小数点２４ビットデータが、８−３エンコーダ２５から出力される３ビットの指数部と、８−１セレクタ２６から出力される１３ビットの仮数部とから構成される浮動小数点１６ビットデータに変換される。この変換された浮動小数点１６ビットデータと、固定小数点２４ビットデータとの関係は、図１に図示した通りとなる。
【００２８】
次に、図４は第２の変換部の構成を示すブロック図である。第２の変換部は、８−１セレクタ２７からなる。８−１セレクタ２７は、入力端「０」〜「７」の内、浮動小数点１６ビットデータ中の指数部の値（浮動小数点１６ビットデータ中の１５ＳＢ〜１３ＳＢ）で指定される入力端に供給される２４ビットデータを選択し、これを固定小数点２４ビットデータとして出力する。
【００２９】
なお、８−１セレクタ２７の入力端「０」には、次の２４ビットデータが供給される。すなわち、１５ＳＢ（最上位ビットＭＳＢ）から０ＳＢ（最下位ビットＬＳＢ）からなる浮動小数点１６ビットデータの内、１２ＳＢを１１ビット分と１２ＳＢ〜０ＳＢをバンドルした２４ビットデータが供給される。入力端「１」には１２ＳＢを９ビット分と、１２ＳＢ〜０ＳＢと、２ビット分の「０」とをバンドルした２４ビットデータが供給される。入力端「２」には１２ＳＢを７ビット分と、１２ＳＢ〜０ＳＢと、４ビット分の「０」とをバンドルした２４ビットデータが供給される。入力端「３」には１２ＳＢを５ビット分と、１２ＳＢ〜０ＳＢと、６ビット分の「０」とをバンドルした２４ビットデータが供給される。
【００３０】
入力端「４」には１２ＳＢを３ビット分と、１２ＳＢ〜０ＳＢと、９ビット分の「０」とをバンドルした２４ビットデータが供給される。入力端「５」には１２ＳＢを２ビット分と、１２ＳＢ〜０ＳＢと、９ビット分の「０」とをバンドルした２４ビットデータが供給される。入力端「６」には１２ＳＢを１ビット分と、１２ＳＢ〜０ＳＢと、１０ビット分の「０」とをバンドルした２４ビットデータが供給される。入力端「７」には１２ＳＢ〜０ＳＢと、１１ビット分の「０」とをバンドルした２４ビットデータが供給される。
【００３１】
次に、図５を参照してデータ形式変換器２２の変換精度について説明する。図５は、固定小数点２４ビットフルレンジのダイナミックレンジ幅まで信号レベルをリニアに低減させた時のノイズレベルＡ〜Ｃの特性を図示したものである。ノイズレベルＡは、３ビットの指数部と１３ビットの仮数部とからなる浮動小数点１６ビットデータのノイズレベルを表す。ノイズレベルＢは、４ビットの指数部と１２ビットの仮数部とからなる浮動小数点１６ビットデータのノイズレベルを表す。ノイズレベルＣは、データ形式変換器２２により変換された、不連続なベキ数を割り当てる３ビットの指数部と１３ビットの仮数部とからなる浮動小数点１６ビットデータのノイズレベルを表す。
【００３２】
そして、図５に図示する通り、ノイズレベルＣは、信号レベルが高い領域ではノイズレベルＡに準じた分解能を有し、一方、信号レベルが固定小数点２４ビットフルレンジに近い低い領域ではノイズレベルＢに準じた分解能を有するので、必要な分解能を確保し得る。
【００３３】
以上のように、データ形式変換器２２は、信号処理装置２０の処理語長を外部メモリ３０の語長に調和させて効率良く格納できるように、固定小数点形式の２４ビットの波形データを、不連続なベキ数を割り当てる３ビットの指数部と１３ビットの仮数部とから構成される浮動小数点形式の波形データに変換する一方、この１６ビットの浮動小数点形式の波形データを固定小数点形式の２４ビットの波形データに変換するので、必要な分解能を確保しながら波形データの切り捨てによる音質劣化を回避することができる。
【００３４】
なお、上述した実施の形態では、仮数部１３ビットで２４ビット長のデータを表現するのに必要なベキ数「０」〜「１１」の内、「１」、「３」、「５」、「７」を間引いた不連続なベキ数「０」、「２」、「４」、「６」、「８」、「９」、「１０」および「１１」を指数部の値に置換するようにしたが、これに替えて、「２」、「４」、「６」、「８」を間引いた不連続なベキ数「０」、「１」、「３」、「５」、「７」、「９」、「１０」および「１１」を指数部の値に置換する態様としても構わない。
【００３５】
さらに、本発明の要旨は、固定小数点２４ビットデータを浮動小数点１６ビットデータに変換するものに限定されず、例えば図６に図示する通り、仮数部２１ビットで３２ビット長のデータを表現するのに必要なベキ数「０」〜「１１」の内、「１」、「３」、「５」、「７」を間引いた不連続なベキ数「０」、「２」、「４」、「６」、「８」、「９」、「１０」および「１１」を指数部の値に置換すれば、固定小数点３２ビットデータを浮動小数点２４ビットデータに変換する場合にも適用可能になる。
【図面の簡単な説明】
【００３６】
【図１】本発明の概要を説明するための図である。
【図２】本発明の実施の一形態の構成を示すブロック図である。
【図３】固定小数点２４ビットデータを浮動小数点１６ビットデータに変換するデータ形式変換器２２の構成を示すブロック図である。
【図４】浮動小数点１６ビットデータを固定小数点２４ビットデータをに変換するデータ形式変換器２２の構成を示すブロック図である。
【図５】データ形式変換器２２の変換精度を説明するための図である。
【図６】固定小数点３２ビットデータを浮動小数点２４ビットデータに変換する一例を説明するための図である。
【図７】固定小数点２０ビットデータを浮動小数点１６ビットデータに変換する一例を説明するための図である。
【符号の説明】
【００３７】
１０  Ａ／Ｄ変換器
２０  信号処理装置
２１  ＤＳＰ
２２  データ形式変換器
３０  外部メモリ
４０  Ｄ／Ａ変換器
【図１】
0004505751.tif 000002
【図２】
0004505751.tif 000003
【図３】
0004505751.tif 000004
【図４】
0004505751.tif 000005
【図５】
0004505751.tif 000006
【図６】
0004505751.tif 000007
【図７】
0004505751.tif 000008