《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 基于TMS320C64x DSPs的MPEG-4實時編碼器設(shè)計與實現(xiàn)

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

2008-08-26
作者:李群迎, 張曉林, 劉榮科,

  摘 要: 設(shè)計并實現(xiàn)了一種基于TMS320C64x系列高性能通用DSPs 的MPEG-4 Simple Profile編碼器。詳細(xì)介紹了系統(tǒng)的硬件結(jié)構(gòu)和工作流程。為解決高分辨率視頻編碼的實時性問題, 采用預(yù)測技術(shù)的運動估計" title="運動估計">運動估計算法以及基于C64x CPU的軟件優(yōu)化技術(shù)。實驗結(jié)果表明編碼器對D1分辨率(720×576)視頻的編碼速率達(dá)到25幀/秒以上,且具有較低的碼率和較好的圖像質(zhì)量。
  關(guān)鍵詞: MPEG-4 TMS320C64x? 軟件優(yōu)化? 運動估計


  信息時代對于視頻通訊的需求越來越廣,從較低碼率的可視電話、視頻會議、實時監(jiān)控到高碼率的空中偵察、數(shù)字電視等,迫切要求將高效率、高質(zhì)量的視頻壓縮算法實用化。MPEG-4于2000年正式成為國際標(biāo)準(zhǔn)并不斷地擴展。它不僅支持碼率低于64kbps的多媒體通信,還能支持廣播級的視頻應(yīng)用。與以前的視頻標(biāo)準(zhǔn)相比,MPEG-4可以提供更高的壓縮效率、更好的交互性以及更強的抗誤碼能力。目前,MPEG-4已經(jīng)成為視頻壓縮標(biāo)準(zhǔn)的主流。
  MPEG-4算法非常復(fù)雜,其編解碼的實時性難以保證,通常只能實現(xiàn)對中低分辯率視頻的實時編碼。本文基于TI公司的C64x系列DSPs設(shè)計并實現(xiàn)了一種MPEG-4編碼器,實現(xiàn)了對D1分辨率(720×576)視頻的實時編碼,且在保證輸出碼率低于1Mbps的同時,解碼圖像具有較高的峰值信噪比和較好的視覺效果。
1? 編碼系統(tǒng)" title="編碼系統(tǒng)">編碼系統(tǒng)的硬件結(jié)構(gòu)
  編碼系統(tǒng)以TMS320DM642高性能通用DSP芯片為核心。圖1為系統(tǒng)框圖。


1.1? TMS320DM642芯片的特點
  DM642屬于TI公司的C64x系列DSPs。Veloci TI結(jié)構(gòu)使C6000 DSPs在視頻和圖像處理中得到廣泛應(yīng)用。CPU的VLIW結(jié)構(gòu)由多個并行運行的執(zhí)行單元組成,這些單元在單個周期內(nèi)可執(zhí)行多條指令。并行是C6000獲得高性能的關(guān)鍵。C64x在C6000的基礎(chǔ)上有一些重要的改進(jìn)。除了有更高的時鐘頻率外,C64x從以前的Veloci TI結(jié)構(gòu)擴展到Veloci TI.2結(jié)構(gòu),包含了許多新的指令,增加了額外的數(shù)據(jù)通道,寄存器的數(shù)量也增加了一倍。這些擴展使得CPU可以在一個時鐘周期內(nèi)處理更多的數(shù)據(jù),從而獲得更高的運算性能。
  DM642芯片集成了各種片內(nèi)外設(shè),使得開發(fā)視頻和圖像領(lǐng)域的應(yīng)用更為方便。它帶有三個可配置的視頻端口,提供與視頻輸入、視頻輸出以及碼流輸入的無縫接口。這些視頻端口支持許多格式的視頻輸入/輸出,包括BT.656、HDTV Y/C、RGB以及MPEG-2碼流的輸入。利用DM642開發(fā)視頻編碼器,其視頻輸入部分只需要一塊視頻采集芯片即可,如Phillips的SAA7113,無需外加邏輯控制電路和FIFO緩存,使硬件系統(tǒng)更為簡單和穩(wěn)定。DM642的其它外設(shè)包括:10Mbps/100Mbps的以太網(wǎng)口(EMAC)、多通道音頻串口(McASP)、外部存儲器接口(EMIF)、主機接口(HPI)、多通道緩沖串口(McBSP)以及PCI接口等。
