多媒體播放中的視頻幀處理方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種多媒體播放中的視頻幀處理方法和裝置。所述方法包括:獲取平臺硬件性能信息和多媒體文件信息;根據(jù)所述平臺硬件性能信息和多媒體文件信息得到匹配的實(shí)際顯示動(dòng)態(tài)幀率;獲取所述多媒體文件的視頻幀率;根據(jù)所述實(shí)際顯示動(dòng)態(tài)幀率和獲取的視頻幀率丟棄視頻幀,以得到與所述實(shí)際顯示動(dòng)態(tài)幀率相符的視頻幀序列。所述裝置包括:包括:信息獲取模塊、動(dòng)態(tài)運(yùn)算模塊、視頻幀率獲取模塊和序列生成模塊。采用本發(fā)明能保證多媒體文件在硬件處理性能不足的平臺中得到較佳播放效果。
【專利說明】多媒體播放中的視頻幀處理方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)應(yīng)用技術(shù),特別是涉及一種多媒體播放中的視頻幀處理方法和 裝直。
【背景技術(shù)】
[0002] 隨著移動(dòng)設(shè)備的普及與發(fā)展,人們對資訊、娛樂以及社交溝通已不再僅僅滿足于 文字信息,而是延伸到了語音、視頻等各種多媒體領(lǐng)域。在對多媒體文件進(jìn)行播放的過程 中,由于所在的平臺硬件性能千差萬別以及多媒體文件的多樣性,同一媒體文件在不同平 臺上的播放效果也不盡相同,因此也導(dǎo)致了多媒體文件在硬件處理性能較低的平臺上的播 放效果不盡人意。
[0003] 在對多媒體文件進(jìn)行播放的平臺硬件處理性能不足的情況下,所做的處理不外乎 兩種:(1)暫停音頻播放,等待視頻時(shí)間戳與音頻時(shí)間戳一致時(shí)重新啟動(dòng)音頻的播放;(2) 連續(xù)播放音頻,當(dāng)視頻比音頻延后一定時(shí)間后,直接丟棄一段視頻數(shù)據(jù)。
[0004] 但是,這兩種處理方式將使得多媒體文件在硬件處理性能不足的平臺中播放時(shí)存 在著播放效果不佳的缺陷。
【發(fā)明內(nèi)容】
[0005] 基于此,有必要針對多媒體文件在硬件處理性能不足的平臺中播放時(shí)存在的播放 效果不佳的技術(shù)問題,提供一種保證多媒體文件在硬件處理性能不足的平臺中得到較佳播 放效果的多媒體播放中的視頻幀處理方法。
[0006] 此外,還有必要提供一種保證多媒體文件在硬件處理性能不足的平臺中得到較佳 播放效果的多媒體播放中的視頻幀處理裝置。
[0007] -種多媒體播放中的視頻幀處理方法,包括如下步驟:
[0008] 獲取平臺硬件性能信息和多媒體文件信息;
[0009] 根據(jù)所述平臺硬件性能信息和多媒體文件信息得到匹配的實(shí)際顯示動(dòng)態(tài)幀率;
[0010] 獲取所述多媒體文件的視頻幀率;
[0011] 根據(jù)所述實(shí)際顯示動(dòng)態(tài)幀率和獲取的視頻幀率丟棄視頻幀,以得到與所述實(shí)際顯 示動(dòng)態(tài)幀率相符的視頻幀序列。
[0012] 在其中一個(gè)實(shí)施例中,所述根據(jù)所述平臺硬件性能信息和多媒體文件信息得到匹 配的實(shí)際顯示動(dòng)態(tài)巾貞率的步驟包括:
[0013] 根據(jù)所述平臺硬件性能信息和多媒體文件信息設(shè)定初始處理幀率;
[0014] 隨著多媒體文件的播放獲取播放視頻幀所需時(shí)間和當(dāng)前播放的幀數(shù),根據(jù)所述播 放視頻幀所需時(shí)間和當(dāng)前播放的幀數(shù)統(tǒng)計(jì)所述多媒體文件播放時(shí)的平均幀率;
[0015] 由所述平均幀率和初始處理幀率運(yùn)算得到與所述平臺硬件性能信息和多媒體文 件信息相匹配的實(shí)際顯示動(dòng)態(tài)幀率。
[0016] 在其中一個(gè)實(shí)施例中,所述根據(jù)所述實(shí)際顯示動(dòng)態(tài)幀率和獲取的視頻幀率丟棄視 頻幀,以得到與所述實(shí)際顯示動(dòng)態(tài)幀率相符的視頻幀序列的步驟包括:
[0017] 求取所述實(shí)際顯示動(dòng)態(tài)幀率和獲取的視頻幀率之間互為質(zhì)數(shù)的對應(yīng)數(shù)值,即實(shí)際 顯示動(dòng)態(tài)幀率所對應(yīng)的第一數(shù)值和視頻幀率所對應(yīng)的第二數(shù)值;
[0018] 根據(jù)所述第一數(shù)值和第二數(shù)值得到丟棄幀數(shù),并判斷所述第一數(shù)值是否小于丟棄 幀數(shù),若為否,則
[0019] 根據(jù)所述第一數(shù)值和丟棄幀數(shù)在初始視頻幀序列中選取進(jìn)行播放處理和丟棄的 視頻幀,以得到標(biāo)記了播放處理的視頻幀和丟棄的視頻幀的視頻幀序列;
[0020] 若為是,則將第一數(shù)值和丟棄幀數(shù)進(jìn)行數(shù)值對調(diào),并返回所述根據(jù)所述第一數(shù)值 和丟棄幀數(shù)在初始視頻幀序列中選取進(jìn)行播放處理和丟棄的視頻幀,以得到標(biāo)記了播放處 理的視頻幀和丟棄的視頻幀的視頻幀序列的步驟;
[0021] 將所述得到的視頻幀序列中標(biāo)記為丟棄的視頻幀調(diào)換為播放處理的視頻幀,將標(biāo) 記為播放處理的視頻幀調(diào)換為丟棄的視頻幀。
[0022] 在其中一個(gè)實(shí)施例中,所述根據(jù)所述第一數(shù)值和第二數(shù)值得到丟棄幀數(shù),根據(jù)所 述第一數(shù)值和丟棄幀數(shù)在初始視頻幀序列中得到丟棄的視頻幀,以得到標(biāo)記了播放處理的 視頻幀和丟棄的視頻幀的視頻幀序列的步驟包括:
[0023] 由所述第一數(shù)值和丟棄幀數(shù)計(jì)算得到與實(shí)際顯示動(dòng)態(tài)幀率相對應(yīng)的視頻幀塊數(shù) 量以及視頻幀塊中擁有的視頻幀數(shù)量;
[0024] 在所述初始視頻幀序列中按照所述視頻幀塊數(shù)量、視頻幀塊中擁有的視頻幀數(shù)量 得到播放過程中處理的視頻幀和丟棄的視頻幀,以得到標(biāo)記了播放處理的視頻幀和丟棄的 視頻幀的視頻幀序列,所述被丟棄的視頻幀是平均分布于所述初始視頻幀序列中的。
[0025] 在其中一個(gè)實(shí)施例中,所述在所述初始視頻幀序列中按照所述視頻幀塊數(shù)量、視 頻幀塊中擁有的視頻幀數(shù)量得到播放過程中處理的視頻幀和丟棄的視頻幀,以得到標(biāo)記了 播放處理的視頻幀和丟棄的視頻幀的視頻幀序列的步驟包括:
[0026] 根據(jù)所述視頻幀塊數(shù)量劃分初始視頻幀序列以得到若干個(gè)視頻幀塊;
[0027] 按照所述視頻幀塊中擁有的視頻幀數(shù)量逐一在每一視頻幀塊中標(biāo)記將進(jìn)行播放 處理的視頻幀,并將所述視頻幀塊中未標(biāo)記播放處理的視頻幀標(biāo)記為丟棄,以得到標(biāo)記了 播放處理的視頻幀和丟棄的視頻幀的視頻幀序列。
[0028] -種多媒體播放中的視頻幀處理裝置,包括:
[0029] 信息獲取模塊,用于獲取平臺硬件性能信息和多媒體文件信息;
[0030] 動(dòng)態(tài)運(yùn)算模塊,用于根據(jù)所述平臺硬件性能信息和多媒體文件信息得到匹配的實(shí) 際顯示動(dòng)態(tài)巾貞率;
[0031] 視頻幀率獲取模塊,用于獲取所述多媒體文件的視頻幀率;
[0032] 序列生成模塊,用于根據(jù)所述實(shí)際顯示動(dòng)態(tài)幀率和獲取的視頻幀率丟棄視頻幀, 以得到與所述實(shí)際顯示動(dòng)態(tài)幀率相符的視頻幀序列。
[0033] 在其中一個(gè)實(shí)施例中,所述動(dòng)態(tài)運(yùn)算模塊包括:
[0034] 初始設(shè)定單元,用于根據(jù)所述平臺硬件性能信息和多媒體文件信息設(shè)定初始處理 幀率;
[0035] 統(tǒng)計(jì)單元,用于隨著多媒體文件的播放獲取播放視頻幀所需時(shí)間和當(dāng)前播放的幀 數(shù),根據(jù)所述播放視頻幀所需時(shí)間和當(dāng)前播放的幀數(shù)統(tǒng)計(jì)所述多媒體文件播放時(shí)的平均幀 率;
[0036] 實(shí)際顯示動(dòng)態(tài)幀率運(yùn)算單元,用于由所述平均幀率和初始處理幀率運(yùn)算得到與所 述平臺硬件性能信息和多媒體文件信息相匹配的實(shí)際顯示動(dòng)態(tài)幀率。
[0037] 在其中一個(gè)實(shí)施例中,所述序列生成模塊包括:
[0038] 數(shù)值求取單元,用于求取所述實(shí)際顯示動(dòng)態(tài)幀率和獲取的視頻幀率之間互為質(zhì)數(shù) 的對應(yīng)數(shù)值,即實(shí)際顯示動(dòng)態(tài)幀率所對應(yīng)的第一數(shù)值和視頻幀率所對應(yīng)的第二數(shù)值;
[0039] 判斷單元,用于根據(jù)所述第一數(shù)值和第二數(shù)值得到丟棄幀數(shù),并判斷所述第一數(shù) 值是否小于丟棄幀數(shù),若為否,則通知選取單元,若為是,則通知數(shù)值對調(diào)單元;
[0040] 所述選取單元用于根據(jù)所述第一數(shù)值和丟棄幀數(shù)在初始視頻幀序列中選取進(jìn)行 播放處理和丟棄的視頻幀,以得到標(biāo)記了播放處理的視頻幀和丟棄的視頻幀的視頻幀序 列;
[0041] 所述數(shù)值對調(diào)單元用于將第一數(shù)值和丟棄幀數(shù)進(jìn)行數(shù)值對調(diào),并通知所述選取單 元;
[0042] 調(diào)換單元,用于將所述得到的視頻幀序列中標(biāo)記為丟棄的視頻幀調(diào)換為播放處理 的視頻幀,將標(biāo)記為播放處理的視頻幀調(diào)換為丟棄的視頻幀。
[0043] 在其中一個(gè)實(shí)施例中,所述選取單元包括:
[0044] 視頻幀塊運(yùn)算單元,用于由所述第一數(shù)值和丟棄幀數(shù)計(jì)算得到與實(shí)際顯示動(dòng)態(tài)幀 率相對應(yīng)的視頻幀塊數(shù)量以及視頻幀塊中擁有的視頻幀數(shù)量;
[0045] 初始序列處理單元,用于在所述初始視頻幀序列中按照所述視頻幀塊數(shù)量、視頻 幀塊中擁有的視頻幀數(shù)量得到播放過程中處理的視頻幀和丟棄的視頻幀,以得到標(biāo)記了播 放處理的視頻幀和丟棄的視頻幀的視頻幀序列,所述被丟棄的視頻幀是平均分布于所述初 始視頻幀序列中的。
[0046] 在其中一個(gè)實(shí)施例中,所述初始序列處理單元包括:
[0047] 劃分子單元,用于根據(jù)所述視頻幀塊數(shù)量劃分初始視頻幀序列以得到若干個(gè)視頻 中貞塊;
[0048] 標(biāo)記子單元,用于按照所述視頻幀塊中擁有的視頻幀數(shù)量逐一在每一視頻幀塊中 標(biāo)記將進(jìn)行播放處理的視頻幀,并將所述視頻幀塊中未標(biāo)記播放處理的視頻幀標(biāo)記為丟 棄,以得到標(biāo)記了播放處理的視頻幀和丟棄的視頻幀的視頻幀序列。
[0049] 上述多媒體播放中的視頻幀處理方法和裝置,在進(jìn)行多媒體文件播放時(shí)將獲取平 臺硬件性能信息和多媒體文件信息,以根據(jù)平臺硬件性能信息和多媒體文件信息得到匹配 的實(shí)際顯示動(dòng)態(tài)幀率,獲取播放的多媒體文件所對應(yīng)的視頻幀率,根據(jù)實(shí)際顯示動(dòng)態(tài)幀率 和獲取的視頻幀率丟棄視頻幀,得到與實(shí)際顯示動(dòng)態(tài)幀率相符的視頻幀序列,進(jìn)而使視頻 幀序列是與當(dāng)前所在平臺的硬件性能相適應(yīng)的,因此即便在平臺的硬件處理性能不足的情 況下仍然能夠得到較佳的播放效果。
【專利附圖】
【附圖說明】
[0050] 圖1為一個(gè)實(shí)施例中多媒體播放中的視頻幀處理方法的流程圖;
[0051] 圖2為圖1中根據(jù)平臺硬件性能信息和多媒體文件信息得到匹配的實(shí)際顯示動(dòng)態(tài) 幀率的方法流程圖;
[0052] 圖3為圖1中根據(jù)實(shí)際顯示動(dòng)態(tài)幀率和獲取的視頻幀率丟棄視頻幀,以得到與實(shí) 際顯示動(dòng)態(tài)幀率相符的視頻幀序列的方法流程圖;
[0053] 圖4為圖3中根據(jù)第一數(shù)值和丟棄幀數(shù)在初始視頻幀序列中選取進(jìn)行播放處理和 丟棄的視頻幀,以得到標(biāo)記了播放處理的視頻幀和丟棄的視頻幀的視頻幀序列的方法流程 圖;
[0054] 圖5為圖4中在初始視頻幀序列中按照視頻幀塊數(shù)量、視頻幀塊中擁有的視頻幀 數(shù)量得到播放過程中處理的視頻幀和丟棄的視頻幀,以得到標(biāo)記了播放處理的視頻幀和丟 棄的視頻幀的視頻幀序列,被丟棄的視頻幀是平均分布于初始視頻幀序列中的的方法流程 圖;
[0055] 圖6為一個(gè)實(shí)施例中多媒體文件播放中的視頻幀處理裝置的結(jié)構(gòu)示意圖;
[0056] 圖7為圖6中動(dòng)態(tài)運(yùn)算模塊的結(jié)構(gòu)示意圖;
[0057] 圖8為圖6中序列生成模塊的結(jié)構(gòu)示意圖;
[0058] 圖9為圖8中選取單元的結(jié)構(gòu)示意圖;
[0059] 圖10為圖9中初始序列處理單元的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0060] 如圖1所示,在一個(gè)實(shí)施例中,一種多媒體播放中的視頻幀處理方法,包括如下步 驟:
[0061] 步驟S10,獲取平臺硬件性能信息和多媒體文件信息。
[0062] 本實(shí)施例中,平臺硬件性能信息指的是當(dāng)前進(jìn)行多媒體文件播放的平臺所對應(yīng)的 硬件性能情況,例如,平臺硬件性能信息可以是CPU (Central Processing Unit,中央處理 器)處理性能信息,即CPU主頻。多媒體文件信息則是當(dāng)前所播放的多媒體文件對應(yīng)的相關(guān) 信息,例如,視頻幀率、分辨率和編碼格式等。
[0063] 步驟S30,根據(jù)平臺硬件性能信息和多媒體文件信息得到匹配的實(shí)際顯示動(dòng)態(tài)幀 率。
[0064] 本實(shí)施例中,多媒體文件的播放將包括了視頻幀的播放和音頻幀的播放,而視頻 幀的播放將占據(jù)了平臺中硬件的絕大部分處理能力,因此將根據(jù)對視頻幀的處理情況來動(dòng) 態(tài)評估平臺的處理能力。
[0065] 實(shí)際顯示動(dòng)態(tài)幀率為平臺中適應(yīng)其硬件性能播放多媒體文件所對應(yīng)的幀率,是區(qū) 別于多媒體文件中設(shè)定的視頻幀率的,例如,在平臺硬件性能較差的情況下,實(shí)際顯示動(dòng)態(tài) 幀率將小于多媒體文件中設(shè)定的視頻幀率;而在平臺硬件性能較佳的情況下,實(shí)際顯示動(dòng) 態(tài)幀率將等于多媒體文件中設(shè)定的視頻幀率。
[0066] 具體的,隨著多媒體文件的播放,將根據(jù)平臺硬件性能信息和多媒體文件信息對 實(shí)際顯示動(dòng)態(tài)幀率進(jìn)行動(dòng)態(tài)調(diào)整,以得到與當(dāng)前的平臺硬件性能相匹配的實(shí)際顯示動(dòng)態(tài)幀 率,進(jìn)而為多媒體文件在各種硬件性能的平臺中播放的較佳視覺效果和流暢性提供了前提 條件。
[0067] 步驟S50,獲取多媒體文件的視頻幀率。
[0068] 本實(shí)施例中,多媒體文件的視頻幀率為多媒體文件本身所固有的屬性,是產(chǎn)生多 媒體文件時(shí)設(shè)定的。
[0069] 步驟S70,根據(jù)實(shí)際顯示動(dòng)態(tài)幀率和獲取的視頻幀率丟棄視頻幀,以得到與實(shí)際顯 示動(dòng)態(tài)幀率相符的視頻幀序列。
[0070] 本實(shí)施例中,以實(shí)際顯示動(dòng)態(tài)幀率和由多媒體文件獲取的視頻幀率為依據(jù),對多 媒體文件中的初始視頻幀序列進(jìn)行篩選,以確定初始視頻幀序列中進(jìn)行播放的視頻幀和丟 棄的視頻幀,進(jìn)而在單位時(shí)間的多媒體文件播放過程中通過不完全播放初始視頻幀序列中 的視頻幀來滿足當(dāng)前進(jìn)行動(dòng)態(tài)調(diào)整所得到的實(shí)際顯示動(dòng)態(tài)幀率,以適應(yīng)所在平臺的硬件性 能。
[0071] 在得到與實(shí)際顯示動(dòng)態(tài)幀率相符的視頻幀序列之后,將對視頻幀序列中確定進(jìn)行 播放的視頻幀順次播放,使得多媒體文件的播放能夠動(dòng)態(tài)適應(yīng)各種不同硬件性能的平臺, 避免了平臺播放多媒體文件時(shí)出現(xiàn)音頻和視頻時(shí)間戳不一致的情況發(fā)生,極大地提高了平 臺播放多媒體文件的視覺效果和流暢性。
[0072] 如圖2所示,在一個(gè)實(shí)施例中,上述步驟S30包括:
[0073] 步驟S310,根據(jù)平臺硬件性能信息和多媒體文件信息設(shè)定初始處理幀率。
[0074] 本實(shí)施例中,在開始播放多媒體文件之前,將根據(jù)平臺硬件性能信息和多媒體文 件信息設(shè)置初始處理幀率,平臺將以設(shè)置的初始處理幀率啟動(dòng)多媒體文件的播放,也就是 說,在對多媒體文件的播放幀率,即實(shí)際顯示動(dòng)態(tài)幀率進(jìn)行動(dòng)態(tài)調(diào)整之前,所進(jìn)行的初始值 設(shè)置也是以平臺硬件性能信息和多媒體文件信息為依據(jù)的,極大的保證了實(shí)際顯示動(dòng)態(tài)幀 率進(jìn)行動(dòng)態(tài)調(diào)整的準(zhǔn)確性。
[0075] 具體的,根據(jù)當(dāng)前平臺硬件性能以及多媒體文件的情況,當(dāng)CPU主頻小于500M時(shí), 設(shè)定初始處理幀率為12 ;CPU主頻大于500M且小于1G,并且多媒體文件中視頻編碼格式為 AVC時(shí),設(shè)定初始處理幀率為14 ;其它情況下將設(shè)定初始處理幀率為16。
[0076] 步驟S330,隨著多媒體文件的播放獲取播放視頻幀所需時(shí)間和當(dāng)前播放的幀數(shù), 根據(jù)播放視頻幀所需時(shí)間和當(dāng)前播放的幀數(shù)統(tǒng)計(jì)多媒體文件播放時(shí)的平均幀率。
[0077] 本實(shí)施例中,多媒體文件由設(shè)定的初始處理幀率啟動(dòng)播放,并且隨著多媒體文件 的播放將不斷進(jìn)行播放過程中平均幀率的動(dòng)態(tài)統(tǒng)計(jì),以得到每一初始視頻幀序列的選幀操 作所需要的平均幀率。
[0078] 在多媒體文件的播放過程中,將獲取播放每一視頻幀所需要的時(shí)間,即播放視頻 幀所需時(shí)間,以及當(dāng)前所播放的幀數(shù),以根據(jù)播放視頻幀所需時(shí)間和當(dāng)前播放的幀數(shù)不斷 進(jìn)行平均幀率的動(dòng)態(tài)統(tǒng)計(jì),該平均幀率即為平臺當(dāng)前所能處理的視頻幀對應(yīng)的幀率平均 值。
[0079] 具體的,定義動(dòng)態(tài)統(tǒng)計(jì)所得到的平均幀率為Frn,則所進(jìn)行的平均幀率動(dòng)態(tài)統(tǒng)計(jì)可 通過如下公式實(shí)現(xiàn),即:
[0080] Frn=(1000* Σ Dtn)/Fcn
[0081] 其中,Dtn為處理第η幀時(shí)所需要時(shí)間,F(xiàn)cn為當(dāng)前處理視頻幀的幀數(shù)。
[0082] 步驟S350,由平均幀率和初始處理幀率運(yùn)算得到與平臺硬件性能信息和多媒體文 件信息相匹配的實(shí)際顯示動(dòng)態(tài)幀率。
[0083] 本實(shí)施例中,以根據(jù)平臺硬件性能信息和多媒體文件信息設(shè)定的初始處理幀率作 為運(yùn)算的初始值,并根據(jù)動(dòng)態(tài)統(tǒng)計(jì)所得到的平均幀率進(jìn)行實(shí)際顯示動(dòng)態(tài)幀率的計(jì)算。
[0084] 具體的,實(shí)際顯示動(dòng)態(tài)幀率的計(jì)算將通過如下公式實(shí)現(xiàn),即:
[0085] Fdelta=Frn-Fr, Fr+=Fdelta/2
[0086] 其中,F(xiàn)r的初始值為初始處理幀率,F(xiàn)rn為動(dòng)態(tài)統(tǒng)計(jì)所得到的平均幀率,F(xiàn)r+Fdelta/2 的值即為當(dāng)前的實(shí)際顯示動(dòng)態(tài)幀率。
[0087] 通過如上所述的動(dòng)態(tài)評估過程得到與當(dāng)前平臺的硬件性能相適應(yīng)的實(shí)際顯示動(dòng) 態(tài)幀率,進(jìn)而使得多媒體文件播放過程中所得到的實(shí)際顯示動(dòng)態(tài)幀率均是與當(dāng)前平臺的硬 件性能相適應(yīng)的。
[0088] 如圖3所示,在一個(gè)實(shí)施例中,上述步驟S70包括:
[0089] 步驟S710,求取實(shí)際顯示動(dòng)態(tài)幀率和獲取的視頻幀率之間互為質(zhì)數(shù)的對應(yīng)數(shù)值, 即實(shí)際顯示動(dòng)態(tài)幀率所對應(yīng)的第一數(shù)值和視頻幀率所對應(yīng)的第二數(shù)值。
[0090] 本實(shí)施例中,在依據(jù)實(shí)際顯示動(dòng)態(tài)幀率所進(jìn)行的視頻幀篩選過程中,將求取實(shí)際 顯示動(dòng)態(tài)幀率和獲取的視頻幀率的質(zhì)數(shù),以將初始視頻幀序列中視頻幀的篩選問題演變?yōu)?從視頻幀率所對應(yīng)的第二數(shù)值個(gè)視頻幀中平均選擇實(shí)際顯示動(dòng)態(tài)幀率所對應(yīng)的第一數(shù)值 的視頻幀的過程。
[0091] 其中,第一數(shù)值和第二數(shù)值互為質(zhì)數(shù),為求取第一數(shù)值和第二數(shù)值,將根據(jù)從多媒 體文件中獲取到的視頻幀率和實(shí)際顯示動(dòng)態(tài)幀率計(jì)算其最大公約數(shù),即Fr g=GCD(Frm,F(xiàn)r), 其中,F(xiàn)rm為獲取到的視頻幀率,F(xiàn)r為實(shí)際顯示動(dòng)態(tài)幀率。
[0092] 然后分別計(jì)算出實(shí)際顯示動(dòng)態(tài)幀率所對應(yīng)的第一數(shù)值Fry和視頻幀率所對應(yīng)的第 二數(shù)值 Frx,即 Fry=Fr/Frg,F(xiàn)rx=Frm/Fr g。
[0093] 通過第一數(shù)值和第二數(shù)值的計(jì)算,將使得視頻幀在初始視頻幀序列中的篩選被劃 分成Fr g次進(jìn)行,例如,若從多媒體文件中獲取得到的視頻幀率為16,實(shí)際顯示動(dòng)態(tài)幀率為 12,則計(jì)算得到Fg=4, Frx=4, Fry=3,即視頻巾貞的篩選變?yōu)閺某跏家曨l巾貞序列中劃分為4次 進(jìn)行,從每4幀中選取3幀進(jìn)行播放,且每秒執(zhí)行4次這樣的選幀操作,余下的1幀則為丟 棄的視頻幀,進(jìn)而將丟幀產(chǎn)生的視頻畫面抖動(dòng)在每秒內(nèi)平均到4次操作中。
[0094] 步驟S730,根據(jù)第一數(shù)值和第二數(shù)值得到丟棄幀數(shù),并判斷第一數(shù)值是否小于丟 棄幀數(shù),若為否,則進(jìn)入步驟S750,若為是,則進(jìn)入步驟S770。
[0095] 本實(shí)施例中,由第一數(shù)據(jù)值和第二數(shù)值之間的差值得到丟棄幀數(shù),即 Frdis=Frx-Fry,其中,F(xiàn)rdis為丟棄幀數(shù),F(xiàn)r y為第一數(shù)值,F(xiàn)rx為第二數(shù)值,將對第一數(shù)值和丟 棄幀數(shù)之間的大小關(guān)系進(jìn)行判斷,若判斷到第一數(shù)值并不小于丟棄幀數(shù),即第一數(shù)值大于 或者等于丟棄幀數(shù),則直接進(jìn)行初始視頻幀序列中的選幀操作,若判斷到第一數(shù)值小于丟 棄幀數(shù),則需要對第一數(shù)值和丟棄幀數(shù)進(jìn)行數(shù)值對調(diào)處理。
[0096] 步驟S750,根據(jù)第一數(shù)值和丟棄幀數(shù)在初始視頻幀序列中選取進(jìn)行播放處理和丟 棄的視頻幀,以得到標(biāo)記了播放處理的視頻幀和丟棄的視頻幀的視頻幀序列。
[0097] 本實(shí)施例中,在判斷到第一數(shù)值不小于丟棄幀數(shù)時(shí),將根據(jù)第一數(shù)值和丟棄幀數(shù) 在初始視頻幀序列中進(jìn)行視頻幀的處理,其中,當(dāng)前所進(jìn)行視頻幀處理的初始視頻幀序列 將是由一秒鐘內(nèi)播放的視頻幀組成的,也就是說,播放的多媒體文件包括了若干個(gè)初始視 頻幀序列,一初始視頻幀序列即為播放多媒體文件的過程中某一秒所播放的內(nèi)容。
[0098] 步驟S770,將第一數(shù)值和丟棄幀數(shù)進(jìn)行數(shù)值對調(diào),并進(jìn)入步驟S750。
[0099] 本實(shí)施例中,若判斷到第一數(shù)值小于丟棄幀數(shù),則需要將第一數(shù)值和丟棄幀數(shù)所 對應(yīng)的數(shù)值進(jìn)行對調(diào),然后再通過步驟S750對初始視頻幀序列進(jìn)行視頻幀的選取,以得到 標(biāo)記了播放處理的視頻幀和丟棄的視頻幀的視頻幀序列。
[0100] 步驟S790,將得到的視頻幀序列中標(biāo)記為丟棄的視頻幀調(diào)換為播放處理的視頻 幀,將標(biāo)記為播放處理的視頻幀調(diào)換為丟棄的視頻幀。
[0101] 本實(shí)施例中,由于判斷到第一數(shù)值小于丟棄幀數(shù)而對第一數(shù)值和丟棄幀數(shù)進(jìn)行了 數(shù)值上的對調(diào),因此,在得到標(biāo)記了播放處理的視頻幀和標(biāo)記了丟棄的視頻幀的視頻幀序 列之后,需要將得到的視頻幀序列中標(biāo)記為丟棄的視頻幀標(biāo)記為播放處理,將標(biāo)記為播放 處理的視頻幀標(biāo)記為丟棄,然后再對這一視頻幀中標(biāo)記為播放處理的視頻幀進(jìn)行順次播 放。
[0102] 如圖4所示,在一個(gè)實(shí)施例中,上述步驟S750包括:
[0103] 步驟S751,由第一數(shù)值和丟棄幀數(shù)計(jì)算得到與實(shí)際顯示動(dòng)態(tài)幀率相對應(yīng)的視頻幀 塊數(shù)量以及視頻幀塊中擁有的視頻幀數(shù)量。
[0104] 本實(shí)施例中,視頻幀塊數(shù)量即為丟棄幀數(shù)Frdis,計(jì)算第一數(shù)值和丟棄幀數(shù)之間的 倍數(shù) X 和余數(shù) y,即=Fry/Frdis, y=Fry%Frdis,也就是說,F(xiàn)ry=x*Frdis+y,且 y〈Frdis。
[0105] 通過如上所述的計(jì)算,將要處理的初始視頻幀序列劃分為Frdis塊,每塊包含了 X 幀視頻幀,且最后余下y幀視頻幀需要進(jìn)行處理。
[0106] 步驟S753,在初始視頻幀序列中按照視頻幀塊數(shù)量、視頻幀塊中擁有的視頻幀數(shù) 量得到播放過程中處理的視頻幀和丟棄的視頻巾貞,以得到標(biāo)記了播放處理的視頻幀和丟棄 的視頻幀的視頻幀序列,被丟棄的視頻幀是平均分布于初始視頻幀序列中的。
[0107] 本實(shí)施例中,在劃分的每一視頻幀塊中,將與視頻幀塊中擁有的視頻幀數(shù)量個(gè)視 頻幀標(biāo)記為播放處理,然后將視頻幀塊中余下的視頻幀標(biāo)記為丟棄,即視頻幀塊中每標(biāo)記X 幀視頻幀為播放處理時(shí)才能選擇丟棄一幀。
[0108] 對初始視頻幀序列循環(huán)處理Frdis次,以使得需要丟棄視頻幀的幀序列處理完畢, 且被丟棄的視頻幀是平均分布于視頻幀塊中的。
[0109] 完成x*Frdis幀視頻幀的播放處理標(biāo)記和丟棄標(biāo)記之后,還需對y幀進(jìn)行處理,以 完成整個(gè)初始視頻幀塊的選幀操作。
[0110] 此時(shí),相當(dāng)于在Frdis個(gè)巾貞序列中,需要處理y巾貞,丟棄(Frdis_y)巾貞,此時(shí)令Fr y=y, Frdis=Frdis-y,如果Fry>=Frdis,則通過步驟S750,即步驟S751至步驟S753進(jìn)行處理,直至 y=i。
[0111] 在執(zhí)行至y=l時(shí),說明僅剩下最后一幀視頻幀需要進(jìn)行處理,因此,只需要將序列 中最后一幀視頻幀標(biāo)記為播放處理即可。
[0112] 如圖5所示,在一個(gè)實(shí)施例中,上述步驟S753的具體過程為:
[0113] 步驟S7531,根據(jù)視頻幀數(shù)量劃分初始視頻幀序列以得到若干個(gè)視頻幀塊。
[0114] 本實(shí)施例中,按照計(jì)算得到的視頻幀數(shù)量將初始視頻幀序列劃分為若干個(gè)視頻幀 塊。
[0115] 步驟S7533,按照視頻幀塊中擁有的視頻幀數(shù)量逐一在每一視頻幀塊中標(biāo)記將進(jìn) 行播放處理的視頻幀,并將視頻幀塊中未標(biāo)記播放處理的視頻幀標(biāo)記為丟棄,以得到標(biāo)記 了播放處理的視頻幀和丟棄的視頻幀的視頻幀序列。
[0116] 本實(shí)施例中,在每一視頻幀塊中對視頻幀進(jìn)行順次標(biāo)記,以標(biāo)記與計(jì)算得到的視 頻幀塊中擁有的視頻幀數(shù)量相一致的視頻幀,余下的未標(biāo)記的視頻幀即被標(biāo)記為丟棄,進(jìn) 而得到了播放于當(dāng)前平臺的視頻幀序列,該視頻幀序列所進(jìn)行的播放將是對標(biāo)記為播放處 理的視頻幀的順序播放。
[0117] 此外,在實(shí)際的初始視頻幀序列的選幀操作中,也可不進(jìn)行預(yù)先進(jìn)行視頻幀塊的 劃分,而是在初始視頻幀序列中順次按照視頻幀塊中擁有的視頻幀數(shù)量標(biāo)記視頻幀為播 放處理,然后將下一視頻幀標(biāo)記為丟棄,如此循環(huán)處理,直至執(zhí)行與視頻幀數(shù)量相一致的次 數(shù)。
[0118] 進(jìn)一步的,可將進(jìn)行播放處理的視頻幀標(biāo)記為1,將丟棄的視頻幀標(biāo)記為0,進(jìn)而 根據(jù)視頻幀序列中的1和0的標(biāo)記即可獲知所播放的視頻幀,以進(jìn)行視頻幀的播放。
[0119] 例如,若Frx=l 1,F(xiàn)ry=7, Frdis=4,則所得到的視頻巾貞序列的標(biāo)記為:
[0120]
【權(quán)利要求】
1. 一種多媒體播放中的視頻幀處理方法,包括如下步驟: 獲取平臺硬件性能信息和多媒體文件信息; 根據(jù)所述平臺硬件性能信息和多媒體文件信息得到匹配的實(shí)際顯示動(dòng)態(tài)幀率; 獲取所述多媒體文件的視頻幀率; 根據(jù)所述實(shí)際顯示動(dòng)態(tài)幀率和獲取的視頻幀率丟棄視頻幀,以得到與所述實(shí)際顯示動(dòng) 態(tài)幀率相符的視頻幀序列。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述平臺硬件性能信息和多媒 體文件信息得到匹配的實(shí)際顯示動(dòng)態(tài)幀率的步驟包括: 根據(jù)所述平臺硬件性能信息和多媒體文件信息設(shè)定初始處理幀率; 隨著多媒體文件的播放獲取播放視頻幀所需時(shí)間和當(dāng)前播放的幀數(shù),根據(jù)所述播放視 頻幀所需時(shí)間和當(dāng)前播放的幀數(shù)統(tǒng)計(jì)所述多媒體文件播放時(shí)的平均幀率; 由所述平均幀率和初始處理幀率運(yùn)算得到與所述平臺硬件性能信息和多媒體文件信 息相匹配的實(shí)際顯示動(dòng)態(tài)幀率。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述實(shí)際顯示動(dòng)態(tài)幀率和獲取 的視頻幀率丟棄視頻幀,以得到與所述實(shí)際顯示動(dòng)態(tài)幀率相符的視頻幀序列的步驟包括: 求取所述實(shí)際顯示動(dòng)態(tài)幀率和獲取的視頻幀率之間互為質(zhì)數(shù)的對應(yīng)數(shù)值,即實(shí)際顯示 動(dòng)態(tài)幀率所對應(yīng)的第一數(shù)值和視頻幀率所對應(yīng)的第二數(shù)值; 根據(jù)所述第一數(shù)值和第二數(shù)值得到丟棄幀數(shù),并判斷所述第一數(shù)值是否小于丟棄幀 數(shù),若為否,則 根據(jù)所述第一數(shù)值和丟棄幀數(shù)在初始視頻幀序列中選取進(jìn)行播放處理和丟棄的視頻 幀,以得到標(biāo)記了播放處理的視頻幀和丟棄的視頻幀的視頻幀序列; 若為是,則將第一數(shù)值和丟棄幀數(shù)進(jìn)行數(shù)值對調(diào),并返回所述根據(jù)所述第一數(shù)值和丟 棄幀數(shù)在初始視頻幀序列中選取進(jìn)行播放處理和丟棄的視頻幀,以得到標(biāo)記了播放處理的 視頻幀和丟棄的視頻幀的視頻幀序列的步驟; 將所述得到的視頻幀序列中標(biāo)記為丟棄的視頻幀調(diào)換為播放處理的視頻幀,將標(biāo)記為 播放處理的視頻幀調(diào)換為丟棄的視頻幀。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述第一數(shù)值和第二數(shù)值得到 丟棄幀數(shù),根據(jù)所述第一數(shù)值和丟棄幀數(shù)在初始視頻幀序列中得到丟棄的視頻幀,以得到 標(biāo)記了播放處理的視頻幀和丟棄的視頻幀的視頻幀序列的步驟包括: 由所述第一數(shù)值和丟棄幀數(shù)計(jì)算得到與實(shí)際顯示動(dòng)態(tài)幀率相對應(yīng)的視頻幀塊數(shù)量以 及視頻幀塊中擁有的視頻幀數(shù)量; 在所述初始視頻幀序列中按照所述視頻幀塊數(shù)量、視頻幀塊中擁有的視頻幀數(shù)量得到 播放過程中處理的視頻幀和丟棄的視頻幀,以得到標(biāo)記了播放處理的視頻幀和丟棄的視頻 幀的視頻幀序列,所述被丟棄的視頻幀是平均分布于所述初始視頻幀序列中的。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述在所述初始視頻幀序列中按照所述 視頻幀塊數(shù)量、視頻幀塊中擁有的視頻幀數(shù)量得到播放過程中處理的視頻幀和丟棄的視頻 幀,以得到標(biāo)記了播放處理的視頻幀和丟棄的視頻幀的視頻幀序列的步驟包括: 根據(jù)所述視頻幀塊數(shù)量劃分初始視頻幀序列以得到若干個(gè)視頻幀塊; 按照所述視頻幀塊中擁有的視頻幀數(shù)量逐一在每一視頻幀塊中標(biāo)記將進(jìn)行播放處理 的視頻幀,并將所述視頻幀塊中未標(biāo)記播放處理的視頻幀標(biāo)記為丟棄,以得到標(biāo)記了播放 處理的視頻幀和丟棄的視頻幀的視頻幀序列。
6. -種多媒體播放中的視頻幀處理裝置,其特征在于,包括: 信息獲取模塊,用于獲取平臺硬件性能信息和多媒體文件信息; 動(dòng)態(tài)運(yùn)算模塊,用于根據(jù)所述平臺硬件性能信息和多媒體文件信息得到匹配的實(shí)際顯 示動(dòng)態(tài)巾貞率; 視頻幀率獲取模塊,用于獲取所述多媒體文件的視頻幀率; 序列生成模塊,用于根據(jù)所述實(shí)際顯示動(dòng)態(tài)幀率和獲取的視頻幀率丟棄視頻幀,以得 到與所述實(shí)際顯示動(dòng)態(tài)幀率相符的視頻幀序列。
7. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述動(dòng)態(tài)運(yùn)算模塊包括: 初始設(shè)定單元,用于根據(jù)所述平臺硬件性能信息和多媒體文件信息設(shè)定初始處理幀 率; 統(tǒng)計(jì)單元,用于隨著多媒體文件的播放獲取播放視頻幀所需時(shí)間和當(dāng)前播放的幀數(shù), 根據(jù)所述播放視頻幀所需時(shí)間和當(dāng)前播放的幀數(shù)統(tǒng)計(jì)所述多媒體文件播放時(shí)的平均幀 率; 實(shí)際顯示動(dòng)態(tài)幀率運(yùn)算單元,用于由所述平均幀率和初始處理幀率運(yùn)算得到與所述平 臺硬件性能信息和多媒體文件信息相匹配的實(shí)際顯示動(dòng)態(tài)幀率。
8. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述序列生成模塊包括: 數(shù)值求取單元,用于求取所述實(shí)際顯示動(dòng)態(tài)幀率和獲取的視頻幀率之間互為質(zhì)數(shù)的對 應(yīng)數(shù)值,即實(shí)際顯示動(dòng)態(tài)幀率所對應(yīng)的第一數(shù)值和視頻幀率所對應(yīng)的第二數(shù)值; 判斷單元,用于根據(jù)所述第一數(shù)值和第二數(shù)值得到丟棄幀數(shù),并判斷所述第一數(shù)值是 否小于丟棄幀數(shù),若為否,則通知選取單元,若為是,則通知數(shù)值對調(diào)單元; 所述選取單元用于根據(jù)所述第一數(shù)值和丟棄幀數(shù)在初始視頻幀序列中選取進(jìn)行播放 處理和丟棄的視頻幀,以得到標(biāo)記了播放處理的視頻幀和丟棄的視頻幀的視頻幀序列; 所述數(shù)值對調(diào)單元用于將第一數(shù)值和丟棄幀數(shù)進(jìn)行數(shù)值對調(diào),并通知所述選取單元; 調(diào)換單元,用于將所述得到的視頻幀序列中標(biāo)記為丟棄的視頻幀調(diào)換為播放處理的視 頻幀,將標(biāo)記為播放處理的視頻幀調(diào)換為丟棄的視頻幀。
9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述選取單元包括: 視頻幀塊運(yùn)算單元,用于由所述第一數(shù)值和丟棄幀數(shù)計(jì)算得到與實(shí)際顯示動(dòng)態(tài)幀率相 對應(yīng)的視頻幀塊數(shù)量以及視頻幀塊中擁有的視頻幀數(shù)量; 初始序列處理單元,用于在所述初始視頻幀序列中按照所述視頻幀塊數(shù)量、視頻幀塊 中擁有的視頻幀數(shù)量得到播放過程中處理的視頻幀和丟棄的視頻幀,以得到標(biāo)記了播放處 理的視頻幀和丟棄的視頻幀的視頻幀序列,所述被丟棄的視頻幀是平均分布于所述初始視 頻幀序列中的。
10. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述初始序列處理單元包括: 劃分子單元,用于根據(jù)所述視頻幀塊數(shù)量劃分初始視頻幀序列以得到若干個(gè)視頻幀塊; 標(biāo)記子單元,用于按照所述視頻幀塊中擁有的視頻幀數(shù)量逐一在每一視頻幀塊中標(biāo)記 將進(jìn)行播放處理的視頻幀,并將所述視頻幀塊中未標(biāo)記播放處理的視頻幀標(biāo)記為丟棄,以 得到標(biāo)記了播放處理的視頻幀和丟棄的視頻幀的視頻幀序列。
【文檔編號】H04N21/462GK104254018SQ201410103810
【公開日】2014年12月31日 申請日期:2014年3月19日 優(yōu)先權(quán)日:2014年3月19日
【發(fā)明者】陳小平, 田邊, 段雪峰, 王大崴 申請人:深圳深訊和科技有限公司