本發(fā)明涉及視頻數(shù)據(jù)傳輸技術(shù)領(lǐng)域,具體涉及一種視頻數(shù)據(jù)的冗余控制方法和裝置。
背景技術(shù):
盡力服務(wù)(best-effort)是一種標(biāo)準(zhǔn)的因特網(wǎng)服務(wù)模式。對于best-effort的數(shù)據(jù)網(wǎng)絡(luò)服務(wù)而言,傳輸丟包不可避免。
視頻通話技術(shù)領(lǐng)域中,基于視頻數(shù)據(jù)的特點,目前的主流視頻壓縮編碼標(biāo)準(zhǔn)一般采用dpcm(differentialpulsecodemodulation,差分脈沖編碼調(diào)制)編碼架構(gòu),視頻數(shù)據(jù)的各幀能否成功解碼不僅取決于該幀自身數(shù)據(jù)的完整性,還取決于參考幀是否已解出。在這種編碼架構(gòu)中,i幀(iframe,又稱為幀內(nèi)編碼幀)不參考任何幀能夠獨立解碼,p幀(pframe,又稱為幀間編碼幀或者前向預(yù)測編碼幀)需要結(jié)合其參考幀才能成功解碼,且各幀的參考間隔也可能不相同,因此各幀數(shù)據(jù)的重要程度不一。
現(xiàn)有技術(shù)中用于視頻數(shù)據(jù)的冗余控制方案中,大多數(shù)只是經(jīng)驗性地多保護(hù)i幀及i幀間隔(intra-period)內(nèi)位置靠前的幀,對各幀冗余保護(hù)不夠精細(xì)化,對不同的碼流結(jié)構(gòu)擴(kuò)展性不強(qiáng)。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種視頻數(shù)據(jù)的冗余控制方法和裝置,以實現(xiàn)對視頻數(shù)據(jù)的各幀進(jìn)行精細(xì)化的冗余保護(hù),提高視頻數(shù)據(jù)的傳輸性能。
本發(fā)明第一方面提供一種視頻數(shù)據(jù)的冗余控制方法,包括:獲取接收端反饋的視頻碼率和冗余等級,所述視頻碼率和冗余等級是由所述接收端根據(jù)丟包率計算得到的;根據(jù)所述冗余等級獲取數(shù)據(jù)冗余率;按照所述視頻碼率對原始視頻數(shù)據(jù)進(jìn)行壓縮編碼,得到壓縮視頻數(shù)據(jù);根據(jù)所述視頻碼率和所述數(shù)據(jù)冗余率,為所述壓縮視頻數(shù)據(jù)的幀分配幀級冗余碼率預(yù)算;按照所述幀級冗余碼率預(yù)算,對所述壓縮視頻數(shù)據(jù)的幀進(jìn)行分包,以及對所述壓縮視頻數(shù)據(jù)的分包 后的幀進(jìn)行冗余編碼。
本發(fā)明第二方面提供另一種視頻數(shù)據(jù)的冗余控制方法,包括:統(tǒng)計接收到的視頻數(shù)據(jù)的丟包率;根據(jù)所述丟包率確定用于抵抗所述丟包率的數(shù)據(jù)冗余率;在帶寬許可范圍內(nèi)進(jìn)行碼率分配,獲得安全發(fā)送碼率;利用所述數(shù)據(jù)冗余率和所述安全發(fā)送碼率計算視頻碼率;獲取所述數(shù)據(jù)冗余率對應(yīng)的冗余等級;將所述視頻碼率和所述冗余等級反饋給所述發(fā)送端,所述視頻碼率和所述冗余等級被所述發(fā)送端用于對所述視頻數(shù)據(jù)進(jìn)行冗余控制。
本發(fā)明第三方面提供一種視頻數(shù)據(jù)的冗余控制裝置,包括:接收模塊,用于獲取接收端反饋的視頻碼率和冗余等級,所述視頻碼率和冗余等級是由所述接收端根據(jù)丟包率計算得到的;獲取模塊,用于根據(jù)所述冗余等級獲取數(shù)據(jù)冗余率;視頻編碼模塊,用于按照所述視頻碼率對原始視頻數(shù)據(jù)進(jìn)行壓縮編碼,得到壓縮視頻數(shù)據(jù);冗余分配模塊,用于根據(jù)所述視頻碼率和所述數(shù)據(jù)冗余率,為所述壓縮視頻數(shù)據(jù)的幀分配幀級冗余碼率預(yù)算;冗余編碼模塊,用于按照所述幀級冗余碼率預(yù)算,對所述壓縮視頻數(shù)據(jù)的幀進(jìn)行分包,以及對所述壓縮視頻數(shù)據(jù)的分包后的幀進(jìn)行冗余編碼。
本發(fā)明第四方面提供另一種視頻數(shù)據(jù)的冗余控制裝置,包括:統(tǒng)計模塊,用于統(tǒng)計接收到的視頻數(shù)據(jù)的丟包率;確定模塊,用于根據(jù)所述丟包率確定用于抵抗所述丟包率的數(shù)據(jù)冗余率;獲得模塊,用于在帶寬許可范圍內(nèi)進(jìn)行碼率分配,獲得安全發(fā)送碼率;計算模塊,用于利用所述數(shù)據(jù)冗余率和所述安全發(fā)送碼率計算視頻碼率;獲取模塊,用于獲取所述數(shù)據(jù)冗余率對應(yīng)的冗余等級;發(fā)送模塊,用于將所述視頻碼率和所述冗余等級反饋給所述發(fā)送端,所述視頻碼率和所述冗余等級被所述發(fā)送端用于對所述視頻數(shù)據(jù)進(jìn)行冗余控制。
本發(fā)明第五方面提供一種計算機(jī)設(shè)備,所述計算機(jī)設(shè)備包括處理器、存儲器、總線和通信接口;所述存儲器用于存儲程序,所述處理器與所述存儲器通過所述總線連接,當(dāng)所述計算機(jī)設(shè)備運行時,所述處理器執(zhí)行所述存儲器存儲的所述程序,以使所述計算機(jī)設(shè)備執(zhí)行如本發(fā)明第一方面所述的視頻數(shù)據(jù)的冗余控制方法,或者如本發(fā)明第二方面所述的視頻數(shù)據(jù)的冗余控制方法。
本發(fā)明第六方面提供一種計算機(jī)存儲介質(zhì),該計算機(jī)存儲介質(zhì)存儲有程 序,當(dāng)該計算機(jī)存儲介質(zhì)存儲的程序被包括一個或多個處理器的計算機(jī)設(shè)備執(zhí)行時,可使該計算機(jī)設(shè)備執(zhí)行如本發(fā)明第一方面所述的視頻數(shù)據(jù)的冗余控制方法,或者如本發(fā)明第二方面所述的視頻數(shù)據(jù)的冗余控制方法。
由上可見,在本發(fā)明的一些可行的實施方式中,接收端反饋視頻碼率和冗余等級,發(fā)送端根據(jù)視頻碼率進(jìn)行壓縮編碼到壓縮視頻數(shù)據(jù),根據(jù)冗余等級獲取數(shù)據(jù)冗余率,根據(jù)視頻碼率和數(shù)據(jù)冗余率為壓縮視頻數(shù)據(jù)的幀分配幀級冗余碼率預(yù)算,按照間隔級冗余碼率預(yù)算和幀級冗余碼率預(yù)算,對壓縮視頻數(shù)據(jù)的幀進(jìn)行分包以及對分包后的幀進(jìn)行冗余編碼,對視頻數(shù)據(jù)的冗余控制精細(xì)化到每個幀,可以反映每個幀的重要程度,從而提高了對視頻數(shù)據(jù)的冗余控制精度,有助于降低丟包率,提高視頻數(shù)據(jù)的傳輸性能,并且有助于提高碼流結(jié)構(gòu)的擴(kuò)展性,以適用于多種編碼結(jié)構(gòu)。
附圖說明
為了更清楚地說明本發(fā)明實施例技術(shù)方案,下面將對實施例和現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1是hpp編碼結(jié)構(gòu)的示意圖;
圖2是本發(fā)明實施例的冗余控制系統(tǒng)的系統(tǒng)架構(gòu)圖;
圖3是本發(fā)明一個實施例提供的視頻數(shù)據(jù)的冗余控制方法的流程示意圖;
圖4是本發(fā)明另一實施例提供的視頻數(shù)據(jù)的冗余控制方法的流程示意圖;
圖5是本發(fā)明一個實施例提供的視頻數(shù)據(jù)的冗余控制裝置的結(jié)構(gòu)示意圖;
圖6是本發(fā)明另一實施例提供的視頻數(shù)據(jù)的冗余控制裝置的結(jié)構(gòu)示意圖;
圖7是本發(fā)明一個實施例提供的計算機(jī)設(shè)備的結(jié)構(gòu)示意圖;
圖8是本發(fā)明另一實施例提供的計算機(jī)設(shè)備的結(jié)構(gòu)示意圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所 描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
如背景技術(shù)部分所述,對于best-effort的數(shù)據(jù)網(wǎng)絡(luò)服務(wù)而言,傳輸丟包不可避免。在視頻通話應(yīng)用中,為了提高傳輸性能,通常采用冗余編碼的控制方法,在視頻數(shù)據(jù)中增加冗余糾錯包,來恢復(fù)可能的丟包。例如,voip(voiceoverinternetprotocol,網(wǎng)絡(luò)電話)應(yīng)用為了降低延時,普遍采用udp(userdatagramprotocol,用戶數(shù)據(jù)報協(xié)議)協(xié)議,為了保障qos(qualityofservice,服務(wù)質(zhì)量),一般都通過加冗余糾錯包的方式恢復(fù)可能的丟包。
在視頻數(shù)據(jù)中增加冗余糾錯包的方法可以是這樣的,首先,對視頻數(shù)據(jù)的每個幀進(jìn)行分包,每個幀的數(shù)據(jù)被分為p個數(shù)據(jù)包,然后,利用某種冗余編碼算法,例如fec(forwarderrorcorrection,前向糾錯)編碼、rs(reedsolomon)編碼、bch(bose、ray-chaudhuri與hocquenghem)編碼,為該幀增加q個冗余糾錯包,最后,將該幀的數(shù)據(jù)包和冗余糾錯包一起向接收端傳輸;該種方法可以抵抗q個數(shù)據(jù)包的丟包,當(dāng)有丟包時,就可以利用冗余糾錯包將丟失的數(shù)據(jù)包恢復(fù)出來。其中,q和p均為正整數(shù)。需要說明的是,增加的冗余糾錯包的個數(shù)的多少,決定了抗丟包能力的強(qiáng)弱。對于重要的,需要多保護(hù)的幀,可以增加較多的冗余糾錯包。
目前的主流視頻壓縮編碼標(biāo)準(zhǔn)一般采用dpcm編碼架構(gòu),該架構(gòu)下,視頻數(shù)據(jù)的幀分為兩種,一種是i幀,i幀為幀內(nèi)編碼幀,直接進(jìn)行壓縮編碼,而不參考其它幀;另一種是p幀,p幀為幀間編碼幀,需要結(jié)合其參考幀,例如前面的一個i幀,比較該p幀與參考幀的差異,針對差異數(shù)據(jù)進(jìn)行壓縮編碼;因此,i幀可以直接進(jìn)行編碼或解碼,p幀的編碼或解碼則需要結(jié)合其參考幀。因此,i幀和p幀的重要性是不同的。另外,不同的p幀的重要性可能也不同,例如,假設(shè)幀n為i幀,幀n+1和幀n+2均以幀n為參考幀,幀n+3以幀n+2為參考幀,則,幀n+2如果解碼失敗,則會導(dǎo)致n+3無法解碼,可見,同為p幀的幀n+1和幀n+2的重要性也是不同的。
其它編碼結(jié)構(gòu)下,各幀的重要性可能也有所不同。請參考圖1所示的hpp (hierarchicalp-frameprediction,一種分層預(yù)測的編碼方式)編碼結(jié)構(gòu),hpp采用分層預(yù)測的方式,處于不同的時間層(layer)的幀的重要性明顯不同,如圖1中l(wèi)ayer0幀(p0、p4、p8)的重要性高于layer1幀(p2、p6)的重要性,更高于layer2幀(p1、p3…p7)的重要性。
然而,目前針對視頻數(shù)據(jù)的冗余控制方案中,雖然也采用不對等錯誤保護(hù)(unequalerrorprotection,uec)策略對一些重要的幀進(jìn)行重點保護(hù),但只是經(jīng)驗性地多保護(hù)i幀及i幀間隔(intra-period)內(nèi)位置靠前的幀,不能按照各幀的重要性的不同分別進(jìn)行冗余保護(hù),不能定量的量化各幀的重要性,或者說,無法實現(xiàn)幀級的精細(xì)化冗余保護(hù),也因此導(dǎo)致對不同的碼流結(jié)構(gòu)擴(kuò)展性不強(qiáng)。
另外,就視頻分包方法而言,現(xiàn)有技術(shù)中都是盡量以mtu(maximumtransmissionunit,最大傳輸單元)大小發(fā)包,以減少分包個數(shù)節(jié)省包頭開銷。由于現(xiàn)有技術(shù)的分包方法盡量發(fā)大包,接近mtu,在網(wǎng)絡(luò)擁塞時有可能會被某些路由的包排隊策略優(yōu)先丟棄,導(dǎo)致抗丟包能力不足,降低了傳輸性能。
基于上述問題,為了提高視頻數(shù)據(jù)的抗丟包能力,提高視頻數(shù)據(jù)的傳輸性能,本發(fā)明實施例提供一種視頻數(shù)據(jù)的冗余控制方法以及相應(yīng)的裝置。
下面通過具體實施例,分別進(jìn)行詳細(xì)的說明。
請參考圖2,是本發(fā)明實施例的冗余控制系統(tǒng)的系統(tǒng)架構(gòu)圖。冗余控制系統(tǒng)包括發(fā)送端和接收端。發(fā)送端或接收端可以部署在終端設(shè)備例如個人計算機(jī)或者移動通信終端例如智能手機(jī)、平板電腦等設(shè)備上。
如圖2所示,本發(fā)明實施例的冗余控制系統(tǒng)中,發(fā)送端的工作流程可包括:編碼參數(shù)配置,用于配置編碼參數(shù)例如視頻碼率等;視頻編碼,按照配置的編碼參數(shù)對視頻數(shù)據(jù)進(jìn)行壓縮編碼;冗余分配,用于為視頻編碼得到的壓縮視頻數(shù)據(jù)的幀分配冗余碼率;自適應(yīng)分包決策,用于確定各幀的分包方案,例如一幀數(shù)據(jù)分為多少個數(shù)據(jù)包;冗余編碼,用于使用糾錯編碼方法例如fec等進(jìn)行冗余編碼,為各幀增加冗余糾錯包;網(wǎng)絡(luò)發(fā)送,用于視頻數(shù)據(jù)的數(shù)據(jù)包和增加的冗余糾錯包經(jīng)網(wǎng)絡(luò)傳輸發(fā)送給接收端。
接收端的工作流程可包括:網(wǎng)絡(luò)收包,用于接收發(fā)送端發(fā)送的數(shù)據(jù),包括視頻數(shù)據(jù)的數(shù)據(jù)包和冗余糾錯包;丟包統(tǒng)計,用于統(tǒng)計丟包率,估計擁塞情況; 同幀組包、冗余解碼,用于將同一幀的數(shù)據(jù)包和冗余糾錯包分為一組,進(jìn)行解碼,在有丟包時,利用冗余糾錯包恢復(fù)出丟失的數(shù)據(jù)包,得到各幀的壓縮視頻數(shù)據(jù);視頻解碼,用于對得到的壓縮視頻數(shù)據(jù)進(jìn)行視頻解碼,得到原始視頻數(shù)據(jù);冗余控制,用于根據(jù)解碼情況確定冗余比例,例如根據(jù)丟包率確定一個能夠抵抗該丟包率的數(shù)據(jù)冗余率,以指示在發(fā)送端如何進(jìn)行冗余控制;擁塞控制,用于根據(jù)帶寬情況確定在發(fā)送端應(yīng)使用的視頻碼率,以及,將數(shù)據(jù)冗余率和視頻碼率反饋給發(fā)送端;該數(shù)據(jù)冗余率和視頻碼率被發(fā)送端接收到以后,用于配置編碼參數(shù)。
請參考圖3,本發(fā)明實施例提供一種視頻數(shù)據(jù)的冗余控制方法,應(yīng)用于冗余控制系統(tǒng)的發(fā)送端,該方法可包括:
310、獲取接收端反饋的視頻碼率和冗余等級,所述視頻碼率和冗余等級是由所述接收端根據(jù)丟包率計算得到的;根據(jù)所述冗余等級獲取數(shù)據(jù)冗余率。
可選的,接收端和發(fā)送端可以各自保存有相同的冗余等級表,發(fā)送端在接收到冗余等級之后,可以通過查詢?nèi)哂嗟燃壉慝@取所述冗余等級對應(yīng)的數(shù)據(jù)冗余率,所述冗余等級表用于保存所述冗余等級和所述數(shù)據(jù)冗余率的對應(yīng)關(guān)系。
320、按照所述視頻碼率對原始視頻數(shù)據(jù)進(jìn)行壓縮編碼,得到壓縮視頻數(shù)據(jù)。
可選的,發(fā)送端可以按照所述視頻碼率,采用dpcm編碼架構(gòu)等,對原始視頻數(shù)據(jù)進(jìn)行壓縮編碼,得到壓縮視頻數(shù)據(jù),壓縮視頻數(shù)據(jù)可以包括i幀和p幀等不同類型的幀,其中,兩個相鄰i幀之間隔的幀數(shù)可以稱為一個i幀間隔。一個i幀間隔內(nèi),可以包括1個i幀和多個p幀。
330、根據(jù)所述視頻碼率和所述數(shù)據(jù)冗余率,為所述壓縮視頻數(shù)據(jù)的幀分配幀級冗余碼率預(yù)算。
本步驟中,可首先根據(jù)視頻碼率和數(shù)據(jù)冗余率,為壓縮視頻數(shù)據(jù)的每個i幀間隔分配間隔級冗余碼率預(yù)算,然后,可以根據(jù)一個i幀間隔內(nèi)各幀的重要性為各幀分配不同的權(quán)重,結(jié)合所分配的權(quán)重以及該i幀間隔的間隔級冗余碼率預(yù)算,為該i幀間隔內(nèi)的每個幀分別分配幀級冗余碼率預(yù)算。
在一些實施方式中,某幀重要性可定義為該幀解碼失敗導(dǎo)致同一intra-period內(nèi)后續(xù)不能解碼的幀數(shù)。假設(shè)某一intra-period內(nèi)的第i幀解碼失敗時同一intra-period內(nèi)后續(xù)不能解碼的幀數(shù)為ci,則可以按照ci為該幀分配權(quán)重,分配第i幀權(quán)重為ηi=ci/∑ci,∑ci為同一intra-period內(nèi)所有ci的和。
在一些實施方式中,記brv為視頻碼率,r為數(shù)據(jù)冗余率,brr為間隔級冗余碼率預(yù)算,則可利用公式
在一些實施方式中,記ηi為i幀間隔內(nèi)的第i幀的權(quán)重,ri為第i幀的幀級冗余碼率預(yù)算,則可利用公式ri=ηi*brr來計算和分配幀級冗余碼率預(yù)算。
在一些實施方式中,為保證關(guān)鍵幀達(dá)到冗余要求且總碼率不會超過安全發(fā)送碼率brs,以第i幀為例,可以利用所述第i幀的編碼大小si對所述第i幀的幀級冗余碼率預(yù)算ri進(jìn)行修正,將ri限制在ri[α*si,β*si]區(qū)間內(nèi),其中,α、β為局部冗余系數(shù),α、β的取值區(qū)間為[0,1]。
340、按照所述幀級冗余碼率預(yù)算,對所述壓縮視頻數(shù)據(jù)的幀進(jìn)行分包,以及對所述壓縮視頻數(shù)據(jù)的分包后的幀進(jìn)行冗余編碼。
本發(fā)明實施例中,在對壓縮視頻數(shù)據(jù)的某個幀進(jìn)行分包以后,可以利用fec編碼、rs編碼或bch編碼等編碼方法,對壓縮視頻數(shù)據(jù)的該幀進(jìn)行冗余編碼,其中,可以按照所分配的幀級冗余碼率預(yù)算,分別為不同的幀增加不同個數(shù)的冗余糾錯包,以實現(xiàn)幀級的精細(xì)化冗余保護(hù)。
現(xiàn)有技術(shù)的分包方法盡量發(fā)大包,接近mtu,在網(wǎng)絡(luò)擁塞時有可能會被某些路由的包排隊策略優(yōu)先丟棄,導(dǎo)致抗丟包能力不足。本發(fā)明一些實施例中,根據(jù)數(shù)據(jù)冗余率要求,可以計算所述壓縮視頻數(shù)據(jù)的幀的最佳分包參數(shù),按照所述最佳分包參數(shù)進(jìn)行分包,實現(xiàn)自適應(yīng)調(diào)整分包大小,在有限的冗余碼率預(yù)算內(nèi)選取抗丟包能力最強(qiáng)的方案。
以第i幀為例,計算最佳分包參數(shù)的流程可以包括:
確定所述壓縮視頻數(shù)據(jù)的第i幀的分包個數(shù)的范圍,i為正整數(shù);
遍歷所述范圍內(nèi)的任一分包個數(shù)nj,計算該分包個數(shù)nj對應(yīng)的分包大小lj和冗余包個數(shù)mj,計算該分包個數(shù)nj下的包級冗余率rp以及超預(yù)算偏差δ;
其中,
將包級冗余率rp最大且超預(yù)算偏差δ最小時的分包個數(shù)以及分包大小和冗余包個數(shù),確定為最佳分包參數(shù)。
以上,結(jié)合圖3,本文以發(fā)送端為執(zhí)行主體對本發(fā)明實例方法進(jìn)行介紹,該方法中,接收端反饋視頻碼率和冗余等級,發(fā)送端根據(jù)視頻碼率進(jìn)行壓縮編碼到壓縮視頻數(shù)據(jù),根據(jù)冗余等級獲取數(shù)據(jù)冗余率,根據(jù)視頻碼率和數(shù)據(jù)冗余率為壓縮視頻數(shù)據(jù)的i幀間隔分配間隔級冗余碼率預(yù)算,為i幀間隔內(nèi)的幀分配幀級冗余碼率預(yù)算,按照間隔級冗余碼率預(yù)算和幀級冗余碼率預(yù)算,對壓縮視頻數(shù)據(jù)進(jìn)行分包和冗余編碼,于是,實現(xiàn)了i幀間隔和幀這兩個級別的冗余控制,對視頻數(shù)據(jù)的冗余控制精細(xì)化到每個幀,可以反映每個幀的重要程度,從而提高了對視頻數(shù)據(jù)的冗余控制精度,有助于降低丟包率,提高視頻數(shù)據(jù)的傳輸性能,并且有助于提高碼流結(jié)構(gòu)的擴(kuò)展性,以適用于多種編碼結(jié)構(gòu)。
下面,繼續(xù)以接收端為執(zhí)行主體繼續(xù)介紹本發(fā)明實施例方法。
請參考圖4,本發(fā)明實施例還提供一種視頻數(shù)據(jù)的冗余控制方法,應(yīng)用于冗余控制系統(tǒng)的接收端,該方法可包括:
410、統(tǒng)計接收到的視頻數(shù)據(jù)的丟包率;
接收端可以子啊接收發(fā)送端發(fā)送的視頻數(shù)據(jù)的數(shù)據(jù)包的過程中,統(tǒng)計出丟包率,這里用l表示丟包率。
420、根據(jù)所述丟包率確定用于抵抗所述丟包率的數(shù)據(jù)冗余率;
在一些實施例中,可以采用公式r=k*l確定數(shù)據(jù)冗余率,其中,l為丟包率,k為不大于3且不小于1的系數(shù),r為數(shù)據(jù)冗余率,且r小于1。優(yōu)選的,可以先定r小于1。
430、在帶寬許可范圍內(nèi)進(jìn)行碼率分配,獲得安全發(fā)送碼率;
安全發(fā)送碼率應(yīng)不大于可用帶寬。
440、利用所述數(shù)據(jù)冗余率和所述安全發(fā)送碼率計算視頻碼率;
在一些實施例中,可以采用公式brv=brs*(1-r)計算視頻碼率,其中,brs 為安全發(fā)送碼率,brv為視頻碼率。
450、獲取所述數(shù)據(jù)冗余率對應(yīng)的冗余等級;
可選的,接收端和發(fā)送端可以各自保存有相同的冗余等級表,接收端可以通過查詢?nèi)哂嗟燃壉慝@取所述數(shù)據(jù)冗余率r對應(yīng)的冗余等級rslevel,所述冗余等級表用于保存所述冗余等級和所述數(shù)據(jù)冗余率的對應(yīng)關(guān)系。
460、將所述視頻碼率和所述冗余等級反饋給所述發(fā)送端,所述視頻碼率和所述冗余等級被所述發(fā)送端用于對所述視頻數(shù)據(jù)進(jìn)行冗余控制。
可選的,接收端可以通過rtcp協(xié)議將brv及rslevel反饋給發(fā)送端。
以上,結(jié)合圖4,本文以接收端為執(zhí)行主體對本發(fā)明實例方法進(jìn)行介紹,該方法中,接收端通過統(tǒng)計丟包率,確定視頻碼率和數(shù)據(jù)冗余率,以及數(shù)據(jù)冗余率對應(yīng)的冗余等級,將視頻碼率和冗余等級反饋給發(fā)送端,以便發(fā)送端用來對視頻數(shù)據(jù)進(jìn)行幀級的冗余控制,從而提高了對視頻數(shù)據(jù)的冗余控制精度,有助于降低丟包率,提高視頻數(shù)據(jù)的傳輸性能,并且有助于提高碼流結(jié)構(gòu)的擴(kuò)展性,以適用于多種編碼結(jié)構(gòu)。
為便于更好的理解本發(fā)明實施例提供的技術(shù)方案,下面通過一個具體場景下的實施方式為例進(jìn)行介紹。
本發(fā)明實施例的另一種視頻數(shù)據(jù)的冗余控制方法,可包括:
s1、發(fā)送端進(jìn)行冗余編碼。
本發(fā)明實施例中抗丟包冗余編碼可使用某種糾錯編碼方法如fec編碼、rs編碼、bch編碼等,具備恢復(fù)一定數(shù)量丟包的能力。一幀視頻數(shù)據(jù)經(jīng)過壓縮編碼后可以分成n(n≥1)個數(shù)據(jù)包,分別為p1…pn,通過以上某種冗余編碼算法加m個冗余數(shù)據(jù)包,分別為r1…rm,則該碼組{p1…pn,r1…rm}可抗任意m個以內(nèi)的丟包,即不超過
s2、配置冗余等級表。
為了減少反饋數(shù)據(jù)量,發(fā)送端和接收端可存有一個共同約定好的冗余等級表,表中每一冗余等級索引某一數(shù)據(jù)冗余率r,用以抵抗一定的網(wǎng)絡(luò)丟包率l。
s3、接收端確定數(shù)據(jù)冗余率。
接收端收包過程中可統(tǒng)計出丟包率l,冗余控制系統(tǒng)中可以根據(jù)某種策略確定一個足以抵抗該丟包率的數(shù)據(jù)冗余率r,該種策略可以是保守的如r=l,或者比較有保障的如r=k*l(k>1)。考慮到網(wǎng)絡(luò)帶寬容量限制與抗丟包能力之間的權(quán)衡,實際使用中可規(guī)定1≤k≤3。
s4、接收端rtcp反饋。
得到數(shù)據(jù)冗余率r后,接收端的流量擁塞控制(congestioncontrol)功能將在帶寬許可的范圍內(nèi)進(jìn)行碼率分配,假設(shè)擁塞控制功能得出的安全發(fā)送碼率是brs(brs<=a,a是估計出的可用帶寬),則純視頻碼率為brv=brs*(1-r)。另外,在冗余等級表里找出根據(jù)數(shù)據(jù)冗余率r對應(yīng)的冗余等級rslevel,并通過rtcp協(xié)議將brv及rslevel反饋給發(fā)送端。
s5、發(fā)送端視頻編碼并在intra-period級視頻分配冗余預(yù)算
發(fā)送端收到rtcp反饋,可以使用其中的brv及其配套的一組相關(guān)參數(shù)進(jìn)行壓縮編碼,本文中,假設(shè)一個intra-period內(nèi)第i幀編碼后的幀大小是si。另外,發(fā)送端可通過rtcp攜帶的rslevel索引期望的數(shù)據(jù)冗余率r,并采用以下公式計算出該intra-period的冗余碼率預(yù)算
由于參考關(guān)系的差異,intra-period內(nèi)各幀的重要性有所不同,需要結(jié)合其重要性進(jìn)行非對等錯誤保護(hù)。如i幀的重要性高于p幀,ippp參考結(jié)構(gòu)中,gop(groupofpictures,畫面組)前面的幀重要性高于后面的幀;另外,不同的編碼結(jié)構(gòu)中各幀的重要程度也不相同,如hpp參考結(jié)構(gòu)中低layer的幀比高layer的幀重要,最低layer位于intra-period前面的幀比后面的幀更重要。為了量化幀的重要性,可定義第i幀的權(quán)重為ηi,ηi為歸一化值。
其中,權(quán)重可以采用經(jīng)驗值,也可以按照某種算法得出,如某幀重要性可定義為該幀解碼失敗導(dǎo)致同一intra-period內(nèi)后續(xù)不能解碼的幀數(shù)。
根據(jù)上面定義的權(quán)重,可得到分配給第i幀的期望冗余碼率為ri=ηi*brr。
此外,視頻場景可能發(fā)生變化,使得實際編碼碼率可能不等于期望碼率brv,因此需要根據(jù)實際編碼大小對冗余碼率修正,以保證關(guān)鍵幀,例如i幀以 及hpp的layer0幀,達(dá)到冗余要求且總碼率不會超過安全發(fā)送碼率brs。
具體到作為示例的第i幀,可以將ri限制在[α*si,β*si]區(qū)間,其中α、β為局部冗余系數(shù),取值區(qū)間為[0,1],即ri=max(min(ri,β*si),α*si)。
s6、幀級自適應(yīng)調(diào)整分包大小。
一般網(wǎng)絡(luò)包大小不超過最大傳輸單元(mtu),考慮到傳輸效率及可能對音頻數(shù)據(jù)的影響,視頻包大小也不宜過小,一般存在經(jīng)驗最小值lmin。發(fā)送端冗余控制功能可據(jù)當(dāng)前幀編碼大小及當(dāng)前冗余碼率預(yù)算,自適應(yīng)調(diào)整分包大小,總體目標(biāo)是:
1)冗余可控,按比例準(zhǔn)確加冗余;
2)在冗余預(yù)算內(nèi)盡可能提高抗丟包能力。
得到某幀的冗余預(yù)算ri后,結(jié)合該幀的實際編碼大小si確定分包方式。
算法流程如下:
a)根據(jù)分包大小范圍[lmin,lmax]確定視頻幀最大、最小分包個數(shù)[nmax,nmin],其中
b)遍歷所有分包個數(shù)nj∈[nmin,nmax],計算相應(yīng)的分包大小
c)計算每種分包方案的包級冗余率rp及實際超預(yù)算偏差δ
δ=(nj+mj)*lj-(si+ri)
在所有分包方式中找出rp最大的方案(抗丟包能力最高),得到最佳分包參數(shù){n*,l*,m*}。如果最大包級冗余率rp對應(yīng)多種分包方案,則取δ最小的那個。
由上可見,本發(fā)明實施例方法,可用于視頻數(shù)據(jù)傳輸例如視頻通話,可以在intra-period級將冗余碼率按各幀的重要性分配,可以根據(jù)壓縮編碼后實際視頻幀大小、冗余碼率預(yù)算進(jìn)行自適應(yīng)分包參數(shù)調(diào)整,以達(dá)到最大抗丟包能力。
本發(fā)明實施例的冗余控制系統(tǒng)中,由接收端根據(jù)丟包情況合理決策冗余比例,以具備抵抗一定程度的網(wǎng)絡(luò)丟包的能力。結(jié)合網(wǎng)絡(luò)帶寬估計得到冗余碼率預(yù)算,冗余控制系統(tǒng)將通過i幀間隔(intra-period)級整體控制、幀級自適應(yīng)調(diào)整兩個層次進(jìn)行冗余碼率預(yù)算分配。就視頻intra-period內(nèi)所有幀整體而言,系統(tǒng)根據(jù)各幀的重要性對壓縮編碼后數(shù)據(jù)加以相應(yīng)水平的幀級冗余保護(hù),以提高intra-period整體的恢復(fù)能力。此外,為了在冗余預(yù)算內(nèi)最大程度提高單幀的抗丟包能力,本發(fā)明實施例還通過自適應(yīng)調(diào)整,尋找最佳分包參數(shù),以達(dá)到最高“包級”冗余率。
為了更好的實施本發(fā)明實施例的上述方案,下面還提供用于配合實施上述方案的相關(guān)裝置。
請參考圖5,本發(fā)明實施例提供一種視頻數(shù)據(jù)的冗余控制裝置500,該裝置可用于冗余控制系統(tǒng)的發(fā)送端,該裝置可包括:
接收模塊510,用于獲取接收端反饋的視頻碼率和冗余等級,所述視頻碼率和冗余等級是由所述接收端根據(jù)丟包率計算得到的;
獲取模塊520,用于根據(jù)所述冗余等級獲取數(shù)據(jù)冗余率;
視頻編碼模塊530,用于按照所述視頻碼率對原始視頻數(shù)據(jù)進(jìn)行壓縮編碼,得到壓縮視頻數(shù)據(jù);
冗余分配模塊540,用于根據(jù)所述視頻碼率和所述數(shù)據(jù)冗余率,為所述壓縮視頻數(shù)據(jù)的幀分配幀級冗余碼率預(yù)算;
冗余編碼模塊550,用于按照所述幀級冗余碼率預(yù)算,對所述壓縮視頻數(shù)據(jù)的幀進(jìn)行分包,以及對所述壓縮視頻數(shù)據(jù)的分包后的幀進(jìn)行冗余編碼。
在本發(fā)明一些實施例中,所述獲取模塊520具體用于:通過查詢?nèi)哂嗟燃壉慝@取所述冗余等級對應(yīng)的數(shù)據(jù)冗余率,所述冗余等級表用于保存所述冗余等級和所述數(shù)據(jù)冗余率的對應(yīng)關(guān)系。
在本發(fā)明一些實施例中,所述冗余分配模塊540具體用于:為所述壓縮視頻數(shù)據(jù)的i幀間隔分配間隔級冗余碼率預(yù)算,根據(jù)所述間隔級冗余碼率預(yù)算為所述i幀間隔內(nèi)的幀分配幀級冗余碼率預(yù)算。
其中,在本發(fā)明一些實施例中,可以所述冗余分配模塊540具體用于:利用以下公式為所述壓縮視頻數(shù)據(jù)的i幀間隔分配間隔級冗余碼率預(yù)算:
其中,brv為所述視頻碼率,r為所述數(shù)據(jù)冗余率,brr為所述間隔級冗余碼率預(yù)算。
在本發(fā)明一些實施例中,所述冗余分配模塊540具體用于:
利用以下公式為所述i幀間隔內(nèi)的幀分配幀級冗余碼率預(yù)算:
ri=ηi*brr
其中,ηi為所述i幀間隔內(nèi)的第i幀的權(quán)重,ri為所述第i幀的幀級冗余碼率預(yù)算,i為正整數(shù)。
在本發(fā)明一些實施例中,所述冗余分配模塊540還用于::
利用所述第i幀的編碼大小si對所述第i幀的幀級冗余碼率預(yù)算ri進(jìn)行修正,將ri限制在ri[α*si,β*si]區(qū)間內(nèi),其中,α、β為局部冗余系數(shù),α、β的取值區(qū)間為[0,1]。
在本發(fā)明一些實施例中,所述冗余編碼模塊550具體用于:根據(jù)所述幀級冗余碼率預(yù)算計算所述壓縮視頻數(shù)據(jù)的幀的最佳分包參數(shù);按照所述最佳分包參數(shù)進(jìn)行分包。
在本發(fā)明一些實施例中,所述冗余編碼模塊550具體用于:
確定所述壓縮視頻數(shù)據(jù)的第i幀的分包個數(shù)的范圍,i為正整數(shù);
遍歷所述范圍內(nèi)的任一分包個數(shù)nj,根據(jù)所述第i幀的編碼大小和幀級冗余碼率預(yù)算計算該分包個數(shù)nj對應(yīng)的分包大小lj和冗余包個數(shù)mj,計算該分包個數(shù)nj下的包級冗余率rp以及超預(yù)算偏差δ;
其中,
將包級冗余率rp最大且超預(yù)算偏差δ最小時的分包個數(shù)以及分包大小和冗余包個數(shù),確定為最佳分包參數(shù)。
可以理解,本發(fā)明實施例裝置的各個功能模塊的功能可根據(jù)上述方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可參照上述方法實施例中的相關(guān)描述,此處不再贅述。
以上,結(jié)合圖5,本發(fā)明實施例提供了一種用于發(fā)送端的視頻數(shù)據(jù)的冗余控制裝置,該裝置可獲取接收端反饋的視頻碼率和冗余等級,根據(jù)視頻碼率進(jìn)行壓縮編碼到壓縮視頻數(shù)據(jù),根據(jù)冗余等級獲取數(shù)據(jù)冗余率,根據(jù)視頻碼率和數(shù)據(jù)冗余率為壓縮視頻數(shù)據(jù)的i幀間隔分配間隔級冗余碼率預(yù)算,為i幀間隔內(nèi)的幀分配幀級冗余碼率預(yù)算,按照間隔級冗余碼率預(yù)算和幀級冗余碼率預(yù)算,對壓縮視頻數(shù)據(jù)進(jìn)行分包和冗余編碼,于是,實現(xiàn)了i幀間隔和幀這兩個級別的冗余控制,對視頻數(shù)據(jù)的冗余控制精細(xì)化到每個幀,可以反映每個幀的重要程度,從而提高了對視頻數(shù)據(jù)的冗余控制精度,有助于降低丟包率,提高視頻數(shù)據(jù)的傳輸性能,并且有助于提高碼流結(jié)構(gòu)的擴(kuò)展性,以適用于多種編碼結(jié)構(gòu)。
請參考圖6,本發(fā)明實施例提供一種視頻數(shù)據(jù)的冗余控制裝置600,該裝置可用于冗余控制系統(tǒng)的接收端,該裝置可包括:
統(tǒng)計模塊610,用于統(tǒng)計接收到的視頻數(shù)據(jù)的丟包率;
確定模塊620,用于根據(jù)所述丟包率確定用于抵抗所述丟包率的數(shù)據(jù)冗余率;
獲得模塊630,用于在帶寬許可范圍內(nèi)進(jìn)行碼率分配,獲得安全發(fā)送碼率;
計算模塊640,用于利用所述數(shù)據(jù)冗余率和所述安全發(fā)送碼率計算視頻碼率;
獲取模塊650,用于獲取所述數(shù)據(jù)冗余率對應(yīng)的冗余等級;
發(fā)送模塊660,用于將所述視頻碼率和所述冗余等級反饋給所述發(fā)送端,所述視頻碼率和所述冗余等級被所述發(fā)送端用于對所述視頻數(shù)據(jù)進(jìn)行冗余控制。
在本發(fā)明一些實施例中,所述確定模塊620具體用于:
采用公式r=k*l確定數(shù)據(jù)冗余率,其中,l為丟包率,k為不大于3且不小于1的系數(shù),r為數(shù)據(jù)冗余率,且r小于1。
在本發(fā)明一些實施例中,所述計算模塊640具體用于:
采用公式brv=brs*(1-r)計算視頻碼率,其中,brs為安全發(fā)送碼率,brv為視頻碼率。
可以理解,本發(fā)明實施例裝置的各個功能模塊的功能可根據(jù)上述方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可參照上述方法實施例中的相關(guān)描述,此處不再贅述。
以上,結(jié)合圖6,本發(fā)明實施例提供了一種用于接收端的視頻數(shù)據(jù)的冗余控制裝置,該裝置可通過統(tǒng)計丟包率,確定視頻碼率和數(shù)據(jù)冗余率,以及數(shù)據(jù)冗余率對應(yīng)的冗余等級,將數(shù)據(jù)冗余率和冗余等級反饋給發(fā)送端,以便發(fā)送端用來對視頻數(shù)據(jù)進(jìn)行幀級的冗余控制,從而提高了對視頻數(shù)據(jù)的冗余控制精度,有助于降低丟包率,提高視頻數(shù)據(jù)的傳輸性能,并且有助于提高碼流結(jié)構(gòu)的擴(kuò)展性,以適用于多種編碼結(jié)構(gòu)。
本發(fā)明實施例還提供一種計算機(jī)存儲介質(zhì),該計算機(jī)存儲介質(zhì)可存儲有程序,該程序執(zhí)行時包括上文如圖3所示的方法實施例中記載的視頻數(shù)據(jù)的冗余控制方法的部分或全部步驟,或者,包括如圖4所示的方法實施例中記載的視頻數(shù)據(jù)的冗余控制方法的部分或全部步驟。當(dāng)該計算機(jī)存儲介質(zhì)存儲的程序被包括一個或多個處理器的計算機(jī)設(shè)備執(zhí)行時,可使該計算機(jī)設(shè)備執(zhí)行如圖3所示的方法實施例中記載的視頻數(shù)據(jù)的冗余控制方法,或者,如圖4所示的方法實施例中記載的視頻數(shù)據(jù)的冗余控制方法。
請參考圖7,本發(fā)明實施例還提供一種計算機(jī)設(shè)備700。
處理器710,存儲器720,通信接口730,總線740;
所述存儲器720用于存儲程序750,所述處理器710與所述存儲器720通過所述總線740連接,當(dāng)所述計算機(jī)設(shè)備700運行時,所述處理器710執(zhí)行所述存儲器720存儲的所述程序750,以使所述計算機(jī)設(shè)備700執(zhí)行如圖3所示的方法實施 例中記載的視頻數(shù)據(jù)的冗余控制方法。
其中,通信接口730執(zhí)行如下步驟:獲取接收端反饋的視頻碼率和冗余等級,所述視頻碼率和冗余等級是由所述接收端根據(jù)丟包率計算得到的;
處理器710執(zhí)行如下步驟:根據(jù)所述冗余等級獲取數(shù)據(jù)冗余率;按照所述視頻碼率對原始視頻數(shù)據(jù)進(jìn)行壓縮編碼,得到壓縮視頻數(shù)據(jù);根據(jù)所述視頻碼率和所述數(shù)據(jù)冗余率,為所述壓縮視頻數(shù)據(jù)的幀分配幀級冗余碼率預(yù)算;按照所述幀級冗余碼率預(yù)算,對所述壓縮視頻數(shù)據(jù)的幀進(jìn)行分包,以及對所述壓縮視頻數(shù)據(jù)的分包后的幀進(jìn)行冗余編碼。
可選的,處理器710還執(zhí)行如下步驟:通過查詢?nèi)哂嗟燃壉慝@取所述冗余等級對應(yīng)的數(shù)據(jù)冗余率,所述冗余等級表用于保存所述冗余等級和所述數(shù)據(jù)冗余率的對應(yīng)關(guān)系。
可選的,處理器710還執(zhí)行如下步驟:為所述壓縮視頻數(shù)據(jù)的i幀間隔分配間隔級冗余碼率預(yù)算,根據(jù)所述間隔級冗余碼率預(yù)算為所述i幀間隔內(nèi)的幀分配幀級冗余碼率預(yù)算。
可選的,處理器710還執(zhí)行如下步驟:
利用以下公式為所述壓縮視頻數(shù)據(jù)的i幀間隔分配間隔級冗余碼率預(yù)算:
其中,brv為所述視頻碼率,r為所述數(shù)據(jù)冗余率,brr為所述間隔級冗余碼率預(yù)算。
可選的,處理器710還執(zhí)行如下步驟:
利用以下公式為所述i幀間隔內(nèi)的幀分配幀級冗余碼率預(yù)算:
ri=ηi*brr
其中,ηi為所述i幀間隔內(nèi)的第i幀的權(quán)重,ri為所述第i幀的幀級冗余碼率預(yù)算,i為正整數(shù)。
可選的,處理器710還執(zhí)行如下步驟:
利用所述第i幀的編碼大小si對所述第i幀的幀級冗余碼率預(yù)算ri進(jìn)行修正,將ri限制在ri[α*si,β*si]區(qū)間內(nèi),其中,α、β為局部冗余系數(shù),α、β的取 值區(qū)間為[0,1]。
可選的,處理器710還執(zhí)行如下步驟:根據(jù)所述幀級冗余碼率預(yù)算計算所述壓縮視頻數(shù)據(jù)的幀的最佳分包參數(shù);按照所述最佳分包參數(shù)進(jìn)行分包。
可選的,處理器710還執(zhí)行如下步驟:
確定所述壓縮視頻數(shù)據(jù)的第i幀的分包個數(shù)的范圍,i為正整數(shù);
遍歷所述范圍內(nèi)的任一分包個數(shù)nj,計算該分包個數(shù)nj對應(yīng)的分包大小lj和冗余包個數(shù)mj,計算該分包個數(shù)nj下的包級冗余率rp以及超預(yù)算偏差δ;
其中,
將包級冗余率rp最大且超預(yù)算偏差δ最小時的分包個數(shù)以及分包大小和冗余包個數(shù),確定為最佳分包參數(shù)。
其中,所述總線740可以是工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(industrystandardarchitecture,簡稱為isa)總線或外部設(shè)備互連(peripheralcomponent,簡稱為pci)總線或擴(kuò)展工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(extendedindustrystandardarchitecture,簡稱為eisa)總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線中的一種或多種。為便于表示,圖中僅用一條粗線表示,但并不表示僅有一根總線或一種類型的總線。
所述存儲器720可以包含高速ram(ramdomaccessmemory)存儲器??蛇x地,所述存儲器720還可以還包括非易失性存儲器(non-volatilememory)。例如所述存儲器720可以包括磁盤存儲器。
所述處理器710可以是一個中央處理器(centralprocessingunit,簡稱為cpu),或者所述處理器710可以是特定集成電路(applicationspecificintegratedcircuit,簡稱為asic),或者所述處理器710可以是被配置成實施本發(fā)明實施例的一個或多個集成電路。
可以理解,本發(fā)明實施例的計算機(jī)設(shè)備的各個功能模塊的功能可根據(jù)上述方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可參照上述方法實施例中的相關(guān)描述,此處不再贅述。
本發(fā)明實施例公開的計算機(jī)設(shè)備可以執(zhí)行如上文方法實施例所述的視頻數(shù)據(jù)的冗余控制方法,并取得上文方法實施例所能取得的技術(shù)效果。
請參考圖8,本發(fā)明實施例還提供一種計算機(jī)設(shè)備800。
處理器810,存儲器820,通信接口830,總線840;
所述存儲器820用于存儲程序850,所述處理器810與所述存儲器820通過所述總線840連接,當(dāng)所述計算機(jī)設(shè)備800運行時,所述處理器810執(zhí)行所述存儲器820存儲的所述程序850,以使所述計算機(jī)設(shè)備800執(zhí)行如圖4所示的方法實施例中記載的視頻數(shù)據(jù)的冗余控制方法。
其中,
處理器810執(zhí)行如下步驟:統(tǒng)計接收到的視頻數(shù)據(jù)的丟包率;根據(jù)所述丟包率確定用于抵抗所述丟包率的數(shù)據(jù)冗余率;在帶寬許可范圍內(nèi)進(jìn)行碼率分配,獲得安全發(fā)送碼率;利用所述數(shù)據(jù)冗余率和所述安全發(fā)送碼率計算視頻碼率;獲取所述數(shù)據(jù)冗余率對應(yīng)的冗余等級;
通信接口830執(zhí)行如下步驟:將所述視頻碼率和所述冗余等級反饋給所述發(fā)送端,所述視頻碼率和所述冗余等級被所述發(fā)送端用于對所述視頻數(shù)據(jù)進(jìn)行冗余控制。
可選的,處理器810還執(zhí)行如下步驟:采用公式r=k*l確定數(shù)據(jù)冗余率,其中,l為丟包率,k為不大于3且不小于1的系數(shù),r為數(shù)據(jù)冗余率,且r小于1。
可選的,處理器810還執(zhí)行如下步驟:采用公式brv=brs*(1-r)計算視頻碼率,其中,brs為安全發(fā)送碼率,brv為視頻碼率。
其中,所述總線840可以是工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(industrystandardarchitecture,簡稱為isa)總線或外部設(shè)備互連(peripheralcomponent,簡稱為pci)總線或擴(kuò)展工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(extendedindustrystandardarchitecture,簡稱為eisa)總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線中的一種或多種。為便于表示,圖中僅用一條粗線表示,但并不表示僅有一根總線或一種類型的總線。
所述存儲器820可以包含高速ram(ramdomaccessmemory)存儲器??蛇x地,所述存儲器820還可以還包括非易失性存儲器(non-volatilememory)。 例如所述存儲器820可以包括磁盤存儲器。
所述處理器810可以是一個中央處理器(centralprocessingunit,簡稱為cpu),或者所述處理器810可以是特定集成電路(applicationspecificintegratedcircuit,簡稱為asic),或者所述處理器810可以是被配置成實施本發(fā)明實施例的一個或多個集成電路。
可以理解,本發(fā)明實施例的計算機(jī)設(shè)備的各個功能模塊的功能可根據(jù)上述方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可參照上述方法實施例中的相關(guān)描述,此處不再贅述。
本發(fā)明實施例公開的計算機(jī)設(shè)備可以執(zhí)行如上文方法實施例所述的視頻數(shù)據(jù)的冗余控制方法,并取得上文方法實施例所能取得的技術(shù)效果。
在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳細(xì)描述的部分,可以參見其它實施例的相關(guān)描述。
需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其它順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:rom、ram、磁盤或光盤等。
以上對本發(fā)明實施例所提供的視頻數(shù)據(jù)的冗余控制方法和裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。