CN102208180B - 一种机顶盒快速显示矢量字体的方法 - Google Patents

一种机顶盒快速显示矢量字体的方法 Download PDF

Info

Publication number
CN102208180B
CN102208180B CN 201110146756 CN201110146756A CN102208180B CN 102208180 B CN102208180 B CN 102208180B CN 201110146756 CN201110146756 CN 201110146756 CN 201110146756 A CN201110146756 A CN 201110146756A CN 102208180 B CN102208180 B CN 102208180B
Authority
CN
China
Prior art keywords
character
font
top box
vector
data
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
Application number
CN 201110146756
Other languages
English (en)
Other versions
CN102208180A (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.)
Fujian Newland Communication Science Technology Co Ltd
Original Assignee
Fujian Newland Communication Science Technology Co Ltd
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 Fujian Newland Communication Science Technology Co Ltd filed Critical Fujian Newland Communication Science Technology Co Ltd
Priority to CN 201110146756 priority Critical patent/CN102208180B/zh
Publication of CN102208180A publication Critical patent/CN102208180A/zh
Application granted granted Critical
Publication of CN102208180B publication Critical patent/CN102208180B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Controls And Circuits For Display Device (AREA)

Abstract

本发明提供一种机顶盒快速显示矢量字体的方法,先在机顶盒内存中设置一字符循环缓冲区;将机顶盒所需显示的字体,通过机顶盒freetype的程序在矢量字库中进行查找,得到该字体的字符数据,并在矢量字库中进行解析,并进行抗锯齿处理后存储在所述字符循环缓区中,并记下对应字符的字符编码和字符大小;当机顶盒对所需字体的字符进行绘制文字时,对所述字符循环缓区中的字符数据进行查找,将找到的数据直接从所述字符循环缓区中读取出来进行绘制,显示在屏幕上。本发明利用一字符循环缓存冲区,并通过字符的字符编码和字符大小数据进行快速查找,加速了机顶盒矢量字体的快速显示。

Description

一种机顶盒快速显示矢量字体的方法
【技术领域】
本发明涉及一种嵌入式技术领域,尤其涉及一种机顶盒快速显示矢量字体的方法。
【背景技术】
随着国家数字电视的大规模普及,作为数字电视终端产品的数字电视机顶盒的功能也越来越强大,作为与用户使用最多的人机交互界面也越来越多样。用户对不同界面下的字体大小的要求越来越多,如在电子节目指南下的7天详细EPG数据要求字体尽量小,以便显示更多的内容。对于菜单要求字体尽量大,以便良好的操作等。
对于传统数字电视机顶盒上使用的是点阵字体,在需要放大缩小时,一般使用按比例填充的方法,造成放大后的字体出现严重的锯齿,缩小的字体产生抖动,缺行的问题,在机顶盒系统引入了对truetpye矢量字库的解析,则机顶盒对文字处理上可以达到任意缩放的功能,同时加入了抗锯齿功能,即对字体的放大和缩小后,字体保存平整光滑。但是使用矢量字体相对于点阵字体来其的处理速度会慢的多,同时造成性能下降。
现矢量字体已广泛的应用,使用矢量字体可以达到任意缩放。现有技术提供一种面向嵌入式平台的矢量字库实现方法,见2010年01月13日公开的中国发明专利申请第101625848公开号。该方法利用下面步骤实现:
(1)、用户将所需显示的目标字符集中所有字符的Unicode码,简称字符码,发送到应用程序中;
(2)、获取所述需显示目标字符集的x,y坐标位置,长度len和显示方向direction;
(3)、将所述目标字符集中的第i个字符的字符码和用户设定的该字符的大小传递给移植到嵌入式系统中的freetype字体引擎,所述i为自1开始的自然数,且1≤i≤len,该引擎通过所接受到的字符码在新型的Truetype矢量字库文件中找到该字符,并将找到的轮廓信息转化成位图信息;
(4)、所述移植到嵌入式系统中的freetype字体引擎将第i个字符的位图信息、该字符的大小信息渲染成第i个字符的字形信息;
(5)、获取所述第i个字符的字形信息后,调用图形设备接口层即GDI层中字体模块绘制接口函数,在屏幕上绘制并显示该字符;
(6)、调用嵌入式系统中自带的字体解码器接口函数,解码所述第i个字符的字形信息,并通过采用本发明提供的一种颜色混合和像素点的过滤方法,将所述字形信息显示在屏幕上;
(7)、执行i++,若i≤len,则转到步骤(3)运行,若i>len,则结束执行,所述字符在屏幕中显示完毕。
后现有技术还提供了一种显示矢量字体的方法和终端,如2010年08月11日公开的中国发明专利申请第101800043A公开号,其实现方法是读取预先保存的当前的矢量字体的位置信息;生成所述当前的矢量字体的描述信息,并利用所述描述信息和所述当前的矢量字体的位置信息,对所述当前的矢量字体进行显示。该方法要配合其特定的终端设备才能实现,且显示的速度并没得到很好的提高。
【发明内容】
本发明为了解决的技术存在的问题,提供了一种机顶盒快速显示矢量字体的方法,加速了矢量字体在机顶盒中的快速显示。
本发明是这样实现的:一种机顶盒快速显示矢量字体的方法,其特征在于:包括以下步骤:
步骤10、在机顶盒内存中设置一字符循环缓冲区;
步骤20、将机顶盒所需显示的字体,通过机顶盒freetype的程序在矢量字库中进行查找,得到该字体的字符数据,并在矢量字库中进行解析,并进行抗锯齿处理后存储在所述字符循环缓冲区中,并记下对应字符的字符编码和字符大小;
步骤30、当机顶盒对所需显示的字体的字符进行绘制文字时,对所述字符循环缓冲区中的字符数据进行查找,判断是否有所需显示的字体的字符的字符编码和字符大小数据;是,则直接读取所述字符循环缓冲区中对应的数据进行绘制,显示在屏幕上;否则返回步骤20操作;
当显示机顶盒菜单中的矢量字体时采用如下步骤:
步骤40、在机顶盒内存中设置一字符中间存储区,将机顶盒菜单中所需显示的字体,通过机顶盒freetype的程序在矢量字库中进行查找,得到该字体的字符数据,并在矢量字库中进行解析,并进行抗锯齿处理后转换为点阵字体;所述将字体的字符数据,在矢量字库中进行解析,并进行抗锯齿处理具体为:机顶盒在矢量字库中获取字体的字符数据中的轮廓数据,所述轮廓数据用于描述字体的形态,轮廓数据由直线和贝塞尔曲线组成;将所述轮廓数据进行抗锯齿处理,所述抗锯齿是用于精调字体;
步骤41、将所述的点阵字体存储到所述字符中间存储区中;具体为:将处理后的字符数据转换为点阵字体后,把这些点阵字体通过点阵字库进行编码为jpg或者png格式,然后存储到所述字符中间存储区中;
步骤42、当下次机顶盒菜单需要显示时,直接从字符中间存储区中找到对应的点阵字体读取,并显示在屏幕上。
本发明具有如下优点:利用一字符循环缓存冲区,将机顶盒所需显示的字体,的字符数据,并在矢量字库中进行解析,并进行抗锯齿处理后存储在所述字符循环缓区中,并记下对应字符的字符编码和字符大小;当机顶盒对所需字体的字符进行绘制文字时,通过字符的字符编码和字符大小数据进行快速查找进行显示。本发明实现了机顶盒上的字体可以达到任意缩放的功能(矢量字体),同时加入了抗锯齿功能,并加速了机顶盒矢量字体的快速显示。
【附图说明】
图1为本发明方法流程示意图。
【具体实施方式】
参照图1所述,一种机顶盒快速显示矢量字体的方法,包括以下步骤:
步骤10、在机顶盒内存中设置一字符循环缓冲区;
步骤20、将机顶盒所需显示的字体,通过机顶盒freetype的程序在矢量字库中进行查找,得到该字体的字符数据,并在矢量字库中进行解析,并进行抗锯齿处理后存储在所述字符循环缓区中,并记下对应字符的字符编码和字符大小;
步骤30、当机顶盒对所需字体的字符进行绘制文字时,对所述字符循环缓区中的字符数据进行查找,判断是否有所需字符的字符编码和字符大小数据;是,则直接读取所述字符循环缓区中对应的数据进行绘制,显示在屏幕上;否则返回步骤20操作;当所述的字符循环缓冲区的字符数据溢出时,则机顶盒删除最早的一字符数据,再进行写入操作。
由于机顶盒中菜单的字体一般是常规,为了提高机顶盒菜单中的矢量字体显示的效率,也可通过如下步骤实现:
步骤40、在机顶盒内存中设置一字符中间存储区,将机顶盒菜单中所需显示的字体,通过机顶盒freetype的程序在矢量字库中进行查找,得到该字体的字符数据,并在矢量字库中进行解析,并进行抗锯齿处理后转换为点阵字体;其中为了减少机顶盒的内存空间,将处理后的字符数据转换为点阵字体后,把这些点阵字体通过点阵字库进行编码为jpg或者png格式,然后存储到所述字符中间存储区中;
步骤41、当下次机顶盒菜单需要显示时,直接从缓冲区中找到对应的点阵字体,并进行jpg或者png的解码操作,最终显示在屏幕上。
上述的将字体的字符数据,在矢量字体中进行解析,并进行抗锯齿处理,具体为:机顶盒在矢量字体中获取字体的字符数据中的轮廓数据(outline),其轮廓就是用来描述字体的基本手段,它由直线和贝塞尔(Bézier)曲线组成。贝塞尔(Bézier)曲线是一条由三个点确定的曲线,假设这三点在矢量字库中的坐标是(Ax,Ay)、(Bx,By)和(Cx,Cy),那么曲线方程为:
px=(1-t)2.Ax+2t(1-t).Bx+t2.Cx;py=(1-t)2.Ay+2t(1-t).By+t2.Cy;
其中t是作为参数,0<=t<=1,t为浮点数;
假设两点坐标是(Ax,Ay)、(Bx,By),则直线方程为:(y-Ay)/(Ay-By)=(x-Ax)/(Ax-Bx),其中x、y为所求的值。
虽然通过直线和贝塞尔(Bézier)曲线描述了字体的表现形式,但是由于这些通过数学方法得到的数值对于人眼来说仍然不是很合适,特别是缩放到特定的大小和分辨率的时候,字体可能变得不好看,或者不清析。因此同时需要获得字库中字体精调提示(hint),Hint是一种抗锯齿的技术,用来精调字体,让字体变得更美观,更清析;因此将所述轮廓数据进行抗锯齿处理。
其中进行绘制处理是通过机顶盒的2D绘图函数进行相应的绘制,程序中使用机顶盒的2D绘图函数,包括点,线,矩形框,弧线按照读出来的轮廓数据和需要字体大小计算封闭的轮廓线的实际的需要显示的数值,然后根据计算出来的数字在显示缓冲区中使用2D函数进行相应的绘制。
值得一提的是:由于truetpye的矢量字库一般体积比较大,将矢量字库应用到机顶盒中时,首先把它进行相应的压缩,如使用7z,gz等方式进行压缩。把压缩后的字库烧写在flash存储器上。当开机时,把flash上的字库导入内存并进行相应的解压。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (4)

1.一种机顶盒快速显示矢量字体的方法,其特征在于:包括以下步骤:
步骤10、在机顶盒内存中设置一字符循环缓冲区;
步骤20、将机顶盒所需显示的字体,通过机顶盒freetype的程序在矢量字库中进行查找,得到该字体的字符数据,并在矢量字库中进行解析,并进行抗锯齿处理后存储在所述字符循环缓冲区中,并记下对应字符的字符编码和字符大小;
步骤30、当机顶盒对所需显示的字体的字符进行绘制文字时,对所述字符循环缓冲区中的字符数据进行查找,判断是否有所需显示的字体的字符的字符编码和字符大小数据;是,则直接读取所述字符循环缓冲区中对应的数据进行绘制,显示在屏幕上;否则返回步骤20操作;
当显示机顶盒菜单中的矢量字体时采用如下步骤:
步骤40、在机顶盒内存中设置一字符中间存储区,将机顶盒菜单中所需显示的字体,通过机顶盒freetype的程序在矢量字库中进行查找,得到该字体的字符数据,并在矢量字库中进行解析,并进行抗锯齿处理后转换为点阵字体;所述将字体的字符数据,在矢量字库中进行解析,并进行抗锯齿处理具体为:机顶盒在矢量字库中获取字体的字符数据中的轮廓数据,所述轮廓数据用于描述字体的形态,轮廓数据由直线和贝塞尔曲线组成;将所述轮廓数据进行抗锯齿处理,所述抗锯齿是用于精调字体;
步骤41、将所述的点阵字体存储到所述字符中间存储区中;具体为:将处理后的字符数据转换为点阵字体后,把这些点阵字体通过点阵字库进行编码为jpg或者png格式,然后存储到所述字符中间存储区中;
步骤42、当下次机顶盒菜单需要显示时,直接从字符中间存储区中找到对应的点阵字体读取,并显示在屏幕上。
2.根据权利要求1所述的一种机顶盒快速显示矢量字体的方法,其特征在于:当所述的字符循环缓冲区的字符数据溢出时,则机顶盒删除最早的一字符数据,再进行写入操作。
3.根据权利要求1所述的一种机顶盒快速显示矢量字体的方法,其特征在于:所述步骤42进一步包括,当下次机顶盒菜单需要显示时,直接从字符中间存储区中找到对应的点阵字体,并进行jpg或者png的解码操作,最终显示在屏幕上。
4.根据权利要求1所述的一种机顶盒快速显示矢量字体的方法,其特征在于:步骤30中进行绘制处理是通过机顶盒的2D绘图函数进行相应的绘制。
CN 201110146756 2011-06-02 2011-06-02 一种机顶盒快速显示矢量字体的方法 Expired - Fee Related CN102208180B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110146756 CN102208180B (zh) 2011-06-02 2011-06-02 一种机顶盒快速显示矢量字体的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110146756 CN102208180B (zh) 2011-06-02 2011-06-02 一种机顶盒快速显示矢量字体的方法

Publications (2)

Publication Number Publication Date
CN102208180A CN102208180A (zh) 2011-10-05
CN102208180B true CN102208180B (zh) 2013-04-17

Family

ID=44696983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110146756 Expired - Fee Related CN102208180B (zh) 2011-06-02 2011-06-02 一种机顶盒快速显示矢量字体的方法

Country Status (1)

Country Link
CN (1) CN102208180B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102426565A (zh) * 2011-11-03 2012-04-25 北京华大智宝电子系统有限公司 一种具有字库处理功能的soc芯片
CN103186884B (zh) * 2011-12-30 2016-10-05 北京谊安医疗系统股份有限公司 一种使扫描波形平滑的方法和装置
CN102855115A (zh) * 2012-08-30 2013-01-02 广东威创视讯科技股份有限公司 一种基于拼接墙显示文字标注的方法及系统
CN103488441B (zh) * 2013-09-06 2016-05-11 深圳市新国都技术股份有限公司 一种阿拉伯语在pos机上打印的实现方法
CN103745710B (zh) * 2013-12-04 2015-11-25 西安诺瓦电子科技有限公司 文字信息播放装置及方法
CN105512308A (zh) * 2015-12-11 2016-04-20 中国航空工业集团公司西安航空计算技术研究所 一种字库智能加速绘制方法
CN108287809B (zh) * 2017-12-13 2021-05-07 苏州长风航空电子有限公司 一种基于vxWorks系统的矢量字体显示优化方法
CN112866780B (zh) * 2019-11-28 2023-09-08 西安诺瓦星云科技股份有限公司 字幕循环显示方法及装置、视频处理设备系统和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101794566A (zh) * 2010-01-08 2010-08-04 青岛海信移动通信技术股份有限公司 移动终端中确定待显示字符的字模数据的方法及相关装置
CN101930725A (zh) * 2009-12-09 2010-12-29 杭州华三通信技术有限公司 一种字符显示方法和装置
CN101963953A (zh) * 2010-09-08 2011-02-02 东莞电子科技大学电子信息工程研究院 一种移动富媒体播放器的缓存优化方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0895550A (ja) * 1994-09-28 1996-04-12 Fuji Xerox Co Ltd 文書処理装置及び文書処理方法
JP2004302324A (ja) * 2003-04-01 2004-10-28 Matsushita Electric Ind Co Ltd オンスクリーン表示装置
JP4193073B2 (ja) * 2007-04-05 2008-12-10 セイコーエプソン株式会社 画像生成システム、プロジェクタ、プログラム、情報記憶媒体および画像生成方法
CN100507921C (zh) * 2007-12-12 2009-07-01 北京中星微电子有限公司 一种嵌入式系统中的文字显示方法及系统
CN101261825B (zh) * 2008-04-24 2010-06-16 中兴通讯股份有限公司 一种移动终端系统的字库管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101930725A (zh) * 2009-12-09 2010-12-29 杭州华三通信技术有限公司 一种字符显示方法和装置
CN101794566A (zh) * 2010-01-08 2010-08-04 青岛海信移动通信技术股份有限公司 移动终端中确定待显示字符的字模数据的方法及相关装置
CN101963953A (zh) * 2010-09-08 2011-02-02 东莞电子科技大学电子信息工程研究院 一种移动富媒体播放器的缓存优化方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开平8-95550A 1996.04.12

