CN101068304A - 一种基于Microwindows的优化的数字家庭机顶盒GUI系统 - Google Patents

一种基于Microwindows的优化的数字家庭机顶盒GUI系统 Download PDF

Info

Publication number
CN101068304A
CN101068304A CNA2007100279518A CN200710027951A CN101068304A CN 101068304 A CN101068304 A CN 101068304A CN A2007100279518 A CNA2007100279518 A CN A2007100279518A CN 200710027951 A CN200710027951 A CN 200710027951A CN 101068304 A CN101068304 A CN 101068304A
Authority
CN
China
Prior art keywords
buffer pool
palette
module
rgb
gui
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.)
Granted
Application number
CNA2007100279518A
Other languages
English (en)
Other versions
CN100496092C (zh
Inventor
周怿
罗笑南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CNB2007100279518A priority Critical patent/CN100496092C/zh
Publication of CN101068304A publication Critical patent/CN101068304A/zh
Application granted granted Critical
Publication of CN100496092C publication Critical patent/CN100496092C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Controls And Circuits For Display Device (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明公开了一个基于Microwindows的优化的数字电视机顶盒GUI系统,它涉及数字电视机顶盒技术以及计算机图形学领域。该系统包括GUI核心机制模块、图形引擎模块、GUI对象模块,其中图形引擎模块采用了优化的调色板模块,首先创建了一个缓冲池,每次查找颜色RGB值的时候,先搜索缓冲池,若缓冲池未命中,才使用最原始的每次查找匹配算法来找出最合适的RGB索引,其中缓冲池采用双向循环链表结构,存放了16个结点。利用本发明使得优化后的GUI系统在绘图操作上速度有明显提高,数字电视显示效果更佳,更能满足客户视觉要求。

Description

一种基于Microwindows的优化的数字家庭机顶盒GUI系统
技术领域
本发明涉及数字电视机顶盒技术以及计算机图形学领域,具体涉及到Microwindows这一嵌入式GUI软件的相关技术。
背景技术
数字机顶盒(STB,Set-Top-Box)是一种与电视机连接的网络终端设备,用于将数字电视信号转换成模拟信号的变换设备,通过对数字化压缩的图像声音信号进行解码还原,产生模拟视频和声音信号,以提供给观众高质量的电视节目。
数字机顶盒软件开发的相关工作大致分为以下几个部分:
1、嵌入式Linux操作系统平台及设备驱动的搭建;
2、EPG信息分析及数据库;
3、图形用户界面GUI系统平台及GUI应用程序的开发;
4、视频解码软件部分的改造;
5、CA加解扰软件部分;
6、存储设备Flash ROM的软件部分;
7、Tuner部分驱动程序的开发。
本发明主要设计一种基于Microwindows的更优化的机顶盒GUI系统平台。
嵌入式GUI系统的开发中较为专业的不外乎两种,其一是精简既有的系统,在开发角度来看,精简既有的系统是最快速的方式,缺点是效能不好控制,体积只能缩小到一定程度。其二是重新打造一套,对于非通用硬件差异很大的嵌入式设备,条件允许当然是重新打造一套为最好。优点如系统掌握程度,高效能及软件体积都能调整到最佳,缺点在于成本较高,需要考虑所需的开发时间和人力成本。
本发明设计的是卫星数字机顶盒,对硬件成本要求严格。同时其图形用户界面不是很复杂,GUI系统所要提供的功能也较单一,并且在开发中从系统层和设备层都有良好的软硬件技术支持,设备层有完备的设备驱动支持。自行开发的GUI系统可以方便的建立在驱动层之上,从而避开了繁琐的驱动程序开发,大大地减少了软件开发的费用,考虑到上述的限制和本发明的一些开发优势,我们最终采用独立开发自己专用的GUI系统的方式。
在本发明中,我们使用了Microwindows作为开发GUI系统的支撑工具。MicroWindows的目的是把图形视窗环境引入到运行Linux的小型设备和平台上。作为X Window系统的替代品,MicroWindows可以用更少的RAM和文件存储空间(100KB~600KB)提供相似的功能,允许设计者轻松加入各种显示设备、鼠标、触摸屏和键盘等;可移植性非常好,可用C语言实现;支持Intel 16位/32位CPU、MIPS R4000以及基于ARM内核的处理器芯片。由于和微软的windows注册商标存在冲突,从2005年月起,MicroWindows改名为Nano-X。
在GUI系统中,有一个不可缺乏的部件就是调色板。调色板查找算法是嵌入式GUI系统的重要组成之一。在具有硬件调色板的系统中,每次进行几何图形绘制之前都会调用该算法将应用程序给出的RGB参数转化成与具体显示硬件相对应的模式颜色值,以设置当前图形绘制的前景色和背景色。
所谓硬件调色板就是为了提高显示速度,专用嵌入式系统的显示芯片硬件查找表,通过索引的方法来完成从显存到RGB值的映射。于是我们称硬件查找表及其相应的硬件索引电路为硬件调色板。它的工作原理是基于调色板索引的,也就是将一组(容量上限取决于实际显示硬件,一般为256)预定义的RGB值写入硬件调色板中,当绘制屏幕上某点时,只需要向对应的显缓中写入该点的RGB值在硬件调色板中对应的RGB索引值即可。这样在每次显示刷新中,由调色板硬件自动完成显缓中到调色板的映射,向显示屏输出与显缓相对应的RGB值。
发明内容
针对以上的不足,本发明设计一种基于Microwindows的优化的数字电视机顶盒GUI系统,通过改进其中的调色板查找算法,使数字电视显示效果更佳,显示速度大大提高,进一步满足用户的需求。
通过分析,考虑到GUI系统的通用性,决定对本发明使用一种多模块结构的GUI系统。从功能上可以分为三个模块:GUI核心机制模块、图形引擎模块、GUI对象模块,其中图形引擎模块采用了优化的调色板模块。
核心机制模块采用C/S工作模式,包括图形设备子模块、消息机制子模块、定时器子模块、输入设备子模块等四个子模块,主要功能是为图形显示提供内存缓冲区,负责消息接受和分发工作,为上层应用提供定时器的支持,还有就是提供输入设备输入消息的收集功能;
图形引擎模块是最重要的部分,具有屏幕和区域管理,调色板查找等等功能,同时该模块向GUI对象模块提供图形输出功能,其中函数可以直接被应用程序调用;
GUI对象模块主要包含预定义完整的窗口环境元素集合,含多种属性和风格Window和control等,要求这些元素能够对不同的GUI事件有不同的响应。
所述调色板模块的优化具体指增加了一个缓冲池,每次查找颜色RGB值的时候,先搜索缓冲池,若缓冲池未命中,才使用最原始的每次查找匹配算法来找出最合适的RGB索引。目前大部分GUI系统采用的调色板查找方法是每次匹配查找方法,该方法过程如下:
(1)初始化当前最小误差σmin为系统可接受的最大误差和最优调色板索引初值I best=0。
(2)计算当前调色板索引对应的R’G’B’与要查找的RGB各分量的误差σR、σG、σB。
(3)根据绝对值求和法计算RGB总误差σ。
(4)当σ≥σmin时,若下一个调色板索引存在,则跳转至(2);否则返回在当前调色板中与要查找的RGB最接近的索引值I best。
(5)令σmin=σ,I best=当前调色板索引,若σmin=0则返回在当前调色板中与RGB相等的索引值I best;否则若下一个调色板索引存在则跳转至(2)。
所述缓冲池结构为双向循环链表,存放了16个结点,每个结点结构如下:
  Prior   RGB   Index   Flag   Next
其中Prior和Next分别是指向前一个和后一个结点的指针,RGB是该结点的RGB值,Index为该RGB值的索引值,Flag指示该元素是否正被使用,链表另外有两个指针分别指向链表的头结点和尾结点。
所述缓冲池的查找策略为:每次需要查找一个RGB值时,先按顺序从缓冲池中查找,如果命中,则将该结点移动到链表头,并将Flag设置为1;如果未命中,则按照前面所述的每次查找匹配算法从硬件调色板中查找。
所述缓冲池的替换策略为:缓冲池采用随机淘汰法来替换缓冲池元素,当查找没有命中缓冲池时,将会从缓冲池外部将刚找到的RGB替换到缓冲池内,此时,如果发现被选定为淘汰的元素其Flag值为1,说明该RGB值上一次正被使用,那么我们将淘汰改元素之后的一个元素,并将前一个元素的Flag值改为0,被替换进缓冲池的元素Flag值设置为1,说明它正被使用。
所述缓冲池性能分析为:调色板平均查找时间=缓冲池查找时间+缓冲池缺失率×缓冲池缺失代价。其中缓冲池缺失代价就是使用每次查找匹配算法来进行查找的时间,由于嵌入式系统中常用的颜色大概在10种左右,所以缓冲池缺失率约等于零,也就是说调色板平均查找时间约等于缓冲池查找时间。
本发明的最大优点在于优化了数字电视机顶盒的GUI系统中的图形引擎模块,使得优化后的GUI系统在绘图操作上速度有明显提高,数字电视显示效果更佳,更能满足客户视觉要求。
附图说明
图1为优化的数字电视机顶盒GUI系统结构图;
图2为数字电视机顶盒的架构图;
图3为图形引擎模块的调色板查找过程优化示意图。
具体实施方式
下面结合附图对本发明作进一步的说明:
如图2所示,本发明要优化的数字电视机顶盒GUI系统位于数字电视机顶盒架构的上层。
如图1所示,优化的数字电视机顶盒GUI系统包括三个模块:
1、GUI核心机制模块:采用C/S工作模式,包括图形设备子模块、消息机制子模块、定时器子模块、输入设备子模块等四个子模块。主要功能是为图形显示提供内存缓冲区,负责消息接受和分发工作,为上层应用提供定时器的支持,还有就是提供输入设备输入消息的收集功能。
2、图形引擎模块:具有屏幕和区域管理,调色板颜色查找调度等等功能,同时该模块向GUI对象模块提供图形输出功能,这些函数也可以直接被应用程序调用。包括:
1)基本绘图操作,如点、直线、圆、矩形和矩形填充等。
2)图像格式支持,如BMP等图像格式文件输出。
3)其他高级图形功能。
由于目前大多数GUI系统采用的调色板查找方法原始而低效,所以本发明主要在此处进行优化,最后实现一个优化过的GUI系统。
3、GUI对象模块:主要包含预定义完整的窗口环境元素集合,含多种属性和风格Window和control等,要求这些元素能够对不同的GUI事件有不同的响应。
下面就附图3描述如何优化图形引擎模块的过程:
本发明主要对于图形引擎模块做优化,因为该模块直接负责屏幕和区域管理,同时还负责从硬件调色板中查找需要调度的颜色RGB值,对于它的优化能够直接影响数字电视的显示效果。
本发明对图形引擎模块的优化主要集中在调色板的查找速度上。由于用户界面画图所需的各种颜色RGB值都是通过调色板来查找调度的,所以调色板的查找速度快不快,颜色调度准不准确,直接影响到了图形图像组件的显示速度和视觉效果。
由于调色板索引值范围从1到256,如果每次都查找匹配的RGB值,将会极大地浪费系统资源,造成图形图像组件的效率低下。因此,本发明提出了一种改进的方法,具体如下:
首先建立一个包括16个结点的双向循环链表,并且初始化该链表。初始化的过程包括申请大小为16个结点的链表内存空间,每个结点结构为:
  Prior   RGB   Index   Flag   Next
Prior和Next分别是指向前一个和后一个结点的指针,RGB是该结点的RGB值,Index为该RGB值的索引值(取值范围为1到256),Flag指示该元素是否正被使用。链表另外有两个指针分别指向链表的头结点和尾结点。
第二步将要查找的RGB值与缓冲池结点逐一比较,可以采用顺序查找的方法,在缓冲池中发现是否存在该RGB值。
如果缓冲池命中,则将上一次命中的结点Flag值修改为0,并将本次命中的结点Flag值修改为1。并且向上一级返回命中的RGB索引值。
如果缓冲池缺失,将采用原始的每次匹配算法从硬件调色板中查找RGB值,并将查找到的RGB值替换进缓冲池,然后随机淘汰除了上一次命中的结点之外的其他任一结点,最后将上一次命中的结点Flag值改为0,并将新替换进来的结点Flag值设置为1。
之所以不淘汰上一次命中的结点,是因为防止该结点在接下来的显示过程中,需要多次用到该RGB值。如果将其淘汰出缓冲池,有可能下一次又将它替换进来,如此可能存在频繁替换调度缓冲池元素的抖动现象。
最后将查找到的RGB索引值返回上一级。而上一级通过该索引值从硬件调色板中取出RGB值。
整个调色板查找过程大概涉及到三个函数,定义如下:
void Pallete_Cache_Init();
该函数没有返回值和参数,负责初始化调色板缓冲池,包括申请大小为16个结点的链表内存空间,每个结点所需空间我们在前面已说明,接下来该函数为链表赋初始值。
RGBValue Pallete_Cache_Search(int index);
该函数实现缓冲池查找过程,通过参数index在缓冲池内顺序查找RGB值。如果缓冲池命中,将命中的结点Flag值设置为1,然后返回结构为RGBValue的值,该结构保存了对应于index的RGB值;如果缓冲池缺失,调用原有的每次调色板查找匹配函数从硬件调色板中查找对应的RGB值,然后调用缓冲池替换函数将刚查找到的RGB索引值替换进缓冲池内,最后返回新查找到的RGBValue值。如果index值取值范围不在1-256之间,函数返回null,说明查找过程出错。
int Pallete_Cache_Replace(int index);
该函数实现了缓冲池的替换过程,函数输入参数为从缓冲池外部查找到的RGB索引值,此函数被缓冲池查找函数所调用。在替换过程中,采用随机函数来选定将要淘汰的结点,首先判断该结点的Flag值是否为1,如果是1,说明该结点上一次被使用。因为该RGB值接下来可能被频繁使用,为了避免频繁的将它从缓冲池置换出和置换入,函数在此干脆不置换该结点,只将该结点Flag值设为0,并将该结点的下一个结点置换出缓冲池,使用新的RGB索引值代替置换出去的结点;如果链表尾结点的Flag值是0,则直接置换尾结点。最后函数返回置换进缓冲池的RGB索引值。如果参数index取值范围不在1-256之间,函数返回0,说明置换过程出错。
调色板平均查找时间=缓冲池查找时间+缓冲池缺失率×缓冲池缺失代价
缓冲池缺失代价就是使用每次查找匹配算法来进行查找的时间。由于嵌入式系统中常用的颜色大概在10种左右,所以缓冲池缺失率约等于零,也就是说调色板平均查找时间约等于缓冲池查找时间。由此可见,本发明大大提高了调色板查找效率,从而极大提高了图形图像组件的画图效率。

Claims (6)

1、一种基于Microwindows的优化的数字家庭机顶盒GUI系统,它包括GUI核心机制模块、图形引擎模块和GUI对象模块,其特征在于所述图形引擎模块采用了优化的调色板模块:
核心机制模块采用C/S工作模式,包括图形设备子模块、消息机制子模块、定时器子模块、输入设备子模块等四个子模块,主要功能是为图形显示提供内存缓冲区,负责消息接受和分发工作,为上层应用提供定时器的支持,还有就是提供输入设备输入消息的收集功能;
图形引擎模块是最重要的部分,具有屏幕和区域管理,调色板查找等等功能,同时该模块向GUI对象模块提供图形输出功能,其中函数可以直接被应用程序调用;
GUI对象模块主要包含预定义完整的窗口环境元素集合,含多种属性和风格Window和control等,要求这些元素能够对不同的GUI事件有不同的响应。
2、根据权利要求1所述的基于Microwindows的优化的数字家庭机顶盒GUI系统,其特征在于,所述调色板模块的优化具体指增加了一个缓冲池,每次查找颜色RGB值的时候,先搜索缓冲池,若缓冲池未命中,才使用最原始的每次查找匹配算法来找出最合适的RGB索引。
3、根据权利要求2所述的基于Microwindows的优化的数字家庭机顶盒GUI系统,其特征在于,所述缓冲池结构为双向循环链表,存放了16个结点,每个结点结构如下:     Prior     RGB     Index     Flag     Next
其中Prior和Next分别是指向前一个和后一个结点的指针,RGB是该结点的RGB值,Index为该RGB值的索引值,Flag指示该元素是否正被使用,链表另外有两个指针分别指向链表的头结点和尾结点。
4、根据权利要求2所述的基于Microwindows的优化的数字家庭机顶盒GUI系统,其特征在于,所述缓冲池的查找策略为:每次需要查找一个RGB值时,先按顺序从缓冲池中查找,如果命中,则将该结点移动到链表头,并将Flag设置为1;如果未命中,则按照前面所述的每次查找匹配算法从硬件调色板中查找。
5、根据权利要求2所述的基于Microwindows的优化的数字家庭机顶盒GUI系统,其特征在于,所述缓冲池的替换策略为:缓冲池采用随机淘汰法来替换缓冲池元素,当查找没有命中缓冲池时,将会从缓冲池外部将刚找到的RGB替换到缓冲池内,此时,如果发现被选定为淘汰的元素其Flag值为1,说明该RGB值上一次正被使用,那么我们将淘汰改元素之后的一个元素,并将前一个元素的Flag值改为0,被替换进缓冲池的元素Flag值设置为1,说明它正被使用。
6、根据权利要求2所述的基于Microwindows的优化的数字家庭机顶盒GUI系统,其特征在于,所述缓冲池性能分析为:调色板平均查找时间=缓冲池查找时间+缓冲池缺失率×缓冲池缺失代价,
其中缓冲池缺失代价就是使用每次查找匹配算法来进行查找的时间,由于嵌入式系统中常用的颜色大概在10种左右,所以缓冲池缺失率约等于零,也就是说调色板平均查找时间约等于缓冲池查找时间。
CNB2007100279518A 2007-05-11 2007-05-11 一种基于Microwindows的优化的数字家庭机顶盒GUI系统 Expired - Fee Related CN100496092C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100279518A CN100496092C (zh) 2007-05-11 2007-05-11 一种基于Microwindows的优化的数字家庭机顶盒GUI系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100279518A CN100496092C (zh) 2007-05-11 2007-05-11 一种基于Microwindows的优化的数字家庭机顶盒GUI系统

Publications (2)

Publication Number Publication Date
CN101068304A true CN101068304A (zh) 2007-11-07
CN100496092C CN100496092C (zh) 2009-06-03

Family

ID=38880730

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100279518A Expired - Fee Related CN100496092C (zh) 2007-05-11 2007-05-11 一种基于Microwindows的优化的数字家庭机顶盒GUI系统

Country Status (1)

Country Link
CN (1) CN100496092C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101883207A (zh) * 2010-07-14 2010-11-10 福建新大陆通信科技股份有限公司 一种加速机顶盒显示速度的方法
CN102591657A (zh) * 2011-12-29 2012-07-18 东南大学 一种基于cpu及dsp协同机制的gui系统实现方法
WO2015032204A1 (zh) * 2013-09-06 2015-03-12 中兴通讯股份有限公司 基于网络电视的数据处理方法、终端及计算机存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101883207A (zh) * 2010-07-14 2010-11-10 福建新大陆通信科技股份有限公司 一种加速机顶盒显示速度的方法
CN102591657A (zh) * 2011-12-29 2012-07-18 东南大学 一种基于cpu及dsp协同机制的gui系统实现方法
CN102591657B (zh) * 2011-12-29 2014-06-25 东南大学 一种基于cpu及dsp协同机制的gui系统实现方法
WO2015032204A1 (zh) * 2013-09-06 2015-03-12 中兴通讯股份有限公司 基于网络电视的数据处理方法、终端及计算机存储介质

