写点什么

音视频入门基础(二)

发布于: 2020 年 08 月 26 日
音视频入门基础(二)

本文是对上一篇《音视频入门基础(一)》进一步的深入。

1.视频文件生成及播放过程

一个视频文件的生成过程:采集数据->编码->封装

一个视频文件的播放过程:读取文件数据->解码->播放

大家应该能理解原始数据的重要行了吧,一切处理都是正对原始数据的。

你想改变视频的声音就得先解码成PCM,你想对视频大马赛克就得先解码成RGB\YUV。

图1.1

2.编码

2.1过程

一个视频文件是有一系列的图片组成,这些图片经过编码后保存到文件中。

每一组GOP(GOP group of pictures)开始会有一个I帧(关键帧),其他帧都是参考前面的生成的,通常我们设置GOP的长度为2秒。

图2.1.1

2.2帧

一张图片经过编码后得到一帧数据。我们知道原始数据是非常大的,如果不编码而直接保存,那么这个数据量是非常惊人的大。我们算一下一个1920x1080每秒20帧的视频,每分钟他的数据量有多大呢?如果是RGB24的格式,那么一分钟的数据量就是1920x1080x3x25x60=8.69G,一分钟八个多G,一部一个半小时的电影,想想你的硬盘还能装下多少部电影。

图2.2.1

图片结果编码后,会被压缩的很小,比如上图,一张几兆的图片经过编码后只有几十K,存储空间是不是省了很多。

编码原理是怎么样的呢?我们看下图(以H264、H265为例)。先把图像分成多个小方块,H264以固定的16x16大小为一块(宏块)。如果这个块内的像素都一样,那么我们只需少量的信息就可以记录下来了,反之需要大量数据保存。H265使用的是可变宏块(8x8->64x64)。

H265为什么压缩率会比H264要高,我们看一下左上角(绿色方块),H264需要记录9个信息(这9个信息可能都一样,都是白色),而H265只需要一个信息即可。

编码通常都是有损编码,一些视觉区分不了的,通常被归为一类,比如两个像素只差一个值,我们肉眼几乎是区分不出来的。

图2.2.2

2.3帧->文件

上一篇我们讲过文件格式(AVI、FLV、MP4等),那么影视频数据是如何保存到文件里的呢?

首先,我们先把视频图片(RGB\YUV)编码生成帧(如h264帧),音频PCM编码生成帧(如AAC帧)。然后,按文件结构协议一帧一帧的连续写到文件里。这里我们以FLV为例(如下图)。

大家可以看到了吧,在文件里,音视频是一帧接着一帧的存到文件里了。

图2.3.1

3.视频

3.1参数

  • 分辨率 

  • 图像的分辨率越高,所包含的像素就越多,图像就越清晰。这个大家都好理解吧。

  • 常见的分辨:4K(4096*2160)、2K(2560*1440等)、1080p(1920*1080)、720p(1280*720)、D1(704*576)、VGA(640*480)、CIF(352×288)、QVGA(320*240)、QCIF(176×144)等等

  • 帧率

  • 帧的位图图像连续出现在显示器上的频率。

  • 帧率越高画面越流畅。一般的电影都是25或30帧,看着流畅度还可以吧,但是我们看动画片,特别是一些比较老的动画片,画面是不是感觉有点卡顿。

  • 码率(码流)

  • 简单的理解就是每秒编码后的数据量。我们再编码的时候,需要配置一个码率,码率高低会影响我们编码后的视频清晰图,如下图(1920*1080):

图3.1.1

通常情况下,码率高的清晰度会比较高,左图比右图清晰(上传的图片被infoq改变了,感觉不是明显,不怪我哈)。但有时候加倍的提高码率清晰度也不一定会有很大的提高,如下图(1920*1080):

图3.1.2

上图中,我们看到左右两边的图像清晰图差不太多。为什么第一个图码率差别大了,清晰度差别也挺大,而第二个图码率差别一样大,但画面清晰度差不太多。

我们在“2.编码”说过(图2.1.1)图像是如何编码的。当视频图像变化较大时,差异信息也就越多,需要记录的信息也就越多,如图3.1.1的中间那个小图。每一帧的大小还是挺大的。反之,视频图像变化较小,如图3.1.2(基本是一个静止的画面),除了第一帧I帧之外其他帧都挺小的。

所以在保持清晰度不变的情况下,画面变化幅度越大,需要的码率越高。

  • 那么我们如何配置那么,多少合适呢?以1920x1080分辨率为例,H264编码通常配置2M~5M,H265编码通常1M~3M即可。

  • 编码格式

  • 常见的编码格式

  • MPEG-1: 1992年,常见于VCD

  • MPEG-2: 1994年,常见于DVD

  • MPEG-4: 1998年  

  • H264(MPEG4-part10):  2003年

  • H265(MPEG4-part12):2013年

  • H266: 未发布

  • MPEG-5:未发布   

压缩率从低到高( 图3.1.3),压缩比( 图3.1.4)。

同等画面质量下,压缩率越高,所需的存储空间越小。

图3.1.3



图3.1.4

4.转码

大部分人应该都用过转码吧,为什么要转码,因为你的设备或者应用可能不支持该格式。

转码有两种,一种是只转格式(就是换个杯子,水还是那个水);另一种是重编码(水变成酒了),可能格式也要转换(杯子可能也换了)。

4.1转封装(格式)

  • 音视频数据不变(水还是那个水),文件格式变(换个杯子)

  • 画面质量不变(因为水没变,还是那个味道)

  • 转码耗时较短(从这个杯子倒到另一个杯子)

  • 转换后的文件大小变化小(可忽略不计,杯子不一样,大小有差异,但是水还是那么多)

图4.1.1

图4.1.2

4.2重编码

  • 音视频数据不一样(水不在是哪个水了,可能变成酒了)

  • 画面质量有所下降(编码通常是有损的,2.2里讲过)

  • 不同的码率、编码格式都会对画面质量有影响(3.1里讲过)

  • 文件大小通常有较大的变化(即使是同一种编码格式同一码率也会不一样,我们说过了,编码是有损的,解码后的图片和原图是有差别的,所以再次编码他也不可能一模一样)

  • 转码时间较长(水变成酒的过程还是花时间的)

图4.2.1

4.3误区

  • MKV格式比MP4格式清晰,MP4格式比AVI等格式清晰

视频文件画面质量和文件格式没关系,和音视频编码数据有关,文件格式是一种容器(杯子),音视频数据(水),杯子里的水甜不甜,和杯子没关系,和水有关。

  • 转码后为什么清晰度为什么变模糊了

编码通常是有损的,重编码后画面质量通常也会有所下降。

  • 转码如何保持高质量画面

如果文件格式支持原来的音视频编码格式,则使用转封装不转码方式。

如果需要重编码,压缩比高转压缩比低编码时(压缩比参考图3.1.3和图3.1.4),适当提高码率。

5.总结

这章节我们主要讲了,编码原理、音视频帧如何保存到文件、视频参数的意义以及转码。下一章节我们介绍音视频的应用。



作者:北京华宇信息技术有限公司-研究院-多媒体实验室





用户头像

为成为中国最顶尖的法律科技公司而奋斗! 2020.05.21 加入

公司主页:http://www.thunisoft.com/ 北京华宇信息技术有限公司以“法律科技”和“智慧政务”双轮驱动为发展战略,为客户的信息化事业提供全方位的解决方案与服务,是您值得信赖的智慧信息服务专家。

评论

发布
暂无评论
音视频入门基础(二)