视频显示原理整体介绍
一 、视频是什么?
动画和视频的本质都是按一定顺序快速展示的一组图片,因为人眼的视觉暂留原理就形成了连续移动的感觉,这就是视频。
上文说到快速展示,这个速度使用帧率来衡量的,所谓帧率(FPS)就是指一秒钟展示的图片数,比如常见的有24、30、60。接下来我们去了解图片显示原理:
二、图像显示原理
一张图片的本质就是一组像素点。比如一张100x100的彩色照片,它的本质就一个100x100的矩阵,矩阵上每个位置的值表示的是这个点位的颜色信息,一个点的颜色有不同的表示方法和位数,不同的颜色空间(RGB,YUV)适合不同的场景,而表示颜色用到的位数越多则意味着更精细的颜色梯度以及更真实的色彩还原能力,但也会带来存储、处理、传输成本的增大。
显示器的作用就是不停的把自己显示存储区或者叫缓冲的点阵变成真正的图片,所以它有两个重要参数: 1 刷新率 2 还原度(就是说一个点的色彩信息是深红,最后用户看到的是否就是精确的深红)。
总结下 “显示的原理就是不停的生成图片对应的矩阵,并且按照一定频率把这个点阵放到显示器缓冲区中”。比如说view系统就是一套定义图片的API,通过这套API开发者能够告诉计算机每一张显示的图片怎么生成(绘制)。
说到这里那你是不是有点好奇,那视频的本质就是一张张图片,视频信息不就是应该是一个个矩阵了吗,我们把一个个矩阵直接拿到显示器缓冲区不就可以了吗,原理上的确是这样的,没错!! 但是我们可以简单计算下,假设我们的手机屏幕是1080x720,每个点通过8位来表示颜色,就是说有256种颜色,然后视频按照24fps来播放,我们假设要播放一个1h的视频,我们可以计算它的大小是:
1080x720x8x24x60x60=537,477,120,000 bit=67,184,640,000B=67,184,640KB=64,184MB=64GB
一个一小时的视频需要64G,这个无论是传输,还是存储成本都是太大了,这还是按照较低的图像和帧率标准去计算的。
所以视频的传输、存储都必须压缩或者叫编码,等最后播放时候再解压缩或者叫解码,这也是视频压缩算法超级赚钱的原因。当然这里说的只是无声视频,还有音频部分,音频部分可以认为是一维的点,占用内存比视频少,但也有相应的音频压缩处理,播放视频时候还需要做好音视频同步问题。还有在线视频是从云端传过来的,既然是传输信息还要考虑如何分包、丢包怎么处理、信息安全保证等,所以这些问题使得视频播放变成了一个比较复杂的过程。接下来我们给出一个在线视频播放的整体流程图:
三、视频播放流程图

未来我们会就每个环节展开具体的讨论,让音视频不再是难点