胡金燦 張學梁 張凱 王璐輝
【摘要】 本產品基于DE1-SoC開發板,通過V4L2方式進行圖像的采集,與FPGA交互實時顯示,用Ffmpeg方式實現圖像的轉換和儲存,并通過網絡讓聯網的移動設備和電腦實時顯示。該設備能進行分辨率為640*480的圖像采樣,20fps的圖像顯示和存儲。誤碼率低,性能可靠。
【關鍵詞】 行車記錄儀 圖像采集 V4L2 FFmpeg
理論分析:
1、整體框架:
系統由五部分組成:視頻采集、視頻格式轉換、視頻編碼存儲、視頻顯示、視頻網絡服務。視頻采集得到原始視頻幀圖片,經過視頻格式轉換分別得到各種圖片圖片格式,分三路傳至視頻編碼存儲、視頻顯示和視頻網絡服務作相應處理。
2、視頻采集:視頻采集有linux內嵌的v4l2框架來實現。先打開視頻設備文件,確定本設備為視頻捕捉設備,查詢攝像頭支持的格式,并設置。申請視頻采集所需的內存塊,再確定每個內存塊的信息,將內存塊的地址映射到用戶空間,便于對視頻數據直接處理。把內存塊放入隊列,啟動設備開始采集,等待有數據并從隊列中取出,可以得到原始圖片數據,再將此內存塊放入隊列,循環進行采樣。
3、視頻格式轉換設計:將原始圖片數據判斷作相應轉換。視頻網絡服務器需用到Jpg格式數據;視頻編碼存儲需用到yuv420格式數據;視頻顯示需用到rgb32格式數據。格式轉換引入libjpeg庫,以庫個API進行編程。
4、視頻網絡服務端設計:創建一個單線程服務于網絡服務端。新建socket,綁定本地IP和端口號,監聽網絡,一旦有客戶端鏈接,創建一個線程,將格式轉換產生的jpg圖片數據發送至客戶端,而主線程會一直監聽網絡。
5、視頻編碼存儲:視頻編碼和存儲是采用引FFmpeg庫的API來實現。先對FFmpeg進行初始化,設置編碼的格式和參數,打開編碼庫,打開目標存儲文件,將格式轉換產生的yuv420數據編碼并存入目標存儲文件。
6、視頻顯示:視頻顯示由FPGA來完成。ARM將格式轉換生成的rgb32數據存入FPGA指定的空間,并發送控制指令開始FPGA顯示即可。
PCB電路搭建:
1.系統時鐘:PLL_Stream 組件產生108MHz 和 150MHz的頻率,為整個顯示模塊提供時鐘信號;PLL_Sdram 組件主要產生 120MHz 的時鐘信號,來對 SDRAM 的控制讀寫操作。該模塊是把各種添加的組件接口相互連接,組建成一個硬件系統。所需要的時鐘信號都是由系統時鐘間接提供的。為對SDRAM進行同步操作,所以hps_0 組件中的時鐘信號h2d_axi_clock 與SDRAM 組件的時鐘信號clock 以及 alt_vip_ vfr_0組件的時鐘信號clock_master 采用同一時鐘,本系統采用的是PLL 產生的pll_sdram.outclock0。主要使用了 Hard Processor System IP Cores、Frame Reader IP Cores、SDRAM Controller IP Cores、PLL_Altera IP Cores。是由 hps_0 來控制整個系統的運行,由pll_sdram 提供整個模塊運行所需要的時鐘信號,alt_vip_vfr_0 來讀取內存的視頻數據。
2:接口連接匹配:SDRAM 作為HPS向FPGA寫數據緩存設備,同時也供 alt_vip_vfr_0 讀取數據。所以 alt_vip_vfr_0的 Avalon master 接口也與sdram 的 salve 接口相連。HPS通過 light weight HPS-to-FPGA 接口與其 salve 接口連接實現。在系統中對這兩個IP 分配Light weight HPS-to-FPGA Bridge地址空間中的基地址,供HPS 對IP模塊進行尋址訪問。
3:VGA顯示:第一個圖層和第二圖層模塊的顯示是由LOG_Generate_0來實現的,主要是在顯示屏上顯示“鄭州大學”字樣。背景層是由 timing_adapter_0 和alt_vip_tpc_0 組件來實現。 顯示控制模塊主要由 Clocked Video Output 組件來實現,通過Avalon 接口與 Alpha Blending Mixer Avalon 接口相連接。直接輸出 VGA 格式的視頻圖像在顯示屏上。
結果分析:系統采集到的視頻畫面質量良好,清晰度高,是一種可行的行車記錄儀解決方案。因系統中引入了各類格式轉化庫導致系統處理時間過長,導致fps降低,后續可將轉化庫進行整合,以達到優化轉換時間,提高fps。
參 考 文 獻
[1]《C程序設計語言(第2版)》Brian W.Kernighan Dennis M.Ritchie著機械工業出版社2012年
[2]《ARM&Linux;嵌入式系統教程》,馬忠梅等著 北京航空航天大學出版社,2004年
[3]《TCP/IP詳解 卷1:協議》W.Richard Stevens著 機械工業出版社 2013年
[4]《Verilog 數字系統設計教程》夏宇聞 編著 北京航空航天大學出版社 2013年7月出版
[5]Altera 公司提供的數據手冊 :《Video and Image Processing Suite》和 《Embedded Peripheral IP User Guide》
[6]友晶科技提供培訓教程:《DE1_SOC Training Matirial》