北检(北京)检测技术研究院
北检(北京)检测技术研究院

GB/T 16686-1996 信息技术 信息交换用数据压缩 具有嵌入字典的自适应编码 DCLZ算法

北检院检测中心  |  点击量:14次  |  2024-12-19 14:15:07  

标准中涉及的相关检测项目

根据《GB/T 16686-1996 信息技术 信息交换用数据压缩 具有嵌入字典的自适应编码 DCLZ算法》标准,相关的检测项目、检测方法及涉及的产品包括:

检测项目:

  • 数据压缩性能:主要评估DCLZ算法在数据压缩比率上的表现。
  • 解压缩准确性:确保压缩后的数据在解压缩后能完全还原到原始数据。
  • 算法效率:评估算法在不同数据集上执行的时间和资源消耗。
  • 字典管理:检测嵌入字典的更新和管理策略的有效性。
  • 兼容性测试:确保DCLZ算法与其他压缩标准和格式的兼容性。

检测方法:

  • 模拟测试:使用模拟数据集,通过输入输出比对来评估压缩和解压缩的性能。
  • 实测验证:在真实应用环境中,使用实际数据集进行测试。
  • 性能分析:通过计算执行时间、内存使用等指标,分析算法效率。
  • 对比测试:与其他压缩算法进行对比,以评价DCLZ的相对效率和准确性。

涉及产品:

  • 数据存储设备:包括硬盘、SSD等需要压缩技术以提高存储效率的设备。
  • 通信设备:如路由器、交换机等涉及数据传输优化的设备。
  • 软件应用:支持文件压缩和数据备份的软件,如压缩工具和数据库管理系统。
  • 多媒体设备:用于音频、视频的压缩和解压缩处理的设备。

这些检测项目和方法共同确保DCLZ算法的实用性和可靠性,适用于多种涉及大数据处理和存储的技术产品。

GB/T 16686-1996 信息技术 信息交换用数据压缩 具有嵌入字典的自适应编码 DCLZ算法的基本信息

标准名:信息技术 信息交换用数据压缩 具有嵌入字典的自适应编码 DCLZ算法

标准号:GB/T 16686-1996

标准类别:国家标准(GB)

发布日期:1996-01-02

实施日期:1997-07-01

标准状态:现行

GB/T 16686-1996 信息技术 信息交换用数据压缩 具有嵌入字典的自适应编码 DCLZ算法的简介

本标准规定了无损的压缩算法,以减小用8位字节编码表达信息所要求的位数。此算法称为DCLZ(根据Lempel和Ziv的数据压缩)。GB/T16686-1996信息技术信息交换用数据压缩具有嵌入字典的自适应编码DCLZ算法GB/T16686-1996

GB/T 16686-1996 信息技术 信息交换用数据压缩 具有嵌入字典的自适应编码 DCLZ算法的部分内容

GB/T16686-1996

本标准等同采用国际标准I50/1E心11558:1992%信息技术信息交换用数据压缩具有嵌人字興

的口适应编码DCLZ算法》。

为适应信息交换,本标准规定了无损的压缩算法,以诚少用编码形式表示的数据的位数。本标准无论在技术内容!,还是在编排格式「均与国际标准保持一致。附录A,附录B和附录C均是提示的附录。本标准由中华人民共和国电子工业部提出。本标准由屯子工业部标准化研究所归口,本标准起草单位:电子工业部标化研究所。本标准主要起草人:工宝艾、杨霖、郑洪仁。..comGB/T 16686—1996

ISO/IEC前言

ISO(国际标准化组织)和IEC(国际电工委员会)是世界性的标准化专门机构。国家成员体(它们都是TS或IEC的成员国)通过国际组织建立的各个技术委员会参与制定针对特定技术范的国际标推。1SO和IEC的名技术委员会在共同感兴趣的领域内进行合作。与ISO和IEC有联系的其他官方和非官方国际组织也可参与国际标准的制定工作。对于信息技术,ISO和IEC建立『一个联合技术委员会,即1SO/IECJTC1。由联合技术委员会提出的国际标准草案需分发给国家成员体进行表决。发布一-项国际标推,至少需要75%的参与表决的国家成员体投标费成,

国际标准IS()/IEC11558是出欧洲计算机制造商协会(标准ECMA一151)编制的,在特定的\快速跟踪程序”下,被ISO/1ECJTC1所采纳,同时被SO和IEC国际组织通过。附录 A,附录 B 和随录 C 仅供参考。引言

在过去的十年单,ISO/IEC類布许多有关磁带、盒式磁带和卡式磁带以及盒式光盘的国际标准。最近开发的这些媒体具有高的物理记录密度。为了最佳利用最终的数据容量.设计了多种压缩算法以减少用编码形式表示的用户数据的位数。将来,这些压缩算法将由ISO/IEC建立的国际登记机构登记。登记将对每一个已登记的算法分配数字的标识符,对于记录媒体,该标识符应包含在记录格式中以指明所使用的是哪种(哪些)压缩算法。

该国际标准是第一个有关压缩算法的国际标雅。..com中华人民共和国国家标准

信息技术信息交换用数据压缩

具有嵌人字典的自适应编码

DCLZ算法

Information technology

Data compressiou for information interchangeAdaptive coding with embedded dictionary-DCLZ algorlthm1范围

CB/T16686-1996

IdISO/IEC11558:1992

本标准规定了无损的压缩算法,以减小用8位字节编码表达信息所要求的位数。此算法称为DCLZ(根据Lempel和Ziv的数据压缩)。本标准既不规定重置字典的策略,也不规定冻结字典的策略,国为它们是依赖于实现的。当信息必须记录在可互换的媒体上时,此算法特别有用。它的使用并不高限于这种应用。2~致性

如果一个压缩算法的输出数据流满足第7章的要求,则认为与本标准一致。3引用标准

下列标准所包含的条文,通过在本标准中引用面构成为本标准的条文。本标准出版时,所示版本均为有效。所有标准都会被修订,使用本标推的各方应探讨使用下列标准最新版本的可能性。ISO/IEC11576:1994信息技术无的数据压缩算法的登记规程4定义

4.1代码值code value

一个从 0 到 4095 变化的整数,它由压缩算法产生。4.2 代码学 codeword

在以二进制表达代码值的输出流中,9,10.11或12个连续位的集合。4.3 压缩比 comprcssinn ratio压缩算法的输入流中的位数除以压缩算法的输出流中的位数。4.4学典dictionary

由3832项组成的一个表,它用于保留输入流中选择的字节串。每一项由大于263的唯一代码值标识。

4.5空状态emptystatc

字典中无数据的状态。

4.6冻结状态frozeu state

不有数据加入字典的状态。

国家技术监督局1996-12-18批准1997-07-01实施

5记法和周义词

—本标难中的数用「进制表示。-EOR:记录结束。

6算法标识

GB/T16686-1996

本算法在国际登记组织登记的数学标识符是32。7DCI2压缩算法

7.1概述

ECLZ压缩算法应以8位数据字节流的形式接受信息输入,并以新组织成8位字节的位流形式输出代码字。本算法应识别输入流中字节申的重复并应从输出流中排除这样的几余随着出电子信息处理系统和设备产生,发送或记录的信息类型的多伴化,数据重复度足够高以允许输出流比输入流有效地包含更少的位数但是,在变态环境下,输出流可能比输入流包含更多的位数。实际上达到的压缩比依赖于具体的输入数据流的特征,本算法的压缩是死损的,即它可能使用互补的解压缩算法完全恢复数据的原始表达。本算法包含一些特征,这些特征帮助算法实现数据存储和检索设备在顺序方式下处理可变长度的数据记录。

7.2运算原则

运算的基本原则是对出现在输入流中的字节串的一个字典进行编译,使用该字典捡测重复串,并为每个重复串产生一个代码字。这个代码字表达一个代码值,它是对应重复串而被引用的字典项。7.2.1字典的缩译

本算法开始运算之前,字典应设置成空状态(见7.3.1.2)。本算法应检测输入流并应查找第一个出现的唯一对或唯一串,唯一对是一个还没有被分配字典项的2字节串。个字节(n>2)的唯一串是一个还没有被分配字典项的字节串:但是前面的一1个字阶应已被分配字典项。字典项能分配给串的最大长度是128个字节。当遇到唯一对时,本算法应输出“个代码字以表达该对的第-一个字节的代码值。当遇到字节的唯一串时,本算法应输出一个代码字以表达该串前面n一1个字节的代码值。然后,如果字典未被冻结(见7.2.2)且n不超过128,则它应把唯-对或唯串输进字典并分配一个末使用的代码值给该项。

从当前唯一对的第一个字节或从当前唯一串的最后一个字节开始,则本算法应继续检测输入流并查找下‘个唯对或唯串。

7.2.2冻结字典

当出现下列情况时,应认为字典处在冻结状态:—-所有有用的代码值都已被分配;本算法的执行程序凹决定不把唯一对或唯一中输入字典,例如因为在字典中查找未占用空间所耗费的时间太多,

改掉字典冻结状态的唯一方法是重置空状态(见 7.3.1.1),7.2.3重置字典为空状态

如果已输入算法的所有字节已由代码字表达,本算法允许在任何时候重置字典为空状态,例如,如果国为当前字典项没有充分反唤输入流当前的重复特征而使当前玉缩程度不够,算法可以选择重曾宁典,

7.2.4边界

..comGB/T 166861996

在輪入流中,自然边界可以存在于字节集之间。例如,输入流可以出记录的序列组成,每个记录包含一个或多个字节;这种情况下,自然边界存在于记录之间。本算法应提供在输出蔬中识别这种界的方法·以致于它们可以被解压缩算法认识和重组,这种标识应由EOR代码字输出完成(见7.3.1.4),后跟表达单个字节、字节对或字节串的代码值的代码字,这些代码字是为检测输入流的唯一对或唯一串的目的而暂时保存的。然后,输入流的检测应从下一记录的第一个字节继续开始。这个结果是输入流中边界之间的数据由输出流中相应边界之间的代码字完全表达。输出流中这样的边界被认为是定位于跟在紧随EOR代码字后的代码字的填充位的来端。

7.2.5字典的重建

字典本身不作为特征项包含在输出流中,任何适用的解乐缩算法都将亘建字典并存储来自压缩算法输出流数据的原始表达式。

7.3代码值

代码值 0到 7 分配给控制代码。见 7. 3. 1。代码值8到263分配给编码学节。见7.3.2代码值264到4095分配给字典代码。见7.3.3。7.3.1挖制代码

定义 4个控制代码,如下所述的代码值0,1,2.3。4到7的值不用。7.3.1.1字典冻结

该控制代码的代码值应为0。它指示字典已经炼结不强制算法输出该代码值。只要输入至算法的所有字节已由代码字表达,就可以在算法决定弥结字典之后的任何时候输山它。7.3. 1.2字典重置

该控制代码的代码值应为1。它应是字典重置为空状态后由本算法输出的第一个代码值。在其他任何时候都不应当输出它。

必要时,在此输出流中,包含此代码值的代码字应由足够数量的用来填充下一个8位字节的且被置成○的比特跟随着。

7.3.1.3增加代码字大小

该控制代码的代码值应为2。它应该表示所有随后代码字(若有的话,直到下一个增加代码字大小的控制代码为止)的位数目比包含此代码值的代码字的位数目多1。7.3.1.4记录结束(EOR)

该控制代码的代码值应为3。它应该指示在输入流中一个记录边界存在于用下一个代码字表这的代码值表示的字节,对或串之后。必要时,在此输出流中,包含该EOR代码值的代码字应由足够数量的用来填充下一个8位字节的且被置成0的比特龈随着。此输出流中的\F一个代码字应出足够数量的用来填充下-·个8位字节的被置成の的比特跟随着。后者要求是为确保表示输人流中的个记录的组代码字从8位字节开始,在连续的8位字节结束。

7.3.2编码字节

个已编码字节表示输入流中的单个节。一个已编码字节的完整集合表示单个字节的可能值的完整集合,即0到255。一个已编码字节应这样计算:将此字节值加8来进行编码。7.3.3字典代码

一个字典代码识别一个学节对或个学节串的字典项。7.4代码学

当字典是空状态时,代码字的大小是9位,如有必要,增加代码字大小,使之能够表达因太人而不能被当前代码字大小表达的代码值。见7.3.1.3,GB/T16686—1996

本算法也可以在其他任何时候增加代码字大小。如果当前代码字的大小大于表达要求的代码值所必须的大小,亢余位应比需要位在更高的位置,并置为0。减少代码字大小的规则应是:

本算法置字典为空状态;

应输出表达字典重置控制代码的代码字,该代码字的大小应是如果存在的最后一个增加代码字大小控制代码所要求的大小,果有必要,应将填充位置成,直到下一个字节,下一个代码字应是9位的代码字。输出时,代码字应从最低有效位开始,顺序输入代码字的位,从面构造成8位字节从最右位开始:从右罕左外理,构造戒8位字节的连续位。当字节中所有位置都被使用,应输出此字节,随后代码字的位进入输出流的下一字节。

..comGB/T16686-1996

附录A

(提示的附)

通常的 DCLZ 算法示例

下面描述了通常的DCLZ压缩算活。表迷使用结构化的英语,也称为伪代码。该语育便用普通英语的词汇、语法和语义,加上特殊的单词(ENDIF)和格式约定。它表述指令或者是无条件执行,或者是按存在的特殊条件(或者多个条件的组合)执行。它也表述这样的条件。另外,它还提供注群,其月的是有助于读者理解本算法。

按照有条件执行或重复执行,将指令组成集合以文本缩排分层来表示。一个指令集合有相同等级的或不同等级的缩排。

除非要在哪里重复执行或有条件执行已被表明外.指令应从页「方向下顺序执行。注释被括在花括号内,它并不执行。

算法的具体实现可互不相同,例如决定冻结宇典或重置宇典为空状态的实现策略。算法包括两部分。第一部分处理输入流并产生代码值,第二部分处理代码值并产生代码字。在输入流中,如果记录边界跟有在第一部分产生的特殊代码值表示的串的最后字节,则给该代码值添加一个指示符标志。出现这样·个标志就命含第.部分产生包含ER代码值的代码学,A1代码值产生器

本算法的运算如表 A1所示。术语“Pop\意为“输出一个代码值”。术语“Pop&flag'意,为\输出个带添加指示符标志的代码值”。被输出的此代码值括在圆括号内。本算法的-个基本成分是串,称为Current_string。它用于匹配输入流与相应的字典项。它可以为空。如果非空,它包含的字节数应少于130个。字典项是长度在2到128字节之间的串。国而,在字典中查找一个129字节的串将会失败。对待输入流中的最后字节就如同它后面跟有记录边界一样。以下是对表A1所示算法的基本特征的总体描述。41.1外部层

初始化字典为空状态,并输出字典重置控制代码。重复执行A1.2的指令,每重复一次便处理一个记录,直到整个輪入流字节被处理完为止。A1.2处理·个记录

从输人流取得记录的第··个字节。如果该记录仗包含这个字节,则输出该学节的端码字节·开确保代码字产生器产生EOR代码字和适当的填充位。否则,重复执行A1.3中的指令,直到此记录的所有字节被处理完为止。

