專利名稱:視頻文件播放方法、裝置及嵌入式設備的制作方法
技術領域:
本發(fā)明涉及視頻播放,特別地,涉及一種嵌入式設備中播放視頻文件的方法、裝置及嵌入式設備。
背景技術:
嵌入式系統(tǒng)是嵌入到對象體系中的專用計算機系統(tǒng),是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,適用于應用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。嵌入式設備是指內(nèi)部有嵌入式系統(tǒng)的產(chǎn)品、設備。
目前在嵌入式設備,如手機、便攜多媒體播放器(PMP)等上面播放多媒體文件時,首先將多媒體文件中的音頻和視頻分離出來,然后根據(jù)視頻的幀率啟動定時器。每當設置的定時器例程運行時,就會顯示一幀視頻。定時器的時長是精度為毫秒的整數(shù),由此單幀實際顯示時間是整數(shù)毫秒。但是不同視頻文件播放幀率不同,經(jīng)常出現(xiàn)單幀理論顯示時間不是整數(shù)毫秒的情況,因此造成視頻理論播放時間與實際播放時間之間產(chǎn)生誤差。隨著播放時間的推移,誤差越來越大,造成視頻和音頻嚴重脫節(jié)。例如,視頻的幀率是30幀/秒,那么單幀實際顯示時間是33毫秒即定時器每33毫秒顯示一幀視頻,30幀視頻的實際播放時間是990毫秒,比理論播放時間1000毫秒快了10毫秒。這樣隨著播放的進行,誤差逐漸增大,嚴重影響了欣賞效果。
為了解決上述問題,目前已有的解決方案有采用浮點數(shù)運算累計播放誤差時間,來提高播放的精度。但由于浮點數(shù)運算需要消耗更多的系統(tǒng)資源,從而嚴重影響了嵌入式設備工作性能。還有一種解決方案是根據(jù)視頻文件中的每一幀解碼時間來進行解碼播放。該解決方案要求系統(tǒng)頻繁讀取文件,獲取每一幀顯示的準確時間,同時要求定時器定時的精度也比較高,導致定時器中斷頻繁,給嵌入式設備帶來了繁重的負擔。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種在嵌入式設備中播放視頻文件方法,在滿足準確播放視頻文件的同時,盡量減少嵌入式設備資源的消耗,降低成本。
根據(jù)第一方面,本發(fā)明提供在嵌入式設備中播放視頻文件的方法,所述方法包括基于幀率確定定時器的時間,即單幀實際顯示時間;確定播放參考幀數(shù)的視頻文件的理論播放時間和實際播放時間之間的單位播放誤差時間;啟動定時器,逐幀播放視頻文件,所述播放步驟包括以參考幀數(shù)為單位,基于單位播放誤差時間計算累計播放誤差時間,并且與單幀實際顯示時間比較,確定校正時機,進行校正。
需要說明的是,以該幀率播放所述參考幀數(shù)的視頻文件的時間應當是整數(shù)。
在第一方面中,優(yōu)選的是確定定時器的時間的步驟包括取幀率倒數(shù)并向下取整,得到定時器的時間。
根據(jù)第二方面,本發(fā)明提供了一種用于嵌入式設備的視頻文件播放裝置。
根據(jù)第三方面,本發(fā)明提供一種嵌入式設備,包括如第二方面所述的視頻文件播放裝置。
本發(fā)明通過累計播放誤差時間的整數(shù)運算以及累計播放誤差時間與單幀實際顯示時間的比較,確定校正時機,進行校正。在獲得很好的視頻播放效果的同時降低了對硬件計算處理能力的要求,大大減輕了嵌入式設備的繁重計算負擔,提高了嵌入式設備的性能。
為更好的理解本發(fā)明,下面結合附圖通過舉例對本發(fā)明作進一步說明,其中圖1是運用本發(fā)明播放方法的視頻文件播放流程圖。
具體實施例方式
參照圖1,圖1是根據(jù)本發(fā)明的一個實施方案的視頻播放方法的流程圖。
如圖1所示,在嵌入式設備中播放多媒體時,首先將多媒體文件中的音頻和視頻分離出來,然后根據(jù)視頻的幀率啟動一個定時器。定時器的時長是精度為毫秒的整數(shù)。每當設置的定時器例程運行時,就會顯示一幀視頻。
在該實施方案中,選取視頻的幀率例如30幀/秒,參考幀數(shù)例如30幀,其步驟包括在步驟S100中,初始化變量取幀率倒數(shù)并向下取整,計算出定時器的時間,也就是單幀實際顯示時間,即定時器的時間Ttime=1/幀率fps=1000/30=33毫秒,也就是說,所設置的定時器例程每33毫秒運行一次,顯示一幀視頻。將理論播放時間減去實際播放時間,也就是將參考幀數(shù)除以幀率的商減去單幀實際顯示時間與參考幀數(shù)的乘積,計算出單位播放誤差時間,即單位播放誤差時間TLost=理論播放時間-實際播放時間=參考幀數(shù)fNum/幀率fps-單幀實際顯示時間Ttime*參考幀數(shù)fNum=30/30*1000-33*30=10毫秒。將已播幀數(shù)賦初始值0,即FNum=0。將累計播放誤差時間賦初始值0,即FLost=0。
在步驟S102中,啟動定時器,播放視頻。
在步驟S104中,將累計播放誤差時間FLost和單幀實際顯示時間Ttime比較,如果累計播放誤差時間大于單幀實際顯示時間,轉步驟S114。
在步驟S106中,已播幀數(shù)增1,即FNum++。
在步驟S108中,將已播幀數(shù)FNum與參考幀數(shù)fNum比較,如果不等,轉步驟S112。
在步驟S110中,將已播幀數(shù)置0,即FNum=0。將累計播放誤差時間自加單位播放誤差時間,即FLost+=TLost。
在步驟S112中,顯示一幀視頻。
在步驟S114中,將累計播放誤差時間自減單幀實際顯示時間,即FLost-=Ttime,轉步驟S116。
在步驟S116中,判斷是否已顯示完最后一幀視頻,若否,轉步驟S104。
在步驟S118中,播放結束。
開始播放視頻后,上述步驟S104至步驟S116經(jīng)過120次循環(huán)后,累計播放誤差時間自加單位播放誤差時間后,等于40毫秒,比單幀實際顯示時間33毫秒大,則確定一次校正時機,開始校正在設置的定時器例程運行時,不顯示下一幀視頻,而是直接返回,同時累計播放誤差時間自減單幀實際顯示時間,開始新的誤差時間累計。這樣,實際播放中造成的誤差通過簡單的整數(shù)四則運算就被彌補過來,很好的改善了視聽效果。
本發(fā)明適用于手機、PMP等嵌入式設備中播放多媒體文件,視頻播放速度通過嵌入式系統(tǒng)內(nèi)的定時器控制的設備。由于嵌入式設備資源受限,利用已有的播放方法需要消耗大量的嵌入式設備資源,降低了嵌入式設備性能,利用本發(fā)明能很好的改善這一點。此外,在那些帶有多媒體播放功能的電子設備中,如在那些因考慮到成本而計算能力有限的電子設備中,也可以使用本發(fā)明。所述電子設備例如包括內(nèi)含單片機的家用電器、儀器儀表、工控單元、機器人的嵌入式設備。
顯而易見,在此描述的本發(fā)明可以有許多變化,這種變化不能認為偏離本發(fā)明的精神和范圍。因此,所有對本領域技術人員顯而易見的改變,都包括在本權利要求書的涵蓋范圍之內(nèi)。
權利要求
1.一種嵌入式設備中播放視頻文件的方法,包括以下步驟基于幀率確定定時器的時間,即單幀實際顯示時間;確定播放參考幀數(shù)的視頻文件的理論播放時間和實際播放時間之間的單位播放誤差時間;啟動定時器,逐幀播放視頻文件,所述播放步驟包括以參考幀數(shù)為單位,基于單位播放誤差時間計算累計播放誤差時間,并且與單幀實際顯示時間比較,確定校正時機,進行校正。
2.如權利要求1所述的播放方法,其特征在于,確定定時器的時間的步驟包括取幀率倒數(shù)并向下取整。
3.如權利要求1所述的播放方法,其特征在于理論播放時間是參考幀數(shù)除以幀率的商,所述實際播放時間是單幀實際顯示時間與參考幀數(shù)的乘積,所述確定單位播放誤差時間的步驟包括將理論播放時間減去實際播放時間。
4.如權利要求1所述的播放方法,其特征在于,確定所述累計播放誤差時間包括以下步驟根據(jù)定時器例程運行次數(shù),累計播放幀數(shù),確定已播幀數(shù);將已播幀數(shù)與參考幀數(shù)相比,兩者相等時,將已播幀數(shù)清零重新累計,同時累計單位播放誤差時間。
5.如權利要求1所述的播放方法,其特征在于,確定所述校正時機包括以下步驟將累計播放誤差時間與單幀實際顯示時間相比,當其大于單幀實際顯示時間時,確定校正時機。
6.如權利要求1所述的播放方法,其特征在于,確定所述校正包括以下步驟當校正時機成熟時,在設置的定時器例程運行后,不顯示下一幀視頻,而是直接返回,同時將累計播放誤差時間減去單幀實際顯示時間。
7.一種視頻文件播放裝置,包括定時器;基于幀率確定定時器的時間的裝置,所述定時器的時間是單幀實際顯示時間;確定播放參考幀數(shù)的視頻文件的理論播放時間和實際播放時間之間的單位播放誤差時間的裝置;基于定時器的啟動逐幀播放視頻文件的播放裝置,所述播放裝置包括以參考幀數(shù)為單位,基于單位播放誤差時間計算累計播放誤差時間,并且與單幀實際顯示時間比較,確定校正時機,進行校正的裝置。
8.一種嵌入式設備,包括如權利要求7所述的視頻文件播放裝置。
全文摘要
本發(fā)明提供了一種在嵌入式設備中播放視頻文件的方法,包括以下步驟基于幀率確定定時器的時間;確定播放參考幀數(shù)的視頻文件的理論播放時間和實際播放時間之間的單位播放誤差時間;啟動定時器,逐幀播放視頻文件,所述播放步驟包括以參考幀數(shù)為單位,基于單位播放誤差時間計算累計播放誤差時間,并且與單幀實際顯示時間比較,確定校正時機,進行校正。還提供了一種用于嵌入式設備的視頻文件播放裝置和嵌入式設備。利用本發(fā)明,可在獲得一定的視頻播放準確性效果的同時,大大減輕對嵌入式設備資源的消耗,提高嵌入式設備的性能。
文檔編號H04N5/93GK1873809SQ20061008066
公開日2006年12月6日 申請日期2006年5月25日 優(yōu)先權日2006年5月25日
發(fā)明者唐勉 申請人:北京中星微電子有限公司