媒體播放器和播放方法、硬件加速下的視頻的后處理方法
【專利摘要】本申請公開了視頻后處理方法、媒體播放器和媒體播放方法,其中,媒體播放器包括:分離模塊,用于將輸入的媒體源文件進行分離并輸出到解碼模塊;解碼模塊,用于對分離后得到的視頻流調用圖形處理器自帶的硬件解碼器進行解碼;渲染模塊,用于渲染解碼得到的視頻流,并調用自定義演示組件對視頻流的各幅圖像進行圖像后處理,輸出處理后的視頻流。由于是采用圖形處理器自帶的硬件解碼功能對視頻流解碼,即視頻流數(shù)據(jù)的解碼是在圖形處理器而非CPU中進行,從而降低了播放視頻時的CPU資源占有率;對圖形處理器中的數(shù)據(jù)通過調用自定義演示組件進行視頻后處理,使得在提升CPU處理效率的同時在硬件加速模式下也能實現(xiàn)色彩調節(jié)、添加字幕等效果。
【專利說明】媒體播放器和播放方法、硬件加速下的視頻的后處理方法
【技術領域】
[0001]本申請涉及多媒體【技術領域】,尤其涉及一種硬件加速下的視頻的后處理方法,以及采用這種方法的媒體播放器和媒體播放方法。
【背景技術】
[0002]目前大部分視頻播放器采用軟件解碼,如圖1所示,首先通過解碼器101對特定格式的編碼視頻進行解碼,其次利用視頻后處理器102對視頻進行處理,接著由渲染器103對處理后的視頻進行渲染,將渲染后的視頻輸出到顯示器104予以顯示。這種軟件解碼技術將全部的視頻解碼和后處理工作放在CPU中進行。然而,一方面,視頻尤其是高清視頻采用的編碼算法的計算復雜度高,另一方面,視頻的圖像像素數(shù)量較大尤其是高清視頻的圖像像素數(shù)據(jù)量更大;這使得CPU在解碼視頻尤其是高清視頻時往往會滿負荷工作,造成PC響應其它用戶命令緩慢而出現(xiàn)畫面顯示不連續(xù)、聲音播放斷斷續(xù)續(xù)的現(xiàn)象,更有甚者出現(xiàn)操作系統(tǒng)無響應的情況。
[0003]為了降低CPU解碼視頻時的工作負荷,近年來,各大GPU (圖形處理器,GraphicProcessing Unit)生產廠商紛紛研發(fā)了支持視頻硬件解碼的GPU產品,強大的GPU將直接支持硬件解碼,即可以支持對高清視頻源的編碼格式,如MPEG2、H.264、WMV和VC-1等編碼格式進行解碼。微軟公司為此專門制訂了 DXVA (硬件視頻加速,DirectX VideoAcceleration)規(guī)范。如果在視頻播放時能利用GPU去解碼,則由CPU承擔的部分或全部解碼工作轉為GPU來承擔,從而可以極大降低播放視頻時的CPU資源占用率,使得其能及時響應其它的用戶命令。然而,由于開啟GPU視頻解碼加速功能后,使得常見的視頻解碼后處理等過程無法實施,即無法進行色彩調節(jié)、加字幕等處理,畫面效果可能較純軟件解碼方式下降,反而會造成負面的影響。
【發(fā)明內容】
[0004]本申請?zhí)峁┮环N視頻的后處理方法,以及采用這種方法的媒體播放器和媒體播放方法,無論視頻播放時是否采用硬件加速,均可實現(xiàn)色彩調節(jié)、字幕添加等圖像后處理效果O
[0005]根據(jù)本申請的第一方面,提供一種媒體播放器,包括:分離模塊,用于將輸入的媒體源文件按文件類型進行分離并輸出到解碼模塊;解碼模塊,用于對分離后得到的視頻流調用圖形處理器自帶的硬件解碼器進行解碼;渲染模塊,用于渲染解碼得到的視頻流,并調用自定義演示組件對視頻流的各幅圖像進行圖像后處理,輸出處理后的視頻流。
[0006]所述自定義演示組件包括色彩單元、字幕單元、形變單元中的至少一個,所述色彩單元用于對視頻流中各幅圖像進行色彩調節(jié),所述字幕單元用于將字幕添加到視頻流的各幅圖像,所述形變單元用于對視頻流中各幅圖像進行旋轉、縮放、平移。
[0007]所述字幕單元包括:創(chuàng)建子單元,用于向從外部接口引入的字幕文本數(shù)據(jù)添加時間戳,形成時間戳字幕隊列,創(chuàng)建保存字幕圖像的緩沖,將從時間戳字幕隊列中查找到的當前字幕文本形成字幕繪制圖像,并添加字幕效果,將添加效果后的字幕繪制圖像輸出到緩沖中,得到最終的字幕圖像;加載子單元,用于復制視頻流的各幅圖像到后臺表面,查找當前時間對應的字幕圖像,將查找到的字幕圖像合成到后臺表面中相應的各幅圖像。
[0008]所述色彩單元基于Direct3D的像素著色器實現(xiàn);所述渲染模塊基于DirectX的視頻混合渲染器和視頻增強渲染器實現(xiàn)。
[0009]所述圖形處理器支持DirectX 9.0及以上接口和Direct3D Shader 3.0及以上接□。
[0010]根據(jù)本申請的第二方面,提供一種媒體播放方法,包括:分離步驟,將輸入的媒體源文件按文件類型進行分離并輸出到解碼模塊;解碼步驟,對分離后得到的視頻流調用圖形處理器自帶的硬件解碼器進行解碼;渲染步驟,渲染解碼得到的視頻流,并調用自定義演示組件對視頻流的各幅圖像進行圖像后處理,輸出處理后的視頻流。
[0011]所述自定義演示組件包括色彩單元、字幕單元、形變單元中的至少一個,所述色彩單元用于對視頻流中各幅圖像進行色彩調節(jié),所述字幕單元用于將字幕添加到視頻流的各幅圖像,所述形變單元用于對視頻流中各幅圖像進行旋轉、縮放、平移;所述渲染步驟包括:混合步驟,收集輸入的視頻流并通知所述自定義演示組件進行處理;執(zhí)行步驟,所述自定義演示組件判斷是否存在色彩控制任務、字幕添加任務、形變任務中的任意種任務,如果存在色彩控制任務則調用所述色彩單元進行色彩調節(jié),如果存在字幕則調用所述字幕單元進行字幕添加,如果存在形變任務則調用所述形變單元進行圖像的旋轉、縮放、平移;輸出步驟,將執(zhí)行處理后的視頻流輸出到顯示裝置予以顯示。
[0012]根據(jù)本申請的第三方面,提供一種硬件加速下的視頻后處理方法,包括:自定義步驟,基于DirectX的視頻混合渲染器和視頻增強渲染器,對演示組件自定義以支持圖像后處理接口,所述圖像后處理接口包括色彩接口、字幕接口和形變接口,所述色彩接口實現(xiàn)對視頻流中各幅圖像的色彩調節(jié),所述字幕接口實現(xiàn)將字幕添加到視頻流的各幅圖像,所述形變接口實現(xiàn)對視頻流中各幅圖像的旋轉、縮放、平移。
[0013]所述硬件加速所依賴的圖形處理器支持DirectX9.0及以上接口和Direct3DShader3.0 及以上接 口。
[0014]本申請的有益效果是:由于是采用圖形處理器自帶的硬件解碼功能對視頻流解碼,即視頻流數(shù)據(jù)的解碼是在圖形處理器中進行而非在CPU中,從而降低了播放視頻時的(PU資源占有率;對處于圖形處理器中的數(shù)據(jù)通過調用自定義演示組件進行視頻后處理,使得在提升CPU處理效率的同時在硬件加速模式下也能實現(xiàn)色彩調節(jié)、添加字幕等效果。
【專利附圖】
【附圖說明】
[0015]圖1為常用的軟件解碼的處理過程示意圖;
[0016]圖2為DirectX的VMR/EVR的結構示意圖;
[0017]圖3為VMR/EVR處理媒體數(shù)據(jù)的流程示意圖;
[0018]圖4為本申請一種實施例的媒體播放器的結構示意圖;
[0019]圖5為本申請一種實施例中渲染模塊的處理流程示意圖;
[0020]圖6為本申請一種實施例的媒體播放器的處理流程示意圖;
[0021]圖7為本申請一種實施例的字幕單元的處理流程示意圖;[0022]圖8為本申請一種實施例的媒體播放器的應用實例示意圖。
【具體實施方式】
[0023]下面通過【具體實施方式】結合附圖對本申請作進一步詳細說明。
[0024]針對目前多媒體播放器采用硬件解碼無法進行色彩調節(jié)、加字幕等后處理的問題,本申請基于Direct3D來實現(xiàn)無論多媒體播放器播放時是否采用硬件加速,均可進行色彩調節(jié)、加字幕等后處理。
[0025]首先對本申請要用到的一些技術術語進行說明:
[0026](I) DirectX、Direct3D> DirectDraw> DirectShow:DirectX 是由微軟公司創(chuàng)建開發(fā)的多媒體編程接口,由顯示、聲音、輸入和網(wǎng)絡四大部分組成,顯示部分又分為DirectDraw和Direct3D,前者負責2D加速,后者負責3D加速,聲音部分包括DirectSound,而DirectShow則是建立在DirectDraw和DirectSound基礎之上的新一代流媒體處理開發(fā)包,與DirectX開發(fā)包一起發(fā)布。
[0027](2)表面:指的是為存儲合成圖像分配的預定空間,實質上就是一塊顯存區(qū)域。
[0028](3)將視頻圖像畫到后臺表面:是指將圖像數(shù)據(jù)從一塊顯卡區(qū)域復制到另一塊區(qū)域。
[0029](4)字幕:包括外部字幕和內部字幕,外部字幕是指有單獨的字幕文件,即外部獨立的字幕文件;內部字幕是指寫在視頻文件內的字幕流,是通過視頻編碼直接嵌入在圖像中。
[0030]這里結合圖2和圖3來說明DirectX的VMR/EVR (視頻混合渲染器/視頻增強渲染器,Video Mixing Renderer/Enhanced Video Renderer)的結構及其媒體數(shù)據(jù)的處理過程。
[0031]為適應各種不同的應用,VMR采用了模塊化設計策略,除了幾個輸入引腳(PinO、PinU…、Pin η)外,VMR還包括2到5個子組件,如圖2所示,VMR包括混合器(Mixer)、圖像合成器(Compositor)、分配演示器(Allocator Presenter,又稱圖像呈現(xiàn)單元)、核心同步控制器(Core Synchronization Unit)和窗口管理器(Window Manager)。
[0032]混合器用于負責收集每路輸入流的信息,并將它們進行Z排序(即確定圖像顯示在窗口的位置);混合器還決定 每個輸入引腳何時接受輸入樣本,同時,還要在恰當?shù)臅r間通知圖像合成器執(zhí)行實際的混合;混合器也為每個輸出圖像添加時間戳;當應用程序提供一幅位圖用于顯示在合成后的圖像的最上層時,即使輸入流的Z順序發(fā)生了改變,混合器也必須保證位圖處于最上面。
[0033]圖像合成器用于執(zhí)行實際的混合,將多路輸入流合成到一個單一的DirectDraw或Direct3D表面,DirectDraw或Direct3D表面由分配演示器提供,其中,表面是指為存儲合成圖像分配的預定空間。通常VMR/EVR內部提供一個缺省的圖像合成器供應用程序進行二維的Alpha混合,應用程序可以自定義圖像合成器。
[0034]分配演示器用于給圖像合成器分配DirectDraw或Direct3D表面,同時負責與圖形卡通信。應用程序可以自定義分配演示器,用于分配DirectDraw或Direct3D表面,并且在顯示之前獲得訪問視頻數(shù)據(jù)的能力。
[0035]核心同步控制器用于計算圖像時間戳給圖像合成器,使其真正意義上完成圖像的合成功能。
[0036]窗口管理器只有當VMR工作在窗口模式下才使用。VMR這種組件式結構使應用程序可以根據(jù)需要以不同的方式對其操作,VMR支持三種不同的操作模式(即有窗口、無窗口和無呈現(xiàn))和兩種混合模式(即單一流和多個流)。有窗口模式是默認模式,VMR會創(chuàng)建一個單獨的窗口,并將視頻呈現(xiàn)到該窗口上;無窗口模式通過將視頻直接呈現(xiàn)到應用程序窗口上,為應用程序提供了更強的控制能力;而無呈現(xiàn)模式使用程序自定義的分配演示器對象。
[0037]整個VMR/EVR中的數(shù)據(jù)流向如圖3所示,兩路或多路輸入流在混合器混合,經(jīng)圖像合成器合成送入分配演示器處理,分配演示器再將處理的圖像輸出到顯示器。
[0038]基于DirectX的VMR/EVR,本申請的設計思想是:為了在顯示之前實現(xiàn)對圖像的處理(如色彩調節(jié)、加字幕等),首先要實現(xiàn)的就是自定義分配演示器,用于替換系統(tǒng)默認的分配演示器,在視頻圖像渲染到顯示器之前獲取視頻數(shù)據(jù),實現(xiàn)字幕處理、色彩調節(jié)、旋轉縮放等后處理。
[0039]實施例1
[0040]如圖4所示為本申請的一種媒體播放器的實施方式,包括:分離模塊101、解碼模塊102和渲染模塊103。
[0041]分離模塊101用于將輸入的媒體源文件按文件類型進行分離并輸出到解碼模塊,分離后可得到視頻流數(shù)據(jù)、音頻流數(shù)據(jù)(包括不同聲道/語種的音頻)和字幕流數(shù)據(jù)中的任意種。分離模塊可采用本領域技術人員通用的相應技術實現(xiàn),本申請對此不作限定。
[0042]解碼模塊102用于對分離后得到的視頻流調用圖形處理器自帶的硬件解碼器進行解碼,應理解,對于分離后得到的音頻流可調用相應的音頻解碼器進行解碼,解碼后的音頻流可經(jīng)音頻輸出設備播放,當然,解碼后的視頻流可以是未經(jīng)視頻后處理的數(shù)據(jù),也可以是經(jīng)過視頻后處理的數(shù)據(jù),具體合成算法可采用本領域相應的技術實現(xiàn)。解碼模塊的具體實現(xiàn)可采用本領域技術人員通用的`相應技術實現(xiàn),本申請對此也不作限定。圖形處理器支持DirectX9.0及以上接口和Direct3D Shader3.0及以上接口。
[0043]由于是采用圖形處理器自帶的硬件解碼功能對視頻流解碼,即視頻流數(shù)據(jù)的解碼是在GPU而非CPU中進行,從而降低了播放視頻時的CPU資源占有率,提高了 CPU處理效率。
[0044]渲染模塊103用于渲染解碼得到的視頻流,并調用自定義演示組件111對視頻流的各幅圖像進行圖像后處理,輸出處理后的視頻流。本實施例的?宣染|旲炔基于DirectX的視頻混合渲染器和視頻增強渲染器實現(xiàn),即同樣包括如前述的混合器、圖像合成器、核心同步控制器和窗口管理器,不同之處在于該渲染模塊的分配演示器為自定義的演示組件。自定義的演示組件包括色彩單元、字幕單元、形變單元中的至少一個,色彩單元用于對視頻流中各幅圖像進行色彩調節(jié),字幕單元用于將字幕添加到視頻流的各幅圖像,形變單元用于對視頻流中各幅圖像進行旋轉、縮放、平移。
[0045]本實施例采用自定義的演示組件代替DirectX的VMR/EVR中的分配演示器組件,自定義演示組件兼容DirectX的VMR/EVR中的分配演示器組件的功能,還提供了圖像后處理接口。當視頻流數(shù)據(jù)到達自定義演示組件時,數(shù)據(jù)已經(jīng)處于GPU中,若渲染模塊需要顯示圖像,則調用自定義演示組件上的接口進行圖像顯示,對于VMR7使用DirectDraw,而對于VMR9/EVR則使用Direct3D進行圖像顯示。當接收到用戶界面的處理指令時,渲染模塊調用底層硬件的接口對圖像進行相應處理。自定義演示組件具體就是在基于DirectX的VMR/EVR中的分配演示器組件的基礎上,創(chuàng)建圖像處理接口,如創(chuàng)建接口 IColorControl以處理色彩控制,創(chuàng)建接口 ISubtitle以處理字幕添加。
[0046]渲染模塊中處理的流程可參考圖5,首先采用混合器完成混合,然后自定義演示組件判斷是否存在色彩控制任務、字幕添加任務、其他任務(如形變任務)中的任意種任務,如果存在色彩控制任務則調用色彩單元進行色彩調節(jié),如果存在字幕則調用字幕單元進行字幕添加,如果存在形變任務則調用形變接口進行圖像的旋轉、縮放、平移等處理,處理完所有任務后,當然,如果不存在任何任務則直接輸出視頻流。也就是說自定義演示組件對任務的處理是并行的,當然,也可以存在先后順序,例如可以先執(zhí)行形變任務、再執(zhí)行色彩控制任務、最后執(zhí)行字幕添加任務,或者是其他順序,又或者,自定義演示組件在處理時首先判斷是否色彩控制任務,若有,執(zhí)行色彩調節(jié);若無,再判斷是否有外部字幕/內部字幕需要顯示,如果有,則加載生成的字幕圖像,然后與視頻圖像合成。媒體播放器的一種處理流程如圖6所示,包括如下步驟:
[0047]步驟S101,利用系統(tǒng)顯卡的硬件解碼功能對輸入的視頻源進行解碼;
[0048]步驟S102,判斷是否有色彩控制任務,若是則執(zhí)行步驟S103,若否則執(zhí)行步驟S104 ;
[0049]步驟S103,對圖像進行色彩調節(jié),繼續(xù)執(zhí)行S104 ;
[0050]步驟S104,判斷是否有字幕添加任務,若是則執(zhí)行步驟S105,若否則執(zhí)行步驟S106 ;
[0051]步驟S105,加載字幕合成到圖像,繼續(xù)執(zhí)行S106 ;
[0052]步驟S106,判斷是否有形變任務,若是則執(zhí)行步驟S107,若否則執(zhí)行步驟S108 ;
[0053]步驟S107,對視頻圖像進行旋轉、縮放、平移等處理;
[0054]步驟S108,對圖像渲染輸出;
[0055]步驟S109,將渲染后的視頻輸出到顯示器予以顯示。
[0056]一種具體實現(xiàn)中,渲染模塊使用DirectDraw或Direct3D渲染圖像的步驟如下:
[0057]I)創(chuàng)建顯示設備系統(tǒng)對象,在自定義演示組件初始化時進行。
[0058]2)創(chuàng)建顯不表面 IDirectDrawSurface7、IDirect3DSurface9tj 創(chuàng)建IDirectDrawSurface7表面時指定為3D設備標志,這樣DirectDraw的表面也可同Direct3D 一起處理。
[0059]3)在每個視頻幀混合完成后,圖像已經(jīng)保存在表面中。對表面圖像進行如前述的一系列圖像后處理,合成圖像到表面,完成后渲染到顯示設備進行播放。
[0060]4)釋放顯示設備系統(tǒng)對象,在自定義演示組件銷毀時進行,即在當前文件播放結束后釋放空間。
[0061]自定義演示組件111中的色彩單元、字幕單元和形變單元中采用的算法可通過視頻圖像處理相關的常用算法實現(xiàn),也可以采用本申請的方案,下面分別對色彩單元和字幕單元作進一步描述。
[0062]本實施例中,色彩單元基于Direct3D的像素著色器(Pixel Shader)實現(xiàn)。像素著色器是在每一像素光柵化處理期間顯卡的GPU上執(zhí)行的一種程序,它不像頂點著色器(vertex shader),Direct3D不會用軟件方法仿效像素著色器的功能。它本質上代替了固定管道功能中的多重紋理階段并提供直接操作單獨像素和訪問每一個像素紋理坐標的能力。這種直接訪問像素和紋理坐標允許完成多種特殊效果,比如多重紋理、逐像素光照、視野深度、云層仿真、火焰仿真和復雜陰影技術。
[0063]一種具體實現(xiàn)中,應用像素著色器的步驟如下:
[0064]I)使用高級著色語言(HLSL, High Level Shader Language)寫出并編譯 pixelshader 代碼;
[0065]2)基于編譯后的著色器代碼創(chuàng)建IDirect3DPixelShader9表面以表不像素著色器;
[0066]3)通過 IDirect3DDevice9:: SetPixelShader 方法開啟像素著色器。
[0067]4)當前視頻播放完畢后銷毀該像素著色器。
[0068]本實施例的圖形處理器支持DirectX9.0及以上接口和Direct3D Shader3.0及以上接口。也就是說,使用像素著色器之前要先判斷該像素著色器的版本是否為Direct3DShader3.0及以上??梢酝ㄟ^檢查D3DCAPS9結構體的PixelShaderVersion成員和D3DVS_
VERSION宏來檢測顯卡支持的像素著色器版本,下面的代碼片斷舉例說明了這種判斷。
[0069]
/7 Iflhe device's supported version is less than version 2.0
if( caps.PixelShaderV^rsion < D3DPS_VERSION(2, 0))
{
ii Then pixel shader version 2.0 is not supported on this device
}
[0070]接著根據(jù)HLSL語言規(guī)則及色彩調節(jié)的算法編寫HLSL代碼,然后進行編譯,最后設置給D3D對象以完成色彩調節(jié)。值得注意的是,在HLSL中,顏色基本都是使用XRGB表示(X代表保留位),一般將其表示為一個四維矢量,數(shù)據(jù)類型是float4。比如float4Color,那么接下來就可以用color.X、color, y、color, z來分別訪問R、G、B三個分量了。對于24位或者32位圖像來說,RGB每個通道都是8位,轉化為10進制就是0-255的整數(shù),不過在HLSL中情況不同,O對應的是float (0.0)而255對應的是float (1.0),所以白色的表示不再是(255,255,255)而是 float3(l.0, 1.0, 1.0)或者 float4(l.0, 1.0, 1.0, 1.0)。
[0071]最基本的四種色彩調節(jié)算法為亮度調節(jié)、對比度調節(jié)、色度調節(jié)和飽和度調節(jié)。一種具體實現(xiàn)中,對于亮度調節(jié),只需要對YUV分量中的Y加上一個常量,范圍為-1到I ;對于對比度調節(jié),對比度需要使亮的更亮,暗的更暗,調節(jié)時需平滑過渡,最簡單的算法公式為k* (color - 0.5)+color,擴展后的算法公式為k* (color - 0.5)+0.5 ;對于色度調節(jié),其基本計算公式為 U’=U X Cos (H) +V X Sin (H), V’=V x Cos(H)-U x Sin (H),其中,H 是以角度表示的色彩調節(jié)參數(shù);而對于飽和度調節(jié),其U、V可分別乘以一個常數(shù)。以下給出色彩控制HLSL示例代碼。
[0072]
【權利要求】
1.一種媒體播放器,其特征在于,包括: 分離模塊,用于將輸入的媒體源文件按文件類型進行分離并輸出到解碼模塊; 解碼模塊,用于對分離后得到的視頻流調用圖形處理器自帶的硬件解碼器進行解碼; 渲染模塊,用于渲染解碼得到的視頻流,并調用自定義演示組件對視頻流的各幅圖像進行圖像后處理,輸出處理后的視頻流。
2.如權利要求1所述的媒體播放器,其特征在于,所述自定義演示組件包括色彩單元、字幕單元、形變單元中的至少一個,所述色彩單元用于對視頻流中各幅圖像進行色彩調節(jié),所述字幕單元用于將字幕添加到視頻流的各幅圖像,所述形變單元用于對視頻流中各幅圖像進行旋轉、縮放、平移。
3.如權利要求2所述的媒體播放器,其特征在于,所述字幕單元包括: 創(chuàng)建子單元,用于向從外部接口引入的字幕文本數(shù)據(jù)添加時間戳,形成時間戳字幕隊列,創(chuàng)建保存字幕圖像的緩沖,將從時間戳字幕隊列中查找到的當前字幕文本形成字幕繪制圖像,并添加字幕效果,將添加效果后的字幕繪制圖像輸出到緩沖中,得到最終的字幕圖像; 加載子單元,用于復制視頻流的各幅圖像到后臺表面,查找當前時間對應的字幕圖像,將查找到的字幕圖像合成到后臺表面中相應的各幅圖像。
4.如權利要求2或3所述的媒體播放器,其特征在于,所述色彩單元基于Direct3D的像素著色器實現(xiàn);所述渲染模炔基于DirectX的視頻混合渲染器和視頻增強渲染器實現(xiàn)。
5.如權利要求1所述 的媒體播放器,其特征在于,所述圖形處理器支持DirectX9.0及以上接口和Direct3D Shader 3.0及以上接口。
6.—種媒體播放方法,其特征在于,包括: 分離步驟,將輸入的媒體源文件按文件類型進行分離并輸出到解碼模塊; 解碼步驟,對分離后得到的視頻流調用圖形處理器自帶的硬件解碼器進行解碼; 渲染步驟,渲染解碼得到的視頻流,并調用自定義演示組件對視頻流的各幅圖像進行圖像后處理,輸出處理后的視頻流。
7.如權利要求6所述的媒體播放方法,其特征在于,所述自定義演示組件包括色彩單元、字幕單元、形變單元中的至少一個,所述色彩單元用于對視頻流中各幅圖像進行色彩調節(jié),所述字幕單元用于將字幕添加到視頻流的各幅圖像,所述形變單元用于對視頻流中各幅圖像進行旋轉、縮放、平移; 所述渲染步驟包括: 混合步驟,收集輸入的視頻流并通知所述自定義演示組件進行處理; 執(zhí)行步驟,所述自定義演示組件判斷是否存在色彩控制任務、字幕添加任務、形變任務中的任意種任務,如果存在色彩控制任務則調用所述色彩單元進行色彩調節(jié),如果存在字幕則調用所述字幕單元進行字幕添加,如果存在形變任務則調用所述形變單元進行圖像的旋轉、縮放、平移; 輸出步驟,將執(zhí)行處理后的視頻流輸出到顯示裝置予以顯示。
8.—種硬件加速下的視頻后處理方法,其特征在于,包括: 自定義步驟,基于DirectX的視頻混合渲染器和視頻增強渲染器,對演示組件自定義以支持圖像后處理接口,所述圖像后處理接口包括色彩接口、字幕接口和形變接口,所述色彩接口實現(xiàn)對視頻流中各幅圖像的色彩調節(jié),所述字幕接口實現(xiàn)將字幕添加到視頻流的各幅圖像,所述形變接口實現(xiàn)對視頻流中各幅圖像的旋轉、縮放、平移。
9.如權利要求8所述的硬件加速下的視頻后處理方法,其特征在于,所述硬件加速所依賴的圖形處理器支持 DirectX 9.0及以上接口和Direct3DShader 3.0及以上接口。
【文檔編號】H04N5/445GK103700385SQ201210369800
【公開日】2014年4月2日 申請日期:2012年9月27日 優(yōu)先權日:2012年9月27日
【發(fā)明者】王云剛 申請人:深圳市快播科技有限公司