Как мне конвертировать YUV (444) в дисплей на WPF, предпочел бы использовать DirectX как-то для аппаратного ускорения - PullRequest
2 голосов
/ 22 декабря 2010

Я работаю над отображением фильма Y4M на экране.Разбор файла, который я могу обработать, однако в настоящее время у меня есть 2d байтовый массив со значениями YUV кадра.Есть ли встроенный аппаратно ускоренный способ или мне нужно преобразовать его в RGB и создать растровое изображение?Если у кого-то есть хороший веб-сайт для учебника по DirectX в WPF, он будет очень признателен.Кстати это в C #.

1 Ответ

1 голос
/ 22 декабря 2010

YUV-поверхности - это, вероятно, специальные поверхности, поддерживаемые FourCC поставщика оборудования (IHV).Вам нужно выяснить у IHV, есть ли у них FourCC, который вы можете использовать, и вы не можете рассчитывать на то, что он работает на других платформах.

Существует стандартный D3DFORMAT для 4: 2: 2 (D3DFMT_YUY2 илиD3DFMT_UYVY), но по умолчанию 4: 4: 4.Я уверен, что большинство IHV предоставляют FourCC для такого рендеринга.

Стоит помнить, что если вы знаете FourCC входящих данных, то, возможно, стоит попытаться создать поверхность с этим FourCCнепосредственно.Если это работает, вы готовы пойти :) Если нет, то вы можете найти альтернативу, которая работает, или вам, возможно, придется выполнить какое-то ручное преобразование формата.

...