cwebp

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) do 100 (bez wstępnego przetwarzania, ). Typowa wartość wynosi około 60. 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 do 100. domyślna wartość to 75.

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ści 100.

-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 a 100 Kompresję bezstratną kanału alfa uzyskuje się przy użyciu wartości 100, a niższe wartości powodują kompresję stratną. Wartość domyślna to 100

-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 do 6. Wartość domyślna to 4. 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 rozmiar width x height. 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 x height. Jeśli któryś (ale nie oba) parametru szerokości i wysokości wynosi 0, 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 przez cwebp, 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ść to 10, a domyślna to 1. 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) i 100 (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 od 20 do 50.
-sharpness int
Określ ostrość filtra (jeśli jest używany). Zakres: 0 (najbliższy) do 7 (najmniej wyraźny). Wartość domyślna to 0.
-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) na 100 (efekt maksymalny). Wartość domyślna to 50
-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 do 4. Wartość domyślna to 4. 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) do 100 (pełne pogorszenie). W przypadku umiarkowanie dużych obrazów przydatne wartości wynoszą zwykle 3070. 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ółczynnik partition_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 do 6. 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 x height.
-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 lub best w kolejności rosnącej złożoności i spowalniania. Wartość domyślna to fast. 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. Tryb fast spróbuje po prostu odgadnąć a priori bez oraz testujemy wszystkie tryby.
-alpha_method int
Określ algorytm używany do kompresji alfa: 0 lub 1. Algorytm 0 oznacza brak kompresji, 1 korzysta z bezstratnego formatu WebP do kompresji. Wartość domyślna to 1.
-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 lub graph.
-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 oraz xmp. Wartość domyślna to none

Pamiętaj, że każdy format danych wejściowych może nie obsługiwać wszystkich kombinacji.

-noasm

Wyłącz wszystkie optymalizacje zestawu.

Błędy

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 ).