DJVU(1)

名前
DjVu - DjVu および DjVuLibre

はじめに
インターネットは世界の誰もが利用できるユニバーサルな図書館を構築する 世界規模のインフラを提供している一方、世界優れた知恵や歴史、文学などは 伝統的な図書館の地下室に眠ったままになっています。たくさんの図書館や コンテンツオーナーはコレクションのデジタル化の真っ最中です。こうした努力の 多くが紙の文書を SGML のようなコンピュータで使える形式に変換するという骨のおれる仕事に費やされている 一方、このような変換作業に多大なコストがかかるため変換される文書の量自体が 限られてしまっています。文書のスキャンや画像の電子的な配信はかなりコストが 安くなっているばかりでなく、視覚的な特徴を保存するという理由でオリジナル文書に 忠実であると言えます。

ネットワークコネクションやコンピュータのスピードが劇的に向上していますが、 WEB からアクセスできるスキャン文書画像の数は比較的少ないと言えます。これには いくつかの理由があります。

一つは、白黒の綴じられていない紙以外のスキャニングのコストが比較的高いことです。 最近ではオートシートフィーダ付の低価格で高速なカラースキャナが出てきていますので、 この問題は次第になくなって行くでしょう。

二つ目は、長い間使用されてきた画像圧縮の標準やファイルフォーマットが高解像度の スキャン文書の配信、特にカラー文書の配信に向いていないことが証明されたことです。 ファイルサイズやダウンロードにかかる時間が実用的でないばかりでなく、デコードしたり 描画にかかる時間も相当なものです。100 DPI のカラーでスキャンされた JPEG 形式の典型的な雑誌のページは通常 100 KB から 200 KB 程度のサイズになりますが、テキストはほとんど読むことが出来ません。画面で読むには 充分な画質とは言えませんし、印刷するには画質が悪すぎます。同じページは 300 DPI で スキャンすれば表示にも印刷にも充分なデータになりますが、ファイルサイズは 300 KB から 1000 KB となってしまい、リモートでアクセスするには実用的ではないサイズです。もう一つ大きな 問題は 300 DPI のレターサイズ、フルカラーデータをデコードすると約 24 MB ものメモリを消費するため、ディスクスワップを引き起こし易くなってしまいます。

三つ目の理由は、デジタル文書は単なるページの集まり以上のものであるということです。 スキャン文書のページは紙と同じく連続しています。より使い易くするには、瞬時に ストレスなくページめくることが出来るような仕組み必要です。さらに重要なことは、 たいていの既存のフォーマットでは、ユーザは見たいページを表示するにははじめに文書全体 をダウンロードしなければならないことです。しかし、ユーザの中には文書全体をダウンロード せずに、瞬時に見たいページへアクセスしたい人もいます。効果的なブラウジングを 行うには、効果的にランダムなページにアクセスしたり、高速にページをめくったり、 高速に描画することが必要です。これら全ては、先進的な圧縮技術や、先読み機能、 プリデコーディング、キャッシュ機能、累積的な描画機能を組み合わせることで実現 されています。DjVu は各ページ複数のコンポーネント(テキスト、背景、画像、共有辞書など) に分解して、これを複数のページで共有します。また、これらは必要な時にダウンロードされます。 これらの全ての要件は、オンデマンドのダウンロードや、先読み、デコード、キャッシング機構、 ページ画像の累積的な描画機構などの非常に洗練されていて、かつ小さなコントロールメカニズム が必要です。ここで考えられていることは、単なる文書画像圧縮技術ではなくドキュメント配信 のための総合的なプラットフォームです。

DjVu はこうした要件を満たす画像圧縮技術であり、文書フォーマットであり、インターネット の文書配信プラットフォームです。

DjVu の画像圧縮
DjVu 画像の圧縮は次の三つの技術をベースにしています:

  DjVuPhoto
IW44 としても知られている DjVuPhoto は累積的なデコード/描画機能を持った、 Wavelet ベースの連続階調画像用の圧縮技術です。主にカラーやグレースケールの 写真画像の圧縮で使われます。同じ品質の画像では通常 JPEG に比半分のサイズに圧縮されます。

  DjVuBitonal
JB2 としても知られる DjVuBitonal は白黒画像の圧縮で、テキスト画像を効果的に圧縮することが 出来るように、文字などのようなページ中に似通った模様が反復している点を活用しています。 主にテキストや単純な図面などの白黒画像の圧縮に使用されます。典型的な 300 DPI のページを DjVuBitonal で圧縮するとおよそ 5 から 25 KB 程度となり、 TIFF-G4 や PDF と比べ、約 3 から 8 倍も小さくなります。

  DjVuDocument
DjVuDocument は、雑誌のページのような写真とテキストの両方を含むカラーデジタル文書 のために設計された圧縮技術です。DjVuDocument は画像を個別に圧縮されたレイヤで 表します。前景レイヤは通常 DjVuBitonal で圧縮され、テキストや図を含みます。 背景レイヤは DjVuPhoto で圧縮され、背景のテクスチャや写真を低解像度で保持します。

DjVu 文書配信プラットフォーム
DjVu テクノロジーはインターネットにデジタル文書を効果的に配信するために 一から設計されました。マルチページ文書を扱う様々な方法や、ハイパーリンクや 目ターでタ、検索テキストなどコンテンツをより価値あるものにする様々な機能を 備えています。

  バンドルド形式のマルチページ文書
バンドルド形式のマルチページ DjVu 文書は文書全体を一つのファイルで表現します。 このファイルは全てのページと補助的な情報(ページのディレクトリ、ページ間で共有されるデータ、 サムネイルなど)を保持します。単一のファイルフォーマットを採用することで、 ドキュメントを保存したり電子メールに添付するのに非常に便利です。

マルチページ文書の URL をブラウザに打ち込むと、DjVu ブラウザプラグインはファイル全てをダウンロードしますが、 最初のページはデータがダウンロードされたと同時に表示されます。ツールバーから すぐに別のページへ移動することが出来ます。しかし、文書がリモートの WEB サーバ 上に保存されていたとします。最初のページに容易にアクセスすることができ、その 文書が必要でないことが分かります。すると残りのページは表示する必要はありませんが、 ブラウザーはデータのダウンロードを続け、サーバや回線の帯域を無駄に使い続けます。 また、最初のページの要約を読んでから、100 ページ目へジャンプすることもできます。 しかし、100 ページ目は 1 ページから 99 ページまでのデータがダウンロードされるまで 表示されません。この二つ目の問題(不必要に待つこと)は HTTP/1.1 プロトコルのバイトサービングオプションを使用して解決することが出来ます。 このオプションは WEB サーバやプロキシ、キャッシュ、ブラウザでサポートされていなければ なりません。しかし、バイトサービングは最初の問題(帯域の浪費)は解決できません。

  インダイレクト形式のマルチページ文書
インダイレクト形式のマルチページ DjVu 文書はこれら二つの問題を解決します。 インダイレクト形式のマルチページ DjVu 文書は複数のファイルで構成されます。中心 となるファイルはインデックスファイルと呼ばれています。ブラウザで表示するときは バンドルド形式と同じようにインデックスファイルの URL を使います。インデックスファイルは非常に小サイズです。このファイルは文書のディレクトリと ページのデータを含む二次的なファイルの URL を含んでいるだけです。インダイレクト形式のファイルを表示する場合は、ブラウザは 表示しているページのデータにアクセスしているだけです。ブラウザはページのキャッシュを 管理し、設定によっては現在のページに続くページを何ページか先読みするため、 ページのアクセスは合理的なスピードで行うことが出来ます。このモデルは、WEB が提供する 帯域をより効果的に使用することが出来ます。また、長い文書の別のページへジャンプするとき 不必要に遅延が発生することもありません。

  アノテーション
全ての DjVu 画像はオプションとしていわゆるアノテーションチャンクを持つことが出来ます。 アノテーションチャンクは、別の文書や任意の WEB へのハイパーリンクを定義するのに 使用されます。また、アノテーションチャンクは初期表示モードや、ハイライトエリア、 ページや文書に関する任意のメタデータを保持するのにも使用されます。

  検索テキスト
全ての DjVu 画像はオプションとして画像を対応するテキストに関連付けた隠れた テキストレイヤを持つことが出来ます。このテキストレイヤは通常 OCR ソフトウェアを実行する ことで作成することが出来ます。このテキスト情報により、DjVu 文書にインデックスを作成したり DjVu のページ画像からテキストをコピー/ペーストすることが出来ます。

  サムネイル
DjVu 文書はあらかじめ作成されたページのサムネイルを保持することが出来ます。

DjVuZone および DjVuLibre
DjVu テクノロジーは初め 1995 年から 1999 年にかけて AT&T Labs の数名の研究員 によって開発されました。その後 LizardTech, Inc. ( http://www.lizardtech.com ) が AT&T Labs から商業化権を取得しました。LizardTech は今では DjVu を使って 文書を作成したり配信したりするためのたくさんのソリューションを提供しています。

DjVuZone WEB サイト ( http://www.djvuzone.org ) は最初に DjVu テクノロジーを開発した数名の AT&T Labs の研究員によって 維持されています。私たちは DjVu に関する独立した情報ソースを提供することで DjVu テクノロジーの推進を図っています。

商業化により占有された文書フォーマットには非常に小さな余地しか残されていないことを 知りつつ、LizardTech は 2000 年の 12 月に DjVu のリファレンスライブラリを GNU のパブリックライセンスの下でリリースしました。このライブラリは圧縮形式と 基本的なコーデックを定義したものです。6 ヵ月後、LizardTech は Unix 版のビューア のソースコードとともに、更新された DjVu リファレンスライブラリをリリースしました。

これら二つのリリースが、DjVuLibre ソフトウェアの基礎を成しています。私たちは オープンソースのコミュニティの期待に沿うようにビルドシステムを変更しました。 様々なバグやポータビリティの問題が修正されました。また、私たちはインストールや 使用方法を簡便にする一方、LizardTech のリリースの基本的な構造を保持しています。

DjVuLibre ソフトウェア以下のコンポーネントを含みます:

bzz(1)
    一般的な圧縮コマンドラインプログラム。たくさんの DjVu 内部データ構造をこの方法で 圧縮することが出来ます。

c44(1)
    DjVuPhoto コマンドラインエンコーダ。この最先端の Wavelet 圧縮ツールは PPM または JPEG 画像から DjVuPhoto 画像を作成します。

cjb2(1)
    DjVuBitonal コマンドラインエンコーダ。このソフトパターンマッチング圧縮ツールは PBM 画像から DjVuBitonal 画像を作成します。可逆で圧縮することも、圧縮率を改善 する非可逆形式でも圧縮可能です。可逆圧縮モードは LizardTech の商用製品に匹敵する 性能を発揮します。

cpaldjvu(1)
    インデックスカラー画像用 DjVuDocument コマンドラインエンコーダ。このエンコーダは スクリーンショットのような色数の少ない画像の圧縮に最適化されています。全体に占める 率の高い色は背景へ配置されます。ほかの色は前景レイヤへ配置されます。

csepdjvu(1)
    分割された画像用の DjVuDocument コマンドラインエンコーダ。このエンコーダは、あらかじめ 分離された前景画像と背景画像入力すると、DjVuDocument 画像を生成します。

ddjvu(1)
    DjVu 画像のコマンドラインデコーダ。このプログラムは 指定した解像度で、DjVu 文書の指定ページの指定箇所を PNM 画像へ変換します。

djview(1)
    DjVu 画像のスタンドアロンビューア。この洗練されたビューアは DjVu 文書を表示します。 高速ズームやパン、ページ移動を行うことが出来ます。

nsdejavu(1)
    DjVu 画像のブラウザプラグインビューア。この小さなプラグインで、WEB ブラウザから DjVu 文書を閲覧することが出来ます。内部的に djview を呼び出して動作します。

djvups(1)
    DjVu 文書を PostScript に変換するコマンドラインツール。

djvm(1)
    バンドルド形式の DjVu 文書を作成するためのコマンドラインツール。このプログラムは 個別のページを集めてバンドルド文書を作製するのに使用されます。

djvmcvt(1)
    バンドルド形式の文書をインダイレクト形式に変換したりその逆を行うためのコマンドラインツール。

djvused(1)
    マルチページ文書の作成、アノテーションチャンク、テキストレイヤ、サムネイル画像など の編集のための強力なコマンドラインツール。

djvutxt(1)
    DjVu 文書のテキストレイヤを解凍するコマンドラインツール。

djvudump(1)
    DjVu ファイルを検査して、内部構造を表示するコマンドラインツール。

djvuextract(1)
    DjVu 画像ファイルを分解するコマンドラインツール。

djvumake(1)
    DjVu 画像ファイルを結合させるコマンドラインツール。

djvuserve(1)
    インダイレクト形式のマルチページ DjVu 文書を瞬時に作成する CGI プログラム。

DjVu エンコーダおよび Any2DjVu
DjVuLibre には、写真画像用の c44(1) 、白黒画像用の cjb2(1) 、インデックスカラー用の cpaldjvu(1) などの様々なエンコーダが含まれます。 これらのエンコーダはそれぞれの画像で良い結果が得られるように 調整されていますが、セグメンテーションやマルチページのエンコード といった複雑な処理を行うことが出来ません。 LizardTech の商用製品は (http://www.lizardtech.com/solutions/document を参照) こうした複雑な処理を行うためのツールを提供しています。 また、 (http://any2djvu.djvuzone.org) にある変換サーバでは別のソリューションを提供しています。 このマシンは LizardTech に渡る以前の AT&T Labs 時代のプロトタイ エンコーダを使用しており、LizardTech の商用エンコーダと同程度の パフォーマンスを得ることが出来ます。Any2DjVu 変換サーバは、 登録した文書が機密であることを保証するものではなく、ただ世界中の 人たちが利用できるようにしてあることにご注意ください。

クレジット
過去 5 年間、たくさんの人々が DjVu のソースコードに貢献してきました。 以下のリストを修正するには、sourceforge のバグレポートを提出してください。

    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 Vincent。 この man page は Nobchika Morimoto <morimoto@lizardtech.com> が翻訳しました。