2015-06-04 2 views
7

Ich möchte meine .png und .jpg Dateien in Android-Projekt mit .webp ersetzen, um die App-Größe zu reduzieren.Bildgröße wird erhöht, wenn von jpg in webp mit Qualitätswert 100 konvertiert

Ich Verifizieren diese drei Fälle für jpg Umwandlung in webp (für beide .png und .jpg):

  1. Lossy mit 80% Qualität
  2. Lossy mit 100% Qualität
  3. Lossless

für Fall 1, Größe von ~ 30% reduziert wurde als

erwartet

Aber für die Fälle 1 und 2 wurde vergrößert signifikant (170KB von .jpg zu 470KB von .webp) anstatt zu sinken.

Befehl verwendet:

cwebp -q 100 input.jpg -o output.webp

Dies funktioniert gut mit .png Bilder für alle drei Fälle, in denen Größen reduziert werden, wenn umgewandelt .webp Format.

Aber das gleiche funktioniert nicht mit dem .jpg Bild? Ist die Größenreduktion abhängig von .jpg Bild? Wird die Größe bei der Konvertierung von .jpg/.png in .webp garantiert reduziert? Warum hat die Größe zugenommen?

Version von libwebp: libwebp-0.4.3 OS - Windows 64-Bit-

+0

Wenn Sie verlustbehaftete Daten in verlustfreie oder verlustbehaftete Daten mit höherer Qualität als in die Eingabedatei konvertieren, erhalten Sie keine Qualität, aber die Dateigröße wird immer größer. – BladeCoder

+0

Warum der Downvote? Ist es für mich offensichtlich zu wissen, dass verlustbehaftet bis verlustfrei Größe zunimmt? Oder wie würde ich wissen, JPG (Eingabe) Qualität ist weniger als die Qualität der Ausgabe (Fall 2 oben)? – userv

+2

(Downvote ist nicht cool, stimme ich zu) Lossy und verlustfrei sind 2 verschiedene Dinge, es ist wie Äpfel und Orangen. Verlustfreie Komprimierungsalgorithmen geben das exakte Bild wieder, so dass die Ausgabedatei immer größer als verlustbehaftet ist. Das Problem ist, wenn Sie ein Bild nach JPEG (verlustbehaftet) komprimieren, fügt es Artefakte hinzu. Wenn Sie also versuchen, dieses JPEG-Bild in Png zu komprimieren (verlustfrei), codiert der verlustfreie Algorithmus jedes Artefakt, um es pixelgenau zu reproduzieren. Am Ende wird dieser Png noch größer sein, als wenn Sie ihn wegen der zusätzlichen Artefakte direkt von der Quelle codieren würden. – BladeCoder

Antwort

2

Das Problem, das Sie ist konfrontiert, dass mit JPEG werden große Anzahl von Variablen gibt es Sie verschiedene Komprimierungs bekommen manipulieren kann. Das ist der Vorteil einer verlustbehafteten Komprimierung. Verlustfreie Komprimierung neigt dazu, wenige (wenn irgendwelche Optionen) zu haben. Bei der verlustfreien Komprimierung ist der Kompromiss Zeit gegenüber Komprimierung. In verlustbehaftet ist es Qualität vs. Kompression.

Sie führen ein verlustbehaftetes komprimiertes Bild durch einen zweiten verlustbehafteten Komprimierungsprozess aus und erzielen ziemlich unvorhersehbare Ergebnisse.

Der eigentliche Vergleich wäre, Ihre PNG-Bilder zu nehmen und sie mit Webp und JPEG mit verschiedenen Einstellungen zu komprimieren, um zu sehen, welche Qualität Sie im Vergleich zur Komprimierung erhalten.

Verwandte Themen