新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于TMS320C64x 的MPEG-4實(shí)時(shí)編碼器設(shè)計(jì)與實(shí)現(xiàn)

基于TMS320C64x 的MPEG-4實(shí)時(shí)編碼器設(shè)計(jì)與實(shí)現(xiàn)

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

表1 預(yù)測(cè)技術(shù)對(duì)運(yùn)動(dòng)搜索性能的提高
采用預(yù)測(cè)平均每個(gè)宏塊所需的
SAD值計(jì)算次數(shù)
峰值信噪比PSNR(dB)平均幀率(fps)
533.16120
1533.2395

3 基于C64x CPU的軟件優(yōu)化技術(shù)

  為了提高代碼的執(zhí)行效率,必須充分利用C64x CPU的VLIW和流水線結(jié)構(gòu)對(duì)其進(jìn)行優(yōu)化,使程序無(wú)沖突地并行執(zhí)行。編碼程序中包含大量的循環(huán)體,例如計(jì)算SAD值、量化、DCT、半像素插值、運(yùn)動(dòng)補(bǔ)償和構(gòu)建重建幀等。這些循環(huán)體代碼并不復(fù)雜,但執(zhí)行次數(shù)頻繁,占據(jù)了編碼的絕大部分時(shí)間,因此循環(huán)體的優(yōu)化是重點(diǎn)。本文所采取的代碼優(yōu)化分為C語(yǔ)言優(yōu)化和編寫(xiě)線性匯編兩個(gè)步驟,主要從消除數(shù)據(jù)相關(guān)性、數(shù)據(jù)打包和循環(huán)體的軟件流水三個(gè)方面進(jìn)行優(yōu)化。

3.1 針對(duì)C語(yǔ)言的優(yōu)化

  C代碼的優(yōu)化主要依靠開(kāi)發(fā)環(huán)境CCS的編譯器完成,編程者需要合理選擇編譯選項(xiàng),并利用特定的關(guān)鍵字和指令向編譯器提供優(yōu)化信息。例如關(guān)鍵字restrict用來(lái)消除數(shù)據(jù)間的相關(guān)性,編譯器從而可以安排語(yǔ)句的并行執(zhí)行;內(nèi)聯(lián)函數(shù)_nassert有助于數(shù)據(jù)的打包處理;宏指令#pragma MUST_ITERATE告訴編譯器有關(guān)循環(huán)迭代次數(shù)的信息,編譯器會(huì)根據(jù)這一信息進(jìn)行軟件流水。

3.2 用線性匯編改寫(xiě)關(guān)鍵代碼

  線性匯編是TMS320C6000特有的一種編程語(yǔ)言,介于高級(jí)語(yǔ)言和匯編語(yǔ)言之間。它可以指定指令用到的寄存器和功能單元,更易于對(duì)數(shù)據(jù)的打包處理。

  線性匯編代碼的并行處理和軟件流水由匯編優(yōu)化器完成,編程者需要熟悉C64x DSP的CPU結(jié)構(gòu)和指令集,認(rèn)真設(shè)計(jì)代碼并充分利用編譯器的反饋信息合理修改代碼,才能寫(xiě)出高質(zhì)量的線性匯編。本設(shè)計(jì)中程序主框架采用C語(yǔ)言編寫(xiě),其它各關(guān)鍵部分的代碼采用線性匯編實(shí)現(xiàn)。表2是代碼優(yōu)化前后的效率對(duì)比,表2中所列各代碼段均針對(duì)8×8宏塊進(jìn)行處理。
表2 各關(guān)鍵代碼優(yōu)化前后消耗指令周期數(shù)對(duì)比
代碼段未優(yōu)化C優(yōu)化后線性匯編優(yōu)化后
SAD值計(jì)算14005534
量化1250238108
逆量化1200291170
FDCT136029296
IDCT1600373102
半像素插值2800466246
運(yùn)動(dòng)補(bǔ)償、做差195016059
重建宏塊100089088

4 結(jié)果分析

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

  表3中各視頻序列的編碼均采用了8×8半像素精度的運(yùn)動(dòng)估計(jì),解碼圖像的視覺(jué)效果較好。對(duì)于較低分辨率的視頻(QCIF、CIF),其編碼速率已遠(yuǎn)遠(yuǎn)高于實(shí)時(shí)的要求,因此可以考慮添加新的算法以提高壓縮效率并增強(qiáng)碼流的抗差錯(cuò)性能。

  本文以DM642芯片為例詳述了基于C64x DSPs的設(shè)計(jì)。編碼器采用MPEG-4 Simple Profile算法,在算法和代碼優(yōu)化方面還有一定的研究空間。本文給出的設(shè)計(jì)方法可以進(jìn)一步推廣到H.264或者其他視頻編碼系統(tǒng)。

參考文獻(xiàn)

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

霍爾傳感器相關(guān)文章:霍爾傳感器工作原理


霍爾傳感器相關(guān)文章:霍爾傳感器原理

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

評(píng)論


相關(guān)推薦

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

關(guān)閉