專利名稱:一種媒體文件處理方法及其系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及計算機技術領域,尤其涉及一種媒體文件處理方法及其系統(tǒng)。
背景技術:
解碼器(Decoder)通常是指一種計算機程序,用來對特定類型的壓縮文件進行解碼,以得到原始的數(shù)據(jù)。目前在媒體文件處理系統(tǒng)中,通常采用插件機制來整合多種解碼器。采用插件機制通常有兩種形式。一種是支持直接在媒體文件處理系統(tǒng)中加載或者卸載插件,如目前的圖像瀏覽軟件ACDSee;另一種是在媒體文件處理系統(tǒng)中不支持直接加 載或者卸載插件,而是采用在其程序內(nèi)部采用插件機制整合解碼器,如目前的圖像處理工具,如開源庫Freelmage。如圖I所示,當前插件機制的實現(xiàn)方式通常是所有的插件都具有相同的接口,因為這樣可以在增加或者替換解碼器時無需修改使用者的代碼。在程序初始化的時候,將目前已有的所有插件信息加載進程序保存起來。遇到解碼任務時,根據(jù)需要解碼的文件的后綴名,判斷出文件格式,找到相應的解碼器,然后調(diào)用該解碼器執(zhí)行解碼任務。發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術至少存在以下缺陷
同一種文件格式只能用同一個解碼器進行解碼處理。而在實際中,由于解碼任務的特點,同一種文件格式可能需要使用不同的解碼器,如整圖解碼Jpeg文件時,使用Intel JpegLibrary解碼器最快,但部分解碼Jpeg文件時,使用Independent Jpeg Group解碼器的庫最快。由此可見,現(xiàn)有技術提供的媒體文件解碼方式在靈活性方面有待改進。
發(fā)明內(nèi)容
本發(fā)明提供一種媒體文件處理方法及其系統(tǒng),用以提高解碼靈活性,為此,本發(fā)明實施例采用如下技術方案
一種媒體文件處理方法,應用于媒體文件處理系統(tǒng),所述系統(tǒng)中包括樹型解碼器結構,其中,各具有媒體文件解碼功能的解碼器分別作為葉解碼器,用于解碼同一類型文件的葉解碼器歸類于一個中間解碼器,各中間解碼器歸類于一個根解碼器;當所述系統(tǒng)接收到媒體文件解碼任務后,該方法包括以下步驟
將媒體文件解碼任務提交給根解碼器;
所述根解碼器根據(jù)待解碼的媒體文件的類型,將所述媒體文件解碼任務分發(fā)給用于解碼相應類型媒體文件的中間解碼器;
所述中間解碼器將所述媒體文件解碼任務分發(fā)給歸于其下的葉解碼器進行處理。較佳地,上述方法還包括
步驟A、葉解碼器對媒體文件解碼失敗時,向其所屬的中間解碼器返回解碼失敗信息; 步驟B、所述中間解碼器判斷其下的所有葉解碼器是否都被選擇過用來執(zhí)行所述解碼任務;若判斷為是,則結束所述解碼任務的流程;否則執(zhí)行步驟C ;
步驟C、所述中間解碼器從歸于其下的葉解碼器中選擇還未被選擇用來解碼所述媒體文件的葉解碼器,并將所述媒體文件解碼任務分發(fā)給選擇出的葉解碼器進行處理;
步驟D、所述中間解碼器根據(jù)葉解碼器返回的解碼結果,若判斷解碼失敗,則返回步驟B ;若判斷解碼成功,則結束所述解碼任務的流程。較佳地,上述方法中,所述中間解碼器將媒體文件解碼任務分發(fā)給歸于其下的葉解碼器進行處理,包括
所述中間解碼器從歸于其下的葉解碼器中選擇解碼性能最高的葉解碼器,并將所述媒體文件解碼任務提交給選擇出的葉解碼器進行處理;或/和
所述中間解碼器根據(jù)所述媒體文件解碼任務的特性,從歸于其下的葉解碼器中選擇相 匹配的葉解碼器,并將所述媒體文件解碼任務提交給選擇出的葉解碼器進行處理。一種媒體文件處理系統(tǒng),包括調(diào)用模塊,以及根解碼器、中間解碼器和具有媒體文件解碼功能的葉解碼器;所述根解碼器、中間解碼器和葉解碼器組成樹型結構,其中,用于解碼同一類型文件的葉解碼器歸類于一個中間解碼器,各中間解碼器歸類于根解碼器;
調(diào)用模塊,用于將媒體文件解碼任務提交給所述根解碼器;
所述根解碼器,用于根據(jù)待解碼的媒體文件的類型,將所述媒體文件解碼任務分發(fā)給用于解碼相應類型媒體文件的中間解碼器;
所述中間解碼器,用于將所述媒體文件解碼任務分發(fā)給歸于其下的葉解碼器;
所述葉解碼器,用于根據(jù)接收到的媒體文件解碼任務對待解碼媒體文件進行處理。較佳地,上述媒體文件處理系統(tǒng)中,所述葉解碼器還用于,若對媒體文件解碼失敗,則向其所屬的中間解碼器返回解碼失敗信息;
所述中間解碼器還用于執(zhí)行以下過程
步驟A、判斷其下的所有葉解碼器是否都被選擇過用來執(zhí)行所述解碼任務;若判斷為是,則結束所述解碼任務的流程;否則執(zhí)行步驟B ;
步驟B、從歸于其下的葉解碼器中選擇還未被選擇用來解碼所述媒體文件的葉解碼器,并將所述媒體文件解碼任務分發(fā)給選擇出的葉解碼器進行處理;
步驟C、根據(jù)葉解碼器返回的解碼結果,若判斷解碼失敗,則返回步驟A ;若判斷解碼成功,則結束所述解碼任務的流程。較佳地,上述媒體文件處理系統(tǒng)中,所述中間解碼器具體用于,從歸于其下的葉解碼器中選擇解碼性能最高的葉解碼器,并將所述媒體文件解碼任務提交給選擇出的葉解碼器進行處理;或/和,根據(jù)所述媒體文件解碼任務的特性,從歸于其下的葉解碼器中選擇相匹配的葉解碼器,并將所述媒體文件解碼任務提交給選擇出的葉解碼器進行處理。本發(fā)明的上述實施例,通過設置樹型解碼器結構,其中中間解碼器與媒體文件類型對應,并且在進行解碼時,根解碼器和中間解碼器負責媒體文件解碼任務分發(fā),葉解碼器負責執(zhí)行媒體文件解碼任務,從而針對同一種格式的媒體文件,可以有多個解碼器來支持解碼,提高了選擇解碼器的靈活性,為進一步制定解碼器選擇策略提供的前提條件。進一步的,當中間解碼器所選擇出的葉解碼器解碼失敗時,中間解碼器可以再次選擇其下的其它葉解碼器來執(zhí)行解碼任務,直到解碼成功或直到該中間解碼器其下的葉解碼器都被選擇過,從而與現(xiàn)有技術相比,可提高解碼成功率,提高系統(tǒng)的魯棒性。
進一步的,中間解碼器在選擇其下的葉解碼器執(zhí)行解碼任務時,選擇解碼性能最高的葉解碼器,或者根據(jù)媒體文件解碼任務的特性,選擇相匹配的葉解碼器,從而可提高解碼質(zhì)量或提高解碼速度。
圖I為現(xiàn)有技術中采用插件機制實現(xiàn)媒體文件解碼的示意 圖2為本發(fā)明實施例提供的樹型解碼器結構的示意圖之一;
圖3為本發(fā)明實施例提供的媒體文件解碼流程示意圖之一;
圖4為本發(fā)明實施例提供的樹型解碼器結構的示意圖之二;
圖5為本發(fā)明實施例提供的媒體文件解碼流程示意圖之二;
圖6為本發(fā)明實施例提供的QQ影像系統(tǒng)中的媒體文件解碼流程示意 圖7為本發(fā)明實施例提供的媒體文件處理系統(tǒng)的結構示意圖。
具體實施例方式針對現(xiàn)有技術存在的上述問題,本發(fā)明實施例提供了一種將多解碼器整合在一起進行媒體文件解碼的技術方案。通過本發(fā)明實施例提供的技術方案,可以得到一個由不同解碼器組成的解碼器結構體系,以及基于該解碼器結構體系的媒體文件解碼機制。下面結合附圖對本發(fā)明實施例進行詳細描述。本發(fā)明實施例可在媒體文件處理系統(tǒng)中設置樹型解碼器結構,通過該結構可將多種解碼器整合在一起,提供媒體文件解碼服務。參見圖2,為本發(fā)明實施例提供的樹型解碼器結構。如圖所示,各具有媒體文件解碼功能的解碼器分別作為葉解碼器,用于解碼同一類型文件的葉解碼器歸類于一個中間解碼器,各中間解碼器歸類于一個根解碼器。其中,葉解碼器可以是媒體文件處理系統(tǒng)或第三方提供的能夠進行媒體文件解碼處理的獨立的解碼器;中間解碼器由葉解碼器構成,不能獨立執(zhí)行媒體文件解碼任務,而是負責將媒體文件解碼任務分發(fā)給其下的葉解碼器;根解碼器由中間解碼器和葉解碼器構成,也不能獨立執(zhí)行媒體文件解碼任務,而是負責將媒體文件解碼任務分發(fā)給中間解碼器?;谏鲜鰳湫徒獯a器結構,媒體文件解碼流程可如圖3所示,包括
步驟301,媒體文件處理系統(tǒng)將媒體文件解碼任務提交給根解碼器。該步驟中,媒體文件處理系統(tǒng)可接收用戶提交的媒體文件解碼任務,媒體文件處理系統(tǒng)也可以是根據(jù)用戶對媒體文件的訪問操作生成媒體文件解碼任務。步驟302,根解碼器從各中間解碼器選擇出一個中間解碼器,并將解碼任務提交給選擇出的中間解碼器。該步驟中,根解碼器可根據(jù)待解碼的媒體文件的類型,選擇相應類型的中間解碼器。具體的,根解碼器可根據(jù)媒體文件的文件名后綴,判斷出該媒體文件的類型。某些媒體文件中攜帶有媒體文件屬性信息,如媒體文件格式、文件格式版本等信息,對于這樣的媒體文件,根解碼器可以讀取這些文件屬性信息以確定該媒體文件的類型。步驟303,中間解碼器收到解碼任務后,從其下的各葉解碼器中選擇一個葉解碼器,并將該解碼任務提交給選擇出的葉解碼器。
該步驟中,中間解碼器可根據(jù)其下的各葉解碼器的解碼性能,選擇其中性能最好的葉解碼器。具體的,可事先采用測試等手段,對各葉解碼器的解碼性能進行測試和統(tǒng)計,并將統(tǒng)計結果存儲在媒體文件處理系統(tǒng)中,以便中間解碼器訪問和查詢。中間解碼器也可以根據(jù)解碼任務的需求或特點來選擇合適的葉解碼器,比如對于整圖解碼Jpeg文件時,使用Intel Jpeg Library解碼器的解碼效率較高,對于部分解碼Jpeg文件時,使用Independent Jpeg Group解碼器的解碼效率較高。步驟304,葉解碼器收到解碼任務后執(zhí)行該解碼任務。該步驟中,葉解碼器如果 執(zhí)行解碼任務成功,則可向其所屬的中間解碼器返回解碼成功信息,如果執(zhí)行解碼任務失敗,則可向其所屬的中間解碼器返回解碼失敗信息。進一步的,為提高解碼成功率,當葉解碼器向中間解碼器返回解碼失敗信息后,中間解碼器可繼續(xù)從其下的葉解碼器中選擇一個葉解碼器,并將該解碼任務提交給選擇出的葉解碼器以執(zhí)行該解碼任務。如果還解碼失敗,則可以繼續(xù)選擇葉碼器執(zhí)行該解碼任務,直到該解碼任務成功完成或者直到該中間解碼器下的所有葉解碼器都被選擇過,才結束本流程。其中,中間解碼器在選擇葉解碼器時,選擇針對該項解碼任務還未被選擇過的解碼器。另外,中間解碼器選擇葉解碼器時,可采用步驟303中所描述的選擇方式,如可選擇其中解碼性能最好的解碼器。參見圖4,為本發(fā)明實施例提供的另一種樹型解碼器結構。如圖所示,該樹型解碼器結構在圖2所示的樹型解碼器結構的基礎上,增加了通用解碼器,該通用解碼器可支持多種文件格式或文件類型的解碼處理,該通用解碼器作為葉解碼器歸于根解碼器之下,通用解碼器可以為一個或多個。基于該樹型解碼器結構,可以實現(xiàn)如圖3所示的媒體文件解碼流程,也可以實現(xiàn)如圖5所示的媒體文件解碼流程。參見圖5,為本發(fā)明實施例提供的媒體文件解碼流程示意圖,如圖所示,該流程可包括
步驟501,媒體文件處理系統(tǒng)將媒體文件解碼任務提交給根解碼器。該步驟的具體實現(xiàn)可同圖3所示的步驟301。步驟502,根解碼器選擇作為葉解碼器的通用解碼器,并將解碼任務提交給選擇出的通用解碼器。該步驟中,根解碼器可根據(jù)待解碼的媒體文件的類型,選擇能夠支持相應類型媒體文件解碼任務的通用解碼器。具體的,根解碼器可根據(jù)媒體文件的文件名后綴,判斷出該媒體文件的類型。某些媒體文件中攜帶有媒體文件屬性信息,如媒體文件格式、文件格式版本等信息,對于這樣的媒體文件,根解碼器可以讀取這些文件屬性信息以確定該媒體文件的類型。步驟503,通用解碼器收到解碼任務后執(zhí)行該解碼任務。該步驟中,通用解碼器如果執(zhí)行解碼任務成功,可向根解碼器返回解碼成功信息,如果執(zhí)行解碼任務失敗,可向根解碼器返回解碼失敗信息。進一步的,為了提高解碼成功率,當通用解碼器向根解碼器返回解碼失敗信息后,還可執(zhí)行以下過程
步驟504,根解碼器根據(jù)待解碼媒體文件的格式或類型選擇相應類型的中間解碼器,由該中間解碼器再將該解碼任務分發(fā)給其下的葉解碼器處理。該處理流程可參考圖3所示的流程執(zhí)行,在此不再贅述。根解碼器在收到通用解碼器返回的解碼失敗信息后,也可選擇其它的通用解碼器(當存在多個支持待解碼媒體文件類型的通用解碼器的情況下)執(zhí)行該解碼任務,如果仍解碼失敗,則可重復上述過程,直到該解碼任務成功完成,或直到所有可支持待解碼媒體文件的通用解碼器都被選擇過。圖6示出了一種以QQ影像中所使用到的解碼器組合為例的解碼過程的流程圖。其中,ImageDecoder為根解碼器,JpgDecoder為對應于Jpeg格式的中間解碼器,DcRawDecoder 為對應于 Raw 格式的中間解碼器,IJLDecoder 和 IJGDecoder 為 JpgDecoder下的葉解碼器,F(xiàn)IDecoder (即 Freelmage Decoder)和 GDIPDecoder (即 Graphics DeviceInterface Plus (⑶I+)解碼器)是可支持多種圖片格式的通用解碼器。當需要解碼Jpeg格式圖片時,ImageDecoder可將Jpeg格式圖片解碼任務提交給JpgDecoder, JpgDecoder再將該解碼任務提交給IJLDecoder (需要整圖解碼時)或IJGDecoder (需要部分解碼時); 如果JpgDecoder下的葉解碼器都不能成功解碼,則JpgDecoder可向ImageDecoder返回解碼失敗信息,ImageDecoder可選擇能夠支持Jpeg格式圖片解碼功能的通用解碼器(如FIDecoder)進行處理。類似的,當需要解碼Raw格式圖片時,ImageDecoder可將Raw格式圖片解碼任務提交給DcrawDecoder, DcrawDecoder再將該解碼任務提交給其下的葉解碼器(未在圖中示出)。當需要解碼其他格式圖片時,ImageDecoder可將解碼任務提交給能夠支持相應格式圖片解碼功能的通用解碼器FIDecoder進行處理,如果FIDecoder解碼失敗,則ImageDecoder可在接收到解碼失敗的信息后,進一步將該解碼任務提交給其他能夠支持相應格式圖片解碼功能的通用解碼器(如圖中的⑶IPDecoder)處理。通過以上描述可以看出,一方面,即使是同一種格式的媒體文件,也可以有多個解碼器來支持解碼,每次可選擇最合適(如解碼性能最好)的一個解碼器來執(zhí)行當前的解碼任務;另一方面,如果一個解碼器解碼失敗,還可以再嘗試使用其它解碼器解碼,直到得到正確結果或者沒有更多的解碼器可以嘗試。本發(fā)明實施例將多個解碼器有效地整合在了一起,使得性能、容錯性以及處理范圍與現(xiàn)有技術相比有所提高;再一方面,采用本發(fā)明實施例提供的樹型解碼器結構還具有較好的擴展性,當需要增加解碼器時,可將新增的解碼器歸到相應的中間解碼器下,當增加可支持的文件類型時,可增加中間解碼器以及在其下增加可支持新文件類型的解碼器。本發(fā)明的上述實施例可通過軟件編程方式實現(xiàn)。為簡化實現(xiàn)方式,可采用以下方式實現(xiàn)樹型解碼器結構及其解碼邏輯
首選,設計一個抽象類。這個抽象類的接口函數(shù)要包含可能的全部常用的操作,如可包括實現(xiàn)初始化解碼器的函數(shù),實現(xiàn)獲取文件類型的函數(shù),實現(xiàn)部分解碼的函數(shù),實現(xiàn)完全解碼的函數(shù),實現(xiàn)暫停解碼的函數(shù),實現(xiàn)繼續(xù)解碼的函數(shù),實現(xiàn)停止解碼的函數(shù),重置解碼器等函數(shù)。這些函數(shù)通常一旦設計好以后基本不會再修改。然后,設計一個根解碼器的類,繼承自上述抽象類(方便以后將這個根解碼器當作另一系統(tǒng)的中間解碼器),并針對該根解碼器的類,設計根據(jù)文件后綴進行解碼任務分派的邏輯;
根據(jù)需求設計中間解碼器的類,每一個類都繼承自上述抽象類。中間解碼器對應一種文件格式,負責該種格式的解碼任務的分發(fā)。針對中間解碼器的類,設計根據(jù)任務特點或解碼器性能進行葉解碼器選擇的邏輯;
將所有第三方的解碼器分別用一個類包裝起來,這些類繼承自上述抽象類。該類中的解碼器每次收到解碼任務后即執(zhí)行,解碼完畢后就返回解碼結果。基于相同的技術構思,本發(fā)明實施例還提供了一種可實現(xiàn)上述流程的文件處理系統(tǒng)。 參見圖7,為本發(fā)明實施例提供的媒體文件處理系統(tǒng)的結構示意圖。如圖所示,該系統(tǒng)可包括調(diào)用模塊701,以及根解碼器702、中間解碼器703和具有媒體文件解碼功能的葉解碼器704 ;根解碼器702、中間解碼器703和葉解碼器704組成樹型結構700,其中,用于解碼同一類型文件的葉解碼器704歸類于一個中間解碼器703,各中間解碼器703歸類于根解碼器702,其具體樹型結構可同前所述,在此不再贅述。各功能模塊的具體功能如下
調(diào)用模塊701,用于將媒體文件解碼任務提交給根解碼器702 ;
根解碼器702,用于根據(jù)待解碼的媒體文件的類型,將所述媒體文件解碼任務分發(fā)給用于解碼相應類型媒體文件的中間解碼器703 ;
中間解碼器703,用于將所述媒體文件解碼任務分發(fā)給歸于其下的葉解碼器704 ;
葉解碼器704,用于根據(jù)接收到的媒體文件解碼任務對待解碼媒體文件進行處理。上述媒體文件處理系統(tǒng)中,葉解碼器704還可在對媒體文件解碼失敗時,向其所屬的中間解碼器返回解碼失敗信息;相應的,該中間解碼器703在接收到葉解碼器返回的解碼失敗信息后,可從歸于其下的葉解碼器中選擇還未被選擇用來解碼所述媒體文件的葉解碼器704,并將所述媒體文件解碼任務分發(fā)給選擇出的葉解碼器704進行處理;以此類推,直到媒體文件解碼成功或者歸于該中間解碼器703其下的所有葉解碼器704都被選擇過。上述媒體文件處理系統(tǒng)中,中間解碼器703在選擇其下的葉解碼器704時,可從歸于其下的葉解碼器704中選擇解碼性能最高的葉解碼器,并將所述媒體文件解碼任務提交給選擇出的葉解碼器704進行處理;或/和,根據(jù)所述媒體文件解碼任務的特性,從歸于其下的葉解碼器704中選擇相匹配的葉解碼器704,并將所述媒體文件解碼任務提交給選擇出的葉解碼器704進行處理。上述媒體文件處理系統(tǒng)中,樹型解碼器結構700中還包括可支持多種類型文件解碼功能的通用解碼器705,通用解碼器705作為葉解碼器歸類于根解碼器。相應的,根解碼器701可在將所述媒體文件解碼任務分發(fā)給中間解碼器之前,將所述媒體文件解碼任務分發(fā)給通用解碼器705進行處理;在接收到所述通用解碼器705返回的解碼失敗信息后,根據(jù)待解碼的媒體文件的類型,將所述媒體文件解碼任務分發(fā)給用于解碼相應類型媒體文件的中間解碼器703。針對包括有通用解碼器705的樹型解碼器結構700,葉解碼器704還可在解碼失敗后向其歸屬的中間解碼器703返回解碼失敗信息;該中間解碼器703還可向所述根解碼器返回解碼失敗信息;根解碼器701還可將所述媒體文件解碼任務分發(fā)給能夠支持待解碼的媒體文件類型的通用解碼器705進行處理。本領域技術人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺終端設備(可以是手機,個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。 以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視本發(fā)明的保護范圍。
權利要求
1.一種媒體文件處理方法,應用于媒體文件處理系統(tǒng),其特征在于,所述系統(tǒng)中包括樹型解碼器結構,其中,各具有媒體文件解碼功能的解碼器分別作為葉解碼器,用于解碼同一類型文件的葉解碼器歸類于一個中間解碼器,各中間解碼器歸類于一個根解碼器;當所述系統(tǒng)接收到媒體文件解碼任務后,該方法包括以下步驟 將媒體文件解碼任務提交給根解碼器; 所述根解碼器根據(jù)待解碼的媒體文件的類型,將所述媒體文件解碼任務分發(fā)給用于解碼相應類型媒體文件的中間解碼器; 所述中間解碼器將所述媒體文件解碼任務分發(fā)給歸于其下的葉解碼器進行處理。
2.如權利要求I所述的方法,其特征在于,該方法還包括 若葉解碼器對媒體文件解碼失敗,則向其所屬的中間解碼器返回解碼失敗信息; 所述中間解碼器接收到葉解碼器返回的解碼失敗信息后,執(zhí)行 步驟A、判斷其下的所有葉解碼器是否都被選擇過用來執(zhí)行所述解碼任務;若判斷為是,則結束所述解碼任務的流程;否則執(zhí)行步驟B ; 步驟B、從歸于其下的葉解碼器中選擇還未被選擇用來解碼所述媒體文件的葉解碼器,并將所述媒體文件解碼任務分發(fā)給選擇出的葉解碼器進行處理; 步驟C、根據(jù)葉解碼器返回的解碼結果,若判斷解碼失敗,則返回步驟A ;若判斷解碼成功,則結束所述解碼任務的流程。
3.如權利要求I或2所述的方法,其特征在于,所述中間解碼器將媒體文件解碼任務分發(fā)給歸于其下的葉解碼器進行處理,包括 所述中間解碼器從歸于其下的葉解碼器中選擇解碼性能最高的葉解碼器,并將所述媒體文件解碼任務提交給選擇出的葉解碼器進行處理;或/和 所述中間解碼器根據(jù)所述媒體文件解碼任務的特性,從歸于其下的葉解碼器中選擇相匹配的葉解碼器,并將所述媒體文件解碼任務提交給選擇出的葉解碼器進行處理。
4.如權利要求I或2所述的方法,其特征在于,所述樹型解碼器結構中還包括可支持多種類型文件解碼功能的通用解碼器,所述通用解碼器作為葉解碼器歸類于根解碼器; 所述根解碼器在將所述媒體文件解碼任務分發(fā)給中間解碼器之前,還包括將所述媒體文件解碼任務分發(fā)給所述通用解碼器進行處理; 所述根解碼器根據(jù)待解碼的媒體文件的類型,將所述媒體文件解碼任務分發(fā)給用于解碼相應類型媒體文件的中間解碼器,具體為 所述根解碼器在接收到所述通用解碼器返回的解碼失敗信息后,根據(jù)待解碼的媒體文件的類型,將所述媒體文件解碼任務分發(fā)給用于解碼相應類型媒體文件的中間解碼器。
5.如權利要求I或2所述的方法,其特征在于,所述樹型解碼器結構中還包括可支持多種類型文件解碼功能的通用解碼器,所述通用解碼器作為葉解碼器歸類于根解碼器; 所述葉解碼器解碼失敗后還包括 所述葉解碼器向其歸屬的中間解碼器返回解碼失敗信息,所述中間解碼器向所述根解碼器返回解碼失敗信息; 所述根解碼器將所述媒體文件解碼任務分發(fā)給能夠支持待解碼的媒體文件類型的通用解碼器進行處理。
6.一種媒體文件處理系統(tǒng),其特征在于,包括調(diào)用模塊,以及根解碼器、中間解碼器和具有媒體文件解碼功能的葉解碼器;所述根解碼器、中間解碼器和葉解碼器組成樹型結構,其中,用于解碼同一類型文件的葉解碼器歸類于一個中間解碼器,各中間解碼器歸類于根解碼器; 調(diào)用模塊,用于將媒體文件解碼任務提交給所述根解碼器; 所述根解碼器,用于根據(jù)待解碼的媒體文件的類型,將所述媒體文件解碼任務分發(fā)給用于解碼相應類型媒體文件的中間解碼器; 所述中間解碼器,用于將所述媒體文件解碼任務分發(fā)給歸于其下的葉解碼器; 所述葉解碼器,用于根據(jù)接收到的媒體文件解碼任務對待解碼媒體文件進行處理。
7.如權利要求6所述的媒體文件處理系統(tǒng),其特征在于,所述葉解碼器還用于,若對媒體文件解碼失敗,則向其所屬的中間解碼器返回解碼失敗信息; 所述中間解碼器還用于執(zhí)行以下過程 步驟A、判斷其下的所有葉解碼器是否都被選擇過用來執(zhí)行所述解碼任務;若判斷為是,則結束所述解碼任務的流程;否則執(zhí)行步驟B ; 步驟B、從歸于其下的葉解碼器中選擇還未被選擇用來解碼所述媒體文件的葉解碼器,并將所述媒體文件解碼任務分發(fā)給選擇出的葉解碼器進行處理; 步驟C、根據(jù)葉解碼器返回的解碼結果,若判斷解碼失敗,則返回步驟A ;若判斷解碼成功,則結束所述解碼任務的流程。
8.如權利要求6或7所述的媒體文件處理系統(tǒng),其特征在于,所述中間解碼器具體用于,從歸于其下的葉解碼器中選擇解碼性能最高的葉解碼器,并將所述媒體文件解碼任務提交給選擇出的葉解碼器進行處理;或/和,根據(jù)所述媒體文件解碼任務的特性,從歸于其下的葉解碼器中選擇相匹配的葉解碼器,并將所述媒體文件解碼任務提交給選擇出的葉解碼器進行處理。
9.如權利要求6或7所述的媒體文件處理系統(tǒng),其特征在于,所述樹型解碼器結構中還包括可支持多種類型文件解碼功能的通用解碼器,所述通用解碼器作為葉解碼器歸類于根解碼器; 所述根解碼器還用于,在將所述媒體文件解碼任務分發(fā)給中間解碼器之前,將所述媒體文件解碼任務分發(fā)給所述通用解碼器進行處理;以及,在接收到所述通用解碼器返回的解碼失敗信息后,根據(jù)待解碼的媒體文件的類型,將所述媒體文件解碼任務分發(fā)給用于解碼相應類型媒體文件的中間解碼器。
10.如權利要求6或7所述的媒體文件處理系統(tǒng),其特征在于,所述樹型解碼器結構中還包括可支持多種類型文件解碼功能的通用解碼器,所述通用解碼器作為葉解碼器歸類于根解碼器; 所述葉解碼器還用于,在解碼失敗后向其歸屬的中間解碼器返回解碼失敗信息; 所述中間解碼器還用于,向所述根解碼器返回解碼失敗信息; 所述根解碼器還用于,將所述媒體文件解碼任務分發(fā)給能夠支持待解碼的媒體文件類型的通用解碼器進行處理。
全文摘要
本發(fā)明公開了一種媒體文件處理方法及其系統(tǒng),本發(fā)明方法應用于媒體文件處理系統(tǒng),所述系統(tǒng)中包括樹型解碼器結構,其中,各具有媒體文件解碼功能的解碼器分別作為葉解碼器,用于解碼同一類型文件的葉解碼器歸類于一個中間解碼器,各中間解碼器歸類于一個根解碼器;當所述系統(tǒng)接收到媒體文件解碼任務后,該方法包括將媒體文件解碼任務提交給根解碼器;所述根解碼器根據(jù)待解碼的媒體文件的類型,將所述媒體文件解碼任務分發(fā)給用于解碼相應類型媒體文件的中間解碼器;所述中間解碼器將所述媒體文件解碼任務分發(fā)給歸于其下的葉解碼器進行處理。采用本發(fā)明可提高解碼靈活性和解碼效率。
文檔編號H04N7/26GK102685481SQ20111006637
公開日2012年9月19日 申請日期2011年3月18日 優(yōu)先權日2011年3月18日
發(fā)明者傅斌, 周元劍, 高峰 申請人:騰訊科技(深圳)有限公司