專利名稱:一種糾錯校驗方法、設備和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及流媒體數(shù)據(jù)處理技術,尤其涉及一種糾錯校驗方法、設備和系統(tǒng)。
背景技術:
通過網(wǎng)絡傳送實時的流媒體數(shù)據(jù)時,丟包會導致播放時出現(xiàn)馬賽克、停頓等現(xiàn)象, 影響播放效果。通過數(shù)據(jù)重傳可以解決丟包問題,但數(shù)據(jù)重傳會導致媒體數(shù)據(jù)不能及時到 達終端,導致播放延時,滿足不了用戶對多媒體業(yè)務的實時需求。而前向糾錯技術O^rward Error Correction, FEC)由于可以較好的解決實時傳輸數(shù)據(jù)時的丟包問題,在業(yè)界得到了 廣泛的應用。FEC技術在媒體服務器向終端發(fā)送媒體數(shù)據(jù)包時,按照統(tǒng)一的冗余度對這些媒體 數(shù)據(jù)包生成冗余的糾錯校驗數(shù)據(jù),將媒體數(shù)據(jù)包和糾錯校驗數(shù)據(jù)一并發(fā)送給終端。終端接 收到這些數(shù)據(jù)后,如果發(fā)現(xiàn)媒體數(shù)據(jù)包丟失,則通過已經收到的媒體數(shù)據(jù)包和糾錯校驗數(shù) 據(jù)把丟失的媒體數(shù)據(jù)包恢復出來,從而在實現(xiàn)實時傳輸時,能夠減少丟包,提升播放效果。 媒體服務器生成的糾錯校驗數(shù)據(jù)越多,終端恢復媒體數(shù)據(jù)的可能性越高,播放質量越好,但 糾錯校驗數(shù)據(jù)占用的傳輸帶寬也就越高;媒體服務器生成的糾錯校驗數(shù)據(jù)越少,終端恢復 媒體數(shù)據(jù)的可能性越低,播放質量越差,但糾錯校驗數(shù)據(jù)占用的傳輸帶寬也就越小。在進行網(wǎng)絡傳輸時,為降低傳輸帶寬,對流媒體數(shù)據(jù),如視頻畫面,會壓縮生成媒 體數(shù)據(jù)包后,再進行糾錯校驗,然后在網(wǎng)絡傳輸。通常采用如下三種壓縮方法第1種方法 是直接對當前畫面進行壓縮,壓縮后的畫面稱為I幀;第2種方法是以前一個畫面為基準, 計算當前畫面和前一個畫面的差異,存儲或發(fā)送當前畫面時只存儲或發(fā)送這些差異,這樣 的畫面稱為P幀。第3種方法是以前一個畫面和下一個畫面為基準,計算當前畫面和前后 畫面的差異,存儲或發(fā)送當前畫面時只存儲或發(fā)送這些差異,這樣的畫面稱為B幀。對于I幀數(shù)據(jù),終端收到后可以直接還原出當前畫面以進行播放;對于P幀數(shù)據(jù), 終端收到后需要參考前一個畫面才能還原出當前畫面再播放;對于B幀數(shù)據(jù),終端收到后 需要根據(jù)前一個畫面和后一個畫面才能還原出當前畫面再進行播放。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術中至少存在如下問題由于上述三種不同的壓縮方法,不同類型的幀具有不同的重要性,如I幀數(shù)據(jù)的 丟失或差錯會極大地影響P幀、B幀數(shù)據(jù)的恢復,現(xiàn)有技術對所有類型幀的媒體數(shù)據(jù)包按照 統(tǒng)一的冗余度進行糾錯校驗,不能有效地利用傳輸帶寬,且對丟包數(shù)據(jù)的恢復能力很有限, 播放效果較差。
發(fā)明內容
為解決現(xiàn)有技術中存在的問題,本發(fā)明的實施例提供一種糾錯校驗方法、設備和 系統(tǒng),用于在實現(xiàn)糾錯校驗時,有效利用傳輸帶寬,顯著增強接收端對丟包數(shù)據(jù)的恢復能 力,提高播放效果,且實現(xiàn)方法簡單,具有較大的可行性。為達到上述目的,本發(fā)明的實施例采用如下技術方案
一種糾錯校驗方法,所述方法包括獲知當前幀的類型,所述幀包括關鍵幀和非關鍵幀;根據(jù)當前幀的類型和冗余編碼策略確定當前幀的編碼冗余度,其中,關鍵幀的編 碼冗余度大于非關鍵幀的編碼冗余度;利用所述確定的編碼冗余度為當前幀生成糾錯校驗碼。一種糾錯校驗方法,所述方法包括當前幀的媒體數(shù)據(jù)包丟失時,獲取丟失的媒體數(shù)據(jù)包對應的編碼冗余度,所述幀 包括關鍵幀和非關鍵幀,關鍵幀的編碼冗余度大于非關鍵幀的編碼冗余度;利用所述編碼冗余度恢復所述丟失的媒體數(shù)據(jù)包。一種糾錯校驗裝置,所述裝置包括幀類型鑒別單元,用于獲知當前幀的類型,所述幀包括關鍵幀和非關鍵幀;確定單元,用于根據(jù)所述幀類型鑒別單元獲知的當前幀的類型和冗余編碼策略確 定當前幀的編碼冗余度,其中,關鍵幀的編碼冗余度大于非關鍵幀的編碼冗余度;編碼單元,用于利用所述確定單元確定的編碼冗余度為當前幀生成糾錯校驗碼。一種終端設備,所述終端設備包括獲取單元,用于當當前幀的媒體數(shù)據(jù)包丟失時,獲取丟失的媒體數(shù)據(jù)包對應的編 碼冗余度,所述幀包括關鍵幀和非關鍵幀,關鍵幀的編碼冗余度大于非關鍵幀的編碼冗余 度;數(shù)據(jù)包恢復單元,用于利用所述獲取單元獲取到的編碼冗余度恢復所述丟失的媒 體數(shù)據(jù)包。一種通信系統(tǒng),該系統(tǒng)包括上述的糾錯校驗裝置和/或終端設備。一種通信系統(tǒng),所述系統(tǒng)包括流媒體服務器和終端,所述流媒體服務器包括流媒體解析單元,用于解析獲取到的媒體流得到媒體數(shù)據(jù),將媒體數(shù)據(jù)以幀為單 位發(fā)送至流媒體傳輸編碼單元,所述幀包括關鍵幀和非關鍵幀;冗余編碼策略單元,用于配置和存儲冗余編碼策略,以向流媒體傳輸編碼單元提 供相應的編碼冗余度,其中,關鍵幀的編碼冗余度大于非關鍵幀的編碼冗余度;流媒體傳輸編碼單元,用于根據(jù)來自所述流媒體解析單元的每幀媒體數(shù)據(jù)的類 型,查詢所述冗余編碼策略單元,獲知當前幀的編碼冗余度,并將該媒體數(shù)據(jù)分割打包成媒 體數(shù)據(jù)包發(fā)送至前向糾錯編碼單元;前向糾錯編碼單元,用于按照所述當前幀的編碼冗余度,為接收到的媒體數(shù)據(jù)包 生成糾錯校驗碼,將該編碼冗余度、糾錯校驗碼和媒體數(shù)據(jù)包通過網(wǎng)絡向終端發(fā)送;所述終端包括前向糾錯解碼單元,用于接收來自流媒體服務器的數(shù)據(jù),當當前幀的媒體數(shù)據(jù)包 丟失時,獲取丟失的媒體數(shù)據(jù)包對應的編碼冗余度,利用所述編碼冗余度解碼并恢復所述 丟失的媒體數(shù)據(jù)包,將該媒體數(shù)據(jù)包發(fā)送至媒體播放單元;媒體播放單元,用于從來自所述前向糾錯解碼單元的媒體數(shù)據(jù)包中提取媒體數(shù)據(jù) 并播放。本發(fā)明實施例提供的技術方案,在進行糾錯校驗時,發(fā)送端對不同類型幀的媒體數(shù)據(jù)包采用不同的編碼冗余度,重要性較高的關鍵幀所采用的編碼冗余度大于重要性較低 的非關鍵幀所采用的編碼冗余度,接收端根據(jù)不同的編碼冗余度恢復傳輸中丟失的媒體數(shù) 據(jù)包,從而解決了現(xiàn)有技術中對所有類型幀的媒體數(shù)據(jù)包按照統(tǒng)一的冗余度進行糾錯校驗 而帶來的問題。本發(fā)明實施例的技術方案在實現(xiàn)糾錯校驗時,不但能夠有效利用傳輸帶寬, 顯著增強接收端對丟包數(shù)據(jù)的恢復能力,提高播放效果,且實現(xiàn)方法簡單,具有較大的可行 性。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例一提供的糾錯校驗方法流程圖;圖2為本發(fā)明實施例二提供的糾錯校驗方法流程圖;圖3為本發(fā)明實施例三提供的糾錯校驗裝置結構示意圖;圖4為本發(fā)明實施例四提供的終端設備結構示意圖;圖5為本發(fā)明實施例六提供的通信系統(tǒng)的結構示意圖。
具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。本發(fā)明實施例一提供的糾錯校驗方法,如圖1所示,所述方法包括步驟11 獲知當前幀的類型,所述幀包括關鍵幀和非關鍵幀;步驟12 根據(jù)當前幀的類型和冗余編碼策略確定當前幀的編碼冗余度,其中,關 鍵幀的編碼冗余度大于非關鍵幀的編碼冗余度;步驟13 利用所述確定的編碼冗余度為當前幀生成糾錯校驗碼。本發(fā)明實施例提供的技術方案,在進行糾錯校驗時,發(fā)送端,如媒體服務器,對不 同類型幀的媒體數(shù)據(jù)包采用不同的編碼冗余度,重要性較高的關鍵幀,如I幀,所采用的編 碼冗余度大于重要性較低的非關鍵幀,如P幀和B幀,所采用的編碼冗余度。該編碼冗余度 可表示為(m,k),即為m個媒體數(shù)據(jù)包生成k個糾錯校驗數(shù)據(jù)包。下面對本發(fā)明實施例一進一步提供的媒體服務器為當前幀生成糾錯校驗數(shù)據(jù)包 的方法進行具體描述。該當前幀由若干媒體數(shù)據(jù)包組成,進行糾錯校驗時,以媒體數(shù)據(jù)包編 碼集合為單位進行,該媒體數(shù)據(jù)包編碼集合包括m個媒體數(shù)據(jù)包。首先,媒體服務器在實現(xiàn)糾錯校驗時,將連續(xù)的m個媒體數(shù)據(jù)包作為一個媒體數(shù) 據(jù)包編碼集合進行冗余編碼。例如,當m取2時,對待校驗的連續(xù)的媒體數(shù)據(jù)包AppDatal 和AppData2,將這2個媒體數(shù)據(jù)包作為1個媒體數(shù)據(jù)包編碼集合進行FEC冗余編碼。然后,媒體服務器根據(jù)確定的編碼冗余度,例如,編碼冗余度為(2,1),即為每2個媒體數(shù)據(jù)包生成1字節(jié)糾錯校驗數(shù)據(jù)包),通過某種前向糾錯算法為數(shù)據(jù)包編碼集合生成 糾錯校驗數(shù)據(jù)。具體地,當一個媒體數(shù)據(jù)包編碼集合中各個媒體數(shù)據(jù)包的長度不一致時,首 先按照該媒體數(shù)據(jù)包編碼集合中長度最大的媒體數(shù)據(jù)包的長度對其余的各個媒體數(shù)據(jù)包 進行填充,例如,對上述包含AppDatal和AppData2的媒體數(shù)據(jù)包編碼集合,當AppDatal的 長度小于AppData12,則對AppDatal進行填充,使其填充后和AppData12長度一致,對填充 后的AppDatal和AppData2使用異或操作,得到糾錯校驗數(shù)據(jù)FECDatal。其次,媒體服務器對糾錯校驗數(shù)據(jù)打包,包頭中指明糾錯校驗數(shù)據(jù)包對應了哪些 媒體數(shù)據(jù)包,例如,在本例子中,糾錯校驗數(shù)據(jù)包的包頭中填寫AppDatal和AppData2的構 成的媒體數(shù)據(jù)包編碼集合的標識(ID),將糾錯校驗數(shù)據(jù)FEOTatal和媒體數(shù)據(jù)包標識打包 成糾錯校驗數(shù)據(jù)包后,將媒體數(shù)據(jù)包和糾錯校驗數(shù)據(jù)包發(fā)送給終端。接收端,如終端,根據(jù)不同的編碼冗余度恢復傳輸中丟失的媒體數(shù)據(jù)包。進一步的,上述的冗余編碼策略包括采用統(tǒng)一的編碼冗余度對關鍵幀進行冗余編碼,不對非關鍵幀進行冗余編碼;或 者,當傳輸帶寬不變時,增加關鍵幀的編碼冗余度,降低非關鍵幀的編碼冗余度;或 者,當傳輸帶寬降低時,保持關鍵幀當前的編碼冗余度,降低非關鍵幀的編碼冗余度, 例如,若t時刻的傳輸帶寬A小于t-Ι時刻的傳輸帶寬B時,即傳輸帶寬降低了,則在t時 刻保持關鍵幀t-Ι時刻的編碼冗余度,并采用小于t-Ι時刻編碼冗余度的編碼冗余度對t 時刻的非關鍵幀進行編碼;或者,當傳輸帶寬提高時,增加關鍵幀的編碼冗余度,保持非關鍵幀當前的編碼冗余度; 或者,當?shù)谝环顷P鍵幀在解碼端的解碼順序位于第二非關鍵幀之前時,增加第一非關鍵 幀的編碼冗余度,降低第二非關鍵幀的編碼冗余度。進一步的,當所述當前幀由整數(shù)倍個媒體數(shù)據(jù)包編碼集合和η個剩余的媒體數(shù)據(jù) 包組成時,生成m-n個缺省媒體數(shù)據(jù)包,并為由缺省媒體數(shù)據(jù)包和η個剩余的媒體數(shù)據(jù)包構 成的媒體數(shù)據(jù)包編碼集合生成糾錯校驗數(shù)據(jù)包。為使本發(fā)明實施例的技術方案更加清楚,下面通過另一個示例進行具體說明。當前幀為I幀,該當前I幀包括50 X 1024字節(jié),傳輸時每個媒體數(shù)據(jù)包能攜帶188 字節(jié)有效數(shù)據(jù),則將當前I幀將分成273個媒體數(shù)據(jù)包,其中,最后一個媒體數(shù)據(jù)包(只有 64字節(jié))不足188字節(jié),對最后一個媒體數(shù)據(jù)包進行填充,如將最后一個媒體數(shù)據(jù)包中不足 的124字節(jié)填寫為0。確定編碼冗余度(m,η)中m為2,η為1,則將上述273個媒體數(shù)據(jù)包的每2個組 成1個媒體數(shù)據(jù)包編碼集合,其中,最后一個媒體數(shù)據(jù)包編碼集合中只有一個媒體數(shù)據(jù)包, 小于m的值2,則需要對最后一個媒體數(shù)據(jù)包編碼集合額外生成一個缺省的媒體數(shù)據(jù)包,如 生成一個由0構成的缺省媒體數(shù)據(jù)包。對每個媒體數(shù)據(jù)包編碼集合生成1個冗余校驗數(shù)據(jù) 包,共生成137個糾錯校驗數(shù)據(jù)包。將上述273個媒體數(shù)據(jù)包和137個糾錯校驗數(shù)據(jù)包全 部發(fā)送至終端。本發(fā)明實施例以幀為單位采用不同的編碼冗余度生成糾錯校驗碼,不但在實現(xiàn)糾錯校驗時,能夠有效利用傳輸帶寬,顯著增強接收端對丟包數(shù)據(jù)的恢復能力,提高播放效 果,而且,實現(xiàn)起來比較簡單,計算量小,適用于吞吐率很大的媒體服務器,具有較高的可行 性。本發(fā)明實施例二提供的糾錯校驗方法,如圖2所示,所述方法包括步驟21 當前幀的媒體數(shù)據(jù)包丟失時,獲取丟失的媒體數(shù)據(jù)包對應的編碼冗余 度,所述幀包括關鍵幀和非關鍵幀,關鍵幀的編碼冗余度大于非關鍵幀的編碼冗余度;步驟22 利用所述編碼冗余度恢復所述丟失的媒體數(shù)據(jù)包。接收端,如終端,接收到媒體數(shù)據(jù)包和糾錯校驗數(shù)據(jù)包后,如果發(fā)現(xiàn)媒體數(shù)據(jù)包有 丟包現(xiàn)象,則通過已經接收到的媒體數(shù)據(jù)包和糾錯校驗數(shù)據(jù)包恢復丟失的媒體數(shù)據(jù)包。當終端接收到的屬于同一媒體數(shù)據(jù)包編碼集合的媒體數(shù)據(jù)包和相應的糾錯校驗 數(shù)據(jù)包為m個時,開始利用所述接收到的媒體數(shù)據(jù)包和糾錯校驗數(shù)據(jù)包恢復所述丟失的媒 體數(shù)據(jù)包,其中,所述編碼冗余度表示為(m,k),所述媒體數(shù)據(jù)包編碼集合包括m個媒體數(shù) 據(jù)包,所述糾錯校驗數(shù)據(jù)包包括包頭和糾錯校驗碼,該包頭包括所述媒體數(shù)據(jù)包編碼集合 的標識和所述編碼冗余度。例如,編碼冗余度表示為(2,1),終端接收到了屬于同一媒體數(shù)據(jù)包編碼集合的媒 體數(shù)據(jù)包AppDatal和包含糾錯校驗數(shù)據(jù)FECDatal的糾錯校驗數(shù)據(jù)包時,發(fā)現(xiàn)AppData2丟 失,則先按FECDatal的長度對AppDatal填充,之后對填充后的AppDatal和FECDatal進行 異或,恢復得到AppDatal2。進一步的,當終端接收到的屬于同一媒體數(shù)據(jù)包編碼集合的媒體數(shù)據(jù)包只有η個 且η小于m時,需要生成m-n個缺省媒體數(shù)據(jù)包,利用接收到的屬于同一媒體數(shù)據(jù)包編碼集 合的媒體數(shù)據(jù)包、相應的糾錯校驗數(shù)據(jù)包和生成的缺省媒體數(shù)據(jù)包恢復所述丟失的媒體數(shù) 據(jù)包。本發(fā)明實施例以幀為單位采用不同的編碼冗余度生成糾錯校驗碼,不但在實現(xiàn)糾 錯校驗時,能夠有效利用傳輸帶寬,顯著增強接收端對丟包數(shù)據(jù)的恢復能力,提高播放效 果,而且,實現(xiàn)起來比較簡單,計算量小,適用于吞吐率很大的媒體服務器,具有較高的可行 性。本發(fā)明實施例三提供了一種糾錯校驗裝置,如圖3所示,所述裝置包括幀類型鑒別單元31,用于獲知當前幀的類型,所述幀包括關鍵幀和非關鍵幀;確 定單元32,用于根據(jù)所述幀類型鑒別單元31獲知的當前幀的類型和冗余編碼策略確定當 前幀的編碼冗余度,其中,關鍵幀的編碼冗余度大于非關鍵幀的編碼冗余度;編碼單元33, 用于利用所述確定單元32確定的編碼冗余度為當前幀生成糾錯校驗碼。進一步的,所述確定單元32根據(jù)當前幀的類型和下述至少一種冗余編碼策略確 定當前幀的編碼冗余度采用統(tǒng)一的編碼冗余度對關鍵幀進行冗余編碼,不對非關鍵幀進行冗余編碼;或 者,當傳輸帶寬不變時,增加關鍵幀的編碼冗余度,降低非關鍵幀的編碼冗余度;或 者,當傳輸帶寬降低時,保持關鍵幀當前的編碼冗余度,降低非關鍵幀的編碼冗余度; 或者,
當傳輸帶寬提高時,增加關鍵幀的編碼冗余度,保持非關鍵幀當前的編碼冗余度; 或者,當?shù)谝环顷P鍵幀在解碼端的解碼順序位于第二非關鍵幀之前時,增加第一非關鍵 幀的編碼冗余度,降低第二非關鍵幀的編碼冗余度。本發(fā)明裝置實施例中各功能模塊和單元的具體工作方式參見本發(fā)明方法實施例。 本發(fā)明裝置實施例中各功能模塊和單元可以單獨實現(xiàn),也可以集成在一個或多個單元中實 現(xiàn)。本發(fā)明實施例以幀為單位采用不同的編碼冗余度生成糾錯校驗碼,不但在實現(xiàn)糾 錯校驗時,能夠有效利用傳輸帶寬,顯著增強接收端對丟包數(shù)據(jù)的恢復能力,提高播放效 果,而且,實現(xiàn)起來比較簡單,計算量小,適用于吞吐率很大的媒體服務器,具有較高的可行 性。本發(fā)明實施例四提供了一種終端設備,如圖4所示,該終端設備包括獲取單元41,用于當當前幀的媒體數(shù)據(jù)包丟失時,獲取丟失的媒體數(shù)據(jù)包對應的 編碼冗余度,所述幀包括關鍵幀和非關鍵幀,關鍵幀的編碼冗余度大于非關鍵幀的編碼冗 余度;數(shù)據(jù)包恢復單元42,用于利用所述獲取單元41獲取到的編碼冗余度恢復所述丟 失的媒體數(shù)據(jù)包。進一步的,所述數(shù)據(jù)包恢復單元42,還用于當接收到的屬于同一媒體數(shù)據(jù)包編碼 集合的媒體數(shù)據(jù)包和相應的糾錯校驗數(shù)據(jù)包為m個時,利用所述接收到的媒體數(shù)據(jù)包和糾 錯校驗數(shù)據(jù)包恢復所述丟失的媒體數(shù)據(jù)包,其中,所述編碼冗余度表示為(m,k),所述媒體 數(shù)據(jù)包編碼集合包括m個媒體數(shù)據(jù)包,所述糾錯校驗數(shù)據(jù)包包括包頭和糾錯校驗碼,該包 頭包括所述媒體數(shù)據(jù)包編碼集合的標識和所述編碼冗余度。本發(fā)明裝置實施例中各功能模塊和單元的具體工作方式參見本發(fā)明方法實施例。 本發(fā)明裝置實施例中各功能模塊和單元可以單獨實現(xiàn),也可以集成在一個或多個單元中實 現(xiàn)。本發(fā)明實施例以幀為單位采用不同的編碼冗余度生成糾錯校驗碼,不但在實現(xiàn)糾 錯校驗時,能夠有效利用傳輸帶寬,顯著增強接收端對丟包數(shù)據(jù)的恢復能力,提高播放效 果,而且,實現(xiàn)起來比較簡單,計算量小,適用于吞吐率很大的媒體服務器,具有較高的可行 性。本發(fā)明實施例五提供了一種通信系統(tǒng),該系統(tǒng)包括上述的糾錯校驗裝置和/或終 端設備。該糾錯校驗裝置的具體工作方式參見本發(fā)明實施例三,該終端設備的具體工作方 式參見本發(fā)明實施例四。由上所述,本發(fā)明實施例提供的通信系統(tǒng),在進行糾錯校驗時,發(fā)送端對不同類型 幀的媒體數(shù)據(jù)包采用不同的編碼冗余度,重要性較高的關鍵幀所采用的編碼冗余度大于重 要性較低的非關鍵幀所采用的編碼冗余度,接收端根據(jù)不同的編碼冗余度恢復傳輸中丟失 的媒體數(shù)據(jù)包,從而解決了現(xiàn)有技術中對所有類型幀的媒體數(shù)據(jù)包按照統(tǒng)一的冗余度進行 糾錯校驗而帶來的問題。本發(fā)明實施例的技術方案在實現(xiàn)糾錯校驗時,不但能夠有效利用 傳輸帶寬,顯著增強接收端對丟包數(shù)據(jù)的恢復能力,提高播放效果,且實現(xiàn)方法簡單,具有 較大的可行性。
本發(fā)明實施例六提供的通信系統(tǒng)包括流媒體服務器51和終端52,參見圖5。所述流媒體服務器51包括 流媒體解析單元511,用于解析獲取到的媒體流得到媒體數(shù)據(jù),將媒體數(shù)據(jù)以幀為 單位發(fā)送至流媒體傳輸編碼單元,所述幀包括關鍵幀和非關鍵幀;冗余編碼策略單元512,用于配置和存儲冗余編碼策略,以向流媒體傳輸編碼單元 提供相應的編碼冗余度,其中,關鍵幀的編碼冗余度大于非關鍵幀的編碼冗余度;流媒體傳輸編碼單元513,用于根據(jù)來自所述流媒體解析單元511的每幀媒體數(shù) 據(jù)的類型,查詢所述冗余編碼策略單元512,獲知當前幀的編碼冗余度,并將該媒體數(shù)據(jù)分 割打包成媒體數(shù)據(jù)包發(fā)送至前向糾錯編碼單元514 ;前向糾錯編碼單元514,用于按照所述當前幀的編碼冗余度,為接收到的媒體數(shù)據(jù) 包生成糾錯校驗碼,將該編碼冗余度、糾錯校驗碼和媒體數(shù)據(jù)包通過網(wǎng)絡向終端52發(fā)送;所述終端52包括前向糾錯解碼單元521,用于接收來自流媒體服務器的數(shù)據(jù),當當前幀的媒體數(shù)據(jù) 包丟失時,獲取丟失的媒體數(shù)據(jù)包對應的編碼冗余度,利用所述編碼冗余度解碼并恢復所 述丟失的媒體數(shù)據(jù)包,將該媒體數(shù)據(jù)包發(fā)送至媒體播放單元522 ;媒體播放單元522,用于從來自所述前向糾錯解碼單元521的媒體數(shù)據(jù)包中提取 媒體數(shù)據(jù)并播放。根據(jù)需要進行糾錯校驗的業(yè)務類型不同,處理直播業(yè)務時,所述流媒體解析單元 511包括直播流媒體解析單元5111,用于接收并解析直播媒體數(shù)據(jù),將該直播媒體數(shù)據(jù)以 幀為單位發(fā)送至流媒體傳輸編碼單元;和/或,處理點播業(yè)務時,所述流媒體解析單元511 包括本地媒體存儲單元5112,用于存儲本地的媒體數(shù)據(jù);本地媒體解析單元5113,用于讀 取所述本地媒體存儲單元中的媒體數(shù)據(jù),將該媒體數(shù)據(jù)以幀為單位發(fā)送至流媒體傳輸編碼 單元。進一步的,為保證數(shù)據(jù)通過網(wǎng)絡在流媒體服務器51和終端52之間的成功傳輸,在 流媒體服務器51中還可以包括服務器信令處理單元(圖中未示出),在終端52中還可以包 括終端信令處理單元(圖中未示出)。下面對本發(fā)明實施例六提供的通信系統(tǒng)進行具體描述。參見圖5,在本發(fā)明實施例 六中以系統(tǒng)中的發(fā)送端為媒體服務器、接收端為終端的場景為例,分別針對不同的業(yè)務類 型具體說明糾錯校驗的方法,但并不局限于該場景或該執(zhí)行主體。一、直播(組播)業(yè)務媒體服務器51將直播內容以組播方式發(fā)送時包括以下流程的處理1、直播流媒體解析單元5111從外部的源服務器獲取直播媒體流,解析該直播媒 體流得到媒體數(shù)據(jù),將得到的媒體數(shù)據(jù)以幀為單位發(fā)送給流媒體傳輸編碼單元513,以進行 打包傳輸;2、流媒體傳輸編碼單元513以幀為單位對媒體數(shù)據(jù)進行打包傳輸,包括如下處 理a)流媒體傳輸編碼單元513確定當前幀的編碼冗余度流媒體傳輸編碼單元513根據(jù)來自所述流媒體解析單元511的每幀媒體數(shù)據(jù)的類 型,通過查詢冗余編碼策略單元512,獲知當前幀的編碼冗余度。
其中,可由直播流媒體解析單元5111解析獲知當前幀媒體數(shù)據(jù)的類型,然后告知 流媒體傳輸編碼單元513,或者,由流媒體傳輸編碼單元513直接對媒體數(shù)據(jù)進行解析,獲 知當前幀的類型,所述當前幀的類型主要包括關鍵幀,如I幀和非關鍵幀,如B幀、P幀。在冗余編碼策略單元512中,配置和保存了對不同類型幀的冗余編碼策略,冗余 編碼策略單元512根據(jù)該冗余編碼策略確定當前幀的編碼冗余度。該冗余編碼策略可以包括在傳輸帶寬不變的情況下,不同類型的幀采用不同的編碼冗余度,提高I幀的編 碼冗余度,降低B幀和P幀的編碼冗余度,即I幀的編碼冗余度大于B幀和P幀的編碼冗余 度,如I幀數(shù)據(jù)編碼冗余度為每100個媒體數(shù)據(jù)包生成10個糾錯校驗數(shù)據(jù)包,P幀數(shù)據(jù)編 碼冗余度為每100個媒體數(shù)據(jù)包生成5個糾錯校驗數(shù)據(jù)包,B幀數(shù)據(jù)冗余度為每100個媒 體數(shù)據(jù)包生成1糾錯校驗數(shù)據(jù)包;或者,該冗余編碼策略還可以包括在冗余度不變的情況下,即采用相同的編碼冗 余度,但只利用該編碼冗余度對I幀進行FEC冗余編碼,不對P幀和B幀進行FEC冗余編碼, 這時降低了對傳輸帶寬的要求;或者,該冗余編碼策略還可以包括當?shù)谝环顷P鍵幀在解碼端的解碼順序位于第 二非關鍵幀之前時,增加第一非關鍵幀的編碼冗余度,降低第二非關鍵幀的編碼冗余度。即 在一個播放單元內,媒體服務器51根據(jù)媒體數(shù)據(jù)在終端的解碼順序決定糾錯校驗數(shù)據(jù)的 冗余度,即解碼順序越靠前,冗余度越高,反之冗余度越低;或者,該冗余編碼策略還可以包括當傳輸帶寬降低時,保持關鍵幀當前的編碼冗 余度,降低非關鍵幀的編碼冗余度;例如,在傳輸帶寬降低的情況下,媒體服務器51維持I 幀數(shù)據(jù)編碼冗余度不變,降低B幀、P幀數(shù)據(jù)編碼冗余度;或者,該冗余編碼策略還可以包括當傳輸帶寬提高時,增加關鍵幀的編碼冗余 度,保持非關鍵幀當前的編碼冗余度;例如,在傳輸帶寬提高的情況下,媒體服務器51維持 B幀、P幀數(shù)據(jù)編碼冗余度不變,提高I幀數(shù)據(jù)編碼冗余度。b)對每一幀,流媒體傳輸編碼單元513通知前向糾錯編碼單元514開始新一輪媒 體數(shù)據(jù)包冗余編碼,并告知該前向糾錯編碼單元當前幀的編碼冗余度為(m,k);c)流媒體傳輸編碼單元513將媒體數(shù)據(jù)按傳輸協(xié)議(例如RTP、TS、TS overRTP 等)分割打包成適合傳輸?shù)拿襟w數(shù)據(jù)包,提交給前向糾錯編碼單元514進行冗余編碼傳 輸;3、前向糾錯編碼單元514對媒體數(shù)據(jù)包進行前向糾錯冗余編碼。前向糾錯編碼單元514以媒體數(shù)據(jù)包編碼集合為單位對媒體數(shù)據(jù)包進行糾錯編 碼,當編碼冗余度表示為(m,k)時,m個媒體數(shù)據(jù)包構成一個媒體數(shù)據(jù)包編碼集合。前向糾錯編碼單元514接收來自流媒體傳輸編碼單元513的媒體數(shù)據(jù)包并緩存, 如果已緩存m個媒體數(shù)據(jù)包時,進行如下處理i)計算緩存的m個媒體數(shù)據(jù)包中最大的媒體數(shù)據(jù)包的長度MaxLength ;ii)對緩存的媒體數(shù)據(jù)包添加補丁數(shù)據(jù)(如填充內容為0的數(shù)據(jù)),使所有媒體數(shù) 據(jù)包的長度都是MaxLength ;iii)使用冗余編碼算法為這m個媒體數(shù)據(jù)包生成k個長度為MaxLength的糾錯校 驗數(shù)據(jù)包。該糾錯校驗數(shù)據(jù)包包括包頭和糾錯校驗數(shù)據(jù)。
在此不對生成糾錯校驗數(shù)據(jù)的具體編碼方法進行限定,如可以采用范德蒙碼、柯 西碼、復損碼、Tornado碼等。iv)對上述糾錯校驗數(shù)據(jù)進行打包,生成糾錯校驗數(shù)據(jù)包。每個糾錯校驗數(shù)據(jù)包的 包頭中指明該糾錯校驗數(shù)據(jù)包對應的媒體數(shù)據(jù)包(即相應的媒體數(shù)據(jù)包編碼集合)的標識 以及本次編碼所使用的編碼冗余度,但不局限于此,該包頭中還可攜帶其它所需的信息,之 后將媒體數(shù)據(jù)包和糾錯校驗數(shù)據(jù)包同時發(fā)送給終端;其中,當所述當前幀由整數(shù)倍個媒體數(shù)據(jù)包編碼集合和η個剩余的媒體數(shù)據(jù)包組 成時,η小于m,即對當前幀按媒體數(shù)據(jù)包編碼集合為單位生成糾錯校驗數(shù)據(jù)包時,最后剩 余的媒體數(shù)據(jù)包(η個)不足m個,這時,前向糾錯編碼單元514生成m-n個缺省媒體數(shù)據(jù) 包,例如,生成m-n個長度為MaxLength,內容為全0的媒體數(shù)據(jù)包。將這m-n個缺省媒體數(shù) 據(jù)包和剩余的η個媒體數(shù)據(jù)包構成一個媒體數(shù)據(jù)包編碼集合,為該媒體數(shù)據(jù)包編碼集合生 成糾錯校驗數(shù)據(jù)包。這時,可在該糾錯校驗數(shù)據(jù)包的包頭中攜帶一個標識,指示該媒體數(shù)據(jù) 包編碼集合中存在缺省媒體數(shù)據(jù)包,存在η的剩余的媒體數(shù)據(jù)包。ν)清空當前緩沖區(qū);4、當前幀數(shù)據(jù)處理完成后,流媒體傳輸編碼單元通知前向糾錯編碼單元514結束 本輪媒體數(shù)據(jù)包冗余編碼;前向糾錯編碼單元514將媒體數(shù)據(jù)包和糾錯校驗數(shù)據(jù)包通過網(wǎng)絡以組播的方式 發(fā)送至各終端。終端52接收到組播媒體數(shù)據(jù)后按以下流程處理終端52的前向糾錯解碼單元521確定接收到的媒體數(shù)據(jù)包所采用的冗余編碼算 法,例如,前向糾錯解碼單元521可以通過直播內容描述信息確定所述冗余編碼算法,從而 保證發(fā)送端和接收端采用相同的冗余編碼算法;終端的前向糾錯解碼單元521從網(wǎng)絡中接收到媒體數(shù)據(jù)包和糾錯校驗數(shù)據(jù)包后, 先判斷是否有媒體數(shù)據(jù)包丟失。如果沒有,直接丟棄糾錯校驗數(shù)據(jù)包;當當前幀的媒體數(shù)據(jù) 包丟失時,終端52進行如下處理a)前向糾錯解碼單元521查找丟失媒體數(shù)據(jù)包對應的糾錯校驗數(shù)據(jù)包;采用不同的冗余編碼算法時,丟失媒體數(shù)據(jù)包所對應的糾錯校驗數(shù)據(jù)包也可能不 同。例如,該對應的糾錯校驗數(shù)據(jù)包可以是根據(jù)該丟失的媒體數(shù)據(jù)包的所屬的媒體數(shù)據(jù)包 編碼集合生成的糾錯校驗數(shù)據(jù)包的全部或其中幾個。b)前向糾錯解碼單元521解析糾錯校驗數(shù)據(jù)包包頭,得到編碼冗余度相關參數(shù)m 和k ;c)前向糾錯解碼單元521解析糾錯校驗數(shù)據(jù)包包頭,根據(jù)包頭中指明的對應的媒 體數(shù)據(jù)包標識查找已接收的媒體數(shù)據(jù)包。其中,如果包頭中指明的相關媒體數(shù)據(jù)包個數(shù)小于m,假設為η個,則生成m-n個缺 省的媒體數(shù)據(jù)包;d)如果前向糾錯解碼單元521已接收到的糾錯校驗數(shù)據(jù)包、媒體數(shù)據(jù)包和缺省的 媒體數(shù)據(jù)包(如果需要時)個數(shù)已經有m個,使用冗余編碼算法對應的解碼算法對丟失的 媒體數(shù)據(jù)包進行恢復;e)恢復后的媒體數(shù)據(jù)包交給媒體播放單元522播放;
媒體播放單元522接收來自前向糾錯解碼單元521媒體數(shù)據(jù)包,從該媒體數(shù)據(jù)包 中提取媒體數(shù)據(jù)并播放。二、直播(單播)業(yè)務當終端請求流媒體服務器播放直播內容時,包括如下處理首先,終端52和媒體服務器51之間通過信息交互,保證所采用的冗余編碼算法是 一致的,例如,終端52通過終端信令處理單元向媒體服務器51請求直播內容描述信息;媒 體服務器51通過服務器信令處理單元返回直播內容描述信息,該直播內容描述信息包括 指示冗余編碼算法的信息;然后,終端信令處理單元設置終端的前向糾錯解碼單元521所 使用的編碼算法,向媒體服務器51的服務器信令處理單元發(fā)送播放請求。服務器信令處理 單元通知直播流媒體解析單元5111從外部的源服務器獲取直播媒體流。后續(xù)過程中媒體 服務器51的具體工作方法參見上述的直播(組播)業(yè)務中的步驟1至4和終端52的具體 工作方法參見上述的直播(組播)業(yè)務中的步驟a)至e)。二、點播業(yè)務當終端請求流媒體服務器播放點播內容時,包括如下處理首先,終端52和媒體服務器51之間通過信息交互,保證所采用的冗余編碼算法是 一致的,例如,終端52通過終端信令處理單元向媒體服務器51請求點播內容描述信息;媒 體服務器51通過服務器信令處理單元返回點播內容描述信息,該點播內容描述信息包括 指示冗余編碼算法的信息;然后,終端信令處理單元設置終端的前向糾錯解碼單元521所 使用的編碼算法,向媒體服務器51的服務器信令處理單元發(fā)送播放請求。然后,服務器信令處理單元通知本地媒體解析單元5113從本地媒體存儲單元 5112讀取本地的媒體數(shù)據(jù),本地媒體解析單元5113解析該本地媒體文件得到媒體數(shù)據(jù),將 得到的媒體數(shù)據(jù)以幀為單位發(fā)送給流媒體傳輸編碼單元513,以進行打包傳輸。后續(xù)過程中 媒體服務器51的具體工作方法參見上述的直播(組播)業(yè)務中的步驟1至4和終端52的 具體工作方法參見上述的直播(組播)業(yè)務中的步驟a)至e)。本發(fā)明實施例提供的技術方案,在進行糾錯校驗時,發(fā)送端對不同類型幀的媒體 數(shù)據(jù)包采用不同的編碼冗余度,重要性較高的關鍵幀所采用的編碼冗余度大于重要性較低 的非關鍵幀所采用的編碼冗余度,接收端根據(jù)不同的編碼冗余度恢復傳輸中丟失的媒體數(shù) 據(jù)包,從而解決了現(xiàn)有技術中對所有類型幀的媒體數(shù)據(jù)包按照統(tǒng)一的冗余度進行糾錯校驗 而帶來的問題。本發(fā)明實施例的技術方案在實現(xiàn)糾錯校驗時,不但能夠有效利用傳輸帶寬, 顯著增強接收端對丟包數(shù)據(jù)的恢復能力,提高播放效果,且實現(xiàn)方法簡單,具有較大的可行 性。本領域的技術人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺 的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻 的部分可以軟件產品的形式體現(xiàn)出來,該計算機軟件產品可以存儲在存儲介質中,如ROM/ RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器, 或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何 熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到變化或替換,都應涵 蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應以權利要求的保護范圍為準。
權利要求
1.一種糾錯校驗方法,其特征在于,所述方法包括 獲知當前幀的類型,所述幀包括關鍵幀和非關鍵幀;根據(jù)當前幀的類型和冗余編碼策略確定當前幀的編碼冗余度,其中,關鍵幀的編碼冗 余度大于非關鍵幀的編碼冗余度;利用所述確定的編碼冗余度為當前幀生成糾錯校驗碼。
2.根據(jù)權利要求1所述的糾錯校驗方法,其特征在于,所述冗余編碼策略包括 采用統(tǒng)一的編碼冗余度對關鍵幀進行冗余編碼,不對非關鍵幀進行冗余編碼;或者, 當傳輸帶寬不變時,增加關鍵幀的編碼冗余度,降低非關鍵幀的編碼冗余度;或者,當傳輸帶寬降低時,保持關鍵幀當前的編碼冗余度,降低非關鍵幀的編碼冗余度;或者,當傳輸帶寬提高時,增加關鍵幀的編碼冗余度,保持非關鍵幀當前的編碼冗余度;或者,當?shù)谝环顷P鍵幀在解碼端的解碼順序位于第二非關鍵幀之前時,增加第一非關鍵幀的 編碼冗余度,降低第二非關鍵幀的編碼冗余度。
3.根據(jù)權利要求1所述的糾錯校驗方法,其特征在于,所述利用所述確定的編碼冗余 度為當前幀生成糾錯校驗碼包括按照所述確定的編碼冗余度分別為當前幀的各媒體數(shù)據(jù)包編碼集合生成糾錯校驗數(shù) 據(jù)包,所述編碼冗余度表示為(m,k),所述當前幀由媒體數(shù)據(jù)包構成,所述媒體數(shù)據(jù)包編碼 集合包括m個媒體數(shù)據(jù)包;利用所述糾錯校驗碼為所述各媒體數(shù)據(jù)包編碼集合生成k個糾錯校驗數(shù)據(jù)包,所述糾 錯校驗數(shù)據(jù)包包括包頭和所述糾錯校驗碼,該包頭包括所述媒體數(shù)據(jù)包編碼集合的標識和 編碼冗余度。
4.根據(jù)權利要求3所述的糾錯校驗方法,其特征在于,所述方法還包括當所述當前幀由整數(shù)倍個媒體數(shù)據(jù)包編碼集合和η個剩余的媒體數(shù)據(jù)包組成時,生成 m-n個缺省媒體數(shù)據(jù)包,并為由缺省媒體數(shù)據(jù)包和η個剩余的媒體數(shù)據(jù)包構成的媒體數(shù)據(jù) 包編碼集合生成糾錯校驗數(shù)據(jù)包,其中η小于m。
5.根據(jù)權利要求1至4任一項所述的糾錯校驗方法,其特征在于,所述關鍵幀包括I 幀,所述非關鍵幀包括P幀和B幀。
6.一種糾錯校驗方法,其特征在于,所述方法包括當前幀的媒體數(shù)據(jù)包丟失時,獲取丟失的媒體數(shù)據(jù)包對應的編碼冗余度,所述幀包括 關鍵幀和非關鍵幀,關鍵幀的編碼冗余度大于非關鍵幀的編碼冗余度; 利用所述編碼冗余度恢復所述丟失的媒體數(shù)據(jù)包。
7.根據(jù)權利要求6所述的糾錯校驗方法,其特征在于,所述利用所述編碼冗余度恢復 所述丟失的媒體數(shù)據(jù)包括當接收到的屬于同一媒體數(shù)據(jù)包編碼集合的媒體數(shù)據(jù)包和相應的糾錯校驗數(shù)據(jù)包為m 個時,利用所述接收到的媒體數(shù)據(jù)包和糾錯校驗數(shù)據(jù)包恢復所述丟失的媒體數(shù)據(jù)包,其中, 所述編碼冗余度表示為(m,k),所述媒體數(shù)據(jù)包編碼集合包括m個媒體數(shù)據(jù)包,所述糾錯校 驗數(shù)據(jù)包包括包頭和糾錯校驗碼,該包頭包括所述媒體數(shù)據(jù)包編碼集合的標識和所述編碼 冗余度。
8.根據(jù)權利要求7所述的糾錯校驗方法,其特征在于,所述利用所述編碼冗余度恢復 所述丟失的媒體數(shù)據(jù)包括當屬于同一媒體數(shù)據(jù)包編碼集合的媒體數(shù)據(jù)包的個數(shù)為η且η小于m時,生成m-n個 缺省媒體數(shù)據(jù)包,利用接收到的屬于同一媒體數(shù)據(jù)包編碼集合的媒體數(shù)據(jù)包、相應的糾錯 校驗數(shù)據(jù)包和生成的缺省媒體數(shù)據(jù)包恢復所述丟失的媒體數(shù)據(jù)包。
9.一種糾錯校驗裝置,其特征在于,所述裝置包括幀類型鑒別單元,用于獲知當前幀的類型,所述幀包括關鍵幀和非關鍵幀; 確定單元,用于根據(jù)所述幀類型鑒別單元獲知的當前幀的類型和冗余編碼策略確定當 前幀的編碼冗余度,其中,關鍵幀的編碼冗余度大于非關鍵幀的編碼冗余度;編碼單元,用于利用所述確定單元確定的編碼冗余度為當前幀生成糾錯校驗碼。
10.根據(jù)權利要求9所述的糾錯校驗裝置,其特征在于,所述確定單元根據(jù)當前幀的類 型和下述至少一種冗余編碼策略確定當前幀的編碼冗余度采用統(tǒng)一的編碼冗余度對關鍵幀進行冗余編碼,不對非關鍵幀進行冗余編碼;或者, 當傳輸帶寬不變時,增加關鍵幀的編碼冗余度,降低非關鍵幀的編碼冗余度;或者, 當傳輸帶寬降低時,保持關鍵幀當前的編碼冗余度,降低非關鍵幀的編碼冗余度;或者,當傳輸帶寬提高時,增加關鍵幀的編碼冗余度,保持非關鍵幀當前的編碼冗余度;或者,當?shù)谝环顷P鍵幀在解碼端的解碼順序位于第二非關鍵幀之前時,增加第一非關鍵幀的 編碼冗余度,降低第二非關鍵幀的編碼冗余度。
11.一種終端設備,其特征在于,所述終端設備包括獲取單元,用于當當前幀的媒體數(shù)據(jù)包丟失時,獲取丟失的媒體數(shù)據(jù)包對應的編碼冗 余度,所述幀包括關鍵幀和非關鍵幀,關鍵幀的編碼冗余度大于非關鍵幀的編碼冗余度;數(shù)據(jù)包恢復單元,用于利用所述獲取單元獲取到的編碼冗余度恢復所述丟失的媒體數(shù) 據(jù)包。
12.根據(jù)權利要求11所述的終端設備,其特征在于,所述數(shù)據(jù)包恢復單元,還用于當接 收到的屬于同一媒體數(shù)據(jù)包編碼集合的媒體數(shù)據(jù)包和相應的糾錯校驗數(shù)據(jù)包為m個時,利 用所述接收到的媒體數(shù)據(jù)包和糾錯校驗數(shù)據(jù)包恢復所述丟失的媒體數(shù)據(jù)包,其中,所述編 碼冗余度表示為(m,k),所述媒體數(shù)據(jù)包編碼集合包括m個媒體數(shù)據(jù)包,所述糾錯校驗數(shù) 據(jù)包包括包頭和糾錯校驗碼,該包頭包括所述媒體數(shù)據(jù)包編碼集合的標識和所述編碼冗余 度。
13.—種通信系統(tǒng),其特征在于,所述系統(tǒng)包括如權利要求9或10所述的糾錯校驗裝置 和/或如權利要求11或12所述的終端設備。
14.一種通信系統(tǒng),其特征在于,所述系統(tǒng)包括流媒體服務器和終端, 所述流媒體服務器包括流媒體解析單元,用于解析獲取到的媒體流得到媒體數(shù)據(jù),將媒體數(shù)據(jù)以幀為單位發(fā) 送至流媒體傳輸編碼單元,所述幀包括關鍵幀和非關鍵幀;冗余編碼策略單元,用于配置和存儲冗余編碼策略,以向流媒體傳輸編碼單元提供相 應的編碼冗余度,其中,關鍵幀的編碼冗余度大于非關鍵幀的編碼冗余度;流媒體傳輸編碼單元,用于根據(jù)來自所述流媒體解析單元的每幀媒體數(shù)據(jù)的類型,查 詢所述冗余編碼策略單元,獲知當前幀的編碼冗余度,并將該媒體數(shù)據(jù)分割打包成媒體數(shù) 據(jù)包發(fā)送至前向糾錯編碼單元;前向糾錯編碼單元,用于按照所述當前幀的編碼冗余度,為接收到的媒體數(shù)據(jù)包生成 糾錯校驗碼,將該編碼冗余度、糾錯校驗碼和媒體數(shù)據(jù)包通過網(wǎng)絡向終端發(fā)送; 所述終端包括前向糾錯解碼單元,用于接收來自流媒體服務器的數(shù)據(jù),當當前幀的媒體數(shù)據(jù)包丟失 時,獲取丟失的媒體數(shù)據(jù)包對應的編碼冗余度,利用所述編碼冗余度解碼并恢復所述丟失 的媒體數(shù)據(jù)包,將該媒體數(shù)據(jù)包發(fā)送至媒體播放單元;媒體播放單元,用于從來自所述前向糾錯解碼單元的媒體數(shù)據(jù)包中提取媒體數(shù)據(jù)并播放。
15.根據(jù)權利要求14所述的通信系統(tǒng),其特征在于,所述流媒體解析單元包括直播流媒體解析單元,用于接收直播媒體流并解析得到直 播媒體數(shù)據(jù),將該直播媒體數(shù)據(jù)以幀為單位發(fā)送至流媒體傳輸編碼單元;和/或所述流媒體解析單元包括本地媒體存儲單元,用于存儲本地的媒體文件;本地媒體 解析單元,用于讀取所述本地媒體存儲單元中的媒體文件并解析得到本地媒體數(shù)據(jù),將該 本地媒體數(shù)據(jù)以幀為單位發(fā)送至流媒體傳輸編碼單元。
全文摘要
本發(fā)明公開了一種糾錯校驗方法、設備和系統(tǒng),涉及流媒體數(shù)據(jù)處理技術,能夠有效利用傳輸帶寬,顯著增強接收端對丟包數(shù)據(jù)的恢復能力,提高播放效果,且實現(xiàn)方法簡單,具有較大的可行性。本發(fā)明實施例提供的方法包括獲知當前幀的類型,所述幀包括關鍵幀和非關鍵幀;根據(jù)當前幀的類型和冗余編碼策略確定當前幀的編碼冗余度,其中,關鍵幀的編碼冗余度大于非關鍵幀的編碼冗余度;利用所述確定的編碼冗余度為當前幀生成糾錯校驗碼。本發(fā)明適用于對各種編碼格式的媒體數(shù)據(jù)進行糾錯校驗的場合。
文檔編號H04N21/647GK102143367SQ20101010951
公開日2011年8月3日 申請日期2010年1月30日 優(yōu)先權日2010年1月30日
發(fā)明者兌繼英 申請人:華為技術有限公司