facebook正式推出了一个名为spectrum的新开源图像处理库,该公司表示已经帮助提高了通过其自己的应用程序套件上传的图像的可靠性和质量。
这家社交网络巨头于11月首次向公众推出了spectrum ,自那时起它已经在beta(v0.9)上发布。今天宣布在github上正式推出spectrum 1.0.0,因为facebook努力通过向开发者社区开放技术来改进技术。
相机现在几乎成为任何新智能手机推出的焦点,其中以精湛的ai为动力的软件 作为卖点,相机传感器变得越来越强大。虽然这对于移动摄影师来说非常好,但从社交分享的角度来看,这一技术意义重大。
大型图像文件不仅在设备上消耗更多内存,而且在在线共享时也消耗更多网络带宽 - 这就是whatsapp和facebook等应用程序压缩图像的原因。像这样的平台会自动调整大小并重新格式化照片,确保上传过程中最小的断断续续,并在另一侧保证最佳的加载时间。但是在图像质量方面存在一种折衷 - 在2980 x 2384像素分辨率下,3mb的图像大约是应用程序中显示的大小的五分之一,这意味着降低了清晰度。
对于任何允许速度和可靠性至关重要的图像上传的应用来说,这是一项挑战:如何在不影响上传体验的情况下确保最高质量?这就是spectrum发挥作用的地方。
关于频谱
spectrum是适用于android和ios应用的客户端图像转码库。在第一阶段,它可以减小文件大小,从而加快上传速度(减少移动数据消耗)。使用“声明性”api,spectrum寻求使应用程序开发人员更容易控制图像质量,而不必担心达到目标所需的各个步骤,否则可能需要编写额外的代码来利用其他压缩库,例如。
总之,而不是告诉一步一个应用程序的步骤 如何 进行图象进行转码,频谱允许开发者规定了什么,他们想要做-和spectrum采取协调的照顾。
根据facebook的说法,spectrum在裁剪和旋转jpeg图像时更喜欢无损方法,而在调整大小时,它“优化了解码器采样和像素完美大小调整之间的相互作用。”spectrum集成了原生图像压缩库,包括mozjpeg,一个由jpeg编码器发起的mozilla的研究团队早在2014年就可以将文件大小减少10-15%以准备上传。
这还可以控制“更高级的参数”,例如色度子采样,这是一种压缩实践,它将较低的分辨率归因于图像的颜色,有利于亮度数据。然而,某些类型的图像可能需要更多定义的颜色,特别是那些涉及锐边或插图的颜色,这是spectrum介入的地方。“一致的api使得非图像专家的开发人员可以访问这些功能,”facebook表示。
此外,鉴于spectrum是开源的,任何人都可以通过插件添加对新编解码器的支持,并调试他们内心的内容。
facebook告诉venturebeat,它在大约18个月前开始开发spectrum,并逐渐将其整合到自己的应用程序中。在0.9预发布阶段,facebook收集了开发人员社区的意见,为今天的正式推出做准备,其中包含了jpeg文件中的一些修复和“支持不太常见”的色度子采样。
标签: