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

.jpegの画像を4bitに変換したいのですがどうすればいいですか?
ご教授いただきたく存じます。

4 件のコメント

Atsushi Ueno
Atsushi Ueno 2022 年 11 月 23 日
減色が目的なのか、(メモリ/ファイル上の)データ量削減が目的なのかを明確にすべきだと思います。
  • 8bitカラー(1677万色)⇒4bitカラー(4096色)に減色する (量子化であり、色深度即ちデータ量はそのまま)
  • (メモリ上の) イメージデータの色深度を4bitにする (MATLABに4bit整数は無いので対策が必要)
  • JPEGファイルの色深度を4bitにする (可能?)
@Hernia Babyさんの回答のリンク先がやっているのは選択肢の最初と2番目で、JPEGファイルの話ではありません。メモリ上の型はuint8型からdouble型に変わっており、最終的にFixed-Point Designerを用いて4bitに固定小数点化する事を提案されています。
MATLABのJPEGファイル書き込み機能で設定可能な色深度(BitDepth)は 8または12bitカラーで、4bitカラーの選択肢はありません。(? JPEGフォーマットが分からないがJPEGの色深度4bitは無いらしい)
これとは別に、JPEG圧縮を有効にし圧縮率を上げていくと見た目も減色されていきます。なので先に書いた「減色かデータ量削減か」「圧縮無しか有りか」といった点も明確になると、回答も明確になってくると思います。
@Rさんのやりたい事はどれでしょう?
R
R 2022 年 11 月 23 日
ご指摘ありがとうございます。
一番やりたいこととしてはデータ量の削減です。
圧縮ができるのであればしたいと考えています。
リンク先の方法でデータ量削減はできているのでしょうか?
回答いただけると助かります。
Atsushi Ueno
Atsushi Ueno 2022 年 11 月 24 日
> リンク先の方法でデータ量削減はできているのでしょうか?
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 2022 年 11 月 25 日
回答ありがとうございます。
いろいろな点について言及されており、分かりやすかったです。

サインインしてコメントする。

回答 (1 件)

Hernia Baby
Hernia Baby 2022 年 11 月 23 日

0 投票

1 件のコメント

R
R 2022 年 11 月 23 日
回答ありがとうございます。
4bitカラー画像は作れないということでしょうか?

サインインしてコメントする。

カテゴリ

ヘルプ センター および File Exchangeイメージ についてさらに検索

製品

リリース

R2022b

質問済み:

R
R
2022 年 11 月 23 日

コメント済み:

R
R
2022 年 11 月 25 日

Community Treasure Hunt

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

Start Hunting!