如果排查的思路对你有帮助,请记住 消雨匆匆 。 码字和排查很累,仅此而已 ,硬件不是抄电路,拿烙铁,懂点软件,细致分析,找问题和破案搜集线索是一样的。

忽然前些天和之前的同事聚会,同事聊了一下他面试遇到的一个问题,因为他是做IPC硬件的,可是面试被一些基础难道了,问到图像码流,码率,带宽的问题,刚好自己也搜一搜,给自己充个电。

目录

1、YUV和YCrCb

2、RGB

3、针对YUV的理解

4、YUV文件大小计算(需要的带宽)


借助这位大神的一些总结:

https://blog.csdn.net/asahinokawa/article/details/80596655,再做一些分析延展

1、YUV和YCrCb

先扫盲一下YUV YCrCb的区别

详细介绍一下YUV(也称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法(属于PAL制式)。YUV主要用于优化彩色视频信号的传输,使其向后兼容老式黑白电视。与RGB视频信号传输相比,它最大的优点在于只占用极少的带宽,而RGB要求三个独立的视频信号同时传输。

YUV中,“Y”代表明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。“亮度”是通过RGB输入信号来创建的,方法是将RGB信号的特定部分叠加到一起。“色度”则定义了颜色的两个方面——色调与饱和度,分别用Cr和Cb来表示。其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异,而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之间的差异,此即所谓的色差信号,也就是我们常说的分量信号(Y、R-Y、B-Y)。
    在专业领域了,“Y CB CR”表示数字色差信号而不是模拟色差信号。色差信号Y,R-Y,B-Y信号一般通称为Y, Cr,Cb; 习惯上Y,Cr,Cb为数字(PCM)的色差信号,模拟的色差信号则称Y,Pr,Pb,所以我们常在DVD Player的内部看到Y,Cr,Cb而在DVD Player的外部看到色差输出标示为Y,Pr,Pb或YUVYUV则是在欧洲电视系统PAL中的色差信号的通称,包含数字及模拟的色差信号都称YUV,所以当您看到YUV时您就要联想到它是PAL系统中的Y,R-Y,B-Y信号,它可能是数字(PCM)的YUV,也可能是模拟的YUV。 答 2: 也就是说是模拟和数字的区别了在习惯上有所区别:
“习惯上Y,Cr,Cb为数字(PCM)的色差信号,模拟的色差信号则称Y,Pr,Pb,所以我们常在DVD Player的内部看到Y,Cr,Cb而在DVD Player的外部看到色差输出标示为Y,Pr,Pb或YUV;”

实际上可能一样:
YUV则是在欧洲电视系统PAL中的色差信号的通称,包含数字及模拟的色差信号都称YUV,所以当您看到YUV时您就要联想到它是PAL系统中的Y,R-Y,B-Y信号,它可能是数字(PCM)的YUV,也可能是模拟的YUV。”

2、RGB

个人觉得RGB 888  RGB565是最简单也最好理解的,RGB888,每个颜色信息为8位,一个颜色就有也就是有2的8次方=256的数据信息,然后一个像素通过R G B 三个不同的占比从而显示了一个颜色,这个也是“美术里面的调色板”,用最基本的几个颜色可以调出各种颜色。

正常的RGB24是由24位即3个字节来描述一个像素,R、G、B各8位。而实际使用中为了减少图像数据的尺寸,如视频领域,对R、G、B所使用的位数进行的缩减,如你所说的RGB565和RGB555。
RGB565 就是R-5bit,G-6bit,B-5bit
RGB555 就是R-5bit,G-5bit,B-5bit
RGB888 就是R-8bit,G-8bit,B-8bit ;其实这就是RGB24位
至于BMP那是RGB的像素数据基础上增加位图头数据而成的文件格式。(有兴趣可以自己用Uedit打开一个BMP图,你就会发现图片的头几位是什么信息。)

RGB的存储空间很大,所以图片一般都不小
RGB565 是16位的,2个字节,5+6+5,第一字节的前5位是R,后三位+第二字节前三位是G,第二字节后5位是B。
RGB555 也是16位的,2个字节,RGB各5位,有1位未用。
RGB888 是24位的,3个字节。

3、针对YUV的理解

先致敬这个博主的总结

简单粗暴的理解,实际存储可能不是Y U V一个个顺序的,有可能是一堆Y先存,再存UUUUU   再存 VVVV,然后读取的时候按照规则去取就行了

4、YUV文件大小计算(需要的带宽)

以720×488大小图象YUV420 planar为例,其存储格式是: 共大小为(720×480×3>>1)字节,

分为三个部分:Y,U和V

Y分量: (720×480)个字节 
U(Cb)分量:(720×480>>2)个字节 
V(Cr)分量:(720×480>>2)个字节

三个部分内部均是行优先存储,三个部分之间是Y,U,V 顺序存储。 
即 
0--720×480字节是Y分量值, 
720×480--720×480×5/4字节是U分量 
720×480×5/4 --720×480×3/2字节是V分量。

这里作者写的比较难懂,而且用了右移的方式,比较代码化,其实右移一位就是除以2,右移两位就是除以4,懂代码的就看的懂,我重新进行梳理:

YUV420:720×488大小,按照之前YUV420,四个Y共用一个UV,注意一下UV的概念,一个UV,包含U和V,所以一个Y,就要1/4个U和1/4个V

所以存储就可以推出来了

Y分量需要的空间:720×480

U需要的空间:720×480/4

V需要的空间:720×480/4

所以按照空间存储

0--720×480字节是Y分量值, 
720×480--720×480×(1+1/4)字节是U分量

720×480×(1+1/4)--720×480×(1+1/4+1/4)字节是V分量。

同理 ,YUV422:720×488大小,两个Y共用一个UV,所以一个Y,就要1/2个U和1/2个V

0--720×480字节是Y分量值, 
720×480--720×480×(1+1/2)字节是U分量

720×480×(1+1/2)--720×480×(1+1/2+1/2)字节是V分量。

涉及带宽,再X8即可  因为字节到bit。

另外如果涉及4 :2: 2 和4:2:0 转换
最简单的方式:YUV4:2:2 —> YUV4:2:0 Y不变,将U和V信号值在行(垂直方向)在进行一次隔行抽样。 YUV4:2:0 —> YUV4:2:2 Y不变,将U和V信号值的每一行分别拷贝一份形成连续两行数据。

YUV RGB格式分析,以及对应码率(带宽)计算相关推荐

  1. YUV / RGB 格式及快速转换算法

    1 前言 自然界的颜色千变万化,为了给颜色一个量化的衡量标准,就需要建立色彩空间模型来描述各种各样的颜色,由于人对色彩的感知是一个复杂的生理和心理联合作用 的过程,所以在不同的应用领域中为了更好更准确 ...

  2. YUV / RGB 格式及快速转换

    YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大. YUV是一个比较笼统地说法,针对它的具体排列方式,可以分为很 ...

  3. YUV / RGB 格式及快速转换算法总结(转载)

    https://blog.csdn.net/frankiewang008/article/details/6854616?utm_medium=distribute.wap_relevant.none ...

  4. 分析比较图像RGB格式和YUV格式的存储概率分布

    分析比较图像RGB格式和YUV格式的存储概率分布 实验思路 两个图片文件down.yuv和down.rgb均为二进制存储的图片文件,像素为256* 256.yuv为4:2:0格式,即1份y对应0.25 ...

  5. 初学音视频(一)-RGB和YUV格式分析

    前言 有幸能够看到雷霄骅先生的博客,很感谢雷神能够这么无私把知识分享出来,对我这种新手的帮助实在是太大了.希望到另一个世界雷神不用再这么辛苦的. 本篇文章基本全是参考雷神的:视音频数据处理入门:RGB ...

  6. 转:YUV RGB 常见视频格式解析

    转: http://www.cnblogs.com/qinjunni/archive/2012/02/23/2364446.html YUV RGB 常见视频格式解析 I420是YUV格式的一种,而Y ...

  7. 【DSP开发】【VS开发】YUV与RGB格式转换

    [视频处理]YUV与RGB格式转换 YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与 ...

  8. 数据压缩实验一:yuv转rgb格式实验报告

    数据压缩实验一:yuv转rgb格式实验报告 一:实验基本原理 yuv转rgb格式转换公式: R=Y+1.4020*(V-128) G=Y-0.3441*(U-128)-0.7141*(V-128) B ...

  9. YUV与RGB格式详解

    YUV 是一种颜色编码方法,和它等同的还有 RGB 颜色编码方法. RGB 颜色编码 RGB 三个字母分别代表了 红(Red).绿(Green).蓝(Blue),这三种颜色称为 三原色,将它们以不同的 ...

最新文章

  1. POJ 2185 正解 KMP
  2. C#Dictionary通过索引查找key和value,非循环方法查询
  3. 支持向量机(SVM)的约束和无约束优化、理论和实现
  4. icmp报文_用侦察兵的故事趣讲ICMP和Ping,看完想忘都难!
  5. python3 赋值 浅拷贝 深拷贝 简介
  6. android unity hook,[原创]Unity3d安卓游戏DLL动态调式与HOOK基础
  7. 2013长春区域赛总结
  8. 科学与技术名词解释计算机病毒,名词解释计算机病毒
  9. 将a数组部分给b数组c语言,C语言第6章1 数组.ppt
  10. 好看的php表格样式,CSS_CSS实现的清爽、漂亮的表格样式分享,效果: 实现代码:复制代码 - phpStudy...
  11. CSS3转换之移位translate(CSS3)
  12. 使用jsp:include嵌入页面的两种方式
  13. 容灾服务器作用,存储容灾服务
  14. 嵌入式系统开发之根文件系统
  15. 运维 xshell 快捷键
  16. 不要上网更新计算机系统的补丁程序,360安全卫士更新补丁后系统不能联网怎么办...
  17. 征信系统如何保障信息主体的合法权益?
  18. Python100Days学习笔记---Day16-20Python语言进阶
  19. Streaming Telemetry翻译学习
  20. 保研er:9月,我太南了...

热门文章

  1. matlab使用switch结构判断学生成绩的等级
  2. 每日一书丨数据治理的这些事儿,90%的人搞不清
  3. MySQL参数 之 innodb_buffer_pool_size
  4. 益寿延年,这13种食物真是宝,能延寿10年,赶紧收藏!
  5. 【考研经验】19年华东师范大学计算机专硕考研经验(初试+复试)分享!专业课140分!...
  6. 电脑蓝牙已关闭,蓝牙开关不见的故障排除
  7. 二、java项目常用工具类之beancopy,bean和map转换工具类
  8. python笔记-05(条件、循环及其他语句)
  9. 安卓Android、iOS移动端车牌识别OCR技术原理
  10. MySQL MGR 单主模式下单点故障时的节点角色切换规则