本發(fā)明涉及多媒體傳輸機(jī)制,具體地,涉及用于視頻流中靜止圖像的優(yōu)化傳輸機(jī)制。
背景技術(shù):
當(dāng)前的網(wǎng)絡(luò)流量中,多媒體業(yè)務(wù),尤其是視頻業(yè)務(wù)占據(jù)了互聯(lián)網(wǎng)的大部分流量。如何有效的降低網(wǎng)絡(luò)傳輸中視頻數(shù)據(jù)所占用的帶寬,成為一個新的研究熱點(diǎn)。
目前市場上廣泛使用的h.264,hevc等視頻編碼技術(shù),采用幀內(nèi)編碼和幀間編碼等技術(shù),有著極高的編碼壓縮比和編碼效率,同時基本不會影響用戶體驗。經(jīng)過h.264壓縮的視頻數(shù)據(jù),在網(wǎng)絡(luò)傳輸過程中所需要的帶寬更少,也更加經(jīng)濟(jì)。因此,h.264一經(jīng)發(fā)布就獲得了巨大的成功,截止2011年底,已有80%的視頻使用h.264編碼。
h.264,hevc的幀間編碼技術(shù)基于運(yùn)動估計和運(yùn)動補(bǔ)償?shù)燃夹g(shù),利用視頻前后幀之間的相似性,對前后幀之間的差異進(jìn)行編碼,因此可以用較低的碼率進(jìn)行編碼。然而,對于某些特定的視頻應(yīng)用場景,例如遠(yuǎn)程桌面和遠(yuǎn)程視頻監(jiān)控等場景,使用h.264,hevc進(jìn)行編碼依舊有一定的不足。此類場景與普通視頻應(yīng)用的主要區(qū)別在于,在大部分的時間里,視頻內(nèi)容保持不變或者變化非常小。在視頻內(nèi)容不變的時間段里,即使是采用幀間編碼如h.264等編碼技術(shù),也需要對視頻的每一幀進(jìn)行編碼,因此依舊會造成一定的帶寬占用和流量浪費(fèi)。
經(jīng)檢索,公開號為cn101889447a的中國發(fā)明專利,公開了一種對數(shù)據(jù)編碼的方法,該方法包括:a.捕獲視頻流的數(shù)據(jù),其中,所述視頻流包括多個連續(xù)視頻幀的數(shù)據(jù);b.捕獲一個或多個靜止圖像,其中,每個靜止圖像是相對于所述視頻流以隨機(jī)時間間隔捕獲的;c.順序地將每個靜止圖像嵌入所述視頻幀內(nèi),由此形成組合數(shù)據(jù)流;d.通過利用經(jīng)修改序列參數(shù)集中的新的配置屬性定義來傳達(dá)高分辨率靜止圖像的存在;e.對所述組合數(shù)據(jù)流編碼;以及f.將經(jīng)編碼的組合數(shù)據(jù)流作為單層傳輸進(jìn)行發(fā)送。
又如公開號為cn101878649a的中國發(fā)明專利,也公開了一種擴(kuò)展avc標(biāo)準(zhǔn) 以與視頻串行地對高分辨率數(shù)字靜止畫面編碼。
但是上述這些專利仍舊沒有能解決上述的問題。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種用于視頻流中靜止圖像的優(yōu)化傳輸機(jī)制,在視頻流中圖像不變的情況,減少視頻編碼造成的帶寬占用和流量浪費(fèi)。
為實現(xiàn)上述目的,本發(fā)明采用的以下技術(shù)方案:本發(fā)明為相對前一幀圖像靜止不變的幀數(shù)據(jù)增加標(biāo)志位,只傳該標(biāo)志位的信息而不傳輸該幀數(shù)據(jù)的機(jī)制,解決了流媒體視頻傳輸中靜止圖像幀所帶來的帶寬占用和流量浪費(fèi)的問題。
具體的,本發(fā)明提供一種用于視頻流中靜止圖像的優(yōu)化傳輸機(jī)制,所述機(jī)制針對已有的視頻傳輸包頭的格式:
在傳輸?shù)陌^或信令中設(shè)置視頻圖像靜止幀標(biāo)志位;
在視頻傳輸中,對于靜止視頻幀圖像所對應(yīng)的數(shù)據(jù)包,只發(fā)送包頭或信令中的視頻靜止幀標(biāo)志位信息而舍棄相應(yīng)的靜止幀數(shù)據(jù);
客戶端在收到視頻靜止幀標(biāo)志位后,利用上一幀的圖像對當(dāng)前幀的圖像進(jìn)行重建。
作為一個優(yōu)選實施方式,所述在傳輸?shù)陌^或信令中設(shè)置視頻靜止幀標(biāo)志位,是指:在mmtp包頭里的預(yù)留字段取出一個比特作為視頻靜止幀標(biāo)志位,用來指示當(dāng)前mmtp包所對應(yīng)的幀數(shù)據(jù)與上一幀一樣。
作為一個優(yōu)選實施方式,所述在傳輸?shù)陌^或信令中設(shè)置視頻靜止幀標(biāo)志位,是指:使用duheader里的priority字段,取特定值用以表示當(dāng)前mmtp包所對應(yīng)的幀數(shù)據(jù)與上一幀一樣。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
本發(fā)明的技術(shù)方案,針對目前的視頻數(shù)據(jù)傳輸?shù)陌^或信令,如mmtp包頭,duheader等,設(shè)置相應(yīng)的靜止幀標(biāo)志位,通過只傳標(biāo)志位而不傳相應(yīng)幀數(shù)據(jù)的方法,來節(jié)省網(wǎng)絡(luò)帶寬的使用,解決了流媒體視頻傳輸中靜止圖像幀所帶來的帶寬占用和流量浪費(fèi)的問題。
附圖說明
通過閱讀參照以下附圖對非限制性實施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會變得更明顯:
圖1為本發(fā)明一實施例中在mmtp包頭里的預(yù)留字段作為靜止幀標(biāo)志位示意圖;
圖2為本發(fā)明一實施例中使用duheader里的priority字段示意圖。
具體實施方式
下面結(jié)合具體實施例對本發(fā)明進(jìn)行詳細(xì)說明。以下實施例將有助于本領(lǐng)域的技術(shù)人員進(jìn)一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應(yīng)當(dāng)指出的是,對本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn)。這些都屬于本發(fā)明的保護(hù)范圍。
本發(fā)明中,在視頻傳輸?shù)陌^或信令中,如mmtp包頭,duheader里,設(shè)置靜止幀標(biāo)志位用以指示該數(shù)據(jù)包攜帶的視頻數(shù)據(jù)負(fù)載為空,其對應(yīng)的幀數(shù)據(jù)與上一幀一樣。新添加的標(biāo)志位可以放在mmtp包頭、duheader或者信令等位置,下面給出兩種具體的解決方案。
1.在mmtp包頭里的預(yù)留字段取出一個比特作為靜止幀標(biāo)志位,用來指示當(dāng)前mmtp包所對應(yīng)的幀數(shù)據(jù)與上一幀一樣。
為了考慮到已有系統(tǒng)的兼容性,取mmtp包頭的預(yù)留字段的一個比特作為標(biāo)志位,用于指示該mmtp包所對應(yīng)的視頻幀數(shù)據(jù)與上一幀一樣。
mmtp包頭的預(yù)留字段定義static_frame_flag,具體為:
static_frame_flag(s):用于指示當(dāng)前數(shù)據(jù)包所對應(yīng)的幀數(shù)據(jù)是否為靜止幀;如果字段置為0,表示該數(shù)據(jù)包對應(yīng)的幀數(shù)據(jù)不是靜止幀,負(fù)載不為空;如果字段置為1,表示該數(shù)據(jù)包對應(yīng)的幀數(shù)據(jù)是靜止幀,該數(shù)據(jù)包的負(fù)載為空。
新定義的static_frame_flag在mmtp包頭的位置如下:在mmtp包頭的第五個比特位。如圖1所示。
下面以使用mmtp包頭里的預(yù)留字段取出一個比特作為靜止幀標(biāo)志位為例,給出一種通過使用靜止幀標(biāo)志位來節(jié)省傳輸過程中使用帶寬和數(shù)據(jù)流量的步驟:
s1:服務(wù)器端對未經(jīng)過編碼的視頻數(shù)據(jù)前后圖像進(jìn)行比較,得到視頻圖像靜止不動時所對應(yīng)的數(shù)據(jù)幀;
s2:服務(wù)器對視頻數(shù)據(jù)進(jìn)行編碼,得到編碼后的幀數(shù)據(jù);
s3:在將編碼后的數(shù)據(jù)打包成mmtp時,如果某幀在s1中被識別為靜止幀,則將相應(yīng)的mmtp包中static_frame_flag(s)字段置為1,表示該數(shù)據(jù)包對應(yīng)的幀數(shù)據(jù)是靜 止幀,該數(shù)據(jù)包的負(fù)載為空;其他非靜止幀的處理方式不變;
s4:接收端解析收到的mmtp包,如果static_frame_flag(s)字段為0,則將該幀數(shù)據(jù)送入解碼器;如果static_frame_flag(s)字段為1,則不給解碼器送數(shù)據(jù),直接重復(fù)解碼器上一幀的解碼結(jié)果重建圖像。
2.使用duheader里的priority字段,取特定值用以表示當(dāng)前mmtp包所對應(yīng)的幀數(shù)據(jù)與上一幀一樣。
duheader里的priority字段用以說明在一個媒體單元內(nèi)的該數(shù)據(jù)單元所攜帶的視頻幀的優(yōu)先級,在使用中,將該字段置為“全0”,用以指示該duheader所對應(yīng)的幀數(shù)據(jù)與上一幀一樣,且負(fù)載為空。priority字段在標(biāo)準(zhǔn)中的位置如圖2所示。
下面以使用duheader里的priority字段來指示標(biāo)志位為例,給出一種通過使用靜止幀標(biāo)志位來節(jié)省傳輸過程中使用帶寬和數(shù)據(jù)流量的步驟:
s1:服務(wù)器端對未經(jīng)過編碼的視頻數(shù)據(jù)前后圖像進(jìn)行比較,得到視頻圖像靜止不動時所對應(yīng)的數(shù)據(jù)幀;
s2:服務(wù)器使用相應(yīng)的視頻編碼方式對視頻數(shù)據(jù)進(jìn)行編碼,得到編碼后的幀數(shù)據(jù);
s3:在將編碼后的數(shù)據(jù)打包成mmtp時,如果某幀在s1中被識別為靜止幀,則將相應(yīng)的mmtp包中duheader的priority值置為“全0”,dupayload內(nèi)容為空,其他非靜止幀的處理方式不變;
s4:接收端解析收到的mmtp包,如果priority字段不為“全0”,則將該幀數(shù)據(jù)送入解碼器;如果priority字段為“全0”,則不給解碼器送數(shù)據(jù),直接重復(fù)解碼器上一幀的解碼結(jié)果重建圖像。
上述實施例僅是本發(fā)明的部分實施例,本發(fā)明還可以是在其他情況下在信令或包頭中設(shè)置相應(yīng)的靜止幀標(biāo)志位,通過只傳標(biāo)志位而不傳相應(yīng)幀數(shù)據(jù)的方法,來節(jié)省網(wǎng)絡(luò)帶寬的使用,解決了流媒體視頻傳輸中靜止圖像幀所帶來的帶寬占用和流量浪費(fèi)的問題。
以上對本發(fā)明的具體實施例進(jìn)行了描述。需要理解的是,本發(fā)明并不局限于上述特定實施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變形或修改,這并不影響本發(fā)明的實質(zhì)內(nèi)容。