國產安路FPGA實現圖像視頻采集轉HDMI輸出,提供5套TD工程源碼和技術支持

目錄

  • 1、前言
    • 工程概述
    • 免責聲明
  • 2、相關方案推薦
    • 我已有的所有工程源碼總目錄----方便你快速找到自己喜歡的項目
    • 國產安路FPGA相關方案推薦
  • 3、設計思路框架
    • 工程設計原理框圖
    • 輸入Sensor之-->GC0308攝像頭
    • 輸入Sensor之-->OV7725攝像頭
    • 輸入Sensor之-->OV5640攝像頭
    • 輸入Sensor之-->AR0135攝像頭
    • 輸入Sensor之-->ADV7611芯片解碼的HDMI
    • FDMA圖像緩存
    • HDMI視頻輸出架構
    • 工程源碼架構
  • 4、TD工程源碼1詳解:GC0308輸入版本
  • 5、TD工程源碼2詳解:OV7725輸入版本
  • 6、TD工程源碼3詳解:OV5640輸入版本
  • 7、TD工程源碼4詳解:AR0135輸入版本
  • 8、TD工程源碼5詳解:HDMI輸入版本
  • 9、上板調試驗證并演示
    • 準備工作
    • 國產安路FPGA視頻采集效果演示
  • 10、工程源碼

國產安路FPGA實現圖像視頻采集轉HDMI輸出,提供5套TD工程源碼和技術支持

1、前言

國產FPGA現狀:

“茍利國家生死以,豈因禍福避趨之!”大洋彼岸的我優秀地下檔員,敏銳地洞察到祖國的短板在于先進制程半導體的制造領域,于是本著為中華民族偉大復興的中國夢貢獻綿薄之力的初心,懂先生站在高略高度和長遠角度謀劃,寧愿背當代一世之罵名也要為祖國千秋萬世謀,2018年7月,懂先生正式打響毛衣戰,隨后又使出恰勃紙戰術,旨在為祖國先進制程半導體領域做出自主可控的戰略推動;2019年初我剛出道時,還是Xilinx遙遙領先的時代(現在貌似也是),那時的國產FPGA還處于黑鐵段位;然而才短短7年,如今的國產FPGA屬于百家爭鳴、百花齊放、八仙過海、神仙打架、方興未艾、得隴望蜀、友商都是XX的喜極而泣之局面,此情此景,不得不吟唱老人家的詩句:魏武揮鞭,東臨碣石有遺篇,蕭瑟秋風今又是,換了人間。。。
目前對于國產FPGA優勢有以下幾點:
1:性價比高,與同級別國外大廠芯片相比,價格相差幾倍甚至十幾倍;
2:自主可控,國產FPGA擁有完整自主知識產權的產業鏈,從芯片到相關EDA工具;
3:響應迅速,FAE技術支持比較到位,及時解決開發過程中遇到的問題,畢竟中文數據手冊;
4:采購方便,產業鏈自主可控,采購便捷;

工程概述

本文使用國產安路的PH1系列FPGA做基礎的圖像視頻采集系統;視頻輸入源有多種,一種是板載的HDMI輸入接口,另一種是傳統攝像頭,包括OV7725、OV5640和AR0135;如果你的FPGA開發板沒有視頻輸入接口,或者你的手里沒有攝像頭時,可以使用FPGA邏輯實現的動態彩條模擬輸入視頻,代碼里通過parametr參數選擇視頻源,默認不使用動態彩條;FPGA首先對攝像頭進行i2c初始化配置,然后采集攝像頭視頻;然后視頻送入本博主常用的FDMA圖像緩存架構實現視頻3幀緩存功能,本設計使用DDR3作為緩存介質;然后Native視頻時序控制圖像緩存架構從DDR3中讀取視頻,并做Native視頻時序同步,輸出RGB888視頻;然后視頻送入安路官方提供的RGB轉HDMI IP實現RGB轉HDMI功能;最后視頻通過板載HDMI輸出接口送顯示器顯示即可;針對市場主流需求,本設計提供5套PDS工程源碼,具體如下:
在這里插入圖片描述
現對上述3套工程源碼做如下解釋,方便讀者理解:

工程源碼1

開發板FPGA型號為國產安路–PH1A90SBG484-3;輸入視頻為GC0308攝像頭或者動態彩條,默認使用GC0308;FPGA首先使用純Verilog實現的i2c總線對攝像頭進行初始化配置,分辨率配置為640x480@30Hz;然后采集輸入視頻,將輸入的兩個時鐘傳輸一個RGB565像素的視頻采集為一個時鐘傳輸一個RGB888像素的視頻;然后視頻送入本博主常用的FDMA圖像緩存架構實現視頻3幀緩存功能,本設計使用DDR3作為緩存介質;然后Native視頻時序控制圖像緩存架構從DDR3中讀取視頻,并做Native視頻時序同步,輸出RGB888視頻,輸出分辨率為640x480@60Hz,然后視頻送入安路官方提供的RGB轉HDMI IP實現RGB轉HDMI功能;最后視頻通過板載HDMI輸出接口送顯示器顯示即可;該工程適用于國產安路FPGA實現圖像視頻采集系統應用;

工程源碼2

開發板FPGA型號為國產安路–PH1A90SBG484-3;輸入視頻為OV7725攝像頭或者動態彩條,默認使用OV7725;FPGA首先使用純Verilog實現的i2c總線對攝像頭進行初始化配置,分辨率配置為640x480@30Hz;然后采集輸入視頻,將輸入的兩個時鐘傳輸一個RGB565像素的視頻采集為一個時鐘傳輸一個RGB888像素的視頻;然后視頻送入本博主常用的FDMA圖像緩存架構實現視頻3幀緩存功能,本設計使用DDR3作為緩存介質;然后Native視頻時序控制圖像緩存架構從DDR3中讀取視頻,并做Native視頻時序同步,輸出RGB888視頻,輸出分辨率為640x480@60Hz,然后視頻送入安路官方提供的RGB轉HDMI IP實現RGB轉HDMI功能;最后視頻通過板載HDMI輸出接口送顯示器顯示即可;該工程適用于國產安路FPGA實現圖像視頻采集系統應用;

工程源碼3

開發板FPGA型號為國產安路–PH1A90SBG484-3;輸入視頻為OV5640攝像頭或者動態彩條,默認使用OV5640;FPGA首先使用純Verilog實現的i2c總線對攝像頭進行初始化配置,分辨率配置為1280x720@30Hz;然后采集輸入視頻,將輸入的兩個時鐘傳輸一個RGB565像素的視頻采集為一個時鐘傳輸一個RGB888像素的視頻;然后視頻送入本博主常用的FDMA圖像緩存架構實現視頻3幀緩存功能,本設計使用DDR3作為緩存介質;然后Native視頻時序控制圖像緩存架構從DDR3中讀取視頻,并做Native視頻時序同步,輸出RGB888視頻,輸出分辨率為1280x720@60Hz,然后視頻送入安路官方提供的RGB轉HDMI IP實現RGB轉HDMI功能;最后視頻通過板載HDMI輸出接口送顯示器顯示即可;該工程適用于國產安路FPGA實現圖像視頻采集系統應用;

工程源碼4

開發板FPGA型號為國產安路–PH1A90SBG484-3;輸入視頻為AR0135全局曝光工業相機或者動態彩條,默認使用AR0135;FPGA首先使用純Verilog實現的i2c總線對攝像頭進行初始化配置,分辨率配置為1280x720@60Hz;然后采集輸入視頻,將輸入的兩個時鐘傳輸一個RGB565像素的視頻采集為一個時鐘傳輸一個RGB888像素的視頻;然后視頻送入本博主常用的FDMA圖像緩存架構實現視頻3幀緩存功能,本設計使用DDR3作為緩存介質;然后Native視頻時序控制圖像緩存架構從DDR3中讀取視頻,并做Native視頻時序同步,輸出RGB888視頻,輸出分辨率為1280x720@60Hz,然后視頻送入安路官方提供的RGB轉HDMI IP實現RGB轉HDMI功能;最后視頻通過板載HDMI輸出接口送顯示器顯示即可;該工程適用于國產安路FPGA實現圖像視頻采集系統應用;

