Experimental Features.

The DjVu format already delivers extremely high compression ratios. Yet we keep evaluating new ideas and experimenting with new features. Here is a brief description of the various enhancements under evaluation. We intend to update the DjVu Reference Library as soon as we are satisfied with such enhancements.

Hyper-links --- We are considering an annotation chunk containing directives for the DjVu image browser, such as hyper-links, image placement, border color or default zoom factor. Such directives will be described using an extensible text syntax and stored into an "ANTa" or "ANTz" chunk.

Included Files --- Multiple DjVu files may share information such as background layer or character shapes. There are many benefits associated with storing such shared information in separate files. A well designed browser may keep pre-decoded copies of these files in a cache. This procedure would reduce the size of the data transferred over the Internet and also increase the display speed. The currently envisioned scheme involves an inclusion chunk (chunk identifier "INCL") containing the URL of a file to include. The included file would be a "FORM:DJVI" chunk potentially containing any information otherwise allowed in a DjVu file (except for the "INFO" chunk of course). The challenge consists in making this system fast enough to hide the cost of an extra round-trip between the browser and the web server.

Document Navigation --- Documents can be represented using one DjVu file per page. Each DjVu file may contain (or better: may include a file containing) a navigation directory chunk (chunk identifier "NDIR"). This navigation directory simply lists the URLs of all DjVu files composing a document. Once the DjVu browser knows the document structure, it can use smart caching, pre-fetching and pre-decoding strategies.

Multi-page Files --- The next step consists in packaging all files in a document (i.e. all the pages and all the included files) as a single archive file. Although this is good for archiving or emailing, using a single file is not very good for web applications because it does not provide a random access to each page. Web designers would have the choice of either (a) unpacking the archive, or (b) use an appropriate Apache module or CGI script for unpacking the requested file on the fly. The preferred archive format is a single "FORM:DJVM" chunk containing a directory (chunk identifier "DIR0") and all the archived files with their natural IFF structure.

Per-Character Color --- Compound DjVu files represent the colors of the text and drawings using a low resolution color image named the foreground color image. We are considering an alternative representation using one color for each character (or more specifically, for each mask component). This alternative representation would be more appropriate for encoding electronically produced documents.

Semantic Markups --- DjVu files already contain a lot of information about the structure of the page. We could create a real multi-valued document by adding a "DXML" chunk containing the textual information in the page with adequate semantic markups. The association between the textual information and the image would be described by a "DX2I" chunk. That would allow us to do Copy/Paste with DjVu documents.

Alphabetic index Hierarchy of classes