亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種音頻流解碼方法及裝置制造方法

文檔序號:7810561閱讀:204來源:國知局
一種音頻流解碼方法及裝置制造方法
【專利摘要】本發(fā)明實施例公開了一種音頻流解碼方法及裝置,一種音頻流解碼方法,包括:確定電子設備的音頻流緩沖區(qū)當前緩存的音頻幀的幀數(shù);當該幀數(shù)大于第一數(shù)量閾值,且小于所述音頻流緩沖區(qū)能緩存的音頻幀的總幀數(shù)時,在經(jīng)過預設時長后,對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理;對所述音頻流緩沖區(qū)中未被丟棄的音頻幀進行解碼。應用上述技術方案,本發(fā)明實施例采用在音頻流緩沖區(qū)內(nèi)的音頻幀幀數(shù)大于第一數(shù)量閾值,且小于音頻流緩沖區(qū)能緩存的音頻幀的總幀數(shù)時,在經(jīng)過預設時長后,對音頻幀做丟棄處理的方法,減少了音頻幀解碼過程中音頻幀的丟幀次數(shù),降低爆破音出現(xiàn)的次數(shù)。
【專利說明】一種音頻流解碼方法及裝置

【技術領域】
[0001] 本發(fā)明涉及流媒體【技術領域】,特別涉及一種音頻流解碼方法及裝置。

【背景技術】
[0002] 為降低網(wǎng)絡環(huán)境不穩(wěn)定給視頻文件的音頻播放效果帶來的影響,在對該視頻文件 的音頻流進行解碼之前,具有音頻流解碼功能的電子設備通常會預先使用一段隊列結構的 內(nèi)存作為音頻流緩沖區(qū),比如圖1中的AAC(Advanced Audio Coding,高級音頻編碼)緩沖 區(qū);由于音頻流解碼耗用較少的CPU(Central Processing Unit,中央處理器)資源,該電 子設備通常采用CPU對音頻流進行軟解碼。
[0003] 網(wǎng)絡長時間處于波動狀態(tài),會導致網(wǎng)絡設備中視頻文件的音頻流大量持續(xù)涌入電 子設備,由于該電子設備CPU的解碼速率是固定的,該音頻流緩沖區(qū)的緩存能力是有限的, 在音頻流解碼過程中,過多音頻流的持續(xù)涌入勢必會導致丟幀現(xiàn)象的出現(xiàn)。
[0004] 現(xiàn)有技術中,網(wǎng)絡設備中視頻文件的音頻流大量持續(xù)涌入電子設備,導致音頻流 緩沖區(qū)被迅速充滿,此時,丟棄該音頻流緩沖區(qū)隊列尾或隊列頭的音頻幀。
[0005] 然而,音頻幀的丟幀次數(shù)與該視頻文件所呈現(xiàn)的聲音效果存在直接關系:音頻幀 的丟幀次數(shù)越多,該視頻文件播放過程中爆破音出現(xiàn)的次數(shù)也就越多;由于現(xiàn)有丟幀方法 在音頻流緩沖區(qū)處于飽和狀態(tài)時,才會丟棄不能被立即解碼/緩存的音頻幀,使得該電子 設備有大量持續(xù)的音頻流涌入時不能及時對其進行解碼及緩存,從而導致多次丟幀,爆破 音現(xiàn)象多次出現(xiàn)。


【發(fā)明內(nèi)容】

[0006] 為了解決上述問題,本發(fā)明實施例公開了一種音頻流解碼方法及裝置,具體技術 方案如下:
[0007] -種音頻流解碼方法,包括:
[0008] 確定電子設備的音頻流緩沖區(qū)當前緩存的音頻幀的幀數(shù);
[0009] 當該幀數(shù)大于第一數(shù)量閾值,且小于所述音頻流緩沖區(qū)能緩存的音頻幀的總幀數(shù) 時,在經(jīng)過預設時長后,對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理;
[0010] 對所述音頻流緩沖區(qū)中未被丟棄的音頻幀進行解碼。
[0011] 優(yōu)選的,還包括:
[0012] 當該幀數(shù)達到所述總幀數(shù)時,立即對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理。
[0013] 優(yōu)選的,對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理后,所述音頻流緩沖區(qū)內(nèi)音 頻幀的幀數(shù)等于所述第一數(shù)量閾值;或者
[0014] 對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理后,所述音頻流緩沖區(qū)內(nèi)音頻幀的幀 數(shù)等于所述第二數(shù)量閾值,且所述第二數(shù)量閾值小于所述第一數(shù)量閾值。
[0015] 優(yōu)選的,確定電子設備的音頻流緩沖區(qū)當前緩存的音頻幀的幀數(shù),包括:
[0016] 根據(jù)預設的統(tǒng)計周期,周期性地確定電子設備的音頻流緩存區(qū)當前緩存的音頻幀 的幀數(shù)。
[0017] 優(yōu)選的,所述統(tǒng)計周期大于所述預設時長。
[0018] 優(yōu)選的,所述對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理,包括:
[0019] 從所述音頻流緩沖區(qū)的隊列尾開始,對音頻幀進行丟棄;
[0020] 或
[0021] 從所述音頻流緩沖區(qū)的隊列頭開始,對音頻幀進行丟棄。
[0022] 優(yōu)選的,所述音頻幀來源于視頻文件,所述視頻文件還包括視頻幀;所述方法還包 括:對所述視頻文件中的視頻幀進行解碼。
[0023] 優(yōu)選的,所述對所述視頻文件中的視頻幀進行解碼,包括:
[0024] 檢測數(shù)字信號處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),其中,所述DSP緩沖區(qū)為數(shù) 字信號處理器的輸入緩沖區(qū),所述DSP緩沖區(qū)用于緩存視頻幀數(shù)據(jù);
[0025] 如果是,則向DSP緩沖區(qū)中插入空白幀,直至該DSP緩沖區(qū)達到飽和狀態(tài);
[0026] 對DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進行解碼。
[0027] 優(yōu)選的,在所述檢測數(shù)字信號處理器DSP緩沖區(qū)是否處于不飽和狀態(tài)之前,還包 括:
[0028] 檢測當前是否有視頻流數(shù)據(jù)緩存到所述DSP緩沖區(qū),如果否,則執(zhí)行所述檢測數(shù) 字信號處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),其中,所述視頻流數(shù)據(jù)為:預先建立的視頻 數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),所述預先建立的視頻數(shù)據(jù)緩沖區(qū)用于緩存來源于網(wǎng)絡服務器 側的視頻幀數(shù)據(jù)。
[0029] 優(yōu)選的,所述檢測數(shù)字信號處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),包括:
[0030] 實時檢測DSP緩沖區(qū)是否處于不飽和狀態(tài);
[0031] 或
[0032] 根據(jù)預設的檢測周期,周期性地檢測DSP緩沖區(qū)是否處于不飽和狀態(tài)。
[0033] 優(yōu)選的,所述檢測數(shù)字信號處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),包括:
[0034] 檢測DSP緩沖區(qū)處于不飽和狀態(tài)的時長是否超過預設的閾值。
[0035] 優(yōu)選的,所述檢測數(shù)字信號處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),包括:
[0036] 檢測DSP緩沖區(qū)中是否存在來自預先建立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),且 未被視頻幀數(shù)據(jù)充滿。
[0037] 優(yōu)選的,所述對DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進行解碼,包括:
[0038] 對DSP緩沖區(qū)內(nèi)的攜帶有網(wǎng)絡標識的視頻幀進行解碼,所述攜帶有網(wǎng)絡標識的視 頻幀為來源于預先建立的視頻流緩沖區(qū)的幀數(shù)據(jù)。
[0039] 優(yōu)選的,所述視頻文件的視頻幀攜帶有時間戳,所述視頻文件的音頻幀攜帶有時 間戳;所述方法還包括:
[0040] 根據(jù)所述視頻幀的時間戳與所述音頻幀的時間戳的對應關系,對視頻幀的解碼結 果及音頻幀的解碼結果進行同步播放。
[0041] 一種音頻流解碼裝置,包括:
[0042] 幀數(shù)確定模塊,用于確定電子設備的音頻流緩沖區(qū)當前緩存的音頻幀的幀數(shù);
[0043] 丟幀模塊,用于當該幀數(shù)大于第一數(shù)量閾值,且小于所述音頻流緩沖區(qū)能緩存的 音頻幀的總幀數(shù)時,在經(jīng)過預設時長后,對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理;
[0044] 音頻幀解碼模塊,用于對所述音頻流緩沖區(qū)中未被丟棄的音頻幀進行解碼。
[0045] 優(yōu)選的,所述丟幀模塊,還用于:
[0046] 當該幀數(shù)達到所述總幀數(shù)時,立即對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理。
[0047] 優(yōu)選的,所述丟幀模塊對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理后,所述音頻 流緩沖區(qū)內(nèi)音頻幀的幀數(shù)等于所述第一數(shù)量閾值;或者
[0048] 所述丟幀模塊對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理后,所述音頻流緩沖區(qū) 內(nèi)音頻幀的幀數(shù)等于所述第二數(shù)量閾值,且所述第二數(shù)量閾值小于所述第一數(shù)量閾值。 [0049] 優(yōu)選的,所述幀數(shù)據(jù)確定模塊,具體用于:
[0050] 根據(jù)預設的統(tǒng)計周期,周期性地確定電子設備的音頻流緩存區(qū)當前緩存的音頻幀 的幀數(shù)。
[0051] 優(yōu)選的,所述統(tǒng)計周期大于所述預設時長。
[0052] 優(yōu)選的,所述丟幀模塊,具體用于:
[0053] 從所述音頻流緩沖區(qū)的隊列尾開始,對音頻幀進行丟棄;
[0054] 或
[0055] 從所述音頻流緩沖區(qū)的隊列頭開始,對音頻幀進行丟棄。
[0056] 優(yōu)選的,所述音頻幀來源于視頻文件,所述視頻文件還包括視頻幀;所述裝置還包 括:視頻幀解碼模塊。
[0057] 優(yōu)選的,所述視頻幀解碼模塊,包括:
[0058] 第一檢測子模塊,用于檢測數(shù)字信號處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),其 中,所述DSP緩沖區(qū)用于緩存視頻幀數(shù)據(jù);
[0059] 空白幀填充子模塊,用于在所述檢測模塊的檢測結果為是的情況下,向DSP緩沖 區(qū)中插入空白幀E0S,直至該DSP緩沖區(qū)達到飽和狀態(tài);
[0060] 視頻幀解碼子模塊,用于對DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進行解碼。
[0061] 優(yōu)選的,所述視頻幀解碼模塊,還包括:
[0062] 第二檢測子模塊,用于檢測當前是否有視頻流數(shù)據(jù)緩存到所述DSP緩沖區(qū),并在 檢測結果為否的情況下,觸發(fā)所述第一檢測模塊進行工作,其中,所述視頻流數(shù)據(jù)為:預先 建立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),所述預先建立的視頻數(shù)據(jù)緩沖區(qū)用于緩存來源于 網(wǎng)絡服務器側的視頻幀數(shù)據(jù)。
[0063] 優(yōu)選的,所述第一檢測子模塊,具體用于:
[0064] 實時檢測DSP緩沖區(qū)是否處于不飽和狀態(tài);
[0065] 或
[0066] 根據(jù)預設的檢測周期,周期性地檢測DSP緩沖區(qū)是否處于不飽和狀態(tài)。
[0067] 優(yōu)選的,所述第一檢測子模塊,具體用于:
[0068] 檢測DSP緩沖區(qū)處于不飽和狀態(tài)的時長是否超過預設的閾值。
[0069] 優(yōu)選的,所述第一檢測子模塊,具體用于:
[0070] 檢測DSP緩沖區(qū)中是否存在來自預先建立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),且 未被視頻幀數(shù)據(jù)充滿。
[0071] 優(yōu)選的,所述視頻幀解碼子模塊,具體用于:
[0072] 對DSP緩沖區(qū)內(nèi)的攜帶有網(wǎng)絡標識的視頻幀進行解碼,所述攜帶有網(wǎng)絡標識的視 頻幀為來源于預先建立的視頻流緩沖區(qū)的幀數(shù)據(jù)。
[0073] 優(yōu)選的,所述視頻文件的視頻幀攜帶有時間戳,所述視頻文件的音頻幀攜帶有時 間戳;所述裝置還包括:
[0074] 播放模塊,用于根據(jù)所述視頻幀的時間戳與所述音頻幀的時間戳的對應關系,對 視頻幀的解碼結果及音頻幀的解碼結果進行同步播放。
[0075] 應用上述技術方案,可以確定電子設備的音頻流緩沖區(qū)當前緩存的音頻幀的幀 數(shù),當該幀數(shù)大于第一數(shù)量閾值,且小于所述音頻流緩沖區(qū)能緩存的音頻幀的總幀數(shù)時,在 經(jīng)過預設時長后,對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理,對所述音頻流緩沖區(qū)中未 被丟棄的音頻幀進行解碼。
[0076] 與現(xiàn)有技術相比,本發(fā)明實施例采用在音頻流緩沖區(qū)內(nèi)的音頻幀幀數(shù)大于第一數(shù) 量閾值,且小于音頻流緩沖區(qū)能緩存的音頻幀的總幀數(shù)時,在經(jīng)過預設時長后,對音頻幀做 丟棄處理的方法,減少了音頻幀解碼過程中音頻幀的丟幀次數(shù),降低爆破音出現(xiàn)的次數(shù)。

【專利附圖】

【附圖說明】
[0077] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0078] 圖1為現(xiàn)有技術中音頻流解碼方法的示例性流程圖;
[0079] 圖2為本發(fā)明實施例提供的一種音頻流解碼方法的流程圖;
[0080] 圖3為現(xiàn)有技術音頻流解碼方法的示例性丟幀圖;
[0081] 圖4為本發(fā)明實施例提供音頻流解碼方法的示例性丟幀圖;
[0082] 圖5為本發(fā)明實施例提供的另一種音頻流解碼方法的流程圖;
[0083] 圖6為本發(fā)明實施提供的圖5中S204的一種實施方式的流程圖;
[0084] 圖7為本發(fā)明實施例提供的一種音頻流解碼裝置的結構示意圖;
[0085] 圖8為本發(fā)明實施例提供的另一種音頻流解碼裝置的結構示意圖;
[0086] 圖9為本發(fā)明實施例提供的圖8中視頻幀解碼模塊704的一種結構示意圖。

【具體實施方式】
[0087] 下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于 本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。
[0088] 隨著網(wǎng)絡多媒體技術的快速發(fā)展,多元化的網(wǎng)絡多媒體文件不斷豐富人們視覺和 聽覺感受;流媒體(比如視頻流、音頻流等)的出現(xiàn),使得用戶不必像非流式播放方式那樣, 待整個多媒體文件完全下載到播放設備本地后才能觀看其中的內(nèi)容;而只需經(jīng)過幾秒或幾 十秒的傳輸延遲即可在播放設備上對其進行解碼及播放,它為用戶帶來了新的視聽體驗。 [0089] 在網(wǎng)絡環(huán)境不穩(wěn)定的情況下,網(wǎng)路服務器側的音頻流持續(xù)大量地涌入電子設備 中,該電子設備的解碼能力及音頻流緩沖區(qū)的緩存能力都是有限的,此時需要對音頻幀做 丟棄處理。由于音頻的播放效果與音頻幀的丟幀次數(shù)關系密切,即音頻幀的丟幀次數(shù)越多, 該音頻在播放時爆破音出現(xiàn)的次數(shù)也就越多。為了使網(wǎng)絡側音頻流的播放效果比較平滑, 本發(fā)明實施例提供了一種音頻流解碼方法及裝置。
[0090] 下面首先對本發(fā)明實施例提供的一種音頻流解碼方法進行介紹。
[0091] 需要說明的是,本發(fā)明實施例方法適用于電子設備中,在實際應用中,該電子設備 可以為筆記本電腦、臺式電腦、平板電腦,及智能手機等等,本發(fā)明實施例對此不作限定。
[0092] 如圖2所示,一種音頻流解碼方法,可以包括:
[0093] S201,確定電子設備的音頻流緩沖區(qū)當前緩存的音頻幀的幀數(shù)。
[0094] 為了能夠在網(wǎng)絡不穩(wěn)定的情況(比如網(wǎng)絡不穩(wěn)導致網(wǎng)絡服務器側的高級音頻編 碼AAC音頻流會瞬間涌入電子設備)下正常工作,通常會預先在該電子設備的中央處理器 CPU中開辟一塊音頻流緩沖區(qū),來暫時緩存來自網(wǎng)絡服務器側的AAC音頻流數(shù)據(jù)。為了便于 描述,在本發(fā)明實施例中,將開辟的音頻流緩沖區(qū)簡稱為AAC緩沖區(qū),如圖1所示。
[0095] 可以理解的是,當網(wǎng)絡設備側的AAC音頻流的速率大于電子設備的解碼速率時, 流入該電子設備中的一部分音頻幀因不能夠被及時解碼,而被臨時緩存到AAC緩沖區(qū)中。 此時,可以對AAC緩沖區(qū)當前緩存的音頻幀的幀數(shù)進行統(tǒng)計,進而決定是否需要進行丟幀 操作。
[0096] 可選的,在本發(fā)明實施例的一個【具體實施方式】中,可以根據(jù)預設的統(tǒng)計周期,周期 性地確定電子設備的音頻流緩存區(qū)當前緩存的音頻幀的幀數(shù)。比如每隔6s對AAC緩沖區(qū) 內(nèi)緩存的音頻幀的幀數(shù)進行統(tǒng)計。
[0097] 需要說明的是,本發(fā)明中的預設的統(tǒng)計周期可以為電子設備系統(tǒng)默認的統(tǒng)計周 期,或用戶根據(jù)實際需求自行設定的統(tǒng)計周期,本發(fā)明實施例對此不作限定。
[0098] S202,當該幀數(shù)大于第一數(shù)量閾值,且小于所述音頻流緩沖區(qū)能緩存的音頻幀的 總幀數(shù)時,在經(jīng)過預設時長后,對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理。
[0099] 需要說明的是,通常情況下,音頻流緩存區(qū)能夠緩存的音頻幀的總幀數(shù)為25幀, 本發(fā)明實施例中的第一數(shù)量閾值取值為15,當然,也可以根據(jù)實際需求自行設定,本發(fā)明實 施例對此不作限定。
[0100] 此外,基于實際經(jīng)驗,本發(fā)明實施例中的預設時長通常為5s,當然,也可以根據(jù)實 際需求自行設定,本發(fā)明實施例對此不作限定。優(yōu)選的,所述預設時長小于所述統(tǒng)計周期。 [0101] 可選的,在本發(fā)明的一個實施方式中,在對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄 處理時,可以從所述音頻流緩沖區(qū)的隊列尾開始,對音頻幀進行丟棄。
[0102] 可選的,在本發(fā)明的另一個實施方式中,在對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟 棄處理時,可以從所述音頻流緩沖區(qū)的隊列頭開始,對音頻幀進行丟棄。
[0103] 可選的,在對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理后,所述音頻流緩沖區(qū)內(nèi) 音頻幀的幀數(shù)等于所述第一數(shù)量閾值。此時,結合實例對本發(fā)明方法與現(xiàn)有技術進行比較, 如圖3和圖4所示,通常情況下,,電子設備中的解碼器對音頻幀的解碼速率為25幀/秒, 電子設備中的音頻流緩沖區(qū)的存儲容量為25幀,可以取!^ = 15,預設時長T = 5秒;網(wǎng)絡 服務器側的音頻流的涌入速度為27幀/秒。
[0104] 為了方便理解,假定第0秒時,該音頻流緩沖區(qū)是空的。如圖3所示,現(xiàn)有技術方 法中,第1秒時,27幀音頻幀到達該電子設備中,該電子設備的解碼器只能解碼25幀音頻 幀,剩下的2幀緩存到音頻流緩沖區(qū)中;第2秒時,繼續(xù)有27幀音頻幀到達該電子設備中, 該電子設備的解碼器只能解碼25幀音頻幀,此時該音頻流緩沖區(qū)緩存的音頻幀幀數(shù)是4 ; 依次類推,第12秒時,該音頻流緩沖區(qū)緩存的音頻幀幀數(shù)是24幀;第13秒時,繼續(xù)有27幀 音頻幀到達該電子設備中,該電子設備的解碼器只能解碼25幀音頻幀,剩余2幀不能被解 碼,而該音頻流緩沖區(qū)緩存的緩存能力是5幀,且當前緩存的音頻幀幀數(shù)是24幀,只能再緩 存1幀,此時該音頻流緩沖區(qū)達到飽和狀態(tài),還有1幀既不能被緩存,又不能被解碼,只能被 丟棄。
[0105] 第14秒時,繼續(xù)有27幀音頻幀到達該電子設備中,剩余2幀不能被解碼,而該音 頻流緩沖區(qū)在第13秒時已達到飽和狀態(tài),剩余的2幀既不能被解碼、又不能被緩存,只能丟 棄。由此可知,在第12秒之后,每一秒都會出現(xiàn)丟幀現(xiàn)象。
[0106] 如圖4所示,在本發(fā)明方法中,第1秒時,27幀音頻幀到達該電子設備中,該電子 設備的解碼器只能解碼25幀音頻幀,剩下的2幀緩存到音頻流緩沖區(qū)中;以此類推,第8秒 時,該音頻流緩沖區(qū)緩存的音頻幀幀數(shù)是16幀,大于 ηι,持續(xù)時長T = 5秒后,該音頻流緩 存區(qū)緩存的音頻幀的幀數(shù)是24幀,此時對緩沖區(qū)中的音頻幀進行丟棄,直至該緩存區(qū)緩存 的音頻幀的幀數(shù)是15幀,此后,只需間隔5秒對音頻幀進行丟棄,而不必像現(xiàn)有技術那樣每 隔1秒都要丟幀。
[0107] 以上實施例中列舉實際參數(shù)僅僅是為方便理解,本發(fā)明實施例包括但不限于以上 參數(shù)。在實際情況中,對于其它參數(shù),本發(fā)明實施例的方法仍能在一定程度上降低了丟幀的 次數(shù),減少爆破音的出現(xiàn)次數(shù)。
[0108] 可選的,在對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理后,所述音頻流緩沖區(qū)內(nèi) 音頻幀的幀數(shù)等于所述第二數(shù)量閾值,且所述第二數(shù)量閾值小于所述第一數(shù)量閾值。比如, 第一數(shù)量閾值為15,第二數(shù)量閾值可以為小于15的整數(shù)值,此時,本發(fā)明實施例仍能夠降 低音頻幀的丟幀次數(shù),推導方法如上述實例,本發(fā)明對此不再贅述。
[0109] 有時,在沒有達到預設時長時,音頻流緩沖內(nèi)緩存的音頻幀的幀數(shù)就已達到該音 頻流緩沖區(qū)能夠緩存音頻幀的總幀數(shù),此時,可以立即對所述音頻流緩沖區(qū)內(nèi)的音頻幀做 丟棄處理。
[0110] S203,對所述音頻流緩沖區(qū)中未被丟棄的音頻幀進行解碼。
[0111] 由此可見,本發(fā)明實施例方法可以確定電子設備的音頻流緩沖區(qū)當前緩存的音頻 幀的幀數(shù),當該幀數(shù)大于第一數(shù)量閾值,且小于所述音頻流緩沖區(qū)能緩存的音頻幀的總幀 數(shù)時,在經(jīng)過預設時長后,對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理,對所述音頻流緩沖 區(qū)中未被丟棄的音頻幀進行解碼。
[0112] 與現(xiàn)有技術相比,本發(fā)明實施例采用在音頻流緩沖區(qū)內(nèi)的音頻幀幀數(shù)大于第一數(shù) 量閾值,且小于音頻流緩沖區(qū)能緩存的音頻幀的總幀數(shù)時,在經(jīng)過預設時長后,對音頻幀做 丟棄處理的方法,減少了音頻幀解碼過程中音頻幀的丟幀次數(shù),降低爆破音出現(xiàn)的次數(shù)。
[0113] 可選的,在本發(fā)明的一個實施例中,所述音頻幀來源于視頻文件,所述視頻文件還 包括視頻巾貞;如圖5所示,所述方法還包括:
[0114] S204,對所述視頻文件中的視頻幀進行解碼。
[0115] 可選的,在本發(fā)明實施例的一個實施例中,如圖6所示,上述S204,可以包括:
[0116] S204a,檢測數(shù)字信號處理器DSP緩沖區(qū)是否處于不飽和狀態(tài);其中,所述DSP緩沖 區(qū)為數(shù)字信號處理器的輸入緩沖區(qū),所述DSP緩沖區(qū)用于緩存視頻幀數(shù)據(jù)。
[0117] 通常情況下,DSP (Digital Signal Processor,數(shù)字信號處理器)內(nèi)包含輸入緩沖 區(qū)和輸出緩沖區(qū),為了便于描述,在本發(fā)明實施例中,將數(shù)字信號處理器的輸入緩沖區(qū)簡稱 為DSP緩沖區(qū),它的主要作用是對進入DSP的視頻幀數(shù)據(jù)進行暫時緩存。
[0118] 為了能夠在網(wǎng)絡不穩(wěn)定的情況(比如網(wǎng)絡不穩(wěn)導致網(wǎng)絡服務器側的H. 264視頻流 會瞬間涌入播放設備)下正常工作,通常會預先在視頻播放設備的驅(qū)動或硬件中開辟一塊 視頻流緩沖區(qū),來暫時緩存來自網(wǎng)絡服務器側的H. 264視頻流數(shù)據(jù),為了便于描述,在本發(fā) 明實施例中,將開辟的視頻流緩沖區(qū)簡稱為H. 264緩沖區(qū)。
[0119] 可以理解的是,開辟的緩沖區(qū)越小,視頻流到達DSP緩沖區(qū)的延時就越小,該視頻 流的播放延時也就越小,但可能導致播放不平滑;開辟的緩沖區(qū)越大,播放則越平滑,但視 頻流到達DSP緩沖區(qū)的延時就越長。
[0120] 可選的,在本發(fā)明的一個實施方式中,可以實時檢測DSP緩沖區(qū)是否處于不飽和 狀態(tài)。
[0121] 可選的,在本發(fā)明的另一個實施方式中,可以根據(jù)預設的檢測周期,周期性地檢測 DSP緩沖區(qū)是否處于不飽和狀態(tài);比如每隔Is對DSP的緩沖區(qū)進行一次檢測。比如每隔Is 對DSP的緩沖區(qū)進行一次檢測。
[0122] 需要說明的是,本發(fā)明中的預設的檢測周期可以為播放設備系統(tǒng)默認的檢測周 期,或用戶根據(jù)實際需求自行設定的檢測周期,本發(fā)明實施例對此不作限定。
[0123] S204b,向DSP緩沖區(qū)中插入空白幀,直至該DSP緩沖區(qū)達到飽和狀態(tài)。
[0124] 本發(fā)明實施例中的空白幀可以理解為透明幀,覆蓋在具有實際畫面內(nèi)容的視頻幀 上不會對該視頻幀的播放效果產(chǎn)生影響,在H. 264編碼方式中,該空白幀也被叫做E0S幀。
[0125] 前面已經(jīng)提到,只有當DSP緩沖區(qū)被充滿時,DSP解碼器才能夠?qū)υ撎幱陲柡蜖顟B(tài) 的DSP緩沖區(qū)的視頻幀進行解碼;在本發(fā)明實施例中,當由于網(wǎng)絡阻塞等原因致使DSP緩沖 區(qū)處于不飽和狀態(tài)時,可以向該處于未飽和狀態(tài)的DSP緩沖區(qū)內(nèi)插入空白幀,以使該DSP緩 沖區(qū)迅速達到飽和狀態(tài)。
[0126] 需要說明的是,當DSP緩沖區(qū)處于飽和狀態(tài)時,本發(fā)明實施例方法不會繼續(xù)向該 DPS緩沖區(qū)中插入空白幀,以避免因 DSP緩沖區(qū)中幀數(shù)據(jù)過滿而導致的丟幀問題。
[0127] S204c,對DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進行解碼。
[0128] 在DSP緩沖區(qū)達到飽和狀態(tài)時,可以迫使該DSP緩沖區(qū)的包含空白幀在內(nèi)的幀數(shù) 據(jù)全部溢出,從而實現(xiàn)對該DSP緩沖區(qū)內(nèi)殘留的幀數(shù)據(jù)進行解碼。
[0129] 由此可見,在DSP緩沖區(qū)處于不飽和狀態(tài)、DSP緩沖區(qū)中殘留視頻流不能被立即解 碼的情況下,本發(fā)明實施例能夠采用向DSP緩沖區(qū)內(nèi)插入不影響視頻流播放效果的空白幀 的方法,使該DSP緩沖區(qū)快速達到飽和狀態(tài),繼而對包含上述殘留視頻流的幀數(shù)據(jù)進行解 碼,實現(xiàn)了在不影響該部分視頻流后續(xù)播放效果的基礎上,對上述殘留視頻流數(shù)據(jù)的立即 解碼。
[0130] 可選的,在本發(fā)明的一個實施例中,上述S204a,可以包括:
[0131] 檢測DSP緩沖區(qū)處于不飽和狀態(tài)的時長是否超過預設的閾值。
[0132] 可以理解的是,正常情況下,H. 264緩沖區(qū)中的H. 264視頻流緩存到DSP緩沖區(qū)只 需極短的時間;有時,網(wǎng)絡會出現(xiàn)暫時阻塞的問題,但很快會恢復正常,此時DSP緩沖區(qū)可 能會短暫的處于不飽和狀態(tài),很快又會達到飽和狀態(tài),且不會對后續(xù)的播放效果產(chǎn)生較大 的影響。
[0133] 基于上述情況,在本發(fā)明實施例中,可以設置一個不影響整體觀看效果的時長閾 值,如果DSP緩沖區(qū)處于不飽和狀態(tài)的時長超過時長閾值,則向該DSP緩沖區(qū)內(nèi)插入空白 幀,使該DSP緩沖區(qū)迅速達到飽和狀態(tài);如果DSP緩沖區(qū)處于不飽和狀態(tài)的時長不超過時長 閾值(比如上述情況),則可以不向該DSP緩沖區(qū)內(nèi)插入空白幀。
[0134] 可選的,在本發(fā)明的一個實施例中,上述S204a,可以包括:
[0135] 檢測DSP緩沖區(qū)中是否存在來自預先建立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),且 未被視頻幀數(shù)據(jù)充滿。
[0136] 可選的,在本發(fā)明的一個實施例中,上述S204c,可以包括:
[0137] 對DSP緩沖區(qū)內(nèi)的攜帶有網(wǎng)絡標識的視頻幀數(shù)據(jù)進行解碼;其中,所述攜帶有網(wǎng) 絡標識的視頻幀為來源于預先建立的視頻流緩沖區(qū)的幀數(shù)據(jù)。
[0138] 可以理解的是,網(wǎng)絡服務器側發(fā)送的視頻幀數(shù)據(jù)都攜帶有時間戳等網(wǎng)絡標識,本 發(fā)明實施例中的攜帶有網(wǎng)絡標識的視頻幀數(shù)據(jù)可以理解為網(wǎng)絡服務器側發(fā)送到播放設備 中的視頻幀數(shù)據(jù),由于網(wǎng)絡服務器側發(fā)送的幀數(shù)據(jù)首先緩存到H. 264緩沖區(qū)中,故也可以 理解為來源于預先建立的H. 264緩沖區(qū)的視頻幀數(shù)據(jù)。
[0139] 在本發(fā)明實施例中,可以只對包含實質(zhì)內(nèi)容的視頻幀進行解碼,從而維持了該視 頻幀的原始展示效果。
[0140] 可選的,在本發(fā)明的一個實施例中,在上述S204a之前,還可以包括:
[0141] 檢測當前是否有視頻流數(shù)據(jù)緩存到所述DSP緩存區(qū)。
[0142] 在本發(fā)明實施例中,在檢測DSP緩沖區(qū)是否處于不飽和狀態(tài)之前,可以通過檢測 當前是否有視頻流數(shù)據(jù)緩存到該DSP緩沖區(qū),來確定是否需要檢測DSP緩沖區(qū)是否處于不 飽和狀態(tài);如果檢測到當前沒有視頻流數(shù)據(jù)緩存到該DSP緩沖區(qū),則可以確定當前網(wǎng)絡阻 塞較嚴重,如果此時該DSP緩沖區(qū)中殘留部分視頻流數(shù)據(jù),則可以向該DSP緩沖區(qū)插入空白 幀,以達到將上述殘留視頻流數(shù)據(jù)盡快進行解碼的目的。
[0143] 可選的,在本發(fā)明的一個實施例中,所述視頻文件的視頻幀攜帶有時間戳,所述視 頻文件的音頻幀攜帶有時間戳;所述方法還可以包括:
[0144] 根據(jù)所述視頻幀的時間戳與所述音頻幀的時間戳的對應關系,對視頻幀的解碼結 果及音頻幀的解碼結果進行同步播放。
[0145] 可選的,本發(fā)明實施例方法也可以應用于音視頻異步播放的場景。
[0146] 可以理解的是,在某些應用場景,比如警察實時跟蹤罪犯、實時遠程控制等實時性 要求較高的場景,更側重于音頻流與視頻流播放的實時性,此時,電子設備可以直接對解碼 后的音頻或視頻進行播放,而無需再對兩者同步播放,從而避免了網(wǎng)絡原因?qū)е碌囊曨l流 堵塞,音頻流無法播放;或音頻流阻塞時,視頻流也無法播放的發(fā)生。
[0147] 相應于上面的方法實施例,本發(fā)明實施例還提供了的一種音頻流解碼裝置。
[0148] 如圖7所示,一種音頻流解碼裝置,可以包括:
[0149] 幀數(shù)確定模塊701,用于確定電子設備的音頻流緩沖區(qū)當前緩存的音頻幀的幀 數(shù);
[0150] 丟幀模塊702,用于當該幀數(shù)大于第一數(shù)量閾值,且小于所述音頻流緩沖區(qū)能緩存 的音頻幀的總幀數(shù)時,在經(jīng)過預設時長后,對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理;
[0151] 音頻幀解碼模塊703,用于對所述音頻流緩沖區(qū)中未被丟棄的音頻幀進行解碼。
[0152] 可選的,在本發(fā)明的一個實施例中,所述丟幀模塊702,還用于:
[0153] 當該幀數(shù)達到所述總幀數(shù)時,立即對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理。
[0154] 可選的,在本發(fā)明的一個實施例中,所述丟幀模塊702對所述音頻流緩沖區(qū)內(nèi)的 音頻幀做丟棄處理后,所述音頻流緩沖區(qū)內(nèi)音頻幀的幀數(shù)等于所述第一數(shù)量閾值;或者
[0155] 所述丟幀模塊702對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理后,所述音頻流緩 沖區(qū)內(nèi)音頻幀的幀數(shù)等于所述第二數(shù)量閾值,且所述第二數(shù)量閾值小于所述第一數(shù)量閾 值。
[0156] 可選的,在本發(fā)明的一個實施例中,所述幀數(shù)據(jù)確定模塊703,具體用于:
[0157] 根據(jù)預設的統(tǒng)計周期,周期性地確定電子設備的音頻流緩存區(qū)當前緩存的音頻幀 的幀數(shù)。
[0158] 在本發(fā)明實施例的一個實施方式中,所述統(tǒng)計周期大于所述預設時長。
[0159] 可選的,在本發(fā)明的一個實施例中,所述丟幀模塊702,具體用于:
[0160] 從所述音頻流緩沖區(qū)的隊列尾開始,對音頻幀進行丟棄;
[0161] 或
[0162] 從所述音頻流緩沖區(qū)的隊列頭開始,對音頻幀進行丟棄。
[0163] 可選的,在本發(fā)明的一個實施例中,所述音頻幀來源于視頻文件,所述視頻文件還 包括視頻巾貞;如圖8所示,所述裝置還包括:
[0164] 視頻幀解碼模塊704,用于對所述視頻文件中的視頻幀進行解碼。
[0165] 可選的,在本發(fā)明的一個實施例中,如圖9所示,所述視頻幀解碼模塊704,包括:
[0166] 第一檢測子模塊704a,用于檢測數(shù)字信號處理器DSP緩沖區(qū)是否處于不飽和狀 態(tài),其中,所述DSP緩沖區(qū)用于緩存視頻幀數(shù)據(jù);
[0167] 空白幀填充子模塊704b,用于在所述第一檢測模塊704a的檢測結果為是的情況 下,向DSP緩沖區(qū)中插入空白幀E0S,直至該DSP緩沖區(qū)達到飽和狀態(tài);
[0168] 視頻幀解碼子模塊704c,用于對DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進行解碼。
[0169] 可選的,在本發(fā)明的一個實施例中,所述視頻幀解碼模塊704,還包括:
[0170] 第二檢測子模塊,用于檢測當前是否有視頻流數(shù)據(jù)緩存到所述DSP緩沖區(qū),并在 檢測結果為否的情況下,觸發(fā)所述第一檢測模塊進行工作,其中,所述視頻流數(shù)據(jù)為:預先 建立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),所述預先建立的視頻數(shù)據(jù)緩沖區(qū)用于緩存來源于 網(wǎng)絡服務器側的視頻幀數(shù)據(jù)。
[0171] 可選的,在本發(fā)明的一個實施例中,所述第一檢測子模塊704a,具體用于:
[0172] 實時檢測DSP緩沖區(qū)是否處于不飽和狀態(tài);
[0173] 或
[0174] 根據(jù)預設的檢測周期,周期性地檢測DSP緩沖區(qū)是否處于不飽和狀態(tài)。
[0175] 可選的,在本發(fā)明的一個實施例中,所述第一檢測子模塊704a,具體用于:
[0176] 檢測DSP緩沖區(qū)處于不飽和狀態(tài)的時長是否超過預設的閾值。
[0177] 可選的,在本發(fā)明的一個實施例中,所述第一檢測子模塊704a,具體用于:
[0178] 檢測DSP緩沖區(qū)中是否存在來自預先建立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),且 未被視頻幀數(shù)據(jù)充滿。
[0179] 可選的,在本發(fā)明的一個實施例中,所述視頻幀解碼子模塊704c,具體用于:
[0180] 對DSP緩沖區(qū)內(nèi)的攜帶有網(wǎng)絡標識的視頻幀進行解碼,所述攜帶有網(wǎng)絡標識的視 頻幀為來源于預先建立的視頻流緩沖區(qū)的幀數(shù)據(jù)。
[0181] 可選的,在本發(fā)明的一個實施例中,所述視頻文件的視頻幀攜帶有時間戳,所述視 頻文件的音頻幀攜帶有時間戳;所述裝置還包括:
[0182] 播放模塊,用于根據(jù)所述視頻幀的時間戳與所述音頻幀的時間戳的對應關系,對 視頻幀的解碼結果及音頻幀的解碼結果進行同步播放。
[0183] 對于裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關 之處參見方法實施例的部分說明即可。
[0184] 為了描述的方便,描述以上裝置時以功能分為各種模塊分別描述。當然,在實施本 發(fā)明時可以把各模塊的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
[0185] 需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實 體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存 在任何這種實際的關系或者順序。而且,術語"包括"、"包含"或者其任何其他變體意在涵 蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要 素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備 所固有的要素。在沒有更多限制的情況下,由語句"包括一個……"限定的要素,并不排除 在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
[0186] 本說明書中的各個實施例均采用相關的方式描述,各個實施例之間相同相似的部 分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于裝置實 施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例 的部分說明即可。
[0187] 本領域普通技術人員可以理解實現(xiàn)上述方法實施方式中的全部或部分步驟是可 以通過程序來指令相關的硬件來完成,所述的程序可以存儲于計算機可讀取存儲介質(zhì)中, 這里所稱得的存儲介質(zhì),如:R0M/RAM、磁碟、光盤等。
[0188] 以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在 本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍 內(nèi)。
【權利要求】
1. 一種音頻流解碼方法,其特征在于,該方法包括: 確定電子設備的音頻流緩沖區(qū)當前緩存的音頻幀的幀數(shù); 當該幀數(shù)大于第一數(shù)量閾值,且小于所述音頻流緩沖區(qū)能緩存的音頻幀的總幀數(shù)時, 在經(jīng)過預設時長后,對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理; 對所述音頻流緩沖區(qū)中未被丟棄的音頻幀進行解碼。
2. 根據(jù)權利要求1所述的方法,其特征在于,還包括: 當該幀數(shù)達到所述總幀數(shù)時,立即對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理。
3. 根據(jù)權利要求1或2所述的方法,其特征在于,對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟 棄處理后,所述音頻流緩沖區(qū)內(nèi)音頻幀的幀數(shù)等于所述第一數(shù)量閾值;或者 對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理后,所述音頻流緩沖區(qū)內(nèi)音頻幀的幀數(shù)等 于所述第二數(shù)量閾值,且所述第二數(shù)量閾值小于所述第一數(shù)量閾值。
4. 根據(jù)權利要求1或2所述的方法,其特征在于,確定電子設備的音頻流緩沖區(qū)當前緩 存的音頻幀的幀數(shù),包括: 根據(jù)預設的統(tǒng)計周期,周期性地確定電子設備的音頻流緩存區(qū)當前緩存的音頻幀的幀 數(shù)。
5. 如權利要求4所述的方法,其特征在于,所述統(tǒng)計周期大于所述預設時長。
6. 根據(jù)權利要求1或2所述的方法,其特征在于,所述對所述音頻流緩沖區(qū)內(nèi)的音頻幀 做丟棄處理,包括: 從所述音頻流緩沖區(qū)的隊列尾開始,對音頻幀進行丟棄; 或 從所述音頻流緩沖區(qū)的隊列頭開始,對音頻幀進行丟棄。
7. 根據(jù)權利要求1所述的方法,其特征在于,所述音頻幀來源于視頻文件,所述視頻文 件還包括視頻幀;所述方法還包括:對所述視頻文件中的視頻幀進行解碼。
8. 根據(jù)權利要求7所述的方法,其特征在于,所述對所述視頻文件中的視頻幀進行解 碼,包括: 檢測數(shù)字信號處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),其中,所述DSP緩沖區(qū)為數(shù)字信 號處理器的輸入緩沖區(qū),所述DSP緩沖區(qū)用于緩存視頻幀數(shù)據(jù); 如果是,則向DSP緩沖區(qū)中插入空白幀,直至該DSP緩沖區(qū)達到飽和狀態(tài); 對DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進行解碼。
9. 根據(jù)權利要求8所述的方法,其特征在于,在所述檢測數(shù)字信號處理器DSP緩沖區(qū)是 否處于不飽和狀態(tài)之前,還包括: 檢測當前是否有視頻流數(shù)據(jù)緩存到所述DSP緩沖區(qū),如果否,則執(zhí)行所述檢測數(shù)字信 號處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),其中,所述視頻流數(shù)據(jù)為:預先建立的視頻數(shù)據(jù) 緩沖區(qū)中的視頻幀數(shù)據(jù),所述預先建立的視頻數(shù)據(jù)緩沖區(qū)用于緩存來源于網(wǎng)絡服務器側的 視頻幀數(shù)據(jù)。
10. 根據(jù)權利要求8所述的方法,其特征在于,所述檢測數(shù)字信號處理器DSP緩沖區(qū)是 否處于不飽和狀態(tài),包括: 實時檢測DSP緩沖區(qū)是否處于不飽和狀態(tài); 或 根據(jù)預設的檢測周期,周期性地檢測DSP緩沖區(qū)是否處于不飽和狀態(tài)。
11. 根據(jù)權利要求8所述的方法,其特征在于,所述檢測數(shù)字信號處理器DSP緩沖區(qū)是 否處于不飽和狀態(tài),包括: 檢測DSP緩沖區(qū)處于不飽和狀態(tài)的時長是否超過預設的閾值。
12. 根據(jù)權利要求8所述的方法,其特征在于,所述檢測數(shù)字信號處理器DSP緩沖區(qū)是 否處于不飽和狀態(tài),包括: 檢測DSP緩沖區(qū)中是否存在來自預先建立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),且未被 視頻幀數(shù)據(jù)充滿。
13. 根據(jù)權利要求12所述的方法,其特征在于,所述對DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進行解 碼,包括: 對DSP緩沖區(qū)內(nèi)的攜帶有網(wǎng)絡標識的視頻幀進行解碼,所述攜帶有網(wǎng)絡標識的視頻幀 為來源于預先建立的視頻流緩沖區(qū)的幀數(shù)據(jù)。
14. 根據(jù)權利要求7所述的方法,其特征在于,所述視頻文件的視頻幀攜帶有時間戳, 所述視頻文件的音頻幀攜帶有時間戳;所述方法還包括: 根據(jù)所述視頻幀的時間戳與所述音頻幀的時間戳的對應關系,對視頻幀的解碼結果及 音頻幀的解碼結果進行同步播放。
15. -種音頻流解碼裝置,其特征在于,該裝置包括: 幀數(shù)確定模塊,用于確定電子設備的音頻流緩沖區(qū)當前緩存的音頻幀的幀數(shù); 丟幀模塊,用于當該幀數(shù)大于第一數(shù)量閾值,且小于所述音頻流緩沖區(qū)能緩存的音頻 幀的總幀數(shù)時,在經(jīng)過預設時長后,對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理; 音頻幀解碼模塊,用于對所述音頻流緩沖區(qū)中未被丟棄的音頻幀進行解碼。
16. 根據(jù)權利要求15所述的裝置,其特征在于,所述丟幀模塊,還用于: 當該幀數(shù)達到所述總幀數(shù)時,立即對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理。
17. 根據(jù)權利要求15或16所述的裝置,其特征在于,所述丟幀模塊對所述音頻流緩沖 區(qū)內(nèi)的音頻幀做丟棄處理后,所述音頻流緩沖區(qū)內(nèi)音頻幀的幀數(shù)等于所述第一數(shù)量閾值; 或者 所述丟幀模塊對所述音頻流緩沖區(qū)內(nèi)的音頻幀做丟棄處理后,所述音頻流緩沖區(qū)內(nèi)音 頻幀的幀數(shù)等于所述第二數(shù)量閾值,且所述第二數(shù)量閾值小于所述第一數(shù)量閾值。
18. 根據(jù)權利要求15或16所述的裝置,其特征在于,所述幀數(shù)據(jù)確定模塊,具體用于: 根據(jù)預設的統(tǒng)計周期,周期性地確定電子設備的音頻流緩存區(qū)當前緩存的音頻幀的幀 數(shù)。
19. 根據(jù)權利要求18所述的方法,其特征在于,所述統(tǒng)計周期大于所述預設時長。
20. 根據(jù)權利要求15或16所述的裝置,其特征在于,所述丟幀模塊,具體用于: 從所述音頻流緩沖區(qū)的隊列尾開始,對音頻幀進行丟棄; 或 從所述音頻流緩沖區(qū)的隊列頭開始,對音頻幀進行丟棄。
21. 根據(jù)權利要求15所述的裝置,其特征在于,所述音頻幀來源于視頻文件,所述視頻 文件還包括視頻幀;所述裝置還包括:視頻幀解碼模塊。
22. 根據(jù)權利要求21所述的裝置,其特征在于,所述視頻幀解碼模塊,包括: 第一檢測子模塊,用于檢測數(shù)字信號處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),其中,所 述DSP緩沖區(qū)用于緩存視頻幀數(shù)據(jù); 空白幀填充子模塊,用于在所述第一檢測模塊的檢測結果為是的情況下,向DSP緩沖 區(qū)中插入空白幀EOS,直至該DSP緩沖區(qū)達到飽和狀態(tài); 視頻幀解碼子模塊,用于對DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進行解碼。
23. 根據(jù)權利要求22所述的裝置,其特征在于,所述視頻幀解碼模塊,還包括: 第二檢測子模塊,用于檢測當前是否有視頻流數(shù)據(jù)緩存到所述DSP緩沖區(qū),并在檢測 結果為否的情況下,觸發(fā)所述第一檢測模塊進行工作,其中,所述視頻流數(shù)據(jù)為:預先建立 的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),所述預先建立的視頻數(shù)據(jù)緩沖區(qū)用于緩存來源于網(wǎng)絡 服務器側的視頻幀數(shù)據(jù)。
24. 根據(jù)權利要求22所述的裝置,其特征在于,所述第一檢測子模塊,具體用于: 實時檢測DSP緩沖區(qū)是否處于不飽和狀態(tài); 或 根據(jù)預設的檢測周期,周期性地檢測DSP緩沖區(qū)是否處于不飽和狀態(tài)。
25. 根據(jù)權利要求22所述的裝置,其特征在于,所述第一檢測子模塊,具體用于: 檢測DSP緩沖區(qū)處于不飽和狀態(tài)的時長是否超過預設的閾值。
26. 根據(jù)權利要求22所述的裝置,其特征在于,所述第一檢測子模塊,具體用于: 檢測DSP緩沖區(qū)中是否存在來自預先建立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),且未被 視頻幀數(shù)據(jù)充滿。
27. 根據(jù)權利要求26所述的裝置,其特征在于,所述視頻幀解碼子模塊,具體用于: 對DSP緩沖區(qū)內(nèi)的攜帶有網(wǎng)絡標識的視頻幀進行解碼,所述攜帶有網(wǎng)絡標識的視頻幀 為來源于預先建立的視頻流緩沖區(qū)的幀數(shù)據(jù)。
28. 根據(jù)權利要求15所述的裝置,其特征在于,所述視頻文件的視頻幀攜帶有時間戳, 所述視頻文件的音頻幀攜帶有時間戳;所述裝置還包括: 播放模塊,用于根據(jù)所述視頻幀的時間戳與所述音頻幀的時間戳的對應關系,對視頻 幀的解碼結果及音頻幀的解碼結果進行同步播放。
【文檔編號】H04N21/44GK104113777SQ201410375254
【公開日】2014年10月22日 申請日期:2014年8月1日 優(yōu)先權日:2014年8月1日
【發(fā)明者】鄺銳強 申請人:廣州金山網(wǎng)絡科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1