请完成安全验证

GY/T 257.2-2014《广播电视先进音视频编码 第2部分:视频符合性测试》解读

来源:广电猎酷  2015年10月13日 23:10
广电猎酷  2015年10月13日 23:10
原标题:
正在加载

    GY/T 257.2-2014《广播电视先进音视频编码 第2部分:视频符合性测试》解读

    符合性测试标准是视音频编解码系列标准的重要构成部分。如H.264、H.265和国内的AVS,都有配套的符合性测试标准。GY/T257.2-2014《广播电视先进音视频编码第2部分:视频符合性测试》标准化自2014年1月启动以来,经过反复研讨修改、测试码流研制、测试码流验证、产品测试验证以及征求意见,于2014年9月29日顺利通过了总局专家审查会。
    今天,猎酷网有幸邀请到GY/T 257.2-2014的主要撰写人董文辉博士(总局规划院中心所副所长)为大家解读该标准。

猎小酷:董所长,您好!能否先对标准做个整体性介绍?

董文辉:好的。
        GY/T 257.2-2014《广播电视先进音视频编码 第2部分:视频符合性测试》(以下简称“AVS+符合性测试标准”)是AVS+的配套标准,它为AVS+产品的标准符合性测试提供技术指导和测试方法,能有效作用于AVS+视频编解码产品的研发、生产、测试、运行维护等,并对AVS+的发展起到良好的促进作用。
        AVS+符合性测试标准制定的主要依据为GY/T 257.1-2012《广播电视先进音视频编解码 第1部分:视频》,主要参考文献为GB/T 20090.4-2012《信息技术 先进音视频编码 第4部分:符合性测试》。
    《广播电视先进音视频编码 第2部分:视频符合性测试》共分五章,前四章遵循标准的通用格式。第一章是标准范围,概括给出了标准内容和适用范围。标准的规范性引用文件只有一个,即GY/T 257.1-2012《广播电视先进音视频编解码 第1部分:视频》,在第二章列出。第三章“术语和定义”给出了符合性测试、测试位流、被测解码器、参考解码器、合法解码器、位流验证器的明确概念。第四章给出了AEC、BBV、LPS、MPS、VLC、VLD等几个缩略语。标准的核心技术内容由第五章给出。第五章分四节,第一节明确本章中“编码位流”、“位流”和“解码器”的含义;第二节给出了编码位流符合性定义、解码器符合性定义、与类和级相关的要求和限制、编码器的要求、保留扩展的相关要求等;第三节给出了编码位流的符合性测试;第四节给出了解码器的符合性测试。

猎小酷:AVS+符合性测试标准主要内容有哪些?

董文辉:
        AVS+符合测试标准的内容分为编码位流的符合性测试和解码器的符合性测试两部分。AVS+符合性测试标准中对编码器的符合性测试要求体现在对其编码输出位流的符合性测试上。
        编码位流符合性定义在第五章第二节给出。编码位流中包含GY/T 257.1-2012规定的大量的参数,一些参数被规定为特定的值,另一些参数只规定了一个范围。为了检查编码位流的正确性,需要分析整个位流的语法,抽取出全部参数并分析这些参数值是否符合GY/T 257.1-2012中的规定。分析工具可使用位流验证器,GY/T257.1-2012的参考软件可以作为一个位流验证器。符合GY/T 257.1-2012的编码位流应通过位流验证器的测试,当经过位流验证器测试时,位流不应引起位流验证器的任何错误或非一致性消息。
        编码位流的符合性测试内容包括:起始码的测试、序列头的测试、用户和扩展数据的测试、I图像头的测试、PB图像头的测试、条带的测试、宏块的测试、块的测试、码流缓冲区验证、连续B图像和跳帧数目验证。
    解码器符合性定义在第五章第二节给出。GY/T 257.1-2012解码器符合性测试是测试解码器能否正确解码符合GY/T257.1-2012的编码位流。有两种测试方法:静态测试和动态测试。静态测试要求测试重建样本,测试解码处理的准确性。由于GY/T 257.1-2012中的IDCT变换为整数变换,因此,当被测解码器与参考解码器(可以使用GY/T 257.1-2012的参考软件作为参考解码器)从同一编码位流中解码出同一幅编码图像时,这两个解码器产生的重建样本应完全相同。动态测试将所有的重建样本输出显示并主观评价显示内容有否异常。
        解码器的符合性测试需要用到测试位流。标准共整理了55个测试位流,分为15个类型:一般性测试、存储带宽的测试、VLC解码的测试、“保留位”的测试、跳过宏块的测试、加权预测的测试、最大跳帧数目的测试、视频编辑码和随机访问的测试、填充比特的测试、伪起始码的测试、4:2:2格式解码测试、AEC测试、加权量化测试、双视点拼接测试、增强场编码测试,基本涵盖了GY/T 257.1-2012的技术内容。

