CN106170760B - 一种计算数据的预期压缩率的方法及装置 - Google Patents

一种计算数据的预期压缩率的方法及装置 Download PDF

Info

Publication number
CN106170760B
CN106170760B CN201480036812.XA CN201480036812A CN106170760B CN 106170760 B CN106170760 B CN 106170760B CN 201480036812 A CN201480036812 A CN 201480036812A CN 106170760 B CN106170760 B CN 106170760B
Authority
CN
China
Prior art keywords
frequency
symbol
subclass
length
division
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
CN201480036812.XA
Other languages
English (en)
Other versions
CN106170760A (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.)
Honor Device Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN106170760A publication Critical patent/CN106170760A/zh
Application granted granted Critical
Publication of CN106170760B publication Critical patent/CN106170760B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • H03M7/6082Selection strategies
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6058Saving memory space in the encoder or decoder
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种计算数据的预期压缩率的方法及装置,涉及数据处理技术领域,在该方案中,是用表征符号序列中的符号的分布规律的相关指标来计算数据的预期压缩率的,表征符号序列中的符号的分布规律的相关指标与数据的预期压缩率相关性较高,因此,解决了现在在计算数据的预期压缩率的过程中存在的准确度较低的缺陷。

Description

一种计算数据的预期压缩率的方法及装置
技术领域
本发明涉及数据处理技术领域,特别涉及一种计算数据的预期压缩率的方法及装置。
背景技术
随着信息社会的发展,数据量以指数级的形式进行增长,数据压缩以可以消除信息冗余,提高数据传输效率、存储资源的利用率的优点而广泛应用于各个领域。
在压缩数据过程中,需要占用CPU(Central Processing Unit,中央处理器)和内存资源,对系统性能有一定程度的负面影响,数据的可压缩性根本上取决于其数据自身的冗余特征,也就是说不是所有的数据都适合压缩,例如,现有研究表明,压缩低冗余度的数据会引起更多的计算开销,严重浪费系统资源。因此,在数据压缩之前,判定数据是否适合进行压缩的技术显得尤为重要。
目前,在判定数据是否适合进行压缩时,根据预期压缩率来判断,但是,目前计算预期压缩率的方法存在准确度较低的缺陷。
发明内容
本发明实施例提供一种计算数据的预期压缩率的方法及装置,用以解决当前计算数据的预期压缩率的方法中存在的准确度较低的缺陷。
本发明实施例提供的具体技术方案如下:
第一方面,提供一种计算数据的预期压缩率的方法,包括
将待压缩数据解析为符号序列;
获取所述符号序列的相关指标,其中,所述相关指标用于表征所述符号序列中的符号的分布规律;
根据所述相关指标,计算将所述待压缩数据采用指定编码方式编码后的预期编码长度;
将计算得到的预期编码长度与所述待压缩数据的初始长度的比值,作为所述待压缩数据的预期压缩率。
结合第一方面,在第一种可能的实现方式中,所述相关指标包括符号集合的基数和/或符号频数集合;
其中,所述符号集合包括所述符号序列中出现的所有符号,且所述符号集合中的任意两个符号均不相同;
所述符号集合的基数为所述符号集合中的所有符号的个数;
所述符号频数集合中的频数为所述符号集合中的各个符号分别在所述符号序列中分别出现的次数。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,根据所述相关指标,计算将所述待压缩数据采用指定编码方式编码后的预期编码长度,具体包括:
根据所述符号集合的基数,计算所述符号集合所包括的任意一符号采用定长编码方式表达时所需要的位长,其中,所述符号集合中的每一个符号采用所述定长编码方式表达时所需要的位长均相等;
确定计算出的位长与所述符号频数集合中包括的所有频数之和的乘积;
将确定的乘积作为第一预期编码长度,其中,所述第一预期编码长度为将所述待压缩数据采用所述定长编码方式编码得到的预期编码长度;
其中,所述符号集合中的每一个符号采用所述定长编码方式表达时所需要的位长均相等。
结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,根据所述相关指标,计算将所述待压缩数据采用指定编码方式编码后的预期编码长度,具体包括:
通过对所述符号频数集合进行递归划分,计算第二预期编码长度,其中,所述第二预期编码长度为将所述待压缩数据采用哈夫曼编码方式编码后的预期编码长度。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,通过对所述符号频数集合进行递归划分,计算第二预期编码长度,具体包括:
确定所述符号集合的基数大于或者等于预设划分门限值时,将所述符号频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合;
针对所述至少两个频数子集合中的任意一频数子集合,计算指定数目个符号采用所述哈夫曼编码方式表达时的预期编码长度,其中,所述指定数目为该任意一频数子集合中包括的所有频数之和;
将针对每一个频数子集合分别计算出的预期编码长度相加,得到预期编码长度之和;
将所述预期编码长度之和,作为所述第二预期编码长度。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,将所述符号频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合,具体包括:
对划分得到的每个频数子集合重复执行下述划分处理,直至划分得到的频数子集合的基数小于所述预设基数门限值时,或者直至递归划分级数达到预设级数门限值时,停止划分:
对所述符号频数集合进行划分,得到两个频数子集合;
针对每个频数子集合,确定出该频数子集合的基数大于或者等于所述预设基数门限值,或者递归划分级数大于或者等于所述预设级数门限值时,对该频数子集合返回继续执行划分处理。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,对所述符号频数集合进行划分,得到两个频数子集合,具体包括:
确定对所述符号频数集合进行划分的所有划分方式;
针对每种划分方式,分别执行:
采用该划分方式对所述符号频数集合进行划分,得到两个频数子集合;
判定得到的两个频数子集合中的第一频数子集合中包括的任意一频数,是否均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任一频数;
从所有划分方式中确定出指定划分方式,其中,所述指定划分方式中的任意一种划分方式下得到的两个频数子集合中的第一频数子集合中包括的任意一频数,均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任意一频数;
针对所述指定划分方式中的每种划分方式,计算该划分方式下得到的两个频数子集合中的第一频数子集合包括的所有频数之和与第二频数子集合包括的所有频数之和之间的差值;
从得到的所有差值中,确定出最小差值;
将该最小差值对应的划分方式下划分得到的两个频数子集合,作为对所述符号频数集合进行划分,得到的两个频数子集合。
结合第一方面的第五种可能的实现方式,在第七种可能的实现方式中,对所述符号频数集合进行划分,得到两个频数子集合,具体包括:
将所述符号频数集合中包括的所有频数进行排序;
将排序后的符号频数集合,按照如下规则依次进行N-1次划分,N为所述符号集合的基数;
将排序后的符号频数集合中的排序在首位的频数、排序在第X位的频数,及位于排序在首位和第X位之间的所有频数,作为第X次划分得到的第一频数子集合,其中,X为大于等于1小于等于N-1的正整数;
将排序后的符号频数集合中的排序在末位的频数,及排序在末位和第X位之间的所有频数,作为所述第X次划分得到的第二频数子集合;
计算针对每一次划分得到的第一频数子集合包括的所有频数之和,与第二频数子集合包括的所有频数之和之间的差值;
将最小差值对应划分方式下划分得到的第一频数子集合与第二频数子集合,作为对所述符号频数集合划分,得到的两个频数子集合。
结合第一方面的第四至第七种可能的实现方式,在第八种可能的实现方式中,计算指定数目个符号采用所述哈夫曼编码方式表达时的预期编码长度,具体包括:
针对该任意一频数子集合中包含的任意一频数,分别执行:
确定该任意一频数所在频数子集合对应的递归划分级数;
根据确定出的递归划分级数和所述任意一频数所在频数子集合的基数,计算该频数所对应的符号采用所述哈夫曼编码方式表达时所需要的预期位长;
将计算出的预期位长与该任意一频数的乘积,作为该任意一频数数目个符号,采用所述哈夫曼编码方式表达时的预期编码长度;
将计算出的该任意一频数子集合中的所有频数之和的数目个符号,采用所述哈夫曼编码方式表达时的总预期编码长度,作为指定数目个符号采用所述哈夫曼编码方式表达时的预期编码长度。
结合第一方面,或者第一方面的第一至第八种可能的实现方式,在第九种可能的实现方式中,所述待压缩数据的数据类型为二进制数据,所述相关指标还包括游标集合的基数、游标位长、最大游程;
其中,所述游标集合包括所述符号序列中与相邻的符号均不相同的符号,及每一组连续重复出现的符号中的任意一符号;
所述游标集合的基数为所述游标集合中的所有符号的个数;
所述游标位长为所述游标集合中的任意一游标的空间开销,其中,所述游标集合中包含的各游标的位长均相等;
所述游程集合包括的游程为所述游标集合包括的游标在所述符号序列中的对应位置连续出现的次数;
所述最大游程为各游标分别在所述符号序列中的对应位置连线出现的次数中的最大值。
结合第一方面的第九种可能的实现方式,在第十种可能的实现方式中,根据所述相关指标,计算将所述待压缩数据采用指定编码方式编码后的预期编码长度,具体包括:
计算所述最大游程采用所述游程编码方式表达时所需要的位长,其中,所述游程集合中的每一个游程采用所述游程编码方式表达时所需要的位长,与所述最大游程采用所述游程编码方式表达时所需要的位长均相等;
将计算出的所述最大游程采用所述游程编码方式表达时所需的位长,与所述游标集合的基数的乘积,作为计算出的所有游程采用所述游程编码方式表达所需要的位长;
将所述游标位长与所述游标集合的基数的乘积,作为计算出的所有游标的位长;
确定计算得到的所有游标的位长,与计算得到的所有游程采用所述游程编码方式表达所需要的位长之和;
将所述位长之和作为第三预期编码长度,其中,所述第三预期编码长度为将所述待压缩数据采用所述游程编码方式编码得到的预期编码长度。
第二方面,提供一种计算数据的预期压缩率的装置,包括
解析单元,用于将待压缩数据解析为符号序列;
获取单元,用于获取所述符号序列的相关指标,其中,所述相关指标用于表征所述符号序列中的符号的分布规律;
第一计算单元,用于根据所述相关指标,计算将所述待压缩数据采用指定编码方式编码后的预期编码长度;
第二计算单元,用于将计算得到的预期编码长度与所述待压缩数据的初始长度的比值,作为所述待压缩数据的预期压缩率。
结合第二方面,在第一种可能的实现方式中,所述获取单元获取的相关指标包括符号集合的基数和/或符号频数集合;
其中,所述符号集合包括所述符号序列中出现的所有符号,且所述符号集合中的任意两个符号均不相同;
所述符号集合的基数为所述符号集合中的所有符号的个数;
所述符号频数集合中的频数为所述符号集合中的各个符号分别在所述符号序列中分别出现的次数。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一计算单元具体用于:
根据所述符号集合的基数,计算所述符号集合所包括的任意一符号采用定长编码方式表达时所需要的位长,其中,所述符号集合中的每一个符号采用所述定长编码方式表达时所需要的位长均相等;
确定计算出的位长与所述符号频数集合中包括的所有频数之和的乘积;
将确定的乘积作为第一预期编码长度,其中,所述第一预期编码长度为将所述待压缩数据采用所述定长编码方式编码得到的预期编码长度;
其中,所述符号集合中的每一个符号采用所述定长编码方式表达时所需要的位长均相等。
结合第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述第一计算单元具体用于:
通过对所述符号频数集合进行递归划分,计算第二预期编码长度,其中,所述第二预期编码长度为将所述待压缩数据采用哈夫曼编码方式编码后的预期编码长度。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第一计算单元在通过对所述符号频数集合进行递归划分,计算第二预期编码长度时,具体为:
确定所述符号集合的基数大于或者等于预设划分门限值时,将所述符号频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合;
针对所述至少两个频数子集合中的任意一频数子集合,计算指定数目个符号采用所述哈夫曼编码方式表达时的预期编码长度,其中,所述指定数目为该任意一频数子集合中包括的所有频数之和;
将针对每一个频数子集合分别计算出的预期编码长度相加,得到预期编码长度之和;
将所述预期编码长度之和,作为所述第二预期编码长度。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述第一计算单元在将所述符号频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合时,具体为:
对划分得到的每个频数子集合重复执行下述划分处理,直至划分得到的频数子集合的基数小于所述预设基数门限值时,或者直至递归划分级数达到预设级数门限值时,停止划分:
对所述符号频数集合进行划分,得到两个频数子集合;
针对每个频数子集合,确定出该频数子集合的基数大于或者等于所述预设基数门限值,或者递归划分级数大于或者等于所述预设级数门限值时,对该频数子集合返回继续执行划分处理。
结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第一计算单元在对所述符号频数集合进行划分,得到两个频数子集合时,具体为:
确定对所述符号频数集合进行划分的所有划分方式;
针对每种划分方式,分别执行:
采用该划分方式对所述符号频数集合进行划分,得到两个频数子集合;
判定得到的两个频数子集合中的第一频数子集合中包括的任意一频数,是否均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任一频数;
从所有划分方式中确定出指定划分方式,其中,所述指定划分方式中的任意一种划分方式下得到的两个频数子集合中的第一频数子集合中包括的任意一频数,均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任意一频数;
针对所述指定划分方式中的每种划分方式,计算该划分方式下得到的两个频数子集合中的第一频数子集合包括的所有频数之和与第二频数子集合包括的所有频数之和之间的差值;
从得到的所有差值中,确定出最小差值;
将该最小差值对应的划分方式下划分得到的两个频数子集合,作为对所述符号频数集合进行划分,得到的两个频数子集合。
结合第二方面的第五种可能的实现方式,在第七种可能的实现方式中,所述第一计算单元在对所述符号频数集合进行划分,得到两个频数子集合时,具体为:
将所述符号频数集合中包括的所有频数进行排序;
将排序后的符号频数集合,按照如下规则依次进行N-1次划分,N为所述符号集合的基数;
将排序后的符号频数集合中的排序在首位的频数、排序在第X位的频数,及位于排序在首位和第X位之间的所有频数,作为第X次划分得到的第一频数子集合,其中,X为大于等于1小于等于N-1的正整数;
将排序后的符号频数集合中的排序在末位的频数,及排序在末位和第X位之间的所有频数,作为所述第X次划分得到的第二频数子集合;
计算针对每一次划分得到的第一频数子集合包括的所有频数之和,与第二频数子集合包括的所有频数之和之间的差值;
将最小差值对应划分方式下划分得到的第一频数子集合与第二频数子集合,作为对所述符号频数集合划分,得到的两个频数子集合。
结合第二方面的第四至第七种可能的实现方式,在第八种可能的实现方式中,所述第一计算单元在计算指定数目个符号采用所述哈夫曼编码方式表达时的预期编码长度时,具体为:
针对该任意一频数子集合中包含的任意一频数,分别执行:
确定该任意一频数所在频数子集合对应的递归划分级数;
根据确定出的递归划分级数和所述任意一频数所在频数子集合的基数,计算该频数所对应的符号采用所述哈夫曼编码方式表达时所需要的预期位长;
将计算出的预期位长与该任意一频数的乘积,作为该任意一频数数目个符号,采用所述哈夫曼编码方式表达时的预期编码长度;
将计算出的该任意一频数子集合中的所有频数之和的数目个符号,采用所述哈夫曼编码方式表达时的总预期编码长度,作为指定数目个符号采用所述哈夫曼编码方式表达时的预期编码长度。
结合第二方面,或者第二方面的第一至第八种可能的实现方式,在第九种可能的实现方式中,所述待压缩数据的数据类型为二进制数据,所述获取单元获取的相关指标还包括游标集合的基数、游标位长、最大游程;
其中,所述游标集合包括所述符号序列中与相邻的符号均不相同的符号,及每一组连续重复出现的符号中的任意一符号;
所述游标集合的基数为所述游标集合中的所有符号的个数;
所述游标位长为所述游标集合中的任意一游标的空间开销,其中,所述游标集合中包含的各游标的位长均相等;
所述游程集合包括的游程为所述游标集合包括的游标在所述符号序列中的对应位置连续出现的次数;
所述最大游程为各游标分别在所述符号序列中的对应位置连线出现的次数中的最大值。
结合第二方面的第九种可能的实现方式,在第十种可能的实现方式中,所述第一计算单元具体用于:
计算所述最大游程采用所述游程编码方式表达时所需要的位长,其中,所述游程集合中的每一个游程采用所述游程编码方式表达时所需要的位长,与所述最大游程采用所述游程编码方式表达时所需要的位长均相等;
将计算出的所述最大游程采用所述游程编码方式表达时所需的位长,与所述游标集合的基数的乘积,作为计算出的所有游程采用所述游程编码方式表达所需要的位长;
将所述游标位长与所述游标集合的基数的乘积,作为计算出的所有游标的位长;
确定计算得到的所有游标的位长,与计算得到的所有游程采用所述游程编码方式表达所需要的位长之和;
将所述位长之和作为第三预期编码长度,其中,所述第三预期编码长度为将所述待压缩数据采用所述游程编码方式编码得到的预期编码长度。
本发明有益效果如下:
现有技术中,在计算数据的预期压缩率时,是根据符号的频数的标准差,或者,根据连续符号的异或值和差值的标准差进行计算的,而符号的频数的标准差,或者,连续符号的异或值和差值的标准差与压缩率的相关性较小,因此,目前计算数据的预期压缩率的方法存在准确度较低的缺点,本发明实施例中,提出一种计算数据的预期压缩率的方法:将待压缩数据解析为符号序列,并获取符号序列的相关指标;其中,相关指标用于表征符号序列中的符号的分布规律;根据相关指标计算将待压缩数据采用指定编码方式编码后的预期编码长度,并将计算得到的预期编码长度与待压缩数据的初始长度的比值,作为待压缩数据的预期压缩率,在该方案中,是用表征符号序列中的符号的分布规律的相关指标来计算数据的预期压缩率的,表征符号序列中的符号的分布规律的相关指标与数据的预期压缩率相关性较高,且计算过程考虑了压缩编码方法的技术特点,因此,解决了当前计算数据预期压缩率的方法中存在的准确度较低的缺陷。
附图说明
图1为本发明实施例中计算数据的预期压缩率的详细流程图;
图2为本发明实施例中计算数据的预期压缩率的实施例;
图3为本发明实施例中计算数据的预期压缩率的装置的功能结构示意图;
图4为本发明实施例中计算数据的预期压缩率的装置的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字母“/”,一般表示前后关联对象是一种“或”的关系。
现有技术中,在数据压缩之前,先要判定待压缩的数据是否适合进行压缩处理,并根据判定结果确定是否对数据进行压缩,数据的可压缩性根本上取决于其数据自身的冗余特征,现有过程在计算数据的预期压缩率时,是根据符号的频数的标准差,或者,根据连续符号的异或值和差值的标准差进行计算的,而符号的频数的标准差,或者,连续符号的异或值和差值的标准差与预期压缩率的相关性较小,因此,目前的计算数据的预期压缩率的方法存在准确度较低的缺点,为了解决当前计算数据的预期压缩率的方法中存在的准确度较低的缺陷,本发明实施例中,提出一种计算数据的预期压缩率的方法,该方法中:将待压缩数据解析为符号序列,并获取符号序列的相关指标;其中,相关指标用于表征符号序列中的符号的分布规律;根据相关指标,计算将待压缩数据采用指定编码方式编码后的预期编码长度,并将计算得到的预期编码长度与待压缩数据的初始长度的比值作为待压缩数据的预期压缩率,在该方案中,用表征符号序列中的符号的分布规律的相关指标来计算数据的预期压缩率,表征符号序列中的符号的分布规律的相关指标与数据的预期压缩率相关性较高,因此,解决了现在在计算数据的预期压缩率的过程中存在的准确度较低的缺陷。
下面结合说明书附图对本发明优选的实施方式进行详细说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面结合附图对本发明优选的实施方式进行详细说明。
参阅图1所示,本发明实施例中,计算数据的预期压缩率的详细流程如下:
步骤100:将待压缩数据解析为符号序列;
步骤110:获取符号序列的相关指标,其中,相关指标用于表征符号序列中的符号的分布规律;
步骤120:根据相关指标,计算将待压缩数据采用指定编码方式编码后的预期编码长度;
步骤130:将计算得到的预期编码长度与待压缩数据的初始长度的比值,作为待压缩数据的预期压缩率。
本发明实施例中,相关指标有多种形式,可选的,可以包括符号集合的基数和/或符号频数集合;
其中,符号集合包括符号序列中出现的所有符号,且符号集合中的任意两个符号均不相同;
符号集合的基数为符号集合中的所有符号的个数;
符号频数集合中的频数为符号集合中的各符号分别在符号序列中出现的次数。
如,符号序列为(ABBCCCDDDDEEEEEFFFFFFGGGGGGGACAEAG),则这个符号序列的符号集合为(ABCDEFG),符号频数集合为(4244668),其中,位于第1位的频数4为符号A在符号序列中出现的次数,位于第2位的频数2为符号B在符号序列中出现的次数,位于第3位的频数4为符号C在符号序列中出现的次数,位于第4位的频数5为符号D在符号序列中出现的次数,位于第5位的频数6为符号E在符号序列中出现的次数,位于第6位的频数6为符号F在符号序列中出现的次数,位于第7位的频数8为符号G在符号序列中出现的次数。
本发明实施例中,根据相关指标,计算将待压缩数据采用指定编码方式编码后的预期编码长度的方式有多种,可选的,可以采用如下方式:
根据符号集合的基数,计算符号集合所包括的任意一符号采用定长编码方式表达时所需要的位长,其中,符号集合中的每一个符号采用定长编码方式表达时所需要的位长均相等;
确定计算出的位长与符号频数集合中包括的所有频数之和的乘积;
将确定的乘积作为第一预期编码长度,其中,第一预期编码长度为将待压缩数据采用定长编码方式编码后得到的预期编码长度;
如,符号序列为(ABBCCCDDDDEEEEEFFFFFFGGGGGGGACAEAG),(ABCDEFG)为符号集合,采用定长编码对符号序列进行编码时,编码后的每一个符号所占的位长是相等的,也就是说,符号A、符号B、符号C、符号D、符号E、符号F、符号G采用定长编码方式表达时,所占的位长都是相等的,其中,在确定符号集合中的任意一符号采用定长编码方式表达所占的位长时,可以采用公式一来实现:
其中,n为任意一符号采用定长编码方式表达所占的位长;
表示向上取整;
N为符号集合的基数。
例如,log2N=7.2,则
上述实施例过程中,将待压缩数据采用定长编码方式编码得到的第一预期编码长度为34与的乘积。
当然,根据相关指标,计算将待压缩数据采用指定编码方式编码后的预期编码长度时,还可以采用如下方式:
通过对符号频数集合进行递归划分,计算第二预期编码长度,其中,第二预期编码长度为将待压缩数据采用哈夫曼编码方式编码后的预期编码长度。
本发明实施例中,通过对符号频数集合进行递归划分,计算第二预期编码长度的方式有多种,可选的,可以采用如下方式:
确定符号集合的基数大于或者等于预设划分门限值时,将符号频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合;
针对至少两个频数子集合中的任意一频数子集合,计算指定数目个符号采用哈夫曼编码方式表达时的预期编码长度,其中,指定数目为该任意一频数子集合中包括的所有频数之和;
将针对每一个频数子集合分别计算出的预期编码长度相加,得到预期编码长度之和;
将预期编码长度之和,作为第二预期编码长度。
例如,符号频数集合为(4、2、2、2、1、1、1),对符号频数集合采用递归划分进行划分,递归划分完成后,得到4个频数子集合:频数子集合1(4、2)、频数子集合2(2、2)、频数子集合3(1)、频数子集合4(1、1),针对频数子集合1,计算采用哈夫曼编码表达频数子集合1(4、2)对应的6个符号时的预期编码长度1,针对4个频数子集合中的其他三个频数子集合:频数子集合2(2、2)、频数子集合3(1)、频数子集合4(1、1),都按照针对频数子集合1的计算过程计算相应的预期编码长度2、预期编码长度3、预期编码长度4,并计算预期编码长度1、预期编码长度2、预期编码长度3、预期编码长度4的相加之和,并将相加之和作为第二预期编码长度。
本发明实施例中,将符号频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合的方式有多种,可选的,可以采用如下方式:
对划分得到的每个频数子集合重复执行下述划分处理,直至划分得到的频数子集合的基数小于预设基数门限值时,或者直至递归划分级数达到预设级数门限值时,停止划分:
对符号频数集合进行划分,得到两个频数子集合;
针对每个频数子集合,确定出该频数子集合的基数大于或者等于预设基数门限值,或者递归划分级数大于或者等于预设级数门限值时,对该频数子集合返回继续执行划分处理。
例如,符号频数集合为(4、3、3、3、2、2、2、1、1、1),第一次划分得到两个频数子集合,也就是一级划分得到两个频数子集合:(4、3、3)、(3、2、2、2、1、1、1),然后进行第二次划分,将(4、3、3)划分为两个频数子集合:(4)、(3、3),将(3、2、2、2、1、1、1)划分为两个频数子集合:(3、2)、(2、2、1、1、1),也就是二级划分得到四个频数子集合:(4)、(3、3)、(3、2)、(2、2、1、1、1),假设(4)、(3、3)、(3、2)、(2、2、1、1、1)均不能再划分,此时,递归划分完成,则将符号频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合为:(4)、(3、3)、(3、2)、(2、2、1、1、1);若其中(2、2、1、1、1)还能再划分为(2、2)、(1、1、1),也就是三级划分得到两个频数子集合:(2、2)、(1、1、1),此时,递归划分完成,则将符号频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合为:(4)、(3、3)、(3、2)、(2、2)、(1、1、1)。
本发明实施例中,对符号频数集合进行划分,得到两个频数子集合的方式有多种,可选的,可以采用如下方式:
确定对符号频数集合进行划分的所有划分方式;
针对每种划分方式,分别执行:
采用该划分方式对符号频数集合进行划分,得到两个频数子集合;
判定得到的两个频数子集合中的第一频数子集合中包括的任意一频数,是否均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任意一频数;
从所有划分方式中确定出指定划分方式,其中,指定划分方式中的任意一种划分方式下得到的两个频数子集合中的第一频数子集合中包括的任意一频数,均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任意一频数;
针对指定划分方式中的每种划分方式,计算该划分方式下得到的两个频数子集合中的第一频数子集合包括的所有频数之和与第二频数子集合包括的所有频数之和之间的差值;
从得到的所有差值中,确定出最小差值;
将该最小差值对应的划分方式下划分得到的两个频数子集合,作为对符号频数集合进行划分,得到的两个频数子集合。
本发明实施例中,对符号频数集合进行划分,得到两个频数子集合,具体包括:
将符号频数集合中包括的所有频数进行排序;
将排序后的符号频数集合,按照如下规则依次进行N-1次划分,N为符号集合的基数;
将排序后的符号频数集合中的排序在首位的频数、排序在第X位的频数,及位于排序在首位和第X位之间的所有频数,作为第X次划分得到的第一频数子集合,其中,X为大于等于1小于等于N-1的正整数;
将排序后的符号频数集合中的排序在末位的频数,及排序在末位和第X位之间的所有频数,作为第X次划分得到的第二频数子集合;
计算针对每一次划分得到的第一频数子集合包括的所有频数之和,与第二频数子集合包括的所有频数之和之间的差值;
将最小差值对应划分方式下划分得到的第一频数子集合与第二频数子集合,作为对符号频数集合划分,得到的两个频数子集合。
本发明实施例中,计算指定数目个符号采用哈夫曼编码方式表达时的预期编码长度的方式有多种,可选的,可以采用如下方式:
针对该任意一频数子集合中包含的任意一频数,分别执行:
确定该任意一频数所在频数子集合对应的递归划分级数;
根据确定出的递归划分级数和该任意一频数所在频数子集合的基数,计算该频数所对应的符号采用哈夫曼编码方式表达时所需要的预期位长;
将计算出的预期位长与该任意一频数的乘积,作为该任意一频数数目个符号,采用哈夫曼编码方式表达时的预期编码长度;
将计算出的该任意一频数子集合中的所有频数之和的数目个符号,采用哈夫曼编码方式表达时的总预期编码长度,作为指定数目个符号采用哈夫曼编码方式表达时的预期编码长度。
本发明实施例中,根据确定出的递归划分级数和任意一频数所在频数子集合的基数,计算该频数所对应的符号采用哈夫曼编码方式表达时所需要的预期位长的方式有多种,可选的,可以采用如下方式:
将确定出的递归划分级数作为该频数所对应的符号采用哈夫曼编码方式表达时所需要的第一位长;
根据任意一频数所在频数子集合的基数,计算该频数所对应的符号采用哈夫曼编码方式表达时所需要的第二位长;
将计算得出的第一位长和第二位长之和,作为该频数所对应的符号采用哈夫曼编码方式表达时所需要的预期位长。
例如:递归划分级数为3,则第一位长为3。
在根据任意一频数所在频数子集合的基数,计算该频数所对应的符号采用哈夫曼编码方式表达时所需要的第二位长时,可以采用公式一进行计算,在采用公式一具体计算时,N为任意一频数所在频数子集合的基数,n为第二位长。
本发明实施例中,待压缩数据的数据类型为二进制数据,相关指标还包括游标集合的基数、游标位长、最大游程;
其中,游标集合包括符号序列中与相邻的符号均不相同的符号,及每一组连续重复出现的符号中的任意一符号;
游标集合的基数为游标集合中的所有符号的个数;
游标位长为游标集合中的任意一游标的空间开销,其中,游标集合中包含的各游标的位长均相等;
游程集合包括的游程为游标集合包括的游标在符号序列中的对应位置连续出现的次数。
最大游程为各游标分别在符号序列中的对应位置连续出现的次数中的最大值。
也就是说,本发明实施例中,游标为在符号序列中与之前的相邻的符号不同的符号,其中,不相邻的游标可以是相同符号;游程为游标连续重复出现的次数;符号集合由符号序列中出现过的符号构成,且符号集合中的任意两个符号均不相同。
例如,符号序列为(ABBCCCDDDDEEEEEFFFFFFGGGGGGGACAEAG),游标集合为(ABCDEFGACAEAG),处于游标集合中的第1位的游标A的游程为1,处于游标集合中的第2位的游标B的游程为2,处于游标集合中的第3位的游标C的游程为3,处于游标集合中的第4位的游标D的游程为4,处于游标集合中的第5位的游标E的游程为5,处于游标集合中的第6位的游标F的游程为6,处于游标集合中的第7位的游标G的游程为7,处于游标集合中的第8位的游标A的游程为1,处于游标集合中的第9位的游标C的游程为1,处于游标集合中的第10位的游标A的游程为1,处于游标集合中的第11位的游标E的游程为1,处于游标集合中的第12位的游标A的游程为1,处于游标集合中的第13位的游标G的游程为1。
此时,在根据相关指标,计算将待压缩数据采用指定编码方式编码后的预期编码长度时,可以采用如下方式:
计算最大游程采用游程编码方式表达时所需要的位长,其中,游程集合中的每一个游程采用游程编码方式表达时所需要的位长,与最大游程采用游程编码方式表达时所需要的位长均相等;
将计算出的最大游程采用游程编码方式表达时所需的位长,与游标集合的基数的乘积,作为计算出的所有游程采用游程编码方式表达所需要的位长;
将游标位长与游标集合的基数的乘积,作为计算出的所有游标的位长;
确定计算得到的所有游标的位长,与计算得到的所有游程采用游程编码方式表达所需要的位长之和;
将位长之和作为第三预期编码长度,其中,第三预期编码长度为将待压缩数据采用游程编码方式编码得到的预期编码长度。
本发明实施例中,计算最大游程采用游程编码方式表达时所需要的位长时,可以采用公式一进行计算,此时,N为最大游程,如符号序列为ABBCCCDDDDEEEEEFFFFFFGGGGGGGACAEAG,此时,最大游程为7,则每一个游程采用游程编码方式表达时所需要的位长为
本发明实施例中,在将计算得到的预期编码长度与待压缩数据的初始长度的比值,作为待压缩数据的预期压缩率时,可以采用如下方式:
确定符号序列包括的任意一符号的预设长度,其中,符号序列包括的各符号的预设长度均相等;
将确定出的预设长度与符号频数集合包括的所有频数之和的乘积,作为待压缩数据的初始长度;
将计算得到的第一预期编码长度与初始长度的比值,作为待压缩数据的第一预期压缩率;或者
将计算得到的第二预期编码长度与初始长度的比值,作为待压缩数据的第二预期压缩率;或者
将计算得到的第三预期编码长度与初始长度的比值,作为待压缩数据的第三预期压缩率。
本发明实施例中,在将计算得到的预期编码长度与待压缩数据的初始长度的比值,作为待压缩数据的预期压缩率之后,还包括如下操作:
确定预期压缩率达到压缩率预设门限值时,对待压缩数据采用指定编码方式进行压缩处理。
本发明实施例中,确定预期压缩率达到压缩率预设门限值时,对待压缩数据采用指定编码方式进行压缩处理时,可选的,可以采用如下方式:
确定第一预期压缩率达到压缩率预设门限值时,对待压缩数据采用定长编码方式进行压缩处理;或者
确定第二预期压缩率达到压缩率预设门限值时,对待压缩数据采用哈夫曼编码方式进行压缩处理;或者
确定第三预期压缩率达到压缩率预设门限值时,对待压缩数据采用游程编码方式进行压缩处理。
本发明实施例中,在根据相关指标,计算将待压缩数据采用指定编码方式编码后的预期编码长度之后,还包括如下操作:
根据符号集合的基数,计算游标集合所包括的任意一符号采用定长编码方式表达时所需要的位长;
确定计算出的位长与游标集合基数的乘积,将乘积作为第四预期编码长度,其中,第四预期编码长度为将游标集合采用定长编码方式编码得到的预期编码长度;
确定游标集合包括的任意一游标的预设长度,其中,游标集合包括的每一个游标的预设长度均相等;
将确定出的预设长度与游标集合的基数的乘积,作为游标集合的初始长度;
将计算得到的第四预期编码长度与游标集合的初始长度的比值,作为游标集合的预期压缩率。
本发明实施例中,确定预期压缩率达到压缩率预设门限值时,对待压缩数据采用指定编码方式进行压缩处理时,可选的,可以采用如下操作:
计算所有游标采用游程编码方式表达时所需要的位长与第三预期编码长度的比值;
确定第三预期压缩率、比值及游标集合的预期压缩率的乘积,达到压缩率预设门限值时,对待压缩数据采用游程编码方式和定长编码方式进行压缩处理。
本发明实施例中,在根据相关指标,计算将待压缩数据采用指定编码方式编码后的预期编码长度之后,还包括如下操作:
确定游标集合的符号频数集合;
通过对确定出的游标集合的符号频数集合进行递归划分,计算第五预期编码长度,其中,第五预期编码长度为将游标集合采用哈夫曼编码方式编码后的预期编码长度;
确定游标集合包括的任意一游标的预设长度,其中,游标集合包括的每一个游标的预设长度均相等;
将确定出的预设长度与游标集合的基数的乘积,作为游标集合的初始长度;
将计算得到的第五预期编码长度与游标集合的初始长度的比值,作为游标集合的预期压缩率。
本发明实施例中,确定预期压缩率达到压缩率预设门限值时,对待压缩数据采用指定编码方式进行压缩处理时,可选的,可以采用如下方式:
确定计算得到的所有游标采用游程编码方式表达时所需要的位长与第三预期编码长度的比值;
确定第三预期压缩率、比值及游标集合的预期压缩率的乘积,达到压缩率预设门限值时,对待压缩数据采用游程编码方式和哈夫曼编码方式进行压缩处理。
本发明实施例中,待压缩数据的数据类型为文本数据时,相关指标还包括符号对集合的基数和/或符号对频数集合;
其中,符号对集合包括符号序列中出现的符号对所组成的集合,且符号对集合中的任意两个符号对均不相同,任意一个符号对为在符号序列中任意两个相邻的符号;
符号对集合的基数为符号对集合所含符号对的个数;
符号对频数集合包括符号对集合中的各个符号对在符号序列中分别出现的次数。
本发明实施例中,根据相关指标,计算将待压缩数据采用指定编码方式编码后的预期编码长度时,可选的,可以采用如下方式:
根据符号对集合的基数,计算符号对集合所包括的任意一符号对采用定长编码方式表达时所需要的位长;
确定计算出的位长与符号对频数集合中包括的所有频数之和的乘积;
将乘积作为第六预期编码长度,其中,第六预期编码长度为将待压缩数据采用定长编码方式编码后的预期编码长度;
其中,符号对集合中的每一个符号对采用定长编码方式表达时所需要的位长均相等。
本发明实施例中,根据相关指标,计算将待压缩数据采用指定编码方式编码后的预期编码长度的方式有多种,可选的,可以采用如下方式:
通过对符号对频数集合进行递归划分,计算第七预期编码长度,其中,第七预期编码长度为将待压缩数据采用哈夫曼编码方式编码后的预期编码长度。
本发明实施例中,通过对符号对频数集合进行递归划分,计算第七预期编码长度的方式有多种,可选的,可以采用如下方式:
确定符号对集合的基数大于或者等于预设划分门限值时,将符号对频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合;
针对至少两个频数子集合中的任意一频数子集合,计算指定数目个符号对采用哈夫曼编码方式表达时的预期编码长度,其中,指定数目为该任意一频数子集合中包括的所有频数之和;
将针对每一个频数子集合分别计算出的预期编码长度相加,得到预期编码长度之和;
将预期编码长度之和,作为第七预期编码长度。
本发明实施例中,将符号对频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合的方式有多种,可选的,可以采用如下方式:
对划分得到的每个频数子集合重复执行下述划分处理,直至划分得到的频数子集合的基数小于预设基数门限值时,或者直至递归划分级数达到预设级数门限值时,停止划分:
对符号对频数集合进行划分,得到两个频数子集合;
针对每个频数子集合,确定出该频数子集合的基数大于或者等于预设基数门限值,或者递归划分级数大于或者等于预设级数门限值时,对该频数子集合返回继续执行划分处理。
本发明实施例中,对符号对频数集合进行划分,得到两个频数子集合的方式有多种,可选的,可以采用如下方式:
确定对符号对频数集合进行划分的所有划分方式;
针对每种划分方式,分别执行:
采用该划分方式对符号对频数集合进行划分,得到两个频数子集合;
判定得到的两个频数子集合中的第一频数子集合中包括的任意一频数,是否均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任意一频数;
从所有划分方式中确定出指定划分方式,其中,指定划分方式中的任意一种划分方式下得到的两个频数子集合中的第一频数子集合中包括的任意一频数,均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任意一频数;
针对指定划分方式中的每种划分方式,计算该划分方式下得到的两个频数子集合中的第一频数子集合包括的所有频数之和与第二频数子集合包括的所有频数之和之间的差值;
从得到的所有差值中,确定出最小差值;
将该最小差值对应的划分方式下划分得到的两个频数子集合,作为对符号对频数集合进行划分,得到的两个频数子集合。
本发明实施例中,对符号对频数集合进行划分,得到两个频数子集合的方式有多种,可选的,可以采用如下方式:
将符号对频数集合中包括的所有频数进行排序;
将排序后的符号对频数集合,按照如下规则依次进行N-1次划分,N为符号对集合的基数;
将排序后的符号对频数集合中的排序在首位的频数、排序在第X位的频数,及位于排序在首位和第X位之间的所有频数,作为第X次划分得到的第一频数子集合,其中,X为大于等于1小于等于N-1的正整数;
将排序后的符号对频数集合中的排序在末位的频数,及排序在末位和第X位之间的所有频数,作为第X次划分得到的第二频数子集合;
计算针对每一次划分得到的第一频数子集合包括的所有频数之和,与第二频数子集合包括的所有频数之和之间的差值;
将最小差值对应划分方式下划分得到的第一频数子集合与第二频数子集合,作为对符号对频数集合划分,得到的两个频数子集合。
本发明实施例中,计算指定数目个符号对采用哈夫曼编码方式表达时的预期编码长度的方式有多种,可选的,可以采用如下方式:
针对该任意一频数子集合中包含的任意一频数,分别执行:
确定该任意一频数所在的频数子集合对应的递归划分级数;
根据确定出的递归划分级数和任意一频数所在的频数子集合的基数,计算该频数所对应的符号对采用哈夫曼编码方式表达时所需要的预期位长;
将计算出的预期位长与该任意一频数的乘积,作为该任意一频数数目个符号对,采用哈夫曼编码方式表达时的预期编码长度;
将计算出的该任意一频数子集合中的所有频数之和的数目个符号对,采用哈夫曼编码方式表达时的总预期编码长度,作为指定数目个符号对采用哈夫曼编码方式表达时的预期编码长度。
本发明实施例中,根据确定出的递归划分级数和任意一频数所在频数子集合的基数,计算该频数所对应的符号对采用哈夫曼编码方式表达时所需要的预期位长的方式有多种,可选的,可以采用如下方式:
将确定出的递归划分级数作为该频数所对应的符号对采用哈夫曼编码方式表达时所需要的第一位长;
根据任意一频数所在频数子集合的基数,计算该频数所对应的符号对采用哈夫曼编码方式表达时所需要的第二位长;
将计算得出的第一位长和第二位长之和,作为该频数所对应的符号对采用哈夫曼编码方式表达时所需要的预期位长。
例如:递归划分级数为3,则第一位长为3。
在根据任意一频数所在频数子集合的基数,计算该频数所对应的符号对采用哈夫曼编码方式表达时所需要的第二位长时,可以采用公式一进行计算,在采用公式一具体计算时,N为任意一频数所在频数子集合的基数,n为第二位长。
本发明实施例中,将计算得到的预期编码长度与待压缩数据的初始长度的比值,作为待压缩数据的预期压缩率的方式有多种,可选的,可以采用如下方式:
确定符号集合的基数数目个符号所能构成的符号对数量;
计算表达确定出的符号对数量个符号对所需的第一位长;
计算表达符号对频数集合包括的所有频数之和个符号对所需的第二位长;
将第一位长和第二位长中的最小值与符号对频数集合包括的所有频数之和的乘积,作为待压缩数据的初始长度;
将计算得到的第六预期编码长度与初始长度的比值,作为待压缩数据的第六预期压缩率;或者
将计算得到的第七预期编码长度与初始长度的比值,作为待压缩数据的第七预期压缩率。
本发明实施例中,计算表达确定出的符号对数量个符号对所需的第一位长时,可以采用公式一,此时,N为符号对数量,n为第一位长。
本发明实施例中,计算表达符号对频数集合包括的所有频数之和个符号对所需的第二位长时,也可以采用公式一,此时,N为符号对频数集合包括的所有频数之和,n为第二位长。
例如,符号集合的基数为9,则9个符号所构成的符号对数量为81,则第一位长n1为符号对频数集合包括的所有频数之和为46,则第二位长n2为由于n1大于n2,则将n2与46的乘积作为待压缩数据的初始长度。
本发明实施例中,将计算得到的预期编码长度与待压缩数据的初始长度的比值,作为待压缩数据的预期压缩率之后,还包括如下操作:
确定预期压缩率达到压缩率预设门限值时,对待压缩数据采用指定编码方式进行压缩处理。
本发明实施例中,确定预期压缩率达到压缩率预设门限值时,对待压缩数据采用指定编码方式进行压缩处理的方式有多种,可选的,可以采用如下方式:
确定第六预期压缩率达到压缩率预设门限值时,对待压缩数据采用定长编码方式进行压缩处理;或者
确定第七预期压缩率达到压缩率预设门限值时,对待压缩数据采用哈夫曼编码方式进行压缩处理。
本发明实施例中,确定的符号序列包括的任意一符号的预设长度可以是预设的长度如1字节,也可以是2字节,当然,还可以随着其他应用场景而变化,在此不再进行一一详述。
为了更好地理解本发明实施例,以下给出具体应用场景,针对计算数据的预期压缩率的过程,作出进一步详细描述,如图2所示:
步骤200:将待压缩数据解析为符号序列(ABBDDEEEEFFFFFFABAC);
步骤210:获取符号序列的相关指标,其中,相关指标用于表征符号序列中的符号的分布规律;
在该步骤中,相关指标包括符号集合的基数,其中,符号集合为(ABCDEF),符号集合的基数为6,符号频数集合为(3,3,1,2,4,6)。
步骤220:根据符号集合的基数6,计算符号集合(ABCDEF)所包括的任意一符号采用定长编码方式表达时所需要的位长;
在该步骤中,符号集合(ABCDEF)中的每一个符号采用定长编码方式表达时所需要的位长均相等,也就是说,符号A、符号B、符号C、符号D、符号E、符号F采用定长编码方式表达时所需要的位长均相等。
步骤230:确定计算出的位长与频数集合中包括的所有频数之和19的乘积;
步骤240:将乘积作为第一预期编码长度,其中,第一预期编码长度为将待压缩数据采用定长编码方式编码得到的预期编码长度;
步骤250:将计算得到的第一预期编码长度与待压缩数据的初始长度的比值,作为待压缩数据的第一预期压缩率。
基于上述技术方案,参阅图3所示,本发明实施例提供一种计算数据的预期压缩率的装置,该计算数据的预期压缩率的装置包括解析单元30、获取单元31、第一计算单元32,及第二计算单元33,其中:
解析单元30,用于将待压缩数据解析为符号序列;
获取单元31,用于获取符号序列的相关指标,其中,相关指标用于表征符号序列中的符号的分布规律;
第一计算单元32,用于根据相关指标,计算将待压缩数据采用指定编码方式编码后的预期编码长度;
第二计算单元33,用于将计算得到的预期编码长度与待压缩数据的初始长度的比值,作为待压缩数据的预期压缩率。
本发明实施例中,可选的,获取单元31获取的相关指标包括符号集合的基数和/或符号频数集合;
其中,符号集合包括符号序列中出现的所有符号,且符号集合中的任意两个符号均不相同;
符号集合的基数为符号集合中的所有符号的个数;
符号频数集合中的频数为符号集合中的各个符号分别在符号序列中分别出现的次数。
本发明实施例中,可选的,第一计算单元32具体用于:
根据符号集合的基数,计算符号集合所包括的任意一符号采用定长编码方式表达时所需要的位长,其中,符号集合中的每一个符号采用定长编码方式表达时所需要的位长均相等;
确定计算出的位长与符号频数集合中包括的所有频数之和的乘积;
将确定的乘积作为第一预期编码长度,其中,第一预期编码长度为将待压缩数据采用定长编码方式编码得到的预期编码长度;
其中,符号集合中的每一个符号采用定长编码方式表达时所需要的位长均相等。
本发明实施例中,可选的,第一计算单元32具体用于:
通过对符号频数集合进行递归划分,计算第二预期编码长度,其中,第二预期编码长度为将待压缩数据采用哈夫曼编码方式编码后的预期编码长度。
本发明实施例中,可选的,第一计算单元32在通过对符号频数集合进行递归划分,计算第二预期编码长度时,具体为:
确定符号集合的基数大于或者等于预设划分门限值时,将符号频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合;
针对至少两个频数子集合中的任意一频数子集合,计算指定数目个符号采用哈夫曼编码方式表达时的预期编码长度,其中,指定数目为该任意一频数子集合中包括的所有频数之和;
将针对每一个频数子集合分别计算出的预期编码长度相加,得到预期编码长度之和;
将预期编码长度之和,作为第二预期编码长度。
本发明实施例中,可选的,第一计算单元32在将符号频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合时,具体为:
对划分得到的每个频数子集合重复执行下述划分处理,直至划分得到的频数子集合的基数小于预设基数门限值时,或者直至递归划分级数达到预设级数门限值时,停止划分:
对符号频数集合进行划分,得到两个频数子集合;
针对每个频数子集合,确定出该频数子集合的基数大于或者等于预设基数门限值,或者递归划分级数大于或者等于预设级数门限值时,对该频数子集合返回继续执行划分处理。
本发明实施例中,可选的,第一计算单元32在对符号频数集合进行划分,得到两个频数子集合时,具体为:
确定对符号频数集合进行划分的所有划分方式;
针对每种划分方式,分别执行:
采用该划分方式对符号频数集合进行划分,得到两个频数子集合;
判定得到的两个频数子集合中的第一频数子集合中包括的任意一频数,是否均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任一频数;
从所有划分方式中确定出指定划分方式,其中,指定划分方式中的任意一种划分方式下得到的两个频数子集合中的第一频数子集合中包括的任意一频数,均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任意一频数;
针对指定划分方式中的每种划分方式,计算该划分方式下得到的两个频数子集合中的第一频数子集合包括的所有频数之和与第二频数子集合包括的所有频数之和之间的差值;
从得到的所有差值中,确定出最小差值;
将该最小差值对应的划分方式下划分得到的两个频数子集合,作为对符号频数集合进行划分,得到的两个频数子集合。
本发明实施例中,可选的,第一计算单元32在对符号频数集合进行划分,得到两个频数子集合时,具体为:
将符号频数集合中包括的所有频数进行排序;
将排序后的符号频数集合,按照如下规则依次进行N-1次划分,N为符号集合的基数;
将排序后的符号频数集合中的排序在首位的频数、排序在第X位的频数,及位于排序在首位和第X位之间的所有频数,作为第X次划分得到的第一频数子集合,其中,X为大于等于1小于等于N-1的正整数;
将排序后的符号频数集合中的排序在末位的频数,及排序在末位和第X位之间的所有频数,作为第X次划分得到的第二频数子集合;
计算针对每一次划分得到的第一频数子集合包括的所有频数之和,与第二频数子集合包括的所有频数之和之间的差值;
将最小差值对应划分方式下划分得到的第一频数子集合与第二频数子集合,作为对符号频数集合划分,得到的两个频数子集合。
本发明实施例中,可选的,第一计算单元32在计算指定数目个符号采用哈夫曼编码方式表达时的预期编码长度时,具体为:
针对该任意一频数子集合中包含的任意一频数,分别执行:
确定该任意一频数所在频数子集合对应的递归划分级数;
根据确定出的递归划分级数和任意一频数所在频数子集合的基数,计算该频数所对应的符号采用哈夫曼编码方式表达时所需要的预期位长;
将计算出的预期位长与该任意一频数的乘积,作为该任意一频数数目个符号,采用哈夫曼编码方式表达时的预期编码长度;
将计算出的该任意一频数子集合中的所有频数之和的数目个符号,采用哈夫曼编码方式表达时的总预期编码长度,作为指定数目个符号采用哈夫曼编码方式表达时的预期编码长度。
本发明实施例中,可选的,待压缩数据的数据类型为二进制数据,获取单元31获取的相关指标还包括游标集合的基数、游标位长、最大游程;
其中,游标集合包括符号序列中与相邻的符号均不相同的符号,及每一组连续重复出现的符号中的任意一符号;
游标集合的基数为游标集合中的所有符号的个数;
游标位长为游标集合中的任意一游标的空间开销,其中,游标集合中包含的各游标的位长均相等;
游程集合包括的游程为游标集合包括的游标在符号序列中的对应位置连续出现的次数;
最大游程为各游标分别在符号序列中的对应位置连线出现的次数中的最大值。
本发明实施例中,可选的,第一计算单元32具体用于:
计算最大游程采用游程编码方式表达时所需要的位长,其中,游程集合中的每一个游程采用游程编码方式表达时所需要的位长,与最大游程采用游程编码方式表达时所需要的位长均相等;
将计算出的最大游程采用游程编码方式表达时所需的位长,与游标集合的基数的乘积,作为计算出的所有游程采用游程编码方式表达所需要的位长;
将游标位长与游标集合的基数的乘积,作为计算出的所有游标的位长;
确定计算得到的所有游标的位长,与计算得到的所有游程采用游程编码方式表达所需要的位长之和;
将位长之和作为第三预期编码长度,其中,第三预期编码长度为将待压缩数据采用游程编码方式编码得到的预期编码长度。
如图4所示,为本发明实施例提供的网络接口卡的实体装置图,网络接口卡包括至少一个处理器401,通信总线402,存储器403以及至少一个通信接口404。
其中,通信总线402用于实现上述组件之间的连接并通信,通信接口404用于与外部设备连接并通信。
其中,存储器403用于存储需要执行的程序代码,当处理器401执行存储器403中的程序代码时,实现如下功能:
将待压缩数据解析为符号序列;
获取符号序列的相关指标,其中,相关指标用于表征符号序列中的符号的分布规律;
根据相关指标,计算将待压缩数据采用指定编码方式编码后的预期编码长度;
将计算得到的预期编码长度与待压缩数据的初始长度的比值,作为待压缩数据的预期压缩率。
综上所述,本发明实施例中,提出一种计算数据的预期压缩率的方法,该方法中:将待压缩数据解析为符号序列,并获取符号序列的相关指标;其中,相关指标用于表征符号序列中的符号的分布规律;根据相关指标计算将待压缩数据采用指定编码方式编码后的预期编码长度,并将计算得到的预期编码长度与待压缩数据的初始长度的比值作为待压缩数据的预期压缩率,在该方案中,用表征符号序列中的符号的分布规律的相关指标来计算数据的预期压缩率的,表征符号序列中的符号的分布规律的相关指标与数据的预期压缩率相关性较高,因此,解决了现在在计算数据的预期压缩率的过程中存在的准确度较低的缺陷。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (12)

