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

基于ZYNQ的高清視頻與圖形疊加顯示技術

2022-05-09 13:53:10連成哲翟東奇蔣沅嵩孫建華李家齊
計算機技術與發展 2022年4期
關鍵詞:界面設備

連成哲,翟東奇,蔣沅嵩,孫建華,李家齊

(華中光電技術研究所-武漢光電國家研究中心,湖北 武漢 430223)

0 引 言

高清視頻與圖形控制界面的疊加顯示技術在很多領域有所應用[1],如直升機的視頻監控中,不僅要求實時顯示偵察目標的狀況,并且需要同時顯示直升機在飛行過程中的速度、位置、高度等信息,并提供人機操作控制[2],此時就需要視頻圖形疊加顯示技術。此外,在艦船、海軍光電、汽車等領域的顯控終端也需要此項技術[3]。

傳統的顯示與控制系統在有高清視頻顯示需求時,往往采用專用的圖形處理硬件如顯卡、GPU或者專用于視頻顯示的芯片滿足高清視頻顯示的需求[4],顯示與控制軟件通常部署在工控機中,在桌面操作系統環境下開發和運行人機交互界面。

ZYNQ是Xilinx公司推出的一款可擴展處理平臺,其結合了處理器系統(Processing System)以及可編程邏輯(Programmable Logic)兩部分,是一款ARM+FPGA的異構芯片,通過AXI數據交互協議進行片內處理器與可編程邏輯的高速互聯[5],PS部分支持Linux、VxWorks、μCos等多種嵌入式操作系統,可以很方便地使用圖形庫提供人機交互界面,同時通過PL部分對圖像、視頻等進行處理、顯示。基于ZYNQ SoC的高清視頻與圖形界面疊加方案相較于傳統方式,將圖形采集、人機交互、視頻與圖形界面疊加、高清視頻顯示等功能集成在一個芯片上,具有靈活、低功耗、體積小等優勢。

基于ZYNQ SoC平臺,該文研究了高清視頻與圖形界面疊加的關鍵技術,包括Video DMA視頻直接內存訪問技術、DRM顯示子系統技術、DMA-buf內存共享技術等。通過ZYNQ的PS端Linux系統下基于Qt產生圖形界面,在PL端進行高清圖像的采集、與Qt圖形界面進行疊加并通過PL端HDMI接口進行顯示輸出,采用DRM顯示框架對顯示設備進行驅動和控制,進行同屏圖層切換、多屏互動。

1 基于ZYNQ SoC的高清視頻與圖形界面疊加顯示技術原理

在多個領域都有視頻監控的需求,如海軍光電顯控終端,需要實時采集攝像頭傳感器的圖像數據進行顯示,并提供操控界面供用戶使用,同時,需要在實時圖像上疊加波門、目標信息等圖形和文字[6],這需要在保證圖像流暢度和清晰度的基礎上進行多個顯示圖層的疊加。

基于ZYNQ SoC的高清視頻與圖形界面疊加顯示技術的原理如圖1所示。在數據流中,由PL端資源VDMA進行高清圖像的實時采集,并緩存在PS端的DDR中;同時,由Qt圖形界面庫生成圖像上的疊加圖形與文字,以及鼠標、按鈕等人機交互圖形界面,通過幀緩存(FrameBuffer)對圖形幀數據進行存儲。在顯示階段,通過PL端的兩路VDMA分別對圖形和圖像數據進行搬運,并在PL端的OSD(Video on Screen Display)IP核進行硬件疊加,通過編/解碼IP進行HDMI編碼后顯示輸出。而在PS端運行集成了VDMA控制驅動VDMA Driver、內存零拷貝驅動DMA-buf、顯示設備管理驅動DRM以及圖形庫Qt的嵌入式Linux操作系統,并通過libdrm應用接口庫對多個圖層進行管理。該方案中,高清圖像的采集、圖像和圖形數據的輸出以及多圖層疊加和顯示編碼都通過ZYNQ的可編程邏輯部分實現,ARM處理器僅需對PL端初始化與配置即可實現高清圖像與人機交互界面的顯示,大大減輕了CPU的負載,提高視頻的顯示幀率與人機交互界面的流暢度。

圖1 疊加顯示技術原理

2 基于SoC的顯示控制相關技術研究

2.1 Video DMA視頻直接內存訪問

AXI Video Direct Memory Access(VDMA)是一個IP軟核,提供了存儲器與AXI-Stream視頻類型目標外圍設備之間的高帶寬的直接內存訪問。許多視頻應用程序都需要幀緩沖區來處理幀速率變更或圖像縮放和裁剪,AXI VDMA旨在允許視頻接口和AXI接口之間進行高效的高帶寬訪問[7]。

其結構如圖2所示,VDMA分為S2MM寫通道和MM2S讀通道,分別表示將stream視頻流數據通過AXI總線寫入內存和將視頻數據通過AXI總線從內存中讀出,而不需要CPU過多的參與[8],從而降低CPU的開銷。

圖2 VDMA結構框圖

2.2 Direct Rending Manager顯示架構

DRM是Linux下的圖形渲染架構,是一種對GPU顯卡等顯示設備的管理和封裝技術。DRM驅動架構主要包括以下幾個元素:畫布(FrameBuffer)、顯示控制器(CRTC)、編碼器(ENCODER)、連接器(CONNECTOR)和平面(PLANES)[9]。其關系如圖3所示。

圖3 DRM驅動架構

(1)DRM FrameBuffer。

FrameBuffer是一片用戶程序和驅動都能訪問的內存的抽象定義,表示了單個圖層顯示的內容,是與硬件無關的基本元素。DRM顯示架構與傳統的FrameBuffer顯示架構在Linux系統正常加載后都會在設備節點下生成/dev/fb*節點,從而為用戶應用提供接口,Linux常用的圖形界面庫如GTK、Qt等都是基于FrameBuffer接口實現的[10]。

(2)CRTC。

CRTC是CRT Controller的縮寫,是掃描輸出緩沖的抽象表示,負責讀取幀緩沖中的數據。CRTC可以連接多個編碼器(ENCODER),用于復制屏幕,并管理各種顯示時序參數,是顯示器配置的中心環節。

(3)ENCODER。

ENCODER將從CRTC中取得的像素數據轉換為目標CONNECTOR支持的格式。

(4)CONNECTOR。

CONNECTOR是與物理顯示設備的連接器,如HDMI、DisplayPort、DSI總線。

(5)PLANES。

PLANE代表一個可合成掃描輸出緩沖的圖像源,也稱為硬件圖層,用以實現Overlay的應用。

2.3 DMA-buf內存共享技術

高清圖像的采集與顯示需要將系統中采集到的圖像緩存拷貝至顯示設備的緩存buffer中,當針對高清圖像這種大數據量的應用來說,簡單地依靠memcpy會消耗CPU大量的負載,DMA-buf為不同設備、子系統之間進行內存共享提供了統一的機制[11]。典型的DMA-buf應用框圖如圖4所示。

圖4 DMA-buf應用框圖

DMA-buf框架下主要有兩個角色對象,一個是exporter,相當于buffer緩存的生產者,對應的是importer,即buffer的使用者。各主要功能如下:

Exporter:

實現DMA-buf驅動框架中緩存管理回調函數;

允許其他使用者通過DMA-buf的API來使用共享緩存;

管理共享緩存的分配、包裝等細節工作;

決策共享緩存的實際后端內存的來源;

管理scatterlist的遷移工作。

Importer:

是共享緩存的使用者之一;

訪問共享緩存的scatterlist,并提供將共享緩存映射到自己地址空間的機制。

3 基于ZYNQ SoC的光電系統顯示控制平臺設計與實現

3.1 ZYNQ SoC程序設計

在ZYNQ SoC中,高清圖像采集、編碼、圖形圖像疊加與顯示在PL端具體實現,PS端則通過圖形庫生成人機交互界面與疊加圖形和文字,并通過AXI總線控制PL端軟核對各功能進行配置。基于ZYNQ SoC的高清視頻與圖形界面疊加顯示方案程序設計原理圖如圖5所示。

對圖5所示程序中各功能模塊做簡單介紹。在高清圖像采集中,由Video in to AXI4-stream的IP核將視頻圖像信息轉換為AXI總線類型的視頻流,通過AXI Video Direct Memory Access(VDMA0)寫入至ARM端的緩存地址中。在圖形界面生成模塊中,由ARM中Qt圖形界面庫生成對應的人機交互圖形界面和圖像的疊加圖形與文字,也存儲在緩存中。在DRM顯示子系統中,由兩路VDMA組成DRM系統的多層PLANES,分別從對應緩存區中讀取圖形和圖像數據,并在Video on Screen Display的IP核中進行硬件疊加,并通過HDMI或DVI接口輸出顯示。

