Как работает сжатие Видео
Принципы сжатия видео основаны на том, чтобы уменьшить объём данных, сохранив при этом максимально возможное качество изображения. Делается это двумя основными способами: пространственным и временным уменьшением информации.
Базовые принципы
Пространственное уменьшение данных связано с анализом каждого отдельного кадра. Внутри кадра много повторяющихся или похожих элементов — например, большие однотонные области или плавные переходы цвета. Кодек использует математические методы (чаще всего дискретное косинусное преобразование или в современных вариантах вейвлет-преобразование), чтобы представить такие области более компактно.
По сути, это похоже на JPEG-сжатие для изображений: мы убираем избыточные детали, которые человеческий глаз почти не замечает, и тем самым сокращаем размер кадра.
Временное уменьшение данных работает с последовательностью кадров. В видео соседние кадры часто очень похожи друг на друга: фон остаётся неизменным, а движется только часть объектов.
Кодек не хранит каждый кадр целиком, а описывает изменения относительно предыдущего.
Это позволяет значительно сократить объём информации, ведь вместо полного кадра достаточно записать только то, что изменилось.
Отсюда появляются два ключевых типа кадров:
- Intra-frame (I-кадр) — это кадр, закодированный полностью, без опоры на другие. Он служит как точка отсчёта, и его можно воспроизвести отдельно.
- Inter-frame (P-кадр, B-кадр) — это кадры, которые кодируются на основе других. P-кадры используют данные из предыдущих, а B-кадры — из предыдущих и последующих одновременно. Они содержат только информацию о различиях, что делает их гораздо легче по размеру.
Таким образом, комбинация пространственного и временного уменьшения данных позволяет кодеку эффективно балансировать между качеством и степенью сжатия: внутри кадра убирается лишняя детализация, а между кадрами сохраняются только изменения.
Разница между сжатым и не сжатым видео
Сжатие данных делится на два больших подхода — с потерями и без потерь, и они применяются в разных ситуациях в зависимости от того, что важнее: качество или экономия места.
Сжатие без потерь
Сохраняет всю исходную информацию. После декодирования данные полностью совпадают с оригиналом, без малейших изменений. Такой метод используется там, где точность критична: например, в текстовых документах, программном коде, базах данных или архивных форматах вроде ZIP и RAR.
В видео и аудио без потерь тоже встречается — например, форматы FLAC для музыки или Apple ProRes для видео — но они занимают гораздо больше места и требуют больше ресурсов для хранения и передачи.
Ограничение здесь очевидное: файлы остаются крупными, поэтому без потерь применяют только тогда, когда качество важнее всего.
Сжатие с потерями
Сжатие с потерями работает иначе: оно убирает часть информации, которая считается несущественной для восприятия человеком.
В аудио это могут быть звуки за пределами слышимого диапазона, в изображениях — мелкие цветовые нюансы, в видео — детали, которые глаз почти не различает.
Такой подход позволяет значительно уменьшить размер файлов, но при многократном пересжатии или слишком сильной компрессии качество заметно падает.
Потерянное сжатие используется повсеместно: H.264 или HEVC кодеки являются самыми распостраненными.
Ограничение здесь в том, что восстановить оригинал невозможно — часть данных навсегда исчезает.
В итоге выбор между этими методами зависит от задачи: если нужно архивировать мастер-записи или хранить юридически важные документы, применяют без потерь; если же приоритет — компактность и удобство передачи, используют потерянное сжатие.
Эффективность современных кодеков
Современные кодеки развиваются от H.264 к более эффективным H.265, VP9, AV1 и VVC. Каждый новый шаг даёт лучшее качество при меньшем битрейте, но требует больше вычислительных ресурсов и поддержки со стороны устройств и платформ.
Кодеки
H.264 (AVC)
Cамый распространённый и универсальный кодек. Он обеспечивает хорошее качество при умеренном битрейте и поддерживается практически всеми устройствами и браузерами. Ограничение: по современным меркам он менее эффективен, особенно для 4K и стриминга.
H.265 (HEVC)
Преемник H.264, даёт примерно в два раза лучшее сжатие при том же качестве. Используется в 4K‑видео, Blu‑ray UHD и стриминге. Минус — лицензирование и высокая нагрузка на процессор при кодировании.
VP9
Разработка Google как альтернатива HEVC. Бесплатный и открытый, широко применяется в YouTube. Эффективность близка к H.265, но кодирование медленнее.
AV1
Новый открытый стандарт от консорциума AOMedia (Google, Netflix, Microsoft и др.). Он обеспечивает на 30–40% лучшее сжатие по сравнению с VP9 и HEVC, особенно для 4K и HDR. Ограничение: кодирование очень тяжёлое, но постепенно появляется аппаратная поддержка в видеокартах и процессорах.
VVC (H.266)
Самый свежий стандарт, разработанный Fraunhofer. Обещает до 50% экономии битрейта относительно HEVC при том же качестве. Идеален для 8K, VR и стриминга будущего. Ограничение: пока мало аппаратной поддержки и сложное лицензирование.
Сравнение компрессии
Full HD фильм (два часа)
| Кодек | Битрейт (Мбит/с) | Размер файла |
|---|---|---|
| H.264 | ~9 | 9 ГБ |
| H.265 | ~4.5 | 4.5 ГБ |
| VP9 | ~5 | 5 ГБ |
| AV1 | ~3.5 | 3.5 ГБ |
| VVC | ~2.5 | 2.5 ГБ |
Короткий ролик в 4K (десять минут)
| Кодек | Битрейт (Мбит/с) | Размер файла |
|---|---|---|
| H.264 | ~40 | 3.5 ГБ |
| H.265 | ~20 | 1.7 ГБ |
| VP9 | ~22 | 2 ГБ |
| AV1 | ~12 | 1.1 ГБ |
| VVC | ~9 | 0.8 ГБ |
Онлайн‑стриминг Full-HD (один час)
| Кодек | Битрейт (Мбит/с) | Размер файла |
|---|---|---|
| H.264 | ~5 | 2.2 ГБ |
| H.265 | ~2.5 | 1.1 ГБ |
| VP9 | ~3 | 1.3 ГБ |
| AV1 | ~2 | 0.9 ГБ |
| VVC | ~1.5 | 0.7 ГБ |
Роль формата в сжатии видео
Разница в результате сжатия от формата контейнера практически отсутствует. Контейнер — это всего лишь «оболочка», которая объединяет внутри себя видеопоток, аудиопоток, субтитры и служебные данные. Он не занимается самим процессом сжатия, а лишь определяет, как эти элементы будут храниться и синхронизироваться.
Сжатие и качество видео определяются именно кодеком, который работает с кадрами и последовательностями, уменьшая объём данных. Контейнер же только «упаковывает» результат работы кодека. Например, один и тот же видеопоток, закодированный H.265, может быть сохранён в MP4, MKV или MOV — и качество, и степень сжатия будут одинаковыми, потому что они зависят от кодека, а не от контейнера.
Разница может проявляться лишь в удобстве использования:
- некоторые контейнеры поддерживают больше функций (например, MKV легко хранит несколько дорожек субтитров и аудио)
- другие лучше совместимы с устройствами и программами (MP4 воспроизводится почти везде)
Иными словами, контейнер влияет на совместимость и функциональность, но не на эффективность сжатия.