Spectrum is a client-side image transcoding library for both Android and iOS apps. It helps reduce data consumption and improve upload reliability
Smartphone photo files are becoming massive. These files consume lots of mobile data and can take a long time to load, or sometimes fail to load at all.
To make the upload process more efficient, the software team at Facebook has come up with an image processing library for Android and Apple iOS apps, called Spectrum.
Facebook said that they have improved reliability and quality of image uploads at scale across their apps, using Spectrum.
Spectrum has been available in beta (v0.9) since November, when it was first unveiled to the public. Facebook has now official launched Version 1.0.0 of the software (Spectrum 1.0.0) on GitHub, opening it to the developer community.
How Does it work?
First, it reduces the file size through transcoding (changing the data file formats). This reduces data consumption and enables faster uploads. Integrating with other existing native image compression libraries (like MozJpeg), it then compresses the image, creating a smaller yet almost as good as the original quality.
MozJpeg, a JPEG encoder launched by Mozilla’s research team back in 2014, can reduce a file size by 10-15 per cent in preparation for upload.
Spectrum’s declarative Application Programming Interface (API) allows developers to focus on the desired output properties instead of the individual steps, according to the company.
Further the company says that Spectrum prefers a lossless approach when cropping and rotating JPEG images, during resizing it “optimizes the interplay between decoder sampling and pixel-perfect resizing.”
Facebook reportedly started development on Spectrum around 18 months ago and gradually incorporated it into its own apps.