CWEBP

Name

cwebp: Komprimiert eine Bilddatei zu einer WebP-Datei.

Zusammenfassung

cwebp [options] input_file -o output_file.webp

Beschreibung

cwebp komprimiert ein Bild im WebP-Format. Das Eingabeformat kann entweder PNG, JPEG, TIFF, WebP oder Y'CbCr-Rohdaten sein. Hinweis: Animierte PNG- und WebP-Dateien werden nicht unterstützt.

Optionen

Die grundlegenden Optionen sind:

-o string
Geben Sie den Namen der WebP-Ausgabedatei an. Wenn keine Angabe gemacht wird, führt cwebp eine Komprimierung durch, meldet aber nur Statistiken. Wenn Sie „-“ als Ausgabename verwenden, wird die Ausgabe an „stdout“ weitergeleitet.
-- string
Geben Sie die Eingabedatei explizit an. Diese Option ist nützlich, wenn die Eingabedatei beispielsweise mit einem „-“ beginnt. Diese Option muss als last angezeigt werden. Alle anderen Optionen danach werden ignoriert.
-h, -help
Eine kurze Zusammenfassung der Nutzung
-H, -longhelp
Zusammenfassung aller möglichen Optionen
-version
Drucke die Versionsnummer (als Hauptversion.Nebenversion.revision) aus und beende den Vorgang.
-lossless
Codieren Sie das Bild ohne Verlust. Bei Bildern mit vollständig transparentem Bereich werden die unsichtbaren Pixelwerte (R/G/B oder Y/U/V) nur bei Verwendung der Option -exact beibehalten.
-near_lossless int
Geben Sie den Grad der nahezu verlustfreien Bildvorverarbeitung an. Mit dieser Option werden die Pixelwerte so angepasst, dass sie komprimierbar sind, hat jedoch nur minimale Auswirkungen auf die visuelle Qualität. Dadurch wird automatisch der verlustfreie Komprimierungsmodus ausgelöst. Der Bereich reicht von 0 (maximale Vorverarbeitung) bis 100 (keine Vorverarbeitung, die Standardeinstellung). Der typische Wert liegt bei etwa 60. Beachten Sie, dass verlustbehaftete Verbindungen mit -q 100 manchmal zu besseren Ergebnissen führen können.
-q float

Geben Sie den Komprimierungsfaktor für RGB-Kanäle zwischen 0 und 100 an. Die Standardeinstellung ist 75.

Bei einer verlustbehafteten Komprimierung (Standardeinstellung) führt ein kleiner Faktor zu einer kleineren Datei mit geringerer Qualität. Die beste Qualität wird mit einem Wert von 100 erreicht.

Bei einer verlustfreien Komprimierung (mit der Option -lossless angegeben) ermöglicht ein kleiner Faktor eine höhere Komprimierungsgeschwindigkeit, führt aber zu einer größeren Datei. Die maximale Komprimierung wird mit einem Wert von 100 erreicht.

-z int

Aktivieren Sie den Komprimierungsmodus lossless mit der angegebenen Stufe zwischen 0 und 9, wobei Stufe 0 die schnellste und 9 die langsamste Stufe ist. Im Schnellmodus ist die Datei größer als im langsameren Modus. Ein guter Standardwert ist -z 6. Diese Option ist eigentlich eine Verknüpfung für einige vordefinierte Einstellungen für Qualität und Methode. Wenn die Optionen -q oder -m anschließend verwendet werden, wird die Auswirkung dieser Option ungültig.

-alpha_q int

Geben Sie den Komprimierungsfaktor für die Alphakomprimierung zwischen 0 und 100 an. Eine verlustfreie Komprimierung von Alpha wird mit einem Wert von 100 erreicht, während die niedrigeren Werte zu einer verlustbehafteten Komprimierung führen. Der Standardwert ist 100.

-preset string

Geben Sie einen Satz vordefinierter Parameter für eine bestimmte Art von Quellmaterial an. Mögliche Werte sind: default, photo, picture, drawing, icon, text.

Da -preset die Werte der anderen Parameter (mit Ausnahme des -q) überschreibt, sollte diese Option vorzugsweise an erster Stelle in der Reihenfolge der Argumente stehen.

