專利名稱:一種視頻處理設(shè)備和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻處理領(lǐng)域,特別涉及一種視頻處理設(shè)備和方法。
背景技術(shù):
近年來視頻編解碼方面的應(yīng)用得到了飛速發(fā)展,且視頻的分辨率、碼率都得到很大提高,利用 DSP (Digital Signal Processor,數(shù)字信號處理器)或者 RISC (Retrenched Injunction System Computer,精簡指令系統(tǒng)計算機(jī))進(jìn)行視頻編解碼已經(jīng)不能滿足高性能視頻編解碼的需求,所以業(yè)內(nèi)逐漸轉(zhuǎn)向?qū)S玫囊曨l編解碼設(shè)備?,F(xiàn)有一種專用視頻處理設(shè)備的基本結(jié)構(gòu)如圖1所示,包括外部存儲器10、解析器 11、反量化/反變換單元12、地址生成器13、參考數(shù)據(jù)讀取單元14、運(yùn)動補(bǔ)償單元15和重建單元16,其中外部存儲器10,用于存儲參考幀數(shù)據(jù);解析器11,用于解析視頻編碼數(shù)據(jù)的原始碼流,從中獲得如當(dāng)前塊類型、位置信息、運(yùn)動矢量和量化后系數(shù)等信息,將位置信息和運(yùn)動矢量輸出給地址生成器13,將運(yùn)動矢量輸出給運(yùn)動補(bǔ)償單元15,以及將量化后系數(shù)輸出給反量化/反變換單元12 ;反量化/反變換單元12,用于將解析器11輸出的量化后系數(shù)轉(zhuǎn)換為重建單元16 所使用的殘差數(shù)據(jù);地址生成器13,用于根據(jù)當(dāng)前塊的位置信息以及運(yùn)動矢量等生成當(dāng)前塊的參考數(shù)據(jù)在外部存儲器10中的存儲地址并輸出給參考數(shù)據(jù)讀取單元14 ;參考數(shù)據(jù)讀取單元14,用于根據(jù)接收到的存儲地址從外部存儲器10中讀取當(dāng)前塊的參考數(shù)據(jù)并輸出給運(yùn)動補(bǔ)償單元15 ;運(yùn)動補(bǔ)償單元15,根據(jù)運(yùn)動矢量對參考數(shù)據(jù)進(jìn)行補(bǔ)償后輸出給重建單元16 ;重建單元16,用于根據(jù)運(yùn)動補(bǔ)償單元15輸出的當(dāng)前塊的參考數(shù)據(jù)和殘差數(shù)據(jù)獲得當(dāng)前塊。其中解析器11、反量化/反變換單元12、地址生成器13、參考數(shù)據(jù)讀取單元14、運(yùn)動補(bǔ)償單元15和重建單元16 —般集成在一個數(shù)據(jù)處理裝置中。但是上述由于所有的參考數(shù)據(jù)都需要從外部存儲器10中讀取,所以對外部存儲器10的帶寬需求比較高,而外部存儲器有比較大的訪問延時(一般有10 15個Clk),因此對外部存儲器有很高的帶寬需求并且限制了解碼速度的提高。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種視頻處理設(shè)備以及應(yīng)用于視頻處理設(shè)備中的視頻處理方法,用以實現(xiàn)根據(jù)外部存儲器帶寬的節(jié)省需求,靈活設(shè)定數(shù)據(jù)緩存器的類型及存儲塊,來達(dá)到節(jié)省外部存儲器帶寬和加快解碼速度的目的。一種視頻處理設(shè)備,包括視頻解碼器和外部存儲器,所述視頻解碼器用于對原始視頻碼流進(jìn)行解碼,所述解碼以宏塊為單位進(jìn)行,以塊為基本操作對象;所述視頻解碼器包括解析器、地址生成器、參考數(shù)據(jù)讀取單元、運(yùn)動補(bǔ)償單元,所述視頻解碼器還包括數(shù)據(jù)緩存器、標(biāo)簽緩存器;所述參考數(shù)據(jù)讀取單元包括緩存控制器;所述解析器,用于從原始視頻碼流中解碼獲得當(dāng)前塊的位置信息和運(yùn)動矢量,提供給所述地址生成器和參考數(shù)據(jù)讀取單元;所述地址生成器,用于根據(jù)獲得的當(dāng)前塊的位置信息和運(yùn)動矢量,生成當(dāng)前塊的參考數(shù)據(jù)在外部存儲器中的地址提供給參考數(shù)據(jù)讀取單元;所述數(shù)據(jù)緩存器用于保存參考數(shù)據(jù);所述標(biāo)簽緩存器用于保存參考數(shù)據(jù)的標(biāo)簽信息;所述緩存控制器,用于判斷當(dāng)前塊的參考數(shù)據(jù)是否在數(shù)據(jù)緩存器中,是則指示參考數(shù)據(jù)讀取單元從所述數(shù)據(jù)緩存器中讀取參考數(shù)據(jù)并提供給運(yùn)動補(bǔ)償單元;否則指示參考塊數(shù)據(jù)讀取單元從外部存儲器中讀取參考數(shù)據(jù)保存到數(shù)據(jù)緩存器,并為參考數(shù)據(jù)在標(biāo)簽緩存器中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元。其中,所述緩存控制器用于判斷當(dāng)前塊的參考數(shù)據(jù)是否在數(shù)據(jù)緩存器中,是根據(jù)當(dāng)前塊的位置信息和運(yùn)動矢量,確定當(dāng)前塊的參考數(shù)據(jù)在標(biāo)簽緩存器中的地址,讀取標(biāo)簽信息,根據(jù)標(biāo)簽信息判斷當(dāng)前塊的參考數(shù)據(jù)是否在數(shù)據(jù)緩存器中。其中,所述數(shù)據(jù)緩存器具體包括第一數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀 0中的數(shù)據(jù);第二數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀1中的數(shù)據(jù);以及所述標(biāo)簽緩存器具體包括第一標(biāo)簽緩存子單元,用于存儲為第一數(shù)據(jù)緩存子單元各個緩存地址對應(yīng)保存的標(biāo)簽信息;第二標(biāo)簽緩存子單元,用于存儲為第二數(shù)據(jù)緩存子單元的各個緩存地址對應(yīng)保存的標(biāo)簽信息。一種視頻處理方法,應(yīng)用于一種視頻處理設(shè)備中,所述視頻處理設(shè)備包括視頻解碼器和外部存儲器,所述視頻解碼器用于對原始視頻碼流進(jìn)行解碼,所述解碼以宏塊為單位進(jìn)行,以塊為基本操作對象;所述視頻解碼器包括解析器、地址生成器、參考數(shù)據(jù)讀取單元、運(yùn)動補(bǔ)償單元;所述視頻解碼器還包括數(shù)據(jù)緩存器、標(biāo)簽緩存器;所述參考數(shù)據(jù)讀取單元包括緩存控制器;該視頻處理方法包括A.所述解析器從原始視頻碼流中解碼獲得當(dāng)前塊的位置信息和運(yùn)動矢量,提供給所述地址生成器和參考數(shù)據(jù)讀取單元;B.所述參考數(shù)據(jù)讀取單元判斷當(dāng)前塊的參考數(shù)據(jù)是否讀取完畢;C.是則結(jié)束參考數(shù)據(jù)讀?。环駝t所述緩存控制器根據(jù)當(dāng)前塊的位置信息、運(yùn)動矢量確定當(dāng)前塊的參考數(shù)據(jù)在標(biāo)簽緩存器中的地址,讀取標(biāo)簽信息,并根據(jù)標(biāo)簽信息判斷當(dāng)前塊的參考數(shù)據(jù)是否在數(shù)據(jù)緩存器中,是則指示參考數(shù)據(jù)讀取單元從所述數(shù)據(jù)緩存器中讀取參考數(shù)據(jù)并提供給運(yùn)動補(bǔ)償單元;否則執(zhí)行地址生成器根據(jù)獲得的當(dāng)前塊的位置信息和運(yùn)動矢量生成參考數(shù)據(jù)在外部存儲器中的地址,提供給參考塊數(shù)據(jù)讀取單元;并指示參考數(shù)據(jù)讀取單元從外部存儲器中讀取參考數(shù)據(jù)保存到數(shù)據(jù)緩存器,并為參考數(shù)據(jù)在標(biāo)簽緩存器中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元;返回執(zhí)行步驟B。一種視頻處理設(shè)備,包括視頻解碼器和外部存儲器,所述視頻解碼器用于對原始視頻碼流進(jìn)行解碼,所述解碼以宏塊為單位進(jìn)行,以塊為基本操作對象;所述視頻解碼器包括解析器、地址生成器、參考數(shù)據(jù)讀取單元、運(yùn)動補(bǔ)償單元,
所述視頻解碼器還包括一級數(shù)據(jù)緩存器、一級標(biāo)簽緩存器、二級數(shù)據(jù)緩存器、二級標(biāo)簽緩存器;所述一級數(shù)據(jù)緩存器、二級級數(shù)據(jù)緩存器用于保存參考數(shù)據(jù);所述一級標(biāo)簽緩存器、二級標(biāo)簽緩存器用于保存參考數(shù)據(jù)的標(biāo)簽信息;所述解析器,用于從原始視頻碼流中解碼獲得當(dāng)前塊的位置信息和運(yùn)動矢量,提供給所述地址生成器和參考數(shù)據(jù)讀取單元;所述地址生成器,用于根據(jù)獲得的當(dāng)前塊的位置信息和運(yùn)動矢量,生成當(dāng)前塊的參考數(shù)據(jù)在外部存儲器中的地址,并提供給參考數(shù)據(jù)讀取單元;所述參考數(shù)據(jù)讀取單元包括緩存控制器;所述緩存控制器,用于判斷當(dāng)前塊的參考數(shù)據(jù)是否在一級數(shù)據(jù)緩存器或二級數(shù)據(jù)緩存器中,是則指示參考數(shù)據(jù)讀取單元從所述一級數(shù)據(jù)緩存器或所述二級數(shù)據(jù)緩存器讀取參考數(shù)據(jù),并提供給運(yùn)動補(bǔ)償單元;否則進(jìn)一步判斷在一級數(shù)據(jù)緩存器中的參考數(shù)據(jù)是否有效且該參考數(shù)據(jù)位于二級數(shù)據(jù)緩存器的覆蓋范圍內(nèi),是則把該參考數(shù)據(jù)更新到二級數(shù)據(jù)緩存器地址中,然后從外部存儲器中讀取參考數(shù)據(jù)保存到一級數(shù)據(jù)緩存器地址中,并為參考數(shù)據(jù)在一級標(biāo)簽緩存器中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元; 否則,從外部存儲器中讀取參考數(shù)據(jù)保存到一級數(shù)據(jù)緩存器,并為參考數(shù)據(jù)在一級標(biāo)簽緩存器中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元。其中,所述緩存控制器用于判斷當(dāng)前塊的參考數(shù)據(jù)是否在數(shù)據(jù)緩存器中,是根據(jù)當(dāng)前塊的位置信息和運(yùn)動矢量,確定當(dāng)前塊的參考數(shù)據(jù)在一級標(biāo)簽緩存器中的地址和二級標(biāo)簽緩存器中的地址,讀取標(biāo)簽信息,根據(jù)標(biāo)簽信息判斷當(dāng)前塊的參考數(shù)據(jù)是否在一級數(shù)據(jù)緩存器中或二級數(shù)據(jù)緩存器中。其中,所述緩存控制器,還用于在當(dāng)前宏塊的所有塊的參考數(shù)據(jù)讀取完畢后,將二級數(shù)據(jù)緩存器中將來參考可能性最低的參考數(shù)據(jù)的標(biāo)簽清零。其中,所述一級數(shù)據(jù)緩存器具體包括第一一級數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀0中的數(shù)據(jù);第二一級數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀1中的數(shù)據(jù);所述二級數(shù)據(jù)緩存器具體包括第一二級數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀0中的數(shù)據(jù);第二二級數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀1中的數(shù)據(jù)。一種視頻處理方法,應(yīng)用于一種視頻處理設(shè)備中,所述視頻處理設(shè)備包括視頻解碼器和外部存儲器,所述視頻解碼器用于對原始視頻碼流進(jìn)行解碼,所述解碼以宏塊為單位進(jìn)行,以塊為基本操作對象;所述視頻解碼器包括解析器、地址生成器、參考數(shù)據(jù)讀取單元、運(yùn)動補(bǔ)償單元;所述視頻解碼器還包括一級數(shù)據(jù)緩存器、一級標(biāo)簽緩存器、二級數(shù)據(jù)緩存器、二級標(biāo)簽緩存器;所述參考數(shù)據(jù)讀取單元包括緩存控制器;該視頻處理方法包括A.所述解析器從原始視頻碼流中解碼獲得當(dāng)前塊的位置信息和運(yùn)動矢量,提供給所述地址生成器和參考數(shù)據(jù)讀取單元;B.所述參考數(shù)據(jù)讀取單元判斷參考數(shù)據(jù)是否讀取完畢;C.是則執(zhí)行步驟E ;D.否則所述緩存控制器根據(jù)當(dāng)前塊的位置信息、運(yùn)動矢量確定參考數(shù)據(jù)在一級標(biāo)簽緩存器中的地址和二級標(biāo)簽緩存器中的地址,讀取標(biāo)簽信息;并根據(jù)標(biāo)簽信息判斷當(dāng)前塊的參考數(shù)據(jù)是否在一級數(shù)據(jù)緩存器或二級數(shù)據(jù)緩存器中,是則確定參考數(shù)據(jù)在一級數(shù)據(jù)緩存器和二級數(shù)據(jù)緩存器中的地址,指示參考數(shù)據(jù)讀取單元從所述一級數(shù)據(jù)緩存器或二級數(shù)據(jù)緩存器中讀取參考數(shù)據(jù)并提供給運(yùn)動補(bǔ)償單元,返回執(zhí)行步驟B ;否則進(jìn)一步判斷在一級數(shù)據(jù)緩存器中的參考數(shù)據(jù)是否有效且該參考數(shù)據(jù)位于二級數(shù)據(jù)緩存器地址覆蓋范圍內(nèi),是則把該參考數(shù)據(jù)更新到二級數(shù)據(jù)緩存器的緩存地址中;地址生成器根據(jù)獲得的當(dāng)前塊的位置信息和運(yùn)動矢量生成參考數(shù)據(jù)在外部存儲器中的地址,提供給參考塊數(shù)據(jù)讀取單元;然后從外部存儲器中讀取參考數(shù)據(jù)保存到一級數(shù)據(jù)緩存器,并為參考數(shù)據(jù)在一級標(biāo)簽緩存器中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元,執(zhí)行步驟B ;否則, 從外部存儲器中讀取參考數(shù)據(jù)保存到一級數(shù)據(jù)緩存器,并為參考數(shù)據(jù)在一級標(biāo)簽緩存器中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元;執(zhí)行步驟B ;E.所述緩存控制器判斷當(dāng)前宏塊的所有塊的參考數(shù)據(jù)是否讀取完畢,是則把二級數(shù)據(jù)緩存器中將來參考可能性最低的參考數(shù)據(jù)的標(biāo)簽清零,執(zhí)行步驟F ;否則執(zhí)行步驟F ;F.參考數(shù)據(jù)讀取結(jié)束。本發(fā)明實施例只需要較小的緩存器容量即可有效節(jié)省帶寬并加快解碼速度;而且本發(fā)明實施例對于運(yùn)動矢量較大的畫面,一級數(shù)據(jù)緩存可以彌補(bǔ)參考數(shù)據(jù)不在二級數(shù)據(jù)緩存覆蓋區(qū)域內(nèi)的不足,也可以達(dá)到一定的節(jié)省帶寬的效果。當(dāng)然,也可以只保留一級數(shù)據(jù)緩存省掉二級數(shù)據(jù)緩存以節(jié)省電路面積。
圖1為背景技術(shù)部分提到的現(xiàn)有專用視頻處理設(shè)備的基本結(jié)構(gòu)示意圖;圖加為本發(fā)明實施例一提供的視頻處理設(shè)備基本結(jié)構(gòu)示意圖;圖2b為本發(fā)明實施例一提供的視頻處理方法的流程圖;圖3a為本發(fā)明實施例二提供的具有兩級緩存的視頻處理設(shè)備基本結(jié)構(gòu)示意圖;圖北為本發(fā)明實施例二中當(dāng)前塊對應(yīng)位置的周邊設(shè)定范圍示例圖;圖3c為本發(fā)明實施例二中提供的視頻處理方法的流程圖。
具體實施例方式實施例一如圖加所示,為本發(fā)明實施例提供的一種視頻處理設(shè)備,包括視頻解碼器和外部存儲器,其中視頻解碼器用于對原始視頻碼流進(jìn)行解碼,并且解碼以宏塊為單位進(jìn)行,以塊為基本操作對象;外部存儲器20,用于存儲參考幀數(shù)據(jù);具體的,視頻解碼器包括解析器21、反量化/反變換單元22、地址生成器23、參考數(shù)據(jù)讀取單元對、運(yùn)動補(bǔ)償單元25和重建單元沈,還包括數(shù)據(jù)緩存器27,標(biāo)簽緩存器 28,其中解析器21,分別連接反量化/反變換單元22、地址生成器23和參考數(shù)據(jù)讀取單元 M,用于在解碼當(dāng)前塊時,從原始視頻碼流中獲得當(dāng)前塊的位置信息、運(yùn)動矢量以及量化后系數(shù),將位置信息和運(yùn)動矢量輸出給地址生成器23和參考數(shù)據(jù)讀取單元M,將運(yùn)動矢量輸出給運(yùn)動補(bǔ)償單元25,將量化后系數(shù)輸出給反量化/反變換單元22 ;
反量化/反變換單元22,連接在解析器21和重建單元沈之間,用于將解析器21 輸出的量化后系數(shù)轉(zhuǎn)換為殘差數(shù)據(jù)并輸出給重建單元26 ;運(yùn)動補(bǔ)償單元25,用于根據(jù)運(yùn)動矢量將參考數(shù)據(jù)經(jīng)補(bǔ)償后輸出給重建單元沈;地址生成器23,連接在解析器21和參考數(shù)據(jù)讀取單元M之間,用于根據(jù)接收到的位置信息和運(yùn)動矢量生成當(dāng)前塊的參考數(shù)據(jù)在外部存儲器20中的存儲地址并輸出給參考數(shù)據(jù)讀取單元M ;參考數(shù)據(jù)讀取單元M和數(shù)據(jù)緩存器27,數(shù)據(jù)緩存器27連接在參考數(shù)據(jù)讀取單元 24和外部存儲器20之間,參考數(shù)據(jù)讀取單元M還分別連接外部存儲器20、解析器21、地址生成器23和標(biāo)簽緩存器觀,參考數(shù)據(jù)讀取單元M包括緩存控制器;數(shù)據(jù)緩存器27用于保存參考數(shù)據(jù),是為降低外部存儲器20的帶寬需求而設(shè)置的, 標(biāo)簽緩存器觀用于保存參考數(shù)據(jù)的標(biāo)簽信息。下面詳細(xì)描述數(shù)據(jù)緩存的工作原理。參考數(shù)據(jù)讀取單元M在為當(dāng)前幀的第一個待解碼塊讀取參考數(shù)據(jù)之前,清空數(shù)據(jù)緩存器27 ;在后續(xù)解碼過程中,將獲得的當(dāng)前幀的部分參考數(shù)據(jù)緩存到數(shù)據(jù)緩存器27中,參考數(shù)據(jù)讀取單元M在讀取每一個當(dāng)前塊的參考數(shù)據(jù)時,如果數(shù)據(jù)緩存器27已經(jīng)存儲了該參考數(shù)據(jù),則從數(shù)據(jù)緩存器27中讀取,從而節(jié)省了外部存儲器20的這部分帶寬需求。數(shù)據(jù)緩存器27被劃分為多個存儲塊,每個存儲塊的大小例如可以設(shè)置為16x2。對數(shù)據(jù)緩存器 27的數(shù)據(jù)緩存控制具體包括參考數(shù)據(jù)讀取單元M中的緩存控制器用于判斷當(dāng)前塊的參考數(shù)據(jù)是否在數(shù)據(jù)緩存器27中,是則指示參考數(shù)據(jù)讀取單元M從數(shù)據(jù)緩存器27中讀取當(dāng)前塊的參考數(shù)據(jù)并提供給運(yùn)動補(bǔ)償單元25 ;否則指示參考數(shù)據(jù)讀取單元M根據(jù)地址生成器23輸出的存儲地址從外部存儲器20中讀取當(dāng)前塊的參考數(shù)據(jù)保存到數(shù)據(jù)緩存器27中,并為參考數(shù)據(jù)在標(biāo)簽緩存器觀中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元25 ;其中,緩存控制器根據(jù)解析器21輸出的當(dāng)前塊的位置信息和運(yùn)動矢量,確定當(dāng)前塊的參考數(shù)據(jù)在標(biāo)簽緩存器觀中的標(biāo)簽信息地址,讀取標(biāo)簽信息,根據(jù)標(biāo)簽信息判斷當(dāng)前塊的參考數(shù)據(jù)是否在數(shù)據(jù)緩存器27中。數(shù)據(jù)緩存器27中陸續(xù)緩存的是參考幀中的數(shù)據(jù),緩存控制原理可以類似于采用 CPU技術(shù)中的Cache技術(shù),例如一個參考幀大小為640x480像素,即VGA大小,數(shù)據(jù)緩存器 27的容量設(shè)置為256個存儲塊,而且每個存儲塊按照在畫面上的位置依次編號,色度存儲塊一般排在亮度塊后面,相應(yīng)的編號即為數(shù)據(jù)緩存器的緩存地址。參考塊位置信息一般為參考塊在參考幀中的坐標(biāo)(X,y),按照如下步驟可以確定參考塊數(shù)據(jù)在數(shù)據(jù)緩存器27中的緩存地址和標(biāo)簽信息1、根據(jù)參考塊在參考幀中的坐標(biāo)(X,y),以及存儲塊的大小得到參考塊相對于存儲塊的坐標(biāo)(xl,yl);示例存儲塊是16x2,所以xl等于χ/16的整數(shù)部分,yl等于y/2的整數(shù)部分;2、根據(jù)坐標(biāo)(xl,yl)確定參考塊的參考數(shù)據(jù)在數(shù)據(jù)緩存器27中的緩存地址和標(biāo)
簽信息;示例由于本例中數(shù)據(jù)緩存器設(shè)置的容量為256個存儲塊,計算xlXyl/256,余數(shù)部分為該參考塊的參考數(shù)據(jù)在數(shù)據(jù)緩存器27中的緩存地址,商的整數(shù)部分為該參考塊的參考數(shù)據(jù)在標(biāo)簽緩存器中所期望的標(biāo)簽,作為該參考塊的參考數(shù)據(jù)的標(biāo)簽信息;標(biāo)簽緩存器保存的標(biāo)簽信息的存儲順序和存儲塊地址是一一映射的,參考數(shù)據(jù)讀取單元M在清空數(shù)據(jù)緩存器27時,將每一個存儲塊對應(yīng)標(biāo)簽信息置為無效;將一個參考塊的參考數(shù)據(jù)存入緩存地址相應(yīng)的存儲塊的同時也要在標(biāo)簽緩存器寫入對應(yīng)的標(biāo)簽信息,后續(xù)根據(jù)其他參考塊位置信息計算出緩存地址以及標(biāo)簽信息后,先確認(rèn)是否與該緩存地址對應(yīng)存儲的標(biāo)簽信息匹配,如果是,則相應(yīng)存儲塊中確實存儲了該參考塊的參考數(shù)據(jù),則直接從數(shù)據(jù)緩存器27的相應(yīng)存儲塊讀取參考塊數(shù)據(jù)即可,反之,讀取外部存儲器20中保存的參考塊數(shù)據(jù)并輸出給運(yùn)動補(bǔ)償單元25,根據(jù)緩存地址將參考塊數(shù)據(jù)保存到數(shù)據(jù)緩存器27的相應(yīng)存儲塊中,并寫入計算出的緩存地址對應(yīng)的標(biāo)簽信息。需要說明的是,一般參考塊的大小如16Χ8、21χ13Αχ4;所以參考塊覆蓋了多個 16x2存儲塊,假如參考塊為21x13的話就覆蓋了 14個存儲塊,也就需要14次重復(fù)前面所述步驟,唯一需要更新的參數(shù)就是參考塊所覆蓋的下一個存儲塊的坐標(biāo)(X,y)。在上述視頻解碼設(shè)備,由于數(shù)據(jù)緩存器27中陸續(xù)存儲了當(dāng)前幀的參考幀中的部分?jǐn)?shù)據(jù),而且當(dāng)前幀中位置相鄰或相近的各宏塊在參考數(shù)據(jù)上有很大的重合,因此在解碼相鄰或相近的多個宏塊時,可以從數(shù)據(jù)緩存器27中獲得部分參考數(shù)據(jù),從而緩解了直接從外部存儲器20中讀取這部分?jǐn)?shù)據(jù)時外部存儲器20的帶寬需求,也減少了外部存儲器的延時對解碼器的影響。存儲的參考數(shù)據(jù)的數(shù)據(jù)緩存器27可以與存儲標(biāo)簽信息的標(biāo)簽緩存器觀在同一個緩存器中。數(shù)據(jù)緩存器27的存儲容量可以根據(jù)需要靈活設(shè)定,容量越大,即數(shù)據(jù)緩存的越多,后續(xù)參考數(shù)據(jù)在數(shù)據(jù)緩存器中找到的機(jī)會也越大,效果也就越好。當(dāng)然為了得到緩存地址以及標(biāo)簽信息的方便,把數(shù)據(jù)緩存器的容量設(shè)置為2的冪次方個存儲塊。更進(jìn)一步,對于參考兩個或兩個以上幀的預(yù)測編碼技術(shù),還可以分別緩存當(dāng)前幀的參考幀O和參考幀1的參考數(shù)據(jù),則數(shù)據(jù)緩存器27可以具體包括第一數(shù)據(jù)緩存子單元, 用于保存當(dāng)前幀的參考幀0中的參考數(shù)據(jù);第二數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀1中的參考數(shù)據(jù);相應(yīng)標(biāo)簽緩存器觀可以具體包括第一標(biāo)簽緩存子單元,用于存儲為第一數(shù)據(jù)緩存子單元各個緩存地址對應(yīng)保存的標(biāo)簽信息;第二標(biāo)簽緩存子單元,用于存儲為第二數(shù)據(jù)緩存子單元的各個緩存地址對應(yīng)保存的標(biāo)簽信息。本發(fā)明實施例提供的一種視頻處理方法,應(yīng)用于實施例一提供的視頻處理設(shè)備中,如圖2b所示,具體包括S201、解析器從視頻數(shù)據(jù)中解碼得到當(dāng)前塊的位置信息和運(yùn)動矢量信息,提供給地址生成器和參考數(shù)據(jù)讀取單元;S202:參考數(shù)據(jù)讀取單元判斷當(dāng)前塊的參考數(shù)據(jù)是否讀取完畢,判斷結(jié)果為是時, 則參考數(shù)據(jù)讀取結(jié)束,判斷結(jié)果為否時,執(zhí)行步驟S203 ;S203、緩存控制器根據(jù)當(dāng)前塊的位置信息、運(yùn)動矢量確定參考數(shù)據(jù)在標(biāo)簽緩存器中的標(biāo)簽信息的地址,讀取標(biāo)簽信息;S204、緩存控制器根據(jù)標(biāo)簽信息判斷參考數(shù)據(jù)是否在數(shù)據(jù)緩存器中,判斷結(jié)果為是時,執(zhí)行步驟S205,判斷結(jié)果為否時,執(zhí)行步驟S206 ;
S205、緩存控制器指示從數(shù)據(jù)緩存器中讀取參考數(shù)據(jù);S206、地址生成器根據(jù)獲得的當(dāng)前塊的位置信息和運(yùn)動矢量信息生成參考數(shù)據(jù)在外部存儲器中的地址,并提供給參考數(shù)據(jù)讀取單元;S207、緩存控制器指示參考數(shù)據(jù)讀取單元從外部存儲器中讀取參考數(shù)據(jù)保存到數(shù)據(jù)緩存器,并為參考數(shù)據(jù)在標(biāo)簽緩存器中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元,返回步驟S202。實施例二實施例一中,將參考幀中的數(shù)據(jù)塊根據(jù)各個宏塊需要的參考塊逐步緩存到數(shù)據(jù)緩存器27中,但是當(dāng)一個宏塊行解碼完成的時候,數(shù)據(jù)緩存器27中緩存的參考數(shù)據(jù)基本上都是這一個宏塊行最右邊幾個宏塊的參考數(shù)據(jù),而對于緊接著需要解碼的下一個宏塊行的左邊幾個宏塊的參考數(shù)據(jù)可能無法在數(shù)據(jù)緩存器中找到需要的緩存數(shù)據(jù)。因此為了充分利用解碼數(shù)據(jù)在空間上的相關(guān)性,本發(fā)明實施例提供的第二種視頻解碼設(shè)備包括兩級緩存,第一級緩存的緩存控制和圖加中數(shù)據(jù)緩存器27的緩存控制原理相同,第二級緩存中緩存的是參考幀中當(dāng)前塊對應(yīng)位置周邊設(shè)定范圍內(nèi)的參考塊的參考數(shù)據(jù),這些數(shù)據(jù)是逐步從一級緩存中轉(zhuǎn)移到二級緩存中的。下面就結(jié)構(gòu)和工作原理進(jìn)行詳細(xì)說明。如圖3a所示,本發(fā)明實施例提供的具有兩級緩存的視頻處理設(shè)備包括視頻解碼器,用于對原始視頻流進(jìn)行解碼,并且解碼是以宏塊為單位進(jìn)行,以塊為基本操作對象;外部存儲器30,用于存儲參考幀數(shù)據(jù);其中,視頻解碼器包括解析器31、反量化/反變換單元32、地址生成器33、參考數(shù)據(jù)讀取單元34、運(yùn)動補(bǔ)償單元35和重建單元36,還包括一級數(shù)據(jù)緩存器371、二級數(shù)據(jù)緩存器372、一級標(biāo)簽緩存器381、二級標(biāo)簽緩存器382,其中—級數(shù)據(jù)緩存器371連接在參考數(shù)據(jù)讀取單元34和外部存儲器30之間,二級數(shù)據(jù)緩存器372連接在一級數(shù)據(jù)緩存器371和參考數(shù)據(jù)讀取單元34之間,一級標(biāo)簽緩存器 381連接參考數(shù)據(jù)讀取單元34,二級標(biāo)簽緩存器382連接在參考數(shù)據(jù)讀取單元34和一級標(biāo)簽緩存器381之間,參考數(shù)據(jù)讀取單元34還分別連接外部存儲器30、地址生成器33、一級數(shù)據(jù)緩存器371和運(yùn)動補(bǔ)償單元35,一級數(shù)據(jù)緩存器371的存儲量可以參照實施例一進(jìn)行設(shè)置,二級數(shù)據(jù)緩存器的存儲塊的大小可與一級數(shù)據(jù)緩存器中的存儲塊一致,以YUV420 格式為例,二級數(shù)據(jù)緩存器的存儲量需保存完整的偶數(shù)行的視頻數(shù)據(jù)(包括亮度和色度數(shù)據(jù)),但是一般設(shè)置為16 32像素行即可,而偶數(shù)行主要是為了考慮到Y(jié)UV420格式的視頻色度數(shù)據(jù)為亮度數(shù)據(jù)的一半,故限制為偶數(shù)行。假如該視頻解碼器支持的最大水平分辨率為1920的YUV420的視頻,可以把二級數(shù)據(jù)緩存設(shè)置保存M像素行的容量,即共需要 (1920x24+1920x12)/(16x2) = 2060個存儲塊的容量)。下面詳細(xì)描述數(shù)據(jù)緩存原理。參考數(shù)據(jù)讀取單元34中的緩存控制器,用于判斷當(dāng)前塊的參考數(shù)據(jù)是否在一級數(shù)據(jù)緩存器或二級數(shù)據(jù)緩存器中,是則指示參考數(shù)據(jù)讀取單元從一級數(shù)據(jù)緩存器或二級數(shù)據(jù)緩存器讀取參考數(shù)據(jù),并提供給運(yùn)動補(bǔ)償單元;否則進(jìn)一步判斷在一級數(shù)據(jù)緩存器中的參考數(shù)據(jù)是否有效且該參考數(shù)據(jù)位于二級數(shù)據(jù)緩存器的覆蓋范圍內(nèi),是則把該參考數(shù)據(jù)更新到二級數(shù)據(jù)緩存器地址中,然后從外部存儲器中讀取參考數(shù)據(jù)保存到一級數(shù)據(jù)緩存器地址中,并為參考數(shù)據(jù)在一級標(biāo)簽緩存器中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元;否則,從外部存儲器中讀取參考數(shù)據(jù)保存到一級數(shù)據(jù)緩存器,并為參考數(shù)據(jù)在一級標(biāo)簽緩存器中標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元;其中,緩存控制器根據(jù)當(dāng)前塊的位置信息和運(yùn)動矢量,確定當(dāng)前塊的參考數(shù)據(jù)在一級標(biāo)簽緩存器中的地址和二級標(biāo)簽緩存器中的地址,讀取標(biāo)簽信息,根據(jù)標(biāo)簽信息判斷當(dāng)前塊的參考數(shù)據(jù)是否在一級標(biāo)簽緩存器中或二級標(biāo)簽緩存器中。一級數(shù)據(jù)緩存器中的參考數(shù)據(jù)有效即是指該當(dāng)前塊的參考數(shù)據(jù)在一級數(shù)據(jù)緩存器中的緩存地址相應(yīng)的存儲塊非空閑,即相應(yīng)的緩存地址對應(yīng)存儲了參考數(shù)據(jù)。當(dāng)前塊對應(yīng)位置周邊設(shè)定范圍即二級數(shù)據(jù)緩存器372中存儲數(shù)據(jù)的覆蓋范圍,可預(yù)先設(shè)定,優(yōu)選的可盡量覆蓋當(dāng)前塊的上一個宏塊行。當(dāng)解碼完成當(dāng)前塊后,即可把二級緩存器中上半部分中最左邊的一個宏塊大小的所有存儲塊的有效性標(biāo)簽全部清零。也就是說,二級緩存器覆蓋的區(qū)域在當(dāng)前塊解碼完成后進(jìn)行更新,即上半部分的左邊逐漸退縮,而下半部分的右邊逐漸增長。在本實施例中,當(dāng)前塊對應(yīng)位置的周邊設(shè)定范圍示例如圖北所示,更新前的塊被更新后的塊替代。其中,緩存控制器,還在當(dāng)前塊解碼結(jié)束后,進(jìn)行下一個宏塊解碼之前,把二級數(shù)據(jù)緩存器中將來參考可能性最低的參考數(shù)據(jù)的標(biāo)簽信息清零,以保證數(shù)據(jù)讀取的正確性; 所謂將來參考可能性最低的參考數(shù)據(jù)的標(biāo)簽信息即是未在參考幀中下一個宏塊對應(yīng)位置周邊設(shè)定范圍內(nèi)的參考數(shù)據(jù)的二級緩存地址對應(yīng)的標(biāo)簽信息。如果需要緩存兩個參考幀的數(shù)據(jù),則一級數(shù)據(jù)緩存器371可以具體包括第一一級數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀0中的數(shù)據(jù);第二一級數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀1中的數(shù)據(jù);當(dāng)然也可以用單個一級數(shù)據(jù)緩存器中實現(xiàn),一半的存儲塊保存當(dāng)前幀的參考幀0中的數(shù)據(jù), 另一半保存當(dāng)前幀的參考幀1中的數(shù)據(jù);二級數(shù)據(jù)緩存器372可以具體包括第一二級數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀0中的數(shù)據(jù);第二二級數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀1中的數(shù)據(jù);當(dāng)然也可以用單個二級數(shù)據(jù)緩存器中實現(xiàn),一半的存儲塊保存當(dāng)前幀的參考幀0中的數(shù)據(jù); 另一半保存當(dāng)前幀的參考幀1中的數(shù)據(jù);對應(yīng)的,一級標(biāo)簽緩存器381可以具體包括第一一級標(biāo)簽緩存子單元用于存儲為第一一級數(shù)據(jù)緩存子單元各個緩存地址對應(yīng)保存的標(biāo)簽信息;第二一級標(biāo)簽緩存子單元,用于存儲為第二一級數(shù)據(jù)緩存子單元的各個緩存地址對應(yīng)保存的標(biāo)簽信息;二級標(biāo)簽緩存器382可以具體包括第一二級標(biāo)簽緩存子單元用于存儲為第一二級數(shù)據(jù)緩存子單元各個緩存地址對應(yīng)保存的標(biāo)簽信息;第二二級標(biāo)簽緩存子單元,用于存儲為第二二級數(shù)據(jù)緩存子單元的各個緩存地址對應(yīng)保存的標(biāo)簽信息。一級數(shù)據(jù)緩存器和二級數(shù)據(jù)緩存器均以塊為單位,一般而言塊可以設(shè)置為一個宏塊的一部分,如16x2個數(shù)據(jù)。所述一級數(shù)據(jù)緩存器的容量為2的冪次方個塊,如266個塊; 所述二級數(shù)據(jù)緩存器需適于存放最大支持視頻的水平分辨率的整數(shù)行的數(shù)據(jù)(包括亮度和色度)。存儲參考塊的參考數(shù)據(jù)的一級數(shù)據(jù)緩存器可以與存儲標(biāo)簽信息的一級標(biāo)簽緩存器在同一個緩存器中,二級數(shù)據(jù)緩存器可以與存儲標(biāo)簽信息的二級標(biāo)簽緩存器在同一個緩存器中。
本發(fā)明實施例中,一級數(shù)據(jù)緩存器371的每一個標(biāo)簽信息的大小根據(jù)支持的最大視頻分辨率、存儲塊大小、一級數(shù)據(jù)緩存器的容量確定,例如在最大支持1920x1088的 YUV420視頻,存儲塊設(shè)置為16x2,一級數(shù)據(jù)緩存器容量為256個存儲塊時,最大的標(biāo)簽信息數(shù)值為383,故可以把標(biāo)簽信息設(shè)置為9比特,當(dāng)然如果一級數(shù)據(jù)緩存器設(shè)置為可能緩存更多參考幀的數(shù)據(jù),則需要擴(kuò)大標(biāo)簽信息的位寬。如圖3c所示,本發(fā)明實施例還提供一種視頻處理方法,應(yīng)用于實施例二提供的視頻處理設(shè)備中,具體包括S301、解析器從原始視頻碼流中解碼獲得當(dāng)前塊的位置信息和運(yùn)動矢量信息,提供給地址生成器和參考數(shù)據(jù)讀取單元;S302、參考數(shù)據(jù)讀取單元判斷參考數(shù)據(jù)是否讀取完畢,判斷結(jié)果為是時,執(zhí)行步驟 S311,判斷結(jié)果為否時,執(zhí)行步驟S303 ;S303、緩存控制器根據(jù)當(dāng)前塊的位置信息、運(yùn)動矢量信息確定參考數(shù)據(jù)在一級標(biāo)簽緩存器中的地址和二級標(biāo)簽緩存器中的地址,讀取標(biāo)簽信息;S304、根據(jù)標(biāo)簽信息判斷當(dāng)前塊的參考數(shù)據(jù)是否在一級數(shù)據(jù)緩存器或二級數(shù)據(jù)緩存器中,判斷結(jié)果為是時,執(zhí)行步驟S305,判斷結(jié)果為否時,執(zhí)行步驟S307 ;S305、確定參考數(shù)據(jù)在一級數(shù)據(jù)緩存器和二級數(shù)據(jù)緩存器中的地址;S306、指示參考數(shù)據(jù)讀取單元從一級數(shù)據(jù)緩存器或二級數(shù)據(jù)緩存器中讀取參考數(shù)據(jù)并提供給運(yùn)動補(bǔ)償單元,返回步驟S302 ;S307、進(jìn)一步判斷在一級數(shù)據(jù)緩存器中的參考數(shù)據(jù)是否有效且該參考數(shù)據(jù)是否位于二級數(shù)據(jù)緩存器地址覆蓋范圍內(nèi),判斷結(jié)果為是則執(zhí)行步驟S308,判斷結(jié)果為否,則執(zhí)行步驟S310 ;S308、將該參考數(shù)據(jù)更新到二級數(shù)據(jù)緩存器的緩存地址中,并把標(biāo)簽信息更新到二級標(biāo)簽緩存器地址中;S309、地址生成器根據(jù)獲得的當(dāng)前塊的位置信息和運(yùn)動矢量生成參考數(shù)據(jù)在外部存儲器中的地址,提供給參考數(shù)據(jù)讀取單元;S310、參考數(shù)據(jù)讀取單元從外部存儲器中讀取參考數(shù)據(jù)保存到一級數(shù)據(jù)緩存器, 并為參考數(shù)據(jù)在一級標(biāo)簽緩存器中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元,執(zhí)行步驟S302 ;S311、緩存控制器判斷當(dāng)前宏塊的所有塊的參考數(shù)據(jù)是否讀取完畢,判斷結(jié)果為是時,執(zhí)行步驟S312,判斷結(jié)果為否時,執(zhí)行步驟S313 ;S312、緩存控制器把二級數(shù)據(jù)緩存器中將來參考可能性最低的參考數(shù)據(jù)的標(biāo)簽清零,執(zhí)行步驟S313 ;S313、參考數(shù)據(jù)讀取結(jié)束。本發(fā)明實施例與背景技術(shù)中相比,本發(fā)明實施例只需要較小的緩存器容量即可有效節(jié)省帶寬并加快解碼速度;而且本發(fā)明實施例對于運(yùn)動矢量較大的畫面,一級數(shù)據(jù)緩存可以彌補(bǔ)參考塊數(shù)據(jù)不在二級數(shù)據(jù)緩存覆蓋區(qū)域內(nèi)的不足,也可以達(dá)到一定的節(jié)省帶寬的效果。當(dāng)然,也可以只保留一級數(shù)據(jù)緩存省掉二級數(shù)據(jù)緩存以節(jié)省電路面積。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明實施例進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種視頻處理設(shè)備,包括視頻解碼器和外部存儲器,所述視頻解碼器用于對原始視頻碼流進(jìn)行解碼,所述解碼以宏塊為單位進(jìn)行,以塊為基本操作對象;所述視頻解碼器包括解析器、地址生成器、參考數(shù)據(jù)讀取單元、運(yùn)動補(bǔ)償單元,其特征在于所述視頻解碼器還包括數(shù)據(jù)緩存器、標(biāo)簽緩存器;所述參考數(shù)據(jù)讀取單元包括緩存控制器;所述解析器,用于從原始視頻碼流中解碼獲得當(dāng)前塊的位置信息和運(yùn)動矢量,提供給所述地址生成器和參考數(shù)據(jù)讀取單元;所述地址生成器,用于根據(jù)獲得的當(dāng)前塊的位置信息和運(yùn)動矢量,生成當(dāng)前塊的參考數(shù)據(jù)在外部存儲器中的地址提供給參考數(shù)據(jù)讀取單元;所述數(shù)據(jù)緩存器用于保存參考數(shù)據(jù);所述標(biāo)簽緩存器用于保存參考數(shù)據(jù)的標(biāo)簽信息;所述緩存控制器,用于判斷當(dāng)前塊的參考數(shù)據(jù)是否在數(shù)據(jù)緩存器中,是則指示參考數(shù)據(jù)讀取單元從所述數(shù)據(jù)緩存器中讀取參考數(shù)據(jù)并提供給運(yùn)動補(bǔ)償單元;否則指示參考塊數(shù)據(jù)讀取單元從外部存儲器中讀取參考數(shù)據(jù)保存到數(shù)據(jù)緩存器,并為參考數(shù)據(jù)在標(biāo)簽緩存器中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元。
2.根據(jù)權(quán)利要求1所述的視頻處理設(shè)備,其特征在于,所述緩存控制器用于判斷當(dāng)前塊的參考數(shù)據(jù)是否在數(shù)據(jù)緩存器中,是根據(jù)當(dāng)前塊的位置信息和運(yùn)動矢量,確定當(dāng)前塊的參考數(shù)據(jù)在標(biāo)簽緩存器中的地址,讀取標(biāo)簽信息,根據(jù)標(biāo)簽信息判斷當(dāng)前塊的參考數(shù)據(jù)是否在數(shù)據(jù)緩存器中。
3.根據(jù)權(quán)利要求1所述的視頻處理設(shè)備,其特征在于,所述數(shù)據(jù)緩存器具體包括第一數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀0中的數(shù)據(jù);第二數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀1中的數(shù)據(jù);以及所述標(biāo)簽緩存器具體包括第一標(biāo)簽緩存子單元,用于存儲為第一數(shù)據(jù)緩存子單元各個緩存地址對應(yīng)保存的標(biāo)簽信息;第二標(biāo)簽緩存子單元,用于存儲為第二數(shù)據(jù)緩存子單元的各個緩存地址對應(yīng)保存的標(biāo)簽信息。
4.一種視頻處理方法,應(yīng)用于一種視頻處理設(shè)備中,所述視頻處理設(shè)備包括視頻解碼器和外部存儲器,所述視頻解碼器用于對原始視頻碼流進(jìn)行解碼,所述解碼以宏塊為單位進(jìn)行,以塊為基本操作對象;所述視頻解碼器包括解析器、地址生成器、參考數(shù)據(jù)讀取單元、 運(yùn)動補(bǔ)償單元;所述視頻解碼器還包括數(shù)據(jù)緩存器、標(biāo)簽緩存器;所述參考數(shù)據(jù)讀取單元包括緩存控制器;該視頻處理方法包括A.所述解析器從原始視頻碼流中解碼獲得當(dāng)前塊的位置信息和運(yùn)動矢量,提供給所述地址生成器和參考數(shù)據(jù)讀取單元;B.所述參考數(shù)據(jù)讀取單元判斷當(dāng)前塊的參考數(shù)據(jù)是否讀取完畢;C.是則結(jié)束參考數(shù)據(jù)讀?。环駝t所述緩存控制器根據(jù)當(dāng)前塊的位置信息、運(yùn)動矢量確定當(dāng)前塊的參考數(shù)據(jù)在標(biāo)簽緩存器中的地址,讀取標(biāo)簽信息,并根據(jù)標(biāo)簽信息判斷當(dāng)前塊的參考數(shù)據(jù)是否在數(shù)據(jù)緩存器中,是則指示參考數(shù)據(jù)讀取單元從所述數(shù)據(jù)緩存器中讀取參考數(shù)據(jù)并提供給運(yùn)動補(bǔ)償單元;否則執(zhí)行地址生成器根據(jù)獲得的當(dāng)前塊的位置信息和運(yùn)動矢量生成參考數(shù)據(jù)在外部存儲器中的地址,提供給參考塊數(shù)據(jù)讀取單元;并指示參考數(shù)據(jù)讀取單元從外部存儲器中讀取參考數(shù)據(jù)保存到數(shù)據(jù)緩存器,并為參考數(shù)據(jù)在標(biāo)簽緩存器中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元;返回執(zhí)行步驟B。
5.一種視頻處理設(shè)備,包括視頻解碼器和外部存儲器,所述視頻解碼器用于對原始視頻碼流進(jìn)行解碼,所述解碼以宏塊為單位進(jìn)行,以塊為基本操作對象;所述視頻解碼器包括解析器、地址生成器、參考數(shù)據(jù)讀取單元、運(yùn)動補(bǔ)償單元,其特征在于所述視頻解碼器還包括一級數(shù)據(jù)緩存器、一級標(biāo)簽緩存器、二級數(shù)據(jù)緩存器、二級標(biāo)簽緩存器;所述一級數(shù)據(jù)緩存器、二級數(shù)據(jù)緩存器用于保存參考數(shù)據(jù);所述一級標(biāo)簽緩存器、二級標(biāo)簽緩存器用于保存參考數(shù)據(jù)的標(biāo)簽信息;所述解析器,用于從原始視頻碼流中解碼獲得當(dāng)前塊的位置信息和運(yùn)動矢量,提供給所述地址生成器和參考數(shù)據(jù)讀取單元;所述地址生成器,用于根據(jù)獲得的當(dāng)前塊的位置信息和運(yùn)動矢量,生成當(dāng)前塊的參考數(shù)據(jù)在外部存儲器中的地址,并提供給參考數(shù)據(jù)讀取單元;所述參考數(shù)據(jù)讀取單元包括緩存控制器;所述緩存控制器,用于判斷當(dāng)前塊的參考數(shù)據(jù)是否在一級數(shù)據(jù)緩存器或二級數(shù)據(jù)緩存器中,是則指示參考數(shù)據(jù)讀取單元從所述一級數(shù)據(jù)緩存器或所述二級數(shù)據(jù)緩存器讀取參考數(shù)據(jù),并提供給運(yùn)動補(bǔ)償單元;否則進(jìn)一步判斷在一級數(shù)據(jù)緩存器中的參考數(shù)據(jù)是否有效且該參考數(shù)據(jù)位于二級數(shù)據(jù)緩存器的覆蓋范圍內(nèi),是則把該參考數(shù)據(jù)更新到二級數(shù)據(jù)緩存器地址中,然后從外部存儲器中讀取參考數(shù)據(jù)保存到一級數(shù)據(jù)緩存器地址中,并為參考數(shù)據(jù)在一級標(biāo)簽緩存器中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元;否則, 從外部存儲器中讀取參考數(shù)據(jù)保存到一級數(shù)據(jù)緩存器,并為參考數(shù)據(jù)在一級標(biāo)簽緩存器中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元。
6.根據(jù)權(quán)利要求5所述的視頻處理設(shè)備,其特征在于,所述緩存控制器用于判斷當(dāng)前塊的參考數(shù)據(jù)是否在數(shù)據(jù)緩存器中,是根據(jù)當(dāng)前塊的位置信息和運(yùn)動矢量,確定當(dāng)前塊的參考數(shù)據(jù)在一級標(biāo)簽緩存器中的地址和二級標(biāo)簽緩存器中的地址,讀取標(biāo)簽信息,根據(jù)標(biāo)簽信息判斷當(dāng)前塊的參考數(shù)據(jù)是否在一級數(shù)據(jù)緩存器中或二級數(shù)據(jù)緩存器中。
7.根據(jù)權(quán)利要求6所述的視頻處理設(shè)備,其特征在于,所述緩存控制器,還用于在當(dāng)前宏塊的所有塊的參考數(shù)據(jù)讀取完畢后,將二級數(shù)據(jù)緩存器中將來參考可能性最低的參考數(shù)據(jù)的標(biāo)簽清零。
8.如權(quán)利要求5、6或7所述的視頻處理設(shè)備,其特征在于所述一級數(shù)據(jù)緩存器具體包括第一一級數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀 0中的數(shù)據(jù);第二一級數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀1中的數(shù)據(jù);所述二級數(shù)據(jù)緩存器具體包括第一二級數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀 0中的數(shù)據(jù);第二二級數(shù)據(jù)緩存子單元,用于保存當(dāng)前幀的參考幀1中的數(shù)據(jù)。
9.一種視頻處理方法,應(yīng)用于一種視頻處理設(shè)備中,所述視頻處理設(shè)備包括視頻解碼器和外部存儲器,所述視頻解碼器用于對原始視頻碼流進(jìn)行解碼,所述解碼以宏塊為單位進(jìn)行,以塊為基本操作對象;所述視頻解碼器包括解析器、地址生成器、參考數(shù)據(jù)讀取單元、 運(yùn)動補(bǔ)償單元;所述視頻解碼器還包括一級數(shù)據(jù)緩存器、一級標(biāo)簽緩存器、二級數(shù)據(jù)緩存器、二級標(biāo)簽緩存器;所述參考數(shù)據(jù)讀取單元包括緩存控制器;該視頻處理方法包括A.所述解析器從原始視頻碼流中解碼獲得當(dāng)前塊的位置信息和運(yùn)動矢量,提供給所述地址生成器和參考數(shù)據(jù)讀取單元;B.所述參考數(shù)據(jù)讀取單元判斷參考數(shù)據(jù)是否讀取完畢;C.是則執(zhí)行步驟E;D.否則所述緩存控制器根據(jù)當(dāng)前塊的位置信息、運(yùn)動矢量確定參考數(shù)據(jù)在一級標(biāo)簽緩存器中的地址和二級標(biāo)簽緩存器中的地址,讀取標(biāo)簽信息;并根據(jù)標(biāo)簽信息判斷當(dāng)前塊的參考數(shù)據(jù)是否在一級數(shù)據(jù)緩存器或二級數(shù)據(jù)緩存器中,是則確定參考數(shù)據(jù)在一級數(shù)據(jù)緩存器和二級數(shù)據(jù)緩存器中的地址,指示參考數(shù)據(jù)讀取單元從所述一級數(shù)據(jù)緩存器或二級數(shù)據(jù)緩存器中讀取參考數(shù)據(jù)并提供給運(yùn)動補(bǔ)償單元,返回執(zhí)行步驟B ;否則進(jìn)一步判斷在一級數(shù)據(jù)緩存器中的參考數(shù)據(jù)是否有效且該參考數(shù)據(jù)位于二級數(shù)據(jù)緩存器地址覆蓋范圍內(nèi),是則把該參考數(shù)據(jù)更新到二級數(shù)據(jù)緩存器的緩存地址中;地址生成器根據(jù)獲得的當(dāng)前塊的位置信息和運(yùn)動矢量生成參考數(shù)據(jù)在外部存儲器中的地址,提供給參考塊數(shù)據(jù)讀取單元;然后從外部存儲器中讀取參考數(shù)據(jù)保存到一級數(shù)據(jù)緩存器,并為參考數(shù)據(jù)在一級標(biāo)簽緩存器中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元,執(zhí)行步驟B ;否則,從外部存儲器中讀取參考數(shù)據(jù)保存到一級數(shù)據(jù)緩存器,并為參考數(shù)據(jù)在一級標(biāo)簽緩存器中保存標(biāo)簽信息,同時把讀取的參考數(shù)據(jù)提供給運(yùn)動補(bǔ)償單元;執(zhí)行步驟B ;E.所述緩存控制器判斷當(dāng)前宏塊的所有塊的參考數(shù)據(jù)是否讀取完畢,是則把二級數(shù)據(jù)緩存器中將來參考可能性最低的參考數(shù)據(jù)的標(biāo)簽清零,執(zhí)行步驟F ;否則執(zhí)行步驟F ;F.參考數(shù)據(jù)讀取結(jié)束。
全文摘要
本發(fā)明涉及視頻處理領(lǐng)域,特別涉及一種視頻解碼技術(shù),提供一種用于對基于塊的預(yù)測編碼技術(shù)獲得的編碼數(shù)據(jù)進(jìn)行解碼的視頻處理設(shè)備和方法,用以實現(xiàn)根據(jù)外部存儲器帶寬的節(jié)省需求,靈活設(shè)定數(shù)據(jù)緩存器的類型及存儲塊,來達(dá)到節(jié)省外部存儲器帶寬和加快解碼速度的目的。
文檔編號H04N7/30GK102340662SQ20101023666
公開日2012年2月1日 申請日期2010年7月22日 優(yōu)先權(quán)日2010年7月22日
發(fā)明者蔡建華 申請人:炬才微電子(深圳)有限公司