一种基于多媒体处理器的图形处理方法

文档序号:6378190阅读:196来源:国知局
专利名称:一种基于多媒体处理器的图形处理方法
技术领域
本发明涉及计算机图形处理,具体的讲是一种基于多媒体(Trimedia)处理器的图形处理方法。
背景技术
当前,许多视频会议终端均采用Trimedia核心的数字信号处理CPU(DSPCPU)作为其中央控制器。Trimedia处理器为超长指令字(VLIWvery-long instruction word)内核,其支持单指令多数据(SIMDSingleInstruction Multiple Data)多媒体操作,非常适合做多媒体数据,如音频、视频数据的处理。Trimedia处理器内置了增强型视频输出单元,可以完成叠加视频/主视频的混合显示及色键控制。一般地,叠加视频为计算机图形,而不是活动视频。但与一般的计算机图形帧缓冲区格式不同,Trimedia处理器图形缓冲区像素格式为YUV422(如图1所示),而一般的计算机图形缓冲区像素格式为RGB。
在目前使用的采用Trimedia处理器的视频会议终端中存在以下两种情况1)图形由Trimedia CPU本身生成,Trimedia处理器完成点、线、块、字体的渲染。系统可以由一个Trimedia CPU构成,无需其他辅助CPU(如图2所示,其中标号1表示图形输出方向);2)多CPU,但主CPU上有自己的显示卡(如图3所示,其中标号1表示图形输出方向)。在第2)中情况下,主CPU也不会往Trimedia处理器上写图形数据,相反地,Trimedia处理器往往向主CPU的显示卡输出图形/图像数据。采用这两种结构和图形生成方法存在以下弊端1)Trimedia处理器会消耗相当的处理能力用于图形处理,从而影响对音频/视频的处理;2)Trimedia处理器目前采用pSOS操作系统,做一些简单的图形比较容易,但如果做浏览器,或功能强大的窗口系统,需要开发的工作量比较大;3)其他操作系统,如Linux,WinCE等,图形功能强大,但不能在Trimedia处理器上运行,如果将相应的图形系统移植到Trimedia上,又需要大量的再开发工作。
因此,在只有多媒体处理器CPU(Trimedia CPU)的情况下,要开发完善的图形系统,需要较大的开发工作量,或者购买昂贵的第三方开发的专用图形系统。

发明内容
本发明的目的在于,提供一种基于多媒体处理器的图形处理方法,这种方法能直接利用已有的窗口系统软件,使载有多媒体处理器的终端具有完善的图形处理功能。
本发明的技术方案为一种基于多媒体处理器的图形处理方法,其将具有内存管理单元(MMUMemory Management Unit)的CPU与多媒体处理器CPU相耦合,并通过所述的具有内存管理单元的CPU读写所述的多媒体处理器CPU的视频缓冲区;所述的具有内存管理单元的CPU将自身生成的图形数据写到所述的多媒体处理器CPU的内存;所述的多媒体处理器CPU的视频渲染单元将所述的图形数据转成模拟信号输出。
将具有内存管理单元的CPU与多媒体处理器CPU相耦合是指在载有多媒体处理器的多媒体系统的PCI总线上,连接一具有内存管理单元和PCI总线的嵌入式CPU;其中所述的嵌入式CPU为主控制器,所述的多媒体处理器CPU为数字信号处理器(DSPDigital Signal Processor)。
在所述的具有内存管理单元的CPU上运行嵌入式操作系统,在所述的多媒体处理器CPU上运行pSOS系统;其中所述的多媒体处理器CPU在自身的内存空间申请一块叠加视频(Overlay)帧存,并将此帧存信息传给自身的视频渲染单元;所述的多媒体处理器CPU将帧存信息通过所述的PCI总线传送给所述的具有内存管理单元的CPU;所述的具有内存管理单元的CPU获得所述的帧存信息,并将所述的多媒体处理器CPU作为显示卡使用,该显示卡具有线性的帧存空间,像素格式为YUV422序列,也即YUYV格式。
所述的帧存信息至少包括帧存物理地址。
所述的多媒体处理器CPU将帧存信息通过所述的PCI总线传送给所述的具有内存管理单元的CPU包括以下具体步骤步骤一、所述的具有内存管理单元的CPU和所述的多媒体处理器之间通过通信接口进行通信;步骤二、所述的具有内存管理单元的CPU在自身的内存中创建事件,以接收所述的多媒体处理器的事件通知;步骤三、所述的具有内存管理单元的CPU在自身的内存中设置共享缓冲区,以接收所述的多媒体处理器的数据;步骤四、所述的具有内存管理单元的CPU重新启动所述的多媒体处理器,并等待所述的多媒体处理器的事件通知;步骤五、所述的多媒体处理器开始运行,打开所述的事件和共享缓冲区;步骤六、所述的多媒体处理器为自身的视频渲染单元开辟图形存储空间,并记下该图形存储空间的起始地址;步骤七、所述的多媒体处理器初始化自身的视频渲染单元,并启动渲染;步骤八、所述的多媒体处理器将所述的起始地址、图形区的高度/宽度信息放入所述的共享缓冲区;步骤九、所述的多媒体处理器通过所述的事件,通知所述的具有内存管理单元的CPU;步骤十、所述的具有内存管理单元的CPU接到通知后,取出图形缓冲区的起始地址、及高度/宽度信息;步骤十一、所述的具有内存管理单元的CPU将起始地址通过MMAP系统调用转化为自己的内存地址;步骤十二、所述的具有内存管理单元的CPU将所述的内存地址、图形缓冲区高度/宽度信息传给图形操作软件;步骤十二、所述的图形操作软件响应用户操作,生成相应的图形,该图形直接写在所述的多媒体处理器的内存上,并由显示装置进行显示。
所述的图形操作软件在生成图形时,需进行RGB格式到YUYV格式的转换。
由所述的具有内存管理单元的CPU采用查表法进行RGB格式到YUYV格式的转换计算。
本发明的有益效果在于采用主CPU来进行图形生成,可以最大限度地利用自由软件领域的软件,可以加快系统的开发,特别地,在网络部分/图形显示部分,可以不用考虑向Trimedia移植问题,直接使用x86,PowerPC等平台上的软件。
此种图形生成方式,可以减少Trimedia CPU在这方面的开销,保证有更多的处理能力用于音频/视频的编解码。
通过其他CPU读写Trimedia 1300 CPU的视频缓冲区,并采用MMU CPU,(如486/586/Pentium等x86 CPU,IBM 405EP、Motorola MPC8241/8245等PowerPC CPU)上常用的图形生成软件,从而使整个终端具有完善的图形系统。


图1为Trimedia CPU的图形帧存格式;
图2为单Trimedia CPU的系统结构框图;图3为PC平台加Trimedia CPU的系统结构框图;图4为嵌入CPU加Trimedia CPU的系统结构框图。
具体实施例方式
下面结合

本发明的具体实施方式
,本发明提供了一种基于多媒体处理器的图形处理方法。将具有内存管理单元(MMUMemory Management Unit)的CPU与多媒体处理器CPU相耦合,并通过所述的具有内存管理单元的CPU读写所述的多媒体处理器CPU的视频缓冲区;所述的具有内存管理单元的CPU将自身生成的图形数据传送给所述的多媒体处理器CPU;所述的多媒体处理器CPU将所述的图形数据输出。
在一般的Trimedia系统,在PCI总线上,格外连接上一颗带MMU和PCI总线的嵌入式CPU,如AMD ElanSC520,Motorola MPC8245,IBM PowerPC 405EP等,此MMU CPU为主控制器,Trimedia CPU当作DSP使用,主控制器没有自己的显示卡(如图4所示,其中标号1表示图形输出方向)。
MMU CPU上可以运行主流嵌入式操作系统,如Linux,VxWorks,WinCE等。Trimedia上运行pSOS。Trimedia先在自己的内存空间申请一块叠加视频(Overlay)帧存,并将此帧存信息传给CPU上的视频输出单元。然后,Trimedia通过某种机制,将帧存信息(主要是帧存物理地址)通过PCI总线通知MMU CPU。MMU CPU获得此信息后,便可以将Trimedia当作一块特殊显示卡使用,此显示卡具有线性的帧存空间,但像素格式为YUV422序列,也即YUYV格式。
上文所说的某种机制,可以是但不局限于下列这种方式1)MMU CPU运行Linux,MMU CPU和Trimedia之间通过tmman接口进行通信。
2)MMU CPU在自己的内存中创建事件A,用于接受Trimedia的事件通知;
3)MMU CPU在自己的内存中共享缓冲区MA,用于接收Trimedia的数据。
4)MMU CPU重新启动Trimedia,并等待Trimedia的事件通知。
5)Trimedia开始运行,打开事件A和共享缓冲区MA。
6)Trimedia为自己的视频渲染单元开辟图形存储空间,假设此空间起始地址为ADDR。
7)Trimedia初始化视频渲染单元并启动渲染。
8)Trimedia将ADDR、图形区的高度/宽度信息放入共享缓冲区MA。
9)Trimedia通过事件A通知MMU CPU。
10)MMU CPU接到通知后,取出图形缓冲区的起始地址ADDR及高度/宽度信息。
11)MMU CPU将ADDR通过MMAP系统调用转化为自己的内存地址。假设此地址为M_ADDR。
12)MMU CPU将M_ADDR、图形缓冲区高度/宽度信息传给图形操作软件MiniGUI。
13)MiniGUI响应用户操作,生成相应的图形,此图形直接写在Trimedia的内存上并由Trimedia进行显示。
通过以上这种机制,MiniGUI就将Trimedia子系统当作一块特殊的显示卡来使用。与一般显示卡不同的是,此显卡帧存像素格式为YUYV,而图形操作系统一般采用RGB的像素格式。因此,MiniGUI在生成图形时,存在RGB到YUYV的转化问题。由MMU CPU进行RGB到YUYV的计算,计算量很大,一种折衷的方式是查表法。
查表法就是预先计算好RGB和YUYV的对应表,在实际转化时,利用此对应表来避免计算。由于RGB888的取值范围为0~(224-1),所以此表非常庞大,但可作以下简化首先,将像素格式RGB888转化为RGB555,此转化会使颜色数从1600多万种将为32768种,但对于图形来说,32768种颜色已经足够。RGB555的取值范围为0~32767,每个YUYV值为4字节,整个表格大小为128K字节(见表1)。对于任意一个RGB888值,每个颜色值右移3位,降为5个bit,再重组为15bit,转化为RGB555。我们以RGB555作索引,就可以查出原来RGB888对应的YUYV的近似值。
RGB到YUYV的转化查找表 表1

