一种测试音频解码程序的方法和装置转让专利

申请号 : CN201010191534.9

文献号 : CN101894556B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨彦彦

申请人 : 北京红旗胜利科技发展有限责任公司

摘要 :

本发明提供了一种测试音频解码程序的方法和装置,通过将标准解码程序和待测试解码程序移植到芯片上,用所移植的标准解码程序和待测试解码程序分别解码音频文件的每一帧,解码完每一帧后分别保存解码结果并将其进行比较,记录比较结果后再解码下一帧,所述解码按照音频文件中各帧的先后顺序进行,将音频文件中每一帧的比较结果整合在一起,计算出标准解码程序和待测试解码程序解码的差异度,将其输出,从而在保证测试音频解码程序有效完成的同时极大的减小了测试所需的空间资源,节省了大量的时间资源。

权利要求 :

1.一种测试音频解码程序的方法,其特征在于,所述方法包括:移植步骤,将标准解码程序和待测试解码程序移植到芯片上;

解码步骤,用所移植的标准解码程序和待测试解码程序分别解码音频文件的每一帧,解码完每一帧后分别保存解码结果并将其进行比较,记录比较结果后再解码下一帧;所述解码按照音频文件中各帧的先后顺序进行;

所述解码完每一帧进行保存时会覆盖已经完成记录比较结果的前一帧的解码结果;

输出步骤,将音频文件中每一帧的比较结果整合在一起,计算出标准解码程序和待测试解码程序解码的差异度,将其输出。

2.根据权利要求1所述的方法,其特征在于,所述解码步骤具体包括以下子步骤:标准解码子步骤,用所移植的标准解码程序解码音频文件的每一帧,并将每一帧的解码结果保存到第一存储区;所述解码从音频文件的第一帧开始按照各帧的先后顺序进行;

待测试解码子步骤,用所移植的待测试解码程序解码音频文件的每一帧,并将每一帧的解码结果保存到第二存储区;所述解码从音频文件的第一帧开始按照各帧的先后顺序进行;

解码结果比较子步骤,在标准解码程序和待测试解码程序解码完每一帧后将其进行比较,并记录其比较结果。

3.根据权利要求2所述的方法,其特征在于:

所述标准解码程序和待测试解码程序中的全局变量和函数所采用不同的名称。

4.根据权利要求2所述的方法,其特征在于:

所述解码结果进行比较是通过采用比较程序来完成的。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:传送步骤,将音频文件传送到芯片中;所述传送采用每次传送一帧或几帧音频文件的方式进行。

6.根据权利要求5所述的方法,其特征在于:

所述传送过程中所传送的音频文件会覆盖前一次传送的音频文件。

7.一种测试音频解码程序的装置,其特征在于,所述装置包括:移植模块,用于将标准解码程序和待测试解码程序移植到芯片上;

解码模块,用于用所移植的标准解码程序和待测试解码程序分别解码音频文件的每一帧,解码完每一帧后分别保存解码结果并将其进行比较,记录比较结果后再解码下一帧;所述解码按照音频文件中各帧的先后顺序进行;

所述解码完每一帧进行保存时会覆盖已经完成记录比较结果的前一帧的解码结果;

输出模块,用于将音频文件中每一帧的比较结果整合在一起,计算出标准解码程序和待测试解码程序解码的差异度,将其输出。

8.根据权利要求7所述的装置,其特征在于,所述解码模块包括以下子模块:标准解码子模块,用于用所移植的标准解码程序解码音频文件的每一帧,并将每一帧的解码结果保存到第一存储区;所述解码从音频文件的第一帧开始按照各帧的先后顺序进行;

待测试解码子模块,用于用所移植的待测试解码程序解码音频文件的每一帧,并将每一帧的解码结果保存到第二存储区;所述解码从音频文件的第一帧开始按照各帧的先后顺序进行;

解码结果比较子模块,用于在标准解码程序和待测试解码程序解码完每一帧后将其进行比较,并记录其比较结果。

9.根据权利要求7所述的装置,其特征在于,所述装置还包括:传送模块,用于将音频文件传送到芯片中;所述传送采用每次传送一帧或几帧音频文件的方式进行。

说明书 :

一种测试音频解码程序的方法和装置

技术领域

[0001] 本发明涉及数字程序测试技术领域,特别是涉及一种测试音频解码程序的方法和装置。

背景技术

