问题标签 [data-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 投票
2 回答
252 浏览

binary - 消息的最小预期长度

一个袋子包含 16 个以下颜色的球:8 个红色、4 个蓝色、2 个绿色、1 个黑色和 1 个白色。Anisha 从袋子里随机挑选一个球,并使用一串 0 和 1 向 Babu 发送它的颜色信息。她把袋子里的球放回原处,重复这个实验很多次。每个实验她必须向巴布传达的信息的最小预期长度是多少?
(a)3/2 (b)log 5 (c)15/8 (d)31/16 (e)2

据我说,因为球是用替换取出的。任何时候,包里都有16个5种不同颜色的球。要编码 5 种颜色,应该需要 log5 的上限(以 2 为底),即 3 位,但给出的答案是 (15/8)。有人可以指出我的错误并为正确的解决方案提供一些提示吗?

0 投票
1 回答
127 浏览

sql - 如何验证 sql server 2008 R2 中数据压缩的物理影响

我试图在 sql server 数据表上实现“行”数据压缩。在一个具有 116000 条记录和 30 列(10-15 列可能符合行数据压缩条件)的数据表上成功执行脚本后,我按照以下步骤进行物理内存消耗验证:

第 1 步)我为驱动器中的数据库计算所有数据文件(mfd、ldf 和 ndf)的存储空间。结果为 6.63 GB。

步骤 2) 成功执行行数据压缩脚本,例如

第 3 步)按照第 1 步)得到 6.66GB。这些步骤之间没有单一的事务和数据插入。

我是在做错误的验证,还是我对数据压缩的想法有误。

假设: Int(4 byte) 数据类型且存储值小于 100 的数据列将被压缩存储在 1 byte(small Int) 的空间中。对于其他数据列也是如此。

0 投票
4 回答
1742 浏览

json - 将大型 JSON 数据从 android 发送到 php 服务器可以压缩吗?

我正在将 JSON 格式的大型数据集从我的 android 设备发送到我的服务器(使用 PHP)。我想降低带宽成本。我想知道:我应该在发送数据之前 gzip 压缩 JSON 数据服务器端吗?php 端有 javascript gzip 解压缩库吗?我在 android 端做什么?

0 投票
1 回答
192 浏览

actionscript-3 - AS3 位图黑白 - 出于压缩原因

我有一个由 BitmapData 组成的字段,用于像素精确的命中检测。

但是,BitmapData 自然地为每个像素存储 2^32(或 2^24 没有 alpha?)的可能性。我只需要 2 - 黑色或白色。

但我仍然需要使用 .draw 将其他对象绘制到该 BitmapData 上。它不需要可见。

提取一个像素以进行命中检测似乎并不难——但在不循环遍历每个像素的情况下进行绘制似乎很难。可能吗?

解决这个问题的正确方法是什么?

0 投票
1 回答
796 浏览

huffman-code - MATLAB:数据压缩中的算术编码或霍夫曼

我有一个包含 10000 行的数字向量,大部分值为零。在这种情况下,Arithmetic 和 Huffman 之间的无损压缩算法应该选择哪一种呢?提前致谢!

0 投票
1 回答
109 浏览

c - Count frequency of 8-bit symbols from file

I have next challenge and need a little help ;)

Program to write: The file is treated as a row of 8-bit symbols.

  1. Count the frequency (incidence) of these symbols
  2. Count the frequency of these symbols after symbols (if the previous character is given, in front of first charakter is sign with code 0).

The program should work for doc, pdf, mp4, jpg (take a min 1MB file).

So I wrote a little bit of code; here it is:

main:

#xA;

EDIT: It's now good?

0 投票
1 回答
1610 浏览

c - 自适应(动态)霍夫曼编码:对文件中的数据进行编码和解码

我现在正在编写应该对文件中的数据进行编码/解码的程序。

字母表:8 位 ASCII 码
所以我在这个字母表中有 n = 256 个符号,最大堆数是 2n-1 = 511

我了解自适应霍夫曼编码的算法,但我在实现这一点时遇到了一些问题。

我写了我的代码的第一部分,但我需要一些帮助才能继续前进。

这是程序的链接:算法

  1. 我的树结构是否正确?
  2. 我应该如何存储字母?我写了一个关于代码的结构,但我不知道如何处理符号列表-> struct huffcode
  3. 我知道如何增加堆的重量等,但我不能走得更远。我对“以前见过这个符号/这个符号在树中第一次出现”有疑问
0 投票
1 回答
2038 浏览

java - 将字节数组写入文件(大文件)

我有一个灰度图像,在其中我以二维字节数组的形式表示它们,这些字节具有不同的值,具体取决于它们各自的比特率,即(0 -> 255)。然后我应用一个或多个压缩算法,即(运行长度编码) 来提取另一个尺寸更小的字节数组,这代表压缩操作。从中我成功地将位图文件重建为代表解压缩操作的原始形式。我知道一切正常,因为我通过解压缩操作得到了相同的图像。

现在我的问题是在进行压缩操作后,我想将生成的数组存储到一个文件中,在解压缩时将在该文件中提取其内容。我试过把它写成文本文件

我试着把它写成二进制文件

然而,在这两种情况下,这个文件的大小都比原始位图文件的大小要大得多。

512x512 位图文件大小 32KB

压缩文本文件大小 272KB

压缩二进制文件大小 257KB

位图的字节数组大小 262144

压缩数组大小 111049

因为我的压缩数组实际上比从位图文件中提取的原始数组小得多,我如何保存为比位图更小的文件?

我不确定我是否正确解释了自己,如果需要,请询问更多详细信息。

谢谢!

0 投票
1 回答
97 浏览

algorithm - 为什么我们不使用简单的二进制值来压缩数据

在霍夫曼算法中,我们形成一棵树,然后用树值 1 和 0 替换每个字符,为什么我们不简单地使用二进制数字等a=0,b=1,c=10,d=01,e=11而不是用字符替换它们,并且在解压缩时应用反向并替换带有字母的二进制数字。

像这样:

等等...

0 投票
1 回答
1710 浏览

c++ - 如何有效地解压霍夫曼编码文件

我发现很多问题都在问这个问题,但有些解释很难理解,我不太了解如何有效解压缩文件的概念。我发现了这些相关问题: Huffman code with lookup table 如何快速解码霍夫曼代码?

但我无法理解解释。我知道如何定期对霍夫曼树进行编码和解码。现在在我的压缩程序中,我可以将以下任何信息写入文件符号霍夫曼代码(无符号长)霍夫曼代码长度

我打算做的是获取一个文本文件,将其分成小文本文件并单独压缩,然后通过将所有小压缩文件及其各自的查找表(不知道如何做这部分)发送到Nvidia GPU 尝试使用某种查找表并行解压缩文件。

我有 3 个问题:我应该在文件头中写入哪些信息来构建查找表?如何从文件重新创建此表?如何使用它快速解码霍夫曼编码文件?