專利名稱:視頻編解碼方法、系統(tǒng)及一種視頻監(jiān)控系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多媒體技術(shù)領(lǐng)域,尤其涉及一種視頻編解碼方法、系統(tǒng)及一種視頻
監(jiān)控系統(tǒng)。
背景技術(shù):
視頻的編碼方式通常包括I幀、P幀和B幀,其中,I幀為自參考幀(也稱幀內(nèi) 編碼幀),即I幀的編碼不參考其它數(shù)據(jù)幀,相應(yīng)地,它能夠不依賴其它幀的數(shù)據(jù)而實(shí)現(xiàn) 獨(dú)立解碼;P幀為單向參考幀,即P幀的編碼需要參考時(shí)序在前的一幀或幾幀,相應(yīng)地, 它需要依賴前面的一幀或幾幀的解碼數(shù)據(jù)進(jìn)行解碼;B幀為雙向參考幀,即B幀的編碼 需要參考時(shí)序在前和在后的數(shù)據(jù)幀,相應(yīng)地,它需要依賴前面和后面的解碼數(shù)據(jù)進(jìn)行解 碼。通常情況下,考慮到視頻碼流傳輸?shù)倪B續(xù)性和實(shí)時(shí)性,為了減小延時(shí),實(shí)時(shí)視頻播 放系統(tǒng)通常只采用I和P幀的普通編碼方式,為了進(jìn)一步防止數(shù)據(jù)丟失,優(yōu)選周期性的I 幀編碼方式,即碼流中等間隔地設(shè)置I幀,每個(gè)I幀之后設(shè)置多個(gè)P幀。然而,很多情況 下,視頻碼流通常需要通過不同的通訊方式在編碼端和解碼端之間進(jìn)行傳輸,因此通訊 方式、網(wǎng)絡(luò)帶寬、網(wǎng)絡(luò)狀況以及終端設(shè)備的性能等因素必然會(huì)影響碼流傳輸質(zhì)量和解碼 質(zhì)量,如果碼流傳輸過程中丟失或損壞了一個(gè)或多個(gè)I幀,則其后的多個(gè)P幀都無法實(shí)現(xiàn) 順利解碼,從而影響了視頻的顯示效果。 例如圖l所示的視頻監(jiān)控系統(tǒng)中,攝像頭、云臺(tái)等安裝在監(jiān)控場(chǎng)所的前端監(jiān)控 設(shè)備對(duì)采集到的視頻數(shù)據(jù)進(jìn)行編碼,并通過流服務(wù)器將碼流轉(zhuǎn)發(fā)至各個(gè)客戶端,不同的 客戶端可以采用手機(jī)、臺(tái)式計(jì)算機(jī)、筆記本電腦等不同的終端設(shè)備,不同的客戶端從流 服務(wù)器獲取碼流時(shí),也會(huì)受到不同網(wǎng)絡(luò)環(huán)境的限制。例如有些客戶端通過高速的以太網(wǎng) 接入服務(wù),有的客戶端通過中等速度的調(diào)制調(diào)節(jié)器接入服務(wù),還有一些用戶由于條件所 限只能通過低速的無限網(wǎng)絡(luò)接入服務(wù),這些不同的接入方式導(dǎo)致了不同的網(wǎng)絡(luò)帶寬,即 使客戶端使用同一種接入方式,也有可能在不同的時(shí)間因?yàn)椴煌木W(wǎng)絡(luò)狀況導(dǎo)致不同的 網(wǎng)絡(luò)帶寬,因此,具有恒定幀率的視頻碼流在網(wǎng)絡(luò)帶寬波動(dòng)較大的情況下,可能造成視 頻數(shù)據(jù)丟失或者延時(shí),例如視頻解碼的時(shí)候,通常都會(huì)從I幀開始進(jìn)行順序解碼,如果任 何一個(gè)I幀丟失或者被破壞,則可能影響后面所有P幀的解碼。還有些客戶端的設(shè)備性 能較差,碼流處理和顯示能力較差,因此客戶端在播放視頻時(shí),可能出現(xiàn)延時(shí)嚴(yán)重、花 屏、馬賽克等現(xiàn)實(shí)問題而無法達(dá)到清晰流暢的播放效果。因此,現(xiàn)有的視頻編解碼方式 不能適應(yīng)多種網(wǎng)絡(luò)環(huán)境和終端的設(shè)備性,難以滿足用戶的實(shí)際需求。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是,提供一種適應(yīng)多種網(wǎng)絡(luò)環(huán)境或設(shè)備性能、改善 視頻播放質(zhì)量的視頻編解碼方法、系統(tǒng)及一種視頻監(jiān)控系統(tǒng)。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是 —種視頻編解碼方法,其特征在于,編碼端將連續(xù)的視頻分解成至少一個(gè)幀段,從所述幀段中提取數(shù)據(jù)幀并按時(shí)間順序形成子碼流組;
對(duì)所述子碼流組的第一幀以I幀的方式進(jìn)行編碼;
將所述編碼后的子碼流組按照時(shí)間順序組成碼流組; 解碼端獲取所述碼流組,并對(duì)所述碼流組所包含的數(shù)據(jù)幀進(jìn)行順序解碼。 編碼端對(duì)所述子碼流組中的其他數(shù)據(jù)幀采用第一幀為參考,以P幀的方式進(jìn)行編碼。 優(yōu)選地,從所述幀段中提取數(shù)據(jù)幀時(shí),必須提取所述幀段的第一幀。 編碼端將連續(xù)的視頻分解成至少一個(gè)幀段的方法為編碼端將連續(xù)的視頻分解
成首尾相連、包含相等幀數(shù)的幀段; 編碼端從所述幀段中提取數(shù)據(jù)幀的方法為編碼端從所述幀段中等間隔地提取 數(shù)據(jù)幀。 編碼端從所述幀段中提取數(shù)據(jù)幀的方法為編碼端從所述幀段中提取至少一次 數(shù)據(jù)幀,每次提取的數(shù)據(jù)幀形成一個(gè)碼流組; 將所述編碼后的子碼流組按照時(shí)間順序組成碼流組的方法為選擇所有幀段對(duì)
應(yīng)的子碼流組并將其組成一個(gè)碼流組,多次選擇后得到至少一個(gè)碼流組; 解碼端獲取所述碼流組的方式為解碼端根據(jù)具體請(qǐng)求獲取至少一個(gè)碼流組。 優(yōu)選地,解碼端設(shè)置一延時(shí)閥值,所述解碼端根據(jù)實(shí)時(shí)延時(shí)值與延時(shí)閥值之間
的關(guān)系請(qǐng)求從解碼端獲取至少一個(gè)數(shù)據(jù)組。 解碼端對(duì)所述碼流組所包含的數(shù)據(jù)幀進(jìn)行順序解碼的方式為解碼端對(duì)所述碼 流組中部分或全部子碼流組所包含的數(shù)據(jù)幀進(jìn)行順序解碼。 —種實(shí)施方式中,每個(gè)幀段包含數(shù)據(jù)幀的個(gè)數(shù)為奇數(shù),提取每個(gè)幀段的第一幀 作為對(duì)應(yīng)的每個(gè)子碼流組的第一幀; 從所述幀段中再提取第一幀以外的奇數(shù)幀并按時(shí)間順序形成奇數(shù)子碼流組,從
所述幀段中再提取第一幀以外的偶數(shù)幀并按時(shí)間順序形成偶數(shù)子碼流組; 將所述奇數(shù)子碼流組按照時(shí)間順序組成奇數(shù)碼流組,將所述偶數(shù)子碼流組按照
時(shí)間順序組成偶數(shù)碼流組; 解碼端根據(jù)具體請(qǐng)求獲取奇數(shù)碼流組和/或偶數(shù)碼流組,并對(duì)所述奇數(shù)碼流組和 /或偶數(shù)碼流組中的數(shù)據(jù)幀進(jìn)行順序解碼。 所述每個(gè)幀段包含25個(gè)連續(xù)的數(shù)據(jù)幀,且每個(gè)幀段對(duì)應(yīng)的時(shí)間為1秒。
—種視頻編解碼系統(tǒng),包括編碼端和解碼端,所述編碼端包括幀段分解模塊和 分組編碼模塊,所述解碼端包括碼流獲取模塊和分組解碼模塊;
幀段分解模塊用于將連續(xù)的視頻分解成至少一個(gè)幀段; 分組編碼模塊用于從所述幀段中提取數(shù)據(jù)幀并按時(shí)間順序形成子碼流組后,對(duì) 所述子碼流組的第一幀以I幀的方式進(jìn)行編碼,還用于將所述編碼后的子碼流組按照時(shí)間 順序組成碼流組; 碼流獲取模塊用于從所述編碼端獲取所述碼流組,并將其發(fā)送至分組解碼模 塊; 分組解碼模塊用于對(duì)所述碼流組所包含的數(shù)據(jù)幀進(jìn)行順序解碼。 —種視頻監(jiān)控系統(tǒng),包括前端監(jiān)控設(shè)備,流服務(wù)器和至少一個(gè)客戶端,所述前端監(jiān)控設(shè)備設(shè)有編碼端,所述編碼端包括幀段分解模塊和分組編碼模塊;所述每個(gè)客戶 端設(shè)有解碼端,所述解碼端包括碼流獲取模塊和分組解碼模塊; 幀段分解模塊用于將所述前端監(jiān)控設(shè)備采集的連續(xù)的視頻分解成至少一個(gè)幀 段; 分組編碼模塊用于從所述幀段中提取數(shù)據(jù)幀并按時(shí)間順序形成子碼流組后,對(duì) 所述子碼流組的第一幀以I幀的方式進(jìn)行編碼,還用于將所述編碼后的子碼流組按照時(shí)間 順序組成碼流組后,將所述碼流組提供給所述流服務(wù)器; 碼流獲取模塊用于通過通訊網(wǎng)絡(luò)從所述流服務(wù)器中獲取所述碼流組; 分組解碼模塊用于對(duì)所述碼流組所包含的數(shù)據(jù)幀進(jìn)行順序解碼。 本發(fā)明的有益效果是,本發(fā)明的視頻解編碼方法和系統(tǒng)減小了通訊網(wǎng)絡(luò)中的碼
流傳輸量,提高了傳輸效率,因此適用于多種網(wǎng)絡(luò)環(huán)境和設(shè)備性能;解碼端對(duì)碼流組中
的數(shù)據(jù)幀進(jìn)行解碼時(shí),由于每個(gè)子碼流組中P幀只依賴組內(nèi)的I幀或P幀進(jìn)行解碼,避免
了個(gè)別數(shù)據(jù)幀丟失而對(duì)其他數(shù)據(jù)幀的解碼帶來的影響,因此改善了視頻播放效果。 進(jìn)一步地,編碼器從幀段中等間隔地提取至少一次數(shù)據(jù)幀,每次提取的數(shù)據(jù)幀
形成不同的子碼流組,該實(shí)施方式均勻地從幀段中提取數(shù)據(jù)幀,得到連續(xù)的視頻播放效果。 解碼端還可根據(jù)網(wǎng)絡(luò)環(huán)境或設(shè)備性能獲取部分或者全部碼流,使碼流傳輸和解 碼與網(wǎng)絡(luò)能力和終端能力相適應(yīng),該方式更加靈活便捷,因此進(jìn)一步保證了視頻傳輸和 播放效果。 本發(fā)明還保護(hù)了一種視頻監(jiān)控系統(tǒng),能夠適應(yīng)不同的網(wǎng)絡(luò)環(huán)境和設(shè)備性能,如 果網(wǎng)絡(luò)狀況不理想、客戶端的處理量較大或者對(duì)預(yù)覽的要求并不高,流服務(wù)器只向客戶 端發(fā)送只包含原視頻中部分?jǐn)?shù)據(jù)幀的碼流組,不僅提高了傳輸效率,而且保證了視頻播 放的連續(xù)性和實(shí)時(shí)性,改善了視頻監(jiān)控效果。
圖1為現(xiàn)有的視頻監(jiān)控系統(tǒng)的示意圖; 圖2為本發(fā)明視頻編解碼方法一種具體實(shí)施方式
流程圖;
圖3為本發(fā)明視頻編解碼系統(tǒng)一種具體實(shí)施方式
示意圖;
圖4為本發(fā)明的視頻監(jiān)控系統(tǒng)的一種具體實(shí)施方式
示意圖。
具體實(shí)施例方式
本發(fā)明的視頻解編碼方法中,編碼端對(duì)連續(xù)的視頻進(jìn)行分組編、解碼后,根據(jù) 網(wǎng)絡(luò)環(huán)境、設(shè)備性能等狀況,將只包含原視頻中一部分?jǐn)?shù)據(jù)幀的碼流組提供給解碼端, 解碼端對(duì)碼流組中的數(shù)據(jù)幀進(jìn)行解碼時(shí),每個(gè)子碼流組中P幀只依賴組內(nèi)的I幀或P幀進(jìn) 行解碼。以下結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
進(jìn)行進(jìn)一步說明。
圖1為本發(fā)明的視頻編解碼方法一種具體實(shí)施方式
流程圖,包括以下步驟
步驟S100:編碼端將連續(xù)的視頻分解成至少一個(gè)幀段,幀段的分解方式和長(zhǎng)度 可根據(jù)具體需要而定,例如可從連續(xù)的視頻隨機(jī)提取多個(gè)幀段,每個(gè)幀段包括不等的幀 數(shù),或者相鄰的幀段之間間隔一定的數(shù)據(jù)幀;優(yōu)選地,為了盡可能實(shí)現(xiàn)碼流在時(shí)間上的連續(xù)性,保證視頻的顯示效果,將連續(xù)的視頻分解成首尾相連、包含相等幀數(shù)的幀段。通常人眼在IS內(nèi)能看到的數(shù)據(jù)幀的數(shù)目大約為25幀,主流視頻的幀率也為25幀每秒,因此可設(shè)置每個(gè)幀段對(duì)應(yīng)的時(shí)間為一秒,即每個(gè)幀段包含25個(gè)數(shù)據(jù)幀。
步驟S101:從幀段中提取數(shù)據(jù)幀并按時(shí)間順序形成子碼流組。本步驟從幀段中提取數(shù)據(jù)幀的方式具有很多種,例如可隨機(jī)提取一個(gè)或者多個(gè)數(shù)據(jù)幀,可等間隔地提取多個(gè)數(shù)據(jù)幀,并使這些提取的數(shù)據(jù)幀按照時(shí)間順序形成一個(gè)子碼流組。另外,為了滿足用戶的多種需求,編碼端還可從幀段中多次提取數(shù)據(jù)幀,相應(yīng)地形成多個(gè)不同的子碼流組。優(yōu)選地,為了均勻地從幀段中提取數(shù)據(jù)幀,得到連續(xù)的視頻播放效果,編碼器從幀段中等間隔地間插提取至少一次數(shù)據(jù)幀,每次提取的數(shù)據(jù)幀形成不同的子碼流組,例如提取序號(hào)依次為l、 4、 7、 10…3n+l(n為正整數(shù))數(shù)據(jù)幀組成第一子碼流組,再提取號(hào)依次為2、 5、 8、 11…3n+2(n為正整數(shù))的數(shù)據(jù)幀組成第二子碼流組。 步驟S102 :對(duì)子碼流組的第一幀以I幀的方式進(jìn)行編碼。由于I幀的壓縮比遠(yuǎn)小于P幀,所以I幀的數(shù)據(jù)量較大,為了達(dá)到較好的傳輸效果,本步驟對(duì)一個(gè)或多個(gè)子碼流的第一幀以I幀的方式進(jìn)行編碼后,對(duì)該子碼流組中的其他所有數(shù)據(jù)幀都采用第一幀為參考,以P幀的方式進(jìn)行編碼,即每個(gè)子碼流組中只包含一個(gè)I幀。優(yōu)選地,可選擇必須提取每個(gè)幀段的第一幀,使其作為對(duì)應(yīng)子碼流組的第一幀,如果從該幀段中多次提取數(shù)據(jù)幀后形成多個(gè)子碼流組,每個(gè)子碼流組的第一幀可都共用對(duì)應(yīng)幀段的第一幀。
步驟S103:將編碼后的子碼流組按照時(shí)間順序組成碼流組,如果從每個(gè)幀段只提取一次數(shù)據(jù)幀形成一個(gè)子碼流組,則只組成一個(gè)碼流組;如果從每個(gè)幀段多次提取數(shù)據(jù)幀且每次提取形成一個(gè)子碼流組,則從所有幀段對(duì)應(yīng)的子碼流組中選擇一部分使其組成一個(gè)碼流組,多次選擇后得到至少一個(gè)碼流組。例如步驟S101中,所有幀段對(duì)應(yīng)的第一子碼流組組合形成第一碼流組,所有幀段對(duì)應(yīng)的第二子碼流組組合形成第二碼流組,以此類推。 步驟S104:解碼端獲取碼流組,本步驟中,由于解碼端得到的碼流組中只包含了原視頻中的一部分?jǐn)?shù)據(jù)幀,因此通過有線網(wǎng)絡(luò)、以太網(wǎng)等通訊網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量顯然較小,因此本方法適用于多種網(wǎng)絡(luò)環(huán)境和終端設(shè)備,例如一些速度較慢的網(wǎng)絡(luò)傳輸條件或者性能較差的終端設(shè)備,提高了數(shù)據(jù)傳輸速度和質(zhì)量。 為了適應(yīng)各種用戶的不同需求,即有些客戶端的網(wǎng)絡(luò)環(huán)境較好或終端設(shè)備的配置較高,因此需要完整的碼流;有些客戶端的網(wǎng)絡(luò)狀況不穩(wěn)定,網(wǎng)絡(luò)較好時(shí)需要完整的碼流,網(wǎng)絡(luò)較差時(shí)只需要一個(gè)或多個(gè)碼流組,因此解碼器可根據(jù)具體需求請(qǐng)求獲取部分碼流組或者全部碼流組。例如解碼端可設(shè)置一個(gè)能夠接受的延時(shí)閥值,并根據(jù)實(shí)時(shí)延時(shí)值與延時(shí)閥值之間的大小關(guān)系確定從解碼端獲取至少一個(gè)碼流組,解碼端需要獲取碼流時(shí),首先根據(jù)網(wǎng)絡(luò)環(huán)境和設(shè)備性能、處理能力等進(jìn)行判定,如果實(shí)時(shí)延時(shí)值小于延時(shí)閥值,則請(qǐng)求獲取一個(gè)碼流組或者數(shù)量較少的部分碼流組,否則,請(qǐng)求獲取數(shù)量較多的部分碼流組或者全部碼流組。 步驟S105 :對(duì)碼流組所包含的數(shù)據(jù)幀進(jìn)行順序解碼,即對(duì)每個(gè)子碼流組中的I幀進(jìn)行解碼后,P幀都依賴I幀或者其他P幀進(jìn)行解碼。本步驟中,由于每個(gè)子碼流組中P幀的解碼只依賴本組內(nèi)的I幀或者P幀的解碼數(shù)據(jù)進(jìn)行解碼,如果出現(xiàn)某一I幀丟失,則只會(huì)影響到本組內(nèi)P幀的解碼,并不會(huì)影響其他子碼流組中數(shù)據(jù)幀的解碼,因此解碼端
7可選擇放棄一些不完整的子碼流組,而其后的子碼流組中的數(shù)據(jù)還原并不受任何影響, 因此有效避免了部分?jǐn)?shù)據(jù)幀丟失而造成花屏等較差的顯示效果,從一定程度上改善了視 頻播放的質(zhì)量。編碼端還可根據(jù)具體需要對(duì)獲得的部分或全部碼流組進(jìn)行解碼,如果用 戶對(duì)視頻的播放要求較低,或者設(shè)備性能比較差,或者需要同時(shí)運(yùn)行多個(gè)程序,為了實(shí) 現(xiàn)實(shí)時(shí)、完整的視頻播放(尤其適用于需要確保實(shí)時(shí)性,而對(duì)播放效果要求較低的視頻監(jiān) 控系統(tǒng)),也可以只對(duì)碼流組內(nèi)部分子碼流組中的數(shù)據(jù)幀進(jìn)行解碼,經(jīng)過改變幀率后,能 夠?qū)崿F(xiàn)實(shí)時(shí)、連續(xù)的視頻播放效果。 —種優(yōu)選的實(shí)施方式中,解碼端對(duì)連續(xù)的視頻進(jìn)行分組解碼后得到兩個(gè)碼流 組,用戶可根據(jù)具體需要請(qǐng)求獲取其中一個(gè)或兩個(gè)碼流組,具體包括以下步驟
首先將連續(xù)的視頻分解成多個(gè)連續(xù)的幀段,每個(gè)幀段包含數(shù)據(jù)幀的個(gè)數(shù)為奇 數(shù),例如,每個(gè)幀段包含25個(gè)連續(xù)的數(shù)據(jù)幀,對(duì)應(yīng)的時(shí)間為l秒。 接著,將每個(gè)幀段的第一幀作為對(duì)應(yīng)的每個(gè)子碼流組的第一幀,再從每個(gè)幀段 中提取第一幀以外的奇數(shù)幀并按時(shí)間順序形成奇數(shù)子碼流組,再每個(gè)幀段中提取第一幀 以外的偶數(shù)幀并按時(shí)間順序形成偶數(shù)子碼流組。例如,對(duì)于每個(gè)幀段包含25個(gè)連續(xù)的數(shù) 據(jù)幀,提取第一幀以外序號(hào)依次為1、 3、 5……23的12個(gè)數(shù)據(jù)幀,并按時(shí)間順序形成奇 數(shù)子碼流組,編碼方式為
IPPPPPPPPPPPP 再提取第一幀以外序號(hào)依次為2、 4、 6……24的12個(gè)數(shù)據(jù)幀,并按時(shí)間順序形 成偶數(shù)子碼流組,編碼方式與奇數(shù)子碼流組相同。接著將所有編碼后的奇數(shù)子碼流組按 照時(shí)間順序組成奇數(shù)碼流組,將所有編碼后的偶數(shù)子碼流組按照時(shí)間順序組成偶數(shù)碼流 組。 最后,解碼端根據(jù)網(wǎng)絡(luò)狀況、設(shè)備狀況等條件具體請(qǐng)求獲取奇數(shù)碼流組和/或偶 數(shù)碼流組,并對(duì)奇數(shù)碼流組和/或偶數(shù)碼流組中的數(shù)據(jù)幀進(jìn)行順序解碼。如果按照普通 編碼的方式,本實(shí)施方式得到普通碼流的幀率為25幀每秒,而采用分組編碼得到碼流組 的幀率為13幀每秒,需要在通訊網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)量大約減為原來的一半,因此能夠適 應(yīng)多種網(wǎng)絡(luò)環(huán)境和設(shè)備性能,而且由于從原視頻中均勻地提取數(shù)據(jù)幀并形成碼流組,每 個(gè)碼流組所包含的數(shù)據(jù)信息保持了原視頻的連續(xù)性,因此顯著改善了視頻播放的顯示效 果。 如圖2所示為本發(fā)明的一種視頻編解碼系統(tǒng)示意圖,包括編碼端10和解碼端 20,解碼端20可以根據(jù)具體需要設(shè)置一個(gè)或者多個(gè),其中,編碼端10包括幀段分解模塊 11和分組編碼模塊12,每個(gè)解碼端包括碼流獲取模塊21和分組解碼模塊22。
幀段分解模塊11用于將連續(xù)的視頻分解成至少一個(gè)幀段。 分組編碼模塊12用于從分解后的幀段中提取數(shù)據(jù)幀并按時(shí)間順序形成子碼流組 后,對(duì)子碼流組的第一幀以I幀的方式進(jìn)行編碼,還用于將編碼后的子碼流組按照時(shí)間順 序組成碼流組。分組編碼模塊12還可從每個(gè)幀段中多次提取數(shù)據(jù)幀后形成多個(gè)子碼流 組,并多次選擇子碼流組使其組成不同的碼流組。 碼流獲取模塊21用于通過有線網(wǎng)絡(luò)、以太網(wǎng)、3G網(wǎng)絡(luò)或者無線網(wǎng)絡(luò)等通訊網(wǎng)絡(luò) 從編碼端10獲取碼流組,并將其發(fā)送至分組解碼模塊22??紤]到需要適應(yīng)不同的網(wǎng)絡(luò)狀 況或者設(shè)備性能,碼流獲取模塊21可根據(jù)需要獲取部分或者全部碼流組。
分組解碼模塊22用于對(duì)碼流組所包含的數(shù)據(jù)幀進(jìn)行順序解碼,可根據(jù)設(shè)備性能 和具體需要對(duì)部分或者全部碼流組進(jìn)行解碼,或者將一個(gè)碼流組中部分子碼流組所包含 的數(shù)據(jù)幀進(jìn)行解碼。 圖3為本發(fā)明的一種視頻監(jiān)控系統(tǒng)示意圖,包括前端監(jiān)控設(shè)備,流服務(wù)器30和 客戶端,前端監(jiān)控設(shè)備包括攝像頭、云臺(tái)等裝置,還設(shè)有編碼端IO,編碼端10包括幀段 分解模塊11和分組編碼模塊12;客戶端通常為筆記本電腦、臺(tái)式計(jì)算機(jī)、手機(jī)、掌上電 腦等,其中設(shè)有解碼端20,解碼端20包括碼流獲取模塊21和分組解碼模塊22,客戶端 通過有線網(wǎng)絡(luò)、以太網(wǎng)、3G網(wǎng)絡(luò)或者無線網(wǎng)絡(luò)等通訊網(wǎng)絡(luò)與流服務(wù)器30進(jìn)行交互。
幀段分解模塊11用于將前端監(jiān)控設(shè)備采集的連續(xù)的視頻分解成至少一個(gè)幀段。
分組編碼模塊12用于從幀段中提取數(shù)據(jù)幀并按時(shí)間順序形成子碼流組后,對(duì)子 碼流組的第一幀以I幀的方式進(jìn)行編碼,還用于將編碼后的子碼流組按照時(shí)間順序組成碼 流組后,將碼流組提供給流服務(wù)器30。分組編碼模塊12可從每個(gè)幀段中多次提取數(shù)據(jù)幀 后形成多個(gè)子碼流組,并多次選擇子碼流組使其組成不同的碼流組。 碼流獲取模塊21用于通過通訊網(wǎng)絡(luò)從流服務(wù)器30中獲取碼流組,根據(jù)實(shí)際情況 的不同,不同客戶端的碼流獲取模塊21可向流服務(wù)器30請(qǐng)求獲取部分碼流組或者全部碼 流組。如果一個(gè)客戶端通過以太網(wǎng)請(qǐng)求獲取碼流,且網(wǎng)絡(luò)狀況比較好,則會(huì)向流服務(wù)器 30請(qǐng)求獲取全部碼流;如果另一個(gè)客戶端通過無線網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù),帶寬比較小,則可以 向流服務(wù)器30請(qǐng)求一個(gè)碼流組,這樣當(dāng)流服務(wù)器30收到消息后只將其中一個(gè)碼流組發(fā)送 給客戶端,使客戶端的丟包和延時(shí)情況將得到緩解。為了合理控制延時(shí)效果,碼流獲取 模塊22中還可設(shè)置一個(gè)延時(shí)閥值,并根據(jù)實(shí)時(shí)延時(shí)值與延時(shí)閥值之間的大小關(guān)系確定從 流服務(wù)器30中獲取至少一個(gè)碼流組。 分組解碼模塊22用于對(duì)碼流組所包含的數(shù)據(jù)幀進(jìn)行順序解碼,分組解碼模塊22 可根據(jù)設(shè)備性能、處理能力和實(shí)際需求等對(duì)獲得的全部碼流組中的數(shù)據(jù)幀進(jìn)行解碼,或 者僅對(duì)一部分碼流組中的數(shù)據(jù)幀進(jìn)行解碼,或者對(duì)碼流組中的部分子碼流組所包含的數(shù) 據(jù)幀進(jìn)行解碼。 本發(fā)明的視頻監(jiān)控系統(tǒng)能夠適應(yīng)不同的網(wǎng)絡(luò)環(huán)境和設(shè)備性能,如果網(wǎng)絡(luò)狀況不 理想、客戶端的處理量較大或者對(duì)預(yù)覽的要求并不高,流服務(wù)器只向客戶端發(fā)送只包含 原視頻中部分?jǐn)?shù)據(jù)幀的碼流組,不僅提高了傳輸效率,而且保證了視頻播放的連續(xù)性和 實(shí)時(shí)性,改善了視頻監(jiān)控效果。由于每個(gè)子碼流組中的P幀只依賴本組內(nèi)的I幀或者其他 P幀進(jìn)行解碼,有效避免了現(xiàn)有技術(shù)中由于部分?jǐn)?shù)據(jù)幀丟失,其他數(shù)據(jù)幀無法解碼而造成 花屏等較差的顯示效果。 以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn) 定本發(fā)明的具體實(shí)施只局限于這些說明。對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來 說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于 本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種視頻編解碼方法,其特征在于,包括以下步驟編碼端將連續(xù)的視頻分解成至少一個(gè)幀段,從所述幀段中提取數(shù)據(jù)幀并按時(shí)間順序形成子碼流組;對(duì)所述子碼流組的第一幀以I幀的方式進(jìn)行編碼;將所述編碼后的子碼流組按照時(shí)間順序組成碼流組;解碼端獲取所述碼流組,并對(duì)所述碼流組所包含的數(shù)據(jù)幀進(jìn)行順序解碼。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于編碼端對(duì)所述子碼流組中的其他數(shù)據(jù)幀采用第一幀為參考,以P幀的方式進(jìn)行編碼。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于從所述幀段中提取數(shù)據(jù)幀時(shí),必須提取所述幀段的第一幀。
4. 根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其特征在于編碼端將連續(xù)的視頻分解成至少一個(gè)幀段的方法為編碼端將連續(xù)的視頻分解成首尾相連、包含相等幀數(shù)的幀段;編碼端從所述幀段中提取數(shù)據(jù)幀的方法為編碼端從所述幀段中等間隔地提取數(shù)據(jù)幀。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于編碼端從所述幀段中提取數(shù)據(jù)幀的方法為編碼端從所述幀段中提取至少一次數(shù)據(jù)幀,每次提取的數(shù)據(jù)幀形成一個(gè)碼流組;將所述編碼后的子碼流組按照時(shí)間順序組成碼流組的方法為選擇所有幀段對(duì)應(yīng)的子碼流組并將其組成一個(gè)碼流組,多次選擇后得到至少一個(gè)碼流組;解碼端獲取所述碼流組的方式為解碼端根據(jù)具體請(qǐng)求獲取至少一個(gè)碼流組。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于解碼端設(shè)置一延時(shí)閥值,所述解碼端根據(jù)實(shí)時(shí)延時(shí)值與延時(shí)閥值之間的關(guān)系請(qǐng)求從解碼端獲取至少一個(gè)數(shù)據(jù)組。
7. 根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其特征在于解碼端對(duì)所述碼流組所包含的數(shù)據(jù)幀進(jìn)行順序解碼的方式為解碼端對(duì)所述碼流組中部分或全部子碼流組所包含的數(shù)據(jù)幀進(jìn)行順序解碼。
8. 根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其特征在于每個(gè)幀段包含數(shù)據(jù)幀的個(gè)數(shù)為奇數(shù),提取每個(gè)幀段的第一幀作為對(duì)應(yīng)的每個(gè)子碼流組的第一幀;從所述幀段中再提取第一幀以外的奇數(shù)幀并按時(shí)間順序形成奇數(shù)子碼流組,從所述幀段中再提取第一幀以外的偶數(shù)幀并按時(shí)間順序形成偶數(shù)子碼流組;將所述奇數(shù)子碼流組按照時(shí)間順序組成奇數(shù)碼流組,將所述偶數(shù)子碼流組按照時(shí)間順序組成偶數(shù)碼流組;解碼端根據(jù)具體請(qǐng)求獲取奇數(shù)碼流組和/或偶數(shù)碼流組,并對(duì)所述奇數(shù)碼流組和/或偶數(shù)碼流組中的數(shù)據(jù)幀進(jìn)行順序解碼。
9. 根據(jù)權(quán)利要求8所述的方法,其特征在于所述每個(gè)幀段包含25個(gè)連續(xù)的數(shù)據(jù)幀,且每個(gè)幀段對(duì)應(yīng)的時(shí)間為l秒。
10. —種視頻編解碼系統(tǒng),包括編碼端和解碼端,其特征在于所述編碼端包括幀段分解模塊和分組編碼模塊,所述解碼端包括碼流獲取模塊和分組解碼模塊;幀段分解模塊用于將連續(xù)的視頻分解成至少一個(gè)幀段;分組編碼模塊用于從所述幀段中提取數(shù)據(jù)幀并按時(shí)間順序形成子碼流組后,對(duì)所述子碼流組的第一幀以I幀的方式進(jìn)行編碼,還用于將所述編碼后的子碼流組按照時(shí)間順序組成碼流組;碼流獲取模塊用于從所述編碼端獲取所述碼流組,并將其發(fā)送至分組解碼模塊;分組解碼模塊用于對(duì)所述碼流組所包含的數(shù)據(jù)幀進(jìn)行順序解碼。
11.一種視頻監(jiān)控系統(tǒng),包括前端監(jiān)控設(shè)備,流服務(wù)器和至少一個(gè)客戶端,其特征在于所述前端監(jiān)控設(shè)備設(shè)有編碼端,所述編碼端包括幀段分解模塊和分組編碼模塊;所述每個(gè)客戶端設(shè)有解碼端,所述解碼端包括碼流獲取模塊和分組解碼模塊;幀段分解模塊用于將所述前端監(jiān)控設(shè)備采集的連續(xù)的視頻分解成至少一個(gè)幀段;分組編碼模塊用于從所述幀段中提取數(shù)據(jù)幀并按時(shí)間順序形成子碼流組后,對(duì)所述子碼流組的第一幀以I幀的方式進(jìn)行編碼,還用于將所述編碼后的子碼流組按照時(shí)間順序組成碼流組后,將所述碼流組提供給所述流服務(wù)器;碼流獲取模塊用于通過通訊網(wǎng)絡(luò)從所述流服務(wù)器中獲取所述碼流組;分組解碼模塊用于對(duì)所述碼流組所包含的數(shù)據(jù)幀進(jìn)行順序解碼。
全文摘要
本發(fā)明公開了一種視頻編解碼方法、系統(tǒng)及一種視頻監(jiān)控系統(tǒng),方法包括以下步驟編碼端將連續(xù)的視頻分解成至少一個(gè)幀段,從所述幀段中提取數(shù)據(jù)幀并按時(shí)間順序形成子碼流組;對(duì)所述子碼流組的第一幀以I幀的方式進(jìn)行編碼;將所述編碼后的子碼流組按照時(shí)間順序組成碼流組;解碼端獲取所述碼流組,并對(duì)所述碼流組所包含的數(shù)據(jù)幀進(jìn)行順序解碼。本發(fā)明的視頻解編碼方法、系統(tǒng)和視頻監(jiān)控系統(tǒng)適用于多種網(wǎng)絡(luò)環(huán)境和設(shè)備性能,而且顯著改善了視頻播放效果。
文檔編號(hào)H04N7/18GK101692711SQ20091019017
公開日2010年4月7日 申請(qǐng)日期2009年9月8日 優(yōu)先權(quán)日2009年9月8日
發(fā)明者張莉 申請(qǐng)人:中興通訊股份有限公司