專利名稱:基于h.264的視頻傳輸保護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻傳輸保護(hù)技術(shù),特別涉及基于H.264視頻壓縮編碼標(biāo)準(zhǔn)的網(wǎng)絡(luò)傳輸保護(hù)方法。
背景技術(shù):
國際電信聯(lián)盟電信標(biāo)準(zhǔn)部(International Telecommunication UnionTelecommunication Standardization Sector,簡稱“ITU-T”)聯(lián)合國際標(biāo)準(zhǔn)組織(International Organization for Standardization,簡稱“ISO”)和國際電工委員會(International Electrotechnical Commission,簡稱“IEC”)的運(yùn)動圖像專家組(Moving Picture Expert Group,簡稱“MPEG”)制定的H.264視頻壓縮編碼標(biāo)準(zhǔn),目前已經(jīng)逐漸成為多媒體通信中的主流標(biāo)準(zhǔn)。大量采用H.264標(biāo)準(zhǔn)的多媒體實時通信產(chǎn)品,比如會議電視、可視電話、第三代(3rdGeneration,簡稱“3G”)移動通信終端,以及網(wǎng)絡(luò)流媒體產(chǎn)品先后問世。是否支持H.264已經(jīng)成為這個市場領(lǐng)域中決定產(chǎn)品競爭力的關(guān)鍵因素。尤其是隨著3G移動通信系統(tǒng)的出現(xiàn)和網(wǎng)際協(xié)議(Internet Protocol,簡稱“IP”)網(wǎng)絡(luò)的迅速發(fā)展,視頻網(wǎng)絡(luò)通信正逐步成為通信的主要業(yè)務(wù)之一。ITU-T繼制定了H.261、H.263、H.263+等視頻壓縮標(biāo)準(zhǔn)后,于2003年正式發(fā)布了H.264標(biāo)準(zhǔn),它同時也是MPEG-4第10部分的主要內(nèi)容。H.264標(biāo)準(zhǔn)的制定更加有效地提高了視頻編碼效率和網(wǎng)絡(luò)適配性,隨著H.264的推廣和使用,IP網(wǎng)絡(luò)和移動無線網(wǎng)絡(luò)的多媒體通信進(jìn)入了一個飛躍發(fā)展的新階段。
然而,由于H.264使用多種高效編碼算法,使得視頻碼流對信道誤碼的敏感度增加,即使單個原發(fā)性錯誤也可能會造成恢復(fù)視頻質(zhì)量的急劇下降。比如在IP網(wǎng)絡(luò)中,雖然采用了很多的承載層的服務(wù)質(zhì)量(Quality of Service,簡稱“QoS”)管理策略,但是不可避免地存在網(wǎng)絡(luò)帶寬波動,導(dǎo)致丟包、包延遲等問題頻繁發(fā)生。這類問題產(chǎn)生的傳輸錯誤,稱為刪除錯誤(ErasureError),與之不同的是傳統(tǒng)電路交換網(wǎng)絡(luò)上的隨機(jī)位錯誤(Random Bit Error),相對于隨機(jī)位錯誤,刪除錯誤更難防止和糾正。在實際H.264視頻通信中,由于丟包等引起的刪除錯誤導(dǎo)致圖像質(zhì)量退化是非常嚴(yán)重的,更甚于引起解碼端系統(tǒng)的崩潰。這是由于H.264相對于其它視頻編碼標(biāo)準(zhǔn)來說能力更強(qiáng)、效率更高、功能更豐富,反過來對于刪除錯誤的承受能力也更低。因此,在基于H.264標(biāo)準(zhǔn)的視頻通信中,必須采用有效的抗丟包等刪除錯誤的技術(shù),并結(jié)合多種視頻抗誤碼方法,來保證恢復(fù)圖像的質(zhì)量。
傳統(tǒng)的抗丟包錯誤技術(shù)有糾刪碼(Erasure Codes)、網(wǎng)絡(luò)自動重傳(Automatic Retransmission Request,簡稱“ARQ“)、交織打包(Interleaving)等,其中糾刪碼較為廣泛使用。所謂糾刪碼就是把數(shù)據(jù)碼流順序逐段分割成大小相同的一個個單元或稱為數(shù)據(jù)節(jié)點(diǎn)(Data Nodes),按照一定的運(yùn)算規(guī)則由數(shù)據(jù)節(jié)點(diǎn)計算產(chǎn)生校驗節(jié)點(diǎn)(Check Nodes)。為了增強(qiáng)保護(hù)能力,可以對前一層校驗節(jié)點(diǎn)計算產(chǎn)生后一層校驗節(jié)點(diǎn),得到多層校驗節(jié)點(diǎn),每次計算都將減少校驗節(jié)點(diǎn)的數(shù)目,一般校驗節(jié)點(diǎn)數(shù)目是按比例減少的。編碼效率較高的糾刪碼具有較低的復(fù)雜度,比如按數(shù)據(jù)節(jié)點(diǎn)數(shù)的線性復(fù)雜度,稱為線性時間特性(linear-time)。具有線性時間特性的糾刪碼在實時通信中更有用。
Tornado碼就是一種具有線性時間特性的糾刪碼,它是由Michael Luby、Michael Mitzenmacher、Amin Shokrollahi等人于1998年前后發(fā)明的一種的新型糾刪碼。Tornado碼結(jié)構(gòu)簡單、運(yùn)算效率高、保護(hù)能力強(qiáng),已被廣泛應(yīng)用在實際工程中,是多媒體傳輸錯誤控制編碼的重要技術(shù)之一。Tornado碼就是一種多層校驗的糾刪碼,從底層數(shù)據(jù)節(jié)點(diǎn)逐層產(chǎn)生出多個校驗節(jié)點(diǎn)層。校驗節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)都由發(fā)送端通過網(wǎng)絡(luò)發(fā)送給接收端。如果在網(wǎng)絡(luò)傳輸過程中,部分節(jié)點(diǎn)丟失了,可以由上下層之間的運(yùn)算關(guān)系及恢復(fù)方法根據(jù)沒有丟失的其他節(jié)點(diǎn)恢復(fù)出來,這就是Tornado碼保護(hù)數(shù)據(jù)的機(jī)制。
圖1示出了Tornado碼數(shù)據(jù)節(jié)點(diǎn)及各層校驗節(jié)點(diǎn)間的關(guān)系。圖中節(jié)點(diǎn)之間的連線稱為邊,表示邊的左側(cè)節(jié)點(diǎn)參與計算右側(cè)節(jié)點(diǎn),可見前后兩層節(jié)點(diǎn)之間是一種多對多的邏輯關(guān)系。設(shè)數(shù)據(jù)節(jié)點(diǎn)個數(shù)為n,總的校驗節(jié)點(diǎn)個數(shù)為m,則定義糾刪碼的碼率r=n/(n+m)和冗余率1-r=m/(n+m),在相同情況下(保護(hù)能力,造成的延遲等),碼率越高、冗余率越低,則糾刪碼的效率越高。Tornado碼的結(jié)構(gòu)和性能主要由三個因素決定(a)數(shù)據(jù)節(jié)點(diǎn)的數(shù)目以及逐層遞縮的規(guī)律,一般按等比例遞縮;(b)產(chǎn)生下一層節(jié)點(diǎn)的計算方法;(c)相鄰兩層節(jié)點(diǎn)之間的關(guān)聯(lián)關(guān)系。
Tornado碼各個參數(shù)之間可以推得以下關(guān)系,數(shù)據(jù)節(jié)點(diǎn)的數(shù)目設(shè)為n,校驗節(jié)點(diǎn)數(shù)目設(shè)為m,遞縮比例設(shè)為p,校驗節(jié)點(diǎn)層數(shù)為i,則前i-1層校驗節(jié)點(diǎn)的數(shù)目分別為np、np2、...、npi-1,而最后一層即第i層的數(shù)目定為npi/(1-p),這樣得到總節(jié)點(diǎn)數(shù)n+m=n+n+np2+..+npi-1+npi/(1-p)=n/(1-p),則有m=np/(1-p),即為遞縮比例與校驗節(jié)點(diǎn)數(shù)之間滿足的隱含關(guān)系。因為要保證每層的節(jié)點(diǎn)數(shù)np、np2、...、npi-1及npi/(1-p)都是整數(shù),即可根據(jù)給定的i和p計算出n的可行值,比如i=4,p=1/2,則可以推算出n必須為16的倍數(shù)。
Tornado碼產(chǎn)生過程中最常采用的計算方法是異或運(yùn)算,因為異或運(yùn)算具有很方便的恢復(fù)功能。對于兩個等長的位序列A=[a0,a1,a2,.....,aL],B=[b0,b1,b2,.....,bL],按位進(jìn)行異或運(yùn)算得到同樣長的位序列C,則有以下性質(zhì)A與C異或得到B,B與C異或得到A;同樣的對于多個序列之間的異或運(yùn)算,也有相應(yīng)的恢復(fù)方法。可見,經(jīng)過異或運(yùn)算后,數(shù)據(jù)節(jié)點(diǎn)或者校驗節(jié)點(diǎn)之間即建立相互聯(lián)系,任意一個節(jié)點(diǎn)丟失后,均可由所有其余節(jié)點(diǎn)恢復(fù)。由于最后一層校驗節(jié)點(diǎn)的遞縮比例不同,因此一般采用常規(guī)的糾錯編碼策略進(jìn)行計算,比如Reed-Solomon碼。
Tornado碼的另一個重要因素就是前后層之間的關(guān)聯(lián)關(guān)系,即下層的某個節(jié)點(diǎn)是由前一層的哪些節(jié)點(diǎn)計算得到的。根據(jù)圖論,前后兩層節(jié)點(diǎn)之間形成一個二部圖,任意一條邊的兩端分別在前一層和后一層,前一層節(jié)點(diǎn)也稱為左側(cè)節(jié)點(diǎn),后一層節(jié)點(diǎn)稱為右側(cè)節(jié)點(diǎn),每個節(jié)點(diǎn)與其關(guān)聯(lián)的邊的條數(shù)稱為度。根據(jù)Luby等人的隨機(jī)圖論數(shù)學(xué)證明,決定Tornado碼的保護(hù)能力的參數(shù)實際上是前后層構(gòu)成的二部圖的兩側(cè)節(jié)點(diǎn)的度的向量,而這個度向量是隨機(jī)產(chǎn)生的。在實際應(yīng)用中,Tornado編碼之前需要先確定節(jié)點(diǎn)度向量的隨機(jī)分布,然后按照該分布隨機(jī)匹配產(chǎn)生各級二部圖,根據(jù)二部圖左右節(jié)點(diǎn)間的關(guān)聯(lián)即確定了前后層節(jié)點(diǎn)之間的關(guān)聯(lián)關(guān)系。
在目前的Tornado碼策略中,通過給定保護(hù)能力和其它要求,比如數(shù)據(jù)節(jié)點(diǎn)大小合理性,可以接受的最大網(wǎng)絡(luò)延遲等,確定參數(shù)n,m,i,p等,并給定節(jié)點(diǎn)度向量的隨機(jī)分布,并可進(jìn)行Tornado編碼。在接收端進(jìn)行解碼時,根據(jù)每一級的二部圖,如果有一個右節(jié)點(diǎn)被正確接收,且與它相關(guān)聯(lián)的所有左節(jié)點(diǎn)中只有一個節(jié)點(diǎn)丟失,那么該丟失的節(jié)點(diǎn)就可以通過這個右節(jié)點(diǎn)與所有未丟失的左節(jié)點(diǎn)恢復(fù)得到,即達(dá)到了糾錯的效果。
另外還需要簡單介紹H.264標(biāo)準(zhǔn)的消息構(gòu)成及發(fā)送機(jī)制。H.264標(biāo)準(zhǔn)采用分層模式,定義了視頻編碼層(Video Coding Layer,簡稱“VCL”)和網(wǎng)絡(luò)抽象層(Network Abstraction Layer,簡稱“NAL”),后者專為網(wǎng)絡(luò)傳輸設(shè)計,能適應(yīng)不同網(wǎng)絡(luò)中的視頻傳輸,進(jìn)一步提高網(wǎng)絡(luò)的“親和性”。H.264引入了面向IP包的編碼機(jī)制,有利于網(wǎng)絡(luò)中的分組傳輸,支持網(wǎng)絡(luò)中視頻的流媒體傳輸;具有較強(qiáng)的抗誤碼特性,特別適應(yīng)丟包率高、干擾嚴(yán)重的無線視頻傳輸?shù)囊?。H.264的所有待傳送數(shù)據(jù),包括圖像數(shù)據(jù)及其他消息均封裝為統(tǒng)一格式的包傳送,即網(wǎng)絡(luò)抽象層單元(NAL Unit,簡稱“NALU”)。每個NALU是一個一定語法元素的可變長字節(jié)字符串,包括包含一個字節(jié)的頭信息,可用來表示數(shù)據(jù)類型,以及若干整數(shù)字節(jié)的負(fù)荷數(shù)據(jù)。一個NAL單元可以攜帶一個編碼片或一個序列、圖像的參數(shù)集。
H.264數(shù)據(jù)包含參考幀的紋理數(shù)據(jù)、序列參數(shù)、圖像參數(shù)、補(bǔ)充增強(qiáng)消息(Supplemental Enhancement Information,簡稱“SEI”)等,這些數(shù)據(jù)是關(guān)鍵數(shù)據(jù)。另外數(shù)據(jù)還包含非參考幀紋理數(shù)據(jù)等,這些則是非關(guān)鍵數(shù)據(jù)或者叫做普通數(shù)據(jù)。其中,SEI消息是在H.264視頻的解碼、顯示及其它方面起輔助作用的消息的統(tǒng)稱。現(xiàn)有技術(shù)定義了各類SEI消息,同時保留了SEI預(yù)留消息,為未來的各種可能應(yīng)用留下了擴(kuò)展余地。根據(jù)H.264,SEI消息并非在解碼過程重構(gòu)亮度和色度圖像所必需的。符合H.264標(biāo)準(zhǔn)的解碼器,是不需要對于SEI作任何處理的。也就是說,不是所有符合H.264基本要求的終端都能夠處理SEI消息的,但是對于不能處理SEI消息的終端,發(fā)送SEI對于它是沒有影響的,它會簡單地忽略掉它不能處理的SEI消息。按照SEI語法規(guī)則,用戶可以利用預(yù)留消息傳送自定義消息,實現(xiàn)功能擴(kuò)展。
目前基于H.264標(biāo)準(zhǔn)的視頻傳輸方法一般都采用固定參數(shù)的Tornado糾刪碼進(jìn)行保護(hù)。
該方法首先需要根據(jù)應(yīng)用需求和網(wǎng)絡(luò)情況設(shè)計Tornado碼的結(jié)構(gòu),根據(jù)給定保護(hù)能力和其它要求,比如音頻、視頻種類、速率大小等,來決定數(shù)據(jù)節(jié)點(diǎn)的大小、最大網(wǎng)絡(luò)延遲等,并由此確定Tornado碼的參數(shù)數(shù)據(jù)節(jié)點(diǎn)數(shù)n、校驗節(jié)點(diǎn)數(shù)m、校驗層數(shù)i、遞縮比例p等,然后設(shè)計各級二部圖的節(jié)點(diǎn)度向量的隨機(jī)分布。之后,用隨機(jī)匹配的方式生成各級節(jié)點(diǎn)之間的隨機(jī)二部圖。
開始通信時,發(fā)送端的視頻編碼器開始產(chǎn)生碼流,把該需要保護(hù)的數(shù)據(jù)碼流分割成大小相等的數(shù)據(jù)單元D0,D1,D2,D3,....,DT,其中數(shù)據(jù)單元的大小由上一步驟確定。
從當(dāng)前時刻t開始取n個數(shù)據(jù)節(jié)點(diǎn)Dt,Dt+1,....,Dt+n-1,初始值t=0,根據(jù)之前生成的各級隨機(jī)二部圖,進(jìn)行關(guān)聯(lián)節(jié)點(diǎn)的計算,逐級生成各層校驗節(jié)點(diǎn)MC(1),MC(2),...,MC(i-1)及最后校驗節(jié)點(diǎn)層FC。
將所有生成的節(jié)點(diǎn),包括數(shù)據(jù)節(jié)點(diǎn)和校驗節(jié)點(diǎn),通過某種網(wǎng)絡(luò)打包方式,比如用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,簡稱“UDP”)/IP或傳輸控制協(xié)議(Transfer Control Protocol,簡稱“TCP”)/IP,發(fā)送給接收端。
判斷所有數(shù)據(jù)節(jié)點(diǎn)是否處理完畢,如果是,結(jié)束發(fā)送;否則,置t=t+n,返回處理下一組數(shù)據(jù)節(jié)點(diǎn)。
在接收端,接收到一批數(shù)據(jù)節(jié)點(diǎn)和校驗節(jié)點(diǎn)的后,首先判斷哪些節(jié)點(diǎn)丟失,然后按照Tornado碼的一般解碼過程進(jìn)行解碼恢復(fù)那些能夠被恢復(fù)的節(jié)點(diǎn)。重復(fù)這個解碼恢復(fù)過程,直到通信過程結(jié)束。
需要說明的是,上述視頻網(wǎng)絡(luò)傳輸方法中給出的步驟順序是邏輯步驟而非嚴(yán)格的時間先后順序,在實時通信中,往往系統(tǒng)是一邊編碼壓縮一邊發(fā)送的,上述步驟在時間上可能交疊在一起。
在實際應(yīng)用中,上述策略存在以下問題網(wǎng)絡(luò)情況的變化不穩(wěn)定,通信質(zhì)量波動較大,丟包等傳輸錯誤發(fā)生情況也有所變化,對于固定的Tornado碼保護(hù)策略難以適應(yīng)網(wǎng)絡(luò)變化,或者由于通信條件惡劣而保護(hù)不足,造成媒體質(zhì)量退化甚至解碼系統(tǒng)崩潰;或者由于通信條件改善而保護(hù)過度,造成編碼、處理、傳輸資源浪費(fèi),開銷過大而降低系統(tǒng)效率。
造成這種情況的主要原因在于,用固定的糾刪碼策略保護(hù)視頻通信流,無法適應(yīng)網(wǎng)絡(luò)通信變化。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種基于H.264的視頻傳輸保護(hù)方法,使得視頻流保護(hù)策略能夠根據(jù)網(wǎng)絡(luò)通信情況自適應(yīng)調(diào)整,以達(dá)到高效率、高可靠性的視頻傳輸效果。
為實現(xiàn)上述目的,本發(fā)明提供了一種基于H.264的視頻傳輸保護(hù)方法,包含以下步驟,
A發(fā)送端根據(jù)保護(hù)策略對視頻流數(shù)據(jù)進(jìn)行保護(hù),并將其發(fā)送給接收端;B所述接收端接收所述視頻流數(shù)據(jù),并統(tǒng)計通信質(zhì)量,將統(tǒng)計信息發(fā)回給所述發(fā)送端;C所述發(fā)送端根據(jù)所述統(tǒng)計信息調(diào)整所述保護(hù)策略。
其中,所述步驟B中,所述接收端根據(jù)接收到的所述視頻流數(shù)據(jù)的網(wǎng)絡(luò)抽象層單元序號,統(tǒng)計得到累計丟包率,作為所述統(tǒng)計信息,用于表征所述通信質(zhì)量;所述步驟C中,所述發(fā)送端根據(jù)所述累計丟包率調(diào)整所述保護(hù)策略。
此外,所述步驟B中,所述接收端根據(jù)接收到的所述視頻流數(shù)據(jù)的網(wǎng)絡(luò)抽象層單元序號,統(tǒng)計丟失的所述網(wǎng)絡(luò)抽象層單元序號,作為所述統(tǒng)計信息,發(fā)回給所述發(fā)送端;所述步驟C中,所述發(fā)送端根據(jù)所述丟失的網(wǎng)絡(luò)抽象層單元序號,計算得到所述累計丟包率,用于表征所述通信質(zhì)量,調(diào)整所述保護(hù)策略。
此外,所述步驟B中,所述接收端定義擴(kuò)展補(bǔ)充增強(qiáng)消息,用于承載所述統(tǒng)計信息,將所述統(tǒng)計信息填入所述擴(kuò)展補(bǔ)充增強(qiáng)消息,發(fā)回給所述發(fā)送端。
此外,所述發(fā)送端設(shè)置不同等級的保護(hù)策略系列,在所述步驟C中根據(jù)所述統(tǒng)計信息選擇使用相應(yīng)等級的所述保護(hù)策略。
此外,所述步驟B中,所述接收端根據(jù)接收到的所述視頻流數(shù)據(jù)的網(wǎng)絡(luò)抽象層單元序號,統(tǒng)計得到丟失視頻流數(shù)據(jù)的位置信息,并將其發(fā)回給所述發(fā)送端;所述步驟C中,所述發(fā)送端根據(jù)所述丟失視頻流數(shù)據(jù)的位置信息,重新發(fā)送所述丟失視頻流數(shù)據(jù)給所述接收端。
此外,所述擴(kuò)展補(bǔ)充增強(qiáng)消息的載荷類型定義為用于承載所述統(tǒng)計信息。
此外,所述保護(hù)策略系列包含第一保護(hù)策略系列,用于保護(hù)所述視頻流數(shù)據(jù)的關(guān)鍵數(shù)據(jù);第二保護(hù)策略系列,用于保護(hù)所述視頻流數(shù)據(jù)的非關(guān)鍵數(shù)據(jù)。
此外,所述發(fā)送端設(shè)置累計丟包率閾值序列,在所述步驟C中,根據(jù)所述接收端發(fā)回的所述累計丟包率與所述累計丟包率閾值序列的對比關(guān)系,選擇使用相應(yīng)等級的所述保護(hù)策略。
此外,所述保護(hù)策略采用Tornado糾刪碼,不同能力的保護(hù)策略對應(yīng)于具有不同參數(shù)的Tornado碼通過比較可以發(fā)現(xiàn),本發(fā)明的技術(shù)策略與現(xiàn)有技術(shù)的主要區(qū)別在于,通過接收端統(tǒng)計通信質(zhì)量并反饋給發(fā)送端,由發(fā)送端做自適應(yīng)調(diào)整保護(hù)策略;接收端通過NALU序號的不連續(xù)情況統(tǒng)計累計丟包率和丟失數(shù)據(jù)的位置信息;接收端通過擴(kuò)展SEI消息反饋統(tǒng)計信息給發(fā)送端;發(fā)送端設(shè)定兩組保護(hù)策略系列分別保護(hù)關(guān)鍵數(shù)據(jù)和非關(guān)鍵數(shù)據(jù),并根據(jù)反饋的累計丟包率,選擇合適等級的保護(hù)策略;接收端將丟失數(shù)據(jù)位置信息發(fā)回給發(fā)送端,發(fā)送端重發(fā)這些丟失數(shù)據(jù)。
這種技術(shù)策略上的區(qū)別,帶來了較為明顯的有益效果,即統(tǒng)計、反饋、調(diào)整機(jī)制能夠準(zhǔn)確、及時地適應(yīng)網(wǎng)絡(luò)傳輸需求,提高保護(hù)能力,提高系統(tǒng)效率和可靠性;根據(jù)NALU序號來進(jìn)行統(tǒng)計,不但能保證統(tǒng)計信息精確無誤,而且節(jié)省系統(tǒng)資源;用擴(kuò)展SEI消息傳遞可以節(jié)省開銷、簡化機(jī)制,且保證系統(tǒng)兼容性;
兩種不同通信需求的數(shù)據(jù)進(jìn)行分別保護(hù),提高了系統(tǒng)效率;丟失數(shù)據(jù)的重發(fā)機(jī)制有利于提高視頻流通信的可靠性和服務(wù)質(zhì)量。
圖1是Tornado糾刪碼原理示意圖;圖2是根據(jù)本發(fā)明第一實施例的基于H.264的視頻傳輸保護(hù)方法流程圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)策略和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)描述。
根據(jù)現(xiàn)有技術(shù)對于網(wǎng)絡(luò)通信狀況無法自適應(yīng)調(diào)整的問題,本發(fā)明給出一種統(tǒng)計當(dāng)前通信狀況并自適應(yīng)調(diào)整保護(hù)策略的自適應(yīng)保護(hù)的視頻傳輸方法。首先按照保護(hù)方法性能影響,給出不同參數(shù)配置,設(shè)置保護(hù)能力不同的多等級保護(hù)策略,用于在不同通信狀況下被選用于進(jìn)行高效可靠的保護(hù);其次,在接收端根據(jù)通信情況統(tǒng)計網(wǎng)絡(luò)狀況、通信質(zhì)量,并將其發(fā)回給發(fā)送端;最后由發(fā)送端根據(jù)發(fā)回的通信質(zhì)量統(tǒng)計信息進(jìn)行調(diào)整,選擇最合適的保護(hù)策略等級。
本發(fā)明的關(guān)鍵還在于統(tǒng)計通信質(zhì)量的方法及發(fā)回統(tǒng)計信息的渠道。利用H.264 NALU的序號丟失情況可以統(tǒng)計丟包率及其位置等信息,并通過定義NALU中凈荷部分的擴(kuò)展SEI消息結(jié)構(gòu),用于承載該統(tǒng)計信息,從接收端傳送統(tǒng)計數(shù)據(jù)到發(fā)送端。
圖2示出了本發(fā)明的第一實施例的視頻傳輸方法流程,大致由四個步驟組成
如圖2所示,在步驟201中,發(fā)送端對待發(fā)送的視頻流數(shù)據(jù)進(jìn)行Tornado糾刪碼保護(hù),劃分?jǐn)?shù)據(jù)節(jié)點(diǎn),計算產(chǎn)生校驗節(jié)點(diǎn),一起發(fā)送給接收端。
本發(fā)明的第一實施例采用Tornado糾刪碼作為保護(hù)策略,即根據(jù)前述Tornado糾刪碼的編碼解碼方法來對視頻流數(shù)據(jù)進(jìn)行保護(hù)。Tornado糾刪碼需要設(shè)定參數(shù)有數(shù)據(jù)節(jié)點(diǎn)數(shù)目、校驗節(jié)點(diǎn)數(shù)目、遞縮比率、校驗節(jié)點(diǎn)層數(shù)、用于計算校驗節(jié)點(diǎn)的各級二部圖。在視頻流通信過程中,發(fā)送端將視頻流數(shù)據(jù)分割為數(shù)據(jù)節(jié)點(diǎn),然后按照Tornado編碼方法產(chǎn)生校驗節(jié)點(diǎn),一起發(fā)送給接收端;接收端則按照Tornado解碼方法進(jìn)行糾錯,獲得視頻流數(shù)據(jù)。
由于實際IP網(wǎng)絡(luò)帶寬等因素是經(jīng)常變化而不穩(wěn)定的,因此固定的保護(hù)策略將帶來低效率或者高誤碼率等問題,因此本發(fā)明的第一實施例預(yù)先設(shè)定了保護(hù)力度不同等級的保護(hù)策略系列,分別用于在不同通信質(zhì)量等級情況下保護(hù)視頻流數(shù)據(jù)??梢?,不同等級的保護(hù)策略可以適應(yīng)網(wǎng)絡(luò)通信質(zhì)量的變化,不但能夠滿足信道劣化情況下的保護(hù)力度要求,而且能夠在信號改善情況下適當(dāng)調(diào)低保護(hù)力度,以減少系統(tǒng)開銷,節(jié)約處理、帶寬資源。
在本發(fā)明的第一實施例中,為了給定不同等級保護(hù)策略,需要設(shè)定不同參數(shù)的Tornado糾刪碼。根據(jù)前述影響Tornado糾刪碼保護(hù)性能的參數(shù)主要有數(shù)據(jù)節(jié)點(diǎn)數(shù)目、校驗節(jié)點(diǎn)數(shù)目及二部圖兩側(cè)節(jié)點(diǎn)度向量的隨機(jī)分布,為簡單起見,不同能力的Tornado碼,一般不會有統(tǒng)一的二部圖的,采用不同的數(shù)據(jù)節(jié)點(diǎn)數(shù)目和校驗節(jié)點(diǎn)數(shù)目來給出不同保護(hù)力度的Tornado糾刪碼保護(hù)策略。根據(jù)Tornado糾刪碼原理,不同數(shù)據(jù)節(jié)點(diǎn)數(shù)目和校驗節(jié)點(diǎn)數(shù)目即能確定不同碼率或冗余率的Tornado糾刪碼,從而給出不同的保護(hù)力度和系統(tǒng)開銷。
熟悉本領(lǐng)域的技術(shù)人員可以理解,本發(fā)明可以采用除Tornado糾刪碼以外的其他方法作為保護(hù)策略,按策略參數(shù)的不同而設(shè)定不同的保護(hù)等級,以供選擇調(diào)整保護(hù)力度,達(dá)到按通信情況進(jìn)行自適應(yīng)保護(hù)的發(fā)明目的,而不影響本發(fā)明的實質(zhì)和范圍。
在步驟202中,接收端接收數(shù)據(jù)并進(jìn)行Tornado糾刪碼解碼得到視頻流數(shù)據(jù),同時根據(jù)數(shù)據(jù)丟失情況進(jìn)行統(tǒng)計,得到統(tǒng)計信息表征通信質(zhì)量。
發(fā)送端需要根據(jù)通信質(zhì)量狀況來進(jìn)行保護(hù)策略調(diào)整,因此需要對傳輸情況進(jìn)行統(tǒng)計,在本發(fā)明的第一實施例中,接收端根據(jù)H.264視頻流程數(shù)據(jù)的NALU的序列號來統(tǒng)計傳輸情況。在基于H.264雙向視頻通信中,通信系統(tǒng)的各個終端都既有編碼器、又有解碼器。而NALU是序列編號的,即所有發(fā)送端發(fā)送出去的NALU具有統(tǒng)一的序列編號,因此,接收端可以根據(jù)收到NALU的序號,判斷是否有NALU丟失。如果有NALU序號不連續(xù)就說明存在NALU丟失,中斷的NALU序號就是丟失NALU的序號,其個數(shù)就是丟失的NALU數(shù)目。經(jīng)過一段時間的累計,即可計算得到該段時間內(nèi)丟失的NALU的總數(shù)目,再對該時間段內(nèi)所有NALU數(shù)目進(jìn)行歸一化,即可得到累計丟包率(Accumulated Lost Slice Rate,簡稱″ALSR″)。當(dāng)然,接收端也可以將丟包信息直接發(fā)回給發(fā)送端,由發(fā)送端進(jìn)行統(tǒng)計。采用NALU序號來進(jìn)行統(tǒng)計,不但能保證統(tǒng)計信息精確無誤,而且直接利用現(xiàn)有數(shù)據(jù)信息,不需要額外的承載開銷。
接著在步驟203中,接收端將統(tǒng)計信息以及其他數(shù)據(jù)丟失信息通過擴(kuò)展SEI消息發(fā)回發(fā)送端。
在接收端統(tǒng)計得到關(guān)于傳輸情況的統(tǒng)計信息后,需要發(fā)回給發(fā)送端,在本發(fā)明的第一實施例中,定義了擴(kuò)展SEI消息結(jié)構(gòu),專門用于承載從接收端發(fā)回的傳輸情況統(tǒng)計信息。接收端在完成統(tǒng)計后,將該信息寫入專門定義的擴(kuò)展SEI消息體中,然后寫入該終端發(fā)回的編碼碼流的SEI域中,發(fā)回發(fā)送端。發(fā)送端收到該SEI消息后,即可直接得知統(tǒng)計信息,或者統(tǒng)計得到ALSR,從而建立發(fā)送端對于網(wǎng)絡(luò)丟包率的真實感知機(jī)制。
如前所述SEI消息也由H.264碼流的基本單位NALU所承載,每個SEI域包含一個或多個SEI消息,而SEI消息又由SEI頭信息和SEI有效載荷組成。SEI頭信息包括兩個碼字載荷類型和載荷大小。其中載荷類型的長度不一定,比如類型在0到255之間時用一個字節(jié)表示,當(dāng)類型在256到511之間時用兩個字節(jié)0xFF00到0xFFFE表示,依次類推,這樣用戶可以自定義任意多種載荷類型。在現(xiàn)有H.264標(biāo)準(zhǔn)中,類型0到類型18標(biāo)準(zhǔn)中已定義為特定的信息,如緩存周期、圖像定時等。由此可見H.264中定義的SEI域可根據(jù)需求存放足夠多的用戶自定義信息。在本發(fā)明的第一實施例中,在預(yù)留的SEI載荷類型中定義一種用于承載統(tǒng)計信息的擴(kuò)展SEI消息。
如前所述,由于SEI消息是附屬消息,有無SEI消息不影響正常的視頻通信,因此本發(fā)明給出的擴(kuò)展SEI消息并不影響現(xiàn)有的視頻流通信,具有通用性。即如果通信雙方終端都支持本發(fā)明策略,則可以利用SEI消息傳遞丟包統(tǒng)計數(shù)據(jù),從而實施不同能力等級的自適應(yīng)保護(hù);如果有一方不支持,也不會影響正常的通信??梢姡远x的擴(kuò)展SEI消息不會影響基于H.264視頻通信系統(tǒng)的兼容性。另外,采用SEI消息來傳遞丟包統(tǒng)計數(shù)據(jù)的另外一個好處是節(jié)省開銷,SEI是H.264碼流的一部分,利用H.264碼流本身來承載丟包統(tǒng)計數(shù)據(jù),不需要開辟和維護(hù)額外的信道,傳輸高效、實現(xiàn)簡單。
最后在步驟204中,發(fā)送端根據(jù)發(fā)回的統(tǒng)計信息進(jìn)行Tornado糾刪碼的調(diào)整,使用更加合適當(dāng)前傳輸情況的保護(hù)策略。
本發(fā)明的第一實施例最后發(fā)送端將要根據(jù)統(tǒng)計信息來調(diào)整保護(hù)策略,即選擇合適等級的保護(hù)策略。這里發(fā)送端還要預(yù)先設(shè)定對應(yīng)于不同保護(hù)等級的判斷閾值系列,設(shè)定進(jìn)入各個級別的閾值,然后根據(jù)ALSR所落在閾值選擇其相應(yīng)的等級。由此建立的傳輸情況的統(tǒng)計、反饋、調(diào)整機(jī)制能夠準(zhǔn)確、及時地適應(yīng)網(wǎng)絡(luò)傳輸需求,提高保護(hù)能力。
在本發(fā)明的第二實施例中,在上述第一實施例的基礎(chǔ)上,對不同重要性的數(shù)據(jù)采用了不同的保護(hù)策略系列??紤]到關(guān)鍵數(shù)據(jù)和非關(guān)鍵數(shù)據(jù)的保護(hù)力度要求不同,本發(fā)明的第二實施例中,為了進(jìn)一步提高適應(yīng)度,設(shè)定了兩個不同的保護(hù)策略系列,分別用于保護(hù)關(guān)鍵數(shù)據(jù)和非關(guān)鍵數(shù)據(jù)。這樣,兩種不同通信需求的數(shù)據(jù),即可獨(dú)立處理,按適合各自需求的保護(hù)力度選擇保護(hù)策略,提高系統(tǒng)效率。
例如,用不同等級的Tornado碼作為保護(hù)策略系列,其保護(hù)能力等級用參數(shù)n、1表征,其中n表示數(shù)據(jù)節(jié)點(diǎn)數(shù),1表示校驗節(jié)點(diǎn)數(shù)。用TN(n+1,n)表示由參數(shù)n、1確定的Tornado碼保護(hù)策略。因此對應(yīng)于關(guān)鍵數(shù)據(jù)的保護(hù)策略系列為TNK(n0+10,n0),TNK(n1+11,n1),........,TNK(nL-1+1L-1,nL-1);同樣的對于非關(guān)鍵數(shù)據(jù)的保護(hù)策略系列為TNNK(n0+10,n0),TNNK(n1+11,n1),........,TNNK(nL-1+1L-1,nL-1)。設(shè)定閾值系列0<G1,G2,......,GL-1<1,即用于判斷選擇保護(hù)等級。發(fā)送端在調(diào)整保護(hù)策略時,根據(jù)ALSR和閾值G1,G2,......,GL-1的關(guān)系,進(jìn)行如下操作如果0<A1SR<G1,則采用TNK(n0+10,n0)對于關(guān)鍵數(shù)據(jù)進(jìn)行保護(hù),采用TNNK(n0+10,n0)對于非關(guān)鍵數(shù)據(jù)進(jìn)行保護(hù);如果Gi<A1SR<Gi+1,i=1,2,.....,L-2,則采用TNK(ni+1i,ni)對于關(guān)鍵數(shù)據(jù)進(jìn)行保護(hù),采用TNNK(ni+1i,ni)對于非關(guān)鍵數(shù)據(jù)進(jìn)行保護(hù);如果GL-1<A1SR<1,則采用TNK(nL-1+1L-1,nL-1)對于關(guān)鍵數(shù)據(jù)進(jìn)行保護(hù),采用TNNK(nL-1+1L-1,nL-1)對于非關(guān)鍵數(shù)據(jù)進(jìn)行保護(hù)。
在本發(fā)明的第三實施例中,在上述第二實施例的基礎(chǔ)上,發(fā)送端還根據(jù)接收端發(fā)回的丟失數(shù)據(jù)信息,重新發(fā)送這些信息。接收端在統(tǒng)計丟失的NALU信息時,同時獲得丟失的NALU所對應(yīng)包含的圖像幀的位置信息,該信息包含所在幀的序號及幀中的位置。接收端將位置信息發(fā)回給發(fā)送端,發(fā)送端即可定位到對應(yīng)的視頻流數(shù)據(jù),并重新發(fā)送。在實時視頻通信中,延時太長的視頻流數(shù)據(jù)已經(jīng)失去了價值,但在某些業(yè)務(wù)需求情況下或者某種機(jī)制下,具有一定延時的數(shù)據(jù)仍然具有價值,比如在緩沖范圍較大的視頻通信中,只要延時的視頻流數(shù)據(jù)仍然落在緩沖區(qū)內(nèi),這些數(shù)據(jù)就可以用于避免視頻流播放的中斷??梢姷谌龑嵤├薪o出的重發(fā)機(jī)制對于提高視頻流通信的可靠性和服務(wù)質(zhì)量具有重要價值的。
熟悉本領(lǐng)域的技術(shù)人員可以理解,在本發(fā)明的其他實施例中,接收端可以根據(jù)接收到的視頻流數(shù)據(jù)的除NALU序號以外的其他信息來統(tǒng)計得到可以表征通信質(zhì)量的統(tǒng)計量,接收端也可以采用除SEI以外的其他承載域來傳遞統(tǒng)計信息,發(fā)送端得到通信質(zhì)量統(tǒng)計反饋后即可進(jìn)行自適應(yīng)調(diào)整,實現(xiàn)發(fā)明目的,而不影響本發(fā)明的實質(zhì)和范圍。
權(quán)利要求
1.一種基于H.264的視頻傳輸保護(hù)方法,其特征在于,包含以下步驟,A發(fā)送端根據(jù)保護(hù)策略對視頻流數(shù)據(jù)進(jìn)行保護(hù),并將其發(fā)送給接收端;B所述接收端接收所述視頻流數(shù)據(jù),并統(tǒng)計通信質(zhì)量,將統(tǒng)計信息發(fā)回給所述發(fā)送端;C所述發(fā)送端根據(jù)所述統(tǒng)計信息調(diào)整所述保護(hù)策略。
2.根據(jù)權(quán)利要求1所述的基于H.264的視頻傳輸保護(hù)方法,其特征在于,所述步驟B中,所述接收端根據(jù)接收到的所述視頻流數(shù)據(jù)的網(wǎng)絡(luò)抽象層單元序號,統(tǒng)計得到累計丟包率,作為所述統(tǒng)計信息,用于表征所述通信質(zhì)量;所述步驟C中,所述發(fā)送端根據(jù)所述累計丟包率調(diào)整所述保護(hù)策略。
3.根據(jù)權(quán)利要求1所述的基于H.264的視頻傳輸保護(hù)方法,其特征在于,所述步驟B中,所述接收端根據(jù)接收到的所述視頻流數(shù)據(jù)的網(wǎng)絡(luò)抽象層單元序號,統(tǒng)計丟失的所述網(wǎng)絡(luò)抽象層單元序號,作為所述統(tǒng)計信息,發(fā)回給所述發(fā)送端;所述步驟C中,所述發(fā)送端根據(jù)所述丟失的網(wǎng)絡(luò)抽象層單元序號,計算得到所述累計丟包率,用于表征所述通信質(zhì)量,調(diào)整所述保護(hù)策略。
4.根據(jù)權(quán)利要求1至3中任一所述的基于H.264的視頻傳輸保護(hù)方法,其特征在于,所述步驟B中,所述接收端定義擴(kuò)展補(bǔ)充增強(qiáng)消息,用于承載所述統(tǒng)計信息,將所述統(tǒng)計信息填入所述擴(kuò)展補(bǔ)充增強(qiáng)消息,發(fā)回給所述發(fā)送端。
5.根據(jù)權(quán)利要求1所述的基于H.264的視頻傳輸保護(hù)方法,其特征在于,所述發(fā)送端設(shè)置不同等級的保護(hù)策略系列,在所述步驟C中根據(jù)所述統(tǒng)計信息選擇使用相應(yīng)等級的所述保護(hù)策略。
6.根據(jù)權(quán)利要求1所述的基于H.264的視頻傳輸保護(hù)方法,其特征在于,所述步驟B中,所述接收端根據(jù)接收到的所述視頻流數(shù)據(jù)的網(wǎng)絡(luò)抽象層單元序號,統(tǒng)計得到丟失視頻流數(shù)據(jù)的位置信息,并將其發(fā)回給所述發(fā)送端;所述步驟C中,所述發(fā)送端根據(jù)所述丟失視頻流數(shù)據(jù)的位置信息,重新發(fā)送所述丟失視頻流數(shù)據(jù)給所述接收端。
7.根據(jù)權(quán)利要求4所述的基于H.264的視頻傳輸保護(hù)方法,其特征在于,所述擴(kuò)展補(bǔ)充增強(qiáng)消息的載荷類型定義為用于承載所述統(tǒng)計信息。
8.根據(jù)權(quán)利要求5所述的基于H.264的視頻傳輸保護(hù)方法,其特征在于,所述保護(hù)策略系列包含第一保護(hù)策略系列,用于保護(hù)所述視頻流數(shù)據(jù)的關(guān)鍵數(shù)據(jù);第二保護(hù)策略系列,用于保護(hù)所述視頻流數(shù)據(jù)的非關(guān)鍵數(shù)據(jù)。
9.根據(jù)權(quán)利要求2、3、5中任一權(quán)利要求所述的基于H.264的視頻傳輸保護(hù)方法,其特征在于,所述發(fā)送端設(shè)置累計丟包率閾值序列,在所述步驟C中,根據(jù)所述接收端發(fā)回的所述累計丟包率與所述累計丟包率閾值序列的對比關(guān)系,選擇使用相應(yīng)等級的所述保護(hù)策略。
10.根據(jù)權(quán)利要求5或8所述的基于H.264的視頻傳輸保護(hù)方法,其特征在于,所述保護(hù)策略采用Tornado糾刪碼,不同能力的保護(hù)策略對應(yīng)于具有不同參數(shù)的Tornado碼。
全文摘要
本發(fā)明涉及視頻傳輸保護(hù)技術(shù),公開了一種基于H.264的視頻傳輸保護(hù)方法,使得視頻流保護(hù)策略能夠根據(jù)網(wǎng)絡(luò)通信情況自適應(yīng)調(diào)整,以達(dá)到高效率、高可靠性的視頻傳輸效果。本發(fā)明中,通過接收端統(tǒng)計通信質(zhì)量并反饋給發(fā)送端,由發(fā)送端做自適應(yīng)調(diào)整保護(hù)策略;接收端通過NALU序號的不連續(xù)情況統(tǒng)計累計丟包率和丟失數(shù)據(jù)的位置信息;接收端通過擴(kuò)展SEI消息反饋統(tǒng)計信息給發(fā)送端;發(fā)送端設(shè)定兩組保護(hù)策略系列分別保護(hù)關(guān)鍵數(shù)據(jù)和非關(guān)鍵數(shù)據(jù),并根據(jù)反饋的累計丟包率,選擇合適等級的保護(hù)策略;接收端將丟失數(shù)據(jù)位置信息發(fā)回給發(fā)送端,發(fā)送端重發(fā)這些丟失數(shù)據(jù)。
文檔編號H04N7/26GK1845611SQ20051003412
公開日2006年10月11日 申請日期2005年4月8日 優(yōu)先權(quán)日2005年4月8日
發(fā)明者羅忠, 宋彬, 周寧兆, 常義林 申請人:華為技術(shù)有限公司