这是一个关于系统(特别是web浏览器)如何处理压缩图像的架构/概念问题。
我们正在处理一个工作中的“图片库”web应用程序,它在一个页面上有11张1920x1080的图像,你可以在iPad上滑动浏览。我们发现它非常慢,我几乎可以肯定这是因为iPad在内存和页面上同时处理如此多的大图像时遇到了问题。
一些人建议我们更多地压缩图像;它们目前是PNG,他们想要将它们重新压缩为JPG。显然,文件大小会更小,但除非iPad (和其他)有办法将压缩的图像直接渲染到屏幕(帧缓冲区),否则我认为他们必须在渲染之前将图像解压缩到内存中。在这种情况下,压缩似乎不会影响渲染它们的性能。(除了略微增加了“更多”的解压处理能力。)
我的理解和假设是正确的吗?我们是应该调整图像的大小,还是应该重新压缩图像?
谢谢
更多信息-在你告诉我“压缩图像更小”之前请阅读这篇文章-我是一个开发人员,而不是用户:
使用更少的空间并不等同于使用更少的内存。我们在存储方面没有问题,我们在渲染性能方面有问题。代码很简单,只是在一个div和下一个div之间进行动画,为图片库提供“卷帘”效果。
当我们从等式中删除图像时,性能很好;所以我相当确定瓶颈是图像,而不是代码。
问题是“压缩是否会使图像使用更少的内存”,因为其他人希望更多地压缩图像以获得性能。据我所知,压缩的架构仍然需要在内存中解压缩到原始大小才能使用,因此压缩不会影响内存使用率,只会影响存储和传输。
发布于 2012-11-13 08:35:03
压缩图像会使图像占用更少的内存吗?
例如,如果在监视器上显示,图像将使用相同数量的内存(可惜像素)。
压缩适用于图像的容器,通常是文件或临时内存缓冲区,但在屏幕上使用相同的压缩。
这是因为您需要分配要显示的每个像素。
对于24位的1920x1080图像,它将使用1920x1080x3字节( RGB ->中的每个颜色分量一个字节=8位),或6220800字节(大约6MB)。
你应该重新压缩吗?
它在显示时不会占用较少的内存空间,但加载到内存中的速度会更快。但仅此而已。
现在,应用程序需要决定是只在推送图像时解压缩(这会导致延迟),还是全部解压缩并能够立即显示它们。这个决定是基于应用程序的,所以你需要检查特定的应用程序。
发布于 2012-11-13 08:35:47
我不能特别为iOS说话,但最好是把解压工作卸载到图形处理器上,这需要一些相当复杂的架构工作。因此,我认为使用更高的压缩率实际上不太可能提高应用程序的性能。
但是,将图像拆分成较小的瓦片是一种常见的解决方案,我建议您尝试一下。
https://stackoverflow.com/questions/13353661
复制相似问题