Введение

Lossless video codec

Huffyuv (или HuffYUV) — это видеокодек без потерь, созданный Беном Рудиаком Гулдом, предназначенный для замены несжатого YCbCr в качестве формата захвата видео. Кодек также может сжимать в цветовом пространстве RGB. «Без потерь» означает, что выходные данные декомпрессора идентичны исходным входным данным компрессора на битовом уровне. Сжатие без потерь возможно только при совпадении цветового пространства сжатия и цветового пространства ввода-вывода. Если цветовые пространства не совпадают, выполняется сжатие с небольшими потерями. Алгоритм Huffyuv аналогичен алгоритму lossless JPEG, поскольку он предсказывает каждый образец, а затем кодирует ошибку кодированием Хаффмана. Предсказание осуществляется только внутри кадра.

Реализация

Первоначальная реализация была написана для Windows Беном Рудиаком Гулдом и опубликована на условиях лицензии GPL. Huffyuv 1.1 был выпущен в 2000 году. Эта реализация считается очень быстрой, обеспечивая скорость сжатия до 38 мегабайт в секунду на процессоре Celeron 416 МГц. Официальный Huffyuv не обновлялся с 2002 года. Huffyuv 2.1.1 с патчем CCESP 0.2.5 был выпущен для устранения проблем, особенно для обеспечения совместимости с Cinema Craft Encoder. Huffyuv 2.2 доступен на некоторых альтернативных сайтах, но о наличии проблем на некоторых компьютерных системах сообщается. Huffyuv MT — это многопоточная версия, использующая другой FourCC-код. В настоящее время разрабатывается форк этого кода под названием Lagarith, который обеспечивает лучшее сжатие, но значительно снижает скорость работы на однопроцессорных системах. Проект FFmpeg также содержит реализацию HuffYUV, позволяющую создавать и воспроизводить файлы HuffYUV в Linux и Mac OS X. Кроме того, это означает, что многие приложения, использующие FFmpeg в качестве основы, также могут воспроизводить и создавать файлы HuffYUV, включая VLC media player, MPlayer и ffdshow. FFmpeg также имеет собственную версию HuffYUV, специфичную для FFmpeg (несовместимую с оригинальной), которая поддерживает более широкий спектр цветовых пространств, включая цветовые пространства с четвертованием цветности и высокую битовую глубину до 48 бит на пиксель.