亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

基于數(shù)據(jù)緩存的多流水線階段信息共享方法

文檔序號(hào):7958677閱讀:211來(lái)源:國(guó)知局
專利名稱:基于數(shù)據(jù)緩存的多流水線階段信息共享方法
技術(shù)領(lǐng)域
本發(fā)明屬于信號(hào)處理中的視頻和圖像編解碼技術(shù)領(lǐng)域,特別涉及在編碼解碼過(guò)程中多個(gè)流水線階段信息共享的方法。
背景技術(shù)
H.264/AVC是最新的視頻編碼國(guó)際標(biāo)準(zhǔn)。新的視頻編碼國(guó)際標(biāo)準(zhǔn)采用了新的編碼方法,如基于上下文的變長(zhǎng)編碼(CAVLC),更高精度的運(yùn)動(dòng)矢量預(yù)測(cè),可變塊大小預(yù)測(cè),intra預(yù)測(cè),整型變換等,與MPEG-4視頻編碼國(guó)際標(biāo)準(zhǔn)相比,編碼效率提高了一倍。
與此同時(shí)解碼器的復(fù)雜度也大大增加。傳統(tǒng)的視頻編碼國(guó)際標(biāo)準(zhǔn)(如MPEG-2),其解碼器一般采用3級(jí)的并行流水結(jié)構(gòu),即包括以下三個(gè)流水線結(jié)構(gòu)變長(zhǎng)解碼/反量化/反掃描(VLD/IQ/IZZ),逆離散余弦變換(IDCT/MC),數(shù)據(jù)回寫(WB)。
在H.264/AVC中,由于單個(gè)流水線的復(fù)雜度增加,解碼器需要分為更多的流水線階段。在一個(gè)典型的解碼器結(jié)構(gòu),一般可以分為五個(gè)流水線階段,包括流水線階段零基于上下文的熵解碼(CAVLC);流水線階段一整型逆變換IIT(Inverse IntegerTransform)/讀參考幀數(shù)據(jù)(Read_Ref);流水線階段二插值和運(yùn)動(dòng)補(bǔ)償;流水線階段三去塊效應(yīng)濾波(Deblocking),流水線階段四數(shù)據(jù)回寫(WB)。在同一個(gè)時(shí)間段內(nèi),各個(gè)流水線階段對(duì)不同的宏塊進(jìn)行解碼,以提高解碼的并行性。如圖1所示,在T4時(shí)間段內(nèi),五個(gè)流水線階段分別對(duì)宏塊MB0,宏塊MB1,宏塊MB2,宏塊MB3,宏塊MB4進(jìn)行并行解碼。
流水線階段還可以有不同的劃分方法,趨勢(shì)是需要更多的流水階段來(lái)實(shí)現(xiàn)解碼器,以提高各個(gè)流水線階段的利用率,滿足高端的實(shí)時(shí)應(yīng)用。
在各個(gè)流水線階段,會(huì)同時(shí)用到某些信息,需要在實(shí)現(xiàn)解碼器的芯片上保存上一行宏塊的宏塊模式(mb_mode),運(yùn)動(dòng)矢量(mv),參考索引(ref_idx),象素值(pel)等信息,以及左邊宏塊的相應(yīng)信息。
例如,如圖2所示,在運(yùn)動(dòng)矢量預(yù)測(cè)時(shí),E的運(yùn)動(dòng)矢量由左邊宏塊A和上一行對(duì)應(yīng)宏塊B,上一行超前宏塊C的運(yùn)動(dòng)矢量預(yù)測(cè)得到。如圖3所示,在去塊效應(yīng)(Deblocking)階段,也需要用到上一行宏塊A的mb_mode,mv,ref_idx等信息,以及左邊宏塊B的相應(yīng)信息,來(lái)判斷濾波的邊界強(qiáng)度。0到15為當(dāng)前解碼宏塊的16個(gè)子塊,黑實(shí)線為需要濾波的子塊邊界。
現(xiàn)有的多流水線對(duì)宏塊信息的使用方法是在要用到這些信息的每個(gè)流水線階段,用存儲(chǔ)器保存相應(yīng)的信息,每個(gè)流水線階段單獨(dú)使用和維護(hù)相應(yīng)的信息。如圖1所示,例如,流水線階段一和流水線階段三,都需要用到上一行宏塊的信息,就在這兩個(gè)流水線階段都保存上一行宏塊的相應(yīng)信息,并對(duì)這些信息單獨(dú)使用和維護(hù)。這種直接實(shí)現(xiàn)方法,需要在實(shí)現(xiàn)解碼器的芯片上用多塊存儲(chǔ)器(如RAM)保存相同的信息,這對(duì)硬件資源是一種浪費(fèi)。

發(fā)明內(nèi)容
本發(fā)明的目的是為克服已有技術(shù)的不足之處,提出一種基于數(shù)據(jù)緩存的多流水線階段信息共享方法,可以實(shí)現(xiàn)共享存儲(chǔ)和維護(hù)。各個(gè)流水線階段可以共享在實(shí)現(xiàn)解碼器的芯片內(nèi)的上一行或左邊宏塊的mb_mode,mv,ref_idx,pel等信息。從而有效的節(jié)省芯片存儲(chǔ)器(如RAM)的資源。
本發(fā)明提出一種基于數(shù)據(jù)緩存的多流水線階段信息共享方法,用于分為N個(gè)流水線階段的一個(gè)解碼器結(jié)構(gòu)中,其特征在于,包括設(shè)置所述上一行宏塊信息的一個(gè)共享存儲(chǔ)器及數(shù)據(jù)緩存區(qū),所述共享存儲(chǔ)器用于存儲(chǔ)上一行宏塊信息,所述數(shù)據(jù)緩存區(qū)用于緩存上一行宏塊的信息,供各個(gè)流水線階段使用。
本發(fā)明還提出另一種基于數(shù)據(jù)緩存的多流水線階段信息共享方法,用于分為N個(gè)流水線階段的一個(gè)解碼器結(jié)構(gòu)中,其特征在于,包括設(shè)置所述左邊宏塊信息的一個(gè)數(shù)據(jù)緩存區(qū),所述數(shù)據(jù)緩存區(qū)用于緩存左邊宏塊的信息,供各個(gè)流水線階段使用。
本發(fā)明帶來(lái)的有益效果本發(fā)明可以使多個(gè)流水線階段共享保存在共享存儲(chǔ)器的上一行或左邊宏塊的mb_mode,mv,ref_idx,pel等信息,而不需要在每一個(gè)流水線階段單獨(dú)保存和維護(hù)上一行或左邊宏塊的mb_mode,mv,ref_idx,pel等信息。從而有效的節(jié)省解碼器的芯片上存儲(chǔ)器的資源。同時(shí),每增加一個(gè)流水線階段,只需要設(shè)置一個(gè)指針,控制簡(jiǎn)單。


