本發(fā)明涉及視頻編解碼領(lǐng)域,尤其涉及一種解碼端后處理方法及系統(tǒng)。
背景技術(shù):
視頻序列中,當(dāng)前一幀圖像為質(zhì)量很差P幀或者B幀,而緊接其后一幀為圖像質(zhì)量很好同一場景的I幀,此時就會產(chǎn)生圖像質(zhì)量的跳變、閃爍。在對運動復(fù)雜多場景切換序列,采用小的I幀間隔進行低碼率編碼時,上述問題將最大化凸顯。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提出一種解碼端后處理方法及系統(tǒng),旨在解決現(xiàn)有技術(shù)當(dāng)前一幀圖像為質(zhì)量很差P幀或者B幀,而緊接其后一幀為圖像質(zhì)量很好同一場景的I時,產(chǎn)生圖像質(zhì)量的跳變、閃爍的問題。
本發(fā)明的技術(shù)方案是這樣實現(xiàn)的,
一種解碼端后處理方法,包括以下步驟:
Step0:對第一個解碼幀進行解碼,然后進入Step5;
Step1:如果則進入Step5;否則,進入Step2;
其中,表示的預(yù)解碼標(biāo)識符;表示當(dāng)前幀,也稱為第t個播放幀其中下角標(biāo)表示當(dāng)前幀的播放序號,上角標(biāo)表示當(dāng)前幀對應(yīng)的解碼序號;
Step2:如果為I幀且“與有相同的最大解碼單元尺寸或者相同的最小解碼單元尺寸”,則進入Step3;否則,對當(dāng)前幀進行解碼,然后進入Step5;
其中,表示第t+1個播放幀其中下角標(biāo)表示當(dāng)前幀的播放序號,上角標(biāo)表示當(dāng)前幀對應(yīng)的解碼序號;
Step3:如果則,先對當(dāng)前幀進行解碼,然后進入Step4;否則,對當(dāng)前幀進行解碼,然后進入Step5;
其中,Thres1為第一門限閾值,Thres1>12;分別表示的量化參數(shù)輔助變量;表示第k個解碼塊的量化參數(shù);表示第k1個解碼塊的量化參數(shù),k、k1分別表示解碼塊在上述對應(yīng)幀中的位置序號;numt表示包含的解碼塊個數(shù),numt+1表示包含的解碼塊個數(shù);max(變量|條件)、min(變量|條件)分別表示求滿足條件變量的最大值、最小值;
Step4:進行解碼端圖像質(zhì)量后處理;
Step5:如果下一個解碼幀存在,則將當(dāng)前幀的下一個解碼幀設(shè)置為當(dāng)前幀,然后進入Step1;否則,結(jié)束。
優(yōu)選地,所述進行解碼端圖像質(zhì)量后處理包括以下步驟:
Step41:判斷是否屬于平移場景,如果是,則設(shè)置 否則,則設(shè)置其中,表示的場景平移標(biāo)識符;
Step42:如果則進入Step43;否則,解碼并設(shè)置然后進入Step43;
Step43:判斷與是否屬于同一場景,如果與屬于同一場景,則進入Step44;否則,進入所述步驟Step5;
Step44:進入同場景解碼端圖像質(zhì)量校正。
進一步優(yōu)選,所述進入同場景解碼端圖像質(zhì)量校正包括以下步驟:
Step441:用的解碼圖像校正的解碼圖像;
Step442:如果的下一個解碼幀不是則用 的解碼圖像校正所有在與之間的解碼圖像,然后進入Step443;否則,進入所述步驟Step5;
Step443:設(shè)置當(dāng)前幀為然后進入所述步驟Step5。
進一步優(yōu)選,所述用的解碼圖像校正所有在與 之間的解碼圖像具體為:
將與之間的解碼圖像中,所有參考幀為 且編碼模式為Skip的塊替換為相同位置的塊;
其中,表示解碼校正過的圖像。
進一步優(yōu)選,所述“用的解碼圖像校正的解碼圖像”包括以下步驟:
Step4411:如果則進入Step4412;否則,進入Step4414;
Step4412:求取平移補償運動矢量;
Step4413:用mvx、mvy對已解碼的圖像,進行運動補償;
Step4414:對的解碼圖像進行校正。
進一步優(yōu)選,所述求取平移補償運動矢量具體為:
mvx=mean(mvx,k,m|puk,m∈cuk且puk,m為幀間預(yù)測非Skip塊),
mvy=mean(mvy,k,m|puk,m∈cuk且puk,m為幀間預(yù)測非Skip塊),
其中,mvx、mvy分別為平移運動矢量的x軸分量、y軸分量;cuk表示當(dāng)前幀的第k個解碼塊,k表示解碼塊的位置序號;puk,m表示cuk的第m個預(yù)測塊,m表示puk,m在cuk中的位置序號;mvx,k,m、mvy,k,m分別為puk,m運動矢量的x軸分量、y軸分量;mean(變量|條件)表示求滿足條件變量的均值;
所述對的解碼圖像進行校正的方法中,亮度校正法具體如下:
其中,
求取條件1:cuk為Skip塊且
求取條件2:cuk為Skip塊且
其中,y(i,j)、y1(i,j)、m_y(i,j)、m_y1(i,j)分別表示當(dāng)前幀解碼圖像、當(dāng)前幀的下一解碼幀解碼圖像、當(dāng)前幀解碼校正過圖像、當(dāng)前幀的下一解碼幀的解碼運動補償圖像的亮度信息第i行第j列的像素值;cuk、cu1k、cu2k分 別表示當(dāng)前幀、當(dāng)前幀的下一解碼幀的第k個解碼塊、當(dāng)前幀的下一解碼幀運動補償過的第k個解碼塊;k表示解碼塊的位置序號;vark表示第k個解碼
塊的復(fù)雜度參數(shù);fast表示加速變量;Thres2表示第二門限閾值,Thres2=8*(1+24/fps);fps表示片源采樣幀率。
一種解碼端后處理系統(tǒng),包括初始解碼模塊、第一下一個解碼幀判斷處理模塊、第一判斷處理模塊、第二判斷處理模塊、第三判斷處理模塊和圖像質(zhì)量后處理裝置;
初始解碼模塊,用于對第一個解碼幀進行解碼,然后進入第一下一個解碼幀判斷處理模塊;
第一下一個解碼幀判斷處理模塊,用于判斷下一個解碼幀是否存在,若否,則結(jié)束,若是則進入第一判斷處理模塊;
第一判斷處理模塊,用于判斷是否若是則進入第一下一個解碼幀判斷處理模塊;否則,進入第二判斷處理模塊;
其中,表示的預(yù)解碼標(biāo)識符;表示當(dāng)前幀,也稱為第t個播放幀,也稱為第decode(t)個解碼幀,其中下角標(biāo)表示當(dāng)前幀的播放序號,上角標(biāo)表示當(dāng)前幀對應(yīng)的解碼序號;
第二判斷處理模塊,用于判斷是否滿足為I幀且“與 有相同的最大解碼單元尺寸或者相同的最小解碼單元尺寸”,若是則進入第三判斷處理模塊,否則對當(dāng)前幀進行解碼,然后進入第一下一個解碼幀判斷處理模塊;
其中,表示第t+1個播放幀,也稱為第decode(t+1)個解碼幀,其中下角標(biāo)表示當(dāng)前幀的播放序號,上角標(biāo)表示當(dāng)前幀對應(yīng)的解碼序號。
第三判斷處理模塊,用于判斷是否滿足若是則,先對當(dāng)前幀進行解碼,然后進入圖像質(zhì)量后處理裝置;否則,對當(dāng)前幀進行解碼,然后進入第一下一個解碼幀判斷處理模塊;
其中,Thres1為第一門限閾值,Thres1>12;分別表示的量化參數(shù)輔助變量;表示第k 個解碼塊的量化參數(shù);表示第k1個解碼塊的量化參數(shù),k、k1分別表示解碼塊在上述對應(yīng)幀中的位置序號;numt表示包含的解碼塊個數(shù),numt+1表示包含的解碼塊個數(shù);max(變量|條件)、min(變量|條件)分別表示求滿足條件變量的最大值、最小值;
圖像質(zhì)量后處理裝置,用于進行解碼端圖像質(zhì)量后處理。
優(yōu)選地,所述圖像質(zhì)量后處理裝置還包括:
平移場景判斷處理模塊,用于用于判斷是否屬于平移場景,如果是,則設(shè)置否則,則設(shè)置然后進入第四判斷處理模塊;其中,表示的場景平移標(biāo)識符;
第四判斷處理模塊,用于判斷如果則直接進入同場景判斷模塊;否則,解碼并設(shè)置然后進入同場景判斷模塊;
同場景判斷模塊,用于判斷與是否屬于同一場景,如果與屬于同一場景,則進入同場景解碼端圖像質(zhì)量校正裝置;否則,進入第一下一個解碼幀判斷處理模塊;
同場景解碼端圖像質(zhì)量校正裝置,用于進行同場景解碼端圖像質(zhì)量校正。
進一步優(yōu)選,所述同場景解碼端圖像質(zhì)量校正裝置還包括:
解碼圖像校正裝置,用于用的解碼圖像校正的解碼圖像;
第二下一個解碼幀判斷處理模塊,用于判斷如果的下一個解碼幀不是則進入第一解碼圖像校正模塊,否則進入第一下一個解碼幀判斷處理模塊;
第一解碼圖像校正模塊,用于用的解碼圖像校正所有在 與之間的解碼圖像,然后進入當(dāng)前幀設(shè)置模塊;
當(dāng)前幀設(shè)置模塊,用于設(shè)置當(dāng)前幀為然后進入第一下一個解碼幀判斷處理模塊。
進一步優(yōu)選,所述解碼圖像校正裝置還包括:
第五判斷處理模塊,用于判斷是否若是則進入平移補償運動矢量求取模塊;否則,進入第二解碼圖像校正模塊;表示 的場景平移標(biāo)識符;
平移補償運動矢量求取模塊,用于求取平移補償運動矢量;
運動補償模塊,用于用mvx、mvy對已解碼的圖像,進行運動補償;其中,mvx、mvy分別為平移運動矢量的x軸分量、y軸分量;
第二解碼圖像校正模塊,用于對的解碼圖像進行校正。
本發(fā)明的有益效果
本發(fā)明提出一種解碼端后處理方法和系統(tǒng)。本發(fā)明方法首先根據(jù)對解碼信息的分析,檢測出可能產(chǎn)生圖像質(zhì)量跳變的視頻幀;然后針對圖像區(qū)域不同特征,選擇相應(yīng)的解碼端后處理方法;從而達到在解碼端消除圖像質(zhì)量閃爍的不舒適感,提升編碼主、客觀性能。
附圖說明
圖1是本發(fā)明優(yōu)選實施例一種解碼端后處理方法流程圖;
圖2是圖1中Step4中進行解碼端圖像質(zhì)量后處理的方法流程圖;
圖3是圖2中Step44中進入同場景解碼端圖像質(zhì)量校正的方法流程圖;
圖4是圖3方法中Step441所包含的方法流程圖;
圖5是本發(fā)明優(yōu)選實施例一種解碼端后處理系統(tǒng)結(jié)構(gòu)圖;
圖6是圖5中圖像質(zhì)量后處理裝置結(jié)構(gòu)圖;
圖7是圖6中同場景解碼端圖像質(zhì)量校正裝置結(jié)構(gòu)圖;
圖8是圖7中解碼圖像校正裝置結(jié)構(gòu)圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖和實施例,對本發(fā)明進行進一步詳細說明,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。應(yīng)當(dāng)理解,此處所描寫的具體實施例,僅僅用于解釋本發(fā)明,并不用以限制本發(fā)明。
本發(fā)明實施例提出一種解碼端后處理方法和系統(tǒng)。本發(fā)明實施例方法首 先根據(jù)對解碼信息的分析,檢測出可能產(chǎn)生圖像質(zhì)量跳變的視頻幀;然后針對圖像區(qū)域不同特征,選擇相應(yīng)的解碼端后處理方法;從而達到在解碼端消除圖像質(zhì)量閃爍的不舒適感,提升編碼主、客觀性能。
實施例一
圖1是本發(fā)明優(yōu)選實施例一種解碼端后處理方法流程圖;所述方法包括以下步驟:
Step0:對第一個解碼幀進行解碼,然后進入Step5。
Step1:如果則進入Step5;否則,進入Step2。
其中,表示的預(yù)解碼標(biāo)識符;表示當(dāng)前幀,也稱為第t個播放幀,也稱為第decode(t)個解碼幀,其中下角標(biāo)表示當(dāng)前幀的播放序號,上角標(biāo)表示當(dāng)前幀對應(yīng)的解碼序號。
Step2:如果為I幀且(與有相同的最大解碼單元尺寸或者相同的最小解碼單元尺寸),則進入Step3;否則,對當(dāng)前幀進行解碼,然后進入Step5。
其中,表示第t+1個播放幀,也稱為第decode(t+1)個解碼幀,其中下角標(biāo)表示當(dāng)前幀的播放序號,上角標(biāo)表示當(dāng)前幀對應(yīng)的解碼序號。
Step3:如果則,先對當(dāng)前幀進行解碼,然后進入Step4;否則,對當(dāng)前幀進行解碼,然后進入Step5。
其中,Thres1為第一門限閾值,一般Thres1>12;分別表示的量化參數(shù)輔助變量;表示第k個解碼塊的量化參數(shù);表示第k1個解碼塊的量化參數(shù),k、k1分別表示解碼塊在上述對應(yīng)幀中的位置序號;numt表示包含的解碼塊個數(shù),numt+1表示包含的解碼塊個數(shù);max(變量|條件)、min(變量|條件)分別表示求滿足條件變量的最大值、最小值。
Step4:進行解碼端圖像質(zhì)量后處理。
圖2是圖1中Step4中進行解碼端圖像質(zhì)量后處理的方法流程圖;
所述進行解碼端圖像質(zhì)量后處理包括以下步驟(Step41-44):
Step41:判斷是否屬于平移場景,如果是,則設(shè)置否則,則設(shè)置
其中,平移場景判斷可用業(yè)內(nèi)公開的任何一種方法;表示的場景平移標(biāo)識符。
Step42:如果則進入Step43;否則,解碼并設(shè)置然后進入Step43;
Step43:判斷與是否屬于同一場景,如果與屬于同一場景,則進入Step44;否則,進入Step5。
其中,與是否屬于同一場景的判斷可用業(yè)內(nèi)公開的任何一種方法。
Step44:進入同場景解碼端圖像質(zhì)量校正。
圖3是圖2中Step44中進入同場景解碼端圖像質(zhì)量校正的方法流程圖;所述進入同場景解碼端圖像質(zhì)量校正包括以下步驟(Step441-443):
Step441:用的解碼圖像校正的解碼圖像。
圖4是圖3方法中Step441所包含的方法流程圖;具體實現(xiàn)方法如下,包括以下步驟(Step4411-4414):
Step4411:如果則進入Step4412;否則,進入Step4414。
Step4412:求取平移補償運動矢量。
mvx=mean(mvx,k,m|puk,m∈cuk且puk,m為幀間預(yù)測非Skip塊),
mvy=mean(mvy,k,m|puk,m∈cuk且puk,m為幀間預(yù)測非Skip塊)
其中,mvx、mvy分別為平移運動矢量的x軸分量、y軸分量;cuk表示當(dāng)前幀的第k個解碼塊,k表示解碼塊的位置序號;puk,m表示cuk的第m個預(yù)測塊,m表示puk,m在cuk中的位置序號;mvx,k,m、mvy,k,m分別為puk,m運動矢量的x軸分量、y軸分量;mean(變量|條件)分別表示求滿足條件變量的均值。
Step4413:用mvx、mvy對已解碼的圖像,進行運動補償。
Step4414:對的解碼圖像進行校正。
亮度校正法具體如下:(色度的校正法只要將下述公式的y直接替換為相應(yīng)的u、v色度即可;或者為了減少計算量,直接跳過 色度處理,僅進行亮度校正)
其中,
求取條件1:cuk為Skip塊且
求取條件2:cuk為Skip塊且
其中,y(i,j)、y1(i,j)、m_y(i,j)、m_y1(i,j)分別表示當(dāng)前幀解碼圖像、當(dāng)前幀的下一解碼幀解碼圖像、當(dāng)前幀解碼校正過圖像、當(dāng)前幀的下一解碼幀的解碼運動補償圖像的亮度信息第i行第j列的像素值;cuk、cu1k、cu2k分別表示當(dāng)前幀、當(dāng)前幀的下一解碼幀的第k個解碼塊、當(dāng)前幀的下一解碼幀運動補償過的第k個解碼塊;k表示解碼塊的位置序號;vark表示第k個解碼塊的復(fù)雜度參數(shù);fast表示加速變量,由解碼用戶確定,使用該參數(shù)可以控制算法的計算量;Thres2表示第二門限閾值,一般Thres2=8*(1+24/fps);fps表示片源采樣幀率。
Step442:如果的下一個解碼幀不是則用 的解碼圖像校正所有在與之間的解碼圖像,然后進入Step443;否則,進入Step5。
具體方法如下:將與之間的解碼圖像中,所有參考幀為且編碼模式為Skip的塊替換為相同位置的塊。
其中,表示解碼校正過的圖像。
Step443:設(shè)置當(dāng)前幀為然后進入Step5。
Step5:如果下一個解碼幀存在,則將當(dāng)前幀的下一個解碼幀設(shè)置為當(dāng)前幀,然后進入Step1;否則,結(jié)束。
實施例二
圖5是本發(fā)明優(yōu)選實施例一種解碼端后處理系統(tǒng)結(jié)構(gòu)圖;該系統(tǒng)包括初始解碼模塊、第一下一個解碼幀判斷處理模塊、第一判斷處理模塊、第二判斷處理模塊、第三判斷處理模塊和圖像質(zhì)量后處理裝置。
初始解碼模塊,用于對第一個解碼幀進行解碼,然后進入第一下一個解碼幀判斷處理模塊;
第一下一個解碼幀判斷處理模塊,用于判斷下一個解碼幀是否存在,若否,則結(jié)束,若是則進入第一判斷處理模塊;
第一判斷處理模塊,用于判斷是否若是則進入第一下一個解碼幀判斷處理模塊;否則,進入第二判斷處理模塊;
其中,表示的預(yù)解碼標(biāo)識符;表示當(dāng)前幀,也稱為第t個播放幀,也稱為第decode(t)個解碼幀,其中下角標(biāo)表示當(dāng)前幀的播放序號,上角標(biāo)表示當(dāng)前幀對應(yīng)的解碼序號。
第二判斷處理模塊,用于判斷是否滿足為I幀且“與 有相同的最大解碼單元尺寸或者相同的最小解碼單元尺寸”,若是則進入第三判斷處理模塊,否則對當(dāng)前幀進行解碼,然后進入第一下一個解碼幀判斷處理模塊;
其中,表示第t+1個播放幀,也稱為第decode(t+1)個解碼幀,其中下角標(biāo)表示當(dāng)前幀的播放序號,上角標(biāo)表示當(dāng)前幀對應(yīng)的解碼序號。
第三判斷處理模塊,用于判斷是否滿足若是則,先對當(dāng)前幀進行解碼,然后進入圖像質(zhì)量后處理裝置;否則,對當(dāng)前幀進行解碼,然后進入第一下一個解碼幀判斷處理模塊。
其中,Thres1為第一門限閾值,一般Thres1>12;分別表示的量化參數(shù)輔助變量;表示第k個解碼塊的量化參數(shù);表示第k1個解碼塊的量化參數(shù),k、k1分別表示解碼塊在上述對應(yīng)幀中的位置序號;numt表示包 含的解碼塊個數(shù),numt+1表示包含的解碼塊個數(shù);max(變量|條件)、min(變量|條件)分別表示求滿足條件變量的最大值、最小值。
圖像質(zhì)量后處理裝置,用于進行解碼端圖像質(zhì)量后處理;
進一步地,圖6是圖5中圖像質(zhì)量后處理裝置結(jié)構(gòu)圖;所述圖像質(zhì)量后處理裝置還包括
平移場景判斷處理模塊,用于用于判斷是否屬于平移場景,如果是,則設(shè)置否則,則設(shè)置然后進入第四判斷處理模塊;
其中,平移場景判斷可用業(yè)內(nèi)公開的任何一種方法;表示 的場景平移標(biāo)識符。
第四判斷處理模塊,用于判斷如果則直接進入同場景判斷模塊;否則,解碼并設(shè)置然后進入同場景判斷模塊;
同場景判斷模塊,用于判斷與是否屬于同一場景,如果與屬于同一場景,則進入同場景解碼端圖像質(zhì)量校正裝置;否則,進入第一下一個解碼幀判斷處理模塊。
同場景解碼端圖像質(zhì)量校正裝置,用于進行同場景解碼端圖像質(zhì)量校正;
進一步地,圖7是圖6中同場景解碼端圖像質(zhì)量校正裝置結(jié)構(gòu)圖;
所述同場景解碼端圖像質(zhì)量校正裝置還包括:
解碼圖像校正裝置,用于用的解碼圖像校正的解碼圖像。
第二下一個解碼幀判斷處理模塊,用于判斷如果的下一個解碼幀不是則進入第一解碼圖像校正模塊,否則進入第一下一個解碼幀判斷處理模塊;
第一解碼圖像校正模塊,用于用的解碼圖像校正所有在 與之間的解碼圖像,然后進入當(dāng)前幀設(shè)置模塊;
具體方法如下:將與之間的解碼圖像中,所有參考幀為且編碼模式為Skip的塊替換為相同位置的塊。
其中,表示解碼校正過的圖像。
當(dāng)前幀設(shè)置模塊,用于設(shè)置當(dāng)前幀為然后進入第一下一個解碼幀判斷處理模塊。
進一步地,圖8是圖7中解碼圖像校正裝置結(jié)構(gòu)圖,所述解碼圖像校正裝置還包括:
第五判斷處理模塊,用于判斷是否若是則進入平移補償運動矢量求取模塊;否則,進入第二解碼圖像校正模塊。
平移補償運動矢量求取模塊,用于求取平移補償運動矢量。
mvx=mean(mvx,k,m|puk,m∈cuk且puk,m為幀間預(yù)測非Skip塊),
mvy=mean(mvy,k,m|puk,m∈cuk且puk,m為幀間預(yù)測非Skip塊)
其中,mvx、mvy分別為平移運動矢量的x軸分量、y軸分量;cuk表示當(dāng)前幀的第k個解碼塊,k表示解碼塊的位置序號;puk,m表示cuk的第m個預(yù)測塊,m表示puk,m在cuk中的位置序號;mvx,k,m、mvy,k,m分別為puk,m運動矢量的x軸分量、y軸分量;mean(變量|條件)表示求滿足條件變量的均值。
運動補償模塊,用于用mvx、mvy對已解碼的圖像,進行運動補償。
第二解碼圖像校正模塊,用于對的解碼圖像進行校正。
亮度校正法具體如下:(色度的校正法只要將下述公式的y直接替換為相應(yīng)的u、v色度即可;或者為了減少計算量,直接跳過色度處理,僅進行亮度校正)
其中,
求取條件1:cuk為Skip塊且
求取條件2:cuk為Skip塊且
其中,y(i,j)、y1(i,j)、m_y(i,j)、m_y1(i,j)分別表示當(dāng)前幀解碼圖像、當(dāng)前幀的下一解碼幀解碼圖像、當(dāng)前幀解碼校正過圖像、當(dāng)前幀的下一解碼幀的解碼運動補償圖像的亮度信息第i行第j列的像素值;cuk、cu1k、cu2k分別表示當(dāng)前幀、當(dāng)前幀的下一解碼幀的第k個解碼塊、當(dāng)前幀的下一解碼幀運動補償過的第k個解碼塊;k表示解碼塊的位置序號;vark表示第k個解碼塊的復(fù)雜度參數(shù);fast表示加速變量,由解碼用戶確定,使用該參數(shù)可以控制算法的計算量;Thres2表示第二門限閾值,一般Thres2=8*(1+24/fps);fps表示片源采樣幀率。
本領(lǐng)域的普通技術(shù)人員可以理解,實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序指令相關(guān)硬件來完成的,所述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,所述的存儲介質(zhì)可以為ROM、RAM、磁盤、光盤等。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。