文章目录
- [一、RGB 色彩](#一、RGB 色彩)
-
- [1、RGB 色彩简介](#1、RGB 色彩简介)
- [2、RGB 排列](#2、RGB 排列)
- [二、YUV 色彩](#二、YUV 色彩)
-
- [1、YUV 色彩简介](#1、YUV 色彩简介)
- [2、YUV 编码好处](#2、YUV 编码好处)
一、RGB 色彩
1、RGB 色彩简介
RGB 是 计算机 中的 颜色编码方法 , 红 ( R ) / 绿 ( G ) / 蓝 ( B ) 三个颜色通道 可以设置不同的值 , 每个 通道 的 颜色值都可以取值 0 ~ 255 , 这样 三个通道 叠加 , 可以表示出
25 6 3 = 16777216 256 ^3 = 16777216 2563=16777216
种颜色值 ;
红 ( R ) / 绿 ( G ) / 蓝 ( B ) 三个颜色通道 都取值 255 , 表示当前颜色时 白色 ;
红 ( R ) / 绿 ( G ) / 蓝 ( B ) 三个颜色通道 都取值 0 , 表示当前颜色值是 黑色 ;
2、RGB 排列
一个像素点中 , 会有 RGB 三个通道的值 ,
如果颜色格式是 AV_PIX_FMT_RGB24 ,
表示 当前 像素中 颜色值 排列顺序是 : 红 Red -> 绿 Green -> 蓝 Blue ,
每个像素 1 字节 Byte , 8 位 , RGB24 表示一个像素有 24 位 , 3 字节 ,
如下图所示 :
如果颜色格式是 AV_PIX_FMT_BGR24 ,
表示 当前 像素中 颜色值 排列顺序是 : 蓝 Blue -> 绿 Green -> 红 Red ,
每个像素 1 字节 Byte , 8 位 , RGB24 表示一个像素有 24 位 , 3 字节 ,
如下图所示 :
带透明度通道的颜色排列 :
- AV_PIX_FMT_ARGB : 透明度通道在 RGB 颜色值前面 ;
- AV_PIX_FMT_RGBA : 透明度通道在 RGB 颜色值后面 ;
- AV_PIX_FMT_ABGR : 透明度通道在 BGR 颜色值前面 ;
- AV_PIX_FMT_BGRA : 透明度通道在 BGR 颜色值后面 ;
二、YUV 色彩
1、YUV 色彩简介
YUV 也是 计算机 中的 颜色编码方法 , 常用于 模拟视频 编码 , 电视就是使用 YUV 编码 ;
- " Y " 是 亮度信息 , 表示 " 明亮度 " , 英文名称 Luminance 或 Luma , 即 灰度值 ;
- " UV " 是 色彩信息 , 表示 " 色度 " , 英文名称 Chrominance 或 Chroma , 即 像素颜色 ;
下图中 , 中间的图像是 Y 灰度图像 , 只有 Y 也可以成像 , 右侧是 UV 色度信息 , Y 和 UV 信息 进行叠加显示 , 就可以达到 作色 彩色图像的效果 ;
2、YUV 编码好处
YUV 编码的好处是 ,
- 亮度 Y 和 色度 UV 分开进行编码 , 两个信息的编码 , 互不干扰 ;
- 黑白电视 , 只使用 Y 编码即可 , 只需要 灰度值 就可以成像 ;
- 彩色电视 , 使用 YUV 编码 , 这样可以同时兼容 黑白电视 和 彩色电视 ;
- 降低 UV 色度 的编码频率 , 多个 Y 灰度 使用 1 个 UV 色度 , 也不会影响太大 , 这样可以节省传输带宽 ;
如 : YUV 是 3 个字节 ,
- 正常情况下 , 2 个像素点 占 6 字节 ;
- 如果 两个 Y 灰度 使用 一个 UV 色度 , 这样 2 个像素点是 4 字节 ;