本發明專利技術公開一種基于二叉樹的編碼方法和編碼裝置。首先,接收到當前數值時,將初始為0的編碼次數標識加1,如果當前數值是3的倍數,將當前數值減1,并將初始為0的位置標識加1與編碼次數標識關聯,接著,采用預先構造的二叉樹的左子樹和/或右子樹的權值對減1后的當前數值進行編碼得到當前編碼序列,二叉樹中左子樹的權值為0、右子樹的權值為1,并且如果二叉樹中的節點為n,則該節點的左子樹為2×n、右子樹為2×n+3,然后,判斷當前編碼序列的編碼長度是否小于或等于預定長度,最后,輸出當前編碼序列、編碼次數標識和位置標識。本發明專利技術編碼序列的重量相對于普通二進制編碼明顯減輕,適用于帶寬受限、對編碼重量有較高要求的應用場景。
【技術實現步驟摘要】
基于二叉樹的編碼方法和編碼裝置
本專利技術涉及數據編碼領域,尤其是涉及一種基于二叉樹的編碼方法和編碼裝置。
技術介紹
編碼技術是信息和通訊領域的基礎,編碼方法性能的好壞對使用便利性、可靠性和安全性有著直接影響。常用的是ASN.1(AbstractSyntaxNotationOne,抽象語法標記),一種ITU-T(X.680)和ISO(ISO8824-1)標準,也是一種獨立于機器的描述語言,描述了一種對數據進行表示、編碼、傳輸和解碼的數據格式。它提供了一整套正規的格式用于描述對象的結構,而不管語言上如何執行及這些數據的具體指代,也不用去管到底是什么樣的應用程序。ASN.1特別適合表示網絡或通信應用中那些復雜的、變化的及可擴展的數據結構。ASN.1本身只定義了表示信息的抽象句法,但是沒有限定其編碼的方法。各種ASN.1編碼規則提供了由ASN.1描述其抽象句法的數據的值的傳送語法。標準的ASN.1編碼規則有基本編碼規則(BER,BasicEncodingRules)、規范編碼規則(CER,CanonicalEncodingRules)、唯一編碼規則(DER,DistinguishedEncodingRules)、壓縮編碼規則(PER,PackedEncodingRules)和XML編碼規則(XER,XMLEncodingRules),這些編碼規則都屬于簡潔的二進制編碼,描述了如何對ASN.1中定義的數值進行編碼。現有技術在采用二進制編碼時,編碼得到的編碼序列的重量(即編碼序列中“1”的個數)通常較大,很難應用于帶寬受限、對編碼重量有較高要求的應用場景。專利技術內容本專利技術所要解決的技術問題是:針對上述存在的問題,提供一種基于二叉樹的編碼方法和編碼裝置,能夠減輕編碼序列的重量。本專利技術采用的一種技術方案是提供一種基于二叉樹的編碼方法,所述編碼方法包括:接收待編碼的當前數值,將編碼次數標識加1,并判斷當前數值是否為3的倍數,其中,所述編碼次數標識初始為0;如果是3的倍數,將當前數值減1,并將位置標識加1后與所述編碼次數標識關聯,其中,所述位置標識初始為0;采用預先構造的二叉樹的左子樹和/或右子樹的權值對減1后的當前數值進行編碼,得到當前編碼序列,其中,二叉樹中左子樹的權值為0、右子樹的權值為1,并且如果二叉樹中的節點為n,則該節點的左子樹為2×n、右子樹為2×n+3,n≥1;判斷所述當前編碼序列的編碼長度是否小于或等于預定長度;如果小于或等于預定長度,按照預定編碼格式輸出所述當前編碼序列、所述編碼長度、所述編碼次數標識和所述位置標識。優選地,所述編碼方法還包括:如果不是3的倍數,采用所述二叉樹的左子樹和/或右子樹的權值對當前數值進行編碼,得到當前編碼序列。優選地,所述編碼方法還包括:如果大于預定長度,將所述當前編碼序列進行十進制轉換后,重復所述接收待編碼的當前數值,將編碼次數標識加1,并判斷當前數值是否為3的倍數的步驟。優選地,所述預定編碼格式的輸出順序依次為所述編碼長度、所述位置標識、所述當前編碼序列、所述編碼次數標識。本專利技術采用的另一種技術方案是提供一種基于二叉樹的編碼裝置,所述編碼裝置包括:第一判斷單元,用于接收待編碼的當前數值,將編碼次數標識加1,并判斷當前數值是否為3的倍數,其中,所述編碼次數標識初始為0;減法單元,用于在第一判斷單元判斷當前數值是3的倍數時,將當前數值減1,并將位置標識加1后與所述編碼次數標識關聯,其中,所述位置標識初始為0;編碼單元,用于采用預先構造的二叉樹的左子樹和/或右子樹的權值對減1后的當前數值進行編碼,得到當前編碼序列,其中,二叉樹中左子樹的權值為0、右子樹的權值為1,并且如果二叉樹中的節點為n,則該節點的左子樹為2×n、右子樹為2×n+3,n≥1;第二判斷單元,用于判斷所述當前編碼序列的編碼長度是否小于或等于預定長度;輸出單元,用于在第二判斷單元判斷編碼長度小于或等于預定長度時,按照預定編碼格式輸出所述當前編碼序列、所述編碼長度、所述編碼次數標識和所述位置標識。優選地,所述編碼單元還用于在第一判斷單元判斷當前數值不是3的倍數時,采用所述二叉樹的左子樹和/或右子樹的權值對當前數值進行編碼,得到當前編碼序列。優選地,所述編碼裝置還包括:轉換單元,用于在第二判斷單元判斷編碼長度大于預定長度時,將所述當前編碼序列進行十進制轉換后,再次輸入到所述第一判斷單元。優選地,所述預定編碼格式的輸出順序依次為所述編碼長度、所述位置標識、所述當前編碼序列、所述編碼次數標識。綜上所述,由于采用了上述技術方案,本專利技術的有益效果是:通過采用二叉樹的左子樹和/或右子樹的權值進行編碼,編碼序列的重量相對于普通二進制編碼明顯減輕,從而達到減輕編碼序列的重量的目的,可以適用于帶寬受限、對編碼重量有較高要求的應用場景。附圖說明本專利技術將通過例子并參照附圖的方式說明,其中:圖1是本專利技術基于二叉樹的編碼方法一實施例的流程示意圖。圖2是本專利技術實施例的編碼方法中二叉樹的示意圖。圖3是本專利技術基于二叉樹的編碼方法另一實施例的流程示意圖。圖4是本專利技術基于二叉樹的編碼裝置一實施例的架構示意圖。具體實施方式本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。本說明書中公開的任一特征,除非特別敘述,均可被其他等效或具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。如圖1所示,是本專利技術基于二叉樹的編碼方法一實施例的流程示意圖。本實施例的編碼方法包括以下步驟:S1:接收待編碼的當前數值,將編碼次數標識加1,并判斷當前數值是否為3的倍數,其中,編碼次數標識初始為0。其中,編碼次數標識用于表示總共進行了多少次編碼,這里,由于第一次接收到當前數值,所以是第一次編碼,因此編碼次數標識為1。S2:如果是3的倍數,將當前數值減1,并將位置標識加1后與編碼次數標識關聯,其中,位置標識初始為0。其中,位置標識用于表示當前數值經過編碼后得到的編碼序列中發生減1的比特所在的位置。位置標識與編碼次數標識關聯后,可以知道進行減1的過程發生在第幾次編碼中。S3:采用預先構造的二叉樹的左子樹和/或右子樹的權值對減1后的當前數值進行編碼,得到當前編碼序列,其中,二叉樹中左子樹的權值為0、右子樹的權值為1,并且如果二叉樹中的節點為n,則該節點的左子樹為2×n、右子樹為2×n+3,n≥1。其中,預先構造的二叉樹如圖2所示,根節點為1,則根節點的左子樹為2×1=2,權值為0;右子樹為2×1+3=5,權值為1。葉子節點為2,則葉子節點的左子樹為2×2=4,權值為0;右子樹為2×2+3=7,權值為1。由于二叉樹中各個節點與其父節點的關系已知,權值也已知,因此減1后的當前數值可以采用左子樹和/或右子樹的權值進行編碼。例如,數值7的編碼序列為10,數值4的編碼序列為00。而如果采用普通的二進制編碼,數值7的編碼序列為111,可見,通過采用二叉樹的左子樹和/或右子樹的權值進行編碼,編碼序列的重量相對于普通二進制編碼明顯減輕,達到減輕編碼序列的重量的目的。S4:判斷當前編碼序列的編碼長度是否小于或等于預定長度。S5:如果小于或等于預定長度,按照預定編碼格式輸出當前編本文檔來自技高網...

【技術保護點】
一種基于二叉樹的編碼方法,其特征在于,所述編碼方法包括:接收待編碼的當前數值,將編碼次數標識加1,并判斷當前數值是否為3的倍數,其中,所述編碼次數標識初始為0;如果是3的倍數,將當前數值減1,并將位置標識加1后與所述編碼次數標識關聯,其中,所述位置標識初始為0;采用預先構造的二叉樹的左子樹和/或右子樹的權值對減1后的當前數值進行編碼,得到當前編碼序列,其中,二叉樹中左子樹的權值為0、右子樹的權值為1,并且如果二叉樹中的節點為n,則該節點的左子樹為2×n、右子樹為2×n+3,n≥1;判斷所述當前編碼序列的編碼長度是否小于或等于預定長度;如果小于或等于預定長度,按照預定編碼格式輸出所述當前編碼序列、所述編碼長度、所述編碼次數標識和所述位置標識。
【技術特征摘要】
1.一種基于二叉樹的編碼方法,其特征在于,所述編碼方法包括:接收待編碼的當前數值,將編碼次數標識加1,并判斷當前數值是否為3的倍數,其中,所述編碼次數標識初始為0;如果是3的倍數,將當前數值減1,并將位置標識加1后與所述編碼次數標識關聯,其中,所述位置標識初始為0;采用預先構造的二叉樹的左子樹和/或右子樹的權值對減1后的當前數值進行編碼,得到當前編碼序列,其中,二叉樹中左子樹的權值為0、右子樹的權值為1,并且如果二叉樹中的節點為n,則該節點的左子樹為2×n、右子樹為2×n+3,n≥1;判斷所述當前編碼序列的編碼長度是否小于或等于預定長度;如果小于或等于預定長度,按照預定編碼格式輸出所述當前編碼序列、所述編碼長度、所述編碼次數標識和所述位置標識;如果大于預定長度,將所述當前編碼序列進行十進制轉換后,重復所述接收待編碼的當前數值,將編碼次數標識加1,并判斷當前數值是否為3的倍數的步驟。2.根據權利要求1所述的編碼方法,其特征在于,所述編碼方法還包括:如果不是3的倍數,采用所述二叉樹的左子樹和/或右子樹的權值對當前數值進行編碼,得到當前編碼序列。3.根據權利要求1所述的編碼方法,其特征在于,所述預定編碼格式的輸出順序依次為所述編碼長度、所述位置標識、所述當前編碼序列、所述編碼次數標識。4.一種基于二叉樹的編碼裝置,其特征在于,所述編碼裝置包括:第一...
【專利技術屬性】
技術研發人員:張文科,
申請(專利權)人:成都衛士通信息產業股份有限公司,
類型:發明
國別省市:四川;51
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。