一種視頻退播方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明屬于多媒體技術(shù),提供了一種視頻退播方法及系統(tǒng),所述方法包括如下步驟:對視頻源創(chuàng)建以關(guān)鍵幀I幀為分組的待解碼視頻;建立環(huán)形緩沖區(qū),所述環(huán)形緩沖區(qū)以幀為結(jié)點;若所述環(huán)形緩沖區(qū)有可用結(jié)點,且可用結(jié)點數(shù)大于當(dāng)前所述待解碼視頻的I幀分組數(shù),則進(jìn)行解碼,并將解碼視頻放入環(huán)形緩沖區(qū);判斷若當(dāng)前時間點與待退播時間點的差值大于或等于當(dāng)前時間戳與待退播時間戳的差值,則可退播;否則結(jié)束退播;根據(jù)退播速率,在所述環(huán)形緩沖區(qū)選擇對應(yīng)的I幀進(jìn)行退播。通過對以I幀為分組的待解碼視頻進(jìn)行解碼,并放入環(huán)形緩沖區(qū),當(dāng)符合退播判斷條件時,根據(jù)退播速率在環(huán)形緩沖區(qū)內(nèi)選擇對應(yīng)的I幀進(jìn)行退播,使得退播過程流暢、快速。
【專利說明】一種視頻退播方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于多媒體技術(shù),尤其涉及一種視頻退播方法及系統(tǒng)。
【背景技術(shù)】
[0002]針對H264視頻格式的播放器通常都提供正常播放、多倍速播放、單幀播放、抓圖等功能。但對于退播放功能無法提供或?qū)崿F(xiàn)與順播放時流暢的效果,也無法滿足客戶對于退播的需求。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實施例的目的在于提供一種視頻退播方法及系統(tǒng),旨在解決現(xiàn)有技術(shù)中無法快速、順暢退播的問題。
[0004]本發(fā)明實施例提供了一種視頻退播方法,所述方法包括如下步驟:
[0005]對視頻源創(chuàng)建以關(guān)鍵幀I幀為分組的待解碼視頻;
[0006]建立環(huán)形緩沖區(qū),所述環(huán)形緩沖區(qū)以幀為結(jié)點;
[0007]若所述環(huán)形緩沖區(qū)有可用結(jié)點,且可用結(jié)點數(shù)大于當(dāng)前所述待解碼視頻的I幀分組數(shù),則進(jìn)行解碼,并將解碼視頻放入環(huán)形緩沖區(qū);
[0008]判斷若當(dāng)前時間點與待退播時間點的差值大于或等于當(dāng)前時間戳與待退播時間戳的差值,則可退播;否則結(jié)束退播;
[0009]根據(jù)退播速率,在所述環(huán)形緩沖區(qū)選擇對應(yīng)的I幀進(jìn)行退播。
[0010]本發(fā)明實施例又提供了一種視頻退播系統(tǒng),所述系統(tǒng)包括:
[0011]待解碼視頻創(chuàng)建單元,用于對視頻源創(chuàng)建以關(guān)鍵幀I幀為分組的待解碼視頻;
[0012]緩沖區(qū)建立單元,用于建立環(huán)形緩沖區(qū),所述環(huán)形緩沖區(qū)以幀為結(jié)點;
[0013]視頻解碼單元,用于當(dāng)所述環(huán)形緩沖區(qū)有可用結(jié)點,且可用結(jié)點數(shù)大于當(dāng)前所述待解碼視頻的I幀分組數(shù),則進(jìn)行解碼,并將解碼視頻放入環(huán)形緩沖區(qū);
[0014]退播判斷單元,用于判斷若當(dāng)前時間點與待退播時間點的差值大于或等于當(dāng)前時間戳與待退播時間戳的差值,則可退播;否則結(jié)束退播;
[0015]退播單元,用于根據(jù)退播速率,在所述環(huán)形緩沖區(qū)選擇對應(yīng)的I幀進(jìn)行退播。
[0016]本發(fā)明實施例所提供的一種視頻退播方法及系統(tǒng),通過對以I幀為分組的待解碼視頻進(jìn)行解碼,并放入環(huán)形緩沖區(qū),當(dāng)符合退播判斷條件時,根據(jù)退播速率在環(huán)形緩沖區(qū)內(nèi)選擇對應(yīng)的I幀進(jìn)行退播,使得退播過程流暢、快速。
【專利附圖】
【附圖說明】
[0017]圖1是本發(fā)明實施例提供的視頻退播方法的流程圖;
[0018]圖2是本發(fā)明實施例提供的視頻退播系統(tǒng)的原理圖。
【具體實施方式】[0019]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0020]本發(fā)明實施例提供了一種視頻退播方法,所述方法包括如下步驟:
[0021]對視頻源創(chuàng)建以關(guān)鍵幀I幀為分組的待解碼視頻;
[0022]建立環(huán)形緩沖區(qū),所述環(huán)形緩沖區(qū)以幀為結(jié)點;
[0023]若所述環(huán)形緩沖區(qū)有可用結(jié)點,且可用結(jié)點數(shù)大于當(dāng)前所述待解碼視頻的I幀分組數(shù),則進(jìn)行解碼,并將解碼視頻放入環(huán)形緩沖區(qū);
[0024]判斷若當(dāng)前時間點與待退播時間點的差值大于或等于當(dāng)前時間戳與待退播時間戳的差值,則可退播;否則結(jié)束退播;
[0025]根據(jù)退播速率,在所述環(huán)形緩沖區(qū)選擇對應(yīng)的I幀進(jìn)行退播。
[0026]本發(fā)明實施例又提供了一種視頻退播系統(tǒng),所述系統(tǒng)包括:
[0027]待解碼視頻創(chuàng)建單元,用于對視頻源創(chuàng)建以關(guān)鍵幀I幀為分組的待解碼視頻;
[0028]緩沖區(qū)建立單元,用于建立環(huán)形緩沖區(qū),所述環(huán)形緩沖區(qū)以幀為結(jié)點;
[0029]視頻解碼單元,用于當(dāng)所述環(huán)形緩沖區(qū)有可用結(jié)點,且可用結(jié)點數(shù)大于當(dāng)前所述待解碼視頻的I幀分組數(shù),則進(jìn)行解碼,并將解碼視頻放入環(huán)形緩沖區(qū);
[0030]退播判斷單元,用于判斷若當(dāng)前時間點與待退播時間點的差值大于或等于當(dāng)前時間戳與待退播時間戳的差值,則可退播;否則結(jié)束退播;
[0031]退播單元,用于根據(jù)退播速率,在所述環(huán)形緩沖區(qū)選擇對應(yīng)的I幀進(jìn)行退播。
[0032]圖1示出了本發(fā)明實施例提供的退播方法的流程圖,為了便于描述,僅示出了與本發(fā)明實施例相關(guān)的部分,本發(fā)明實施例提供的視頻退播方法包括:
[0033]在步驟SlOl中,對視頻源創(chuàng)建以關(guān)鍵幀I幀為分組的待解碼視頻。
[0034]在本實施例中,所述關(guān)鍵幀I幀可以理解為這一幀畫面的完整保留,解碼時只需要本幀數(shù)據(jù)就可以完成(因為包含完整畫面),另外,為了用戶在選擇小倍數(shù)進(jìn)行退播時,退播所呈現(xiàn)的畫面更加流暢,所述待解碼視頻中包括偏移幀P幀,所述偏移幀為包括當(dāng)前中貞與之前一巾貞的畫面差別數(shù)據(jù)的偏移巾貞。具體地,偏移巾貞P巾貞表不的是這一巾貞跟之前的一個關(guān)鍵幀I幀或P幀的差別,解碼時需要用之前緩存的畫面疊加上本幀定義的差別,生成最終畫面,P幀沒有完整畫面數(shù)據(jù),只有與前一幀的畫面差別的數(shù)據(jù)。
[0035]在步驟S102中,建立環(huán)形緩沖區(qū),所述環(huán)形緩沖區(qū)以幀為結(jié)點。
[0036]在本實施例中,所述環(huán)形緩沖區(qū)可以為雙級環(huán)形緩沖區(qū),具體地,建立以YUV幀為結(jié)點的第一環(huán)形緩沖區(qū),建立以I幀分組為結(jié)點的第二環(huán)形緩沖區(qū)。其中,第一環(huán)形緩沖區(qū)的環(huán)長可根據(jù)視頻制式進(jìn)行計算,例如:PLAY制式為25*2、NTSC制式為30*2。同時,作為一種優(yōu)選,每幀的長度可定義為視頻寬度*視頻高度*2/3。第二環(huán)形緩沖區(qū)的環(huán)長可根據(jù)經(jīng)驗值固定為3。
[0037]在步驟S103中,若所述環(huán)形緩沖區(qū)有可用結(jié)點,且可用結(jié)點數(shù)大于當(dāng)前所述待解碼視頻的I幀分組數(shù),則進(jìn)行解碼,并將解碼視頻放入環(huán)形緩沖區(qū)。
[0038]在步驟S104中,判斷若當(dāng)前時間點與待退播時間點的差值大于或等于當(dāng)前時間戳與待退播時間戳的差值,則可退播;否則結(jié)束退播。
[0039]在本實施例中,所述當(dāng)前時間點為當(dāng)前系統(tǒng)所播放的時間點,待退播時間點為用戶需要所需退播處的時間點,所述當(dāng)前時間戳為對應(yīng)所述當(dāng)前時間點的時間戳,所述待退播時間戳為對應(yīng)所述待退播時間點的時間戳。
[0040]在本實施例中,上述判斷條件為:當(dāng)前時間點一待退播時間點 > 當(dāng)前時間戳一待退播時間戳。
[0041]在步驟S105中,根據(jù)退播速率,在所述環(huán)形緩沖區(qū)選擇對應(yīng)的I幀進(jìn)行退播。
[0042]在本實施例中,所述根據(jù)退播速率,在所述環(huán)形緩沖區(qū)選擇對應(yīng)的I幀進(jìn)行退播具體包括如下步驟:
[0043]根據(jù)退播速率,得到退播差值,所述退播差值為當(dāng)前時間戳與待退播時間戳的差值乘以退播速率;
[0044]具體地,退播差值=(當(dāng)前時間戳一待退播時間戳)*退播速率。
[0045]若當(dāng)前時間點與待退播時間點的差值大于等于所述退播差值,則可選擇對應(yīng)的I幀進(jìn)行退播。
[0046]具體地,(當(dāng)前時間點一待退播時間點)≥(當(dāng)前時間戳一待退播時間戳)*退播速率。
[0047]在本實施例中,所述當(dāng)前時間點與待退播時間點的差值大于所述退播差值的數(shù)值達(dá)到預(yù)設(shè)閾值,則可選擇對應(yīng)的I幀及P幀進(jìn)行退播。具體地,若(當(dāng)前時間點一待退播時間點)一(當(dāng)前時間戳一待退播時間戳)*退播速率的值大于預(yù)設(shè)閾值,表示還有除了 I幀還有很多沒有播放,此時為了畫質(zhì)更加連貫,可在選擇I幀的同時,加入對應(yīng)的P幀一起進(jìn)行退播,實現(xiàn)更加流暢的畫質(zhì)。
[0048]另外,如果退播速率大于等于16倍時,為了更快的解碼,僅僅退播I幀,不需要讀取視頻源的P幀,也無需對P幀進(jìn)行解碼,其他與整個流程一致。
[0049]在本發(fā)明另一實施例中,圖2示出了本發(fā)明實施例提供的視頻退播系統(tǒng)的原理圖,為了便于描述,僅示出了與本發(fā)明實施例相關(guān)的部分,本發(fā)明實施例提供的視頻退播系統(tǒng)包括:待解碼視頻創(chuàng)建單元21、緩沖區(qū)建立單元22、視頻解碼單元23、退播判斷單元24和退播單元25。其中,
[0050]待解碼視頻創(chuàng)建單元21,用于對視頻源創(chuàng)建以關(guān)鍵幀I幀為分組的待解碼視頻。
[0051]在本實施例中,所述待解碼視頻創(chuàng)建單元還用于:所述待解碼視頻中包括偏移幀P幀,所述偏移幀為包括當(dāng)前幀與之前一幀的畫面差別數(shù)據(jù)的偏移幀。
[0052]所述關(guān)鍵幀I幀可以理解為這一幀畫面的完整保留,解碼時只需要本幀數(shù)據(jù)就可以完成(因為包含完整畫面),另外,為了用戶在選擇小倍數(shù)進(jìn)行退播時,退播所呈現(xiàn)的畫面更加流暢,所述待解碼視頻中包括偏移幀P幀,所述偏移幀為包括當(dāng)前幀與之前一幀的畫面差別數(shù)據(jù)的偏移幀。具體地,偏移幀P幀表示的是這一幀跟之前的一個關(guān)鍵幀I幀或P幀的差別,解碼時需要用之前緩存的畫面疊加上本幀定義的差別,生成最終畫面,P幀沒有完整畫面數(shù)據(jù),只有與前一幀的畫面差別的數(shù)據(jù)。
[0053]緩沖區(qū)建立單元22,用于建立環(huán)形緩沖區(qū),所述環(huán)形緩沖區(qū)以幀為結(jié)點。
[0054]在本實施例中,所述環(huán)形緩沖區(qū)包括:建立以YUV幀為結(jié)點的第一環(huán)形緩沖區(qū) '及建立以I幀分組為結(jié)點的第二環(huán)形緩沖區(qū)。
[0055]所述環(huán)形緩沖區(qū)可以為雙級環(huán)形緩沖區(qū),具體地,建立以YUV幀為結(jié)點的第一環(huán)形緩沖區(qū),建立以I幀分組為結(jié)點的第二環(huán)形緩沖區(qū)。其中,第一環(huán)形緩沖區(qū)的環(huán)長可根據(jù)視頻制式進(jìn)行計算,例如=PLAY制式為25*2、NTSC制式為30*2。同時,作為一種優(yōu)選,每幀的長度可定義為視頻寬度*視頻高度*2/3。第二環(huán)形緩沖區(qū)的環(huán)長可根據(jù)經(jīng)驗值固定為3。
[0056]視頻解碼單元23,用于當(dāng)所述環(huán)形緩沖區(qū)有可用結(jié)點,且可用結(jié)點數(shù)大于當(dāng)前所述待解碼視頻的I幀分組數(shù),則進(jìn)行解碼,并將解碼視頻放入環(huán)形緩沖區(qū)。
[0057]退播判斷單元24,用于判斷若當(dāng)前時間點與待退播時間點的差值大于或等于當(dāng)前時間戳與待退播時間戳的差值,則可退播;否則結(jié)束退播。
[0058]所述退播判斷單元具體用于:根據(jù)退播速率,得到退播差值,所述退播差值為當(dāng)前時間戳與待退播時間戳的差值乘以退播速率;若當(dāng)前時間點與待退播時間點的差值大于等于所述退播差值,則可選擇對應(yīng)的I幀進(jìn)行退播。
[0059]在本實施例中,所述當(dāng)前時間點為當(dāng)前系統(tǒng)所播放的時間點,待退播時間點為用戶需要所需退播處的時間點,所述當(dāng)前時間戳為對應(yīng)所述當(dāng)前時間點的時間戳,所述待退播時間戳為對應(yīng)所述待退播時間點的時間戳。
[0060]在本實施例中,上述判斷條件為:當(dāng)前時間點一待退播時間點 > 當(dāng)前時間戳一待退播時間戳。
[0061]退播單元25,用于根據(jù)退播速率,在所述環(huán)形緩沖區(qū)選擇對應(yīng)的I幀進(jìn)行退播。
[0062]所述退播判斷單元還用于:所述當(dāng)前時間點與待退播時間點的差值大于所述退播差值的數(shù)值達(dá)到預(yù)設(shè)閾值,則可選擇對應(yīng)的I幀及P幀進(jìn)行退播。
[0063]在本實施例中,所述當(dāng)前時間點與待退播時間點的差值大于所述退播差值的數(shù)值達(dá)到預(yù)設(shè)閾值,則可選擇對應(yīng)的I幀及P幀進(jìn)行退播。具體地,若(當(dāng)前時間點一待退播時間點)一(當(dāng)前時間戳一待退播時間戳)*退播速率的值大于預(yù)設(shè)閾值,表示還有除了 I幀還有很多沒有播放,此時為了畫質(zhì)更加連貫,可在選擇I幀的同時,加入對應(yīng)的P幀一起進(jìn)行退播,實現(xiàn)更加流暢的畫質(zhì)。
[0064]另外,如果退播速率大于等于16倍時,為了更快的解碼,僅僅退播I幀,不需要讀取視頻源的P幀,也無需對P幀進(jìn)行解碼,其他與整個流程一致。
[0065]以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下做出若干等同替代或明顯變型,而且性能或用途相同,都應(yīng)當(dāng)視為屬于本發(fā)明由所提交的權(quán)利要求書確定的專利保護(hù)范圍。
【權(quán)利要求】
1.一種視頻退播方法,其特征在于,所述方法包括如下步驟: 對視頻源創(chuàng)建以關(guān)鍵幀I幀為分組的待解碼視頻; 建立環(huán)形緩沖區(qū),所述環(huán)形緩沖區(qū)以幀為結(jié)點; 若所述環(huán)形緩沖區(qū)有可用結(jié)點,且可用結(jié)點數(shù)大于當(dāng)前所述待解碼視頻的I幀分組數(shù),則進(jìn)行解碼,并將解碼視頻放入環(huán)形緩沖區(qū); 判斷若當(dāng)前時間點與待退播時間點的差值大于或等于當(dāng)前時間戳與待退播時間戳的差值,則可退播;否則結(jié)束退播; 根據(jù)退播速率,在所述環(huán)形緩沖區(qū)選擇對應(yīng)的I幀進(jìn)行退播。
2.如權(quán)利要求1所述方法,其特征在于,所述對視頻源創(chuàng)建以關(guān)鍵幀I幀為分組的待解碼視頻,還包括如下步驟: 所述待解碼視頻中包括偏移幀P幀,所述偏移幀為包括當(dāng)前幀與之前一幀的畫面差別數(shù)據(jù)的偏移幀。
3.如權(quán)利要求1所述方法,其特征在于,所述建立環(huán)形緩沖區(qū)包括如下步驟: 建立以YUV幀為結(jié)點的第一環(huán)形緩沖區(qū); 建立以I幀分組為結(jié)點的第二環(huán)形緩沖區(qū)。
4.如權(quán)利要求1所述方法,其特征在于,所述根據(jù)退播速率,在所述環(huán)形緩沖區(qū)選擇對應(yīng)的I幀進(jìn)行退播的步驟,具體為: 根據(jù)退播速率,得到退播差值,所述退播差值為當(dāng)前時間戳與待退播時間戳的差值乘以退播速率; 若當(dāng)前時間點與待退播時間點的差值大于等于所述退播差值,則可選擇對應(yīng)的I幀進(jìn)行退播。
5.如權(quán)利要求1、2或4所述方法,其特征在于,所述當(dāng)前時間點與待退播時間點的差值大于所述退播差值的數(shù)值達(dá)到預(yù)設(shè)閾值,則可選擇對應(yīng)的I幀及P幀進(jìn)行退播。
6.一種視頻退播系統(tǒng),其特征在于,所述系統(tǒng)包括: 待解碼視頻創(chuàng)建單元,用于對視頻源創(chuàng)建以關(guān)鍵幀I幀為分組的待解碼視頻; 緩沖區(qū)建立單元,用于建立環(huán)形緩沖區(qū),所述環(huán)形緩沖區(qū)以幀為結(jié)點; 視頻解碼單元,用于當(dāng)所述環(huán)形緩沖區(qū)有可用結(jié)點,且可用結(jié)點數(shù)大于當(dāng)前所述待解碼視頻的I幀分組數(shù),則進(jìn)行解碼,并將解碼視頻放入環(huán)形緩沖區(qū); 退播判斷單元,用于判斷若當(dāng)前時間點與待退播時間點的差值大于或等于當(dāng)前時間戳與待退播時間戳的差值,則可退播;否則結(jié)束退播; 退播單元,用于根據(jù)退播速率,在所述環(huán)形緩沖區(qū)選擇對應(yīng)的I幀進(jìn)行退播。
7.如權(quán)利要求6所述系統(tǒng),其特征在于,所述待解碼視頻創(chuàng)建單元還用于: 所述待解碼視頻中包括偏移幀P幀,所述偏移幀為包括當(dāng)前幀與之前一幀的畫面差別數(shù)據(jù)的偏移幀。
8.如權(quán)利要求6所述系統(tǒng),其特征在于,所述環(huán)形緩沖區(qū)包括: 建立以YUV幀為結(jié)點的第一環(huán)形緩沖區(qū) '及 建立以I幀分組為結(jié)點的第二環(huán)形緩沖區(qū)。
9.如權(quán)利要求6所述系統(tǒng),其特征在于,所述退播判斷單元具體用于: 根據(jù)退播速率,得到退播差值,所述退播差值為當(dāng)前時間戳與待退播時間戳的差值乘以退播速率; 若當(dāng)前時間點與待退播時間點的差值大于等于所述退播差值,則可選擇對應(yīng)的I幀進(jìn)行退播。
10.如權(quán)利要求6、7或9所述系統(tǒng),其特征在于,所述退播判斷單元還用于: 所述當(dāng)前時間點與待退播時間點的差值大于所述退播差值的數(shù)值達(dá)到預(yù)設(shè)閾值,則可選擇對應(yīng)的I 幀及P幀進(jìn)行退播。
【文檔編號】H04N21/44GK103997694SQ201410240415
【公開日】2014年8月20日 申請日期:2014年5月30日 優(yōu)先權(quán)日:2014年5月30日
【發(fā)明者】陳文明, 莊少華, 賴長河 申請人:深圳市華寶電子科技有限公司