# About Pixellena

Pixellena’s main use case is to prepare an image for visualization in a browser. Basically, after the image is submitted, it passes through three top-level stages:

• master: is a master algorithm that transforms and stores the entire image. The master algorithm usually enhances the submitted image in some way, or computes auxiliary information needed to process the image down the line. For example, we have master algorithms that do super-resolution, or background mask computations. There is a trivial identity master algorithm that just outputs the same input image.
• shifter: this stage contains a sequence of steps that run on the image produced by the master. At the moment, steps can include complex cropping and resizing operators. When no steps are specified, the image is passed unchanged.
• encoder: the encoder takes the output from the shifter and encodes it as a lossless or lossy image. For lossy images, it does line-search to find the encoded image that best approximates a given quality metric.

We have two API levels: “Light” and “Lux”. Light comes with a fixed pipeline that uses the identity master and doesn’t change the image when it goes through the shifter, then the encoder uses a default quality check algorithm.

By contrast, Lux allows you to change the steps via a JSON adjustments object. An empty adjustments object has the same effect than the Light pipeline, but the master, shifter and encoder can be each ajusted on their own:

{
"master": {
"algorithm-name": "identity"
}
}


Updated: