CN102141916B - 嵌入式设备及其在osd界面显示语言文字的方法 - Google Patents

嵌入式设备及其在osd界面显示语言文字的方法 Download PDF

Info

Publication number
CN102141916B
CN102141916B CN 201110021998 CN201110021998A CN102141916B CN 102141916 B CN102141916 B CN 102141916B CN 201110021998 CN201110021998 CN 201110021998 CN 201110021998 A CN201110021998 A CN 201110021998A CN 102141916 B CN102141916 B CN 102141916B
Authority
CN
China
Prior art keywords
character
unicode
data
character string
string
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 201110021998
Other languages
English (en)
Other versions
CN102141916A (zh
Inventor
林志军
Original Assignee
Shenzhen Skyworth Digital 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 Shenzhen Skyworth Digital Technology Co Ltd filed Critical Shenzhen Skyworth Digital Technology Co Ltd
Priority to CN 201110021998 priority Critical patent/CN102141916B/zh
Publication of CN102141916A publication Critical patent/CN102141916A/zh
Application granted granted Critical
Publication of CN102141916B publication Critical patent/CN102141916B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Controls And Circuits For Display Device (AREA)

Abstract

本发明公开了一种嵌入式设备及其在OSD界面显示语言字符的方法。所述方法包括:读取待显示的UNICODE编码字符数据;根据字符数据的UNICODE编码值判断字符数据所在的字库;将字符数据的UNICODE编码值和字库中的UNICODE编码向量表中的UNICODE编码逐一比较,得到字符在UNICODE编码向量表中对应UNICODE编码值的索引值;通过索引值进行地址运算,得到对应的字符点阵数据偏移地址;通过偏移地址找到字符的点阵数据、实际宽度和高度数据;调用OSD显示函数以根据字符的点阵数据、宽度和高度数据显示字符。本发明能够高效、方便、低成本地实现在嵌入式设备的OSD界面进行各种语言文字显示功能。

Description

嵌入式设备及其在OSD界面显示语言文字的方法
技术领域
本发明涉及嵌入式设备技术领域,特别是涉及嵌入式设备及其在OSD界面显示语言文字的方法备。
背景技术
目前数字电视机顶盒在世界各地逐渐普及,对机顶盒屏幕菜单式调节方式(OSD,on-screen display)界面上要求显示的语言种类也越来越多,需要在OSD界面中采用准确、高效的多语言显示方法来配合,以同时支持多国语言显示。
多语言的显示涉及到字符编码的技术,世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号。在电脑操作系统中,要想打开一个文本文件,就必须预先知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。目前传统的软件一般有两种技术方案去实现支持多语言用户操作界面:
1)一种是是针对客户对于某种语言的需求,单独的为这种语言的字符做一个字库,有多少种语言需要实现的话就存在多少种字库。字库中包括字符向量表和字符数据表,这里所说的字符数据表用于提供存放字符的点阵数据,所提供的字符向量表用于提供字符数据的存放地址。程序通过地址偏移去找到字符对应的点阵数据,再通过OSD函数将点阵数据进行显示;
2)另外一种传统的软件方式利用某些语言中相当数量的字符文字相同,编码之前先将这些语言进行一个统计,找到所有可能用到的字符,然后将这些字符统一做出一个字库,供机顶盒OSD显示函数调用。
上述的两种方法都存在明显的缺点,第一种方法为每种语言都设计一个单独的字库,这样不但浪费大量的程序的存储空间,而且同一种语言可能包括几种编码格式,还需要为同一种语言做多个字库。例如俄罗斯语可能使用ISO8859-5编码,也有可能使用CP1251编码。这些都增加软件设计和维护的工作量。第二种方法虽然通过编码设计前的统计去掉一些冗余字符,节省程序空间和代码量,但是这样做的方法会牺牲字库的通用性和标准化,同一个字库中包含多种编码方式的字符,字库可能会被设计的比较庞大,这样代码中查找要显示的字符的点阵数据也不方便,效率不高,还增加软件设计和维护的工作量。而且这种方法只是针对某些存在相当数量相同字符的语系的语言有用,比如英语,法语、德语、意大利语、西班牙语等拉丁语系的语言。对于某些字符相差较大的语言却不管用,比如阿拉伯语,俄罗斯语、越南语等归属于不同语系的语言。
发明内容
本发明主要解决的技术问题是提供一种嵌入式设备及其在OSD界面显示语言文字的方法,能够高效、方便、低成本地实现在嵌入式设备的OSD界面进行各种语言文字显示功能。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种在嵌入式设备OSD界面显示语言文字的方法,包括:读取待显示的统一码UNICODE编码格式的字符数据;根据所述字符数据的UNICODE编码值判断所述字符数据所在的字库;将所述字符数据的UNICODE编码值和其所在字库中的字符数据UNICODE编码向量表中的UNICODE编码逐一比较,得到所述字符在UNICODE编码向量表中对应UNICODE编码值的索引值;通过所述索引值进行地址运算,得到对应的字符点阵数据偏移地址;通过所述偏移地址找到字符的点阵数据、实际宽度和高度数据;调用OSD显示函数以根据所述字符的点阵数据、宽度和高度数据显示字符。
其中,所述将字符数据的UNICODE编码值和其所在字库中的字符数据UNICODE编码向量表中的UNICODE编码逐一比较的步骤包括:将所述字符数据的UNICODE编码值和其所在字库中的字符数据UNICODE编码向量表中的UNICODE编码通过二分法逐一比较。
其中,在所述读取待显示的字符数据步骤之后、判断所述字符数据的编码是否为统一码UNICODE编码步骤之前,包括:判断输入的字符数据所对应的字符串是否为有效的统一码文本格式(UTF)字符串;在所对应的字符串为有效的UTF字符串时,将所述UTF字符串转换成UNICODE编码格式的字符串;在转换成UNICODE编码格式的字符串后,得到所述字符串的前两个字节,合并所述两个字节的数值得到字符UNICODE编码值。
其中,所述在转换成UNICODE编码格式的字符串后、得到所述字符串的前两个字节、合并所述两个字节的数值得到字符UNICODE编码值步骤包括:在转换成UNICODE编码格式的字符串后,将字符指针指向所述字符串的第一个字符,其中在字符串的末尾设0x0000以指示字符串末尾;通过所述字符指针得到字符串的前两个字节;合并所述两个字节的数值得到第一个字符的UNICODE编码值;判断得到的UNICODE编码值是否为0x0000,在是0x0000时判定当前字符指针已指向至字符串的末尾,直接进入判断所述字符数据的编码是否为统一码UNICODE编码步骤。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种嵌入式设备,包括:字符数据读取单元,用于读取待显示的统一码UNICODE编码格式的字符数据;字符字库判断单元,用于根据所述字符数据的UNICODE编码值判断所述字符数据所在的字库;索引值获取单元,用于将所述字符数据的UNICODE编码值和其所在字库中的字符数据UNICODE编码向量表中的UNICODE编码逐一比较,得到所述字符在UNICODE编码向量表中对应UNICODE编码值的索引值;偏移地址获取单元,用于通过所述索引值进行地址运算,得到对应的字符点阵数据偏移地址;点阵数据获取单元,用于通过所述偏移地址找到字符的点阵数据、实际宽度和高度数据;字符显示单元,用于调用OSD显示函数以根据所述字符的点阵数据、宽度和高度数据显示字符。
其中,包括:UTF码判断单元,用于在所述读取待显示的统一码UNICODE编码格式的字符数据步骤之后、判断所述字符数据所在的字库步骤之前,判断输入的字符数据所对应的字符串是否为有效的统一码文本格式UTF字符串;编码转换单元,用于在所对应的字符串为有效的统一码文本格式UTF字符串时,将所述UTF字符串转换成UNICODE编码格式的字符串;字节合并单元,用于在转换成UNICODE编码格式的字符串后,得到所述字符串的前两个字节,合并所述两个字节的数值得到字符UNICODE编码值。
其中,包括:多语言字符串表生成单元,用于将每一种语言的字符串都生成各自独立的多语言字符串数据表,其中使用UTF-8编码作为字符串中每个字符的编码,数据表由字符串向量和字符串的UTF-8编码数据组成,所述字符串向量用于提供每个字符串数据的存放相对偏移地址,所述UTF-8编码数据用于存放每一个字符串转换成UTF-8编码后的字符数据。
其中,包括:位图文件生成单元,用于从Windows操作系统自带的矢量字库文件中提取指定大小的字体,并将该字体以位图的格式存放得到字符的位图文件;多语言字库生成单元,用于将所述位图文件转换成字库的C语言头文件,使所述C语言头文件中字符的内部数据结构包括所述字符数据UNICODE编码向量表、字符宽度向量表以及字符点阵数据向量表,并且使字库中每个字符的UNICODE编码向量表、字符宽度向量表和字符点阵数据向量表中的顺序一致。
其中,所述嵌入式设备是机顶盒。
本发明的有益效果是:区别于现有技术机顶盒为实现OSD显示字符而浪费大量存储空间或者牺牲字库的通用性和标准化的情况,本发明不但吸收传统的多语言显示方法中具有的点阵字库显示速度快、使用简单的优点,同时利用UNICODE编码的唯一性,即因为Unicode使用0到65535的双字节无符号数对每一个字符进行编码,每一个双字节无符号数字表示至少在一种世界语言中使用的一个唯一字符,本发明正是利用上述UNICODE编码的唯一性,方便快速地查找要显示的字符,不需要为嵌入式设备显示字符而浪费大量的程序的存储空间,不需要为同一种语言做多个字库,而且达到字库的通用性和标准化,字符显示效率较高,无需增太多的软件设计和维护工作。
同时又因为本发明使用了UTF这一在互联网上使用最广的一种国际通用的字符编码的方式,使得嵌入式设备如数字电视机顶盒等在理论上能够同时支持所有的多语言字符的显示,同时消耗的系统资源较少,具备速度快、使用灵活、代码编码量小、代码容易维护和移植等优点。
附图说明
图1是本发明在嵌入式设备OSD界面显示语言文字的方法实施例的流程图;
图2是本发明在嵌入式设备OSD界面显示语言文字的方法实施例的另一流程图;
图3是本发明嵌入式设备实施例一的原理框图;
图4是本发明嵌入式设备实施例二的原理框图。
具体实施方式
基于目前数字机顶盒中要求显示的多国语言的种类越来越多、涉及的语言的语系也越来越多、使用传统的多语言显示技术的话会有很多问题。比如同一个二进制数字可以被解释成不同的符号。在电脑操作系统中,要想打开一个文本文件,就必须预先知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。机顶盒等嵌入式设备中同样存在这个问题。本发明基于上述要想解决的问题,使用一种统一的编码方式:即统一码文本格式UTF,UTF就是目前在互联网上使用最广泛的一种统一的编码的实现方式,本发明致力于将全球所有语言纳入一个统一的编码,并结合以下实施例来详细说明。
参阅图1,本发明在嵌入式设备OSD界面显示语言文字的方法实施例包括以下步骤:
步骤101:读取待显示的统一码UNICODE编码格式的字符数据;
在OSD界面显示语言文字时,嵌入式设备读取保存好的待显示统一码UNICODE编码格式的字符数据,可以是字符串,也可以是一个字符;
步骤102:根据所述字符数据的UNICODE编码值判断所述字符数据所在的字库;
比如存在多个字库,对应不同语系的,可以根据所述字符数据的UNICODE编码值判断所述字符数据所在的字库;
步骤103:将所述字符数据的UNICODE编码值和其所在字库中的字符数据UNICODE编码向量表中的UNICODE编码逐一比较,得到所述字符在UNICODE编码向量表中对应UNICODE编码值的索引值;
每个字库中都包括指向字符地址的字符数据UNICODE编码向量表,即在字库中预先设计指向字符地址的字符数据UNICODE编码向量表,所字符数据UNICODE编码向量表作为字符UNICODE编码与字符点阵数据之间的连接桥梁;
作为字符UNICODE编码与字符点阵数据之间的连接桥梁,所述点阵数据信息中指向字符地址的字符数据UNICODE编码向量表,是在嵌入式设备中预先定义的点阵字库的内部数据结构的一部分,使得很方便地通过字符UNICODE编码找到字符在字库中的宽度和字符点阵数据;
步骤104:通过所述索引值进行地址运算,得到对应的字符点阵数据偏移地址;
步骤105:通过所述偏移地址找到字符的点阵数据、实际宽度和高度数据;
步骤106:调用OSD显示函数以根据所述字符的点阵数据、宽度和高度数据显示字符。
本发明不但吸收传统的多语言显示方法中具有的点阵字库显示速度快、使用简单的优点,同时利用UNICODE编码的唯一性,即因为Unicode使用0到65535的双字节无符号数对每一个字符进行编码,每一个双字节无符号数字表示至少在一种世界语言中使用的一个唯一字符,本发明正是利用上述UNICODE编码的唯一性,方便快速地查找要显示的字符,不需要为嵌入式设备显示字符而浪费大量的程序的存储空间,不需要为同一种语言做多个字库,而且达到字库的通用性和标准化,字符显示效率较高,无需增太多的软件设计和维护工作。
在另一实施例中,所述将字符数据的UNICODE编码值和其所在字库中的字符数据UNICODE编码向量表中的UNICODE编码逐一比较的步骤包括:将所述字符数据的UNICODE编码值和其所在字库中的字符数据UNICODE编码向量表中的UNICODE编码通过二分法逐一比较。
根据点阵数据信息中指向字符地址的字符数据UNICODE编码向量表、ID值、UNICODE编码值和点阵数据信息,可以从所述字库中找到字符数据对应的字符宽度和点阵数据信息。
在另一实施例中,基于上述多个字库实施例的基础上,所述将字符数据的UNICODE编码值和其所在字库中的字符数据UNICODE编码向量表中的UNICODE编码逐一比较的步骤包括:
根据所述字库ID值和字符数据的UNICODE编码值,通过二分法查找到对应字符在所述字库中的索引值。
在另一实施例中,为实现字符串显示,在所述读取待显示的字符数据步骤之后、判断所述字符数据的编码是否为统一码UNICODE编码步骤之前,包括:
1)判断输入的字符数据所对应的字符串是否为有效的统一码文本格式UTF字符串;
所述UTF可以是UTF-8,也可以是UTF-16;
2)在所对应的字符串为有效的统一码文本格式UTF字符串时,将所述UTF字符串转换成UNICODE编码格式的字符串;
3)在转换成UNICODE编码格式的字符串后,得到所述字符串的前两个字节,合并所述两个字节的数值得到字符UNICODE编码值。
其中,基于上述字符串显示实施例的基础上,所述在转换成UNICODE编码格式的字符串后、得到所述字符串的前两个字节、合并所述两个字节的数值得到字符UNICODE编码值步骤包括:
1)在转换成UNICODE编码格式的字符串后,将字符指针指向所述字符串的第一个字符,其中在字符串的末尾设0x0000以指示字符串末尾;
2)通过所述字符指针得到字符串的前两个字节;
3)合并所述两个字节的数值得到第一个字符的UNICODE编码值;
4)判断得到的UNICODE编码值是否为0x0000,在是0x0000时判定当前字符指针已指向至字符串的末尾,直接进入判断所述字符数据的编码是否为统一码UNICODE编码步骤。
这里,是预先在字符串的末尾设置0x0000,以表示结束。
下面举一应用实施例来说明本发明方法,其中包括:
1)多语言字库的制作工具;
2)多语言点阵字库的内部数据格式;
3)多语言字符串数据格式;
4)多语言字符串数据的生成工具;
5)GUI系统调用多语言字库和显示多语言字符串的一套接口函数。
其中:
1)多语言字库的制作工具
多语言字库的制作包括两个步骤,每个步骤分别需要使用不同的工具,最终生成字库的C语言头文件。
步骤一:使用font2bitmap.exe生成字库中字符的位图文件。它可以根据用户设定的字体,字符宽度,高度等属性,从Windows操作系统中自带的矢量字库文件中提取指定大小的字体,并将该字体以位图的格式存放,为制作字库做准备。
步骤二:使用generateFontData.exe将步骤一所生成的字符的位图文件转换成字库的C语言头文件。
2)多语言点阵字库的内部数据格式
点阵字库的内部数据结构为:
typedef struct
{
  unsigned char         Font_Height;//字库中字符的高度
  unsigned short        Font_Count;//字库中字符的个数
  const unsigned char   *Font_Width;//字库中字符宽度向量表
  const unsigned int    *Font_Data;//字库中字符点阵数据向量表
  const unsigned short  *Font_Tab;//字库中字符数据UNICODE编码向量
  表
  }sky_font_t;
和现有多语言字库字符的数据结构说不同的地方是,本发明在此实施例中使用字符数据UNICODE编码向量表。而且字库中每个字符的UNICODE编码向量表、字符宽度向量表和字符点阵数据向量表中的顺序是一致的,这样就很方便地在代码中通过字符UNICODE编码找到字符在字库中的宽度和字符点阵数据。
其中在字库中使用UNICODE编码的原因是:因为Unicode使用0到65535的双字节无符号数对每一个字符进行编码。每一个双字节无符号数字表示至少在一种世界语言中使用的一个唯一字符。本发明实施例正是利用UNICODE编码的唯一性,方便快速地查找要显示的字符,而且UNICODE编码和UTF-8编码之间转换非常容易。
3)多语言字符串数据格式
本发明在此实施例中使用UTF-8编码作为字符串中每个字符的编码,每一种语言的字符串都通过工具生成各自独立的多语言字符串数据表。数据表由字符串向量和字符串的UTF-8编码数据组成。这里所述的字符串向量用于提供每个字符串数据的存放相对偏移地址。所述的UTF-8编码字符数据用于存放每一个字符串转换成UTF-8编码后的字符数据。
以下是多语言字符串数据表的示例和格式说明:
表一:转换前原始的字符串数据示例:
Figure BDA0000044494920000091
下面是转换后的字符串数据示例(以英文为例):
const unsigned char English_strs_array[]=
{
    2,
    0x00,0x06,//字符串数目
    0x00,0x11,//第一个字符串偏移地址
    0x00,0x19,//第二个字符串偏移地址
    0x00,0x1e,//第三个字符串偏移地址
    0x00,0x23,//第四个字符串偏移地址
    0x00,0x29,//第五个字符串偏移地址
    0x00,0x34,//第六个字符串偏移地址
    0x00,0x3b,//字符串数组的大小
    //字符串中每个字符的UTF-8编码的数据,每个字符串以0x00作为结束的标识
    0x45,0x6e,0x67,0x6x,0x69,0x73,0x68,0x00,0x4c,0x65,0x66,0x74,0x00,0x4d,0x6f,0x6e,
    0x6f,0x00,0x52,0x69,0x67,0x68,0x74,0x00,0x41,0x75,0x64,0x69,0x6f,0x20,0x4d,0x6f,
    0x64,0x65,0x00,0x53,0x74,0x65,0x72,0x65,0x6f,0x00,
};
表二:字符串数据表格式说明:
4)多语言字符串数据的生成工具
如上所述,是通过工具将每一种语言的字符串数据转换成UTF-8编码格式。以下是通过工具生成多语言字符串数据的步骤:
步骤一、将多语言字符串输入到一个Excel文件。添加、修改、删除字符串都通过修改Excel文件完成。Excel表格中的第一列是每个字符串的索引ID列表,其它列是每一种语言的名称和翻译的字符串。
表三:多语言字符串Excel表格格式示例:
  id   German   Indonesian   French
  RS_LANGUAGE_CODE   Deutsch   Indonesian   Francais
  RS_AC3_MODE   AC3 Mode   Mode AC3   Mode AC3
  RS_APPEND   Spurweg   Bubuh   Ajouter
  RS_AUDIO_MODE_left_CHANNEL   Links   Kiri   Gauche
  RS_AUDIO_MODE_MONO   Mono-Tonspur   Mono   Mono
步骤二、将包含多语言的Excel文件打开并另存为UNICODE编码格式的文本文件。文本文件中的字符串可以不需要带双引号,字符与字符之间用Tab键制表符隔开而不用空格隔开。
步骤三、通过工具TextEncoder.exe将步骤二生成的文本文件(如String.txt)转换成UTF-8编码的字符串数据的头文件和字符串索引ID文件。生成的文件包括str_xxx.h和string.id,这里xxx表示语言的名称。如表格示例,我们将生成str_German.h、str_Indonesian.h、str_French.h和string.id四个文件。
5)GUI系统调用多语言字库并显示多语言字符串的接口函数
在实现多语言用户界面显示上,本方法是通过调用GUI中的DrawText(char*pUTF8String)函数实现的。该实现过程请参见流程图2:
程序执行开始,首先进入步骤S1,该步骤主要是判断输入的字符串pUTF8String是否为有效的UTF-8字符串。如果为有效的UTF-8字符串,则进入步骤S2中,该步骤将UTF-8编码格式字符串转换成UNICODE编码格式的字符串。如果转换成功,则进入步骤S3中,字符指针指向第一个字符,通过字符指针得到字符串的前两个字节,两个字节合并后的数值则为第一个字符的UNICODE编码值。然后进入步骤S4中,判断得到的UNICODE编码值是否为0x0000,如果结果为“是”的话,则表示当前字符指针指向了字符串的末尾,即显示程序结束。如果结果为“否”,则执行下一个步骤S5,该步骤根据每个要显示的字符UNICODE编码值,判断该字符所在的字库,并得到所在字库的ID值,例如,希腊语的UNICODE的范围从0x0370到0x03FF,如果要显示字符串中的字符的UNICODE值落在0x0370到0x03FF,则可以判断该字符为希腊文字符,这样代码就可以去读取希腊语的字库并得到希腊语字符的宽度和点阵数据信息。接下来是步骤S6中,该步骤结合要显示的多语言的字符所在的字库ID和字符的UNICODE编码值,通过二分法查找到该字符在所在字库中的索引值,通过该索引值,就可以进行地址运算,计算出字符点阵数据的偏移地址。再通过该地址可以得到字符的点阵数据了,接下来进入步骤S7,该步骤主要是调用OSD显示函数,将该字符显示处理出来。最后步骤S8,字符指针加2又指向下一个字符的UNICODE数值,并返回步骤S2,重复各步,直到指针指向字符串的结尾。
下面以希腊字符
Figure BDA0000044494920000121
为例说明显示多语言字符的过程。
1)、
Figure BDA0000044494920000122
字符的UNICODE编码为0x03ab。刚好落在希腊文字的UNICODE范围0x0370-0x03FF之间,,可以判定该字符为希腊文字字符。
2)、通过字符的UNICODE编码值,使用二分法查找字符在希腊语字库中的索引值。以下是查找的算法的代码,其中参数uAimCode为要查找字符的UNICODE编码值,在这个例子中即为0x03ab。pTabUnicode指针指向的是字库中的字符数据UNICODE编码向量表,该编码表中字符的顺序和字符点阵数据表中顺序一致。
BOOL Font_Search(unsigned short uStart,unsigned short uEnd,
unsigned short uAimCode,unsigned short*pTabUnicode,unsigned short
*uIdx)
{
   unsigned short    start,end,len;
   unsigned short    midValue;
   for(start=uStart,end=uEnd;start<=end;)
   {
      midValue=pTabUnicode[(start+end+1)/2];
      if((start==end)&&(uAimCode!=midValue))
      {
         *uIdx=0;
         return FALSE;
      }
      if(uAimCode>midValue)
      {
         start=(end+start+1)/2;
      }
      else if(uAimCode<midValue)
      {
         end=(end+start)/2;
      }
      else
      {
         *uIdx=(start+end+1)/2;//成功,返回索引值
          return TRUE;
       }
     }
    *uIdx=0;
    return FALSE;
}
3)、通过索引值,得到字符在点整数据中的偏移地址,从而计算得到点阵数据。
4)、通过底层OSD的显示函数把得到的点阵数据在终端上显示出来,因为目前OSD显示接口主要通过画点函数实现字符的显示,为了加快字符的显示效率和速度,该功能主要通过硬件加速来实现的,把字符点阵数据写到OSD缓存后,才通知系统CPU将点阵数据通过硬件拷贝到视频编码器中,对字符给予显示。
参阅图3,基于本发明精神,还提供一种嵌入式设备实施例,包括:
字符数据读取单元,用于读取待显示的统一码UNICODE编码格式的字符数据;
字符字库判断单元,用于根据所述字符数据的UNICODE编码值判断所述字符数据所在的字库;
索引值获取单元,用于将所述字符数据的UNICODE编码值和其所在字库中的字符数据UNICODE编码向量表中的UNICODE编码逐一比较,得到所述字符在UNICODE编码向量表中对应UNICODE编码值的索引值;
偏移地址获取单元,用于通过所述索引值进行地址运算,得到对应的字符点阵数据偏移地址;
点阵数据获取单元,用于通过所述偏移地址找到字符的点阵数据、实际宽度和高度数据;
字符显示单元,用于调用OSD显示函数以根据所述字符的点阵数据、宽度和高度数据显示字符。
上述实施例是利用UNICODE编码的唯一性,方便快速地查找要显示的字符,不需要为嵌入式设备显示字符而浪费大量的程序的存储空间,不需要为同一种语言做多个字库,而且达到字库的通用性和标准化,字符显示效率较高,无需增太多的软件设计和维护工作。
参阅图4,在进一步的实施例中,为实现字符串显示,所述嵌入式设备还包括:
UTF码判断单元,用于在所述读取待显示的统一码UNICODE编码格式的字符数据步骤之后、判断所述字符数据所在的字库步骤之前,判断输入的字符数据所对应的字符串是否为有效的统一码文本格式UTF字符串;
编码转换单元,用于在所对应的字符串为有效的统一码文本格式UTF字符串时,将所述UTF字符串转换成UNICODE编码格式的字符串;
字节合并单元,用于在转换成UNICODE编码格式的字符串后,得到所述字符串的前两个字节,合并所述两个字节的数值得到字符UNICODE编码值。
在进一步的实施例中,为实现字符串的制作,所述嵌入式设备包括:
多语言字符串表生成单元,用于将每一种语言的字符串都生成各自独立的多语言字符串数据表,其中使用UTF-8编码作为字符串中每个字符的编码,数据表由字符串向量和字符串的UTF-8编码数据组成,所述字符串向量用于提供每个字符串数据的存放相对偏移地址,所述UTF-8编码数据用于存放每一个字符串转换成UTF-8编码后的字符数据。
在进一步的实施例中,为制作多语言字库,所述嵌入式设备包括:
位图文件生成单元,用于从Windows操作系统自带的矢量字库文件中提取指定大小的字体,并将该字体以位图的格式存放得到字符的位图文件;
多语言字库生成单元,用于将所述位图文件转换成字库的C语言头文件,使所述C语言头文件中字符的内部数据结构包括所述字符数据UNICODE编码向量表、字符宽度向量表以及字符点阵数据向量表,并且使字库中每个字符的UNICODE编码向量表、字符宽度向量表和字符点阵数据向量表中的顺序一致。
本发明的所述嵌入式设备可以是机顶盒,也可以是其他需要显示字符信息的各种嵌入式设备。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (5)

1.一种在嵌入式设备OSD界面显示语言文字的方法,其特征在于,包括:
读取待显示的统一码UNICODE编码格式的字符数据;
判断输入的字符数据所对应的字符串是否为有效的统一码文本格式UTF字符串;
在所对应的字符串为有效的统一码文本格式UTF字符串时,将所述UTF字符串转换成UNICODE编码格式的字符串,将字符指针指向所述字符串的第一个字符,其中在字符串的末尾设0x0000以指示字符串末尾;
在转换成UNICODE编码格式的字符串后,通过所述字符指针得到字符串的前两个字节,合并所述两个字节的数值得到字符UNICODE编码值;
判断得到的UNICODE编码值是否为0x0000,在是0x0000时判定当前字符指针已指向至字符串的末尾时,根据所述字符数据的UNICODE编码值判断所述字符数据所在的字库;
将所述字符数据的UNICODE编码值和其所在字库中的字符数据UNICODE编码向量表中的UNICODE编码通过二分法逐一比较,得到所述字符在UNICODE编码向量表中对应UNICODE编码值的索引值;
通过所述索引值进行地址运算,得到对应的字符点阵数据偏移地址;
通过所述偏移地址找到字符的点阵数据、实际宽度和高度数据;
调用屏幕菜单式调节方式OSD显示函数以根据所述字符的点阵数据、宽度和高度数据显示字符。
2.一种嵌入式设备,其特征在于,包括:
字符数据读取单元,用于读取待显示的统一码UNICODE编码格式的字符数据;
UTF码判断单元,用于在所述读取待显示的统一码UNICODE编码格式的字符数据步骤之后、判断所述字符数据所在的字库步骤之前,判断输入的字符数据所对应的字符串是否为有效的统一码文本格式UTF字符串;
编码转换单元,用于在所对应的字符串为有效的统一码文本格式UTF字符串时,将所述UTF字符串转换成UNICODE编码格式的字符串,将字符指针指向所述字符串的第一个字符,其中在字符串的末尾设0x0000以指示字符串末尾;
字节合并单元,用于在转换成UNICODE编码格式的字符串后,得到所述字符串的前两个字节,合并所述两个字节的数值得到字符UNICODE编码值;
字符字库判断单元,用于判断得到的UNICODE编码值是否为0x0000,在是0x0000时判定当前字符指针已指向至字符串的末尾时,根据所述字符数据的UNICODE编码值判断所述字符数据所在的字库;
索引值获取单元,用于将所述字符数据的UNICODE编码值和其所在字库中的字符数据UNICODE编码向量表中的UNICODE编码通过二分法逐一比较,得到所述字符在UNICODE编码向量表中对应UNICODE编码值的索引值;
偏移地址获取单元,用于通过所述索引值进行地址运算,得到对应的字符点阵数据偏移地址;
点阵数据获取单元,用于通过所述偏移地址找到字符的点阵数据、实际宽度和高度数据;
字符显示单元,用于调用OSD显示函数以根据所述字符的点阵数据、宽度和高度数据显示字符。
3.根据权利要求2所述的嵌入式设备,其特征在于,包括:
多语言字符串表生成单元,用于将每一种语言的字符串都生成各自独立的多语言字符串数据表,其中使用UTF-8编码作为字符串中每个字符的编码,数据表由字符串向量和字符串的UTF-8编码数据组成,所述字符串向量用于提供每个字符串数据的存放相对偏移地址,所述UTF-8编码数据用于存放每一个字符串转换成UTF-8编码后的字符数据。
4.根据权利要求2至3任一项所述的嵌入式设备,其特征在于,包括:
位图文件生成单元,用于从Windows操作系统自带的矢量字库文件中提取指定大小的字体,并将该字体以位图的格式存放得到字符的位图文件;
多语言字库生成单元,用于将所述位图文件转换成字库的C语言头文件,使所述C语言头文件中字符的内部数据结构包括所述字符数据UNICODE编码向量表、字符宽度向量表以及字符点阵数据向量表,并且使字库中每个字符的UNICODE编码向量表、字符宽度向量表和字符点阵数据向量表中的顺序一致。
5.根据权利要求2至3任一项所述的嵌入式设备,其特征在于:
所述嵌入式设备是机顶盒。
CN 201110021998 2011-01-19 2011-01-19 嵌入式设备及其在osd界面显示语言文字的方法 Expired - Fee Related CN102141916B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110021998 CN102141916B (zh) 2011-01-19 2011-01-19 嵌入式设备及其在osd界面显示语言文字的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110021998 CN102141916B (zh) 2011-01-19 2011-01-19 嵌入式设备及其在osd界面显示语言文字的方法

Publications (2)

Publication Number Publication Date
CN102141916A CN102141916A (zh) 2011-08-03
CN102141916B true CN102141916B (zh) 2013-11-06

Family

ID=44409458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110021998 Expired - Fee Related CN102141916B (zh) 2011-01-19 2011-01-19 嵌入式设备及其在osd界面显示语言文字的方法

Country Status (1)

Country Link
CN (1) CN102141916B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799590B (zh) * 2011-05-26 2017-02-08 安凯(广州)微电子技术有限公司 嵌入式电子产品字库、字库生成方法及字库查找方法
CN102750337B (zh) * 2012-06-01 2015-05-27 中国科学院声学研究所 字库的制作方法和装置
CN102981795B (zh) * 2012-10-31 2015-05-27 飞天诚信科技股份有限公司 一种显示信息的方法
CN102970596A (zh) * 2012-11-28 2013-03-13 康佳集团股份有限公司 一种实现机顶盒多语言字体显示的方法、系统及机顶盒
CN104750695A (zh) * 2013-12-26 2015-07-01 深圳富泰宏精密工业有限公司 智能字库文件转码系统及方法
CN103902513A (zh) * 2014-03-21 2014-07-02 北京百度网讯科技有限公司 在终端设备中显示字体的方法及装置
CN103945256A (zh) * 2014-05-05 2014-07-23 珠海迈科电子科技有限公司 一种支持机顶盒显示高棉语的方法
CN104376113A (zh) * 2014-11-28 2015-02-25 深圳市九洲电器有限公司 多语言字符串处理方法及系统
CN104469468B (zh) * 2014-12-26 2018-04-13 珠海迈越信息技术有限公司 一种机顶盒oled前面板的多语言显示方法
CN104598560A (zh) * 2015-01-06 2015-05-06 绍兴文理学院 一种嵌入式系统多字体文字的显示方法和显示系统
CN105551450B (zh) * 2016-03-10 2018-03-27 中山乐心电子有限公司 一种段式液晶显示屏显示驱动方法与装置
CN106686408B (zh) * 2016-12-06 2022-04-29 海信视像科技股份有限公司 一种Teletext信息的传输方法和装置
CN107515744B (zh) * 2017-07-31 2020-10-09 郑州众智科技股份有限公司 一种基于点阵液晶发电机组控制器自定义语言的实现方法
CN109086256B (zh) * 2018-07-12 2022-08-26 郑州众智科技股份有限公司 一种长度可变的字库点阵的生成及使用方法
CN109683969A (zh) * 2018-12-21 2019-04-26 深圳市中科亿信技术有限公司 一种VxWorks操作系统的终端显示方法及装置
CN110442414A (zh) * 2019-08-01 2019-11-12 北京航天发射技术研究所 一种多语种外挂语言包实现及系统
CN110597591B (zh) * 2019-09-17 2022-10-14 深圳融昕医疗科技有限公司 嵌入式设备的界面多语言实现方法、装置及存储介质
CN112181550A (zh) * 2020-08-31 2021-01-05 福州智象信息技术有限公司 一种智能电视操作系统的ui多语言转换方法及系统
CN112949257A (zh) * 2021-02-26 2021-06-11 深圳市英威腾电气股份有限公司 字符显示方法、装置、设备以及计算机可读存储介质
CN113360113B (zh) * 2021-05-24 2022-07-19 中国电子科技集团公司第四十一研究所 一种基于oled屏实现动态调整字符显示宽度的系统及方法
CN114428658B (zh) * 2022-01-25 2024-03-08 杭州国芯科技股份有限公司 一种机顶盒显示缅甸文的方法
CN116931899A (zh) * 2023-09-18 2023-10-24 深圳市好盈科技股份有限公司 一种多语言显示性能参数设定方法、系统、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436203A (zh) * 2008-12-10 2009-05-20 深圳华为通信技术有限公司 一种记录索引方法及装置
CN101888505A (zh) * 2010-06-13 2010-11-17 杭州海康威视数字技术股份有限公司 一种在屏显示字符的显示方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436203A (zh) * 2008-12-10 2009-05-20 深圳华为通信技术有限公司 一种记录索引方法及装置
CN101888505A (zh) * 2010-06-13 2010-11-17 杭州海康威视数字技术股份有限公司 一种在屏显示字符的显示方法及装置

