国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      無線視頻傳輸方法和系統(tǒng)的制作方法

      文檔序號(hào):7701726閱讀:220來源:國(guó)知局
      專利名稱:無線視頻傳輸方法和系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及視頻傳輸技術(shù)領(lǐng)域,特別涉及無線視頻傳輸方法和系統(tǒng)。

      背景技術(shù)
      隨著網(wǎng)絡(luò)多媒體的廣泛應(yīng)用,無線視頻技術(shù)已經(jīng)逐漸成為視頻傳輸領(lǐng)域里的一個(gè)非常重要的組成部分。視頻流的海量數(shù)據(jù)與無線信道帶寬之間的矛盾對(duì)無線傳輸技術(shù)提出了新的要求。
      在無線通信中,無線信道的衰落是可靠通信中需要解決的關(guān)鍵問題。現(xiàn)有技術(shù)一中的基于多天線陣列的多輸入多輸出技術(shù)(MIMO,Multiple-Input and Multiple-Output)技術(shù),很好地利用了空域復(fù)用和空域分集的特性,具有很好的抗衰落的特性。在對(duì)現(xiàn)有技術(shù)一進(jìn)行分析后,發(fā)明人發(fā)現(xiàn),在移動(dòng)終端和無線傳感器體積的限制下,MIMO技術(shù)對(duì)于天線空間位置的要求使得其在移動(dòng)無線視頻傳輸中的應(yīng)用受到了局限。
      現(xiàn)有技術(shù)二中的基于中繼的協(xié)作通信能夠?qū)卧O(shè)備MIMO系統(tǒng)轉(zhuǎn)化為分布式天線陣列,即單天線(或多天線)的移動(dòng)終端,可以通過相互協(xié)作以構(gòu)成虛擬MIMO。這樣就以分布式的形式在多個(gè)終端間實(shí)現(xiàn)了空域復(fù)用和協(xié)作分集。協(xié)同通信的一種實(shí)現(xiàn)方式稱為壓縮-轉(zhuǎn)發(fā)(CF,Compress-and-Forward)模式,其最典型的實(shí)現(xiàn)方法是中繼使用懷納-澤夫(Wyner-Ziv)編碼來壓縮接收到的信號(hào),并轉(zhuǎn)發(fā)給接收端。在對(duì)現(xiàn)有技術(shù)二進(jìn)行分析后,發(fā)明人發(fā)現(xiàn),盡管CF模式下的協(xié)同傳輸能夠?yàn)闊o線視頻傳輸提供良好的空域復(fù)用和空域分集性能,但是在傳輸?shù)倪^程中仍然無法避免網(wǎng)絡(luò)擁塞和時(shí)延等問題。


      發(fā)明內(nèi)容
      本發(fā)明實(shí)施例提供了一種無線視頻傳輸方法和系統(tǒng)。所述技術(shù)方案如下 一種無線視頻傳輸方法,包括 S110、在信源、中繼以及接收端之間建立網(wǎng)絡(luò)連接; S120、所述信源將待發(fā)送幀經(jīng)過視頻編碼器編碼得到的數(shù)據(jù)包存入發(fā)送緩存等待發(fā)送;將待發(fā)送的每一個(gè)數(shù)據(jù)包分別作為當(dāng)前數(shù)據(jù)包,執(zhí)行 S130、所述信源在第一時(shí)隙向所述中繼和所述接收端廣播所述當(dāng)前數(shù)據(jù)包; S140、所述中繼在第二時(shí)隙將接收到的所述當(dāng)前數(shù)據(jù)包進(jìn)行編碼壓縮并進(jìn)行循環(huán)冗余校驗(yàn),獲得壓縮數(shù)據(jù)包; S150、所述中繼判斷如果將所述壓縮數(shù)據(jù)包發(fā)送到所述接收端,所述接收端對(duì)所述壓縮數(shù)據(jù)包進(jìn)行解碼的時(shí)刻,是否晚于所述壓縮數(shù)據(jù)包的播放時(shí)刻;如果是,執(zhí)行步驟S160,否則,執(zhí)行步驟S170; S160、所述中繼放棄發(fā)送所述壓縮數(shù)據(jù)包并返回步驟S130; S170、所述中繼將所述壓縮數(shù)據(jù)包轉(zhuǎn)發(fā)給所述接收端;所述接收端對(duì)所述壓縮數(shù)據(jù)包和所述當(dāng)前數(shù)據(jù)包進(jìn)行懷納-澤夫解碼,獲得信源在第一時(shí)隙發(fā)送的數(shù)據(jù)信息,并對(duì)所述數(shù)據(jù)信息進(jìn)行視頻解碼。
      進(jìn)一步地,步驟S120中,視頻編碼器采用H.264可伸縮擴(kuò)展版本標(biāo)準(zhǔn)進(jìn)行層次化雙向預(yù)測(cè)編碼幀編碼。
      在步驟S130之前,還包括 判斷所述接收端對(duì)所述當(dāng)前數(shù)據(jù)包解碼的最早時(shí)刻TS,arr是否晚于所述當(dāng)前數(shù)據(jù)包的播放時(shí)刻Tdisp; 如果是,則丟棄所述待發(fā)送幀剩余的尚未發(fā)送的所有數(shù)據(jù)包,以及與待發(fā)送幀位于同一圖像組中的丟棄幀的所有數(shù)據(jù)包,然后將所述發(fā)送緩存中的下一幀的每一個(gè)數(shù)據(jù)包分別作為當(dāng)前數(shù)據(jù)包,執(zhí)行步驟S130;其中,如果所述待發(fā)送幀為雙向預(yù)測(cè)編碼幀,則所述丟棄幀為播放時(shí)刻在所述待發(fā)送幀的前向預(yù)測(cè)幀和所述待發(fā)送幀的后向預(yù)測(cè)幀的播放時(shí)刻之間,并且編碼層次較所述待發(fā)送幀高的視頻幀;如果所述待發(fā)送幀為幀內(nèi)編碼幀,則所述丟棄幀為所述待發(fā)送幀所在圖像組除所述待發(fā)送幀以外的全部視頻幀;如果所述待發(fā)送幀為前向預(yù)測(cè)編碼幀,則所述丟棄幀為所述待發(fā)送幀所在圖像組除幀內(nèi)編碼幀和所述待發(fā)送幀外的全部視頻幀; 否則執(zhí)行步驟S130。
      所述接收端對(duì)所述當(dāng)前數(shù)據(jù)包解碼的最早時(shí)刻TS,arr的計(jì)算式為TS,arr=TS+T′trans+Tdecode,其中TS為信源發(fā)送所述當(dāng)前數(shù)據(jù)包的時(shí)刻,T′trans為所述當(dāng)前數(shù)據(jù)包從信源到接收端的最小傳輸時(shí)延,Tdecode為所述當(dāng)前數(shù)據(jù)包的解碼時(shí)延; 設(shè)當(dāng)前待發(fā)送幀為第j幀,在接收到所述當(dāng)前待發(fā)送幀之前接收端共播放了NGOP個(gè)圖像組,則在所述接收端,所述當(dāng)前數(shù)據(jù)包的播放時(shí)刻Tdisp的計(jì)算式為Tdisp=Tbuffer+j/Rf+NGOP×M/Rf,其中Tbuffer為緩存播放時(shí)延,Rf為視頻播放的幀率,M為一個(gè)圖像組中的幀數(shù)。
      所述步驟S140中的所述編碼壓縮為懷納-澤夫編碼壓縮。
      所述步驟S150中,所述接收端對(duì)所述壓縮數(shù)據(jù)包進(jìn)行解碼的時(shí)刻TR,arr為TR,arr=TR+T″trans+T′decode,其中,TR為所述中繼發(fā)送所述壓縮數(shù)據(jù)包的時(shí)刻,T″trans為所述壓縮數(shù)據(jù)包從中繼到接收端的最小傳輸時(shí)延,T′decode為所述壓縮數(shù)據(jù)包的解碼時(shí)延; 設(shè)當(dāng)前待發(fā)送幀為第j幀,在接收到所述當(dāng)前待發(fā)送幀之前接收端共播放了NGOP個(gè)圖像組,則所述壓縮數(shù)據(jù)包的播放時(shí)刻Tdisp為Tdisp=Tbuffer+j/Rf+NGOP×M/Rf,其中Tbuffer為緩存播放時(shí)延,Rf為視頻播放的幀率,M為一個(gè)圖像組中的幀數(shù)。
      所述中繼將所述壓縮數(shù)據(jù)包轉(zhuǎn)發(fā)給所述接收端;所述接收端對(duì)所述壓縮數(shù)據(jù)包和所述當(dāng)前數(shù)據(jù)包進(jìn)行懷納-澤夫解碼,獲得信源在第一時(shí)隙發(fā)送的數(shù)據(jù)信息,具體包括 所述中繼將所述壓縮數(shù)據(jù)包轉(zhuǎn)發(fā)給所述接收端; 所述接收端對(duì)所述壓縮數(shù)據(jù)包進(jìn)行循環(huán)冗余校驗(yàn),校驗(yàn)成功則所述接收端對(duì)所述壓縮數(shù)據(jù)包和所述當(dāng)前數(shù)據(jù)包進(jìn)行懷納-澤夫解碼,獲得信源在第一時(shí)隙發(fā)送的數(shù)據(jù)信息,并向所述信源和所述中繼發(fā)送接收確認(rèn)數(shù)據(jù)包; 如果循環(huán)冗余校驗(yàn)失敗或者接收端無法對(duì)所述壓縮數(shù)據(jù)包進(jìn)行正確的懷納-澤夫解碼,則所述接收端根據(jù)所述壓縮數(shù)據(jù)包的重傳次數(shù),向所述中繼或所述信源發(fā)送自動(dòng)重傳請(qǐng)求,重傳后對(duì)所述壓縮數(shù)據(jù)包的重傳次數(shù)加1。
      所述接收端根據(jù)所述壓縮數(shù)據(jù)包的重傳次數(shù),向所述中繼或所述信源發(fā)送自動(dòng)重傳請(qǐng)求,具體包括 當(dāng)所述重傳次數(shù)不大于預(yù)設(shè)的最大重傳次數(shù)時(shí),所述接收端向所述中繼發(fā)送自動(dòng)重傳請(qǐng)求,返回步驟S140; 當(dāng)所述重傳次數(shù)大于最大重傳次數(shù)時(shí),則所述接收端向所述信源發(fā)送自動(dòng)重傳請(qǐng)求,返回步驟S130。
      本發(fā)明實(shí)施例還提供了一種無線視頻傳輸系統(tǒng),包括信源、中繼以及接收端, 所述信源包括 存儲(chǔ)模塊,用于將待發(fā)送幀經(jīng)過視頻編碼器編碼得到的數(shù)據(jù)包存入發(fā)送緩存等待發(fā)送;將待發(fā)送的每一個(gè)數(shù)據(jù)包分別作為當(dāng)前數(shù)據(jù)包; 發(fā)送模塊,用于在第一時(shí)隙向所述中繼和所述接收端廣播所述當(dāng)前數(shù)據(jù)包; 所述中繼包括 編碼校驗(yàn)?zāi)K,用于在第二時(shí)隙將接收到的所述發(fā)送模塊發(fā)來的當(dāng)前數(shù)據(jù)包進(jìn)行編碼壓縮并進(jìn)行循環(huán)冗余校驗(yàn),獲得壓縮數(shù)據(jù)包; 判斷模塊,用于判斷如果將所述壓縮數(shù)據(jù)包發(fā)送到所述接收端,所述接收端對(duì)所述壓縮數(shù)據(jù)包進(jìn)行解碼的時(shí)刻,是否晚于所述壓縮數(shù)據(jù)包的播放時(shí)刻; 放棄模塊,用于當(dāng)所述判斷模塊的判斷結(jié)果為是時(shí),放棄發(fā)送所述壓縮數(shù)據(jù)包并觸發(fā)所述發(fā)送模塊工作; 轉(zhuǎn)發(fā)模塊,用于當(dāng)所述判斷模塊的判斷結(jié)果為否時(shí),將所述壓縮數(shù)據(jù)包轉(zhuǎn)發(fā)給所述接收端; 所述接收端,用于對(duì)所述壓縮數(shù)據(jù)包和所述當(dāng)前數(shù)據(jù)包進(jìn)行懷納-澤夫解碼,獲得信源在第一時(shí)隙發(fā)送的數(shù)據(jù)信息,并對(duì)所述數(shù)據(jù)信息進(jìn)行視頻解碼。
      進(jìn)一步地,所述信源還包括 信源判斷模塊,用于在第一時(shí)隙向所述中繼和所述接收端廣播所述當(dāng)前數(shù)據(jù)包之前,判斷所述接收端對(duì)所述當(dāng)前數(shù)據(jù)包解碼的最早時(shí)刻Tarr是否晚于所述當(dāng)前數(shù)據(jù)包的播放時(shí)刻Tdisp; 第一執(zhí)行模塊,用于當(dāng)所述信源判斷模塊的判斷結(jié)果為是時(shí),丟棄所述待發(fā)送幀剩余的尚未發(fā)送的所有數(shù)據(jù)包,以及與所述待發(fā)送幀位于同一圖像組中的丟棄幀的所有數(shù)據(jù)包,然后將所述發(fā)送緩存中的下一幀數(shù)據(jù)中的每一個(gè)數(shù)據(jù)包分別作為當(dāng)前數(shù)據(jù)包,觸發(fā)所述發(fā)送模塊工作;其中,如果所述待發(fā)送幀為雙向預(yù)測(cè)編碼幀,則所述丟棄幀為播放時(shí)刻在所述待發(fā)送幀的前向預(yù)測(cè)幀和所述待發(fā)送幀的后向預(yù)測(cè)幀的播放時(shí)刻之間,并且編碼層次較所述待發(fā)送幀高的視頻幀;如果所述待發(fā)送幀為幀內(nèi)編碼幀,則所述丟棄幀為所述待發(fā)送幀所在圖像組除所述待發(fā)送幀以外的全部視頻幀;如果所述待發(fā)送幀為前向預(yù)測(cè)編碼幀,則所述丟棄幀為所述待發(fā)送幀所在圖像組除幀內(nèi)編碼幀和所述待發(fā)送幀外的全部視頻幀; 第二執(zhí)行模塊,用于當(dāng)所述信源判斷模塊的判斷結(jié)果為否時(shí),觸發(fā)所述發(fā)送模塊工作。
      所述接收端包括 校驗(yàn)?zāi)K,用于對(duì)所述壓縮數(shù)據(jù)包進(jìn)行循環(huán)冗余校驗(yàn); 第一模塊,用于校驗(yàn)成功則對(duì)所述壓縮數(shù)據(jù)包和所述當(dāng)前數(shù)據(jù)包進(jìn)行懷納-澤夫解碼,獲得信源在第一時(shí)隙發(fā)送的數(shù)據(jù)信息,并向所述信源和所述中繼發(fā)送接收確認(rèn)數(shù)據(jù)包,對(duì)所述數(shù)據(jù)信息進(jìn)行視頻解碼; 第二模塊,用于如果所述校驗(yàn)?zāi)K校驗(yàn)失敗或者所述第一模塊無法對(duì)所述壓縮數(shù)據(jù)包進(jìn)行正確的懷納-澤夫解碼,則根據(jù)所述壓縮數(shù)據(jù)包的重傳次數(shù),向所述中繼或所述信源發(fā)送自動(dòng)重傳請(qǐng)求,重傳后對(duì)所述壓縮數(shù)據(jù)包的重傳次數(shù)加1。
      本發(fā)明實(shí)施例提供的技術(shù)方案的有益效果是將協(xié)同傳輸?shù)募夹g(shù)應(yīng)用于無線視頻傳輸,提高了視頻傳輸?shù)姆旨鲆?。同時(shí)本發(fā)明實(shí)施例還給出了實(shí)時(shí)傳輸中數(shù)據(jù)包的丟棄方法和基于CF模式下協(xié)同視頻傳輸?shù)淖詣?dòng)重傳請(qǐng)求策略,提高了視頻傳輸?shù)聂敯粜耘c實(shí)時(shí)性。



      圖1是本發(fā)明實(shí)施例提供的無線視頻傳輸方法的流程圖; 圖2是視頻編碼器層次化B幀編碼時(shí)域預(yù)測(cè)原理圖; 圖3是本發(fā)明實(shí)施例提供的無線視頻傳輸系統(tǒng)的示意圖。

      具體實(shí)施例方式 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
      本發(fā)明實(shí)施例的應(yīng)用環(huán)境如下用于無線視頻傳輸?shù)囊曨l序列采用CIF(標(biāo)準(zhǔn)化圖像格式,Common Intermediate Format)的名字為“mobile”的標(biāo)準(zhǔn)測(cè)試視頻序列;該CIF格式視頻序列的像素為352×288;解碼器采用H.264/SVC(Scalable Video Coding,可伸縮擴(kuò)展)標(biāo)準(zhǔn)的參考軟件JSVM(Joint Scalable Video Model,可伸縮視頻編碼);編碼器GOP(Group ofPictures,圖像組)的幀數(shù)為8;編碼的時(shí)域預(yù)測(cè)采用Hierarchical B(層次化雙向預(yù)測(cè)編碼幀,簡(jiǎn)稱層次化B幀)的方法,每一幀又按照FGS(Fine Granular Scalability,精細(xì)粒度可伸縮)方法將其分為一個(gè)BL(Base Layer,基本層)和至少一個(gè)EL(Enhancement Layer,提升層);信源和中繼的發(fā)送碼率均為256kbps(千比特每秒);每個(gè)發(fā)送時(shí)隙為0.5秒;每個(gè)數(shù)據(jù)包的解碼時(shí)延Tdecode=0.1秒;建立視頻通信連接后的初始緩存為10秒的視頻幀;視頻播放的幀率為每秒30幀;中繼最大重傳次數(shù)為5。每一個(gè)ACK包(接收成功確認(rèn)數(shù)據(jù)包)或NACK包(接收失敗確認(rèn)數(shù)據(jù)包)從接收端到中繼或到信源的反向傳輸?shù)臅r(shí)延均為TACK=0.001秒。本發(fā)明實(shí)施例以一幀分為一個(gè)BL和一個(gè)EL進(jìn)行說明。
      實(shí)施例一 本發(fā)明實(shí)施例提供了一種無線視頻傳輸方法,如圖1所示,包括 S110、在信源、中繼以及接收端之間建立無線協(xié)同網(wǎng)絡(luò)連接。
      S120、信源將待發(fā)送幀經(jīng)過視頻編碼器編碼得到的數(shù)據(jù)包存入發(fā)送緩存等待發(fā)送;將待發(fā)送的每一個(gè)數(shù)據(jù)包分別作為當(dāng)前數(shù)據(jù)包,執(zhí)行步驟S130。
      視頻編碼器采用H.264標(biāo)準(zhǔn)的可伸縮擴(kuò)展版本(H.264/SVC)進(jìn)行層次化B幀編碼,即視頻編碼器采用層次化B幀的時(shí)域預(yù)測(cè)結(jié)構(gòu)進(jìn)行編碼。Hierarchical B結(jié)構(gòu)定義了每個(gè)視頻幀的層次,如圖2所示在一個(gè)GOP中,第一幀(即幀內(nèi)編碼幀(I幀))和最后一幀(即前向預(yù)測(cè)編碼幀(P幀))為第0層;由第0層的I幀和P幀共同共同預(yù)測(cè)得到的雙向預(yù)測(cè)編碼幀(即B幀)為第1層;由第0層的I幀或P幀和第1層的B幀預(yù)測(cè)B幀的層次為第2層;由第2層B幀和第0層或者第1層的視頻幀預(yù)測(cè)得到的B幀稱為第3層,以此類推。在圖2中,每一個(gè)獨(dú)立的菱形(包括一個(gè)BL和至少一個(gè)EL)對(duì)應(yīng)視頻序列中的一個(gè)視頻幀,所有的視頻幀從左至右按照播放時(shí)間先后順序排列。信源將待發(fā)送幀經(jīng)過該視頻編碼器編碼得到的數(shù)據(jù)包存入發(fā)送緩存等待發(fā)送。根據(jù)層次化B幀編碼的知識(shí)可知,在該發(fā)送緩存中,同一個(gè)視頻幀(即待發(fā)送幀中的一幀)的數(shù)據(jù)包放在一起,而不同視頻幀的排放順序并非是按照視頻序列中的時(shí)間順序排列,是按照編碼的先后順序排列,也即排在最前面最先發(fā)送的是第0層的視頻幀,然后依次是第1層、第2層和第3層。
      S130、信源在第一時(shí)隙向中繼和接收端廣播當(dāng)前數(shù)據(jù)包。
      優(yōu)選地,本實(shí)施例在第一時(shí)隙(本實(shí)施例為0.01秒內(nèi))向中繼和接收端廣播當(dāng)前數(shù)據(jù)包之前,還包括 120b判斷所述接收端對(duì)所述當(dāng)前數(shù)據(jù)包解碼的最早時(shí)刻TS,arr是否晚于所述當(dāng)前數(shù)據(jù)包的播放時(shí)刻Tdisp。
      設(shè)整個(gè)視頻序列中某個(gè)GOP的第j(j=1,2,3,…)幀中某一層(BL或者EL)的第i個(gè)數(shù)據(jù)包mi(i=1,2,3,…)為當(dāng)前要發(fā)送的數(shù)據(jù)包。該層的所有數(shù)據(jù)包大小相同,都包含K比特。信源和中繼的發(fā)送碼率為每秒r比特(本實(shí)施例為256kbps(千比特每秒))。此時(shí)該數(shù)據(jù)包的發(fā)送時(shí)延為Ttrans=K/r。設(shè)一個(gè)GOP的幀數(shù)為M(本實(shí)施例中是8)。數(shù)據(jù)包mi所在的視頻層(上述第j幀)被編碼成L個(gè)數(shù)據(jù)包。視頻播放的幀率為Rf。
      設(shè)信源發(fā)送數(shù)據(jù)包mi的時(shí)刻為TSi,該當(dāng)前數(shù)據(jù)包的解碼時(shí)延為Tdecode。對(duì)于同一視頻層的數(shù)據(jù)包,其所在視頻層的解碼時(shí)延相同。在接收端,設(shè)其播放之初緩存的視頻幀的播放時(shí)延為Tbuffer。在接收到數(shù)據(jù)包mi所在的視頻幀之前,接收端共播放了NGOP個(gè)GOP。因此,數(shù)據(jù)包mi的最小傳輸時(shí)延為T′trans=(L-i+1)×Ttrans+(L-i+1)×TACK。其中,每一個(gè)ACK包或NACK包從接收端到中繼或到信源的反向傳輸?shù)臅r(shí)延均為TACK=0.001秒。
      接收端對(duì)當(dāng)前數(shù)據(jù)包mi解碼的最早時(shí)刻TS,arr的計(jì)算式為 而數(shù)據(jù)包mi期望的播放時(shí)刻為 120c如果是,則丟棄待發(fā)送幀剩余的尚未發(fā)送的所有數(shù)據(jù)包,以及與待發(fā)送幀位于同一圖像組中的丟棄幀的所有數(shù)據(jù)包,然后將發(fā)送緩存中的下一幀數(shù)據(jù)中的每一個(gè)數(shù)據(jù)包分別作為當(dāng)前數(shù)據(jù)包,執(zhí)行步驟S130。
      120d否則執(zhí)行步驟S130。
      其中,如果上述待發(fā)送幀為B幀,則丟棄幀為播放時(shí)刻在待發(fā)送幀的前向預(yù)測(cè)幀和待發(fā)送幀的后向預(yù)測(cè)幀的播放時(shí)刻之間,并且編碼層次較待發(fā)送幀高的視頻幀;如果上述待發(fā)送幀為I幀,則丟棄幀為待發(fā)送幀所在圖像組除待發(fā)送幀以外的全部視頻幀;如果上述待發(fā)送幀為P幀,則丟棄幀為待發(fā)送幀所在圖像組除I幀和待發(fā)送幀外的全部視頻幀。
      某一幀的預(yù)測(cè)幀指用來預(yù)測(cè)該幀的視頻幀。一般來講,雙向預(yù)測(cè)編碼幀的預(yù)測(cè)幀有兩幀。播放時(shí)刻位于該幀之前的預(yù)測(cè)幀為前向預(yù)測(cè)幀;播放時(shí)刻位于該幀之后的預(yù)測(cè)幀為后向預(yù)測(cè)幀。參見圖2,第二個(gè)“第2層”(以下簡(jiǎn)稱為A層)所在視頻幀,是由“第1層”所在視頻幀和最右面的“第0層”所在視頻幀共同預(yù)測(cè)得到的,則“第1層”所在視頻幀為A層所在視頻幀的前向預(yù)測(cè)幀;最右面的“第0層”所在視頻幀為A層所在視頻幀的后向預(yù)測(cè)幀。
      當(dāng)時(shí),信源丟棄上述第j幀剩余的尚未發(fā)送的所有數(shù)據(jù)包,以及與上述第j幀位于同一GOP中的丟棄幀的所有數(shù)據(jù)包。比如若當(dāng)前數(shù)據(jù)包mi位于圖2中A層所在視頻幀(該待發(fā)送幀為一個(gè)B幀),則由圖2分析可知,該待發(fā)送幀的前向預(yù)測(cè)幀為編碼層次為“第1層”的視頻幀;后向預(yù)測(cè)幀為最右面的編碼層次為“第0層”的視頻幀。本例中位于待發(fā)送幀的前向預(yù)測(cè)幀和待發(fā)送幀的后向預(yù)測(cè)幀的播放時(shí)刻之間,并且編碼層次較待發(fā)送幀高的為與待發(fā)送幀直接相鄰的編碼層次為“第3層”的視頻幀。若當(dāng)前數(shù)據(jù)包mi位于圖2中最左邊的“第0層”所在視頻幀(即該待發(fā)送幀為一個(gè)I幀),由上述可知,丟棄幀為待發(fā)送幀所在圖像組除待發(fā)送幀以外的全部視頻幀。假設(shè)當(dāng)前數(shù)據(jù)包mi位于圖2中最右邊的“第0層”所在視頻幀(即該待發(fā)送幀為一個(gè)P幀),由上述可知,丟棄幀為待發(fā)送幀所在圖像組除I幀和待發(fā)送幀外的全部視頻幀。
      信源丟棄完數(shù)據(jù)包后,將發(fā)送緩存中的下一幀數(shù)據(jù)中的每一個(gè)數(shù)據(jù)包分別作為當(dāng)前數(shù)據(jù)包,執(zhí)行步驟S130。
      當(dāng)時(shí),直接執(zhí)行步驟S130。
      例如對(duì)于整個(gè)視頻序列中某個(gè)GOP的第3幀的BL,該層每個(gè)數(shù)據(jù)包大小相同,均為2048bits。此時(shí)每個(gè)數(shù)據(jù)包的發(fā)送時(shí)延為Ttrans=8×10-3秒。對(duì)于該BL的第100個(gè)數(shù)據(jù)包mi,信源發(fā)送該數(shù)據(jù)包的發(fā)送時(shí)刻為

      并且此次發(fā)送為該數(shù)據(jù)包的第一次發(fā)送。第3幀被分成兩層,該數(shù)據(jù)包所在層被編碼成300個(gè)數(shù)據(jù)包。接收端在接收到該數(shù)據(jù)包所在幀之前共播放了9個(gè)GOP。此時(shí)對(duì)該數(shù)據(jù)包的時(shí)延判斷包括以下步驟 該數(shù)據(jù)包最小的傳輸時(shí)延為T′trans=(L-i+1)×Ttrans+(L-i+1)×TACK≈1.8秒。其所在視頻層順利傳輸并解碼的“最早時(shí)刻”TS,arr100為
      而該視頻層期望的播放時(shí)刻為
      因?yàn)樗孕旁磿?huì)傳輸數(shù)據(jù)包mi。
      S140、中繼在第二時(shí)隙將接收到的當(dāng)前數(shù)據(jù)包進(jìn)行編碼壓縮并進(jìn)行循環(huán)冗余校驗(yàn)(CyclicRedundancy Check,CRC),獲得壓縮數(shù)據(jù)包。
      本步驟的編碼壓縮方法采用Wyner-Ziv編碼器實(shí)現(xiàn)。本實(shí)施例中,Wyner-Ziv編碼器采用均勻量化器和信道編碼的編碼器實(shí)現(xiàn),中繼壓縮編碼的碼率設(shè)為Rw=0.5。
      如果上一次中繼壓縮數(shù)據(jù)包的碼率為Rrelay=3/16,并且發(fā)送成功;同時(shí)該壓縮碼率可以在{1/16,2/16,…,15/16}中選擇(也即該壓縮碼率的調(diào)整步長(zhǎng)為1/16),則此時(shí)碼率調(diào)整為Rrelay=3/16-1/16=2/16。當(dāng)Rrelay=1/16時(shí),碼率不再降低。
      S150、中繼判斷如果將上述壓縮數(shù)據(jù)包發(fā)送到接收端,接收端對(duì)上述壓縮數(shù)據(jù)包進(jìn)行解碼的時(shí)刻,是否晚于上述壓縮數(shù)據(jù)包的播放時(shí)刻;如果是,執(zhí)行步驟S160,否則,執(zhí)行步驟S170。
      接收端對(duì)上述壓縮數(shù)據(jù)包進(jìn)行解碼的時(shí)刻TR,arr為TR,arr=TR+T″trans+T′decode,其中,TR為中繼發(fā)送上述壓縮數(shù)據(jù)包的時(shí)刻,T″trans為上述壓縮數(shù)據(jù)包的最小傳輸時(shí)延,T′decode為上述壓縮數(shù)據(jù)包的解碼時(shí)延。
      設(shè)當(dāng)前待發(fā)送幀為第j幀,在接收到當(dāng)前待發(fā)送幀之前接收端共播放了NGOP個(gè)圖像組,則上述壓縮數(shù)據(jù)包的播放時(shí)刻Tdisp為Tdisp=Tbuffer+j/Rf+NGOP×M/Rf,其中Tbuffer為緩存播放時(shí)延,Rf為視頻播放的幀率,M為一個(gè)圖像組中的幀數(shù)。
      S160、中繼放棄發(fā)送上述壓縮數(shù)據(jù)包并返回步驟S130。
      例如對(duì)于整個(gè)視頻序列中某個(gè)GOP的第3幀的BL,該層每個(gè)數(shù)據(jù)包大小相同,均為2048bits。此時(shí)每個(gè)數(shù)據(jù)包的發(fā)送時(shí)延為Ttrans=8×10-3秒。對(duì)于該BL的第100個(gè)數(shù)據(jù)包mi,設(shè)中繼即將發(fā)送該數(shù)據(jù)包mi的時(shí)刻為此次發(fā)送為中繼對(duì)該數(shù)據(jù)包的第5次發(fā)送。設(shè)該數(shù)據(jù)包所在幀被分成兩層(1個(gè)BL和1個(gè)EL),而該數(shù)據(jù)包所在層被編碼成300個(gè)數(shù)據(jù)包。接收端在接收到該數(shù)據(jù)包所在幀之前共播放了9個(gè)GOP。該數(shù)據(jù)包最小的傳輸時(shí)延為T″trans=(L-i+1)×Ttrans+(L-i+1)×TACK≈1.8秒。其所在視頻層順利傳輸并解碼的“最早時(shí)刻”TR,arr100為
      而該視頻層期望的播放時(shí)刻為
      因?yàn)椴⑶掖藭r(shí)中繼對(duì)于該數(shù)據(jù)包的傳輸次數(shù)已經(jīng)達(dá)到了最大重傳次數(shù)(本實(shí)施例為5次)的限制,因此執(zhí)行步驟S160,放棄發(fā)送上述壓縮數(shù)據(jù)包并返回步驟S130。
      S170、中繼將上述壓縮數(shù)據(jù)包轉(zhuǎn)發(fā)給接收端;接收端對(duì)上述壓縮數(shù)據(jù)包和當(dāng)前數(shù)據(jù)包進(jìn)行Wyner-Ziv解碼,獲得信源在第一時(shí)隙發(fā)送的數(shù)據(jù)信息,并對(duì)該數(shù)據(jù)信息進(jìn)行視頻解碼。
      當(dāng)接收端對(duì)上述壓縮數(shù)據(jù)包進(jìn)行解碼的時(shí)刻,早于上述壓縮數(shù)據(jù)包的播放時(shí)刻時(shí),中繼將上述壓縮數(shù)據(jù)包轉(zhuǎn)發(fā)給接收端。
      接收端對(duì)上述壓縮數(shù)據(jù)包進(jìn)行循環(huán)冗余校驗(yàn),校驗(yàn)成功則接收端對(duì)上述壓縮數(shù)據(jù)包和當(dāng)前數(shù)據(jù)包進(jìn)行Wyner-Ziv解碼,獲得信源在第一時(shí)隙發(fā)送的數(shù)據(jù)信息,并對(duì)該數(shù)據(jù)信息進(jìn)行視頻解碼,以及向信源和中繼發(fā)送ACK數(shù)據(jù)包; 如果循環(huán)冗余校驗(yàn)失敗或者接收端無法對(duì)上述壓縮數(shù)據(jù)包進(jìn)行正確的Wyner-Ziv解碼,則接收端根據(jù)上述壓縮數(shù)據(jù)包的重傳次數(shù),向中繼或信源發(fā)送自動(dòng)重傳請(qǐng)求(AutomaticRepeat-reQuest,ARQ),重傳后對(duì)上述壓縮數(shù)據(jù)包的重傳次數(shù)加1。
      具體地,接收端對(duì)中繼轉(zhuǎn)發(fā)的數(shù)據(jù)包進(jìn)行CRC-16校驗(yàn),校驗(yàn)成功則對(duì)兩個(gè)時(shí)隙接收到的數(shù)據(jù)包(上述壓縮數(shù)據(jù)包和當(dāng)前數(shù)據(jù)包)進(jìn)行Wyner-Ziv解碼,Wyner-Ziv解碼器采用信道編碼的解碼器實(shí)現(xiàn)。接收端通過Wyner-Ziv解碼獲得信源在第一個(gè)時(shí)隙發(fā)送的信息。接收端同時(shí)向信源和中繼發(fā)送ACK包。
      如果CRC-16校驗(yàn)不成功或者Wyner-Ziv解碼失敗,則向中繼或者信源發(fā)送ARQ,即同時(shí)向信源和中繼發(fā)送NACK包。當(dāng)該數(shù)據(jù)包當(dāng)前已經(jīng)進(jìn)行的重傳次數(shù)沒有超過最大重傳次數(shù)限制時(shí),接收端向中繼發(fā)送ARQ,請(qǐng)求重傳該數(shù)據(jù)包,返回步驟S140。如果超過最大重傳次數(shù)的限制,則接收端向信源發(fā)出ARQ,請(qǐng)求重傳該數(shù)據(jù)包,返回步驟S130。
      接收端對(duì)Wyner-Ziv解碼得到的數(shù)據(jù)進(jìn)行視頻解碼,如果缺少某個(gè)視頻層的數(shù)據(jù),則通過錯(cuò)誤隱藏等方法重建該視頻層。同時(shí)接收端請(qǐng)求信源發(fā)送緩存中的下一個(gè)數(shù)據(jù)包。
      本發(fā)明實(shí)施例將協(xié)同傳輸?shù)募夹g(shù)應(yīng)用于無線視頻傳輸,提高了視頻傳輸?shù)姆旨鲆妗M瑫r(shí)本發(fā)明實(shí)施例還給出了實(shí)時(shí)傳輸中數(shù)據(jù)包的丟棄方法和基于CF模式下協(xié)同視頻傳輸?shù)腁RQ策略,提高了視頻傳輸?shù)聂敯粜耘c實(shí)時(shí)性。
      實(shí)施例二 本發(fā)明實(shí)施例提供了一種無線視頻傳輸系統(tǒng),如圖3所示,包括信源301、中繼302以及接收端303, 信源301包括 存儲(chǔ)模塊,用于將待發(fā)送幀經(jīng)過視頻編碼器編碼得到的數(shù)據(jù)包存入發(fā)送緩存等待發(fā)送;將待發(fā)送的每一個(gè)數(shù)據(jù)包分別作為當(dāng)前數(shù)據(jù)包。
      視頻編碼器采用H.264標(biāo)準(zhǔn)的可伸縮擴(kuò)展版本(H.264/SVC)進(jìn)行層次化B幀編碼,即視頻編碼器采用層次化B幀的時(shí)域預(yù)測(cè)結(jié)構(gòu)進(jìn)行編碼。Hierarchical B結(jié)構(gòu)定義了每個(gè)視頻幀的層次,如圖2所示在一個(gè)GOP中,第一幀(即幀內(nèi)編碼幀(I幀))和最后一幀(即前向預(yù)測(cè)編碼幀(P幀))為第0層;由第0層的I幀和P幀共同共同預(yù)測(cè)得到的雙向預(yù)測(cè)編碼幀(即B幀)為第1層;由第0層的I幀或P幀和第1層的B幀預(yù)測(cè)B幀的編碼層次為第2層;由第2層B幀和第0層或者第1層的視頻幀預(yù)測(cè)得到的B幀稱為第3層,以此類推。在圖2中,每一個(gè)獨(dú)立的菱形(包括一個(gè)BL和至少一個(gè)EL)對(duì)應(yīng)視頻序列中的一個(gè)視頻幀,所有的視頻幀從左至右按照播放時(shí)間先后順序排列。信源將待發(fā)送幀經(jīng)過該視頻編碼器編碼得到的數(shù)據(jù)包存入發(fā)送緩存等待發(fā)送。根據(jù)層次化B幀編碼的知識(shí)可知,在該發(fā)送緩存中,同一個(gè)視頻幀(即待發(fā)送幀中的一幀)的數(shù)據(jù)包放在一起,而不同視頻幀的排放順序并非是按照視頻序列中的時(shí)間順序排列,是按照編碼的先后順序排列,也即排在最前面最先發(fā)送的是第0層的視頻幀,然后依次是第1層、第2層和第3層。
      發(fā)送模塊,用于在第一時(shí)隙向中繼302和接收端303廣播當(dāng)前數(shù)據(jù)包。
      進(jìn)一步地,信源301還包括 信源判斷模塊,用于在第一時(shí)隙向中繼302和接收端303廣播當(dāng)前數(shù)據(jù)包之前,判斷接收端303對(duì)當(dāng)前數(shù)據(jù)包解碼的最早時(shí)刻Tarr是否晚于當(dāng)前數(shù)據(jù)包的播放時(shí)刻Tdisp。
      設(shè)整個(gè)視頻序列中某個(gè)GOP的第j(j=1,2,3,…)幀中某一層(BL或者EL)的第i個(gè)數(shù)據(jù)包mi(i=1,2,3,…)為當(dāng)前要發(fā)送的數(shù)據(jù)包。該層的所有數(shù)據(jù)包大小相同,都包含K比特。信源和中繼的發(fā)送碼率為每秒r比特(本實(shí)施例為256kbps(千比特每秒))。此時(shí)該數(shù)據(jù)包的發(fā)送時(shí)延為Ttrans=K/r。設(shè)一個(gè)GOP的幀數(shù)為M(本實(shí)施例中是8)。數(shù)據(jù)包mi所在的視頻層(上述第j幀)被編碼成L個(gè)數(shù)據(jù)包。視頻播放的幀率為Rf。
      設(shè)信源發(fā)送數(shù)據(jù)包mi的時(shí)刻為TSi,該當(dāng)前數(shù)據(jù)包的解碼時(shí)延為Tdecode。對(duì)于同一視頻層的數(shù)據(jù)包,其所在視頻層的解碼時(shí)延相同。在接收端,設(shè)其播放之初緩存的視頻幀的播放時(shí)延為Tbuffer。在接收到數(shù)據(jù)包mi所在的視頻幀之前,接收端共播放了NGOP個(gè)GOP。因此,數(shù)據(jù)包mi的最小傳輸時(shí)延為T′trans=(L-i+1)×Ttrans+(L-i+1)×TACK。其中,每一個(gè)ACK包或NACK包從接收端到中繼或到信源的反向傳輸?shù)臅r(shí)延均為TACK=0.001秒。
      接收端對(duì)當(dāng)前數(shù)據(jù)包mi解碼的最早時(shí)刻TS,arr的計(jì)算式為 而數(shù)據(jù)包mi期望的播放時(shí)刻為 第一執(zhí)行模塊,用于當(dāng)信源判斷模塊的判斷結(jié)果為是時(shí),丟棄待發(fā)送幀剩余的尚未發(fā)送的數(shù)據(jù)包,以及與待發(fā)送幀位于同一圖像組中的丟棄幀的所有數(shù)據(jù)包,然后將發(fā)送緩存中的下一幀數(shù)據(jù)中的每一個(gè)數(shù)據(jù)包分別作為當(dāng)前數(shù)據(jù)包,觸發(fā)發(fā)送模塊工作;其中,如果待發(fā)送幀為B幀(雙向預(yù)測(cè)編碼幀),則所述丟棄幀為播放時(shí)刻在待發(fā)送幀的前向預(yù)測(cè)幀和待發(fā)送幀的后向預(yù)測(cè)幀的播放時(shí)刻之間,并且編碼層次較所述待發(fā)送幀高的視頻幀;如果所述待發(fā)送幀為I幀,則丟棄幀為待發(fā)送幀所在圖像組除待發(fā)送幀以外的全部視頻幀;如果待發(fā)送幀為P幀,則丟棄幀為待發(fā)送幀所在圖像組除I幀和待發(fā)送幀外的全部視頻幀。
      第二執(zhí)行模塊,用于當(dāng)信源301判斷模塊的判斷結(jié)果為否時(shí),觸發(fā)發(fā)送模塊工作。
      某一幀的預(yù)測(cè)幀指用來預(yù)測(cè)該幀的視頻幀。一般來講,雙向預(yù)測(cè)編碼幀的預(yù)測(cè)幀有兩幀。播放時(shí)刻位于該幀之前的預(yù)測(cè)幀為前向預(yù)測(cè)幀;播放時(shí)刻位于該幀之后的預(yù)測(cè)幀為后向預(yù)測(cè)幀。參見圖2,第二個(gè)“第2層”(以下簡(jiǎn)稱為A層)所在視頻幀,是由“第1層”所在視頻幀和最右面的“第0層”所在視頻幀共同預(yù)測(cè)得到的,則“第1層”所在視頻幀為A層所在視頻幀的前向預(yù)測(cè)幀;最右面的“第0層”所在視頻幀為A層所在視頻幀的后向預(yù)測(cè)幀。
      當(dāng)時(shí),信源丟棄上述第j幀剩余的尚未發(fā)送的所有數(shù)據(jù)包,以及與上述第j幀位于同一GOP中的丟棄幀的所有數(shù)據(jù)包。比如若當(dāng)前數(shù)據(jù)包mi位于圖2中A層所在視頻幀(該待發(fā)送幀為一個(gè)B幀),則由圖2分析可知,該待發(fā)送幀的前向預(yù)測(cè)幀為編碼層次為“第1層”的視頻幀;后向預(yù)測(cè)幀為最右面的編碼層次為“第0層”的視頻幀。本例中位于待發(fā)送幀的前向預(yù)測(cè)幀和待發(fā)送幀的后向預(yù)測(cè)幀的播放時(shí)刻之間,并且編碼層次較待發(fā)送幀高的為與待發(fā)送幀直接相鄰的編碼層次為“第3層”的視頻幀。若當(dāng)前數(shù)據(jù)包mi位于圖2中最左邊的“第0層”所在視頻幀(即該待發(fā)送幀為一個(gè)I幀),由上述可知,丟棄幀為待發(fā)送幀所在圖像組除待發(fā)送幀以外的全部視頻幀。假設(shè)當(dāng)前數(shù)據(jù)包mi位于圖2中最右邊的“第0層”所在視頻幀(即該待發(fā)送幀為一個(gè)P幀),由上述可知,丟棄幀為待發(fā)送幀所在圖像組除I幀和待發(fā)送幀外的全部視頻幀。
      信源丟棄完數(shù)據(jù)包后,將發(fā)送緩存中的下一幀數(shù)據(jù)中的每一個(gè)數(shù)據(jù)包分別作為當(dāng)前數(shù)據(jù)包,觸發(fā)發(fā)送模塊工作。
      當(dāng)時(shí),觸發(fā)發(fā)送模塊工作。
      例如對(duì)于整個(gè)視頻序列中某個(gè)GOP的第3幀的BL,該層每個(gè)數(shù)據(jù)包大小相同,均為2048bits。此時(shí)每個(gè)數(shù)據(jù)包的發(fā)送時(shí)延為Ttrans=8×10-3秒。對(duì)于該BL的第100個(gè)數(shù)據(jù)包mi,信源發(fā)送該數(shù)據(jù)包的發(fā)送時(shí)刻為

      并且此次發(fā)送為該數(shù)據(jù)包的第一次發(fā)送。第3幀被分成兩層,該數(shù)據(jù)包所在層被編碼成300個(gè)數(shù)據(jù)包。接收端在接收到該數(shù)據(jù)包所在幀之前共播放了9個(gè)GOP。此時(shí)對(duì)該數(shù)據(jù)包的時(shí)延判斷包括以下步驟 該數(shù)據(jù)包最小的傳輸時(shí)延為T′trans=(L-i+1)×Ttrans+(L-i+1)×TACK≈1.8秒。其所在視頻層順利傳輸并解碼的“最早時(shí)刻”TS,arr100為
      而該視頻層期望的播放時(shí)刻為
      因?yàn)樗孕旁磿?huì)傳輸數(shù)據(jù)包mi。
      中繼302包括 編碼校驗(yàn)?zāi)K,用于在第二時(shí)隙將接收到的發(fā)送模塊發(fā)來的當(dāng)前數(shù)據(jù)包進(jìn)行編碼壓縮并進(jìn)行循環(huán)冗余校驗(yàn),獲得壓縮數(shù)據(jù)包。
      本步驟的編碼壓縮為Wyner-Ziv編碼壓縮。本實(shí)施例中,Wyner-Ziv編碼器采用均勻量化器和信道編碼的編碼器實(shí)現(xiàn),中繼壓縮編碼的碼率設(shè)為Rw=0.5。
      如果上一次中繼壓縮數(shù)據(jù)包的碼率為Rrelay=3/16,并且發(fā)送成功;同時(shí)該壓縮碼率可以在{1/16,2/16,…,15/16}中選擇(也即該壓縮碼率的調(diào)整步長(zhǎng)為1/16),則此時(shí)碼率調(diào)整為Rrelay=3/16-1/16=2/16。當(dāng)Rrelay=1/16時(shí),碼率不再降低。
      判斷模塊,用于判斷如果將上述壓縮數(shù)據(jù)包發(fā)送到接收端303,接收端303對(duì)上述壓縮數(shù)據(jù)包進(jìn)行解碼的時(shí)刻,是否晚于上述壓縮數(shù)據(jù)包的播放時(shí)刻。
      接收端對(duì)上述壓縮數(shù)據(jù)包進(jìn)行解碼的時(shí)刻TR,arr為TR,arr=TR+T″trans+T′decode,其中,TR為中繼發(fā)送上述壓縮數(shù)據(jù)包的時(shí)刻,T″trans為上述壓縮數(shù)據(jù)包的最小傳輸時(shí)延,T′decode為上述壓縮數(shù)據(jù)包的解碼時(shí)延。
      設(shè)當(dāng)前待發(fā)送幀為第j幀,在接收到當(dāng)前待發(fā)送幀之前接收端共播放了NGOP個(gè)圖像組,則上述壓縮數(shù)據(jù)包的播放時(shí)刻Tdisp為Tdisp=Tbuffer+j/Rf+NGOP×M/Rf,其中Tbuffer為緩存播放時(shí)延,Rf為視頻播放的幀率,M為一個(gè)圖像組中的幀數(shù)。
      放棄模塊,用于當(dāng)判斷模塊的判斷結(jié)果為是時(shí),放棄發(fā)送上述壓縮數(shù)據(jù)包并觸發(fā)發(fā)送模塊工作。
      例如對(duì)于整個(gè)視頻序列中某個(gè)GOP的第3幀的BL,該層每個(gè)數(shù)據(jù)包大小相同,均為2048bits。此時(shí)每個(gè)數(shù)據(jù)包的發(fā)送時(shí)延為Ttrans=8×10-3秒。對(duì)于該BL的第100個(gè)數(shù)據(jù)包mi,設(shè)中繼即將發(fā)送該數(shù)據(jù)包mi的時(shí)刻為此次發(fā)送為中繼對(duì)該數(shù)據(jù)包的第五次發(fā)送。該數(shù)據(jù)包所在幀被分成兩層(1個(gè)BL和1個(gè)EL),而該數(shù)據(jù)包所在層被編碼成300個(gè)數(shù)據(jù)包。設(shè)接收端在接收到該數(shù)據(jù)包所在幀之前共播放了9個(gè)GOP。該數(shù)據(jù)包最小的傳輸時(shí)延為T″trans=(L-i+1)×Ttrans+(L-i)×TACK≈1.8秒。其所在視頻層順利傳輸并解碼的“最早時(shí)刻”TR,arr100為
      而該視頻層期望的播放時(shí)刻為
      因?yàn)椴⑶掖藭r(shí)中繼對(duì)于該數(shù)據(jù)包的傳輸次數(shù)已經(jīng)達(dá)到了最大重傳次數(shù)(本實(shí)施例為5次)的限制,因此放棄模塊放棄發(fā)送上述壓縮數(shù)據(jù)包并觸發(fā)發(fā)送模塊工作。
      轉(zhuǎn)發(fā)模塊,用于當(dāng)判斷模塊的判斷結(jié)果為否時(shí),將上述壓縮數(shù)據(jù)包轉(zhuǎn)發(fā)給接收端303。
      當(dāng)接收端對(duì)上述壓縮數(shù)據(jù)包進(jìn)行解碼的時(shí)刻,早于上述壓縮數(shù)據(jù)包的播放時(shí)刻時(shí),中繼將上述壓縮數(shù)據(jù)包轉(zhuǎn)發(fā)給接收端303。
      接收端303,用于對(duì)上述壓縮數(shù)據(jù)包和當(dāng)前數(shù)據(jù)包進(jìn)行Wyner-Ziv解碼,獲得信源在第一時(shí)隙發(fā)送的數(shù)據(jù)信息,并對(duì)該數(shù)據(jù)信息進(jìn)行視頻解碼。
      進(jìn)一步地,接收端具體包括 校驗(yàn)?zāi)K,用于對(duì)上述壓縮數(shù)據(jù)包進(jìn)行循環(huán)冗余校驗(yàn); 第一模塊,用于校驗(yàn)成功則對(duì)上述壓縮數(shù)據(jù)包和當(dāng)前數(shù)據(jù)包進(jìn)行Wyner-Ziv解碼,獲得信源301在第一時(shí)隙發(fā)送的數(shù)據(jù)信息,并向信源301和中繼302發(fā)送接收確認(rèn)數(shù)據(jù)包,以及對(duì)數(shù)據(jù)信息進(jìn)行視頻解碼; 第二模塊,用于如果校驗(yàn)?zāi)K校驗(yàn)失敗或者第一模塊無法對(duì)上述壓縮數(shù)據(jù)包進(jìn)行正確的Wyner-Ziv解碼,則根據(jù)上述壓縮數(shù)據(jù)包的重傳次數(shù),向中繼302或信源301發(fā)送ARQ,重傳后對(duì)上述壓縮數(shù)據(jù)包的重傳次數(shù)加1。
      具體地,接收端對(duì)中繼轉(zhuǎn)發(fā)的數(shù)據(jù)包進(jìn)行CRC-16校驗(yàn),校驗(yàn)成功則對(duì)兩個(gè)時(shí)隙接收到的數(shù)據(jù)包(上述壓縮數(shù)據(jù)包和當(dāng)前數(shù)據(jù)包)進(jìn)行Wyner-Ziv解碼,Wyner-Ziv解碼器采用信道編碼的解碼器實(shí)現(xiàn)。接收端通過Wyner-Ziv解碼獲得信源在第一個(gè)時(shí)隙發(fā)送的信息,同時(shí)向信源和中繼發(fā)送ACK包。
      如果CRC-16校驗(yàn)不成功或者Wyner-Ziv解碼失敗,則向中繼或者信源發(fā)送ARQ,即同時(shí)向信源和中繼發(fā)送NACK包。當(dāng)該數(shù)據(jù)包當(dāng)前已經(jīng)進(jìn)行的重傳次數(shù)沒有超過最大重傳次數(shù)限制時(shí),接收端向中繼發(fā)送ARQ,請(qǐng)求重傳該數(shù)據(jù)包,觸發(fā)編碼校驗(yàn)?zāi)K工作。如果超過最大重傳次數(shù)的限制,則接收端向信源發(fā)出ARQ,請(qǐng)求重傳該數(shù)據(jù)包,觸發(fā)發(fā)送模塊工作。
      接收端對(duì)Wyner-Ziv解碼得到的數(shù)據(jù)進(jìn)行視頻解碼,如果缺少某個(gè)視頻層的數(shù)據(jù),則通過錯(cuò)誤隱藏等方法重建該視頻層。同時(shí)接收端請(qǐng)求信源發(fā)送緩存中的下一個(gè)數(shù)據(jù)包。
      本發(fā)明實(shí)施例將協(xié)同傳輸?shù)募夹g(shù)應(yīng)用于無線視頻傳輸,從而提高了視頻傳輸?shù)姆旨鲆?。同時(shí)本發(fā)明實(shí)施例還通過放棄模塊,對(duì)實(shí)時(shí)傳輸中超時(shí)的數(shù)據(jù)包予以丟棄;通過接收端的第二模塊,實(shí)現(xiàn)了基于CF模式下協(xié)同視頻傳輸?shù)腁RQ策略,提高了視頻傳輸?shù)聂敯粜耘c實(shí)時(shí)性。
      盡管本發(fā)明已參照具體實(shí)施方式
      進(jìn)行描述和舉例說明,但是并不意味著本發(fā)明限于這些描述的實(shí)施方式。首先,本發(fā)明以最新的國(guó)際視頻編碼標(biāo)準(zhǔn)H.264/SVC為例進(jìn)行說明,但是并不局限于此,只要定義了Hierarchical B的視頻編碼,均可按照本發(fā)明的思想進(jìn)行改動(dòng)。其次,本發(fā)明中對(duì)于中繼的編碼方式采用均勻量化器和信道碼編碼器為例,但是不限于此,只要是采用量化器和信道編碼來實(shí)現(xiàn)Wyner-Ziv編碼,均可按照本發(fā)明思想進(jìn)行改動(dòng)。最后,本發(fā)明中采用CRC-16進(jìn)行循環(huán)冗余校驗(yàn),但是不局限于此,只要是在CF協(xié)同通信中采用校驗(yàn)方法來檢測(cè)數(shù)據(jù)包的完整性均可按照本發(fā)明思想進(jìn)行改動(dòng)。本領(lǐng)域技術(shù)人員可在本發(fā)明思想下對(duì)本發(fā)明進(jìn)行多種不同的修改,但凡依本發(fā)明權(quán)利要求書范圍所做的同等的變化及修飾,均屬于專利保護(hù)范疇。
      本發(fā)明實(shí)施例可以利用軟件實(shí)現(xiàn),相應(yīng)的軟件程序可以存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,例如,計(jì)算機(jī)的硬盤、緩存或光盤中。
      以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      權(quán)利要求
      1.一種無線視頻傳輸方法,其特征在于,包括
      S110、在信源、中繼以及接收端之間建立網(wǎng)絡(luò)連接;
      S120、所述信源將待發(fā)送幀經(jīng)過視頻編碼器編碼得到的數(shù)據(jù)包存入發(fā)送緩存等待發(fā)送;將待發(fā)送的每一個(gè)數(shù)據(jù)包分別作為當(dāng)前數(shù)據(jù)包,執(zhí)行
      S130、所述信源在第一時(shí)隙向所述中繼和所述接收端廣播所述當(dāng)前數(shù)據(jù)包;
      S140、所述中繼在第二時(shí)隙將接收到的所述當(dāng)前數(shù)據(jù)包進(jìn)行編碼壓縮并進(jìn)行循環(huán)冗余校驗(yàn),獲得壓縮數(shù)據(jù)包;
      S150、所述中繼判斷如果將所述壓縮數(shù)據(jù)包發(fā)送到所述接收端,所述接收端對(duì)所述壓縮數(shù)據(jù)包進(jìn)行解碼的時(shí)刻,是否晚于所述壓縮數(shù)據(jù)包的播放時(shí)刻;如果是,執(zhí)行步驟S160,否則,執(zhí)行步驟S170;
      S160、所述中繼放棄發(fā)送所述壓縮數(shù)據(jù)包并返回步驟S130;
      S170、所述中繼將所述壓縮數(shù)據(jù)包轉(zhuǎn)發(fā)給所述接收端;所述接收端對(duì)所述壓縮數(shù)據(jù)包和所述當(dāng)前數(shù)據(jù)包進(jìn)行懷納-澤夫解碼,獲得信源在第一時(shí)隙發(fā)送的數(shù)據(jù)信息,并對(duì)所述數(shù)據(jù)信息進(jìn)行視頻解碼。
      2.如權(quán)利要求1所述的無線視頻傳輸方法,其特征在于,步驟S120中,視頻編碼器采用H.264可伸縮擴(kuò)展版本標(biāo)準(zhǔn)進(jìn)行層次化雙向預(yù)測(cè)編碼幀編碼。
      3.如權(quán)利要求2所述的無線視頻傳輸方法,其特征在于,在步驟S130之前,還包括
      判斷所述接收端對(duì)所述當(dāng)前數(shù)據(jù)包解碼的最早時(shí)刻TS,arr是否晚于所述當(dāng)前數(shù)據(jù)包的播放時(shí)刻Tdisp;
      如果是,則丟棄所述待發(fā)送幀剩余的尚未發(fā)送的所有數(shù)據(jù)包,以及與待發(fā)送幀位于同一圖像組中的丟棄幀的所有數(shù)據(jù)包,然后將所述發(fā)送緩存中的下一幀的每一個(gè)數(shù)據(jù)包分別作為當(dāng)前數(shù)據(jù)包,執(zhí)行步驟S130;其中,如果所述待發(fā)送幀為雙向預(yù)測(cè)編碼幀,則所述丟棄幀為播放時(shí)刻在所述待發(fā)送幀的前向預(yù)測(cè)幀和所述待發(fā)送幀的后向預(yù)測(cè)幀的播放時(shí)刻之間,并且編碼層次較所述待發(fā)送幀高的視頻幀;如果所述待發(fā)送幀為幀內(nèi)編碼幀,則所述丟棄幀為所述待發(fā)送幀所在圖像組除所述待發(fā)送幀以外的全部視頻幀;如果所述待發(fā)送幀為前向預(yù)測(cè)編碼幀,則所述丟棄幀為所述待發(fā)送幀所在圖像組除幀內(nèi)編碼幀和所述待發(fā)送幀外的全部視頻幀;
      否則執(zhí)行步驟S130。
      4.如權(quán)利要求3所述的無線視頻傳輸方法,其特征在于,
      所述接收端對(duì)所述當(dāng)前數(shù)據(jù)包解碼的最早時(shí)刻TS,arr的計(jì)算式為TS,arr=TS+T′trans+Tdecode,其中TS為信源發(fā)送所述當(dāng)前數(shù)據(jù)包的時(shí)刻,T′trans為所述當(dāng)前數(shù)據(jù)包從信源到接收端的最小傳輸時(shí)延,Tdecode為所述當(dāng)前數(shù)據(jù)包的解碼時(shí)延;
      設(shè)當(dāng)前待發(fā)送幀為第j幀,在接收到所述當(dāng)前待發(fā)送幀之前接收端共播放了NGOP個(gè)圖像組,則在所述接收端,所述當(dāng)前數(shù)據(jù)包的播放時(shí)刻Tdisp的計(jì)算式為Tdisp=Tbuffer+j/Rf+NGOP×M/Rf,其中Tbuffer為緩存播放時(shí)延,Rf為視頻播放的幀率,M為一個(gè)圖像組中的幀數(shù)。
      5.如權(quán)利要求1所述的無線視頻傳輸方法,其特征在于,所述步驟S140中的所述編碼壓縮為懷納-澤夫編碼壓縮。
      6.如權(quán)利要求1所述的無線視頻傳輸方法,其特征在于,所述步驟S150中,
      所述接收端對(duì)所述壓縮數(shù)據(jù)包進(jìn)行解碼的時(shí)刻TR,arr為TR,arr=TR+T″trans+T′decode,其中,TR為所述中繼發(fā)送所述壓縮數(shù)據(jù)包的時(shí)刻,T″trans為所述壓縮數(shù)據(jù)包從中繼到接收端的最小傳輸時(shí)延,T′decode為所述壓縮數(shù)據(jù)包的解碼時(shí)延;
      設(shè)當(dāng)前待發(fā)送幀為第j幀,在接收到所述當(dāng)前待發(fā)送幀之前接收端共播放了NGOP個(gè)圖像組,則所述壓縮數(shù)據(jù)包的播放時(shí)刻Tdisp為Tdisp=Tbuffer+j/Rf+NGOP×M/Rf,其中Tbuffer為緩存播放時(shí)延,Rf為視頻播放的幀率,M為一個(gè)圖像組中的幀數(shù)。
      7.如權(quán)利要求1所述的無線視頻傳輸方法,其特征在于,所述中繼將所述壓縮數(shù)據(jù)包轉(zhuǎn)發(fā)給所述接收端;所述接收端對(duì)所述壓縮數(shù)據(jù)包和所述當(dāng)前數(shù)據(jù)包進(jìn)行懷納-澤夫解碼,獲得信源在第一時(shí)隙發(fā)送的數(shù)據(jù)信息,具體包括
      所述中繼將所述壓縮數(shù)據(jù)包轉(zhuǎn)發(fā)給所述接收端;
      所述接收端對(duì)所述壓縮數(shù)據(jù)包進(jìn)行循環(huán)冗余校驗(yàn),校驗(yàn)成功則所述接收端對(duì)所述壓縮數(shù)據(jù)包和所述當(dāng)前數(shù)據(jù)包進(jìn)行懷納-澤夫解碼,獲得信源在第一時(shí)隙發(fā)送的數(shù)據(jù)信息,并向所述信源和所述中繼發(fā)送接收確認(rèn)數(shù)據(jù)包;
      如果循環(huán)冗余校驗(yàn)失敗或者接收端無法對(duì)所述壓縮數(shù)據(jù)包進(jìn)行正確的懷納-澤夫解碼,則所述接收端根據(jù)所述壓縮數(shù)據(jù)包的重傳次數(shù),向所述中繼或所述信源發(fā)送自動(dòng)重傳請(qǐng)求,重傳后對(duì)所述壓縮數(shù)據(jù)包的重傳次數(shù)加1。
      8.如權(quán)利要求7所述的無線視頻傳輸方法,其特征在于,所述接收端根據(jù)所述壓縮數(shù)據(jù)包的重傳次數(shù),向所述中繼或所述信源發(fā)送自動(dòng)重傳請(qǐng)求,具體包括
      當(dāng)所述重傳次數(shù)不大于預(yù)設(shè)的最大重傳次數(shù)時(shí),所述接收端向所述中繼發(fā)送自動(dòng)重傳請(qǐng)求,返回步驟S140;
      當(dāng)所述重傳次數(shù)大于最大重傳次數(shù)時(shí),則所述接收端向所述信源發(fā)送自動(dòng)重傳請(qǐng)求,返回步驟S130。
      9.一種無線視頻傳輸系統(tǒng),其特征在于,包括信源、中繼以及接收端,
      所述信源包括
      存儲(chǔ)模塊,用于將待發(fā)送幀經(jīng)過視頻編碼器編碼得到的數(shù)據(jù)包存入發(fā)送緩存等待發(fā)
      送;將待發(fā)送的每一個(gè)數(shù)據(jù)包分別作為當(dāng)前數(shù)據(jù)包;
      發(fā)送模塊,用于在第一時(shí)隙向所述中繼和所述接收端廣播所述當(dāng)前數(shù)據(jù)包;
      所述中繼包括
      編碼校驗(yàn)?zāi)K,用于在第二時(shí)隙將接收到的所述發(fā)送模塊發(fā)來的當(dāng)前數(shù)據(jù)包進(jìn)行編碼壓縮并進(jìn)行循環(huán)冗余校驗(yàn),獲得壓縮數(shù)據(jù)包;
      判斷模塊,用于判斷如果將所述壓縮數(shù)據(jù)包發(fā)送到所述接收端,所述接收端對(duì)所述壓縮數(shù)據(jù)包進(jìn)行解碼的時(shí)刻,是否晚于所述壓縮數(shù)據(jù)包的播放時(shí)刻;
      放棄模塊,用于當(dāng)所述判斷模塊的判斷結(jié)果為是時(shí),放棄發(fā)送所述壓縮數(shù)據(jù)包并觸發(fā)所述發(fā)送模塊工作;
      轉(zhuǎn)發(fā)模塊,用于當(dāng)所述判斷模塊的判斷結(jié)果為否時(shí),將所述壓縮數(shù)據(jù)包轉(zhuǎn)發(fā)給所述接收端;
      所述接收端,用于對(duì)所述壓縮數(shù)據(jù)包和所述當(dāng)前數(shù)據(jù)包進(jìn)行懷納-澤夫解碼,獲得信源在第一時(shí)隙發(fā)送的數(shù)據(jù)信息,并對(duì)所述數(shù)據(jù)信息進(jìn)行視頻解碼。
      10.如權(quán)利要求9所述的無線視頻傳輸系統(tǒng),其特征在于,所述信源還包括
      信源判斷模塊,用于在第一時(shí)隙向所述中繼和所述接收端廣播所述當(dāng)前數(shù)據(jù)包之前,判斷所述接收端對(duì)所述當(dāng)前數(shù)據(jù)包解碼的最早時(shí)刻Tarr是否晚于所述當(dāng)前數(shù)據(jù)包的播放時(shí)刻Tdisp;
      第一執(zhí)行模塊,用于當(dāng)所述信源判斷模塊的判斷結(jié)果為是時(shí),丟棄所述待發(fā)送幀剩余的尚未發(fā)送的所有數(shù)據(jù)包,以及與所述待發(fā)送幀位于同一圖像組中的丟棄幀的所有數(shù)據(jù)包,然后將所述發(fā)送緩存中的下一幀數(shù)據(jù)中的每一個(gè)數(shù)據(jù)包分別作為當(dāng)前數(shù)據(jù)包,觸發(fā)所述發(fā)送模塊工作;其中,如果所述待發(fā)送幀為雙向預(yù)測(cè)編碼幀,則所述丟棄幀為播放時(shí)刻在所述待發(fā)送幀的前向預(yù)測(cè)幀和所述待發(fā)送幀的后向預(yù)測(cè)幀的播放時(shí)刻之間,并且編碼層次較所述待發(fā)送幀高的視頻幀;如果所述待發(fā)送幀為幀內(nèi)編碼幀,則所述丟棄幀為所述待發(fā)送幀所在圖像組除所述待發(fā)送幀以外的全部視頻幀;如果所述待發(fā)送幀為前向預(yù)測(cè)編碼幀,則所述丟棄幀為所述待發(fā)送幀所在圖像組除幀內(nèi)編碼幀和所述待發(fā)送幀外的全部視頻幀;
      第二執(zhí)行模塊,用于當(dāng)所述信源判斷模塊的判斷結(jié)果為否時(shí),觸發(fā)所述發(fā)送模塊工作。
      11.如權(quán)利要求9所述的無線視頻傳輸系統(tǒng),其特征在于,所述接收端包括
      校驗(yàn)?zāi)K,用于對(duì)所述壓縮數(shù)據(jù)包進(jìn)行循環(huán)冗余校驗(yàn);
      第一模塊,用于校驗(yàn)成功則對(duì)所述壓縮數(shù)據(jù)包和所述當(dāng)前數(shù)據(jù)包進(jìn)行懷納-澤夫解碼,獲得信源在第一時(shí)隙發(fā)送的數(shù)據(jù)信息,并向所述信源和所述中繼發(fā)送接收確認(rèn)數(shù)據(jù)包,對(duì)所述數(shù)據(jù)信息進(jìn)行視頻解碼;
      第二模塊,用于如果所述校驗(yàn)?zāi)K校驗(yàn)失敗或者所述第一模塊無法對(duì)所述壓縮數(shù)據(jù)包進(jìn)行正確的懷納-澤夫解碼,則根據(jù)所述壓縮數(shù)據(jù)包的重傳次數(shù),向所述中繼或所述信源發(fā)送自動(dòng)重傳請(qǐng)求,重傳后對(duì)所述壓縮數(shù)據(jù)包的重傳次數(shù)加1。
      全文摘要
      本發(fā)明公開了無線視頻傳輸方法和系統(tǒng),屬于視頻傳輸技術(shù)領(lǐng)域。該方法包括S110、建立網(wǎng)絡(luò)連接;S120、信源將數(shù)據(jù)包存入發(fā)送緩存;將待發(fā)送的每個(gè)數(shù)據(jù)包分別作為當(dāng)前數(shù)據(jù)包;S130、向中繼和接收端廣播當(dāng)前數(shù)據(jù)包;S140、中繼將接收到的當(dāng)前數(shù)據(jù)包進(jìn)行壓縮并進(jìn)行CRC,獲得壓縮數(shù)據(jù)包;S150、中繼判斷接收端對(duì)壓縮數(shù)據(jù)包解碼的時(shí)刻是否晚于播放時(shí)刻;如果是,執(zhí)行S160,否則,執(zhí)行S170;S160、中繼放棄壓縮數(shù)據(jù)包并返回S130;S170、中繼將壓縮數(shù)據(jù)包發(fā)給接收端;接收端對(duì)數(shù)據(jù)包進(jìn)行懷納-澤夫解碼,獲得信源發(fā)送的數(shù)據(jù)信息,并對(duì)其進(jìn)行視頻解碼。該系統(tǒng)包括信源、中繼和接收端。本發(fā)明提高了視頻傳輸?shù)姆旨鲆妗Ⅳ敯粜耘c實(shí)時(shí)性。
      文檔編號(hào)H04N7/24GK101605251SQ20091008979
      公開日2009年12月16日 申請(qǐng)日期2009年7月24日 優(yōu)先權(quán)日2009年7月24日
      發(fā)明者季向陽, 汪啟扉, 肖紅江, 戴瓊海, 張乃堯 申請(qǐng)人:清華大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1