答案很简单,你看到的动态视频,其实是以设定速度向你展示的一组图像,这些图像利用人眼视觉暂留
的原理,使人眼产生运动的感觉。 视频中的每一张图像对应一帧,帧率表示每秒的帧数,比如帧率24就表示每秒有24张图片——这被认为是最低限度的帧率,不然就没法“骗过“你的大脑和眼睛,让视频连贯流畅地动起来,而非停留于断断续续的图像。 再深入分析的话,帧由像素构成,分辨率表示每帧的像素数,常见的分辨率1080p就代表这个视频每一帧有1920 x 1080个像素。 由此可见,分辨率越高,帧率越大,视频越清晰,8k超高清视频的分辨率是1080P的16倍,达到了每帧7680 × 4320 个像素。 那么视频为什么可以被压缩?——因为存在数据冗余。 一方面,在视频数字化的过程中,人们对每一帧图像进行采样,每个采样点 上得到的数据就是像素。 因为像素的采样按照固定密度,可能在单帧中对一些相同或相似部分过度采样,从而产生了“空间过采样”的数据空间冗余。 比如下图作为背景的湖面,包含了大量无需高频率采点的像素,产生了许多重复数据。 另一方面,许多时候每一帧图像的整体背景不太变化,改变的只是运动的物体,对于这些重复出现的画面和物体来说,等间隔的重复产生了“时间过采样”的数据时间冗余。 比如下图湖面背景,在两帧中变化不大,同时运动的物体天鹅也重复出现,产生了冗余。 除此之外,视频数据化过程中还产生了信息熵、视觉、知识、结构等等数据冗余,这些冗余就是视频为啥可以压缩的根本原因。 让我们先来看看,如果不进行视频压缩,储存一部100分钟、1080p的电影需要消耗多少空间? 存储视频的一个像素(为了便于理解,我们假设视频以RGB格式存储——其实是YUV格式)需要24位,每帧1920x1080像素,需要 1920 × 1080× 24 = 49766400 位 但这只是图像,假设我们制作电影时,采用了最低帧率24,那么每秒的视频需要 49766400 x 24 = 1194393600 位 这只是电影中的一秒,一部100分钟的电影需要 1194393600 x 60x 100 =7166361600000位 =895795200000 B =874800000 KB ≈854297MB ≈ 834 GB 综上所述,如果没有视频压缩技术 ,要用834GB才能存储一部电影! 这远远超出普通智能手机存储能力,更别说视频制作、传输等过程中的困难了…… 这下不难理解视频压缩有多重要了吧~ 1. 帧内预测 又是这幅图,湖面背景区域所有点的光强、色彩和饱和度都是非常相近的,可以用帧内预测的方法,由已编码块的重建像素得到当前编码块的预测块,并与当前编码块相减得到差异,有效去除空间冗余。 2. 帧间预测 编码相邻帧之间的差异。 如下图找到A帧和B帧中运动物体的差异,那么只需要编码两帧的差值,大大减少时间冗余。 3. 变换 变换可以将空间域 等等。 变换之后,再通过量化、熵编码 。 经过这几个步骤之后,即可获得压缩后的视频码流,相比原视频大小可压缩几十到几百倍,并且最大程度地保留原有的画面质量。 此外,近年来不断发展的深度学习可以通过大量样本的训练让人工智能寻找视频压缩的最优解模型。二.为什么需要视频压缩
三.视频压缩有哪几种方法