Upng.js: ディザリングを使用する

作成日 2018年03月27日  ·  5コメント  ·  ソース: photopea/UPNG.js

カラフルな画像にとって重要です。

ソース画像[174285B]
firefox-512

更新後、Webインターフェイス[69927 B]
firefox-512 upng

pngquantの結果は
firefox-512 pngquant

最も参考になるコメント

はい、pngquantは平均二乗誤差を計算し、誤差の大きい領域にのみディザリングを適用します。 このようにして、ディザリングを必要としない領域に余分なノイズが発生することはありません。

pngquantは、エッジ検出(Prewittアルゴリズムと同様)も実行し、エッジでのディザリングを無効にします。 これにより、アンチエイリアシングが毛皮のように見えるのを防ぎます。

pngquantでは、時間の90%がK-meansの追加の実行に費やされます。 --speed 10を使用する場合、再圧縮全体(i7 2.3Ghzで)はディザリングされてから最大80ミリ秒、ディザリングされていない状態で50ミリ秒かかります。

(ところで、TinyPNGには独自のアルゴリズムがありません。これはpngquantのGUIにすぎません)。

全てのコメント5件

私は過去にフロイド-スタインバーグディザリングを実装しましたが、それだけの価値はありませんでした。

圧縮に適したディザリングが必要だと思います。 私たちを助けてくれる人を知っていますか?

pngquantは、色の処理を改善するために修正されたフロイド-スタインバーグを使用します。

ディザリングはランダムな性質があるため、常にファイルサイズが大きくなると思います。
この機能の唯一の目的—私たちの目を楽しませること。
Psの場合と同様に、ディザリングはフラグの下に隠すことができます。 ユーザーが決定します。

圧縮に適したディザリングが必要だと思います。 私たちを助けてくれる人を知っていますか?

@kornelskiに聞いてもいいと思います。

つまり、3つのバージョンの画像を作成しました。

  • A:50色:15 kB
  • B:50色+ディザリング:23 kB
  • C:100色:22 kB

BはCと同じように見栄えがしましたが、少し大きかったので、ディザリングよりも多くの色を許可する方が良いと思いました(どちらもファイルサイズを大きくします)。

いくつかの反復パターンで構成されるディザリングが必要だと思います。つまり、Deflateアルゴリズムに「適している」必要があります。BのkBは20 kBだけにします(したがって、Cと同じくらい良いですが、小さくします)。

ところで。 また、pngquantはより優れたDeflateを実行すると思います(これもUPNG.jsの約100倍の時間がかかります:たとえば30ms対3000ms)。そのため、私と同じディザリングを使用しながら、BのkBを20kBにすることができます。

ああなるほど。
このケースを処理できるディザリングアルゴリズムがわかりません。

pngquantは、mseエラーを計算し、最小および最大の品質設定を行い、サイズが大きすぎる場合や品質が大幅に低下する場合はファイルを書き込みません。

たぶんあなたはこのスレッドが役に立つと思うでしょう
https://encode.ru/threads/1757-Lossy-DEFLATE-lossy-PNG

そしてこのプロジェクトは特に
https://github.com/foobaz/lossypng

はい、pngquantは平均二乗誤差を計算し、誤差の大きい領域にのみディザリングを適用します。 このようにして、ディザリングを必要としない領域に余分なノイズが発生することはありません。

pngquantは、エッジ検出(Prewittアルゴリズムと同様)も実行し、エッジでのディザリングを無効にします。 これにより、アンチエイリアシングが毛皮のように見えるのを防ぎます。

pngquantでは、時間の90%がK-meansの追加の実行に費やされます。 --speed 10を使用する場合、再圧縮全体(i7 2.3Ghzで)はディザリングされてから最大80ミリ秒、ディザリングされていない状態で50ミリ秒かかります。

(ところで、TinyPNGには独自のアルゴリズムがありません。これはpngquantのGUIにすぎません)。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

mn4367 picture mn4367  ·  16コメント

MartinMuzatko picture MartinMuzatko  ·  6コメント

HRK44 picture HRK44  ·  9コメント

akshaysrin picture akshaysrin  ·  3コメント

zsitro picture zsitro  ·  3コメント