好记性不如铅笔头

media, 编程

视频相关概念笔记

参考链接

https://blog.csdn.net/qq_29350001/article/details/73770702
https://www.cnblogs.com/yongdaimi/p/10676309.html
https://www.jianshu.com/p/028196b8ca14

H264简介

H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称。在H264协议里定义了三种帧,完整编码的帧叫I帧,参考之前的I帧生成的只包含差异部分编码的帧叫P帧,参考前后的帧编码的帧叫B帧。
H264采用的核心算法是帧内压缩和帧间压缩帧内压缩是生成I帧的算法,帧间压缩是生成B帧和P帧的算法

I帧

Intra-coded picture(帧内编码图像帧),帧内编码帧,I帧表示关键帧,可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成。

P帧

Predictive-coded Picture(前向预测编码图像帧)。P帧表示的是这一帧跟之前的一个I帧或P帧的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据)

B帧

Bidirectionally predicted picture(双向预测编码图像帧)。B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别,换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。

GOP

在H264中图像以序列(GOP)为单位进行组织,一个序列是一段图像编码后的数据流,以I帧开始,到下一个I帧结束。编码器将多张图像进行编码后生产成一段一段的GOP(GroupofPictures),解码器在播放时则是读取一段一段的GOP进行解码后读取画面再渲染显示。GOP(GroupofPictures)是一组连续的画面,由一张I帧和数张B/P帧组成,是视频图像编码器和解码器存取的基本单位。

IDR帧

一个序列的第一个图像叫做IDR图像(立即刷新图像),IDR图像都是I帧图像。H.264引入IDR图像是为了解码的重同步,当解码器解码到IDR图像时,立即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始一个新的序列。这样,如果前一个序列出现重大错误,在这里可以获得重新同步的机会。IDR图像之后的图像永远不会使用IDR之前的图像的数据来解码。

DTS(Decoding Time Stamp)

解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据

PTS(Presentation Time Stamp)

显示时间戳,这个时间戳用来告诉播放器该在什么时候显示这一帧的数据

虽然 DTS、PTS 是用于指导播放端的行为,但它们是在编码的时候由编码器生成的。当视频流中没有 B 帧时,通常 DTS 和 PTS 的顺序是一致的。但如果有 B 帧时,解码顺序和播放顺序不一致了。音频的播放,也有 DTS、PTS 的概念,但是音频没有类似视频中 B 帧,不需要双向预测,所以音频帧的 DTS、PTS 顺序是一致的。

分辨率

显示分辨率(屏幕分辨率)是屏幕图像的精密度,是指显示器所能显示的像素有多少。由于屏幕上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以分辨率是个非常重要的性能指标之一。可以把整个图像想象成是一个大型的棋盘,而分辨率的表示方式就是所有经线和纬线交叉点的数目。显示分辨率一定的情况下,显示屏越小图像越清晰,反之,显示屏大小固定时,显示分辨率越高图像越清晰。

码率(比特率)

所谓码率,简单来说就是指在压缩视频的时候给这个视频指定一个参数,用以告诉压缩软件期望的压缩后视频的大小。码率的英文名为bps(bit per second),就是用平均每秒多少bit来衡量一个视频大小

帧率

帧率(Frame rate)是用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数(Frames per Second,简称:FPS)或“赫兹”(Hz)。

Leave a Reply

7 + 11 =

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据