且计算公式如下Y=(unsigned char)(0.299*(R&0xf8)+0.587*(G&0xf8)+0.114*(B&0xf8)+0.5);U=(unsigned char)(-0.1687*(R&0xf8)-0.3313*(G&0xf8)+0.5*(B&0xf8)+128.5);V=(unsigned char)(0.5*(R&0xf8)-0.4197*(G&0xf8)-0.0813*(B&0xf8)+128.5);本申请相对现有技术而言所具有的优点和效果为采用主CPU来进行图形生成,可以最大限度地利用自由软件领域的软件,可以加快系统的开发,特别地,在网络部分/图形显示部分,可以不用考虑向Trimedia移植问题,直接使用x86,PowerPC等平台上的软件。
此种图形生成方式,可以减少Trimedia CPU在这方面的开销,保证有更多的处理能力用于音频/视频的编解码。
以上具体实施方式
仅用于说明本发明,而非用于限定本发明。
权利要求
1.一种基于多媒体处理器的图形处理方法,其特征在于,将具有内存管理单元的CPU与多媒体处理器CPU相耦合,并通过所述的具有内存管理单元的CPU读写所述的多媒体处理器CPU的视频缓冲区;所述的具有内存管理单元的CPU将自身生成的图形数据写到所述的多媒体处理器CPU的内存;所述的多媒体处理器CPU的视频渲染单元将所述的图形数据转成模拟信号输出。
2.根据权利要求1所述的方法,其特征在于,将具有内存管理单元的CPU与多媒体处理器CPU相耦合是指在载有多媒体处理器的多媒体系统的PCI总线上,连接一具有内存管理单元和PCI总线的嵌入式CPU;其中所述的嵌入式CPU为主控制器,所述的多媒体处理器CPU为数字信号处理器。
3.根据权利要求2所述的方法,其特征在于,在所述的具有内存管理单元的CPU上运行嵌入式操作系统,在所述的多媒体处理器CPU上运行pSOS系统;其中所述的多媒体处理器CPU在自身的内存空间申请一块叠加视频帧存,并将此帧存信息传给自身的视频渲染单元;所述的多媒体处理器CPU将帧存信息通过所述的PCI总线传送给所述的具有内存管理单元的CPU;所述的具有内存管理单元的CPU获得所述的帧存信息,并将所述的多媒体处理器CPU作为显示卡使用,该显示卡具有线性的帧存空间,像素格式为YUV422序列,也即YUYV格式。
4.根据权利要求3所述的方法,其特征在于,所述的帧存信息至少包括帧存物理地址。
5.根据权利要求3所述的方法,其特征在于,所述的多媒体处理器CPU将帧存信息通过所述的PCI总线传送给所述的具有内存管理单元的CPU包括以下具体步骤步骤一、所述的具有内存管理单元的CPU和所述的多媒体处理器之间通过通信接口进行通信;步骤二、所述的具有内存管理单元的CPU在自身的内存中创建事件,以接收所述的多媒体处理器的事件通知;步骤三、所述的具有内存管理单元的CPU在自身的内存中设置共享缓冲区,以接收所述的多媒体处理器的数据;步骤四、所述的具有内存管理单元的CPU重新启动所述的多媒体处理器,并等待所述的多媒体处理器的事件通知;步骤五、所述的多媒体处理器开始运行,打开所述的事件和共享缓冲区;步骤六、所述的多媒体处理器为自身的视频渲染单元开辟图形存储空间,并记下该图形存储空间的起始地址;步骤七、所述的多媒体处理器初始化自身的视频渲染单元,并启动渲染;步骤八、所述的多媒体处理器将所述的起始地址、图形区的高度/宽度信息放入所述的共享缓冲区;步骤九、所述的多媒体处理器通过所述的事件,通知所述的具有内存管理单元的CPU;步骤十、所述的具有内存管理单元的CPU接到通知后,取出图形缓冲区的起始地址、及高度/宽度信息;步骤十一、所述的具有内存管理单元的CPU将起始地址通过MMAP系统调用转化为自己的内存地址;步骤十二、所述的具有内存管理单元的CPU将所述的内存地址、图形缓冲区高度/宽度信息传给图形操作软件;步骤十三、所述的图形操作软件响应用户操作,生成相应的图形,该图形直接写在所述的多媒体处理器的内存上,并由显示装置进行显示。
6.根据权利要求5所述的方法,其特征在于,所述的图形操作软件在生成图形时,需进行RGB格式到YUYV格式的转换。
7.根据权利要求6所述的方法,其特征在于,由所述的具有内存管理单元的CPU采用查表法进行RGB格式到YUYV格式的转换计算。
全文摘要
本发明提供一种基于多媒体处理器的图形处理方法,其将具有内存管理单元的CPU与多媒体处理器CPU相耦合,并通过所述的具有内存管理单元的CPU读写所述的多媒体处理器CPU的视频缓冲区;所述的具有内存管理单元的CPU将自身生成的图形数据直接写到所述的多媒体处理器CPU的视频缓冲区;所述的多媒体处理器CPU的视频渲染单元将所述的图形数据转化成模拟信号输出。从而能利用具有内存管理单元CPU上的现有软件,不用移植,使载有多媒体处理器的终端具有完善的图形处理功能。
文档编号G06F13/14GK1591372SQ0315646
公开日2005年3月9日 申请日期2003年8月28日 优先权日2003年8月28日
发明者林朝旸 申请人:北京鼎视通软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1