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

        ?

        一種軟硬件協(xié)同的WMA解碼器的設(shè)計(jì)

        2014-09-10 01:01:50朱彩霞
        關(guān)鍵詞:游程解碼器字節(jié)

        朱彩霞

        (淮安信息職業(yè)技術(shù)學(xué)院 電子工程學(xué)院,江蘇 淮安 223003)

        0 引言

        隨著人們對(duì)于便攜播放的需求越來越高和集成電路生產(chǎn)工藝的越來越精密,采用軟硬件協(xié)調(diào)的方法實(shí)現(xiàn)超低功耗音頻解碼已成為一種趨勢(shì)。目前,大部分的MP3解碼和WMA解碼都是使用DSP實(shí)現(xiàn),該方法的缺點(diǎn)是軟件開發(fā)難度大、功耗也比較大。采用純硬件實(shí)現(xiàn)的缺點(diǎn)在于格式擴(kuò)展不方便、設(shè)計(jì)周期長(zhǎng)和文件兼容性不夠。ARM7TDMI具有成本低、功耗低、代碼密度高和容易開發(fā)等特點(diǎn)。硬件設(shè)計(jì)具有低功耗、低成本等優(yōu)點(diǎn),其缺點(diǎn)是一旦生產(chǎn)就不可更改,所以一般設(shè)計(jì)都是把沒有兼容性需求、計(jì)算量大的部分采用硬件設(shè)計(jì),而有兼容性需求的部分采用軟件設(shè)計(jì)[1]。

        1 WMA 簡(jiǎn)介

        WMA是微軟公司提出的一種音頻標(biāo)準(zhǔn),是Microsoft Windows Media技術(shù)中的一部分,它包含了對(duì)音頻格式的一個(gè)完整定義,包括音頻編碼和加密。相比于MP3,它具有更好的高頻音質(zhì)和更低的壓縮率,相比于AAC,它具有更高的接受度[2],又因?yàn)閃MA具有DRM版權(quán)保護(hù),所以具有更好的市場(chǎng)價(jià)值。

        圖1給出了WMA的解碼過程,通過游程解碼(Run-Level Decoder)和控制信息解碼得到殘差系數(shù),反量化(Inverse Quantizer)后得到頻域系數(shù),噪聲產(chǎn)生模塊用于生成舒適噪聲以改善頻域過于集中時(shí)候的音質(zhì),多聲道變換得到立體聲的雙聲道單獨(dú)系數(shù),最后通過反重疊變換(Inverse MLT)得到時(shí)域音頻信號(hào)[3]。

        圖1 WMA的解碼過程

        在圖1中,Run-Level Decoder和Inverse MLT部分采用硬件實(shí)現(xiàn),其它部分采用軟件實(shí)現(xiàn)。Run-Level Decoder的運(yùn)算單位都是BIT,ARM7的指令運(yùn)算單位都是字節(jié),用軟件的方式會(huì)浪費(fèi)功耗。Inverse MLT 類似FFT運(yùn)算,該步驟在整個(gè)WMA解碼中占大約40%的MIPS,采用硬件會(huì)大大減少功耗[4]。

        2 解碼器設(shè)計(jì)

        WMA解碼的設(shè)計(jì)過程如圖2所示。

        圖2 WMA解碼的設(shè)計(jì)圖

        ARM7上運(yùn)行的系統(tǒng)軟件采用UCOS-II + UCFS,采用FAT32文件系統(tǒng),WMA存儲(chǔ)在SD卡中,解碼器首先讀出WMA文件,進(jìn)行ASF頭解析,判斷其是否為正確的WMA文件,如果是,則繼續(xù)解析ASF頭、Packet、Frame和SubFrame等。

        2.1 游程解碼(Run-Level Decoder)

        游程解碼的讀碼流文件的過程如表1所示。

        讀比特的過程和游程解碼VLC采用硬件設(shè)計(jì),RLD解碼器具有兩種功能:一種是ShowBits和GetBits,ShowBits是查看nLength長(zhǎng)度比特的數(shù)值,不移動(dòng)硬件bitstream的指針,GetBits是讀取nLength長(zhǎng)度比特的數(shù)值并且移動(dòng)硬件bitstream的指針;另一種功能是自動(dòng)解碼VLC的系數(shù),解碼系數(shù)自動(dòng)寫到SRAM。

        在解碼WMA文件時(shí),首先讀出SD卡中的WMA文件,因?yàn)閃MA文件是ASF格式封裝的,而MP3/FLAC/APE等文件都不是ASF文件,所以通過文件前四個(gè)字節(jié)可以檢測(cè)文件是否確實(shí)是WMA格式的文件,防止錯(cuò)誤文件解碼。正確文件解碼開始首先通過AHB填寫256個(gè)字節(jié)到RLD的內(nèi)部RAM,稱為初始化過程。

        讀比特的過程如下:

        uint_32 bs_read( sint_32 i_count )

        {

        DEC_BSI_UVLC_CTL_REG = (4<<6) | (i_count<<1) | 1 ;

        do{

        status = DEC_BSI_UVLC_STA_REG ;

        }while( (status&1)==0) ;

        return (status>>8) ;

        }

        uint_32 bs_show( sint_32 i_count )

        {

        DEC_BSI_UVLC_CTL_REG = (5<<6) | (i_count<<1) | 1 ;

        do{

        status = DEC_BSI_UVLC_STA_REG ;

        }while( (status&1)==0) ;

        return (status>>8) ;

        }

        表1 游程解碼語法描述

        Run-Level Decoder解碼的流程如圖3所示。

        圖3 Run-Level Decoder解碼

        首先CPU通過AHB接口填寫256個(gè)字節(jié)數(shù)據(jù)到RLD的內(nèi)部RAM,ShowBits和GetBits時(shí),只需要配置一個(gè)寄存器,然后讀取狀態(tài)寄存器,內(nèi)部運(yùn)算完成后,讀取數(shù)據(jù)寄存器的內(nèi)容,每次最多讀取24Bit;

        在殘差系數(shù)VLD解碼時(shí),解碼過程不需要CPU干涉,由CPU配置num_coded_coeff參數(shù)到寄存器,然后啟動(dòng)VLD解碼器,軟件處于等待狀態(tài),如果256個(gè)字節(jié)數(shù)據(jù)用完,內(nèi)部硬件設(shè)置標(biāo)志位并暫停解碼,CPU根據(jù)狀態(tài)寄存器標(biāo)志位重新填寫256個(gè)字節(jié),直到硬件解碼完畢。VLD硬件解碼首先初始化RAM輸出,全部寫0,然后將解碼數(shù)據(jù)寫到RAM中,由CPU來讀取。

        LMIT解碼功能示意圖見圖4。

        圖4 IMLT解碼功能示意圖

        2.2 IMLT解碼

        IMLT解碼包含兩個(gè)部分,DCT-IV和加窗計(jì)算。其中DCT-IV的計(jì)算是主要部分,使用了兩個(gè)模塊,IMLT根據(jù)CPU配置輸入和輸出的RAM地址,到系統(tǒng)RAM中讀取輸入,把DCT-IV計(jì)算后的結(jié)果寫到輸入RAM中,加窗計(jì)算從輸出RAM的讀取數(shù)據(jù),計(jì)算完成后寫回輸出RAM。

        DCT-IV的數(shù)學(xué)表達(dá)如下:

        for0≤N<2n

        在計(jì)算的時(shí)候采用快速算法,首先進(jìn)行preTwiddle,該模塊是把輸入數(shù)據(jù)進(jìn)行FFT轉(zhuǎn)換,計(jì)算復(fù)數(shù)輸入,然后繼續(xù)FFT運(yùn)算,最后調(diào)用postTwiddle把FFT運(yùn)算的結(jié)果轉(zhuǎn)換為DCT-IV的輸出,這些運(yùn)算的中間結(jié)果都存儲(chǔ)輸出RAM中。

        圖5為IMLT硬件解碼圖,其中DCT_IV_CTRL是總體控制模塊,負(fù)責(zé)和CPU交互,模塊內(nèi)部包含解碼控制狀態(tài)機(jī),用于啟動(dòng)和停止四個(gè)流程的模塊,在四個(gè)模塊的工作全部完成后,產(chǎn)生中斷通知CPU。四個(gè)模塊都是采用狀態(tài)機(jī)設(shè)計(jì),每個(gè)模塊之間沒有關(guān)系,數(shù)據(jù)的存取都是來自RAM,這樣可以最大限度的實(shí)現(xiàn)模塊化設(shè)計(jì)。

        圖5 IMLT硬件解碼圖

        3 實(shí)驗(yàn)結(jié)果

        實(shí)驗(yàn)過程中測(cè)試了大約10個(gè)文件,每個(gè)文件大約在4分鐘,以對(duì)ARM7的時(shí)鐘需求為分析標(biāo)準(zhǔn),實(shí)驗(yàn)分析的結(jié)果如表2所示。芯片功耗在同等面積下與芯片工作頻率的成正比,降低芯片工作頻率是優(yōu)化功耗最快的方法,該項(xiàng)設(shè)計(jì)達(dá)到了降低系統(tǒng)功耗的目的。

        表2 硬件優(yōu)化比較

        4 結(jié)束語

        本文采用ARM7為CPU,結(jié)合游程解碼和DCT-IV硬件計(jì)算單元,降低WMA解碼的功耗,為實(shí)現(xiàn)便攜式音頻解碼SOC提供了一種開發(fā)速度快、可擴(kuò)展性強(qiáng)的方法。另外,在后續(xù)的研究中,音頻格式MP3/FLAC/APE等解碼將全部共享RAM,因此在多格式音頻解碼時(shí),該方法能夠更好地降低系統(tǒng)成本。

        參考文獻(xiàn):

        [1] Charles D,Murphy,K.Anandakumar.Real-Time MPEG-1 Audio Coding and Decoding on a DSP Chip[J].Trans.on Consumer Electronics,1997,43(1):347-353.

        [2] 周錦峰,倪光南.低功耗MP3解碼器設(shè)計(jì)及其可測(cè)性報(bào)告[D].北京:中國(guó)科學(xué)院計(jì)算技術(shù)研究所,2003.

        [3] 張海濱,李揮.基于S3C2410的WMA開源解碼程序優(yōu)化[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(1):13-15.

        [4] Pramod,Kumar,Meher.LUT optimization for memory-based computation[J].IEEE Transaction on Circuits and System,2010,57(4):285-289.

        猜你喜歡
        游程解碼器字節(jié)
        基于劃分組參考數(shù)的差值編碼壓縮方法
        科學(xué)解碼器(一)
        No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
        中國(guó)羽毛球組合鄭思維/黃雅瓊連續(xù)得失分規(guī)律研究
        科學(xué)解碼器(二)
        科學(xué)解碼器(三)
        線圣AudioQuest 發(fā)布第三代Dragonfly Cobalt藍(lán)蜻蜓解碼器
        改進(jìn)型相對(duì)游程長(zhǎng)度編碼方法
        No.10 “字節(jié)跳動(dòng)手機(jī)”要來了?
        簡(jiǎn)談MC7字節(jié)碼
        国产一区二区三区白浆在线观看| 精品久久久久香蕉网| 亚洲综合激情五月丁香六月| 亚洲av伊人久久综合密臀性色 | 欧美成人猛片aaaaaaa| 波多野42部无码喷潮| 国产精品 视频一区 二区三区| 狠狠躁夜夜躁人人爽天天不卡| 日韩va高清免费视频| 一区二区三区国产精品乱码| 亚洲av综合av成人小说| 韩国精品一区二区三区无码视频| 成人日韩av不卡在线观看| 激情在线视频一区二区三区| 青青草高中生在线视频| 亚洲欧美牲交| 国产乱人伦av在线无码| 九一成人AV无码一区二区三区| 国内国外日产一区二区| 日本一区二区不卡精品| 亚洲国产精品成人综合色| 免费做爰猛烈吃奶摸视频在线观看| 中文无码免费在线| 精品亚洲在线一区二区| 好吊妞视频这里有精品| 在线综合亚洲欧洲综合网站 | 亚洲综合小综合中文字幕| 日本精品一区二区三区二人码| 国产精品久久久久久久妇| 99国产超薄丝袜足j在线播放| 久久亚洲精品一区二区| 手机久草视频福利在线观看| 免费观看18禁无遮挡真人网站| 久久中文精品无码中文字幕| 国产精品成人无码a 无码| 亚洲日本高清一区二区| 亚洲av日韩av永久无码下载| 全免费a级毛片| 人妻少妇精品一区二区三区| 亚洲国产人成综合网站| 亚洲国产成人精品无码区在线秒播 |