一種用於行動裝置的低功耗播放方法和裝置的製作方法
2023-10-06 03:12:34 2
專利名稱:一種用於行動裝置的低功耗播放方法和裝置的製作方法
技術領域:
本發明涉及視頻技術領域,尤其涉及一種用於行動裝置的低功耗播放方法和裝置。
背景技術:
目前,行動裝置的技術發展迅速,行動裝置的處理能力不斷提高,從而基於行動裝置的各種應用也越來越多。而隨著無線網絡技術和多媒體應用的推廣,也出現了各種應用於行動裝置的播放器,比如ffplay以及skyfe79等播放器。如圖1所示為現有的應用於行動裝置的播放器的結構示意圖,該播放器包括數據通訊接口、文件讀取模塊、分離模塊、音頻解碼模塊、音頻渲染模塊、視頻解碼模塊、視頻渲染模塊、播放控制器和播放接口,文件讀取模塊通過數據通訊接口讀取音視頻數據後,由分離模塊將該音視頻數據分離成音頻數據和視頻數據,然後由音頻解碼模塊及音頻渲染模塊對該音頻數據進行解碼及渲染,並輸出給音頻播放裝置進行播放,同時由視頻解碼模塊及視頻渲染模塊對該視頻數據進行解碼及渲染,並通過播放接口在用戶交互界面顯示給用戶觀看。播放控制器可以對其它各個模塊進行控制以保證播放正常進行。如圖2所示為現有的播放器的播放線程示意圖,該播放線程示意圖是基於圖1所示的播放器的結構之上的。上述現有的應用於行動裝置的播放器存在著如下諸多問題:1、線程非常多,這在臺式機多核CPU上可以有多線程的效率優勢,但是與此同時多線程間交互數據等待也需要時間成本,增加了 CPU的運作時間,因而增加了系統的功耗。這在臺式機上是正常的設計,因為臺式機的供電是市電,不需要考慮功耗的問題,只要能維持冷卻CPU即可。但在移動嵌入式設備環境中,一般都是單核的CPU,多線程本身並不會加速程序的運行,反而多線程的切換會增加系統的功耗,而對電池供電的行動裝置來說,功耗是一個最主要的參考因素。2、輸出僅僅使用I幀的解碼緩衝。如果解碼緩衝區中的幀沒有被輸出,即使CPU空閒的時候,也不會繼續解碼下一幀,因此不能充分利用CPU的空閒時間進行解碼來平衡解碼時間。3、現有行動裝置的播放器基於SDL庫作為支撐庫,SDL庫代碼龐大,而且採用SDL庫在進行視頻縮放時都是利用CPU進行軟體縮放,系統功耗較大。
發明內容
本發明實施例提供一種用於行動裝置的低功耗播放方法和裝置,用於減少播放器對於行動裝置的功耗,提高CPU的利用率,同時提高播放質量。—方面,本發明實施例提供了一種用於行動裝置的低功耗播放方法,該方法包括:利用一個線程對音視頻數據進行分類解析及視頻解碼操作;對經過音頻解碼後的音頻數據進行音頻渲染操作並通過音頻播放裝置進行播放;對經過視頻解碼操作後的視頻數據進行視頻渲染操作並通過用戶交互界面展示給用戶。
優選地,本發明實施例中對經過音頻解碼後的音頻數據進行音頻渲染操作之前還包括:判斷音頻數據的硬體解碼是否失敗,若失敗則調用音頻軟解碼模塊進行音頻數據解碼。優選地,本發明實施例還包括:在對視頻數據進行視頻渲染操作時在緩衝區內緩衝多幀。優選地,本發明實施例中還包括:用戶交互界面的定時器以變化的屏幕刷新率來從所述緩衝區內刷出完整的視頻幀。優選地,本發明實施例中用戶交互界面的定時器以變化的屏幕刷新率來從所述緩衝區內刷出完整的視頻幀包括:根據視頻幀的解碼時間及相鄰幀的時間差來確定下一次需要刷新屏幕的時間點;通過所述下一次需要刷新屏幕的時間點來詢問緩衝器是否有完整視頻幀刷出。優選地,本發明實施例中用戶交互界面的定時器以變化的屏幕刷新率來從所述緩衝區內刷出完整的視頻幀還包括:當中央處理器CPU資源不足時,若出現視頻和音頻不同步現象,則丟棄不同步的視頻幀。優選地,本發明實施例中當通過用戶交互界面展示視頻時,在圖形處理器(Graphic Processing Unit, GPU)中完成視頻圖像的縮放功能。另一方面,本發明實施例還提供了一種用於行動裝置的低功耗播放裝置,該裝置包括:解碼模塊,用於利用一個線程對音視頻數據進行分類解析及視頻解碼操作;音頻渲染模塊,用於對經過音頻解碼後的音頻數據進行音頻渲染操作並通過音頻播放裝置進行播放;視頻渲染模塊,用於對經過視頻解碼操作後的視頻數據進行視頻渲染操作並通過用戶交互界面展示給用戶。優選地,本發明實施例還包括:判斷模塊,用於判斷音頻數據的硬體解碼是否失敗;音頻軟解碼模塊,用於在音頻數據的硬體解碼失敗時,對音頻數據進行軟體解碼。優選地,本發明實施例中視頻渲染模塊在對視頻數據進行視頻渲染操作時在緩衝區內緩衝多幀。優選地,本發明實施例還包括一定時器,所述定時器以變化的屏幕刷新率來從所述緩衝區內刷出完整的視頻幀,並通過用戶交互界面呈現給用戶。優選地,本發明實施例還包括:刷新時間點確定模塊,用於根據視頻幀的解碼時間及相鄰幀的時間差來確定下一次需要刷新屏幕的時間點;詢問模塊,用於通過所述下一次需要刷新屏幕的時間點來詢問緩衝器是否有完整視頻幀刷出。優選地,本發明實施例還包括:丟幀單元,用於當中央處理器CPU資源不足,且出現視頻和音頻不同步現象時,丟棄不同步的視頻幀。優選地,本發明實施例還包括:圖形處理器,用於當通過用戶交互界面展示視頻時,根據用戶指示完成視頻圖像的縮放功能。本發明實施例可以在單CPU的行動裝置的環境下,減少線程切換的時間成本,減少線程間的交互,減少對共享內存訪問加鎖的數量;本發明實施例增加了解碼後的視頻緩衝幀的數量,從而充分利用CPU的空閒時間進行解碼;而且本發明實施例採用了動態刷新頻率,可以使得視頻渲染模塊完成幀緩衝時和定時器刷新率頻率同步配合,以最小的詢問消息準確快速地將視頻刷出至用戶交互界面顯示;最後本發明實施例縮放的功能在圖形處理器中實現,不佔用CPU的運行時間,操作更加高效。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖1為現有的應用於行動裝置的播放器的結構示意圖;圖2為現有的播放器的播放線程示意圖;圖3為本發明實施例提供的一種用於行動裝置的低功耗播放方法的流程示意圖;圖4為本發明實施例的播放線程示意圖;圖5為本發明實施例提供的另一種用於行動裝置的低功耗播放方法的流程示意圖;圖6為本發明實施例提供的一種視頻幀的時序圖;圖7為本發明實施例提供的一種用於行動裝置的低功耗播放裝置的結構示意圖;圖8為本發明實施例提供的另一種用於行動裝置的低功耗播放裝置的結構示意圖;圖9為本發明實施例提供的一種定時器的結構示意圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。如圖3所示為本發明實施例提供的一種用於行動裝置的低功耗播放方法的流程示意圖,該方法包括如下步驟:S301:利用一個線程對音視頻數據進行分類解析、音頻解碼及視頻解碼操作。在本實施例中,對於音視頻數據的分類解析、以及分類後的音頻解碼及視頻解碼都通過一個線程來完成。請參見圖4,圖4為本發明實施例的播放線程示意圖,由圖4可見,本實施例中播放程序的啟動僅包含3個線程:1、UI線程,可以通過定時器刷新界面;2、音視頻讀取及視頻解碼線程,可以讀取視頻文件或者視頻流,解復用(demux)出視頻包、音頻包以及字幕包,並且將視頻包解碼之後放入視頻幀緩衝區內,字幕包解碼之後,疊加到解碼後的視頻幀內;3、音頻回調線程,如果是系統認識的壓縮格式,例如mp3或者aac格式,直接將音頻包輸出到音頻播放設備上;否則就調用音頻解碼器進行解碼之後,再往音頻播放設備輸出。上述音視頻數據的分類解析、以及分類後的視頻解碼都通過音視頻讀取及視頻解碼線程來完成了。另外,在本實施例中,僅線程1、2之間以及線程2、3之間存在同時訪問數據的等待同步問題,相比於圖2公開的現有技術,減少了很多的訪問同步,減少線程切換,有利於程序的快速執行。而且多幀緩衝區的設計,也使得在緩衝區未滿的狀態下,①線程的輸出未完成即被切換至②線程,②線程無需等待即可繼續執行。(眾所周知的事實是,①線程輸出至界面耗時比較多,在將視頻幀輸出到Π界面的時候,作業系統比較容易切換到其他線程運行)S302:對經過音頻解碼後的音頻數據進行音頻渲染操作並通過音頻播放裝置進行播放。S303:對經過視頻解碼操作後的視頻數據進行視頻渲染操作並通過用戶交互界面展示給用戶。 在本實施例中,上述步驟S302和步驟S303可以和現有技術中相類似,因此在本實施例中不再加以贅述,而在後續實施例中對於這些步驟的改進進行進一步描述。需要指出的是,上述步驟S302和步驟S303並沒有先後的順序關係,即本發明實施例對步驟S302和步驟S303的順序關係並不加以限定。本發明實施例單線程的設計可以在單CPU的行動裝置的環境下,減少線程切換的時間成本,減少線程間的交互,減少對共享內存訪問加鎖的數量。如圖5所示為本發明實施例提供的另一種用於行動裝置的低功耗播放方法的流程示意圖,該方法包括如下步驟:S501:利用一個線程對音視頻數據進行分類解析、音頻解碼及視頻解碼操作。S502:判斷音頻數據的硬體解碼是否失敗,若失敗則進入步驟S503,否則進入S504。S503:調用音頻軟解碼模塊進行音頻數據解碼。現有的播放器在進行音頻解碼時都是通過硬體解碼來進行的,若硬體解碼失敗,則會無音頻輸出,因此,本實施例首先判斷音頻數據的硬體解碼是否成功,若失敗時則採用軟體進行軟解碼,以保證音頻的正常輸出。S504:對經過音頻解碼後的音頻數據進行音頻渲染操作並通過音頻播放裝置進行播放。S505:對經過視頻解碼後的視頻數據進行視頻渲染,並在進行視頻渲染操作時在緩衝區內緩衝多幀。具體來說,本發明實施例可以通過對多幀的存儲空間準備,對應視頻解碼時間戳的存儲以及隊列進出的控制方面進行改動,從而實現多幀的緩衝。在現有技術中,解碼緩衝區內僅可以緩衝I幀,如果解碼緩衝區內的視頻幀沒有被輸出,則即使CPU空閒的時候,也不會繼續解碼下一幀。而本申請可以增加解碼後的視頻緩衝幀的數量,從而充分利用CPU的空閒時間進行解碼。S506:用戶交互界面的定時器以變化的屏幕刷新率來從所述緩衝區內刷出完整的視頻幀。在現有技術中,用戶交互界面的定時器是以固定的屏幕刷新率來刷出視頻幀的,比如ffplay播放器的屏幕刷新率是1/60秒,也就是說用戶交互界面以1/60秒的頻率不斷向解碼緩衝區詢問是否有完整視頻幀刷出,而一般用戶交互界面的定時器需要詢問三次才會有一幀輸出,該種固定頻率的詢問方式系統詢問消息多,直接增加系統消耗。在本申請中,屏幕刷新率是可變的,即下一次需要刷新屏幕的時間點是可變的,該動態的屏幕刷新率可以通過如下方式來確定:根據視頻幀的解碼時間及相鄰幀的時間差來確定動態的屏幕刷新率。請參見圖6,其為本發明實施例提供的一種視頻幀的時序圖,橫軸代表時間軸,其中Tdl是幀I的解碼時間,T2-T1代表相鄰幀的時間差,即幀2與幀I的時間差。例如刷新頻率為20幀/秒,則兩幀間的時間間隔為50毫秒(ms)。圖6中,比如第一幀顯示結束之後tdl = 20毫秒,則設定下一幀(第二幀)為30毫秒之後顯示;假如td2 = 80毫秒,則設定下一幀(第四幀)為20毫秒之後顯示,中間的第三幀丟棄不進行顯示,減少了 一次無用的循環。刷新率相當於幀率,幀率=在這段時間內顯示的幀數/顯示時間秒數以圖6中前三幀為例(到第三幀的結束位置為界限),如果沒有採用本發明的方案,在150毫秒的時間內,顯示了三幀,幀率=3/(3*50*0.001) = 20(幀/秒),這個數據是固定值;但如果採用本發明的方案,在150毫秒的時間內,顯示了兩幀,幀率=2/(3*50*0.001) = 13.33(幀/秒),這個數據是可變的,即刷新率是可變的,也就如上所舉例的,下一次需要刷新屏幕的時間點是可變的。可見當以上述動態刷新頻率向解碼緩衝區詢問是否有完整視頻幀刷出時,可以使得視頻渲染模塊完成幀緩衝時和定時器刷新率頻率同步配合,以最小的詢問消息準確快速地將視頻刷出至用戶交互界面顯示。上述輸出視頻幀的描述是基於CPU資源足夠時,本申請播放器的正常視頻幀輸出流程,但是,當CPU資源不足時,有可能會出現視頻和音頻不同步的現象,比如出現視頻滯後,音頻超前的現象。在這種情況下,本發明實施例採用丟幀的技術來進行解決,請再參見圖6,由於巾貞2的解碼時間Td2已經超出了第三巾貞的當前時間戳(presentation timestamp, PTS),則丟棄巾貞3而直接顯示巾貞4。S507:用戶交互界面的播放窗口播放上述視頻幀。作為本發明的一個實施例,當用戶在用戶交互界面進行播放視頻的縮放操作時,該縮放功能是通過圖形處理器來實現的。本發明實施例至少具有如下有益效果:1、本申請單線程的設計可以在單CPU的行動裝置的環境下,減少線程切換的時間成本,減少線程間的交互,減少對共享內存訪問加鎖的數量。2、本申請增加了解碼後的視頻緩衝幀的數量,從而充分利用CPU的空閒時間進行解碼。3、採用了動態刷新頻率,可以使得視頻渲染模塊完成幀緩衝時和定時器刷新率頻率同步配合,以最小的詢問消息準確快速地將視頻刷出至用戶交互界面顯示。4、縮放的功能在圖形處理器中實現,不佔用CPU的運行時間,操作更加高效。如圖7所示為本發明實施例提供的一種用於行動裝置的低功耗播放裝置的結構示意圖,該低功耗播放裝置包括:解碼模塊710、音頻渲染模塊720和視頻渲染模塊730,其中解碼模塊710分別和音頻渲染模塊720及視頻渲染模塊730相連。需要指出的是,本播放裝置除了包括上述三種模塊外,還可以包括其它播放器中常設的模塊,比如播放控制器、文件讀取模塊等,在本實施例中僅對本申請改進所涉及的模塊進行描述。解碼模塊710用於利用一個線程對音視頻數據進行分類解析、音頻解碼及視頻解碼操作。在本實施例中,對於音視頻數據的分類解析、以及分類後的音頻解碼及視頻解碼都由解碼模塊710通過一個線程來完成。請參見圖4,由圖4可見,上述音視頻數據的分類解析、以及分類後的音頻解碼及視頻解碼都通過視頻讀取及解析線程來完成了。相對於圖2所公開的現有技術,本申請單線程的設計可以在單CPU的行動裝置的環境下,減少線程切換的時間成本,減少線程間的交互,減少對共享內存訪問加鎖的數量。音頻渲染模塊720用於對經過音頻解碼後的音頻數據進行音頻渲染操作並通過音頻播放裝置進行播放。視頻渲染模塊730用於對經過視頻解碼操作後的視頻數據進行視頻渲染操作並通過用戶交互界面展示給用戶。本發明實施例單線程的設計可以在單CPU的行動裝置的環境下,減少線程切換的時間成本,減少線程間的交互,減少對共享內存訪問加鎖的數量。如圖8所示為本發明實施例提供的另一種用於行動裝置的低功耗播放裝置的結構示意圖,該低功耗播放裝置包括:解碼模塊810、音頻渲染模塊820、視頻渲染模塊830、判斷模塊840、音頻軟解碼模塊850、解碼緩衝區860、定時器870、丟幀模塊880和圖形處理器890。解碼模塊810用於利用一個線程對音視頻數據進行分類解析、音頻解碼及視頻解碼操作。判斷模塊840用於判斷音頻數據的硬體解碼是否失敗。音頻軟解碼模塊850用於在解碼模塊810對音頻數據的硬體解碼失敗時,對音頻數據進行軟體解碼。現有的播放器在進行音頻解碼時都是通過硬體解碼來進行的,若硬體解碼失敗,則會無音頻輸出,因此,本實施例首先通過判斷模塊840判斷音頻數據的硬體解碼是否成功,若失敗時則通過音頻軟解碼模塊850採用軟體進行軟解碼,以保證音頻的正常輸出。音頻渲染模塊820用於對經過音頻解碼後的音頻數據進行音頻渲染操作並通過音頻播放裝置進行播放。解碼緩衝區860用於緩衝解碼模塊810所解碼出來的視頻幀。在現有技術中,解碼緩衝區內僅可以緩衝I幀,如果解碼緩衝區內的視頻幀沒有被輸出,則即使CPU空閒的時候,也不會繼續解碼下一幀。而本申請的解碼緩衝區860可以增加解碼後的視頻緩衝幀的數量,從而充分利用CPU的空閒時間進行解碼。定時器870以變化的屏幕刷新率來從解碼緩衝區860內刷出完整的視頻幀,並通過用戶交互界面呈現給用戶。作為本發明的一個實施例,如圖9所示,定時器870包括:刷新率確定模塊871和詢問模塊872。刷新時間點確定模塊871用於根據視頻幀的解碼時間及相鄰幀的時間差來確定下一次需要刷新屏幕的時間點。該動態的屏幕刷新率可以通過如下方式來確定:根據視頻幀的解碼時間及相鄰幀的時間差來確定動態的屏幕刷新率。請參見圖6,其為本發明實施例提供的一種視頻幀的時序圖,橫軸代表時間軸,其中Tdl是幀I的解碼時間,T2-T1代表相鄰幀的時間差,即幀2與幀I的時間差,在本實施例中,當要刷出幀I時,臨時確定屏幕刷新率,即臨時確定下一次需要刷新屏幕的時間點,後續輸出幀2、幀3等視頻幀時的屏幕刷新率與幀I相同,不再贅述。詢問模塊872用於通過刷新率確定模塊871所確定的下一次需要刷新屏幕的時間點來詢問緩衝器是否有完整視頻幀刷出。
可見當以上述動態刷新頻率向解碼緩衝區詢問是否有完整視頻幀刷出時,可以使得視頻渲染模塊完成幀緩衝時和定時器刷新率頻率同步配合,以最小的詢問消息準確快速地將視頻刷出至用戶交互界面顯示。丟幀模塊880用於當中央處理器CPU資源不足,且出現視頻和音頻不同步現象時,丟棄不同步的視頻幀。請再參見圖6,由於幀2的解碼時間Td2已經超出了第三幀的既定標準時間(Predetermined Time Standards, PTS),則丟棄巾貞3而直接顯不巾貞4。圖形處理器890用於當通過用戶交互界面展示視頻時,根據用戶指示完成視頻圖像的縮放功能。另外,本發明實施例的播放器還包括現有播放器中常設的模塊,比如:播放控制器、文件讀取模塊等,在此不再贅述。本發明實施例至少具有如下有益效果:1、本申請單線程的設計可以在單CPU的行動裝置的環境下,減少線程切換的時間成本,減少線程間的交互,減少對共享內存訪問加鎖的數量。2、本申請增加了解碼後的視頻緩衝幀的數量,從而充分利用CPU的空閒時間進行解碼。3、採用了動態刷新頻率,可以使得視頻渲染模塊完成幀緩衝時和定時器刷新率頻率同步配合,以最小的詢問消息準確快速地將視頻刷出至用戶交互界面顯示。4、縮放的功能在圖形處理器中實現,不佔用CPU的運行時間,操作更加高效。在一個或多個示例性的設計中,本發明實施例所描述的上述功能可以在硬體、軟體、固件或這三者的任意組合來實現。如果在軟體中實現,這些功能可以存儲與電腦可讀的媒介上,或以一個或多個指令或代碼形式傳輸於電腦可讀的媒介上。電腦可讀媒介包括電腦存儲媒介和便於使得讓電腦程式從一個地方轉移到其它地方的通信媒介。存儲媒介可以是任何通用或特殊電腦可以接入訪問的可用媒體。例如,這樣的電腦可讀媒體可以包括但不限於RAM、ROM、EEPROM、CD-ROM或其它光碟存儲、磁碟存儲或其它磁性存儲裝置,或其它任何可以用於承載或存儲以指令或數據結構和其它可被通用或特殊電腦、或通用或特殊處理器讀取形式的程序代碼的媒介。此外,任何連接都可以被適當地定義為電腦可讀媒介,例如,如果軟體是從一個網站站點、伺服器或其它遠程資源通過一個同軸電纜、光纖電腦、雙絞線、數字用戶線(DSL)或以例如紅外、無線和微波等無線方式傳輸的也被包含在所定義的電腦可讀媒介中。所述的碟片(disk)和磁碟(disc)包括壓縮磁碟、鐳射盤、光碟、DVD、軟盤和藍光光碟,磁碟通常以磁性複製數據,而碟片通常以雷射進行光學複製數據。上述的組合也可以包含在電腦可讀媒介中。以上所述的具體實施方式
,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施方式
而已,並不用於限定本發明的保護範圍,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種用於行動裝置的低功耗播放方法,其特徵在於,所述方法包括: 利用一個線程對音視頻數據進行分類解析及視頻解碼操作; 對經過音頻解碼後的音頻數據進行音頻渲染操作並通過音頻播放裝置進行播放; 對經過視頻解碼操作後的視頻數據進行視頻渲染操作並通過用戶交互界面展示給用戶。
2.如權利要求1所述的用於行動裝置的低功耗播放方法,其特徵在於,所述對經過音頻解碼後的音頻數據進行音頻渲染操作之前還包括: 判斷音頻數據的硬體解碼是否失敗,若失敗則調用音頻軟解碼模塊進行音頻數據解碼。
3.如權利要求1所述的用於行動裝置的低功耗播放方法,其特徵在於,還包括: 在對視頻數據進行視頻渲染操作時在緩衝區內緩衝多幀。
4.如權利要求3所述的用於行動裝置的低功耗播放方法,其特徵在於,還包括:用戶交互界面的定時器以變化的屏幕刷新率來從所述緩衝區內刷出完整的視頻幀。
5.如權利要求4所述的用於行動裝置的低功耗播放方法,其特徵在於,所述用戶交互界面的定時器以變化的屏幕刷新率來從所述緩衝區內刷出完整的視頻幀包括: 根據視頻幀的解碼時間及相鄰幀的時間差來確定下一次需要刷新屏幕的時間點; 通過所述下一次需要刷新屏幕的時間點來詢問緩衝器是否有完整視頻幀刷出。
6.如權利要求5所述的用於行動裝置的低功耗播放方法,其特徵在於,所述用戶交互界面的定時器以變化的屏幕刷新率來從所述緩衝區內刷出完整的視頻幀還包括: 當中央處理器CPU資源不足時,若出現視頻和音頻不同步現象,則丟棄不同步的視頻幀。
7.如權利要求1所述的用於行動裝置的低功耗播放方法,其特徵在於,當通過用戶交互界面展示視頻時,在圖形處理器GPU中完成視頻圖像的縮放功能。
8.一種用於行動裝置的低功耗播放裝置,其特徵在於,所述裝置包括: 解碼模塊,用於利用一個線程對音視頻數據進行分類解析及視頻解碼操作; 音頻渲染模塊,用於對經過音頻解碼後的音頻數據進行音頻渲染操作並通過音頻播放裝置進行播放; 視頻渲染模塊,用於對經過視頻解碼操作後的視頻數據進行視頻渲染操作並通過用戶交互界面展示給用戶。
9.如權利要求8所述的用於行動裝置的低功耗播放裝置,其特徵在於,還包括: 判斷模塊,用於判斷音頻數據的硬體解碼是否失敗; 音頻軟解碼模塊,用於在音頻數據的硬體解碼失敗時,對音頻數據進行軟體解碼。
10.如權利要求8所述的用於行動裝置的低功耗播放裝置,其特徵在於,所述視頻渲染模塊在對視頻數據進行視頻渲染操作時在緩衝區內緩衝多幀。
11.如權利要求10所述的用於行動裝置的低功耗播放裝置,其特徵在於,還包括一定時器,所述定時器以變化的屏幕刷新率來從所述緩衝區內刷出完整的視頻幀,並通過用戶交互界面呈現給用戶。
12.如權利要求11所述的用於行動裝置的低功耗播放裝置, 其特徵在於,還包括: 刷新時間點確定模塊,用於根據視頻幀的解碼時間及相鄰幀的時間差來確定下一次需要刷新屏幕的時間點; 詢問模塊,用於通過所述下一次需要刷新屏幕的時間點來詢問緩衝器是否有完整視頻中貞刷出。
13.如權利要求12所述的用於行動裝置的低功耗播放裝置,其特徵在於,還包括: 丟幀單元,用於當中央處理器CPU資源不足,且出現視頻和音頻不同步現象時,丟棄不同步的視頻幀。
14.如權利要求12所述的用於行動裝置的低功耗播放裝置,其特徵在於,還包括: 圖形處理器,用於當通過用戶交互界面展示視頻時,根據用戶指示完成視頻圖像的縮放功能。 ·
全文摘要
本發明實施例提供一種用於行動裝置的低功耗播放方法和裝置,方法包括利用一個線程對音視頻數據進行分類解析、音頻解碼及視頻解碼操作;對經過音頻解碼後的音頻數據進行音頻渲染操作並通過音頻播放裝置進行播放;對經過視頻解碼操作後的視頻數據進行視頻渲染操作並通過用戶交互界面展示給用戶。本發明實施例可以減少線程切換的時間成本,減少線程間的交互,減少對共享內存訪問加鎖的數量;其次增加了解碼後的視頻緩衝幀的數量,從而充分利用CPU的空閒時間進行解碼;而且還採用了動態刷新頻率,可以使得視頻渲染模塊完成幀緩衝時和定時器刷新率頻率同步配合;最後本發明實施例縮放的功能在圖形處理器中實現,不佔用CPU的運行時間,操作更加高效。
文檔編號G11B20/10GK103177744SQ20111043233
公開日2013年6月26日 申請日期2011年12月21日 優先權日2011年12月21日
發明者黃志陽 申請人:深圳市快播科技有限公司