RGB、YUV、NV12、YUYV、MJPEG和RAW
在 bring up sensor的过程中会遇到很多格式比如RGB、BGR、YUV、YUYV、NV12、MJPEG、RAW10……看懂图像格式主要看四点颜色怎么表示、颜色采样多少、字节怎么排列、数据有没有压缩。一、图像格式的四个不同维度图像数据颜色表达RGB / YCbCr / Bayer RAW采样方式4:4:4 / 4:2:2 / 4:2:0内存布局packed / planar / semi-planar压缩状态MJPEG / H.264 / H.265维度回答的问题例子颜色表达每个像素用什么颜色分量表示RGB、YCbCr、Bayer RAW采样方式色度分量怎么降采样4:4:4、4:2:2、4:2:0内存布局各分量在内存里怎么排列packed、planar、semi-planar编码/压缩数据有没有进一步编码压缩JPEG、MJPEG、H.264、H.265二、什么是 RGBRGB是一种用红、绿、蓝三个分量表示颜色的方法。本质上一个像素的颜色由三个数共同决定Pixel(R,G,B)例如最常见的RGB888R/G/B 每个分量都是 8 bit也就是每个分量范围都是 0~255一个像素 ┌──────┬──────┬──────┐ │ R │ G │ B │ │ 8bit │ 8bit │ 8bit │ └──────┴──────┴──────┘ 总共 24 bit 3 Byte / pixel对于RGB888格式下的1080p如果不考虑 stride、padding 等问题一帧大约需要1920 × 1080 × 3 ≈ 6.22 MBRGB和BGR又是什么关系RGB 和 BGR 本质上是同一种颜色模型区别只是 R、G、B 三个分量在内存里的排列顺序不同。比如一个像素红色分量是 10绿色是 20蓝色是 30。RGB 排列 BGR 排列 R G B B G R 10 20 30 30 20 10 内存 0x0A 0x14 0x1E 0x1E 0x14 0x0A❗注意OpenCV 默认很多接口使用 BGR而不是 RGB。三、什么是 YUVYUV 是一种把图像拆成亮度信息 颜色信息来表示的方法工程里经常把数字视频中的 Y’CbCr 统称为 YUV。Y主要表示亮度信息Cb和Cr表示颜色差异信息U 蓝色色差V 红色色差。如果只保留 Y不要 U/V那么图像仍然能看清内容只不过变成黑白图。人眼对亮度变化更敏感对颜色细节没那么敏感。所以可以保留完整的 Y而减少 U/V 的数据量肉眼通常不太容易察觉但带宽能明显下降。4:4:4、4:2:2、4:2:0是什么它们描述亮度和色度的采样比例。采样方式含义8位数据常见体积4:4:4每个像素都有完整亮度和颜色采样较大4:2:2水平方向两个像素共享部分颜色信息常见为2字节/像素4:2:0水平和垂直方向都减少颜色采样常见为1.5字节/像素这里的“共享”指的是多个像素不再各自保存一套 Cb、Cr而是共同使用同一组色度信息。4:4:4 每个像素都有自己的 Y、Cb、Cr每个都是 1 Byte 所以1 1 1 3 Byte / pixel 像素1 像素2 像素3 像素4 Y1 Y2 Y3 Y4 Cb1 Cb2 Cb3 Cb4 Cr1 Cr2 Cr3 Cr4 4:2:2 亮度 Y 仍然每个像素都有但相邻两个像素共用一套 Cb、Cr 两个像素总共需要Y1 Y2 Cb Cr 4 Byte 所以平均一个像素4 Byte ÷ 2 pixel 2 Byte / pixel 像素1 像素2 像素3 像素4 Y1 Y2 Y3 Y4 └──── Cb0 ────┘ └──── Cb1 ────┘ └──── Cr0 ────┘ └──── Cr1 ────┘ 4:2:0 通常可以近似理解成一个 2×2 像素块4 个像素共享一组 Cb、Cr 4个Y 1个Cb 1个Cr 4 1 1 6 Byte 所以平均一个像素6 ÷ 4 1.5 Byte / pixel Y1 Y2 Y3 Y4 但整个 2×2 区域只保存1 个 Cb 和 1 个 Cr P1 ─┐ P2 ─┤ P3 ─┼── 共用 Cb0、Cr0 P4 ─┘四、什么是 YUYVYUYV 是一种 YUV 4:2:2 的内存排列格式。Y0像素0亮度U0共享色度Y1像素1亮度V0共享色度像素 0 和像素 1 共享 U0 和 V0四个字节表示两个像素所以8位 YUYV 通常是每像素2字节不考虑行尾填充。它没有像 JPEG 那样做图像压缩拿到后比较容易转换和处理但数据量比 NV12 大也比 MJPEG 更吃 USB 或内存带宽。还有几个长得很像的格式YUYVY0 U0 Y1 V0 UYVYU0 Y0 V0 Y1 YVYUY0 V0 Y1 U0 VYUYV0 Y0 U0 Y1它们本质上都是 YUV422 packed区别只是字节排列顺序。

相关新闻

Agent Vault Proposals机制解析:AI Agent如何安全地“申请“新凭据(完整工作流图解)

Agent Vault Proposals机制解析:AI Agent如何安全地“申请“新凭据(完整工作流图解)

Agent Vault Proposals机制解析:AI Agent如何安全地"申请"新凭据(完整工作流图解) 【免费下载链接】agent-vault A HTTP credential proxy and vault for AI agents like Claude Code, OpenClaw, Hermes, custom agents harnesses…

2026/10/7 15:30:46 阅读更多 →
【ptrade】风险平价回测实录

【ptrade】风险平价回测实录

04_风险平价 回测实录 6只低相关ETF按20日波动率倒数分配权重,每10个交易日再平衡一次。 策略类型:资产配置 / 风险平价 回测批次:2026-10-06(本地 QuantStudio 回测引擎) 数据来源:QuantStudio 本地行情库(etf_daily / stock_daily) 一、策略思路 这是本批里最"…

2026/10/7 15:30:46 阅读更多 →
词汇检测中英美发音不同,校区怎样事先约定判分口径?

词汇检测中英美发音不同,校区怎样事先约定判分口径?

校区应在检测前明确课程采用的发音资料、检测任务和可接受答案。学生用了另一种常见发音时,先核对词典与课程要求,再判定;不能在看到成绩后临时改规则,也不能把口音差异直接记成不会这个词。先问这次检测要看什么脑机单词速记的交…

2026/10/7 15:30:46 阅读更多 →

最新新闻

淋巴细胞目标检测实战:从标注格式转换到YOLO训练避坑指南

淋巴细胞目标检测实战:从标注格式转换到YOLO训练避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 16:01:28 阅读更多 →
树莓派计算模块CM4与CM5全SKU对比与选型指南

树莓派计算模块CM4与CM5全SKU对比与选型指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 16:01:27 阅读更多 →
SystemC与TLM2.0的ESL性能建模实战:从架构评估到GEM5联合仿真

SystemC与TLM2.0的ESL性能建模实战:从架构评估到GEM5联合仿真

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 16:01:27 阅读更多 →
Altium Designer PCB开窗挖槽:阻焊开窗与机械层铣槽槽孔

Altium Designer PCB开窗挖槽:阻焊开窗与机械层铣槽槽孔

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 16:01:27 阅读更多 →
SMB版本差异与Windows局域网共享故障排查指南

SMB版本差异与Windows局域网共享故障排查指南

简介:smb.rar_SMB 是一份以经典《超级玛丽》(Super Mario Bros)为蓝本的 2D 平台游戏源码工程,面向刚接触游戏编程的 C 语言学习者和爱好者,演示了从窗口创建、资源加载到游戏逻辑更新的完整流程。压缩包内共 33 个文件…

2026/10/7 16:01:27 阅读更多 →
PDN阻抗优化与芯片供电仿真:Sigrity+ADS双工具实战指南

PDN阻抗优化与芯片供电仿真:Sigrity+ADS双工具实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 16:00:27 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 14:34:12 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 14:34:13 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 9:29:10 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 14:34:12 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 11:43:46 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 13:34:55 阅读更多 →