基于高通手机平台汉字显示解决方案

发布者:科技先锋最新更新时间:2007-11-19 来源: 半导体应用关键字:函数  字符  像素  接口 手机看文章 扫描二维码
随时随地手机看文章
引 言

高通作为全球领先CDMA手机平台供应商,在国内得到广大手机设计公司和手机厂商的青睐,其中包括德信无线、上海精佑、赛龙上海和UT斯达康等国内许多手机设计公司和手机厂商。为了支持国内市场,汉字显示是必不可少的,而高通手机平台上没有直接提供完备的汉字显示解决方案,本文就这个热点论题,通过对高通手机平台字符显示特点进行了分析,具体地给出了基于BMP文件格式存储汉字字库的一种汉字显示方案。

2 高通手机平台Brew字符显示原理

高通手机平台Brew字符显示由两部分构成,一部分为上层应用提供一个统一的字符显示接口部分,另一部分为某一种字符集或字体具体实现部分,这两个部分是通过虚函数机制绑定在一起。在Brew字符显示接口统一定义如下:

IFONT AddRef():用于引用记数功能;

IFONT_Release():释放当前应用程序字符显示实例;

IFONT_QueryInterface():他根据字符ID检索当前应用程序字符显示实例;

IFON_DrawText():他用于显示具体的文本;

IFONT_MeasureText():他用于计算以象素为单位文本的大小和字符的总数目;

IFONT_GetFontInfo():他用于检索字符相关信息,比如ascent和descent的值。

从上面的显示接口定义可见,系统的设计者将字符显示接口视为一个脱离依赖具体字符显示的转换模块,而字符具体实现部分则需要根据显示接口每个接口函数给出一个标准实现,功能就是针对某一种字符实现文本显示,计算文本大小,返回该种字体一些信息等。

例如:高通关于ASCII字符显示的参考设计中就定义了一组与显示接口一致的一组函数:

然后通过指针赋值方式把这组函数与接口函数对应部分关联起来,即在函数AEEVarBitFont_NewFromBBF内部通过指针赋值方式使显示接口部分与具体实现部分绑定在一起。

上层应用模块调用字符显示模块的过程如下:

3 高通手机平台上汉宇字库的BMP文件存储结构的设计

在手机平台上汉字显示可以采用国标码或Unicode任何一种编码方案,但为了信息交换方便,大多数手机开发采用Unicode显示方式,这里以Unicode为例来说明。传统的汉字存储结构采用数组方式,明显地,字符集这种存储方式无法直观地显示给用户和软件开发者,用户和软件开发者也很难了解字符集内真正包含了那些字符,再者,当显示汉字时,系统需要将汉字字模存储方式转换为屏幕显示方式,这将会增加系统开销,降低运行效率。这里设计了用BMP文件格式来存储汉字字库,他保证整个存储空间没有明显增加的同时,能够使用户直观地了解字符集内包含了那些字符,提高系统运行效率。

与现有其他的汉字存储结构和汉字显示方法相比,该方法具有3个主要特点:

直观性强 由于采用BMP图片存储结构方式,可以浏览汉字字符集中包含的汉字;

运行效率高 由于采用BMP图片存储结构方式,使得单个字符的字模存储方式与屏幕显示方式保持一致,当显示汉字时,不需要把汉字字模存储方式转换为屏幕显示方式;

可移植性强、开发周期较短 对上层应用模块汉字显示耦合得更好,由于这种方法尽可能地采用了Brew系统现有的字符显示参考设计和已有的显示接口机制。

由于汉字的Unicode编码范围为u4E00~u9FA5和uF900~uFA2D,如果不在这个范围内就不是汉字了。为了讨论方便,这里考虑汉字Unicode编码范围为u4E00~ugFA5,总计有20 901个汉字,他们是连续编码的。

16*16汉字字库BMP文件格式描述如下:

从上面的存储结构可知,他实际就是一幅BMP格式的汉字字库图片,这幅BMP图片就是汉字字符集的二进制表示,他是从BMP图片格式转换过来的。这里每个字符字模对应BMP图片中一个图片片,字模存储方式与屏幕显示方式是一致的。

4 基于BMP文件存储结构汉字显示实现

实现本地汉字显示较早的一种方案基于Native UI,他不需依赖Brew显示接口。目前较多的汉字显示方案会涉及到Brew显示接口,常见汉字显示解决方案为:

(1) 基于Native UI方案,实现汉字显示。完全自己开发一套点阵存储、点阵获取、点阵显示、汉字显示函数,使用者使用特定的汉字显示函数把汉字显示出来。该方法具有最大的灵活性,甚至不理睬Brew任何显示接口机制,直接在上层组件里实现,但这种方法使程序可移植性比较差,对第三方应用程序汉字显示支持也不方便。

(2) 基于Brew方案,实现汉字显示。自己开发点阵存储、点阵获取、点阵显示,改造Brew的显示接口函数,使其能判断汉字码,一旦判断出汉字码,则使用自己开发的点阵获取、点阵显示等把汉字显示出来。然后把该自己开发的显示函数绑接到Brew显示接口上。该方法对点阵的操作更加灵活,工作量较大,开发周期较长,这种方法比较适用已有成熟的点阵操作方法开发者。

这里利用Brew对BMP文件格式的支持,使用BMP文件格式实现对汉字的点阵存储、点阵获取、点阵显示的全过程,并使用Brew的显示函数实现汉字码到汉字显示。这种方法尽可能地使用了Brew系统现有的字符显示参考设计和已有的显示接口机制,开发周期较短,是最根本的解决方法,他使得Brew的其他上层应用模块能很方便实现汉字显示。这种方法使程序通用性好,可移植性强,支持第三方应用程序开发也较方便等特点。

为了支持第三方软件厂商集成不同国家文字显示,高通手机平台提供一个绑定显示接口和对应的实现部分的接口函数,通过这个函数就可以把各种不同文字类型显示方式绑定到Brew统一的显示接口上,软件厂商只需要根据具体文字的显示方式实现具体的接口函数即可。这个接口如下:

各个参数介绍如下

IFont**ppif:汉字接口函数;

const uint16*pwGlyphs:汉字码表;

int cntGlyphs:汉字总数目;

const CHAR*pbyBitmap:用BMP表示的汉字字库;

int cbBitmap:用BMP表示的汉字字库总的字节数目;

int xCHARWid:每个汉字宽度;

int yCHARHeight:每个汉字高度;

int yCHARDescent:点阵打点开始位置在baseline之下的偏移;

uint16 wUndefGlyph:未定义的ASCII字符数目;

int nHalfCHARs:ASCII字符数目;

UTFONTTYPE FontType:汉字类型。

为了实现BMP文件格式存储结构字库的汉字显示方式,主要工作集中于下面两个方面:

(1) 定义创建字体实例接口函数

在Brew方案中,上层应用模块都是通过ID创建字体实例,这里可以按照如下方式定义创建字体接口函数。

(2) 实现汉字显示一组具体的接口函数

由于Brew方案中已经实现了基于BMP格式对ASCII码显示支持方式,所以显示接口函数IFONT_Ad-dRef(),IFONT_Release(),IFONT_QueryInterface的功能已经实现,而汉字显示方式这三个函数要实现的功能与ASCII是一致的,不需要改动。函数IFONT GetFon-tInfo对于汉字显示不适用,因为汉字的ascent和descent的值为0,这里只要考虑IFONT_DrawText()和IFONTMeasureText()两个函数的实现问题。

为了实现IFONT_MeasureText(),在他对应的实现函数内部增加计算一个汉字宽度的相应代码。

为了实现IFONT_DrawText(),由于Brew提供了基于BMP格式对ASCII码显示支持方式,对于汉字显示关键是计算汉字UNICODE码与BMP格式的汉字字模的对应关系。由于汉字的UNICODE码是连续,在BMP图片中字模已经按照UNICODE码顺序排列,对于任何汉字只要计算他与第一个汉字(4E00)的偏移量,然后根据偏移量直接拷贝BMP图片中该字符的图片片到显示缓冲区即可,不需要把单个字符字模转换为屏幕显示方式,提高了系统显示速度。

5 注意事项

在实际开发中,手机软件开发商一般以点阵形式从第三方购买字库,为了能够应用第三方字库到高通手机平台上需要转换成BMP格式的文件。另一个要注意的问题是这里把汉字显示作为单独的一个字符集来考虑的,在实际中可以把ASCII,汉字和汉字偏旁部首构成一个字符集来考虑。只要根据不同的码值分别计算他们各自对应BMP图形的偏移量即可。

6 结 语

本文就高通手机平台关于汉字存储和汉字显示方式这一热门论题进行了详尽讨论,论述高通手机平台Brew字符显示原理、传统汉字存储结构的不足和不同汉字显示方案的特点,并在论述这些原理和方案的同时提出了一种具有通用强,移植方便和容易扩展的汉字显示方案,也提出了在实际应用需要注意问题。

关键字:函数  字符  像素  接口 引用地址:基于高通手机平台汉字显示解决方案

上一篇:光强度自动报警控制系统的设计
下一篇:基于EZ-Color控制器的高亮LED照明混色方案

推荐阅读最新更新时间:2024-05-13 18:39

蓝牙模块和OMAP5910的接口技术
   引言   蓝牙技术是一种无线数据与语音通信的开放性全球规范,是一种用于替代移动设备或固定电子设备之间连接电缆的近距离无线链路,蓝牙工作在全球通用的2.4GHz频段,数据速率为1Mb/s,采用时分双工传输技术实现全双工传输。作为取代数据电缆的短距离无线通信技术,蓝牙支持点对点以及点对多点的通信,以无线方式将家庭或办公室中的各种数据和语音设备连成一个微微网(Pico-net),几个微微网还可以进一步实现互联,形成一个分布式网络(scatter-net),从而在这些连接设备之间实现快捷而方便的通信。本文介绍蓝牙接口在嵌入式数字信号处理器OMAP5910上的实现,DSP对模拟信号进行采样,并对A/D变换后的数字信号进行处理,通过
[应用]
如何实现大信号输出的硅应变计与模数转换器的接口
     电桥是精密测量电阻或其他模拟量的一种有效的方法。本文介绍了如何实现具有较大信号输出的硅应变计与模数转换器(ADC)的接口,特别是Σ-Δ ADC,当使用硅应变计时,它是一种实现压力变送器的低成本方案   硅应变计   硅应变计的优点在于高灵敏度,它通过感应由应力引发的硅材料体电阻变化来检测压力。相比于金属箔或粘贴丝式应变计,其输出通常要大一个数量级。这种 硅应变计的输出信号较大,可以与较廉价的电子器件配套使用。但是,这些小而脆器件的安装和连线非常困难,因而增加了成本,限制了它们在粘贴式应变计应用中 的使用。   不过,用MEMS工艺制作的硅压力传感器却克服了这些弊病。这种MEMS压力传感器采用了标准的半导体工艺
[嵌入式]
基于FPGA的高带宽存储接口设计
  如今,越来越多的应用场景都需要FPGA能够和外部存储器之间建立数据传输通道,如视频、图像处理等领域,并且对数据传输通道的带宽也提出了较大的需求,这就导致了FPGA和外部Memory接口的实际有效带宽成为了制约系统性能的瓶颈,所以Memoiy控制器的效能,则成为提升系统性能的关键要素。Altera最新一代28nm器件中的Cyclone V和Arria V系列FPGA都集成了硬核存储控制器HMC(Hard Memory Controll er)单元,相比于以往的软核解决方案,硬核解决方案能够在帮助降低系统功耗的同时显著提升接口工作性能,适合应用于对Memory接口带宽有较大需求的场合。   1 存储器接口的底层架构   Q
[嵌入式]
基于AVR和TMS320VC5402的HPI接口通信设计
1.前 言 TMS320VC5402(简称VC5402)是TI公司的DSP处理器,具有高级的数据处理结构和丰富的片内资源。但是VC5402 DSP内部不具有可编程的非易失片内存储器,所以为了保存程序代码和参数表,一般情况下要外扩一片存储器。VC5402可用的通用输入输出口(I/O port)少,软件上对I/O口的控制不灵活,没有对I/O口按位控制的指令,且具有流水线延迟。多不具有通用的通信接口如UART接口,CAN总线接口等,对控制的支持功能较少。AVR(Advanced RISC Architecture)单片机是ATMEL公司的flash型单片机,广泛应用于数据处理和控制领域,具有丰富的片内资源和灵活的接口形式。片内往
[单片机]
基于AVR和TMS320VC5402的HPI<font color='red'>接口</font>通信设计
基于C8051F021和ADS7846的触摸屏系统设计
  0 引言   随着现代电子产品设计技术的不断发展,电子产品的设计,尤其是人机交互界面的设计越来越趋向于人性化。触摸屏凭借其独特的操作特性,应用日益广泛,它配合微控制器使用,能使嵌入式设备或手持式设备具有更加良好的人机交互界面,操作更加方便快捷。本文给出了一个基于C8051F021单片机和ADS7846 触摸屏控制器的触摸屏控制系统的设计方法。   1 触摸屏工作原理   触摸屏有电阻式、电容式、红外线式、表面声波式等多种。其中电阻式触摸屏是目前应用较为广泛的一种,可分为四线、五线、七线等几类。其中四线制电阻式触摸屏采用的是四线电阻模拟量技术,即两个阻性层工作时,每层均加有5 V恒定电压,一个竖直方向,一个水平方向,含四根
[单片机]
TM1300 DSP系统以太网接口的设计
  1 概述   随着网络技术、多媒体技术的飞速发展,基于IP网络的多媒体应用越来越广泛。 TM1300 是Philips公司推出的一款高性能多媒体数字信号处理器芯片,适合于实时性强的音视频处理应用,可广泛应用于会议电视、可视电话、远程图像监控等应用场合。具有广阔的应用前景。   根据具体的基于IP网络上的多媒体应用系统的需要,采集的音视频数据经压缩处理后,一般要传送到远程终端或控制中心,这时就需要解决 DSP 应用系统与IP网络接口的问题。   考虑到国内局域网大部分是以太网,随着交换式网络、宽带网络的发展,使得基于以太网接入IP网络上的应用有着现实意义。    TM1300 可以作为PC机的一个外设工作,此时可直接采用PC
[嵌入式]
TM1300 DSP系统以太网<font color='red'>接口</font>的设计
DSP与AD转换器的接口电路设计
    摘要:在以DSP为核心的数字信号处理系统中,模数转换是系统重要的组成部分。作者以 德州仪器 公司的TMS320C6203B与ADS5422为例,详细说明了DSP与AD转换器的接口电路设计方法。最后还介绍了DSP控制数据采集的软件流程。 关键词:DSP;AD转换器;接几电路 0 引言     在以DSP为核心的数字信号处理系统中,AD转换是系统重要的组成部分。因为往往需要进行信号分析、处理的对象是模拟量,例如语音信号、各种传感器输出的模拟信号。这些信号经过放大、滤波及A/D转换后,从模拟信号转换为数字信号,再由DSP芯片对这些数字信号按照某种算法进行处理。     德州仪器 公司(TI)的TMS320C6000系列DSP是
[嵌入式]
DSP与AD转换器的<font color='red'>接口</font>电路设计
单片机常用数字滤波函数
/////////////////////////////////限副滤波/////////////////// #define A 10 //A值可根据实际情况调整 char value; //value为有效值 char filter() { char new_value; //new value为当前采样值 new value= get _ad(); if ((new_value-value A)‖(value-new_value A) return value; return new_value; } /////////////////////////中位值滤波//////////////////
[单片机]
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved