H.264碼率控制中基于MAD比率的選擇性跳幀算法
發(fā)布時(shí)間:2008/6/2 0:00:00 訪問次數(shù):796
引言:本文在h.264碼率控制機(jī)制的基礎(chǔ)上,提出了一種基于平均絕對差(mad)比率的跳幀算法。該算法將圖像的mad比率和緩沖器占用量作為跳幀判別標(biāo)準(zhǔn),為運(yùn)動(dòng)劇烈的圖像保留緩沖器空間。實(shí)驗(yàn)結(jié)果表明,本算法一方面可以有效地降低緩沖器的占用量和節(jié)省編碼時(shí)間,從而在硬件方面表現(xiàn)為降低對緩沖器大小等方面的要求,達(dá)到降低成本的目的;另一方面,可以保證圖像序列連續(xù)性和提高圖像質(zhì)量。
大多數(shù)視頻壓縮技術(shù)和標(biāo)準(zhǔn)產(chǎn)生的比特率都是可變的,為了能夠在恒定比特率的通信信道和網(wǎng)絡(luò)中傳輸,需要在碼率控制中引入一個(gè)緩沖區(qū)機(jī)制,先將壓縮后的碼流存入緩沖區(qū),然后以恒定碼率輸出。因此,碼率控制的任務(wù)就是在保證緩沖器不產(chǎn)生上溢和下溢的前提下,通過調(diào)整一些編碼參數(shù)(如量化參數(shù))來使編碼比特率達(dá)到期望值。
跳幀策略是碼率控制算法中防止緩沖器上溢的手段。以往的跳幀算法往往確定某一個(gè)固定的限值(通常為80%)[1],當(dāng)緩沖器的占用量到達(dá)這個(gè)限值時(shí),不考慮下一幀的任何情況就把它跳過。這種跳幀算法的缺陷有兩點(diǎn):當(dāng)緩沖器占用量達(dá)到80%時(shí)盲目地跳過下一幀,有可能錯(cuò)過運(yùn)動(dòng)劇烈的圖像而導(dǎo)致譯碼后圖像序列質(zhì)量的下降;當(dāng)緩沖器占用量未達(dá)到80%,但卻很接近80%時(shí),如果下一幀圖像運(yùn)動(dòng)比較劇烈的話,較多的編碼比特?cái)?shù)就會(huì)導(dǎo)致緩沖器發(fā)生嚴(yán)重的上溢。
本文提出了基于mad比率的跳幀判斷準(zhǔn)則,將當(dāng)前緩沖器的占用量與每一幀圖像的運(yùn)動(dòng)劇烈程度結(jié)合起來,對緩沖器的占用量設(shè)定幾個(gè)閾值,并且用mad比率來對每幅圖像的運(yùn)動(dòng)劇烈程度進(jìn)行標(biāo)識。對于某個(gè)mad比率的圖像來說,當(dāng)緩沖器占用量達(dá)到跳幀判別準(zhǔn)則中規(guī)定的閾值時(shí),即將該幀跳過。這樣就可以通過跳過一些運(yùn)動(dòng)平緩的圖像,而為運(yùn)動(dòng)劇烈的圖像保留緩沖器空間,從而保證圖像序列的連續(xù)性,提高圖像質(zhì)量。
碼率控制算法
幀層的碼率控制算法
幀層的碼率控制分為兩個(gè)階段:第一階段為每一個(gè)p幀計(jì)算一個(gè)目標(biāo)比特?cái)?shù),第二階段持續(xù)地更新率失真模型的各個(gè)參數(shù)并且進(jìn)行跳幀控制。
假設(shè)只有一組圖像(gop),并且圖像序列的編碼順序是第一幀為i幀,后面為連續(xù)的p幀。假設(shè)n表示組圖中所有幀的數(shù)目,nj表示組圖中的第j幀,bc(nj)表示編碼第j幀圖像后緩沖器實(shí)際的占用量,a(nj)表示編碼第j幀時(shí)實(shí)際產(chǎn)生的比特?cái)?shù),bs表示緩沖器大小,tbl(nj)表示第j幀被編碼后緩沖器的目標(biāo)值,rr表示剩余比特?cái)?shù),nr表示組圖中剩余的幀數(shù)。因此,第j+1幀圖像被編碼后緩沖器的實(shí)際占用量bc(nj+1)可以表示為[2][3]:
假設(shè)第一個(gè)p幀的量化參數(shù)等于組圖的量化參數(shù),所以有:
其它p幀被編碼后緩沖器的目標(biāo)值由下式給出:
因此,考慮緩沖器占用量而得到的目標(biāo)比特?cái)?shù)tbuff可以表示為:
其中g(shù)ama是個(gè)常量,它的值通常為0.75。
考慮剩余比特?cái)?shù)而得到的目標(biāo)比特?cái)?shù)tr可以表示為:
所以,最后的目標(biāo)比特?cái)?shù)t可以通過tbuff和tr的加權(quán)和得到:
試驗(yàn)中β=0.5[2]。
宏塊層的碼率控制
在宏塊層,根據(jù)每一個(gè)宏塊的mad來給每一個(gè)宏塊分配比特?cái)?shù)并且求出量化參數(shù)。宏塊層的碼率控制分為三個(gè)步驟:首先為每一個(gè)宏塊分配比特?cái)?shù);其次根據(jù)目標(biāo)比特?cái)?shù)計(jì)算出量化參數(shù);最后在對每一個(gè)宏塊編碼后,進(jìn)行參數(shù)的預(yù)測。
a.比特?cái)?shù)的分配
假設(shè)nm表示一幀中宏塊的個(gè)數(shù),ave_mad表示一幀圖像中各個(gè)宏塊的mad的平均值,mad[i][j]表示第i幀中第j個(gè)宏塊的mad。因此第i幀中第j個(gè)宏塊所分配的目標(biāo)比特?cái)?shù)b[i][j]可表示為:
b.計(jì)算各個(gè)宏塊的量化參數(shù)
率失真函數(shù)是許多碼率控制算法的核心,它將量化參數(shù)q與編碼比特?cái)?shù)r聯(lián)系起來,其關(guān)系式為:
其中s表示宏塊的編碼復(fù)雜度,x1和x2是率失真模型參數(shù)。q值較小時(shí),分配較多的編碼比特?cái)?shù);q值較大時(shí),則分配較少的編碼比特?cái)?shù)。
c.模型參數(shù)的預(yù)測
在對每一個(gè)幀進(jìn)行編碼后,都要根據(jù)前面n幀的編碼結(jié)果對模型參數(shù)(x1、x2)進(jìn)行更新。由上式可以得出:
最小均方誤差可以表示為:
該等式成立的條件是:(a)n>1,(b)所有的n個(gè)q值不完全相同。
基于mad比率的跳幀算法
在恒定比特率應(yīng)用中,編碼器和傳輸信道間的緩沖器起了十分重要的作用。編碼器應(yīng)該使緩沖器的占用量保持在50%左右。如果緩沖器發(fā)生上溢,則會(huì)損失一些數(shù)據(jù)。相反,如果緩沖器的占用量過低就會(huì)浪費(fèi)帶寬。當(dāng)緩沖器的值很高時(shí),避免上溢的方法就是跳過一個(gè)完整的幀。
由以往的經(jīng)驗(yàn)可以知道,大多數(shù)的跳幀過程都是由于緩沖器上溢引起的。與緩沖器的目標(biāo)值即緩沖器大小的一半相比較,實(shí)際中緩沖器發(fā)生上溢的可能性遠(yuǎn)遠(yuǎn)大于發(fā)生下溢的可能性。緩沖器的占用量低于緩沖器大小25%的情況是非常少見的。因此,有必要把緩沖器的占用量控制在50%左右,以保證緩沖器的占用量有足夠的上升空間。
下面詳細(xì)介紹一下基于mad比
引言:本文在h.264碼率控制機(jī)制的基礎(chǔ)上,提出了一種基于平均絕對差(mad)比率的跳幀算法。該算法將圖像的mad比率和緩沖器占用量作為跳幀判別標(biāo)準(zhǔn),為運(yùn)動(dòng)劇烈的圖像保留緩沖器空間。實(shí)驗(yàn)結(jié)果表明,本算法一方面可以有效地降低緩沖器的占用量和節(jié)省編碼時(shí)間,從而在硬件方面表現(xiàn)為降低對緩沖器大小等方面的要求,達(dá)到降低成本的目的;另一方面,可以保證圖像序列連續(xù)性和提高圖像質(zhì)量。
大多數(shù)視頻壓縮技術(shù)和標(biāo)準(zhǔn)產(chǎn)生的比特率都是可變的,為了能夠在恒定比特率的通信信道和網(wǎng)絡(luò)中傳輸,需要在碼率控制中引入一個(gè)緩沖區(qū)機(jī)制,先將壓縮后的碼流存入緩沖區(qū),然后以恒定碼率輸出。因此,碼率控制的任務(wù)就是在保證緩沖器不產(chǎn)生上溢和下溢的前提下,通過調(diào)整一些編碼參數(shù)(如量化參數(shù))來使編碼比特率達(dá)到期望值。
跳幀策略是碼率控制算法中防止緩沖器上溢的手段。以往的跳幀算法往往確定某一個(gè)固定的限值(通常為80%)[1],當(dāng)緩沖器的占用量到達(dá)這個(gè)限值時(shí),不考慮下一幀的任何情況就把它跳過。這種跳幀算法的缺陷有兩點(diǎn):當(dāng)緩沖器占用量達(dá)到80%時(shí)盲目地跳過下一幀,有可能錯(cuò)過運(yùn)動(dòng)劇烈的圖像而導(dǎo)致譯碼后圖像序列質(zhì)量的下降;當(dāng)緩沖器占用量未達(dá)到80%,但卻很接近80%時(shí),如果下一幀圖像運(yùn)動(dòng)比較劇烈的話,較多的編碼比特?cái)?shù)就會(huì)導(dǎo)致緩沖器發(fā)生嚴(yán)重的上溢。
本文提出了基于mad比率的跳幀判斷準(zhǔn)則,將當(dāng)前緩沖器的占用量與每一幀圖像的運(yùn)動(dòng)劇烈程度結(jié)合起來,對緩沖器的占用量設(shè)定幾個(gè)閾值,并且用mad比率來對每幅圖像的運(yùn)動(dòng)劇烈程度進(jìn)行標(biāo)識。對于某個(gè)mad比率的圖像來說,當(dāng)緩沖器占用量達(dá)到跳幀判別準(zhǔn)則中規(guī)定的閾值時(shí),即將該幀跳過。這樣就可以通過跳過一些運(yùn)動(dòng)平緩的圖像,而為運(yùn)動(dòng)劇烈的圖像保留緩沖器空間,從而保證圖像序列的連續(xù)性,提高圖像質(zhì)量。
碼率控制算法
幀層的碼率控制算法
幀層的碼率控制分為兩個(gè)階段:第一階段為每一個(gè)p幀計(jì)算一個(gè)目標(biāo)比特?cái)?shù),第二階段持續(xù)地更新率失真模型的各個(gè)參數(shù)并且進(jìn)行跳幀控制。
假設(shè)只有一組圖像(gop),并且圖像序列的編碼順序是第一幀為i幀,后面為連續(xù)的p幀。假設(shè)n表示組圖中所有幀的數(shù)目,nj表示組圖中的第j幀,bc(nj)表示編碼第j幀圖像后緩沖器實(shí)際的占用量,a(nj)表示編碼第j幀時(shí)實(shí)際產(chǎn)生的比特?cái)?shù),bs表示緩沖器大小,tbl(nj)表示第j幀被編碼后緩沖器的目標(biāo)值,rr表示剩余比特?cái)?shù),nr表示組圖中剩余的幀數(shù)。因此,第j+1幀圖像被編碼后緩沖器的實(shí)際占用量bc(nj+1)可以表示為[2][3]:
假設(shè)第一個(gè)p幀的量化參數(shù)等于組圖的量化參數(shù),所以有:
其它p幀被編碼后緩沖器的目標(biāo)值由下式給出:
因此,考慮緩沖器占用量而得到的目標(biāo)比特?cái)?shù)tbuff可以表示為:
其中g(shù)ama是個(gè)常量,它的值通常為0.75。
考慮剩余比特?cái)?shù)而得到的目標(biāo)比特?cái)?shù)tr可以表示為:
所以,最后的目標(biāo)比特?cái)?shù)t可以通過tbuff和tr的加權(quán)和得到:
試驗(yàn)中β=0.5[2]。
宏塊層的碼率控制
在宏塊層,根據(jù)每一個(gè)宏塊的mad來給每一個(gè)宏塊分配比特?cái)?shù)并且求出量化參數(shù)。宏塊層的碼率控制分為三個(gè)步驟:首先為每一個(gè)宏塊分配比特?cái)?shù);其次根據(jù)目標(biāo)比特?cái)?shù)計(jì)算出量化參數(shù);最后在對每一個(gè)宏塊編碼后,進(jìn)行參數(shù)的預(yù)測。
a.比特?cái)?shù)的分配
假設(shè)nm表示一幀中宏塊的個(gè)數(shù),ave_mad表示一幀圖像中各個(gè)宏塊的mad的平均值,mad[i][j]表示第i幀中第j個(gè)宏塊的mad。因此第i幀中第j個(gè)宏塊所分配的目標(biāo)比特?cái)?shù)b[i][j]可表示為:
b.計(jì)算各個(gè)宏塊的量化參數(shù)
率失真函數(shù)是許多碼率控制算法的核心,它將量化參數(shù)q與編碼比特?cái)?shù)r聯(lián)系起來,其關(guān)系式為:
其中s表示宏塊的編碼復(fù)雜度,x1和x2是率失真模型參數(shù)。q值較小時(shí),分配較多的編碼比特?cái)?shù);q值較大時(shí),則分配較少的編碼比特?cái)?shù)。
c.模型參數(shù)的預(yù)測
在對每一個(gè)幀進(jìn)行編碼后,都要根據(jù)前面n幀的編碼結(jié)果對模型參數(shù)(x1、x2)進(jìn)行更新。由上式可以得出:
最小均方誤差可以表示為:
該等式成立的條件是:(a)n>1,(b)所有的n個(gè)q值不完全相同。
基于mad比率的跳幀算法
在恒定比特率應(yīng)用中,編碼器和傳輸信道間的緩沖器起了十分重要的作用。編碼器應(yīng)該使緩沖器的占用量保持在50%左右。如果緩沖器發(fā)生上溢,則會(huì)損失一些數(shù)據(jù)。相反,如果緩沖器的占用量過低就會(huì)浪費(fèi)帶寬。當(dāng)緩沖器的值很高時(shí),避免上溢的方法就是跳過一個(gè)完整的幀。
由以往的經(jīng)驗(yàn)可以知道,大多數(shù)的跳幀過程都是由于緩沖器上溢引起的。與緩沖器的目標(biāo)值即緩沖器大小的一半相比較,實(shí)際中緩沖器發(fā)生上溢的可能性遠(yuǎn)遠(yuǎn)大于發(fā)生下溢的可能性。緩沖器的占用量低于緩沖器大小25%的情況是非常少見的。因此,有必要把緩沖器的占用量控制在50%左右,以保證緩沖器的占用量有足夠的上升空間。
下面詳細(xì)介紹一下基于mad比
熱門點(diǎn)擊
- PWM至線性信號轉(zhuǎn)換電路適于風(fēng)扇速度控制
- 人機(jī)界面的技術(shù)發(fā)展史
- 富士觸摸屏與西門子PLC通訊中的問題及解決方
- 為微控制器提供4到20mA回路的電路
- 一種集升降溫控制功能為一體的溫控器
- 國半100V半橋式PWM控制器有效減小設(shè)計(jì)空
- FZY-S系列小型工頻軸流風(fēng)機(jī)主要技術(shù)參數(shù)
- 基于Motorola單片機(jī)的機(jī)器人追跑控制系
- Atmel針對AVR微控制器的開發(fā)工具提供片
- 倒相式音調(diào)控制器
推薦技術(shù)資料
- 自制經(jīng)典的1875功放
- 平時(shí)我也經(jīng)常逛一些音響DIY論壇,發(fā)現(xiàn)有很多人喜歡LM... [詳細(xì)]
- AI加速器(NPU)圖像處理(
- 智能電池壽命增強(qiáng)器IC應(yīng)用解釋
- SUSE Enterpris
- 微軟Azure Marketplace應(yīng)用探
- 驅(qū)動(dòng)程序CUDAKMD和CUD
- NV-RISCV64(RV64
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究