问题标签 [compression]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
136937 浏览

apache - 为什么对 Apache 提供的文本文件使用 deflate 而不是 gzip?

对于 LAMP 服务器提供的 html、css 和 javascript 文件,这两种方法都有哪些优势。有更好的选择吗?

服务器使用 Json 向地图应用程序提供信息,因此需要大量的小文件。

另请参阅在 http 压缩中选择 gzip 而不是 deflate 是否会对性能造成影响?

0 投票
6 回答
4015 浏览

networking - 实时多人游戏(概念题)

我一直在阅读Valve 的这篇文章,该文章似乎解释了他们的多人游戏系统的架构。似乎他们在客户端延迟渲染几个滴答,以便他们可以处理丢弃的数据包,但他们也将数据包作为“增量快照”(两个相邻状态之间的差异)发送。

假设我们有时间 A、B、C,并且客户端在时间 A 是正确的,但在 B 丢包,然后在 C 接收包。它如何正确推断 C 时间的状态?C 的数据包只告诉(我认为)状态 B 和 C 之间的增量,而客户端只知道 A 的状态。我在这里缺少什么?

0 投票
3 回答
3197 浏览

visual-studio-2008 - WiX 生成的 MSI 未压缩

我使用 WiX3 生成 MSI 安装包。<Package>我在和<Media>元素中都指定了压缩标志:

但生成的 MSI 根本没有压缩 - WinZip 将其从 2M 压缩到 600K。

我错过了什么吗?

我正在使用 VS2008 顺便说一句。

0 投票
7 回答
15545 浏览

json - JSON编码数据包的压缩算法?

在通过网络发送数据包之前,用于压缩数据包的最佳压缩算法是什么?数据包使用 JSON 编码。LZW 会是一个很好的选择还是有更好的选择?

0 投票
8 回答
8327 浏览

delphi - 如何使用 Delphi 将多个文件压缩到一个存档中

我需要使用 Delphi 将多个文件压缩到一个存档中。我更喜欢使用免费软件组件或开源组件,因为我非常便宜 :-)

我的主要要求是:

  1. 可以加密存档
  2. 可以创建任何拥有 WinZip 副本的人都可以打开的通用存档

有人对他们使用过的组件有建议吗?请随时建议免费以及商业组件/库。

0 投票
11 回答
11443 浏览

iphone - 如何减小 iphone 的 sqlite3 数据库的大小?

编辑:非常感谢所有的答案。以下是到目前为止应用优化后的结果:

  • 切换到对字符进行排序和运行长度编码 - 新的 DB 大小 42M
  • 删除布尔值上的索引 - 新数据库大小 33M

真正好的部分是这不需要对 iphone 代码进行任何更改

我有一个 iphone 应用程序,其中包含一个以 sqlite 格式(只读)保存的大字典。我正在寻找减少当前非常大的数据库文件大小的想法。

这是 sqlite DB 的条目数和结果大小:

...平均每个条目大约 135 个字节。

这是我的数据库架构:

以下是一些示例数据:

最后一个字段表示字谜检索的字母频率(每个位置在 0..9 范围内)。这两个布尔值表示子字典。

我需要进行以下查询:

我的一个想法是更有效地对字母频率进行编码,例如将它们二进制编码为一个 blob(也许使用 RLE,因为有很多零?)。关于如何最好地实现这一目标的任何想法,或其他减少尺寸的想法?我正在用 ruby​​ 构建数据库,并在目标 C 中通过电话阅读它。

还有什么方法可以获取数据库的统计信息,这样我就可以看到什么是使用最多的空间?

0 投票
3 回答
858 浏览

c - 在 C 中解压缩 .Z 文件

有人可以指出我在 ANSI C 中解压缩 .Z 文件的公共域(或 MIT 或 BSD 许可证)库吗?

谢谢!

0 投票
8 回答
45333 浏览

ios - iPhone解压码

真的坚持尝试编写代码来解压缩 iPhone 上的文件或目录。

下面是我用来尝试解压缩简单文本文件的一些示例代码。

它解压缩文件,但它已损坏。

0 投票
5 回答
2466 浏览

java - 我有哪些选择来存储和查询大量重复的数据?

我正在评估 Java 中高效数据存储的选项。数据集是带有命名主键的时间戳数据值。例如

可能是给定时间点的股票价格,所以我想它是一个经典的时间序列数据模式。但是,我真的需要一个通用的 RDBMS 解决方案,它可以与任何合理的 JDBC 兼容数据库一起使用,因为我想使用 Hibernate。因此,对 Oracle 等数据库的时间序列扩展并不是一个真正的选择,因为我希望实现者能够使用他们自己的支持 JDBC/Hibernate 的数据库。

这里的挑战仅仅是可以在短时间内积累的海量数据。到目前为止,我的实现主要集中在定义定期汇总和清除计划,其中原始数据被聚合到 DAY、WEEK、MONTH 等表中,但缺点是粒度的早期损失以及存储在不同的周期之间的周期不匹配的轻微不便聚合体。

挑战的选择有限,因为在保持数据的原始粒度的同时可以物理压缩多少数据是有绝对限制的,而使用关系数据库的指令和支持通用 JDBC 的指令加剧了这一限制.

借用经典数据压缩算法的概念概念,并利用同一命名键的许多连续值可以预期相同的事实,我想知道是否有方法可以通过将重复值合并为无缝减少存储记录的数量一个逻辑行,同时还存储一个计数器,该计数器有效地指示“下一个n记录具有相同的值”。实现这一点似乎很简单,但要权衡的是,现在使用标准 SQL 查询数据模型非常复杂,尤其是在使用任何类型的聚合 SQL 函数时。这显着减少了数据存储的有用性,因为只有复杂的自定义代码才能将数据恢复到“解压缩”状态,从而导致与数百个无法正确呈现此数据的工具的阻抗不匹配。

我考虑了定义自定义 Hibernate 类型的可能性,这些类型基本上可以“理解”压缩数据集并将其备份并返回带有动态创建的合成行的查询结果。(除了严格控制的输入流之外,数据库将只读给所有客户端)。除了原始 JDBC(例如 JasperReports)之外,我想到的一些工具将与 Hibernate/POJOS 集成,但这并不能真正解决聚合函数问题,并且可能还有许多其他问题。

因此,我可能不得不使用更专有的 [可能是非 SQL] 数据存储(任何建议表示赞赏),然后专注于编写伪 JDBC 驱动程序的可能不太复杂的任务,以至少简化与外部工具。

我听说过一种称为“位压缩文件”的东西作为实现这种数据压缩的机制的参考,但我不知道有任何数据库提供这个以及我想要做的最后一件事(或者可以做,真的...... ) 是写我自己的数据库。

有什么建议或见解吗?

0 投票
15 回答
3908 浏览

image - 网络漫画的图像压缩

可能这里有很多人,我读了一些网络漫画。Drowtales是我最喜欢的,但这不是重点。

很长一段时间以来,一个想法一直萦绕在我的脑海中:网络漫画是画出来的。它们不是照片。应该有很多冗余(更少的颜色,更平坦的颜色区域等),因此它们应该很容易以相当高的速率压缩,同时仍然保持无损质量。似乎压缩它们的最佳工具仍然是相同的旧有损 JPEG。

怎么会这样?没有更好的东西被发明出来吗?我不是数据压缩方面的专家,所以我自己寻找更好算法的微薄尝试都没有结果。我能找到的最好的是Pngcrush,但它在压缩方面仍然落后于 JPEG。

我想听听专家对此的意见。我的这个想法是愚蠢的,注定要失败吗?或者是否有一些人们已经找到或我可以研究的方法?

当然,这来自于减少加载时间的自私愿望。:)

补充:有些人似乎没有抓住重点,所以我会澄清一下:

网络漫画图像应该有很多冗余,所以它们应该很容易压缩。是否不可能以某种方式压缩它们以使它们既无损又小于JPEG?或者至少比 JPEG 更好地压缩它们,同时仍然保持质量。

由于它们将用于网络,因此专用压缩器仍可能会发出 PNG 或 JPEG - 只需使用修改后的算法进行压缩以获得更好的结果。