一种基于dsp的数字电视测试系统的制作方法

文档序号:7792542阅读:123来源:国知局
专利名称:一种基于dsp的数字电视测试系统的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种基于DSP的数字电视测试系统。
背景技术
数字电视是一个从节目录制到节目编辑、发射、传输,以及信号接收、处理显示完全数字化的电视系统。随着计算机技术、数字处理技术及图像压缩技术的迅猛发展,广播电视进入了数字电视发展的新时期。数字电视测量设备是数字电视开发和应用中必不可少的测试和调试工具。目前用于测量广播电视设备的标准图像信号大部分是由传统的视频图像信号发生器产生的,它们基本上是以信号种类划分为各自独立的单元,然后由各个单元组成一个产生多种信号的图像发生器。其组成很复杂,特别是作为广播级性能指标测试用的图像信号源,硬件制作技术难度大,价格昂贵。当某些特殊的应用电视测量需要产生某些图形多变的图像信号时,它难以满足特定的使用要求。利用PC机的资源,完全可以很方便地产生各种各样多变的图形,满足不同应用的要求。但是PC机本身并不能产生电视信号,也没有TV接口,需要采用一个视频信号产生系统来将存储于计算机硬盘上的二进制Y、U、V图像分量文件转换成TV信号。

发明内容
本发明的提供一种基于DSP的提供数字电视测试信号的系统,为数字电视的测量提供信号源。为了解决上述问题,本发明提出了一种基于DSP的数字电视测试系统,所述系统包括信号源单元,由PC机上的MATLAB软件编程来实现,在TDK(TriMediaDeveloper‘S Kit)开发工具中的软件开发环境SDE =Sotfware DevelopmentEnvironment下用c语言开发完成;DSP单元,构成了整个电视信号发生器的硬件主体结构,以Philips公司TriMedia DPSCPU芯片为核心的硬件开发平台;数字电视测量单元,用监视器输出数字电视测试信号,观察输出的效果来进行测量。所述信号源单元包括分配缓存单元voAllocBuf,文件写入单元voReadFiles,文件输出单元voRun,释放缓存单元voFreeBuf。所述分配缓存内存单元将读入内存中的图像文件分配缓存,并写入其中,其步骤包括如下voAlIocBuf函数调用子函数allock分配缓存区间,首先需要计算出存放.y. u. ν 文件所需的buffer的大小(szY和szUV),作为函数参数;调用allock将三个文件分别读入各自的buffer中时,如果不成功,将调用my_
3abort以错误代码(-1)直接跳出,并输出“_cache_mall0c,error code 0”;如果调用成功, 则用C0PYBACK将文件读入buffer,并返回一个指向分配给bueffr的内存块的指针;调用宏DP,记录相应的操作信息。所述图像文件写入内存模板将缓存中的图像文件按预定的格式写入内存,其步骤包括如下voReadFiles调用子函数readYUVFiles将buffer中的内容读入内存;如果返回值是0,则程序继续进行,如果返回值是其他,则调用my_ab0rt直接跳出(exit (_1)),并显示“< 图像名 >failed, error code〈返回值〉”;调用readYUVFiels时,要先进行一系列的比较检查,以保证三个buffer中的文件内容被正确的放入内存中;检查过程如下若voAllocBuf中返回的指向存放.y文件的 buffer首地址的voBuf. Y为空,返回1 ;若voAlIocBuf中返回的指向存放.u文件的buffer 首地址的voBuf. U为空,返回2 ;若voAlIocBuf中返回的指向存放.ν文件的buffer首地址的voBuf. V为空,返回3 ;若文件打开失败,返回4 ;若存放.y文件的buffer大小与由图像长宽计算出来的大小count不同,返回4 ;若存放.u文件的buffer大小与在一定模式下由图像长宽计算出来的大小uvSize不同,返回4 ;若存放.ν文件的buffer大小与在一定模式下0:2:0/4:2:2)由图像长宽计算出来的大小uvSize不同,返回4;若一切正常,调用 copykickRange,将存放YUV文件的三个buffer中的内容写入内存中,并返回O。所述图像输出模块用来启动输出设备,采用中断模式输出存储在SDRAM中的文件。在本发明实施例中,本发明可以产生18种国际上普遍使用的测试信号和两种特殊测试信号,及一个SDTV的综合测试图。本发明可以当作数字电视视频编码、视频处理设备的标准信号源使用。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1是本发明实施例中的基于DSP的数字电视测试系统结构图;图2是本发明实施例中的系统开发设计流程图;图3是本发明实施例中的统软件模块图;图4是本发明实施例中的分配缓存模块示意图;图5是本发明实施例中的图像文件写入内存模块示意图;图6是本发明实施例中的图像输出模块示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示,本发明主要包括以下单元信号源与应用程序、DSP和数字电视测量三个部分。所述信号源由PC机上的MATLAB软件编程来实现,应用程序的开发也是在是在PC 机上进行,在TDKCTriMedia Developer's Kit)开发工具中的软件开发环境SDE :Sotfware Development Environment 下用 c i吾目 '开发。所述DSP单元构成了整个电视信号发生器的硬件主体结构。它是以Wiilips公司 TriMedia DPSCPU芯片为核心的硬件开发平台。所述数字电视测量单元是用监视器输出数字电视测试信号,观察输出的效果等来进行测量。图2为本发明系统开发设计流程图如图2所示,包括步骤步骤1 用MATLAB生成由广电总局广播电视计量检测中心确定的SDTV测试信号和综合测试图,该综合测试图的视频参数符合ITU-RB. T601建议书中标准清晰度电视 (SDTV)625/50/2:l系统有效图像720X576像素、4:2:2取样格式、图像宽高比为4 3的图像信号的有关规范。步骤2 采用MATLAB的高级文件I/O例程将MATLAB产生的.mat图像文件转换为.bin格式的二进制文件。由于MATLAB的图像文件是RGB分量格式,要先根据ITU-RB. T601建议和国家标准GB/T14857-93《演播室数字电视编码参数规范》的625/50/2 ISDTV 系统基本参数要求将RGB分量转换成Y、Cb、Cr亮度和色度分量,再转换成Y、U、V分量,最后我们将这三个分量分别保存为DSP能够读入的二进制的.y、. u和.ν文件。步骤3 步骤2形成的二进制.y、. u和.ν文件需要在TriMedia的软件开发环境下,通过使用TriMedia提供的系统函数编写的应用程序读入DSP的内存中,然后由视频输出模块配合其它功能模块将各种测试图像按照需要的格式由标准视频接口输出。按照上述流程开发的可执行文件的调试通过主机(PC机)上的SDE软件开发环境与目标板 (TriMedia板)上的JTAG调试模块进行通信来实现。图3为本发明系统软件模块图如图3所示,系统的软件设计包含了四大软件模块,分别为分配缓存 (voAllocBuf)、文件写入内存(voReadFiles)、文件输出(voRun)和释放缓存(voFreeBuf)。图4为本发明分配缓存模块示意图该模块的功能是为即将读入内存中的图像文件分配缓存,并写入其中。基本步骤为步骤11 =VoAllocBuf函数调用子函数allock分配缓存区间,首先需要计算出存放· y. Uv文件所需的buffer的大小(szY和szUV),作为函数参数。步骤12 调用allock将三个文件分别读入各自的buffer中时,如果不成功,将调用my_abort以错误代码(_1)直接跳出,并输出“_cache_malloc,error code 0”(一般把屏幕设为默认输出平台,也可以输出到指定文件);如果调用成功,则用C0PYBACK将文件读入buffer,并返回一个指向分配给bueffr的内存块的指针。步骤13 调用宏DP,记录相应的操作信息,如“All0Cate voBuf,3,〈存放.y文件的bueffr的首地址 >,< 存放.u文件的bueffr的首地址 >,< 存放.ν文件的buffer的首地址〉”。图5为本发明图像文件写入内存模块示意图该模块的功能为将缓存中的图像文件按预定的格式写入内存。基本步骤为步骤21 =VoReadFiles调用子函数readYUVFiles将buffer中的内容读入内存。如果返回值是0,则程序继续进行,如果返回值是其他,则调用my abort直接跳出 (exit (-1)),并显示“< 图像名 >failed, error code〈返回值〉”。步骤22 调用readYUVFiels时,要先进行一系列的比较检查,以保证三个buffer 中的文件内容被正确的放入内存中。检查过程如下若voAllocBuf中返回的指向存放.y 文件的buffer首地址的voBuf. Y为空,返回1 ;若voAlIocBuf中返回的指向存放.u文件的 buffer首地址的voBuf. U为空,返回2 ;若voAlIocBuf中返回的指向存放.ν文件的buffer 首地址的voBuf. V为空,返回3 ;若文件打开失败,返回4 ;若存放.y文件的buffer大小与由图像长宽计算出来的大小count不同,返回4 ;若存放.u文件的buffer大小与在一定模式下0:2:0/4:2:2)由图像长宽计算出来的大小uvSize不同,返回4 ;若存放.ν文件的 buffer大小与在一定模式下(4:2:0/4:2:2)由图像长宽计算出来的大小uvSize不同,返回 4 ;若一切正常,调用copykickRange,将存放YUV文件的三个buffer中的内容写入内存中, 并返回O。图6为本发明图像输出模块示意图该模块的功能是启动输出设备,采用中断模式输出存储在SDRAM当中的文件。下面分别对voOpenAPI和voRunSignal函数的基本步骤进行详细说明。voOpenAPI 步骤311 进行一系列初始化工作,如规定中断优先级、视频标准、工作频率、适配器种类等,然后调用中断服务函数voTestlSR。如果初始化失败,调用my_ab0rt直接退出 (exit (-1)),并显示 “voOpen failed, error code〈相应 retVal 返回值〉”。步骤312 :voTestISR 先调用库函数 AppModel_suspend_scheduling()将进程挂起,然后调用_VoTestISR进行中断这个中断服务例程优先级高,因此即使同时再产生其他中断也不会影响它。步骤313 进行验证vohstanc必etup,如果失败,调用my_abort直接退出 (exit(-l)),并显示"voInstanceSetup failed, error code〈相应 retVal 返回值 >,,;正确, 程序继续,开始运行voRunSignal。voRunSignal 步骤321 规定视频输出模式(如420_UNSCALED)和图像在屏幕上的位置(我们都是全屏显示,故图像水平和垂直偏置都为0)。调用函数voYUVAPI。步骤322 :voYUVAPI先将bufferl置空,buffer2置满,意在从bufferl开始读取数据,如果是隔行扫描,则将图像高度除2,再将y的跨度变为原来2倍。voYUVAPI中对于不同的输出模式(mode),进行不同的处理。对于 422_C0SITED_UNSCALED ,422_INTERSPERSED_ UNSCALED ,和 420_UNSCALED 模式,图像宽度保持不变;对于 422_C0SITED_SCALED,422_ INTERSPERSED_SCAELD,和420S_CALED模式,图像宽度扩展为原来的二倍。输出模块规定了图像数据的三种存储格式cosited 4:2:2,interspersed 4:2:2 和 interspesred 4:2:0。cosited和interspersed说明了 YUV分量三者之间的两种平面排列方式。步骤323 =RunSignal运行成功后,回到voRun函数,运行νοΜορ终止外设。如果终止失败,调用my_abort直接退出(exit (_1)),并显示“νοΜορ failed, errorcode<相应 retVal返回值 >”;终止外设成功,运行voClose,关闭设备释放内存。以上对本发明实施例所提供的,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种基于DSP的数字电视测试系统,其特征在于,包括信号源单元,由PC机上的MATLAB软件编程来实现,在TDK(TriMediaDeveloper‘s Kit) 开发工具中的软件开发环境SDE =Sotfware DevelopmentEnvironment下用c语言开发完成;DSP单元,构成了整个电视信号发生器的硬件主体结构,以Philips公司TriMedia DPSCPU芯片为核心的硬件开发平台;数字电视测量单元,用监视器输出数字电视测试信号,观察输出的效果来进行测量。
2.如权利要求1所述的基于DSP的数字电视测试系统,其特征在于,所述信号源单元包括分配缓存单元voAllocBuf,文件写入单元voReadFiles,文件输出单元voRun,释放缓存单兀 VoFreeBuf0
3.如权利要求2所述的基于DSP的数字电视测试系统,其特征在于,所述分配缓存内存单元将读入内存中的图像文件分配缓存,并写入其中,其步骤包括如下voAllocBuf函数调用子函数allock*配缓存区间,首先需要计算出存放.y. u.v文件所需的buffer的大小(szY和szUV),作为函数参数;调用allock将三个文件分别读入各自的buffer中时,如果不成功,将调用my_abort 以错误代码(-1)直接跳出,并输出“_cache_mall0c,error code O”;如果调用成功,则用 C0PYBACK将文件读入buffer,并返回一个指向分配给bueffr的内存块的指针;调用宏DP,记录相应的操作信息。
4.如权利要求2所述的基于DSP的数字电视测试系统,其特征在于,所述图像文件写入内存模板将缓存中的图像文件按预定的格式写入内存,其步骤包括如下voReadFiles调用子函数readYUVFiles将buffer中的内容读入内存;如果返回值是 0,则程序继续进行,如果返回值是其他,则调用my_ab0rt直接跳出(exit (_1)),并显示“< 图像名 >failed, error code< 返回值 >,,;调用readYUVFiels时,要先进行一系列的比较检查,以保证三个buffer中的文件内容被正确的放入内存中;检查过程如下若voAllocBuf中返回的指向存放.y文件的buffer 首地址的voBuf. Y为空,返回1 ;若voAllocBuf中返回的指向存放.u文件的buffer首地址的voBuf. U为空,返回2 ;若voAllocBuf中返回的指向存放.ν文件的buffer首地址的 voBuf. V为空,返回3 ;若文件打开失败,返回4 ;若存放.y文件的buffer大小与由图像长宽计算出来的大小count不同,返回4 ;若存放.u文件的buffer大小与在一定模式下由图像长宽计算出来的大小uvSize不同,返回4 ;若存放.ν文件的buffer大小与在一定模式下0:2:0/4:2:2)由图像长宽计算出来的大小uvSize不同,返回4;若一切正常,调用 copybackRange,将存放YUV文件的三个buffer中的内容写入内存中,并返回O。
5.如权利要求2所述的基于DSP的数字电视测试系统,其特征在于,所述图像输出模块用来启动输出设备,采用中断模式输出存储在SDRAM中的文件。
全文摘要
本发明实施例公开了一种基于DSP的数字电视测试系统,包括信号源单元,由PC机上的MATLAB软件编程来实现,在TDK(TriMedia Developer’s Kit)开发工具中的软件开发环境SDESotfware Development Environment下用c语言开发完成;DSP单元,构成了整个电视信号发生器的硬件主体结构,以Philips公司TriMedia DPSCPU芯片为核心的硬件开发平台;数字电视测量单元,用监视器输出数字电视测试信号,观察输出的效果来进行测量。实施本发明,本发明可以当作数字电视视频编码、视频处理设备的标准信号源使用。
文档编号H04N17/00GK102447946SQ20111043596
公开日2012年5月9日 申请日期2011年12月22日 优先权日2011年12月22日
发明者孟思明, 张伟忠, 罗笑南, 谭南 申请人:广州中大电讯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1