亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于H.264網(wǎng)絡(luò)視頻傳輸系統(tǒng)的制作方法

文檔序號:12279635閱讀:229來源:國知局

本發(fā)明涉及視頻壓縮技術(shù)領(lǐng)域,特別涉及一種基于H.264網(wǎng)絡(luò)視頻傳輸系統(tǒng)。



背景技術(shù):

隨著多媒體、互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展和數(shù)字信息技術(shù)的普及,網(wǎng)絡(luò)視頻監(jiān)控[1]在人們的生產(chǎn)生活的各個方面中應(yīng)用越來越廣泛,現(xiàn)在人們到處都可見網(wǎng)絡(luò)視頻監(jiān)控的身影,比如在交通、通信、辦公區(qū)、商場、超市、銀行、校園、生產(chǎn)車間、生活小區(qū)等等,網(wǎng)絡(luò)視頻監(jiān)控已經(jīng)滲入到人們的學(xué)習(xí)、生活、工作的方方面面,人們的生產(chǎn)生活也因網(wǎng)絡(luò)視頻監(jiān)控而變得更加安全、便利等。網(wǎng)絡(luò)視頻監(jiān)控能得到如此快速的發(fā)展,與它的優(yōu)點是分不開的,它直觀、具體、生動、高效和信息量豐富等等,種種優(yōu)點使得網(wǎng)絡(luò)視頻監(jiān)控成為我國信息化中的一個熱點。

網(wǎng)絡(luò)視頻監(jiān)控目前正處于蓬勃發(fā)展的階段,在發(fā)展過程中呈現(xiàn)出一些問題:網(wǎng)絡(luò)帶寬不足,視頻不夠清晰,存儲容量巨大。這些問題都是網(wǎng)絡(luò)視頻監(jiān)控發(fā)展待于解決的問題,但分析后可發(fā)現(xiàn),其實只是視頻編碼壓縮的問題,一個優(yōu)越的視頻壓縮標準。優(yōu)越的視頻壓縮標準壓出來的視頻的壓縮比會變大,視頻容量會變小,自然網(wǎng)絡(luò)帶寬需求就會降低,同時需要的存儲容量也會跟著變小;優(yōu)越的視頻壓縮標準壓出來的視頻更清晰。從另一個角度去分析,如果不是提高視頻壓縮效率,那么提高網(wǎng)絡(luò)帶寬需要投入大量的設(shè)備、人力、資金等,成本太高,所以提高視頻壓縮效率是一個不錯的選擇。目前視頻壓縮標準中,H.264標準憑借其優(yōu)越的性能,被認為是下一代視頻壓縮標準。H.264標準是由ISO/IEC的MPEG(運動圖像專家組)和ITU的VCEG(視頻編碼專家組)這兩大視頻壓縮標準專家組聯(lián)合成立的JVT(聯(lián)合視頻組)大力發(fā)展和研究推出的適用于低碼率傳輸?shù)男乱淮曨l壓縮標準[2]。H.264采用回歸基本的簡潔設(shè)計,具有很高的壓縮效率,同H.263和MPEG-4相比,在同樣的重建視頻質(zhì)量前提下,H.264最高可節(jié)省50%的碼率,從而大大降低了存儲容量;同時H.264采用VCL和NAL的分層設(shè)計,使H.264具有良好的網(wǎng)絡(luò)親和性,非常有利于網(wǎng)絡(luò)傳輸。



技術(shù)實現(xiàn)要素:

本發(fā)明的主要目的是為了解決視頻壓縮過程因運行視頻編碼壓縮算法而占用大量的CPU資源的問題,提供了一種能夠提高系統(tǒng)實時性的基于H.264網(wǎng)絡(luò)視頻傳輸系統(tǒng)。

為達到上述目的,本發(fā)明所采用的技術(shù)方案是:

一種基于H.264網(wǎng)絡(luò)視頻傳輸系統(tǒng),包括DM365高清處理器、客戶端和與DM365高清處理器均連接的攝像裝置、NAND FLASH存儲器、SDRAM芯片、報警模塊和無線模塊;所述DM365高清處理器內(nèi)設(shè)主控模塊、VPFE模塊、V4L2驅(qū)動程序接口、用于采集視頻數(shù)據(jù)的視頻采集模塊、將視頻模塊所采集的視頻數(shù)據(jù)進行壓縮處理的視頻編碼壓縮模塊、將壓縮后的視頻數(shù)據(jù)進行打包和發(fā)送的視頻流媒體打包與發(fā)送模塊和用于監(jiān)測視頻采集模塊、視頻編碼壓縮模塊和視頻流媒體打包與發(fā)送模塊運行情況并在三者運行出現(xiàn)異常時通過主控模塊驅(qū)動報警模塊報警的程序運行監(jiān)測模塊,其中,所述VPFE模塊分別連接攝像裝置、V4L2驅(qū)動程序接口和視頻采集模塊,所述視頻采集模塊再依次連接視頻編碼壓縮模塊和視頻流媒體打包與發(fā)送模塊,所述視頻流媒體打包與發(fā)送模塊通過無線模塊連接客戶端。

進一步地,所述攝像設(shè)備通過DM365高清處理器上的VGA或HDMI接口連接VPFE模塊,其為CCD/CMOS攝像頭或視頻解碼設(shè)備。

進一步地,所述NAND FLASH存儲器采用的是容量為1Gb的K9F1G08UOA芯片。

進一步地,所述SDRAM芯片采用的是容量為1Gb的MT47H64M16HR-3:E芯片。

進一步地,所述DM365高清處理器為采用Linux操作系統(tǒng)的TMS320DM365數(shù)字媒體處理器。

進一步地,所述無線模塊采用CC2530芯片組成,包括相互匹配的CC2530節(jié)點和CC2530協(xié)調(diào)器,其中,所述CC2530節(jié)點通過串口與視頻流媒體打包與發(fā)送模塊實現(xiàn)通信,所述CC2530協(xié)調(diào)器與客戶端通過串口和USB轉(zhuǎn)換模塊實現(xiàn)通信,所述CC2530節(jié)點和CC2530協(xié)調(diào)器通過無線網(wǎng)絡(luò)實現(xiàn)通信。

進一步地,所述網(wǎng)絡(luò)視頻傳輸系統(tǒng)的傳輸方法如下:

1)獲取視頻信息:所述攝像設(shè)備通過VPFE模塊將其攝制的視頻信息傳輸給DM365高清處理器;

2)視頻采集:所述視頻采集模塊通過VPFE模塊調(diào)用V4L2驅(qū)動程序接口中的程序進行初始化;然后,所述視頻采集模塊從其輸入緩存隊列中獲取一個空緩存,再從所述VPFE模塊中采集一幀視頻數(shù)據(jù)放置該空緩存中,后再將該空緩存?zhèn)髦了鲆曨l采集模塊的輸出緩存隊列中進行存儲,然后,重復(fù)上述初始化后采集方式直至所述視頻采集模塊將VPFE模塊中的視頻數(shù)據(jù)完全采集;

3)視頻編碼壓縮:所述視頻編碼壓縮模塊初始化,并在初始化過程創(chuàng)建一個視頻編碼算法實例;然后,所述視頻編碼壓縮模塊從視頻采集模塊的輸出緩存隊列中獲取放置有一幀視頻數(shù)據(jù)的數(shù)據(jù)緩存及從視頻流媒體打包發(fā)送模塊的輸出緩存隊列獲取一個待用緩存,后調(diào)用所述視頻編碼算法實例的算法處理函數(shù)對數(shù)據(jù)緩存中的視頻數(shù)據(jù)進行壓縮處理,得到符合H.264算法標準的壓縮視頻數(shù)據(jù),再將該壓縮視頻數(shù)據(jù)放置待用緩存中并發(fā)回所述視頻流媒體打包發(fā)送模塊的輸入緩存隊列中;重復(fù)上述壓縮過程直至壓縮完所述視頻采集模塊輸出緩存隊列中的視頻數(shù)據(jù);

