问题标签 [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 投票
3 回答
145 浏览

list - 列表中重复元素的计数

该程序获取一个重复元素的列表,例如L = (a a a b b b c c c d),并输出一个项目列表和重复次数,例如((a 3)(b 3)(c 3) d)

但是,我收到此错误:

错误:应用程序:不是程序;期望一个可以应用于给
定参数的过程:1个参数...

错误出现在第二个 if 条件的真谓词上。

0 投票
0 回答
1132 浏览

c++ - C++上的TGA RLE压缩(编写)算法

我找到了这段代码,我想知道为什么它不起作用..

// f 是一个流

}

我试图实现它,它似乎并不好..

否则,有人知道它是否存在一个库或只是一个简单的文件,我可以在其中找到这个算法?

提前谢谢你

0 投票
1 回答
1733 浏览

python - 使用 RLE 读取和压缩图片

目前我正在学习 python,我想更多地了解数据压缩。所以我决定尝试编写运行长度编码(RLE)。

从我读过的内容来看,当您尝试压缩图片时它会很有用。

我想知道对于初学者来说最简单的图像文件类型是什么?如何使用 python 从图片中读取像素 RGB 值或类似值?

0 投票
1 回答
5483 浏览

python - 运行长度编码图像

我正在为作业编写一个运行长度图像编码器。我的代码适用于二进制和8 位图像,但是当我想对4 位图像进行编码时,它无法正常工作。我正在使用 Ubuntu 13.10、Python 3.3.4 和 Pillow。执行以下代码应该打印TrueTrue但它会打印TrueFalse.

为了测试我的代码,我生成随机列表来模拟图像。它有效,第一个值显示它,但此图像不起作用。还有 4 个这样的图像,但它们都不起作用。我错过了什么吗?

数据压缩算法完整参考第 4 版第 26 页

同样,每个字节都有一个比特用于指示该字节是否包含灰度值或计数。然而,这一次,这些额外的位以 8 个一组的形式累积,并且每个组都被写入输出流中它“对应”的 8 个字节之前(或之后)的输出流中。</p>

我将其更改为支持 4 位图像。

示例 原始图像:12, 12, 12, 12, 12, 12, 12, 12, 12, 14, 3, 7, 10,10, 10, 10, 5, 5, 5, 5, 5, 5, 1, . . .

第一步:找到重复 9, 12, 14, 3, 7, 4, 10, 6, 5, 1, . . .

第二步:生成map来识别哪个元素是像素值(0),也就是重复数(1) 1 0 0 0 0 1 0 1 0 。. .

第三步:用零填充值以使长度成为八的倍数。用 1 填充地图以使长度成为 8 的倍数。

第四步:将 map 分成 8 个部分,并将每个部分转换为整数。133, . . .

第五步:将每两个 4 位耦合成一个 8 位。将左值向左移动 4 次,然后将其与右数相或。156, 227, 116, 166, 81, . . .

第六步:将地图与值合并。map 中的每个整数现在都表示 4 个值。133, 156, 227, 116, 166, . . .

解码与此操作相反。

0 投票
1 回答
960 浏览

java - Java:运行长度编码实现

我已经实现了一个应该使用运行长度编码从标准输入压缩或扩展二进制输入的类。我已经修复了我的 IDE 标记的所有错误,但是当我实际运行它时,我得到了一个错误。

在代码中,第 49 行如下:

如果有人可以向我解释我的问题是什么,我将不胜感激。

0 投票
1 回答
386 浏览

java - Java:传递运行长度编码的参数

我想测试 Windows 可执行文件 (.exe) 上的运行长度编码算法,但运行程序时没有收到输出。没有编译错误;运行仅表明构建成功,仅此而已。

这是代码:

我不相信我在主函数中正确传递了 .exe 文件,但我不确定这是否是问题所在。感谢所有愿意帮助我理解这个问题的人。

0 投票
0 回答
443 浏览

java - Java使用二维到一维数组压缩图像?

我的任务有问题。我有一个读取 PGM 图像文件的类。我需要创建几个类,主要的是一个压缩类。我需要将 PGM(由二维数组表示)压缩成一维数组。

以下是说明:

  • 传递一个代表图像的 2D 短裤数组。
  • 将压缩图像作为 1D 短裤数组返回。
  • 这种方法是我主要关心的。

压缩思路:

  • 寻找相似像素值的水平或垂直运行,并记录像素值自身重复的次数。
  • Spektre 的注释:这称为PCX 使用的RLE 运行长度编码,例如

算法:

1.使用水平运行计算压缩图像数组

2.使用垂直运行计算压缩图像数组

3.选择压缩图像使用此特定图像的最佳技术。

4.设置图片的标题

  • 将 short [ ] 结果数组的第一个和第二个值设置为宽度和高度值。
  • 将 short[ ] 结果数组中的第三个值设置为 1 用于水平压缩或 2 用于垂直压缩。

5.设置图片主体

  • 剩下的 short [ ] 结果数组用 RLE 数量和值填充

还有一些其他的方法

  • 如果有人想帮助他们:

    /li>
  • 传递一个代表压缩图像和所需文件名的 1D 短裤数组。

  • 只需将值写入文本文件,并在文件名中添加 .compressed 扩展名。

    /li>
  • 传递一个压缩的图像文件名。

  • 只需读取值并以一维短裤数组形式返回它们。

    /li>
  • 传递一个代表压缩图像的一维短裤数组。

  • 只需解压缩文件,以便我们可以将其显示在屏幕上
  • 使用我们已有的 showGrayImage() 代码。

提前致谢!

0 投票
6 回答
555 浏览

matlab - 基于长度向量的 MATLAB 重复数字

是否有一种矢量化的方式来执行以下操作?(通过示例显示):

我已将 input_lengths 隔开,因此很容易理解如何获得结果

结果向量的长度为:sum(lengths)。我目前result使用以下循环进行计算:

编辑:

我也可以使用 arrayfun 来做到这一点(虽然这不完全是一个矢量化函数)

0 投票
1 回答
248 浏览

compression - mp3 或 wav 文件格式可以利用重复的声音吗?

我想将一些声音片段存储为 MP3 或 WAV 文件,但这些片段每个都是高度重复的(例如 10 秒的音调)。MP3 或 WAV 文件格式是否能够利用这一点 - 即是否存在相当于运行长度编码的声音文件?

0 投票
1 回答
196 浏览

python - 运行长度编码为所有重复值提供相同的数字

我正在为混合不同压缩算法的短字符串构建一个压缩器,而 RLE 就是其中之一,这就是问题所在。

我现在拥有的脚本如下,虽然目前还很不完整:

当我运行该函数时,我得到了这个:

但我应该得到:

我在这里做错了什么,我得到了6作为重复字符的计数?