问题标签 [image-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 回答
8341 浏览

java - 在 Java 中更改图像分辨率而不调整大小

我想压缩jpeg图像,即降低其分辨率,而不以任何方式调整其大小。有没有什么好的 Java 库可以帮助我做到这一点?SO中有很多类似的帖子,但其中大多数最终也会调整图像大小。

如果没有,我该如何以编程方式进行?比如说,对于 0.9 的参数,图像的分辨率将降低 0.1 倍......

0 投票
1 回答
17023 浏览

opencv - OpenCV - 图像压缩的可能选项

感谢您花时间阅读我的帖子。

我正在做一个进展顺利的小项目,但作为优化练习,我想减少我输出的一些 JPEG 的大小。目前,我有一个 600 x 400 的 .jpg 文件,大约 80kb。

我已经阅读了关于 32 位、8 位有符号、无符号和浮点数和字符的图像,以及 BGR 和 YUV 颜色空间,但不确定哪些是最影响大小的因素。

有人能建议我从哪里开始减少这个文件的大小吗?

我当然会尝试并进行自己的测试,以找到适合文件大小平衡的图像质量。

非常感谢,凯

0 投票
2 回答
991 浏览

image-processing - 将多张图片压缩成一张图片

我正在研究将多个图像存储在一起作为一个更大的图像时减少存储空间的问题。基本直觉是图像往往具有一些相似性(例如在相同位置或大约相同时间点拍摄的图像),我们可以利用这种相似性来节省空间。

例如,对于 JPG 编码的图像,整体流程是:输入JPG图像 -> 将每个图像转换为RGB图像块 -> 将相似RGB的块重新组织在一起 -> 再次转换为JPG格式。自然,在检索图像时,我们需要反转该过程。

我刚刚意识到 JPG 图像不太适合这种情况,因为它们主要适用于小型 8x8 宏块,因此JPG 编码并没有充分利用大规模的相似性(在图块级别 - 每个图块是一些 256x256 宏块等) 。


除了 JPG 之外,还有其他一些图像编码格式可以在聚合多个图像时更好地利用这种相似性吗?例如,这对 PNG 编码过程会更好吗?

0 投票
0 回答
536 浏览

opencv - Jpg 压缩和查看/写入文件

所以,我通过网络发送灰色 jpg 图像。我使用 jpge 在内存中压缩它们:https://code.google.com/p/jpeg-compressor/,然后通过网络传递它们。当我使用 opencv 显示它们或将它们写入文件时,我遇到了同样的问题:

正在捕获和显示第一张图像,然后仅显示之后每张图像的一小部分。根据我的直觉和调试:通常,100 x 100 灰度像素图像将是 100 * 100 = 10000 字节。jpg压缩后,它要少得多(取决于我设置的质量),所以假设压缩后它是5000字节,然后它会更新一半的图像。

知道为什么会这样吗?

此外,这很奇怪,因为第一张图像是完整显示的,但顶部发生变化的区域是稍浅的灰色。

0 投票
1 回答
2855 浏览

image-processing - 除了标准/渐进式,第三种 JPEG 压缩:按通道加载?

这个问题可能是一个“悬而未决的问题”,你们中的许多人可能急于结束它,但请不要。让我解释。

众所周知,JPEG有两种压缩方式(至少在Photoshop保存对话框中)

  • 优化,图像加载有点像逐行
  • 渐进式,其中图像首先像马赛克一样加载,逐渐变好,直到原始分辨率

我以前读过很多 PNG/JPEG 优化文章,但现在我遇到了这种很棒的第三种压缩,来自一个狂野的随机谷歌图片搜索。有问题的JPEG是这个

http://storage.googleapis.com/marc-pres/boston-event-1012/images/google-data-center.jpg

尝试在 Chrome/Firefox 中加载链接(仅在 IE/Safari 中,直到图像完全加载然后显示)

你可以观察到:

  1. 图像首先以黑白方式加载
  2. 然后看起来像加载了红色通道
  3. 接下来加载绿色通道
  4. 最后加载蓝色通道

我尝试使用模拟的非常慢的连接再次加载它,并观察到 ​​JPEG 不仅按通道顺序加载,而且以渐进方式加载。所以首先加载的图像是黑白马赛克然后是绿色马赛克然后逐渐全彩色马赛克最后是全分辨率和全彩色图像。

这是一项了不起的技术,假设您正在构建一个电子杂志,其中每个页面都有很多图片,您希望用户快速翻阅页面,而这种图片正是最好的。为了快速预览,加载空白-n-白色缩略图,如果用户停留,则完全加载原始图像。

所以我的问题是:如何使用 Python Pillow 或 ImageMagick 或任何类型的开源软件生成这样的图像?

如果您认为这个问题不合适,请发表评论,不要直接关闭它。

更新1:

事实证明,谷歌在其所有 JPEG 图片12中都使用了这项技术,例如这个

更新2:我发现了另一个线索

0 投票
2 回答
17406 浏览

jpeg - JPEG 基线标准 VS 渐进式:压缩成本

我们正在动态地对大量图像进行 JPEG 压缩。

这是一个服务器端进程,以交互方式准备要发送到客户端浏览器的图像。

使用渐进式压缩将改善用户体验。

我知道这种压缩需要更多的解压计算,但这不是问题。

我想知道渐进式压缩是否也更昂贵以及多少(无需运行我自己的一系列测试和基准测试)。

0 投票
2 回答
749 浏览

php - PHP GD压缩png但不压缩Jpeg

以下对 png 文件非常有效,但对于 jpeg/jpg 压缩不起作用。

我如何让它压缩jpeg?

0 投票
0 回答
313 浏览

c++ - 如何获取 DivX 编解码器的库并将它们放入 C/C++ 项目

我正在编写一个 C 编程来从相机获取的 jpeg 帧创建一个 AVI 文件。我选择了互联网上推荐的压缩功能来压缩这些帧。我要选择的压缩器是 DivX 编码器。

问题是我只能使用这种类型的编解码器,因为我安装了 DivX Player。安装播放器后,它似乎在我的系统中添加了一些用于 DivX 编解码器的库。如何在不安装任何媒体播放器的情况下获取这些库并将它们直接添加到我的项目中。

0 投票
2 回答
1359 浏览

mjpeg - 如何检测无损 JPEG 2000 压缩?

我有一个motion-JPEG 2000 文件,我需要根据文件本身确定创建者是否使用无损压缩来创建它。我没有可比较的原始视频数据,也没有用于生成文件的应用程序的源代码。

根据我的发现,看起来我能做的最好的事情是检查小波滤波器(双正交 3/5)和量化步长(1),如果这些条件为真,则假设无损。

非常感谢有关如何检查无损压缩的任何建议。我的工作环境是 MATLAB 或 Java,但其他平台的任何提示都会有所帮助。

0 投票
4 回答
14411 浏览

fft - 为什么 DCT 变换在视频/图像压缩中优于其他变换

我介绍了如何在图像和视频压缩标准中使用 DCT(离散余弦变换)。

但为什么仅 DCT 优于 dft 或 dst 等其他变换?