Lossless
В работе с видео, в отличие от работы с изображениями, крайне редко встречаются кодеки без потери качества (lossless). Тем не менее, есть ситуации, когда размер файла не имеет решающего значения, но крайне важно обеспечить сохранение качества изображения при многократном сохранении. Это в первую очередь относится к области профессионального, в т.ч. кинематографического, производства, работе с эффектами и компьютерной графикой для кино.
На этой странице приводятся примеры кодеков с полным сохранением качества (не путайте с RAW, где сохраняется вся информация, получаемая с камеры). Lossless видеокодеки обеспечивают полное восстановление исходного видео без потерь качества.
HuffYUV
HuffYUV – один из первых lossless видеокодеков, разработанный Microsoft Research. Он использует комбинацию методов сжатия без потерь, таких как Huffman coding и Differential Pulse Code Modulation (DPCM).
-
Алгоритм:
Использует предсказание пикселей на основе соседних пикселей и последующую компрессию разностей с помощью Huffman coding. Это позволяет значительно уменьшить объем данных за счет того, что различия между соседними пикселями обычно невелики. -
Формат:
Поддерживает RGB24, YUY2, UYVY и другие форматы. -
Пример использования в FFmpeg:
ffmpeg -i input.mp4 -c:v huffyuv output.avi -
Пример использования в GStreamer:
gst-launch-1.0 filesrc location=input.mp4 ! decodebin ! videoconvert ! avenc_huffyuv ! avimux ! filesink location=output.avi
Lagarith
Lagarith – еще один популярный lossless видеокодек, который обеспечивает высокую степень компрессии благодаря использованию арифметического кодирования.
-
Алгоритм:
кодек основан на предсказании значений пикселей, используя информацию о предыдущих кадрах. Для хранения остаточных ошибок применяется arithmetic encoding, которое может достигать высокой степени сжатия. -
Формат:
Поддержка RGB24, YUY2, YV12 и других форматов. -
Пример использования в FFmpeg:
ffmpeg -i input.mp4 -c:v lagarith output.avi -
Пример использования в GStreamer:
gst-launch-1.0 filesrc location=input.mp4 ! decodebin ! videoconvert ! avenc_lagarith ! avimux ! filesink location=output.avi
MSU Lossless Video Codec
MSU Lossless Video Codec – разработка Московского государственного университета. Этот кодек оптимизирован для работы с большими потоками данных и предлагает высокую скорость декомпрессии.
-
Алгоритм:
Основан на использовании предсказания и последующего применения адаптивного арифметического кодера. Алгоритм также включает использование различных фильтров для улучшения предсказаний. -
Формат:
Поддерживается широкий спектр форматов, включая RGB24, YUY2, YV12 и многие другие. -
Пример использования в FFmpeg:
ffmpeg -i input.mp4 -c:v msvideo1 output.avi -
Пример использования в GStreamer:
gst-launch-1.0 filesrc location=input.mp4 ! decodebin ! videoconvert ! avenc_msvideo1 ! avimux ! filesink location=output.avi
Сравнение
Основные отличия этих кодеков заключаются в используемых методах сжатия и скорости обработки.
- HuffYUV быстрее, но менее эффективен в плане сжатия.
- Lagarith медленнее, но дает лучшую компрессию.
- MSU Lossless находится посередине, предлагая баланс между скоростью и качеством сжатия.