一種基于片源分析的sao編碼方法及系統的制作方法
【技術領域】
[0001] 本發明涉及視頻編解碼領域,尤其涉及一種基于片源分析的SA0編碼方法及系 統。
【背景技術】
[0002] SAO(Sampleadaptiveoffset,自適應樣點補償)是HEVC(HighEfficiency VideoCoding,高效率視頻編碼)中新增加的技術,其性價比遠遠超過H264的去塊濾波 和ALF(AdaptiveLoopFilter,ALF)。常規的SA0編碼方法是兩層控制模式,即在編碼參 數控制整體視頻序列的SA0模塊開關,然后在編碼單元通過SA0-RD0(Rate-Distortion Optimization,率失真優化)控制各個單元的SA0開關和對應的SA0模式。如果編碼參數 層SA0設置不合理,則會帶來計算量的上升或者是率失真性能的下降。
【發明內容】
[0003] 本發明實施例的目的在于提出一種基于片源分析的SA0編碼方法,旨在解決現有 技術SA0編碼方法中如果編碼參數層SA0設置不合理,則會帶來計算量的上升或者是率失 真性能的下降問題。
[0004] 本發明實施例是這樣實現的,一種基于片源分析的SA0編碼方法,所述方法包括 以下步驟:
[0005] StepO:計算當前壓縮率;
[0006] Stepl:選擇當前幀身"的分析幀;
[0007] Step2 :對當前幀進行圖片信息分析,獲取當前片段的SA0模塊控制參數值;
[0008] Step3 :按編碼順序對當前幀、當前幀的分析幀及位于當前幀、當前幀的分析幀之 間的所有圖像幀進行編碼,每編碼完一幀,則令累加變量coded_num=coded_num+l;
[0009] Step4:如果當前序列還有未編碼的圖像幀,則按編碼順序將當前序列還有未編碼 的第一個圖像幀設置為當前幀,然后進入Step5;否則,結束;
[0010] Step5 :如果累加變量coded_num>T,貝丨】進入Step3 ;否則,令coded_num= 0,然后 進入步驟Step1 ;
[0011] 其中,T表示周期常量。
[0012] 本發明實施例的另一目的在于提出一種基于片源分析的SA0編碼系統,所述系統 包括:
[0013] 當前壓縮率計算模塊,用于計算當前壓縮率;
[0014] 當前幀分析幀選擇模塊,用于選擇當前幀的分析幀;
[0015] SA0模塊控制參數值獲取裝置,用于對當前幀進行圖片信息分析,獲取當前片段的 SA0模塊控制參數值;
[0016] 編碼模塊,用于按編碼順序對當前幀、當前幀的分析幀及位于當前幀、當前幀的 分析幀之間的所有圖像幀進行編碼,每編碼完一幀,則令累加變量coded_num=coded_num+1;
[0017] 第一判斷模塊,用于判斷是否當前序列還有未編碼的圖像幀,若是,則進入當前幀 設置模塊,否則,結束;
[0018] 當前幀設置模塊,用于按編碼順序將當前序列還有未編碼的第一個圖像幀設置為 當前幀;
[0019] 第二判斷模塊,用于是否滿足累加變量C〇ded_nUm>T,若是,則進入編碼模塊;否 則進入累加變量初始化模塊;其中,T表示周期常量;
[0020] 累加變量初始化模塊,用于設置coded_num= 0,然后進入當前幀分析幀選擇模 塊。
[0021] 本發明的有益效果
[0022] 本發明提出一種基于片源分析的SA0編碼方法及系統。本發明方法通過對編碼片 源的分析,獲取當前片段的SA0模塊控制參數值,根據SA0模塊控制參數值,確定當前幀編 碼時是否開啟SA0模塊,從而自適應調整常規的SA0編碼方法,在提升率失真性能同時,減 少編碼時間。
【附圖說明】
[0023] 圖1是本發明優選實施例一種基于片源分析的SA0編碼方法流程圖;
[0024] 圖2是圖1中步驟Step2包含的方法流程圖;
[0025] 圖3是圖2中步驟Step21包含的方法流程圖;
[0026] 圖4是本發明優選實施例一種基于片源分析的SA0編碼系統結構圖;
[0027] 圖5是圖4中SA0模塊控制參數值獲取裝置的結構圖;
[0028] 圖6是圖5中復雜度參數計算模塊的結構圖。
【具體實施方式】
[0029] 為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖和實施例,對 本發明進行進一步詳細說明,為了便于說明,僅示出了與本發明實施例相關的部分。應當理 解,此處所描寫的具體實施例,僅僅用于解釋本發明,并不用以限制本發明。
[0030] 本發明提出一種基于片源分析的SA0編碼方法及系統。本發明方法通過對編碼片 源的分析,獲取當前片段的SA0模塊控制參數值,根據SA0模塊控制參數值,確定當前幀編 碼時是否開啟SA0模塊,從而自適應調整常規的SA0編碼方法,在提升率失真性能同時,減 少編碼時間。
[0031] 實施例一
[0032] 圖1是本發明優選實施例一種基于片源分析的SA0編碼方法流程圖;所述方法包 括以下步驟:
[0033] StepO:計算當前壓縮率。
[0034]Com=bitrate/ (fps*width*height)〇
[0035] 其中,Com表示當前壓縮率;width、height分別表示當前序列的寬度、高度分辨 率;fps表示當前序列的采樣幀率。
[0036] St印1 :選擇當前幀戶的分析幀。
[0037]
[0038] 其中,表示當前幀,t表示當前幀的播放序號,c〇de(t)表示當前幀的編 碼序號;,表示當前幀的分析幀,記為para_frame,當前幀的分析幀為輔助確定 當前待編碼幀特性,而選取的輔助幀;refp表示當前幀的分析幀的播放序號,code(refp) 表不當前幀的分析幀的編碼序號;constl表不第一閾值常量,一般0〈constl〈2。
[0039] Step2 :對當前幀進行圖片信息分析,獲取當前片段的SA0模塊控制參數值。
[0040] 圖2是步驟St印2包含的方法流程圖(包括步驟St印21-st印22);
[0041] St印21 :計算當前幀的復雜度參數。
[0042] 圖3是步驟St印21包含的方法流程圖(包括步驟St印211-St印212);
[0043] Step211 :將當前幀及當前幀的分析幀劃分為NXN的塊,計算每一個塊的復雜度 參數。
[0044] vark=std(y(i,j)_yp(i,j) |y(i,j)G131〇〇1^且yJi,j)Gblockpk), KN<Nmax;
[0045] 其中,N_、N_分別表示編碼單元的最大尺寸、最小尺寸(文中所指尺寸是對應單 元的一維尺寸,即如果Nmax= 64表示此時最大編碼單元即為64x64的塊);std(變量IMt;)表 示對滿足條件的所有變量求均方差;y(i,j)、yp(i,j)分別表示當前幀、當前幀的分析幀的 亮度信息第i行第j列的像素值;bl〇ckk、bl〇ckPl^v別表示當前幀、當前幀的分析幀的第k 個塊;k表示塊的位置序號;vark表示第k個塊的復雜度參數。
[0046] St印212 :求取當前幀的復雜度參數。
[0047] var=mean(vark)
[0048] 其中,mean(變a )表示對變量求均值;var表示當前幀的復雜度參數。
[0049] Step22 :如果var/const2+const3〈Com,則令sao_enable= 1 ;否則,sao_enable =0〇
[0050] 其中,const2、const3 表不第二、第三閾值常量,一般 100〈const2〈1000, -〇? 01〈co nst3〈0. 03 ;sao_enable表示當前編碼片段SA0模塊控制參數值,
[0051] 其值等于1表示開啟SA0模塊,其值等于0表示關閉SA0模塊。St印3 :按編碼順 序對當前幀、當前幀的分析幀及位于當前幀、當前幀的分析幀之間的所有圖像幀進行編碼, 每編碼完一幀,則coded__num=coded-num+1;
[0052] 其中,編碼時根據SA0模塊控制參數值,確定當前幀編碼時是否開啟SA0模塊。 coded_num表示累加變量,其初始值為0。
[0053] Step4:如果當前序列還有未編碼的圖像幀,則按編碼順序將當前序列還有未編碼 的第一個圖像幀設置為當前幀,然后進入Step5 ;否則,結束。
[0054] Step5 :如果coded_num>T,則進入Step3 ;否則,coded_num= 0,然后進入步驟 Stepl〇
[0055] 其中,T表不;周期常量,一般T>refp。
[0056]實施例二
[0057]圖4是本發明優選實施例一種基于片源分析的SA0編碼系統結構圖;所述系統包 括:
[0058] 當前壓縮率計算模塊,用于計算當前壓縮率;
[0059]Com=bitrate/ (fps*width*height)〇
[0060] 其中,Com表示當前壓縮率;width、height分別表示當前序列的寬度、高度分辨 率;fps表示當前序列的采樣幀率。
[0061] 當前幀分析幀選擇模塊,用于選擇當前幀的分析幀;
[0062]
[0063] 其中,表示當前幀,t表示當前幀的播放序號,code⑴表示當前幀的編 碼序號;.力胃表示當前幀的分析幀,記為para_frame,當前幀的分析幀為輔助確定 當前待編碼幀特性,而選取的輔助幀;refp表示當前幀的分析幀的播放序號,code(refp) 表不當前幀的分析幀的編碼序號;constl表不第一閾值常量,一般0〈constl〈2。
[0064] SA0模塊控制參數值獲取裝置,用于對當前幀進行圖片信息分析,獲取當前片段的 SA0模塊控制參數值;
[0065] 編碼模塊,用于按編碼順序對當前幀、當前幀的分析幀及位于當前幀、當前幀的分 析幀之間的所有圖像幀進行編碼,每編碼完一幀,則令coded_n