CN104065460B - 基于二叉树的编码方法和编码装置 - Google Patents
基于二叉树的编码方法和编码装置 Download PDFInfo
- Publication number
- CN104065460B CN104065460B CN201410330559.0A CN201410330559A CN104065460B CN 104065460 B CN104065460 B CN 104065460B CN 201410330559 A CN201410330559 A CN 201410330559A CN 104065460 B CN104065460 B CN 104065460B
- Authority
- CN
- China
- Prior art keywords
- coding
- binary tree
- current value
- encoding sequence
- subtree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开一种基于二叉树的编码方法和编码装置。首先,接收到当前数值时,将初始为0的编码次数标识加1,如果当前数值是3的倍数,将当前数值减1,并将初始为0的位置标识加1与编码次数标识关联,接着,采用预先构造的二叉树的左子树和/或右子树的权值对减1后的当前数值进行编码得到当前编码序列,二叉树中左子树的权值为0、右子树的权值为1,并且如果二叉树中的节点为n,则该节点的左子树为2×n、右子树为2×n+3,然后,判断当前编码序列的编码长度是否小于或等于预定长度,最后,输出当前编码序列、编码次数标识和位置标识。本发明编码序列的重量相对于普通二进制编码明显减轻,适用于带宽受限、对编码重量有较高要求的应用场景。
Description
技术领域
本发明涉及数据编码领域,尤其是涉及一种基于二叉树的编码方法和编码装置。
背景技术
编码技术是信息和通讯领域的基础,编码方法性能的好坏对使用便利性、可靠性和安全性有着直接影响。常用的是ASN.1(Abstract Syntax Notation One,抽象语法标记),一种ITU-T(X.680)和ISO(ISO8824-1)标准,也是一种独立于机器的描述语言,描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序。ASN.1特别适合表示网络或通信应用中那些复杂的、变化的及可扩展的数据结构。
ASN.1本身只定义了表示信息的抽象句法,但是没有限定其编码的方法。各种ASN.1编码规则提供了由ASN.1描述其抽象句法的数据的值的传送语法。标准的ASN.1编码规则有基本编码规则(BER,Basic Encoding Rules)、规范编码规则(CER,CanonicalEncoding Rules)、唯一编码规则(DER,Distinguished Encoding Rules)、压缩编码规则(PER,Packed Encoding Rules)和XML编码规则(XER,XML Encoding Rules),这些编码规则都属于简洁的二进制编码,描述了如何对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所示。
表1预定编码格式
编码长度 | 位置标识 | 编码序列 | 编码次数标识 |
由于本实施例的基于二叉树的编码方法采用二叉树的左子树和/或右子树的权值进行编码,相较于现有技术明显减轻了编码序列的重量,可以适用于带宽受限、对编码重量有较高要求的应用场景。
如图3所示,是本发明基于二叉树的编码方法另一实施例的流程示意图。本实施例的编码方法包括以下步骤:
S11:接收待编码的当前数值,将编码次数标识加1。
其中,编码次数标识初始为0。
S12:判断当前数值是否为3的倍数,如果是3的倍数,进行步骤S13,如果不是3的倍数,进行步骤S16。
S13:将当前数值减1,并将位置标识加1后与编码次数标识关联。
其中,位置标识初始为0。位置标识与编码次数标识关联后,可以知道进行减1的过程发生在第几次编码中。
S14:采用预先构造的二叉树的左子树和/或右子树的权值对减1后的当前数值进行编码,得到当前编码序列。
其中,二叉树中左子树的权值为0、右子树的权值为1,并且如果二叉树中的节点为n,则该节点的左子树为2×n、右子树为2×n+3,n≥1。
S15:判断当前编码序列的编码长度是否小于或等于预定长度,如果小于或等于预定长度,进行步骤S17,如果大于预定长度,进行步骤S18。
S16:采用二叉树的左子树和/或右子树的权值对当前数值进行编码,得到当前编码序列。
S17:按照预定编码格式输出当前编码序列、编码长度、编码次数标识和位置标识。
S18:将当前编码序列进行十进制转换。
其中,在某些特殊场合,对编码序列的编码长度有着严格要求。因此,如果第一次编码后编码长度大于规定的预定长度,则将当前编码序列进行十进制转换,得到一个新的数值,然后再次进行步骤S11。
如图4所示,是本发明基于二叉树的编码装置一实施例的架构示意图。编码装置包括第一判断单元21、减法单元22、编码单元23、第二判断单元24和输出单元25。第一判断单元21用于接收待编码的当前数值,将编码次数标识加1,并判断当前数值是否为3的倍数,其中,编码次数标识初始为0。减法单元22用于在第一判断单元21判断当前数值是3的倍数时,将当前数值减1,并将位置标识加1,其中,位置标识初始为0。编码单元23用于采用预先构造的二叉树的左子树和/或右子树的权值对减1后的当前数值进行编码,得到当前编码序列,其中,二叉树中左子树的权值为0、右子树的权值为1,并且如果二叉树中的节点为n,则该节点的左子树为2×n、右子树为2×n+3,n≥1。第二判断单元24用于判断当前编码序列的编码长度是否小于或等于预定长度。输出单元25用于在第二判断单元24判断编码长度小于或等于预定长度时,按照预定编码格式输出当前编码序列、编码长度、编码次数标识和位置标识。在本实施例中,预定编码格式的输出顺序依次为编码长度、位置标识、当前编码序列、编码次数标识。
可选地,编码单元23还用于在第一判断单元21判断当前数值不是3的倍数时,采用二叉树的左子树和/或右子树的权值对当前数值进行编码,得到当前编码序列。
继续参阅图4,可选地,编码装置还包括转换单元26。转换单元26用于在第二判断单元24判断编码长度大于预定长度时,将当前编码序列进行十进制转换后,再次输入到第一判断单元21。
在以下的内容中,针对本发明实施例的基于二叉树的编码方法和编码装置,列举了2个具体应用实例,以便于本领域普通技术人员更好地理解本发明。
实例一:当前数值为67,预定长度为6。由于67不是3的倍数,所以不需要减1;对数值67采用2×n和/或2×n+3的关系式进行如下编码过程:
67=2*32+1*3;
32=2*16+0*3;
16=2*8+0*3;
8=2*4+0*3;
4=2*2+0*3;
2=2*1+0*3;
因此,数值67的编码序列为100000,编码序列的编码长度为6,编码序列的重量为1,编码次数标识为1,位置标识为0。预定编码格式输出如下:
编码长度 | 位置标识 | 编码序列 | 编码次数标识 |
6 | 100000 | 1 |
而如果采用二进制编码,数值67的二进制编码为1000011,其编码序列的编码长度为7,编码序列的重量为3。可见,采用本实施例的编码方法得到的编码序列比二进制编码的编码序列的编码长度短1、重量轻2。
实例二:当前数值为66,预定长度为4。由于66是3的倍数,所以需要减1。此时,编码次数标识和位置标识均为1。对数值65采用2×n和/或2×n+3的关系式进行如下编码过程:
65=2*31+1*3;
31=2*14+1*3;
14=2*7+0*3;
7=2*2+1*3;
2=2*1+0*3;
因此,第一次编码后,数值66的编码序列为11010,编码序列的编码长度为5,编码序列的重量为3,编码次数标识为1,位置标识为1并且与编码次数标识关联。由于编码长度大于4,因此需要再次进行编码。将11010进行十进制转换,得到新的数值26。
由于26不是3的倍数,所以不需要减1;对数值26采用2×n和/或2×n+3的关系式进行如下编码过程:
26=2*13+0*3;
13=2*5+1*3;
5=2*1+1*3;
因此,第二次编码后,数值26的编码序列为011,编码序列的编码长度为3,编码序列的重量为2,编码次数标识为2,位置标识仍然为1。预定编码格式输出如下:
编码长度 | 位置标识 | 编码序列 | 编码次数标识 |
3 | (1,1) | 011 | 2 |
而如果采用二进制编码,数值66的二进制编码为1000010,其编码序列的编码长度为7,编码序列的重量为2。可见,采用本实施例的编码方法得到的编码序列比二进制编码的编码序列的编码长度短4。
从实例二可知,采用本发明的编码方法或编码装置可以进行多次编码,每次编码后编码序列的编码长度缩短,直到编码长度达到要求,能够有效缩短编码长度。而二进制编码是固定编码,只能编码一次。
本发明实施例的编码方法和编码装置与常用的二进制编码相比,具有以下技术特点:
1.编码序列的编码长度比二进制编码明显缩短;
2.可以连续进行多次编码,直到编码序列的编码长度达到预定长度;
3.在大多数情况下,编码序列的重量明显比二进制编码的编码重量轻;
4.具备特有的预定编码格式,适用于多种场合。
通过上述方式,本发明的基于二叉树的编码方法和编码装置通过采用二叉树的左子树和/或右子树的权值进行编码,编码序列的重量相对于普通二进制编码明显减轻,从而达到减轻编码序列的重量的目的,可以适用于带宽受限、对编码重量有较高要求的应用场景。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (6)
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.一种基于二叉树的编码装置,其特征在于,所述编码装置包括:
第一判断单元,用于接收待编码的当前数值,将编码次数标识加1,并判断当前数值是否为3的倍数,其中,所述编码次数标识初始为0;
减法单元,用于在第一判断单元判断当前数值是3的倍数时,将当前数值减1,并将位置标识加1后与所述编码次数标识关联,其中,所述位置标识初始为0;
编码单元,用于采用预先构造的二叉树的左子树和/或右子树的权值对减1后的当前数值进行编码,得到当前编码序列,其中,二叉树中左子树的权值为0、右子树的权值为1,并且如果二叉树中的节点为n,则该节点的左子树为2×n、右子树为2×n+3,n≥1;
第二判断单元,用于判断所述当前编码序列的编码长度是否小于或等于预定长度;
输出单元,用于在第二判断单元判断编码长度小于或等于预定长度时,按照预定编码格式输出所述当前编码序列、所述编码长度、所述编码次数标识和所述位置标识;
转换单元,用于在第二判断单元判断编码长度大于预定长度时,将所述当前编码序列进行十进制转换后,再次输入到所述第一判断单元。
5.根据权利要求4所述的编码装置,其特征在于,所述编码单元还用于在第一判断单元判断当前数值不是3的倍数时,采用所述二叉树的左子树和/或右子树的权值对当前数值进行编码,得到当前编码序列。
6.根据权利要求4所述的编码装置,其特征在于,所述预定编码格式的输出顺序依次为所述编码长度、所述位置标识、所述当前编码序列、所述编码次数标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410330559.0A CN104065460B (zh) | 2014-07-11 | 2014-07-11 | 基于二叉树的编码方法和编码装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410330559.0A CN104065460B (zh) | 2014-07-11 | 2014-07-11 | 基于二叉树的编码方法和编码装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104065460A CN104065460A (zh) | 2014-09-24 |
CN104065460B true CN104065460B (zh) | 2017-05-17 |
Family
ID=51553009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410330559.0A Active CN104065460B (zh) | 2014-07-11 | 2014-07-11 | 基于二叉树的编码方法和编码装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104065460B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100111A (zh) * | 2015-08-26 | 2015-11-25 | 成都卫士通信息产业股份有限公司 | 一种信息传输保护方法和系统 |
CN105245315A (zh) * | 2015-10-27 | 2016-01-13 | 成都卫士通信息产业股份有限公司 | 一种采用编码实现信息保密存储的方法和系统 |
CN107797973A (zh) * | 2017-09-27 | 2018-03-13 | 西安交通大学 | 一种面向硬件实现的gbdt分类模型压缩方法 |
CN110035287B (zh) * | 2018-01-12 | 2023-05-09 | 富士通株式会社 | 对统一转换单元模式进行分组标识的方法、装置和电子设备 |
CN109341726B (zh) * | 2018-11-27 | 2020-08-11 | 北京理工大学 | 一种串行绝对编码器的编码方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387107A (zh) * | 2010-09-01 | 2012-03-21 | 夏普株式会社 | 基于二叉树的联合编码方法和编码器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9363054B2 (en) * | 2008-04-29 | 2016-06-07 | Texas Instruments Incorporated | Sounding reference signal user equipment specific sub-frame configuration |
-
2014
- 2014-07-11 CN CN201410330559.0A patent/CN104065460B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387107A (zh) * | 2010-09-01 | 2012-03-21 | 夏普株式会社 | 基于二叉树的联合编码方法和编码器 |
Also Published As
Publication number | Publication date |
---|---|
CN104065460A (zh) | 2014-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104065460B (zh) | 基于二叉树的编码方法和编码装置 | |
CN103701564B (zh) | 一种lte系统中pdcch全盲检测的实现方法 | |
CN103379136A (zh) | 一种日志采集数据压缩方法、解压缩方法及装置 | |
CN110046331A (zh) | 数据编码方法及装置、存储介质、电子装置 | |
CN110943797B (zh) | 一种sdh网络中的数据压缩方法 | |
CN104081701A (zh) | 光网络系统的通信方法、系统及装置 | |
CN109842458A (zh) | 一种编码方法、装置、电子设备和存储介质 | |
CN108809486A (zh) | Polar码编译码方法及装置 | |
CN105450359A (zh) | 自定义二进制结构化协议数据的发送和接收方法 | |
CN114492316A (zh) | 数据交换编解码方法和系统 | |
CN104360988A (zh) | 中文字符的编码方式的识别方法和装置 | |
CN116915873B (zh) | 基于物联网技术的高速电梯运行数据快速传输方法 | |
CN116208667B (zh) | 一种可变长高压缩的比特报文编解码方法 | |
Hong | Coding Rule of Characters by 2 bytes with 4× 4 bits to Improve the Transmission Efficiency in Data Communications | |
CN103746701A (zh) | 一种用于Rice无损数据压缩的快速编码选项选择方法 | |
US10671354B2 (en) | Method, system and apparatus for generating source code from table and using the same | |
CN105553625A (zh) | 一种用电信息采集系统远程信道报文压缩方法及系统 | |
CN104182286A (zh) | 一种跨平台汉字乱码恢复方法 | |
CN106850504B (zh) | 基于http静态压缩数据流的有害代码检测方法和装置 | |
CN104717032A (zh) | 一种适用于afdx网络数据透明传输的编解码方法 | |
CN110650539B (zh) | 一种基于scma的无线通信下行链路资源分配方法 | |
CN104765790B (zh) | 一种数据查询的方法和装置 | |
CN103297182A (zh) | 频谱感知测量数据的发送方法及装置 | |
CN114827287A (zh) | 一种数据的压缩方法及系统 | |
US20170117918A1 (en) | Method and Apparatus for Calculating Estimated Data Compression Ratio |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: No. 333, Yunhua Road, Chengdu hi tech Zone, China (Sichuan) pilot Free Trade Zone, Chengdu, Sichuan 610041 Patentee after: China Electronics Technology Network Security Technology Co.,Ltd. Address before: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041 Patentee before: CHENGDU WESTONE INFORMATION INDUSTRY Inc. |
|
CP03 | Change of name, title or address |