国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Zynq 的醫(yī)用內(nèi)窺鏡視頻流采集與處理系統(tǒng)設(shè)計與研究?

2024-01-29 02:24:14王云峰范正吉景金榮洪應(yīng)平
電子器件 2023年6期
關(guān)鍵詞:視頻流內(nèi)窺鏡時鐘

王云峰,何 鑫,范正吉,景金榮,洪應(yīng)平

(中北大學儀器科學與動態(tài)測試教育部重點實驗室,山西 太原 030051)

在醫(yī)療領(lǐng)域,內(nèi)窺鏡是用來觀察人的內(nèi)部體腔的,通過它能直接觀察內(nèi)臟器官的組織形態(tài),提高了診斷的準確性,成為醫(yī)療診斷的可靠工具。結(jié)合醫(yī)用內(nèi)窺鏡施行的內(nèi)外科診療技術(shù)的諸多優(yōu)點,已成為醫(yī)學界的共識?,F(xiàn)代科技的進步推動著醫(yī)用內(nèi)窺鏡的技術(shù)產(chǎn)品迅速發(fā)展[1]。隨著科技的不斷進步,CMOS 攝像頭的尺寸也在不斷縮小,內(nèi)窺鏡在醫(yī)療領(lǐng)域的用途也越來越廣泛。同時對成像質(zhì)量的要求也越來越高。受限于半導工藝,內(nèi)窺鏡CMOS 輸出的圖像信號往往會帶有噪聲、色差等,故需要設(shè)計相應(yīng)的處理算法。由于醫(yī)用內(nèi)窺鏡的特殊用途,算法處理必須保證實時性。

目前的內(nèi)窺鏡視頻流采集處理方案有很多種,包括ARM、FPGA、DSP、專用SOC 等,其中,ARM 體積小,功耗低。但是設(shè)計相對不夠靈活,且代碼運行方式為串行工作,在運行復雜算法時占用資源高,效率不足;FPGA 方案的優(yōu)點是靈活性強,且FPGA 的并行處理機制決定著其在算法很復雜的情況下依然能實現(xiàn)很低的延時。但是FPGA 設(shè)計難度大,用“數(shù)字電路”的思想去描述算法周期長,且不利于維護和修改;DSP 是一種獨特的微處理器,有自己完整的指令系統(tǒng)。DSP 方案的優(yōu)點是設(shè)計靈活,易于拓展,計算能力強,是數(shù)字信號處理的優(yōu)先選擇。缺點是成本高,設(shè)計難度大,占用面積和功耗也有待改進。專用SOC 方案如海思、大華等廠商設(shè)計的專門用于圖像處理的芯片,優(yōu)點是體積小、集成度高、功耗低,內(nèi)部集成各種圖像處理算法的IP 可以直接調(diào)用。缺點是不夠靈活,復雜的圖像處理算法只能調(diào)用廠商提供的固定的算法;比較好的解決方案就是用上述方案的組合,取長補短。考慮性能、體積、功耗等因素,Zynq 是個很好的選擇。

Zynq 是Xilinx 公司推出的一款全可編程片上系統(tǒng)處理器,集成了PS(ARM 處理器) 和PL(FPGA),是一種單片ARM +FPGA 的架構(gòu)。其中PS 處理器部分包含了完整的ARM 處理子系統(tǒng),而PL 邏輯部分中的資源會隨著芯片級別的不同而不同。這兩個部分相互聯(lián)系又可以獨立使用[2]。

針對上述情況,本文設(shè)計了一種基于Zynq 的醫(yī)用內(nèi)窺鏡視頻流采集與處理系統(tǒng),內(nèi)窺鏡攝像頭的型號為OV6946。Zynq 包含了FPGA(PL)與ARM(PS)的優(yōu)勢,使設(shè)計的系統(tǒng)更加靈活,減少了開發(fā)的時間。本系統(tǒng)的目的是采集經(jīng)OV426 對OV6946進行模數(shù)轉(zhuǎn)換后的數(shù)字信號,然后通過Zynq 的PS和PL 端進行協(xié)同處理。最后用過HDMI 進行實時圖像輸出。并在視頻流的幀間隔時間內(nèi),完成雙邊濾波、白平衡、暗部增強、CCM 等算法處理,以實現(xiàn)實時性要求。結(jié)果表明,在HDMI 顯示器上實現(xiàn)了經(jīng)算法實時處理的OV6946 的圖像,保證低功耗和小體積的同時也完成了高性能、實時的視頻流處理,并可在PS 端快速修改PL 端的許多算法參數(shù),避免了PL 端設(shè)計和編譯時長,具有高效性和靈活性。

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

為了實現(xiàn)視頻流實時性的算法處理,本設(shè)計的算法大部分通過Vivado HLS 編寫生成IP,運行在FPGA端,以實現(xiàn)并行處理,涉及到浮點運算的部分在ARM端處理,以節(jié)省FPGA 端資源并發(fā)揮ARM 在浮點運算上的優(yōu)勢。同時采集端也用ARM 結(jié)合FPGA 的方式,由ARM 端通過SCCB 總線對內(nèi)窺鏡的運行參數(shù)進行配置,由FPGA 端進行DVP 數(shù)字圖像信號的采集。輸出端采用FPGA 模擬HDMI 的方式進行輸出,省去了HDMI 芯片,以減小系統(tǒng)的復雜性。

整體系統(tǒng)設(shè)計框圖如圖1 所示。分為圖像解碼模塊、圖像處理模塊與圖像顯示模塊三個模塊。

圖1 整體設(shè)計框

圖像解碼模塊負責對OV426 輸出的數(shù)字信號圖像進行解碼與像素格式轉(zhuǎn)換。首先由PS 端通過SCCB 總線配置OV426 的工作模式,由PL 端接收OV426 的圖像數(shù)字信號,進行RAW10 轉(zhuǎn)RGB888 處理并緩存進DDR 中,由于OV6946 每個像素處的圖像傳感器在每個像素位置上僅感測一種顏色,并且缺少另外兩種顏色。對于完整的彩色RGB 圖像,我們在每個像素位置需要三種顏色[3]。故需做RAW10 轉(zhuǎn)RGB888 處理,此處采用雙線性插值法。

圖像處理模塊由PS 與PL 協(xié)同處理,具體做法為PL 端在接收數(shù)據(jù)緩存到DDR3 的同時,對像素進行行累加、列累加、像素統(tǒng)計等數(shù)據(jù)預備工作,并通過AXI4 總線傳給PS 端,為后續(xù)算法使用做準備。白平衡使用灰度世界算法?;叶仁澜缢惴ㄊ且曰叶仁澜缂僭O(shè)為基礎(chǔ)的,該假設(shè)認為對于一幅有著大量色彩變化的圖像,R、G、B 三個分量的平均值趨于同一個灰度值[4]。上述在PL 準備的數(shù)據(jù)即可用于灰度世界算法,對于灰度世界算法,本系統(tǒng)在PL端進行所需的加減運算,在PS 端做所需的乘除運算來計算增益。補充了FPGA 對于浮點運算能力的不足,也省去了在PL 端用乘法器和除法器延時需進行時序?qū)R的麻煩,提高率開發(fā)效率。同時,伽馬調(diào)節(jié)算法也是在PS 端實現(xiàn),伽馬校正是為了克服人眼視覺系統(tǒng)對于亮度變化的感覺是非線性的而引入的一種傳輸函數(shù),在視頻流、計算機圖形學以及其他成像系統(tǒng)中應(yīng)用廣泛[5]。伽馬校正是對輸入圖像灰度值進行的非線性操作,使輸出圖像灰度值與輸入圖像灰度值呈指數(shù)關(guān)系。此部分在PS 端用數(shù)組存儲校正值,在PS 端從DDR 中搬運數(shù)據(jù)的同時,以查找表的方式直接進行伽馬校正。經(jīng)上述算法處理后再次緩存并由VDMA 讀出并轉(zhuǎn)換為AXI4-STREAM。去噪與暗部增強使用Vivado HLS 進行加速設(shè)計,硬件加速設(shè)計將軟件代碼轉(zhuǎn)換為RTL 電路,輸入輸出接口均為AXI4-STREAM。其中不可綜合的函數(shù)或者語句需用Vivado HLS 支持的函數(shù)替換[6]。

圖像顯示模塊為HDMI 顯示,HDMI 接口是目前應(yīng)用最廣泛的高清音視頻接口之一,存在多種可供選擇的傳輸方式[7]。HDMI 接口協(xié)議物理層使用TMDS 標準傳輸音視頻數(shù)據(jù)。最小化傳輸差分信號(Transition Minimized Differential Signaling,TMDS)是美國Silicon Image 公司開發(fā)的一項高速數(shù)據(jù)傳輸技術(shù),在DVI 和HDMI 視頻接口中使用差分信號傳輸高速串行數(shù)據(jù)。本設(shè)計中直接在PL 端模擬HDMI協(xié)議,輸出穩(wěn)定且節(jié)省硬件資源與成本。

2 系統(tǒng)硬件設(shè)計

本設(shè)計選用Xilinx XC7Z020CLG400-2 入門級Zynq 作為主控芯片,設(shè)計了一套集圖像解碼、實時視頻流算法處理和輸出顯示的硬件。利用OV426橋接芯片對OV6946 進行模數(shù)轉(zhuǎn)換,然后由Zynq 進行采集、解碼與處理,最后由HDMI 輸出。

2.1 內(nèi)窺鏡圖像解碼硬件模塊設(shè)計

2.1.1 OV6946 攝像頭

CMOS 是內(nèi)窺鏡攝像頭的核心器件,微型COMS已經(jīng)在醫(yī)療圖像領(lǐng)域得到了廣泛的應(yīng)用,如胃鏡、腸鏡、腎盂鏡等等。OV6946 彩色圖像傳感器是一種低電壓、高性能、1/18 英寸的CMOS 圖像傳感器,分辨率為400×400 pixel,它通過串行外圍設(shè)備接口(SPI)的控制提供RAW 格式的全幀模擬圖像。OV6946 的圖像陣列能夠以30 幀/s(FPS)的速度運行,并簡化了曝光控制??赏ㄟ^SPI 接口進行編程。其硬件原理表示如圖2 所示。

圖2 OV6946 原理示意圖

2.1.2 攝像頭模數(shù)轉(zhuǎn)換單元設(shè)計

為了實現(xiàn)對OV6946 的CMOS 輸出模擬信號進行轉(zhuǎn)換,本設(shè)計使用了OV426 橋接芯片。OV426 是一款專為OV6946、OV6948、OCHTA10 等攝像頭設(shè)計的一款橋接芯片??蓪⑦@些攝像頭輸出的模擬信號通過內(nèi)部集成的ADC 和協(xié)處理單元轉(zhuǎn)換為DVP協(xié)議的數(shù)字信號。OV426 通過SCCB 總線進行寄存器配置,可以配置輸出數(shù)據(jù)的格式、ISP 功能等。支持BLC、AEC/AGC 和MWB 等功能。其硬件原理表示如圖3 所示。

圖3 OV426 電路設(shè)計

2.2 主控單元及電源硬件模塊設(shè)計

主控選用Xilinx XC7Z020CLG400-2 入門級Zynq 芯片ZYNQ-7020。PL 邏輯單元為85K,BRAM存儲資源為4.9 Mbit。芯片的速度等級為“-2”。本設(shè)計中DDR3 采用美光MT41J128M16HA-187E,容量為2 Gbit。QSPI FLASH 選用W25Q256FVEI,主要用于程序的固化。電源部分統(tǒng)一采用TLV62130RGT,可通過反饋電阻設(shè)置其輸出電壓,輸入電壓范圍為3 V~17 V,輸出電壓范圍為0.9 V~5.5 V,輸出電流最大為3 A,完全滿足電源設(shè)計需求。主控單元頂層原理圖及電源部分原理圖表示如圖4和圖5 所示。

圖4 主控單元頂層原理圖

圖5 電源部分電路設(shè)計

2.3 HDMI 顯示硬件模塊設(shè)計

高清晰度多媒體接口(High Definition Multimedia Interface,HDMI)是一種數(shù)字化音頻/視頻接口技術(shù),通過FPGA 可以很快地實現(xiàn)驅(qū)動[8]。HDMI 1.0 版本于2002 年發(fā)布,最高數(shù)據(jù)傳輸速度為5 Gbype/s。而2017 年發(fā)布的HDMI 2.1 標準的理論帶寬可達48 Gbype/s。HDMI 接口協(xié)議在物理層使用TMDS 標準傳輸音視頻數(shù)據(jù)。TMDS 差分傳輸技術(shù)使用兩個引腳來傳輸一路信號,利用這兩個引腳間的電壓差的正負極性和大小來決定傳輸數(shù)據(jù)的值(0 或1)。Xilinx 在Spartan-3A 系列之后的器件中,加入了對TMDS 接口標準的支持,用于在FPGA 內(nèi)部實現(xiàn)DVI 和HDMI 接口。具體的模塊電路設(shè)計如圖6 所示。

圖6 HDMI 接口硬件電路設(shè)計

3 系統(tǒng)軟件設(shè)計

3.1 OV6946 視頻采集軟件設(shè)計

OV6946 在經(jīng)OV426 轉(zhuǎn)換后輸出的為DVP 協(xié)議數(shù)字圖像。DVP(Digital Video Port)攝像頭數(shù)據(jù)并口傳輸協(xié)議,提供8 bit 或10 bit 并行傳輸數(shù)據(jù)線、HSYNC(Horizontal sync)行同步線、VSYNC(Vertical sync)幀同步線和PCLK(Pixel Clock)時鐘同步線。OV426 提供10 bit的并口傳輸,PCLK 為8 MHz,其中HSYNC 高電平期間包含400 個PCLK,每個PCLK 取一次值,對應(yīng)一行的400 個像素點。每兩個VSYNC 的高電平間有400 個HSYNC,對應(yīng)一幀圖像的400 列。按上述方法編寫Verilog 代碼,并通過AXI4 總線直接存于DDR 中。AXI4 包含3種類型的接口:AXI4 接口、AXI4-Lite 接口以及AXI4-Stream 接口。AXI4 接口主要面向高性能地址映射通信的需要,功能完整,在單地址傳輸?shù)那闆r下最大允許256 輪的數(shù)據(jù)突發(fā)長度[9]。

本設(shè)計中在PL 端設(shè)置好每一幀緩存的幀起始地址,經(jīng)過FIFO 緩存打包后讀出,通過AXI4 總線完成一幀的寫入?;诖送瓿?00 pixel×400 pixel 分辨率的數(shù)字圖像解碼。AXI4 總線仿真時序如圖7 所示。

圖7 AXI4 總線仿真時序

3.2 視頻流處理軟件設(shè)計

本設(shè)計的主要算法是通過Vivado HLS 開發(fā)完成。Vivado HLS 是最具創(chuàng)新性的可編程邏輯設(shè)計工具之一。使用Vivado HLS 生成IP 核可以大大縮短FPGA 的開發(fā)周期。只需要使用高級語言,如C、C++或System C 來描述邏輯,然后將邏輯轉(zhuǎn)換為RTL 級別的實現(xiàn)。利用Vivado HLS 可以縮短1/3的RTL 仿真時間,使算法驗證速度提高10 倍以上[10]。Vivado HLS 編寫完的代碼在綜合通過后會生成一個IP 核,可通過代碼配置其輸入輸出接口。

在本設(shè)計中,對于視頻流的處理,輸入輸出接口均為AXI4-STREAM 接口。AXI4-STREAM 總線是單向的,從主節(jié)點到從節(jié)點,并根據(jù)握手信號傳輸數(shù)據(jù)。優(yōu)點是它不需要地址,支持數(shù)據(jù)突發(fā)傳輸,數(shù)據(jù)量不受限制[11]。因此,AXI4-STREAM 適用于圖像像素數(shù)據(jù)、音頻采樣數(shù)據(jù)、離散數(shù)字信號處理等數(shù)字信息的間接傳輸系統(tǒng)[12]。它的握手機制為只有當VALID 和READY 同時為高時,才能進行傳輸。當TREADY 信號一直處于高電平時,表示從設(shè)備已經(jīng)做好了接收數(shù)據(jù)準備。TVALID 變?yōu)楦唠娖降耐瑫r,TDATA 進行發(fā)送。數(shù)據(jù)發(fā)送完成后,TVALID 變?yōu)榈碗娖?。其仿真時序如圖8、圖9 所示。其中圖8為一包數(shù)據(jù)傳輸開始。圖9 為一包數(shù)據(jù)傳輸結(jié)束。

圖8 傳輸開始

圖9 傳輸結(jié)束

算法的總體設(shè)計流程如圖10 所示。其中,白平衡為PS 端與PL 端協(xié)同完成,算法的累加步驟由PL 完成。在一幀圖像采集完之后的一個時鐘周期內(nèi)即可完成數(shù)據(jù)的準備。乘除運算在PS 端完成。因為PS 端具有較強的浮點運算能力。伽馬校正由PS 采用查找表的方式完成,其余算法均由PL 端完成,并由AXI4-Lite 總線在PS 端配置參數(shù)。

圖10 系統(tǒng)算法流程圖

圖10 中最后一個步驟的作用為適配HDMI 與顯示器的分辨率。由于攝像頭的分辨率為400×400 pixel,標準顯示器不支持該分辨率。故在其周圍進行像素填充,使其輸出640×480 pixel 分辨率的視頻流,攝像頭圖像顯示居中。經(jīng)整合的上述所有算法在100 MHz 的時鐘頻率下延時約為3 ms。其Vivado HLS 綜合結(jié)果如圖15 所示。

3.3 HDMI 顯示軟件設(shè)計

HDMI 的實現(xiàn)方法主要有兩種,一種是使用硬件HDMI 芯片,另一種是使用IO 模擬。因為HDMI協(xié)議本身就是數(shù)字協(xié)議,所以本設(shè)計采用第二種方法,既節(jié)約硬件成本,又節(jié)省板面空間資源。

一個HDMI 連接包括三個TMDS 數(shù)據(jù)通道,一個TMDS 時鐘通道。TMDS 時鐘通道因分辨率不同而以特定速率運行。在每個TMDS 時鐘通道周期中,三個TMDS 數(shù)據(jù)通道每個都發(fā)送10 bit 數(shù)據(jù)。這個10 位的字被編碼,采用某種不同的編碼技術(shù)。輸入到信源端的輸入流,包含視頻像素,數(shù)據(jù)包,和控制數(shù)據(jù)。數(shù)據(jù)包包括音頻數(shù)據(jù)和輔助以及相關(guān)的糾錯碼。

整個系統(tǒng)需要兩個輸入時鐘,一個是視頻的像素時鐘,另外一個所需時鐘的頻率是像素時鐘的五倍。并串轉(zhuǎn)換過程的實現(xiàn)的是10 ∶1 的轉(zhuǎn)換率,理論上轉(zhuǎn)換器需要一個10 倍像素時鐘頻率的串行時鐘。這里用了一個5 倍的時鐘頻率,因為OSERDESE2模塊可以實現(xiàn)DDR 的功能,即它在五倍時鐘頻率的基礎(chǔ)上又實現(xiàn)了雙倍數(shù)據(jù)速率。其模塊框圖如圖11 所示。

圖11 RGB TO DVI 模塊框圖

其在本設(shè)計中的Block Design 如圖12 所示,其中的pclk x5 由axi_dynclk_1 實現(xiàn)五倍頻。

圖12 HDMI 部分Block Design 圖

4 系統(tǒng)實物及測試分析

4.1 系統(tǒng)連接實物

