WebP: відмінності між версіями

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Створена сторінка: '''WebP''' (вимовляється як {{lang-en|weppy}}[4]) — формат стиснення зображень з втратами і без втрат ...
 
Рядок 25: Рядок 25:
== Підтримка ==
== Підтримка ==


Перегляд зображень у форматі WebP підтримується [[браузер]]ами [[Google Chrome]] (починаючи з 9 версії)[8] і [[Opera]] (починаючи з версії 11.10)[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 і новіших.[11][12]
За допомогою спеціальної [[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]]).[13]
Існує також порт бібліотеки 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]

Виноски

  1. Chrome та малюнки WebP(італ.)
  2. Opera 11.10 gets WebP support, faster «Turbo» mode
  3. antimatter15/weppy — GitHub
  4. Weppy Demo
  5. Бібліотека WebPJS

Посилання