« 2006年08月28日 | メイン | 2006年08月30日 »
2006年08月29日
PDFで使う圧縮方法
今日、営業で訪問した先で、PDFで使える圧縮についての話題がありました。以前に、一度、PDF/Xの時にもまとめましたが、もう一度、営業のQ&Aも兼ねて、整理しておきます。
PDF Reference 1.6版 2.2 Compression
PDFで使える圧縮には次のものがあります。
(1)カラー、グレースケール・イメージ
・JPEG
・JPEG2000 (PDF 1.5~)
(2)モノクロ・イメージ
・CCITT G3,G4
・ランレングス
・JBIG2 (PDF 1.4~)
(3) テキスト、グラフィックス、イメージ
・LZW
・Flate (PDF 1.2~)
以上が標準で使えるデータ圧縮方法です。
もうひとつ注意するべきこととして、圧縮の対象とする単位のことがあります。
PDFで圧縮対象となるのは、PDFを構成する細かいコンポーネント(オブジェクトなど)の中のデータ部分(ストリーム)です。PDFはオブジェクト毎のストリーム単位で圧縮されているのであって、PDFファイルを一括して大きな単位で圧縮しているわけではないのです。
ところが、PDF1.5から複数のオブジェクトをまとめて、ひとつのオブジェクトとし、複数のストリームをまとめてから圧縮することができるようになりました。Object Stream, Cross Reference Streamというものです。これによって、圧縮の効率が高まりました。
従って、圧縮に対応するかどうかは、各圧縮アルゴリズム用のフィルターをもつかどうか、ということと、Object Stream, Cross Reference Streamに対応するかどうかの2つの観点で考えなければなりません。
ちなみに、Antenna House PDF Driver V3.0 の圧縮機能は次の図のようになっています。
・テキストとラインアートの圧縮はFlate(ZIP)圧縮です。LZWは使っていません。これは過去にUNISYS特許問題という歴史的な問題があったため。
・画像についてはJBIG2以外の圧縮をすべて使用しています。使用可能なものから画像のタイプにより選択します。
・Object Stream, Cross Reference Streamについては、PDF1.5以上の時に表示される「オブジェクトレベルの圧縮を行う」をONにすると使用します。