Google выпустил библиотеку libvpx 1.4.0 с улучшенной реализацией кодека VP9

После полутора лет разработки представлен выпуск библиотеки libvpx 1.4.0, в рамках которой развиваются эталонные реализации свободных видеокодеков VP8 и VP9. Код libvpx распространяется под лицензией BSD. Компания Google делегировала неограниченному кругу лиц возможность безвозмездного использования всех патентов, касающихся заложенных к VP8 и VP9 технологий, и отказалась от сбора каких либо отчислений (royalty-free). Кодек VP9 интегрирован в кодовые базы браузеров Chrome и Firefox, а также таких открытых проектов, как VLC, FFmpeg и GStreamer. По результатам внутреннего тестирования кодек VP9 кодирует видео значительно эффективнее (при аналогичном уровне сжатия удаётся упаковать видео с более высоким качеством картинки), чем VP8 или лучшие реализации H.264 high profile, и даже немного обгоняет H.265 (HEVC). Особенностью VP9 также является адаптация декодера для работы на маломощных встраиваемых устройствах и предоставление широкого спектра режимов качества, в том числе для кодирования без потерь. Из задействованных в VP9 новых технологий можно отметить применение новых структур кодирования (квадродеревьев), поддержка использования в качестве суперблоков областей в 32×32 и 64×64 пикселей, возможность трансформации DCT (8×8, 16×16) и ADST (4×4, 8×8, 16×16), улучшенный алгоритм предсказания межкадровых изменений, улучшенная модель энтропийного кодирования, новые методы объединения схожих блоков в сегменты.

Основные новшества libvpx 1.4.0:

По умолчанию включен режим многопоточного кодирования, распределяющий работу на несколько ядер CPU. Доступно два режима распределения заданий по потоком: мозаичное кодирование, с разделением картинки на несколько блоков, каждый из которых обрабатывается в разном потоке, и разбиение на кадры, при котором разные кадры обсчитываются в разных потоках; Добавлены дополнительные опции для управления кодеком VP9; Значительно улучшены алгоритмы кодирования VP9; Добавлена поддержка цветовых пространств YUV 4:2:2 и 4:4:4, а также режимов с 10- и 12-битами на цветовой канал; Проведена дополнительная оптимизация функций кодирования и декодирования VP9; Поддержка 64-разрядных платформ ARM; Нарушение совместимости с выпуском 1.3 на уровне ABI (вызовы IMG_FMT_* заменены на VPX_IMG_FMT_*). Удалена функция obj_int_extract. Из планов на будущее отмечается усовершенствование средств для кодирования потоков в режиме реального времени и экспериментирование с многопоточным декодированием.

© OpenNet