14

LibTIFF で 10,12 ビット RGB TIFF ファイルを書き込もうとしています。

ピクセル データはunsigned shortバッファ (16 ビット)にローカルに保存されます。

1) TIFFTAG_BITSPERSAMPLE10 または 12 に設定すると、バッファーから十分なビットが読み取られず、出力が正しくありません。(コンポーネントごとに16ビットではなく10ビットまたは12ビットを読み取っているだけであり、これが問題であることを理解しています)

2) 実際には 12-R、12-G、12-B になるように、ビットをバッファーに詰めてみました。この場合、ファイルは正しく書き込まれていると思いますが、この画像を正しく表示できるビューアーは見つかりませんでした。

3) TIFFTAG_BITSPERSAMPLE16 に設定すると、ビューアーは TIFF 画像を表示できますが、元の画像が 10 ビットなのか 12 ビットなのか (後で LibTIFF で読みたい場合) がわからないという問題があります。また、視聴者はダイナミック レンジが 10 ビットや 12 ビットではなく 16 ビットであることを期待しているため、これも見栄えが悪くなります。

4) 最も厄介な点は、ヘッダーがどのように見えるかを確認するための 10、12、または 14 ビットの TIFF 画像が Web 上で見つからなかったことです。

最後に、10 ビットまたは 12 ビットの画像データを TIFF ファイルに書き込む適切な方法は何ですか?????

4

2 に答える 2

12

TIFF 仕様では、画像のチャネルあたり 10、12、または 14 ビットを格納する方法は指定されていません。エンコーダーとデコーダーによっては、そのような画像を操作できる場合もありますが、これを行う必要がないため、実際には実装の詳細です。

TIFF で 8 ビットを超える精度が必要な場合、唯一の選択肢は 16 (または浮動小数点ですが、それは別の話です) です。

これらのビット深度を特定にサポートする画像フォーマットを私は知らないので、その特定のビット深度で画像を保存しなければならない場合、ビューアーが問題になる可能性があります。私が考えることができる最も簡単な回避策は、ピクセルあたり16ビットとして保存し、元のビット深度をメタデータとして(たとえば、ImageDescriptionタグに)入れることですが、それはすべて、画像が何に使用されるか、およびなぜこの情報が必要かによって異なります.

于 2011-08-15T18:13:49.037 に答える