После полутора лет разработки представлен выпуск библиотеки libvpx 1.4.0, в рамках которой развиваются эталонные реализации свободных видеокодеков VP8 и VP9. Код libvpx распространяется под лицензией BSD. Компания Google делегировала неограниченному кругу лиц возможность безвозмездного использования всех патентов, касающихся заложенных в VP8 и VP9 технологий, и отказалась от сбора каких-либо отчислений (royalty-free).

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

Основные новшества 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.

Из планов на будущее отмечается усовершенствование средств для кодирования потоков в режиме реального времени и экспериментирование с многопоточным декодированием.

Источник: http://www.opennet.ru/opennews/art.shtml?num=41972