
1、问题描述 在使用XS9950解码器芯片向STM32N6发送CSI图像时,获取的YUV数据经DCMIPP转换。若转出格式设置为YUV422_1,则获取的图像为黑白色;若转出的格式设置为RGB565_1,则获取的图像发紫。我们最终要获取RGB565格式的图像进行AI识别。为什么DCMIPP转出的图片呈现为紫色? 注:上面提到的图像设置是hal库的DCMIPP_PipeConfTypeDef结构提的PixelPackerFormat设置。 2、图像接收测试 发送端:XS9950芯片,YUV422_8bit YUYV 接收端:STM32N6,PixelPackerFormat设置为YUV422_1 图像为黑白色 发送端:XS9950芯片,YUV422_8bit YUYV 接收端:STM32N6,PixelPackerFormat设置为RGB565_1
图像为紫色 3、单色测试 发送端:XS9950芯片,YUV422_8bit YUYV 颜色设置:(Y-U-V) 0xeb 0x80 0x80 白色 接收端:STM32N6,PixelPackerFormat设置为YUV422_1 PIPE1最终传出数据 PIPE1最终传出图像
颜色显示为白色,是正常显示 发送端:XS9950芯片,YUV422_8bit YUYV 颜色设置:(Y-U-V) 0xeb 0x80 0x80 接收端:STM32N6,PixelPackerFormat设置为RGB565_1 PIPE1最终传出数据
看起来YUV的颜色数据是正确的,为什么换成RGB输出后图像颜色变化了? 4、关于RGB888还是YUV444的问题 此选项指示数据为RGB888还是YUV444?
发送端:XS9950芯片,YUV422_8bit YUYV 颜色设置:(Y-U-V) 0xeb 0x80 0x80 接收端:STM32N6,PixelPackerFormat设置为RGB888_YUV444_1 PIPE1最终传出数据
假设这里都数据是RGB888数据那么则与输入数据完全一致,即PIPE1直接把接收到的YUV数据当作了RGB数据。 R = 0x80 = 128 (十进制) G = 0xEB = 235 (十进制) B = 0x80 = 128 (十进制) 转为RGB565 R: 5 位 (0-31),映射 0-255 到 0-31:128 * 31 / 255 ≈ 15.6 → 16 = 10000b G: 6 位 (0-63),映射 0-255 到 0-63:235 * 63 / 255 ≈ 58.0 → 58 = 111010b B: 5 位 (0-31),映射 0-255 到 0-31:128 * 31 / 255 ≈ 15.6 → 16 = 10000b 1000011101010000b=0x8750 与单色测试设置RGB565的输出数据基本一致,说明PIPE1直接把YUV的数据当成RGB的数据进行映射。 5、我的设置代码如下图,是否DCMIPP能接收YUV数据转出RGB565颜色格式数据?还是有其他什么地方没有配置到?
|
目前看来,YUV422 的数据在 DCMIPP 转成 RGB565 时,高低字节顺序反了,需要调整高低字节顺序。 如果YUV数据用于显示,可以直接用YUV格式 |
STM32N6的CSI接收mipi信号时,进入数据线错误控制中断
stm32n6570dk如何解锁保护程序?
stm32n6570dk无法烧录/无法擦除
在STM32N6570-DK上部署图像分类模型卡住了,求助。
STM32N6能跑OpenMV了
请问STM32N6目前还可以申请Dk开发板用于测试和评测吗
STM32N6的摄像头下采样是怎么实现的
STM32N6570-DK开发板,哪里还有卖的?
STM32N6570-DK RTSP 示例:网线接入路由器后 VLC 能看到画面但非常模糊且帧率很低,是什么原因?
STM32N6570-DK自带的摄像头运行AI demo,画质特别差