999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于虛擬儀器的網(wǎng)絡(luò)視頻傳輸系統(tǒng)設(shè)計

2023-05-29 05:51:24吳丹陽魏元焜
電子制作 2023年7期
關(guān)鍵詞:功能系統(tǒng)

吳丹陽,魏元焜

(遼寧機電職業(yè)技術(shù)學(xué)院,遼寧丹東,118009)

0 引言

網(wǎng)絡(luò)視頻系統(tǒng)通常指的是安全監(jiān)視和遠程監(jiān)控領(lǐng)域內(nèi)用于特定應(yīng)用的IP 監(jiān)視系統(tǒng)[1],該系統(tǒng)使用戶能夠通過IP 網(wǎng)絡(luò)實現(xiàn)視頻監(jiān)控及視頻圖像的錄像,以及相關(guān)的報警管理[2]。與模擬視頻系統(tǒng)不同的是,網(wǎng)絡(luò)視頻系統(tǒng)采用網(wǎng)絡(luò),而不是點對點的模擬視頻電纜,來傳輸視頻及其他與監(jiān)控相關(guān)的各類信息[3]。網(wǎng)絡(luò)視頻系統(tǒng)在安防、醫(yī)療等多個領(lǐng)域具有廣泛的應(yīng)用。隨著技術(shù)的發(fā)展,實現(xiàn)網(wǎng)絡(luò)視頻系統(tǒng)的技術(shù)手段也在不斷革新,一些新的實現(xiàn)方法也在不斷涌現(xiàn),這些方法在各自的應(yīng)用場景下也有優(yōu)勢[4~7]。利用新技術(shù)不斷提升網(wǎng)絡(luò)視頻系統(tǒng)性能的研究是開放性的。

虛擬儀器是基于計算機的儀器,計算機和儀器的密切結(jié)合是目前儀器發(fā)展的一個重要方向[8]。它盡可能采用了通用的硬件,各種儀器的差異主要是軟件。因而可充分發(fā)揮計算機的能力,有強大的數(shù)據(jù)處理功能,可以創(chuàng)造出功能更強的儀器。用戶可以根據(jù)自己的需要定義和制造各種儀器[9]。

因此,本文提出了一種新的、基于虛擬儀器的網(wǎng)絡(luò)視頻系統(tǒng)設(shè)計思路,給出了具體的設(shè)計方法和關(guān)鍵步驟,并通過實驗驗證了系統(tǒng)功能。

1 系統(tǒng)整體設(shè)計

如圖1 所示,系統(tǒng)分為視頻采集端和視頻播放端,兩個模塊之間通過WLAN 以rtsp 協(xié)議傳輸視頻數(shù)據(jù),因此兩個模塊分別作為rtsp 的服務(wù)器和客戶端存在[10]。視頻采集端負責(zé)視頻的實時采集,底層硬件為視頻采集板卡,搭載海思的專業(yè)型智能網(wǎng)絡(luò)攝像機SoC——Hi3516DV300,對攝像頭采集到的視頻進行編碼和傳輸。為實現(xiàn)編碼和傳輸功能,板卡運行嵌入式Linux 操作系統(tǒng),支持多任務(wù)處理。以海思媒體處理軟件平臺(Media Process Platform,簡稱MPP)實現(xiàn)視頻資源的編解碼等底層處理,由應(yīng)用程序啟動rtsp 服務(wù),通過網(wǎng)絡(luò)對外傳輸視頻信號。網(wǎng)絡(luò)傳輸可采用有線和無線方式,將視頻信號傳輸給視頻顯示端。

圖1 系統(tǒng)框圖

顯示端硬件為運行Windows 操作系統(tǒng)的PC。以LabVIEW 虛擬儀器開發(fā)平臺實現(xiàn)rtsp 的客戶端,并實現(xiàn)GUI。基于虛擬儀器的設(shè)計思路,視頻采集端可作為儀器設(shè)備,以LabVIEW 設(shè)計儀器面板和儀器的核心邏輯。根據(jù)設(shè)計需要,可方便地更改儀器面板、增加和刪減功能,提高設(shè)備的靈活性。

2 開發(fā)環(huán)境搭建

為在圖1 所示系統(tǒng)上實現(xiàn)產(chǎn)品開發(fā),首先要構(gòu)建開發(fā)環(huán)境。由于本文給出的方案以嵌入式Linux 為軟件基礎(chǔ),因此需要先構(gòu)建通用的嵌入式Linux 開發(fā)環(huán)境,然后再利用海思提供的軟件開發(fā)工具包構(gòu)建專用開發(fā)環(huán)境。

2.1 嵌入式Linux 開發(fā)環(huán)境組成

完整的嵌入式Linux 開發(fā)系統(tǒng)同時需要硬件和軟件的支持。硬件部分分為目標機、宿主機和控制平臺三個部分,三者目前較為廣泛采用的連接方式為局域網(wǎng)連接。目標機即網(wǎng)絡(luò)攝像機本身,由于自身資源有限,只能支持功能實現(xiàn),無法滿足開發(fā)要求,因此目標機中的軟件開發(fā)工作需要依賴于宿主機。宿主機本質(zhì)上是一個運行Linux 的服務(wù)器PC,可以是一個實際的PC,也可以是一個虛擬機。其作用是為編寫、編譯目標機上的程序并最終生成鏡像文件。因此,宿主機和目標機之間主要進行的是文件傳輸。目標機本身不支持圖形界面,Linux 服務(wù)器也不便于日常工作,因此常見的做法是引入一個基于Windows 的控制平臺,用于登錄和管理目標機和宿主機之間的文件傳輸。而宿主機也可以是控制平臺中運行的虛擬機[12]。

目標機是一個完整的嵌入式Linux 操作系統(tǒng),在軟件角度看,需要具有完整的硬件初始化、系統(tǒng)引導(dǎo)、操作系統(tǒng)、文件系統(tǒng)等部件,因此主要有:Bootloader、Linux內(nèi)核、設(shè)備驅(qū)動、文件系統(tǒng),以及應(yīng)用程序構(gòu)成。其中Bootloader負責(zé)底層硬件的初始化和引導(dǎo)操作系統(tǒng)的載入,Linux 內(nèi)核從Bootloader 接管控制權(quán)后,會進一步完成系統(tǒng)初始化、啟動各類進程、加載設(shè)備驅(qū)動等操作,最終實現(xiàn)任務(wù)調(diào)度、內(nèi)存管理等核心控制功能。文件系統(tǒng)中包含系統(tǒng)運行所必需的文件、應(yīng)用程序等。Bootloader、Linux 內(nèi)核、設(shè)備驅(qū)動和文件系統(tǒng),都需要根據(jù)具體的設(shè)備來進行移植,應(yīng)用程序需要基于軟件開發(fā)平臺設(shè)計。這些工作均可利用海思提供的軟件開發(fā)工具包完成[13]。

2.2 編譯和使用海思軟件開發(fā)工具包(SDK)

對于本文選用的Hi3516DV500 型號芯片,應(yīng)選用海思的arm-himix200-linux 交叉編譯工具。

交叉編譯工具是指在宿主機上編譯目標機可執(zhí)行文件或鏡像文件的工具,海思提供了對應(yīng)的交叉編譯工具。

在root 或sudu 權(quán)限下,以tar –xzf arm-himix200-linux.tgz 命令解壓安裝包,以chmod +x arm-himix200-linux.install 賦予安裝腳本可執(zhí)行權(quán)限,然后執(zhí)行./armhimix200-linux.install 即可執(zhí)行安裝。完成安裝后,通過執(zhí)行source /etc/profile 命令即可生效環(huán)境變量。

完成上述工作后,即可進行SDK 的編譯。海思的SDK包含了設(shè)備驅(qū)動、文件系統(tǒng)制作工具、ISP、MPP 等組件,可支持海思芯片的全開發(fā)流程。可支持整個工具包和不同級別下的自動化編譯。

其主要目錄介紹如下:

drv/extdrv/:板級外圍驅(qū)動源代碼

drv/interdrv:mipi,cipher 等驅(qū)動源碼

osal/:操作系統(tǒng)適配層代碼

osdrv/:操作系統(tǒng)及相關(guān)驅(qū)動

osdrv/opensource:存放Linux 內(nèi)核源碼、u-boot源碼、busybox 源碼

為減小SDK 包大小,部分工具需要自行下載到SDK 的指定目錄,如:

下載4.9.37 版本的Linux 內(nèi)核源碼包,linux-4.9.37.tar.gz 存放到osdrv/opensource/kernel 目錄中。

下載yaffs2utils-0.2.9.tar.gz 存放到osdrv/tools/pc/mkyaffs2image/目錄中。

下載gdb-7.9.1.tar.gz 存放到 osdrv/tools/board/gdb/目錄中。

下載ncurses-6.0.tar.gz 存放到osdrv/tools/board/gdb/目錄中。

下載util-linux-2.31.tar.gz 存放到osdrv/tools/pc/cramfs_tool/目錄中。

