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:
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).
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).