背景技术
从最初简易图像的传输开始到现在,影像和声音已经成为生活中不可或缺的必需品,而在互联网高速发展的今天把影像和声音加入电子信号以传输就成为了必然的趋势。
在图像解压缩技术中,由于未压缩视频图像占用内存过大,传输数字图像所需的带宽远窄于未压缩图像,因此把图像加入电子信号的关键问题就是压缩。视频的压缩就是对视频编码,即通过特定的压缩技术将某个视频格式的文件转换成另一种视频格式文件,以减小其数据量再进行传输,接收数据后再进行相应的解码,恢复原视频数据。视频图像处理模块就是实现对视频编码和解码的功能。
现有的视频图像的编码测试过程是:将输入数据同时输入参考模型和被测设计对象(Design Under Test,DUT)中,参考模型对输入数据进行编码后和DUT的输出数据再进行比较。由于输入图像数据间通常不具有相关性,这就使得测试相对容易,无论要进行固定测试用例还是随机测试,都是可行的,保证了模块测试的质量。
但是,在进行解码测试时就有一定的障碍,因为编码后的码流数据是有相关性的,包含了很多的信息,显然是不能随机获取作为测试用例。现有的技术方案中,解码测试通常是由参考模型手动生成码流,或在网上下载编码后的码流后,再利用参考模型对该码流进行解码,DUT对该码流进行解析得到将结果和参考模型解码后的结果进行比较。
综上可知,现有技术在验证模块的解码功能时,所用测试用例为编码码流,由于编码码流的相关性,必须寻找可定向制作的测试用例,具有很大的局限性,给测试工作带来不便,且例如视频图像千差万别,不可能在测试中保证测试全面,也就无法保证测试的质量。现有技术为了提高模块验证的质量需要运用大量的随机测试来验证模块的解码功能。
发明内容
本发明实施例的目的在于提供一种解码测试方法,旨在解决解码测试用例受限,不能实现随机解码测试的问题。
本发明实施例是这样实现的,一种解码测试方法,包括以下步骤:
输入数据输入参考模型;
参考模型对所述输入数据进行编码和解码后,输出参考数据和控制指令;
被测设计对象DUT执行所述控制指令后,输出测试数据;
根据所述参考数据和测试数据获取所述DUT的测试结果。
本发明实施例的另一目的在于提供一种解码测试系统,系统包括:
输入单元,用于输入输入数据;
参考模型处理单元,用于对输入单元输入的输入数据进行编码、解码后,输出参考数据和控制指令;
被测设计对象DUT,用于执行所述参考模型处理单元输出的控制指令,并输出测试数据;
测试单元,用于根据所述参考模型处理单元输出的参考数据和所述DUT输出的测试数据,获取所述DUT的测试结果。
在本发明实施例中,参考模型先对输入数据进行编码、解码,获取的参考数据和控制指令,DUT运行控制指令后获取测试数据,根据判断参考数据和测试数据是否一致,验证DUT的解码功能,实现了随机解码测试,大大降低解码测试用例局限性,使解码测试更全面的同时测试更方便。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,参考模型先对输入数据进行编码、解码,获取的参考数据和控制指令,DUT运行控制指令后获取测试数据,根据判断参考数据和测试数据是否一致,验证DUT的解码功能,实现了随机解码测试。
图1是本发明实施例提供的解码测试方法的流程图。
在步骤S101中,将输入数据输入参考模型。
本发明实施例中的输入数据可以是任意的数据或者可进行编解码的数据,例如音频视频数据,当输入数据是图片的数据信息时,数据信息还可以包含图片大小,类型,以及其他设置信息等。输入数据的选择范围得到扩展,且可进行随机输入,大大降低了测试用例的局限性,测试更全面,更方便。
在本发明实施例中,参考模型是已经经过验证,能够实现编码、解码功能的软件单元,例如C或者其他编程语言的执行或应用程序。
在步骤S102中,参考模型对输入数据进行编码和解码后,输出参考数据和控制指令。
参考模型输出的控制指令有很多种,控制指令根据参考模型对输入数据的编码解码过程在解码完成后生成,在本发明实施例中,控制指令主要包括读取指令和结束指令。
在步骤S103中,被测设计对象DUT执行控制指令后,输出测试数据。
DUT是解码功能测试对象,还是实现参考模型的解码功能,可以是根据参考模型设计的其他编程语言代码,可以是软件和硬件语言,在本发明实施例中,通过比较DUT的输出数据和参考模型的输出数据是否一致,测试DUT是否具有解码功能。
当控制指令为读取指令和起始指令时,DUT执行控制指令的步骤包括:DUT根据读取指令读取待处理数据;以及DUT根据起始指令开始对待处理数据进行处理。
在步骤S104中,根据参考数据和测试数据获取DUT的测试结果。
在本发明实施例中,根据参考数据和测试数据获取DUT的测试结果的步骤具体为:当参考数据和测试数据一致时,判断DUT通过解码测试,否则判断DUT未通过解码测试。
在本发明实施例中,为了消除DUT输出的测试数据中的无效数据在进行比较时造成的影响,在测试过程,解码测试方法进一步包括:对DUT输出的测试数据进行监控。
作为本发明的一个较佳实施例,为了更了解DUT的解码功能,解码测试方法进一步包括:检测功能覆盖率,功能覆盖的内容可以由验证人员自己定义的,例如图片大小,结构,帧的情况等。
图2示出了本发明实施例提供的解码验证系统的结构图。为了便于说明仅示出了与本发明实施例相关的部分,该系统可以是软件单元、硬件单元或者软硬件相结合的单元。
在本发明的实施例中,解码验证系统主要包括输入单元21,参考模型处理单元22,被测设计对象DUT23和测试单元24。
输入单元21将输入数据输入参考模型处理单元22,参考模型处理单元22对输入单元21输入的输入数据进行编码和解码后,输出参考数据和控制指令,并分别将参考数据发送给测试单元24,将控制指令发送给DUT22,DUT22接收参考模型处理单元22输出的控制指令,执行控制指令后输出测试数据,并将测试数据发送给测试单元24,测试单元24根据参考模型处理单元22输出的参考数据和DUT23输出的测试数据获取DUT的测试结果,具体实现过程如上所述,在此不再赘述。
本发明实施例中输入单元21的输入数据可以是任意的数据或者可进行编解码的数据,且可进行随机输入。
其中,测试单元24进一步包括:比较参考模型输出的参考数据和DUT输出的测试数据的比较模块,以及在比较模块比较的参考模型输出的参考数据和DUT输出的测试数据一致时,判断所DUT通过解码测试,否则判断DUT未通过解码测试的判断模块。
在本发明实施例中,为了消除DUT输出的测试数据中的无效数据在进行比较时造成的影响,解码测试系统进一步包括:对DUT输出的测试数据进行监控的监控单元。
其中,控制指令有多种,在本发明实施例中,控制指令主要包括读取指令和起始指令,此时DUT执行控制指令的步骤包括:DUT根据读取指令读取待处理数据;以及DUT根据起始指令开始对待处理数据进行处理,当然还会有其他控制指令,在此不再一一列举。
作为本发明的一个较佳实施例,为了更了解DUT的解码功能,解码测试方法进一步包括:检测功能覆盖率的功能覆盖率检测单元,其中功能覆盖的内容可以由验证人员自己定义,例如图片大小,结构,帧的情况等。
在本发明实施例中,参考模型先对输入数据进行编码、解码,获取的参考数据和控制指令,DUT运行控制指令后获取测试数据,根据判断参考数据和测试数据是否一致,验证DUT的解码功能,实现了随机解码测试,由于输入数据为任意的可编解码的数据,且可进行随机,测试用例局限性大大降低,测试更全面,也给解码测试工作带来极大方便。
另外,本发明实施例可以实现软硬件语言的协同操作,功能强大且操作简便。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。