Also Published As

Publication number Publication date
CN100496092C (zh) 2009-06-03

Similar Documents

Publication Publication Date Title
CN1950878A (zh) 对系统存储器的gpu渲染
CN1991906A (zh) 在多重图形处理单元图形子系统中进行多重缓冲
CN101079033A (zh) 一种综合搜索结果的排序系统及方法
CN1905000A (zh) 用于高效图像旋转的方法和装置
CN1946152A (zh) 生成到目标菜单的向导路线的方法及其图像处理设备
CN101039396A (zh) 使用多个色度键颜色来输出图像的设备和方法
CN101079939A (zh) 串行接口设备和图像形成装置
CN1595994A (zh) 共享动态影像压缩的缓冲器的方法及装置
CN101068304A (zh) 一种基于Microwindows的优化的数字家庭机顶盒GUI系统
CN1896960A (zh) 一种快照系统及方法
CN1214648C (zh) 用于在纹理映射引擎中执行运动补偿的方法与设备
US20140115531A1 (en) Method and apparatus for rendering overlapped objects
KR102637732B1 (ko) 이미지 신호 프로세서, 상기 이미지 신호 프로세서의 동작 방법 및 상기 이미지 신호 프로세서를 포함하는 애플리케이션 프로세서
CN1831931A (zh) 允许重叠显示的显示控制器
CN1828593A (zh) 实体查找系统
CN1908947A (zh) 一种图像传感器行为仿真模型的生成装置及方法
CN1099086C (zh) 以多视窗切换实现多语即时翻译的方法及其系统
US9451181B2 (en) Optimized algorithm for construction of composite video from a set of discrete video sources
CN1928856A (zh) 地理信息的检索和显示方法及使用该方法的检索和显示系统
US20130063475A1 (en) System and method for text rendering
CN1819646A (zh) 一种实现节目单协同编辑的方法
CN1882057A (zh) 一种提供录制节目内容信息的方法
KR102621335B1 (ko) 고속 시리얼 인터페이스를 이용한 영상 획득 장치 및 그 방법
CN1666249A (zh) 管理文档的当前部分在屏幕上的显示的单元和方法
CN1787382A (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: 20090603

Termination date: 20150511

EXPY Termination of patent right or utility model