A1.3 处理一个字节对

从输入流取得下--个字节,从而形成对。如果在字典中有这个对,那么执行A1,4中的指令。否则,如果可能,把这个对加到宇典中,或者如果不可能,则冻结守典;输出对的第一个字节的编码字节,并抛弃第一个字节。如果余的字节是此记录的最后字节,那么翰出该字节的编码字节,并确保代字产生器产生EOR代码字和适当的填充位。A1.4处理---个字节申

重复执行A1.5中的指令,把此对扩充到增加长度的串中,直到到达记录术尾或在字典巾不存在该申。在前一种情况下,输出该串的字典代码,并确保代码字产生器产生EOR代码字和适当的填充位。在后一种情况下,如果可能,把这个串加到字典中,或者如果不可能,则冻结字典,输出此串的所有字节(除了最后字节外)的字典代码,弃这些字节。如果剩余的字节是此记录的最后字节,那么,翰山该字节的编码字节,并确保代码字产生器产生EOR代码字和适当的填充位。A1.5扩充对或串

GB/T 16686—1996

除非此对或串的当前最后字节是此记录的最后字节,从输人流坡得下学节,把它添加到当前对或并为新形成的串查找字典。

表 A1代码值产生器

Reset diclionary lo rupey starePop(IDiceionary Rexet)

Regard dictionary ax not frozenREPEAT iprncessing rite recurd).Initialize Currentxiring Ii riext byte fromn input atreamIF rccbrd boundary Iollowe Ihat byteli. e. rerord is onty I byte?THEN FPop&.flag(Encoded by1. Fot Ihat byte)ELSE REPEAT(pracessing pairs and strings)Append next byte Iroin inpul streart lo Current _stringSeareh dictionary for Current_atriugIF sizrch fuiledli.e. if s unique pair is foundyTHEN IF dietionary is not frozenTHEN Attempt tu add Current _atring to dictionaryIF npt successful

THEN Regrd dictionatry ar frozenENIE

Pop(Fincoderl Bylin far Iut byte uf Current_ string)Renove Ist hyie from Current _atringTF recnrd hlndary fotlnws rermaining byce in Current_stringTHEN Pop&.flag(Fnrodkerl Byl: for that byte)Ser Curremi _alting lo Tull

