文摘

随着红外(工业革命)4.0,传感器在物联网的传播(物联网)可能产生大量的数据,这将挑战存储和网络带宽有限的传感器。因此,大数据压缩的研究是有价值的领域的传感器。一个问题是如何有效地压缩长河中数据的有限内存的一个传感器。保持性能,传统的压缩技术有治疗数据流规模小而无能,这将降低压缩比。为了解决这个问题,本文提出一种block-split编码算法命名为“CZ-Array算法”和实现共享软件名为“ComZip。“CZ-Array可以使用一个相对较小的数据窗口覆盖一个可配置的大规模,这有利于压缩比。它快速的时间复杂度O (<年代pan class="nowrap"> ),适合大数据压缩。实验结果表明,与CZ-Array ComZip可以获得一个更好的比gzip压缩比,lz4, bzip2,和p7zip多个流数据压缩,它也有一个称职的速度在这些通用数据压缩软件。此外,CZ-Array简洁,符合传感器的硬件并行实现。

<年代pan class="end-abs">

1。介绍

随着红外(工业革命)4.0和下面的快速扩大物联网(物联网),大量的传感器可以在各个领域,这将产生大量的数据。4.0红外的灵魂,物联网与智能决策和控制依赖于这些有价值的数据。但传播传感器的智能系统数据也带来问题,特别是在WSN(无线传感器网络)和宝贵的带宽。由于有限的存储容量和网络带宽,GBs或TBs数据传感器在物联网使一个巨大的挑战。

数据压缩是一个可取的办法减少存储消耗,加快交通网络。在实践中,流数据被广泛用于支持大数据量超过最大存储一个传感器。例如,传感器与HD(高清)相机可以处理的视频数据流,尽管小内存。在大多数情况下,很多传感器在同一区可能产生类似的数据,可以收集和压缩流,然后传输到后端云平台。

本文关注的是传感器的压缩计算严格要求低消费,快速编码,和节约能源。这些特殊要求排除大部分不压缩算法。我们注意到无损压缩,因为它是一般。即使是有损压缩系统通常包含一个熵编码器作为终端设备,这取决于无损压缩。例如,在图像压缩、DCT(离散余弦变换)算法(1)需要无损压缩。一些有损压缩算法可以避免熵编码器,如圣言(奇异值分解)算法(2),但他们通常消耗更多的计算资源和能源比无损压缩。

一个问题是关于有限记忆长河下各个传感器的数据。传感器必须压缩gb的数据或更多,而传感器只有MBs的RAM(随机存取内存)或更少。在大多数传统的压缩算法,压缩率取决于数据窗口的大小,内存的容量是有限的。保持性能,传统技术把数据流规模小而无能,这将降低压缩比。

例如,2 MB的数据窗口看不到2 MB的流数据一次;因此,压缩算法不能合并数据内外这个窗口,即使他们是相似的和可压缩。窗外规模限制的压缩率。不幸的是,由于有限的硬件性能和能耗的传感器,很难扩大长河中数据压缩的数据窗口。

此外,物联网中的多个数据流是常见的,如双摄像头视频数据也推出,这些流可能冗余数据,应该被压缩。但自从小的数据窗口能看到一点点流的一部分,它怎么能看到更多流,这样就可以合并吗?

在我们之前的论文中,我们设计和升级压缩格式命名“CZ格式”可以支持1 TB的数据窗口(或更大)3,4),它在我们的压缩软件名为“ComZip实现。“但传感器的RAM仍然限制了数据窗口大小。并使用闪存来扩展数据窗口是不好的,因为压缩速度会明显下降。

