Provided by: djvulibre-bin_3.5.27.1-5_amd64 bug


       DjVu - DjVu and DjVuLibre.


       Although  the  Internet  has  given  us  a  worldwide infrastructure on which to build the
       universal library, much of the world knowledge, history, and literature is  still  trapped
       on paper in the basements of the world's traditional libraries. Many libraries and content
       owners are in the process of  digitizing  their  collections.   While  many  such  efforts
       involve  the  painstaking process of converting paper documents to computer-friendly form,
       such as SGML based formats, the  high  cost  of  such  conversions  limits  their  extent.
       Scanning  documents,  and  distributing  the  resulting  images electronically is not only
       considerably cheaper, but also more faithful to the original document because it preserves
       its visual aspect.

       Despite  the  quickly  improving speed of network connections and computers, the number of
       scanned document images accessible on the Web today is relatively small. There are several
       reasons for this.

       The  first reason is the relatively high cost of scanning anything else but unbound sheets
       in black and white. This problem is slowly going away with the appearance of fast and low-
       cost color scanners with sheet feeders.

       The  second  reason  is that long-established image compression standards and file formats
       have proved inadequate for distributing scanned documents at high resolution, particularly
       color documents.  Not only are the file sizes and download times impractical, the decoding
       and rendering times are also prohibitive.  A typical magazine page scanned in color at 100
       dpi  in  JPEG  would  typically  occupy  100  KB  to 200 KB , but the text would be hardly
       readable: insufficient for screen viewing and totally unacceptable for printing. The  same
       page  at 300 dpi would have sufficient quality for viewing and printing, but the file size
       would be 300 KB to 1000 KB at best, which is impractical for remote access. Another  major
       problem  is that a fully decoded 300 dpi color images of a letter-size page occupies 24 MB
       of memory and easily causes disk swapping.

       The third reason is that digital documents are more than just a collection  of  individual
       page  images.  Pages in a scanned documents have a natural serial order. Special provision
       must be made to ensure that flipping pages  be  instantaneous  and  effortless  so  as  to
       maintain a good user experience. Even more important, most existing document formats force
       users to download the entire document first before displaying  a  chosen  page.   However,
       users  often  want  to  jump  to  individual pages of the document without waiting for the
       entire document to download.  Efficient browsing requires efficient  random  page  access,
       fast  sequential  page  flipping,  and  quick  rendering.  This  can  be  achieved  with a
       combination of advanced compression, pre-fetching, pre-decoding, caching, and  progressive
       rendering.  DjVu decomposes each page into multiple components (text, backgrounds, images,
       libraries of common shapes...)  that may be shared by  several  pages  and  downloaded  on
       demand.   All  these  requirements  call for a very sophisticated but parsimonious control
       mechanism  to  handle  on-demand  downloading,  pre-fetching,   decoding,   caching,   and
       progressive  rendering  of  the  page images.  What is being considered here is not just a
       document image compression technique, but a whole platform for document delivery.

       DjVu is an image compression technique, a document format, and  a  software  platform  for
       delivering documents images over the Internet that fulfills the above requirements.


       The DjVu image compression is based on three technologies:

       DjVuPhoto,  also  known  as  IW44,  is  a  wavelet-based continuous-tone image compression
       technique with progressive decoding/rendering.  It is best used for encoding  photographic
       images in colors or in shades of gray.  Images are typically half the size as JPEG for the
       same distortion.

       DjVuBitonal, also known as JB2, is a bitonal image compression  that  takes  advantage  of
       repetitions  of  nearly  identical  shapes on the page (such as characters) to efficiently
       compress text images.  It is best used to compress black  and  white  images  representing
       text and simple drawings.  A typical 300 dpi page in DjVuBitonal occupies 5 to 25 KB (3 to
       8 times better than TIFF-G4 or PDF ).

       DjVuDocument is a compression technique specifically designed for color digital  documents
       images  containing  both  pictures  and  text, such as a page of a magazine.  DjVuDocument
       represents images into separately compressed layers.   The  foreground  layer  is  usually
       compressed  with DjVu Bitonal and contains the text and drawings.  The background layer is
       usually compressed with DjVuPhoto and contains the background texture and the pictures  at
       lower resolution.


       The  DjVu  technology  is designed from the ground up to support the efficient delivery of
       digital documents over the Internet.  It provides various ways  to  deal  with  multi-page
       documents,  and various ways to enrich the content with hyper-links, meta-data, searchable
       text, etc.

   MIME types
       The DjVu format has an official MIME  type  of  image/vnd.djvu,  which  is  the  preferred
       content-type  to  be  given  by  http  servers for DjVu files.  Unofficial mime types used
       historically are image/x.djvu and image/x-djvu, which may still be encountered.   Ideally,
       clients should be configured to handle all three.  (For web server configuration help, see

   Bundled multi-page documents
       Bundled multi-page DjVu document uses a single file  to  represent  the  entire  document.
       This  single  file  contains all the pages as well as ancillary information (e.g. the page
       directory, data shared by several pages, thumbnails, etc.).  Using a single file format is
       very convenient for storing documents or for sending email attachments.

       When you type the URL of a multi-page document, the DjVu browser plugin starts downloading
       the whole file, but displays the  first  page  as  soon  as  it  is  available.   You  can
       immediately  navigate  to  other  pages  using the DjVu toolbar.  Suppose however that the
       document is stored on a remote web server.  You can easily access the first page  and  see
       that this is not the document you wanted.  Although you will never display the other pages
       the browser is transferring data for these pages and is  wasting  the  bandwidth  of  your
       server  (and  the  bandwidth  of the Internet too).  You could also see the summary of the
       document on the first page and jump to page 100.  But page 100 cannot be  displayed  until
       data  for  pages  1 to 99 has been received.  You may have to wait for the transmission of
       unnecessary page data.  This second problem (the unnecessary wait) can be solved using the
       ``byte serving'' options of the HTTP/1.1 protocol.  This option has to be supported by the
       web server, the proxies, the caches and the browser.  Byte serving however does not  solve
       the first problem (the waste of bandwidth).

   Indirect multi-page documents
       Indirect  multi-page  DjVu  documents  solve  both  problems.  An indirect multi-page DjVu
       document is composed of several files.  The main file is named the index  file.   You  can
       browse  a document using the URL of the index file, just like you do with a bundled multi-
       page document.  The index file however is very small.  It  simply  contains  the  document
       directory  and  the  URLs of secondary files containing the page data.  When you browse an
       indirect multi-page document, the browser  only  accesses  data  for  the  pages  you  are
       viewing.   This can be done at a reasonable speed because the browser maintains a cache of
       pages and sometimes pre-fetches a few pages ahead of the current page.   This  model  uses
       the  web  serving  bandwidth much more effectively.  It also eliminates unnecessary delays
       when jumping ahead to pages located anywhere in a long document.

       Every DjVu image optionally includes so-called annotation chunks.  The annotation chunk is
       often  used  to  define  hyper-links  to  other  document pages or to arbitrary web pages.
       Annotation chunks can also be used for other purposes such as setting the initial  viewing
       mode  of a page, defining highlighted zones, or storing arbitrary meta-data about the page
       or the document.

   Hidden text
       Every DjVu image optionally  includes  a  hidden  text  layer  that  associated  graphical
       features  with  the  corresponding  text.   The  hidden text layer is usually generated by
       running an Optical Character Recognition software.  This textual information provides  for
       indexing DjVu documents and copying/pasting text from DjVu page images.

       DjVu documents sometimes contain pre-computed page thumbnails.

       DjVu  documents  sometimes  contain  a  navigation chunk containing an outline, that is, a
       hierarchical table of contents with pointers to the corresponding document pages.


       The DjVu technology was initially created by a few researchers in AT&T Labs  between  1995
       and  1999.   Lizardtech,  Inc.  (  ) then obtained a commercial
       license from AT&T and continued the development.  They have now a variety of solutions for
       producing and distributing documents using the DjVu technology.

       The  DjVuZone  web  site  (  )  is  managed  by the few AT&T Labs
       researchers who created the DjVu technology in the  first  place.   We  promote  the  DjVu
       technology by providing an independent source of information about DjVu.

       Understanding  how  little  room  there  is  for a proprietary document format, Lizardtech
       released the DjVu Reference Library under the GNU Public License in December  2000.   This
       library  entirely  defines  the  compression  format and the elementary codecs.  Six month
       later, Lizardtech released an updated DjVu Reference Library as well as the source code of
       the Unix viewer.

       These  two  releases  form  the  basis of our initial DjVuLibre software.  We modified the
       build system to comply with the expectations of the open source community.   Various  bugs
       and  portability  issues  have  been  fixed.   We also tried to make it simpler to use and
       install, while preserving the essential structure of the Lizardtech releases.

       The DjVuLibre software contains the following components:

       bzz(1) A general purpose compression  command  line  program.   Many  internal  DjVu  data
              structures are compressed using this technique.

       c44(1) A DjVuPhoto command line encoder. This state-of-the-art wavelet compressor produces
              DjVuPhoto images from PPM or JPEG images.

              A DjVuBitonal command line encoder. This soft-pattern-matching compressor  produces
              DjVuBitonal  images  from  PBM  images.   It  can  encode  images  without loss, or
              introduce small changes in order to improve the compression  ratio.   The  lossless
              encoding mode is competitive with that of the Lizardtech commercial encoders.

              A  DjVuDocument  command  line encoder for images with few colors.  This encoder is
              well suited to compressing images with a small  number  of  distinct  colors  (e.g.
              screen-shots).   The  dominant color is encoded by the background layer.  The other
              colors are encoded by the foreground layer.

              A DjVuDocument command line encoder for separated images.   This  encoder  takes  a
              file  containing  pre-segmented  foreground  and  background  images and produces a
              DjVuDocument image.

              A command line decoder  for  DjVu  images.   This  program  produces  a  PNM  image
              representing any segment of any page of a DjVu document at any resolution.

              A  stand-alone  viewer  for  DjVu  images.  This sophisticated viewer displays DjVu
              documents.  It implements document navigation as well as fast zooming and panning.

              A web browser plugin for viewing DjVu images.  This small plugin allows for viewing
              DjVu  documents from web browsers.  It internally uses djview to perform the actual

              A command line tool for converting DjVu documents into PostScript .

              A command line tool for  manipulating  bundled  multi-page  DjVu  documents.   This
              program is often used to collect individual pages and produce a bundled document.

              A  command  line  tool  for  converting bundled documents to indirect documents and

              A powerful command line tool for manipulating  multi-page  documents,  creating  or
              editing  annotation  chunks,  creating or editing hidden text layers, pre-computing
              thumbnail images, and more...

              A command line tool to extract the hidden text from DjVu documents.

              A command line tool  for  inspecting  DjVu  files  and  displaying  their  internal

              A command line tool for dis-assembling DjVu image files.

              A command line tool for assembling DjVu image files.

              A CGI program for generating indirect multi-page DjVu documents on the fly.

       djvutoxml(1), djvuxmlparser(1)
              Command line tools to edit DjVu metadata as XML files.


       DjVuLibre  comes  with  a variety of specialized encoders, c44(1) for photographic images,
       cjb2(1) for bitonal images, and cpaldjvu(1) for images with few distinct colors.  Although
       these  encoders perform well in their specialized domain, they cannot handle complex tasks
       involving segmentation and multipage encoding.

       The Lizardtech commercial products (see  can
       perform these complex encoding tasks

       Another  solution is provided by the compression server at (
       This machine uses pre-lizardtech prototype encoders from AT&T Labs and performs almost  as
       well  as  the  commercial  Lizardtech encoders.  Please note that the Any2DjVu compression
       server comes with no guarantee, that nothing is done to ensure that  your  documents  will
       remain confidential, and that there is only one computer working for the whole planet.


       Numerous  people  have  contributed  to  the  DjVu source code during the last five years.
       Please submit a sourceforge bug report to update the following list.

          Yoshua Bengio, Léon Bottou, Chakradhar Chandaluri, Regis M. Chaplin, Ming  Chen,  Parag
          Deshmukh,  Royce  Edwards,  Andrew  Erofeev,  Praveen  Guduru, Patrick Haffner, Paul G.
          Howard, Orlando Keise, Yann Le Cun, Artem  Mikheev,  Florin  Nicsa,  Joseph  M.  Orost,
          Steven  Pigeon,  Bill  Riemers,  Patrice  Simard,  Jeffery  Triggs, Luc Vincent, Pascal