原文地址:http://blog.52sox.com/data-co...网络段子说2018年是互联网的寒冬。一、阿里、腾讯、华为不会扩招人员优化后,美团、知乎裁员,热闹非凡。不得不说,中国经济进入了一个新的阶段。用官方的话说就是新生态。用老百姓的话来说,就是告别了粗放,迎来了精耕细作的时代。就在我们被互联网寒冬吓得魂飞魄散的时候,董女士所在工厂传来了涨薪的好消息。不过这次是别人的公司。听你说了半天,就是为了告诉我这些伤心事?如果Neri这么认为,那么您可以关闭网页上的选项卡。适合读者。以下内容适合以下人群:编程新手、准备多年跳槽的程序员不管编程语言、数据开发工程师、数据算法工程师、喜欢相关专业(分数线、应用数学)的大学生冒充X有些人,作为入坑的数据专业人士,只能从自己的经历和发展路线来谈数据压缩。现在我们准备启动汽车。简介在过去的10年里,我们见证了沟通方式的一场革命,而且这一过程仍在进行中。这种变化既包括互联网规模的不断增长(从2M到100M带宽的飞跃),也包括移动通信的爆发式发展(从2G到4G,以及即将商用的5G),以及视频通信的重要性.增加。在这场革命的所有这些领域中,数据压缩都是最基本的支撑技术之一。2013年,大数据的概念被提出,Hadoop打响了第一枪。2016年,我们迎来了大数据元年。而2017年迎来了人工智能AI元年。技术和工具不断被引入,我们也在变老。那么,您可能会问:为什么需要数据压缩?了解数据压缩有什么好处?我不处理这部分,告诉我这个,你不是在浪费我的时间吗?为了回答这样的问题,我们先讲什么是数据压缩后再回答这些问题也不迟。什么是数据压缩简而言之,数据压缩是以紧凑的方式表示信息的艺术或科学。人们识别数据中的结构特征并使用它们来生成这些紧凑的表示。说完数据压缩的概念,我们再回到前面的问题,分别进行解释。为什么需要数据压缩需要数据压缩是因为越来越多的信息以数字形式生成和使用。在大数据时代,可以说我们目前被海量的各种信息所包围。比如在百度输入搜索智能手环,第二天就会发现各种智能手环的广告。当然,这些精准的广告营销并没有达到我们的预期,至少看起来还不够聪明。随着需要传输和存储的数据呈爆炸式增长,人们在开发更好的传输和存储技术方面取得了长足的进步,但取得的成果还不够。相关技术也有很多层次,比如大数据处理中的Hadoop工具。Hadoop及其生态系统,大家可以参考。根据帕金森第一定律推论,大容量存储和传输容量的需求增长至少是存储和传输容量增长速度的两倍。在某些情况下,存储和传输能力并没有明显提高,例如无线电波传输的信息量会受到大气层特性的限制。并且通过数据压缩,可以提高其传输能力,减少存储空间。了解数据压缩有什么好处白天说数据压缩,你还没告诉我们了解或学习数据压缩有什么用。学习数据压缩不一定能让你拿高薪,也不一定能让你找到新工作,但可以让你有一定的数据思维基础。至少,你会知道如何在实践中应用它并选择合适的解决方案。请记住,数据压缩只是基础。所谓地基,就是没有它,你的上层建筑就建不起来。抱有浪费时间想法的恳求此时,有人会说,你真是在浪费我的时间。我的工作不涉及这部分内容,你为什么要讲呢?如果你有这样的观点,那你不妨问问自己,你平时不听音乐不看电影吗?而这些都与JPEG、MP3、H.264标准密切相关。数据压缩真的那么重要,学习数据压缩只是扩展你的技术的一种选择,比如选择正确的解决方案来解决工程问题。当然,如果你足够优秀,能够设计出合理的数据压缩方案,你也可以选择自己创业。互联网寒冬,某科技公司近日完成数千万A轮融资。如果你对图像处理领域有所了解,你会发现它其实是一种AI+DSP的模式,没什么大不了的。当然,这也是其他公司的事,怎么办。说了这么多,如果觉得没什么好看的,可以直接关闭标签。如果没有,我们继续。数据压缩的方法在数据压缩的早期,一个典型的例子是使用莫尔斯电码,它用点和划线对电报发送的字符进行编码。通过统计发现,有些字符的出现频率高于其他字符,因此出现频率较高的字符被分配较短的序列,从而减少发送消息所需的平均时间。其中,霍夫曼(Huffman)编码就是使用思想。我们可以通过多种不同类型的结构来实现压缩,而不仅仅局限于使用统计结构进行压缩。在不同类型的数据中,压缩技术可以使用许多其他类型的结构。例如,在讲话中,当我们说话时,喉部的物理结构决定了可以发出的声音。换句话说,产生语音的机械特征赋予语音某种结构。因此,我们可以传输有关喉部结构的信息,而不是直接传输语音本身,接收者使用此信息合成语音。这样,我们只需要少量的数据就可以表示足够的喉部结构信息,从而实现压缩。这是压缩方法早期版本中的声码器。除了利用数据的结构,我们还可以从数据的一些特性入手。例如,在很多情况下,比如传输或存储语音、图像等,这些数据最终都是由人来体验的,人的感知是有限的。对于这些数据所表达的某些内容,用户无法感知,则无需保留该信息。我们利用人类感知的局限性,通过丢弃一些不相关的信息来实现压缩。在开始研究数据压缩技术之前,我们先对这个领域做一个总体的概述。什么是压缩技术对于数据压缩,首先需要设计相应的算法和方案。压缩技术或压缩算法实际上是指以下两种算法:压缩算法,它把输入X,生成一个需要较少二进制位的表示Xc,对压缩后的表示Xc进行运算,生成这些运算的示意图重建结果y如下图所示:按照惯例,我们将压缩算法和重建算法结合在一起,称为压缩算法。根据重构的需求,我们可以将数据压缩分为两类:无损压缩,重构结果y和x同样是有损压缩,达到的压缩率通常高于无损压缩,但是重构结果y可能不同来自X无损压缩在无损压缩技术中,不允许信息丢失。该技术通常用于一些不允许原始数据与重构数据有任何差异的应用,其中以文本压缩为代表。对于文本压缩,如果压缩后的文本与原始文本不一致,可能会造成语义混淆。有损压缩有损压缩技术会导致一些信息丢失,使用这种技术压缩的数据通常无法再准确地恢复或重建。然而,如果重建结果中的失真是可以接受的,那么它达到的压缩率通常比无损压缩高得多。设计好数据压缩方案后,我们还需要能够衡量其性能。数据压缩的应用领域多种多样,因此用来描述和衡量压缩性能的术语也各不相同。性能衡量我们可以通过多种方式来评价一个压缩算法,我们可以从以下几个方面来衡量:算法的相对复杂度,算法在给定计算机上的运行速度,重建结果与原始数据之间的压缩量。原始数据常用的相似性指标有:压缩比率建模和编码,对重构结果的要求可能会直接决定应该使用有损还是无损压缩方案,但是使用哪种压缩方案可能需要很多不同的因素来决定.一些最重要的因素是要压缩的数据的特性。例如,一种可以有效压缩文本的技术在压缩图像方面可能并不同样有效。针对特定数据开发数据压缩算法,我们可以分为两个阶段:建模编码在第一个阶段,我们通常称之为建模,我们试图理解数据中存在的冗余,并用一个模型来描述这种冗余.在第二阶段,我们通过编码的方式来描述模型,描述数据和模型之间的差异。数据和模型之间的差异通常称为残差。比如在前面的摩尔斯电码中,我们首先通过统计手段了解到某个字符出现频率高于其他字符,这是一个建模过程。使用分配给高频字符的较短序列是一种编码方法。结论在数据压缩中,我们有很多不同的方法来描述数据的特性,不同的特性描述方法可以得到不同的压缩方案。参考书籍:《Introduction to Data Compression,Fourth Edition》P1-8