猎小酷:您刚才提到了测试位流,这个在标准中的必要性、充分性是怎么样的?

董文辉:
        关于解码器的符合性测试,AVS+符合性测试标准定义了共15类55个测试位流,基本涵盖了GY/T257.1中对解码器的各项规定。但GY/T 257.1的技术细节非常多,无法确保能涵盖所有的细节。因此与同类标准类似,AVS+符合性测试标准规定的只能是“必要非充分”的,不排除在实践过程中,有更多的标准符合性测试要求可以补充和增添进来。所规定的测试位流及其相应的测试码流集,也是可以不断补充和完善的。
        在之前所有类似的视频编解码符合性测试标准中,指出“至少能够成功解码标准中所给出的符合性编码比特流的解码器,才可以说是符合某视频编解码标准的合法解码器”,我们认为这样的描述不很准确,并没有体现出“必要非充分”的含义。
        在AVS+符合性测试标准中加以改动,使得更能体现“必要非充分”,将相应部分描述如下:

        5.4定义了解码器的符合性测试,5.4.2定义了符合性测试所用的测试位流,解码器应通过该测试。

        同时,在标准引言部分声明:

        鉴于视频编解码的高度复杂性,本部分规定的测试可能无法完全涵盖GY/T 257.1-2012所规定的所有的参数组合和要求,成功通过本部分测试的编码位流和解码器未必完全符合GY/T 257.1-2012的所有规定。但本部分已尽可能多地涵盖GY/T 257.1-2012所规定的参数组合和要求。因此,在本部分中约定,通过本部分测试的产品可认定为符合GY/T 257.1-2012标准。

        这从另外一个角度表明能解码AVS+符合性测试标准中规定位流的解码器,不一定完全符合GY/T 257.1标准,但在一定程度上(至少在AVS+符合性测试标准所涵盖的方面和内容上)是符合GY/T 257.1标准的。

猎小酷:标准中对“保留位”和“保留”语法元素值做了相关规定,关于其中的考量,您能再详细介绍下吗?

董文辉:
        在GY/T 257.1定义的位流语法中,某些语法元素的值被标注为“保留”(reserved)。“保留”定义了一些特定语法元素值用于将来对该标准的扩展。这些值不应出现在符合该标准的位流中,如profile_id,除0x00、0x20、0x48分别是禁止、基准类和广播类的语法元素值之外,其他的值都是保留语法元素值。位流中的“保留位”(reserved_bits)表明保留了一些语法单元用于将来对该标准的扩展,解码处理应忽略这些位,如视频扩展数据保留字节 reserved_extension_data_byte就是保留位,需要在解码时忽略。但在实际应用场景中,可能存在编码位流使用了保留语法元素值或定义了保留位功能使之变得有意义的情况,此时该编码位流是不符合GY/T 257.1规定的位流。如果存在既能正确解码GY/T 257.2中规定的所有测试位流,又能解码上述不符合标准的位流,也不能说该解码器不符合GY/T 257.2标准。因此,再强调一下本文2.2.3节中指出的规定:“通过本部分测试的产品可认定为符合GY/T 257.1-2012标准”,即能不能解码其他符合或不符合标准的位流,不在该标准的规定范围内。
        因此在AVS+符合性测试标准中,关于“保留位”和“保留”语法元素值规定如下:

        5.2.5 保留扩展的相关要求
        在GY/T257.1-2012中规定了一些“保留”语法元素值和“保留位”。
        “保留”语法元素值不应出现在符合GY/T 257.1-2012的编码位流中,GY/T 257.1-2012的合法解码器可以不处理“保留”语法元素值。
