Upng.js: Dithering verwenden

Erstellt am 27. MĂ€rz 2018  Â·  5Kommentare  Â·  Quelle: photopea/UPNG.js

Es ist wichtig fĂŒr farbenfrohe Bilder.

Quellbild [174285 B]
firefox-512

Nach Upng, Webinterface [69927 B]
firefox-512 upng

Ergebnis von pngquant sieht besser aus. [69932B]
firefox-512 pngquant

Hilfreichster Kommentar

Ja, pngquant berechnet den mittleren quadratischen Fehler und wendet Dithering nur in Bereichen mit hohem Fehler an. Auf diese Weise erhalten Bereiche, die kein Dithering benötigen, kein zusÀtzliches Rauschen.

pngquant fĂŒhrt auch eine Kantenerkennung durch (Ă€hnlich dem Prewitt-Algorithmus) und deaktiviert das Dithering an den Kanten. Dies verhindert, dass Anti-Aliasing wie Fell aussieht.

In pngquant werden 90 % der Zeit fĂŒr zusĂ€tzliche K-Means-LĂ€ufe aufgewendet. Wenn Sie --speed 10 dauert die gesamte Rekomprimierung (auf i7 2,3 GHz) ~80 ms gedithert, 50 ms ungedithert.

(Übrigens hat TinyPNG keinen eigenen Algorithmus. Es ist nur eine GUI fĂŒr pngquant).

Alle 5 Kommentare

Ich habe in der Vergangenheit Floyd-Steinberg-Dithering implementiert, aber es hat sich nicht gelohnt.

Ich denke, wir brauchen ein kompressionsfreundliches Dithering. Kennen Sie jemanden, der uns helfen könnte?

pngquant verwendet Floyd-Steinberg, das fĂŒr eine bessere Farbhandhabung modifiziert wurde.

Ich glaube, dass Dithering aufgrund seiner zufĂ€lligen Natur immer die DateigrĂ¶ĂŸe erhöht.
Der einzige Zweck dieser Funktion — unsere Augen zu erfreuen.
Dithering kann unter Flag ausgeblendet werden, genau wie in Ps. Benutzer werden entscheiden.

Ich denke, wir brauchen ein kompressionsfreundliches Dithering. Kennen Sie jemanden, der uns helfen könnte?

Ich denke, wir können @kornelski fragen.

Ich meine, ich habe drei Versionen des Bildes erstellt:

  • A: 50 Farben: 15 kB
  • B: 50 Farben + Dithering: 23 kB
  • C: 100 Farben: 22 kB

B sah genauso gut aus wie C, war aber etwas grĂ¶ĂŸer, daher dachte ich, dass es besser ist, mehr Farben zuzulassen als Dithering (beide erhöhen die DateigrĂ¶ĂŸe).

Ich denke, wir brauchen Dithering, das aus einigen sich wiederholenden Mustern besteht, dh es sollte "freundlich" fĂŒr den Deflate-Algorithmus sein - B hat nur 20 kB (also ist es immer noch so schön wie C, aber kleiner).

Übrigens. Ich denke auch, dass pngquant ein besseres Deflate durchfĂŒhrt (was auch etwa 100x lĂ€nger dauert als UPNG.js: zB 30ms vs. 3000ms), also kann es B nur 20 kB haben lassen, wĂ€hrend das gleiche Dithering verwendet wird wie ich.

Ach, ich verstehe.
Ich kenne keinen Dithering-Algorithmus, der diesen Fall bewÀltigen kann.

pngquant berechnet den mse-Fehler, hat minimale und maximale QualitĂ€tseinstellungen und schreibt keine Datei, wenn ihre GrĂ¶ĂŸe zu groß ist oder die QualitĂ€t dramatisch abnimmt.

Vielleicht findest du diesen Thread nĂŒtzlich
https://encode.ru/threads/1757-Lossy-DEFLATE-lossy-PNG

Und dieses Projekt besonders
https://github.com/foobaz/lossypng

Ja, pngquant berechnet den mittleren quadratischen Fehler und wendet Dithering nur in Bereichen mit hohem Fehler an. Auf diese Weise erhalten Bereiche, die kein Dithering benötigen, kein zusÀtzliches Rauschen.

pngquant fĂŒhrt auch eine Kantenerkennung durch (Ă€hnlich dem Prewitt-Algorithmus) und deaktiviert das Dithering an den Kanten. Dies verhindert, dass Anti-Aliasing wie Fell aussieht.

In pngquant werden 90 % der Zeit fĂŒr zusĂ€tzliche K-Means-LĂ€ufe aufgewendet. Wenn Sie --speed 10 dauert die gesamte Rekomprimierung (auf i7 2,3 GHz) ~80 ms gedithert, 50 ms ungedithert.

(Übrigens hat TinyPNG keinen eigenen Algorithmus. Es ist nur eine GUI fĂŒr pngquant).

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

MartinMuzatko picture MartinMuzatko  Â·  6Kommentare

mn4367 picture mn4367  Â·  16Kommentare

HRK44 picture HRK44  Â·  9Kommentare

ghost picture ghost  Â·  3Kommentare

exortech picture exortech  Â·  3Kommentare