基于Altera cyclone V SOC的JPEG編碼分析
H.264等視頻壓縮算法在視頻會議中是核心的視頻處理算法,它要求在規(guī)定的短時間內,編解碼大量的視頻數據,目前主要都是在DSP上運行。未來在添加4k*2k、H.265編解碼等功能,并要求控制一定成本的情況下,面臨DSP性能瓶頸的問題,所以希望部分算法可以下放到FPGA來實現,借助FPGA并行處理的優(yōu)勢,來加速整個系統(tǒng)。
基于altera cyclone V soc平臺的試驗可行性分析
1.JPEG圖像壓縮算法與H.264等視頻壓縮算法,有一定的相似性,并要簡單很多,有一定的借鑒意義,故本次短期試驗使用JPEG算法來驗證該SOC平臺;
2.JPEG壓縮算法如果完全在FPGA上用VerilogHDL語言實現,有一定難度,并且開發(fā)周期很長,而C語言源碼,已經比較成熟,移植到ARM比較簡單;
3.經考察,altera cyclone V soc平臺,擁有兩顆速度高達800Mhz的cortex A9內核,并有大容量的邏輯單元,和高速收發(fā)模塊。FPGA與ARM之間的AXI標準總線,速度更是高達100Gbit,對傳輸高清視頻數據,即使4K*2K也是綽綽有余。
試驗過程
JPEG是Joint Photographic Experts Group的縮寫,即ISO和IEC聯合圖像專家組,負責靜態(tài)圖像壓縮標準的制定,這個專家組開發(fā)的算法就被稱為JPEG算法,并且已經成為了大家通用的標準,即JPEG標準。JPEG壓縮是有損壓縮,但這個損失的部分是人的視覺不容易察覺到的部分,它充分利用了人眼對計算機色彩中的高頻信息部分不敏感的特點,來大大節(jié)省了需要處理的數據信息。
JPEG編碼中主要涉及到的內容主要包括:
1. Color Model Conversion(色彩模型)
2. DCT(Discrete Cosine Transform離散余弦變換
3.重排列DCT結果
4.量化
5. RLE編碼
6.范式Huffman編碼
7. DC的編碼
本次試驗ARM側運行LINUX操作系統(tǒng),并將Color Model Conversion部分,下發(fā)給FPGA側來實現,如上圖,黃色區(qū)域標記。其中ARM核與FPGA的數據交互運用了HPS-to-FPGA x64 Bridge,該總線的讀寫操作都是在MMAP(將底層地址空間映射到用戶層)后,通過使用HWlib庫函數來實現。在FPGA側,運用Qsys工具,添加Application_logic用戶邏輯模塊,來實現Color Model Conversion功能,如下圖黃色區(qū)域標記。
試驗結果
1.整個編碼過程正常,以下左側為編碼前的真彩。bmp格式圖片,右側為編碼后的。jpg格式圖片。
2.通過調用LINUX操作系統(tǒng)時鐘函數gettimeofday( Model Conversion部分在ARM側運行,和在FPGA側運行消耗的時間:
從表中可以看出,FPGA在大數據量的處理時,能發(fā)揮并行的優(yōu)勢,使運算速度得到提升。因試驗開發(fā)程度有限,所以速度提升不是很明顯。相信在將更多數據處理任務交給FPGA完成后,能獲得更高的系統(tǒng)性能。
試驗結論
1. cycloneV SOC有ARM核的存在,可以運用成熟的C語言代碼,縮短開發(fā)時間;
2. cycloneV SOC有大量邏輯單元,可以協(xié)助處理大量數據,提高系統(tǒng)性能;
3. cycloneV SOC成本低廉,滿足成本控制要求;