符合GY/T257.1-2012的合法解码器可不处理“保留位”。
猎小酷:标准中对于AVS+是怎么实施动态测试的?

董文辉:
        在AVS+符合性测试标准的主要参考文献GB/T 20090.4的5.4.1中,给出了解码器动态测试方法。

        a) 所有的重建样本都输出给显示处理;
        b) 被测解码器重建样本输出给显示处理的定时与GB/T 20090.2-2006的规定一致。
        从而验证解码器缓冲区在使用合适的比特传送速率时不会发生上溢或下溢。

        所谓“定时”,我们理解是指在输出图像显示完整的前提下,图像的显示间隔是frame_rate_code规定的帧率的倒数(如若frame_rate_code为0011,则帧率为25帧/s,图像显示间隔为40ms)。而对“一致”没有给出解释。“一致”是由主观定性判断,还是由客观定量测量?如果需定量测量,是否有一个允许的波动范围,譬如-2ms~2ms?但在现有实验条件下,很难实现这样的定量测量。对于内置AVS+解码功能的电视机,只能通过对显示画面的高速捕捉,将光信号转化为电信号进行分析,得到显示图像的时间间隔,并判断毫秒级的差异。但目前据了解还没有这样精密的测量装置。
        基于以上考虑,在GY/T 275.2中,将动态测试方法改为:

        动态测试通过以下步骤检查:
        a)    所有的重建样本都输出显示;
        b)    主观评价输出显示无异常。

        即采用主观评价的方式实现动态测试。动态测试将解码的重建样本输出显示,如输出显示经主观评价无异常,即判定为通过。随着测量技术的发展,可能会出现方便而准确的高精度定量动态测试方法,那时标准可做相应修订。

猎小酷:能否介绍下编码位流中的语法参数测试?

董文辉:
        在实际测试时,使用的位流分析工具无法判断位流中连续的一组0和1位串是不是对应某一参数名称,只能判断某一个参数名称对应的参数值,不管其对和错。
        如,在GB/T 20090.4的5.3.5的表4中,对bbv_check_times参数的第一条测试要求是:

        1. 当low_delay等于‘0’时,编码比特流中不应该出现bbv_check_times。

        但该测试实际上无法完成。分析如下。
        在GB/T 20090.2-2006的7.1.3.1“I图像头定义”中,给出如下代码片段:

        if(low_delay==1)
            bbv_check_times
            progressive_frame

        上述代码表明,low_delay为1时,位流中存在bbv_check_times;low_delay为0时,不应存在bbv_check_times。如果编码器发生错误,在low_delay为0时,也加入了bbv_check_times的值,那么bbv_check_times的最高位会被位流分析工具判断为是progressive_frame的值(该参数的值是一位无符号整数),即发生错误的将是progressive_frame,即使碰巧progressive_frame的值符合编码要求,该错误也会传递下去,在其他参数处发生错误。
        因此该要求并不符合实际测试的应用场景,在AVS+符合性测试标准中,类似的要求都进行了删除。

猎小酷:标准中的伪起始码测试是怎么回事?

董文辉:
        GB/T 20090.4的5.4.2.10给出了emulation_bit的测试,如下:

        5.4.2.10 emulation_bit的测试
        测试比特流#25
        说明:包含emulation_bit的编码比特流。
        对象:解析器。
        目的:测试解码器能正确进行de_emulation处理,避免伪起始码仿真。要求emulation_bit尽可能出现在不同语法层次,即图像头、条带头、宏块、子块级。

        该测试的缘由介绍如下。AVS和AVS+中的起始码的构成规则相同,都是由起始码前缀和起始码值构成。起始码前缀为3个字节共24位,最后一位是1,前面23位是0。如果部分语法元素从位流字节对齐处开始取特定值时得到与起始码前缀相同的位串,且紧随其后的一个字节与某一起始码值相同,那么解码器就会误判这4个字节为起始码。为避免伪起始码的出现,在GB/T 20090.2和GY/T 257.1的附录C中都规定,编码器在写入一位时,如果该位是一个字节的第二最低有效位,检查该位之前写入的22位,如果这22位都是‘0’,在该位之前插入‘10’,该位成为下一个字节的最高有效位。这样就避免了伪起始码前缀的出现,从而避免了伪起始码的出现。相应的,解码器需要有处理插入的‘10’这两位的能力,从而还原出真实的位串。
        上述标准文本内容的主要的不明确之处是:1)不论是在GB/T 20090.2还是GB/T 20090.4中,都没有对emulation_bit的说明,也没有对伪起始码仿真的定义,因此会使人产生疑惑;2)若从字面上理解emulation_bit,是“仿真位”的含义,更准确一点,是“去仿真位”的含义,即前文中提到的‘10’两个位,避免了对起始码的“仿真”;3)在目的中,测试的是解码器“避免伪起始码仿真”这种能力。但实际上,需要“避免伪起始码仿真”的是编码器,解码器需要测试的是去除为“避免伪起始码仿真”而加入的‘10’两个位的能力。
        比较次要的不明确之处是:1)测试对象是解析器,范围太过宽泛;2)目的中的“要求……,即……”是测试位流的设计目标,而不应是测试的目的。
        于以上考虑,在AVS+符合性测试标准中,将标准文本描述为:

        5.4.2.10 伪起始码的测试
        5.4.2.10.1测试位流#24
        说明:编码位流包含为防止伪起始码出现而插入的‘10’,为防止伪起始码出现而插入的‘10’尽可能出现在不同语法层次,即图像头、条带头、宏块、子块级。
        对象:伪起始码处理。
        目的:测试解码器能否正确去除为防止伪起始码出现而插入的‘10’。
猎小酷:怎么理解标准中的“亮度样本速率”?

董文辉:
        在GY/T 257.1中多次出现“亮度样本速率”,但没有给出定义。在AVS+符合性测试标准中也使用了该术语,因此有必要对之加以说明。“亮度样本速率”是指每秒能编码的亮度样本个数,即每行亮度样本数×每帧行数×帧率。

猎小酷:我们注意到,标准中对参数测试描述采用引用方式,标准起草小组是怎么考虑的?

董文辉:
        对于前后同样的多组参数,采用了引用的方式,既方便前后保持一致,又能体现标准内容间的相关性。如,在I图像头和PB图像头中都有参数bbv_delay,AVS+符合性测试标准只在I图像头处(AVS+符合性测试标准表4)给出了测试要求,在PB图像头处注明“见表4中对此字段的要求”。这种描述方法简洁有效,便于对照。

猎小酷:对于视频符合性测试,测试码流扮演了非常重要的角色。能否再展开介绍下你们标准化时的考虑?

