Cwebp

이름

cwebp -- 이미지 파일을 WebP 파일로 압축합니다.

개요

cwebp [options] input_file -o output_file.webp

설명

cwebp는 WebP 형식을 사용하여 이미지를 압축합니다. 입력 형식은 PNG, JPEG, TIFF, WebP 또는 원시 Y'CbCr 샘플일 수 있습니다. 참고: 애니메이션 PNG 및 WebP 파일은 지원되지 않습니다.

옵션

기본 옵션은 다음과 같습니다.

-o string
출력 WebP 파일의 이름을 지정합니다. 생략하면 cwebp가 압축을 실행하지만 통계만 보고합니다. '-'를 출력 이름으로 사용하면 출력이 'stdout'으로 전달됩니다.
-- string
입력 파일을 명시적으로 지정합니다. 이 옵션은 예를 들어 입력 파일이 '-'로 시작하는 경우에 유용합니다. 이 옵션은 last로 표시되어야 합니다. 그 후의 다른 모든 옵션은 무시됩니다.
-h, -help
간단한 사용 요약
-H, -longhelp
가능한 모든 옵션의 요약
-version
버전 번호 (Major.minor.revision으로)를 출력하고 종료합니다.
-lossless
이미지를 손실 없이 인코딩합니다. 완전히 투명한 영역이 있는 이미지의 경우 보이지 않는 픽셀 값 (R/G/B 또는 Y/U/V)은 -exact 옵션이 사용된 경우에만 유지됩니다.
-near_lossless int
무손실에 가까운 이미지 전처리의 수준을 지정합니다. 이 옵션은 압축에 도움이 되도록 픽셀 값을 조정하지만 시각적 품질에 미치는 영향은 최소화합니다. 무손실 압축 모드를 자동으로 트리거합니다. 범위는 0 (최대 사전 처리)~100 (사전 처리 없음, 기본값)입니다. 일반적인 값은 약 60입니다. -q 100를 사용한 손실이 있으면 경우에 따라 더 나은 결과를 얻을 수 있습니다.
-q float

0에서 100 사이의 RGB 채널의 압축 계수를 지정합니다. 기본값은 75입니다.

손실(lossy) 압축(기본값)의 경우 작은 계수는 품질이 낮은 더 작은 파일을 생성합니다. 100 값을 사용하면 최상의 품질을 얻을 수 있습니다.

무손실 압축 (-lossless 옵션으로 지정됨)의 경우 인수가 작을수록 압축 속도는 빨라지지만 파일은 더 커집니다. 최대 압축은 100 값을 사용하여 달성됩니다.

-z int

지정된 수준을 0에서 9 사이에서 설정하여 lossless 압축 모드를 전환합니다. 수준 0이 가장 빠르고 9가 가장 느립니다. 빠른 모드는 느린 모드보다 파일 크기가 더 큽니다. 적절한 기본값은 -z 6입니다. 이 옵션은 실제로 품질 및 방법에 관한 일부 사전 정의된 설정의 단축키입니다. 이후에 -q 또는 -m 옵션을 사용하면 이 옵션의 효과가 무효화됩니다.

-alpha_q int

알파 압축의 압축 계수를 0에서 100 사이로 지정합니다. 알파의 무손실 압축은 100 값을 사용하여 실행되며, 값이 작을수록 손실(lossy) 압축이 발생합니다. 기본값은 100입니다.

-preset string

특정 유형의 소스 자료에 맞게 사전 정의된 매개변수 집합을 지정합니다. 가능한 값은 default, photo, picture, drawing, icon, text입니다.

-preset는 다른 매개변수의 값 (-q 제외)을 덮어쓰므로 이 옵션은 인수 순서대로 먼저 표시되는 것이 좋습니다.

-m int

사용할 압축 방법을 지정합니다. 이 매개변수는 인코딩 속도와 압축된 파일 크기 및 품질 간의 균형을 제어합니다. 가능한 값의 범위는 0~6입니다. 기본값은 4입니다. 더 높은 값이 사용되면 인코더가 추가적인 인코딩 가능성을 검사하고 품질 게인을 결정하는 데 더 많은 시간을 할애하게 됩니다. 값이 작을수록 처리 시간은 빨라지지만 파일 크기는 커지고 압축 품질이 낮아집니다.

-crop x_position y_position width height

소스를 왼쪽 상단 모서리가 좌표(x_position, y_position)에 있고 크기가 width x height인 직사각형으로 자릅니다. 이 자르기 영역은 소스 직사각형 내에 완전히 포함되어야 합니다. 참고: 자르기는 크기 조정 전에 적용됩니다.

-resize width height

소스 크기를 width x height 크기의 직사각형으로 조정합니다. 너비 또는 높이 매개변수 중 하나가(둘 다는 아님) 0인 경우 값은 가로세로 비율을 유지하면서 계산됩니다. 참고: 배율은 자르기 후에 적용됩니다.

-mt

가능한 경우 인코딩에 멀티스레딩을 사용합니다.

