亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于多GPU的全景實(shí)時(shí)視頻流處理方法及裝置與流程

文檔序號(hào):11594842閱讀:282來(lái)源:國(guó)知局

本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,特別涉及一種基于多gpu的全景實(shí)時(shí)視頻流處理方法及裝置。



背景技術(shù):

伴隨著計(jì)算機(jī)、電子技術(shù)的迅速發(fā)展,整個(gè)處理器計(jì)算速度和存儲(chǔ)量都有飛速增加,逐步滿足計(jì)算機(jī)視覺(jué)技術(shù)的實(shí)現(xiàn)。圖像拼接技術(shù)作為圖像處理、計(jì)算機(jī)視覺(jué)的一個(gè)重要研究方向,已廣泛應(yīng)用于機(jī)器人視覺(jué)系統(tǒng)、醫(yī)學(xué)圖像處理、監(jiān)控視頻等領(lǐng)域。

關(guān)于高分辨率視頻圖像拼接過(guò)程中,均需對(duì)圖像系列進(jìn)行圖像配準(zhǔn)、最佳縫合線搜索、融合等步驟最終形成一張無(wú)縫的大視場(chǎng)圖像。單幀視頻圖像拼接計(jì)算量較大,大多采用并行計(jì)算的方法進(jìn)行加速。目前在單塊高性能的gpu上可以實(shí)現(xiàn)4k(4096*2048)分辨率的全景視頻的實(shí)時(shí)拼接的質(zhì)量。但是,在全景播放器中,即使4k的全景視頻,用戶(hù)視窗在某一個(gè)視角只是顯示全景的一部分,因此視窗中的分辨率只有大約4k的六分之一。當(dāng)在全景視窗中的分辨率達(dá)到2k或者更高時(shí),全景的分辨率會(huì)達(dá)到12k,甚至16k。目前,國(guó)內(nèi)外單塊gpu的全景視頻實(shí)時(shí)拼接尚未支持12k~16k甚至更高的分辨率。多gpu的協(xié)同拼接計(jì)算成為解決高分辨率視頻圖像實(shí)時(shí)拼接的途徑之一。



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

鑒于上述問(wèn)題,本發(fā)明提供了一種基于多gpu的全景實(shí)時(shí)視頻流處理方法及裝置。

本發(fā)明提供的基于多gpu的全景實(shí)時(shí)視頻流處理方法,包括以下步驟:

并行獲取多路待拼接視頻圖像,得到當(dāng)前批次視頻圖像,其中每路待拼接視頻圖像中的每一幀視頻圖像均帶有幀標(biāo)記;

將屬于同一幀標(biāo)記的多路視頻圖像分配至同一gpu,將所述當(dāng)前批次視頻圖像分配至多個(gè)gpu中,同時(shí)獲取下一批次視頻圖像;

獲取當(dāng)前批次拼接后的視頻圖像,將所述拼接后的視頻圖像按照所述幀標(biāo)記進(jìn)行排序并推送。

本發(fā)明還提供了一種基于多gpu的全景實(shí)時(shí)視頻流處理裝置,包括:

所述獲取模塊,用于并行獲取多路待拼接視頻圖像,得到當(dāng)前批次視頻圖像,其中每路待拼接視頻圖像中的每一幀視頻圖像均帶有幀標(biāo)記;

所述分配模塊,用于將屬于同一幀標(biāo)記的多路視頻圖像分配至同一gpu,將所述當(dāng)前批次視頻圖像分配至多個(gè)gpu中;

所述排序模塊,用于獲取當(dāng)前批次拼接后的視頻圖像,將所述拼接后的視頻圖像按照所述幀標(biāo)記進(jìn)行排序并推送。

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

本發(fā)明實(shí)施例中對(duì)于每一幀視頻圖像的全景拼接計(jì)算始終在一塊gpu中執(zhí)行,這種方式減少了拼接計(jì)算與gpu數(shù)量的依賴(lài),并且該方法可以很容易拓展到任意數(shù)量的gpu計(jì)算平臺(tái)中,同時(shí)采用gpu/cuda并行處理技術(shù),通過(guò)對(duì)gpu的擴(kuò)展,實(shí)現(xiàn)多gpu架構(gòu)并發(fā)運(yùn)算,解決了高分辨率拼接運(yùn)算不及時(shí)的問(wèn)題,可以實(shí)時(shí)完成拼接融合與編碼。

