Какой правильный формат пикселей в ImageWatch для YV12 и NV12?

Есть хорошее расширение Visual Studio Изображение Смотреть.

Он может взять произвольный адрес в ОЗУ и показать его содержимое в виде изображения с @mem оператор.

@mem(address, type, channels, width, height, stride): интерпретировать необработанную память как пиксели, начиная с address (UINT64), с каналом type (увидеть Пиксельные форматы), количество channels (UINT32), width (UINT32), height (UINT32), а также stride (UINT32). Пример: @mem(myimg.data, UINT8, 1, 320, 240, 320)

Согласно страница справки, он может отображать несколько сложных форматов пикселей, среди которых BGR, NV12 и YV12.

Необязательно, строка формата может быть связана с форматом пикселя. Он определяет семантику каждого канала для рендеринга:

  • RG, UV

  • RGB, BGR, YUV

  • RGBA, BGRA

Также поддерживается ряд специальных форматов YUV. В этом случае строка формата также определяет макет данных.

  • NV12 (две плоскости: одна плоскость Y, одна упакованная плоскость UV, субсэмплированная по 2 в обоих измерениях)

  • YV12 (три плоскости: одна плоскость Y, одна упакованная плоскость U и V каждая, каждая с подвыборкой по 2 в обоих измерениях)

Однако мне не понятно, как заставить Image Watch отображать изображения в NV12 а также YV12 форматирует с @mem оператор.

Страница справки не содержит слишком много информации.

Мне удалось отобразить серые одноканальные изображения, указав UINT8 как тип канала. Я также могу правильно отобразить изображение BGR с типом канала = UINT8 и 3 канала: @mem(pBGR, UINT8, 3, 640, 480, 640*3), Это было описано в документации, но не было очевидно.

Я пробовал различные комбинации чисел каналов и форматных строк с или без кавычек: @mem(ptr, NV12, 3, 640, 480, 640*3), @mem(ptr, "NV12", 1, 640, 480, 640*3), @mem(ptr, UINT8NV12, 3, 640, 480, 640*3) @mem(ptr, NV12UINT8, 1, 640, 480, 640*3)и т.д — не повезло. Я вижу только серый прямоугольник со словом [invalid],

То же самое с YV12,

3

Решение

Задача ещё не решена.

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector