随着数字视频压缩技术在广播电视领域的广泛应用,对于广大工程技术人员而言,能够熟悉MPEG码流结构,运用协议分析工具对系统进行简单、常规的检测,从而确保系统正常运行,显得十分必要。 MPEG信号与传统电视广播信号最大不同在于:MPEG存在多个信息层,在MPEG系统检测中需要快速准确地确认错误发生在哪一个信息层。通常协议分析工具一般都会提供诸如视频、音频基本码流分析和测试、传输码流分析、等级图、结构解释图、语法和CRC循环校验分析、过滤、定时分析等功能。通常码流分析仪器可以对活动传输码流进行各种实时分析,比如显示传输码流中的节目等级图等。还可以将部分传输码流记录下来,用于进一步详细分析,这种技术称为延时测试,比如可以用于检验时间标记的内容等。进行实时分析和信号采集时,需要接入信号源。下面结合MPEGscope Plus码流分析仪中的MPEG视频基本码流测试和分析这一项功能,介绍MPEG视频基本码流结构以及测试分析过程。 打开基本码流文件后,在基本码流分析窗口中会显示视频基本码流的各层所包含的基本信息。在其左上方区域显示该视频基本码流的总的类型信息即基本码流属于哪一类的MPEG。 在基本码流分析窗口中的左下方显示序列头(Sequence Header)信息,序列头信息分为两部分:序列头部分和序列扩展。序列头部分是MPEG1和MPEG2公用部分,从上到下依次为图像水平像素、图像垂直像素(14位中的低12位)、宽高比、样点高宽比、帧频、码率(30位中的低18位)、视频缓冲校验器大小(18位中的低10位)等信息;序列扩展是MPEG-2的标志,通过点击基本码流分析窗口中的扩展信息(Extension Information)菜单,在MPEG-2序列扩展信息框中,从上到下各项依次说明视频基本码流是哪个类(profile)哪个级(level);显示有帧图像和场图像还是只有帧图像;显示亮色取样结构是4:2:2还是4:2:0或4:4:4。余下部分依次为图像的水平像素、垂直像素、码率、视频缓冲校验器、Low Delay、帧频等参数的高位部分信息扩展。 在基本码流分析窗口的中间区域的上方部分显示了图像组头(GOP Header)信息包括丢失标志、用于录像的时间码和控制码、还有涉及B帧处理的Closed GOP和Broken Link。 在基本码流分析窗口的中间部分的下方显示图像头(Picture Header)信息,图像头信息包括两个部分即图像头本身和一些扩展信息。在图像头本身信息区域内,当图像基于帧编码时,相应的参数显示在Frame/1st Field下面;当图像基于场编码时,第一场相应的参数显示在在Frame/1st Field下面,第二场相应参数显示在2nd Field下面。这些显示的参数依次为时间基准(Temporal Reference),时间基准是以图像组头后的第一个图像编号为“0”,以后每输入一个图像,时间基准编号增加1;图像编码类型:用于表明图像是I、P还是B帧;视频缓冲延时:显示解码器作用时的缓冲器的占有率,以确保解码时缓冲器不会上溢和下溢。在图像扩展信息(Coding Extension)中,其内容依次包括:四个f_code[0][0]、f_code[0][1]、 f_code[1][0]、f_code[1][1]分别表示运动矢量在正向/反向、垂直/水平方向的搜索范围;帧内直流系数的精度,是8/9/10/11比特中的那一种;图像结构,说明是顶场(top field)、底场(bottom field)或者是帧图像(frame Piture);顶场是否在前;是否为预测帧DCT系数;是否掩蔽运动矢量,这里的掩蔽实际是指掩盖误码,当解码时遇到误码,将有误码的宏块丢掉,靠相邻的宏块来生成,这就要用到运动矢量,如果相邻块是帧内编码的宏块,没有运动矢量,为此目的需要在帧内编码的宏块也加上运动矢量,这就叫掩蔽运动矢量;宏块量化参数类型;是否为帧内可以变长度编码格式;是否隔行扫描;第一场是否重复;是否为4:2:0格式;是否为连续帧;复合显示标志等。 在基本码流分析窗口的右边区域显示宏块条的头部(Slice Header)信息,依次为:宏块量化尺度的最小和最大值;总的宏块条数量;按照垂直位置编号的宏块条及其量化尺度码的列表显示。 视频基本码流分析还可以对宏块进行分析,显示宏块类型、每个宏块的比特数、宏块运动矢量、宏块运动矢量类型及宏块量化尺度等参数。 在视频播放窗口中(见图2 视频播放窗口及区域选择),用鼠标可选择某一区域进行分析,如果事先不进行区域选择,基本码流分析仪会对当前帧的全部宏块进行分析。 在宏块分析窗口中(见图3),左边方框内显示被分析的宏块的排列,且用十四种黑色符号之一表示相应宏块类型。宏块类型用来说明宏块的编码方法和内容。宏块分析窗口内的每一个宏块还可以分别用几种不同形式的图形符号组合来进一步加以说明:黑色符号上方的数字说明宏块量化因子的大小;黑色符号下面有无文字(Frame或Field或无显示)分别说明宏块是基于帧编码还是基于场编码或是其他形式的编码;符号上的红色箭头说明宏块运动矢量的类型,红色箭头的多少、方向分别说明是否前向运动矢量、后向运动矢量或双向运动矢量;宏块图的蓝色底色深浅说明宏块包含比特数的多少,在窗口的下方由白色渐变为深蓝色的色条粗略指出各颜色对应的比特数多少。 对于上述宏块的图形符号组合显示可以根据需要进行设置,选择显示或不显示某一图形符号,这种选择通过打开Display Options功能,选择相应的选项即可。 宏块分析窗口的右边为十四种符号所代表的宏块类型,因为对于不同的帧编码其宏块有不同的类型,如I帧中只有两类宏块:使用当前量化级I和使用新的量化级I mq。对于P帧和B帧则有更多的宏块类型,有的宏块也可以是帧内编码,不一定每一个宏块都是帧间编码,例如当场景切换发生在P帧时,多数宏块可能使用帧内编码。对于B帧可能有的宏块用帧内编码,有的只用正向预测,有的只用反向预测,有的是双向预测。这样,界面中每一种符号旁边的字符是说明相应宏块的类型:如fmv、bmv是说明宏块运动补偿的模式;(fmv表示选择前向运动补偿,bmv表示选择后向运动补偿,fmv 和bmv表示选择双向运动补偿);mq说明是否使用新的量化级;coded表示在预测帧中使用帧内编码的宏块,这是由于在某些情况下,预测编码得到的预测误差较大,最后的编码效率比帧内编码还要低,因此,选取编码效率高的帧内编码的宏块;对于skipped宏块P帧和B帧有所不同,对于P帧图像,它的位移矢量为零,其预测误差值也为零,对于B帧skipped类型宏块与前一个宏块有相同的位移矢量和宏块类型。宏块分析窗口的右下方可以设置需要分析的帧类型及是否允许进行区域分析。 在附加的宏块信息(Additional MB info)中,只要用鼠标选择相应的宏块后,在附加的宏块信息框内会显示宏块类型、宏块量化因子、DCT类型、前向和后向垂直运动矢量、前向和后向运动矢量、DCT直流系数精度、是否双基(Dual Prime)预测等参数。在输入框中输入块号后,将显示出量化的DCT系数。 视频基本码流分析仪还提供了缓冲占有率图、码率图及比特利用图等图表显示功能,在Buffer Analysis Charts选项下,可分别进行上述三种功能的图表显示。这三幅图表的横坐标是码流中解码后的视频帧序号,纵坐标为比特或比特率,通过视频播放窗口控制可以进行逐帧或连续分析。如图4,5,6。 四 逻辑错误列表显示 MPEG码流完全依靠编码器对MPEG语法和语义的准确使用来处理节目素材,如果没有正确设置固定标志比特位、同步类型、数据包起始码等,解码器就可能错误解释MPEG码流。逻辑检查功能主要检查非节目素材的全部比特位,同时显示任何不合逻辑的地方。打开基本码流分析窗口菜单View的子菜单Event Log可以观察视频基本码流的逻辑错误列表。 |