WebP - це формат зображень, опублікований Google, щоб зробити вебсторінки легшими. Його режим із втратами був створений на основі методів кодування статичних зображень усередині VP8, формату стиснення відео, з міркувань, що фотографія по суті є одним кадром відео; незабаром після першого релізу з’явилися режим без втрат, прозорість і анімація. Мета WebP - охоплення: один формат, покликаний замінити JPG, PNG та анімований GIF і виконувати кожну з цих задач з меншим розміром файлу. Усі актуальні основні браузери його відображають, тому зображення, збережені з сучасного вебсайту, так часто мають розширення .webp.
Як WebP зберігає своє зображення
WebP - це контейнер, зібраний із позначених фрагментів (chunks), і вміст цих фрагментів визначає, як поводиться файл, тому що існують два зовсім різні механізми стиснення:
- WebP із втратами (lossy WebP) працює як ключовий кадр відео. Він передбачає кожен блок пікселів за його сусідами, зберігає лише різницю, перетворює цю різницю на частотні значення та заокруглює їх. Частина інформації відкидається, тому WebP із втратами неможливо відновити до вихідних пікселів, а повторне збереження знову і знову накопичує пошкодження, так само як із JPG.
- WebP без втрат (lossless WebP) - це зовсім інший метод. Він шукає повторювані візерунки та кольори по всьому зображенню, веде невеликий кеш нещодавно використаних кольорів і компактно кодує результат. Нічого не відкидається, тому він конкурує з PNG, а не з JPG.
У будь-якому режимі можна використати повний альфа-канал, тож працює часткова прозорість, причому прозорість можна зберігати без втрат, а кольори - зі втратами; такої комбінації не пропонують ані JPG, ані PNG. Анімація - це послідовність кадрів в одному контейнері, кожен із власним таймингом і повним кольором, що знімає обмеження GIF у 256 кольорів. Варто пам’ятати про одну жорстку межу: розмір WebP не може перевищувати 16383 пікселі в будь-якому напрямку, тож дуже великі скани та довгі панорами просто не помістяться.
Які метадані містить WebP
WebP не запроваджує власну схему метаданих. Метадані - це описова інформація, що зберігається поряд із пікселями, і контейнер WebP тримає її в необов’язкових фрагментах, які несуть чинні стандарти. Звіт показує всі наявні з них:
- Фрагмент EXIF, що містить той самий блок даних про камеру, який ви знайдете в JPG:
Make,Model,DateTimeOriginal,ExposureTime,FNumber,ISOSpeedRatings,FocalLength,LensModelіOrientation, а також групу GPS із широтою, довготою та висотою. - Фрагмент XMP, що містить XML-метадані Adobe: автор, заголовок, опис, ключові слова, оцінки, заяви про права та історія змін.
- Фрагмент ICC-профілю, який описує колірний простір, до якого належать числові значення.
Для IPTC, старішого видавничого стандарту, окремого блоку немає, тому поля IPTC зберігаються під час конвертації в WebP лише в тому разі, якщо конвертер переписує їх у XMP.
На практиці це означає, що WebP часто взагалі не містить метаданих. Консольні та серверні енкодери видаляють метадані, якщо їх явно не вказати зберегти, а зображення, які сайт обробляє автоматично, зазвичай виходять повністю «голими». Втім, це не гарантія. WebP, створений із фото телефона конвертером, що зберігає метадані, переносить початкову модель камери, час зйомки та координати GPS без змін. Якщо файл важливий, перегляньте звіт, а не припускайте, що конвертація все очистила.
Коли використовувати WebP
Використовуйте WebP для зображень на вебсайті, саме для цього його й розроблено: менше байтів для того самого зображення, із прозорістю, фотографіями та короткими анімаціями в одному форматі. WebP із втратами замінює JPG, WebP без втрат - PNG для плоскої графіки, а анімований WebP - анімований GIF із набагато кращою передачею кольору.
Поза браузером це слабший вибір. Настільні програми, поліграфічні процеси, офісне ПЗ та старі пристрої можуть його не відкрити, тому WebP незручно надсилати електронною поштою або на друк, і там безпечним стандартом залишаються JPG та PNG. Конвертація наявного JPG у WebP із втратами означає повторне кодування зображення, яке вже одного разу втратило деталі, тож другий прохід ще більше погіршує якість. Конвертуйте з найкращого оригіналу, який у вас є, а не з файлу, який вам уже хтось надіслав.