视频为什么可以被压缩?帧内压缩与帧间压缩有何区别?视频编码中的CBR、VBR、CRF...是什么?

简介: 视频压缩基于冗余,包括空间冗余、时间冗余、视觉冗余和编码冗余。帧内压缩利用空间相关性,帧间压缩利用时间相关性。视频编码中的码率控制方法有CBR(固定码率)、VBR(动态码率)、CRF(固定码率系数)、CQP(固定质量参数)、CVBR(约束可变码率)和ABR(平均码率),各有优缺点,适用于不同的场景。

视频为什么可以被压缩?

因为存在冗余。

首先,视频是由一帧帧图像组成的,利用人眼视觉暂留的原理,使人眼产生了运动的感觉。每一帧的图像又由像素构成,分辨率决定了图像细节的精细程度,分辨率越高,像素越高,视频就越清晰,如常见的分辨率1080p就代表这个视频每一帧有1920 x 1080个像素。

冗余为压缩提供了可能性:
1)空间冗余:视频图像在水平方向相邻像素之间、垂直方向相邻像素之间的变化一般都很小,存在着极强的空间相关性。但是基于离散像素采样之后的数字视频来表示物体颜色的方式通常没有利用景物表面颜色的这种空间连贯性,从而产生了“空间过采样”的数据空间冗余。

2)时间冗余:序列图像一般是位于时间轴区间内的一组连续画面,其中的相邻帧,或者相邻场的图像中,在对应位置的像素之间,亮度和色度信息存在着极强的相关性。当前帧的图像往往具有与前、后两帧图像相同的背景和运动物体,只不过移动物体所在的空间位置略有不同,所以后一帧的数据与前一帧的数据有许多共同的地方,对大多数像素来说,亮度和色度信息是基本相同的。对于这些重复出现的画面和物体来说,等间隔的重复产生了“时间过采样”的数据时间冗余。

3)视觉冗余:人眼的一些特性(比如亮度辨别阈值、视觉阈值)对亮度和色度的敏感度不同,使得在编码的时候引入适量的误差,也不会被察觉出来,可以利用人眼的视觉特性,以一定的客观失真换取数据压缩。

4)编码冗余(信息熵冗余):人们用于表达某一信息所需要的比特数总比理论上表示该信息所需要的最少比特数要大,它们之间的差距就是编码冗余,或称信息熵冗余。

视频压缩正是基于上述条件,使得视频数据量得以极大地压缩,更利于传输和存储。

帧内压缩与帧间压缩有何区别?

帧内压缩(利用空间相关性进行编码

帧内(Intraframe)压缩也称为空间压缩(Spatial compression)。当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息,这实际上与静态图像压缩类似。帧内一般采用有损压缩算法,达不到很高的压缩比。如压缩 GOP 图像组中的 I 帧。
640.png

9种预测

帧间压缩(利用时间相关性进行编码)
帧间压缩(Interframe compression)也称为时间压缩(Temporal compression),是基于许多视频或动画的连续前后两帧具有很大的相关性(即连续的视频其相邻帧之间具有冗余信息)的特点来实现的;通过比较时间轴上不同帧之间的数据实施压缩,进一步提高压缩比。如压缩 GOP 图像组中的 B 帧与 P 帧。
640 (1).png

帧间压缩的主要过程先进行宏块查找,寻找出残差值,进行运动矢量计算,最后通过残差值和运动矢量推算出下一帧的数据。

宏块查找:查找帧之间有差别的部分,算法有:三步搜索,二维对数搜索,四步搜索,钻石搜索等;残差值:是指帧之间有差别的部分;运动矢量:当前编码块与其参考图像中的最佳匹配块之间的相对位移,也就是变化部分下一帧与上一帧的位移;运动估计:针对当前块从上一帧中搜索最相似的块;运动补偿:通过残差值和运动矢量推断出下一帧的数据。

视频编码中的CBR、VBR、CRF...是什么?

在视频编码中,有一个模块是码率控制,即通过选择一系列编码参数,使得视频编码后的比特率满足所需要的速率限制,并且使编码失真尽可能小。在实际应用中,存在好几种码率控制方法,分别是CBR、VBR、CRF、CQP、CVBR、ABR:

· CBR(Constant Bitrate,固定码率)

即在码率统计时间内保证编码码率平稳。有Motion发生时,由于码率恒定,只能通过增大QP来减少码字大小,图像质量变差,当场景静止时,图像质量又变好,因此图像质量不稳定。优点是压缩速度快,缺点是每秒流量都相同容易导致空间浪费。多用于网络流媒体视频编码,持续的码率可以保证视频在播放时,不会有卡顿缓冲等现象。

· VBR(Variable Bitrate,动态码率)

即允许在码率统计时间内编码码率波动,从而保证编码图像质量平稳。码率可以随着图像的复杂程度的不同而变化,因此其编码效率比较高,Motion发生时,马赛克很少。码率控制算法根据图像内容确定使用的比特率,图像内容比较简单则分配较少的码率,图像内容复杂则分配较多的码率,这样既保证了质量,又兼顾带宽限制。这种算法在画质相同的前提下,可以缩小文件体积。

· CRF(Constant Rate Factor,固定码率系数)

使用 CBR 和 VBR 时,需要选择一个目标码率,编码器会调整视频质量以达到该目标。这种方法的问题是,如果你对所有视频片段使用了相同的码率阶梯,那么就会在容易编码的视频上浪费很多不必要的带宽。

所以,当使用 CBR 和 VBR 编码时,编码器会调整所需的视频质量进而达到目标码率。相比之下,使用 CRF 编码,选择一种目标质量,编码器会通过调整码率达到该质量水平。CRF 值分布为从 0 到 51,一般来说这个取值越小,视频帧编码质量相对越高,取值为0则是无损压缩。

· CQP(Constant QP,固定质量参数)

每一帧图像在压缩的时候,采用相同的QP值。(QP值决定了量化编码时从像素宏块的原始信息中丢弃多少信息,QP越大压缩率越高同时质量越低,QP越小压缩率越低同时质量越高)

· CVBR(Constrained VariableBit Rate)

VBR的一种改进,兼顾了CBR和VBR的优点:在图像内容静止时,节省带宽,有Motion发生时,利用前期节省的带宽来尽可能地提高图像质量,达到同时兼顾带宽和图像质量的目的。这种方法通常会让用户输入最大码率和最小码率,静止时,码率稳定在最小码率,运动时,码率大于最小码率,但是又不超过最大码率。

· ABR(Average Bitrate,平均码率)

平均比特率,VBR的一种插值参数,是在CBR和VBR两者之间的一种权衡,即设定一段时间的平均码率,在此时间内,对简单、静态的图像分配低于平均码率的码率,对于复杂、大量运动的图像分配高于平均码率的码率;适合网络传输。

相关文章
|
存储 编解码 监控
视频基础知识 3
视频基础知识
1243 0
|
Web App开发 存储 编解码
基于DCT变换的JPEG图像压缩
图像和视频通常在计算机中表示会占用非常大的空间,而出于节省硬盘空间的考虑,往往要进行压缩。而随着网络的发展,图像压缩技术越来越被人所重视。DCT变换是图像压缩的一项重要技术,本文主要对基于DCT变换的JPEG图像压缩进行研究,并用Matlab进行了算法仿真。实验结果表明, JPEG压缩算法实现简单,在很大的压缩范围内,都能得到很好的重建图像质量。 关键词:DCT变换;JPEG图像;压缩
885 0
基于DCT变换的JPEG图像压缩
|
编解码 算法
为什么受损的视频数据通常显示为绿色?为什么很多30帧/秒的视频实际都是29.976帧/秒?
视频编码采用YUV格式因其亮度与色度分离,利于压缩且兼容黑白显示;受损视频常显绿色因YUV转RGB时Y、U、V为0导致;30帧/秒视频实为29.976帧/秒源于NTSC标准适应彩色电视需求;H.264等标准中H无特定含义,H.264又名MPEG-4 AVC,是ITU-T与ISO/IEC MPEG合作成果。
|
存储 编解码 算法
微帧科技:综合多项指标评价视频质量,才能更接近主观感受
视频质量评价指标如PSNR、SSIM和VMAF是衡量画面质量的重要工具,但不应成为视频工作者的唯一目标。微帧致力于优化画质,提升观看体验,强调综合评估指标,以实现最接近人眼主观感受的效果。本文探讨了PSNR avg.MSE与PSNR avg.log的区别,以及VMAF的优势与不足。
|
编解码 网络性能优化 存储
VBR与CBR的区别是什么?
<pre id="best-content-153760330" class="best-text mb-10">VBR是动态<a target="_blank" class="inner-link decor-none" href="http://zhidao.baidu.com/search?word=%E7%A0%81%E7%8E%87&amp;fr=qb_search_exp&am
12892 1
|
编解码 网络协议 网络性能优化
RTP/RTCP 协议讲解
RTP/RTCP 协议讲解
5351 0
阿里云公网IP地址多少钱一个?
阿里云公网IP价格因地域而异,如华北1(青岛)包年包月约20.70元/月,华北2(北京)及其他地区23元/月,香港30元/月,新加坡23元/月。按量付费模式下,保有费0.020元/小时,流量额外计费。
5930 0
阿里云公网IP地址多少钱一个?
|
存储 算法 数据处理
C# | 上位机开发新手指南(十一)压缩算法
流式压缩 流式压缩是一种能够实时处理数据流的压缩方式,例如音频、视频等实时传输的数据。 通过流式压缩算法,我们可以边读取边压缩数据,并能够随时输出已压缩的数据,以确保数据的实时性和减少存储和传输所需的带宽。 块压缩 块压缩则是将数据划分为固定大小的块,在每个块内进行独立的压缩处理。块压缩通常适用于文件、存储、传输等离线数据处理场景。 字典压缩 字典压缩是一种基于字典的压缩算法,通过建立一个字典来存储一组重复出现的字符串,并将这些字符串替换成字典中相应的索引,从而减少数据的存储和传输。字典压缩算法可以更好地处理数据中的重复模式,因为它们可以通过建立字典来存储和恢复重复出现的字符串。
457 0
C# | 上位机开发新手指南(十一)压缩算法
|
安全 网络协议 数据安全/隐私保护
网络技术基础(18)——PPP与PPPoE协议
【3月更文挑战第5天】本文介绍了广域网的基本架构和PPP协议。广域网涉及CE(用户边缘设备)、PE(服务提供商边缘设备)和P(服务提供商设备),其中CE为企业出口,PE类似光猫,P为运营商内部设备。PPP是数据链路层协议,用于点到点连接,提供PAP和CHAP安全认证,并通过LCP和NCP协商链路和网络层参数。PPP协商包括链路层、认证(可选)和网络层三个阶段。PPPoE协议结合了PPP和以太网优点,用于以太网上进行PPP认证和计费,其会话建立包含发现、会话和终结阶段。配置PPP或PPPoE时,需在对应接口设置账号密码和认证方式。
|
小程序
阿里云短信签名申请流程,有图,短信接入新手教程
阿里云短信签名是短信中的标识信息,如【阿里云】,用于表明发送方身份。申请流程简便:登录阿里云短信服务控制台,选择签名管理并添加签名,填写相关信息。审核通常2小时内完成。个人用户每日限申请一个通用签名,企业用户数量不限。已通过审核的签名不可更改名称,仅能调整其他信息并重新提交审核。更多详情及FAQ