DVI采集与TS流传输原理

image

✅ 大体链路方向是对的,但是有几处关键细节要修正,还有 BT.1120 和 YUV422 的关系单独讲清楚

先把修正后的完整链路放前面,再逐条解释:

DVI信号源(主机/工业相机)
→ 内部:RGB888像素 TMDS编码 → DVI线缆上传输4对TMDS差分串行信号
→ 采集卡DVI接收芯片:TMDS解码 + 串并还原 → 并行RGB888(24bit,DE/HS/VS/像素时钟)
→ FPGA:RGB888 色彩空间转换 RGB→YUV422,输出 BT.1120 并行视频总线
→ DSP编码器:接收BT.1120的YUV422原始图像,做H.264/H.265编码,输出视频ES流
→ FPGA/DSP内部:ES打包成188字节MPEG-2 TS包
→ TS包可以二选一输出:
方案A:并行TS总线送到主控(你前面说的DATA[7:0]+CLK+VALID+PSYNC)
方案B:TS over UDP,把TS包放进UDP/IP,网口发出

1. BT.1120 是什么,和YUV422的关系(重点)

BT.1120 是并行数字视频接口标准(ITU-R BT.1120),规定的是【接口时序、引脚、同步信号】;它本身不是像素格式。

  • BT.1120 接口承载的数据一般就是 YUV422(16bit/像素),这是标清/高清视频编码器最常用的输入格式。
  • YUV422 是像素采样格式:亮度Y全采样,U、V色度隔行采样,2个像素共用一组UV。
    • RGB888:24bit /像素
    • YUV422:16bit /像素(节省带宽,H.264/H.265编码器原生就以YUV为输入,不能直接拿RGB编码!)

一句话区分:

  • YUV422 = 图像像素数据格式(内容)
  • BT.1120 = 并行传输总线标准(怎么把YUV422在硬件引脚上传)

补充:BT.1120 也可以承载别的格式,但视频编码场景几乎都是YUV422。

2. 纠正你描述里的3个小错误

① H.264/H.265 不能直接编码RGB

编码器(DSP编码核)内部算法基于YUV色彩空间,必须先把RGB转为YUV,这一步一般放在FPGA做。
RGB里红绿蓝有大量冗余,YUV把亮度和色度分离,方便压缩(人眼对亮度更敏感,色度可以降采样,也就是422/420)。

② TS封装 和 UDP是两层概念

  • TS:媒体封装层,把H.264/H.265 ES码流打包成188字节TS包;
  • UDP:传输层网络协议。
    TS over UDP = 把已经生成好的TS包,当做UDP的payload载荷,封装进IP包,通过以太网发送。

两个层级不要混:UDP只是网络运载工具,TS是视频打包格式。

③ 硬件选择小提醒:

有的方案:DSP自带RGB2YUV,不需要FPGA转;
有的方案:FPGA内置编码器,不用外部DSP。
你这个框图是:FPGA做色彩转换,DSP做编码,属于经典架构。

3. 两个输出路径(你项目里两条输出,可以二选一或者同时)

  1. 板内短距离:并行TS总线(11根IO)采集卡 → 主控板
  2. 网络输出:TS over UDP(以太网)

4. 额外区分:BT.1120 vs BT.656

经常容易搞混:

  • BT.656:标清(SD)并行YUV422
  • BT.1120:高清HD并行YUV422(720p/1080i/1080p)

这俩时序很像,BT1120是高清版本。

极简一句话总结修正后的链路

DVI源将RGB888像素编码为TMDS差分串行信号在线缆传输;接收芯片还原回并行RGB888;FPGA做RGB转YUV422,用BT.1120并行总线送给DSP;DSP完成H.264/H.265编码得到ES流,再封装成188字节TS包;TS包既可以走板上并行TS接口送给主控,也可以封装进UDP通过网口传输。

posted on 2026-09-11 15:52  中年二班  阅读(13)  评论(0)    收藏  举报