《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于TMS320DM6446的H.264編碼器的設計與優化
基于TMS320DM6446的H.264編碼器的設計與優化
摘要: 由于加入了多模式位移估計、基于4×4塊的整數變換等多種新的算法,使H.264算法本身的復雜度大幅增加。因此本文采用基于TI的TMS320DM6446的DAVINCI_EVM平臺作為算法的硬件平臺,提出針對達芬奇平臺對H.264編碼器進行優化,在不降低編碼質量的情況下提高程序運行效率,降低運算復雜度的一個實現方案。
Abstract:
Key words :

  2003年發布的H.264視頻壓縮編碼標準在一定程度上解決了要在盡可能低的碼率下獲得盡可能好的圖像質量這一問題。在相同的重建圖像質量下,H.264能夠比H.263節約50%左右的比特率,此外H.264還增強了其對網絡的適應性,差錯的恢復能力,使其非常適用于數字視頻存儲、IPTV及手機電視等視頻質量要求高而信道傳輸環境不穩定的場合。

  由于加入了多模式位移估計、基于4×4塊的整數變換等多種新的算法,使H.264算法本身的復雜度大幅增加。因此本文采用基于TI的TMS320DM6446的DAVINCI_EVM平臺作為算法的硬件平臺,提出針對達芬奇平臺對H.264編碼器進行優化,在不降低編碼質量的情況下提高程序運行效率,降低運算復雜度的一個實現方案。

  H.264編碼器的算法流程

  H.264編碼器結構如圖1所示,輸入的Fn為當前幀或場,編碼器以宏塊為單位進行處理,每個宏塊可以選擇幀內或者幀間預測兩種編碼方式。如果采用幀內編碼模式,其預測值PRED(圖中為P)是由本幀之前已經經過編碼、解碼、重建的一些樣本點生成。而如果采用幀間模式,則P由一個或者多個參考幀的運動補償預測生成。預測值P和當前塊相減后,產生一個殘差塊D,經塊變換、量化后產生一組量化后的變換系數X,再經熵編碼,與解碼所需的一些信息一起組成一個壓縮后的碼流,經NAL供傳輸和存儲用。

H

圖1 H.264編碼器結構

  編碼硬件平臺概況

  本文采用的達芬奇數字視頻評估模塊DVEVM(Digital Video Evaluation Module)是TI提供的用來評估DaVinci技術和DM644x體系架構的評估模塊,是強調片上能力的一個很好的參考平臺。其硬件資源包括TM320DM6446的DSP和ARM9的雙核芯片、128MB的SDRAM、16MB的NAND Flash以及豐富的外設接口。

  TM320DM6446中用于編碼器具體實現的C64x+ DSP的時鐘頻率達到600MHz。C64x+ DSP的內部存儲器的配置包括32KB的程序存儲器L1P、80KB的數據存儲器L1D和64KB的二級緩存L2。圖2為TM320DM6446中DSP端的核心C64x+的結構原理圖。

C64x

圖2 C64x+結構原理圖

  編碼器在TM320DM6446上的實現

  由于DSP平臺與PC平臺的差異性,必須對PC上開發的編碼器程序進行結構上的調整,并進行合理的內存分配才能在DSP平臺上正常的運行。主要實現步驟如下。

  1 編碼器C語言結構調整

  PC平臺上用C語言實現的編碼器在DSP平臺上的編碼幀率(fps)非常低,平均2秒才能編完一幀,其主要原因是無法利用DSP的并行處理機制。因此針對C64x+的特點,將程序中對流水線操作影響較大的的循環拆分成若干小循環實現。對編碼器運行速度影響較大的模塊如sad的計算,DCT變換等采用CCS自帶的圖像庫以提高編碼效率。

  2 DSP端的內存配置

  由于視頻編碼的數據存取量較大,而 DAVINCI_EVM提供了256MB的外部存儲器DDR2,因此通過對DSP/BIOS的設置將外部存儲器設置為DDR2,并將可執行的C代碼及C代碼的堆存入外部存儲器中。

  3 對DSP端的BOOT的設置

  由于TM320DM6446采用雙核的設計,ARM端只負責對整個工程的控制而不參與編碼算法的具體實現。為了保證編碼算法能在DSP端無中斷的全速運行,需要對ARM端進行屏蔽,并通過對DAVINCI_EVM跳線的設置使DSP端自BOOT。

  通過以上步驟編碼器效率雖然有所提高,但仍無法滿足實時性的要求,因此必須結合DM6446本身的特點對編碼器算法進行進一步的優化。

  編碼器的優化

  本文對H.264算法的優化主要有兩個方面:1)對算法中耗時較多的運動估計模塊進行優化。2)對DSP的數據搬移進行優化。

  1 對編碼器算法運動估計模塊的優化

  由于DSP硬件資源有限,因此有必要對H.264編碼器中所耗時間較多的模塊進行優化,表1為H.264各模塊復雜度比較。

H

  由表1可見運動估計占了一半左右的時間,運動估計復雜度高的主要原因是采用了全搜索算法,雖然精度非常高,但帶來了大量的計算量。針對這一問題,本文在已有的快速算法菱形搜索算法基礎上進行進一步的優化。

  為了減少靜止宏塊被編碼以及大模板搜索所帶來的運算量,首先在用菱形算法進行運動搜索之前以待編碼宏塊周圍已編碼宏塊的運動矢量信息及SKIP狀況為依據預測當前宏塊是否使用SKIP模式編碼。當待編碼宏塊為非靜止宏塊時,再根據周圍已編碼宏塊的SAD值預測當前宏塊的運動劇烈程度,若是運動平緩的宏塊則直接使用小模板進行搜索。只有當待編碼宏塊被判定為劇烈運動的宏塊時才進行大模板搜索。由于多次的大模板搜索循環帶來較大的計算量,因此在進行大模板搜索之前首先根據周圍宏塊的信息對最大搜索次數MaxNum進行預估值,當大模板的搜索次數大于MaxNum時直接跳轉至小模板搜索。此流程設計可使靜止宏塊和運動平緩的宏塊不進入運算量大的大模板搜索環節。優化后的菱形算法的流程如圖3所示。

 

優化算法流程圖

圖3 優化算法流程圖

  2 對DSP數據搬移的優化

  視頻編碼需要處理較大的數據量,如一幀CIF格式的YUV數據約有150KB,而H.264除了要存儲當前幀的信息外還必須存儲重建幀和參考幀的信息,為此必須使用DM6446的片外存儲器,也即DDR。但是DSP的CPU對不同的存儲器的訪問速度是不一樣的,訪問速度最快的是離DSP核最近的L1P和L1D,其次是二級緩存L2,訪問速度最慢的是DSP的片外存儲器。DSP對不同的存儲器的訪問速度相差數倍。為了提高編碼器的運行效率,節省DSP核對各個模塊訪問所消耗的時鐘周期,需要啟用DSP的DMA作為數據在兩個存儲器之間的傳輸通路。DMA的的特點是可以在不需要CPU干預的情況下,在后臺執行數據的高速傳輸,能夠有效減輕CPU的負荷。

  C64x+在外部存儲器與內部存儲器之間的數據傳遞可以通過增強型DMA(EDMA)實現。EDMA傳輸的發起方式有三種,包括手動觸發方式、外設事件發起方式及QDMA模式。在編碼算法中,每處理完一組宏塊就要向CPU提出DMA傳輸申請,因此采用QDMA模式的傳輸發起方式更適用于編碼算法。

  DSP核對兩級內部存儲器L1和L2的訪問速度也不同,如果將外部存儲器的數據直接通過EDMA傳入L1D和L1P,這樣的傳輸方式雖然較快,但需要分配比較大的L1 SRAM,這意味著L1的Cache就會變小,過小的L1 Cache會影響L2和外部內存中的代碼和數據的效率。出于上述考慮可以將L2作為L1與外部存儲器之間的數據過渡區。L1和L2之間的數據傳遞采用C64x+新引入的IDMA,其原理跟EDMA相似,實現兩個內部存儲器的高速數據傳遞。

  為了使EDMA可以不間斷的實現數據的搬移,本文采用了二級乒乓傳輸的方式,首先在L1 SRAM和L2 SRAM中開辟兩個緩沖區,CPU在處理一個當前宏塊組數據之前先處理EDMA和IDMA的傳輸申請,當CPU編碼完一個宏塊組時IDMA已將數據搬移至離核最近的L1緩沖區,當CPU繼續處理下一個宏塊組前再次處理EDMA和IDMA的傳輸申請。如此以乒乓傳遞的方式搬移數據可以保證CPU處理數據時最短的等待時間。圖4為L1、L2及外部存儲器DDR2之間的數據傳入示意圖。

