一種用于視頻編碼的碼率控制方法及裝置的制造方法
【專利摘要】本發(fā)明公開了一種用于視頻編碼的快速碼率控制方法及裝置,其方法包括:設(shè)置視頻序列的目標(biāo)碼率B以及目標(biāo)幀率F;從第0個(gè)視頻幀開始依次對(duì)第i個(gè)視頻幀進(jìn)行編碼,直至視頻序列的最后的一個(gè)視頻幀;在第i個(gè)視頻幀編碼完成后,計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C(i);基于C(i)預(yù)測第i+1個(gè)視頻幀所對(duì)應(yīng)的量化參數(shù)QP(i+1),并采用QP(i+1)對(duì)第i+1個(gè)視頻幀進(jìn)行編碼。本發(fā)明的快速碼率控制方法及裝置,通過當(dāng)前視頻幀對(duì)應(yīng)的計(jì)算復(fù)雜度參數(shù)等預(yù)測下一個(gè)視頻幀的量化參數(shù)QP,進(jìn)行下一個(gè)視頻幀的編碼,使視頻幀在編碼中占用比特?cái)?shù)能夠合理分配,能夠?qū)σ曨l的碼率進(jìn)行控制,可以提高視頻的觀看質(zhì)量,并可以提高編碼效率,節(jié)省編碼時(shí)間。
【專利說明】
一種用于視頻編碼的碼率控制方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及視頻編碼技術(shù)領(lǐng)域,特別涉及一種用于視頻編碼的碼率控制方法及裝 置。
【背景技術(shù)】
[0002] 對(duì)于HEVC視頻編碼標(biāo)準(zhǔn),其相對(duì)于H. 264及AVS視頻編碼標(biāo)準(zhǔn),具有更高的壓縮性 能,HEVC相對(duì)于老一代編碼標(biāo)準(zhǔn)H. 264及AVS視頻編碼標(biāo)準(zhǔn)其運(yùn)算復(fù)雜度也相對(duì)大大提高。 HEVC視頻圖像的每個(gè)像素都可以通過與其相關(guān)的像素預(yù)測來降低該像素的冗余。HEVC圖像 視頻編碼的預(yù)測技術(shù)分為幀內(nèi)預(yù)測(Intra-prediction)和幀間預(yù)測(Inter-prediction)。 幀間預(yù)測根據(jù)預(yù)測方向又分為前向預(yù)測和雙向預(yù)測。如圖1所示,用幀內(nèi)預(yù)測編碼的幀圖像 稱為I(Intra)幀,用前向預(yù)測編碼的幀圖像稱為P幀,用雙向預(yù)測編碼的幀圖像稱為B幀。在 視頻壓縮中,一般壓縮的力度越大,視頻質(zhì)量就會(huì)越差,視頻的體積也相應(yīng)越小。在視頻壓 縮中,碼率控制是視頻編碼器中必備的關(guān)鍵模塊,一般要求在一段時(shí)間內(nèi)其視頻幀占用的 體積的平均值是恒定的。HEVC的量化方案與先前的編碼標(biāo)準(zhǔn)H. 264/AVC的方案基本一致,其 量化范圍依然是0 - 51,其量化值每增加6,與之對(duì)應(yīng)的量化步長將增長一倍。也就是說,QP 參數(shù)控制視頻壓縮的體積大小,量化參數(shù)越大,視頻體積越小,質(zhì)量越差。量化參數(shù)越小,視 頻體積越大,質(zhì)量越高。因此,在每幀視頻分配比特?cái)?shù)目時(shí),通過調(diào)整量化參數(shù)QP實(shí)現(xiàn)調(diào)整 視頻幀占用的比特?cái)?shù)目。目前,在視頻編碼中對(duì)于如何準(zhǔn)確有效的確定每幀的量化參數(shù)進(jìn) 行碼率控制還沒有很好的方法,由于視頻幀在編碼中占用比特?cái)?shù)數(shù)目設(shè)置不合理,使得圖 像的質(zhì)量受到影響,影響用戶的感受度。
【發(fā)明內(nèi)容】
[0003] 有鑒于此,本發(fā)明的目的在于提出一種用于視頻編碼的快速碼率控制方法及裝 置。
[0004] 基于上述目的,本發(fā)明提供一種用于視頻編碼的快速碼率控制方法,包括:設(shè)置視 頻序列的目標(biāo)碼率Β以及目標(biāo)幀率F;將所述視頻序列分割為一個(gè)或多個(gè)圖像組G0P;設(shè)置所 述視頻序列中的第〇個(gè)視頻幀對(duì)應(yīng)的量化參數(shù)QP(〇)的值,并設(shè)置與第〇個(gè)視頻幀對(duì)應(yīng)的計(jì) 算復(fù)雜度參數(shù)C(0),從所述第0個(gè)視頻幀開始依次對(duì)第i個(gè)視頻幀進(jìn)行編碼,直至所述視頻 序列的最后的一個(gè)視頻幀;其中,i為視頻幀的編號(hào),i> = 〇;其中,在第i個(gè)視頻幀編碼完成 后,計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的c(i);基于所述C(i)預(yù)測第i+Ι個(gè)視頻幀所對(duì)應(yīng)的量化參數(shù) QP( i+Ι),并米用所述QP( i+Ι)對(duì)第i+Ι個(gè)視頻幀進(jìn)行編碼。
[0005] 可選地,所述按照預(yù)設(shè)的規(guī)則將所述視頻流分割為一個(gè)或多個(gè)G0P包括:將所述視 頻流中的I幀或P幀作為分割幀;將所述視頻流中的一個(gè)分割幀以及此分割幀與下一個(gè)分割 幀之間的B幀組合為一個(gè)G0P。
[0006] 可選地,所述計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C(i)包括:在第i個(gè)視頻幀編碼完成后,統(tǒng) 計(jì)與第i個(gè)視頻幀相對(duì)應(yīng)的量化比例參數(shù)Qsca 1 e (i )和第i個(gè)視頻幀編碼占用的比特?cái)?shù)B (i),基于所述Qsca 1 e (i)和B (i)計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C(i)。
[0007] 可選地,統(tǒng)計(jì)與第i+1個(gè)視頻幀相對(duì)應(yīng)的量化比例參數(shù)Qscale(i)使用的公式為:
[0008]
[0009] 其中,當(dāng)i = 0時(shí),QP(0)為32,W為系數(shù)。
[00?0]可選地,基于所述Qscale (i)和B(i)計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C(i )使用的公式 為:
[0011] C(i) =C(i-l)+B(i)*Qscale(i);
[0012] 其中,當(dāng) i = 〇 時(shí),c(i-l)=〇。
[0013] 可選地,基于所述C(i)預(yù)測第i + 1個(gè)視頻幀所對(duì)應(yīng)的量化參數(shù)QP(i+l)包括:如果 第i+Ι個(gè)視頻幀為非B幀,則
[0014]
[0015]
[0016] 可選地,如果第i+Ι個(gè)視頻幀為B幀,則獲取此B幀所在的G0P中的非B幀的量化參數(shù) Qp_nb和幀號(hào) i_nb;確定此B幀的量化參數(shù)QP_b = Qp_nb+min(i+Ι - i_nb,5)。
[0017] 可選地,所述W為0.85。
[0018] 根據(jù)本發(fā)明的一個(gè)方面,本發(fā)明提供一種用于視頻編碼的快速碼率控制裝置,包 括:視頻參數(shù)設(shè)置模塊,用于設(shè)置視頻序列的目標(biāo)碼率B以及目標(biāo)幀率F;圖像分割模塊,用 于將所述視頻序列分割為一個(gè)或多個(gè)圖像組G0P;初始值設(shè)置模塊,用于設(shè)置所述視頻序列 中的第〇個(gè)視頻幀對(duì)應(yīng)的量化參數(shù)QP(〇)的值,并設(shè)置與第〇個(gè)視頻幀對(duì)應(yīng)的計(jì)算復(fù)雜度參 數(shù)C(0);視頻編碼模塊,用于從所述第0個(gè)視頻幀開始依次對(duì)第i個(gè)視頻幀進(jìn)行編碼,直至所 述視頻序列的最后的一個(gè)視頻幀;其中,i為視頻幀的編號(hào),i> = 〇;量化參數(shù)統(tǒng)計(jì)模塊,用于 在第i個(gè)視頻幀編碼完成后,計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C( i);量化參數(shù)設(shè)置模塊,用于基于 所述C(i)預(yù)測第i+Ι個(gè)視頻幀所對(duì)應(yīng)的量化參數(shù)QP(i+Ι);其中,所述視頻編碼模塊采用所 述QP(i+l)對(duì)第i+Ι個(gè)視頻幀進(jìn)行編碼。
[0019] 可選地,所述圖像分割模塊具體用于將所述視頻流中的I幀或P幀作為分割幀;將 所述視頻流中的一個(gè)分割幀以及此分割幀與下一個(gè)分割幀之間的B幀組合為一個(gè)G0P。
[0020] 可選地,所述量化參數(shù)統(tǒng)計(jì)模塊具體用于在第i個(gè)視頻幀編碼完成后,統(tǒng)計(jì)與第i 個(gè)視頻幀相對(duì)應(yīng)的量化比例參數(shù)Qscale(i)和第i個(gè)視頻幀編碼占用的比特?cái)?shù)B(i),基于所 述Qs ca 1 e (i)和B (i)計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C (i)。
[0021] 可選地,所述量化參數(shù)統(tǒng)計(jì)模塊統(tǒng)計(jì)與第i +1個(gè)視頻幀相對(duì)應(yīng)的量化比例參數(shù) Qscale(i)使用的公式為:
[0022]
[0023] 其中,當(dāng)i = 0時(shí),QP(0)為32,W為系數(shù)。
[0024]可選地,所述量化參數(shù)統(tǒng)計(jì)模炔基于所述Qscale( i)和B( i)計(jì)算與第i個(gè)視頻幀對(duì) 應(yīng)的C(i)使用的公式為:
[0025] C(i) = C(i_l)+B(i)*Qscale(i);
[0026] 其中,當(dāng) i = 〇 時(shí),c(i-l)=〇。
[0027] 可選地,如果第i + 1個(gè)視頻幀為非B幀,則所述量化參數(shù)設(shè)置模炔基于所述C(i)預(yù) 測第i+Ι個(gè)視頻幀所對(duì)應(yīng)的Qscale( i+Ι)和量化參數(shù)QP( i+Ι)使用的公式為:
[0028]
[0029]
[0030] 可選地,如果第i + Ι個(gè)視頻幀為B幀,則所述量化參數(shù)設(shè)置模塊獲取此B幀所在的 G0P中的非B幀的量化參數(shù)Qp_nb和幀號(hào)i_nb;所述量化參數(shù)設(shè)置模塊確定此B幀的量化參數(shù) QP_b = Qp_nb+min(i+l_i_nb,5) 〇
[0031] 可選地,所述W為0.85。
[0032] 本發(fā)明的用于視頻編碼的快速碼率控制方法和裝置,通過與當(dāng)前視頻幀對(duì)應(yīng)的量 化比例參數(shù)、編碼占用的比特?cái)?shù)據(jù)、計(jì)算復(fù)雜度參數(shù)等數(shù)據(jù)預(yù)測下一個(gè)視頻幀的量化比例 參數(shù)、量化參數(shù)QP,進(jìn)行下一個(gè)視頻幀的編碼,使視頻幀在編碼中占用比特?cái)?shù)能夠合理分 配,能夠?qū)σ曨l的碼率進(jìn)行控制,可以提高視頻的觀看質(zhì)量。
【附圖說明】
[0033] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖僅僅是 本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還 可以根據(jù)這些附圖獲得其他的附圖。
[0034]圖1為現(xiàn)有技術(shù)中I幀、P幀和B幀的預(yù)測原理示意圖;
[0035] 圖2為根據(jù)本發(fā)明的用于視頻編碼的快速碼率控制方法的一個(gè)實(shí)施例的流程示意 圖;
[0036] 圖3為根據(jù)本發(fā)明的用于視頻編碼的快速碼率控制方法的一個(gè)實(shí)施例中設(shè)置下一 幀的量化參數(shù)的流程示意圖;
[0037] 圖4為根據(jù)本發(fā)明的用于視頻編碼的快速碼率控制裝置的一個(gè)實(shí)施例的模塊示意 圖。
【具體實(shí)施方式】
[0038] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照 附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。
[0039]需要說明的是,本發(fā)明實(shí)施例中所有使用"第一"和"第二"的表述均是為了區(qū)分兩 個(gè)相同名稱非相同的實(shí)體或者非相同的參量,可見"第一" "第二"僅為了表述的方便,不應(yīng) 理解為對(duì)本發(fā)明實(shí)施例的限定,后續(xù)實(shí)施例對(duì)此不再一一說明。
[0040]圖2為根據(jù)本發(fā)明實(shí)施例的用于視頻編碼的快速碼率控制方法的一個(gè)實(shí)施例的流 程示意圖,如圖2所示:
[0041 ]步驟101,設(shè)置視頻序列的目標(biāo)碼率B以及目標(biāo)幀率F。
[0042] 例如,視頻流的目標(biāo)碼率為B,單位為bits per second,即為當(dāng)前視頻流平均每秒 占用的比特?cái)?shù)目為B。視頻流的目標(biāo)幀率為F,單位為frames per second,即一秒鐘觀看的 視頻幀的數(shù)目。
[0043]步驟102,按照預(yù)設(shè)的規(guī)則將視頻流分割為一個(gè)或多個(gè)圖像組G0PA0P由多個(gè)連續(xù) 的幀組成,G0P中的編碼幀包括I幀、P幀和B幀中的一種或多種。視頻流的格式包括:HEVC、 H.26X 等。
[0044]步驟103,設(shè)置視頻序列中的第0個(gè)視頻幀對(duì)應(yīng)的量化參數(shù)QP(0)的值,并設(shè)置與第 0個(gè)視頻幀對(duì)應(yīng)的計(jì)算復(fù)雜度參數(shù)c(0)。第0個(gè)視頻幀的0為幀號(hào),幀號(hào)從0開始,第0個(gè)視頻 幀即為視頻序列中的第一個(gè)視頻幀。
[0045] 在進(jìn)行編碼時(shí)需要設(shè)置量化參數(shù)和計(jì)算復(fù)雜度參數(shù)的初始值。例如,第0個(gè)視頻幀 對(duì)應(yīng)的量化參數(shù)QP(〇)的初始化值為32,第0個(gè)視頻幀對(duì)應(yīng)的計(jì)算復(fù)雜度參數(shù)C(0)的初始化 值為0。
[0046] 步驟104,從第0個(gè)視頻幀開始依次對(duì)第i個(gè)視頻幀進(jìn)行編碼,直至視頻序列的最后 的一個(gè)視頻幀。i為視頻幀的編號(hào),i > = 〇。
[0047] 在第i個(gè)視頻幀編碼完成后,計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C(i);基于C(i)預(yù)測第i+1 個(gè)視頻幀所對(duì)應(yīng)的量化參數(shù)QP( i+1),并采用量化參數(shù)QP( i+1)對(duì)第i+1個(gè)視頻幀進(jìn)行編碼。 [0048]例如,第0個(gè)視頻幀對(duì)應(yīng)的量化參數(shù)QP(0)具有初始化值32,在第0個(gè)視頻幀編碼完 成后,計(jì)算與第〇個(gè)視頻幀對(duì)應(yīng)的c(0);基于C(0)預(yù)測第1個(gè)視頻幀所對(duì)應(yīng)的量化參數(shù)QP (1),并采用QP( 1)對(duì)第1個(gè)視頻幀進(jìn)行編碼。
[0049] 依次類推,通過當(dāng)前視頻幀對(duì)應(yīng)的計(jì)算復(fù)雜度參數(shù)可以預(yù)測出下一個(gè)視頻幀的量 化參數(shù)QP,并采用此量化參數(shù)QP對(duì)下一個(gè)視頻幀進(jìn)行編碼,直到對(duì)視頻序列中的最后一個(gè) 幀進(jìn)行編碼。
[0050] 上述實(shí)施例中的用于視頻編碼的快速碼率控制方法,提出了一個(gè)簡單有效的快速 碼率控制方案,使用當(dāng)前視頻幀對(duì)應(yīng)的計(jì)算復(fù)雜度參數(shù)C預(yù)測下一個(gè)視頻幀的量化參數(shù)QP, 使視頻幀在編碼中占用比特?cái)?shù)能夠合理分配,可以對(duì)視頻的碼率進(jìn)行控制,并可以提高編 碼效率,節(jié)省編碼時(shí)間,提高視頻的觀看質(zhì)量,提高用戶的感受度。
[0051] 可以按照多種預(yù)設(shè)的規(guī)則將視頻流分割為一個(gè)或多個(gè)G0P。例如,將視頻流中的I 幀或P幀作為分割幀,將視頻流中的一個(gè)分割幀以及此分割幀與下一個(gè)分割幀之間的B幀組 合為一個(gè)G0P。例如,當(dāng)前提取視頻流中的幀為IBBPBBTOIBBP,依照上述的方法可以分割為5 個(gè)GOP,G0P內(nèi)的幀序列分別為:IBB、PBB、PB、IBB和P。
[0052] 在視頻壓縮中,每幀代表一幅靜止的圖像,需要采取各種算法減少數(shù)據(jù)的容量。I 幀是關(guān)鍵幀,屬于幀內(nèi)壓縮,P是向前搜索的意思,B是雙向搜索。I幀解碼時(shí)只需要本幀數(shù)據(jù) 就可以完成,P幀表示的是這一幀跟之前的一個(gè)關(guān)鍵幀(或P幀)的差別,解碼時(shí)需要用之前 緩存的畫面疊加上本幀定義的差別,生成最終畫面??梢圆捎枚喾N方法計(jì)算與第i個(gè)視頻幀 對(duì)應(yīng)的C(i),即計(jì)算對(duì)此幀進(jìn)行編碼時(shí)的計(jì)算復(fù)雜度參數(shù),例如,如果幀視頻的圖像是一面 墻,則此幀視頻對(duì)應(yīng)的計(jì)算復(fù)雜度參數(shù)小于圖像為森林的視頻幀所對(duì)應(yīng)的計(jì)算復(fù)雜度。
[0053] 圖3為根據(jù)本發(fā)明的用于視頻編碼的快速碼率控制方法的一個(gè)實(shí)施例中設(shè)置下一 幀的量化參數(shù)的流程示意圖,如圖3所示:
[0054]步驟201,在第i個(gè)視頻幀編碼完成后,統(tǒng)計(jì)與第i個(gè)視頻幀相對(duì)應(yīng)的量化比例參數(shù) Qscale( i)和第i個(gè)視頻幀編碼占用的比特?cái)?shù)B( i)。
[0055] 步驟202,基于Qscale(i)和B( i)計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C( i)。
[0056] 例如,統(tǒng)計(jì)與第i+1個(gè)視頻幀相對(duì)應(yīng)的量化比例參數(shù)Qscale(i)使用的公式為: _7]。
(1.1)
[0058] 其中,i為當(dāng)前編碼的視頻幀的幀號(hào),當(dāng)i = 0時(shí),QP(0)為32。則計(jì)算Qscale (0)時(shí), 將QP(〇)為32代入,W為系數(shù),可以設(shè)定為0.7-0.9,例如為0.85。
[0059] 基于Qscale(i)和B(i)計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C(i)使用的公式為:
[0060] C(i)=C(i-l)+B(i)*Qscale(i) (1.2)
[0061] 其中,當(dāng)i = 0時(shí),C(i-1)=0。式1.2計(jì)算的是從第0個(gè)視頻幀開始,累加的計(jì)算復(fù)雜 度參數(shù)值。
[0062]基于C(i)預(yù)測第i + Ι個(gè)視頻幀所對(duì)應(yīng)的量化參數(shù)QP(i + l)可以有多種方法。例如, 如果第i+Ι個(gè)視頻幀為非B幀,i+Ι為幀號(hào),則
[0063]
(] . 1 )
[0064] 通過1.4式,使用當(dāng)前編碼的視頻幀對(duì)應(yīng)的C值計(jì)算出下一個(gè)視頻幀的量化比例參 數(shù)Qscale,并通過1.5式,使用下一個(gè)視頻幀的量化比例參數(shù)Qscale計(jì)算出下一個(gè)視頻幀的 量化參數(shù)QP,使用此量化參數(shù)QP進(jìn)行下一個(gè)視頻幀的編碼,依次類推,可以獲得視頻序列中 各個(gè)視頻幀的量化參數(shù),能夠?qū)⒄麄€(gè)視頻序列中的全部幀進(jìn)行編碼。其中,第〇個(gè)視頻幀的 初始化伊H Μ- ?; 0065] (1 - 5 )
[0066] 1.5式中的W與1.1式中的W相同。如果第i+1個(gè)視頻幀為B幀,i+1為B幀的幀號(hào),則獲 取此B幀所在的G0P中的非B幀,或者為與此B幀最近的非B幀的量化參數(shù)Qp_nb和幀號(hào)i_nb, 確定此B幀的量化參數(shù)QP_b = Qp_nb+min( i+1 -i_nb,5)。
[0067] 上述實(shí)施例中的用于視頻編碼的快速碼率控制方法,通過當(dāng)前視頻幀對(duì)應(yīng)的量化 比例參數(shù)、占用的比特?cái)?shù)據(jù)、計(jì)算復(fù)雜度參數(shù)等預(yù)測下一個(gè)視頻幀的量化比例參數(shù)、量化參 數(shù)QP,進(jìn)行下一個(gè)視頻幀的編碼,使視頻幀在編碼中占用比特?cái)?shù)能夠合理分配。
[0068] 在一個(gè)實(shí)施例中,本發(fā)明提供一種用于視頻編碼的快速碼率控制裝置40,包括:視 頻參數(shù)設(shè)置模塊41、圖像分割模塊42、初始值設(shè)置模塊43、視頻編碼模塊44、量化參數(shù)統(tǒng)計(jì) 模塊45和量化參數(shù)設(shè)置模塊46。
[0069]視頻參數(shù)設(shè)置模塊41設(shè)置視頻序列的目標(biāo)碼率B以及目標(biāo)幀率F。圖像分割模塊42 將視頻序列分割為一個(gè)或多個(gè)圖像組G0P。初始值設(shè)置模塊43設(shè)置視頻序列中的第0個(gè)視頻 幀對(duì)應(yīng)的量化參數(shù)QP(〇)的值,并設(shè)置與第0個(gè)視頻幀對(duì)應(yīng)的計(jì)算復(fù)雜度參數(shù)C(0)。
[0070]視頻編碼模塊44從第0個(gè)視頻幀開始依次對(duì)第i個(gè)視頻幀進(jìn)行編碼,直至視頻序列 的最后的一個(gè)視頻幀。其中,i為視頻幀的編號(hào),i> = 〇;量化參數(shù)統(tǒng)計(jì)模塊45在第i個(gè)視頻幀 編碼完成后,計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C( i)。量化參數(shù)設(shè)置模塊46基于C( i)預(yù)測第i + Ι個(gè) 視頻幀所對(duì)應(yīng)的量化參數(shù)QP(i+l)。其中,視頻編碼模塊44采用QP(i+l)對(duì)第i+1個(gè)視頻幀進(jìn) 行編碼。
[0071]在一個(gè)實(shí)施例中,圖像分割模塊42具體用于將視頻流中的I幀或P幀作為分割幀, 將視頻流中的一個(gè)分割幀以及此分割幀與下一個(gè)分割幀之間的B幀組合為一個(gè)G0P。
[0072]量化參數(shù)統(tǒng)計(jì)模塊45具體用于在第i個(gè)視頻幀編碼完成后,統(tǒng)計(jì)與第i個(gè)視頻幀相 對(duì)應(yīng)的量化比例參數(shù)Qscale(i)和第i個(gè)視頻幀編碼占用的比特?cái)?shù)B(i),基于Qscale(i)和B (i)計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C (i)。
[0073 ]量化參數(shù)統(tǒng)計(jì)模塊45統(tǒng)計(jì)與第i+1個(gè)視頻幀相對(duì)應(yīng)的量化比例參數(shù)Qs ca 1 e (i)使 用的公式為:
[0074]
[0075] 其中,當(dāng)i = 0時(shí),QP(0)為32。
[0076]量化參數(shù)統(tǒng)計(jì)模塊45基于Qscale (i)和B( i)計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C( i)使用 的公式為:
[0077] C(i) = C(i_l)+B(i)*Qscale(i);
[0078] 其中,當(dāng) i = 〇 時(shí),c(i-l)=〇。
[0079] 如果第i+1個(gè)視頻幀為非B幀,則量化參數(shù)設(shè)置模塊46基于C(i)預(yù)測第i+1個(gè)視頻 幀所對(duì)應(yīng)的Qscale( i+Ι)和量化參數(shù)QP( i+Ι)使用的公式為:
[0080]
[0081]
[0082]如果第i+Ι個(gè)視頻幀為B幀,則量化參數(shù)設(shè)置模塊46獲取此B幀所在的G0P中的非B 幀的量化參數(shù)Qp_nb和幀號(hào)i_nb;量化參數(shù)設(shè)置模塊46確定此B幀的量化參數(shù)QP_b = Qp_nb+ min(i+l_i_nb,5)〇
[0083] 上述實(shí)施例中的用于視頻編碼的快速碼率控制方法及裝置,通過當(dāng)前視頻幀對(duì)應(yīng) 的量化比例參數(shù)、占用的比特?cái)?shù)據(jù)、計(jì)算復(fù)雜度參數(shù)等預(yù)測下一個(gè)視頻幀的量化比例參數(shù)、 量化參數(shù)QP,進(jìn)行下一個(gè)視頻幀的編碼,使視頻幀在編碼中占用比特?cái)?shù)能夠合理分配,能夠 對(duì)視頻的碼率進(jìn)行控制,可以提高視頻的觀看質(zhì)量,并可以提高編碼效率,節(jié)省編碼時(shí)間。
[0084] 所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:以上任何實(shí)施例的討論僅為示例性的,并非 旨在暗示本公開的范圍(包括權(quán)利要求)被限于這些例子;在本發(fā)明的思路下,以上實(shí)施例 或者不同實(shí)施例中的技術(shù)特征之間也可以進(jìn)行組合,步驟可以以任意順序?qū)崿F(xiàn),并存在如 上的本發(fā)明的不同方面的許多其它變化,為了簡明它們沒有在細(xì)節(jié)中提供。
[0085]另外,為簡化說明和討論,并且為了不會(huì)使本發(fā)明難以理解,在所提供的附圖中可 以示出或可以不示出與集成電路(1C)芯片和其它部件的公知的電源/接地連接。此外,可以 以框圖的形式示出裝置,以便避免使本發(fā)明難以理解,并且這也考慮了以下事實(shí),即關(guān)于這 些框圖裝置的實(shí)施方式的細(xì)節(jié)是高度取決于將要實(shí)施本發(fā)明的平臺(tái)的(即,這些細(xì)節(jié)應(yīng)當(dāng) 完全處于本領(lǐng)域技術(shù)人員的理解范圍內(nèi))。在闡述了具體細(xì)節(jié)(例如,電路)以描述本發(fā)明的 示例性實(shí)施例的情況下,對(duì)本領(lǐng)域技術(shù)人員來說顯而易見的是,可以在沒有這些具體細(xì)節(jié) 的情況下或者這些具體細(xì)節(jié)有變化的情況下實(shí)施本發(fā)明。因此,這些描述應(yīng)被認(rèn)為是說明 性的而不是限制性的。
[0086] 盡管已經(jīng)結(jié)合了本發(fā)明的具體實(shí)施例對(duì)本發(fā)明進(jìn)行了描述,但是根據(jù)前面的描 述,這些實(shí)施例的很多替換、修改和變型對(duì)本領(lǐng)域普通技術(shù)人員來說將是顯而易見的。例 如,其它存儲(chǔ)器架構(gòu)(例如,動(dòng)態(tài)RAM(DRAM))可以使用所討論的實(shí)施例。
[0087] 本發(fā)明的實(shí)施例旨在涵蓋落入所附權(quán)利要求的寬泛范圍之內(nèi)的所有這樣的替換、 修改和變型。因此,凡在本發(fā)明的精神和原則之內(nèi),所做的任何省略、修改、等同替換、改進(jìn) 等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種用于視頻編碼的碼率控制方法,其特征在于,包括: 設(shè)置視頻序列的目標(biāo)碼率B以及目標(biāo)幀率F; 將所述視頻序列分割為一個(gè)或多個(gè)圖像組GOP; 設(shè)置所述視頻序列中的第〇個(gè)視頻幀對(duì)應(yīng)的量化參數(shù)QP(O)的值,并設(shè)置與第〇個(gè)視頻 幀對(duì)應(yīng)的計(jì)算復(fù)雜度參數(shù)C(O),從所述第0個(gè)視頻幀開始依次對(duì)第i個(gè)視頻幀進(jìn)行編碼,直 至所述視頻序列的最后的一個(gè)視頻幀;其中,i為視頻幀的編號(hào),i> = 〇; 其中,在第i個(gè)視頻幀編碼完成后,計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C(i);基于所述C(i)預(yù)測 第i+1個(gè)視頻幀所對(duì)應(yīng)的量化參數(shù)QP(i+1),并采用所述QP(i+1)對(duì)第i+1個(gè)視頻幀進(jìn)行編 碼。2. 如權(quán)利要求1所述的方法,其特征在于,所述按照預(yù)設(shè)的規(guī)則將所述視頻流分割為一 個(gè)或多個(gè)GOP包括: 將所述視頻流中的I幀或P幀作為分割幀; 將所述視頻流中的一個(gè)分割幀以及此分割幀與下一個(gè)分割幀之間的B幀組合為一個(gè) GOP03. 如權(quán)利要求1或2所述的方法,其特征在于,所述計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C(i)包 括: 在第i個(gè)視頻幀編碼完成后,統(tǒng)計(jì)與第i個(gè)視頻幀相對(duì)應(yīng)的量化比例參數(shù)Qscale(i)和 第i個(gè)視頻幀編碼占用的比特?cái)?shù)B(i),基于所述Qscale(i)和B(i)計(jì)算與第i個(gè)視頻幀對(duì)應(yīng) 的C(i)。4. 如權(quán)利要求3所述方法,其特征在于: 統(tǒng)計(jì)與第i+Ι個(gè)視頻幀相對(duì)命的看·仆從你丨余撒~ml Wi)使用的公式為:其中,當(dāng)i = 0時(shí),QP(O)為32,W為系數(shù)。5. 如權(quán)利要求4所述的方法,其特征在于: 基于所述Qscale(i)和B(i)計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C(i)使用的公式為: C(i)=C(i_l)+B(i)*Qscale(i); 其中,當(dāng) i = 0 時(shí),C(i-1)=0。6. 如權(quán)利要求5所述的方法,其特征在于,基于所述C( i)預(yù)測第i + 1個(gè)視頻幀所對(duì)應(yīng)的 量化參數(shù)QP( i+Ι)包括: 如果第i+1個(gè)視頻幀為非B幀,則7. 如權(quán)利要求6所述的方法,其特征在于,包括: 如果第i+Ι個(gè)視頻幀為B幀,則獲取此B幀所在的GOP中的非B幀的量化參數(shù)Qp_nb和幀號(hào) i_nb ; 確定此B幀的量化參數(shù)QP_b = Qp_nb+min(i+Ι - i_nb,5)。8. 如權(quán)利要求6所述的方法,其特征在于: 所述W為0.85。9. 一種用于視頻編碼的碼率控制裝置,其特征在于,包括: 視頻參數(shù)設(shè)置模塊,用于設(shè)置視頻序列的目標(biāo)碼率B以及目標(biāo)幀率F; 圖像分割模塊,用于將所述視頻序列分割為一個(gè)或多個(gè)圖像組GOP; 初始值設(shè)置模塊,用于設(shè)置所述視頻序列中的第〇個(gè)視頻幀對(duì)應(yīng)的量化參數(shù)QP(O)的 值,并設(shè)置與第〇個(gè)視頻幀對(duì)應(yīng)的計(jì)算復(fù)雜度參數(shù)C(O); 視頻編碼模塊,用于從所述第〇個(gè)視頻幀開始依次對(duì)第i個(gè)視頻幀進(jìn)行編碼,直至所述 視頻序列的最后的一個(gè)視頻幀;其中,i為視頻幀的編號(hào),i > = 〇; 量化參數(shù)統(tǒng)計(jì)模塊,用于在第i個(gè)視頻幀編碼完成后,計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C(i); 量化參數(shù)設(shè)置模塊,用于基于所述c(i)預(yù)測第i + 1個(gè)視頻幀所對(duì)應(yīng)的量化參數(shù)QP(i + 1);其中,所述視頻編碼模塊采用所述QP(i+l)對(duì)第i+1個(gè)視頻幀進(jìn)行編碼。10. 如權(quán)利要求9所述的快速碼率控制裝置,其特征在于: 所述圖像分割模塊具體用于將所述視頻流中的I幀或P幀作為分割幀;將所述視頻流中 的一個(gè)分割幀以及此分割幀與下一個(gè)分割幀之間的B幀組合為一個(gè)GOP。11. 如權(quán)利要求9或10所述的快速碼率控制裝置,其特征在于: 所述量化參數(shù)統(tǒng)計(jì)模塊具體用于在第i個(gè)視頻幀編碼完成后,統(tǒng)計(jì)與第i個(gè)視頻幀相對(duì) 應(yīng)的量化比例參數(shù)Qscale(i)和第i個(gè)視頻幀編碼占用的比特?cái)?shù)B(i),基于所述Qscale(i) 和B(i)計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C(i)。12. 如權(quán)利要求11所述的快速碼率控制裝置,其特征在于: 所述量化參數(shù)統(tǒng)計(jì)模塊統(tǒng)計(jì)與第i + Ι個(gè)視頻幀相對(duì)應(yīng)的量化比例參數(shù)Qscal e (i)使用 的公式為:其中,當(dāng)i = 0時(shí),QP(O)為32,W為系數(shù)。13. 如權(quán)利要求12所述的快速碼率控制裝置,其特征在于: 所述量化參數(shù)統(tǒng)計(jì)模炔基于所述Qscale(i)和B(i)計(jì)算與第i個(gè)視頻幀對(duì)應(yīng)的C(i)使 用的公式為: C(i)=C(i_l)+B(i)*Qscale(i); 其中,當(dāng) i = 0 時(shí),C(i-1)=0。14. 如權(quán)利要求13所述的快速碼率控制裝置,其特征在于: 如果第i + Ι個(gè)視頻幀為非B幀,則所述量化參數(shù)設(shè)置模炔基于所述C(i)預(yù)測第i + Ι個(gè)視 頻幀所對(duì)應(yīng)的Qscale( i+Ι)和量化參數(shù)QP( i+Ι)使用的公式為:15. 如權(quán)利要求14所述的快速碼率控制裝置,其特征在于: 如果第i + Ι個(gè)視頻幀為B幀,則所述量化參數(shù)設(shè)置模塊獲取此B幀所在的GOP中的非B幀 的量化參數(shù)Qp_nb和幀號(hào)i_nb; 所述量化參數(shù)設(shè)置模塊確定此B幀的量化參數(shù)QP_b = Qp_nb+min(i+1 - i_nb,5)。16.如權(quán)利要求14所述的快速碼率控制裝置,其特征在于: 所述W為0.85。
【文檔編號(hào)】H04N19/577GK105898329SQ201610225133
【公開日】2016年8月24日
【申請(qǐng)日】2016年4月12日
【發(fā)明人】蔡硯剛, 白茂生, 劉陽, 楊帆, 祁海, 魏偉
【申請(qǐng)人】樂視控股(北京)有限公司, 樂視云計(jì)算有限公司