一種視頻流解碼方法及裝置制造方法
【專利摘要】本發(fā)明實(shí)施例公開了一種視頻流解碼方法及裝置,一種視頻流解碼方法,包括:檢測(cè)數(shù)字信號(hào)處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),所述DSP緩沖區(qū)用于緩存視頻幀數(shù)據(jù);如果是,則向DSP緩沖區(qū)中插入空白幀EOS,直至DSP緩沖區(qū)達(dá)到飽和狀態(tài);對(duì)DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進(jìn)行解碼。應(yīng)用上述技術(shù)方案,在DSP緩沖區(qū)處于不飽和狀態(tài)、DSP緩沖區(qū)中殘留視頻流不能被立即解碼的情況下,本發(fā)明實(shí)施例能夠采用向DSP緩沖區(qū)內(nèi)插入不影響視頻流播放效果的空白幀的方法,使該DSP緩沖區(qū)快速達(dá)到飽和狀態(tài),繼而對(duì)包含上述殘留視頻流的幀數(shù)據(jù)進(jìn)行解碼,實(shí)現(xiàn)了在不影響該部分視頻流后續(xù)播放效果的基礎(chǔ)上,對(duì)上述殘留視頻流數(shù)據(jù)的立即解碼。
【專利說明】一種視頻流解碼方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及流媒體【技術(shù)領(lǐng)域】,特別涉及一種視頻流解碼方法及裝置。
【背景技術(shù)】
[0002] 為降低網(wǎng)絡(luò)環(huán)境不穩(wěn)定給視頻流解碼帶來的影響,在對(duì)視頻流進(jìn)行解碼之前,具 有視頻流解碼功能的電子設(shè)備通常會(huì)在本地預(yù)先建立視頻流緩沖區(qū),比如圖1中的H. 264 緩沖區(qū);此外,為合理分配CPU(Central Processing Unit,中央處理器)資源,該電子設(shè)備 通常采用DSP (Digital Signal Processor,數(shù)字信號(hào)處理器)對(duì)視頻流進(jìn)行硬解,其中,該 DSP內(nèi)部有輸入緩沖區(qū),為了方便描述,這里將它稱作DSP緩沖區(qū)。
[0003] 現(xiàn)有技術(shù)中,視頻解碼過程如圖1所示,當(dāng)網(wǎng)絡(luò)視頻流到達(dá)該電子設(shè)備時(shí),首先緩 存到預(yù)先建立的H. 264緩沖區(qū),之后H. 264緩沖區(qū)中的視頻流緩存到DSP緩沖區(qū),待DSP緩 沖區(qū)中充滿視頻流時(shí),立即將DSP緩沖區(qū)中的視頻流推送到DSP中的DSP解碼器內(nèi)進(jìn)行解 碼。
[0004] 然而,由于DSP緩沖區(qū)中的視頻流只能來源于H. 246緩沖區(qū),在網(wǎng)絡(luò)中的視頻流發(fā) 生堵塞的情況下,網(wǎng)絡(luò)視頻流不能夠持續(xù)地緩存到H. 246緩沖區(qū),H. 264緩沖區(qū)中的視頻流 很快就會(huì)被耗盡,而DSP緩沖區(qū)仍有可能未被充滿,此時(shí),DSP緩沖區(qū)中殘留的視頻流不能 被立即解碼,只有等待其他來自H. 264緩沖區(qū)中的視頻流填滿該DSP緩沖區(qū)時(shí),這部分殘留 的視頻流才能夠被解碼,這就導(dǎo)致DSP緩沖區(qū)中殘留視頻流被延時(shí)解碼。
【發(fā)明內(nèi)容】
[0005] 為了解決上述問題,本發(fā)明實(shí)施例公開了一種視頻流解碼方法及裝置,具體技術(shù) 方案如下:
[0006] 一種視頻流解碼方法,包括:
[0007] 檢測(cè)數(shù)字信號(hào)處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),其中,所述DSP緩沖區(qū)用于 緩存視頻幀數(shù)據(jù);
[0008] 如果是,則向DSP緩沖區(qū)中插入空白幀E0S,直至該DSP緩沖區(qū)達(dá)到飽和狀態(tài);
[0009] 對(duì)DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進(jìn)行解碼。
[0010] 優(yōu)選的,在所述檢測(cè)數(shù)字信號(hào)處理器DSP緩沖區(qū)是否處于不飽和狀態(tài)之前,還包 括:
[0011] 檢測(cè)當(dāng)前是否有視頻流數(shù)據(jù)緩存到所述DSP緩沖區(qū),如果否,則執(zhí)行所述檢測(cè)數(shù) 字信號(hào)處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),其中,所述視頻流數(shù)據(jù)為:預(yù)先建立的視頻 數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),所述預(yù)先建立的視頻數(shù)據(jù)緩沖區(qū)用于緩存來源于網(wǎng)絡(luò)服務(wù)器 側(cè)的視頻幀數(shù)據(jù)。
[0012] 優(yōu)選的,所述檢測(cè)數(shù)字信號(hào)處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),包括:
[0013] 實(shí)時(shí)檢測(cè)DSP緩沖區(qū)是否處于不飽和狀態(tài);
[0014] 或
[0015] 根據(jù)預(yù)設(shè)的檢測(cè)周期,周期性地檢測(cè)DSP緩沖區(qū)是否處于不飽和狀態(tài)。
[0016] 優(yōu)選的,所述檢測(cè)數(shù)字信號(hào)處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),包括:
[0017] 檢測(cè)DSP緩沖區(qū)處于不飽和狀態(tài)的時(shí)長是否超過預(yù)設(shè)的閾值。
[0018] 優(yōu)選的,所述檢測(cè)數(shù)字信號(hào)處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),包括:
[0019] 檢測(cè)DSP緩沖區(qū)中是否存在來自預(yù)先建立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),且 未被視頻幀數(shù)據(jù)充滿。
[0020] 優(yōu)選的,所述對(duì)DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進(jìn)行解碼,包括:
[0021] 對(duì)DSP緩沖區(qū)內(nèi)的攜帶有網(wǎng)絡(luò)標(biāo)識(shí)的視頻幀進(jìn)行解碼,所述攜帶有網(wǎng)絡(luò)標(biāo)識(shí)的視 頻幀為來源于預(yù)先建立的視頻流緩沖區(qū)的幀數(shù)據(jù)。
[0022] -種視頻流解碼裝置,包括:
[0023] 第一檢測(cè)模塊,用于檢測(cè)數(shù)字信號(hào)處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),其中, 所述DSP緩沖區(qū)用于緩存視頻幀數(shù)據(jù);
[0024] 空白幀填充模塊,用于在所述第一檢測(cè)模塊的檢測(cè)結(jié)果為是的情況下,向DSP緩 沖區(qū)中插入空白幀E0S,直至該DSP緩沖區(qū)達(dá)到飽和狀態(tài);
[0025] 解碼模塊,用于對(duì)DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進(jìn)行解碼。
[0026] 優(yōu)選的,該裝置還包括:
[0027] 第二檢測(cè)模塊,用于檢測(cè)當(dāng)前是否有視頻流數(shù)據(jù)緩存到所述DSP緩沖區(qū),并在檢 測(cè)結(jié)果為否的情況下,觸發(fā)所述第一檢測(cè)模塊進(jìn)行工作,其中,所述視頻流數(shù)據(jù)為:預(yù)先建 立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),所述預(yù)先建立的視頻數(shù)據(jù)緩沖區(qū)用于緩存來源于網(wǎng) 絡(luò)服務(wù)器側(cè)的視頻幀數(shù)據(jù)。
[0028] 優(yōu)選的,所述第一檢測(cè)模塊,具體用于:
[0029] 實(shí)時(shí)檢測(cè)DSP緩沖區(qū)是否處于不飽和狀態(tài);
[0030] 或
[0031] 根據(jù)預(yù)設(shè)的檢測(cè)周期,周期性地檢測(cè)DSP緩沖區(qū)是否處于不飽和狀態(tài)。
[0032] 優(yōu)選的,所述第一檢測(cè)模塊,具體用于:
[0033] 檢測(cè)DSP緩沖區(qū)處于不飽和狀態(tài)的時(shí)長是否超過預(yù)設(shè)的閾值。
[0034] 優(yōu)選的,所述第一檢測(cè)模塊,具體用于:
[0035] 檢測(cè)DSP緩沖區(qū)中是否存在來自預(yù)先建立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),且 未被視頻幀數(shù)據(jù)充滿。
[0036] 優(yōu)選的,所述解碼模塊,具體用于:
[0037] 對(duì)DSP緩沖區(qū)內(nèi)的攜帶有網(wǎng)絡(luò)標(biāo)識(shí)的視頻幀進(jìn)行解碼,所述攜帶有網(wǎng)絡(luò)標(biāo)識(shí)的視 頻幀為來源于預(yù)先建立的視頻流緩沖區(qū)的幀數(shù)據(jù)。
[0038] 本發(fā)明實(shí)施例通過引入覆蓋在待播放視頻幀上但不會(huì)影響該待播放視頻幀展示 效果的空白幀,及將該類型空白幀插入到DSP緩沖區(qū)的技術(shù),從而實(shí)現(xiàn)在DSP緩沖區(qū)處于 不飽和狀態(tài)的情況下,立即對(duì)DSP緩沖區(qū)中的殘留視頻流進(jìn)行解碼,具體實(shí)現(xiàn)步驟如下:在 DSP緩存區(qū)處于不飽和狀態(tài)情況下,能夠向該DSP緩沖區(qū)插入空白幀,直至該DSP緩沖區(qū)達(dá) 到飽和狀態(tài);對(duì)DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進(jìn)行解碼。
[0039] 與現(xiàn)有技術(shù)相比,在DSP緩沖區(qū)處于不飽和狀態(tài)、DSP緩沖區(qū)中殘留視頻流不能被 立即解碼的情況下,本發(fā)明實(shí)施例能夠采用向DSP緩沖區(qū)內(nèi)插入不影響視頻流播放效果 的空白幀的方法,使該DSP緩沖區(qū)快速達(dá)到飽和狀態(tài),繼而對(duì)包含上述殘留視頻流的幀數(shù) 據(jù)進(jìn)行解碼,實(shí)現(xiàn)了在不影響該部分視頻流后續(xù)播放效果的基礎(chǔ)上,對(duì)上述殘留視頻流數(shù) 據(jù)的立即解碼。
【專利附圖】
【附圖說明】
[0040] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0041] 圖1為現(xiàn)有技術(shù)中視頻流解碼方法的示例性流程圖;
[0042] 圖2a為本發(fā)明實(shí)施例提供的一種視頻流解碼方法的流程圖;
[0043] 圖2b為本發(fā)明實(shí)施例提供的一種視頻流解碼方法的示例性流程圖;
[0044] 圖3為本發(fā)明實(shí)施例提供的另一種視頻流解碼方法的流程圖;
[0045] 圖4為本發(fā)明實(shí)施例提供的一種視頻流解碼裝置的結(jié)構(gòu)示意圖;
[0046] 圖5為本發(fā)明實(shí)施例提供的另一種視頻流解碼裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0047] 為了使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實(shí)施 例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例 僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通 技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范 圍。
[0048] 隨著網(wǎng)絡(luò)多媒體技術(shù)的快速發(fā)展,多元化的網(wǎng)絡(luò)多媒體文件不斷豐富人們視覺和 聽覺感受;流媒體(比如視頻流、音頻流等)的出現(xiàn),使得用戶不必像非流式播放方式那樣, 待整個(gè)多媒體文件完全下載到播放設(shè)備本地后才能觀看其中的內(nèi)容;而只需經(jīng)過幾秒或幾 十秒的傳輸延遲即可在播放設(shè)備上對(duì)其進(jìn)行解碼及播放,它為用戶帶來了新的視聽體驗(yàn)。 [0049] 作為視頻的一種存在形式,視頻流在該視頻文件的網(wǎng)絡(luò)傳輸、播放設(shè)備的解碼及 播放方面有著重要的作用。為了便于理解,現(xiàn)對(duì)視頻流的播放過程進(jìn)行簡要說明:在接收 到網(wǎng)絡(luò)服務(wù)器側(cè)發(fā)送的視頻流后,播放設(shè)備首先將該視頻流緩存到預(yù)先建立的視頻流緩沖 區(qū)(比如圖1中的H. 264緩沖區(qū)),之后再將該視頻流緩存到DSP緩沖區(qū),繼而對(duì)該網(wǎng)絡(luò)側(cè) 視頻流進(jìn)行解碼及播放,為了能夠?qū)SP緩沖區(qū)中緩存的網(wǎng)絡(luò)服務(wù)器側(cè)視頻流進(jìn)行實(shí)時(shí)播 放,本發(fā)明實(shí)施例提供了一種視頻流解碼方法及裝置。
[0050] 下面首先對(duì)本發(fā)明實(shí)施例提供的一種視頻流解碼方法進(jìn)行介紹。
[0051] 需要說明的是,本發(fā)明實(shí)施例方法適用于電子設(shè)備中,在實(shí)際應(yīng)用中,該電子設(shè)備 可以為筆記本電腦、臺(tái)式電腦、平板電腦,及智能手機(jī)等等,本發(fā)明實(shí)施例對(duì)此不作限定;
[0052] 此外,由于目前市場(chǎng)上主流的視頻編碼方式為H. 264,而H. 264的四種畫質(zhì)級(jí)別 BP (Baseline Profile,基本畫質(zhì))、EP (Extended Profile,進(jìn)階畫質(zhì))、MP (Main Profile,主流 畫質(zhì))、HP (High Profile,高級(jí)畫質(zhì))中BP最為基礎(chǔ),全文將著重以Η· 264中的BP視頻流 為例對(duì)本發(fā)明實(shí)施例方法進(jìn)行介紹。
[0053] 如圖2a所示,一種視頻流解碼方法,可以包括:
[0054] S201,檢測(cè)數(shù)字信號(hào)處理器DSP緩沖區(qū)是否處于不飽和狀態(tài);如果是,轉(zhuǎn)到S202。
[0055] 通常情況下,DSP (Digital Signal Processor,數(shù)字信號(hào)處理器)內(nèi)包含輸入緩沖 區(qū)和輸出緩沖區(qū),為了便于描述,在本發(fā)明實(shí)施例中,將數(shù)字信號(hào)處理器的輸入緩沖區(qū)簡稱 為DSP緩沖區(qū),它的主要作用是對(duì)進(jìn)入DSP的視頻幀數(shù)據(jù)進(jìn)行暫時(shí)緩存。
[0056] 為了能夠在網(wǎng)絡(luò)不穩(wěn)定的情況(比如網(wǎng)絡(luò)不穩(wěn)導(dǎo)致網(wǎng)絡(luò)服務(wù)器側(cè)的H. 264視頻流 會(huì)瞬間涌入播放設(shè)備)下正常工作,通常會(huì)預(yù)先在視頻播放設(shè)備的驅(qū)動(dòng)或硬件中開辟一塊 視頻流緩沖區(qū),來暫時(shí)緩存來自網(wǎng)絡(luò)服務(wù)器側(cè)的H. 264視頻流數(shù)據(jù),為了便于描述,在本發(fā) 明實(shí)施例中,將開辟的視頻流緩沖區(qū)簡稱為H. 264緩沖區(qū),如圖2b所示。
[0057] 可以理解的是,開辟的緩沖區(qū)越小,視頻流到達(dá)DSP緩沖區(qū)的延時(shí)就越小,該視頻 流的播放延時(shí)也就越小,但可能導(dǎo)致播放不平滑;開辟的緩沖區(qū)越大,播放則越平滑,但視 頻流到達(dá)DSP緩沖區(qū)的延時(shí)就越長。
[0058] 在本發(fā)明實(shí)施例中,如圖2b所示,網(wǎng)絡(luò)服務(wù)器側(cè)的H. 264視頻流首先緩存到H. 264 緩沖區(qū)中,H. 264緩沖區(qū)內(nèi)的視頻流緩存到DSP緩沖區(qū)中,檢測(cè)DSP緩沖區(qū)處于不飽和狀態(tài) 可以理解為檢測(cè)DSP緩沖區(qū)是否未被來自H. 264緩沖區(qū)內(nèi)的視頻幀充滿。
[0059] 可選的,在本發(fā)明的一個(gè)實(shí)施方式中,可以實(shí)時(shí)檢測(cè)DSP緩沖區(qū)是否處于不飽和 狀態(tài)。
[0060] 可選的,在本發(fā)明的另一個(gè)實(shí)施方式中,可以根據(jù)預(yù)設(shè)的檢測(cè)周期,周期性地檢測(cè) DSP緩沖區(qū)是否處于不飽和狀態(tài);比如每隔Is對(duì)DSP的緩沖區(qū)進(jìn)行一次檢測(cè)。
[0061] 需要說明的是,本發(fā)明中的預(yù)設(shè)的檢測(cè)周期可以為播放設(shè)備系統(tǒng)默認(rèn)的檢測(cè)周 期,或用戶根據(jù)實(shí)際需求自行設(shè)定的檢測(cè)周期,本發(fā)明實(shí)施例對(duì)此不作限定。
[0062] S202,向DSP緩存區(qū)中插入空白幀E0S,直至該DSP緩沖區(qū)達(dá)到飽和狀態(tài)。
[0063] 本發(fā)明實(shí)施例中的空白幀可以理解為透明幀,覆蓋在具有實(shí)際畫面內(nèi)容的視頻幀 上不會(huì)對(duì)該視頻幀的播放效果產(chǎn)生影響,在H. 264編碼方式中,該空白幀也被叫做E0S幀。
[0064] 前面已經(jīng)提到,只有當(dāng)DSP緩沖區(qū)被充滿時(shí),DSP解碼器才能夠?qū)υ撎幱陲柡蜖顟B(tài) 的DSP緩沖區(qū)的視頻幀進(jìn)行解碼;在本發(fā)明實(shí)施例中,當(dāng)由于網(wǎng)絡(luò)阻塞等原因致使DSP緩 沖區(qū)處于不飽和狀態(tài)時(shí),可以向該處于未飽和狀態(tài)的DSP緩沖區(qū)內(nèi)插入空白幀(如圖2b所 示),以使該DSP緩沖區(qū)迅速達(dá)到飽和狀態(tài)。
[0065] 需要說明的是,當(dāng)DSP緩沖區(qū)處于飽和狀態(tài)時(shí),本發(fā)明實(shí)施例方法不會(huì)繼續(xù)向該 DPS緩沖區(qū)中插入空白幀,以避免因 DSP緩沖區(qū)中幀數(shù)據(jù)過滿而導(dǎo)致的丟幀問題。
[0066] S203,對(duì)DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進(jìn)行解碼。
[0067] 在DSP緩沖區(qū)達(dá)到飽和狀態(tài)時(shí),可以迫使該DSP緩沖區(qū)的包含空白幀在內(nèi)的幀數(shù) 據(jù)全部溢出,從而實(shí)現(xiàn)對(duì)該DSP緩沖區(qū)內(nèi)殘留的幀數(shù)據(jù)進(jìn)行解碼。
[0068] 應(yīng)用上述技術(shù)方案,本發(fā)明實(shí)施例通過引入覆蓋在待播放視頻幀上但不會(huì)影響該 待播放視頻幀展示效果的空白幀,及將該類型空白幀插入到DSP緩沖區(qū)的技術(shù),從而實(shí)現(xiàn) 在DSP緩沖區(qū)處于不飽和狀態(tài)的情況下,立即對(duì)DSP緩沖區(qū)中的殘留視頻流進(jìn)行解碼,具體 實(shí)現(xiàn)步驟如下:在DSP緩存區(qū)處于不飽和狀態(tài)情況下,能夠向該DSP緩沖區(qū)插入空白幀,直 至該DSP緩沖區(qū)達(dá)到飽和狀態(tài);對(duì)DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進(jìn)行解碼。
[0069] 與現(xiàn)有技術(shù)相比,在DSP緩沖區(qū)處于不飽和狀態(tài)、DSP緩沖區(qū)中殘留視頻流不能被 立即解碼的情況下,本發(fā)明實(shí)施例能夠采用向DSP緩沖區(qū)內(nèi)插入不影響視頻流播放效果的 空白幀的方法,使該DSP緩沖區(qū)快速達(dá)到飽和狀態(tài),繼而對(duì)包含上述殘留視頻流的幀數(shù)據(jù) 進(jìn)行解碼,實(shí)現(xiàn)了在不影響該部分視頻流后續(xù)播放效果的基礎(chǔ)上,對(duì)上述殘留視頻流數(shù)據(jù) 的立即解碼。
[0070] 可選的,在本發(fā)明的一個(gè)實(shí)施例中,上述S201,可以包括:
[0071] 檢測(cè)DSP緩沖區(qū)處于不飽和狀態(tài)的時(shí)長是否超過預(yù)設(shè)的閾值。
[0072] 可以理解的是,如圖2b所示,正常情況下,H. 264緩沖區(qū)中的H. 264視頻流緩存到 DSP緩沖區(qū)只需極短的時(shí)間;有時(shí),網(wǎng)絡(luò)會(huì)出現(xiàn)暫時(shí)阻塞的問題,但很快會(huì)恢復(fù)正常,此時(shí) DSP緩沖區(qū)可能會(huì)短暫的處于不飽和狀態(tài),很快又會(huì)達(dá)到飽和狀態(tài),且不會(huì)對(duì)后續(xù)的播放效 果產(chǎn)生較大的影響。
[0073] 基于上述情況,在本發(fā)明實(shí)施例中,可以設(shè)置一個(gè)不影響整體觀看效果的時(shí)長閾 值,如果DSP緩沖區(qū)處于不飽和狀態(tài)的時(shí)長超過時(shí)長閾值,則向該DSP緩沖區(qū)內(nèi)插入空白 幀,使該DSP緩沖區(qū)迅速達(dá)到飽和狀態(tài);如果DSP緩沖區(qū)處于不飽和狀態(tài)的時(shí)長不超過時(shí)長 閾值(比如上述情況),則可以不向該DSP緩沖區(qū)內(nèi)插入空白幀。
[0074] 可選的,在本發(fā)明的一個(gè)實(shí)施例中,上述S201,可以包括:
[0075] 檢測(cè)DSP緩沖區(qū)中是否存在來自預(yù)先建立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),且 未被視頻幀數(shù)據(jù)充滿。
[0076] 可選的,在本發(fā)明的一個(gè)實(shí)施例中,上述S203,可以包括:
[0077] 對(duì)DSP緩沖區(qū)內(nèi)的攜帶有網(wǎng)絡(luò)標(biāo)識(shí)的視頻幀數(shù)據(jù)進(jìn)行解碼;其中,所述攜帶有網(wǎng) 絡(luò)標(biāo)識(shí)的視頻幀為來源于預(yù)先建立的視頻流緩沖區(qū)的幀數(shù)據(jù)。
[0078] 可以理解的是,網(wǎng)絡(luò)服務(wù)器側(cè)發(fā)送的視頻幀數(shù)據(jù)都攜帶有時(shí)間戳等網(wǎng)絡(luò)標(biāo)識(shí),本 發(fā)明實(shí)施例中的攜帶有網(wǎng)絡(luò)標(biāo)識(shí)的視頻幀數(shù)據(jù)可以理解為網(wǎng)絡(luò)服務(wù)器側(cè)發(fā)送到播放設(shè)備 中的視頻幀數(shù)據(jù),由于網(wǎng)絡(luò)服務(wù)器側(cè)發(fā)送的幀數(shù)據(jù)首先緩存到H. 264緩沖區(qū)中,故也可以 理解為來源于預(yù)先建立的H. 264緩沖區(qū)的視頻幀數(shù)據(jù)。
[0079] 在本發(fā)明實(shí)施例中,可以只對(duì)包含實(shí)質(zhì)內(nèi)容的視頻幀進(jìn)行解碼,從而維持了該視 頻幀的原始展示效果。
[0080] 可選的,在本發(fā)明的另一個(gè)實(shí)施例中,如圖3所示,在上述S201之前,還可以包 括:
[0081] S200,檢測(cè)當(dāng)前是否有視頻流數(shù)據(jù)緩存到所述DSP緩存區(qū)。
[0082] 在本發(fā)明實(shí)施例中,在檢測(cè)DSP緩沖區(qū)是否處于不飽和狀態(tài)之前,可以通過檢測(cè) 當(dāng)前是否有視頻流數(shù)據(jù)緩存到該DSP緩沖區(qū),來確定是否需要檢測(cè)DSP緩沖區(qū)是否處于不 飽和狀態(tài);如果檢測(cè)到當(dāng)前沒有視頻流數(shù)據(jù)緩存到該DSP緩沖區(qū),則可以確定當(dāng)前網(wǎng)絡(luò)阻 塞較嚴(yán)重,如果此時(shí)該DSP緩沖區(qū)中殘留部分視頻流數(shù)據(jù),則可以向該DSP緩沖區(qū)插入空白 幀,以達(dá)到將上述殘留視頻流數(shù)據(jù)盡快進(jìn)行解碼的目的。
[0083] 相應(yīng)于上面的方法實(shí)施例,本發(fā)明實(shí)施例還提供了一種視頻流解碼裝置。
[0084] 如圖4所示,一種視頻流解碼裝置,可以包括:
[0085] 第一檢測(cè)模塊401,用于檢測(cè)數(shù)字信號(hào)處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),其 中,所述DSP緩沖區(qū)用于緩存視頻幀數(shù)據(jù);
[0086] 空白幀填充模塊402,用于在所述第一檢測(cè)模塊401的檢測(cè)結(jié)果為是的情況下,向 DSP緩沖區(qū)中插入空白幀EOS,直至該DSP緩沖區(qū)達(dá)到飽和狀態(tài);
[0087] 解碼模塊403,用于對(duì)DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進(jìn)行解碼。
[0088] 可選的,在本發(fā)明一個(gè)實(shí)施方式中,所述第一檢測(cè)模塊401,可以用于實(shí)時(shí)檢測(cè) DSP緩沖區(qū)是否處于不飽和狀態(tài)。
[0089] 可選的,在本發(fā)明的另一個(gè)實(shí)施方式中,所述第一檢測(cè)模塊401,可以用于根據(jù)預(yù) 設(shè)的檢測(cè)周期,周期性地檢測(cè)DSP緩沖區(qū)是否處于不飽和狀態(tài)。
[0090] 可選的,在本發(fā)明的一個(gè)實(shí)施方式中,所述第一檢測(cè)模塊401,可以用于檢測(cè)DSP 緩沖區(qū)處于不飽和狀態(tài)的時(shí)長是否超過預(yù)設(shè)的閾值。
[0091] 可選的,在本發(fā)明的一個(gè)實(shí)施例中,所述第一檢測(cè)模塊401,可以用于檢測(cè)DSP緩 沖區(qū)中是否存在來自預(yù)先建立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),且未被視頻幀數(shù)據(jù)充
[0092] 在本發(fā)明的一個(gè)實(shí)施例中,所述推送模塊403,具體用于:
[0093] 對(duì)DSP緩沖區(qū)內(nèi)的攜帶有網(wǎng)絡(luò)標(biāo)識(shí)的視頻幀進(jìn)行解碼,所述攜帶有網(wǎng)絡(luò)標(biāo)識(shí)的視 頻幀為來源于預(yù)先建立的視頻流緩沖區(qū)的幀數(shù)據(jù)。
[0094] 可選的,在本發(fā)明的另一個(gè)實(shí)施例中,如圖5所示,該裝置還包括:
[0095] 第二檢測(cè)模塊400,用于檢測(cè)當(dāng)前是否有視頻流數(shù)據(jù)緩存到所述DSP緩沖區(qū),并在 檢測(cè)結(jié)果為否的情況下,觸發(fā)所述第一檢測(cè)模塊進(jìn)行工作,其中,所述視頻流數(shù)據(jù)為:預(yù)先 建立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),所述預(yù)先建立的視頻數(shù)據(jù)緩沖區(qū)用于緩存來源于 網(wǎng)絡(luò)服務(wù)器側(cè)的視頻幀數(shù)據(jù)。
[0096] 對(duì)于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān) 之處參見方法實(shí)施例的部分說明即可。
[0097] 為了描述的方便,描述以上裝置時(shí)以功能分為各種模塊分別描述。當(dāng)然,在實(shí)施本 發(fā)明時(shí)可以把各模塊的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。
[0098] 需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí) 體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存 在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語"包括"、"包含"或者其任何其他變體意在涵 蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要 素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備 所固有的要素。在沒有更多限制的情況下,由語句"包括一個(gè)……"限定的要素,并不排除 在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0099] 本說明書中的各個(gè)實(shí)施例均采用相關(guān)的方式描述,各個(gè)實(shí)施例之間相同相似的部 分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于裝置實(shí) 施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例 的部分說明即可。
[0100] 本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施方式中的全部或部分步驟是可 以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲(chǔ)于計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中, 這里所稱得的存儲(chǔ)介質(zhì),如:R0M/RAM、磁碟、光盤等。
[0101] 以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在 本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍
【權(quán)利要求】
1. 一種視頻流解碼方法,其特征在于,該方法包括: 檢測(cè)數(shù)字信號(hào)處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),其中,所述DSP緩沖區(qū)用于緩存 視頻幀數(shù)據(jù); 如果是,則向DSP緩沖區(qū)中插入空白幀EOS,直至該DSP緩沖區(qū)達(dá)到飽和狀態(tài); 對(duì)DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進(jìn)行解碼。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述檢測(cè)數(shù)字信號(hào)處理器DSP緩沖區(qū)是 否處于不飽和狀態(tài)之前,還包括: 檢測(cè)當(dāng)前是否有視頻流數(shù)據(jù)緩存到所述DSP緩沖區(qū),如果否,則執(zhí)行所述檢測(cè)數(shù)字信 號(hào)處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),其中,所述視頻流數(shù)據(jù)為:預(yù)先建立的視頻數(shù)據(jù) 緩沖區(qū)中的視頻幀數(shù)據(jù),所述預(yù)先建立的視頻數(shù)據(jù)緩沖區(qū)用于緩存來源于網(wǎng)絡(luò)服務(wù)器側(cè)的 視頻幀數(shù)據(jù)。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述檢測(cè)數(shù)字信號(hào)處理器DSP緩沖區(qū)是否 處于不飽和狀態(tài),包括: 實(shí)時(shí)檢測(cè)DSP緩沖區(qū)是否處于不飽和狀態(tài); 或 根據(jù)預(yù)設(shè)的檢測(cè)周期,周期性地檢測(cè)DSP緩沖區(qū)是否處于不飽和狀態(tài)。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述檢測(cè)數(shù)字信號(hào)處理器DSP緩沖區(qū)是否 處于不飽和狀態(tài),包括: 檢測(cè)DSP緩沖區(qū)處于不飽和狀態(tài)的時(shí)長是否超過預(yù)設(shè)的閾值。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述檢測(cè)數(shù)字信號(hào)處理器DSP緩沖區(qū)是否 處于不飽和狀態(tài),包括: 檢測(cè)DSP緩沖區(qū)中是否存在來自預(yù)先建立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),且未被 視頻幀數(shù)據(jù)充滿。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述對(duì)DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進(jìn)行解碼, 包括: 對(duì)DSP緩沖區(qū)內(nèi)的攜帶有網(wǎng)絡(luò)標(biāo)識(shí)的視頻幀進(jìn)行解碼,所述攜帶有網(wǎng)絡(luò)標(biāo)識(shí)的視頻幀 為來源于預(yù)先建立的視頻流緩沖區(qū)的幀數(shù)據(jù)。
7. -種視頻流解碼裝置,其特征在于,該裝置包括: 第一檢測(cè)模塊,用于檢測(cè)數(shù)字信號(hào)處理器DSP緩沖區(qū)是否處于不飽和狀態(tài),其中,所述 DSP緩沖區(qū)用于緩存視頻幀數(shù)據(jù); 空白幀填充模塊,用于在所述第一檢測(cè)模塊的檢測(cè)結(jié)果為是的情況下,向DSP緩沖區(qū) 中插入空白幀EOS,直至該DSP緩沖區(qū)達(dá)到飽和狀態(tài); 解碼模塊,用于對(duì)DSP緩沖區(qū)內(nèi)的幀數(shù)據(jù)進(jìn)行解碼。
8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,該裝置還包括: 第二檢測(cè)模塊,用于檢測(cè)當(dāng)前是否有視頻流數(shù)據(jù)緩存到所述DSP緩沖區(qū),并在檢測(cè)結(jié) 果為否的情況下,觸發(fā)所述第一檢測(cè)模塊進(jìn)行工作,其中,所述視頻流數(shù)據(jù)為:預(yù)先建立的 視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),所述預(yù)先建立的視頻數(shù)據(jù)緩沖區(qū)用于緩存來源于網(wǎng)絡(luò)服 務(wù)器側(cè)的視頻幀數(shù)據(jù)。
9. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第一檢測(cè)模塊,具體用于: 實(shí)時(shí)檢測(cè)DSP緩沖區(qū)是否處于不飽和狀態(tài); 或 根據(jù)預(yù)設(shè)的檢測(cè)周期,周期性地檢測(cè)DSP緩沖區(qū)是否處于不飽和狀態(tài)。
10. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第一檢測(cè)模塊,具體用于: 檢測(cè)DSP緩沖區(qū)處于不飽和狀態(tài)的時(shí)長是否超過預(yù)設(shè)的閾值。
11. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第一檢測(cè)模塊,具體用于: 檢測(cè)DSP緩沖區(qū)中是否存在來自預(yù)先建立的視頻數(shù)據(jù)緩沖區(qū)中的視頻幀數(shù)據(jù),且未被 視頻幀數(shù)據(jù)充滿。
12. 根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述解碼模塊,具體用于: 對(duì)DSP緩沖區(qū)內(nèi)的攜帶有網(wǎng)絡(luò)標(biāo)識(shí)的視頻幀進(jìn)行解碼,所述攜帶有網(wǎng)絡(luò)標(biāo)識(shí)的視頻幀 為來源于預(yù)先建立的視頻流緩沖區(qū)的幀數(shù)據(jù)。
【文檔編號(hào)】H04N21/433GK104113778SQ201410377484
【公開日】2014年10月22日 申請(qǐng)日期:2014年8月1日 優(yōu)先權(quán)日:2014年8月1日
【發(fā)明者】鄺銳強(qiáng) 申請(qǐng)人:廣州金山網(wǎng)絡(luò)科技有限公司