WebP: відмінності між версіями
[перевірена версія] | [перевірена версія] |
Deineka (обговорення | внесок) Створена сторінка: '''WebP''' (вимовляється як {{lang-en|weppy}}[4]) — формат стиснення зображень з втратами і без втрат ... |
Deineka (обговорення | внесок) |
||
Рядок 25: | Рядок 25: | ||
== Підтримка == |
== Підтримка == |
||
Перегляд зображень у форматі WebP підтримується [[браузер]]ами [[Google Chrome]] (починаючи з 9 версії)[ |
Перегляд зображень у форматі WebP підтримується [[браузер]]ами [[Google Chrome]] (починаючи з 9 версії)<ref>[http://www.nicoladagostino.net/chrome-e-le-immagini-webp.html Chrome та малюнки WebP]{{ref-it}}</ref> і [[Opera]] (починаючи з версії 11.10)<ref name="opera111">[http://arstechnica.com/web/news/2011/04/opera-1110-gets-webp-support-faster-turbo-mode.ars Opera 11.10 gets WebP support, faster «Turbo» mode]</ref>. |
||
[[Android]] підтримує читання і запис WebP зображень починаючи з версії 4.0.[10] |
[[Android]] підтримує читання і запис WebP зображень починаючи з версії 4.0.[10] |
||
За допомогою спеціальної [[javascript]] -бібліотеки можливе відтворення в браузерах, що підтримують відео у форматі [[WebM]], зокрема, в [[Firefox]] 4.0 і новіших.[ |
За допомогою спеціальної [[javascript]] -бібліотеки можливе відтворення в браузерах, що підтримують відео у форматі [[WebM]], зокрема, в [[Firefox]] 4.0 і новіших.<ref>[http://github.com/antimatter15/weppy/ antimatter15/weppy — GitHub]</ref><ref>[http://antimatter15.github.com/weppy/demo.html Weppy Demo]</ref> |
||
Існує також порт бібліотеки libwebp під назвою libwebpjs/libwebpas на [[javascript]] і [[actionscript]], що дозволяє використовувати WebP у всіх популярних браузерах (підтримка IE6+ здійснюється за допомогою додаткового модуля [[Adobe Flash]]).[ |
Існує також порт бібліотеки libwebp під назвою libwebpjs/libwebpas на [[javascript]] і [[actionscript]], що дозволяє використовувати WebP у всіх популярних браузерах (підтримка IE6+ здійснюється за допомогою додаткового модуля [[Adobe Flash]]).<ref>[http://webpjs.appspot.com/ Бібліотека WebPJS]</ref> |
||
== Виноски == |
== Виноски == |
Версія за 17:39, 31 серпня 2012
WebP (вимовляється як англ. weppy[4]) — формат стиснення зображень з втратами і без втрат якості, запропонований компанією Google Inc. у 2010 році. Заснований на алгоритмі стиснення нерухомих зображень (ключових кадрів) з відеокодека VP8. Використовує контейнер RIFF.
Для роботи з даним форматом існують відкриті бібліотека (libvpx) і конвертор (webpconv). Зміст [показать]
Алгоритм
Стиснення складається з двох етапів. На першому робиться спроба «передбачити» вміст одних блоків за вже декодуваними (три блоки над поточним і один блок ліворуч від нього), на другому кодується помилка передбачення. Блоки відмальовуються в порядку зліва направо і зверху вниз.[5] Режими передбачення працюють з 3 розмірами макроблоків[6]
- 4x4 в каналі яскравості
- 16x16 в каналі яскравості
- 8x8 в каналі кольоровості
У VP8 і WebP реалізовані режими передбачення:[6]
- Горизонтальне, 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 пікселя. Реалізація перетворень виконана на представленні чисел з фіксованою точністю, щоб зменшити помилки округлення.[7] Коефіцієнти DCT і WHT пакуються ентропійних кодеком.
WebP не працює в колірному просторі RGB, перед кодуванням зображення переводиться в YUV з глибиною 8 біт і форматом 4:2:0. Перетворення здійснюється відповідно до стандарту ITU-R BT.601.[7]
Для деяких зображень може використовуватися алгоритм upscaling, коли кодується не саме зображення, а його відмасштабована (зменшена) версія. Декодер проводить зворотне перетворення (збільшення зображення).[7]
Підтримка
Перегляд зображень у форматі WebP підтримується браузерами Google Chrome (починаючи з 9 версії)[1] і Opera (починаючи з версії 11.10)[2].
Android підтримує читання і запис WebP зображень починаючи з версії 4.0.[10]
За допомогою спеціальної javascript -бібліотеки можливе відтворення в браузерах, що підтримують відео у форматі WebM, зокрема, в Firefox 4.0 і новіших.[3][4]
Існує також порт бібліотеки libwebp під назвою libwebpjs/libwebpas на javascript і actionscript, що дозволяє використовувати WebP у всіх популярних браузерах (підтримка IE6+ здійснюється за допомогою додаткового модуля Adobe Flash).[5]