Лаборатория сравнения форматов

Сравнение сжатия текстур

Закодируйте одно изображение в BC, ETC, ASTC и Basis Universal теми же кодировщиками, что и наши инструменты, и сравните качество, размер файла и видеопамять по реальным измерениям.

1

Исходное изображение

Перетащите изображение сюда или выберите файл

Загрузка изображения…

Рабочий размер (длинная сторона)

Крупные изображения только уменьшаются, но не увеличиваются, и обрезаются до целых блоков 4×4.

Изображения не покидают ваш браузер.

2

Форматы

Выбрано: 8
ПК · BC
Мобильные · ETC
Мобильные · ASTC
Универсальные · Basis

Каждый формат кодируется и декодируется в фоновом воркере.

3

Результаты

Выберите форматы и запустите сравнение, чтобы увидеть здесь измерения.

Как читать результаты

PSNR (дБ)

Пиковое отношение сигнала к шуму по R, G и B. Каждые 3 дБ примерно вдвое уменьшают квадратичную ошибку. Выше примерно 40 дБ разницу трудно заметить; ниже примерно 30 дБ артефакты обычно очевидны.

SSIM

Структурное сходство по яркости, от 0 до 1. Лучше PSNR замечает размытие и блочность, но не учитывает сдвиги цвета, поэтому смотрите на обе метрики вместе.

Видеопамять

Сколько занимает текстура после загрузки, без мип-уровней. Зависит только от формата и размера; полная цепочка мип-уровней добавляет около 33%.

Размер файла

Закодированный контейнер на диске. Файлы Basis суперсжаты и могут быть намного меньше, чем их объём в GPU; файлы DDS, PKM и ASTC — это данные GPU плюс небольшой заголовок.

Сетка блоков

Увеличьте масштаб и включите сетку, чтобы увидеть границы блоков. Артефакты вдоль сетки появляются из-за решений, которые кодировщик принял для каждого блока.

Настройки кодировщика

Каждый формат использует настройки по умолчанию со своей страницы кодировщика, например ASTC с качеством medium. Для финальных ресурсов откройте нужный кодировщик и настройте качество, цветовое пространство и мип-уровни.

Частые вопросы

Совпадают ли эти результаты с настоящими кодировщиками?

Да. Инструмент запускает те же кодировщики и декодеры WebAssembly, что и наши страницы кодирования и декодирования, и измеряет декодированные пиксели. GPU может округлять некоторые форматы немного иначе, поэтому разницу меньше примерно 1 дБ считайте ничьей.

Почему видеопамять для Basis Universal указана приблизительно?

Файлы Basis перекодируются на каждом устройстве. ETC1S обычно превращается в BC1 или ETC1 с 4 битами на тексель, а UASTC — в BC7 или ASTC 4×4 с 8 битами на тексель. Качество здесь измеряется на прямом декодировании в RGBA; перекодирование в формат GPU может добавить небольшую потерю.

Как обрабатываются изображения с прозрачностью?

Альфа сохраняется и измеряется в отдельном столбце PSNR. Форматы, которые не могут её сохранить, отмечены в списке: кодировщик BC1 отклоняет прозрачные изображения, а ETC1 и ETC2 RGB отбрасывают альфу. Для прозрачных текстур используйте BC3, BC7, ETC2 RGBA, ASTC или Basis.

Мои изображения куда-то загружаются?

Нет. Изображения декодируются, кодируются и измеряются в вашем браузере, и ничего не отправляется на сервер.