日韩精品电影一二区-精品久久久久久亚洲中文字幕-一区二区三区国产美女在线播放-欧美日韩在线观看你懂的-午夜精品一区二区三区的区别-久久精品娱乐亚洲领-欧美在线网站一区二区三区-在线观看91精品国产不卡-国产水滴盗摄一区二区

創(chuàng)龍首頁 >關于創(chuàng)龍 > 新聞資訊 > 技術文章

聯(lián)系我們

Contact Us

公司總機:020-8998-6280

技術熱線:020-3893-9734

技術郵箱:support@tronlong.com

銷售郵箱:sales@tronlong.com

技術干貨 | i.MX 8視頻開發(fā)案例全集

2021/07/29

前言:

本文主要介紹基于NXP i.MX 8M Mini處理器的視頻開發(fā)案例,主要包含:

(1) 基于GStreamer的USB攝像頭視頻采集、軟件解碼、邊緣檢測、顯示案例。

(2) 基于GStreamer的網絡攝像頭視頻采集、H.264解碼、顯示案例。

(3) 基于GigE工業(yè)相機的圖像采集、顯示、保存案例。

(4) 基于MIPI Camera OV4689攝像頭演示Linux子系統(tǒng)V4L2的使用案例。

(5) H.265視頻硬件解碼功能演示。


案例測試硬件平臺  TLIMX8-EVM評估板(NXP i.MX 8M Mini)

圖 1 TLIMX8-EVM評估板


案例詳細說明、源碼請掃描下方二維碼或點擊下載鏈j接:http://site.tronlong.com/pfdownload



評估板購買鏈接:http://tronlong.tmall.com

1 USB攝像頭案例


1.1 案例說明

本案例使用GStreamer API通過ARM Cotrex-A53從USB攝像頭獲取MJPEG格式視頻流并進行軟件解碼,然后使用OpenCV對圖像進行Sobel(邊緣檢測)算法處理,再將經過處理的圖像在顯示屏中實時顯示。

程序工作流程框圖如下所示:

圖 2

本案例使用的OpenCV版本為4.4.0,開發(fā)參考文檔:https://docs.opencv.org/4.4.0。


1.2 案例測試

請按照下圖進行硬件連接,將USB CMOS攝像頭(廠家:銳爾威視,型號:RER-USB4KHDR01-V100)連接至評估板USB2 HOST接口,將HDMI顯示屏連接至評估板HDMI OUT接口。

圖 3

將案例bin目錄下的gst_mjpeg_dec_cv_edge文件拷貝至評估板文件系統(tǒng)中。評估板上電并進入文件系統(tǒng)后,可執(zhí)行如下命令查詢攝像頭的幀率、分辨率、設備節(jié)點等參數。

Target#  gst-device-monitor-1.0

圖 4

在gst_mjpeg_dec_cv_edge文件所在路徑下,執(zhí)行如下命令查詢程序參數說明,具體如下表。

Target#   ./gst_mjpeg_dec_cv_edge --help

圖 5

執(zhí)行如下命令采集"/dev/video1"設備節(jié)點的視頻流,視頻流將在Cortex-A53中進行Sobel算法處理,再將經過處理的圖像在顯示屏中實時顯示。

Target#   systemctl start weston@root.service //打開Weston界面

Target#   ./gst_mjpeg_dec_cv_edge -d /dev/video1 -w 1920 -h 1080 -f 30

圖 6

表 1

從打印結果可看到圖像處理平均耗時約為50.65ms,圖像采集幀率為25fps,圖像處理幀率為13fps。

備注:

(1) 本案例使用的攝像頭在拍攝靜態(tài)物品時,幀率會有所降低。

(2) 圖像邊緣處理平均時間,指調用OpenCV Sobel算法進行邊緣檢測的耗時。

(3) 計算圖像邊緣處理幀率時使用的總時間,包含從Gstreamer隊列獲取數據進行邊緣檢測、傳輸數據到Gstreamer隊列的所有耗時。

本案例使用Sobel算法處理效果圖如下所示。

圖 7

本案例使用Cortex-A53進行圖像采集、軟件解碼和算法處理,本次測試CPU占用率為131.2%,如下圖所示。

備注:i.MX 8M Mini有4個Cortex-A53核心,CPU占用率最高可達400%。

圖 8

2 網絡攝像頭案例

2.1案例說明

本案例使用GStreamer API通過Cotrex-A53從網絡攝像頭獲取H.264格式視頻流數據,然后通過VPU進行H.264視頻硬件解碼,再將解碼的圖像在顯示屏中實時顯示。

程序工作流程框圖如下所示:

圖 9

2.2案例測試

圖 10

請按照上圖進行硬件連接,并將該案例bin目錄下的gst_rtsp_dec_display可執(zhí)行文件拷貝至評估板文件系統(tǒng)中。在gst_rtsp_dec_display文件所在路徑下,執(zhí)行如下命令查詢程序參數說明,具體如下表。

Target#   ./gst_rtsp_dec_display --help

圖 11

