Direct Show YUY2 Пиксельный вывод из videoInput
Я использую videoInput для взаимодействия с DirectShow и получения данных пикселей с моей веб-камеры.
Из другого вопроса, который я задал, люди предположили, что формат пикселей - это просто добавленные массивы в порядке каналов Y, U и V.
Веб-сайт FourCC предполагает, что формат пикселей на самом деле не следует этому шаблону, а вместо этого |Y0|U0|Y1|V0|Y2|U0|Y3|V0|
Я работаю над несколькими функциями, которые преобразуют входное изображение YUY2 в RGB и YV12, и, не добившись большого успеха, подумал, что может возникнуть проблема с тем, как я интерпретирую исходные данные изображения YUY2.
Правильно ли я предположить, что пиксельные данные должны быть в формате с веб-сайта FourCC, или каналы Y, U и V являются отдельными массивами, которые были сконцентрированы (поэтому данные имеют порядок каналов, например: YYYYUUVV?
1 ответ
В YUY2 каждая строка представляет собой последовательность 4-байтовых пакетов: YUYV, описывающая два смежных пикселя. В YV12 есть 3 отдельные плоскости: сначала Y размера ширина * высота, затем V, а затем U, оба размера ширина /2 * высота /2.