Academy Software Foundation выпустила OpenAPV 1.1.1.0 — первую стабильную версию эталонной реализации профессионального видеокодека APV.
Библиотека OpenAPV 1.1.1.0 открывает серию 1.0 и представляет собой эталонную реализацию кодека APV (Advanced Professional Video). Код написан на языке C и распространяется под лицензией BSD. Разработкой занимается организация Academy Software Foundation, цель которой — продвижение открытого ПО в кинопроизводстве.
Формат APV ориентирован на монтажные кодеки вроде Apple ProRes и Avid DNxHD: он обеспечивает высокую пропускную способность и малую вычислительную сложность внутрикадрового кодирования, а также исключает заметную деградацию качества при повторном сжатии. Поддерживаются разрешения 2K, 4K и 8K, стандарт HDR10/10+, разбивка кадров на блоки (tiling) для распараллеливания, разные форматы цветовой дискретизации, многоракурсное видео, метаданные (глубина, прозрачность, данные предпросмотра). Ускорение обеспечивают многопоточность и оптимизации под 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, 422-12-UNCONST, 444-10-UNCONST, 444-12-UNCONST, 4444-10-UNCONST, 4444-12-UNCONST и 400-10-UNCONST.
Также добавлена возможность подключать собственные функции выделения памяти. Алгоритм распределения блоков по ядрам CPU переработан: сложность вычислений теперь растёт линейно с числом блоков, а не квадратично. Появились варианты функции oapv_blk_to_pic_16(), ускоренные через AVX2 и NEON, и вариант oapv_dc_removed_had8x8() с ускорением на NEON.