工程源碼5

開發板FPGA型號為國產安路–PH1A90SBG484-3;輸入視頻為HDMI視頻,用筆記本電腦模擬,筆記本電腦通過HDMI線連接FPGA開發板的HDMI輸入接口,板載的ADV7611芯片實現HDMI視頻解碼,FPGA使用純Verilog實現的i2c總線對ADV7611進行初始化配置,分辨率配置為1920x1080@60Hz,輸出RGB888視頻給FPGA;然后視頻送入本博主常用的FDMA圖像緩存架構實現視頻3幀緩存功能,本設計使用DDR3作為緩存介質;然后Native視頻時序控制圖像緩存架構從DDR3中讀取視頻,并做Native視頻時序同步,輸出RGB888視頻,輸出分辨率為1920x1080@60Hz,然后視頻送入安路官方提供的RGB轉HDMI IP實現RGB轉HDMI功能;最后視頻通過板載HDMI輸出接口送顯示器顯示即可;該工程適用于國產安路FPGA實現圖像視頻采集系統應用;

本博客描述了國產安路FPGA實現圖像視頻采集系統的設計方案,工程代碼可綜合編譯上板調試,可直接項目移植,適用于在校學生、研究生項目開發,也適用于在職工程師做學習提升,可應用于醫療、軍工等行業的高速接口或圖像處理領域;
提供完整的、跑通的工程源碼和技術支持;
工程源碼和技術支持的獲取方式放在了文章末尾,請耐心看到最后;

免責聲明

本工程及其源碼即有自己寫的一部分,也有網絡公開渠道獲取的一部分(包括CSDN、Xilinx官網、Altera官網等等),若大佬們覺得有所冒犯,請私信批評教育;基于此,本工程及其源碼僅限于讀者或粉絲個人學習和研究,禁止用于商業用途,若由于讀者或粉絲自身原因用于商業用途所導致的法律問題,與本博客及博主無關,請謹慎使用。。。

2、相關方案推薦

我已有的所有工程源碼總目錄----方便你快速找到自己喜歡的項目

其實一直有朋友反饋,說我的博客文章太多了,亂花漸欲迷人,自己看得一頭霧水,不方便快速定位找到自己想要的項目,所以本博文置頂,列出我目前已有的所有項目,并給出總目錄,每個項目的文章鏈接,當然,本博文實時更新。。。以下是博客地址:
點擊直接前往

國產安路FPGA相關方案推薦

鑒于國產FPGA的優異表現和市場需求,我專門開設了一個人國產安路FPGA專欄,里面收錄了基于國產安路FPGA的圖像處理、UDP網絡通信、GT高速接口、PCIE等博客,感興趣的可以去看看,博客地址:
點擊直接前往

3、設計思路框架

工程設計原理框圖

工程設計原理框圖如下:
在這里插入圖片描述

輸入Sensor之–>GC0308攝像頭

輸入Sensor是本工程的輸入設備,其一為GC0308攝像頭,此外本博主在工程中還設計了動態彩條模塊,彩條由FPGA內部邏輯產生,且是動態移動的,完全可模擬Sensor,輸入源選擇Sensor還是彩條,通過Sensor模塊的頂層參數配置,默認選擇Sensor輸入;Sensor模塊如下:
在這里插入圖片描述
SENSOR_TYPE=0;則輸出GC0308攝像頭采集的視頻;
SENSOR_TYPE=1;則輸出動態彩條的視頻;

GC0308攝像頭需要i2c初始化配置,本設計配置為640x480@30Hz分辨率,本設計提供純verilog代碼實現的i2c模塊實現配置功能;此外,GC0308攝像頭還需要圖像采集模塊實現兩個時鐘輸出一個RGB565的視頻轉換為一個時鐘輸出一個RGB888視頻,本設計提供純verilog代碼實現的圖像采集模塊實現配置功能;動態彩條則由FPGA內部邏輯實現,由純verilog代碼編寫;將GC0308攝像頭配置采集和動態彩條進行代碼封裝,形成helai_OVsensor.v的頂層模塊,整個模塊代碼架構如下:
在這里插入圖片描述

輸入Sensor之–>OV7725攝像頭

輸入Sensor是本工程的輸入設備,其一為OV7725攝像頭,此外本博主在工程中還設計了動態彩條模塊,彩條由FPGA內部邏輯產生,且是動態移動的,完全可模擬Sensor,輸入源選擇Sensor還是彩條,通過Sensor模塊的頂層參數配置,默認選擇Sensor輸入;Sensor模塊如下:
在這里插入圖片描述
SENSOR_TYPE=0;則輸出OV7725攝像頭采集的視頻;
SENSOR_TYPE=1;則輸出動態彩條的視頻;

OV7725攝像頭需要i2c初始化配置,本設計配置為640x480@60Hz分辨率,本設計提供純verilog代碼實現的i2c模塊實現配置功能;此外,OV7725攝像頭還需要圖像采集模塊實現兩個時鐘輸出一個RGB565的視頻轉換為一個時鐘輸出一個RGB888視頻,本設計提供純verilog代碼實現的圖像采集模塊實現配置功能;動態彩條則由FPGA內部邏輯實現,由純verilog代碼編寫;將OV7725攝像頭配置采集和動態彩條進行代碼封裝,形成helai_OVsensor.v的頂層模塊,整個模塊代碼架構如下:
在這里插入圖片描述

輸入Sensor之–>OV5640攝像頭

輸入Sensor是本工程的輸入設備,其一為OV5640攝像頭,此外本博主在工程中還設計了動態彩條模塊,彩條由FPGA內部邏輯產生,且是動態移動的,完全可模擬Sensor,輸入源選擇Sensor還是彩條,通過Sensor模塊的頂層參數配置,默認選擇Sensor輸入;Sensor模塊如下:
在這里插入圖片描述
SENSOR_TYPE=0;則輸出OV5640攝像頭采集的視頻;
SENSOR_TYPE=1;則輸出動態彩條的視頻;

OV5640攝像頭需要i2c初始化配置,本設計配置為1280x720@30Hz分辨率,本設計提供純verilog代碼實現的i2c模塊實現配置功能;此外,OV5640攝像頭還需要圖像采集模塊實現兩個時鐘輸出一個RGB565的視頻轉換為一個時鐘輸出一個RGB888視頻,本設計提供純verilog代碼實現的圖像采集模塊實現配置功能;動態彩條則由FPGA內部邏輯實現,由純verilog代碼編寫;將OV5640攝像頭配置采集和動態彩條進行代碼封裝,形成helai_OVsensor.v的頂層模塊,整個模塊代碼架構如下:
在這里插入圖片描述

輸入Sensor之–>AR0135攝像頭

輸入Sensor是本工程的輸入設備,其一為AR0135攝像頭,此外本博主在工程中還設計了動態彩條模塊,彩條由FPGA內部邏輯產生,且是動態移動的,完全可模擬Sensor,輸入源選擇Sensor還是彩條,通過Sensor模塊的頂層參數配置,默認選擇Sensor輸入;Sensor模塊如下:
在這里插入圖片描述
SENSOR_TYPE=0;則輸出OV5640攝像頭采集的視頻;
SENSOR_TYPE=1;則輸出動態彩條的視頻;

AR0135攝像頭需要i2c初始化配置,本設計配置為1280x720@60Hz分辨率,本設計提供純verilog代碼實現的i2c模塊實現配置功能;動態彩條則由FPGA內部邏輯實現,由純verilog代碼編寫;將AR0135攝像頭配置采集和動態彩條進行代碼封裝,形成helai_OVsensor.v的頂層模塊,整個模塊代碼架構如下:
在這里插入圖片描述