1.一种计算数据的预期压缩率的方法,其特征在于,包括
将待压缩数据解析为符号序列;
获取所述符号序列的相关指标,其中,所述相关指标用于表征所述符号序列中的符号的分布规律;
根据所述相关指标,计算将所述待压缩数据采用指定编码方式编码后的预期编码长度;
将计算得到的预期编码长度与所述待压缩数据的初始长度的比值,作为所述待压缩数据的预期压缩率;
其中,当所述相关指标包括符号集合的基数和/或符号频数集合时,所述根据所述相关指标,计算将所述待压缩数据采用指定编码方式编码后的预期编码长度,具体包括:
根据所述符号集合的基数,计算所述符号集合所包括的任意一符号采用定长编码方式表达时所需要的位长,所述符号集合中的每一个符号采用所述定长编码方式表达时所需要的位长均相等;确定计算出的位长与所述符号频数集合中包括的所有频数之和的乘积;将确定的乘积作为第一预期编码长度,其中,所述第一预期编码长度为将所述待压缩数据采用所述定长编码方式编码得到的预期编码长度;或者,
通过对所述符号频数集合进行递归划分,计算第二预期编码长度,其中,所述第二预期编码长度为将所述待压缩数据采用哈夫曼编码方式编码后的预期编码长度;
其中,所述符号集合包括所述符号序列中出现的所有符号,且所述符号集合中的任意两个符号均不相同;所述符号集合的基数为所述符号集合中的所有符号的个数;所述符号频数集合中的频数为所述符号集合中的各个符号分别在所述符号序列中分别出现的次数;
当所述待压缩数据的数据类型为二进制数据、所述相关指标包括游标集合的基数、游标位长、最大游程时;所述根据所述相关指标,计算将所述待压缩数据采用指定编码方式编码后的预期编码长度,具体包括:
计算所述最大游程采用游程编码方式表达时所需要的位长,其中,游程集合中的每一个游程采用所述游程编码方式表达时所需要的位长,与所述最大游程采用所述游程编码方式表达时所需要的位长均相等;
将计算出的所述最大游程采用所述游程编码方式表达时所需的位长,与所述游标集合的基数的乘积,作为计算出的所有游程采用所述游程编码方式表达所需要的位长;
将所述游标位长与所述游标集合的基数的乘积,作为计算出的所有游标的位长;
确定计算得到的所有游标的位长,与计算得到的所有游程采用所述游程编码方式表达所需要的位长之和;
将所述位长之和作为第三预期编码长度,其中,所述第三预期编码长度为将所述待压缩数据采用所述游程编码方式编码得到的预期编码长度;
其中,所述游标集合包括所述符号序列中与相邻的符号均不相同的符号,及每一组连续重复出现的符号中的任意一符号;
所述游标集合的基数为所述游标集合中的所有符号的个数;
所述游标位长为所述游标集合中的任意一游标的空间开销,其中,所述游标集合中包含的各游标的位长均相等;
所述游程集合包括的游程为所述游标集合包括的游标在所述符号序列中的对应位置连续出现的次数;
所述最大游程为各游标分别在所述符号序列中的对应位置连线出现的次数中的最大值。
2.如权利要求1所述的方法,其特征在于,通过对所述符号频数集合进行递归划分,计算第二预期编码长度,具体包括:
确定所述符号集合的基数大于或者等于预设划分门限值时,将所述符号频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合;
针对所述至少两个频数子集合中的任意一频数子集合,计算指定数目个符号采用所述哈夫曼编码方式表达时的预期编码长度,其中,所述指定数目为该任意一频数子集合中包括的所有频数之和;
将针对每一个频数子集合分别计算出的预期编码长度相加,得到预期编码长度之和;
将所述预期编码长度之和,作为所述第二预期编码长度。
3.如权利要求2所述的方法,其特征在于,将所述符号频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合,具体包括:
对划分得到的每个频数子集合重复执行下述划分处理,直至划分得到的频数子集合的基数小于预设基数门限值时,或者直至递归划分级数达到预设级数门限值时,停止划分:
对所述符号频数集合进行划分,得到两个频数子集合;
针对每个频数子集合,确定出该频数子集合的基数大于或者等于所述预设基数门限值,或者递归划分级数大于或者等于所述预设级数门限值时,对该频数子集合返回继续执行划分处理。
4.如权利要求3所述的方法,其特征在于,对所述符号频数集合进行划分,得到两个频数子集合,具体包括:
确定对所述符号频数集合进行划分的所有划分方式;
针对每种划分方式,分别执行:
采用该划分方式对所述符号频数集合进行划分,得到两个频数子集合;
判定得到的两个频数子集合中的第一频数子集合中包括的任意一频数,是否均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任一频数;
从所有划分方式中确定出指定划分方式,其中,所述指定划分方式中的任意一种划分方式下得到的两个频数子集合中的第一频数子集合中包括的任意一频数,均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任意一频数;
针对所述指定划分方式中的每种划分方式,计算该划分方式下得到的两个频数子集合中的第一频数子集合包括的所有频数之和与第二频数子集合包括的所有频数之和之间的差值;
从得到的所有差值中,确定出最小差值;
将该最小差值对应的划分方式下划分得到的两个频数子集合,作为对所述符号频数集合进行划分,得到的两个频数子集合。
5.如权利要求3所述的方法,其特征在于,对所述符号频数集合进行划分,得到两个频数子集合,具体包括:
将所述符号频数集合中包括的所有频数进行排序;
将排序后的符号频数集合,按照如下规则依次进行N-1次划分,N为所述符号集合的基数;
将排序后的符号频数集合中的排序在首位的频数、排序在第X位的频数,及位于排序在首位和第X位之间的所有频数,作为第X次划分得到的第一频数子集合,其中,X为大于等于1小于等于N-1的正整数;
将排序后的符号频数集合中的排序在末位的频数,及排序在末位和第X位之间的所有频数,作为所述第X次划分得到的第二频数子集合;
计算针对每一次划分得到的第一频数子集合包括的所有频数之和,与第二频数子集合包括的所有频数之和之间的差值;
将最小差值对应划分方式下划分得到的第一频数子集合与第二频数子集合,作为对所述符号频数集合划分,得到的两个频数子集合。
6.如权利要求2-5任一项所述的方法,其特征在于,计算指定数目个符号采用所述哈夫曼编码方式表达时的预期编码长度,具体包括:
针对该任意一频数子集合中包含的任意一频数,分别执行:
确定该任意一频数所在频数子集合对应的递归划分级数;
根据确定出的递归划分级数和所述任意一频数所在频数子集合的基数,计算该频数所对应的符号采用所述哈夫曼编码方式表达时所需要的预期位长;
将计算出的预期位长与该任意一频数的乘积,作为该任意一频数数目个符号,采用所述哈夫曼编码方式表达时的预期编码长度;
将计算出的该任意一频数子集合中的所有频数之和的数目个符号,采用所述哈夫曼编码方式表达时的总预期编码长度,作为指定数目个符号采用所述哈夫曼编码方式表达时的预期编码长度。
7.一种计算数据的预期压缩率的装置,其特征在于,包括:
解析单元,用于将待压缩数据解析为符号序列;
获取单元,用于获取所述符号序列的相关指标,其中,所述相关指标用于表征所述符号序列中的符号的分布规律;
第一计算单元,用于根据所述相关指标,计算将所述待压缩数据采用指定编码方式编码后的预期编码长度;
第二计算单元,用于将计算得到的预期编码长度与所述待压缩数据的初始长度的比值,作为所述待压缩数据的预期压缩率;
其中,当所述相关指标包括符号集合的基数和/或符号频数集合时,所述第一计算单元具体用于:
根据所述符号集合的基数,计算所述符号集合所包括的任意一符号采用定长编码方式表达时所需要的位长,其中,所述符号集合中的每一个符号采用所述定长编码方式表达时所需要的位长均相等;确定计算出的位长与所述符号频数集合中包括的所有频数之和的乘积;并将确定的乘积作为第一预期编码长度,其中,所述第一预期编码长度为将所述待压缩数据采用所述定长编码方式编码得到的预期编码长度;或者,
通过对所述符号频数集合进行递归划分,计算第二预期编码长度,其中,所述第二预期编码长度为将所述待压缩数据采用哈夫曼编码方式编码后的预期编码长度;
其中,所述符号集合包括所述符号序列中出现的所有符号,且所述符号集合中的任意两个符号均不相同;所述符号集合的基数为所述符号集合中的所有符号的个数;所述符号频数集合中的频数为所述符号集合中的各个符号分别在所述符号序列中分别出现的次数;
当所述待压缩数据的数据类型为二进制数据、所述相关指标包括游标集合的基数、游标位长、最大游程时,所述第一计算单元具体用于:
计算所述最大游程采用游程编码方式表达时所需要的位长,其中,游程集合中的每一个游程采用所述游程编码方式表达时所需要的位长,与所述最大游程采用所述游程编码方式表达时所需要的位长均相等;将计算出的所述最大游程采用所述游程编码方式表达时所需的位长,与所述游标集合的基数的乘积,作为计算出的所有游程采用所述游程编码方式表达所需要的位长;将所述游标位长与所述游标集合的基数的乘积,作为计算出的所有游标的位长;确定计算得到的所有游标的位长,与计算得到的所有游程采用所述游程编码方式表达所需要的位长之和;并将所述位长之和作为第三预期编码长度,其中,所述第三预期编码长度为将所述待压缩数据采用所述游程编码方式编码得到的预期编码长度;
其中,所述游标集合包括所述符号序列中与相邻的符号均不相同的符号,及每一组连续重复出现的符号中的任意一符号;所述游标集合的基数为所述游标集合中的所有符号的个数;所述游标位长为所述游标集合中的任意一游标的空间开销,其中,所述游标集合中包含的各游标的位长均相等;所述游程集合包括的游程为所述游标集合包括的游标在所述符号序列中的对应位置连续出现的次数;所述最大游程为各游标分别在所述符号序列中的对应位置连线出现的次数中的最大值。
8.如权利要求7所述的装置,其特征在于,所述第一计算单元在通过对所述符号频数集合进行递归划分,计算第二预期编码长度时,具体为:
确定所述符号集合的基数大于或者等于预设划分门限值时,将所述符号频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合;
针对所述至少两个频数子集合中的任意一频数子集合,计算指定数目个符号采用所述哈夫曼编码方式表达时的预期编码长度,其中,所述指定数目为该任意一频数子集合中包括的所有频数之和;
将针对每一个频数子集合分别计算出的预期编码长度相加,得到预期编码长度之和;
将所述预期编码长度之和,作为所述第二预期编码长度。
9.如权利要求8所述的装置,其特征在于,所述第一计算单元在将所述符号频数集合进行递归划分,获取递归划分完成后得到的至少两个频数子集合时,具体为:
对划分得到的每个频数子集合重复执行下述划分处理,直至划分得到的频数子集合的基数小于预设基数门限值时,或者直至递归划分级数达到预设级数门限值时,停止划分:
对所述符号频数集合进行划分,得到两个频数子集合;
针对每个频数子集合,确定出该频数子集合的基数大于或者等于所述预设基数门限值,或者递归划分级数大于或者等于所述预设级数门限值时,对该频数子集合返回继续执行划分处理。
10.如权利要求9所述的装置,其特征在于,所述第一计算单元在对所述符号频数集合进行划分,得到两个频数子集合时,具体为:
确定对所述符号频数集合进行划分的所有划分方式;
针对每种划分方式,分别执行:
采用该划分方式对所述符号频数集合进行划分,得到两个频数子集合;
判定得到的两个频数子集合中的第一频数子集合中包括的任意一频数,是否均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任一频数;
从所有划分方式中确定出指定划分方式,其中,所述指定划分方式中的任意一种划分方式下得到的两个频数子集合中的第一频数子集合中包括的任意一频数,均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任意一频数;
针对所述指定划分方式中的每种划分方式,计算该划分方式下得到的两个频数子集合中的第一频数子集合包括的所有频数之和与第二频数子集合包括的所有频数之和之间的差值;
从得到的所有差值中,确定出最小差值;
将该最小差值对应的划分方式下划分得到的两个频数子集合,作为对所述符号频数集合进行划分,得到的两个频数子集合。
11.如权利要求9所述的装置,其特征在于,所述第一计算单元在对所述符号频数集合进行划分,得到两个频数子集合时,具体为:
将所述符号频数集合中包括的所有频数进行排序;
将排序后的符号频数集合,按照如下规则依次进行N-1次划分,N为所述符号集合的基数;
将排序后的符号频数集合中的排序在首位的频数、排序在第X位的频数,及位于排序在首位和第X位之间的所有频数,作为第X次划分得到的第一频数子集合,其中,X为大于等于1小于等于N-1的正整数;
将排序后的符号频数集合中的排序在末位的频数,及排序在末位和第X位之间的所有频数,作为所述第X次划分得到的第二频数子集合;
计算针对每一次划分得到的第一频数子集合包括的所有频数之和,与第二频数子集合包括的所有频数之和之间的差值;
将最小差值对应划分方式下划分得到的第一频数子集合与第二频数子集合,作为对所述符号频数集合划分,得到的两个频数子集合。
12.如权利要求8-11任一项所述的装置,其特征在于,所述第一计算单元在计算指定数目个符号采用所述哈夫曼编码方式表达时的预期编码长度时,具体为:
针对该任意一频数子集合中包含的任意一频数,分别执行:
确定该任意一频数所在频数子集合对应的递归划分级数;
根据确定出的递归划分级数和所述任意一频数所在频数子集合的基数,计算该频数所对应的符号采用所述哈夫曼编码方式表达时所需要的预期位长;
将计算出的预期位长与该任意一频数的乘积,作为该任意一频数数目个符号,采用所述哈夫曼编码方式表达时的预期编码长度;
将计算出的该任意一频数子集合中的所有频数之和的数目个符号,采用所述哈夫曼编码方式表达时的总预期编码长度,作为指定数目个符号采用所述哈夫曼编码方式表达时的预期编码长度。
CN201480036812.XA 2014-07-11 2014-07-11 一种计算数据的预期压缩率的方法及装置 Active CN106170760B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/082077 WO2016004629A1 (zh) 2014-07-11 2014-07-11 一种计算数据的预期压缩率的方法及装置

Publications (2)

Publication Number Publication Date
CN106170760A CN106170760A (zh) 2016-11-30
CN106170760B true CN106170760B (zh) 2019-11-05

Family

ID=55063531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480036812.XA Active CN106170760B (zh) 2014-07-11 2014-07-11 一种计算数据的预期压缩率的方法及装置

Country Status (3)

Country Link
US (1) US9722631B2 (zh)
CN (1) CN106170760B (zh)
WO (1) WO2016004629A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3407198A1 (en) * 2017-05-22 2018-11-28 Siemens Aktiengesellschaft System, device and method for frozen period detection in sensor datasets

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1157653C (zh) * 1994-04-22 2004-07-14 索尼公司 数据传输和接收装置及方法和数据记录和再现装置及方法
JP2000259187A (ja) * 1999-03-05 2000-09-22 Hitachi Information Technology Co Ltd 音声データ圧縮方法
JP3584032B2 (ja) * 2003-02-24 2004-11-04 沖電気工業株式会社 データ圧縮装置及びデータ展開装置
FR2878668B1 (fr) * 2004-11-26 2007-07-13 Siemens Vdo Automotive Sas Procede de compression de donnees numeriques
US8295615B2 (en) 2007-05-10 2012-10-23 International Business Machines Corporation Selective compression of synchronized content based on a calculated compression ratio
US8321386B1 (en) 2008-04-14 2012-11-27 Netapp, Inc. System and method for estimating a compressibility of data in a storage device
CN101299611B (zh) * 2008-06-30 2011-10-05 中国电子科技集团公司第二十八研究所 一种基于集合游程的数据压缩方法
US8195636B2 (en) 2009-04-29 2012-06-05 Netapp, Inc. Predicting space reclamation in deduplicated datasets
US8615499B2 (en) 2012-01-27 2013-12-24 International Business Machines Corporation Estimating data reduction in storage systems
US9246511B2 (en) 2012-03-20 2016-01-26 Sandisk Technologies Inc. Method and apparatus to process data based upon estimated compressibility of the data
US8650163B1 (en) 2012-08-20 2014-02-11 International Business Machines Corporation Estimation of data reduction rate in a data storage system
CN102890268B (zh) * 2012-10-11 2014-05-14 南京莱斯信息技术股份有限公司 一种雷达信号无损压缩的方法
US9564918B2 (en) * 2013-01-10 2017-02-07 International Business Machines Corporation Real-time reduction of CPU overhead for data compression
US20140244604A1 (en) * 2013-02-28 2014-08-28 Microsoft Corporation Predicting data compressibility using data entropy estimation
CN103152430B (zh) * 2013-03-21 2016-06-08 河海大学 一种缩减数据占用空间的云存储方法
CN103346800B (zh) * 2013-07-08 2016-10-05 沈阳东软医疗系统有限公司 一种数据压缩方法及装置
CN103746702B (zh) * 2013-12-17 2017-01-11 记忆科技(深圳)有限公司 数据的无损压缩方法与装置

Also Published As

Publication number Publication date
CN106170760A (zh) 2016-11-30
WO2016004629A1 (zh) 2016-01-14
US20170117918A1 (en) 2017-04-27
US9722631B2 (en) 2017-08-01

Similar Documents

Publication Publication Date Title
CN104301737B (zh) 目标图像块的解码方法和编码方法以及解码器和编码器
CN110825323B (zh) 浮点数数据的存储、读取方法和计算机可读存储介质
CN102404564B (zh) 利用相对和绝对增量值的数据压缩和解压缩
CN106445890B (zh) 数据处理方法
CN105786860A (zh) 一种数据建模中的数据处理方法及装置
CN105139449A (zh) 一种基于三维网格细分和编码的三维模型压缩方法
CN109660800A (zh) 运动估计方法、装置、电子设备及计算机可读存储介质
CN106227881A (zh) 一种信息处理方法及服务器
CN106170760B (zh) 一种计算数据的预期压缩率的方法及装置
CN102323541A (zh) 基于参考向量和位掩码的soc的测试方法
CN103886391A (zh) 业务量预测方法和装置
CN103973310A (zh) 一种基于异或逻辑运算折半划分的测试数据压缩方法
CN115567609B (zh) 一种锅炉用物联网通信方法
CN110213576A (zh) 视频编码方法、视频编码装置、电子设备及存储介质
CN103746701A (zh) 一种用于Rice无损数据压缩的快速编码选项选择方法
CN108829930B (zh) 三维数字化工艺设计mbd模型的轻量化方法
CN108092670B (zh) 编码方法和装置
CN104104963B (zh) 一种矢量候选者列表生成方法及装置
CN110049339A (zh) 图像编码中的预测方向选取方法、装置和存储介质
CN111522899B (zh) 一种三维矢量数据高压缩比的并行压缩方法及装置
CN115065366A (zh) 一种时序数据的压缩方法、装置、设备及存储介质
CN108012151B (zh) 一种基于贝叶斯分类的自适应运动矢量精度快速选择方法与装置
CN113810695A (zh) 视频编码方法、装置及计算机可读存储介质
CN104539975A (zh) 一种基于块效应的双重压缩视频篡改检测方法
CN113630124B (zh) 时序性整数数据的处理方法、系统、设备和介质

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
TR01 Transfer of patent right

Effective date of registration: 20210508

Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040

Patentee after: Honor Device Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right