视频基础知识(一)
1. 码率
视频码率就是数据传输时单位时间传送的数据位数,一般用的单位是kbps即千位每秒。 通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。
较低的码率会导致视频的数据量减少,从而降低视频的质量。视频会出现压缩失真、模糊、锯齿状边缘和细节模糊等问题。低码率的视频在高动态场景下可能会出现模糊、抖动或者帧丢失的情况,导致视频不流畅。
较高的码率会提供更多的视频数据,从而提高视频的质量。视频的细节、清晰度和颜色渲染等方面会得到改善。高码率的视频能够更准确地还原原始画面,细节更加清晰,但同时也需要更大的带宽支持,传输速度较慢。
2. 分辨率
视频分辨率是指视频画面的像素数量,它决定了视频的清晰度和细节水平。分辨率通常由宽度和高度两个数字表示,例如,720p(1280x720像素),1080p(1920x1080像素)。
较高的分辨率意味着视频有更多的像素,因此能够呈现更多的细节和更清晰的图像。相比之下,较低的分辨率会有较少的像素,图像可能会显得模糊或者失去一些细节。
需要注意的是,视频分辨率不仅仅与画面的清晰度有关,还会影响视频文件的大小和传输带宽需求。较高的分辨率会产生更多的像素数据,因此需要更大的存储空间和更高的带宽来传输。
3. 帧率
帧率(Frame Rate)指的是视频中每秒显示的图像帧数。它表示视频播放速度的快慢,以"帧/秒"(fps)为单位进行计量。
视频是由一系列静止的图像帧组成的,每一帧都是视频中的一个静止画面。帧率决定了这些静止画面以多快的速度连续播放,从而形成流畅的动画效果。
较高的帧率意味着每秒显示更多的图像帧,视频播放会更加流畅和细腻。人眼会感知到更多的动态变化,特别是在快速移动的场景中。常见的视频帧率有24fps、30fps、60fps等。
4. 帧的类型
(1)I帧:帧内编码帧,是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,可以简单理解为一张静态画面。视频序列中的第一个帧始终都是I帧,因为它是关键帧。
(2)P帧:帧间预测编码帧,需要参考前面的I帧才能进行编码。表示的是当前帧画面与前一帧(前一帧可能是I帧也可能是P帧)的差别。解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。与I帧相比,P帧通常占用更少的数据位,但不足是,由于P帧对前面的P和I参考帧有着复杂的依耐性,因此对传输错误非常敏感。
(3)B帧:B帧又称双向预测编码帧,也就是B帧记录的是本帧与前后帧的差别。也就是说要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是对解码性能要求较高。
(4)IDR帧:理想情况下,一个视频流,从一个I帧开始后面轻微运动都是 P/B,直到遇到场景切换就再插一个I,如此往复。一般来说,P/B 参考范围不会越过I帧。但也有特例,我们可以强行指定 P/B 参考不允许越过 I 帧,这样的I帧我们叫它 IDR 帧,每个 IDR 帧(Instantaneous Decoding Refresh)的间隔我们称作一个 GOP(Group of Pictures)
IDR帧与 I帧的理解
在 H264 的概念中有一个帧称为 IDR 帧,那么 IDR 帧与 I 帧的区别是什么呢?首 先来看一下 IDR 的英文全称 instantaneous decoding refresh picture,因为 H264 采用了 多帧预测,所以 I 锁之后的 P 帧有可能会参考 I 帧之前的锁,这就使得在随机访问的 时候不能以找到 I 帧作为参考条件,因为即使找到 I 帧, I 帧之后的帧还是有可能解析 不出来,而 IDR 帧就是一种特殊的 I 帧,即这一帧之后的所有参考帧只会参考到这个 IDR 帧,而不会再参考前面的帧 。 在解码器中,一旦收到一个 IDR 帧,就会立即清理 参考帧缓冲区,并将 IDR 帧作为被参考的帧 。
5. PTS和DTS
在视频编码和解码中,PTS(Presentation Time Stamp)和DTS(Decoding Time Stamp)是用于控制和同步视频帧显示的时间戳。
-
PTS(Presentation Time Stamp):PTS表示视频帧应该在播放器中显示的时间。它指示了帧的展示时间点,播放器根据PTS来确定何时显示帧。PTS是相对于视频流开始的时间进行计算的。
-
DTS(Decoding Time Stamp):DTS表示解码器接收和解码视频帧的时间。它指示了帧的解码时间点,解码器根据DTS来确定帧的解码顺序。DTS也是相对于视频流开始的时间进行计算的。
通常情况下,PTS和DTS是相同的,视频帧按照接收的顺序进行解码和显示。但在一些特殊情况下,可能会存在帧的解码顺序与显示顺序不同的情况,这时就需要使用PTS和DTS来进行控制和同步。
例如,当视频流中存在B帧(Bidirectional Frame)时,B帧依赖于前后的参考帧进行解码。在这种情况下,解码器可能会先解码一个B帧需要的参考帧,然后再解码该B帧。所以,B帧的DTS会比PTS要早,以确保在播放时能正确地使用参考帧。
播放器根据PTS来确定何时显示帧,以确保视频的连续播放和同步。通过使用PTS和DTS,可以控制和处理视频编码和解码过程中的时间顺序和同步问题,保证视频帧在播放器中正确地显示出来。
6. 视频的编码格式
(1)VP8:视频压缩解决方案厂商On2 Technologies公司现已推出最新的视频压缩格式On2 VP8。On2 VP8是第八代的On2视频,能以更少的数据提供更高质量的视频,而且只需较小的处理能力即可播放视频,为致力于实现产品及服务差异化的网络电视、IPTV和视频会议公司提供理想的解决方案。
(2)H.264(流媒体音视频格式):H.264是国际标准化组织(ISO)和国际电信联盟(ITU)共同提出的继MPEG4之后的新一代数字视频压缩格式H.264最具价值的部分无疑是更高的数据压缩比。在同等的图像质量条件下,H.264的数据压缩比能比当前DVD系统中使用的 MPEG-2高2-3倍,比MPEG-4高1.5-2倍。正因为如此,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。在 MPEG-2需要6Mbps的传输速率匹配时,H.264只需要1Mbps-2Mbps的传输速率。
(3)VP9:VP9 是由 Google 开发的开放式、无版权费的视频编码标准,在开发初期曾经被命名为 Next Gen Open Video,VP9 也被视为是 VP8 的下一代视频编码标准。
(4)H.265:H.265 在 H.264 的基础上保留其中的部分技术,并对相关技术加以改进研发而成。新技术主要通过提升压缩效率、鲁棒性,提高错误恢复能力,减少实时时延、减少信道获取时间等方面,让视频编码达到效率更高。同时 H.265 可以实现利用 1~2Mbps 传输速度传送 720P 普通高清音视频。