CN110635807B - 一种数据编码方法及译码方法 - Google Patents

一种数据编码方法及译码方法 Download PDF

Info

Publication number
CN110635807B
CN110635807B CN201910717763.0A CN201910717763A CN110635807B CN 110635807 B CN110635807 B CN 110635807B CN 201910717763 A CN201910717763 A CN 201910717763A CN 110635807 B CN110635807 B CN 110635807B
Authority
CN
China
Prior art keywords
symbol
binary sequence
decoding
upsymbol
max
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
Application number
CN201910717763.0A
Other languages
English (en)
Other versions
CN110635807A (zh
Inventor
王杰林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Yaosheng Communication Technology Co ltd
Original Assignee
Hunan Yaosheng Communication Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan Yaosheng Communication Technology Co ltd filed Critical Hunan Yaosheng Communication Technology Co ltd
Priority to CN201910717763.0A priority Critical patent/CN110635807B/zh
Publication of CN110635807A publication Critical patent/CN110635807A/zh
Application granted granted Critical
Publication of CN110635807B publication Critical patent/CN110635807B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种数据编码方法及译码方法,包括计算二进制序列中符号x的归一化概率p(x)以及非归一化概率
Figure DDA0002156048960000011
其次设定系数r使得
Figure DDA0002156048960000012
以及非归一化概率模型的分布函数F(x,r)=rF(x),然后设定R0=H0=1、L0=0,得出第i位符号x的算术编码公式为Ri=Ri‑1rp(x)、Li=Li‑1+Ri‑1F(x‑1,r)以及Hi=Li+Ri,最后得到系数r的最大阈值
Figure DDA0002156048960000013
并在(0,rmax]范围内对系数r进行取值及添加密码信息;利用本发明的编码译码技术能使得加密后数据同时具备无损压缩、加密和检错等功能,避免功能单一;同时本发明的应用范围十分广泛,特别当应用在芯片和系统底层中时,具有极大的节能降耗的作用。

Description

一种数据编码方法及译码方法
技术领域
本发明涉及数据通信技术领域,特别涉及一种数据编码方法及译码方法。
背景技术
随着数据通信技术的快速发展,保障数据通信安全的编码译码技术也得到了快速发展;但目前的编码译码技术,还存在着功能单一的问题,例如部分目前编码译码技术仅实现了加密功能或者仅实现检错功能,又例如部分目前编码译码技术仅实现了无损压缩的功能而导致加密效果较差。当功能单一的编码译码技术应用在芯片和系统底层时,无法在保持优良加密效果的同时又能降低能耗。
发明内容
本发明的目的在于至少解决现有技术中存在的技术问题之一,提供了一种数据编码方法及译码方法。
本发明的第一方面,提供了一种数据编码方法,包括以下步骤:
获取待编码的二进制序列中符号x的个数cx、归一化概率p(x)以及非归一化概率
Figure BDA0002156048940000011
设定在任意时刻均有系数r使得
Figure BDA0002156048940000012
获取所述符号x的归一化概率模型的分布函数F(x)以及非归一化概率模型的分布函数F(x,r),并在任意时刻均有F(x,r)=rF(x);
设定R0=H0=1、L0=0,所述二进制序列中第i位符号x的算术编码公式为Ri=Ri- 1rp(x)、Li=Li-1+Ri-1F(x-1,r)以及Hi=Li+Ri,所述R0、H0以及L0分别为算术编码公式的计算变量Ri、Hi以及Li的初始值;所述i为循环变量;
设定rmax为所述系数r的最大阈值,
Figure BDA0002156048940000013
将x=0代入至rmax中得到
Figure BDA0002156048940000014
对所述系数r进行加密处理并使得r∈(0,rmax];所述加密处理具体包括保留rmax的小数点后k位,并在小数点后k+1位开始添加密码信息;
设定所述二进制序列的长度为Len以及设定编码后Li的值为V;当所述二进制序列中的第i位符号为符号0时,则将x=0代入算术编码公式得到Ri=Ri-1rp(0)以及Li=Li-1+Ri- 1F(0-1,r);当所述二进制序列中的第i位符号为符号1时,则将x=1代入算术编码公式得到Ri=Ri-1rp(1)以及Li=Li-1+Ri-1F(1-1,r);直至第i位符号满足i>Len时,编码完成,最终输出V、c0以及c1
根据本发明第一方面所述的一种数据编码方法,还包括:对所述二进制序列进行预处理,所述预处理包括在所述二进制序列中的每一个符号1后面添加至少一个符号0;或者包括在所述二进制序列中的每一个符号0后面添加至少一个符号1,并将所述二进制序列中的所有符号进行翻转。
本发明的第二方面,提供了一种数据译码方法,包括以下步骤:
获取待译码的二进制序列中符号x的个数cx、归一化概率p(x)以及V,所述V为所述二进制序列在编码时Li的值;
设定i=1、R0=H0=1、L0=0、Len以及upSymbol,所述R0、H0以及L0分别为算术编码公式Ri=Ri-1rp(x)、Li=Li-1+Ri-1F(x-1,r)以及Hi=Li+Ri中的计算变量Ri、Hi以及Li的初始值;所述Len为所述二进制序列的长度;所述upSymbol为所述二进制序列当前译码输出的符号,并设定upSymbol的初始值为0;所述i为循环变量;
将x=0代入公式
Figure BDA0002156048940000021
中,得到系数r的最大阈值rmax,对rmax进行解密处理,还原出系数r;所述解密处理具体包括从rmax的小数点后k+1位开始,输入密码信息还原出系数r;
将x=0代入算术编码公式得到Ri=Ri-1rp(0)、Li=Li-1+Ri-1F(0-1,r)以及Hi=Li+Ri,得出所述二进制序列中第i位符号0的区间上标值
Figure BDA0002156048940000022
Figure BDA0002156048940000023
Figure BDA0002156048940000024
时,则upSymbol=0;当
Figure BDA0002156048940000025
时,则upSymbol=1;依次译码直至所述二进制序列中第i位符号满足i>Len后,译码完成。
根据本发明第二方面所述的一种数据译码方法,还包括:若所述待译码的二进制序列在编码的过程中已对每一个符号1后面添加至少一个符号0时,则将x=0代入算术编码公式得到Ri=Ri-1rp(0)、Li=Li-1+Ri-1F(0-1,r)以及Hi=Li+Ri,得出所述二进制序列中第i位符号0的区间上标值
Figure BDA0002156048940000031
所述
Figure BDA0002156048940000032
Figure BDA0002156048940000033
时,则upSymbol=0;当
Figure BDA0002156048940000034
时,若upSymbol=1,则译码错误;若upSymbol=0,则输出符号1并记录upSymbol=1;依次译码直至所述二进制序列中第i位符号满足i>Len后,删除每个符号1后面的添加的符号0。
本发明的第三方面,提供了一种数据编码装置,包括:编码信息获取单元、第一编码单元以及第二编码单元;
所述编码信息获取单元用于获取待编码的二进制序列中符号x的个数cx、归一化概率p(x)以及非归一化概率
Figure BDA0002156048940000039
设定在任意时刻均有系数r使得
Figure BDA0002156048940000035
所述编码信息获取单元还用于获取所述符号x的归一化概率模型的分布函数F(x)以及非归一化概率模型的分布函数F(x,r),并在任意时刻均有F(x,r)=rF(x);
所述第一编码单元用于设定R0=H0=1、L0=0,所述二进制序列中第i位符号x的算术编码公式为Ri=Ri-1rp(x)、Li=Li-1+Ri-1F(x-1,r)以及Hi=Li+Ri,所述R0、H0以及L0分别为算术编码公式的计算变量Ri、Hi以及Li的初始值;所述i为循环变量;
所述第一编码单元还用于设定rmax为所述系数r的最大阈值,
Figure BDA0002156048940000036
Figure BDA0002156048940000037
将x=0代入至rmax中得到
Figure BDA0002156048940000038
对所述系数r进行加密处理并使得r∈(0,rmax];所述加密处理具体包括保留rmax的小数点后k位,并在小数点后k+1位开始添加密码信息;
所述第二编码单元用于设定所述二进制序列的长度为Len以及设定编码后Li的值为V;当所述二进制序列中的第i位符号为符号0时,则将x=0代入算术编码公式得到Ri=Ri-1rp(0)以及Li=Li-1+Ri-1F(0-1,r);当所述二进制序列中的第i位符号为符号1时,则将x=1代入算术编码公式得到Ri=Ri-1rp(1)以及Li=Li-1+Ri-1F(1-1,r);直至第i位符号满足i>Len时,编码完成,最终输出V、c0以及c1
根据本发明的第三方面所述的一种数据编码装置,所述第一编码单元还用于对所述二进制序列进行预处理,所述预处理包括在所述二进制序列中的每一个符号1后面添加至少一个符号0;或者包括在所述二进制序列中的每一个符号0后面添加至少一个符号1,并将所述二进制序列中的所有符号进行翻转。
本发明的第四方面,提供了一种数据译码装置,包括:译码信息获取单元、第一译码单元以及第二译码单元;
所述译码信息获取单元用于获取待译码的二进制序列中符号x的个数cx、归一化概率p(x)以及V,所述V为所述二进制序列在编码时Li的值;
所述第一译码单元用于设定i=1、R0=H0=1、L0=0、Len以及upSymbol,所述R0、H0以及L0分别为算术编码公式Ri=Ri-1rp(x)、Li=Li-1+Ri-1F(x-1,r)以及Hi=Li+Ri中的计算变量Ri、Hi以及Li的初始值;所述Len为所述二进制序列的长度;所述upSymbol为所述二进制序列当前译码输出的符号,并设定upSymbol的初始值为0;所述i为循环变量;
所述第一译码单元还用于将x=0代入公式
Figure BDA0002156048940000041
中,得到系数r的最大阈值rmax,对rmax进行解密处理,还原出系数r;所述解密处理具体包括从rmax的小数点后k+1位开始,输入密码信息还原出系数r;
所述第二译码单元用于将x=0代入算术编码公式得到Ri=Ri-1rp(0)、Li=Li-1+Ri- 1F(0-1,r)以及Hi=Li+Ri,得出所述二进制序列中第i位符号0的区间上标值
Figure BDA0002156048940000042
Figure BDA0002156048940000043
时,则upSymbol=0;当
Figure BDA0002156048940000044
时,则upSymbol=1;依次译码直至所述二进制序列中第i位符号满足i>Len后,译码完成。
根据本发明第四方面所述的一种数据译码装置,
所述第二译码单元还用于若所述待译码的二进制序列在编码的过程中已对每一个符号1后面添加至少一个符号0时,则将x=0代入算术编码公式得到Ri=Ri-1rp(0)、Li=Li-1+Ri-1F(0-1,r)以及Hi=Li+Ri,得出所述二进制序列中第i位符号0的区间上标值
Figure BDA0002156048940000045
所述
Figure BDA0002156048940000046
Figure BDA0002156048940000047
时,则upSymbol=0;当
Figure BDA0002156048940000048
时,若upSymbol=1,则译码错误;若upSymbol=0,则输出符号1并记录upSymbol=1;依次译码直至所述二进制序列中第i位符号满足i>Len后,删除每个符号1后面的添加的符号0。
本发明的第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如本发明第一方面所述的一种数据编码方法和/或执行如本发明第二方面所述的一种数据译码方法。
本发明提供的一种数据编码方法及译码方法,至少具有如下有益效果:
(1)本发明通过设定系数r作用在二进制序列上,使得二进制的非归一化概率模型以及归一化概率模型均可达到实际的熵极限,实现二进制序列编码译码的无损压缩;同时r中也包含密码信息,提高了加密后强行破解的难度;
(2)本发明的应用广泛,特别是应用在芯片和系统底层时,具有极大的节能降耗的作用;
(3)在本发明中还可以对二进制序列进行预处理,在编码时,在每一个符号1后面添加至少一个符号0,在译码时,当二进制序列译码出连续的符号1后,说明译码错误;使得编码之后的二进制序列具备检错功能,从而实现无损压缩、加密以及检错功能的结合。
附图说明
下面结合附图和实施例对本发明进一步地说明;
图1为本发明实施例所提供的算术编码过程的部分结构示意图;
图2为本发明实施例所提供的一种数据编码方法的具体流程示意图;
图3为本发明实施例所提供的一种数据译码方法的具体流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
以下先对本发明中的算术编码公式进行说明:
可以理解的是,本发明可作用于离散随机序列当中,优选为二进制序列进行描述。设定二进制序列的符号x的归一化概率p(x)以及非归一化概率
Figure BDA0002156048940000051
且在任意时刻均有正实数r作用于p(x)上得到下式:
Figure BDA0002156048940000061
于是,在任意时刻所有变量的概率之和均有如下:
Figure BDA0002156048940000062
当r=1时,则
Figure BDA0002156048940000063
Figure BDA0002156048940000064
设定符号x的归一化概率模型的分布函数为F(x)以及非归一化概率模型的分布函数为F(x,r),则计算出下式:
Figure BDA0002156048940000065
设定R0=1,L0=1,二进制序列中第i位符号x的算术编码公式如下:
Figure BDA0002156048940000066
Li=Li-1+Ri-1F(x-1,r)(1-5)
Figure BDA0002156048940000067
在任意时刻下,当系数r=1时,则非归一化概率模型为标准模型即为归一化概率模型,
Figure BDA0002156048940000068
当系数0<r<1时,则非归一化概率模型为收缩模型;当系数r>1时,则非归一化概率模型为扩张模型。在本领域中,对于一个离散随机过程,概率在时序上是可以发生改变的。以标准模型为基础,收缩模型使得时序状态概率变小;扩张模型使得时序状态概率变大。
设定二进制序列中的符号0的个数为c0,符号1的个数c1,且二进制序列中每个符号1被一个符号0隔开;统计二进制序列中符号0和符号1的概率分别为
Figure BDA0002156048940000069
Figure BDA00021560489400000610
在去除二进制序列每一个符号1后面的符号0之后,再统计符号0和符号1的概率分别为
Figure BDA00021560489400000611
Figure BDA00021560489400000612
设定去除符号0后,当二进制序列不再存在任何规律,且
Figure BDA00021560489400000613
时,则有
Figure BDA00021560489400000614
根据公式(1-6)可得该二进制序列的归一化概率模型的信息熵H(X)为:
H(X)=-p′(0)log2 p’(0)-p’(1)log2 p’(1)=1bit(1-7)
根据公式(1-7)显然可知,归一化概率模型经压缩后的二进制长度是原二进制长度的
Figure BDA0002156048940000071
可无损译码,即原二进制序列的实际信息熵为
Figure BDA0002156048940000072
而非归一化概率模型的信息熵H(X,r)为:
Figure BDA0002156048940000073
其中
Figure BDA0002156048940000074
在此时若
Figure BDA0002156048940000075
时,则认为归一化概率模型与非归一化概率模型的无损压缩均可达到实际的熵极限,并认为两种概率模型是等效的。
下面证明归一化概率模型无损编译码时
Figure BDA0002156048940000076
参照图1,图1提供了一种设定二进制序列中子串010起始于i+1时刻并使用
Figure BDA0002156048940000077
进行算术编码的过程,当Hi+3>Hi+1时,因区间[Hi+1,Hi+3)∈[Hi+1,Hi+1+Ri),并且[Hi+1,Hi+1+Ri)与符号1对应,所以第i+1个符号0可能被错误译码为符号1。当Hi+3≤Hi+1时,则[Li+3,Hi+3)∈[Li+1,Hi+1)。如图1中[Li+1,Hi+1)与符号0唯一对应,所以第一个符号0被Li+3正确译码。
Figure BDA0002156048940000078
由Hi+3≤Hi+1得出下式:
Figure BDA0002156048940000079
根据公式(1-9),设
Figure BDA00021560489400000710
Figure BDA00021560489400000711
此时
Figure BDA00021560489400000712
Figure BDA00021560489400000713
Figure BDA00021560489400000714
代入公式(1-8)得
Figure BDA00021560489400000715
Figure BDA00021560489400000716
使得非归一化概率模型的无损压缩达到实际的熵极限。
Figure BDA00021560489400000717
时,根据公式(1-4)(1-5)(1-6)有
Figure BDA00021560489400000718
若能证明Li+4<Hi+3&Li+4<Hi+2&Li+4<Hi+1&Li+4<Hi,则由归纳法可得Li<Hi&Li<Hi-1&…&Li≤H1,于是可通过Li无损译码。证明过程如下:
因为Hi=Li+Ri
Figure BDA00021560489400000719
Figure BDA00021560489400000720
若第i+4位符号为1,
Figure BDA0002156048940000081
于是
Figure BDA0002156048940000082
若第i+4位符号为0,则
Figure BDA0002156048940000083
所以Li+4<Hi+3&Li+4<Hi+2&Li+4<Hi+1&Li+4<Hi成立;于是当
Figure BDA0002156048940000084
时可以无损译码,且
Figure BDA0002156048940000085
当二进制序列中连续出现两个符号1时,根据图1的分析,因
Figure BDA0002156048940000086
Figure BDA0002156048940000087
使得起始于i+1时刻的子串0110中Hi+4>Hi+1,区间[Li+4,Hi+4)不是唯一对应第i+1位符号,即第i+1位符号可能被译码为0或1,所以无法准确译码。
Figure BDA0002156048940000088
代入公式(1-9)中可得出下式:
r2p(1)p(0)+rp(0)≤1(1-10)
设定ax2+bx+c=0,其中a=p(1)p(0),b=p(0),c=-1,且x>0,满足公式(1-10)的正实数根为:
Figure BDA0002156048940000089
因为p(1)=1-p(0),所以
Figure BDA00021560489400000810
令rmax为r的最大阈值,则
Figure BDA00021560489400000811
当系数r大于rmax时,即二进制序列在编码译码的过程中是有损的,因此系数r可以在(0,rmax]的范围内任意取值,均能实现无损压缩。
因此根据上述结论,可得出的一种数据编码的方法,具体如下:获取待编码的二进制序列中符号x的个数cx、归一化概率p(x)以及非归一化概率
Figure BDA00021560489400000813
设定在任意时刻均有系数r使得
Figure BDA00021560489400000812
获取符号x的归一化概率模型的分布函数F(x)以及非归一化概率模型的分布函数F(x,r),并在任意时刻均有F(x,r)=rF(x);
设定R0=H0=1、L0=0,二进制序列中第i位符号x的算术编码公式为Ri=Ri-1rp(x)、Li=Li-1+Ri-1F(x-1,r)以及Hi=Li+Ri,R0、H0以及L0分别为算术编码公式的计算变量Ri、Hi以及Li的初始值;i为循环变量;
设定rmax为系数r的最大阈值,
Figure BDA0002156048940000091
将x=0代入至rmax中得到
Figure BDA0002156048940000092
对系数r进行加密处理并使得r∈(0,rmax];加密处理具体包括保留rmax的小数点后k位,并在小数点后k+1位开始添加密码信息;
设定二进制序列的长度为Len以及设定编码后Li的值为V;当二进制序列中的第i位符号为符号0时,则将x=0代入算术编码公式得到Ri=Ri-1rp(0)以及Li=Li-1+Ri-1F(0-1,r);当二进制序列中的第i位符号为符号1时,则将x=1代入算术编码公式得到Ri=Ri-1rp(1)以及Li=Li-1+Ri-1F(1-1,r);直至第i位符号满足i>Len时,编码完成,最终输出V、c0以及c1
同时根据上述结论,可得出的一种数据译码的方法,具体如下:获取待译码的二进制序列中符号x的个数cx、归一化概率p(x)以及V,V为二进制序列在编码时Li的值;
设定i=1、R0=H0=1、L0=0、Len以及upSymbol,R0、H0以及L0分别为算术编码公式Ri=Ri-1rp(x)、Li=Li-1+Ri-1F(x-1,r)以及Hi=Li+Ri中的计算变量Ri、Hi以及Li的初始值;Len为二进制序列的长度;upSymbol为二进制序列当前译码输出的符号,并设定upSymbol的初始值为0;i为循环变量;
将x=0代入公式
Figure BDA0002156048940000093
中,得到系数r的最大阈值rmax,对rmax进行解密处理,还原出系数r;解密处理具体包括从rmax的小数点后k+1位开始,输入密码信息还原出系数r;
将x=0代入算术编码公式得到Ri=Ri-1rp(0)、Li=Li-1+Ri-1F(0-1,r)以及Hi=Li+Ri,得出二进制序列中第i位符号0的区间上标值
Figure BDA0002156048940000094
Figure BDA0002156048940000095
Figure BDA0002156048940000096
时,则upSymbol=0;当
Figure BDA0002156048940000097
时,则upSymbol=1;依次译码直至二进制序列中第i位符号满足i>Len后,译码完成。
例如:以一个
Figure BDA0002156048940000098
的二进制序列的前29位符号为例,编码译码结果如下表1所示:
Figure BDA0002156048940000101
表1
其中系数r的取值为1.333333333333,因此得到编码后的结果为第29位符号的V=L29=0.211261480288;并根据解码V=0.211261480288进行译码,得到表1中译码结果。
参照图2,本发明的另一个实施例,提供一种数据编码方法,具体步骤如下:
S101、统计二进制序列中符号0的个数c0和符号1的个数c1,当c0≥c1时,输出标识sign=0,并进入步骤S102;当c0<c1时,每个符号取非,并且将c0和c1的值互换,输出标识sign=1,进入步骤S102;
S102、统计二进制序列中符号0和符号1的概率
Figure BDA0002156048940000111
Figure BDA0002156048940000112
并在每个符号1的后面添加一个符号0;
S103、将p(0)代入公式
Figure BDA0002156048940000113
中,得出rmax的值,保留rmax的小数点后第k位,从rmax小数点后k+1位开始增加密码信息得出r,确保r≤rmax,最后得出r,p(0),p(1)的值;
S104、设定R0=1,L0=0,i=1,V=0,将二进制序列的长度定为Len,其中V为当前编码后Li的值;
S105、编码第i位符号,若第i位符号为符号0,则进入步骤S106;若第i位符号为符号1,则跳转至步骤S107;
S106、将x=0代入公式Ri=Ri-1rp(x)以及公式Li=Li-1+Ri-1F(x-1,r)中以计算Ri和Li的值,Ri=Ri-1rp(0),因F(-1)=0,得出Li=Li-1,并跳转至步骤S108;
S107、将x=1代入公式Ri=Ri-1rp(x)以及公式Li=Li-1+Ri-1F(x-1,r)中以计算Ri和Li的值,Ri=Ri-1rp(1),因F(0)=rp(0),得出Li=Li-1+Ri-1rp(0),并进入步骤S108;
S108、令i=i+1,若i≤Len,则跳转至步骤S105;若i>Len,V=LLen,结束编码,最终输出V,c0,c1
参照图3,进一步,提供一种数据译码方法,具体步骤如下:
S201、获取V,c0和c1,计算出二进制序列中符号0和符号1的概率
Figure BDA0002156048940000114
Figure BDA0002156048940000115
R0=1,L0=0,i=1;设定upSymbol来记录刚译码出的符号,令初始upSymbol=0,Len=c0+2c1
S202、将p(0)代入公式
Figure BDA0002156048940000116
得出rmax
S203、输入密码信息,从rmax小数点后第k+1位开始,替换成密码信息,得到r;
S204、将x=0代入公式Ri=Ri-1rp(x)、Li=Li-1+Ri-1F(x-1,r)以及Hi=Li+Ri中,计算出第i位符号0的区间上标值:
Figure BDA0002156048940000121
S205、判断V与
Figure BDA0002156048940000122
的大小,若
Figure BDA0002156048940000123
输出符号0,upSymbol=0;若
Figure BDA0002156048940000124
若upSymbol=1,跳转至步骤S208;若upSymbol=0,输出符号1,upSymbol=1,进入步骤S206;
S206、令i=i+1,若i≤Len,则跳转至步骤S204;若i>Len,进入步骤S207;
S207、删除每个符号1后面的一个符号0;若sign=1,将符号取非,译码完成;
S208、密码错误或编码后文件传输出现错误,结束译码。
可以理解的是,在本实施例中,添加的密码信息可以选择在rmax小数点后k+1位开始增加md5密码信息,编码时输入md5密码信息即可还原;还可以选择SHA-1密码信息等,具体可根据实际情况选择添加合适的密码信息。可以理解的是,在每个符号1的后面添加一个符号0是对二进制序列的预处理,预处理还可以包括在每一个符号0后面添加至少一个符号1,并将二进制序列中的所有符号进行翻转,均能实现检错的目的,此处不再细述;本实施例优选在每一个符号0后面添加至少一个符号1。
在步骤S101用于确保二进制序列中符号0的数量大于或等于符号1的数量;步骤S102用于使二进制序列存在一种规律,即每一个符号被一个符号0隔开或者被多个符号0隔开,优选被一个符号0隔开;即可在译码时判断出现连续两个以上的符号1的情况为错误译码,达到检错的目的;步骤S103中,对r进行取值的过程中添加密码信息,使得在译码时,必须输入r的密码信息才能正确译码,提高了加密效果,使用本方法的编码数据还具有无损压缩的效果。在步骤S201中,在信道中可以无误的获取到V,c0和c1的值;在步骤S208中,当连续译码出两个符号1时,则说明编码后文件传输出现了错误,因此结束译码。
综上,在二进制序列编码译码过程中,因r含密码信息,且r必须正确才能按序无损译码,所以未知密码信息的情况下无法译码;由于r的取值范围在(0,rmax]上,能使得数据编码后具备无损压缩的优点,实现了数据无损压缩和加密功能的结合,当运用在芯片和系统底层中时,具有节能的优点;同时在编码时还对二进制序列进行了预处理,即每一个符号被一个符号0隔开,使得在译码时具有检错功能,实现了数据无损压缩、加密以及检错功能的结合。
进一步,本发明的另一个实施例,提供了一种数据编码装置,包括编码信息获取单元、第一编码单元以及第二编码单元;
编码信息获取单元用于获取待编码的二进制序列中符号x的个数cx、归一化概率p(x)以及非归一化概率
Figure BDA0002156048940000131
设定在任意时刻均有系数r使得
Figure BDA0002156048940000132
还用于获取符号x的归一化概率模型的分布函数F(x)以及非归一化概率模型的分布函数F(x,r),并在任意时刻均有F(x,r)=rF(x);
第一编码单元用于设定R0=H0=1、L0=0,二进制序列中第i位符号x的算术编码公式为Ri=Ri-1rp(x)、Li=Li-1+Ri-1F(x-1,r)以及Hi=Li+Ri,R0、H0以及L0分别为算术编码公式的计算变量Ri、Hi以及Li的初始值;i为循环变量;还用于设定rmax为系数r的最大阈值,
Figure BDA0002156048940000133
将x=0代入至rmax中得到
Figure BDA0002156048940000134
对系数r进行加密处理并使得r∈(0,rmax];加密处理具体包括保留rmax的小数点后k位,并在小数点后k+1位开始添加密码信息;
第二编码单元用于设定二进制序列的长度为Len以及设定编码后Li的值为V;当二进制序列中的第i位符号为符号0时,则将x=0代入算术编码公式得到Ri=Ri-1rp(0)以及Li=Li-1+Ri-1F(0-1,r);当二进制序列中的第i位符号为符号1时,则将x=1代入算术编码公式得到Ri=Ri-1rp(1)以及Li=Li-1+Ri-1F(1-1,r);直至第i位符号满足i>Len时,编码完成,最终输出V、c0以及c1
进一步,第一编码单元还用于对二进制序列进行预处理,预处理包括在二进制序列中的每一个符号1后面添加至少一个符号0;或者包括在二进制序列中的每一个符号0后面添加至少一个符号1,并将二进制序列中的所有符号进行翻转。
进一步,本发明的另一个实施例,提供了一种数据解码装置,包括译码信息获取单元、第一译码单元以及第二译码单元;
译码信息获取单元用于获取待译码的二进制序列中符号x的个数cx、归一化概率p(x)以及V,V为二进制序列在编码时Li的值;
第一译码单元用于设定i=1、R0=H0=1、L0=0、Len以及upSymbol,R0、H0以及L0分别为算术编码公式Ri=Ri-1rp(x)、Li=Li-1+Ri-1F(x-1,r)以及Hi=Li+Ri中的计算变量Ri、Hi以及Li的初始值;Len为二进制序列的长度;upSymbol为二进制序列当前译码输出的符号,并设定upSymbol的初始值为0;i为循环变量;还用于将x=0代入公式
Figure BDA0002156048940000141
中,得到系数r的最大阈值rmax,对rmax进行解密处理,还原出系数r;解密处理具体包括从rmax的小数点后k+1位开始,输入密码信息还原出系数r;
第二译码单元用于将x=0代入算术编码公式得到Ri=Ri-1rp(0)、Li=Li-1+Ri-1F(0-1,r)以及Hi=Li+Ri,得出二进制序列中第i位符号0的区间上标值
Figure BDA0002156048940000142
Figure BDA0002156048940000143
Figure BDA0002156048940000144
时,则upSymbol=0;当
Figure BDA0002156048940000145
时,则upSymbol=1;依次译码直至二进制序列中第i位符号满足i>Len后,译码完成。
进一步,第二译码单元还用于若待译码的二进制序列在编码的过程中已对每一个符号1后面添加至少一个符号0时,则将x=0代入算术编码公式得到Ri=Ri-1rp(0)、Li=Li-1+Ri-1F(0-1,r)以及Hi=Li+Ri,得出二进制序列中第i位符号0的区间上标值
Figure BDA0002156048940000146
Figure BDA0002156048940000147
Figure BDA0002156048940000148
时,则upSymbol=0;当
Figure BDA0002156048940000149
时,若upSymbol=1,则译码错误;若upSymbol=0,则输出符号1并记录upSymbol=1;依次译码直至二进制序列中第i位符号满足i>Len后,删除每个符号1后面的添加的符号0。
进一步,本发明的另一个实施例,提供了一种计算机可读存储介质,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行例如本发明上述实施例所述的一种数据编码方法以及一种数据解码方法,例如执行以上描述的图2中的方法步骤S101至S108,图3中的方法步骤S201至S208。
通过以上的实施方式的描述,本领域技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现。本领域技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,该程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述方法的实施例的流程。其中,该存储介质可为磁碟、光盘、只读存储记忆体(Read Only Memory,ROM)或随机存储记忆体(RandomAccess Memory,RAM)等。
以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (9)

1.一种数据编码方法,其特征在于,包括以下步骤:
获取待编码的二进制序列中符号x的个数cx、归一化概率p(x)以及非归一化概率
Figure FDA0002156048930000011
设定在任意时刻均有系数r使得
Figure FDA0002156048930000012
获取所述符号x的归一化概率模型的分布函数F(x)以及非归一化概率模型的分布函数F(x,r),并在任意时刻均有F(x,r)=rF(x);
设定R0=H0=1、L0=0,所述二进制序列中第i位符号x的算术编码公式为Ri=Ri-1rp(x)、Li=Li-1+Ri-1F(x-1,r)以及Hi=Li+Ri,所述R0、H0以及L0分别为算术编码公式的计算变量Ri、Hi以及Li的初始值;所述i为循环变量;
设定rmax为所述系数r的最大阈值,
Figure FDA0002156048930000013
将x=0代入至rmax中得到
Figure FDA0002156048930000014
对所述系数r进行加密处理并使得r∈(0,rmax];所述加密处理具体包括保留rmax的小数点后k位,并在小数点后k+1位开始添加密码信息;
设定所述二进制序列的长度为Len以及设定编码后Li的值为V;当所述二进制序列中的第i位符号为符号0时,则将x=0代入算术编码公式得到Ri=Ri-1rp(0)以及Li=Li-1+Ri-1F(0-1,r);当所述二进制序列中的第i位符号为符号1时,则将x=1代入算术编码公式得到Ri=Ri-1rp(1)以及Li=Li-1+Ri-1F(1-1,r);直至第i位符号满足i>Len时,编码完成,最终输出V、c0以及c1
2.根据权利要求1所述的一种数据编码方法,其特征在于,还包括:对所述二进制序列进行预处理,所述预处理包括在所述二进制序列中的每一个符号1后面添加至少一个符号0;或者包括在所述二进制序列中的每一个符号0后面添加至少一个符号1,并将所述二进制序列中的所有符号进行翻转。
3.一种数据译码方法,其特征在于,包括以下步骤:
获取待译码的二进制序列中符号x的个数cx、归一化概率p(x)以及V,所述V为所述二进制序列在编码时Li的值;
设定i=1、R0=H0=1、L0=0、Len以及upSymbol,所述R0、H0以及L0分别为算术编码公式Ri=Ri-1rp(x)、Li=Li-1+Ri-1F(x-1,r)以及Hi=Li+Ri中的计算变量Ri、Hi以及Li的初始值;所述Len为所述二进制序列的长度;所述upSymbol为所述二进制序列当前译码输出的符号,并设定upSymbol的初始值为0;所述i为循环变量;
将x=0代入公式
Figure FDA0002156048930000021
中,得到系数r的最大阈值rmax,对rmax进行解密处理,还原出系数r;所述解密处理具体包括从rmax的小数点后k+1位开始,输入密码信息还原出系数r;
将x=0代入算术编码公式得到Ri=Ri-1rp(0)、Li=Li-1+Ri-1F(0-1,r)以及Hi=Li+Ri,得出所述二进制序列中第i位符号0的区间上标值
Figure FDA0002156048930000022
Figure FDA0002156048930000023
Figure FDA0002156048930000024
时,则upSymbol=0;当
Figure FDA0002156048930000025
时,则upSymbol=1;依次译码直至所述二进制序列中第i位符号满足i>Len后,译码完成。
4.根据权利要求3所述的一种数据译码方法,其特征在于,还包括:若所述待译码的二进制序列在编码的过程中已对每一个符号1后面添加至少一个符号0时,则将x=0代入算术编码公式得到Ri=Ri-1rp(0)、Li=Li-1+Ri-1F(0-1,r)以及Hi=Li+Ri,得出所述二进制序列中第i位符号0的区间上标值
Figure FDA0002156048930000026
所述
Figure FDA0002156048930000027
Figure FDA0002156048930000028
时,则upSymbol=0;当
Figure FDA0002156048930000029
时,若upSymbol=1,则译码错误;若upSymbol=0,则输出符号1并记录upSymbol=1;依次译码直至所述二进制序列中第i位符号满足i>Len后,删除每个符号1后面的添加的符号0。
5.一种数据编码装置,其特征在于,包括:编码信息获取单元、第一编码单元以及第二编码单元;
所述编码信息获取单元用于获取待编码的二进制序列中符号x的个数cx、归一化概率p(x)以及非归一化概率
Figure FDA00021560489300000210
设定在任意时刻均有系数r使得
Figure FDA00021560489300000211
所述编码信息获取单元还用于获取所述符号x的归一化概率模型的分布函数F(x)以及非归一化概率模型的分布函数F(x,r),并在任意时刻均有F(x,r)=rF(x);
所述第一编码单元用于设定R0=H0=1、L0=0,所述二进制序列中第i位符号x的算术编码公式为Ri=Ri-1rp(x)、Li=Li-1+Ri-1F(x-1,r)以及Hi=Li+Ri,所述R0、H0以及L0分别为算术编码公式的计算变量Ri、Hi以及Li的初始值;所述i为循环变量;
所述第一编码单元还用于设定rmax为所述系数r的最大阈值,
Figure FDA0002156048930000031
Figure FDA0002156048930000032
将x=0代入至rmax中得到
Figure FDA0002156048930000033
对所述系数r进行加密处理并使得r∈(0,rmax];所述加密处理具体包括保留rmax的小数点后k位,并在小数点后k+1位开始添加密码信息;
所述第二编码单元用于设定所述二进制序列的长度为Len以及设定编码后Li的值为V;当所述二进制序列中的第i位符号为符号0时,则将x=0代入算术编码公式得到Ri=Ri-1rp(0)以及Li=Li-1+Ri-1F(0-1,r);当所述二进制序列中的第i位符号为符号1时,则将x=1代入算术编码公式得到Ri=Ri-1rp(1)以及Li=Li-1+Ri-1F(1-1,r);直至第i位符号满足i>Len时,编码完成,最终输出V、c0以及c1
6.根据权利要求5所述的一种数据编码装置,其特征在于,所述第一编码单元还用于对所述二进制序列进行预处理,所述预处理包括在所述二进制序列中的每一个符号1后面添加至少一个符号0;或者包括在所述二进制序列中的每一个符号0后面添加至少一个符号1,并将所述二进制序列中的所有符号进行翻转。
7.一种数据译码装置,其特征在于,包括:译码信息获取单元、第一译码单元以及第二译码单元;
所述译码信息获取单元用于获取待译码的二进制序列中符号x的个数cx、归一化概率p(x)以及V,所述V为所述二进制序列在编码时Li的值;
所述第一译码单元用于设定i=1、R0=H0=1、L0=0、Len以及upSymbol,所述R0、H0以及L0分别为算术编码公式Ri=Ri-1rp(x)、Li=Li-1+Ri-1F(x-1,r)以及Hi=Li+Ri中的计算变量Ri、Hi以及Li的初始值;所述Len为所述二进制序列的长度;所述upSymbol为所述二进制序列当前译码输出的符号,并设定upSymbol的初始值为0;所述i为循环变量;
所述第一译码单元还用于将x=0代入公式
Figure FDA0002156048930000034
中,得到系数r的最大阈值rmax,对rmax进行解密处理,还原出系数r;所述解密处理具体包括从rmax的小数点后k+1位开始,输入密码信息还原出系数r;
所述第二译码单元用于将x=0代入算术编码公式得到Ri=Ri-1rp(0)、Li=Li-1+Ri-1F(0-1,r)以及Hi=Li+Ri,得出所述二进制序列中第i位符号0的区间上标值
Figure FDA0002156048930000041
Figure FDA0002156048930000042
Figure FDA0002156048930000043
时,则upSymbol=0;当
Figure FDA0002156048930000044
时,则upSymbol=1;依次译码直至所述二进制序列中第i位符号满足i>Len后,译码完成。
8.根据权利要求7所述的一种数据译码装置,其特征在于,所述第二译码单元还用于若所述待译码的二进制序列在编码的过程中已对每一个符号1后面添加至少一个符号0时,则将x=0代入算术编码公式得到Ri=Ri-1rp(0)、Li=Li-1+Ri-1F(0-1,r)以及Hi=Li+Ri,得出所述二进制序列中第i位符号0的区间上标值
Figure FDA0002156048930000045
所述
Figure FDA0002156048930000046
Figure FDA0002156048930000047
时,则upSymbol=0;当
Figure FDA0002156048930000048
时,若upSymbol=1,则译码错误;若upSymbol=0,则输出符号1并记录upSymbol=1;依次译码直至所述二进制序列中第i位符号满足i>Len后,删除每个符号1后面的添加的符号0。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1-2任一项所述的一种数据编码方法和/或执行如权利要求3-4任一项所述的一种数据译码方法。
CN201910717763.0A 2019-08-05 2019-08-05 一种数据编码方法及译码方法 Active CN110635807B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910717763.0A CN110635807B (zh) 2019-08-05 2019-08-05 一种数据编码方法及译码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910717763.0A CN110635807B (zh) 2019-08-05 2019-08-05 一种数据编码方法及译码方法

Publications (2)

Publication Number Publication Date
CN110635807A CN110635807A (zh) 2019-12-31
CN110635807B true CN110635807B (zh) 2022-10-21

Family

ID=68969017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910717763.0A Active CN110635807B (zh) 2019-08-05 2019-08-05 一种数据编码方法及译码方法

Country Status (1)

Country Link
CN (1) CN110635807B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111294058B (zh) * 2020-02-20 2020-11-24 湖南遥昇通信技术有限公司 一种信道编码和纠错译码方法、设备以及存储介质
CN111327641B (zh) * 2020-03-24 2022-05-17 湖南瑞利德信息科技有限公司 一种线性分段对称加密编译码方法
CN112821894A (zh) * 2020-12-28 2021-05-18 湖南遥昇通信技术有限公司 一种基于加权概率模型的无损压缩方法和无损解压方法
CN113765621B (zh) * 2021-08-24 2023-10-20 湖南遥昇通信技术有限公司 基于云字符概率表的数据编码系统以及方法
CN113746599B (zh) * 2021-08-24 2024-03-22 湖南遥昇通信技术有限公司 编码方法、译码方法、终端、电子设备和存储介质
CN113922947B (zh) * 2021-09-18 2023-11-21 湖南遥昇通信技术有限公司 一种基于加权概率模型的自适应对称编码方法以及系统
CN113938273B (zh) * 2021-09-30 2024-02-13 湖南遥昇通信技术有限公司 可对抗量并行计算攻击的对称加密方法以及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1133512A (zh) * 1994-09-30 1996-10-16 株式会社理光 编码与解码数据的方法和装置
CN107507254A (zh) * 2017-08-18 2017-12-22 济南大学 基于算术编码的图像压缩加密方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1133512A (zh) * 1994-09-30 1996-10-16 株式会社理光 编码与解码数据的方法和装置
CN107507254A (zh) * 2017-08-18 2017-12-22 济南大学 基于算术编码的图像压缩加密方法

Also Published As

Publication number Publication date
CN110635807A (zh) 2019-12-31

Similar Documents

Publication Publication Date Title
CN110635807B (zh) 一种数据编码方法及译码方法
JP5315054B2 (ja) 生体認証テンプレートの安全な保護
WO2019153867A1 (zh) 二维码生成及识别
CN108768403B (zh) 基于lzw的无损数据压缩、解压方法及lzw编码器、解码器
US8375218B2 (en) Pre-processing biometric parameters before encoding and decoding
JP2017528070A (ja) 情報の暗号化及び復号化
US20090231096A1 (en) Processing Biometric Data in a Multidimensional Coordinate System
US20070174633A1 (en) Biometric Based User Authentication and Data Encryption
JP5288935B2 (ja) コード化および復号化前のバイオメトリックパラメータの前処理方法
US20110040982A1 (en) File encryption method
WO2010044100A1 (en) Lossless compression
CN107578452B (zh) 一种具有兼容格式和不变尺寸的jpeg图像加密方法
CN110021369B (zh) 基因测序数据压缩解压方法、系统及计算机可读介质
CN115296862B (zh) 一种基于数据编码的网络数据安全传输方法
CN113486369A (zh) 具有对称加密和无损压缩的编码方法、装置、设备及介质
Sendrier Encoding information into constant weight words
CN111478885A (zh) 一种非对称加解密方法、设备及存储介质
CN110798224A (zh) 一种压缩编码、检错及解码方法
CN113922947B (zh) 一种基于加权概率模型的自适应对称编码方法以及系统
US9176973B1 (en) Recursive-capable lossless compression mechanism
CN110852098B (zh) 一种数据修正方法及电子设备和存储介质
WO2022079466A1 (en) Data authentication for data compression
CN115935299A (zh) 授权控制方法、装置、计算机设备和存储介质
US9231924B2 (en) Gesture-initiated encryption using error correction coding
EP4100954A1 (en) Improved quality value compression framework in aligned sequencing data based on novel contexts

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20191223

Address after: 410600 10th Floor, Business Incubation Building, 001 Jinzhou North Road, Ningxiang High-tech Industrial Park, Changsha City, Hunan Province

Applicant after: Hunan Yaosheng Communication Technology Co.,Ltd.

Address before: 10 / F, business incubation building, No. 001, Jinzhou North Road, Ningxiang high tech Industrial Park, Changsha City, Hunan Province

Applicant before: HUNAN RUILIDE INFORMATION TECHNOLOGY Co.,Ltd.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant