專利名稱::場景切換碼率控制方法
技術領域:
:本發(fā)明涉及編碼技術,特別涉及場景切換碼率控制方法。
背景技術:
:為了節(jié)約傳輸帶寬和存儲空間,支持數(shù)字電視廣播、遠程監(jiān)控、數(shù)字視頻點播、無線多媒體通信等應用,視頻編碼己經(jīng)成為國內外研究和工業(yè)應用的熱點之一。至今國際上已制定了一系列的視頻編碼標準,如MPEG-1/2/4,H.261/H.263,H.264/AVC,以及國內目前正在制定完善中的AVS視頻編碼標準。其中,H.264/AVC和AVS與以前的標準相比,雖然編碼框架類似,但其壓縮效率比以往的任何標準都提高了至少一倍以上,適合在更多的場景應用。圖l為視頻編碼的編碼框架。目前的視頻編碼標準采用的主要編解碼技術包括整數(shù)變換、碼率控制,量化、幀內預測、幀間預測、變長編碼和去塊效應濾波。其中,碼率控制的目的是為了保證在產生指定碼率碼流的條件下,能夠達到最優(yōu)的圖像質量,并保證編解碼緩沖區(qū)不會發(fā)生溢出。碼率控制模塊的主要輸出為量化參數(shù)(QP),編碼過程中,根據(jù)此QP值,査找(或者計算)得到量化步長(QPSt印),用于圖像量化。碼率控制的主要步驟包括首先,確定初始QP,這個可以是用戶輸入,也可以是碼率控制算法計算得到。但是,對于大多數(shù)應用,需要碼率控制算法自動計算。第二步為位分配,即根據(jù)目標碼率以及緩沖區(qū)狀態(tài),為每一幀圖像分配一定的比特數(shù);最后,計算并調整量化參數(shù),使得編碼該幀圖像所用的比特數(shù)接近分配給該幀的比特數(shù),從而達到目標碼率。圖2為碼率控制模塊的框圖。碼率控制是視頻編碼中必不可少的技術,任何標準離開碼率控制,其應用都會受到限制,比如在恒定帶寬約束條件下的傳輸系統(tǒng)中,如果沒有合適的碼率控制方法,信道將無法穩(wěn)定的傳輸壓縮視頻流。為此,每種視頻編碼標準都推薦了一種適合其自身的碼率控制方案?,F(xiàn)在的碼率控制算法中,使用RQ預測模型和線性MAD預測模型,計算量化步長。需要根據(jù)相鄰幀的相似性,估計得到圖像的復雜度PMAD,進而根據(jù)分配的比特數(shù)計算得到用于編碼的量化步長?,F(xiàn)有的碼率控制方法是基于相鄰圖像幀內容相似的假定,沒有考慮場景切換情況。當場景切換時,由于相鄰幀不再存在相似性,因此用于碼率控制的RQ預測模型和MAD預測模型失效,其計算得到的量化參數(shù)將不適合于場景切換幀。另外,由于相鄰幀不再存在相似性,編碼P幀和B幀時,運動估計將失效,導致許多宏塊采用幀內模式編碼,碼流長度和圖像質量波動較大。圖3給出了AVS參考軟件碼率控制方法下512Kbps混合CIF碼流的編碼結果,可以看到,在發(fā)生場景切換時,由于不合適的量化參數(shù),導致圖像質量大幅下降。圖4給出了AVS參考軟件碼率控制方法下512Kbps混合CIF碼流的編碼長度,可以看到在場景切換處,編碼長度波動非常大。目前,場景切換碼率控制方法可以分為2類。第1類為2遍編碼方式,在第一遍編碼過程中發(fā)現(xiàn)場景切換幀,并記錄編碼信息,用于第二遍編碼。這類方法計算量大,而且不適合實時應用。第2類方法為1遍編碼方式。首先檢測是否發(fā)生場景切換,如果判斷出現(xiàn)場景切換則進行不同的碼率控制。一種方法把場景切換幀類型設定為I幀,也就是重新開始一個GOP編碼,這種方法改變了GOP的結構,一定程度上增加了編碼器的復雜度。其他方法,不改變G0P結構,但是為場景切換幀重新分配碼率,然后根據(jù)分配的碼率來計算得到QP。在場景檢測的方法上,2個相鄰幀像素差值,圖像像素平均值,以及運動估計殘差是常用的場景檢測參數(shù)。
發(fā)明內容本發(fā)明的目的是提供一種場景切換時的碼率控制方法。為實現(xiàn)上述目的,一種場景切換碼率控制方法,包括步驟-a)判斷當前編碼圖像是否發(fā)生場景切換;b)如果發(fā)生場景切換,則計算適合該場景切換幀的量化參數(shù),并使用所述量化參數(shù)進行編碼。本發(fā)明的方法能夠方便的集成在現(xiàn)有的各種視頻編碼標準中。與已有的各種方法不同,本發(fā)明不改變編碼的GOP結構,也不重新分配碼率,而是直接計算用于場景切換幀的量化參數(shù)。圖l是編碼器功能框圖2是碼率控制框圖3是場景切換前后圖像質量;圖4是編碼長度;圖5是發(fā)明流程圖6是場景檢測流程;圖7是場景切換幀量化參數(shù)計算;圖8是RD性能;圖io是碼流長度比較。具體實施例方式本發(fā)明流程圖,如圖5所示首先,執(zhí)行501步驟,計算圖像特征,并判斷是否發(fā)生場景切換。501步驟的具體執(zhí)行過程如圖6所示601步驟中,計算當前編碼圖像水平方向的梯度變化值-CA=J-^-^和,M4G/^為上一編碼幀的水平方向梯度絕對值和,M4G4和M4C^計算方法相同,為M4G/2=|;|;|/y-/,v+1|,/,為像素值,W和H為圖像的寬和高。602步驟中,計算當前編碼圖像垂直方向的梯度變化值-,其中M4G/^為當前編碼幀的水平方向梯度絕對值J腸廣腿,l,其中旭G^為當前編碼幀的垂直方向梯度絕對值和,M4Gv。為上一編碼幀的垂直方向梯度絕對值和,計算方法為旭G"ESlK+J,^為像素值,W和H為圖像的寬和高。603步驟中,計算梯度變化c=并判斷其與設定的閾值(^,和&2的關系,如果C〉CV,,則當前幀發(fā)生了場景切換;如果C〈C^,則當前幀沒有發(fā)生場景切換;如果梯度變化在2個設定閾值之間,則執(zhí)行步驟604,做進一步判斷。這里,Cn和C^均大于0,G,典型取值范圍在0到10之間,也可取此范圍以外的數(shù)值。Q取值范圍在0到1之間,C^取值需小于C^。步驟604中,計算當前編碼圖像位平面均值變化,其中Mf為當前編碼幀的位平面均值,M。為上一編碼幀的位平面均值,計算方法為加D一//m=I;u為像素點的第k個位平面值,w和H為圖像的寬和高。這里,根據(jù)不同的應用,選擇不同的位平面,例如可以選擇第7,第6,第5個位平面;也可以選擇第5,第4,第2個位平面。步驟605中,判斷位平面均值變化和設定的閾值&3的關系,如果CA>Cf3,則當前幀發(fā)生了場景切換;否則,則認為當前幀沒有發(fā)生場景切換。這里,C^為大于0的任意數(shù)。如果在501步驟中,判斷發(fā)生了場景切換,則執(zhí)行步驟502,為場景切換幀計算量化參數(shù)。502步驟的具體執(zhí)行過程如圖7所示701步驟中,首先計算場景切換幀圖像特征M4G^^^^,W,,為圖像中像素數(shù)目。702步驟中,根據(jù)得到的圖像特征,計算用于場景切換幀的量化步長="x腐",這里,a,ay分別為參數(shù)l,參數(shù)2和參數(shù)3,此3水參數(shù)取值范圍沒有限制,可以取任意值;^/根據(jù)目標碼率和幀率大/|、計算得到,表示了目標碼率下每幀的比特數(shù)=&>她為編碼目標比特率,/為幀率;^^印為計算得到量化步長。703步驟中,根據(jù)視頻編碼標準,將上面計算得到的量化步長映射為量化參數(shù)。不同的視頻編碼標準規(guī)定了量化步長和量化參數(shù)的關系e尸=0尸&印22尸(2尸S,印),這里eP&卬2g尸是視頻編碼標準中完成量化步長到量化參數(shù)OP映射的函數(shù)。704步驟中,對計算得到的量化參數(shù)進行調整,如果當前GOP剩余bit數(shù),小于按照目標碼率編碼剩余圖像需要的bit數(shù),則將量化參數(shù)加l;否則,量化參數(shù)不變。705步驟中,將計算得到的量化參數(shù)賦給當前GOP的量化參數(shù),以及GOP中量化參數(shù)和,同時置GOP中已編碼P幀計數(shù)器為O。下面以AVS標準為例,具體說明本發(fā)明的具體實施。其他具體實施方式,雖未包含在本實施例中,但仍在本發(fā)明的權利覆蓋范圍內。首先,計算當前編碼圖像水平方向的梯度變化值C,1^^^1;第二步,計算當前編碼圖像垂直方向的梯度變化值|M4Gvc-M4GvpCv-M4Gvc,第三步,計算梯度變化C-C^G,并判斷其與設定的閾值(^和C^的關系,如果C〉C^,則當前幀發(fā)生了場景切換,執(zhí)行第六步;如果C〈Cn,則當前幀沒有發(fā)生場景切換,按照原有碼率控制算法編碼當前圖像;如果梯度變化在2個設定閾值之間,則執(zhí)行第四步,做進一步判斷。在本實施例中,Q和(^分別取值0.8和0.2;第四步,計算當前編碼圖像位平面均值變化G-1^^1。本實施例中取第4,第5,第6個位平面。第五步,判斷位平面均值變化和設定的閾值Cn的關系,如果c;〉Cn,則當前幀發(fā)生了場景切換,繼續(xù)執(zhí)行第六步;否則,則認為當前幀沒有發(fā)生場景切換,按照原有碼率控制算法編碼當前圖像。本實施例中,C^取值O.1;第六歩,首先計算場景切換幀圖像特征脇&=+,然后計算用于場景切換幀的量化步長2尸^印=本實施例中,取參數(shù)l,參數(shù)2和參數(shù)3分別為"=55000,々=20000,"=訓;第七步,根據(jù)編碼標準,將上面計算得到的量化步長映射為量化參數(shù)。在AVS中,量化步長和量化參數(shù)為指數(shù)關系^^/"f(11.5xln(2PSf^));在H.264中,量化步長和量化參數(shù)的關系為2P=M12+6xlog,(^^));最后,判斷當前GOP剩余bit數(shù),是否小于按照目標碼率編碼剩余圖像需要的bit數(shù)。如果小于,則將第七步計算得到的量化參數(shù)加一;否則,保持量化參數(shù)不變。并將計算得到的量化參數(shù)賦給當前GOP的量化參數(shù),以及GOP中量化參數(shù)和,同時置GOP中已編碼P幀計數(shù)器為0。本發(fā)明的方法和AVS參考軟件實現(xiàn)的碼率控制方法進行了對比,利用9個CIF大小30Hz禾示y隹序歹廿Foreman,paris,bus,football,news,mobile,tempete,mother—daughter和deadline混合而成一個包含17次場景切換的360幀序列。在這9個序列中,football包含劇烈運動;mobile和bus中物體存在平移和旋轉,背景也存在相對運動;paris和deadline為復雜背景,局部運動序列;mother—daughter為簡單背景,簡單運動序列;news存在背景運動;foreman存在鏡頭晃動;tempete存在不規(guī)則快速運動。這些序列為AVS工作組推薦的測試序列,我們隨機的排列這9個序列,拼接出360幀混合序列。利用AVS參考軟件和本專利方法,分別在384Kbps,512Kbps,10000Kbps和1500Kbps目標碼率下進行壓縮,獲得如下結果<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>RD曲線如圖8所示,可以看到本專利的方法平均提高PSNR在l個dB左右。在主觀質量上,本發(fā)明很好的解決了場景切換時圖像質量大幅下降的問題,同樣以512Kbps混合壓縮碼流為例,圖9左邊為AVS參考軟件的壓縮效果,右邊為本發(fā)明的壓縮效果。在碼流長度上,本發(fā)明避免了場景切換時的碼流長度突變,圖IO給出了512Kbps目標碼率下AVS參考軟件和本發(fā)明的壓縮碼流長度比較。權利要求1.一種場景切換碼率控制方法,包括步驟a)判斷當前編碼圖像是否發(fā)生場景切換;b)如果發(fā)生場景切換,則計算適合該場景切換幀的量化參數(shù),并使用所述量化參數(shù)進行編碼。2.根據(jù)權利要求l所述的方法,其特征在于所述步驟a)包括計算當前編碼幀和前一個編碼幀水平方向梯度變化;計算當前編碼幀和前一個編碼幀垂直方向梯度變化;如果水平方向和垂直方向梯度變化之和大于閾值CT,,則發(fā)生場景切換。3.根據(jù)權利要求2所述的方法,其特征在于還包括如果水平方向和垂直方向梯度變化之和小于閾值Cn大于閾值CT2,則計算當前編碼幀和前一個編碼幀位平面均值變化;如果位平面均值變化大于閾值CT3,則發(fā)生場景切換。4.根據(jù)權利要求2所述的方法,其特征在于按下式計算當前編碼圖像水平方向的梯度變化值<formula>formulaseeoriginaldocumentpage2</formula>,其中M4C^為當前編碼幀的水平方向梯度絕對M4G\值和,M4G、為上一編碼幀的水平方向梯度絕對值和。5.根據(jù)權利要求2所述的方法,其特征在于按下式計算當前編碼圖像垂直方向的梯度變化值<formula>formulaseeoriginaldocumentpage2</formula>,其中M4(^為當前編碼幀的垂直方向梯度絕對值和,M4GVp為上一編碼幀的垂直方向梯度絕對值和。6.根據(jù)權利要求3所述的方法,其特征在于按下式計算當前編碼圖像位平面均值變化值<formula>formulaseeoriginaldocumentpage3</formula>其中M,為當前編碼幀的位平面均值,Mp為上一編碼幀的位平面均值。7.根據(jù)權利要求2所述的方法,其特征在于所述閾值CT2取值在0-1之間。8.根據(jù)權利要求3所述的方法,其特征在于所述閾值CT2小于CT,。9.根據(jù)權利要求3所述的方法,其特征在于所述閾值CT3大于零。10.根據(jù)權利要求3所述的方法,其特征在于所述閾值Cn為0.8。11.根據(jù)權利要求8所述的方法,其特征在于所述閾值CT2為0.2。12.根據(jù)權利要求9所述的方法,其特征在于所述閾值CT3為0.1。13.根據(jù)權利要求l所述的方法,其特征在于所述步驟b)包括計算當前編碼幀圖像特征;計算當前編碼幀的量化步長;計算當前編碼幀的量化參數(shù);根據(jù)剩余bit數(shù)調整量化參數(shù);更新GOP量化參數(shù)。14.根據(jù)權利要求13所述的方法,其特征在于按下式計算當前編碼幀圖像特征<formula>formulaseeoriginaldocumentpage3</formula>v為圖像中像素數(shù)目。15.根據(jù)權利要求13所述的方法,其特征在于按下式計算當前編碼幀的量化步長<formula>formulaseeoriginaldocumentpage3</formula>這里,",/,y分別為參數(shù)l,參數(shù)2和參數(shù)3;6/7/根據(jù)目標碼率和幀率大小計算得到,表示了目標碼率下每幀的比特數(shù)<formula>formulaseeoriginaldocumentpage3</formula>她為編碼目標比特率,/為幀率;2A嘩為16.根據(jù)權利要求15所述的方法,其特征在于所述參數(shù)a=55000,"=20000,;k=1000。全文摘要一種場景切換碼率控制方法,包括步驟判斷當前編碼圖像是否發(fā)生場景切換;如果發(fā)生場景切換,則計算適合該場景切換幀的量化參數(shù),并使用所述量化參數(shù)進行編碼。本發(fā)明的方法能夠方便的集成在現(xiàn)有的各種視頻編碼標準中。與已有的各種方法不同,本發(fā)明不改變編碼的GOP結構,也不重新分配碼率,而是直接計算用于場景切換幀的量化參數(shù)。文檔編號H04N7/50GK101677398SQ20081014905公開日2010年3月24日申請日期2008年9月19日優(yōu)先權日2008年9月19日發(fā)明者李昌賢,熊君君,王錫貴,勐郭,高艷君申請人:三星電子株式會社;北京三星通信技術研究有限公司