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

一種視頻圖像編碼方法和裝置的制作方法

文檔序號(hào):7763857閱讀:220來源:國知局
專利名稱:一種視頻圖像編碼方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及視頻通信技術(shù)領(lǐng)域,特別涉及一種視頻圖像編碼方法和裝置。
背景技術(shù)
在視頻通信領(lǐng)域,通信信道帶寬都是恒定、有限的,而在單純的視頻編碼壓縮系統(tǒng)中,原始視頻數(shù)據(jù)經(jīng)過編碼壓縮后得到的碼流,其碼率是變化的。碼率不斷變化的碼流在恒定有限帶寬的信道中傳輸時(shí)會(huì)存在如下問題當(dāng)碼率較小時(shí),會(huì)引起通信信道帶寬資源的浪費(fèi);當(dāng)碼率過大時(shí),會(huì)引起視頻圖像數(shù)據(jù)的丟失。目前,在視頻編碼中,通常通過引入碼率控制將壓縮編碼的碼流控制在一定的波動(dòng)范圍之內(nèi),圖1給出了現(xiàn)有視頻圖像編碼的原理示意圖。如圖1所示,編碼器的碼率控制參數(shù)包括目標(biāo)幀率和目標(biāo)碼率,目標(biāo)幀率和目標(biāo)碼率是編碼器實(shí)際想要達(dá)到的輸出幀率和碼率,該編碼方法主要包括以下步驟步驟101 預(yù)測(cè)當(dāng)前網(wǎng)絡(luò)可用帶寬資源,即編碼器輸出視頻碼流的可用傳輸帶寬。步驟102 根據(jù)預(yù)測(cè)的可用的帶寬資源,設(shè)置編碼器的初始碼率控制參數(shù),包括目標(biāo)幀率和目標(biāo)碼率和每幀的目標(biāo)碼流等。本步驟中,可以將目標(biāo)碼率設(shè)置成與可用帶寬相等,或者小于可用帶寬,以預(yù)留冗余保證可靠性;而目標(biāo)幀率則可以綜合可用帶寬、編碼器性能和想要達(dá)到的圖像質(zhì)量等因素進(jìn)行設(shè)置,一般可以取經(jīng)驗(yàn)值。這里每幀的目標(biāo)碼流等于每幀編碼所需的比特(bit)數(shù),例如,目標(biāo)碼率為 IMbps,目標(biāo)幀率為25幀/秒,則每幀的目標(biāo)碼流為(l/25Mbit)/幀。步驟103 預(yù)測(cè)編碼器所編碼的視頻圖像將要跳幀的數(shù)目。本步驟中,可根據(jù)編碼器的輸入圖像復(fù)雜度或編碼器輸出視頻碼流的大小等情況預(yù)測(cè)圖像將要跳幀的數(shù)目。例如,編碼器當(dāng)前輸入的圖像比較復(fù)雜,用了較多的比特進(jìn)行編碼,那么為了保證實(shí)際輸出碼率不超過目標(biāo)碼率,則需要對(duì)下一時(shí)刻的幀進(jìn)行跳幀處理,且當(dāng)前輸入的圖像用越多的比特進(jìn)行編碼,則下一時(shí)刻跳幀的數(shù)目越多。同樣,如果編碼器輸出視頻碼流較大,則表示當(dāng)前輸出幀用了較多比特進(jìn)行編碼,需要進(jìn)行跳幀處理。步驟104 根據(jù)當(dāng)前可用網(wǎng)絡(luò)帶寬資源以及跳幀的數(shù)目獲得需要調(diào)整的目標(biāo)幀率級(jí)數(shù),這里目標(biāo)幀率被分為若干級(jí),便于逐級(jí)調(diào)整,根據(jù)需要調(diào)整的幀率級(jí)數(shù)獲取需要更新的目標(biāo)幀率。本步驟中,設(shè)置大小不同的多級(jí)目標(biāo)幀率;其中,所述多級(jí)目標(biāo)幀率中的最大值不超過所述編碼器輸出視頻碼流的可用傳輸帶寬所承受的范圍,至于分多少級(jí)以及各級(jí)之間的間隔這里不做限定。然后根據(jù)預(yù)測(cè)的跳幀數(shù)對(duì)當(dāng)前的目標(biāo)幀率進(jìn)行調(diào)整,當(dāng)跳幀數(shù)較大時(shí)將目標(biāo)幀率進(jìn)行下調(diào),當(dāng)跳幀數(shù)較小時(shí)將目標(biāo)幀率進(jìn)行上調(diào)。步驟105 將更新后的目標(biāo)幀率反饋給編碼器作為碼率控制參數(shù)。至此,即完成了現(xiàn)有視頻圖像編碼的原理。通過上述分析可以看出,在現(xiàn)有所采用的視頻編碼方法中,編碼器的目標(biāo)幀率是通過預(yù)測(cè)的跳幀數(shù)目來調(diào)整的,而預(yù)測(cè)的跳幀數(shù)目?jī)H僅是根據(jù)編碼器的輸入圖像復(fù)雜度或編碼器輸出視頻碼流的大小來得到的,并沒有考慮到輸入圖像之間的相關(guān)度,由此,可能會(huì)導(dǎo)致某些圖像跳幀不夠而導(dǎo)致碼率超標(biāo),也即現(xiàn)有的視頻編碼方法僅能夠保證目標(biāo)幀率能夠自適應(yīng)網(wǎng)絡(luò),而并沒有考慮目標(biāo)碼率是否能夠自適應(yīng);此外,現(xiàn)有的視頻編碼方法中,在預(yù)測(cè)跳幀數(shù)目時(shí)沒有考慮圖像質(zhì)量,可能會(huì)導(dǎo)致視頻圖像質(zhì)量的下降。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種視頻圖像編碼方法,不僅能夠穩(wěn)定視頻圖像的質(zhì)量, 而且,在視頻圖像質(zhì)量穩(wěn)定的情況下,目標(biāo)幀率和目標(biāo)碼率都能夠自適應(yīng)網(wǎng)絡(luò)。本發(fā)明還提供了一種視頻圖像編碼裝置,不僅能夠穩(wěn)定視頻圖像的質(zhì)量,而且,在視頻圖像質(zhì)量穩(wěn)定的情況下,目標(biāo)幀率和目標(biāo)碼率都能夠自適應(yīng)網(wǎng)絡(luò)。為了達(dá)到上述目的,本發(fā)明提出的技術(shù)方案為一種視頻圖像編碼方法,該方法包括Al.將視頻圖像中的第一個(gè)圖像組GOP作為當(dāng)前G0P,按照現(xiàn)有方法對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼后,執(zhí)行步驟A2 ;A2.判斷當(dāng)前GOP中的圖像質(zhì)量是否下降,如果是,將高于當(dāng)前跳幀級(jí)別一級(jí)以上的跳幀級(jí)別作為當(dāng)前跳幀級(jí)別,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)下一個(gè) GOP中的圖像進(jìn)行編碼后,返回執(zhí)行步驟A2 ;否則,將當(dāng)前GOP的實(shí)際碼率作為下一個(gè)GOP 的編碼碼率Be,并將下一個(gè)GOP作為當(dāng)前GOP后,設(shè)置當(dāng)前GOP的目標(biāo)碼率Bs ;A3.根據(jù)編碼碼率禮與目標(biāo)碼率Bs的關(guān)系,確定出當(dāng)前GOP的當(dāng)前跳幀級(jí)別后, 根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;A4.判斷當(dāng)前GOP是否是最后一個(gè)G0P,如果是,則結(jié)束整個(gè)工作流程;否則,返回執(zhí)行步驟A2,直至當(dāng)前GOP為最后一個(gè)G0P。所述按照現(xiàn)有方法對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼包括預(yù)測(cè)編碼器輸出視頻碼流的可用傳輸帶寬,根據(jù)所述預(yù)測(cè)的可用傳輸帶寬設(shè)置編碼器的目標(biāo)幀率的初始值,使得編碼器根據(jù)所述設(shè)置的目標(biāo)幀率初始值進(jìn)行視頻編碼;根據(jù)編碼器輸入視頻圖像的復(fù)雜度或輸出視頻碼流大小,預(yù)測(cè)視頻圖像將要跳幀的數(shù)目;根據(jù)所述預(yù)測(cè)的跳幀數(shù)目逐級(jí)調(diào)整所述編碼器的目標(biāo)幀率,使得編碼器根據(jù)所述調(diào)整后的目標(biāo)幀率進(jìn)行視頻編碼。所述的跳幀表是根據(jù)采集幀率和編碼幀率建立的,所述跳幀表中包含了跳幀級(jí)別及其對(duì)應(yīng)的編碼幀率。需要編碼的第η幀在采集的f。幀圖像內(nèi)的位置In可通過如下公式計(jì)算,In = ceil(Fn*fc/fe),其中,f。為采集幀率,f;為編碼幀率,F(xiàn)n*需要編碼的第η幀,η e
,所述 ceil為向上取整。步驟A3中根據(jù)編碼碼率Be與目標(biāo)碼率Bs的關(guān)系,確定出當(dāng)前GOP的當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼包括當(dāng)Be> (1+A%)*BS時(shí),清零表征Be和Bs關(guān)系的兩個(gè)統(tǒng)計(jì)值SO和Si,所述SO表示編碼碼率B6連續(xù)小于目標(biāo)碼率Bs的GOP個(gè)數(shù),所述Sl表示編碼碼率B6連續(xù)小于(1+A% ) 倍的目標(biāo)碼率Bs的GOP個(gè)數(shù),所述A %表示恒定比特率CBR碼率控制允許的最大超標(biāo)值,且 0 < A 彡 10 ;當(dāng)當(dāng)前跳幀級(jí)別為最高跳幀級(jí)別時(shí),根據(jù)跳幀表中當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;當(dāng)當(dāng)前跳幀級(jí)別為次高跳幀級(jí)別時(shí),判斷Be與(1+B% )*BS 的大小,所述B %表示CBR碼率控制允許的最大超標(biāo)值,5 < B < 15且8 > A,當(dāng)Be > (1+B% )*BS時(shí),將高一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼,當(dāng)K (1+B% )*BS時(shí),直接根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;否則,將高一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。步驟A3中根據(jù)編碼碼率Be與目標(biāo)碼率Bs的關(guān)系,確定出當(dāng)前GOP的當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼包括當(dāng)Be < Bs時(shí),將表征Be和Bs關(guān)系的兩個(gè)統(tǒng)計(jì)值SO和Sl各加1,所述SO表示編碼碼率B6連續(xù)小于目標(biāo)碼率Bs WGOP個(gè)數(shù),所述Sl表示編碼碼率B6連續(xù)小于(1+A%)倍的目標(biāo)碼率Bs的GOP個(gè)數(shù),所述表示恒定比特率CBR碼率控制允許的最大超標(biāo)值,且0 < A ^ 10 ;判斷SO > TO或Sl > Tl中的一個(gè)是否成立,所述TO和Tl分別表示SO和Sl兩個(gè)統(tǒng)計(jì)值能夠達(dá)到的最大值,如果是,將低一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別,并分別清零SO 和Sl后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;否貝U,直接根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。步驟A3中根據(jù)編碼碼率Be與目標(biāo)碼率Bs的關(guān)系,確定出當(dāng)前GOP的當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼包括當(dāng)Bs彡B6彡(1+A% ) *BS時(shí),清零表征B6和Bs關(guān)系的統(tǒng)計(jì)值SO,并將表征B6和Bs 關(guān)系的統(tǒng)計(jì)值Sl加1,所述SO表示編碼碼率I連續(xù)小于目標(biāo)碼率Bs的GOP個(gè)數(shù),所述Sl 表示編碼碼率禮連續(xù)小于(1+A%)倍的目標(biāo)碼率Bs WGOP個(gè)數(shù),所述表示恒定比特率 CBR碼率控制允許的最大超標(biāo)值,且0 < A < 10 ;判斷Sl > Tl是否成立,所述Tl表示SO和Sl兩個(gè)統(tǒng)計(jì)值能夠達(dá)到的最大值,如果是,將低一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別,并清零統(tǒng)計(jì)值Sl后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;否則,直接根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。一種視頻圖像編碼裝置,該裝置包括質(zhì)量檢測(cè)模塊、碼率設(shè)置模塊和編碼模塊, 其中,所述質(zhì)量檢測(cè)模塊,用于判斷當(dāng)前圖像組GOP中的圖像質(zhì)量是否下降;所述碼率設(shè)置模塊,用于當(dāng)質(zhì)量檢測(cè)模塊判斷出當(dāng)前GOP中的圖像質(zhì)量沒有下降時(shí),將當(dāng)前GOP的實(shí)際碼率作為下一個(gè)GOP的編碼碼率Be,并將下一個(gè)GOP作為當(dāng)前GOP后, 設(shè)置當(dāng)前GOP的目標(biāo)碼率Bs;所述編碼模塊,用于按照現(xiàn)有方法對(duì)視頻圖像中的第一個(gè)GOP進(jìn)行編碼;和,當(dāng)質(zhì)量檢測(cè)模塊判斷出當(dāng)前GOP中的圖像質(zhì)量下降時(shí),將高于當(dāng)前跳幀級(jí)別一級(jí)以上的跳幀級(jí)
7別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)下一個(gè)GOP進(jìn)行編碼;和,當(dāng)質(zhì)量檢測(cè)模塊判斷出當(dāng)前GOP中的圖像質(zhì)量沒有下降時(shí),根據(jù)碼率設(shè)置模塊中的編碼碼率I與目標(biāo)碼率Bs的關(guān)系,確定出當(dāng)前GOP的當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)下一個(gè)GOP中進(jìn)行編碼。該裝置還包括跳幀表建立模塊,用于根據(jù)采集幀率和編碼幀率建立跳幀表,所述跳幀表中包含了跳幀級(jí)別及其對(duì)應(yīng)的編碼幀率。所述編碼模塊,用于當(dāng)Be> (1+A%)*BS時(shí),清零表征Be和Bs關(guān)系的兩個(gè)統(tǒng)計(jì)值SO和Si,所述SO表示編碼碼率B6連續(xù)小于目標(biāo)碼率Bs的GOP個(gè)數(shù),所述Sl表示編碼碼率B6連續(xù)小于(1+A% ) 倍的目標(biāo)碼率Bs的GOP個(gè)數(shù),所述A %表示恒定比特率CBR碼率控制允許的最大超標(biāo)值,且 0 < A 彡 10 ;當(dāng)當(dāng)前跳幀級(jí)別為最高跳幀級(jí)別時(shí),根據(jù)跳幀表建立模塊建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;當(dāng)當(dāng)前跳幀級(jí)別為次高跳幀級(jí)別時(shí),判斷Be與(1+B % ) *BS的大小,所述B %表示CBR碼率控制允許的最大超標(biāo)值,5 < B < 15 且8 > A,當(dāng)Be > (1+B%)*BS時(shí),將高一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表建立模塊建立的跳幀表中當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼,當(dāng) Be ( (1+B%)*BS時(shí),直接根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;否則,將高一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表建立模塊建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。所述編碼模塊,用于當(dāng)Be < Bs時(shí),將表征Be和Bs關(guān)系的兩個(gè)統(tǒng)計(jì)值SO和Sl各加1,所述SO表示編碼碼率B6連續(xù)小于目標(biāo)碼率Bs WGOP個(gè)數(shù),所述Sl表示編碼碼率B6連續(xù)小于(1+A%)倍的目標(biāo)碼率Bs的GOP個(gè)數(shù),所述表示恒定比特率CBR碼率控制允許的最大超標(biāo)值,且0 < A ^ 10 ;判斷SO > TO或Sl > Tl中的一個(gè)是否成立,所述TO和Tl分別表示SO和Sl兩個(gè)統(tǒng)計(jì)值能夠達(dá)到的最大值,如果是,將低一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別,并分別清零SO 和Sl后,根據(jù)跳幀表建立模塊建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP 中的圖像進(jìn)行編碼;否則,直接根據(jù)跳幀表建立模塊建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。所述編碼模塊,用于當(dāng)Bs彡Be彡(1+A% ) *BS時(shí),清零表征Be和Bs關(guān)系的統(tǒng)計(jì)值SO,并將表征Be和Bs 關(guān)系的統(tǒng)計(jì)值Sl加1,所述SO表示編碼碼率I連續(xù)小于目標(biāo)碼率Bs的GOP個(gè)數(shù),所述Sl 表示編碼碼率禮連續(xù)小于(1+A%)倍的目標(biāo)碼率Bs WGOP個(gè)數(shù),所述表示恒定比特率 CBR碼率控制允許的最大超標(biāo)值,且0 < A < 10 ;判斷Sl > Tl是否成立,所述Tl表示SO和Sl兩個(gè)統(tǒng)計(jì)值能夠達(dá)到的最大值,如果是,將低一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別,并清零統(tǒng)計(jì)值Sl后,根據(jù)跳幀表建立模塊建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;否則,直接根據(jù)跳幀表建立模塊建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。
綜上所述,本發(fā)明所采用的視頻圖像編碼方法和裝置,是通過對(duì)已編碼的當(dāng)前GOP 中的圖像質(zhì)量進(jìn)行判斷,當(dāng)判斷出圖像質(zhì)量下降時(shí),按照優(yōu)先跳幀、即將高于當(dāng)前跳幀級(jí)別一級(jí)以上的跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼,反之,則將已編碼的當(dāng)前GOP的實(shí)際碼率作為下一個(gè)GOP的編碼碼率,并設(shè)置下一個(gè)GOP的目標(biāo)碼率,進(jìn)而根據(jù)編碼碼率和目標(biāo)碼率的關(guān)系確定出當(dāng)前 GOP的當(dāng)前跳幀級(jí)別后,再根據(jù)跳幀表中當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。也即,在對(duì)視頻圖像進(jìn)行編碼時(shí),不僅能夠穩(wěn)定視頻圖像質(zhì)量,而且,當(dāng)視頻圖像質(zhì)量穩(wěn)定的情況下,既考慮到了目標(biāo)幀率,又考慮到了目標(biāo)碼率,使得目標(biāo)幀率和目標(biāo)碼率都能夠自適應(yīng)網(wǎng)絡(luò)。


圖1為現(xiàn)有視頻圖像編碼的原理示意圖;圖2為本發(fā)明視頻圖像編碼方法實(shí)施例的工作流程圖;圖3為本發(fā)明視頻圖像編碼裝置實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了解決現(xiàn)有技術(shù)中存在的問題,本發(fā)明提出了一種新的視頻圖像編碼方法,即通過對(duì)已編碼的當(dāng)前GOP中的圖像質(zhì)量進(jìn)行判斷,當(dāng)判斷出圖像質(zhì)量下降時(shí),按照優(yōu)先跳幀、即將高于當(dāng)前跳幀級(jí)別一級(jí)以上的跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼,反之,則將已編碼的當(dāng)前GOP的實(shí)際碼率作為下一個(gè)GOP的編碼碼率,并設(shè)置下一個(gè)GOP的目標(biāo)碼率,進(jìn)而根據(jù)編碼碼率和目標(biāo)碼率的關(guān)系確定出當(dāng)前GOP的當(dāng)前跳幀級(jí)別后,再根據(jù)跳幀表中當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼?;谏鲜鼋榻B,本發(fā)明所述方案的具體實(shí)現(xiàn)包括Al.將視頻圖像中的第一個(gè)圖像組GOP作為當(dāng)前G0P,按照現(xiàn)有方法對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼后,執(zhí)行步驟A2 ;A2.判斷當(dāng)前GOP中的圖像質(zhì)量是否下降,如果是,將高于當(dāng)前跳幀級(jí)別一級(jí)以上的跳幀級(jí)別作為當(dāng)前跳幀級(jí)別,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)下一個(gè) GOP中的圖像進(jìn)行編碼后,返回執(zhí)行步驟A2 ;否則,將當(dāng)前GOP的實(shí)際碼率作為下一個(gè)GOP 的編碼碼率Be,并將下一個(gè)GOP作為當(dāng)前GOP后,設(shè)置當(dāng)前GOP的目標(biāo)碼率Bs ;A3.根據(jù)編碼碼率Be與目標(biāo)碼率Bs的關(guān)系,確定出當(dāng)前GOP的當(dāng)前跳幀級(jí)別后, 根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;A4.判斷當(dāng)前GOP是否是最后一個(gè)G0P,如果是,則結(jié)束整個(gè)工作流程;否則,返回執(zhí)行步驟A2,直至當(dāng)前GOP為最后一個(gè)G0P。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。圖2為本發(fā)明視頻圖像編碼方法實(shí)施例的工作流程圖。如圖2所示,該流程包括以下步驟步驟201 建立包含跳幀級(jí)別及其對(duì)應(yīng)的編碼幀率的跳幀表。
需要說明的是,攝像機(jī)在采集視頻圖像時(shí)必須設(shè)定一種采集制式,比如標(biāo)清的 NTSC制、PAL制,或者高清的1080P60、1080I50、720P60等。每一種采集制式都有其固定的采集幀率,比如NTSC制為30幀每秒,PAL制為25幀每秒,對(duì)于采集幀率為30幀每秒的 NTSC制,編碼幀率可以是1 四幀,可以列舉這四個(gè)跳幀表值。而對(duì)于采集幀率為25幀每秒的PAL制,可以列舉編碼幀率為1 M的跳幀表值,由此,在本步驟中,跳幀表是根據(jù)采集幀率和編碼幀率建立的。比如采集幀率為30幀,編碼幀率為20幀時(shí)的跳幀表中的值為 0xlB6DB6DB,其中 0xlB6DB6DB 的二進(jìn)制表示為 01 10110110 1101 1011 0110 1101 1011, 二進(jìn)制的第0位到第四位分別代表采集幀率的第0幀到第四幀,二進(jìn)制每一位上的值0 代表該幀不編碼,即跳幀;1代表該幀編碼,即不跳幀。由于編碼幀率為20幀時(shí)的跳幀表值二進(jìn)制數(shù)中需要跳幀的10幀圖像的位置是均勻地分布在采集的30幀圖像內(nèi)的,從而能夠達(dá)到均勻跳幀的效果,使得編碼后的運(yùn)動(dòng)圖像連貫。在本步驟中跳幀表的建立可采用窮舉法或公式法兩種方法,以下分別介紹。窮舉法即根據(jù)不同的采集幀率和編碼幀率,窮舉跳幀表值。將所有制式的跳幀表值都列舉出來,即可窮舉跳幀表值,跳幀表值列舉以均勻跳幀為原則比如采集幀率為30 幀,編碼幀率為20幀,跳幀表值為0xlB6DB6DB ;采集幀率為30幀,編碼幀率為15幀,跳幀表值為0x15555555 ;采集幀率為25幀,編碼幀率為15幀,跳幀表值為0xl5AD6B5,以此類推。公式法該方法根據(jù)采集幀率、編碼幀率直接計(jì)算跳幀表值。假設(shè)采集幀率為f。, 編碼幀率為f;,F(xiàn)n代表需要編碼的第η幀,In代表需要編碼的第η幀在采集的f。幀圖像內(nèi)的位置,其中η e
,則有, In = ceil (Fn*fc/fe),其中,ceil 為向上取整。還需說明的是,在跳幀表中,每一個(gè)跳幀表中的值不僅包含了編碼幀率,而且還包含了該編碼幀率下的跳幀級(jí)別,跳幀級(jí)別越高,跳幀數(shù)越多,編碼幀率越小,反之,則編碼幀率越大。具體如何設(shè)置編碼幀率的跳幀級(jí)別可依實(shí)際情況而定,以不影響本發(fā)明實(shí)施例的實(shí)現(xiàn)為準(zhǔn)。步驟202 設(shè)置用于表征編碼碼率和目標(biāo)碼率關(guān)系的兩個(gè)統(tǒng)計(jì)值SO和Si。在本步驟中,SO表示的是編碼碼率連續(xù)小于目標(biāo)碼率的GOP個(gè)數(shù);Sl表示的是編碼碼率連續(xù)小于(1+A%)倍的目標(biāo)碼率的GOP個(gè)數(shù)。其中,所述表示CBR碼率控制允許的最大超標(biāo)值,且0 < AS 10。步驟203 將視頻圖像中的第一個(gè)GOP作為當(dāng)前G0P。需要說明的是,這里是以GOP為單位來對(duì)圖像進(jìn)行編碼的,在實(shí)際實(shí)現(xiàn)時(shí),可采用 ls、2s、或其它單位內(nèi)的圖像幀數(shù)來對(duì)圖像進(jìn)行編碼,具體實(shí)現(xiàn)過程類同,故不再對(duì)其進(jìn)行贅述。步驟204 按照現(xiàn)有方法對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。需要說明的是,對(duì)于視頻圖像中的第一個(gè)G0P,都是通過現(xiàn)有視頻圖像編碼方法對(duì)其進(jìn)行編碼的,具體的現(xiàn)有編碼方法在前面已論述過,這里不再贅述。步驟205 判斷當(dāng)前GOP中的圖像質(zhì)量是否有下降,如果是,執(zhí)行步驟206 ;否則, 執(zhí)行步驟207。在本步驟中,是通過QP是否增大過多來判斷圖像質(zhì)量是否有下降的。在進(jìn)行跳幀之前,都需要通過增大QP來抑制碼流超標(biāo),而增大QP也就意味著圖像細(xì)節(jié)的丟失,圖像質(zhì)量變差,當(dāng)QP增大到一定程度時(shí),認(rèn)為圖像質(zhì)量變差,具體增大到何值可依據(jù)具體情況而定,這里不再贅述。步驟206 將下一個(gè)GOP作為當(dāng)前G0P,并將高于當(dāng)前跳幀級(jí)別一級(jí)以上的跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,直接執(zhí)行步驟220。需要說明的是,在本步驟中,當(dāng)判斷出剛編碼完的GOP中的視頻圖像質(zhì)量有下降時(shí),需要按照優(yōu)先跳幀的原則確定出下一個(gè)要編碼的GOP的跳幀級(jí)別,具體選取高于當(dāng)前跳幀級(jí)別的數(shù)目可依據(jù)圖像質(zhì)量而定,以不影響本發(fā)明實(shí)施例的實(shí)現(xiàn)為準(zhǔn)。還需說明的是,在本步驟中,當(dāng)前跳幀級(jí)別也是根據(jù)步驟201中建立的跳幀表來確定的。步驟207 將當(dāng)前GOP的實(shí)際碼率作為下一個(gè)GOP的編碼碼率Be,并將下一個(gè)GOP 作為當(dāng)前G0P。當(dāng)判斷出剛編碼完的GOP中的視頻圖像質(zhì)量沒有下降時(shí),需要將剛編碼完的GOP 的實(shí)際編碼碼率作為下一個(gè)要編碼的GOP的編碼碼率。步驟208 設(shè)置當(dāng)前GOP的目標(biāo)碼率Bs。需要說明的是,在本步驟中,目標(biāo)碼率Bs是依據(jù)為當(dāng)前GOP所分配的通信信道帶寬來設(shè)置的,具體如何依據(jù)通信信道帶寬設(shè)置碼率已為現(xiàn)有技術(shù),這里不再贅述。步驟209:判斷編碼碼率Be與目標(biāo)碼率Bs的關(guān)系,當(dāng)判斷出Be > (1+A% )*BS 時(shí),執(zhí)行步驟210-213 ;當(dāng)判斷出Be < Bs時(shí),執(zhí)行步驟214-216 ;否貝lj,即當(dāng)判斷出 Bs ^ Be ^ (1+A% )*BS 時(shí),執(zhí)行步驟 217-219。需要說明的是,步驟210-213、步驟214-216、以及步驟217-219是三個(gè)不同的處理過程,它們之間并沒有先后順序之分,下面分別介紹其具體處理過程。步驟210-213的處理過程為步驟210 清零統(tǒng)計(jì)值SO和Si。由于SO和Sl分別表示的是編碼碼率連續(xù)小于目標(biāo)碼率的GOP個(gè)數(shù)和編碼碼率連續(xù)小于(1+A%)倍的目標(biāo)碼率的GOP個(gè)數(shù),在本步驟中,Be> (1+A%)*BS,即編碼碼率大于 (1+A% )倍的目標(biāo)碼率,因此,需要將SO和Sl清零。步驟211 判斷當(dāng)前跳幀級(jí)別,當(dāng)當(dāng)前跳幀級(jí)別為最高跳幀級(jí)別時(shí),執(zhí)行步驟220 ; 當(dāng)當(dāng)前跳幀級(jí)別為次高跳幀級(jí)別時(shí),執(zhí)行步驟212 ;否則,執(zhí)行步驟213。步驟212 當(dāng)當(dāng)前跳幀級(jí)別為次高跳幀級(jí)別時(shí),判斷禮與(1+B%)*BS的大小,當(dāng)Be
>(1+B% )*BS時(shí),執(zhí)行步驟213 ;否則,執(zhí)行步驟220。需要說明的是,所述也表示CBR碼率控制允許的最大超標(biāo)值,515,且B
>A。由于最高跳幀級(jí)別所對(duì)應(yīng)的編碼幀率很小,對(duì)視頻圖像影響比較大,因此,當(dāng)采用最小編碼幀率進(jìn)行編碼時(shí)需要相對(duì)更加嚴(yán)格的條件,即這里的I > (1+B% )*BS。步驟213 將高一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,執(zhí)行步驟220。至此,即完成了步驟210-213的具體處理過程。步驟214-216的處理過程為步驟214:將統(tǒng)計(jì)值SO和Sl各加1。在本步驟中,由于Be < Bs,且SO和Sl分別表示的是編碼碼率連續(xù)小于目標(biāo)碼率的GOP個(gè)數(shù)和編碼碼率連續(xù)小于(1+A% )倍的目標(biāo)碼率的GOP個(gè)數(shù),則需要將SO和Sl分別加1。步驟215 判斷SO > TO或Sl > Tl中的一個(gè)是否成立,如果是,執(zhí)行步驟216 ;否貝U,執(zhí)行步驟220。TO和Tl分別表示SO和Sl兩個(gè)統(tǒng)計(jì)值能夠達(dá)到的最大值,且TO > Tl,具體取值可依據(jù)實(shí)際情況而定。步驟216 將低一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別,并分別清零統(tǒng)計(jì)值SO和Sl后, 執(zhí)行步驟220。在本步驟中,當(dāng)SO或Sl中有一個(gè)超過能夠達(dá)到的最大值時(shí),則需將跳幀級(jí)別降低,從而避免了編碼幀率波動(dòng)頻繁而導(dǎo)致的圖像質(zhì)量穩(wěn)定性的下降。至此,即完成了步驟214-216的具體處理過程。步驟217-219的處理過程為步驟217 清零統(tǒng)計(jì)值SO,并將統(tǒng)計(jì)值Sl加1。在本步驟中,由于Bs彡Be彡(1+A% RBs,而SO和Sl分別表示的是編碼碼率連續(xù)小于目標(biāo)碼率的GOP個(gè)數(shù)和編碼碼率連續(xù)小于(1+A%)倍的目標(biāo)碼率的GOP個(gè)數(shù),因此,需要將SO清零,將Sl加1。步驟218 判斷Sl > Tl是否成立,如果是,執(zhí)行步驟219 ;否則,執(zhí)行步驟220。步驟219 將低一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別,并清零統(tǒng)計(jì)值Sl后,執(zhí)行步驟 220。在本步驟中,當(dāng)Bs彡Be彡(1+A% )*BS的次數(shù)連續(xù)超過Tl時(shí),則需將跳幀級(jí)別降低,從而避免了跳幀級(jí)別長(zhǎng)期處于某一級(jí)別而不能恢復(fù)的問題。至此,即完成了步驟214-216的具體處理過程。步驟220 根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。步驟221 判斷當(dāng)前GOP是否為視頻圖像中的最后一個(gè)G0P,如果是,則結(jié)束整個(gè)工作流程;否則,返回執(zhí)行步驟205,直至當(dāng)前GOP為視頻圖像中的最后一個(gè)G0P。至此,即完成了本發(fā)明視頻圖像編碼方法實(shí)施例的整個(gè)工作流程。基于上述方法,圖3為本發(fā)明視頻圖像編碼裝置實(shí)施例的結(jié)構(gòu)示意圖。如圖3所示,該裝置包括質(zhì)量檢測(cè)模塊31、碼率設(shè)置模塊32和編碼模塊33,其中,所述質(zhì)量檢測(cè)模塊31,用于判斷當(dāng)前GOP中的圖像質(zhì)量是否下降;所述碼率設(shè)置模塊32,用于當(dāng)質(zhì)量檢測(cè)模塊31判斷出當(dāng)前GOP中的圖像質(zhì)量沒有下降時(shí),將當(dāng)前GOP的實(shí)際碼率作為下一個(gè)GOP的編碼碼率Be,并將下一個(gè)GOP作為當(dāng)前 GOP后,設(shè)置當(dāng)前GOP的目標(biāo)碼率Bs ;所述編碼模塊33,用于按照現(xiàn)有方法對(duì)視頻圖像中的第一個(gè)GOP進(jìn)行編碼;和,當(dāng)質(zhì)量檢測(cè)模塊31判斷出當(dāng)前GOP中的圖像質(zhì)量下降時(shí),將高于當(dāng)前跳幀級(jí)別一級(jí)以上的跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)下一個(gè)GOP 進(jìn)行編碼;和,當(dāng)質(zhì)量檢測(cè)模塊31判斷出當(dāng)前GOP中的圖像質(zhì)量沒有下降時(shí),根據(jù)碼率設(shè)置模塊32中的編碼碼率&與目標(biāo)碼率Bs的關(guān)系,確定出當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP的下一個(gè)GOP進(jìn)行編碼。
進(jìn)一步地,該裝置還包括跳幀表建立模塊34,用于根據(jù)采集幀率和編碼幀率建立跳幀表,所述跳幀表中包含了跳幀級(jí)別及其對(duì)應(yīng)的編碼幀率,則,當(dāng)質(zhì)量檢測(cè)模塊31判斷出當(dāng)前GOP中的圖像質(zhì)量沒有下降,且Be > (1+A% )*BS 時(shí),所述編碼模塊33,用于清零表征&和Bs關(guān)系的兩個(gè)統(tǒng)計(jì)值SO和Si,所述SO表示編碼碼率B6連續(xù)小于目標(biāo)碼率Bs WGOP個(gè)數(shù),所述Sl表示編碼碼率B6連續(xù)小于(1+A%)倍的目標(biāo)碼率Bs的GOP個(gè)數(shù),所述表示恒定比特率CBR碼率控制允許的最大超標(biāo)值,且0
<A ^ 10 ;當(dāng)當(dāng)前跳幀級(jí)別為最高跳幀級(jí)別時(shí),根據(jù)跳幀表建立模塊34建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;當(dāng)當(dāng)前跳幀級(jí)別為次高跳幀級(jí)別時(shí),判斷禮與(1+B% )*BS的大小,所述表示CBR碼率控制允許的最大超標(biāo)值,5
<B < 15且B > A,當(dāng)Be > (1+B% )*BS時(shí),將高一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表建立模塊34建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼,當(dāng)K (1+B% )*BS時(shí),直接根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;否則,將高一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表建立模塊34建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼?;?,當(dāng)質(zhì)量檢測(cè)模塊31判斷出當(dāng)前GOP中的圖像質(zhì)量沒有下降,且Be < Bs時(shí),所述編碼模塊33,用于將表征&和Bs關(guān)系的兩個(gè)統(tǒng)計(jì)值SO和Sl各加1,所述SO表示編碼碼率B6連續(xù)小于目標(biāo)碼率Bs WGOP個(gè)數(shù),所述Sl表示編碼碼率B6連續(xù)小于(1+A%)倍的目標(biāo)碼率Bs的GOP個(gè)數(shù),所述表示恒定比特率CBR碼率控制允許的最大超標(biāo)值,且0
<A ^ 10 ;判斷SO > TO或Sl > Tl中的一個(gè)是否成立,所述TO和Tl分別表示SO和Sl兩個(gè)統(tǒng)計(jì)值能夠達(dá)到的最大值,如果是,將低一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別,并分別清零SO 和Sl后,根據(jù)跳幀表建立模塊34建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前 GOP中的圖像進(jìn)行編碼;否則,直接根據(jù)跳幀表建立模塊34建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼?;?,當(dāng)質(zhì)量檢測(cè)模塊31判斷出當(dāng)前GOP中的圖像質(zhì)量沒有下降,且 Bs ^ Be ^ (1+A% )*BS時(shí),所述編碼模塊33,用于清零表征B6和Bs關(guān)系的統(tǒng)計(jì)值S0,并將表征I和Bs關(guān)系的統(tǒng)計(jì)值Sl加1,所述SO表示編碼碼率&連續(xù)小于目標(biāo)碼率Bs的GOP個(gè)數(shù),所述Sl表示編碼碼率B6連續(xù)小于(1+A%)倍的目標(biāo)碼率Bs WGOP個(gè)數(shù),所述表示恒定比特率CBR碼率控制允許的最大超標(biāo)值,且0 < A < 10 ;判斷Sl > Tl是否成立,所述Tl表示SO和Sl兩個(gè)統(tǒng)計(jì)值能夠達(dá)到的最大值,如果是,將低一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別,并清零統(tǒng)計(jì)值Sl后,根據(jù)跳幀表建立模塊34 建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;否則,直接根據(jù)跳幀表建立模塊34建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。至此,即得到了本發(fā)明所采用的視頻圖像編碼裝置。圖3所示裝置的具體實(shí)現(xiàn)流程可參見圖2,這里不再贅述??傊?,本發(fā)明所采用的視頻圖像編碼方法和裝置,通過對(duì)已編碼的當(dāng)前GOP中的圖像質(zhì)量進(jìn)行判斷,當(dāng)判斷出圖像質(zhì)量下降時(shí),按照優(yōu)先跳幀、即將高于當(dāng)前跳幀級(jí)別一級(jí)以上的跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前 GOP中的圖像進(jìn)行編碼,反之,則將已編碼的當(dāng)前GOP的實(shí)際碼率作為下一個(gè)GOP的編碼碼率,并設(shè)置下一個(gè)GOP的目標(biāo)碼率,進(jìn)而根據(jù)編碼碼率和目標(biāo)碼率的關(guān)系確定出當(dāng)前GOP的當(dāng)前跳幀級(jí)別后,再根據(jù)跳幀表中當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。也即,在對(duì)視頻圖像進(jìn)行編碼時(shí),不僅能夠穩(wěn)定視頻圖像質(zhì)量,而且,當(dāng)視頻圖像質(zhì)量穩(wěn)定的情況下,既考慮到了目標(biāo)幀率,又考慮到了目標(biāo)碼率,使得目標(biāo)幀率和目標(biāo)碼率都能夠自適應(yīng)網(wǎng)絡(luò)。 以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種視頻圖像編碼方法,其特征在于,該方法包括Al.將視頻圖像中的第一個(gè)圖像組GOP作為當(dāng)前G0P,按照現(xiàn)有方法對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼后,執(zhí)行步驟A2 ;A2.判斷當(dāng)前GOP中的圖像質(zhì)量是否下降,如果是,將高于當(dāng)前跳幀級(jí)別一級(jí)以上的跳幀級(jí)別作為當(dāng)前跳幀級(jí)別,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)下一個(gè)GOP中的圖像進(jìn)行編碼后,返回執(zhí)行步驟A2 ;否則,將當(dāng)前GOP的實(shí)際碼率作為下一個(gè)GOP的編碼碼率Be,并將下一個(gè)GOP作為當(dāng)前GOP后,設(shè)置當(dāng)前GOP的目標(biāo)碼率Bs ;A3.根據(jù)編碼碼率&與目標(biāo)碼率Bs的關(guān)系,確定出當(dāng)前GOP的當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;A4.判斷當(dāng)前GOP是否是最后一個(gè)G0P,如果是,則結(jié)束整個(gè)工作流程;否則,返回執(zhí)行步驟A2,直至當(dāng)前GOP為最后一個(gè)G0P。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述按照現(xiàn)有方法對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼包括預(yù)測(cè)編碼器輸出視頻碼流的可用傳輸帶寬,根據(jù)所述預(yù)測(cè)的可用傳輸帶寬設(shè)置編碼器的目標(biāo)幀率的初始值,使得編碼器根據(jù)所述設(shè)置的目標(biāo)幀率初始值進(jìn)行視頻編碼;根據(jù)編碼器輸入視頻圖像的復(fù)雜度或輸出視頻碼流大小,預(yù)測(cè)視頻圖像將要跳幀的數(shù)目;根據(jù)所述預(yù)測(cè)的跳幀數(shù)目逐級(jí)調(diào)整所述編碼器的目標(biāo)幀率,使得編碼器根據(jù)所述調(diào)整后的目標(biāo)幀率進(jìn)行視頻編碼。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的跳幀表是根據(jù)采集幀率和編碼幀率建立的,所述跳幀表中包含了跳幀級(jí)別及其對(duì)應(yīng)的編碼幀率。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,需要編碼的第η幀在采集的f。幀圖像內(nèi)的位置In可通過如下公式計(jì)算,In= ceil (Fn*fc/fe),其中,f。為采集幀率,fe為編碼幀率,F(xiàn)n為需要編碼的第η幀,η e
,所述ceil 為向上取整。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A3中根據(jù)編碼碼率I與目標(biāo)碼率 Bs的關(guān)系,確定出當(dāng)前GOP的當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼包括當(dāng)Be > (1+A% )*BS時(shí),清零表征Be和Bs關(guān)系的兩個(gè)統(tǒng)計(jì)值SO和Si,所述SO表示編碼碼率B6連續(xù)小于目標(biāo)碼率Bs WGOP個(gè)數(shù),所述Sl表示編碼碼率B6連續(xù)小于(1+A%)倍的目標(biāo)碼率Bs的GOP個(gè)數(shù),所述表示恒定比特率CBR碼率控制允許的最大超標(biāo)值,且0 < A ^ 10 ;當(dāng)當(dāng)前跳幀級(jí)別為最高跳幀級(jí)別時(shí),根據(jù)跳幀表中當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;當(dāng)當(dāng)前跳幀級(jí)別為次高跳幀級(jí)別時(shí),判斷民與(1+B% )*BS的大小,所述B%表示CBR碼率控制允許的最大超標(biāo)值,5 < B < 15且8 > A,當(dāng)Be > (1+B% ) *BS 時(shí),將高一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼,當(dāng)K (1+B% )*BS時(shí),直接根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;否則,將高一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A3中根據(jù)編碼碼率I與目標(biāo)碼率 Bs的關(guān)系,確定出當(dāng)前GOP的當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼包括當(dāng)Be < Bs時(shí),將表征&和Bs關(guān)系的兩個(gè)統(tǒng)計(jì)值SO和Sl各加1,所述SO表示編碼碼率B6連續(xù)小于目標(biāo)碼率Bs WGOP個(gè)數(shù),所述Sl表示編碼碼率B6連續(xù)小于(1+A%)倍的目標(biāo)碼率Bs的GOP個(gè)數(shù),所述表示恒定比特率CBR碼率控制允許的最大超標(biāo)值,且0 < A ^ 10 ;判斷SO > TO或Sl > Tl中的一個(gè)是否成立,所述TO和Tl分別表示SO和Sl兩個(gè)統(tǒng)計(jì)值能夠達(dá)到的最大值,如果是,將低一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別,并分別清零SO和 Sl后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;否則, 直接根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。
7 根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A3中根據(jù)編碼碼率I與目標(biāo)碼率 Bs的關(guān)系,確定出當(dāng)前GOP的當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼包括當(dāng)Bs彡B6彡(1+A% ) *BS時(shí),清零表征B6和Bs關(guān)系的統(tǒng)計(jì)值SO,并將表征B6和Bs關(guān)系的統(tǒng)計(jì)值Sl加1,所述SO表示編碼碼率&連續(xù)小于目標(biāo)碼率Bs的GOP個(gè)數(shù),所述Sl表示編碼碼率禮連續(xù)小于(1+A%)倍的目標(biāo)碼率Bs個(gè)數(shù),所述表示恒定比特率CBR 碼率控制允許的最大超標(biāo)值,且0 < A < 10 ;判斷Sl > Tl是否成立,所述Tl表示SO和Sl兩個(gè)統(tǒng)計(jì)值能夠達(dá)到的最大值,如果是, 將低一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別,并清零統(tǒng)計(jì)值Sl后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;否則,直接根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。
8.一種視頻圖像編碼裝置,其特征在于,該裝置包括質(zhì)量檢測(cè)模塊、碼率設(shè)置模塊和編碼模塊,其中,所述質(zhì)量檢測(cè)模塊,用于判斷當(dāng)前圖像組GOP中的圖像質(zhì)量是否下降;所述碼率設(shè)置模塊,用于當(dāng)質(zhì)量檢測(cè)模塊判斷出當(dāng)前GOP中的圖像質(zhì)量沒有下降時(shí), 將當(dāng)前GOP的實(shí)際碼率作為下一個(gè)GOP的編碼碼率Be,并將下一個(gè)GOP作為當(dāng)前GOP后,設(shè)置當(dāng)前GOP的目標(biāo)碼率Bs;所述編碼模塊,用于按照現(xiàn)有方法對(duì)視頻圖像中的第一個(gè)GOP進(jìn)行編碼;和,當(dāng)質(zhì)量檢測(cè)模塊判斷出當(dāng)前GOP中的圖像質(zhì)量下降時(shí),將高于當(dāng)前跳幀級(jí)別一級(jí)以上的跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)下一個(gè)GOP進(jìn)行編碼;和,當(dāng)質(zhì)量檢測(cè)模塊判斷出當(dāng)前GOP中的圖像質(zhì)量沒有下降時(shí),根據(jù)碼率設(shè)置模塊中的編碼碼率禮與目標(biāo)碼率Bs的關(guān)系,確定出當(dāng)前GOP的當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)下一個(gè)GOP進(jìn)行編碼。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,該裝置還包括跳幀表建立模塊,用于根據(jù)采集幀率和編碼幀率建立跳幀表,所述跳幀表中包含了跳幀級(jí)別及其對(duì)應(yīng)的編碼幀率。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述編碼模塊,用于當(dāng)Be > (1+A% )*BS時(shí),清零表征Be和Bs關(guān)系的兩個(gè)統(tǒng)計(jì)值SO和Si,所述SO表示編碼碼率B6連續(xù)小于目標(biāo)碼率Bs個(gè)數(shù),所述Sl表示編碼碼率B6連續(xù)小于(1+A%)倍的目標(biāo)碼率Bs的GOP個(gè)數(shù),所述表示恒定比特率CBR碼率控制允許的最大超標(biāo)值,且0<A ^ 10 ;當(dāng)當(dāng)前跳幀級(jí)別為最高跳幀級(jí)別時(shí),根據(jù)跳幀表建立模塊建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;當(dāng)當(dāng)前跳幀級(jí)別為次高跳幀級(jí)別時(shí), 判斷禮與(1+B%)*BS的大小,所述表示CBR碼率控制允許的最大超標(biāo)值,5<B< 15 且B > A,當(dāng)Be > (1+B%)*BS時(shí),將高一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表建立模塊建立的跳幀表中當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼,當(dāng) Be ( (1+B%)*BS時(shí),直接根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;否則,將高一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表建立模塊建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。
11.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述編碼模塊,用于當(dāng)Be < Bs時(shí),將表征&和Bs關(guān)系的兩個(gè)統(tǒng)計(jì)值SO和Sl各加1,所述SO表示編碼碼率B6連續(xù)小于目標(biāo)碼率Bs WGOP個(gè)數(shù),所述Sl表示編碼碼率B6連續(xù)小于(1+A%)倍的目標(biāo)碼率Bs的GOP個(gè)數(shù),所述表示恒定比特率CBR碼率控制允許的最大超標(biāo)值,且0<A ^ 10 ;判斷SO > TO或Sl > Tl中的一個(gè)是否成立,所述TO和Tl分別表示SO和Sl兩個(gè)統(tǒng)計(jì)值能夠達(dá)到的最大值,如果是,將低一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別,并分別清零SO和 Sl后,根據(jù)跳幀表建立模塊建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;否則,直接根據(jù)跳幀表建立模塊建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。
12.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述編碼模塊,用于當(dāng)Bs彡B6彡(1+A% ) *BS時(shí),清零表征B6和Bs關(guān)系的統(tǒng)計(jì)值SO,并將表征B6和Bs關(guān)系的統(tǒng)計(jì)值Sl加1,所述SO表示編碼碼率&連續(xù)小于目標(biāo)碼率Bs的GOP個(gè)數(shù),所述Sl表示編碼碼率禮連續(xù)小于(1+A%)倍的目標(biāo)碼率Bs個(gè)數(shù),所述表示恒定比特率CBR 碼率控制允許的最大超標(biāo)值,且0 < A < 10 ;判斷Sl > Tl是否成立,所述Tl表示SO和Sl兩個(gè)統(tǒng)計(jì)值能夠達(dá)到的最大值,如果是, 將低一級(jí)跳幀級(jí)別作為當(dāng)前跳幀級(jí)別,并清零統(tǒng)計(jì)值Sl后,根據(jù)跳幀表建立模塊建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼;否則,直接根據(jù)跳幀表建立模塊建立的跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。
全文摘要
本發(fā)明公開了一種視頻圖像編碼方法按照現(xiàn)有方法對(duì)視頻圖像中的第一個(gè)GOP進(jìn)行編碼,判斷當(dāng)前已編碼的GOP中的圖像質(zhì)量是否下降,如果是,按照優(yōu)先跳幀的原則對(duì)下一個(gè)GOP中的圖像進(jìn)行編碼;否則,將當(dāng)前GOP的實(shí)際碼率作為下一個(gè)GOP的編碼碼率,并將下一個(gè)GOP作為當(dāng)前GOP后,設(shè)置當(dāng)前GOP的目標(biāo)碼率;根據(jù)編碼碼率與目標(biāo)碼率的關(guān)系,確定出當(dāng)前GOP的當(dāng)前跳幀級(jí)別后,根據(jù)跳幀表中與當(dāng)前跳幀級(jí)別對(duì)應(yīng)的編碼幀率對(duì)當(dāng)前GOP中的圖像進(jìn)行編碼。本發(fā)明同時(shí)公開了一種視頻圖像編碼裝置,應(yīng)用本發(fā)明所述的視頻圖像編碼方法和裝置,不僅能夠穩(wěn)定視頻圖像的質(zhì)量,而且,在視頻圖像質(zhì)量穩(wěn)定的情況下,目標(biāo)幀率和目標(biāo)碼率都能夠自適應(yīng)網(wǎng)絡(luò)。
文檔編號(hào)H04N7/14GK102457728SQ20101052749
公開日2012年5月16日 申請(qǐng)日期2010年10月27日 優(yōu)先權(quán)日2010年10月27日
發(fā)明者陳航鋒 申請(qǐng)人:杭州華三通信技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1