輸入Sensor之–>ADV7611芯片解碼的HDMI

輸入Sensor是本工程的輸入設備,其一為板載的HDMI輸入接口;輸入源為板載的HDMI輸入接口或動態彩條,分辨率為1920x1080@60Hz,使用筆記本電腦接入HDMI輸入接口,以模擬輸入Sensor;HDMI解碼方案為芯片解碼,使用ADV7611,可將輸入的HDMI視頻解碼為RGB888視頻;FPGA純verilog實現的i2c配置模塊完成對ADV7611芯片的配置,分辨率配置為1920x1080@60Hz;可以通過Sensor模塊的頂層參數配置,默認選擇Sensor輸入;Sensor模塊如下:
在這里插入圖片描述
SENSOR_TYPE=0;則輸出HDMI接口采集的視頻;
SENSOR_TYPE=1;則輸出動態彩條的視頻;
整個模塊代碼架構如下:
在這里插入圖片描述

FDMA圖像緩存

FDMA圖像緩存架構實現的功能是將輸入視頻緩存到板載DDR3中再讀出送后續模塊,目的是實現視頻同步輸出,實現輸入視頻到輸出視頻的跨時鐘域問題,更好的呈現顯示效果;由于調用了安路官方的MIG IP核作為DDR控制器,所以FDMA圖像緩存架構就是實現用戶數據到MIG的橋接作用;架構如下:
在這里插入圖片描述
FDMA圖像緩存架構由FDMA控制器+FDMA組成;FDMA實際上就是一個AXI4-FULL總線主設備,與MIG對接,MIG配置為AXI4-FULL接口;FDMA控制器實際上就是一個視頻讀寫邏輯,以寫視頻為例,假設一幀圖像的大小為M×N,其中M代表圖像寬度,N代表圖像高度;FDMA控制器每次寫入一行視頻數據,即每次向DDR3中寫入M個像素,寫N次即可完成1幀圖像的緩存,讀視頻與之一樣;同時調用兩個FIFO實現輸入輸出視頻的跨時鐘域處理,使得用戶可以AXI4內部代碼,以簡單地像使用FIFO那樣操作AXI總線,從而達到讀寫DDR的目的,進而實現視頻緩存;本設計圖像緩存方式為3幀緩存;圖像緩存模塊代碼架構如下:
在這里插入圖片描述

HDMI視頻輸出架構

緩存圖像從DDR3讀出后經過Native時序生成模塊輸出標準的VGA時序視頻,然后經過純verilog顯示的RGB轉HDMI模塊輸出HDMI差分視頻;最后送顯示器顯示即可;代碼例化如下:
在這里插入圖片描述

工程源碼架構

以工程3為例,工程源碼架構如下:
在這里插入圖片描述

4、TD工程源碼1詳解:GC0308輸入版本

開發板FPGA型號:國產安路–PH1A90SBG484-3;
開發環境:TangDynasty 6.0.2;
輸入:GC0308攝像頭或FPGA內部動態彩條,分辨率640x480@30Hz;
輸出:HDMI,RTL編碼,分辨率640x480@60Hz;
圖像緩存方案:FDMA圖像緩存,3幀緩存;
工程源碼架構請參考前面第3章節中的《工程源碼架構》小節;
工程作用:此工程目的是讓讀者掌握國產安路FPGA實現圖像視頻采集系統的設計能力,以便能夠移植和設計自己的項目;
工程的資源消耗和功耗如下:
在這里插入圖片描述

5、TD工程源碼2詳解:OV7725輸入版本

