适用于Android的Instagram应用程序已成为当今世界上最受欢迎的社交媒体平台之一。您可以期望Facebook的快照共享应用程序在所有平台上拥有超过3亿的月度用户,并且在GooglePlaystore上的下载量超过1亿次,其设计和功能的质量都很高。不幸的是,对于其很大一部分用户群(即Androidinstagrammers)而言,Instagram未能做到其应做的唯一工作–共享漂亮的图片。
尽管iOS用户可以高保真地分享自己的作品和时光,但Android用户多年来一直在报告其图片质量极度下降。2012年9月在XDA上发现了抱怨这种头痛的最古老的线程之一,该线程一直运行到现在,为读者提供了一种非传统的方法来尝试解决Instagram的可笑的照片销毁问题。您可能会认为,经过两年多的投诉,软件和硬件的技术改进以及经济和市场增长,Instagram可以解决这些问题。他们应该为此负责吗?还是问题的根本原因比看起来更深?
1:1作物
这是我自己拍的照片。原始照片重达4.34MB,并以9.6MP拍摄。为了不考虑“Instacrop”下采样会导致后来将其缩小到Instagram的原始640×640像素输出的比例,从而可以理解地破坏这种高分辨率文件的细节,我将其裁剪为JPG纵横比为1:1的JPG上传以查看后处理算法及其压缩对该文件的直接影响。
我只是抓住了平方的JPG裁剪图,然后将其发布到我的Instagram上,而没有添加任何滤镜,效果或调整任何值。您可能希望图像看起来与最初看到的图像非常相似,但是结果令人震惊。即使未经训练的眼睛,边界和颜色渐变周围的压缩伪影也非常引人注目。原始的1:1裁剪文件的大小为1.6MB,而新的调整大小和压缩后的图像为125KB。这意味着压缩将原始文件的大小减小了将近13倍–在某些情况下并不一定很糟糕。
有趣的是,Instagram提供了默认情况下处于关闭状态的“高质量图像处理”,但是当打开时,结果似乎并没有真正改善,压缩文件的大小为129KB。在这里,我为您提供了相同的裁剪效果,您可以看到存在的压缩仍然非常强烈,并且图像的保真度仍然具有粗糙且像素化的损失。
压缩
计算机算法提供了各种方法,可以通过不同的技术来优化图像的尺寸,从而减小图像的尺寸。质量vs文件大小以后需要解释的数据并以适当的方式显示适当的图片。图像的许多文件类型都与它们支持或不支持的这些压缩技术紧密相关,这就是为什么我们通常会在某些类型的图片上看到比其他类型更好的质量。PNG(便携式网络图形)文件通常用于共享媒体而不会失去保真度和图像质量,但其文件大小要比经过有损压缩的图像大。GIF是一种非常古老的图像格式,也可以无损压缩。
不论他们从事哪个领域的开发,许多程序员在学术上都学到了减小或优化文件大小的技术。诸如deflation(用于PNG)或Lempel-Ziv-Welch算法(通常用于GIF)之类的名称贯穿始终。如今,许多计算机科学教室受到了许多程序员的欢迎,并且随着越来越多的高效压缩技术的进一步开发和文档开发,您可以期望亿万富翁平台结合合理有效的算法,以输出非常漂亮的图像,同时又不让技术性对他们的服务器和用户的硬件也太费力了。
但这不是事实。数以百万计的Instagram使用者和我每天拍摄和上传的照片直接与这些科技界超级大国的工程实力相矛盾,后者应将很大一部分收入用于投资其软件以提供最佳的用户体验。但是,这里仍然有一个未解决的问题:为什么要使用Android,而不要选择iOS?
VSCO和Android内存
尽管像Reddit这样的流行互联网论坛都在试图找出造成日常愤怒的原因,但这种不公正似乎没有逻辑基础,除了可能的解释是,Android硬件在计算能力方面本质上是劣等的,或者事实是,各种各样的低端Android设备,无论您为手机支付了多少费用,都必须采取这些措施来确保整个平台上一致的用户体验。随着时间的流逝,每次Instagram更新后的报告都报告了同一问题,以至于这个问题在论坛用户中引起了很大的争议,很快就跟随该应用程序的每次迭代。
用户还注意到流行的相机和图片编辑应用程序VSCOCam发生了类似的情况。吹捧“Android摄影的新标准”,一些人很快注意到该应用程序未能满足这些要求。注意到的质量损失和人工制品的类型与Instagram相似,因此有些人很快就认为有一条直线将点组合在一起。到现在为止,我们仅猜测到此问题的原因可能是什么。有些人将问题直接归咎于Android的内置位图下采样算法。然而,似乎最引人注目的原因是这样一个简单的事实,即Instagram(可能还有VSCO)对下采样算法(特别是最近邻居重采样)的实现效果较差。。但是,如果没有开发商的正式消息,这种猜测就无法得到充分证实。
那时,我们通过VSCO的技术支持了解到,它们失去分辨率和保真度的原因不是不良的软件实现,而是Android设备中的内存限制:
“尽管有些Android设备的内存超过几GB,但大多数内存设备还是受到了限制,但是不允许应用程序使用所有可用内存,因此,我们必须充分利用Android提供的功能。”
“导入时,根据使用的设备和可用内存,大图像可能会缩小50%。“
他们还声称,这是因为他们的图像处理技术对内存和SoC都造成了很大的负担,再加上Android内存的限制,这就是为什么我们看到了iOS上找不到的质量瓶颈的原因。
根据Android开发人员培训文章,每个应用程序的堆大小都设置了硬限制,以维护功能正常的多任务环境。这取决于设备可用的RAM数量,如果应用程序接近堆容量,则存在RAM不足的风险。
因此,乍一看,VSCO的故事似乎很有说服力,但这并不能解释采取怀疑论者的人似乎无法摆脱的某些事情。
局限性
乍一看,我们可以问一个问题:如果通常具有1GB至2GBRAM和最新的便携式处理器的智能手机无法处理全分辨率图像,那么为什么32MBRAMDSLR相机能够做到这一点?
我们与我们的一位高级认可开发人员联系,以收集对此问题的更强有力的意见。OmniROM开发人员XpLoDWilD评论:
“这里的限制是图像的计算或处理方式。GPU的速度更快,最快的方法是将图像作为纹理“上载”到GPU中并进行处理-问题在于您受GPU最大纹理大小的限制,通常为4096×4096。”
通常,8MP图片为3264×2448,足够小以适合12×4000×3000的限制。较新的旗舰和照相手机传感器可以达到13MP以上,并且图像尺寸确实大于最大GPU最大纹理尺寸,这不可避免地需要在约束范围内缩小图像并丢失整体细节。
他补充说:“问题不是应用程序正在上传缩小版本,而是应用程序正在处理图像的缩小版本,然后上传处理过的文件。”“很可能是为了进一步减少处理时间,他们也将分辨率设置得更低”。
XpLoDWilD建议在处理时间和GPU约束之间达成良好的平衡而不是向用户显示他们正在处理的图像的完全经过处理的预览,而是使编辑过程的视觉帮助是可以放在屏幕上的缩小缩略图(小于2048×2048)。通常可以快速可靠地快速处理此缩略图,同时仍然为用户提供有关图片外观的良好估计。当用户确认他在值调整和过滤器选择上所做的选择时,全分辨率图片将在背景中转换-通过将图像拆分为缩略图分辨率大小的网格,然后分别处理每个块。最后一步将需要通过将每个区域重新装配到一个大的全分辨率位图中来在CPU上合成最终图像。
这是一种以原始分辨率处理图像的方法。鉴于您看到的预览一直到处理图片的那一刻,Instagram似乎都没有做到这一点,它没有像准备上载一样糟糕的质量和伪像图片。预览图像似乎没有经历过残酷的压缩,因此压缩是在处理最终图像时进行的,这将输出低质量的图像。
Android平台在处理高分辨率的图像时确实没有任何问题,而上传图像则少得多。在硬件方面,最新的iPhone的纹理大小限制为2048到4096。因此,这可能不是硬件限制,也不是平台限制,因为其他开发人员可以并且已经解决了这一问题。
本站信息仅供参考,如有文章涉及版权问题,请速与我们联系:2811358863@qq.com | 网站地图
备案号:桂ICP备2023007194号 © Copyright 2024 56常识网 Inc.All Rights Reserved. 桂公网安备45030502000552