安卓系統(tǒng)中視頻編碼方式的選擇方法和裝置制造方法
【專利摘要】本發(fā)明實(shí)施例提供了一種安卓系統(tǒng)中視頻編碼方式的選擇方法和裝置,該方法包括:用戶設(shè)備使用硬件編碼器對(duì)參考視頻進(jìn)行編碼;判斷所述硬件編碼器輸出的內(nèi)容和所述參考視頻的預(yù)定編碼內(nèi)容的差異是否在預(yù)定范圍內(nèi);如果是,則使用所述硬件編碼器對(duì)視頻進(jìn)行編碼,否則,使用軟件編碼器對(duì)視頻進(jìn)行編碼。本申請(qǐng)?zhí)岣吡艘曨l編碼的性能。
【專利說(shuō)明】安卓系統(tǒng)中視頻編碼方式的選擇方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及視頻編碼【技術(shù)領(lǐng)域】,特別是涉及一種安卓系統(tǒng)中視頻編碼方式的選擇 方法和裝置。
【背景技術(shù)】
[0002] 安卓系統(tǒng)上的視頻編輯軟件可以采用軟件編碼或者硬件編碼兩種編碼方案,軟件 編碼的優(yōu)勢(shì)在于兼容性好,但是,其具有性能差和功耗高的缺點(diǎn)。相比軟件編碼方案,硬件 編碼方案更好的性能和更低的功耗,但是,由于安卓終端的多樣化,導(dǎo)致硬件編碼器的實(shí)現(xiàn) 也各不相同,這對(duì)應(yīng)用的終端適配提出了很高的要求。因此,安卓系統(tǒng)上現(xiàn)有的視頻編輯軟 件基本都是直接調(diào)用了 FFMPEG (-個(gè)開源多媒體庫(kù))的軟件編碼器,而不支持硬件編碼,其 中,F(xiàn)FMPEG是一個(gè)開源多媒體支持庫(kù),采用純軟件的方式實(shí)現(xiàn)了對(duì)各種視頻編碼標(biāo)準(zhǔn)的支 持,可支持安卓系統(tǒng)。
[0003] 因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問(wèn)題就是:如何盡可能提高 安卓系統(tǒng)視頻編碼的性能。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明實(shí)施例所要解決的技術(shù)問(wèn)題是提供一種安卓系統(tǒng)中視頻編碼方式的選擇 方法,以便提高安卓系統(tǒng)視頻編碼的性能。
[0005] 相應(yīng)的,本發(fā)明實(shí)施例還提供了一種安卓系統(tǒng)中視頻編碼方式的選擇裝置,用以 保證上述方法的實(shí)現(xiàn)及應(yīng)用。
[0006] 為了解決上述問(wèn)題,本發(fā)明公開了一種安卓系統(tǒng)中視頻編碼方式的選擇方法,包 括:用戶設(shè)備使用硬件編碼器對(duì)參考視頻進(jìn)行編碼;判斷所述硬件編碼器輸出的內(nèi)容和所 述參考視頻的預(yù)定編碼內(nèi)容的差異是否在預(yù)定范圍內(nèi);如果是,則使用所述硬件編碼器對(duì) 視頻進(jìn)行編碼,否則,使用軟件編碼器對(duì)視頻進(jìn)行編碼。
[0007] 優(yōu)選地,在用戶設(shè)備使用硬件編碼器對(duì)參考視頻進(jìn)行編碼之前,所述方法還包括: 檢測(cè)所述用戶設(shè)備中硬件編碼所需的參數(shù);根據(jù)所述硬件編碼所需的參數(shù),生成參數(shù)集; 使用所述參數(shù)集配置硬件編碼器。
[0008] 優(yōu)選地,根據(jù)所述硬件編碼所需的參數(shù),生成參數(shù)集,包括:判斷所述硬件編碼所 需的參數(shù)中的每一類參數(shù)中是否都有預(yù)定集合中的參數(shù),其中所述預(yù)定集合中的參數(shù)能夠 用于硬件編碼;如果是,在每一類參數(shù)中選擇所述預(yù)定集合中優(yōu)先級(jí)最高的一個(gè)參數(shù)組成 所述參數(shù)集。
[0009] 優(yōu)選地,如果所述硬件編碼所需的參數(shù)中的某一類參數(shù)不包含所述預(yù)定集合中的 參數(shù),則使用軟件編碼器對(duì)視頻進(jìn)行編碼。
[0010] 優(yōu)選地,檢測(cè)所述用戶設(shè)備中硬件編碼所需的參數(shù),包括:通過(guò)安卓底層應(yīng)用程序 編程接口 API,檢測(cè)所述用戶設(shè)備的照相機(jī)Camera參數(shù)、編碼器參數(shù)和系統(tǒng)硬件信息,其 中,所述編碼器參數(shù)包括:類別profile和級(jí)別level。 toon] 為了解決上述問(wèn)題,本發(fā)明公開了一種安卓系統(tǒng)中視頻編碼方式的選擇裝置,包 括:編碼單元,用于使用硬件編碼器對(duì)參考視頻進(jìn)行編碼;判斷單元,用于判斷所述硬件編 碼器輸出的內(nèi)容和所述參考視頻的預(yù)定編碼內(nèi)容的差異是否在預(yù)定范圍內(nèi);控制單元,用 于在判斷結(jié)果為是的情況下,使用所述硬件編碼器對(duì)視頻進(jìn)行編碼,在判斷結(jié)果為否的情 況下,使用軟件編碼器對(duì)視頻進(jìn)行編碼。
[0012] 優(yōu)選地,所述裝置還包括:檢測(cè)單元,用于在使用硬件編碼器對(duì)參考視頻進(jìn)行編碼 之前,檢測(cè)所述裝置中硬件編碼所需的參數(shù);生成單元,用于根據(jù)所述硬件編碼所需的參 數(shù),生成參數(shù)集;配置單元,用于使用所述參數(shù)集配置硬件編碼器。
[0013] 優(yōu)選地,所述生成單元用于:判斷所述硬件編碼所需的參數(shù)中的每一類參數(shù)中是 否都有預(yù)定集合中的參數(shù),其中所述預(yù)定集合中的參數(shù)能夠用于硬件編碼;如果是,在每一 類參數(shù)中選擇所述預(yù)定集合中優(yōu)先級(jí)最高的一個(gè)參數(shù)組成所述參數(shù)集。
[0014] 優(yōu)選地,所述控制單元還用于在所述硬件編碼所需的參數(shù)中的某一類參數(shù)不包含 所述預(yù)定集合中的參數(shù),使用軟件編碼器對(duì)視頻進(jìn)行編碼。
[0015] 優(yōu)選地,所述檢測(cè)單元用于通過(guò)安卓底層應(yīng)用程序編程接口 API,檢測(cè)所述用戶 設(shè)備的照相機(jī)Camera參數(shù)、編碼器參數(shù)和系統(tǒng)硬件信息,其中,所述編碼器參數(shù)包括:類別 profile 和級(jí)別 level。
[0016] 與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例包括以下優(yōu)點(diǎn):
[0017] 在現(xiàn)有技術(shù)中,安卓系統(tǒng)上現(xiàn)有的視頻編輯軟件基本都是直接調(diào)用了 FFMPEG的 軟件編碼器,而不支持硬件編碼,導(dǎo)致視頻編碼的性能較差。在本申請(qǐng)中,先使用硬件編碼 器對(duì)參考視頻進(jìn)行編碼,如果編碼結(jié)果和預(yù)設(shè)結(jié)果的差異較小,則表示可以使用硬件編碼 器進(jìn)行編碼,此時(shí),使用硬件編碼器進(jìn)行編碼,通過(guò)這樣的方式,提高了視頻編碼的性能。
【專利附圖】
【附圖說(shuō)明】
[0018] 圖1是本發(fā)明的一種安卓系統(tǒng)中視頻編碼方式的選擇方法實(shí)施例的步驟流程圖;
[0019] 圖2是本發(fā)明的另一種安卓系統(tǒng)中視頻編碼方式的選擇方法實(shí)施例的步驟流程 圖;
[0020] 圖3是本發(fā)明的一種安卓系統(tǒng)中視頻編碼方式的選擇裝置實(shí)施例的結(jié)構(gòu)框圖;
[0021] 圖4是本發(fā)明的一種安卓系統(tǒng)中視頻編碼方式的選擇裝置實(shí)施例的優(yōu)選的結(jié)構(gòu) 框圖。
【具體實(shí)施方式】
[0022] 為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí) 施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。
[0023] 本發(fā)明實(shí)施例的核心構(gòu)思之一在于,用戶設(shè)備使用硬件編碼器對(duì)參考視頻進(jìn)行編 碼;判斷硬件編碼器輸出的內(nèi)容和參考視頻的預(yù)定編碼內(nèi)容的差異是否在預(yù)定范圍內(nèi);如 果是,則使用硬件編碼器對(duì)視頻進(jìn)行編碼,否則,使用軟件編碼器對(duì)視頻進(jìn)行編碼。在現(xiàn)有 技術(shù)中,安卓系統(tǒng)上現(xiàn)有的視頻編輯軟件基本都是直接調(diào)用了 FFMPEG的軟件編碼器,而不 支持硬件編碼,導(dǎo)致視頻編碼的性能較差。在本申請(qǐng)中,先使用硬件編碼器對(duì)參考視頻進(jìn)行 編碼,如果編碼結(jié)果和預(yù)設(shè)結(jié)果的差異較小,則表示可以使用硬件編碼器進(jìn)行編碼,此時(shí), 使用硬件編碼器進(jìn)行編碼,通過(guò)這樣的方式,提高了視頻編碼的性能。
[0024] 參照?qǐng)D1,示出了本發(fā)明的一種安卓系統(tǒng)中視頻編碼方式的選擇方法實(shí)施例的步 驟流程圖,具體可以包括如下步驟:
[0025] 步驟102,用戶設(shè)備使用硬件編碼器對(duì)參考視頻進(jìn)行編碼;其中,該用戶設(shè)備使用 安卓操作系統(tǒng)。
[0026] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)施方式中,在使用硬件編碼器對(duì)參考視頻進(jìn)行編碼 之前,可以對(duì)編碼器進(jìn)行配置,配置的方式可以包括:檢測(cè)用戶設(shè)備中硬件編碼所需的參 數(shù);根據(jù)檢測(cè)到的硬件編碼所需的參數(shù),生成參數(shù)集;使用生成的參數(shù)集配置硬件編碼器。 在本實(shí)施例中,使用測(cè)量到的用戶設(shè)備的參數(shù)來(lái)對(duì)硬件編輯器進(jìn)行配置,使得硬件編輯器 的參數(shù)和用戶設(shè)備相匹配,從而獲得較好的視頻編碼性能。
[0027] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)例中,可以通過(guò)以下方式來(lái)生成參數(shù)集:判斷硬件 編碼所需的參數(shù)中的每一類參數(shù)中是否都有預(yù)定集合中的參數(shù),其中預(yù)定集合中的參數(shù)能 夠用于硬件編碼;如果是,在每一類參數(shù)中選擇預(yù)定集合中優(yōu)先級(jí)最高的一個(gè)參數(shù)組成參 數(shù)集。如果硬件編碼所需的參數(shù)中的某一類參數(shù)不包含預(yù)定集合中的參數(shù),則使用軟件編 碼器對(duì)視頻進(jìn)行編碼。優(yōu)選地,硬件編碼所需的參數(shù)包括不同的類別,例如,包括:用戶設(shè)備 的照相機(jī)(Camera)參數(shù)、編碼器(Codec)參數(shù)、類別(profile)、級(jí)別(level)和系統(tǒng)硬件 信息,這些參數(shù)可以通過(guò)安卓底層參數(shù)獲得。預(yù)定集合中的參數(shù)是能夠用于硬件編碼的參 數(shù),因此,在檢測(cè)用戶設(shè)備中硬件編碼所需的參數(shù)之后,判斷每一類別檢測(cè)到的參數(shù)中是否 都包含預(yù)定集合的參數(shù),例如,先判斷檢測(cè)到的Camera參數(shù)是否包含預(yù)定集合中的Camera 參數(shù),如果是,則表示檢測(cè)到的Camera參數(shù)存在能夠用于硬件編碼的參數(shù),從能夠用于硬 件編碼的Camera參數(shù)中選取優(yōu)先級(jí)最高的一個(gè)寫入?yún)?shù)集,其他類別的參數(shù)也采用類似 的方法選取參數(shù)寫入?yún)?shù)集,這樣獲得的參數(shù)集能夠在該用戶設(shè)備中進(jìn)行硬件編碼。在本 實(shí)施例中,可以通過(guò)多種接口獲取不同安卓終端硬件相關(guān)的所有參數(shù),然后從獲取最優(yōu)參 數(shù)的角度出發(fā),設(shè)定了一系列的規(guī)則,從參數(shù)集中自動(dòng)選擇一組最優(yōu)參數(shù),從而減少了針對(duì) 不同終端手工適配參數(shù)所需要的時(shí)間。
[0028] 步驟104,判斷硬件編碼器輸出的內(nèi)容和參考視頻的預(yù)定編碼內(nèi)容的差異是否在 預(yù)定范圍內(nèi);
[0029] 在配置硬件編碼器之后,還需要確定硬件編碼器進(jìn)行硬件編碼時(shí)的性能是否滿足 要求,這可以通過(guò)參考視頻來(lái)確定。在參考視頻確定之后,參考視頻的預(yù)定編碼內(nèi)容也就確 定下來(lái)了,此時(shí),只需要判斷硬件編碼器對(duì)參考視頻的編碼結(jié)果和參考視頻的預(yù)定編碼內(nèi) 容是否滿足要求,就可以確定出硬件編碼器進(jìn)行硬件編碼時(shí)的性能是否滿足要求,其中,預(yù) 定范圍是可以根據(jù)經(jīng)驗(yàn)或具體情況來(lái)確定的。
[0030] 步驟106,如果硬件編碼器輸出的內(nèi)容和參考視頻的預(yù)定編碼內(nèi)容的差異在預(yù)定 范圍內(nèi),則使用硬件編碼器對(duì)視頻進(jìn)行編碼,否則,使用軟件編碼器對(duì)視頻進(jìn)行編碼。
[0031] 如果硬件編碼器輸出的內(nèi)容和參考視頻的預(yù)定編碼內(nèi)容的差異在預(yù)定范圍內(nèi),就 可以確定出硬件編碼器進(jìn)行硬件編碼時(shí)的性能滿足要求,此時(shí),可以使用硬件編碼器對(duì)視 頻進(jìn)行編碼;否則,硬件編碼器進(jìn)行硬件編碼時(shí)的性能不滿足要求,使用軟件編碼器對(duì)視頻 進(jìn)行編碼。
[0032] 在現(xiàn)有技術(shù)中,安卓系統(tǒng)上現(xiàn)有的視頻編輯軟件基本都是直接調(diào)用了 FFMPEG的 軟件編碼器,而不支持硬件編碼,導(dǎo)致視頻編碼的性能較差。在本實(shí)施例中,先使用硬件編 碼器對(duì)參考視頻進(jìn)行編碼,如果編碼結(jié)果和預(yù)設(shè)結(jié)果的差異較小,則表示可以使用硬件編 碼器進(jìn)行編碼,此時(shí),使用硬件編碼器進(jìn)行編碼,通過(guò)這樣的方式,提高了視頻編碼的性能。
[0033] 參照?qǐng)D2,示出了本發(fā)明的一種安卓系統(tǒng)中視頻編碼方式的選擇方法實(shí)施例的步 驟流程圖,具體可以包括如下步驟:
[0034] 步驟202,對(duì)安卓系統(tǒng)Camera和Codec進(jìn)行初始化,從而獲取安卓系統(tǒng)所在的用戶 設(shè)備的Camera和Codec初始化參數(shù)。
[0035] 步驟204,用戶設(shè)備通過(guò)安卓底層應(yīng)用程序編程接口(Application Programminglnterface, API)獲取Camera參數(shù)(包括色彩空間、視頻尺寸等)、Codec參數(shù) (包括編碼碼率、視頻幀率、編碼格式、編碼器profile、編碼器level)、以及系統(tǒng)硬件信息。
[0036] 步驟206,根據(jù)測(cè)量得到的參數(shù)和預(yù)定集合,生成參數(shù)集。其中,預(yù)定集合是能夠用 于硬件編碼的參數(shù)的集合。
[0037] 在具體實(shí)現(xiàn)時(shí),預(yù)定集合可以包括:硬件編碼器(HwCodec)、類別(High profile、MainProfile、BaselineProfile)、級(jí)別(Level4、Level32、Level31、Levell)、 色彩空間(ColorFormatYUV420SemiPlanar、YUV420Planar 和 YCbYCr),其中, HwCodec、Highprofile、Level4 和 ColorFormatYUV420SemiPlanar 的優(yōu)先級(jí)在所屬 類別的參數(shù)中的優(yōu)先級(jí)是最高的,如果測(cè)量得到的參數(shù)存在HwCodec、Hi ghprofi 1 e、 Level4、ColorFormatYUV420SemiPlanar,優(yōu)先選擇 HwCodec、Highprofile、Level4 和 ColorFormatYUV420SemiPlanar來(lái)作為參數(shù)集。如果最高優(yōu)先權(quán)的上述參數(shù)不全部被 支持,例如,在測(cè)量到用于硬件編碼的參數(shù)中不包含最高優(yōu)先權(quán)的上述參數(shù)的至少之一, 則按照優(yōu)先級(jí)從高到低的順序的優(yōu)先級(jí)依次在測(cè)量得到的參數(shù)中選取,從而選擇出一 組優(yōu)先級(jí)盡可能高的參數(shù)作為生成的參數(shù)集,如果測(cè)量得到的某一類的參數(shù)中不包含 能夠用于硬件編碼的參數(shù),則返回失敗標(biāo)記,使用軟件的方式進(jìn)行視頻編碼,其中,優(yōu)先 級(jí)從高到低的順序?yàn)椋篗ainProfile_>BaselineProfile,Level32->Level31_>…Levell, YUV420Planar->YCbYCr。另外,也可以針對(duì)現(xiàn)有的處理器(AP)廠商(如高通或三星),設(shè)置 部分預(yù)置參數(shù),將預(yù)置參數(shù)作為參數(shù)集中的參數(shù)。
[0038] 其中,profile和level都是H. 264標(biāo)準(zhǔn)定義的參數(shù),不同的profile和level適用 于不同的應(yīng)用場(chǎng)景,例如,高清或網(wǎng)絡(luò)視頻。H. 264是一種高壓縮度視頻編碼標(biāo)準(zhǔn),適用于絕 大多數(shù)網(wǎng)絡(luò)媒體和移動(dòng)終端。
[0039] 步驟208,使用生成的參數(shù)集配置硬件編碼器,通過(guò)編碼測(cè)試模塊生成一組測(cè)試編 碼碼流(即,參考視頻),將該測(cè)試編碼碼流提供給硬件編碼器進(jìn)行編碼,然后,將硬件編碼 器的編碼結(jié)果和預(yù)先準(zhǔn)備好的數(shù)據(jù)(即,參考視頻的預(yù)定編碼結(jié)果)進(jìn)行比較,如果偏差小 于預(yù)定值,例如,偏差〈20%,則判斷硬件編碼器正常工作,告知用戶可以使用硬件編碼,否 則返回不支持的信息,以便使用軟件編碼器進(jìn)行視頻編碼。
[0040] 其中,硬件編碼器可以是基于OMXCodec類的編碼器,其輸入為自定義YUV視頻幀 緩沖,輸出為比特流緩沖。
[0041] 在現(xiàn)有技術(shù)中,不同終端硬件編碼器的本質(zhì)區(qū)別在于底層采用的芯片方案不同, 因此,對(duì)于編碼器的輸入輸出數(shù)據(jù)有不同的定義,且對(duì)H. 264標(biāo)準(zhǔn)的支持程度也不同。如果 對(duì)硬件編碼器配置的參數(shù)不正確,必然會(huì)導(dǎo)致其不能正常工作。本實(shí)施例通過(guò)收集終端攝 像頭輸出格式、安卓系統(tǒng)定義的media_profiles. xml以及編碼器的能力測(cè)試,從上述信息 中選擇出能夠用于硬件編碼的參數(shù),從而產(chǎn)生一組輸出參數(shù)集,使用該參數(shù)集對(duì)硬件編碼 器進(jìn)行配置,然后對(duì)硬件編碼器的輸出進(jìn)行測(cè)試,如果測(cè)試通過(guò)則采用硬件方案進(jìn)行編碼, 對(duì)極少數(shù)不支持的設(shè)備采用軟件方案進(jìn)行編碼,從而盡可能的提高了視頻編碼的性能。并 且,本實(shí)施例在適合硬件編碼的時(shí)候使用硬件編碼,在不適合硬件編碼的時(shí)候使用軟件進(jìn) 行編碼,將硬件編碼的性能功耗優(yōu)勢(shì)和軟件編碼的兼容性進(jìn)行了統(tǒng)一。
[0042] 需要說(shuō)明的是,對(duì)于方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組 合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實(shí)施例并不受所描述的動(dòng)作順序的限制,因?yàn)橐?據(jù)本發(fā)明實(shí)施例,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該 知悉,說(shuō)明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本發(fā)明實(shí)施 例所必須的。
[0043] 參照?qǐng)D3,示出了本發(fā)明一種安卓系統(tǒng)中視頻編碼方式的選擇裝置實(shí)施例的結(jié)構(gòu) 框圖,具體可以包括如下模塊:
[0044] 編碼單元302,用于使用硬件編碼器對(duì)參考視頻進(jìn)行編碼;
[0045] 判斷單元304,用于判斷硬件編碼器輸出的內(nèi)容和參考視頻的預(yù)定編碼內(nèi)容的差 異是否在預(yù)定范圍內(nèi);
[0046] 控制單元306,用于在判斷結(jié)果為是的情況下,使用硬件編碼器對(duì)視頻進(jìn)行編碼, 在判斷結(jié)果為否的情況下,使用軟件編碼器對(duì)視頻進(jìn)行編碼。
[0047] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)現(xiàn)方式中,如圖4所示,示出了本發(fā)明一種安卓系 統(tǒng)中視頻編碼方式的選擇裝置實(shí)施例的優(yōu)選的結(jié)構(gòu)框圖,該裝置還包括:
[0048] 檢測(cè)單元402,用于在使用硬件編碼器對(duì)參考視頻進(jìn)行編碼之前,檢測(cè)裝置中硬件 編碼所需的參數(shù);
[0049] 生成單元404,用于根據(jù)硬件編碼所需的參數(shù),生成參數(shù)集;
[0050] 配置單元406,用于使用參數(shù)集配置硬件編碼器。
[0051] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)現(xiàn)方式中,生成單元404用于:
[0052] 判斷硬件編碼所需的參數(shù)中的每一類參數(shù)中是否都有預(yù)定集合中的參數(shù),其中預(yù) 定集合中的參數(shù)能夠用于硬件編碼;
[0053] 如果是,在每一類參數(shù)中選擇預(yù)定集合中優(yōu)先級(jí)最高的一個(gè)參數(shù)組成參數(shù)集。
[0054] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)現(xiàn)方式中,控制單元306還用于在硬件編碼所需的 參數(shù)中的某一類參數(shù)不包含預(yù)定集合中的參數(shù),使用軟件編碼器對(duì)視頻進(jìn)行編碼。
[0055] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)現(xiàn)方式中,檢測(cè)單元402用于通過(guò)安卓底層API,檢 測(cè)用戶設(shè)備的照相機(jī)Camera參數(shù)、Codec參數(shù)、profile、level和系統(tǒng)硬件信息。
[0056] 對(duì)于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān) 之處參見方法實(shí)施例的部分說(shuō)明即可。
[0057] 本說(shuō)明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與 其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
[0058] 本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明實(shí)施例的實(shí)施例可提供為方法、裝置、或計(jì)算 機(jī)程序產(chǎn)品。因此,本發(fā)明實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和 硬件方面的實(shí)施例的形式。而且,本發(fā)明實(shí)施例可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可 用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上 實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0059] 本發(fā)明實(shí)施例是參照根據(jù)本發(fā)明實(shí)施例的方法、終端設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序 產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框 圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商?供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理 終端設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處 理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多 個(gè)方框中指定的功能的裝置。
[0060] 這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備 以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包 括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方 框或多個(gè)方框中指定的功能。
[0061] 這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備上,使得 在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在 計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程 和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0062] 盡管已描述了本發(fā)明實(shí)施例的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基 本創(chuàng)造性概念,則可對(duì)這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為 包括優(yōu)選實(shí)施例以及落入本發(fā)明實(shí)施例范圍的所有變更和修改。
[0063] 最后,還需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將 一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來(lái),而不一定要求或者暗示這些實(shí)體或操作 之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)"包括"、"包含"或者其任何其他變體意 在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者終端設(shè)備不僅包 括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品 或者終端設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句"包括一個(gè)……"限定的要 素,并不排除在包括所述要素的過(guò)程、方法、物品或者終端設(shè)備中還存在另外的相同要素。 [0064] 以上對(duì)本發(fā)明所提供的一種安卓系統(tǒng)中視頻編碼方式的選擇方法和裝置,進(jìn)行了 詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的 說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依 據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容 不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1. 一種安卓系統(tǒng)中視頻編碼方式的選擇方法,其特征在于,包括: 用戶設(shè)備使用硬件編碼器對(duì)參考視頻進(jìn)行編碼; 判斷所述硬件編碼器輸出的內(nèi)容和所述參考視頻的預(yù)定編碼內(nèi)容的差異是否在預(yù)定 范圍內(nèi); 如果是,則使用所述硬件編碼器對(duì)視頻進(jìn)行編碼,否則,使用軟件編碼器對(duì)視頻進(jìn)行編 碼。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在用戶設(shè)備使用硬件編碼器對(duì)參考視頻 進(jìn)行編碼之前,所述方法還包括: 檢測(cè)所述用戶設(shè)備中硬件編碼所需的參數(shù); 根據(jù)所述硬件編碼所需的參數(shù),生成參數(shù)集; 使用所述參數(shù)集配置硬件編碼器。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述硬件編碼所需的參數(shù),生成參數(shù) 集,包括: 判斷所述硬件編碼所需的參數(shù)中的每一類參數(shù)中是否都有預(yù)定集合中的參數(shù),其中所 述預(yù)定集合中的參數(shù)能夠用于硬件編碼; 如果是,在每一類參數(shù)中選擇所述預(yù)定集合中優(yōu)先級(jí)最高的一個(gè)參數(shù)組成所述參數(shù) 集。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,如果所述硬件編碼所需的參數(shù)中的某一 類參數(shù)不包含所述預(yù)定集合中的參數(shù),則使用軟件編碼器對(duì)視頻進(jìn)行編碼。
5. 根據(jù)權(quán)利要求2所述的方法,其特征在于,檢測(cè)所述用戶設(shè)備中硬件編碼所需的參 數(shù),包括: 通過(guò)安卓底層應(yīng)用程序編程接口 API,檢測(cè)所述用戶設(shè)備的照相機(jī)Camera參數(shù)、編碼 器參數(shù)和系統(tǒng)硬件信息,其中,所述編碼器參數(shù)包括:類別profile和級(jí)別level。
6. -種安卓系統(tǒng)中視頻編碼方式的選擇裝置,其特征在于,包括: 編碼單元,用于使用硬件編碼器對(duì)參考視頻進(jìn)行編碼; 判斷單元,用于判斷所述硬件編碼器輸出的內(nèi)容和所述參考視頻的預(yù)定編碼內(nèi)容的差 異是否在預(yù)定范圍內(nèi); 控制單元,用于在判斷結(jié)果為是的情況下,使用所述硬件編碼器對(duì)視頻進(jìn)行編碼,在判 斷結(jié)果為否的情況下,使用軟件編碼器對(duì)視頻進(jìn)行編碼。
7. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 檢測(cè)單元,用于在使用硬件編碼器對(duì)參考視頻進(jìn)行編碼之前,檢測(cè)所述裝置中硬件編 碼所需的參數(shù); 生成單元,用于根據(jù)所述硬件編碼所需的參數(shù),生成參數(shù)集; 配置單元,用于使用所述參數(shù)集配置硬件編碼器。
8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述生成單元用于: 判斷所述硬件編碼所需的參數(shù)中的每一類參數(shù)中是否都有預(yù)定集合中的參數(shù),其中所 述預(yù)定集合中的參數(shù)能夠用于硬件編碼; 如果是,在每一類參數(shù)中選擇所述預(yù)定集合中優(yōu)先級(jí)最高的一個(gè)參數(shù)組成所述參數(shù) 集。
9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述控制單元還用于在所述硬件編碼所 需的參數(shù)中的某一類參數(shù)不包含所述預(yù)定集合中的參數(shù),使用軟件編碼器對(duì)視頻進(jìn)行編 碼。
10. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述檢測(cè)單元用于通過(guò)安卓底層應(yīng)用程 序編程接口 API,檢測(cè)所述用戶設(shè)備的照相機(jī)Camera參數(shù)、編碼器參數(shù)和系統(tǒng)硬件信息,其 中,所述編碼器參數(shù)包括:類別profile和級(jí)別level。
【文檔編號(hào)】H04N19/436GK104159113SQ201410307463
【公開日】2014年11月19日 申請(qǐng)日期:2014年6月30日 優(yōu)先權(quán)日:2014年6月30日
【發(fā)明者】李棟 申請(qǐng)人:北京奇藝世紀(jì)科技有限公司