激情综合丁香-激情综合六月-激情综合婷婷亚洲图片-激情综合图区-激情综合网五月

ESM8000主板視頻圖像顯示方案簡介

 2021-11-3     作者:黃志超         

1、概述


  英創公司推出的ESM8000主板搭載了NXP i.MX8M Mini Quad 64位處理器,主CPU為主頻1.6GHz的四核ARM Cortex-A53,并且帶有一個視頻處理單元(VPU),能夠提供硬件解碼和編碼的功能,解碼支持的格式有1080p60 HEVC/H.265,H.264,VP9,VP8等,編碼支持的格式有1080p60 H.264,VP8等。對視頻編解碼有一定需求的應用,最好選擇帶有VPU的主板進行開發。因為在沒有VPU的情況下,CPU只能通過軟件計算來進行編解碼,效率很低并且會占用大量CPU資源,而通過VPU來編解碼能夠極大的節約CPU資源,并且處理的速度也比CPU快很多。


  在ESM8000主板中,已經集成了Qt-5.15,用戶可以通過Qt來實現用戶圖形界面的開發,這部分我們已經在《ESM8000主板圖形界面編程簡介》中比較詳細的介紹過了,文章在最后提到了如果要想調用VPU進行解碼,就需要通過QML界面或者Gstreamer工具。在ESM8000主板中已經集成了Gstreamer工具和一些專用插件,這些插件就提供了使用VPU進行編解碼的功能。為了支持在Qt中調用Gstreamer工具實現視頻的處理,ESM8000主板中移植了專用插件qmlsink,用戶無需進行特殊的設置或者操作,使用標準的QML語言編程即可,當涉及到視頻處理的部分,系統就會自動通過Gstreamer的插件調用vpu來處理視頻。


  所以對于熟悉QML的用戶來說,可以在ESM8000主板上直接采用標準的qml語言編程來實現應用,不需要其他特殊設置,十分方便。對于QML不太熟悉的用戶來說,英創公司提供了一個基于QML語言實現的視頻顯示界面,用戶可以通過在傳統Qt C++的實現的窗口中嵌入這個現成的界面來實現對應的功能。我們想通過這種方式,讓客戶還是可以使用熟悉的Qt C++環境來編程,而不必花費更多的時間去學習QML語言的使用。下面我們以顯示網絡攝像頭監控畫面為例,來講解如何調用現成的QML界面。


2、Qt C++調用QML實現視頻顯示


  英創公司提供一個現成的基于QML語言實現的視頻顯示界面ipcamera1.qml,這個界面可以顯示本地視頻或者網絡攝像頭的畫面。方案的核心就是利用了Qt提供的quickWidget類來嵌入QML界面,這個widget類專門用于顯示Qt Quick(Qt提供支持QML語言的庫以及函數)用戶界面。在Qt的官方網站中對quickWidget有詳細的說明https://doc.qt.io/qt-5/qquickwidget.html,有興趣的客戶可以參考。


  首先在創建的工程中導入英創公司提供的視頻顯示界面ipcamera1.qml,在這里我們選擇導入到Qt Resource中。右鍵工程選擇添加新文件,在模板中選擇Qt Resource File,單擊下一步,然后輸入名稱,例程中輸入的名稱為qml。可參考下圖:


ESM8000主板視頻圖像顯示方案簡介.png


  成功后,會自動生成一個qml.qrc文件,這時需要進行初始設置,并添加視頻顯示界面ipcamera1.qml。首先點擊添加按鈕,選擇添加前綴,在前綴中輸入想設置的路徑(在引用資源的時候會使用到),例程中設置為/,如下圖:


ESM8000主板視頻圖像顯示方案簡介.png


  設置完后,再次點擊添加按鈕,選擇添加文件,在文件瀏覽框中選中復制到工程目錄下的ipcamera1.qml文件,成功后可以在qml.qrc的瀏覽窗中看到對應的文件,如下圖:


ESM8000主板視頻圖像顯示方案簡介.png


  導入QML文件的部分就已經完成了,用戶只需要在程序中增加對quickWidget的初始化即可,可參考下面的代碼:


w = new QQuickWidget;  
w->move(0,0);  
w->resize(640, 360);  
w->setSource(QUrl(("qrc:/ipcamera1.qml")));

 

  如果需要和QML界面中的內容進行交互,可以通過信號與槽來實現。Qt C++中發送信號,在QML界面中定義槽函數響應,或是在QML界面中發送信號,在Qt C++中定義槽函數來響應都是可以的。例程中實現了一些按鈕,對QML界面進行簡單的操作,比如開始、停止等功能。在Qt的網站上也有比較詳細的說明:https://doc.qt.io/qt-5/qtqml-cppintegration-interactqmlfromcpp.html。在英創公司提供的例程中,加入了開始、停止、縮放、旋轉以及切換清晰度等操作,都是通過界面上C++的控件類(pushButton、comoBox等)發送信號來實現的,具體可以參考例程中的代碼。


  例程采用了比較常用的網絡攝像頭,測試效果如下:


ESM8000主板視頻圖像顯示方案簡介.png


3、總結


  從程序的截圖中可以看出來,在使用VPU解碼的情況下,幾乎不會對CPU造成負載,用戶可以利用CPU資源執行其他操作。


  通過這種方式,我們希望讓用戶不必花過多時間對QML語言編程進行學習,以此能夠幫助用戶提升應用程序開發的時間。感興趣的客戶可以和英創的工程師聯系獲取完整的測試代碼。

主站蜘蛛池模板: 欧美综合激情网| 亚洲免费视频网址| 国产成人亚洲精品一区二区在线看 | 免费网站直接看| 一区二区三区欧美视频| 三及毛片| 日本高清中文字幕视频在线| 在线精品视频成人网| 欧美三级成版人版在线观看| 国产成人精品区在线观看| 黄色毛片a| 99久久er热在这里都是精品66| 精品视频麻豆网站| 欧美曰韩一区二区三区| 亚洲国产精品成人午夜在线观看| 91香蕉视频免费在线观看| 二级特黄绝大片免费视频大片| 日韩在线视精品在亚洲| 亚洲国产成人久久一区www| 全部免费特黄特色大片视频| 欧洲成人在线视频| 国产黄色片在线观看| 看黄视频免费| 黄色免费在线视频| 1769国产精品一区2区| 成人国产网站| 国产福利视频在线观看| 国产一区二区三区在线电影| 久久九九精品一区二区| 免费国产人做人视频在线观看| 三级精品| 日韩视频 中文字幕| 天天影视色香欲综合网天天录日日录 | 国产精品欧美视频另类专区| 国产综合视频| 国产综合视频在线| 国产在线视频资源| 国产亚洲精品成人久久网站| 国内色视频| 国产欧美一区二区三区免费看| 激情综合婷婷|