一種轉(zhuǎn)碼中幀類別的調(diào)整方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)一種轉(zhuǎn)碼中幀類別的調(diào)整方法和系統(tǒng)。涉及轉(zhuǎn)碼領(lǐng)域,本發(fā)明方法根據(jù)輸入碼流的先驗(yàn)編碼信息,在轉(zhuǎn)碼端自適應(yīng)調(diào)整幀類別,從而達(dá)到減少預(yù)測(cè)模式遍歷尋優(yōu)的計(jì)算量,同時(shí)改變?cè)嫁D(zhuǎn)碼器中幀類別的盲設(shè)策略的不合理性。
【專利說(shuō)明】一種轉(zhuǎn)碼中幀類別的調(diào)整方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及轉(zhuǎn)碼領(lǐng)域,尤其涉及一種轉(zhuǎn)碼中幀類別的調(diào)整方法和系統(tǒng)。
【背景技術(shù)】
[0002]一方面,常規(guī)的轉(zhuǎn)碼器通常采用幀類別的盲設(shè)方法,即通過(guò)轉(zhuǎn)碼參數(shù)統(tǒng)一設(shè)置待轉(zhuǎn)碼幀的類別。但實(shí)際片源具有多樣性,片源的幀間信息冗余度也大不相同,此時(shí)轉(zhuǎn)碼器如果采用盲設(shè)方法,就會(huì)無(wú)法在各類片源下,獲取最優(yōu)的視頻壓縮效果。另一方面,轉(zhuǎn)碼器的輸入端為已壓縮的碼流,這就使其具有輸入碼流的先驗(yàn)編碼信息,而現(xiàn)有技術(shù)沒(méi)有利用該特性來(lái)設(shè)計(jì)靈活的自適應(yīng)的幀類調(diào)節(jié)機(jī)制來(lái)提升轉(zhuǎn)碼性能。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實(shí)施例的目的在于提出一種轉(zhuǎn)碼中幀類別的調(diào)整方法,旨在解決現(xiàn)有技術(shù)沒(méi)有利用輸入碼流的先驗(yàn)編碼信息的特性來(lái)設(shè)計(jì)靈活的自適應(yīng)的幀類調(diào)節(jié)機(jī)制來(lái)提升轉(zhuǎn)碼性能的問(wèn)題。
[0004]本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種轉(zhuǎn)碼中幀類別的調(diào)整方法,所述方法包括以下步驟:
[0005]SlOl:判斷 framede。是否為巾貞間預(yù)測(cè)巾貞且CKpoc (I_frame) -poc (frame) (Thres1,若是,則進(jìn)入S102 ;
[0006]其中,frame為當(dāng)前轉(zhuǎn)碼巾貞;framedee表示當(dāng)前轉(zhuǎn)碼巾貞對(duì)應(yīng)的輸入端解碼巾貞;1_frame表示離當(dāng)前轉(zhuǎn)碼巾貞最近的巾貞內(nèi)預(yù)測(cè)巾貞;poc(變量)表示變量的播放序號(hào)Jhres1表示第一閾值,Thres1<fps/2 ;fps表示巾貞率;
[0007]S102:統(tǒng)計(jì)當(dāng)前轉(zhuǎn)碼巾貞frame對(duì)應(yīng)的輸入端解碼巾貞中巾貞內(nèi)預(yù)測(cè)基本塊的個(gè)數(shù);
[0008]S103:判斷是否numberSThresdnumberbkk,若是,則轉(zhuǎn)換當(dāng)前轉(zhuǎn)碼巾貞的巾貞類別為幀內(nèi)預(yù)測(cè)幀,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入S106 ;其中,Thres2表示第二閾值,Thres2>0.8 ;numberbl(X;k表示一巾貞圖像包含的基本塊的個(gè)數(shù),number1表示framedee巾貞中巾貞內(nèi)預(yù)測(cè)基本塊的個(gè)數(shù);
[0009]S106:判定下一個(gè)轉(zhuǎn)碼幀是否存在,若是,則設(shè)置下一個(gè)轉(zhuǎn)碼幀為當(dāng)前轉(zhuǎn)碼幀,然后重新進(jìn)入SlOl ;若否,則結(jié)束。
[0010]進(jìn)一步地,所述步驟SlOl中,“判斷framede。是否為巾貞間預(yù)測(cè)巾貞且0〈poc (1_frame)-poc (frame)〈Thres/,,若否,則進(jìn)入 S104 ;
[0011]S104:判斷framedee是否為幀內(nèi)預(yù)測(cè)幀,若否,則保持當(dāng)前轉(zhuǎn)碼幀的幀類別,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入S106。
[0012]進(jìn)一步地,所述步驟S104中,判斷framedee是否為幀內(nèi)預(yù)測(cè)幀,若是,則進(jìn)入
S105;
[0013]S105:判定frame與前一幀轉(zhuǎn)碼幀是否屬于同一場(chǎng)景,若是,則轉(zhuǎn)換當(dāng)前轉(zhuǎn)碼幀的幀類別為幀間預(yù)測(cè)幀,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入S106。[0014]進(jìn)一步地,所述步驟S103中,判斷是否numberSThresdnumberbkk,若否,則進(jìn)入S104。
[0015]進(jìn)一步地,所述步驟S105中,判定frame與前一幀轉(zhuǎn)碼幀是否屬于同一場(chǎng)景,若否,則保持當(dāng)前轉(zhuǎn)碼幀的幀類別,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入S106。
[0016]本發(fā)明實(shí)施例的另一目的在于提出一種轉(zhuǎn)碼中幀類別的調(diào)整系統(tǒng),,所述系統(tǒng)包括第一判斷處理模塊、幀內(nèi)預(yù)測(cè)基本塊統(tǒng)計(jì)模塊、第二判斷處理模塊、第四判斷處理模塊,
[0017]第一判斷處理模塊,用于判斷framedee是否為幀間預(yù)測(cè)幀且0〈pOC (1_frame) -poc (frame) (Thres1,若是,則進(jìn)入幀內(nèi)預(yù)測(cè)基本塊統(tǒng)計(jì)模塊;
[0018]其中,frame為當(dāng)前轉(zhuǎn)碼幀;framedee表示當(dāng)前轉(zhuǎn)碼幀對(duì)應(yīng)的輸入端解碼幀;1_frame表示離當(dāng)前轉(zhuǎn)碼幀最近的幀內(nèi)預(yù)測(cè)幀;poc(變量)表示變量的播放序號(hào)Jhres1表示第一閾值,Thres1<fps/2 ;fps表示幀率;
[0019]幀內(nèi)預(yù)測(cè)基本塊統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)當(dāng)前轉(zhuǎn)碼幀frame對(duì)應(yīng)的輸入端解碼幀中幀內(nèi)預(yù)測(cè)基本塊的個(gè)數(shù);
[0020]第二判斷處理模塊,用于判斷是否numberSThresdnumberbkk,若是,則轉(zhuǎn)換當(dāng)前轉(zhuǎn)碼幀的幀類別為幀內(nèi)預(yù)測(cè)幀,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入第四判斷處理模塊;
[0021]其中,Thres2表示第二閾值,Thres2>0.8 ;numberbl()C;k表示一幀圖像包含的基本塊的個(gè)數(shù);
[0022]第四判斷處理模塊,用于判定下一個(gè)轉(zhuǎn)碼幀是否存在,若是,則設(shè)置下一個(gè)轉(zhuǎn)碼幀為當(dāng)前轉(zhuǎn)碼幀,然后重新進(jìn)入第一判斷處理模塊;若否,則結(jié)束。
[0023]進(jìn)一步地,所述系統(tǒng)還包括,
[0024]第三判斷處理模塊,用于判斷frame.是否為幀內(nèi)預(yù)測(cè)幀,若是,則進(jìn)入場(chǎng)景判斷模塊;若否,則保持當(dāng)前轉(zhuǎn)碼幀的幀類別,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入第四判斷處理模塊;
[0025]所述第一判斷處理模塊,還用于判斷framedee是否為幀間預(yù)測(cè)幀且0〈pOC (1_frame) -poc (frame) (Thres1,若否,則進(jìn)入第三判斷處理模塊。
[0026]所述第二判斷處理模塊,還用于判斷是否numberbThresdnumberbkk,若否,貝!J進(jìn)入第三判斷處理模塊。
[0027]進(jìn)一步地,
[0028]第三判斷處理模塊,用于判斷framedee是否為幀內(nèi)預(yù)測(cè)幀,若是,則進(jìn)入場(chǎng)景判斷模塊;
[0029]場(chǎng)景判斷模塊,用于判定frame與前一幀轉(zhuǎn)碼幀是否屬于同一場(chǎng)景,若是,則轉(zhuǎn)換當(dāng)前轉(zhuǎn)碼幀的幀類別為幀間預(yù)測(cè)幀,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入第四判斷處理模塊;若否,則保持當(dāng)前轉(zhuǎn)碼幀的幀類別,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入第四判斷處理模塊。
[0030]本發(fā)明的有益效果
[0031]本發(fā)明提出一種轉(zhuǎn)碼中幀類別的調(diào)整方法和系統(tǒng)。本發(fā)明根據(jù)輸入碼流的先驗(yàn)編碼信息,在轉(zhuǎn)碼端自適應(yīng)調(diào)整幀類別,從而達(dá)到減少預(yù)測(cè)模式遍歷尋優(yōu)的計(jì)算量,同時(shí)改變?cè)嫁D(zhuǎn)碼器中幀類別的盲設(shè)策略的不合理性?!緦@綀D】
【附圖說(shuō)明】
[0032]圖1是本發(fā)明優(yōu)選實(shí)施例的一種轉(zhuǎn)碼中幀類別的調(diào)整方法流程圖;
[0033]圖2是圖1中步驟S102中所包含方法的流程圖;
[0034]圖3是圖1中步驟S105的所包含方法的流程圖;
[0035]圖4是本發(fā)明優(yōu)選實(shí)施例的一種轉(zhuǎn)碼中幀類別的調(diào)整系統(tǒng)結(jié)構(gòu);
[0036]圖5是圖4中幀內(nèi)預(yù)測(cè)基本塊統(tǒng)計(jì)模塊的結(jié)構(gòu)圖;
[0037]圖6是圖4中場(chǎng)景判斷模塊的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0038]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明,為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。應(yīng)當(dāng)理解,此處所描寫的具體實(shí)施例,僅僅用于解釋本發(fā)明,并不用以限制本發(fā)明。
[0039]本發(fā)明實(shí)施例提出一種轉(zhuǎn)碼中幀類別的調(diào)整方法和系統(tǒng)。本發(fā)明實(shí)施例方法根據(jù)輸入碼流的先驗(yàn)編碼信息,在轉(zhuǎn)碼端自適應(yīng)調(diào)整幀類別,從而達(dá)到減少預(yù)測(cè)模式遍歷尋優(yōu)的計(jì)算量,同時(shí)改變?cè)嫁D(zhuǎn)碼器中幀類別的盲設(shè)策略的不合理性。
[0040]實(shí)施例一
[0041]圖1是本發(fā)明優(yōu)選實(shí)施例的一種轉(zhuǎn)碼中幀類別的調(diào)整方法流程圖;所述方法包括以下步驟,
[0042]SlOl:判斷 framede。是否為幀間預(yù)測(cè)幀且CKpoc (I_frame) -poc (frame) (Thres1,若是,則進(jìn)入S102 ;若否,則進(jìn)入S104。
[0043]其中,frame為當(dāng)前轉(zhuǎn)碼幀;framedee表示當(dāng)前轉(zhuǎn)碼幀對(duì)應(yīng)的輸入端解碼幀;1_frame表示離當(dāng)前轉(zhuǎn)碼幀最近的幀內(nèi)預(yù)測(cè)幀;poc(變量)表示變量的播放序號(hào)Jhres1表不第一閾值,一般Thres^fps/〗 ;fps表不幀率。
[0044]S102:統(tǒng)計(jì)當(dāng)前轉(zhuǎn)碼幀frame對(duì)應(yīng)的輸入端解碼幀中幀內(nèi)預(yù)測(cè)基本塊的個(gè)數(shù)。所述“統(tǒng)計(jì)當(dāng)前轉(zhuǎn)碼幀frame對(duì)應(yīng)的輸入端解碼幀中幀內(nèi)預(yù)測(cè)基本塊的個(gè)數(shù)”包括以下步驟(圖2是圖1中步驟S102所包含的方法流程圖):
[0045]S1020:設(shè)置初始值,即令= O,n=l ;
[0046]即設(shè)置當(dāng)前基本塊為第一個(gè)基本塊。
[0047]其中,number1表示framedee幀中幀內(nèi)預(yù)測(cè)基本塊的個(gè)數(shù);η表示blockndee在framedec中的位置序號(hào);基本塊為編碼標(biāo)準(zhǔn)允許劃分的最大塊;小于基本塊的塊稱為子塊;H264中基本塊為大小為16x16的塊,H265中基本塊則可以為64x64等較大的塊。
[0048]S1021:判斷是否(bhck, e framedec)且(block廣為幀內(nèi)預(yù)測(cè)基本塊或者
blockndec至少包含一個(gè)為幀內(nèi)預(yù)測(cè)基本塊的子塊),若是,則numberLnumber1+]^然后進(jìn)入
S1022;若否,則直接進(jìn)入S1022。
[0049]其中,block廣表示當(dāng)前轉(zhuǎn)碼幀對(duì)應(yīng)的輸入端解碼幀的第η個(gè)基本塊;
[0050]S1022:如果下一個(gè)基本塊存在,則設(shè)置下一個(gè)基本塊為當(dāng)前基本塊,然后重新進(jìn)入S1021 ;否則,進(jìn)入S103。[0051]S103:判斷是否numberSThresdnumberbkk,若是,則轉(zhuǎn)換當(dāng)前轉(zhuǎn)碼幀的幀類別為幀內(nèi)預(yù)測(cè)幀,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入S106 ;若否,則進(jìn)入S104。
[0052]其中,Thres2表示第二閾值,一般Thres2>0.8 ;numberbl()ek表示一幀圖像包含的基本塊的個(gè)數(shù)。
[0053]S104:判斷framedee是否為幀內(nèi)預(yù)測(cè)幀,若是,則進(jìn)入S105 ;若否,則保持當(dāng)前轉(zhuǎn)碼幀的幀類別,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入S106。
[0054]S105:判定frame與前一幀轉(zhuǎn)碼幀是否屬于同一場(chǎng)景,若是,則轉(zhuǎn)換當(dāng)前轉(zhuǎn)碼幀的幀類別為幀間預(yù)測(cè)幀,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入S106 ;若否,則保持當(dāng)前轉(zhuǎn)碼幀的幀類別,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入S106。
[0055]所述“判定frame與前一幀轉(zhuǎn)碼幀是否屬于同一場(chǎng)景”具體方法如下(圖3是圖1中步驟S105中所包含方法流程圖;):
[0056]S1050:找到當(dāng)前轉(zhuǎn)碼幀播放順序上對(duì)應(yīng)的前一個(gè)輸入解碼幀及后一個(gè)輸入解碼幀,然后對(duì)上述兩幀圖像進(jìn)行解碼。
[0057]其中,將當(dāng)前轉(zhuǎn)碼幀播放順序上對(duì)應(yīng)的前一個(gè)輸入解碼幀及后一個(gè)輸入解碼幀分另Ij記為加叫t,.、framed,。
[0058]S1051:設(shè)置初始值,n=l (即設(shè)置當(dāng)前基本塊為第一個(gè)基本塊);
[0059]S1052:如果所述兩幀圖像相同位置的基本塊的預(yù)測(cè)模式都是Skip模式,則計(jì)算當(dāng)前轉(zhuǎn)碼幀當(dāng)前基本塊統(tǒng)計(jì)變量;否則,設(shè)置當(dāng)前轉(zhuǎn)碼幀當(dāng)前基本塊統(tǒng)計(jì)變量為O。
f I , tp < Thres'
[0060]叫],-、
[0061]tp = std (yprev;n(i, j) -ynext;n(i, j) I yprev,n(1.j) G blockprev,ndec 并且ynext,n(1.j) G block
next, n )
[0062]其中,81@0表示當(dāng)前轉(zhuǎn)碼幀當(dāng)前基本塊的統(tǒng)計(jì)變量;
[0063]std(變量I條件)表不對(duì)滿足條件的變量求均方差;Thres3表不第三閾值,一般Thres3<900/fps, fps表示幀率;tp表示中間變量;
[0064]yprev;n(i, j)表示frcrnef:第n個(gè)基本塊第i行第j列的亮度值;
[0065]ynext;n(i, j)表示加me=第n個(gè)基本塊第i行第j列的亮度值;
[0066]blockprev;ndec 表示/r蘭(6:,.第 n 個(gè)基本塊;blocknext,ndec 表示 /ra膨,=第 n 個(gè)基本塊。
[0067]S1053:如果 sum(sigt,n| sigt,n=l)/sum(sigt,n| sigt,n 幸 0) >Thres4,則判定 framet與前一幀轉(zhuǎn)碼幀屬于同一場(chǎng)景;否則,判定framet與前一幀轉(zhuǎn)碼幀不屬于同一場(chǎng)景。
[0068]其中,Thres4表示第四閾值,一般Thres4>0.8 ;sum(變量|條件)表示對(duì)滿足條件的變量求和;
[0069]所述“判定frame,與前一幀轉(zhuǎn)碼幀是否屬于同一場(chǎng)景”除了采用本文中的上述方法外,也可采用行業(yè)內(nèi)公知的任何一種方法。
[0070]S106:判定下一個(gè)轉(zhuǎn)碼幀是否存在,若是,則設(shè)置下一個(gè)轉(zhuǎn)碼幀為當(dāng)前轉(zhuǎn)碼幀,然后重新進(jìn)入SlOl ;若否,則結(jié)束。[0071]實(shí)施例二
[0072]圖4是本發(fā)明優(yōu)選實(shí)施例的一種轉(zhuǎn)碼中幀類別的調(diào)整系統(tǒng);所述系統(tǒng)包括第一判斷處理模塊、幀內(nèi)預(yù)測(cè)基本塊統(tǒng)計(jì)模塊、第二判斷處理模塊、第三判斷處理模塊、場(chǎng)景判斷模塊、第四判斷處理模塊, [0073]第一判斷處理模塊,用于判斷framedee是否為幀間預(yù)測(cè)幀且0〈pOC (1_frame) -poc (frame) <Thres1;若是,則進(jìn)入幀內(nèi)預(yù)測(cè)基本塊統(tǒng)計(jì)模塊;若否,則進(jìn)入第三判斷處理模塊。
[0074]其中,frame為當(dāng)前轉(zhuǎn)碼幀;framedee表示當(dāng)前轉(zhuǎn)碼幀對(duì)應(yīng)的輸入端解碼幀;1_frame表示離當(dāng)前轉(zhuǎn)碼幀最近的幀內(nèi)預(yù)測(cè)幀;poc(變量)表示變量的播放序號(hào)Jhres1表不第一閾值,一般Thres^fps/〗 ;fps表不幀率。
[0075]幀內(nèi)預(yù)測(cè)基本塊統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)當(dāng)前轉(zhuǎn)碼幀frame對(duì)應(yīng)的輸入端解碼幀中幀內(nèi)預(yù)測(cè)基本塊的個(gè)數(shù)。
[0076]第二判斷處理模塊,用于判斷是否numberSThresdnumberbkk,若是,則轉(zhuǎn)換當(dāng)前轉(zhuǎn)碼幀的幀類別為幀內(nèi)預(yù)測(cè)幀,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入第四判斷處理模塊;若否,則進(jìn)入第三判斷處理模塊。
[0077]其中,Thres2表示第二閾值,一般Thres2>0.8 ;numberbl(K;k表示一幀圖像包含的基本塊的個(gè)數(shù)。
[0078]第三判斷處理模塊,用于判斷framed是否為幀內(nèi)預(yù)測(cè)幀,若是,則進(jìn)入場(chǎng)景判斷模塊;若否,則保持當(dāng)前轉(zhuǎn)碼幀的幀類別,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入第四判斷處理模塊。
[0079]場(chǎng)景判斷模塊,用于判定frame與前一幀轉(zhuǎn)碼幀是否屬于同一場(chǎng)景,若是,則轉(zhuǎn)換當(dāng)前轉(zhuǎn)碼幀的幀類別為幀間預(yù)測(cè)幀,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入第四判斷處理模塊;若否,則保持當(dāng)前轉(zhuǎn)碼幀的幀類別,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入第四判斷處理模塊。
[0080]第四判斷處理模塊,用于判定下一個(gè)轉(zhuǎn)碼幀是否存在,若是,則設(shè)置下一個(gè)轉(zhuǎn)碼幀為當(dāng)前轉(zhuǎn)碼幀,然后重新進(jìn)入第一判斷處理模塊;若否,則結(jié)束。
[0081]進(jìn)一步地,所述幀內(nèi)預(yù)測(cè)基本塊統(tǒng)計(jì)模塊還包括第一基本塊設(shè)置模塊、第五判斷處理模塊、第六判斷處理模塊(圖5是圖4中幀內(nèi)預(yù)測(cè)基本塊統(tǒng)計(jì)模塊的結(jié)構(gòu)圖),
[0082]第一基本塊設(shè)置模塊,用于設(shè)置初始值,即令=0,n=i ;即設(shè)置當(dāng)前基本塊為第一個(gè)基本塊。
[0083]其中,number1表示framedee幀中幀內(nèi)預(yù)測(cè)基本塊的個(gè)數(shù);n表示blockndee在framedec中的位置序號(hào);
[0084]第五判斷處理模±夾,用于判斷是否(block, G framedec)且(bl0Ckndee為
幀內(nèi)預(yù)測(cè)基本塊或者blocknd“至少包含一個(gè)為幀內(nèi)預(yù)測(cè)基本塊的子塊),若是,則令numberLnumber1+]^然后進(jìn)入第六判斷處理模塊;若否,則直接進(jìn)入第六判斷處理模塊。
[0085]其中,bloCkndee表示當(dāng)前轉(zhuǎn)碼幀對(duì)應(yīng)的輸入端解碼幀的第n個(gè)基本塊;
[0086]第六判斷處理模塊,用于判斷下一個(gè)基本塊是否存在,若是則設(shè)置下一個(gè)基本塊為當(dāng)前基本塊,然后重新進(jìn)入第五判斷處理模塊;否則,進(jìn)入第二判斷處理模塊。[0087]其中,Thres2表示第二閾值,一般Thres2>0.8 ;numberbl()ek表示一幀圖像包含的基本塊的個(gè)數(shù)。
[0088]進(jìn)一步地,所述場(chǎng)景判斷模塊還包括解碼模塊、第二基本塊設(shè)置模塊、基本塊預(yù)測(cè)模式判斷模塊、第七判斷處理模塊(圖6是圖4中場(chǎng)景判斷模塊的結(jié)構(gòu)圖),
[0089]解碼模塊,用于找到當(dāng)前轉(zhuǎn)碼幀播放順序上對(duì)應(yīng)的前一個(gè)輸入解碼幀及后一個(gè)輸入解碼幀,然后對(duì)上述兩幀圖像進(jìn)行解碼。
[0090]其中,將當(dāng)前轉(zhuǎn)碼幀播放順序上對(duì)應(yīng)的前一個(gè)輸入解碼幀及后一個(gè)輸入解碼幀分別記為
【權(quán)利要求】
1.一種轉(zhuǎn)碼中幀類別的調(diào)整方法,其特征在于,所述方法包括以下步驟:
5101:判斷 framede。是否為幀間預(yù)測(cè)幀且 CKpoc (I_frame)-poc (frame) (Thres1,若是,則進(jìn)入S102 ; 其中,frame為當(dāng)前轉(zhuǎn)碼幀;framedee表示當(dāng)前轉(zhuǎn)碼幀對(duì)應(yīng)的輸入端解碼幀;I_frame表示離當(dāng)前轉(zhuǎn)碼幀最近的幀內(nèi)預(yù)測(cè)幀;poc (變量)表示變量的播放序號(hào)Jhres1表示第一閾值,Thres1<fps/2 ;fps表示幀率; 5102:統(tǒng)計(jì)當(dāng)前轉(zhuǎn)碼幀frame對(duì)應(yīng)的輸入端解碼幀中幀內(nèi)預(yù)測(cè)基本塊的個(gè)數(shù); 5103:判斷是否numberbThresdnumberbkk,若是,則轉(zhuǎn)換當(dāng)前轉(zhuǎn)碼幀的幀類別為幀內(nèi)預(yù)測(cè)幀,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入S106 ;其中,Thres2表示第二閾值,Thres2>0.8 ;numberbl(X;k表示一幀圖像包含的基本塊的個(gè)數(shù),number1表示framedee幀中幀內(nèi)預(yù)測(cè)基本塊的個(gè)數(shù); S106:判定下一個(gè)轉(zhuǎn)碼幀是否存在,若是,則設(shè)置下一個(gè)轉(zhuǎn)碼幀為當(dāng)前轉(zhuǎn)碼幀,然后重新進(jìn)入SlOl ;若否,則結(jié)束。
2.如權(quán)利要求1所述的轉(zhuǎn)碼中幀類別的調(diào)整方法,其特征在于,所述步驟SlOl中,“判斷framede。是否為幀間預(yù)測(cè)幀且0〈poc (I_frame) -poc (frame)〈Thres/’,若否,則進(jìn)入S104; S104:判斷framedee是否為幀內(nèi)預(yù)測(cè)幀,若否,則保持當(dāng)前轉(zhuǎn)碼幀的幀類別,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接 著進(jìn)入S106。
3.如權(quán)利要求2所述轉(zhuǎn)碼中幀類別的調(diào)整方法,其特征在于,所述步驟S104中,判斷framedec是否為幀內(nèi)預(yù)測(cè)幀,若是,則進(jìn)入S105 ; S105:判定frame與前一幀轉(zhuǎn)碼幀是否屬于同一場(chǎng)景,若是,則轉(zhuǎn)換當(dāng)前轉(zhuǎn)碼幀的幀類別為幀間預(yù)測(cè)幀,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入S106。
4.如權(quán)利要求2所述轉(zhuǎn)碼中幀類別的調(diào)整方法,其特征在于,所述步驟S103中,判斷是否 numberSThresdnumberb^k,若否,則進(jìn)入 S104。
5.如權(quán)利要求2所述轉(zhuǎn)碼中幀類別的調(diào)整方法,其特征在于,所述步驟S105中,判定frame與前一幀轉(zhuǎn)碼幀是否屬于同一場(chǎng)景,若否,則保持當(dāng)前轉(zhuǎn)碼幀的幀類別,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入S106。
6.如權(quán)利要求2所述轉(zhuǎn)碼中幀類別的調(diào)整方法,其特征在于,步驟S102中,“統(tǒng)計(jì)當(dāng)前轉(zhuǎn)碼幀frame對(duì)應(yīng)的輸入端解碼幀中幀內(nèi)預(yù)測(cè)基本塊的個(gè)數(shù)”包括以下步驟: 51020:設(shè)置初始值,即令""/h/w/ = 0,n=l ; 其中,number1表示framedee幀中幀內(nèi)預(yù)測(cè)基本塊的個(gè)數(shù);n表示blockndee在framedee中的位置序號(hào); 51021:判斷是否Woctfe framede。且“blocknde。為幀內(nèi)預(yù)測(cè)基本塊或者bl0Ckndec至少包含一個(gè)為幀內(nèi)預(yù)測(cè)基本塊的子塊”,若是,則令numberLnumber1+]^然后進(jìn)入S1022 ;若否,則直接進(jìn)入S1022 ; 其中,Wocknt^表示當(dāng)前轉(zhuǎn)碼幀對(duì)應(yīng)的輸入端解碼幀的第η個(gè)基本塊; S1022:如果下一個(gè)基本塊存在,則設(shè)置下一個(gè)基本塊為當(dāng)前基本塊,然后重新進(jìn)入S1021;否則,進(jìn)入S103。
7.如權(quán)利要求2所述轉(zhuǎn)碼中幀類別的調(diào)整方法,其特征在于,步驟S105中,“判定frame與前一幀轉(zhuǎn)碼幀是否屬于同一場(chǎng)景”包括以下步驟: 51050:找到當(dāng)前轉(zhuǎn)碼幀播放順序上對(duì)應(yīng)的前一個(gè)輸入解碼幀及后一個(gè)輸入解碼幀,然后對(duì)上述兩幀圖像進(jìn)行解碼, 其中,將當(dāng)前轉(zhuǎn)碼幀播放順序上對(duì)應(yīng)的前一個(gè)輸入解碼幀及后一個(gè)輸入解碼幀分別記為 frame-、frame=; 51051:設(shè)置初始值,n=l ; 51052:如果所述兩幀圖像相同位置的基本塊的預(yù)測(cè)模式都是Skip模式,則計(jì)算當(dāng)前轉(zhuǎn)碼幀當(dāng)前基本塊統(tǒng)計(jì)變量sigt,n ;否則,設(shè)置當(dāng)前轉(zhuǎn)碼幀當(dāng)前基本塊統(tǒng)計(jì)變量為O ;
51053:如果 sum(sigt,n| sigt,n=l)/sum(sigt,n| sigt,n Φ O) >Thres4,則判定 framet 與前一中貞轉(zhuǎn)碼幀屬于同一場(chǎng)景;否則,判定framet與前一幀轉(zhuǎn)碼幀不屬于同一場(chǎng)景, 其中,Thres4表示第四閾值,Thres4>0.8 ;sum($e , m)表示對(duì)滿足條件的變量求和。
8.如權(quán)利要求7所述轉(zhuǎn)碼中幀類別的調(diào)整方法,其特征在于,所述“計(jì)算當(dāng)前轉(zhuǎn)碼幀當(dāng)前基本塊統(tǒng)計(jì)變量”具體為:
9.一種轉(zhuǎn)碼中幀類別的調(diào)整系統(tǒng),其特征在于,所述系統(tǒng)包括第一判斷處理模塊、幀內(nèi)預(yù)測(cè)基本塊統(tǒng)計(jì)模塊、第二判斷處理模塊、第四判斷處理模塊, 第一判斷處理?!缞A,用于判斷framedee是否為幀間預(yù)測(cè)幀且0〈pOC (1_frame) -poc (frame) (Thres1,若是,則進(jìn)入幀內(nèi)預(yù)測(cè)基本塊統(tǒng)計(jì)模塊; 其中,frame為當(dāng)前轉(zhuǎn)碼幀;framedee表示當(dāng)前轉(zhuǎn)碼幀對(duì)應(yīng)的輸入端解碼幀;I_frame表示離當(dāng)前轉(zhuǎn)碼幀最近的幀內(nèi)預(yù)測(cè)幀;poc($e)表示變量的播放序號(hào)Jhres1表示第一閾值,Thres^fps/2 ;fps 表示幀率; 幀內(nèi)預(yù)測(cè)基本塊統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)當(dāng)前轉(zhuǎn)碼幀frame對(duì)應(yīng)的輸入端解碼幀中幀內(nèi)預(yù)測(cè)基本塊的個(gè)數(shù); 第二判斷處理模塊,用于判斷是否numbei^Thresdnumberbkk,若是,則轉(zhuǎn)換當(dāng)前轉(zhuǎn)碼幀的幀類別為幀內(nèi)預(yù)測(cè)幀,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入第四判斷處理模塊;其中,Thres2表示第二閾值,Thres2>0.8 ;numberbl(X;k表示一幀圖像包含的基本塊的個(gè)數(shù); 第四判斷處理模塊,用于判定下一個(gè)轉(zhuǎn)碼幀是否存在,若是,則設(shè)置下一個(gè)轉(zhuǎn)碼幀為當(dāng)前轉(zhuǎn)碼幀,然后重新進(jìn)入第一判斷處理模塊;若否,則結(jié)束。
10.如權(quán)利要求9中的轉(zhuǎn)碼中幀類別的調(diào)整系統(tǒng),其特征在于,所述系統(tǒng)還包括, 第三判斷處理模塊,用于判斷framedee是否為幀內(nèi)預(yù)測(cè)幀,若是,則進(jìn)入場(chǎng)景判斷模塊;若否,則保持當(dāng)前轉(zhuǎn)碼幀的幀類別,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入第四判斷處理模塊; 所述第一判斷處理模塊,還用于判斷framedee是否為幀間預(yù)測(cè)幀且0〈pOC(I_frame) -poc (frame) (Thres1,若否,則進(jìn)入第三判斷處理模塊。 所述第二判斷處理模塊,還用于判斷是否numbei^Thresdnumberbkk,若否,則進(jìn)入第三判斷處理模塊。
11.如權(quán)利要求10中的轉(zhuǎn)碼中幀類別的調(diào)整系統(tǒng),其特征在于, 第三判斷處理模塊,用于判斷framede。是否為幀內(nèi)預(yù)測(cè)幀,若是,則進(jìn)入場(chǎng)景判斷模塊; 場(chǎng)景判斷模塊,用于判定frame與前一幀轉(zhuǎn)碼幀是否屬于同一場(chǎng)景,若是,則轉(zhuǎn)換當(dāng)前轉(zhuǎn)碼幀的幀類別為幀間預(yù)測(cè)幀,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入第四判斷處理模塊;若否,則保持當(dāng)前轉(zhuǎn)碼幀的幀類別,然后對(duì)當(dāng)前轉(zhuǎn)碼幀進(jìn)行轉(zhuǎn)碼,接著進(jìn)入第四判斷處理模塊。
12.如權(quán)利要求9中的轉(zhuǎn)碼中幀類別的調(diào)整系統(tǒng),其特征在于,所述幀內(nèi)預(yù)測(cè)基本塊統(tǒng)計(jì)模塊還包括第一基本塊設(shè)置模塊、第五判斷處理模塊、第六判斷處理模塊 第一基本塊設(shè)置模塊,用于設(shè)置初始值,令=0,n=1 ; 其中,number1表示framedee幀中幀內(nèi)預(yù)測(cè)基本塊的個(gè)數(shù);n表示blockndee在framedee中的位置序號(hào); 第五判斷處理模塊,用于判斷是否Woif e framedee且“block廣為幀內(nèi)預(yù)測(cè)基本塊或者Wocknde^至少包含一個(gè)為幀內(nèi)預(yù)測(cè)基本塊的子塊”,若是,則令numberLnumber1+]^然后進(jìn)入第六判斷處理模塊;若否,則直接進(jìn)入第六判斷處理模塊, 其中,Wocknt^表示當(dāng)前轉(zhuǎn)碼幀對(duì)應(yīng)的輸入端解碼幀的第η個(gè)基本塊; 第六判斷處理模塊,用于判斷下一個(gè)基本塊是否存在,若是則設(shè)置下一個(gè)基本塊為當(dāng)前基本塊,然后重新進(jìn)入第五判斷處理模塊;否則,進(jìn)入第二判斷處理模塊, 其中,Thres2表示第二閾值,Thres2>0.8 ;numberbl(X;k表示一幀圖像包含的基本塊的個(gè)數(shù)。
13.如權(quán)利要求9中的轉(zhuǎn)碼中幀類別的調(diào)整系統(tǒng),其特征在于,所述場(chǎng)景判斷模塊還包括解碼模塊、第二基本塊設(shè)置模塊、基本塊預(yù)測(cè)模式判斷模塊、第七判斷處理模塊 解碼模塊,用于找到當(dāng)前轉(zhuǎn)碼幀播放順序上對(duì)應(yīng)的前一個(gè)輸入解碼幀及后一個(gè)輸入解碼幀,然后對(duì)上述兩幀圖像進(jìn)行解碼, 其中,將當(dāng)前轉(zhuǎn)碼幀播放順序上對(duì)應(yīng)的前一個(gè)輸入解碼幀及后一個(gè)輸入解碼幀分別記為framedecprev.framedecnext、 第二基本塊設(shè)置模塊,用于設(shè)置初始值,n=l ; 基本塊預(yù)測(cè)模式判斷模塊,用于判斷是否所述兩幀圖像相同位置的基本塊的預(yù)測(cè)模式都是Skip模式,若是則計(jì)算當(dāng)前轉(zhuǎn)碼幀當(dāng)前基本塊統(tǒng)計(jì)變量;否則,設(shè)置當(dāng)前轉(zhuǎn)碼幀當(dāng)前基本塊統(tǒng)計(jì)變量為O ;第七判斷處理模塊,用于判斷是否sum(sigt,n| sigt,n=l)/sum(sigt;n| sigt;n^ O) >Thres4,若是則判定framet與前一幀轉(zhuǎn)碼幀屬于同一場(chǎng)景;否貝U,判定framet與前一幀轉(zhuǎn)碼幀不屬于同一場(chǎng)景, 其中,Thres4表示第四閾值,一般Thres4X).8 ;sum(變量|條件)表示對(duì)滿足條件的變量求和;。
14.如權(quán)利要求13中的轉(zhuǎn)碼中幀類別的調(diào)整系統(tǒng),其特征在于, 所述“計(jì)算當(dāng)前轉(zhuǎn)碼幀當(dāng)前基本塊統(tǒng)計(jì)變量”具體為:
【文檔編號(hào)】H04N19/142GK103686184SQ201310580970
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2013年11月18日 優(yōu)先權(quán)日:2013年11月18日
【發(fā)明者】舒倩 申請(qǐng)人:深圳市云宙多媒體技術(shù)有限公司