Asn.1受約束整數(shù)非對(duì)齊緊縮編碼編解碼方法
【專利摘要】本發(fā)明涉及一種基于編譯器的ASN.1編解碼方法,尤其涉及一種ASN.1受約束整數(shù)非對(duì)齊緊縮編碼編解碼方法;包括以下步驟:S1、ASN.1編譯器獲得目標(biāo)受約束整數(shù)n的上限值ub和下限值lb;S2、ASN.1編譯器計(jì)算獲取滿足不等式2m<ub?lb+1<2m+1成立的整數(shù)m,并定義m+1為n在碼流中的編碼比特?cái)?shù);S3、將n的編碼比特?cái)?shù)連同其屬性一并輸出至數(shù)據(jù)庫中;S4、目標(biāo)平臺(tái)從數(shù)據(jù)庫獲得n在碼流中的編碼比特?cái)?shù)m+1,進(jìn)行編碼和解碼,其中:編碼,將n–lb的值編碼至編碼比特?cái)?shù)為m+1的碼流中;解碼,從碼流中取出m+1比特,得到其所代表的整數(shù)值k,則k+lb即是受約束整數(shù)n的值。本發(fā)明的ASN.1受約束整數(shù)非對(duì)齊緊縮編碼編解碼方法,有效加快對(duì)受約束整數(shù)非對(duì)齊緊縮編碼的編碼和解碼執(zhí)行速度。
【專利說明】
ASN. 1受約束整數(shù)非對(duì)齊緊縮編碼編解碼方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及一種基于編譯器的ASN.1編解碼方法,尤其設(shè)及一種ASN.1受約束整數(shù) 非對(duì)齊緊縮編碼編解碼方法。
【背景技術(shù)】
[0002] ASN.1文法所定義的數(shù)據(jù)類型在應(yīng)用中需要進(jìn)行編譯,產(chǎn)生目標(biāo)平臺(tái)數(shù)據(jù)類型的 描述數(shù)據(jù),編解碼器通過讀取運(yùn)些描述數(shù)據(jù),對(duì)PD師馬流或目標(biāo)平臺(tái)的數(shù)據(jù)內(nèi)存進(jìn)行解碼或 編碼。
[0003] 具體實(shí)現(xiàn)方式如圖1所示,編譯器對(duì)ASN.1文件的編譯和編解碼庫是相互獨(dú)立的, 一般來說,編譯器產(chǎn)生一個(gè)數(shù)據(jù)庫文件,提供給需要進(jìn)行編解碼的程序,編解碼完全獨(dú)立于 ASN.1文件的具體定義,其編解碼的規(guī)則完全與數(shù)據(jù)類型描述數(shù)據(jù)庫無關(guān),但是它在編解碼 時(shí)需要獲取數(shù)據(jù)描述,然后引用相應(yīng)的規(guī)則,在目標(biāo)平臺(tái)的PDU數(shù)據(jù)內(nèi)存和ASN.1碼流之間 進(jìn)行轉(zhuǎn)換。
[0004] ASN.1支持多種編碼方式,其中非對(duì)齊緊縮編碼(UPER)較為常見。在某些場景中, 編解碼庫的運(yùn)行效率至關(guān)重要,例如在LTE RRC的實(shí)施中,某些情況下需要消息從基站發(fā) 出,到收到UE的回復(fù)的時(shí)間不能超過1ms,而UE除了要進(jìn)行基站消息的解碼外,還需要進(jìn)行 消息的處理,然后對(duì)回復(fù)消息進(jìn)行編碼并發(fā)出。
[0005] 在UP邸編碼規(guī)則中,有一類整數(shù)格式共享相同的編碼方式,假設(shè)目標(biāo)整數(shù)n受到上 限Ub和下限化的約束,UbMb,且Ub和化均為確定有限整數(shù)值,則該整數(shù)n被稱為受約束的整 數(shù)。
[0006] 令range = Iib-化+1,則編碼規(guī)則如下所述:
[0007]將整數(shù)"n-化"W二進(jìn)制方式編碼到固定數(shù)量的bit位中,該數(shù)量由Ub和化確定,方 法為:如果range滿足2m<range<2m+i,則,m+1為目標(biāo)碼流中所占位數(shù)。
[000引采用運(yùn)種編碼方式的場合有:
[0009] 1、受約束的INTEG邸類型編碼;
[0010] 2、定義了Ub的OCTET STRING/BIT STRING/SEQ肥NCE 0F/SET OF類型的長度因子 編碼;
[0011] 3、CH0ICE類型的選擇項(xiàng)序號(hào)編碼;
[001。 4、ENUMERATED類型的基本枚舉項(xiàng)編碼。
[0013] 在實(shí)際應(yīng)用中,運(yùn)些場景出現(xiàn)的頻次極高??紤]到編碼長度不因編碼值而變化,而 是取決于化和Ub的值(也就是ASN.1文件),如果按照UPER的編碼規(guī)則去做,每次都需要進(jìn)行 所占位數(shù)值的計(jì)算,則會(huì)大量執(zhí)行重復(fù)的操作。
[0014] 因此,對(duì)編碼和解碼尤其是非對(duì)齊緊縮編碼(UPER)進(jìn)行執(zhí)行速度的優(yōu)化,成為亟 待解決的一個(gè)問題。
【發(fā)明內(nèi)容】
[0015] 為解決上述技術(shù)問題,本發(fā)明的目的是提供一種有效加快對(duì)受約束整數(shù)非對(duì)齊緊 縮編碼的編碼和解碼執(zhí)行速度的ASN. 1編譯器的編解碼方法。
[0016] 本發(fā)明第一方面提供一種ASN.1受約束整數(shù)非對(duì)齊緊縮編碼編解碼方法,包括W 下步驟:
[0017] Sl、ASN.l編譯器獲得目標(biāo)受約束整數(shù)n的上限值Ub和下限值化;
[0018] S2、ASN. 1編譯器計(jì)算獲取滿足不等式2m<ub-化+1<2。+1成立的整數(shù)m,并定義m+1為 n在碼流中的編碼比特?cái)?shù);
[0019] S3、將n的編碼比特?cái)?shù)連同其屬性一并輸出至數(shù)據(jù)庫中;
[0020] S4、目標(biāo)平臺(tái)從數(shù)據(jù)庫獲得n在碼流中的編碼比特?cái)?shù)m+1,進(jìn)行編碼和解碼,其中:
[0021] 編碼,將n-化的值編碼至編碼比特?cái)?shù)為m+1的碼流中;
[0022] 解碼,從碼流中取出m+1比特,得到其所代表的整數(shù)值k,則k+化即是受約束整數(shù)n 的值。
[0023] 進(jìn)一步的,通過ASN.1編譯器的詞法和語法分析,獲得目標(biāo)受約束整數(shù)n的上限值 Ub和下限值化。
[0024] 進(jìn)一步的,所述受約束整數(shù)n的屬性包括其上限值Ub和下限值化。
[0025] 進(jìn)一步的,所述編譯器為32位或64位編譯器。
[0026] 進(jìn)一步的,所述編譯器通過打吾言中的二分法來獲得n在碼流中的編碼比特?cái)?shù)m+1。
[0027] 進(jìn)一步的,所述編譯器通過匯編語言中的bsrl指令來獲得n在碼流中的編碼比特 數(shù) m+1。
[0028] 本發(fā)明第二方面提供前述ASN. 1受約束整數(shù)非對(duì)齊緊縮編碼編解碼方法,在采用 ASN. IUPER編碼規(guī)則的語法定義中的應(yīng)用,其中語法定義尤其包括LTE RRC協(xié)議。
[0029] 借由上述方案,本發(fā)明至少具有W下優(yōu)點(diǎn):有效加快對(duì)受約束整數(shù)非對(duì)齊緊縮編 碼的編碼和解碼執(zhí)行速度。
[0030] 上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段, 并可依照說明書的內(nèi)容予W實(shí)施,W下W本發(fā)明的較佳實(shí)施例并配合附圖詳細(xì)說明如后。
【附圖說明】
[0031] 圖1是現(xiàn)有技術(shù)中基于編譯器的ASN.1編解碼方法的流程圖;
[0032] 圖2是本發(fā)明中基于編譯器的ASN. 1編解碼方法的流程圖。
【具體實(shí)施方式】
[0033] 下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的【具體實(shí)施方式】作進(jìn)一步詳細(xì)描述。W下實(shí)施 例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
[0034] 實(shí)施例一
[0035] 參見圖2,本發(fā)明一較佳實(shí)施例所述的一種ASN.1受約束整數(shù)非對(duì)齊緊縮編碼編解 碼方法,包括W下步驟:
[0036] Sl、ASN.l編譯器獲得目標(biāo)受約束整數(shù)n的上限值Ub和下限值化;
[0037] S2、ASN. 1編譯器計(jì)算獲取滿足不等式2m<ub-化+1<2。+1成立的整數(shù)m,并定義m+1為 n在碼流中的編碼比特?cái)?shù);
[0038] S3、將n的編碼比特?cái)?shù)連同其屬性一并輸出至數(shù)據(jù)庫中;
[0039] S4、目標(biāo)平臺(tái)從數(shù)據(jù)庫獲得n在碼流中的編碼比特?cái)?shù)m+1,進(jìn)行編碼和解碼,其中:
[0040] 編碼,將n-化的值編碼至編碼比特?cái)?shù)為m+1的碼流中;
[0041] 解碼,從碼流中取出m+1比特,得到其所代表的整數(shù)值k,則k+化即是受約束整數(shù)n 的值。
[0042] 其中,可W通過ASN.1編譯器的詞法和語法分析,獲得目標(biāo)受約束整數(shù)n的上限值 Ub和下限值化。
[0043] 受約束整數(shù)n的屬性應(yīng)包括但不限于其上限值Ub和下限值化。
[0044] 編譯器為32位或64位編譯器。
[0045] 編譯器對(duì)于n在碼流中的編碼比特?cái)?shù)m+1的獲得,可W通過兩種方式實(shí)現(xiàn),其一,通 過打吾言中的二分法來獲得,其二,通過匯編語言中的bsrl指令來獲得。
[0046] 實(shí)施例二
[0047] Wlte RRC的PDSCH-Conf igCommon的referenceSignalPower定義為例,其語法定 義為:
[004引
[0049] 從定義得知referenceSignalPower是一個(gè)受約束整數(shù),其上限Ub為50,下限化為- 60,則在編譯時(shí)刻計(jì)算其所占碼流長度??紤]到不等式2m<range<2m+i成立的條件在實(shí)質(zhì)上 是計(jì)算表達(dá)Ub-化所需的最少bit數(shù),也就是Ub-化的二進(jìn)制表達(dá)中,最高位的1所在的比特 序號(hào)。在此處,Ub-化= 110,二進(jìn)制表達(dá)為:1101110,最高位的1的序號(hào)為7,也就是說需要7 位來存儲(chǔ)ref erenceSignalPower,那么我們將數(shù)值7連同其他信息一起輸出到數(shù)據(jù)庫中,編 解碼器進(jìn)行編解碼時(shí)就直接從數(shù)據(jù)庫中獲取所占比特長度7,然后對(duì)7位碼流進(jìn)行編解碼即 可。
[00加]實(shí)施例S
[0051] 本實(shí)施例提供32位編譯平臺(tái)上兩種計(jì)算n在碼流中的編碼比特?cái)?shù)m+1的算法,下文 中輸入?yún)?shù)da化即為Ub-化的值:
[0052] 1、W純C語言實(shí)現(xiàn),該算法W二分法來查找目標(biāo)數(shù)da化的二進(jìn)制表達(dá)中,最高位的 1所在的比特序號(hào):
[0化4]
[0055] 2、若編譯器所運(yùn)行的系統(tǒng)平臺(tái)支持bsrl指令,則可W通過下面的算法實(shí)現(xiàn):
[0化6]
[0057] W上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,并不用于限制本發(fā)明,應(yīng)當(dāng)指出,對(duì)于本技 術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可W做出若干改進(jìn)和 變型,運(yùn)些改進(jìn)和變型也應(yīng)視為本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1. 一種ASN. 1受約束整數(shù)非對(duì)齊緊縮編碼編解碼方法,其特征在于:包括以下步驟: 51^511編譯器獲得目標(biāo)受約束整數(shù)11的上限值1113和下限值113; 52、 六511編譯器計(jì)算獲取滿足不等式2\1*-16+1〈2"+1成立的整數(shù)111,并定義111+1為11在碼 流中的編碼比特?cái)?shù); 53、 將η的編碼比特?cái)?shù)連同其屬性一并輸出至數(shù)據(jù)庫中; 54、 目標(biāo)平臺(tái)從數(shù)據(jù)庫獲得η在碼流中的編碼比特?cái)?shù)m+1,進(jìn)行編碼和解碼,其中: 編碼,將n-lb的值編碼至編碼比特?cái)?shù)為m+1的碼流中; 解碼,從碼流中取出m+1比特,得到其所代表的整數(shù)值k,則k+lb即是受約束整數(shù)η的值。2. 根據(jù)權(quán)利要求1所述的ASN.1受約束整數(shù)非對(duì)齊緊縮編碼編解碼方法,其特征在于: 通過ASN.1編譯器的詞法和語法分析,獲得目標(biāo)受約束整數(shù)η的上限值ub和下限值lb。3. 根據(jù)權(quán)利要求1所述的ASN. 1受約束整數(shù)非對(duì)齊緊縮編碼編解碼方法,其特征在于: 所述受約束整數(shù)η的屬性包括其上限值ub和下限值lb。4. 根據(jù)權(quán)利要求1所述的ASN. 1受約束整數(shù)非對(duì)齊緊縮編碼編解碼方法,其特征在于: 所述編譯器為32位或64位編譯器。5. 根據(jù)權(quán)利要求1所述的ASN.1受約束整數(shù)非對(duì)齊緊縮編碼編解碼方法,其特征在于: 所述編譯器通過C語言中的二分法來獲得η在碼流中的編碼比特?cái)?shù)m+1。6. 根據(jù)權(quán)利要求1所述的ASN.1受約束整數(shù)非對(duì)齊緊縮編碼編解碼方法,其特征在于: 所述編譯器通過匯編語言中的bsrl指令來獲得η在碼流中的編碼比特?cái)?shù)m+1。7. 根據(jù)權(quán)利要求1至6任一項(xiàng)所述的ASN.1受約束整數(shù)非對(duì)齊緊縮編碼編解碼方法,在 采用ASN. 1UPER編碼規(guī)則的語法定義中的應(yīng)用。8. 根據(jù)權(quán)利要求7任一項(xiàng)所述的應(yīng)用,其特征在于:所述語法定義包括LTE RRC協(xié)議。
【文檔編號(hào)】H04L29/06GK105978863SQ201610270587
【公開日】2016年9月28日
【申請(qǐng)日】2016年4月27日
【發(fā)明人】江國慶, 張建立, 陳林康, 潘玉峰, 楊鵬
【申請(qǐng)人】蘇州簡約納電子有限公司