两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

前向糾錯(cuò)方法、裝置和系統(tǒng)的制作方法

文檔序號(hào):7704170閱讀:225來源:國知局
專利名稱:前向糾錯(cuò)方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明實(shí)施例涉及通信傳輸領(lǐng)域,尤其是一種前向糾錯(cuò)編碼方法、裝置,一種前向 糾錯(cuò)解碼方法、裝置,以及通信系統(tǒng)。
背景技術(shù)
數(shù)據(jù)包在網(wǎng)絡(luò)中傳輸時(shí)會(huì)遭受不定數(shù)量的丟失,使得服務(wù)質(zhì)量下降,實(shí)時(shí)音視頻 流中數(shù)據(jù)包的丟失可能導(dǎo)致更差的服務(wù)質(zhì)量。因此需要使用一些錯(cuò)誤控制技術(shù)來提高數(shù) 據(jù)在網(wǎng)絡(luò)上傳輸?shù)目煽啃浴W詣?dòng)重傳請(qǐng)求(ARQ,Automatic Repeat Request)和前向糾錯(cuò) (FEC, Forward Error Correction)是兩種廣泛應(yīng)用的丟包恢復(fù)技術(shù)。前向糾錯(cuò)不需要反饋信道,應(yīng)用廣泛。其基本原理是在k個(gè)源數(shù)據(jù)包中插入n-k 個(gè)冗余包,并將這n個(gè)數(shù)據(jù)包一并發(fā)送給接收端,其中n-k個(gè)冗余包是由k個(gè)源數(shù)據(jù)包經(jīng)過 編碼計(jì)算得到的。把這n個(gè)數(shù)據(jù)包稱為一個(gè)源數(shù)據(jù)塊(source block),每個(gè)源數(shù)據(jù)塊對(duì)應(yīng) 一個(gè)源塊標(biāo)號(hào)(SBN,Source BlockNumber);每個(gè)數(shù)據(jù)包在源數(shù)據(jù)塊中都有一個(gè)編號(hào),稱為 編碼符號(hào)標(biāo)識(shí)(ESI,Encoding Symbol ID)。由于網(wǎng)絡(luò)傳輸?shù)牟豢煽?,一個(gè)源數(shù)據(jù)塊中的一 些數(shù)據(jù)包在傳輸過程中可能丟失。接收端通過ESI可以確定這些丟失的數(shù)據(jù)包在源數(shù)據(jù)塊 中的位置,在丟包數(shù)量不超過糾錯(cuò)能力極限的情況下,由于冗余包的存在,接收端可以利用 冗余包來恢復(fù)丟失的源數(shù)據(jù)包?,F(xiàn)有技術(shù)中,提供了一種多媒體廣播組播業(yè)務(wù)的流傳輸方法。在發(fā)送端,由應(yīng)用層 提供源數(shù)據(jù)包,在應(yīng)用層與傳輸層之間使用獨(dú)立的FEC層。FEC層對(duì)源數(shù)據(jù)包進(jìn)行源數(shù)據(jù)塊 構(gòu)建并進(jìn)行FEC編碼,將FEC編碼后的數(shù)據(jù)包封裝成FEC源數(shù)據(jù)包和FEC校驗(yàn)數(shù)據(jù)包進(jìn)行 傳輸。由于不限制媒體數(shù)據(jù)流的數(shù)目及源數(shù)據(jù)包的大小,接收端如果要進(jìn)行FEC解碼則必 須知道每個(gè)源數(shù)據(jù)包的大小,因此,在FEC編碼時(shí),在每個(gè)源數(shù)據(jù)包的最后添加了該源數(shù)據(jù) 包在源數(shù)據(jù)塊中的位置信息,來構(gòu)成FEC源數(shù)據(jù)包。現(xiàn)有技術(shù)中的多媒體廣播組播業(yè)務(wù)的 流傳輸方法,在源數(shù)據(jù)包的最后添加了位置信息,改變了源數(shù)據(jù)包的結(jié)構(gòu),沒有FEC功能的 接收端不能對(duì)FEC源數(shù)據(jù)包進(jìn)行解碼或者解碼失敗,與現(xiàn)有通信系統(tǒng)不兼容。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例一方面提供了前向糾錯(cuò)編碼的方法和裝置,另一方面提供了前向糾 錯(cuò)解碼的方法和裝置,以及一種通信系統(tǒng),即能夠與現(xiàn)有通信系統(tǒng)兼容,又可以有效的利用 前向糾錯(cuò)恢復(fù)丟失的源數(shù)據(jù)。本發(fā)明實(shí)施例提供的前向糾錯(cuò)編碼方法,包括利用多個(gè)源數(shù)據(jù)構(gòu)造源數(shù)據(jù)塊,每個(gè)源數(shù)據(jù)對(duì)應(yīng)一個(gè)位置信息,該位置信息用于 標(biāo)識(shí)該源數(shù)據(jù)在源數(shù)據(jù)塊中的位置;對(duì)構(gòu)造的源數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)編碼,生成校驗(yàn)數(shù)據(jù);通過第一數(shù)據(jù)包發(fā)送多個(gè)源數(shù)據(jù),通過第二數(shù)據(jù)包發(fā)送校驗(yàn)數(shù)據(jù)和源數(shù)據(jù)的位置 信息;其中,第二數(shù)據(jù)包中攜帶源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系。
本發(fā)明實(shí)施例提供的前向糾錯(cuò)編碼裝置,包括構(gòu)造模塊,用于利用多個(gè)源數(shù)據(jù)構(gòu)造源數(shù)據(jù)塊,每個(gè)源數(shù)據(jù)對(duì)應(yīng)一個(gè)位置信息,該 位置信息用于標(biāo)識(shí)該源數(shù)據(jù)在源數(shù)據(jù)塊中的位置;編碼模塊,用于對(duì)構(gòu)造的源數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)編碼,生成校驗(yàn)數(shù)據(jù);第一發(fā)送模塊,用于通過第一數(shù)據(jù)包發(fā)送多個(gè)源數(shù)據(jù),通過第二數(shù)據(jù)包發(fā)送校驗(yàn) 數(shù)據(jù)和源數(shù)據(jù)的位置信息,其中,第二數(shù)據(jù)包中攜帶源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān) 系。本發(fā)明實(shí)施例提供的前向糾錯(cuò)解碼方法,包括接收第一數(shù)據(jù)包和第二數(shù)據(jù)包,第一數(shù)據(jù)包中攜帶源數(shù)據(jù),第二數(shù)據(jù)包中攜帶校 驗(yàn)數(shù)據(jù)、源數(shù)據(jù)的位置信息、以及源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系;根據(jù)第二數(shù)據(jù)包中攜帶的源數(shù)據(jù)的位置信息以及源數(shù)據(jù)的位置信息與源數(shù)據(jù)的 對(duì)應(yīng)關(guān)系,利用第一數(shù)據(jù)包中攜帶的多個(gè)源數(shù)據(jù)生成重構(gòu)數(shù)據(jù)塊;利用第二數(shù)據(jù)包中攜帶的校驗(yàn)數(shù)據(jù),對(duì)重構(gòu)數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)解碼,恢復(fù)丟失 的源數(shù)據(jù)。本發(fā)明實(shí)施例提供的前向糾錯(cuò)解碼設(shè)備,包括第二接收模塊,用于接收第一數(shù)據(jù)包和第二數(shù)據(jù)包,第一數(shù)據(jù)包中攜帶源數(shù)據(jù),第 二數(shù)據(jù)包中攜帶校驗(yàn)數(shù)據(jù)、源數(shù)據(jù)的位置信息、以及源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān) 系;重構(gòu)模塊,用于根據(jù)第二數(shù)據(jù)包中攜帶的源數(shù)據(jù)的位置信息以及源數(shù)據(jù)的位置信 息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系,利用第一數(shù)據(jù)包中攜帶的多個(gè)源數(shù)據(jù)生成重構(gòu)數(shù)據(jù)塊;解碼模塊,用于利用第二數(shù)據(jù)包中攜帶的校驗(yàn)數(shù)據(jù),對(duì)重構(gòu)數(shù)據(jù)塊進(jìn)行前向糾錯(cuò) 解碼,恢復(fù)丟失的源數(shù)據(jù)。本發(fā)明實(shí)施例提供的通信系統(tǒng),包括至少一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn);所述網(wǎng)絡(luò)節(jié)點(diǎn)中的全部或部分包括上述的前向糾錯(cuò)編碼設(shè)備和/或上述的前向 糾錯(cuò)編碼設(shè)備。由以上技術(shù)方案可知,本發(fā)明實(shí)施例中,通過將源數(shù)據(jù)在源數(shù)據(jù)塊中的位置信息 和校驗(yàn)數(shù)據(jù)攜帶在第二數(shù)據(jù)包中傳輸,而源數(shù)據(jù)通過第一數(shù)據(jù)包傳輸,使得源數(shù)據(jù)與校驗(yàn) 數(shù)據(jù)以及源數(shù)據(jù)的位置信息分開采用不同的數(shù)據(jù)包傳輸,不改變承載源數(shù)據(jù)的第一數(shù)據(jù)包 的結(jié)構(gòu),從而沒有前向糾錯(cuò)功能的解碼端可以丟棄第二數(shù)據(jù)包,只根據(jù)第一數(shù)據(jù)包進(jìn)行解 碼,同時(shí),有前向糾錯(cuò)能夠的解碼端可以根據(jù)校驗(yàn)數(shù)據(jù)以及源數(shù)據(jù)的位置信息,利用校驗(yàn)數(shù) 據(jù)和接收到的源數(shù)據(jù)進(jìn)行前向糾錯(cuò)解碼,恢復(fù)丟失的源數(shù)據(jù),所以,本發(fā)明實(shí)施例提供的技 術(shù)方案既能夠與現(xiàn)有通信系統(tǒng)兼容,叉可以有效的利用前向糾錯(cuò)恢復(fù)丟失的源數(shù)據(jù)。


為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可 以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例一的前向糾錯(cuò)編碼方法流程圖2為本發(fā)明實(shí)施例一的方法中源數(shù)據(jù)塊構(gòu)造示意圖;圖3為本發(fā)明實(shí)施例二的前向糾錯(cuò)解碼方法流程圖;圖4為本發(fā)明實(shí)施例三的前向糾錯(cuò)編解碼方法流程圖;圖5為本發(fā)明實(shí)施例三的方法中源數(shù)據(jù)包結(jié)構(gòu)示意圖;圖6為本發(fā)明實(shí)施例三的方法中校驗(yàn)數(shù)據(jù)包結(jié)構(gòu)示意圖;圖7為本發(fā)明實(shí)施例三的方法中校驗(yàn)數(shù)據(jù)包的修復(fù)凈載荷ID結(jié)構(gòu)示意圖;圖8為本發(fā)明實(shí)施例三的方法中位置數(shù)據(jù)包結(jié)構(gòu)示意圖;圖9為本發(fā)明實(shí)施例三的方法中位置數(shù)據(jù)包的位置信息和對(duì)應(yīng)關(guān)系結(jié)構(gòu)示意圖;圖10為本發(fā)明實(shí)施例三的方法中位置數(shù)據(jù)包的位置信息和對(duì)應(yīng)關(guān)系的一個(gè)實(shí)例 圖;圖11為本發(fā)明實(shí)施例三的方法中重構(gòu)數(shù)據(jù)塊構(gòu)造示意圖;圖12為本發(fā)明實(shí)施例三的方法中位置數(shù)據(jù)包的另一種位置信息和對(duì)應(yīng)關(guān)系結(jié)構(gòu) 示意圖;圖13為本發(fā)明實(shí)施例三的方法中位置數(shù)據(jù)包的另一種位置信息和對(duì)應(yīng)關(guān)系的一 個(gè)實(shí)例圖;圖14為本發(fā)明實(shí)施例四的通信系統(tǒng)結(jié)構(gòu)示意圖;圖15為本發(fā)明實(shí)施例四的編碼設(shè)備結(jié)構(gòu)示意圖;圖16為本發(fā)明實(shí)施例四的解碼設(shè)備結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例一如附圖1所示,本發(fā)明實(shí)施例提供了一種前向糾錯(cuò)編碼方法,該方法包括以下步 驟步驟11 利用多個(gè)源數(shù)據(jù)構(gòu)造源數(shù)據(jù)塊;每個(gè)源數(shù)據(jù)對(duì)應(yīng)一個(gè)位置信息,該位置 信息用于標(biāo)識(shí)該源數(shù)據(jù)在源數(shù)據(jù)塊中的位置。源數(shù)據(jù)可以是各種格式的數(shù)據(jù)包,例如RTP(Real_time TransferProtocol,實(shí) 時(shí)傳輸協(xié)議)包、RTCP (Real Time Control Protocol,實(shí)時(shí)控制協(xié)議)包、IP (Internet Protocol,網(wǎng)際協(xié)議)包、TCP (Transfer Control Protocol,傳輸控制協(xié)議)包、UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)包等;或者,源數(shù)據(jù)可以是上層凈載荷(payload), 例如應(yīng)用層程序輸出的凈載荷,具體的有多媒體數(shù)據(jù)源輸出的視頻幀、音頻幀等。利用多個(gè)源數(shù)據(jù)構(gòu)造源數(shù)據(jù)塊的實(shí)現(xiàn)方式可以參考圖2,圖2示出了一個(gè)源數(shù)據(jù) 塊,源數(shù)據(jù)塊的每一行表示固定長度的數(shù)據(jù),每一行的數(shù)據(jù)稱為一個(gè)符號(hào)(Symbol),每一 個(gè)符號(hào)對(duì)應(yīng)一個(gè)ESI (Encoding Symbol ID,編碼符號(hào)標(biāo)識(shí)),ESI是收發(fā)雙方約定的一種 標(biāo)識(shí),可以按照約定的規(guī)則編號(hào),例如使用碼表或者從一個(gè)初值開始順序遞增或遞減,圖 2中的ESI示例性的使用了自然數(shù)順序編號(hào),源數(shù)據(jù)塊左邊的一列數(shù)字(1,2,...K,K+1,K+2,...M,...M+n)即為每個(gè)符號(hào)對(duì)應(yīng)的ESI。每個(gè)源數(shù)據(jù)在源數(shù)據(jù)塊中可以占用一個(gè)或者 多個(gè)符號(hào)的存儲(chǔ)空間,本發(fā)明實(shí)施例對(duì)此不做限定。參考2所示,在每收到一個(gè)源數(shù)據(jù)時(shí),根據(jù)該源數(shù)據(jù)對(duì)應(yīng)的流(flow)確定該源數(shù) 據(jù)的流標(biāo)號(hào)F,不同的流對(duì)應(yīng)不同的流標(biāo)號(hào),并根據(jù)該一個(gè)源數(shù)據(jù)的長度(length)確定其 長度值L ;之后,在源數(shù)據(jù)塊中填寫流標(biāo)號(hào)F、長度值L,并將源數(shù)據(jù)填寫入數(shù)據(jù)區(qū)D ;由于源 數(shù)據(jù)的長度可變,數(shù)據(jù)區(qū)D占用的最后一個(gè)符號(hào)可能還有剩余的位,此時(shí),可以對(duì)最后一個(gè) 符號(hào)中剩余的位進(jìn)行填充,以便每一個(gè)源數(shù)據(jù)的流標(biāo)識(shí)F都在一個(gè)符號(hào)的開始,圖2中的填 充區(qū)P即為源數(shù)據(jù)占用的最后一個(gè)符號(hào)中剩余的位,并且,當(dāng)數(shù)據(jù)區(qū)D正好填滿最后一個(gè)符 號(hào)時(shí),該源數(shù)據(jù)占用的最后一個(gè)符號(hào)中沒有填充區(qū)P。這樣,每個(gè)源數(shù)據(jù)都會(huì)在源數(shù)據(jù)塊中 占用一個(gè)或多個(gè)符號(hào),每收到一個(gè)源數(shù)據(jù)就將該源數(shù)據(jù)增加到源數(shù)據(jù)塊的最后,當(dāng)接收了 一定的源數(shù)據(jù)后,例如設(shè)定每個(gè)原數(shù)據(jù)塊中的源數(shù)據(jù)為100個(gè)符號(hào),則不再在該源數(shù)據(jù)塊 中增加新的源數(shù)據(jù);如果收到新的源數(shù)據(jù),則構(gòu)建一個(gè)新的源數(shù)據(jù)塊,將新的源數(shù)據(jù)增加到 新的源數(shù)據(jù)塊中。每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息,是用于標(biāo)識(shí)該源數(shù)據(jù)在源數(shù)據(jù)塊中的位置,因此任 何能夠標(biāo)識(shí)該源數(shù)據(jù)在源數(shù)據(jù)塊中的位置的信息都可以作為源數(shù)據(jù)對(duì)應(yīng)的位置信息,例 如,源數(shù)據(jù)對(duì)應(yīng)的位置信息可以是源數(shù)據(jù)起始行的ESI。當(dāng)然,本領(lǐng)域技術(shù)人員可以使用的 其他任何能夠標(biāo)識(shí)該源數(shù)據(jù)在源數(shù)據(jù)塊中的位置的信息也都在本發(fā)明的保護(hù)范圍之內(nèi)。在 圖2中,每個(gè)源數(shù)據(jù)在源數(shù)據(jù)塊中的位置可以用該源數(shù)據(jù)的起始行的ESI來表示,例如,源 數(shù)據(jù)塊中的第一個(gè)源數(shù)據(jù)占用了符號(hào)1(即第1行)和符號(hào)2,則該第一個(gè)源數(shù)據(jù)的位置為 1,而源數(shù)據(jù)塊中的另一個(gè)源數(shù)據(jù)占用了符號(hào)K、符號(hào)K+1和符號(hào)K+2,則該的另一個(gè)源數(shù)據(jù) 的位置為K。步驟12 對(duì)構(gòu)造的源數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)編碼,生成校驗(yàn)數(shù)據(jù)。在步驟11利用源數(shù)據(jù)構(gòu)造了源數(shù)據(jù)塊之后,進(jìn)一步對(duì)該源數(shù)據(jù)塊進(jìn)行前向糾錯(cuò) 編碼,生成一個(gè)或多個(gè)校驗(yàn)數(shù)據(jù),這里的前向糾錯(cuò)編碼可以使用各種前向糾錯(cuò)編碼算法,對(duì) 此本發(fā)明不做限定;其中,可以對(duì)不同的源數(shù)據(jù)分別進(jìn)行校驗(yàn)生成多個(gè)校驗(yàn)數(shù)據(jù),不同的校 驗(yàn)數(shù)據(jù)由不同的源數(shù)據(jù)進(jìn)行前向糾錯(cuò)編碼獲得,或者,對(duì)源數(shù)據(jù)塊中的全部源數(shù)據(jù)生成一 個(gè)校驗(yàn)數(shù)據(jù)。在生成校驗(yàn)數(shù)據(jù)之后,可以將校驗(yàn)數(shù)據(jù)也增加到源數(shù)據(jù)塊的最后,此時(shí),每個(gè) 校驗(yàn)數(shù)據(jù)對(duì)應(yīng)一個(gè)位置信息,該位置信息用于標(biāo)識(shí)該校驗(yàn)數(shù)據(jù)在源數(shù)據(jù)塊中的位置,參考 圖2,如果M-1行是源數(shù)據(jù)塊中最后添加的源數(shù)據(jù),則將校驗(yàn)數(shù)增加到M行至M+n行中,校驗(yàn) 數(shù)據(jù)可以采用ESI(圖2中的M,...M+n)作為位置信息;或者,生成校驗(yàn)數(shù)據(jù)后,校驗(yàn)數(shù)據(jù) 可以作為單獨(dú)的一個(gè)數(shù)據(jù)塊,此時(shí),校驗(yàn)數(shù)據(jù)不需要位置信息或采用獨(dú)立的位置信息。實(shí)際 中校驗(yàn)數(shù)據(jù)可以占用源數(shù)據(jù)塊的一個(gè)或多個(gè)符號(hào),例如圖2中的校驗(yàn)數(shù)據(jù)為符號(hào)M至符號(hào) M+n,校驗(yàn)數(shù)據(jù)在源數(shù)據(jù)塊中共占用了 n+1個(gè)符號(hào)。步驟13 通過第一數(shù)據(jù)包發(fā)送源數(shù)據(jù)塊中的源數(shù)據(jù),通過第二數(shù)據(jù)包發(fā)送校驗(yàn)數(shù) 據(jù)和源數(shù)據(jù)的位置信息;其中,第二數(shù)據(jù)包中攜帶源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系。源數(shù)據(jù)的位置信息可以是包括每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息;或者,包括每個(gè)源 數(shù)據(jù)對(duì)應(yīng)的位置信息和最后一個(gè)源數(shù)據(jù)的結(jié)束位置;或者,包括每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信 息和最后一個(gè)源數(shù)據(jù)的長度;或者,包括每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息和源數(shù)據(jù)總共的長度; 或者,包括每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息和每個(gè)源數(shù)據(jù)的長度;或者,包括每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息和第一個(gè)校驗(yàn)數(shù)據(jù)的起始位置。由于源數(shù)據(jù)和源數(shù)據(jù)的位置信息是分開傳送的, 所以攜帶源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系是為了,使在第一數(shù)據(jù)包中攜帶的源數(shù)據(jù) 與在第二數(shù)據(jù)包中攜帶的位置信息能夠相互對(duì)應(yīng),即解碼端根據(jù)該對(duì)應(yīng)關(guān)系可以將第一數(shù) 據(jù)包中攜帶的源數(shù)據(jù)與第二數(shù)據(jù)包中攜帶的位置信息對(duì)應(yīng)起來,該對(duì)應(yīng)關(guān)系的具體實(shí)現(xiàn)方 式不限,只要能夠?qū)崿F(xiàn)源數(shù)據(jù)與位置信息的對(duì)應(yīng)即可。源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng) 關(guān)系可以是源數(shù)據(jù)的位置信息與源數(shù)據(jù)的編號(hào)的對(duì)應(yīng)關(guān)系,或者,源數(shù)據(jù)的位置信息與源 數(shù)據(jù)的序號(hào)的對(duì)應(yīng)關(guān)系,或者,源數(shù)據(jù)的位置信息與源數(shù)據(jù)的其他標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;在實(shí)際 中,只需要將源數(shù)據(jù)的位置信息與源數(shù)據(jù)的標(biāo)識(shí)(源數(shù)據(jù)的編號(hào)、序號(hào)或其他標(biāo)識(shí))按照一 定的規(guī)則攜帶在第二數(shù)據(jù)包中即可,解碼端可以按照相同的規(guī)則解出源數(shù)據(jù)的位置信息與 源數(shù)據(jù)的標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系。第一數(shù)據(jù)包和第二數(shù)據(jù)包是不同的數(shù)據(jù)包,其中,第一數(shù)據(jù)包僅用于封裝源數(shù)據(jù), 第二數(shù)據(jù)包用于封裝除源數(shù)據(jù)之外的其他數(shù)據(jù)或信息。在封裝第二數(shù)據(jù)包時(shí),可以將校驗(yàn) 數(shù)據(jù)和源數(shù)據(jù)的位置信息分別封裝,此時(shí),將校驗(yàn)數(shù)據(jù)封裝為校驗(yàn)數(shù)據(jù)包,將源數(shù)據(jù)的位置 信息封裝為位置數(shù)據(jù)包,并在校驗(yàn)數(shù)據(jù)包或位置數(shù)據(jù)包中攜帶源數(shù)據(jù)的位置信息與源數(shù)據(jù) 的對(duì)應(yīng)關(guān)系,校驗(yàn)數(shù)據(jù)包和位置數(shù)據(jù)包可以采用不同的類型標(biāo)識(shí)進(jìn)行區(qū)別;或者,將校驗(yàn)數(shù) 據(jù)和源數(shù)據(jù)的位置信息封裝在同一個(gè)第二數(shù)據(jù)包中,并在第二數(shù)據(jù)包中攜帶源數(shù)據(jù)的位置 信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系。其中,如果校驗(yàn)數(shù)據(jù)較多,可以對(duì)校驗(yàn)數(shù)據(jù)進(jìn)行劃分,采用多個(gè) 數(shù)據(jù)包進(jìn)行傳輸,例如將校驗(yàn)數(shù)據(jù)占用的多個(gè)符號(hào)的數(shù)據(jù)分開傳輸,每個(gè)數(shù)據(jù)包中傳輸一 個(gè)符號(hào)的校驗(yàn)數(shù)據(jù)。由于源數(shù)據(jù)塊的數(shù)量可能為多個(gè),因此,在第二數(shù)據(jù)包中攜帶的每個(gè)源數(shù)據(jù)對(duì)應(yīng) 的位置信息可以進(jìn)一步包括源數(shù)據(jù)塊標(biāo)號(hào)(SBN,Source BlockNumber),以確定源數(shù)據(jù)所在 的源數(shù)據(jù)塊,例如,每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息包括SBN和起始行ESI,則根據(jù)SBN可以確定 源數(shù)據(jù)所在的源數(shù)據(jù)塊,根據(jù)起始行ESI可以確定源數(shù)據(jù)在該源數(shù)據(jù)塊中的具體位置。另 外,在具體應(yīng)用中,如果源數(shù)據(jù)來自不同的數(shù)據(jù)流,在第二數(shù)據(jù)包中攜帶的每個(gè)源數(shù)據(jù)對(duì)應(yīng) 的位置信息可以進(jìn)一步包括流標(biāo)號(hào)F,用來區(qū)別不同的流;由于不同的流的源數(shù)據(jù)構(gòu)成同 一源數(shù)據(jù)塊時(shí),是否區(qū)分不同的流的數(shù)據(jù),并不影響對(duì)該源數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)編碼或解 碼,因此,該流標(biāo)號(hào)F為可選的;當(dāng)位置信息中包括了流標(biāo)號(hào)時(shí),可以根據(jù)流標(biāo)號(hào)對(duì)不同的 流分別進(jìn)行前向糾錯(cuò)編碼和解碼。當(dāng)然,在實(shí)際中如果只有一個(gè)源數(shù)據(jù)塊,并且所有的源數(shù) 據(jù)都來自相同的流,則在第二數(shù)據(jù)包中攜帶的每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息則不需包括源數(shù) 據(jù)塊標(biāo)號(hào)SBN和流標(biāo)號(hào)F。一個(gè)源數(shù)據(jù)塊對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)和源數(shù)據(jù)的位置信息,可以封裝為一個(gè)或者多個(gè)第 二數(shù)據(jù)包,例如,將一個(gè)源數(shù)據(jù)塊對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)以符號(hào)為單位進(jìn)行傳輸,每個(gè)符號(hào)的校驗(yàn) 數(shù)據(jù)使用一個(gè)第二數(shù)據(jù)包傳輸,源數(shù)據(jù)的位置信息采用一個(gè)第二數(shù)據(jù)包傳輸,并在傳輸位 置信息的第二數(shù)據(jù)包中攜帶源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系。當(dāng)構(gòu)造了多個(gè)源數(shù) 據(jù)塊時(shí),不同源數(shù)據(jù)塊對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)及其源數(shù)據(jù)的位置信息可以封裝在一個(gè)第二數(shù)據(jù)包 中,并在該第二數(shù)據(jù)包中攜帶源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系;或者,不同源數(shù)據(jù)塊 對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)及其源數(shù)據(jù)的位置信息可以分別封裝在不同的第二數(shù)據(jù)包中,即每個(gè)源數(shù) 據(jù)塊對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)和該源數(shù)據(jù)塊中源數(shù)據(jù)的位置信息封裝在一個(gè)第二數(shù)據(jù)包中,并在該 第二數(shù)據(jù)包中攜帶該源數(shù)據(jù)塊的源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系。
在發(fā)送數(shù)據(jù)包時(shí),分別發(fā)送第一數(shù)據(jù)包和第二數(shù)據(jù)包。第一數(shù)據(jù)包和第二數(shù)據(jù)包 可以采用各種傳輸協(xié)議進(jìn)行傳送,例如RTP、UDP、RTCP等。本發(fā)明各實(shí)施例中,第一數(shù)據(jù) 包和第二數(shù)據(jù)包僅是用于區(qū)別數(shù)據(jù)包類型,而不限定數(shù)據(jù)包的數(shù)量,例如在通過第一數(shù)據(jù) 包發(fā)送源數(shù)據(jù)塊中的源數(shù)據(jù)時(shí),可以將多個(gè)源數(shù)據(jù)放在一個(gè)第一數(shù)據(jù)包中發(fā)送,也可以在 每個(gè)第一數(shù)據(jù)包中只攜帶一個(gè)源數(shù)據(jù);在通過第二數(shù)據(jù)包發(fā)送校驗(yàn)數(shù)據(jù)和源數(shù)據(jù)的位置 信息時(shí),可以將多個(gè)源數(shù)據(jù)塊對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)和源數(shù)據(jù)的位置信息放在一個(gè)第一數(shù)據(jù)包中 發(fā)送,也可以在每個(gè)第二數(shù)據(jù)包中只攜帶一個(gè)源數(shù)據(jù)塊對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)和源數(shù)據(jù)的位置信 息;在通過第二數(shù)據(jù)包發(fā)送校驗(yàn)數(shù)據(jù)和源數(shù)據(jù)的位置信息時(shí),也可以將第二數(shù)據(jù)包進(jìn)一步 細(xì)分為校驗(yàn)數(shù)據(jù)包和位置數(shù)據(jù)包,可以在每個(gè)校驗(yàn)數(shù)據(jù)包中只攜帶一個(gè)源數(shù)據(jù)塊對(duì)應(yīng)的校 驗(yàn)數(shù)據(jù),在每個(gè)位置數(shù)據(jù)包中只攜帶一個(gè)源數(shù)據(jù)塊對(duì)應(yīng)的源數(shù)據(jù)的位置信息,不同數(shù)據(jù)塊 對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)采用不同的校驗(yàn)數(shù)據(jù)包攜帶,不同數(shù)據(jù)塊對(duì)應(yīng)的位置信息采用不同的位置 數(shù)據(jù)包攜帶。本實(shí)施例中,在步驟11之前,還可以包括步驟10 獲取多個(gè)源數(shù)據(jù)。獲取多個(gè)源 數(shù)據(jù)的方式可以是接收通過網(wǎng)絡(luò)傳輸?shù)亩鄠€(gè)數(shù)據(jù)包;或者,接收上層凈載荷。當(dāng)接收通過 網(wǎng)絡(luò)傳輸?shù)亩鄠€(gè)數(shù)據(jù)包時(shí),由于該接收的多個(gè)數(shù)據(jù)包可以直接轉(zhuǎn)發(fā),因此,該接收的多個(gè)數(shù) 據(jù)包即是步驟13中的第一數(shù)據(jù)包。本實(shí)施例中,通過在編碼端對(duì)源數(shù)據(jù)塊中的源數(shù)據(jù)進(jìn)行前向糾錯(cuò)編碼,生成校驗(yàn) 數(shù)據(jù),并將源數(shù)據(jù)在源數(shù)據(jù)塊中的位置信息和校驗(yàn)數(shù)據(jù)攜帶在第二數(shù)據(jù)包中向解碼端發(fā) 送,而源數(shù)據(jù)通過第一數(shù)據(jù)包向解碼端發(fā)送,使得源數(shù)據(jù)與校驗(yàn)數(shù)據(jù)以及源數(shù)據(jù)的位置信 息分開采用不同的數(shù)據(jù)包發(fā)送,不改變承載源數(shù)據(jù)的第一數(shù)據(jù)包的結(jié)構(gòu),從而沒有前向糾 錯(cuò)功能的解碼端可以丟棄第二數(shù)據(jù)包,只根據(jù)第一數(shù)據(jù)包進(jìn)行解碼,同時(shí),有前向糾錯(cuò)能夠 的解碼端可以根據(jù)校驗(yàn)數(shù)據(jù)以及源數(shù)據(jù)的位置信息,利用校驗(yàn)數(shù)據(jù)和接收到的源數(shù)據(jù)進(jìn)行 前向糾錯(cuò)解碼,恢復(fù)丟失的源數(shù)據(jù),所以,本發(fā)明實(shí)施例提供的技術(shù)方案即能夠與現(xiàn)有通信 系統(tǒng)兼容,又可以有效的利用前向糾錯(cuò)恢復(fù)丟失的源數(shù)據(jù)。實(shí)施例二如附圖3所示,本發(fā)明實(shí)施例提供了一種前向糾錯(cuò)解碼方法,該方法包括以下步 驟步驟31 接收第一數(shù)據(jù)包和第二數(shù)據(jù)包;其中,第一數(shù)據(jù)包中攜帶源數(shù)據(jù),第二數(shù) 據(jù)包中攜帶校驗(yàn)數(shù)據(jù)、源數(shù)據(jù)的位置信息、以及源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系。源數(shù)據(jù)的位置信息可以是包括每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息;或者,包括每個(gè)源 數(shù)據(jù)對(duì)應(yīng)的位置信息和最后一個(gè)源數(shù)據(jù)的結(jié)束位置;或者,包括每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信 息和最后一個(gè)源數(shù)據(jù)的長度;或者,包括每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息和源數(shù)據(jù)總共的長度; 或者,包括每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息和每個(gè)源數(shù)據(jù)的長度;或者,包括每個(gè)源數(shù)據(jù)對(duì)應(yīng)的 位置信息和第一個(gè)校驗(yàn)數(shù)據(jù)的起始位置。源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系可以是 源數(shù)據(jù)的位置信息與源數(shù)據(jù)的編號(hào)的對(duì)應(yīng)關(guān)系,或者,源數(shù)據(jù)的位置信息與源數(shù)據(jù)的序號(hào) 的對(duì)應(yīng)關(guān)系,或者,源數(shù)據(jù)的位置信息與源數(shù)據(jù)的其他標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;在實(shí)際中,只需要 將源數(shù)據(jù)的位置信息與源數(shù)據(jù)的標(biāo)識(shí)(源數(shù)據(jù)的編號(hào)、序號(hào)或其他標(biāo)識(shí))按照一定的規(guī)則 攜帶在第二數(shù)據(jù)包中即可,解碼端可以按照相同的規(guī)則解出源數(shù)據(jù)的位置信息與源數(shù)據(jù)的 標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系。
步驟32 根據(jù)第二數(shù)據(jù)包中攜帶的源數(shù)據(jù)的位置信息以及源數(shù)據(jù)的位置信息與 源數(shù)據(jù)的對(duì)應(yīng)關(guān)系,利用第一數(shù)據(jù)包中攜帶的多個(gè)源數(shù)據(jù)生成重構(gòu)數(shù)據(jù)塊;其中,每個(gè)源數(shù)據(jù)對(duì)應(yīng)一個(gè)位置信息,該位置信息用于標(biāo)識(shí)該源數(shù)據(jù)在源數(shù)據(jù)塊 中的位置;所述對(duì)應(yīng)關(guān)系用于指示每個(gè)第一數(shù)據(jù)包中的源數(shù)據(jù)與第二數(shù)據(jù)包中該源數(shù)據(jù)的 位置信息的對(duì)應(yīng)。根據(jù)源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系,可以確定每個(gè)第一數(shù)據(jù)包中的源數(shù) 據(jù)對(duì)應(yīng)的位置信息,該對(duì)應(yīng)的位置信息攜帶在第二數(shù)據(jù)包中;之后,根據(jù)源數(shù)據(jù)對(duì)應(yīng)的位置 信息和該源數(shù)據(jù)可以生成重構(gòu)數(shù)據(jù)塊,該重構(gòu)數(shù)據(jù)塊是基于接收的第一數(shù)據(jù)包和第二數(shù)據(jù) 包中的內(nèi)容,對(duì)編碼端構(gòu)造的源數(shù)據(jù)塊的重新構(gòu)造。例如,參考圖2,源數(shù)據(jù)的位置信息是用 ESI指示的,則在生成重構(gòu)數(shù)據(jù)塊時(shí),根據(jù)源數(shù)據(jù)的ESI將源數(shù)據(jù)填入重構(gòu)數(shù)據(jù)塊的相應(yīng)位 置,即以該ESI對(duì)應(yīng)的符號(hào)作為起始行,將該源數(shù)據(jù)填入重構(gòu)數(shù)據(jù)塊,生成重構(gòu)數(shù)據(jù)塊時(shí)源 數(shù)據(jù)的填入方式與構(gòu)造源數(shù)據(jù)塊時(shí)的填入方式類似,在此不再贅述。利用第一數(shù)據(jù)包中攜帶的多個(gè)源數(shù)據(jù)生成重構(gòu)數(shù)據(jù)塊可以是當(dāng)源數(shù)據(jù)的位置信 息包括每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息時(shí),則根據(jù)每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息將接收到的每個(gè) 源數(shù)據(jù)填入重構(gòu)數(shù)據(jù)塊,并以最后一個(gè)源數(shù)據(jù)的結(jié)束位置作為重構(gòu)數(shù)據(jù)塊中源數(shù)據(jù)的結(jié)束 位置;或者,當(dāng)源數(shù)據(jù)的位置信息包括每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息和最后一個(gè)源數(shù)據(jù)的結(jié) 束位置時(shí),則根據(jù)每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息將接收到的每個(gè)源數(shù)據(jù)填入重構(gòu)數(shù)據(jù)塊,并 以最后一個(gè)源數(shù)據(jù)的結(jié)束位置作為重構(gòu)數(shù)據(jù)塊中源數(shù)據(jù)的結(jié)束位置;或者,當(dāng)源數(shù)據(jù)的位 置信息包括每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息和最后一個(gè)源數(shù)據(jù)的長度時(shí),則根據(jù)每個(gè)源數(shù)據(jù)對(duì) 應(yīng)的位置信息將接收到的每個(gè)源數(shù)據(jù)填入重構(gòu)數(shù)據(jù)塊,并根據(jù)最后一個(gè)源數(shù)據(jù)的長度和最 后一個(gè)源數(shù)據(jù)的位置信息確定重構(gòu)數(shù)據(jù)塊中源數(shù)據(jù)的結(jié)束位置,例如,最后一個(gè)源數(shù)據(jù)的 長度為n個(gè)符號(hào),最后一個(gè)源數(shù)據(jù)的位置信息指示的起始行為第N行,則重構(gòu)數(shù)據(jù)塊中源數(shù) 據(jù)的結(jié)束位置為第(N+n-1)行;或者,當(dāng)源數(shù)據(jù)的位置信息包括每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信 息和源數(shù)據(jù)總共的長度,則根據(jù)每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息將接收到的每個(gè)源數(shù)據(jù)填入重 構(gòu)數(shù)據(jù)塊,并以源數(shù)據(jù)總共的長度確定重構(gòu)數(shù)據(jù)塊中源數(shù)據(jù)的結(jié)束位置,例如,源數(shù)據(jù)總共 的長度為Q個(gè)符號(hào),則重構(gòu)數(shù)據(jù)塊中源數(shù)據(jù)的結(jié)束位置為第Q行;或者,當(dāng)源數(shù)據(jù)的位置信 息包括每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息和每個(gè)源數(shù)據(jù)的長度時(shí),則根據(jù)每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置 信息將接收到的每個(gè)源數(shù)據(jù)填入重構(gòu)數(shù)據(jù)塊,并根據(jù)最后一個(gè)源數(shù)據(jù)的長度和最后一個(gè)源 數(shù)據(jù)的位置信息確定重構(gòu)數(shù)據(jù)塊中源數(shù)據(jù)的結(jié)束位置;或者,當(dāng)源數(shù)據(jù)的位置信息包括每 個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息和第一個(gè)校驗(yàn)數(shù)據(jù)的起始位置時(shí),則根據(jù)每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置 信息將接收到的每個(gè)源數(shù)據(jù)填入重構(gòu)數(shù)據(jù)塊,并根據(jù)第一個(gè)校驗(yàn)數(shù)據(jù)的起始位置確定重構(gòu) 數(shù)據(jù)塊中源數(shù)據(jù)的結(jié)束位置,例如,第一個(gè)校驗(yàn)數(shù)據(jù)的起始位置為第M行,則重構(gòu)數(shù)據(jù)塊中 源數(shù)據(jù)的結(jié)束位置為第(Q-1)行。如果在第二數(shù)據(jù)包中攜帶的每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息還包括源數(shù)據(jù)塊標(biāo)號(hào) SBN,則首先根據(jù)位置信息中的SBN確定源數(shù)據(jù)對(duì)應(yīng)的重構(gòu)數(shù)據(jù)塊,然后以位置信息中的 ESI對(duì)應(yīng)的符號(hào)作為起始行,將該源數(shù)據(jù)填入該重構(gòu)數(shù)據(jù)塊。如果在第二數(shù)據(jù)包中攜帶的 每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息還包括流標(biāo)號(hào)F,則在將源數(shù)據(jù)填入重構(gòu)數(shù)據(jù)塊時(shí),將流標(biāo)號(hào)F 也填入重構(gòu)數(shù)據(jù)塊,例如參考圖2,將流標(biāo)號(hào)填入該源數(shù)據(jù)的ESI對(duì)應(yīng)的符號(hào)的第一字節(jié) 中。源數(shù)據(jù)塊標(biāo)號(hào)SBN和流標(biāo)號(hào)F在編碼端構(gòu)造源數(shù)據(jù)塊時(shí)是可選的,解碼端在生成重構(gòu)數(shù)據(jù)塊時(shí)只需根據(jù)編碼端的配置相應(yīng)的處理數(shù)據(jù)包中的信息即可,所以上述對(duì)源數(shù)據(jù)塊標(biāo) 號(hào)SBN和流標(biāo)號(hào)F也不是必須的。步驟33 利用第二數(shù)據(jù)包中攜帶的校驗(yàn)數(shù)據(jù),對(duì)重構(gòu)數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)解碼, 恢復(fù)丟失的源數(shù)據(jù)。在步驟32中,利用接收的第一數(shù)據(jù)包中攜帶的多個(gè)源數(shù)據(jù)生成重構(gòu)數(shù)據(jù)塊時(shí),由 于數(shù)據(jù)包在傳輸時(shí)可能丟失,導(dǎo)致重構(gòu)數(shù)據(jù)塊中缺失了部分源數(shù)據(jù),所以,可以利用接收的 第二數(shù)據(jù)包中攜帶的校驗(yàn)數(shù)據(jù),對(duì)重構(gòu)數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)解碼,生成缺失的源數(shù)據(jù),從而 恢復(fù)出與編碼端源數(shù)據(jù)塊相同的數(shù)據(jù)塊。對(duì)重構(gòu)數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)解碼可以是利用接收的一個(gè)或多個(gè)校驗(yàn)數(shù)據(jù)和接收 的多個(gè)源數(shù)據(jù),生成未接收到的缺失的源數(shù)據(jù),從而在解碼端恢復(fù)出與編碼端源數(shù)據(jù)塊相 同的數(shù)據(jù)塊。其中,當(dāng)有多個(gè)校驗(yàn)數(shù)據(jù)時(shí),不同的校驗(yàn)數(shù)據(jù)可以對(duì)不同的源數(shù)據(jù)進(jìn)行前向糾 錯(cuò)解碼;或者,當(dāng)只有一個(gè)校驗(yàn)數(shù)據(jù)時(shí),利用該一個(gè)校驗(yàn)數(shù)據(jù)對(duì)接收的多個(gè)源數(shù)據(jù)進(jìn)行前向 糾錯(cuò)解碼。本實(shí)施例中,通過在解碼端分別接收承載源數(shù)據(jù)的第一數(shù)據(jù)包和承載校驗(yàn)數(shù)據(jù)以 及源數(shù)據(jù)位置信息的第二數(shù)據(jù)包,使得源數(shù)據(jù)與校驗(yàn)數(shù)據(jù)以及源數(shù)據(jù)的位置信息分開采用 不同的數(shù)據(jù)包發(fā)送,不改變承載源數(shù)據(jù)的第一數(shù)據(jù)包的結(jié)構(gòu),從而沒有前向糾錯(cuò)功能的解 碼端可以丟棄第二數(shù)據(jù)包,只根據(jù)第一數(shù)據(jù)包進(jìn)行解碼,同時(shí),有前向糾錯(cuò)能夠的解碼端可 以根據(jù)校驗(yàn)數(shù)據(jù)以及源數(shù)據(jù)的位置信息,利用校驗(yàn)數(shù)據(jù)和接收到的源數(shù)據(jù)進(jìn)行前向糾錯(cuò)解 碼,恢復(fù)丟失的源數(shù)據(jù),所以,本發(fā)明實(shí)施例提供的技術(shù)方案即能夠與現(xiàn)有通信系統(tǒng)兼容, 又可以有效的利用前向糾錯(cuò)恢復(fù)丟失的源數(shù)據(jù)。實(shí)施例三如附圖4所示,本發(fā)明實(shí)施例提供了一種前向糾錯(cuò)編解碼方法,該方法包括以下 步驟步驟40 編碼設(shè)備接收多個(gè)源數(shù)據(jù)包;其中,源數(shù)據(jù)包的格式不限,源數(shù)據(jù)包可以來自不同的數(shù)據(jù)流,用流標(biāo)號(hào)F來區(qū)別 不同數(shù)據(jù)流的源數(shù)據(jù)包。步驟41 編碼設(shè)備利用接收的多個(gè)源數(shù)據(jù)包構(gòu)造源數(shù)據(jù)塊;每個(gè)源數(shù)據(jù)包對(duì)應(yīng)一 個(gè)位置信息,該位置信息用于標(biāo)識(shí)該源數(shù)據(jù)包在源數(shù)據(jù)塊中的位置;其中,利用多個(gè)源數(shù)據(jù)包構(gòu)造源數(shù)據(jù)塊的實(shí)現(xiàn)方式可以參考圖2,圖2示出了一個(gè) 源數(shù)據(jù)塊,源數(shù)據(jù)塊的每行表示一個(gè)符號(hào),每個(gè)符號(hào)對(duì)應(yīng)一個(gè)符號(hào)標(biāo)識(shí)(如圖2中源數(shù)據(jù)塊 左邊的一列數(shù)字所示),圖2中F表示源數(shù)據(jù)包對(duì)應(yīng)的流標(biāo)號(hào),L表示源數(shù)據(jù)包的長度(即 數(shù)據(jù)區(qū)D的長度),D表示數(shù)據(jù)區(qū),每個(gè)數(shù)據(jù)區(qū)D中填充了一個(gè)源數(shù)據(jù)包,一個(gè)數(shù)據(jù)區(qū)D可以 占用源數(shù)據(jù)塊的一個(gè)多個(gè)符號(hào),P表示剩余位,可以按照一定的規(guī)則對(duì)剩余位進(jìn)行填充。步驟42 編碼設(shè)備對(duì)構(gòu)造的源數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)編碼,生成校驗(yàn)數(shù)據(jù);參考圖2,圖2中R表示校驗(yàn)數(shù)據(jù),一個(gè)源數(shù)據(jù)塊的可以有一個(gè)多個(gè)符號(hào)的校驗(yàn)數(shù) 據(jù),在生成校驗(yàn)數(shù)據(jù)后也可以給校驗(yàn)數(shù)據(jù)對(duì)應(yīng)的符號(hào)標(biāo)識(shí),以便解碼時(shí)可以重新恢復(fù)出圖2 所示的源數(shù)據(jù)塊。步驟43 編碼設(shè)備轉(zhuǎn)發(fā)接收的多個(gè)源數(shù)據(jù)包;由于接收的源數(shù)據(jù)包本身已經(jīng)是封裝好的數(shù)據(jù)包,可以對(duì)這些接收的數(shù)據(jù)包不做處理直接轉(zhuǎn)發(fā),此時(shí),接收的多個(gè)源數(shù)據(jù)包即為第一數(shù)據(jù)包,參考圖5,圖5示例性的給 出了一種源數(shù)據(jù)包的格式,該源數(shù)據(jù)包包括IP頭部(Internet Protocol Header)、UDP 頭部(User Datagram Protocol Header)禾口原始 UDP 凈載荷(Original User Datagram Protocol Payload);具體的,可以在接收到多個(gè)源數(shù)據(jù)包時(shí),復(fù)制接收的多個(gè)源數(shù)據(jù)包,將 復(fù)制的多個(gè)源數(shù)據(jù)包用于步驟41中的構(gòu)造和步驟42中的編碼,將接收的多個(gè)源數(shù)據(jù)包用 于步驟43中的轉(zhuǎn)發(fā)。步驟44 編碼設(shè)備通過第二數(shù)據(jù)包發(fā)送校驗(yàn)數(shù)據(jù)和源數(shù)據(jù)包的位置信息;其中, 第二數(shù)據(jù)包中攜帶源數(shù)據(jù)包的位置信息與源數(shù)據(jù)包的對(duì)應(yīng)關(guān)系;源數(shù)據(jù)包的位置信息以及源數(shù)據(jù)包的位置信息與源數(shù)據(jù)包的對(duì)應(yīng)關(guān)系有各種各 樣的實(shí)現(xiàn)形式,具體可以參考實(shí)施例一中的相關(guān)內(nèi)容。校驗(yàn)數(shù)據(jù)和位置信息以及對(duì)應(yīng)關(guān)系可以采用不同的第二數(shù)據(jù)包進(jìn)行傳輸,例如, 將校驗(yàn)數(shù)據(jù)封裝為校驗(yàn)數(shù)據(jù)包,將位置信息以及對(duì)應(yīng)關(guān)系封裝為位置數(shù)據(jù)包。參考圖6,圖 6示例性的給出了一種校驗(yàn)數(shù)據(jù)包的格式,該校驗(yàn)數(shù)據(jù)包包括IP頭部、UDP頭部、修復(fù)凈載 荷 ID(R印air FEC Payloadldentification)和修復(fù)凈載荷(R印air symbols),其中,修復(fù) 凈載荷即為生成的校驗(yàn)數(shù)據(jù),修復(fù)凈載荷ID包括該校驗(yàn)數(shù)據(jù)對(duì)應(yīng)的源數(shù)據(jù)塊的SBN以及在 該源數(shù)據(jù)塊中校驗(yàn)數(shù)據(jù)起始行的ESI ;參考圖7,圖7示例性的給出了一種校驗(yàn)數(shù)據(jù)包中修 復(fù)凈載荷ID的格式,該修復(fù)凈載荷ID包括校驗(yàn)數(shù)據(jù)對(duì)應(yīng)的源數(shù)據(jù)塊的SBN、在該源數(shù)據(jù)塊 中校驗(yàn)數(shù)據(jù)起始行的ESI、和該源數(shù)據(jù)塊中源數(shù)據(jù)包的總長度SBUSource Block Length, 源數(shù)據(jù)塊長度)。參考圖8,圖8示例性的給出了一種位置數(shù)據(jù)包的格式,該位置數(shù)據(jù)包包 括IP頭部、UDP頭部、位置信息和對(duì)應(yīng)關(guān)系;參考圖9,圖9示例性的給出了一種位置數(shù)據(jù)包 中位置信息和對(duì)應(yīng)關(guān)系的格式,該位置信息和對(duì)應(yīng)關(guān)系包括前向糾錯(cuò)ID(fec_id)、源數(shù)據(jù) 塊標(biāo)識(shí)(SBN)、流標(biāo)號(hào)(FlowID)、初始序列號(hào)(InitialSequence Number,ISN)、多個(gè) ESI,其 中,fec_id用于表示FEC編碼類型,可以確定SBN和ESI的格式,SBN標(biāo)識(shí)該位置信息和對(duì) 應(yīng)關(guān)系對(duì)應(yīng)的源數(shù)據(jù)塊,F(xiàn)lowID標(biāo)識(shí)該位置信息和對(duì)應(yīng)關(guān)系對(duì)應(yīng)的數(shù)據(jù)流的流ID,ISN標(biāo) 識(shí)該源數(shù)據(jù)塊中屬于某一 FlowID的第一個(gè)ESI對(duì)應(yīng)的源數(shù)據(jù)包的序列號(hào),length標(biāo)識(shí)該 位置信息和對(duì)應(yīng)關(guān)系中屬于某一 FlowID的信息的長度,多個(gè)ESI組成一個(gè)ESI列表,每個(gè) ESI標(biāo)識(shí)源數(shù)據(jù)塊中的一個(gè)源數(shù)據(jù)包。在圖9的位置信息和對(duì)應(yīng)關(guān)系中,源數(shù)據(jù)包的位置 信息包括源數(shù)據(jù)塊標(biāo)識(shí)、流標(biāo)號(hào)和該源數(shù)據(jù)塊的該數(shù)據(jù)流中的ESI列表。其中,ESI列表中 的多個(gè)ESI可以包括該源數(shù)據(jù)塊的該數(shù)據(jù)流中第一個(gè)源數(shù)據(jù)包的ESI的絕對(duì)值,和除第一 源數(shù)據(jù)包外的其他源數(shù)據(jù)包與其前一個(gè)源數(shù)據(jù)包的ESI的差值,由于同一數(shù)據(jù)流中的源數(shù) 據(jù)包一般在同一源數(shù)據(jù)塊中是連續(xù)的,因此,只要知道了該數(shù)據(jù)流中第一個(gè)源數(shù)據(jù)包的ESI 和之后每兩個(gè)相鄰源數(shù)據(jù)包的ESI差值,即可確定出該源數(shù)據(jù)塊的該數(shù)據(jù)流中各個(gè)源數(shù)據(jù) 包的ESI,使用差值可以有效減少ESI列表的長度;或者,該源數(shù)據(jù)塊的該數(shù)據(jù)流中各源數(shù) 據(jù)包的ESI的絕對(duì)值。對(duì)應(yīng)關(guān)系是通過如下方法實(shí)現(xiàn)由于同一數(shù)據(jù)流中的源數(shù)據(jù)包的序 列號(hào)是順序增加的,則只要知道源數(shù)據(jù)塊的某一數(shù)據(jù)流中的第一個(gè)源數(shù)據(jù)包的序列號(hào),則 可以確定之后的任一個(gè)源數(shù)據(jù)包的序列號(hào),因此,在圖9的位置信息和對(duì)應(yīng)關(guān)系中,只需攜 帶第一個(gè)源數(shù)據(jù)包的序列號(hào)即可得知各個(gè)源數(shù)據(jù)包的位置信息與序列號(hào)的對(duì)應(yīng),即確定源 數(shù)據(jù)包的位置信息與源數(shù)據(jù)包的對(duì)應(yīng)關(guān)系。根據(jù)圖9的位置信息和對(duì)應(yīng)關(guān)系的格式,圖10給出了一個(gè)具體的例子。從圖10示出的位置信息和對(duì)應(yīng)關(guān)系中,可以得到SBN為0的源數(shù)據(jù)塊中有兩條流,流ID為分別為 96和97。流ID為96的三個(gè)源數(shù)據(jù)包的序列號(hào)分別為14567,14568 = 14567+1,14569 = 14567+2 ;ESI為1、7 = 1+6,11 = 7+4 ;其中,序列號(hào)為14567源數(shù)據(jù)包對(duì)應(yīng)的ESI為1,序 列號(hào)為14568源數(shù)據(jù)包對(duì)應(yīng)的ESI為7,序列號(hào)為14569源數(shù)據(jù)包對(duì)應(yīng)的ESI為11。流ID 為97的兩個(gè)源數(shù)據(jù)包的序列號(hào)分別為5734,5735 = 5734+1 ;ESI為15、19 = 15+4 ;其中, 序列號(hào)為5734源數(shù)據(jù)包對(duì)應(yīng)的ESI為15,序列號(hào)為5735源數(shù)據(jù)包對(duì)應(yīng)的ESI為19。步驟45 解碼設(shè)備接收源數(shù)據(jù)包(即第一數(shù)據(jù)包)和第二數(shù)據(jù)包(校驗(yàn)數(shù)據(jù)包和 位置數(shù)據(jù)包);其中,校驗(yàn)數(shù)據(jù)包中攜帶校驗(yàn)數(shù)據(jù),位置數(shù)據(jù)包中攜帶各源數(shù)據(jù)包的位置信 息、以及源數(shù)據(jù)包的位置信息與源數(shù)據(jù)包的對(duì)應(yīng)關(guān)系;例如,接收如圖5所示的源數(shù)據(jù)包,第二數(shù)據(jù)包包括如圖6所示的校驗(yàn)數(shù)據(jù)包和如 圖7所示的位置數(shù)據(jù)包。步驟46 解碼設(shè)備根據(jù)第二數(shù)據(jù)包中攜帶的源數(shù)據(jù)包的位置信息以及源數(shù)據(jù)包 的位置信息與源數(shù)據(jù)包的對(duì)應(yīng)關(guān)系,利用接收的多個(gè)源數(shù)據(jù)包生成重構(gòu)數(shù)據(jù)塊。首先,解碼設(shè)備根據(jù)接收的一個(gè)或多個(gè)第二數(shù)據(jù)包確定源數(shù)據(jù)包的位置信息以及 源數(shù)據(jù)包的位置信息與源數(shù)據(jù)包的對(duì)應(yīng)關(guān)系,例如,接收如圖10所示的位置信息和對(duì)應(yīng)關(guān) 系,確定SBN為0的源數(shù)據(jù)塊中有兩條流,流ID為分別為96和97 ;流ID為96的數(shù)據(jù)流中 包括三個(gè)源數(shù)據(jù)包,序列號(hào)為14567源數(shù)據(jù)包對(duì)應(yīng)的ESI為1,序列號(hào)為14568源數(shù)據(jù)包對(duì) 應(yīng)的ESI為7,序列號(hào)為14569源數(shù)據(jù)包對(duì)應(yīng)的ESI為11 ;流ID為97的數(shù)據(jù)流中包括兩個(gè) 源數(shù)據(jù)包,序列號(hào)為5734源數(shù)據(jù)包對(duì)應(yīng)的ESI為15,序列號(hào)為5735源數(shù)據(jù)包對(duì)應(yīng)的ESI為 19。之后,解碼設(shè)備根據(jù)確定的源數(shù)據(jù)包的位置信息以及源數(shù)據(jù)包的位置信息與源數(shù) 據(jù)包的對(duì)應(yīng)關(guān)系,利用接收到的多個(gè)源數(shù)據(jù)包生成重構(gòu)數(shù)據(jù)塊。例如,解碼設(shè)備只接收到四 個(gè)源數(shù)據(jù)包,接收到的四個(gè)源數(shù)據(jù)包的序列號(hào)分別為14567,14568,5734,5735,丟失的一個(gè) 源數(shù)據(jù)包的序列號(hào)為14569,則根據(jù)圖10所示的位置信息和對(duì)應(yīng)關(guān)系,將接收到的四個(gè)源 數(shù)據(jù)包(序列號(hào)分別為14567,14568,5734,5735)按照其對(duì)應(yīng)的位置信息填入重構(gòu)數(shù)據(jù)塊, 具體的,根據(jù)序列號(hào)14567的源數(shù)據(jù)包對(duì)應(yīng)的ESI值1,以重構(gòu)數(shù)據(jù)塊中第1行為起始行將 序列號(hào)14567的源數(shù)據(jù)包填入重構(gòu)數(shù)據(jù)塊,根據(jù)序列號(hào)14568的源數(shù)據(jù)包對(duì)應(yīng)的ESI值7, 以重構(gòu)數(shù)據(jù)塊中第7行為起始行將序列號(hào)14568的源數(shù)據(jù)包填入重構(gòu)數(shù)據(jù)塊,根據(jù)序列號(hào) 5734的源數(shù)據(jù)包對(duì)應(yīng)的ESI值15,以重構(gòu)數(shù)據(jù)塊中第15行為起始行將序列號(hào)5734的源數(shù) 據(jù)包填入重構(gòu)數(shù)據(jù)塊,根據(jù)序列號(hào)5735的源數(shù)據(jù)包對(duì)應(yīng)的ESI值19,以重構(gòu)數(shù)據(jù)塊中第19 行為起始行將序列號(hào)5735的源數(shù)據(jù)包填入重構(gòu)數(shù)據(jù)塊,生成的重構(gòu)數(shù)據(jù)塊如圖11所示。其 中,如果最后一個(gè)源數(shù)據(jù)包(序列號(hào)5735)丟失,則重構(gòu)數(shù)據(jù)塊的結(jié)束位置可以從圖7示出 的修復(fù)凈載荷ID中確定,修復(fù)凈載荷ID中攜帶了校驗(yàn)數(shù)據(jù)起始行的ESI,假設(shè)校驗(yàn)數(shù)據(jù)起 始行的ESI值為26,則重構(gòu)數(shù)據(jù)塊中源數(shù)據(jù)包的結(jié)束位置為第25行;或者,由于是否確定 最后一個(gè)源數(shù)據(jù)包(序列號(hào)5735)的長度,并不影響前向糾錯(cuò)解碼,因此,如果最后一個(gè)源 數(shù)據(jù)包(序列號(hào)5735)丟失,則將接收到的最后一個(gè)源數(shù)據(jù)包(例如序列號(hào)5734的源數(shù)據(jù) 包)填入源數(shù)據(jù)塊后,不確定源數(shù)據(jù)塊中源數(shù)據(jù)包的結(jié)束位置,只確定源數(shù)據(jù)塊中最后一 個(gè)源數(shù)據(jù)包丟失即可。在圖11的重構(gòu)數(shù)據(jù)塊中,第1行至6行填充了序列號(hào)14567的源數(shù) 據(jù)包,第7至10填充了序列號(hào)14568的源數(shù)據(jù)包,由于序列號(hào)14569的源數(shù)據(jù)包丟失,則第
1511至14行中不填充數(shù)據(jù),第15至18填充了序列號(hào)5734的源數(shù)據(jù)包,第19至25填充了 序列號(hào)5735的源數(shù)據(jù)包;各個(gè)源數(shù)據(jù)包填充時(shí),源數(shù)據(jù)包對(duì)應(yīng)的長度L、流標(biāo)號(hào)F、填充位P 可以根據(jù)實(shí)際設(shè)置。步驟47 利用校驗(yàn)數(shù)據(jù)包中攜帶的校驗(yàn)數(shù)據(jù),對(duì)重構(gòu)數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)解碼, 恢復(fù)丟失的源數(shù)據(jù)包。例如,重構(gòu)數(shù)據(jù)塊如圖11所示,序列號(hào)14569的源數(shù)據(jù)包丟失,則可以根據(jù)校驗(yàn)數(shù) 據(jù)和接收到的其他源數(shù)據(jù)包(序列號(hào)分別為14567,14568,5734,5735)中的部分或全部,進(jìn) 行前向糾錯(cuò)解碼,從而恢復(fù)出丟失的序列號(hào)14569的源數(shù)據(jù)包,例如,根據(jù)校驗(yàn)數(shù)據(jù)和序列 號(hào)14568的源數(shù)據(jù)包進(jìn)行前向糾錯(cuò)解碼恢復(fù)序列號(hào)14569的源數(shù)據(jù)包。因?yàn)榭梢愿鶕?jù)一個(gè) 源數(shù)據(jù)塊中的全部源數(shù)據(jù)包生成一個(gè)校驗(yàn)數(shù)據(jù),或根據(jù)不同的一個(gè)或多個(gè)源數(shù)據(jù)包生成不 同的校驗(yàn)數(shù)據(jù),所以,在利用校驗(yàn)數(shù)據(jù)進(jìn)行前向糾錯(cuò)解碼時(shí),可以利用一個(gè)或多個(gè)校驗(yàn)數(shù)據(jù) 和接收到的源數(shù)據(jù)包中的部分或全部,來恢復(fù)丟失的一個(gè)或多個(gè)源數(shù)據(jù)包,具體使用時(shí),可 以根據(jù)前向糾錯(cuò)算法的不同來靈活處理,本發(fā)明實(shí)施例在此不做限定。在其他實(shí)施例中,第二數(shù)據(jù)包的格式可以多種多樣,本實(shí)施例僅僅是示例性的給 出了一些具體的報(bào)文格式,這些報(bào)文格式是為了更好的理解發(fā)明,而不構(gòu)成對(duì)本發(fā)明的限 制。例如,第二數(shù)據(jù)包可以是RTP報(bào)文、RTCP報(bào)文或者是自定義的新報(bào)文等等。在具體傳 輸源數(shù)據(jù)包的位置信息以及源數(shù)據(jù)包的位置信息與源數(shù)據(jù)包的對(duì)應(yīng)關(guān)系時(shí),可以將源數(shù)據(jù) 包的位置信息以及源數(shù)據(jù)包的位置信息與源數(shù)據(jù)包的對(duì)應(yīng)關(guān)系分為多個(gè)第二數(shù)據(jù)包進(jìn)行 傳送。另外,在編碼端,編碼設(shè)備為了保證校驗(yàn)數(shù)據(jù)或源數(shù)據(jù)包的位置信息以及源數(shù)據(jù) 包的位置信息與源數(shù)據(jù)包的對(duì)應(yīng)關(guān)系傳輸?shù)目煽啃?,可以多次發(fā)送攜帶校驗(yàn)數(shù)據(jù)的校驗(yàn)數(shù) 據(jù)包,和/或多次發(fā)送攜帶位置信息與對(duì)應(yīng)關(guān)系的位置數(shù)據(jù)包;例如,連續(xù)發(fā)送多個(gè)相同的 位置數(shù)據(jù)包,或者,穿插在其他數(shù)據(jù)包(第一數(shù)據(jù)包和/或校驗(yàn)數(shù)據(jù)包)中發(fā)送多個(gè)相同的 位置數(shù)據(jù)包,以減小位置數(shù)據(jù)包丟失的概率。而且,編碼設(shè)備利用接收的多個(gè)源數(shù)據(jù)包構(gòu)造 源數(shù)據(jù)塊時(shí),可以選擇接收的多個(gè)源數(shù)據(jù)包中的部分源數(shù)據(jù)包構(gòu)造源數(shù)據(jù)塊,例如,只選擇 視頻數(shù)據(jù)流中的I幀數(shù)據(jù)包構(gòu)造源數(shù)據(jù)塊,而P幀、B幀不用于構(gòu)造源數(shù)據(jù)塊。如果選擇多 個(gè)源數(shù)據(jù)包中的部分源數(shù)據(jù)包構(gòu)造源數(shù)據(jù)塊,則在位置數(shù)據(jù)包中,只需傳輸選擇的源數(shù)據(jù) 包的位置信息以及對(duì)應(yīng)關(guān)系,例如可以在位置數(shù)據(jù)包(參考圖9)中規(guī)定其中不參與構(gòu)造 源數(shù)據(jù)塊的源數(shù)據(jù)包的ESI字段為某一特殊值(比如OxFFFF);或者,在位置數(shù)據(jù)包中將只 包含一系列連續(xù)源數(shù)據(jù)包的初始序列號(hào),進(jìn)一步擴(kuò)展為包含參與構(gòu)造源數(shù)據(jù)塊的源數(shù)據(jù)包 的多個(gè)不同源數(shù)據(jù)包段的起始序列號(hào),參考圖12,圖12示例性的給出了一種位置數(shù)據(jù)包中 位置信息和對(duì)應(yīng)關(guān)系的格式,圖12中與圖9相同的部分不再重復(fù),其中,序列號(hào)(Sequence Number, SN)標(biāo)識(shí)該源數(shù)據(jù)塊中包含的不同源數(shù)據(jù)包段的起始序列號(hào),ESI計(jì)數(shù)值(ESI Count, EC)標(biāo)識(shí)該源數(shù)據(jù)塊中包含的不同源數(shù)據(jù)包段中源數(shù)據(jù)包的計(jì)數(shù)值,EC用于確定下 一個(gè)SN的位置。根據(jù)圖12的位置信息和對(duì)應(yīng)關(guān)系的格式,圖13給出了一個(gè)具體的例子。從圖13 示出的位置信息和對(duì)應(yīng)關(guān)系中,可以得到SBN為0的源數(shù)據(jù)塊中有兩條流,流ID為分別為 96和97。流ID為96的兩段源數(shù)據(jù)包分別以序列號(hào)14567、14587開始,以14567開始的 3個(gè)數(shù)據(jù)包的ESI為0、6 = 6+0、10 = 6+4,以14587開始的2個(gè)數(shù)據(jù)包的ESI為13、17 =13+4 ;流ID為97的只有一段段源數(shù)據(jù)包,以序列號(hào)5734開始的1個(gè)數(shù)據(jù)報(bào)的ESI為19。本實(shí)施例中,通過在編碼端對(duì)源數(shù)據(jù)塊中的源數(shù)據(jù)進(jìn)行前向糾錯(cuò)編碼,生成校驗(yàn) 數(shù)據(jù),并將源數(shù)據(jù)在源數(shù)據(jù)塊中的位置信息和校驗(yàn)數(shù)據(jù)攜帶在第二數(shù)據(jù)包中向解碼端發(fā) 送,而源數(shù)據(jù)通過第一數(shù)據(jù)包向解碼端發(fā)送,在解碼端分別接收承載源數(shù)據(jù)的第一數(shù)據(jù)包 和承載校驗(yàn)數(shù)據(jù)以及源數(shù)據(jù)位置信息的第二數(shù)據(jù)包,使得源數(shù)據(jù)與校驗(yàn)數(shù)據(jù)以及源數(shù)據(jù)的 位置信息分開采用不同的數(shù)據(jù)包發(fā)送,不改變承載源數(shù)據(jù)的第一數(shù)據(jù)包的結(jié)構(gòu),從而沒有 前向糾錯(cuò)功能的解碼端可以丟棄第二數(shù)據(jù)包,只根據(jù)第一數(shù)據(jù)包進(jìn)行解碼,同時(shí),有前向糾 錯(cuò)能夠的解碼端可以根據(jù)校驗(yàn)數(shù)據(jù)以及源數(shù)據(jù)的位置信息,利用校驗(yàn)數(shù)據(jù)和接收到的源數(shù) 據(jù)進(jìn)行前向糾錯(cuò)解碼,恢復(fù)丟失的源數(shù)據(jù),所以,本發(fā)明實(shí)施例提供的技術(shù)方案即能夠與現(xiàn) 有通信系統(tǒng)兼容,又可以有效的利用前向糾錯(cuò)恢復(fù)丟失的源數(shù)據(jù)。實(shí)施例四如附圖14所示,本發(fā)明實(shí)施例提供了一種通信系統(tǒng),該系統(tǒng)包括編碼設(shè)備5,用于利用多個(gè)源數(shù)據(jù)構(gòu)造源數(shù)據(jù)塊,每個(gè)源數(shù)據(jù)對(duì)應(yīng)一個(gè)位置信息, 該位置信息用于標(biāo)識(shí)該源數(shù)據(jù)在源數(shù)據(jù)塊中的位置;對(duì)構(gòu)造的源數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)編 碼,生成校驗(yàn)數(shù)據(jù);通過第一數(shù)據(jù)包發(fā)送源數(shù)據(jù)塊中的源數(shù)據(jù),通過第二數(shù)據(jù)包發(fā)送校驗(yàn) 數(shù)據(jù)和源數(shù)據(jù)的位置信息;其中,第二數(shù)據(jù)包中攜帶源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān) 系;解碼設(shè)備6,用于接收第一數(shù)據(jù)包和第二數(shù)據(jù)包,第一數(shù)據(jù)包中攜帶源數(shù)據(jù),第二 數(shù)據(jù)包中攜帶校驗(yàn)數(shù)據(jù)、源數(shù)據(jù)的位置信息、以及源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系; 根據(jù)第二數(shù)據(jù)包中攜帶的源數(shù)據(jù)的位置信息以及源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系, 利用第一數(shù)據(jù)包中攜帶的多個(gè)源數(shù)據(jù)生成重構(gòu)數(shù)據(jù)塊;利用第二數(shù)據(jù)包中攜帶的校驗(yàn)數(shù) 據(jù),對(duì)重構(gòu)數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)解碼,恢復(fù)丟失的源數(shù)據(jù)。編碼設(shè)備5與解碼設(shè)備6通過網(wǎng)絡(luò)7相連,編碼設(shè)備5通過網(wǎng)絡(luò)7向解碼設(shè)備6發(fā) 送第一數(shù)據(jù)包和第二數(shù)據(jù)包。第一數(shù)據(jù)包和第二數(shù)據(jù)包攜帶的內(nèi)容以及攜帶內(nèi)容的方式, 可以參考其他實(shí)施例中的相關(guān)內(nèi)容,這里不再贅述。編碼設(shè)備5可以進(jìn)一步包括構(gòu)造模塊51,用于利用多個(gè)源數(shù)據(jù)構(gòu)造源數(shù)據(jù)塊,每 個(gè)源數(shù)據(jù)對(duì)應(yīng)一個(gè)位置信息,該位置信息用于標(biāo)識(shí)該源數(shù)據(jù)在源數(shù)據(jù)塊中的位置;編碼模 塊52,用于對(duì)構(gòu)造模塊51構(gòu)造的源數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)編碼,生成校驗(yàn)數(shù)據(jù);第一發(fā)送模 塊53,用于通過第一數(shù)據(jù)包發(fā)送源數(shù)據(jù)塊中的源數(shù)據(jù),通過第二數(shù)據(jù)包發(fā)送編碼模塊52生 成的校驗(yàn)數(shù)據(jù)和源數(shù)據(jù)的位置信息,其中,第二數(shù)據(jù)包中攜帶源數(shù)據(jù)的位置信息與源數(shù)據(jù) 的對(duì)應(yīng)關(guān)系。編碼設(shè)備5還可以包括獲取模塊50,用于獲取用于構(gòu)造源數(shù)據(jù)塊的多個(gè)源數(shù)據(jù)。 其中,獲取模塊50可以進(jìn)一步包括第一接收單元501,用于接收通過網(wǎng)絡(luò)傳輸?shù)亩鄠€(gè)數(shù)據(jù) 包,以接收的多個(gè)數(shù)據(jù)包中的全部或部分作為所述多個(gè)源數(shù)據(jù),或者,接收通過網(wǎng)絡(luò)傳輸?shù)?多個(gè)數(shù)據(jù)包,解析出接收的多個(gè)數(shù)據(jù)包的凈載荷,將解析出的凈載荷中的全部或部分作為 所述多個(gè)源數(shù)據(jù);和/或第一獲取單元502,用于獲取上層的多個(gè)凈載荷,以獲取的多個(gè)凈 載荷中的全部或部分作為所述多個(gè)源數(shù)據(jù)。其中,編碼模塊52可以進(jìn)一步包括第一編碼單元521,用于對(duì)源數(shù)據(jù)塊中不同的 源數(shù)據(jù)分別進(jìn)行校驗(yàn)生成多個(gè)校驗(yàn)數(shù)據(jù),不同的校驗(yàn)數(shù)據(jù)由不同的源數(shù)據(jù)進(jìn)行前向糾錯(cuò)編碼獲得;或第二編碼單元522,用于對(duì)源數(shù)據(jù)塊中的全部源數(shù)據(jù)進(jìn)行前向糾錯(cuò)編碼,生成一 個(gè)校驗(yàn)數(shù)據(jù)。其中,對(duì)源數(shù)據(jù)塊中不同的源數(shù)據(jù)分別進(jìn)行校驗(yàn)生成多個(gè)校驗(yàn)數(shù)據(jù)可以是 對(duì)一個(gè)源數(shù)據(jù)塊中不同的源數(shù)據(jù)分別進(jìn)行校驗(yàn)生成多個(gè)校驗(yàn)數(shù)據(jù);或者,對(duì)不同源數(shù)據(jù)塊 的源數(shù)據(jù)分別進(jìn)行校驗(yàn)生成多個(gè)校驗(yàn)數(shù)據(jù),每個(gè)源數(shù)據(jù)塊分別校驗(yàn)生成一個(gè)或多個(gè)校驗(yàn)數(shù) 據(jù)。對(duì)源數(shù)據(jù)塊中的全部源數(shù)據(jù)進(jìn)行前向糾錯(cuò)編碼,生成一個(gè)校驗(yàn)數(shù)據(jù)可以是對(duì)一個(gè)源數(shù) 據(jù)塊中的全部源數(shù)據(jù)進(jìn)行前向糾錯(cuò)編碼,生成一個(gè)校驗(yàn)數(shù)據(jù);或者,對(duì)多個(gè)源數(shù)據(jù)塊中的全 部源數(shù)據(jù)進(jìn)行前向糾錯(cuò)編碼,生成一個(gè)校驗(yàn)數(shù)據(jù)。其中,第一發(fā)送模塊53可以進(jìn)一步包括第一發(fā)送單元531,用于通過第一數(shù)據(jù)包 發(fā)送源數(shù)據(jù)塊中的源數(shù)據(jù),通過一個(gè)或多個(gè)校驗(yàn)數(shù)據(jù)包發(fā)送校驗(yàn)數(shù)據(jù),通過一個(gè)或多個(gè)位 置數(shù)據(jù)包發(fā)送位置信息及對(duì)應(yīng)關(guān)系,所述第二數(shù)據(jù)包包括校驗(yàn)數(shù)據(jù)包和位置數(shù)據(jù)包;或第 二發(fā)送單元532,用于通過第一數(shù)據(jù)包發(fā)送源數(shù)據(jù)塊中的源數(shù)據(jù),將校驗(yàn)數(shù)據(jù)、源數(shù)據(jù)的位 置信息和源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系封裝在同一個(gè)第二數(shù)據(jù)包中,發(fā)送該第二 數(shù)據(jù)包。解碼設(shè)備6可以進(jìn)一步包括第二接收模塊60,用于接收第一數(shù)據(jù)包和第二數(shù)據(jù) 包,第一數(shù)據(jù)包中攜帶源數(shù)據(jù),第二數(shù)據(jù)包中攜帶校驗(yàn)數(shù)據(jù)、源數(shù)據(jù)的位置信息、以及源數(shù) 據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系;重構(gòu)模塊61,用于根據(jù)第二接收模塊60接收的第二數(shù) 據(jù)包中攜帶的源數(shù)據(jù)的位置信息以及源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系,利用第二接 收模塊60接收的第一數(shù)據(jù)包中攜帶的多個(gè)源數(shù)據(jù)生成重構(gòu)數(shù)據(jù)塊;解碼模塊62,用于利用 第二數(shù)據(jù)包中攜帶的校驗(yàn)數(shù)據(jù),對(duì)重構(gòu)模塊61生成的重構(gòu)數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)解碼,恢復(fù) 丟失的源數(shù)據(jù)。解碼設(shè)備6還可以包括第二發(fā)送模塊63,用于發(fā)送接收和恢復(fù)的全部的源數(shù)據(jù)。其中,重構(gòu)模塊61可以進(jìn)一步包括確定單元611,用于根據(jù)源數(shù)據(jù)的位置信息 與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系,確定接收的每個(gè)第一數(shù)據(jù)包中的源數(shù)據(jù)對(duì)應(yīng)的位置信息;填寫單元 612,用于根據(jù)每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息,對(duì)應(yīng)的將接收的每個(gè)源數(shù)據(jù)填入重構(gòu)數(shù)據(jù)塊。其中,解碼模塊62可以進(jìn)一步包括第一解碼單元621,用于利用校驗(yàn)數(shù)據(jù)中的一 個(gè)或多個(gè)與重構(gòu)數(shù)據(jù)塊中的一個(gè)或多個(gè)接收到的源數(shù)據(jù),進(jìn)行前向糾錯(cuò)解碼,生成丟失的 源數(shù)據(jù)。以上通信系統(tǒng)中的編碼設(shè)備5與解碼設(shè)備6的具體功能,以及使用的各種位置信 息、對(duì)應(yīng)關(guān)系、報(bào)文格式可以參考其他實(shí)施例的相關(guān)內(nèi)容,這里不再贅述。其中,編碼設(shè)備5可以作為一個(gè)模塊設(shè)置在各種網(wǎng)絡(luò)節(jié)點(diǎn)上,例如,設(shè)置在路由器 或交換機(jī)等中間節(jié)點(diǎn)上,作為中間節(jié)點(diǎn)的一個(gè)模塊,對(duì)中間節(jié)點(diǎn)接收的數(shù)據(jù)流進(jìn)行復(fù)制,從 復(fù)制的數(shù)據(jù)流中獲取多個(gè)源數(shù)據(jù),進(jìn)而利用這些獲取的源數(shù)據(jù)構(gòu)造源數(shù)據(jù)塊、進(jìn)行前向糾 錯(cuò)編碼,并在中間節(jié)點(diǎn)通過第一數(shù)據(jù)包轉(zhuǎn)發(fā)接收的數(shù)據(jù)流的同時(shí),編碼設(shè)備5發(fā)送攜帶校 驗(yàn)數(shù)據(jù)、源數(shù)據(jù)的位置信息和源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系的第二數(shù)據(jù)包;或者, 編碼設(shè)備5對(duì)中間節(jié)點(diǎn)接收的數(shù)據(jù)流進(jìn)行解析,解析出接收的數(shù)據(jù)流的凈載荷,以解析出 的凈載荷作為多個(gè)源數(shù)據(jù),進(jìn)而利用這些源數(shù)據(jù)構(gòu)造源數(shù)據(jù)塊、進(jìn)行前向糾錯(cuò)編碼,并在通 過第一數(shù)據(jù)包發(fā)送解析出的凈載荷的同時(shí),發(fā)送攜帶校驗(yàn)數(shù)據(jù)、源數(shù)據(jù)的位置信息和源數(shù) 據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系的第二數(shù)據(jù)包。編碼設(shè)備5可以也作為一個(gè)模塊設(shè)置 在網(wǎng)絡(luò)的頭端節(jié)點(diǎn)上,頭端節(jié)點(diǎn)可以產(chǎn)生數(shù)據(jù)流,例如頭端節(jié)點(diǎn)通過視頻采集設(shè)備采集視
18頻流和音頻流,編碼設(shè)備5以頭端節(jié)點(diǎn)的數(shù)據(jù)流作為多個(gè)源數(shù)據(jù),進(jìn)而利用這些源數(shù)據(jù)構(gòu) 造源數(shù)據(jù)塊、進(jìn)行前向糾錯(cuò)編碼,并在通過第一數(shù)據(jù)包發(fā)送源數(shù)據(jù)的同時(shí),發(fā)送攜帶校驗(yàn)數(shù) 據(jù)、源數(shù)據(jù)的位置信息和源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系的第二數(shù)據(jù)包。相應(yīng)的,解 碼設(shè)備6也可以作為一個(gè)模塊設(shè)置在各種網(wǎng)絡(luò)節(jié)點(diǎn)上,例如,對(duì)應(yīng)編碼設(shè)備5的設(shè)置在編碼 設(shè)備5的下游節(jié)點(diǎn)上,解碼設(shè)備6在恢復(fù)出丟失的源數(shù)據(jù)后,可以將接收的和恢復(fù)的全部源 數(shù)據(jù)向其他網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送。當(dāng)然,各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上也可以同時(shí)設(shè)置編碼設(shè)備5和解碼設(shè)備 6,或者,將編碼設(shè)備5和解碼設(shè)備6集成為一個(gè)編解碼設(shè)備設(shè)置在網(wǎng)絡(luò)節(jié)點(diǎn)上,以實(shí)現(xiàn)在雙 向的數(shù)據(jù)傳輸時(shí),都可以進(jìn)行前向糾錯(cuò)編解碼。針對(duì)不同的網(wǎng)絡(luò)情況及網(wǎng)絡(luò)布局,可以靈活的部署編碼設(shè)備5和解碼設(shè)備6,例如 在網(wǎng)絡(luò)條件相對(duì)較好側(cè)(如核心網(wǎng))可以不需要,而對(duì)于網(wǎng)絡(luò)條件相對(duì)較差側(cè)(如接入網(wǎng)) 則增加編碼設(shè)備5和解碼設(shè)備6 ;還可以根據(jù)不同的接入端選擇編碼設(shè)備5和解碼設(shè)備6的 使用與否;還可以在整個(gè)網(wǎng)絡(luò)中可靠性差的網(wǎng)段分段部署編碼設(shè)備5和解碼設(shè)備6,例如整 個(gè)網(wǎng)絡(luò)的某一部分可靠性比較差,可以在可靠性差的網(wǎng)段入口端部署編碼設(shè)備5,相應(yīng)地, 在該網(wǎng)段地出口端增加解碼設(shè)備6。這樣可以減少部署成本,且對(duì)現(xiàn)有系統(tǒng)影響較小,實(shí)現(xiàn) 平滑升級(jí)。在不改變現(xiàn)有系統(tǒng)前提下,可以旁掛在網(wǎng)絡(luò)的任意節(jié)點(diǎn),比如匯聚交換機(jī),邊緣 路由器等,應(yīng)用廣泛,靈活。由于編碼設(shè)備5和解碼設(shè)備6可以靈活的設(shè)置在各種網(wǎng)絡(luò)節(jié)點(diǎn)上作為一個(gè)附加的 功能模塊,而不同網(wǎng)絡(luò)節(jié)點(diǎn)所使用的數(shù)據(jù)包格式也可能各種各樣,因此,編碼設(shè)備5和解碼 設(shè)備6中第一數(shù)據(jù)包和第二數(shù)據(jù)包可以采用各種形式的數(shù)據(jù)包格式。當(dāng)編碼設(shè)備5和解碼設(shè)備6旁掛在各種網(wǎng)絡(luò)節(jié)點(diǎn)上作為一個(gè)附加的功能模塊時(shí), 編碼設(shè)備5的獲取模塊50從編碼設(shè)備5所在的網(wǎng)絡(luò)節(jié)點(diǎn)接收的源數(shù)據(jù)包中獲取多個(gè)源數(shù) 據(jù),這里,可以是將網(wǎng)絡(luò)節(jié)點(diǎn)接收的源數(shù)據(jù)包復(fù)制,以復(fù)制的源數(shù)據(jù)包作為多個(gè)源數(shù)據(jù),或 者,將網(wǎng)絡(luò)節(jié)點(diǎn)接收的源數(shù)據(jù)包復(fù)制,對(duì)復(fù)制的源數(shù)據(jù)包進(jìn)行解析,以解析出的源數(shù)據(jù)包凈 載荷作為多個(gè)源數(shù)據(jù);之后,編碼設(shè)備5的第一發(fā)送模塊53將第二數(shù)據(jù)包通過網(wǎng)絡(luò)接口直 接發(fā)送,或者將第二數(shù)據(jù)包發(fā)送給編碼設(shè)備5所在的網(wǎng)絡(luò)節(jié)點(diǎn),然后由該網(wǎng)絡(luò)節(jié)點(diǎn)通過網(wǎng) 絡(luò)接口發(fā)送第二數(shù)據(jù)包;由于在獲取源數(shù)據(jù)時(shí),進(jìn)行了流復(fù)制,因此可以由給編碼設(shè)備5所 在的網(wǎng)絡(luò)節(jié)點(diǎn)直接轉(zhuǎn)發(fā)接收的源數(shù)據(jù)包(即第一數(shù)據(jù)包),而編碼設(shè)備5的第一發(fā)送模塊 53僅需發(fā)送第二數(shù)據(jù)包即可。本實(shí)施例中,通過在編碼端對(duì)源數(shù)據(jù)塊中的源數(shù)據(jù)進(jìn)行前向糾錯(cuò)編碼,生成校驗(yàn) 數(shù)據(jù),并將源數(shù)據(jù)在源數(shù)據(jù)塊中的位置信息和校驗(yàn)數(shù)據(jù)攜帶在第二數(shù)據(jù)包中向解碼端發(fā) 送,而源數(shù)據(jù)通過第一數(shù)據(jù)包向解碼端發(fā)送,在解碼端分別接收承載源數(shù)據(jù)的第一數(shù)據(jù)包 和承載校驗(yàn)數(shù)據(jù)以及源數(shù)據(jù)位置信息的第二數(shù)據(jù)包,使得源數(shù)據(jù)與校驗(yàn)數(shù)據(jù)以及源數(shù)據(jù)的 位置信息分開采用不同的數(shù)據(jù)包發(fā)送,不改變承載源數(shù)據(jù)的第一數(shù)據(jù)包的結(jié)構(gòu),從而沒有 前向糾錯(cuò)功能的解碼端可以丟棄第二數(shù)據(jù)包,只根據(jù)第一數(shù)據(jù)包進(jìn)行解碼,同時(shí),有前向糾 錯(cuò)能夠的解碼端可以根據(jù)校驗(yàn)數(shù)據(jù)以及源數(shù)據(jù)的位置信息,利用校驗(yàn)數(shù)據(jù)和接收到的源數(shù) 據(jù)進(jìn)行前向糾錯(cuò)解碼,恢復(fù)丟失的源數(shù)據(jù),所以,本發(fā)明實(shí)施例提供的技術(shù)方案即能夠與現(xiàn) 有通信系統(tǒng)兼容,又可以有效的利用前向糾錯(cuò)恢復(fù)丟失的源數(shù)據(jù)。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以 通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁 碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory, RAM)等。 總之,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。 凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的 保護(hù)范圍之內(nèi)。
權(quán)利要求
一種前向糾錯(cuò)編碼方法,其特征在于,包括利用多個(gè)源數(shù)據(jù)構(gòu)造源數(shù)據(jù)塊,每個(gè)源數(shù)據(jù)對(duì)應(yīng)一個(gè)位置信息,該位置信息用于標(biāo)識(shí)該源數(shù)據(jù)在源數(shù)據(jù)塊中的位置;對(duì)構(gòu)造的源數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)編碼,生成校驗(yàn)數(shù)據(jù);通過第一數(shù)據(jù)包發(fā)送多個(gè)源數(shù)據(jù),通過第二數(shù)據(jù)包發(fā)送校驗(yàn)數(shù)據(jù)和源數(shù)據(jù)的位置信息;其中,第二數(shù)據(jù)包中攜帶源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系。
2.如權(quán)利要求1所述的方法,其特征在于,在所述利用多個(gè)源數(shù)據(jù)構(gòu)造源數(shù)據(jù)塊之前, 所述方法還包括接收通過網(wǎng)絡(luò)傳輸?shù)亩鄠€(gè)數(shù)據(jù)包,以接收的多個(gè)數(shù)據(jù)包中的全部或部分作為所述多個(gè) 源數(shù)據(jù);或者,接收多個(gè)數(shù)據(jù)包,解析出接收的多個(gè)數(shù)據(jù)包的凈載荷,將解析出的凈載荷中的全部或 部分作為所述多個(gè)源數(shù)據(jù);或者,獲取上層的多個(gè)凈載荷,以獲取的多個(gè)凈載荷中的全部或部分作為所述多個(gè)源數(shù)據(jù)。
3.如權(quán)利要求1所述的方法,其特征在于,所述位置信息為源數(shù)據(jù)在源數(shù)據(jù)塊中占用一個(gè)或多個(gè)符號(hào),源數(shù)據(jù)的起始行對(duì)應(yīng)的符號(hào)標(biāo)識(shí)作為該源 數(shù)據(jù)在源數(shù)據(jù)塊中的位置信息。
4.如權(quán)利要求3所述的方法,其特征在于,當(dāng)有多個(gè)源數(shù)據(jù)塊時(shí),所述位置信息還包括源數(shù)據(jù)所在源數(shù)據(jù)塊的源數(shù)據(jù)塊標(biāo)號(hào),所 述源數(shù)據(jù)塊標(biāo)號(hào)用于區(qū)分不同的源數(shù)據(jù)塊;和/或如果源數(shù)據(jù)來自不同的數(shù)據(jù)流,所述位置信息還包括流標(biāo)號(hào),所述流標(biāo)號(hào)用于區(qū)分不 同的數(shù)據(jù)流。
5.如權(quán)利要求1所述的方法,其特征在于,所述對(duì)構(gòu)造的源數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)編碼 生成校驗(yàn)數(shù)據(jù)包括對(duì)源數(shù)據(jù)塊中不同的源數(shù)據(jù)分別進(jìn)行校驗(yàn)生成多個(gè)校驗(yàn)數(shù)據(jù),不同的校驗(yàn)數(shù)據(jù)由不同 的源數(shù)據(jù)進(jìn)行前向糾錯(cuò)編碼獲得;或者,對(duì)源數(shù)據(jù)塊中的源數(shù)據(jù)進(jìn)行前向糾錯(cuò)編碼,生成一個(gè)校驗(yàn)數(shù)據(jù)。
6.如權(quán)利要求1所述的方法,其特征在于,所述源數(shù)據(jù)的位置信息包括源數(shù)據(jù)塊中每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息;或源數(shù)據(jù)塊中 每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息和最后一個(gè)源數(shù)據(jù)的結(jié)束位置;或源數(shù)據(jù)塊中每個(gè)源數(shù)據(jù)對(duì)應(yīng) 的位置信息和最后一個(gè)源數(shù)據(jù)的長度;或源數(shù)據(jù)塊中每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息和源數(shù)據(jù) 塊中源數(shù)據(jù)總共的長度;或源數(shù)據(jù)塊中每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息和校驗(yàn)數(shù)據(jù)的起始位 置;所述源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系包括源數(shù)據(jù)的位置信息與源數(shù)據(jù)的編號(hào) 的對(duì)應(yīng)關(guān)系;或源數(shù)據(jù)的位置信息與封裝源數(shù)據(jù)的第一數(shù)據(jù)包序號(hào)的對(duì)應(yīng)關(guān)系,每個(gè)第一 數(shù)據(jù)包封裝一個(gè)源數(shù)據(jù);或源數(shù)據(jù)的位置信息與源數(shù)據(jù)的序號(hào)的對(duì)應(yīng)關(guān)系,每個(gè)源數(shù)據(jù)為 一個(gè)第一數(shù)據(jù)包;或源數(shù)據(jù)的位置信息與源數(shù)據(jù)的其他標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
7.如權(quán)利要求1或6所述的方法,其特征在于,所述通過第二數(shù)據(jù)包發(fā)送校驗(yàn)數(shù)據(jù)和源 數(shù)據(jù)的位置信息為所述第二數(shù)據(jù)包包括封裝校驗(yàn)數(shù)據(jù)的校驗(yàn)數(shù)據(jù)包和封裝源數(shù)據(jù)的位置信息及源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系的位置數(shù)據(jù)包,通過一個(gè)或多個(gè)校驗(yàn)數(shù)據(jù)包發(fā)送校驗(yàn)數(shù) 據(jù),通過一個(gè)或多個(gè)位置數(shù)據(jù)包發(fā)送位置信息及對(duì)應(yīng)關(guān)系;或者,將校驗(yàn)數(shù)據(jù)、源數(shù)據(jù)的位置信息和源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系封裝在同一 個(gè)第二數(shù)據(jù)包中,發(fā)送該第二數(shù)據(jù)包。
8.一種前向糾錯(cuò)解碼方法,其特征在于,包括接收第一數(shù)據(jù)包和第二數(shù)據(jù)包,第一數(shù)據(jù)包中攜帶源數(shù)據(jù),第二數(shù)據(jù)包中攜帶校驗(yàn)數(shù) 據(jù)、源數(shù)據(jù)的位置信息、以及源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系;根據(jù)第二數(shù)據(jù)包中攜帶的源數(shù)據(jù)的位置信息以及源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng) 關(guān)系,利用第一數(shù)據(jù)包中攜帶的多個(gè)源數(shù)據(jù)生成重構(gòu)數(shù)據(jù)塊;利用第二數(shù)據(jù)包中攜帶的校驗(yàn)數(shù)據(jù),對(duì)重構(gòu)數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)解碼,恢復(fù)丟失的源 數(shù)據(jù)。
9.如權(quán)利要求8所述的方法,其特征在于,所述第二數(shù)據(jù)包包括封裝校驗(yàn)數(shù)據(jù)的校驗(yàn)數(shù)據(jù)包和封裝源數(shù)據(jù)的位置信息及源數(shù)據(jù) 的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系的位置數(shù)據(jù)包,校驗(yàn)數(shù)據(jù)封裝在一個(gè)或多個(gè)校驗(yàn)數(shù)據(jù)包 中,位置信息及對(duì)應(yīng)關(guān)系封裝在一個(gè)或多個(gè)位置數(shù)據(jù)包中;或者,校驗(yàn)數(shù)據(jù)、源數(shù)據(jù)的位置信息和源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系封裝在同一個(gè) 第二數(shù)據(jù)包中。
10.如權(quán)利要求8或9所述的方法,其特征在于,所述源數(shù)據(jù)的位置信息包括源數(shù)據(jù)塊中每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息;或源數(shù)據(jù)塊中 每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息和最后一個(gè)源數(shù)據(jù)的結(jié)束位置;或源數(shù)據(jù)塊中每個(gè)源數(shù)據(jù)對(duì)應(yīng) 的位置信息和最后一個(gè)源數(shù)據(jù)的長度;或源數(shù)據(jù)塊中每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息和源數(shù)據(jù) 塊中源數(shù)據(jù)總共的長度;或源數(shù)據(jù)塊中每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息和校驗(yàn)數(shù)據(jù)的起始位 置;所述源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系包括源數(shù)據(jù)的位置信息與源數(shù)據(jù)的編號(hào) 的對(duì)應(yīng)關(guān)系;或源數(shù)據(jù)的位置信息與封裝源數(shù)據(jù)的第一數(shù)據(jù)包序號(hào)的對(duì)應(yīng)關(guān)系,每個(gè)第一 數(shù)據(jù)包封裝一個(gè)源數(shù)據(jù);或源數(shù)據(jù)的位置信息與源數(shù)據(jù)的序號(hào)的對(duì)應(yīng)關(guān)系,每個(gè)源數(shù)據(jù)為 一個(gè)第一數(shù)據(jù)包;或源數(shù)據(jù)的位置信息與源數(shù)據(jù)的其他標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
11.如權(quán)利要求8所述的方法,其特征在于,所述根據(jù)第二數(shù)據(jù)包中攜帶的源數(shù)據(jù)的位 置信息以及源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系,利用第一數(shù)據(jù)包中攜帶的多個(gè)源數(shù)據(jù) 生成重構(gòu)數(shù)據(jù)塊包括根據(jù)源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系,確定接收的每個(gè)第一數(shù)據(jù)包中的源數(shù)據(jù) 對(duì)應(yīng)的位置信息;根據(jù)每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息,對(duì)應(yīng)的將接收的每個(gè)源數(shù)據(jù)填入重構(gòu)數(shù)據(jù)塊。
12.如權(quán)利要求11所述的方法,其特征在于,當(dāng)所述源數(shù)據(jù)對(duì)應(yīng)的位置信息為源數(shù)據(jù) 在源數(shù)據(jù)塊中的起始行對(duì)應(yīng)的符號(hào)標(biāo)識(shí)時(shí),所述根據(jù)每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息,對(duì)應(yīng)的 將接收的每個(gè)源數(shù)據(jù)填入重構(gòu)數(shù)據(jù)塊包括以每個(gè)源數(shù)據(jù)的對(duì)應(yīng)的符號(hào)標(biāo)識(shí)在重構(gòu)數(shù)據(jù)塊中對(duì)應(yīng)的行作為起始行,將每個(gè)源數(shù)據(jù) 分別填入重構(gòu)數(shù)據(jù)塊。
13.如權(quán)利要求8所述的方法,其特征在于,所述利用第二數(shù)據(jù)包中攜帶的校驗(yàn)數(shù)據(jù),對(duì)重構(gòu)數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)解碼,恢復(fù)丟失的源數(shù)據(jù)為利用校驗(yàn)數(shù)據(jù)中的一個(gè)或多個(gè)與重構(gòu)數(shù)據(jù)塊中的一個(gè)或多個(gè)接收到的源數(shù)據(jù),進(jìn)行前 向糾錯(cuò)解碼,生成丟失的源數(shù)據(jù)。
14.一種前向糾錯(cuò)編碼設(shè)備,其特征在于,包括構(gòu)造模塊,用于利用多個(gè)源數(shù)據(jù)構(gòu)造源數(shù)據(jù)塊,每個(gè)源數(shù)據(jù)對(duì)應(yīng)一個(gè)位置信息,該位置 信息用于標(biāo)識(shí)該源數(shù)據(jù)在源數(shù)據(jù)塊中的位置;編碼模塊,用于對(duì)構(gòu)造的源數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)編碼,生成校驗(yàn)數(shù)據(jù); 第一發(fā)送模塊,用于通過第一數(shù)據(jù)包發(fā)送多個(gè)源數(shù)據(jù),通過第二數(shù)據(jù)包發(fā)送校驗(yàn)數(shù)據(jù) 和源數(shù)據(jù)的位置信息,其中,第二數(shù)據(jù)包中攜帶源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系。
15.如權(quán)利要求14所述的設(shè)備,其特征在于,所述設(shè)備還包括第一接收單元,用于接收通過網(wǎng)絡(luò)傳輸?shù)亩鄠€(gè)數(shù)據(jù)包,以接收的多個(gè)數(shù)據(jù)包中的全部 或部分作為所述多個(gè)源數(shù)據(jù);或者,接收通過網(wǎng)絡(luò)傳輸?shù)亩鄠€(gè)數(shù)據(jù)包,解析出接收的多個(gè)數(shù) 據(jù)包的凈載荷,將解析出的凈載荷中的全部或部分作為所述多個(gè)源數(shù)據(jù);和/或第一獲取單元,用于獲取上層的多個(gè)凈載荷,以獲取的多個(gè)凈載荷中的全部或部分作 為所述多個(gè)源數(shù)據(jù)。
16.如權(quán)利要求14所述的設(shè)備,其特征在于,所述編碼模塊包括第一編碼單元,用于對(duì)一個(gè)源數(shù)據(jù)塊中不同的源數(shù)據(jù)分別進(jìn)行校驗(yàn)生成多個(gè)校驗(yàn)數(shù) 據(jù),不同的校驗(yàn)數(shù)據(jù)由不同的源數(shù)據(jù)進(jìn)行前向糾錯(cuò)編碼獲得;或第二編碼單元,用于對(duì)一個(gè)源數(shù)據(jù)塊中的全部源數(shù)據(jù)進(jìn)行前向糾錯(cuò)編碼,生成一個(gè)校 驗(yàn)數(shù)據(jù)。
17.如權(quán)利要求14所述的設(shè)備,其特征在于,所述第一發(fā)送模塊包括第一發(fā)送單元,用于通過第一數(shù)據(jù)包發(fā)送源數(shù)據(jù)塊中的源數(shù)據(jù);通過一個(gè)或多個(gè)校驗(yàn) 數(shù)據(jù)包發(fā)送校驗(yàn)數(shù)據(jù),通過一個(gè)或多個(gè)位置數(shù)據(jù)包發(fā)送位置信息及對(duì)應(yīng)關(guān)系,所述第二數(shù) 據(jù)包包括校驗(yàn)數(shù)據(jù)包和位置數(shù)據(jù)包;或第二發(fā)送單元,用于通過第一數(shù)據(jù)包發(fā)送源數(shù)據(jù)塊中的源數(shù)據(jù);將校驗(yàn)數(shù)據(jù)、源數(shù)據(jù)的 位置信息和源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系封裝在同一個(gè)第二數(shù)據(jù)包中,發(fā)送該第 二數(shù)據(jù)包。
18.一種前向糾錯(cuò)解碼設(shè)備,其特征在于,包括第二接收模塊,用于接收第一數(shù)據(jù)包和第二數(shù)據(jù)包,第一數(shù)據(jù)包中攜帶源數(shù)據(jù),第二數(shù) 據(jù)包中攜帶校驗(yàn)數(shù)據(jù)、源數(shù)據(jù)的位置信息、以及源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系;重構(gòu)模塊,用于根據(jù)第二數(shù)據(jù)包中攜帶的源數(shù)據(jù)的位置信息以及源數(shù)據(jù)的位置信息與 源數(shù)據(jù)的對(duì)應(yīng)關(guān)系,利用第一數(shù)據(jù)包中攜帶的多個(gè)源數(shù)據(jù)生成重構(gòu)數(shù)據(jù)塊;解碼模塊,用于利用第二數(shù)據(jù)包中攜帶的校驗(yàn)數(shù)據(jù),對(duì)重構(gòu)數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)解碼, 恢復(fù)丟失的源數(shù)據(jù)。
19.如權(quán)利要求18所述的設(shè)備,其特征在于,所述重構(gòu)模塊包括確定單元,用于根據(jù)源數(shù)據(jù)的位置信息與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系,確定接收的每個(gè)第一數(shù) 據(jù)包中的源數(shù)據(jù)對(duì)應(yīng)的位置信息;填寫單元,用于根據(jù)每個(gè)源數(shù)據(jù)對(duì)應(yīng)的位置信息,對(duì)應(yīng)的將接收的每個(gè)源數(shù)據(jù)填入重 構(gòu)數(shù)據(jù)塊。
20.如權(quán)利要求18所述的設(shè)備,其特征在于,所述解碼模塊包括第一解碼單元,用于利用校驗(yàn)數(shù)據(jù)中的一個(gè)或多個(gè)與重構(gòu)數(shù)據(jù)塊中的一個(gè)或多個(gè)接收 到的源數(shù)據(jù),進(jìn)行前向糾錯(cuò)解碼,生成丟失的源數(shù)據(jù)。
21.一種通信系統(tǒng),其特征在于,包括至少一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn);所述網(wǎng)絡(luò)節(jié)點(diǎn)中的全部或部分包括權(quán)利要求14至17任一項(xiàng)所述的前向糾錯(cuò)編碼設(shè)備 和/或權(quán)利要求18至20任一項(xiàng)所述的前向糾錯(cuò)解碼設(shè)備。
全文摘要
本發(fā)明實(shí)施例涉及通信傳輸領(lǐng)域,尤其是一種前向糾錯(cuò)編碼方法、裝置,一種前向糾錯(cuò)解碼方法、裝置,以及通信系統(tǒng)。本發(fā)明實(shí)施例提供的前向糾錯(cuò)編碼方法包括利用多個(gè)源數(shù)據(jù)構(gòu)造源數(shù)據(jù)塊;對(duì)構(gòu)造的源數(shù)據(jù)塊進(jìn)行前向糾錯(cuò)編碼,生成校驗(yàn)數(shù)據(jù);通過第一數(shù)據(jù)包發(fā)送多個(gè)源數(shù)據(jù),通過第二數(shù)據(jù)包發(fā)送校驗(yàn)數(shù)據(jù)和源數(shù)據(jù)的位置信息。使得源數(shù)據(jù)與校驗(yàn)數(shù)據(jù)以及源數(shù)據(jù)的位置信息分開采用不同的數(shù)據(jù)包傳輸,所以,本發(fā)明實(shí)施例提供的技術(shù)方案既能夠與現(xiàn)有通信系統(tǒng)兼容,又可以有效的利用前向糾錯(cuò)恢復(fù)丟失的源數(shù)據(jù)。
文檔編號(hào)H04L1/00GK101877620SQ20091010703
公開日2010年11月3日 申請(qǐng)日期2009年4月30日 優(yōu)先權(quán)日2009年4月30日
發(fā)明者張衛(wèi)娥, 胡昌啟, 艾常權(quán), 鄒子軒, 陳兵, 魯亞東 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
常宁市| 建始县| 西林县| 濉溪县| 洛川县| 蒲江县| 秦皇岛市| 扎赉特旗| 曲沃县| 年辖:市辖区| 新泰市| 柞水县| 营山县| 射阳县| 秭归县| 康马县| 离岛区| 溧阳市| 巴东县| 通辽市| 武隆县| 奇台县| 中宁县| 厦门市| 泰和县| 萍乡市| 磴口县| 积石山| 道孚县| 济源市| 睢宁县| 邻水| 沿河| 水城县| 明光市| 宜州市| 江孜县| 龙山县| 平遥县| 拉萨市| 勃利县|