发明内容
本发明所要解决的技术问题是提供一种多媒体播放的快速芯片验证方法和装置,提高了芯片验证的效率,并且节省了人力资源。
为了解决上述问题,本发明公开了一种多媒体播放的快速芯片验证方法,包括:
从存储器中读取待测试的文件;
判断所述文件的类型,当所述文件为YUV图像或RGB图像时,自动对文件的属性参数进行约束修正;当所述文件为JPEG图像或视频文件时,对文件解码后再对其属性参数进行约束修正;
根据约束修正的结果设置相应的属性参数,将所述文件输入具有验证芯片的被测模块进行播放;
其中,循环执行上述各个测试步骤,遍历存储器中各个文件的测试。
优选的,所述方法还包括:当所述文件为视频文件时,从存储器中随机读取至少一个图像文件与解码后的视频文件组合后再对其属性参数进行约束修正。
优选的,将所述文件输入被测模块之前,还包括:判断是否有用户触发的结束热键,若是,则结束操作;若否,则将所述文件输入测试模块。
进一步,判断没有用户触发的结束热键之后,还包括:判断是否有用户触发的切换热键,若是,则随机读取另一个文件并执行测试步骤;若否,则将所述文件输入测试模块。
优选的,所述方法还包括:接收用户对播放帧数的设置;则视频文件按照所述播放帧数播放完毕后,随机读取另一个文件并执行测试步骤。
具体的,属性参数的约束修正包括:目标图像的宽和高的修正;和/或,目标视频的宽和高的修正;和/或,图像文件在屏幕上显示的宽、高和位置的修正;和/或,视频文件在屏幕上显示的宽、高和位置的修正;其中,目标图像或目标视频由从存储器中读取的图像文件或视频文件经放大或者缩小生成。
此外,本发明还公开了一种多媒体播放的快速芯片验证装置,包括:
文件读取单元,用于从存储器中读取待测试的文件;
类型判断单元,用于判断所述文件的类型,当所述文件为YUV图像或 RGB图像时,触发约束修正单元;当所述文件为JPEG图像或视频文件时,触发解码单元;
解码单元,用于对所述文件进行解码,并将解码后的文件输入至约束修正单元;
约束修正单元,用于自动对所述文件的属性参数进行约束修正;
测试单元,用于根据约束修正的结果设置相应的属性参数,将所述文件输入具有验证芯片的被测模块进行播放;
其中,上述各个单元循环执行操作,遍历存储器中各个文件的测试。
优选的,当所述文件为视频文件时,文件读取单元从存储器中随机读取至少一个图像文件,与解码后的视频文件组合后输入至约束修正单元。
优选的,所述装置还包括:
热键判断单元,用于在文件输入被测模块之前,判断是否有用户触发的结束热键,若是,则结束操作;若否,则触发测试单元。
进一步,所述热键判断单元在判断没有用户触发结束热键之后,判断是否有用户触发的切换热键,若是,则触发文件读取单元随机读取另一个文件;若否,则触发测试单元。
优选的,所述装置还包括:播放设置单元,用于接收用户对播放帧数的设置;则视频文件按照所述播放帧数进行播放完毕后,文件读取单元随机读取另一个文件。
具体的,属性参数的约束修正包括:目标图像的宽和高的修正;和/或,目标视频的宽和高的修正;和/或,图像文件在屏幕上显示的宽、高和位置的修正;和/或,视频文件在屏幕上显示的宽、高和位置的修正;其中,目标图像或目标视频由从存储器中读取的图像文件或视频文件经放大或者缩小生成。
与现有技术相比,本发明具有以下优点:
本发明对存储器中的图像、视频文件批量遍历,根据文件类型选择是否解码,然后对文件的属性参数进行自动约束修正,按照根据约束修正的结果设置相应的属性参数,将文件以循环的方式输入至被测模块,使图像文件、 视频文件自动遍历播放,从而简化测试人员的操作,节省了人力资源,提高工作效率,更大的遍历错误(bug),快速的验证芯片的稳定性。
进一步,本发明实现了静态和动态相结合的测试播放,可以将图像文件模拟成像框、图标、菜单等进行播放测试,通过模拟各种应用环境,提供了更多的测试场景,验证形式多样化。
此外,本发明通过结束热键的触发,选择终止测试或者继续执行,通过切换热键的触发或者播放帧数的设置,选择在各个测试文件的之间切换,实现了对测试过程灵活控制,提高了用户的体验度。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明一种多媒体播放的快速芯片验证方法实施例一的流程图,包括:
步骤101,从存储器中随机读取待测试的文件;
存储器中存储有各种待测试文件,所述存储器可以是SD卡等存储设备,本步骤从存储器中随机进行文件的读取,所述包括多种格式的图像和视频文件,以保证能够针对各种文件进行全面的芯片验证。
所述文件可以分为四大类:JPEG图像、YUV图像、RGB图像以及视频文件,其中,各类文件又可以进一步细分,如RGB包括:RGB888、RGB666、RGB565等,视频文件又可以分为h264、rv、vc1、h264、mpeg4等格式的 视频。
步骤102,判断所述文件的类型,当所述文件为JPEG图像或视频文件时,执行步骤103后再执行步骤104;当所述文件为YUV图像或RGB图像时,直接执行步骤104;
一般的,可以通过文件的后缀名,判断文件的类型。例如,JPEG图像的后缀名为“.jpg”、“.jpeg”等,h264文件的后缀名为“.h264”,其他文件均有相应的后缀名。此外,对于JPEG格式的图像,还可以通过读取文件头中的信息获知该文件的类型。其文件头中包含了图像类型、图像大小、图像的宽高、图像的色深、压缩说明、图像数据的大小和其他一些参数,则直接从文件头中读取,判断其文件类型。
由于有些文件需要解码后才能进一步播放,如JPEG图像或视频文件,因此,本步骤判断文件的类型,以获知所读取的文件是否需要解码。
步骤103,对所述文件进行解码;
对于JPEG文件,它是一种损压缩格式的图像,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失。一般的,各种图像通过颜色转化生成YUV图像,然后经过离散余弦变换(DCT、Discrete CosineTransform)变换、量化、编码,转化为压缩格式的JPEG图像。因此,JPEG图像显示播放之前,需要将其解码得到YUV文件。
另外,对于视频文件,其也是由原始格式经过一定的编码压缩后生成的,因此需要对其进行解码,对于不同的视频文件,需要根据具体类型选择相应的解码器进行解码。有关文件解码的具体实现方法不作为本发明的创新内容,在此不做限定,本领域的技术人员可以选择任何一种解码方式实现文件的解码。
步骤104,自动对所述文件的属性参数进行约束修正;
本发明实施例对于多媒体文件播放芯片的实现自动的验证,因此,在送入测试环境之前,需要对文件的属性参数进行修正,从而使所述参数的取值具有合理的范围。
具体的,所述属性参数的约束修正包括:
目标图像的宽和高的修正;目标视频的宽和高的修正;图像文件在屏幕上显示的宽、高和位置的修正;和/或,视频文件在屏幕上显示的宽、高和位置的修正;其中,目标图像或目标视频由从存储器中读取的图像文件或视频文件经放大或者缩小生成。
从存储器中读取的原始图像文件可以放大或者缩小生成目标图像,然后从目标图像中选取一部分或者全部进行图像显示。约束修正后需要满足的条件如下:目标图像的宽和高不能小于图像在屏幕上显示的宽和高,否则会导致图像显示时数据的读取永远取不完有效数据;并且,图像在屏幕上显示的宽和高分别小于屏幕的宽和高。
JPEG图像文件的原始宽、高能够从头文件中直接获取到。YUV和RGB文件因为其图像的原始宽、高以及文件格式不能从文件里面直接得到,一般在文件名中以一定的命名规则指定。
例如,对于读取到的文件,其命名为:“1280_720_YUV420.yuv”,则通过该命名获知该文件的文件类型为YUV420,其中宽为1280像素,高为720像素。进一步,获取屏幕的宽和高,本发明实施例中,为:1200×800。根据原始的图像的宽和高:1280×720,进行属性参数的自动约束修正,例如,其目标图像的宽和高的值可以为:1000×600。又如,自动约束修正其在屏幕上显示的宽和高可以为:400×600,以满足目标图像的宽和高大于图像在屏幕上显示的宽和高,图像在屏幕上显示的宽和高分别小于屏幕的宽和高。
此外,还需要对图像在屏幕上的位置进行约束修正,以保证图像的显示不能溢出屏幕外。具体的,根据屏幕的宽和高,设置图像在屏幕上的坐标。需要说明的是,还要预先设置屏幕坐标系的原点和图像的定位点,一般的,以屏幕左下顶点或屏幕左上顶点为原点,同时,相应的,以图像左下顶点或图像左上顶点为定位点,通常可以由测试人员预先设置,或者,还可以由系统自动从上述两种情况中选取设置。则需要满足的条件如下:定位点的横坐标值加上图像在屏幕上显示的宽小于屏幕的宽;定位点的纵坐标值加上图像在屏幕上显示的高小于屏幕的高,并且定位点的坐标值为正数。
在本发明实施例中,对于上述YUV文件,根据屏幕的宽和高(1200× 800),以及图像在屏幕上显示的宽和高(400×600),设置其在屏幕上的位置可以为(200,50),其中,以显示屏幕左上顶点为原点,以图像的左上顶点为定位点。
其中,约束修正的得到的属性参数值为系统在上述范围内自动随机设置的,只要满足参数值的有效合理范围即可。
需要说明的是,随机设置的过程其实是一个获取随机数的过程。对于随机数的产生,可参见计算机现有的编程语言。例如,对于C语言,通过调用“int rand(void)”,就可以得到一个范围为0——0x7fff的随机数。进一步,只需要把所述随机数修正在一个合理的范围即可。
在本发明实施例中,对于目标图像的宽,可以把[0,0x7fff]映射到[0,图像的宽]的范围内;同理,对于目标图像的高,可以把[0,0x7fff]映射到[0,图像的高]的范围内。如上述实施例所述,原始的图像的宽和高为:1280×720,通过随机数的获取,在某一定的程度上,目标图像的宽和高有机会取到1000×600。进一步,确定目标图像的宽和高之后,对于图像在屏幕上显示的宽和高,分别将[0,0x7fff]映射到[0,目标图像的宽]和[0,目标图像的高]的范围内,则图像在屏幕上显示的宽和高有机会取到400×600。即上述数值只是随机取数时的某一概率情况。
可以理解,对于图像在屏幕上显示的位置,与所述宽和高的取值类似。
对于图像在屏幕上的定位点的横坐标x,把[0,0x7fff]映射到[0,屏幕的宽-图像显示的宽]的范围内,对于屏幕上定位点的纵坐标y,把[0,0x7fff]映射到[0,屏幕的高-图像显示的高]的范围内。那么,在一定概率情况下,有可能随机取到(200,50)。
进一步,视频文件的属性参数的修正类似于图像文件,也需要使其在屏幕上显示的宽、高小于目标视频的宽、高,并且保证该视频在屏幕位置上的合理,不能溢出屏幕外。视频文件的属性参数的约束修正可参照图像文件,此处省略。
步骤105,根据约束修正的结果设置相应的属性参数,将所述文件输入具有验证芯片的被测模块进行播放;
按照上述步骤中修正后的属性参数进行设置,如上步骤所述,设置属性参数分别为:原始图像的宽和高为:1280×720;目标图像的宽和高:1000×600;在屏幕上显示的宽和高为:800×600;图像格式为YUV420;位置为:(300,150)。
需要说明的是,根据步骤104中约束修正得到的宽、高或位置的属性参数值可以是可选范围内多个数值的集合,则在步骤105中从可选范围的集合中随机选取进行设置。
进一步,将所述文件输入具有验证芯片的被测模块,所述被测模块对该文件进行图像和视频的处理,然后进行测试结果的输出,在显示屏幕上进行显示。则用户通过观测显示屏上输出的测试结果的正确与否,以验证所述芯片的功能。
步骤106,循环执行步骤101至步骤105,遍历存储器中各个文件的测试。
当所述文件测试完成后,进一步,从存储器中随机读取其他的文件,进行测试,以保证更大程度的遍历各个文件,快速的验证芯片的稳定性。其中,所述文件的读取可以是随机读取的,则在一定时间内能够保证文件的遍历;此外,还可以根据用户的设置,按照一定的顺序依次读取各个文件。
通过本发明实施例,将存储器中待测试文件以循环的方式输入至被测模块,将图像文件、视频文件自动遍历播放,并针对不同的情况进行相应的解码和属性参数的自动约束修正,从而简化测试人员的操作,节省了人力,提高工作效率,更大的遍历错误(bug),快速的验证芯片的稳定性。
参照图2,示出了本发明读取的待测试文件为视频文件时的优选测试步骤的流程图,包括:
步骤201,从存储器中随机读取视频文件,
步骤202,对所述视频文件进行解码;
步骤203,从存储器中随机读取至少一个图像文件与解码后的视频文件进行组合;
本发明实施例将视频文件与图像文件进行组合测试,从存储器中随机的选取一个或者多个图像文件。通常的,可以按照用户的预设规则,选取特定格式的图像,例如,根据某些芯片的设计要求,用户预设规则为RGB图像与视频组合,则从存储器中随机选取RGB666、RGB565、RGB888格式的一个或者多个图像文件,与视频文件进行组合。
具体的,所述组合为:视频可以设置在图像的上层,也可以设置在图像的下层,由系统随机选择。组合的情况仅仅是通过设置通知测试芯片会同时有几层显示,具体显示的过程由芯片来完成。此外,可以有1个视频和两个图像的叠加,也可以有1个视频和1个图像的叠加。一般的,预置最多的情况下有1个视频和3个图像的叠加。其中,叠加会有几种效果选择:全透,半透,不透等特效,也为系统随机选择。可以理解的是,本步骤所述的组合只是由软件发出相应的指令,具体的实现过程由测试芯片完成。
需要说明的是,如果选取的图像文件为JPEG图像,则需要对分别图像和视频解码,然后再组合执行下面的测试步骤。
步骤204,对所述图像文件和视频文件的属性参数进行约束修正;
所述图像文件和视频文件的属性参数的约束修正可参见上述实施例一。此外,对于有些芯片,其设计要求图像文件和视频文件组合后的整体显示,必须满足总体是一个矩形的形状。因此,针对此类情况需要结合视频文件和各个图像文件进行整体修正,保证位置的合理范围。
步骤205,根据约束修正的结果设置相应的属性参数,将所述文件输入具有验证芯片的被测模块进行播放。
本发明优选测试步骤,将随机读取的视频文件和图像文件结合在一起,进行测试,实现静态和动态相结合的测试播放,可以将图像文件模拟成像框、图标、菜单等进行播放测试,通过模拟各种应用环境,提供了更多的测试场景,实现了验证形式的多样性。
参照图3,示出了本发明多媒体播放的快速芯片验证方法实施例二的流程图,包括:
步骤301,从存储器中随机读取待测试的文件;
步骤302,判断所述文件的类型,当所述文件为YUV图像或RGB图像时,直接执行步骤305;当所述文件为JPEG图像时,执行步骤303后再执行步骤305;当所述文件为视频文件时,执行步骤304后再执行步骤305;
步骤303,对所述JPEG图像进行解码;
步骤304,对所述视频文件进行解码,并随机读取至少一个图像文件与解码后的视频文件进行组合;
步骤305,自动对所述文件的属性参数进行约束修正;
步骤306,根据约束修正的结果设置相应的属性参数;
步骤307,判断是否有用户触发的结束热键,若是,则结束操作;若否,则执行步骤308;
在芯片验证的测试过程中,如果用户需要中途结束,例如,已经得到该验证所需要的各种测试结果,或者,用户需要暂时离开,则可以通过结束热终止测试。例如,设置结束热键为键盘上的“s”键,则当判断用户触发“s”键时,结束操作。
步骤308,判断是否有用户触发的切换热键,若是,则返回步骤301;若否,则执行步骤309;
当判断用户没有触发结束热键时,进一步,判断是否触发切换热键。所述切换热键可以包括:图像切换热键和帧切换热键。其中当所述文件为图像文件时,则通过图像切换热键切换到其他文件的测试播放;当所述文件为视频文件时,则通过帧切换热键切换到其他文件的测试播放。例如,通过按下键盘上的“n”键,从图像的播放切换至下一个图片或者视频的测试;或者通过按下键盘上的“t”键,从视频的播放转入至下一个图片或者视频的测试。如果判断没有切换热键的触发,则继续执行测试步骤。
步骤309,将所述文件输入具有验证芯片的被测模块进行测试播放;
步骤310,循环执行步骤301至步骤309,遍历存储器中各个文件的测试,直到接收到结束热键。
本发明实施例实现了图像文件的遍历播放,以及图像文件和视频文件随 机组合的遍历播放。通过触发结束热键,选择终止测试或者继续执行,通过触发切换热键,选择在各个测试文件的之间切换,控制方法灵活。
在本发明的一个优选实施例中,还包括:接收用户对播放帧数的设置;则视频文件按照所述播放帧数进行播放完后,随机读取另一个文件并执行测试步骤。
不同于图像文件,视频文件的容量一般很大,一个文件如果全部完成测试播放,则需要花费很长的时间,除了采用实施例二中的帧切换热键,在本发明优选实施例中,还可以设置视频文件的播放帧数,不用等待每一个视频流全部播放完毕,再读取其他的文件进行测试。例如,设定一个播放的帧数为300帧,则该视频文件在第300帧播放完后退出测试,切换到别的视频或图像上。其中,可以根据用户的需要,针对不同的视频文件设置不同的播放帧数,还可以针对所有的视频文件均设置相同的播放帧数。通过本发明优选实施例,实现了在各种文件的测试中灵活的切换,提高了用户的体验度。
参照图4,示出了本发明多媒体播放的快速芯片验证装置实施例的流程图,包括:
文件读取单元401,用于从存储器中所读取的待测试的文件;
类型判断单元402,用于对所述文件的类型进行判断,当所述文件为YUV图像或RGB图像时,触发约束修正单元404;当所述文件为JPEG图像或视频文件时,触发解码单元403;
解码单元403,用于对所述文件进行解码,并将解码后的文件输入至约束修正单元404;
约束修正单元404,用于自动对所述文件的属性参数进行约束修正;
测试单元405,用于根据约束修正的结果设置相应的属性参数,将所述文件输入具有验证芯片的被测模块进行播放;
其中,上述各个单元循环执行操作,遍历存储器中各个文件的测试。
通过被测模块的图像和/或视频的处理,测试结果输出显示在显示屏幕上,用户通过观测输出测试结果的正确与否,以验证所述芯片的功能。
通过本发明实施例,当测试单元405完成一个文件的测试后,触发文件读取单元401再次读取另一个文件,进行测试,各个单元自动循环执行,简化测试人员的操作,提高测试效率。
在本发明的优选实施例中,当所述文件为视频文件时,文件读取单元从存储器中随机读取至少一个图像文件与解码后的视频文件进行组合,输入至约束修正单元。在修正的单元进行图像与文件属性参数的整体修正后,进行静态图像和动态视频相结合的测试播放,可以模拟各种应用场景,实现了验证形式的多样性。
优选的,参照图4,所述装置还包括:
热键判断单元406,用于在文件输入被测模块之前,判断是否有用户触发的结束热键,若是,则结束操作;若否,则触发测试单元。
进一步,所述热键判断单元在判断没有用户触发结束热键之后,判断是否有用户触发的帧切换热键,若是,则触发文件读取单元随机读取另一个文件;若否,则触发测试单元。
其中,本发明实施例的热键判断单元可以根据其功能的不同分立为两个子单元:结束热键子单元和切换热键子单元。则通过热键的判断实现了对测试过程中的灵活控制,方便用户的操作。
在本发明的优选实施例中,所述装置还包括:
播放设置单元,用于接收用户对播放帧数的设置;
则视频文件按照所述播放帧数播放完毕后,文件读取单元随机读取另一个文件。
此外,所述播放设置单元还可以根据用户的需求进行其他设置,例如设置是否播放时需要旋转(顺时针转90度或者逆时针转90度)等。
进一步,属性参数的约束修正包括:
目标图像的宽和高的修正;目标视频的宽和高的修正;图像文件在屏幕上显示的宽、高和位置的修正;和/或,视频文件在屏幕上显示的宽、高和位置的修正;其中,目标图像或目标视频由从存储器中读取的图像文件或视频文件经放大或者缩小生成。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种多媒体播放的快速芯片验证方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。