图像数据传输中一般用到的报文格式 FPGA 本身 不能只靠数据值自动可靠判断 “这是直方图数据还是灰度图数据”一般要靠 协议/标志位/帧格式 来区分。### 最可靠上游给类型标志### 2. 通过帧头判断### 3. 通过传输长度判断### 4. 通过通道/地址判断### 5. 不推荐只靠数据内容判断### 最常见的正式测量数据灰度图 / 原始图像如果你前端是传感器、相机、MIPI 图像链路正式测量最常用的是灰度图 / raw image / pixel map也就是每个像素都有一个值pixel(x, y)优点是信息最完整可以后处理- 看图像质量- 看噪声- 看坏点- 看条纹- 看空间分布- 算均值/方差- 重新做直方图所以如果是图像类设备 灰度图/原始图一般是最核心的数据 。raw image / pixel map 不是某一个固定标准格式的名字 它更多是一个泛称意思是未经压缩、未经复杂编码处理的原始像素数据。## raw image 是什么比如一幅灰度图宽度 640高度 512每个像素 12bit那 raw image 本质就是按某个顺序传pixel(0,0), pixel(1,0), pixel(2,0) ... pixel(639,0)pixel(0,1), pixel(1,1), pixel(2,1) ... pixel(639,1)pixel(639,511)这就叫 pixel map / raw image。## 谁定义格式一般有几层定义。### A. 传感器芯片定义如果是图像传感器它的数据手册会定义- 输出位宽8bit / 10bit / 12bit / 14bit / 16bit- Bayer / Mono / YUV / RAW10 / RAW12- 行同步/帧同步- MIPI CSI-2 data type- pixel packing 方式例如 MIPI CSI-2 常见这些就是传感器输出格式。### B. 接口协议定义如果走 MIPI CSI-2格式由 MIPI 包头里的 Data Type 字段定义0x2A RAW80x2B RAW100x2C RAW120x2D RAW14如果走 LVDS/并口也可能由厂商自己定义line_validframe_validdata[11:0]这种就靠时序图说明。补充RAW12 的意思是每个像素是 12bit 的原始图像数据格式## 1. RAW12 是什么比如一个灰度传感器每个像素亮度值范围是0 ~ 4095因为2^12 4096所以每个像素用 12bit 表示。例如pixel0 0x123pixel1 0xABC它们都是 12bit 的像素值。每个 pixel 一个 12bit 灰度值### 2. 直方图一般是统计数据直方图不是完整图像而是统计每个灰度值出现了多少次如果是 8bit 灰度就是 256 个 bin。如果是 12bit就可能是 4096 个 bin。直方图主要用于- 看曝光是否合适- 看动态范围- 看灰度分布- 看是否饱和- 做阈值判断- 做自动增益/自动曝光- 快速统计图像质量但是它丢掉了空间信息。比如两张图左边亮右边暗上边亮下边暗它们可能直方图一样但图像完全不同。所以直方图适合做统计不适合替代原始图### 还有可能是这些数据正式测量还可能输出A. 原始 ADC 数据如果前端是探测器/采集板可能直接输出比如每个采样点 12bit/14bit/16bit。后面再转换成图像或统计量。B. 均值 / 方差 / 最大最小值有些正式测量不传整幅图只传统计结果用于快速判断状态。C. ROI 区域数据只传感兴趣区域例如只传中心 128×128而不是整幅 640×512。D. 特征数据比如这类是经过算法处理后的结果。E. 多通道数据如果是多路探测器或多光谱系统可能是channel0 imagechannel1 imagechannel2 image