《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 基于TMS320C64x DSPs的MPEG-4實時編碼器設計與實現

基于TMS320C64x DSPs的MPEG-4實時編碼器設計與實現

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

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


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


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


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


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


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


4 結果分析
  對各標準視頻序列進行編碼,測得表3所示數據。實時采集D1(720×576)分辨率的視頻進行編碼,測得碼率為850kbps時,編碼速率達25fps以上,峰值信噪比(PSNR)高于31dB,實現了高分辨率的實時MPEG-4編碼。


  表3中各視頻序列的編碼均采用了8×8半像素精度的運動估計,解碼圖像的視覺效果較好。對于較低分辨率的視頻(QCIF、CIF),其編碼速率已遠遠高于實時的要求,因此可以考慮添加新的算法以提高壓縮效率并增強碼流的抗差錯性能。
  本文以DM642芯片為例詳述了基于C64x DSPs的MPEG-4實時編碼器設計。編碼器采用MPEG-4 Simple Profile算法,在算法和代碼優化方面還有一定的研究空間。本文給出的設計方法可以進一步推廣到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]. 北京:科學出版社,2000
5 李方慧,王 飛,何佩琨. TMS320C6000系列DSPs的原理與應用[M].北京:電子工業出版社,2003

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲图片自拍偷拍| 日韩午夜在线观看视频| 久久久久久**毛片大全| 亚洲一区二区三区在线视频| 最近中文字幕日韩精品| 亚洲国产欧美日韩精品| 久久精品夜色噜噜亚洲aⅴ| 欧美一区在线直播| 狠狠做深爱婷婷久久综合一区| 麻豆成人在线| 你懂的国产精品永久在线| 一区二区在线观看视频| 午夜精品久久久久久久99热浪潮| 亚洲线精品一区二区三区八戒| 亚洲国产精品久久久久| 国产欧美精品久久| 亚洲欧美一区二区三区久久| 欧美网站在线观看| 亚洲第一区在线| 国产欧美一区二区色老头| 亚洲制服av| 在线精品福利| 影音先锋久久精品| 欧美亚洲日本一区| 久久久999精品视频| 国产精品视频观看| 亚洲永久字幕| 免费视频亚洲| 亚洲最新视频在线| 亚洲精品视频免费在线观看| 一本大道久久a久久精二百| 欧美中在线观看| 久久久亚洲国产美女国产盗摄| 欧美在线视频不卡| 欧美激情一区二区三区全黄| 亚洲缚视频在线观看| 久久影视三级福利片| 欧美三级乱码| 国产美女精品人人做人人爽| 国产一区二区高清视频| 亚洲国产婷婷综合在线精品| 欧美成人亚洲成人日韩成人| 一区二区三区**美女毛片| 老色鬼久久亚洲一区二区| 在线一区观看| 一本色道久久88精品综合| 久久亚洲春色中文字幕| 久久se精品一区精品二区| 亚洲免费中文字幕| 一区国产精品| 午夜日韩福利| 狠狠色狠色综合曰曰| 免费成人激情视频| 国产精品婷婷午夜在线观看| 亚洲视频导航| 老牛影视一区二区三区| 国产日韩精品一区| 国产午夜精品美女视频明星a级| 亚洲一二区在线| 久久婷婷久久一区二区三区| 欧美大片在线看免费观看| 国产亚洲成av人在线观看导航| 欧美午夜精品久久久久久久| 亚洲最快最全在线视频| 亚洲一区成人| 国产日韩欧美综合在线| 欧美日韩在线观看一区二区| 亚洲一区免费看| 国产日本欧美视频| 美女露胸一区二区三区| 国产精品久久国产精麻豆99网站| 日韩小视频在线观看| 国产日韩欧美一区二区三区在线观看| 亚洲七七久久综合桃花剧情介绍| 影院欧美亚洲| 亚洲日本aⅴ片在线观看香蕉| 久久成人免费视频| 极品中文字幕一区| 欧美激情一区在线观看| 国产午夜精品全部视频播放| 亚洲免费av观看| 99精品福利视频| 欧美一区二视频| 亚洲伦理在线免费看| 欧美高清hd18日本| 国内欧美视频一区二区| 国产精品入口66mio| 久久久亚洲影院你懂的| 国产精品国产精品| 美女国内精品自产拍在线播放| 国产日韩免费| 国产性天天综合网| 国产婷婷97碰碰久久人人蜜臀| 亚洲精品一区二区三区蜜桃久| 免费观看30秒视频久久| 欧美在线亚洲| 久久av一区| 欧美在线视频观看免费网站| 亚洲高清成人| 另类图片综合电影| 今天的高清视频免费播放成人| 欧美性猛交视频| 亚洲视频一二| 在线观看亚洲精品| 亚洲第一页自拍| 欧美揉bbbbb揉bbbbb| 亚洲第一在线综合在线| 日韩午夜视频在线观看| 国产三级欧美三级日产三级99| 国产视频一区二区三区在线观看| 99精品免费视频| 亚洲国产日韩欧美在线99| 一本色道久久88精品综合| 免费高清在线一区| 国内成人自拍视频| 在线观看亚洲a| 亚洲欧洲av一区二区三区久久| 国产精品久久九九| 美女啪啪无遮挡免费久久网站| 欧美一区二区三区四区在线| 亚洲精品自在在线观看| 久久精品一本久久99精品| 影音先锋在线一区| 欧美在线3区| 久久av老司机精品网站导航| 欧美ed2k| 亚洲国产精品久久久久久女王| 欧美亚洲日本一区| 久久激情婷婷| 在线一区二区三区四区| 亚洲成人在线视频网站| 亚洲国产欧美国产综合一区| 久久蜜桃av一区精品变态类天堂| 欧美成人亚洲成人日韩成人| 亚洲国产日韩欧美在线图片| 久久九九精品| 欧美成人激情在线| 国内精品久久久久久久影视蜜臀| 美女诱惑黄网站一区| 国产自产在线视频一区| 你懂的一区二区| 久久国产视频网站| 在线观看欧美一区| 亚洲国产精品成人| 亚洲精品专区| 国产欧美韩日| 亚洲精品国产精品乱码不99按摩| 美国三级日本三级久久99| 久久精品72免费观看| 国产在线视频欧美一区二区三区| 亚洲久久在线| 午夜久久久久久久久久一区二区| 久久久久久亚洲精品杨幂换脸| 欧美精品久久一区二区| 国产精品麻豆va在线播放| 老司机一区二区| 老司机午夜精品| 欧美另类视频在线| 久久久久久久97| 欧美黄色大片网站| 久久国产夜色精品鲁鲁99| 国产精品视频一区二区高潮| 亚洲欧美文学| 欧美成人黑人xx视频免费观看| 精品成人免费| 韩国三级电影一区二区| 国产综合久久久久影院| 国产精品成人一区| 国产精品一区久久久久| 一本一道久久综合狠狠老精东影业| 亚洲免费在线视频| 亚洲国产日韩在线| 国产精品久久久久久av下载红粉| 欧美亚日韩国产aⅴ精品中极品| 欧美激情精品久久久久久蜜臀| 欧美精品免费看| 久久婷婷激情| 国产精品国产三级国产专区53| 韩国免费一区| 欧美—级高清免费播放| 久久精品国产v日韩v亚洲| 一本色道婷婷久久欧美| 国产欧美一区二区色老头| 久久久久久国产精品mv| 国产在线视频欧美一区二区三区| 国内久久精品视频| 久久全国免费视频| 一区二区三区高清在线观看| 国产欧美在线观看一区| 亚洲国产日韩欧美在线图片| 久久精品日韩一区二区三区| 欧美激情第三页| 欧美视频在线观看 亚洲欧| 欧美精品一区在线| 一区二区三区视频免费在线观看| 欧美在线免费观看视频| 亚洲手机成人高清视频| 亚洲激情视频在线| 欧美精品在线看| 久久国产精品黑丝| 亚洲精品在线观看视频| 欧美大片免费久久精品三p| 欧美三级在线视频| 亚洲成在线观看| 黄网站色欧美视频| 亚洲人成艺术| 欧美高清视频一二三区| 久久久最新网址| 欧美一区日韩一区| 国产精品网站在线| 日韩视频免费观看高清完整版| 国产精品一区亚洲| 中文在线不卡视频| 久久九九99| 久久阴道视频| 欧美成人在线网站| av不卡在线| 国产精品男gay被猛男狂揉视频| 久久国产毛片| 欧美日韩极品在线观看一区| 一区免费在线| 亚洲区一区二区三区| 欧美视频精品在线| 免费视频一区| 午夜久久黄色| 久久字幕精品一区| 午夜免费在线观看精品视频| 欧美风情在线| 久久噜噜亚洲综合| 欧美成人免费全部| 国产日韩精品一区二区三区| 在线日韩日本国产亚洲| 亚洲深夜福利在线| 最新中文字幕亚洲| 久久综合伊人77777麻豆| 韩国三级电影久久久久久| 欧美日韩综合在线免费观看| 一本一本久久a久久精品综合妖精| 国产精品99免费看| 久久成年人视频| 一区二区三区无毛| 国产精品看片资源| 欧美日韩综合另类| 国产综合精品| 亚洲一区二区免费在线| 亚洲国产婷婷香蕉久久久久久99| 欧美性猛交99久久久久99按摩| 国产精品亚洲一区二区三区在线| 久久久久国产精品www| 欧美成人国产va精品日本一级| 亚洲欧美在线另类| 欧美视频在线观看一区二区| 国产精品毛片在线| 亚洲午夜极品| 亚洲综合日韩| 亚洲女人天堂成人av在线| 久久国内精品自在自线400部| 一本色道久久综合亚洲精品高清| 美女视频网站黄色亚洲| 欧美日韩另类在线| 在线亚洲免费| 欧美亚洲一区二区在线| 夜夜嗨av一区二区三区四区| 亚洲欧美日韩成人高清在线一区| 国产一区二区按摩在线观看| 欧美激情国产日韩精品一区18| 国产精品中文字幕欧美| 欧美影院成人| 国产精品一区二区你懂的| 久久蜜桃av一区精品变态类天堂| 久久综合导航| 欧美在线视频播放| 亚洲国产国产亚洲一二三| 欧美成人第一页| 久久精品人人做人人爽| 亚洲欧美日韩国产综合在线| 欧美性做爰毛片| 久久综合狠狠综合久久激情| 欧美精品一区二区久久婷婷| 欧美制服丝袜| 在线日韩电影| 久久精品99国产精品酒店日本| 午夜视频在线观看一区二区三区| 欧美激情一区二区| 亚洲一区精品在线| 在线电影院国产精品| 国产精品99久久99久久久二8| 欧美午夜电影在线| 狠狠色综合色区| 亚洲日韩中文字幕在线播放| 久久久精品2019中文字幕神马| 国产精品网曝门| 欧美三级网址| 欧美日韩一区三区| 欧美中文字幕在线观看| 在线成人h网| 国内在线观看一区二区三区| 欧美午夜性色大片在线观看| 99re6这里只有精品| 欧美jizz19hd性欧美| 欧美视频二区36p| 亚洲日本中文字幕| 久久久精品动漫| 亚洲免费视频网站| **网站欧美大片在线观看| 国产亚洲精品激情久久| 久久久久国色av免费观看性色| 久久米奇亚洲| 久久久久9999亚洲精品| 国产精品成人久久久久| 亚洲视频在线观看视频| 国产精品电影观看| 国产精品区一区二区三区| 日韩视频一区二区在线观看| 久久久精品一品道一区| 在线欧美影院| 国产亚洲一区二区精品| 久久久久久一区二区三区| 美女爽到呻吟久久久久| 国产婷婷色综合av蜜臀av| 亚洲国产精品尤物yw在线观看| 国产精品女同互慰在线看| 亚洲第一主播视频| 亚洲精选在线观看| 亚洲国产岛国毛片在线| 久久gogo国模啪啪人体图| 欧美~级网站不卡| 国产一区二区日韩精品|