CN110518915A - 一种比特位计数编码以及解码方法 - Google Patents
一种比特位计数编码以及解码方法 Download PDFInfo
- Publication number
- CN110518915A CN110518915A CN201910722348.4A CN201910722348A CN110518915A CN 110518915 A CN110518915 A CN 110518915A CN 201910722348 A CN201910722348 A CN 201910722348A CN 110518915 A CN110518915 A CN 110518915A
- Authority
- CN
- China
- Prior art keywords
- count value
- bit
- coding
- value
- binary
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/02—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
- H03M7/04—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word the radix thereof being two
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种比特位计数编码方法,遍历输入数据,顺序记录连续出现相同比特位的值的计数值;记录同一计数值出现的次数,以及去除重复的计数值后的总个数;设定复数个二进制编码单元;将计数值与二进制编码单元一一对应;将顺序记录的计数值转换为二进制编码数据;将所述总个数以及去除重复的计数值转换为二进制,并与二进制编码数据组合为新数据,完成数据压缩;本发明还提供一种比特位计数解码方法,极低的算法复杂度,并且编码简单,编解码速率快。
Description
技术领域
本发明涉及一种比特位计数编码以及解码方法。
背景技术
关于数据压缩算法已经比比皆是,但几乎没有从数据存储的最小单位,即二进制比特位切入的。二进制只有比特0和比特1两个值,从概率上说,数据中是比较容易出现连续相同的比特位的值。在小型嵌入式***中,其存储资源不大,若是采用现有的压缩算法(所需的存储空间较大),则会造成无法支持或加剧存储资源紧张的情况。
发明内容
本发明要解决的技术问题,在于提供一种比特位计数编码以及解码方法,极低的算法复杂度,并且编码简单,编解码速率快。
本发明之一是这样实现的:一种比特位计数编码方法,包括:
步骤1、遍历输入数据,顺序记录连续出现相同比特位的值的计数值;
步骤2、记录同一计数值出现的次数,以及去除重复的计数值后的总个数;
步骤3、设定复数个二进制编码单元;
步骤4、将计数值与二进制编码单元一一对应,将最短的二进制编码单元对应重复次数最多的计数值,依次类推进行对应;
步骤5、将顺序记录的计数值转换为二进制编码数据;
步骤6、将所述总个数以及去除重复的计数值转换为二进制,并与二进制编码数据组合为新数据,完成数据压缩。
进一步地,所述步骤5进一步具体为:设定第一个计数值代表比特位的值为1的计数;若顺序记录的计数值中的第一个计数值代表比特位的值为0的计数,则在该计数值前添加一个计数值,该计数值为0,之后将其转换为二进制编码数据;否,则不添加,直接将其转换为二进制编码数据;
或者,设定第一个计数值代表比特位的值为0的计数;若顺序记录的计数值中的第一个计数值代表比特位的值为1的计数,则在该计数值前添加一个计数值,该计数值为0,之后将其转换为二进制编码数据;否,则不添加,直接将其转换为二进制编码数据。
进一步地,所述步骤6中所述新数据,若是新数据最后一个字节的有效数据位长度不为8,则将字节中空的比特位的值设为1;否,则不操作。
进一步地,所述步骤3进一步具体为:设定复数个二进制编码单元,所述二进制编码单元的数量等于所述总个数。
进一步地,所述步骤6中的所述总个数以及去除重复的计数值转换为二进制,采用不定长编码;所述不定长编码为:在字节中设置标志位以及数值位,所述标志位用于代表后续是否存在字节。
本发明之二是这样实现的:一种比特位计数解码方法,包括:
步骤1、步骤1、将压缩数据进行解压,将其中的总个数、去除重复的计数值以及二进制编码数据解码出来;
步骤2、将去除重复的计数值与设定的二进制编码单元对应,根据所述对应关系,将二进制编码数据还原为比特位计数值,再将比特位计数值还原为原始数据,完成解压缩。
进一步地,所述步骤2中将二进制编码数据还原为原始数据进一步具体为:根据设定,第一个计数值代表比特位的值为0或者1的个数,依此类推,将二进制编码数据还原为原始数据。
进一步地,所述步骤2中二进制编码数据的最后一个字节中的比特位值,根据对应关系,找到对应的二进制编码单元,则进行还原;若是找不到,则丢弃。
进一步地,所述步骤1进一步具体为:采用不定长编码解压出压缩数据中的总个数以及去除重复的计数值,之后解压出二进制编码数据。
进一步地,所述不定长编码为:在字节中设置标志位以及数值位,所述标志位用于代表后续是否存在字节。
本发明具有如下优点:
1)算法极简
极低的算法复杂度,编码简单,编解码速率快,非常适用资源有限的小型嵌入式产品。
2)特定文件压缩率高
特别适用于比特位的值易重复的内容,例如二值图像,压缩率高。
3)支持部分解码
由于是顺序编码,因此很容易定位至特定位置,并只解码部分内容。。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明一种比特位计数编码方法执行流程图。
图2为本发明一种比特位计数解码方法执行流程图。
具体实施方式
如图1所示,本发明比特位计数编码方法,包括:
步骤1、遍历输入数据,顺序记录连续出现相同比特位的值的计数值;
步骤2、记录同一计数值出现的次数,以及去除重复的计数值后的总个数;
步骤3、设定复数个二进制编码单元,所述二进制编码单元的数量等于所述总个数;
步骤4、将计数值与二进制编码单元一一对应,将最短的二进制编码单元对应重复次数最多的计数值,依次类推进行对应;
步骤5、设定第一个计数值代表比特位的值为1的计数;若顺序记录的计数值中的第一个计数值代表比特位的值为0的计数,则在该计数值前添加一个计数值,该计数值为0,之后将其转换为二进制编码数据;否,则不添加,直接将其转换为二进制编码数据;
或者,设定第一个计数值代表比特位的值为0的计数;若顺序记录的计数值中的第一个计数值代表比特位的值为1的计数,则在该计数值前添加一个计数值,该计数值为0,之后将其转换为二进制编码数据;否,则不添加,直接将其转换为二进制编码数据;
步骤6、将所述总个数以及去除重复的计数值转换为二进制,并与二进制编码数据组合为新数据,完成数据压缩,所述新数据,若是新数据最后一个字节的有效数据位长度不为8,则将字节中空的比特位的值设为1;否,则不操作。
所述总个数以及去除重复的计数值转换为二进制,采用不定长编码;所述不定长编码为:在字节中设置标志位以及数值位,所述标志位用于代表后续是否存在字节。
如图2所示,本发明比特位计数解码方法,包括:
步骤1、采用不定长编码解压出压缩数据中的总个数以及去除重复的计数值,之后解压出二进制编码数据,所述不定长编码为:在字节中设置标志位以及数值位,所述标志位用于代表后续是否存在字节;
步骤2、将去除重复的计数值与设定的二进制编码单元对应,根据所述对应关系,将二进制编码数据还原为比特位计数值,再将比特位计数值还原为原始数据,完成解压缩。
根据设定,第一个计数值代表比特位的值为0或者1的个数,依此类推,将二进制编码数据还原为原始数据,所述二进制编码数据的最后一个字节中的比特位值,根据对应关系,找到对应的二进制编码单元,则进行还原;若是找不到,则丢弃。
本发明一种具体实施方式:
编码过程:
遍历输入数据,顺序记下连续出现相同比特位的值的个数,称为位计数值列表。
遍历位计数值列表,记下每个位计数值在列表中出现的次数。
按出现次数从大到小对位计数值进行排序,出现次数越多的位计数值对应越短的二进制编码单元。称为位计数值编码转换表。
根据位计数值编码转换表,将位计数值列表中的内容转换为二进制编码单元,即为编码后的数据。
同理,解码过程为:
根据位计数值编码转换表,将二进制编码单元转换为位计数值列表。
根据位计数值列表,依次还原出比特位的值,即为原始数据。
1.编码约定
1)位计数值
采用不定长编码。每个编码单元都是以比特1开始,以最后一个比特0结束。
部分编码单元如下:
根据编码约定可知,m位二进制可以有m-1种编码。以ni表示i位二进制的编码数,则m位的累积编码数为∑ni,(2<=i<=m).
特别约定:
0值使用二进制0b0表示,占用大小为1Bits。
结束符用全比特1表示,占用大小为1~7Bits。
2)转换表值。
采用不定长编码。字节最高位为标志位,低7位字节为数值位。标志位为1代表仍有后续字节,标志位为0代表一个完整编码结束。如0x25be,编码后为0xcb3e。
2.位计数值
遍历输入数据,顺序记下连续相同比特位的值的个数。约定第一个计数值代表比特0的个数,则第二个计数值代表比特1的个数,第***比特0的个数,依此类推。
3.转换表
遍历位计数值,记下每个计数值及其出现的次数。
建立3列表格,第1列记录计数值,第2列记录计数值累积出现次数。表格按第2列的内容,即次数值,按从大到小排列行的顺序。然后,第3列按编码大小顺序填入计数值编码。
此时,表格中计数值出现次数最多的对应最短的编码。
示例转换表:
编解码时,实际用到的是表第1列和第3列的内容,即计数值与编码值的对应关系。第2列仅用于位计数值排序。
由于第3列内容是一个固定的编码约定,因此实际只需要存储第1列的内容即可。
4.编码文件格式
编码后内容的一种组织方式:
采用比特位压缩,代码量小,适用于资源紧张的小型嵌入式***,在二值位图这种比特位的值容易重复的数据压缩应用方面能够发挥出媲美其他压缩算法一样的压缩率,但其占用的资源则小得多。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (10)
1.一种比特位计数编码方法,其特征在于:包括:
步骤1、遍历输入数据,顺序记录连续出现相同比特位的值的计数值;
步骤2、记录同一计数值出现的次数,以及去除重复的计数值后的总个数;
步骤3、设定复数个二进制编码单元;
步骤4、将计数值与二进制编码单元一一对应,将最短的二进制编码单元对应重复次数最多的计数值,依次类推进行对应;
步骤5、将顺序记录的计数值转换为二进制编码数据;
步骤6、将所述总个数以及去除重复的计数值转换为二进制,并与二进制编码数据组合为新数据,完成数据压缩。
2.根据权利要求1所述的一种比特位计数编码方法,其特征在于:所述步骤5进一步具体为:设定第一个计数值代表比特位的值为1的计数;若顺序记录的计数值中的第一个计数值代表比特位的值为0的计数,则在该计数值前添加一个计数值,该计数值为0,之后将其转换为二进制编码数据;否,则不添加,直接将其转换为二进制编码数据;
或者,设定第一个计数值代表比特位的值为0的计数;若顺序记录的计数值中的第一个计数值代表比特位的值为1的计数,则在该计数值前添加一个计数值,该计数值为0,之后将其转换为二进制编码数据;否,则不添加,直接将其转换为二进制编码数据。
3.根据权利要求1所述的一种比特位计数编码方法,其特征在于:所述步骤6中所述新数据,若是新数据最后一个字节的有效数据位长度不为8,则将字节中空的比特位的值设为1;否,则不操作。
4.根据权利要求1所述的一种比特位计数编码方法,其特征在于:所述步骤3进一步具体为:设定复数个二进制编码单元,所述二进制编码单元的数量等于所述总个数。
5.根据权利要求1所述的一种比特位计数编码方法,其特征在于:所述步骤6中的所述总个数以及去除重复的计数值转换为二进制,采用不定长编码;所述不定长编码为:在字节中设置标志位以及数值位,所述标志位用于代表后续是否存在字节。
6.一种比特位计数解码方法,其特征在于:包括:
步骤1、将压缩数据进行解压,将其中的总个数、去除重复的计数值以及二进制编码数据解码出来;
步骤2、将去除重复的计数值与设定的二进制编码单元对应,根据所述对应关系,将二进制编码数据还原为比特位计数值,再将比特位计数值还原为原始数据,完成解压缩。
7.根据权利要求6所述的一种比特位计数解码方法,其特征在于:所述步骤2中将二进制编码数据还原为原始数据进一步具体为:根据设定,第一个计数值代表比特位的值为0或者1的个数,依此类推,将二进制编码数据还原为原始数据。
8.根据权利要求6所述的一种比特位计数解码方法,其特征在于:所述步骤2中二进制编码数据的最后一个字节中的比特位值,根据对应关系,找到对应的二进制编码单元,则进行还原;若是找不到,则丢弃。
9.根据权利要求6所述的一种比特位计数解码方法,其特征在于:所述步骤1进一步具体为:采用不定长编码解压出压缩数据中的总个数以及去除重复的计数值,之后解压出二进制编码数据。
10.根据权利要求9所述的一种比特位计数解码方法,其特征在于:所述不定长编码为:在字节中设置标志位以及数值位,所述标志位用于代表后续是否存在字节。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910722348.4A CN110518915B (zh) | 2019-08-06 | 2019-08-06 | 一种比特位计数编码以及解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910722348.4A CN110518915B (zh) | 2019-08-06 | 2019-08-06 | 一种比特位计数编码以及解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110518915A true CN110518915A (zh) | 2019-11-29 |
CN110518915B CN110518915B (zh) | 2022-10-14 |
Family
ID=68624404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910722348.4A Active CN110518915B (zh) | 2019-08-06 | 2019-08-06 | 一种比特位计数编码以及解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110518915B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112558885A (zh) * | 2020-12-24 | 2021-03-26 | 展讯半导体(成都)有限公司 | 功能手机的存储器使用方法及相关产品 |
CN112783438A (zh) * | 2020-12-24 | 2021-05-11 | 展讯半导体(成都)有限公司 | 功能手机的存储器使用方法及相关产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5434568A (en) * | 1985-01-10 | 1995-07-18 | Moll; Edward W. | Data compression by removing repetition and unnecessary information |
JPH098670A (ja) * | 1995-06-16 | 1997-01-10 | Kokusai Denshin Denwa Co Ltd <Kdd> | データ伝送方法およびデータ伝送装置 |
CN1495704A (zh) * | 1999-11-08 | 2004-05-12 | ������������ʽ���� | 声音编码装置以及声音解码装置 |
JP2005039672A (ja) * | 2003-07-17 | 2005-02-10 | Mitsubishi Electric Corp | 無線通信装置の符号化処理装置および復号化処理装置 |
US20050270195A1 (en) * | 2004-05-28 | 2005-12-08 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding/decoding digital signal |
JP2009201084A (ja) * | 2008-01-18 | 2009-09-03 | Panasonic Corp | 符号化器及び送信装置 |
-
2019
- 2019-08-06 CN CN201910722348.4A patent/CN110518915B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5434568A (en) * | 1985-01-10 | 1995-07-18 | Moll; Edward W. | Data compression by removing repetition and unnecessary information |
JPH098670A (ja) * | 1995-06-16 | 1997-01-10 | Kokusai Denshin Denwa Co Ltd <Kdd> | データ伝送方法およびデータ伝送装置 |
CN1495704A (zh) * | 1999-11-08 | 2004-05-12 | ������������ʽ���� | 声音编码装置以及声音解码装置 |
JP2005039672A (ja) * | 2003-07-17 | 2005-02-10 | Mitsubishi Electric Corp | 無線通信装置の符号化処理装置および復号化処理装置 |
US20050270195A1 (en) * | 2004-05-28 | 2005-12-08 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding/decoding digital signal |
JP2009201084A (ja) * | 2008-01-18 | 2009-09-03 | Panasonic Corp | 符号化器及び送信装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112558885A (zh) * | 2020-12-24 | 2021-03-26 | 展讯半导体(成都)有限公司 | 功能手机的存储器使用方法及相关产品 |
CN112783438A (zh) * | 2020-12-24 | 2021-05-11 | 展讯半导体(成都)有限公司 | 功能手机的存储器使用方法及相关产品 |
CN112558885B (zh) * | 2020-12-24 | 2022-11-22 | 展讯半导体(成都)有限公司 | 功能手机的存储器使用方法及相关产品 |
CN112783438B (zh) * | 2020-12-24 | 2024-01-16 | 展讯半导体(成都)有限公司 | 功能手机的存储器使用方法及相关产品 |
Also Published As
Publication number | Publication date |
---|---|
CN110518915B (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101049699B1 (ko) | 데이터의 압축방법 | |
US20130307709A1 (en) | Efficient techniques for aligned fixed-length compression | |
US20060087460A1 (en) | Method of generating Huffman code length information | |
CN110518917A (zh) | 基于Huffman编码的LZW数据压缩方法及*** | |
CN104579360B (zh) | 一种数据处理的方法和设备 | |
CN110021369B (zh) | 基因测序数据压缩解压方法、***及计算机可读介质 | |
CN116016606B (zh) | 一种基于智慧云的污水处理运维数据高效管理*** | |
CN110518915A (zh) | 一种比特位计数编码以及解码方法 | |
CN111510156A (zh) | 一种基于分段的哈夫曼动态压缩及解压大文件的方法 | |
CN113868206A (zh) | 一种数据压缩方法、解压缩方法、装置及存储介质 | |
CN104467868A (zh) | 中文文本压缩方法 | |
CN116614139B (zh) | 一种售酒小程序内用户交易信息压缩存储方法 | |
JP5913748B2 (ja) | セキュアで損失のないデータ圧縮 | |
KR101023536B1 (ko) | 데이터 무손실 압축 방법 | |
CN100568284C (zh) | 计算机图形数据编码装置、解码装置、编码和解码方法 | |
CN116805537B (zh) | 用于心肺康复管理***的数据处理方法 | |
US7683809B2 (en) | Advanced lossless bit coding | |
CN104682966A (zh) | 列表数据的无损压缩方法 | |
Nandi et al. | Windowed Huffman Coding with limited distinct symbols | |
US7930435B2 (en) | Hub and spoke compression | |
US8754791B1 (en) | Entropy modifier and method | |
Islam et al. | A Dynamic 5 Bit Data Compression Scheme by Using Set Change Table (5BDC) | |
Begum et al. | An efficient text compression for massive volume of data | |
CN103517022A (zh) | 一种图像数据压缩和解压缩方法、装置 | |
US12034462B2 (en) | Compressing probability tables for entropy coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |