【朝花夕拾】RT1170 CSI 如何使能摄像头Y8功能

一,文档简介

RT1170的CSI可以支持YUV格式,所谓的YUV分为三个分量:Y表示亮度(Luminance),即灰度值;UV表示色度(Chrominance),描述色度和饱和度。和RGB类似,YUV也是一种颜色编码方法,它可以把亮度信息Y与色度信息UV分离。如果要显示黑白,可以没有UV信息,只有Y信息,即Y800=Y8 ,也同样可以显示完整的图像。对于RT1170 YUV,官方SDK提供了基于YUV444格式的例程,但是在实际使用中,有些客户需要Y8格式的功能,那么应该如何基于现有的YUV SDK去做配置呢?
从RT1170的参考手册,可以看到如下信息:
在这里插入图片描述

图 1
该描述,可以理解为需要Y8模式,只要配置:

CSI_CR20[BINARY_EN]=0
CSI_CR20[BIG_END]=1

但是,实际通过这种配置,原本的YUV代码无法显示摄像头数据了,那么到底应该怎样做摄像头的Y8配置,才能通过LCD显示出黑白的图像呢?本文将会给出详细讲解。

二,RT1170 CSI Y8黑白格式配置与测试

2.1 软硬件情况

板子:MIMXRT1170-EVK REV C4
LCD: RK055AHD091
摄像头:OV5640
代码:SDK_2_15_000_MIMXRT1170-EVK\boards\evkmimxrt1170\driver_examples\csi\mipi_yuv\cm7
IDE: MCUXPresso IDE v11.9.0

2.2 Y8黑白格式的具体配置

实际上,对于CSI_CR20配置,还需要使能Histogram功能,即如下几项:
在这里插入图片描述

图 2
下面给出基于SDK evkmimxrt1170_csi_mipi_yuv_cm7 demo,修改成Y8的几个修改点,主要修改文件csi_mipi_yuv.c:
(1) static void DEMO_InitPxp(void)函数
修改:

PXP_SetCsc1Mode(DEMO_PXP, kPXP_Csc1YCbCr2RGB);

为:

PXP_SetCsc1Mode(DEMO_PXP, kPXP_Csc1YUV2RGB);

此项如果不改,LCD将会全部显示为绿色。
(2)static void DEMO_InitCamera(void)函数
在BOARD_InitMipiCsi();之前,添加代码:

CSI->CR20 |= CSI_CR20_QRCODE_EN_MASK | CSI_CR20_HISTOGRAM_EN_MASK;

这里没有配置CSI_CR20[BINARY_EN]=0,是因为复位默认就是0,如果实际应用中,该位被修改过,那么这里就需要添加BINARY_EN清0,表示输出为Y8,不是Y1。
这里,之前不能显示图片的原因是因为HISTOGRAM_EN没有开启。
(3) static void DEMO_CSI_MIPI_YUV(void)函数
修改psBufferConfig结构体如下:

    pxp_ps_buffer_config_t psBufferConfig = {
        .pixelFormat = kPXP_PsPixelFormatY8, //kPXP_PsPixelFormatYUV1P444, /* Note: This is 32-bit per pixel */
        .swapByte    = false,
        .bufferAddrU = 0U,
        .bufferAddrV = 0U,
        .pitchBytes  = DEMO_CAMERA_WIDTH,//DEMO_CAMERA_WIDTH * DEMO_CAMERA_BUFFER_BPP,//
};

主要两个点:

.pixelFormat = kPXP_PsPixelFormatY8,
.pitchBytes = DEMO_CAMERA_WIDTH,

如果只是修改了像素格式为Y8,但是pitchBytes不修改成摄像头宽度,那么结果LCD显示将会是上面一小条,而不是整个LCD屏幕显示摄像头的Y8格式黑白图像。
到目前为止,所有Y8相关的修改项目已经结束。
最后,需要注意下, 默认的SDK的LCD显示屏,并不是本文选择的:RK055AHD091。
所以需要修改display_support.h中的DEMO_PANEL宏为如下内容:

#define DEMO_PANEL DEMO_PANEL_RK055AHD091

下面,编译工程,并且下载代码到MIMXRT1170-EVK板子中。

2.3 测试结果

下面使用同一张彩色的图片对着摄像头分别测试YUV以及Y8显示的效果,话不多说,直接上图。
在这里插入图片描述

左边的图片的摄像头格式是YUV444, 右边图片是Y8的格式,可以看到左边是彩色的,右边显示的就是黑白的,成功的完成了黑白Y8的摄像头数据采集以及LCD显示。
如果需要工程包的朋友,请移步NXP官方论坛:
RT1170 camera CSI Y8 format modification

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值