一種用于可伸縮視頻編碼的宏塊級碼率控制方法
【技術領域】
[0001] 本發(fā)明涉及一種可伸縮視頻編碼的碼率控制方法。
【背景技術】
[0002] SVC標準是以H. 264/AVC視頻編解碼標準為基礎,由國際電聯(lián)電信標準化部門 (ITU-T)視頻編碼專家組(VCEG)和國際標準化組織(ISO)動態(tài)圖像專家組(MPEG)組成的 聯(lián)合視頻專家組(JVT)共同制定的國際可伸縮視頻編碼標準。在保持高效率壓縮的同時, SVC編碼器產生的碼流可實現(xiàn)在時間(幀率)、空間(分辨率)和視頻質量(信噪比)上的 可伸縮,即通過一次編碼產生的碼流可以解碼出不同幀率、分辨率和質量等級的視頻。在給 定傳輸帶寬或存儲空間的條件下,碼率控制算法利用編碼工具對編碼比特進行有效地調配 和使用,從而獲得更好的重建視頻質量。碼率控制算法能夠保證輸出的碼率能夠符合傳輸 帶寬的要求,防止緩沖器上溢和下溢并且充分利用帶寬資源。雖然對碼率控制算法已有了 較廣泛的研宄,但是基本上都是針對不可伸縮視頻編碼標準進行的?,F(xiàn)有針對可伸縮視頻 編碼的碼率控制技術存在的主要問題有:
[0003] (1)現(xiàn)有的率失真(Rate-Distortion,RD)關系模型不能準確描述SVC標準的率失 真關系。SVC標準繼承了 H. 264/AVC標準所有先進的編碼工具,同時采用了多層編碼框架和 新的層間預測技術,使得現(xiàn)有的率失真模型不能準確地描述其率失真關系。例如,新的編碼 技術改變了用于編碼圖像紋理的比特開銷和用于編碼非紋理信息的比特開銷之間的關系, 從而使率失真模型也隨之發(fā)生變化。
[0004] (2)現(xiàn)有的率失真模型未考慮基本層和增強層間的相互影響。SVC編碼標準采用 多層編碼框架,這使主要應用于單層編碼框架的傳統(tǒng)碼率控制技術不能有效地對SVC編碼 器進行碼率控制。例如,由于SVC所采用的新的層間預測技術,在編碼增強層時,不能簡單 地將傳統(tǒng)的碼率控制技術直接應用于增強層,還應該同時考慮基本層和增強層間的相互影 響;SVC標準繼承了 H. 265/SVC標準的靈活的塊編碼方式,這使精確地控制SVC編碼器輸出 碼率的難度進一步增加。與傳統(tǒng)的單層編碼標準不同,SVC標準的編碼效率同時受到基本 層和增強層編碼效率的影響?;緦雍驮鰪妼拥木幋a效率也是互相影響的。因此,需要為 SVC標準重新建立基本層和增強層聯(lián)合的率失真模型。
[0005] (3)現(xiàn)有MD預測的誤差率高?,F(xiàn)有的碼率控制算法中,MD預測在二項式率失真 模型中起到重要的作用,因為MD預測會影響到量化參數(shù)(QP)的選擇。目前,MD預測采 用的是線性預測模型,該模型利用MD值在時域上的相關性。當視頻中出現(xiàn)劇烈的運動或 者場景變換時,線性MD預測模型性能較差,而且總是存在預測上的延遲,導致MD預測模 型的預測誤差率高。
【發(fā)明內容】
[0006] 本發(fā)明是為了解決現(xiàn)有碼率控制技術中率失真關系模型不能準確描述SVC標準 的率失真關系、未考慮基本層和增強層間的相互影響以及現(xiàn)有MD預測模型的預測誤差率 高的問題,而提出了一種用于可伸縮視頻編碼的宏塊級碼率控制方法。
[0007] 上述發(fā)明的目的是通過以下技術方案實現(xiàn)的:
[0008] 步驟一、初始化;若當前編碼單元為第1幀中的第1個編碼單元時,從編碼配置文 件中讀取量化參數(shù)的初始值InitialQP,并將InitialQP分別賦值給層間預測的量化參數(shù) Qpint@的初始值和層內預測的量化參數(shù)Qp 的初始值;
[0009] 步驟二、對視頻序列以宏塊為編碼單元進行可伸縮編碼,在編碼過程中使用步驟 一中設置的量化參數(shù)或步驟九中設置的量化參數(shù),編碼完成后存儲編碼結果;
[0010] 步驟三、根據(jù)步驟二中得到的編碼結果,對宏塊的MD預測模型的系數(shù)進行更新;
[0011] 步驟四、將步驟三中更新后的模型系數(shù)帶入宏塊的MD預測模型,利用新的宏塊 的MD預測模型對下一宏塊的MD值進行預測,得到宏塊的MD預測值MD el;
[0012] 步驟五、根據(jù)在步驟二中獲得的編碼結果,對率失真模型系數(shù)進行更新,得到更新 后的率失真模型系數(shù)ZTerly、Zferly、廣aly和Zf trely;
[0013] 步驟六、計算目標編碼比特數(shù)Rtxt;
[0014] 根據(jù)標準測試軟件JSVM中默認的編碼比特數(shù)分配方法,計算下一宏塊的目標編 碼比特數(shù)R txt;
[0015] 步驟七、利用步驟四中得到的宏塊的MD預測值MDel、步驟五中得到更新后的率 失真模型系數(shù)X廣―、Zf eri' ZftralIP^traly和步驟六中得到的目標編碼比特數(shù)Rtxt,計算 用于層間預測的量化參數(shù)QPintely和用于層內預測的量化參數(shù)QP intely;
[0016] 步驟八、對步驟七中得到的用于層間預測的量化參數(shù)QPintely和用于層內預測的 量化參數(shù)QP intlraly進行微調;
[0017] 步驟九、設置在可伸縮編碼過程中,進行預測編碼時所使用的量化參數(shù);
[0018] 將在步驟八中計算得到的QPintely的值賦值給進行層間預測編碼時的量化參數(shù);
[0019] 將在步驟八中計算得到的QPintely的值賦值給進行層內預測編碼時的量化參數(shù);
[0020] 步驟十、檢查對當前幀的編碼是否結束;
[0021] 若當前幀中的所有宏塊都已編碼完成,則對下一幀進行編碼;
[0022] 若當前幀中的還有宏塊未被編碼,返回步驟二。
[0023] 發(fā)明效果
[0024] 采用本發(fā)明的一種用于可伸縮視頻編碼的宏塊級碼率控制方法,
[0025] (1)本發(fā)明對像素域預測殘差概率分布進行了分析,進而對宏塊MD值的概率分 布進行了探討,為層間預測和層內預測分別建立了單獨并且足夠精確的率失真關系模型, 該模型考慮到了基本層和增強層間編碼時的相互影響,是基本層和增強層聯(lián)合的率失真模 型。本發(fā)明還提出了一種改進的平均絕對差值預測模型,該模型能夠使用基本層的一些編 碼結果協(xié)助增強層的編碼。提出的率失真模型能準確描述SVC標準的率失真關系;解決了 現(xiàn)有碼率控制技術中率失真關系模型不能準確描述SVC標準的率失真關系的問題。
[0026] (2)本發(fā)明中提出的新的率失真關系模型考慮到了基本層和增強層間編碼時的相 互影響,提出的率失真關系模型是基本層和增強層聯(lián)合的率失真模型。實驗結果說明,采 用本發(fā)明的一種用于可伸縮視頻編碼的宏塊級碼率控制方法的碼率控制精度在大多數(shù)情 況下都要優(yōu)于JVT-W043碼率控制算法和FixedQP碼率控制工具。大多數(shù)的失配率都小于 0.1%,而最大的失配率只有0.47%??傮w平均絕對失配率只有0.14%。可以說,提出的 碼率控制算法能夠非常精確地控制編碼器的輸出碼率。與JVT-W043碼率控制算法相比, 編碼增強層時,我們提出的碼率控制算法能夠獲得更好的率失真性能。實驗結果說明,與 JVT-W043碼率控制算法相比(1)在相同的重建圖像客觀質量(PSNR)下,提出的算法能夠減 少編碼碼率可以高達5. 13 %; (2)在相同的編碼碼率下,提出的算法可以使峰值信噪比提高 達0. 28dB。總體來說,每個重建視頻序列的PSNR在所有的目標比特率上都獲得提高。因此, 相對于JVT-W043碼率控制算法,無論目標碼率設置為多少,本發(fā)明中提出的算法都可以有 效提高編碼器的編碼效率。解決了現(xiàn)有的率失真模型未考慮基本層和增強層間的相互影響 的問題。
[0027] (3)本發(fā)明利用基本層和增強層之間的高度相關性,提出了新的MD預測模型,
[0028]
【主權項】
1. 一種用于可伸縮視頻編碼的宏塊級碼率控制方法,其特征在于,一種用于可伸縮視 頻編碼的宏塊級碼率控制方法具體是按照W下步驟進行的: 步驟一、初始化;若當前編碼單元為第1帖中的第1個編碼單元時,從編碼配置文件 中讀取量化參數(shù)的初始值InitialQP,并將InitialQP分別賦值給層間預測的量化參數(shù) Qpintedy的初始值和層內預測的量化參數(shù)QPinttaly的初始值; 步驟二、對視頻序列W宏塊為編碼單元進行可伸縮編碼,在編碼過程中使用步驟一中 設置的量化參數(shù)或步驟九中設置的量化參數(shù),編碼完成后存儲編碼結果; 步驟=、根據(jù)步驟二中得到的編碼結果,對宏塊的MAD預測模型的系數(shù)進行更新; 步驟四、將步驟S中更新后的模型系數(shù)帶入宏塊的MAD預測模型,利用新的宏塊的MAD 預測模型對下一宏塊的MAD值進行預測,得到宏塊的MAD預測值MADd; 步驟五、根據(jù)在步驟二中獲得的編碼結果,對率失真模型系數(shù)進行更新,得到更新后的 率失真模型系數(shù)X;血1?、JTferiy、馬ntraly和義產卻; 步驟六、計算目標編碼比特數(shù)R?; 根據(jù)標準測試軟件JSVM中默認的編碼比特數(shù)分配方法,計算下一宏塊的目標編碼比 特數(shù)Rtxt; 步驟走、利用步驟四中得到的宏塊的MAD預測值MAD,1、步驟五中得到更新后的率失真 模型系數(shù)XiWnly和Xftaly和步驟六中得到的目標編碼比特數(shù)Rw計算用于 層間預測的量化參數(shù)QpintWy和用于層內預測的量化參數(shù)QPinttaly; 步驟八、對步驟走中得到的用于層間預測的量化參數(shù)Qpintsd邢用于層內預測的量化 參數(shù)Qpinttaly進行微調; 步驟九、設置在可伸縮編碼過程中,進行預測編碼時所使用的量化參數(shù); 將在步驟八中計算得到的Qpintsdy的值賦值給進行層間預測編碼時的量化參數(shù); 將在步驟八中計算得到的Qpinttaly的值賦值給進行層內預測編碼時的量化參數(shù). 步驟十、檢查對當前帖的編碼是否結束; 若當前帖中的所有宏塊都已編碼完成,則對下一帖進行編碼; 若當前帖中的還有宏塊未被編碼,返回步驟二。
2. 根據(jù)權利要求1所述一種用于可伸縮視頻編碼的宏塊級碼率控制方法,其特征在 于,所述步驟二中對視頻序列W宏塊為編碼單元進行可伸縮編碼,在編碼過程中使用步驟 一中設置的量化參數(shù)或步驟九中設置的量化參數(shù),編碼完成后存儲編碼結果;具體過程 為: 利用可伸縮視頻編碼標準的參考軟件JSVM對視頻序列W宏塊為編碼單元進行編碼, 在編碼的過程中執(zhí)行基于Lagrangian優(yōu)化算法的率失真優(yōu)化, 若當前宏塊為增強層中第1帖中的第1個宏塊時; 使用步驟一中設置的量化參數(shù); 若當前宏塊并非增強層中第1帖中的第1個宏塊時; 使用步驟九中設置的量化參數(shù); 從而選擇最優(yōu)編碼模式,完成對每一宏塊的編碼后,存儲關于該宏塊的編碼結果;編碼 結果包括最優(yōu)編碼模式;實際產生的比特數(shù)實際的MAD值MAD 若所述最優(yōu)編碼模式是層間預測模式時,實際使用的層間量化參數(shù)值0巧; 若所述最優(yōu)編碼模式是層內預測模式時,實際使用的層內量化參數(shù)值餅普uiy. 所述Lagrangian為拉格朗日函數(shù)。
3.根據(jù)權利要求2所述一種用于可伸縮視頻編碼的宏塊級碼率控制方法,其特征在 于,所述步驟S中根據(jù)步驟二中得到的編碼結果,對宏塊的MAD預測模型的系數(shù)即式(1)中 的模型系數(shù),進行更新;具體過程為: 將步