两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種視頻編碼中的碼率控制方法及其裝置的制作方法

文檔序號(hào):7746584閱讀:143來源:國(guó)知局
專利名稱:一種視頻編碼中的碼率控制方法及其裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域的視頻編碼技術(shù),特別是涉及一種視頻編碼中的碼率控制方
法及其裝置。
背景技術(shù)
在目前的視頻編碼壓縮技術(shù)中,采集的原始視頻數(shù)據(jù)經(jīng)過編碼壓縮后,編碼出來 的碼流雖然得到了較高的壓縮比,但是其碼率是變化的。而在視頻通信領(lǐng)域,通信信道帶寬 都是恒定、有限的,碼率不斷變化的碼流不適合在恒定信道中傳輸。所以,在視頻編碼中引 入了碼率控制,如圖1所示,目的是將編碼器產(chǎn)生的碼流碼率控制在一定波動(dòng)范圍之內(nèi)。
碼率控制的基本原理是通過不停地調(diào)整編碼量化參數(shù)(QuantizationParameter, QP)來控制碼流緩沖區(qū)中比特的占有度,使其在一定程度上盡量保持穩(wěn)定,不出現(xiàn)上溢和下 溢的情況,從而保持碼率的穩(wěn)定。但是另一方面,編碼量化參數(shù)QP的變化直接影響圖像質(zhì) 量。QP反映了空間細(xì)節(jié)壓縮情況,如果QP小,則大部分細(xì)節(jié)得以保留,此時(shí)圖像質(zhì)量好而碼 率高;如果QP大,則一些細(xì)節(jié)就會(huì)被丟失,此時(shí)碼率小但是圖像失真加強(qiáng),圖像質(zhì)量下降。 所以,如何在控準(zhǔn)碼率的前提之下盡可能地提升編碼圖像質(zhì)量,是碼率控制方法的一個(gè)重 要問題。 在一種傳統(tǒng)的碼率控制方案中,先根據(jù)已編碼幀信息預(yù)測(cè)待編碼幀的復(fù)雜度,并
預(yù)算該幀的編碼比特?cái)?shù),再根據(jù)反饋的虛擬緩沖區(qū)填充度確定參考量化步長(zhǎng),最后計(jì)算宏
塊的空間活動(dòng)性和宏塊實(shí)際量化參數(shù)QP。該方法可如圖2所示,利用預(yù)分配的目標(biāo)編碼比
特?cái)?shù)、預(yù)測(cè)的圖像復(fù)雜度和反饋的虛擬緩沖區(qū)占有度等信息來調(diào)整QP值。 在另一種傳統(tǒng)的碼率控制方案中,在正式編碼之前先進(jìn)行預(yù)編碼,得到碼率分配、
圖像復(fù)雜度、QP分布等信息,在正式編碼時(shí)綜合這些信息再次進(jìn)行碼率控制。該方法可如
圖3所示,利用兩次編碼來達(dá)到更精準(zhǔn)的碼率控制效果。 發(fā)明人實(shí)現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下缺陷 圖2所示的碼率控制方案,一方面,在某些特殊場(chǎng)景時(shí)目標(biāo)比特率分配步驟會(huì)存
在較大偏差;另一方面,由于預(yù)算得到的編碼比特?cái)?shù)較固定,因此不能隨實(shí)際編碼場(chǎng)景的不
同而變化,容易導(dǎo)致碼率控制不準(zhǔn)和編碼比特?cái)?shù)分配不均;再一方面,容易導(dǎo)致量化不均
勻,圖像質(zhì)量差異大; 圖3所示的碼率控制方案,由于采用了兩次編碼,因此增加了碼率控制的運(yùn)算復(fù) 雜度,不適合于實(shí)時(shí)系統(tǒng)中的應(yīng)用。

