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

        ?

        一種新型的AVS熵解碼碼表結(jié)構(gòu)

        2014-11-20 08:18:50展鵬飛魏曉君
        電視技術(shù) 2014年5期
        關(guān)鍵詞:碼表碼流碼字

        展鵬飛,魏曉君,張 剛

        (太原理工大學(xué)信息工程學(xué)院,山西太原030024)

        AVS(Audio and Video coding Standard)[1]音視頻編解碼標(biāo)準(zhǔn)具有我國自主知識(shí)產(chǎn)權(quán),編碼性能與H.264相當(dāng),效率高、復(fù)雜度低,更易于嵌入式實(shí)現(xiàn)。用DSP實(shí)現(xiàn)的AVS視頻編解碼器具有良好的可移植性,開發(fā)周期短,能夠很好地滿足豐富AVS產(chǎn)業(yè)鏈、推廣AVS標(biāo)準(zhǔn)的要求。

        OMAP(Open Multimedia Applications Platform)[2]是TI針對(duì)手持設(shè)備開發(fā)的高性能處理器,具有高性能、低功耗的特點(diǎn)。它擁有一個(gè)TMS320C64X+系列的定點(diǎn)DSP處理器,最高工作頻率為430 MHz,有A、B兩交叉數(shù)據(jù)通道,每個(gè)數(shù)據(jù)通道各有M、S、D和L四個(gè)功能單元,采用超長(zhǎng)指令集(VLIW)[3],在一個(gè)時(shí)鐘周期內(nèi)最多可以并行執(zhí)行8條32位指令。熵解碼大約占了AVS視頻解碼的20% ~25%的運(yùn)算量,本文從傳統(tǒng)的AVS熵解碼入手,提出了一種新型的碼表結(jié)構(gòu)和一種分組查詢的查詢方法,最后用DSP指令對(duì)熵解碼進(jìn)行了匯編實(shí)現(xiàn)和優(yōu)化,在不影響解碼圖像質(zhì)量的前提下,提升了解碼速度。

        1 熵解碼原理

        熵解碼是熵編碼的逆過程,處于整個(gè)解碼器的第一級(jí)模塊。AVS熵解碼采用變長(zhǎng)碼解碼技術(shù)從壓縮后的碼流中解析信息,包括語法元素和殘差數(shù)據(jù)的解碼[4]。

        AVS解碼器接收到碼流后,首先解析出相應(yīng)的碼字值,然后根據(jù)碼字值和59的大小情況,分情況經(jīng)過碼表映射找到其對(duì)應(yīng)的量化系數(shù)游程數(shù)組和量化系數(shù)值數(shù)組(run,level),為解碼器的逆掃描、反量化等模塊提供輸入數(shù)據(jù),大體流程如圖1所示。從圖中可以看出,整個(gè)熵解碼過程主要包含碼字的解析、碼表查詢、碼表切換3個(gè)部分[5]。本論文主要針對(duì)碼表查詢這部分內(nèi)容進(jìn)行研究和優(yōu)化。

        1.1 碼表查詢

        AVS標(biāo)準(zhǔn)定義了19個(gè)變長(zhǎng)碼表:VLC0_Intra~VLC6_Intra這7個(gè)碼表用于解碼幀內(nèi)亮度塊的游程和非零量化系數(shù);VLC0_Inter~VLC6Inter這7個(gè)碼表用于解碼幀間亮度塊的游程和非零量化系數(shù);VLC0_Chroma~VLC4_Chroma這5個(gè)碼表用于解碼色度塊的游程和非零量化系數(shù)[6]。當(dāng)轉(zhuǎn)換系數(shù)trans_coef<59時(shí),如果當(dāng)前碼表中包含有此轉(zhuǎn)換系數(shù),直接查表獲得run和level值,否則以(trans_coef-1)為索引在當(dāng)前碼表中查表獲得run和level值。當(dāng)轉(zhuǎn)換系數(shù)trans_coef≥59時(shí),作為逃逸事件處理,逃逸系數(shù)escape_diff值由碼流信息計(jì)算得到,run值由(trans_coef-59)/2計(jì)算得出,level值獲得則分為兩種情況:

        圖1 熵解碼流程

        1)首先由當(dāng)前碼表號(hào)查詢出Maxrun值,若Maxrun≤(trans_coef-59)/2則以(trans_coef-59)/2為索引在當(dāng)前碼表中查表獲得level值,否則RefAbslevel賦值為1。

        2)Maxrun>(trans_coef-59)/2:若trans_coef為偶數(shù),level值由(escape_diff+RefAbslevel)直接計(jì)算得出;若為奇數(shù),level值由(escape_diff+RefAbslevel)取反得到。

        1.2 傳統(tǒng)的碼表結(jié)構(gòu)的缺點(diǎn)

        經(jīng)過對(duì)熵解碼流程的分析研究后發(fā)現(xiàn),在整個(gè)熵解碼的過程中,存在大量的判斷和跳轉(zhuǎn)指令,不利于軟件流水、代碼的并行處理,嚴(yán)重地影響代碼的運(yùn)行速度,不能體現(xiàn)DSP處理器的優(yōu)勢(shì)。另外僅存儲(chǔ)19個(gè)碼表所需要的數(shù)據(jù)就將近3 000 byte,在PC機(jī)上實(shí)現(xiàn)時(shí),PC資源豐富,可以把這些數(shù)據(jù)預(yù)先存儲(chǔ)到棧中,沒有資源短缺的問題。但是OMAP3530開發(fā)平臺(tái)的硬件資源遠(yuǎn)比不上PC機(jī)豐富,存儲(chǔ)數(shù)據(jù)的SRAM只有48 kbyte,除存儲(chǔ)參考幀信息和解碼輸出數(shù)據(jù)外,剩余空間很小,不能存放這么多的數(shù)據(jù),若存放到DDR中又會(huì)大大降低解碼速度。因此要想在DSP上實(shí)現(xiàn)AVS視頻解碼器并且要達(dá)到實(shí)時(shí)解碼的要求,必須對(duì)碼表的結(jié)構(gòu)和查詢方式進(jìn)行改進(jìn)。

        2 優(yōu)化方案及其實(shí)現(xiàn)

        2.1 碼表優(yōu)化

        由一維哥倫布碼數(shù)據(jù)索引二維數(shù)組run和level值時(shí),轉(zhuǎn)換系數(shù)在小于59的情況下,奇數(shù)和偶數(shù)的run值、RefAbslevel值都是相同的,不同的只是level值。AVS標(biāo)準(zhǔn)中規(guī)定轉(zhuǎn)換系數(shù)為奇數(shù)時(shí)和為偶數(shù)時(shí)的level值互為相反數(shù)。為了減少內(nèi)存空間數(shù)據(jù)的存儲(chǔ),本論文對(duì)19個(gè)碼表存儲(chǔ)的數(shù)據(jù)進(jìn)行了調(diào)整,根據(jù)具體碼表中數(shù)據(jù)的特點(diǎn),只存儲(chǔ)偶數(shù)或奇數(shù)各階指數(shù)哥倫布碼字值和對(duì)應(yīng)的run和level值。設(shè)定合適的閾值,由哥倫布碼字值、當(dāng)前碼表和閾值的關(guān)系共同決定碼字值是加1、減1后查詢碼表還是直接查詢碼表,來獲得對(duì)應(yīng)的run和level值。由于偶數(shù)碼字或奇數(shù)碼字加1或減1對(duì)應(yīng)的run值和RefAbslevel值相同,所以本設(shè)計(jì)只改動(dòng)每個(gè)碼表中碼字值及其對(duì)應(yīng)的level值的存儲(chǔ),run值和RefAbslevel值的存儲(chǔ)不變。

        2.2 查詢優(yōu)化

        對(duì)程序調(diào)整和碼表改造后,雖然達(dá)到了碼表數(shù)據(jù)壓縮的目的,但是依然無法解決這部分代碼的復(fù)雜度難題。這部分代碼存在大量循環(huán),最麻煩的是循環(huán)體內(nèi)嵌套循環(huán)體;還存在大量的判斷條件和跳轉(zhuǎn)操作,這對(duì)于編譯器實(shí)現(xiàn)高效率的軟件流水十分困難[7]。經(jīng)過改進(jìn)后的碼表雖然已經(jīng)節(jié)省了大量?jī)?nèi)存分配空間,但是碼表中數(shù)據(jù)量還是很大。并且長(zhǎng)期占用了內(nèi)存空間,每次都需要在當(dāng)前碼表中遍歷查詢,對(duì)于整個(gè)解碼器系統(tǒng)來說,遠(yuǎn)遠(yuǎn)達(dá)不到實(shí)時(shí)的要求。針對(duì)碼表查詢遍歷耗時(shí)和碼表數(shù)據(jù)長(zhǎng)期占用內(nèi)存空間這一問題,提出對(duì)當(dāng)前要解碼的碼字進(jìn)行擴(kuò)展打包處理的解決方案。利用大量的判斷、跳轉(zhuǎn)等待間隙,將當(dāng)前碼表數(shù)據(jù)臨時(shí)送入寄存器,查詢過后立即釋放的方式實(shí)現(xiàn)匯編優(yōu)化,盡量減少內(nèi)存的訪問和修改。理想的情況下一次可查詢4個(gè)位置,最壞情況下一次查詢1個(gè)位置,利用不同的數(shù)據(jù)通道和不同的功能單元盡量同時(shí)獲得run和level值。

        2.3 優(yōu)化實(shí)現(xiàn)

        以VLC3_Intra為例,對(duì)改進(jìn)后的碼表進(jìn)行分組,具體分組優(yōu)化情況如圖2。

        圖2 改進(jìn)后VLC3_Intra碼表查詢分組(截圖)

        1)通過分析,知此碼表先獲得level值,再根據(jù)level值獲得run值可大幅度地使查表次數(shù)降低,提高查表效率。利用下圖中的分組方式,將VLC3_Intra碼字值和level值分別分為10組和5組。圖2中對(duì)碼字值標(biāo)示了8組,level值標(biāo)示了3 組,另2 組碼字值為5,3,1,9 和7,13,19,29。其對(duì)應(yīng)的2組level值分別為-3,-2,-1,4和-1,2,3,4。

        2)改進(jìn)后的碼表僅存儲(chǔ)奇數(shù)的碼字值,由奇數(shù)查詢出對(duì)應(yīng)的run和level值,閾值設(shè)定為8。

        3)從碼流中解析出碼字后,先判斷當(dāng)前的碼字值是否為奇數(shù),如果為奇數(shù),則直接查表可得相應(yīng)的(run,level)值;若當(dāng)前碼字值為偶數(shù),則跟閾值做比較,若小于閾值,則偶數(shù)加1得到奇數(shù);若大于閾值,則偶數(shù)減1得到奇數(shù),然后通過奇數(shù)來查詢碼字值對(duì)應(yīng)的run和level值。圖3和圖4分別是碼字值在小于59的情況下,VLC3_Intra改造前和改造后碼表查詢的流程。

        圖3 改造前碼表VLC3_Intra查詢流程

        圖4 改造后碼表VLC3_Intra查詢流程

        4)當(dāng)所讀入轉(zhuǎn)換系數(shù)小于59時(shí),首先用PACK2和PACKL4將碼字值打包為32位,然后通過CMPEQ4指令在碼表中一次查詢4個(gè)碼字,當(dāng)取得某一個(gè)比較值為非零值后,將此非零值用XPND4指令進(jìn)行擴(kuò)展,最后通過DOTPSU4指令快速定位當(dāng)前轉(zhuǎn)換系數(shù)值對(duì)應(yīng)level,通過條件判斷得出run。最惡劣情況下需要查詢碼表10次,相比原遍歷查詢方式,與最壞情況下查詢58次相比減少了近6倍。由此可見對(duì)19個(gè)碼表均采取擇優(yōu)分組的方式進(jìn)行查表,可節(jié)省大量的查表次數(shù)和查表時(shí)間,并減少大量的條件判斷。

        3 優(yōu)化結(jié)果分析

        結(jié)合使用OMAP3530仿真測(cè)試和使用集成開發(fā)仿真環(huán)境CCS3.3對(duì)所寫代碼進(jìn)行驗(yàn)證,本實(shí)驗(yàn)對(duì)4個(gè)碼流進(jìn)行了測(cè)試,其中football.avs是網(wǎng)上下載的測(cè)試序列football.yuv 編碼編出的碼流,Ceslab1.avs~ Ceslab3.avs是從實(shí)驗(yàn)室的環(huán)境下采集圖像,再由編碼器編出的碼流。從表1可以看出,用匯編語言實(shí)現(xiàn)的熵解碼模塊算法,消耗的解碼時(shí)間明顯減少。匯編優(yōu)化后熵解碼所消耗的解碼時(shí)間是未優(yōu)化的36%左右,幀率提高了1.63倍,達(dá)到了25幀以上,滿足了實(shí)時(shí)解碼的要求,優(yōu)化效果明顯。

        表1 改造碼表結(jié)構(gòu)和優(yōu)化查詢前后效果對(duì)比

        4 小結(jié)

        本文通過分析AVS熵解碼算法,對(duì)熵解碼的碼表結(jié)構(gòu)進(jìn)行了重新改造,提出了一種新的適合DSP處理器的碼表存儲(chǔ)方式;對(duì)碼表查詢提出了一種新的分組查詢方式,有效減少了判斷和跳轉(zhuǎn)情況,并且用DSP匯編實(shí)現(xiàn)。在不影響解碼質(zhì)量的前提下,節(jié)省了碼表存儲(chǔ)空間,并且提高了解碼速率,滿足了AVS視頻解碼器在OMAP3530上實(shí)時(shí)解碼的要求。

        [1]GB/T 20090.2—2006,信息技術(shù) 先進(jìn)音視頻編碼 第2部分:視頻[S].2006.

        [2]展鵬飛,張杰飛,張剛.在OMAP3530平臺(tái)實(shí)現(xiàn)AVS解碼器[J].電視技術(shù),2014,38(1):58-60.

        [3]魏曉君,張剛.AVS解碼器環(huán)路濾波的優(yōu)化及實(shí)現(xiàn)[J].電視技術(shù),2013,37(5):23-25.

        [4]江靜.AVS熵編碼技術(shù)研究及其在DSP上的實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2008.

        [5]陳光法,姚立敏,虞露.AVS熵解碼與DSP實(shí)現(xiàn)[J].電視技術(shù),2004,28(10):45-46.

        [6] KIM W J,CHO K,CHUNG K S.Multi-threaded syntax element partitioning for parallel entropy decoding[J].IEEE Trans.Consumer Electronics,2011,57(2):897-905.

        [7] LO CC,TSAIST,SHIEH M D.Reconfigurable architecture for entropy decoding and inverse transform in H.264[J].IEEE Trans.Consum.E-lectron.,2010,56(3):1670-1676.

        猜你喜歡
        碼表碼流碼字
        分布式碼流實(shí)時(shí)監(jiān)控與錄制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        數(shù)字電視TS碼流協(xié)議簡(jiǎn)要分析
        視聽(2021年8期)2021-08-12 10:53:42
        放 下
        iGPSPORTiGS618智能GPS碼表測(cè)評(píng)
        中國自行車(2018年9期)2018-10-13 06:17:04
        數(shù)據(jù)鏈系統(tǒng)中軟擴(kuò)頻碼的優(yōu)選及應(yīng)用
        放下
        皺皺眉頭就是一首詩
        優(yōu)雅(2017年8期)2017-08-08 06:01:53
        廉價(jià)親民黑鳥單車BB10 GPS碼表評(píng)測(cè)
        中國自行車(2017年1期)2017-04-16 02:54:07
        輕松上手 碼表踏頻組
        一種比較ASN.1碼流差異的方法
        国产成人vr精品a视频| 亚洲一区二区自偷自拍另类| 国产午夜免费一区二区三区视频 | 让少妇高潮无乱码高清在线观看| 少妇高潮尖叫黑人激情在线| 久久久久久久妓女精品免费影院| 69搡老女人老妇女老熟妇| 中文字幕日本在线乱码| 麻豆精品国产专区在线观看| 国产肉体xxxx裸体784大胆| 欧美最猛黑人xxxx黑人表情| 亚洲av高清在线观看三区| 黄色中文字幕视频网站| 91色老久久偷偷精品蜜臀懂色 | 亚洲av无码专区亚洲av桃| 日韩精品中文字幕 一区| 蜜桃在线高清视频免费观看网址| 国产激情久久久久久熟女老人| 丰满少妇a级毛片野外| 欧美国产日产一区二区| 国产目拍亚洲精品区一区| 日本免费久久高清视频| 精品乱人伦一区二区三区| 久久久久久久岛国免费观看| 国产综合第一夜| 亚洲一区二区三区高清视频| 成人偷拍自拍视频在线观看 | 水蜜桃男女视频在线观看网站| 中文字幕在线亚洲精品| 波多野结衣一区二区三区高清| 成人国产精品免费网站| 97成人精品在线视频| 亚洲日韩精品无码av海量| 99久久久精品免费观看国产| 五月天无码| 中文字幕日本在线乱码| 亚洲av一二三区成人影片| 亚洲欧洲偷自拍图片区| 最新永久无码AV网址亚洲| 国产精品区一区第一页| 国产精品毛片99久久久久|