(57)【特許請求の範囲】
【請求項１】
所定のビット数の固定少数点表示のデータを圧縮するデータ変換装置であって、
前記固定少数点表示のデータのうちの所定の範囲のレベルのデータを前記所定のビット数よりも小さいビット数の浮動小数点表示のデータに変換する変換手段と、
前記固定少数点表示のデータのうちの所定の範囲のレベル以外のデータを前記所定のビット数よりも小さいビット数の固定少数点表示のデータに変更する変更手段と、
前記変換手段および前記変更手段によって得られたデータが浮動小数点表示であるか、固定小数点表示であるかを識別するフラグビットを生成する手段と、
を備え、
前記所定のビット数よりも小さいビット数の浮動小数点表示のデータにおいて、仮数部の最上位ビットが省略されて浮動小数点表示であることを識別するフラグビットが挿入されているデータ、または、
前記所定のビット数よりも小さいビット数の固定少数点表示のデータに、固定小数点表示であることを識別するフラグビットが挿入されているデータを圧縮データとして出力する
ことを特徴とするデータ変換装置。
【請求項２】
請求項１のデータ変換装置において、
前記変更手段は、最上位ビットから同じ符号が連続するビット数に応じて、予め定められたビットだけレベルシフトされた値となるように前記変更を実行する
ことを特徴とするデータ変換装置。
【請求項３】
請求項１または２のデータ変換装置において、
前記圧縮データを伸張する際に、前記伸長すべきデータが浮動小数点表示であるか、固定小数点表示であるかを識別する前記フラグビットに基づいて、前記伸長すべきデータが浮動小数点表示のデータの場合には、前記所定のビット数の固定少数点表示のデータに変換する手段と、
前記フラグビットに基づいて前記伸長すべきデータが固定少数点表示のデータの場合には、前記所定のビット数の固定小数点表示のデータに変更する手段と
を備えたことを特徴とするデータ変換装置。
【請求項４】
請求項３のデータ変換装置において、
前記変換手段は、
前記伸長すべきデータの最上位ビットに基づいて、浮動小数点表示であることを識別する識別手段と、
前記識別手段の識別結果に基づき、最上位ビットの反転ビットを生成して前記伸長すべきデータの符号ビットを生成する手段と、
前記伸長すべきデータおよび前記符号ビットから仮数部データと指数部データを生成する手段と、前記仮数部データと指数部データとから前記所定のビット数の固定小数点データを生成する手段と
を備えたことを特徴とするデータ変換装置。
【請求項５】
請求項３のデータ変換装置において、
前記変更手段は、最上位ビットから同じ符号が連続するビット数に応じて、予め定められたビットだけレベルシフトすることを特徴とするデータ変換装置。
【請求項６】
請求項３、４および５のいずれかのデータ変換装置において、
前記伸長すべきデータに基づいて生成されたデータより下位のビットに符号ビットまたは乱数を挿入する手段を有することを特徴とするデータ変換装置。
【発明の詳細な説明】
【０００１】
【発明の技術分野】
本発明は、例えばオーディオデータ等の波形データを圧縮、伸長するデータ変換装置に関するものである。
【０００２】
【従来の技術】
オーディオデータの圧縮、伸長技術には様々な方式があるが、１つのデータのみから圧縮、伸長を行う手法としては、単純に上位ビットから必要なビット数を取り出す固定小数点的な手法と、データを仮数部、指数部のように割り当てる浮動小数点的な手法と、データそのものに対して折れ線近似を行う手法とがある。
【０００３】
ここで、オーディオ用データでよく用いられる２４ｂｉｔのデータを１２ｂｉｔに圧縮する手法を例にとって、これらの手法を以下に説明する。
【０００４】
まず、表１（図４）に２の補数表現で表された２４ｂｉｔの入力データと入力レベルの関係を示す。ここでＳはＳｉｇｎｂｉｔ（符号ｂｉｔ）、ＳＮはＳｉｇｎｂｉｔ（符号ｂｉｔ）の反転値、＊は任意のデータである０もしくは１の値を示す。このようにすると２４ｂｉｔデータは、表１のレベルのいずれかに必ず当てはめることが出来る。ちなみに正のフルスケールは、０１１１  １１１１  １１１１  １１１１  １１１１  １１１１、負のフルスケールは、１０００  ００００  ００００  ００００  ００００  ００００であるからレベル０に当てはめられる。また、簡単のため１ｂｉｔ当たりの量子化ノイズは６ｄＢとし表１の右側に入力レベルとして表している。２４ｂｉｔのダイナミックレンジは２４ｂｉｔ×６ｄＢ＝１４４ｄＢとなる。
【０００５】
固定小数点的手法：
表２（図５）に、表１のような２４ｂｉｔデータを１２ｂｉｔ固定小数点方式で圧縮する場合の例を示し、表３（図６）に圧縮後のデータ構成を示す。表２，３を見てわかるように固定小数点方式の場合は、上位１２ｂｉｔをそのまま取り出しただけである。この場合フルスケール（０ｄＢ）における有効ｂｉｔ長は１２ｂｉｔあり、Ｓ／Ｎ＋Ｄは、約７２ｄＢ、ダイナミックレンジも７２ｄＢである。なお、Ｓ／Ｎ＋Ｄとは、信号の実効値（Ｓ：Ｓｉｇｎａｌ）と信号以外の測定帯域上の全スペクトル成分の実効値（Ｎ＋Ｄ：ＮはＮｏｉｓｅ、ＤはＤｉｓｔｏｒｔｉｏｎ）の比である。この固定小数点的手法は、回路が非常に簡単であり、ダイナミックレンジと同じＳ／Ｎ＋Ｄが得られることが特徴である。
【０００６】
浮動小数点的手法：
表１のような２４ｂｉｔデータを仮数部８ｂｉｔ、指数部４ｂｉｔの浮動小数点方式で圧縮を行う場合の例を表４（図７）に示し、１２ｂｉｔに圧縮後のデータ構成を表５（図８）に示す。指数部のデータは、圧縮時に取り込むべきデータのＭＳＢからのシフト量に対応している。この圧縮の場合ダイナミックレンジは１３８ｄＢ（２３ｂｉｔ相当）得られるが、仮数部が８ｂｉｔしかないことから、０ｄＢにおけるＳ／Ｎ＋Ｄは、約４８ｄＢ程度しかなく、入力レベルが−２４ｄＢ（レベル４）まで下がって固定小数点方式と同じＳ／Ｎ＋Ｄが得られるようになる。この浮動小数点的手法は、少ないデータ長で広いダイナミックレンジがとれることが特徴である。
【０００７】
折れ線近似的手法：
この手法は、信号のレベルが大きい時には、量子化のステップを粗くし、信号のレベルが小さい時には細かくする方法であって、データの値に応じて変化させるので、指数部の領域を持たなくてもすみ、浮動小数点的手法よりもＳ／Ｎ＋Ｄや、ダイナミックレンジを改善することが出来る。
【０００８】
【発明が解決しようとする課題】
しかしながら、上記の固定小数点的手法では、ダイナミックレンジがデータ長で決まってしまうため広いダイナミックレンジがとれないという問題がある。
【０００９】
また、浮動小数点的手法では、指数部の領域が必要なため、有効ビット長がその分減ることになる。そのため、Ｓ／Ｎ＋Ｄは悪くなり、信号レベルの大小で量子化雑音が変化してしまうという問題がある。
【００１０】
さらに折れ線近似的手法では、データに応じて圧縮の傾きを変化させる必要があるのでハードウエア的に構成が複雑になり、また、入力レベルが大きいときのＳ／Ｎ＋Ｄを改善することはできない。
【００１１】
そこで本発明の目的は、以上のような問題を解消し、入力データを簡単な手法で、固定小数点データもしくは仮数部、指数部からなる浮動小数点データに圧縮し、さらに圧縮後のデータを簡単な手法で伸長し、入力データのレベルが大きいときでも歪みが少なくかつ広いダイナミックレンジを表現出来るデータ変換装置、データ圧縮装置およびデータ伸長装置を提供することにある。
【００１６】
【課題を解決するための手段】
請求項１の発明は、所定のビット数の固定少数点表示のデータを圧縮するデータ変換装置であって、前記固定少数点表示のデータのうちの所定の範囲のレベルのデータを前記所定のビット数よりも小さいビット数の浮動小数点表示のデータに変換する変換手段と、前記固定少数点表示のデータのうちの所定の範囲のレベル以外のデータを前記所定のビット数よりも小さいビット数の固定少数点表示のデータに変更する変更手段と、前記変換手段および前記変更手段によって得られたデータが浮動小数点表示であるか、固定小数点表示であるかを識別するフラグビットを生成する手段と、を備え、前記所定のビット数よりも小さいビット数の浮動小数点表示のデータにおいて、仮数部の最上位ビットが省略されて浮動小数点表示であることを識別するフラグビットが挿入されているデータ、または、前記所定のビット数よりも小さいビット数の固定少数点表示のデータに、固定小数点表示であることを識別するフラグビットが挿入されているデータを圧縮データとして出力することを特徴とする。
【００１９】
請求項２の発明は、請求項１において、前記変更手段は、最上位ビットから同じ符号が連続するビット数に応じて、予め定められたビットだけレベルシフトされた値となるように前記変更を実行することを特徴とする。
【００２０】
請求項３の発明は、請求項１または２のデータ変換装置において、前記圧縮データを伸張する際に、前記伸長すべきデータが浮動小数点表示であるか、固定小数点表示であるかを識別する前記フラグビットに基づいて、前記伸長すべきデータが浮動小数点表示のデータの場合には、前記所定のビット数の固定少数点表示のデータに変換する手段と、前記フラグビットに基づいて前記伸長すべきデータが固定少数点表示のデータの場合には、前記所定のビット数の固定小数点表示のデータに変更する手段とを備えたことを特徴とする。
【００２１】
請求項４の発明は、請求項３において、前記変換手段は、前記伸長すべきデータの最上位ビットに基づいて、浮動小数点表示であることを識別する識別手段と、前記識別手段の識別結果に基づき、最上位ビットの反転ビットを生成して前記伸長すべきデータの符号ビットを生成する手段と、前記伸長すべきデータおよび前記符号ビットから仮数部データと指数部データを生成する手段と、前記仮数部データと指数部データとから前記所定のビット数の固定小数点データを生成する手段とを備えたことを特徴とする。
【００２２】
請求項５の発明は、請求項３において、前記変更手段は、最上位ビットから同じ符号が連続するビット数に応じて、予め定められたビットだけレベルシフトすることを特徴とする。
【００２３】
請求項６の発明は、請求項３、４および５のいずれかにおいて、前記伸長すべきデータに基づいて生成されたデータより下位のビットに符号ビットまたは乱数を挿入する手段を有することを特徴とする。
【００２４】
【発明の実施の形態】
図１に本発明を適用したオーディオ用ＤＳＰ（Ｄｉｇｉｔａｌ  ＳｉｇｎａｌＰｒｏｃｅｓｓｏｒ）のブロック図を示す。
【００２５】
図１において、１はマイコンインターフェース、２はマイコンインターフェース１を介して各種の状態を設定するコントロールレジスタ（本発明では、表１６、表１７、表１８の値を設定している。）、３はＤＳＰの演算手順を格納するプログラムＲＡＭ（はじめからＲＯＭとして格納している場合もある。）、４は、乗算や加算などの算術、論理演算を行う演算処理回路、５は演算処理する際に使用するＲＡＭ（係数ＲＡＭ、ＤＡＴＡ  ＲＡＭなどがこれに該当する）、１６は入出力データのインターフェース、１８は、クロックなどを制御するＤＳＰのコントロール回路、１７はデータバスであって、プログラムＲＡＭより出力するインストラクション命令や、コントロールレジスタ、ＤＳＰコントロール回路から出力される制御線などは省略されている。２０は、このＤＳＰを内蔵したデータ処理装置等の本体にあるマイクロコンピュータである。なお、この図の基本的構成は、図２のＤＳＰ６にも適用できる。圧縮すべきデータは、不図示のデータ処理装置（例えば、図１のオーディオ用ＤＳＰを用いてオーディオ信号の音場処理を行う装置があり、これは、例えばＤＶＤ等に記録された映画ソースを再生してその音声情報を音場処理する、いわゆるＡＶアンプとして知られている。）において、デジタルデータとして生成される。
【００２６】
（実施例１）
まず、図１の構成を使用して、２４ｂｉｔデータを１２ｂｉｔに圧縮する場合を例として以下に説明する。
【００２７】
表６（図９）は本実施例１による圧縮の１例を示す。この場合、図１のオーディオ用ＤＳＰにおいて、２４ビットデータ（表１）を以下のようにして、圧縮処理する。
【００２８】
（１）入力される２４ｂｉｔデータのレベルを判断する。
【００２９】
まず、図１のオーディオ用ＤＳＰに入力する２４ｂｉｔデータのピークレベルを判断する。フラグビットを１ｂｉｔ用意し、このフラグビットが０の時は固定小数点方式、１の時は浮動小数点方式とし（０と１が逆でも可。すなわち、フラグの定義は逆でも良い。）、表６に示すように、各入力レベルに該当するフラグを対応させる。
【００３０】
ここでは、入力レベルが０から２まではフラグを０とし、固定小数点方式で圧縮処理する。このようにすると、１１ｂｉ１分が固定小数点のデータとして割り当てられる。また、入力レベルが１１から１８までもフラグを０とし、固定小数点方式で圧縮処理する。
【００３１】
次にレベル３から１０までの８段階のフラグを１とし浮動小数点方式で圧縮処理する。このようにすると、指数部に３ｂｉｔ必要となるので仮数部は８ｂｉｔとなる。しかし、表６をみてわかるように浮動小数点時は必ず、Ｓ，ＳＮ，…と続くのでＳＮのみデータとしてとっておき、伸長時にＳＮを反転させＳを生成させれば良いことがわかる。これで仮数部は実質９ｂｉｔ分のデータを持っているのと同じになる。
【００３２】
（２）固定小数点方式で圧縮処理する場合、入力データにＭＳＢ（最上位ｂｉｔ）からＳ（Ｓｉｇｎｂｉｔ）が連続４つ以上続いているかを判断する。
【００３３】
すなわち、入力レベルが０から２までの固定小数点方式のデータ構成をみると、ＭＳＢ（最上位ｂｉｔ）から、Ｓ（Ｓｉｇｎｂｉｔ）は連続３つまでで、４つ以上続くことはないことがわかる。一方、入力レベルが１１から１８までの入力信号が微小の場合は、データが下位ｂｉｔのみ変化し、上位ｂｉｔはＳｉｇｎｂｉｔが連続することになる。したがって、表６の例では、Ｓ（Ｓｉｇｎｂｉｔ）が連続４つ以上続いた場合、８ｂｉｔ右にシフトした１１ｂｉｔの固定小数点データとする。これにより入力が−６６ｄＢより小さい場合は、固定小数点データとして扱われノイズフロアのレベルが変化することはない。
【００３４】
圧縮されたデータは、固定小数点方式で圧縮されたか浮動小数点方式で圧縮されたかを示すフラグデータとともに内部または外部のメモリ（ＲＡＭ）に一時記憶される。
【００３５】
表６の例では、ダイナミックレンジで１１４ｄＢ、入力レベル０ｄＢのＳ／Ｎ＋Ｄ（歪）が約６６ｄＢ（１１ｂｉｔ相当）得られることとなる。表４の浮動小数点方式のダイナミックレンジ１３８ｄＢに比べて、ダイナミックレンジは若干落ちるが、実使用上ここまで要求されることは少なく、むしろ浮動小数点時の仮数部のｂｉｔ長を増やした方が音質的には良いためにこのようにしてある。ダイナミックレンジ１３８ｄＢを実現させる例は後述する。
【００３６】
表７（図１０）に、図１の構成を使用して表６の方法で圧縮された場合のデータ構成例を示す。指数部のデータは、圧縮時取り込みデータのＭＳＢからのシフト量を示しており、８ｂｉｔが区別出来れば良いので必ずしもこの順番でなくてかまわない（たとえば０００，００１，…，１１０，１１１）。
【００３７】
次に、図１のオーディオ用ＤＳＰを使用して１２ｂｉｔに圧縮されたデータを伸長する処理について説明する。
【００３８】
まず、メモリ内の上記フラグビット（図９）からその圧縮データが固定小数点方式で圧縮されたか、浮動小数点方式で圧縮されたかを判断し、固定小数点方式の場合は、上位４ビットＳｉｇｎフラグが続いているかを判断し、上位４ビットＳｉｇｎフラグが続いた場合は、微小信号レベルと判断し、８ｂｉｔ右シフト（ＬＳＢ側）動作を行う。それ以外の場合はシフト動作を行わない。
【００３９】
浮動小数点方式の場合は、ＭＳＢのデータを反転させ、Ｓｉｇｎｂｉｔを生成させ、指数部のデータをもとに必要な右シフト動作を行う。
【００４０】
伸長後データの存在しない下位ｂｉｔに関しては、シフト後に、データのＳｉｇｎｂｉｔ（表８：図１１参照）もしくはＭ系列等で生成される乱数（表９：図１２参照）を挿入する。Ｓｉｇｎｂｉｔを挿入した場合はオフセットならびに偶数次の高調波の抑制が期待でき、乱数を挿入した場合は、ノイズレベルは若干悪くなるが高調波全体の抑制が期待できる。これらは、状況に応じて切り替えられるようにしておくとよい。
【００４１】
本発明では、フラグの取り方、指数部の取り方によりダイナミックレンジやデータの有効ｂｉｔ長を変更する事が可能である。そのような例をつぎにいくつか示す。
【００４２】
（実施例２）
図１の構成を使用して、２４ｂｉｔデータを１２ｂｉｔに圧縮する場合を例として以下に説明する。
【００４３】
表１０（図１３）は本実施例２による圧縮の１例を示す。表１０に示すように、この実施例では、フラグ２ｂｉｔを使用し、０１は入力レベル０に対応させ、０は入力レベル１から３および１２から１９に対応させ、１１は入力レベル４から１１に対応させる。フラグ０１および０は固定小数点方式、フラグ１１は浮動小数点方式である。指数部は３ビットであり、浮動小数点方式の場合の圧縮時取り込みデータのＭＳＢからのシフト量を示す。固定小数点方式の場合の入力データが、大入力（レベル１から３）か微小入力（レベル１２から１９）のいずれであるかの判断は、入力データのＭＳＢからＳｉｇｎｂｉｔの連続数が４以上であるか否かで行う。すなわち、４以上の場合は、微小入力であると判断し、ＭＳＢから９ｂｉｔシフトしたデータを取り込む。また固定小数点方式の場合の取り込みデータのＭＳＢからのシフト量は、入力レベル０から３までは１ｂｉｔ、入力レベル１２から１９までは９ｂｉｔである。
【００４４】
以上のような条件において、図１の構成のオーディオ用ＤＳＰを使用して、実施例１と同様にして、２４ｂｉｔデータを圧縮することができる。表１１（図１４）に圧縮後のデータ構成を示す。
【００４５】
この例では、入力レベルが０〜−６ｄＢ（入力レベル０）以外は、固定小数点方式と同等、もしくはそれ以上の有効ｂｉｔ長が得られる。
【００４６】
また、伸長時の動作も実施例１と同様であり、フラグビットの値と、ＭＳＢからのＳｉｇｎｂｉｔの連続数を参照して容易に伸長することができる。
【００４７】
（実施例３）
図１の構成を使用して、２４ｂｉｔデータを１２ｂｉｔに圧縮する場合を例として以下に説明する。
【００４８】
表１２（図１５）は本実施例３による圧縮の１例を示す。表１２に示すように、この実施例では、フラグ３ｂｉｔを使用し、０は入力レベル０から１および１４から２２に対応させ、００１は入力レベル２から３に対応させ、１０１は入力レベル４から５に対応させ、１１は入力レベル６から１３に対応させた。１１以外のフラグは固定小数点方式、フラグ１１は浮動小数点方式である。指数部は３ビットであり、浮動小数点方式の場合の圧縮時取り込みデータのＭＳＢからのシフト量を示す。固定小数点方式を適用する場合の入力データが、大入力（レベル０から１）か微小入力（レベル１４から２２）のいずれであるかの判断は、入力データのＭＳＢからＳｉｇｎｂｉｔの連続数が３以上であるか否かで行う。すなわち、３以上の場合は、微小入力であると判断し、ＭＳＢから１２ｂｉｔシフトしたデータを取り込む。また固定小数点方式の場合の取り込みデータのＭＳＢからのシフト量は、入力レベル０から１までは無し、入力レベル２から３までは２ｂｉｔ、入力レベル４から５までは４ｂｉｔ、入力レベル１４から２２までは１２ｂｉｔである。
【００４９】
以上のような条件において、図１の構成のオーディオ用ＤＳＰを使用して、実施例１と同様にして、２４ｂｉｔデータを圧縮することができる。表１３（図１６）に圧縮後のデータ構成を示す。この例では、指数部８ｂｉｔ，仮数部４ｂｉｔの浮動小数点演算データと同じく１３８ｄＢのダイナミックレンジを維持しつつ、入力レベルが０，１，２，４，１４において有効ｂｉｔ長が勝っていることがわかる。また、伸長時の動作も実施例１と同様であり、フラグビットの値と、ＭＳＢからのＳｉｇｎｂｉｔの連続数を参照して容易に伸長することができる。
【００５０】
（実施例４）
図１の構成を使用して、２４ｂｉｔデータを１６ｂｉｔに圧縮する場合を例として以下に説明する。
【００５１】
表１４（図１７）は本実施例４による圧縮の１例を示す。表１４に示すように、この実施例では、フラグ２ｂｉｔを使用し、０は入力レベル０から２および１０から１２に対応させ、０１は入力レベル３から５に対応させ、１１は入力レベル６から９に対応させ、０１は入力レベル１３から２３に対応させた。１１以外のフラグは固定小数点方式、フラグ１１は浮動小数点方式である。指数部は２ビットであり、浮動小数点方式の場合の圧縮時取り込みデータのＭＳＢからのシフト量を示す。固定小数点方式を適用する場合であって、フラグが０の場合の入力データが、大入力（レベル０から２）か小入力（レベル１０から１２）のいずれであるかの判断は、入力データのＭＳＢからＳｉｇｎｂｉｔの連続数が４以上であるか否かで行う。すなわち、４以上の場合は、小入力であると判断し、ＭＳＢから７ｂｉｔシフトしたデータを取り込む。また固定小数点方式の場合の取り込みデータのＭＳＢからのシフト量は、入力レベル０から２までは無し、入力レベル３から５までは４ｂｉｔ、入力レベル１３から２３までは１０ｂｉｔである。
【００５２】
以上のような条件において、図１の構成のオーディオ用ＤＳＰを使用して、実施例１と同様にして、２４ｂｉｔデータを圧縮することができる。表１５（図１８）に圧縮後のデータ構成を示す。表し１５のような入力データフォーマットを用いると、簡単にダイナミックレンジを２４ｂｉｔ相当に伸長する事が出来る。
モード設定等で、従来の１６ｂｉｔ固定データの切り替えも可能である。
【００５３】
また、伸長時の動作も実施例１と同様であり、フラグビットの値と、ＭＳＢからのＳｉｇｎｂｉｔの連続数を参照して容易に伸長することができる。
【００５４】
上述した実施例１〜４は、以下に述べるように専用のハードウェア（図２）によっても実行することができる。
【００５５】
なお、本発明の具体的使用例としては、実施例４で述べた新フォーマットとしての可能性もあるが、最も有効な利用法としては、音声データの一次保管手段としてのメモリに、圧縮して書き込み、伸長して読み出す場合である。
【００５６】
ＤＳＰを用いた音場処理等では、音声データを遅延させた後データ処理する事が多いが、その際のメモリ容量は要求される遅延量に応じて比例して増大してしまう。その反面、遅延データそのものをそのまま出力させることは少なく、元の音声データや他の音声データと加工して使われことが多いため、圧縮する事が可能になってくる。その際に、ＭＰＥＧのような高度な圧縮方法を使用すると、その回路自体が複雑になり、メモリサイズによっては圧縮する効果が出なくなってしまう。本発明は、そのような場合に有効である。
【００５７】
図２に、オーディオ用のＤＳＰに９６ｋｂｉｔのＳＲＡＭを搭載する場合について示す。なお、圧縮、伸長の方式としては、実施例１で述べた方式とする（表６〜表９）。これは２４ｂｉｔオーディオ用ＤＳＰ６を、２４ｂｉｔのデータバスを介して、本発明の圧縮、伸長回路７（詳細は後述する）に接続し、そこから９６ｂｉｔのＳＲＡＭ８につながる。これらの構成は、例えば、上述したＡＶアンプ等のデータ処理装置内に組み込まれて使用され、オーディオデータ以外の後述するような信号は、このデータ処理装置内の制御回路によって生成されるものとする。
【００５８】
９６ｋｂｉｔＳＲＡＭ８の構成は、モードによって表１６の４通りに分ける事が出来る。これらのモード信号は後述するＳＲＡＭ内のセレクタに入力され、いずれかの動作が選択される。
【００５９】
【表１】
0004575609.tif 000002
【００６０】
オーディオ用データは、２４ｂｉｔで使用されることが多く、その半分の１２ｂｉｔで圧縮し、ＳＲＡＭを表１６のＭＯＤＥ１のようにすべて１２ｂｉｔで使用すれば、ＲＡＭ容量を倍にすることが出来る。データの処理によっては、２４ｂｉｔのままメモリに記憶しておいたほうがよい場合があるので、ＭＯＤＥ２，ＭＯＤＥ３のように２４ｂｉｔ，１２ｂｉｔどちらも使えるようにしておくと便利である。１２ｂｉｔの場合は、制御信号としてＣＭＰ＿Ｎ（表１７）、Ｓ１ＧＮ＿Ｎ（表１８）を用意しておき、設定によって、圧縮・伸長のＯＮ，０ＦＦ、伸長時のＳｉｇｎｂｉｔ，乱数の挿入の切り替えが出来るようにしておく。これらの制御信号は後述する圧縮、伸長回路内のコントロール回路に入力される。
【００６１】
【表２】
0004575609.tif 000003
【００６２】
【表３】
0004575609.tif 000004
【００６３】
図３は、本発明の圧縮、伸長回路７を含んだ周辺回路を示す。
【００６４】
２４ｂｉｔデータのピークを検出するピーク検出回路９は、２４ｂｉｔ  Ａｕｄｉｏ用のＤＳＰ６の機能として含んでいる場合も多いので、それを利用した場合は、点線で囲った部分が圧縮、伸長回路７の構成となり、この圧縮、伸長回路７は、コントロール回路１０、左右１５ｂｉｔバレルシフタ１１（このバレルシフタは、圧縮時は左シフトし、伸長時は右シフトする。また２４ｂｉｔ時、ＣＭＰ＿Ｎの時  シフト０である）、およびデータ加工回路１２（このデータ加工回路は、左右１ｂｉｔシフタとＭ系列発生回路とデータセレクタとを有する）を有する。バレルシフタ１１は２４ｂｉｔのＤＢＵＳに接続されており、外部とのデータのやり取りが行われる。バレルシフタ１１はまた、データ加工回路１２と２４ｂｉｔのＸバスで接続される。データ加工回路１２は、さらに、２４ｂｉｔのデータのうち、上位１２ｂｉｔ分が１２ｂｉｔデータバスであるＭＢＵＳに接続され、下位にある１２ｂｉｔ分が１２ｂｉｔデータバスであるＬＢＵＳに接続される。ＭＢＵＳとＬＢＵＳには、１２ｂｉｔデータのＳＲＡＭが接続される。２４ｂｉｔデータのときには、ＭＢＵＳとＬＢＵＳにそれぞれＳＲＡＭが接続されるように選択され、ＳＲＡＭに２４ｂｉｔデータを記憶できるようになっている。したがって、図３に示すＳＲＡＭ８（図２の１個に相当する）は、メモリ部８Ａとセレクタ部８Ｂ（コントロール線からの制御信号に応答して２４ｂｉｔ時はＬＳＢ側のデータバスを選択する）とを有する。
【００６５】
はじめに圧縮時の回路動作について説明する。ピーク検出回路９で、２４ビットのデータバスの上位１６ｂｉｔから表６に示すピーク検出値を求め、この値を圧縮、伸長回路７に送る。
【００６６】
圧縮、伸長回路７のコントロール回路１０は、コントロール線から得られたＭＯＤＥ［１：０］（表１６），ＣＭＰ＿Ｎ（表１７）の値に応答して、圧縮を行う場合はピーク値（表６の入力レベル０から１８）に応じて表６のシフト量が得られるようにバレルシフタ１１の値をコントロールして、左シフト（ＭＳＢ側にシフト）を行う。圧縮を行わない場合は、シフト操作を行わない。浮動小数点データで圧縮しＳＲＡＭに記録する場合は最上位ｂｉｔにＳＮがくるので、表６で示しているシフト量よりももうｌｂｉｔ左シフトする必要があるが、このバレルシフタ１１では行わず次段のデータ加工回路１２にて行う。この方が、コントロール的にも楽なためである。データ加工回路１２では、固定小数点データ時にはフラグビットの挿入を行い、浮動小数点データ時には、１ｂｉｔ左シフト後に、指数部データとフラグビットの挿入を行う。
【００６７】
こうして２４ｂｉｔデータの上位１２ｂｉｔがＭＢＵＳ［１１：０］を通して、ＳＲＡＭに書き込まれる（表７）。
【００６８】
伸長時は、１２ｂｉｔデータ  ＭＢＵＳ［１１：０］をデータ加工回路に取り込むとともに、ＭＢＵＳ［ｌ１：８］４ｂｉｔと，ＭＢＵＳ［３：０］４ｂｉｔをデータコントロール回路１０に取り込む。データコントロール回路１０では、図１９Ａに示すように、ＭＢＵＳ［０］のフラグが０であるなら固定小数点データと認識し、データ加工回路を通して、Ｘ［２３：１３］へは、フラグ１ｂｉｔ（ＭＢＵＳ［０］）を除いた１１ｂｉｔデータを、Ｘ［１２：０］へは、ＳＩＧＮ＿Ｎが０の場合はＳｉｇｎｂｉｔ（すなわち、ＭＢＵＳ［１１］）を、ＳＩＧＮ＿Ｎが１の場合は、乱数データを入れる。
【００６９】
また、コントロール回路１０でＭＢＵＳ［ｌ１：８］４ｂｉｔの値が１１１１あるいは００００であれば、微小信号と判断し、２４ｂｉｔデータＸ［２３：０］をバレルシフタ１１で８ｂｉｔ右シフト（ＬＳＢ側にシフト）する。右シフトにより欠落するＭＳＢ側のデータにはｓｉｇｎｂｉｔを入れる。
【００７０】
ＭＢＵＳ［ｌ１：８］４ｂｉｔの値が１１１１あるいは００００以外であれば、振幅の大きい信号と判断し、２４ｂｉｔデータＸ［２３：０］は、バレルシフタ１１でシフトを行わない。
【００７１】
ＭＢＵＳ［０］のフラグが１の時は、図１９のＢに示すように、浮動小数点データと判断し、データ加工回路１２にて、ＭＢＵＳ［１１］のｂｉｔを反転させてＳｉｇｎビットを生成し、Ｘ［２３：０］にいれ、ＭＢＵＳ［ｌ１：４］の８ｂｉｔデータを１ｂｉｔ右シフトしてＸ［２２：１５］にいれる。Ｘ［１４：０］には固定小数点データと同様に、Ｓ１ＧＮ＿Ｎが０の場合には、Ｓｉｇｎビットを、Ｓ１ＧＮ＿Ｎが１の場合は、乱数データを入れる。
【００７２】
また、コントロール回路でＭＢＵＳ［３：１］の指数部データを読み込み、その値からバレルシフタの右シフト量を決定し、Ｘ［２３：０］のシフトを行う。
右シフトにより欠落するＭＳＢ側のデータにはＳｉｇｎｂｉｔを入れる（表８，表９）。
【００７３】
ＬＢＵＳ［１１：０］のやり取りは、２４ｂｉｔデータとしてＳＲＡＭに読み書きする場合に用いられ、その場合、ＳＲＡＭ部のセレクタは、ＬＳＢ側を選択する。
【００７４】
ソフトウエアで処理する場合には、上記で述べた方法をプログラムで記述していけばよい。
【００７５】
【発明の効果】
以上説明したように、本発明によれば、より歪が少なく、且つ広いダイナミックレンジを表現できるデータ変換、圧縮、伸長装置を提供することができる。
【図面の簡単な説明】
【図１】本発明のデータ圧縮、伸長装置の一例を示すブロック図である。
【図２】本発明のデータ圧縮、伸長装置の他の一例を示すブロック図である。
【図３】同データ圧縮、伸長装置の詳細ブロック図である。
【図４】２４ｂｉｔデータと入力レベルとの関係を示す図である。
【図５】２４ｂｉｔデータを１２ｂｉｔ固定小数点方式で圧縮する場合のデータ構造を示す図である。
【図６】２４ｂｉｔデータを１２ｂｉｔ固定小数点方式で圧縮した後のデータ構造を示す図である。
【図７】２４ｂｉｔデータを仮数部８ｂｉｔ、指数部４ｂｉｔの浮動小数点方式で圧縮する場合のデータ構造を示す図である。
【図８】２４ｂｉｔデータを仮数部８ｂｉｔ、指数部４ｂｉｔの浮動小数点方式で圧縮した後のデータ構造を示す図である。
【図９】本発明の実施例１のデータ構造を示す図である。
【図１０】同実施例１の圧縮後のデータ構造を示す図である。
【図１１】同実施例１の伸長後のデータ構造の一例を示す図である。
【図１２】同実施例１の伸長後のデータ構造の他の一例を示す図である。
【図１３】本発明の実施例２のデータ構造を示す図である。
【図１４】同実施例２の圧縮後のデータ構造を示す図である。
【図１５】本発明の実施例３のデータ構造を示す図である。
【図１６】同実施例３の圧縮後のデータ構造を示す図である。
【図１７】本発明の実施例４のデータ構造を示す図である。
【図１８】同実施例４の圧縮後のデータ構造を示す図である。
【図１９】伸長時のＸ［２３：０］を示す図である。
【符号の説明】
１    ＣＰＵ
２    ＲＯＭ
３    ＲＡＭ
４    Ｉ／Ｏ
５    バス
６    ２４ｂｉｔオーディオ用ＤＳＰ
７    圧縮、伸長回路
８    ＳＲＡＭ
９    ピーク検出回路
１０    コントロール回路
１１    バレルシフタ
１２    データ加工回路
【図１】
0004575609.tif 000005
【図２】
0004575609.tif 000006
【図３】
0004575609.tif 000007
【図４】
0004575609.tif 000008
【図５】
0004575609.tif 000009
【図６】
0004575609.tif 000010
【図７】
0004575609.tif 000011
【図８】
0004575609.tif 000012
【図９】
0004575609.tif 000013
【図１０】
0004575609.tif 000014
【図１１】
0004575609.tif 000015
【図１２】
0004575609.tif 000016
【図１３】
0004575609.tif 000017
【図１４】
0004575609.tif 000018
【図１５】
0004575609.tif 000019
【図１６】
0004575609.tif 000020
【図１７】
0004575609.tif 000021
【図１８】
0004575609.tif 000022
【図１９】
0004575609.tif 000023