JP3547971B2 - 離散コサイン変換回路及びその動作方法 - Google Patents
離散コサイン変換回路及びその動作方法 Download PDFInfo
- Publication number
- JP3547971B2 JP3547971B2 JP01926798A JP1926798A JP3547971B2 JP 3547971 B2 JP3547971 B2 JP 3547971B2 JP 01926798 A JP01926798 A JP 01926798A JP 1926798 A JP1926798 A JP 1926798A JP 3547971 B2 JP3547971 B2 JP 3547971B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- registers
- stored
- expression
- data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
Description
【発明の属する技術分野】
本発明は、デジタル音声録音装置、再生装置におけるデジタル音声データの圧縮/伸長処理に用いることができる離散コサイン変換回路及びその動作方法に関し、特に処理効率を向上し、消費電力を低減することに関する。
【0002】
【従来の技術】
図2は、デジタル化された音声データの符号化/復号化を行う処理装置の概略のブロック図である。録音時には、入力された音声信号が、まずA/D(analogto degital)変換器2によりデジタル音声データに変換される。デジタル音声データは、QMF(quadrature mirror filter)回路4を用いて低、中、高の3つの周波数帯域に分割される。デジタルの時系列音声データは、離散コサイン変換(DCT:discrete cosine transform)回路6を用いて周波数成分データに変換され、さらに量子化器8にて量子化される。このように生成された符号化データは、所定の記録媒体に記録するための次段の処理回路に供給される。
【0003】
一方、再生時には、上述とは逆の処理が行われる。つまり、逆量子化器10、離散コサイン逆変換回路(Inverse DCT)12、IQMF(inverse quadrature mirror filter)回路14、D/A(degital to analog)変換器16はそれぞれ量子化器8、DCT回路6、QMF回路4、A/D変換器2が行うのとは逆の変換を行い、これらを用いて、記録された符号化データから音声信号が再生される。
【0004】
さて、DCTは、音声信号の符号化/復号化において有用であり、広く用いられるようになっている。DCTには種々のタイプがあり、例えば、音声録音再生装置に用いられる一つのタイプとして、連続整数の時刻インデックスnで表される2M個の時系列音声データy(n)と連続整数の波数インデックスkで表されるM個の周波数成分データX(k)との間の次の関係式、
【数4】
で表されるDCTがある。これはいくつかの基本的なDCTからはやや変更を加えられたものであるため、ここではModified DCT、以下、略してMDCTと呼び、またその逆変換をIMDCT(Inverse MDCT)と呼ぶ。
【0005】
DCTを高速に処理するアルゴリズムとして高速フーリエ変換(FFT)を使用する方法が知られている。上記MDCT又はIMDCTについても、同様にFFTを用いたアルゴリズムにより数列X(k)から数列y(n)を求めたり、逆に数列y(n)から数列X(k)を求めることが行われている。
【0006】
より厳密に述べれば、時系列音声データy(n)と周波数成分データX(k)との関係式である(1)式はIMDCTの計算に適した形式に表されたものであり、MDCTは後述の(6)式の表現に基づいて計算が行われる。
【0007】
まず(1)式に基づくIMDCTに関する計算アルゴリズムを以下に説明する。まず、変換元データである数列X(k)を所定規則に従って並べ替えて再構成し、新たな数列U(k)を定義する。このU(k)に基づいて、次式で表されるZ(j)が定義される。なお、ここで、iは虚数単位であり、ψ(j)は所定のjの関数を表す。
【0008】
Z(j)=(U(2j)+iU(2j+1))・exp(iψ(j)) ………(2)
さらに、このZ(j)から次式で定義されるz(n)が求められる。
【0009】
【数5】
この(3)式を高速に計算するためにFFTが用いられる。よく知られているようにFFTは、上記(3)式を次式で表される演算の繰り返しにより計算するものである。なお、ψ’(j)は所定のjの関数である。
【0010】
Z(j1)+Z(j2)・exp(iψ’(j)) ………(4)
IMDCTでは、このz(n)から、次の(5)式で定義されるu(n)を求め、この数列u(n)を並べ替えにより再構成して、時系列音声データy(n)を得る。なお、a0〜a3はnごとに定まる比例係数である。
【0011】
【数6】
一方、MDCTに関しては、時系列音声データy(n)に基づいた数列x(n)から周波数成分データX(k)を求めるために次の関係式が用いられる。
【0012】
【数7】
(1)式と(6)式とは係数2/Mを除けば、ほとんど同一の形式を有していることから、MDCTの計算アルゴリズムは上述したIMDCTのそれと類似することが期待される。実際、(6)式に基づくMDCTの計算アルゴリズムは、以下のようなものであり、IMDCTのアルゴリズムと共通点を有する。
【0013】
まず、MDCTでは次式に示されるような、変換元データである数列x(n)の所定の要素同士の和(又は差)により、新たな数列x’(n)を定義する。
【0014】
x’(n)=x(n1)+x(n2)又はx(n1)−x(n2) ………(7)
このx’(n)に基づいて、(2)式と同形式の次式で表されるz(j)が定義される。
【0015】
z(j)=(x’(2j)+ix’(2j+1))・exp(iψ(j)) ………(8)
さらに、このz(j)から次式で定義されるZ(k)が求められる。
【0016】
【数8】
この(9)式は(3)式と同様の形式を有し、この高速計算においても(3)式同様、FFTが用いられ、次の形式の演算が実行される。
【0017】
z(j1)+z(j2)・exp(iψ’(j)) ………(10)
MDCTでは、このZ(k)から、次の(11)式により周波数成分データX(k)を得る。
【0018】
【数9】
ただし、b0〜b3はkごとに定まる比例係数である。nごとに定まる比例係数aL(L=0〜3)をaL=aL(n)、また比例係数bL(L=0〜3)をbL=bL(k)と表すと、両者の間には
bL(j)=aL(j)×2/M ………(12)
という関係がある。
【0019】
図3は、上述したIMDCT演算を実現する従来のIMDCT回路の概略のブロック図である。RAM(random access memory)20には、変換元データである周波数成分データX(k)が格納される。またRAM20は、演算の途中段階での結果を格納することもできるように構成されている。ROM(read only memory)22には、例えば、比例係数aL(L=0〜3)が格納される。乗算器24は、RAM20から読み出されレジスタ26に保持された値と、ROM22から読み出されレジスタ28に保持された値とを入力され、これらを掛け合わせた値をレジスタ30又はレジスタ32のいずれかへ出力する。
【0020】
加減算器34は2つの入力A、Bを有し、それぞれには、セレクタ36、38が設けられる。セレクタ36には、レジスタ26とレジスタ30とが入力側に接続される。これによりセレクタ36は、RAM20に格納されたそのままのデータか、乗算器24にて乗算が行われたデータかのいずれかを選択的に加減算器34の一つの入力端Aへ供給することができる。一方、セレクタ38には、セレクタ40を介してレジスタ42、44と、レジスタ32とが入力側に接続される。これによりセレクタ38は、レジスタ32に格納される値(例えばRAM20格納データに対して乗算器24にて乗算を行った結果)と、加減算器34の出力結果とのいずれかを加減算器34の他の入力端Bへ供給することができる。加減算器34の出力は、レジスタ42を介してRAM20へ書き戻すことができる。
【0021】
さて、時系列音声データy(n)と周波数成分データX(k)との変換において、時系列音声データy(n)は時間的に連続する2M個のデータを1ブロックとしてブロックごとに取り扱われる。生成された1ブロック分の時系列音声データは、RAM44に格納される。このとき各ブロック間のつなぎ目において音声の歪みを少なくするため、先行するブロックの終わりの部分と後続するブロックの先頭部分とはオーバーラップするようにブロックの範囲が定められる。このオーバーラップする部分においては、両ブロックのデータ値を加算する処理を行って最終的な音声データy(n)が生成される。このデータの重ね合わせを行うために、RAM44に格納された音声データは、加減算器34へ戻すことができるように構成される。すなわち、RAM44から読み出された値は、乗算器24とレジスタ32との間に配置されるセレクタ46に入力される。セレクタ46は、乗算器24の出力とRAM44の出力とのいずれかを選択して、選択された値は、セレクタ38を介して加減算器34へ入力される。
【0022】
次にこの従来回路において、上記演算がどのように行われるかを説明する。まず上記(2)式の右辺を展開することによりZ(j)は次式で表される。
【0023】
【数10】
よって、データU(k)をRAM20に格納し、sinψ(j)、cosψ(j)をROM22に格納することにより、Z(j)の実数部、虚数部はそれぞれ乗算器24、加減算器34を順に用いて計算され、加減算器34から出力された実数部、虚数部の演算結果はRAM20に格納される。
【0024】
z(n)は(4)式で表される演算を繰り返すことにより求められることは既に述べた。RAM20に格納されたZ(j)を乗算器24を通さずに、レジスタ26、セレクタ36を経由してそのままの値で加減算器34へ入力することにより、(4)式の右辺第一項が加減算器34の一端Aへ供給される。また、右辺第二項は、RAM20に格納されたZ(j)とROM22に格納されているexp(iψ’(j))とをそれぞれ読み出して、乗算器24にて掛け合わせて生成される。そして、これがセレクタ46、レジスタ32、セレクタ38を経由して、加減算器34の他端Bに供給される。加減算器34は(4)式の第一項と第二項との加算を行い、その結果はRAM20に格納される。このz(n)の計算も複素演算であり、やはり回路においては実数部と虚数部とが別個に演算される。
【0025】
この演算により(5)式の演算に用いられるRez(n)、Rez(M/2−1−n)、Imz(n)、Imz(M/2−1−n)がRAM20に格納される。また、比例係数aL(L=0〜3)はROM22に格納されている。(5)式の計算は、乗算器24が右辺第一項から順に各項を計算し、加減算器34がそれらを累積的に加減算することにより行われる。
【0026】
この計算をより詳しく説明する。例えば、RAM20からRez(n)が読み出されてレジスタ26に格納され、一方、ROM22からa0が読み出されてレジスタ28に格納され、これらが乗算器24にて乗算されレジスタ32に格納される。次に、RAM20からRez(M/2−1−n)が読み出されてレジスタ26に格納され、一方、ROM22からa1が読み出されてレジスタ28に格納される。ここで、レジスタ26の内容は、第一項の計算のために格納したRez(n)から第二項の計算に用いるRez(M/2−1−n)へと上書き変更されることに留意する。Rez(M/2−1−n)とa1とは乗算器24にて乗算されレジスタ30に格納され、加減算器34はレジスタ32とレジスタ30の内容に対し、“A+B”を計算してレジスタ44へ出力する。
【0027】
次に第三項が第一項、第二項と同様にして計算され、レジスタ30に格納される。加減算器34はレジスタ30とレジスタ44から供給される第二項までの累積加算値とに対し“A+B”を計算して、レジスタ44へ出力する。第四項も同様にして計算され、第三項までの加算値に加え合わされ、その結果がRAM20に戻される。しかる後に、(5)式の第二式の計算が上記第一式と同様にして計算される。この第二式の計算においては、入力端Aに入力される第二項は、入力端Bに供給される第一項からの減算であり、加減算器34は“B−A”を実行する。
【0028】
以上が、従来のIMDCT回路の構成及びその動作であるが、IMDCT演算とMDCT演算とは上述したように共通部分を有し、よって、MDCT回路の従来構成も図3に示すIMDCT回路とほとんど同じものであり、その動作も上述したものとほぼ同様となる。
【0029】
【発明が解決しようとする課題】
上述したようにMDCT及びIMDCTの演算の各段階の演算結果は、RAM20に格納され、次段の演算において読み出され使用される。演算の段階の数が多いことと、デジタル音声録音装置/再生装置等に用いられる場合においては、取り扱われるデータ数も多いことから、RAM20へのアクセス回数が非常に多くなり、そのためRAM20の駆動に消費される電力も多くなるという問題があった。これは、例えば、ポータブル型のMDシステムといった電池を電源とする装置においては、動作時間が短くなるといった不便を生じる。
【0030】
また、用途によっては、単位時間当たりの音声のサンプル数の増加を図りたいという要望もあるかもしれないが、その場合、増大するMDCTの演算量を単位時間内にこなさなければならないということが、サンプル数を制限するおそれがあるという問題も考えられる。
【0031】
本発明は上記問題点を解消するためになされたもので、上述したMDCTを行う離散コサイン変換回路において、処理を効率的に行うことにより、RAMのアクセス回数を低減し消費電力を抑制するとともに、アクセスに費やす合計時間を短縮することを目的とする。
【0032】
【課題を解決するための手段】
離散コサイン変換又はその逆変換を行う本発明に係る離散コサイン変換回路は、前記時系列音声データy(n)又は前記周波数成分データX(k)のうちいずれか変換元となるデータに基づく被演算データを記憶するメモリと、それぞれ前記メモリから読み出された被演算データを保持しうる4つのレジスタと、前記4つのレジスタのいずれかを選択して、当該レジスタの保持する値を前記乗算器へ出力するセレクタとを有するものである。
【0033】
上述したMDCT又はIMDCTの演算において、一つの演算結果データを得るために加減算される被演算データ、またはそれに比例係数を乗じた項は最大4つである。ここで、被演算データは時系列音声データy(n)又は前記周波数成分データX(k)のうちいずれか変換元となるデータそのもののほか、処理の各段階で算出されてメモリに格納され次段の演算で用いられる処理の中間結果も含む。本発明によればある演算データの算出に用いた被演算データをレジスタに保持し、その中で他の演算データの計算でも用いられるものがあれば、新たにメモリから読み出すことなく、レジスタに保持されたものを参照する。
【0034】
特に、離散コサイン変換処理が、前記時系列音声データy(n)又は前記周波数成分データX(k)に基づいて得られた2つの関数F1(j)及びF2(j)(引数jは整数、かつ0≦j<M/2)の値から次の演算式、
【数11】
によって、関数G(j)の値を求める演算を含む場合においては、本発明に係る離散コサイン変換回路は、それぞれ前記F1(j)及びF2(j)の各関数値を記憶するメモリと、それぞれ前記メモリから読み出された値を保持しうる4つのレジスタと、前記4つのレジスタのいずれかを選択して、当該レジスタの保持する値を前記乗算器へ出力するセレクタとを有するものである。
【0035】
上記演算式を用いた処理を含む上記本発明の離散コサイン変換回路を動作するための本発明に係る動作方法は、前記メモリからあるjに対応する前記関数値F1(j),F1(M/2−1−j),F2(j),F2(M/2−1−j)の組を読み出し、それぞれの値を前記4つのレジスタに格納し、格納された前記関数値の組は、当該jの値に対応した前記演算式の第一式と第二式との両方の計算が行われる間、前記各レジスタに保持され、当該保持された前記関数値の組を用いて、当該jの値に対応した前記演算式の第一式と第二式との両方の計算が行われるものである。
【0036】
上記演算式の第一式と第二式とは、用いる関数値F1(j),F1(M/2−1−j),F2(j),F2(M/2−1−j)の組が同一である。本発明によれば4つのレジスタに、あるjに関する関数値F1(j),F1(M/2−1−j),F2(j),F2(M/2−1−j)が読み出されると、これらは関数値G(j),G(M−1−j)の両方の計算の間、継続して保持され他のデータにより上書きされることがない。よって、例えば関数値G(j)を計算するための関数値F1、F2の組がメモリからレジスタに読み出されると、改めてメモリから関数値のF1、F2の組を読み出すことなく関数値G(M−1−j)を計算することができる。
【0037】
上記演算式を用いた処理を含む上記本発明の離散コサイン変換回路を動作するための本発明に係る動作方法は、前記メモリからあるjに対応する前記関数値F1(j),F1(M/2−1−j),F2(j),F2(M/2−1−j)の組を読み出し、それぞれの値を前記4つのレジスタに格納し、格納された前記関数値の組は、前記演算式に基づいて当該jの値におけるG(j),G(M−1−j),G(M/2−1−j)及びG(M/2+j)の値の計算が行われる間、前記各レジスタに保持され、当該保持された前記関数値の組を用いて、当該jの値におけるG(j),G(M−1−j),G(M/2−1−j)及びG(M/2+j)の値の計算が行われるものである。
【0038】
上記演算式の右辺に現れる関数値F1(j),F1(M/2−1−j),F2(j),F2(M/2−1−j)は、jがj1であるときにはそれぞれF1(j1),F1(M/2−1−j1),F2(j1),F2(M/2−1−j1)となり、jがj2≡M/2−1−j1であるときにはそれぞれF1(M/2−1−j1),F1(j1),F2(M/2−1−j1),F2(j1)となる。すなわち、F1(j1)=F1(M/2−1−j2),F2(j1)=F2(M/2−1−j2)であり、よって
【数12】
である。つまり、j1,j2,M−1−j1,M−1−j2というjに関する4つの関数値Gの演算は、それに用いる関数値F1(j),F1(M/2−1−j),F2(j),F2(M/2−1−j)の組が互いに同一である。本発明によれば4つのレジスタに、j=j1に関する関数値F1(j1),F1(M/2−1−j1),F2(j1),F2(M/2−1−j1)が読み出されると、これらは関数値G(j1),G(j2),G(M−1−j1),G(M−1−j2)、すなわちG(j1),G(M/2−1−j1),G(M−1−j1),G(M/2+j1)の計算に共通に用いられる。換言すれば、一旦、メモリからレジスタへ読み出された関数値F1、F2の組は、これら4つのGの値の計算の間、継続して保持され他のデータにより上書きされることがない。よって、例えば関数値G(j1)を計算するための関数値F1、F2の組がメモリからレジスタに読み出されると、改めてメモリから関数値のF1、F2の組を読み出すことなく関数値G(M/2−1−j1),G(M−1−j1),G(M/2+j1)を計算することができる。
【0039】
【発明の実施の形態】
次に、本発明の実施形態について図面を参照して説明する。
【0040】
図1は、MDCTを用いた音声録音再生装置であるMDシステムにおいて、本発明を実施したIMDCT回路の概略のブロック図である。本実施の形態に係る音声録音再生装置は、図2と同一のブロック構成を有した音声データ符号化/復号処理部を含んで構成される。そして、本回路は図2におけるIDCT回路12と同様、MDに記録されたデジタルデータから音声を再生する復号処理に用いられ、逆量子化器10から入力された高、中、低の3つの周波数帯域ごとの周波数成分データX(k)にIMDCT変換を施して、各周波数帯域ごとの時系列音声データy(n)を生成し、IQMF回路14へ出力するものである。
【0041】
本回路が行うIMDCTの基本的な演算アルゴリズムは、従来技術として上述したものと同一であるので、それを参照することにより説明の簡潔を図る。
【0042】
RAM60には、変換元データである周波数成分データX(k)が格納される。またRAM60は、演算の途中の結果を格納することもできるように構成されている。4つのレジスタ62−1〜62−4は、RAM60の出力に並列して設けられ、それぞれRAM60から読み出されたデータを保持することができる。セレクタ64は、これらレジスタ62−1〜62−4のいずれかを選択して、その格納内容を乗算器66へ出力する。
【0043】
ROM68には、RAM60から読み出されたデータに乗じられる比例係数、例えばaL(L=0〜3)が格納される。2つのレジスタ70−1、70−2は、ROM68の出力に並列して設けられ、それぞれROM68から読み出された係数を保持することができる。セレクタ72は、セレクタ64と同様、接続された2つのレジスタ70−1、70−2のいずれかを選択して、その保持内容を出力する機能を有するとともに、それらレジスタの保持内容以外に値“1”を出力の選択肢として備えている。すなわちセレクタ72は、レジスタ70−1、70−2の保持内容と値“1”との3つのうちいずれかを外部からの制御により選択して乗算器66へ出力する。この値“1”の意味については後述する。
【0044】
乗算器66は、RAM60側のセレクタ64から出力された値と、ROM68側のセレクタ72から出力された値とを入力され、これらを掛け合わせた値を出力する。
【0045】
セレクタ74は、乗算器66から出力された乗算結果と、RAM76から読み出された値とのいずれかを選択して、レジスタ78に格納する。
【0046】
加減算器80は2つの入力A、Bを有し、それらに入力される値の加減算を行う。一方の入力端、例えば入力Aに、レジスタ78の出力が接続される。加減算器80の出力には、3つのレジスタ82〜86が設けられる。加減算器80のもう一つの入力Bには、これらレジスタ82〜86を入力に接続されたセレクタ88の出力が接続される。
【0047】
セレクタ88は、接続された3つのレジスタ82〜86のいずれかを選択して、その保持内容を出力するという一般的な機能を有するとともに、それらレジスタの保持内容以外に値“0”を出力の選択肢として備えている。すなわちセレクタ88は、レジスタ82〜86の保持内容と値“0”との4つのうちいずれかを外部からの制御により選択して、加減算器80の入力Bへ供給する。この値“0”の意味については後述する。
【0048】
加減算器80の出力は、レジスタ82を介してRAM60やRAM76に格納することができる。例えば、演算の途中段階でのデータをRAM60に蓄積したり、1ブロック分の周波数成分データX(k)から音声データy(n)が得られた段階でそれをRAM76に格納することができる。
【0049】
なお、各ブロック間のつなぎ目において音声の歪みを少なくするため、先行するブロックの終わりの部分と後続するブロックの先頭部分とはオーバーラップするようにブロックの範囲が定められる。このオーバーラップする部分においては、両ブロックのデータ値を加算する処理を行って最終的な音声データy(n)が生成される。このデータの重ね合わせを行うために、RAM76に格納された音声データは、加減算器80へ戻すことができるように構成する必要がある。本回路では、これを実現するために乗算器66と加減算器80との間にセレクタ74を設け、それにRAM76の出力を接続している。
【0050】
さて、セレクタ72が値“1”を出力できる構成としている理由は、RAM60から読み出されたデータに対し比例係数を乗算した結果を加減算器80へ入力する場合と、行わずにそのままの値を加減算器80へ入力する場合との加減算器80への入力系統を一本化して、それらの切り替えに必要であったセレクタを廃し回路構成を簡単にするためである。つまり、RAM60から読み出されたデータは、必ず乗算器66を経由させる一方で、RAM60から読み出された値のまま加減算器80へ入力したい場合には、セレクタ72から“1”を出力させることとして、この場合の乗算器66の出力値がその入力値と等しくなるようにしたものである。これにより、従来回路で用いていたセレクタ36を不要とすることができた。
【0051】
セレクタ88が値“0”を出力できる構成としている理由は、乗算器66からの出力は加減算器80の一方の入力端Aのみに入力させ、他方の入力端Bへは加減算器80の出力からのループバックのみ接続する構成としていることに関係する。この入力端Bには乗算器66からは入力させない本回路の構成により、加減算器80の出力からのループバックとの切り替えに必要であったセレクタを廃し回路構成を簡単にすることができる。この構成にて加減算器80の入力端へ供給される被演算値同士の加減算を可能とするために、入力端Aへ入力された値を、加減算器80を素通りさせて入力端Bへまわす。具体的には、入力端Aへ入力された値を素通りさせる場合には、セレクタ88に値“0”を出力させ、これを加減算器80の入力端Bへ供給する。加減算器80は、入力端Aのデータと、入力端Bのデータ“0”とを例えば加算して、その結果をレジスタ82〜86のいずれかに格納する。これにより、入力端Aへ入力された被演算データが加減算器80の出力側へ素通りされ、その値はセレクタ88を介して加減算器80の入力端Bへ戻されることにより、次に入力端Aへ入力される被演算データとの加減算に用いることができる。
【0052】
次に本回路において、上述したIMDCT演算がどのように行われるかを説明する。まず変換元データである周波数成分データX(k)を並べ替えて得られるU(k)からZ(j)が(13)式に基づいて演算される。データU(k)をRAM60に格納し、sinψ(j)、cosψ(j)をROM68に格納する点は従来と同様である。あるjについての(13)式右辺を計算する際、RAM60からは、U(2j)とU(2j+1)とが読み出され、それぞれレジスタ62−1〜62−4のいずれか2つ、例えばレジスタ62−1とレジスタ62−2に格納される。また、ROM68からは、cosψ(j)とsinψ(j)とが読み出され、それぞれレジスタ70−1とレジスタ70−2に格納される。そして、Z(j)の実数部、虚数部がそれぞれ乗算器66、加減算器80を順に用いて計算される。
【0053】
例えば、実数部の計算は、レジスタ62−2に格納されたU(2j+1)と、レジスタ70−2に格納されたsinψ(j)とを乗算器66にて乗算して(13)式右辺第二項を得、加減算器80の入力Aへ入力する。この第二項の値は加減算器80を素通りさせられ、例えばレジスタ86に格納される。次に、(13)式右辺第一項が、レジスタ62−1に格納されたU(2j)と、レジスタ70−1に格納されたcosψ(j)とを乗算器66にて乗算して得られる。この第一項の値を加減算器80の入力Aへ供給するとともに、第二項の値をレジスタ86から入力Bへ供給し、加減算器80は減算“A−B”を行うことにより、Z(j)の実数部が計算される。この出力結果は、レジスタ82を介してRAM60へ格納される。
【0054】
さて(13)式は、実数部の計算に用いる値と虚数部の計算に用いる値とが全く同じであるという特徴を有している。つまり虚数部の計算に必要なRAM60格納値U(2j)、U(2j+1)及びROM68格納値sinψ(j)、cosψ(j)は、全てすでに実数部の計算においてレジスタ62−1、62−2、70−1、70−2に読み出され、それらに保持されている。よって、従来回路と異なり、改めてRAM60、ROM68から読み出す必要がなく、そのための消費電流を削減することができる。これらレジスタに保持された値を用いての虚数部の演算は、実数部と同様であるので説明を省略する。
【0055】
次にZ(k)を用いて(3)式で定義されるz(n)を求める演算が行われる。この演算においては、(4)式で表される形の演算が繰り返される。ちなみに、本回路における一つの(4)式の演算は以下のように行われる。Z(j)は上記演算によりRAM60に格納され、また位相因子exp(iψ’(j)) はROM68に予め格納されている。RAM60からはZ(j1)とZ(j2)とが読み出され、それぞれ例えばレジスタ62−1、62−2に格納される。一方、ROM68からはexp(iψ’(j)) が読み出され、レジスタ70−1に格納される。レジスタ62−2、レジスタ70−1の値を用いて(4)式第二項の乗算が行われ、その値は加減算器80を素通りさせられ、加減算器80の入力端Bへ供給される。一方で、レジスタ62−1に格納された第一項の値が乗算器66を素通りさせられ、加減算器80の入力端Aへ供給される。加減算器80はこれらの加算又は減算を行って、一つの(4)式の計算を完了し、その値はRAM60に格納される。さて、FFT演算における一連の(4)式の計算においては、ある
Z(j1)+Z(j2)・exp(iψ’(j)) ………(4)
という計算と対になる
Z(j1)+Z(j2)・exp{i(ψ’(j)+π)} ………(4’)
という計算も実行される。この(4’)の計算は、その位相因子exp{i(ψ’(j)+π)}をROM68に格納しておけば、上に一つの(4)式の計算として説明した手順の繰り返しの中で実行される。ただし、ここで、
exp{i(ψ’(j)+π)}=−exp(iψ’(j)) ………(14)
という関係に着目すると、本回路においては次の効率的な処理が可能である。すなわち、ある(4)式の計算を行った後、レジスタ62−1、62−2にZ(j1)、Z(j2)を、そしてレジスタ70−1にexp(iψ’(j))を保持させたまま、次にそれらの値を用いて、当該(4)式と対となる(4’)式の計算を行うのである。これにより、RAM60、ROM68からの読み出し手続を省略し、消費電流を抑制することができる。なお、以上述べたz(n)の計算も複素演算であり、やはり回路においては実数部と虚数部とが別個に演算される。
【0056】
次に、このz(n)を用いて(5)式で定義されるu(n)を求める演算が行われる。z(n)は上記演算によりRAM60に格納され、また比例係数aL(L=0〜3)はROM68に予め格納されている。n=n1に関する(5)式の計算においてはRAM60からRez(n1)、Rez(M/2−1−n1)、Imz(n1)、Imz(M/2−1−n1)が読み出され、それぞれ例えばレジスタ62−1、62−2、62−3、62−4に格納される。一方、ROM68からはn=n1に対応するa2、a3が読み出され、それぞれレジスタ70−1、70−2に格納される。レジスタ62−4、レジスタ70−2の値を用いて(5)式第一式右辺第四項の乗算が行われ、その値は加減算器80を素通りさせられ、加減算器80の入力端Bへ供給される。一方で、右辺第三項がレジスタ62−3、レジスタ70−1の値を用いて乗算器66にて計算され、加減算器80の入力端Aへ供給される。加減算器80はこれらを加算して、加減算器80出力に配置される例えばレジスタ86に格納する。次に、ROM68からn=n1に対応するa0、a1が読み出され、それぞれレジスタ70−1、70−2に格納される。そしてレジスタ62−2、レジスタ70−2の値を用いて右辺第二項の乗算が行われる。その乗算結果の値と、レジスタ86に保持された値とがそれぞれ加減算器80の入力A、Bに渡され、加減算器80からの加算結果がレジスタ86に格納される。同様にレジスタ62−1、レジスタ70−1の値を用いて求められた右辺第一項の値と、レジスタ86に保持された第二〜第四項の加算結果とがそれぞれ加減算器80の入力A、Bに渡され、加減算器80にて加算される。これにより、(5)式第一式の演算が終了し、演算結果はレジスタ82を経由してRAM60に格納される。
【0057】
さて(5)式においてu(n)を表す第一式とu(M−1−n)を表す第二式とは、単一のRez(n)、Rez(M/2−1−n)、Imz(n)、Imz(M/2−1−n)の組を用いて計算することができるという特徴を有している。そのため、本回路ではu(n1)を計算した後、引き続いてu(M−1−n1)を計算する。これにより、u(n1)の計算に用いたRez(n1)、Rez(M/2−1−n1)、Imz(n1)、Imz(M/2−1−n1)がレジスタ62−1〜62−4に保持された状態でu(M−1−n1)を計算することができる。つまり、u(M−1−n1)の計算において必要となるRez(n1)、Rez(M/2−1−n1)、Imz(n1)、Imz(M/2−1−n1)の値は、改めてRAM60から読み出す必要はなく、レジスタ62−1〜62−4に格納されている値を用いることができ、これにより、(5)式の計算におけるRAM60へのアクセスを従来の1/2にでき、その動作による電流消費を抑制することができる。
【0058】
また、(5)式の右辺に現れるRez(n)、Rez(M/2−1−n)、Imz(n)、Imz(M/2−1−n)は、nがn2≡M/2−1−n1であるときにはそれぞれRez(M/2−1−n1)、Rez(n1)、Imz(M/2−1−n1)、Imz(n1)となる。これらをnがn1であるときのそれぞれの値Rez(n1)、Rez(M/2−1−n1)、Imz(n1)、Imz(M/2−1−n1)と見比べると、Rez(n1)=Rez(M/2−1−n2)、Im(n1)=Im(M/2−1−n2)であることがわかる。よってn=n2に対する比例係数をa’L(L=0〜3)と表すと、
【数13】
である。つまり、u(M−1−n1)だけでなく、u(n2)、u(M−1−n2)も、u(n1)で用いたRez(n)、Rez(M/2−1−n)、Imz(n)、Imz(M/2−1−n)の値の組を用いて計算することができるという特徴を(5)式は有している。本回路ではu(n1)の計算に用いたRez(n1)、Rez(M/2−1−n1)、Imz(n1)、Imz(M/2−1−n1)をレジスタ62−1〜62−4に保持することができるので、u(n1)を計算した後、引き続いてu(M−1−n1)、u(n2)、u(M−1−n2)を計算することにより、それらの計算において必要となるRez(n1)、Rez(M/2−1−n1)、Imz(n1)、Imz(M/2−1−n1)の値をRAM60から読み出す動作を省略できる。これにより、(5)式の計算におけるRAM60へのアクセスを従来の1/4にでき、さらに電流消費量を抑制することができる。
【0059】
なお、本回路はROM68の出力にレジスタを2つ備えているが、(5)式の第一式と第二式、または(15)式の第一式と第三式、第二式と第四式はそれぞれ同一の比例係数aL(L=0〜3)の組を用いるので、ここに4つのレジスタを配置して、ROM68からの比例係数読み出し動作を削減することもできる。
【0060】
最終的なデジタルの音声時系列データy(n)は、上述のようにして求められた数列u(n)を並べ替えにより再構成して得られる。本IMDCT回路は、その変換結果をIQMF回路14へ出力して、一連の処理を終了する。
【0061】
以上、IMDCT演算に関して本発明の実施形態を説明した。しかし、本発明は、MDCT回路にも用いることができる。なぜなら、MDCT演算とIMDCT演算とは上述したようにほとんど同一形式の式を用いて行われるからである。具体的には、MDCTでの(8)、(9)、(11)式はそれぞれIMDCTでの(2)、(3)、(5)式と同一の形式である。よって、MDCT回路においても、被演算データを格納するRAMの出力に4つのレジスタを配置することにより、上述したIMDCTについての(2)、(3)、(5)式で述べたのと同様に、RAMからの読み出し処理削減という処理の効率化が図られ、それによる電流消費量が抑制される。
【0062】
【発明の効果】
本発明の離散コサイン変換回路及びその動作方法によれば、被演算データを記憶するメモリの出力に4つのレジスタが配置され、一旦、それらに読み出された被演算データを共通に利用できる演算をまとめて行うように回路が動作される。これにより、被演算データを記憶するRAM等のメモリへのアクセス回数を低減するように処理が効率化され、特にその動作にて消費される電流を抑制することができるという効果が得られる。また、アクセス時間が短縮されるという効果も得られる。
【図面の簡単な説明】
【図1】MDCTを用いた音声録音再生装置であるMDシステムにおいて、本発明を実施したIMDCT回路の概略のブロック図である。
【図2】DCTを用いた音声録音再生装置、例えばMDシステムにおける音声データの符号化/復号処理に関わる部分の概略のブロック図である。
【図3】従来のIMDCT回路の概略のブロック図である。
【符号の説明】
60,76 RAM、62−1〜62−4,70−1,70−2,78,82,84,86 レジスタ、64,72,74,88 セレクタ、66 乗算器、68 ROM、80 加減算器。
Claims (3)
- 乗算器と加減算器とを備え、連続整数の時刻インデックスnで表される2M個の時系列音声データy(n)と連続整数の波数インデックスkで表されるM個の周波数成分データX(k)との間の次の関係式、
【数3】
G(j) =a0・F1(j)+a1・F1(M/2-1-j) +a2・F2(j)+a3・F2(M/2-1-j)
G(M-1-j)=a4・F1(j)+a5・F1(M/2-1-j) +a6・F2(j)+a7・F2(M/2-1-j),(a0〜a7は比例係数)
によって、関数値G(j)及びG(M-1-j)を求める演算を含んだ変換処理を行う離散コサイン変換回路において、
それぞれ前記F1(j)及びF2(j)の各関数値を記憶するメモリと、
それぞれ前記メモリから読み出された値を保持しうる4つのレジスタと、
前記4つのレジスタのいずれかを選択して、当該レジスタの保持する値を前記乗算器へ出力するセレクタと、
を有することを特徴とする離散コサイン変換回路。 - 請求項1記載の離散コサイン変換回路を動作する方法であって、
前記メモリからあるjに対応する前記関数値F1(j),F1(M/2-1-j),F2(j),F2(M/2-1-j)の組を読み出し、それぞれの値を前記4つのレジスタに格納し、
格納された前記関数値の組は、当該jの値に対応した前記演算式の第一式と第二式との両方の計算が行われる間、前記各レジスタに保持され、
当該保持された前記関数値の組を用いて、当該jの値に対応した前記演算式の第一式と第二式との両方の計算が行われることを特徴とする離散コサイン変換回路の動作方法。 - 請求項1記載の離散コサイン変換回路を動作する方法であって、
前記メモリからあるjに対応する前記関数値F1(j),F1(M/2-1-j),F2(j),F2(M/2-1-j)の組を読み出し、それぞれの値を前記4つのレジスタに格納し、
格納された前記関数値の組は、前記演算式に基づいて当該jの値におけるG(j),G(M-1-j),G(M/2-1-j)及びG(M/2+j)の値の計算が行われる間、前記各レジスタに保持され、
当該保持された前記関数値の組を用いて、当該jの値におけるG(j),G(M-1-j),G(M/2-1-j)及びG(M/2+j)の値の計算が行われることを特徴とする離散コサイン変換回路の動作方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01926798A JP3547971B2 (ja) | 1998-01-30 | 1998-01-30 | 離散コサイン変換回路及びその動作方法 |
US09/239,409 US6308194B1 (en) | 1998-01-30 | 1999-01-28 | Discrete cosine transform circuit and operation method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01926798A JP3547971B2 (ja) | 1998-01-30 | 1998-01-30 | 離散コサイン変換回路及びその動作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11212956A JPH11212956A (ja) | 1999-08-06 |
JP3547971B2 true JP3547971B2 (ja) | 2004-07-28 |
Family
ID=11994679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01926798A Expired - Fee Related JP3547971B2 (ja) | 1998-01-30 | 1998-01-30 | 離散コサイン変換回路及びその動作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6308194B1 (ja) |
JP (1) | JP3547971B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001059603A1 (en) * | 2000-02-09 | 2001-08-16 | Cheng T C | Fast method for the forward and inverse mdct in audio coding |
CN103257953B (zh) * | 2013-05-06 | 2016-04-13 | 福州瑞芯微电子股份有限公司 | Imdct36运算模块及方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4748579A (en) | 1985-08-14 | 1988-05-31 | Gte Laboratories Incorporated | Method and circuit for performing discrete transforms |
JP2690932B2 (ja) | 1988-03-18 | 1997-12-17 | 株式会社日立製作所 | ディジタル信号処理プロセッサおよびディシタル信号処理プロセッサシステム |
DE68928886T2 (de) | 1988-10-27 | 1999-06-02 | Matsushita Electric Ind Co Ltd | Gerät für die direkte oder umgekehrte orthogonale Transformation |
JP2725544B2 (ja) | 1992-11-12 | 1998-03-11 | 日本電気株式会社 | Dct及び逆dct演算装置並びにその演算方法 |
US5471412A (en) * | 1993-10-27 | 1995-11-28 | Winbond Electronic Corp. | Recycling and parallel processing method and apparatus for performing discrete cosine transform and its inverse |
US5831881A (en) | 1994-12-02 | 1998-11-03 | Sican Gmbh | Method and circuit for forward/inverse discrete cosine transform (DCT/IDCT) |
WO1996038794A1 (fr) * | 1995-06-01 | 1996-12-05 | Hitachi, Ltd. | Circuit de transformation en cosinus discrets |
KR0182511B1 (ko) * | 1996-02-24 | 1999-05-01 | 김광호 | 2차원 역이산 코사인 변환장치 |
US6304847B1 (en) * | 1996-11-20 | 2001-10-16 | Samsung Electronics, Co., Ltd. | Method of implementing an inverse modified discrete cosine transform (IMDCT) in a dial-mode audio decoder |
US6189021B1 (en) * | 1998-09-15 | 2001-02-13 | Winbond Electronics Corp. | Method for forming two-dimensional discrete cosine transform and its inverse involving a reduced number of multiplication operations |
-
1998
- 1998-01-30 JP JP01926798A patent/JP3547971B2/ja not_active Expired - Fee Related
-
1999
- 1999-01-28 US US09/239,409 patent/US6308194B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6308194B1 (en) | 2001-10-23 |
JPH11212956A (ja) | 1999-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8990280B2 (en) | Configurable system for performing repetitive actions | |
JP3147984B2 (ja) | デジタル信号の符号化−復号化方法およびその装置 | |
US5933360A (en) | Method and apparatus for signal compression and processing using logarithmic differential compression | |
Shao et al. | Type-IV DCT, DST, and MDCT algorithms with reduced numbers of arithmetic operations | |
JPH09511079A (ja) | 2次補間のための方法および装置 | |
JP2004294712A (ja) | 残響音生成装置およびプログラム | |
JP3547971B2 (ja) | 離散コサイン変換回路及びその動作方法 | |
JP3918034B2 (ja) | マスク限界を決定するための方法及び装置 | |
JP3547972B2 (ja) | 離散コサイン変換回路 | |
JP3524747B2 (ja) | 離散コサイン変換回路 | |
JPH06149861A (ja) | Dct及び逆dct演算装置並びにその演算方法 | |
JP2001346213A (ja) | 離散コサイン変換装置及びその離散コサイン変換方法 | |
JP2002245027A (ja) | フィルタリング処理方法およびフィルタリング処理装置 | |
JP3982983B2 (ja) | 音声信号伸長装置、及び、逆変形離散コサイン変換を実行する計算装置 | |
JP3052516B2 (ja) | 符号化データ処理装置 | |
JP2002182693A (ja) | オーディオ符号化、復号装置及びその方法並びにその制御プログラム記録媒体 | |
JP3904719B2 (ja) | サブバンド合成装置 | |
KR0151523B1 (ko) | 디지탈 오디오 디코더에 있어서 데이터 연산처리 속도 개선회로 | |
JP3006095B2 (ja) | 楽音波形発生装置 | |
EP1445706A1 (en) | Method, apparatus, and computer program for performing a modified discrete cosine transform | |
WO1994019791A1 (en) | Improved filter for use in audio compression and decompression systems | |
JP2561030B2 (ja) | 離散コサイン変換装置 | |
JPH08241301A (ja) | 直交変換処理装置 | |
JPH06274524A (ja) | 直交変換回路および逆変換回路 | |
JPH04278668A (ja) | 2次元離散コサイン変換方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040309 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040309 |
|
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: 20040330 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040415 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090423 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090423 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100423 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |