首页 > 其他分享 >视频编码中CBR编码和VBR编码的区别

视频编码中CBR编码和VBR编码的区别

时间:2023-06-02 09:13:50浏览次数:40  
标签:编码 码率 视频 比特率 CBR VBR

视频编码中CBR编码和VBR编码的区别

VBR就是可变比特率,它与恒定比特率CBR有一些区别,关于CBR或VBR编码的区别如下:

通过使用Windows Media编码器,可以用恒定比特率(CBR)或可变比特率(VBR)对音频和视频内容进行编码。

CBR编码

 在流式播放方案中使用CBR编码最为有效。使用CBR编码时,比特率在流的进行过程中基本保持恒定并且接近目标比特率,始终处于由缓冲区大小确定的时间窗内。CBR编码的缺点在于编码内容的质量不稳定。因为内容的某些片段要比其他片段更难压缩,所以CBR流的某些部分质量就比其他部分差。此外,CBR编码会导致相邻流的质量不同。通常在较低比特率下,质量的变化会更加明显。

VBR编码

 当计划提供内容供用户下载、 将内容在本地播放或者在读取速度有限的设备(如CD或DVD播放机)上播放时,请使用VBR编码。(计划流式播放内容时也可以采用峰值VBR编码模式)当 编码内容中混有简单数据和复杂数据(例如,在快动作和慢动作间切换的视频)时,VBR 编码是很有优势的。使用VBR编码时,系统将自动为内容的简单部分分配较少的比特,从而留出足量的比特用于生成高质量的复杂部分。这意味着复杂性恒定的内
容(例如新闻播音)不会受益于VBR编码。对混合内容使用 VBR 编码时,在文件大小相同的条件下,VBR编码的输出结果要比CBR编码的输出结果质量好得多。 在某些情况下,与CBR编码文件质量相同的VBR编码文件, 其大小可能只有前者的一半。

一般情况下,合成相同质量的节目时,采用CBR编码方式时节目合成时间会短一些,但文件的长度会大一些(即相同时长的节目会占用更多的空间或者相同的空间只能容纳更短的节目)。

1、VBR 适合的应用场景是媒体存储,而不是网络传输,因此不要让武状元去当文官;

2、其实实际网络传输中所谓的 CBR 一般都是 ABR(平均比特率),即只要是单位时间内把码率控制在额定码率就可以了,因为编码输出本来就有缓冲可以起到平滑波动的作用;

3、你所谓的严格意义上的 CBR 是每一帧都分配同样的码字,试想一下,如果某一帧所需要的码字本来就很少,而你却一定要给它分配很多码字,那不是浪费么?另一方面,如果某一帧所需要的码字本来就多,而你却给得很少,那这帧的效果会很差。这样编下来,整体序列质量会忽好忽坏地不停发生跳变,反而对视觉冲击很大;因此 ABR 才是最适合网络传输的方案;

4、无论是 CBR、ABR 还是 VBR 都是属于码率控制,而码率控制是视频编码的开放部分,它不会改变码流结构的合法性,因此无论在 MPEG2、MPEG4 还是 H.263、H.264 当中都没有做规定;

5、由于目前的视频编码标准都是基于块编码的混合编码框架,因此一个码率控制算法可以用到任何协议上(当然有时候需要做点小的改动),只不过是控制效果好不好的问题,没有哪个 RC 是专属哪个协议的。

标签:编码,码率,视频,比特率,CBR,VBR
From: https://www.cnblogs.com/fisherpau/p/17450793.html

相关文章

  • 编程语言中的编码知识
    序论在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。ASCII......
  • OD统一考试 B卷 本篇题目:整数编码
    华为OD机试【4大宝典】再次上新题!①Python解华为机试题:https://dream.blog.csdn.net/article/details/129221789②C++解华为机试题:https://dream.blog.csdn.net/article/details/129472919③Java解华为机试题:https://dream.blog.csdn.net/article/details/129652513④......
  • 基于FFmpeg的音频编码(PCM数据编码成AAC android)
    概述在Android上实现录音,并利用FFmpeg将PCM数据编码成AAC。详细之前做的一个demo,Android录音获取pcm数据(音频原始数据),然后利用FFmpeg将PCM数据编码成AAC。一、准备工作开发环境jdk1.8 EclipseLunaServiceRelease1(4.4.1)运行环境:华为荣耀6(Android4.4)、华为......
  • 背景 | 基于 Transformers 的编码器-解码器模型
    !pipinstalltransformers==4.2.1!pipinstallsentencepiece==0.1.95Vaswani等人在其名作Attentionisallyouneed中首创了基于transformer的编码器-解码器模型,如今已成为自然语言处理(naturallanguageprocessing,NLP)领域编码器-解码器架构的事实标准。最近基......
  • 第五节 字符编码
    目录一、计算机基础二、文本编辑器存取文件的原理三、Python解释器执行py文件的原理四、Python解释器与文件本编辑的异同五、字符编码介绍5.1什么是字符编码5.2涉及到字符编码的两个场景5.3字符编码发展史与分类5.4内存为什么不用UTF-8呢?5.5字符编码之文本编辑器操作5.6乱码......
  • Python excejs 执行js文件的时候 报编码错误的问题
    问题执行js的时候报图中的编码错误,直接执行js文件时能正常编译,在网上未找到关于这个问题的文章头疼了好久最终在各位大佬的帮助下解决了问题,便记录了下来:解决办法:一、修改报错文件subprocess.py中的encoding编码:encoding=None--->encoding='utf-8'二、在引包的时......
  • m基于钱搜索算法的BCH编译码matlab仿真,仿真输出误码率曲线和编码增益曲线
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要 BCH编译码是一种纠错能力强,构造简单的信道编译码。BCH编译码的生成多项式可以由如下的式子表示:  ①BCH码是一种纠错码、线性分组码、循环码。 ②需要传输信息位数:k ③纠错能力:t ④总码长......
  • java编码转换过程
    java编码转换过程我们总是用一个java类文件和用户进行最直接的交互(输入、输出),这些交互内容包含的文字可能会包含中文。无论这些java类是与数据库交互,还是与前端页面交互,他们的生命周期总是这样的:1、程序员在操作系统上通过编辑器编写程序代码并且以.java的格式保存操作系统中,这些文......
  • javaWeb中的编码解码
    在上篇博客中LZ介绍了前面两种场景(IO、内存)中的Java编码解码操作,其实在这两种场景中我们只需要在编码解码过程中设置正确的编码解码方式一般而言是不会出现乱码的。对于我们从事java开发的人而言,其实最容易也是产生乱码最多的地方就是web部分。首先我们来看在javaWeb中有哪些地方存......
  • java是如何编码解码的
    编码&解码在java中主要有四个场景需要进行编码解码操作:1:I/O操作2:内存3:数据库4:javaWeb下面主要介绍前面两种场景,数据库部分只要设置正确编码格式就不会有什么问题,javaWeb场景过多需要了解URL、get、POST的编码,servlet的解码,所以javaWeb场景下节LZ介绍。I/O操作在前面LZ就提过乱码问......