專利名稱:一種解碼方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種解碼方法和裝置。
背景技術(shù):
MBMS (Multimedia Broadcast/Multicast Service,多媒體廣播組播業(yè)務(wù))是3GPP R6 (3rd Generation Partnership Project Release6,第三代合作伙伴計劃第 6 版本)中引入的一項重大功能,用于支持廣播業(yè)務(wù),在同一時間為大量用戶提供高速率數(shù)據(jù)業(yè)務(wù)。從廣播文件的格式來劃分,MBMS可以分為兩類一類是音視頻流式業(yè)務(wù),例如,流式音頻廣播和手機電視,廣播文件以實時流的形式通過MBMS信道廣播給終端,終端實時收聽或收看; 另一類是文件下載式業(yè)務(wù),業(yè)務(wù)內(nèi)容以文件的形式通過MBMS信道廣播給終端,終端將接收到的數(shù)據(jù)保存成文件形式,用戶離線打開文件,以使用業(yè)務(wù)。對于通過MBMS信道傳輸?shù)臄?shù)據(jù)文件而言,該數(shù)據(jù)文件必須是完整的,不能丟失任何數(shù)據(jù)包,因此,在利用MBMS進行數(shù)據(jù)文件的廣播時,必須保證數(shù)據(jù)文件的完整性。另外,廣播數(shù)據(jù)文件時,需要采用專門用于文件廣播的FLUTE (File Delivery over Unidirectional Transport,單向文件傳輸)協(xié)議,而FLUTE協(xié)議是基于UDP (User Datagram Protocol,用戶數(shù)據(jù)包協(xié)議)的,UDP是一種面向無連接的傳輸層協(xié)議,提供簡單的不可靠信息傳送服務(wù),無法在傳輸層上進行文件重傳。因此,利用MBMS開展文件下載式業(yè)務(wù)時,必須考慮文件的可靠傳輸問題。為提高數(shù)據(jù)通信的可信度,可以在MBMS中使用FECO^orward Error Correction, 前向糾錯)編碼。FEC編碼通常應(yīng)用在單向通信信道中,該單向通信通道中的傳輸錯誤無法通過請求重傳來恢復(fù)。FEC編碼的核心思想包括,在傳輸數(shù)據(jù)中增加冗余信息,當(dāng)傳輸過程中出現(xiàn)錯誤,接收端可以利用接收到的冗余信息重構(gòu)丟失的數(shù)據(jù),從而保證文件完整性。在 FEC編碼的技術(shù)方案中,MBMS平臺在數(shù)據(jù)文件廣播前需要先進行編碼,生成冗余數(shù)據(jù)包,然后將冗余數(shù)據(jù)包和原始數(shù)據(jù)包一起發(fā)送給終端,終端必須支持對應(yīng)的FEC解碼。3GPP TS 26. 346建議在MBMS中使用Raptor編碼,如圖1所示,Raptor FEC編碼的流程包括首先,利用傳統(tǒng)的糾刪碼,如LDPC(Low Density Parity Check Code,低密度奇偶校驗碼),對數(shù)據(jù)包進行預(yù)編碼,使得編碼后的數(shù)據(jù)包即使在傳輸?shù)倪^程中部分丟失, 也能在接收端全部恢復(fù)出來;隨后,利用LT(Luby Transform,盧比轉(zhuǎn)換)碼對預(yù)編碼后的數(shù)據(jù)包進行二次編碼,即,將預(yù)編碼后的數(shù)據(jù)包與適當(dāng)選取的LT碼級聯(lián),得到具有線性時間譯碼復(fù)雜度的Raptor碼。接收端接收到編碼符號后,對編碼符號進行解碼,恢復(fù)出源碼。 根據(jù)Raptor FEC編碼原理可知,經(jīng)過Raptor編碼后,接收端只要接收到(N+R)個編碼符號中的任意N個編碼符號,即可恢復(fù)所有的N個源碼,如圖2所示。如果數(shù)據(jù)文件采用多次重復(fù)廣播,發(fā)送端先進行一次FEC編碼,然后將編碼符號重復(fù)廣播。接收端每次接收到編碼符號后,都進行一次FEC解碼,不同F(xiàn)EC解碼之間彼此獨立,如圖3所示。如果接收到N個編碼符號,接收端可以恢復(fù)出所有的源碼;如果接收到的編碼符號小于N個,接收端將無法恢復(fù)出所有的源碼。
在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下問題由于接收端需要接收到(N+R)個編碼符號中的至少N個編碼符號,才能恢復(fù)出所有的N個源碼,而在無線廣播信道中,丟包是很正常的現(xiàn)象,因此,接收端多次接收到的編碼符號可能都小于N個,從而導(dǎo)致每次獨立解碼都無法將所有源碼恢復(fù)出來,降低了 FEC修復(fù)效率。
發(fā)明內(nèi)容
本發(fā)明實施例的目的在于提供一種解碼方法和裝置,以提高解碼效率,為此,本發(fā)明實施例采用如下技術(shù)方案一種解碼方法,包括接收發(fā)送端重復(fù)廣播的編碼符號,并累積多次接收到的編碼符號;對累積得到的編碼符號進行解碼。一種解碼器,包括接收模塊,用于接收發(fā)送端重復(fù)廣播的編碼符號;存儲模塊,用于累積所述接收模塊多次接收到的編碼符號;解碼模塊,用于對所述存儲模塊累積得到的編碼符號進行解碼。本發(fā)明的實施例包括以下優(yōu)點,由于編碼符號是重復(fù)廣播的,發(fā)送端第一次和第N 次廣播的編碼符號是完全相同的,通過對編碼符號進行累積和解碼,能夠在很大程度上克服廣播中出現(xiàn)的丟包現(xiàn)象,使編碼符號的丟失概率呈指數(shù)降低,進而容易滿足接收端全部恢復(fù)出源碼的條件,從而有效地解決了單次廣播接收無法完全恢復(fù)出源碼的問題,提高了解碼效率。當(dāng)然,實施本發(fā)明的實施例的任一產(chǎn)品并不一定需要同時達到以上所述的所有優(yōu)點。
圖1為現(xiàn)有技術(shù)中的Raptor編碼過程示意圖;圖2為現(xiàn)有技術(shù)中的Raptor碼示意圖;圖3為現(xiàn)有技術(shù)中的FEC解碼示意圖;圖4為本發(fā)明實施例中的解碼方法流程圖;圖5為本發(fā)明實施例中的解碼過程示意圖;圖6為本發(fā)明實施例中的解碼器的結(jié)構(gòu)示意圖。
具體實施例方式現(xiàn)有技術(shù)中,發(fā)送端對編碼符號進行重復(fù)廣播,接收端對接收到的編碼符號進行獨立解碼。上述解碼方法相對比較簡單,但是沒有充分利用接收端重復(fù)廣播編碼符號的特點,沒有最大程度地利用FEC糾錯恢復(fù)源碼的能力。為解決現(xiàn)有技術(shù)的缺陷,本發(fā)明實施例提出的技術(shù)方案中,接收端不再直接根據(jù)每次接收到的編碼符號進行解碼,而是利用編碼符號重復(fù)廣播的特點,將多次接收到的編碼符號進行存儲和累積,并對累積得到的編碼符號進行解碼。下面將結(jié)合本發(fā)明中的附圖,對本發(fā)明中的技術(shù)方案進行清楚、完整的描述,顯然,所描述的實施例是本發(fā)明的一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。如圖4所示,為本發(fā)明實施例中的解碼方法流程圖,包括以下步驟步驟401,接收端接收發(fā)送端第一次廣播的編碼符號,對接收到的編碼符號進行解碼,得到恢復(fù)出的源碼。具體地,當(dāng)接收端接收到的數(shù)據(jù)分片構(gòu)成一個FEC解碼單元時,接收端可以對該數(shù)據(jù)分片包含的編碼符號進行FEC解碼,恢復(fù)出源碼。上述FEC解碼單元可以包括源碼和冗余碼。例如,發(fā)送端廣播的編碼符號包括N個源碼和R個冗余碼,接收端可以根據(jù)接收到的編碼符號進行FEC解碼,恢復(fù)出源碼。當(dāng)傳輸信道沒有發(fā)生丟包時,接收端接收到的一個 FEC解碼單元包括N個源碼和R個冗余碼,S卩(N+R)個編碼符號;當(dāng)傳輸信道發(fā)生丟包時, 接收端接收到的一個FEC解碼單元中的編碼符號的個數(shù)小于(N+R)。如果接收端接收到的一個FEC解碼單元包括上述(N+R)個編碼符號中的至少N個編碼符號,則接收端可以根據(jù)該FEC解碼單元恢復(fù)出發(fā)送端廣播的全部的N個源碼;否則,接收端無法恢復(fù)出發(fā)送端廣播的全部的N個源碼。步驟402,接收端判斷恢復(fù)出的源碼是否為完整的源碼,如果是,則執(zhí)行步驟403 ; 否則,執(zhí)行步驟404。具體地,接收端對恢復(fù)出的源碼進行完整性檢測,S卩,判斷接收端恢復(fù)出的源碼是否為發(fā)送端發(fā)送的全部源碼,如果接收端恢復(fù)出的源碼為發(fā)送端發(fā)送的全部源碼,則判斷發(fā)送端廣播的編碼符號已經(jīng)被接收端完整接收;否則,判斷發(fā)送端廣播的編碼符號沒有被完整接收。步驟403,接收端停止接收編碼符號或者丟棄接收到的編碼符號。當(dāng)接收端判斷恢復(fù)出的源碼為完整的源碼,S卩,接收端已經(jīng)完整接收到發(fā)送端廣播的編碼符號時,如果發(fā)送端繼續(xù)廣播相同的編碼符號,接收端可以停止接收發(fā)送端重復(fù)廣播的編碼符號,也可以丟棄接收到的編碼符號。步驟404,接收端判斷重復(fù)廣播是否結(jié)束,如果結(jié)束,則執(zhí)行步驟405 ;否則,執(zhí)行步驟406。需要說明的是,在執(zhí)行上述步驟402和步驟404的過程中,接收端可以繼續(xù)接收發(fā)送端重復(fù)廣播的編碼符號,并累積多次接收到的編碼符號。具體地,接收端可以存儲第一次接收到的所有的編碼符號,如果后續(xù)接收到的編碼符號中包含接收端已存儲的編碼符號之外的新的編碼符號,接收端可以將新的編碼符號與之前存儲的編碼符號累積到一起。步驟405,接收端停止接收編碼符號,對累積得到的編碼符號進行解碼,得到恢復(fù)出的源碼。步驟406,接收端繼續(xù)接收和累計發(fā)送端重復(fù)廣播的編碼符號,對累積得到的編碼符號進行解碼,得到恢復(fù)出的源碼。具體地,如果重復(fù)廣播沒有結(jié)束,接收端繼續(xù)接收發(fā)送端重復(fù)廣播的編碼符號,更新累積得到的編碼符號。當(dāng)接收端完整接收一個FEC解碼單元后,接收端可以對累積得到的編碼符號進行FEC解碼,得到恢復(fù)出的源碼,如圖5所示。通過對多次接收到的編碼符號進行累積,接收端可以增加接收到的編碼符號的數(shù)量,從而提高恢復(fù)出發(fā)送端廣播的全部
5源碼的概率。例如,發(fā)送端向接收端重復(fù)廣播5個源碼N1、N2、N3、N4和N5以及3個冗余碼R1、 R2和R3,接收端第一次接收到的編碼符號為m、N2、Rl和R2時,由于接收端第一次接收到的編碼符號的數(shù)量少于發(fā)送端廣播的源碼的數(shù)量,接收端無法恢復(fù)出發(fā)送端廣播的全部的 5個源碼;接收端第二次接收到的編碼符號為m、N3、Rl和R2時,由于接收端第二次接收到的編碼符號的數(shù)量仍然少于發(fā)送端廣播的源碼的數(shù)量,如果接收端僅根據(jù)第二次接收到的編碼符號進行FEC解碼,仍然無法恢復(fù)出發(fā)送端廣播的全部的5個源碼。然而,由于本發(fā)明實施例中的接收端可以存儲第一次接收到的編碼符號,并將第二次接收到的新的編碼符號 N3與之前存儲的編碼符號累積到一起,得到5個編碼符號,即,N1、N2、N3、R1和R2,由于累積得到的編碼符號的數(shù)量不少于發(fā)送端廣播的源碼的數(shù)量,接收端可以根據(jù)累積得到的編碼符號恢復(fù)出發(fā)送端廣播的全部的5個源碼。需要說明的是,執(zhí)行完步驟406后,可以繼續(xù)執(zhí)行步驟402。即,接收端根據(jù)累積到的編碼符號恢復(fù)出源碼后,可以繼續(xù)對恢復(fù)出的源碼進行完整性檢測,如果恢復(fù)出的源碼不是完整的源碼,則繼續(xù)接收重復(fù)廣播的編碼符號,更新累積得到的編碼符號,并對更新后的編碼符號進行FEC解碼;如果恢復(fù)出的源碼是完整的源碼,則停止接收發(fā)送端重復(fù)廣播的編碼符號,也可以丟棄接收到的編碼符號。需要說明的是,本發(fā)明實施例中的步驟402和步驟403為優(yōu)選步驟,通過判斷恢復(fù)出的源碼是否為完整的源碼,接收端可以在恢復(fù)出發(fā)送端廣播的全部源碼后,停止對發(fā)送端重復(fù)廣播的編碼符號的累積和解碼,減少了接收端的資源消耗。在本發(fā)明的其他實施方式中,也可以不判斷恢復(fù)出的源碼是否為完整的源碼,同樣可以實現(xiàn)本發(fā)明的發(fā)明目的, 即,提高FEC的修復(fù)效率。另外,本發(fā)明實施例中的步驟404和步驟405也是優(yōu)選步驟,通過判斷重復(fù)廣播是否停止,接收端可以在重復(fù)廣播停止后,停止接收編碼符號,以節(jié)省接收端的空口資源。在本發(fā)明的其他實施方式中,也可以不判斷重復(fù)廣播是否停止,同樣可以實現(xiàn)本發(fā)明的發(fā)明目的,即,提高FEC的修復(fù)效率。本發(fā)明的實施例包括以下優(yōu)點,由于編碼符號是重復(fù)廣播的,發(fā)送端第一次和第N 次廣播的編碼符號是完全相同的,通過對編碼符號進行累積和解碼,能夠在很大程度上克服廣播中出現(xiàn)的丟包現(xiàn)象,使編碼符號的丟失概率呈指數(shù)降低,進而容易滿足接收端全部恢復(fù)出源碼的條件,從而有效地解決了單次廣播接收無法完全恢復(fù)出源碼的問題,提高了 FEC的修復(fù)效率。當(dāng)然,實施本發(fā)明的實施例的任一產(chǎn)品并不一定需要同時達到以上所述的所有優(yōu)點。根據(jù)上述實施方式中提供的解碼方法,本發(fā)明實施例還提供了應(yīng)用上述解碼方法的裝置。如圖6所示,為本發(fā)明實施例中的解碼器的結(jié)構(gòu)示意圖,該解碼器可以是上述方法實施例中的接收端,包括接收模塊610,用于接收發(fā)送端重復(fù)廣播的編碼符號。其中,編碼符號包括源碼和冗余碼。存儲模塊620,用于累積接收模塊610多次接收到的編碼符號。具體地,存儲模塊620可以存儲接收模塊610第一次接收到的所有的編碼符號,如果接收模塊610后續(xù)接收到的編碼符號中包含存儲模塊620已存儲的編碼符號之外的新的編碼符號,存儲模塊620可以將新的編碼符號與之前存儲的編碼符號累積到一起。解碼模塊630,用于對存儲模塊620累積得到的編碼符號進行解碼。具體地,上述解碼模塊630,具體用于當(dāng)接收模塊610接收到的數(shù)據(jù)分片構(gòu)成一個完整的FEC解碼單元時,對累積得到的源碼和冗余碼進行FEC解碼,得到恢復(fù)出的源碼。例如,發(fā)送端廣播的編碼符號包括N個源碼和R個冗余碼,如果存儲模塊620累積得到上述 (N+R)個編碼符號中的至少N個編碼符號,解碼模塊630可以恢復(fù)出發(fā)送端廣播的全部的N 個源碼,否則;解碼模塊630無法恢復(fù)出發(fā)送端廣播的全部的N個源碼。優(yōu)選地,本發(fā)明實施例中的解碼器,可以進一步包括判斷模塊640,用于判斷解碼模塊630恢復(fù)出的源碼是否為完整的源碼,以及重復(fù)
廣播是否結(jié)束。具體地,判斷模塊640可以對恢復(fù)出的源碼進行完整性檢測,S卩,判斷解碼模塊 630恢復(fù)出的源碼是否為發(fā)送端發(fā)送的全部源碼,如果解碼模塊630恢復(fù)出的源碼為發(fā)送端發(fā)送的全部源碼,則判斷發(fā)送端廣播的編碼符號已經(jīng)被接收模塊610完整接收;否則,判斷發(fā)送端廣播的編碼符號沒有被接收模塊610完整接收。相應(yīng)地,上述接收模塊610,還用于在解碼模塊630恢復(fù)出的源碼不是完整的源碼,且重復(fù)廣播沒有結(jié)束時,繼續(xù)接收發(fā)送端重復(fù)廣播的編碼符號,直到解碼模塊630恢復(fù)出的源碼為完整的源碼;相應(yīng)地,上述存儲模塊620,還用于繼續(xù)累積接收模塊610接收到的編碼符號,直到解碼模塊630恢復(fù)出的源碼為完整的源碼;上述解碼模塊630,還用于繼續(xù)對存儲模塊620累積得到的編碼符號進行FEC解碼,直到恢復(fù)出的源碼為完整的源碼。此外,上述接收模塊610,還用于在解碼模塊630恢復(fù)出的源碼不是完整的源碼, 且重復(fù)廣播已結(jié)束時,停止接收編碼符號;相應(yīng)地,上述解碼模塊630對存儲模塊620累積得到的編碼符號進行FEC解碼。上述接收模塊610,還用于在解碼模塊630恢復(fù)出的源碼是完整的源碼時,停止接收編碼符號或者丟棄接收到的編碼符號。具體地,當(dāng)判斷模塊640判斷解碼模塊630恢復(fù)出的源碼為完整的源碼,即,接收模塊610已經(jīng)完整接收到發(fā)送端廣播的編碼符號時,如果發(fā)送端繼續(xù)廣播相同的編碼符號,接收模塊610可以停止接收發(fā)送端重復(fù)廣播的編碼符號,也可以丟棄接收到的編碼符號。本發(fā)明的實施例包括以下優(yōu)點,由于編碼符號是重復(fù)廣播的,發(fā)送端第一次和第N 次廣播的編碼符號是完全相同的,通過對編碼符號進行累積和解碼,能夠在很大程度上克服廣播中出現(xiàn)的丟包現(xiàn)象,使編碼符號的丟失概率呈指數(shù)降低,進而容易滿足接收端全部恢復(fù)出源碼的條件,從而有效地解決了單次廣播接收無法完全恢復(fù)出源碼的問題,提高了 FEC的修復(fù)效率。當(dāng)然,實施本發(fā)明的實施例的任一產(chǎn)品并不一定需要同時達到以上所述的所有優(yōu)點。本領(lǐng)域技術(shù)人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應(yīng)變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機,個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。 以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視本發(fā)明的保護范圍。
權(quán)利要求
1.一種解碼方法,其特征在于,包括接收發(fā)送端重復(fù)廣播的編碼符號,并累積多次接收到的編碼符號; 對累積得到的編碼符號進行解碼。
2.如權(quán)利要求1所述的方法,其特征在于,所述編碼符號包括源碼和冗余碼; 對累積得到的編碼符號進行解碼,包括對累積得到的源碼和冗余碼進行前端糾錯FEC解碼,得到恢復(fù)出的源碼。
3.如權(quán)利要求2所述的方法,其特征在于,所述對累積得到的編碼符號進行解碼之后, 還包括如果所述恢復(fù)出的源碼不是完整的源碼,且重復(fù)廣播沒有結(jié)束,則繼續(xù)接收和累計發(fā)送端重復(fù)廣播的編碼符號,并對累積得到的編碼符號進行FEC解碼,直到恢復(fù)出的源碼為完整的源碼。
4.如權(quán)利要求2所述的方法,其特征在于,所述對累積得到的編碼符號進行解碼之后, 還包括如果所述恢復(fù)出的源碼不是完整的源碼,且重復(fù)廣播已結(jié)束,則停止接收編碼符號,對累積得到的編碼符號進行FEC解碼,得到恢復(fù)出的源碼。
5.如權(quán)利要求2所述的方法,其特征在于,所述對累積得到的編碼符號進行解碼之后, 還包括如果所述恢復(fù)出的源碼是完整的源碼,則停止接收編碼符號或者丟棄接收到的編碼符號。
6.一種解碼器,其特征在于,包括接收模塊,用于接收發(fā)送端重復(fù)廣播的編碼符號; 存儲模塊,用于累積所述接收模塊多次接收到的編碼符號; 解碼模塊,用于對所述存儲模塊累積得到的編碼符號進行解碼。
7.如權(quán)利要求6所述的解碼器,其特征在于,所述編碼符號包括源碼和冗余碼;所述解碼模塊,具體用于對累積得到的源碼和冗余碼進行前端糾錯FEC解碼,得到恢復(fù)出的源碼。
8.如權(quán)利要求7所述的解碼器,其特征在于,所述接收模塊,還用于在所述解碼模塊恢復(fù)出的源碼不是完整的源碼,且重復(fù)廣播沒有結(jié)束時,繼續(xù)接收所述發(fā)送端重復(fù)廣播的編碼符號,直到所述解碼模塊恢復(fù)出的源碼為完整的源碼。
9.如權(quán)利要求7所述的解碼器,其特征在于,所述接收模塊,還用于在所述解碼模塊恢復(fù)出的源碼不是完整的源碼,且重復(fù)廣播已結(jié)束時,停止接收編碼符號。
10.如權(quán)利要求7所述的解碼器,其特征在于,所述接收模塊,還用于在所述解碼模塊恢復(fù)出的源碼是完整的源碼時,停止接收編碼符號或者丟棄接收到的編碼符號。
全文摘要
本發(fā)明公開了一種解碼方法,包括接收發(fā)送端重復(fù)廣播的編碼符號,并累積多次接收到的編碼符號;對累積得到的編碼符號進行解碼。本發(fā)明還公開了一種解碼器,包括接收模塊,用于接收發(fā)送端重復(fù)廣播的編碼符號;存儲模塊,用于累積所述接收模塊多次接收到的編碼符號;解碼模塊,用于對所述存儲模塊累積得到的編碼符號進行解碼。通過使用本發(fā)明,可以提高解碼效率。
文檔編號H04W4/06GK102571263SQ20101062114
公開日2012年7月11日 申請日期2010年12月24日 優(yōu)先權(quán)日2010年12月24日
發(fā)明者封令雋, 常輝, 郭毅峰, 黃薇 申請人:中國移動通信集團公司