Anatomie DjVu dokumentu

From DCEwiki
Revision as of 15:41, 6 January 2018 by Keny (talk | contribs) (Vrstvy DJVU dokumentu)
Jump to: navigation, search

DjVu dokument je produkt zobrazovací technologie, která byla postavena na výchozím poznatku že u klasického, až již psaného či tištěného, dokumentu zabírá "barva", která je nositelem textové informace, z celkové plochy pouhých pár procent. Je-li písmo (popředí) odseparováno za pomoci masky od pozadí, lze využít při kompresi každé z těchto vrstev postupů, které výrazně zlepší jejich kompresní poměr.

Komprese používané u DjVu

Identifikace použité komprese v označení obrazové vrstvy

bz 
vrstva černobílá (resp. v indexovaných barvách) komprimovaná BZZ
44 
vrstva komprimovaná IW44
jp 
vrstva komprimovaná JPEG
2k 
vrstva komprimovaná JPEG-2000
mmr 
černobílá vrstva komprimovaná G4

BZZ - základní kompresní algoritmus

Výchozí kompresní algoritmus pro DjVu byl postaven, podobně jako bzip2, na Burrows-Wheelerově transformaci v kombinaci s algoritmy Karp-Miller-Rosenberga a Bentley-Sedgewicka. Spolu s dalšími technikami se využívá pro kompresi barevných vrstev u JB2 a při kompresi vrstev které nesou textovou informaci.

DjVuText - komprese JB2

JB2 není samostatný kompresní algoritmus, ale aplikace BZZ komprese na sadu samostatně komprimovaných bloků obrazových dat. Kompresní utilita nekomprimuje celý obraz, ale z celkové plochy obrazu vyseparuje pouze bloky, které nesou nějakou informaci (shapes) - typicky písmena - a pouze ty zakomprimuje pomocí BZZ. Do souboru se pak postupně za sebou ukládají souřadnice bloku, informace o jeho barvě, velikost komprimovaných dat a blok komprimovaných dat.

Prohlížečka při dekompresi postupně tyto bloky načítá a zobrazuje. Pro výsledný kompresní poměr tedy není ani tak důležitý počet barev, jako spíš počet a velikost komprimovaných plošek. Čím vyšší je u vstupního dokumentu úroveň "šumu", tvořeného různými drobnými artefakty ( nečistoty, ev. mechanická struktura skenovaného dokumentu) tím větší počet bloků je ke komprimaci a horší výsledný kompresní poměr.

Bitonální JB2 komprese se využívá při kompresi masky (vrstva 'Sjbz') a barevná u popředí, je-li v indexovaných barvách (vrstva 'FGjz').

U vícestránkových dokumentů lze kompresní poměr zlepšit také použitím sdílené 'Djbz' vrstvy. Ta je založena na předpokladu, že se podobné komprimované plošky (písmena) na stránkách opakují. U stránky, která využívá sdílenou 'Djbz' vrstvu se do 'Sjbz' vrstvy (masky) ukládají pouze ty komprimované plošky, které ve sdílené 'Djbz' vrstvě nevyskytují.

DjVuPhoto - komprese IW44

Pro kompresi obrázků používá DjVu kompresní formát založený na vlnkové (wavelet) kompresi. Ta je založena na tom, že barevný obrázek tvoří barevné plošky, které lze vymezit pomocí křivky.

Oproti klasické bitmapové kompresi při které je obrázek popsán jako jeden barevný bod, lze obrázek kde je barevná plocha definována pomocí křivky zvětšovat, aniž by se z něj stala změť barevných čtverečků.

Komprese IW44 funguje tak, že se obrázek nejprve zredukuje na celistvé barevné plošky, ty se převedou na křivky (splices), a ty se pak podle předem zvoleného schématu umístí do dalších vrstev.

Při generování obrázku pak prohlížečka tyto vrstvy postupně načítá a zobrazuje.

IW44 se používá především ke kompresi fotografií, u kterých drobné rozostření nevadí, barevných obrázků a obrázků v odstínech šedi.

DjVuLayered - aplikace masky

U IW44 platí, že čím celistvější je barevná plocha, tím lze dosáhnout lepší komprese. Proto je výhodné využít při kompresi pozadí psaných, resp. tištěných dokumentů masku, která odfiltruje popředí. Díky tomu, že maska odfiltruje popředí, lze pozadí "popsat" pomocí menšího množství křivek a tím pak dosáhnout vyššího kompresního poměru.

