You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何生成适用于ADV7391BCPZ编码器的Y Cr Cb格式图像像素数据

RGB图像转ADV7391BCPZ适配YCbCr格式实现方案

首先确认芯片通用输入要求:ADV7391BCPZ默认支持8bit位宽、4:2:2采样、广播级有限值域的YCbCr信号输入,标清场景遵循BT.601标准、高清场景遵循BT.709标准,以下实现默认匹配该配置,可根据你的寄存器实际配置调整参数。

1. 转换公式选择

所有转换基于8bit全值域(0-255)的RGB输入,输出为广播级有限值域(Y:16235,Cb/Cr:16240),超出范围直接取边界值截断即可。

标清场景(分辨率≤720x576,BT.601标准)

浮点运算公式:

Y  =  0.257 * R + 0.504 * G + 0.098 * B + 16
Cb = -0.148 * R - 0.291 * G + 0.439 * B + 128
Cr =  0.439 * R - 0.368 * G - 0.071 * B + 128

高清场景(分辨率≥720p,BT.709标准)

浮点运算公式:

Y  =  0.183 * R + 0.614 * G + 0.062 * B + 16
Cb = -0.101 * R - 0.338 * G + 0.439 * B + 128
Cr =  0.439 * R - 0.399 * G - 0.040 * B + 128

2. 适配4:2:2采样格式

ADV7391要求输入为4:2:2采样,即每2个相邻Y像素共用1组Cb/Cr值,处理逻辑:

  • 按行遍历图像像素,每处理2个连续像素,取第1个像素的Cb/Cr值(或取2个像素Cb/Cr的平均值,通用场景直接取第1个即可)作为2个Y的共用值
  • 输出数据流按Y0 → Cb0 → Y1 → Cr0的顺序排列,匹配芯片并行输入/BT.656输入的时序要求

3. FPGA端硬件优化实现

FPGA侧避免使用浮点运算,可将系数放大256倍转成整数运算,计算完成后右移8位即可,资源占用极低且精度满足要求,BT.601标准的整数实现示例:

// 所有变量为8bit无符号整数,运算过程保留16bit中间值避免溢出
Y  = ((66 * R + 129 * G + 25 * B + 128) >> 8) + 16
Cb = ((-38 * R - 74 * G + 112 * B + 128) >> 8) + 128
Cr = ((112 * R - 94 * G - 18 * B + 128) >> 8) + 128

效果验证

可先生成纯红、纯绿、纯蓝的纯色测试图,转换后输入ADV7391,输出模拟视频颜色无偏色、黑白阶无溢出即转换逻辑正确。

内容的提问来源于stack exchange,提问作者user16793647

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 19:45:01