Быстрое преобразование из YUY2 в RGB24 - PullRequest
0 голосов
/ 08 января 2010

Я пишу программу, которая в реальном времени будет выполнять некоторые преобразования изображения с веб-камеры. Как почти все другие веб-камеры, мой noname предоставляет данные в формате YUY2 (как написано в bmiHeader.biCompression). Я пробовал прямое преобразование на стороне процессора в соответствии с http://www.fourcc.org/yuv.php#YUY2,, но это ОЧЕНЬ медленно и неправильно :)).

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

Итак, я ищу фильтр DirectShow или, может быть, какой-нибудь кодек, который будет выполнять быстрое преобразование из YUY2 в RGB24 на видеокарте и даст мне результат, не отображая его на экране.

Я использую:

  • 32-битная Windows XP SP3.
  • VC ++ 2005
  • Недавно загруженный Windows SDK.
  • DirectX Август'09.

Ответы [ 2 ]

2 голосов
/ 08 января 2010

У меня нет кода, доступного на данный момент. но взгляните на использование GDI для очень быстрого преобразования.

По сути, захват исходного кадра, создание памяти в правильном формате (rgb24) и переход к битовой карте. преобразование происходит во время блиттинга и по моему опыту очень быстро.

Я использую это для захвата кадров с веб-камеры, а затем я могу перенести кадры на жесткий диск с требуемой частотой кадров в формате JPEG или битмап.

DC

0 голосов
/ 19 сентября 2011

Вы можете использовать библиотеку VirtualDub Kasumi http://virtualdub.sourceforge.net/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...