CN102208180A - 一种机顶盒快速显示矢量字体的方法 - Google Patents
一种机顶盒快速显示矢量字体的方法 Download PDFInfo
- Publication number
- CN102208180A CN102208180A CN2011101467563A CN201110146756A CN102208180A CN 102208180 A CN102208180 A CN 102208180A CN 2011101467563 A CN2011101467563 A CN 2011101467563A CN 201110146756 A CN201110146756 A CN 201110146756A CN 102208180 A CN102208180 A CN 102208180A
- 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.)
- Granted
Links
Images
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操作。
本发明具有如下优点:利用一字符循环缓存冲区,将机顶盒所需显示的字体,的字符数据,并在矢量字库中进行解析,并进行抗锯齿处理后存储在所述字符循环缓区中,并记下对应字符的字符编码和字符大小;当机顶盒对所需字体的字符进行绘制文字时,通过字符的字符编码和字符大小数据进行快速查找进行显示。本发明实现了机顶盒上的字体可以达到任意缩放的功能(矢量字体),同时加入了抗锯齿功能,并加速了机顶盒矢量字体的快速显示。
【附图说明】
图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 (7)
1.一种机顶盒快速显示矢量字体的方法,其特征在于:包括以下步骤:
步骤10、在机顶盒内存中设置一字符循环缓冲区;
步骤20、将机顶盒所需显示的字体,通过机顶盒freetype的程序在矢量字库中进行查找,得到该字体的字符数据,并在矢量字库中进行解析,并进行抗锯齿处理后存储在所述字符循环缓区中,并记下对应字符的字符编码和字符大小;
步骤30、当机顶盒对所需字体的字符进行绘制文字时,对所述字符循环缓区中的字符数据进行查找,判断是否有所需字符的字符编码和字符大小数据;是,则直接读取所述字符循环缓区中对应的数据进行绘制,显示在屏幕上;否则返回步骤20操作。
2.根据权利要求1所述的一种机顶盒快速显示矢量字体的方法,其特征在于:当所述的字符循环缓冲区的字符数据溢出时,则机顶盒删除最早的一字符数据,再进行写入操作。
3.根据权利要求1所述的一种机顶盒快速显示矢量字体的方法,其特征在于:进一步包括,当显示机顶盒菜单中的矢量字体时采用如下步骤:
步骤40、在机顶盒内存中设置一字符中间存储区,将机顶盒菜单中所需显示的字体,通过机顶盒freetype的程序在矢量字库中进行查找,得到该字体的字符数据,并在矢量字库中进行解析,并进行抗锯齿处理后转换为点阵字体;
步骤41、将所述的点阵字体存储到所述字符中间存储区中;
步骤42、当下次机顶盒菜单需要显示时,直接从缓冲区中找到对应的点阵字体读取,并显示在屏幕上。
4.根据权利要求3所述的一种机顶盒快速显示矢量字体的方法,其特征在于:所述步骤41进一步包括,将处理后的字符数据转换为点阵字体后,把这些点阵字体通过点阵字库进行编码为jpg或者png格式,然后存储到所述字符中间存储区中。
5.根据权利要求4所述的一种机顶盒快速显示矢量字体的方法,其特征在于:所述步骤42进一步包括,当下次机顶盒菜单需要显示时,直接从缓冲区中找到对应的点阵字体,并进行jpg或者png的解码操作,最终显示在屏幕上。
6.根据权利要求1或3所述的一种机顶盒快速显示矢量字体的方法,其特征在于:所述的将字体的字符数据,在矢量字体中进行解析,并进行抗锯齿处理具体为:机顶盒在矢量字体中获取字体的字符数据中的轮廓数据,所述轮廓数据用于描述来字体的形态,轮廓数据由直线和贝塞尔曲线组成;将所述轮廓数据进行抗锯齿处理,所述抗锯齿是用于精调字体。
7.根据权利要求1所述的一种机顶盒快速显示矢量字体的方法,其特征在于:步骤30中进行绘制处理是通过机顶盒的2D绘图函数进行相应的绘制。
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 true CN102208180A (zh) | 2011-10-05 |
CN102208180B 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) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426565A (zh) * | 2011-11-03 | 2012-04-25 | 北京华大智宝电子系统有限公司 | 一种具有字库处理功能的soc芯片 |
CN102855115A (zh) * | 2012-08-30 | 2013-01-02 | 广东威创视讯科技股份有限公司 | 一种基于拼接墙显示文字标注的方法及系统 |
CN103186884A (zh) * | 2011-12-30 | 2013-07-03 | 北京谊安医疗系统股份有限公司 | 一种使扫描波形平滑的方法和装置 |
CN103488441A (zh) * | 2013-09-06 | 2014-01-01 | 深圳市新国都技术股份有限公司 | 一种阿拉伯语在pos机上打印的实现方法 |
CN103745710A (zh) * | 2013-12-04 | 2014-04-23 | 西安诺瓦电子科技有限公司 | 文字信息播放装置及方法 |
CN105512308A (zh) * | 2015-12-11 | 2016-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种字库智能加速绘制方法 |
CN108287809A (zh) * | 2017-12-13 | 2018-07-17 | 苏州长风航空电子有限公司 | 一种基于vxWorks系统的矢量字体显示优化方法 |
CN112866780A (zh) * | 2019-11-28 | 2021-05-28 | 西安诺瓦星云科技股份有限公司 | 字幕循环显示方法及装置、视频处理设备系统和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0895550A (ja) * | 1994-09-28 | 1996-04-12 | Fuji Xerox Co Ltd | 文書処理装置及び文書処理方法 |
CN1534591A (zh) * | 2003-04-01 | 2004-10-06 | 松下电器产业株式会社 | 屏幕显示装置 |
CN101178729A (zh) * | 2007-12-12 | 2008-05-14 | 北京中星微电子有限公司 | 一种嵌入式系统中的文字显示方法及系统 |
CN101261825A (zh) * | 2008-04-24 | 2008-09-10 | 中兴通讯股份有限公司 | 一种移动终端系统的字库管理方法 |
WO2008126634A1 (ja) * | 2007-04-05 | 2008-10-23 | Seiko Epson Corporation | 画像生成システム、プロジェクタ、プログラム、情報記憶媒体および画像生成方法 |
CN101794566A (zh) * | 2010-01-08 | 2010-08-04 | 青岛海信移动通信技术股份有限公司 | 移动终端中确定待显示字符的字模数据的方法及相关装置 |
CN101930725A (zh) * | 2009-12-09 | 2010-12-29 | 杭州华三通信技术有限公司 | 一种字符显示方法和装置 |
CN101963953A (zh) * | 2010-09-08 | 2011-02-02 | 东莞电子科技大学电子信息工程研究院 | 一种移动富媒体播放器的缓存优化方法 |
-
2011
- 2011-06-02 CN CN 201110146756 patent/CN102208180B/zh not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0895550A (ja) * | 1994-09-28 | 1996-04-12 | Fuji Xerox Co Ltd | 文書処理装置及び文書処理方法 |
CN1534591A (zh) * | 2003-04-01 | 2004-10-06 | 松下电器产业株式会社 | 屏幕显示装置 |
WO2008126634A1 (ja) * | 2007-04-05 | 2008-10-23 | Seiko Epson Corporation | 画像生成システム、プロジェクタ、プログラム、情報記憶媒体および画像生成方法 |
CN101178729A (zh) * | 2007-12-12 | 2008-05-14 | 北京中星微电子有限公司 | 一种嵌入式系统中的文字显示方法及系统 |
CN101261825A (zh) * | 2008-04-24 | 2008-09-10 | 中兴通讯股份有限公司 | 一种移动终端系统的字库管理方法 |
CN101930725A (zh) * | 2009-12-09 | 2010-12-29 | 杭州华三通信技术有限公司 | 一种字符显示方法和装置 |
CN101794566A (zh) * | 2010-01-08 | 2010-08-04 | 青岛海信移动通信技术股份有限公司 | 移动终端中确定待显示字符的字模数据的方法及相关装置 |
CN101963953A (zh) * | 2010-09-08 | 2011-02-02 | 东莞电子科技大学电子信息工程研究院 | 一种移动富媒体播放器的缓存优化方法 |
Cited By (13)
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 | 北京谊安医疗系统股份有限公司 | 一种使扫描波形平滑的方法和装置 |
CN103186884A (zh) * | 2011-12-30 | 2013-07-03 | 北京谊安医疗系统股份有限公司 | 一种使扫描波形平滑的方法和装置 |
CN102855115A (zh) * | 2012-08-30 | 2013-01-02 | 广东威创视讯科技股份有限公司 | 一种基于拼接墙显示文字标注的方法及系统 |
CN103488441A (zh) * | 2013-09-06 | 2014-01-01 | 深圳市新国都技术股份有限公司 | 一种阿拉伯语在pos机上打印的实现方法 |
CN103488441B (zh) * | 2013-09-06 | 2016-05-11 | 深圳市新国都技术股份有限公司 | 一种阿拉伯语在pos机上打印的实现方法 |
CN103745710A (zh) * | 2013-12-04 | 2014-04-23 | 西安诺瓦电子科技有限公司 | 文字信息播放装置及方法 |
CN103745710B (zh) * | 2013-12-04 | 2015-11-25 | 西安诺瓦电子科技有限公司 | 文字信息播放装置及方法 |
CN105512308A (zh) * | 2015-12-11 | 2016-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种字库智能加速绘制方法 |
CN108287809A (zh) * | 2017-12-13 | 2018-07-17 | 苏州长风航空电子有限公司 | 一种基于vxWorks系统的矢量字体显示优化方法 |
CN108287809B (zh) * | 2017-12-13 | 2021-05-07 | 苏州长风航空电子有限公司 | 一种基于vxWorks系统的矢量字体显示优化方法 |
CN112866780A (zh) * | 2019-11-28 | 2021-05-28 | 西安诺瓦星云科技股份有限公司 | 字幕循环显示方法及装置、视频处理设备系统和存储介质 |
CN112866780B (zh) * | 2019-11-28 | 2023-09-08 | 西安诺瓦星云科技股份有限公司 | 字幕循环显示方法及装置、视频处理设备系统和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102208180B (zh) | 2013-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102208180B (zh) | 一种机顶盒快速显示矢量字体的方法 | |
US10387549B2 (en) | Procedurally expressing graphic objects for web pages | |
CN102340698B (zh) | 一种基于svg的机顶盒界面的表现方法 | |
CN108924622B (zh) | 一种视频处理方法及其设备、存储介质、电子设备 | |
JP5439454B2 (ja) | 電子コミック編集装置、方法及びプログラム | |
JP2013089199A (ja) | 電子コミック編集装置、方法及びプログラム | |
WO2013058397A1 (ja) | 電子コミック編集装置及び方法 | |
JP7165272B2 (ja) | 動画データ符号化/復号方法、装置、プログラム及びコンピュータ装置 | |
KR102292789B1 (ko) | 디스플레이장치 및 그 제어방법 | |
CN102368247A (zh) | 在手持终端上执行swf文件的方法 | |
CN105513115B (zh) | 将SWF转化为Canvas动画的方法和装置 | |
CN115439609B (zh) | 基于地图服务的三维模型渲染方法、系统、设备及介质 | |
CN106327453A (zh) | 一种拼合图片资源的方法及图片资源拼合装置 | |
CN109858421B (zh) | 一种基于可缩放矢量图形的安卓平台笔迹回放方法及装置 | |
CN110662080B (zh) | 面向机器的通用编码方法 | |
CN103186507B (zh) | 点阵字库处理方法 | |
US20130083071A1 (en) | Image display apparatus, image display method and computer readable recording medium | |
CN107665186B (zh) | 一种特有字体生成方法 | |
CN101599263B (zh) | 一种移动终端及其屏幕显示界面的显示方法 | |
CN103678261A (zh) | 一种快速显示ttf字体的方法、装置及设备 | |
CN102867322A (zh) | 三维场景中实现中文标注的方法及装置 | |
CN100401750C (zh) | 字幕编码装置 | |
CN103927300A (zh) | 一种带外语翻译内容的呈现方法 | |
US20010016068A1 (en) | Electronic document generating apparatus, electronic document generating method, and program thereof | |
CN102682265A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130417 Termination date: 20200602 |