首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Felix的技术分享

    霍夫曼压缩算法

    霍夫曼压缩算法 概述 霍夫曼压缩算法的主要思想是用较少的比特表示出现频率较高的字符,用较多的比特表示出现频率较低的字符。如下图所示, 实现 ①读入完整的输入流,并转化为字符数组。 } BinaryStdOut.write(false); writeTrie(x.left); writeTrie(x.right); } 将压缩文件中字节流转化为 根据这张表,可以将源文件中的某个字符,压缩为更少bit表示的Huffman树上的路径。 buildCode(st, x.right, s + "1"); } else { st[x.ch] = s; } } 压缩 /** * 从输入流中读字节流,并将压缩后的结果写入输出流 */ private static void compress() { //①读入完整的输入流

    2.1K80发布于 2018-06-08
  • 来自专栏宇宙之_一粟

    RLE压缩算法

    RLE压缩算法(下简称RLE算法)的基本思路是把数据按照线性序列分成两种情况:一种是连续的重复数据块,另一种是连续的不重复数据块。 RLE算法的原理就是用一个表示块数的属性加上一个数据块代表原来连续的若干块数据,从而达到节省存储空间的目的。 一般RLE算法都选择数据块的长度为1字节,表示块数的属性也用1字节表示,对于颜色数小于256色的图像文件或文本文件,块长度选择1字节是比较合适的。

    1.4K20发布于 2020-10-28
  • 来自专栏架构师成长之路

    gzip压缩算法

    gzip,zlib,以及图形格式png,使用的是同一个压缩算法deflate。我们通过对gzip源码的分析来对deflate压缩算法做一个详细的说明: 第一,gzip压缩算法基本原理的说明。 第二,gzip压缩算法实现方法的说明。 第三,gzip实现源码级的说明。 1. Gzip压缩算法的原理 gzip 对于要压缩的文件,首先使用LZ77算法的一个变种进行压缩,对得到的结果再使用Huffman编码的方法(实际上gzip根据情况,选择使用静态Huffman 所以明白了LZ77算法和Huffman编码的压缩原理,也就明白了gzip的压缩原理。我们来对LZ77算法和Huffman编码做一个简单介绍。 (编号0到7是从最低位开始) 6)将第5到8字节中的时间值保存在全局变量time_stamp中。 7)跳过第9字节(压缩时采用的算法-更快或是比例更高)和第10字节(压缩时的操作系统)。

    3.1K10编辑于 2022-04-14
  • 来自专栏FPGA开源工作室

    压缩算法简介

    1 概述 压缩算法是一种通过减少数据量来节省存储空间或传输数据的技术。压缩算法可以分为两种类型:有损压缩和无损压缩。 有损压缩算法会牺牲一定的数据精度或质量,在压缩数据的同时丢失一些信息。 2 压缩算法的应用 压缩算法在各种领域广泛应用,包括但不限于以下几个方面: 文件传输和存储:压缩算法可以减少文件的大小,使文件传输更加高效快速。 常见的视频压缩算法包括H.264、HEVC等;音频压缩算法包括MP3、AAC等。 LZ4是一种LZ系列压缩算法,着重于压缩和解压的速度,压缩率相对较低。LZ4压缩率较低,算法复杂度和内存消耗中等,但是压缩和解压速度,尤其是解压速度远超其他算法。 RLE(Run Length Encoding),也称为行程编码,压缩算法是一种无损压缩算法算法特点:简单、易实现。

    1.8K10编辑于 2024-06-21
  • 来自专栏WebJ2EE

    算法:LZW 压缩

    属于无损压缩编码。 LZW 通过建立字符串字典,用较短的代码来表示较长的字符串来实现压缩。 LZW 的字典无需专门存储,可通过压缩信息还原。

    1.6K40发布于 2019-07-19
  • 来自专栏程序员小藕

    后台 压缩算法

    时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 小Q想要给他的朋友发送一个神秘字符串,但是他发现字符串的过于长了,于是小Q发明了一种压缩算法对字符串中重复的部分进行了压缩 , 对于字符串中连续的m个相同字符串S将会压缩为[m|S](m为一个整数且1<=m<=100),例如字符串ABCABCABC将会被压缩为[3|ABC], 现在小Q的同学收到了小Q发送过来的字符串,你能帮助他进行解压缩

    92120编辑于 2022-05-09
  • 来自专栏架构狂人

    json 压缩算法

    json 压缩算法 无论使用何种编程语言,json格式的数据已被广泛应用,不论是数据的传输还是存储,在很多应用场景下,你可能想进一步地压缩JSON字符串的长度,以提升传输效率,如果你使用的是nosql 数据库,你可能想进一步的压缩json字符串的长度来节省你的存储空间,接下来,我将介绍一下目前最常用的json数据压缩技术(CJSON和HPack)的实现 一、 CJSON CJSON 的压缩算法, 主要是将资料抽离成 : [{ "values": [1, 100, 100] }, { "values": [2, 100, 100, 200, 150] }, {}] } 二、HPack HPack 的压缩算法 API: 这样的做法可以被认为是一种加密性质的压缩,如果数据接收方不知道数据结构,是无法直接解析出目标值的。 从上面的例子中,我们发现,CJSO和HPack 都只是节省了 json数据键的大小,但是里面的中括号和引号都无用且大量冗余,我上面介绍的这种压缩方法使用起来复杂度可能高一点,但是压缩比可以比上面的两种更好一些

    87320编辑于 2023-08-16
  • 来自专栏烟草的香味

    GC算法-标记压缩算法

    概述 还记得标记清除和复制算法的问题么? 堆使用效率低和碎片化问题. 那么有没有能够利用整个堆, 有没有内存碎片化问题的算法呢? 这就是标记压缩算法了. 简单来说, 标记压缩算法就是将堆中的所有活动对象整体向左移, 将对象间的空隙消除. 在GC执行前的内存: GC执行后的内存: 恩, 就是这么个意思. 实现 如何实现上面的操作呢? 而这, 也是标记压缩算法最大的问题了, 执行时间太久了, 标记清除对堆进行一次遍历, 而标记压缩要进行三次. 三倍的时间. 可想而知. 不过也有伟人说了, 算法没有好不好, 只有是否适合. 这几种可达性的算法各有优劣吧. 标记压缩的衍生 Two-Finger算法 将堆的遍历次数减少到两次. (原谅我的无知) 其他 还有一些其他的表格算法、lmmixGC算法等, 因为这两个我看的似懂非懂, 就不细说了. 标记压缩算法差不多就这么些. 告辞~~~

    1.3K10发布于 2020-04-08
  • 来自专栏FPGA开源工作室

    Huffman算法压缩压缩(C)

    Huffman压缩算法是一种基于字符出现频率的编码算法,通过构建Huffman树,将出现频率高的字符用短编码表示,出现频率低的字符用长编码表示,从而实现对数据的压缩。 以下是Huffman压缩算法的详细流程: 统计字符频率:遍历待压缩的数据,统计每个字符出现的频率。 然而,Huffman算法对于小规模数据压缩效果不佳,适用于处理较大规模的数据压缩。 2 huffman压缩算法过程详细演示 下面将通过一个简单的例子来演示Huffman压缩算法压缩过程,假设有一个字符串 “ABRACADABRA” 需要进行压缩。 4 C语言Huffman解压缩算法示例 以下是一个简单的C语言示例代码,实现了Huffman算法进行数据解压缩的功能: #include <stdio.h> #include <stdlib.h> #include

    1.6K10编辑于 2024-07-06
  • 来自专栏EffectiveCoding

    Kafka 之压缩算法&Hash算法

    Kafka 支持的压缩算法还挺多的,这一篇来站在Kafka的角度看一下压缩算法。就当前情况来说,支持GZIP、Snappy、LZ4 这三种压缩算法。 具体是通过compression.type 来开启消息压缩并且设定具体的压缩算法。 但是整个压缩的过程也是很耗时的,通常来说KafkaProducer.send( )主要时间其实都花在在压缩操作上,如果压缩的过程十分漫长,那么压缩就显得有点多余了,所以选择一个高性能的压缩算法是十分关键的 Snappy Snappy是谷歌开源的一个压缩/解压库,其实Snappy的压缩率挺一般的,可能比我们常见的压缩算法压缩率都要差,但是Snappy 对于Kafka 这种消息系统来说有一个显著的优点,它的压缩速率基本上是第一的 因为我对压缩算法也不是很熟悉,只能概要的介绍一下,推给大家,还请见谅,以后有机会仔细的来看这些压缩算法,下面是几种算法的一个比较,然后Kafka是按照batch对消息进行压缩的。 ?

    2.4K30发布于 2019-07-31
  • 来自专栏烟草的香味

    数据压缩算法

    概述 之前在听到数据压缩的时候, 想着肯定是某些高深莫测的算法, 能够完成数据的压缩这种事情, 最近看了看, 嗯, 至少咱还是能看懂的. 此数字串的处理方式如下: 123456 78 (返回8个, 复制6个) 987 (返回17个, 复制8个) 当然, 真正压缩后的数字串后没有这一坨中文, 以一个标志编码来表示, 咱就假设是r(return 那上面的数字串就变成了这样: 123456-78-r8c6-987-r17c8 这里有个很有意思的地方, 回忆一下方案一的20个1. 用这种copy 方式也能表示: 1r1c19. 并不是, 如果你不做特殊标志的话, 计算机并不能分辨出98 应该是 9和8, 还是98. 所以, 需要有个标志, 比如, 以7开头的, 说明是1位编码, 以2开头的都是三位编码等等. 有损压缩 上面的无损压缩, 在将压缩文件解压后, 能够完全恢复压缩前的文件. 虽然已经很好了, 但是有损压缩压缩文件要比它小很多, 当然代价就是无法还原. 不要以为没有用哦.

    2.3K20发布于 2020-06-09
  • 来自专栏随意记录

    整数压缩算法 TurboPFor

    本文讲述整数压缩算法 TurboPFor。 Bitpacking block第 1 个 bitpacking block 指定了位宽 <= 32,随后跟着的是被压缩的数据。 110,110,000 拼接后会变成 000110110Bitpacking with exceptions (bitmap) block如果大部分数字都可以用 3 bit 表示,但是只有少量数字用 8 拼接成一个数字2 解码变长字节第一个字节 b[0] 用来存储区分范围[0 - 176]:值是 b[0]0 -- 10110000[177 - 240]:14 bit 的值,其中高 6 bit 位于 b[0],低 8 bitpacking一般的 bitpacking整数按照顺序存储,例如,bitpack 3 bit 的整数:SIMD bitpacking (256v32)SIMD bitpacking 会一次性处理 8

    1K10编辑于 2023-11-21
  • 数据压缩算法

    以下是一些广泛应用于网络通信中的压缩算法,它们可以在不牺牲过多计算资源的情况下有效减少数据体积: 1. 它基于DEFLATE算法,结合了LZ77压缩算法和Huffman编码,提供了不错的压缩率。 2. LZ4 LZ4是一种非常快的无损压缩算法,它的设计目标是高速压缩和解压,特别适合对延迟敏感的应用,如游戏、实时数据流处理等。 7. RLE (Run-Length Encoding) RLE是一种简单的无损压缩算法,特别适合包含大量重复数据的序列,如图像中的平滑区域。虽然压缩率可能不高,但它非常快速且易于实现。 8. 选择哪种压缩算法取决于具体的应用场景,包括数据类型、压缩速度、解压速度、压缩率的需求以及是否需要无损压缩等因素。在实际应用中,可能会根据网络带宽、CPU资源和数据特性的不同,选择最适合的压缩算法

    75310编辑于 2025-08-29
  • 来自专栏Don的成长史

    字符串压缩算法

    本文链接:https://blog.csdn.net/weixin_42449444/article/details/94060471 题目描述: 输入一串字符,请编写一个字符串压缩程序,将字符串中连续出现的重复字母进行压缩 ,并输出压缩后的字符串。 例如: aac 压缩为 1ac xxxxyyyyyyzbbb 压缩为 3x5yz2b 输入描述: 任意长度字符串 输出描述: 压缩后的字符串 输入样例: xxxxyyyyyyzbbb 输出样例: 3x5yz2b 解题思路: 小红书19年校招题,这道题在刷PAT乙级的时候有写到过类似的题:【PAT乙级】字符串压缩与解压。 = 0) { cout << cnt; //先输出压缩的字符个数 } cout << str[i]; //再输出被压缩的字符

    4.3K20发布于 2019-11-08
  • 来自专栏OBKoro1的前端分享

    算法—字符串压缩

    字符串压缩 难度:简单 描述: 设计一种方法,通过给重复字符计数来进行基本的字符串压缩。 例如,字符串 aabcccccaaa 可压缩为 a2b1c5a3 。 而如果压缩后的字符数不小于原始的字符数,则返回原始的字符串。 可以假设字符串仅包括 a-z 的字母。 注:需判断压缩后的字符串长度和原始字符串长度。

    2.6K10发布于 2020-10-27
  • 来自专栏登神长阶

    【论文复现】图像压缩算法

    本文提出的方法是目前基于深度学习的图像压缩领域性能最佳的方法。 于是作者就想,能不能把这两种方法做一个结合,做这么样一个结构,使其同时具备这两种算法的优点。 LIC-TCM算法亮点二:熵模型设计 接下来是作者的第二部分工作,提出了一种熵模型。 可以看出常规的熵模型是将整个y送入到一个提取超先验信息的网络当中,然后得到熵编码需要的参数。 parameter (default: %(default)s)", ) parser.add_argument( "--batch-size", type=int, default=8, default)s)" ) parser.add_argument( "--test-batch-size", type=int, default=8,

    92510编辑于 2024-12-28
  • 来自专栏java系列博客

    MD5压缩算法

    String s = null; //用来将字节转换成十六进制表示的字符 char hexDigits[] = {'0' ,'1', '2', '3', '4' ,'5' ,'6', '7','8'

    2.7K60发布于 2018-06-13
  • 来自专栏小石头

    kafka压缩算法以及设置

    EX:在properties中指定压缩算法 Properties props = new Properties(); props.put("bootstrap.servers", "localhost ("compression.type", "gzip"); Producer producer = new KafkaProducer<>(props); producer 端和broker端 压缩算法应该指定相同 还有可能在消息格式不同的情况下,V2向下兼容会导致 重新 / 解压缩,也会让kafka丧失了引以为傲的0拷贝特性。 各种压缩算法 benchmark: 图片 压缩消息还能显著降低网络带宽压力。 总结: 该节主要讨论了 Kafka 压缩的各个方面,包括 Kafka 是如何对消息进行压缩的、何时进行压缩及解压缩,还对比了目前 Kafka 支持的几个压缩算法,希望你能根据自身的实际情况恰当地选择合适的 Kafka 压缩算法,以求实现最大的资源利用率。

    1.8K20编辑于 2022-11-10
  • 来自专栏大模型系列

    TurboQuant压缩算法是什么

    TurboQuant是谷歌研究院(Google Research)在 2026 年初正式发布的新型向量压缩算法,该技术旨在显著降低大语言模型(LLM)和向量搜索引擎在推理阶段的内存占用,尤其针对 键值缓存 H100 GPU 上,4-bit 版本的 attention logits 计算速度最高提升 8 倍✅ 实测数据(Gemma 模型):原始 KV Cache:2.4 GBTurboQuant(3-bit ):0.41 GB推理延迟降低 37%,吞吐提升 2.1x 三、技术组成:不止一个算法谷歌同时公布了 三项协同技术:TurboQuant:主干量化压缩算法(用于 KV Cache)PolarQuant: ,不影响训练;且不压缩模型权重,只压缩推理中生成的中间缓存。 不同于浅层的概念科普,作者坚持 “手算 + 代码” 的深度分享模式,主张通过手动推演理解算法本质,结合生产级代码验证理论可行性。

    1.4K20编辑于 2026-03-26
  • 来自专栏铭毅天下

    Elasticsearch 8.x 存储有无压缩?能压缩到多少?

    1、认知前提 Elasticsearch 支持压缩压缩方式默认为:LZ4 压缩算法。 中文翻译为: 默认值使用 LZ4 压缩压缩存储的数据,但这可以设置为 best_compression,它使用 DEFLATE 来获得更高的压缩率,但会降低存储字段的性能。 0801_20220713/elasticsearch-8.1.0/config/certs/http_ca.crt 导出成功截图: 所占存储空间大小: 2.2 Elasticsearch 默认 LZ4 压缩算法的存储大小 LZ4 算法压缩到一半! 新压缩算法 best_compression 压缩后,压缩为原始空间的:35%,也就是能省65%的空间。 压缩比要求高推荐使用:best_compression。

    1.2K10编辑于 2024-07-15
领券