席世文 深圳供電局有限公司
由于信息技術(shù)的發(fā)展,視頻壓縮編碼技術(shù)也隨之在一步步發(fā)展,這就導(dǎo)致雖然網(wǎng)絡(luò)寬帶資源是收到限制的,但是人們依然能夠還是能夠獲得海量的視頻資源。這種技術(shù)的原理就是將原始的視頻內(nèi)容,使用信源壓縮編碼將其壓縮成為比特流,然后再將其封裝變成一個(gè)數(shù)據(jù)包,最后在將這些信息使用網(wǎng)絡(luò)從發(fā)送端傳輸?shù)浇邮斩恕5沁@個(gè)過(guò)程存在著很多問(wèn)題,有可能會(huì)導(dǎo)致數(shù)據(jù)包丟失的情形發(fā)生,比如說(shuō)當(dāng)發(fā)生緩存溢出、出現(xiàn)信道噪聲以及排隊(duì)發(fā)生延遲等等都有可能造成數(shù)據(jù)包的丟失,這將會(huì)對(duì)接收端接收到的視頻的質(zhì)量產(chǎn)生不良的影響。
應(yīng)用層前向糾錯(cuò)技術(shù)是目前來(lái)說(shuō),能夠保證在廣播網(wǎng)絡(luò)之中的傳輸效果的最佳方法,這種方法主要就是在發(fā)送端進(jìn)行前行糾錯(cuò)的編碼。前向糾錯(cuò)主要被分為兩種類型,一類是物理層前向糾錯(cuò),而另外一種是應(yīng)用層的前行糾錯(cuò)。一般在物理層能夠使用的額糾錯(cuò)碼有兩種類型,一種是LDPC碼,而另外一種是turbo碼。應(yīng)用層一般使用的是噴泉碼,這是一種適合進(jìn)行二元?jiǎng)h除信道的一種前向糾錯(cuò)碼,這種類型的糾錯(cuò)碼能夠做到很好地提高信道的網(wǎng)絡(luò)魯棒性以及信道的容量。
假如說(shuō)給定一個(gè)源符號(hào)集,該源符號(hào)集僅僅包含著k 個(gè)符號(hào),而使用了噴泉碼進(jìn)行編碼就能夠產(chǎn)生更多的、任意的編碼符號(hào),此外,如果接收端能夠接收到這其中的任意n 個(gè)編碼符號(hào)的話,那么就可以據(jù)此解碼得到相同的k 個(gè)源符號(hào),并且在這之中存在一種情況就是n 是略大于k 的。而一般來(lái)說(shuō)最為理想的噴泉碼實(shí)際上是n 與k 的數(shù)值相同。其中還有一個(gè)概念就是系統(tǒng)噴泉碼,系統(tǒng)噴泉碼具體就是指,采用噴泉碼所產(chǎn)生的前k 個(gè)編碼的符號(hào),是較為特殊的,他們與源符號(hào)是完全相同的。經(jīng)過(guò)數(shù)代人的研究,其中第一種產(chǎn)生使用效果的噴泉碼是LT 碼,但是這種碼存在一些缺陷,就是隨著源符號(hào)數(shù)目的增加,編解碼的復(fù)雜程度也會(huì)隨之增加,即兩者的關(guān)系是一種非線性增長(zhǎng)關(guān)系。后來(lái)人們?yōu)榱丝朔@一個(gè)缺點(diǎn),又進(jìn)行了更深層次的研究,又發(fā)現(xiàn)了性能更加完善的Rap-tor 碼,這種碼具有很多優(yōu)秀的特點(diǎn),比如說(shuō)解碼的開銷很小、解碼的復(fù)雜程度也很低等等。隨著之后的進(jìn)一步發(fā)展,目前這種碼已經(jīng)逐步被標(biāo)準(zhǔn)化成為DVB 以及3GPP 之中的一部分。
目前來(lái)說(shuō),視頻廣播傳輸已經(jīng)開始廣泛地應(yīng)用raptor 碼。當(dāng)然隨著技術(shù)的進(jìn)一步發(fā)展還有更為先進(jìn)的碼被發(fā)現(xiàn),比如說(shuō)滑動(dòng)窗raptor 碼,這種碼在分級(jí)視頻編碼碼流的廣播之中被廣泛的應(yīng)用到,這種碼的主要特點(diǎn)就是在源符號(hào)集的基礎(chǔ)上,使用固定大小窗口進(jìn)行滑動(dòng)式的編碼,這樣做的好處主要是能夠虛擬地使得編碼數(shù)據(jù)塊的長(zhǎng)度增加,進(jìn)而能夠進(jìn)一步提高譯碼的成功概率,與此同時(shí),還能夠起到一個(gè)不等差錯(cuò)保護(hù)的作用。關(guān)于不等差錯(cuò)保護(hù)作用,相關(guān)學(xué)者研究發(fā)現(xiàn)了一種擴(kuò)展窗編碼,這種編碼具有不等差錯(cuò)保護(hù)的特性,并且還被廣泛的應(yīng)用到SVC 的廣播之中。之后有學(xué)者根據(jù)SVC 碼流具有不同層數(shù)據(jù)間存在的解碼之間的依賴關(guān)系,提出來(lái)一種新型的前向糾錯(cuò)方案即Layer-Aware,這種方案能夠有效地提升寬帶的利用效率。
但是前人的研究雖然能夠有效地解決一些視頻傳輸之中存在問(wèn)題,但是他們?cè)诳紤]問(wèn)題的時(shí)候,往往會(huì)忽略我們?nèi)缃褚呀?jīng)處于無(wú)線網(wǎng)絡(luò)的環(huán)境之中,信道寬帶受到嚴(yán)重的限制,那么我們應(yīng)該如何在這個(gè)不利的情況下來(lái)保證視頻廣播的質(zhì)量以及效果不受到影響。由于本文就在系統(tǒng)raptor 碼的基礎(chǔ)上,對(duì)在無(wú)線網(wǎng)絡(luò)環(huán)境之下,對(duì)視頻廣播通信進(jìn)行應(yīng)用層前向糾錯(cuò)。這種方案主要是針對(duì)不同的終端存在著不同的信道狀態(tài),然后以此來(lái)犧牲一些低丟包率終端的視頻的質(zhì)量,然后來(lái)獲得總體上的提升,使得小區(qū)內(nèi)所有用戶所接收到的視頻質(zhì)量能夠得到有效的提升。
根據(jù)上述的介紹已經(jīng)能夠清楚地知道LT 碼的編解碼是一種呈現(xiàn)非線性增長(zhǎng)關(guān)系即源符號(hào)增加則編解碼的復(fù)雜程度也會(huì)隨之增加,這就可以很明顯地發(fā)現(xiàn),這種碼并不適合應(yīng)用到實(shí)際的系統(tǒng)之中,將會(huì)受到及其嚴(yán)重的制約。因此Shokrollahi 對(duì)這種碼進(jìn)行了改進(jìn),在不改變LT 碼原來(lái)的特性的基礎(chǔ)上,增加了一個(gè)預(yù)編碼的過(guò)程,這就變成了raptor 碼,這種碼與LT 碼相比會(huì)更加的實(shí)用,也具有更多地優(yōu)勢(shì)。首先,對(duì)于raptor 碼來(lái)說(shuō),它是一種解碼的開銷很小,并且進(jìn)行解碼的成功概率會(huì)更高的一種碼,它的編解碼的復(fù)雜程度與源符號(hào)的數(shù)目呈現(xiàn)出一種線性增長(zhǎng)。具體來(lái)研究raptor 碼的編碼過(guò)程主要是分為兩步,第一步是預(yù)編碼步驟,源符號(hào)經(jīng)過(guò)這一步驟之后會(huì)變成一種中間符號(hào);第二步就是LT 編碼的步驟,中間符號(hào)經(jīng)過(guò)這一步驟最終變?yōu)閞aptor 碼。由于在raptor 編碼的過(guò)程之中加入了一個(gè)預(yù)編碼的過(guò)程,所以實(shí)質(zhì)上只要在LT 碼的解碼的階段之中,能夠做到將原來(lái)的部分中間符號(hào)的數(shù)目恢復(fù),那么就能夠通過(guò)中間符號(hào)來(lái)找到原來(lái)的源符號(hào),這樣做實(shí)質(zhì)上能夠很大程度上降低對(duì)于LT 碼的解碼性能上的一些要求,此外這種做法還能夠保證在編解碼時(shí)間復(fù)雜度不增加的情況下,源符還能夠高概率、高效率地被還原。在真正進(jìn)行raptor 碼的解碼階段的時(shí)候,接收端需要考慮到一些因素,包括源符號(hào)的數(shù)量、中間符號(hào)的數(shù)量以及零符號(hào)的數(shù)量等問(wèn)題,并且還要考慮到當(dāng)接收端所接收到的編碼符號(hào)的數(shù)量是大于等于源符號(hào)的數(shù)量的時(shí)候,這才是解碼器在進(jìn)行正確解碼的過(guò)程。但是進(jìn)行raptor碼的編碼的過(guò)程是一個(gè)與解碼過(guò)程正好相反的過(guò)程,當(dāng)然也可以被分為兩個(gè)步驟,第一個(gè)步驟就是LT 解碼極短,通過(guò)這個(gè)階段獲得中間符號(hào);然后第二個(gè)階段就是恢復(fù)源符號(hào)階段,就是對(duì)中間符號(hào)進(jìn)行解碼從而獲得源符號(hào)。
在使用raptor 碼的時(shí)候,破解raptor 碼的譯碼失敗率就存在以下兩種情況,一種就是當(dāng)接收端所接收到的編碼符號(hào)的數(shù)量是大于源符號(hào)的數(shù)量的時(shí)候,那么就有很高的概率(接近1 的概率)恢復(fù)源符號(hào)。相反地,如果接收端所接收到的編碼符號(hào)的數(shù)量小于或者是等于源符號(hào)的數(shù)量的時(shí)候,那么將會(huì)有0.85 × 0.567r-k 的概率恢復(fù)源符號(hào)。
假如說(shuō)是按照一個(gè)固定代大小的方式對(duì)每一個(gè)視頻條帶進(jìn)行編碼,然后在進(jìn)行raptor 編碼的時(shí)候使用這些視頻條帶作為進(jìn)行編碼的源符號(hào),最后再采用優(yōu)先級(jí)劃分的方式對(duì)視頻數(shù)據(jù)進(jìn)行一個(gè)劃分,這個(gè)劃分方法的核心首先就是要將每一個(gè)編碼變成視頻調(diào)點(diǎn),然后在將視頻條帶劃分成為不同的等級(jí)。在這種情況下,如果有一條視頻條帶發(fā)生丟失的情況,那么根據(jù)原有的預(yù)測(cè)編碼的結(jié)構(gòu),就有可能導(dǎo)致那些相同的圖像組中的相同的視頻條帶的部分的解碼受到一定的影響。在這個(gè)時(shí)候就可以采用計(jì)算整個(gè)圖像組之內(nèi)的平方誤差和,然后根據(jù)這個(gè)平方誤差和來(lái)對(duì)視頻條帶的重要程度進(jìn)行衡量。假如說(shuō)將在一個(gè)圖像組內(nèi)圖像的數(shù)目總和定義為N,然后再用X 和Y 分別來(lái)定義圖像的寬度和高度,其單位是像素,那么總失真和就是X、Y 以及N 的平方誤差和的乘積。如果發(fā)現(xiàn)某個(gè)視頻的第一幀丟失的話,可以采取一些方法進(jìn)行恢復(fù),比如說(shuō)基于雙線性內(nèi)插的幀內(nèi)錯(cuò)誤隱藏算法,這種算法的作用是將那些丟失的數(shù)據(jù)恢復(fù),也可以稱之為重建。如果是其他幀發(fā)生丟失的情況,可以采取另一種方法進(jìn)行恢復(fù),比如說(shuō)基于零運(yùn)動(dòng)矢量復(fù)制的幀間錯(cuò)誤隱藏算法,然后對(duì)那些丟失的數(shù)據(jù)進(jìn)行恢復(fù)。假如說(shuō)是某一幀的某一宏塊發(fā)生丟失的情況,那么這個(gè)時(shí)候就可以直接其前一幀相同位置的宏塊直接補(bǔ)上丟失位置的宏塊。
假如說(shuō)在信道寬帶受到限制的情況下,進(jìn)行視頻單播,實(shí)際上這個(gè)時(shí)候之后少部分的視頻符號(hào)能夠真正地、正確無(wú)誤地傳輸?shù)浇邮斩?,這個(gè)時(shí)候的視頻質(zhì)量并不是很高,為了更好地提升接收所接收到的視頻的質(zhì)量,已達(dá)到最優(yōu)的情形,只需要同時(shí)滿足兩個(gè)條件:第一點(diǎn)就是接收端的質(zhì)量問(wèn)題,即接收是否能夠接收到足夠多的視頻符號(hào);第二點(diǎn)就是視頻符號(hào)的重要性的問(wèn)題,保證接收端所接受到的視頻符號(hào)都是需要接收到的視頻符號(hào)之后最為重要的。如果想要獲得最好的視頻質(zhì)量,那么就要做好最優(yōu)的視頻傳輸。假設(shè)在raptor 的編碼過(guò)程之中,發(fā)送端有N個(gè)編碼符號(hào),總的待傳輸?shù)木幋a數(shù)目有K個(gè),其中有K1 是實(shí)際傳輸出去的源符號(hào)數(shù)目,而有P1 隨機(jī)丟包率,接收端所能接收到的編碼數(shù)碼是R。假設(shè)是在較為理想的狀態(tài)下,進(jìn)行編碼的過(guò)程之中不需要進(jìn)行解碼開銷的階段,那么只有當(dāng)R 等于K1 的時(shí)候,才能夠?qū)崿F(xiàn)正確的解碼。在這個(gè)時(shí)候需要做的就是在源符號(hào)之中選擇其中最為重要的源符號(hào)進(jìn)行編碼,即保接收端能夠接收到這些最為重要的源符號(hào),這個(gè)時(shí)候視頻的質(zhì)量就能夠獲得最優(yōu)值。
由于廣播與單播是不一樣的情況,廣播的發(fā)送端與接收端之間的鏈路狀態(tài)差異較大,所以單播的方案并不適合廣播。在考慮廣播的糾錯(cuò)方案時(shí)需要考慮到數(shù)據(jù)包在發(fā)送端以及接收端之間傳輸?shù)臅r(shí)候的丟包率。假設(shè)丟包率是隨機(jī)分布的,那么先考慮一個(gè)編碼單元,發(fā)送端有N 個(gè)編碼,整個(gè)過(guò)程之中有K 個(gè)視頻源符號(hào),K1 是其中最為重要的源符號(hào),K2 是其中不重要的源符號(hào),先計(jì)算出源符號(hào)的優(yōu)先等級(jí),在計(jì)算其視頻失真大小。最后為了使得視頻的質(zhì)量能夠達(dá)到最優(yōu)的效果,采用啟發(fā)式搜索算法進(jìn)行計(jì)算來(lái)確定最重要的源符號(hào)數(shù)目以及最不重要的源符號(hào)數(shù)目。最終表明丟失那些不重要的源符號(hào),然后傳輸最為重要的源符號(hào),最終獲得更為高質(zhì)量的視頻,即本文想要提出的方案:犧牲少部分低丟包率的終端所能夠接收的視頻的質(zhì)量,然后保存高丟包率的終端能夠接收到的視頻的質(zhì)量,最終達(dá)到一個(gè)用戶總體上的視頻質(zhì)量的提高,從而最終獲得一個(gè)更加優(yōu)秀的廣播傳輸?shù)男Ч?/p>
本文的核心就是針對(duì)raptor 碼提出一種糾錯(cuò)方案,該種方案主要是適用于視頻廣播,進(jìn)行應(yīng)用層前行糾錯(cuò)的方案,主要是結(jié)合視頻壓縮編碼器所具有的獨(dú)特的結(jié)構(gòu)上的特點(diǎn),首先對(duì)壓縮的視頻進(jìn)行一個(gè)優(yōu)化級(jí)的劃分,然后在討論一下在單播的情況下的視頻質(zhì)量最優(yōu)的方案,在結(jié)合到廣播場(chǎng)景之中,提升視頻的質(zhì)量??傮w上來(lái)說(shuō)就是犧牲低丟包率終端的視頻質(zhì)量,來(lái)提高整體的質(zhì)量。