CN102591657B - 一种基于cpu及dsp协同机制的gui系统实现方法 - Google Patents
一种基于cpu及dsp协同机制的gui系统实现方法 Download PDFInfo
- Publication number
- CN102591657B CN102591657B CN201110448438.2A CN201110448438A CN102591657B CN 102591657 B CN102591657 B CN 102591657B CN 201110448438 A CN201110448438 A CN 201110448438A CN 102591657 B CN102591657 B CN 102591657B
- Authority
- CN
- China
- Prior art keywords
- dsp
- cpu
- message
- gui
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Digital Computer Display Output (AREA)
Abstract
一种基于CPU及DSP协同机制的GUI系统实现方法,适用于工业控制和消费类电子产品中,结合CPU的控制能力和DSP的并行处理能力,提高图形用户接口系统的美观度、灵活性和性能。该系统包含CPU和DSP两个部分,其中CPU主要负责整个GUI系统的流程控制,包括与外围设备以及其他模块的交互,DSP则负责涉及到复杂计算的视频编解码、图片解码以及图片渲染等任务。采用共享内存的方式来完成CPU与DSP之间的数据传递,并通过总线以消息包的方式通知对方,从而到达同步的目的。
Description
技术领域
本发明用于实现基于DSP软件解码的图形用户接口,应用于工业控制和消费类电子产品中,如手机、PDA、车载系统、智能家电等领域。
背景技术
嵌入式图形用户接口(GUI)系统是嵌入式实时操作系统的一个重要组成部分,随着嵌入式系统硬件设备可获得性的提高和价格的不断降低以及嵌入式系统应用范围的不断扩大,嵌入式GUI系统的重要性越来越突出。
图形用户接口系统是系统级的支撑软件,它可以和文件系统、操作系统内核等一起构成一个完整的操作系统,GUI为用户提供与应用系统交互的可视化通道,即GUI负责系统的可视化界面生成,管理系统与用户之间的交互信息。
与通用的GUI系统相比,嵌入式系统下对GUI基本要求包括:轻型、占用资源少、高性能、高可靠性和可配置等。
现阶段,GUI的实现都是大多采用单处理器的方式,如单片机、ARM、DSP。对于不是很复杂的GUI来说,单处理器足以应对。但随着工业控制产品和消费类电子产品的发展,人们对消费类或工业控制类产品的图形用户接口的功能要求越来越多,性能要求也越来越高。单处理器并不能完全满足这类产品的要求。比如现在很多产品采用ARM来做GUI,虽然ARM的控制能力很强,但是对于JPEG图片的解码、图像渲染等运算比较复杂的部分却并不擅长,这就带来了GUI运行速度的降低;也有一些产品采用DSP实现GUI,DSP芯片具有高速的信息处理能力,对图片解码和图像渲染等耗时运算的处理能力很好,但是DSP的控制能力相对较弱,这是GUI性能提升的一个瓶颈。
除此之外,自从1999年,NVIDIA公司首次提出图形处理单元(GPU)的概念以后,GPU受到了人们的关注。由于GPU具有高性能的图形处理能力,很多嵌入式系统在实现图形用户接口的时候采用GPU来进行图形处理。虽然GPU的性能比通用处理器高,但GPU也存在一定的缺陷,首先,GPU不能自主地进行运算处理,需要CPU提供指令来运行;再者,GPU的功耗也比较高,这对一些手持设备来说是一个致命的弱点。
发明内容
技术问题:本发明的目的是提供一种基于CPU-DSP架构的嵌入式系统中GUI系统的设计方法,将CPU的控制能力和DSP的并行处理能力相结合,提高图形用户接口系统的美观度、灵活性和性能。
技术方案:图形用户接口(GUI)用于用户与系统的交互以及图形的显示。一套完整的GUI系统的组成模块包括:消息管理模块、窗口和控件管理模块、图形设备接口(GDI)模块、图形库模块和设备抽象层模块。采用本发明方法实现的图形用户接口采用图1所示的结构。
每个模块的功能如下:
(1)消息管理模块:
整个GUI编程架构是建立在消息分发、消息循环以及消息处理之上的,系统自身的运行以及GUI应用程序的运行都是依赖于消息管理模块。该模块主要负责消息的接收、传递和分发。GUI的消息可以分为两类:底层系统消息和内部消息。底层系统消息,包括中断(触摸屏、鼠标等)和定时器,系统将根据消息的类型,将事件分发到对应的窗口或者应用程序上。内部消息,如CPU与DSP之间消息的传递,系统则通过总线或者共享内存传递消息。
(2)窗口和控件管理模块:
该模块为上层应用程序提供了创建主窗口和控件的基本接口,并负责维护控件类。该模块实现了多窗口管理,允许用户把内容显示在不同的、可以重叠的屏幕区域内。多窗口系统能够显示更丰富的信息,而且之间可以方便、快速地切换。控件的底层是初级绘图层,控件是初级绘图层的一种封装实现,常用的有静态框、按钮、编辑框、列表框、下拉框等。
(3)图形设备接口模块:
该模块是连接上层应用和下层硬件抽象层的图形设备通信的媒介。它一方面建立在硬件抽象层之上,另一方面又对应用程序提供了一些与设备无关的接口。通过图形设备接口,GUI应用程序就可以在图形显示设备上进行图形输出,包括基本的绘图和文本输出。
(4)图形库模块:
该模块包含一些比较独立的绘图子模块,如字体字符集支持、图像支持、图形渲染支持以及视频支持。
(5)设备抽象层模块:
该模块抽象出两类设备:基于图形显示设备(如LCD)的图形抽象层(GAL);基于输入设备(如键盘、触摸屏等)的输入抽象层(IAL)。GAL层完成系统对具体的显示硬件设备的操作,隐藏了硬件的技术实现细节,为上层提供了统一的图形编程接口;IAL层则需要实现对于不同输入设备的控制操作,提供统一的调用接口。
本发明采用CPU-DSP的多核架构平台实现图形用户接口系统,需要对GUI的模块进行任务分配。考虑到CPU和DSP处理的特性,本发明采用一种主从方式——由CPU来控制DSP工作。总体说来,CPU(如ARM)主要负责整个GUI系统的流程控制,包括与外围设备以及其他模块的交互,DSP则负责涉及到复杂计算的视频编解码、图片解码以及图片渲染等任务。如图2所示。
本发明采用共享内存的方式来完成CPU与DSP之间的数据传递。CPU将需要处理的数据存放在内存的指定地址,并将其首地址指针用消息的方式发送给DSP;DSP也采用同样地方式将处理完的数据信息反馈给CPU。
本发明采用消息传递来完成CPU与DSP核之间的同步。由CPU向DSP发送命令消息包,其包含消息的类型以及消息处理时所需要的数据在共享内存中的位置信息;DSP处理完数据后,向CPU发送反馈消息包,反馈消息包包括消息类型以及处理完的数据在共享内存中的位置信息。
有益效果:将DSP的并行处理技术运用到图形用户接口系统的设计上,与传统的GUI系统相比,增强了系统对图片、图像以及视频的处理能力,提高了系统的实时性;与包含GPU模块的系统相比,增加了系统的通用性,同时也降低了系统功耗。
附图说明
图1是本发明中所陈述的图形用户系统的结构层次图。
图中的箭头方向表示数据的流向。整个系统包含模块:消息管理模块、窗口和控件管理模块、图形设备接口模块、图形库模块和设备抽象层模块。整个系统是建立在消息分发、消息循环以及消息处理的基础之上的,每层之间通过消息的方式进行交互。
图2为CPU与DSP处理器以及外设之间的关系示意图。
其中粗箭头代表数据的流向,细箭头代表消息的流向。CPU和DSP是一种主从关系,由CPU来控制GUI的流程,在需要进行复杂运算的时候启动DSP;DSP主要负责图形渲染、图片解码、字库解码等运算量较大的模块。它们之间通过共享内存进行数据交互;并通过总线以消息包的方式进行同步。其中命令消息包包括消息的类型以及消息处理时所需要的数据在共享内存中的位置信息;反馈消息包包括消息类型以及处理完的数据在共享内存中的位置信息。
图3描述了CPU工作流程图,说明了CPU控制DSP工作的详细流程。
图4是DSP在接收到CPU的命令消息后,进行数据处理并返回消息至CPU的流程示意图。
具体实施方式
一种基于CPU及DSP协同机制的GUI系统实现方法,先设计GUI系统,GUI系统包括消息管理模块、窗口和控件管理模块、图形设备接口模块、图形库模块和设备抽象层模块;其特征是设计CPU负责整个GUI系统的各个模块的流程控制,该流程控制包括与外围设备以及其他模块的交互,DSP负责涉及到视频编解码、图片解码以及图片渲染工作;由CPU来控制DSP工作;
所述GUI系统被设计成由CPU和DSP两部分组成;所述CPU与DSP之间采用共享内存的方法进行数据传送,并通过总线以消息包的方式通知对方;
对于CPU:
CPU通过图形设备接口模块接收到绘图信息后,获取设备上下文信息,根据绘图类型判断,如果绘图类型是图片、字库、视频或者图形渲染,则交予DSP处理器处理,其余则由CPU处理器处理。
这里的设备上下文信息是指,每个图形设备定义了计算机显示屏幕上的一个矩形输出区域。在调用图形输出函数时,均要求指定经初始化的图形设备上下文。上下文信息一般包括该设备上下文所在的设备信息(显示模式、色彩深度、显存布局等等);该设备上下文所代表的窗口以及该窗口被其他窗口剪切的信息;该设备上下文的基本操作函数(点、线、多边形、填充、块操作等)及其上下文信息;由程序设定的局部信息(绘图属性、映射关系和局部剪切域等);
对于DSP:
用DSP实现资源库,资源库包括图片解码、字库解码、视频解码和图片渲染;
1)所述CPU交任务给DSP处理,则向DSP发送命令消息包,然后等待DSP处理完数据;所述命令消息包中包含消息的类型、消息处理时所需要的数据在共享内存中的位置信息;
2)DSP接收到CPU发送的命令消息包,经过解析,得到消息的类型和数据在共享内存中的位置信息;DSP根据该位置信息从共享内存中调取相应数据,并根据消息的类型,调用相应的资源库对数据进行并行处理;
3)DSP处理完以后在将反馈消息包传送给CPU;所述反馈消息包中包含消息类型、处理完成的数据在共享内存中的位置信息。
所述消息管理模块:负责消息的接收、传递和分发;GUI的消息可以分为两类:底层系统消息和内部消息;
底层系统消息包括设备中断和定时器;GUI系统根据消息的类型,将事件分发到对应的窗口或者应用程序上;
内部消息包括CPU与DSP之间消息的传递,GUI系统通过总线或者共享内存传递消息;
所述窗口和控件管理模块:为应用层的应用程序提供了创建主窗口和控件的基本接口,并维护控件类;
该模块实现了多窗口管理,允许用户把内容显示在不同的、可以重叠的屏幕区域内;控件的底层是初级绘图层,控件是初级绘图层的封装实现,控件包括静态框、按钮、编辑框、列表框和下拉框;
图形设备接口模块:连接应用层和设备抽象层的图形设备通信媒介;该模块建立在硬件抽象层之上,又对应用程序提供与设备无关的接口;通过图形设备接口模块,GUI应用程序在图形显示设备上进行图形输出,包括基本的绘图和文本输出;
图形库模块:包含独立的绘图子模块,子模块包括字体字符集支持、图像支持、图形渲染支持以及视频支持;
设备抽象层模块:该模块抽象出两类设备:基于图形显示设备的图形抽象GAL层;基于输入设备的输入抽象IAL层;GAL层完成GUI系统对图形显示设备的硬件操作,为图形设备接口提供了统一的图形编程接口;IAL层实现对于不同输入设备的控制操作,提供统一的调用接口。这里,调用接口是指调用输入设备(如键盘、鼠标、触摸屏等)接口来实现具体的输入抽象层操作,如打开设备、从设备中读取数据、关闭设备等;GAL层的接口包括打开设备、关闭设备、设置分辨率及显示模式等)。
具体到本例中,下面结合附图与具体实施方式对本技术方案进一步说明如下:
本发明的处理器由CPU和DSP两部分组成,其中CPU控制整个系统的流程,将GUI中用到的图片视频解码和图形渲染运算交予DSP处理,DSP处理完以后CPU再继续自己的工作。
CPU用于实现图形用户系统的流程控制。该部分按照图1所示的模块图实现消息管理模块、窗口和控件管理模块、图形设备接口(GDI)模块、图形库模块和设备抽象层模块。
消息管理模块实现外部消息的接收与分发和内部消息的传递。系统接收到来自底层(键盘、触摸屏等)的消息或者应用程序内部消息(CPU和DSP之间的消息),该模块根据消息事件的类型,将消息派发到对应的应用程序或者窗口控件中。
窗口和控件管理模块实现多窗口管理和控件库。多窗口管理模块实现三个功能:接收消息管理模块分发的事件消息,并使消息正确路由至目标窗口,并触发窗口过程;更新活动窗口和焦点窗口或者控件;维护窗口的Z序列和各个窗口的剪切域矩形链,正确进行窗口重绘,执行窗口过程。
图形设备接口模块和图形库模块的实现流程如图3所示。GDI模块接收到绘图信息后,获取设备上下文信息,根据绘图类型判断是交予DSP处理器或是交予CPU处理器处理。DSP处理器负责图像、字体以及视频的解码和图形的渲染,其他的都由CPU完成。如果是交由DSP处理,则向DSP发送命令消息包,命令消息包中包含消息的类型以及消息处理时所需要的数据在共享内存中的位置信息,然后等待DSP处理完数据后,向CPU发送反馈消息包,反馈消息包包括消息类型以及处理完的数据在共享内存中的位置信息。
设备抽象层模块包括图形抽象层和输入抽象层。设备抽象层根据输入设备和输出设备定义了一组不依赖任何特殊硬件的抽象接口,类似操作系统的驱动程序,便于上层应用的统一调用。
DSP处理器用于实现一些复杂的资源库,如图片、字体以及视频的解码以及图形渲染。DSP的工作流程如图4所示,当接收到CPU发送的命令消息包,经过解析,得到消息的类型和数据信息,根据消息的类型,调用不同的资源库对数据进行并行处理,处理完以后在将消息类型和处理完的数据信息打包成反馈消息包,传送给CPU。
CPU和DSP之间采用通信方式如图2所示。CPU和DSP将需要传递给对方的数据存放在共享内存中,然后通过总线以消息包的方式通知对方,从而到达同步的目的。
Claims (2)
1.一种基于CPU及DSP协同机制的GUI系统实现方法,先设计GUI系统,GUI系统包括消息管理模块、窗口和控件管理模块、图形设备接口模块、图形库模块和设备抽象层模块;其特征是设计CPU负责整个GUI系统的各个模块的流程控制,该流程控制包括GUI系统与外围设备的交互,GUI系统的内部模块的交互;DSP负责涉及到视频编解码、图片解码以及图片渲染工作;由CPU来控制DSP工作;
所述GUI系统被设计成由CPU和DSP两部分组成;所述CPU与DSP之间采用共享内存的方法进行数据传送,并通过总线以消息包的方式通知对方;
对于CPU:
CPU通过图形设备接口模块接收到绘图信息后,获取设备上下文信息,根据绘图类型判断,如果绘图类型是图片、字库、视频或者图形渲染,则交予DSP处理器处理,其余则由CPU处理器处理;
对于DSP:
用DSP实现资源库,资源库包括图片解码、字库解码、视频解码和图片渲染;
所述CPU交任务给DSP处理,则向DSP发送命令消息包,然后等待DSP处理完数据;所述命令消息包中包含消息的类型、消息处理时所需要的数据在共享内存中的位置信息;
DSP接收到CPU发送的命令消息包,经过解析,得到消息的类型和数据在共享内存中的位置信息;DSP根据该位置信息从共享内存中调取相应数据,并根据消息的类型,调用相应的资源库对数据进行并行处理;
DSP处理完以后再将反馈消息包传送给CPU;所述反馈消息包中包含消息类型、处理完成的数据在共享内存中的位置信息。
2.根据权利要求1所述的基于CPU及DSP协同机制的GUI系统实现方法,其特征是:
所述消息管理模块:负责消息的接收、传递和分发;GUI的消息可以分为两类:底层系统消息和内部消息;
底层系统消息包括设备中断和定时器;GUI系统根据消息的类型,将事件分发到对应的窗口或者应用程序上;
内部消息包括CPU与DSP之间传递的消息,GUI系统通过总线或者共享内存传递消息;
所述窗口和控件管理模块:为应用层的应用程序提供了创建主窗口和控件的基本接口,并维护控件类;
该窗口和控件管理模块实现了多窗口管理,允许用户把内容显示在不同的、可以重叠的屏幕区域内;控件的底层是初级绘图层,控件是初级绘图层的封装实现,控件包括静态框、按钮、编辑框、列表框和下拉框;
图形设备接口模块:连接应用层和设备抽象层的图形设备通信媒介;该图形设备接口模块建立在硬件抽象层之上,又对应用程序提供与设备无关的接口;通过图形设备接口模块,GUI应用程序在图形显示设备上进行图形输出,包括基本的绘图和文本输出;
图形库模块:包含独立的绘图子模块,子模块包括字体字符集支持、图像支持、图形渲染支持以及视频支持;
设备抽象层模块:该设备抽象层模块抽象出两类设备:基于图形显示设备的图形抽象层;基于输入设备的输入抽象层;图形抽象层完成GUI系统对图形显示设备的硬件操作,为图形设备接口提供了统一的图形编程接口;输入抽象层实现对于不同输入设备的控制操作,提供统一的调用接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110448438.2A CN102591657B (zh) | 2011-12-29 | 2011-12-29 | 一种基于cpu及dsp协同机制的gui系统实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110448438.2A CN102591657B (zh) | 2011-12-29 | 2011-12-29 | 一种基于cpu及dsp协同机制的gui系统实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102591657A CN102591657A (zh) | 2012-07-18 |
CN102591657B true CN102591657B (zh) | 2014-06-25 |
Family
ID=46480377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110448438.2A Expired - Fee Related CN102591657B (zh) | 2011-12-29 | 2011-12-29 | 一种基于cpu及dsp协同机制的gui系统实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102591657B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015127404A1 (en) | 2014-02-24 | 2015-08-27 | Microsoft Technology Licensing, Llc | Unified presentation of contextually connected information to improve user efficiency and interaction performance |
EP3111392A1 (en) * | 2014-02-24 | 2017-01-04 | Microsoft Technology Licensing, LLC | Unified presentation of contextually connected information to improve user efficiency and interaction performance |
CN103809983B (zh) * | 2014-02-27 | 2017-10-13 | 山东超越数控电子有限公司 | 一种修改bios setup界面的方法 |
CN105549932B (zh) * | 2015-12-11 | 2018-08-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种图形处理器主机驱动装置 |
CN108920413B (zh) * | 2018-06-28 | 2019-08-09 | 中国人民解放军国防科技大学 | 面向gpdsp的卷积神经网络多核并行计算方法 |
CN108984324B (zh) * | 2018-07-18 | 2021-05-11 | 湖南理工学院 | Fpga硬件抽象层 |
CN109408419B (zh) * | 2018-10-11 | 2020-11-13 | 湖南理工学院 | Dsp硬件抽象层和dsp处理器 |
CN111274996B (zh) * | 2020-02-14 | 2023-06-09 | 深圳英飞拓仁用信息有限公司 | 人脸图片特征比对方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128011A (en) * | 1998-08-31 | 2000-10-03 | Sony Corporation Of Japan | Cross-platform digital signal processing designs using Java and C |
CN101068304A (zh) * | 2007-05-11 | 2007-11-07 | 中山大学 | 一种基于Microwindows的优化的数字家庭机顶盒GUI系统 |
-
2011
- 2011-12-29 CN CN201110448438.2A patent/CN102591657B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128011A (en) * | 1998-08-31 | 2000-10-03 | Sony Corporation Of Japan | Cross-platform digital signal processing designs using Java and C |
CN101068304A (zh) * | 2007-05-11 | 2007-11-07 | 中山大学 | 一种基于Microwindows的优化的数字家庭机顶盒GUI系统 |
Non-Patent Citations (1)
Title |
---|
李周勇.DSP嵌入式系统的图形用户界面(GUI)设计和实现.《中国优秀硕士论文电子期刊网》.2007,(第2期), * |
Also Published As
Publication number | Publication date |
---|---|
CN102591657A (zh) | 2012-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102591657B (zh) | 一种基于cpu及dsp协同机制的gui系统实现方法 | |
US11615284B2 (en) | Efficient transferring of human experiences to robots and other autonomous machines | |
EP2605129B1 (en) | Method of rendering a user interface | |
US5754242A (en) | Data formatting system for processing multiple independent input data streams for high resolution screen displays | |
EP3111318B1 (en) | Cross-platform rendering engine | |
US11446571B2 (en) | Cloud gaming adaptive synchronization mechanism | |
CA2792900A1 (en) | Method of rendering a user interface | |
CN104380258A (zh) | 对图形硬件实施调度操作 | |
CN105321142B (zh) | 经由计算流水线进行的采样、错误管理和/或上下文切换 | |
CN106101751A (zh) | 基于Android操作系统的播放器以及嵌入式播放盒 | |
DE102020115680A1 (de) | LESEZUSAMMENFüGUNG UND M ULTICAST-RÜCKFÜHRUNG FÜR EINEN GETEILTEN LOKALEN SPEICHER | |
CN110658963B (zh) | 人机交互界面的多屏互动系统、设备、介质、交互系统 | |
US10089264B2 (en) | Callback interrupt handling for multi-threaded applications in computing environments | |
WO2017039865A1 (en) | Facilitating efficient scheduling of graphics workloads at computing devices | |
CN103677970A (zh) | 实现终端本地桌面和远端虚拟桌面合并显示的系统和方法 | |
CN102637125A (zh) | 宫格界面的显示方法及移动终端 | |
CN101251993B (zh) | 一种监控多屏幕的方法及装置 | |
CN102880382B (zh) | 一种界面展示系统、方法和设备 | |
CN205103599U (zh) | 一种跨境贸易bpo应用云终端装置 | |
CN109154892A (zh) | 用于在计算环境中对数据进行本地处理的寄存器堆扩展 | |
EP3903896A1 (en) | Cloud gaming adaptive synchronization mechanism | |
CN102339221B (zh) | 一种基于Windows CE平台的应用程序界面处理方法 | |
WO2023221822A1 (zh) | 数据处理方法、电子设备和可读存储介质 | |
CN103309547A (zh) | 一种信息显示方法及电子设备 | |
CN106326186A (zh) | 一种片上系统、图形绘制方法、中间层及嵌入式设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140625 Termination date: 20171229 |
|
CF01 | Termination of patent right due to non-payment of annual fee |