Also Published As

Publication number Publication date
CN102141916A (zh) 2011-08-03

Similar Documents

Publication Publication Date Title
CN102141916B (zh) 嵌入式设备及其在osd界面显示语言文字的方法
CN102103605B (zh) 一种智能提取文档结构的方法及系统
CN106202207B (zh) 一种基于HBase-ORM的索引及检索系统
US20110191381A1 (en) Interactive System for Extracting Data from a Website
CN103353878A (zh) 将多种格式的文档显示在网页中的方法
CN104881469A (zh) 一种数据导出方法和装置
CN102867049B (zh) 一种基于单词查找树实现的汉语拼音快速分词方法
CN102065234B (zh) 基于分布式字幕处理系统的字幕制播方法及系统
EP1679614B1 (en) Method and apparatus for providing foreign language text display when encoding is not available
WO2019042349A1 (zh) 操作系统框架的翻译方法、移动终端和存储装置
CN112667563A (zh) 一种文档管理及操作方法和系统
WO2023109079A1 (zh) 一种表结构巡检方法、表结构巡检装置、电子设备和存储介质
US8930808B2 (en) Processing rich text data for storing as legacy data records in a data storage system
CN106406560B (zh) 桌面操作系统中机械工程字符矢量字体输出方法和系统
CN107391175B (zh) 控件数据配置方法及计算机可读存储介质
CN102270223A (zh) 消息解码库的生成方法、装置及消息解码方法、装置
CN111291547B (zh) 模板生成方法、装置、设备及介质
CN117093619A (zh) 一种规则引擎处理方法、装置、电子设备及存储介质
CN105408896A (zh) 信息管理装置和信息管理方法
CN106569939A (zh) 一种控件脚本程序多国文字解析系统及多国文字解析方法
JP2007279795A (ja) プログラムによって表示される画面が仕様を満たすか判断するシステム
CN1825309A (zh) 基于Unicode编码的跨库检索方法
CN1466039A (zh) 可以进行中文和多种文字输入的电子遥控器
Luo et al. Biotable: A tool to extract semantic structure of table in biology literature
KR102594204B1 (ko) 주식투자 정보 그래프 서비스를 위한 서비스 서버 및 그 방법

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
C56 Change in the name or address of the patentee

Owner name: SHENZHEN SKYWORTH DIGITAL TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: SKY-WORTH DIGITAL TECHNOLOGY CO., LTD.;SHENZHEN CITY

CP01 Change in the name or title of a patent holder

Address after: 518000 Guangdong city of Shenzhen province Nanshan District Gao Xin Road SKYWORTH building A block 14 layer

Patentee after: Shenzhen Skyworth Digital Technology Co., Ltd.

Address before: 518000 Guangdong city of Shenzhen province Nanshan District Gao Xin Road SKYWORTH building A block 14 layer

Patentee before: Shenzhen Skyworth Digital Technology Co., Ltd.

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: 20131106

Termination date: 20210119