-m int

Geben Sie die zu verwendende Komprimierungsmethode an. Dieser Parameter steuert den Kompromiss zwischen der Codierungsgeschwindigkeit und der Größe und Qualität der komprimierten Datei. Mögliche Werte reichen von 0 bis 6. Der Standardwert ist 4. Bei höheren Werten benötigt der Encoder mehr Zeit, um zusätzliche Codierungsmöglichkeiten zu prüfen und über die Qualitätssteigerung zu entscheiden. Ein niedrigerer Wert kann zu einer schnelleren Verarbeitung führen, allerdings auf Kosten einer größeren Dateigröße und einer geringeren Komprimierungsqualität.

-crop x_position y_position width height

Schneiden Sie die Quelle auf ein Rechteck mit der oberen linken Ecke an den Koordinaten (x_position, y_position) und der Größe width x height zu. Dieser Zuschnittbereich muss vollständig im Quellrechteck enthalten sein. Hinweis: Das Zuschneiden wird vor jeder Skalierung angewendet.

-resize width height

Ändern Sie die Größe der Quelle in ein Rechteck mit der Größe width x height. Wenn einer (aber nicht beide) der Parameter für die Breite und Höhe 0 ist, wird der Wert unter Beibehaltung des Seitenverhältnisses berechnet. Hinweis: Die Skalierung wird nach dem Zuschneiden angewendet.

-mt

Verwenden Sie nach Möglichkeit Multithreading für die Codierung.

-low_memory

Reduzieren Sie die Arbeitsspeichernutzung einer verlustbehafteten Codierung, indem Sie in der Regel die vierfache komprimierte Größe einsparen. Dadurch wird die Codierung langsamer und die Ausgabe weicht etwas in Größe und Verzerrung ab. Dieses Flag gilt nur für die Methoden 3 und höher und ist standardmäßig deaktiviert. Wenn dieses Flag deaktiviert ist, hat das einige Nebenwirkungen auf den Bitstream: Es erzwingt bestimmte Bitstream-Features wie die Anzahl der Partitionen (erzwungen in 1). Wenn Sie diese Option verwenden, wird ein detaillierterer Bericht zur Bitstream-Größe mit cwebp ausgegeben.

Verlustbehaftete Optionen

Diese Optionen sind nur bei einer verlustbehafteten Codierung (Standardeinstellung mit oder ohne Alpha) wirksam.

-size int
Geben Sie eine Zielgröße (in Byte) an, um die komprimierte Ausgabe zu erreichen. Das Komprimierungsprogramm führt mehrere Durchgänge der Teilcodierung durch, um diesem Ziel möglichst nahe zu kommen. Wenn sowohl -size als auch -psnr verwendet werden, hat der Wert -size Vorrang.
-psnr float
Geben Sie einen Ziel-PSNR-Wert (in dB) an, um die komprimierte Ausgabe zu erreichen. Das Komprimierungsprogramm führt mehrere Durchgänge der partiellen Codierung durch, um diesem Ziel möglichst nahe zu kommen. Wenn sowohl -size als auch -psnr verwendet werden, hat der Wert -size Vorrang.
-pass int
Lege eine maximale Anzahl von Karten/Tickets fest, die während der Gegensätze der Optionen -size oder -psnr verwendet werden sollen. Der Höchstwert ist 10, der Standardwert ist 1. Wenn die Optionen -size oder -psnr verwendet wurden, aber -pass nicht angegeben wurde, wird ein Standardwert von 6 Karten/Tickets verwendet. Wenn -pass angegeben ist, aber weder -size noch -psnr, wird ein Ziel-PSNR von 40 dB verwendet.
-af
Die automatische Filterung ist aktiviert. Dieser Algorithmus benötigt zusätzliche Zeit, um die Filterstärke zu optimieren, um eine ausgewogene Qualität zu erreichen.
-jpeg_like
Ändern Sie die interne Parameterzuordnung so, dass sie der erwarteten Größe der JPEG-Komprimierung besser entspricht. Dieses Flag erzeugt in der Regel eine Ausgabedatei von ähnlicher Größe wie ihr JPEG-Äquivalent (für dieselbe -q-Einstellung), aber mit geringerer visueller Verzerrung.