系統(tǒng)試驗時,為了減少阻抗不連續(xù)對攝像頭模擬信號輸出的影響,OV6946 通過阻抗為50 Ω 的屏蔽線焊接到OV426 引出的4PIN 通孔上。經(jīng)板卡處理后由HDMI 輸出。每根屏蔽線的屏蔽絲均做接地處理。其系統(tǒng)連接關(guān)系如圖13 所示。硬件實物如圖14 所示。

圖13 系統(tǒng)連接關(guān)系圖

圖14 測試系統(tǒng)-測試裝置實物圖

系統(tǒng)上電后,直接通過HDMI 接口即可查看實時的攝像頭采集回的圖像。

4.2 測試結(jié)果

為了驗證系統(tǒng)功能的實現(xiàn),將板卡供電,通過HDMI 連接顯示器。分別寫入算法處理前后的代碼來驗證算法實現(xiàn)效果。固化到FPGA 端的算法總體綜合出的結(jié)果如圖15 所示。

圖15 Vivado HLS 算法綜合結(jié)果

由圖15 可知,目標時鐘周期為10 ns,綜合后的設(shè)計所估計的時鐘周期為6.381 ns,滿足時序要求。最高延時為309 124 個時鐘周期,即執(zhí)行本設(shè)計的算法處理一幀圖像的時間為3.091 24 ms。由于30 fps的內(nèi)窺鏡,圖像幀間隔為33.3 ms,故完全滿足實時處理OV6946 內(nèi)窺鏡的400×400 pixel 分辨率,30 幀/s圖像的視頻流。

從顯示器上可以看到OV6946 傳回來的實時圖像。重復多次試驗可得,該系統(tǒng)可以高效無誤地對OV6946 采集回的400×400 pixel@30FPS 的視頻流進行實時處理,無肉眼可見延時。其性能達到了預定的指標。算法處理前后的效果圖如圖16~圖19 所示。

圖16 白平衡/CCM 前(左)后(右)對比圖

圖17 暗部增強前(左)后(右)對比圖

圖18 伽馬值1.3(左)伽馬值0.6(右)對比圖

圖19 雙邊濾波前(上)雙邊濾波后(下)對比圖

5 結(jié)論

本文從醫(yī)用內(nèi)窺鏡視頻流采集處理需求出發(fā),設(shè)計了基于Zynq 的醫(yī)用內(nèi)窺鏡視頻流采集與處理框架,對不同功能進行了模塊化設(shè)計,同時利用了Zynq 芯片的協(xié)同處理優(yōu)勢。在完成技術(shù)指標的同時采用盡量少的元器件,減少了系統(tǒng)的復雜性,提高了系統(tǒng)的可靠性。本文所介紹的醫(yī)用內(nèi)窺鏡采集處理框架工作穩(wěn)定,在滿足需求的前提下,對各個指標均進行了優(yōu)化設(shè)計。同時,該系統(tǒng)已投入到實際使用中,具有較好的實用價值。

猜你喜歡
視頻流內(nèi)窺鏡時鐘
邊緣實時視頻流分析系統(tǒng)配置動態(tài)調(diào)整算法研究
一種具有附加內(nèi)窺鏡功能的醫(yī)療管
電子內(nèi)窺鏡臨床評價要求探討
內(nèi)窺鏡技術(shù)研究進展
別樣的“時鐘”
基于視頻流傳輸中的擁塞控制研究
古代的時鐘
有趣的時鐘
美國視頻流市場首現(xiàn)飽和征兆
時鐘會開“花”
响水县| 突泉县| 江都市| 绥芬河市| 铁岭市| 南华县| 武胜县| 克什克腾旗| 晋城| 湖南省| 沧州市| 全椒县| 丹凤县| 新巴尔虎右旗| 工布江达县| 青河县| 聂拉木县| 裕民县| 景东| 莎车县| 元朗区| 伊宁县| 施甸县| 徐州市| 七台河市| 磐石市| 新巴尔虎左旗| 梁山县| 灵台县| 天柱县| 湖口县| 琼结县| 蛟河市| 许昌市| 岳普湖县| 株洲县| 区。| 东港市| 盐池县| 岑溪市| 高安市|