圖5 ZYNQ SoC程序設計

3.2 圖像采集驅動

圖像采集驅動主要通過控制VDMA將視頻流數據寫入緩存中,驅動流程如圖6所示。

圖像采集驅動對VDMA的操作在file_operation結構體中實現,通過axicdma_ioctl函數對VDMA支持的配置如表1所示。

圖6 圖像采集驅動框架 表1 圖像采集驅動支持的功能

參數功能RD_S2MM_VSIZE/RD_S2MM_HSIZE/RD_S2MM_FRAME_STRIDE讀取S2MM通道行/列/跨度WR_S2MM_VSIZE/WR_S2MM_HSIZE/WR_S2MM_FRAME_STRIDE設置S2MM通道行/列/跨度START_MM2S_TX/STOP_AXIVDMA_TX開始/停止讀出圖像START_S2MM_RX/STOP_AXIVDMA_RX開始/停止采集圖像RD_MM2S_VSIZE/RD_MM2S_HSIZE/RD_MM2S_FRAME_STRIDE讀取MM2S通道行/列/跨度WR_MM2S_VSIZE/WR_MM2S_HSIZE/WR_MM2S_FRAME_STRIDE設置MM2S通道行/列/跨度WR_MM2S_WROKMODE/RD_MM2S_WROKMODE設置/讀取MM2S通道工作模式WR_S2MM_WROKMODE/RD_S2MM_WROKMODE設置/讀取S2MM通道工作模式READ_BUFFER/WRITE_BUFFER讀取/寫入緩存

3.3 多圖層DRM配置

Xilinx為DRM相關的硬件IP核提供了驅動,并集成在了Linux內核中,相關驅動代碼在Linux內核目錄的drivers/gpu/drm/xilinx路徑下。在3.1節SoC程序設計的基礎上,需要配置DRM設備樹,為Linux正常使用該設備提供支持。

DRM的設備樹配置如下,對應2.2節所述,兩路VDMA對應DRM顯示系統的PLANES,xlnx,encoder-slave節點對應ENCODER,xlnx,connector-type節點對應CONNECTOR。

xilinx_drm {

compatible = "xlnx,drm";

xlnx,vtc = <&v_tc_0>;

xlnx,connector-type = "HDMIA";

xlnx,osd = <&v_osd_0>;

xlnx,encoder-slave = <&hdmi_encoder_0>;

clocks = <&axi_dynclk_0>;

planes {

xlnx,pixel-format = "argb8888";

plane0 {

dmas = <&axi_vdma_1 0>;

dma-names = "axi_vdma_1";

};

plane1 {

dmas = <&axi_vdma_2 0>;

dma-names = "axi_vdma_2";

};

};

};

3.4 嵌入式操作系統與運行環境移植

操作系統與運行環境移植主要包含以下步驟:

操作系統制作:

PetaLinux工具提供在Xilinx處理系統上定制、構建和調配嵌入式 Linux 解決方案所需的所有組件,簡化Linux產品的開發[12]。在Linux內核中將3.2節所述的圖像采集驅動添加進內核并修改對應的配置文件,同時修改system-user.dtsi設備樹文件,對圖像采集驅動與DRM顯示系統進行配置后,經過編譯生成對應的系統鏡像。

Qt圖形庫移植:

Qt是一個開源的跨平臺C++圖形界面應用程序框架[13],源碼可在官網獲取,通過賽靈思提供的交叉編譯鏈進行交叉編譯后,將對應的庫文件拷貝至嵌入式Linux的文件系統中,并配置Qt庫的環境變量從而支持Qt程序的運行。

libdrm庫移植:

libdrm庫是DRM系統的應用層封裝,提供圖層配置、顯示鏈路配置、顯存管理等,通過libdrm,用戶可以間接調用DRM系統[14]。libdrm源碼可在https://dri.freedesktop.org/libdrm/下載,交叉編譯后存儲在linux的文件系統中,并配置環境變量從而支持libdrm程序的運行。

3.5 測試用例設計

以光電跟蹤設備為例,在光電跟蹤設備中,通常有圖像傳感器接收的真實圖像數據并在圖像上疊加對應的目標識別信息、波門、目標狀態等信息,并提供設備操控界面[15]。在上述設計搭建的顯示方案基礎上,測試用例通過Qt生成圖形數據,與實時采集的高清圖像數據進行疊加顯示,并動態的配置多個圖層的顯示關系,程序設計流程如圖7所示。