圖1為H.264/AVC的解碼器5級(jí)流水線結(jié)構(gòu)示意圖。
圖2為H.264/AVC中運(yùn)動(dòng)矢量的預(yù)測(cè)示意圖。
圖3為去塊效應(yīng)(Deblocking)濾波的邊界示意圖。
圖4本發(fā)明對(duì)上一行宏塊進(jìn)行緩存的移位寄存器陣列示意圖。
圖5本發(fā)明宏塊解碼示意圖。
圖6本發(fā)明對(duì)左邊宏塊信息進(jìn)行緩存的移位寄存器陣列。
圖7本發(fā)明對(duì)上一行宏塊進(jìn)行緩存的長(zhǎng)度為5的移位寄存器陣列實(shí)施例結(jié)構(gòu)示意圖。
圖8本發(fā)明對(duì)左邊宏塊進(jìn)行緩存的長(zhǎng)度為4的移位寄存器陣列實(shí)施例結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明提出的基于數(shù)據(jù)緩存的多流水線階段信息共享方法及其設(shè)備結(jié)合附圖及實(shí)施例詳細(xì)說(shuō)明如下在多個(gè)流水線階段解碼器進(jìn)行解碼操作中,如圖2所示,在運(yùn)動(dòng)矢量預(yù)測(cè)時(shí),E的運(yùn)動(dòng)矢量由左邊宏塊A和上一行宏塊B,C的運(yùn)動(dòng)矢量預(yù)測(cè)得到。如圖3所示,在去塊效應(yīng)(deblocking)階段,需要用到上一行宏塊A的mb_mode,mv,ref_idx等信息,以及左邊宏塊B的相應(yīng)信息,來(lái)判斷濾波的邊界強(qiáng)度。
本發(fā)明提出一種基于數(shù)據(jù)緩存的多流水線階段信息共享方法,用于分為N個(gè)流水線階段的一個(gè)解碼器結(jié)構(gòu)中,其特征在于,包括設(shè)置所述上一行宏塊信息的一個(gè)共享存儲(chǔ)器及數(shù)據(jù)緩存區(qū),所述共享存儲(chǔ)器用于存儲(chǔ)上一行宏塊信息,所述數(shù)據(jù)緩存區(qū)用于緩存上一行宏塊的信息,供各個(gè)流水線階段使用。具體說(shuō)明如下若一個(gè)解碼器結(jié)構(gòu)中分為N個(gè)流水線階段,其中A,B,C,…Z…,為N個(gè)流水線階段中(A為最小流水線階段索引值,Z為最大流水線階段索引值),會(huì)同時(shí)使用上一行宏塊的宏塊模式(mb_mode),運(yùn)動(dòng)矢量(mv),參考索引(ref_idx),象素值(pel)等信息的幾個(gè)流水線階段,并且A<B<C<…<Z…<N;流水線階段B和流水線階段A之間相差(B-A)個(gè)流水線階段,流水線C和流水線A之間相差(C-A)個(gè)流水線階段;設(shè)每個(gè)宏塊的可變塊大小在水平方向上的子塊個(gè)數(shù)為n(在H.264/AVC中,最小塊是4×4,n=4;在AVS中最小塊是8×8,n=2);該方法將保存的上一行宏塊中需要使用的信息進(jìn)行緩存,通過(guò)指針來(lái)標(biāo)志每一個(gè)流水線階段使用的數(shù)據(jù)在緩存中的位置,包括設(shè)置上一行宏塊信息的一個(gè)共享存儲(chǔ)器及數(shù)據(jù)緩存區(qū),在最小流水線階段A對(duì)數(shù)據(jù)緩存區(qū)的信息進(jìn)行更新,對(duì)數(shù)據(jù)緩存區(qū)設(shè)置除最小流水線階段A外的B,C,…Z流水線階段的指針與更新三部分,各部分的具體實(shí)現(xiàn)步驟如下1)設(shè)置上一行宏塊信息的一個(gè)共享存儲(chǔ)器及數(shù)據(jù)緩存區(qū)所述共享存儲(chǔ)器用于存儲(chǔ)上一行宏塊信息,所述數(shù)據(jù)緩存區(qū)由移位寄存器陣列構(gòu)成,該移位寄存器陣列由m個(gè)寄存器組構(gòu)成,每個(gè)寄存器組由n個(gè)寄存器構(gòu)成(即構(gòu)成m×n的寄存器陣列);最小寄存器組的個(gè)數(shù)m為(Z-A+1)+L+1;其中,L為上一行超前使用的宏塊信息的個(gè)數(shù),每個(gè)寄存器組標(biāo)記為J(i),i=0,1,…,m-1(如圖4所示);2)在最小流水線階段A對(duì)數(shù)據(jù)緩存區(qū)的信息進(jìn)行更新,具體包括以下步驟a)在對(duì)當(dāng)前一行宏塊進(jìn)行解碼操作開(kāi)始時(shí),從共享存儲(chǔ)器中讀取L+1個(gè)上一行宏塊的信息,并依次存入移位寄存器組J(0)到J(L);b)當(dāng)流水線階段A每完成一個(gè)當(dāng)前宏塊的解碼操作后,從共享存儲(chǔ)器存儲(chǔ)的上一行宏塊信息中,讀取上一行宏塊信息中的下一個(gè)當(dāng)前宏塊要使用的信息數(shù)據(jù),存儲(chǔ)到寄存器組J(0)中,同時(shí)相應(yīng)的寄存器組中的數(shù)據(jù)左移,即J(0)的數(shù)據(jù)移到J(1),J(1)的數(shù)據(jù)移到J(2),依此類推(如圖5所示,當(dāng)流水線階段A在解碼完當(dāng)前解碼宏塊MB1后,把緩存在J(0)寄存器組的B宏塊的信息左移到J(1)寄存器,將上行中C宏塊的信息讀入J(0)寄存器組,在解碼宏塊MB2時(shí),使用J(0)和J(1)寄存器組的信息);c)在流水線階段A對(duì)共享存儲(chǔ)器的上一行宏塊的信息進(jìn)行更新,將解碼出來(lái)的當(dāng)前宏塊信息保存到所述共享存儲(chǔ)器中,替換原有信息,備下一行宏塊解碼時(shí)使用;3)在數(shù)據(jù)緩存區(qū)設(shè)置除最小流水線階段A外的B,C,…Z流水線階段的指針與更新其中,流水線階段B寄存器組指針的設(shè)置與更新具體包括以下步驟;a)對(duì)流水線階段B設(shè)置一個(gè)寄存器組指針,該指針用于保存寄存器組的索引值i;其起始指針指向J(L)的寄存器組;b)每當(dāng)流水線階段A完成一個(gè)當(dāng)前宏塊的解碼操作后,該指針向左加一;c)每當(dāng)流水線階段B完成一個(gè)當(dāng)前宏塊的解碼操作后,該指針向右減一。
流水線階段C,……寄存器組指針的設(shè)置與更新重復(fù)相應(yīng)的步驟a)-c)。
本發(fā)明還提出另一種基于數(shù)據(jù)緩存的多流水線階段信息共享方法,用于分為N個(gè)流水線階段的一個(gè)解碼器結(jié)構(gòu)中,其特征在于,包括設(shè)置所述左邊宏塊信息的一個(gè)數(shù)據(jù)緩存區(qū),所述數(shù)據(jù)緩存區(qū)用于緩存左邊宏塊的信息,供各個(gè)流水線階段使用。具體說(shuō)明如下若一個(gè)解碼器結(jié)構(gòu)中分為N個(gè)流水線階段,其中A,B,C,…Z…,為N個(gè)流水線階段中(A為最小流水線階段索引值,Z為最大流水線階段索引值),會(huì)同時(shí)使用上一行宏塊的宏塊模式(mb_mode),運(yùn)動(dòng)矢量(mv),參考索引(ref_idx),象素值(pel)等信息的幾個(gè)流水線階段,并且A<B<C<…<Z…<N;流水線階段B和流水線階段A之間相差(B-A)個(gè)流水線階段,流水線C和流水線A之間相差(C-A)個(gè)流水線階段;設(shè)每個(gè)宏塊的可變塊大小在水平方向上的子塊個(gè)數(shù)為n(在H.264/AVC中,最小塊是4×4,n=4;在AVS中最小塊是8×8,n=2);該方法將左邊宏塊信息進(jìn)行緩存,通過(guò)指針來(lái)標(biāo)志每一個(gè)流水線階段使用的數(shù)據(jù)在緩存中的位置,包括設(shè)置左邊宏塊信息的一個(gè)數(shù)據(jù)緩存區(qū),在最小流水線階段A對(duì)數(shù)據(jù)緩存區(qū)的信息進(jìn)行更新,對(duì)數(shù)據(jù)緩存區(qū)設(shè)置除最小流水線階段A外的B,C,…Z流水線階段的指針與更新三部分,各部分的具體實(shí)現(xiàn)步驟如下1)設(shè)置左邊宏塊信息的數(shù)據(jù)緩存區(qū)所述數(shù)據(jù)緩存區(qū)由移位寄存器陣列構(gòu)成,該移位寄存器陣列由m個(gè)寄存器組構(gòu)成,每個(gè)寄存器組由n個(gè)寄存器構(gòu)成(即構(gòu)成m×n的寄存器陣列);最小寄存器組的個(gè)數(shù)m為(Z-A+1)+1;每個(gè)寄存器組標(biāo)記為J(i),i=0,1,…,m-1(如圖6所示);宏塊信息在流水線階段A中解碼出來(lái)。
2)在最小流水線階段A對(duì)數(shù)據(jù)緩存區(qū)的信息進(jìn)行更新;在流水線階段A完成當(dāng)前宏塊信息的解碼后,將解碼的當(dāng)前宏塊信息,讀取到寄存器組J(0)中,同時(shí)寄存器組數(shù)據(jù)左移。即J(0)的數(shù)據(jù)移到J(1),J(1)的數(shù)據(jù)移到J(2),依此類推;3)對(duì)所述數(shù)據(jù)緩存區(qū)設(shè)置B,C,…Z流水線階段的指針與更新,具體包括以下步驟;a)對(duì)流水線階段B設(shè)置一個(gè)寄存器組指針,該指針用于保存寄存器組的索引值i;其起始指針指向J(0)的寄存器組;b)每當(dāng)流水線階段A完成一個(gè)當(dāng)前宏塊的解碼操作后,該指針向左加一;c)每當(dāng)流水線階段B完成一個(gè)當(dāng)前宏塊的解碼操作后,該指針向右減一。
流水線階段C,……寄存器組指針的設(shè)置與更新重復(fù)相應(yīng)的步驟a)-c)。
本發(fā)明提出一種基于數(shù)據(jù)緩存的多流水線階段信息共享方法的實(shí)施例1為具有5個(gè)流水線階段解碼器,其中運(yùn)動(dòng)矢量預(yù)測(cè)和去塊效應(yīng)(Deblocking)2個(gè)流水線階段(運(yùn)動(dòng)矢量預(yù)測(cè)在流水線階段1,去塊效應(yīng)(Deblocking)在流水線階段3)需要使用上一行宏塊的運(yùn)動(dòng)矢量信息進(jìn)行解碼操作;對(duì)于H.264/AVC,每個(gè)宏塊的可變塊大小在水平方向上的子塊個(gè)數(shù)為4;該方法將保存的上一行宏塊中需要使用的信息進(jìn)行緩存,通過(guò)指針來(lái)標(biāo)志每一個(gè)流水線階段使用的數(shù)據(jù)在緩存中的位置,對(duì)本發(fā)明的多流水線階段信息共享方法實(shí)施例1包括設(shè)置上一行宏塊信息的一個(gè)共享存儲(chǔ)器及數(shù)據(jù)緩存區(qū),在流水線階段1完成寄存器組信息和上一行宏塊信息的更新,對(duì)流水線階段3寄存器組指針的設(shè)置與更新,其中,各部分的具體實(shí)現(xiàn)步驟如下1)設(shè)置上一行宏塊信息的一個(gè)共享存儲(chǔ)器及數(shù)據(jù)緩存區(qū)所述共享存儲(chǔ)器用于存儲(chǔ)上一行宏塊信息,所述數(shù)據(jù)緩存區(qū)由移位寄存器陣列構(gòu)成,該移位寄存器陣列由5個(gè)寄存器組構(gòu)成,每個(gè)寄存器組由4個(gè)寄存器構(gòu)成(即構(gòu)成5×4的寄存器陣列);每個(gè)寄存器組標(biāo)記為J(i),i=0,1,…,4(如圖7所示);2)在流水線階段1完成寄存器組信息和上一行宏塊信息的更新,具體包括以下步驟a)在對(duì)當(dāng)前一行宏塊進(jìn)行解碼操作開(kāi)始時(shí),從共享存儲(chǔ)器中讀取2個(gè)上一行宏塊的信息,并依次存入移位寄存器組J(0)到J(1);b)當(dāng)流水線階段1每完成一個(gè)當(dāng)前宏塊的解碼操作后,從共享存儲(chǔ)器存儲(chǔ)的上一行宏塊信息中,讀取上一行宏塊信息中的下一個(gè)當(dāng)前宏塊要使用的信息數(shù)據(jù),存儲(chǔ)到寄存器組J(0)中,同時(shí)相應(yīng)的寄存器組中的數(shù)據(jù)左移,即J(0)的數(shù)據(jù)移到J(1),J(1)的數(shù)據(jù)移到J(2),依此類推(如圖7所示,當(dāng)流水線階段1在解碼完當(dāng)前解碼宏塊MB1后,把緩存在J(0)寄存器組的B宏塊的信息左移到J(1)寄存器,將上行中C宏塊的信息讀入J(0)寄存器組,在解碼宏塊MB2時(shí),使用J(0)和J(1)寄存器組的信息);c)在流水線階段1對(duì)共享存儲(chǔ)器的上一行宏塊的信息進(jìn)行更新,將解碼出來(lái)的當(dāng)前宏塊信息保存到所述共享存儲(chǔ)器中,替換原有信息,備下一行宏塊解碼時(shí)使用;3)對(duì)流水線階段3寄存器組指針的設(shè)置與更新具體包括以下步驟;a)對(duì)流水線階段3設(shè)置一個(gè)寄存器組指針,該指針用于保存寄存器組的索引值i;其起始指針指向J(1)的寄存器組;b)每當(dāng)流水線階段1完成一個(gè)當(dāng)前宏塊的解碼操作后,該指針向左加一;c)每當(dāng)流水線階段3完成一個(gè)當(dāng)前宏塊的解碼操作后,該指針向右減一。
本發(fā)明還提出一種基于數(shù)據(jù)緩存的多流水線階段信息共享方法實(shí)施例2為具有5個(gè)流水線階段解碼器,其中運(yùn)動(dòng)矢量預(yù)測(cè)和去塊效應(yīng)(Deblocking)2個(gè)流水線階段(運(yùn)動(dòng)矢量預(yù)測(cè)在流水線階段1,去塊效應(yīng)(Deblocking)在流水線階段3)需要使用上一行宏塊的運(yùn)動(dòng)矢量信息進(jìn)行解碼操作;對(duì)于H.264/AVC,每個(gè)宏塊的可變塊大小在水平方向上的子塊個(gè)數(shù)為4。
該方法將左邊宏塊信息進(jìn)行緩存,通過(guò)指針來(lái)標(biāo)志每一個(gè)流水線階段使用的數(shù)據(jù)在緩存中的位置,對(duì)本發(fā)明的多流水線階段信息共享方法實(shí)施例2包括設(shè)置左邊宏塊信息數(shù)據(jù)緩存區(qū),還包括在最小流水線階段1對(duì)數(shù)據(jù)緩存區(qū)的信息進(jìn)行更新,對(duì)所述數(shù)據(jù)緩存區(qū)設(shè)置流水線階段3的指針與更新。寄存器組信息的更新,寄存器組指針的設(shè)置與更新三部分,各部分的具體實(shí)現(xiàn)步驟如下1)設(shè)置左邊宏塊信息的數(shù)據(jù)緩存區(qū)所述數(shù)據(jù)緩存區(qū)由移位寄存器陣列構(gòu)成,該移位寄存器陣列由4個(gè)寄存器組構(gòu)成,每個(gè)寄存器組由4個(gè)寄存器構(gòu)成(即構(gòu)成4×4的寄存器陣列);每個(gè)寄存器組標(biāo)記為J(i),i=0,1,…,3(如圖8所示);宏塊信息在流水線階段1中解碼出來(lái)。
2)在流水線階段1完成左邊宏塊寄存器組信息的更新;在流水線階段1完成當(dāng)前宏塊信息的解碼后,將解碼的當(dāng)前宏塊信息,讀取到寄存器組J(0)中,同時(shí)寄存器組數(shù)據(jù)左移。即J(0)的數(shù)據(jù)移到J(1),J(1)的數(shù)據(jù)移到J(2),依此類推;3)對(duì)流水線階段3寄存器組指針的設(shè)置與更新具體包括以下步驟;a)對(duì)流水線階段3設(shè)置一個(gè)寄存器組指針,該指針用于保存寄存器組的索引值i;其起始指針指向J(0)的寄存器組;b)每當(dāng)流水線階段1完成一個(gè)當(dāng)前宏塊的解碼操作后,該指針向左加一;c)每當(dāng)流水線階段3完成一個(gè)當(dāng)前宏塊的解碼操作后,該指針向右減一。
權(quán)利要求
1.一種基于數(shù)據(jù)緩存的多流水線階段信息共享方法,用于分為N個(gè)流水線階段的一個(gè)解碼器結(jié)構(gòu)中,其特征在于,包括設(shè)置所述上一行宏塊信息的一個(gè)共享存儲(chǔ)器及數(shù)據(jù)緩存區(qū),所述共享存儲(chǔ)器用于存儲(chǔ)上一行宏塊信息,所述數(shù)據(jù)緩存區(qū)用于緩存上一行宏塊的信息,供各個(gè)流水線階段使用。
2.如權(quán)利要求1所述的基于數(shù)據(jù)緩存的多流水線階段信息共享方法,其特征在于,所述的N個(gè)流水線階段中A,B,C,…Z…,為幾個(gè)流水線階段會(huì)使用所述的上一行宏塊信息的連續(xù)或不不連續(xù)的流水線階段,并且A<B<C<…<Z…<N;流水線階段B和流水線階段A之間相差B-A個(gè)流水線階段,設(shè)每個(gè)宏塊的可變塊大小在水平方向上的子塊個(gè)數(shù)為n,所述的上一行宏塊信息包括宏塊模式,運(yùn)動(dòng)矢量,參考索引,象素值信息;所述數(shù)據(jù)緩存區(qū)由移位寄存器陣列構(gòu)成,該移位寄存器陣列由m個(gè)寄存器組構(gòu)成,每個(gè)寄存器組由n個(gè)寄存器構(gòu)成;最小寄存器組的個(gè)數(shù)m為(Z-A+1)+L+1;其中,L為上一行超前使用的宏塊信息的個(gè)數(shù),每個(gè)寄存器組標(biāo)記為J(i),i=0,1,…,m-1。
3.如權(quán)利要求1或2所述的基于數(shù)據(jù)緩存的多流水線階段信息共享方法,其特征在于,還包括在最小流水線階段A對(duì)數(shù)據(jù)緩存區(qū)的信息進(jìn)行更新,對(duì)所述數(shù)據(jù)緩存區(qū)設(shè)置除最小流水線階段A外的B,C,…Z流水線階段的指針與更新。
4.如權(quán)利要求3所述的基于數(shù)據(jù)緩存的多流水線階段信息共享方法,其特征在于,所述在最小流水線階段A對(duì)數(shù)據(jù)緩存區(qū)的信息進(jìn)行更新,具體包括以下步驟1)在對(duì)當(dāng)前一行宏塊進(jìn)行解碼操作開(kāi)始時(shí),從共享存儲(chǔ)器中讀取L+1個(gè)上一行宏塊的信息,并依次存入移位寄存器組J(0)到J(L);2)當(dāng)流水線階段A每完成一個(gè)當(dāng)前宏塊的解碼操作后,從共享存儲(chǔ)器存儲(chǔ)的上一行宏塊信息中,讀取上一行宏塊信息中的下一個(gè)當(dāng)前宏塊要使用的信息數(shù)據(jù),存儲(chǔ)到寄存器組J(0)中,同時(shí)相應(yīng)的寄存器組中的數(shù)據(jù)左移,即J(0)的數(shù)據(jù)移到J(1),J(1)的數(shù)據(jù)移到J(2),依此類推;3)在流水線階段A對(duì)共享存儲(chǔ)器的上一行宏塊的信息進(jìn)行更新,將解碼出來(lái)的當(dāng)前宏塊信息保存到所述共享存儲(chǔ)器中,替換原有信息,備下一行宏塊解碼時(shí)使用。
5.如權(quán)利要求3所述的基于數(shù)據(jù)緩存的多流水線階段信息共享方法,其特征在于,對(duì)所述數(shù)據(jù)緩存區(qū)設(shè)置B,C,…Z流水線階段的指針與更新,具體包括以下步驟;1)對(duì)流水線階段B設(shè)置一個(gè)寄存器組指針,該指針用于保存寄存器組的索引值i;其起始指針指向J(L)的寄存器組;2)每當(dāng)流水線階段A完成一個(gè)當(dāng)前宏塊的解碼操作后,該指針向左加一;3)每當(dāng)流水線階段B完成一個(gè)當(dāng)前宏塊的解碼操作后,該指針向右減一;所述流水線階段C,…Z寄存器組指針的設(shè)置與更新重復(fù)相應(yīng)的步驟1)-3)。
6.一種基于數(shù)據(jù)緩存的多流水線階段信息共享方法,用于分為N個(gè)流水線階段的一個(gè)解碼器結(jié)構(gòu)中,其特征在于,包括設(shè)置所述左邊宏塊信息的一個(gè)數(shù)據(jù)緩存區(qū),所述數(shù)據(jù)緩存區(qū)用于緩存左邊宏塊的信息,供各個(gè)流水線階段使用。
7.如權(quán)利要求6所述的基于數(shù)據(jù)緩存的多流水線階段信息共享方法,其特征在于,所述的N個(gè)流水線階段中A,B,C,…Z…,為幾個(gè)流水線階段會(huì)使用所述的左邊宏塊信息的連續(xù)或不不連續(xù)的流水線階段,并且A<B<C<…<Z…<N;流水線階段B和流水線階段A之間相差B-A個(gè)流水線階段,設(shè)每個(gè)宏塊的可變塊大小在水平方向上的子塊個(gè)數(shù)為n,所述的左邊宏塊信息包括宏塊模式,運(yùn)動(dòng)矢量,參考索引,象素值信息;所述數(shù)據(jù)緩存區(qū)由移位寄存器陣列構(gòu)成,該移位寄存器陣列由m個(gè)寄存器組構(gòu)成,每個(gè)寄存器組由n個(gè)寄存器構(gòu)成;最小寄存器組的個(gè)數(shù)m為(Z-A+1)+L+1;其中,L為左邊超前使用的宏塊信息的個(gè)數(shù),每個(gè)寄存器組標(biāo)記為J(i),i=0,1,…,m-1。
8.如權(quán)利要求6或7所述的基于數(shù)據(jù)緩存的多流水線階段信息共享方法,其特征在于,還包括在最小流水線階段A對(duì)數(shù)據(jù)緩存區(qū)的信息進(jìn)行更新,對(duì)所述數(shù)據(jù)緩存區(qū)設(shè)置除最小流水線階段A外的B,C,…Z流水線階段的指針與更新。
9.如權(quán)利要求8所述的基于數(shù)據(jù)緩存的多流水線階段信息共享方法,其特征在于,所述在最小流水線階段A對(duì)數(shù)據(jù)緩存區(qū)的信息進(jìn)行更新,具體包括以下步驟在流水線階段A完成當(dāng)前宏塊信息的解碼后,將解碼的當(dāng)前宏塊信息,讀取到寄存器組J(0)中,同時(shí)寄存器組數(shù)據(jù)左移;即J(0)的數(shù)據(jù)移到J(1),J(1)的數(shù)據(jù)移到J(2),依此類推。
10.如權(quán)利要求8所述的基于數(shù)據(jù)緩存的多流水線階段信息共享方法,其特征在于,對(duì)所述數(shù)據(jù)緩存區(qū)設(shè)置B,C,…Z流水線階段的指針與更新,具體包括以下步驟;1)對(duì)流水線階段B設(shè)置一個(gè)寄存器組指針,該指針用于保存寄存器組的索引值i;其起始指針指向J(0)的寄存器組;2)每當(dāng)流水線階段A完成一個(gè)當(dāng)前宏塊的解碼操作后,該指針向左加一;3)每當(dāng)流水線階段B完成一個(gè)當(dāng)前宏塊的解碼操作后,該指針向右減一;所述流水線階段C,…Z寄存器組指針的設(shè)置與更新重復(fù)相應(yīng)的步驟1)-3)。
全文摘要
本發(fā)明涉及基于數(shù)據(jù)緩存的多流水線階段信息共享方法,屬于信號(hào)處理中的視頻和圖像編解碼技術(shù)領(lǐng)域。本方法用于分為N個(gè)流水線階段的一個(gè)解碼器結(jié)構(gòu)中,包括設(shè)置上一行宏塊信息的一個(gè)共享存儲(chǔ)器及數(shù)據(jù)緩存區(qū),或設(shè)置左邊宏塊信息的一個(gè)數(shù)據(jù)緩存區(qū),共享存儲(chǔ)器用于存儲(chǔ)上一行宏塊信息,數(shù)據(jù)緩存區(qū)用于緩存上一行宏塊的信息,供各個(gè)流水線階段使用。本發(fā)明可以使多個(gè)流水線階段共享保存在共享存儲(chǔ)器的上一行或左邊宏塊的信息,而不需要在每一個(gè)流水線階段單獨(dú)保存和維護(hù)上一行或左邊宏塊的信息。從而有效的節(jié)省解碼器的芯片上存儲(chǔ)器的資源。同時(shí),每增加一個(gè)流水線階段,只需要設(shè)置一個(gè)指針,控制簡(jiǎn)單。
文檔編號(hào)H04N7/30GK1825960SQ20061006645
公開(kāi)日2006年8月30日 申請(qǐng)日期2006年3月31日 優(yōu)先權(quán)日2006年3月31日
發(fā)明者何蕓, 李宇 申請(qǐng)人:清華大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1