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) bis100
(keine Vorverarbeitung, die Standardeinstellung). Der typische Wert liegt bei etwa60
. 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
und100
an. Die Standardeinstellung ist75
.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 von100
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
und100
an. Eine verlustfreie Komprimierung von Alpha wird mit einem Wert von100
erreicht, während die niedrigeren Werte zu einer verlustbehafteten Komprimierung führen. Der Standardwert ist100
.-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
bis6
. Der Standardwert ist4
. 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ößewidth
xheight
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
xheight
. Wenn einer (aber nicht beide) der Parameter für die Breite und Höhe0
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 mitcwebp
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 ist10
, der Standardwert ist1
. 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) und100
(maximale Filterung) liegen. Beim Wert0
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 von20
bis50
. -sharpness int
- Geben Sie die Schärfe des Filters an (falls verwendet). Der Bereich liegt zwischen
0
(scharf) und7
(am schärfsten). Der Standardwert ist0
. -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) bis100
(maximaler Effekt). Der Standardwert ist50
. -segments int
- Ändern Sie die Anzahl der Partitionen, die während der Segmentierung des sns-Algorithmus verwendet werden sollen. Segmente müssen zwischen
1
und4
liegen. Der Standardwert ist4
. 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) bis100
(vollständige Degradation). Nützliche Werte für mäßig große Bilder liegen in der Regel zwischen30
und70
. 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 Faktorpartition_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
bis6
. 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
xheight
. -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
oderbest
, in aufsteigender Reihenfolge der Komplexität und Langsamkeit. Standardwert istfast
. Die Alphafilterung wird intern mit vier möglichen Vorhersagen (keine, horizontal, vertikal, Gradient) durchgeführt. Derbest
-Modus testet der Reihe nach den Modus mit der kleineren Größe und wählt denjenigen mit der kleineren Größe aus. Der Modusfast
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
oder1
. Der Algorithmus0
gibt keine Komprimierung an,1
verwendet für die Komprimierung das verlustfreie WebP-Format. Der Standardwert ist1
. -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
odergraph
. -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 istnone
.Beachten Sie, dass nicht jedes Eingabeformat alle Kombinationen unterstützt.
-noasm
Deaktivieren Sie alle Assembly-Optimierungen.
Programmfehler
Bitte melde alle Fehler im Issue Tracker: https://bugs.chromium.org/p/webp.
Patches sind willkommen! Weitere Informationen: https://www.webmproject.org/code/contribute/submitting-patches/
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.