静态码率(CBR)和动态码率(VBR)
转自:
静态码率(CBR)和动态码率(VBR) - CSDN博客
http://blog.csdn.net/yagnruinihao/article/details/38662967
CBR:
即Constants Bits Rate,固定码率,就是静态(恒定)比特率的意思。CBR是一种固定采样率的压缩方式。
(1)优点:压缩快,能被大多数软件和设备支持。
(2)缺点:占用空间大,效果不是十分理想。现已逐渐被VBR方式取代。
固定码率是一种用来形容通信服务质量的术语。和它相对的就是可变码率或可变比特率(variable bit rete,缩写VBR)当在一个带宽受限的信道中进行多媒体通讯的时候CBR是非常有用的,因为这时候受限的是最高码率,CBR可以更好的易用这样的信道。但是CBR不适合进行存储,因为CBR将导致没有足够的码率对复杂的内容部分进行编码(从而导致质量下降),同时在简单的内容部分会浪费一些码率。
大部分编码方案的输出都是可变长的码字,例如霍夫曼编码或者游程编码(run-length coding),这使得编码器很难做到完美的CBR。编码器可以通过调整量化(进而调整编码质量)来部分的解决这个问题,如果同时使用填充码来完美的达到CBR。(有时候,CBR也指一种非常简单的编码方案,比如将一个16位精度的音频数据流通过抽样得到一个8位精度的数据流)。
VBR:
VBR(Variable Bit Rate),也称为动态比特率编码,使用这个方式时,你可以选择从最差音质/最大压缩比到最好音质/最低压缩比之间的种种过渡级数,在MP3文件编码之时,程序会尝试保持所选定的整个文件的品质,将选择适合音乐文件不同部分的不同比特率来编码。
(1)优点:可以让整首歌都能大致达到我们的音质要求。
(2)缺点:编码时无法估计压缩出来的文件体积大小
区别:
VBR与传统的CBR编码的MP3不同,传统的CBR(Constant BitRate)就是静态比特率,CBR约定死了MP3的采样率为固定值。一首MP3从头至尾为某固定值如128KBit/s进行压缩。而VBR则采取了一种全新的,全程动态调节技术的压缩方法。当在低音段时,VBR会自动采用较低的比特率如32KBit/s对音质进行压缩;当在高音段时会用较高的比特率如224KBit/s对音质进行压缩;当在极高端时则采用最高320KBit/s进行压缩。VBR MP3就是在控制文件大小的情况下,最大限度的提高了MP3的音质。
不同
(1)CBR:固定位率的FRAME(框架)的大小也是固定的,只要知道文件总长度,和帧长即可由播放每帧需26ms计算得出mp3播放的总时间,也可通过计数帧的个数控制快进,快退慢放等操作。
(2)VBR:VBR是XING公司推出的算法,所以在MP3的FRAME里会有“XING”这个关键字(现在很多流行的小软件也可以进行VBR压缩,它们是否遵守这个约定,那就不得而知了),它存放在MP3文件中的第一个有效FRAME里,它标识了这个MP3文件是VBR的。同时第一个FRAME里存放了MP3文件的FRAME的总个数,这就很容易获得了播放总时间,同时还有100个字节存放了播放总时间的100个时间分段的FRAME的INDEX。
在流式播放方案中使用CBR编码最为有效。使用CBR编码时,比特率在流的进行过程中基本保持恒定并且接近目标比特率,始终处于由缓冲区大小确定的时间窗内。CBR编码的缺点在于编码内容的质量不稳定。因为内容的某些片段要比其他片段更难压缩,所以CBR流的某些部分质量就比其他部分差。此外,CBR编码会导致相邻流的质量不同。通常在较低比特率下,质量的变化会更加明显。
VBR 适合的应用场景是媒体存储,而不是网络传输。当计划提供内容供用户下载、将内容在本地播放或者在读取速度有限的设备(如CD或DVD播放机)上播放时,请使用VBR编码。(计划流式播放内容时也可以采用峰值VBR编码模式)当编码内容中混有简单数据和复杂数据(例如,在快动作和慢动作间切换的视频)时,VBR 编码是很有优势的。使用VBR编码时,系统将自动为内容的简单部分分配较少的比特,从而留出足量的比特用于生成高质量的复杂部分。这意味着复杂性恒定的内容(例如新闻播音)不会受益于VBR编码。对混合内容使用 VBR 编码时,在文件大小相同的条件下,VBR编码的输出结果要比CBR编码的输出结果质量好得多。在某些情况下,与CBR编码文件质量相同的VBR编码文件,其大小可能只有前者的一半。
由于目前的视频编码标准都是基于块编码的混合编码框架,因此一个码率控制算法可以用到任何协议上(当然有时候需要做点小的改动),只不过是控制效果好不好的问题,没有哪个 RC 是专属哪个协议的。
</div>
静态码率(CBR)和动态码率(VBR)相关推荐
- 摄像头编码模式定码率CBR和变码率VBR有什么区别
Q: IPC编码模式定码率CBR和变码率VBR有什么区别? A:区别如下: 定码率CBR:相机将以恒定的编码码率发送实况数据 变码率VBR:相机根据图像质量动态的调整实况码率
- 监控技术:smart265和H.265的主要区别 动态码率和变码率的主要区别
smart265和H.265的主要区别在于二者编码所使用的码率不同,smart开启之后,在二者保证图像质量的前提下,smart265所使用的码率低于H.265所说用的码率.在空闲场景的图片上,smar ...
- 给pjsip2.10增加动态码率调整功能
目录 前言 1.缓存已发送的rtp包 2.基于丢包率动态调整视频码率 3.引入webrtc的congestion_controller 3.1 rtp包需要传入libcc. 3.2 不需要直接发送RT ...
- 流媒体动态码率自适应方案
流控(动态码率调整)机制: 1.缓冲区(视频输入.网络收发). 2.socket缓存监测. 3.MTU控制. 4.丢帧处理与检测. 5.调整码率(根据目前的网络丢帧状况,来决定码率降低幅度). 6.I ...
- 代理详解 静态代理+JDK/CGLIB 动态代理实战
1. 代理模式 代理模式是一种比较好理解的设计模式.简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对 ...
- 实战:将静态路由发布到动态路由
将静态路由发布到动态路由 打开随书光盘中第6章练习"06 将静态路由发布到动态路由.pkt",如图6-22所示,河北师大和软件学院有各自独立的网络,有独立的IT部门管理自己的网络. ...
- C++中.lib静态库、.dll动态库的生成及调用2
关于动.静态库的介绍及静态库的生成及调用参见:C++中.lib静态库..dll动态库的生成及调用<1>,本文主要介绍基于VS2015平台的动态库dll的生成及调用方法. 一.动态库的生成 ...
- C++中.lib静态库、.dll动态库的生成及调用1
一.前言 1.动态链接库(dll)与静态链接库(lib): 动态链接库(dll)是一个可以被其他应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源.在链接步骤中,连接器将从库文件取得所需的代 ...
- 【Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 )
文章目录 I . CMake 简介 II . Android Studio 中 CMake 引入静态库流程 III . 指定 CMake 最小版本号 IV . 导入函数库 ( 静态库 / 动态库 ) ...
- cglib动态代理jar包_代理模式详解:静态代理+JDK/CGLIB 动态代理实战
1. 代理模式 代理模式是一种比较好的理解的设计模式.简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标 ...
最新文章
- axios安装_Vue脚手架安装,与基本语法(干货)
- SharePoint自动化系列——通过PowerShell创建SharePoint Lists
- EJB3.0学习笔记---MDB--第一个MDBBean程序:
- Redis学习笔记(3)-XShell连接CentOSMini,并安装Redis
- 用R3写卡成PRL302,解决新电信卡PRL301只能1X不能上3G问题
- 微信小程序page禁止页面上下滑动
- el表达式跟ognl表达式的区别(用法和页面取值)
- shell脚本基础练习题
- HBase简介及使用
- python 读xml_python读取xml文件
- Linux解决忘记密码的方法
- AMOS软件简介【SPSS 050期】
- OpenCV入门系列 —— medianBlur中值滤波
- 【Kubernetes 015】pod调度之Affinity亲和性
- Vscode配置C++(一步一步图文详解)
- 来说一下!线雕的副作用和危害有哪些?妈耶
- 你不知道的微信小程序-李宁-专题视频课程
- (论文复现,matlab代码分享,可运行)改进遗传算法求解农业水资源调度问题
- linux so 文件 执行,Linux .so库的使用
- Matlab颜色图相关