一、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 字节 ,

如下图所示 :
【音视频原理】图像相关概念 ③ ( RGB 色彩简介 | RGB 排列 | YUV 色彩简介 | YUV 编码好处 )-LMLPHP

如果颜色格式是 AV_PIX_FMT_BGR24 ,

表示 当前 像素中 颜色值 排列顺序是 : 蓝 Blue -> 绿 Green -> 红 Red ,

每个像素 1 字节 Byte , 8 位 , RGB24 表示一个像素有 24 位 , 3 字节 ,

如下图所示 :

【音视频原理】图像相关概念 ③ ( RGB 色彩简介 | RGB 排列 | YUV 色彩简介 | YUV 编码好处 )-LMLPHP


带透明度通道的颜色排列 :

  • 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 信息 进行叠加显示 , 就可以达到 作色 彩色图像的效果 ;
【音视频原理】图像相关概念 ③ ( RGB 色彩简介 | RGB 排列 | YUV 色彩简介 | YUV 编码好处 )-LMLPHP


2、YUV 编码好处


YUV 编码的好处是 ,

  • 亮度 Y 和 色度 UV 分开进行编码 , 两个信息的编码 , 互不干扰 ;
  • 黑白电视 , 只使用 Y 编码即可 , 只需要 灰度值 就可以成像 ;
  • 彩色电视 , 使用 YUV 编码 , 这样可以同时兼容 黑白电视 和 彩色电视 ;
  • 降低 UV 色度 的编码频率 , 多个 Y 灰度 使用 1 个 UV 色度 , 也不会影响太大 , 这样可以节省传输带宽 ;

如 : YUV 是 3 个字节 ,

  • 正常情况下 , 2 个像素点 占 6 字节 ;
  • 如果 两个 Y 灰度 使用 一个 UV 色度 , 这样 2 个像素点是 4 字节 ;
01-23 22:03