【流媒体网】摘要:先进视频解码器的测试总是让人望而生畏,但使用正确的测试工具可以对完整的系统进行判定。
由于与MPEG-2相比H.264具有更大的复杂性和非线性,先进视频解码器的测试总是让人望而生畏。解码过程取决于无数个内容,要想通过随意的互用性测试来遇到某个特定的内容几乎是不可能的。
对于新手来手,H.264中最重要的一个改进,即内容自适应二进制算术编码,同时也是最为复杂的。为了进行恰当的初始化、衍化和更新,必须测试数百个内容模式。任何误差都会导致一个或多个语法元素错误的二值化。要包含所有可能的组合方式,就需要进行周详系统的测试。同时,只有对测试结果进行清晰的显示和存档,才能调试这个复杂的解码块。
稍为低级一点的测试技术有解码和捕捉,以及将上万个数据框架和解码出来的参考值和校验和相对比,但是更先进的方法则会将结果放大并显示在几个验证屏上。除非结果被特别放大,否则当图像被调整大小或者通过一个显示处理器被发送时,人们会发现大多数捕捉-对比测试计划都以失败而告终。
最好的方法,就是将参考标准设置到测试数据流中,对每次测试都显示合格或者不合格的测试结果。很多这样的数据流甚至支持可视化验证,因此不需要通过探测或捕捉设备就可以对完整的系统进行判定。
测试之“宜”
使用系统地测试语法一致性的工具。商业性的一致性数据流将彻底标准中的每一个语法元素,每次执行一个片段。系统数据流单独测试标准的各部分,运用工具来降低复杂性,从而尽可能地将测试结果明确化。一流的测试工具可以精确到具体的等式或表格数字,显示哪个元素没有被正确解码。
使用能够明确显示合格和不合格测试结果的工具。一致性数据流可以明确地显示结果的一致性或者不合格,因此任何测试中的参数不合格都可以在后处理或者显示差别上区分开来。一流的测试工具在最理想的状况下应该支持“黑盒子”验证法,这样才能很快地完成对成品的测试。误差的扩大、内置的参考值和可以看见的提示都能极大地加快测试进程。
让测试时间尽可能短,这样才能经常对设计进行测试,哪怕是在模拟过程中。太长的测试次序可能对于试验解码器的性能很有帮助,但是对于非实时仿真中的应用来说却是不实际的。理想的一致性数据流可以在短短数帧之内(一秒的一部分,实时)彻底地测试一个参数。
在设计的早期使用测试工具来减少开发时间,并避免成本昂贵的重复工作。有良好参考资料的测试向量可以明确标准中的不确定之处,从而大大加速早期测试进程。
要测试整个产品,而不是某些组件。即便每个元件都已经通过测试,组装成整件之后,硬件、软件和系统时序之间的交互作用都有可能产生之前预想不到的问题。
测试之“忌”
不要指望供应链中的另一方来做测试。系统集成商必须坚持要厂商提供产品一致性的证明,但是自己也要对成品进行校验,而不是由买方或者服务提供商来发现错误。
切忌将一致性测试和互用性测试混淆了。标准编码器会运用语法元素、数值和内容中的一小部分,这一小部分会在解码器的运用范围内遇到。实际中的编码器可能会因为成本和复杂的限制而形成标准的不完整。随着编码器的发展,编码器也将更主动地运用标准的内容来进行完善。而已经使用的编码器则必须支持标准中已给框架的所有语法元素。
不要使用没有文件资料或技术支持的工具。如果你不能快速地利用标准中的语法元素、等式或者表格来分析异常状况,那么就可能需要进行昂贵的修补。当端对端系统中出现问题时,要通过有很好的技术支持的测试工具来解决编码器和解码器厂商之间推卸责任的争端。
如果所有的语法解码器都还还没有在压力状况下进行测试,那么此时即便已经验证了一致性,也不能停止测试。要对成品的缓冲器性能、内存管理、处理器容量和误差反弹等各个方面进行试验。另外,还要在编码器可能运用的特殊系统状况下通过现场测试来评估性能。
不要只依赖于内部工具。在产品有可能产生缺陷或者推迟上市的情况下,结合商业性和内部数据流是一个好方法。内部测试工具可以测试你的特殊架构中的潜在瓶颈,而外部的商业性验证工具则能够在你产品营销的过程中很好地测试一致性。
作者:Hans Baumgartner
Sarnoff公司视频一致性产品经理
|