一種碼率控制的方法和裝置的制造方法
【專利摘要】本發(fā)明適用于視頻編碼領(lǐng)域,提供了一種碼率控制的方法和裝置,旨在解決現(xiàn)有技術(shù)中不能及時糾正碼率偏差,造成整體碼率與目標(biāo)碼率偏差較大,無法精確控制碼率的問題。所述方法包括:接收編碼器編碼所需的參數(shù)并進(jìn)行配置;控制編碼器根據(jù)參數(shù)對視頻數(shù)據(jù)第n個GOP單元進(jìn)行編碼,并統(tǒng)計(jì)第1個至第n個GOP單元的累計(jì)碼率偏差;根據(jù)累計(jì)碼率偏差調(diào)整第n+1個GOP單元的目標(biāo)碼率,直到所述視頻數(shù)據(jù)的編碼結(jié)束為止。本發(fā)明的技術(shù)方案通過統(tǒng)計(jì)當(dāng)前已經(jīng)完成編碼的GOP單元的累計(jì)碼率偏差,并根據(jù)該累計(jì)碼率偏差調(diào)整下一個GOP單元的目標(biāo)碼率,實(shí)現(xiàn)在視頻編碼過程中動態(tài)控制整體碼率接近目標(biāo)碼率,達(dá)到精確控制碼率的目的。
【專利說明】
_種碼率控制的方法和裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及視頻編碼技術(shù)領(lǐng)域,尤其涉及一種碼率控制的方法和裝置。
【背景技術(shù)】
[0002]在視頻編碼過程中,由于受到存儲空間或者帶寬等因素的限制,需要對碼率進(jìn)行控制,以滿足存儲空間或者帶寬的要求。碼率控制涉及到三個主要的參數(shù):目標(biāo)碼率、QP(Quantizat1n Parameter,量化參數(shù))和GOP(Group Of Pictures,畫面組)單元長度。編碼器在保證碼流滿足QP范圍要求的前提下使視頻每一個GOP單元對應(yīng)碼流的平均碼率盡可能接近目標(biāo)碼率,以達(dá)到整體碼率接近目標(biāo)碼率的目的。
[0003]現(xiàn)有技術(shù)的方法在對每一個GOP單元控制碼率時,可能會出現(xiàn)有些GOP單元的碼率偏差較大,即平均碼率偏離目標(biāo)碼率較遠(yuǎn),而后續(xù)的GOP單元卻未進(jìn)行相應(yīng)的調(diào)整,造成整體碼率偏離目標(biāo)碼率較遠(yuǎn),達(dá)不到精確控制碼率的目的。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種碼率控制的方法和裝置,旨在解決現(xiàn)有技術(shù)中不能及時糾正碼率偏差,造成整體碼率與目標(biāo)碼率偏差較大,無法精確控制碼率的問題。
[0005]本發(fā)明的第一方面,提供一種碼率控制的方法,包括:
[0006]接收編碼器編碼所需的參數(shù)并進(jìn)行配置,所述參數(shù)包括初始目標(biāo)碼率,量化參數(shù)QP值和畫面組GOP單元的長度;
[0007]控制編碼器根據(jù)所述參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并統(tǒng)計(jì)第I個至第η個GOP單元的累計(jì)碼率偏差,所述η為大于O的整數(shù);
[0008]根據(jù)所述累計(jì)碼率偏差調(diào)整第η+1個GOP單元的目標(biāo)碼率以對所述第η+1個GOP單元進(jìn)行編碼,直到所述視頻數(shù)據(jù)的編碼結(jié)束為止。
[0009]本發(fā)明的第二方面,提供一種碼率控制的裝置,包括:
[0010]參數(shù)配置模塊,用于接收編碼器編碼所需的參數(shù)并進(jìn)行配置,所述參數(shù)包括初始目標(biāo)碼率,量化參數(shù)QP值和畫面組GOP單元的長度;
[0011]編碼統(tǒng)計(jì)模塊,用于控制編碼器根據(jù)所述參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并統(tǒng)計(jì)第I個至第η個GOP單元的累計(jì)碼率偏差,所述η為大于O的整數(shù);
[0012]碼率調(diào)整模塊,用于根據(jù)所述累計(jì)碼率偏差調(diào)整第η+1個GOP單元的目標(biāo)碼率以對所述第η+1個GOP單元進(jìn)行編碼,直到所述視頻數(shù)據(jù)的編碼結(jié)束為止。
[0013]本發(fā)明與現(xiàn)有技術(shù)相比存在的有益效果是:通過統(tǒng)計(jì)當(dāng)前已經(jīng)完成編碼的GOP單元的累計(jì)碼率偏差,并根據(jù)該累計(jì)碼率偏差調(diào)整下一個GOP單元的目標(biāo)碼率,實(shí)現(xiàn)在視頻編碼過程中動態(tài)控制整體碼率接近目標(biāo)碼率,達(dá)到精確控制碼率的目的。
【附圖說明】
[0014]圖1是本發(fā)明實(shí)施例一提供的一種碼率控制的方法的流程圖;
[0015]圖2是本發(fā)明實(shí)施例二提供的一種碼率控制的方法的流程圖;
[0016]圖3是本發(fā)明實(shí)施例三提供的一種碼率控制的裝置的結(jié)構(gòu)示意圖;
[0017]圖4是本發(fā)明實(shí)施例四提供的一種碼率控制的裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0018]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0019]以下結(jié)合具體附圖對本發(fā)明的實(shí)現(xiàn)進(jìn)行詳細(xì)的描述。
[0020]實(shí)施例一:
[0021]圖1是本發(fā)明實(shí)施例一提供的一種碼率控制的方法的流程圖,具體包括步驟SlOl至S103,詳述如下:
[0022]SlOl、接收編碼器編碼所需的參數(shù)并進(jìn)行配置,該參數(shù)包括初始目標(biāo)碼率,量化參數(shù)QP值和畫面組GOP單元的長度。
[0023]具體地,在編碼器對視頻數(shù)據(jù)進(jìn)行編碼前,需要對編碼所需的碼率控制相關(guān)的參數(shù)進(jìn)行配置。
[0024I 這些參數(shù)包括初始目標(biāo)碼率,量化參數(shù)QP值和畫面組GOP單元的長度。
[0025]初始目標(biāo)碼率即為希望編碼器所能達(dá)到的目標(biāo)碼率,根據(jù)存儲空間或者帶寬限制的要求,初始目標(biāo)碼率的取值范圍通??梢栽?Kbps到20Mbps之間。QP值用于表征編碼后的圖像質(zhì)量,QP值越小對應(yīng)的圖像質(zhì)量越高,QP值的取值范圍通??梢栽?到51之間,其中QP值的最小值的取值范圍在10到20之間,QP值的最大值的取值范圍在30到51之間。GOP單元的長度代表一個GOP單元包含的幀的數(shù)量,其取值范圍通常可以在30到300之間。
[0026]S102、控制編碼器根據(jù)參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并統(tǒng)計(jì)第I個至第η個GOP單元的累計(jì)碼率偏差,η為大于O的整數(shù)。
[0027]具體地,控制編碼器根據(jù)配置的碼率控制的參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,計(jì)算第η個GOP單元的碼率與第η個GOP單元的目標(biāo)碼率的偏差,并統(tǒng)計(jì)第I個至第η個GOP單元的累計(jì)碼率偏差,其中η為大于O的整數(shù)。
[0028]例如,當(dāng)η等于I時,編碼器首先對第I個GOP單元進(jìn)行編碼,并計(jì)算出第I個GOP單元的碼率與第I個GOP單元的目標(biāo)碼率即初始目標(biāo)碼率的偏差,該偏差即為累計(jì)碼率偏差;當(dāng)η等于2時,編碼器對第2個GOP單元進(jìn)行編碼,并計(jì)算出第2個GOP單元的碼率與第2個GOP單元的目標(biāo)碼率的偏差,并將此偏差累計(jì)到第I個GOP單元的累計(jì)碼率偏差上;當(dāng)η等于3時,編碼器對第3個GOP單元進(jìn)行編碼,并計(jì)算出第3個GOP單元的碼率與第3個GOP單元的目標(biāo)碼率的偏差,并將此偏差累計(jì)到第I個GOP單元至第2個GOP單元的累計(jì)碼率偏差上;以此類推,可以計(jì)算出第I個至第η個GOP單元的累計(jì)碼率偏差。
[0029]S103、根據(jù)累計(jì)碼率偏差調(diào)整第η+1個GOP單元的目標(biāo)碼率以對第η+1個GOP單元進(jìn)行編碼,直到視頻數(shù)據(jù)的編碼結(jié)束為止。
[0030]具體地,根據(jù)步驟S102計(jì)算出的第I個至第η個GOP單元的累計(jì)碼率偏差來調(diào)整第η+ 1個GOP單元的目標(biāo)碼率,當(dāng)?shù)贗個至第η個GOP單元的累計(jì)碼率偏差大于一定的閾值,則調(diào)低第η+1個GOP單元的目標(biāo)碼率,當(dāng)?shù)贗個至第η個GOP單元的累計(jì)碼率偏差小于一定的閾值,則調(diào)高第η+1個GOP單元的目標(biāo)碼率。
[0031]控制編碼器根據(jù)第η+1個GOP單元的目標(biāo)碼率繼續(xù)對第η+1個GOP單元進(jìn)行編碼,計(jì)算第η+1個GOP單元的碼率與第η+1個GOP單元的目標(biāo)碼率的偏差,并統(tǒng)計(jì)第I個至第η+1個GOP單元的累計(jì)碼率偏差,根據(jù)該累計(jì)碼率偏差繼續(xù)調(diào)整第η+2個GOP單元的目標(biāo)碼率,即循環(huán)執(zhí)行步驟S102和步驟S103,直到視頻數(shù)據(jù)的編碼結(jié)束為止。
[0032]本實(shí)施例中,通過統(tǒng)計(jì)當(dāng)前已經(jīng)完成編碼的GOP單元的累計(jì)碼率偏差,并根據(jù)該累計(jì)碼率偏差調(diào)整下一個GOP單元的目標(biāo)碼率,實(shí)現(xiàn)在視頻編碼過程中動態(tài)控制整體碼率接近目標(biāo)碼率,達(dá)到精確控制碼率的目的。
[0033]實(shí)施例二:
[0034]圖2是本發(fā)明實(shí)施例二提供的一種碼率控制的方法的流程圖,具體包括步驟S201至S203,詳述如下:
[0035]S201、接收編碼器編碼所需的參數(shù)并進(jìn)行配置,該參數(shù)包括初始目標(biāo)碼率,量化參數(shù)QP值和畫面組GOP單元的長度。
[0036]具體地,在編碼器對視頻數(shù)據(jù)進(jìn)行編碼前,需要對編碼所需的碼率控制相關(guān)的參數(shù)進(jìn)行配置。
[0037I 這些參數(shù)包括初始目標(biāo)碼率,量化參數(shù)QP值和畫面組GOP單元的長度。
[0038]初始目標(biāo)碼率即為希望編碼器所能達(dá)到的目標(biāo)碼率,根據(jù)存儲空間或者帶寬限制的要求,初始目標(biāo)碼率的取值范圍通??梢栽?Kbps到20Mbps之間。QP值用于表征編碼后的圖像質(zhì)量,QP值越小對應(yīng)的圖像質(zhì)量越高,QP值的取值范圍通常可以在1到51之間,其中QP值的最小值的取值范圍在10到20之間,QP值的最大值的取值范圍在30到51之間。GOP單元的長度代表一個GOP單元包含的幀的數(shù)量,其取值范圍通常可以在30到300之間。
[0039]S202、控制編碼器根據(jù)參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并計(jì)算第η個GOP單元的平均碼率Rn,n為大于O的整數(shù)。
[0040]具體地,控制編碼器根據(jù)配置的碼率控制的參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并計(jì)算出第η個GOP單元的平均碼率匕,其中η為大于O的整數(shù)。
[0041]進(jìn)一步地,控制編碼器根據(jù)配置的碼率控制的參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼時,使第η個GOP單元的碼流在滿足QP值要求的同時,第η個GOP單元的平均碼率1^與第η個GOP單元的目標(biāo)碼率TRn的偏差在預(yù)置范圍內(nèi)。
[0042]3203、按照公式1?_13丨3811 = 1?_13丨3811—1+(1?11-11?11)計(jì)算第1個至第11個60?單元的累計(jì)碼率偏差R_biasn,R_biasn—i為第η個GOP單元前n-1個GOP單元的累計(jì)碼率偏差,TRn為第η個GOP單元的目標(biāo)碼率,當(dāng)η等于I時,TRn為初始目標(biāo)碼率,R_biaSQ設(shè)置為O。
[0043]具體地,按照公式1?_1313811 = 1?_1313811-1+(1^-110計(jì)算出第1個至第11個60?單元的累計(jì)碼率偏差R_biasn。
[0044]例如,當(dāng)η等于I時,由于R_biaSQ為0,則第I個GOP單元的累計(jì)碼率偏差R_biaS1即為第I個GOP單元的平均碼率&與初始目標(biāo)碼率的差值;當(dāng)η等于2時,先計(jì)算出第2個GOP單元的平均碼率R2與第2個GOP單元的目標(biāo)碼率TR2的差值,再將該差值累加到第I個GOP單元的累計(jì)碼率偏差R_biaS1l,即可得到第I個至第2個GOP單元的累計(jì)碼率偏差R_bias2;以此類推,可以計(jì)算出第I個至第η個GOP單元的累計(jì)碼率偏差R_biasn。
[0045]S204、根據(jù)R_biasn計(jì)算第η+1個GOP單元的目標(biāo)碼率TRn+1,以對第η+1個GOP單元進(jìn)行編碼,直到視頻數(shù)據(jù)的編碼結(jié)束為止。
[0046]具體地,根據(jù)步驟S203計(jì)算出的第I個至第η個GOP單元的累計(jì)碼率偏差R_biasn,計(jì)算第η+1個GOP單元的目標(biāo)碼率TRn+1。
[0047]進(jìn)一步地,具體計(jì)算過程如下:
[0048]iR_biasn大于預(yù)先設(shè)置的最大閾值時,按照公式TRn+1 = TR_Kl*R_biasn計(jì)算第η+1個GOP單元的目標(biāo)碼率TRn+1,使得TRn+1小于初始目標(biāo)碼率TR,其中Kl為預(yù)置的調(diào)節(jié)系數(shù),最大閾值為正數(shù);
[0049]iR_biasn小于預(yù)先設(shè)置的最小閾值時,按照公式TRn+1 = TR_K2*R_biasn計(jì)算第η+1個GOP單元的目標(biāo)碼率TRn+1,使得TRn+1大于初始目標(biāo)碼率TR,其中Κ2為預(yù)置的調(diào)節(jié)系數(shù),最小閾值為負(fù)數(shù)。
[0050]控制編碼器根據(jù)第η+1個GOP單元的目標(biāo)碼率TRn+1繼續(xù)對第η+1個GOP單元進(jìn)行編碼,計(jì)算第η+1個GOP單元的平均碼率Rn+1與第η+1個GOP單元的目標(biāo)碼率TRn+1的偏差,并統(tǒng)計(jì)第I個至第η+1個GOP單元的累計(jì)碼率偏差R_biasn+1,根據(jù)R_biasn+1繼續(xù)調(diào)整第η+2個GOP單元的目標(biāo)碼率TRn+2,即循環(huán)執(zhí)行步驟S202至步驟S204,直到視頻數(shù)據(jù)的編碼結(jié)束為止。
[0051]本實(shí)施例中,通過統(tǒng)計(jì)當(dāng)前已經(jīng)完成編碼的GOP單元的累計(jì)碼率偏差,并根據(jù)該累計(jì)碼率偏差調(diào)整下一個GOP單元的目標(biāo)碼率,當(dāng)累計(jì)碼率偏差大于最大閾值時,通過調(diào)節(jié)系數(shù)調(diào)低下一個GOP單元的目標(biāo)碼率,當(dāng)累計(jì)碼率偏差小于最小閾值時,通過調(diào)節(jié)系數(shù)調(diào)高下一個GOP單元的目標(biāo)碼率,實(shí)現(xiàn)在視頻編碼過程中動態(tài)控制整體碼率接近目標(biāo)碼率,達(dá)到精確控制碼率的目的。
[0052]實(shí)施例三:
[0053]圖3是本發(fā)明實(shí)施例三提供的一種碼率控制的裝置的結(jié)構(gòu)示意圖,為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。圖3示例的一種碼率控制的裝置可以是前述實(shí)施例一提供的一種碼率控制的方法的執(zhí)行主體,其可以是控制設(shè)備或者控制設(shè)備的一個功能模塊。圖3示例的一種碼率控制的裝置主要包括:參數(shù)配置模塊31、編碼統(tǒng)計(jì)模塊32和碼率調(diào)整模塊33 ο各功能模塊詳細(xì)說明如下:
[0054]參數(shù)配置模塊31,用于接收編碼器編碼所需的參數(shù)并進(jìn)行配置,該參數(shù)包括初始目標(biāo)碼率,量化參數(shù)QP值和畫面組GOP單元的長度;
[0055]編碼統(tǒng)計(jì)模塊32,用于控制編碼器根據(jù)參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并統(tǒng)計(jì)第I個至第η個GOP單元的累計(jì)碼率偏差,η為大于O的整數(shù);
[0056]碼率調(diào)整模塊33,用于根據(jù)累計(jì)碼率偏差調(diào)整第η+1個GOP單元的目標(biāo)碼率以對第η+1個GOP單元進(jìn)行編碼,直到視頻數(shù)據(jù)的編碼結(jié)束為止。
[0057]本實(shí)施例提供的一種碼率控制的裝置中各模塊實(shí)現(xiàn)各自功能的過程,具體可參考前述圖1所示實(shí)施例的描述,此處不再贅述。
[0058]從上述圖3示例的一種碼率控制的裝置可知,本實(shí)施例中,通過統(tǒng)計(jì)當(dāng)前已經(jīng)完成編碼的GOP單元的累計(jì)碼率偏差,并根據(jù)該累計(jì)碼率偏差調(diào)整下一個GOP單元的目標(biāo)碼率,實(shí)現(xiàn)在視頻編碼過程中動態(tài)控制整體碼率接近目標(biāo)碼率,達(dá)到精確控制碼率的目的。
[0059]實(shí)施例四:
[0060]圖4是本發(fā)明實(shí)施例四提供的一種碼率控制的裝置的結(jié)構(gòu)示意圖,為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。圖4示例的一種碼率控制的裝置可以是前述實(shí)施例二提供的一種碼率控制的方法的執(zhí)行主體,其可以是控制設(shè)備或者控制設(shè)備的一個功能模塊。圖4示例的一種碼率控制的裝置主要包括:參數(shù)配置模塊41、編碼統(tǒng)計(jì)模塊42和碼率調(diào)整模塊43 ο各功能模塊詳細(xì)說明如下:
[0061]參數(shù)配置模塊41,用于接收編碼器編碼所需的參數(shù)并進(jìn)行配置,該參數(shù)包括初始目標(biāo)碼率,量化參數(shù)QP值和畫面組GOP單元的長度;
[0062]編碼統(tǒng)計(jì)模塊42,用于控制編碼器根據(jù)參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并統(tǒng)計(jì)第I個至第η個GOP單元的累計(jì)碼率偏差,η為大于O的整數(shù);
[0063]碼率調(diào)整模塊43,用于根據(jù)累計(jì)碼率偏差調(diào)整第η+1個GOP單元的目標(biāo)碼率以對第η+1個GOP單元進(jìn)行編碼,直到視頻數(shù)據(jù)的編碼結(jié)束為止。
[0064]進(jìn)一步地,編碼統(tǒng)計(jì)模塊42包括:
[0065]平均碼率計(jì)算子模塊421,用于控制編碼器根據(jù)參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并計(jì)算第η個GOP單元的平均碼率Rn;
[ΟΟ??]累計(jì)偏差計(jì)算子模塊422,用于按照公式R_biasn = R_biasn—i+(Rn-TRn)計(jì)算第I個至第]1個60?單元的累計(jì)碼率偏差1?_1313811,1?_1313811-1為第11個60?單元前11-1個60?單元的累計(jì)碼率偏差,TRn為第η個GOP單元的目標(biāo)碼率,當(dāng)η等于I時,TRn為初始目標(biāo)碼率,R_biaso設(shè)置為O。
[0067]進(jìn)一步的,平均碼率計(jì)算子模塊421,還用于控制編碼器根據(jù)參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并計(jì)算第η個GOP單元的平均碼率1^,使第η個GOP單元的碼流在滿足QP值要求的同時,Rn與第η個GOP單元的目標(biāo)碼率偏差在預(yù)置范圍內(nèi)。
[0068]進(jìn)一步地,碼率調(diào)整模塊43包括:
[0069]目標(biāo)碼率計(jì)算子模塊431,用于根計(jì)算第η+1個GOP單元的目標(biāo)碼率TRn+Ι ο
[0070]進(jìn)一步地,目標(biāo)碼率計(jì)算子模塊431,還用于:
[0071 ] iR_biasn大于最大閾值時,按照公式TRn+i = TR-Kl*R_biasn計(jì)算第η+1個GOP單元的目標(biāo)碼率TRn+1,使得TRn+1小于初始目標(biāo)碼率TR,K1為預(yù)置的調(diào)節(jié)系數(shù);
[0072]iR_biasn小于最小閾值時,按照公式TRn+i = TR_K2*R_biasn計(jì)算第η+1個GOP單元的目標(biāo)碼率TRn+1,使得TRn+1大于初始目標(biāo)碼率TR,K2為預(yù)置的調(diào)節(jié)系數(shù)。
[0073]本實(shí)施例提供的一種碼率控制的裝置中各模塊實(shí)現(xiàn)各自功能的過程,具體可參考前述圖2所示實(shí)施例的描述,此處不再贅述。
[0074]從上述圖4示例的一種碼率控制的裝置可知,本實(shí)施例中,通過統(tǒng)計(jì)當(dāng)前已經(jīng)完成編碼的GOP單元的累計(jì)碼率偏差,并根據(jù)該累計(jì)碼率偏差調(diào)整下一個GOP單元的目標(biāo)碼率,當(dāng)累計(jì)碼率偏差大于最大閾值時,通過調(diào)節(jié)系數(shù)調(diào)低下一個GOP單元的目標(biāo)碼率,當(dāng)累計(jì)碼率偏差小于最小閾值時,通過調(diào)節(jié)系數(shù)調(diào)高下一個GOP單元的目標(biāo)碼率,實(shí)現(xiàn)在視頻編碼過程中動態(tài)控制整體碼率接近目標(biāo)碼率,達(dá)到精確控制碼率的目的。
[0075]需要說明的是,本說明書中的各個實(shí)施例均采用遞進(jìn)的方式描述,每一個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同或者相似的部分互相參見即可。對于裝置類實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
[0076]值得注意的是,上述裝置實(shí)施例中,所包括的各個模塊只是按照功能邏輯進(jìn)行劃分的,但并不局限于上述的劃分,只要能夠?qū)崿F(xiàn)相應(yīng)的功能即可;另外,各功能模塊的具體名稱也只是為了便于相互區(qū)分,并不用于限制本發(fā)明的保護(hù)范圍。
[0077]本領(lǐng)域普通技術(shù)人員可以理解,實(shí)現(xiàn)上述各實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,相應(yīng)的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,所述的存儲介質(zhì),如R0M/RAM、磁盤或光盤等。
[0078]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種碼率控制的方法,其特征在于,包括: 接收編碼器編碼所需的參數(shù)并進(jìn)行配置,所述參數(shù)包括初始目標(biāo)碼率,量化參數(shù)QP值和畫面組GOP單元的長度; 控制編碼器根據(jù)所述參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并統(tǒng)計(jì)第I個至第η個GOP單元的累計(jì)碼率偏差,所述η為大于O的整數(shù); 根據(jù)所述累計(jì)碼率偏差調(diào)整第η+1個GOP單元的目標(biāo)碼率以對所述第η+1個GOP單元進(jìn)行編碼,直到所述視頻數(shù)據(jù)的編碼結(jié)束為止。2.根據(jù)權(quán)利要求1所述的碼率控制的方法,其特征在于,所述控制編碼器根據(jù)所述參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并統(tǒng)計(jì)第I個至第η個GOP單元的累計(jì)碼率偏差包括: 控制編碼器根據(jù)所述參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并計(jì)算所述第η個GOP單元的平均碼率Rn; 按照公式1?_1^3811 = 1?_1313811-1+(1?11-11^)計(jì)算第1個至第11個60?單元的累計(jì)碼率偏差1?_biasn,所述R_biasn—I為所述第η個GOP單元前η-1個GOP單元的累計(jì)碼率偏差,所述TRn為所述第η個GOP單元的目標(biāo)碼率,當(dāng)η等于I時,所述TRn為所述初始目標(biāo)碼率,R_biaso設(shè)置為O。3.根據(jù)權(quán)利要求2所述的碼率控制的方法,其特征在于,所述控制編碼器根據(jù)所述參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并計(jì)算所述第η個GOP單元的平均碼率匕包括: 控制編碼器根據(jù)所述參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并計(jì)算所述第η個GOP單元的平均碼率Rn,使所述第η個GOP單元的碼流在滿足所述QP值要求的同時,所述匕與所述第η個GOP單元的目標(biāo)碼率TRn的偏差在預(yù)置范圍內(nèi)。4.根據(jù)權(quán)利要求2所述的碼率控制的方法,其特征在于,所述根據(jù)所述累計(jì)碼率偏差調(diào)整第η+1個GOP單元的目標(biāo)碼率包括: 根據(jù)所述1?_1^3811計(jì)算第η+1個GOP單元的目標(biāo)碼率TRn+i。5.根據(jù)權(quán)利要求4所述的碼率控制的方法,其特征在于,所述根據(jù)所述R_biasn計(jì)算第η+I個GOP單元的目標(biāo)碼率TRn+1包括: 當(dāng)所述R_biasn大于最大閾值時,按照公式TRn+i = TR-Kl*R_biasn計(jì)算第η+1個GOP單元的目標(biāo)碼率TRn+1,使得所述TRn+1小于所述初始目標(biāo)碼率TR,所述Kl為預(yù)置的調(diào)節(jié)系數(shù); 當(dāng)所述R_biasn小于最小閾值時,按照公式TRn+i = TR-K2*R_biasn計(jì)算所述第η+1個GOP單元的目標(biāo)碼率TRn+1,使得所述TRn+1大于所述初始目標(biāo)碼率TR,所述K2為預(yù)置的調(diào)節(jié)系數(shù)。6.一種碼率控制的裝置,其特征在于,包括: 參數(shù)配置模塊,用于接收編碼器編碼所需的參數(shù)并進(jìn)行配置,所述參數(shù)包括初始目標(biāo)碼率,量化參數(shù)QP值和畫面組GOP單元的長度; 編碼統(tǒng)計(jì)模塊,用于控制編碼器根據(jù)所述參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并統(tǒng)計(jì)第I個至第η個GOP單元的累計(jì)碼率偏差,所述η為大于O的整數(shù); 碼率調(diào)整模塊,用于根據(jù)所述累計(jì)碼率偏差調(diào)整第η+1個GOP單元的目標(biāo)碼率以對所述第η+1個GOP單元進(jìn)行編碼,直到所述視頻數(shù)據(jù)的編碼結(jié)束為止。7.根據(jù)權(quán)利要求6所述的碼率控制的裝置,其特征在于,所述編碼統(tǒng)計(jì)模塊包括: 平均碼率計(jì)算子模塊,用于控制編碼器根據(jù)所述參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并計(jì)算所述第η個GOP單元的平均碼率Rn; 累計(jì)偏差計(jì)算子模塊,用于按照公SR_biasn = R_biasn-1+(Rn-TRn)計(jì)算第I個至第η個GOP單元的累計(jì)碼率偏差R_biasn,所述R_biasn—i為所述第η個GOP單元前n-1個GOP單元的累計(jì)碼率偏差,所述TRnS所述第η個GOP單元的目標(biāo)碼率,當(dāng)η等于I時,所述TRn為所述初始目標(biāo)碼率,R_biaso設(shè)置為O。8.根據(jù)權(quán)利要求7所述的碼率控制的裝置,其特征在于,所述平均碼率計(jì)算子模塊,還用于控制編碼器根據(jù)所述參數(shù)對視頻數(shù)據(jù)第η個GOP單元進(jìn)行編碼,并計(jì)算所述第η個GOP單元的平均碼率Rn,使所述第η個GOP單元的碼流在滿足所述QP值要求的同時,所述匕與所述第η個GOP單元的目標(biāo)碼率TRn的偏差在預(yù)置范圍內(nèi)。9.根據(jù)權(quán)利要求7所述的碼率控制的方法,其特征在于,所述碼率調(diào)整模塊包括: 目標(biāo)碼率計(jì)算子模塊,用于根據(jù)所計(jì)算第η+1個GOP單元的目標(biāo)碼率TRn+1。10.根據(jù)權(quán)利要求9所述的碼率控制的裝置,其特征在于,所述目標(biāo)碼率計(jì)算子模塊,還用于: 當(dāng)所述R_biasn大于最大閾值時,按照公式TRn+i = TR-Kl*R_biasn計(jì)算第η+1個GOP單元的目標(biāo)碼率TRn+1,使得所述TRn+1小于所述初始目標(biāo)碼率TR,所述Kl為預(yù)置的調(diào)節(jié)系數(shù); 當(dāng)所述R_biasn小于最小閾值時,按照公式TRn+i = TR-K2*R_biasn計(jì)算所述第η+1個GOP單元的目標(biāo)碼率TRn+1,使得所述TRn+1大于所述初始目標(biāo)碼率TR,所述K2為預(yù)置的調(diào)節(jié)系數(shù)。
【文檔編號】H04N19/196GK106060548SQ201610365399
【公開日】2016年10月26日
【申請日】2016年5月26日
【發(fā)明人】冷永春, 胡勝發(fā)
【申請人】安凱(廣州)微電子技術(shù)有限公司