附圖說(shuō)明

圖1是本發(fā)明方法實(shí)施例的基于多gpu的全景實(shí)時(shí)視頻流處理方法的流程圖;

圖2是本發(fā)明裝置實(shí)施例的基于多gpu的全景實(shí)時(shí)視頻流處理裝置的結(jié)構(gòu)示意圖;

圖3為實(shí)例1中每批次的視頻數(shù)據(jù)處理的流程;

圖4為實(shí)例1中視頻數(shù)據(jù)在處理時(shí)數(shù)據(jù)流的示意圖;

圖5為實(shí)例1gpu中數(shù)據(jù)流示意圖;

圖6為實(shí)例1數(shù)據(jù)流水示意圖。

具體實(shí)施方式

下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。

為了解決高分辨率視頻圖像的實(shí)時(shí)拼接問(wèn)題,本發(fā)明提供了一種基于多gpu的全景實(shí)時(shí)視頻流處理方法及裝置,以下結(jié)合附圖以及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不限定本發(fā)明。

根據(jù)本發(fā)明的方法實(shí)施例,提供了一種基于多gpu的全景實(shí)時(shí)視頻流處理方法,圖1是本發(fā)明方法實(shí)施例的基于多gpu的全景實(shí)時(shí)視頻流處理方法的流程圖,如圖1所示,根據(jù)本發(fā)明方法實(shí)施例的基于多gpu的全景實(shí)時(shí)視頻流處理方法包括如下處理:

步驟101:并行獲取多路待拼接視頻圖像,得到當(dāng)前批次視頻圖像,其中每路待拼接視頻圖像中的每一幀視頻圖像均帶有幀標(biāo)記。

具體的,每路待拼接視頻圖像的獲取方法包括以下步驟:

獲取當(dāng)前幀視頻圖像,對(duì)當(dāng)前幀視頻圖像按獲取的先后順序進(jìn)行標(biāo)記;

在當(dāng)前幀視頻圖像標(biāo)記結(jié)束后獲取下一幀視頻圖像并標(biāo)記。

步驟102:將屬于同一幀標(biāo)記的多路視頻圖像分配至同一gpu,將所述當(dāng)前批次視頻圖像分配至多個(gè)gpu中,同時(shí)獲取下一批次視頻圖像。

具體的,將所述當(dāng)前批次視頻圖像分配至多個(gè)gpu中,包括:

將當(dāng)前批次視頻圖像分別存入n個(gè)第一存儲(chǔ)隊(duì)列,其中,將屬于同一幀標(biāo)記的多路視頻圖像存入相同的第一存儲(chǔ)隊(duì)列;

將n個(gè)第一存儲(chǔ)隊(duì)列中的視頻圖像分別發(fā)送至n個(gè)gpu中。

優(yōu)選的,將所述當(dāng)前批次視頻圖像分配至多個(gè)gpu中包括:將所述當(dāng)前批次視頻圖像平均分配至多個(gè)gpu中,以使每個(gè)gpu中進(jìn)行視頻圖像拼接的時(shí)間基本相同。

步驟103:獲取當(dāng)前批次拼接后的視頻圖像,將所述拼接后的視頻圖像按照所述幀標(biāo)記進(jìn)行排序并推送。

具體的,獲取當(dāng)前批次拼接后的視頻圖像,包括:

獲取n個(gè)gpu中拼接后的視頻圖像,并存入n個(gè)第二存儲(chǔ)隊(duì)列;

獲取n個(gè)第二存儲(chǔ)隊(duì)列的拼接后的視頻圖像。

本發(fā)明方法實(shí)施例步驟102中,將屬于同一幀標(biāo)記的多路視頻圖像分配至同一gpu,將所述當(dāng)前批次視頻圖像分配至多個(gè)gpu中,同時(shí)獲取下一批次視頻圖像,也即本發(fā)明方法實(shí)施例的基于多gpu的全景實(shí)時(shí)視頻流處理方法具體為如下流程:

