Разработчики FFmpeg написали собственный декодер для видеокодека VP8
28 июня 2010 года
Разработчики проекта FFmpeg написали с нуля собственную реализацию декодера для видеокодека VP8, в мае открытого компанией Google. Примечательно, что благодаря использованию уже присутствующих в FFmpeg типовых функций, декодер уместился в 1400 строк на языке Си, включая комментарии и пустые строки, плюс 450 строк для задействования функций DSP. Для сравнения, оригинальный декодер libvpx от Google насчитывает около 11 тыс. строк кода. Корректность работы нового декодера была проверена с использованием специального тестового комплекта для VP8, выходной поток оказался бинарно идентичен с эталонным потоком.
Среди достоинств нового декодера названа тесная интеграция с общей кодовой базой FFmpeg. По словам разработчиков, возможна не только организация совместного использования кода для всей серии кодеков VPx (у VP8 много общего с VP5/6/7), но и совместное использование некоторых высоко оптимизированных функций, используемых для обеспечения работы H.264 и Theora. В настоящий момент разработчики занялись оптимизацией производительности нового декодера и поставили перед собой цель обогнать по скорости декодирования эталонную реализацию libvpx, развиваемую компанией Google.
В процессе работы участники проекта FFmpeg отметили несколько проблем: спецификация охватывает только основной профиль VP8, логику работы некоторых расширенных функций приходилось улавливать из исходных текстов; libvpx изобилует ассемблерными оптимизациями, назначение некоторых из которых не совсем понятно, например, есть код, который не компилируется или не используется (например, для архитектуры PPC).
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.