
GC_PACKET------通用控制包,General Control Packet。
INFO_FRAME------信息帧。
一、基础定义与核心定位
HDMI的传输分为三类数据:视频像素流 (TMDS通道)、音频流 (嵌入/分离)、辅助数据(Auxiliary Data)。其中:
-
GC_PACKET 属于控制数据包(Control Packet) ,是底层同步与控制的核心载体;
-
INFO_FRAME 属于元数据帧(Metadata Frame) ,是源设备向接收端传递"高级属性"的载体。
二、关键区别对比
| 维度 | **GC_PACKET(通用控制包)** | **INFO_FRAME(信息帧)** |
|---|---|---|
| 核心用途 | 传递视频/音频传输的基础控制参数 ,保障接收端正确同步和解码基本视频信号(如同步极性、像素格式)。 | 传递源设备的详细属性元数据 ,帮助接收端优化显示/播放体验(如宽高比调整、音频解码)。 |
| 内容示例 | - VSYNC/HSYNC同步极性(正/负); - 像素编码(RGB/YCbCr 4:4:4/4:2:2); - 色深(8/10/12bpc); - 扫描方式(逐行/隔行); - 视频格式ID(VIC码,如1080p60对应VIC=16); - 像素重复使能。 | - AVI Infoframe (视频元数据):色彩空间(BT.709)、宽高比(16:9)、活动区域尺寸、非均匀缩放标志; - Audio Infoframe (音频元数据):采样率(48kHz)、声道数(2.0)、编码格式(PCM); - SPD Infoframe(设备描述):制造商(如"Xilinx")、产品名("ZynqMP Monitor")。 |
| 结构特征 | 结构简单固定,以控制位域为主(无复杂头部),字节数少(通常几字节)。 | 标准化结构:头部 (类型码+版本+长度+校验码)+ 有效载荷(具体元数据),字节数较多(如AVI Infoframe约13字节)。 |
| 传输时机 | 周期性强制传输 :每个视频场/帧的**消隐期(VBlank/HBlank)**插入,频率与视频刷新率一致(如60Hz视频→每秒60次)。 | 事件触发/定期重传:仅当源状态变化(如分辨率切换、音频格式改变)时主动发送,或定期重传(如每秒1-2次)维持同步。 |
| 协议角色 | 底层同步保障:确保接收端"锁对"视频信号的时序和基础参数,是"能显示"的前提。 | 上层体验优化:让接收端"会显示"(如自动适配宽高比、选择正确的色彩空间),是"显示好"的关键。 |
三、开发中的实际意义
-
GC_PACKET的作用:
当ZynqMP的HDMI TX IP(如Xilinx HDMI 2.0 Transmitter Subsystem)输出视频时,会自动生成GC_PACKET,包含当前分辨率的VIC码 、同步极性、像素编码等。另一段的HDMI RX模块(如ADV7511或Xilinx HDMI RX IP)通过解析GC_PACKET,锁定视频时序,确保画面不撕裂、不同步。
例:若输出1080p60视频,GC_PACKET会携带VIC=16(HDMI规范定义的1080p60 ID),RX端据此配置时序发生器。
-
INFO_FRAME的作用:
需通过软件(如Linux驱动)显式配置INFO_FRAME,另一段的HDMI RX模块传递高级属性。例如:
-
设置AVI Infoframe 的
Picture Aspect Ratio为16:9,让接收端自动切换宽屏模式; -
设置Audio Infoframe 的
Sample Frequency为48kHz,让接收端的音频DAC选择正确的时钟; -
设置SPD Infoframe 的
Vendor Name为"YourBrand",方便用户识别设备。
-
四、总结:一句话区分
-
GC_PACKET是**"告诉接收端怎么接"**(基础同步与控制);
-
INFO_FRAME是**"告诉接收端怎么用好"**(高级属性与体验优化)。
在ZynqMP开发中,GC_PACKET通常由IP核自动处理,而INFO_FRAME需要软件配置(如通过Linux的DRM框架或HDMI TX IP的用户接口)。若你在开发中遇到"画面不同步"问题,优先检查GC_PACKET的参数(如VIC码、同步极性);若遇到"宽高比错误"或"色彩偏差",则需核对INFO_FRAME的配置(如AVI Infoframe的色彩空间字段)。

惠州大亚湾