Nazwa
cwebp
– skompresuj plik graficzny do pliku WebP.
Streszczenie
cwebp [options] input_file -o output_file.webp
Opis
cwebp
kompresuje obraz do formatu WebP. Dane wejściowe mogą mieć następujący format:
PNG, JPEG, TIFF, WebP lub nieprzetworzone próbki Y'CbCr.
Uwaga: animowane pliki PNG i WebP nie są obsługiwane.
Opcje
Dostępne są następujące opcje podstawowe:
-o string
- Podaj nazwę wyjściowego pliku WebP. W przypadku pominięcia tego parametru
cwebp
wykona jego działanie ale tylko statystyki. Używanie znaku „-” a nazwa danych wyjściowych będzie kierować dane wyjściowe do „stdout”. -- string
- Wyraźnie określ plik wejściowy. Ta opcja jest przydatna, gdy dane wejściowe
zaczyna się od znaku „-” na przykład. Ta opcja musi wyglądać na
last
. Pozostałe opcje zostaną zignorowane. -h, -help
- Krótkie podsumowanie wykorzystania.
-H, -longhelp
- Podsumowanie wszystkich dostępnych opcji.
-version
- Wydrukuj numer wersji (jako main.minor.revision) i zamknij.
-lossless
- Zakoduj obraz bez utraty danych. W przypadku obrazów z całkowicie przezroczystym obszarem
niewidoczne wartości pikseli (R/G/B lub Y/U/V) zostaną zachowane tylko wtedy, gdy
Używana jest opcja
-exact
. -near_lossless int
- Określ poziom wstępnego przetwarzania obrazów niemal bezstratnie. Ta opcja dostosowuje się
wartości w pikselach pozwalające zwiększyć kompresję, ale ma minimalny wpływ na wizualną grafikę.
jakości. Automatycznie uruchamia tryb kompresji bezstratnej.
Zakres wynosi od
0
(maksymalne wstępne przetwarzanie) do100
(bez wstępnego przetwarzania, ). Typowa wartość wynosi około60
. Zwróć uwagę, że stratna z-q 100
może czasem przynieść lepsze wyniki. -q float
Określ współczynnik kompresji dla kanałów RGB z zakresu od
0
do100
. domyślna wartość to75
.W przypadku kompresji stratnej (domyślnie) mały współczynnik powoduje zmniejszenie pliku o niższej jakości. Najlepszą jakość zapewnia wartość
100
W przypadku kompresji bezstratnej (określanej za pomocą opcji
-lossless
): Mały współczynnik umożliwia uzyskanie większej szybkości kompresji, ale powoduje utworzenie większego pliku. Maksymalna kompresja jest osiągana przy użyciu wartości100
.-z int
Włącz tryb kompresji
lossless
z określonym poziomem od 0 a 9, gdzie poziom 0 jest najszybszy, a 9 – najwolniejszy. Tryb szybki powoduje większy rozmiar plików niż wolniejsze. Dobra wartość domyślna to-z 6
. Ta opcja jest w rzeczywistości skrótem do niektórych wstępnie zdefiniowanych ustawień jakości. i metody weryfikacji danych. Jeśli później zostaną użyte opcje-q
lub-m
, zostaną one użyte unieważni działanie tej opcji.-alpha_q int
Określ współczynnik kompresji dla kompresji alfa między
0
a100
Kompresję bezstratną kanału alfa uzyskuje się przy użyciu wartości100
, a niższe wartości powodują kompresję stratną. Wartość domyślna to100
-preset string
Możesz określić zestaw wstępnie zdefiniowanych parametrów dostosowanych do konkretnego typu materiału źródłowego. Możliwe wartości:
default
,photo
,picture
,drawing
,icon
,text
.Parametr
-preset
zastępuje inne parametry (z wyjątkiem-q
) jeden), ta opcja powinna pojawić się jako pierwsza w kolejności, .-m int
Określ metodę kompresji, która ma być używana. Ten parametr kontroluje wymianę między szybkością kodowania a rozmiarem i jakością skompresowanego pliku. Możliwe wartości mieszczą się w zakresie od
0
do6
. Wartość domyślna to4
. Gdy większa wartość jeśli zostaną użyte, koder będzie poświęcał więcej czasu na sprawdzanie dodatkowych kodowania i zdecydować o wzroście jakości. Niższa wartość może skraca czas przetwarzania kosztem większego rozmiaru pliku i niższej jakości kompresji.-crop x_position y_position width height
Przytnij źródło do prostokąta z lewym górnym rogiem we współrzędnych (
x_position
,y_position
) i rozmiarwidth
xheight
. To przycięcie cały obszar musi być wewnątrz prostokąta źródłowego. Uwaga: przycinanie jest stosowany przed skalowaniem.-resize width height
Zmień rozmiar źródła na prostokąt o wymiarach
width
xheight
. Jeśli któryś (ale nie oba) parametru szerokości i wysokości wynosi0
, wartość zostanie obliczony z zachowaniem współczynnika proporcji. Uwaga: skalowanie jest stosowane po przycinanie.-mt
Jeśli to możliwe, używaj wielowątkowości do kodowania.
-low_memory
Zmniejsz wykorzystanie pamięci w przypadku kodowania stratnego, zapisując 4-krotnie więcej skompresowanego kodu rozmiaru (zwykle). Kodowanie będzie wolniejsze, a wynik jeśli chodzi o rozmiar i zniekształcenia. Ta flaga działa tylko w przypadku metody 3 i nowszych. Ta opcja jest domyślnie wyłączona. Pamiętaj, że pozostawienie tej flagi wyłączonej będzie mieć pewne skutki uboczne: wymusi funkcje takie jak liczba partycji (wymuszone na
1
). Pamiętaj, że przy szczegółowy raport o rozmiarze strumienia bitów jest drukowany przezcwebp
, gdy używasz tego .
Opcje strat
Te opcje działają tylko w przypadku kodowania stratnego (domyślnie, lub bez kanału alfa).
-size int
- Określ rozmiar docelowy (w bajtach), by spróbować dotrzeć do skompresowanego pliku
dane wyjściowe. Kompresor wykona kilka przebiegu częściowego kodowania
aby jak najbardziej zbliżyć się do tego celu. Jeśli zarówno
-size
, jak i używane są wartości-psnr
, a zastosowana wartość to-size
. -psnr float
- Określ docelowy PSNR (w dB), aby spróbować uzyskać skompresowane dane wyjściowe.
Kompresor wykona kilka przebiegu częściowego kodowania, aby uzyskać
jak najbliżej celu. Jeśli używasz zarówno właściwości
-size
, jak i-psnr
, Wygrywa wartość-size
. -pass int
- Ustaw maksymalną liczbę kart używanych podczas dychotomii używanej przez opcje
-size
lub-psnr
. Maksymalna wartość to10
, a domyślna to1
. Opcje Jeżeli Użyto wartości-size
lub-psnr
, ale nie określono-pass
(wartość domyślna) z „6” biletów. Jeśli określono-pass
, ale ani-size
, ani-psnr
to docelowy PSNR wynoszący 40 dB. -af
- Włącza automatyczny filtr. Ten algorytm będzie poświęcać więcej czasu na optymalizację aby uzyskać optymalną jakość filtra.
-jpeg_like
- Zmień mapowanie parametrów wewnętrznych, by lepiej pasowały do oczekiwanego rozmiaru
kompresja JPEG; Ogólnie rzecz biorąc, ta flaga generuje plik wyjściowy o nazwie
rozmiar podobny do jego odpowiednika w formacie JPEG (dla tego samego ustawienia
-q
), ale z mniej zniekształceń wzroku.
Opcje zaawansowane:
-f int
- Określ siłę filtra blokującego w zakresie
0
(bez filtrowania) i100
(filtrowanie maksymalne). Wartość0
wyłącza filtrowanie. Wyższa wartość zwiększa siłę zastosowanego procesu filtrowania po zdekodowaniu zdjęcia. Im wyższa wartość, tym płynniejszy obraz . Typowe wartości mieszczą się w zakresie od20
do50
. -sharpness int
- Określ ostrość filtra (jeśli jest używany). Zakres:
0
(najbliższy) do7
(najmniej wyraźny). Wartość domyślna to0
. -strong
- Używaj silnego filtrowania (jeśli używasz filtra
-f
) ). Silne filtrowanie jest domyślnie włączone. -nostrong
- Wyłącz silne filtrowanie (jeśli używasz filtrowania dzięki funkcji
-f
), i użyj prostego filtrowania. -sharp_yuv
- W razie potrzeby używaj dokładniejszej i ostrzejszej konwersji RGB->YUV. Pamiętaj, że to proces jest wolniejszy niż domyślna szybkość konwersji RGB->YUV.
-sns int
- Określ amplitudę kształtu szumu przestrzennego. Kształtowanie szumu przestrzennego
(w skrócie sns) odnosi się do ogólnego zbioru wbudowanych algorytmów.
służy do decydowania, w którym obszarze obrazu powinna być stosunkowo mniej bitów,
i gdzie je przenieść. Możliwy zakres wynosi od
0
(algorytm jest wyłączony) na100
(efekt maksymalny). Wartość domyślna to50
-segments int
- Zmień liczbę partycji, które mają być używane podczas segmentacji Sns
algorytmem bezpieczeństwa. Segmenty powinny mieścić się w zakresie od
1
do4
. Wartość domyślna to4
. Ta opcja nie ma zastosowania w przypadku metod 3 i nowszych, chyba że-low_memory
jest -partition_limit int
- Obniż jakość, ograniczając liczbę bitów używanych przez niektóre makrobloki.
Zakres wynosi od
0
(bez pogorszenia, wartość domyślna) do100
(pełne pogorszenie). W przypadku umiarkowanie dużych obrazów przydatne wartości wynoszą zwykle30
–70
. W w formacie VP8, tak zwana partycja sterowania ma limit 512 kB i jest służą do przechowywania następujących informacji: czy makroblok to pominięte, czyli segment, do którego należy, czy jest zakodowany jako Intra 4x4, w trybie 16x16, a także tryby prognozowania do użycia w każdym bloki podrzędne. W przypadku bardzo dużych obrazów 512 KB pozostawia jedynie miejsce na kilka bitów Makrobloki 16x16. Bezwzględne minimum to 4 bity na makroblok. Pomiń, informacji o segmencie i trybie mogą zużywać prawie wszystkie te 4 bity (chociaż jest mało prawdopodobne), co stanowi problem w przypadku bardzo dużych zdjęć. Współczynnikpartition_limit
określa, jak często jest (Intra 4x4). Jest to przydatne w przypadku osiągnięcia limitu 512 KB i wyświetla się następujący komunikat: Kod błędu: 6 (PARTITION0_OVERFLOW: partycja nr 0 jest za duża, aby zmieścić się na 512 KB). Jeśli używasz-partition_limit
to za mało, aby osiągnąć ograniczenie 512 KB. Trzeba tylko użyj mniejszej liczby segmentów, aby zaoszczędzić więcej bitów nagłówka na jeden makroblok. Zobacz opcję-segments
. Pamiętaj, że opcje-m
i-q
również wpływają na decyzji kodera i możliwości osiągnięcia tego limitu.
Opcje logowania
Te opcje sterują poziomem wyjściowym:
-v
- Wydrukuj dodatkowe informacje (zwłaszcza czas kodowania).
-print_psnr
- Oblicza i raportuje średni współczynnik PSNR (szczytowy stosunek sygnału do szumu).
-print_ssim
- Oblicza i raportuje średnią SSIM (wskaźnik podobieństwa strukturalnego, patrz https://en.wikipedia.org/wiki/SSIM).
-print_lsim
- Oblicz i raportuj wskaźnik podobieństwa lokalnego (suma najniższego błędu wśród kolokowanych sąsiadów piksela).
-progress
- Raportuj postęp kodowania w procentach.
-quiet
- Nic nie drukuj.
-short
- Wydrukuj tylko krótkie informacje (rozmiar pliku wyjściowego i PSNR) do testowania
-map int
- Wyjście dodatkowych map ASCII informacji o kodowaniu. Możliwe wartości mapy
zakres od
1
do6
. Ma to tylko pomóc w debugowaniu.
Opcje dodatkowe
Bardziej zaawansowane opcje to:
-s width height
- Określ, że plik wejściowy faktycznie zawiera nieprzetworzone próbki Y'CbCr
zgodnie z rekomendacją ITU-R BT.601 w formacie liniowym 4:2:0.
samolot Luma ma wymiary
width
xheight
. -pre int
- Określ kroki wstępnego przetwarzania danych. Użycie wartości
2
spowoduje wyświetlenie reklamy zależne od jakości pseudoprzypadkowe rozbieżność podczas konwersji RGBA->YUVA (tylko w przypadku kompresji stratnej). -alpha_filter string
- Określ metodę filtrowania prognozującego dla platformy w wersji alfa. Jedna z tych wartości:
none
,fast
lubbest
w kolejności rosnącej złożoności i spowalniania. Wartość domyślna tofast
. Wewnętrznie filtrowanie alfa jest wykonywane przy użyciu czterech możliwe prognozy (brak, poziome, pionowe, gradient).best
będzie kolejno testować każdy z trybów i wybrać ten, rozmiaru. Trybfast
spróbuje po prostu odgadnąć a priori bez oraz testujemy wszystkie tryby. -alpha_method int
- Określ algorytm używany do kompresji alfa:
0
lub1
. Algorytm0
oznacza brak kompresji,1
korzysta z bezstratnego formatu WebP do kompresji. Wartość domyślna to1
. -exact
- Zachowaj wartości RGB w przezroczystym obszarze. Domyślnie ta opcja jest wyłączona, aby pomóc ściśliwości.
-blend_alpha int
- Ta opcja łączy kanał alfa (jeśli jest dostępny) ze źródłem za pomocą parametru
kolor tła określony w systemie szesnastkowym jako 0xrrggbb. Alfa
kanał jest potem przywracany do nieprzezroczystej wartości
255
. -noalpha
- Użycie tej opcji spowoduje odrzucenie kanału alfa.
-hint string
- Określ wskazówkę dotyczącą typu obrazu wejściowego. Możliwe wartości:
photo
,picture
lubgraph
. -metadata string
Rozdzielona przecinkami lista metadanych, które mają zostać skopiowane z danych wejściowych do danych wyjściowych, jeśli obecnie. Prawidłowe wartości:
all
,none
,exif
,icc
orazxmp
. Wartość domyślna tonone
Pamiętaj, że każdy format danych wejściowych może nie obsługiwać wszystkich kombinacji.
-noasm
Wyłącz wszystkie optymalizacje zestawu.
Błędy
Wszystkie błędy należy zgłaszać do narzędzia Issue Tracker: https://issues.webmproject.org.
Poprawki są mile widziane. Na początek zajrzyj na tę stronę: https://www.webmproject.org/code/contribute/submitting-patches/
Przykłady
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
Autorzy
cwebp
jest częścią libwebp
i został napisany przez zespół WebP.
Najnowsze drzewo źródłowe jest dostępne na
https://chromium.googlesource.com/webm/libwebp/
Ta strona instrukcji została napisana dla projektu Debian (i może być używana przez ).