首先推荐阅读之的水货文章:《水煮RGB与CMYK色彩模型—色彩与光学相关物理理论浅叙》、《色彩空间HSL/HSV/HSB理论,RGB与YUV如何转换》、《三色视者与四色视者身后的理论基础:色彩原理》。本文主要以《即时通讯音视频开发》/《从JPG到AVI,这篇视频编码的最强入门科普,你值得拥有!》为基础的学习笔记。目前行文比较乱,还未细致整理。
无论视频还是音频,未经压缩,存储体量巨大。传输也困难。
比如音频采样44.1kHz/16bit采样(频率:294 x 50 x 3||44,056=245 x 59.94 x 3,振幅:0-96分贝),具体可以查看《频率史—从电源频率到音频采样频率》。码率为:16bit×44.1KHz=705.6Kbit/s。
视频方面,简单演算下1920×1080(px)尺寸, R、G、B各8位采样(这个颜色范围已经超过了人眼可见的全部色彩,所以又叫真彩色。再高的话,对于我们人眼来说,已经没有意义了,完全识别不出来)帧率30fps
3×8(bit)×1920×1080×30(s)÷8(byte)=6220800byte×30(s)≈186.6MB/s
1分钟大约是11GB,一部90分钟的电影,约是1000GB。一般硬盘也就1TB,读写速度平均50-90MB/s
注:8 bit(位)=1 byte(字节)
衡量视频,又是用的什么指标参数呢?最主要的一个,就是帧率(Frame Rate)。
在视频中,一个帧(Frame)就是指一幅静止的画面。帧率,就是指视频每秒钟包括的画面数量(FPS,Frame per second)。
帧率越高,视频就越逼真、越流畅。
通常来说,视频里面的冗余信息包括:
视频编码技术优先消除目标,就是空间冗余和时间冗余。
所谓编码算法,就是寻找规律,构建模型。谁能找到更精准的规律,建立更高效的模型,谁就是厉害的算法。
如果一段1分钟的视频,有十几秒画面是不动的,或者,有80%的图像面积,整个过程都是不变(不动)的。那么,是不是这块存储开销,就可以节约掉了?我们需要准确预测其冗余信息并对其消除。
利用图像空间相邻像素的相关性来预测的方法,图像空间相邻像素具有很强的相关性,帧内预测技术去除空间冗余。
视频图像在时间上有较强的相关性,即存在时间冗余。去除时间冗余的编码技术有:运动估计(Motion Estimation,ME)、运动补偿(Motion Compensation,MC)。
目的是去除视频图像的时间冗余。运动估计在搜索范围内为当前块寻找匹配最好的预测块,全搜索方式的运动估计计算复杂度高。
基于全局仿射运动模型。预测精度不如基于块的运动估计。MV数目少,适合简单运动场景的运动估计。
在保持预测精度的同时减少运动估计的搜索次数,典型算法有:
时域运动位置更可能在整象素之间,即分像素上。利用相邻的整象素可以估计出分象素的值:常用线性或双线性插值得到分象素的值。分象素运动估计有更高的预测精度,但复杂度也更高:1/2分象素运动估计,图像存储空间增加4倍,运动矢量需要放大2倍,1/4分象素运动估计,图像存储空间增加16倍,运动矢量需要放大4倍,计算复杂度也成倍增加。
视频内容的运动非常复杂,图像分块编码可以更好的提高运动预测精度,提高压缩效率。要在编码块大小和附信息(MV,Mode)编码比特数之间权衡,小的编码块大小会有更好的预测但有更多的附信息比特数。
将含有大量的数据集合映射到含有少量的数据集合中。
一般情况下量化后高频部分包含大量的零系数
量化对主观质量的影响
I帧,是自带全部信息的独立帧,是最完整的画面(占用的空间最大),无需参考其它图像便可独立进行解码。视频序列中的第一个帧,始终都是I帧。
P帧,“帧间预测编码帧”,需要参考前面的I帧和/或P帧的不同部分,才能进行编码。P帧对前面的P和I参考帧有依赖性。但是,P帧压缩率比较高,占用的空间较小。
B帧,“双向预测编码帧”,以前帧和后作为参考帧。不仅参考前面,还参考后面的帧,所以,它的压缩率最高,可以达到200:1。不过,因为依赖后面的帧,所以不适合实时传输(例如视频会议)。
通过对帧的分类处理,可以大幅压缩视频的大小。毕竟,要处理的对象,大幅减少了(从整个图像,变成图像中的一个区域)。
我们来通过一个例子看一下,这有两个帧:
人在动,背景是没有在动的。第一帧是I帧,第二帧是P帧。两个帧之间的差值。也就是说,图中的部分像素,进行了移动,移动轨迹如下:
当然了,如果总是按照像素来算,数据量会比较大,所以,一般都是把图像切割为不同的“块(Block)”或“宏块(MacroBlock)”,对它们进行计算。一个宏块一般为16像素×16像素。
需要特别注意,I帧(帧内编码),虽然只有空间相关性,但整个编码过程也不简单。
一帧图像包括两场——顶场,底场:
逐行图像是指:一帧图像的两场在同一时间得到,ttop=tbot。
隔行图像是指:一帧图像的两场在不同时间得到, ttop≠tbot。
语音编码器分为三种类形:(a)波形编器 、(b)声码器 、(c)混合编码器 。
波形编码器以构造出背景噪单在内的模拟波形为目标。作用于所有输入信号,因此会产生高质量的样值并且耗费较高的比特率。 而声码器 (vocoder)不会再生原始波形。这组编码器 会提取一组参数 ,这组参数被送到接收端,用来导出语音产生模形。声码器语音质量不够好。混合编码器,它融入了波形编码器和声器的长处。
波形编码器的设计常独立于信号。所以适应于各种信号的编码而不限于语音。
频域编码是把信号分解成一系列不同频率的元素,并进行独立编码。
波形编码器试图保留被编码信号的波形,能以中等比特率(32kbps)提供高品质语音,但无法应用在低比特率场合。声码器试图产生在听觉上与被编码信号相似的信号,能以低比特率提供可以理解的语音,但是所形成的语音听起来不自然。
混合编码器结合了2者的优点:
受到缓冲区,带宽的限制,编码码率不能无限制的增长,因此需要通过码率控制来将编码码流控制在目标码率范围内。
一般通过调整量化参数的手段控制码率:
防止码流有较大的波动,导致缓冲区发生溢出,
同时保持缓冲区尽可能的充满,让图像质量尽可能的好而且稳定
CBR(Constant Bit Rate):比特率稳定,但图像质量变化大。VBR(Variable Bit Rate):比特率波动大,但图像质量稳定。
码率控制属于非标准技术,编码端有,解码端没有。
一般来说,分为客观评价和主观评价。客观评价,就是拿数字来说话。例如计算“信噪比/峰值信噪比”。
信噪比的计算,我就不介绍了,丢个公式,有空可以自己慢慢研究...
1865年5月17日,为了顺利实现国际电报通信,法、德、俄、意、奥等20个欧洲国家的代表在巴黎签订了《国际电报公约》,国际电报联盟(International Telegraph Union ,ITU)也宣告成立。 随着电话与无线电的应用与发展,ITU的职权不断扩大。1906年,德、英、法、美、日等27个国家的代表在柏林签订了《国际无线电报公约》。1932年,70多个国家的代表在西班牙马德里召开会议,将《国际电报公约》与《国际无线电报公约》合并, 制定《国际电信公约》,并决定自1934年1月1日起正式改称为“国际电信联盟” ,也就是现在的ITU。ITU是联合国下属的一个专门机构,其总部在瑞士的日内瓦。ITU下属有三个部门,分别是ITU-R(前身是国际无线电咨询委员会CCIR)、ITU-T(前身是国际电报电话咨询委员会CCITT)、ITU-D。
ISO大家都知道,就是推出ISO9001质量认证的那个“国际标准化组织”。IEC,是“国际电工委员会”。1988年,ISO和IEC联合成立了一个专家组,负责开发电视图像数据和声音数据的编码、解码和它们的同步等标准。这个专家组,就是大名鼎鼎的MPEG,Moving Picture Expert Group(动态图像专家组)。
ITU和ISO/IEC一开始是各自捣鼓,后来,两边成立了一个联合小组,名叫JVT(Joint Video Team,视频联合工作组)
JVT致力于新一代视频编码标准的制定,后来推出了包括H.264在内的一系列标准。作为一种的编码标准,相比H.264有极大的性能提升,目前已经成为最新视频编码系统的标配。
大家特别注意一下上图里面的HEVC,也就是现在风头正盛的H.265。
对于任何一部视频来说,只有图像,没有声音,肯定是不行的。所以,视频编码后,加上音频编码,要一起进行封装。封装,就是封装格式,简单来说,就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中。再通俗点,视频轨相当于饭,而音频轨相当于菜,封装格式就是一个饭盒,用来盛放饭菜的容器。目前主要的视频容器有如下:MPG、VOB、MP4、3GP、ASF、RMVB、WMV、MOV、Divx、MKV、FLV、TS/PS等。
转载本站文章《视频采样,量化,编码,压缩,解码相关技术原理学习笔记》, 请注明出处:https://www.zhoulujun.cn/html/theory/multimedia/CG-CV-IP/8147.html
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。