mpeg4视频中,I帧、p帧、B帧的判定
2013-05-14 19:25
204 查看
mpeg4视频中,I帧、p帧、B帧的判定
mpeg4的每一帧开头是固定的:00 00 01 b6,那么我们如何判断当前帧属于什么帧呢?在接下来的2bit,将会告诉我们答案。注意:是2bit,不是byte,下面是各类型帧与2bit的对应关系:
00: I Frame
01: P Frame
10: B Frame
为了更好地说明,我们举几个例子,以下是16进制显示的视频编码:
00 00 01 b6 10 34 78 97 09 87 06 57 87 …… I帧
00 00 01 b6 50 78 34 20 cc 66 b3 89 …… P帧
00 00 01 b6 96 88 99 06 54 34 78 90 98 …… B帧
下面我们来分析一下为什么他们分别是I、P、B帧
0x10 = 0001 0000
0x50 = 0101 0000
0x96 = 1001 0100
大家看红色的2bit,再对照开头说的帧与2bit的对应关系,是不是符合了呢?
下面给出一段c++代码供大家参考:
mpeg4的每一帧开头是固定的:00 00 01 b6,那么我们如何判断当前帧属于什么帧呢?在接下来的2bit,将会告诉我们答案。注意:是2bit,不是byte,下面是各类型帧与2bit的对应关系:
00: I Frame
01: P Frame
10: B Frame
为了更好地说明,我们举几个例子,以下是16进制显示的视频编码:
00 00 01 b6 10 34 78 97 09 87 06 57 87 …… I帧
00 00 01 b6 50 78 34 20 cc 66 b3 89 …… P帧
00 00 01 b6 96 88 99 06 54 34 78 90 98 …… B帧
下面我们来分析一下为什么他们分别是I、P、B帧
0x10 = 0001 0000
0x50 = 0101 0000
0x96 = 1001 0100
大家看红色的2bit,再对照开头说的帧与2bit的对应关系,是不是符合了呢?
下面给出一段c++代码供大家参考:
switch(buf[i] & (BYTE)0xc0) { case 0x00: //I Frame break; case 0x40: //P Frame break; case 0x80: //B Frame break; default: break; }
相关文章推荐
- mpeg4视频中,I帧、p帧、B帧的判定
- avi音视频格式及mpeg4视频中,I帧、p帧、B帧的判定
- mpeg4视频中,I帧、p帧、B帧的判定
- mpeg4视频中,I帧、p帧、B帧的判定
- mpeg4视频中,I帧、p帧、B帧的判定
- mpeg4视频中,I帧、p帧、B帧的判定
- mpeg4视频中,I帧、p帧、B帧的判定(转载)
- 视频压缩:I帧、P帧、B帧
- 视频编码之I帧 、P帧、B帧
- 嵌入式 视频压缩:I帧、P帧、B帧
- 视频压缩:I帧、P帧、B帧
- MPEG视频编码中的I帧,P帧和B帧以及IDR帧(转)
- 视频编码的三种帧:I帧,B帧,P帧
- 关于I帧、P帧和B帧(转一篇维基百科上关于视频压缩的帧类型的说明)
- 视频流中的 I帧 P帧 B帧
- 视频压缩:I帧、P帧、B帧
- 视频流中的 I帧 P帧 B帧 .
- 视频编码基础之I帧 、P帧、B帧
- 视频压缩:I帧、P帧、B帧
- [转] 视频压缩:I帧、P帧、B帧