cwebp

Nome

cwebp: compacta um arquivo de imagem em um arquivo WebP.

Sinopse

cwebp [options] input_file -o output_file.webp

Descrição

cwebp compacta uma imagem usando o formato WebP. O formato de entrada pode ser PNG, JPEG, TIFF, WebP ou amostras brutas Y'CbCr. Observação: não há suporte para arquivos animados PNG e WebP.

Opções

As opções básicas são:

-o string
Especifique o nome do arquivo WebP de saída. Se omitido, o cwebp realiza a compactação, mas informa apenas as estatísticas. Usar "-" como nome de saída direcionará a saída para "stdout".
-- string
Especificar explicitamente o arquivo de entrada. Essa opção é útil se o arquivo de entrada começar com um "-", por exemplo. Essa opção precisa ser exibida como last. Todas as outras opções posteriores serão ignoradas.
-h, -help
Um breve resumo de uso.
-H, -longhelp
Um resumo de todas as opções possíveis.
-version
Mostre o número da versão (como major.minor.revision) e saia.
-lossless
Codifique a imagem sem nenhuma perda. Para imagens com área totalmente transparente, os valores de pixels invisíveis (R/G/B ou Y/U/V) só vão ser preservados se a opção -exact for usada.
-near_lossless int
Especifique o nível de pré-processamento de imagens quase sem perdas. Essa opção ajusta os valores de pixels para ajudar a compressibilidade, mas tem um impacto mínimo na qualidade visual. Ele aciona o modo de compactação sem perda automaticamente. O intervalo é de 0 (pré-processamento máximo) a 100 (sem pré-processamento, o padrão). O valor típico é de aproximadamente 60. Observe que, às vezes, com perda com -q 100 pode gerar resultados melhores.
-q float

Especifique o fator de compactação para canais RGB entre 0 e 100. O padrão é 75.

No caso de compactação com perda (padrão), um fator pequeno produz um arquivo menor com qualidade inferior. A melhor qualidade é alcançada usando um valor de 100.

No caso da compactação sem perdas (especificada pela opção -lossless), um fator pequeno permite uma velocidade de compactação mais rápida, mas produz um arquivo maior. A compactação máxima é alcançada usando um valor de 100.

-z int

Ative o modo de compactação lossless com o nível especificado entre 0 e 9, sendo 0 o mais rápido e 9 o mais lento. O Modo rápido produz um tamanho de arquivo maior do que os mais lentos. Um bom padrão é -z 6. Na verdade, essa opção é um atalho para algumas configurações predefinidas de qualidade e método. Se as opções -q ou -m forem usadas posteriormente, ela invalidará o efeito dessa opção.

-alpha_q int

Especifique o fator de compactação para a compactação Alfa entre 0 e 100. A compressão alfa sem perda é alcançada usando um valor de 100, enquanto os valores mais baixos resultam em uma compactação com perda. o padrão é 100.

-preset string

Especifique um conjunto de parâmetros predefinidos para atender a um tipo específico de material de origem. Os valores possíveis são: default, photo, picture, drawing, icon, text.

Como -preset substitui os valores dos outros parâmetros (exceto o -q), essa opção precisa aparecer primeiro na ordem dos argumentos.

-m int

Especifique o método de compactação a ser usado. Esse parâmetro controla a compensação entre a velocidade da codificação e o tamanho e a qualidade do arquivo compactado. Os valores possíveis variam de 0 a 6. O valor padrão é 4. Quando valores mais altos são usados, o codificador passa mais tempo inspecionando outras possibilidades de codificação e decide o ganho de qualidade. Um valor menor pode resultar em um tempo de processamento mais rápido, mas pode resultar em um tamanho de arquivo maior e uma qualidade de compactação menor.

-crop x_position y_position width height

Corte a origem em um retângulo com o canto superior esquerdo nas coordenadas (x_position, y_position) e no tamanho width x height. Essa área de corte precisa estar totalmente contida no retângulo de origem. Observação: o corte é aplicado antes de qualquer dimensionamento.

-resize width height

Redimensione a origem para um retângulo com o tamanho width x height. Se um (mas não ambos) dos parâmetros de largura ou altura for 0, o valor será calculado preservando a proporção. Observação: o dimensionamento é aplicado após o corte.

