グループ 3 コンプレスには 2 つのバリエーションがあります (グループ 3 1D とグループ 3 2D)。画像を Tiff 形式で保存する場合、EncoderValue 列挙のグループ 3 のオプションは 1 つだけです。これを制御する別のパラメーターはありますか?
1 に答える
はい。グループ 3 圧縮 (より正確には CCITT T.4) の最も一般的な用途は、FAX 画像です。この場合、画像は定義上 2 値 (1 ビット) 画像であり、1D 圧縮が期待されます。したがって、圧縮値 (タグ 259) を '2' (バイレベル イメージの場合) に設定する以外に何もしない場合、G3 1 次元 (修正ハフマン) エンコーディングであると理解されます。他のオプションは、圧縮なし (1) と pack-bits (32773) だけです。ベースライン リーダーは3 つのエンコーディング タイプすべてをサポートする必要がありますが、多くのリーダーがグループ III 圧縮、特に G32D を適切にサポートしていないことが私の経験です。
G31D は G32D よりも実装がはるかに簡単ですが、G32D ほど効率的ではありません。G31D は各スキャン ラインを個別に格納しますが、G32D はスキャン ライン間の差分を格納します。これにより、画像の大部分が白紙である典型的なファクシミリ画像などの画像を定義するために必要なデータ量に大きな違いが生じる可能性があります。
G3 2 次元コーディングを使用する場合は、タグをより具体的にする必要があります。T4 圧縮エンコーディングを示すには、CCITT エンコーディングを使用する必要があります (CCITT T.4 は、「グループ 3」エンコーディング標準の「実際の」名前です)。これを示すには、タグ 259 == 3 を設定します。次に、T4 オプションを設定して 2 次元エンコーディングを指定します。T4 オプション タグ (タグ 292) は、標準の圧縮 (259) タグのような単純なタグと比べると少し扱いにくいです。32 ビットのフラグのセットとして使用される LONG 型です。すべてのビットをゼロに設定したままにすると、デフォルトで 1 次元コーディングが理解されます (このタグを含めない場合と同じです)。
2 次元コーディングの場合、ビット 0 (下位ビット) を 1 に設定する必要があります。非圧縮モードが使用されます。ビット 2 は、フィル ビットを使用して EOL をバイト境界に維持したかどうかを示すために使用されます (true の場合は 1 に設定)。他のすべてのビットのデフォルトはゼロです。
ほとんどの読者は、TIFF で利用可能なすべてのオプションを理解していないことに注意してください。これは非常に強力な形式ですが、ベースラインの TIFF (おそらく TIFF 画像の 90% 以上を処理する) を超えて実装するのは難しいものです。Group 3 2 Dimensional コーディングを使用している場合、特にファクシミリ画像と医療画像*をサポートするほとんどのリーダーが画像を適切にデコードすることが期待できます。それ以上は望めません。
( TIFF は標準的な医用画像形式ではありませんが、私の経験では、DICOM 画像と TIFF 画像の両方をサポートしているリーダーは通常、完全な TIFF 標準をサポートしています。 )
この回答は、意図したよりも長くなります。それでも質問に答えていない場合は、元の投稿で明確にしてください。回答を編集します。
編集: Adobe 開発者サイトで TIFF 標準およびその他のサポート ドキュメントを見つけることができます。http://partners.adobe.com/public/developer/tiff/index.html