提升視頻質量的碼率控制方法與流程
2024-04-16 01:05:05 1
1.本發明屬於視頻編碼技術領域,具體涉及一種提升視頻質量的碼率控制方法。
背景技術:
2.隨著網絡通信和視頻處理技術的快速發展,視頻解析度逐步提升到4k、8k,視頻數據量的增加對視頻編碼壓縮技術提出了更高的要求。
3.視頻一幀圖像內部有很多鄰近像素的數據是相似或相同的,為空域冗餘,而視頻中鄰近幀之間的數據也存在很多相似或重複,為時域冗餘。編碼壓縮就是將數據中的冗餘信息去掉,幀內編碼可以去除空域冗餘,而幀間編碼則可以去除時域冗餘。編碼器基於延時需求、網絡帶寬和視頻質量等要素,將視頻各幀分類成i幀、p幀、b幀,並把每幀分成若干個編碼單元(coding unit,cu),i幀內部各cu採用幀內模式編碼,它消耗的比特數最多但是質量最好;p幀和b幀根據各cu的運動複雜度確定採用幀內模式或者幀間模式編碼,所消耗的比特數比i幀少但是質量會略差;
4.碼率控制算法基本可以分為兩層:幀層碼率控制和cu層碼率控制。幀層碼率控制根據帶寬計算出各幀不出現上溢和下溢的量化參數(quantization parameter,qp)值,利用rq模型計算出各幀的目標比特數:
[0005][0006]
其中bits為當前幀可用的比特數,satd為當前幀的殘差變換絕對值之和,用來衡量當前幀的複雜度;a、b、c為預測係數,採用線性回歸法逐幀更新。由於i幀、p幀、b幀消耗的碼率差別較大,會各自分配一組預測係數,即i幀預測係數(a_i,b_i,c_i),p幀預測係數(a_p,b_p,c_p),b幀預測係數(a_b,b_b,c_b)。cu層碼率控制將一幀的目標比特數分配到各個cu,一方面給紋理越複雜的cu分配越多的比特數,另一方面,需要確保當前幀各個cu的比特數總和接近於當前幀的目標比特數。
[0007]
現有碼率控制算法在場景變化非常大時,比如足球視頻從遠景鏡頭切換到近景鏡頭,p幀的幀級目標比特數會估算不準,場景變化會使各cu趨向於選擇幀內編碼模式,消耗更多的比特數,一旦預估的幀級目標比特數偏少,在下半部分區域的cu編碼時會發現比特數不夠用,只能加大qp來降低比特數,qp越大則編碼失真越大,因此出現下半部分區域的質量會較比上半部分區域的質量要差。
技術實現要素:
[0008]
鑑於以上存在的問題,本發明提供一種提升視頻質量的碼率控制方法,用於使得cu編碼時下半部分區域的質量和上半部分區域的質量趨於一致,提升場景變化大時的編碼質量。
[0009]
為解決上述技術問題,本發明採用如下的技術方案:
[0010]
一種提升視頻質量的碼率控制方法,其特徵在於,包括:
[0011]
s1,初始化i幀、p幀、b幀的預測係數,開始編碼;
[0012]
s2,開始第i幀的幀層碼率控制;
[0013]
s3,根據帶寬計算出使當前幀不出現上溢和下溢的qp值,標記為qp0;
[0014]
s4,根據當前幀的幀類型、qp0、satd值和預測係數,計算當前幀的目標比特數target_bits和最大比特數max_bits;
[0015]
s5,採用線性回歸法更新當前幀的預測係數;
[0016]
s6,開始cu層碼率控制;
[0017]
s7,計算第j個cu的最終qp值,並用最終qp值對該cu進行編碼;
[0018]
s8,判斷當前視頻所有幀的所有cu是否已經編碼完成,如果是則結束編碼,獲取編碼碼流;否則判斷當前幀所有的cu是否已經編碼完成,如果是則將i加1並執行s2,否則將j加1並執行s7。
[0019]
優選地,所述s1中初始化i幀、p幀、b幀的預測係數包括:
[0020]
如果是i幀,則預測係數(a_i,b_i,c_i)分別為(0.5,1.0,2.0)。
[0021]
優選地,s4中包括:
[0022]
如果是i幀,則當前幀的目標比特數為:
[0023][0024]
最大比特數:
[0025]
max_bits=target_bits。
[0026]
優選地,所述s1中初始化i幀、p幀、b幀的預測係數包括:
[0027]
如果是p幀,則預測係數(a_p,b_p,c_p)分別為(0.25,1.0,2.0)。
[0028]
優選地,s4中包括:
[0029]
如果是p幀,則當前幀的目標比特數為:
[0030][0031]
並判斷該幀的幀內模式比例是否大於90%,如果大於則:
[0032][0033]
如果不大於則:
[0034]
max_bits=target_bits。
[0035]
優選地,所述s1中初始化i幀、p幀、b幀的預測係數包括:
[0036]
如果是b幀,則預測係數(a_b,b_b,c_b)分別為(0.2,1.0,2.0)。
[0037]
優選地,s4中包括:
[0038]
如果是b幀,則當前幀的目標比特數為:
[0039][0040]
最大比特數:
[0041]
max_bits=target_bits
[0042]
優選地,s7中計算第j個cu的最終qp值包括:根據cu的紋理複雜度和目標比特數target_bits計算當前cu的初始qp值qp_cu0,如果滿足qp_cu0-qp0》6,且當前幀已編碼cu累計的比特數sum_bits滿足sum_bits》target_bits且sum_bits《max_bits,則當前cu的最終qp值等於qp_cu0-3,否則當前cu的最終qp值等於qp_cu0。
[0043]
採用本發明具有如下的有益效果:在幀層碼率控制時,當檢測到場景變化很大時,給p幀設置最大比特數,並且用i幀的預測係數來計算該p幀的最大比特數;在cu層碼率控制,當cu的qp值遠大於幀級qp時,在確保當前幀所有cu的比特數總和小於p幀的最大比特數時,降低cu的qp,確保編碼質量,最終提升了場景變化較大時的編碼質量。
附圖說明
[0044]
圖1為本發明實施例的提升視頻質量的碼率控制方法的步驟流程圖。
具體實施方式
[0045]
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
[0046]
參見圖1,所示為本發明實施例的提升視頻質量的碼率控制方法的步驟流程圖,包括:
[0047]
s1,初始化i幀、p幀、b幀的預測係數,開始編碼;
[0048]
s2,開始第i幀的幀層碼率控制;
[0049]
s3,根據帶寬計算出使當前幀不出現上溢和下溢的qp值,標記為qp0;
[0050]
s4,根據當前幀的幀類型、qp0、satd值和預測係數,計算當前幀的目標比特數target_bits和最大比特數max_bits;
[0051]
s5,採用線性回歸法更新當前幀的預測係數;
[0052]
s6,開始cu層碼率控制;
[0053]
s7,計算第j個cu的最終qp值,並用最終qp值對該cu進行編碼;
[0054]
s8,判斷當前視頻所有幀的所有cu是否已經編碼完成,如果是則結束編碼,獲取編碼碼流;否則判斷當前幀所有的cu是否已經編碼完成,如果是則將i加1並執行s2,否則將j加1並執行s7。
[0055]
本發明一實施例的提升視頻質量的碼率控制方法,s1中初始化i幀、p幀、b幀的預測係數包括:
[0056]
如果是i幀,則預測係數(a_i,b_i,c_i)分別為(0.5,1.0,2.0)。
[0057]
進一步地,s4中包括:
[0058]
如果是i幀,則當前幀的目標比特數為:
[0059][0060]
最大比特數:
[0061]
max_bits=target_bits。
[0062]
本發明一實施例的提升視頻質量的碼率控制方法,s1中初始化i幀、p幀、b幀的預測係數包括:
[0063]
如果是p幀,則預測係數(a_p,b_p,c_p)分別為(0.25,1.0,2.0)。
[0064]
進一步地,s4中包括:
[0065]
如果是p幀,則當前幀的目標比特數為:
[0066][0067]
並判斷該幀的幀內模式比例是否大於90%,如果大於則:
[0068][0069]
如果不大於則:
[0070]
max_bits=target_bits。
[0071]
本發明一實施例的提升視頻質量的碼率控制方法,s1中初始化i幀、p幀、b幀的預測係數包括:
[0072]
如果是b幀,則預測係數(a_b,b_b,c_b)分別為(0.2,1.0,2.0)。
[0073]
進一步地,s4中包括:
[0074]
如果是b幀,則當前幀的目標比特數為:
[0075][0076]
最大比特數:
[0077]
max_bits=target_bits。
[0078]
本發明一實施例的提升視頻質量的碼率控制方法,s7中計算第j個cu的最終qp值包括:根據cu的紋理複雜度和目標比特數target_bits計算當前cu的初始qp值qp_cu0,如果滿足qp_cu0-qp0》6,且當前幀已編碼cu累計的比特數sum_bits滿足sum_bits》target_bits且sum_bits《max_bits,則當前cu的最終qp值等於qp_cu0-3,否則當前cu的最終qp值等於qp_cu0。
[0079]
通過以上設置的提升視頻質量的碼率控制方法,在幀層碼率控制時,當檢測到場景變化較大時,給p幀設置最大比特數,並且用i幀的預測係數來計算該p幀的最大比特數;在cu層碼率控制,當cu的qp值遠大於幀級qp時,在確保當前幀所有cu的比特數總和小於p幀的最大比特數時,降低cu的qp,確保編碼質量,最終提升了場景變化較大的編碼質量。相比於現有碼率控制算法出現的在場景變化較大時下半部分區域的質量會較比上半部分區域的質量要差的現象,本發明方法的下半部分區域的質量和上半部分區域的質量趨於一致,最終提升了場景變化大時的編碼質量。以上方法可以在hevc/avs2、h264、avs、avs3等編碼器中實施。
[0080]
應當理解,本文所述的示例性實施例是說明性的而非限制性的。儘管結合附圖描述了本發明的一個或多個實施例,本領域普通技術人員應當理解,在不脫離通過所附權利要求所限定的本發明的精神和範圍的情況下,可以做出各種形式和細節的改變。