问题标签 [lossy-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 投票
5 回答
3314 浏览

image - JPEG 大小为 8px 或 16px 的倍数是否有质量、文件大小或其他好处?

JPEG 压缩编码过程将给定的图像分割成 8x8 像素的块,在未来的有损和无损压缩中使用这些块。[来源]

还提到,如果图像是多个 1MCU 块(定义为最小编码单元,“通常在两个方向上 16 个像素”),则可以对 JPEG 进行无损更改。[来源]

我正在处理产品图片,并且想知道在我的最终图片尺寸中使用 16 的倍数(例如,使用尺寸为 480 像素 x 360 像素的图片)与非16(例如 484x362)。在此示例中,我对最终图像的进一步更改、编辑或重新压缩不感兴趣。

为了更接近一个我知道必须有很大普遍性的特定答案:给定一个 64k 的 480x360 图像,并在 Photoshop [示例]中以最高质量保存:

  • 我可以预期 484x362 的图像会有任何质量损失吗
  • 我可以期望增加多少文件大小(对于这个例子,额外的空间是白色像素)
  • 比 8px 网格更大还有其他缺点吗?

我知道使用该特定示例是任意的,但它仍然会有所帮助(对于我和可能任何其他考虑图像大小的人)了解我在打破非 8px 网格时要处理的妥协程度。

这里的关键问题是我曾经争论过的问题是 8 像素可分割图像是否比不能被 8 像素整除的图像质量更高。

0 投票
10 回答
11039 浏览

graphics - JPEG 压缩图像可以在不损失质量的情况下旋转吗?

JPEG 是一种有损压缩方案,因此解压缩-操作-再压缩通常会进一步降低每一步的图像质量。是否可以旋转 JPEG 图像而不会造成进一步的损失?根据我对 JPEG 算法的了解,天真地似乎可以通过一些努力来避免进一步的损失。哪些常见的图像处理程序(例如 GIMP、Paint Shop Pro、Windows 照片库)和图形库在执行旋转时会导致质量损失,哪些不会?

0 投票
2 回答
508 浏览

image-processing - 有损压缩的图像处理

如果我们将无损压缩图像的图像处理与有损压缩图像的图像处理进行比较,后者是否提供与前者相当的结果。

我问这个问题是因为无损压缩产生的图像对人眼来说是可以的,但它们在微小的细节上会有所不同,这可能会影响计算机对图像的处理。但我说不出有多少。

0 投票
2 回答
3969 浏览

c# - 具有有损压缩的 .NET 多页 Tiff

我需要一种方法来获取多个 jpg 并将它们转换为单个多页 Tiff。我使用 GDI+ 进行工作,但它仅适用于无损压缩 LZW。这意味着我的 3 个 50KB Jpgs 变成了 3MB 多页 Tiff 文件。对于我正在开发的软件,这不是我可以接受的。

我知道 Tiff 图像格式可以使用 JPG 压缩方案,但 GDI+ 似乎不支持这一点。

如果有人知道如何在 .NET (C#) 或任何进行此转换的组件中执行此操作。

0 投票
6 回答
114394 浏览

video - 减小相同格式的视频大小并减小帧大小

这个问题可能很基础

有没有办法减少有损压缩(WMV、MPEG)格式的帧大小/速率,以获得具有相同格式的更小、更小尺寸的视频。

是否有任何开源或专有 api 用于此?

0 投票
6 回答
7703 浏览

c++ - 有比JPEG更快的有损压缩吗?

是否有比 JPEG 更快但得到很好支持的压缩算法?我知道 jpeg2000,但据我所知,它并没有那么快。

编辑:用于压缩。

Edit2:它应该在 Linux 32 位上运行,理想情况下它应该是 C 或 C++。

0 投票
4 回答
30986 浏览

java - 如何在 Android 上以自定义质量级别保存 JPEG 图像

在 Android 上,如何以 30% 的质量将图像文件保存为 JPEG?

在标准 Java 中,我会使用ImageIO将图像读取为BufferedImage,然后使用IIOImage实例将其保存为 JPEG 文件:http ://www.universalwebservices.net/web-programming-resources/java/adjust-jpeg-image-compression -quality-when-saving-images-in-java。但是,Android 似乎缺少该javax.imageio软件包。

0 投票
1 回答
465 浏览

compression - 最先进的有损压缩程序

有谁知道音乐和图像之外的数据的最先进的 LOSSY 压缩程序?我需要实际的可执行或可编译源代码。

我正在尝试压缩 AMillionRandomDigits.bin。

想法是有损压缩AMillionRandomDigits.bin,然后存储LOSSY_COMPRESSED(amillionrandomdigits.bin) + DIFF(LOSSY_UNCOMPRESSED, amillionrandomdigits.bin) http://www.stanford.edu/~hwang41/

0 投票
1 回答
1835 浏览

php - PHP GD 编辑 Jpeg 无需重新压缩

假设我有一个 jpeg 文件,我想将一些像素设置为某种颜色。当我保存 jpeg 时,即使我将质量设置为 100,我也会失去颜色并且在新像素周围看到锯齿。我知道这是一种有损格式,但我不想重新压缩图片,只需设置一个几个像素。

所以也许GD不是去这里的路吗?我确实需要更改某些像素的颜色,并且它们在保存时需要准确。有没有办法在不依赖 GIF、PNG 或 JPEG2000 的情况下做到这一点?

0 投票
3 回答
150 浏览

algorithm - 可变带宽数据链路的日志数据缩减

我有一个嵌入式系统,它以 1 毫秒的间隔生成样本(16 位数字)。可变上行链路带宽最多可以每 5ms 传输一个样本,因此我正在寻找方法来自适应地降低数据速率,同时最大限度地减少重要信息的丢失——在这种情况下是时间间隔内的最小值和最大值。

我认为应该可行的方案涉及稀疏编码和有损压缩的变体。像这样:

  1. 系统将在 10 毫秒间隔内在内部存储最小值和最大值。
  2. 系统将在内部对这些数据对的有限数量(例如 50 个)进行排队。
  3. 不允许丢失最小值或最大值,但它们发生的时间间隔可能会有所不同。
  4. 当队列满时,相邻的数据对将从队列的末尾开始合并,这样转换后的最小/最大对现在代表 20 毫秒的间隔。
  5. 该方案应该是迭代的,以便在必要时将进一步的间隔组合为 40ms、80ms 等。
  6. 该方案应该在队列的长度上线性加权,以便没有对最新数据的组合和对最旧数据的最大必要组合。

例如,对于长度为 6 的队列,连续的数据缩减应该导致数据对覆盖这些间隔:

左侧添加新样本,右侧读取数据。

这个想法显然属于有损压缩稀疏编码的范畴。

我认为这是一个在上行链路带宽有限的数据记录应用程序中经常出现的问题,因此可能会出现一些“标准”解决方案。

我故意简化并省略了时间戳等其他问题。

问题:

  1. 是否已经有算法可以进行这种数据记录?我不是在寻找标准的有损图片或视频压缩算法,而是如上所述更具体的数据记录。
  2. 队列最合适的实现是什么?链表?树?