Erweiterte Optionen:

-f int
Geben Sie die Stärke des Deblockierungsfilters an. Sie kann zwischen 0 (kein Filter) und 100 (maximale Filterung) liegen. Beim Wert 0 werden alle Filter deaktiviert. Ein höherer Wert erhöht die Stärke des Filterprozesses, der nach der Decodierung des Bildes angewendet wird. Je höher der Wert, desto flüssiger das Bild. Typische Werte liegen normalerweise im Bereich von 20 bis 50.
-sharpness int
Geben Sie die Schärfe des Filters an (falls verwendet). Der Bereich liegt zwischen 0 (scharf) und 7 (am schärfsten). Der Standardwert ist 0.
-strong
Starke Filterung verwenden (wenn die Filterung mithilfe der Option -f verwendet wird) Die starke Filterung ist standardmäßig aktiviert.
-nostrong
Deaktivieren Sie die starke Filterung (wenn die Filterung mithilfe der Option -f verwendet wird) und verwenden Sie stattdessen eine einfache Filterung.
-sharp_yuv
Verwenden Sie bei Bedarf eine genauere und schärfere Umwandlung von RGB zu YUV. Dieser Vorgang ist langsamer als die standardmäßige schnelle Konvertierung von RGB in YUV.
-sns int
Geben Sie die Amplitude der Form des räumlichen Rauschens an. Räumliche Rauschformung (kurz: sns) bezieht sich auf eine allgemeine Sammlung integrierter Algorithmen, die entscheiden, welcher Bereich des Bilds relativ weniger Bits verwenden sollte und wo sonst diese Bits besser übertragen werden sollen. Der mögliche Bereich reicht von 0 (Algorithmus ist deaktiviert) bis 100 (maximaler Effekt). Der Standardwert ist 50.
-segments int
Ändern Sie die Anzahl der Partitionen, die während der Segmentierung des sns-Algorithmus verwendet werden sollen. Segmente müssen zwischen 1 und 4 liegen. Der Standardwert ist 4. Diese Option hat keine Auswirkungen für die Methoden 3 und höher, es sei denn, -low_memory wird verwendet.
-partition_limit int
Sie können die Qualität verringern, indem Sie die Anzahl der von einigen Makroblöcken verwendeten Bits einschränken. Bereich ist 0 (keine Verschlechterung, Standardeinstellung) bis 100 (vollständige Degradation). Nützliche Werte für mäßig große Bilder liegen in der Regel zwischen 30 und 70. Im VP8-Format hat die sogenannte Steuerpartition ein Limit von 512 k und wird zum Speichern der folgenden Informationen verwendet: ob der Makroblock übersprungen wird, zu welchem Segment er gehört, ob er als Intra-4x4- oder Intra-16x16-Modus codiert ist und schließlich die Vorhersagemodi, die für jeden Unterblock verwendet werden sollen. Bei einem sehr großen Bild lassen 512 KB nur ein paar Bits pro 16 x 16-Makroblock Platz. Das absolute Minimum beträgt 4 Bit pro Makroblock. Informationen zu Überspringen, Segmentieren und Modus können fast alle diese 4 Bit verbrauchen (obwohl dies unwahrscheinlich ist), was für sehr große Bilder problematisch ist. Der Faktor partition_limit steuert, wie oft der Bit-kostspielige Modus (Intra-4x4) verwendet wird. Dies ist nützlich, wenn das Limit von 512.000 erreicht wurde und die folgende Meldung angezeigt wird: Fehlercode: 6 ( reichen Sie die Partition 0_OVERFLOW: Partition #0 is zu groß für 512k). Wenn die Verwendung von -partition_limit nicht ausreicht, um die 512.000-Beschränkung zu erfüllen, sollten weniger Segmente verwendet werden, um mehr Header-Bits pro Makroblock zu sparen. Siehe die Option -segments. Die Optionen -m und -q wirken sich auch auf die Entscheidungen des Encoders und die Möglichkeit aus, dieses Limit zu erreichen.

Logging-Optionen

Mit diesen Optionen wird die Ausgabeebene festgelegt:

-v
Zusätzliche Informationen drucken (insbesondere die Codierungszeit)
-print_psnr
Durchschnittlichen PSNR-Wert (Spitzen-Signal-zu-Rausch-Verhältnis) berechnen und melden.
-print_ssim
Berechnen Sie die durchschnittliche SSIM (strukturelle Ähnlichkeit. Weitere Informationen finden Sie unter https://en.wikipedia.org/wiki/SSIM).
-print_lsim
Berechnen und Melden des lokalen Ähnlichkeitsmesswerts (Summe des niedrigsten Fehlers unter den am selben Standort befindlichen Pixelnachbarn).
-progress
Fortschritt der Codierung des Berichts in Prozent
-quiet
Drucken Sie nichts aus.
-short
Drucke nur kurze Informationen (Größe der Ausgabedatei und PSNR) zu Testzwecken aus.
-map int
Zusätzliche ASCII-Map mit Codierungsinformationen ausgeben. Mögliche Kartenwerte reichen von 1 bis 6. Sie dient nur zur Fehlerbehebung.

Zusätzliche Optionen

Erweiterte Optionen sind:

-s width height
Geben Sie an, dass die Eingabedatei tatsächlich aus rohen Y'CbCr-Beispielen gemäß der ITU-R BT.601-Empfehlung im linearen 4:2:0-Format besteht. Die Luma-Ebene hat die Größe width x height.
-pre int
Geben Sie einige Vorverarbeitungsschritte an. Die Verwendung des Werts 2 löst bei der Konvertierung von RGBA zu YUVA ein qualitätsabhängiges Pseudozufalls-Dithering aus (nur verlustbehaftete Komprimierung).
-alpha_filter string
Geben Sie die prädiktive Filtermethode für die Alpha-Ebene an. Entweder none, fast oder best, in aufsteigender Reihenfolge der Komplexität und Langsamkeit. Standardwert ist fast. Die Alphafilterung wird intern mit vier möglichen Vorhersagen (keine, horizontal, vertikal, Gradient) durchgeführt. Der best-Modus testet der Reihe nach den Modus mit der kleineren Größe und wählt denjenigen mit der kleineren Größe aus. Der Modus fast versucht lediglich, eine Priorität zu ermitteln, ohne alle Modi zu testen.
-alpha_method int
Geben Sie den Algorithmus für die Alphakomprimierung an: 0 oder 1. Der Algorithmus 0 gibt keine Komprimierung an, 1 verwendet für die Komprimierung das verlustfreie WebP-Format. Der Standardwert ist 1.
-exact
RGB-Werte im transparenten Bereich beibehalten Die Standardeinstellung ist deaktiviert, um die Kompressibilität zu verbessern.
-blend_alpha int
Mit dieser Option wird der Alphakanal (falls vorhanden) mit der Quelle unter Verwendung der im Hexadezimalformat als 0xrrggbb angegebenen Hintergrundfarbe zusammengeführt. Der Alphakanal wird danach auf den undurchsichtigen Wert 255 zurückgesetzt.
-noalpha
Wenn Sie diese Option verwenden, wird der Alphakanal verworfen.
-hint string
Geben Sie einen Hinweis zum Eingabebildtyp an. Mögliche Werte sind: photo, picture oder graph.
-metadata string

Eine durch Kommas getrennte Liste von Metadaten, die von der Eingabe in die Ausgabe kopiert werden sollen, falls vorhanden. Gültige Werte: all, none, exif, icc, xmp. Die Standardeinstellung ist none.

Beachten Sie, dass nicht jedes Eingabeformat alle Kombinationen unterstützt.

-noasm

Deaktivieren Sie alle Assembly-Optimierungen.

Programmfehler

Beispiele

cwebp -q 50 -lossless picture.png -o picture_lossless.webp
cwebp -q 70 picture_with_alpha.png -o picture_with_alpha.webp
cwebp -sns 70 -f 50 -size 60000 picture.png -o picture.webp
cwebp -o picture.webp -- ---picture.png

Autoren

cwebp ist Teil von libwebp und wurde vom WebP-Team verfasst. Die neueste Quellstruktur ist unter https://chromium.googlesource.com/webm/libwebp/ verfügbar.

Diese Handbuchseite wurde für das Debian-Projekt geschrieben und kann auch von anderen genutzt werden.