董文辉:
        AVS+符合性测试标准中给出了解码器标准符合性测试所用的测试位流的文字描述,包括每个测试位流的类别、“说明”、“对象”和“目的”。在具体测试时,还要根据这些文字的描述,开发出实际的测试流,本文称为“测试码流”。
        AVS+符合性测试标准中对测试位流的阐述较为宏观抽象,没有具体列举和详细规定。在研制具体测试码流时,针对每个测试位流,尚需有更详细的分析,以便明了应开发出怎样的测试码流。一般来说,针对每个测试位流,可能要开发数条甚至数十条测试码流,是一对多的关系。
        测试码流根据封装形式分两种,一种是视频基本流,可以用来测试芯片;一种是传送流(TS流),用于测试数字电视和机顶盒等整机产品。
        在制作测试码流时,现有的商用编码器尤其是硬件编码器可供设置的参数非常有限,无法制作出符合要求的测试码流。该类编码器只可以制作一些简单的码流,用于测试整机产品是否具备AVS+的解码功能。AVS+的参考软件是以源代码形式存在,可以完成对GY/T 257.1各种参数的设置,生成所需的测试码流。但设计参考软件的主要目的是用于验证编解码算法,并为产品开发提供参考,如果要使用它生成测试码流,生成每一个测试码流都需要对参考软件进行非常多的改动,工作量非常大。另外,参考软件的编码效率较低,编码时间很长,对于生成测试码流也不方便。因此,我们需要专门设计开发测试码流的制作软件,保证生成高质量的测试码流。
        在测试码流生成之后,还必须对其进行验证。要开发相应的验证工具,对测试码流中的各个测试点进行详细分析,从而判断测试码流是否符合我们的需求。

猎小酷:使用该标准下结论时有什么需要注意的吗?

董文辉:
        虽然GY/T 257.1-2012经常被简称为AVS+,但在GY/T 257.1-2012和AVS+符合性测试标准中并没有给出AVS+的严格定义,也就是说,在257.2的标准范围内,严格来说并不存在“AVS+解码器”或类似术语。
        GY/T257.1中包含了两种类:profile_id为0x20的类和广播类,其中profile_id为0x20的类与GB/T20090.2中的基准档次采用的编码技术完全相同。AVS+产品是什么?只支持profile_id为0x20的类的产品是否属于AVS+产品?还是只有两个profile_id为0x20的类和广播类都支持的才是AVS+产品?没有固定说法。
        AVS+符合性测试标准没有对AVS+产品做定义。在正式测试报告的测试结论中,不应出现“AVS+”的字眼,需给出标准号和标准的全称,且必须明确指出该产品支持的是profile_id为0x20的类还是广播类。单位和个人在购置AVS+产品时,也还需要重点关注它是否真的支持广播类。
        广播类是兼容profile_id为0x20的类的,即广播类解码器必然能解码profile_id为0x20的类的码流。在GY/T 257.1-2012中出现profile_id为0x20的类,表明是对原有技术的一个延续,以及能够兼容现已部署的少量AVS编码器。
        GY/T257.1-2012中有4:2:2视频编码格式规定。在AVS+符合性测试标准中也明确,4:2:2格式解码的测试位流,只针对声明支持4:2:2格式的解码器,在测试报告中也必须明确指出。
        另外,由于GY/T 257.1 中profile_id为0x20的类和广播类还包括不同的级,因此,在使用AVS+符合性测试标准进行测试时,还应该指出被测产品符合哪一类哪一级,明确被测产品的应用范围。

猎小酷: 限于时间关系,今天的解读就到这里。感谢董所长对GY/T 257.2-2014行业标准的重要解读。我们下次再见。
编辑:陈建伟 责任编辑:
    扫一扫 分享到微信
    正在阅读:GY/T 257.2-2014《广播电视先进音视频编码 第2部分:视频符合性测试》解读
    扫一扫 分享到微信
    手机看
    扫一扫 手机继续看
    A- A+
    中国电影电视技术学会
    学会动态

    扫一扫

    联系我们

    电话:010-63983646

    地址:北京市西城区真武庙二条真武家园 4号楼一层西区

    邮编:100045

    版权所有:中国电影电视技术学会

    ©CopyRight by China Society of Motion Picture and Television Engineers.

    京ICP备06037115号-1

    京公网安备 11010202007667号

    京ICP备06037115号-1   京公网安备 11010202007667号