4)視頻打包發(fā)送:所述視頻流媒體打包發(fā)送模塊采用數(shù)據(jù)報套接字進行初始化;然后,所述視頻流媒體打包發(fā)送模塊從其輸入緩存隊列中獲取一個存儲有壓縮視頻數(shù)據(jù)的緩存,調(diào)用RTP打包封裝函數(shù)對該緩存中的壓縮視頻數(shù)據(jù)進行打包處理,得到RTP數(shù)據(jù)包,并將該RTP數(shù)據(jù)包通過所述數(shù)據(jù)報套接字發(fā)送給無線模塊,再由所述無線模塊發(fā)送給客戶端;將RTP數(shù)據(jù)包發(fā)送后,該RTP數(shù)據(jù)包所在的緩存通過所述視頻流媒體打包發(fā)送模塊的輸出緩存隊列發(fā)送到步驟3)視頻編碼壓縮過程中循環(huán)使用;重復(fù)初始化后的視頻打包發(fā)送過程,直至所述視頻流媒體打包發(fā)送模塊打包并發(fā)送完其輸入緩存隊列中存儲的壓縮視頻數(shù)據(jù);

5)刪除線程:當所述主控模塊檢測到視頻采集模塊采集完VPFE模塊中的視頻數(shù)據(jù)、視頻編碼壓縮模塊壓縮完視頻采集模塊輸出緩存隊列中的視頻數(shù)據(jù)和視頻流媒體打包發(fā)送模塊打包并發(fā)送完其輸入緩存隊列中存儲的壓縮視頻數(shù)據(jù)時,所述主控模塊驅(qū)動視頻采集模塊、視頻編碼壓縮模塊和視頻流媒體打包發(fā)送模塊刪除各自初始化過程創(chuàng)建的程序及各自緩存隊列中的數(shù)據(jù)信息。

進一步地,在所述步驟2)、步驟3)和步驟4)運行過程,所述程序運行監(jiān)測模塊監(jiān)測監(jiān)測視頻采集模塊、視頻編碼壓縮模塊和視頻流媒體打包與發(fā)送模塊運行情況,并在三者存在有異常情況時生成相應(yīng)的異常信號發(fā)于主控模塊,所述主控模塊再根據(jù)所接收到的異常信號發(fā)出控制指令給報警模塊,促使報警模塊發(fā)出警報。

進一步地,所述主控模塊內(nèi)設(shè)異常數(shù)據(jù)存儲模塊,所述異常數(shù)據(jù)存儲模塊用于存儲視頻采集模塊、視頻編碼壓縮模塊和視頻流媒體打包與發(fā)送模塊運行出現(xiàn)異常時該異常時刻所處理的數(shù)據(jù)信息,其與所述報警模塊同時運行,并在所述視頻采集模塊、視頻編碼壓縮模塊和視頻流媒體打包與發(fā)送模塊恢復(fù)運行時將其所儲存的數(shù)據(jù)信息通過主控模塊返還給相應(yīng)的模塊。

進一步地,所述步驟2)視頻采集過程,所述視頻采集模塊初始化時,所述V4L2驅(qū)動程序接口的open程序打開VPFE模塊,并獲取所述VPFE模塊中視頻數(shù)據(jù),且通過其ioctl程序獲取該視頻數(shù)據(jù)的屬性,然后將該屬性信息發(fā)于主控模塊;所述主控模塊預(yù)先內(nèi)設(shè)視頻屬性,其將所接收到的屬性信息與其內(nèi)設(shè)的視頻屬性相比較,當所接收的屬性信息不等于內(nèi)設(shè)的視頻屬性時,所述主控模塊驅(qū)動V4L2驅(qū)動程序接口的ioctl程序重新設(shè)置視頻數(shù)據(jù)的屬性,以使該屬性信息等于內(nèi)設(shè)的視頻屬性。

