新聞中心

        EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于DM642DSP的視頻編碼優(yōu)化方法

        基于DM642DSP的視頻編碼優(yōu)化方法

        作者: 時(shí)間:2012-09-01 來源:網(wǎng)絡(luò) 收藏
        法和移位來實(shí)現(xiàn)。非常有利于在DSP實(shí)現(xiàn)。

        -可以保證編碼端的變換和解碼端的反變換完全匹配,沒有誤差。

        首先我們對變換矩陣做必要的調(diào)整,如表達(dá)式(1),(2)所示,這樣做的好處是行變換和列變換的操作完全一樣,簡化了運(yùn)算。接下來就是用線性匯編或純匯編來實(shí)現(xiàn)兩個(gè)矩陣的相乘。

        基于DM642DSP的視頻編碼優(yōu)化方法

        因?yàn)镈M642CPU有兩個(gè)類似的可進(jìn)行數(shù)據(jù)處理的通路A和B,每個(gè)通路有4個(gè)完全相同的運(yùn)算單元(.L,.S,.M,.D)我們可將矩陣的一四兩行的運(yùn)算放在A側(cè)進(jìn)行,二三兩行在B側(cè)進(jìn)行運(yùn)算,這樣可以保證A,B兩側(cè)可同時(shí)并行計(jì)算。由于整數(shù)DCT變換是在16比特精度下完成的,矩陣相乘我們自然會(huì)想到匯編指令DOTP2,但是不能全部用DOTP2來完成運(yùn)算,否則一個(gè)周期內(nèi)就只有.M單元在工作,而其他運(yùn)算單元都閑著。由于整數(shù)DCT矩陣系數(shù)的特殊性,我們完全可以用加法指令和移位指令來代替乘法指令。表1是一個(gè)16x16宏塊進(jìn)行DCT變換,匯編優(yōu)化前后的cycle數(shù)的對比。

        基于DM642DSP的視頻編碼優(yōu)化方法
        表一 16x16宏塊DCT所需的周期數(shù)

        在寫匯編指令時(shí)我們要盡量做到在同一個(gè)周期內(nèi),讓位于A,B兩側(cè)的8個(gè)運(yùn)算單元能夠同時(shí)工作,在做DCT時(shí)我們發(fā)現(xiàn)M單元不夠用,而有時(shí)在其他情況下,M單元根本就沒用上,這時(shí)就要想辦法用M去代替其他運(yùn)算單元。如求殘差時(shí)要把8位數(shù)擴(kuò)展成16位數(shù),一般用UNPKLU4和UNPKHU4指令來完成,也可以用DOTPU4乘以0x01010101,同樣也可以完成擴(kuò)展要求。

        基于DM642DSP的視頻編碼優(yōu)化方法
        表二 H.264編碼器性能測試

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

        由于此編碼器是針對監(jiān)控系統(tǒng)的應(yīng)用,在追求編碼速度的時(shí)候,對圖像質(zhì)量做了一定的犧牲。下面是編碼器的一些參數(shù)配置:圖像皆為CIF大小,參考幀用了一幀,搜索范圍是[-16,16],相鄰兩個(gè)P幀間插入兩個(gè)B幀,即IBBPBBP……的編碼方式,P幀和B幀做運(yùn)動(dòng)估計(jì)時(shí)最小塊到8x8塊,即只在16x16、16x8、8x16、8x8幾種模式間做選擇,量化步長設(shè)為30.。采用CAVLC編碼方式。

        本文針對實(shí)時(shí)視頻監(jiān)控的應(yīng)用要求,結(jié)合DM642嵌入式系統(tǒng)的硬件特性,從程序的總體架構(gòu),數(shù)據(jù)的存放位置,數(shù)據(jù)的搬移進(jìn)行了分析,給出了切實(shí)有效的。對占用系統(tǒng)資源較多的運(yùn)動(dòng)搜索給出了適合在DSP平臺下的算法,對整數(shù)DCT進(jìn)行了在匯編層面的優(yōu)化,并總結(jié)了一下優(yōu)化技巧。經(jīng)測試基本達(dá)到視頻監(jiān)控的實(shí)時(shí)要求,并且有較好的圖像質(zhì)量和碼率。


        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 中卫市| 孙吴县| 房产| 石嘴山市| 衡南县| 延吉市| 离岛区| 呼玛县| 龙州县| 乌兰县| 友谊县| 宁远县| 宝兴县| 都江堰市| 新竹市| 尚义县| 唐海县| 平遥县| 黄大仙区| 德令哈市| 石屏县| 岳阳县| 兴国县| 龙海市| 文成县| 中阳县| 炉霍县| 焦作市| 天气| 汉川市| 大兴区| 高州市| 大同市| 禹州市| 平罗县| 巴马| 醴陵市| 六枝特区| 平乡县| 鸡东县| 通州市|