8bitカラー画像を​4bitに変換するこ​とはできますか?

15 views (last 30 days)
R
R on 23 Nov 2022
Commented: R on 25 Nov 2022
.jpegの画像を4bitに変換したいのですがどうすればいいですか?
ご教授いただきたく存じます。
  4 Comments
Atsushi Ueno
Atsushi Ueno on 24 Nov 2022
> リンク先の方法でデータ量削減はできているのでしょうか?
NO: 量子化により減色されましたが、データ量はむしろ増えています。
(imquantize関数においてvalues — 量子化値が設定されていない為メモリ上の型がuint8型からdouble型に変わっています。回答者様もその点を言及されている通り、意図的にそうしたのだと思います)
YES: データ型(bit数)も落とせばデータ量が削減されます。MATLABに4bit整数型はありません。Fixed-Point Designerを用いて4bitに固定小数点化する事を提案されています。しかし色深度を4bitにしてもJPEGファイルフォーマットに収める方法がありません。リンク先の質問範囲ではなかったのでそこまで説明されていません。
色深度とJPEG圧縮は別の話でimwrite関数でJPEGファイルを作成するなら引数のMode — 圧縮のタイプおよびQuality — 出力ファイルの品質で設定します。圧縮により色深度が減る訳ではなく、圧縮の結果として量子化と同様に減色されます。これは極端な例で、通常のJPEG圧縮率であれば元画像と見た目は変わりません。
I = imread('peppers.png'); % uint8型。色深度は8bitのままにする
imwrite(I,'comp_peppers.jpg',"jpg","BitDepth",8,"Mode","lossy","Quality",0); % JPEG圧縮の限界に挑戦
I2 = imread('comp_peppers.jpg'); % JPEG圧縮されたJPEGファイルを開く
montage({I,I2});
R
R on 25 Nov 2022
回答ありがとうございます。
いろいろな点について言及されており、分かりやすかったです。

Sign in to comment.

Answers (1)

Hernia Baby
Hernia Baby on 23 Nov 2022
  1 Comment
R
R on 23 Nov 2022
回答ありがとうございます。
4bitカラー画像は作れないということでしょうか?

Sign in to comment.

Categories

Find more on Convert Image Type in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!