開發板FPGA型號:國產安路–PH1A90SBG484-3;
開發環境:TangDynasty 6.0.2;
輸入:OV7725攝像頭或FPGA內部動態彩條,分辨率640x480@30Hz;
輸出:HDMI,RTL編碼,分辨率640x480@60Hz;
圖像緩存方案:FDMA圖像緩存,3幀緩存;
工程源碼架構請參考前面第3章節中的《工程源碼架構》小節;
工程作用:此工程目的是讓讀者掌握國產安路FPGA實現圖像視頻采集系統的設計能力,以便能夠移植和設計自己的項目;
工程的資源消耗和功耗如下:
在這里插入圖片描述

6、TD工程源碼3詳解:OV5640輸入版本

開發板FPGA型號:國產安路–PH1A90SBG484-3;
開發環境:TangDynasty 6.0.2;
輸入:OV5640攝像頭或FPGA內部動態彩條,分辨率1280x720@30Hz;
輸出:HDMI,RTL編碼,分辨率1280x720@60Hz;
圖像緩存方案:FDMA圖像緩存,3幀緩存;
工程源碼架構請參考前面第3章節中的《工程源碼架構》小節;
工程作用:此工程目的是讓讀者掌握國產安路FPGA實現圖像視頻采集系統的設計能力,以便能夠移植和設計自己的項目;
工程的資源消耗和功耗如下:
在這里插入圖片描述

7、TD工程源碼4詳解:AR0135輸入版本

開發板FPGA型號:國產安路–PH1A90SBG484-3;
開發環境:TangDynasty 6.0.2;
輸入:AR0135攝像頭或FPGA內部動態彩條,分辨率1280x720@60Hz;
輸出:HDMI,RTL編碼,分辨率1280x720@60Hz;
圖像緩存方案:FDMA圖像緩存,3幀緩存;
工程源碼架構請參考前面第3章節中的《工程源碼架構》小節;
工程作用:此工程目的是讓讀者掌握國產安路FPGA實現圖像視頻采集系統的設計能力,以便能夠移植和設計自己的項目;
工程的資源消耗和功耗如下:
在這里插入圖片描述

8、TD工程源碼5詳解:HDMI輸入版本

開發板FPGA型號:國產安路–PH1A90SBG484-3;
開發環境:TangDynasty 6.0.2;
輸入:HDMI或者FPGA內部動態彩條,ADV7611芯片解碼方案,分辨率1920x1080@60Hz,筆記本電腦模擬輸入源;
輸出:HDMI,RTL編碼,分辨率1920x1080@60Hz;
圖像緩存方案:FDMA圖像緩存,3幀緩存;
工程源碼架構請參考前面第3章節中的《工程源碼架構》小節;
工程作用:此工程目的是讓讀者掌握國產安路FPGA實現圖像視頻采集系統的設計能力,以便能夠移植和設計自己的項目;
工程的資源消耗和功耗如下:
在這里插入圖片描述

9、上板調試驗證并演示

準備工作

你需要有以下裝備才能移植并測試該工程代碼:
1:FPGA開發板;
2:OV7725或OV5640攝像頭或筆記本電腦,沒有則請使用FPGA內部生成的彩條;
3:HDMI傳輸線;
4:HDMI顯示,要求分辨率支持1920x1080;

國產安路FPGA視頻采集效果演示

國產安路FPGA視頻采集效果演示如下:

安路-圖像采集

10、工程源碼

工程源碼如下:
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84073.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84073.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84073.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

35 C 語言字符串轉數值函數詳解:strtof、strtod、strtold(含 errno 處理、ERANGE 錯誤)

1 strtof() 函數 1.1 函數原型 #include <stdlib.h> // 必須包含這個頭文件才能使用 strtof() #include <errno.h> // 包含 errno 和 ERANGE #include <float.h> // 包含 FlOAT_MAX 和 FLOAT_MIN #include <math.h> // 包含 HUGE_VALF(inf)float…

PaddleOCR項目實戰(1):Python腳本中使?PaddleOCR

