本發(fā)明涉及視頻編碼領(lǐng)域,特別涉及一種利用長(zhǎng)期參考幀的視頻編碼方法、電子設(shè)備及系統(tǒng)。
背景技術(shù):
在利用長(zhǎng)期參考幀進(jìn)行編碼和利用短期參考幀進(jìn)行分層編碼的視頻編碼過程中,由于分層編碼容易使得視頻幀所參考的短期參考幀并非是最近的,因而造成了碼率的浪費(fèi)。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述問題,本發(fā)明實(shí)施例提供了一種視頻編碼方法、電子設(shè)備及系統(tǒng)。
根據(jù)第一方面,本發(fā)明實(shí)施例提供了一種利用長(zhǎng)期參考幀的視頻編碼方法,所述方法包括:
獲取視頻幀;
將所述視頻幀緩存并標(biāo)記為待生效的長(zhǎng)期參考幀;
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀是否更靠近所述視頻幀;
如果是,則利用所述生效的長(zhǎng)期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù);
如果否,則利用所述分層編碼對(duì)應(yīng)的短期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù);
在所述編碼數(shù)據(jù)中設(shè)置標(biāo)示所述視頻幀為長(zhǎng)期參考幀的信息;
向解碼端發(fā)送所述編碼數(shù)據(jù);
接收來自所述解碼端的長(zhǎng)期參考幀反饋;以及
將所述長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀標(biāo)記為生效的長(zhǎng)期參考幀并清除之前的長(zhǎng)期參考幀。
結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀是否更靠近所述視頻幀包括:
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀與所述視頻幀之間的殘差是否更小。
結(jié)合第一方面,在第二種可能的實(shí)現(xiàn)方式中,判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀是否更靠近所述視頻幀包括:
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀的幀號(hào)是否更靠近所述視頻幀的幀號(hào)。
結(jié)合第一方面到第一方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述分層編碼包括1-3層編碼。
根據(jù)第二方面,本發(fā)明實(shí)施例提供了一種電子設(shè)備,所述電子設(shè)備包括:
獲取模塊,用于獲取視頻幀;
參考幀管理模塊,用于將所述視頻幀緩存并標(biāo)記為待生效的長(zhǎng)期參考幀;
判斷模塊,用于判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀是否更靠近所述視頻幀;
編碼模塊,用于如果所述判斷模塊判定是,則利用所述生效的長(zhǎng)期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù);
所述編碼模塊還用于如果所述判斷模塊判定否,則利用所述分層編碼對(duì)應(yīng)的短期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù);
標(biāo)示模塊,用于在所述編碼數(shù)據(jù)中設(shè)置標(biāo)示所述視頻幀為長(zhǎng)期參考幀的信息;
發(fā)送模塊,用于向其他電子設(shè)備發(fā)送所述編碼數(shù)據(jù);
接收模塊,用于接收來自所述其他電子設(shè)備的長(zhǎng)期參考幀反饋;以及
所述參考幀管理模塊還用于將所述長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀標(biāo)記為生效的長(zhǎng)期參考幀并清除之前的長(zhǎng)期參考幀。
結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述判斷模塊具體用于:
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀與所述視頻幀之間的殘差是否更小。
結(jié)合第二方面,在第二種可能的實(shí)現(xiàn)方式中,所述判斷模塊具體用于:
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀的幀號(hào)是否更靠近所述視頻幀的幀號(hào)。
結(jié)合第二方面到第二方面的第二種可能的實(shí)現(xiàn)方式中的任一實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述分層編碼包括1-3層編碼。
結(jié)合第三方面,本發(fā)明實(shí)施例提供了一種視頻編解碼系統(tǒng),所述視頻編解碼系統(tǒng)包括第一電子設(shè)備和第二電子設(shè)備,其中
所述第一電子設(shè)備包括:
獲取模塊,用于獲取視頻幀;
第一參考幀管理模塊,用于將所述視頻幀緩存并標(biāo)記為待生效的長(zhǎng)期參考幀;
第一判斷模塊,用于判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀是否更靠近所述視頻幀;
編碼模塊,用于如果所述判斷模塊判定是,則利用所述生效的長(zhǎng)期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù);
所述編碼模塊還用于如果所述判斷模塊判定否,則利用所述分層編碼對(duì)應(yīng)的短期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù);
標(biāo)示模塊,用于在所述編碼數(shù)據(jù)中設(shè)置標(biāo)示所述視頻幀為長(zhǎng)期參考幀的信息;
發(fā)送模塊,用于向所述第二電子設(shè)備發(fā)送所述編碼數(shù)據(jù);
第一接收模塊,用于接收來自所述第二電子設(shè)備的長(zhǎng)期參考幀反饋;以及
所述第一參考幀管理模塊還用于將所述長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀標(biāo)記為生效的長(zhǎng)期參考幀并清除之前的長(zhǎng)期參考幀;
所述第二電子設(shè)備包括:
第二接收模塊,用于接收所述編碼數(shù)據(jù);
解碼模塊,用于將所述編碼數(shù)據(jù)解碼,獲取視頻幀;
第二判斷模塊,用于判斷所述編碼數(shù)據(jù)中是否設(shè)置標(biāo)示所述視頻幀為長(zhǎng)期參考幀的信息并且所述解碼是否正確;
第二參考幀管理模塊,用于如果所述第二判斷模塊判定是,則將所述視頻幀添加到參考幀緩存中并標(biāo)記為長(zhǎng)期參考幀;
反饋模塊,用于在所述第二參考幀管理模塊將所述視頻幀添加到參考幀緩存中并標(biāo)記為長(zhǎng)期參考幀之后,向所述第一電子設(shè)備發(fā)送長(zhǎng)期參考幀反饋。
結(jié)合第三方面,在第一種可能的實(shí)現(xiàn)方式中,所述第一判斷模塊具體用于:
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀與所述視頻幀之間的殘差是否更小。
結(jié)合第三方面,在第二種可能的實(shí)現(xiàn)方式中,所述第一判斷模塊具體用于:
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀的幀號(hào)是否更靠近所述視頻幀的幀號(hào)。
結(jié)合第三方面到第三方面的第二種可能的實(shí)現(xiàn)方式中的任一實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述分層編碼包括1-3層編碼。
根據(jù)第四方面,提供了一種電子設(shè)備,該電子設(shè)備包括存儲(chǔ)器、發(fā)送/接收模塊以及與存儲(chǔ)器、發(fā)送/接收模塊連接的處理器。其中,存儲(chǔ)器存儲(chǔ)有一組程序代碼,處理器調(diào)用存儲(chǔ)器中存儲(chǔ)的程序代碼以執(zhí)行以下操作:
獲取視頻幀;
將所述視頻幀緩存并標(biāo)記為待生效的長(zhǎng)期參考幀;
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀是否更靠近所述視頻幀;
如果是,則利用所述生效的長(zhǎng)期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù);
如果否,則利用所述分層編碼對(duì)應(yīng)的短期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù);
在所述編碼數(shù)據(jù)中設(shè)置標(biāo)示所述視頻幀為長(zhǎng)期參考幀的信息;
向解碼端發(fā)送所述編碼數(shù)據(jù);
接收來自所述解碼端的長(zhǎng)期參考幀反饋;以及
將所述長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀標(biāo)記為生效的長(zhǎng)期參考幀并清除之前的長(zhǎng)期參考幀。
結(jié)合第四方面,在第一種可能的實(shí)現(xiàn)方式中,處理器調(diào)用存儲(chǔ)器中存儲(chǔ)的程序代碼以執(zhí)行以下操作:
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀與所述視頻幀之間的殘差是否更小。
結(jié)合第四方面,在第二種可能的實(shí)現(xiàn)方式中,處理器調(diào)用存儲(chǔ)器中存儲(chǔ)的程序代碼以執(zhí)行以下操作:
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀的幀號(hào)是否更靠近所述視頻幀的幀號(hào)。
結(jié)合第四方面,在第三種可能的實(shí)現(xiàn)方式中,所述分層編碼包括1-3層編碼。
本發(fā)明實(shí)施例提供一種利用長(zhǎng)期參考幀的視頻編碼方法、電子設(shè)備和系統(tǒng),通過將每個(gè)視頻幀緩存并標(biāo)記為長(zhǎng)期參考幀,在網(wǎng)絡(luò)狀況好到解碼端快速返回長(zhǎng)期參考幀反饋時(shí),通過在反饋的長(zhǎng)期參考幀比分層編碼的短期參考幀更靠近視頻幀時(shí)利用該長(zhǎng)期參考幀來編碼視頻幀,可以有效提高碼率,避免由于分層編碼帶來的碼率浪費(fèi)。通過判斷長(zhǎng)期參考幀與分層編碼對(duì)應(yīng)的短期參考幀分別 跟視頻幀的殘差大小,可以更準(zhǔn)確地確定哪個(gè)參考幀更靠近視頻幀。通過在接收來自解碼端的長(zhǎng)期參考幀反饋后將對(duì)應(yīng)的長(zhǎng)期參考幀標(biāo)記為有效,使得只有反饋的長(zhǎng)期參考幀才能用于編碼,保證了解碼端對(duì)利用長(zhǎng)期參考幀進(jìn)行編碼的視頻幀的正確解碼。通過在接收來自解碼端的長(zhǎng)期參考幀反饋后清除之前的長(zhǎng)期參考幀,可以避免參考幀緩存變滿。通過閱讀以下描述,本領(lǐng)域普通技術(shù)人員還能夠想到其他優(yōu)點(diǎn)和益處。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例提供的一種利用長(zhǎng)期參考幀的視頻編碼方法流程圖;
圖2是本發(fā)明實(shí)施例提供的一種利用長(zhǎng)期參考幀的視頻編碼方法流程圖;
圖3是本發(fā)明實(shí)施例提供的一種分層編碼方案示意圖;
圖4是本發(fā)明實(shí)施例提供的一種利用長(zhǎng)期參考幀的視頻編碼方法流程圖;
圖5是本發(fā)明實(shí)施例提供的一種電子設(shè)備結(jié)構(gòu)示意圖;
圖6是本發(fā)明實(shí)施例提供的一種視頻編解碼系統(tǒng)結(jié)構(gòu)示意圖;
圖7是本發(fā)明實(shí)施例提供的一種電子設(shè)備結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(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ù)的范圍。
本發(fā)明實(shí)施例提供了一種利用長(zhǎng)期參考幀的視頻編解碼方法,該方法可以應(yīng)用于即時(shí)視頻通信或視頻流播放等場(chǎng)景,本發(fā)明實(shí)施例對(duì)場(chǎng)景不加以限定。用已經(jīng)傳送成功的長(zhǎng)期參考幀代替idr幀可以更好地壓縮數(shù)據(jù),相同碼率畫質(zhì)會(huì)更好,同時(shí)避免idr幀數(shù)據(jù)過大而容易丟包和卡頓的問題。在例如丟包嚴(yán)重時(shí),用已經(jīng)傳送成功的長(zhǎng)期參考幀來做參考,避免由于前面幀丟包不能正常解碼而影響后續(xù)幀解碼的問題。本發(fā)明實(shí)施例可以應(yīng)用于例如h.264的協(xié)議。但是,本領(lǐng)域普通技術(shù)人員能夠理解,本發(fā)明實(shí)施例還可以應(yīng)用于其他協(xié)議。對(duì)本發(fā)明實(shí)施例的應(yīng)用范圍不作具體限制。
實(shí)施例一
本發(fā)明實(shí)施例提供了一種利用長(zhǎng)期參考幀的視頻編碼方法,參照?qǐng)D1所示,該方法包括:
101、獲取視頻幀。
具體的,獲取視頻幀包括通過攝像頭獲取視頻幀??蛇x的,獲取視頻幀包括獲取來自其他設(shè)備的視頻幀或獲取存儲(chǔ)的視頻幀。本發(fā)明實(shí)施例對(duì)此不加以限定。
102、將所述視頻幀緩存并標(biāo)記為待生效的長(zhǎng)期參考幀。
具體的,該步驟包括將所述視頻幀添加到參考幀緩存中的長(zhǎng)期參考幀緩存區(qū)并且將該長(zhǎng)期參考幀對(duì)應(yīng)的指示符設(shè)置為待生效。
103、判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀是否更靠近所述視頻幀;如果是,則執(zhí)行步驟104,如果否,則執(zhí)行步驟105。
可選的,該步驟包括:
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀與所述視頻幀之間的殘差是否更小。
可選的,該步驟包括:
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀的幀號(hào)是否更靠近所述視頻幀的幀號(hào)。
可選的,分層編碼包括1-3層編碼。
104、利用所述生效的長(zhǎng)期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù)。
105、利用所述分層編碼對(duì)應(yīng)的短期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù)。
106、在所述編碼數(shù)據(jù)中設(shè)置標(biāo)示所述視頻幀為長(zhǎng)期參考幀的信息。
具體的,標(biāo)示所述視頻幀為長(zhǎng)期參考幀的信息是編碼數(shù)據(jù)中的1比特信息,例如二進(jìn)制的1。
107、向解碼端發(fā)送所述編碼數(shù)據(jù)。
108、接收來自所述解碼端的長(zhǎng)期參考幀反饋。
具體的,來自所述解碼端的長(zhǎng)期參考幀反饋包括長(zhǎng)期參考幀的幀號(hào)。
109、將所述長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀標(biāo)記為生效的長(zhǎng)期參考幀并清除之前的長(zhǎng)期參考幀。
具體的,將所述長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀標(biāo)記為生效的長(zhǎng)期參考幀包括:
獲取長(zhǎng)期參考幀反饋中包括的幀號(hào);
確定該幀號(hào)在參考幀緩存中對(duì)應(yīng)的長(zhǎng)期參考幀;以及
將該對(duì)應(yīng)的長(zhǎng)期參考幀標(biāo)記為生效。
具體的,清除之前的長(zhǎng)期參考幀包括清除長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀之前的所有待生效和生效的長(zhǎng)期參考幀。
本發(fā)明實(shí)施例提供了一種利用長(zhǎng)期參考幀的視頻編碼方法。通過將每個(gè)視頻幀緩存并標(biāo)記為長(zhǎng)期參考幀,在網(wǎng)絡(luò)狀況好到解碼端快速返回長(zhǎng)期參考幀反饋時(shí),通過在反饋的長(zhǎng)期參考幀比分層編碼的短期參考幀更靠近視頻幀時(shí)利用該長(zhǎng)期參考幀來編碼視頻幀,可以有效提高碼率,避免由于分層編碼帶來的碼率浪費(fèi)。通過判斷長(zhǎng)期參考幀與分層編碼對(duì)應(yīng)的短期參考幀分別跟視頻幀的殘差大小,可以更準(zhǔn)確地確定哪個(gè)參考幀更靠近視頻幀。通過在接收來自解碼端的長(zhǎng)期參考幀反饋后將對(duì)應(yīng)的長(zhǎng)期參考幀標(biāo)記為有效,使得只有反饋的長(zhǎng)期參 考幀才能用于編碼,保證了解碼端對(duì)利用長(zhǎng)期參考幀進(jìn)行編碼的視頻幀的正確解碼。通過在接收來自解碼端的長(zhǎng)期參考幀反饋后清除之前的長(zhǎng)期參考幀,可以避免參考幀緩存變滿。
實(shí)施例二
本發(fā)明實(shí)施例提供了一種利用長(zhǎng)期參考幀的視頻編碼方法,參照?qǐng)D2所示,該方法包括:
201、獲取視頻幀。
具體的,獲取視頻幀包括通過攝像頭獲取視頻幀??蛇x的,獲取視頻幀包括獲取來自其他設(shè)備的視頻幀或獲取存儲(chǔ)的視頻幀。本發(fā)明實(shí)施例對(duì)此不加以限定。
202、將所述視頻幀緩存并標(biāo)記為待生效的長(zhǎng)期參考幀。
具體的,該步驟包括將所述視頻幀添加到參考幀緩存中的長(zhǎng)期參考幀緩存區(qū)并且將該長(zhǎng)期參考幀對(duì)應(yīng)的指示符設(shè)置為待生效。當(dāng)然本發(fā)明實(shí)施例對(duì)將視頻幀緩存并標(biāo)記為待生效的長(zhǎng)期參考幀的具體方式不加以限定。
203、判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀與所述視頻幀之間的殘差是否更??;如果是,則執(zhí)行步驟204,如果否,則執(zhí)行步驟205。
可選的,分層編碼包括1-3層編碼。例如圖3a所示,1層編碼為:每一個(gè)視頻幀均參考前一視頻幀進(jìn)行編碼,其中圓圈代表視頻幀,數(shù)字代表幀號(hào),箭頭表示參考,下面類似。例如圖3b所示,2層編碼為:例如第1幀為第0層視頻幀,則第2幀為第1層視頻幀,并且第2幀參考第1幀進(jìn)行編碼,第3幀為第0層視頻幀,并且參考第1幀進(jìn)行編碼,第4幀為第1層視頻幀,并且參考第3幀進(jìn)行編碼,第5幀為第0層視頻幀,并且參考第3幀進(jìn)行編碼,以此類推。例如圖3c所示,3層編碼為:第1幀為第0層視頻幀,第2幀為第2層視頻幀,并且第2幀參考第1幀進(jìn)行編碼,第3幀為第1層視頻幀,并且參考第1幀進(jìn)行編碼,第4幀為第2層視頻幀,并且參考第3幀進(jìn)行編碼,第5幀為第0 層視頻幀,并且參考第1幀進(jìn)行編碼,后面以此類推。更多層編碼可以參考1-3層編碼進(jìn)行類推。本發(fā)明實(shí)施例對(duì)分層編碼的具體層數(shù)不加以限定。
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀與所述視頻幀之間的殘差是否更小具體可以包括:
根據(jù)預(yù)設(shè)分層編碼規(guī)則,獲取視頻幀對(duì)應(yīng)的短期參考幀;
計(jì)算視頻幀和對(duì)應(yīng)的短期參考幀之間的殘差,稱為第一殘差;
獲取生效的長(zhǎng)期參考幀;
計(jì)算視頻幀與該生效的長(zhǎng)期參考幀之間的殘差,稱為第二殘差;
比較所述第一殘差和所述第二殘差;
如果所述第二殘差小于所述第一殘差,則判定是;
否則,判定否。
具體的,根據(jù)預(yù)設(shè)分層編碼規(guī)則,獲取視頻幀對(duì)應(yīng)的短期參考幀包括:
根據(jù)預(yù)設(shè)分層編碼規(guī)則,確定視頻幀對(duì)應(yīng)的短期參考幀的幀號(hào);以及
根據(jù)該對(duì)應(yīng)的短期參考幀的幀號(hào),從參考幀緩存中的短期參考幀區(qū)獲取對(duì)應(yīng)的短期參考幀。
要說明的是,“第一”和“第二”僅是為了區(qū)別目的,而不是為了限定順序,獲取短期參考幀并計(jì)算第一殘差和獲取長(zhǎng)期參考幀并計(jì)算第二殘差的順序可以是任意的,例如可以先獲取短期參考幀并計(jì)算第一殘差,再獲取長(zhǎng)期參考幀并計(jì)算第二殘差,也可以先獲取長(zhǎng)期參考幀并計(jì)算第二殘差,再計(jì)算獲取短期參考幀并計(jì)算第一殘差,或者可以并行獲取短期參考幀并計(jì)算第一殘差和獲取長(zhǎng)期參考幀并計(jì)算第二殘差,本發(fā)明實(shí)施例對(duì)此不加以限定。
204、利用所述生效的長(zhǎng)期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù)。
該步驟可包括計(jì)算視頻幀與生效的長(zhǎng)期參考幀之間的殘差,對(duì)殘差進(jìn)行變換和量化,并對(duì)經(jīng)過變換和量化之后的結(jié)果進(jìn)行熵編碼,生成編碼數(shù)據(jù)。在計(jì)算視頻幀與生效的長(zhǎng)期參考幀之間的殘差的過程中可包括運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償。當(dāng)然,本發(fā)明實(shí)施例對(duì)編碼的具體過程不加以限定。
205、利用所述分層編碼對(duì)應(yīng)的短期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù)。
該步驟可包括計(jì)算視頻幀與分層編碼對(duì)應(yīng)的短期參考幀之間的殘差,對(duì)殘差進(jìn)行變換和量化,并對(duì)經(jīng)過變換和量化之后的結(jié)果進(jìn)行熵編碼,生成編碼數(shù)據(jù)。在計(jì)算視頻幀與分層編碼對(duì)應(yīng)的短期參考幀之間的殘差的過程中可包括運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償。當(dāng)然,本發(fā)明實(shí)施例對(duì)編碼的具體過程不加以限定。
206、在所述編碼數(shù)據(jù)中設(shè)置標(biāo)示所述視頻幀為長(zhǎng)期參考幀的信息。
具體的,標(biāo)示所述視頻幀為長(zhǎng)期參考幀的信息是編碼數(shù)據(jù)中的1比特信息,例如二進(jìn)制的1。當(dāng)然本發(fā)明實(shí)施例對(duì)在編碼數(shù)據(jù)中設(shè)置標(biāo)示視頻幀為長(zhǎng)期參考幀的信息的具體方式不加以限定。
207、向解碼端發(fā)送所述編碼數(shù)據(jù)。
本發(fā)明實(shí)施例對(duì)具體的發(fā)送過程不加以限定。
208、接收來自所述解碼端的長(zhǎng)期參考幀反饋。
具體的,來自所述解碼端的長(zhǎng)期參考幀反饋包括長(zhǎng)期參考幀的幀號(hào)。
209、將所述長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀標(biāo)記為生效的長(zhǎng)期參考幀并清除之前的長(zhǎng)期參考幀。
具體的,將所述長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀標(biāo)記為生效的長(zhǎng)期參考幀包括:
獲取長(zhǎng)期參考幀反饋中包括的幀號(hào);
確定該幀號(hào)在參考幀緩存中對(duì)應(yīng)的長(zhǎng)期參考幀;以及
將該對(duì)應(yīng)的長(zhǎng)期參考幀標(biāo)記為生效。
具體的,將該對(duì)應(yīng)的長(zhǎng)期參考幀標(biāo)記為生效包括將該對(duì)應(yīng)的長(zhǎng)期參考幀對(duì)應(yīng)的指示符標(biāo)記為生效。
具體的,清除之前的長(zhǎng)期參考幀包括清除長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀之前的所有待生效和生效的長(zhǎng)期參考幀。
本發(fā)明實(shí)施例提供了一種利用長(zhǎng)期參考幀的視頻編碼方法。通過將每個(gè)視 頻幀緩存并標(biāo)記為長(zhǎng)期參考幀,在網(wǎng)絡(luò)狀況好到解碼端快速返回長(zhǎng)期參考幀反饋時(shí),通過在反饋的長(zhǎng)期參考幀比分層編碼的短期參考幀更靠近視頻幀時(shí)利用該長(zhǎng)期參考幀來編碼視頻幀,可以有效提高碼率,避免由于分層編碼帶來的碼率浪費(fèi)。通過判斷長(zhǎng)期參考幀與分層編碼對(duì)應(yīng)的短期參考幀分別跟視頻幀的殘差大小,可以更準(zhǔn)確地確定哪個(gè)參考幀更靠近視頻幀。通過判斷長(zhǎng)期參考幀與分層編碼對(duì)應(yīng)的短期參考幀中哪個(gè)的幀號(hào)更靠近視頻幀,可以更簡(jiǎn)單快速地確定哪個(gè)參考幀更靠近視頻幀,提高效率。通過在接收來自解碼端的長(zhǎng)期參考幀反饋后將對(duì)應(yīng)的長(zhǎng)期參考幀標(biāo)記為有效,使得只有反饋的長(zhǎng)期參考幀才能用于編碼,保證了解碼端對(duì)利用長(zhǎng)期參考幀進(jìn)行編碼的視頻幀的正確解碼。通過在接收來自解碼端的長(zhǎng)期參考幀反饋后清除之前的長(zhǎng)期參考幀,可以避免參考幀緩存變滿。
實(shí)施例三
本發(fā)明實(shí)施例提供了一種利用長(zhǎng)期參考幀的視頻編碼方法,參照?qǐng)D4所示,該方法包括:
401、獲取視頻幀。
具體的,獲取視頻幀包括通過攝像頭獲取視頻幀??蛇x的,獲取視頻幀包括獲取來自其他設(shè)備的視頻幀或獲取存儲(chǔ)的視頻幀。本發(fā)明實(shí)施例對(duì)此不加以限定。
402、將所述視頻幀緩存并標(biāo)記為待生效的長(zhǎng)期參考幀。
具體的,該步驟包括將所述視頻幀添加到參考幀緩存中的長(zhǎng)期參考幀緩存區(qū)并且將該長(zhǎng)期參考幀對(duì)應(yīng)的指示符設(shè)置為待生效。
403、判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀的幀號(hào)是否更靠近所述視頻幀的幀號(hào);如果是,則執(zhí)行步驟404,如果否,則執(zhí)行步驟405。
可選的,分層編碼包括1-3層編碼。分層編碼的方案可以參照?qǐng)D3和步驟 203的相關(guān)描述,在此不再贅述。
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀的幀號(hào)是否更靠近所述視頻幀的幀號(hào)具體包括:
根據(jù)預(yù)設(shè)分層編碼規(guī)則,獲取視頻幀對(duì)應(yīng)的短期參考幀的幀號(hào),稱為第一幀號(hào);
確定生效的長(zhǎng)期參考幀的幀號(hào),稱為第二幀號(hào);
比較所述第一幀號(hào)和所述第二幀號(hào);
如果所述第二幀號(hào)小于所述第一幀號(hào),則判定是;
否則,判定否。
要說明的是,“第一”和“第二”僅是為了區(qū)別目的,而不是為了限定順序,確定第一幀號(hào)和第二幀號(hào)的順序可以是任意的,例如可以先確定第一幀號(hào),再確定第二幀號(hào),也可以先確定第二幀號(hào),再確定第一幀號(hào),或者可以并行確定第一幀號(hào)和第二幀號(hào),本發(fā)明實(shí)施例對(duì)此不加以限定。
404、利用所述生效的長(zhǎng)期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù)。
該步驟與步驟204相同,不再贅述
405、利用所述分層編碼對(duì)應(yīng)的短期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù)。
該步驟與步驟205相同,不再贅述。
406、在所述編碼數(shù)據(jù)中設(shè)置標(biāo)示所述視頻幀為長(zhǎng)期參考幀的信息。
具體的,標(biāo)示所述視頻幀為長(zhǎng)期參考幀的信息是編碼數(shù)據(jù)中的1比特信息,例如二進(jìn)制的1。
407、向解碼端發(fā)送所述編碼數(shù)據(jù)。
本發(fā)明實(shí)施例對(duì)發(fā)送編碼數(shù)據(jù)的具體形式不加以限定。
408、接收來自所述解碼端的長(zhǎng)期參考幀反饋。
具體的,來自所述解碼端的長(zhǎng)期參考幀反饋包括長(zhǎng)期參考幀的幀號(hào)。
409、將所述長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀標(biāo)記為生效的長(zhǎng)期 參考幀并清除之前的長(zhǎng)期參考幀。
具體的,將所述長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀標(biāo)記為生效的長(zhǎng)期參考幀包括:
獲取長(zhǎng)期參考幀反饋中包括的幀號(hào);
確定該幀號(hào)在參考幀緩存中對(duì)應(yīng)的長(zhǎng)期參考幀;以及
將該對(duì)應(yīng)的長(zhǎng)期參考幀標(biāo)記為生效。
具體的,將該對(duì)應(yīng)的長(zhǎng)期參考幀標(biāo)記為生效包括將該對(duì)應(yīng)的長(zhǎng)期參考幀對(duì)應(yīng)的指示符標(biāo)記為生效。
具體的,清除之前的長(zhǎng)期參考幀包括清除長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀之前的所有待生效和生效的長(zhǎng)期參考幀。
本發(fā)明實(shí)施例提供了一種利用長(zhǎng)期參考幀的視頻編碼方法。通過將每個(gè)視頻幀緩存并標(biāo)記為長(zhǎng)期參考幀,在網(wǎng)絡(luò)狀況好到解碼端快速返回長(zhǎng)期參考幀反饋時(shí),通過在反饋的長(zhǎng)期參考幀比分層編碼的短期參考幀更靠近視頻幀時(shí)利用該長(zhǎng)期參考幀來編碼視頻幀,可以有效提高碼率,避免由于分層編碼帶來的碼率浪費(fèi)。通過判斷長(zhǎng)期參考幀與分層編碼對(duì)應(yīng)的短期參考幀中哪個(gè)的幀號(hào)更靠近視頻幀,可以更簡(jiǎn)單快速地確定哪個(gè)參考幀更靠近視頻幀,提高效率。通過在接收來自解碼端的長(zhǎng)期參考幀反饋后將對(duì)應(yīng)的長(zhǎng)期參考幀標(biāo)記為有效,使得只有反饋的長(zhǎng)期參考幀才能用于編碼,保證了解碼端對(duì)利用長(zhǎng)期參考幀進(jìn)行編碼的視頻幀的正確解碼。通過在接收來自解碼端的長(zhǎng)期參考幀反饋后清除之前的長(zhǎng)期參考幀,可以避免參考幀緩存變滿。
實(shí)施例四
本發(fā)明實(shí)施例提供了一種電子設(shè)備,參照?qǐng)D5,該電子設(shè)備包括:
獲取模塊501,用于獲取視頻幀;
參考幀管理模塊502,用于將所述視頻幀緩存并標(biāo)記為待生效的長(zhǎng)期參考幀;
判斷模塊503,用于判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀是否更靠近所述視頻幀;
編碼模塊504,用于如果所述判斷模塊判定是,則利用所述生效的長(zhǎng)期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù);
所述編碼模塊504還用于如果所述判斷模塊判定否,則利用所述分層編碼對(duì)應(yīng)的短期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù);
標(biāo)示模塊505,用于在所述編碼數(shù)據(jù)中設(shè)置標(biāo)示所述視頻幀為長(zhǎng)期參考幀的信息;
發(fā)送模塊506,用于向其他電子設(shè)備發(fā)送所述編碼數(shù)據(jù);
接收模塊507,用于接收來自所述其他電子設(shè)備的長(zhǎng)期參考幀反饋;以及
所述參考幀管理模塊502還用于將所述長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀標(biāo)記為生效的長(zhǎng)期參考幀并清除之前的長(zhǎng)期參考幀。
可選的,所述判斷模塊503具體用于判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀與所述視頻幀之間的殘差是否更小。
具體的,所述判斷模塊503用于:根據(jù)預(yù)設(shè)分層編碼規(guī)則,獲取視頻幀對(duì)應(yīng)的短期參考幀;
計(jì)算視頻幀和分層編碼對(duì)應(yīng)的短期參考幀之間的殘差,稱為第一殘差;
獲取生效的長(zhǎng)期參考幀;
計(jì)算視頻幀與該生效的長(zhǎng)期參考幀之間的殘差,稱為第二殘差;
比較所述第一殘差和所述第二殘差;
如果所述第二殘差小于所述第一殘差,則判定是;
否則,判定否。
具體的,根據(jù)預(yù)設(shè)分層編碼規(guī)則,獲取視頻幀對(duì)應(yīng)的短期參考幀包括:
根據(jù)預(yù)設(shè)分層編碼規(guī)則,確定視頻幀對(duì)應(yīng)的短期參考幀的幀號(hào);以及
根據(jù)該對(duì)應(yīng)的短期參考幀的幀號(hào),從參考幀緩存中的短期參考幀區(qū)獲取對(duì)應(yīng)的短期參考幀。
可選的,所述判斷模塊503具體用于判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀的幀號(hào)是否更靠近所述視頻幀的幀號(hào)。
具體的,所述判斷模塊503用于:
根據(jù)預(yù)設(shè)分層編碼規(guī)則,獲取視頻幀對(duì)應(yīng)的短期參考幀的幀號(hào),稱為第一幀號(hào);
確定生效的長(zhǎng)期參考幀的幀號(hào),稱為第二幀號(hào);
比較所述第一幀號(hào)和所述第二幀號(hào);
如果所述第二幀號(hào)小于所述第一幀號(hào),則判定是;
否則,判定否。
可選的,所述分層編碼包括1-3層編碼。
本發(fā)明實(shí)施例提供了一種電子設(shè)備。通過將每個(gè)視頻幀緩存并標(biāo)記為長(zhǎng)期參考幀,在網(wǎng)絡(luò)狀況好到解碼端快速返回長(zhǎng)期參考幀反饋時(shí),通過在反饋的長(zhǎng)期參考幀比分層編碼的短期參考幀更靠近視頻幀時(shí)利用該長(zhǎng)期參考幀來編碼視頻幀,可以有效提高碼率,避免由于分層編碼帶來的碼率浪費(fèi)。通過判斷長(zhǎng)期參考幀與分層編碼對(duì)應(yīng)的短期參考幀分別跟視頻幀的殘差大小,可以更準(zhǔn)確地確定哪個(gè)參考幀更靠近視頻幀。通過判斷長(zhǎng)期參考幀與分層編碼對(duì)應(yīng)的短期參考幀中哪個(gè)的幀號(hào)更靠近視頻幀,可以更簡(jiǎn)單快速地確定哪個(gè)參考幀更靠近視頻幀,提高效率。通過在接收來自解碼端的長(zhǎng)期參考幀反饋后將對(duì)應(yīng)的長(zhǎng)期參考幀標(biāo)記為有效,使得只有反饋的長(zhǎng)期參考幀才能用于編碼,保證了解碼端對(duì)利用長(zhǎng)期參考幀進(jìn)行編碼的視頻幀的正確解碼。通過在接收來自解碼端的長(zhǎng)期參考幀反饋后清除之前的長(zhǎng)期參考幀,可以避免參考幀緩存變滿。
實(shí)施例五
本發(fā)明實(shí)施例提供了一種視頻編解碼系統(tǒng),參照?qǐng)D6,該視頻編解碼系統(tǒng)包括第一電子設(shè)備61和第二電子設(shè)備62,其中
所述第一電子設(shè)備61包括:
獲取模塊611,用于獲取視頻幀;
第一參考幀管理模塊612,用于將所述視頻幀緩存并標(biāo)記為待生效的長(zhǎng)期參考幀;
第一判斷模塊613,用于判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀是否更靠近所述視頻幀;
編碼模塊614,用于如果所述判斷模塊判定是,則利用所述生效的長(zhǎng)期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù);
所述編碼模塊614還用于如果所述判斷模塊判定否,則利用所述分層編碼對(duì)應(yīng)的短期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù);
標(biāo)示模塊615,用于在所述編碼數(shù)據(jù)中設(shè)置標(biāo)示所述視頻幀為長(zhǎng)期參考幀的信息;
發(fā)送模塊616,用于向所述第二電子設(shè)備發(fā)送所述編碼數(shù)據(jù);
第一接收模塊617,用于接收來自所述第二電子設(shè)備的長(zhǎng)期參考幀反饋;以及
所述第一參考幀管理模塊612還用于將所述長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀標(biāo)記為生效的長(zhǎng)期參考幀并清除之前的長(zhǎng)期參考幀;
所述第二電子設(shè)備62包括:
第二接收模塊621,用于接收所述編碼數(shù)據(jù);
解碼模塊622,用于將所述編碼數(shù)據(jù)解碼,獲取視頻幀;
第二判斷模塊623,用于判斷所述編碼數(shù)據(jù)中是否設(shè)置標(biāo)示所述視頻幀為長(zhǎng)期參考幀的信息并且所述解碼是否正確;
第二參考幀管理模塊624,用于如果所述第二判斷模塊判定是,則將所述視頻幀添加到參考幀緩存中并標(biāo)記為長(zhǎng)期參考幀;
反饋模塊625,用于在所述第二參考幀管理模塊將所述視頻幀添加到參考幀緩存中并標(biāo)記為長(zhǎng)期參考幀之后,向所述第一電子設(shè)備發(fā)送長(zhǎng)期參考幀反饋。
可選的,所述第一判斷模塊613具體用于:
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀與所述視頻幀之間的殘差是否更小。
具體的,所述第一判斷模塊613用于:
計(jì)算視頻幀和分層編碼對(duì)應(yīng)的短期參考幀之間的殘差,稱為第一殘差;
獲取生效的長(zhǎng)期參考幀;
計(jì)算視頻幀與該生效的長(zhǎng)期參考幀之間的殘差,稱為第二殘差;
比較所述第一殘差和所述第二殘差;
如果所述第二殘差小于所述第一殘差,則判定是;
否則,判定否。
具體的,根據(jù)預(yù)設(shè)分層編碼規(guī)則,獲取視頻幀對(duì)應(yīng)的短期參考幀包括:
根據(jù)預(yù)設(shè)分層編碼規(guī)則,確定視頻幀對(duì)應(yīng)的短期參考幀的幀號(hào);以及
根據(jù)該對(duì)應(yīng)的短期參考幀的幀號(hào),從參考幀緩存中的短期參考幀區(qū)獲取對(duì)應(yīng)的短期參考幀。
可選的,所述第一判斷模塊613具體用于:
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀的幀號(hào)是否更靠近所述視頻幀的幀號(hào)。
具體的,第一判斷模塊613用于:
根據(jù)預(yù)設(shè)分層編碼規(guī)則,獲取視頻幀對(duì)應(yīng)的短期參考幀的幀號(hào),稱為第一幀號(hào);
確定生效的長(zhǎng)期參考幀的幀號(hào),稱為第二幀號(hào);
比較所述第一幀號(hào)和所述第二幀號(hào);
如果所述第二幀號(hào)小于所述第一幀號(hào),則判定是;
否則,判定否。
可選的,所述分層編碼包括1-3層編碼。
本發(fā)明實(shí)施例提供了一種視頻編解碼系統(tǒng)。通過將每個(gè)視頻幀緩存并標(biāo)記為長(zhǎng)期參考幀,在網(wǎng)絡(luò)狀況好到解碼端快速返回長(zhǎng)期參考幀反饋時(shí),通過在反 饋的長(zhǎng)期參考幀比分層編碼的短期參考幀更靠近視頻幀時(shí)利用該長(zhǎng)期參考幀來編碼視頻幀,可以有效提高碼率,避免由于分層編碼帶來的碼率浪費(fèi)。通過判斷長(zhǎng)期參考幀與分層編碼對(duì)應(yīng)的短期參考幀中哪個(gè)的幀號(hào)更靠近視頻幀,可以更簡(jiǎn)單快速地確定哪個(gè)參考幀更靠近視頻幀,提高效率。通過在接收來自解碼端的長(zhǎng)期參考幀反饋后將對(duì)應(yīng)的長(zhǎng)期參考幀標(biāo)記為有效,使得只有反饋的長(zhǎng)期參考幀才能用于編碼,保證了解碼端對(duì)利用長(zhǎng)期參考幀進(jìn)行編碼的視頻幀的正確解碼。通過在接收來自解碼端的長(zhǎng)期參考幀反饋后清除之前的長(zhǎng)期參考幀,可以避免參考幀緩存變滿。
實(shí)施例六
本發(fā)明實(shí)施例提供了一種電子設(shè)備,參照?qǐng)D7,該電子設(shè)備包括存儲(chǔ)器701、發(fā)送/接收模塊702以及與存儲(chǔ)器701、發(fā)送/接收模塊702連接的處理器703。其中,存儲(chǔ)器701存儲(chǔ)有一組程序代碼,處理器703調(diào)用存儲(chǔ)器701中存儲(chǔ)的程序代碼以執(zhí)行以下操作:
獲取視頻幀;
將所述視頻幀緩存并標(biāo)記為待生效的長(zhǎng)期參考幀;
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀是否更靠近所述視頻幀;
如果是,則利用所述生效的長(zhǎng)期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù);
如果否,則利用所述分層編碼對(duì)應(yīng)的短期參考幀對(duì)所述視頻幀進(jìn)行編碼,生成編碼數(shù)據(jù);
在所述編碼數(shù)據(jù)中設(shè)置標(biāo)示所述視頻幀為長(zhǎng)期參考幀的信息;
向解碼端發(fā)送所述編碼數(shù)據(jù);
接收來自所述解碼端的長(zhǎng)期參考幀反饋;以及
將所述長(zhǎng)期參考幀反饋針對(duì)的待生效的長(zhǎng)期參考幀標(biāo)記為生效的長(zhǎng)期參考 幀并清除之前的長(zhǎng)期參考幀。
可選的,處理器703調(diào)用存儲(chǔ)器701中存儲(chǔ)的程序代碼以執(zhí)行以下操作:
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀與所述視頻幀之間的殘差是否更小。
可選的,處理器703調(diào)用存儲(chǔ)器701中存儲(chǔ)的程序代碼以執(zhí)行以下操作:
判斷與分層編碼對(duì)應(yīng)的短期參考幀相比,生效的長(zhǎng)期參考幀的幀號(hào)是否更靠近所述視頻幀的幀號(hào)。
可選的,所述分層編碼包括1-3層編碼。
本發(fā)明實(shí)施例提供了一種電子設(shè)備。通過將每個(gè)視頻幀緩存并標(biāo)記為長(zhǎng)期參考幀,在網(wǎng)絡(luò)狀況好到解碼端快速返回長(zhǎng)期參考幀反饋時(shí),通過在反饋的長(zhǎng)期參考幀比分層編碼的短期參考幀更靠近視頻幀時(shí)利用該長(zhǎng)期參考幀來編碼視頻幀,可以有效提高碼率,避免由于分層編碼帶來的碼率浪費(fèi)。通過判斷長(zhǎng)期參考幀與分層編碼對(duì)應(yīng)的短期參考幀分別跟視頻幀的殘差大小,可以更準(zhǔn)確地確定哪個(gè)參考幀更靠近視頻幀。通過判斷長(zhǎng)期參考幀與分層編碼對(duì)應(yīng)的短期參考幀中哪個(gè)的幀號(hào)更靠近視頻幀,可以更簡(jiǎn)單快速地確定哪個(gè)參考幀更靠近視頻幀,提高效率。通過在接收來自解碼端的長(zhǎng)期參考幀反饋后將對(duì)應(yīng)的長(zhǎng)期參考幀標(biāo)記為有效,使得只有反饋的長(zhǎng)期參考幀才能用于編碼,保證了解碼端對(duì)利用長(zhǎng)期參考幀進(jìn)行編碼的視頻幀的正確解碼。通過在接收來自解碼端的長(zhǎng)期參考幀反饋后清除之前的長(zhǎng)期參考幀,可以避免參考幀緩存變滿。
上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本發(fā)明的可選實(shí)施例,在此不再一一贅述。
需要說明的是:上述實(shí)施例提供的設(shè)備在執(zhí)行利用長(zhǎng)期參考幀的視頻編碼方法時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設(shè)備的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的設(shè)備與利用長(zhǎng)期參考幀的視頻編碼方法屬于同一構(gòu)思,其具體實(shí)現(xiàn)過程詳見方 法實(shí)施例,這里不再贅述。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。