本發(fā)明具有以下有益效果:

本發(fā)明采用多線程的程序設(shè)計系統(tǒng),使得視頻采集模塊、視頻編碼壓縮模塊和視頻流媒體打包與發(fā)送模塊能夠單獨處理,相互之間并不干擾,且通過設(shè)置程序運行監(jiān)測模塊來檢測各模塊運行的情況,并在個模塊出現(xiàn)運行異常時驅(qū)動報警模塊發(fā)出警報,從而使用戶能夠及時獲知視頻壓縮過程出現(xiàn)的問題;再者,通過該方式的設(shè)置,可解決現(xiàn)有技術(shù)中因需要運行視頻編碼壓縮算法而占用大量CPU資源的問題,且所壓縮及傳輸?shù)囊曨l在解碼播放時,視頻的分辨率高、畫面清晰、連續(xù)性好,因此可知,本發(fā)明的網(wǎng)絡(luò)視頻傳輸系統(tǒng)能夠減少CPU占用量,所壓縮的視頻品質(zhì)高,效果好。

附圖說明

圖1是本發(fā)明一種基于H.264網(wǎng)絡(luò)視頻傳輸系統(tǒng)的系統(tǒng)框圖。

如下具體實施方式將結(jié)合上述附圖進一步說明本發(fā)明。

具體實施方式

請參閱圖1,在本發(fā)明的一種較佳實施方式中,一種基于H.264網(wǎng)絡(luò)視頻傳輸系統(tǒng),包括DM365高清處理器、客戶端和與DM365高清處理器均連接的攝像裝置、NAND FLASH存儲器、SDRAM芯片、報警模塊和無線模塊。其中,攝像設(shè)備通過DM365高清處理器上的VGA或HDMI接口連接VPFE模塊,其為CCD/CMOS攝像頭或視頻解碼設(shè)備;NAND FLASH存儲器采用的是容量為1Gb的K9F1G08UOA芯片;SDRAM芯片采用的是容量為1Gb的MT47H64M16HR-3:E芯片,以為后期的開發(fā)留有足夠的空間;無線模塊采用CC2530芯片組成,包括相互匹配的CC2530節(jié)點和CC2530協(xié)調(diào)器,其中,CC2530節(jié)點通過串口與視頻流媒體打包與發(fā)送模塊實現(xiàn)通信,CC2530協(xié)調(diào)器與客戶端通過串口和USB轉(zhuǎn)換模塊實現(xiàn)通信,CC2530節(jié)點和CC2530協(xié)調(diào)器通過無線網(wǎng)絡(luò)實現(xiàn)通信,CC2530芯片的系統(tǒng)集成化程度高,外設(shè)接口強大且豐富,其應(yīng)用電路所需要外部元件較少,從而使得所述機器人定位系統(tǒng)結(jié)構(gòu)簡單,線路簡便,易安裝。

DM365高清處理器為采用Linux操作系統(tǒng)的TMS320DM365數(shù)字媒體處理器,其內(nèi)設(shè)主控模塊、VPFE模塊、V4L2驅(qū)動程序接口、用于采集視頻數(shù)據(jù)的視頻采集模塊、將視頻模塊所采集的視頻數(shù)據(jù)進行壓縮處理的視頻編碼壓縮模塊、將壓縮后的視頻數(shù)據(jù)進行打包和發(fā)送的視頻流媒體打包與發(fā)送模塊和用于監(jiān)測視頻采集模塊、視頻編碼壓縮模塊和視頻流媒體打包與發(fā)送模塊運行情況并在三者運行出現(xiàn)異常時通過主控模塊驅(qū)動報警模塊報警的程序運行監(jiān)測模塊,其中,VPFE模塊分別連接攝像裝置、V4L2驅(qū)動程序接口和視頻采集模塊,視頻采集模塊再依次連接視頻編碼壓縮模塊和視頻流媒體打包與發(fā)送模塊,視頻流媒體打包與發(fā)送模塊通過無線模塊連接客戶端。

在本發(fā)明中,所述網(wǎng)絡(luò)視頻傳輸系統(tǒng)的傳輸方法如下:

1)獲取視頻信息:攝像設(shè)備通過VPFE模塊將其攝制的視頻信息傳輸給DM365高清處理器;

2)視頻采集:視頻采集模塊通過VPFE模塊調(diào)用V4L2驅(qū)動程序接口中的程序進行初始化,其初始化具體為,V4L2驅(qū)動程序接口的open程序打開VPFE模塊,并獲取VPFE模塊中視頻數(shù)據(jù),且通過其ioctl程序獲取該視頻數(shù)據(jù)的屬性,然后將該屬性信息發(fā)于主控模塊;主控模塊預(yù)先內(nèi)設(shè)視頻屬性,其將所接收到的屬性信息與其內(nèi)設(shè)的視頻屬性相比較,當所接收的屬性信息不等于內(nèi)設(shè)的視頻屬性時,主控模塊驅(qū)動V4L2驅(qū)動程序接口的ioctl程序重新設(shè)置視頻數(shù)據(jù)的屬性,以使該屬性信息等于內(nèi)設(shè)的視頻屬性;然后,視頻采集模塊從其輸入緩存隊列中獲取一個空緩存,再從VPFE模塊中采集一幀視頻數(shù)據(jù)放置該空緩存中,后再將該空緩存?zhèn)髦烈曨l采集模塊的輸出緩存隊列中進行存儲,以供視頻編碼壓縮模塊進行獲取并壓縮;然后,重復(fù)上述初始化后采集方式直至視頻采集模塊將VPFE模塊中的視頻數(shù)據(jù)完全采集;

3)視頻編碼壓縮:視頻編碼壓縮模塊初始化,并在初始化過程創(chuàng)建一個視頻編碼算法實例,其初始化具體為,通過CERuntime_init()函數(shù)初始化引擎,然后通過文件操作Engine_open()函數(shù)打開編解碼引擎,引擎打開成功后,再通過VIDENC_create()函數(shù)創(chuàng)建一個視頻編碼算法實例,即可;然后,視頻編碼壓縮模塊從視頻采集模塊的輸出緩存隊列中獲取放置有一幀視頻數(shù)據(jù)的數(shù)據(jù)緩存及從視頻流媒體打包發(fā)送模塊的輸出緩存隊列獲取一個待用緩存,后調(diào)用視頻編碼算法實例的算法處理函數(shù)對數(shù)據(jù)緩存中的視頻數(shù)據(jù)進行壓縮處理,得到符合H.264算法標準的壓縮視頻數(shù)據(jù),再將該壓縮視頻數(shù)據(jù)放置待用緩存中并發(fā)回視頻流媒體打包發(fā)送模塊的輸入緩存隊列中,以供視頻流媒體打包發(fā)送模塊處理;重復(fù)上述壓縮過程直至壓縮完視頻采集模塊輸出緩存隊列中的視頻數(shù)據(jù);

4)視頻打包發(fā)送:視頻流媒體打包發(fā)送模塊采用數(shù)據(jù)報套接字進行初始化,其初始化具體步驟為,先通過socket()函數(shù)打開一個套接字,打開成功后,再通過setsockopt()函數(shù)設(shè)置套接字屬性,即可完成初始化;然后,視頻流媒體打包發(fā)送模塊從其輸入緩存隊列中獲取一個存儲有壓縮視頻數(shù)據(jù)的緩存,調(diào)用RTP打包封裝函數(shù)對該緩存中的壓縮視頻數(shù)據(jù)進行打包處理,得到RTP數(shù)據(jù)包,并將該RTP數(shù)據(jù)包通過數(shù)據(jù)報套接字發(fā)送給無線模塊,再由無線模塊發(fā)送給客戶端;將RTP數(shù)據(jù)包發(fā)送后,該RTP數(shù)據(jù)包所在的緩存通過視頻流媒體打包發(fā)送模塊的輸出緩存隊列發(fā)送到步驟3)視頻編碼壓縮過程中循環(huán)使用;重復(fù)初始化后的視頻打包發(fā)送過程,直至視頻流媒體打包發(fā)送模塊打包并發(fā)送完其輸入緩存隊列中存儲的壓縮視頻數(shù)據(jù);

5)刪除線程:當主控模塊檢測到視頻采集模塊采集完VPFE模塊中的視頻數(shù)據(jù)、視頻編碼壓縮模塊壓縮完視頻采集模塊輸出緩存隊列中的視頻數(shù)據(jù)和視頻流媒體打包發(fā)送模塊打包并發(fā)送完其輸入緩存隊列中存儲的壓縮視頻數(shù)據(jù)時,主控模塊驅(qū)動視頻采集模塊、視頻編碼壓縮模塊和視頻流媒體打包發(fā)送模塊刪除各自初始化過程創(chuàng)建的程序及各自緩存隊列中的數(shù)據(jù)信息。

進一步地,在上述步驟2)、步驟3)和步驟4)運行過程,程序運行監(jiān)測模塊監(jiān)測監(jiān)測視頻采集模塊、視頻編碼壓縮模塊和視頻流媒體打包與發(fā)送模塊運行情況,并在三者存在有異常情況時生成相應(yīng)的異常信號發(fā)于主控模塊,主控模塊再根據(jù)所接收到的異常信號發(fā)出控制指令給報警模塊,促使報警模塊發(fā)出警報。

另外,主控模塊內(nèi)設(shè)異常數(shù)據(jù)存儲模塊,異常數(shù)據(jù)存儲模塊用于存儲視頻采集模塊、視頻編碼壓縮模塊和視頻流媒體打包與發(fā)送模塊運行出現(xiàn)異常時該異常時刻所處理的數(shù)據(jù)信息,其與報警模塊同時運行,并在視頻采集模塊、視頻編碼壓縮模塊和視頻流媒體打包與發(fā)送模塊恢復(fù)運行時將其所儲存的數(shù)據(jù)信息通過主控模塊返還給相應(yīng)的模塊。

在本發(fā)明中,視頻采集模塊、視頻編碼壓縮模塊和視頻流媒體打包與發(fā)送模塊的初始化同步進行,且三者的初始化結(jié)束后方進行各自初始化之后的進程。

本發(fā)明中,視頻采集模塊的主要任務(wù)是通過3GDM365_TX板上的VGA或HDMI接口獲取原始的高清視頻數(shù)據(jù),并將視頻數(shù)據(jù)壓縮成一定的格式保存在內(nèi)存緩沖區(qū),以供后續(xù)的視頻壓縮編碼使用,其是整個系統(tǒng)的基礎(chǔ),它的采集速度以及采集的視頻質(zhì)量直接影響整個系統(tǒng)的性能;視頻編碼壓縮模塊主要任務(wù)是對采集線程捕獲到的一個幀視頻數(shù)據(jù),調(diào)用編碼引擎算法實例的處理函數(shù)來進行指定的編碼格式算法壓縮,并將壓縮后的視頻數(shù)據(jù)保存在內(nèi)存緩沖區(qū),以供后續(xù)的視頻流媒體使用,其是整個系統(tǒng)的核心,它的編碼壓縮速度直接影響整個系統(tǒng)的性能;視頻流媒體打包與發(fā)送模塊的主要任務(wù)是將視頻編碼壓縮線程處理后得到的H.264視頻按實時傳輸流RTP格式封包,然后再通過網(wǎng)絡(luò)套接字發(fā)送封裝好的視頻流到客戶端處進行解碼播放,所播放的視頻分辨率高、畫面清晰、連續(xù)性好。

上述說明是針對本發(fā)明較佳可行實施例的詳細說明,但實施例并非用以限定本發(fā)明的專利申請范圍,凡本發(fā)明所提示的技術(shù)精神下所完成的同等變化或修飾變更,均應(yīng)屬于本發(fā)明所涵蓋專利范圍。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1