首页> 中国专利> YUV转换成RGB以及RGB转换成YUV的方法和系统

YUV转换成RGB以及RGB转换成YUV的方法和系统

摘要

一种YUV转换成RGB的方法,包括以下步骤:获取图像像素的YUV数据;将所述图像像素中多个像素的YUV数据的有效数位上的数字拼接到一个数据的不同段数位上,得到所述多个像素的组合YUV数据;计算所述多个像素的组合YUV数据,得到所述多个像素的组合RGB数据;获取所述组合RGB数据中各像素对应段的数位上的数字为各像素的RGB数据。YUV和RGB数据大小范围为0~255,只需要8位就能表示,而很多处理器可处理的数据位长大于8位。上述方法将图像中多个像素的数据组合成一个数据进行转换计算,充分利用了处理器的可处理数据位长,将多次转换计算合并成一次转换计算,从而提高了转换效率。此外,还提供一种RGB转换成YUV的方法和系统以及RGB与YUV相互转换的系统。

著录项

  • 公开/公告号CN103489427A

    专利类型发明专利

  • 公开/公告日2014-01-01

    原文格式PDF

  • 申请/专利权人 深圳深讯和科技有限公司;

    申请/专利号CN201210196607.2

  • 发明设计人 单旺财;陈小平;孔德明;肖本;

    申请日2012-06-14

  • 分类号G09G5/02(20060101);H04N9/64(20060101);

  • 代理机构44224 广州华进联合专利商标代理有限公司;

  • 代理人何平

  • 地址 518000 广东省深圳市南山区蛇口南海大道1079号花园城数码大厦A座201#

  • 入库时间 2024-02-19 21:57:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-02

    未缴年费专利权终止 IPC(主分类):G09G5/02 授权公告日:20151202 终止日期:20190614 申请日:20120614

    专利权的终止

  • 2015-12-02

    授权

    授权

  • 2014-02-05

    实质审查的生效 IPC(主分类):G09G5/02 申请日:20120614

    实质审查的生效

  • 2014-01-01

    公开

    公开

说明书

【技术领域】

本发明涉及图像处理领域,特别地涉及一种YUV转换成RGB的方法和系统、一种RGB转换成YUV的方法和系统以及一种RGB与YUV相互转换的系统。

【背景技术】

RGB和YUV都是色彩空间,用于表示颜色,两者可以相互转化.YUV中的“Y”表示明亮度,也就是灰阶值;而“U”和“V”表示的则是影像色彩及饱和度,用于指定像素的颜色。RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的。

与RGB视频信号传输相比,YUV视频信号最大的优点在于只需占用极少的数据存储空间和数据传输带宽,而且YUV视频信号还能非常方便的兼容黑白电视!然而,在液晶屏上显示则需要RGB视频信号。

YUV图像数据与RGB图像数据各有优缺点,因此,在很多场景下都有将YUV图像数据转换成RGB图像数据,或将RGB图像数据转换成YUV图像数据的需要。YUV与RGB相互转换的公式如下(RGB取值范围均为0-255):

Y=0.299R+0.587G+0.114B;

U=-0.147R-0.289G+0.436B;

V=0.615R-0.515G-0.100B;

R=Y+1.14V;

G=Y-0.39U-0.58V;

B=Y+2.03U。

如今,影视剧集一般都为高清图像,图像的分辨率高,数据量也非常大,一集片长为1小时的影视的数据量动辄达到数G。在YUV与RGB的相互转换中,图像的每一个像素的数据都要按照上述公式进行转换,计算量非常的大,效率比较低。

【发明内容】

基于此,有必要提供一种能提高转换效率的YUV转换成RGB的方法。

一种YUV转换成RGB的方法,包括以下步骤:

获取图像像素的YUV数据;

将所述图像像素中多个像素的YUV数据的有效数位上的数字拼接到一个数据的不同段数位上,得到所述多个像素的组合YUV数据;

计算所述多个像素的组合YUV数据,得到所述多个像素的组合RGB数据;

获取所述组合RGB数据中各像素对应段的数位上的数字为各像素的RGB数据。

在其中一种实施例中,所述将所述图像像素中多个像素的YUV数据的有效数位上的数字拼接到一个数据的不同段数位上,得到所述多个像素的组合YUV数据的步骤包括:

将所述多个像素的YUV数据分别左移不同的相应位数,并将左移后的YUV数据进行或运算,YUV数据左移的位数要使得每一个YUV数据的所述有效数位上的数字与其他YUV数据的所述有效数位上的数字在左移后的YUV数据中的数位不重叠,得到的或运算结果即为所述多个像素的组合YUV数据。

基于此,还有必要提供一种能提高转换效率的YUV转换成RGB的系统。

一种YUV转换成RGB的系统,包括:

数据获取模块,用于获取图像像素的YUV数据;

组合模块,用于将所述图像像素中多个像素的YUV数据的有效数位上的数字拼接到一个数据的不同段数位上,得到所述多个像素的组合YUV数据;

计算模块,用于计算所述多个像素的组合YUV数据,得到所述多个像素的组合RGB数据;

分解模块,用于获取所述组合RGB数据中各像素对应段的数位上的数字为各像素的RGB数据。

在其中一个实施例中,所述组合模块用于将所述多个像素的YUV数据分别左移不同的相应位数,并将左移后的YUV数据进行或运算,YUV数据左移的位数要使得每一个YUV数据的所述有效数位上的数字与其他YUV数据的所述有效数位上的数字在左移后的YUV数据中的数位不重叠,得到的或运算结果即为所述多个像素的组合YUV数据。

基于此,还有必要提供一种能提高转换效率的RGB转换成YUV的方法。

一种RGB转换成YUV的方法,包括以下步骤:

获取图像像素的RGB数据;

将所述图像像素中多个像素的RGB数据的有效数位上的数字拼接到一个数据的不同段数位上,得到所述多个像素的组合RGB数据;

计算所述多个像素的组合RGB数据,得到所述多个像素的组合YUV数据;

获取所述组合YUV数据中各像素对应段的数位上的数字为各像素的YUV数据。

在其中一个实施例中,所述将所述图像像素中多个像素的RGB数据的有效数位上的数字拼接到一个数据的不同段数位上,得到所述多个像素的组合RGB数据的步骤包括:

将所述多个像素的RGB数据分别左移不同的相应位数,并将左移后的RGB数据进行或运算,RGB数据左移的位数要使得每一个RGB数据的所述有效数位上的数字与其他RGB数据的所述有效数位上的数字在左移后的RGB数据中的数位不重叠,得到的或运算结果即为所述多个像素的组合RGB数据。

基于此,还有必要提供一种能提高转换效率的RGB转换成YUV的系统。

一种RGB转换成YUV的系统,包括:

数据获取模块,用于获取图像像素的RGB数据;

组合模块,用于将所述图像像素中多个像素的RGB数据的有效数位上的数字拼接到一个数据的不同段数位上,得到所述多个像素的组合RGB数据;

计算模块,用于计算所述多个像素的组合RGB数据,得到所述多个像素的组合YUV数据;

分解模块,用于获取所述组合YUV数据中各像素对应段的数位上的数字为各像素的YUV数据。

在其中一个实施例中,所述组合模块用于将所述多个像素的RGB数据分别左移不同的相应位数,并将左移后的RGB数据进行或运算,RGB数据左移的位数要使得每一个RGB数据的所述有效数位上的数字与其他RGB数据的所述有效数位上的数字在左移后的RGB数据中的数位不重叠,得到的或运算结果即为所述多个像素的组合RGB数据。

基于此,有必要提供一种能提高转换效率的RGB与YUV相互转换的系统。

一种RGB与YUV相互转换的系统,包括上述任一实施例中的YUV转换成RGB的系统以及上述任一实施例中的RGB转换成YUV的系统。

由于YUV和RGB数据大小的范围为0~255,只需要8位就能表示YUV和RGB数据,对于16位、32位、64位或128位的YUV或RGB数据,除末尾8位数字外,其余数位上的数字都为0,而16位、32位、64位、128位的处理器一次可分别处理16位、32位、64位、128位的数据,因此,上述YUV转换成RGB以及RGB转换成YUV的方法和系统以及RGB与YUV相互转换的系统,将图像中多个像素的数据组合成一个数据进行转换计算,充分利用了处理器的可处理数据位长,将多次转换计算合并成一次转换计算,从而提高了YUV转换成RGB以及RGB转换成YUV的效率。

【附图说明】

图1为一个实施例中的YUV转换成RGB的方法的流程示意图;

图2为一个实施例中步骤S20的流程示意图;