解决问题的长河中数据压缩和数据窗口大小有限,本文提出一种block-split编码算法在ComZip“CZ-Array算法”,并实现它。CZ-Array算法具有以下特点:<年代pan class="list">(1)它将数据流分为块和重建的时间复杂度O (<年代pan class="nowrap"> )所以数据窗口可以覆盖更大的范围以适应大数据压缩(2)它构建一组匹配链接加快LZ77压缩算法(5从O(),降低了时间复杂度<年代vg height="8.8423pt" id="M3" style="vertical-align:-0.2064009pt" version="1.1" viewbox="-0.0498162 -8.6359 11.0475 8.8423" width="11.0475pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 2)O (<年代pan class="nowrap"> )(3)它简洁的硬件设计LZ77编码器管道,所以传感器可以使用并行硬件加速LZ压缩

我们做一些实验平台x86/64和手臂(先进的RISC机器),比较之间的数据压缩效率与CZ-Array ComZip, gzip、bzip2, p7zip lz4。实验结果表明,与CZ-Array ComZip可以获得最好的压缩比在这些通用数据压缩软件的多个流数据压缩,和它也有主管速度。此外,算法分析推断CZ-Array简洁,符合传感器的硬件并行实现。

进一步的实验中,我们在网站上提供2版本的ComZip: Ubuntu Linux (x86/64平台)和Raspbian (ARM平台)。其他研究人员可以下载它们http://www.28x28.com: 81 / doc / cz_array.html

本文的其余部分的结构如下:

部分2表示传感器的长河中数据压缩问题。部分3介绍了CZ-Array编码的算法。部分4分析CZ-Array算法的复杂性。实验结果给出了部分5。结论给出了部分6

2。传感器的长河中数据压缩问题

视频/音频或其他特殊传感器在物联网可以生成长河中数据,但数据传输的瓶颈,存储和计算网络的传感器需要消除。数据压缩满足这个需求。图1显示了一个典型的场景在网络轻和重传感器,在长河中生成的数据。

这个网络有很多轻量级节点情况和生成长河中数据。因为他们有有限的能量、存储容量和计算资源,他们既不能保持数据在本地也不能让强大的压缩。与此同时,几重网络中的节点可以收集和压缩数据,以减少长途带宽,然后传输到后端云平台。云平台有足够的资源存储、减压和分析数据。

在我们之前的论文,我们已经讨论了沉重的大数据压缩和加密网络中传感器节点(4,6),但如果重节点压缩长河中数据,我们仍然有问题有限的内存,能源消耗,速度和压缩比。本文主要关注以下问题:<年代pan class="list">(1)有限的数据窗口大小;如何覆盖更大的范围来看到更多数据流到一个更好的压缩比?(2)保持压缩比基本不变;如何提高压缩算法的速度?

在我们之前3]和[4),我们已经表明,一个较大的数据窗口可以获得更好的压缩比。在本文中,我们仍然使用相同的压缩比的定义如下:<年代pan class="equation_break" id="EEq1">

和<年代vg height="8.68572pt" id="M7" style="vertical-align:-0.0498209pt" version="1.1" viewbox="-0.0498162 -8.6359 10.095 8.68572" width="10.095pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 是压缩的卷和原始数据,分别。如果不压缩原始数据,<年代pan class="inline_break"> 如果压缩数据大于原始数据,<年代pan class="inline_break"> 总是<年代pan class="inline_break">

压缩算法可以合并相似的数据片段在一个数据窗口。因此,一个较大的数据窗口可以看到更多的合并数据和有更多的机会。但是数据窗口大小容量的内存是有限的。尽管在图1云平台有足够的RAM对于大型数据窗口,一个典型的heavy-node传感器目前只有MBs的RAM。使用VM(虚拟内存)扩大数据窗口不够好,因为闪存比内存慢得多。

此外,一个沉重的节点可能从不同的轻量级节点收集数据流,流可能有类似的数据片段。但有一个数据窗口能看到不止一个流更多的合并机会吗?

对于第二个问题,压缩速度传感器是非常重要的,尤其是重节点。GBs的流数据必须被压缩,而传感器的计算资源是有限的。减少数据窗口大小加速计算不是一个好方法,因为压缩比沉明显,再次遇到了第一个问题。

来解决这个问题,我们需要检查有关工作主要在传感器和流数据压缩。

