Порядок, в котором данные лежат в именованной области памяти. Один и тот же растр можно записать по-разному. Алгоритм сжатия — не синоним формата: JPEG-сжатие спокойно живёт внутри TIFF.
Форматы и сжатие
На Ф06 кадр стал сеткой чисел. Сегодня — как эти числа упаковать в файл, чтобы не путать формат, алгоритм и расширение. Жёлтым — в тетрадь. Для билета: JPEG / TIFF / PNG / RAW, потери / без потерь, метаданные, объём несжатого.
1. Формат, алгоритм, расширение, контейнер
Метод шире алгоритма: идея RLE одна, реализаций несколько. Расширение (.jpg, .tif) — подсказка ОС, не содержимое: переименуете JPEG в .exe — Photoshop даже не полезет внутрь. Кодек — программа, которая умеет алгоритм. Контейнер (в видео) — кто с кем может жить в одном файле: потоки, субтитры, какие кодеки дозволены.
Графический формат задаёт размер файла и то, что вы ещё сможете отредактировать. Растр / вектор / смесь; «универсальные» BMP GIF JPEG TIFF WebP против «родных» PSD AI CDR.
2. Растровые форматы, которые спрашивают
BMP. Заголовок + пиксели. RGB, обычно до 8 бит/канал, прозрачности нет (четвёртый байт в 32-битном BMP зарезервирован). Сжатие — разве что RLE. Формат Microsoft, для веба и архива съёмки бесполезен.
GIF. Палитра 256 цветов (8 бит), сжатие LZW без потерь, один цвет можно объявить прозрачным, есть анимация. Контуры и схемы — да; фото — нет, цвета кончатся.
Joint Photographic Experts Group: полноцвет, сжатие с потерями (есть и lossless-ветка, ею почти никто не пользуется), прозрачности нет, есть EXIF. Лидер хранения и передачи фото с середины 1990-х. Расширения .jpg .jpeg .jfif. JPEG 2000 лучше сжимает и умеет прозрачность, но экосистема его не приняла.
Portable Network Graphics: Deflate без потерь, палитры и глубокий цвет, полноценный альфа-канал, метаданные. Тяжелее JPEG на фото, незаменим на схемах, тексте-картинкой и интерфейсе. Есть APNG/MNG с анимацией.
Tagged Image File Format: теги, много цветовых моделей и профилей, маски, многостраничность (факсы). Сжатие на выбор: без потерь (RLE, LZW, ZIP) или JPEG внутри контейнера — потери от этого не исчезают. Полиграфия, GeoTIFF (проекция, датум, аффинное преобразование — NASA/картография).
PSD — рабочий проект Photoshop (слои, текст, вектор, даже 3D). В веб и в архив АФС не сдают. SVG — открытый XML-вектор для веба; SVGZ — тот же, но zip.
3. RAW и метаданные
Не «формат», а семейство сырых отсчётов матрицы после АЦП. Общего стандарта нет: у каждого производителя своя обвязка. DNG (Adobe) — попытка общего контейнера. Напрямую «открыть как JPEG» нельзя: нет ещё ББ, кривой, резкости. Шире по битности (часто 12–14 против 8 у JPEG), больше запас в светах. Но дискретизация и квантование уже случились: это не аналоговый негатив.
Данные о данных: камера, выдержка, диафрагма, ISO, вспышка, f, ориентация, ББ, иногда координаты. Их пишет процессор в JPEG/TIFF/RAW. Для АФС это не украшение: без времени и параметров серии трудно собрать блок.
4. Сжатие с потерями и без
После распаковки каждый пиксель совпадает с исходным. RLE (серии повторов: WWWWW → W5), LZW (словарь подстрок, GIF/TIFF), Deflate (LZ77 + Хаффман, PNG). На фото типичный выигрыш скромный: 1,5–4 раза, если повезёт.
Выбрасываем то, чего глаз (или задача) почти не заметит. JPEG, WebP, HEIF/HEVC, BPG. Не для метрик по пикселю и не для архива, с которого ещё посчитаете стерео.
Код — конечная последовательность бит; длина кода — сколько бит. Хаффман: частым символам короткий код, редким — длинный. Дельта-кодирование: храним разницу с соседом, не абсолют.
Для фотограмметрии правило простое: серия для модели — TIFF без потерь или RAW; показ заказчику — JPEG. Пересохранить JPEG десять раз — накрутить артефакты 8×8.
5. Конвейер JPEG (lossy)
- RGB → YCbCr: яркость отдельно от цветности.
- Субдискретизация цвета (часто 4:2:0 / 4:2:2): цветности меньше отсчётов, чем у Y. Глаз к положению цвета слепее, чем к яркости. 4:2:2 занимает примерно ⅔ от 4:4:4.
- Кадр режут на блоки 8×8, ДКП: низкие частоты (смысл) в левый верх, высокие (шум, мелкий контраст) — в правый низ.
- Квантование коэффициентов — здесь крутят «качество» и теряют информацию.
- Зигзаг в строку, RLE нулей, Хаффман.
Недостатки, которые видно на слайде: сетка 8×8, нет прозрачности, прямой проход (прогрессивный JPEG / PJPEG отдаёт картинку «сначала грубо»). WebP: предсказание блоков, часто на 25–40% легче JPEG, умеет альфу и lossless; 8 бит/канал. BPG на HEVC красивее, лицензии мешают.
6. Вектор, PDF, даты
PS/EPS, WMF, AI, CDR, DWG — знать, что это привязано к программам и версиям (Corel особенно злопамятен к старому файлу). PDF — «электронная распечатка»: разные типы данных сжимаются по-разному, верстка в нём не Word. DjVu — сканы книг, текст/ил/фон кодируются отдельно.
Порядок появления, чтобы не врать на зачёте: TIFF 1986, BMP/GIF ~1987, JPEG 1991, PNG 1996, JPEG 2000, WebP 2010.
7. Вопросы
- Чем формат отличается от алгоритма сжатия? Пример, где они не совпадают.
- JPEG, TIFF, PNG, RAW: потери, прозрачность, типичная задача.
- Почему RAW — не формат? Что в нём уже сделал АЦП, чего ещё нет?
- Зачем в JPEG отделяют Y от цветности и режут 8×8?
- Вес несжатого RGB 8 бит, 3000×2000. После JPEG 1,2 МБ. Какой коэффициент и что потеряли?
- Какой формат для стереопары, с которой ещё построите модель?
Литература
Основная
- Ф06. АЦП и виды графики — откуда берутся числа, которые мы сжимаем
- ITU-T T.81 / ISO/IEC 10918-1. JPEG — конвейер кодирования (для тех, кто полезет в матрицы квантования)
Дополнительная
- JPEG Compression. Cambridge in Colour
- Adobe DNG — попытка общего RAW
- FileInfo: raster image types