上次测试MPEG4和H264的时候,由于要进行分帧输入解码器测试,因此进行了MPEG4和H264码流的简单分析,MPEG4码流的分析见上次记录的那篇文章。
目前又要开始测试MPEG1和MPEG2码流的解码了,同样,对这两种码流也进行一下简单的分析,通过搜集资料和查看两种标准的协议13818-2和11172-2,了解这两种码流格式的一些基本结构,今天把它们也在此做一个简单的整理和记录,也便于以后的翻看和大家的参考:
由于MPEG1与MPEG2的结构类似,这里就主要以MPEG2来进行说明:
首先来给一张MPEG2 video Sequence的一个结构图:
与采用Elecard Stream Analyer分析出的结果基本一致:
有了上面的图后,大家就可以清晰的看出MPEG2 video Sequence的一个大体结构了。
下面我们来以例子来进行码流结构的简单分析和说明:
比如:Test.m2v
00 00 01 B3 08 00 80 23 00 FA 20 30 00 00 01 B5
以视频系列头Sequence Header开始,Start code values: 00 00 01 B3 为起始码;
horizontal_size_value(12 bits):08 0 = 128
vertical_size_value(12 bits):0 80 = 128
aspect_ratio_information(4 bits) = 2
frame_rate_code (4 bits) = 3
bit_rate_value(18 bits) = 00 FA 2>>2 = 0000 0000 1111 1010 00 = 1000
marker_bit(1 bit) = 1
vbv_buffer_size_value(10 bits) = 0 0000 0011 0 = 6
constrained_parameters_flag(1 bit) = 0
load_intra_quantiser_matrix( 1bit) = 0
load_non_intra_quantiser_matrix(1bit) = 0
00 00 01 B5 extension_start_code
00 00 01 B5 14 82 00 01 00 00 00 00 01 B5 23 05 05 05 02 02 04 00 00 00 00 01 B2
extension_start_code_identifier(4 bits) = 1
profile_and_level_indication(8 bit) = 48
progressive_sequence( 1 bit) = 0
chroma_format(2 bits) = 01
horizontal_size_extension(2bit) = 0
vertical_size_extension(2 bit) = 0
bit_rate_extension(12 bit) = 0 0000 0000 000
marker_bit(1 bit) = 1
vbv_buffer_size_extension(8 bits) = 00
low_delay(1 bit) = 0