극한의 압축,
디테일 보존.
WebP의 압축 효율성은 블록 기반 예측 코딩에서 나옵니다. 이미지의 이미 디코딩된 부분을 사용하여 새 픽셀에 대한 예측 값을 구축합니다.
이는 파일 크기가 작아지고 로딩 속도가 빨라지며 대역폭 소모가 줄어든다는 것을 의미합니다.
* SSIM 화질 지수에 따르면, 동일 화질에서 WebP 손실 압축은 JPEG보다 25-34% 작습니다.
압축 원리의 핵심 로직
function Predict(NeighborPixels) {
// 인접 픽셀을 사용하여 현재 픽셀 예측
Predicted_P = Average(Left, Top, TopLeft);
// 차이(잔차)만 저장
return Actual_P - Predicted_P;
}
WebP는 모든 픽셀의 색상을 직접 저장하지 않고(BMP처럼), 주변의 알려진 픽셀을 기반으로 현재 픽셀의 색상을 "추측"합니다. "추측이 틀린" 적은 양의 데이터(잔차)만 저장하면 되므로 파일 크기가 크게 줄어듭니다.
올라운더 기능
JPEG의 대체품일 뿐만 아니라 PNG와 GIF의 진화형입니다.
손실 및 무손실
WebP는 손실 압축(VP8 비디오 기술)과 무손실 압축(WebP Lossless)을 모두 지원하는 독특한 형식입니다.
알파 투명도
손실 압축 모드에서도 WebP는 8비트 알파 채널을 지원합니다. 이는 JPEG가 할 수 없는 것입니다.
애니메이션 지원
WebP는 GIF를 대체할 수 있습니다. 손실 및 무손실 애니메이션을 지원하며 일반적으로 GIF보다 64% 이상 작습니다.
기반 기술 아키텍처
예측 코딩
WebP 손실 압축은 주로 VP8 비디오 코덱의 키 프레임 인코딩을 기반으로 합니다. 이미지를 16x16 매크로블록으로 나누고 각 블록 내부에서 4x4 서브 블록으로 더 나누어 예측을 수행합니다.
엔트로피 코딩
예측 후의 잔차 데이터와 모션 벡터는 문맥 기반 산술 코딩(Arithmetic Coding)을 거치는데, 이는 JPEG가 사용하는 허프만 코딩보다 효율적입니다.