广州av老司机电子元件有限公司欢迎您!

av老司机若第一帧不是I帧

在之前的文件格式系列科普中,IT之家已经以JPG为典型,为大家讲解了图片格式,又以MP3为典型,为大家讲解了音频格式。

今天,IT之家将为大家讲解视频的编码原理。

视觉暂留现象

人的眼睛是一个非常巧妙的成像系统,来自自然界的光经由晶状体,投射到感光细胞上,感光细胞将光转化为神经电流,通过视神经传到大脑,引起人体视觉。

受制于视觉神经的反应速度,当光停止作用后,在一段时间内,图像仍将短暂地停留,称为“后像“,这便是视觉暂留现象。

av老司机若第一帧不是I帧

正因为人的视觉系统有着这样的特性,当我们将一组动作连续的静态图片放在眼前快速切换时,人眼会感觉它“动起来了“。事实上,我们看到的视频,就是由一张又一张的静态图像组成的。

有损图像压缩

前面我们已经提到,视频是由一张又一张的静态图片组成的。要压缩视频,首先就要压缩这些组成视频的静态图像。

在关于JPEG图片格式的科普中,我们已经讲解了JPEG的压缩原理。事实上,视频中的静态图片,它的压缩原理和JPEG颇为相似。

首先,就是将色彩空间由RGB转化为YCbCr,和RGB色彩空间通过红绿蓝三种颜色来组成大千世界不同,YCbCr将画面分解成明度(亮度信息)和色度(色彩信息)。

在YCbCr的色彩空间下,把Cb(蓝)和Cr(红)去掉,只留Y(亮度),那么图像依然可以正常显示,只是此时显示的图像是黑白的,把亮度信息和色彩信息分离所带来的好处,就是解决了彩色显示器和黑白显示器的兼容问题。

av老司机若第一帧不是I帧

色彩空间转换完成后,就要对图像进行离散余弦变换(DCT)了,在DCT时,图像将被分割成一个个8*8的像素块,每个8*8的像素块都将通过复杂的公式转换为数字编码。

随后,这些数字编码将通过一系列的处理进一步丢掉对人眼来讲并不重要的数据(人眼对高频区的辨识能力较差,这部分的数据可以酌情丢掉)。

经过这番折腾,原始的8*8像素块将被转化为结尾有很多连续的0的一串数字编码。这串编码经过冗余数据精简后,再进行一些处理,将生成一张经过压缩的图片。这张图片就是视频中的I帧。

运动预测

I帧,又称帧内编码帧,这是个独立帧,自带全部信息。

P帧,又称帧间预测编码帧,它里面包含的是当前帧与前一帧之间的差别,在解码时,需要以之前的画面为基础,叠加上两幅画面之间的差异部分,才能生成最终的画面。

B帧,又称双向预测编码帧,它不仅记录了当前帧与前一帧之间的差别,还记录了当前帧与下一帧之间的差别,B帧的压缩率通常更高,不过对解码性能的要求也更高。

av老司机若第一帧不是I帧

P帧的生成过程,实际上就是运动预测的过程。在这个过程中,图像将被分割成一个个16*16的像素块,然后,我们将计算当前帧的这个16*16像素块的信息与下一帧中哪个16*16像素块中的信息最为相似,然后记录下它们之间的位置差别(运动预测矢量)。

简单地说,运动预测的过程,就是使用当前帧位于不同起始位置的16*16像素块,拼凑出下一帧的图像来。B帧的生成原理和P帧大致相同,只不过B帧是同时结合前后两帧来实现运动预测的。

图像组和视频文件

所谓的图像组,就是由I帧打头,后面跟了一系列的P帧或者B帧的图像的编组,看起来差不多是这个样子的:I,P,P,P,P,P,P,P,P,P,P,如果有B帧,则是这个样子的:I,P,B,B,P,B,B,P,B,B,P。

视频文件是由一个接着一个的图像组构成的。在播放视频时,每个图像组的第一帧必须是I帧,若第一帧不是I帧,后面的P帧或者B帧将无法被还原成正常的图像,视频也就无法正常播放了。

av老司机若第一帧不是I帧

如果一个P帧是由某帧通过运动预测来生成的,那么这里的“某帧”就是该P帧的参考帧,关于参考帧的选择,也是有讲究的。

这里有一个图像组,I1,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,我们参考I1生成了P1,又参考了P1生成了P2,紧接着参考P2生成了P3,以此类推,最后生成了P10。

由于运动预测本身就是有误差的,如果我们每一帧都参考前一帧进行运动预测,那么从P1到P10,误差会越来越大,最后生成的P10可能就面目全非了。

相关产品推荐

关注官方微信

Copyright © www.dogalseleksiyon.com av老司机网 版权所有 Power by DedeCms  苏ICP12345678