Может ЮВ — & gt; Преобразование RGB будет аппаратно ускорено?

У нас есть приложение, которое читает видеопоток GigE YUV и отображает его на экране. Благодаря профилированию мы узнали, что функция преобразования каждого кадра из YUV (UYVY) в RGB24 требует как минимум на порядок больше времени и ресурсов процессора, чем любая другая часть нашего конвейера с камеры на экран.

Используемая нами функция преобразования предоставляется поставщиком программного обеспечения GigE (Pleora) и немного быстрее нашегонаивный(неоптимизированная) реализация. Мы используем DirectShow для остальной части нашего конвейера. «Тест производительности менеджера задач» показывает для нашего потока 1080p 30fps, использование процессора 4-5%, когда мы пропускаем преобразование (и, конечно, получаем искаженное изображение), и 15-19% использования ЦП, когда мы вызываем функцию преобразования.

У нас есть следующие вопросы:

  1. Есть ли фильтр DirectShow, который будет выполнять это преобразование для нас, мы надеемся, более производительным способом, а не полагаться на сторонний SDK или нашу собственную (основанную на ЦП, последовательную) функцию преобразования?
  2. Должно ли это преобразование выполняться на процессоре или его можно как-то выгружать в графический процессор для параллельной обработки?

Спасибо! Эрик.

7

Решение

Преобразование, возможно, является хорошим кандидатом для обработки на GPU, однако что вы собираетесь делать с преобразованными данными? Если вам это нужно для дальнейшей обработки в программном обеспечении, то чтение с видеоадаптера может испортить весь выигрыш, который вы могли бы получить, перенеся обработку в графический процессор. Если вам это нужно только для презентаций, тогда вам не нужно конвертировать, вы можете доставить изображение YUV прямо на видеоадаптер и представить его таким образом (что является идеальной конфигурацией конвейера, поскольку у вас нет любое преобразование вообще).

Говоря о конвертации программного обеспечения, я не уверен в качестве конверсий, которые вы используете в данный момент, но есть высоко оптимизированные (с поддержкой SIMD) конвертации:

  1. Стандартная Windows Vista + DMO
  2. Libswscale FFmpeg
  3. Примитивы Intel IPP

Все три более или менее легко подключаются к конвейеру DirectShow. Кроме того, изображения с высоким разрешением также являются хорошими кандидатами для параллельной обработки программного обеспечения.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]