Xamarin 开源了用于编辑 SkiaSharp 对象的工具,而 Google 则推出了减少 2D JPEG 和 3D 图形大小的方案。
Xamarin 是微软的子公司,开源了 Kimono 设计器,它是一个用来图形化编辑 SkiaSharp 对象的工具,这种对象随后可以转换为目标平台的编码。SkiaSharp 是基于 Skia 图像库的.NET 2D API,Skia 项目是由 Google 发起的,作为一种跨平台的图像引擎来使用,它目前用到了 Chrome、Firefox、Android 等平台上。Skia 和 SkiaSharp 的问题在于开发人员需要使用类似于 Java 2D 的底层的 API 来创建 2D 图像。使用它来绘制贝塞尔曲线的样例可以在 Skia Fiddle 页面上找到。Kimono 设计器能够让开发人员以图形化的方式创建 2D 图片,让这项任务变得更加简单。
Kimono 带来了很多的特性,包括颜色调色板(Color Palettes)、可视化的渐变编辑器(Visual Gradient Editor)、已命名的样式(Named Styles)、属性链接(Linked Properties)、脚本语言等。这个工具可以为 Windows (WinForms、UWP、WPF)、Android、iOS, MacOS、tvOS 或跨平台生成编码。目前,Kimono 只能运行在 MacOS 上,但是 Xamarin 计划提供 UWP 以及 Android 和 iOS 平板的版本。
而在另一方面,Google 开源了 Guetzli [guɛtsli],这是一个新的 JPEG 压缩算法和编码器,它能够提供更好的压缩比例同时保持图片的质量不受影响。按照 Google 的说法,Guetzli 的图片相对于 libjpeg 产生的相同 JPEG 图片,在文件大小上能够小 20-30%。根据这篇文章的说法,文件大小可以减少 35%。在实现这项功能时,不需要改变使用 JPEG 的浏览器和应用的已有写法。Guetzli 之所以能够实现更小的文件尺寸要归功于它能够消除图片中元素,而且不会影响图片的质量。开发 Guetzli 的团队这样描述到:
JPEG 图片的视觉质量与其多个阶段的压缩过程直接相关:彩色空间转换(color space transform)、离散余弦转换(discrete cosine transform)以及量化(quantization)。Guetzli 的目标就在量化阶段,在这个阶段,视觉质量损失得越多,所形成的文件就越小。Guetzli 在最小化损失和文件大小之间取得了一种平衡,这是通过一种搜索算法来实现的,该算法试图克服JPEG 格式的 psychovisual 模型与 Guetzli 的 psychovisual 模型之间的差异,相对于简单的色彩转换和离散余弦转换,Guetzli 能够采用一种更全面和细致的方式达到近似的色彩感知和视觉效果。Guetzli 做到了文件尺寸更小,但是其代价就是相对于目前可用的方法,它的搜索算法在创建压缩文件时,会耗费更长的时间。
在今年早些时候,在减少互联网数据传输方面,Google 还做了另外一项工作,这次的成果是应对 3D 图像。 Draco 是一个针对 3D 几何网格(geometric meshes)和点云(point clouds)的压缩库。这个库支持“压缩点、连接信息、纹理坐标(texture coordinates)、颜色信息、法线(normals)以及其他与几何相关的通用属性。”按照这篇文章的说法,相对于网格文件压缩,它所能达成的结果就是3D 图像能够在尺寸上减少十数倍。Draco 附带了一个C++ 编码器,还有一个C++ 和JavaScript 的转码器,其中JavaScript 转码器瞄准的就是Web 应用中的使用场景。
查看英文原文: News in Graphics: Xamarin Kimono, Google Guetzli and Draco
评论