Každý DjVu dokument je ve své podstatě vrstvený DjVu dokument (DjVuLayered), který může obsahovat minimálně jednu vrstvu, většinou však tyto dokumenty obsahují masku, popředí i pozadí.

Schéma DjVu svazku

Schéma DjVu dokumentu

Základem je stránka, která má několik vrstev tzv. "chunks". Jednotlivé stránky lze spojovat do jednoho celku - "svazku" (bundle) pomocí aplikace djvm. V případě rozsáhlejších dokumentů umožňuje djvu formát také volnější spojení svazku (indirect), kdy jsou stránky uloženy v jediném společném adresáři a svázány jedním indexovým djvu souborem.

Převod mezi "bundle" a "indirect" lze bez problémů provádět pomocí djvmcvt. Výhodou spojených stránek je mimo jiné možnost používat interní hypertextové odkazy, podobně jako tomu je u PDF, generovat náhledy, atd.

Výpisu struktury pomocí utility djvudump se liší podle toho, zda je dokument typu "bundled" nebo "indirect". Protože v "bundled" svazku jsou přítomny zároveň všechny stránky, není problém vypsat také informace o vrstvách které obsahují. To však neplatí v případě že je dokument typu "indirect". Příklad téhož dokumentu ve formě:

"indirect"

  FORM:DJVM [136]
    DIRM [78]         Document directory (indirect, 3 files 2 pages)
      p0001.djvu -> p0001.djvu
      shared_anno.iff -> shared_anno.iff
      p0002.djvu -> p0002.djvu
    NAVM [38]

"bundle"

  FORM:DJVM [84467]
    DIRM [90]         Document directory (bundled, 3 files 2 pages)
    NAVM [38]
    FORM:DJVU [51805] {p0001.djvu}
      INFO [10]         DjVu 4960x7016, v24, 600 dpi, gamma=2,2
      INCL [15]         Indirection chunk --> {shared_anno.iff}
      Sjbz [28088]      JB2 bilevel data
      FGbz [5681]       JB2 colors data
      BG44 [4822]       IW4 data #1, 72 slices, v1.2 (color), 1654x2339
      BG44 [2683]       IW4 data #2, 11 slices
      BG44 [3939]       IW4 data #3, 10 slices
      BG44 [6399]       IW4 data #4, 10 slices
      TXTz [7]          Hidden text (text, etc.)
      ANTz [71]         Page annotation (hyperlinks, etc.)
    FORM:DJVI [65] {shared_anno.iff}
      ANTz [53]         Page annotation (hyperlinks, etc.)
    FORM:DJVU [32423] {p0002.djvu}
      INFO [10]         DjVu 4960x7016, v24, 600 dpi, gamma=2,2
      INCL [15]         Indirection chunk --> {shared_anno.iff}
      Sjbz [15651]      JB2 bilevel data
      FGbz [497]        JB2 colors data
      BG44 [4836]       IW4 data #1, 72 slices, v1.2 (color), 1654x2339
      BG44 [2326]       IW4 data #2, 11 slices
      BG44 [3202]       IW4 data #3, 10 slices
      BG44 [5719]       IW4 data #4, 10 slices
      ANTz [72]         Page annotation (hyperlinks, etc.)
      TXTz [7]          Hidden text (text, etc.)

Kromě stránek s obrazovou informací může obsahovat DjVu dokument také další stránky. Každá z nich je určena parametrem FORM. Podle jejich kodu můžete poznat jakou informaci obsahují

DJVM

Je identifikátor, který najdete výhradně u vícestránkových DjVu dokumentů. Může obsahovat jeden až dva bloky informací. Vždy obsahuje blok DIRM a pouze je-li součástí svazku textový rejstřík (outline) obsahuje také blok NAVM.

DIRM

Je blok dat, který se vyskytuje u všech typů svázaných dokumentů. Obsahuje základní informaci o dokumentech, které jsou součástí svazku a také informaci, zda-li je svazek pevný či volný. Na tom totiž záleží jak vypadá struktura dat.

Na rozdíl od volného (indirect) svazku obsahuje pevný (bundled) svazek blok s offsety jednotlivých stránek.

INT8 (1 bajt) informace o typu dokumentu. Může mít pouze dvě hodnoty 1 (indirect) nebo 129 (bundle)
Následující blok následuje pouze u pevných (bundled) svazků...
INT16 (2 bajty) celkový počet spojených dokumentů
Následující sekvence offsetů se opakuje podle počtu vložených dokumentů, a to včetně dokumentů sdílených!...
INT32 (4 bajty) offset na kterém začíná spojený dokument

Za offsety následuje komprimovaný blok dat. U volných (indirect) svazků následuje komprimovaný blok dat bezprostředně za identifikátorem typu svazku. Obsah komprimovaného bloku dat se opět liší podle typu svazku.

U pevného svazku obsahuje informaci o velikosti, typu a ID vložených dokumentů:

INT24 (3 bajty) * počet vložených dokumentů délka vloženého dokumentu
INT8 (1 bajt) * počet vložených dokumentů typ vloženého dokumentu
Následující sekvence se opakuje pro jednotlivé vložené dokumenty až do konce bloku dat...
UTF8 (řetězec) ID vloženého dokumentu
NULL (1 bajt) oddělovač identifikátorů

U volného (indirect) svazku obsahuje pouze odkazy na soubory.

NAVM

Je komprimovaný blok dat, který následuje bezprostředně za blokem DIRM, pokud dokument obsahuje textový rejstřík (outline). U "volných" svazků je tedy stejně jako DIRM součástí indexového DjVu souboru. NAVM je součástí formátu DjVu od května 2003.

INT16 (2 bajty) celkový počet elementů
Následující sekvence se opakují pro jednotlivé položky až do konce bloku dat...
INT8 (1 bajt) počet potomků elementu
INT24 (3 bajty) délka řetězce popisu
UTF8 (řetězec) popis elementu
INT24 (3 bajty) délka řetězce URL
UTF8 (řetězec) URL

Viz ukázka rozbaleného bloku dat NAVM ukázkového souboru example_outline.djvu:

Poznámka
0000000  00  08  05  00  00  13  4f  6e  6c  69  6e  65  20  50  75  62
         .....8   5  ........19   O   n   l   i   n   e  __   P   u   b
0000016  6c  69  63  61  74  69  6f  6e  73  00  00  00  01  00  00  09
          l   i   c   a   t   i   o   n   s  .........0   1  .........9
0000032  53  61  6d  70  6c  65  73  20  31  00  00  0b  23  70  30  30
          S   a   m   p   l   e   s  __   1  ........11   #   p   0   0
0000048  30  31  2e  64  6a  76  75  01  00  00  0c  64  61  6c  73  69
          0   1   .   d   j   v   u   1  ........12   d   a   l   s   i
0000064  5f  75  72  6f  76  65  6e  00  00  00  00  00  00  0d  61  20
          _   u   r   o   v   e   n  .........0   0  ........13   a  __
0000080  6a  65  73  74  65  20  64  61  6c  73  69  00  00  00  00  00
          j   e   s   t   e  __   d   a   l   s   i  .........0   0  ..  
0000096  00  09  53  61  6d  70  6c  65  73  20  32  00  00  0b  23  70
         .....9   S   a   m   p   l   e   s  __   2  ........11   #   p
0000112  30  30  30  32  2e  64  6a  76  75  00  00  00  09  53  61  6d
          0   0   0   2   .   d   j   v   u   0  .........9   S   a   m
0000128  70  6c  65  73  20  33  00  00  0b  23  70  30  30  30  33  2e
          p   l   e   s  __   3  ........11   #   p   0   0   0   3   .
0000144  64  6a  76  75  00  00  00  15  50  75  62  6c  69  73  68  65
          d   j   v   u   0  ........21   P   u   b   l   i   s   h   e
0000160  72  73  20  54  65  63  68  6e  6f  6c  6f  67  79  00  00  1b
          r   s  __   T   e   c   h   n   o   l   o   g   y  ........27
0000176  23  70  75  62  6c  69  73  68  65  72  73  5f  54  65  63  68
          #   p   u   b   l   i   s   h   e   r   s   _   T   e   c   h
0000192  6e  6f  6c  6f  67  79  2e  64  6a  76  75  00  00  00  08  44
          n   o   l   o   g   y   .   d   j   v   u   0  .........8   D
0000208  6a  56  75  20  46  41  51  00  00  0d  23  64  6a  76  75  66
          j   V   u  __   F   A   Q  ........13   #   d   j   v   u   f