存儲器數據傳遞流程圖

圖4 存儲器數據傳遞流程圖

  3 優化結果及分析

  表2為優化前后的H.264編碼器對三個測試序列在DM6446上編碼后的結果比較。在表2中,優化后的幀頻率比優化前有了較大幅度的提高,這是由于對編碼器的運動估計模塊進行優化后,有效減少了這一模塊所消耗的時鐘周期。而對DSP數據搬移方式的優化,減少了DSP核等待數據搬入所消耗的時鐘周期。表中PSNR的值在優化前后并沒有明顯變化,說明優化后編碼質量未受大的影響。

優化前后的H

  結束語

  本文結合DM6446的硬件結構特點,將H.264編碼器在DM6446中成功實現,并對編碼器運動估計模塊及DSP在編碼時的數據搬移進行了優化,取得了初步的效果,基本可達到CIF格式序列的實時編碼要求。由于DM6446具有DSP和ARM9的雙核構架,ARM端負責對整個視頻解決方案的控制和對編碼算法的調用,因此,下一步的工作重點為實現在ARM端對優化后的編碼算法進行合理的調用和控制。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美日韩精品综合在线| 欧美三日本三级少妇三2023| 亚洲毛片在线看| 久久av资源网| 欧美一区二区高清在线观看| 亚洲砖区区免费| 亚洲午夜精品久久久久久app| 日韩午夜视频在线观看| 亚洲精选在线观看| 亚洲经典视频在线观看| 在线观看国产成人av片| 狠狠做深爱婷婷久久综合一区| 国产日韩欧美综合一区| 国产日韩欧美91| 国产亚洲精品资源在线26u| 国产色爱av资源综合区| 国产亚洲人成a一在线v站| 国产伦精品一区二区三区四区免费| 国产精品护士白丝一区av| 国产精品99一区二区| 国产精品成人aaaaa网站| 欧美系列电影免费观看| 国产精品美女久久久久久免费| 国产精品久久二区二区| 国产精品久久久999| 国产精品一区二区男女羞羞无遮挡| 国产精品欧美一区喷水| 国产精品美女午夜av| 国产精品最新自拍| 国产一区深夜福利| 在线成人免费观看| 亚洲娇小video精品| 一本久道久久综合中文字幕| 中文在线一区| 欧美在线free| 亚洲欧洲在线一区| 99精品视频免费全部在线| 亚洲深爱激情| 欧美在线观看视频一区二区三区| 久久久久久午夜| 欧美成人a视频| 欧美日韩一区二区在线| 国产伦精品一区二区三区在线观看| 国产在线精品成人一区二区三区| 亚洲国产婷婷| 在线亚洲精品| 欧美中文字幕精品| 亚洲精选视频免费看| 亚洲综合二区| 久久性色av| 欧美日韩和欧美的一区二区| 国产精品一区免费视频| 影音先锋久久久| 99成人免费视频| 欧美亚洲综合另类| 亚洲精品视频在线观看网站 | 午夜一区不卡| 亚洲人成在线观看网站高清| 亚洲一区国产| 久久综合国产精品台湾中文娱乐网| 欧美激情久久久久久| 国产精品视频久久一区| 在线欧美日韩国产| 亚洲天堂网站在线观看视频| 欧美中文字幕在线播放| 一区二区三区日韩精品| 久久久99国产精品免费| 欧美日韩精品伦理作品在线免费观看| 国产精品视区| 亚洲美女尤物影院| 久久动漫亚洲| 亚洲综合三区| 欧美激情精品久久久六区热门 | 亚洲美女中出| 欧美在线视频观看| 99国产精品| 欧美在线亚洲在线| 亚洲深夜福利在线| 牛人盗摄一区二区三区视频| 国产精品大片免费观看| 亚洲第一精品夜夜躁人人爽| 亚洲一区欧美| 亚洲午夜国产一区99re久久| 久热这里只精品99re8久| 国产精品激情| 亚洲欧洲一区二区三区| 久久aⅴ国产欧美74aaa| 亚洲欧美视频一区二区三区| 欧美成人中文| 精品动漫一区| 午夜欧美精品| 亚洲欧美国产制服动漫| 欧美区一区二| 亚洲国产欧美一区二区三区久久 | 欧美日韩在线看| 在线看不卡av| 欧美中文字幕在线播放| 午夜精品视频在线| 欧美日韩在线一区二区三区| 亚洲国产欧美日韩| 亚洲国产精品一区二区www在线| 欧美综合国产精品久久丁香| 国产精品第一区| 亚洲精品免费在线观看| 亚洲经典自拍| 久久野战av| 国产在线高清精品| 欧美一级二区| 久久精品成人一区二区三区| 国产精品视屏| 亚洲专区一区| 欧美一区二区成人6969| 欧美午夜精品久久久久久孕妇| 亚洲欧洲一区二区三区| 亚洲精品免费看| 欧美大色视频| 亚洲第一久久影院| 亚洲欧洲在线一区| 欧美黄网免费在线观看| 亚洲国产女人aaa毛片在线| 亚洲人成在线观看网站高清| 媚黑女一区二区| 1024国产精品| 亚洲精品国产精品国自产观看| 麻豆精品在线观看| 在线观看欧美| 亚洲人成小说网站色在线| 免费成人在线观看视频| 亚洲第一精品影视| 日韩亚洲欧美高清| 欧美精品一区二区在线观看| 亚洲人被黑人高潮完整版| 99视频一区| 国产精品a久久久久| 亚洲图片欧洲图片日韩av| 午夜激情综合网| 国产色综合网| 亚洲欧洲综合| 欧美日本一道本在线视频| 99热这里只有成人精品国产| 亚洲男女自偷自拍| 国产精品视频一区二区三区| 欧美在线视屏| 欧美成人国产一区二区| 亚洲精品乱码久久久久久| 亚洲一区二区av电影| 国产精品一国产精品k频道56| 午夜欧美大尺度福利影院在线看| 久久久欧美精品| 亚洲黑丝在线| 亚洲一区二区三区四区五区黄| 国产精品久久久久久影视| 午夜欧美电影在线观看| 免费欧美高清视频| 99精品久久久| 欧美在线视频观看免费网站| 一区二区三区在线视频免费观看| 亚洲精品中文字| 国产精品久久久久国产精品日日| 欧美伊人久久大香线蕉综合69| 免费成人av在线| 亚洲少妇诱惑| 久久一区二区三区超碰国产精品| 亚洲精品中文字幕女同| 校园激情久久| **网站欧美大片在线观看| 亚洲伊人网站| 好吊一区二区三区| 99精品国产在热久久婷婷| 国产精品久久午夜| 亚洲国产精品久久久| 国产精品成人久久久久| 久久精品国产99国产精品| 欧美精品一区二区三区在线播放| 亚洲在线视频免费观看| 免费成人av在线看| 亚洲影视在线播放| 欧美1区2区| 亚洲免费在线视频| 欧美激情一区二区三区高清视频 | 亚洲日本无吗高清不卡| 国产精品美腿一区在线看| 亚洲福利一区| 国产精品国产自产拍高清av王其| 亚洲国内精品| 国产精品午夜av在线| 亚洲精品国产系列| 国产精品在线看| 一本色道久久综合亚洲精品婷婷 | 久久久久国产精品www| 日韩亚洲欧美在线观看| 久久亚洲精品网站| 亚洲天堂激情| 欧美精品一区二区三区在线播放 | 久久久爽爽爽美女图片| 一本色道久久88亚洲综合88| 狼人社综合社区| 亚洲欧美中文日韩v在线观看| 欧美剧在线观看| 亚洲国产mv|