WebP
1. 개요
홈페이지
2010년 구글에서 만든 이미지 포맷. 이름처럼 Web을 위해서 만들어진 이미지 포맷이다. 기존의 이미지 포맷이 GIF, PNG, JPEG으로 삼분되어 있었다면 WebP는 이들 세 가지 포맷을 전부 대체 가능한 특징을 가지고 있다.
2. 특징
- 구글이 On2를 사들이면서 같이 사들인 VP8 비디오 코덱의 기술에 기반한 영상 압축 방식을 사용한다.
- 만들 당시 대부분의 이미지 포맷이 손실 압축(JPEG)과 비손실 압축(PNG, GIF) 포맷으로 나뉘는데, 이 포맷은 둘 다 지원한다.[1]
- 손실압축을 사용할 경우 JPEG 포맷보다 30% 정도 파일 크기가 작다고 홈페이지에 소개하고 있다. 샘플 갤러리 링크
- 비손실 압축을 사용할 경우도 PNG 포맷보다 20~30% 정도 파일 크기가 작아진다고 홈페이지에 소개하고 있다. 샘플 갤러리 링크
- Animation GIF 포맷처럼, Animated WebP로 애니메이션을 지원한다. 웹 브라우저 지원 여부 테스트 사이트
- PNG 포맷처럼 알파 채널을 지원한다.
- 메이저 브라우저 기준으론 지원 현황이 상당히 개선된 19년 초 기준으로도, 정작 웹사이트에서 webp 확장자 업로드 및 허용 처리에 관심 없는 곳이 많다.[2] 일례로 이미지 호스팅 사이트의 경우, imgur는 지원하지만 해당 문서의 경쟁 사이트 항목에 있는 아류 사이트들은 거의 단 하나도 지원하지 않는다. 아직까지도 비효율적인 GIF가 강세인 이유... 2020년대 초중반 기준으로 webp를 선뜻 지원하기가 꺼려지는 것이, iOS13 브라우저들이 webp를 지원 안 한다. iOS버전 크롬, 파이어폭스도 있지만 무늬만 크롬, 파이어폭스고 사파리와 같은 엔진이다. [3] 그래서 아이폰, 아이패드 사용자를 배려할려면 webp를 도입하기 어렵다. iOS, iPadOS는 버전 14부터, macOS도 버전11인 big sur부터 webp를 지원한다고 하니, 2020년 이후에 webp 지원 안하는 사이트들은 webp에 정말로 관심이 없다고 봐도 될 듯 하다.
- 간략한 지원 현황: 여기서 또 손실 압축과 비손실 압축 그리고 Animation WebP별로 지원하는 브라우저가 다르다. 자세한 지원 정보는 WebP 홈페이지 (Which web browsers natively support WebP?) 참조. Animated WebP 지원 테스트
3. 여담
- 구글이 이런 포맷을 만들어서 무료로 뿌리는 이유 중 하나는, 구글 혼자서 엄청난 인터넷 트래픽을 사용하고 있는데, 이미지 포맷만 최적화해도 서버 트래픽을 대폭 줄여서 비용을 엄청나게 줄일 수 있기 때문이며, 실제로 구글 홈페이지는 웹브라우저를 체크해서 브라우저가 WebP를 지원하는 경우 JPEG이나 PNG 대신 WebP를 보내주도록 되어 있는 경우가 많다. 여기에 더해서 인터넷 속도가 빨라지면 빨라질수록 구글이 광고를 통해서 매출을 늘릴 수 있기 때문에 구글은 항상 인터넷 속도 향상을 위해서 노력하고 있다.
- 유튜브 썸네일도 이 형식으로 되어있다.[4]
- 지원하는 이미지 뷰어가 많지는 않지만, 꿀뷰는 Animated WebP 포맷까지 잘 지원한다.
- Animated WebP는 구글이 Animated GIF가 부러워서 초기 버전의 WebP 포맷에 없던 기능을 나중에 추가한 포맷인데, 256 컬러만 지원하는 GIF와 달리 트루컬러나 YUV를 지원하기 때문에 GIF보다 고화질이면서 용량도 더 작다. 하지만, 아직까지는 구글이 제공한 커맨드 라인 툴(gif2webp.exe)와 FFmpeg/avconv를 제외하면 국내에서는 꿀캠이 이 포맷을 지원하는 유일한 프로그램이다.
- 자매품으로 WebM이라는 비디오 포맷이 있다.
- 텔레그램 스티커가 이 포맷을 이용한다. 텔레그램 PC버전에서 스티커에서 오른쪽 클릭을 하고 "이미지를 다른 이름으로 저장"을 하면 Webp로 저장되는 것을 알 수 있다.
- 카카오톡의 이모티콘의 경우에도 해당 포맷을 이용한다. 단, 전부 이 방식은 아니며 혼용 사용 중에 있다.
몇몇사진들을 원본으로 보내게 될 경우 바뀌기도 한다.
- 안드로이드의 일부 이미지 뷰어에서 사용이 가능하다. 안드로이드는 이미지 포맷 지원이 그리 좋지 않은데, 경쟁자라 할 수 있는 JPEG 2000이나 MS의 JPEG XR을 볼 수 있는 이미지 뷰어가 없다.
- 아파치 HTTP 서버와 NGINX용 모듈인 mod_pagespeed도 개발해서 제공하고 있기 때문에, 해당 프로그램으로 구축한 서버라면 쉽게 적용할 수 있다. IE최강국이던 대한민국에서도 16년 4월 부터 스탯카운터 기준 크롬 점유율이 1위가 되었으므로, 상당한 효과[5] 를 기대할 수 있다.
- 차세대 포맷중엔 보급이 잘 된 편이라 안드로이드에서 PerfectViewer나 MaruViewer등이 지원하고 iOS에서는 Safari 14 베타부터, ComicShare 등이 지원한다.
- 나무위키에서는 WebP를 공식적으로 지원하지는 않지만, 올리는 것은 가능하며 iOS, iPad OS를 제외한 환경에서 정상적으로 보인다. WebP의 나무위키 공식 지원은 Safari에서 지원을 하기 전까지 계획이 없다고. 이후 사파리 14부터 WebP를 지원하자 공식 지원하기 시작했다.[6]
- APNG를 포함한 기존 포맷보단 우수하지만, VP8 기반인 만큼 고화질 움짤 용도로는 H264를 잘 쓰는 것보단 못하다. 때문에 움짤 용도로 WebP 대신 소리 없는 WebM을 쓰기도 한다. WebM은 VP9을 쓸 수 있으니까.[7]
- 국내에서는 현재 네이버[일부] 에서는 지원하나 디시인사이드에서는 지원하지 않는다. 다만 2021년 1월에 밝힌 내용으로는 mp4를 선 지원한뒤 webp를 지원할거라고 밝혔다.# 티스토리의 경우 지원하고 있었으나 모종의 이유로 2020년 중반부터 중단했고, 크롬 이외의 브라우저가 완전히 WebP를 표시할 때까지는 다시 지원할 예정이 없다고 한다. 단, 기존에 업로드된 WebP 이미지는 업로드가 가능하다.
- 오픈소스를 통해서 대중에게 개방된 이미지로 알려진 것과는 달리, 엄연히 특허가 걸려있는 독점 포맷이다. 물론 로열티 프리 포맷이지만 기업 입장에서는 특허가 있다는 것 자체가 더 큰 문제로 다가올 수 있다. patent free에 민감한 업체들은 참고할 것. 단순히 움짤 용도로 WebP와 비견되는 patent free를 원한다면 APNG가 있다.
- Webp는 BSD 라이선스를 채용하여 자유롭게 사용하고 수정하고 재배포할 수 있다. 그러나 수정한 것으로 특허를 얻을 수는 없다.
- 알고리즘 특성상 이미지가 뿌옇게 변하는 현상이 있는데 움짤을 만들 때 카툰처럼 색상이 적고 극단적인 색변화가 일어나는 경우 그런 현상이 육안으로 크게 드러날 수 있다. 퀄리티 손실을 가능한 줄이거나 무손실로 하는 수 밖에 없다.
4. 관련 문서
- WebM: 동영상 포맷
[1] 이에 대해 JPEG도 무손실 지원함. 이라고 하고 치우면 안 되는 게, JPEG 최초버전은 1992년, WebP는 2010년에 나온 반면, 무손실 JPEG의 정식 지원인 JPEG 9.1은 2014년에야 나왔다. (그 이전에도 무손실 JPEG 자체는 가능했지만, 압축 과정 대부분을 생략해서 손실을 피하는 편법에 가까웠기 때문에 포맷만 JPEG이지, PNG가 JPEG 대비 가장 불리한 소스를 줘도 PNG보다 압축률이 구려지는 등 엄청 큰 용량의 결과물이 나오는 문제가 있다.) 물론 지원 자체는 JPEG 2000(2000년대 초)와 JPEG XR(2006년)이 더 먼저이므로, 특이하다기보다는 그냥 차기 포맷이니깐 당연히 지원하는 정도이긴 하지만, 2018년 현재 기준으로 JPEG 2000과 JPEG XR은 거의 안 쓰이기 때문에 '널리 사용되는 편 + 손실/비손실을 단일 규격으로 모두 지원'으로 따지면 오히려 WebP가 (HEIC 등에 비해 상대적으로) 원로에 가까운 위치다.[2] 각종 해킹 공격 때문에 정해진 확장자만 허용하는 것이 기본이 된 지 오래지만, 이미 허용하는 jpg/jpeg, png, gif 등에 webp 하나만 추가하는 것은 어렵지도 않은데... 그냥 관심이 없다고 할 수밖에 없다.[3] 애플이 Safari 사용량을 늘이려고 iOS 및 iPadOS에서는 다른 웹 브라우저의 엔진을 사용을 불가하게 만들어 놓았다. 정확히는 출시 불가 오직 WebKit 엔진이 달린 브라우저만 출시가 가능하다 맥은 크롬, 파이어폭스가 사파리와 같은 webkit엔진이 아니기 때문에 일단 webp를 볼 수 있다.[4] 유튜브 썸네일을 바탕화면 같은 곳으로 끌어다 놓으면 확장자가 WebP 형식으로 되어있는 걸 알수 있다.[5] 3번째 댓글 참고[6] 단, 여전히 iOS상에서는 재생속도가 떨어지는 등의 문제가 발생한다.[7] 그러나 WebM은 어디까지 동영상 포맷이지 이미지 포맷이 아니다. 당장 gif가 엄청난 용량과 끔찍한 화질에도 사용되는 건 OS, 브라우저 상관없이 움직이는 이미지를 지원하기 때문이다.[일부] 지원 블로그에서 정적인 이미지로만 제한적으로 지원한다. 애니메이티드 WebP의 경우, 타 파일 호스팅 사이트에 올려두고 html 스크립트를 긁어오는 방식으로 올릴 수 있긴 하다.