本案例使用的網絡攝像頭IP地址為192.168.0.178,請確保評估板和網絡攝像頭IP地址處于同一網段。

圖 12

執(zhí)行如下命令采集視頻流數據,并將解碼后的視頻流數據在顯示屏中實時顯示。

Target# systemctl start weston@root.service //開啟Weston

Target# ./gst_rtsp_dec_display -u rtsp://admin:tl123456@192.168.0.178:554/h264/ch1/main/av_stream -w 1920 -h 1080 -f 25 -s 1 //192.168.0.178為攝像頭IP地址


圖 13

圖 14

本次測試CPU占用率為63.7%,如下圖所示。

備注:i.MX 8M Mini有4個Cortex-A53核心,CPU占用率最高可達400%。


圖 15

2.3時延測試

時延測試方法:使用攝像頭采集PC機顯示屏的在線秒表圖像。PC機顯示畫面與評估板顯示畫面的時間差,即為時延。進行多次測試,時延結果取其平均值。

表 2



3 GigE工業(yè)相機案例

本案例通過評估板千兆網口接入GigE工業(yè)相機實現圖像采集、圖像顯示和圖像保存的功能。相機型號:acA720-290gm,品牌:Basler,分辨率可配置最大為720x542,幀率可達291fps。相機詳細信息見官網鏈接:

https://www.baslerweb.com/cn/products/cameras/area-scan-cameras/ace/aca720-290gm/

本案例實測達到的幀率為:采集并顯示為720x540@138fps,采集并保存為720x540@31fps。

測試案例gige_capture位于產品資料“4-軟件資料\Demo\base-demos\”路徑下。為方便測試,產品資料中提供了經過驗證的測試程序可執(zhí)行文件,位于gige_capture的bin目錄下,源碼位于gige_capture的src目錄下。

3.1GigE網絡相機配置

本小節(jié)使用Basler官方提供的pylonSDK開發(fā)包,在PC機Ubuntu中對GigE工業(yè)相機進行IP地址獲取方式、采集幀率等參數配置。

具體配置步驟可下載詳細資料查看。


3.2圖像采集測試



通過網線將評估板RGMII接口和GigE工業(yè)相機連接至相同路由器,評估板默認支持HDMI顯示,請先正確連接HDMI顯示屏。

備注:如GigE工業(yè)相機配置為靜態(tài)IP,則需通過網線將評估板和GigE工業(yè)相機直連,并設置評估板和GigE工業(yè)相機為同一網段。

圖 16

將“gige_capture\lib\”目錄下的庫文件壓縮包libpylon_arm64.tar.gz拷貝至評估板文件系統(tǒng)任意目錄,并進入壓縮包所在目錄執(zhí)行如下命令將其解壓至“/usr/lib/”目錄。


Target#   tar -xvf libpylon_arm64.tar.gz -C /usr/lib


圖 17

GigE工業(yè)相機上電,進入評估板文件系統(tǒng),請將bin目錄下的可執(zhí)行文件gige_capture拷貝至評估板文件系統(tǒng)任意路徑下。在gige_capture可執(zhí)行文件所在目錄下執(zhí)行如下命令查看程序參數說明。


Target#   ./gige_capture --help


圖 18

執(zhí)行如下命令掃描局域網內的GigE工業(yè)相機,并測試GigE工業(yè)相機圖像采集幀率。


Target#   ./gige_capture -m scan


圖 19

并執(zhí)行如下命令關閉Weston界面,將GigE工業(yè)相機采集的圖像顯示到顯示屏上。若圖像顯示不清晰,請旋轉旋鈕調節(jié)相機鏡頭光圈和焦距,GigE工業(yè)相機會以設置的分辨率720x540進行實時采集,本次實測采集并顯示的處理幀率為138fps,進行采集并顯示的幀率會受硬件性能和網絡環(huán)境的影響有一定的波動。


Target#  systemctl stop weston@root.service


Target#   ./gige_capture -m display -o /dev/fb


圖 20

圖 21

本次測試的CPU占用率如下所示。


圖 22

執(zhí)行如下命令,將GigE工業(yè)相機采集的圖像以gray8的格式保存至指定路徑的文件中。采集并存儲的幀數會受設備的讀寫速率影響,本次實測為31fps。


Target#   ./gige_capture -m save -o /home/root/test.gray8


圖 23

將保存的文件復制到Windows下,使用“gige_capture\tools\yuvplayer.exe”程序打開test.gray8文件,點擊“Size -> Custom”,設置圖像格式Width為720,Height為540,點擊“Color -> Y”,點擊播放按鈕即可顯示圖像,如下所示。


圖 24

圖 25

圖 26

4 MIPI攝像頭案例

4.1案例功能

本案例基于MIPI Camera OV4689攝像頭演示Linux子系統(tǒng)V4L2的使用,支持YUYV、RGGB、RGB565格式轉換為RGB格式。

案例支持list、save、display三種功能模式,通過命令行參數傳入主程序進行設置。功能模式簡要說明如下:

(1) list:查詢攝像頭設備,并打印設備相關信息,比如分辨率、幀率、格式等。