此外,本文使用Ubuntu16.04 作為宿主機的操作系統(tǒng),需要安裝部分依賴。在sudo 環(huán)境下,直接接用aptget install 來安裝即可:zlib1g-dev、liblzo2-dev、uuiddev、pkg-config、libuuid1、bison、mtd-utils、u-boottools、libncurses5-dev、libcrypto++-dev、binutils、uuid、uuid-dev、gperf、make、gcc、g++。

完成上述工作后,即可在osdrv 目錄下執(zhí)行./make BOOT_MEDIA=emmc all,對SDK 進行指定啟動媒介的整體編譯。由于本文采用的目標機啟動媒介是emmc 存儲設(shè)備,因此在make all 時添加了BOOT_MEDIA=emmc 配置項。

在osdrv/pub/bin 下,會編譯出目標機和宿主機上的工具,包括鏡像制作工具、GDB 調(diào)試工具等,在hi3516dv300_emmc_image_glibc 下,是編譯出的uboot、uImage 和rootfs 的鏡像包.osdrv/pub/下的rootfs_glibc.tar 是我們編譯出rootfs 鏡像的模板。

在osdrv/pub/bin/board_glibc 下是編譯出的板端使用的工具。

在smp/a7_linux/mpp 下,是編譯出的ko 配置驅(qū)動,sample 測試固件程序。

在osdrv/opensource/busybox/busybox-1.26.2/_install 下,是bin sbin usr 文件。

osdrv/tools/pc/jffs2_tool/tmp/sbin 下,配置工具里面所有命令都是指向busybox 的連接。

3 視頻采集端設(shè)計

本系統(tǒng)以視頻采集板卡+OV5647 攝像頭構(gòu)建視頻采集端。板卡以海思智能網(wǎng)絡(luò)攝像機專用SoC(hi3516dv300)為控制核心,對外提供以太網(wǎng)、MIPI、HDMI 等多種接口方便數(shù)據(jù)的本地和遠程傳輸。

海思官方為SoC 提供了便捷的SDK,用戶通過對裁剪好的嵌入式Linux 操作系統(tǒng)和文件系統(tǒng)進行適當(dāng)配置,即可編譯生成系統(tǒng)鏡像和文件系統(tǒng)鏡像,快速搭建嵌入式軟件系統(tǒng)。在Linux 系統(tǒng)基礎(chǔ)上,音視頻處理功能通過海思提供的MPP 軟件平臺實現(xiàn)。該軟件平臺為應(yīng)用軟件屏蔽了芯片相關(guān)的復(fù)雜底層操作,并直接提供MPI(MPP Program Interface)接口完成相應(yīng)功能,可支持應(yīng)用軟件快速開發(fā),集成了輸入視頻捕獲、H.265/H.264/JPEG 編碼、H.265/264/JPEG 解碼、視頻輸出顯示、視頻圖像前處理(包括去噪增強銳化)示、視頻圖像前處理(包括去噪增強銳化)圖像拼接、圖像幾何矯正、智能音頻等功能。

視頻采集端系統(tǒng)層次如圖2 所示。硬件層包括視頻采集板卡和OV5647攝像頭,在板卡上運行的是嵌入式Linux 操作系統(tǒng),以滿足多任務(wù)處理的要求。操作系統(tǒng)適配層用于屏蔽不同操作系統(tǒng)(如Linux 和鴻蒙等)的差異,為MPP層提供統(tǒng)一的接口。以MPP 為基礎(chǔ),應(yīng)用層可以實現(xiàn)直接面向用戶的功能。

圖2 視頻采集端系統(tǒng)層次

3.1 利用MPP 建立視頻數(shù)據(jù)流

圖3 給出了MPP 建立視頻流的過程,涉及MPP 中的幾個關(guān)鍵模塊:視頻輸入(Video Input,VI)、視頻解碼(Video Decode,VDEC)、視頻處理子系統(tǒng)(Video Process Sub System,VPSS)、視頻編碼(Video Encode,VENC)以及視頻輸出(Video Output,VO)。可通過綁定在相關(guān)模塊間建立數(shù)據(jù)傳輸通道。

圖3 MPP 視頻數(shù)據(jù)流

