一種視頻幀丟幀方法及視頻發(fā)送裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種視頻幀丟幀方法及視頻發(fā)送裝置。
【背景技術(shù)】
[0002]隨著移動(dòng)互聯(lián)網(wǎng)的普及,IPCdP Camera,網(wǎng)絡(luò)攝像機(jī))視頻在手機(jī)等移動(dòng)終裝置上被點(diǎn)播的機(jī)率也越來(lái)越大。然而,受無(wú)線網(wǎng)絡(luò)的穩(wěn)定性和帶寬不足的影響,容易出現(xiàn)視頻畫面不清晰,甚至出現(xiàn)視頻畫面卡住的情況,視頻的播放不流暢。因此如何在網(wǎng)絡(luò)不穩(wěn)定、帶寬有限的無(wú)線網(wǎng)絡(luò)上進(jìn)行視頻的流暢播放,是一個(gè)迫切需要解決的問(wèn)題。
[0003]現(xiàn)有技術(shù)中,對(duì)待發(fā)送視頻進(jìn)行編碼,生成滿幀率碼流,當(dāng)網(wǎng)絡(luò)環(huán)境好時(shí),發(fā)送滿幀率碼流,當(dāng)網(wǎng)絡(luò)環(huán)境差時(shí),通過(guò)丟幀的方式快速降低視頻發(fā)送幀率,以適應(yīng)實(shí)際的網(wǎng)絡(luò)環(huán)境。具體的,當(dāng)網(wǎng)絡(luò)環(huán)境差造成緩沖區(qū)溢出時(shí),將緩沖區(qū)的最后一幀和下一個(gè)IDR幀之間的整段視頻幀全部丟掉。當(dāng)下一個(gè)IDR幀出現(xiàn)時(shí),進(jìn)行緩沖區(qū)溢出判斷,若緩沖區(qū)有空閑,則保留該IDR幀并發(fā)送后續(xù)幀,若緩沖區(qū)仍然為溢出狀態(tài),則丟棄該IDR幀直到再下一個(gè)IDR幀。這種丟幀方式是將一段連續(xù)的視頻幀集中丟棄,由于在一次丟幀中所丟棄視頻幀的數(shù)量大,導(dǎo)致畫面長(zhǎng)時(shí)間卡頓的情形,尤其在丟掉IDR幀后,畫面卡頓更加嚴(yán)重,導(dǎo)致用戶體驗(yàn)差。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的實(shí)施例提供一種視頻幀丟幀方法及視頻發(fā)送裝置,能夠減少丟幀數(shù)量,從而提高視頻播放的流暢度,改善用戶體驗(yàn)。
[0005]為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0006]第一方面,一種視頻幀丟幀方法,包括:
[0007]獲取待發(fā)送視頻的視頻幀序列;
[0008]根據(jù)預(yù)設(shè)標(biāo)準(zhǔn),建立所述視頻幀序列中各視頻幀之間的參考關(guān)系;所述參考關(guān)系包括:所述視頻幀序列中的第m幀引用第m-h幀為參考幀;所述視頻幀序列中的第η幀,被所述第η幀后的視頻幀中的至少兩個(gè)視頻幀引用為參考幀;其中,m、h、n均為自然數(shù),m大于I且m大于h,所述視頻幀序列中視頻幀的數(shù)量不小于n+2 ;
[0009]在所述視頻幀序列發(fā)送的過(guò)程中,檢測(cè)視頻發(fā)送緩沖區(qū)已緩存視頻幀的數(shù)據(jù)占用長(zhǎng)度;
[0010]當(dāng)所述數(shù)據(jù)占用長(zhǎng)度大于預(yù)設(shè)閾值時(shí),丟棄當(dāng)前待緩存的視頻幀,并丟棄在所述視頻幀序列中根據(jù)所述參考關(guān)系引用所述當(dāng)前待緩存的視頻幀為參考幀的所有視頻幀。
[0011]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述預(yù)設(shè)標(biāo)準(zhǔn)為對(duì)視頻播放流暢度的要求;
[0012]其中,所述參考關(guān)系中,所述視頻播放流暢度的要求越高,直接引用即時(shí)解碼刷新IDR幀為參考幀的視頻幀越多;所述IDR幀為所述視頻幀序列的首幀。
[0013]結(jié)合第一方面,在第二種可能的實(shí)現(xiàn)方式中,所述預(yù)設(shè)標(biāo)準(zhǔn)為所述視頻幀序列內(nèi)每個(gè)視頻幀的重要性;
[0014]其中,所述參考關(guān)系中,重要性相對(duì)較高的視頻幀被重要性相對(duì)較低的視頻幀直接引用為參考幀。
[0015]結(jié)合第一方面,在第三種可能的實(shí)現(xiàn)方式中,所述預(yù)設(shè)標(biāo)準(zhǔn)為網(wǎng)絡(luò)的基準(zhǔn)發(fā)送速率;
[0016]其中,所述網(wǎng)絡(luò)的基準(zhǔn)發(fā)送速率越高,所述參考關(guān)系中,直接引用即時(shí)解碼刷新IDR幀為參考幀的視頻幀越多;所述IDR幀為所述視頻幀序列的首幀。
[0017]結(jié)合第一方面至第一方面的第三種可能的實(shí)現(xiàn)方式中的任一種,在第四種可能的實(shí)現(xiàn)方式中,所述視頻幀序列中各視頻幀之間的參考關(guān)系具體包括:
[0018]當(dāng)所述視頻幀序列的首幀為即時(shí)解碼刷新IDR幀時(shí),所述IDR幀之后的每一個(gè)視頻幀均引用所述IDR幀為參考幀。
[0019]結(jié)合第一方面至第一方面的第四種可能的實(shí)現(xiàn)方式中的任一種,在第五種可能的實(shí)現(xiàn)方式中,所述視頻幀序列中每一個(gè)視頻幀都對(duì)應(yīng)有一個(gè)發(fā)送緩沖區(qū)的預(yù)設(shè)閾值。
[0020]結(jié)合第一方面至第一方面的第五種可能的實(shí)現(xiàn)方式中的任一種,在第六種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0021]當(dāng)所述數(shù)據(jù)占用長(zhǎng)度不大于預(yù)設(shè)閾值時(shí),將所述當(dāng)前待緩存的視頻幀存入所述發(fā)送緩沖區(qū)。
[0022]第二方面,一種視頻發(fā)送裝置,包括:
[0023]獲取單元,用于獲取待發(fā)送視頻的視頻幀序列;
[0024]編碼單元,用于根據(jù)預(yù)設(shè)標(biāo)準(zhǔn),建立所述獲取單元獲取的所述視頻幀序列中各視頻幀之間的參考關(guān)系;所述參考關(guān)系包括:所述視頻幀序列中的第m幀引用第m-h幀為參考幀;所述視頻幀序列中的第η幀,被所述第η幀后的視頻幀中的至少兩個(gè)視頻幀引用為參考幀;其中,m、h、n均為自然數(shù),m大于I且m大于h,所述視頻幀序列中視頻幀的數(shù)量不小于n+2 ;
[0025]檢測(cè)單元,用于在所述視頻幀序列發(fā)送的過(guò)程中,檢測(cè)視頻發(fā)送緩沖區(qū)已緩存視頻幀的數(shù)據(jù)占用長(zhǎng)度;
[0026]丟幀單元,用于當(dāng)所述檢測(cè)單元檢測(cè)到所述數(shù)據(jù)占用長(zhǎng)度大于預(yù)設(shè)閾值時(shí),丟棄當(dāng)前待緩存的視頻幀,并丟棄在所述視頻幀序列中根據(jù)所述參考關(guān)系引用所述當(dāng)前待緩存的視頻幀為參考幀的所有視頻幀。
[0027]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述預(yù)設(shè)標(biāo)準(zhǔn)為對(duì)視頻播放流暢度的要求;
[0028]所述編碼單元建立的所述視頻幀序列中各視頻幀之間的參考關(guān)系包括:所述視頻播放流暢度的要求越高,直接引用即時(shí)解碼刷新IDR幀為參考幀的視頻幀越多;所述IDR幀為所述視頻幀序列的首幀。
[0029]結(jié)合第二方面,在第二種可能的實(shí)現(xiàn)方式中,所述預(yù)設(shè)標(biāo)準(zhǔn)為所述視頻幀序列內(nèi)每個(gè)視頻幀的重要性;
[0030]所述編碼單元建立的所述視頻幀序列中各視頻幀之間的參考關(guān)系包括:重要性相對(duì)較高的視頻幀被重要性相對(duì)較低的視頻幀直接引用為參考幀。
[0031]結(jié)合第二方面,在第三種可能的實(shí)現(xiàn)方式中,所述預(yù)設(shè)標(biāo)準(zhǔn)為網(wǎng)絡(luò)的基準(zhǔn)發(fā)送速率;
[0032]所述編碼單元建立的所述視頻幀序列中各視頻幀之間的參考關(guān)系包括:所述網(wǎng)絡(luò)的基準(zhǔn)發(fā)送速率越高,直接引用即時(shí)解碼刷新IDR幀為參考幀的視頻幀越多。
[0033]結(jié)合第二方面至第二方面的第三種可能的實(shí)現(xiàn)方式中的任一種,在第四種可能的實(shí)現(xiàn)方式中,所述視頻幀序列中各視頻幀之間的參考關(guān)系具體包括:
[0034]當(dāng)所述視頻幀序列的首幀為即時(shí)解碼刷新IDR幀時(shí),所述IDR幀之后的每一個(gè)視頻幀均引用所述IDR幀為參考幀。
[0035]結(jié)合第二方面至第二方面的第四種可能的實(shí)現(xiàn)方式中的任一種,在第五種可能的實(shí)現(xiàn)方式中,所述視頻幀序列中每一個(gè)視頻幀都對(duì)應(yīng)有一個(gè)發(fā)送緩沖區(qū)的預(yù)設(shè)閾值。
[0036]結(jié)合第二方面至第二方面的第五種可能的實(shí)現(xiàn)方式中的任一種,在第六種可能的實(shí)現(xiàn)方式中,所述丟幀單元,還用于當(dāng)所述檢測(cè)單元檢測(cè)到所述數(shù)據(jù)占用長(zhǎng)度不大于預(yù)設(shè)閾值時(shí),將所述當(dāng)前待緩存的視頻幀存入所述發(fā)送緩沖區(qū)。
[0037]本發(fā)明的實(shí)施例所提供的視頻幀丟幀方法及視頻發(fā)送裝置,根據(jù)預(yù)設(shè)標(biāo)準(zhǔn)建立所述視頻幀序列中各視頻幀之間的參考關(guān)系,并進(jìn)一步確定是否丟幀。在所述視頻幀序列發(fā)送的過(guò)程中,在確定丟幀時(shí),丟棄當(dāng)前待緩存的視頻幀,并丟棄在視頻幀序列中根據(jù)參考關(guān)系引用當(dāng)前待緩存的視頻幀為參考幀的所有視頻幀。視頻幀序列中的第η幀,被第η幀后的視頻幀中的至少兩個(gè)視頻幀引用為參考幀,針對(duì)第η幀為參考幀的一個(gè)視頻幀,當(dāng)確定丟棄該視頻幀時(shí),其它以第η幀為參考幀的視頻幀仍舊可以保留,而無(wú)需丟幀直到出現(xiàn)IDR幀為止,從而減小了在一次丟幀中所丟棄視頻幀的數(shù)量,避免出現(xiàn)長(zhǎng)時(shí)間畫面卡頓的情況。同時(shí),在一次丟幀結(jié)束之后,如果網(wǎng)絡(luò)環(huán)境好轉(zhuǎn),對(duì)于保留的視頻幀則可以以較高的幀率發(fā)送,實(shí)現(xiàn)了按照網(wǎng)絡(luò)環(huán)境的變化降低或者升高視頻發(fā)送幀率的目的,從而減小了丟棄視頻幀的數(shù)量,提高了視頻播放的流暢度。
【附圖說(shuō)明】
[0038]為了更清楚地說(shuō)明本發(fā)明的實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0039]圖1為本發(fā)明的實(shí)施例所提供的一種視頻幀丟幀方法的流程示意圖;
[0040]圖2-1為本發(fā)明的實(shí)施例所提供的一種視頻幀之間參考關(guān)系的示意圖;
[0041]圖2-2為本發(fā)明的實(shí)施例所提供的一種視頻幀序列內(nèi)視頻幀之間參考關(guān)系的示意圖;
[0042]圖3為本發(fā)明的實(shí)施例所提供的一種視頻發(fā)送裝置的結(jié)構(gòu)示意圖;
[0043]圖4為本發(fā)明的實(shí)施例所提供的另一種視頻發(fā)送裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0044]下面將結(jié)合本發(fā)明的實(shí)施例中的附圖,對(duì)本發(fā)明的實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其