本發(fā)明涉及視頻編碼技術領域,尤其涉及一種HDR和SDR自適應碼率控制的方法。
背景技術:
隨著網絡技術的不斷成熟和視頻圖像技術的快速發(fā)展,人們對視頻業(yè)務的需求也越來越高,視頻業(yè)務已經廣泛地應用于移動終端、網絡直播、家庭影院和遠程監(jiān)控領域,視頻分辨率逐步從標清(SD)向高清(HD)、超高清(UHD)轉變,分辨率的提高意味著對網絡帶寬的要求也越來越高,提升視頻編碼壓縮效率,減少網絡帶寬壓力是視頻技術發(fā)展的一個關鍵。同時,人們對視頻觀看的需求也越來越高,HDR(High Dynamic Range,高動態(tài)范圍)逐步成為電視機市場的一個熱點。
傳統(tǒng)的SDR(Standard Dynamic Range)視頻編碼會出現高光溢出,將高光部分細節(jié)丟失,以保證暗部曝光正常,或暗部裁切,將暗部細節(jié)丟失,以保證高亮度場景曝光正常,而HDR視頻編碼能夠表示更高的亮度動態(tài)范圍,高光的時候不會過曝,暗調的時候不會欠曝,讓亮處的效果更清晰,暗處依然能分辨物體的輪廓和深度。
在視頻編碼過程中,HDR視頻比SDR視頻需要表示更多的細節(jié),HDR視頻編碼比SDR視頻編碼在很多細節(jié)區(qū)域需要消耗更多的碼率,因此,在視頻直播的拍攝階段,將攝像機的HDR模式切換為SDR模式來減少數據量,或者將SDR模式切換為HDR模式來提升觀看質量成為一種必要的方式,現有的視頻編碼則沒有針對HDR模式和SDR模式相互切換進行碼率控制的方法。
因此,現有技術需要改進。
技術實現要素:
本發(fā)明公開了一種HDR和SDR自適應碼率控制的方法,用以解決現有技術存在的問題。
所述一種HDR和SDR自適應碼率控制的方法,包括:
判斷HDR(High Dynamic Range,高動態(tài)范圍)視頻編碼器中的HDR視頻編碼數據中Meta Data碼是否發(fā)生變化,所述Meta Data碼為HDR視頻編碼數據中用于表示視頻的亮度范圍和色度格式的編碼,所述HDR視頻編碼器的碼率控制算法包括三層:GOP(Group of Picture,圖像組)層碼率控制、幀層碼率控制和CU(Coding Unit,編碼單元)層碼率控制,HDR視頻編碼器將一個視頻分為多個GOP,每個GOP包含多幀,所述GOP層碼率控制根據視頻特性和網絡帶寬計算各個GOP的目標碼率;所述幀層碼率控制將一個GOP的目標碼率劃分到GOP中的各個幀,根據各幀的復雜度計算各幀的目標碼率;所述CU層碼率控制將一幀分成多個CU,根據前一幀中對應CU的復雜度來預測當前CU的復雜度并確定當前CU的目標碼率;
如果發(fā)生變化,則說明發(fā)生HDR視頻編碼轉換為SDR(Standard Dynamic Range,標準動態(tài)范圍)視頻編碼或SDR視頻編碼轉換為HDR視頻編碼;
如果未發(fā)生變化,說明當前HDR視頻編碼器中視頻為HDR視頻,HDR視頻編碼器進行HDR視頻編碼。
在基于上述一種HDR和SDR自適應碼率控制的方法的另一個實施例中,所述HDR視頻編碼轉換為SDR視頻編碼包括:
判斷當前幀與前一幀的幀亮度差是否大于設定的亮度變化閾值TH1;
若是,則判定為場景切換,直接將當前幀切換為I幀;
否則,在對任何一個CU編碼時,判斷當前CU與前一幀中對應位置CU的MAD值是否大于設定閾值TH2,且檢測當前CU的平均亮度值是否在設定亮度范圍U1內,所述U1表示偏亮和偏暗的區(qū)域,所述MAD表示偏亮和偏暗區(qū)域的亮度平均絕對差值;
若滿足,則當前CU為由亮到暗的漸模糊區(qū),降低當前CU目標碼率,將當前CU的目標碼率降低到已有目標碼率的b倍,所述b<1;
若不滿足,則提高當前CU的目標碼率,當前CU的目標碼率提升到已有目標碼率的a倍,所述a>1。
在基于上述一種HDR和SDR自適應碼率控制的方法的另一個實施例中,所述SDR視頻編碼轉換為HDR視頻編碼包括:
判斷當前幀與前一幀的幀亮度差是否大于設定的亮度變化閾值TH1;
若是,則判定為場景切換,直接將當前幀切換為I幀;
否則,在對任何一個CU編碼時,判斷當前CU與前一幀中對應位置CU的MAD值是否大于設定閾值TH2,且檢測當前CU的平均亮度值是否在設定亮度范圍U1內,所述U1表示偏亮和偏暗的區(qū)域,所述MAD表示偏亮和偏暗區(qū)域的亮度平均絕對差值;
若滿足,則稱當前CU為由暗到亮漸清晰區(qū),提高當前CU的目標碼率,,當前CU的目標碼率提升到已有目標碼率的a倍,所述a>1;
若不滿足,則降低當前CU的目標碼率,將當前CU的目標碼率降低到已有目標碼率的b倍,所述b<1。
在基于上述一種HDR和SDR自適應碼率控制的方法的另一個實施例中,所述HDR視頻編碼器進行HDR視頻編碼包括:
判斷當前幀與前一幀的幀亮度差是否大于設定的亮度變化閾值TH1;
若是,則判定為場景切換,直接將當前幀切換為I幀;
否則,在對任何一個CU編碼時,判斷當前CU與前一幀中對應位置CU的MAD值是否大于設定閾值TH3,且檢測當前CU的平均亮度值是否在設定亮度范圍U1內,所述U1表示偏亮和偏暗的區(qū)域,所述MAD表示偏亮和偏暗區(qū)域的亮度平均絕對差值;
若是,則稱當前CU為HDR編碼劇變區(qū),將當前CU的目標碼率提升到a倍,其中a>1;
否則,將當前CU的目標碼率降低為b倍,其中b<1。
在基于上述一種HDR和SDR自適應碼率控制的方法的另一個實施例中,所述HDR視頻編碼器包括:H265編碼器、MPEG2編碼器、H264編碼器、AVS編碼器、AVS+編碼器、AVS2編碼器。
與現有技術相比較,本發(fā)明具有以下優(yōu)點:
本發(fā)明通過先檢測視頻的亮度范圍和色度格式的編碼變化情況,判斷視頻中的場景變換、HDR和SDR互相切換,并調整分配目標碼率,使HDR中高光區(qū)域和黑暗區(qū)域的細節(jié)更加完整地保存,同時減少SDR中不必要的碼率開銷,提升編碼的主觀質量,在HDR和SDR互相切換的場景中,能夠減少塊效應的出現,對于人眼主觀感知質量有較明顯的提升,對于HDR編碼中亮度變化較大的局部區(qū)域也有較大的質量提升。
下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。
附圖說明
為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所使用的附圖做一簡單地介紹。
圖1是本發(fā)明的一種HDR和SDR自適應碼率控制的方法的一個實施例的流程圖。
圖2是本發(fā)明的一種HDR和SDR自適應碼率控制的方法的另一個實施例的流程圖。
圖3是本發(fā)明的一種HDR和SDR自適應碼率控制的方法的又一個實施例的流程圖。
圖4是本發(fā)明的一種HDR和SDR自適應碼率控制的方法的又一個實施例的流程圖。
具體實施方式
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。
基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
在視頻直播領域,視頻直播通常分為四個步驟:
第一步,拍攝采集成具有若干幀圖像的視頻數據源;
第二步,對視頻數據源進行編碼壓縮,減少數據的帶寬;
第三步,對編碼壓縮成的碼流,進行網絡傳輸并發(fā)送給用戶;
第四步,用戶在PC、手機等平臺利用播放器(解碼器)將碼流解碼成若干幀圖像進行觀看。
傳統(tǒng)視頻傳輸的視頻編碼采用的是SDR(Standard Dynamic Range)編碼,它所能表示的色域范圍較小,會出現高光溢出,高光部分細節(jié)丟失,或暗部裁切,暗部細節(jié)丟失, HDR(High Dynamic Range)編碼的色域范圍廣,能夠表示更高的亮度動態(tài)范圍,高光的時候不會過曝,暗調的時候不會欠曝,讓亮處的效果更清晰,暗處依然能分辨物體的輪廓和深度。
SDR視頻通常用YUV數據來表示,它描述了該視頻中顯示給用戶觀看的圖像細節(jié),圖像的細節(jié)越復雜,則在編碼時需要消耗更多的碼率。HDR視頻除了YUV數據,還包括Meta Data,所述Meta Data描述HDR視頻的亮度范圍和色度格式信息,同時不會消耗太多碼率。
在視頻編碼過程中,HDR視頻比SDR視頻需要表示更多的細節(jié),HDR編碼比SDR編碼在很多細節(jié)區(qū)域需要消耗更多的碼率,例如對一個顏色偏暗的樹林同時用SDR和HDR方式拍攝,該場景在SDR方式中可能顯示為紋理非常簡單的黑色,只需要較少的碼率就可以編碼,而在HDR方式中樹林顯示的非常清晰,紋理非常復雜,需要消耗較多的碼率,在視頻直播的拍攝階段將攝像機的HDR模式切換為SDR模式來減少數據量,或者將SDR模式切換為HDR模式來提升觀看質量成為一種必要的方式,此時在編碼階段,當SDR模式切換為HDR模式或者HDR模式切換為SDR模式時局部碼率分配的方式需要進行調整,HDR視頻在編碼時容易造成亮度對比度的強烈變化,需要進行目標碼率的調整。
視頻編碼的碼率控制算法分為三層:GOP(Group of Picture,圖像組)層碼率控制、幀層碼率控制和CU(Coding Unit,編碼單元)層碼率控制。
編碼器將一個視頻分為若干個GOP,每個GOP包含若干幀,GOP層碼率控制目的就是根據視頻特性和網絡帶寬計算各個GOP的目標碼率;
幀層碼率控制將一個GOP的目標碼率劃分到GOP中的各個幀,根據各幀的復雜度計算各幀的目標碼率,場景切換時,將當前幀切換為I幀,如果沒有場景切換時,將按照GOP長度設置當前幀為I幀、P幀或者B幀,其中I幀為幀內編碼,不需要參考其他幀,消耗碼率較多,P幀和B幀為幀間編碼,需要參考其他幀,消耗的碼率較少;
CU層碼率控制將一幀分成若干個CU,根據前一幀中對應CU的復雜度來預測當前CU的復雜度并確定當前CU的目標碼率。
上述碼率控制算法在HDR和SDR切換的過程中效果很差。
在視頻直播的拍攝階段將攝像機的HDR模式切換為SDR模式來減少數據量,或者將SDR模式切換為HDR模式來提升觀看質量成為一種必要的方式,在編碼階段,這種模式的切換會給高光區(qū)域和黑暗區(qū)域的細節(jié)帶來很大的變化,CU的復雜度預測不再準確,碼率分配不準會降低視頻質量,HDR和SDR的切換類似于場景切換,幀間變化較大,但又不同于場景切換,因為前者只有高光區(qū)域和黑暗區(qū)域的變化較大,因此,它的碼率控制方式與場景切換的碼率控制方式不同,同時,HDR編碼過程中亮度對比度的變化較大,對人眼主觀感知影響較大,碼率分配也需要進行調整。
圖1是本發(fā)明的一種HDR和SDR自適應碼率控制的方法的一個實施例的流程圖,如圖1所示,所述一種HDR和SDR自適應碼率控制的方法包括:
10,判斷HDR(High Dynamic Range,高動態(tài)范圍)視頻編碼器中的HDR視頻編碼數據中Meta Data碼是否發(fā)生變化,所述Meta Data碼為HDR視頻編碼數據中用于表示視頻的亮度范圍和色度格式的編碼,所述HDR視頻編碼器的碼率控制算法包括三層:GOP(Group of Picture,圖像組)層碼率控制、幀層碼率控制和CU(Coding Unit,編碼單元)層碼率控制,HDR視頻編碼器將一個視頻分為多個GOP,每個GOP包含多幀,所述GOP層碼率控制根據視頻特性和網絡帶寬計算各個GOP的目標碼率;所述幀層碼率控制將一個GOP的目標碼率劃分到GOP中的各個幀,根據各幀的復雜度計算各幀的目標碼率;所述CU層碼率控制將一幀分成多個CU,根據前一幀中對應CU的復雜度來預測當前CU的復雜度并確定當前CU的目標碼率;
20,如果發(fā)生變化,則說明發(fā)生HDR視頻編碼轉換為SDR(Standard Dynamic Range,標準動態(tài)范圍)視頻編碼或SDR視頻編碼轉換為HDR視頻編碼;
30,如果未發(fā)生變化,說明當前HDR視頻編碼器中視頻為HDR視頻,HDR視頻編碼器進行HDR視頻編碼。
通過判斷HDR視頻編碼器中的HDR視頻編碼數據中Meta Data碼的變化,可以反映HDR視頻的亮度范圍和色度格式信息的變化情況,而亮度范圍和色度格式變化正是HDR視頻編碼和SDR視頻編碼的本質區(qū)別,從而可以判斷HDR視頻編碼或SDR視頻編碼是否發(fā)生轉變。
圖2是本發(fā)明的一種HDR和SDR自適應碼率控制的方法的另一個實施例的流程圖,如圖2所示,所述HDR視頻編碼轉換為SDR視頻編碼包括:
11,判斷當前幀與前一幀的幀亮度差是否大于設定的亮度變化閾值TH1;
12,若是,則判定為場景切換,直接將當前幀切換為I幀;
13,否則,在對任何一個CU編碼時,判斷當前CU與前一幀中對應位置CU的MAD值是否大于設定閾值TH2,且檢測當前CU的平均亮度值是否在設定亮度范圍U1內,所述U1表示偏亮和偏暗的區(qū)域,所述MAD表示偏亮和偏暗區(qū)域的亮度平均絕對差值;
14,若滿足,則當前CU為由亮到暗的漸模糊區(qū),降低當前CU目標碼率,將當前CU的目標碼率降低到已有目標碼率的b倍,所述b<1;
15,若不滿足,則提高當前CU的目標碼率,當前CU的目標碼率提升到已有目標碼率的a倍,所述a>1。
因為HDR視頻編碼轉換為SDR視頻編碼需要減少亮度范圍的數據量,在檢測亮度對比度變化大的區(qū)域,調整碼率分配,提升編碼的主觀質量。
圖3是本發(fā)明的一種HDR和SDR自適應碼率控制的方法的又一個實施例的流程圖,如圖3所示,所述SDR視頻編碼轉換為HDR視頻編碼包括:
21,判斷當前幀與前一幀的幀亮度差是否大于設定的亮度變化閾值TH1;
22,若是,則判定為場景切換,直接將當前幀切換為I幀;
23,否則,在對任何一個CU編碼時,判斷當前CU與前一幀中對應位置CU的MAD值是否大于設定閾值TH2,且檢測當前CU的平均亮度值是否在設定亮度范圍U1內,所述U1表示偏亮和偏暗的區(qū)域,所述MAD表示偏亮和偏暗區(qū)域的亮度平均絕對差值;
24,若滿足,則稱當前CU為由暗到亮漸清晰區(qū),提高當前CU的目標碼率,當前CU的目標碼率提升到已有目標碼率的a倍,所述a>1;
25,若不滿足,則降低當前CU的目標碼率,將當前CU的目標碼率降低到已有目標碼率的b倍,所述b<1。
因為SDR視頻編碼轉換為HDR視頻編碼需要增加亮度范圍的數據量。
圖4是本發(fā)明的一種HDR和SDR自適應碼率控制的方法的又一個實施例的流程圖,如圖4所示,所述HDR視頻編碼器進行HDR視頻編碼包括:
31,判斷當前幀與前一幀的幀亮度差是否大于設定的亮度變化閾值TH1;
32,若是,則判定為場景切換,直接將當前幀切換為I幀;
33,否則,在對任何一個CU編碼時,判斷當前CU與前一幀中對應位置CU的MAD值是否大于設定閾值TH3,且檢測當前CU的平均亮度值是否在設定亮度范圍U1內,所述U1表示偏亮和偏暗的區(qū)域,所述MAD表示偏亮和偏暗區(qū)域的亮度平均絕對差值;
34,若是,則稱當前CU為HDR編碼劇變區(qū),將當前CU的目標碼率提升到a倍,其中a>1;
35,否則,將當前CU的目標碼率降低為b倍,其中b<1。
本發(fā)明中,HDR視頻編碼器包括:H265編碼器、MPEG2編碼器、H264編碼器、AVS編碼器、AVS+編碼器、AVS2編碼器。
以上對本發(fā)明所提供的一種HDR和SDR自適應碼率控制的方法進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發(fā)明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。
最后應說明的是:以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,盡管參照前述實施例對本發(fā)明進行了詳細的說明,對于本領域的技術人員來說,其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。