本公開(kāi)涉及解碼技術(shù)領(lǐng)域,具體地,涉及一種數(shù)據(jù)處理方法、裝置和解碼器。
背景技術(shù):
準(zhǔn)循環(huán)低密度奇偶校驗(yàn)碼(Quasi-cyclic Low-density Parity-check,簡(jiǎn)稱:QC-LDPC碼)已經(jīng)被業(yè)界廣泛驗(yàn)證具有與隨機(jī)構(gòu)造的LDPC碼一樣優(yōu)異的誤碼性能。針對(duì)一些QC-LDPC碼應(yīng)用領(lǐng)域解碼處理速度較慢的特點(diǎn),QC-LDPC碼常用的編碼方案之一是一種經(jīng)典的分層架構(gòu),基于該架構(gòu)的解碼器復(fù)雜度低,但是帶寬小,時(shí)延相對(duì)來(lái)說(shuō)比較長(zhǎng),導(dǎo)致吞吐量比較低。
技術(shù)實(shí)現(xiàn)要素:
本公開(kāi)提供一種數(shù)據(jù)處理方法、裝置和解碼器,用于解決QC-LDPC碼解碼器帶寬小導(dǎo)致的吞吐量比較低的問(wèn)題。
根據(jù)本公開(kāi)實(shí)施例的第一方面,提供一種數(shù)據(jù)處理方法,所述方法包括:
獲取待解碼數(shù)據(jù);
將所述待解碼數(shù)據(jù)分成n個(gè)數(shù)據(jù)塊,其中n是根據(jù)解碼器的帶寬確定的,n為大于或者等于2的自然數(shù);
根據(jù)第一校驗(yàn)矩陣同時(shí)對(duì)所述n個(gè)數(shù)據(jù)塊進(jìn)行解碼,其中,所述第一校驗(yàn)矩陣是根據(jù)n的值對(duì)原始校驗(yàn)矩陣進(jìn)行行列變換后得到的矩陣,所述第一校驗(yàn)矩陣中包含n個(gè)循環(huán)置換矩陣,且所述原始校驗(yàn)矩陣中的非零子矩陣按照預(yù)設(shè)的分布標(biāo)準(zhǔn)分布在所述n個(gè)循環(huán)置換矩陣。
可選的,所述解碼器包括n個(gè)變量節(jié)點(diǎn)單元VNU和第一校驗(yàn)節(jié)點(diǎn)單元CNU,所述根據(jù)第一校驗(yàn)矩陣同時(shí)對(duì)所述n個(gè)數(shù)據(jù)塊進(jìn)行解碼,包括:
根據(jù)所述第一校驗(yàn)矩陣以及所述n個(gè)數(shù)據(jù)塊,獲取所述n個(gè)數(shù)據(jù)塊對(duì)應(yīng)的n個(gè)第一處理結(jié)果;
將所述n個(gè)第一處理結(jié)果分別輸入到所述n個(gè)VNU;
獲取與所述n個(gè)VNU對(duì)應(yīng)的n個(gè)C2V信息并分別輸入所述n個(gè)VNU,所述C2V信息為CNU傳遞給VNU的軟信息;
利用所述n個(gè)VNU根據(jù)所述n個(gè)第一處理結(jié)果和所述n個(gè)C2V信息獲取n個(gè)第二處理結(jié)果,所述n個(gè)第二處理結(jié)果包括所述n個(gè)VNU輸出的n個(gè)V2C信息和對(duì)應(yīng)的n個(gè)判決結(jié)果,所述V2C信息為VNU傳遞給CNU的軟信息;
將所述n個(gè)第二處理結(jié)果輸入到所述第一CNU中,利用所述第一CNU根據(jù)所述n個(gè)判決結(jié)果是否滿足預(yù)設(shè)的校驗(yàn)條件;當(dāng)滿足所述校驗(yàn)條件時(shí)確定所述n個(gè)數(shù)據(jù)塊的解碼完成;當(dāng)不滿足所述校驗(yàn)條件時(shí)獲取所述n個(gè)V2C信息的最小值;
根據(jù)所述n個(gè)V2C信息獲取用于下一解碼周期的與所述n個(gè)VNU對(duì)應(yīng)的n個(gè)C2V信息,并再次執(zhí)行所述根據(jù)所述第一校驗(yàn)矩陣以及所述n個(gè)數(shù)據(jù)塊,獲取所述n個(gè)數(shù)據(jù)塊對(duì)應(yīng)的n個(gè)第一處理結(jié)果至所述根據(jù)所述n個(gè)V2C信息的獲取用于下一解碼周期的與所述n個(gè)VNU對(duì)應(yīng)的n個(gè)C2V信息的步驟。
可選的,每個(gè)C2V信息中包括第一C2V信息和第二C2V信息,所述利用所述n個(gè)VNU根據(jù)所述n個(gè)第一處理結(jié)果和所述n個(gè)C2V信息獲取n個(gè)第二處理結(jié)果,包括:
在每個(gè)VNU中,將輸入的第一處理結(jié)果減去所述第一C2V信息后與所述第二C2V信息相加,得到所述V2C信息;
獲取所述V2C信息的判決結(jié)果,得到包括所述V2C信息和所述判決結(jié)果的所述第二處理結(jié)果。
可選的,所述原始校驗(yàn)矩陣中的非零子矩陣按照預(yù)設(shè)的分布標(biāo)準(zhǔn)分布在所述n個(gè)循環(huán)置換矩陣,包括:
所述原始校驗(yàn)矩陣的第i行中的非零子矩陣分布在所述n個(gè)循環(huán)置換矩陣的第i行中,且任一循環(huán)置換矩陣的第i行中的所述非零子矩陣的數(shù)量與其他循環(huán)置換矩陣的第i行中的所述非零子矩陣的數(shù)量之差小于預(yù)設(shè)閾值。
根據(jù)本公開(kāi)實(shí)施例的第二方面,提供一種解碼器,其特征在于,所述解碼器包括:n個(gè)第一緩存,n+1個(gè)第二緩存,n個(gè)變量節(jié)點(diǎn)單元VNU和一個(gè)第一校驗(yàn)節(jié)點(diǎn)單元CNU;其中,n是根據(jù)解碼器的帶寬確定的,n為大于或者等于2的自然數(shù),
所述n個(gè)第一緩存,用于緩存根據(jù)第一校驗(yàn)矩陣以及待解碼數(shù)據(jù)分成的n個(gè)數(shù)據(jù)塊,獲取的所述n個(gè)數(shù)據(jù)塊對(duì)應(yīng)的n個(gè)第一處理結(jié)果,并將所述n個(gè)第一處理結(jié)果輸入所述n個(gè)VNU;所述第一校驗(yàn)矩陣是根據(jù)n的值對(duì)原始校驗(yàn)矩陣進(jìn)行行列變換后得到的矩陣,所述第一校驗(yàn)矩陣中包含n個(gè)循環(huán)置換矩陣,且所述原始校驗(yàn)矩陣中的非零子矩陣按照預(yù)設(shè)的分布標(biāo)準(zhǔn)分布在所述n個(gè)循環(huán)置換矩陣;
所述n+1個(gè)第二緩存,用于緩存與所述n個(gè)VNU對(duì)應(yīng)的n個(gè)C2V信息,并將所述n個(gè)C2V信息輸入所述n個(gè)VNU;
所述n個(gè)VNU,用于利用所述n個(gè)VNU根據(jù)所述n個(gè)第一處理結(jié)果和所述n個(gè)C2V信息獲取n個(gè)第二處理結(jié)果,所述n個(gè)第二處理結(jié)果包括所述n個(gè)VNU輸出的n個(gè)V2C信息和對(duì)應(yīng)的n個(gè)判決結(jié)果,所述V2C信息為VNU傳遞給CNU的軟信息;
所述第一CNU,用于將將所述n個(gè)第二處理結(jié)果輸入到所述第一CNU中,利用所述第一CNU根據(jù)所述n個(gè)判決結(jié)果是否滿足預(yù)設(shè)的校驗(yàn)條件;當(dāng)滿足所述校驗(yàn)條件時(shí)確定所述n個(gè)數(shù)據(jù)塊的解碼完成;當(dāng)不滿足所述校驗(yàn)條件時(shí)獲取所述n個(gè)V2C信息的最小值;
所述n+1個(gè)第二緩存,還用于緩存根據(jù)所述n個(gè)V2C信息獲取的用于下一解碼周期的與所述n個(gè)VNU對(duì)應(yīng)的n個(gè)C2V信息;
所述n個(gè)第一緩存,所述n+1個(gè)第二緩存,所述n個(gè)VNU以及所述第一CNU,還用于再次執(zhí)行所述根據(jù)所述第一校驗(yàn)矩陣以及所述n個(gè)數(shù)據(jù)塊,獲取所述n個(gè)數(shù)據(jù)塊對(duì)應(yīng)的n個(gè)第一處理結(jié)果至所述緩存根據(jù)所述n個(gè)V2C信息獲取的用于下一解碼周期的與所述n個(gè)VNU對(duì)應(yīng)的n個(gè)C2V信息的步驟。
可選的,每個(gè)C2V信息中包括第一C2V信息和第二C2V信息,所述n個(gè)VNU具體用于:
在每個(gè)VNU中,將輸入的第一處理結(jié)果減去所述第一C2V信息后與所述第二C2V信息相加,得到所述V2C信息;
獲取所述V2C信息的判決結(jié)果,得到包括所述V2C信息和所述判決結(jié)果的所述第二處理結(jié)果。
可選的,所述原始校驗(yàn)矩陣中的非零子矩陣按照預(yù)設(shè)的分布標(biāo)準(zhǔn)分布在所述n個(gè)循環(huán)置換矩陣,包括:
所述原始校驗(yàn)矩陣的第i行中的非零子矩陣分布在所述n個(gè)循環(huán)置換矩陣的第i行中,且任一循環(huán)置換矩陣的第i行中的所述非零子矩陣的數(shù)量與其他循環(huán)置換矩陣的第i行中的所述非零子矩陣的數(shù)量之差小于預(yù)設(shè)閾值。
根據(jù)本公開(kāi)實(shí)施例的第三方面,提供一種數(shù)據(jù)處理裝置,所述裝置包括:至少一個(gè)處理器,存儲(chǔ)器;
所述存儲(chǔ)器用于存儲(chǔ)至少一個(gè)程序模塊;
所述至少一個(gè)處理器通過(guò)運(yùn)行存儲(chǔ)在所述存儲(chǔ)器的所述至少一個(gè)程序模塊用于:
獲取待解碼數(shù)據(jù);
將所述待解碼數(shù)據(jù)分成n個(gè)數(shù)據(jù)塊,其中n是根據(jù)解碼器的帶寬確定的,n為大于或者等于2的自然數(shù);
根據(jù)所述第一校驗(yàn)矩陣同時(shí)對(duì)所述n個(gè)數(shù)據(jù)塊進(jìn)行解碼,其中,所述第一校驗(yàn)矩陣是根據(jù)n的值對(duì)原始校驗(yàn)矩陣進(jìn)行行列變換后得到的矩陣,所述第一校驗(yàn)矩陣中包含n個(gè)循環(huán)置換矩陣,且所述原始校驗(yàn)矩陣中的非零子矩陣按照預(yù)設(shè)的分布標(biāo)準(zhǔn)分布在所述n個(gè)循環(huán)置換矩陣。
可選的,所述解碼器包括n個(gè)變量節(jié)點(diǎn)單元VNU和第一校驗(yàn)節(jié)點(diǎn)單元CNU,所述至少一個(gè)處理器根據(jù)所述第一校驗(yàn)矩陣同時(shí)對(duì)所述n個(gè)數(shù)據(jù)塊進(jìn)行解碼具體包括:
根據(jù)所述第一校驗(yàn)矩陣以及所述n個(gè)數(shù)據(jù)塊,獲取所述n個(gè)數(shù)據(jù)塊對(duì)應(yīng)的n個(gè)第一處理結(jié)果;
將所述n個(gè)第一處理結(jié)果分別輸入到所述n個(gè)VNU;
獲取與所述n個(gè)VNU對(duì)應(yīng)的n個(gè)C2V信息并分別輸入所述n個(gè)VNU,所述C2V信息為CNU傳遞給VNU的軟信息;
利用所述n個(gè)VNU根據(jù)所述n個(gè)第一處理結(jié)果和所述n個(gè)C2V信息獲取n個(gè)第二處理結(jié)果,所述n個(gè)第二處理結(jié)果包括所述n個(gè)VNU輸出的n個(gè)V2C信息和對(duì)應(yīng)的n個(gè)判決結(jié)果,所述V2C信息為VNU傳遞給CNU的軟信息;
將所述n個(gè)第二處理結(jié)果輸入到所述第一CNU中,利用所述第一CNU根據(jù)所述n個(gè)判決結(jié)果是否滿足預(yù)設(shè)的校驗(yàn)條件;當(dāng)滿足所述校驗(yàn)條件時(shí)確定所述n個(gè)數(shù)據(jù)塊的解碼完成;當(dāng)不滿足所述校驗(yàn)條件時(shí)獲取所述n個(gè)V2C信息的最小值;
根據(jù)所述n個(gè)V2C信息獲取用于下一解碼周期的與所述n個(gè)VNU對(duì)應(yīng)的n個(gè)C2V信息,并再次執(zhí)行所述根據(jù)所述第一校驗(yàn)矩陣以及所述n個(gè)數(shù)據(jù)塊,獲取所述n個(gè)數(shù)據(jù)塊對(duì)應(yīng)的n個(gè)第一處理結(jié)果至所述根據(jù)所述n個(gè)V2C信息的獲取用于下一解碼周期的與所述n個(gè)VNU對(duì)應(yīng)的n個(gè)C2V信息的步驟。
可選的,每個(gè)C2V信息中包括第一C2V信息和第二C2V信息,所述至少一個(gè)處理器利用所述n個(gè)VNU根據(jù)所述n個(gè)第一處理結(jié)果和所述n個(gè)C2V信息獲取n個(gè)第二處理結(jié)果具體用于:
在每個(gè)VNU中,將輸入的第一處理結(jié)果減去所述第一C2V信息后與所述第二C2V信息相加,得到所述V2C信息;
獲取所述V2C信息的判決結(jié)果,得到包括所述V2C信息和所述判決結(jié)果的所述第二處理結(jié)果。
可選的,所述原始校驗(yàn)矩陣中的非零子矩陣按照預(yù)設(shè)的分布標(biāo)準(zhǔn)分布在所述n個(gè)循環(huán)置換矩陣,包括:
所述原始校驗(yàn)矩陣的第i行中的非零子矩陣分布在所述n個(gè)循環(huán)置換矩陣的第i行中,且任一循環(huán)置換矩陣的第i行中的所述非零子矩陣的數(shù)量與其他循環(huán)置換矩陣的第i行中的所述非零子矩陣的數(shù)量之差小于預(yù)設(shè)閾值。
通過(guò)上述技術(shù)方案,本公開(kāi)的實(shí)施例可以包括以下有益效果:
在獲取待解碼數(shù)據(jù)后,根據(jù)解碼器的帶寬,將該待解碼數(shù)據(jù)分成n個(gè)數(shù)據(jù)塊,并根據(jù)第一校驗(yàn)矩陣同時(shí)對(duì)該n個(gè)數(shù)據(jù)塊進(jìn)行解碼;其中,該第一校驗(yàn)矩陣是根據(jù)n的值對(duì)原始校驗(yàn)矩陣進(jìn)行行列變換后得到的矩陣,該第一校驗(yàn)矩陣中包含n個(gè)循環(huán)置換矩陣,且該原始校驗(yàn)矩陣中的非零子矩陣按照預(yù)設(shè)的分布標(biāo)準(zhǔn)分布在該n個(gè)循環(huán)置換矩陣。能夠通過(guò)將待解碼數(shù)據(jù)分成多個(gè)數(shù)據(jù)塊同時(shí)進(jìn)行解碼處理,減少完成一次迭代的時(shí)間,增加解碼器的帶寬,進(jìn)而增加解碼效率,提高吞吐量。
本公開(kāi)的其他特征和優(yōu)點(diǎn)將在隨后的具體實(shí)施方式部分予以詳細(xì)說(shuō)明。
附圖說(shuō)明
附圖是用來(lái)提供對(duì)本公開(kāi)的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與下面的具體實(shí)施方式一起用于解釋本公開(kāi),但并不構(gòu)成對(duì)本公開(kāi)的限制。在附圖中:
圖1是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)處理方法的流程圖;
圖2是圖1所示實(shí)施例示出的一種數(shù)據(jù)解碼方法的流程圖;
圖3是根據(jù)一示例性實(shí)施例示出的一種VNU的數(shù)據(jù)處理方法的流程圖;
圖4是根據(jù)一示例性實(shí)施例示出的一種解碼器的示意圖;
圖5是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)處理裝置的框圖。
具體實(shí)施方式
圖1是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)處理方法的流程圖,參見(jiàn)圖1,該數(shù)據(jù)處理方法可以包括以下步驟。
在步驟101中,獲取待解碼數(shù)據(jù)。
在步驟102中,將該待解碼數(shù)據(jù)分成n個(gè)數(shù)據(jù)塊,其中n是根據(jù)解碼器的帶寬確定的,n為大于或者等于2的自然數(shù)。
示例地,該待解碼數(shù)據(jù)可以為一個(gè)碼字,根據(jù)QC-LDPC的分層迭代解碼算法中的校驗(yàn)矩陣H可知,一個(gè)碼字的長(zhǎng)度可以為t×B,則將其分成的該n個(gè)數(shù)據(jù)塊(bank)中,每個(gè)數(shù)據(jù)塊的長(zhǎng)度就為t×B/n。其中,校驗(yàn)矩陣H是一個(gè)包括s×t個(gè)尺寸為B×B的循環(huán)矩陣的矩陣。
在步驟103中,根據(jù)第一校驗(yàn)矩陣同時(shí)對(duì)該n個(gè)數(shù)據(jù)塊進(jìn)行解碼,其中,該第一校驗(yàn)矩陣是根據(jù)n的值對(duì)原始校驗(yàn)矩陣進(jìn)行行列變換后得到的矩陣,該第一校驗(yàn)矩陣中包含n個(gè)循環(huán)置換矩陣,且該原始校驗(yàn)矩陣中的非零子矩陣按照預(yù)設(shè)的分布標(biāo)準(zhǔn)分布在該n個(gè)循環(huán)置換矩陣。
示例的,校驗(yàn)矩陣中的一行中的非零子矩陣的數(shù)量可以記為m,該m可以稱為該校驗(yàn)矩陣的行重,上述的分布標(biāo)準(zhǔn)就是要將變換后的校驗(yàn)矩陣中的n個(gè)部分(可以稱為n個(gè)CPM(Circulate Permutation Matrix,簡(jiǎn)稱:循環(huán)置換矩陣),每個(gè)CPM可以視為校驗(yàn)矩陣H的一個(gè)子矩陣中的行重均等于(或者接近)m/n,因此該原始校驗(yàn)矩陣中的非零子矩陣按照預(yù)設(shè)的分布標(biāo)準(zhǔn)分布在該n個(gè)循環(huán)置換矩陣,就可以包括:該原始校驗(yàn)矩陣的第i行中的非零子矩陣分布在該n個(gè)循環(huán)置換矩陣的第i行中,且任一循環(huán)置換矩陣的第i行中的該非零子矩陣的數(shù)量與其他循環(huán)置換矩陣的第i行中的該非零子矩陣的數(shù)量之差小于預(yù)設(shè)閾值。
示例地,該原始校驗(yàn)矩陣可以為校驗(yàn)矩陣H,該矩陣H可以表示為:
其中,時(shí),表示的是一個(gè)B×B的全零矩陣,而是0~(B-1)中間的任意一個(gè)正整數(shù)時(shí),表示的是一個(gè)B×B的循環(huán)矩陣向右循環(huán)相應(yīng)的次數(shù)得到的矩陣,此時(shí)校驗(yàn)矩陣H的尺寸為sB×tB。如果該校驗(yàn)矩陣H滿秩,則該校驗(yàn)矩陣H對(duì)應(yīng)的碼長(zhǎng)是n=t×B,碼率為(t-s)/t。
其中,上述的該循環(huán)置換矩陣(以下簡(jiǎn)稱為CPM)為解碼器的解碼單位,解碼器的帶寬可以看作是該解碼器同時(shí)能夠處理幾個(gè)CPM。其中,在每一層的解碼計(jì)算中,解碼器硬件只計(jì)算該CPM中的非零子矩陣,這是由于,校驗(yàn)矩陣H中的全零矩陣在運(yùn)算后還是全零,沒(méi)有意義。
因此,為了可以將待解碼數(shù)據(jù)分成n份同時(shí)進(jìn)行處理,就需要通過(guò)矩陣的行置換與列置換,使該校驗(yàn)矩陣H中的非零子矩陣按照步驟103中所述的分布標(biāo)準(zhǔn)分布在該n個(gè)CPM中,當(dāng)每個(gè)CPM的行重均等于(或者接近)m/n時(shí),確定校驗(yàn)矩陣H優(yōu)化完成,可以進(jìn)行后續(xù)計(jì)算。其中,每個(gè)CPM的行重接近m/n可以理解為,每個(gè)CPM的行重與其他任意CPM的行重之間的差小于某個(gè)較小的預(yù)設(shè)值。
綜上所述,本公開(kāi)所提供的數(shù)據(jù)處理方法,在獲取待解碼數(shù)據(jù)后,根據(jù)解碼器的帶寬,將該待解碼數(shù)據(jù)分成n個(gè)數(shù)據(jù)塊,并根據(jù)第一校驗(yàn)矩陣同時(shí)對(duì)該n個(gè)數(shù)據(jù)塊進(jìn)行解碼;其中,該第一校驗(yàn)矩陣是根據(jù)n的值對(duì)原始校驗(yàn)矩陣進(jìn)行行列變換后得到的矩陣,該第一校驗(yàn)矩陣中包含n個(gè)循環(huán)置換矩陣,且該原始校驗(yàn)矩陣中的非零子矩陣按照預(yù)設(shè)的分布標(biāo)準(zhǔn)分布在該n個(gè)循環(huán)置換矩陣。能夠通過(guò)將待解碼數(shù)據(jù)分成多個(gè)數(shù)據(jù)塊同時(shí)進(jìn)行解碼處理,減少完成一次迭代的時(shí)間,增加解碼器的帶寬,進(jìn)而增加解碼效率,提高吞吐量。
圖2是圖1所示實(shí)施例示出的一種數(shù)據(jù)解碼方法的流程圖,如圖2所示,根據(jù)n的值對(duì)原始校驗(yàn)矩陣進(jìn)行行列變換的方法可以包括以下步驟。
在步驟1031中,根據(jù)該第一校驗(yàn)矩陣以及該n個(gè)數(shù)據(jù)塊,獲取該n個(gè)數(shù)據(jù)塊對(duì)應(yīng)的n個(gè)第一處理結(jié)果。
示例地,當(dāng)前所用的解碼器可以包括n個(gè)第一緩存,n+1個(gè)第二緩存,n個(gè)VNU(Variable Node Unit,中文:變量節(jié)點(diǎn)單元)和一個(gè)第一CNU(Check Node Unit,中文:校驗(yàn)節(jié)點(diǎn)單元)。在將校驗(yàn)矩陣H變換為包含n個(gè)CPM的第一校驗(yàn)矩陣后,可以通過(guò)該第一校驗(yàn)矩陣對(duì)每一個(gè)數(shù)據(jù)塊的同時(shí)進(jìn)行處理,得到這n個(gè)數(shù)據(jù)塊所對(duì)應(yīng)的n個(gè)第一處理結(jié)果。該n個(gè)第一處理結(jié)果可以被存儲(chǔ)在解碼器的n個(gè)第一緩存中,其中該第一處理結(jié)果可以為對(duì)數(shù)似然比(Log Likelihood Ratio,簡(jiǎn)稱LLR)。
在步驟1032中,將該n個(gè)第一處理結(jié)果分別輸入到n個(gè)VNU中。
在步驟1033中,獲取與該n個(gè)VNU對(duì)應(yīng)的n個(gè)C2V信息并分別輸入該n個(gè)VNU,該C2V信息為CNU傳遞給VNU的軟信息。
其中,該n個(gè)C2V信息是從解碼器的第二緩存中獲取的,該第二緩存用于存儲(chǔ)解碼器的CNU在上一解碼周期中計(jì)算出的V2C信息的最小值(因此在解碼器中可以稱第二緩存為min buffer),根據(jù)該V2C信息的最小值就可以計(jì)算出用于當(dāng)前解碼周期的計(jì)算的該n個(gè)C2V信息。其中,本方法中可以定義步驟1031-步驟1036為一個(gè)解碼周期。
在步驟1034中,利用該n個(gè)VNU根據(jù)該n個(gè)第一處理結(jié)果和該n個(gè)C2V信息獲取n個(gè)第二處理結(jié)果,該n個(gè)第二處理結(jié)果包括該n個(gè)VNU輸出的n個(gè)V2C信息和對(duì)應(yīng)的n個(gè)判決結(jié)果,該V2C信息為VNU傳遞給CNU的軟信息。
在步驟1035中,將該n個(gè)第二處理結(jié)果輸入到該第一CNU中,利用該第一CNU根據(jù)該n個(gè)判決結(jié)果是否滿足預(yù)設(shè)的校驗(yàn)條件;當(dāng)滿足該校驗(yàn)條件時(shí)確定該n個(gè)數(shù)據(jù)塊的解碼完成;當(dāng)不滿足該校驗(yàn)條件時(shí)獲取該n個(gè)V2C信息的最小值。
示例的,可以將n個(gè)判決結(jié)果送到第一CNU中的校驗(yàn)樹(shù)中,通過(guò)得到的校驗(yàn)值可以反映著n個(gè)判決結(jié)果是否滿足校驗(yàn)條件,例如校驗(yàn)值是否為零。該校驗(yàn)方法僅為示例性的,包括但不限于此。
在步驟1036中,根據(jù)該n個(gè)V2C信息獲取用于下一解碼周期的與該n個(gè)VNU對(duì)應(yīng)的n個(gè)C2V信息,并再次執(zhí)行步驟1031至步驟1036。
圖3是根據(jù)一示例性實(shí)施例示出的一種VNU的數(shù)據(jù)處理方法的流程圖,如圖3所示,步驟1034所述利用該n個(gè)VNU根據(jù)該n個(gè)第一處理結(jié)果和該n個(gè)C2V信息獲取n個(gè)第二處理結(jié)果的方法包括以下步驟。
在步驟10341中,在每個(gè)VNU中,將輸入的第一處理結(jié)果減去該第一C2V信息后與該第二C2V信息相加,得到該V2C信息。
示例地,該第一C2V信息可以為C2V_old信息,該第二C2V信息可以為C2V_new信息。該C2V_old信息與該C2V_new信息被儲(chǔ)存在解碼器的第二緩存,即min buffer中,該C2V_old信息與該C2V_new信息是根據(jù)存儲(chǔ)在min buffer中的V2C信息的最小值計(jì)算出來(lái)的,該V2C信息的最小值是第一CNU在上一解碼周期中根據(jù)該VNU出入的第二處理結(jié)果中的V2C信息計(jì)算出來(lái)的。其中,值得一提的是,該C2V_old信息與該C2V_new信息可以是CNU根據(jù)存儲(chǔ)在min buffer中的V2C信息的最小值計(jì)算出來(lái)的,也可以是該min buffer計(jì)算出來(lái)的。
在傳統(tǒng)的解碼器中,通常包含兩個(gè)min buffer,分別用來(lái)儲(chǔ)存該C2V_old信息與該C2V_new信息。因此在本實(shí)施例中,由于需要n個(gè)第一緩存和VNU來(lái)同時(shí)處理n個(gè)數(shù)據(jù)塊,因此為有足夠的空間來(lái)存儲(chǔ)n個(gè)VNU計(jì)算所需的C2V_old信息與該C2V_new信息,需要相應(yīng)的增加min buffer的數(shù)量,其規(guī)律可以為:在現(xiàn)有的兩個(gè)min buffer的基礎(chǔ)上,每增加一個(gè)需要并行處理的數(shù)據(jù)塊,該min buffer的數(shù)量就增加一個(gè)minbuffer,用于存儲(chǔ)新增加的VNU所需要的一個(gè)C2V_new。以此類推,當(dāng)該待解碼數(shù)據(jù)被分為n個(gè)數(shù)據(jù)塊時(shí),就需要n+1個(gè)min buffer,相應(yīng)的CNU就需要增加到n個(gè)輸入來(lái)分別接收n個(gè)VNU發(fā)送的信息。
在步驟10342中,獲取該V2C信息的判決結(jié)果,得到包括該V2C信息和該判決結(jié)果的該第二處理結(jié)果。
該n個(gè)VNU根據(jù)該n個(gè)第一處理結(jié)果和該n個(gè)C2V信息同時(shí)進(jìn)行上述的步驟10341~10342就可以得到對(duì)應(yīng)的n個(gè)第二處理結(jié)果。由此可見(jiàn),當(dāng)n的值越大,一個(gè)碼字被分成的數(shù)據(jù)塊就越多,在并行對(duì)這些數(shù)據(jù)塊進(jìn)行解碼時(shí),所用的時(shí)間就越短,解碼器的帶塊就越高,而增加一些面積(求V2C信息最小值的邏輯每增加一個(gè)數(shù)據(jù)塊所增加一個(gè)CNU的輸入)的情況下(遠(yuǎn)沒(méi)有加倍)使得帶寬變?yōu)樵瓉?lái)的n倍。
圖4是根據(jù)一示例性實(shí)施例示出的一種解碼器的示意圖,參見(jiàn)圖4,該解碼器400包括:n個(gè)第一緩存,由于第一緩存用于存儲(chǔ)的第一處理結(jié)果為L(zhǎng)LR,因此可以將n個(gè)第一緩存分別標(biāo)記為L(zhǎng)LR0~LLRn,n+1個(gè)第二緩存(標(biāo)記為min buffer 0~n+1),n個(gè)VNU0~VNUn和一個(gè)CNU;其中,由于上述結(jié)構(gòu)可以并行處理n個(gè)數(shù)據(jù)塊,因此該解碼器的帶寬為n,n為大于或者等于2的自然數(shù),下面以n=2為例進(jìn)行說(shuō)明。
n=2時(shí),該解碼器400可以包括:2個(gè)第一緩存LLR0和LLR1,用于緩存根據(jù)第一校驗(yàn)矩陣以及待解碼數(shù)據(jù)分成的2個(gè)數(shù)據(jù)塊(bank),獲取的這2個(gè)數(shù)據(jù)塊對(duì)應(yīng)的2個(gè)第一處理結(jié)果,即根據(jù)兩個(gè)數(shù)據(jù)塊得到的2個(gè)LLR,并將這2個(gè)LLR分別輸入VNU0和VNU1。其中,該第一校驗(yàn)矩陣是根據(jù)n=2對(duì)原始校驗(yàn)矩陣進(jìn)行行列變換后得到的矩陣,該第一校驗(yàn)矩陣中包含2個(gè)循環(huán)置換矩陣,且該原始校驗(yàn)矩陣中的非零子矩陣按照前文所述的分布標(biāo)準(zhǔn)分布在這2個(gè)循環(huán)置換矩陣中,其具體的變換方法可以參照步驟103中所述的方法,不再贅述。
該解碼器400中包含3個(gè)min buffer,用于緩存與這2個(gè)VNU對(duì)應(yīng)的2個(gè)C2V信息(即用于VNU0計(jì)算的C2V_old信息與C2V_new信息和用于VNU1計(jì)算的C2V_old信息與C2V_new信息),并將這2個(gè)C2V信息分別輸入VNU0和VNU1。
該VNU0和VNU1,用于根據(jù)上述2個(gè)LLR和上述2個(gè)C2V信息獲取2個(gè)第二處理結(jié)果,這2個(gè)第二處理結(jié)果包括該VNU0和VNU1分別輸出的VNU0的V2C信息和判決結(jié)果,以及VNU1的V2C信息和判決結(jié)果。
其中,根據(jù)上述2個(gè)LLR和上述2個(gè)C2V信息獲取2個(gè)第二處理結(jié)果的方法可以參照?qǐng)D3所示的方法,不再贅述。
該CNU有兩個(gè)輸入,分別來(lái)自VNU0和VNU1,該CUN用于判斷VNU0和VNU1的判決結(jié)果是否滿足預(yù)設(shè)的校驗(yàn)條件;當(dāng)滿足該校驗(yàn)條件時(shí)確定這2個(gè)數(shù)據(jù)塊的解碼完成;當(dāng)不滿足該校驗(yàn)條件時(shí)獲取VNU0和VNU1分別輸入的V2C信息的最小值,得到VNU0的V2C信息的最小值,以及VNU1的V2C信息的最小值;
此時(shí)該3個(gè)min buffer,還用于緩存VNU0的V2C信息的最小值,以及VNU1的V2C信息的最小值,以及根據(jù)這些最小值獲取的用于下一解碼周期的與該VNU0和VNU1對(duì)應(yīng)的2個(gè)C2V信息。
此時(shí),該LLR0和LLR1,該3個(gè)min buffer,該VNU0和VNU1以及該CNU,還用于再次執(zhí)行上述步驟,直至確定這2個(gè)數(shù)據(jù)塊的解碼完成。
綜上所述,本公開(kāi)所提供的數(shù)據(jù)處理方法,在獲取待解碼數(shù)據(jù)后,根據(jù)解碼器的帶寬,將該待解碼數(shù)據(jù)分成n個(gè)數(shù)據(jù)塊,并根據(jù)第一校驗(yàn)矩陣同時(shí)對(duì)該n個(gè)數(shù)據(jù)塊進(jìn)行解碼;其中,該第一校驗(yàn)矩陣是根據(jù)n的值對(duì)原始校驗(yàn)矩陣進(jìn)行行列變換后得到的矩陣,該第一校驗(yàn)矩陣中包含n個(gè)循環(huán)置換矩陣,且該原始校驗(yàn)矩陣中的非零子矩陣按照預(yù)設(shè)的分布標(biāo)準(zhǔn)分布在該n個(gè)循環(huán)置換矩陣。能夠通過(guò)將待解碼數(shù)據(jù)分成多個(gè)數(shù)據(jù)塊同時(shí)進(jìn)行解碼處理,減少完成一次迭代的時(shí)間,增加解碼器的帶寬,進(jìn)而增加解碼效率,提高吞吐量。
圖5是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)處理裝置的框圖,該數(shù)據(jù)處理處理裝置500可以用于執(zhí)行圖1至圖3任一所述的方法。參見(jiàn)圖5,該數(shù)據(jù)處理裝置500可以包括:至少一個(gè)處理器510,存儲(chǔ)器520;
該存儲(chǔ)器520用于存儲(chǔ)至少一個(gè)程序模塊;
該至少一個(gè)處理器510通過(guò)運(yùn)行存儲(chǔ)在該存儲(chǔ)器的該至少一個(gè)程序模塊用于:
獲取待解碼數(shù)據(jù);
將該待解碼數(shù)據(jù)分成n個(gè)數(shù)據(jù)塊,其中n是根據(jù)解碼器的帶寬確定的,n為大于或者等于2的自然數(shù);
根據(jù)該第一校驗(yàn)矩陣同時(shí)對(duì)該n個(gè)數(shù)據(jù)塊進(jìn)行解碼,其中,該第一校驗(yàn)矩陣是根據(jù)n的值對(duì)原始校驗(yàn)矩陣進(jìn)行行列變換后得到的矩陣,該第一校驗(yàn)矩陣中包含n個(gè)循環(huán)置換矩陣,且該原始校驗(yàn)矩陣中的非零子矩陣按照預(yù)設(shè)的分布標(biāo)準(zhǔn)分布在該n個(gè)循環(huán)置換矩陣。
可選的,該解碼器包括n個(gè)變量節(jié)點(diǎn)單元VNU和第一校驗(yàn)節(jié)點(diǎn)單元CNU,該至少一個(gè)處理器510根據(jù)該第一校驗(yàn)矩陣同時(shí)對(duì)該n個(gè)數(shù)據(jù)塊進(jìn)行解碼具體包括:
根據(jù)該第一校驗(yàn)矩陣以及該n個(gè)數(shù)據(jù)塊,獲取該n個(gè)數(shù)據(jù)塊對(duì)應(yīng)的n個(gè)第一處理結(jié)果;
將該n個(gè)第一處理結(jié)果分別輸入到該n個(gè)VNU;
獲取與該n個(gè)VNU對(duì)應(yīng)的n個(gè)C2V信息并分別輸入該n個(gè)VNU,該C2V信息為CNU傳遞給VNU的軟信息;
利用該n個(gè)VNU根據(jù)該n個(gè)第一處理結(jié)果和該n個(gè)C2V信息獲取n個(gè)第二處理結(jié)果,該n個(gè)第二處理結(jié)果包括該n個(gè)VNU輸出的n個(gè)V2C信息和對(duì)應(yīng)的n個(gè)判決結(jié)果,該V2C信息為VNU傳遞給CNU的軟信息;
將該n個(gè)第二處理結(jié)果輸入到該第一CNU中,利用該第一CNU根據(jù)該n個(gè)判決結(jié)果是否滿足預(yù)設(shè)的校驗(yàn)條件;當(dāng)滿足該校驗(yàn)條件時(shí)確定該n個(gè)數(shù)據(jù)塊的解碼完成;當(dāng)不滿足該校驗(yàn)條件時(shí)獲取該n個(gè)V2C信息的最小值;
根據(jù)該n個(gè)V2C信息獲取用于下一解碼周期的與該n個(gè)VNU對(duì)應(yīng)的n個(gè)C2V信息,并再次執(zhí)行該根據(jù)該第一校驗(yàn)矩陣以及該n個(gè)數(shù)據(jù)塊,獲取該n個(gè)數(shù)據(jù)塊對(duì)應(yīng)的n個(gè)第一處理結(jié)果至該根據(jù)該n個(gè)V2C信息的獲取用于下一解碼周期的與該n個(gè)VNU對(duì)應(yīng)的n個(gè)C2V信息的步驟。
可選的,每個(gè)C2V信息中包括第一C2V信息和第二C2V信息,該至少一個(gè)處理器510利用該n個(gè)VNU根據(jù)該n個(gè)第一處理結(jié)果和該n個(gè)C2V信息獲取n個(gè)第二處理結(jié)果具體用于:
在每個(gè)VNU中,將輸入的第一處理結(jié)果減去該第一C2V信息后與該第二C2V信息相加,得到該V2C信息;
獲取該V2C信息的判決結(jié)果,得到包括該V2C信息和該判決結(jié)果的該第二處理結(jié)果。
可選的,該原始校驗(yàn)矩陣中的非零子矩陣按照預(yù)設(shè)的分布標(biāo)準(zhǔn)分布在該n個(gè)循環(huán)置換矩陣,包括:
該原始校驗(yàn)矩陣的第i行中的非零子矩陣分布在該n個(gè)循環(huán)置換矩陣的第i行中,且任一循環(huán)置換矩陣的第i行中的該非零子矩陣的數(shù)量與其他循環(huán)置換矩陣的第i行中的該非零子矩陣的數(shù)量之差小于預(yù)設(shè)閾值。
關(guān)于上述實(shí)施例中的裝置,其中各個(gè)模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說(shuō)明。
綜上所述,本公開(kāi)所提供的數(shù)據(jù)處理裝置,在獲取待解碼數(shù)據(jù)后,根據(jù)解碼器的帶寬,將該待解碼數(shù)據(jù)分成n個(gè)數(shù)據(jù)塊,并根據(jù)第一校驗(yàn)矩陣同時(shí)對(duì)該n個(gè)數(shù)據(jù)塊進(jìn)行解碼;其中,該第一校驗(yàn)矩陣是根據(jù)n的值對(duì)原始校驗(yàn)矩陣進(jìn)行行列變換后得到的矩陣,該第一校驗(yàn)矩陣中包含n個(gè)循環(huán)置換矩陣,且該原始校驗(yàn)矩陣中的非零子矩陣按照預(yù)設(shè)的分布標(biāo)準(zhǔn)分布在該n個(gè)循環(huán)置換矩陣。能夠通過(guò)將待解碼數(shù)據(jù)分成多個(gè)數(shù)據(jù)塊同時(shí)進(jìn)行解碼處理,減少完成一次迭代的時(shí)間,增加解碼器的帶寬,進(jìn)而增加解碼效率,提高吞吐量。
以上結(jié)合附圖詳細(xì)描述了本公開(kāi)的優(yōu)選實(shí)施方式,但是,本公開(kāi)并不限于上述實(shí)施方式中的具體細(xì)節(jié),在本公開(kāi)的技術(shù)構(gòu)思范圍內(nèi),可以對(duì)本公開(kāi)的技術(shù)方案進(jìn)行多種簡(jiǎn)單變型,這些簡(jiǎn)單變型均屬于本公開(kāi)的保護(hù)范圍。
另外需要說(shuō)明的是,在上述具體實(shí)施方式中所描述的各個(gè)具體技術(shù)特征,在不矛盾的情況下,可以通過(guò)任何合適的方式進(jìn)行組合。為了避免不必要的重復(fù),本公開(kāi)對(duì)各種可能的組合方式不再另行說(shuō)明。
此外,本公開(kāi)的各種不同的實(shí)施方式之間也可以進(jìn)行任意組合,只要其不違背本公開(kāi)的思想,其同樣應(yīng)當(dāng)視為本公開(kāi)所公開(kāi)的內(nèi)容。