一种数据转换方法、装置及电子设备与流程

文档序号:12627451阅读:214来源:国知局
一种数据转换方法、装置及电子设备与流程
本发明涉及数据转换技术,尤其涉及一种数据转换方法、装置及电子设备。
背景技术
:随着计算机通信以及互联网技术,尤其是4G通信技术的不断发展,电子设备,例如,智能移动电话、个人数字助理、掌上电脑、笔记本电脑等应用越来越广泛,电子设备中安装的应用程序(APP,Application)越来越多,提供的应用功能也越来越丰富。举例来说,利用电子设备中内置的摄像头,可以随时随地进行视频拍照并存储,并将存储的视频或图像进行分享,从而能够极大地增强和丰富用户的体验。在多媒体领域,视频的存储格式与图像的存储格式不同,图像一般采用红绿蓝(RGB,Red、Green、Blue)存储格式,视频一般采用亮度和色差信号(LumaandChroma),即YUV存储格式。其中,Y表示明亮度(Luminance或Luma),即灰阶值;U和V表示色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色,明亮度信号Y和色度信号U、V是分离的。与要求三个独立的信号同时传输的RGB存储格式相比,YUV存储格式只需占用极少的频宽。目前,在电子设备中,摄像头采集的数据采用YUV存储格式,但在实际应用中,用户基于个性化的视频体验需求,需要对拍摄的视频进行一些个性化的后处理,例如,对摄像头拍摄的视频(数据)添加滤镜,在该后处理过程中,需要将YUV存储格式的数据转化为RGB存储格式的数据以进行相应处理,现有的转换方法是采用串行转换,即获取YUV存储格式的数据中的一像素点的YUV值,按照转换公式,转换为RGB存储格式的对应像素点的RGB值,然后,遍历YUV存储格式的数据中的每一像素点,以此完成对像素点的转换。但该数据转换方法,转换所需的时间较长,使得数据转换的实时性效率较低。技术实现要素:有鉴于此,本发明实施例提供一种数据转换方法、装置及电子设备,能够有效提升数据转换效率,以解决现有的数据串行转换方法中,数据转换所需的时间较长,数据转换的实时性效率较低的问题。第一方面,本发明实施例提供一种数据转换方法,包括:依序获取待转换数据帧中各像素点的待转换值,得到帧待转换值序列;查询转换公式编程器集,获取所述待转换值映射的转换公式编程器,所述转换公式编程器为对转换公式通过并行处理的方式进行编程的编程器;将所述帧待转换值序列写入获取的转换公式编程器中,运行所述获取的转换公式编程器,得到帧转换值序列。结合第一方面,在第一方面的第一种实施方式中,所述待转换值为采用YUV4:2:0采样格式的YUV值,所述获取的转换公式编程器中的转换公式为:Ri=Yi+1.403*(Vi-128)Gi=Yi-0.344*(Ui-128)-0.714*(Vi-128)Bi=Yi+1.770*(Ui-128)式中,Ri、Gi、Bi分别为第i个像素点的R转换值、G转换值以及B转换值;Yi、Ui、Vi分别为第i个像素点的Y待转换值、U待转换值以及V待转换值。结合第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述获取的转换公式编程器中包含有多个转换公式。结合第一方面的第一种实施方式,在第一方面的第三种实施方式中,利用硬件开放图形库的着色器对转换公式编程器进行编程。结合第一方面,在第一方面的第四种实施方式中,所述将所述帧待转换值序列写入获取的转换公式编程器中包括:统计所述获取的转换公式编程器中的转换公式数;对所述帧待转换值序列进行切分,每一切分得到的待转换值切分序列包含有所述转换公式数的像素点对应的待转换值;依序将待转换值切分序列写入获取的转换公式编程器中。第二方面,本发明实施例提供一种数据转换装置,包括:待转换序列生成模块、转换公式查询模块以及转换序列获取模块,其中,待转换序列生成模块,用于依序获取待转换数据帧中各像素点的待转换值,得到帧待转换值序列;转换公式查询模块,用于查询转换公式编程器集,获取所述待转换值映射的转换公式编程器,所述转换公式编程器为对转换公式通过并行处理的方式进行编程的编程器;转换序列获取模块,用于将所述帧待转换值序列写入获取的转换公式编程器中,运行所述获取的转换公式编程器,得到帧转换值序列。结合第二方面,在第二方面的第一种实施方式中,所述待转换值为采用YUV4:2:0采样格式的YUV值,所述获取的转换公式编程器中的转换公式为:Ri=Yi+1.403*(Vi-128)Gi=Yi-0.344*(Ui-128)-0.714*(Vi-128)Bi=Yi+1.770*(Ui-128)式中,Ri、Gi、Bi分别为第i个像素点的R转换值、G转换值以及B转换值;Yi、Ui、Vi分别为第i个像素点的Y待转换值、U待转换值以及V待转换值。结合第二方面的第一种实施方式,在第二方面的第二种实施方式中,所述获取的转换公式编程器中包含有多个转换公式。结合第二方面的第一种实施方式,在第二方面的第三种实施方式中,利用硬件开放图形库的着色器对转换公式编程器进行编程。结合第二方面,在第二方面的第四种实施方式中,所述转换序列获取模块包括:统计单元、切分单元、写入单元以及转换序列获取单元,其中,统计单元,统计所述获取的转换公式编程器中的转换公式数;切分单元,对所述帧待转换值序列进行切分,每一切分得到的待转换值切分序列包含有所述转换公式数的像素点对应的待转换值;写入单元,依序将待转换值切分序列写入获取的转换公式编程器中;转换序列获取单元,用于运行所述获取的转换公式编程器,得到帧转换值序列。第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行如下操作:依序获取待转换数据帧中各像素点的待转换值,得到帧待转换值序列;查询转换公式编程器集,获取所述待转换值映射的转换公式编程器,所述转换公式编程器为对转换公式通过并行处理的方式进行编程的编程器;将所述帧待转换值序列写入获取的转换公式编程器中,运行所述获取的转换公式编程器,得到帧转换值序列。第四方面,本发明实施例还提供了一种存储介质,用于存储应用程序,所述应用程序用于执行本发明实施例所提供的一种数据转换方法。第五方面,本发明实施例还提供了一种应用程序,用于执行本发明实施例所提供的一种数据转换方法。本发明实施例提供的一种数据转换方法、装置及电子设备,通过依序获取待转换数据帧中各像素点的待转换值,得到帧待转换值序列;查询转换公式编程器集,获取所述待转换值映射的转换公式编程器,所述转换公式编程器为对转换公式通过并行处理的方式进行编程的编程器;将所述帧待转换值序列写入获取的转换公式编程器中,运行所述获取的转换公式编程器,得到帧转换值序列,能够有效提升数据转换效率,以解决现有的数据串行转换方法中,数据转换所需的时间较长,数据转换的实时性效率较低的问题。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本发明的实施例一数据转换方法流程示意图;图2为本发明的实施例二数据转换装置结构示意图;图3为本发明电子设备一个实施例的结构示意图。具体实施方式下面结合附图对本发明实施例进行详细描述。应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。实施例一图1为本发明的实施例一数据转换方法流程示意图,如图1所示,本实施例的方法可以包括:步骤101,依序获取待转换数据帧中各像素点的待转换值,得到帧待转换值序列;本实施例中,作为一可选实施例,待转换数据可以是采用YUV存储格式的数据,例如,视频YUV数据;作为另一可选实施例,待转换数据也可以是采用RGB存储格式的数据,例如,视频RGB数据,本实施例对此不作限定。本实施例中,待转换数据包含一个或多个待转换数据帧,每一待转换数据帧对应一帧待转换值序列。作为一可选实施例,帧待转换值序列如表1所示。表1YUVP1Y1U1V1P2Y2U2V2…………PnYnUnVn表1中,P1、P2为像素点,n为待转换数据帧中包含的像素点数。步骤102,查询转换公式编程器集,获取所述待转换值映射的转换公式编程器,所述转换公式编程器为对转换公式通过并行处理的方式进行编程的编程器;本实施例中,作为一可选实施例,转换公式编程器集包括:YUV至RGB转换公式编程器以及RGB至YUV转换公式编程器。如果待转换值为YUV值,则该待转换值映射的转换公式编程器为YUV至RGB转换公式编程器,如果待转换值为RGB值,则该待转换值映射的转换公式编程器为RGB至YUV转换公式编程器。本实施例中,作为一可选实施例,利用硬件开放图形库(OpenGL,OpenGraphicsLibrary)的着色器(shader)对转换公式进行编程,这样,可以利用显卡的图形处理器(GPU,GraphicProcessingUnit)功能进行处理工作,可以释放CPU空间而提高效率。当然,实际应用中,也可以为采用软件编程方式对转换公式进行编程,本实施例对此不作限定。本实施例中,作为一可选实施例,可以为一个或多个像素点设置一线程以进行数据转换,在转换公式编程器中,包含有多个线程。本实施例中,对于YUV数据,YUV数据的采样格式包括:YUV4:4:4、YUV4:2:2以及YUV4:2:0。其中,对于YUV4:4:4采样格式,每一Y共用一组UV;对于YUV4:2:2采样格式,每两个Y共用一组UV;对于YUV4:2:0采样格式,每四个Y共用一组UV。其中,YUV4:2:0采样格式具有最大的压缩比率,例如,假设有一2x2大小的像素点,采用RGB存储格式进行存储,需要12个字节大小,如果采用YUV存储格式中的YUV4:2:0采样格式进行存储,只需要6个字节,占用的存储空间可以缩小一半。本实施例中,作为一可选实施例,待转换值为采用YUV4:2:0采样格式的YUV值。对于YUV4:2:0采样格式,由于是将YUV分量分别打包,将数据分为3块进行存储。例如,对于一W*H大小的数据,采用YUV420采样格式进行存储,为Y分配的存储空间大小为W*H,为U分配的存储空间大小为W*H/4,为V分配的存储空间大小为W*H/4。本实施例中,如果待转换值为采用YUV4:2:0采样格式的YUV值,对应的转换公式如下:Ri=Yi+1.403*(Vi-128)Gi=Yi-0.344*(Ui-128)-0.714*(Vi-128)Bi=Yi+1.770*(Ui-128)式中,Ri、Gi、Bi分别为第i个像素点的R转换值、G转换值以及B转换值;Yi、Ui、Vi分别为第i个像素点的Y待转换值、U待转换值以及V待转换值。本实施例中,通过为一个或多个像素点设置一转换公式,每一转换公式对应一线程,每一转换公式负责对应的一个或多个像素点的数据转换,使得在转换公式编程器中,包含有多个相同的转换公式,各像素点的Y和UV可以同时使用,不需要串行的依次进行转换,从而能够实现并行地将YUV数据转换为RGB数据,可以大大降低转换所需的时间,增强数据转换的实时性效率,提高数据转换性能。进一步地,利用OpenGL的shader对转换公式进行编程,由于OpenGL为一套GPU硬件接口,可以使用GPU对数据进行并行处理,能够有效加速整个数据转换过程。步骤103,将所述帧待转换值序列写入获取的转换公式编程器中,运行所述获取的转换公式编程器,得到帧转换值序列。本实施例中,作为一可选实施例,将所述帧待转换值序列写入获取的转换公式编程器中包括:A11,统计所述获取的转换公式编程器中的转换公式数;本实施例中,转换公式编程器中包含有一个或多个转换公式,每一转换公式对应一像素点的数据转换。根据转换公式编程器中的转换公式数,可以确定并行处理的像素点数。A12,对所述帧待转换值序列进行切分,每一切分得到的待转换值切分序列包含有所述转换公式数的像素点对应的待转换值;本实施例中,如果转换公式编程器中的转换公式数为5,则以5个像素点为切分单位,对帧待转换值序列进行切分处理,每一待转换值切分序列包含有5个像素点对应的待转换值,最后一待转换值切分序列可以包含少于5个像素点对应的待转换值。A13,依序将待转换值切分序列写入获取的转换公式编程器中。本实施例中,作为一可选实施例,可以将待转换值切分序列依次传入显卡的图形处理器(GPU,GraphicProcessingUnit)中。本实施例中,作为一可选实施例,可以启动OpenGL渲染管道以运行所述获取的转换公式编程器。通过启动OpenGL渲染管道,将传入显卡的图形处理器中的YUV数据(待转换值)并行利用YUV至RGB转换公式进行处理,得到RGB帧转换值序列,该并行处理耗时基本在1ms左右,因而,能够更快速地将YUV数据转换为RGB数据。本实施例中,在得到帧转换值序列(RGB数据)后,可以直接显示采用RGB存储格式的RGB数据,也可以从显卡的GPU中取出RGB数据,还可以对得到的RGB数据作进一步的处理,例如,对转换得到的RGB数据进行滤镜处理等。本发明实施例的数据转换方法,通过依序获取待转换数据帧中各像素点的待转换值,得到帧待转换值序列;查询转换公式编程器集,获取所述待转换值映射的转换公式编程器,所述转换公式编程器为对转换公式通过并行处理的方式进行编程的编程器;将所述帧待转换值序列写入获取的转换公式编程器中,运行所述获取的转换公式编程器,得到帧转换值序列。这样,由于在转换公式编程器中并行设置多个相同的转换公式,能够实现并行地将待转换值(例如,YUV数据)转换为转换值(例如,RGB数据),数据转换速度非常快,基本在1ms左右,性能能够达到串行算法的几十倍,从而可以大大降低数据转换所需的时间,能够有效提升数据转换的实时性效率。实施例二图2为本发明的实施例二数据转换装置结构示意图,如图2所示,本实施例的装置可以包括:待转换序列生成模块21、转换公式查询模块22以及转换序列获取模块23,其中,待转换序列生成模块21,用于依序获取待转换数据帧中各像素点的待转换值,得到帧待转换值序列;本实施例中,待转换数据可以是采用YUV存储格式的数据,例如,视频YUV数据;也可以是采用RGB存储格式的数据,例如,视频RGB数据。本实施例中,待转换数据包含一个或多个待转换数据帧,每一待转换数据帧对应一帧待转换值序列。转换公式查询模块22,用于查询转换公式编程器集,获取所述待转换值映射的转换公式编程器,所述转换公式编程器为对转换公式通过并行处理的方式进行编程的编程器;本实施例中,作为一可选实施例,转换公式编程器集包括:YUV至RGB转换公式编程器以及RGB至YUV转换公式编程器。如果待转换值为YUV值,则该待转换值映射的转换公式编程器为YUV至RGB转换公式编程器,如果待转换值为RGB值,则该待转换值映射的转换公式编程器为RGB至YUV转换公式编程器。本实施例中,作为一可选实施例,一转换公式编程器中包含有多个转换公式,每一转换公式对应一线程。本实施例中,作为一可选实施例,利用硬件开放图形库的着色器对转换公式编程器进行编程。转换序列获取模块23,用于将所述帧待转换值序列写入获取的转换公式编程器中,运行所述获取的转换公式编程器,得到帧转换值序列。本实施例中,作为一可选实施例,待转换值为采用YUV4:2:0采样格式的YUV值,所述获取的转换公式编程器中的转换公式为:Ri=Yi+1.403*(Vi-128)Gi=Yi-0.344*(Ui-128)-0.714*(Vi-128)Bi=Yi+1.770*(Ui-128)式中,Ri、Gi、Bi分别为第i个像素点的R转换值、G转换值以及B转换值;Yi、Ui、Vi分别为第i个像素点的Y待转换值、U待转换值以及V待转换值。本实施例中,作为一可选实施例,转换序列获取模块23包括:统计单元、切分单元、写入单元以及转换序列获取单元(图中未示出),其中,统计单元,统计所述获取的转换公式编程器中的转换公式数;切分单元,对所述帧待转换值序列进行切分,每一切分得到的待转换值切分序列包含有所述转换公式数的像素点对应的待转换值;写入单元,依序将待转换值切分序列写入获取的转换公式编程器中;本实施例中,作为一可选实施例,可以将待转换值切分序列依次传入显卡的图形处理器中。转换序列获取单元,用于运行所述获取的转换公式编程器,得到帧转换值序列。本实施例中,作为一可选实施例,可以启动OpenGL渲染管道以运行所述获取的转换公式编程器。本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,″计算机可读介质″可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。图3为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-2所示实施例的流程,如图3所示,上述电子设备可以包括:壳体31、处理器32、存储器33、电路板34和电源电路35,其中,电路板34安置在壳体31围成的空间内部,处理器32和存储器33设置在电路板34上;电源电路35,用于为上述电子设备的各个电路或器件供电;存储器33用于存储可执行程序代码;处理器32通过读取存储器33中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行如下操作:依序获取待转换数据帧中各像素点的待转换值,得到帧待转换值序列;查询转换公式编程器集,获取所述待转换值映射的转换公式编程器,所述转换公式编程器为对转换公式通过并行处理的方式进行编程的编程器;将所述帧待转换值序列写入获取的转换公式编程器中,运行所述获取的转换公式编程器,得到帧转换值序列。处理器32对上述步骤的具体执行过程以及处理器32通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-2所示实施例的描述,在此不再赘述。该电子设备以多种形式存在,包括但不限于:(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。(5)其他具有数据交互功能的电子设备。本发明实施例还提供了一种存储介质,用于存储应用程序,所述应用程序用于执行本发明实施例所提供的一种数据转换方法。本发明实施例还提供了一种应用程序,用于执行本发明实施例所提供的一种数据转换方法。本
技术领域
的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1