正因为如此,屌丝工程师们就提出了,必须对视频进行编码 。
4.3 什么是编码?
编码:就是按指定的方法,将信息从一种形式(格式),转换成另一种形式(格式) 。视频编码:就是将一种视频格式,转换成另一种视频格式 。

文章插图
编码的终极目的,说白了,就是为了压缩 。各种五花八门的视频编码方式,都是为了让视频变得体积更小,有利于存储和传输 。
我们先来看看,视频从录制到播放的整个过程,如下:

文章插图
首先是视频采集 。通常我们会使用摄像机、摄像头进行视频采集 。限于篇幅,我就不打算和大家解释CCD成像原理了 。

文章插图
采集了视频数据之后,就要进行模数转换,将模拟信号变成数字信号 。其实现在很多都是摄像机(摄像头)直接输出数字信号 。信号输出之后,还要进行预处理,将RGB信号变成YUV信号 。
前面我们介绍了RGB信号,那什么是YUV信号呢?
简单来说,YUV就是另外一种颜色数字化表示方式 。视频通信系统之所以要采用YUV,而不是RGB,主要是因为RGB信号不利于压缩 。在YUV这种方式里面,加入了亮度这一概念 。在最近十年中,视频工程师发现,眼睛对于亮和暗的分辨要比对颜色的分辨更精细一些,也就是说,人眼对色度的敏感程度要低于对亮度的敏感程度 。
所以,工程师认为,在我们的视频存储中,没有必要存储全部颜色信号 。我们可以把更多带宽留给黑—白信号(被称作“亮度”),将稍少的带宽留给彩色信号(被称作“色度”) 。于是,就有了YUV 。
YUV里面的“Y”,就是亮度(Luma),“U”和“V”则是色度(Chroma) 。
大家偶尔会见到的Y'CbCr,也称为YUV,是YUV的压缩版本,不同之处在于Y'CbCr用于数字图像领域,YUV用于模拟信号领域,MPEG、DVD、摄像机中常说的YUV其实就是Y'CbCr 。

文章插图
▲ YUV(Y'CbCr)是如何形成图像的
YUV码流的存储格式其实与其采样的方式密切相关 。(采样,就是捕捉数据)
主流的采样方式有三种:
1)YUV4:4:4;
2)YUV4:2:2;
3)YUV4:2:0 。

文章插图
具体解释起来有点繁琐,大家只需记住,通常用的是YUV4:2:0的采样方式,能获得1/2的压缩率 。
这些预处理做完之后,就是正式的编码了 。
有关视频编码的更多专业知识,可以详细阅读以下文章:
《即时通讯音视频开发(一):视频编解码之理论概述》5、视频编码的实现原理5.1 视频编码技术的基本原理
《即时通讯音视频开发(二):视频编解码之数字视频介绍》
《即时通讯音视频开发(三):视频编解码之编码基础》
《即时通讯音视频开发(四):视频编解码之预测技术介绍》
《即时通讯音视频开发(五):认识主流视频编码技术H.264》
前面我们说了,编码就是为了压缩 。要实现压缩,就要设计各种算法,将视频数据中的冗余信息去除 。当你面对一张图片,或者一段视频的时候,你想一想,如果是你,你会如何进行压缩呢?

文章插图
▲ 对于新垣女神,我一bit也不舍得压缩…
我觉得,首先你想到的,应该是找规律 。是的,寻找像素之间的相关性,还有不同时间的图像帧之间,它们的相关性 。
举个例子:如果一幅图(1920×1080分辨率),全是红色的,我有没有必要说2073600次[255,0,0]?我只要说一次[255,0,0],然后再说2073599次“同上” 。

文章插图
如果一段1分钟的视频,有十几秒画面是不动的,或者,有80%的图像面积,整个过程都是不变(不动)的 。那么,是不是这块存储开销,就可以节约掉了?

文章插图
▲ 以上图为例,只有部分元素在动,大部分是不动的
推荐阅读
- 引体向上基础训练 引体向上15个训练方法
- 正宗促茗缘阁成大佛龙井批发零售业翘楚
- 网络技术中的BGP协议基础知识,一分钟了解下
- 吃不完的菠萝蜜怎么做 菠萝蜜吃不完可以做成什么零食吗
- 电源开关上的L1和L2是不是火线和零线?
- 中国茶叶专卖店 网上商城及零售店模式浅析
- 中国历史上地震死亡人数最多的 明朝死亡人数最多的地震
- 范文芳|杨钰莹遇到对手了!50岁范文芳还有初恋脸,穿紧身裙全身零赘肉
- 浅谈中国茶叶零售市场整体发展情况
- Python爬虫基础:验证码的爬取和识别详解
