專利名稱:一種手機視頻播放的處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及手機視頻播放,具體涉及一種手機視頻播放的處理方法。
背景技術(shù):
普通的YUV格式圖像在手機上進行視頻播放,和全屏顯示時,一般要求對YUV格式圖像依次進行尺寸放大、轉(zhuǎn)置以及從YUV到RGB色彩空間的轉(zhuǎn)換。例如要將像素為176*144 的QCIF的YUV圖像按2倍比例放大在直屏手機上全屏播放,首先需要對該尺寸的QCIF圖像按2倍比例放大得到352M88像素大小的輸出圖像,然后進行轉(zhuǎn)置以適應(yīng)直屏手機屏幕大小(如M0*320分辨率),同時需要對超出部分進行剪切。該轉(zhuǎn)置步驟通常分步進行,首先對原始YUV圖像進行兩個方向的放大,即進行橫向(或縱向)的放大,并將放大結(jié)果存放到一個額外的存儲區(qū)中,接著對此中間結(jié)果進行縱向(或橫向)的放大,結(jié)果再存放到一個能容納352M88像素的YUV圖像的存儲區(qū)中。最后從此內(nèi)存中取出位于中央?yún)^(qū)域的32(^240 像素的數(shù)據(jù),經(jīng)過轉(zhuǎn)置和YUV2RGB轉(zhuǎn)換后,再復(fù)制到對應(yīng)于手機屏幕的顯示存儲器的指定區(qū)域。目前,輸入圖像通常是視頻解碼得到的YUV420或YUV411格式,而手機屏幕顯示格式通常是RGB565 (或其他16bit色彩格式)。對于其他色彩空間格式,例如從YUV422或 YUV444到RGBM的轉(zhuǎn)換,情況是類似的。從YUV空間到RGB空間的轉(zhuǎn)換(YUV2RGB圖像顏色空間轉(zhuǎn)換),通常按照如下公式,或其他形式上相近的運算方法進行R=L 0Y+0+1. 402 (V-128)G=L 0Y-0. 34413 (U-128) -0. 71414 (V-128)B=L OY+1. 772 (U-128) +0上述進行視頻播放和全屏顯示的方法存在明顯的缺點,由于圖像放大、顏色格式轉(zhuǎn)換過程都比較耗費手機CPU的資源,而圖像轉(zhuǎn)置操作更進一步增加了 CPU的計算量,而且需要額外分配中間內(nèi)存以存放轉(zhuǎn)置之前的圖像,也增加了內(nèi)存資源消耗。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種手機視頻播放的處理方法,將手機視頻縮放處理中的圖像放大、圖像轉(zhuǎn)置和顏色格式轉(zhuǎn)換步驟組合在一起,通過字節(jié)堆疊等優(yōu)化算法, 避免了轉(zhuǎn)換過程中轉(zhuǎn)置算法對計算量的增加,而且不需要分配額外的內(nèi)存來存儲兩次內(nèi)插產(chǎn)生的中間結(jié)果。利用本發(fā)明的縮放方法,可以減小視頻全屏顯示的CPU計算量和占用資源,減小內(nèi)存資源,優(yōu)化手機視頻功能。為解決上述技術(shù)問題,本發(fā)明提供的一種手機視頻播放的處理方法,其特征在于, 包括以下步驟a.接受需要進行圖像顏色空間轉(zhuǎn)換的輸入視頻圖像;b.按照預(yù)定視頻圖像放大倍數(shù),將所述輸入視頻圖像同時進行橫向內(nèi)插和縱向內(nèi)插;
c.對所述輸入視頻圖像完成圖像顏色空間轉(zhuǎn)換,并同時完成圖像轉(zhuǎn)置。進一步地,所述圖像顏色空間轉(zhuǎn)換為YUV格式圖像轉(zhuǎn)化為RGB格式圖像。進一步地,所述輸入視頻圖像的圖像格式為YUV420或YUV411圖像格式。進一步地,所述輸入視頻圖像的圖像格式為除YUV420和YUV411以外的YUV類型圖像格式。進一步地,所述預(yù)定視頻圖像放大倍數(shù)由手機功能根據(jù)用戶需求設(shè)定。所述預(yù)定視頻圖像放大倍數(shù)為手機全屏顯示所對應(yīng)的圖像放大倍數(shù)。更進一步地,所述步驟b包括以下步驟bl.選取YUV類型圖像格式中對應(yīng)的Y行數(shù)據(jù)進行縱向內(nèi)插;b2.選取YUV類型圖像格式中與內(nèi)插倍數(shù)相適應(yīng)的U行數(shù)據(jù)和V行數(shù)據(jù);b3.對上述Y行數(shù)據(jù)、U行數(shù)據(jù)和V行數(shù)據(jù)分別進行橫向內(nèi)插,并將對應(yīng)結(jié)果存放在行存儲區(qū)。更進一步地,所述選取YUV類型圖像格式中與內(nèi)插倍數(shù)相適應(yīng)的U行數(shù)據(jù)和V行數(shù)據(jù)是指,根據(jù)內(nèi)插倍數(shù)和YUV2RGB圖像顏色空間轉(zhuǎn)換的轉(zhuǎn)換公式?jīng)Q定相應(yīng)的U行數(shù)據(jù)和 V行數(shù)據(jù)。更進一步地,所述步驟c包括以下步驟cl讀取所述步驟b產(chǎn)生的Y行數(shù)據(jù)、U行數(shù)據(jù)和V行數(shù)據(jù);c2對上述的Y行數(shù)據(jù)、U行數(shù)據(jù)和V行數(shù)據(jù)進行YUV2RGB圖像顏色空間轉(zhuǎn)換;c3.產(chǎn)生對應(yīng)的行RGB數(shù)據(jù),并縱向?qū)懭肽康牡刂?,完成圖像的轉(zhuǎn)置。更進一步地,所述步驟cl和c3的讀取操作通過32位整型方式實現(xiàn)。本手機視頻播放的處理方法的關(guān)鍵在于第一,讀寫數(shù)據(jù)以4字節(jié)對齊整型像素堆疊的方式,充分利用32位數(shù)據(jù)總線;第二,橫向和縱向內(nèi)插,以及圖像顏色轉(zhuǎn)換與圖像轉(zhuǎn)置合并為一步進行,從而避免了轉(zhuǎn)置算法對計算量的增加,也避免了分配大中間內(nèi)存。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面對本發(fā)明作進一步的詳細描述。實施例一,YUV420或 YUV411 轉(zhuǎn) RGB565這里輸入視頻圖像的格式為YUV420或YUV411,轉(zhuǎn)換為RGB565的視頻圖像格式。以 2倍內(nèi)插尺寸放大全屏顯示為例,對本發(fā)明的手機視頻播放的處理方法進行描述,內(nèi)插方法采用2抽頭的雙線性內(nèi)插。其轉(zhuǎn)換步驟為步驟一、對圖像進行內(nèi)插操作,橫向與縱向同時進行,即不存儲單向內(nèi)插的中間結(jié)果,同時進行橫向和縱向內(nèi)插。其具體操作方法為1)直接選取原始圖像中的第1行Y數(shù)據(jù);2)對原始圖像進行縱向內(nèi)插,產(chǎn)生第2行Y數(shù)據(jù);3)直接選取原始圖像中的第1行U數(shù)據(jù)和V數(shù)據(jù)。4)將上述步驟1)至步驟幻產(chǎn)生的行數(shù)據(jù),分別進行橫向內(nèi)插,并將結(jié)果存放到行存儲區(qū)。上述步驟中,對于其他任意放大比例,選取行數(shù)據(jù)源的方法按照縱向內(nèi)插濾波器抽頭的設(shè)計原則進行。例如,對于5/3內(nèi)插,則相應(yīng)的操作修改為1)直接選取原始圖像中的第1行Y數(shù)據(jù);2)對原始圖像進行縱向內(nèi)插,產(chǎn)生第2-5行Y數(shù)據(jù);3)直接選取原始圖像中的第1行U數(shù)據(jù)和V數(shù)據(jù)。步驟二、對上一步驟產(chǎn)生的2行Y數(shù)據(jù),以及1行U和1行V數(shù)據(jù),進行YUV2RGB 轉(zhuǎn)換,產(chǎn)生2行RGB數(shù)據(jù),同時縱向?qū)懭肽康牡刂?,完成圖像轉(zhuǎn)置。其具體操作方法為1)首先對2行Y分別以32位整型方式順序讀取2個4字節(jié)數(shù)據(jù)yyyyl/yyyy2,同時對U行和V行分別以16位整型順序讀取1個2字節(jié)數(shù)據(jù)im和vv ;2)通過位操作分別取yyyyl/yyyy2的第1個字節(jié)yll和y21,與ul/vl字節(jié)套用 YUV2RGB轉(zhuǎn)換公式進行計算,結(jié)果得到2個16bit的rgb565象素值rgbll和rgb21 rgbll = YUV2RGB565 (yll, ul, vl),rgb21 = YUV2RGB565 (y21, ul, vl),這是2個16bit數(shù),通過移位合并為一個32位整型值RGBll = (rgbll << 16) rgb21,然后將RGBl 1寫入目的地址dl ;3)通過位操作分別取yyyyl/yyyy2的第2個字節(jié)yl2和y22,與ul/vl字節(jié)進行與上一步驟同樣的操作,得到一個32位整型數(shù)RGB22,寫入目的地址d2 (d2為dl下一行對應(yīng)的位置);4)通過位操作分別取uu/vv的第2個字節(jié)u2/v2 ;5)通過位操作分別取yyyyl/yyyy2的第3個字節(jié)yl3和y23,與u2/v2進行 YUV2RGB運算產(chǎn)生RGB33,寫入目的地址d3 (d3為d2下一行);6)通過位操作分別取yyyyl/yyyy2的第4個字節(jié)yl4和y24,與U2/V2進行 YUV2RGB運算產(chǎn)生RGB44,寫入目的地址d4 (d4為d 3下一行);7)目的地址dl/d2/d3/d4分別加4行;8)重復(fù)上述操作1)至7),直到該行數(shù)據(jù)橫向內(nèi)插處理完畢。步驟三,回到步驟一,將地址dl/d2/d3/d4分別增加4個像素,進行下面2行Y及下面的U行和V行的內(nèi)插,重復(fù)上述步驟,直到整幅圖像處理完畢。實施例二,其他YUV類型轉(zhuǎn)RGB565這里輸入視頻圖像的格式為除YUV420和YUV411的其他YUV類型轉(zhuǎn)換為RGB565 視頻圖像格式的處理方法,與實施例一相對比,只是YUV2RGB轉(zhuǎn)換的部分稍微不同。例如對 YUV422,在實施例一中步驟b),同時對U行和V行以32位整型順序分別讀取1個4字節(jié)數(shù)據(jù)uuuu和vvvv,然后分別按字節(jié)讀取ul/u2/u3/u4和vl/v2/v3/v4,再與yyyyl/yyyy2的對應(yīng)字節(jié)進行YUV2RGB運算,得到8個RGB565值,合并為4個32bit整型值。RGBll rgbll = YUV2RGB565 (yll, ul, vl);rgb21 = YUV2RGB565 (y21, ul vl),RGB22rgbl2 = YUV2RGB565 (yl2, u2, v2);rgb22 = YUV2RGB565 (y22, u2, v2),
5
RGB33 rgbl3 = YUV2RGB565 (yl3, u3, v3);rgb23 = YUV2RGB565 (y23, u3 v3),RGB44 rgbl4 = YUV2RGB565 (yl4, u4, v4);rgb24 = YUV2RGB565 (y24, u4, v4)。實施例三YUV420轉(zhuǎn)其他類型RGB這里輸入視頻圖像的格式Y(jié)UV420轉(zhuǎn)換為RGB565視頻圖像格式的處理方法,實施例一中除最后堆疊輸出數(shù)據(jù)的方法(即步驟)不同外,其余部分也適用于本算法。例如對 YUV420轉(zhuǎn)RGB24,經(jīng)過YUV2RGB變換之后產(chǎn)生的是8個24bit數(shù)據(jù)rgbll = YUV2RGB24(yll, ul, vl);rgb21 = YUV2RGB24 (y21, ul vl),rgbl2 = YUV2RGB24 (yl2, u2, v2);rgb22 = YUV2RGB24 (y22, u2, v2),rgbl3 = YUV2RGB24 (yl3, u3, v3);rgb23 = YUV2RGB24(y23, u3 v3),rgbl4 = YUV2RGB24 (yl4, u4, v4);rgb24 = YUV2RGB24 (y24, u4, v4),此時難以進行整型數(shù)據(jù)堆疊,可將上面8個數(shù)據(jù)分別寫入目的地址。需要說明的是,以上實施例中輸入的圖像數(shù)據(jù),可以是由某種格式的視頻碼流 (如h. 263, h. 264, MPEG1/2/4,等等)解壓縮后得到的YUV格式圖像,或者是直接由攝像頭采集、處理后得到的未經(jīng)過壓縮YUV格式圖像。依據(jù)上述實施例手機視頻播放編寫的程序用于手機視頻業(yè)務(wù)的后處理上。視頻壓縮采用ITU-T或ISO的通用標準,數(shù)據(jù)通過網(wǎng)絡(luò)流媒體傳輸?shù)绞謾C客戶端,或者存儲在手機本地存儲卡中,經(jīng)解壓縮后得到Y(jié)UV420的圖像格式,然后轉(zhuǎn)換為RGB565格式,顯示在手機屏幕上。支持多種圖像顯示方式原始大小,按比例放大,直至全屏顯示,并對圖像進行適當?shù)募舨靡苑掀聊坏娘@示區(qū)域。全屏顯示采用任意比例內(nèi)插放大,均得到了優(yōu)秀的圖像質(zhì)量。在不偏離本發(fā)明的精神和范圍的情況下還可以構(gòu)成許多有很大差別的實施例。應(yīng)當理解,除了如所附的權(quán)利要求所限定的,本發(fā)明不限于在說明書中所述的具體實施例。
權(quán)利要求
1.一種手機視頻播放的處理方法,其特征在于,包括以下步驟a.接受需要進行圖像顏色空間轉(zhuǎn)換的輸入視頻圖像;b.按照預(yù)定視頻圖像放大倍數(shù),將所述輸入視頻圖像同時進行橫向內(nèi)插和縱向內(nèi)插;c.對所述輸入視頻圖像完成圖像顏色空間轉(zhuǎn)換,并同時完成圖像轉(zhuǎn)置。
2.根據(jù)權(quán)利要求1所述的一種手機視頻播放的處理方法,其特征在于,所述圖像顏色空間轉(zhuǎn)換為YUV格式圖像轉(zhuǎn)化為RGB格式圖像。
3.根據(jù)權(quán)利要求1所述的一種手機視頻播放的處理方法,其特征在于,所述輸入視頻圖像的圖像格式為YUV420或YUV411圖像格式。
4.根據(jù)權(quán)利要求1所述的一種手機視頻播放的處理方法,其特征在于,所述輸入視頻圖像的圖像格式為除YUV420和YUV411以外的YUV類型圖像格式。
5.根據(jù)權(quán)利要求1所述的一種手機視頻播放的處理方法,其特征在于,所述預(yù)定視頻圖像放大倍數(shù)由手機功能根據(jù)用戶需求設(shè)定。
6.根據(jù)權(quán)利要求1所述的一種手機視頻播放的處理方法,其特征在于,所述預(yù)定視頻圖像放大倍數(shù)為手機全屏顯示所對應(yīng)的圖像放大倍數(shù)。
7.根據(jù)權(quán)利要求1所述的一種手機視頻播放的處理方法,其特征在于,所述步驟b包括以下步驟bl.選取YUV類型圖像格式中對應(yīng)的Y行數(shù)據(jù)進行縱向內(nèi)插; b2.選取YUV類型圖像格式中與內(nèi)插倍數(shù)相適應(yīng)的U行數(shù)據(jù)和V行數(shù)據(jù); b3.對上述Y行數(shù)據(jù)、U行數(shù)據(jù)和V行數(shù)據(jù)分別進行橫向內(nèi)插,并將對應(yīng)結(jié)果存放在行存儲區(qū)。
8.根據(jù)權(quán)利要求1所述的一種手機視頻播放的處理方法,其特征在于,所述選取YUV類型圖像格式中與內(nèi)插倍數(shù)相適應(yīng)的U行數(shù)據(jù)和V行數(shù)據(jù)是指,根據(jù)內(nèi)插倍數(shù)和YUV2RGB圖像顏色空間轉(zhuǎn)換的轉(zhuǎn)換公式?jīng)Q定相應(yīng)的U行數(shù)據(jù)和V行數(shù)據(jù)。
9.根據(jù)權(quán)利要求1所述的一種手機視頻播放的處理方法,其特征在于,所述步驟c包括以下步驟cl讀取所述步驟b產(chǎn)生的Y行數(shù)據(jù)、U行數(shù)據(jù)和V行數(shù)據(jù);c2對上述的Y行數(shù)據(jù)、U行數(shù)據(jù)和V行數(shù)據(jù)進行YUV2RGB圖像顏色空間轉(zhuǎn)換;c3.產(chǎn)生對應(yīng)的行RGB數(shù)據(jù),并縱向?qū)懭肽康牡刂罚瓿蓤D像的轉(zhuǎn)置。
10.根據(jù)權(quán)利要求8所述的一種手機視頻播放的處理方法,其特征在于,所述步驟cl和 c3的讀取操作通過32位整型方式實現(xiàn)。
全文摘要
本發(fā)明提供的一種手機視頻播放的處理方法,其特征在于,包括以下步驟a.接受需要進行圖像顏色空間轉(zhuǎn)換的輸入視頻圖像;b.按照預(yù)定視頻圖像放大倍數(shù),將所述輸入視頻圖像同時進行橫向內(nèi)插和縱向內(nèi)插;c.對所述輸入視頻圖像完成圖像顏色空間轉(zhuǎn)換,并同時完成圖像轉(zhuǎn)置。將手機視頻縮放處理中的圖像放大、圖像轉(zhuǎn)置和顏色格式轉(zhuǎn)換步驟組合在一起,通過字節(jié)堆疊等優(yōu)化算法,避免了轉(zhuǎn)換過程中轉(zhuǎn)置算法對計算量的增加,而且不需要分配額外的內(nèi)存來存儲兩次內(nèi)插產(chǎn)生的中間結(jié)果。利用本發(fā)明的縮放方法,可以減小視頻全屏顯示的CPU計算量和占用資源,減小內(nèi)存資源,優(yōu)化手機視頻功能。
文檔編號H04N9/68GK102215318SQ20101014189
公開日2011年10月12日 申請日期2010年4月8日 優(yōu)先權(quán)日2010年4月8日
發(fā)明者張立軍 申請人:蘇州尚嘉信息技術(shù)有限公司