并行獲取多路待拼接視頻圖像,得到當(dāng)前批次視頻圖像,其中每路待拼接視頻圖像中的每一幀視頻圖像均帶有幀標(biāo)記;

將屬于同一幀標(biāo)記的多路視頻圖像分配至同一gpu,將所述當(dāng)前批次視頻圖像從宿主機(jī)分配輸至多個(gè)gpu中,同時(shí)多路視頻并行獲取下一批次視頻圖像;

在各個(gè)gpu接收到相對(duì)應(yīng)的待拼接圖像后進(jìn)行拼接計(jì)算,同時(shí)下一批次的圖像被分配輸出至多個(gè)gpu中,同時(shí)多路視頻并行獲取再下一批次視頻圖像;

在各個(gè)gpu完成當(dāng)前批次圖像拼接的計(jì)算任務(wù)后,將拼接結(jié)果傳送至宿主機(jī),同時(shí)各個(gè)gpu進(jìn)行下一批次圖像的拼接計(jì)算,同時(shí)下下批次的圖像被分配輸出至多個(gè)gpu中,同時(shí)多路視頻并行獲取再下一批次視頻圖像;

宿主機(jī)獲取當(dāng)前批次拼接后的視頻圖像,將所述拼接后的視頻圖像按照所述幀標(biāo)記進(jìn)行排序并推送,同時(shí)下一批次的拼接結(jié)果被傳送至宿主機(jī),同時(shí)各個(gè)gpu同時(shí)各個(gè)gpu進(jìn)行下下一批次圖像的拼接計(jì)算,同時(shí)再下批次的圖像被分配輸出至多個(gè)gpu中,同時(shí)多路視頻并行獲取再下一批次視頻圖像。

本發(fā)明方法實(shí)施例的技術(shù)方案為流處理過(guò)程,利用實(shí)時(shí)拼接過(guò)程中視頻數(shù)據(jù)獲取,視頻數(shù)據(jù)傳輸,多路視頻數(shù)據(jù)拼接計(jì)算過(guò)程中執(zhí)行可以重疊的部分實(shí)現(xiàn)計(jì)算資源以及設(shè)備i/o資源的最大利用率;而且對(duì)于每一幀的全景視頻拼接計(jì)算始終在一塊gpu中執(zhí)行,這種方式減少了拼接計(jì)算與gpu數(shù)量的依賴(lài),并且該方法可以很容易拓展到任意數(shù)量的gpu計(jì)算平臺(tái)中。

根據(jù)本發(fā)明的裝置實(shí)施例,提供了一種基于多gpu的全景實(shí)時(shí)視頻流處理裝置,圖2是本發(fā)明裝置實(shí)施例的基于多gpu的全景實(shí)時(shí)視頻流處理裝置的結(jié)構(gòu)示意圖,如圖2所示,根據(jù)本發(fā)明裝置實(shí)施例的基于多gpu的全景實(shí)時(shí)視頻流處理裝置包括:獲取模塊20、分配模塊22、排序模塊24;以下對(duì)本發(fā)明實(shí)施例的各個(gè)模塊進(jìn)行詳細(xì)的說(shuō)明。

所述獲取模塊20,用于并行獲取多路待拼接視頻圖像,得到當(dāng)前批次視頻圖像,其中每路待拼接視頻圖像中的每一幀視頻圖像均帶有幀標(biāo)記。

具體的,所述獲取模塊20用于:

獲取當(dāng)前幀視頻圖像,對(duì)當(dāng)前幀視頻圖像按獲取的先后順序進(jìn)行標(biāo)記;

在當(dāng)前幀視頻圖像標(biāo)記結(jié)束后獲取下一幀視頻圖像并標(biāo)記。

所述分配模塊22,用于將屬于同一幀標(biāo)記的多路視頻圖像分配至同一個(gè)gpu,將所述當(dāng)前批次視頻圖像分配至多個(gè)gpu中。

具體的,所述分配模塊22用于:

將當(dāng)前批次視頻圖像分別存入n個(gè)第一存儲(chǔ)隊(duì)列,其中,將屬于同一幀標(biāo)記的多路視頻圖像存入相同的第一存儲(chǔ)隊(duì)列;

將n個(gè)第一存儲(chǔ)隊(duì)列中的視頻圖像分別發(fā)送至n個(gè)gpu中。

優(yōu)選的,所述分配模塊22用于:將所述當(dāng)前批次視頻圖像平均分配至多個(gè)gpu中,以使每個(gè)gpu中進(jìn)行視頻圖像拼接的時(shí)間基本相同。

所述排序模塊24,用于獲取當(dāng)前批次拼接后的視頻圖像,將所述拼接后的視頻圖像按照所述幀標(biāo)記進(jìn)行排序并推送。

具體的,所述排序模塊24用于:

獲取n個(gè)gpu中拼接后的視頻圖像,并存入n個(gè)第二存儲(chǔ)隊(duì)列;

獲取n個(gè)第二存儲(chǔ)隊(duì)列的拼接后的視頻圖像。

為了更加詳細(xì)的說(shuō)明本發(fā)明的裝置實(shí)施例和方法實(shí)施例,給出實(shí)例1。實(shí)例1中一種基于多gpu的高分辨率全景實(shí)時(shí)視頻流處理方法,對(duì)于每一批的視頻數(shù)據(jù)主要包括以下處理過(guò)程:多路視頻并行接收;視頻幀標(biāo)記;視頻數(shù)據(jù)同步傳輸至多個(gè)gpu;多個(gè)gpu同步拼接計(jì)算;多個(gè)gpu拼接結(jié)果傳輸至宿主機(jī);全景視頻幀排序;推送全景視頻流。

所述多路視頻并行接收采用高清攝像機(jī)作為圖像接收內(nèi)容,啟動(dòng)與視頻路數(shù)相同的線程,每個(gè)線程負(fù)責(zé)一個(gè)攝像機(jī)視頻的獲取。

所述視頻幀標(biāo)記是對(duì)每個(gè)批次的視頻幀按照產(chǎn)生的先后順序進(jìn)行順序標(biāo)記。

所述視頻數(shù)據(jù)同步傳輸至多個(gè)gpu是將每一批的視頻數(shù)據(jù)按照gpu的數(shù)量進(jìn)行平均分配,每個(gè)gpu對(duì)應(yīng)一定數(shù)量的待拼接處理的視頻幀數(shù)據(jù)。每個(gè)gpu對(duì)應(yīng)的視頻幀數(shù)據(jù)傳輸至gpu中。

所述多個(gè)gpu同步拼接計(jì)算是每個(gè)gpu同步進(jìn)行拼接計(jì)算。

所述多個(gè)gpu拼接結(jié)果傳輸至主機(jī)是每個(gè)gpu拼接完成的全景視頻幀傳送至gpu所在的宿主機(jī)。

所述宿主機(jī)是搭載gpu的主機(jī)。

所述全景視頻幀排序是在當(dāng)前批次的所有全景幀視頻拼接完成并傳送至gpu所在宿主機(jī),按照視頻幀的標(biāo)記進(jìn)行先后排序。

所述推送全景視頻流是由獨(dú)立線程對(duì)完成排序的全景視頻幀進(jìn)行推流。

圖3為實(shí)例1中每批次的視頻數(shù)據(jù)處理的流程,與之相對(duì)應(yīng)的圖4為實(shí)例1中視頻數(shù)據(jù)在處理時(shí)數(shù)據(jù)流的示意圖。

如圖3和圖4所示,根據(jù)待拼接的接入視頻的路數(shù)啟動(dòng)相應(yīng)的數(shù)量的線程與隊(duì)列,每個(gè)線程負(fù)責(zé)獲取實(shí)時(shí)的視頻數(shù)據(jù)并存入相對(duì)應(yīng)的隊(duì)列,并且對(duì)每一幀的視頻圖像進(jìn)行順序標(biāo)記,每個(gè)線程的操作相對(duì)獨(dú)立,互不干擾,每個(gè)線程在做完標(biāo)記操作后循環(huán)至下一幀視頻的獲取。

根據(jù)宿主機(jī)中g(shù)pu的數(shù)量將待拼接的視頻幀數(shù)據(jù)進(jìn)行等分,使得每個(gè)gpu分配到相同量的拼接計(jì)算任務(wù),目的在于能夠讓每個(gè)gpu都會(huì)在差不多的時(shí)間節(jié)點(diǎn)完成計(jì)算任務(wù)。

啟動(dòng)與gpu數(shù)量相當(dāng)?shù)木€程,每個(gè)線程分別將待拼接計(jì)算的任務(wù)傳輸至對(duì)應(yīng)的gpu中的存儲(chǔ)隊(duì)列1,如圖5所示,每個(gè)線程在傳輸數(shù)據(jù)時(shí)互不干擾,且每個(gè)線程在傳輸完成此批數(shù)據(jù)后會(huì)自動(dòng)實(shí)施存儲(chǔ)隊(duì)列1中下一批數(shù)據(jù)的傳輸。

每個(gè)gpu進(jìn)行各自計(jì)算任務(wù)的拼接計(jì)算,具體進(jìn)行圖像預(yù)處理、圖像投影、圖像特征提取、圖像配準(zhǔn)、圖像融合操作過(guò)程,將完成拼接的全景視頻幀存入到存儲(chǔ)隊(duì)列2中,對(duì)每個(gè)gpu來(lái)說(shuō),該過(guò)程是不停地進(jìn)行,除非該gpu的存儲(chǔ)隊(duì)列1中沒(méi)有待拼接數(shù)據(jù)。各個(gè)gpu進(jìn)行獨(dú)立的計(jì)算,gpu之間沒(méi)有交互,保證了gpu計(jì)算單元數(shù)量的可擴(kuò)展性。

啟動(dòng)與gpu數(shù)量相當(dāng)?shù)木€程,將拼接完成的全景視頻幀從相應(yīng)的gpu存儲(chǔ)隊(duì)列2中傳輸至宿主機(jī)內(nèi)存中,每個(gè)線程在傳輸完成此批數(shù)據(jù)后會(huì)自動(dòng)實(shí)施存儲(chǔ)隊(duì)列2中下一批數(shù)據(jù)的傳輸

宿主機(jī)中啟動(dòng)一個(gè)守護(hù)進(jìn)程實(shí)時(shí)對(duì)宿主機(jī)內(nèi)存中的全景視頻幀圖像進(jìn)行排序。

宿主機(jī)中推流線程實(shí)時(shí)將排好序的視頻幀以視頻流的形式保存或者推送。

整個(gè)處理過(guò)程的特點(diǎn)是以流水處理的方式進(jìn)行,如圖6所示,對(duì)一系列待拼接的視頻數(shù)據(jù)a0來(lái)說(shuō),平均分配的數(shù)據(jù)a00、a01、a02的數(shù)據(jù)傳輸、在多gpu上的拼接計(jì)算以及最終的全景視頻流的推送都是以流水方式進(jìn)行。

本發(fā)明的有益效果如下:

(1)利用實(shí)時(shí)拼接過(guò)程中視頻數(shù)據(jù)獲取,視頻數(shù)據(jù)傳輸,多路視頻數(shù)據(jù)拼接計(jì)算過(guò)程中執(zhí)行可以重疊的部分實(shí)現(xiàn)計(jì)算資源以及設(shè)備i/o資源的最大利用率。

(2)對(duì)于每一幀的全景視頻拼接計(jì)算始終在一塊gpu中執(zhí)行,這種方式減少了拼接計(jì)算與gpu數(shù)量的依賴(lài),并且該方法可以很容易拓展到任意數(shù)量的gpu計(jì)算平臺(tái)中。

(3)采用gpu/cuda并行處理技術(shù),通過(guò)對(duì)gpu的擴(kuò)展,實(shí)現(xiàn)多gpu架構(gòu)并發(fā)運(yùn)算,解決了高分辨率拼接運(yùn)算不及時(shí)的問(wèn)題,可以實(shí)時(shí)完成拼接融合與編碼。

以上所述僅為本發(fā)明的實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1