圖7 測試程序設計流程

測試程序將采集的圖像層作為DRM子系統的plane1,Qt產生的圖形界面作為plane0,同時配置plane0作為Overlay疊加圖層,并禁用了該圖層的全局透明度,從而支持各個像素點透明度的配置,在Qt中將需要顯示視頻圖像的像素部分Alpha通道設置為0。程序運行現場如圖8所示。其中,屏幕上半部分1 920*512像素位置底圖為實時仿真海面圖像數據,標尺與刻度、波門以及狀態信息文字等由Qt產生,并將1 920*512位置背景像素的透明度置為0,下半部分同樣由Qt產生的人機操控界面,背景不透明。

圖8 程序運行現場圖

4 結束語

基于ZYNQ SoC提出了一種高清視頻與圖形界面疊加的顯示技術。通過dma-buf機制共享圖像采集設備與DRM顯示設備之間的圖像幀緩存,且圖像的采集、圖像緩存區至硬件顯示接口的數據傳輸、圖像編碼都通過SoC的PL端完成,不需要CPU過多的參與,大大減少了CPU的負擔,提高了高清圖像的顯示速率。通過實測,在顯示同一分辨率的圖像下,通過該疊加方案顯示時與通過CPU直接疊加顯示時CPU占用率從89%降至13%,幀率從11 fps提升至30 fps左右,滿足常用的顯示需求。

猜你喜歡
界面設備
諧響應分析在設備減振中的應用
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
空間界面
金秋(2017年4期)2017-06-07 08:22:16
電子顯微打開材料界面世界之門
人機交互界面發展趨勢研究
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: 亚洲中文字幕23页在线| 成人毛片在线播放| 午夜天堂视频| 99在线免费播放| 久久精品电影| 国产人成在线观看| 天堂久久久久久中文字幕| 国产亚洲成AⅤ人片在线观看| 日韩在线成年视频人网站观看| 久无码久无码av无码| 国产伦片中文免费观看| 91福利免费| 国产精品手机在线观看你懂的| 欧美特黄一级大黄录像| 欧美在线中文字幕| 国产精选小视频在线观看| 毛片网站观看| 人妻精品全国免费视频| 欧美综合一区二区三区| 欧美激情第一欧美在线| 国产精品三级专区| 亚洲欧洲日产无码AV| 日韩二区三区| 午夜日本永久乱码免费播放片| 久久久国产精品无码专区| 真人免费一级毛片一区二区| 一级爆乳无码av| 日本亚洲成高清一区二区三区| 亚洲成综合人影院在院播放| 精品视频在线观看你懂的一区| 国产人人射| 精品天海翼一区二区| 国产无码制服丝袜| 在线看片免费人成视久网下载| 国产精品专区第1页| 国产午夜福利在线小视频| 午夜在线不卡| 777午夜精品电影免费看| 国产爽妇精品| 亚洲色图欧美一区| 亚洲国产日韩一区| 欧美a在线视频| 亚洲无限乱码一二三四区| 日韩精品少妇无码受不了| 久久婷婷色综合老司机| 国产成人AV男人的天堂| 好吊妞欧美视频免费| 久久精品无码一区二区国产区| 亚洲成A人V欧美综合天堂| 九九香蕉视频| 国产成人精品2021欧美日韩 | 99无码中文字幕视频| 日本免费一区视频| a色毛片免费视频| 看av免费毛片手机播放| 亚洲日韩AV无码一区二区三区人| 日韩色图在线观看| 2021国产精品自产拍在线| 亚洲国产一成久久精品国产成人综合| 国产在线97| 日本国产精品一区久久久| 久久久噜噜噜久久中文字幕色伊伊 | 91精品aⅴ无码中文字字幕蜜桃 | 日韩精品一区二区三区免费在线观看| 日本伊人色综合网| 国产综合精品日本亚洲777| av在线手机播放| 超清无码一区二区三区| 国产精品亚洲精品爽爽| 麻豆国产精品| 欧美a级完整在线观看| 91美女在线| 又猛又黄又爽无遮挡的视频网站| 日韩二区三区| 亚洲色图另类| 99中文字幕亚洲一区二区| 国产99视频精品免费视频7| 日韩中文字幕亚洲无线码| 国产女人综合久久精品视| 国产午夜福利片在线观看| 欧美国产三级| 熟女日韩精品2区|