-low_memory

일반적으로 압축 크기를 4배로 줄여 손실 있는 인코딩의 메모리 사용량을 줄입니다. 이로 인해 인코딩이 느려지고 출력의 크기와 왜곡이 약간 달라집니다. 이 플래그는 메서드 3 이상에만 유효하며 기본적으로 사용 중지되어 있습니다. 이 플래그를 끄면 비트스트림에 몇 가지 부작용이 발생합니다. 즉, 파티션 수와 같은 특정 비트스트림 기능이 강제 적용됩니다 (1로 강제 적용됨). 이 옵션을 사용하면 cwebp에 의해 더 자세한 비트스트림 크기 보고서가 출력됩니다.

손실 옵션

이러한 옵션은 손실(lossy) 인코딩(알파 유무와 관계없는 기본값)을 수행할 때만 효과적입니다.

-size int
압축된 출력을 위해 시도할 대상 크기 (바이트)를 지정합니다. 압축 프로그램은 이 타겟에 최대한 근접하기 위해 부분 인코딩을 여러 차례 진행합니다. -size-psnr를 모두 사용하는 경우 -size 값이 우선 적용됩니다.
-psnr float
압축된 출력에 도달할 타겟 PSNR (dB 단위)을 지정합니다. 압축 프로그램은 이 타겟에 최대한 근접하기 위해 부분 인코딩을 여러 차례 실행합니다. -size-psnr를 모두 사용하는 경우 -size 값이 우선 적용됩니다.
-pass int
-size 또는 -psnr 옵션에서 사용되는 이분법 중에 사용할 최대 패스 수를 설정합니다. 최댓값은 10이며 기본값은 1입니다. -size 또는 -psnr 옵션을 사용했지만 -pass를 지정하지 않은 경우 기본값 '6'이 사용됩니다. -pass는 지정되었지만 -size-psnr 모두 지정되지 않은 경우 40dB의 타겟 PSNR이 사용됩니다.
-af
자동 필터를 사용 설정합니다. 이 알고리즘은 균형 잡힌 품질을 달성하기 위해 필터링 강도를 최적화하는 데 추가 시간을 할애합니다.
-jpeg_like
JPEG 압축의 예상 크기와 더 잘 일치하도록 내부 매개변수 매핑을 변경합니다. 이 플래그는 일반적으로 동등한 크기 (동일한 -q 설정의 경우)와 동등한 크기의 출력 파일을 생성하지만 시각적 왜곡은 적습니다.

고급 옵션:

