亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        MP3音頻解碼優(yōu)化算法

        2013-09-25 14:12:54田學(xué)民張曉境
        電子設(shè)計工程 2013年4期

        田學(xué)民,張曉境

        (河北工業(yè)大學(xué) 信息工程學(xué)院,天津 300401)

        在MP3播放器的設(shè)計時,提高音質(zhì)的一個關(guān)鍵因素還在與MP3解碼技術(shù),因為播放器必須先通過解碼模塊進(jìn)行MP3解碼,所以解碼技術(shù)的研究是MP3研究的一個關(guān)鍵環(huán)節(jié)。目前國內(nèi)的基于FPGA的MP3硬件解碼的研究還不是很多,而且基本都是只針對解碼系統(tǒng)中的幾個關(guān)鍵環(huán)節(jié)進(jìn)行硬件加速的SOC設(shè)計,而對于整個MP3解碼系統(tǒng)的硬件實現(xiàn)就更少了。因此,本文的重點就是研究MP3解碼算法。

        1 MP3解碼流程

        在進(jìn)行MP3解碼時,輸入的經(jīng)過壓縮的比特流首先要進(jìn)行碼流解碼。檢測數(shù)據(jù)流中的同步字來確定一幀數(shù)據(jù)的開始,提取幀頭信息,從而得到相應(yīng)的解碼參數(shù),同時分離邊信息和主數(shù)據(jù),通過對邊信息數(shù)據(jù)解碼可得到哈夫曼解碼信息和反量化信息,主數(shù)據(jù)就可以根據(jù)哈夫曼解碼信息解碼出量化之后的頻率線數(shù)據(jù)[1]。提取出的頻率線信息經(jīng)過反量化、重排序、聯(lián)合立體聲處理、混疊重建、反離散余弦變換(IMDCT)、頻率反轉(zhuǎn)、合成多相濾波器組處理后就可以得到原始的PCM音頻信號。

        1.1 Huffman解碼

        編碼后的MP3數(shù)據(jù)以幀為單位,每一幀又分為兩個粒度。這兩個粒度在解碼時相對獨立,從每一粒度中可以解碼出576個PCM數(shù)據(jù),2個粒度一共可以解出1 152個PCM數(shù)據(jù)[2]。MP3音頻幀的主數(shù)據(jù)包括比例因子和Huffman碼字。由邊帶信息參量可計算出單個聲道內(nèi)比例因子的總長度(part2_length),用參量 part2_3_length減去此值便可得到Huffman碼字的總長度。Huffman解碼還原出的576條頻率線從低頻到高頻分為3個區(qū)域:大值區(qū)、小值區(qū)和零值區(qū),如圖1所示。

        圖1 Huffman碼字結(jié)構(gòu)圖Fig.1 Chart of Huffman code

        只有大值區(qū)和小值區(qū)的頻率線會出現(xiàn)在MP3碼流中,零值區(qū)的頻率線的值全為0,因此不用編碼也不必出現(xiàn)在碼流中,解碼時只需對零值區(qū)的頻率線補(bǔ)0,直至得到576個解碼值。Huffman解碼得到的頻域值按比例因子頻帶從低到高排列[3]。

        1.2 反量化

        反量化過程是基于Huffman解碼得到的頻率線進(jìn)行的。記Huffman解碼結(jié)果為is,反量化計算結(jié)果為xr,其計算公式如下所示[4]。

        長窗中的數(shù)據(jù)用下面的公式進(jìn)行反量化:

        短窗中的數(shù)據(jù)的反量化公式為:

        在反量化公式中,頻譜值is,首先提高到原來的4/3次冪,補(bǔ)償編碼時的幅度衰減。之后再乘以符號位sign(is)。global_gain變量是每聲道中的全局量化步長?!?10”是一個系統(tǒng)常數(shù),保證合適的量化步長,同時也保證編碼過程中不會出現(xiàn)全“1”而擾亂同步字。在編碼器中比例因子采用對數(shù)量化的形式,步長為2或,用 scalefac_scale表示,若 scalefac_scale=O 則 scalefac_multiplier=0.5,否則 scalefae_multiplier=1。preflg和pretab只在長窗中有效。preflag是高頻預(yù)加重標(biāo)志,“1”表示采用高頻頇加重,pretab[sfb]的作用是查表得出每個頻率子帶的預(yù)加重值。scalefacse_l和scalefac_s對應(yīng)縮放因子解碼中所得出的長短窗的縮放因子。當(dāng)運(yùn)用短窗時,subblock_gain變量對應(yīng)子帶中更細(xì)的量化。變量win_switch_flag和block type確定是否重排序。

        1.3 重排列

        在MP3編碼算法的MDCT步驟中,長塊類型的頻域值按頻率由低到高排列;短塊類型的頻域值是按比例因子頻帶、頻率、窗的順序排列的。但是為了提高Huffman編碼效率,短塊類型的數(shù)據(jù)會重新排列,順序是比例因子頻帶、窗、頻率[5]。重排序不會改變頻率線的頻帶歸屬,即該頻帶內(nèi)的頻域值重排后仍屬于原來的比例因子頻帶。而且,該頻帶的第一條頻率線在重排后仍是第一條頻率線,最后一條頻率線在重排后仍是該頻帶的最后一條頻率線。

        1.4 立體聲處理

        采用MS立體聲模式時,碼流中傳送的是中間/旁邊(middle/side)聲道值M/S,而不是左/右聲道L/R。當(dāng)左右聲道值L/R很接近時,如編碼公式(3)所示,計算得到的M值相當(dāng)于均值,而S值幾乎為0。因此當(dāng)2個聲道高度相關(guān)時,采用這種立體聲編碼模式可以減少編碼后的比特數(shù)[6]。

        編碼公式如下所示,

        解碼時,原始的左右聲道值UR的重建公式為:

        在MS立體聲處理算法進(jìn)行硬件實現(xiàn)時,把式(4)進(jìn)行如下變換:

        當(dāng)立體聲處理進(jìn)行到左右聲道的零值區(qū)重疊處時,此后的左右聲道頻率線值全部為0,可以無需繼續(xù)計算直接得到結(jié)果0,以減少數(shù)據(jù)計算量。

        1.5 混疊重建

        純長塊類型數(shù)據(jù)和混合塊類型的長塊部分需要進(jìn)行混疊重建。對于混合塊類型,前兩個子帶屬于長塊,因此只需做一組蝶形運(yùn)算。

        對于純長塊類型的32個子帶,有31個子帶間隔,需要進(jìn)行三十一組運(yùn)算,即上個子帶的后8個頻域值和下個子帶的前8個頻域值進(jìn)行獨立的8次蝶形運(yùn)算。每次蝶形計算的輸入記為 xu、xd,輸出記為 xu′、xd′,計算公式如式(6)所示,其中的cs和ca參數(shù)由MP3音頻標(biāo)準(zhǔn)給出[7]。

        屬于零值區(qū)的子帶無需進(jìn)行蝶形計算即可直接給出0值結(jié)果,因此混疊重建算法在硬件實現(xiàn)時,仍可以利用頻率線的零值區(qū)特性來減少數(shù)據(jù)運(yùn)算量。

        1.6 IMDCT

        IMDCT的變換公式為:

        IMDCT是MDCT的反變換,是MP3解碼過程中的一個非常重要和運(yùn)算量極大的過程,它們在實際的硬件中的運(yùn)算量都非常的大,所以要對公式來進(jìn)行變形,以尋求一些快速算法。

        2 改進(jìn)的遞推算法

        在硬件實現(xiàn)中,我們選擇遞歸算法作為硬件實現(xiàn)IMDCT的方法。雖然遞歸算法簡單易實現(xiàn),但它的運(yùn)算量還是比較大,所以可以采用改進(jìn)的遞推算法以減少運(yùn)算量[8]。

        優(yōu)化算法的推導(dǎo):

        由三角函數(shù)的對稱性可知:y(n)=-y(N-1-N),n=0,1,…,M-1

        因此,只需計算M點的 y(n),便可求出 x(n)。 這樣便減少了一半的運(yùn)算量。采用正弦遞歸的方法來計算u(n):

        3 結(jié)束語

        文中分析研究了整個MP3編解碼系統(tǒng)流程,然后對IMDCT選擇了宜于硬件實現(xiàn)的遞歸算法,并給出了基于遞歸算法的優(yōu)化算法,在減少硬件資源的同時保持了運(yùn)算速度。通過MATLAB仿真工具驗證,優(yōu)化算法完全正確。

        [1]汪勇,熊前興.MP3文件格式解析[J].計算機(jī)應(yīng)用與軟件,2004(12):126-128.

        WANG Yong,XIONG Qian-xing.MP3 file format analysis[J].Computer Application and Software,2004(12):126-128.

        [2]劉宇.基于FPGA的MP3播放器的設(shè)計與實現(xiàn)[D].沈陽:東北大學(xué),2009.

        [3]毛利萍.MP3音頻編解碼運(yùn)算中IMDCT算法研究及其FPGA實現(xiàn)[D].上海:華東師范大學(xué),2007.

        [4]葉曉舟,鄧峰,曾學(xué)文,等.基于定點DSP的MP3解碼算法優(yōu)化與實現(xiàn)[J].計算機(jī)工程與應(yīng)用,2007,43(23):94-96.YE Xiao-zhou,DENG Feng,ZENG Xue-wen,et al.MP3 decoding optimization algorithm and implementation based on the fixed point DSP[J].Computer Engineering and Application,2007,43(23):94-96.

        [5]張多利,杜伏慧,杜高明,等.MP3音頻解碼器的硬件設(shè)計與FPGA實現(xiàn)[J].中國科技論文在線精品論文,2009,2(18):1879-1883.

        ZHANG Duo-li,DU Fu-hui,DU Gao-ming,et al.A case study on hardware architecture and FPGA prototype implementation of MP3 audio decoder[J].Highlights of Sciencepaper Online,2009,2(18):1879-1883.

        [6]蘇祖輝.IMDCT在MPEG/Audio-1 LayerⅢ中的遞歸實現(xiàn)[D].合肥:合肥工業(yè)大學(xué),2005.

        [7]蔣學(xué)鑫.MP3實時編解碼系統(tǒng)的研究與開發(fā)[D].成都:電子科技大學(xué),2007.

        [8]鄧寧,周源華,郭凱.運(yùn)用遞歸算法實現(xiàn)共同的MDCT和IMDCT結(jié)構(gòu)[J].電聲技術(shù),2009,(2):5-7.

        DENG Ning,ZHOU Yuan-hua,GUO Kai.Implementation of common MDCT and IMDCT structure with the recursive algorithm[J].Electroacoustic Technology,2009(2):5-7.

        无码精品人妻一区二区三区人妻斩| 日本不卡视频一区二区三区| 水蜜桃在线观看一区二区| 亚洲熟妇久久国产精品| 中国精品久久精品三级| 国产西西裸体一级黄色大片| 日本本土精品午夜视频| 成人一区二区免费中文字幕视频 | 亚洲国产成人久久综合| 性夜夜春夜夜爽aa片a| 日韩极品视频在线观看免费| 亚洲第一区二区精品三区在线| 午夜爽爽爽男女污污污网站| 亚洲精品成人网站在线观看| 国产91一区二这在线播放| 少妇人妻av一区二区三区| 国产三级a三级三级| 欧美第一黄网免费网站| 日韩中文字幕久久久经典网| 蜜桃视频在线在线观看| 国产精品无码久久综合网| 丰满少妇被猛烈进入无码| 日本啪啪一区二区三区| 色综合悠悠88久久久亚洲| 中文字幕人妻中文| 婷婷九月丁香| 日本高清一区二区三区不卡| 久久久精品国产免大香伊| 精品久久人人爽天天玩人人妻| 无码专区无码专区视频网址| 久久亚洲中文字幕精品二区| 成人国产精品一区二区视频 | 无码精品国产午夜| 国产精品综合一区久久| 天天鲁在视频在线观看| 亚洲性啪啪无码AV天堂| 久久中文字幕国产精品| 一区二区免费中文字幕| 国产精品黄色片在线看| 日韩插啊免费视频在线观看| 欧美破处在线观看|