Also Published As

Publication number Publication date
CN102208180A (zh) 2011-10-05

Similar Documents

Publication Publication Date Title
CN102208180B (zh) 一种机顶盒快速显示矢量字体的方法
CN102340698B (zh) 一种基于svg的机顶盒界面的表现方法
JP5439456B2 (ja) 電子コミック編集装置、方法及びプログラム
CN100364322C (zh) 一种动态生成字幕图像数据及字幕数据流的方法
CN111899322B (zh) 视频处理方法、动画渲染sdk和设备及计算机存储介质
CN101630311B (zh) 一种文字的显示方法及显示设备
CN101192212B (zh) 一种在终端上实现带边框字体的系统与方法
CN105307030A (zh) 弹幕显示方法及装置
JP7165272B2 (ja) 動画データ符号化/復号方法、装置、プログラム及びコンピュータ装置
CN110110152A (zh) 思维导图的处理方法、装置、计算机设备和存储介质
CN105956133B (zh) 智能终端上显示文件的方法及装置
CN109858421B (zh) 一种基于可缩放矢量图形的安卓平台笔迹回放方法及装置
KR102292789B1 (ko) 디스플레이장치 및 그 제어방법
CN110662080B (zh) 面向机器的通用编码方法
CN105513115A (zh) 将SWF转化为Canvas动画的方法和装置
CN106327453A (zh) 一种拼合图片资源的方法及图片资源拼合装置
WO2023284295A1 (zh) 一种移动端网页视频背景处理方法、系统、储存介质
CN111126083A (zh) 一种终端画面实时翻译方法和系统
CN114466222A (zh) 一种视频合成方法、装置、电子设备及存储介质
CN102867322A (zh) 三维场景中实现中文标注的方法及装置
CN103067774A (zh) 一种机顶盒显示外挂字幕的方法及系统
CN103489268B (zh) 一种用于pos平台的阿拉伯语显示方法
CN102176205A (zh) 链码图像序列存储的文件格式及解码算法
CN103927300A (zh) 一种带外语翻译内容的呈现方法
CN103491416A (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: 20130417

Termination date: 20200602

CF01 Termination of patent right due to non-payment of annual fee