1.2? 系統(tǒng)工作流程
  該編碼系統(tǒng)可分為圖像壓縮卡和主機兩部分。其工作流程如圖2所示。


  首先主機通過PCI初始化DSP并對其加載程序;DSP開始運行MPEG-4編碼程序,從視頻端口獲取實時采集的視頻,如圖1所示。SAA7113輸出BT.656格式的數(shù)字視頻,作為DM642 VPORT的輸入,VPORT輸出YUV(4:2:0)格式的圖像,作為編碼程序的輸入;DSP完成一幀圖像的編碼,通過PCI向主機發(fā)出中斷;主機響應(yīng)中斷,從DSP的存儲空間讀取原始圖像數(shù)據(jù)和壓縮后的碼流。主機程序在VC++環(huán)境下編寫,提供與用戶交互的界面,可對數(shù)據(jù)進(jìn)行各種處理,包括原始視頻的實時播放、保存,壓縮碼流的實時解壓播放、保存、回放、網(wǎng)絡(luò)傳輸,從網(wǎng)絡(luò)接收壓縮碼流實時解壓回放等。
  需要注意的是原始圖像和壓縮碼流在DSP中的存儲。視頻端口、編碼程序和主機都要訪問原始圖像,例如在某一時刻,編碼程序訪問當(dāng)前幀圖像,主機讀取上一幀圖像,而視頻端口正在輸入下一幀圖像,為了避免訪問沖突,原始圖像在DSP中采用三緩沖區(qū)進(jìn)行管理。壓縮碼流由編碼程序?qū)懭耄鳈C讀取,所以采用乒乓制進(jìn)行存儲。
1.3 內(nèi)存分配
  DM642片內(nèi)只有256KB的存儲空間,因此當(dāng)前幀、參考幀和當(dāng)前幀的重建幀都必須放至片外存儲器,壓縮碼流若被主機讀取,也放至片外。其它數(shù)據(jù)如程序代碼、全局變量、VLC碼表、各編碼模塊產(chǎn)生的中間數(shù)據(jù)等均可放至片內(nèi)。
  由于CPU訪問片外的速度通常要比訪問片內(nèi)慢幾十倍,片外數(shù)據(jù)的傳輸通常成為程序運行時的瓶頸,即使代碼效率很高,流水線也會因為等待數(shù)據(jù)而被嚴(yán)重阻塞。解決這一問題的有效方法是用EDMA傳送數(shù)據(jù)。程序是逐個宏塊" title="宏塊">宏塊進(jìn)行編碼的,在編碼當(dāng)前宏塊的同時,EDMA將下一個宏塊的數(shù)據(jù)、用到的參考幀數(shù)據(jù)由片外傳送至片內(nèi);當(dāng)前宏塊做完運動補償后,EDMA將重建后的宏塊由片內(nèi)傳送至片外。這樣CPU只對片內(nèi)數(shù)據(jù)進(jìn)行操作,使得流水線可以順利進(jìn)行,而壓縮碼流按逐個碼字有時間間隔地寫入,可由CPU直接寫至片外。
2 采用預(yù)測技術(shù)的運動估計算法
  運動估計是MPEG-4編碼中計算量最大的一部分,占據(jù)整個編碼時間的50%以上。各種快速運動估計算法" title="估計算法">估計算法也成為近年來研究的熱點。本文通過實驗證明,采用預(yù)測技術(shù)的運動估計不但可以大大縮短計算時間,而且也有助于提高圖像的質(zhì)量。
  宏塊(Macro Block)的運動矢量(Motion Vector)在時間和空間都具有相關(guān)性,預(yù)測的原理就是利用當(dāng)前幀和參考幀內(nèi)相鄰位置宏塊的MV來預(yù)測當(dāng)前宏塊的MV。下面詳述本文所采用的預(yù)測算法。
  (1)確定當(dāng)前宏塊MV的7個候選值PreMV1~7。
  如圖3所示。PreMV1=(0,0);PreMV4取當(dāng)前宏塊左邊相鄰宏塊的MV值;PreMV5取上邊相鄰宏塊的MV值;PreMV6取右上方相鄰宏塊的MV值;PreMV2=mid{PreMV4, PreMV5, PreMV6},即取三者的中值;PreMV3取參考幀相同位置宏塊的MV值;PreMV7取參考幀右下方相鄰宏塊的MV值。


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


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


4 結(jié)果分析
  對各標(biāo)準(zhǔn)視頻序列進(jìn)行編碼,測得表3所示數(shù)據(jù)。實時采集D1(720×576)分辨率的視頻進(jìn)行編碼,測得碼率為850kbps時,編碼速率達(dá)25fps以上,峰值信噪比(PSNR)高于31dB,實現(xiàn)了高分辨率的實時MPEG-4編碼。


  表3中各視頻序列的編碼均采用了8×8半像素精度的運動估計,解碼圖像的視覺效果較好。對于較低分辨率的視頻(QCIF、CIF),其編碼速率已遠(yuǎn)遠(yuǎn)高于實時的要求,因此可以考慮添加新的算法以提高壓縮效率并增強碼流的抗差錯性能。
  本文以DM642芯片為例詳述了基于C64x DSPs的MPEG-4實時編碼器設(shè)計。編碼器采用MPEG-4 Simple Profile算法,在算法和代碼優(yōu)化方面還有一定的研究空間。本文給出的設(shè)計方法可以進(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
4 鐘玉琢,王 琪,賀玉文. 基于對象的多媒體數(shù)據(jù)壓縮編碼國際標(biāo)準(zhǔn)——MPEG-4及其校驗?zāi)P蚚M]. 北京:科學(xué)出版社,2000
5 李方慧,王 飛,何佩琨. TMS320C6000系列DSPs的原理與應(yīng)用[M].北京:電子工業(yè)出版社,2003

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲免费高清| 久久久久久电影| 欧美在线免费播放| 亚洲一区二区三区中文字幕| 亚洲精品小视频在线观看| 亚洲大胆视频| 尤物yw午夜国产精品视频明星| 国产精品日日摸夜夜摸av| 欧美日韩综合精品| 欧美日本久久| 欧美女激情福利| 欧美精品亚洲精品| 欧美激情91| 欧美激情一区在线观看| 欧美电影免费观看高清| 欧美福利电影网| 欧美激情一区二区三区在线视频 | 欧美日一区二区在线观看 | 日韩视频―中文字幕| 性欧美大战久久久久久久久| 一本一道久久综合狠狠老精东影业| 亚洲人成网站影音先锋播放| 亚洲国产99| 亚洲欧洲一区二区在线观看| 91久久久久久久久| 亚洲片区在线| 9久草视频在线视频精品| 这里只有精品在线播放| 亚洲一区二区三区高清| 午夜精品久久久久99热蜜桃导演| 西瓜成人精品人成网站| 亚洲国产第一页| 一本色道久久| 午夜一级久久| 久久久久天天天天| 欧美成年人在线观看| 欧美日韩国产综合久久| 国产精品久久一卡二卡| 国产自产精品| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲国产精品一区在线观看不卡| 亚洲啪啪91| 亚洲永久免费av| 亚洲电影免费观看高清完整版在线观看| 亚洲精品1区2区| 在线亚洲精品| 久久精品国产精品亚洲综合| 另类激情亚洲| 欧美午夜不卡影院在线观看完整版免费| 国产农村妇女毛片精品久久莱园子 | 在线看片一区| 一区二区三区 在线观看视| 亚洲欧美制服另类日韩| 亚洲黄页一区| 亚洲深夜av| 久久色在线观看| 欧美日韩国产色视频| 国产精品影院在线观看| 伊人色综合久久天天| 一本色道婷婷久久欧美| 久久精品观看| 亚洲一区二区三区免费在线观看| 久久精品中文字幕一区二区三区| 欧美精品v国产精品v日韩精品| 国产精品久在线观看| 在线观看的日韩av| 亚洲视频电影图片偷拍一区| 久久精品人人| 亚洲欧美精品一区| 你懂的国产精品永久在线| 国产精品美女久久久免费| 一区二区在线观看视频在线观看| 在线亚洲免费视频| 亚洲精品123区| 久久国产高清| 欧美日韩精品一区二区三区四区| 国产自产女人91一区在线观看| 99精品国产在热久久婷婷| 亚洲高清视频在线| 欧美一级视频| 欧美日韩国产三级| 影音先锋亚洲视频| 亚洲男女自偷自拍| aa日韩免费精品视频一| 久久久国产一区二区| 国产精品久久久久久久久久三级| 亚洲国产成人tv| 亚洲第一福利在线观看| 欧美一级二级三级蜜桃| 欧美日韩在线看| 亚洲日本va午夜在线影院| 久久国产天堂福利天堂| 欧美一区二区视频免费观看| 欧美日韩综合在线| 亚洲人成绝费网站色www| 久久精品亚洲一区二区三区浴池| 欧美一区二区三区啪啪| 欧美亚洲成人免费| 亚洲黄色成人| 亚洲欧洲一区二区在线播放| 久久久亚洲高清| 国产欧美一区二区三区久久| 中文久久精品| 中文一区二区在线观看| 欧美国产日韩在线观看| 在线成人av| 亚洲高清不卡av| 久久字幕精品一区| 国产一区二区剧情av在线| 亚洲免费综合| 欧美亚洲一区三区| 国产精品视频精品视频| 在线中文字幕不卡| 亚洲一区二区三区精品在线| 欧美日韩午夜精品| 亚洲美女啪啪| 亚洲少妇一区| 国产精品久久久久久久久久三级| 中日韩美女免费视频网址在线观看 | 亚洲私人影吧| 欧美午夜视频一区二区| 一本久道久久久| 亚洲一区中文字幕在线观看| 欧美午夜寂寞影院| 亚洲视频一区在线| 午夜精品福利一区二区蜜股av| 国产精品v欧美精品v日韩 | 欧美视频你懂的| 一二美女精品欧洲| 亚洲综合国产| 国产伦精品一区二区三区免费 | 中文av一区二区| 欧美日韩综合久久| 在线视频亚洲| 欧美一区二区日韩一区二区| 国产麻豆一精品一av一免费| 性久久久久久久| 久久久亚洲综合| 亚洲高清一区二| 一区二区三区精品在线 | 亚洲高清在线| 一区二区三区高清不卡| 欧美日韩综合在线免费观看| 亚洲午夜一区二区三区| 欧美一区二区视频免费观看| 国内自拍一区| 亚洲精品中文字幕女同| 欧美日韩一级视频| 亚洲自拍啪啪| 久久久噜噜噜久噜久久| 亚洲国产精品日韩| 亚洲一区一卡| 国产一区二区三区av电影| 亚洲黄网站黄| 欧美日韩中文在线| 亚洲在线观看视频| 麻豆精品视频| 亚洲精品视频二区| 亚洲欧美资源在线| 国内精品免费在线观看| 日韩视频免费观看| 国产精品久久久久久久久久三级| 欧美一区二区视频在线观看| 免费欧美电影| 一区二区三区精品视频在线观看| 欧美一区二区视频97| 在线看片成人| 亚洲欧洲av一区二区| 伊人伊人伊人久久| 亚洲影院污污.| 韩国成人精品a∨在线观看| 9l国产精品久久久久麻豆| 国产精品视频一二| 亚洲激情在线观看视频免费| 欧美视频1区| 久久狠狠亚洲综合| 欧美视频四区| 亚洲电影免费观看高清| 国产精品成人一区| 久久福利精品| 国产精品成人在线| 亚洲高清久久| 国产精品女人久久久久久| 91久久精品美女高潮| 国产精品久久久久久影视| 亚洲国产天堂久久国产91| 国产精品成人av性教育| 欧美亚洲成人网| 国产婷婷一区二区| 亚洲精品四区| 国产精品专区h在线观看| 亚洲精品乱码久久久久久久久| 国产精品日本欧美一区二区三区| 久久精品国产欧美亚洲人人爽| 欧美色图首页| 亚洲黄色在线看| 国产亚洲精品aa| 一区二区三区国产在线| 国内精品视频久久| 亚洲欧美日韩中文视频|