이름
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
xheight
인 직사각형으로 자릅니다. 이 자르기 영역은 소스 직사각형 내에 완전히 포함되어야 합니다. 참고: 자르기는 크기 조정 전에 적용됩니다.-resize width height
소스 크기를
width
xheight
크기의 직사각형으로 조정합니다. 너비 또는 높이 매개변수 중 하나가(둘 다는 아님)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
xheight
입니다. -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
모든 어셈블리 최적화를 사용 중지합니다.
버그
모든 버그를 Issue Tracker(https://bugs.chromium.org/p/webp)에 신고해 주세요.
패치를 환영합니다! 시작하려면 다음 페이지를 참조하세요. https://www.webmproject.org/code/contribute/submitting-patches/
예
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
저자
cwebp
는 libwebp
의 일부이며 WebP팀에서 작성했습니다.
최신 소스 트리는 https://chromium.googlesource.com/webm/libwebp/에서 확인할 수 있습니다.
이 매뉴얼 페이지는 Debian 프로젝트용으로 작성되었으며 다른 프로젝트도 사용할 수 있습니다.