非對齊壓縮編碼規(guī)則UPER介紹
通信系統(tǒng)不斷發(fā)展,通信系統(tǒng)中協(xié)議結(jié)構(gòu)的可選項(xiàng)、元素類型和擴(kuò)展項(xiàng)等也變得越來越復(fù)雜,為了適應(yīng)復(fù)雜數(shù)據(jù)結(jié)構(gòu)傳輸?shù)男枰?/strong>ITU-T定義了一種標(biāo)記語言,即ASN.1,用來定義傳送數(shù)據(jù)的語法。
?ASN.1組成:語法規(guī)則+編碼規(guī)則
1、語法規(guī)則:從數(shù)據(jù)類型、內(nèi)容順序或結(jié)構(gòu)等方面來描述消息的內(nèi)容。
數(shù)據(jù)類型: 基本類型+復(fù)合類型
1)基本類型: BOOL, INTEGER,REAL,BIT,STRING,OCTET STRING,ENUMERATED,OBJECT INTEGER等
2)復(fù)合類型:基本類型組合而形成的較復(fù)雜類型
2、編碼規(guī)則:如何編碼實(shí)際消息中的數(shù)據(jù)。
?ASN.1編碼規(guī)則:BER(basic encoding rules) + PER(packed encoding rules)
1)BER,編碼實(shí)現(xiàn)采用嵌套方式,數(shù)據(jù)結(jié)構(gòu)如下:
Tag+ length + contents (tag+ length + contents (…))

Tag:標(biāo)識類型
Length:數(shù)據(jù)字段的長度(單位:字節(jié))
Contents:數(shù)據(jù)字段的內(nèi)容
2)PER:對齊方式(aligned PER)+非對齊方式(unaligned PER,UPER)
編碼實(shí)現(xiàn)采用嵌套方式,數(shù)據(jù)結(jié)構(gòu)如下:
Preamble+Length+Contents(Preamble+Length+Contents(…))

Preamble:導(dǎo)言,表示數(shù)據(jù)類型的ASN.1句法是否含擴(kuò)展標(biāo)記?;?/strong>SEQUENCE/SET中的可選項(xiàng)、缺省項(xiàng)是否參與編碼
Length:數(shù)據(jù)字段的長度(單位:字節(jié)/比特)
Contents:數(shù)據(jù)字段的內(nèi)容
3、對比分析
1 )?BER相比PER,占用空間大

2)UPER相比aligned PER,各個數(shù)據(jù)項(xiàng)的編碼之間沒有填充的比特,比aligned PER更精簡,但這種編碼的結(jié)果沒有從字節(jié)的邊界處開始,實(shí)現(xiàn)起來不方便,而且也將占用更多的CPU時間。