生成事件視頻序列的方法和系統(tǒng)以及包括此系統(tǒng)的攝像機(jī)的制作方法
【專利摘要】公開了一種生成事件視頻序列的方法和系統(tǒng)以及包括此系統(tǒng)的攝像機(jī)。該方法包括:接收輸入圖像幀,輸入圖像幀被編碼為設(shè)置成畫面組的圖像幀序列,每個畫面組具有GOP結(jié)構(gòu)。該方法還包括在先進(jìn)先出緩沖器中存儲圖像幀的事件前序列(SEQ1),所述事件前序列(SEQ1)具有預(yù)定的第一GOP結(jié)構(gòu);在接收到事件通知后,從緩沖器中取回事件前序列(SEQ1);以及通過將圖像幀的事件前序列(SEQ1)與事件后序列(SEQ2)組合來生成事件視頻序列,所述事件后序列(SEQ2)具有不同于所述第一GOP結(jié)構(gòu)的第二GOP結(jié)構(gòu)。還公開了一種用于生成事件視頻序列的系統(tǒng)以及一種包括此系統(tǒng)的攝像機(jī)和一種具有適于在由處理器執(zhí)行時實施所述方法的指令的計算機(jī)程序產(chǎn)品。
【專利說明】
生成事件視頻序列的方法和系統(tǒng)以及包括此系統(tǒng)的攝像機(jī)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及視頻序列捕捉領(lǐng)域,更具體地涉及生成編碼圖像幀的視頻序列?!颈尘凹夹g(shù)】
[0002]在諸如網(wǎng)絡(luò)攝像機(jī)監(jiān)控系統(tǒng)的數(shù)字視頻系統(tǒng)中,在傳輸視頻序列之前使用各種視頻編碼方法對其進(jìn)行壓縮。在許多數(shù)字視頻編碼系統(tǒng)中,使用兩種主要的模式來壓縮一連串視頻幀中的視頻幀:幀內(nèi)模式和幀間模式。在幀內(nèi)模式中,通過使用單幀的給定信道內(nèi)像素的空間冗余,經(jīng)由預(yù)測、轉(zhuǎn)化和熵編碼,對亮度和色度信道進(jìn)行編碼。由此,對像素的宏塊的編碼可參照同一幀中的另一類似宏塊進(jìn)行。該編碼幀被稱為幀內(nèi)編碼幀,并且還可被稱為1-幀。幀間模式不利用分離的幀之間的時間冗余,而是依賴于運(yùn)動補(bǔ)償預(yù)測技術(shù),其針對選定的像素塊、逐幀編碼像素中的運(yùn)動,從而根據(jù)一個或多個其他幀來預(yù)測一幀的多個部分。由此,對像素的宏塊的編碼可參照另一先前解碼的幀中的另一類似宏塊進(jìn)行。該編碼幀被稱為幀間編碼幀,并且可被稱為P-幀(前向預(yù)測幀),其可指解碼順序中的先前幀;或者可被稱為B-幀(雙向預(yù)測幀),其可具有用于預(yù)測的、幀間任一隨意顯示-順序關(guān)系,并且可涉及兩個或更多個先前解碼的幀。而且,編碼幀設(shè)置為畫面組或G0P,其中每個畫面組起始于 I _幀,接著的幀是P-幀或B-幀。畫面組的結(jié)構(gòu)可稱為G0P結(jié)構(gòu)。G0P結(jié)構(gòu)的其中一方面是畫面組中幀的數(shù)目,其通常被稱為G0P長度。G0P長度可從1開始變化至例如61440, “1”意味著畫面組中僅有幀內(nèi)編碼幀而沒有幀間編碼幀,“61440”意味著畫面組中在一個幀內(nèi)編碼幀后接著61439個幀間編碼幀。由于幀間編碼幀通常需要比幀內(nèi)編碼幀更多的位來表示圖像,具有較長的G0P長度的運(yùn)動視頻通常將比具有較短的G0P長度的運(yùn)動視頻產(chǎn)生更低的輸出碼率。
[0003]在接收到編碼視頻序列的地點(diǎn),編碼幀被解碼。與網(wǎng)絡(luò)攝像機(jī)監(jiān)控系統(tǒng)相關(guān)的問題是用于傳輸編碼視頻的可用帶寬。在采用了大量攝像機(jī)的系統(tǒng)中尤其如此。而且,在可用帶寬較低的情形下這一問題尤其重要,比如當(dāng)視頻序列即將被傳輸給比如移動電話、PDA或平板電腦的移動裝置時。關(guān)于圖像的存儲,出現(xiàn)了類似的問題,例如,當(dāng)在攝像機(jī)的機(jī)載SD 卡中存儲圖像時。必須做出妥協(xié)以在可用帶寬或存儲空間與期望的高質(zhì)量視頻圖像之間進(jìn)行平衡。已使用了大量方法和系統(tǒng)來控制編碼從而降低從攝像機(jī)進(jìn)行傳輸?shù)拇a率。這些已知的方法和系統(tǒng)通常施加了碼率限制并且控制編碼以使得來自攝像機(jī)的輸出碼率總是低于碼率限制。以此方式,可確保足夠的可用帶寬以使得系統(tǒng)中的所有攝像機(jī)可傳輸其視頻序列給接收地點(diǎn),例如,控制中心,操作員可在接收地點(diǎn)監(jiān)控來自系統(tǒng)的攝像機(jī)的視頻并且可記錄視頻供以后用。然而,對所有攝像機(jī)施加碼率限制可能會不時地導(dǎo)致不期望的低圖像質(zhì)量,因為不管在受監(jiān)控場景中發(fā)生了什么,碼率限制可能需要嚴(yán)重壓縮包含大量細(xì)節(jié)的圖像。最近,已提出使用改變G0P結(jié)構(gòu)的各種方案來控制輸出碼率。例如,可以變化G0P長度以使得在受監(jiān)控場景中存在極少運(yùn)動或者不存在運(yùn)動時、使用較長的G0P長度從而降低輸出碼率,而在場景中存在運(yùn)動時減少G0P長度從而允許以更高碼率為代價獲得更高質(zhì)量的圖像。
[0004]視頻序列的記錄,特別是在監(jiān)控或監(jiān)視應(yīng)用中,可能基于一個或多個事件觸發(fā)器, 例如,運(yùn)動檢測事件觸發(fā)器。以此方式,可以在事件發(fā)生時啟動記錄,比如當(dāng)在先前靜止的場景中發(fā)生移動時。當(dāng)記錄基于事件觸發(fā)器時,通常有益的是還記錄事件前視頻序列。例如,如果記錄是由在感興趣的區(qū)域(代表受監(jiān)控場景的一部分)中移動的人觸發(fā)的,則還可能對記錄顯示了人是如何移動到場景的那部分中的視頻序列感興趣。類似地,通常有益的是還記錄捕捉了在人已經(jīng)移出了感興趣的區(qū)域之后發(fā)生了什么的事件后(post-event)序列。為了能夠在事件發(fā)生時記錄事件前(pre-event)視頻序列,可持續(xù)地在先進(jìn)先出緩沖器 (還被稱為FIFO緩沖器)中緩沖圖像幀。當(dāng)事件發(fā)生時,從緩沖器中取回圖像幀以使得可在該事件處開始的視頻序列之前記錄這些圖像幀。然后,在事件過去之后,可繼續(xù)記錄預(yù)定時間。事件前和事件后序列的時間長度可由用戶設(shè)定。
[0005]然而,如果為了控制碼率而變化G0P長度,則不可能確保事件前序列是可查看的。 這是因為解碼必須從幀內(nèi)編碼幀開始。如果事件前緩沖器中的第一圖像是幀間編碼幀,則此幀間編碼幀參照的在先編碼幀已因用于此緩沖器的FIFO原理而丟失。取決于所使用的 G0P長度和事件前序列的時間設(shè)定,在事件前緩沖器中可能存在幀內(nèi)編碼幀,但該幀內(nèi)編碼幀來自于比用戶期望的更靠近事件的時間點(diǎn)。可通過對用戶設(shè)定的事件前時間增加預(yù)定的安全周期,提高在事件前緩沖器中存在來自事件之前足夠長時間點(diǎn)的幀內(nèi)編碼幀的可能性,以使得在事件前緩沖器中所存儲的時間實際上比用戶已設(shè)定為事件前記錄時間的多若干秒。同樣地,這需要較大的緩沖器,當(dāng)使用較短的G0P長度時,其將不必要地大。而且,如果 G0P長度較長,則將仍沒有用于足夠數(shù)量的幀的空間來確保緩沖器中存在來自設(shè)定的事件前時間之前的時間點(diǎn)的幀內(nèi)編碼幀。因此,可見仍存在對生成事件視頻序列的改進(jìn)方法的需求。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是提供一種生成事件視頻序列的方法,其使得即使采用了可變G0P 長度,也有可能確??梢杂涗浕蛘唢@示期望時間長度的事件前視頻序列。進(jìn)一步的目的是提供一種生成事件視頻序列的方法,其能夠在G0P結(jié)構(gòu)以其他方式變化時也記錄或顯示事件前序列。
[0007]本發(fā)明的進(jìn)一步的目的是提供一種用于生成事件視頻序列的系統(tǒng),其使得即使使用了可變G0P結(jié)構(gòu)、并且更具體地使用了可變G0P長度,也有可能生成包括期望時間長度的事件前序列的視頻序列。
[0008]根據(jù)第一方面,這些目的全部或者至少部分地通過生成事件視頻序列的方法實現(xiàn),該方法包括:接收輸入圖像幀,輸入圖像幀被編碼為設(shè)置成畫面組的圖像幀序列,每個畫面組包括幀內(nèi)編碼幀和零或更多個后續(xù)幀間編碼幀;所述圖像幀序列中的每個畫面組具有G0P結(jié)構(gòu);在先進(jìn)先出緩沖器中存儲圖像幀的事件前序列;所述事件前序列具有預(yù)定的第一 G0P結(jié)構(gòu);接收事件通知;在接收到所述事件通知后,從所述緩沖器中取回所述事件前序列;以及通過將圖像幀的所述事件前序列與事件后序列組合來生成事件視頻序列,所述事件后序列具有不同于所述第一 G0P結(jié)構(gòu)的第二G0P結(jié)構(gòu)。以這種方式,有可能使用可變G0P結(jié)構(gòu)來例如控制輸出碼率,并且同時確保在事件視頻序列中可包含有用的期望時間長度的事件前視頻序列。由此,預(yù)定的G0P結(jié)構(gòu)用于事件前序列,而另一G0P結(jié)構(gòu)用于事件后序列。
[0009]第一 GOP結(jié)構(gòu)與所述第二GOP結(jié)構(gòu)的區(qū)別可在于:第一 GOP結(jié)構(gòu)的第一 GOP長度不同于第二G0P結(jié)構(gòu)的第二G0P長度,每個G0P長度是由包含在相應(yīng)的畫面組中的幀的數(shù)目定義的。[〇〇1〇]第二G0P長度可長于所述第一 G0P長度。例如,用戶可設(shè)置待使用的G0P長度,過長的G0P長度可用于整個畫面組以適應(yīng)于事件前緩沖器。較短的G0P長度在此情況下可用于事件前序列。
[0011]第一 G0P長度可以是預(yù)定的,而第二G0P長度可以是動態(tài)的。如果通過改變G0P長度來控制輸出碼率,則這可以是有用的。將適應(yīng)于事件前緩沖器的、預(yù)定的、靜態(tài)的G0P長度可用于事件前序列從而確??商峁┛刹榭吹摹⒆銐蜷L度的事件前序列。
[0012]根據(jù)該方法的變型,動態(tài)G0P長度是基于所確定的一個或多個輸入圖像幀的運(yùn)動水平、一個或多個輸入圖像幀的噪聲水平、編碼所述輸入圖像幀時的幀率或者為編碼所述圖像幀而設(shè)定的碼率限制(bit rate limit)中的至少一個而設(shè)定的。例如,如果在圖像幀中存在高水平運(yùn)動,則可減小G0P長度從而提供高質(zhì)量圖像。進(jìn)一步地,如果噪聲水平高(其可能會被誤認(rèn)為是高水平運(yùn)動),則可增加G0P長度從而減小輸出碼率。
[0013]預(yù)定的G0P結(jié)構(gòu)可通過用戶輸入來設(shè)定。[〇〇14]根據(jù)第二方面,上述目的全部或者至少部分地通過用于生成事件視頻序列的系統(tǒng)實現(xiàn),所述系統(tǒng)包括:圖像接收器,被設(shè)置為接收輸入圖像幀,輸入圖像幀被編碼為設(shè)置成畫面組的圖像幀序列,每個畫面組包括幀內(nèi)編碼幀和零或更多個后續(xù)幀間編碼幀,所述圖像幀序列中的每個畫面組具有G0P結(jié)構(gòu);緩沖器,被設(shè)置為基于先進(jìn)先出而存儲圖像幀的事件前序列,所述事件前序列具有預(yù)定的第一G0P結(jié)構(gòu);事件通知接收器,被設(shè)置為接收事件通知;生成模塊,被設(shè)置為從所述緩沖器取回事件前序列,并且在接收到事件通知后將圖像幀的事件前序列與事件后序列組合,所述事件后序列具有不同于所述第一 G0P結(jié)構(gòu)的第二 G0P結(jié)構(gòu)。通過這樣的系統(tǒng),有可能生成包括期望時間長度的事件前視頻序列的事件視頻序列,并且仍將利用可變或動態(tài)G0P結(jié)構(gòu)的優(yōu)勢。[0〇15]在系統(tǒng)的實施例中,第一G0P結(jié)構(gòu)與第二G0P結(jié)構(gòu)的區(qū)別在于所述第一G0P結(jié)構(gòu)的第一 G0P長度不同于所述第二G0P結(jié)構(gòu)的第二G0P長度,每個G0P長度是由包含在相應(yīng)畫面組中的幀的數(shù)目定義的。
[0016]第二G0P長度可長于第一 G0P長度。這使得即使該較長的G0P長度對于事件前緩沖器而言過長,也有可能例如對事件后序列使用較長的G0P長度從而降低輸出碼率。
[0017]第一G0P長度可以是預(yù)定的,而所述第二G0P長度是動態(tài)的。由此,第一G0P長度可由用戶預(yù)編程或設(shè)定,而第二G0P長度可隨著例如受監(jiān)控的場景中的變化而變化。
[0018]根據(jù)一實施例,系統(tǒng)還包括G0P長度模塊,該G0P長度模塊被設(shè)置為基于所確定的一個或多個輸入圖像幀的運(yùn)動水平、一個或多個輸入圖像幀的噪聲水平、編碼所述輸入圖像幀時的幀率或者為編碼所述圖像幀而設(shè)定的碼率限制中的至少一個來設(shè)定所述動態(tài)G0P 長度。這可能例如能夠節(jié)省碼率。
[0019]系統(tǒng)可進(jìn)一步包括用戶輸入模塊,該用戶輸入模塊被設(shè)置為接收用于設(shè)定所述預(yù)定的G0P長度的用戶輸入。由此,用戶可設(shè)定待用于事件前緩沖器的G0P長度。
[0020]根據(jù)第三方面,上述目的全部或者至少部分地通過包括根據(jù)第二方面的系統(tǒng)的攝像機(jī)實現(xiàn)。攝像機(jī)通??梢砸耘c該系統(tǒng)相同的方式實現(xiàn)并且具有伴隨其的優(yōu)勢。
[0021]根據(jù)第四方面,上述目的全部或者至少部分地通過包括計算機(jī)可讀存儲介質(zhì)的計算機(jī)程序產(chǎn)品實現(xiàn),該計算機(jī)可讀存儲介質(zhì)具有適于在由處理器執(zhí)行時實施根據(jù)第一方面的方法的指令。處理器可為具有處理能力的任意類型的裝置,例如,中央處理單元(CPU)、圖形處理單元(GPU)、在集成電路中實施的定制處理裝置、ASIC、FPGA或包括分立部件的邏輯電路。
[0022]在此使用的術(shù)語“事件”應(yīng)以廣義方式解釋。由此,事件可為,例如,通過諸如運(yùn)動檢測算法的視頻分析算法生成的或者通過諸如門觸點(diǎn)或PIR傳感器的外部裝置生成的報警事件;由攝像機(jī)系統(tǒng)生成的系統(tǒng)事件,比如錯誤通知;或者用戶輸入事件,比如命令輸入。 [〇〇23] 本發(fā)明的適用性的進(jìn)一步的范圍將通過下文中給出的詳細(xì)說明而變得顯而易見。 然而,應(yīng)理解的是,表示本發(fā)明優(yōu)選實施例的詳細(xì)說明和具體實例僅僅是以例示方式給出的,因為根據(jù)此詳細(xì)說明,本發(fā)明范圍內(nèi)的各種變化和修改對于本領(lǐng)域技術(shù)人員而言是顯而易見的。
[0024]因此,應(yīng)理解的是,本發(fā)明不限于所描述的裝置的具體元件部分或所描述的方法的步驟,因為此裝置和方法可發(fā)生變化。還應(yīng)理解的是,在此使用的技術(shù)術(shù)語僅用于描述具體實施例的目的,并非旨在是限制性的。必須注意的是,在說明書和隨附權(quán)利要求書中使用的冠詞“一”、“該”和“所述”意指除非在上下文中另外明確指示、存在一個或多個元件。因此,例如,當(dāng)提及“一對象”或“該對象”時,可包括若干對象,以此類推。而且,詞語“包括”不排除其他元件或步驟。【附圖說明】
[0025]現(xiàn)在將通過舉例方式、參照隨附示意性附圖更詳細(xì)地描述本發(fā)明,附圖中:
[0026]圖1是由攝像機(jī)監(jiān)控的場景的視圖;[0〇27]圖2是編碼的圖像幀序列的圖不;[0〇28]圖3是事件視頻序列的圖不;
[0029]圖4是生成事件視頻序列的方法的流程圖;以及
[0030]圖5是用于生成事件視頻序列的系統(tǒng)的框圖?!揪唧w實施方式】
[0031]在圖1中顯示了通過攝像機(jī)1監(jiān)控的場景。在該場景中存在具有門3的建筑物2。攝像機(jī)1在此實例中用于監(jiān)控門3前的區(qū)域,尤其是門3附近的人的運(yùn)動。
[0032]攝像機(jī)1捕捉該場景的圖像,然后對捕捉到的圖像執(zhí)行視頻運(yùn)動檢測算法。攝像機(jī) 1被設(shè)定為基于根據(jù)運(yùn)動檢測算法的事件來記錄視頻。經(jīng)由圖形用戶界面,用戶可定義場景圖像中感興趣的區(qū)域,將在此區(qū)域中執(zhí)行運(yùn)動檢測算法。例如,用戶可能僅對門3前的運(yùn)動感興趣,比如道路5上的運(yùn)動,但對灌木叢4的搖動運(yùn)動不感興趣。由此,用戶可將感興趣的區(qū)域定義為覆蓋門3前方的期望區(qū)域但不覆蓋灌木叢4。[〇〇33]為了能夠在記錄中包括事件前視頻序列,攝像機(jī)1具有FIFO緩沖器(圖5中的12), 將在下文中結(jié)合圖4和圖5對其進(jìn)行進(jìn)一步討論。當(dāng)運(yùn)動檢測算法確定感興趣的區(qū)域中存在運(yùn)動時,生成事件。此事件觸發(fā)對捕捉的圖像以及在事件時間點(diǎn)處緩沖器中圖像的記錄。然后,繼續(xù)記錄直至運(yùn)動檢測算法不再檢測到感興趣的區(qū)域內(nèi)的運(yùn)動。為了在事件之后同樣記錄該場景的視頻序列以使得用戶可以看到在人離開感興趣的區(qū)域之后發(fā)生了什么,可設(shè)定附加的事件后記錄時間,以使得在運(yùn)動檢測事件已經(jīng)停止檢測感興趣的區(qū)域中的運(yùn)動之后,在該附加的時間內(nèi)繼續(xù)進(jìn)行記錄。除了記錄事件視頻序列之外或者作為其替換方案,攝像機(jī)可將事件視頻序列傳輸給使用地點(diǎn),比如安全控制中心,可在該使用地點(diǎn)觀看和/或記錄事件視頻序列。
[0034]在可記錄或傳輸事件視頻序列之前,使用基于分塊的混合視頻編解碼器對其進(jìn)行編碼,比如使用h.264編解碼器。如上文討論的,將圖像編碼為1-幀或P-幀,并且這些幀被分組為畫面組,也被稱為G0P。圖2例示了設(shè)置在兩個畫面組G0P1和G0P2中的編碼的圖像幀序列。第一畫面組G0P1起始于1-幀101,其后跟隨著多個P-幀。第一畫面組以P-幀102結(jié)束。下一幀被編碼為1-幀103,其形成第二畫面組G0P2的起始幀。在此1-幀103之后,接著的圖像幀被編碼為P-幀,并且第二畫面組以P-幀104結(jié)束。[0〇35]現(xiàn)在可參照圖3,其例不了事件視頻序列是如何生成的。在此,圖像幀中的1-幀由I 表示,而P-幀由P表示。攝像機(jī)1繼續(xù)在緩沖器(在圖5中由附圖標(biāo)記11表示)中存儲捕捉的圖像幀。緩沖器是FIFO緩沖器,以使得當(dāng)緩沖器已滿時、緩沖器中最早的圖像幀被最新捕捉的圖像幀覆蓋。用戶已設(shè)定了例如3s的事件前記錄時間。為了使這3s可解和可查看,事件前視頻序列必須以1-幀開始。然而,很有可能的是,這3s中的第一圖像幀是P-幀,而解碼無法從 P-幀開始,因為在不具有編碼P-幀時所參照的1-幀的情況下、P-幀本身不包含所有必要數(shù)據(jù)。為了保證存在至少3s的事件前視頻,對事件前緩沖器增加對應(yīng)于一個畫面組的另外的時間。因此,事件前緩沖器的實際長度將取決于用戶選擇的事件前時間,并且取決于當(dāng)前幀率和G0P長度。例如,當(dāng)用戶設(shè)定事件前時間為3s、幀率為30fps并且G0P長度為128時,事件前緩沖器中存儲的總時間將為7.3s。
[0036]當(dāng)有人進(jìn)入受監(jiān)控的場景時,運(yùn)動檢測算法確定感興趣的區(qū)域中存在運(yùn)動,然后觸發(fā)事件。在通知此事件后,記錄當(dāng)前在事件前緩沖器中的圖像幀,并且開始記錄在事件開頭時捕捉的圖像幀。當(dāng)運(yùn)動檢測算法不再檢測到感興趣的區(qū)域中的運(yùn)動時,繼續(xù)記錄直至由用戶設(shè)定的事件后記錄時間結(jié)束。事件后記錄時間可為例如5s。
[0037]為了控制碼率,期望使用動態(tài)G0P長度進(jìn)行記錄。以此方式,當(dāng)該場景中僅有少量運(yùn)動或不存在運(yùn)動時,可使用較長的G0P長度,從而降低輸出碼率,這是因為P-幀通常需要比1-幀所需更少的位進(jìn)行編碼。當(dāng)該場景中有大量運(yùn)動時,可使用較短的G0P長度,這導(dǎo)致較高的輸出碼率但也能夠減少編碼偽影(encoding artifact)。如已提到過的,這使得難以或者甚至無法確定可確保解碼和查看期望的事件前時間的事件前緩沖器長度。一旦再次使用由用戶設(shè)定的事件前記錄時間為3s并且?guī)蕿?0fps的實例、但同時增加G0P長度至256, 則事件前緩沖器將必須保持總計11.3s的事件前視頻。如果在事件前緩沖器中僅存儲了先前計算的7.3s的視頻,則將有很大的風(fēng)險使得在期望的3s的事件前記錄之前或者開始時不存在1-幀。應(yīng)指出的是,通過幀率和G0P長度的組合,畫面組的長度大于由用戶設(shè)定的事件前記錄時間3s。
[0038]根據(jù)本發(fā)明,這是通過對緩沖器使用另一GOP結(jié)構(gòu)解決的,在本示例中為另一GOP 長度。如果對緩沖器使用了預(yù)定的GOP長度,則緩沖器的必要長度可預(yù)計地計算為如上所述。在圖3中,事件前序列由附圖標(biāo)記SEQ1表示。一旦觸發(fā)運(yùn)動檢測事件,則取回并記錄緩沖器中的事件前視頻序列SEQ1,然后開始對捕捉到的圖像幀進(jìn)行記錄。事件后序列由附圖標(biāo)記SEQ2表示,并且包括在事件過程(S卩,從事件開始到事件結(jié)束)中捕捉到的圖像幀以及在設(shè)定的事件后記錄時間中捕捉到的圖像幀。與事件前序列相比,對于在事件開始時的視頻序列,使用動態(tài)GOP長度,如由圖3中每個1-幀之后不同數(shù)量的P-幀所表示的。在此,動態(tài)GOP 長度是基于圖像幀中的運(yùn)動水平而控制的。此動態(tài)GOP長度控制可以以許多方式執(zhí)行,例如,以
【申請人】的歐洲專利申請N0.14193291.3中公開的方式執(zhí)行,并且將在此對其進(jìn)行進(jìn)一步詳細(xì)討論。
[0039]應(yīng)注意的是,盡管上述討論涉及事件視頻序列的記錄,但同樣的生成事件視頻序列的原理可用于其他目的,比如用于向例如控制中心的保安人員顯示事件視頻序列。其還可用于例如經(jīng)由電子郵件或文件傳輸協(xié)議(ftp)傳輸事件視頻序列。
[0040]可參照圖4以更通用的術(shù)語描述生成事件視頻序列的方法,圖4是方法的變型的流程圖。接收輸入圖像幀(步驟S01)。輸入圖像幀被編碼為設(shè)置成畫面組的圖像幀序列。每個畫面組具有例如定義所使用的幀的類型(例如,1-幀和P-幀和/或B-幀)以及每個畫面組中幀的數(shù)量(即,G0P的長度)的G0P結(jié)構(gòu)。將圖像幀的事件前序列存儲(步驟S02)在FIFO緩沖器中。事件前序列具有預(yù)定的第一G0P結(jié)構(gòu)。接收事件通知或觸發(fā)(S03)。當(dāng)已收到事件通知時,從緩沖器中取回事件前序列(步驟S04)。通過將圖像幀的事件前序列與事件后序列組合來生成事件視頻序列。圖像幀的事件后序列是在事件時間處開始捕捉的并且具有不同于第一G0P結(jié)構(gòu)的第二G0P結(jié)構(gòu)。第一和第二G0P結(jié)構(gòu)可以通過若干方式而不同,例如,通過具有不同的G0P長度。所生成的事件視頻序列可以以各種方式使用,比如用于記錄、顯示或傳輸。 該方法可借助于計算機(jī)程序執(zhí)行。
[0041]現(xiàn)在將參照圖5描述可以根據(jù)上文中描述的方法進(jìn)行使用的系統(tǒng)。用于生成事件視頻序列的系統(tǒng)10包括圖像接收器11,該圖像接收器11被設(shè)置為接收編碼為設(shè)置成畫面組的圖像幀序列的輸入圖像幀。系統(tǒng)10還包括FIFO緩沖器12,用于存儲圖像幀的事件前序列, 事件前序列具有預(yù)定的第一 G0P結(jié)構(gòu)。此外,系統(tǒng)10具有事件通知接收器13,該事件通知接收器13被設(shè)置為接收事件通知。系統(tǒng)10還具有生成模塊14,該生成模塊14被設(shè)置為從緩沖器12取回事件前序列,并且在接收到事件通知之后將圖像幀的事件前序列與事件后序列組合。事件后序列具有不同于第一G0P結(jié)構(gòu)的第二G0P結(jié)構(gòu)。在此實施例中,系統(tǒng)10包括G0P長度模塊,該G0P長度模塊被設(shè)置為設(shè)定用于事件后序列的動態(tài)G0P長度。動態(tài)G0P長度可基于,例如,輸入圖像幀中的運(yùn)動水平。而且,系統(tǒng)10可包括用戶輸入模塊16,該用戶輸入模塊 16被設(shè)置為接收用于為事件前序列設(shè)定預(yù)定G0P長度的用戶輸入。用戶可以例如經(jīng)由系統(tǒng) 10的圖形用戶界面輸入期望的G0P長度。
[0042]將意識到的是,本領(lǐng)域技術(shù)人員可以以許多方式修改上述實施例并且仍可利用上文中各實施例所顯示的本發(fā)明的優(yōu)勢。作為示例,應(yīng)注意到,在以上說明中僅使用P-幀作為幀間編碼幀。然而,也可使用B-幀。[〇〇43] 如已提到過的,可因各種原因生成事件視頻序列,比如如上所討論地用于記錄,或者用于顯示或傳輸,例如經(jīng)由電子郵件或ftp。
[0044]用于生成事件視頻序列的系統(tǒng)10可集成在攝像機(jī)內(nèi),例如圖1所示的監(jiān)控攝像機(jī) 1。系統(tǒng)10還可獨(dú)立地實施,但可操作地連接至攝像機(jī)。
[0045]上述實例中的動態(tài)G0P長度是基于運(yùn)動水平的。然而,事件后序列的G0P長度也可通過使用其它方案而變化。G0P長度的動態(tài)控制可基于一個或多個輸入圖像幀的噪聲水平、編碼所述輸入圖像幀時的幀率或者為編碼所述圖像幀而設(shè)定的碼率限制。
[0046]而且,可能需要在丟失網(wǎng)絡(luò)連接之后插入1-幀以確保新的解碼起始點(diǎn)。[〇〇47]此外或者替換性地,用戶可能已設(shè)定了對于可用的事件前緩沖器而言過長的、待用于記錄的G0P長度。適應(yīng)于緩沖器的較短的G0P長度在此情況下可用于事件前序列,而由用戶設(shè)定的較長的G0P長度用于事件后序列。[〇〇48]第二G0P結(jié)構(gòu)可以通過“僅G0P長度有區(qū)別”的替換方式或者附加的方式而不同于第一G0P結(jié)構(gòu)。僅舉例說明,第一G0P結(jié)構(gòu)可由1-幀、P-幀和B-幀構(gòu)成,而第二G0P結(jié)構(gòu)可僅由 1-幀和P-幀構(gòu)成。
[0049]除了G0P結(jié)構(gòu)的改變之外,事件前序列與事件后序列之間可能還存在其它編碼區(qū)另IJ。例如,一個壓縮值可用于事件前序列,而另一個壓縮值可用于事件后序列??商鎿Q地,靜態(tài)壓縮值可用于事件前序列,而動態(tài)控制的壓縮值可用于事件后序列。
[0050]在上文描述的實例中,事件是運(yùn)動檢測事件。應(yīng)意識到,該方法也可同樣地用于根據(jù)其它視頻分析算法的事件,比如對象追蹤算法、橫條線檢測算法、錯路檢測算法、面部檢測算法或者牌照識別算法。事件還可為例如源自外部傳感器的其它報警事件類型,比如麥克風(fēng)、門觸點(diǎn)或PIR傳感器。此類裝置可集成在攝像機(jī)內(nèi)、經(jīng)由I/O端口連接至攝像機(jī)或者可以是分立的。分立裝置可例如經(jīng)由以太網(wǎng)連接將事件通知提交給系統(tǒng)或攝像機(jī)。
[0051]事件不必為報警事件,而是可為系統(tǒng)事件或用戶輸入事件。系統(tǒng)事件可由攝像機(jī)系統(tǒng)生成,并且可為錯誤通知,比如網(wǎng)絡(luò)丟失通知。用戶事件可為命令輸入,比如手動開始記錄。
[0052]在圖5所示的實施例中,系統(tǒng)僅具有一個緩沖器。然而,系統(tǒng)可設(shè)置有更多個緩沖器,并且該方法可使用更多緩沖器。例如,系統(tǒng)和方法可操作多于一種的事件,并且可具有用于每一此類事件的一個緩沖器,例如,一個緩沖器用于運(yùn)動檢測,一個緩沖器用于面部檢測,一個緩沖器用于系統(tǒng)事件,并且一個緩沖器用于用戶事件。以此方式,每個可用類型的事件可啟動其自己的事件視頻序列的生成。例如,可通過受監(jiān)控的場景中的運(yùn)動檢測來啟動第一事件視頻序列的生成,以使得可在有人進(jìn)入該場景時將第一視頻序列顯示給控制中心的操作員。如果之后該人通過切斷網(wǎng)絡(luò)連接來干預(yù)攝像機(jī),則系統(tǒng)事件可啟動第二事件視頻序列的生成,第二事件視頻序列可本地存儲在攝像機(jī)中,例如,存儲在機(jī)載SD卡中。 [〇〇53]作為輸入圖像幀源的攝像機(jī)可為任意類型的攝像機(jī),比如采用可見光的攝像機(jī)、 IR攝像機(jī)或者熱感攝像機(jī)。攝像機(jī)可為監(jiān)控攝像機(jī)。[〇〇54]輸入圖像幀通??捎煽梢姽鈧鞲衅?、熱傳感器、飛行時間傳感器或者其它類型的、 能夠生成待使用幀內(nèi)和幀間編碼技術(shù)編碼的信息的、圖像生成傳感器生成。
[0055]用于對圖像幀編碼的編碼器可為任意類型的基于分塊的混合視頻編解碼器。編碼器可集成到事件視頻序列生成系統(tǒng)內(nèi)或者可為可操作地連接至事件視頻序列生成系統(tǒng)的分立裝置或模塊。[〇〇56]系統(tǒng)可實施為軟件、固件或硬件或者其組合。
[0057]由此,本發(fā)明不應(yīng)限于所示出的實施例,而是應(yīng)該由隨附權(quán)利要求書限定。
【主權(quán)項】
1.一種生成事件視頻序列的方法,所述方法包括:接收輸入圖像幀,所述輸入圖像幀被編碼為設(shè)置成畫面組的圖像幀序列,每個畫面組 包括幀內(nèi)編碼幀和零或更多個隨后的幀間編碼幀,所述圖像幀序列中的每個畫面組具有 GOP結(jié)構(gòu);在先進(jìn)先出緩沖器(12)中存儲圖像幀的事件前序列(SEQ1),所述事件前序列(SEQ1)具 有預(yù)定的第一 GOP結(jié)構(gòu);接收事件通知;在接收到所述事件通知后,從所述緩沖器(12)取回所述事件前序列(SEQ1);以及通過將圖像幀的所述事件前序列(SEQ1)與事件后序列(SEQ2)組合來生成事件視頻序 列,所述事件后序列(SEQ2)具有不同于所述第一GOP結(jié)構(gòu)的第二GOP結(jié)構(gòu),其中,所述第一GOP結(jié)構(gòu)與所述第二GOP結(jié)構(gòu)的區(qū)別在于:所述第一GOP結(jié)構(gòu)的第一GOP 長度不同于所述第二GOP結(jié)構(gòu)的第二GOP長度,每個GOP長度是由包含在相應(yīng)的畫面組中的 幀的數(shù)目定義的,并且其中,所述第一GOP長度是預(yù)定的,而所述第二GOP長度是動態(tài)的。2.根據(jù)權(quán)利要求1所述的方法,其中,所述第二GOP長度長于所述第一GOP長度。3.根據(jù)權(quán)利要求1所述的方法,其中,所述動態(tài)GOP長度是基于所確定的一個或多個輸 入圖像幀的運(yùn)動水平、一個或多個輸入圖像幀的噪聲水平、編碼所述輸入圖像幀時的幀率 或者為編碼所述圖像幀而設(shè)定的碼率限制中的至少一個設(shè)定的。4.根據(jù)權(quán)利要求1所述的方法,其中,所述預(yù)定GOP結(jié)構(gòu)是由用戶輸入設(shè)定的。5.—種生成事件視頻序列的系統(tǒng),所述系統(tǒng)包括:圖像接收器(11),被設(shè)置為接收輸入圖像幀,所述輸入圖像幀被編碼為設(shè)置成畫面組 的圖像幀序列,每個畫面組包括幀內(nèi)編碼幀和零或更多個隨后的幀間編碼幀,所述圖像幀 序列中的每個畫面組具有GOP結(jié)構(gòu);緩沖器(12),被設(shè)置為基于先進(jìn)先出存儲圖像幀的事件前序列(SEQ1),所述事件前序 列(SEQ1)具有預(yù)定的第一 GOP結(jié)構(gòu);事件通知接收器(13 ),被設(shè)置為接收事件通知;生成模塊(14),被設(shè)置為從所述緩沖器(12)取回所述事件前序列(SEQ1)并且在接收到 事件通知后、將圖像幀的所述事件前序列(SEQ1)與事件后序列(SEQ2)組合,所述事件后序 列(SEQ2)具有不同于所述第一 GOP結(jié)構(gòu)的第二GOP結(jié)構(gòu),其中,所述第一GOP結(jié)構(gòu)與所述第二GOP結(jié)構(gòu)的區(qū)別在于:所述第一GOP結(jié)構(gòu)的第一GOP 長度不同于所述第二GOP結(jié)構(gòu)的第二GOP長度,每個GOP長度是由包含在相應(yīng)的畫面組中的 幀的數(shù)目定義的,并且其中,所述第一GOP長度是預(yù)定的,而所述第二GOP長度是動態(tài)的。6.根據(jù)權(quán)利要求5所述的系統(tǒng),其中,所述第二GOP長度長于所述第一GOP長度。7.根據(jù)權(quán)利要求5所述的系統(tǒng),還包括GOP長度模塊(15),所述GOP長度模塊(15)被設(shè)置 為基于所確定的一個或多個輸入圖像幀的運(yùn)動水平、一個或多個輸入圖像幀的噪聲水平、 編碼所述輸入圖像幀時的幀率或者為編碼所述圖像幀而設(shè)定的碼率限制中的至少一個來 設(shè)定所述動態(tài)GOP長度。8.根據(jù)權(quán)利要求5或6所述的系統(tǒng),還包括用戶輸入模塊(16),所述用戶輸入模塊(16)被設(shè)置為接收用于設(shè)定所述預(yù)定GOP長度的用戶輸入。9.一種攝像機(jī),包括根據(jù)權(quán)利要求1所述的系統(tǒng)(10)。
【文檔編號】H04N7/18GK105991976SQ201610115623
【公開日】2016年10月5日
【申請日】2016年3月1日
【發(fā)明人】維克托·埃德帕爾姆, 比耶內(nèi)·羅森格倫, 約納斯·霍姆伯格, 斯蒂芬·倫德貝里
【申請人】安訊士有限公司