数据处理方法与流程

文档序号:12271277阅读:208来源:国知局
数据处理方法与流程
本发明涉及数据处理领域,具体而言,涉及数据处理方法。
背景技术
:当前区间编码以及算术编码虽然能对数据进行一定程度的压缩,但是其压缩率并不高。技术实现要素:有鉴于此,本发明实施例的目的在于提供数据处理方法,以解决上述问题。第一方面,本发明实施例提供的一种数据处理方法,所述方法包括:获取当前待编码字符,根据初始统计模型,对当前待编码字符对应的初始编码空间进行划分,以获得下一待编码字符对应的初始编码空间;将下一待编码字符作为当前待编码字符,对所述初始统计模型进行更新,获得更新后的统计模型,根据更新后的统计模型,对当前待编码字符对应的初始编码空间进行划分,以获得下一待编码字符对应的初始编码空间,直到所述待编码数据中字符全部编码完毕,获得编码结果;根据第一系数,所述待编码数据中各个字符出现的频率,所述各个符号的累积频度以及初始编码空间的大小计算编码系数,所述符号的累积频度是指符号值小于所述符号的值的其它符号的频度之和;将所述编码系数,所述编码结果以及待编码数据长度作为编码输出;所述对当前待编码字符对应的初始编码空间进行划分,以获得下一待编码字符对应的初始编码空间,包括:计算所述当前待编码字符所在的第一子编码空间;对所述第一子编码空间的范围进行扩展,获取所述当前待编码字符所在的第二子编码空间;所述第二子编码空间为下一待编码字符的初始编码空间。进一步的,计算所述当前待编码字符所在的第一子编码空间;对所述第一子编码空间的范围进行扩展,获取所述待编码所在的第二子编码空间;所述第二子编码空间为下一待编码字符的初始编码空间,包括:计算所述当前待编码字符所在的第一子编码空间;对所述第一子编码空间的范围进行扩展,获取所述待编码所在的第二子编码空间;计算所述第二子编码空间的下限和所述第二子编码空间的上限转换为二进制数后,从高位到地位数值相同的个数;判断所述从高位到地位数值相同的个数是否为零;如果是,则将所述第二子编码空间的下限的最高位作为编码结果,并将所述第二子编码空间再次进行扩展,获得下一待编码字符的初始编码空间;如果否,则所述第二子编码空间为下一待编码字符的初始编码空间。第二方面,本发明实施例提供的一种数据处理方法,所述方法包括:获取编码输出,所述编码输出包括编码系数,编码结果以及待编码数据长度;根据所述编码系数以及所述编码结果,计算当前待解码数据;根据初始统计模型,计算出所述当前待解码数据对应的解码输出,更新待解码数据长度,将所述初始统计模型进行更新得到更新后的统计模型;将下一个待解码数据作为当前待解码数据,根据所述更新后的统计模型,计算出当前待解码数据对应的解码输出,更新待解码数据长度,更新所述更新后的统计模型,直到所述待解码数据长度为零,解码完成;所述计算出当前待解码数据对应的解码输出,包括:将当前初始解码空间划分为多个解码子空间,所述解码子空间分别对应不同的字符;计算当前待解码数据所在的子空间,将所述子空间对应的字符作为当前待解码数据对应的解码输出,将所述当前待解码数据所在的子空间作为所述当前初始解码空间。进一步的,在根据初始统计模型,计算出所述当前待解码数据对应的解码输出之后,所述方法还包括:将所述解码系数进行更新得到更新后的解码系数;在所述将下一个待解码数据作为当前待解码数据之前,所述方法还包括:根据所述更新后的解码系数以及所述当前待解码数据,计算下一个待解码数据;在将下一个待解码数据作为当前待解码数据,根据所述更新后的统计模型,计算出当前待解码数据对应的解码输出,更新待解码数据长度之后,所述方法还包括:更新所述更新后的解码系数。第三方面,本发明实施例提供的一种数据处理方法,所述方法包括:获取编码输出,所述编码输出包括编码系数,编码结果以及待编码数据长度;根据所述编码系数和初始解码空间的大小,计算出当前解码空间;根据初始统计模型,将所述当前解码空间划分为多个解码子空间,所述解码子空间分别对应不同的字符;计算所述待解码数据所在的子空间,将所述子空间对应的字符作为解码输出,将所述初始统计模型进行更新得到更新后的统计模型;将所述待解码数据所在的子空间作为所述当前初始解码空间,更新所述待编码数据长度,根据所述更新后的统计模型,,将所述当前初始解码空间划分为多个解码子空间,所述解码子空间分别对应不同的字符;计算所述待解码数据所在的子空间,将所述子空间对应的字符作为解码输出,直到所述待编码数据长度为零,解码结束。与现有技术相比,本发明实施例提供的数据处理方法,通过在编码时对编码子空间范围的改变,来改变编码输出,使得编码输出被压缩,并且,通过在编码过程,不断的更新统计模型,使得所述统计模型更能符号待编码数据的数据特点,因此能用更少的符合来代替待编码数据,因此压缩率进一步变大。为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1是本发明第一实施例提供的一种数据处理方法的流程图。图2是本发明第一实施例提供的一种数据处理方法的流程图。图3是本发明第二实施例提供的一种数据处理方法的流程图。图4是本发明第三实施例提供的一种数据处理方法的流程图。图5是本发明第四实施例提供的一种数据处理方法的流程图。图6是本发明第五实施例提供的一种数据处理方法的流程图。图7是本发明第一实施例提供的一种数据处理装置的功能模块示意图。图8是本发明第二实施例提供的一种数据处理装置的功能模块示意图。图9是本发明第三实施例提供的一种数据处理装置的功能模块示意图。具体实施方式下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。如图1所示,是数据处理终端的方框示意图。所述数据处理终端包括数据处理装置、存储器220、存储控制器230、处理器240。所述存储器220、存储控制器230、处理器240各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述数据处理装置包括至少一个可以软件或固件(firmware)的形式存储于所述存储器中或固化在所述服务器200的操作系统(operatingsystem,OS)中的软件功能模块。所述处理器240用于执行存储器220中存储的可执行模块,例如所述数据处理装置包括的软件功能模块或计算机程序。其中,存储器220可以是,但不限于,随机存取存储器(RandomAccessMemory,RAM),只读存储器(ReadOnlyMemory,ROM),可编程只读存储器(ProgrammableRead-OnlyMemory,PROM),可擦除只读存储器(ErasableProgrammableRead-OnlyMemory,EPROM),电可擦除只读存储器(ElectricErasableProgrammableRead-OnlyMemory,EEPROM)等。其中,存储器220用于存储程序,所述处理器240在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的服务器所执行的方法可以应用于处理器中,或者由处理器实现。处理器240可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。图2示出了本发明一实施例提供的一种数据处理方法的流程图,所述方法包括:步骤S301,获取当前待编码字符,根据初始统计模型,计算所述当前待编码字符所在的第一子编码空间;对所述第一子编码空间的范围进行扩展,获取所述当前待编码字符所在的第二子编码空间;所述第二子编码空间为下一待编码字符的初始编码空间。优选的,所述初始统计模型为所述待编码数据中各个字符出现的频度的统计模型。例如:定义S表示符号集合;LS表示S集合符号个数,若s=2,Ls=2,初始统计模型为:fk=1,k∈[0,Ls),则:f0=1,f1=1。可以理解的是,可以把结束符也作为符号算进所述符号集合中,即此时模型fk=1,k∈[0,Ls),Ls=3,s=3,在解码时,可以将解码出所述结束符作为标志来判断解码是否结束。其中,所述对所述第一子编码空间的范围进行扩展获取所述待编码所在的第二子编码空间,包括:将所述第一子编码空间的区间大小乘以第一系数得到所述第二子编码空间的区间大小,所述第二子编码空间的下限与所述第一子编码空间的下限一致,所述第二子编码空间的上限为所述第二子编码空间的下限加上所述第二子编码空间的区间大小。其中,下限是指所在编码空间的最小值,上限是指所在编码空间的最大值。优选的,所述第一系数为常数或者根据函数关系式计算的函数值。例如,假设所述第一系数为αn,其中,αn可以为常数,即αn的值不随划分区间的次数改变,或者αn=f(n),f为一种函数关系,即αn的值随着划分区间的次数改变,假设αn=1.5*n。可以理解的是,R′n=Rn*αn,其中R′n表示第n次区间划分后第二子编码空间的区间大小,Rn为表示第n次区间划分后第一子编码空间的区间大小。可以理解的是,对于αn为常数的而言,αn=αn-1时,αn是属于静态值,αn的增量即αn=α。公式变化如下:α′n<>αn时,αn是属于动态值,αn的增量可递增或递减,由函数f约定。直接使用通用公式:进行运算即可。假设αn=1.5,第一次划分后,若R1=10,R1’=R1*1.5=15,对于第二次划分后,若R1=2,R1’=R1*1.5=3。对于αn=1.5*n而言,第一次划分后,若R1=10,R1’=R1*1.5*n=15,对于第二次划分后,若R1=2,R1’=R1*1.5*n=6。步骤S302,将下一待编码字符作为当前待编码字符,对所述初始统计模型进行更新,获得更新后的统计模型,根据更新后的统计模型,对当前待编码字符对应的初始编码空间进行划分,以获得下一待编码字符对应的初始编码空间,直到所述待编码数据中字符全部编码完毕,获得编码结果;其中,所述对所述初始统计模型进行更新,获得更新后的统计模型,是指,在把当前待编码字符算在统计字符中,重新进行整体的统计,并得到更新后的统计模型。例如:初始统计模型为:f0=1,f1=1;即表示统计字符模型,字符0和字符1分别出现一次。假设当前待编码字符为0,则将当前待编码字符0计算在统计字符中,此时字符0出现2次,字符1出现1次,更新后的统计模型变为:f0=2,f1=1。其中,所述根据更新后的统计模型,对当前待编码字符对应的初始编码空间进行划分,以获得下一待编码字符对应的初始编码空间,包括:根据更新后的统计模型,计算所述当前待编码字符所在的第一子编码空间;对所述第一子编码空间的范围进行扩展,获取所述当前待编码字符所在的第二子编码空间;所述第二子编码空间为下一待编码字符的初始编码空间。优选的,所述直到所述待编码数据中字符全部编码完毕获得编码结果,包括:当所述待编码数据中最后一个字符编码完成后,将所述最后一个字符对应的第二编码子空间的下限作为编码结果。例如,假设所述待编码数据中最后一个字符编码完成后,所述最后一个字符对应的第二编码子空间为[R1,R2],则将R1的值作为整个待编码字符串的编码结果。步骤S303,根据第一系数,所述待编码数据中各个字符出现的频率,所述各个符号的累积频度以及初始编码空间的大小计算编码系数,所述符号的累积频度是指符号值小于所述符号的值的其它符号的频度之和;优选的,假设第一系数记为αi,所述待编码数据中各个字符出现的频率记为所述各个符号的累积频度记为所述初始编码空间的大小记为R0,待压缩数据的总长度记为Len,编码系数记为C,则:可以理解的是,从所述计算公式可以看出,所有的参数都是已知的。步骤S304,将所述编码系数,所述编码结果以及待编码数据长度作为编码输出。例如:假设对对字符串010001010010进行编码,定义S表示符号集合;LS表示S集合符号个数;那么每个符号出现的概率全部是按照进行计算,L当前区间的下限;H当前编码区间的上限;R为当前编码区间大小,其中R=H-L;Len表示待压缩数据的总长度。Rmax在初始编码空间中是一个正整数,在算术编码中是1。编码流程如下:初始化时,由于当前的字符串中只有0和1,所以S={0,1},那么LS=2。定义Rmax=1000000,可以理解的是,Rmax的值可以定义的相对大一些,此时初始编码空间为[0,Rmax],T0=LS,假设初始统计模型为:fk=1,k∈[0,LS)即f0=1,f1=1,H0=R0=Rmax、L0=0。C=0(C为系数)。设定α0=1,α1=1.5这里采用静态系数,即αn=α1。Len=0。获取第一个待编码符号0,根据所述初始统计模型,即:fk=1,k∈[0,Ls),对当前待编码字符对应的初始编码空间进行划分,即对初始编码空间[0,1000000]进行划分,分别表示为C0和C1,可以理解的是,根据初始统计模型为模型,将初始编码空间进行等分后,得到C0∈[0.500000),C1∈[500000,1000000)。此时待编码字符0所在的第一子编码空间为C0。此时R1=500000,L1=0。Len=Len+1;对第一子编码空间为C0进行扩展,获得第二子编码空间,R1=R1*1.5=750000,H1=750000。此时第二子编码空间为[0,750000],即下一待编码字符1的初始编码空间[0,750000]。更新统计模型后得到f0=2,f1=1,T1=3。根据更新后的统计模型,对当前待编码字符对应的初始编码空间[0,750000]进行划分,分别表示为C0和C1,得C0∈[0,500000),C1∈[500000,750000)。。获取待编码符号1,此时待编码符号1所在的第一子编码空间为C1,此时R2=250000,L2=500000。对R2进行扩展得到R2=375000,H2=500000+375000=875000。此时第二子编码空间为[500000,875000],即下一待编码字符0的初始编码空间[500000,875000]。更新统计模型后得到f0=2,f1=2,T1=4。并根据更新后的统计模型重新划分区间得到C0∈[500000,687500),C1∈[687500,875000),Len=Len+1,获取待编码符号0,使用C0,R3=187500,扩展R3得,R3=281250,H3=781250。更新统计模型后得到f0=3,f1=2,T1=5。重新划分区间得Cn∈[500000,668750),C1∈[668750,781250)。Len=Len+1,依次类推,分别对后面的待编码字符进行处理,最后得到如下表的结果:待编码字符Rf0,f1,TL,H10000001,1,20,100000007500002,1,30,75000013750002,2,4500000,87500002812503,2,5500000,78125002531254,2,6500000,75312502531255,2,7500000,75312511084825,3,8680803,78928501017016,3,9680803,7825041508506,4,10748603,7994530457657,4,11748603,7943680436848,4,12748603,7922871174738,5,13777725,7951980161289,5,14777725,793853此时,最后一个待编码字符0处于区间[777725,793853],可以选择777725作为编码结果。通过公式:计算编码系数,得到C=2.16079。此时待编码数据长度为12,因此最后将777725,2.16079,12作为编码输出。可以理解的是,本发明方法需要考虑第一系数αn的作用,首先需要设定一个状态,即按照同样的区间R0,设R0是z位十进制数值。在极限划分的情况下(R0划分到最后只能通过小数才能划分的临界状态),此时即可输出一个完整的数值Vi和V′j。这种极限状态得到上述的x就是最后输出数值V′十进制位数的个数。且采用同样的待编码码流。如需继续编码时重新启用一个新的R0。通过计算可以得出V的个数Wv(这个集合所有符号所对应的二进制位总数值是可以通过信息熵计算出来的),V′的个数定义w为Wv和Wv′比例,可以根据公式:及公式:分析得到w的计算可以等价于当αi=α为静态系数时:w=(α)Len当αn选择某些数值时,从w可以证明,Wv远大于Wv′。同时w也是在数值V和V′输出的十进制位数一致时,两者所能处理的符号数量的比例。根据本极限状态下C和V′总信息量为O=2*Wv′+z≈2*Wv′,于是可以计算压缩比r:当αi=α为静态系数时:从公式可以看出,r能否大于1,与第一系数α的取值有必然联系。当α=1.5时,其压缩比是非常大的。因此,本发明实施例提供的数据处理方法,通过在编码时对编码子空间范围的改变,来改变编码输出,使得编码输出被压缩,并且,通过在编码过程,不断的更新统计模型,使得所述统计模型更能符号待编码数据的数据特点,因此能用更少的符合来代替待编码数据,因此压缩率进一步变大。图3示出了本发明第二实施例提供的一种数据处理方法的流程图,所述方法包括:步骤S401,获取当前待编码字符,根据初始统计模型,计算所述当前待编码字符所在的第一子编码空间;步骤S402,对所述第一子编码空间的范围进行扩展,获取所述待编码所在的第二子编码空间;步骤S403,计算所述第二子编码空间的下限和所述第二子编码空间的上限转换为二进制数后,从高位到地位数值相同的个数;步骤S404,判断所述从高位到地位数值相同的个数是否为零;如果是,则执行步骤S405至S406,否则执行步骤S407。步骤S405,将所述第二子编码空间的下限的最高位作为编码结果;步骤S406,将所述第二子编码空间再次进行扩展,获得下一待编码字符的初始编码空间;步骤S407,则所述第二子编码空间为下一待编码字符的初始编码空间。步骤S408,对所述初始统计模型进行更新,获得更新后的统计模型,根据更新后的统计模型,计算所述当前待编码字符所在的第一子编码空间,执行S402;步骤S409,判断待编码数据中字符是否全部编码完毕;如果是,执行步骤S410至步骤S412,否则执行步骤S408;步骤S410,获得编码结果;步骤S411,根据第一系数,所述待编码数据中各个字符出现的频率,所述各个符号的累积频度以及初始编码空间的大小计算编码系数,所述符号的累积频度是指符号值小于所述符号的值的其它符号的频度之和;步骤S412,将所述编码系数,所述编码结果以及待编码数据长度作为编码输出。例如:假设对对字符串010001010010进行编码,定义S表示符号集合;LS表示S集合符号个数;那么每个符号出现的概率全部是按照进行计算,L当前区间的下限;H当前编码区间的上限;R为当前编码区间大小,其中R=H-L;Len表示待压缩数据的总长度。Rmax在初始编码空间中是一个正整数,在算术编码中是1。编码步骤如下:初始化时,由于当前的字符串中只有0和1,所以S={0,1},那么LS=2。定义Rmax=1000000,可以理解的是,Rmax的值可以定义的相对大一些,此时初始编码空间为[0,Rmax],T0=LS,fk=1,k∈[0,LS)即f0=1,f1=1,H0=R0=Rmax、L0=0。。设定α0=1,α1=1.5这里采用静态系数,即αn=α1。Len=0。分别对待编码字符010001010010进行处理,当处理到01000101,得到如下表的结果:待编码字符Rf0,f1,TL,H,d10000001,1,20,1000000,007500002,1,30,750000,013750002,2,4500000,875000,002812503,2,5500000,781250,002531254,2,6500000,753125,002531255,2,7500000,753125,011084825,3,8680803,789285,001017016,3,9680803,782504,01508506,4,10748603,799453,4(码流7)可以理解的是,当从高位到低位,待编码字符的第三个1出现时,此时待编码字符1对应的第二子编码空间为[748603,799453],此时d=4,判断后不为0,此时第二子编码空间的下限为748603,输出最高位7作为编码结果。此时,对第二子编码空间的上限和下限进行扩展,得到[486030,994530],以[486030,994530]作为下一待编码数据0的初始编码空间,继续处理,最后得到编码结果78。本发明实施例提供的数据处理方法,通过在编码时对编码子空间范围的改变,来改变编码输出,使得编码输出被压缩,并且,通过在编码过程,不断的更新统计模型,使得所述统计模型更能符号待编码数据的数据特点,因此能用更少的符合来代替待编码数据,因此压缩率变大。并且进一步的通过判断所述第二子编码空间的下限和所述第二子编码空间的上限转换为二进制数后,从高位到地位数值相同的个数是否为零,当不为零时,则将所述第二子编码空间的下限的最高位作为编码结果,使得压缩率进一步变大。图4示出了本发明第三实施例提供的一种数据处理方法的流程图,所述方法包括:步骤S501,获取编码输出,所述编码输出包括编码系数,编码结果以及待编码数据长度;其中,所述编码输出可以为第一实施例对应的编码结果,编码系数以及待编码数据长度。步骤S502,根据所述编码系数以及所述编码结果,计算当前待解码数据;其中,当前待解码数据=所述编码结果/所述编码系数。所述计算出当前待解码数据对应的解码输出,包括:根据统计模型,将当前初始解码空间划分为多个解码子空间,所述解码子空间分别对应不同的字符;计算当前待解码数据所在的子空间,将所述子空间对应的字符作为当前待解码数据对应的解码输出,将所述当前待解码数据所在的子空间更新为所述当前初始解码空间。步骤S503,根据初始统计模型,将当前初始解码空间划分为多个解码子空间,所述解码子空间分别对应不同的字符;计算当前待解码数据所在的子空间,将所述子空间对应的字符作为当前待解码数据对应的解码输出,将所述当前待解码数据所在的子空间作为所述当前初始解码空间。所述更新待解码数据长度,即len=len-1;步骤S504,将下一个待解码数据作为当前待解码数据,根据所述更新后的统计模型,计算出当前待解码数据对应的解码输出,更新待解码数据长度,更新所述更新后的统计模型,直到所述待解码数据长度为零,解码完成;所述根据所述更新后的统计模型,计算出当前待解码数据对应的解码输出,包括:根据所述更新后的统计模型,将当前初始解码空间划分为多个解码子空间,所述解码子空间分别对应不同的字符;计算当前待解码数据所在的子空间,将所述子空间对应的字符作为当前待解码数据对应的解码输出,将所述当前待解码数据所在的子空间作为所述当前初始解码空间。例如:首先初始化相关参数,由于当前的字符串中只有0和1,所以S={0,1},那么LS=2。定义Rmax=1000000,可以理解的是,这个数值与第一实施例中的Rmax相对应,T0=LS,fk=1,k∈[0,LS)即f0=1,f1=1,H0=R0=Rmax、L0=0。设定α0=1,α1=1.5这里采用静态系数,即αn=α1。第2步:获取编码输出V’=777725和编码系数C=2.16079。Len=12并通过公式:得出当前待解码数据并用V开始进行解码。按照统计模型将R0进行划分得C0∈[0,500000),C1∈[500000,1000000),此时V=359926处于区间C0之中,因此对应的解码输出为0,更新统计模型后得到f0=2,f1=1,T1=3。将所述当前待解码数据所在的子空间更新为所述当前初始解码空间,即以区间[0,500000)作为所述当前初始解码空间,按照当前的统计模型重新划分后得到:C0∈[0,333333),C1∈[333333,500000),Len=Len-1;通过比对发现V=359926在C1中,输出符号1,更新统计模型f0=2,f1=2,T1=4.将所述当前待解码数据所在的子空间更新为所述当前初始解码空间,即以区间[333333,500000),按照当前的统计模型重新划分得C0∈[333333,416666),C1∈[416666,500000)。Len=Len-1;通过比对发现V在C0中,输出符号0,更新统计模型f0=3,f1=2,T1=5。将所述当前待解码数据所在的子空间更新为所述当前初始解码空间,即以区间[333333,416666),按照当前的统计模型重新划分得C0∈[333333,383333),C1∈[383333,416666)。Len=Len-1;以此类推直到Len=0,最终解码出符号串010001010010;因此,本发明实施例提供的数据处理方法,通过对接收到的编码输出进行逆向求解,能够解出原始数据,使得经过压缩的数据能够得到还原。图5示出了本发明第四实施例提供的一种数据处理方法的流程图,所述方法包括:步骤S601,获取编码输出,所述编码输出包括编码系数,编码结果以及待编码数据长度;其中,所述编码输出可以为第二实施例对应的编码结果,编码系数以及待编码数据长度。步骤S602,根据所述编码系数以及所述编码结果,计算当前待解码数据;步骤S603,根据初始统计模型,将当前初始解码空间划分为多个解码子空间,所述解码子空间分别对应不同的字符;计算当前待解码数据所在的子空间,将所述子空间对应的字符作为当前待解码数据对应的解码输出,将所述当前待解码数据所在的子空间作为所述当前初始解码空间。更新待解码数据长度,将所述初始统计模型进行更新得到更新后的统计模型;将所述解码系数进行更新得到更新后的解码系数;步骤S604,根据所述更新后的解码系数以及所述当前待解码数据,计算下一个待解码数据;步骤S605,将下一个待解码数据作为当前待解码数据,根据所述更新后的统计模型,计算出当前待解码数据对应的解码输出,更新待解码数据长度,更新所述更新后的解码系数,更新所述更新后的统计模型;其中,按照公式:C’=C-Kn(kn为基于待编码数据中1的个数有关的线性函数);更新所述解码系数。每次更新带解码数据长度,都是在当前解码长度的基础上减一,即:len=len-1。步骤S606,判断待解码数据长度是否为零;如果是,执行步骤S607,如果否,执行步骤604至步骤S605;步骤S607,解码完成。可以理解的是,如果对应编码中,将结束符作为符号进行编码,此处也可以判断是否解码出结束符,如果解码出结束符,则执行步骤S607,如果否,执行步骤602至S605。例如:首先初始化相关参数,由于当前的字符串中只有0和1,所以S={0,1},那么LS=2。定义Rmax=1000000(这个数值可以定义的相对大一些),T0=LS,fk=1,k∈[0,LS)即f0=1,f1=1,H0=R0=Rmax、L0=0。C=0(C为系数)。设定α0=1,α1=1.5这里采用静态系数,即αn=α1。Len=0获取当前待解码数据V’=78和编码系数C=2.16079。Len=12并通过公式:得出当前待解码数据V=78/2.16079=36.0979,并用V开始进行解码。按照初始化的统计模型f0=1,f1=1,将R0进行划分得C0∈[0,500000),C1∈[500000,100000),此时发现V在C0之中,所以输出符号0,并使用区间[0,500000),重新划分得C0∈[0,250000),C1∈[250000,500000),Len=Len-1;此时,通过公式:C’=C-Kn;其中,kn为基于待编码数据中1的个数有关的线性函数。更新编码系数得到C’;计算下一个待解码数据,v=36.0979/c’;通过比对发现V在C1中,获得解码输出为符号1,并使用区间[250000,500000],更新统计模型后获得f0=2,f1=1,T1=3,按照更新后的统计模型重新划分得空间。以此类推直到Len=0,最终解码出符号串010001010010。因此,本发明实施例提供的数据处理方法,通过对接收到的编码输出进行逆向求解,能够解出原始数据,使得经过压缩的数据能够得到还原。图6示出了本发明第五实施例提供的一种数据处理方法的流程图,所述方法包括:步骤S701,获取编码输出,所述编码输出包括编码系数,编码结果以及待编码数据长度;其中,所述编码输出可以为第一实施例对应的编码结果,编码系数以及待编码数据长度。步骤S702,根据所述编码系数和初始解码空间的大小,计算出当前解码空间;步骤S703,根据初始统计模型,将所述当前解码空间划分为多个解码子空间,所述解码子空间分别对应不同的字符;步骤S704,计算所述待解码数据所在的子空间,将所述子空间对应的字符作为解码输出,将所述初始统计模型进行更新得到更新后的统计模型;步骤S705,将所述待解码数据所在的子空间作为所述当前初始解码空间,更新所述待编码数据长度,根据所述更新后的统计模型,,将所述当前初始解码空间划分为多个解码子空间,所述解码子空间分别对应不同的字符;计算所述待解码数据所在的子空间,将所述子空间对应的字符作为解码输出,直到所述待编码数据长度为零,解码结束。例如:首先初始化相关参数,由于待编码字符串中只有0和1,所以S={0,1},那么LS=2。定义Rmax=1000000,T0=LS,fk=1,k∈[O,LS)即f0=1,f1=1,H0=R0=Rmax、L0=0。设定α0=1,α1=1.5这里采用静态系数,即αn=α1。获取编码结果V′=777725和编码系数C=2.16079。Len=12并计算得出R0=R0*2.16079=2160790,并用V′开始进行解码。按照初始统计模型将R0进行划分得到C0∈[0,1080395),C1∈[1080395,2160790),此时发现V′在C0之中,因此解码输出为0,更新统计模型后得到f0=2,f1=1,T1=3;更新所述当前初始解码空间为所述待解码数据所在的子空间,即区间[0,1080395)作为所述当前初始解码空间,重新划分得后得到:C0∈[0,720263),C1∈[720263,1080395),Len=Len-1;通过比对发现V′在C1中,输出符号1。更新所述当前初始解码空间为所述待解码数据所在的子空间,即区间[720263,1080395)作为所述当前初始解码空间,更新统计模型后得到f0=2,f1=2,T1=4;重新划分得C0∈[720263,900329),C1∈[900329,1080395)。Len=Len-1;通过比对发现V′在C0中,因此解码输出为0。并使用区间[720263,900329),更新统计模型后得到f0=3,f1=2,T1=5;重新划分区间后得C0∈[720263.828302),C1∈[828302.900329)。Len=Len-1;以此类推直到Len=0,最终解码出符号串010001010010。因此,本发明实施例提供的数据处理方法,通过对接收到的编码输出进行逆向求解,能够解出原始数据,使得经过压缩的数据能够得到还原。请参阅图7,图7是本发明第一实施例提供的一种数据处理装置的功能模块示意图,所述数据处理装置210包括第一处理模块211,编码模块212,计算模块213,以及输出模块214。所述第一处理模块211,用于获取当前待编码字符,根据初始统计模型,对当前待编码字符对应的初始编码空间进行划分,以获得下一待编码字符对应的初始编码空间;所述编码模块212,用于将下一待编码字符作为当前待编码字符,对所述初始统计模型进行更新,获得更新后的统计模型,根据更新后的统计模型,对当前待编码字符对应的初始编码空间进行划分,以获得下一待编码字符对应的初始编码空间,直到所述待编码数据中字符全部编码完毕,获得编码结果;所述计算模块213,用于根据第一系数,所述待编码数据中各个字符出现的频率,所述各个符号的累积频度以及初始编码空间的大小计算编码系数,所述符号的累积频度是指符号值小于所述符号的值的其它符号的频度之和;所述输出模块214,用于将所述编码系数,所述编码结果以及待编码数据长度作为编码输出。其中,所述对当前待编码字符对应的初始编码空间进行划分,以获得下一待编码字符对应的初始编码空间,包括:计算所述当前待编码字符所在的第一子编码空间;对所述第一子编码空间的范围进行扩展,获取所述当前待编码字符所在的第二子编码空间;所述第二子编码空间为下一待编码字符的初始编码空间。以上各模块可以是由软件代码实现,此时,上述的各模块可存储于数据处理终端的存储器内。以上各模块同样可以由硬件例如集成电路芯片实现。请参阅图8,图8是本发明第二实施例提供的一种数据处理装置的功能模块示意图,所述数据处理装置810包括获取模块811,第一计算模块812,第二计算模块813,以及解码输出模块814。所述获取模块811,用于获取编码输出,所述编码输出包括编码系数,编码结果以及待编码数据长度;所述第一计算模块812,用于根据所述编码系数以及所述编码结果,计算当前待解码数据;所述第二计算模块813,用于根据初始统计模型,计算出所述当前待解码数据对应的解码输出,更新待解码数据长度,将所述初始统计模型进行更新得到更新后的统计模型;所述解码输出模块814,用于将下一个待解码数据作为当前待解码数据,根据所述更新后的统计模型,计算出当前待解码数据对应的解码输出,更新待解码数据长度,更新所述更新后的统计模型,直到所述待解码数据长度为零,解码完成;以上各模块可以是由软件代码实现,此时,上述的各模块可存储于数据处理终端的存储器内。以上各模块同样可以由硬件例如集成电路芯片实现。其中,所述计算出当前待解码数据对应的解码输出,包括:将当前初始解码空间划分为多个解码子空间,所述解码子空间分别对应不同的字符;计算当前待解码数据所在的子空间,将所述子空间对应的字符作为当前待解码数据对应的解码输出,将所述当前待解码数据所在的子空间作为所述当前初始解码空间。请参阅图9,图9是本发明第三实施例提供的一种数据处理装置的功能模块示意图,所述数据处理装置910包括获取模块911,计算模块912,划分模块913,解码模块914,以及处理模块915。所述获取模块911,用于获取编码输出,所述编码输出包括编码系数,编码结果以及待编码数据长度;所述计算模块912,用于根据所述编码系数和初始解码空间的大小,计算出当前解码空间;所述划分模块913,用于根据初始统计模型,将所述当前解码空间划分为多个解码子空间,所述解码子空间分别对应不同的字符;所述解码模块914,用于计算所述待解码数据所在的子空间,将所述子空间对应的字符作为解码输出,将所述初始统计模型进行更新得到更新后的统计模型;所述处理模块915,用于将所述待解码数据所在的子空间作为所述当前初始解码空间,更新所述待编码数据长度,根据所述更新后的统计模型,,将所述当前初始解码空间划分为多个解码子空间,所述解码子空间分别对应不同的字符;计算所述待解码数据所在的子空间,将所述子空间对应的字符作为解码输出,直到所述待编码数据长度为零,解码结束。以上各模块可以是由软件代码实现,此时,上述的各模块可存储于数据处理终端的存储器内。以上各模块同样可以由硬件例如集成电路芯片实现。需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本发明实施例所提供的数据处理装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置及系统实施例部分未提及之处,可参考前述方法实施例中相应内容。在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1