company_banner

Обработка видео на CPU и GPU. Ответы эксперта



    В этом посте мы публикуем ответы эксперта Intel Дмитрия Серкина на заданные вами ранее вопросы по обработке видео на CPU и GPU. Приносим свои извинения за некоторое опоздание — оно связано с большой разницей во времени между нами и Дмитрием.
    Как обычно, для удобства поиска вопросы снабжены хабра-именем автора.

    Вопрос Maratyszcza
    Появятся ли в процессорах Intel аппаратные блоки для других (не видео) алгоритмов сжатия, например deflate?
    Не думаю. Существует оптимизация для конкретных процессоров. Intel Integrated Performance Primitives, содержит оптимизацию ZLIB, DEFLATE, и GZIP семейства функций на уровне алгоритмики и инструкций.

    Вопрос lifestar
    Какие кодеки поддерживает аппаратное сжатие CPU?
    Если мы говорим только о кодировании, то H.264, MPEG-2, MJPEG, and MVC for stereoscopic 3D support. На подходе еще несколько широко известных.

    Вопрос JDima
    Можно ли ожидать того, что QuickSync по качеству результирующей картинки сравнится с x264?
    Если мы говорим о пресетах (настроек кодирования) на качество, то никогда не догонит. С каждой новой платформой качество кодирования улучшается, так как появляется больший ресурс на стороне железа и, как результат, возможность улучшить алгоритмы, например, оценки движения (motion estimation) и паковки битстрима. x264 использует очень хорошие алгоритмы (не быстрые, но влиящие на качество), в том числе RDO. Все это крайне плохо ложится на конвеерную архитектуру в железе. Если говорить про средние пресеты, то вполне бьет. Все, конечно, упирается в конечные настройки кодека, коих множество. Нужно понимать, что качество и скорость не идут рука об руку. Цель QuickSync кодировать быстро с хорошим для 99% пользователей качеством. И технология это делает. Тем временем работа по увеличению dB идет каждый день.

    Вопрос weatherman
    Сильно ли отличается по производительности HD 4000 и новая HD 5000? Можете ли привести какие-то примеры с современными играми?
    Согласно недавним пресс релизам скорость возросла до 3х раз, энергопотребление уменьшилось в 2 раза. Публичных бэнчмарков по играм я не видел. Они должны появится за несколько недель до запуска Haswell в продажу. Насколько я помню, он состоится в июне. К сожалению, примеры привести не могу, так как я не в этой теме, я занимаюсь кодеками.

    Вопросы tp7
    1. Имеются ли планы по поддержке аппаратного декодирования многобитного видео, например Hi10P из H264 или «старших» профилей HEVC?
    Не имею такой информации. Планы вещь изменчивая. Если эти профили массово используются, то с очень большой вероятностью они будут поддержаны.

    2. Помнится, что некоторое время назад были попытки диалогов с разработчиками свободных кодеков на предмет того, чего им хотелось бы от новых процессоров Intel. Как сейчас обстоит дела в этом направлении? Влияют ли девелоперы открытого ПО на Intel и оказывает ли Intel им какую-либо поддержку?
    Скорее на уровне приложений, а не разработчиков. Недавний анонс о том, что HandBrake поддерживает QuickSync – одно из таких событий. Это вклад Intel в свободный продукт. Такие активности будут происходить все чаще и чаще, так как развитие QuickSync на Linux и его производных (Android) в самом разгаре.
    Что касается того, чтобы дать прямой доступ к драйверу и железу, то о таких активностях я не слышал. Кроме того, я считаю их бесмысленными, так как работа эта довольно нетривиальная. Кроме того, существует Media SDK, он предоставляет примитивы более высокого уровня.

    3. На данный момент в принципе не существует хороших реализаций кодирования на GPU (их всего несколько, и все не отличаются качеством или особым преимуществом в скорости). Почему так происходит и имеются ли какие-то положительные подвижки в этой области?
    Я нахожу QuickSync очень удачным решением, которое обладает и скоростью и хорошим (относительно этой скорости) качеством. Что касается решений от AMD или Nvidia, то их провал можно объяснить отличной от Intel архитектурой. Все их решения основаны на execution units и многопоточности, которую сложно использовать в кодеках (некоторые краеугольные алгоритмы не ложатся на многопоточность). QuickSync же это комбинация EU и fixed function (алгоритмические блоки «запаянные» в железо). Такая комбинация позволяет получить отличный прирост производительности и качества.

    4. Не секрет, что производительность недавно вышедших HEVC и VP9 сейчас за гранью разумного. Какова ваша оценка, как скоро появится процессор/ПО, способные обрабатывать (хотя бы декодировать) HD-видео этих форматов в реальном времени?
    Я полагаю, что через пару лет такая возможность появится.

    5. Насколько широко в мультимедийных продуктах Intel используется рукописный асм, или больше полагаетесь на оптимизацию компилятором? Используете ли С++, или только старый добрый С? Сколько вообще времени уходит на оптимизацию производительности в сравнении с реализацией непосредственно нового функционала?
    На войне все средства хороши :) Используем все выше перечисленное на уровне драйверов и ниже. Специфичный асм, конечно, генерируется из C-подобного кода для его последующей ручной оптимизации. Времени на все уходит много. Много исследований как в области качества, так и производительности, но на все есть дедлайн. Точной пропорции не скажу, но исследования, конечно, потребляют больше времени.

    6. Насколько большая команда в Intel занимается мультимедийным направлением? Как сложно к вам попасть? :)
    От железа, драйверов до различных SDK – это тысячи человек. Смотря на какую позицию вы метите ;) В России (Москва и Нижний Новгород) есть большая команда, которая занимается Intel Media SDK. У них периодически появляются вакансии.

    Вопрос RussianNeuroMancer
    Проблема в железе или в драйвере?
    Тут скорее всего в драйвере. На Windows – это известная проблема некоторых ограничений на уровне ОС. Но она решаема. Более доступно и подробно я писал здесь.

    Вопрос Ilya_Smelykh
    Будет ли аппаратная colorspace конвертация для большинства популярных форматов? Что насчет аппаратного деинтерлейсинга?
    Все это есть. Планарные и упакованные форматы. Дальше будет больше. Деинтерлейсинг также поддерживается.

    Вопрос Aingis
    Как известно, осенью прошлого года Эппл выпустили 13-дюймовый Макбук про с ретиной. В нём нет дискретной видеокарты и вся графика работает на Intel HD4000. Есть отзывы, что этой платформы просто не хватает для полноценной поддержки. Что Intel планирует, чтобы не уступать в плане графики хотя бы Айпаду с ретиной?
    Я думаю, что графика развивается достаточно быстро и мощно. Intel Iris должен расставить все точки над i.

    Вопрос diger
    Расскажите пример кодирования видео на GPU в домашних условиях.
    Самый частый пример – это кодирование для мобильных устройств. Если вы хотите за несколько минут транскодировать серию сериала в формат поддерживаемый мобильным устройством, а не ждать полчаса, то QuickSync вам в помощь.

    Вопрос Russelll
    Будут ли 64 битные драйвера для intel 3650?
    Прошу прощения, но не обладаю такой информацией. Но тема горячая судя по форумам.

    Вопросы sancho2222
    1. Есть ли в процессорах Intel что то похожее на KUDA?
    Имеется ввиду Nvidia CUDA? Ответ — Intel OpenCL.

    2. Какие необходимы библиотеки для использования графических возможностей процессора Intel, в частности: кодирования\декодирования h.264?
    Все, что вам нужно – это Intel Media SDK.

    3. Хватит ли производительности процессора Intel i7-3517UE для одновременного декодирования и кодирования видео разрешения 960*720 в H.264?
    Да, безусловно. И даже в несколько потоков.

    4. У меня проблема с процессором Intel Atom(tm) N2800. Может вы сможете мне помочь. Я декодирую с помощью ffmpeg H.264 с камеры Logitech C920, разрешение видео 960*720. После декодирования я получаю формат кадра YUYJ420. С таким разрешением я могу декодировать 2 потока по 24 кадра в секунду с вышеуказанным разрешением, но если я переворачиваю видео после декодирования на 270 градусов, то упираюсь в ограничения КЭШа (как я понимаю), и в итоге могу использовать только 20 кадров в секунду и один поток, если увеличить количество кадров, то видео разваливается на квадратики и жутко тормозит. Подскажите пожалуйста в чем может быть проблема? точно это КЭШ?
    Скорее всего вы упираетесь в общую производительность системы. Все операции происходят на цетральном процессоре и с двумя потоками плюс постпроцессинг он уже не справляется. Чтобы отыграть задержки ffmpeg начинает скипать фреймы, поэтому вы наблюдаете артефакты. Какой CPU usage при этом?
    Я не совсем понял какой формат на выходе. YUV420? В зависимости от формата необходим разный набор операций для поворота. Ну и кэша там мало, а он, как известно, влияет на скорость.

    Вопрос yurasek
    Меня интересует каков потенциал встроенной в процессоры Intel Core 2-го и 3-го поколения логики при аппаратном декодировании h.264? То есть сколько, например, потоков h.264 в режиме реального времени с разрешением 1280 x 720 (1920 x 1080) / 25 кадров в секунду сможет обработать процессор Intel i7-3770 с использованием именно аппаратного декодирования (если при этом программный код будет в идеале максимально оптимизирован) для последующего вывода на экран? На сколько при этом будут задействованы ресурсы других блоков процессора?
    Хороший вопрос. Количество потоков физически упирается только в графическую память. До тех пор пока памяти достаточно для выделения поверхностей все должно работать. Другой вопрос производительность. Зависит от контента, который вы собираетесь декодировать. Другими — словами, в зависимости от того как стримы были закодированы – это занимает разное кол-во времени и ресурсов. Принимая во внимание все эти факторы (и многие другие) моя грубая оценка из головы составляет до 20 реал тайм сессий одновременно.
    Intel
    Компания

    Похожие публикации

    Комментарии 4

      0
      А кто-то на GPU биткоины майнит…
        0
        При нужном раскладе это более выгодно :)
        0
        Скажите, известно ли, какие плееры для платфорсы Windows используют аппаратные возможности при декодировании видео?
          0
          Многие, практически все мне известные. Только иногда требуется включить аппаратное декодирования в опциях. Аппаратное декодирование поддерживается уже много лет и всеми известными дискретными платами.

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое