CN110518915B - 一种比特位计数编码以及解码方法 - Google Patents
一种比特位计数编码以及解码方法 Download PDFInfo
- Publication number
- CN110518915B CN110518915B CN201910722348.4A CN201910722348A CN110518915B CN 110518915 B CN110518915 B CN 110518915B CN 201910722348 A CN201910722348 A CN 201910722348A CN 110518915 B CN110518915 B CN 110518915B
- Authority
- CN
- China
- Prior art keywords
- bit
- binary
- value
- count
- count value
- 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
Images
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 (2)
1.一种比特位计数编码方法,其特征在于:包括:
步骤1、遍历输入数据,顺序记录连续出现相同比特位的值的计数值;
步骤2、记录同一计数值出现的次数,以及去除重复的计数值后的总个数;
步骤3、设定复数个二进制编码单元,所述二进制编码单元的数量等于所述总个数;
步骤4、将计数值与二进制编码单元一一对应,将最短的二进制编码单元对应重复次数最多的计数值,依次类推进行对应;
步骤5、设定第一个计数值代表比特位的值为1的计数;若顺序记录的计数值中的第一个计数值代表比特位的值为0的计数,则在该计数值前添加一个计数值,该计数值为0,之后将其转换为二进制编码数据;否,则不添加,直接将其转换为二进制编码数据;
或者,设定第一个计数值代表比特位的值为0的计数;若顺序记录的计数值中的第一个计数值代表比特位的值为1的计数,则在该计数值前添加一个计数值,该计数值为0,之后将其转换为二进制编码数据;否,则不添加,直接将其转换为二进制编码数据;
步骤6、将所述总个数以及去除重复的计数值转换为二进制,并与二进制编码数据组合为新数据,完成数据压缩,所述新数据,若是新数据最后一个字节的有效数据位长度不为8,则将字节中空的比特位的值设为1;否,则不操作;
所述总个数以及去除重复的计数值转换为二进制,采用不定长编码;所述不定长编码为:在字节中设置标志位以及数值位,所述标志位用于代表后续是否存在字节。
2.一种比特位计数解码方法,其特征在于:包括:
步骤1、采用不定长编码解压出压缩数据中的总个数以及去除重复的计数值,之后解压出二进制编码数据,所述不定长编码为:在字节中设置标志位以及数值位,所述标志位用于代表后续是否存在字节;
步骤2、将去除重复的计数值与设定的二进制编码单元对应,根据对应关系,将二进制编码数据还原为比特位计数值,再将比特位计数值还原为原始数据,完成解压缩;
根据设定,第一个计数值代表比特位的值为0或者1的个数,依此类推,将二进制编码数据还原为原始数据,所述二进制编码数据的最后一个字节中的比特位值,根据对应关系,找到对应的二进制编码单元,则进行还原;若是找不到,则丢弃。
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 CN110518915A (zh) | 2019-11-29 |
CN110518915B true 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) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112558885B (zh) * | 2020-12-24 | 2022-11-22 | 展讯半导体(成都)有限公司 | 功能手机的存储器使用方法及相关产品 |
CN112783438B (zh) * | 2020-12-24 | 2024-01-16 | 展讯半导体(成都)有限公司 | 功能手机的存储器使用方法及相关产品 |
Citations (5)
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 | 無線通信装置の符号化処理装置および復号化処理装置 |
JP2009201084A (ja) * | 2008-01-18 | 2009-09-03 | Panasonic Corp | 符号化器及び送信装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100695125B1 (ko) * | 2004-05-28 | 2007-03-14 | 삼성전자주식회사 | 디지털 신호 부호화/복호화 방법 및 장치 |
-
2019
- 2019-08-06 CN CN201910722348.4A patent/CN110518915B/zh active Active
Patent Citations (5)
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 | 無線通信装置の符号化処理装置および復号化処理装置 |
JP2009201084A (ja) * | 2008-01-18 | 2009-09-03 | Panasonic Corp | 符号化器及び送信装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110518915A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101862438B1 (ko) | 트리 구조들의 적응적 엔트로피 코딩을 위한 방법 | |
US5818877A (en) | Method for reducing storage requirements for grouped data values | |
CN100455019C (zh) | 内容自适应二进制算术编码的方法和使用该方法的设备 | |
US7365659B1 (en) | Method of context adaptive binary arithmetic coding and coding apparatus using the same | |
US7791513B2 (en) | Adaptive combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems | |
US7786907B2 (en) | Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems | |
KR102123620B1 (ko) | 대용량 병렬 처리를 위해 비디오 신호를 엔트로피 인코딩 또는 엔트로피 디코딩하는 방법 및 장치 | |
CN110518915B (zh) | 一种比特位计数编码以及解码方法 | |
JP2017519467A5 (zh) | ||
JP2011130413A (ja) | デジタルコンテンツ符号器、復号器、検索装置、符号化方法、検索方法、記録担体、信号、および記憶装置 | |
JP5656593B2 (ja) | 符号化データを復号する装置及び方法 | |
CN112262578B (zh) | 点云属性编码方法和装置以及点云属性解码方法和装置 | |
US7786903B2 (en) | Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems | |
KR101023536B1 (ko) | 데이터 무손실 압축 방법 | |
CN111031388B (zh) | Yuv4:4:4数据的编解码方法 | |
KR20170002478A (ko) | 제한된 캐리 연산에 의한 산술 코딩을 수행하기 위한 방법 및 장치 | |
JP4758494B2 (ja) | ビット長を符号に変換する回路及び方法 | |
CN116527775B (zh) | 使用分区和无关位消除的数据压缩技术 | |
US10931303B1 (en) | Data processing system | |
US11469773B1 (en) | Deflate compression using sub-literals for reduced complexity Huffman coding | |
CN104682966A (zh) | 列表数据的无损压缩方法 | |
CN113346913A (zh) | 使用减量的出现次数的数据压缩 | |
US8754791B1 (en) | Entropy modifier and method | |
JP2005521324A (ja) | 損失のないデータの圧縮および圧縮解除方法および装置 | |
JPH05134847A (ja) | データ圧縮方法 |
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 |