Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News News in Graphics: Xamarin Kimono, Google Guetzli and Draco

News in Graphics: Xamarin Kimono, Google Guetzli and Draco

This item in japanese

Xamarin has open sourced a tool for editing SkiaSharp objects, while Google has reduced the size taken by 2D JPEG and 3D graphics.

Xamarin, a Microsoft subsidiary, has open sourced Kimono Designer, a tool for graphically editing SkiaSharp objects that can be converted later to code for the targeted platforms. SkiaSharp is a 2D API for .NET based on the Skia graphics library, a project started by Google and used as a cross-platform graphics engine by Chrome, Firefox and Android, among others. The problem with Skia and SkiaSharp is that developers need to use a low level API to create 2D graphics similar to Java 2D. An example of what it takes to draw a Bezier curve can be seen on Skia Fiddle page. The Kimono Designer enables developers to create 2D images with a graphical tool, making the task easier.

Kimono comes with a number of features, including Color Palettes, Visual Gradient Editor, Named Styles. Linked Properties, a Scripting language and others. The tool can generate code for Windows (WinForms, UWP, WPF), Android, iOS, MacOS, tvOS or cross-platform. For now, Kimono runs only on MacOS, but Xamarin plans to provide versions for UWP and Android and iOS tablets.

On a different note, Google has open sourced Guetzli [guɛtsli], a new JPEG compression algorithm and encoder that is meant to provide better compression rates while maintaining the quality of images. Guetzli images are 20-30% smaller compared to their JPEG equivalents generated with libjpeg, according to Google. The size can be reduced by 35% according to this post. This is done without changing the existing browsers or applications using JPEG. Guetzli achieves smaller file sizes by eliminating elements of the image without affecting its quality. The team developing Guetzli explains:

The visual quality of JPEG images is directly correlated to its multi-stage compression process: color space transform, discrete cosine transform, and quantization. Guetzli specifically targets the quantization stage in which the more visual quality loss is introduced, the smaller the resulting file. Guetzli strikes a balance between minimal loss and file size by employing a search algorithm that tries to overcome the difference between the psychovisual modeling of JPEG's format, and Guetzli’s psychovisual model, which approximates color perception and visual masking in a more thorough and detailed way than what is achievable by simpler color transforms and the discrete cosine transform. However, while Guetzli creates smaller image file sizes, the tradeoff is that these search algorithms take significantly longer to create compressed images than currently available methods.

Earlier this year, Google has taken another step in reducing data transferred over the internet, this time addressing 3D graphics. Draco is a compression library for 3D geometric meshes and point clouds. The library supports “compressing points, connectivity information, texture coordinates, color information, normals, and any other generic attributes associated with geometry.” The end result is that 3D graphics can be dozens of times smaller in size, according to this post comparing mesh file compression. Draco comes with a C++ encoder and a C++ plus a JavaScript decoder, the latter targeting web applications.

Rate this Article