[0002] 随着数字信号处理技术的不断发展,各种音视频信号的应用范围也越来越广。通常用在数字多媒体上的解码器包括视频解码器和音频解码器。数字媒体的图象和声音都是使用特殊的软件编码格式,像视频的mpeg4,音频的mp3,ac3,dts等,这些编码器可以将原始数据压缩存放,所列举的都是常用的编码格式,还有些专业的编码格式,一般来说在家庭设备基本不会用到。家用设备或者电脑上重放这些视频和音频则需要相应的对其进行解码,使用相应的解码软件,也称为插件。比如mpeg4解码插件ffdshow,ac3解码插件ac3fliter等。装有相应解码插件的电脑可以重播这些图像和声音。
[0003] 简单来说,音频解码可以理解为一种解码音频的解码器,音频解码方式有硬件解码和软件解码两种,硬件解码是通过相应的音频芯片直接解码,一般都会在系统软件上集成音乐;软件解码就是通过CPU的运算进行音频解码来实现MP3的播放,内置开放式操作系统的智能手机多数采用这种方法,并且,音频解码实质上来说是通过解码程序来实现的,然而为了保证音频解码的正常实现,往往需要对完成音频解码的程序进行一定的测试。 [0004] 目前,一种测试音频解码程序的实现方法具体为:利用标准的音频解码程序将测试样本库解码,形成一个标准的音频文件库,再用待检测的音频解码程序对测试样本库解码,形成另一个音频文件库,在PC机上用一个比较软件实现两个音频文件库的比较,以一个.wma文件为例进行简单说明,.wma文件的压缩比大约在20∶1-28∶1之间,一个2.5G的测试样本库的解码文件占用的存储资源大约在50G-70G之间,两个样本库进行比较,则需要的最小硬件存储资源在100G-140G之间,如果测试样本库更大,则所需要的资源会更多,很显然,存储资源较大,对存储空间的要求比较高,而且也需要很长时间进行传送,所需的代价过大。
[0005] 因此,目前需要本领域技术人员迫切解决的一个技术问题就是:如何能够创新地提出一种测试音频解码程序的方法和装置,以解决这种测试中需要很大存储空间和时间的问题,有效降低资源消耗的同时保证工作快速顺利的进行。
[0006] 发明内容
[0007] 本发明所要解决的技术问题是提供一种测试音频解码程序的方法和装置,用以在保证测试音频解码程序工作顺利进行的同时,减少测试所需的空间和时间。 [0008] 为了解决上述问题,本发明公开了一种测试音频解码程序的方法,所述方法包括:
[0009] 移植步骤,将标准解码程序和待测试解码程序移植到芯片上; [0010] 解码步骤,用所移植的标准解码程序和待测试解码程序分别解码音频文件的每一帧,解码完每一帧后分别保存解码结果并将其进行比较,记录比较结果后再解码下一帧;所述解码按照音频文件中各帧的先后顺序进行;
[0011] 所述解码完每一帧进行保存时会覆盖已经完成记录比较结果的前一帧的解码结果;
[0012] 输出步骤,将音频文件中每一帧的比较结果整合在一起,计算出标准解码程序和待测试解码程序解码的差异度,将其输出。
[0013] 优选的,所述解码步骤具体包括以下子步骤:
[0014] 标准解码子步骤,用所移植的标准解码程序解码音频文件的每一帧,并将每一帧的解码结果保存到第一存储区;所述解码从音频文件的第一帧开始按照各帧的先后顺序进行;
[0015] 待测试解码子步骤,用所移植的待测试解码程序解码音频文件的每一帧,并将每一帧的解码结果保存到第二存储区;所述解码从音频文件的第一帧开始按照各帧的先后顺序进行;
[0016] 解码结果比较子步骤,在标准解码程序和待测试解码程序解码完每一帧后将其进行比较,并记录其比较结果。
[0017] 优选的,所述标准解码程序和待测试解码程序中的全局变量和函数所采用不同的名称。
[0018] 优选的,所述解码结果进行比较是通过采用比较程序来完成的。 [0019] 优选的,所述方法还包括:
[0020] 传送步骤,将音频文件传送到芯片中;所述传送采用每次传送一帧或几帧音频文件的方式进行。
[0021] 优选的,所述传送过程中所传送的音频文件会覆盖前一次传送的音频文件。 [0022] 本发明还公布了一种测试音频解码程序的装置,所述装置包括: [0023] 移植模块,用于将标准解码程序和待测试解码程序移植到芯片上; [0024] 解码模块,用于用所移植的标准解码程序和待测试解码程序分别解码音频文件的每一帧,解码完每一帧后分别保存解码结果并将其进行比较,记录比较结果后再解码下一帧;所述解码按照音频文件中各帧的先后顺序进行;
[0025] 所述解码完每一帧进行保存时会覆盖已经完成记录比较结果的前一帧的解码结果;
[0026] 输出模块,用于将音频文件中每一帧的比较结果整合在一起,计算出标准解码程序和待测试解码程序解码的差异度,将其输出。
[0027] 优选的,所述解码模块包括以下子模块:
[0028] 标准解码子模块,用于用所移植的标准解码程序解码音频文件的每一帧,并将每一帧的解码结果保存到第一存储区;所述解码从音频文件的第一帧开始按照各帧的先后顺序进行;
[0029] 待测试解码子模块,用于用所移植的待测试解码程序解码音频文件的每一帧,并将每一帧的解码结果保存到第二存储区;所述解码从音频文件的第一帧开始按照各帧的先后顺序进行;
[0030] 解码结果比较子模块,用于在标准解码程序和待测试解码程序解码完每一帧后将其进行比较,并记录其比较结果。
[0031] 优选的,所述装置还包括:
[0032] 传送模块,用于将音频文件传送到芯片中;所述传送采用每次传送一帧或几帧音频文件的方式进行。
[0033] 与现有技术相比,本发明具有以下优点:
[0034] 首先,本发明通过将标准解码程序和待测试解码程序移植到芯片上,用所移植的标准解码程序和待测试解码程序分别解码音频文件的每一帧,解码完每一帧后分别保存解码结果并将其进行比较,记录比较结果后再解码下一帧,所述解码按照音频文件中各帧的先后顺序进行,将音频文件中每一帧的比较结果整合在一起,计算出标准解码程序和待测试解码程序解码的差异度,将其输出,从而在保证测试音频解码程序有效完成的同时极大的减小了测试所需的空间资源。
[0035] 其次,本发明在两个解码程序每解码完一帧后将其进行保存和比较,并且解码完每一帧进行保存时覆盖已经完成记录比较结果的前一帧的解码结果,进一步节省了大量的空间资源,同时,解码完每一帧后直接将其进行比较极大的减少了数据传输所需的时间。 附图说明
[0036] 图1是本发明实施例一所述的一种测试音频解码程序的方法流程图; [0037] 图2是本发明实施例二所述的一种测试音频解码程序的装置结构图。 具体实施方式
[0038] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0039] 数字信号处理技术的不断发展,促使各种音视频信号的应用范围不断扩展,实际应用中往往需要对音频解码程序进行测试,如果能够找到一种快速有效的方法帮助完成音频解码程序的测试的同时减少测试音频解码程序所需的大量存储空间,那么测试音频解码程序的工作将会变得容易很多,并且能够极大的提高测试效率。
[0040] 因此,本专利发明人创造性地提出了本发明实施例的核心构思之一,即提供一种测试音频解码程序的方法和装置,通过将标准解码程序和待测试解 码程序移植到芯片上,用所移植的标准解码程序和待测试解码程序分别解码音频文件的每一帧,解码完每一帧后分别保存解码结果并将其进行比较,记录比较结果后再解码下一帧,所述解码按照音频文件中各帧的先后顺序进行,将音频文件中每一帧的比较结果整合在一起,计算出标准解码程序和待测试解码程序解码的差异度,将其输出。
[0041] 实施例一:
[0042] 参照图1,示出了本发明的一种测试音频解码程序的方法流程图,所述方法具体包括:
[0043] S101移植步骤,将标准解码程序和待测试解码程序移植到芯片上; [0044] 优选的,所述标准解码程序和待测试解码程序中的全局变量和函数所采用不同的名称。
[0045] 实际应用中,通过创建一个工程,将标准解码程序和待测试解码程序都移植到芯片上,也就是说要把两个工程合并到一个工程里面,在这个过程中要保证全局变量和函数不能同名,这样就可以实现对同一个输入文件用两种解码函数进行解码,准确的来讲,是用标准解码程序和待测试解码程序这两种解码程序对同一音频文件进行解码。 [0046] S102解码步骤,用所移植的标准解码程序和待测试解码程序分别解码音频文件的每一帧,解码完每一帧后分别保存解码结果并将其进行比较,记录比较结果后再解码下一帧;所述解码按照音频文件中各帧的先后顺序进行;
[0047] 优选的,所述解码步骤具体包括以下子步骤:
[0048] S1标准解码子步骤,用所移植的标准解码程序解码音频文件的每一帧,并将每一帧的解码结果保存到第一存储区;所述解码从音频文件的第一帧开始按照各帧的先后顺序进行;
[0049] S2待测试解码子步骤,用所移植的待测试解码程序解码音频文件的每一帧,并将每一帧的解码结果保存到第二存储区;所述解码从音频文件的第一帧开始按照各帧的先后顺序进行;
[0050] S3解码结果比较子步骤,在标准解码程序和待测试解码程序解码完每一帧后将其进行比较,并记录其比较结果。
[0051] 优选的,所述解码完每一帧进行保存时会覆盖已经完成记录比较结果的前一帧的解码结果。
[0052] 优选的,所述解码结果进行比较是通过采用比较程序来完成的。 [0053] 以实际应用中的音频文件第一帧的所涉及的测试进行介绍,输入音频文件以一个1.wma文件为例:
[0054] 解码器都是按帧进行解码的,先用标准解码程序中的WMA_DEC_MAIN()函数将1.wma的第一帧进行解码,解码结果存在第一存储区outbuf中;再用待测试解码程序中的gF_WMA_DEC_MAIN()函数对1.wma的第一帧进行解码,解码结果存在第二存储区gV_outbuf中;
[0055] 写一个比较程序,比较outbuf与gV_outbuf的内容并记录,从而完成了第一帧的测试,同样的进行第二帧、第三帧等等其它各帧的解码、比较和记录直到音频文件中各帧都完成解码、比较和记录。
[0056] S103输出步骤,将音频文件中每一帧的比较结果整合在一起,计算出标准解码程序和待测试解码程序解码的差异度,将其输出。
[0057] 将音频文件的每一帧的比较结果整合在一起,计算出所述音频文件分别用两种解码程序解码的差异是多少,可简称为差异度,并将这个数据保存输出到PC机或其他的存储位置,通过比较的结果就可以知道待测试的解码程序是否达到了要求,从而完成了测试工作。
[0058] 优选的,所述方法还包括:
[0059] S104传送步骤,将音频文件传送到芯片中;所述传送采用每次传送一帧或几帧音频信息的方式进行。
[0060] 优选的,所述传送过程中所传送的音频信息会覆盖前一次传送的音频信息。 [0061] 测试中,可根据实际环境确定传送音频文件的帧数,如每次传送一帧、两帧或者三帧到芯片上,所述芯片与标准解码程序和待测试解码程序移植到 的芯片是同一芯片,具体来说,芯片可以是DSP、FPGA等等的芯片。每次传送都会用当前上传的帧数覆盖之前上传的帧数,所述的之前上传的帧数在当前上传时已经完成了解码、保存比较和记录。需要说明的是,为方便理解在介绍时采用一帧音频文件进行介绍,实际应用中音频文件的上传、读取、解码、解码结果的保存和比较是连贯的通过循环实现的,在每个循环内执行时:读入1帧的音频文件,解码1帧的信息,保存1帧的信息,比较1帧的结果;或者是读入n帧,解码n帧的信息,保存n帧的信息,比较n帧的结果(n可以大于等于2),基于芯片存储空间的考虑,实际中一般所传送的音频文件的帧数也不会太多。
[0062] 实施例二:
[0063] 参照图2,示出了本发明的一种测试音频解码程序的装置结构图,所述装置包括: [0064] 移植模块201,用于将标准解码程序和待测试解码程序移植到芯片上; [0065] 解码模块202,用于用所移植的标准解码程序和待测试解码程序分别解码音频文件的每一帧,解码完每一帧后分别保存解码结果并将其进行比较,记录比较结果后再解码下一帧;所述解码按照音频文件中各帧的先后顺序进行;
[0066] 优选的,所述解码模块202包括以下子模块:
[0067] 标准解码子模块2021,用于用所移植的标准解码程序解码音频文件的每一帧,并将每一帧的解码结果保存到第一存储区;所述解码从音频文件的第一帧开始按照各帧的先后顺序进行;
[0068] 待测试解码子模块2022,用于用所移植的待测试解码程序解码音频文件的每一帧,并将每一帧的解码结果保存到第二存储区;所述解码从音频文件的第一帧开始按照各帧的先后顺序进行;
[0069] 解码结果比较子模块2023,用于在标准解码程序和待测试解码程序解码完每一帧后将其进行比较,并记录其比较结果。
[0070] 输出模块203,用于将音频文件中每一帧的比较结果整合在一起,计算 出标准解码程序和待测试解码程序解码的差异度,将其输出。
[0071] 优选的,所述装置还包括:
[0072] 传送模块204,用于将音频文件传送到芯片中;所述传送采用每次传送一帧或几帧音频信息的方式进行。
[0073] 输出模块203,用于将音频文件中每一帧的比较结果整合在一起,实现中,通过移植模块201将标准解码程序和待测试解码程序移植到芯片上,解码模块202用所移植的标准解码程序和待测试解码程序分别解码音频文件的每一帧,解码完每一帧后分别保存解码结果并将其进行比较,记录比较结果后再解码下一帧,计算出标准解码程序和待测试解码程序解码的差异度,将其输出,从而在保证测试音频解码程序有效完成的同时极大的减小了测试所需的空间资源和时间资源。
[0074] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0075] 以上对本发明所提供的一种测试音频解码程序的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。