專利名稱:用于提供線性擦除碼的方法和裝置的制作方法
用于提供線性擦除碼的方法和裝置本發(fā)明專利申請是國際申請?zhí)枮镻CT/US2006/008486,國際申請日為2006年3月10日,進入中國國家階段的申請?zhí)枮?00680013490. 2,名稱為“用于提供線性擦除碼的方法和裝置”的發(fā)明專利申請的分案申請。35U. S. C. § 119下的優(yōu)先權(quán)要求本專利申請要求于2005年3月10日提交、且被轉(zhuǎn)讓給本發(fā)明受讓人并因此被明確援引包含于此的臨時申請No. 60/660,875的優(yōu)先權(quán)。背景領域本申請一般涉及數(shù)據(jù)網(wǎng)絡的運作,尤其涉及用于提供線性擦除碼的方法和裝置。背景在典型的無線投放系統(tǒng)中,內(nèi)容通過多播傳輸信道被投放到便攜式設備。內(nèi)容呈被編碼的編碼分組的形式,編碼是為了克服在分組通過傳輸信道被傳送時可能發(fā)生的分組丟失。發(fā)射機處的編碼器取原始數(shù)據(jù)分組并生成要被傳送到一個或多個設備的編碼分組。由于噪聲或其它降級傳輸效應,在任何特定設備處接收到的是這些編碼分組的一個子集。接收到的編碼分組被解碼以恢復原始數(shù)據(jù)分組。通常,擦除恢復碼使用的分組格式包括分組首部和包含實際的已編碼數(shù)據(jù)的分組有效載荷。常規(guī)的系統(tǒng)對所使用的每種類型的擦除碼使用一種不同的分組首部格式。不幸的是,這種方式是不靈活的,并且不能自如升級。例如,如果使用了一種新的編碼類型,則不首先用關(guān)于如何處理那些已編碼分組的專門知識來更新接收機,它就不能處理那些分組。此外,可能希望組合不同的編碼技術(shù)以解決或補償某些傳輸狀況。但是,在常規(guī)系統(tǒng)中,一般不可能組合不同的編碼方案。因此,需要的是一種提供靈活、可升級、并允許新的編碼方案或是編碼方案的組合而無需用關(guān)于所使用的編碼方案的專門知識更新接收設備的線性擦除編碼的系統(tǒng)。概要在一個或多個實施例中,提供了一種提供在通信系統(tǒng)中編碼數(shù)據(jù)用的線性擦除編碼的編碼系統(tǒng),該編碼系統(tǒng)包括方法和裝置。例如,該編碼系統(tǒng)的實施例將線性編碼方案表示成無需對正被使用的編碼方案具有專門的知識也能被接收裝置容易地解碼的通用格式。結(jié)果,該編碼系統(tǒng)允許組合各種編碼類型以解決任何傳輸狀況。在一個方面,提供了一種將一組數(shù)據(jù)值編碼成一編碼碼元的方法。該方法包括確定定義選中要被用于生成該編碼碼元的數(shù)據(jù)值的索引序列,并確定定義要與所選數(shù)據(jù)值相乘以生成該編碼碼元的因子的值序列。該方法還包括生成描述該索引序列和該值序列的分組首部。在一個方面,提供了一種用于將一組數(shù)據(jù)值編碼成一編碼碼元的裝置。該裝置包括配置成確定定義選中要被用于生成該編碼碼元的數(shù)據(jù)值的索引序列、并確定定義要與所選數(shù)據(jù)值相乘以生成該編碼碼元的因子的值序列的編碼邏輯部分。該裝置還包括配置成生成描述該索引序列和值序列的分組首部的輸出邏輯部分。
在一個方面,一種用于將一組數(shù)據(jù)值編碼成一編碼碼元的裝置。該裝置包括用于確定定義選中要被用于生成該編碼碼元的數(shù)據(jù)值的索引序列的裝置、以及用于確定定義要與所選數(shù)據(jù)值相乘以生成該編碼碼元的因子的值序列的裝置。該裝置還包括用于生成描述該索引序列和值序列的分組首部的裝置。在一個方面,提供了一種具有計算機程序的計算機可讀介質(zhì),當由至少一個處理器執(zhí)行時,該計算機程序?qū)⒁唤M數(shù)據(jù)值編碼成一編碼碼元。該計算機程序包括用于確定定義選中要被用于生成該編碼碼元的數(shù)據(jù)值的索引序列的指令、以及用于確定定義要與所選數(shù)據(jù)值相乘以生成該編碼碼元的因子的值序列的指令。該計算機程序還包括用于生成描述該索引序列和值序列的分組首部的指令。在一個方面,提供了被配置成執(zhí)行一種將一組數(shù)據(jù)值編碼成一編碼碼元的方法的至少一個處理器。該方法包括確定定義選中要被用于生成該編碼碼元的數(shù)據(jù)值的索引序列,并確定定義要與所選數(shù)據(jù)值相乘以生成該編碼碼元的因子的值序列。該方法還包括生成描述該索引序列號和值序列的分組首部。在一個方面,提供了一種將編碼分組解碼成一組數(shù)據(jù)值的方法。該方法包括從該編碼分組獲得分組首部和分組有效載荷,并從該分組首部確定索引序列和值序列。該方法還包括基于該索引序列和該值序列來解碼該分組有效載荷以生成該組數(shù)據(jù)值。在一個方面,提供了一種用于將編碼分組解碼成一組數(shù)據(jù)值的裝置。該裝置包括配置成從該編碼分組獲得分組首部和分組有效載荷的提取邏輯部分、以及配置成從該分組首部確定索引序列的索引序列邏輯部分。該裝置還包括配置成從該分組首部確定值序列的值序列邏輯部分、以及配置成基于該索引序列和該值序列解碼該分組有效載荷以生成該組數(shù)據(jù)值的解碼邏輯部分。在一個方面,提供了一種用于將編碼分組解碼成一組數(shù)據(jù)值的裝置。該裝置包括用于從編碼分組獲得分組首部和分組有效載荷的裝置、以及用于從分組首部確定索引序列和值序列的裝置。該裝置還包括用于基于該索引序列和該值序列解碼該分組有效載荷以生成該組數(shù)據(jù)值的裝置。在一個方面,提供了一種具有計算機程序的計算機可讀介質(zhì),當由至少一個處理器執(zhí)行時,該計算機程序解碼一編碼分組以生成一組數(shù)據(jù)值。該計算機程序包括用于從該編碼分組獲得分組首部和分組有效載荷的指令、以及用于從該分組首部確定索引序列和值序列的指令。該計算機程序還包括用于基于索引序列和值序列解碼該分組有效載荷以生成該組數(shù)據(jù)值的指令。在一個方面,提供了配置成執(zhí)行將一編碼分組解碼成一組數(shù)據(jù)值的方法的至少一個處理器。該方法包括從該編碼分組獲得分組首部和分組有效載荷,并從分組首部確定索引序列和值序列。該方法還包括基于該索引序列和值序列解碼該分組有效載荷以生成該組數(shù)據(jù)值。在細閱以下闡述的附圖簡要說明、描述以及權(quán)利要求書之后,這些實施例的其它方面將變得顯而易見。附圖簡要說明結(jié)合附圖參考以下具體描述,本文中所描述的這些實施例的前述各方面將變得更加顯而易見,附圖中
個實施例
個實施例
圖I不出包含一編碼系統(tǒng)的一個實施例的網(wǎng)絡;
圖2示出在一編碼系統(tǒng)的實施例中使用的編碼器的一個實施例;
圖3示出說明在一編碼系統(tǒng)的實施例中,線性編碼如何生成編碼碼元的圖示;
圖4示出在一編碼系統(tǒng)的實施例中使用的分組首部的一個實施例;
圖5示出說明在一編碼系統(tǒng)的實施例中使用的VALUE_SEQUENCE_TYPES的表的-
圖6示出說明在一編碼系統(tǒng)的實施例中使用的INDEX_SEQUENCE_TYPES的表的-
圖7示出操作在一編碼系統(tǒng)的實施例中使用的編碼器的方法的一個實施例;
圖8示出在一編碼系統(tǒng)的一個實施例中使用的解碼器的一個實施例;
圖9示出操作在一編碼系統(tǒng)的實施例中使用的解碼器的方法的一個實施例;
圖10示出在一編碼系統(tǒng)的實施例中使用的編碼器的一個實施例;以及圖11示出在一編碼系統(tǒng)的實施例中使用的解碼器的一個實施例。描述在一個或多個實施例中,提供了一種將線性編碼方案表示成無需對正被使用的編碼方案具有專門知識也能被接收裝置容易地解碼的通用格式的編碼系統(tǒng)。例如,該系統(tǒng)適合編碼要通過無線通信網(wǎng)絡傳送的數(shù)據(jù)。該系統(tǒng)特別適合在無線網(wǎng)絡環(huán)境中使用,但是也可在任何類型的網(wǎng)絡環(huán)境中使用,這些網(wǎng)絡環(huán)境包括但不限于,通信網(wǎng)絡、諸如因特網(wǎng)等公用網(wǎng)絡、諸如虛擬專用網(wǎng)絡(VPN)等專用網(wǎng)絡、局域網(wǎng)、廣域網(wǎng)、長途網(wǎng)絡、或任何其它類型的數(shù)據(jù)網(wǎng)絡。圖I示出包括一編碼系統(tǒng)的一個實施例的網(wǎng)絡100。網(wǎng)絡100包括利用數(shù)據(jù)網(wǎng)絡106與設備104通信的服務器102。在一個實施例中,服務器102使用任何類型的通信鏈路108來與網(wǎng)絡106通信。網(wǎng)絡106可以是任何類型的有線和/或無線網(wǎng)絡。網(wǎng)絡106使用任何合適類型的無線通信鏈路110來與設備104通信。服務器102向設備104發(fā)送內(nèi)容和/或服務。盡管圖中僅示出一個設備,但是該系統(tǒng)適合與任意數(shù)目或類型的設備一起使用。在一個實施例中,服務器102包括基于任意選定的網(wǎng)絡特性來選擇編碼類型的編碼選擇邏輯部分112。例如,編碼選擇邏輯部分112可監(jiān)視網(wǎng)絡106的各種傳輸或話務狀況,并基于那些狀況來選擇編碼類型。例如,網(wǎng)絡可能正因為信號衰落或其它降級效應而經(jīng)歷著有損傳輸狀況。編碼選擇邏輯部分112檢測這些傳輸狀況(或由另一實體提供此信息),并基于此信息向編碼器114提供編碼選擇參數(shù)。編碼器114接收要通過網(wǎng)絡106傳送的數(shù)據(jù),并編碼此數(shù)據(jù)以生成編碼分組。在一個實施例中,編碼器114使用一個或多個線性擦除碼來編碼此數(shù)據(jù)以使得當在網(wǎng)絡106上傳送所生成的編碼分組時,接收設備將能夠恢復丟失的編碼分組。在一個實施例中,編碼器114基于從編碼選擇邏輯部分112接收的編碼選擇參數(shù)來選擇編碼方案。在一個實施例中,編碼器114編碼數(shù)據(jù)來生成包含分組首部116和分組有效載荷118的編碼分組。分組首部116提供關(guān)于用于編碼該數(shù)據(jù)的線性擦除碼的信息。有效載荷118包括已編碼數(shù)據(jù)。對編碼器114的操作更加具體的說明在本文檔的另一節(jié)中提供。在一個或多個實施例中,編碼器114使用任何類型的線性編碼方案來編碼該數(shù)據(jù)。分組首部116被生成以用于充分描述所使用的究竟是什么編碼方案。由此,分組首部
6可傳達數(shù)據(jù)是使用Reed-Solomon編碼、LDPC編碼、LDGM編碼、重復編碼、Turbo編碼還是任何其它類型的線性編碼方案來編碼的。編碼器114還可使用上述編碼方案的任意組合或任何新類型的線性編碼方案來編碼數(shù)據(jù),并且分組首部116能夠充分描述所使用的編碼方案。這允許能基于各種網(wǎng)絡狀況來選擇編碼方案以提供靈活的編碼系統(tǒng)。此外,由于分組首部充分地描述了所使用的編碼方案,因此該系統(tǒng)是可升級的,因為無需更新接收設備以 使它們能處理接收的編碼分組也能使用新的編碼方案。這允許發(fā)送方能有效地組合不同的編碼方案或使用新的編碼方案來利用它們的特性而無需更新接收設備。在編碼分組由編碼器114生成之后,它們被如路徑120所示地通過網(wǎng)絡106傳送到設備104。當設備104接收到編碼分組時,它使用其解碼器122來解碼分組首部116以確定數(shù)據(jù)原先是如何被編碼的。解碼器122然后通過逆轉(zhuǎn)由分組首部116描述的編碼方案來解碼這些編碼分組以獲得數(shù)據(jù)。由此,設備104不需要關(guān)于所使用的編碼方案的任何專門的知識,因為分組首部116提供解碼所接收的編碼分組所需的所有信息。因此,此編碼系統(tǒng)的實施例靈活并可升級地編碼要通過網(wǎng)絡傳送的數(shù)據(jù)。應當注意,網(wǎng)絡100僅是一種實現(xiàn),并且在這些實施例的范圍內(nèi),其它實現(xiàn)也是可行的。圖2示出在一編碼系統(tǒng)的實施例中使用的編碼器200的一個實施例。例如,編碼器200適合作為圖I中示出的編碼器114使用。編碼器200包括編碼邏輯部分202、數(shù)據(jù)輸入邏輯部分240、編碼分組輸出邏輯部分206、以及編碼選擇邏輯部分208,它們?nèi)勘获詈系絻?nèi)部數(shù)據(jù)總線210。數(shù)據(jù)輸入邏輯部分204包括允許編碼器200接收要被編碼的數(shù)據(jù)的硬件邏輯部分和/或軟件。例如,在一個實施例中,數(shù)據(jù)輸入邏輯部分204通過數(shù)據(jù)信道212接收數(shù)據(jù),數(shù)據(jù)信道212包括任何合適類型的通信信道214以允許數(shù)據(jù)輸入邏輯部分204接收所要編碼的數(shù)據(jù)。在一個或多個實施例中,編碼邏輯部分202包括CPU、處理器、門陣列、硬件邏輯部分、存儲器元、虛擬機、軟件、和/或硬件與軟件的任意組合。在一個實施例中,編碼邏輯部分202使用選定的線性擦除碼來編碼接收的數(shù)據(jù)。對編碼邏輯部分202更加具體的討論在本文檔的另一節(jié)中提供。由此,編碼邏輯部分202 —般包括用于編碼數(shù)據(jù)并經(jīng)由內(nèi)部數(shù)據(jù)總線210控制編碼器200的一個或多個其它功能元的邏輯部分。編碼分組輸出邏輯部分206包括配置成輸出可供通過網(wǎng)絡傳送的編碼分組的邏輯部分。例如,一旦數(shù)據(jù)已被編碼邏輯部分202編碼,包括分組首部和分組有效載荷的編碼分組就被提供給輸出邏輯部分206。輸出邏輯部分206然后使用通信鏈路214將編碼分組輸出至傳輸邏輯部分(未不出)。編碼選擇邏輯部分208包括配置成檢測或接收諸如網(wǎng)絡性能參數(shù)等編碼選擇參數(shù)的硬件和/或軟件。這些參數(shù)被輸入到編碼邏輯部分202,編碼邏輯部分202利用它們來選擇要用來編碼數(shù)據(jù)的編碼方案。在一個或多個實施例運作期間,數(shù)據(jù)輸入邏輯部分204接收要被編碼以供傳送的數(shù)據(jù)。編碼選擇邏輯部分208接收編碼選擇參數(shù),編碼選擇參數(shù)被用來確定編碼邏輯部分202編碼數(shù)據(jù)所使用的編碼方案。編碼邏輯部分202根據(jù)所確定的編碼方案來編碼數(shù)據(jù)以生成已編碼數(shù)據(jù)以及描述編碼方案的分組首部。包括分組首部和有效載荷的已編碼分組然后由編碼分組輸出邏輯部分206輸出。
在一個實施例中,編碼系統(tǒng)包括存儲在計算機可讀介質(zhì)上的一個或多個程序指令(“program instruction”),在由例如編碼邏輯部分202等至少一個處理器執(zhí)行時,這(些)程序指令提供本文中所描述的功能。例如,程序指令可從例如軟盤、CDR0M、存儲器卡、閃存設備、RAM、ROM、或與編碼器200接口的任何其它類型的存儲器設備或計算機可讀介質(zhì)等計算機可讀介質(zhì)被加載到編碼器200中。在另一個實施例中,這些指令可從外部設備或網(wǎng)絡資源被下載到編碼器200中。當由編碼邏輯部分202執(zhí)行時,這些程序指令提供如本文中所描述的編碼系統(tǒng)的實施例。結(jié)果,此編碼系統(tǒng)的實施例接收數(shù)據(jù)并使用所選的線性擦除方案來編碼這些數(shù)據(jù)以生成可供在有損傳輸信道上傳送的編碼分組。由此,此編碼系統(tǒng)的實施例作用于提供靈活且可升級的編碼系統(tǒng),因為分組首部為接收設備描述了編碼方案。由此,接收設備能夠通過逆轉(zhuǎn)分組首部所描述的編碼方案來解碼可采用的任何方案。編碼邏輯部分操作以下是編碼邏輯部分202的一個實施例的操作的具體說明。圖3示出說明在一編碼系統(tǒng)的實施例中線性編碼如何生成編碼碼元的圖示300。所有線性編碼碼元是數(shù)據(jù)碼元的線性組合。左邊的節(jié)點代表數(shù)據(jù)碼元302,而右邊的節(jié)點是編碼碼元304。如果數(shù)據(jù)碼元302之一要被用于生成編碼碼元304,則從編碼碼元304向該數(shù)據(jù)碼元畫一條邊306。有一標記(或值)與每條邊相關(guān)聯(lián),該標記代表要與該數(shù)據(jù)碼元相乘以變成該編碼碼元的一部分的因子。例如,邊306具有標記它是乘以數(shù)據(jù)碼元(12的因子,所得結(jié)果然后被用于生成編碼碼元304。在一個或多個實施例中,任何線性編碼碼元可由兩個序列表示,即值序列(VALUE_SEQUENCE)和索引序列(INDEX_SEQUENCE)。VALUE_SEQUENCE 載明與各邊相關(guān)聯(lián)的標記(或因子)序列。INDEX_SEQUENCE載明被揀選用于生成編碼碼元的數(shù)據(jù)索引。在圖示300中,INDEX_SEQUENCE包括從I到k的整數(shù)序列。離開一編碼碼元的邊的數(shù)目稱為代碼權(quán)重(C0DE_WEIGHT)。在圖示300中,C0DE_WEIGHT等于k,因為有k條邊離開編碼碼元304。示例編碼以下是可由此編碼系統(tǒng)的實施例提供的數(shù)種編碼技術(shù)的說明。應當注意,以下的示例說明了可由此編碼系統(tǒng)的實施例提供的一些但并非全部的線性編碼。I. Reed-Solomon (RS)編石馬在一個或多個實施例中,此編碼系統(tǒng)可使用RS編碼來編碼數(shù)據(jù)。例如,編碼邏輯部分202提供如下的RS編碼。RS編碼碼元C可被寫為C = Yj^ydi
/-I其中k是用于生成編碼碼元C的數(shù)據(jù)碼元的數(shù)目,Cli是數(shù)據(jù)碼元,r是編碼參數(shù),而α是合適的伽羅瓦域(GF)的素元。本說明將假定對所關(guān)注的編碼使用GF(256)。在此實施例中,INDEX_SEQUENCE包括表示離開編碼碼元C的邊的k值。VALUE_SEQUENCE包括作為乘以與離開編碼碼元C的每條邊相關(guān)聯(lián)的數(shù)據(jù)碼元的因子的a r值。C0DE_WEIGHT等于離開編碼碼元C的邊的總數(shù)(k)。因此,編碼邏輯部分202根據(jù)上式編碼數(shù)據(jù),并生成相關(guān)聯(lián)的C0DE_WEIGHT、VALUE_SEQUENCE、和INDEX_SEQUENCE參數(shù)。這些參數(shù)然后如在本文檔另一節(jié)中描述地被納入到分組首部中。2.低密度生成矩陣編碼在一個或多個實施例中,此編碼系統(tǒng)使用低密度生成矩陣(LDGM)編碼來編碼數(shù)據(jù)。例如,LDGM編碼可用以下方式來生成。使用某個函數(shù)來揀選C0DE_WEIGHT。從全部數(shù)據(jù)碼元當中揀選合計達C0DE_WEIGHT的數(shù)目的數(shù)據(jù)碼元。實現(xiàn)此步驟的一個示例是用初始種子值(SEED)來初始化數(shù)據(jù)碼元編號生成器。該數(shù)據(jù)碼元編號生成器然后被調(diào)用C0DE_WEIGHT次以生成用于標識這些數(shù)據(jù)碼元的編號。然后使用異或(XOR)運算來組合這些數(shù)據(jù)碼元。作為線性運算,XOR與伽羅瓦域GF(256)中的加法是相同的,并且乘法因子是I。因此,作為該編碼系統(tǒng)操作的結(jié)果,生成了用于提供其中所有邊的乘法因子均為常數(shù)(I)的LDGM編碼的VALUE_SEQUENCE。INDEX_SEQUENCE由數(shù)據(jù)碼元編號生成器的操作生成,其中每一索引是基于數(shù)據(jù)碼元編碼生成器的一特定輸出,并且與一特定邊相關(guān)聯(lián)。在一個實施例中,編碼邏輯部分202根據(jù)以上說明來編碼數(shù)據(jù),并生成相關(guān)聯(lián)的CODE_WEIGHT、VALUE_SEQUENCE、和INDEX_SEQUENCE參數(shù)。這些參數(shù)然后如在本文檔的另一節(jié)中描述地被納入到分組首部中。3.重復編碼示例在一個或多個實施例中,此編碼系統(tǒng)可使用其中將數(shù)據(jù)碼元以循環(huán)方式重復的重復編碼來編碼數(shù)據(jù)。在此情形中,所有編碼碼元的C0DE_WEIGHT是I。VALUE_SEQUENCE是常數(shù)(1),并且INDEX_SEQUENCE僅有一個條目,那就是該數(shù)據(jù)碼元的索引。在一個實施例中,編碼邏輯部分202根據(jù)以上說明來編碼數(shù)據(jù),并生成相關(guān)聯(lián)的CODE_WEIGHT、VALUE_SEQUENCE、和INDEX_SEQUENCE參數(shù)。這些參數(shù)然后如在本文檔的另一節(jié)中描述地被納入到分組首部中。由此,此編碼系統(tǒng)可生成 CODE_WEIGHT、VALUE_SEQUENCE、和 INDEX_SEQUENCE 參數(shù)以提供基本上任何類型的線性編碼。應當注意,此編碼系統(tǒng)并不被限定于上述編碼方案,并且還可實現(xiàn)其它編碼方案以及組合一種或多種編碼方案來線性地編碼數(shù)據(jù)。在此情形中,編碼邏輯部分202生成相應的CODE_WEIGHT、VALUE_SEQUENCE、和INDEX_SEQUENCE參數(shù),這些參數(shù)隨后被包括到分組首部中。分組首部牛成在一個或多個實施例中,此編碼系統(tǒng)生成描述一組數(shù)據(jù)碼元如何被線性編碼以生成一編碼碼元的分組首部。例如,編碼邏輯部分202根據(jù)任何線性編碼方案來編碼數(shù)據(jù),并如以下所描述地生成相應的分組首部。所生成的分組首部隨后可被附連于編碼碼元(有效載荷)以形成將通過無線傳輸信道傳送的編碼分組。任何接收設備然后可解碼該分組首部以確定編碼過程并反轉(zhuǎn)該過程以從已編碼碼元恢復數(shù)據(jù)。圖4示出在一編碼系統(tǒng)的實施例中使用的分組首部400的一個實施例。例如,在一個實施例中,分組首部400是由編碼邏輯部分202的操作生成的。分組首部400包括含字段名稱402和相關(guān)聯(lián)的字段類型404的表。在一個實施例中,字段名稱402 包括 C0DE_WEIGHT 406、VALUE_SEQUENCE_TYPE408、INDEX_SEQUENCE_TYPE410, VALUE_SEQUENCE_INFO 412、和 INDEX_SEQUENCE_INFO414參數(shù)。字段類型404包括選中的與特定字段名稱404相關(guān)聯(lián)的大小的參數(shù)。各個字段名稱的更加具體的說明在以下提供。圖5示出說明在一編碼系統(tǒng)的實施例中使用的VALUE_SEQUENCE_TYPE的表500的一個實施例。例如,表500中示出的參數(shù)可被用于圖4中所示的VALUE_SEQUENCE_TYPE 408。此外,表500中示出VALUE_SEQUENCE_TYPE的中的每一個與選中的VALUE_SEQUENCE_INFO412參數(shù)相關(guān)聯(lián)。 表500包括名稱字段502和相關(guān)聯(lián)的值字段504。名稱字段502包括不同VALUE_SEQUENCE_TYPE的名稱,并且其每一個與值字段504中一特定值相關(guān)聯(lián)。以下是不同的VALUE_SEQUENCE_TYPE 和相關(guān)聯(lián)的 VALUE_SEQUENCE_INFO 412 參數(shù)的描述。VALUE_CONSTANT如果VALUE_SEQUENCE_TYPE 字段 408 被設為 VALUE_CONSTANT (即,I),則 VALUE_SEQUENCE_INF0字段412被設為所要使用的常數(shù)值。例如,如果所有邊值被設為要被設成1,則 VALUE_SEQUENCE_INFO 字段被設為值 I。VALUE_RS_LIKE如果VALUE_SEQUENCE_TYPE 字段 408 被設為 VALUE_RS_LIKE (即,2 ),則 VALUE_SEQUENCE_INF0字段412被設為“r”以使得a r e GF (256)成為Reed-Solomon碼字的生成
J Li οVALUE_RAND0M如果VALUE_SEQUENCE_TYPE 字段 408 被設為 VALUE_RAND0M (即,3),則 VALUE_SEQUENCE_INF0字段412被設為用于初始化生成序列值的隨機數(shù)生成器的種子值。假定了接收設備所使用的隨機數(shù)生成器與編碼邏輯部分202所使用的隨機數(shù)生成器是相同的。圖6示出說明一編碼系統(tǒng)的實施例中使用的INDEX_SEQUENCE_TYPE的表600的一個實施例。例如,表600中所示的參數(shù)可被用于圖4中所示的INDEX_SEQUENCE_TYPE 410。此外,表600中所示的INDEX_SEQUENCE_TYPE中的每一個與選定的INDEX_SEQUENCE_INFO414參數(shù)相關(guān)聯(lián)。表600包括名稱字段602和相關(guān)聯(lián)的值字段604。名稱字段602包括不同INDEX_SEQUENCE_TYPE的名稱,并且其每一個與值字段604中一特定值相關(guān)聯(lián)。以下是不同的INDEX_SEQUENCE_TYPE 和相關(guān)聯(lián)的 INDEX_SEQUENCE_INFO 414 參數(shù)的說明。INDEX_LINEAR如果INDEX_SEQUENCE_TYPE 410 被設為 INDEX_LINEAR (即,1),則 INDEX_SEQUENCE_INF0字段414包括以下參數(shù)之一。a. INDEX_INITIALINDEX_INITIAL參數(shù)是用于生成編碼分組的第一數(shù)據(jù)分組的索引。b. INDEX_STEPINDEX_STEP參數(shù)是用于生成編碼分組的索引步長。用于生成編碼分組的這組索引可被表達如下(INDEX_INITIAL+i*INDEX_STEP)modulo(k),i = 0,1,· · ·,C0DE_WEIGHT-1INDEX_MAPPED如果INDEX_SEQUENCE_TYPE 字段 410 被設為 INDEX_MAPPED(即,2),則每一條邊具有唯一性的邊索引,并且邊索引被映射到數(shù)據(jù)分組索引。INDEX_SEQUENCE_INFO字段414包括 INITIAL_EDGE_INDEX 參數(shù)。INITIAL_EDGE_INDEX參數(shù)是編碼分組的第一條邊的索引。邊索引如下計算。(INITIAL_EDGE_INDEX+i), i = 0,I, ···,C0DE_WEIGHT_1并且數(shù)據(jù)索引是邊索引的某個函數(shù)(映射)。假定了接收設備與編碼邏輯部分202使用相同的映射函數(shù)。INDEX_LDGM如果INDEX_SEQUENCE_TYPE 字段 410 被設為 INDEX_LDGM (即,3),貝丨J INDEX_SEQUENCE_INF0 字段 414 包括 INITIAL_SEED 參數(shù)。INITIAL_SEED參數(shù)是用于初始化數(shù)據(jù)碼元編號生成器以生成索引序列的值。假定了接收設備所使用的數(shù)據(jù)碼元編號生成器與編碼邏輯部分202所使用的是相同的。由此,此編碼系統(tǒng)的實施例使用實際上任何的線性編碼來編碼數(shù)據(jù),并生成描述原本使用的線性編碼的分組首部。圖7示出操作在一編碼系統(tǒng)的實施例中使用的編碼器的方法700的一個實施例。為清楚起見,參考圖2中所示的編碼器200來描述方法700。例如,在一個實施例中,編碼邏輯部分202執(zhí)行機器可讀指令以執(zhí)行以下所描述的功能。在框702,確定編碼權(quán)重值。例如,編碼邏輯部分202確定能提供所選類型的用來編碼數(shù)據(jù)的線性編碼的編碼權(quán)重值。例如,該編碼權(quán)重值描述有多少邊結(jié)構(gòu)從一編碼碼元引出。在框704,確定索引序列。在一個實施例中,編碼邏輯部分202確定描述要使用什么數(shù)據(jù)值來生成編碼碼元的索引序列。例如,索引序列值的總數(shù)等于編碼權(quán)重值。在一個實施例中,索引序列如上所述地由索引序列類型(410)和索引序列信息(414)描述。在框706,確定值序列。在一個實施例中,編碼邏輯部分202確定描述將與數(shù)據(jù)值相乘以生成編碼碼元的因子的值序列。例如,值序列值的總數(shù)等于編碼權(quán)重值。在一個實施例中,值序列如上所述地由值序列類型(408)和值序列信息(412)參數(shù)描述。在框708,數(shù)據(jù)根據(jù)所選編碼方案被編碼。例如,編碼邏輯部分202編碼數(shù)據(jù)并生成描述數(shù)據(jù)原本是如何被編碼的分組首部。例如,分組首部如圖4中所示。在框710,組裝出包含分組首部和有效載荷的編碼分組。例如,編碼分組輸出邏輯部分206生成由分組首部和作為有效載荷的已編碼數(shù)據(jù)構(gòu)成的編碼分組。在框712,編碼分組被傳送至一個或多個接收設備。例如,編碼分組輸出邏輯部分206將編碼分組輸出至傳輸邏輯部分,傳輸邏輯部分通過無線網(wǎng)絡將編碼分組傳送至一個或多個設備。在框714,執(zhí)行測試以確定是否需要對編碼方案執(zhí)行任何調(diào)整。在一個實施例中,編碼選擇邏輯部分208基于諸如網(wǎng)絡傳輸或話務特性等一個或多個網(wǎng)絡特性來確定編碼方案。編碼選擇邏輯部分208然后將編碼選擇參數(shù)提供給編碼邏輯部分202,編碼邏輯部分202定義要用來編碼這些數(shù)據(jù)的特定編碼方案。編碼選擇參數(shù)可以是任何格式,并且可使用任何類型的編碼標識符來載明編碼方案。如果對當前編碼方案沒有任何調(diào)整,則此方法前進至框708以繼續(xù)編碼數(shù)據(jù)以供傳送。如果對編碼方案有調(diào)整,則此方法前進至框702,在此確定新的編碼因子以使得數(shù)據(jù)的編碼能被調(diào)整以適應所選的網(wǎng)絡特性。
由此,方法700提供一編碼系統(tǒng)的一個實施例。應當注意,方法700僅代表了一種實現(xiàn),并且在這些實施例的范圍內(nèi)其它實現(xiàn)也是可行的。圖8示出適合在一編碼系統(tǒng)的實施例中的接收設備中使用的解碼器800的一個實施例。例如,解碼器800適合作為圖I中所示的解碼器122來使用。解碼器800包括解碼邏輯部分802、編碼權(quán)重提取邏輯部分804、值序列邏輯部分806、索引序列邏輯部分808、以及數(shù)據(jù)輸出邏輯部分810,所有這些皆耦合至數(shù)據(jù)總線812。編碼權(quán)重提取邏輯部分804由硬件和/或軟件的任意組合構(gòu)成,并且接收編碼分組814并從分組首部提取編碼權(quán)重值。例如,在一個實施例中,分組首部被格式化為圖4中所示的分組首部400,并且編碼權(quán)重值是編碼權(quán)重值406。值序列邏輯部分806由硬件和/或軟件的任意組合構(gòu)成,并從編碼分組814中所包括的分組首部生成值序列。例如,在一個實施例中,分組首部被格式化為圖4中所示的分組首部400,并且值序列是從如上所述的值序列類型408和值序列信息412推導出的。索引序列邏輯部分808由硬件和/或軟件的任意組合構(gòu)成,并從編碼分組814中所包括的分組首部生成索引序列。例如,在一個實施例中,分組首部被格式化為圖4中所示的分組首部400,并且索引序列是從如上所述的索引序列類型410和索引序列信息414中推導出的。解碼邏輯部分802由硬件和/或軟件的任意組合構(gòu)成,并從編碼分組814接收有效載荷。解碼邏輯部分802還分別從編碼權(quán)重提取邏輯部分804、值序列邏輯部分806、和索引序列邏輯部分808接收編碼權(quán)重、值序列、和索引序列中的一個或多個。在一個實施例中,解碼邏輯部分802通過逆轉(zhuǎn)用于編碼數(shù)據(jù)的編碼方案來從有效載荷解碼數(shù)據(jù)。例如,編碼權(quán)重、值序列、和索引序列描述數(shù)據(jù)原本是如何被線性編碼的,并且解碼邏輯部分802逆轉(zhuǎn)所描述的編碼方案來生成初始數(shù)據(jù)。解碼邏輯部分802還可使用任何合適的技術(shù)來恢復任何丟失的編碼分組。數(shù)據(jù)輸出邏輯部分810由硬件和/或軟件的任意組合構(gòu)成,并從解碼器邏輯部分802接收已解碼數(shù)據(jù),并使用通信鏈路816將此數(shù)據(jù)輸出至接收設備處的其它邏輯部分。 在一個實施例中,此編碼系統(tǒng)包括存儲在計算機可讀介質(zhì)上的一個或多個程序指令(“program instruction”),在由例如解碼邏輯部分802等至少一個處理器執(zhí)行時,這(些)程序指令提供本文中所描述的功能。例如,這些程序指令可從諸如軟盤、CDRAM、存儲器卡、閃存設備、RAM、ROM、或是與解碼器800接口的任何其它類型的存儲器設備或計算機可讀介質(zhì)等計算機可讀介質(zhì)被加載到解碼器800中。在另一個實施例中,這些指令可從外部設備或網(wǎng)絡資源被下載到解碼器800中。在由解碼邏輯部分802執(zhí)行時,這些程序指令提供本文中所描述的編碼系統(tǒng)的實施例。結(jié)果,此編碼系統(tǒng)的實施例接收數(shù)據(jù)并使用選中的線性擦除方案來編碼這些數(shù)據(jù)以生成可供通過有損傳輸信道傳送的編碼分組。當在接收設備處被接收到時,來自分組首部的信息被提取以供解碼此數(shù)據(jù)時使用。由此,此編碼系統(tǒng)的實施例提供靈活和可升級的編碼系統(tǒng),因為分組首部為接收設備描述了編碼方案。由此,接收設備能夠通過逆轉(zhuǎn)分組首部所描述的編碼方案來解碼任何可被采用的方案。圖9示出操作一編碼系統(tǒng)的實施例中的解碼器的方法900的一個實施例。為清楚起見,在本文中參考圖8中所示的解碼器800來描述方法900。例如,在一個實施例中,解碼邏輯部分802執(zhí)行機器可讀指令以執(zhí)行以下所描述的指令。在框902,在接收設備處接收編碼分組。例如,編碼分組可通過無線傳輸信道被接收。在一個實施例中,編碼分組包括分組首部和分組有效載荷。 在框904,從分組首部提取信息。例如,在一個實施例中,編碼權(quán)重提取邏輯部分804從分組首部提取編碼權(quán)重參數(shù)。值序列邏輯部分806從分組首部提取值序列類型(408 )和值序列信息(410)。索引序列邏輯部分808從分組首部提取索引序列類型(412)和索引序列信息(414)參數(shù)。在框906,確定索引序列。例如,在一個實施例中,索引序列邏輯部分808處理索引序列類型(412)和索引序列信息(414)以確定索引序列。在框908,確定值序列。例如,在一個實施例中,值序列邏輯部分806處理值序列類型(408)和值序列信息(410)以確定值序列。在框910,編碼分組有效載荷中的已編碼碼元被解碼。例如,在一個實施例中,解碼邏輯部分802通過逆轉(zhuǎn)原本用來編碼原始數(shù)據(jù)的編碼過程來利用索引序列和值序列來解碼有效載荷。結(jié)果,從編碼分組有效載荷解碼出原始數(shù)據(jù)。在一個實施例中,解碼邏輯部分802還使用任何合適的技術(shù)來恢復丟失的編碼分組。此方法然后前進至框902以接收更多的編碼分組。由此,方法900提供一編碼系統(tǒng)的一個實施例。應當注意,方法900僅僅代表了一種實現(xiàn),并且在這些實施例的范圍內(nèi)其它實現(xiàn)也是可行的。圖10示出在一編碼系統(tǒng)的實施例中使用的編碼器1000的一個實施例。例如,編碼器1000適合作為圖I中所示的編碼器114來使用。編碼器1000包括用于接收數(shù)據(jù)的裝置1002、用于確定編碼權(quán)重的裝置1004、用于確定索引序列的裝置1006、用于確定值序列的裝置1008、用于生成分組首部的裝置1010、用于將分組首部和有效載荷作為編碼分組發(fā)送的裝置1012。在一個或多個實施例中,裝置1002到1012包括配置成提供本文中所描述的編碼系統(tǒng)的實施例的至少一個處理器。圖11示出在一編碼系統(tǒng)的實施例中使用的解碼器1100的一個實施例。例如,解碼器1100適合作為圖I中所示的編碼器122來使用。解碼器1100包括用于接收編碼分組的裝置1102、用于獲得分組首部和有效載荷的裝置1104、用于確定編碼權(quán)重的裝置1106、用于確定索引序列的裝置1108、用于確定值序列的裝置1110、以及用于解碼有效載荷的裝置1112。在一個或多個實施例中,裝置1102到1112包括配置成提供本文中所描述的編碼系統(tǒng)的實施例的至少一個處理器。結(jié)合本文中所公開的實施例描述的各種示例性邏輯部分、邏輯部分塊、模塊、及電路可用通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯部分器件、分立門或晶體管邏輯部分、分立硬件組件、或其設計成執(zhí)行本文中所描述的功能的任意組合來實現(xiàn)或執(zhí)行。通用處理器可以是微處理器,但是替換地,該處理器可以是任何常規(guī)處理器、控制器、微控制器、或狀態(tài)機。處理器還可被實現(xiàn)為計算設備的組合,例如,DSP與微處理器的組合、多個微處理器、與DSP核心協(xié)作的一個或多個微處理器、或任何其它此類配置。結(jié)合本文中所公開的實施例描述的方法或算法的步驟可直接在硬件中、在由處理器執(zhí)行的軟件模塊中、或在這兩者的組合中實施。軟件模塊可駐留在RAM存儲器、閃存、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可移動盤、CD-ROM、或本領域中已知的任何其它形式的存儲介質(zhì)中。示例性存儲介質(zhì)被耦合到處理器,從而處理器可從該存儲介質(zhì)讀取信息以及向該存儲介質(zhì)寫入信息。替換地,存儲介質(zhì)可被集成于處理器。處理器和存儲介質(zhì)可駐留在ASIC中。ASIC可駐留在用戶終端中。替換地,處理器和存儲介質(zhì)可作為分立組件駐留在用戶終端中。提供對所公開的實施例的說明是為了使本領域任何技術(shù)人員皆能制作或使用本發(fā)明。對這些實施例的各種修改對于本領域技術(shù)人員而言將是顯而易見的,并且本文中所定義的一般性原理可被應用于其它實施例,例如可被應用在即時消息通信服務或任何一般無線數(shù)據(jù)通信應用中,而不會脫離本發(fā)明的精神或范圍。由此,本發(fā)明并不意在被限定于本文中所示出的這些實施例,而是應當與符合本文中所公開的原理和新穎特性的最廣義的范圍一致。本文中專門使用術(shù)語“示例性的”來表示“起到示例、實例或例示的作用”。本文中描述為“示例性的”任何實施例并非必須被解釋為優(yōu)于或勝過其它實施例。由此,盡管本文中示出并描述了一編碼系統(tǒng)的實施例,但是可以認識到,可對這些實施例進行各種改變而不會脫離其精神或本質(zhì)特征。因此,這里的公開和說明旨在說明而非限定本發(fā)明的范圍,本發(fā)明的范圍在所附權(quán)利要求書中闡述。
權(quán)利要求
1.一種用于將編碼分組解碼成一組數(shù)據(jù)值的方法,所述方法包括從所述編碼分組獲得分組首部和分組有效載荷;從所述分組首部提取編碼權(quán)重參數(shù)、值序列參數(shù)或索引序列參數(shù)中的一個或多個;從所述分組首部確定索引序列;以及基于所述索引序列解碼所述分組有效載荷以產(chǎn)生所述一組數(shù)據(jù)值。
2.如權(quán)利要求I所述的方法,其特征在于,所述索引序列包括所述索引序列參數(shù)且所述一組數(shù)據(jù)值僅包括一個數(shù)據(jù)值。
3.如權(quán)利要求I所述的方法,其特征在于,還包括處理所述編碼權(quán)重參數(shù)、所述值序列參數(shù)以及所述索引序列參數(shù)中的一個或多個以確定所述索引序列和值序列。
4.如權(quán)利要求I所述的方法,其特征在于,所述解碼包括逆轉(zhuǎn)由所述索引序列和所述值序列描述的線性編碼方案以解碼所述有效載荷來產(chǎn)生所述一組數(shù)據(jù)值。
5.一種用于將編碼分組解碼成一組數(shù)據(jù)值的裝置,所述裝置包括提取邏輯,配置成從所述編碼分組獲得分組首部和分組有效載荷;配置成從所述分組首部提取編碼權(quán)重參數(shù)、值序列參數(shù)或索引序列參數(shù)中的一個或多個的邏輯,其中所述索引序列參數(shù)包括對應于從中生成所述分組有效載荷的所述一組數(shù)據(jù)值的一組索引;索引序列邏輯,配置成從所述分組首部確定索引序列,其中所述索引序列包括所述索引序列參數(shù);以及解碼邏輯,配置成基于所述索引序列解碼所述分組有效載荷以產(chǎn)生所述一組數(shù)據(jù)值。
6.如權(quán)利要求5所述的裝置,其特征在于,所述一組數(shù)據(jù)值僅包括一個數(shù)據(jù)值且所述一組索引僅包括一個索引。
7.如權(quán)利要求6所述的裝置,其特征在于,還包括配置成處理所述編碼權(quán)重參數(shù)、所述值序列參數(shù)以及所述索引序列參數(shù)中的一個或多個以確定所述索引序列和值序列的邏輯。
8.如權(quán)利要求5所述的裝置,其特征在于,所述解碼邏輯配置成逆轉(zhuǎn)由所述索引序列和所述值序列描述的線性編碼方案以解碼所述有效載荷來產(chǎn)生所述一組數(shù)據(jù)值。
9.一種用于將編碼分組解碼成一組數(shù)據(jù)值的設備,所述設備包括用于從所述編碼分組獲得分組首部和分組有效載荷的裝置;用于從所述分組首部提取編碼權(quán)重參數(shù)、值序列參數(shù)或索引序列參數(shù)中的一個或多個的裝置,其中所述索引序列參數(shù)包括對應于從中生成所述分組有效載荷的至少一個數(shù)據(jù)值的至少一個索引;用于從所述分組首部確定索引序列的裝置;以及用于基于所述索引序列解碼所述分組有效載荷以產(chǎn)生所述一組數(shù)據(jù)值的裝。
10.如權(quán)利要求9所述的設備,其特征在于,所述索引序列包括所述索引序列參數(shù)。
11.如權(quán)利要求10所述的設備,其特征在于,還包括用于處理所述編碼權(quán)重參數(shù)、所述值序列參數(shù)以及所述索引序列參數(shù)中的一個或多個以確定所述索引序列和值序列的裝置。
12.如權(quán)利要求9所述的設備,其特征在于,所述用于解碼的裝置包括用于逆轉(zhuǎn)由所述索引序列和所述值序列描述的線性編碼方案以解碼所述有效載荷來產(chǎn)生所述至少一個數(shù)據(jù)值的裝置。
13.一種具有計算機程序的計算機可讀介質(zhì),當所述計算機程序由至少一個處理器執(zhí)行時,用于解碼編碼分組,所述計算機程序包括用于從所述編碼分組獲得分組首部和分組有效載荷的指令;用于從所述分組首部確定用于編碼所述分組有效載荷的編碼方案的指令;用于從所述分組首部確定至少一個索引值的指令,其中所述至少一個索引值對應于從中生成所述分組有效載荷的至少一個數(shù)據(jù)值;以及用于基于所述編碼方案和所述至少一個索引值解碼所述分組有效載荷以產(chǎn)生所述至少一個數(shù)據(jù)值的指令。
14.如權(quán)利要求13所述的計算機程序,其特征在于,還包括用于從所述分組首部提取編碼權(quán)重參數(shù)、值序列參數(shù)、以及索引序列參數(shù)中的一個或多個的指令。
15.如權(quán)利要求14所述的計算機程序,其特征在于,還包括用于處理所述編碼權(quán)重參數(shù)、所述值序列參數(shù)以及所述索引序列參數(shù)中的一個或多個以確定所述索引序列和值序列的指令。
16.如權(quán)利要求15所述的計算機程序,其特征在于,所述用于解碼的指令包括用于逆轉(zhuǎn)由所述索引序列和所述值序列描述的線性編碼方案以解碼所述有效載荷來產(chǎn)生所述至少一個數(shù)據(jù)值的指令。
17.至少一個處理器,配置成執(zhí)行一種用于將編碼分組解碼解碼成一組數(shù)據(jù)值的方法,所述方法包括從所述編碼分組獲得分組首部和分組有效載荷;從所述分組首部確定用于編碼所述分組有效載荷的編碼方案;以及基于所確定的編碼方案解碼所述分組有效載荷以產(chǎn)生所述一組數(shù)據(jù)值。
18.如權(quán)利要求37所述的方法,其特征在于,還包括從所述分組首部提取編碼權(quán)重參數(shù)、值序列參數(shù)、以及索引序列參數(shù)中的一個或多個。
19.如權(quán)利要求38所述的方法,其特征在于,還包括處理所述編碼權(quán)重參數(shù)、所述值序列參數(shù)以及所述索引序列參數(shù)中的一個或多個以確定所述索引序列和值序列。
20.如權(quán)利要求37所述的方法,其特征在于,所述一組數(shù)據(jù)值僅包括一個數(shù)據(jù)值。
全文摘要
用于提供線性擦除碼的方法和裝置。在一個方面,提供了一種用于將一組數(shù)據(jù)值編碼成一編碼碼元的方法。該方法包括確定定義選中要被用于生成該編碼碼元的數(shù)據(jù)值的索引序列,并確定定義要與所選數(shù)據(jù)值相乘以生成該編碼碼元的因子的值序列。該方法還包括生成描述該索引序列和該值序列的分組首部。
文檔編號H04L1/00GK102938682SQ20121032219
公開日2013年2月20日 申請日期2006年3月10日 優(yōu)先權(quán)日2005年3月10日
發(fā)明者T·M·納加拉, B·科林斯 申請人:高通股份有限公司