<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于TMS320C64x的MPEG-4實(shí)時(shí)編碼器設計與實(shí)現

基于TMS320C64x的MPEG-4實(shí)時(shí)編碼器設計與實(shí)現

作者: 時(shí)間:2012-10-12 來(lái)源:網(wǎng)絡(luò ) 收藏


圖3 預測運動(dòng)矢量示意圖

  (2)確定篩選候選值的依據——SAD(絕對誤差和)的門(mén)限值ThreshSAD。
  SAD是確定最佳匹配塊的準則。門(mén)限值ThreshSAD是指這樣一個(gè)值:如果參考幀內某一宏塊和當前宏塊的SAD小于ThreshSAD,則當前宏塊的MV值就可取作二者之間的位移。因此,ThreshSAD就可作為篩選7個(gè)候選值的依據。
  由于SAD在空間上的相關(guān)性,ThreshSAD由相鄰宏塊的SAD值來(lái)確定:
   ThreshSAD=Min{SADleft,SADtop,SADtop_left}
  其中,SADleft、SADtop、SADtop-right分別為MBleft、MBtop、MBtop-right和其對應匹配塊的SAD值,ThreshSAD取三者的最小值。
  (3)從7個(gè)候選值中選出當前宏塊的MV值。
  按照PreMV1~7的順序,依次計算當前宏塊和7個(gè)匹配塊的SAD值。如果有SAD值小于ThreshSAD,即停止計算,選用對應的PreMV作為當前宏塊的MV值;如果7個(gè)SAD值均大于ThreshSAD,則采用運動(dòng)搜索來(lái)確定當前宏塊的MV值。該運動(dòng)搜索并不以MV=(0,0)為中心,而是以對應SAD值最小的PreMV為中心,搜索采用簡(jiǎn)化的菱形算法。
  對標準視頻序列foreman.cif(352×288)進(jìn)行編碼(碼率300kbps),測得表1所示數據。采用預測的運動(dòng)估計算法利用視頻序列在時(shí)間和空間上的相關(guān)性,無(wú)需對每個(gè)宏塊都進(jìn)行運動(dòng)搜索,而且其搜索中心點(diǎn)也同樣利用了相關(guān)信息,搜索算法也可進(jìn)一步簡(jiǎn)化,因此大大減少了運動(dòng)估計的計算量;同時(shí),預測有助于提高圖像質(zhì)量,直接進(jìn)行快速運動(dòng)搜索通常會(huì )帶來(lái)局部最小的問(wèn)題,從而影響圖像質(zhì)量,而PreMV1~7取自位于當前宏塊周?chē)鱾€(gè)方向的宏塊的MV值,避免陷入局部最小。
表1 預測技術(shù)對運動(dòng)搜索性能的提高
采用預測平均每個(gè)宏塊所需的
SAD值計算次數
峰值信噪比PSNR(dB)平均幀率(fps)
533.16120
1533.2395


3 基于C64x CPU的軟件優(yōu)化技術(shù)
  為了提高代碼的執行效率,必須充分利用C64x CPU的VLIW和流水線(xiàn)結構對其進(jìn)行優(yōu)化,使程序無(wú)沖突地并行執行。編碼程序中包含大量的循環(huán)體,例如計算SAD值、量化、DCT、半像素插值、運動(dòng)補償和構建重建幀等。這些循環(huán)體代碼并不復雜,但執行次數頻繁,占據了編碼的絕大部分時(shí)間,因此循環(huán)體的優(yōu)化是重點(diǎn)。本文所采取的代碼優(yōu)化分為C語(yǔ)言?xún)?yōu)化和編寫(xiě)線(xiàn)性匯編兩個(gè)步驟,主要從消除數據相關(guān)性、數據打包和循環(huán)體的軟件流水三個(gè)方面進(jìn)行優(yōu)化。
3.1 針對C語(yǔ)言的優(yōu)化
  C代碼的優(yōu)化主要依靠開(kāi)發(fā)環(huán)境CCS的編譯器完成,編程者需要合理選擇編譯選項,并利用特定的關(guān)鍵字和指令向編譯器提供優(yōu)化信息。例如關(guān)鍵字restrict用來(lái)消除數據間的相關(guān)性,編譯器從而可以安排語(yǔ)句的并行執行;內聯(lián)函數_nassert有助于數據的打包處理;宏指令#pragma MUST_ITERATE告訴編譯器有關(guān)循環(huán)迭代次數的信息,編譯器會(huì )根據這一信息進(jìn)行軟件流水。
3.2 用線(xiàn)性匯編改寫(xiě)關(guān)鍵代碼
  線(xiàn)性匯編是TMS320C6000特有的一種編程語(yǔ)言,介于高級語(yǔ)言和匯編語(yǔ)言之間。它可以指定指令用到的寄存器和功能單元,更易于對數據的打包處理。
  線(xiàn)性匯編代碼的并行處理和軟件流水由匯編優(yōu)化器完成,編程者需要熟悉C64x DSP的CPU結構和指令集,認真設計代碼并充分利用編譯器的反饋信息合理修改代碼,才能寫(xiě)出高質(zhì)量的線(xiàn)性匯編。本設計中程序主框架采用C語(yǔ)言編寫(xiě),其它各關(guān)鍵部分的代碼采用線(xiàn)性匯編實(shí)現。表2是代碼優(yōu)化前后的效率對比,表2中所列各代碼段均針對8×8宏塊進(jìn)行處理。
表2 各關(guān)鍵代碼優(yōu)化前后消耗指令周期數對比
代碼段未優(yōu)化C優(yōu)化后線(xiàn)性匯編優(yōu)化后
SAD值計算14005534
量化1250238108
逆量化1200291170
FDCT136029296
IDCT1600373102
半像素插值2800466246
運動(dòng)補償、做差195016059
重建宏塊100089088

4 結果分析
  對各標準視頻序列進(jìn)行編碼,測得表3所示數據。實(shí)時(shí)采集D1(720×576)分辨率的視頻進(jìn)行編碼,測得碼率為850kbps時(shí),編碼速率達25fps以上,峰值信噪比(PSNR)高于31dB,實(shí)現了高分辨率的實(shí)時(shí)編碼。
表3 標準視頻序列的編碼結果
視頻序列分辨率碼率(bps)PSNR(dB)平均幀率(fps)
NewsQCIF100k36.23480
SilentQCIF100k35.66485
ForemanQCIF100k32.04465
ForemanCIF300k33.16120

  表3中各視頻序列的編碼均采用了8×8半像素精度的運動(dòng)估計,解碼圖像的視覺(jué)效果較好。對于較低分辨率的視頻(QCIF、CIF),其編碼速率已遠遠高于實(shí)時(shí)的要求,因此可以考慮添加新的算法以提高壓縮效率并增強碼流的抗差錯性能。
  本文以DM642芯片為例詳述了基于C64x DSPs的實(shí)時(shí)設計。采用MPEG-4 Simple Profile算法,在算法和代碼優(yōu)化方面還有一定的研究空間。本文給出的設計方法可以進(jìn)一步推廣到H.264或者其他視頻編碼系統。
參考文獻
1 Prasad RSV, Ramkishor korada. Efficient implementation of MPEG-4 video encoder on RISC
core[J].IEEE Transactions on Consumer Electronics, 2003;47(1):1~6
2 A. Dasu, S. Panchanathan. A Survey of Media Processing Approaches[J]. IEEE Trans.on
Circuit and System for Video Technology, 2002;12(8):1~13
3 Tihao Chiang, Hung_Ju Lee, Huifang Sun. An overview of the encoding tools in the
MPEG-4 reference software[J].In-ternational Symposium on Circuits and Systems,
2000; May 28-31:1~4
4 鐘玉琢,王 琪,賀玉文. 基于對象的多媒體數據壓縮編碼國際標準——MPEG-4及其校驗模型[M].
北京:科學(xué)出版社,2000
5 李方慧,王 飛,何佩琨. TMS320C6000系列DSPs的原理與應用[M].北京:電子工業(yè)出版社,2003

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: TMS320C64x MPEG-4 編碼器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>