H263@FLV与H263@3GP的区别


虽然FLV中codecid2和大部份的3GP文件中用到的都是基于H263的编码但是两者 还是有很大不同,所以要引起注意。主要有三个地方不同,做解码的时候一定要注意,3GP文件中基于H263的视频编码是按照公开的H263技术白皮书实现 的,但是FLV中H263的编码确在标准之上做了些小小的改动。
(一)标识码不同
H263(3GP)的标识码为一个22位的值,0×0020后面跟着的是一个8位的(Temporal Reference) 的值
H263(FLV)的标识码为一个17位的值,0×0001后面跟着的是一个5位的格式信息的值
(二)图像的信息头不同

H263(3GP)参考标准的图像头
H263(FLV)图像信息头包括下面的信息:
picture type: 5(图像格式信息,主要用来判断ESCAPE的系数处理方式)
picture number : 8(图像序号)
picture code type : 3(图像编码信息)
根据不同的picture code type图像宽高信息通过下面的表取得
值图像宽图像高
0width:8height:8
1width:16height:16
2352288
3176144
412896
5320240
6160120

frame type:2 (I帧还是P帧)
skip bit : 1 (不清楚代表什么)
quant : 5 (量化值)
PEI : 1(参考标准文档的说明)
(三)系数解码编码中处理ESCAPE码不同
H263(3GP)中对ESCAPE码处理的方法如下
last:1(最否是最后一个非零系数)
run:6(表示系数前0的个数)
level:8(系数的幅值,最高位为符号位,为0则level=level,如果为1,level = -(256-level) )
H263(FLV)
如果picture type > 0
这时要多判断一位
longescape : 1(是不要用长的ESACPE编码)
longesapce = 0
last:1(最否是最后一个非零系数)
run:6(表示系数前0的个数)
level:7(系数的幅值,最高位为符号位,为0则level=level,如果为1,level = -(128-level) )
longesapce = 1
last:1(最否是最后一个非零系数)
run:6(表示系数前0的个数)
level:11(系数的幅值,最高位为符号位,为0则level=level,如果为1,level = -(2048-level) )
处理好这个问题一般就可以正常的进行编解码的处理了


本文来源于 冰山上的播客 http://xinsync.xju.edu.cn , 原文地址:http://xinsync.xju.edu.cn/index.php/archives/1168

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值