音视频基础视频基础理论
【音视频基础】视频基础理论
【音视频基础】视频基础理论
个人简介
📦个人主页:
🏆技术方向:C/C++客户端(直播+音视频剪辑)
📣专栏目标:务实的掌握音视频相关专业知识
🧡如果对您有帮助的话辛苦点赞支持。👍👍👍
音视频基础专栏系列
(一)
(二)
(三)
ffmpeg专栏系列
(一)
(二)
(三)
(四)
图像基本概念
图像
- 视频 是由 一组图像组成 ,为了传输被 压缩 ,最终 在显示设备 上显示;
- 图像
是由
像素
组成,像素是由
RGB
组成;
RGB即三原色(红、绿、蓝),可以混合成世界上所有的颜色。具体RGB值表示如下图所示:
彩色图像中每个点,有R、G、B三个分量组成;以RGB24为例,图像像素数据的 存储方式 如下:
从图中可以看出,RGB24一次存储了每个像素点的R、G、B信息。
- 与RGB类似的还有BGR格式,可以互相转换。转换方式可以自己写转换程序,也可以使用有swscale相关的ffmpeg库。
- RGB
分辨率 表示横向的像素点个数与纵向的像素点个数
位深 :每一个像素占用的 位数 ;最常见的是24位-RGB888,每个颜色都是8位;还有32位-RGBA,A表示alpha(透明度)。
屏幕
一个像素是三个发光二极管组成,可以展示一组RGB值,如下图所示:
屏幕上的 每个像素由三个发光二极管 组成,整个屏幕即可表示为下图:
图像与屏幕的关系就是:图像是 数据 ,屏幕是 显示设备 ,图像数据经过驱动程序让屏幕显示图像。
表示屏幕质量的指标:
- 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
图像显示
- 图像显示的三种情况
图像大小等于显示区域大小
图像小于显示区域(拉伸/留白)
图像大于显示区域(缩小/截断)
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 为例,图像像素数据的存储方式如图所示。
从图中可以看出,YUV420P 首先存储整张图像的Y信息 , 然后存储整张图像的U信息 , 最后存储了整张图像的V信息 。
YUV查看工具
可以使用YUV Player Deluxe查看视频像素数据:
参考资料
【1】
【2】李超:音视频基础+ffmpeg原理