在[3]和[4),我们已经讨论了当前无损压缩的数学模型和方法可分为3类:<年代pan class="list">(1)压缩基于概率和统计:典型的算法在这个类是霍夫曼和算术编码(7]。数据窗口大小几乎不能影响等一类压缩的速度维护的统计数据压缩,霍夫曼编码的时间复杂度是O(磅<年代pan class="nowrap"> )和传统的算术编码是O (<年代pan class="nowrap"> )。 是符号的编码量,如256个字符和索引码字在某些LZ算法。O (<年代pan class="nowrap"> )不够快,但是目前的算术编码算法进行了优化并达成O(磅吗<年代pan class="nowrap"> ),包括在ComZip [3]。(2)基于字典的压缩索引:典型算法在该类LZ系列(5),如LZ77和LZ78 /降落区实现字符串匹配的时间复杂度传统LZ77 LZ78和降落区编码是O (<年代vg height="8.8423pt" id="M16" style="vertical-align:-0.2064009pt" version="1.1" viewbox="-0.0498162 -8.6359 11.0475 8.8423" width="11.0475pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 2),O (<年代pan class="nowrap"> ),和O (<年代pan class="nowrap"> )。 是数据窗口大小。在ComZip,我们优化LZ77和达到O (<年代pan class="nowrap"> )由CZ-Array算法。本文主要关注它。(3)压缩基于符号的顺序和重复:典型算法在该类BWT (burrows - wheeler变换)8),MTF (move-to-front) [9],RLE(行程长度编码)。

传统BWT编码的时间复杂度是O (<年代pan class="nowrap"> ),这是太慢了。但目前BWT算法优化,达到O (<年代pan class="nowrap"> ),包括在ComZip CZ-BWT算法(6]。

此外,我们使用一种新方法将数据流分割成块和重建的时间复杂度O (<我>N)。这是BWT和MTF / RLE,但这是另一种提高压缩比的数据窗口。本文作为CZ-Array算法的一部分。

米TF和RLE简洁,易于实现,但其压缩比当前压缩领域的竞争力。为了达到更好的压缩比和性能,目前流行的压缩软件通常结合不同的压缩模型和方法。表1流行的压缩软件的特点和ComZip列表。

专注于压缩比和速度的平衡,本文忽略了一些现有的方法,如MTF, RLE, PPMd [10),和PAQ过低压缩比和速度。

在本文中,术语“数据窗口”指的是不同的在每个压缩算法的数据结构。如果软件结合了多个数据窗口,我们以其瓶颈窗口为重点。表2在典型的压缩算法显示了数据窗口。

扩大的数据窗口,提高性能,研究人员尝试各种方式。每个压缩类都有一个不同的算法优化。如前所述,ComZip也保持了最优算法的3类,但每一次我们不能专注于太多的点。在[6),我们的时间复杂性传统BWT相比,BWT与sa) (11],与GSACA BWT [12),和CZ-BWT当前BWT研究。

研究压缩与AI(人工智能)是一个充满希望的方向。目前的研究主要是围绕一些特殊领域,如图像压缩的神经网络(13- - - - - -15]。然而,这仍然是一个问题对于人工智能实现一般领域无损的压缩效率,尤其是在计算资源有限的传感器。论述了通用压缩,和一些比人工智能算法更为实用。我们可以继续学习人工智能算法的为我们的未来的工作。

压缩的性能是很重要的传感器,所以并行计算的研究和硬件加速如ASIC(专用集成电路)和FPGA(现场可编程门阵列)[16- - - - - -18是有价值的。研究的一个热点是GPU(图形处理器)加速度(19- - - - - -21]。但是当我们提到的4),问题是并行线程的数据窗口分割成小片,然后降低压缩比。确切地说,本文关心的数据窗口大小和规模。

在[6),我们已经考虑CZ-BWT简洁的硬件设计,本文也认为CZ-Array的硬件实现。扩大规模的数据窗口,CZ-Array遵循突袭的命题(独立磁盘冗余阵列)[22),以前用于存储容量、性能和容错。提高压缩速度、CZ-Array参考来自lz4 [17),一个基于LZ77当前最快的LZ算法。RAID和lz4都简洁,但突袭不是用于压缩之前,和lz4小数据窗口和低压缩比。

我们安排我们的工作在数据编码的研究。表3显示了在我们的工作的关系。我们使用相同的平台:ComZip软件系统。ComZip与未揭露的部分是一个复杂的平台各种编码的研究问题,它仍在发展中。本文描述清楚,每一次我们只能关注几点。所以每篇论文显示不同的细节,和我们称之为专注A, B, C, D。

2显示了这些ComZip集中在平台。我们可以看到,每篇论文的数据有不同的表象ComZip因为不同的问题。通常情况下,本文侧重于数组编码,所以绿色箭头在图2指出ComZip细节看不见的的数据3,4,6]。此外,本文比较了相似的焦点结构C和D:匹配链接建设者(MLB)。尽管有这些mlb CZ-BWT [6)和CZ-Array有不同的功能中,我们将介绍用一个类似的结构,可简化硬件设计和节省成本。

3所示。CZ-Array编码

3.1。CZ-Array的概念

压缩软件ComZip使用并行管道命名为“CZ管道。“我们已经介绍了CZ编码框架管道(4,6),扭转框架CZ解码管道。图3是相同的编码框架,所不同的是,CZ-Array单位是嵌入式,包括<年代pan class="list">(1)巴布(块数组构建器),它可以组合多个数据流为一个统一的数组数据流和扩大规模的窗口(2)大联盟(匹配链接生成器),它可以改善LZ77和BWT编码的速度

这仅仅是主要的设计,可以把数据流具有相同的长度。算法的实现12需要额外的控制逻辑电路的情况。

10显示了大联盟的主要硬件设计。清晰地展示设计,我们使用3块RAM。但在实践中,我们可以使用同一块内存和分成3个区域的数据地址。这也是主要的设计和算法的实现3阶段(一)需要额外的详细设计。例如,这种设计不能停止和重启的蓄电池时数据窗口。

在视图的硬件,数据910简洁,易于优化硬件速度。

5。实验结果

在[3,4,6),我们已经做了一些实验来比较ComZip和其他压缩软件,但它们在不同版本、不同情况下。本文主要关注CZ-Array和比较ComZip p7zip (7 - zip的Linux版本),bzip2, lz4, gzip。这些压缩软件很受欢迎,和很多其他的压缩软件与他们相比。我们可能只是与他们比较ComZip可以估计因为与他人比较。

在本文中,我们使用的参数“9”gzip和lz4获得最大压缩比。对于ComZip本身,我们使用<年代pan class="inline_break"> 测试BAB编码,然后使用<年代pan class="inline_break"> 模拟ComZip没有巴布。这是可行的通过修改参数配置文件中的“列”“cz.ini”。我们也使用<年代pan class="inline_break"> 和<年代pan class="inline_break"> MB通过修改参数“视觉”和“集群”。

我们发现4公共文件模拟数据流,并感谢OpenWRT项目的开发者。表6显示这些文件。他们可以从下载http://downloads.openwrt.org/

本文的实验硬件平台:2日x86/64和手臂。他们的表演可以提供未来和当前大量传感器节点的引用。Linux操作系统的实验平台。我们仍然在网站上提供ComZip,但是港口变成81。研究人员可以用它来做更多的实验与新数据。它可以从下载http://www.28x28.com: 81 / doc / cz_array.html

5.1。x86/64平台上测试

这个平台是一种常见的台式电脑使用以下设备:AMD Ryzen 2700 x 8核和16-thread CPU, 64 GB DDR4内存,250 GB的SSD(固态硬盘)和Ubuntu Linux 16.04 (x64)。我们认为这台电脑是未来高端移动传感器,因为承运人的电机可以提供足够的能量。软件版本是ComZip v20180421 (64 b), p7zip v16.02, bzip2 v1.0.6, lz4 v1.8.3, gzip v1.6。,提高匹配的效率链接,ComZip用途<年代pan class="inline_break"> 在这个实验中,这意味着斗阵图8与26 b匹配字符串而不是24 b。

7和图11显示压缩文件大小的关系<年代vg height="14.1101pt" id="M250" style="vertical-align:-5.4742pt" version="1.1" viewbox="-0.0498162 -8.6359 22.8132 14.1101" width="22.8132pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 和数据窗口大小<年代pan class="nowrap"> 从方程(1),我们可以发现,这种关系实际上是压缩比和之间的关系<年代pan class="nowrap">