專利名稱::流媒體圖像處理的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及圖像處理技術(shù),特別涉及流媒體技術(shù)中的圖像處理的方法。技術(shù)背景隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,移動(dòng)流媒體應(yīng)用漸漸展開,但是很多移動(dòng)終端的CPU不具有多媒體能力,無法采用特殊的多媒體指令進(jìn)行快速計(jì)算,而且普通指令的速度也不夠快,甚至內(nèi)存容量有限且速度較慢。這樣不可避免的會(huì)花費(fèi)很多計(jì)算時(shí)間,其中包括圖像處理技術(shù)也存在缺陷,例如現(xiàn)有技術(shù)對YUV色彩空間轉(zhuǎn)換成RGB色彩空間的處理方法。如圖1所示,為一種圖像格式,包括有多個(gè)像素,每個(gè)像素包含有亮度分量1和色度分量2。如圖2所示,對一個(gè)像素電的YUV轉(zhuǎn)為RGB的處理方法如下R=clip(round(1.164383*C+1.596027*E))G=clip(round(1.164383*C-(0.391762*D)—(0.812968*E)))B=clip(round(1.164383*C+2.017232*D))其中clip()表示范圍為的飽和操作。C=Y-16,D=U-亂E=V-128而為了避免耗時(shí)的乘法,通常這種轉(zhuǎn)換的實(shí)現(xiàn)采用査找表的方法,也就是事先算出YUV三分量的每個(gè)可能的輸入對應(yīng)的中間計(jì)算結(jié)果,保存在內(nèi)存里,等到需要計(jì)算的時(shí)候,把YUV的值作為表的索引,直接讀取中間結(jié)果,再做加減法以及飽和運(yùn)算,求得RGB的值。考慮到浮點(diǎn)運(yùn)算很耗時(shí),因此一般把小數(shù)形式的系數(shù)擴(kuò)大2的n次冪倍,再取整成整數(shù),待計(jì)算完畢后再縮小2的n次冪倍。整個(gè)過程分為查找表的制作和如何使用査找表以求得RGB。首先獲得YUV三分量的每個(gè)可能的輸入對應(yīng)的中間計(jì)算結(jié)果;如果設(shè)丫=243,則計(jì)算亮度Y的輸入結(jié)果Ytable,Ytable[243]:1.164383*(243-16)*26=17052.設(shè)U=124,則計(jì)算色度U的輸入結(jié)果BUtable和GUtable,BUtable[124]=2.017232氺(124—128)承26=一516;GUtable[124]=0.391762*(124-128)*26=-100;設(shè)V=136,則i+算色度V的綸\結(jié)果RVtable和GVtable,RVtable[136]=1.596027*(136-128)*26=817GVgvtable[136]二0.812968*(136-128)*26=416由于査找表只需在程序運(yùn)行的時(shí)候制作一次,便可無數(shù)次的使用,所以可以認(rèn)為上述制表過程不花費(fèi)時(shí)間。設(shè)目前像素點(diǎn)的YUV值為243,124,136,那么按如下規(guī)則得到RGB值;R=Ytable[243]+RVtable[]36]=17869經(jīng)過移位使R=R/26=279經(jīng)過兩端飽和得到輸出的R0值為R0=clip(R)=255G=Ytable[243]-(GUtable[]24]+GVtable[136])=16736經(jīng)過移位使G=G/26=261經(jīng)過兩端飽和得到輸出的GO值為G0=clip(G)=255B=ytable[243]十butable[124]=16536經(jīng)過移位使B=B/26=258經(jīng)過兩端飽和得到輸出的BO值為B0=clip(B)=255整個(gè)過程每次計(jì)算一個(gè)2*2的像素塊,需要讀取內(nèi)存14次,加減法13次,移位12次,飽和運(yùn)算12次。其中飽和運(yùn)算的規(guī)則為,輸入一個(gè)數(shù)x。如果輸入大于255,那么輸出為255。如果輸入小于0,那么輸出0。否則輸出x,所以一次飽和大致等于2次比較,2次被拒絕的跳轉(zhuǎn),1次賦值,共5個(gè)指令周期。并暫認(rèn)為一次內(nèi)存讀寫指令等于4個(gè)指令周期。所以每計(jì)算4個(gè)像素的RGB值,在不考慮輸出耗時(shí)的情況下,在不考慮由于寄存器不夠而發(fā)生的堆棧讀寫的額外耗費(fèi)的情況下,需耗時(shí)117個(gè)指令周期。其中內(nèi)存的讀取和飽和運(yùn)算耗費(fèi)共有92次,所以絕大多數(shù)耗時(shí)發(fā)生在讀取內(nèi)存,和飽和運(yùn)算。如果采用査詢飽和表來代替飽和計(jì)算的辦法,則加劇了內(nèi)存讀取的瓶頸,并增加了對內(nèi)存的需求;考慮到某些移動(dòng)終端的內(nèi)存速度較慢,情況會(huì)更加惡化。發(fā)明內(nèi)存為了克服現(xiàn)有技術(shù)的缺陷和不足,本發(fā)明的目的在于提供一種提高圖像處理速度的流媒體圖像處理的方法。為了達(dá)到上述目的,本發(fā)明一種流媒體圖像處理的方法,包括以下步驟(1)系統(tǒng)計(jì)算像素塊中一個(gè)像素的亮度值及紅綠藍(lán)值;其中,所述的像素塊中至少包括兩個(gè)像素;其特征在于,還包括以下步驟-(2)系統(tǒng)根據(jù)像素塊中另一個(gè)像素的亮度值與步驟(1)中所述像素的亮度值的差值計(jì)算另一個(gè)像素的單端飽和范圍及該另一個(gè)像素的紅綠藍(lán)值;(3)系統(tǒng)根據(jù)該單端飽和范圍對所述另一個(gè)像素的紅綠藍(lán)值做單端飽和處理。作為本發(fā)明的進(jìn)一歩改進(jìn),所述的步驟(2)具體為(21)系統(tǒng)獲取像素塊中另一個(gè)像素的亮度值與步驟(1)中所述像素的亮度值的差值;(22)系統(tǒng)將該差值放大1.125倍;(23)系統(tǒng)根據(jù)放大差值的正負(fù)確定另一個(gè)像素單端飽和的范圍;(24)系統(tǒng)將該差值分別與步驟(1)中得到的紅綠藍(lán)值相加得到該另一個(gè)像素的紅綠藍(lán)值。作為本發(fā)明的進(jìn)一步改進(jìn),所述的像素塊為二乘二像素塊,所述的二乘二像素塊包括四個(gè)像素。采用上述的方法后,簡化了圖像處理中亮度和色度到RGB的轉(zhuǎn)化過程,能夠提高圖像處理的速度,并為那些沒有多媒體能力,自身計(jì)算能力又很薄弱,同時(shí)內(nèi)存速度緩慢,并且容量有限的移動(dòng)終端以較為流暢的速度展現(xiàn)流媒體提供了可能。圖1為現(xiàn)有的一種圖像格式;圖2為現(xiàn)有技術(shù)計(jì)算一個(gè)2*2像素塊的第1個(gè)像素點(diǎn)RGB值的示意圖;圖3為本發(fā)明根據(jù)第1個(gè)像素點(diǎn)計(jì)算2*2像素塊中其余像素RGB值的示意圖。具體實(shí)施方式像處理的方法包括以下步驟系統(tǒng)計(jì)算像素塊中一個(gè)像素的亮度值及紅綠藍(lán)值;系統(tǒng)獲取像素塊中另一個(gè)像素的亮度值與所述像素的亮度值的差值;系統(tǒng)將該差值放大1.125倍;并根據(jù)放大差值的正負(fù)確定另一個(gè)像素單端飽和的范圍;將該差值分別與先前得到的紅綠藍(lán)值相加得到該另一個(gè)像素的紅綠藍(lán)值,系統(tǒng)根據(jù)該單端飽和范圍對所述另一個(gè)像素的紅綠藍(lán)值做單端飽和處理。下面結(jié)合附圖3對本發(fā)明的優(yōu)選實(shí)施例作進(jìn)一步的詳細(xì)描述本發(fā)明的優(yōu)選實(shí)施例對2*2的像素塊進(jìn)行處理,包含有四個(gè)像素點(diǎn),處理過程中,首先,通過現(xiàn)有技術(shù)的方法計(jì)算出第一個(gè)像素的RGB值,則其余的三個(gè)像素的RGB值都可以分別根據(jù)第一個(gè)像素來求得。如圖3所示,設(shè)像素塊的第x點(diǎn)的RGB值,x=2,3,4,求得其余三個(gè)像素點(diǎn)的RGB值包括以下歩驟1、獲取2+2像素塊的第一個(gè)像素的RGB值,記為R0,G0,B0,以及對應(yīng)的Y值為YO;并設(shè)當(dāng)前要計(jì)算第x點(diǎn)的RGB值,記為Rx,Gx,Bx,其對應(yīng)的Y值為Yx;2、將三個(gè)像素點(diǎn)的亮度值與第一個(gè)像素點(diǎn)的值分別相減得Yxdiff=Yx-Y0;3、將得到的差值放大1.125倍得Yxdiff=Yxdiff+Yxdiff/8;4、根據(jù)Yxdiff的正負(fù)來確定需要飽和的范圍;5、將得到的差值分別與第一個(gè)像素的RGB值相加可以分別得到其余像素點(diǎn)的RGB值為Rx=Yxdiff+R0。Gx=Yxdiff+G0。Bx=Yxdiff+B0;6、分別對得到的Rx,Gx,Bx作單端飽和??梢园l(fā)現(xiàn),在不考慮寄存器不足的情況下,采用本方法計(jì)算剩余3點(diǎn)的RGB值,共需要45個(gè)指令周期,加上計(jì)算的第一今像素的RGB值的34個(gè)周期,共用去79個(gè)指令周期。比起原先的117個(gè)周期,共節(jié)省了33%。當(dāng)然,在實(shí)踐上,由于涉及到指令cache和數(shù)據(jù)cache的命中問題,以及內(nèi)存速度的快慢,以及所采用語言及編譯器和匯編器翻譯成機(jī)器代碼是否精簡有效,以及是否會(huì)發(fā)生寄存器不足而必須讀寫堆棧的情況等,效果不盡相同。某款手機(jī),在未采用此方法前,計(jì)算一幀176*144大小的YUV420轉(zhuǎn)換RGB24需要9ms,如果把YUV轉(zhuǎn)RGB的時(shí)間限定在總處理時(shí)間的10%以下,那么這款手機(jī)不可以用于幀率超過15fps的媒體文件播放。現(xiàn)在采用本方法,耗時(shí)減少到5ms,速度提高了45%,性能達(dá)到了要求。另一款手機(jī),在未采用此方法前,計(jì)算一幀176*144大小的YUV420轉(zhuǎn)換RGB24需要17ms,只可以播放幀率為5fps的視頻,用f"感^很差?,F(xiàn)在縮短到6ms,撮商了65%,效釆相當(dāng)顯著。而另一方面,在圖像質(zhì)量上,雖然有限失真,但是肉眼幾乎無法分辨。當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)涵蓋于本發(fā)明權(quán)利要求書的保護(hù)范圍內(nèi)。權(quán)利要求1、一種流媒體圖像處理的方法,包括以下歩驟(1)系統(tǒng)計(jì)算像素塊中一個(gè)像素的亮度值及紅綠藍(lán)值;其中,所述的像素塊中至少包括兩個(gè)像素;其特征在于,還包括以下步驟(2)系統(tǒng)根據(jù)像素塊中另一個(gè)像素的亮度值與步驟(1)中所述像素的亮度值的差值計(jì)算該另一個(gè)像素的單端飽和范圍及該另一個(gè)像素的紅綠藍(lán)值;(3)系統(tǒng)根據(jù)該單端飽和范圍對所述另一個(gè)像素的紅綠藍(lán)值做單端飽和處理。2、按照權(quán)利1所述的流媒體圖像處理的方法,其特征在于,所述的步驟(2)具體為(21)系統(tǒng)獲取像素塊中另一個(gè)像素的亮度值與步驟(1)中所述像素的亮度值的差值;(22)系統(tǒng)將該差值放大1.125倍;(23)系統(tǒng)根據(jù)放大差值的正負(fù)確定所述另一個(gè)像素單端飽和的范圍;(24)系統(tǒng)將該差值分別與步驟(1)中得到的紅綠藍(lán)值相加得到該另一個(gè)像素的紅綠藍(lán)值。3、按照權(quán)利1或2所述的流媒體圖像處理的方法,其特征在于,所述的像素塊為二乘二像素塊,所述的二乘二像素塊包括四個(gè)像素。全文摘要本發(fā)明公開了一種流媒體圖像處理的方法。為解決現(xiàn)有技術(shù)中圖像處理耗用指令周期多處理速度慢的問題而發(fā)明。本發(fā)明流媒體圖像處理的方法包括以下步驟(1)系統(tǒng)計(jì)算像素塊中一個(gè)像素的亮度值及紅綠藍(lán)值;(2)系統(tǒng)根據(jù)像素塊中另一個(gè)像素的亮度值與步驟(1)中所述像素的亮度值的差值計(jì)算另一個(gè)像素的單端飽和范圍及該另一個(gè)像素的紅綠藍(lán)值;(3)系統(tǒng)根據(jù)該單端飽和范圍對所述另一個(gè)像素的紅綠藍(lán)值做單端飽和處理。這樣,由于簡化了圖像處理中亮度和色度到RGB的轉(zhuǎn)化過程,能夠提高圖像處理的速度,并為那些沒有多媒體能力,自身計(jì)算能力又很薄弱,同時(shí)內(nèi)存速度緩慢,并且容量有限的移動(dòng)終端以較為流暢的速度展現(xiàn)流媒體提供了可能。文檔編號H04N9/77GK101146234SQ20061015205公開日2008年3月19日申請日期2006年9月12日優(yōu)先權(quán)日2006年9月12日發(fā)明者王高浩申請人:中興通訊股份有限公司