VI 模塊接收攝像頭經(jīng)MIPI 接口傳輸來的視頻數(shù)據(jù),將其存入指定的內(nèi)存區(qū)域,這一過程中,VI 模塊可對接收到的原始視頻圖像數(shù)據(jù)進行處理。VDEC 模塊從存儲卡中讀取保存好的視頻圖像數(shù)據(jù),對其進行解碼,存入計算機。VI 或VDEC 處理后的原始視頻圖像數(shù)據(jù)向后繼續(xù)傳輸,在VPSS 中,控制幀率、對圖像進行縮放、旋轉(zhuǎn)、銳化、去噪、遮蓋、添加馬賽克等操作。VO 模塊主動從內(nèi)存相應(yīng)位置讀取視頻和圖形數(shù)據(jù),并通過相應(yīng)的顯示設(shè)備輸出視頻和圖形。VENC 模塊對處理后的圖像進行編碼操作,可產(chǎn)生多種不同的碼流,且VENC 支持多路實時編碼,且每路編碼相互獨立。

3.2 實現(xiàn)rtsp 傳輸

建立rtsp 服務(wù)的操作對應(yīng)視頻采集端系統(tǒng)層次中的應(yīng)用層。它從MPP 平臺讀到視頻碼流,將其以rtsp 協(xié)議傳輸,具體流程如圖4 所示。

圖4 rtsp 傳輸流程

首先啟動rtsp 服務(wù),然后對MPP 平臺的各個相關(guān)模塊進行初始化、啟動和綁定操作,以建立數(shù)據(jù)流通路,最后以異步線程的形式開始獲取視頻碼流。在碼流獲取線程中,不斷等待VENC 空閑,通過調(diào)用MPP 接口HI_MPI_VENC_GetStream 將獲取到的視頻碼流進行數(shù)據(jù)解析,保存到開辟的內(nèi)存空間中,進而以rtsp 協(xié)議發(fā)送,最終釋放內(nèi)存,完成一幀數(shù)據(jù)的接收和發(fā)送,循環(huán)往復(fù)。

4 視頻顯示端設(shè)計

本文以LabVIEW 平臺實現(xiàn)視頻現(xiàn)時段的界面和控制邏輯設(shè)計。控制邏輯主要用于接收用戶指令、啟動rtsp 客戶端服務(wù),讀取服務(wù)器端發(fā)送來的視頻數(shù)據(jù)并予以實時顯示。rtsp 視頻流通過VLC 媒體播放器的ActiveX 播放,通過調(diào)用VLC 的動態(tài)鏈接庫實現(xiàn)。為實現(xiàn)多路視頻流的動態(tài)加載、刪除和切換等功能,還需配合LabVIEW 的消息隊列處理器框架(即軟件設(shè)計模式)。

4.1 ActiveX 調(diào)用VLC 媒體播放庫

首先要保證安裝有VLC 播放器,然后進行VLC ActiveX 的安裝注冊。將VLC 播放器安裝目錄下的npvlc.dll、libvlccore.dll、libvlc.dll、axvlc.dll、plugins 和lua文件夾復(fù)制到 C:WINDOWSsystem32 目錄下。運行regsvr32 axvlc.dll 指令,若提 示axvlc.dll 中DLLRegisterServer 成功,則表明ActiveX 控件注冊成功。

在程序的實現(xiàn)上,需要使用兩個關(guān)鍵類:IVLCControl2 和IVLCPlaylist。前 者作為參數(shù)傳輸給后者,以便視頻流在指定控件上的顯示。IVLCPlaylist 是控制播放列表動作的類,在程序中,通過調(diào)用關(guān)鍵方法,如add(添加到列表)、next(下一個條目)、play(播放)、pause(暫停)、stop(停止),即可控制視頻流的播放,并可控制在來自多個采集終端的視頻流的切換。圖5 給出了利用這兩個類實現(xiàn)簡單rtsp 流播放的程序示例。建立與視頻采集端的連接后,視頻播放結(jié)果如圖6 所示。

圖6 LabVIEW 播放rtsp 視頻流效果

4.2 消息隊列處理器框架

消息隊列處理器框架是編寫大型LabVIEW 虛擬儀器的典型方法[11]。這一設(shè)計模式將每一個相對獨立功能的代碼片段模塊化,把每一個模塊視為儀器運行的一個狀態(tài)。每一個狀態(tài)由之前的狀態(tài)指定,狀態(tài)自身也可以指定下一個(或連續(xù)的多個)狀態(tài)。由于多個狀態(tài)需要以隊列的數(shù)據(jù)結(jié)構(gòu)通過消息存儲和分發(fā),因此稱為消息隊列處理器。這一設(shè)計方法可以將復(fù)雜的LabVIEW 程序框圖標簽化,既控制了LabVIEW 程序框圖的規(guī)模,又便于程序后期的維護。本文3.1 節(jié)中給出的功能相對簡單,圖5 給出的程序框圖僅僅是一個實現(xiàn)功能的示例,這種最基本的事件結(jié)構(gòu)設(shè)計框架難以支撐復(fù)雜功能的實現(xiàn)。而利用本節(jié)所述的消息隊列處理器設(shè)計框架,可以實現(xiàn)更復(fù)雜的功能,如多通道rtsp 視頻流的控制操作。

圖7 給出了以消息隊列處理器設(shè)計多通道rtsp 視頻流控制的狀態(tài)遷移圖,在消息隊列處理器框架下可以用極小的代碼修改實現(xiàn)狀態(tài)添加、刪除或修改狀態(tài)遷移關(guān)系。這一設(shè)計方法也表明,利用虛擬儀器的軟硬分離特性,本系統(tǒng)可根據(jù)用戶的需求,在產(chǎn)品使用期間,及時進行產(chǎn)品升級,而不影響硬件設(shè)備本身。

圖7 實現(xiàn)擴展功能的狀態(tài)遷移圖

5 結(jié)束語

網(wǎng)絡(luò)視頻傳輸系統(tǒng)廣泛用于安防、醫(yī)療、教學(xué)等領(lǐng)域,實現(xiàn)方案眾多。本文給出的方案簡單易行,硬件核心采用國產(chǎn)高性能芯片,避免了國外的技術(shù)壟斷,盡量采用開源解決方案完成系統(tǒng)設(shè)計,最大程度保證系統(tǒng)的安全性。通過融合虛擬儀器技術(shù),極大提高了系統(tǒng)的靈活性,方便系統(tǒng)的升級擴展。

猜你喜歡
功能系統(tǒng)
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關(guān)于非首都功能疏解的幾點思考
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
主站蜘蛛池模板: 日韩欧美国产综合| 日本午夜影院| 四虎永久免费在线| 97视频精品全国在线观看| 免费一级无码在线网站| 永久在线播放| 2021亚洲精品不卡a| 国产精品尹人在线观看| 小说区 亚洲 自拍 另类| 91精品情国产情侣高潮对白蜜| 9啪在线视频| 伊人久综合| 日本三级精品| 亚洲无限乱码| 欧美亚洲第一页| 成人福利在线观看| 老熟妇喷水一区二区三区| 青青草一区二区免费精品| 一级毛片高清| 91国内外精品自在线播放| 色婷婷亚洲十月十月色天| 成·人免费午夜无码视频在线观看| 97视频免费在线观看| 一本色道久久88亚洲综合| 久久五月天综合| 亚洲国产成人无码AV在线影院L| 看你懂的巨臀中文字幕一区二区 | 亚洲日韩高清无码| 日本伊人色综合网| 国产精品午夜福利麻豆| 激情综合婷婷丁香五月尤物| 久久国产黑丝袜视频| 亚洲精品福利视频| 国产成人综合在线视频| 九九热在线视频| 久久成人18免费| 伊人久久影视| 在线国产91| 国产专区综合另类日韩一区| 亚洲天堂网2014| 狠狠久久综合伊人不卡| 免费Aⅴ片在线观看蜜芽Tⅴ| av一区二区三区在线观看| 欧美中文字幕在线视频| 国产成在线观看免费视频| 激情六月丁香婷婷| 国产jizz| 黄色网页在线观看| 国产女人喷水视频| 精品人妻一区二区三区蜜桃AⅤ| 成人国产免费| 18黑白丝水手服自慰喷水网站| 99er精品视频| 久久久久久午夜精品| 日本午夜精品一本在线观看 | 欧美激情视频一区二区三区免费| 国产成本人片免费a∨短片| 91麻豆精品视频| 五月婷婷综合网| 免费福利视频网站| 四虎成人免费毛片| 中文字幕天无码久久精品视频免费| 在线99视频| 国产精品三级av及在线观看| 天天婬欲婬香婬色婬视频播放| 91啦中文字幕| 久久国产精品国产自线拍| 伊人成人在线视频| 精品无码人妻一区二区| 99久久成人国产精品免费| 欧美一区二区三区欧美日韩亚洲| 最新国产高清在线| 国模沟沟一区二区三区| 热99精品视频| 国产中文一区a级毛片视频| 91外围女在线观看| 日本一区二区不卡视频| 亚洲欧美日韩另类在线一| 久久亚洲美女精品国产精品| 日韩欧美中文亚洲高清在线| 曰韩人妻一区二区三区| 巨熟乳波霸若妻中文观看免费|