專利名稱:一種提高速度并減小功耗的數(shù)字音頻解碼濾波方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種提高速度并減小功耗的數(shù)字音頻的解碼 濾波方法和裝置。
背景技術(shù):
以檔案壓縮格式壓縮的音樂(lè)檔,由于其檔案小容易通過(guò)網(wǎng)絡(luò)傳輸,而且其解壓縮 播放后的音質(zhì)好,因此日益在網(wǎng)絡(luò)上流通。在音頻文件處理過(guò)程解碼濾波是一個(gè)相當(dāng)重要的一個(gè)環(huán)節(jié),其中解碼器可以直接 完成各種格式音頻數(shù)據(jù)流的解碼操作,并輸出PCM或I2S格式的數(shù)字音頻信號(hào)。其中,由于音頻的數(shù)據(jù)在存儲(chǔ)時(shí)需要存儲(chǔ)的數(shù)據(jù)量非常大,目前對(duì)于音頻數(shù)據(jù)都 是采用壓縮的方式存儲(chǔ)的,而壓縮之后存儲(chǔ)的數(shù)據(jù)如果需要還原成原來(lái)的數(shù)據(jù)需要進(jìn)行解 壓縮(即解碼)。如圖1所示,在現(xiàn)有技術(shù)中普遍使用的解碼濾波技術(shù),具體步驟包括步驟101、輸入32個(gè)新輸入樣本。步驟102、將存儲(chǔ)單元已存的歷史數(shù)據(jù)進(jìn)行移位,將暫存器中的數(shù)據(jù)往右移動(dòng)64 個(gè)位置,將原本在V(960) V(1023)的數(shù)據(jù)移出暫存器,并空出V(O) V(63)的位置。步驟103、將32個(gè)新輸入樣本進(jìn)行矩陣運(yùn)算得到64個(gè)歷史數(shù)據(jù)V并保存到暫存器 空出的V(O) V(63),其中矩陣運(yùn)算的具體的實(shí)現(xiàn)公式為 當(dāng) i=0,則 V0 為 根據(jù)公式1則可計(jì)算得到64個(gè)歷史數(shù)據(jù)V。步驟104、利用所述新輸入樣本計(jì)算得到的歷史數(shù)據(jù)建立512個(gè)值的向量U并保 存,具體的實(shí)現(xiàn)公式為U[i · 64+j] = V[i · 128+j]i = 0· · · 7,j = 0· · · 31U[i · 64+32+j] = V[i · 128+96+j] i = 0. · · 7,j = 0. · · 31步驟105、加窗將新建立的向量U乘上常數(shù)D得到向量W并保存Wi = Ui · Di i = 0.. 511其中D是常系數(shù),通過(guò)查表得到。步驟106、將每間隔32個(gè)位置的W累加起來(lái),得到輸出樣本S(j),j =0 31,其 中具體的實(shí)現(xiàn)公式為
(公式 2)當(dāng)j=0,則 S。為
S0 = ff0+32*o+Wo+32*i+........+W0+32*15 步驟 107、輸出 32 個(gè)輸出樣本數(shù)據(jù) Sj,j = 0 31。綜上所述,現(xiàn)有技術(shù)對(duì)數(shù)據(jù)進(jìn)行解碼濾波時(shí),在進(jìn)行矩陣運(yùn)算、建立新向量時(shí)必須 每次都將存入存儲(chǔ)單元中的數(shù)據(jù)讀出然后再寫(xiě)入,從而導(dǎo)致運(yùn)算速度慢功耗大。
發(fā)明內(nèi)容
本發(fā)明提供一種提高速度并減小功耗的數(shù)字音頻處理方法和裝置,用于解決現(xiàn)有 技術(shù)中多次重復(fù)讀寫(xiě)存儲(chǔ)器中的數(shù)據(jù)導(dǎo)致運(yùn)算速度慢功耗大的問(wèn)題。一種提高速度并減小功耗的數(shù)字音頻解碼濾波方法,其中解碼濾波處理的數(shù)字音 頻數(shù)據(jù)作為歷史數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中,所述存儲(chǔ)器中包括若干個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元 對(duì)應(yīng)一個(gè)存儲(chǔ)地址,用于存儲(chǔ)一個(gè)歷史數(shù)據(jù),包括A.輸入32個(gè)子帶樣本數(shù)據(jù);B.對(duì)所述存儲(chǔ)器中的歷史數(shù)據(jù)進(jìn)行移位;C.對(duì)所述32個(gè)子帶樣本數(shù)據(jù)進(jìn)行矩陣運(yùn)算,得到歷史數(shù)據(jù),并將得到的歷史數(shù)據(jù) 存入所述存儲(chǔ)器移位后空出的存儲(chǔ)單元中;D.從所述存儲(chǔ)器存儲(chǔ)地址為t的存儲(chǔ)單元中讀出歷史數(shù)據(jù),當(dāng)?shù)趇次從存儲(chǔ)器中 讀出歷史數(shù)據(jù),讀出數(shù)據(jù)的存儲(chǔ)地址t為i乘上預(yù)設(shè)的第一偏移量M,并將得到的乘積加上 第二偏移量j和/第三偏移量N,t = j+M*i,當(dāng)i為偶數(shù)時(shí);t = j+M*i+N,當(dāng)i為奇數(shù)時(shí); t = j,當(dāng)i為0時(shí);其中i = 0,1,. . .,15 ;M、N和j為整數(shù),并且保證所得的t小于等于存 儲(chǔ)器中存儲(chǔ)單元總數(shù);E.將讀出的每個(gè)歷史數(shù)據(jù)乘以對(duì)應(yīng)的常系數(shù),將乘以常系數(shù)后的所有歷史數(shù)據(jù)進(jìn) 行累加得到一個(gè)輸出樣本數(shù)據(jù)。一種提高速度并減小功耗的數(shù)字音頻解碼濾波裝置,該裝置包括存儲(chǔ)模塊,用于存儲(chǔ)作為歷史數(shù)據(jù)的數(shù)據(jù)音頻數(shù)據(jù),所述存儲(chǔ)模塊包含若干個(gè)存 儲(chǔ)單元,每個(gè)存儲(chǔ)單元中存儲(chǔ)一個(gè)歷史數(shù)據(jù);歷史數(shù)據(jù)生成模塊,用于對(duì)所述存儲(chǔ)模塊中的歷史數(shù)據(jù)進(jìn)行移位,并輸入32個(gè)子 帶樣本數(shù)據(jù),對(duì)所述32個(gè)子帶樣本數(shù)據(jù)進(jìn)行矩陣運(yùn)算,得到歷史數(shù)據(jù),并將得到的歷史數(shù) 據(jù)存入所述存儲(chǔ)模塊移位后空出的存儲(chǔ)單元中;輸出樣本數(shù)據(jù)生成模塊,用于從所述存儲(chǔ)模塊存儲(chǔ)地址為t的存儲(chǔ)單元中讀出歷 史數(shù)據(jù),當(dāng)?shù)趇次從存儲(chǔ)器中讀出歷史數(shù)據(jù),讀出數(shù)據(jù)的存儲(chǔ)地址t為i乘上預(yù)設(shè)的第一偏 移量M,并將得到的乘積加上第二偏移量j和/第三偏移量N,其中,t = j+M*i,當(dāng)i為偶數(shù) 時(shí);t = j+M*i+N,當(dāng)i為奇數(shù)時(shí);t = j,當(dāng)i為0時(shí);i = 0,1,. . .,15 ;M、N和j為整數(shù),并 且保證所得的t小于等于存儲(chǔ)器中存儲(chǔ)單元總數(shù),將讀出的每個(gè)歷史數(shù)據(jù)乘以獲得的對(duì)應(yīng) 的常系數(shù),將乘以常系數(shù)后的所有歷史數(shù)據(jù)進(jìn)行累加得到一個(gè)輸出樣本數(shù)據(jù)。本發(fā)明實(shí)施例通過(guò)將現(xiàn)有技術(shù)中的加窗、建立向量、累加三個(gè)步驟進(jìn)行合并使得 一次讀出數(shù)據(jù)便可完成上述三個(gè)步驟,從而減少了運(yùn)算的時(shí)間和讀寫(xiě)存儲(chǔ)單元的功耗。
圖1為現(xiàn)有技術(shù)中解碼濾波的流程圖;圖2為本發(fā)明實(shí)施例一種提高速度并減小功耗的數(shù)字音頻解碼濾波方法的流程 圖;圖3為利用本發(fā)明實(shí)施例的方法實(shí)現(xiàn)解碼濾波的流程圖;圖4為本發(fā)明實(shí)施例計(jì)算每個(gè)輸出樣本數(shù)據(jù)S[j]的流程圖;圖5為本發(fā)明實(shí)施例一種提高速度并減小功耗的數(shù)字音頻解碼濾波裝置的裝置 圖。
具體實(shí)施例方式本發(fā)明實(shí)施例一種提高速度并減小功耗的數(shù)字音頻解碼濾波方法和裝置,該方法 包括解碼濾波處理的數(shù)字音頻數(shù)據(jù)作為歷史數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中,所述存儲(chǔ)器中包括若 干個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元對(duì)應(yīng)一個(gè)存儲(chǔ)地址,用于存儲(chǔ)一個(gè)歷史數(shù)據(jù)A.輸入32個(gè)子 帶樣本數(shù)據(jù);B.對(duì)所述存儲(chǔ)器中的歷史數(shù)據(jù)進(jìn)行移位;C.對(duì)所述32個(gè)子帶樣本數(shù)據(jù)進(jìn)行 矩陣運(yùn)算,得到歷史數(shù)據(jù),并將得到的歷史數(shù)據(jù)存入所述存儲(chǔ)器移位后空出的存儲(chǔ)單元中; D.從所述存儲(chǔ)器存儲(chǔ)地址為t的存儲(chǔ)單元中讀出歷史數(shù)據(jù),當(dāng)?shù)趇次從存儲(chǔ)器中讀出歷史 數(shù)據(jù),讀出數(shù)據(jù)的存儲(chǔ)地址t為i乘上預(yù)設(shè)的第一偏移量M,并將得到的乘積加上第二偏移 量j和/第三偏移量N,t = j+M*i,當(dāng)i為偶數(shù)時(shí);t = j+M*i+N,當(dāng)i為奇數(shù)時(shí);t = j,當(dāng) i為0時(shí);其中i = 0,1,. . .,15 ;M、N和j為整數(shù),并且保證所得的t小于等于存儲(chǔ)器中存 儲(chǔ)單元總數(shù);E.將讀出的每個(gè)歷史數(shù)據(jù)乘以對(duì)應(yīng)的常系數(shù),將乘以常系數(shù)后的所有歷史數(shù) 據(jù)進(jìn)行累加得到一個(gè)輸出樣本數(shù)據(jù)。為了方便描述和使本發(fā)明實(shí)施例描述更為清楚,以下提供幾個(gè)與所述存儲(chǔ)器相關(guān) 的名詞定義,包括存儲(chǔ)器由若干個(gè)存儲(chǔ)單元組成,每個(gè)存儲(chǔ)單元可存放一個(gè)數(shù)據(jù),并且每個(gè)存儲(chǔ)單 元的位置都有一個(gè)編號(hào),即地址;存儲(chǔ)方式若存儲(chǔ)器中包含η個(gè)存儲(chǔ)單元,存儲(chǔ)地址依次為0,1,2,3. . . η_1 ;存儲(chǔ)地址是指某一存儲(chǔ)單元距離存儲(chǔ)器起始單元偏移了多少個(gè)存儲(chǔ)單元。如圖2所示,本發(fā)明實(shí)施例一種提高速度并減小功耗的數(shù)字音頻解碼濾波方法, 當(dāng)解碼濾波器對(duì)存儲(chǔ)在存儲(chǔ)器中的數(shù)字音頻數(shù)據(jù)進(jìn)行處理時(shí),存放在該存儲(chǔ)器中的數(shù)字音 頻數(shù)據(jù)被稱為歷史數(shù)據(jù),該方法具體包括步驟201、輸入32個(gè)子帶樣本(也稱為輸入樣本數(shù)據(jù)),并將該32個(gè)子帶樣本(S_ in)存入暫存器中。步驟202、對(duì)所述存儲(chǔ)器中的歷史數(shù)據(jù)進(jìn)行移位。步驟203、對(duì)所述32個(gè)子帶樣本數(shù)據(jù)進(jìn)行矩陣運(yùn)算,得到歷史數(shù)據(jù),并將得到的歷 史數(shù)據(jù)寫(xiě)入所述存儲(chǔ)器移位后空出的存儲(chǔ)單元中。其中,當(dāng)存儲(chǔ)器的存儲(chǔ)單元總數(shù)為1024,得到的歷史數(shù)據(jù)位64個(gè)則,所述矩陣運(yùn) 算的公式為 Vi=YjNik-SJnk=Y4 cos為運(yùn)算系數(shù),在本實(shí)施例中Nik=cos (16 + 0(2^ + 1)^-。S_in是輸入樣本,在本實(shí)施例中每個(gè)輸入樣本包括32個(gè)樣本。步驟204,從所述存儲(chǔ)器中存儲(chǔ)器地址為t的單元中讀出歷史數(shù)據(jù),讀出的歷史數(shù) 據(jù)的編號(hào)為i (即第幾次從存儲(chǔ)器中讀出數(shù)據(jù)),讀出數(shù)據(jù)的存儲(chǔ)地址t為i乘上預(yù)設(shè)的第 一偏移量M,并將得到的乘積加上第二偏移量j和/第三偏移量N,其中,i = 0,1,...,15, 當(dāng)i為偶數(shù)時(shí),t = j+M*i,當(dāng)i為奇數(shù)時(shí),t = j+M*i+N,t、M、N和j均為整數(shù),并且保證所 得的t小于等于存儲(chǔ)器中存儲(chǔ)單元總數(shù)。另外,當(dāng)所述存儲(chǔ)器中的歷史數(shù)據(jù)總數(shù)是1024個(gè)時(shí),M為64,N為32,當(dāng)存儲(chǔ)器中 的歷史數(shù)據(jù)總數(shù)不同時(shí),則M值和N值有所不同。步驟205、獲取每個(gè)歷史數(shù)據(jù)對(duì)應(yīng)的常系數(shù),并將讀出的每個(gè)歷史數(shù)據(jù)乘以獲得的 對(duì)應(yīng)的常系數(shù),將乘以常系數(shù)后的16個(gè)歷史數(shù)據(jù)進(jìn)行累加得到一個(gè)輸出樣本數(shù)據(jù)。在實(shí)際的應(yīng)用環(huán)境中,每次一般都是輸出32個(gè)輸出樣本數(shù)據(jù)。所以,本發(fā)明實(shí)施 例還包括步驟206,判斷輸出樣本數(shù)據(jù)的總個(gè)數(shù)是否等于32,如果不等于,則轉(zhuǎn)入步驟207, 否則轉(zhuǎn)入步驟208。因?yàn)榈玫矫總€(gè)輸出樣本數(shù)據(jù)的順序?qū)敵鰳颖緮?shù)據(jù)的計(jì)算結(jié)果不會(huì)造成影響,所 以在計(jì)算的過(guò)程中j可以無(wú)序的取32個(gè)整數(shù);步驟207,更新j值,并轉(zhuǎn)入步驟204。在更新j值的時(shí)候?qū)嵤┑姆绞娇梢杂卸喾N第一種,j從0到31 ;第二種,j從31 到0 ;第三種,j不重復(fù)地取0 31間的任意數(shù)據(jù)。步驟208,輸出得到的32個(gè)輸出樣本數(shù)據(jù),結(jié)束本流程。其中,當(dāng)選擇的存儲(chǔ)設(shè)備內(nèi)存儲(chǔ)1024個(gè)歷史數(shù)據(jù),則M的取值為64,N的取值為 32,則可以通過(guò)公式3計(jì)算得到輸出樣本數(shù)據(jù)。公式3為Sj =玄 V[t] * D0+32*i] j = 0· · · 31……(3)
I=Ot = j+64*i, for i = 0,2,4,6,8,10,12,14t = j+64*i+32, for i = 1,3,5,7,9,11,13,15V[t]為歷史數(shù)據(jù),D為常系數(shù),j為輸出樣本編號(hào)。當(dāng)j = 0時(shí),第一個(gè)輸出樣本數(shù)據(jù)Stl具體表示為5'0=^V[t]*DO+32*i]
/=0二 V
* D
+V
* D
+V[&f64*2]* D
+ "... +V[Of64*15+32] * D[(H-32*15]= V
* D
+V[96] * D[32]+V[128] * D[64]屮■... +V[992] * D[480]常系數(shù)D通過(guò)查表得到,其中,在查表時(shí)通過(guò)所述常系數(shù)的下標(biāo)[j+32i]作為查表 系數(shù),查找保存查表系數(shù)與常系數(shù)對(duì)應(yīng)關(guān)系的映射表,獲得每個(gè)歷史數(shù)據(jù)對(duì)應(yīng)的常系數(shù)。針對(duì)現(xiàn)有技術(shù)中音頻文件解碼濾波處理流程為例,對(duì)本發(fā)明實(shí)施例做進(jìn)一步的說(shuō)
6明,如圖3所示,具體包括步驟步驟301、將32個(gè)輸入樣本(S_in)存入輸入樣本存儲(chǔ)器。步驟302、將歷史數(shù)據(jù)存儲(chǔ)器中已存的1024個(gè)歷史數(shù)據(jù)V進(jìn)行移位,將原本在 V(960) V(1023)的數(shù)據(jù)移出歷史數(shù)據(jù)存儲(chǔ)單元,并空出V(O) V(63)的位置。步驟303、從所述輸入樣本存儲(chǔ)單元中讀出輸入樣本S_in,并進(jìn)行矩陣運(yùn)算,得到 64個(gè)歷史數(shù)據(jù),將計(jì)算得到的歷史數(shù)據(jù)寫(xiě)入所述歷史數(shù)據(jù)存儲(chǔ)器空出的位置V (0) V (63) 中。其中,矩陣運(yùn)算的公式為
3131 Γπ —K =ZA^riSjTijfc =Zcos (16 +0(2免 + 1)— -S_ink i = 0· · · 63 ;k = 0· · 31. N
k=0k=0 L64」
為運(yùn)算系數(shù),在本實(shí)施例中Nik=COS[(16 + 0(2hl)告。S_in是輸入樣本,在本實(shí)施例中每個(gè)輸入樣本包括32個(gè)樣本。步驟304、可以通過(guò)公式3計(jì)算得到32個(gè)輸出樣本數(shù)據(jù)。公式3為Sj = f]Y[t] * D[j+32*i] j = 0· · · 31……(3)
/=0t = j+64*i,for i = 0,2,4,6,8,10,12,14。t = j+64*i+32,for i = 1,3,5,7,9,11,13,15其中,計(jì)算每一個(gè)S[j]具體流程步驟為for(j = 0 ;j < 32 ;j++){sum = 0 ;for(i = 0 ;i < 16 ;i++) //i 取 16 個(gè)數(shù){if(i% 2 = = 0)//在 i(i = 0,2,4,6,8,. . .,14)取偶數(shù)時(shí)應(yīng)用下述計(jì) 算得到S[j]。sum+= D[j+32*i]*V[j+64*i];else//當(dāng)i (i = 1,3,5,7,9,. . .,15)為奇數(shù)時(shí)應(yīng)用下述公式得到 S[j]。sum+= D[j+32*i]*V[j+64*i+32];}S[j] = sum ;}其中,計(jì)算每一個(gè)S[j]的流程圖4所示。如圖5所示,本發(fā)明實(shí)施例還提供一種提高速度并減小功耗的數(shù)字音頻的解碼濾 波裝置,該裝置具體包括讀取模塊501、計(jì)算模塊502和判定模塊503 存儲(chǔ)模塊501,用于存儲(chǔ)作為歷史數(shù)據(jù)的數(shù)據(jù)音頻數(shù)據(jù),所述存儲(chǔ)模塊包含若干個(gè) 存儲(chǔ)單元,每個(gè)存儲(chǔ)單元中存儲(chǔ)一個(gè)歷史數(shù)據(jù);
歷史數(shù)據(jù)生成模塊502,用于對(duì)所述存儲(chǔ)模塊中的歷史數(shù)據(jù)進(jìn)行移位,并輸入32 個(gè)子帶樣本數(shù)據(jù),對(duì)所述32個(gè)子帶樣本數(shù)據(jù)進(jìn)行矩陣運(yùn)算,得到歷史數(shù)據(jù),并將得到的歷 史數(shù)據(jù)存入所述存儲(chǔ)模塊移位后空出的存儲(chǔ)單元中;輸出樣本數(shù)據(jù)生成模塊503,用于從所述存儲(chǔ)模塊501中存儲(chǔ)地址為t的存儲(chǔ)單 元中讀出歷史數(shù)據(jù),當(dāng)?shù)趇次從存儲(chǔ)器中讀出歷史數(shù)據(jù),讀出數(shù)據(jù)的存儲(chǔ)地址t為i乘上預(yù) 設(shè)的第一偏移量M,并將得到的乘積加上第二偏移量j和/第三偏移量N,其中,t = j+M*i, 當(dāng)i為偶數(shù)時(shí);t = j+M*i+N,當(dāng)i為奇數(shù)時(shí);t = j,當(dāng)i為0時(shí);i = 0,1,. . .,15 ;M、N和 j為整數(shù),并且保證計(jì)算后的t小于等于存儲(chǔ)器中存儲(chǔ)單元總數(shù),將乘以常系數(shù)后的所有歷 史數(shù)據(jù)進(jìn)行累加得到一個(gè)輸出樣本數(shù)據(jù)。另外,為了循環(huán)的計(jì)算出32個(gè)輸出樣本數(shù)據(jù),本發(fā)明實(shí)施例所述提供的裝置還包 括判定模塊504,用于判斷輸出樣本數(shù)據(jù)的總個(gè)數(shù)是否為32,如果是,則將得到的所 有輸出樣本數(shù)據(jù)輸出,否則,更新j的值,并將更新后的j值發(fā)送給所述輸出樣本數(shù)據(jù)生成 模塊503??梢?jiàn)現(xiàn)有技術(shù)在解碼濾波過(guò)程中,需要讀存儲(chǔ)單元的次數(shù)為1536次(512次讀 V(i)+512次讀U+512次讀W);另外寫(xiě)存儲(chǔ)單元的次數(shù)為1056次(512次讀U+512次寫(xiě)W+32 次寫(xiě)S(j))所以在上述解碼濾波過(guò)程中需要訪問(wèn)存儲(chǔ)單元的次數(shù)為2592次。應(yīng)用本發(fā)明實(shí)施例提供的方法,訪問(wèn)存儲(chǔ)單元的次數(shù)則降為544次包括512次讀 V(i)加上32次寫(xiě)S(J)0通過(guò)上述比較可知,本發(fā)明實(shí)施例所提供的方法減少了對(duì)存儲(chǔ)單元的讀寫(xiě),對(duì)存 儲(chǔ)單元的訪問(wèn)次數(shù)僅為常規(guī)算法的21%。因此減少了運(yùn)算時(shí)間和讀寫(xiě)存儲(chǔ)單元的功耗。另外,減少可存儲(chǔ)單元的存儲(chǔ)量節(jié)省了大量的存儲(chǔ)空間。本發(fā)明所述的方法并不限于具體實(shí)施方式
中所述的實(shí)施例,本領(lǐng)域技術(shù)人員根據(jù) 本發(fā)明的技術(shù)方案得出其它的實(shí)施方式,同樣屬于本發(fā)明的技術(shù)創(chuàng)新范圍。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
一種提高速度并減小功耗的數(shù)字音頻解碼濾波方法,其中解碼濾波處理的數(shù)字音頻數(shù)據(jù)作為歷史數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中,所述存儲(chǔ)器中包括若干個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元對(duì)應(yīng)一個(gè)存儲(chǔ)地址,用于存儲(chǔ)一個(gè)歷史數(shù)據(jù),其特征在于,包括A.輸入32個(gè)子帶樣本數(shù)據(jù);B對(duì)所述存儲(chǔ)器中的歷史數(shù)據(jù)進(jìn)行移位;C.對(duì)所述32個(gè)子帶樣本數(shù)據(jù)進(jìn)行矩陣運(yùn)算,得到歷史數(shù)據(jù),并將得到的歷史數(shù)據(jù)存入所述存儲(chǔ)器移位后空出的存儲(chǔ)單元中;D.從所述存儲(chǔ)器存儲(chǔ)地址為t的存儲(chǔ)單元中讀出歷史數(shù)據(jù),當(dāng)?shù)趇次從存儲(chǔ)器中讀出歷史數(shù)據(jù),讀出數(shù)據(jù)的存儲(chǔ)地址t為i乘上預(yù)設(shè)的第一偏移量M,并將得到的乘積加上第二偏移量j和/第三偏移量N,t=j(luò)+M*i,當(dāng)i為偶數(shù)時(shí);t=j(luò)+M*i+N,當(dāng)i為奇數(shù)時(shí);t=j(luò),當(dāng)i為0時(shí);其中i=0,1,...,15;M、N和j為整數(shù),并且保證所得的t小于等于存儲(chǔ)器中存儲(chǔ)單元總數(shù);E.將讀出的每個(gè)歷史數(shù)據(jù)乘以對(duì)應(yīng)的常系數(shù),將乘以常系數(shù)后的所有歷史數(shù)據(jù)進(jìn)行累加得到一個(gè)輸出樣本數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,在步驟E之后,該方法進(jìn)一步包括F.判斷輸出樣本數(shù)據(jù)的總個(gè)數(shù)是否為32,如果是,則將得到的所有輸出樣本數(shù)據(jù)輸 出,結(jié)束本流程,否則,更新j的值,并轉(zhuǎn)入步驟D。
3.如權(quán)利要求2所述的方法,其特征在于,所述j的初始值為0,所述步驟F包括判斷輸出樣本數(shù)據(jù)的總個(gè)數(shù)是否為32,如果是,則將得到的所有輸出樣本數(shù)據(jù)輸出,結(jié)束本流程,否則,將j加1,并轉(zhuǎn)入步驟D。
4.如權(quán)利要求1所述的方法,其特征在于,當(dāng)所述存儲(chǔ)器中的歷史數(shù)據(jù)總數(shù)是1024個(gè) 時(shí),M的取值為64,N的取值為32。
5.一種提高速度并減小功耗的數(shù)字音頻解碼濾波裝置,其特征在于,該裝置包括存儲(chǔ)模塊,用于存儲(chǔ)作為歷史數(shù)據(jù)的數(shù)據(jù)音頻數(shù)據(jù),所述存儲(chǔ)模塊包含若干個(gè)存儲(chǔ)單 元,每個(gè)存儲(chǔ)單元中存儲(chǔ)一個(gè)歷史數(shù)據(jù);歷史數(shù)據(jù)生成模塊,用于對(duì)所述存儲(chǔ)模塊中的歷史數(shù)據(jù)進(jìn)行移位,并輸入32個(gè)子帶樣 本數(shù)據(jù),對(duì)所述32個(gè)子帶樣本數(shù)據(jù)進(jìn)行矩陣運(yùn)算,得到歷史數(shù)據(jù),并將得到的歷史數(shù)據(jù)存 入所述存儲(chǔ)模塊移位后空出的存儲(chǔ)單元中;輸出樣本數(shù)據(jù)生成模塊,用于從所述存儲(chǔ)模塊存儲(chǔ)地址為t的存儲(chǔ)單元中讀出歷史數(shù) 據(jù),當(dāng)?shù)趇次從存儲(chǔ)器中讀出歷史數(shù)據(jù),讀出數(shù)據(jù)的存儲(chǔ)地址t為i乘上預(yù)設(shè)的第一偏移量 M,并將得到的乘積加上第二偏移量j和/第三偏移量N,其中,t = j+M*i,當(dāng)i為偶數(shù)時(shí);t =j+M*i+N,當(dāng)i為奇數(shù)時(shí);t = j,當(dāng)i為0時(shí);i = 0,1,...,15 ;M、N和j為整數(shù),并且保 證所得的t小于等于存儲(chǔ)器中存儲(chǔ)單元總數(shù),將讀出的每個(gè)歷史數(shù)據(jù)乘以獲得的對(duì)應(yīng)的常 系數(shù),將乘以常系數(shù)后的所有歷史數(shù)據(jù)進(jìn)行累加得到一個(gè)輸出樣本數(shù)據(jù)。
6.如權(quán)利要求5所述的裝置,其特征在于,該裝置還包括判定模塊,用于判斷輸出樣本數(shù)據(jù)的總個(gè)數(shù)是否為32,如果是,則將得到的所有輸出樣 本數(shù)據(jù)輸出,否則,更新j的值,并將更新后的j值發(fā)送給所述輸出樣本數(shù)據(jù)生成模塊。
全文摘要
本發(fā)明公開(kāi)了一種提高速度并減小功耗的數(shù)字音頻的解碼濾波方法和裝置,包括A.輸入32個(gè)子帶樣本;B.對(duì)存儲(chǔ)在存儲(chǔ)器中的歷史數(shù)據(jù)進(jìn)行移位;C.對(duì)32個(gè)子帶樣本進(jìn)行矩陣運(yùn)算,得到歷史數(shù)據(jù),并將所述歷史數(shù)據(jù)存入所述存儲(chǔ)器移位后空出的存儲(chǔ)單元中;D.從所述存儲(chǔ)器中存儲(chǔ)地址為t的存儲(chǔ)單元中讀出歷史數(shù)據(jù),其中,t=j(luò)+M*i,當(dāng)i為偶數(shù)時(shí);t=j(luò)+M*i+N,當(dāng)i為奇數(shù)時(shí);t=j(luò),當(dāng)i為0時(shí);其中i=0,1,...,15;M、N和j為整數(shù),并且保證所得的t小于等于存儲(chǔ)器中存儲(chǔ)單元總數(shù);將讀出的每個(gè)歷史數(shù)據(jù)乘以對(duì)應(yīng)的常系數(shù),將乘以常系數(shù)后的所有歷史數(shù)據(jù)進(jìn)行累加得到一個(gè)輸出樣本數(shù)據(jù)。應(yīng)用本發(fā)明公開(kāi)的方法解決了現(xiàn)有技術(shù)在解碼濾波的時(shí)候必須重復(fù)讀寫(xiě)存儲(chǔ)單元造成運(yùn)算速度慢功耗大的問(wèn)題。
文檔編號(hào)G10L19/00GK101930739SQ20091014865
公開(kāi)日2010年12月29日 申請(qǐng)日期2009年6月25日 優(yōu)先權(quán)日2009年6月25日
發(fā)明者張媛媛 申請(qǐng)人:炬力集成電路設(shè)計(jì)有限公司