GD32H759I 的IPA模块做颜色空间转换YCbCr转换成RGB888如何配置

[复制链接]
10774|8
 楼主| gggliu 发表于 2025-7-23 14:09 | 显示全部楼层 |阅读模式
GD32H759I 的IPA模块做颜色空间转换YCbCr转换成RGB888如何配置?        我试着按照例程里面的填充的方式,将转化mode改为IPA_FGTODE_PF_CONVERT(foreground memory to destination memory with pixel format convert),前景层的像素格式为:FOREGROUND_PPF_UYVY422_1P。但是配置完以后,数据一直无法得到转换完成的标志位,请问该如何配置才能正常工作啊?  
我试了如果配置成不带转换的模式,数据是可以更新到屏幕上的,这是颜色控件不对,从摄像头获取的数据是可以变化的。 但是一旦配置成带格式转换的模式,就白屏了,白屏是因为卡在了等待IPA转换完成的标志位那个循环超时里。超时了也没有完成转换。

有没有技术支持可以帮忙看下啊,不胜感激!
stormwind123 发表于 2025-7-23 16:02 | 显示全部楼层
可尝试软件转换。
flycamelaaa 发表于 2025-7-23 17:03 | 显示全部楼层
中断未使能?
stormwind123 发表于 2025-7-23 18:03 | 显示全部楼层
转换完成后必须手动清除中断标志位,否则会卡死后续触发。
powerantone 发表于 2025-7-23 19:03 | 显示全部楼层
格式不兼容?
cooldog123pp 发表于 2025-7-24 14:37 | 显示全部楼层
这种问题太细了,最好把你的代码也拿上来看一下,不然无从下手啊。
和下土 发表于 2025-7-31 23:58 来自手机 | 显示全部楼层
具体需结合芯片手册的电气特性说明
l63t89 发表于 2025-8-31 00:26 | 显示全部楼层
IPA 模块的格式转换需要同时正确配置前景层(输入,YCbCr)、目标层(输出,RGB888) 及转换控制参数,缺一不可
l63t89 发表于 2025-8-31 23:43 | 显示全部楼层

void ipa_color_convert_init(void) {
    // 1. 使能IPA时钟
    rcu_periph_clock_enable(RCU_IPA);
    ipa_deinit();  // 复位IPA模块

    // 2. 配置前景层(输入:UYVY422)
    ipa_foreground_parameter_struct fg_param;
    ipa_foreground_struct_para_init(&fg_param);
   
    fg_param.fg_format = FOREGROUND_PPF_UYVY422_1P;  // 输入格式:UYVY422
    fg_param.fg_baseaddr = (uint32_t)uyvy_buffer;    // 输入缓冲区地址(摄像头数据)
    fg_param.fg_line_width = 640;                    // 图像宽度(像素)
    fg_param.fg_line_stride = 640 * 2;               // 行跨度(字节,UYVY422每像素2字节)
    fg_param.fg_height = 480;                        // 图像高度
    ipa_foreground_config(&fg_param);

    // 3. 配置目标层(输出:RGB888)
    ipa_destination_parameter_struct dest_param;
    ipa_destination_struct_para_init(&dest_param);
   
    dest_param.dest_format = DESTINATION_PPF_RGB888;  // 输出格式:RGB888
    dest_param.dest_baseaddr = (uint32_t)rgb_buffer;  // 输出缓冲区地址
    dest_param.dest_line_stride = 640 * 3;            // 行跨度(字节,RGB888每像素3字节)
    ipa_destination_config(&dest_param);

    // 4. 配置转换模式(关键:开启格式转换)
    ipa_mode_config(IPA_FGTODE_PF_CONVERT);  // 前景→目标,带格式转换

    // 5. 配置转换区域(与图像尺寸一致)
    ipa_window_config(0, 0, 640-1, 480-1);  // 左上角(0,0)到右下角(639,479)

    // 6. 使能转换完成中断(可选,替代轮询)
    ipa_interrupt_enable(IPA_INT_FGTODE_DONE);
    nvic_irq_enable(IPA_IRQn, 1, 0);
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部