问题标签 [run-length-encoding]

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 投票
5 回答
1831 浏览

list - 在Prolog中计算连续出现的数字

您好,我正在尝试在 Prolog 中编写一个程序,给定一个列表,它计算列表中每个连续元素的出现次数,如下所示:

结果将是X=[ [1,3],[2,3],[3,1][1,2] ] 每个子列表[element,occurrences]

就我而言,我认为基本情况有问题,但我无法解决。你能帮助我吗?

0 投票
4 回答
701 浏览

r - 创建特定值的连续运行计数器

我有数据,其中连续的零运行被非零值的运行分隔。我想为“SOG”列中的零运行创建一个计数器。

对于 SOG 中的第一个 0 序列,将 Stops 列中的计数器设置为 1。对于第二次运行的零,将“Stops”设置为 2,依此类推。

0 投票
2 回答
5612 浏览

java - Java中的运行长度编码图像压缩

好的,所以我有一个大学作业,我需要使用运行长度编码和霍夫曼编码来压缩图像。我专注于运行长度编码 atm,因为我认为我没有时间实现霍夫曼。

我目前正在做的是传入一个缓冲图像,然后做

获取图像的字节。然后我接受它并进行实际的压缩,为了做到这一点,我使用了一个 stringBuffer,我很确定这是错误的,但我想不出另一种方法来做到这一点。所以代码是

我很确定我不应该转换为字符串,因为当我返回字节时,我将获得 ascii 值而不是实际字节。但是我不知道如何有效地将运行长度附加到标准字节数组(我想如果我将运行长度附加到开头,然后将所有内容移到 byte[i+runLength] 之后,我可以做到这一点)数组中的 runLength 数量..但这将非常低效并且容易出错......可能)

然后我需要将其保存为图像,这显然目前无法正常工作,但我目前获得的代码是

感谢您提供的任何帮助:)

只是注意到我错过了设置 rleImage 的部分

0 投票
2 回答
778 浏览

java - Java 位图 RLE8 格式

Java ImageIO(或任何其他图像处理程序)是否支持 BI_RLE8 图像格式?我唯一设法找到的是BMPImageWriteParam但我不知道如何使用它。任何帮助都会很棒。

0 投票
0 回答
523 浏览

java - 在对字节数组执行 RLE 压缩后使用 BMPImageReader 时出现 Java EOFException

EOFException在尝试Bitmap使用 RLE 压缩图像时遇到问题。我基本上采用位图图像的字节数组,然后对第 54 个字节之后的所有内容执行 RLE 压缩,因为这都是头文件的内容。然后我使用BMPImageReader读取新的字节数组,然后BMPImageWriter将其保存为新的 RLE8 压缩位图。

但是在该部分

它在最后一行抛出异常。我已经逐步完成了代码,它很好地传递了标头,但是在读取第一个字节时抛出了异常(我认为......这有点难以理解)。

这是堆栈跟踪:

有谁知道可能导致错误的原因?

0 投票
2 回答
1411 浏览

matlab - 运行长度编码 Matlab

我在 Matlab 中进行运行长度编码,到目前为止,我已经实现了 zigzag 算法并得到了一个数组 RunLengthCoding:

现在我需要运行长度代码这样我得到:

这是 (length,value),例如 (0,6),因为没有 0,我们的值是 6,那么当我们遇到第一个 0 时,我们得到 (1,-1),因为有一个 0 并且值在它是-1之后。

我的尝试:

我知道这不会运行!但这就是我迄今为止所管理的

0 投票
1 回答
109 浏览

database - 特定列的所有位图索引的压缩大小是否最多与表的大小成正比?

我正在阅读 Daniel Lemire 的帖子 The Mythical Bitmap Index ( http://lemire.me/blog/archives/2008/08/20/the-mythical-bitmap-index/ ),他在帖子中说

位图索引的压缩大小最多与表的大小成正比!与不同值的数量无关!

我很难看出他是如何计算这个值的。

我知道长度为 N 的运行长度编码文本的最坏情况下的空间使用与 N (2N?)成正比,所以 O(N)。

我也知道特定列的位图索引数量的最坏情况是当列的基数为 N 时,其中 N 是表中的记录数(因此每条记录在该特定列中都有唯一值) . 这意味着将有 N 个位图索引。

然而,在位图索引的最坏情况假设下,每个位图索引在运行长度编码时将具有恒定的空间使用,因为它只是一些零,1,然后是一些零,所以 O(1)。

因此,在最高基数 N 下所有位图索引的总空间使用量仅为 N x O(1) = O(N)。

但是,对于所有可能的情况,您如何从这个特定的计算转到最坏的情况?我不清楚我描述的情况,其中基数 = N,是所有位图索引加在一起的最坏情况空间使用情况。

您将如何计算为表中的列添加在一起的所有运行长度编码位图索引的最坏情况空间使用情况?

0 投票
6 回答
4569 浏览

c# - 给定排序字符串的行程编码

为给定字符串的运行长度编码编写代码
示例输入:aaaaaaaaabcccccc
输出:a10bc6

我的代码:

但是它返回:

a10b1c6

我想删除非重复字符的计数,这里是字母“b”的“1”。

假设它是一个排序的字符串。

0 投票
2 回答
1204 浏览

compression - 十六进制的霍夫曼 vs RLE

我正在尝试使用十六进制字符压缩文件,但我不知道使用霍夫曼编码是否有效,因为 RLE 取决于文件和字符,如果我更改文件,这永远不会相同压缩。

我应该使用霍夫曼吗?如果效率低下,为什么?是否有任何已知的算法可以用来更好地压缩它,我可以用任何语言将其编写为代码?

0 投票
0 回答
52 浏览

matlab - 如何在 MATLAB 中重复和拆分这个向量?

我有一个包含九个元素的索引向量IDX = [1 2 1 3 4 3 1 2 1]。(在另一篇文章中,我询问了如何重复两个单独的向量 IDX1 和 IDX2,但这里我将所有元素都放在一个向量中)

该矩阵的前五个元素将根据 中的元素重复howMany1 = [3 2 2 1 2],接下来的四个元素将根据 重复howMany2 = [2 1 2 2]。所以结果是:a1 =[1 1 1 2 2 1 1 3 4 4]a2 = [3 3 1 2 2 1 1 ]。我怎样才能通过 MATLAB 将结果存储在一个单元格中的两个单独的矩阵中?这是我的代码,但我无法找出问题所在。感谢大家抽出宝贵的时间。