專利名稱:一種基于可重構(gòu)技術(shù)的mpeg2亮度插值的實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種嵌入式視頻解碼領(lǐng)域的方法,具體的說,涉及的是一種基于可重構(gòu)技術(shù)的MPEG2亮度插值的實現(xiàn)方法。
背景技術(shù):
隨著視頻標準的發(fā)展,視頻壓縮的效果和性能越來越好,但其復雜度和計算量也大大增加。相應的,在解碼端要實現(xiàn)實時解碼,對硬件的數(shù)據(jù)并行性和計算效率提出了很高的要求。MPEG2是運動圖像專家組于1994年發(fā)布的視頻和音頻壓縮國際標準,經(jīng)過了多年的修訂與完善,現(xiàn)在MPEG2已經(jīng)非常成熟,在數(shù)字廣播電視、衛(wèi)星轉(zhuǎn)播,DVD產(chǎn)品、高清影像等領(lǐng)域有著廣闊的應用,雖然更新的MPEG4標準已經(jīng)發(fā)布,但是MPEG2的市場占有率較高,仍然有很高的研究和應用價值。運動估計是去除視頻中各幀的時間相關(guān)性,增大視頻編碼壓縮率的重要方法。在編碼端,要進行幀間預測,就是根據(jù)相鄰幀的相似性,按照一定的搜索算法,找到相鄰幀中相似的塊,用運動矢量來標識,再將運動矢量經(jīng)過熵編碼壓縮。在解碼端,相應的需要進行運動補償,根據(jù)解碼出來的運動矢量,找到當前幀在參考幀中最相近的塊,恢復出編碼前的圖像數(shù)據(jù)。由于自然物體運動的連續(xù)性,采用整數(shù)像素點來進行幀間預測往往不能找到匹配的很好的圖像塊。因此,一般采用將整數(shù)點像素進行插值,得到分數(shù)點像素再進行幀間預測,實驗證明,這可以大大提高幀間預測的準確度和編碼效率。在解碼端,要恢復圖像,同樣需要先做插值得到分數(shù)像素點的樣本值。MPEG2中運動補償使用的是1/2像素精度,所以有三種插值的位置,如圖1所示, (圖中圓形的是整數(shù)像素點,正方形的是行和列的1/2像素點,三角形的是中間的1/2像素點,箭頭上的數(shù)字為插值時整數(shù)點樣本值的權(quán)重),分別為
1.行方向1/2像素插值對水平方向相鄰的兩個整數(shù)像素的值取平均值。2.列方向1/2像素插值對垂直方向相鄰的兩個整數(shù)像素的值取平均值。3.中間1/2像素插值對水平方向相鄰的兩個整數(shù)像素和垂直方向相鄰的兩個整數(shù)像素,共四個像素點的值取平均值。MPEG2解碼時,亮度是按照8 X 8的塊為單位進行,在插值的時候,要得到8 X 8塊的所有三種分數(shù)像素點的亮度插值數(shù)據(jù),需要輸入9X9的塊數(shù)據(jù),如圖2所示,也即多輸入一行和一列的數(shù)據(jù)。傳統(tǒng)上,執(zhí)行一個算法的方式主要有兩種通用處理器和專用集成電路(ASIC: Application Specific Integrated Circuit)。通用處理器可以通過軟件編程來執(zhí)行各種算法,十分靈活,但是在性能、功耗和面積上往往不能達到要求。而ASIC是針對特定算法進行設(shè)計,可以達到很高的性能,同時面積和功耗也比較小,但是不能執(zhí)行別的算法,靈活性差。而且設(shè)計ASIC需要完成一系列復雜的流程,研發(fā)周期很長,經(jīng)常難以滿足產(chǎn)品上市時
4間的要求,同時研發(fā)費用很高,特別是隨著芯片工藝尺寸的縮小,成本更是成倍增加。因此對一種新的計算技術(shù)的需求十分迫切??芍貥?gòu)計算技術(shù)就是在這種背景下出現(xiàn)的,目的是填補兩者之間的空白,在性能和靈活性上做一個折中??芍貥?gòu)計算的核心部分是多個功能單元組成的陣列,并且有靈活的互聯(lián)連接它們。根據(jù)功能單元的粒度大小,可以分為細粒度和粗粒度陣列。FPGA是一種典型的細粒度可重構(gòu)陣列,以查找表為最小粒度單元,其出現(xiàn)較早,比較成熟,現(xiàn)在有著很廣泛的應用。但是隨著算法的規(guī)模和復雜度增加,F(xiàn)PGA的單元數(shù)量和互聯(lián)面積劇增,同時功耗增大。粗粒度陣列一般以字長寬度的算術(shù)邏輯單元(Arithmetic Logic Unit)為最小粒度單元,非常適合大規(guī)模計算密集型的應用,例如視頻編解碼、圖像處理、無線通信和數(shù)據(jù)加密等。
發(fā)明內(nèi)容
本發(fā)明的目的是針對現(xiàn)有技術(shù)的不足,提出一種基于可重構(gòu)技術(shù)的MPEG2亮度插值的實現(xiàn)方法,利用可重構(gòu)陣列,加速MPEG2標準亮度插值算法的執(zhí)行,更好的滿足實時解碼的需求。本發(fā)明是通過以下的技術(shù)方案實現(xiàn)的,本發(fā)明一種基于可重構(gòu)技術(shù)的MPEG2亮度插值的實現(xiàn)方法,包括以下步驟
首先,進行算法分析,根據(jù)MPEG2亮度插值的定義設(shè)計出DR; (Data Flow Graph,數(shù)據(jù)流圖),得到算法的數(shù)據(jù)傳輸需求;
其次,根據(jù)算法分析的結(jié)果和可重構(gòu)陣列的架構(gòu),對數(shù)據(jù)流圖進行分割和映射,設(shè)計出最優(yōu)的數(shù)據(jù)傳輸?shù)姆桨福?br>
然后,根據(jù)上面兩步的結(jié)果,利用配置工具,生成可重構(gòu)陣列的配置字; 最后,通過ARM處理器將配置信息載入到可重構(gòu)陣列的配置信息存儲器中,以此將可重構(gòu)陣列配置成為一個專用于執(zhí)行MPEG2亮度插值的加速模塊。
所述根據(jù)MPEG2亮度插值的定義設(shè)計出DTO,具體如下
計算行和列的1/2像素插值的Dre是一致的,要得到1個插值點的樣本值,需要輸入2 個整數(shù)樣本值,做1次加法和1次移位;
計算中間的1/2像素點的插值的Dre有4個節(jié)點,要得到1個插值點的樣本值,需要輸入4個樣本值,做3次加法和1次移位。所述對數(shù)據(jù)流圖進行分割和映射,具體是指可重構(gòu)陣列有64個計算單元,計算1 個行或列的1/2像素樣本值的Dre有2個節(jié)點,對Dre進行擴充,映射到64個節(jié)點,即可以并行計算出32個行或列的1/2像素樣本值,由于需要相鄰塊的整數(shù)像素點樣本值以及整數(shù)像素樣本值的復用,1次需要輸入個36整數(shù)像素樣本值,采用按行輸入(計算行的1/2像素樣本值)和按列輸入(計算列的1/2像素樣本值)的方式,則1次需要輸入4行或4列的整數(shù)像素樣本值,完成1個8X8塊數(shù)據(jù)的行或列的1/2像素插值需要循環(huán)2次;
計算中間的1/2像素樣本值的Dre有4個節(jié)點,對其進行擴充,映射到32個節(jié)點,即可以并行計算出8個中間的1/2像素的樣本值,由于需要相鄰塊的整數(shù)像素點樣本值以及整數(shù)像素樣本值的復用,1次需要輸入45個整數(shù)像素樣本值,采用按行輸入的方式,1次需要輸入5行的整數(shù)像素點數(shù)據(jù),完成1個8X8塊數(shù)據(jù)的中間1/2像素插值需要循環(huán)8次;
輸入數(shù)據(jù),也即8X8塊數(shù)據(jù)存儲在SRAM中,可重構(gòu)陣列開始運行后,將其載入陣列的輸入FIFO中,陣列的計算單元從輸入FIFO中讀入數(shù)據(jù)進行計算,然后將輸出數(shù)據(jù)寫入陣列的輸出FIFO中,然后將輸出數(shù)據(jù)寫入SRAM的指定位置,然后繼續(xù)取出下一個輸入數(shù)據(jù),重復以上過程。所述可重構(gòu)陣列是通過配置字來控制的。所述可重構(gòu)陣列的配置字,包括數(shù)據(jù)的讀取和寫入模塊,計算單元的數(shù)據(jù)來源和操作碼,可配置的模塊都有一個配置字的FIFO,運行時從中取出配置字并執(zhí)行,配置字是一串二進制的數(shù)字。所述可重構(gòu)陣列的配置字,以32位為單位,大小與模塊的功能有關(guān),可配置部分包括REDL、CEDL, RCA、CEDS, CIDL、REDS、RIDL。配置字通過一個配置工具輔助手工生成,按照上一步得到的結(jié)果,得到一系列的二進制文件。所述通過ARM處理器將配置信息載入到可重構(gòu)陣列的配置信息存儲器中,具體是指配置信息存儲在片上的ROM或者片外的存儲設(shè)備(如SD卡)中,在系統(tǒng)運行開始時,主核ARM處理器執(zhí)行系統(tǒng)的初始化程序,這些配置字二進制文件被寫入到可重構(gòu)陣列內(nèi)專門用于存儲配置字的RAM或者FIFO中,然后ARM處理器使能可重構(gòu)陣列,可重構(gòu)陣列讀取配置字并開始計算,這樣可重構(gòu)陣列就專門用于MPEG2亮度插值,成為一個專用模塊。本發(fā)明所采用的可重構(gòu)陣列是一個片上系統(tǒng)(S0C: System on Chip),主要包括了主處理器(ARM7),直接存儲器存取控制器(DMAC :Direct Memory Access Controller), 片上靜態(tài)隨機存儲器(SRAM :Static Random Access Memory),兩條片上總線(包括自定義的i^ist Bus和工業(yè)標準總線AHB),一個可重構(gòu)處理單元(RPU),ARM處理器是系統(tǒng)的主核, 負責系統(tǒng)的初始化和整體控制,DMAC負責從片外的存儲器讀取數(shù)據(jù),RPU是可重構(gòu)處理的主要部件,AHB總線是32位系統(tǒng)總線,F(xiàn)ast總線是64位的存儲器總線。 Mpeg2亮度插值需要處理的數(shù)據(jù),以8 X 8的塊為單位存儲在SRAM中,若視頻分辨率為Dl (704X576),則每幀圖像包含6336個塊。RPU內(nèi)部有四個相對獨立的8X8的計算單元陣列,為了充分發(fā)揮RPU的并行性,本發(fā)明采用的執(zhí)行模式為第一個計算單元陣列計算行的1/2像素,第二個計算單元陣列計算列的1/2像素,第三個和第四個計算單元陣列共同計算中間的1/2像素,各個計算單元陣列并行執(zhí)行,沒有數(shù)據(jù)依賴關(guān)系。整個執(zhí)行過程為首先,亮度插值需要用到的9X9的輸入數(shù)據(jù)從SRAM中載入到 RPU中。然后,這些數(shù)據(jù)被分發(fā)到各個計算單元中,根據(jù)事先載入的配置進行計算,經(jīng)過多次循環(huán)后,得到三種1/2像素的8X8的塊數(shù)據(jù)。最后按照配置的地址寫入到SRAM中去。然后繼續(xù)取出下一個8X8的輸入數(shù)據(jù)進行插值,直到一幀所有的數(shù)據(jù)都處理完,向ARM發(fā)出中斷,等待下一次的配置。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果本發(fā)明的基于可重構(gòu)技術(shù)來實現(xiàn) Mpeg2亮度插值的方法,在RPU的寄存器傳輸級(RTL)平臺上進行了仿真,得到了執(zhí)行1個塊的亮度插值的周期數(shù)為183。同樣的方法,使用軟件編程,在ARM7TDMI的周期精確級平臺進行了仿真,執(zhí)行的周期數(shù)為4816。可以得到性能的加速比為26. 32,可見使用可重構(gòu)技術(shù)來執(zhí)行MPEG2亮度插值要優(yōu)于純軟件的方式,可以更好的滿足視頻解碼的實時性要求。而且相比ASIC,僅需要根據(jù)算法得到一整套配置就可以運行,不需要經(jīng)過復雜的芯片設(shè)計過程,可以大大的節(jié)省開發(fā)時間和開發(fā)費用,實用性很高。
圖1為MPEG2插值的原理圖2為計算8X8塊的三種亮度插值數(shù)據(jù)所需要輸入的9X9的塊數(shù)據(jù)示意圖; 圖3為基于MPEG2亮度插值算法的可重構(gòu)實現(xiàn)方法所采用的可重構(gòu)系統(tǒng)結(jié)構(gòu)框圖; 圖4為從MPEG2亮度插值映射到RCA上的數(shù)據(jù)流圖; 圖5為MPEG2亮度插值執(zhí)行過程中一個塊數(shù)據(jù)傳輸示意圖; 圖6為片上SOC系統(tǒng)的示意圖。
具體實施例方式下面對本發(fā)明的實施例作詳細說明,本實施例以本發(fā)明技術(shù)方案為前提進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述的實施例。本實施例中,可重構(gòu)處理單元是核心部分,其內(nèi)部結(jié)構(gòu)如圖3所示,下面對其簡要說明。在RPU內(nèi)部,所有存儲器和先入先出隊列的寬度都是256位,各個模塊的數(shù)據(jù)端口也是256位。RPU和ARM通過32位AHB總線進行通信。SRAM通過一個存儲器接口(EMI External Memory hterface)和64位的Fast總線與RPU通信。RPU內(nèi)部又分為4個可重構(gòu)陣列(RCA: Reconfigurable Cell Array),每個陣列包括了 64個處理單元(ΡΕ processing Element),按照8X8的形式排列,這樣整個RPU共有256個ΡΕ。RPU內(nèi)部還包括一個系統(tǒng)配置接口模塊(Cl Configuration Interface),用于配置字的傳輸以及RPU與ARM的控制交互;一個SRAM數(shù)據(jù)的讀取和存儲模塊(REDT RCA External Data iTransfer),內(nèi)部包含讀模塊(REDL: RCA External Data Load)禾口寫模塊(REDS: RCA External Data Store),為 4個RCA提供SRAM數(shù)據(jù)的傳輸功能;RPU中間數(shù)據(jù)存儲器(MB: Macro Buffer)和其數(shù)據(jù)載入模塊(RIDL: RCA Internal Data Load);兩個配置字存儲器,GCCM(Glottal Core Context Memory)和GCGM(Global Context Group Memory),分別用于存儲不同層次的配置字;RPU的配置解析和控制模塊。每個RCA內(nèi)部包括外部輸入數(shù)據(jù)的先入先出隊列(ELDF: External Load Data FIFO)和向外部輸出的先入先出隊列(ESDF :External Store Data FIFO);外部數(shù)據(jù)載入單元(CEDL :Core External Data Load) ;8X8的PE陣列以及其輸入先入先出隊列(RIF:RCA Input FIFO)和輸出先入先出隊列(R0F :RCA Output FIFO);輸出數(shù)據(jù)存儲模土夬(CDS:Core Data Store) ;RCA 內(nèi)部中間數(shù)據(jù)存儲器(RIM :RCA Internal Memory)禾口內(nèi)部數(shù)據(jù)載入單元(CIDL :Core Internal Data Load) ;RCA本地配置字存儲器(LGCM :Local Context Group Memory)和常數(shù)存儲器(CM :Constant Memory) ;RCA的配置字解析模塊和控制模塊。如圖6所示,是本發(fā)明所采用的可重構(gòu)陣列是一個片上系統(tǒng)(S0C: System on Chip),主要包括了主處理器(ARM7),直接存儲器存取控制器(DMAC =Direct Memory Access Controller),片上靜態(tài)隨機存儲器(SRAM Jtatic Random Access Memory),兩條片上總線 (包括自定義的i^ast Bus和工業(yè)標準總線AHB),一個可重構(gòu)處理單元(RPU),ARM處理器是系統(tǒng)的主核,負責系統(tǒng)的初始化和整體控制,DMAC負責從片外的存儲器讀取數(shù)據(jù),RPU是可重構(gòu)處理的主要部件,AHB總線是32位系統(tǒng)總線,F(xiàn)ast總線是64位的存儲器總線。
本發(fā)明中分析了 MPEG2的亮度插值過程,從中手工提取出數(shù)據(jù)流圖,如圖4所示。 一共有2個數(shù)據(jù)流圖計算行和列的1/2像素點的數(shù)據(jù)流圖相似,每次循環(huán)輸入4行或4列的36個整數(shù)像素點數(shù)據(jù),得到4行或4列的32個1/2像素點數(shù)據(jù),循環(huán)2次就可以得到 8X8塊的64個1/2像素點數(shù)據(jù);計算中間的1/2像素點的數(shù)據(jù)流圖節(jié)點數(shù)更多,每次循環(huán)輸入2行的18個整數(shù)像素點數(shù)據(jù),得到1行的8個1/2像素點的數(shù)據(jù),2個RCA同時計算中間的1/2像素點,循環(huán)4次可以得到中間8X8塊的64個1/2像素點數(shù)據(jù)。在計算平均值時,除法都是用移位來完成的,每次計算時陣列需要的常數(shù)都通過ARM處理器事先寫入 CM中,在運行過程中不變。經(jīng)過規(guī)劃之后,9X9的塊數(shù)據(jù)在RPU中的數(shù)據(jù)傳輸流程如圖5 所示[其中(a)為計算行和列1/2像素點時的數(shù)據(jù)傳輸方案,(b)為計算中間的1/2像素點時的數(shù)據(jù)傳輸方案。SRAM的存儲采用2D模式,可以直接存取一幀圖像中需要的塊數(shù)據(jù),各個FIFO中陰影部分為有效數(shù)據(jù)部分,每一行存儲8個或9個數(shù)據(jù)。],詳細過程為
1.RPU通過REDL將需要的9X9塊數(shù)據(jù)寫入4個RCA的ELDF中去。RCAO用于計算行的1/2像素點,RCAl用于計算列的1/2像素點,RCA2和RCA3用于計算中間的1/2像素點。RCAO和RCAl的ELDF中寫入了 9X9塊數(shù)據(jù)的全部數(shù)據(jù),RCA2的ELDF中寫入了 9X9 塊數(shù)據(jù)上半部分的5X9塊數(shù)據(jù),RCA3的ELDF中寫入了 9X9塊數(shù)據(jù)下半部分的5X9塊數(shù)據(jù)。REDL配置為2D取數(shù)模式,數(shù)據(jù)長度為18 bytes,數(shù)據(jù)高度為9行(RCA0和RCAl)或5 行(RCA2和RCA3 ),不拼接寫入ELDF中,則輸入塊數(shù)據(jù)在ELDF中占據(jù)了 9行(RCAO和RCAl) 或5行(RCA2和RCA3)的空間,每行寬度為144位;
2.每個RCA通過CEDL將ELDF中的9行(RCAO和RCAl)或5行(RCA2和RCA3)數(shù)據(jù)寫入RIF中,存儲格式與在ELDF中相同;
3.每個RCA的64個PE根據(jù)亮度插值的配置信息(RCAO和RCAl分別按計算行和列的 1/2像素點的數(shù)據(jù)流圖配置,RCA2和RCA3按計算中間的1/2像素點的數(shù)據(jù)流圖配置)進行計算,RCAO和RCAl循環(huán)兩次,分別得到行和列的8X8的亮度1/2像素點插值數(shù)據(jù),RCA2和 RCA3循環(huán)4此,共同得到中間的8X8的亮度1/2像素點插值數(shù)據(jù)。這些數(shù)據(jù)都寫入各自的ROF中,存儲數(shù)據(jù)格式與在ELDF中類似,不同在于都少了 1行和1列(RCA0和RCAl得到 8X8的塊數(shù)據(jù),RCA2和RCA3得到4X8的塊數(shù)據(jù));
4.每個RCA通過⑶S將得到的亮度1/2像素點數(shù)據(jù)寫入各自的ESDF中,存儲格式與在ROF中相同;
5.RPU通過REDS將4個RCA的ESDF中的亮度像素點插值數(shù)據(jù)按照指定的配置寫入到SRAM中去。REDS配置為2D寫入模式,寫入數(shù)據(jù)長度為16 bytes,數(shù)據(jù)高度為8行 (RCA0和RCAl)或4行(RCA2和RCA3),不拼接寫入SRAM中;
RPU繼續(xù)取出下一個輸入塊數(shù)據(jù),重復上述過程,直到一幀圖像的所有塊都進行了亮度插值,然后向ARM發(fā)出中斷,等待進一步的配置。以上所述,僅是本發(fā)明的較佳實施實例而已,并非對本發(fā)明做任何形式上的限制, 任何未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施實例所作的任何簡單修改、等同變化與修飾,均屬于本發(fā)明技術(shù)方案的范圍。
權(quán)利要求
1.一種基于可重構(gòu)技術(shù)的MPEG2亮度插值的實現(xiàn)方法,包括以下步驟首先,進行算法分析,根據(jù)MPEG2亮度插值的定義設(shè)計出DTO,得到算法的數(shù)據(jù)傳輸需求;其次,根據(jù)算法分析的結(jié)果和可重構(gòu)陣列的架構(gòu),對數(shù)據(jù)流圖進行分割和映射,設(shè)計出最優(yōu)的數(shù)據(jù)傳輸?shù)姆桨负筒⑿袌?zhí)行模式;然后,根據(jù)上面兩步的結(jié)果,利用配置工具,生成可重構(gòu)陣列的配置字;最后,通過ARM處理器將配置信息載入到可重構(gòu)陣列的配置信息存儲器中,以此將可重構(gòu)陣列配置成為一個專用于執(zhí)行MPEG2亮度插值的加速模塊。
2.根據(jù)權(quán)利要求1所述的一種基于可重構(gòu)技術(shù)的MPEG2亮度插值的實現(xiàn)方法,其特征是,所述根據(jù)MPEG2亮度插值的定義設(shè)計出DTO,具體如下計算行和列的1/2像素插值的Dre是一致的,有2個節(jié)點,要得到1個插值點的樣本值, 需要輸入2個整數(shù)樣本值,做1次加法和1次移位;計算中間的1/2像素點的插值的Dre有4個節(jié)點,要得到1個插值點的樣本值,需要輸入4個樣本值,做3次加法和1次移位。
3.根據(jù)權(quán)利要求1所述的一種基于可重構(gòu)技術(shù)的MPEG2亮度插值的實現(xiàn)方法,其特征是,所述對數(shù)據(jù)流圖進行分割和映射,具體是指可重構(gòu)陣列有64個計算單元,計算1個行或列的1/2像素樣本值的Dre有2個節(jié)點,對Dre進行擴充,映射到64個節(jié)點,即可以并行計算出32個行或列的1/2像素樣本值,由于需要相鄰塊的整數(shù)像素點樣本值以及整數(shù)像素樣本值的復用,1次需要輸入個36整數(shù)像素樣本值,采用按行輸入和按列輸入的方式,則1 次需要輸入4行或4列的整數(shù)像素樣本值,完成1個塊數(shù)據(jù)的行或列的1/2像素插值需要循環(huán)2次;計算中間的1/2像素樣本值的Dre有4個節(jié)點,對其進行擴充,映射到32個節(jié)點,即可以并行計算出8個中間的1/2像素的樣本值,由于需要相鄰塊的整數(shù)像素點樣本值以及整數(shù)像素樣本值的復用,1次需要輸入45個整數(shù)像素樣本值,采用按行輸入的方式,1次需要輸入5行的整數(shù)像素點數(shù)據(jù),完成1個8X8塊數(shù)據(jù)的中間1/2像素插值需要循環(huán)8次;輸入數(shù)據(jù),也即8X8塊數(shù)據(jù)存儲在SRAM中,可重構(gòu)陣列開始運行后,將其載入陣列的輸入FIFO中,陣列的計算單元從輸入FIFO中讀入數(shù)據(jù)進行計算,然后將輸出數(shù)據(jù)寫入陣列的輸出FIFO中,然后將輸出數(shù)據(jù)寫入SRAM的指定位置,然后繼續(xù)取出下一個輸入數(shù)據(jù),重復以上過程。
4.根據(jù)權(quán)利要求1所述的一種基于可重構(gòu)技術(shù)的MPEG2亮度插值的實現(xiàn)方法,其特征是,所述采用的并行執(zhí)行模式為第一個計算單元陣列計算行的1/2像素,第二個計算單元陣列計算列的1/2像素,第三個和第四個計算單元陣列共同計算中間的1/2像素,各個計算單元陣列并行執(zhí)行,沒有數(shù)據(jù)依賴關(guān)系。
5.根據(jù)權(quán)利要求1所述的一種基于可重構(gòu)技術(shù)的MPEG2亮度插值的實現(xiàn)方法,其特征是,所述可重構(gòu)陣列是通過配置字來控制的。
6.根據(jù)權(quán)利要求1所述的一種基于可重構(gòu)技術(shù)的MPEG2亮度插值的實現(xiàn)方法,其特征是,所述可重構(gòu)陣列的配置字,包括數(shù)據(jù)的讀取和寫入模塊,計算單元的數(shù)據(jù)來源和操作碼,可配置的模塊都有一個配置字的FIFO,運行時從中取出配置字并執(zhí)行,配置字是一串二進制的數(shù)字。
7.根據(jù)權(quán)利要求1所述的一種基于可重構(gòu)技術(shù)的MPEG2亮度插值的實現(xiàn)方法,其特征是,所述可重構(gòu)陣列的配置字,以32位為單位,大小與模塊的功能有關(guān),可配置部分包括 REDL, CEDL, RCA、CEDS, CIDL、REDS、RIDL ;配置字通過一個配置工具輔助手工生成,按照上一步得到的結(jié)果,得到一系列的二進制文件。
8.根據(jù)權(quán)利要求1所述的一種基于可重構(gòu)技術(shù)的MPEG2亮度插值的實現(xiàn)方法,其特征是,所述通過ARM處理器將配置信息載入到可重構(gòu)陣列的配置信息存儲器中,具體是指配置信息存儲在片上的ROM或者片外的存儲設(shè)備中,在系統(tǒng)運行開始時,主核ARM處理器執(zhí)行系統(tǒng)的初始化程序,這些配置字二進制文件被寫入到可重構(gòu)陣列內(nèi)專門用于存儲配置字的 RAM或者FIFO中,然后ARM處理器使能可重構(gòu)陣列,可重構(gòu)陣列讀取配置字并開始計算,這樣可重構(gòu)陣列就專門用于MPEG2亮度插值,成為一個專用模塊。
全文摘要
本發(fā)明涉及一種基于可重構(gòu)技術(shù)的MPEG2亮度插值的實現(xiàn)方法,包括以下步驟首先,進行算法分析,根據(jù)MPEG2亮度插值的定義設(shè)計出DFG,得到算法的數(shù)據(jù)傳輸需求;其次,根據(jù)算法分析的結(jié)果和可重構(gòu)陣列的架構(gòu),對數(shù)據(jù)流圖進行分割和映射,設(shè)計出最優(yōu)的數(shù)據(jù)傳輸?shù)姆桨?;然后,根?jù)上面兩步的結(jié)果,利用配置工具,生成可重構(gòu)陣列的配置字;最后,通過ARM處理器將配置信息載入到可重構(gòu)陣列的配置信息存儲器中,以此將可重構(gòu)陣列配置成為一個專用于執(zhí)行MPEG2亮度插值的加速模塊。本發(fā)明優(yōu)于純軟件的方式,可以更好的滿足視頻解碼的實時性要求,可以大大的節(jié)省開發(fā)時間和開發(fā)費用,實用性很高。
文檔編號H04N7/46GK102340668SQ20111029497
公開日2012年2月1日 申請日期2011年9月30日 優(yōu)先權(quán)日2011年9月30日
發(fā)明者何衛(wèi)鋒, 毛志剛, 熊一舟, 王浩, 繩偉光 申請人:上海交通大學