下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 [word格式] 高清数字视频播放机GUI文本显示的实现

[word格式] 高清数字视频播放机GUI文本显示的实现.doc

[word格式] 高清数字视频播放机GUI文本显示的实现

毒手神枭4
2017-09-25 0人阅读 举报 0 0 暂无简介

简介:本文档为《[word格式] 高清数字视频播放机GUI文本显示的实现doc》,可适用于战略管理领域

word格式高清数字视频播放机GUI文本显示的实现高清数字视频播放机GUI文本显示的实现福建电脑年第期高清数字视频播放机GUI文本显示的实现刘晨阳,傅仲逑z(东北大学软件学院辽宁沈阳东北大学秦皇岛分校河北秦皇岛)【摘要】:高清视频播放机作为嵌入式系统的中高端应用,已日渐成为消费电子市场的新兴热点本文结合作者参与一款高清数字播放机用户操作界面研制开发的实践经验,着重介绍了图文屏显技术(OSD)的概念及原理,并针对SigmaDesigns公司提供的SDK工具,用实例说明图形用户界面文本显示开发过程,字模提取算法及实现试提出一种相关嵌入式系统产品的较为通用的字符显示方案【关键词】:嵌入式系EMSLOSDGUI~F引言随着数字电视的普及国内外众多公司相继推出各自的数字电视机顶盒等相关产品高清视频播放机作为直接面向用户的新兴家电产品,为方便用户收看交互电视与视频点播其功能要求必须具有人机交互界i~(GUI)系统,在图像画面上叠加文字显示,在屏幕上显示更多的节目信息使用户可以按照自己的意图调节需求由于机顶盒的关键技术相对透明当前的机顶盒产品的功能大多相近因此良好的GUI系统就成为一个比较重要的卖点,尤其是作为用户界面(uI)重要组成部分的文本显示功能,在OSD(OnScreenDraw图文屏显技术)菜单系统中的主控菜单,设置界面,按钮,文件列表,文本框等大部分界面元素中都要应用,不仅是用户对产品设置和操作的直接交流媒介,更是决定产品人机界面性能优劣的重要衡量标准OSD(OnScreenDrawl图文屏显技术OSD技术是实现产品GUI系统的基础机顶盒中文字和位图的显示都是通过OSD(图文屏显技术)模块完成的OSD模块支持链式显示多个OSD区域支持多种颜色模式(包括RGB,YCbCr模式等),并且能够与其他显示层进行基于区域,基于颜色或基于像察的alpha混合实现多种特殊显示效果因此OSD层主要负责界面功能菜单的绘制,如按钮(buttn),文本框(text),功能图标和选择键等【I】传统的OSD实现技术是将特定场景下的OSD对象逐一用程序代码一画出来在遇到特定的UI事件时,再利用一堆ifehe判断出特定场景和作业对象并做相应的OsD处理在OSD较简单的情况下其不失为一个可行的方法,但在遇到OSD场景和模式较多的情况下这个ifelse的结构会变得很大,而且更为重要的是极易出错以及维护成本提高嵌入式设备软件开发人员需要花费太多时间和精力在UI的设计与实现上而真正重要的应用层和设备驱动层的开发会受到影响进而影响新产品的开发进度所以象SigmaDesigns公司这样的高清视频处理方案的提供者为了加速产品的开发和应用速度已经提供了专门针对其OSD处理模块的SDK本产品就是采用了这套方案在较短的开发周期内实现了产品GUI系统的研发工作EML高清视频处理器是专为音视频解码而开发的功能强大的整合芯片它包含l块ARM通用IuSc芯片,两块音频解码DSP,两块视频解码DSP还包含有专门解码流(传输流传输数字电视信号的标准)的DEMUX(解复用)芯片,其内部内建OSD处理模块直接在视频缓存内部叠加OSD信息OSD的合成和控制在视频缓存内完成具有颜色控制功能并通=过两个专用的alpha通道图EML视频处理子系统设置透明度,内通道alpha实现内置OSD位图,外通道alphal控制层叠位图,用于图层叠显和一些特殊效果生成,图l是EML高清视频处理器的视频处理子系统的功能结构图EML视频处理引擎提供了复杂的显示处理机制,格式化和输出能力视频处理子系统包括以下路或路的校正器强:主视频校正器D图像加速器多格式(视频,图像)校正器OSD(~tF图像校正器位图形校正器硬件游标(置于顶层)硬件游标模块为主复合器生成一个小的图像区域它支持分辨率最高达的位深象素,在片内SDRM中以bpp二进制位图格式存储不需要占用外部存储多格式校正器是一个解析多种视频和图像文件(位图像除外)的通用校正单元其内置的x查找表使得它支持最高达位的色深OSD校正器支持能够被视频,图像和子图渲染的全屏菜单,图像和文本,兼容处理全部的图像格式刍并且在方向过滤器的协助处理下可进行编程的边缘优化D图像加速器对移动,填充,合并和延展显示寄存器中的矩形区域等操作采用位处理机制在初始化图像时不需要处理器的运算参与这样通过这些校正器生成多路婚视频,图像流被主复合器混合成视频信息,包括定制的OSD界面区域,分为模拟或数据视频格式输出,如果需要显示汉字只需要将汉字进行必要的码制转换,然后根据汉字字符区位码给出该字符在字库中的字模位图(#yphbitmap)信息,然后将此信息转化为SD显存所需要的设置信息通过SDK中有关OSD控制的接口函数就可方便的实现有关字符的位置,大小,颜色,透明度等设置,上层UI(UserInterface)应用程序通过调用此函数来完成在UI止画字的要求,从而将硬件的底层驱动和上层应用程序隔离开方便上层应用程序的使用GUI文本显示实例字模提取计算机在显示或打印输出汉字时首先是读取这一汉字的机内码然后根据该内码求出汉字的区码和位码,从而得出汉字字模在字库中存放的地址,最后从该地址起连续读取一定数量单位的数据(即字模)进行显示或打印输出汉字的内码与其区码,位码合称为区位码存在的对应关系为:若汉字内码为十六进制xAABB则对应的区号和位号分别为:区号=xAAxA:位号xBBxA:年第期福建电脑由此我们即可得出汉字的区位码,进而可以计算出该汉字的字模点阵在字库中的位置研以x点阵字库为例,在x点阵字库中,每个汉字的字模为x点阵,每个字节存储个点这样一个汉字的字模信息将需要个字节因此该汉字在汉字库中离字库文件的起始位置的偏移量可计算为:偏移量=(×(区号一)(位号一))×L从该偏移量起连续读取字节的数据即得该字的字模实现上述思路的程序清单如下:#define”stdioh”#dellne”stdlibh”#define”deftneh”unsignedlngffset该字模在字库中的偏移voidgetzm(charstrn】,charbuf口)lFILEpHzFont=Ostaticunsignedchar*fHzFontunsignedcharqhwh取x汉字字模点阵为定义字模的区号位号pHzFont=fopen(“HZKbin”,”rb”)fseek(pHzFontSEEKENDisize=neU(pHzFont)fseek(pHzFont,,SEEKENDfHzArray=(unsignedchar*)malloc(iSize)fIead(fHzArrayiSizepHzFont)intiSizewhile(str【n】】=„{qh=(stI【n一Oxa)Oxfn:if(strn)continuewh=(strnlOxa)Oxfoffset=(qhwh)}if(pHzFont)felose(pHzFont)}开发平台加载字库文件ASCII字符机内码只占一个字节EnvisionL是SigmaDesigns公司推出的高性能开发板主要提供高清晰度数字电视终端解决方案它采用EML音视频处理整合芯片基于uClinux嵌入式操作系统开发板上提供流行的接口方案,包含USB,Ethemet,flashmedia,PCI,MiniPCI和PCMCIAfforabgcard)等通用接口并且支持svideoYPbPr,DVI和HDMI等视频信号输出EnvisionL开发板还提供完整的SDK软件开发包和交叉编译环境用户可以直接在SDK提供的API接口上编程无须与底层硬件交互配置OSD单元的结构体定义如下:StruetosddeseriptorlUnsignedlongbpp,,像素位深UnsignedlongLumaAddrI~maSizeff甍霞UnsignedlongChromaAddrChmnmSize色度structDCCOSDProfileprofilestJmctDispOSDScalerScalingConfigtypescalingconfigstruetdeeeontextdeeinfostruetEMhwlibKeyColorkeolorstJmetEMhwlibDisplayWindowinputwindowUnsignedlongalphaOalphal,,双alpha通道Booleanfading,,消隐设置UnsignedlongchipnumUnsighedlongtbOSD输出Bufferl其中的结构体变量是设置芯片内部OSD发生器和校正器的配制数据结构,设置OSD输出Bur的内部寄存器,用这样一个OSD驱动结构一旦解释平台构建完成OSD开发人员需要做的就变成利用平台支持的各种对象方块,进行摆放,堆积来构造OSD图形表现而不必要重复编写实现程序代码和关心与特定硬件平台相关的驱动程序码细节IGUI文本显示开发过程首先加载套件工具的运行库及板级驱动由于本产品方案采用uclinux操作系统作主控平台在开发阶段通过模块加载的方式,在需要时才将功能载人内核,可使内核较为精简,进而提高效率保有较大的弹性,这类可载入的模块,通常是设备驱动程序:insmodllodOemxxx接下来运行SigmaDesigns提供的SDK中的OSD寄存器探针程序:JosdbufcontrolvgafVESA一XXcX这个命令将根据具体的开发应用环境,输出设置OSD寄存器所需的相关设置参数和视频模式信息,如:videomemoryOxccdevideomemorysize=palette=OxOomode=O::其中的参数选项定义是:output:选择输出设备一fstandard:设置输出格式,默认是NTSCM视频格式一cwidthxheight:设置OSD寄存器的宽度和高度再将上个步骤中输出的配置信息作为参数,加载针对开发板的Frambuffer的驱动程序模块mamboltbO,例如:insmodmamboltbOvideomemory=xccldevideomemorysize=palette=Oxmode=::这样就可以得到OSDFramebuffer的基地址,Framebuffer机制模仿显卡的功能,将显卡硬件结构抽象掉,通过Framebuffer的读写直接对显存进行操作,可以将Framebuffer理解是显示内存的一个映像将其映射到进程地址空间之后,能直接进行读写操作,而写操作可以立即反应在屏幕上『当需要显示汉字,只需将汉字进行必要的码制转换然后根据汉字字符区位码给出该字符在字库中的字模位图(glyphbitmap)信息,然后将此信息转化为OSD显存即屏幕像素的设置位信息,实现字符的显示整个工作流程将硬件的底层驱动和上层应用程序隔离开,既方便上层应用程序的调用又达到节约开发成本和提高开发进度的要求图是此款高清视频播放机的GUI文本显示实例图高清视频播放机的GUI文本显示实例结语高清数字视频播放机产品正在中高端家电市场上掀起新的消费热潮,生产厂商为避免同质化,夺取市场先机,对直观展示产品功能的图形用户界面系统(GUI)也愈显重视,嵌入式软件开发人员必须充分认识GUI系统的重要性及开发特点SigmaDesigns作为业界专业提供高清视频播放解决方案的公司针对产品人机界面系统的开发特点提供了丰富的工具接口配置芯片内建的OSD处理模块,使其显示更为精彩的图形用户界面而文本显示是图形用户界面开发的基础本文结合研发工作实例剖析了文本显示的原理及关键技术并根据SigmaDesigns提供的SDK配置特点介绍了一种构建具有自身产品特色GUI系统的技术相信会对高清数字视频播放机等类似嵌入式产品的界面开发工作有所助益参考文献:舒国丽,金韬,任秀丽网络电视机顶盒GUI系统的设计与实现日】小型微型计算机系统,():SigmaDedgmIncEMLDatasheetP,,陈家祺一种汉字小字库的生成方法】现代计算机:下半月刊():,刘宝锋张文军机顶盒应用软件模块的设计与实现】,计算机工程,oo():

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/11

[word格式] 高清数字视频播放机GUI文本显示的实现

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利