發(fā)明內(nèi)容
本發(fā)明提供了一種視頻編碼中的碼率控制方法及其裝置,用以實(shí)現(xiàn)在控準(zhǔn)碼率的 前提之下提升編碼圖像質(zhì)量。 本發(fā)明提供的視頻編碼中的碼率控制方法,應(yīng)用于以行宏塊作為最小運(yùn)算單元的 碼率控制過程,該方法針對(duì)當(dāng)前行宏塊,包括以下步驟
獲取當(dāng)前幀的初始碼率控制參數(shù); 根據(jù)當(dāng)前幀的初始碼率控制參數(shù)、已編碼行宏塊的編碼結(jié)果反饋信息,以及編碼 場(chǎng)景,確定當(dāng)前行的QP值; 反饋根據(jù)當(dāng)前行的QP值對(duì)當(dāng)前行進(jìn)行宏塊編碼后所得到的編碼結(jié)果信息。
獲取當(dāng)前幀的初始碼率控制參數(shù)之后,還包括根據(jù)編碼場(chǎng)景調(diào)整獲取到的初始 碼率控制參數(shù);確定當(dāng)前行的QP值,具體為根據(jù)調(diào)整后的當(dāng)前幀的初始碼率控制參數(shù)、所 述反饋信息以及編碼場(chǎng)景確定當(dāng)前行的QP值。 其中,根據(jù)編碼場(chǎng)景調(diào)整獲取到的初始碼率控制參數(shù),包括根據(jù)編碼場(chǎng)景調(diào)整當(dāng) 前幀的目標(biāo)碼率,或調(diào)整當(dāng)前幀的初始QP值和目標(biāo)碼率。
其中,根據(jù)編碼場(chǎng)景調(diào)整當(dāng)前幀的目標(biāo)碼率,包括 當(dāng)前幀為I幀編碼,且該當(dāng)前幀的上一個(gè)已編碼幀的碼率與該已編碼幀的目標(biāo)碼
率相比得到的碼率變化超過設(shè)定范圍的上限值,則將當(dāng)前幀的目標(biāo)碼率減??; 或者,當(dāng)前幀的為I幀編碼,且該當(dāng)前幀的上一個(gè)已編碼幀的碼率與該已編碼幀
的目標(biāo)碼率相比得到的碼率變化超過設(shè)定范圍的下限值,則將當(dāng)前幀的目標(biāo)碼率增加。 上述方法中,根據(jù)編碼場(chǎng)景調(diào)整當(dāng)前幀的初始QP值和目標(biāo)碼率,包括 當(dāng)前幀為非I幀編碼,且該當(dāng)前幀的上一個(gè)已編碼幀的碼率與該已編碼幀的目標(biāo)
碼率相比得到的碼率變化超過設(shè)定范圍時(shí),通過調(diào)整QP調(diào)整因子,使根據(jù)該QP調(diào)整因子得
到的當(dāng)前幀的初始QP值與上一個(gè)已編碼幀的初始QP值的變化在設(shè)定范圍之內(nèi); 或者,當(dāng)前幀的初始QP值與其上一個(gè)已編碼幀的初始QP相比得到的QP變化超過
設(shè)定閾值范圍的上限值,則減少重新確定當(dāng)前幀的初始QP值,使減小后的QP值與上一個(gè)已
編碼幀的初始QP值的變化達(dá)到該設(shè)定范圍的上限值;或者,當(dāng)前幀的初始QP值與其上一個(gè)
已編碼幀的初始QP相比得到的QP變化超過設(shè)定范圍閾值的下限值,則增加當(dāng)前幀的初始
QP值,使增加后的QP值與上一個(gè)已編碼幀的初始QP值達(dá)到該設(shè)定范圍的下限值。 根據(jù)本發(fā)明的方法,確定當(dāng)前行的QP值,包括 根據(jù)當(dāng)前幀的初始QP值和目標(biāo)碼率,以及已編碼行宏塊的編碼結(jié)果反饋信息,確 定當(dāng)前行的目標(biāo)碼率;根據(jù)編碼場(chǎng)景調(diào)整當(dāng)前行的目標(biāo)碼率;根據(jù)調(diào)整后的當(dāng)前行的目標(biāo) 碼率確定當(dāng)前行的QP值。 其中,根據(jù)編碼場(chǎng)景調(diào)整當(dāng)前行的目標(biāo)碼率,包括 將上一個(gè)已編碼行的碼率與該編碼行的行目標(biāo)碼率相比得到的變化超過設(shè)定范 圍的上限值,則減小當(dāng)前幀中待編碼行的行目標(biāo)碼率;如果前者與后者相比得到的變化低 于設(shè)定范圍的下限值,則增加當(dāng)前幀中待編碼行的行目標(biāo)碼率。 根據(jù)本發(fā)明的上述方法,根據(jù)當(dāng)前幀的初始QP值和目標(biāo)碼率,以及所述反饋信 息,確定當(dāng)前行的QP值之后,還包括 通過調(diào)整當(dāng)前行的QP值,使將當(dāng)前行的QP值與當(dāng)前幀相鄰行的QP值的差值限制 在設(shè)定范圍內(nèi); 或/和,通過調(diào)整當(dāng)前行的QP值,使當(dāng)前行的QP值與相鄰幀對(duì)應(yīng)行的QP值的差 值限制在設(shè)定范圍內(nèi)。 其中,若上一個(gè)已編碼行的碼率與該已編碼行的目標(biāo)行碼率相比,差值超過設(shè)定 閾值,則增大所述設(shè)定范圍。
根據(jù)本發(fā)明的上述方法,所述編碼結(jié)果反饋信息,包括行編碼碼率。 本發(fā)明提供的視頻編碼中的碼率控制裝置,應(yīng)用于以行宏塊作為最小運(yùn)算單元的
碼率控制過程,該裝置包括 獲取模塊,用于獲取當(dāng)前幀的初始碼率控制參數(shù); 確定模塊,與所述獲取模塊連接,用于根據(jù)所述獲取模塊獲取到的當(dāng)前幀的初始 碼率控制參數(shù)、已編碼行宏塊的編碼結(jié)果反饋信息,以及編碼場(chǎng)景,確定當(dāng)前行的QP值;
反饋模塊,與所述確定模塊連接,用于將根據(jù)所述確定模塊確定出的當(dāng)前行的QP 值對(duì)當(dāng)前行進(jìn)行宏塊編碼后得到的編碼結(jié)果信息反饋給所述確定模塊。
上述裝置,還包括 第一場(chǎng)景自適應(yīng)單元,分別與所述獲取模塊和所述確定模塊連接,用于根據(jù)編碼 場(chǎng)景調(diào)整所述獲取模塊獲取到的初始碼率控制參數(shù); 所述確定模塊具體用于,根據(jù)所述第一場(chǎng)景自適應(yīng)單元調(diào)整后的當(dāng)前幀的初始碼 率控制參數(shù)、所述反饋信息以及編碼場(chǎng)景確定當(dāng)前行的QP值。 上述裝置中,所述第一場(chǎng)景自適應(yīng)單元具體用于,若當(dāng)前幀為I幀編碼,且該當(dāng)前 幀的上一個(gè)已編碼幀的碼率與該已編碼幀的目標(biāo)碼率相比得到的碼率變化超過設(shè)定范圍 的上限值,則將當(dāng)前幀的目標(biāo)碼率減??;或者,若當(dāng)前幀為I幀編碼,且該當(dāng)前幀的上一個(gè) 已編碼幀的碼率與該已編碼幀的目標(biāo)碼率相比得到的碼率變化超過設(shè)定范圍的下限值,則 將當(dāng)前幀的目標(biāo)碼率增加;或者,若當(dāng)前幀為非I幀編碼,且該當(dāng)前幀的上一個(gè)已編碼幀的 碼率與該已編碼幀的目標(biāo)碼率相比得到的碼率變化超過設(shè)定范圍,通過調(diào)整QP調(diào)整因子, 使根據(jù)該QP調(diào)整因子得到的當(dāng)前幀的初始QP值與上一個(gè)已編碼幀的初始QP值的變化在
設(shè)定范圍之內(nèi);或者,當(dāng)前幀的初始QP值與其上一個(gè)已編碼幀的初始QP相比得到的QP變 化超過設(shè)定閾值范圍的上限值,則減少重新確定當(dāng)前幀的初始QP值,使減小后的QP值與上
一個(gè)已編碼幀的初始QP值的變化達(dá)到該設(shè)定范圍的上限值;或者,當(dāng)前幀的初始QP值與其
上一個(gè)已編碼幀的初始QP相比得到的QP變化超過設(shè)定范圍閾值的下限值,則增加當(dāng)前幀 的初始QP值,使增加后的QP值與上一個(gè)已編碼幀的初始QP值達(dá)到該設(shè)定范圍的下限值。 上述裝置中,所述確定模塊包括 行目標(biāo)碼率確定單元,用于根據(jù)當(dāng)前幀的初始碼率控制參數(shù)、已編碼行宏塊的編 碼結(jié)果反饋信息,以及當(dāng)前幀的場(chǎng)景,確定當(dāng)前行的目標(biāo)碼率; 第二場(chǎng)景自適應(yīng)單元,與所述行目標(biāo)碼率確定單元連接,用于根據(jù)編碼場(chǎng)景調(diào)整 當(dāng)前行的目標(biāo)碼率; 行QP值確定單元,與所述第二場(chǎng)景自適應(yīng)單元連接,用于根據(jù)所述第二場(chǎng)景自適 應(yīng)單元調(diào)整后的當(dāng)前行的目標(biāo)碼率確定當(dāng)前行的QP值。 其中,所述第二場(chǎng)景自適應(yīng)單元具體用于,將上一個(gè)已編碼行的碼率與該編碼行 的行目標(biāo)碼率相比得到的變化超過設(shè)定范圍的上限值,則減小當(dāng)前幀中待編碼行的行目標(biāo) 碼率;如果前者與后者相比得到的變化低于設(shè)定范圍的下限值,則增加當(dāng)前幀中待編碼行 的行目標(biāo)碼率。 上述裝置中,所述確定模塊還包括 QP自適應(yīng)單元,與所述行QP值確定單元連接,用于通過調(diào)整所述QP值確定單元確 定出的當(dāng)前行的QP值,使將當(dāng)前行的QP值與當(dāng)前幀相鄰行的QP值的差值限制在設(shè)定范圍內(nèi);或/和,通過調(diào)整當(dāng)前行的QP值,使當(dāng)前行的QP值與相鄰幀對(duì)應(yīng)行的QP值的差值限制
在設(shè)定范圍內(nèi)。 其中,所述QP自適應(yīng)單元具體用于,若上一個(gè)已編碼行的碼率與該已編碼行的目
標(biāo)行碼率相比,差值超過設(shè)定閾值,則增大所述設(shè)定范圍。 本發(fā)明的有益技術(shù)效果包括 通過以一行宏塊作為碼率控制最小計(jì)算單元的方式,降低計(jì)算復(fù)雜度;進(jìn)一步的, 在碼率控制過程中引入了自適應(yīng)場(chǎng)景控制,以使碼率控制能更好地適應(yīng)各種不同的場(chǎng)景, 在控準(zhǔn)碼率使其不超標(biāo)的前提下,盡量使更多的碼流分配到圖像較復(fù)雜的行和幀,提高編 碼的圖像質(zhì)量。


圖1為現(xiàn)有技術(shù)中碼率控制和視頻編碼原理示意圖; 圖2為現(xiàn)有技術(shù)中的一種碼率控制過程的示意圖; 圖3為現(xiàn)有技術(shù)中的另一種碼率控制過程的示意圖; 圖4為本發(fā)明實(shí)施例提供的碼率控制過程示意圖; 圖5為本發(fā)明實(shí)施例的總體實(shí)現(xiàn)流程示意圖; 圖6為本發(fā)明實(shí)施例提供的當(dāng)前行宏塊QP值的限制控制示意圖; 圖7為本發(fā)明實(shí)施例提供的碼率控制裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
為了克服現(xiàn)有技術(shù)由于運(yùn)算復(fù)雜度高而不能應(yīng)用于實(shí)時(shí)系統(tǒng),或者對(duì)場(chǎng)景適應(yīng)性
差,編碼出的圖像質(zhì)量變化差異較大等缺陷,本發(fā)明提出了一種基于行級(jí)的自適應(yīng)碼率控
制方法,該方法碼率控制的最小運(yùn)算單元是一行宏塊,從而降低了碼率控制的運(yùn)算復(fù)雜度,
同時(shí)通過QP自適應(yīng)限值控制,提高了量化參數(shù)QP的均勻度,進(jìn)而降低圖像質(zhì)量的變化差
異。本發(fā)明的碼率控制方法還能自適應(yīng)不同的場(chǎng)景,如根據(jù)場(chǎng)景的不同,自適應(yīng)地調(diào)整碼率
控制的各參數(shù),以達(dá)到在穩(wěn)定碼率的同時(shí),提高圖像質(zhì)量的效果。 本發(fā)明為解決現(xiàn)有技術(shù)存在的技術(shù)問題所采用的技術(shù)方案可包括 在編碼開始時(shí),根據(jù)幀率、碼率、GOP (Group of Picture,即I幀間隔)等一系列編
碼信息,通過經(jīng)驗(yàn)公式得到原始QP值、幀編碼比特?cái)?shù)等; 在編碼過程中,根據(jù)反饋得到的已編碼碼率、當(dāng)前QP值、幀平均QP值等信息,根據(jù)
不同的場(chǎng)景,實(shí)時(shí)地調(diào)整幀編碼比特?cái)?shù)、行編碼比特?cái)?shù)、行級(jí)QP等,以此來達(dá)到控制碼率,
同時(shí)適應(yīng)不同場(chǎng)景編碼,提高編碼圖像質(zhì)量的效果。 下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。 參見圖4,為本發(fā)明實(shí)施例提供的碼率控制過程示意圖。 如圖所示,在一幀圖像編碼開始時(shí),也即該幀圖像碼率控制開始時(shí)(S401),碼率控 制裝置會(huì)根據(jù)前一幀圖像宏塊編碼結(jié)果的反饋信息,如已編碼的碼率(碼流長(zhǎng)度)、場(chǎng)景自 適應(yīng)條件、平均QP、GOP等信息(S408的輸出),結(jié)合場(chǎng)景自適應(yīng)控制(S402),計(jì)算得到當(dāng)前 幀的起始QP值和當(dāng)前幀的目標(biāo)碼率(S402的輸出),之后進(jìn)入行級(jí)碼率控制循環(huán);在行級(jí) 碼率控制開始時(shí)(S403),碼率控制裝置根據(jù)該幀目標(biāo)碼率和從行級(jí)碼率控制結(jié)束時(shí)反饋回的已編碼行的碼率等信息(S407的輸出),再結(jié)合場(chǎng)景自適應(yīng)控制(S404)和QP自適應(yīng)限值 控制(S405),計(jì)算得到當(dāng)前行的QP值和行目標(biāo)碼率(S405的輸出);然后,根據(jù)計(jì)算得到的 當(dāng)前行的QP值和行目標(biāo)碼率等對(duì)當(dāng)前行宏塊進(jìn)行編碼(S406),得到編碼碼流(S406的輸 出),行級(jí)碼率控制結(jié)束(S407),反饋當(dāng)前行宏塊編碼的碼率、場(chǎng)景自適應(yīng)條件等(S407的 輸出),作為對(duì)下一行宏塊的行級(jí)碼率進(jìn)行控制的參數(shù)。當(dāng)一幀編碼結(jié)束時(shí)(S408),反饋當(dāng) 前幀宏塊編碼的碼率、場(chǎng)景自適應(yīng)條件等(S408的輸出),作為對(duì)下一幀編碼過程進(jìn)行碼率 控制的參數(shù)。 這里,在碼率控制過程中引入了場(chǎng)景自適應(yīng)控制,用于根據(jù)具體編碼場(chǎng)景實(shí)時(shí)地 調(diào)整目標(biāo)碼率等參數(shù),達(dá)到使碼流更多地分配到場(chǎng)景復(fù)雜處,以提高編碼圖像質(zhì)量的效果。 另外,通過以一行宏塊為最小運(yùn)算單元的碼率控制,結(jié)合QP自適應(yīng)限值控制的方法,可在 減小QP在空間和時(shí)間上波動(dòng)性的同時(shí),控準(zhǔn)碼率。 參見圖5,為本發(fā)明實(shí)施例的總體實(shí)現(xiàn)流程示意圖。如圖所示,當(dāng)開始對(duì)當(dāng)前視頻 幀進(jìn)行編碼時(shí),該流程主要包括以下步驟
步驟S500、編碼開始,即碼率控制開始。 步驟S501、執(zhí)行碼率控制初始化,得到一起始QP值。碼率控制初始化的操作可包 括對(duì)編碼器設(shè)置的碼率控制參數(shù)進(jìn)行初始化操作,得到起始QP值。 該步驟中,起始QP值可以是預(yù)設(shè)值,為操作簡(jiǎn)便,預(yù)設(shè)的起始QP值可以是根據(jù)以 往進(jìn)行幀編碼所得到的平均QP值。本領(lǐng)域技術(shù)人員應(yīng)該理解,起始QP值可以通過上述 方式或者其他一些常規(guī)方式得到,比如在初始化過程中,可根據(jù)期望的目標(biāo)碼率、期望的
GOP等參數(shù)得到起始QP值,也可以是對(duì)一般的圖像場(chǎng)景進(jìn)行實(shí)測(cè)得到的結(jié)果。起始QP值的 確定主要與三個(gè)因素有關(guān)一是設(shè)置的碼率(BITRATE),二是待編碼圖像的寬WIDTH,三是 待編碼圖像的高HEIGHT。最后得到的起始QP值與上述三個(gè)因素的關(guān)系是BITRATE越大, (WIDTH*HEIGHT)越小,則QP值越小,反之BITRATE越小,(WIDTH*HEIGHT)越大,則QP值越 大。比如,以編碼H. 2644CIF分辨率(WIDTH為704, HEIGHT為576)碼率BITRATE為4M的 碼流來說,其QP值取30 ;當(dāng)編碼4CIF分辨率碼率BITRATE為2M的碼流時(shí),QP值取32 ;當(dāng) 編碼CIF分辨率(WIDTH為352, HEIGHT為288)碼率BITRATE為2M的碼流時(shí),QP取26。
步驟S502、接收前一幀編碼結(jié)束時(shí)反饋回來的編碼結(jié)果信息,開始對(duì)當(dāng)前幀進(jìn)行 碼率控制。 步驟S503、計(jì)算當(dāng)前幀的初始QP值(記為QP。)和目標(biāo)碼率,并可進(jìn)一步通過場(chǎng)景 自適應(yīng)控制過程,對(duì)計(jì)算得到的當(dāng)前幀的QP。和當(dāng)前幀的目標(biāo)碼率進(jìn)行調(diào)整。
該步驟可內(nèi)嵌一個(gè)場(chǎng)景自適應(yīng)控制過程,用于對(duì)較復(fù)雜場(chǎng)景或編碼碼率起伏較大 的場(chǎng)景進(jìn)行控制。該控制過程可以包括 如果當(dāng)前幀為I幀編碼,且檢測(cè)出編碼場(chǎng)景較復(fù)雜(即當(dāng)前幀的編碼復(fù)雜程度較 高),對(duì)碼率控制壓力較大,可能會(huì)有碼率控制超標(biāo)的危險(xiǎn),則會(huì)自動(dòng)調(diào)整I幀目標(biāo)碼率的 計(jì)算,使用較小的目標(biāo)碼率,以達(dá)到壓制碼流超標(biāo)的效果,如減小幀目標(biāo)碼率。當(dāng)然,如果檢 測(cè)出當(dāng)前編碼場(chǎng)景較簡(jiǎn)單,也可增加幀目標(biāo)碼率;如果檢測(cè)出當(dāng)前編碼場(chǎng)景復(fù)雜度適中,也 可不對(duì)幀目標(biāo)碼率進(jìn)行調(diào)整。其中,編碼復(fù)雜程度的高低可由相應(yīng)的閾值進(jìn)行界定,例如, 將上一個(gè)已編碼幀的碼率與它的目標(biāo)碼率相比較(如可采用相減得到差值的方式進(jìn)行比 較,或采用相除得到比值的方式進(jìn)行比較),如果碼率變化超過設(shè)定范圍的上限值,則表示編碼復(fù)雜程度較高,可增加當(dāng)前幀的目標(biāo)碼率;如果碼率變化低于設(shè)定范圍的下限值,則可減少當(dāng)前幀的目標(biāo)碼率;如果碼率變化在該設(shè)定閾值范圍內(nèi),則可保持當(dāng)前幀的目標(biāo)碼率不變。 如果當(dāng)前幀為非I幀編碼,且檢測(cè)到上一個(gè)已編碼幀的碼率與它的目標(biāo)碼率相比,編碼碼流長(zhǎng)度起伏較大,或者當(dāng)前幀的QP。與前一幀的QP。相比波動(dòng)較大,則有可能會(huì)影響碼率控制的效果,圖像質(zhì)量也會(huì)由于碼流大小的不合理分配而打折扣,此時(shí)可啟動(dòng)重新計(jì)算(或調(diào)整)QP。、重新分配(或調(diào)整)當(dāng)前幀的目標(biāo)碼率的操作,以此來達(dá)到抑制過大的碼流波動(dòng)、更合理地分配各幀目標(biāo)碼流大小,提高編碼圖像質(zhì)量的目的。其中,碼流長(zhǎng)度(或碼率)起伏的大小程度和QP波動(dòng)的大小程度可以由相應(yīng)的閾值進(jìn)行界定,例如,將上一個(gè)已編碼幀的碼率與它的目標(biāo)碼率相比較,如果碼率變化超過設(shè)定范圍,或者初始QP值的變化超過設(shè)定范圍,則需要重新計(jì)算當(dāng)前幀的初始QP值和目標(biāo)碼率。 上述計(jì)算(包括重新計(jì)算)當(dāng)前幀的初始QP值(即QP。)的過程中,計(jì)算QP。值的公式可以是QP。 = QPbase*(l+QPadj);其中QPbase可以是上一幀的平均QP值,QPadj為QP調(diào)整因子。當(dāng)前幀目標(biāo)碼率的調(diào)整方法可以是當(dāng)上一幀的實(shí)際碼率大于該上一幀的目標(biāo)幀碼率超過一定范圍的上限值(即碼率變化超過設(shè)定范圍的上限值)時(shí),則減小當(dāng)前幀的目標(biāo)幀碼率;相反(即碼率變化超過設(shè)定范圍的下限值),則增加當(dāng)前幀的目標(biāo)幀碼率。
其中,QPadj可由上一幀的實(shí)際碼率和該上一幀的目標(biāo)幀碼率決定,即在對(duì)當(dāng)前幀進(jìn)行碼率控制開始之前,根據(jù)上一幀的實(shí)際碼率和目標(biāo)碼率來確定出對(duì)當(dāng)前幀進(jìn)行碼率控制所需的QPadj 。如果實(shí)際碼率大于目標(biāo)幀碼率,則QPadj為一個(gè)正值,相反,則QPadj為一個(gè)負(fù)值。 重新計(jì)算QP??梢酝ㄟ^重新確定QPadj來實(shí)現(xiàn),當(dāng)檢測(cè)到上述QP。波動(dòng)較大的情況時(shí),可重新確定一個(gè)新的QPadj值,使根據(jù)該QPadj計(jì)算得到的QP。值處于允許的波動(dòng)范圍之內(nèi),從而重新計(jì)算出QP。。還可以通過以下方式重新計(jì)算QP。如果當(dāng)前幀的QP。與前一幀的QP。相比波動(dòng)超過設(shè)定范圍的下限值,則可以根據(jù)該下限值確定當(dāng)前幀的QP。(如增加當(dāng)前幀的QP。,使其與前一幀的QP。相比波動(dòng)達(dá)到該下限值);如果當(dāng)前幀的QP。與前一幀的QP。相比波動(dòng)超過設(shè)定范圍的上限值,則可以根據(jù)該上限值確定當(dāng)前幀的QP。(如減小當(dāng)前幀的QP。,使其與前一幀的QP。相比波動(dòng)達(dá)到該上限值)。
步驟S504、開始對(duì)一行宏塊進(jìn)行碼率控制。 該步驟除了接收并保存當(dāng)前幀的QP。(如果通過場(chǎng)景自適應(yīng)控制過程進(jìn)行了調(diào)整,則是調(diào)整后的QP。)和當(dāng)前幀的目標(biāo)碼率(如果通過場(chǎng)景自適應(yīng)控制過程進(jìn)行了調(diào)整,則是調(diào)整后的目標(biāo)碼率),還接收和處理相鄰行(包括空間上的相鄰或時(shí)間上的相鄰,如前一行)宏塊碼率控制結(jié)束后(步驟S508)所反饋的統(tǒng)計(jì)信息。 步驟S505、根據(jù)當(dāng)前幀的QP。和目標(biāo)碼率、已編碼行編碼結(jié)束后反饋的統(tǒng)計(jì)信息,
如碼率、平均QP、 GOP等信息,計(jì)算得到當(dāng)前行的行級(jí)碼率控制的最終QP值。 該步驟可內(nèi)嵌一個(gè)場(chǎng)景自適應(yīng)控制過程,以便對(duì)那些同一畫面中復(fù)雜和簡(jiǎn)單畫面
分布較集中的場(chǎng)景進(jìn)行控制,比如畫面的上半部分是天空,而畫面的下半部分是車水馬龍
的場(chǎng)景。當(dāng)此處檢測(cè)到編碼較簡(jiǎn)單的場(chǎng)景時(shí),可自動(dòng)調(diào)整行目標(biāo)碼率,以便待編碼的各行
宏塊的行目標(biāo)碼率得到重新分配,以達(dá)到更合理地分配碼流、優(yōu)化碼率控制的效果,提高圖
像質(zhì)量。同理,當(dāng)檢測(cè)到編碼較復(fù)雜的場(chǎng)景時(shí),可重新分配行目標(biāo)碼率,以達(dá)到壓制碼率控制超標(biāo),均勻圖像質(zhì)量的效果;當(dāng)檢測(cè)到的編碼復(fù)雜程度適中時(shí),可不對(duì)行目標(biāo)碼率進(jìn)行調(diào)整。其中,場(chǎng)景編碼的復(fù)雜程度可由相應(yīng)的閾值進(jìn)行界定,例如,將上一個(gè)已編碼行的碼率與它的目標(biāo)行碼率相比,如果前者大于后者超過一定的閾值(即前者與后者相比得到的變化超過設(shè)定范圍的上限值),則將減小當(dāng)前幀中待編碼行(尚未編碼)的行目標(biāo)碼率;如果前者小于后者低于一定的閾值(即前者與后者相比得到的變化低于設(shè)定范圍的下限值),則將增加當(dāng)前幀中待編碼行(尚未編碼)的行目標(biāo)碼率。 如果對(duì)當(dāng)前行的目標(biāo)碼率進(jìn)行了調(diào)整,則可根據(jù)調(diào)整后的目標(biāo)碼率計(jì)算當(dāng)前行的QP值。其中,當(dāng)前行的目標(biāo)碼率可根據(jù)當(dāng)前幀的初始QP值和目標(biāo)碼率,以及已編碼行宏塊的編碼結(jié)果反饋信息計(jì)算得到。 步驟S506、對(duì)當(dāng)前行的QP進(jìn)行自適應(yīng)限值控制。該步驟可選。
該步驟的QP自適應(yīng)限值控制,主要的功能是完成空間或/和時(shí)間上的QP變化限值,減小QP值的波動(dòng)性和圖像質(zhì)量的差異性。這里所謂空間上的限值即把當(dāng)前行QP值與當(dāng)前幀中的相鄰行的QP值差值限制在一定范圍之內(nèi),所謂時(shí)間上的限值即把當(dāng)前行QP值與相鄰幀對(duì)應(yīng)行的QP值差值限制在一定范圍之內(nèi)。此處的限值控制可以是不固定的(即限值范圍可根據(jù)具體情況而調(diào)整),因?yàn)樵谀承┣闆r下如果按固定的方式對(duì)QP進(jìn)行限值,就會(huì)發(fā)生QP增加不及時(shí),碼率超標(biāo)的情況,此處的QP自適應(yīng)控制就是一個(gè)可以檢測(cè)并自動(dòng)調(diào)整QP限值的過程,當(dāng)可能發(fā)生碼率超標(biāo)時(shí)(例如可將上一個(gè)已編碼行的碼率與它的目標(biāo)行碼率相比,如果碼率變化超過一定的閾值),會(huì)增大QP的波動(dòng)范圍。
如圖6所示,假設(shè)當(dāng)前行宏塊為第k+l幀第n+l行,當(dāng)前行宏塊的QP值為QP(k+1,n+1)',當(dāng)前幀相鄰行QP值為QP(k+1,n),相鄰幀對(duì)應(yīng)行QP值為QP(k,n+1), X為空間上的QP自適應(yīng)限值控制因子,T為時(shí)間上的QP自適應(yīng)限值控制因子,CLIP為限值函數(shù),則當(dāng)前行的QP值限值過程為<formula>formula see original document page 11</formula>
步驟S507、根據(jù)確定出的當(dāng)前行的QP和當(dāng)前行的碼率,對(duì)當(dāng)前行宏塊進(jìn)行編碼,該過程會(huì)產(chǎn)生碼流。 步驟S508、結(jié)束對(duì)當(dāng)前行宏塊碼率控制。 該步驟主要統(tǒng)計(jì)該行碼率和步驟S505中場(chǎng)景自適應(yīng)控制條件檢測(cè)所需的信息等,并將統(tǒng)計(jì)的信息反饋回步驟S504,然后進(jìn)行新的一行宏塊的編碼和碼率控制計(jì)算。如果當(dāng)前行宏塊為該幀最后一行編碼,則結(jié)束該幀編碼。
步驟S509 、結(jié)束對(duì)一幀碼率控制。 該步驟進(jìn)行當(dāng)前幀碼率、平均QP等信息的統(tǒng)計(jì),并反饋到步驟S502。 上述流程中,如果當(dāng)前幀為第一幀,則在步驟502中,在對(duì)當(dāng)前幀進(jìn)行碼率控制
時(shí),其控制依據(jù)不包括前一幀編碼結(jié)束時(shí)反饋回來的編碼結(jié)果信息。如果當(dāng)前行為第一幀
的首行,則步驟505中進(jìn)行碼率控制的依據(jù)不包括前一行宏塊碼率控制結(jié)束后所反饋的統(tǒng)
計(jì)信息。 基于相同的技術(shù)構(gòu)思,本發(fā)明實(shí)施例還提供了一種視頻編碼中的碼率控制裝置,該裝置可應(yīng)用于以行宏塊作為最小運(yùn)算單元的碼率控制過程。 如圖7所示,該裝置可包括獲取模塊10、確定模塊20、反饋模塊30,其中
獲取模塊IO,用于獲取當(dāng)前幀的初始碼率控制參數(shù),如,初始QP值和目標(biāo)碼率;
確定模塊20,與獲取模塊IO連接,用于根據(jù)獲取模塊IO獲取到的當(dāng)前幀的初始碼率控制參數(shù)、已編碼行宏塊的編碼結(jié)果反饋信息,以及編碼場(chǎng)景,確定當(dāng)前行的QP值;
反饋模塊30,與確定模塊20連接,用于將根據(jù)確定模塊20確定出的當(dāng)前行的QP值對(duì)當(dāng)前行進(jìn)行宏塊編碼后得到的編碼結(jié)果信息反饋給確定模塊20。 上述裝置還可包括第一場(chǎng)景自適應(yīng)單元ll,分別與獲取模塊10和確定模塊20連接,用于根據(jù)編碼場(chǎng)景調(diào)整所述獲取模塊獲取到的初始碼率控制參數(shù)。相應(yīng)的,確定模塊20具體用于根據(jù)第一場(chǎng)景自適應(yīng)單元11調(diào)整后的當(dāng)前幀的初始碼率控制參數(shù)、所述反饋信息以及編碼場(chǎng)景確定當(dāng)前行的QP值。 其中,第一場(chǎng)景自適應(yīng)單元ll可具體用于若當(dāng)前幀為I幀編碼,且該當(dāng)前幀的上一個(gè)已編碼幀的碼率與該已編碼幀的目標(biāo)碼率相比得到的碼率變化超過設(shè)定范圍的上限值,則將當(dāng)前幀的目標(biāo)碼率減??;或者,若當(dāng)前幀為I幀編碼,且該當(dāng)前幀的上一個(gè)已編碼幀的碼率與該已編碼幀的目標(biāo)碼率相比得到的碼率變化超過設(shè)定范圍的下限值,則將當(dāng)前幀的目標(biāo)碼率增加;或者,若當(dāng)前幀為非I幀編碼,且該當(dāng)前幀的上一個(gè)已編碼幀的碼率與該已編碼幀的目標(biāo)碼率相比得到的碼率變化超過設(shè)定范圍,通過調(diào)整QP調(diào)整因子,使根據(jù)該QP調(diào)整因子得到的當(dāng)前幀的初始QP值與上一個(gè)已編碼幀的初始QP值的變化在設(shè)定范圍之內(nèi);或者,當(dāng)前幀的初始QP值與其上一個(gè)已編碼幀的初始QP相比得到的QP變化超過設(shè)定閾值范圍的上限值,則減少重新確定當(dāng)前幀的初始QP值,使減小后的QP值與上一個(gè)已編碼幀的初始QP值的變化達(dá)到該設(shè)定范圍的上限值;或者,當(dāng)前幀的初始QP值與其上一個(gè)已編碼幀的初始QP相比得到的QP變化超過設(shè)定范圍閾值的下限值,則增加當(dāng)前幀的初始QP值,使增加后的QP值與上一個(gè)已編碼幀的初始QP值達(dá)到該設(shè)定范圍的下限值。
上述裝置中的確定模塊20可包括 行目標(biāo)碼率確定單元201,用于根據(jù)當(dāng)前幀的初始碼率控制參數(shù)、已編碼行宏塊的編碼結(jié)果反饋信息,以及當(dāng)前幀的場(chǎng)景,確定當(dāng)前行的目標(biāo)碼率; 第二場(chǎng)景自適應(yīng)單元202,與行目標(biāo)碼率確定單元201連接,用于根據(jù)編碼場(chǎng)景調(diào)整當(dāng)前行的目標(biāo)碼率; 行QP值確定單元203,與第二場(chǎng)景自適應(yīng)單元202連接,用于根據(jù)第二場(chǎng)景自適應(yīng)單元202調(diào)整后的當(dāng)前行的目標(biāo)碼率確定當(dāng)前行的QP值。 其中,第二場(chǎng)景自適應(yīng)單元202可具體用于將上一個(gè)已編碼行的碼率與該編碼行的行目標(biāo)碼率相比得到的變化超過設(shè)定范圍的上限值,則減小當(dāng)前幀中待編碼行的行目標(biāo)碼率;如果前者與后者相比得到的變化低于設(shè)定范圍的下限值,則增加當(dāng)前幀中待編碼行的行目標(biāo)碼率。 上述裝置中的確定模塊20還可進(jìn)一步包括QP自適應(yīng)單元204,與行QP值確定單元203連接,用于通過調(diào)整QP值確定單元203確定出的當(dāng)前行的QP值,使將當(dāng)前行的QP值與當(dāng)前幀相鄰行的QP值的差值限制在設(shè)定范圍內(nèi);或/和,通過調(diào)整當(dāng)前行的QP值,使當(dāng)前行的QP值與相鄰幀對(duì)應(yīng)行的QP值的差值限制在設(shè)定范圍內(nèi)。 其中,QP自適應(yīng)單元203可具體用于若上一個(gè)已編碼行的碼率與該已編碼行的目標(biāo)行碼率相比,差值超過設(shè)定閾值,則增大所述設(shè)定范圍。 綜上所述,本發(fā)明的上述實(shí)施例,通過以一行宏塊作為碼率控制最小計(jì)算單元的方式,降低計(jì)算復(fù)雜度;進(jìn)一步的,在碼率控制過程中引入了自適應(yīng)場(chǎng)景控制和自適應(yīng)QP限值控制,以使碼率控制能更好地適應(yīng)各種不同的場(chǎng)景,在控準(zhǔn)碼率使其不超標(biāo)的前提下,盡量使更多的碼流分配到圖像較復(fù)雜的行和幀,提高編碼的圖像質(zhì)量。 通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。 以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種視頻編碼中的碼率控制方法,應(yīng)用于以行宏塊作為最小運(yùn)算單元的碼率控制過程,其特征在于,針對(duì)當(dāng)前行宏塊,包括以下步驟獲取當(dāng)前幀的初始碼率控制參數(shù);根據(jù)當(dāng)前幀的初始碼率控制參數(shù)、已編碼行宏塊的編碼結(jié)果反饋信息,以及編碼場(chǎng)景,確定當(dāng)前行的QP值;反饋根據(jù)當(dāng)前行的QP值對(duì)當(dāng)前行進(jìn)行宏塊編碼后所得到的編碼結(jié)果信息。
2. 如權(quán)利要求1所述的方法,其特征在于,獲取當(dāng)前幀的初始碼率控制參數(shù)之后,還包 括根據(jù)編碼場(chǎng)景調(diào)整獲取到的初始碼率控制參數(shù);確定當(dāng)前行的QP值,具體為根據(jù)調(diào)整后的當(dāng)前幀的初始碼率控制參數(shù)、所述反饋信 息以及編碼場(chǎng)景確定當(dāng)前行的QP值。
3. 如權(quán)利要求2所述的方法,其特征在于,根據(jù)編碼場(chǎng)景調(diào)整獲取到的初始碼率控制 參數(shù),包括根據(jù)編碼場(chǎng)景調(diào)整當(dāng)前幀的目標(biāo)碼率,或調(diào)整當(dāng)前幀的初始QP值和目標(biāo)碼率。
4. 如權(quán)利要求3所述的方法,其特征在于,根據(jù)編碼場(chǎng)景調(diào)整當(dāng)前幀的目標(biāo)碼率,包括當(dāng)前幀為I幀編碼,且該當(dāng)前幀的上一個(gè)已編碼幀的碼率與該已編碼幀的目標(biāo)碼率相 比得到的碼率變化超過設(shè)定范圍的上限值,則將當(dāng)前幀的目標(biāo)碼率減??;或者,當(dāng)前幀的為I幀編碼,且該當(dāng)前幀的上一個(gè)已編碼幀的碼率與該已編碼幀的目 標(biāo)碼率相比得到的碼率變化超過設(shè)定范圍的下限值,則將當(dāng)前幀的目標(biāo)碼率增加。
5. 如權(quán)利要求3所述的方法,其特征在于,根據(jù)編碼場(chǎng)景調(diào)整當(dāng)前幀的初始QP值和目 標(biāo)碼率,包括當(dāng)前幀為非I幀編碼,且該當(dāng)前幀的上一個(gè)已編碼幀的碼率與該已編碼幀的目標(biāo)碼率相比得到的碼率變化超過設(shè)定范圍時(shí),通過調(diào)整QP調(diào)整因子,使根據(jù)該QP調(diào)整因子得到的 當(dāng)前幀的初始QP值與上一個(gè)已編碼幀的初始QP值的變化在設(shè)定范圍之內(nèi);或者,當(dāng)前幀的初始QP值與其上一個(gè)已編碼幀的初始QP相比得到的QP變化超過設(shè)定 閾值范圍的上限值,則減少重新確定當(dāng)前幀的初始QP值,使減小后的QP值與上一個(gè)已編碼 幀的初始QP值的變化達(dá)到該設(shè)定范圍的上限值;或者,當(dāng)前幀的初始QP值與其上一個(gè)已 編碼幀的初始QP相比得到的QP變化超過設(shè)定范圍閾值的下限值,則增加當(dāng)前幀的初始QP 值,使增加后的QP值與上一個(gè)已編碼幀的初始QP值達(dá)到該設(shè)定范圍的下限值。
6. 如權(quán)利要求1所述的方法,其特征在于,確定當(dāng)前行的QP值,包括 根據(jù)當(dāng)前幀的初始QP值和目標(biāo)碼率,以及已編碼行宏塊的編碼結(jié)果反饋信息,確定當(dāng)前行的目標(biāo)碼率;根據(jù)編碼場(chǎng)景調(diào)整當(dāng)前行的目標(biāo)碼率; 根據(jù)調(diào)整后的當(dāng)前行的目標(biāo)碼率確定當(dāng)前行的QP值。
7. 如權(quán)利要求6所述的方法,其特征在于,根據(jù)編碼場(chǎng)景調(diào)整當(dāng)前行的目標(biāo)碼率,包括將上一個(gè)已編碼行的碼率與該編碼行的行目標(biāo)碼率相比得到的變化超過設(shè)定范圍的上限值,則減小當(dāng)前幀中待編碼行的行目標(biāo)碼率;如果前者與后者相比得到的變化低于設(shè) 定范圍的下限值,則增加當(dāng)前幀中待編碼行的行目標(biāo)碼率。
8. 如權(quán)利要求1所述的方法,其特征在于,根據(jù)當(dāng)前幀的初始QP值和目標(biāo)碼率,以及所述反饋信息,確定當(dāng)前行的QP值之后,還包括通過調(diào)整當(dāng)前行的QP值,使將當(dāng)前行的QP值與當(dāng)前幀相鄰行的QP值的差值限制在設(shè) 定范圍內(nèi);或/和,通過調(diào)整當(dāng)前行的QP值,使當(dāng)前行的QP值與相鄰幀對(duì)應(yīng)行的QP值的差值限 制在設(shè)定范圍內(nèi)。
9. 如權(quán)利要求8所述的方法,其特征在于,若上一個(gè)已編碼行的碼率與該已編碼行的 目標(biāo)行碼率相比,差值超過設(shè)定閾值,則增大所述設(shè)定范圍。
10. 如權(quán)利要求1至9任一項(xiàng)所述的方法,其特征在于,所述編碼結(jié)果反饋信息,包括 行編碼碼率。
11. 一種視頻編碼中的碼率控制裝置,應(yīng)用于以行宏塊作為最小運(yùn)算單元的碼率控制過程,其特征在于,包括獲取模塊,用于獲取當(dāng)前幀的初始碼率控制參數(shù);確定模塊,與所述獲取模塊連接,用于根據(jù)所述獲取模塊獲取到的當(dāng)前幀的初始碼率 控制參數(shù)、已編碼行宏塊的編碼結(jié)果反饋信息,以及編碼場(chǎng)景,確定當(dāng)前行的QP值;反饋模塊,與所述確定模塊連接,用于將根據(jù)所述確定模塊確定出的當(dāng)前行的QP值對(duì) 當(dāng)前行進(jìn)行宏塊編碼后得到的編碼結(jié)果信息反饋給所述確定模塊。
12. 如權(quán)利要求ll所述的裝置,其特征在于,還包括第一場(chǎng)景自適應(yīng)單元,分別與所述獲取模塊和所述確定模塊連接,用于根據(jù)編碼場(chǎng)景 調(diào)整所述獲取模塊獲取到的初始碼率控制參數(shù);所述確定模塊具體用于,根據(jù)所述第一場(chǎng)景自適應(yīng)單元調(diào)整后的當(dāng)前幀的初始碼率控 制參數(shù)、所述反饋信息以及編碼場(chǎng)景確定當(dāng)前行的QP值。
13. 如權(quán)利要求12所述的裝置,其特征在于,所述第一場(chǎng)景自適應(yīng)單元具體用于,若當(dāng) 前幀為I幀編碼,且該當(dāng)前幀的上一個(gè)已編碼幀的碼率與該已編碼幀的目標(biāo)碼率相比得到 的碼率變化超過設(shè)定范圍的上限值,則將當(dāng)前幀的目標(biāo)碼率減??;或者,若當(dāng)前幀為I幀編 碼,且該當(dāng)前幀的上一個(gè)已編碼幀的碼率與該已編碼幀的目標(biāo)碼率相比得到的碼率變化超 過設(shè)定范圍的下限值,則將當(dāng)前幀的目標(biāo)碼率增加;或者,若當(dāng)前幀為非I幀編碼,且該當(dāng) 前幀的上一個(gè)已編碼幀的碼率與該已編碼幀的目標(biāo)碼率相比得到的碼率變化超過設(shè)定范 圍,通過調(diào)整QP調(diào)整因子,使根據(jù)該QP調(diào)整因子得到的當(dāng)前幀的初始QP值與上一個(gè)已編 碼幀的初始QP值的變化在設(shè)定范圍之內(nèi);或者,當(dāng)前幀的初始QP值與其上一個(gè)已編碼幀的 初始QP相比得到的QP變化超過設(shè)定閾值范圍的上限值,則減少重新確定當(dāng)前幀的初始QP 值,使減小后的QP值與上一個(gè)已編碼幀的初始QP值的變化達(dá)到該設(shè)定范圍的上限值;或 者,當(dāng)前幀的初始QP值與其上一個(gè)已編碼幀的初始QP相比得到的QP變化超過設(shè)定范圍閾 值的下限值,則增加當(dāng)前幀的初始QP值,使增加后的QP值與上一個(gè)已編碼幀的初始QP值 達(dá)到該設(shè)定范圍的下限值。
14. 如權(quán)利要求10或11所述的裝置,其特征在于,所述確定模塊包括 行目標(biāo)碼率確定單元,用于根據(jù)當(dāng)前幀的初始碼率控制參數(shù)、已編碼行宏塊的編碼結(jié)果反饋信息,以及當(dāng)前幀的場(chǎng)景,確定當(dāng)前行的目標(biāo)碼率;第二場(chǎng)景自適應(yīng)單元,與所述行目標(biāo)碼率確定單元連接,用于根據(jù)編碼場(chǎng)景調(diào)整當(dāng)前行的目標(biāo)碼率;行QP值確定單元,與所述第二場(chǎng)景自適應(yīng)單元連接,用于根據(jù)所述第二場(chǎng)景自適應(yīng)單 元調(diào)整后的當(dāng)前行的目標(biāo)碼率確定當(dāng)前行的QP值。
15. 如權(quán)利要求14述的裝置,其特征在于,所述第二場(chǎng)景自適應(yīng)單元具體用于,將上一 個(gè)已編碼行的碼率與該編碼行的行目標(biāo)碼率相比得到的變化超過設(shè)定范圍的上限值,則減 小當(dāng)前幀中待編碼行的行目標(biāo)碼率;如果前者與后者相比得到的變化低于設(shè)定范圍的下限 值,則增加當(dāng)前幀中待編碼行的行目標(biāo)碼率。
16. 如權(quán)利要求14所述的裝置,其特征在于,所述確定模塊還包括QP自適應(yīng)單元,與所述行QP值確定單元連接,用于通過調(diào)整所述QP值確定單元確定出 的當(dāng)前行的QP值,使將當(dāng)前行的QP值與當(dāng)前幀相鄰行的QP值的差值限制在設(shè)定范圍內(nèi); 或/和,通過調(diào)整當(dāng)前行的QP值,使當(dāng)前行的QP值與相鄰幀對(duì)應(yīng)行的QP值的差值限制在 設(shè)定范圍內(nèi)。
17. 如權(quán)利要求16所述的裝置,其特征在于,所述QP自適應(yīng)單元具體用于,若上一個(gè)已 編碼行的碼率與該已編碼行的目標(biāo)行碼率相比,差值超過設(shè)定閾值,則增大所述設(shè)定范圍。
全文摘要
本發(fā)明公開了一種視頻編碼中的碼率控制方法及其裝置,應(yīng)用于以行宏塊作為最小運(yùn)算單元的碼率控制過程。本發(fā)明方法包括針對(duì)當(dāng)前行宏塊,包括以下步驟獲取當(dāng)前幀的初始碼率控制參數(shù);根據(jù)當(dāng)前幀的初始碼率控制參數(shù)、已編碼行宏塊的編碼結(jié)果反饋信息,以及編碼場(chǎng)景,確定當(dāng)前行的QP值;反饋根據(jù)當(dāng)前行的QP值對(duì)當(dāng)前行進(jìn)行宏塊編碼后所得到的編碼結(jié)果信息。采用本發(fā)明,可實(shí)現(xiàn)在控準(zhǔn)碼率的前提之下盡可能地提升編碼圖像質(zhì)量。
文檔編號(hào)H04N7/26GK101795415SQ20101015223
公開日2010年8月4日 申請(qǐng)日期2010年4月22日 優(yōu)先權(quán)日2010年4月22日
發(fā)明者李聰廷, 譚熾烈, 鄭曉先, 陳航鋒 申請(qǐng)人:杭州華三通信技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
沅陵县| 东丰县| 淮南市| 江都市| 应用必备| 淮安市| 灵璧县| 灌云县| 汉中市| 大荔县| 渝中区| 乡城县| 巩留县| 宁都县| 昭苏县| 阿拉善右旗| 友谊县| 南京市| 瓦房店市| 连城县| 石阡县| 河西区| 内乡县| 甘德县| 康定县| 临清市| 西乌珠穆沁旗| 昌平区| 武陟县| 合肥市| 寿光市| 隆尧县| 成安县| 金乡县| 营山县| 孟津县| 固始县| 彭山县| 台安县| 霍邱县| 保德县|