1 項目介紹 項目架構如下&#xff1a; APP/WEB/?程序為OCR識別接?調?端&#xff0c;調?OCR接?&#xff0c;實現OCR功能。本項?我們只實現Android APP開發。Nginx反向代理和負載均衡功能&#xff0c;通過Nginx實現對外?暴露接?&#xff0c;對內負載均衡SpringBoot實現的…

Reranker + BM25 + FAISS 構建高效的多階段知識庫檢索系統一

一、什么是知識庫檢索&#xff1f; 在構建基于大語言模型的問答系統&#xff08;如 RAG&#xff09;中&#xff0c;知識庫檢索&#xff08;Retrieval&#xff09; 是第一步&#xff0c;也是影響最終回答質量的關鍵環節。它負責從大規模文檔中快速定位與用戶問題最相關的 top-k…

Walle-Web:打造輕量級高效的DevOps自動化部署平臺

在當今快速迭代的開發環境中,高效的代碼部署工具已成為團隊不可或缺的基礎設施。Walle-Web作為一款免費開源的DevOps平臺,專注解決"部署難、管理亂"的痛點問題,為開發團隊提供了簡潔而強大的自動化部署解決方案。 1. 什么是Walle-Web? Walle-Web是一款專注于代碼…

力扣LeetBook數組和字符串--二維數組

1.旋轉矩陣 題目鏈接 想了那么久的各種旋轉&#xff0c;對角線&#xff0c;其實把問題搞復雜了。 旋轉90度的本質無非就是轉置鏡像對稱 轉置是什么&#xff1f;&#xff1a;將矩陣的行和列互換。 鏡像對稱&#xff1a;把矩陣從中間對折&#xff0c;互換位置 矩陣 A A [ 1 3 0…

圖論水題2

div2 361 D. Tree Requests 題意 對于一顆 n n n節點的樹&#xff0c;每個節點有一個字母&#xff0c;有 m m m次詢問&#xff0c;每次詢問求對于頂點 v v v的子樹中深度為 h h h的結點能否組成一個回文串$ (1 \leq n \leq m \leq 5 \cdot 10^5) $ 思路 關于 v v v的子樹結…

Redis 過期了解

Redis 版本&#xff1a;5.0 &#xff1a; 一&#xff1a;過期監聽&#xff1a; Spring Data Redis 封裝了 Redis 的 Pub/Sub 功能&#xff0c;提供了對 key 過期事件的監聽支持。 1. 核心類&#xff1a;KeyExpirationEventMessageListener 這個抽象類是 Spring 提供的&#x…

OA工程自動化辦公系統 – 免費Java源碼

概述 功能完備的OA工程自動化辦公系統Java源碼&#xff0c;采用主流技術棧開發&#xff0c;無論是學習SpringBoot框架還是開發企業級應用&#xff0c;都是不可多得的優質資源。 主要內容 技術架構 ??后端技術棧??&#xff1a; 核心框架&#xff1a;SpringBoot 2.xORM框…

嵌入式SDK技術EasyRTC音視頻實時通話助力即時通信社交/教育等多場景創新應用

一、引言? 在數字化時代&#xff0c;即時通信已成為人們生活和工作中不可或缺的部分。音視頻功能作為即時通信的核心&#xff0c;能實現更加直觀、高效的信息傳遞。EasyRTC作為一款強大的實時通信框架&#xff0c;具備諸多優勢&#xff0c;為即時通信的音視頻應用提供了優質解…

BEV和OCC學習-5:數據預處理流程

參考&#xff1a;自定義數據預處理流程 — MMDetection3D 1.4.0 文檔 數據預處理流程的設計 預處理流程中的各項操作主要分為數據加載、預處理、格式化、測試時的數據增強。 接下來將展示一個用于 PointPillars 模型的數據集預處理流程的例子。 train_pipeline [dict(type…

OGG 23ai for DAA 部署與補丁升級

創建ogg 用戶 /usr/sbin/groupadd -g 1002 dba /usr/sbin/groupadd -g 1001 oinstall /usr/sbin/groupadd -g 1003 oper useradd -u 1001 -g oinstall -G dba,oper oracle echo "oracle" |passwd oracle --stdin創建ogg安裝目錄 mkdir -p /u01/app/ogg/soft mkdir …

【LangchainAgent】Agent基本構建與使用

目錄 一、功能簡述 代碼功能概括 &#x1f3af; 核心能力 二、運作流程 三、核心代碼 四、運行結果 五、代碼功能拆解 ? 1. 環境準備與依賴導入 ? 2. 加載網頁文檔并處理為向量 ? 3. 創建檢索工具與搜索工具 ? 4. 初始化語言模型與 Agent ? 5. 封裝支持多輪記…

【云安全】以Aliyun為例聊云廠商服務常見利用手段

目錄 OSS-bucket_policy_readable OSS-object_public_access OSS-bucket_object_traversal OSS-Special Bucket Policy OSS-unrestricted_file_upload OSS-object_acl_writable ECS-SSRF 云攻防場景下對云廠商服務的利用大同小異&#xff0c;下面以阿里云為例 其他如騰…

完成一個可交互的k8s管理平臺的頁面開發

使用deepseek完成設計一個k8s管理平臺&#xff0c;關鍵詞如下&#xff1a; 完成一個可交互的k8s管理平臺的頁面開發Kubernetes 管理平臺頁面設計 下面是一個基于現代Web技術的可交互Kubernetes管理平臺的頁面設計方案&#xff0c;使用React作為前端框架&#xff0c;配合Ant De…

TDengine 支持的平臺匯總

TDengine 服務端支持的平臺列表 注&#xff1a;1) ● 表示經過官方測試驗證&#xff0c; ○ 表示非官方測試驗證&#xff0c;E 表示僅企業版支持。 2) 社區版僅支持主流操作系統的較新版本&#xff0c;包括 Ubuntu 18/CentOS 7/CentOS Stream/RedHat/Debian/CoreOS/FreeBSD/Op…

使用 HTML + JavaScript 實現文章逐句高亮朗讀功能

在這個信息爆炸的時代&#xff0c;我們每天都要面對大量的文字閱讀。無論是學習、工作還是個人成長&#xff0c;閱讀都扮演著至關重要的角色。然而&#xff0c;在快節奏的生活中&#xff0c;我們往往難以找到足夠的安靜時間專注于閱讀。本文用 HTML JavaScript 實現了一個基于…

理解非結構化文檔:將 Reducto 解析與 Elasticsearch 結合使用

作者&#xff1a;來自 Elastic Adel Wu 演示如何將 Reducto 的文檔處理與 Elasticsearch 集成以實現語義搜索。 Elasticsearch 與業界領先的生成式 AI 工具和提供商有原生集成。歡迎觀看我們的網絡研討會&#xff0c;了解如何超越 RAG 基礎&#xff0c;或使用 Elastic 向量數據…

從Copilot到Agent,AI Coding是如何進化的?

編程原本是一項具有一定門檻的技能&#xff0c;但借助 AI Coding 產品&#xff0c;新手也能寫出可運行的代碼&#xff0c;非專業人員如業務分析師、產品經理&#xff0c;也能在 AI 幫助下直接生成簡單應用。 這一演變對軟件產業產生了深遠影響。當 AI 逐步參與代碼生成、調試乃…

UGUI Text/TextMeshPro字體組件

UGUI Text組件的不當使用及其性能瓶頸與優化 在Unity UGUI系統中&#xff0c;Text 組件&#xff08;或其升級版 TextMeshPro&#xff09;是顯示文本信息的核心元素。然而&#xff0c;如果不當使用&#xff0c;它極易成為UI性能瓶頸的罪魁禍首&#xff0c;尤其是在預制體、屬性…

淺談 React Hooks

React Hooks 是 React 16.8 引入的一組 API&#xff0c;用于在函數組件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通過簡潔的函數接口&#xff0c;解決了狀態與 UI 的高度解耦&#xff0c;通過函數式編程范式實現更靈活 Rea…