音视频开发3 视频基础,图片基础

图片像素(Pixel)

一张图片是由多少个 像素 构成的。

例如一张图片是由60x50组成的。

位深度 bit depth

RGB表示法

Red)、绿Green)、Blue)

除了24bit,常见的位深度还有:

  • 1bit:2种颜色,黑白两色
  • 3bit:8种颜色,用于大部分早期的电脑显示器,红绿蓝各占1位
  • 8bit:256种颜色,用于最早期的彩色Unix工作站,红色占3位、绿色占3位、蓝色占2位
  • 16bit:红色占5位、蓝色占5位、绿色占6位
  • 24bit:也被称为是:真彩色(True Color),也就是常说的24位真彩

  • 32bit:基于24位,增加8个位的透明通道
    • 可以表示带有透明度的颜色
    • 比如CSS中的rgba(255, 0, 0, 0.5)表示50%透明度的红色

YUV 表示法:

Y、U、V三个分量组成,现在通常说的YUV指的是YCbCr

  • Y:表示亮度(Luminance、Luma),占8bit(1字节)
  • CbCr:表示色度(Chrominance、Chroma)
    • Cb(U):蓝色色度分量,占8bit(1字节)
    • Cr(V):红色色度分量,占8bit(1字节)

YUV和RGB 比较:体积更小

YUV的优势是比 RGB拥有更小的体积

  • 如果使用RGB
    • 比如RGB888(R、G、B每个分量都是8bit)
    • 1个像素占用24bit(3字节)
  • 如果使用YUV
    • 1个像素可以减小至平均只占用12bit(1.5字节)
    • 体积为RGB888的一半

YUV 的采样格式

采样格式通常用A:B:C的形式来表示,比如4:4:4、4:2:2、4:2:0等,其中我们最需要关注的是4:2:0

YUV 的存储格式

YUV的存储格式可以分为3大类:

  • Planar(平面)
    • Y、U、V分量分开单独存储
    • 名称通常以字母p结尾
  • Semi-Planar(半平面)
    • Y分量单独存储,U、V分量交错存储
    • 名称通常以字母sp结尾
  • Packed(紧凑)
    • 或者叫Interleaved (交错)
    • Y、U、V分量交错存储

YUV 的常用类型,结合采样格式和存储格式

4:4:4

  • I444
Y Y Y Y
Y Y Y Y
U U U U
U U U U
V V V V
V V V V

  • YV24
Y Y Y Y
Y Y Y Y
V V V V
V V V V
U U U U
U U U U

  • NV24
Y Y Y Y
Y Y Y Y
U V U V U V U V
U V U V U V U V

  • NV42
Y Y Y Y
Y Y Y Y
V U V U V U V U
V U V U V U V U

4:2:2

  • I422
Y Y Y Y
Y Y Y Y
U U
U U
V V
V V

  • YV16
Y Y Y Y
Y Y Y Y
V V
V V
U U
U U

  • NV16
Y Y Y Y
Y Y Y Y
U V U V
U V U V

  • NV61
Y Y Y Y
Y Y Y Y
V U V U
V U V U

  • UYVY
U Y V Y U Y V Y
U Y V Y U Y V Y

  • YUYV
Y U Y V Y U Y V 
Y U Y V Y U Y V 

  • YVYU
Y V Y U Y V Y U
Y V Y U Y V Y U

4:2:0

I420 (YUV420P)

  • 大多数视频解码器以I420格式输出原始图片
 
Y Y Y Y
Y Y Y Y
U U
V V

  • YV12
Y Y Y Y
Y Y Y Y
V V
U U
  • NV12

Y Y Y Y
Y Y Y Y
U V U V

  • NV21
Y Y Y Y
Y Y Y Y
V U V U

总结

图片有2个要素,视频有3个要素。

像素,RGB/YUV类型,fps(每秒播放多少个图片)

上一篇:并行执行的概念—— 《OceanBase 并行执行》系列 一


下一篇:深入探讨SOCKS5代理:安全、隐私与技术实现