-mt

Se possível, use várias linhas de execução para a codificação.

-low_memory

Reduza o uso da memória da codificação com perda economizando quatro vezes o tamanho compactado (normalmente). Isso tornará a codificação mais lenta e a saída será um pouco diferente em tamanho e distorção. Essa sinalização só é eficaz para os métodos 3 e mais recentes e está desativada por padrão. Observe que deixar essa sinalização desativada terá alguns efeitos colaterais no bitstream: ela força determinados recursos de bitstream, como o número de partições (forçado para 1). Observe que um relatório mais detalhado do tamanho do bitstream é impresso por cwebp ao usar essa opção.

Opções com perdas

Essas opções só são eficazes ao fazer uma codificação com perdas (padrão, com ou sem alfa).

-size int
Especifique um tamanho de destino (em bytes) para tentar alcançar a saída compactada. O compressor fará várias passagens de codificação parcial para chegar o mais próximo possível desse destino. Se -size e -psnr forem usados, o valor de -size prevalecerá.
-psnr float
Especifique um PSNR alvo (em dB) para tentar alcançar a saída compactada. O compressor fará várias passagens de codificação parcial para chegar o mais próximo possível desse destino. Se -size e -psnr forem usados, o valor -size prevalecerá.
-pass int
Define um número máximo de cartões a serem usados durante a dicotomia usada pelas opções -size ou -psnr. O valor máximo é 10. O padrão é 1. Se as opções -size ou -psnr tiverem sido usadas, mas -pass não tiver sido especificada, um valor padrão de "6" vai ser usado. Se -pass for especificado, mas -size e -psnr não forem, um PSNR desejado de 40dB será usado.
-af
Ativa o filtro automático. Esse algoritmo vai gastar mais tempo otimizando a intensidade do filtro para alcançar uma qualidade equilibrada.
-jpeg_like
Mude o mapeamento de parâmetros internos para corresponder melhor ao tamanho esperado da compactação JPEG. Essa sinalização geralmente produz um arquivo de saída de tamanho semelhante ao equivalente em JPEG (para a mesma configuração de -q), mas com menos distorção visual.

Opções avançadas:

-f int
Especifique a intensidade do filtro de desbloqueio entre 0 (sem filtragem) e 100 (filtragem máxima). O valor 0 desativa a filtragem. Um valor mais alto vai aumentar a intensidade do processo de filtragem aplicado após a decodificação da imagem. Quanto maior o valor, mais suave a imagem será exibida. Os valores típicos geralmente estão na faixa de 20 a 50.
-sharpness int
Especifique a nitidez da filtragem (se usada). O intervalo é de 0 (mais nítido) a 7 (menos nítido). O padrão é 0.
-strong
Use filtragem forte (se a filtragem estiver sendo usada graças à opção -f). A filtragem forte fica ativada por padrão.
-nostrong
Desativar a filtragem forte (se estiver sendo usada graças à opção -f) e usar a filtragem simples.
-sharp_yuv
Use uma conversão RGB->YUV mais precisa e nítida, se necessário. Esse processo é mais lento do que a conversão padrão "rápida" de RGB->YUV.
-sns int
Especifique a amplitude da modelagem de ruído espacial. A modelagem de ruído espacial (ou sns, na sigla em inglês) se refere a uma coleção geral de algoritmos integrados usados para decidir qual área da imagem precisa usar relativamente menos bits e onde mais transferir esses bits melhor. O intervalo possível vai de 0 (o algoritmo está desativado) para 100 (o efeito máximo). O valor padrão é 50.
-segments int
Altere o número de partições a serem usadas durante a segmentação do algoritmo sns. Os segmentos precisam estar entre 1 e 4. O valor padrão é 4. Essa opção não tem efeito para os métodos 3 e mais recentes, a menos que -low_memory seja usado.
-partition_limit int
Dificulta a qualidade limitando o número de bits usados por alguns macroblocos. O intervalo é de 0 (sem degradação, o padrão) a 100 (degradação completa). Os valores úteis geralmente ficam em torno de 30 a 70 para imagens moderadamente grandes. No formato VP8, a chamada partição de controle tem um limite de 512k e é usada para armazenar as seguintes informações: se o macrobloco é ignorado, a qual segmento ele pertence, se está codificado como modo intra 4x4 ou intra 16x16 e, por fim, os modos de previsão a serem usados para cada um dos subblocos. Para uma imagem muito grande, a resolução de 512k só deixa espaço para alguns bits por macrobloco de 16x16. O mínimo absoluto é de 4 bits por macrobloco. As informações de salto, segmento e modo podem usar quase todos esses 4 bits (embora o caso seja improvável), o que é problemático para imagens muito grandes. O fator partition_limit controla a frequência com que o modo mais caro (intra 4x4) será usado. Isso é útil caso o limite de 512 mil seja atingido e a seguinte mensagem seja exibida: Código de erro: 6 (PARTITION0_OVERFLOW: A partição #0 é muito grande para caber em 512k). Se o uso de -partition_limit não for suficiente para atender à restrição de 512k, será preciso usar menos segmentos para economizar mais bits de cabeçalho por macrobloco. Consulte a opção -segments. As opções -m e -q também influenciam as decisões do codificador e a capacidade de atingir esse limite.

Opções de registro

Estas opções controlam o nível de saída:

-v
Mostre informações extras (especificamente o tempo da codificação).
-print_psnr
Calcule e informe a média de PSNR (proporção pico-sinal-ruído).
-print_ssim
Calcular e informar a SSIM média (métrica de similaridade estrutural). Consulte https://en.wikipedia.org/wiki/SSIM para mais detalhes (em inglês).
-print_lsim
Calcular e informar a métrica de semelhança local (soma do menor erro entre os vizinhos de pixels colocalizados).
-progress
Relatório do progresso da codificação em porcentagem.
-quiet
Não imprima nada.
-short
Só imprime informações breves (tamanho do arquivo de saída e PSNR) para fins de teste.
-map int
Mapa de saída ASCII extra das informações de codificação. Os valores possíveis do mapa variam de 1 a 6. Isso é feito apenas para ajudar na depuração.

Opções adicionais

As opções mais avançadas são:

-s width height
Especifique que o arquivo de entrada consiste em amostras brutas de Y'CbCr seguindo a recomendação ITU-R BT.601, no formato linear 4:2:0. O plano de luma tem o tamanho width x height.
-pre int
Especifique algumas etapas de pré-processamento. O uso de um valor 2 vai acionar o pontilhamento pseudoaleatório dependente da qualidade durante a conversão RGBA->YUVA (somente compressão com perda).
-alpha_filter string
Especificar o método de filtragem preditiva para o plano Alfa. Um de none, fast ou best, em ordem crescente de complexidade e lentidão. O padrão é fast. Internamente, a filtragem Alfa é realizada usando quatro previsões possíveis (nenhuma, horizontal, vertical, gradiente). O modo best vai testar cada modo por vez e escolher o que tiver o tamanho menor. O modo fast vai tentar formar um palpite uma priori sem testar todos os modos.
-alpha_method int
Especifique o algoritmo usado para a compactação Alfa: 0 ou 1. O algoritmo 0 indica sem compactação, e o 1 usa o formato WebP sem perda para compactação. O padrão é 1.
-exact
Preserve os valores RGB na área transparente. Para ajudar na compactação, o padrão é desativado.
-blend_alpha int
Essa opção combina o Canal Alfa (se presente) com a fonte usando a cor de fundo especificada em hexadecimal como 0xrrggbb. O canal alfa é redefinido posteriormente para o valor opaco 255.
-noalpha
Usar esta opção descartará o Canal Alfa.
-hint string
Especifique a dica sobre o tipo de imagem de entrada. Os valores possíveis são: photo, picture ou graph.
-metadata string

Uma lista separada por vírgulas de metadados que serão copiados da entrada para a saída, se houver. Valores válidos: all, none, exif, icc, xmp. O padrão é none.

Nem todos os formatos de entrada aceitam todas as combinações.

-noasm

Desativa todas as otimizações de assembly.

Bugs

Exemplos

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

Autores

cwebp faz parte do libwebp e foi escrito pela equipe do WebP. A árvore de origem mais recente está disponível em https://chromium.googlesource.com/webm/libwebp/

Esta página de manual foi escrita para o projeto Debian (e pode ser usada por outras pessoas).