|
Состоялся выпуск библиотеки OpenAPV 1.1.1.0, предоставляющей эталонную реализацию видеокодека APV (Advanced Professional Video), предназначенного для профессиональной записи и обработки видео без различимой потери качества. Версия OpenAPV 1.1.1.0 отмечена как первый релиз в серии 1.0. Код библиотеки написан на языке С и распространяется под лицензией BSD. Проект развивает организация Academy Software Foundation, созданная для продвижения использования открытого ПО в процессе создания фильмов.
Формат APV обеспечивают высокую пропускную способность и низкую сложность внутрикадрового кодирования, необходимые монтажным кодекам (среди них Apple ProRes и Avid DNxHD), а также отсутствие видимого снижения качества при повторном кодировании. Поддерживаются разрешения 2K, 4K и 8K, стандарт HDR10/10+ для использования расширенного динамического диапазона в видео, разбивка кадров (tiling) для распараллеливания кодирования/декодирования, различные форматы дискретизации цвета, многоракурсное видео (multi-view), добавление метаданных (глубина, прозрачность, данные для предпросмотра). Для ускорения работы в библиотеке OpenAPV поддерживается многопоточное кодирование и декодирование, а также задействованы оптимизации с использованием расширенных наборов команд NEON (ARM) и SSE/AVX (x86).
В новой версии:
- Добавлены новые функции выборочного декодирования oapvd_decode_auinfo(), oapvd_decode_frame(), oapvd_decode_tiles() и
oapvd_decode_metadata(), а также функции получения информации
oapvd_info_pbu(), oapvd_info_frame() и oapvd_info_tile().
- Предложены дополнительные профили, допускающие нестандартную разбивку кадра на раздельно декодируемые блоки (tile). Использование блоков меньшего размера даёт возможность усилить распараллеливание обработки кадра и точечно декодировать отдельные части кадра. Профили реализованы для разных форматов цветовой субдискретизации и глубины цвета - 422-10-UNCONST (4:2:2, 10 бит), 422-12-UNCONST, 444-10-UNCONST (4:4:4, 10 бит), 444-12-UNCONST (4:4:4, 12 бит), 4444-10-UNCONST (4:4:4+прозрачность, 10 бит), 4444-12-UNCONST (4:4:4+прозрачность, 12 бит) и 400-10-UNCONST (4:0:0, 10 бит).
- Добавлена возможность подключения собственных функций выделения памяти.
- Переделан алгоритм распределения обработки блоков по разным CPU, сложность вычислений в котором теперь имеет линейную зависимость от числа блоков, а не квадратичную.
- Добавлены варианты функции oapv_blk_to_pic_16(), ускоренные при помощи инструкций AVX2 и NEON, а также вариант функции oapv_dc_removed_had8x8(), ускоренный через инструкции NEON.
|