.WEBP 파일이란?
Google에서 소개한 WebP는 무손실 및 손실 압축을 기반으로 하는 최신 래스터 웹 이미지 파일 형식입니다. 이미지 크기를 크게 줄이면서 동일한 이미지 품질을 제공합니다. 대부분의 웹 페이지는 데이터의 효과적인 표현으로 이미지를 사용하기 때문에 웹 페이지에서 WebP 이미지를 사용하면 웹 페이지의 로딩 속도가 빨라집니다. Google에 따르면 WebP 무손실 이미지는 PNG에 비해 크기가 26% 작으며 WebP 손실 이미지는 JPEG 이미지보다 25-34% 작습니다. 이미지는 WebP와 다른 이미지 파일 형식 간의 SSIM(구조적 유사성) 인덱스를 기반으로 비교됩니다. WebP는 WebM 멀티미디어 컨테이너 형식의 자매 프로젝트입니다.
WebP 기능 개요
WebP 이미지는 주변 블록의 픽셀 예측을 기반으로 압축 프로세스를 사용하므로 단일 파일에서 픽셀이 여러 번 사용됩니다. 애니메이션 이미지를 지원하며 앞으로 더 많은 기능을 지원할 예정입니다. Google은 필요할 때 사용할 수 있도록 인코더 및 디코더의 소스 코드 온라인을 제공했습니다. WebP 이미지는 다음에 대한 지원을 제공합니다.
- 손실 압축: 손실 압축은 VP8 키 프레임 인코딩을 기반으로 합니다. VP8은 VP6 및 VP7 형식의 후속 제품으로 On2 Technologies에서 만든 비디오 압축 형식입니다.
- 무손실 압축: 무손실 압축 형식은 WebP 팀에서 개발했습니다.
- 투명도: 8비트 알파 채널은 그래픽 이미지에 유용합니다. 알파 채널은 현재 다른 형식에서는 사용할 수 없는 기능인 손실 RGB와 함께 사용할 수 있습니다.
- 애니메이션: 트루 컬러 애니메이션 이미지를 지원합니다.
- 메타데이터: EXIF 및 XMP 메타데이터(예: 카메라에서 사용)가 있을 수 있습니다.
- 색상 프로필: 내장된 ICC 프로필이 있을 수 있습니다.
Lossy WebP 압축은 VP8 비디오 코덱에서 비디오의 키프레임을 압축하는 데 사용하는 것과 동일한 방법으로 예측 코딩을 사용하여 이미지를 인코딩합니다. 예측 코딩은 인접 픽셀 블록의 값을 사용하여 블록의 값을 예측한 다음 차이만 인코딩합니다.
무손실 WebP 압축은 새 픽셀을 정확하게 재구성하기 위해 이미 본 이미지 조각을 사용합니다. 흥미로운 일치 항목이 없는 경우 로컬 팔레트를 사용할 수도 있습니다.
파일 형식
WebP 파일 형식은 RIFF(자원 교환 파일 형식) 문서 형식을 기반으로 합니다. WebP 컨테이너는 VP8 키 프레임으로 인코딩된 단일 이미지만 포함하는 것보다 더 많은 기능을 지원합니다. RIFF 파일의 기본 요소는 다음으로 구성된 청크입니다.
필드 | 설명 |
---|---|
청크 FourCC: 32비트 | 청크 식별에 사용되는 ASCII 4자 코드 |
청크 크기: 32비트(uint32) | 이 필드를 포함하지 않는 청크 크기, 청크 식별자 또는 패딩 |
청크 페이로드: 청크 크기 바이트 | 데이터 페이로드. 청크 크기가 홀수이면 0 ~-~-이어야 하는 단일 패딩 바이트 ~-~-가 추가됩니다. |
ChunkHeader(‘ABCD’) | 개별 청크의 FourCC 및 청크 크기 헤더를 설명하는 데 사용되며, 여기서 ‘ABCD’는 청크에 대한 FourCC입니다. 이 요소의 크기는 8바이트입니다. |
WebP 헤더
WebP 파일 헤더는 다음과 같습니다.
- RIFF 헤더 - ASCII 문자 ‘R’ ‘I’ ‘F’ ‘F’를 나타내는 32비트
- 파일 크기 - 오프셋 8에서 시작하여 파일 크기를 바이트 단위로 나타내는 32비트(uint32). 이 필드의 최대값은 2^32에서 10바이트를 뺀 값이므로 전체 파일의 크기는 최대 4GiB에서 2바이트를 뺀 값입니다. .
- ‘WEBP’ - ASCII 문자 ‘W’ ‘E’ ‘B’ ‘P’를 나타내는 32비트
손실된 파일 형식
WebP 이미지는 이미지가 손실 인코딩을 기반으로 하고 투명도, 애니메이트, 알파 등과 같은 고급/확장 기능이 필요하지 않은 경우 손실 파일 형식을 사용합니다. 손실 이미지는 더 작고 이전 응용 프로그램에서도 지원됩니다.
이 경우 WebP 파일은 다음으로 구성됩니다.
- 12바이트 WebP 파일 헤더
- VP8 청크
VP8 데이터 형식 및 디코딩 가이드는 VP8 비트스트림 형식 사양을 설명합니다.
무손실 파일 형식
이 레이아웃은 이미지가 무손실 인코딩을 기반으로 하고 외부 형식에서 제공하는 고급 기능이 필요하지 않은 경우에 사용됩니다. 그러나 이전 응용 프로그램은 이러한 파일을 읽지 못할 수 있습니다.
이 경우 WebP 파일은 다음으로 구성됩니다.
- 12바이트 WebP 파일 헤더
- VP8L 청크