0000224  61  71  2e  64  6a  76  75
          a   q   .   d   j   v   u

Aplikace djvused interpretuje tento blok kódu následujícím způsobem:

user@stroj:~$ djvused example_outline.djvu -e 'print-outline'
(bookmarks
 ("Online Publications"
  ""
  ("Samples 1"
   "#p0001.djvu"
   ("dalsi_uroven"
    ""
    ("a jeste dalsi"
     "" ) ) )
  ("Samples 2"
   "#p0002.djvu" )
  ("Samples 3"
   "#p0003.djvu" )
  ("Publishers Technology"
   "#publishers_Technology.djvu" )
  ("DjVu FAQ"
   "#djvufaq.djvu" ) ) )

Informace vytažené přímo z kodu:

Celkový počet položek: 8

  1. 5 Online_Publications
  2. 1 Samples_1 #p0001.djvu
  3. 1 dalsi_uroven
  4. 0 a_jeste_dalsi
  5. 0 Samples_2 #p0002.djvu
  6. 0 Samples_3 #p0003.djvu
  7. 0 Publishers_Technology #publishers_Technology.djvu
  8. 0 DjVu_FAQ #djvufaq.djvu

Interpretace kódu v prohlížečce:

"Online Publications"
  • "Samples 1"
  • "dalsi_uroven"
  • "a jeste dalsi"
  • "Samples 2"
  • "Samples 3"
  • "Publishers Technology
  • "DjVu FAQ"
Upozornění U dokumentů Secure DjVu zůstává blok DIRM nešifrovaný. Více viz SDJVU

DJVI

Je identifikátor sdíleného dokumentu. Ten obsahuje informace, které mají být dostupné ze všech dokumentů ve svazku. Metainformace, osnova, atd. Při převedení pevného (bundle) svazku na volný (indirect) mají soubory s těmito sdílenými dokumenty příponu "iff". Výjimkou jsou náhledy, které používají příponu "thumb".

Poznámka U normálního DjVu dokumentu je v každém DJVI dokumentu vždy pouze jeden blok dat některého z následujících typů. U kryptovaného DjVu souboru to neplatí, protože u něj blok dat s informacemi o zabezpečení obsahuje bloky dva INCL a SINF.

Djbz

Je blok dat, který obsahuje knihovnu tvarů (shapes), které se na stránkách opakují - typicky jde o písmo. Vrstva Sjbz (maska) ve stránce dokumentu pak obsahuje pouze ty tvary, které se v tomto sdíleném bloku nevyskytují.

ANTa

Původní, dnes již nepoužívaný nekomprimovaný blok poznámkových dat

ANTz

U DjVuLibre se setkáte pouze s jediným dokument tohoto typu - "shared_anno.iff", ve kterém by měly být soustředěny informace společné pro celý svazek. U některých volných svazků však lze narazit i na jiné soubory - "docmeta.iff" a "pagemeta.iff", s nimiž pracoval (dnes již nedostupný) komerční software JRAPublish. Nebo "djvudir.iff", který se používal pro DjVu svazky do verze 20.

Vykuchání obsahu těchto souborů a jejich případná modifikace je relativně snadná operace.

  1. Nejprve pomocí djvmcvt převeďte pevný svazek (bundles) na volný (indirect). Tím se dostanete na jednotlivé sdílených metadat s nimiž lze dále pracovat.
  2. Strukturu dokumentů .iff lze dumpnout buď přes djvused, příkazem dump, nebo přes djvudump
  3. Z .iff souboru, pak lze vykuchnout vrstvu ANTz přes djvuextract
  4. Vytažený datový blok rozbalte pomocí bzz, a získáte normální textový dokument, který lze editovat běžným textovým editorem.
Manuální sestavení sdílené metadatové vrstvy

Editovat obsah sdílené metadatové vrstvy tímto způsobem, je ovšem nesmysl. Nicméně, tento postup se může hodit v situaci, kdy se při sloučení několika DjVu svazků objeví těchto vrstev více. V zásadě to sice ničemu nevadí, ale můžeme se dostat do situace, kdy bychom chtěli zrušit některá metadata z dodatečně vloženého svazku, nebo bychom chtěli sloučit obsah obou souborů do jednoho.

V takovém případě nezbývá než přistoupit k manuální práci.

Nejprve se sdílená data sloučí do jednoho z upravených souborů, který se opět pomocí bzz zabalí. Bohužel djvumake nedovoluje sestavit soubory .iff nezbývá tedy než si pomoci jinak.

Je třeba vyrobit hlavičku 'AT&TFORM' za kterou bude následovat na čtyřech bajtech celková délka upraveného .iff souboru, zkrácená o xxx bajtů, které patří hlavičce. Pak následuje hlavička sdílené vrstvy DJVI, kód vrstvy ANTz, na 4 bajtech délka zapakovaného souboru a za ní vlastní data.

Odstranění sdílené metadatové vrstvy

Bohužel pro odstranění sdílené metadatové vrstvy žádný triviální příkaz neexistuje. Udělat to lze pouze jediným způsobem – postupně vyexportovat u všech stránek dokumentu všechny vrstvy, a pak s z nich sestavit stránky znovu, pod stejným jménem. Ovšem bez vrstev INCL, které obsahovaly odkazy na sdílené metadatové soubory.

JRMD

S tímto identifikátorem datového bloku se můžete setkat pouze u dokumentů, které generoval již výše zmíněný JRAPublish. Podle stránky ( dnes již nedostupné ) http://www.planetdjvu.com/metadata_storage_for_djvu_files_m.htm měl tento blok obsahovat následující meta klíče:

docmeta.iff - Title, Author, Date, Subject, Summary, Publisher
pagemeta.iff - Author, Date, Subject, Publisher

Vrstvy JRMD které jsou součástí jednotlivých stránek by pak měly obsahovat meta klíče - Title a Summary

Vzhledem k tomu, že ve své "sbírce" mám jeden dokument, který byl vytvořený v JRAPublish, bylo možné tento blok částečně analyzovat

THUM

Tento datový blok s předem vyrenderovanými náhledy se ve svazku může objevit i víckrát, ale u menších svazků nemusí být uveden vůbec. Má význam u pevných svazků kde je hodně stránek, resp. jsou velké, takže by renderování náhledu za běhu příliš zdržovalo, nebo u volných svazků prohlížených on-line.

Náhledy mohou být vyrenderované zvlášť pro každou stránku, ale mohou být i seskupeny povícero v několika blocích. Identifikátorem náhledu je TH44.

DJVU

je vlastní stránka s obrazovou informací, která může kromě obrazových vrstev obsahovat také skryté textové vrstvy s textovým obsahem stránky, meta informacemi, hyperlinky, atd..

Vrstvy DJVU dokumentu

Základní informace o DjVu dokumentu (kolik má stránek, vrstev, atp.) lze získat buď pomocí utility djvudump, nebo příkazem dump při editaci DjVu dokumentu pomocí editoru djvused.

Obrazové vrstvy (chunks) lze extrahovat pomocí nástroje djvuextract. Ovšem pozor! Z DjVu souborů nikdy nelze získat zpět soubory identické s těmi, ze kterých byly vytvořeny, protože se při konverzi používá ztrátová wavelet komprese. DjVu dokumenty nejsou určeny k elektronické archivaci, ale pro zpřístupnění archivních dokumentů ke čtení a studiu.

Vytažené vrstvy však lze použít do jiných dokumentů (např jako "vodoznak"), nebo z nich vyrenderovat bitmapový obrázek, který lze odeslat k tisku.

