宁静致远 发表于 2013-10-5 12:29:09

【经验分享&讨论】如何判断H264的帧为I帧

本帖最后由 宁静致远 于 2013-10-7 16:37 编辑

不保证正确性,仅仅是与大家讨论对标准的理解。

判断一个帧是否是I帧,我通过判断slice_header来决定。
如何判断slice_header的方法如下:
之前一直对slice_header的一些变量的数据结构占多少位感到疑惑,实际确实是可变的。
详情查阅14496-10   avc的文档此章节。
Parsing process for Exp-Golomb codes
此章节列出了ue(v)格式是分布的的。


由于I帧肯定是帧内预测,所以第一个宏块的起始地址是0,于是对应后面的slice_type 也就可以算出是不是I帧了。
slice_type是 2 4 7 9 都是 I slice,
因此 第五个字节开始算起,符合如下数据,我认为都可以算是I帧。

1 011
1 00101
1 0001000
1 0001010

由于紧跟着的变量也是ue(v)格式的,所以不可以用字节判断,必须从第五个字节开始,按位来判断是否是I帧。

宁静致远 发表于 2013-10-9 23:16:51

奇怪,为啥没人分享呢

cuijinquan 发表于 2013-12-23 15:17:35

谢, 谢,
页: [1]
查看完整版本: 【经验分享&讨论】如何判断H264的帧为I帧