JP4148356B2 - 量子化ステップパラメータ決定装置と量子化ステップパラメータ決定方法と量子化ステップパラメータ決定プログラム、ならびに非線形量子化方法と非線形量子化装置と非線形量子化プログラム - Google Patents
量子化ステップパラメータ決定装置と量子化ステップパラメータ決定方法と量子化ステップパラメータ決定プログラム、ならびに非線形量子化方法と非線形量子化装置と非線形量子化プログラム Download PDFInfo
- Publication number
- JP4148356B2 JP4148356B2 JP2002334184A JP2002334184A JP4148356B2 JP 4148356 B2 JP4148356 B2 JP 4148356B2 JP 2002334184 A JP2002334184 A JP 2002334184A JP 2002334184 A JP2002334184 A JP 2002334184A JP 4148356 B2 JP4148356 B2 JP 4148356B2
- Authority
- JP
- Japan
- Prior art keywords
- quantization step
- quantization
- bits
- step parameter
- comparison
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は、アナログ信号と量子化ステップとから離散信号を算出する非線形量子化装置の量子化ステップパラメータを求める量子化ステップパラメータ決定装置および量子化ステップパラメータ決定方法、並びに量子化ステップパラメータ決定プログラム、ならびに非線形量子化方法および非線形量子化装置に関する。さらに詳しくは、本発明は、離散信号が所定値を超えない最大値を取る量子化ステップパラメータを設定するための量子化ステップパラメータ決定装置および量子化ステップパラメータ決定方法、並びに量子化ステップパラメータ決定プログラム、ならびにアナログ入力信号を非線形演算の解を含む離散信号に変換する非線形量子化方法および非線形量子化装置に関する。
【0002】
【従来の技術】
MPEG2等でのオーディオ信号圧縮のようにアナログ量をデジタル符号化する場合には、アナログ量を非線形量子化して離散値に変換する。例えばMP3における非線形量子化は、数式7のようにアナログ信号Xをデジタルの離散信号Iに変換する。
【0003】
【数7】
ここで、Qは量子化ステップであり、数式8により定義される。
【数8】
Q=2q/4
q:量子化ステップパラメータ(整数)
【0004】
アナログ信号Xを2進浮動小数点形式で表現すると数式9で示される。
【数9】
X=X1×2X2
ここで、X1はXの仮数部分であり0.5以上1.0未満の値となる。X2はXの指数部分であり整数値である。そして、X/Qは数式10で示される。
【数10】
量子化ステップパラメータqが4の倍数であれば、指数部分(X2−q/4)を加算回路だけで算出できる。そして、仮数部分と指数部分とを2進数として結合処理すればX/Qを得ることができる。
【0005】
また、量子化ステップパラメータqが4の倍数でないときは、数式10は数式11のように表される。
【数11】
ここで、≪n≫はnの整数部分を意味し、『n』はnの端数部分を意味する。『q/4』はqが正の場合には0,0.25,0.50,0.75のいずれかの値となる。
【0006】
そして、−『q/4』を指数とする項は、数式12または数式13のように変形できる。
【数12】
2−『q/4』=2(1+(−1−『q/4』))
=21×2(−1−『q/4』)
【数13】
2−『q/4』=2(−1+(1−『q/4』))
=2−1×2(1−『q/4』)
【0007】
これら数式12または数式13を利用すると、『q/4』≠0のときは、X/Qは数式14または数式15のように表される。
【数14】
【数15】
【0008】
さらに、q/4の小数点以下2ビットのみを取り出して、整数部分の全ビットを0または1に固定することで、数式16により補正値q1、数式17により補正値q2を導くことができる。
【数16】
【数17】
【0009】
ここで、数式16でq<0のときの『q/4』=0の場合、および数式17でq>0のときの『q/4』=0の場合では補正を要する。すなわち、数式16ではq<0のときに『q/4』=0であればq1=1.0になり、また数式17ではq>0のときに『q/4』=0であればq2=−1.0になり、これらq1、q2の値を用いて計算すれば正しい値を得ることができる。しかし、本実施形態ではq/4の小数点以下2ビットのみを取り出して計算しているため、q1=1.0あるいはq2=−1.0とならずに、いずれも0になってしまう。そこで、数式16に関しては、
q≧0かつ『q/4』=0のとき、q1=0
q<0かつ『q/4』=0のとき、q1=1.0
と補正すると共に、数式17に関しては、
q>0かつ『q/4』=0のとき、q2=−1.0
q≦0かつ『q/4』=0のとき、q2=0
と補正する。
【0010】
これらの補正値q1,q2を利用して数式14および数式15を書き換えると、数式18および数式19となる。
【数18】
【数19】
【0011】
2進整数値を2の補数表現で表すと、表現形式の最上位のビットが1のときに負の値であることを判別できる。
ここで、数式18および数式19のうちで、qが0若しくは正であることとqが負であることとで区別している数式19の方が容易に扱えるので、以下では数式19を用いて説明する。
【0012】
数式19において、指数部の加減算とq1を求めるためのビット切り出し回路はデジタル回路で容易に実現することができる。また、『q/4』はデジタル回路ではqの2ビットビットシフトで算出できるので、回路規模としては小さなものと成る。
【0013】
これに対し、仮数部のX1×2−q1の計算は乗算が必要であるので、デジタル回路での実現は大規模なものになる。しかし、q1=0の場合には仮数部はX1になることと、q1の変形自体が4ケースしかないことを考えると、この乗算を容易に定数テーブルの索引で代替することができる。そこで、演算結果として必要な精度の分だけの演算をX1、X1×20.25、X1×20.50、X1×20.75に対して予め行い、X1の有効ビットを切り出してq1×4の値と合わせて、その合わせた値から索引する仮数テーブルを用意することで、1回の仮数テーブル索引でX1×2−q1の値(演算用仮数Xf)を求めることができる。
【0014】
ところが、ここで得られた結果は、0.5≦X1×2−q1<1.0を必ずしも満たさないので、X/Qを求めるための浮動小数点仮数部としては使用できない。その一方で、1.18<20.25<20.75<1.69であることは既知である。このことと0.5≦X1<1であることとを合わせて考えると、0.5≦X1×2−q1<1を満たすようにするために指数部に加えるべき補正値は1で足りることが分かる。そこで、仮数テーブルからの出力値Xfが1.0以上になる場合は、仮数テーブルからの出力値Xfを予め2.0で割った値が出力されるように出力値Xfを補正しておく。これにより、仮数テーブルからの出力値Xfが浮動小数点形式として適切な値になる。さらに、X1とq1の値に応じて、指数部の補正値r1を格納する指数補正値テーブルを用意して、指数補正値テーブルを索引した結果の補正値r1を指数部に加えて、整数の演算用指数Xeを求める。
【0015】
このようにして求められた演算用仮数Xfおよび演算用指数Xeを用いて、数式20によりX/Qを算出することができる。
【数20】
X/Q=Xf×2Xe
【0016】
ここで、X/Q=Yと置き、YからY0.75を2進浮動小数点形式で算出する演算手順を説明する。Yを2進浮動小数点形式で表現すると数式21で示される。
【数21】
Y=Y1×2Y2
【0017】
ここで、Y1はYの仮数部分であり0.5以上1.0未満の値となる。Y2はYの指数部分であり整数値である。そして、Y0.75=Zと置くと数式22のように表される。
【数22】
Z=Y10.75×2Y2×0.75
ここで、指数部については数式23で表される。
【数23】
Y2×0.75=Y2−Y2/4
よって、指数部はY2をシフトしたもの(Y2/4)をY2から減算することで算出できる。
【0018】
特にY2が4の倍数のときはシフト後の小数部分は0であるので、仮数部分への補正は必要ない。また、このときの仮数部分は0.5≦Y10.75<1.0であり、本演算での指数部分への補正なしに第1の累乗計算手段のように仮数テーブルを用意して演算器の代わりにすることができる。
【0019】
また、Y2が4の倍数でないときは、Zは数式24のように算出され、2の累乗の補正処理が必要になる。
【数24】
Z=Y10.75×2(Y2−≪Y2/4≫)×2−『Y2/4』
この2の累乗の補正処理は、数式11のものと同様である。
【0020】
ここでは、仮数テーブルを用意することで1回の仮数テーブル索引でY10.75の値(演算用仮数Yf)を求めることができる。また、Y1の値に応じて、指数部の補正値r2を格納する指数補正値テーブルを用意して、指数補正値テーブルを索引した結果の補正値r2を指数部に加えて、整数の演算用指数Yeを求める。このようにして求められた演算用仮数Yfおよび演算用指数Yeを用いて、数式25によりZ=Y0.75を算出することができる。
【数25】
Y0.75=Yf×2Ye
【0021】
これにより、Zを用いて数式7より離散信号Iを得ることができる。
【0022】
その一方、MP3エンコーダでは非線形量子化後の離散信号を576信号を単位とするグラニュールごとにハフマン符号により圧縮している。そして、圧縮後のビット数は、外部より指示されるビットレートによって決定されるグラニュールを保存するための最大ビット数Nrに納める必要がある。ビット数Nrはビットレートが与えられる事で自動的に決定されるが、ハフマン符号による圧縮後のビット数Ncは圧縮する以前には予測ができない。音質劣化を防ぐためにはビット数Ncはビット数Nrを越えない最大値となるように量子化ステップQを調整する必要がある。このため、MP3エンコーダは外部ループと呼ばれるループの中で量子化ステップパラメータqを決定する。
【0023】
このため、限界値Nrを超えない最大の大きさとなる最大値Ncを求めるために、量子化ステップパラメータqの値を通常は負となる小さな量子化ステップパラメータ初期値q0に設定して当該フレーム内での最大値Ncを求めて限界値Nrと比較する。このときは最大値Nc>限界値Nrとなるので、次に量子化ステップパラメータqの値を1だけ増やして再び最大値Ncを求めて限界値Nrと比較して、これを繰り返す。そして、最大値Ncが限界値Nrより小さくなったときの量子化ステップパラメータqを最終値として採用する。すなわち、MP3エンコーダは、この最終的な量子化ステップパラメータqを算出する。
【0024】
ところが、この方法では、最終的な量子化ステップパラメータqを算出するまでの反復回数が多くなってしまう。例えば量子化ステップパラメータ初期値q0として−260程度の値を使用すると、量子化処理を通常200〜230回は行わなければならず処理時間が長くなってしまう。量子化ステップパラメータ初期値q0としてフレームデータの平均値から算出した初期値を用いて量子化処理回数の低減を図っても、この回数を40〜100回程度に低減できるに過ぎなかった。
【0025】
このため、量子化ステップパラメータ初期値q0として例えば−260程度の値あるいはフレームデータの平均値から算出した初期値を採用して、当該量子化ステップパラメータ初期値q0と入力データの理論的な最大値に相当する+200との間で二分検索を行って最終的な量子化ステップパラメータqを算出するようにしていた。これによれば、量子化処理を通常9〜10回に抑えることができる。
【0026】
【発明が解決しようとする課題】
しかしながら、上述した数式7〜数式25を用いた量子化演算では、数式14および数式15に示すように量子化ステップパラメータqの正負によって演算式を使い分けなければならないので、量子化ステップパラメータqの正負の判断処理が必要になって処理速度の迅速化および回路の小型化が阻害されてしまう。
【0027】
その一方、上述した量子化ステップパラメータqを決定するために二分検索を利用する方法では、検索範囲の下限を例えば−260程度の値あるいはフレームデータの平均値にしているので、検索範囲が最大で−260〜+200と広くなってしまい、量子化処理を通常9〜10回よりも抑えることが困難で、MP3エンコーダの処理の迅速化の妨げとなっている。
【0028】
そこで、本発明は、量子化処理の回数を減らすことのできる量子化ステップパラメータ決定装置と量子化ステップパラメータ決定方法と量子化ステップパラメータ決定プログラム、ならびに回路規模の大型化を抑制すると共に処理を高速化できる非線形量子化方法と非線形量子化装置と非線形量子化プログラムを提供することを目的とする。
【0029】
【課題を解決するための手段】
かかる目的を達成するために本願発明者が鋭意検討した結果、現在のグラニュールで使用する量子化ステップパラメータは前グラニュールで使用した量子化ステップパラメータに対して+1のときが最も多いということが判明した(図5参照)。したがって、この部分において最も量子化回数が少なくなるような検索アルゴリズムを採用することによりエンコード全体の計算量を削減できると考えられる。
【0030】
係る知見に基づいて案出された請求項9記載の発明は、量子化ステップパラメータから求めた量子化ステップとアナログ信号とから離散信号を算出する非線形量子化装置での量子化ステップパラメータを算出する量子化ステップパラメータ決定装置において、前グラニュールの量子化ステップパラメータにより量子化を行う量子化手段と、該量子化手段で得られた値のビット数を規定ビット数と比較する比較手段と、比較の結果、ビット数が規定ビット数と同じであるときに量子化ステップパラメータを採用する同一時処理手段と、比較手段での比較の結果、ビット数が規定ビット数よりも大きいときに量子化ステップパラメータを1ずつ増やすことにより規定ビット数以下の最大値を求めてその量子化ステップパラメータを採用する大時処理手段と、比較手段での比較の結果、ビット数が規定ビット数よりも小さいときに量子化ステップパラメータを減らすことにより規定ビット数以下の最大値を求めてその量子化ステップパラメータを採用する小時処理手段と、採用された量子化ステップパラメータを利用してアナログ信号を非線形量子化する請求項3記載の非線形量子化装置とを備えるようにしている。また、請求項7記載の発明は、量子化ステップパラメータから求めた量子化ステップとアナログ信号とから離散信号を算出する非線形量子化方法での量子化ステップパラメータを算出する量子化ステップパラメータ決定方法において、前グラニュールの量子化ステップパラメータにより量子化を行う量子化工程と、該量子化工程で得られた値のビット数を規定ビット数と比較する比較工程と、比較の結果、ビット数が規定ビット数と同じであるときに量子化ステップパラメータを採用する同一時処理工程と、比較工程での比較の結果、ビット数が規定ビット数よりも大きいときに量子化ステップパラメータを1ずつ増やすことにより規定ビット数以下の最大値を求めてその量子化ステップパラメータを採用する大時処理工程と、比較工程での比較の結果、ビット数が規定ビット数よりも小さいときに量子化ステップパラメータを減らすことにより規定ビット数以下の最大値を求めてその量子化ステップパラメータを採用する小時処理工程と、採用された量子化ステップパラメータを利用して請求項1記載の非線形量子化方法を用いてアナログ信号を非線形量子化する工程とを備えるようにしている。さらに、請求項11記載の量子化ステップパラメータ決定プログラムは、量子化ステップパラメータから求めた量子化ステップとアナログ信号とから離散信号を算出する非線形量子化処理において量子化ステップパラメータを算出するためにコンピュータを、前グラニュールの量子化ステップパラメータにより量子化を行う量子化手段と、該量子化手段で得られた値のビット数を規定ビット数と比較する比較手段と、比較の結果、ビット数が規定ビット数と同じであるときに量子化ステップパラメータを採用する同一時処理手段と、比較手段での比較の結果、ビット数が規定ビット数よりも大きいときに量子化ステップパラメータを1ずつ増やすことにより規定ビット数以下の最大値を求めてその量子化ステップパラメータを採用する大時処理手段と、比較手段での比較の結果、ビット数が規定ビット数よりも小さいときに量子化ステップパラメータを減らすことにより規定ビット数以下の最大値を求めてその量子化ステップパラメータを採用する小時処理手段と、採用された量子化ステップパラメータを利用してアナログ信号を非線形量子化する請求項5記載のY算出手段及びZ算出手段として機能させるようにしている。
【0031】
したがって、最初の量子化は前グラニュールの量子化ステップパラメータで行うと共にそのときのビット数が規定ビット数より大きいときにその量子化ステップパラメータを1ずつ増やしているので、前グラニュールで使用した量子化ステップパラメータに対して+1した量子化ステップパラメータでの量子化処理が2回で済むようになる。よって、量子化処理の回数を減らすことにより全体の処理時間を大幅に減らすことができる。
【0032】
そして、請求項10記載の発明は、請求項9記載の量子化ステップパラメータ決定装置において、小時処理手段は、量子化ステップパラメータを1回だけ減らして量子化を行う減少量子化手段と、該減少後量子化手段で得られた値のビット数を規定ビット数と比較する減少後比較手段と、減少後比較手段での比較の結果、ビット数が規定ビット数と同じであるときに、用いた量子化ステップパラメータを採用する減少後同一時処理手段と、減少後比較手段での比較の結果、ビット数が規定ビット数よりも大きいときに、減少量子化手段で減らす前の量子化ステップパラメータを採用する減少後大時処理手段と、減少後比較手段での比較の結果、ビット数が規定ビット数よりも小さいときに、用いた量子化ステップパラメータと初期量子化ステップパラメータとの間で二分検索を実行して量子化ステップパラメータを求める二分検索手段とを備えるようにしている。また、請求項8記載の発明は、請求項7記載の量子化ステップパラメータ決定方法において、小時処理工程は、量子化ステップパラメータを1回だけ減らして量子化を行う減少量子化工程と、該減少後量子化工程で得られた値のビット数を規定ビット数と比較する減少後比較工程と、減少後比較工程での比較の結果、ビット数が規定ビット数と同じであるときに、用いた量子化ステップパラメータを採用する減少後同一時処理工程と、減少後比較工程での比較の結果、ビット数が規定ビット数よりも大きいときに、減少量子化工程で減らす前の量子化ステップパラメータを採用する減少後大時処理工程と、減少後比較工程での比較の結果、ビット数が規定ビット数よりも小さいときに、用いた量子化ステップパラメータと初期量子化ステップパラメータとの間で二分検索を実行して量子化ステップパラメータを求める二分検索工程とを備えるようにしている。さらに、請求項12記載の発明は、請求項11記載の量子化ステップパラメータ決定プログラムにおいて、小時処理手段は、量子化ステップパラメータを1回だけ減らして量子化を行う減少量子化手段と、該減少後量子化手段で得られた値のビット数を規定ビット数と比較する減少後比較手段と、減少後比較手段での比較の結果、ビット数が規定ビット数と同じであるときに、用いた量子化ステップパラメータを採用する減少後同一時処理手段と、減少後比較手段での比較の結果、ビット数が規定ビット数よりも大きいときに、減少量子化手段で減らす前の量子化ステップパラメータを採用する減少後大時処理手段と、減少後比較手段での比較の結果、ビット数が規定ビット数よりも小さいときに、用いた量子化ステップパラメータと初期量子化ステップパラメータとの間で二分検索を実行して量子化ステップパラメータを求める二分検索手段とを備えるようにしている。
【0033】
したがって、現在のグラニュールの量子化ステップパラメータが前グラニュールのときより小さい場合に、最適な量子化ステップパラメータを二分検索により求めているので、量子化処理を最小限に抑えて量子化ステップパラメータを求めることができる。
【0034】
一方、請求項1記載の発明は、指数部Xfと仮数部Xeで表現される浮動小数点数であるアナログ入力信号Xを非線形演算の解Z=(X/2q/4)0.75(ただし、qは量子化ステップパラメータ)を含む離散信号に変換する非線形量子化方法において、量子化ステップパラメータqを2の補数表記二進数で表す時に、q/4の小数点以下2ビットのビット列を符号無し二進数q/4(→)とすると共にq/4の整数部を2の補数表記符号付き二進数q/4(←)として、数式26により定義されるYを求め、
<数26>
Y=X/2q/4
=Xf×2−q/4(→)×2(Xe−q/4(←))
Yの指数部と仮数部をそれぞれYf、Yeとしたときに、数式27によりZを求めて、
<数27>
Z=Yf0.75×2−Ye/4(→)×2(Ye−Ye/4(←))
このZを利用して離散信号を求めるようにしている。
【0035】
また、請求項3記載の発明は、指数部Xfと仮数部Xeで表現される浮動小数点数であるアナログ入力信号Xを非線形演算の解Z=(X/2q/4)0.75(ただし、qは量子化ステップパラメータ)を含む離散信号に変換する非線形量子化装置において、量子化ステップパラメータqを2の補数表記二進数で表す時に、q/4の小数点以下2ビットのビット列を符号無し二進数q/4(→)とすると共にq/4の整数部を2の補数表記符号付き二進数q/4(←)として、数式28により定義されるYを求めるY算出手段と、
<数28>
Y=X/2q/4
=Xf×2−q/4(→)×2(Xe−q/4(←))
Yの指数部と仮数部をそれぞれYf、Yeとしたときに、数式29
<数29>
Z=Yf0.75×2−Ye/4(→)×2(Ye−Ye/4(←))
によりZを求めるZ算出手段とを備えるようにしている。
【0036】
さらに、請求項5記載の非線形量子化プログラムは、指数部Xfと仮数部Xeで表現される浮動小数点数であるアナログ入力信号Xを非線形演算の解Z=(X/2q/4)0.75(ただし、qは量子化ステップパラメータ)を含む離散信号に変換するためにコンピュータを、量子化ステップパラメータqを2の補数表記二進数で表す時に、q/4の小数点以下2ビットのビット列を符号無し二進数q/4(→)とすると共にq/4の整数部を2の補数表記符号付き二進数q/4(←)として、数式30により定義されるYを求めるY算出手段と、
<数30>
Y=X/2q/4
=Xf×2−q/4(→)×2(Xe−q/4(←))
Yの指数部と仮数部をそれぞれYf、Yeとしたときに、数式31
<数31>
Z=Yf0.75×2−Ye/4(→)×2(Ye−Ye/4(←))
によりZを求めるZ算出手段として機能させるようにしている。
【0037】
したがって、従来のように量子化ステップパラメータqの正負によって使用する演算式を使い分ける必要が無くなるので、処理速度の迅速化および装置に搭載される回路の小型化を図ることができる。
【0038】
そして、請求項2記載の発明は、請求項1記載の非線形量子化方法において、数式26の計算時に、数式26のXf×2−q/4(→)が浮動小数点仮数部の値域以下の場合には予め計算して記録しておいた数表の数値を使用し、またXf×2−q/4(→)が浮動小数点仮数部の値域を越える場合には計算結果の1/2の数値を使用すると共に数式26の2(Xe−q/4(←))の指数部に1を加え、尚かつ数式27の計算時に、数式27のYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域以下の場合には予め計算して記録しておいた数表の数値を使用し、またYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域を越える場合には計算結果の1/2の数値を使用すると共に数式27の2(Ye−Ye/4(←))の指数部に1を加えるようにしている。また、請求項4記載の発明は、請求項3記載の非線形量子化装置において、数式28のXf×2−q/4(→)が浮動小数点仮数部の値域以下の場合には予め計算してメモリに格納しておいた数表の数値を出力し、またXf×2−q/4(→)が浮動小数点仮数部の値域を越える場合には値域を越えることを示すフラグと共に計算結果の1/2の数値を出力する第1の数表手段と、フラグの出力により数式28の2(Xe−q/4(←))の指数部に1を加える第1の補正手段と、数式29のYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域以下の場合には予め計算してメモリに格納しておいた数表の数値を出力し、またYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域を越える場合には値域を越えることを示すフラグと共に計算結果の1/2の数値を出力する第2の数表手段と、フラグの出力により数式29の2(Ye−Ye/4(←))の指数部に1を加える第2の補正手段とを備えるようにしている。さらに、請求項6記載の発明は、請求項5記載の非線形量子化プログラムにおいて、コンピュータを、数式30のXf×2−q/4(→)が浮動小数点仮数部の値域以下の場合には予め計算してメモリに格納しておいた数表の数値を出力し、またXf×2−q/4(→)が浮動小数点仮数部の値域を越える場合には値域を越えることを示すフラグと共に計算結果の1/2の数値を出力する第1の数表手段と、フラグの出力により数式30の2(Xe−q/4(←))の指数部に1を加える第1の補正手段と、数式31のYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域以下の場合には予め計算してメモリに格納しておいた数表の数値を出力し、またYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域を越える場合には値域を越えることを示すフラグと共に計算結果の1/2の数値を出力する第2の数表手段と、フラグの出力により数式31の2(Ye−Ye/4(←))の指数部に1を加える第2の補正手段として機能させるようにしている。
【0039】
したがって、YおよびZを算出する複雑な数式を、数表を記憶するメモリ2個と指数部の2回の加算処理あるいは2個の加算回路のみで処理することができるようになる。よって、処理速度の迅速化を図ることができると共に小さな回路で非線形量子化装置を実現できることになる。
【0040】
【発明の実施の形態】
以下、本発明の構成を図面に示す一実施の形態に基づいて詳細に説明する。図1に本発明の量子化ステップパラメータ決定装置1の実施形態の一例を示す。この量子化ステップパラメータ決定装置1は、量子化ステップパラメータqから求めた量子化ステップQとアナログ信号Xとから離散信号Iを算出する非線形量子化装置の量子化ステップパラメータqを算出するものとしている。
【0041】
そして、この量子化ステップパラメータ決定装置1は、前グラニュールの量子化ステップパラメータ(以下、前量子化ステップパラメータと呼ぶ)により量子化を行う量子化手段2と、該量子化手段2で得られた値のビット数Ncを規定ビット数Nrと比較する比較手段3と、比較の結果、ビット数Ncが規定ビット数Nrと同じであるときに前量子化ステップパラメータを採用する同一時処理手段4と、比較手段3での比較の結果、ビット数Ncが規定ビット数Nrよりも大きいときに量子化ステップパラメータを1ずつ増やすことにより規定ビット数Nr以下の最大値を求めてその量子化ステップパラメータを採用する大時処理手段5と、比較手段3での比較の結果、ビット数Ncが規定ビット数Nrよりも小さいときに量子化ステップパラメータを減らすことにより規定ビット数Nr以下の最大値を求めてその量子化ステップパラメータを採用する小時処理手段6とを備えるようにしている。このため、前量子化ステップパラメータに対して+1した量子化ステップパラメータでの量子化処理が2回で済むようになるので、最も頻度の高い場合の量子化処理を低く抑えることにより全体の処理時間を大幅に減らすことができる。よって、最終値を求めるために量子化処理の回数を減らすことができMP3における非線形量子化処理の全体の迅速化を図ることができる。
【0042】
また、小時処理手段6は、量子化ステップパラメータを1回だけ減らして量子化を行う減少量子化手段7と、該減少量子化手段7で得られた値のビット数Ncを規定ビット数Nrと比較する減少後比較手段8と、減少後比較手段8での比較の結果、ビット数Ncが規定ビット数Nrと同じであるときに、用いた量子化ステップパラメータを採用する減少後同一時処理手段9と、減少後比較手段8での比較の結果、ビット数Ncが規定ビット数Nrよりも大きいときに、減少量子化手段7で減らす前の量子化ステップパラメータを採用する減少後大時処理手段10と、減少後比較手段8での比較の結果、ビット数Ncが規定ビット数Nrよりも小さいときに、用いた量子化ステップパラメータと初期量子化ステップパラメータとの間で二分検索を実行して量子化ステップパラメータを求める二分検索手段11とを備えるようにしている。
【0043】
本実施形態の量子化ステップパラメータ決定装置1は、MP3用のエンコーダに搭載したものとしている。そして、この量子化ステップパラメータ決定装置1は、電気回路により形成されている。
【0044】
上述した量子化ステップパラメータ決定装置1を利用して量子化ステップパラメータqを算出する量子化ステップパラメータ決定方法について、図2および図3に示すフローチャートに基づいて説明する。
【0045】
この量子化ステップパラメータ決定方法は、前グラニュールの量子化ステップパラメータにより量子化を行う量子化工程と、該量子化工程で得られた値のビット数Ncを規定ビット数Nrと比較する比較工程と、比較の結果、ビット数Ncが規定ビット数Nrと同じであるときに前量子化ステップパラメータを採用する同一時処理工程と、比較工程での比較の結果、ビット数Ncが規定ビット数Nrよりも大きいときに量子化ステップパラメータを1ずつ増やすことにより規定ビット数Nr以下の最大値を求めてその量子化ステップパラメータを採用する大時処理工程と、比較工程での比較の結果、ビット数Ncが規定ビット数Nrよりも小さいときに量子化ステップパラメータを減らすことにより規定ビット数Nr以下の最大値を求めてその量子化ステップパラメータを採用する小時処理工程とを備えている。
【0046】
図2に示すように、量子化工程では量子化手段2により前量子化ステップパラメータを利用して量子化を行う(ステップ1(S1))。そして、比較工程では、量子化工程で得られた値のビット数Ncを算出し(ステップ2(S2))、これを比較手段3により規定ビット数Nrと比較する(ステップ3(S3))。ここでの規定ビット数Nrとは、ハフマンコード表から定義される。
【0047】
比較の結果、ビット数Ncが規定ビット数Nrと同じであるときは(ステップ3;=)、同一時処理手段4により同一時処理工程が実行され当該量子化ステップパラメータを採用する(ステップ4(S4))。
【0048】
また、比較の結果、ビット数Ncが規定ビット数Nrよりも大きいときは(ステップ3;>)、大時処理手段5により大時処理工程が実行される。ここでは前量子化ステップパラメータを1増加して量子化を行い(ステップ5(S5))、得られた値のビット数Ncを算出する(ステップ6(S6))。そして、これを規定ビット数Nrと比較する(ステップ7(S7))。比較の結果、ビット数Ncが規定ビット数Nr以下であるときは(ステップ7;≦)、当該量子化ステップパラメータを採用する(ステップ8(S8))。比較の結果、ビット数Ncが規定ビット数Nrを超えるときは(ステップ7;>)、再び量子化ステップパラメータを1増加して量子化を行い(ステップ5(S5))、ビット数Ncが規定ビット数Nr以下になるまで繰り返す。
【0049】
一方、比較工程での比較の結果、ビット数Ncが規定ビット数Nrよりも小さいときは(ステップ3;<)、小時処理手段6により小時処理工程が実行される。小時処理工程は、前量子化ステップを1回だけ減らして量子化を行う減少量子化工程と、該減少後量子化工程で得られた値のビット数Ncを規定ビット数Nrと比較する減少後比較工程と、減少後比較工程での比較の結果、ビット数Ncが規定ビット数Nrと同じであるときに、用いた量子化ステップパラメータを採用する減少後同一時処理工程と、減少後比較工程での比較の結果、ビット数Ncが規定ビット数Nrよりも大きいときに、減少量子化工程で減らす前の量子化ステップパラメータを採用する減少後大時処理工程と、減少後比較工程での比較の結果、ビット数Ncが規定ビット数Nrよりも小さいときに、用いた量子化ステップパラメータと初期量子化ステップパラメータとの間で二分検索を実行して量子化ステップパラメータを求める二分検索工程とを備えている。
【0050】
減少量子化工程では減少量子化手段7により前量子化ステップパラメータを1だけ減らして量子化を行う(ステップ9(S9))。そして、減少後比較工程では、減少後比較手段8により量子化工程で得られた値のビット数Ncを算出し(ステップ10(S10))、これを規定ビット数Nrと比較する(ステップ11(S11))。
【0051】
比較の結果、ビット数Ncが規定ビット数Nrと同じであるときは(ステップ11;=)、減少後同一時処理手段9により減少後同一時処理工程が実行され当該量子化ステップパラメータを採用する(ステップ12(S12))。
【0052】
また、比較の結果、ビット数Ncが規定ビット数Nrよりも大きいときは(ステップ11;>)、減少後大時処理手段10により減少後大時処理工程が実行される(ステップ13(S13))。これにより、前量子化ステップパラメータにより再び量子化を行うと共にこの量子化ステップパラメータを採用する。
【0053】
さらに、比較の結果、ビット数Ncが規定ビット数Nrよりも小さいときは(ステップ11;<)、二分検索手段11により二分検索工程が実行される(ステップ14(S14))。二分検索工程では、例えば図3および図4に示すように、まず前量子化ステップより10小さい値で量子化を行う(ステップ15(S15))。そして、その値のビット数Ncを規定ビット数Nrと比較する(ステップ16(S16))。
【0054】
比較の結果、ビット数Ncが規定ビット数Nrよりも大きいときは(ステップ16;>)、前量子化ステップパラメータに対して−9〜−1の範囲で二分検索を行って量子化ステップパラメータを求める(ステップ17(S17))。また、比較の結果、ビット数Ncが規定ビット数Nr以下のときは(ステップ16;other)、前量子化ステップより20小さい値で量子化を行う(ステップ18(S18))。そして、その値のビット数Ncを規定ビット数Nrと比較する(ステップ19(S19))。
【0055】
比較の結果、ビット数Ncが規定ビット数Nrよりも大きいときは(ステップ19;>)、前量子化ステップパラメータに対して−19〜−10の範囲で二分検索を行って量子化ステップパラメータを求める(ステップ20(S20))。また、比較の結果、ビット数Ncが規定ビット数Nr以下のときは(ステップ19;other)、前量子化ステップパラメータより20小さい値から初期量子化ステップパラメータの範囲で二分検索を行って量子化ステップパラメータを求める(ステップ21(S21))。
【0056】
ここで、図5に示すように現在の量子化ステップパラメータが前量子化ステップパラメータよりも小さい場合は、前量子化ステップパラメータから−15までの間に集中している。このため、本実施形態のように最初に前量子化ステップパラメータから−10までの範囲で二分検索を行うことにより全体の処理時間を短縮することができる。
【0057】
次に、以上のように求めた量子化ステップパラメータを利用してアナログ信号Xを非線形量子化する非線形量子化装置12および方法について説明する。本実施形態の非線形量子化装置12は、MP3用のエンコーダに搭載したものとしている。そして、この非線形量子化装置12は、電気回路により形成されている。
【0058】
この非線形量子化装置12は、指数部Xfと仮数部Xeで表現される浮動小数点数であるアナログ入力信号Xを非線形演算の解Z=(X/2q/4)0.75(ただし、qは量子化ステップパラメータ)を含む離散信号に変換するものである。そして、非線形量子化装置12は、図7に示すように量子化ステップパラメータqを2の補数表記二進数で表す時に、q/4の小数点以下2ビットのビット列を符号無し二進数q/4(→)とすると共にq/4の整数部を2の補数表記符号付き二進数q/4(←)として、数式32により定義されるYを求めるY算出手段13と、
【数32】
Y=X/2q/4
=Xf×2−q/4(→)×2(Xe−q/4(←))
Yの指数部と仮数部をそれぞれYf、Yeとしたときに、数式33
【数33】
Z=Yf0.75×2−Ye/4(→)×2(Ye−Ye/4(←))
によりZを求めるZ算出手段14とを備えるようにしている。このため、従来のように量子化ステップパラメータqの正負によって使用する演算式を使い分ける必要が無くなるので、処理速度の迅速化および非線形量子化装置12を構成する回路の小型化を図ることができる。
【0059】
また、この非線形量子化装置12は、数式32の解を求めるための第1の数表手段15および第1の補正手段16と、数式33の解を求めるための第2の数表手段17および第2の補正手段18とを備えている。第1の数表手段15は、数式32のXf×2−q/4(→)が浮動小数点仮数部の値域以下の場合には予め計算してメモリに格納しておいた数表の数値を出力し、またXf×2−q/4(→)が浮動小数点仮数部の値域を越える場合には値域を越えることを示すフラグと共に計算結果の1/2の数値を出力する。第1の補正手段16は、フラグの出力により数式32の2(Xe−q/4(←))の指数部に1を加える。第2の数表手段17は、数式33のYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域以下の場合には予め計算してメモリに格納しておいた数表の数値を出力し、またYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域を越える場合には値域を越えることを示すフラグと共に計算結果の1/2の数値を出力する。第2の補正手段18は、フラグの出力により数式33の2(Ye−Ye/4(←))の指数部に1を加える。これにより、数式32および数式33のようにYおよびZを算出する複雑な数式を、数表を記憶する2個のメモリ15,17と指数部の2回の加算処理あるいは2個の加算回路16,18のみで処理することができるようになる。よって、処理速度の迅速化を図ることができると共に小さな回路で非線形量子化装置12を実現できることになる。
【0060】
この非線形量子化装置12を利用してアナログ信号Xを非線形量子化する手順を以下に説明する。
【0061】
この非線形量子化装置12は、数式34に示す非線形量子化の処理を2進浮動小数点形式で行うものとしている。本明細書では2進浮動小数点形式としてIEEE754単精度浮動小数点形式を利用しているが、これには限られず本発明は2進数により指数部と仮数部とを表現する全ての形式に適用可能である。
【数34】
【0062】
MP3用のエンコーダにはアナログ信号Xと量子化ステップQとが入力される。ここで、Qは量子化ステップであり、数式35により定義される。
【数35】
Q=2q/4
q:整数
【0063】
量子化ステップパラメータ決定装置1を利用して決定した量子化ステップパラメータqに基づいて数式35の演算により量子化ステップQが算出される。
【0064】
アナログ信号Xを2進浮動小数点形式で表現すると数式36で示される。
【数36】
X=X1×2X2
【0065】
ここで、X1はXの仮数部分であり0.5以上1.0未満の値となる。X2はXの指数部分であり整数値である。そして、X/Qは数式37で示される。
【数37】
【0066】
量子化ステップパラメータqが4の倍数であれば、指数部分(X2−q/4)を加算回路だけで算出できる。そして、仮数部分と指数部分とを2進数として結合処理すればX/Qを得ることができる。
【0067】
また、量子化ステップパラメータqが4の倍数でないときは、数式37は数式38のように表される。
【数38】
【0068】
ここで、≪q/4≫はq/4の整数部分を意味し、『q/4』はq/4の端数部分を意味する。『q/4』はqが正の場合には0,0.25,0.50,0.75のいずれかの値となる。
【0069】
そして、−『q/4』を指数とする項は、数式39または数式40のように変形できる。
【数39】
2−『q/4』=2(1+(−1−『q/4』))
=21×2(−1−『q/4』)
【数40】
2−『q/4』=2(−1+(1−『q/4』))
=2−1×2(1−『q/4』)
【0070】
これら数式39または数式40を利用すると、『q/4』≠0のときは、X/Qは数式41または数式42のように表される。
【数41】
【数42】
【0071】
ここで、一般に量子化ステップパラメータqが2の補数形式の二進数で表記されることに注目して、q/4の整数部分≪q/4≫と端数部分『q/4』とを2の補数表記二進数の小数点より左側部分と右側部分となる数値q/4(←)とq/4(→)と表現する。すなわち、q/4の小数点以下2ビットのビット列を符号無し二進数q/4(→)とすると共に、q/4の整数部を2の補数表記符号付き二進数q/4(←)とする。この場合、nビット、小数部分fビットの2の補数表記固定小数点二進数は各二進デジットをdiと表記すると数式43のように表される。
【数43】
【0072】
このとき、最上位ビット以外の重みは全て正である。そして、qが正または『q/4』=0の場合は数式44のようになり、qが負で『q/4』≠0の場合は数式45のようになる。
【数44】
≪q/4≫=q/4(←)
『q/4』=q/4(→)
【数45】
≪q/4≫=q/4(←)+1
『q/4』=q/4(→)−1
【0073】
そして、数式44および数式45の結果を数式41および数式42に代入する。その結果、数式46と数式47を得ることができる。
【数46】
X/Q=Xf×2(Xe−q/4(←)−1)×2(1−q/4(→)) (q>0)
X/Q=Xf×2(Xe−(q/4(←)+1))×2−(q/4(→)−1)
=Xf×2(Xe−q/4(←)−1)×2(1−q/4(→)) (q≦0)
【数47】
X/Q=Xf×2(Xe−q/4(←))×2−q/4(→) (q≧0)
X/Q=Xf×2(Xe−(q/4(←)+1)+1)×2(−1−(q/4(→)−1))
=Xf×2(Xe−q/4(←))×2−q/4(→) (q<0)
【0074】
これにより、qの正負によらず同一の式で量子化が可能であるので、回路の小型化および高速化を図ることができる。
【0075】
したがって、Y=X/QはY算出手段13により数式48のように算出できる。
【数48】
Y=Xf×2(Xe−q/4(←)−1)×2(1−q/4(→))
もしくは
Y=Xf×2(Xe−q/4(←))×2−q/4(→)
【0076】
このように2の補数形式で量子化ステップパラメータqを与えた場合、従来はqの正負で演算式を分けていたのに対して単一の式でX/Qを算出することができる。
【0077】
ここでの演算では、数式48のXf×2−q/4(→)が浮動小数点仮数部の値域以下の場合には予め計算して記録しておいた数表の数値を使用し、またXf×2−q/4(→)が浮動小数点仮数部の値域を越える場合には計算結果の1/2の数値を使用すると共に数式48の2(Xe−q/4(←))の指数部に1を加えるようにする。すなわち、第1の数表手段15により、数式48のXf×2−q/4(→)が浮動小数点仮数部の値域以下の場合には予め計算してメモリに格納しておいた数表の数値を出力し、またXf×2−q/4(→)が浮動小数点仮数部の値域を越える場合には値域を越えることを示すフラグと共に計算結果の1/2の数値を出力する。そして、フラグが出力された場合は、第1の補正手段16により数式48の2(Xe−q/4(←))の指数部に1を加えるようにする。よって、この演算は実装時に加算とシフトおよびメモリ参照だけで実現でき非常に単純および高速なものになる。
【0078】
次に、X/Q=Yと置き、YからY0.75を2進浮動小数点形式で算出する演算手順を説明する。Yを2進浮動小数点形式で表現すると数式49で示される。
【数49】
Y=Y1×2Y2
【0079】
ここで、Y1はYの仮数部分であり0.5以上1.0未満の値となる。Y2はYの指数部分であり整数値である。そして、Y0.75=Zと置くと数式50のように表される。
【数50】
Z=Y10.75×2Y2×0.75
【0080】
ここで、指数部については数式51で表される。
【数51】
Y2×0.75=Y2−Y2/4
【0081】
よって、指数部はY2をシフトしたもの(Y2/4)をY2から減算することで算出できる。
【0082】
特にY2が4の倍数のときはシフト後の小数部分は0であるので、仮数部分への補正は必要ない。また、このときの仮数部分は0.5≦Y10.75<1.0であり、本演算での指数部分への補正なしに仮数テーブルを用意して演算器の代わりにすることができる。
【0083】
また、Y2が4の倍数でないときは、Zは数式52のように算出される。
【数52】
Z=Y10.75×2(Y2−≪Y2/4≫)×2−『Y2/4』
【0084】
この式は数式38と同じ形式であり、X/Qを導出した方法と同様にして算出することができる。すなわち、Yの指数部と仮数部をそれぞれYf、Yeとしたときに、数式39〜数式48と同様の手順で数式53を得ることができる。
【数53】
Z=Yf0.75×2−Ye/4(→)×2(Ye−Ye/4(←))
【0085】
この数式53を用いてZ算出手段14によりZ=Y0.75が算出される。ここでの演算では、数式53のYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域以下の場合には予め計算して記録しておいた数表の数値を使用し、またYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域を越える場合には計算結果の1/2の数値を使用すると共に数式53の2(Ye−Ye/4(←))の指数部に1を加えるようにする。すなわち、第2の数表手段17により、数式53のYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域以下の場合には予め計算してメモリに格納しておいた数表の数値を出力し、またYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域を越える場合には値域を越えることを示すフラグと共に計算結果の1/2の数値を出力する。そして、フラグが出力された場合は、第2の補正手段18により数式53の2(Ye−Ye/4(←))の指数部に1を加えるようにする。よって、この演算は実装時に加算とシフトおよびメモリ参照だけで実現でき非常に単純および高速なものになる。
【0086】
Zが算出された後は数式34により2進浮動小数点形式で離散信号Iが算出される。
【0087】
なお、上述の実施形態は本発明の好適な実施の一例ではあるがこれに限定されるものではなく本発明の要旨を逸脱しない範囲において種々変形実施可能である。例えば、本実施形態では二分検索工程で、最初に前量子化ステップパラメータからその−10までの範囲を区切り、次に前量子化ステップパラメータの−19〜−10の範囲を区切り、最後に前量子化ステップパラメータの−20〜初期量子化ステップパラメータまでを区切っているが、これには限られず他の範囲で区切るようにしても良い。
【0088】
また、本実施形態では量子化ステップパラメータ決定装置1および非線形量子化装置12の各手段が電気回路により構成されているが、これには限られず量子化ステップパラメータ決定装置1および非線形量子化装置12の全体をコンピュータにより実現するようにしても良い。この場合、量子化ステップパラメータ決定装置1および非線形量子化装置12は、中央処理装置(CPU)と、各手段をCPUに制御させるプログラムなどが記憶されたROMやRAMやハードディスク等の記憶装置と、アナログ信号Xが入力されると共に量子化ステップパラメータあるいは離散信号を出力する入出力装置とを備えるコンピュータから成るものとする。
【0089】
この場合、量子化ステップパラメータを決定するためには、量子化ステップパラメータから求めた量子化ステップとアナログ信号とから離散信号を算出する非線形量子化処理において量子化ステップパラメータを算出するためにコンピュータを、前グラニュールの量子化ステップパラメータにより量子化を行う量子化手段2と、該量子化手段2で得られた値のビット数を規定ビット数と比較する比較手段3と、比較の結果、ビット数が規定ビット数と同じであるときに量子化ステップパラメータを採用する同一時処理手段4と、比較手段3での比較の結果、ビット数が規定ビット数よりも大きいときに量子化ステップパラメータを1ずつ増やすことにより規定ビット数以下の最大値を求めてその量子化ステップパラメータを採用する大時処理手段5と、比較手段3での比較の結果、ビット数が規定ビット数よりも小さいときに量子化ステップパラメータを減らすことにより規定ビット数以下の最大値を求めてその量子化ステップパラメータを採用する小時処理手段6として機能させるようにする量子化ステップパラメータ決定プログラムを利用する。
【0090】
また、このプログラムでは、小時処理手段6は、量子化ステップパラメータを1回だけ減らして量子化を行う減少量子化手段7と、該減少後量子化手段7で得られた値のビット数を規定ビット数と比較する減少後比較手段8と、減少後比較手段8での比較の結果、ビット数が規定ビット数と同じであるときに、用いた量子化ステップパラメータを採用する減少後同一時処理手段9と、減少後比較手段9での比較の結果、ビット数が規定ビット数よりも大きいときに、減少量子化手段7で減らす前の量子化ステップパラメータを採用する減少後大時処理手段10と、減少後比較手段8での比較の結果、ビット数が規定ビット数よりも小さいときに、用いた量子化ステップパラメータと初期量子化ステップパラメータとの間で二分検索を実行して量子化ステップパラメータを求める二分検索手段11とを備えるようにしている。
【0091】
一方、非線形量子化を行うためには、指数部Xfと仮数部Xeで表現される浮動小数点数であるアナログ入力信号Xを非線形演算の解Z=(X/2q/4)0.75を含む離散信号に変換するためにコンピュータを、量子化ステップパラメータqを2の補数表記二進数で表す時に、q/4の小数点以下2ビットのビット列を符号無し二進数q/4(→)とすると共にq/4の整数部を2の補数表記符号付き二進数q/4(←)として、数式54により定義されるYを求めるY算出手段13と、
【数54】
Y=X/2q/4
=Xf×2−q/4(→)×2(Xe−q/4(←))
Yの指数部と仮数部をそれぞれYf、Yeとしたときに、数式55
【数55】
Z=Yf0.75×2−Ye/4(→)×2(Ye−Ye/4(←))
によりZを求めるZ算出手段14として機能させるようにする非線形量子化プログラムを利用する。
【0092】
また、このプログラムでは、コンピュータを、数式54のXf×2−q/4(→)が浮動小数点仮数部の値域以下の場合には予め計算してメモリに格納しておいた数表の数値を出力し、またXf×2−q/4(→)が浮動小数点仮数部の値域を越える場合には値域を越えることを示すフラグと共に計算結果の1/2の数値を出力する第1の数表手段15と、フラグの出力により数式54の2(Xe−q/4(←))の指数部に1を加える第1の補正手段16と、数式55のYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域以下の場合には予め計算してメモリに格納しておいた数表の数値を出力し、またYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域を越える場合には値域を越えることを示すフラグと共に計算結果の1/2の数値を出力する第2の数表手段17と、フラグの出力により数式55の2(Ye−Ye/4(←))の指数部に1を加える第2の補正手段18として機能させるようにしている。
【0093】
さらに、本実施形態では量子化ステップパラメータ決定装置1および非線形量子化装置12をMP3用エンコーダに搭載して使用しているが、用途としてはこれに限られず、他の形式のオーディオ信号圧縮用エンコーダに搭載したり、あるいは静止画や動画の画像データ圧縮用エンコーダに搭載することもできる。
【0094】
【実施例】
(実施例)
図1に示す量子化ステップパラメータ決定装置1を利用して量子化の回数を測定した。その結果を図6に示す。
【0095】
(比較例1)
ISOで規定するサンプルコードのオリジナルデータから量子化の回数を測定した。その結果を図6に示す。
【0096】
(比較例2)
いわゆる4分割方法(「音声の統計データに基づいたMP3エンコーダの設計と評価」、The 15th Workshop on Circuits and Systems in Karuizawa、pp.107−112、April2002を参照)を利用して量子化の回数を測定した。その結果を図6に示す。
【0097】
(比較例3)
いわゆる拡張方法(「音声の統計データに基づいたMP3エンコーダの設計と評価」、The 15th Workshop on Circuits and Systems in Karuizawa、pp.107−112、April2002を参照)を利用して量子化の回数を測定した。その結果を図6に示す。
【0098】
図6に示すように、本発明の方法によれば従来の方法よりも量子化の回数を低減させることができた。よって、本発明によれば、量子化回数を減らして処理速度を高めることができることが判明した。
【0099】
【発明の効果】
以上の説明より明らかなように、請求項7記載の量子化ステップパラメータ決定方法と請求項9記載の量子化ステップパラメータ決定装置と請求項11記載の量子化ステップパラメータ決定プログラムによれば、最初の量子化は前量子化ステップパラメータで行うと共にそのときのビット数が規定ビット数より大きいときにその量子化ステップパラメータを1ずつ増やしているので、前量子化ステップパラメータに対して+1した量子化ステップパラメータでの量子化処理が2回で済むようになる。よって、最も頻度の高い前量子化ステップパラメータ+1のときの量子化処理の回数を小さく抑えることにより処理時間を大幅に減らすことができ、MP3における非線形量子化処理の全体の迅速化を図ることができる。
【0100】
また、請求項8記載の量子化ステップパラメータ決定方法と請求項10記載の量子化ステップパラメータ決定装置と請求項12記載の量子化ステップパラメータ決定プログラムによれば、現在のグラニュールの量子化ステップパラメータが前量子化ステップパラメータより小さい場合に、最適な量子化ステップパラメータを二分検索により求めているので、量子化処理を最小限に抑えて量子化ステップパラメータを求めることができる。よって、回路もしくはプログラムの負担の小さい高速な量子化ステップパラメータの決定処理を行うことができる。
【0101】
さらに、請求項1記載の非線形量子化方法と請求項3記載の非線形量子化装置と請求項5記載の非線形量子化プログラムによれば、従来のように量子化ステップパラメータqの正負によって使用する演算式を使い分ける必要が無くなるので、処理速度の迅速化および回路の小型化を図ることができる。
【0102】
そして、請求項2記載の非線形量子化方法と請求項4記載の非線形量子化装置と請求項6記載の非線形量子化プログラムによれば、YおよびZを算出する複雑な数式を、数表を記憶するメモリ2個と指数部の2回の加算処理あるいは2個の加算回路のみで処理することができるようになる。よって、処理速度の迅速化を図ることができると共に小さな回路で非線形量子化装置を実現できることになる。
【図面の簡単な説明】
【図1】本発明に係る量子化ステップパラメータ決定装置を示すブロック図である。
【図2】量子化ステップパラメータ決定方法による処理手順を示すフローチャートである。
【図3】二分検索工程の処理手順を示すフローチャートである。
【図4】二分検索時の範囲を示す数直線である。
【図5】前量子化ステップパラメータと現在の量子化ステップパラメータとの関係を示す統計データのグラフである。
【図6】本発明および比較例における量子化回数を示すグラフである。
【図7】本発明に係る非線形量子化装置を示すブロック図である。
【符号の説明】
1 量子化ステップパラメータ決定装置
2 量子化手段
3 比較手段
4 同一時処理手段
5 大時処理手段
6 小時処理手段
7 減少量子化手段
8 減少後比較手段
9 減少後同一時処理手段
10 減少後大時処理手段
11 二分検索手段
12 非線形量子化装置
13 Y算出手段
14 Z算出手段
15 第1の数表手段
16 第1の補正手段
17 第2の数表手段
18 第2の補正手段
Claims (12)
- 指数部Xfと仮数部Xeで表現される浮動小数点数であるアナログ入力信号Xを非線形演算の解Z=(X/2q/4)0.75(ただし、qは量子化ステップパラメータ)を含む離散信号に変換する非線形量子化方法において、前記量子化ステップパラメータqを2の補数表記二進数で表す時に、q/4の小数点以下2ビットのビット列を符号無し二進数q/4(→)とすると共にq/4の整数部を2の補数表記符号付き二進数q/4(←)として、数式1により定義されるYを求め、
<数1>
Y=X/2q/4
=Xf×2−q/4(→)×2(Xe−q/4(←))
Yの指数部と仮数部をそれぞれYf、Yeとしたときに、数式2によりZを求めて、
<数2>
Z=Yf0.75×2−Ye/4(→)×2(Ye−Ye/4(←))
このZを利用して前記離散信号を求めることを特徴とする非線形量子化方法。 - 数式1の計算時に、数式1のXf×2−q/4(→)が浮動小数点仮数部の値域以下の場合には予め計算して記録しておいた数表の数値を使用し、またXf×2−q/4(→)が浮動小数点仮数部の値域を越える場合には計算結果の1/2の数値を使用すると共に数式1の2(Xe−q/4(←))の指数部に1を加え、尚かつ数式2の計算時に、数式2のYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域以下の場合には予め計算して記録しておいた数表の数値を使用し、またYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域を越える場合には計算結果の1/2の数値を使用すると共に数式2の2(Ye−Ye/4(←))の指数部に1を加えることを特徴とする請求項1記載の非線形量子化方法。
- 指数部Xfと仮数部Xeで表現される浮動小数点数であるアナログ入力信号Xを非線形演算の解Z=(X/2q/4)0.75(ただし、qは量子化ステップパラメータ)を含む離散信号に変換する非線形量子化装置において、前記量子化ステップパラメータqを2の補数表記二進数で表す時に、q/4の小数点以下2ビットのビット列を符号無し二進数q/4(→)とすると共にq/4の整数部を2の補数表記符号付き二進数q/4(←)として、数式3により定義されるYを求めるY算出手段と、
<数3>
Y=X/2q/4
=Xf×2−q/4(→)×2(Xe−q/4(←))
Yの指数部と仮数部をそれぞれYf、Yeとしたときに、数式4
<数4>
Z=Yf0.75×2−Ye/4(→)×2(Ye−Ye/4(←))
によりZを求めるZ算出手段とを備えることを特徴とする非線形量子化装置。 - 数式3のXf×2−q/4(→)が浮動小数点仮数部の値域以下の場合には予め計算してメモリに格納しておいた数表の数値を出力し、またXf×2−q/4(→)が浮動小数点仮数部の値域を越える場合には値域を越えることを示すフラグと共に計算結果の1/2の数値を出力する第1の数表手段と、前記フラグの出力により数式3の2(Xe−q/4(←))の指数部に1を加える第1の補正手段と、数式4のYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域以下の場合には予め計算してメモリに格納しておいた数表の数値を出力し、またYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域を越える場合には値域を越えることを示すフラグと共に計算結果の1/2の数値を出力する第2の数表手段と、前記フラグの出力により数式4の2(Ye−Ye/4(←))の指数部に1を加える第2の補正手段とを備えることを特徴とする請求項3記載の非線形量子化装置。
- 指数部Xfと仮数部Xeで表現される浮動小数点数であるアナログ入力信号Xを非線形演算の解Z=(X/2q/4)0.75(ただし、qは量子化ステップパラメータ)を含む離散信号に変換するためにコンピュータを、前記量子化ステップパラメータqを2の補数表記二進数で表す時に、q/4の小数点以下2ビットのビット列を符号無し二進数q/4(→)とすると共にq/4の整数部を2の補数表記符号付き二進数q/4(←)として、数式5により定義されるYを求めるY算出手段と、
<数5>
Y=X/2q/4
=Xf×2−q/4(→)×2(Xe−q/4(←))
Yの指数部と仮数部をそれぞれYf、Yeとしたときに、数式6
<数6>
Z=Yf0.75×2−Ye/4(→)×2(Ye−Ye/4(←))
によりZを求めるZ算出手段として機能させることを特徴とする非線形量子化プログラム。 - コンピュータを、数式5のXf×2−q/4(→)が浮動小数点仮数部の値域以下の場合には予め計算してメモリに格納しておいた数表の数値を出力し、またXf×2−q/4(→)が浮動小数点仮数部の値域を越える場合には値域を越えることを示すフラグと共に計算結果の1/2の数値を出力する第1の数表手段と、前記フラグの出力により数式5の2(Xe−q/4(←))の指数部に1を加える第1の補正手段と、数式6のYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域以下の場合には予め計算してメモリに格納しておいた数表の数値を出力し、またYf0.75×2−Ye/4(→)が浮動小数点仮数部の値域を越える場合には値域を越えることを示すフラグと共に計算結果の1/2の数値を出力する第2の数表手段と、前記フラグの出力により数式6の2(Ye−Ye/4(←))の指数部に1を加える第2の補正手段として機能させることを特徴とする請求項5記載の非線形量子化プログラム。
- 量子化ステップパラメータから求めた量子化ステップとアナログ信号とから離散信号を算出する非線形量子化方法での前記量子化ステップパラメータを算出する量子化ステップパラメータ決定方法において、前グラニュールの量子化ステップパラメータにより量子化を行う量子化工程と、該量子化工程で得られた値のビット数を規定ビット数と比較する比較工程と、前記比較の結果、ビット数が規定ビット数と同じであるときに前記量子化ステップパラメータを採用する同一時処理工程と、前記比較工程での比較の結果、ビット数が規定ビット数よりも大きいときに量子化ステップパラメータを1ずつ増やすことにより規定ビット数以下の最大値を求めてその量子化ステップパラメータを採用する大時処理工程と、前記比較工程での比較の結果、ビット数が規定ビット数よりも小さいときに量子化ステップパラメータを減らすことにより規定ビット数以下の最大値を求めてその量子化ステップパラメータを採用する小時処理工程と、採用された前記量子化ステップパラメータを利用して請求項1記載の非線形量子化方法を用いて前記アナログ信号を非線形量子化する工程とを備えることを特徴とする量子化ステップパラメータ決定方法。
- 前記小時処理工程は、前記量子化ステップパラメータを1回だけ減らして量子化を行う減少量子化工程と、該減少後量子化工程で得られた値のビット数を規定ビット数と比較する減少後比較工程と、前記減少後比較工程での比較の結果、ビット数が規定ビット数と同じであるときに、用いた前記量子化ステップパラメータを採用する減少後同一時処理工程と、前記減少後比較工程での比較の結果、ビット数が規定ビット数よりも大きいときに、減少量子化工程で減らす前の前記量子化ステップパラメータを採用する減少後大時処理工程と、前記減少後比較工程での比較の結果、ビット数が規定ビット数よりも小さいときに、用いた前記量子化ステップパラメータと初期量子化ステップパラメータとの間で二分検索を実行して前記量子化ステップパラメータを求める二分検索工程とを備えることを特徴とする請求項7記載の量子化ステップパラメータ決定方法。
- 量子化ステップパラメータから求めた量子化ステップとアナログ信号とから離散信号を算出する非線形量子化装置での前記量子化ステップパラメータを算出する量子化ステップパラメータ決定装置において、前グラニュールの量子化ステップパラメータにより量子化を行う量子化手段と、該量子化手段で得られた値のビット数を規定ビット数と比較する比較手段と、前記比較の結果、ビット数が規定ビット数と同じであるときに前記量子化ステップパラメータを採用する同一時処理手段と、前記比較手段での比較の結果、ビット数が規定ビット数よりも大きいときに量子化ステップパラメータを1ずつ増やすことにより規定ビット数以下の最大値を求めてその量子化ステップパラメータを採用する大時処理手段と、前記比較手段での比較の結果、ビット数が規定ビット数よりも小さいときに量子化ステップパラメータを減らすことにより規定ビット数以下の最大値を求めてその量子化ステップパラメータを採用する小時処理手段と、採用された前記量子化ステップパラメータを利用して前記アナログ信号を非線形量子化する請求項3記載の非線形量子化装置とを備えることを特徴とする量子化ステップパラメータ決定装置。
- 前記小時処理手段は、前記量子化ステップパラメータを1回だけ減らして量子化を行う減少量子化手段と、該減少後量子化手段で得られた値のビット数を規定ビット数と比較する減少後比較手段と、前記減少後比較手段での比較の結果、ビット数が規定ビット数と同じであるときに、用いた前記量子化ステップパラメータを採用する減少後同一時処理手段と、前記減少後比較手段での比較の結果、ビット数が規定ビット数よりも大きいときに、減少量子化手段で減らす前の前記量子化ステップパラメータを採用する減少後大時処理手段と、前記減少後比較手段での比較の結果、ビット数が規定ビット数よりも小さいときに、用いた前記量子化ステップパラメータと初期量子化ステップパラメータとの間で二分検索を実行して前記量子化ステップパラメータを求める二分検索手段とを備えることを特徴とする請求項9記載の量子化ステップパラメータ決定装置。
- 量子化ステップパラメータから求めた量子化ステップとアナログ信号とから離散信号を算出する非線形量子化処理において前記量子化ステップパラメータを算出するためにコンピュータを、前グラニュールの量子化ステップパラメータにより量子化を行う量子化手段と、該量子化手段で得られた値のビット数を規定ビット数と比較する比較手段と、前記比較の結果、ビット数が規定ビット数と同じであるときに前記量子化ステップパラメータを採用する同一時処理手段と、前記比較手段での比較の結果、ビット数が規定ビット数よりも大きいときに量子化ステップパラメータを1ずつ増やすことにより規定ビット数以下の最大値を求めてその量子化ステップパラメータを採用する大時処理手段と、前記比較手段での比較の結果、ビット数が規定ビット数よりも小さいときに量子化ステップパラメータを減らすことにより規定ビット数以下の最大値を求めてその量子化ステップパラメータを採用する小時処理手段と、採用された前記量子化ステップパラメータを利用して前記アナログ信号を非線形量子化する請求項5記載のY算出手段及びZ算出手段として機能させることを特徴とする量子化ステップパラメータ決定プログラム。
- 前記小時処理手段は、前記量子化ステップパラメータを1回だけ減らして量子化を行う減少量子化手段と、該減少後量子化手段で得られた値のビット数を規定ビット数と比較する減少後比較手段と、前記減少後比較手段での比較の結果、ビット数が規定ビット数と同じであるときに、用いた前記量子化ステップパラメータを採用する減少後同一時処理手段と、前記減少後比較手段での比較の結果、ビット数が規定ビット数よりも大きいときに、減少量子化手段で減らす前の前記量子化ステップパラメータを採用する減少後大時処理手段と、前記減少後比較手段での比較の結果、ビット数が規定ビット数よりも小さいときに、用いた前記量子化ステップパラメータと初期量子化ステップパラメータとの間で二分検索を実行して前記量子化ステップパラメータを求める二分検索手段とを備えることを特徴とする請求項11記載の量子化ステップパラメータ決定プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002334184A JP4148356B2 (ja) | 2002-11-18 | 2002-11-18 | 量子化ステップパラメータ決定装置と量子化ステップパラメータ決定方法と量子化ステップパラメータ決定プログラム、ならびに非線形量子化方法と非線形量子化装置と非線形量子化プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002334184A JP4148356B2 (ja) | 2002-11-18 | 2002-11-18 | 量子化ステップパラメータ決定装置と量子化ステップパラメータ決定方法と量子化ステップパラメータ決定プログラム、ならびに非線形量子化方法と非線形量子化装置と非線形量子化プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004172770A JP2004172770A (ja) | 2004-06-17 |
JP4148356B2 true JP4148356B2 (ja) | 2008-09-10 |
Family
ID=32698705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002334184A Expired - Fee Related JP4148356B2 (ja) | 2002-11-18 | 2002-11-18 | 量子化ステップパラメータ決定装置と量子化ステップパラメータ決定方法と量子化ステップパラメータ決定プログラム、ならびに非線形量子化方法と非線形量子化装置と非線形量子化プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4148356B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007017659A (ja) * | 2005-07-07 | 2007-01-25 | Fujitsu Ltd | オーディオ符号化方法及び装置 |
JP2007293118A (ja) | 2006-04-26 | 2007-11-08 | Sony Corp | 符号化方法および符号化装置 |
WO2011021238A1 (ja) * | 2009-08-20 | 2011-02-24 | トムソン ライセンシング | レート制御装置、レート制御方法及びレート制御プログラム |
CN112085181B (zh) * | 2019-06-12 | 2024-03-29 | 上海寒武纪信息科技有限公司 | 神经网络量化方法及装置以及相关产品 |
-
2002
- 2002-11-18 JP JP2002334184A patent/JP4148356B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004172770A (ja) | 2004-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10491239B1 (en) | Large-scale computations using an adaptive numerical format | |
US7408481B2 (en) | Information encoding method, decoding method, common multiplier estimating method, and apparatus, program, and recording medium using these methods | |
US9423999B1 (en) | Block floating-point representation of data samples | |
US8751555B2 (en) | Rounding unit for decimal floating-point division | |
US6304890B1 (en) | Exponential calculation device and decoding device | |
JP2002149397A (ja) | 固定小数点データ生成方法及び固定小数点データ生成回路 | |
JP4148356B2 (ja) | 量子化ステップパラメータ決定装置と量子化ステップパラメータ決定方法と量子化ステップパラメータ決定プログラム、ならびに非線形量子化方法と非線形量子化装置と非線形量子化プログラム | |
JP4376904B2 (ja) | 乗算装置 | |
US8593321B2 (en) | Computation apparatus and method, quantization apparatus and method, and program | |
CN104412512B (zh) | 编码装置、解码装置、编码方法以及解码方法 | |
JP5966763B2 (ja) | 除算装置及び除算方法 | |
US6317063B1 (en) | Inverse quantization using table with reduced size | |
US20110013831A1 (en) | Image coding apparatus, image coding method and computer readable medium storing program | |
US8601039B2 (en) | Computation apparatus and method, quantization apparatus and method, and program | |
CN110784226A (zh) | 一种基于pcm压缩编码的数据处理方法及数据处理装置 | |
JP2013037111A (ja) | オーディオ信号符号化方法および装置 | |
JP7299134B2 (ja) | データ処理装置及びその動作方法、プログラム | |
JP3768613B2 (ja) | ログの近似値の計算回路 | |
JP2010102431A (ja) | 浮動小数点数演算回路と浮動小数点演算方法及びサーボ制御装置 | |
WO2010140590A1 (ja) | Parcor係数量子化方法、parcor係数量子化装置、プログラム及び記録媒体 | |
CN114207609A (zh) | 信息处理装置、信息处理系统和信息处理方法 | |
CN111933162A (zh) | 一种优化lc3编码器残差编码和噪声估计编码的方法 | |
TWI785546B (zh) | 浮點數的編碼與解碼的方法與裝置 | |
JPH0654307A (ja) | データ圧縮装置 | |
JP4528924B2 (ja) | 量子化ステップパラメータ初期値決定装置および量子化ステップパラメータ初期値決定方法、並びに量子化ステップパラメータ初期値決定プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20041022 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050912 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071128 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080125 |
|
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: 20080604 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080618 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110704 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120704 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |