一种数据渲染方法及装置的制作方法

文档序号:6386044阅读:194来源:国知局
专利名称:一种数据渲染方法及装置的制作方法
技术领域
本发明涉及图像处理技术领域,具体涉及一种数据渲染方法及装置。
背景技术
随着三维实时渲染技术的不断发展,三维实时渲染技术也应用到了广播电视领域 中,进而产生了三维在线包装系统。三维包装系统由计算机、视频卡和渲染设备组成。计算 机提供了整个三维包装系统的运行平台,视频卡提供了视频画面的输入、输出以及实现视 频、图文之间的快速混合功能,渲染设备是整个系统的核心,它是制作和显示图文模板、控 制视频卡运行和输出的交互工具。
视频卡是多种多样的,渲染设备通过视频卡采集的视频信号也是分很多种类 型比如视频图形阵列(Video Graphics Array, VGA)、数字视频接口(Digital Video Interface, DVI)、高清晰度多媒体接口(High Definition Multimedia Interface, HDMI)、 数字串行接口(serial digital interface, SDI)等,但是从这些视频信号的数据结构上总 的来说分为两种逐行数据和隔行数据。在渲染设备中通过视频卡采集的视频信号有的是 隔行数据,有的是逐行数据,针对逐行数据来说,对其进行数据渲染后直接传递给视频卡输 出是没有问题的,然而,针对隔行数据来说,对其进行数据渲染后会被转换成为逐行数据, 然后再传递给视频卡输出,这时会出现渲染结果奇偶行数据和视频卡输出要求的奇偶行数 据不对应,因此输出的三维画面会出现锯齿和闪烁现象。
为了避免输出的画面出现锯齿和闪烁现象,现有的渲染设备采用以下两种方法将 隔行数据转换为逐行数据再进行数据渲染
第一种方法
针对隔行数据在内存中对视频卡采集到每帧数据进行一次数据结构的转换,把奇 偶行数据进行相应的数学运算,针对相应行数的奇行数据或偶行数据拟合成为一行或多行 不存在奇偶行特征的数据,也即把隔行数据转换成逐行数据再进行数据渲染。
第二种方法
采用特殊的硬件设备将隔行数据转换为逐行数据。
上述两种方法避免输出的画面出现锯齿和闪烁现象,然而针对第一种方法,其不 足之处在于一方面,由于将隔行数据转换为逐行数据需要占用了大量的CPU资源,因此使 得渲染设备的实时数据渲染性能降低,并且在渲染设备同时对视频卡采集的多路隔行数据 进行实时数据渲染时,渲染设备的实时数据渲染性能的下降更为明显;另一方面,由于将隔 行数据转换为逐行数据后,原有的视频信息会被修改,并且修改是有损和不可逆的,因此视 频信号的质量会降低。针对第二种方法,其不足之处在于一方面,由于采用特殊硬件进行 处理的过程是需要获取前后几帧数据,然后合并计算的,视频信号输入输出设备变会有几 帧的差距,因此,引擎的渲染效率受到了硬件的限制,视频数据的采集和输出的实时性就很 降低,另一方面,由于受制于特殊的硬件设备,因此渲染设备的可扩展和灵活性降低。

发明内容
本发明实施例提供了ー种数据渲染方法及装置,用于解决现有技术中针对隔行数据进行数据渲染时,渲染设备的实时数据渲染性能的下降的问题。本发明实施例提供的技术方案主要包括ー种数据渲染方法,该方法包括读取并存储视频卡采集的每帧数据,获得该帧数据的数据结构信息;在该帧数据的数据结构为隔行数据时,改变该帧数据的数据结构,将该帧数据的奇数行数据合并在一起作为该帧数据的奇行数据,将该帧数据的偶数行数据合并在一起作为该帧数据的偶行数据;根据视频卡输出的需要对该帧数据进行数据渲染,在视频卡需要输出奇行数据吋,读取存储的该帧数据的奇行数据进行渲染,在视频卡需要输出偶行数据时,读取存储的该帧数据的偶行数据进行数据渲染。ー种数据渲染装置,该装置包括帧数据读取模块,用于读取并存储视频卡采集的每帧数据,获得该帧数据的数据结构信息;数据结构改变模块,用于在该帧数据的数据结构为隔行数据时,改变该帧数据的数据结构,将该帧数据的奇数行数据合并在一起作为该帧数据的奇行数据,将该帧数据的偶数行数据合并在一起作为该帧数据的偶行数据;渲染模块,用于根据视频卡输出的需要对该帧数据进行数据渲染,在视频卡需要输出奇行数据时,读取存储的该帧数据的奇行数据进行渲染,在视频卡需要输出偶行数据吋,读取存储的该帧数据的偶行数据进行数据渲染。本发明实施例,通过分别将隔行数据的奇行数据和偶行数据进行合并,并在需对该帧数据的奇行数据进行渲染时,读取存储的该帧数据的奇行数据进行渲染,在需对该帧数据的偶行数据进行数据渲染吋,读取存储的该帧数据的偶行数据进行数据渲染,由于不对隔行数据进行逐行数据的转换处理,因此,在避免三维画面通过视频卡输出时出现锯齿和闪烁现象的同时减轻了 CPU的资源占用量,提高了三维实时渲染的效率。


图1为本发明实施例提供的数据渲染方法的流程示意图;图2为本发明实施例提供的奇偶行数据合并示意图;图3为本发明实施例提供的数据渲染装置结构示意图。
具体实施例方式本发明实施例提供了ー种数据渲染方法及装置,利用了在进行渲染数据输出时视频卡将奇行数据和偶行数据分开输出这一原理,分别将隔行数据的奇行数据和偶行数据进行合并,并在需对该帧数据的奇行数据进行渲染时,读取存储的该帧数据的奇行数据进行渲染,在需对该帧数据的偶行数据进行数据渲染吋,读取存储的该帧数据的偶行数据进行数据渲染,由于不对隔行数据进行逐行数据的转换处理,因此,在避免三维画面通过视频卡输出时出现锯齿和闪烁现象的同时减轻了 CPU的资源占用量,提高了三维实时渲染的效率。
如图1所示,其为本发明实施例提供的一种数据渲染方法的流程图,该方法包括 以下步骤
步骤101 :读取并存储视频卡采集的每帧数据,获得该帧数据的数据结构信息。
数据结构是指计算机存储、组织数据的方式,现有的数据结构包括逐行数据和隔 行数据。
较佳的,在本步骤101中,还获得了该帧数据的数据宽度和高度信息。
具体实施时,本步骤101可以是渲染设备读取视频卡采集的每帧数据,读取每帧 数据的信息,该帧数据的宽度、高度和数据结构。在内存中创建一块同样大小的数据块,把 该帧数据拷贝到创建好的内存块中,从而完成从视频卡到内存的搬移。
步骤102 :判断该帧数据的编码格式是否为预先设定的编码格式,若否,则执行步 骤103,若是,则执行步骤104。
由于视频卡采集到的数据的编码格式分很多种,如亮度参量和色度参量分开表 示的像素格式YUV、红绿蓝(Red Blue Green,RGB)。为了保证数据采集的兼容性需要把各 种数据编码格式转化为统一的数据编码格式后再交给渲染设备进行数据渲染。
步骤103 :将该帧数据的编码格式转换为预先设定的编码格式,并执行步骤104。
所述预先设定的编码格式是根据渲染设备支持的格式来设定的,假设渲染设备支 持红绿蓝不透明参数(Red Blue Green Alpha, RGBA)编码格式,则可以将帧数据的编码格 式转换为RGBA格式。
需要说明的是,步骤102和步骤103是本发明实施例的优选步骤,本发明实施例也 可以不执行步骤102和步骤103。
步骤104 :判断该帧数据的数据结构是否为隔行数据,若是,则执行步骤105,若 否,则执行步骤107。
本步骤104中是根据步骤101中获得该帧数据的数据结构信息来判定的。
步骤105 :改变该帧数据的数据结构,将该帧数据的奇数行数据合并在一起作为 该帧数据的奇行数据,将该帧数据的偶数行数据合并在一起作为该帧数据的偶行数据,并 执行步骤106。
本步骤105的奇数行数据合并的过程及偶数行数据合并的过程如图2中所示的示 意图,其中,图2中左边的图表示的是改变帧数据的数据结构之前的帧数据的数据结构,一 行奇数行数据和一行偶数行数据交替存储;图2中右边的图表示的是改变了帧数据的数据 结构之后的帧数据的数据结构,奇数行数据存储在该帧数据的存储空间的上半部分,偶数 行数据存储在该帧数据的存储空间的下半部分。
当然,在本步骤105中,改变帧数据的数据结构并不限于将奇数行数据存储在该 帧数据的存储空间的上半部分,偶数行数据存储在该帧数据的存储空间的下边部分,也可 以将将偶数行数据存储在该帧数据的存储空间的上半部分,奇数行数据存储在该帧数据的 存储空间的下半部分。
若在步骤101中获得了该帧数据的数据宽度和高度信息,则本步骤105中,改变该 帧数据的数据结构,具体包括
根据获得的该帧数据的数据宽度和高度信息,依次提取该帧数据的每一奇数行数据和每一偶数行数据,将提取的该帧数据的所有奇数行数据进行合并作为该帧数据的奇行数据,将提取的该帧数据的所有偶数行数据进行合并作为该帧数据的偶行数据。步骤106 :读取改变了帧数据的数据结构的帧数据来创建纹理贴图,并执行步骤108。由于目前渲染设备中的显卡只能处理纹理贴图数据,因此,需要读取改变了帧数据的数据结构的帧数据创建纹理贴图才能被显卡识别。具体实施时,可将根据采集到的改变了帧数据的数据结构的帧数据的大小在显存上创建相同大小的纹理贴图,进而完成从内存到显存的传递,为渲染设备进行数据渲染做准备。此时,由于所述改变了帧数据的数据结构的帧数据的上半部分是奇行数据,下半部分是偶行数据,因此,转换为纹理贴图之后,该纹理贴图的上半部分仍是奇行数据,下半部分是仍偶行数据。步骤107 :读取逐行数据创建纹理贴图,并执行步骤108。针对逐行数据,也需要创建纹理贴图,并在显存上创建与逐行数据的数据大小相同的纹理纹理贴图,进而完成从内存到显存的传递,为渲染设备进行数据渲染做准备。此时,由于并未对数据结构为逐行数据的帧数据的数据结构进行改变,因此,将其转换为纹理贴图之后,该纹理贴图的上半部分仍是原有的帧数据的上半部分,下半部分是仍是原有的帧数据的下半部分。需要说明的是步骤106和步骤107是本发明实施例的优选步骤,渲染设备中的显卡不是只能处理纹理贴图的数据时,也可以不执行步骤106和步骤107,直在步骤105之后,直接根据视频卡输出的需要对该帧数据进行数据渲染,在需要对该帧数据的奇数行数据进行渲染时,读取存储的该帧数据的奇行数据进行渲染,在需要对该帧数据的偶数行数据进行数据渲染吋,读取存储的该帧数据的偶行数据进行数据渲染。步骤108 :根据视频卡输出的需要对该帧数据进行数据渲染,在视频卡需要输出奇行数据时,读取所述纹理贴图中对应于奇行数据部分的数据进行渲染,在视频卡需要输出偶行数据,读取所述纹理贴图中对应于偶行数据部分的数据进行渲染。在本发明的实施例中,由于不再做隔行数据到逐行数据的转换,这样就有效减少了数据处理的中间过程,降低了 CPU的资源占用。并且没有对隔行数据进行逐行数据的转换,这样,就不会降低原有视频的显示质量(即输出时不会出现锯齿和闪烁现象),也不需要对比该帧数据前后几帧的数据做计算,因此不需要采集几帧的数据,能实时的播放帧视频,不会造成了采集和播出的帧延迟,相对于现有技术而言,提高了渲染的实时性。如图3所示,其为本发明实施例提供的ー种数据渲染装置的结构示意图,该装置包括帧数据读取模块11、数据结构改变模块12和渲染模块13 ;其中帧数据读取模块11,用于读取并存储视频卡采集的每帧数据,获得该帧数据的数据结构信息。数据结构改变模块12,用于在该帧数据的数据结构为隔行数据时,改变该帧数据的数据结构,将该帧数据的奇数行数据合并在一起作为该帧数据的奇行数据,将该帧数据的偶数行数据合并在一起作为该帧数据的偶行数据。渲染模块13,用于根据视频卡输出的需要对该帧数据进行数据渲染,在视频卡需要输出奇行数据时,读取存储的该帧数据的奇行数据进行渲染,在视频卡需要输出偶行数 据时,读取存储的该帧数据的偶行数据进行数据渲染。
所述装置还包括
判断模块14,用于判断每帧数据的编码格式是否为预先设定的编码格式。
编码格式转变模块15,用于在每帧数据的编码格式不为预先设定的编码格式时, 将该帧数据的编码格式转换为预先设定的编码格式。
较优的,所述装置还包括
纹理贴图创建模块16,用于将改变了帧数据的数据结构的帧数据的数据格式转换 为纹理贴所述渲染模块13,具体用于在视频卡需要输出奇行数据时,读取所述纹理贴图中 对应于奇行数据部分的数据进行渲染,在视频卡需要输出偶行数据,读取所述纹理贴图中 对应于偶行数据部分的数据进行渲染。
较优的,所述帧数据读取模块11,还用于获得该帧数据的数据宽度和高度信息;
所述数据结构改变模块12,具体用于根据获得的该帧数据的数据宽度和高度信 息,依次提取该帧数据的每一奇数行数据和每一偶数行数据,将提取的该帧数据的所有奇 数行数据合并在一起作为该帧数据的奇行数据,将提取的该帧数据的偶数行数据合并在一 起作为该帧数据的偶行数据。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序 产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实 施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机 可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形 式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程 图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一 流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算 机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理装置的处理 器以产生一个机器,使得通过计算机或其他可编程数据处理装置的处理器执行的指令产生 用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能 的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理装置以特 定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指 令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或 多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理装置上,使得在计 算机或其他可编程装置上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或 其他可编程装置上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图 一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种数据渲染方法,其特征在于,该方法包括读取并存储视频卡采集的每帧数据,获得该帧数据的数据结构信息;在该帧数据的数据结构为隔行数据时,改变该帧数据的数据结构,将该帧数据的奇数行数据合并在一起作为该帧数据的奇行数据,将该帧数据的偶数行数据合并在一起作为该帧数据的偶行数据;根据视频卡输出的需要对该帧数据进行数据渲染,在视频卡需要输出奇行数据时,读取存储的该帧数据的奇行数据进行渲染,在视频卡需要输出偶行数据时,读取存储的该帧数据的偶行数据进行数据渲染。
2.如权利要求1所述的方法,其特征在于,在读取并存储视频卡采集的每帧数据之后, 将该帧数据的奇数行数据合并在一起作为该帧数据的奇行数据,将该帧数据的偶数行数据合并在一起作为该帧数据的偶行数据之前,所述方法还包括判断每帧数据的编码格式是否为预先设定的编码格式;在每帧数据的编码格式不为预先设定的编码格式时,将该帧数据的编码格式转换为预先设定的编码格式。
3.如权利要求1所述的方法,其特征在于,在将该帧数据的奇数行数据合并在一起作为该帧数据的奇行数据,将该帧数据的偶数行数据合并在一起作为该帧数据的偶行数据之后,根据视频卡输出的需要对该帧数据进行数据渲染之前,所述方法还包括读取改变了帧数据的数据结构的帧数据来创建纹理贴图;所述根据视频卡输出的需要对该帧数据进行数据渲染具体包括在视频卡需要输出奇行数据时,读取所述纹理贴图中对应于奇行数据部分的数据进行渲染,在视频卡需要输出偶行数据,读取所述纹理贴图中对应于偶行数据部分的数据进行渲染。
4.如权利要求1所述的方法,其特征在于,读取并存储视频卡采集的每帧数据,还获得该帧数据的数据宽度和高度信息;所述在该帧数据的数据结构为隔行数据时,改变该帧数据的数据结构,具体包括根据获得的该帧数据的数据宽度和高度信息,依次提取该帧数据的每一奇数行数据和每一偶数行数据,将提取的该帧数据的所有奇数行数据进行合并作为该帧数据的奇行数据,将提取的该帧数据的所有偶数行数据进行合并作为该帧数据的偶行数据。
5.一种数据渲染装置,其特征在于,该装置包括帧数据读取模块,用于读取并存储视频卡采集的每帧数据,获得该帧数据的数据结构信息;数据结构改变模块,用于在该帧数据的数据结构为隔行数据时,改变该帧数据的数据结构,将该帧数据的奇数行数据合并在一起作为该帧数据的奇行数据,将该帧数据的偶数行数据合并在一起作为该帧数据的偶行数据;渲染模块,用于根据视频卡输出的需要对该帧数据进行数据渲染,在视频卡需要输出奇行数据时,读取存储的该帧数据的奇行数据进行渲染,在视频卡需要输出偶行数据时,读取存储的该帧数据的偶行数据进行数据渲染。
6.如权利要求5所述的装置,其特征在于,所述装置还包括判断模块,用于判断每帧数据的编码格式是否为预先设定的编码格式;编码格式转变模块,用于在每帧数据的编码格式不为预先设定的编码格式吋,将该帧数据的编码格式转换为预先设定的编码格式。
7.如权利要求5所述的装置,其特征在于,所述装置还包括 纹理贴图创建模块,用于读取改变了帧数据的数据结构的帧数据来创建纹理贴图; 所述渲染模块,具体用于在视频卡需要输出奇行数据时,读取所述纹理贴图中对应于奇行数据部分的数据进行渲染,在视频卡需要输出偶行数据,读取所述纹理贴图中对应于偶行数据部分的数据进行渲染。
8.如权利要求5所述的装置,其特征在干, 所述帧数据读取模块,还用于获得该帧数据的数据宽度和高度信息; 所述数据结构改变模块,具体用于根据获得的该帧数据的数据宽度和高度信息,依次提取该帧数据的每ー奇数行数据和每一偶数行数据,将提取的该帧数据的所有奇数行数据合并在一起作为该帧数据的奇行数据,将提取的该帧数据的偶数行数据合并在一起作为该帧数据的偶行数据。
全文摘要
本发明公开了一种数据渲染方法及装置,主要内容为读取并存储视频卡采集的每帧数据;在该帧数据的数据结构为隔行数据时,改变帧数据的数据结构,将帧数据的奇数行数据合并在一起作为该帧数据的奇行数据,将该帧数据的偶数行数据合并在一起作为该帧数据的偶行数据;根据输出的需要对该帧数据进行数据渲染。在本发明实施例中通过分别将隔行数据的奇行数据和偶行数据进行合并,并在需对奇行数据进行渲染时,读取该奇行数据进行渲染,在需对偶行数据进行数据渲染时,读取该偶行数据进行数据渲染,由于不对隔行数据进行逐行数据的转换处理,因此在避免对渲染画面输出时出现锯齿和闪烁现象的同时减轻了CPU的资源占用量,提高了三维实时渲染的效率。
文档编号G06T15/00GK103065349SQ201210587868
公开日2013年4月24日 申请日期2012年12月31日 优先权日2012年12月31日
发明者程斌, 陈忠会 申请人:北京东方艾迪普科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1