Scalable Function Graphics
(For more recent research and development click here)
The intention for Scalable Function Graphics (SFG) is to provide a means of storing photographic images as scalable, resolution-independent, mathematical models. Unlike raster graphics, which store images as an array of discreet pixel values, an SFG effectively stores an image as a complex, bivariate, vector-valued, continuous function (arranged in the form of a feed-forward neural network). The exact mathematical function is determined by a machine learning algorithm during a typically time-consuming conversion process.
The input values to this function are decimal x,y co-ordinates, and the three outputs correspond to the red, green, and blue values of a precise point at that location. Before converting into an SFG the original image will have consisted of a fixed number of points (or pixels). Through the conversion process the learning algorithm steadily manipulates constants of an extremely long mathematical function such that the output of the function will directly match up with the RGB values of each pixel in the original image (so long as the inputs to the function were the co-ordinate values of the respective pixel). Once this has been achieved the resulting function can be fed new co-ordinate values that weren't defined in the original image (co-ordinates in-between the original pixels). The resulting outputs act as effective estimates, allowing the image to be scaled up dramatically (as long as it is stored as an SFG) with the learnt mathematical function filling in the gaps.
A comparison can be drawn between Scalable Function Graphics and Scalable Vector Graphics (SVG). SVGs also store images as a scalable mathematical model, but with an important difference. SVGs store values that directly represent colours, heights, widths and other attributes of a fixed number of geometric shapes. As mathematically defined objects these shapes maintain the same characteristics at any scale. Unfortunately, however, this mechanism only remains useful for text, and relatively simple illustrations such as logos. Photographic images are far too complex to be stored using simple geometric objects. This is where Scalable Function Graphics are intended to be useful.
SFGs currently have significant limitations too. Due to the complexity that they are required to capture, time-consuming machine learning algorithms are required to determine the corresponding mathematical function for a given image. Additionally, SFG files currently require 20 to 30 times the disk space to store than the corresponding original image, and the rendering process can take several seconds to minutes depending on the required resolution. This is due to the length and complexity of the mathematical function, which must be calculated again and again for each individual pixel that is to be rendered. These limitations are currently the subject of further development in SFG technology.
Explore Scalable Function Graphics for yourself and download PhotoFunction, the prototype software that allows you to convert thumbnail images into Scalable Function Graphics (currently this can take hours).
For more information about the early development of scalable function graphics click here.
A wiki commons photograph by Laitr Keiows. Here it has been cropped and scaled down to a 40 by 40 thumbnail, and then scaled back up 1000% in order to compare different scaling algorithms and demonstrate the quality of Scalable Function Graphics.
The image has been scaled down to a 40 by 40 thumbnail, and then scaled back up 1000% in order to compare different scaling algorithms and demonstrate the quality of Scalable Function Graphics.
The wiki commons photograph 'Sunset from Battery Park, New York City' by Alex Proimos has been cropped and scaled down to a 40 by 40 thumbnail. It has then been scaled back up 1000% in order to compare different scaling algorithms and demonstrate the quality of scalable function graphics.