タグ

圧縮に関するsh19910711のブックマーク (10)

  • PNGデコーダの調査結果:ESP8266でのデコードは厳しいかも

    ESP8266でJPEGとGIFがデコードできましたので、PNGも…と思い、仕様や既存のライブラリを調査していました。 その結果をここでまとめておきます。 結論としては、ESP8266でのPNG画像のデコードは不可能ではないものの、RAMの消費量や現時点で使えるデコーダライブラリの状況からは、JPEGやGIFに比べると課題が多いと言えます。 まず、PNGの圧縮方法について触れておきます。 PNGは、原理的には「ビットマップ画像をZIPで圧縮した」イメージに近いです。 圧縮アルゴリズムはDeflateと呼ばれているもので、ZIP、gzip等で使われているものと同じです。 Deflate圧縮は、出現頻度の高いビット列に短い符号を割り当てるハフマン符号化と、過去に既出のビットパターンを参照することでデータの繰り返しを圧縮するLZ77を組み合わせたものです。 Image compression D

    PNGデコーダの調査結果:ESP8266でのデコードは厳しいかも
    sh19910711
    sh19910711 2024/02/18
    "Deflate圧縮: 出現頻度の高いビット列に短い符号を割り当てるハフマン符号化 + データの繰り返しを圧縮するLZ77 / 過去に既出のパターンがあったかどうかを調べるための辞書が必要" / 2015
  • Java のデータ圧縮ライブラリを極める #jjug_ccc #ccc_c7

    テキストデータや画像・音声データなどの種類を問わずに適用できる 汎用的なデータ圧縮ライブラリ というと、deflate アルゴリズム の実装である zlib が古くからデファクトスタンダードとして存在しており、実際に広く使われています。ご多分に漏れず、zlib は Java にも組み込まれており、標準クラスライブラリを通じて利用できるようになっています。 一方で 2010 年代に入ってから、snappy, lz4, brotli, zstandard といった、zlib より優れた性能を提供する様々なデータ圧縮ライブラリが新たに開発・公開されており、利用が徐々に広まりつつあります。 このセッションでは、最近開発されたデータ圧縮ライブラリについて、Java で利用できるライブラリの紹介やそれぞれのライブラリの特性、どのライブラリを使うべきかの選定基準、また Java でそれらのライブラリを使

    Java のデータ圧縮ライブラリを極める #jjug_ccc #ccc_c7
    sh19910711
    sh19910711 2022/06/01
    "データ圧縮は得てして CPU-intensive / アルゴリズムとデータの「相性」がありうる > 実際に扱うデータでベンチマークを取ってみる / Snappy: 処理速度の速さに特化 + Zstandard, Brotli: 処理速度と圧縮率のバランスを重視"
  • 1988年

    1988年5月1日,私は PC-VAN の SIG SCIENCE(私が SIGOP をしていたところ) の第1ボード「オムニバス・ボード」(現「科学一般」)に次の書き込みをしました。 #1073/2867 オムニバス・ボード ★タイトル (SCIENCE ) 88/ 5/ 1 15:39 ( 49) LZSS法によるデータ圧縮プログラム/奥村 ★内容 依然ある雑誌にPascalで何かということで書いたのですが、その雑誌が休 刊中なので、TurboCで書き直したものをアップします。 特徴は、圧縮率が非常に良いことと、符号化が非常に遅いことです。2分木など を使えば符号化は1桁速くなりますが、LZSS法そのもののアルゴリズムをはっ きりさせるために、できるだけシンプルに作りました。符号化に時間がかかっても、 アップやダウンの電話代を考えれば、少しでも圧縮率の良いもののほうが良いとい う考え方

    sh19910711
    sh19910711 2022/05/27
    1988 / "PC-VAN のシステムは, 半角と全角を同じ行に混在させると行末部分が失われやすかった / 当時は Borland の Turbo Pascal が人気のコンパイラ / SIG SCIENCE は科学のフォーラムなのに, データ圧縮ばかりで燃えている状態"
  • 整数列圧縮アルゴリズムの最前線 - ny23の日記

    ちょうど二年ぐらい前,機械学習で疎ベクトルの圧縮に情報検索でよく使われる整数列の圧縮技術を使うことを検討したことがあった(オンライン学習でキャッシュを実装してみた - ny23の日記).そのときは,オンラインで圧縮し Disk に保存,圧縮したベクトルは陽にメモリに置かず読む(OS に任せる)という実装で,(Disk IO のオーバーヘッドが大きく)圧縮さえすれば何を使っても大差なしという身も蓋もない結論になった(結局2行で書ける最も単純な Variable byte code を採用). それ以降は整数列圧縮アルゴリズムに関する知識も NewPFD ぐらいで止まっていたのだけど,つい先日,現時点で最速の圧縮アルゴリズムの提案+ここ数年の主な整数列圧縮アルゴリズム(Simple-8b (J. Software Pract. Exper. 2010), VSEncoding (CIKM 20

    整数列圧縮アルゴリズムの最前線 - ny23の日記
  • unzip でファイル名文字化け対応 - dora-monの日記

    Windowsがデフォルトでzip圧縮形式に対応して以来、メールに添付されるzipファイルが急増した気がする。しかしファイル名の文字コードの関係で、unzip するとファイル名がいつも文字化けしてしまい、下記のようなコマンドで修正していた。 % convmv -f sjis -t utf-8 --notest *しかし、unzipにはファイル名をiconvで変換するパッチがあって、FreeBSD の ports にもずいぶん前から取り込まれていたようだ。ただし、コンパイル時にオプションを指定する必要があった。 # cd /usr/ports/archives/unzip # make -DWITH_ICONV # make install使うときは、たいていWindowsで圧縮されたファイルを解凍するので、ほぼ100%こういうコマンドになる。 % unzip -Ocp932 -l [ファイ

    unzip でファイル名文字化け対応 - dora-monの日記
  • JavaScriptでzip,unzipするライブラリjsziptools

    作った。 ukyo/jsziptools - GitHub chrome,firefoxあたりで動きます。コードをちょっと変えればIE10でも動くかも。 実はStringベースでzip,unzipできるライブラリというのはすでにあります。 JSZip: JavaScript zip class zip inflate on javascript jsziptoolsはBlobBuilder,TypedArrayなどHTML5のAPIをつかった割とモダンな実装です。 これらを使うことによって、より巨大なファイルを扱えたり、より高速に実行できたりします。 inflate,deflateに関してはMasanao Izumo氏が作成したライブラリを stringから配列(逆も)に変換している部分を排除して全体を無名関数でラップしたものを使用しています。 http://www.onicos.com/

    JavaScriptでzip,unzipするライブラリjsziptools
  • バイナリエディタを駆使して壊れたzipからファイルを救出する - Qiita

    ukyoは激怒した。ukyoにはMsEdgeがわからぬ。けれどもzipに対しては、人一倍に敏感であった $ unzip MsEdge.Win10.VMware.zip Archive: MsEdge.Win10.VMware.zip warning [MsEdge.Win10.VMware.zip]: 1031667094 extra bytes at beginning or within zipfile (attempting to process anyway) error [MsEdge.Win10.VMware.zip]: start of central directory not found; zipfile corrupt. (please check that you have transferred or created the zipfile in the appro

    バイナリエディタを駆使して壊れたzipからファイルを救出する - Qiita
  • アイコンを140文字にする話

    0_icon_to_140.md アイコンを140文字にする話 なに? この前ドット絵のアイコン書いたんですよ、こんなの。 結構うまくできたかなって満足してます。 それで、このアイコン、16x16なので、そのくらいならTwitterに140文字にして投稿できないかなって思ったんです。 そういうお話。 ルールと方針を決める バイナリデータである画像を文字列に圧縮するにあたって、次のルールを決めました。 140文字に納めること(バイト数は問わず = マルチバイト文字も1文字) 一般に使われてる処理系(Rubyなど)やエンコード方式(Base64など)は前提にしてもよい それ以外のエンコード方式などは、デコード処理も含めて140文字以内に納める これをふまえて、方針を立てます。 スタート時点で、画像のサイズは16x16のpngで180バイト程度です。 単純にBase64方式でエンコードする方法を

    アイコンを140文字にする話
  • データ圧縮について

    データ圧縮について by だうぴ 1.なぜデータを圧縮するのか。 データの圧縮を行う理由は、電話網などのネットワークでは使用時間に応じて課金されるので、送受信されるデータの量が少ないほど課金が少なくて済むためで、パソコン通信時代からオンラインでソフトウェア流通させるために必要なものとして発達してきました。 また、オンラインソフトウェアを流通させるためには複数のファイルを一つにまとめる機能がある方が便利なため、以上の2つの機能を持つソフトウェア(=アーカイバ)として有名なのが、「LHA」と「PKZIP」で、それぞれで圧縮したときのファイルの拡張子はlzh(何故lzhになるのかは後述します)、zipになることで知られています。 2.どのようにデータを圧縮しているのか。 (A)ランレングス符号化法 ファイルの圧縮、解凍の操作方法に関しては、lhasa特集などの初心者向けサイトにまかせるこ

  • マルチスレッド対応で高速なlbzip2/pbzip2のメモ (blog@browncat.org)

    blog@browncat.org Web, Linux, Ubuntu, Mac, PDA, 携帯電話, プログラミング, ソフトウェア&落書き Linuxでよく使われているbzip2は非常に高い圧縮率の圧縮プログラムですが、その反面非常に高負荷で圧縮/解凍に時間がかかります。これをマルチスレッドで並列に行うことで特にマルチプロセッサなシステムで高速に実行しようというのがこのlbzip2です。ついでに同じような機能ですが圧縮のみで若干使い勝手が異なるpbzip2。どちらもなかなか便利そうなので忘れないようにメモ。 元ネタは Debian Package of the Day » Blog Archive » lbzip2: parallel bzip2 utility lacos' download page (GPL'd sources)--作者さんのページ Ubuntu 9.10 K

  • 1