INFO 
je informační vrstva která obsahuje údaje pro výchozí nastavení obrázku. Jaké má použít prohlížeč výchozí rozměry, rozlišení, nastavení gammy. Od dubna 2001 je také jeho součástí příznak, který definuje jaká má být orientace stránky.
INCL 
je virtuální vrstva která obsahuje odkaz na shared_anno.iff hlavičku a patičku dokumentu.
Sjbz 
je vrstva která funguje jako maska při renderování popředí. V případě, že je zvolen při prohlížení režim kresba, nahrazuje chybějící barevné vrstvy. Může jí být obrázek zkomprimovaný nástrojem cjb2 ale také celý djvu dokument, je-li pouze jednobarevný. Od dubna 2001 podporuje kompresní formát jb2, který se na komprimaci této vrstvy používá, barvy. Předtím bylo možné použít pouze černobílou masku. Význam to má zvláště u starších tištěných dokumentů, kde díky tomu lze dosáhnout příznivé komprese celého djvu dokumentu. Zažloutlé pozadí stránek je odmaskováno do pozadí a písmo vhodným kontrastem vytaženo do popředí. Maska může být také vrstva typu Smmr - je-li komprimovaná technologií MMR/G4, kterou používá TIFF. Ovšem tento typ masky z principu nemůže být tak efektivní jako Sjbz. Vrstvu typu Sjbz totiž netvoří bitmapový obrázek, ale očíslovaná sada jednobarevných tvarů (shapes), komprimovaných vlnkovou kompresí, namapovaných do plochy o rozměru původního obrázku. Typicky jde o znaky písma. Místo opakujících se barevných pixelů se tak na ploše opakují pouze identifikační čísla tvarů. Využívá se toho i u sdílené obrazové vrstvy dokumentu typu Djbz.
Djbz 
Je v podstatě sdílená sada tvarů (shapes) které se vyskytují na více než jedné stránce DjVu svazku. Vrstva Sjbz (maska) stránky pak u takového DjVu svazku obsahuje jen tvary, které se na žádné jiné stránce neopakují. To je výhodné v případě rozsáhlých DjVu dokumentů, u kterých dominuje text – typicky jde o knihy. Sdílená vrstva však může sebou nést i komplikace, které jsou spojené se závislostí stránky na sdílené vrstvě Djbz při manipulaci se stránkami. Proto je doporučeno přistoupit k vytvoření sdíleného slovníku pomocí utility jb2unify až ve finální fázi zpracování DjVu svazku.
BG 
vrstva pozadí - je tvořena z několika vrstev řezů (slices), proto se při výpisu struktury DjVu stránky přes djvudump jich obvykle zobrazuje víc než jedna. Ve skutečnosti jde o jeden blok dat, zapakovaný přes bzz, který obsahuje kontejner FORM, a v něm je několik bloků typu PM44. Při extrakci přes djvuextract se tento kontejner vybalí, a jehoho strukturu lze vypsat přes djvudump. Každý z bloků dat, který obsahuje jednu vrstvu má hlavičku PM44.
Tyto bloky dat však nejsou stejné. Jsou číslované od 0 nahoru a ten první obsahuje navíc informace o verzi a velikosti obrazu.
Následující bloky dat pak obsahují soubory řezů (slices), jimiž se pak barevná informace nulové vrstvy v průběhu načítání stránky "doostřuje".
Při importu vyexportované vrstvy pozadí do nového souboru umožňuje djvumake určit kolik z těchto vrstev řezů se má naimportovat (není-li uvedeno jinak, naimportují se všechny). Ve výsledku tak může být nově sestavený DjVu dokument co do velikosti menší než originální DjVu dokument, ovšem s poněkud horším vykreslením detailů.
FG 
vrstva popředí může být – na rozdíl od vrstvy pozadí, která je většinou enkódovaná přes c44 – vícero typů. Je-li vytvořená s aplikací masky, nebo přes c44, obsahuje také kontejner PM44 – ovšem bez dalších vrstev řezů. Ve výpisu se pak zobrazuje jako FG44
Vrstva popředí typu FGbz může být buď černobílá (vytvořená přes cjb2), nebo v indexovaných barvách (je-li enkódovaná přes cpaldjvu). Tvoří ji seznamem zakomprimovaných tvarů (shapes). Jednotlivé tvary jsou v rámci vrstvy odděleny mezerou.
Při "manuální" tvorbě dokumentu můžeme zadanými parametry ovlivnit, které barvy budou součástí popředí a které již spadnou do pozadí.
TH 
je vrstva s náhledy stránek vložených v dokumentu.
TXT 
je textová vrstva dokumentu s vlastním textovým obsahem stránky.
ANT 
je textová vrstva dokumentu, určená pro poznámky, bookmarky, hypertextové odkazy atp. Součástí formátu od dubna 2005
JRMD 
je dnes již nepoužívaná textová vrstva dokumentu, určená pro poznámky, bookmarky, hypertextové odkazy. Generoval ji JRApublish 3.0(software, který je dnes prakticky nedostupný.).
CIDa 
je vrstva kterou podle mnou nalezených informací generoval Virtual Print Driver (zřejmě přímo od Lizzardu) a byl součástí DjVu cca od verze djvu3.6.1 od června 2002 není však už podporovaná.