GoPro перевёл видеокодек CineForm в разряд открытых проектов
Компания GoPro открыла исходные тексты с реализацией видеокодека CineForm, применяемого в профессиональном оборудовании для видеосъемки. Исходные тексты CineForm SDK опубликованы на gitHub под двумя лицензиями Apache 2.0 и MIT. Кодек теперь можно свободно интегрировать в любые продукты без оплаты отчислений и расширять его функциональность, например, добавлять поддержку новых форматов изображений или вносить оптимизации. В ближайшее время ожидается интеграция CineForm в открытые видеопроигрыватели и пакеты перекодирования видео, без необходимости связывания с проприетарными бинарными библиотеками
CineForm предлагает 12-разрядный формат сжатия видео с использованием вейвлет-преобразования. Кроме полноценной реализации кодировщика и декдировщика, а также демонстраций для встраивания поддержки CineForm в приложения, в репозитории также опубликован код упрощённого варианта (WaveletDemo), который может применяться для изучения применения вейвлетов для сжатия видео или как отправная точка для создания новых кодеков. Реализация написана на языках C и C++ и включает ручные оптимизации с использованием инструкций SSE2. Работа SDK проверена в Linux (Ubuntu), Windows и macOS.
Кодек CineForm примечателен тем, что спроектирован для обеспечения высокой скорости кодирования и качества видео, в ущерб результирующему размеру (выбирая из набора «размер, скорость и качество», как правило, остальные кодеки отдают предпочтение связке «размер и качество», жертвуя скоростью кодирования). Высокая скорость кодирования и высокое качество позволило CineForm занять нишу первичного формата для сохранения материалов с видеокамер и профессиональной обработки видео.
Ближайшими конкурентами являются кодеки Avid DNxHD и Apple ProRES, которые, основаны на методе разбиения изображения на части с использованием дискретного косинусного преобразования (DCT), в то время как технология сжатия на основе вейвлетов оперирует изображением как единым целым, позволяя добиться более высокого качества и избавиться от артефактов при одинаковом уровне сжатия.
Кодек поддерживает работу с пиксельными форматами 8/10/16-bit YUV 4:2:2 (прогрессивное и чересстрочное кодирование), 8/10/16-bit RGB 4:4:4, 8/16-bit RGBA 4:4:4:4, 12/16-bit CFA Bayer RAW. Для любого формата может применяться двухканальное кодирование для стереоскопического, 3D и 360°-контента с разрешением выше 4K. Без потери качества кодек оперирует уровнем сжатия в диапазоне между 10:1 и 4:1 — кодек работает в режиме обеспечения постоянного качества, меняя битрейт в зависимости от типов сцен (большинство других кодеков удерживают битрейт, допуская изменение качества).
© OpenNet