本發(fā)明屬于視頻編解碼技術(shù)領(lǐng)域,尤其涉及一種基于附加碼率的無反饋分布式視頻編解碼方法及移動終端。
背景技術(shù):
隨著移動智能終端以及無線傳感器網(wǎng)絡(luò)的快速發(fā)展,逐漸衍生出一種新型的視頻應(yīng)用場景。在該場景下,視頻編碼端往往是資源受限的,即要求編碼端計算簡單,存儲空間占用小。而傳統(tǒng)視頻編解碼標(biāo)準(zhǔn)如h.26x/mpeg,由于需要在編碼端進行復(fù)雜的運動估計、運動補償?shù)扔嬎氵^程,導(dǎo)致其編碼端復(fù)雜度遠大于解碼端,限制了這些標(biāo)準(zhǔn)在新型視頻應(yīng)用場景下的應(yīng)用。應(yīng)對新型視頻應(yīng)用場景下編碼端資源受限的挑戰(zhàn),分布式視頻編解碼系統(tǒng)受到了廣泛關(guān)注。分布式視頻編解碼系統(tǒng)利用獨立編碼、聯(lián)合解碼技術(shù),將運動估計、運動補償?shù)葟?fù)雜計算過程轉(zhuǎn)移到解碼端,可有效地降低編碼端的計算復(fù)雜度。目前,針對分布式的視頻編解碼方法根據(jù)系統(tǒng)中是否存在反饋信道,可以將分布式視頻編解碼系統(tǒng)分為有反饋和無反饋兩種類型。2005年,由歐盟istfp6項目資助的discover項目組提出了一種基于變換域的有反饋分布式視頻編解碼系統(tǒng)。該系統(tǒng)考慮了信源視頻序列的不同特性,根據(jù)視頻序列的運動復(fù)雜性提出了一種動態(tài)的圖像組分組方式。discover分布式視頻編解碼系統(tǒng)相比于以往的分布式方案,具有更好的壓縮性能,而且解碼端能夠得到更高得率失真性能。然而由于反饋信道的存在限制了對于不同場景的實用性,尤其是對于一些無線頻譜資源較為稀缺的情形,而且經(jīng)由反饋信道的頻繁信息反饋往往會導(dǎo)致解碼端的高時延性,系統(tǒng)實時性較差。為了解決有反饋分布式視頻編解碼系統(tǒng)的上述問題,無反饋信道的分布式視頻編解碼系統(tǒng)得到廣泛的關(guān)注與研究。2011年,catarinabrites等人在“ieeetransactionsoncircuitsandsystemforvideotechnology”(《視頻技術(shù)用電路與系統(tǒng)會刊》)提出了一種基于編碼端碼率控制的無反饋分布式視頻編解碼系統(tǒng)。該系統(tǒng)通過在編碼端對邊信息進行粗估計以計算編碼端的發(fā)送碼率,去除了反饋信道對于分布式系統(tǒng)的不利影響。但是無反饋分布式方案由于沒有反饋信道向編碼端實時回饋解碼端需求信息,編碼端的碼率估計往往會導(dǎo)致高估或者低估的出現(xiàn),高估會造成信息冗余,編碼端大量傳送無用信息;低估將導(dǎo)致解碼端信息解碼失敗,降低系統(tǒng)重構(gòu)質(zhì)量,以上兩種情況的出現(xiàn)均會導(dǎo)致系統(tǒng)率失真性能的下降。因此在無反饋信道存在的情況下,如何在編碼端獲得更精確的碼率估計是無反饋分布式視頻編解碼系統(tǒng)的挑戰(zhàn)所在。
綜上所述,現(xiàn)有技術(shù)存在的問題是:目前分布式視頻編解碼方法存在實時性較差,編碼端的碼率估計往往會出現(xiàn)高估或者低估,使失真性能下降。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)存在的問題,本發(fā)明提供了一種基于附加碼率的無反饋分布式視頻編解碼方法。
本發(fā)明是這樣實現(xiàn)的,一種基于附加碼率的無反饋分布式視頻編解碼方法,所述基于附加碼率的無反饋分布式視頻編解碼方法根據(jù)圖像組尺寸將視頻幀分為關(guān)鍵幀和非關(guān)鍵幀;關(guān)鍵幀采用傳統(tǒng)幀內(nèi)編碼,對非關(guān)鍵幀采用ldpca編碼;對非關(guān)鍵幀進行運動匹配搜索和塊模式判決,根據(jù)快速分層匹配搜索算法以及二次skip模式判決算法決定當(dāng)前塊為skip塊或者w-z塊;對于skip塊編碼端不進行編碼,解碼端直接利用關(guān)鍵幀中的對應(yīng)塊代替,對于w-z塊進行快速邊信息估計以及l(fā)dpca編碼,并利用基于附加碼率的碼率估計模型進行碼率估計;根據(jù)估計的碼率將校驗信息發(fā)送到解碼端進行解碼。
進一步,所述基于附加碼率的無反饋分布式視頻編解碼方法包括以下步驟:
步驟一,編碼端首先根據(jù)設(shè)定的圖像組尺寸將輸入的視頻序列劃分為關(guān)鍵幀和非關(guān)鍵幀;
步驟二,編碼端對關(guān)鍵幀采用h.264/avc幀內(nèi)編碼;
步驟三,編碼端將非關(guān)鍵幀劃分成固定尺寸的非交叉的塊,對所有塊在其邊信息幀中進行分層塊匹配搜索,并計算得到當(dāng)前塊與對應(yīng)塊的絕對誤差和sad,若sad小于閾值tskip,將該塊分為skip塊,否則判定為w-z塊;
步驟四,對于skip塊,編碼端將skip塊模式標(biāo)志位發(fā)送到解碼端,解碼端則直接采用關(guān)鍵幀中的對應(yīng)塊來代替skip塊,對于w-z塊,編碼端進行dct變換以及量化處理,抽取比特平面,采用ldpca編碼對其進行編碼;
步驟五,編碼端根據(jù)幀間相似性,利用獲得的w-z塊邊信息,采用基于查找表的附加碼率估計算法對w-z塊的碼率進行預(yù)估計,并根據(jù)估計碼率向解碼端發(fā)送校驗信息;
步驟六,解碼端利用h.264/avc解碼技術(shù)對關(guān)鍵幀進行解碼,之后利用關(guān)鍵幀獲取邊信息,輔助非關(guān)鍵幀中w-z塊的ldpca解碼,非關(guān)鍵幀中的skip塊則直接利用關(guān)鍵幀中的對應(yīng)塊代替,最后構(gòu)成重構(gòu)序列輸出。
進一步,所述步驟一中劃分關(guān)鍵幀/非關(guān)鍵幀的方法為:每個圖像組中的第一幀為關(guān)鍵幀,其余幀為非關(guān)鍵幀。
進一步,所述步驟三中具體包括:
1)對于非關(guān)鍵幀中的塊bx,設(shè)置其初始運動矢量為其上相鄰塊和左相鄰塊運動矢量的平均值,即vx=(vupper+vleft)/2,計算當(dāng)前塊與運動矢量所指向的塊的絕對誤差和sad,表示為:
其中,n為塊尺寸,(a,b)為當(dāng)前塊bx與參考塊by間的運動向量vx,若sad值小于tskip,則判定塊為skip塊,反之,搜索小菱形模板內(nèi)的四個塊的sad值,若有sad小于閾值tskip,則判定當(dāng)前塊為skip塊,模式選擇結(jié)束,否則,判定其為w-z塊,繼續(xù)執(zhí)行后續(xù)步驟;
2)對當(dāng)前非關(guān)鍵幀的相鄰關(guān)鍵幀xr進行分層抽取,將相鄰關(guān)鍵幀中的像素分為2×2的塊,取每一個像素塊中的右下角的像素構(gòu)成當(dāng)前關(guān)鍵幀的提取層,最終得到提取層
3)按照小菱形搜索模板,計算當(dāng)前非關(guān)鍵幀中的塊與提取層
4)將所有非關(guān)鍵幀中的塊的sad值按照從大到小的順序進行排序,設(shè)置閾值t=max(t1,tskip),其中t1是位于前α%的sad值,若sad大于t,則需要將相應(yīng)塊恢復(fù)到原始層,以當(dāng)前所得運動向量為初始運動矢量進行二次搜索,反之,則將當(dāng)前運動向量選為原始層中相應(yīng)塊的運動向量,不需進行二次搜索;
5)對于所得到w-z塊進行二次skip模式篩選,計算w-z塊的邊信息與當(dāng)前w-z塊之間psnr值,如果psnr大于t2,則判決為skip塊,碼率設(shè)置為零,解碼端直接用相應(yīng)的邊信息代替,反之,則判定為最終的w-z塊。
進一步,所述步驟五中具體包括:
(1)編碼端利用獲得的邊信息,計算出非關(guān)鍵幀相對于邊信息幀之間的誤比特率,具體過程如下:
其中
(2)編碼端根據(jù)得到的誤比特率,計算出理論碼率,具體計算方式如下:
rth=h(x|y)=-per×log2per-(1-per)×log2(1-per);
之后,編碼端根據(jù)基于附加碼率的碼率估計模型估計得到第k個比特平面的最終碼率:
rk=λrth+rq;
其中,λ是常系數(shù),rq是通過統(tǒng)計分析理論碼率rth與有反饋情況下解碼端真實所需碼率所得到的碼率殘差模型:
rq=aiper2+biper+ci;
其中ai,bi,ci是對應(yīng)于不同量化矩陣的擬合系數(shù),由統(tǒng)計分析得到,并且根據(jù)編碼端邊信息質(zhì)量,分別給出了三組不同的擬合系數(shù):
其中,
(3)編碼端根據(jù)得到的最終碼率rk,向解碼端發(fā)送效驗信息。
進一步,所述步驟三中skip塊模式判決閾值tskip設(shè)置為128。
進一步,所述步驟三中在對搜索塊進行判決是否進行二次搜索時所設(shè)定的比例范圍閾值α%為20%,對w-z塊進行二次skip模式判決時psnr閾值t2為38db。
進一步,所述附加碼率擬合判斷閾值
本發(fā)明的另一目的在于提供一種應(yīng)用所述基于附加碼率的無反饋分布式視頻編解碼方法的移動終端。
本發(fā)明的另一目的在于提供一種應(yīng)用所述基于附加碼率的無反饋分布式視頻編解碼方法的無線傳感器網(wǎng)絡(luò)。
本發(fā)明的優(yōu)點及積極效果為:通過基于分層的塊匹配搜索算法以及二次skip塊編碼模式判決有效提高編碼端跳塊率、降低編碼端的待傳信息量,緩解了編碼端的資源占用壓力;提高了編碼端碼率估計的精確性,提高了系統(tǒng)的率失真性能,根據(jù)編碼端邊信息的誤比特率提出基于附加碼率的碼率估計模型,以改善分布式系統(tǒng)的率失真性能。
本發(fā)明可以廣泛應(yīng)用于各種視頻場景,可以在確保解碼端視頻質(zhì)量的前提下,簡化編碼端的復(fù)雜度,提高分布式視頻編碼系統(tǒng)的率失真性能;基于附加碼率的無反饋分布式視頻編解碼系統(tǒng),為有效利用視頻幀間的相似性,編碼端首先按照固定尺寸將視頻序列劃分成圖像組,然后將圖像組中的視頻幀劃分成關(guān)鍵幀與非關(guān)鍵幀,通過關(guān)鍵幀估計邊信息為非關(guān)鍵幀的編解碼提供幫助。
本發(fā)明首先利用提取層得到當(dāng)前塊的粗運動向量,針對快運動部分,在原始層進行二次細(xì)估計,并且通過在編碼端引入基于搜索的skip塊編碼模式,提出基于psnr的二次skip編碼模式判決算法,可有效提高非關(guān)鍵幀中skip塊的比例。得益于編碼端的分層快速塊運動匹配算法,并且skip塊不再進行邊信息估計和ldpca編碼處理,以上發(fā)明有效降低了編碼端的信息量以及計算復(fù)雜度;根據(jù)編碼端邊信息估計的誤比特率而得到的基于附加碼率的碼率估計模型,綜合考慮編解碼兩端參考幀以及邊信息估計方法的差異而導(dǎo)致的估計碼率與實際需求的差異,通過對線下數(shù)據(jù)的統(tǒng)計分析擬合得到附加碼率的估計模型,可有效改善碼率估計的準(zhǔn)確性,降低碼率低估的可能性。
附圖說明
圖1是本發(fā)明實施例提供的基于附加碼率的無反饋分布式視頻編解碼方法流程圖。
圖2是本發(fā)明實施例提供的所使用的無反饋分布式視頻編解碼系統(tǒng)模型示意圖。
圖3是本發(fā)明實施例提供的基于分層的動態(tài)匹配搜索算法流程圖。
圖4是本發(fā)明實施例提供的所使用的不同的量化矩陣示意圖。
圖5是本發(fā)明實施例提供的附加碼率估計模型的擬合系數(shù)。
圖6是本發(fā)明實施例提供的對于foreman序列的率失真性能示意圖。
圖7是本發(fā)明實施例提供的對于hallmonitor序列的率失真性能。
圖8是本發(fā)明實施例提供的對于不同量化矩陣下的碼率估計性能對比示意圖。
圖9是本發(fā)明實施例提供的skip編碼塊比例對比示意圖。
圖10是本發(fā)明實施例提供的編碼端計算復(fù)雜度對比示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合實施例,對本發(fā)明進行進一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
下面結(jié)合附圖對本發(fā)明的應(yīng)用原理作詳細(xì)的描述。
如圖1所示,本發(fā)明實施例提供的基于附加碼率的無反饋分布式視頻編解碼方法包括以下步驟:
s101:根據(jù)圖像組尺寸將視頻幀分為關(guān)鍵幀和非關(guān)鍵幀;關(guān)鍵幀采用傳統(tǒng)幀內(nèi)編碼,對非關(guān)鍵幀采用ldpca編碼;對非關(guān)鍵幀進行運動匹配搜索和塊模式判決;
s102:根據(jù)快速分層匹配搜索算法以及二次skip模式判決算法決定當(dāng)前塊為skip塊或者w-z塊;對于skip塊編碼端不進行編碼,解碼端直接利用關(guān)鍵幀中的對應(yīng)塊代替,對于w-z塊進行快速邊信息估計以及l(fā)dpca編碼,并利用基于附加碼率的碼率估計模型進行碼率估計;
s103:根據(jù)估計的碼率將校驗信息發(fā)送到解碼端進行解碼。
下面結(jié)合附圖對本發(fā)明的應(yīng)用原理作進一步的描述。
如圖2所示,本發(fā)明所提出的基于附加碼率的無反饋分布式視頻編解碼系統(tǒng)的實現(xiàn)步驟如下:
步驟一,編碼端首先根據(jù)設(shè)定的圖像組尺寸gsize=2將輸入的視頻序列劃分為關(guān)鍵幀和非關(guān)鍵幀,即每一個圖像組的第一幀為關(guān)鍵幀,其余幀為非關(guān)鍵幀;
步驟二,編碼端對關(guān)鍵幀采用傳統(tǒng)的h.264/avc幀內(nèi)編碼,并且將當(dāng)前非關(guān)鍵幀的前后相鄰關(guān)鍵幀保存到編碼端的幀緩存器中,以輔助非關(guān)鍵幀的編碼;
步驟三,編碼端將非關(guān)鍵幀劃分成固定尺寸bsize=8×8的非交叉的塊,對所有塊進行分層匹配搜索,并計算得到當(dāng)前塊與對應(yīng)塊的絕對誤差和sad,若sad小于閾值tskip,將該塊分為skip塊,否則判定為w-z塊;
步驟四,對于skip塊,編碼端不對其進行編碼,只需要將skip塊模式標(biāo)志位發(fā)送到解碼端,解碼端則直接采用關(guān)鍵幀中的對應(yīng)塊來代替skip塊,對于w-z塊,編碼端首先對其進行dct變換以及量化處理,而后抽取比特平面,最后采用ldpca編碼對其進行編碼;
步驟五,編碼端根據(jù)幀間相似性,根據(jù)步驟三中所獲得的獲得的w-z塊邊信息,采用基于查找表的附加碼率估計算法對w-z塊的碼率進行預(yù)估計,并根據(jù)估計碼率向解碼端發(fā)送校驗信息;
步驟六,解碼端首先利用h.264/avc解碼技術(shù)對關(guān)鍵幀進行解碼,之后利用關(guān)鍵幀獲取邊信息,輔助非關(guān)鍵幀中w-z塊的ldpca解碼,非關(guān)鍵中的skip塊則直接利用關(guān)鍵幀中的對應(yīng)塊代替,最后構(gòu)成重構(gòu)序列輸出。
步驟三的具體方法模型如圖3所示,具體執(zhí)行過程如下:
(1)對于非關(guān)鍵幀中的塊bx,利用一次迭代小菱形模板搜索判斷其是否為skip塊,設(shè)置其初始運動矢量為其上相鄰塊和左相鄰塊運動矢量的平均值,即vx=(vupper+vleft)/2指向圖3中的初始搜索點,計算當(dāng)前塊與運動矢量所指向的參考幀中參考塊的絕對誤差和sad,該過程可以表示為:
其中,n為塊尺寸,(a,b)為當(dāng)前塊bx與參考塊by之間的運動向量vx,若sad值小于tskip,則判定該塊為skip塊,模式選擇結(jié)束,反之,繼續(xù)搜索小菱形模板內(nèi)的四個塊的sad值,即圖3中標(biāo)記為1的點,若存在sad小于閾值tskip,則判定當(dāng)前塊為skip塊,模式選擇結(jié)束,否則,判定其為w-z塊,繼續(xù)執(zhí)行后續(xù)步驟;
(2)首先對當(dāng)前非關(guān)鍵幀的相鄰關(guān)鍵幀xr進行分層抽取,將相應(yīng)關(guān)鍵幀中的像素分為2×2的塊,將每一個像素塊中的右下角的像素抽取出來構(gòu)成當(dāng)前關(guān)鍵幀的提取層,最終得到提取層
(3)計算當(dāng)前非關(guān)鍵幀塊與提取層
(4)將得到的所有非關(guān)鍵幀塊的sad值按照從大到小的順序進行排序,設(shè)置閾值t=max(t1,tskip),其中t1是位于前α%的sad值,若sad大于t,則需要將相應(yīng)塊恢復(fù)到原始層,以當(dāng)前所得運動向量為初始運動矢量進行二次搜索,反之,則將當(dāng)前運動向量當(dāng)做該塊的運動向量,不進行二次搜索;
(5)對于所得到w-z塊進行二次skip模式篩選,首先計算w-z塊的邊信息與當(dāng)前w-z塊之間psnr值,如果psnr大于t2,則判決為skip塊,碼率設(shè)置為零,解碼端直接用相應(yīng)的邊信息代替,反之,則判定為最終的w-z塊;
在采用圖4中所示的不同的量化矩陣的條件下,本發(fā)明步驟五的具體方法如下:
1)編碼端利用步驟三中獲得的邊信息,計算出非關(guān)鍵幀相對于邊信息幀之間的誤比特率,具體過程如下:
其中
2)編碼端根據(jù)所得到的誤比特率,計算出理論碼率,具體計算方式如下:
rth=h(x|y)=-per×log2per-(1-per)×log2(1-per);
之后,編碼端根據(jù)基于附加碼率的碼率估計模型估計得到第k個比特平面的最終碼率,具體過程如下:
rk=λrth+rq;
其中,λ是常系數(shù),rq是通過統(tǒng)計分析理論碼率rth與有反饋情況下解碼端真實所需碼率所得到的碼率殘差模型,具體過程如下:
rq=aiper2+biper+ci;
其中ai,bi,ci是對應(yīng)于不同量化矩陣的擬合系數(shù),由統(tǒng)計分析得到,并且根據(jù)編碼端邊信息質(zhì)量,分別給出了三組不同的擬合系數(shù),如下所示:
其中,
3)編碼端根據(jù)得到的最終碼率rk,向解碼端發(fā)送效驗信息。
下面結(jié)合對比對本發(fā)明的應(yīng)用效果作詳細(xì)的描述。
為驗證本發(fā)明的效果,將本發(fā)明與現(xiàn)有的兩個著名的分布式視頻編解碼方案thediscovereu-project(2005)discover-distributedcodingforvideoservices,http://www.discoverdvc.org/.britesc,pereiraf(2011)anefficientencoderratecontrolsolutionfortransformdomainwyner-zivvideocoding.ieeetransactionsoncircuitsandsystemsforvideotechnology,21(9):1278-1292.進行比較。其中,discover方案屬于有反饋信道方案,而另一個方案屬于無反饋信道的編碼端碼率估計方案erc。實驗采用2個視頻序列foreman和hallmonitor,實驗的重要參數(shù)設(shè)定如表1所示,以下將結(jié)合仿真實驗對本發(fā)明的性能作進一步的描述。
圖6以及圖7給出了本發(fā)明的率失真性能對比圖。從圖中可以看出,相比于以上兩種方案,本發(fā)明方案具有更好的率失真性能,在相同碼率要求下能夠得到更高的視頻重構(gòu)質(zhì)量,改善解碼端的重構(gòu)性能。
圖8給出了本發(fā)明的碼率估計性能對比,可以看出,相較于傳統(tǒng)的erc方案,本發(fā)明所提出的基于附加碼率的碼率估計算法性能更好,估計碼率更為精確,普遍接近或略高于真實碼率,有效避免了因解碼端解碼失敗而導(dǎo)致的率失真性能的下降。
圖9給出了本發(fā)明的skip塊占比對比,從圖中可以看出,相較于傳統(tǒng)的無搜索skip塊判決算法,本發(fā)明有效提高了非關(guān)鍵幀中的skip塊的數(shù)目,從而有效減少了原本skip塊的運動估計以及l(fā)dpca編碼處理所帶來的復(fù)雜計算。
圖10給出了本發(fā)明的編碼端計算復(fù)雜度性能對比,相較于傳統(tǒng)erc方案,本發(fā)明得益于所提出的基于分層的塊匹配搜索算法以及二次skip塊編碼模式判決,有效提高了編碼端跳塊率、降低了編碼端的計算復(fù)雜度;相比于discover方案,由于其利用反饋信道的存在將運動估計與運動補償?shù)绒D(zhuǎn)移到解碼端從而降低了編碼端的計算復(fù)雜度,但卻需要反復(fù)通過反饋信道向編碼端進行信息反饋,傳輸時延高以及系統(tǒng)實時性較差。
表1
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。