(2) save:采集攝像頭的圖像數據,保存到指定文件,格式為YUYV。

(3) display:采集攝像頭圖像數據,寫入到framebuffer以實現

圖像顯示,格式為YUYV。

程序工作流程框圖如下所示:

圖 27

圖 28

V4L2開發(fā)參考鏈接:

https://linuxtv.org/downloads/legacy/video4linux/API/V4L2_API/spec-single/v4l2.html

www.kernel.org/doc/html/v4.10/media/uapi/v4l/v4l2.html


4.2 案例測試

請使用FPC軟排線將MIPI Camera OV4689攝像頭模塊(型號:MCAM400)連接至評估板MIPI CAMERA接口。

圖 29

將本案例bin目錄下的可執(zhí)行程序v4l2_capture復制到評估板文件系統(tǒng),并進入可執(zhí)行程序所在目錄,執(zhí)行如下命令查看程序參數信息。


Target# ./v4l2_capture --help


圖 30

參數解析:

-m:指定運行模式。

-d:指定目標設備。

-t:設備接入接口選擇,支持usb(默認)、vpif、csi。

-F:指定采集格式,支持YUYV、RGB565、RGGB、BGGR。

-w:指定采集幀寬。

-h:指定采集幀高。

-f:指定采集幀率,若攝像頭不支持幀率設置,則設為0。

-o:指定輸出目標,save模式下為文件路徑,display模式下為fb設備節(jié)點。

-n:save模式下使用,為保存幀數。

-v:版本信息。

--help:幫助信息。

a) 保存測試彩條圖像

為驗證評估板MIPI CAMERA接口通路是否正常,將配置攝像頭產生一幀彩條圖像,進行采集和保存。

請執(zhí)行如下命令加載驅動。


Target# insmod ov4689.ko test_pattern_enable=1


圖 31

執(zhí)行如下命令查詢V4L2設備相關參數信息,"/dev/video0"為V4L2設備節(jié)點。


備注:MIPI Camera OV4689攝像頭不支持設置幀率,默認僅支持1920*1080分辨率,幀率為60fps。


Target#   ./v4l2_capture -m list -d /dev/video0


圖 32


執(zhí)行如下命令保存一幀測試圖像數據至指定文件中。"-m save"指定為save模式,"-w 1920 -h 1080"指定以1920*1080分辨率進行圖像采集,"-F BGGR"指定采集格式,"-o /home/root/test.raw"指定文件保存路徑,"-n 1"指定采集1幀圖像。


Target#   ./v4l2_capture -m save -d /dev/video0 -w 1920 -h 1080 -F BGGR -o ./test.raw -n 1

圖 33

將生成的test.raw文件拷貝至bayer2rgb工具目錄下,執(zhí)行如下命令將圖像數據轉換為RGB格式,并保存在當前目錄下的test.tiff文件中。


Host#   ./bayer2rgb -i ./test.raw -o ./test.tiff -w 1920 -v 1080 -b 8 -f BGGR -t


圖 34

在圖形操作界面雙擊test.tiff文件進行圖像查看。


圖 35

圖 36

b) 保存實際采集圖像

重啟評估板,執(zhí)行如下命令加載驅動。


Target#    insmod ov4689.ko


圖 37

執(zhí)行如下命令保存一幀攝像頭采集的圖像數據至指定文件中。"-m save"指定為save模式,"-w 1920 -h 1080"指定以1920*1080分辨率進行圖像采集,"-F BGGR"指定采集格式,"-o /home/root/test.raw"指定文件保存路徑,"-n 1"指定采集1幀圖像。


Target#   ./v4l2_capture -m save -d /dev/video0 -w 1920 -h 1080 -F BGGR -o ./test.raw -n 1


圖 38

將生成的test.raw文件拷貝至bayer2rgb工具目錄下,執(zhí)行如下命令將圖像數據轉換為RGB格式,并保存在當前目錄下的test.tiff文件中。


Host# ./bayer2rgb -i ./test.raw -o ./test.tiff -w 1920 -v 1080 -b 8 -f BGGR -t


圖 39

在圖形操作界面雙擊test.tiff文件進行圖像查看。


備注:攝像頭的曝光增益等參數未進行優(yōu)化,同時攝像頭傳輸的數據為原始數據,轉換工具僅進行簡單的顏色轉換,并未做ISP處理。


圖 40

圖 41


5 H.265視頻硬件解碼案例

由于本章節(jié)測試步驟較長,因此不在本文進行描述。如需了解詳細測試步驟,請下載資料進行查閱。

如對方案有興趣或想進一步了解的,歡迎咨詢我司區(qū)域經理。

華東區(qū):周經理18928714181(微信同號)

華南區(qū):陳經理13316243398(微信同號)

西南西北區(qū):陳經理13201632920(微信同號)

華北區(qū):李經理13121853038(微信同號)



Copyright © 2013~2025 廣州創(chuàng)龍電子科技有限公司 All Rights Reserved  | 粵ICP備15055271號