CN101594480B - 一种字幕数据处理的方法 - Google Patents
一种字幕数据处理的方法 Download PDFInfo
- Publication number
- CN101594480B CN101594480B CN 200810113852 CN200810113852A CN101594480B CN 101594480 B CN101594480 B CN 101594480B CN 200810113852 CN200810113852 CN 200810113852 CN 200810113852 A CN200810113852 A CN 200810113852A CN 101594480 B CN101594480 B CN 101594480B
- Authority
- CN
- China
- Prior art keywords
- data
- member variable
- character
- caption data
- page
- 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
Links
Images
Landscapes
- Controls And Circuits For Display Device (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种字幕数据处理的方法,其特征在于,包括以下步骤:程序中自定义一种数据结构,增加一个成员变量,用所述成员变量记录页码;随后调用API函数得到原始数据;然后将原始数据转换成自定义的数据结构。本发明通过一个成员变量记录页码,不转换成浮点型数据,使得图形信息的数据类型不发生改变、精度不变,也就不会出现因为数值失真造成的渲染错误。而且,所有数据都是整型,运算效率高,可以直接进行相等性的判断。
Description
技术领域
本发明涉及广播电视领域,尤其涉及一种字幕数据处理的方法。
背景技术
利用图形图像处理技术可以渲染出具有丰富特效的字幕,如凹凸、光泽等,或者三维字符的渲染,往往需要得到字符的图形矢量信息。对于Win32系统,系统的DLL(Dynamic Link Library,动态链接程序库)提供了相关的API(Application Programming Interface,应用程序接口)。通过调用GetGlyphOutline函数可以获取指定字符的字模,得到显示字符的图形数据。字符的图形数据就是描述字符轮廓曲线的一系列点的集合。
点的数据结构的定义为:
typedef struct tagPOINTFX{
FIXED x;
FIXED y;
}
其中,POINTFX数据点用定点实数结构描述了二维空间上点的x,y方向坐标。FIXED结构的定义为:
typedef struct_FIXED{
WORD fract;
short value;
}FIXED;
FIXED结构中的value代表整数部分范围是-32768~32767,而fract代表小数部分能精确到1/65536。在图文系统中坐标平移等坐标变换是必不可少的,通常将定点实数转换成浮点数以扩大数值范围。float型的单精度浮点数是字长为4个字节共32位的二进制数,数的范围是3.4×10-38E~3.4×10+38E。 double型的双精度浮点数是字长为8个字节共64位的二进制数,数的范围是1.7x10-308E~1.7x10+308E。例如,在超长字幕渲染时,字符之间的相对距离较大,直接在FIXED结构上做坐标平移,很容易造成数据溢出。而转换成浮点数后,能够有效的避免数据溢出。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
float类型只有7位有效位,保存的是近似值,而不是精确值,有可能源数据在给float赋值后,float保存的值已近失真。例如float a=12345.6789;而实际运行结果往往是12345.67XX。对一个字符,尤其是笔画较多的中文字符,轮廓曲线距离较近,曲线点的坐标要求的精度比较高,失真的数值会造成错误的渲染结果。超长字幕中在大多数编译器的实现中,使用double类型都能获得更高的时间效率和可靠度。然而,double数据结构需要两倍于float、FIXED的存储空间。而且,浮点数不存在0这个数值,这是浮点数的误差问题,在程序实现时不能显式判断浮点数的相等性和不等性。
发明内容
本发明提供一种字幕数据处理的方法,以实现数据的高效率,以及数据的无失真。
本发明提供一种字幕数据处理的方法,其特征在于,包括以下步骤:
调用GetGlyphOutline函数获取指定字符的字模,得到显示字符的图形数据,所述字符的图形数据是描述字符轮廓曲线的一系列点的集合;
自定义一种数据结构,对原始数据结构进行扩展,所述数据结构增加一个成员变量,用所述成员变量记录页码;
调用API函数得到原始数据;
将所述原始数据转换成所述自定义的数据结构。
所述成员变量记录页码的宽高固定。
在所述自定义一种数据结构,对原始数据结构进行扩展,所述数据结构增加一个成员变量步骤之前,该方法还包括:通过调用所述API函数得到所述原始数据,所述原始数据将小数部分精确到1/65536,所述原始数据的整数的范围为-32768~32767。
所述原始数据为字符轮廓曲线的点的数据结构。
与现有技术相比,本发明具有以下优点:
本发明中,通过一个成员变量记录页码,不转换成浮点型数据,使得图形信息的数据类型不发生改变、精度不变,也就不会出现因为数值失真造成的渲染错误。而且,所有数据都是整型,运算效率高,可以直接进行相等性的判断。
附图说明
图1为本发明中的一种字幕数据处理的方法流程图;
图2为本发明中的一种字幕数据处理的方法另一流程图;
图3为本发明中的左滚超长字幕的示意图。
下面结合附图和具体实施例对本发明进行详细介绍。
具体实施方式
本发明提供了一种字幕数据处理的方法,如图1所示,包括如下步骤:
步骤S101,程序自定义一种数据结构,增加一个记录页码的成员变量;
步骤S102,程序调用API函数得到原始数据;
步骤S103,程序将原始数据转换成自定义的数据结构。
本发明提供的一种字幕数据处理的方法,如图2所示,包括如下步骤:
步骤S201,通过调用API函数得到了字符轮廓曲线的点的原始数据,点的数据结构为:
typedef struct tagPOINTFX{
FIXED x;
FIXED y;
},其中POINTFX数据点用定点实数结构描述了二维空间上点的x,y方向坐标。
步骤S202,自定义一种数据结构,对原始数据FIXED结构进行扩展,新的FIXEDEx数据结构为:
typedef struct_FIXEDEx{
WORD fract;
short value;
WORD page;
}FIXEDEx;
步骤S203,原始数据表示小数部分的成员变量fract的值直接赋值给自定义结构中表示小数部分的成员变量fract,变量fract将小数的精确到1/65536。
步骤S204:原始数据表示整数部分的成员变量的值直接赋值给自定义结构中表示整数部分的成员变量,变量value将整数的范围定义为-32768~32767。
步骤S205:自定义结构中扩展的成员变量page记录页码,其中页码的宽高固定,具体大小根据使用的需要设定。以左滚超长字幕为例,如图3所示:图像中灰色区域为屏幕显示字幕,当内存链表表头的内存块字幕显示完毕,此内存块指针从内存链表表头移除,加入链表尾,内存链表表头指向下一个内存块,更新原表头现表尾内存块的字幕内容。设置记录页码对应页的大小与内存链表中一个内存块存储的图像大小相同,由于页宽有限,同页的字符在页内的坐标平移不会发生数据溢出。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (4)
1.一种字幕数据处理的方法,其特征在于,包括以下步骤:
调用API函数GetGlyphOutline获取指定字符的字模,得到显示字符的字幕数据,所述字符的字幕数据是描述字符轮廓曲线的一系列点的集合;
自定义一种数据结构,具体为:结构体名为FIXEDEx,包含成员变量value、fract和page,所述成员变量value的数据类型是16位整型,所述成员变量fract的数据类型是16位无符号整型,所述成员变量page的数据类型是16位无符号整型,对字符的字幕数据结构进行扩展,所述字符的字幕数据结构增加一个所述成员变量page,用所述成员变量page记录页码;
调用API函数GetGlyphOutline得到所述字符的字幕数据;
所述字符的字幕数据增加所述成员变量记录页码,转换成所述自定义的数据结构,形成新的字幕数据;
其中,所述字符的字幕数据结构中表示小数部分的成员变量fract的值直接赋值给自定义结构中表示小数部分的成员变量;所述字符的字幕数据结构中表示整数部分的成员变量的值直接赋值给自定义结构中表示整数部分的成员变量。
2.如权利要求1所述字幕数据处理的方法,其特征在于,所述成员变量page记录页码,在同一系统中页码对应页的宽高值固定。
3.如权利要求1所述字幕数据处理的方法,其特征在于,在对所述字符的字幕数据结构进行扩展,所述字符的字幕数据结构增加一个所述成员变量page步骤之前,该方法还包括:
通过调用所述API函数GetGlyphOutline得到所述字符的字幕数据,所述字符的字幕数据将小数部分精确到1/65536,所述字符的字幕数据的整数的范围为-32768~32767。
4.如权利要求3所述字幕数据处理的方法,其特征在于,所述字符的字幕数据为字符轮廓曲线的点的数据结构,
其中,点的数据结构定义为:名为POINTFX的结构体,所述结构体包含成员变量x和y,成员变量x和y的数据类型是定点数FIXED结构体,通过所述POINTFX用定点数结构描述了所述字符轮廓曲线上的点在二维空间上的x,y方向坐标;其中,所述FIXED结构体包含成员变量value和fract,所述成员变量value的数据类型是16位整型,所述成员变量fract的数据类型是16位无符号整型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810113852 CN101594480B (zh) | 2008-05-30 | 2008-05-30 | 一种字幕数据处理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810113852 CN101594480B (zh) | 2008-05-30 | 2008-05-30 | 一种字幕数据处理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101594480A CN101594480A (zh) | 2009-12-02 |
CN101594480B true CN101594480B (zh) | 2013-06-05 |
Family
ID=41408893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810113852 Expired - Fee Related CN101594480B (zh) | 2008-05-30 | 2008-05-30 | 一种字幕数据处理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101594480B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103581123B (zh) * | 2012-07-20 | 2018-09-21 | 南京中兴软件有限责任公司 | 网络数据的处理方法及装置、网络数据的发布方法及系统 |
CN110580633B (zh) * | 2018-06-08 | 2021-03-02 | 北京三快在线科技有限公司 | 信息的推送方法、装置及服务器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1388462A (zh) * | 2002-03-29 | 2003-01-01 | 上海汉峰信息科技有限公司 | 嵌入式应用以笔划中心线为基准描述的曲线字库 |
-
2008
- 2008-05-30 CN CN 200810113852 patent/CN101594480B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1388462A (zh) * | 2002-03-29 | 2003-01-01 | 上海汉峰信息科技有限公司 | 嵌入式应用以笔划中心线为基准描述的曲线字库 |
Non-Patent Citations (2)
Title |
---|
《TrueType 字体在图形图像处理软件中的应用》;杨建红等;《武汉大学学报(工学版)》;20041231;第37卷(第6期);110-112 * |
杨建红等.《TrueType 字体在图形图像处理软件中的应用》.《武汉大学学报(工学版)》.2004,第37卷(第6期),110-112. |
Also Published As
Publication number | Publication date |
---|---|
CN101594480A (zh) | 2009-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090628B (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
CN107807982B (zh) | 一种异构数据库的一致性校验方法及装置 | |
CN110008045A (zh) | 微服务的聚合方法、装置、设备及存储介质 | |
CN108628898B (zh) | 数据入库的方法、装置和设备 | |
CN111666442B (zh) | 一种图像检索方法、装置及计算机设备 | |
JP2020123953A (ja) | イメージファイルのブロック間の差を利用した圧縮率向上方法およびシステム | |
CN114610650A (zh) | 内存压缩方法、装置、存储介质及电子设备 | |
CN111491169B (zh) | 一种数字图像压缩方法、装置、设备、介质 | |
CN101594480B (zh) | 一种字幕数据处理的方法 | |
CN110569230A (zh) | 数据库设计模型与设计文档互相转换方法、系统及设备 | |
CN105320669A (zh) | 数据存储、读取方法及数据存储、读取装置 | |
CN111246249A (zh) | 一种图像编码方法、编码装置、解码方法、解码装置及存储介质 | |
CN114722781B (zh) | 一种将流式文档转换为ofd文档的方法和装置 | |
CN115904240A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN113379038A (zh) | 数据处理方法和电子设备 | |
CN114238250A (zh) | 程序文件压缩方法、装置及电子设备 | |
CN111324587A (zh) | Obj文件的数据的压缩方法、解析方法以及系统 | |
CN113504896B (zh) | 一种应用程序的业务数据处理方法、装置及移动终端 | |
US7075539B1 (en) | Apparatus and method for processing dual format floating-point data in a graphics processing system | |
CN116320067A (zh) | 图像数据的传输方法、装置及计算机设备 | |
CN111639055B (zh) | 差分包计算方法、装置、设备及存储介质 | |
CN109446226B (zh) | 一种数据集合确定的方法及设备 | |
CN113568578B (zh) | 一种图片处理方法、装置、电子设备和可读存储介质 | |
CN116342366A (zh) | 稀疏参数的获取方法、装置、电子设备及存储介质 | |
CN111259177B (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: 20130605 Termination date: 20170530 |