基於TMS320DM6446的H.264編碼器實現與優化

2020-11-25 電子產品世界

1 引言
H.264是ITU-T的視頻編碼專家組(VCEG)和ISO/IEC的活動圖像專家組(MPEG)聯合制定的視頻壓縮標準。它在H.263/H.263++的基礎上發展,在繼承所有編碼壓縮技術優點的同時引入許多全新的編碼技術和網絡適配層NAL的概念,從而擁有更高的編碼效率和更好的網絡適配性。為從低碼率的實時通信系統或無線環境到高碼率的HDTV和數字存儲系統提供一個優良的視頻壓縮編碼通用工具。但H.264標準優異的性能表現是以編碼運算複雜度和運算量大為代價,在通用的PC機平臺實現會佔用較大的CPU和內存資源。隨著數位訊號處理器(DSP)技術的高速發展,DSP的處理速度和能力飛速提高。DSP已滿足H.264標準的編解碼運算速度要求。因此,在穩定的媒體處理器平臺上實現H.264標準有著較好的工程意義和應用前景。
詳細介紹了以TMS320DM6446DSP為核心的視頻編碼系統的硬體設計,並重點研究了H.264編碼器在以TMS320DM 6446為目標的CCS平臺上的移植和優化工作。

2 視頻編碼系統硬體設計
2.1 DSP的選型
DSP選用TI公司的Davinci媒體處理專用器件TMS320DM6446(簡稱DM6446)。它採用ARM+DSP雙核架構,包含一個TMS320C64x+核心和一個ARM926EJ-S核心。C64x+核心採用改進的超長指令字VLIW體系結構,內部擁有8個並行的運算單元,時鐘頻率600 MHz,峰值處理能力高達4 752 MI/s。DM6446片內為兩級高速緩存(Cache)結構,設計有獨立的32位DDR2 SDRAM接口和16位異步EMIF接口。此外,DM6446還集成有多種適用於視音頻多媒體處理的片內資源和接口,如用於和外部解碼器連接的視頻處理前端模塊VPFE、和視頻顯示設備連接的視頻處理後端模塊VPBE、多通道音頻串口等。
DM6446不僅在處理性能上完全滿足H.264標準要求。而且在內部結構、片內資源和外部接口上對視頻處理應用專門優化,大大降低視頻應用的開發難度和成本。
2.2 系統結構框圖
視頻編碼系統硬體結構原理框圖如圖1所示。主機通過PCIE總線對DSP進行初始化加載程序。攝像頭輸出的模擬視頻信號經視頻解碼模塊轉換為數位訊號,經FPGA轉換電平。通過DM6446的VPFE模塊接口送人DSP,進行壓縮編碼處理。編碼後的視頻數據從DM6446的EMIF接口輸出通過PCIE總線送回主機進行下一步處理。DM6446的VPBE模塊可將採集的數字視頻信號再轉換為模擬信號輸出至電視進行監控。DDR2 SDRAM存儲編碼過程中的原始圖像、參考幀、編碼參數等數據。DM6446通過I2C總線配置A/D轉換器。FPGA與PCIE橋PEX8311之間加入雙埠RAM,以提高數據的傳輸效率。

本文引用地址:http://www.eepw.com.cn/article/188889.htm

2.3 視頻解碼模塊設計
模擬視頻信號的傳輸格式種類很多,而且國際上對數字視頻信號的傳輸格式有明確的標準規定,因此一般通用的A/D轉換器並不適合視頻領域應用。這裡選用專用的視頻解碼器ADV7189B,它支持12路模擬視頻通道,包含3個具有防噪性能的12位54 MHz的A/D轉換器。支持CVBS、S-端子、YprPb 3種格式的模擬視頻信號輸入,能夠自動偵測NTSL/PAL/SECAM制式,輸出ITU-R BT.656標準的數字視頻信號。選用12路模擬通道中的3路,復用的支持3種模擬視頻格式。ADV7189B輸出10位數字視頻信號、獨立的垂直同步信號VD、水平同步信號HD和像素同步時鐘LLC1,電壓均為3.3 V電平,經過FPGA轉換為DM6446要求的1.8 V,然後從DM6446的VPFE模塊專用數字視頻信號接口送入DSP。壓縮編碼前,VPFE模塊將ITU-R BT.656標準的視頻數據轉換為H.264兼容的YUV4:2:O格式,存入DDR2 SDRAM中。VPFE模塊還支持對視頻數據進行白平衡、縮放等預處理操作。ADG3301實現I2C總線的電平轉換。
2.4 視頻編碼模塊設計
DM6446片內的VPBE模塊包含4個54 MHz的D/A轉換器,可在DM6446內部將數字視頻信號直接轉化為模擬視頻信號,4路輸出,並且支持CVBS、S-端子、YprPb 3種模擬視頻格式。因此,視頻編碼模塊設計較為簡單,只需對4路模擬輸出信號放大,就可直接與監視設備連接。選用TI公司的電壓反饋CMOS運算放大器OPA357進行運算放大。
2.5 控制電路設計
DM6446的視頻信號接口、EMIF接口為1.8 V電平,ADV7189B接口、PCIE橋接口為3.3 V電平。系統需要大量的電平轉換工作,同時還需要實現大量的邏輯控制、PCIE橋與DM6446的通信協議。FPGA器件是最適合的選擇。選用Altera公司的邏輯器件EP2C35,它可在片內實現1.8 V、2.5 V、3.3 V電平的轉換,並且能夠滿足系統對邏輯控制功能的要求。EP2C35內部集成有片內存儲器,可在ADV7189B與DM6446之間建立一個緩存區,提高數據傳輸效率。FPGA與DM6446、ADV7189B和PCIE橋接口電路如圖2所示。

3 H.264編碼器的DSP移植與優化
目前,H.264編碼器的實現版本主要有:JM、T264、X264。其中JM是H.264官方源碼,實現H.264所有特徵,但其程序結構冗長,只考慮引入各種新特性以提高編碼性能,忽略編碼複雜度,其複雜度極高,不宜實用;T264編碼器編碼輸出標準的264碼流,解碼器只能解T264編碼器生成的碼流;X264是編碼器注重實用,在不明顯降低編碼性能的前提下,努力降低編碼的計算複雜度。這裡,用X264編碼器對DSP平臺移植、優化。X264程序在DSP平臺上實現及優化主要有:程序簡化、代碼移植、代碼優化。
3.1 程序簡化
X264編碼器除支持H.264的基本檔次外,還包含主要檔次的某些功能選項以及其他功能模塊,代碼尺寸較大,因此需要將不必要的功能模塊刪除,以減小代碼尺寸。主要做以下刪減:刪除X264程序中的解碼部分,以及基本檔次功能之外的CABAC、B slice部分;X264程序是基於X86的PC平臺,包含了SSE、MMX等。PC平臺使用的優化技術,在DSP平臺下無效:針對DSP平臺特點,調整刪減後的代碼文件結構。
3.2 代碼移植
TI公司的DSP開發工具CCS具有自己的ANSI C編譯器和優化器,並有自己的語法規則和定義,經過上一步簡化後得到純C版本的X264編碼器需要經過修改才能夠在CCS下應用於具體的DSP。主要包括:①Visual c++、CCS對於變量和結構體的「重複定義」問題的不同處理,需更改頭文件中變量和結構體定義的位置;②用功能相同的庫函數代替CCS中沒有的庫函數,如strncasecmp();③數據格式的不同,用long代替CCS中沒有的_int64格式;④按照CCS下C語言的規則定義數組;⑤修改系統配置參數的讀取方式;⑥編寫針對TMS320DM6446存儲結構的CMD文件。如此,X264便可以在CCS下編譯通過並運行。
3.3 代碼優化
純C版本的X264程序並沒有利用DM6446的資源和並行機制,代碼運行速度極低。因此必須對代碼進行優化,提高處理性能。X264代碼優化有以下3個層次:項目級優化、算法級優化和指令級優化:
(1)項目級優化 項目級優化主要是對CCS提供的各種編譯參數進行選擇、搭配、調整,如本文使用的選項-o3、-pm等;利用CCS編譯器提供的優化功能,改善循環及多重循環體性能,進行軟體流水,提高軟體的並行性;改寫不適合編譯器優化的語句,使CCS能夠對程序進行更好的優化。
(2)算法級優化進行算法級優化時。應使VC環境下的純C版本與CCS下的版本同步更新,VC版本運行正確,既可以保證算法理論上的正確,又可以加快工作速度並減少問題的產生。該算法優化工作主要有以下幾點:①運動估算法的選擇:X264編碼器提供3種可選的整像素運動估算法:X264_ME_ESA(全搜索法)、X264_ME_HEX(六邊形搜索法)、X264_ME_DIA(小菱形搜索法)。在VC環境下使用純C版本代碼對同一視頻序列使用3種不同的搜索方法進行編碼。對比3種搜索方法在編碼速度、峰值信噪比(PSNR)、碼率方面的性能。對比之下X264_ME_ESA算法的峰值信噪比最高,X264_ME_HEX次之,X264_ME_DIA最低,但相互之間的質量差別並不大,碼率差別也很小,但編碼速度卻有明顯差距,X264_ME_DIA較前兩者在編碼速度上有明顯的優勢。經比較,選擇使用X264_ME_DIA運動估計算法。②幀內預測模式的改進:在X264的幀內預測流程中加入提前終止模式選擇的條件,改進算法的流程。進行16×16宏塊幀內模式搜索時,在當前模式的開銷小於已搜索過的模式的最小開銷的一半時,終止16×16幀內預測模式選擇,以當前模式為最佳16×16幀內預測模式。對4×4塊也加入相同的條件,並且若當前4×4塊幀內預測模式的預測開銷比相應的最佳16×16塊幀內預測模式的開銷的1/16還要小,則終止4×4塊的幀內預測模式選擇,以當前預測模式作為最佳4×4塊的幀內預測模式。改進後的幀內預測主體流程如圖3所示,灰色部分為加入的判定條件。


相關焦點

  • 基於TMS320DM642電子穩像算法的實現
    摘要:介紹了一種解決視頻圖像抖動問題的電子穩像方法,系統利用灰度投影算法和德州儀器公司的定點數位訊號處理器晶片TMS320DM642實現電子穩像。1 基於灰度投影的電子穩像算法1.1 電子穩像基本原理 電子穩像(Electronic Image Stabilization,EIS)是集電子技術、計算機、數位訊號處理、視頻圖像處理等為一體的實現數字圖像序列穩定的技術。電子穩像技術中最基本的是像移補償技術是直接從像面上通過檢測參考圖像和被比較圖像的運動矢量,然後利用算法進行補償的技術。
  • 基於tms320vc5416和圖像傳感器0v7620的足球機器人設計
    本文在簡單介紹了全自主足球機器人比賽系統的基礎上,分析了傳統視覺系統的缺點,給出了用cmos圖像傳感器 0v7620、SRAM幀存儲器 IS61LV25616、CPLD/FPGA控制器 EPF10K10LC84—3以及 DSP器件 tms320vc5416
  • 一種基於FPGA高性能H.264變換量化結構設計
    264作為最新的視頻編碼標準具有很高的壓縮性能,對它的研究具有重要的意義。根據H.264的變換量化算法設計一種基於FPGA的高性能變換量化處理結構,該結構採用流水線操作和分時復用技術。而FPGA器件採用流水控制策略和並行處理方式,可為H.264複雜的編碼模塊提供硬體加速引擎。變換量化模塊在H.264編碼算法中被頻繁調用。因此研究在儘量合理控制其資源消耗的前提下,提高變換量化模塊的工作頻率及處理數據的吞吐量,並完成變換量化一系列完整功能的變換量化結構具有重要的實際意義,也成為當前研究的首要問題。
  • 基於小波變換與DSP的實時音頻視頻處理系統
    本文介紹一種基於adv611,ct8021晶片同時結合ti公司的tms320c6201晶片實現音/視頻實時處理系統。在該實時系統中,dsp晶片作為控制核心、一方面要管理adv611,ct8021,存儲器和通信接口,另一方面要對adv611的圖像壓縮效果進行調解,對數據速率實時控制。系統實現方案原理圖如圖1所示。
  • 基於TMS320F28035的永磁同步電機矢量控制系統研究
    因此,文中採用TI公司C2000系列高壓數字電機開發套件,利用其DSP晶片TMS320F28035高速數據處理能力,使得整個電機控制系統具有控制精度高,實時性強的特點。1 系統結構針對永磁同步電機高階、多變量、非線性、強耦合的控制特點,如何有效解耦進而實現直流電機般的轉矩控制方式,一直以來都是主要的研究熱點。
  • 經典的開源編碼器X264/X265是否真的無法超越?
    X264的壓縮效率成為H.264的巨大優勢,對比其他編碼軟體,如業內某知名雲公司使用的openh264是WebEx的開源項目,僅能做到與X264的superfast檔次上速度相當,但壓縮效率落後超過20%。而當今的手機編碼晶片的壓縮效率落後X264高達20%以上。
  • 基於TMS320F2812的逆變電源控制器設計
    首先介紹了逆變電源技術的發展現狀,在介紹了晶片的特性之後,詳細分析了基於TMS320F2812逆變電源控制器的硬體和軟體設計,並對仿真結果進行分析總結。結果表明,該逆變電源能夠得到穩定的正弦波輸出。1 基於TMS320F2812逆變電源的總體設計1.1 DSP控制器TMS320F2812性能TMS320F2812晶片是TMS320C28x系列中的一種,它採用先進的改進型哈佛結構,其程序存儲器和數據存儲器具有各自的總線結構,從而它的處理能力達到最大;它的指令執行速度為150 MIPS,這種高性能使複雜控制算法的實時執行成為可能。
  • 基於TMS320LF2407的FFT算法的實現及應用
    雖然FFT 比DFT的計算量減少了很多,但用普通單片機來實現FFT多點、實時運算還是比較困難的。DSP(數位訊號處理器)具有運算速度快和精度高的特點,恰好滿足FFT的要求,能較好地解決這個問題。1 快速傅立葉變換的原理 非周期性連續時間信號x(t)的傅立葉變換可以表示為
  • 基於FPGA的幀內預測編碼器硬體架構設計詳解
    基於FPGA的幀內預測編碼器硬體架構設計詳解 工程師青青 發表於 2018-07-17 10:42:00 針對幀內預測的快速算法,由於DSP 架構軟體順序執行的局限性難以滿足實時性要求
  • 網絡視頻編碼器在視頻監控的實現步驟
    到底什麼是網絡視頻編碼器呢,網絡編碼器,它是一種壓縮、處理音視頻數據的專業網絡傳輸設備,也就是俗稱網編,還有一種設備叫做網絡視頻解碼器(俗稱網解),網絡視頻編碼器用在前端,網絡視頻解碼器用在後端,二者可以理解成一個雙向傳送的通道,數據編碼後需要解碼還原,二者是相輔相成的。
  • 基於DSP和FPGA的機器人聲控系統設計與實現
    本文引用地址:http://www.eepw.com.cn/article/21345.htm 本次設計採用了性價比較高的數位訊號處理晶片tms320vc5509作為語音識別處理器,具有較快的處理速度,使機器人在脫機狀態下,獨立完成複雜的語音信號處理和動作指令控制,fpga系統的開發降低了時序控制電路和邏輯電路在pcb板所佔的面積[1],使機器人的"大腦"的語音處理部分微型化、低功耗。
  • 基於DSP晶片TMS320F240實現大型換熱設備汙髒的在線監測系統的設計
    基於DSP晶片TMS320F240實現大型換熱設備汙髒的在線監測系統的設計 王小華 , 樊紹勝 發表於 2020-11-11 11:02:51 凝汽器是火力發電廠的大型換熱設備
  • 基於TMS320F28033的20MHz手持式雙蹤袖珍示波器
    摘要:項目實現的是一個手持式雙蹤袖珍示波器,以TMS320F28033為核心,由信號放大電路、信號採集電路、數據存儲與處理模塊、系統控制與顯示模塊等部分組成
  • 基於TMS320X2812的高精度轉角測量系統設計
    目前,利用圓光柵方法實現的高精度軸轉角測量系統以其結構簡單,操作方便,測量精度高等特點而得到廣泛應用。這裡提出一種基於圓光柵的非接觸式軸轉角位移測量系統設計,並配合新一代DSP處理器TMS320X 2812進行數據處理及控制,使得角位移的測量系統具有結構簡單,靈敏度高,功耗小,響應快,測量範圍廣,可智能化,不受電磁幹擾等特點。
  • 基於ADSP-BF533處理器的去方塊濾波器的實現及優化
    在已有的基於塊的視頻編解碼系統中,當碼率較低時都存在方塊效應,新的視頻編碼標準H.264中亦是如此。產生這種方塊效應的主要原因有兩個:一是由於對變換後的殘差係數進行的基於塊的整數變換後,以大的量化步長對變換係數進行量化會使得解碼後的重建圖像的方塊邊緣出現不連續;二是在運動補償中插值運算引起的誤差使得編解碼器反變換後的重建圖像會出現方塊效應。
  • 單晶片編碼器實現精確運動控制
    而且實現這些變化會影響系統設計的複雜性、可製造性、外形尺寸、成本和上市時間。然而,提高運動控制的反饋有助於提高運動系統的性能。後面是一個可以減少這些因素或者完全消除它們的編碼器設計資料。  在圖2中,獨立封裝編碼器方案被單晶片編碼器設計取代。這個例子用的是一個iC-MH磁編碼器IC.採用這種類型設計,可以通過一個數字接口來調整編碼器的配置。  如圖中所示,編碼器晶片感知電機軸旋轉的方法是通過一個徑向磁化的圓柱狀磁鐵來實現的。
  • 視頻編碼器的作用以及視頻編碼器能應用的場合
    為了實現在有限帶寬下傳輸如此高數據量的視頻圖像,音視頻應用系統通過使用編碼設備將圖像進行壓縮編碼大幅降低數據量後再通過網絡傳輸,目前這些編碼設備主要採用H.264編碼技術。H.264多年來一直很好的完成著視頻編碼、壓縮、轉碼方面的工作,風行十餘年。
  • 基於TMS320LF2407A DSP的PFC級電路的原理與
    基於TMS320LF2407A DSP的PFC級電路的原理與 佚名 發表於 2010-04-20 13:35:35 基於TMS320LF2407A DSP的PFC級電路的原理與設計  1、引言
  • 基於TMS320F240專用定點可編程晶片實現電動機微機保護裝置的設計
    基於TMS320F240專用定點可編程晶片實現電動機微機保護裝置的設計 單亞娟,鄭建勇,曹 發表於 2020-11-25 10:30:06   作者:單亞娟,鄭建勇
  • 基於TMS320F28335的恆流型饋能式電子負載的設計
    摘要:針對電源設備出廠老化測試電能浪費問題,設計了一種基於TMS320F28335DSP的恆流型饋能式電子負載描述了一種原邊帶箝位二極體的ZVS移相全橋變換器的工作特點,