zoukankan      html  css  js  c++  java
  • 固定码流 可变码流

      一般在我们输出视频文件的时候都会碰到一个选择即CBR与VBR。

      CBR的英文全称是Constant Bit Rate翻译过来是固定码率就是说每一秒种的画面如果看做是一个静止的图片文件的话(实际上是每一帧的画面大小加起来)它大小是固定的。

      VBR的英文全称是Variable Bit Rate意思是可变码率主就是每一秒画面的大小是不固定。


            CBR相对简单会在压缩输出的时候就把画一秒的画面都计算为固定的大小,这样运算量小,编码时间短而且解码算法也简单,但缺点是在画面剧烈运动的时候会由于码率不够而丢失部分画面信息。我们从视觉上来看就是画面波纹严重,图像不清晰。CBR的设置非常简单就是设定一下码率大小就可以了,所以我们重点要讲的是VBR。
            学习过视频知识的人都知道在在移动的画面所要消耗的存储量是大于静止的画面的,VBR的出现就是为了解决这个问题。VBR有三个参数分别是MAX,Average和MIN,分别是指视频的最大码率,平均码率和最小码率。由于在压缩的时候我们要大概的知道成片的大小是多少这个时候我们可以用VBR的平均码率来计算出视频文件的大概大小是多少。由于电脑存储文件是采用字节即Byte而在电路中实现传输的时候采取的是比特流即Bit,8个Bit组成一个Byte。所以我们以平均码率6Mbps来计算每一秒的画面就是6Mbps/8=750KB那么一小时的视频文件大小就是750KB*3600=2700MB即2.7GB,这就是一般的DVD视频文件一小时的大小。
            由于有MAX,ARG和MIN三个参数我们采用VBR压缩输出视频的时候计算机会先进行一下逐帧的扫描把运动量大的画面码率调高,运动量小或是静止的画面码率调低并保证平均后的码率等于ARG值。VBR的优点就体现出来了画面质量相对高,但是缺点也出来了运算量大压缩时间长,更严重的对解码算法的要求就复杂了很多相对的对解码器的CPU要求就也高了。这就是很多手机可以播出CBR的RM视频却播不了VBR的RMVB视频的原因,因为手机的CPU还没有足够的强,内存也不能运算如此复杂的解码算法。

  • 相关阅读:
    开发者看过来,哪个移动平台好赚钱?
    EGit下配置Github项目
    用户接口(UI)设计的 20 条原则
    要想工作效率高,我们到底需要多少睡眠?
    Android 读取<metadata>元素的数据
    Android实现推送方式解决方案
    余晟:做个懂产品的程序员
    Gson简要使用笔记
    编程从业五年的十四条经验,句句朴实
    程序员不是包身工
  • 原文地址:https://www.cnblogs.com/ostin/p/9917382.html
Copyright © 2011-2022 走看看