A Displayable is a file. This file is a way to be able to see big or huge images on an iPhone or a iPod Touch in their full resolution.
Here are some screenshots of Displayables on a first generation iPhone (click to embiggen):
An 18th century remake of “Along the River During the Qingming Festival” (30000 x 926).
The Manhattan Bus Map rendered at 300 dpi (3263 x 10055).
The Natural Earth dataset (21600 x 10800).
A panorama from Rotenboden (17325 x 1541)
“The Great Wave Off Kanagawa” (8261 x 5653).
CPU & Memory Tradeoff
A displayable is an exchange high CPU and Memory requirement for creation in exchange for low CPU and Memory requirements for viewing.
In exchange for low CPU and Memory requirements on the client, it sacrifice the compactness of the file:
A Displayable created from a PNG file will tend to be a little under twice the original size. For example, a Displayable created from the PNG rendering of the “Manhattan Bus Map” at 3263 x 10055 will weight 7.6 MB as PNG and 11 MB as a Displayable.
A Displayable will be up to 10 times the size of a JPEG. For example, a Displayable created from “Along the River During the Qingming Festival”, a 30,000 x 926 pixel, 7.7MB JPEG image will weight 74 MB as a Displayable.
The current implementation of a displayable is an SQLite Database. The image you transform is cut into small tiles, each tile is a stored in the database as a lossless image associated with its coordinate.
The image is then shrunk in half and the above process repeated. And then shrunk in half again until the size of the shrunked image is bellow the size of an iPhone screen.
The storage format of the tiles is PNG because it is lossless and their rendering is hardware accelerated on the iPhone.
The database also contains metadata: Date of creation, original dimensions, size of each zoom levels, description, tile size etc…
— © Nicolas Hoibian, 2011 —