The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

25.07.2010 13:51  Альтернативная реализация декодера VP8 обогнала по производительности код Google

Разработчик проекта x264, ранее опубликовавший критическую статью, в которой был проведен анализ недостатков открытого компанией Google видеокодека VP8, представил обзор текущего состояния альтернативной свободной реализации декодера VP8 - ffvp8, подготовленной в рамках совместной работы участников проектов FFmpeg и x264. Тестирование производительности показало заметное преимущество кода ffvp8, способного выдать на современных процессорах примерно на 30% больше кадров в секунду при показе видео с разрешением 1080p.

Небольшой отрыв в скорости на процессорах Atom объясняется тем, что разработчики ffvp8 еще не приступили к оптимизации производительности для этого вида процессоров. Несмотря на то, что за месяц после выхода первого рабочего прототипа процесс оптимизации ffvp8 существенно продвинулся вперед, разработка еще остается экспериментальной. Благодаря использованию многих типовых функций, используемых в других декодерах пакета FFmpeg и уже неплохо оптимизированных, код декодера ffvp8 получился достаточно компактным (в пять раз меньше строк кода, чем в эталонном декодере libvpx). Загрузить тестовую версию декодера ffvp8 можно из SVN-репозитория проекта FFmpeg.

В статье также подробно описываются возникшие в процессе работы над ffvp8 проблемы, например, обращается внимание на недостаточно качественное оформление спецификаций, в которых не упомянута логика работы некоторых расширенных функций и некоторые заявления расходятся с практикой, т.е. с тем, что на самом деле представлено в коде. Иными словами, в текущем виде спецификации оказалось недостаточно для создания полностью совместимой с Google реализации декодера, разработчикам пришлось провести серьезный анализ кода, прежде чем удалось добиться полного бинарного совпадения на уровне декодированных потоков.

Из оптимизаций, которые помогли добиться высокой производительности, отмечается проведение работы по увеличению попадания данных в кэш процессора (используется метод умной предварительной загрузки данных из ключевых кадров, обращение к которым наиболее вероятно после обработки текущего кадра) и активное использование ассемблерных оптимизаций с задействованием SIMD-расширений современных процессоров (MMX, SSE, 3DNow), особенно в таких сильно нагружающих CPU задачах, как компенсация движения и фильтр деблокирования. В настоящий момент оптимизация проведена пока только для процессоров x86, поддержка архитектуры ARM остается в планах на будущее.

Также была проведена работа по уменьшению числа распаковки цифровых значений с разной степенью точности (8-битовых в 16-битовые переменные). Например, возьмём операцию abs(a-b) (модуль разности), где a и b - это 8-битные без-знаковые целые числа. Результат вычисления "a - b" требует для своего хранения в памяти 9-бит, так как может быть в промежутке от -255 до 255. Т.е. требуется привлечение дополнительного девятого знакового бита, чего можно избежать используя в условиях конструкцию вида (satsub(a,b) | satsub(b,a)), которая требует всего 4 ассемблерных команд вместо минимум 10 при использовании распаковки.

  1. Главная ссылка к новости (http://x264dev.multimedia.cx/?...)
  2. OpenNews: Сравнение работы кодировщиков VP8, x264 и XviD
  3. OpenNews: Разработчики FFmpeg написали собственный декодер для видеокодека VP8
  4. OpenNews: Релиз FFmpeg 0.6 и успехи в оптимизации видеокодека VP8
  5. OpenNews: Компания Google внесла изменения в лицензию на видеокодек VP8
  6. OpenNews: Компания Google перевела видеокодек VP8 в разряд свободных технологий
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: vp8, video, codec
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, vix (?), 14:55, 25/07/2010 [ответить] [показать ветку] [···]    [к модератору]
  • +5 +/
    во жгут ребята..
    респект..
     
  • 1.2, 666joy666 (ok), 15:04, 25/07/2010 [ответить] [показать ветку] [···]    [к модератору]
  • +7 +/
    Суровые мужики показали как нужно работать:)
     
  • 1.3, EuPhobos (ok), 15:40, 25/07/2010 [ответить] [показать ветку] [···]    [к модератору]
  • –2 +/
    Гыы, Мак при более мощьном проце, выдаёт более низкие показатели) Что очередной раз подтверждает уже и без того, подтверждённую теорию "платно - не значит качественно".
     
     
  • 2.9, Andrew (??), 18:43, 25/07/2010 [^] [ответить]    [к модератору]
  • +/
    Где Вы это увидели?
     
     
  • 3.10, EuPhobos (ok), 18:55, 25/07/2010 [^] [ответить]    [к модератору]
  • +/
    Как бы, на диаграме, которая красуется наверху, в этой новости.
     
     
  • 4.11, Anonim (?), 19:35, 25/07/2010 [^] [ответить]    [к модератору]  
  • +/
    Как бы на диаграмме C2D под макосью обошел более крутой i7.
    i5 - камень как бы тоже другого уровня.
     
     
  • 5.33, User294 (ok), 12:25, 26/07/2010 [^] [ответить]     [к модератору]  
  • +/
    А вон там рядом с атомом уж не мак ли И производительность почти как у атома не... весь текст скрыт [показать]
     
     
  • 6.36, Filosof (ok), 13:05, 26/07/2010 [^] [ответить]    [к модератору]  
  • +1 +/
    "Оптимизация ещё в работе" как бы намекает, что где-то не эффективно используется распаралеливание (и7 имеет меньше частоту, хоть и болше ядер/потоков) и кеш.
     
  • 6.39, Crazy Alex (??), 13:19, 26/07/2010 [^] [ответить]    [к модератору]  
  • +/
    В данном случае у i7 частота в полтора раза меньше, так что неудивительно.Впрочем, что интел в линейки процов заигрался - согласен.
     
  • 6.41, Аноним (-), 14:05, 26/07/2010 [^] [ответить]    [к модератору]  
  • +1 +/
    А на индекс посмотреть, не? QM. Это мобильный. У него занижена частота, может ещё что-то не то, см. спеки.
     
     
  • 7.42, Andrey Mitrofanov (?), 14:06, 26/07/2010 [^] [ответить]    [к модератору]  
  • +1 +/
    >А на индекс посмотреть, не? QM. Это мобильный.

    Это на две буквы больше, чем нужно пользователю АМД. :->

     
     
  • 8.49, User294 (ok), 19:56, 26/07/2010 [^] [ответить]    [к модератору]  
  • +/
    >Это на две буквы больше, чем нужно пользователю АМД. :->

    Судя по чертыханиям в коментах на сайте x264dev - я не один такой кто не понимает юмора с такими именованием серий процов :P.

     
  • 7.45, Anonim (?), 15:34, 26/07/2010 [^] [ответить]     [к модератору]  
  • +/
    Если смотреть на индекс, то такого процессора вобще не существует Вот все моб... весь текст скрыт [показать]
     
     
  • 8.47, Anonim (?), 18:19, 26/07/2010 [^] [ответить]    [к модератору]  
  • +/
    Тестировали на i7-720QM с включенным турборежимом.
    http://x264dev.multimedia.cx/?p=499#comment-5792
     
  • 7.48, User294 (ok), 19:36, 26/07/2010 [^] [ответить]     [к модератору]  
  • +/
    А теперь попробуйте объяснить юзерам что вон тот i7 - это, дескать, карманный в... весь текст скрыт [показать]
     
  • 6.44, Anonim (?), 15:20, 26/07/2010 [^] [ответить]     [к модератору]  
  • +/
    Ну и что Рядом тоже мак и производительность на уровне Сейчас это ни о чем не ... весь текст скрыт [показать]
     
  • 2.34, rfcr (ok), 12:25, 26/07/2010 [^] [ответить]     [к модератору]  
  • +1 +/
    На самом деле скорей всего никто не ждет качества от платных продуктов точнее е... весь текст скрыт [показать]
     
     
  • 3.37, Filosof (ok), 13:10, 26/07/2010 [^] [ответить]     [к модератору]  
  • +1 +/
    Хмм Если что-то не так работает в платном продукте, это не значит, что произв... весь текст скрыт [показать]
     
  • 3.43, MiG (?), 14:44, 26/07/2010 [^] [ответить]     [к модератору]  
  • +/
    Так в юзерской лицензии того же микрософта написано, что компания не несёт ответ... весь текст скрыт [показать]
     
     
  • 4.46, EuPhobos (ok), 16:49, 26/07/2010 [^] [ответить]     [к модератору]  
  • –1 +/
    Я это с самого начала и имел ввиду Что приятнее пользоваться свободным ПО, а по... весь текст скрыт [показать]
     
  • 1.4, анон (?), 15:55, 25/07/2010 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    Dark Shikari респект
     
  • 1.5, Аноним (-), 16:13, 25/07/2010 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Хорошее дело делают люди
     
  • 1.6, KERNEL_PANIC (ok), 17:32, 25/07/2010 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Всегда их уважал, и теперь они не разочаровали!
     
  • 1.7, Skipper_gmr (?), 17:46, 25/07/2010 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Вот это правильно.
     
  • 1.8, Arcturus (ok), 17:46, 25/07/2010 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Так и должно быть: открытая спецификация и свободные реализации.
     
     
  • 2.16, аноним (?), 22:59, 25/07/2010 [^] [ответить]    [к модератору]  
  • +/
    >Так и должно быть: открытая спецификация и свободные реализации.

    ага ага ознакомься с сабжем
    открытая спецификация не совпадает (!) с референсным кодеком
    гугл-вей

     
     
  • 3.40, Crazy Alex (??), 13:22, 26/07/2010 [^] [ответить]     [к модератору]  
  • +/
    Ну, тут на гугл валить не стоит Явно это не их вина, а еще On2 А гугл поступил... весь текст скрыт [показать]
     
     
  • 4.50, аноним (?), 21:26, 26/07/2010 [^] [ответить]     [к модератору]  
  • +/
    Откуда столько любви к этой мерзкой конторке On2 практически нет, а спецификац... весь текст скрыт [показать]
     
     
  • 5.52, ЬЫР (?), 00:38, 28/07/2010 [^] [ответить]    [к модератору]  
  • +/
    И кому он нужен, простите, этот ваш firefox? Все как юзали IE, так и юзают.
     
     
  • 6.53, аноним (?), 06:38, 28/07/2010 [^] [ответить]    [к модератору]  
  • +/
    >И кому он нужен, простите, этот ваш firefox?

    Пропал бы он завтра - даже не заметили бы. Опера рулит, а хром подруливает.

     
  • 1.12, Аноним (-), 20:49, 25/07/2010 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    Мне кажется, или здесь действительно ошибка Если а и б в указанных пределах то... весь текст скрыт [показать]
     
     
  • 2.13, Lain_13 (?), 21:37, 25/07/2010 [^] [ответить]     [к модератору]  
  • +2 +/
    Перевод, как обычно, жжот Простой пример в случае для архитектуры x86 abs a-b ... весь текст скрыт [показать]
     
     
  • 3.51, pavlinux (ok), 00:27, 27/07/2010 [^] [ответить]    [к модератору]  
  • –1 +/
    0 - 255, Сколько будет?

    Правильно -  11111111 + знаковый бит.


     
  • 2.14, Lain_13 (?), 21:46, 25/07/2010 [^] [ответить]    [к модератору]  
  • +2 +/
    Кстати, там ещё рассказывается про операцию satsub, которая здесь лишь указана. Она возвращает разницу если она положительна и 0 если разница отрицательна. После вычисления a-b и b-a для значений выполняется операция or (или), которая и возвращает не нулевое значение если оно там есть.
     
  • 1.15, FPGA (ok), 22:46, 25/07/2010 [ответить] [показать ветку] [···]    [к модератору]  
  • +6 +/
    Не видно результатов для процессоров AMD.
     
     
  • 2.21, universite (ok), 01:20, 26/07/2010 [^] [ответить]    [к модератору]  
  • –6 +/

    Троллям советую аргументировать свои претензии к АМД, а не голословно высказываться.
     
  • 2.38, Filosof (ok), 13:13, 26/07/2010 [^] [ответить]    [к модератору]  
  • +1 +/
    >Не видно результатов для процессоров AMD.

    не помешали б, но для определения динамики и этого достаточно. Они ж сравнивают не производительность процов, а разницу в работе кодеков.

     
  • 1.26, StrangeAttractor (ok), 07:35, 26/07/2010 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    На самом деле всё вообще  может быть гораздо быстрее чем оно есть. Я в этом окончательно уверился увидев как на моей системе (старенький ноут с видео Intel 82852/82855, которая даже ни про какие шейдеры ничего не знает) летает Enlightenment e17 со всеми эффектами и, самое чудесное,  как на ней играется видео командой "mplayer -vo x11 %F"- наприемер при проигрывании FLV (проигрывание которого в браузере "как положено" жрёт 100% CPU) проц (при полностью софтовом декодировании и воспроизведении) загружен всего на 4% и при этом, внимание!, даже к самому видео без всякой запинки применяются эффекты композиции (прозрачность) в любых наслоениях!
     
     
  • 2.29, FractalizeR (ok), 10:31, 26/07/2010 [^] [ответить]    [к модератору]  
  • +/
    Это вы о чем сейчас? "Реклама моего домашнего компа"?
     
     
  • 3.30, StrangeAttractor (ok), 11:36, 26/07/2010 [^] [ответить]    [к модератору]  
  • +1 +/
    >Это вы о чем сейчас? "Реклама моего домашнего компа"?

    Основная мысль какбы в первом предложении, а дальше иллюстрация.

     
     
  • 4.31, vi (?), 11:43, 26/07/2010 [^] [ответить]    [к модератору]  
  • +/
    >>Это вы о чем сейчас? "Реклама моего домашнего компа"?
    >
    >Основная мысль какбы в первом предложении, а дальше иллюстрация.

    +1 и 100500

     
  • 4.32, FractalizeR (ok), 12:13, 26/07/2010 [^] [ответить]    [к модератору]  
  • +/
    >На самом деле всё вообще  может быть гораздо быстрее чем оно есть

    Мысль философская, ничего не скажешь.

     
  • 2.35, User294 (ok), 12:36, 26/07/2010 [^] [ответить]    [к модератору]  
  • –2 +/
    >самое чудесное,  как на ней играется видео командой "mplayer -vo x11 %F"-

    Посмотрите сколько % проца при этом кушает только вывод на экран. А если HD подсунуть? Половина проца уйдет на чисто вывод видео на экран :). Посему вас думается еще ждут сюрпризы по обнаружению того что это не предел и с акселерированным выводом видео можно еще больше :)

    >наприемер при проигрывании FLV (проигрывание которого в браузере "как
    >положено" жрёт 100% CPU) проц (при полностью софтовом декодировании и воспроизведении)

    У флеша удивительно тормозной вывод видео на экран. Связано сие с тем что как я понимаю, вывод декодера должен комбинироваться с картинкой нагенеренной остальным флешом. Ессно сие аццки тормозит.

    >загружен всего на 4%

    Наверное это был мувик 320х240 на интернетовском битрейте. Такое извините даже дохлый ARM на 400МГц декодирует...

    >и при этом, внимание!

    Какой восторг. Человек только что обнаружил что флеш - тормозилово :)

     
     
  • 3.54, StrangeAttractor (ok), 05:49, 29/07/2010 [^] [ответить]    [к модератору]  
  • +/
    >У флеша удивительно тормозной вывод видео на экран. Связано сие с тем
    >что как я понимаю, вывод декодера должен комбинироваться с картинкой нагенеренной
    >остальным флешом. Ессно сие аццки тормозит.

    В этом и прикол, от это меня и поразило, что если включить прозрачность, сквозь играющееся в mplayer видео видно то, что под ним. Причём можно открыть насколько mplayer-ов и расположить друг над другом, и видео в них будет играться и комбинироваться. И при этом нагрузка на проц копеечная. А если смотреть тот же видеоклип в браузере, то нагрузка на проц 100%.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor