Nazwa
cwebp
– kompresowanie pliku obrazu 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. Jeśli ominięte,
cwebp
spowoduje kompresję, ale tylko raportowanie statystyk. 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 się wyświetlić
last
. Pozostałe opcje zostaną zignorowane. -h, -help
- Krótkie podsumowanie wykorzystania.
-H, -longhelp
- Podsumowanie wszystkich możliwych 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 prawie bezstratnego przetwarzania wstępnego obrazu. Ta opcja dostosowuje wartości pikseli, aby ułatwić kompresję, ale ma minimalny wpływ na jakość obrazu. Automatycznie uruchamia tryb kompresji bezstratnej.
Zakres:
0
(maksymalne wstępne przetwarzanie) do100
(brak wstępnego przetwarzania, domyślnie). Typowa wartość wynosi około60
. Pamiętaj, że straty z wartością-q 100
mogą czasami przynosić lepsze wyniki. -q float
Określ współczynnik kompresji dla kanałów RGB z zakresu od
0
do100
. Wartość domyślna to75
.W przypadku kompresji stratnej (domyślnie) mały współczynnik powoduje utworzenie mniejszego pliku o niższej jakości. Najlepszą jakość uzyskuje się, używając wartości
100
.W przypadku kompresji bezstratnej (określanej przez opcję
-lossless
) mały współczynnik umożliwia szybsze kompresowanie, ale powoduje powstanie większego pliku. Maksymalna kompresja jest osiągana przy użyciu wartości100
.-z int
Włącz tryb kompresji
lossless
z poziomem kompresji od 0 do 9, gdzie 0 to najszybszy, a 9 najwolniejszy poziom kompresji. Tryb szybki powoduje większy rozmiar plików niż wolniejsze. Dobra wartość domyślna to-z 6
. Ta opcja jest w istocie skrótem do niektórych wstępnie zdefiniowanych ustawień jakości i metody. Jeśli później użyjesz opcji-q
lub-m
, anuluje to działanie tej opcji.-alpha_q int
Określ współczynnik kompresji dla kompresji alfa w zakresie od
0
do100
. Bezstratna kompresja alfa jest osiągana przy użyciu wartości100
, podczas gdy 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
.Ponieważ parametr
-preset
zastępuje wartości innych parametrów (z wyjątkiem parametru-q
), ta opcja powinna być umieszczona na początku listy argumentów.-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ścią domyślną jest4
. Gdy używasz wyższych wartości, koder poświęca więcej czasu na sprawdzenie dodatkowych możliwości kodowania i podjęcie decyzji o zwiększeniu jakości. Niższa wartość może skutkować szybszym przetwarzaniem, ale większym rozmiarem pliku i niższą jakością kompresji.-crop x_position y_position width height
Przytnij źródło do prostokąta z lewym górnym rogiem o współrzędnych (
x_position
,y_position
) i rozmiarachwidth
xheight
. Ta obszar przycinania musi być w pełni zawarty w prostokącie źródłowym. Uwaga: przycinanie jest stosowane przed skalowaniem.-resize width height
Zmień rozmiar źródła na prostokąt o wymiarach
width
xheight
. Jeśli jeden z nich (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
W miarę możliwości użyj kodowania wielowątkowego.
-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 są skuteczne tylko przy kodowaniu stratnym (domyślnie z alfa lub bez).
-size int
- Podaj docelowy rozmiar (w bajtach) skompresowanego wyjścia. 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 przejść częściowego kodowania, aby jak najbardziej zbliżyć się do tego celu. Jeśli używane są zarówno
-size
, jak i-psnr
, pierwszeństwo ma wartość-size
. -pass int
- Ustaw maksymalną liczbę kart używanych podczas dychotomii używanej przez opcje
-size
lub-psnr
. Wartość maksymalna to10
, a wartość 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 parametr-pass
, ale nie określono parametrów-size
ani-psnr
, zostanie użyta docelowa wartość PSNR równa 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
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 obraz będzie płynniejszy. Typowe wartości mieszczą się w zakresie od20
do50
. -sharpness int
- Określ ostrość filtrowania (jeśli jest używane). 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
- Użyj dokładniejszej i ostrzejszej konwersji RGB na YUV. Pamiętaj, że ten proces jest wolniejszy niż domyślna szybka konwersja RGB na YUV.
-sns int
- Podaj amplitudę kształtowania szumów przestrzennych. 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
- Zmienia liczbę partycji, które mają być używane podczas podziału na segmenty w algorytmie SNS. Segmenty powinny mieścić się w zakresie od
1
do4
. Wartością domyślną jest4
. Ta opcja nie ma zastosowania w przypadku metod 3 i nowszych, chyba że-low_memory
jest -partition_limit int
- Pogorszenie jakości przez ograniczenie liczby bitów używanych przez niektóre makrobloki.
Zakres wynosi od
0
(bez pogorszenia, wartość domyślna) do100
(pełne pogorszenie). W przypadku średnio dużych obrazów przydatne wartości to 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żego obrazu 512 k pozostawia tylko kilka bitów na makroblok 16 x 16. 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, gdy osiągnięto limit 512 kB i wyświetla się komunikat: Kod błędu: 6 (PARTITION0_OVERFLOW: partycja 0 jest zbyt duża, aby zmieścić 512 kB). Jeśli użycie wartości-partition_limit
nie wystarcza do spełnienia ograniczenia 512 kB, należy użyć mniejszej liczby segmentów, aby zaoszczędzić więcej bitów nagłówka na makroblok. Zobacz opcję-segments
. Pamiętaj, że opcje-m
i-q
mają też wpływ na decyzje kodera i jego zdolność do osiągnięcia tego limitu.
Opcje logowania
Te opcje kontrolują poziom wyjściowy:
-v
- Wydrukuj dodatkowe informacje (w szczególności czas kodowania).
-print_psnr
- Oblicza i raportuje średni współczynnik PSNR (szczytowy stosunek sygnału do szumu).
-print_ssim
- Obliczanie i zgłaszanie średniej wartości SSIM (wskaźnik podobieństwa strukturalnego, więcej informacji znajdziesz na stronie 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
- Raportowanie postępu kodowania w procentach.
-quiet
- Nie drukuj niczego.
-short
- Wydrukuj tylko krótkie informacje (rozmiar pliku wyjściowego i PSNR) do testowania
-map int
- Wyjście dodatkowego kodu ASCII mapy kodowania informacji. Możliwe wartości mapy mieszczą się w zakresie od
1
do6
. Jest to tylko pomoc w debugowaniu.
Opcje dodatkowe
Dostępne są też inne opcje zaawansowane:
-s width height
- Potwierdź, że plik wejściowy składa się z nieprzetworzonych próbek Y'CbCr zgodnie z zaleceniem 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 dithering pseudolosowy zależny od jakości podczas konwersji RGBA > YUVA (tylko kompresja stratna). -alpha_filter string
- Określ metodę filtrowania prognozującego dla płaszczyzny 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ętrzne filtrowanie alfa jest wykonywane przy użyciu 4 możliwych prognoz (brak, pozioma, pionowa, gradient).best
będzie kolejno testować każdy z trybów i wybrać ten, rozmiaru. Trybfast
będzie się starał tworzyć a priori prognozy bez testowania wszystkich trybów. -alpha_method int
- Określ algorytm użyty 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 jest wyłączona, aby ułatwić kompresję.
-blend_alpha int
- Ta opcja łączy kanał alfa (jeśli jest obecny) ze źródłem, używając koloru tła określonego w formacie 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 podpowiedź dotyczącą typu obrazu wejściowego. Możliwe wartości to
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 asemblera.
Błędy
Wszystkie błędy należy zgłaszać do narzędzia Issue Tracker: https://issues.webmproject.org.
Zapraszamy do korzystania z łatek. 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 źródła są dostępne na stronie https://chromium.googlesource.com/webm/libwebp/.
Ta strona podręcznika została napisana dla projektu Debian (i może być używana przez inne osoby).