图3为一个实施例中的YUV转换成RGB的系统的结构示意图;

图4为一个实施例中的RGB转换成YUV的方法的流程示意图;

图5为一个实施例中的RGB转换成YUV的系统的结构示意图。

【具体实施方式】

如图1所示,在一个实施例中,一种YUV转换成RGB的方法,包括以下步骤:

步骤S10,获取图像像素的YUV数据。

具体的,YUV数据包括Y数据、U数据和V数据。

步骤S20,将图像像素中多个像素的YUV数据的有效数位上的数字拼接到一个数据的不同段数位上,得到所述多个像素的组合YUV数据。

具体的,YUV数据的有效数位上的数字包括YUV数据的末位数字至最高位非零数字。所述多个像素的YUV数据的有效数位上的数字的数量和小于等于将YUV转换成RGB的处理器可处理的数据位数。

以32位处理器为例,处理器计算的数据位长为32位,而YUV或RGB数据的大小范围为0~255,只需要8位即能表示,对于32位的YUV或RGB数据,除末尾8位外,其余数位上的数字均为0。因此,对于32位处理器,可获取4个像素的YUV数据的低8位数字组合成一个数据,或获取3个像素的YUV数据的低8位、低9位或低10位数字组合成一个数据。

在一个实施例中,步骤S20的具体过程为:将所述多个像素的YUV数据分别左移不同的相应位数,并将左移后的YUV数据进行或运算,YUV数据左移的位数要使得每一个YUV数据的所述有效数位上的数字与其他YUV数据的所述有效数位上的数字在左移后的YUV数据中的数位不重叠,得到的或运算结果即为所述多个像素的组合YUV数据。

如图2所示,在一个实施例中,步骤S20包括以下步骤:

步骤S202,将多个像素中一个像素的YUV数据左移预设数量位,该预设数量大于等于所述多个像素中每一个像素的有效数位的长度,所述多个像素的数量与该预设数量的积小于等于将YUV转换成RGB的处理器可处理的数据位数。

步骤S203,将左移后的YUV数据与所述多个像素中未参与过或运算的一个像素的YUV数据进行或运算。

步骤S204,将或运算结果左移所述预设数量位,将左移后的或运算结果与所述多个像素中未参与过或运算的一个像素的YUV数据进行或运算。

步骤S206,重复执行步骤S204,直到所述多个像素的YUV数据都参与过或运算,最终得到的或运算结果即为所述多个像素的组合YUV数据。

以32位处理器为例,设获取3个像素的YUV数据的低10位组合成一个数据,设3个像素的Y数据分别为:

00,0000000000,0000000000,0011000000;

00,0000000000,0000000000,0000011000;

00,0000000000,0000000000,0000000011。

可将第一个数据左移10位后与第二个数据进行或运算,得到00,0000000000,0011000000,0000011000,进一步将或运算结果左移10位后与第三个数据进行或运算,可得到00,0011000000,0000011000,0000000011,则该数据即为所述多个像素的组合YUV数据。

步骤S30,计算所述多个像素的组合YUV数据,得到所述多个像素的组合RGB数据。

具体的,步骤S10获取的YUV数据包括经过乘运算变换的YUV数据,具体包括:Y0、U1、U2、V1、V2,U1=0.39U0,U2=2.03U0,V1=1.14V0,V2=0.58V0,其中为,Y0、U0、V0为图像的原始Y数据、U数据、V数据。在步骤S10之前,可计算得到U1、U2、V1、V2,或在预先计算好的乘积表中查找U1、U2、V1、V2的值。进一步的,步骤S20将所述多个像素的Y0、U1、U2、V1、V2数据分别组合成Y0'、U1'、U2'、V1'、V2'。

进一步的,步骤S30可按照如下公式计算所述多个像素的组合RGB数据:组合R数据=Y0'+V1';组合G数据=Y0'-U1'-V2';组合B数据=Y0'+V2'。

步骤S40,获取组合RGB数据中各像素对应段的数位上的数字为各像素的RGB数据。

例如,对于32位处理器,将2个像素的YUV数据的低10位组合成组合YUV数据,第一个像素YUV数据的低10位在组合YUV数据中的位置为从末位数第11位至第20位,第二个像素YUV数据的低10位在组合YUV数据中的位置为从末位数第1位至第10位,则可获取组合RGB数据中从末位数第11位至第20位为第一个像素的RGB数据,获取组合RGB数据中从末位数第1位至第10位为第二个像素的RGB数据。

如图3所示,在一个实施例中,一种YUV转换成RGB的系统,包括数据获取模块10、组合模块20、计算模块30、分解模块40,其中:

数据获取模块10用于获取图像像素的YUV数据。

具体的,YUV数据包括Y数据、U数据和V数据。

组合模块20用于将图像像素中多个像素的YUV数据的有效数位上的数字拼接到一个数据的不同段数位上,得到所述多个像素的组合YUV数据。

具体的,YUV数据的有效数位上的数字包括YUV数据的末位数字至最高位非零数字。所述多个像素的YUV数据的有效数位上的数字的数量和小于等于将YUV转换成RGB的处理器可处理的数据位数。

以32位处理器为例,处理器计算的数据位长为32位,而YUV或RGB数据的大小范围为0~255,只需要8位即能表示,对于32位的YUV或RGB数据,除末尾8位外,其余数位上的数字均为0。因此,对于32位处理器,组合模块20可获取4个像素的YUV数据的低8位数字组合成一个数据,或获取3个像素的YUV数据的低8位、低9位或低10位数字组合成一个数据。

在一个实施例中,组合模块20可将所述多个像素的YUV数据分别左移不同的相应位数,并将左移后的YUV数据进行或运算,YUV数据左移的位数要使得每一个YUV数据的所述有效数位上的数字与其他YUV数据的所述有效数位上的数字在左移后的YUV数据中的数位不重叠,得到的或运算结果即为所述多个像素的组合YUV数据。

具体的,组合模块20可将多个像素中一个像素的YUV数据左移预设数量位,该预设数量大于等于所述多个像素中每一个像素的有效数位的长度,所述多个像素的数量与该预设数量的积小于等于将YUV转换成RGB的处理器可处理的数据位数,进一步的,可将左移后的YUV数据与所述多个像素中未参与过或运算的一个像素的YUV数据进行或运算;进一步的,组合模块20可将或运算结果左移所述预设数量位,将左移后的或运算结果与所述多个像素中未参与过或运算的一个像素的YUV数据进行或运算;进一步的,组合模块20可重复执行上一步骤,直到所述多个像素的YUV数据都参与过或运算,最终得到的或运算结果即为所述多个像素的组合YUV数据。

以32位处理器为例,设获取3个像素的YUV数据的低10位组合成一个数据,设3个像素的Y数据分别为:

00,0000000000,0000000000,0011000000;

00,0000000000,0000000000,0000011000;

00,0000000000,0000000000,0000000011。

组合模块20可将第一个数据左移10位后与第二个数据进行或运算,得到00,0000000000,0011000000,0000011000,进一步将或运算结果左移10位后与第三个数据进行或运算,可得到00,0011000000,0000011000,0000000011,则该数据即为所述多个像素的组合YUV数据。

计算模块30用于计算所述多个像素的组合YUV数据,得到所述多个像素的组合RGB数据。

具体的,数据获取模块10获取的YUV数据包括经过乘运算变换的YUV数据,具体包括:Y0、U1、U2、V1、V2,U1=0.39U0,U2=2.03U0,V1=1.14V0,V2=0.58V0,其中为,Y0、U0、V0为图像的原始Y数据、U数据、V数据。数据获取模块10可预先计算得到U1、U2、V1、V2,或在预先计算好的乘积表中查找U1、U2、V1、V2的值。进一步的,组合模块20用于将所述多个像素的Y0、U1、U2、V1、V2数据分别组合成Y0'、U1'、U2'、V1'、V2'。

进一步的,计算模块30可按照如下公式计算所述多个像素的组合RGB数据:组合R数据=Y0'+V1';组合G数据=Y0'-U1'-V2';组合B数据=Y0'+'V2'。

分解模块40获取组合RGB数据中各像素对应段的数位上的数字为各像素的RGB数据。

例如,对于32位处理器,组合模块20将2个像素的YUV数据的低10位组合成组合YUV数据,第一个像素YUV数据的低10位在组合YUV数据中的位置为从末位数第11位至第20位,第二个像素YUV数据的低10位在组合YUV数据中的位置为从末位数第1位至第10位,则分解模块40可获取组合RGB数据中从末位数第11位至第20位为第一个像素的RGB数据,获取组合RGB数据中从末位数第1位至第10位为第二个像素的RGB数据。

