264编码解码过程中,VBV (video buffer virifier)的作用
来源:互联网 发布:手机淘宝怎么取消授权 编辑:程序博客网 时间:2024/06/16 05:02
Video Buffer Verifier (VBV)是一个当输入码流遵从MPEG标准时,既不会上溢出,也不会下溢出的理论上的解码缓冲器模型
VBV的操作与两个传送值相关:vbv_buffer_size_value、vbv_delay
vbv_buffer_size_value的作用是是缓冲区的最大值;然而vbv_delay是从存储一幅图像的开始码到开始解码一幅图像之间的延迟。vbv_buffer_size在每个序列头传送,vbv_delay则在每幅图像头处传送。这一点要注意哦。 不过实际上解码器那边也不会用到,因为有DTS PTS这些关键的指标,足以让解码器实时准确的从buffer提取解码数据。
在ATSC 标准A/53 附件A(ATSC standard A/53 Annex A)中,对缓冲区大小的限制是:
maximum video buffer = B = 7995392 bits,
which is specified by transmitting:
vbv_buffer_size_value <= 488 (lower 10 bits of vbv_buffer_size)
vbv_buffer_size_extension = 0 (upper 8 bits of vbv_buffer_size)
where B = 16*1024*vbv_buffer_size.
vbv_delay是16位的无符号整数,表示从将一幅图像的开始码送入缓存到移除并开始解码一幅图像之间的90kHz时钟周期数量。
VBV buffer 的作用是处理各帧编码后大小不一和输出CBR 的矛盾。
CBR规定encoder的输出码率为恒定,但是各帧编码后的大小不是固定的(I,B,P帧的存在),因此需要在encoder后面加入VBV buffer。
可以将VBV buffer想象成为一个水池,水池的入口连接着encoder的输出,水池的出口为恒定的码率输出。
为了使得输出恒定,encoder必须保证水池既不上溢也不下溢。下溢会导致无数据输出,上溢会导致数据丢失。
所以encoder在编码一帧时会参考当前vbv buffer的充盈情况,并由此计算出,当前帧应当编码多少比特,从而保证既不上溢也不下溢。[1]
CBR规定encoder的输出码率为恒定,但是各帧编码后的大小不是固定的(I,B,P帧的存在),因此需要在encoder后面加入VBV buffer。
可以将VBV buffer想象成为一个水池,水池的入口连接着encoder的输出,水池的出口为恒定的码率输出。
为了使得输出恒定,encoder必须保证水池既不上溢也不下溢。下溢会导致无数据输出,上溢会导致数据丢失。
所以encoder在编码一帧时会参考当前vbv buffer的充盈情况,并由此计算出,当前帧应当编码多少比特,从而保证既不上溢也不下溢。[1]
0 0
- 264编码解码过程中,VBV (video buffer virifier)的作用
- protocal buffer中编码和解码过程
- 关于VBV-------Video Buffering Verifier
- Java中 Buffer的作用
- 3-1 通信系统中编码和解码的作用及常见的编码方法
- H.264的CAVLC(编码.解码)过程详解
- H.264的CAVLC(编码.解码)过程详解
- H.264的CAVLC(编码.解码)过程详解
- 解码端的buffer
- 浅谈浏览器的编码与解码过程
- video buffer里的属性
- 在asp程序中Buffer的作用
- java nio Buffer 中 compact的作用
- VBV大小-H.264
- JMVC 编码解码过程
- java编码解码过程
- Gamma codes(γ 编码)的编码和解码过程(encoding and decoding of Gamma codes)
- video player 的解码实现
- App跨平台开发方案与抉择
- ext4文件系统新特性
- 缓存、缓存算法和缓存框架简介
- 算法导论—二叉搜索树(BST)
- 腾讯2015年应用开发笔试最后一题抽象--找到数组中一个超过数组长度一半的数字(java实现)
- 264编码解码过程中,VBV (video buffer virifier)的作用
- javascript indexOf() 和lastIndexOf()方法比较
- DB2 IXF文件导入代码集不兼容浅析
- java之路——输入三个数进行排序
- 【Android】Windows批处理bat,执行adb shell指令
- 高需职位起底,高薪行业热门城市曝光
- UVA 562 Dividing coins (01背包基础)
- RichEdit改变行距
- test(),compile(),exec(),match(),search(),replace(),split()