-f int
디블로킹 필터의 강도를 0 (필터링 없음)에서 100 (최대 필터링) 사이로 지정합니다. 값이 0이면 모든 필터링이 사용 중지됩니다. 값이 클수록 사진을 디코딩한 후에 적용되는 필터링 프로세스의 강도가 높아집니다. 값이 클수록 사진이 더 부드럽게 표시됩니다. 일반적인 값의 범위는 20~50입니다.
-sharpness int
필터링의 선명도를 지정합니다 (사용된 경우). 범위는 0 (가장 선명)~7 (가장 선명함)입니다. 기본값은 0입니다.
-strong
강력한 필터링을 사용합니다 (-f 옵션으로 인해 필터링이 사용되는 경우). 강력한 필터링은 기본적으로 사용 설정되어 있습니다.
-nostrong
강력한 필터링을 사용 중지하고 (-f 옵션으로 인해 필터링이 사용되는 경우) 대신 단순 필터링을 사용합니다.
-sharp_yuv
필요한 경우 더 정확하고 선명한 RGB->YUV 변환을 사용합니다. 이 프로세스는 기본 '빠른' RGB->YUV 변환보다 느립니다.
-sns int
공간 노이즈 형태의 진폭을 지정합니다. 공간 노이즈 셰이핑(줄여서 sns)은 사진의 어느 영역에서 상대적으로 더 적은 비트를 사용해야 하고 이러한 비트를 더 잘 전송할 다른 위치를 결정하는 데 사용되는 일반적인 기본 제공 알고리즘 모음을 의미합니다. 가능한 범위는 0 (알고리즘이 사용 중지됨)에서 100 (최대 효과)까지입니다. 기본값은 50입니다.
-segments int
SNS 알고리즘을 세분화하는 동안 사용할 파티션 수를 변경합니다. 세그먼트는 1에서 4 사이의 범위 내에 있어야 합니다. 기본값은 4입니다. 이 옵션은 -low_memory가 사용되지 않는 한 메서드 3 이상에는 영향을 미치지 않습니다.
-partition_limit int
일부 매크로 블록에서 사용하는 비트 수를 제한하여 품질을 저하시킵니다. 범위는 0 (성능 저하 없음, 기본값)~100 (전체 성능 저하)입니다. 적당히 큰 이미지의 경우 일반적으로 유용한 값은 30~70 정도입니다. VP8 형식에서 소위 제어 파티션은 512k로 제한되며 매크로블록을 건너뛰는지 여부, 매크로 블록이 속하는 세그먼트, 인트라 4x4 또는 내부 16x16 모드로 코딩되었는지 여부, 마지막으로 각 하위 블록에 사용할 예측 모드 등의 정보를 저장하는 데 사용됩니다. 매우 큰 이미지의 경우 512k는 16x16 매크로 블록당 몇 비트만 남깁니다. 매크로 블록당 최소 4비트가 필요합니다. 건너뛰기, 세그먼트, 모드 정보는 이러한 4비트를 거의 모두 사용할 수 있으므로 (드물기는 하지만) 매우 큰 이미지에서는 문제가 됩니다. partition_limit 계수는 비트 비용이 가장 많이 드는 모드(4x4 내)가 사용되는 빈도를 제어합니다. 이는 512k 제한에 도달하고 다음 메시지가 표시되는 경우에 유용합니다. 오류 코드: 6 (partition0_OVERFLOW: Partition #0이 너무 커서 512k에 맞지 않습니다.) -partition_limit를 사용하는 것만으로 512k 제약조건을 충족하지 못하는 경우 매크로 블록당 더 많은 헤더 비트를 저장하려면 더 적은 세그먼트를 사용해야 합니다. -segments 옵션을 참고하세요. -m-q 옵션은 인코더의 결정과 이 한도에 도달하는 기능에도 영향을 미칩니다.

로깅 옵션

다음 옵션은 출력 수준을 제어합니다.

-v
추가 정보 (특히 인코딩 시간)를 출력합니다.
-print_psnr
평균 PSNR (피크-신호-노이즈 비율)을 계산하고 보고합니다.
-print_ssim
평균 SSIM (구조 유사성 측정항목, 자세한 내용은 https://en.wikipedia.org/wiki/SSIM 참고)을 계산하고 보고합니다.
-print_lsim
국소 유사성 측정항목 (병치된 픽셀 이웃 사이에서 가장 낮은 오차의 합계)을 계산하고 보고합니다.
-progress
보고서 인코딩 진행률(%)
-quiet
아무 것도 출력하지 않습니다.
-short
테스트 목적의 간단한 정보 (출력 파일 크기 및 PSNR)만 출력합니다.
-map int
인코딩 정보의 추가 ASCII 맵을 출력합니다. 가능한 맵 값의 범위는 1~6입니다. 이는 디버깅에만 도움이 됩니다.

추가 옵션

고급 옵션은 다음과 같습니다.

-s width height
입력 파일이 실제로 ITU-R BT.601 권장사항에 따라 원시 Y'CbCr 샘플로 구성되며 4:2:0 선형 형식으로 지정합니다. 루마 평면의 크기는 width x height입니다.
-pre int
사전 처리 단계를 지정합니다. 2 값을 사용하면 RGBA->YUVA 변환 중에 품질 종속적인 의사 난수 디더링이 트리거됩니다(손실 압축만 해당).
-alpha_filter string
알파 평면의 예측 필터링 메서드를 지정합니다. 복잡도와 속도가 느려지는 none, fast 또는 best 중 하나입니다. 기본값은 fast입니다. 내부적으로 알파 필터링은 4가지 예측 (없음, 가로, 수직, 경사)을 사용하여 실행됩니다. best 모드는 각 모드를 차례로 시도하고 크기가 더 작은 모드를 선택합니다. fast 모드는 모든 모드를 테스트하지 않고 사전 추측을 작성하려고 시도합니다.
-alpha_method int
알파 압축에 사용되는 알고리즘(0 또는 1)을 지정합니다. 알고리즘 0는 무압축을 나타내며 1는 압축에 WebP 무손실 형식을 사용합니다. 기본값은 1입니다.
-exact
투명 영역에 RGB 값을 유지합니다. 압축을 쉽게 할 수 있도록 기본값은 꺼져 있습니다.
-blend_alpha int
이 옵션은 16진수로 0xrrggbb로 지정된 배경 색상을 사용하여 알파 채널 (있는 경우)과 소스를 혼합합니다. 이후 알파 채널은 불투명 값 255로 재설정됩니다.
-noalpha
이 옵션을 사용하면 알파 채널이 삭제됩니다.
-hint string
입력 이미지 유형에 대한 힌트를 지정합니다. 가능한 값은 photo, picture 또는 graph입니다.
-metadata string

입력에서 출력으로 복사할(있는 경우) 쉼표로 구분된 메타데이터 목록입니다. 유효한 값: all, none, exif, icc, xmp. 기본값은 none입니다.

각 입력 형식이 모든 조합을 지원하는 것은 아닙니다.

-noasm

모든 어셈블리 최적화를 사용 중지합니다.

버그

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

저자

cwebplibwebp의 일부이며 WebP팀에서 작성했습니다. 최신 소스 트리는 https://chromium.googlesource.com/webm/libwebp/에서 확인할 수 있습니다.

이 매뉴얼 페이지는 Debian 프로젝트용으로 작성되었으며 다른 프로젝트도 사용할 수 있습니다.