1151928776 静止画の非可逆圧縮で,高圧縮率を出す圧縮方法を教えてください。システム開発の都合で,そのような方法を探しています。

 対象とする静止画像は,通常対象とする風景写真というようなものではなくて,オフィス用アプリケーションのキャプチャー画面のようなビットマップ画像を想定しています。すなわち,高周波成分の多い領域はあまりなくて,ベタ塗り部分の多い画像が対象です。
 JPEG2000(ウェーブレット変換)については,調べたのですが,確かに写真のようなものにはかなりの圧縮率になるようですが,今回はシステム開発の都合で,さらなる高圧縮率となる方法を探しています。そのため,「オフィス用アプリケーションのキャプチャー画面のようなビットマップ画像」と画像の種類を狭くして,高い圧縮率を出す方法を差合しています。アルゴリズムだけでなく,サンプルのソースコードなどがあれば,なお助かります。
 情報を広くお待ちしています。「ここを読めばよい」というような関連情報でも構いません。英語の情報でも構いません。よろしくお願い致します。

 参考までに,対象となるビットマップ画像の例を示します。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/07/03 21:12:59
  • 終了:2006/07/10 21:15:03

回答(3件)

id:sm0k3 No.1

03回答回数591ベストアンサー獲得回数392006/07/03 22:03:02

ポイント27pt

http://www.hatena.ne.jp/

カスタムパレットのGIFで見た目が遜色無い程度に減色してみては?

id:systemyasan

ご回答ありがとうございます。

そうですね。減色という手はありますね。その場合でも,おそらく,他の圧縮方法と組み合わせて使うことになるのだろうと思います。

引き続き,圧縮方法について幅広く情報をお待ちしています。

2006/07/03 22:31:49
id:Z9M9Z No.2

Z9M9Z回答回数343ベストアンサー獲得回数112006/07/04 00:10:56

ポイント27pt

http://www.type-labo.jp/Akirasan/mojininsiki.html

文字部分は文字認識して、画像から外してしまうと小さくなりそうです。

アイコンもライブラリ化してアイコンの認識にかけて、やはり外してしまう。

ウインドウの矩形を認識して、その重ね合わせで表現するようにする。

一般に、こうやって意味を入れていくとデータ量は減ります。

画像圧縮としては正統から外れると思いますが。

そもそも、この圧縮は、時間かかりそうですが。

id:systemyasan

なるほど。これはかなり斬新な方式ですね。

非可逆で,かつ,認識に多少は失敗しても良い,という条件ならば,できそうですね。ただ,プログラミング的には結構たいへんそうですね。一案として,検討させて頂きます。ありがとうございます。

 引き続き,たとえば圧縮方法で論文あるいはソースコードなどがあるものも含めて,幅広い情報をお待ちしています。

2006/07/04 00:20:30
id:studiokingyo No.3

d金魚回答回数47ベストアンサー獲得回数22006/07/04 07:08:17

ポイント26pt

こんにちは。私はプログラミングを勉強している学生です。

http://compression.ca/act/

は圧縮の性能に関して様々な結果をまとめているサイトです。

私がこのような画像を条件のように圧縮する場合、

まず最初に減色します。

ですが、このようなべた画像の場合、色情報を一つなくしただけでも違和感があるように見えてしまうような気がします。

その後なんらかの圧縮をします。非可逆のアルゴリズムで有名なJPEG2000のアルゴリズムは出てしまっているため可逆のアルゴリズムを紹介いたします。

例えば、zlibで使われているdeflate http://ja.wikipedia.org/wiki/Deflate

GIFで使われているLZW その他LZ系

http://sourceforge.net/projects/compressions/

RLE(google:Run length Encode)

しかしながらどれも画像専用のアルゴリズムではない為、目的の高圧縮になるか疑問が残る所です。(また、可逆です)

以下のURLは圧縮アルゴリズムを研究、紹介している方のサイトです。

私もこのサイトで様々な情報を得たり、勉強させてもらっています。

http://homepage3.nifty.com/DO/


その他に以下のような方法が思い浮かびました。

一つ目は画像内に含まれている色情報をすべて残して減色、その色情報を表せる最小のビット数で画像データを保存。その後なんらかの圧縮処理

二つ目はBlock sort(BWT)を使ってRun length Encode ですが、Block sortは私の体感的にとても遅いアルゴリズムです。

三つ目は画像を方眼紙のように区切ってそれから二次元のRun length Encodeのような処理(圧縮しても効果の無い場所は処理しないようにする)

私が調べてみた結果、減色アルゴリズムや画像専用の圧縮アルゴリズムには結構、特許が絡んでいましたのでとても難しい問題と感じました。

id:systemyasan

おお,これは貴重な情報がもりだくさんですね。ありがとうございます。研究いたします。

引き続き,今まで出ていない情報がなにかありましたら,皆様,お寄せ下さい。

2006/07/04 21:32:54

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません