为什么要编码?
原因很简单,不经过编码的源视频数据量太大了。例如输出一路1920×1080分辨率、24位色、每秒30帧的高清视频,就这么一秒钟的视频,它的码率达就到了1.5Gbps.因此需要编码,尽最大可能将其压缩至最低。下图展示了编解码标准的演进历程,经过H.264编码后,视频码率被压缩到10Mbps,是源视频数据量的1/150。
那么,什么时候我们不再关心编码了?理想的状态就是我们不再对存储空间和网络带宽的限制有顾虑的时候,就不需要考虑编码了,照单全收即可。
思考:N年以后,在<n> G网络普及之后,视频的编解码技术和CDN的作用会不会越来越被淡化?
什么是编码?
狭义但不全面的解释:编码最主要的工作就是压缩。但压缩是分步骤的,不是简单地把图像中重复的0 聚在一起这么简单。依据方法论,可压缩的内容有以下几种:
单幅图像压缩
编码的前提是冗余,那么编码的目的就是去除冗余,从而实现压缩的目的。对单一图像去除冗余,即是帧内编码,也就是我们常说的I帧编码;对系列图像去除冗余,即帧间编码,帧间编码有B帧,P帧,一个单向,一个双向。
代码语言:txt复制编码的最原始数据,也就是通过算法要处理的最原始数据,并不是原始的图像数据,而是图像与图像之间的差值(见下方示意图),所有关于编码的算法,差值是整个编码过程的起点。
代码语言:txt复制 编码中主要涉及的一些算法原理有, 变换,量化,熵编码,运动估计,运动补偿,并且在算法过程中可能会引入一些寻找最优解的指标,诸如SAD,MAD等。本篇简介至此,希望你对编码的原理有个简单的认识。下一篇开始详细的原理内容介绍了哦。