目录

音视频基础视频基础理论

【音视频基础】视频基础理论

【音视频基础】视频基础理论

个人简介

📦个人主页:

🏆技术方向:C/C++客户端(直播+音视频剪辑)

📣专栏目标:务实的掌握音视频相关专业知识

🧡如果对您有帮助的话辛苦点赞支持。👍👍👍

音视频基础专栏系列

(一)

(二)

(三)

ffmpeg专栏系列

(一)

(二)

(三)

(四)

图像基本概念

图像

  1. 视频 是由 一组图像组成 ,为了传输被 压缩 ,最终 在显示设备 上显示;
  2. 图像 是由 像素 组成,像素是由 RGB 组成;
    • RGB即三原色(红、绿、蓝),可以混合成世界上所有的颜色。具体RGB值表示如下图所示:

      https://i-blog.csdnimg.cn/blog_migrate/b8cc10e8650b3dddea1e69dee14b6d84.png

      • 彩色图像中每个点,有R、G、B三个分量组成;以RGB24为例,图像像素数据的 存储方式 如下:

        https://i-blog.csdnimg.cn/blog_migrate/708b7cb6481904d542d9d8330d0cfb68.png

      从图中可以看出,RGB24一次存储了每个像素点的R、G、B信息。

      • 与RGB类似的还有BGR格式,可以互相转换。转换方式可以自己写转换程序,也可以使用有swscale相关的ffmpeg库。
      • RGB
    • 分辨率 表示横向的像素点个数与纵向的像素点个数

    • 位深 :每一个像素占用的 位数 ;最常见的是24位-RGB888,每个颜色都是8位;还有32位-RGBA,A表示alpha(透明度)。

屏幕

  • 一个像素是三个发光二极管组成,可以展示一组RGB值,如下图所示:

    https://i-blog.csdnimg.cn/blog_migrate/d5965d57eceba39c59b9805863fc4a4a.png

  • 屏幕上的 每个像素由三个发光二极管 组成,整个屏幕即可表示为下图:

    https://i-blog.csdnimg.cn/blog_migrate/673be14fc493aba4f04b236921528640.png

  • 图像与屏幕的关系就是:图像是 数据 ,屏幕是 显示设备 ,图像数据经过驱动程序让屏幕显示图像。

  • 表示屏幕质量的指标:

    • PPI(pixels per inch):每英寸的像素数
    • DPI(Dots pen inch):每英寸的点数,基本上DPI=PPI
    • PPI>300就属于视网膜级别,人眼区分不出来,认为是一体的

图像码流如何计算?

要求的 平滑度越高,帧率就越大 ;要求的 清晰度越高,分辨率就越大

分辨率

  • 分辨率即是: X轴的像素个数 * Y轴的像素个数
  • 常见的宽高比 16:9 以及 4:3
    • 16:9的分辨率有360P(640 360)、720P(1280 720)、1K(1080P 1920 1080)、2K(1440P,2560 1440)、4K(4096*2160;如今大多显示器都是用此宽高比
    • 4:3常见的是640*480;旧有的老电视机会采样这个宽高比

帧率

  • 帧率是: 每秒钟采集/播放图像的个数
  • 动画的帧率是:25帧/s
  • 常见的帧率是:15帧/s,30帧/s,60帧/s
  • 实时通信一般是15帧/s(帧率越大,占用的传输带宽就越大)
  • 录课一般30帧/s能够满足需求
  • 电影一般是60帧/s

码流计算

  • 未编码的RGB码流 = 分辨率(宽*高)*3(Byte)*25(fps)
    • 例如:1280 720 3 25=69120000 约69兆Byte/s;码流是以位为单位的,则69M 8=552Mbit/s

图像显示

  • 图像显示的三种情况
    • 图像大小等于显示区域大小

      https://i-blog.csdnimg.cn/blog_migrate/2602b1659306c43224b0d1033f7b99af.png

    • 图像小于显示区域(拉伸/留白)

      https://i-blog.csdnimg.cn/blog_migrate/1a4e3478128cae0c49b62a1380d81367.png

    • 图像大于显示区域(缩小/截断)

      https://i-blog.csdnimg.cn/blog_migrate/ba8e34dd10176cc6b223add90f6ca405.png

YUV

YUV格式

  • 相关实验表明,人眼对亮度敏感而 对色度不敏感 。因而可以 将亮度信息和色度信息分 离,并对色度信息采用更“狠”一点的压缩方案,从而提高压缩效率。
  • YUV(也称YCbCr)格式中, Y只包含亮度信息,而UV只包含色度信息
  • 主要的采样格式有YUV4:2:0、YUV4:2:2和YUV4:4:4。
    • YUV444:与RGB88同等概念
    • YUV422:每一行来说,隔一行有个U/V,数据量:1280 720 +2 1280/2 720=2 1280*720, 数据量减少了2/3
    • YUV420: 应用最广泛的格式 ,播放器必须支持
  • 为什么使用YUV? 显示器从黑白显示器演变过来的,为了和以前格式兼容以及 YUV存储的数据比RGB要少很多

RGB与YUV的转换

  • RGB与YUV关系: RGB用于屏幕图像的展示,YUV用于采集与编码。

  • YUV转RGB:

    • R = Y + 1.140*v
    • G = Y - 0.394 U -0.581 v
    • B = Y + 2.032*u
  • RGB转YUV

    • Y = 0.299 R + 0.587 G + 0.114*B
    • U = -0.147 R - 0.289 G + 0.436*B = 0.492(B-Y)
    • V = 0.615R - 0.515 G - 0.100 B = 0.877*(R-Y)
  • 4:2:0并 不意味着只有Y、Cb两个分量,而没有Cr分量 。它实际指的是每行扫描线来说,只有一种色度分量,它以2:1的抽样率存储。相邻的扫描行存储不同的色度分量,也就是说,如果一行是4:2:0的话,下一行就是4:0:2,再下一行是4:2:0…以此类推

YUV存储

  • YUV420P 为例,图像像素数据的存储方式如图所示。

    https://i-blog.csdnimg.cn/blog_migrate/20d3ffdd6ac77404206c4ac1a24a0423.png

    从图中可以看出,YUV420P 首先存储整张图像的Y信息然后存储整张图像的U信息最后存储了整张图像的V信息

YUV查看工具

可以使用YUV Player Deluxe查看视频像素数据:

https://i-blog.csdnimg.cn/blog_migrate/1e812c2635c13430b54c34256c62a5c5.png

参考资料

【1】

【2】李超:音视频基础+ffmpeg原理