熵编码的系统级测试技术方案

技术编号:20987576 阅读:28 留言:0更新日期:2019-04-29 20:21
一方面包括接收包括输入符号及其对应的码字的符号转换表(STT)。还接收熵编码描述符(EED),该熵编码描述符(EED)指定针对不同长度中的每个长度有多少码字。修改STT和EED中的一者或二者的内容以生成测试用例并执行熵编码测试。该执行包括基于包括该输入符号中的一个或多个输入符号的输入数据字符串的内容以及STT和EED的内容来执行无损数据压缩处理;或者,基于包括该码字中的一个或多个码字的输入数据字符串的内容,以及STT和EED的内容,执行数据扩展处理。将熵编码测试的结果与预期结果进行比较。

System-Level Testing of Entropy Coding

On the one hand, it includes receiving a symbol conversion table (STT) including input symbols and corresponding codewords. It also receives an Entropy Coding Descriptor (EED), which specifies how many codewords each length has for different lengths. Modify the contents of one or both of STT and EED to generate test cases and execute entropy coding tests. The execution includes performing lossless data compression processing based on the contents of the input data string including one or more input symbols of the input symbol and the contents of STT and EED; or performing data expansion processing based on the contents of the input data string including one or more codewords of the codeword and the contents of STT and EED. The results of the Entropy Coding Test are compared with the expected results.

【技术实现步骤摘要】
【国外来华专利技术】熵编码的系统级测试
技术介绍
本专利技术一般涉及计算机系统,更具体地,涉及熵编码的系统级测试。在信号处理中,数据压缩涉及通过对信息进行编码来减小数据文件的大小,使得其使用比信息的原始表示更少的比特。使用有损压缩或无损压缩来执行压缩。无损压缩通过识别和消除统计冗余来减少比特,并且在执行无损压缩时不会丢失信息。相反,有损压缩通过去除不必要或不太重要的信息来减少比特,并且当执行有损压缩时这些比特可能丢失。数据压缩很有用,因为它减少了存储和传输数据所需的资源。计算资源在压缩过程中消耗,并且通常在压缩过程的逆转(扩展)中消耗。数据压缩方案的设计涉及各种因素之间的权衡,例如压缩程度,引入的失真量(在使用有损数据压缩时)以及压缩和扩展数据所需的计算资源。霍夫曼和Lempel-Ziv是两种类型的无损压缩算法。霍夫曼编码是一种熵编码,其为输入数据中出现的每个唯一符号创建并分配唯一的无前缀码。术语“熵编码”用于指代独立于存储数据的介质的特定特性的无损数据压缩方案。霍夫曼编码用于通过用相应的无前缀码替换输入数据中的每个固定长度输入符号来压缩数据。无前缀码具有不同的长度,其中,输入数据中最常见的符号被分配最短的码。霍夫曼编码的基本思想是将短码字分配给具有高发生概率的那些输入块以及将长码字分配给具有低发生概率的输入块。假设源统计是先验已知的,霍夫曼编码的设计对于固定块长度是最佳的。Lempel-Ziv压缩算法用于实现可变到固定长度码。Lempel-Ziv的基本思想是将输入的数据序列解析为不同长度的非重叠块,同时构建到目前为止看到的块的字典。与依赖于对输入数据中符号频率的估计的霍夫曼编码不同,Lempel-Ziv编码不是针对具有任何特定内容的输入数据而设计,而是针对大类源的输入数据而设计。
技术实现思路
实施例包括用于熵编码的系统级测试的方法,系统和计算机程序产品。一种方法包括接收符号转换表(STT),该表包括输入符号及它们对应的具有各种长度的唯一码字。还接收熵编码描述符(EED),其指定针对不同长度中的每个长度有多少码字。修改STT和EED中的一者或二者的内容以生成测试用例并执行熵编码测试。该执行包括:基于熵编码测试是数据压缩测试,基于包括输入符号中的一个或多个输入符号的输入数据字符串的内容以及STT和EED的内容,执行无损数据压缩处理;基于熵编码测试是数据扩展测试,基于包括码字中的一个或多个码字的输入数据字符串的内容以及STT和EED的内容,执行数据扩展处理。将熵编码测试的结果与预期结果进行比较,并输出比较的结果。通过本专利技术的技术实现了其它特征和优点。本文详细描述了本专利技术的其它实施方案和方面,并将其视为要求保护的专利技术的一部分。为了更好地理解具有优点和特征的本专利技术,请参考说明书和附图。附图说明被视为本专利技术的主题在说明书的结论处的权利要求中特别指出并清楚地要求保护。从以下结合附图的详细描述中,本专利技术的前述和其它特征以及优点是显而易见的,在附图中:图1示出根据一个或多个实施例的用于熵编码的系统级测试的系统的框图;图2示出根据一个或多个实施例的用于产生用于压缩测试的熵编码描述符(EED)和符号转换表(STT)的框图;图3示出根据一个或多个实施例的完整的霍夫曼树和编码;图4示出根据一个或多个实施例的用于产生用于压缩测试的EED和STT的框图;图5示出根据一个或多个实施例的用于执行输入数据的两级压缩的流程图;图6示出根据一个或多个实施例的用于生成扩展数据的框图;图7示出根据一个或多个实施例的用于执行压缩数据的两级扩展的流程图;以及图8示出根据一个或多个实施例的用于熵编码的系统级测试的计算机系统。具体实施方式本文描述的实施例在实现两级压缩的计算机系统中提供熵编码的系统级测试。一个或多个实施例提供了一种使用伪随机测试生成来测试两级压缩过程及其相应扩展的方法。两级压缩/扩展过程可以包括作为第一级的Lempel-Ziv类型编码和作为第二级的基于霍夫曼压缩技术的熵编码。根据一个或多个实施例,压缩和扩展是用于测试熵编码的两个主要组件。对于压缩,基于输入数据针对所有可能的组合生成霍夫曼树,并且构建具有左对齐码字的符号转换表(STT)。另外,生成定义霍夫曼树的熵编码描述符(EED),其包括STT(在压缩期间使用的)中的比特数的指示和用于符号索引(在扩展期间使用)的输入比特的数量。根据一个或多个实施例,通过操纵STT和/或EED来构建包括无效码字的各种码字。以这种方式,可以生成和测试数据异常情况,并且该过程可以构建符号的最大长度并因此构建最大霍夫曼树。类似的方法可以用于扩展,其中基于输入数据构建霍夫曼树,并且EED用于找出针对符号索引要消耗的输入比特的数量。根据一个或多个实施例,被测设备的现有压缩和扩展编码需要最小的改变以执行熵编码的系统级测试。通过操纵先前生成的STT和EED,可以生成许多衍生测试用例以用于熵编码的系统级测试,而不需要构建新的霍夫曼树。现在参照图1,根据一个或多个实施例大致示出了用于熵编码的系统级测试的系统的框图100。图1的框图100包括:测试数据102,其被输入到被测设备104和仿真器108,用于执行系统级熵编码测试。设备测试结果106从被测设备104输出,仿真器测试结果110从仿真器108输出,并被输入到比较逻辑112。比较的结果被输出为测试结果114。在一个或多个实施例中,测试数据102包括待压缩或待扩展的输入字符串,STT和EED。被测设备104可以包括使用任何霍夫曼类型编码进行数据压缩的计算机系统,例如但不限于来自IBM的System测试结果114可以指示设备测试结果106是否与仿真器测试结果110匹配(即,预期的测试结果)。另外,测试结果114可以指示设备测试结果106与仿真器测试结果110之间的差异,并且可以建议要执行的附加测试,包括对输入字符串,EED和/或STT的建议修改。现在参照图2,根据一个或多个实施例大致示出了用于产生用于数据压缩的EED和STT的框图200。输入A202包括输入数据字符串的所有可能的符号。例如,如果输入数据是文本,则输入A202可以包括字母表中所有字母的符号(例如,A到Z)和标点符号。在一个或多个实施例中,通过基于所有可能的符号构建树来生成霍夫曼树204。在一个或多个实施例中,取决于系统架构,霍夫曼树204可以大到213或8,192个叶子。EED206和STT208基于霍夫曼树204的内容构建。在一个或多个实施例中,STT208包括左对齐码字,其中,STT中的每个条目包括定义可能的符号中的每个可能的符号的16比特字段。在一个或多个实施例中,EED206包括16比特元素,其指定霍夫曼树204中的具有每个长度的叶子的数量。叶子的数量与码字的长度(比特数)相同。因此,EED206可用于指示待使用(用于压缩)的STT208中的比特数和用于符号索引(用于扩展)的输入比特数。在图2中还示出输入B210,输入B210是输入A202的子集,其包括输入数据中包含的符号,该输入数据使用Lempel-Ziv压缩进行压缩。字典212由Lempel-Ziv压缩处理基于输入数据字符串中包含的符号构建。如图2所示,EED208和STT208被串接到字典212的末尾。根据一个或多个实施例,EED208定义霍夫曼树并且由位于字本文档来自技高网
...

【技术保护点】
1.一种计算机实现的方法,包括:接收包括输入符号和对应于每个输入符号的唯一码字的符号转换表(STT),所述码字中的至少两个具有不同长度;接收熵编码描述符(EED),所述熵编码描述符(EED)指定针对所述不同长度中的每个长度有多少所述码字;修改所述STT和所述EED中的一者或二者的内容以生成测试用例;执行熵编码测试,所述执行包括:基于所述熵编码测试是数据压缩测试,基于包括所述输入符号中的一个或多个输入符号的输入数据字符串的内容,以及所述STT和所述EED的内容,执行无损数据压缩处理;以及基于所述熵编码测试是数据扩展测试,基于包括所述码字中的一个或多个码字的输入数据字符串的内容,以及所述STT和所述EED的内容,执行数据扩展处理;将所述熵编码测试的结果与预期结果进行比较;以及向测试者输出所述比较的结果。

【技术特征摘要】
【国外来华专利技术】2016.09.23 US 15/273,8061.一种计算机实现的方法,包括:接收包括输入符号和对应于每个输入符号的唯一码字的符号转换表(STT),所述码字中的至少两个具有不同长度;接收熵编码描述符(EED),所述熵编码描述符(EED)指定针对所述不同长度中的每个长度有多少所述码字;修改所述STT和所述EED中的一者或二者的内容以生成测试用例;执行熵编码测试,所述执行包括:基于所述熵编码测试是数据压缩测试,基于包括所述输入符号中的一个或多个输入符号的输入数据字符串的内容,以及所述STT和所述EED的内容,执行无损数据压缩处理;以及基于所述熵编码测试是数据扩展测试,基于包括所述码字中的一个或多个码字的输入数据字符串的内容,以及所述STT和所述EED的内容,执行数据扩展处理;将所述熵编码测试的结果与预期结果进行比较;以及向测试者输出所述比较的结果。2.根据权利要求1所述的方法,其中,所述STT和所述EED描述霍夫曼树。3.根据权利要求2的方法,还包括:生成所述霍夫曼树;以及基于所述霍夫曼树生成所述STT和所述EED。4.根据权利要求1所述的方法,其中,所述修改内容包括将所述EED中指定的不同长度中的一个与所述EED指定的不同长度中的另一个进行交换。5.根据权利要求1所述的方法,其中,所述修改内容包括更新所述STT以包括对应于单个输入符号的两个码字。6.根据权利要求1所述的方法,其中,所述修改内容包括更新所述STT以包括对应于相同码字的两个输入信号。7.根据权利要求1所述的方法,其中,所述输入符号中的一个或多个输入符号对应于来自第二无损数据压缩处理的输出。8.根据权利要求1所述的方法,其中,将来自所述数据扩展处理的输出发送到第二数据扩展处理以进一步扩展。9.一种系统,包括:具有计算机可读指令的存储器;和用于执行所述计算机可读指令的处理器,所述计算机可读指令包括:接收包括输入符号和对应于每个输入符号的唯一码字的符号转换表(STT),所述码字中的至少两个具有不同长度;接收熵编码描述符(EED),所述熵编码描述符(EED)指定针对所述不同长度中的每个长度有多少所述码字;修改所述STT和所述EED中的一者或二者的内容以生成测试用例;执行熵编码测试,所述执行包括:基于所述熵编码测试是数据压缩测试,基于包括所述输入符号中的一个或多个输入符号的输入数据字符串的内容,以及所述STT和所述EED的内容,执行无损数据压缩处理;以及基于所述熵编码测试是数据扩展测试,基于...

【专利技术属性】
技术研发人员:A·杜阿勒D·威蒂格S·加米
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1