| 【発明の名称】 |
0.75乗計算装置及び0.75乗計算方法並びにそれに用いるプログラム |
| 【発明者】 |
【氏名】高見沢 雄一郎
|
| 【要約】 |
【課題】演算量を低減可能なオーディオ信号量子化装置を提供する。
【解決手段】0.75乗計算装置1は逆数計算手段2と、第1の−0.5乗計算手段3と、乗算手段4と、第2の−0.5乗計算手段5と、外部に接続されるプログラム記憶媒体6とから構成され、プログラム記憶媒体6に格納されたプログラムを実行することで量子化計算式における0.75乗の計算を行う。逆数計算手段2と第1の−0.5乗計算手段3と乗算手段4と第2の−0.5乗計算手段5とは演算結果が不定値となる要因である無限大とゼロとの乗算が発生しないよう動作する。 |
【特許請求の範囲】
【請求項1】 演算結果が不定値となる要因である無限大とゼロとの乗算が発生しないように構成するようにしたことを特徴とする0.75乗計算装置。 【請求項2】 入力値の逆数を計算する逆数計算手段と、前記逆数計算手段による計算結果の−0.5乗を計算する第1の−0.5乗計算手段と、前記逆数計算手段による計算結果と前記第1の−0.5乗計算手段による計算結果との積を計算する乗算手段と、前記乗算手段による計算結果の−0.5乗を計算する第2の−0.5乗計算手段とを有することを特徴とする0.75乗計算装置。 【請求項3】 0.75乗計算値を用いる符号化手法に用いるようにしたことを特徴とする請求項2記載の0.75乗計算装置。 【請求項4】 写像変換されたオーディオ信号の0.75乗値を用いて量子化を行うオーディオ信号量子化装置に用いるようにしたことを特徴とする請求項3記載の0.75乗計算装置。 【請求項5】 演算結果が不定値となる要因である無限大とゼロとの乗算が発生しないようにしたことを特徴とする0.75乗計算方法。 【請求項6】 入力値の逆数を計算する第1のステップと、前記第1のステップによる計算結果の−0.5乗を計算する第2のステップと、前記第1のステップによる計算結果と前記第2のステップによる計算結果との積を計算する第3のステップと、前記第3のステップによる計算結果の−0.5乗を計算する第4のステップとを有することを特徴とする0.75乗計算方法。 【請求項7】 0.75乗計算値を用いる符号化手法に用いるようにしたことを特徴とする請求項6記載の0.75乗計算方法。 【請求項8】 写像変換されたオーディオ信号の0.75乗値を用いて量子化を行うオーディオ信号量子化装置に用いるようにしたことを特徴とする請求項7記載の0.75乗計算方法。 【請求項9】 コンピュータに、演算結果が不定値となる要因である無限大とゼロとの乗算が発生しないように動作させる処理を実行させるためのプログラム。 【請求項10】 コンピュータに、入力値の逆数を計算させる第1の処理と、前記第1の処理による計算結果の−0.5乗を計算させる第2の処理と、前記第1の処理による計算結果と前記第2の処理による計算結果との積を計算させる第3の処理と、前記第3の処理による計算結果の−0.5乗を計算させる第4の処理とを実行させるためのプログラム。 【請求項11】 0.75乗計算値を用いる符号化手法に用いるようにしたことを特徴とする請求項10記載のプログラム。 【請求項12】 写像変換されたオーディオ信号の0.75乗値を用いて量子化を行うオーディオ信号量子化装置に用いるようにしたことを特徴とする請求項11記載のプログラム。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は0.75乗計算装置及び0.75乗計算方法並びにそれに用いるプログラムに関し、特にオーディオ信号量子化方法に用いる0.75乗計算方法に関する。 【0002】 【従来の技術】従来、オーディオ符号化方式としては、国際標準方式であるMPEG(Moving Picture Experts Group)−2 AAC(Advanced Audio Coding)規格の詳細が、“Information Technology−Generic coding of moving pictures and associated audio,Part7:Advanced Audio Coding,AAC”(1997年)に記載されている。 【0003】MPEG−2 AACの符号化装置の構成を図3に示す。このMPEG−2AACに代表される従来のオーディオ符号化装置は一般に、入力オーディオ信号に写像変換を施して写像信号を生成する写像変換部11と、入力オーディオ信号に対して聴覚特性を模した分析を行って量子化精度を計算する心理聴覚分析部12と、量子化精度にしたがって写像信号を量子化する量子化部13と、量子化精度や量子化された写像信号等を多重化してビットストリームを生成するビットストリーム生成部14とから構成されている。 【0004】写像変換部11は入力オーディオ信号に写像変換を施して写像信号を生成し、量子化部13へ出力する。MPEG−2 AACでは写像変換として修正離散余弦変換(MDCT:Modified Discrete Cosine Transform)が用いられている。心理聴覚分析部12は入力オーディオ信号に対して聴覚特性を模した分析を行って量子化精度を計算し、その量子化精度を量子化部13へ出力する。 【0005】量子化部13は心理聴覚分析部12が求めた量子化精度に応じた量子化を行い、量子化値をビットストリーム生成部14へ出力する。ビットストリーム生成部14は量子化値をハフマン符号化した後に、量子化精度等の復号時に必要となる副情報とともに多重化し、ビットストリームを形成して出力する。 【0006】ここで、量子化部13以外の各ブロックの詳細については、上述のMPEG−2 AAC規格書等に記述されて広く知られているため、それら各ブロックの説明については省略する。 【0007】量子化部13では写像変換部11が出力する写像信号M、心理聴覚分析部12が求めた量子化精度(2N )を用いて、 L=INT((ABS(M)・2N )0.75+0.4054) ……(1) という計算式で量子化を行い、量子化値Lを得る。ここで、ABS(Z)はZの絶対値を返す関数、INT(Z)はZの小数点以下を切り捨てて整数部分を返す関数である。 【0008】(1)式では写像変換部11が出力する写像信号Mに対し、まず、その絶対値ABS(M)を求める。次に、その絶対値ABS(M)に対して心理聴覚分析部12が求めた量子化精度である(2N )を乗じ、その乗算結果を0.75乗し、最後に0.4054を加算して整数化して量子化値Lを求める。 【0009】この(1)式はオーディオ信号を符号化する際、実行される回数が多く、多くの演算量を必要とする。特に、0.75乗の計算が演算量の大部分を占めるため、演算量の低減、装置の小型化には0.75乗計算の効率化が不可欠となる。 【0010】従来、上記の0.75乗の効率的な計算方法としては以下に示す2つの方法が知られている。第1の方法を図4及び図5に示す。図4は従来の効率的な0.75乗計算装置の構成を示すブロック図、図5はその計算手順を示すフローチャートである。 【0011】図4に示す従来の効率的な0.75乗計算装置は、第1の0.5乗計算手段21と、乗算手段22と、第2の0.5乗計算手段23とから構成されている。第1の0.5乗計算手段21は入力値Aの0.5乗を計算し(図5ステップS11)、その演算結果B(=A0.5 )を乗算手段22へ出力する。 【0012】乗算手段22は第1の0.5乗計算手段21が出力した演算結果Bと入力値Aとの積を求め(図5ステップS12)、その演算結果C(=A×B)を第2の0.5乗計算手段23へ出力する。 【0013】第2の0.5乗計算手段23は乗算手段22が出力した演算結果Cの0.5乗を計算し(図5ステップS13)、その演算結果D(=C0.5 )を出力する。上記のようにして求められた演算結果Dの値が、入力値Aの0.75乗の値となっている。 【0014】現在、パーソナルコンピュータのCPU(中央処理装置)として広く用いられているマイクロプロセッサ素子上に、上記の方法を実装した場合に必要となるクロック数(演算量)を考える。このマイクロプロセッサ素子が0.5乗の計算(SQRT命令)に最低29クロック、乗算(MUL命令)に5クロック必要とすると、図5に示す計算手順では、(29+5+29)=63クロックが必要となる。 【0015】このクロック数をさらに低減する方法として、第2の方法を図6及び図7に示す。図6は従来の効率的な0.75乗計算装置の構成を示すブロック図、図7はその計算手順を示すフローチャートである。 【0016】図6に示す従来の効率的な0.75乗計算装置は第1の−0.5乗計算手段31と、第1の乗算手段32と、第2の−0.5乗計算手段33と、第2の乗算手段34と、不定値置換手段35とから構成されている。 【0017】第1の−0.5乗計算手段31は入力値Aの−0.5乗を計算し(図7ステップS21)、その演算結果B(=A-0.5)を第1の乗算手段32と第2の−0.5乗計算手段33とに出力する。第1の乗算手段32は第1の−0.5乗計算手段31が出力した演算結果Bと入力値Aとの積を求め(図7ステップS22)、その演算結果C(=A×B)を第2の乗算手段34へ出力する。 【0018】第2の−0.5乗計算手段33は第1の−0.5乗計算手段31が出力した演算結果Bの−0.5乗を計算し(図7ステップS23)、その演算結果D(=B-0.5)を出力する。第2の乗算手段34は第1の乗算手段32が出力した演算結果Cと、第2の−0.5乗計算手段33が出力した演算結果Dとの積を計算し(図7ステップS24)、その演算結果E(=C×D)を出力する。上記のようにして求められたEの値が、入力値Aの0.75乗の値となっている。 【0019】この方法を上記のマイクロプロセッサ素子上に実装した場合、−0.5乗の計算(RSQRT命令)に2クロック、乗算(MUL命令)に5クロック必要とすると、図7に示す計算手順では、(2+5+2+5)=14クロックが必要となる。もし、演算に互いに依存性がないステップS22とステップS23とを同時並列に実行することができた場合、(2+5+5)=12クロックが必要となる。 【0020】この第2の方法を用いることによって、第1の方法を用いる場合と比較して、必要クロック数(演算量)を64クロックから12クロックへと低減することができる。しかしながら、第2の方法では、入力値Aがゼロであった時に問題が発生する。 【0021】この方法を上記のマイクロプロセッサ素子上に実装した場合、−0.5乗を計算するRSQRT命令が近似計算であるため、0(ゼロ)の−0.5乗の演算結果は無限大を表す特殊値となる。よって、ステップS21において演算結果Bの値は無限大を表す特殊値となる。 【0022】さらに、無限大と0(ゼロ)との乗算結果は不定値となるため、ステップS22において演算結果Cの値は不定値を表す特殊値となる。ステップS24においては、乗算の一方である演算結果Cが不定値であるため、乗算結果Eも不定値を表す特殊値となる。 【0023】したがって、入力値Aがゼロの場合に限り、0.75乗の演算結果をゼロに置き換える処理、あるいは演算結果が不定値であれば演算結果をゼロに置き換える処理(図6の不定値置換手段34及び図7ステップS25,S26)が必要となる。この処理には条件判定命令が必要であり、一般に、多くのクロック数を必要とする。 【0024】 【発明が解決しようとする課題】上述した従来の0.75乗計算装置では、入力値がゼロである場合に条件判定処理が必要となるため、演算量が多くなるという問題がある。 【0025】そこで、本発明の目的は上記の問題点を解消し、演算量を低減することができる0.75乗計算装置及び0.75乗計算方法並びにそれに用いるプログラムを提供することにある。 【0026】 【課題を解決するための手段】本発明による0.75乗計算装置は、演算結果が不定値となる要因である無限大とゼロとの乗算が発生しないように構成するようにしている。 【0027】本発明による他の0.75乗計算装置は、入力値の逆数を計算する逆数計算手段と、前記逆数計算手段による計算結果の−0.5乗を計算する第1の−0.5乗計算手段と、前記逆数計算手段による計算結果と前記第1の−0.5乗計算手段による計算結果との積を計算する乗算手段と、前記乗算手段による計算結果の−0.5乗を計算する第2の−0.5乗計算手段とを備えている。 【0028】本発明による0.75乗計算方法は、演算結果が不定値となる要因である無限大とゼロとの乗算が発生しないようにしている。 【0029】本発明による他の0.75乗計算方法は、入力値の逆数を計算する第1のステップと、前記第1のステップによる計算結果の−0.5乗を計算する第2のステップと、前記第1のステップによる計算結果と前記第2のステップによる計算結果との積を計算する第3のステップと、前記第3のステップによる計算結果の−0.5乗を計算する第4のステップとを備えている。 【0030】本発明による0.75乗計算装置に用いるプログラムは、コンピュータに、演算結果が不定値となる要因である無限大とゼロとの乗算が発生しないように動作させる処理を実行させている。 【0031】本発明による他の0.75乗計算装置に用いるプログラムは、コンピュータに、入力値の逆数を計算させる第1の処理と、前記第1の処理による計算結果の−0.5乗を計算させる第2の処理と、前記第1の処理による計算結果と前記第2の処理による計算結果との積を計算させる第3の処理と、前記第3の処理による計算結果の−0.5乗を計算させる第4の処理とを実行させている。 【0032】すなわち、本発明のオーディオ信号量子化装置は、逆数計算手段と、第1の−0.5乗計算手段と、乗算手段と、第2の−0.5乗計算手段とを備え、演算結果が不定値となる要因である無限大とゼロとの乗算が発生しないように計算手段を構成している。これによって、入力値がゼロの場合でも、特殊処理が要らなくなるため、量子化計算の演算量を低減することが可能となる。 【0033】 【発明の実施の形態】次に、本発明の一実施例について図面を参照して説明する。図1は本発明の一実施例による0.75乗計算装置の構成を示すブロック図である。図1において、0.75乗計算装置1は逆数計算手段2と、第1の−0.5乗計算手段3と、乗算手段4と、第2の−0.5乗計算手段5と、外部に接続されるプログラム記憶媒体6とから構成され、プログラム記憶媒体6に格納されたプログラムを実行することで上述した(1)式の量子化計算式における0.75乗の計算を行う。 【0034】図2は本発明の一実施例による0.75乗計算装置1の計算手順を示すフローチャートである。これら図1及び図2を参照して本発明の一実施例による0.75乗計算装置1の計算手順について説明する。この0.75乗計算装置1の計算手順は上記のプログラム記憶媒体6に格納されたプログラムを実行することで実現される。 【0035】逆数計算手段2は入力値Aの逆数を計算し(図2ステップS1)、その演算結果B(=A-1)を第1の−0.5乗計算手段3と乗算手段4とに出力する。第1の−0.5乗計算手段3は入力値Aの−0.5乗を計算し(図2ステップS2)、その演算結果C(=A-0.5)を乗算手段4へ出力する。 【0036】乗算手段4は逆数計算手段2が出力した演算結果Bと第1の−0.5乗計算手段が出力した演算結果Cとの積を計算し(図2ステップS3)、その演算結果D(=B×C)を第2の−0.5乗計算手段5へ出力する。 【0037】第2の−0.5乗計算手段5は乗算手段4が出力した演算結果Dの−0.5乗を計算し(図2ステップS4)、その演算結果E(=D-0.5)を出力する。このようにして第2の−0.5乗計算手段5で求められた演算結果Eの値が入力値Aの0.75乗の値となっている。 【0038】このように、演算結果が不定値となる要因である無限大とゼロとの乗算が発生しないように構成することによって、入力値Aがゼロの場合に特別な処理を必要とせず、量子化処理における演算量的ボトルネックである0.75乗の計算を低演算量で実現することができる。 【0039】本実施例の方法を上述したパーソナルコンピュータのCPU(中央処理装置)として広く用いられているマイクロプロセッサ素子上に実装し、入力値Aがゼロであった場合、ステップS1において演算結果Bの値が無限大を表す特殊値となる。 【0040】また、ステップS2においても演算結果Cの値が無限大を表す特殊値となり、ステップS3でも無限大と無限大との乗算であるため、演算結果Dの値が無限大となる。そして、ステップS4では無限大の−0.5乗がゼロとなるため、最終的な演算結果がゼロとなる。したがって、従来、必要であった入力値がゼロの際の特殊処理が不要となり、演算量を低減することができる。 【0041】この方法をマイクロプロセッサ素子上に実装した場合、逆数の計算(RCP命令)に2クロック、−0.5乗の計算(RSQRT命令)に2クロック、乗算(MUL命令)に5クロック必要とすると、図2に示す計算手順では、(2+2+5+2)=11クロックで0.75乗の計算を実現することができる。 【0042】もし、演算が互いに依存性のないステップS1とステップS2とを同時並列に実行することができると、(2+5+2)=9クロックで0.75乗計算を実現することができる。このようにして、演算量が大きな量子化計算の演算量を低減することができる。 【0043】本実施例では量子化処理に(1)式を用いるMPEG−2 AACを例に、量子化計算における0.75乗計算の演算量の低減手法について説明したが、0.75乗計算を用いる他の処理や符号化手法においても利用することができる。その代表例としては、国際標準オーディオ符号化方式であるMP3(MPEG−1Audio Layer3)方式における量子化処理を挙げることができる。 【0044】 【発明の効果】以上説明したように本発明によれば、演算結果が不定値となる要因である無限大とゼロとの乗算が発生しないようにすることによって、演算量を低減することができるという効果がある。
|
| 【出願人】 |
【識別番号】000004237 【氏名又は名称】日本電気株式会社
|
| 【出願日】 |
平成13年1月24日(2001.1.24) |
| 【代理人】 |
【識別番号】100088812 【弁理士】 【氏名又は名称】▲柳▼川 信
|
| 【公開番号】 |
特開2002−215196(P2002−215196A) |
| 【公開日】 |
平成14年7月31日(2002.7.31) |
| 【出願番号】 |
特願2001−15171(P2001−15171) |
|