本發明涉及數據處理領域,尤其是一種視頻預覽方法。
背景技術:
傳統視頻切換設備通過處理芯片將hdmi、vga、dvi等信號經過變換轉換為統一格式,經過底板芯片傳輸給輸出口,投射到顯示設備;在視頻數據傳輸的過程中,對于視頻的預覽是用戶的重要使用需求之一。目前,傳統的視頻預覽方式分為以下幾種方式:
1)從視頻源設備通過公有協議方式,獲取視頻流,通常有從網絡攝像機通過onvif,rtsp等協議申請視頻流至計算機設備,通過本地解碼的方式查看視頻;
2)從視頻源設備通過私有協議獲取視頻流;
3)通過第三方設備,如網絡硬盤錄像機,流媒體服務器等設備轉發視頻源的視頻流,通過相應編碼與視頻編輯,傳送至計算機設備解碼顯示;
4)不通過網絡,使用視頻切換器設備直接查看圖像。
上述視頻預覽方式存在有如下缺陷:
1)不通過網絡設備預覽需要專門的硬件進行視頻切換或者拼接,成本較高,同時效率底下,并且受限于線材的傳輸距離;
2)通過申請編碼視頻流本地解碼顯示的方式,存在著如下限制:
a)對計算機設備的硬件性能有著一定的要求,現有的高效編解碼協議如h264、fmpeg等,解碼計算復雜度都比較高,現有的計算機設備處理器并不是專用的視頻解碼處理器,同時解碼數量有限;
b)占用前端設備帶寬。視頻源設備如網絡攝像機等,這些設備的并發視頻流數量受制于其芯片能力與傳輸帶寬,一般為8路,4路或者更高或者更低,而在監控領域很多情況下都會有多個解碼設備或者硬盤錄像機設備會同時向視頻源設備申請視頻流,而計算機預覽將會占用一路;
c)增加整體網絡帶寬壓力;
d)受限于網絡本身的傳輸特性,可能存在卡頓,花屏等現象。
基于上述情形,目前的視頻預覽方法并不能良好的實現視頻預覽功能。
技術實現要素:
本發明要解決的技術問題是提供一種視頻預覽方法,其可在避免視頻處理硬件成本過高的前提下,實現對于視頻數據的高效傳輸以及預覽處理。
為解決上述技術問題,本發明涉及一種視頻預覽方法,其包括有如下步驟:
1)通過轉換芯片對于輸入的視頻信號進行格式轉換,以獲得視頻信號的rgb數據,并將上述視頻信號的rgb數據發送至fpga芯片之中;
2)通過fpga芯片對于rgb數據進行抽幀處理;
3)通過fpga芯片對于經抽幀處理后的rgb數據進行圖像縮小處理;
4)采用ycbcr數據格式對于步驟3)得到的rgb數據進行編碼處理,以獲得視頻信號的ycbcr數據;
5)fpga芯片將視頻信號的ycbcr數據,以及視頻源設備的本地mac地址、目標mac地址、數據長度、行編號進行統一打包處理,并將打包后的數據通過網卡芯片傳輸至交換機設備之中;
6)預覽用戶在計算機終端通過網絡訪問系統以及網卡獲取步驟5)中打包后的數據,并對于上述數據中的目標mac地址、數據長度進行過濾,得到視頻信號的ycbcr數據;將上述視頻信號的ycbcr數據轉換為rgb信號即可進行視頻預覽。
作為本發明的一種改進,所述步驟2)中,對于rgb數據進行抽幀處理的抽幀比例為1:8。
作為本發明的一種改進,所述步驟3)中,對于rgb數據進行圖像處理的方法為等比例取點;經過圖像縮小后的rgb數據的分辨率至多為480*270。
采用上述技術方案的視頻預覽方法,其采用基于fpga芯片以及網絡設備對于視頻數據進行復制轉發的方式實現對于視頻的預覽處理,以避免其向前端設備申請視頻流,進而無需占用前端設備帶寬,致使本申請中的視頻預覽方法在避免高昂的硬件成本的同時,使得設備間數據的傳輸效率得以保障。與此同時,上述視頻的預覽處理過程中在用戶設備端僅采用ycbcr與rgb數據之間的轉換,故其數據計算復雜程度較小,占用cpu資源較低;在此基礎上述,用戶通過多個網卡設備即可實現多個網口數量的視頻預覽處理,以使得用戶的多樣性需求得以滿足。
附圖說明
圖1為本發明中系統結構示意圖;
圖2為本發明中fpga芯片的視頻數據處理邏輯示意圖。
具體實施方式
下面結合具體實施方式,進一步闡明本發明,應理解下述具體實施方式僅用于說明本發明而不用于限制本發明的范圍。需要說明的是,下面描述中使用的詞語“前”、“后”、“左”、“右”、“上”和“下”指的是附圖中的方向,詞語“內”和“外”分別指的是朝向或遠離特定部件幾何中心的方向。
實施例1
如圖1與圖2所示的一種視頻預覽方法,其包括有如下步驟:
1)通過轉換芯片對于輸入的視頻信號進行格式轉換,以獲得視頻信號的rgb數據,并將上述視頻信號的rgb數據發送至fpga芯片之中;
2)通過fpga芯片對于rgb數據進行逐行掃描處理,并將rgb數據轉換為serdes數據發送至底板芯片;
3)通過fpga芯片對于rgb數據進行抽幀處理;
4)通過fpga芯片對于經抽幀處理后的rgb數據進行圖像縮小處理;
5)采用ycbcr數據格式對于步驟4)得到的rgb數據進行編碼處理,以獲得視頻信號的ycbcr數據;
6)fpga芯片將視頻信號的ycbcr數據,以及視頻源設備的本地mac地址、目標mac地址、數據長度、行編號進行統一打包處理,并將打包后的數據通過網卡芯片傳輸至交換機設備之中;
7)預覽用戶在計算機終端通過網絡訪問系統以及網卡獲取步驟6)中打包后的數據,并對于上述數據中的目標mac地址、數據長度進行過濾,得到視頻信號的ycbcr數據;將上述視頻信號的ycbcr數據轉換為rgb信號即可進行視頻預覽。
采用上述技術方案的視頻預覽方法,其采用基于fpga芯片以及網絡設備對于視頻數據進行復制轉發的方式實現對于視頻的預覽處理,以避免其向前端設備申請視頻流,進而無需占用前端設備帶寬,致使本申請中的視頻預覽方法在避免高昂的硬件成本的同時,使得設備間數據的傳輸效率得以保障。與此同時,上述視頻的預覽處理過程中在用戶設備端僅采用ycbcr與rgb數據之間的轉換,故其數據計算復雜程度較小,占用cpu資源較低;在此基礎上述,用戶通過多個網卡設備即可實現多個網口數量的視頻預覽處理,以使得用戶的多樣性需求得以滿足;經實際測試,本申請中的視頻預覽方法可同時進行144路以上的視頻預覽處理。
實施例2
作為本發明的一種改進,所述步驟2)中,對于rgb數據進行抽幀處理的抽幀比例為1:8。
本實施例其余特征與優點均與實施例1相同。
實施例3
作為本發明的一種改進,所述步驟3)中,對于rgb數據進行圖像處理的方法為等比例取點;經過圖像縮小后的rgb數據的分辨率至多為480*270。
本實施例其余特征與優點均與實施例2相同。
實施例4
作為本發明的一種改進,在所述步驟4)中,通過fpga芯片對于經抽幀處理后的rgb數據進行圖像縮小處理的具體方法為:對rgb數據進行ycbcr420編碼,數據格式之中的奇數行為ycbycr,偶數行為ycrycb,基于ycbcr的顏色空間的存儲優勢,可以將原先的rgb數據壓縮至1/2。
本實施例的其余特征與優點均與實施例3相同。
實施例5
作為本發明的一種改進,所述步驟5)中,采用ycbcr數據格式對于步驟4)得到的rgb數據進行編碼處理,以獲得視頻信號的ycbcr數據;對編碼后的ycbcr數據采用mac層通訊協議打包發送至指定mac地址設備,上述更為底層的協議相比于傳統的ip/tcp層等協議擁有著更快的速率,并且對交換機的要求更低。
本實施例的其與特征與優點與實施例4相同。
實施例6
作為本發明的一種改進,在所述步驟6)中,用戶的計算機從網卡芯片以及交換機設備之中獲取打包后的mac層數據后,通過數據長度、本地mac地址與目標mac地址進行數據過濾處理,并在獲取數據后將其轉化為rgb顏色制式,存入緩存中,直到獲取每一幀數據中的最后一行數據后顯示出來。采用上述技術方案,其可使得單網口預覽至少36路視頻圖像。
本實施例的其與特征與優點與實施例5相同。