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

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

【技术实现步骤摘要】

本专利技术涉及一种嵌入式
,尤其涉及。
技术介绍
随着国家数字电视的大规模普及,作为数字电视终端产品的数字电视机顶盒的功能也越来越强大,作为与用户使用最多的人机交互界面也越来越多样。用户对不同界面下的字体大小的要求越来越多,如在电子节目指南下的7天详细EPG数据要求字体尽量小,以便显示更多的内容。对于菜单要求字体尽量大,以便良好的操作等。对于传统数字电视机顶盒上使用的是点阵字体,在需要放大缩小时,一般使用按比例填充的方法,造成放大后的字体出现严重的锯齿,缩小的字体产生抖动,缺行的问题, 在机顶盒系统引入了对truetpye矢量字库的解析,则机顶盒对文字处理上可以达到任意缩放的功能,同时加入了抗锯齿功能,即对字体的放大和缩小后,字体保存平整光滑。但是使用矢量字体相对于点阵字体来其的处理速度会慢的多,同时造成性能下降。现矢量字体已广泛的应用,使用矢量字体可以达到任意缩放。现有技术提供一种面向嵌入式平台的矢量字库实现方法,见2010年01月13日公开的中国专利技术专利申请第 101625848公开号。该方法利用下面步骤实现(1)、用户将所需显示的目标字符集中所有字符的Unicode码,简称字符码,发送到应用程序中;O)、获取所述需显示目标字符集的X,y坐标位置,长度Ien和显示方向 direction ;(3)、将所述目标字符集中的第i个字符的字符码和用户设定的该字符的大小传递给移植到嵌入式系统中的freetype字体引擎,所述i为自1开始的自然数,且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),其轮廓就是用来描述字体的基本手段,它由直线和贝塞尔(B6zier)曲线组成。贝塞尔(B6zier)曲线是一条由三个点确定的曲线,假设这三点在矢量字库中的坐标是(Ax,Ay)、(Bx,By)和(Cx,Cy),那么曲线方程为px = (1-t) 2. Ax+2t (l_t) · Bx+t2. Cx ;py = (l_t) 2. Ay+2t (l_t) · By+t2. Cy ;其中t是作为参数,0 <= t <= 1,t为浮点数;假设两点坐标是(Ax,Ay)、(Bx,By),则直线方程为(y_Ay) / (Ay-By) = (χ-Αχ) / (Ax-Bx),其中x、y为所求的值。虽然通过直线和贝塞尔(B6zier)曲线描述了字体的表现形式,但是由于这些通过数学方法得到的数值对于人眼来说仍然不是很合适,特别是缩放到特定的大小和分辨率的时候,字体可能变得不好看,或者不清析。因此同时需要获得字库中字体精调提示 (hint),Hint是一种抗锯齿的技术,用来精调字体,让字体变得更美观,更清析;因此将所述轮廓数据进行抗锯齿处理。其中进行绘制处理是通过机顶盒的2D绘图函数进行相应的绘制,程序中使用机顶盒的2D绘图函数,包括点,线,矩形框,弧线按照读出来的轮廓数据和需要字体大小计算封闭的轮廓线的实际的需要显示的数值,然后根据计算出来的数字在显示缓冲区中使用2D 函数进行相应的绘制。值得一提的是由于truetpye的矢量字库一般体积比较大,将矢量字库应用到机顶盒中时,首先把它进行相应的压缩,如使用7z,gz等方式进行压缩。把压缩后的字库烧本文档来自技高网
...

【技术保护点】
1.一种机顶盒快速显示矢量字体的方法,其特征在于:包括以下步骤:步骤10、在机顶盒内存中设置一字符循环缓冲区;步骤20、将机顶盒所需显示的字体,通过机顶盒freetype的程序在矢量字库中进行查找,得到该字体的字符数据,并在矢量字库中进行解析,并进行抗锯齿处理后存储在所述字符循环缓区中,并记下对应字符的字符编码和字符大小;步骤30、当机顶盒对所需字体的字符进行绘制文字时,对所述字符循环缓区中的字符数据进行查找,判断是否有所需字符的字符编码和字符大小数据;是,则直接读取所述字符循环缓区中对应的数据进行绘制,显示在屏幕上;否则返回步骤20操作。

【技术特征摘要】
1.一种机顶盒快速显示矢量字体的方法,其特征在于包括以下步骤步骤10、在机顶盒内存中设置一字符循环缓冲区;步骤20、将机顶盒所需显示的字体,通过机顶盒freetype的程序在矢量字库中进行查找,得到该字体的字符数据,并在矢量字库中进行解析,并进行抗锯齿处理后存储在所述字符循环缓区中,并记下对应字符的字符编码和字符大小;步骤30、当机顶盒对所需字体的字符进行绘制文字时,对所述字符循环缓区中的字符数据进行查找,判断是否有所需字符的字符编码和字符大小数据;是,则直接读取所述字符循环缓区中对应的数据进行绘制,显示在屏幕上;否则返回步骤20操作。2.根据权利要求1所述的一种机顶盒快速显示矢量字体的方法,其特征在于当所述的字符循环缓冲区的字符数据溢出时,则机顶盒删除最早的一字符数据,再进行写入操作。3.根据权利要求1所述的一种机顶盒快速显示矢量字体的方法,其特征在于进一步包括,当显示机顶盒菜单中的矢量字体时采用如下步骤步骤40、在机顶盒内存中设置一字符中间存储区,将机顶盒菜单中所需显示的字体,通过机顶盒freetype的程序在矢量字库中进行查找,得到该字体的字符数据,并在矢量字库中进行解析,并进行抗锯齿处理后转换为点阵...

【专利技术属性】
技术研发人员:陈晓辉方立
申请(专利权)人:福建新大陆通信科技股份有限公司
类型:发明
国别省市:35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1