ELSE REPEAT (a unique pait has not been founrl,sn toutinurs CXaininingthe input streanslooking for A uinigue string ora record houndary!

IF record boundary follows lnst byle af Current_stringTHEN Pap&flag(Fhictinnnry Cole for Current_atringset Current 3iring io null

ELSE Append nextbyte fron inpul glrrsty to CurrentstringScarch dictionary for Current_slringENIF

GB/T 16686-1996

表A1(完)

UNTIL Current _string is null or dictionary 5earch fails[F gearch failed li,e.if the string is a unique wtring?THEN IF dietiunary is pot frozen andCurrent_string length.12s bytesTHEV Attermpllo add Current _string to dictionuryIF not surceskfui

THEN Rekted dicionery as FrozenENDIF

P'op(Jictiatary tord: for eritry nf ull but lesr hytr ai Cnrrrn: _ string)[F record boundary iollows last byre o Current_striugTHEN Pop&flag (Encoded Byte for iasl byie)Sct Current string to null

ELSE Rempve: all bytes but iasl or CurrentstringENDIF

UNTILCurrent_ string is raullsi-H. prexeesing od thiy rcurnrd iy cpmulete:ENDF

UNIIL. inpul stream is exhausted i.e. processing of all records is complete!42

(Codeword Generator)

代码字产生器

本算法的本部分从代码值产生代码学。同时按需要在输出流中填充字节边界。本算法的运算如表 A2 所示。要输出的代码字的闪穿括在圆括号内。Set Codeword size to 9 bits

CB/T 16686—1996

表A2代码字产生器

REPEAT(process all Code Values :une per cycle?Fetch next Cude Valut

IF Cotle Valuc is Dietionary Rese!THEN Qutpul Cordeward(Tietionary Rese1)IF leat hit of Codeword is not al hyte houndary in outpu. st rcamTHEN Outp1t. Z.ERO hiis 10 nexr byle bounelaryENDIF

Set Cadeword size to 9 bits

ELSEIF Codeword size is too small o express Code ValueTHEN REPEAT

Output Codeword (lncrement Codeword Size)Increment Codeword aize by one bitUNTIL Codeword size is sufficient to express Code ValueENDIF

IF Cude Value is flagRed

THEN (utput Codewortd (EOR)

TF las1. hi1. of Codeword is na1. al hyt: boundary in output sttitatlTHEN Output ZERO bits to next byle haundaryENDIF

Oulput. Codeward (Cade Value)IF Code Value is flagged

THEN Output ZERO bits to next byte boundaryENDIF

UNTIL Code Value stream is exhausted附录

(提示的附录)

对给定的输人流输出代码值的示例下例中,自[:而下运行。

输人流:abcdabcdabedabcdabedasbcdxyz输人字节

字典代码

字典项

代码值输出

代码含义

字典重置

a的编码字节

b的编码字节

心的编码字节

d的编码字节

输字节

GB/T 16686-1996

表BI(完)

输入流rabedabedabedabedabcdaabedxyz字典代码

字典硕

代码值输出

代码谊含义

ab 的字典代码

cd的字典代码

abe的学典代码

da的字典代码

bc的字典代码

dab的字典代码

eda的宇典代码

ahcd 的字典代码

x的编码字节

的编码字节

2的综码字节

在这个例子中,用于表示数据的位数目从 224 减小到 168。这是 1. 333 的压缩比。对 ×更长的输人流压缩比更大,这是因为在输入流中重复的串的事例将更多而将做出更多的字典项。压缩比的典型值是从2到4的范围。

附录C

(提示的附录)

参考文献

MarkJ.Bianchi等,《1/zinch盘式磁带驱动器数据压缩》,惠普月刊,第40誉,No.31989年6月,第26~31页。

现行

北检院检验检测中心能够参考《GB/T 16686-1996 信息技术 信息交换用数据压缩 具有嵌入字典的自适应编码 DCLZ算法》中的检验检测项目,对规范内及相关产品的技术要求及各项指标进行分析测试。并出具检测报告。

检测范围包含《GB/T 16686-1996 信息技术 信息交换用数据压缩 具有嵌入字典的自适应编码 DCLZ算法》中适用范围中的所有样品。

测试项目

按照标准中给出的实验方法及实验方案、对需要检测的项目进行检验测试,检测项目包含《GB/T 16686-1996 信息技术 信息交换用数据压缩 具有嵌入字典的自适应编码 DCLZ算法》中规定的所有项目,以及出厂检验、型式检验等。

热门检测项目推荐

检测流程

线上咨询或者拨打咨询电话;

获取样品信息和检测项目;

支付检测费用并签署委托书;

开展实验,获取相关数据资料;

出具检测报告。

北检研究院的服务范围

1、指标检测:按国标、行标及其他规范方法检测

2、仪器共享:按仪器规范或用户提供的规范检测

3、主成分分析:对含量高的组分或你所规定的某种组分进行5~7天检测。

4,样品前处理:对产品进行预处理后,进行样品前处理,包括样品的采集与保存,样品的提取与分离,样品的鉴定以及样品的初步分析,通过逆向剖析确定原料化学名称及含量等共10个步骤;

5、深度分析:根据成分分析对采购的原料标准品做准确的定性定量检测,然后给出参考工艺及原料的推荐。最后对产品的质量控制及生产过程中出现问题及时解决。

北检(北京)检测技术研究院