WebP
![]() | |
Розширення файлу: | .webp[1] |
---|---|
MIME-тип: | image/webp |
Магічне число: | WEBP |
Розробник: | |
Рік випуску: | 30 вересня,2010[2] |
Тип формату: | графічний формат без втрат та з втратами |
Міститься у: | Resource Interchange File Format(RIFF)[3] |
Сайт: | developers.google.com/speed/webp |
WebP(вимовляється якангл.weppy[4]) —формат ущільнення зображеньз втратами і без втрат якості, запропонований компанієюGoogle Inc.у2010році. Заснований наалгоритмістиснення нерухомих зображень (ключових кадрів) звідеокодекаVP8.Використовує контейнерRIFF.
Код відкритийпідліцензією Apache 2.0,яка доповнена пунктом про безоплатну передачу прав на використання пов'язаних з WebP патентів Google.
При створенні формату WebP використані технології, задіяні у відеокодеку VP8 для стиснення ключових кадрів. Високе стиснення досягається завдяки використанню передбачувальної техніки кодування, що враховує вміст сусідніх піксельних блоків для передбачення вмісту поточного блоку, це дозволяє обмежитися зберіганням тільки відмінностей між фактичними і передбаченими даними. Як контейнер для зберігання зображень, стиснених методом WebP, використовується стандартний RIFF.
При кодуванні без втрати даних для забезпечення високого ступеня стиснення (середній ступінь стиснення 1000 випадкових зображень з мережі склала 45%) задіяно кілька просунутих технологій, таких як окремі коди ентропії для різних колірних каналів, облік віддаленості типових 2D-областей при формуванні зворотних посилань ікешуваннянедавно використовуваних кольорів. Зазначені технології поєднуються з класичними методами, такими як словникове кодування,алгоритм Гаффманаі трансформація колірних індексів. У реалізації підтримки прозорості в WebP вдалося добитися зведення до мінімуму додаткової інформації, що визначає параметриальфа-каналу,це дозволило істотно знизити розмір підсумкових зображень. При кодуванні без втрати якості, використання альфа-каналу додає всього на 22% більше даних у порівнянні з кодуванням з втратою якості (рівень якості 90).
Використані в WebP технології стиснення з втратами дозволяють домогтися скорочення розміру файлу на 25–34%, порівняно з файламиJPEGаналогічної якості, і на 26% в режимі кодування без втрат у порівнянні з максимальним рівнем стисненняPNG[5].Тому WebP може виступати як повноцінна заміна форматівJPEG,GIFіPNG,забезпечуючи при цьому вищий ступінь стиснення і швидкість декодування. При поширенні фотографій WebP дозволяє забезпечити максимальне стиснення з непомітною для ока втратою якості, а при необхідності збереження зображень в незмінному вигляді, наприклад, при поширенні піктограм або скріншотів, тепер підтримується режим з повним попіксельним збереженням цілісності зображення. В обох режимах можливе визначення прозорих областей, створення анімації, використання колірних профілів ICC, тайлінг і додавання метаданихXMP.
Google створивбібліотекуlibwebp[Архівовано9 вересня 2012 уWayback Machine.]з реалізацією функцій кодування і декодування зображень у форматі WebP.
Для роботи з цим форматом існують відкриті бібліотека (libvpx) і конвертор (webpconv).
Стиснення складається з двох етапів. На першому робиться спроба «передбачити» вміст одних блоків за вже декодуваними (три блоки над поточним і один блок ліворуч від нього), на другому кодується помилка передбачення. Блоки відмальовуються в порядку зліва направо і зверху вниз.[6]
Режими передбачення працюють з 3 розмірами макроблоків[7]
- 4×4 в каналі яскравості
- 16×16 в каналі яскравості
- 8×8 в каналі кольоровості
УVP8іWebPреалізовані режими передбачення[7]:
- Горизонтальне,H_PRED.Кожен стовпець поточного блоку є копією стовпця зліва від поточного блоку.
- Вертикальне,V_PRED.Кожен рядок поточного блоку є копією рядка над поточним блоком.
- DCпередбачення,DC_PRED.Заповнює весь блок однаковими значеннями, отриманими за рахунок усереднення значеньпікселіввищерозміщених рядка і стовпця зліва від поточного блоку.
- Передбачення TrueMotion,TM_PRED.Розроблено в «On2 Technologies». Крім рядка над блоком і стовпця зліва від нього, використовуєтьсяпіксель,розташований зверху-ліворуч від блоку. Різниця між кутовим пікселем і рядком зверху записується в рядки блоку, при цьому до значень додається значення відповідного пікселя зі стовпця. Xij= Стовпецьi+ Рядj- кутовий піксель.
- Для блоків 4x4 реалізовано 6 додаткових режимів, схожих зV_PREDіH_PRED,але з діагональними напрямками.
Для стиснення помилок передбачення і підблоків, які не були передбачені, використовується дискретне косинусне перетворенняDCT(і, зрідка,перетворення Волша–Адамара,WHT). Обидва перетворення працюють з підблоками розміром 4х4 пікселя. Реалізація перетворень виконана на представленні чисел з фіксованою точністю, щоб зменшити помилки округлення.[8]КоефіцієнтиDCTіWHTпакуютьсяентропійних кодеком.
WebP не працює в колірному просторіRGB,перед кодуванням зображення переводиться вYUVз глибиною 8 біт і форматом 4:2:0. Перетворення здійснюється відповідно до стандартуITU-R BT.601.[8]
Для деяких зображень може використовуватися алгоритм upscaling, коли кодується не саме зображення, а його відмасштабована (зменшена) версія. Декодер проводить зворотне перетворення (збільшення зображення).[8]
Перегляд зображень у форматі WebP підтримуєтьсябраузерамиGoogle Chrome(починаючи з 9 версії)[9]іOpera(починаючи з версії 11.10)[10].
Androidпідтримує читання і запис WebP зображень починаючи з версії 4.0.[10]
За допомогою спеціальноїjavascript—бібліотеки можливе відтворення в браузерах, що підтримують відео у форматіWebM,зокрема, вFirefox4.0 і новіших.[11][12]
Існує також порт бібліотекиlibwebpпід назвоюlibwebpjs/libwebpasнаjavascriptіactionscript,що дозволяє використовувати WebP у всіх популярних браузерах (підтримка IE6+ здійснюється за допомогою додаткового модуляAdobe Flash).[13]
Формат підтримується невеликою кількістю переглядачів зображень. Існує плагін для програмиIrfanView,також webp підтримує програма для перетворення зображеньImageMagickза умови встановлення бібліотеки libwebp.
- ↑WEBP file extension.DotWhat.net.Архіворигіналу за 13 березня 2013.Процитовано 1 жовтня 2010.
- ↑Rabbat, Richard (30 вересня 2010).WebP, a new image format for the Web.Chromium Blog.Google.Архіворигіналу за 13 березня 2013.Процитовано 1 жовтня 2010.
- ↑RIFF Container.Google Code.Google.Архіворигіналу за 13 березня 2013.Процитовано 1 жовтня 2010.
- ↑WebP Home[Архівовано23 березня 2012 уWayback Machine.]:"Did you know?WebP is pronounced «weppy». /(wĕpˈē)/ "
- ↑Компания Google выпустила вторую версию библиотеки с реализацией формата WebP.Архіворигіналуза 1 вересня 2012.Процитовано 31 серпня 2012.
- ↑VideoBits.org — Prediction.Архіворигіналуза 24 листопада 2010.Процитовано 31 серпня 2012.
- ↑абInside WebM Technology: VP8 Intra and Inter Prediction — The WebM Open Media Project Blog.Архіворигіналуза 6 листопада 2010.Процитовано 31 серпня 2012.
- ↑абвhttp://www.webmproject.org/media/pdf/vp8-bitstream.pdf[недоступне посилання з лютого 2019]
- ↑Chrome та малюнки WebP[Архівовано5 листопада 2010 уWayback Machine.](італ.)
- ↑Opera 11.10 gets WebP support, faster «Turbo» mode.Архіворигіналуза 7 травня 2012.Процитовано 31 серпня 2012.
- ↑antimatter15/weppy — GitHub.Архіворигіналуза 19 жовтня 2010.Процитовано 31 серпня 2012.
- ↑Weppy Demo.Архіворигіналуза 11 серпня 2011.Процитовано 31 серпня 2012.
- ↑Бібліотека WebPJS.Архіворигіналуза 14 листопада 2015.Процитовано 31 серпня 2012.