如图4所示,在一个实施例中,一种RGB转换成YUV的方法,包括以下步骤:

步骤S50,获取图像像素的RGB数据。

具体的,RGB数据包括R数据、G数据和B数据。

步骤S60,将图像像素中多个像素的RGB数据的有效数位上的数字拼接到一个数据的不同段数位上,得到所述多个像素的组合RGB数据。

具体的,RGB数据的有效数位上的数字包括RGB数据的末位数字至最高位非零数字。所述多个像素的RGB数据的有效数位上的数字的数量和小于等于将RGB转换成YUV的处理器可处理的数据位数。

具体的,可将所述多个像素的RGB数据分别左移不同的相应位数,并将左移后的RGB数据进行或运算,RGB数据左移的位数要使得每一个RGB数据的所述有效数位上的数字与其他RGB数据的所述有效数位上的数字在左移后的RGB数据中的数位不重叠,得到的或运算结果即为所述多个像素的组合RGB数据。

步骤S70,计算所述多个像素的组合RGB数据,得到所述多个像素的组合YUV数据。

具体的,步骤S50获取的RGB数据包括经过乘运算变换的RGB数据,具体包括:R1、R2、R3、G1、G2、G3、B1、B2、B3,其中:

R1=0.299R0,R2=0.147R0,R3=0.615R0

G1=0.587G0,G2=0.289G0,G3=0.515G0

B1=0.114B0,B2=0.436B0,B3=0.100B0

R0、G0、B0为图像的原始R数据、G数据、B数据。

在步骤S50之前,可计算得到R1、R2、R3、G1、G2、G3、B1、B2、B3,或在预先计算好的乘积表中查找R1、R2、R3、G1、G2、G3、B1、B2、B3的值。进一步的,步骤S60将所述多个像素的R1、R2、R3、G1、G2、G3、B1、B2、B3数据分别组合成R1'、R2'、R3'、G1'、G2'、G3'、B1'、B2'、B3'。

进一步的,步骤S70可按照如下公式计算所述多个像素的组合YUV数据:组合Y数据=R1'+G1'+B1';组合U数据=-R2'-G2'+B2';组合V数据=R3'-G3'-B3'。

步骤S80,获取所述组合YUV数据中各像素对应段的数位上的数字为各像素的YUV数据。

如图5所示,在一个实施例中,一种RGB转换成YUV的系统,包括数据获取模块50、组合模块60、计算模块70、分解模块80,其中:

数据获取模块50用于获取图像像素的RGB数据。

组合模块60用于将所述图像像素中多个像素的RGB数据的有效数位上的数字拼接到一个数据的不同段数位上,得到所述多个像素的组合RGB数据。

具体的,RGB数据的有效数位上的数字包括RGB数据的末位数字至最高位非零数字。所述多个像素的RGB数据的有效数位上的数字的数量和小于等于将RGB转换成YUV的处理器可处理的数据位数。

组合模块60用于将所述多个像素的RGB数据分别左移不同的相应位数,并将左移后的RGB数据进行或运算,RGB数据左移的位数要使得每一个RGB数据的所述有效数位上的数字与其他RGB数据的所述有效数位上的数字在左移后的RGB数据中的数位不重叠,得到的或运算结果即为所述多个像素的组合RGB数据。

计算模块70用于计算所述多个像素的组合RGB数据,得到所述多个像素的组合YUV数据。

分解模块80用于获取所述组合YUV数据中各像素对应段的数位上的数字为各像素的YUV数据。

一种RGB与YUV相互转换的系统,包括上述任一实施例中的YUV转换成RGB的系统以及上述任一实施例中的RGB转换成YUV的系统。

由于YUV和RGB数据大小的范围为0~255,只需要8位就能表示YUV和RGB数据,对于16位、32位、64位或128位的YUV或RGB数据,除末尾8位数字外,其余数位上的数字都为0,而16位、32位、64位、128位的处理器一次可分别处理16位、32位、64位、128位的数据,因此,上述YUV转换成RGB以及RGB转换成YUV的方法和系统以及RGB与YUV相互转换的系统,将图像中多个像素的数据组合成一个数据进行转换计算,充分利用了处理器的可处理数据位长,将多次转换计算合并成一次转换计算,从而提高了YUV转换成RGB以及RGB转换成YUV的效率。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序控制相关的硬件来完成的,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号