Yuv轉(zhuǎn)換成rgb以及rgb轉(zhuǎn)換成yuv的方法和系統(tǒng)的制作方法
【專利摘要】一種YUV轉(zhuǎn)換成RGB的方法,包括以下步驟:獲取圖像像素的YUV數(shù)據(jù);將所述圖像像素中多個像素的YUV數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合YUV數(shù)據(jù);計算所述多個像素的組合YUV數(shù)據(jù),得到所述多個像素的組合RGB數(shù)據(jù);獲取所述組合RGB數(shù)據(jù)中各像素對應(yīng)段的數(shù)位上的數(shù)字為各像素的RGB數(shù)據(jù)。YUV和RGB數(shù)據(jù)大小范圍為0~255,只需要8位就能表示,而很多處理器可處理的數(shù)據(jù)位長大于8位。上述方法將圖像中多個像素的數(shù)據(jù)組合成一個數(shù)據(jù)進行轉(zhuǎn)換計算,充分利用了處理器的可處理數(shù)據(jù)位長,將多次轉(zhuǎn)換計算合并成一次轉(zhuǎn)換計算,從而提高了轉(zhuǎn)換效率。此外,還提供一種RGB轉(zhuǎn)換成YUV的方法和系統(tǒng)以及RGB與YUV相互轉(zhuǎn)換的系統(tǒng)。
【專利說明】YUV轉(zhuǎn)換成RGB以及RGB轉(zhuǎn)換成YUV的方法和系統(tǒng)
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明涉及圖像處理領(lǐng)域,特別地涉及一種YUV轉(zhuǎn)換成RGB的方法和系統(tǒng)、一種RGB轉(zhuǎn)換成YUV的方法和系統(tǒng)以及一種RGB與YUV相互轉(zhuǎn)換的系統(tǒng)。
【【背景技術(shù)】】
[0002]RGB和YUV都是色彩空間,用于表示顏色,兩者可以相互轉(zhuǎn)化.YUV中的“Y”表示明亮度,也就是灰階值;而“U”和“V”表示的則是影像色彩及飽和度,用于指定像素的顏色。RGB色彩模式是工業(yè)界的一種顏色標(biāo)準(zhǔn),是通過對紅(R)、綠(G)、藍(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的。
[0003]與RGB視頻信號傳輸相比,YUV視頻信號最大的優(yōu)點在于只需占用極少的數(shù)據(jù)存儲空間和數(shù)據(jù)傳輸帶寬,而且YUV視頻信號還能非常方便的兼容黑白電視!然而,在液晶屏上顯示則需要RGB視頻信號。
[0004]YUV圖像數(shù)據(jù)與RGB圖像數(shù)據(jù)各有優(yōu)缺點,因此,在很多場景下都有將YUV圖像數(shù)據(jù)轉(zhuǎn)換成RGB圖像數(shù)據(jù),或?qū)GB圖像數(shù)據(jù)轉(zhuǎn)換成YUV圖像數(shù)據(jù)的需要。YUV與RGB相互轉(zhuǎn)換的公式如下(RGB取值范圍均為0-255):
[0005]Y=0.299R+0.587G+0.114B ;
[0006]U=-0.147R-0.289G+0.436B ;
[0007]V=0.615R-0.515G—0.100B ;
[0008]R=Y+1.14V ;
[0009]G=Y-0.39U-0.58V ;
[0010]B=Y+2.03U。
[0011]如今,影視劇集一般都為高清圖像,圖像的分辨率高,數(shù)據(jù)量也非常大,一集片長為I小時的影視的數(shù)據(jù)量動輒達到數(shù)G。在YUV與RGB的相互轉(zhuǎn)換中,圖像的每一個像素的數(shù)據(jù)都要按照上述公式進行轉(zhuǎn)換,計算量非常的大,效率比較低。
【
【發(fā)明內(nèi)容】
】
[0012]基于此,有必要提供一種能提高轉(zhuǎn)換效率的YUV轉(zhuǎn)換成RGB的方法。
[0013]一種YUV轉(zhuǎn)換成RGB的方法,包括以下步驟:
[0014]獲取圖像像素的YUV數(shù)據(jù);
[0015]將所述圖像像素中多個像素的YUV數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合YUV數(shù)據(jù);
[0016]計算所述多個像素的組合YUV數(shù)據(jù),得到所述多個像素的組合RGB數(shù)據(jù);
[0017]獲取所述組合 RGB數(shù)據(jù)中各像素對應(yīng)段的數(shù)位上的數(shù)字為各像素的RGB數(shù)據(jù)。
[0018]在其中一種實施例中,所述將所述圖像像素中多個像素的YUV數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合YUV數(shù)據(jù)的步驟包括:
[0019]將所述多個像素的YUV數(shù)據(jù)分別左移不同的相應(yīng)位數(shù),并將左移后的YUV數(shù)據(jù)進行或運算,YUV數(shù)據(jù)左移的位數(shù)要使得每一個YUV數(shù)據(jù)的所述有效數(shù)位上的數(shù)字與其他YUV數(shù)據(jù)的所述有效數(shù)位上的數(shù)字在左移后的YUV數(shù)據(jù)中的數(shù)位不重疊,得到的或運算結(jié)果即為所述多個像素的組合YUV數(shù)據(jù)。
[0020]基于此,還有必要提供一種能提高轉(zhuǎn)換效率的YUV轉(zhuǎn)換成RGB的系統(tǒng)。
[0021 ] 一種YUV轉(zhuǎn)換成RGB的系統(tǒng),包括:
[0022]數(shù)據(jù)獲取模塊,用于獲取圖像像素的YUV數(shù)據(jù);
[0023]組合模塊,用于將所述圖像像素中多個像素的YUV數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合YUV數(shù)據(jù);
[0024]計算模塊,用于計算所述多個像素的組合YUV數(shù)據(jù),得到所述多個像素的組合RGB數(shù)據(jù);
[0025]分解模塊,用于獲取所述組合RGB數(shù)據(jù)中各像素對應(yīng)段的數(shù)位上的數(shù)字為各像素的RGB數(shù)據(jù)。
[0026]在其中一個實施例中,所述組合模塊用于將所述多個像素的YUV數(shù)據(jù)分別左移不同的相應(yīng)位數(shù),并將左移后的YUV數(shù)據(jù)進行或運算,YUV數(shù)據(jù)左移的位數(shù)要使得每一個YUV數(shù)據(jù)的所述有效數(shù)位上的數(shù)字與其他YUV數(shù)據(jù)的所述有效數(shù)位上的數(shù)字在左移后的YUV數(shù)據(jù)中的數(shù)位不重疊,得到的或運算結(jié)果即為所述多個像素的組合YUV數(shù)據(jù)。
[0027]基于此,還有必要提供一種能提高轉(zhuǎn)換效率的RGB轉(zhuǎn)換成YUV的方法。
[0028]一種RGB轉(zhuǎn)換成YUV的方法,包括以下步驟:
[0029]獲取圖像像素的RGB數(shù)據(jù);
[0030]將所述圖像像素中多個像素的RGB數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合RGB數(shù)據(jù);
[0031]計算所述多個像素的組合RGB數(shù)據(jù),得到所述多個像素的組合YUV數(shù)據(jù);
[0032]獲取所述組合YUV數(shù)據(jù)中各像素對應(yīng)段的數(shù)位上的數(shù)字為各像素的YUV數(shù)據(jù)。
[0033]在其中一個實施例中,所述將所述圖像像素中多個像素的RGB數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合RGB數(shù)據(jù)的步驟包括:
[0034]將所述多個像素的RGB數(shù)據(jù)分別左移不同的相應(yīng)位數(shù),并將左移后的RGB數(shù)據(jù)進行或運算,RGB數(shù)據(jù)左移的位數(shù)要使得每一個RGB數(shù)據(jù)的所述有效數(shù)位上的數(shù)字與其他RGB數(shù)據(jù)的所述有效數(shù)位上的數(shù)字在左移后的RGB數(shù)據(jù)中的數(shù)位不重疊,得到的或運算結(jié)果即為所述多個像素的組合RGB數(shù)據(jù)。
[0035]基于此,還有必要提供一種能提高轉(zhuǎn)換效率的RGB轉(zhuǎn)換成YUV的系統(tǒng)。
[0036]一種RGB轉(zhuǎn)換成YUV的系統(tǒng),包括:
[0037]數(shù)據(jù)獲取模塊,用于獲取圖像像素的RGB數(shù)據(jù);
[0038]組合模塊,用于將所述圖像像素中多個像素的RGB數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合RGB數(shù)據(jù);
[0039]計算模塊,用于計算所述多個像素的組合RGB數(shù)據(jù),得到所述多個像素的組合YUV數(shù)據(jù);
[0040]分解模塊,用于獲取所述組合YUV數(shù)據(jù)中各像素對應(yīng)段的數(shù)位上的數(shù)字為各像素的YUV數(shù)據(jù)。
[0041]在其中一個實施例中,所述組合模塊用于將所述多個像素的RGB數(shù)據(jù)分別左移不同的相應(yīng)位數(shù),并將左移后的RGB數(shù)據(jù)進行或運算,RGB數(shù)據(jù)左移的位數(shù)要使得每一個RGB數(shù)據(jù)的所述有效數(shù)位上的數(shù)字與其他RGB數(shù)據(jù)的所述有效數(shù)位上的數(shù)字在左移后的RGB數(shù)據(jù)中的數(shù)位不重疊,得到的或運算結(jié)果即為所述多個像素的組合RGB數(shù)據(jù)。
[0042]基于此,有必要提供一種能提高轉(zhuǎn)換效率的RGB與YUV相互轉(zhuǎn)換的系統(tǒng)。
[0043]一種RGB與YUV相互轉(zhuǎn)換的系統(tǒng),包括上述任一實施例中的YUV轉(zhuǎn)換成RGB的系統(tǒng)以及上述任一實施例中的RGB轉(zhuǎn)換成YUV的系統(tǒng)。
[0044]由于YUV和RGB數(shù)據(jù)大小的范圍為0~255,只需要8位就能表示YUV和RGB數(shù)據(jù),對于16位、32位、64位或128位的YUV或RGB數(shù)據(jù),除末尾8位數(shù)字外,其余數(shù)位上的數(shù)字都為0,而16位、32位、64位、128位的處理器一次可分別處理16位、32位、64位、128位的數(shù)據(jù),因此,上述YUV轉(zhuǎn)換成RGB以及RGB轉(zhuǎn)換成YUV的方法和系統(tǒng)以及RGB與YUV相互轉(zhuǎn)換的系統(tǒng),將圖像中多個像素的數(shù)據(jù)組合成一個數(shù)據(jù)進行轉(zhuǎn)換計算,充分利用了處理器的可處理數(shù)據(jù)位長,將多次轉(zhuǎn)換計算合并成一次轉(zhuǎn)換計算,從而提高了 YUV轉(zhuǎn)換成RGB以及RGB轉(zhuǎn)換成YUV的效率。
【【專利附圖】
【附圖說明】】
[0045]圖1為一個實施例中的YUV轉(zhuǎn)換成RGB的方法的流程示意圖;
[0046]圖2為一個實施例中步驟S20的流程示意圖;
[0047]圖3為一個實施 例中的YUV轉(zhuǎn)換成RGB的系統(tǒng)的結(jié)構(gòu)示意圖;
[0048]圖4為一個實施例中的RGB轉(zhuǎn)換成YUV的方法的流程示意圖;
[0049]圖5為一個實施例中的RGB轉(zhuǎn)換成YUV的系統(tǒng)的結(jié)構(gòu)示意圖。
【【具體實施方式】】
[0050]如圖1所示,在一個實施例中,一種YUV轉(zhuǎn)換成RGB的方法,包括以下步驟:
[0051]步驟S10,獲取圖像像素的YUV數(shù)據(jù)。
[0052]具體的,YUV數(shù)據(jù)包括Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)。
[0053]步驟S20,將圖像像素中多個像素的YUV數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合YUV數(shù)據(jù)。
[0054]具體的,YUV數(shù)據(jù)的有效數(shù)位上的數(shù)字包括YUV數(shù)據(jù)的末位數(shù)字至最高位非零數(shù)字。所述多個像素的YUV數(shù)據(jù)的有效數(shù)位上的數(shù)字的數(shù)量和小于等于將YUV轉(zhuǎn)換成RGB的處理器可處理的數(shù)據(jù)位數(shù)。
[0055]以32位處理器為例,處理器計算的數(shù)據(jù)位長為32位,而YUV或RGB數(shù)據(jù)的大小范圍為0~255,只需要8位即能表示,對于32位的YUV或RGB數(shù)據(jù),除末尾8位外,其余數(shù)位上的數(shù)字均為O。因此,對于32位處理器,可獲取4個像素的YUV數(shù)據(jù)的低8位數(shù)字組合成一個數(shù)據(jù),或獲取3個像素的YUV數(shù)據(jù)的低8位、低9位或低10位數(shù)字組合成一個數(shù)據(jù)。
[0056]在一個實施例中,步驟S20的具體過程為:將所述多個像素的YUV數(shù)據(jù)分別左移不同的相應(yīng)位數(shù),并將左移后的YUV數(shù)據(jù)進行或運算,YUV數(shù)據(jù)左移的位數(shù)要使得每一個YUV數(shù)據(jù)的所述有效數(shù)位上的數(shù)字與其他YUV數(shù)據(jù)的所述有效數(shù)位上的數(shù)字在左移后的YUV數(shù)據(jù)中的數(shù)位不重疊,得到的或運算結(jié)果即為所述多個像素的組合YUV數(shù)據(jù)。
[0057]如圖2所示,在一個實施例中,步驟S20包括以下步驟:[0058]步驟S202,將多個像素中一個像素的YUV數(shù)據(jù)左移預(yù)設(shè)數(shù)量位,該預(yù)設(shè)數(shù)量大于等于所述多個像素中每一個像素的有效數(shù)位的長度,所述多個像素的數(shù)量與該預(yù)設(shè)數(shù)量的積小于等于將YUV轉(zhuǎn)換成RGB的處理器可處理的數(shù)據(jù)位數(shù)。
[0059]步驟S203,將左移后的YUV數(shù)據(jù)與所述多個像素中未參與過或運算的一個像素的YUV數(shù)據(jù)進行或運算。
[0060]步驟S204,將或運算結(jié)果左移所述預(yù)設(shè)數(shù)量位,將左移后的或運算結(jié)果與所述多個像素中未參與過或運算的一個像素的YUV數(shù)據(jù)進行或運算。
[0061 ] 步驟S206,重復(fù)執(zhí)行步驟S204,直到所述多個像素的YUV數(shù)據(jù)都參與過或運算,最終得到的或運算結(jié)果即為所述多個像素的組合YUV數(shù)據(jù)。
[0062]以32位處理器為例,設(shè)獲取3個像素的YUV數(shù)據(jù)的低10位組合成一個數(shù)據(jù),設(shè)3個像素的Y數(shù)據(jù)分別為:
[0063]00,0000000000,0000000000,0011000000 ;
[0064]00,0000000000,0000000000,0000011000 ;
[0065]00,0000000000,0000000000,0000000011。
[0066]可將第一個數(shù)據(jù)左移10位后與第二個數(shù)據(jù)進行或運算,得到00,0000000000,0011000000,0000011000,進一步將或運算結(jié)果左移10位后與第三個數(shù)據(jù)進行或運算,可得到00,0011000000,0000011000,0000000011,則該數(shù)據(jù)即為所述多個像素的組合YUV數(shù)據(jù)。
[0067]步驟S30,計算所述多個像素的組合YUV數(shù)據(jù),得到所述多個像素的組合RGB數(shù)據(jù)。
[0068]具體的,步驟SlO獲取的YUV數(shù)據(jù)包括經(jīng)過乘運算變換的YUV數(shù)據(jù),具體包括:Y。、U1, U2, V1, V2, U1=0.39U。,U2=2.03U0, V1=L 14V0, V2=0.58V。,其中為,Y。、UQ、V。為圖像的原始 Y數(shù)據(jù)、U數(shù)據(jù)、V數(shù)據(jù)。在步驟SlO之前,可計算得到UpUyVp V2,或在預(yù)先計算好的乘積表中查找U1、U2、V1、V2的值。進一步的,步驟S20將所述多個像素的Ytl、U1、U2、V1、V2數(shù)據(jù)分別組合成 \丨、U1 '、U2 '、\丨、n2'。
[0069]進一步的,步驟S30可按照如下公式計算所述多個像素的組合RGB數(shù)據(jù):組合R數(shù)據(jù)=Y0丨+V1丨;組合G數(shù)據(jù)=Y/ -U1 7 -V2 7 ;組合B數(shù)據(jù)=Y0丨+V2,。
[0070]步驟S40,獲取組合RGB數(shù)據(jù)中各像素對應(yīng)段的數(shù)位上的數(shù)字為各像素的RGB數(shù)據(jù)。
[0071]例如,對于32位處理器,將2個像素的YUV數(shù)據(jù)的低10位組合成組合YUV數(shù)據(jù),第一個像素YUV數(shù)據(jù)的低10位在組合YUV數(shù)據(jù)中的位置為從末位數(shù)第11位至第20位,第二個像素YUV數(shù)據(jù)的低10位在組合YUV數(shù)據(jù)中的位置為從末位數(shù)第I位至第10位,則可獲取組合RGB數(shù)據(jù)中從末位數(shù)第11位至第20位為第一個像素的RGB數(shù)據(jù),獲取組合RGB數(shù)據(jù)中從末位數(shù)第I位至第10位為第二個像素的RGB數(shù)據(jù)。
[0072]如圖3所示,在一個實施例中,一種YUV轉(zhuǎn)換成RGB的系統(tǒng),包括數(shù)據(jù)獲取模塊10、組合模塊20、計算模塊30、分解模塊40,其中:
[0073]數(shù)據(jù)獲取模塊10用于獲取圖像像素的YUV數(shù)據(jù)。
[0074]具體的,YUV數(shù)據(jù)包括Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)。
[0075]組合模塊20用于將圖像像素中多個像素的YUV數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合YUV數(shù)據(jù)。[0076]具體的,YUV數(shù)據(jù)的有效數(shù)位上的數(shù)字包括YUV數(shù)據(jù)的末位數(shù)字至最高位非零數(shù)字。所述多個像素的YUV數(shù)據(jù)的有效數(shù)位上的數(shù)字的數(shù)量和小于等于將YUV轉(zhuǎn)換成RGB的處理器可處理的數(shù)據(jù)位數(shù)。
[0077]以32位處理器為例,處理器計算的數(shù)據(jù)位長為32位,而YUV或RGB數(shù)據(jù)的大小范圍為0?255,只需要8位即能表示,對于32位的YUV或RGB數(shù)據(jù),除末尾8位外,其余數(shù)位上的數(shù)字均為O。因此,對于32位處理器,組合模塊20可獲取4個像素的YUV數(shù)據(jù)的低8位數(shù)字組合成一個數(shù)據(jù),或獲取3個像素的YUV數(shù)據(jù)的低8位、低9位或低10位數(shù)字組合成一個數(shù)據(jù)。
[0078]在一個實施例中,組合模塊20可將所述多個像素的YUV數(shù)據(jù)分別左移不同的相應(yīng)位數(shù),并將左移后的YUV數(shù)據(jù)進行或運算,YUV數(shù)據(jù)左移的位數(shù)要使得每一個YUV數(shù)據(jù)的所述有效數(shù)位上的數(shù)字與其他YUV數(shù)據(jù)的所述有效數(shù)位上的數(shù)字在左移后的YUV數(shù)據(jù)中的數(shù)位不重疊,得到的或運算結(jié)果即為所述多個像素的組合YUV數(shù)據(jù)。
[0079]具體的,組合模塊20可將多個像素中一個像素的YUV數(shù)據(jù)左移預(yù)設(shè)數(shù)量位,該預(yù)設(shè)數(shù)量大于等于所述多個像素中每一個像素的有效數(shù)位的長度,所述多個像素的數(shù)量與該預(yù)設(shè)數(shù)量的積小于等于將YUV轉(zhuǎn)換成RGB的處理器可處理的數(shù)據(jù)位數(shù),進一步的,可將左移后的YUV數(shù)據(jù)與所述多個像素中未參與過或運算的一個像素的YUV數(shù)據(jù)進行或運算;進一步的,組合模塊20可將或運算結(jié)果左移所述預(yù)設(shè)數(shù)量位,將左移后的或運算結(jié)果與所述多個像素中未參與過或運算的一個像素的YUV數(shù)據(jù)進行或運算;進一步的,組合模塊20可重復(fù)執(zhí)行上一步驟,直到所述多個像素的YUV數(shù)據(jù)都參與過或運算,最終得到的或運算結(jié)果即為所述多個像素的組合YUV數(shù)據(jù)。
[0080]以32位處理器為例,設(shè)獲取3個像素的YUV數(shù)據(jù)的低10位組合成一個數(shù)據(jù),設(shè)3個像素的Y數(shù)據(jù)分別為:
[0081]00,0000000000,0000000000,0011000000 ;
[0082]00,0000000000,0000000000,0000011000 ;
[0083]00,0000000000,0000000000,0000000011。
[0084]組合模塊20可將第一個數(shù)據(jù)左移10位后與第二個數(shù)據(jù)進行或運算,得到00,0000000000,0011000000,0000011000,進一步將或運算結(jié)果左移10位后與第三個數(shù)據(jù)進行或運算,可得到00,0011000000,0000011000,0000000011,則該數(shù)據(jù)即為所述多個像素的
組合YUV數(shù)據(jù)。
[0085]計算模塊30用于計算所述多個像素的組合YUV數(shù)據(jù),得到所述多個像素的組合RGB數(shù)據(jù)。
[0086]具體的,數(shù)據(jù)獲取模塊10獲取的YUV數(shù)據(jù)包括經(jīng)過乘運算變換的YUV數(shù)據(jù),具體包括:Y0, U1' U2、V1' V2,U1=0.39U。,U2=2.03U。,V1=L 14V。,V2=0.58V。,其中為,Y。、U。、V0 為圖像的原始Y數(shù)據(jù)、U數(shù)據(jù)、V數(shù)據(jù)。數(shù)據(jù)獲取模塊10可預(yù)先計算得到U1J2H或在預(yù)先計算好的乘積表中查找HVpV2的值。進一步的,組合模塊20用于將所述多個像素的Y。、Up U2J1J2 數(shù)據(jù)分別組合成 Y。' 'U1 '、V、V、V。
[0087]進一步的,計算模塊30可按照如下公式計算所述多個像素的組合RGB數(shù)據(jù):組合R數(shù)據(jù)=Y/ +V1 ;;組合G數(shù)據(jù)=Y/ — U/ — V2';組合B數(shù)據(jù)=Y/ +' \'。
[0088]分解模塊40獲取組合RGB數(shù)據(jù)中各像素對應(yīng)段的數(shù)位上的數(shù)字為各像素的RGB數(shù)據(jù)。
[0089]例如,對于32位處理器,組合模塊20將2個像素的YUV數(shù)據(jù)的低10位組合成組合YUV數(shù)據(jù),第一個像素YUV數(shù)據(jù)的低10位在組合YUV數(shù)據(jù)中的位置為從末位數(shù)第11位至第20位,第二個像素YUV數(shù)據(jù)的低10位在組合YUV數(shù)據(jù)中的位置為從末位數(shù)第I位至第10位,則分解模塊40可獲取組合RGB數(shù)據(jù)中從末位數(shù)第11位至第20位為第一個像素的RGB數(shù)據(jù),獲取組合RGB數(shù)據(jù)中從末位數(shù)第I位至第10位為第二個像素的RGB數(shù)據(jù)。
[0090]如圖4所示,在一個實施例中,一種RGB轉(zhuǎn)換成YUV的方法,包括以下步驟:
[0091]步驟S50,獲取圖像像素的RGB數(shù)據(jù)。
[0092]具體的,RGB數(shù)據(jù)包括R數(shù)據(jù)、G數(shù)據(jù)和B數(shù)據(jù)。
[0093]步驟S60,將圖像像素中多個像素的RGB數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合RGB數(shù)據(jù)。
[0094]具體的,RGB數(shù)據(jù)的有效數(shù)位上的數(shù)字包括RGB數(shù)據(jù)的末位數(shù)字至最高位非零數(shù)字。所述多個像素的RGB數(shù)據(jù)的有效數(shù)位上的數(shù)字的數(shù)量和小于等于將RGB轉(zhuǎn)換成YUV的處理器可處理的數(shù)據(jù)位數(shù)。
[0095]具體的,可將所述多個像素的RGB數(shù)據(jù)分別左移不同的相應(yīng)位數(shù),并將左移后的RGB數(shù)據(jù)進行或運算,RGB數(shù)據(jù)左移的位數(shù)要使得每一個RGB數(shù)據(jù)的所述有效數(shù)位上的數(shù)字與其他RGB數(shù)據(jù)的所述有效數(shù)位上的數(shù)字在左移后的RGB數(shù)據(jù)中的數(shù)位不重疊,得到的或運算結(jié)果即為所述多個像素的組合RGB數(shù)據(jù)。
[0096]步驟S70,計算所述多`個像素的組合RGB數(shù)據(jù),得到所述多個像素的組合YUV數(shù)據(jù)。
[0097]具體的,步驟S50獲取的RGB數(shù)據(jù)包括經(jīng)過乘運算變換的RGB數(shù)據(jù),具體包括:&、R2、R3、G1'G2、G3、B1'B2、B3,其中:
[0098]R1=0.299R0,R2=0.147R0,R3=0.615R0 ;
[0099]G1=0.587G。,G2=0.289G。,G3=0.515G0 ;
[0100]B1=0.114B。,B2=0.436B。,B3=0.1OOB0 ;
[0101]R0, G0, B0為圖像的原始R數(shù)據(jù)、G數(shù)據(jù)、B數(shù)據(jù)。
[0102]在步驟S50之前,可計算得到%、R2> R3> G1, G2, G3> B1, B2, B3,或在預(yù)先計算好的乘積表中查找R1、R2、R3、G1、G2、G3、B1、B2、B3的值。進一步的,步驟S60將所述多個像素的R1、民、化、61、62、63、81、82、83數(shù)據(jù)分別組合成1?1/ ,R2 ; ,R3 ; ^G1 ; ,G2 ; ,G3 ; ^B1 ; ,B2 ;、B3 ;。
[0103]進一步的,步驟S70可按照如下公式計算所述多個像素的組合YUV數(shù)據(jù):組合Y數(shù)據(jù)=R1丨+G1丨+B1 7 ;組合U數(shù)據(jù)=—R2 ' -G2 7 +B2丨;組合V數(shù)據(jù)=R3 ' -G3 ;—B3 ;。
[0104]步驟S80,獲取所述組合YUV數(shù)據(jù)中各像素對應(yīng)段的數(shù)位上的數(shù)字為各像素的YUV數(shù)據(jù)。
[0105]如圖5所示,在一個實施例中,一種RGB轉(zhuǎn)換成YUV的系統(tǒng),包括數(shù)據(jù)獲取模塊50、組合模塊60、計算模塊70、分解模塊80,其中:
[0106]數(shù)據(jù)獲取模塊50用于獲取圖像像素的RGB數(shù)據(jù)。
[0107]組合模塊60用于將所述圖像像素中多個像素的RGB數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合RGB數(shù)據(jù)。[0108]具體的,RGB數(shù)據(jù)的有效數(shù)位上的數(shù)字包括RGB數(shù)據(jù)的末位數(shù)字至最高位非零數(shù)字。所述多個像素的RGB數(shù)據(jù)的有效數(shù)位上的數(shù)字的數(shù)量和小于等于將RGB轉(zhuǎn)換成YUV的處理器可處理的數(shù)據(jù)位數(shù)。
[0109]組合模塊60用于將所述多個像素的RGB數(shù)據(jù)分別左移不同的相應(yīng)位數(shù),并將左移后的RGB數(shù)據(jù)進行或運算,RGB數(shù)據(jù)左移的位數(shù)要使得每一個RGB數(shù)據(jù)的所述有效數(shù)位上的數(shù)字與其他RGB數(shù)據(jù)的所述有效數(shù)位上的數(shù)字在左移后的RGB數(shù)據(jù)中的數(shù)位不重疊,得到的或運算結(jié)果即為所述多個像素的組合RGB數(shù)據(jù)。
[0110]計算模塊70用于計算所述多個像素的組合RGB數(shù)據(jù),得到所述多個像素的組合YUV數(shù)據(jù)。
[0111]分解模塊80用于獲取所述組合YUV數(shù)據(jù)中各像素對應(yīng)段的數(shù)位上的數(shù)字為各像素的YUV數(shù)據(jù)。
[0112]一種RGB與YUV相互轉(zhuǎn)換的系統(tǒng),包括上述任一實施例中的YUV轉(zhuǎn)換成RGB的系統(tǒng)以及上述任一實施例中的RGB轉(zhuǎn)換成YUV的系統(tǒng)。
[0113]由于YUV和RGB數(shù)據(jù)大小的范圍為0?255,只需要8位就能表示YUV和RGB數(shù)據(jù),對于16位、32位、64位或128位的YUV或RGB數(shù)據(jù),除末尾8位數(shù)字外,其余數(shù)位上的數(shù)字都為0,而16位、32位、64位、128位的處理器一次可分別處理16位、32位、64位、128位的數(shù)據(jù),因此,上述YUV轉(zhuǎn)換成RGB以及RGB轉(zhuǎn)換成YUV的方法和系統(tǒng)以及RGB與YUV相互轉(zhuǎn)換的系統(tǒng),將圖像中多個像素的數(shù)據(jù)組合成一個數(shù)據(jù)進行轉(zhuǎn)換計算,充分利用了處理器的可處理數(shù)據(jù)位長,將多次轉(zhuǎn)換計算合并成一次轉(zhuǎn)換計算,從而提高了 YUV轉(zhuǎn)換成RGB以及RGB轉(zhuǎn)換成YUV的效率。
[0114]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序控制相關(guān)的硬件來完成的,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random AccessMemory, RAM)等。
[0115]以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種YUV轉(zhuǎn)換成RGB的方法,包括以下步驟: 獲取圖像像素的YUV數(shù)據(jù); 將所述圖像像素中多個像素的YUV數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合YUV數(shù)據(jù); 計算所述多個像素的組合YUV數(shù)據(jù),得到所述多個像素的組合RGB數(shù)據(jù); 獲取所述組合RGB數(shù)據(jù)中各像素對應(yīng)段的數(shù)位上的數(shù)字為各像素的RGB數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的YUV轉(zhuǎn)換成RGB的方法,其特征在于,所述將所述圖像像素中多個像素的YUV數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合YUV數(shù)據(jù)的步驟包括: 將所述多個像素的YUV數(shù)據(jù)分別左移不同的相應(yīng)位數(shù),并將左移后的YUV數(shù)據(jù)進行或運算,YUV數(shù)據(jù)左移的位數(shù)要使得每一個YUV數(shù)據(jù)的所述有效數(shù)位上的數(shù)字與其他YUV數(shù)據(jù)的所述有效數(shù)位上的數(shù)字在左移后的YUV數(shù)據(jù)中的數(shù)位不重疊,得到的或運算結(jié)果即為所述多個像素的組合YUV數(shù)據(jù)。
3.—種YUV轉(zhuǎn)換成RGB的系統(tǒng),其特征在于,包括: 數(shù)據(jù)獲取模塊,用于獲取圖像像素的YUV數(shù)據(jù); 組合模塊,用于將所述圖像像素中多個像素的YUV數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合YUV數(shù)據(jù); 計算模塊,用于計算所述多個像素的組合YUV數(shù)據(jù),得到所述多個像素的組合RGB數(shù)據(jù); 分解模塊,用于獲取所述組合RGB數(shù)據(jù)中各像素對應(yīng)段的數(shù)位上的數(shù)字為各像素的RGB數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的YUV轉(zhuǎn)換成RGB的系統(tǒng),其特征在于,所述組合模塊用于將所述多個像素的YUV數(shù)據(jù)分別左移不同的相應(yīng)位數(shù),并將左移后的YUV數(shù)據(jù)進行或運算,YUV數(shù)據(jù)左移的位數(shù)要使得每一個YUV數(shù)據(jù)的所述有效數(shù)位上的數(shù)字與其他YUV數(shù)據(jù)的所述有效數(shù)位上的數(shù)字在左移后的YUV數(shù)據(jù)中的數(shù)位不重疊,得到的或運算結(jié)果即為所述多個像素的組合YUV數(shù)據(jù)。
5.一種RGB轉(zhuǎn)換成YUV的方法,包括以下步驟: 獲取圖像像素的RGB數(shù)據(jù); 將所述圖像像素中多個像素的RGB數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合RGB數(shù)據(jù); 計算所述多個像素的組合RGB數(shù)據(jù),得到所述多個像素的組合YUV數(shù)據(jù); 獲取所述組合YUV數(shù)據(jù)中各像素對應(yīng)段的數(shù)位上的數(shù)字為各像素的YUV數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的RGB轉(zhuǎn)換成YUV的方法,其特征在于,所述將所述圖像像素中多個像素的RGB數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上, 得到所述多個像素的組合RGB數(shù)據(jù)的步驟包括: 將所述多個像素的RGB數(shù)據(jù)分別左移不同的相應(yīng)位數(shù),并將左移后的RGB數(shù)據(jù)進行或運算,RGB數(shù)據(jù)左移的位數(shù)要使得每一個RGB數(shù)據(jù)的所述有效數(shù)位上的數(shù)字與其他RGB數(shù)據(jù)的所述有效數(shù)位上的數(shù)字在左移后的RGB數(shù)據(jù)中的數(shù)位不重疊,得到的或運算結(jié)果即為所述多個像素的組合RGB數(shù)據(jù)。
7.—種RGB轉(zhuǎn)換成YUV的系統(tǒng),其特征在于,包括: 數(shù)據(jù)獲取模塊,用于獲取圖像像素的RGB數(shù)據(jù); 組合模塊,用于將所述圖像像素中多個像素的RGB數(shù)據(jù)的有效數(shù)位上的數(shù)字拼接到一個數(shù)據(jù)的不同段數(shù)位上,得到所述多個像素的組合RGB數(shù)據(jù); 計算模塊,用于計算所述多個像素的組合RGB數(shù)據(jù),得到所述多個像素的組合YUV數(shù)據(jù); 分解模塊,用于獲取所述組合YUV數(shù)據(jù)中各像素對應(yīng)段的數(shù)位上的數(shù)字為各像素的YUV數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的RGB轉(zhuǎn)換成YUV的系統(tǒng),其特征在于,所述組合模塊用于將所述多個像素的RGB數(shù)據(jù)分別左移不同的相應(yīng)位數(shù),并將左移后的RGB數(shù)據(jù)進行或運算,RGB數(shù)據(jù)左移的位數(shù)要使得每一個RGB數(shù)據(jù)的所述有效數(shù)位上的數(shù)字與其他RGB數(shù)據(jù)的所述有效數(shù)位上的數(shù)字在左移后的RGB數(shù)據(jù)中的數(shù)位不重疊,得到的或運算結(jié)果即為所述多個像素的組合RGB數(shù)據(jù)。
9.一種RGB與YUV相互轉(zhuǎn)換的系統(tǒng),包括權(quán)利要求3或4所述的YUV轉(zhuǎn)換成RGB的系統(tǒng)以及權(quán)利要求7或8所述的RGB 轉(zhuǎn)換成YUV的系統(tǒng)。
【文檔編號】G09G5/02GK103489427SQ201210196607
【公開日】2014年1月1日 申請日期:2012年6月14日 優(yōu)先權(quán)日:2012年6月14日
【發(fā)明者】單旺財, 陳小平, 孔德明, 肖本 申請人:深圳深訊和科技有限公司