專利名稱:在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻圖像處理方法,特別是涉及一種在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法。
背景技術(shù):
在計(jì)算機(jī)技術(shù)與應(yīng)用的發(fā)展歷程中,人們對計(jì)算性能的追求是無止境的。傳統(tǒng)上性能的獲得有兩種方式一是ASIC (Application SpecificIntegrated Circuit即專用集成電路)方式,針對特定的計(jì)算任務(wù)設(shè)計(jì)專用的集成電路。這種方法具有很高的執(zhí)行速度和運(yùn)算精度,但功能單一,靈活性差,要想實(shí)現(xiàn)不同的算法必須重新設(shè)計(jì)集成電路,開發(fā)成本和周期都很高;在現(xiàn)在深亞微米的工藝條件下,隨著特征尺寸縮小,設(shè)計(jì)難度加大,制造成本飛速增加。當(dāng)需要多種不同功能時(shí),需要使用多種ASIC,給電路板級設(shè)計(jì)帶來困難。另一種是GPP(General Purpose Processor即通用指令集處理器)方式。該方法靈活高,通過編寫軟件指令就可改變系統(tǒng)的功能。但指令的串行執(zhí)行以及指令集的有限性、有限的運(yùn)算單元、存儲器帶寬等限制使得GPP的性能、功耗等并不理想。由于新一代媒體處理要求高處理能力、低功耗和高靈活性,另一方面,媒體標(biāo)準(zhǔn)的多樣化,未來標(biāo)準(zhǔn)的可擴(kuò)展性要求,通用處理器以及固定的專用芯片無法實(shí)現(xiàn)這些方面的統(tǒng)一,而可重構(gòu)的媒體處理則可以很好的實(shí)現(xiàn)要求,故可重構(gòu)處理器為媒體處理提供了新的發(fā)展方向??芍貥?gòu)處理器主要由嵌入式處理器、PE陣列以及內(nèi)存訪問控制器、總線仲裁器等組成。其中,嵌入式處理器主要負(fù)責(zé)系統(tǒng)控制和進(jìn)行小規(guī)模的,不規(guī)則的數(shù)據(jù)運(yùn)算;PE陣列主要負(fù)責(zé)進(jìn)行大規(guī)模的、高度并行的數(shù)據(jù)運(yùn)算,是可重構(gòu)處理器的核心運(yùn)算單元。在嵌入式處理器的控制下,PE陣列的功能和結(jié)構(gòu)可以進(jìn)行重新配置。經(jīng)過重新配置以后,PE陣列即轉(zhuǎn)化成為類似于硬線連接(Hardwired)的邏輯,具備硬線連接邏輯(例如ASIC)的絕大多數(shù)優(yōu)秀特征(如高性能、低功耗等)。PE陣列的這種特性,集中體現(xiàn)了“可重構(gòu)”的理念,是可重構(gòu)處理器與其他類型處理器,如依靠指令實(shí)現(xiàn)可編程(從而可以實(shí)現(xiàn)不同功能)的CPU 和DSP,的最本質(zhì)區(qū)別。視頻壓縮算法(如H. 264, MPEG2等)有兩種類型的計(jì)算一種是不可并行的計(jì)算(可由可重構(gòu)處理器中的嵌入式處理器負(fù)責(zé)),其計(jì)算中控制和數(shù)據(jù)相關(guān)性強(qiáng),有較多的轉(zhuǎn)移分支;另一種則是可并行計(jì)算(可由可重構(gòu)處理器中的PE陣列負(fù)責(zé)),可以歸納為基于塊和宏塊的并發(fā)操作、規(guī)則的數(shù)據(jù)依賴關(guān)系以及計(jì)算復(fù)雜度的高度集中三個(gè)方面。其中,具有并行計(jì)算特點(diǎn)的算法的計(jì)算量占整個(gè)編解碼中的絕大多數(shù),以H264幀間預(yù)測的所采用的MC(Motion Compensation即運(yùn)動(dòng)補(bǔ)償算法)最具有代表性。經(jīng)過標(biāo)準(zhǔn)測試碼流 (foreman)評定,H. 264 HiP(High Profile)解碼算法中MC占其比例的52%。故此,如果 MC算法的執(zhí)行效率,對于解碼H. 264Η Ρ 1080P030幀/秒的實(shí)現(xiàn)具有很高的意義。當(dāng)前的可重構(gòu)架構(gòu)的實(shí)現(xiàn)方案中,如M. K. A. Ganesan “H. 264Decoder at HD Resolution on a Coarse Grain Dynamically ReconfigurableArchitecture,,in FieldProgrammable Logic and Applications, 2007. FPL2007. (XPP PACT 架構(gòu)),只是集中研究了 MC算法中計(jì)算密集型任務(wù)部分,而并沒有涉及MC算法的整體實(shí)現(xiàn)。一個(gè)典型算法在可重構(gòu)類型的處理器上實(shí)現(xiàn)主要由三個(gè)子任務(wù)構(gòu)成配置可重構(gòu)陣列(66% ),數(shù)據(jù)通信 (27%),計(jì)算(7%)。由此可見,計(jì)算只占整體運(yùn)行時(shí)間很少的一部分。另外,不論是在當(dāng)前的可重構(gòu)實(shí)現(xiàn)方案還是ASIC實(shí)現(xiàn)方案中,如S. Z.Wang,“ A new motion compensation design for H. 264/AVC decoder," in 2005 IeeeInternational Symposium on Circuits and Systems,都沒有深入挖掘算法的并行性。使得數(shù)據(jù)傳輸?shù)膸挿浅4螅?jì)算效率不高。故在算法的實(shí)現(xiàn)的過程中,如何最大限度的挖掘程序間的并行性,動(dòng)態(tài)協(xié)調(diào)PE陣列和嵌入式處理器的關(guān)系(軟硬件劃分),使之以較低的配置代價(jià)(時(shí)間代價(jià)與空間代價(jià)),最小的能耗代價(jià),達(dá)到最優(yōu)的實(shí)現(xiàn)結(jié)果,是算法實(shí)現(xiàn)的核心問題。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法,能夠減少配置可重構(gòu)陣列的時(shí)間,減少數(shù)據(jù)通信代價(jià)以及提高算法的并行性。為了解決上述問題,本發(fā)明公開了一種在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法,包括以下步驟步驟101,算法的軟硬件劃分,采用嵌入式處理器進(jìn)行軟件執(zhí)行,PE陣列進(jìn)行硬件執(zhí)行;步驟102,根據(jù)預(yù)測模式及宏塊的分割模式對配置信息進(jìn)行劃分并編寫;步驟103,根據(jù)宏塊的分割方式對PE陣列進(jìn)行劃分,嵌入式處理器提供相應(yīng)的配置組序列號,PE陣列進(jìn)行計(jì)算。進(jìn)一步地,所述采用嵌入式處理器進(jìn)行軟件執(zhí)行包括以下步驟選擇參考幀;解碼并計(jì)算運(yùn)動(dòng)向量值,并對向量值進(jìn)行編碼;控制PE陣列的配置功能。進(jìn)一步地,所述預(yù)測模式為單向預(yù)測,采用PE陣列進(jìn)行硬件執(zhí)行包括以下步驟內(nèi)插像素計(jì)算-以1/4為精度進(jìn)行亮度的內(nèi)插操作,以1/8為精度進(jìn)行色度的內(nèi)插操作。進(jìn)一步地,所述預(yù)測模式為雙向預(yù)測,采用PE陣列進(jìn)行硬件執(zhí)行包括以下步驟內(nèi)插像素計(jì)算-以1/4為精度進(jìn)行亮度的內(nèi)插操作,以1/8為精度進(jìn)行色度的內(nèi)插操作;加權(quán)平均運(yùn)算。進(jìn)一步地,所述根據(jù)預(yù)測模式及宏塊的分割模式對配置信息進(jìn)行劃分并編寫包括以下步驟對亮度配置信息的劃分,包括以下子步驟Cl,根據(jù)預(yù)測模式判斷是否需要進(jìn)行轉(zhuǎn)置操作,如果需要,則進(jìn)行步驟C2,反之,則進(jìn)行步驟C3 ;C2,進(jìn)行轉(zhuǎn)置操作;
C3,進(jìn)行6抽頭濾波的第一步操作;C4,判斷是否需要進(jìn)行四舍五入操作,如果需要,則進(jìn)行四舍五入;反之,則進(jìn)行步驟C5 ;C5,根據(jù)預(yù)測模式判斷,是否需要進(jìn)行6抽頭濾波的第二步操作,如果需要,則進(jìn)行步驟C6,反之,則返回步驟C2 ;C6,進(jìn)行6抽頭濾波的第二步操作;對色度配置信息的劃分,包括以下子步驟D1,根據(jù)子塊的分割方式,對子塊所有的數(shù)據(jù),進(jìn)行乘法操作;D2,根據(jù)子塊的分割方式,對Dl步驟得到的數(shù)據(jù)進(jìn)行加權(quán)相加;根據(jù)劃分的亮度及色度配置信息進(jìn)行編碼。進(jìn)一步地,所述對亮度配置信息的劃分在子步驟C6之后,還包括以下子步驟C7,根據(jù)預(yù)測模式判斷是否進(jìn)行轉(zhuǎn)置操作,若是,則返回步驟C2,反之,則進(jìn)行步驟 C8 ;C8,根據(jù)預(yù)測模式判斷是否進(jìn)行加權(quán)求平均操作,若是,則根據(jù)流水操作,并發(fā)處理及最大限度減少重復(fù)數(shù)據(jù)傳輸?shù)囊?,進(jìn)行配置實(shí)現(xiàn)。進(jìn)一步地,所述方法還包括步驟104,判斷是否是雙向預(yù)測,如果是,則進(jìn)行步驟105,反之,則結(jié)束操作;步驟105,則采用第二次預(yù)測設(shè)定的配置信息重復(fù)步驟103得到第二次預(yù)測數(shù)據(jù);步驟106,將兩次預(yù)測得到的數(shù)據(jù)進(jìn)行加權(quán)求平均,得到最終值。進(jìn)一步地,Cl步驟中,如果預(yù)測模式滿足y = 0或χ = 2中其中一個(gè)條件,則該預(yù)測模式不需要進(jìn)行轉(zhuǎn)置操作。進(jìn)一步地,Cl步驟中需要進(jìn)行轉(zhuǎn)置操作的預(yù)測模式包括(2,0)、(1,0), (3,0), (1,1)、(1,3), (3,1)、(3,3), (2,1)、(2,3)。進(jìn)一步地,C5步驟中,需要進(jìn)行6抽頭濾波的第二步操作的預(yù)測模式包括(0,2)、 (0,1) > (0,3), (2,0), (1,0), (3,0), (1,1)、(1,3), (3,1)、(3,3)。進(jìn)一步地,C7步驟中需要進(jìn)行轉(zhuǎn)置操作的預(yù)測模式包括(1,1)、(1,3), (3,1)、 (3,3)、(2,0)、(1,0)、(3,0)、(2,2)、(1,2)、(3,2) ;C8步驟中需要進(jìn)行加權(quán)平均操作的預(yù)測模式包括(1,1)、(1,3), (3,1)、(3,3), (2,1)、(2,3), (0,1)、(0,3), (1,0), (3,0), (1,2), (3,2)。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明的在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法中,對于子塊大小固定,子塊的預(yù)測模式固定的情況下,具體的執(zhí)行步驟是固定的,利用數(shù)據(jù)之間的并行性及可重構(gòu)陣列,將操作步驟進(jìn)行劃分,也即是將具體的操作步驟分配到不同的配置信息上。采用并行流水操作,一套配置信息通過流水并行盡量完成一個(gè)子塊內(nèi)所有數(shù)據(jù)的一種類型的操作,如6抽頭濾波的一步操作等,這樣就可以減少一個(gè)子塊內(nèi)的數(shù)據(jù)進(jìn)行同一操作而使得配置信息的不斷切換,以減少配置信息的切換,另外采用流水操作,也可以提高執(zhí)行效率。進(jìn)一步地,由于H. 264幀間預(yù)測是利用已編碼視頻幀/場和基于塊的運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測模式。其塊尺寸范圍很廣泛(從16X16到4X4),每個(gè)宏塊(16X16像素)可以4種方式分割一個(gè)16X16,兩個(gè)16X8,兩個(gè)8X16,四個(gè)8X8其運(yùn)動(dòng)補(bǔ)償也相應(yīng)有四種。而 8X8模式的每個(gè)子宏塊還可以四種方式分割一個(gè)8X8,兩個(gè)4X8或兩個(gè)8X4及4個(gè) 4X4。更進(jìn)一步,每個(gè)子塊色度都有16種預(yù)測模式,亮度有64種預(yù)測模式。在宏塊(16x16)的不同位置,子塊大小相同,預(yù)測模式相同的情況下,其計(jì)算操作步驟相同,故不用嚴(yán)格按照塊的分割方式從左到右從上到下來進(jìn)行計(jì)算,可采用變換子塊的執(zhí)行次序,使得子塊并行,以此來減少配置信息的切換次數(shù),已達(dá)到減少配置信息操作時(shí)間的目的
圖1是本發(fā)明的在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法實(shí)施例一的流程圖;圖2是本發(fā)明的在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法實(shí)施例二的流程圖;圖3是本發(fā)明的在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法實(shí)施例中單向預(yù)測類型的宏塊的分割方式及預(yù)測模式分布圖;圖4是本發(fā)明的在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法實(shí)施例中的預(yù)測模式配置信息的劃分流程圖;圖5是本發(fā)明的在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法實(shí)施例中的亮度的宏塊分割方式及PE陣列劃分的示意圖。
具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明作進(jìn)一步詳細(xì)的說明。參照圖1,示出本發(fā)明的在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法實(shí)施例一,包括以下步驟步驟101,算法的軟硬件劃分,采用嵌入式處理器進(jìn)行軟件執(zhí)行,PE陣列進(jìn)行硬件執(zhí)行。其中,軟件執(zhí)行包括以下步驟Al,選擇參考幀。宏塊的不同子塊對應(yīng)于不同的參考幀位置,需要分別計(jì)算。A2,解碼并計(jì)算運(yùn)動(dòng)向量值,并對向量值進(jìn)行編碼,使之變成配置信息組的索引號。A3,控制PE16xl6陣列(Processing Element,陣列處理單元)的配置功能。通過選擇相應(yīng)的配置信息來配置PE陣列,使PE陣列完成不同功能。前述三個(gè)方面計(jì)算中數(shù)據(jù)相關(guān)性較強(qiáng)且具有較多的轉(zhuǎn)移分支,因此采用嵌入式處理器進(jìn)行操作。進(jìn)一步地,硬件執(zhí)行包括以下步驟Bi,內(nèi)插像素計(jì)算-以1/4為精度進(jìn)行亮度的內(nèi)插操作,以1/8為精度進(jìn)行色度的內(nèi)插操作。B2,加權(quán)平均運(yùn)算。
需要說明的是,對于硬件執(zhí)行方面,若單向預(yù)測只用完成步驟Bi,雙向預(yù)測需要完成步驟Bl和B2。步驟102,根據(jù)預(yù)測模式及宏塊的分割模式對配置信息進(jìn)行劃分并編寫。配置信息是由預(yù)測模式以及宏塊的分割模式所決定,計(jì)算復(fù)雜度差別很大,但是最基本的操作是相同的-6抽頭濾波(亮度),4抽頭濾波(色度)。另外,計(jì)算步驟在同一子塊內(nèi)部是相同的,行與行之間,列與列之間是相對獨(dú)立的運(yùn)算。具體的,對配置信息進(jìn)行劃分并編寫包括以下步驟步驟1021,對亮度配置信息的劃分。亮度配置信息的劃分包括以下步驟Cl,根據(jù)預(yù)測模式判斷是否進(jìn)行轉(zhuǎn)置操作,如果需要,則進(jìn)行步驟C2,反之,則進(jìn)行步驟C3 οC2,進(jìn)行轉(zhuǎn)置操作,并將數(shù)據(jù)存儲到PE8x8陣列(Processing Elemer^8x8即8x8 陣列處理單元,將PE16xl6分成4個(gè)PE8x8)內(nèi)部的存儲單元中后進(jìn)行步驟C3。C3,進(jìn)行6抽頭濾波的第一步操作,并將中間數(shù)據(jù)存儲到PE8x8陣列內(nèi)部的存儲單元中。C4,判斷是否需要進(jìn)行四舍五入操作,如果需要?jiǎng)t進(jìn)行四舍五入操作,反之,則直接進(jìn)行步驟C5。C5,根據(jù)預(yù)測模式判斷,是否需要進(jìn)行6抽頭濾波的第二步操作,若是,則進(jìn)行步驟C6,反之,則返回步驟C2。C6,進(jìn)行6抽頭濾波的第二步操作。此步操作需要根據(jù)預(yù)測模式選擇對應(yīng)于不同的參數(shù)配置。C7,根據(jù)預(yù)測模式判斷是否進(jìn)行轉(zhuǎn)置操作,若是,則返回步驟C2,反之,則進(jìn)行步驟 C8。C8,根據(jù)預(yù)測模式判斷是否進(jìn)行加權(quán)求平均操作,若是,則根據(jù)流水操作,并發(fā)處理及最大限度減少重復(fù)數(shù)據(jù)傳輸?shù)囊?,進(jìn)行配置實(shí)現(xiàn)。其中,Cl步驟中,進(jìn)行轉(zhuǎn)置操作的是為了將列數(shù)據(jù)操作通過轉(zhuǎn)置后變成行操作,行操作可以減少重復(fù)數(shù)據(jù)的傳輸以及使操作規(guī)整化,因此如果預(yù)測模式滿足y = 0或χ = 2 中其中一個(gè)條件,則該預(yù)測模式不需要進(jìn)行列方向的濾波,即不需要進(jìn)行轉(zhuǎn)置操作,因此, 如果預(yù)測模式為(2,0)、(1,0), (3,0), (1,1)、(1,3), (3,1)、(3,3), (2,1)、(2,3)的其中
一種,則需要進(jìn)行轉(zhuǎn)置操作。C2步驟中,在進(jìn)行轉(zhuǎn)置操作時(shí),還可以根據(jù)數(shù)據(jù)的不同規(guī)模對轉(zhuǎn)置操作進(jìn)行修正。C3步驟中,將6抽頭濾波分成兩個(gè)操作步驟,這是因?yàn)镻E8x8內(nèi)部計(jì)算單元的限制,同時(shí)為了實(shí)現(xiàn)最大限度流水并行操作。另外,因?yàn)樵谀承╊A(yù)測模式中,6抽頭濾波操作并不需要進(jìn)行第二步的運(yùn)算。C4步驟中增加判斷是否進(jìn)行四舍五入操作的原因是保證塊大小相同、但預(yù)測模式不同情況下,6抽頭濾波的兩步操作相同,以減少配置信息的套數(shù)來節(jié)省存儲空間。其中, 如果預(yù)測模式為(1,2)、(3,2)、0,1) (2,3),(2,2)的其中一種,則需要進(jìn)行四舍五入操作。 需要說明的是,對于某些已經(jīng)判斷是否需要進(jìn)行四舍五入操作的預(yù)測模式,若在后續(xù)步驟中需要返回C2步驟進(jìn)行轉(zhuǎn)置操作后,則可以跳過C4步驟,無需進(jìn)行第二次是否需要四舍五入操作的判斷。C5步驟中,對于比較簡單的預(yù)測模式,如(y,χ) = (0,2)-以1/4為精度,只需要進(jìn)行步驟Cl到C6即可。對于較為復(fù)雜的操作如(y,χ) = (2,1)等,則需要進(jìn)行前述的所有操作。其中,如果預(yù)測模式為(0,2)、(0,1)、(0,3)、0,0)、(1,0)、(3,0)、(1,1)、(1,3), (3,1)、(3,3)的其中一種,則需要進(jìn)行6抽頭濾波的第二步操作的預(yù)測模式。C7 步驟中,如果預(yù)測模式為(1,1)、(1,3)、(3,1)、(3,3)“2,0)、(1,0)、(3,0)“2,
2)、(1,2)、(3,2)的其中一種,則需要進(jìn)行轉(zhuǎn)置操作。C8 步驟中,如果預(yù)測模式為(1,1)、(1,3)、(3,1)、(3,3) “2,1) “2,3)、(0,1)、(0,
3)、(1,0)、(3,0)、(1,2)、(3,2)的其中一種,則需要進(jìn)行加權(quán)平均操作。步驟1022,對色度配置信息的劃分。對色度配置信息的劃分包括以下步驟D1,根據(jù)子塊的分割方式,對子塊所有的數(shù)據(jù),按照4抽頭濾波的要求,對所有像素點(diǎn)進(jìn)行乘法操作。采用此種方式可以減少冗余數(shù)據(jù)的傳輸,并將中間數(shù)據(jù)存儲。D2,根據(jù)子塊的分割方式,對前一步驟得到的數(shù)據(jù)進(jìn)行加權(quán)相加。其中,宏塊的色度成分為相應(yīng)亮度的一半(水平和垂直各一半)。色度塊采用和亮度塊同樣的分割模式,只是尺寸減半(水平和垂直方向都減半)。例如8x8的亮度塊相應(yīng)色度塊尺寸為4x4。步驟1023,根據(jù)劃分的亮度及色度配置信息進(jìn)行編碼。如果預(yù)測模式固定,則相應(yīng)的配置信息的操作也固定,可將最終所得到的配置信息及中間數(shù)據(jù)的存取操作固定下來,連接成配置信息組,并且進(jìn)行編碼,則嵌入式處理器只需提供給PE陣列配置組編號,PE陣列則可查到相應(yīng)的配置。進(jìn)一步地,即使有些操作是固定的,配置信息中同樣存在動(dòng)態(tài)可變因素,如有些配置參數(shù)的選取,一套配置信息的循環(huán)次數(shù)等,這些可由嵌入式處理器根據(jù)具體實(shí)例情況進(jìn)行調(diào)配。步驟103,根據(jù)宏塊的分割方式對PE陣列進(jìn)行劃分,嵌入式處理器提供相應(yīng)的配置組序列號,PE陣列進(jìn)行計(jì)算。具體操作如下E1,根據(jù)宏塊的分割方式對PE16xl6陣列進(jìn)行劃分。其中,最小劃分單元是PE8x8。E2,判斷宏塊的各個(gè)子塊,將子塊大小相同,預(yù)測模式相同的子塊合并到同一個(gè) PE8x8中,其余的子塊按照原始的宏塊分割方式和位置分配到剩下的幾個(gè)PE8x8中。E3,嵌入式處理器提供相應(yīng)的配置組序號進(jìn)行配置,PE陣列進(jìn)行計(jì)算。其中,先進(jìn)行亮度的計(jì)算,然后進(jìn)行色度的計(jì)算。本發(fā)明的在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法實(shí)施例中,對于子塊大小固定,子塊的預(yù)測模式固定的情況下,具體的執(zhí)行步驟是固定的,利用數(shù)據(jù)之間的并行性及可重構(gòu)陣列,將操作步驟進(jìn)行劃分,也即是將具體的操作步驟分配到不同的配置信息上。采用并行流水操作,一套配置信息通過流水并行盡量完成一個(gè)子塊內(nèi)所有數(shù)據(jù)的一種類型的操作,如6-抽頭濾波的一步操作等,這樣就可以減少一個(gè)子塊內(nèi)的數(shù)據(jù)進(jìn)行同一操作而使得配置信息的不斷切換,以減少配置信息的切換,另外采用流水操作,也可以提高執(zhí)行效率。
由于H. 264幀間預(yù)測是利用已編碼視頻幀/場和基于塊的運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測模式。 其塊尺寸范圍很廣泛(從16X16到4X4),每個(gè)宏塊(16X16像素)可以4種方式分割 一個(gè)16X16,兩個(gè)16X8,兩個(gè)8X16,四個(gè)8X8其運(yùn)動(dòng)補(bǔ)償也相應(yīng)有四種。而8X8模式的每個(gè)子宏塊還可以四種方式分割一個(gè)8X8,兩個(gè)4X8或兩個(gè)8X4及4個(gè)4X4。更進(jìn)一步,每個(gè)子塊色度都有16種預(yù)測模式,亮度有64種預(yù)測模式。在宏塊(16x16)的不同位置,子塊大小相同,預(yù)測模式相同的情況下,其計(jì)算操作步驟相同,故不用嚴(yán)格按照塊的分割方式從左到右從上到下來進(jìn)行計(jì)算,可采用變換子塊的執(zhí)行次序,使得子塊并行,以此來減少配置信息的切換次數(shù),已達(dá)到減少配置信息操作時(shí)間的目的。參照圖2,示出本發(fā)明的在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法實(shí)施例二,進(jìn)一步地,在實(shí)施例一的基礎(chǔ)上還包括以下步驟步驟104,判斷是否是雙向預(yù)測,如果是,則進(jìn)行步驟105,反之,則結(jié)束操作;步驟105,采用第二次預(yù)測設(shè)定的配置信息重復(fù)步驟103得到第二次預(yù)測數(shù)據(jù);步驟106,將兩次預(yù)測得到的數(shù)據(jù)進(jìn)行加權(quán)求平均,得到最終值。下面結(jié)合具體實(shí)例對本發(fā)明的在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法進(jìn)行詳細(xì)的說明。參照圖3,示出一個(gè)單向預(yù)測類型的宏塊(16x16)的分割方式及預(yù)測模式分布圖。 其中0,1),(1,1), (0.,2), (0,1)代表不同的色度預(yù)測模式,亮度預(yù)測模式并未畫出,主要原因是色度的64個(gè)位置的預(yù)測模式,對于與相同塊大小操作均相同,只是配置的參數(shù)(64 組參數(shù))不同。在算法的軟硬件劃分時(shí),軟件執(zhí)行方面需要進(jìn)行的操作是擇參考幀。BlockO, blockl, block3是8x8模式的子塊,其每個(gè)子塊對應(yīng)于不同的參考幀或者是同一參考幀不同位置,block2是8x8模式下的4x4子塊,每個(gè)4x4子塊對應(yīng)于同一參考幀的不同位置,故需要逐個(gè)計(jì)算。解碼并計(jì)算運(yùn)動(dòng)向量值,并對向量值進(jìn)行編碼。對預(yù)測模式0,1)的8x8子塊進(jìn)行編碼使之成為9 ;對預(yù)測模式(0,1)的8x8子塊進(jìn)行編碼使之成為1,以此類推,分別對4 個(gè)4x4子塊對應(yīng)的預(yù)測模式進(jìn)行編碼。(1,1)編碼成為5,(2,1)編碼成為9,(0,2)編碼成為2。注意4x4子塊,同8x8子塊的即使第一步編碼結(jié)果相同,由于其屬于不同的分割模式,使得對應(yīng)的配置信息組也是不同的,需要在第一步編碼完成后,增加分塊模式基數(shù) (子塊8x8基數(shù)為0,子塊4x4基數(shù)為16)。硬件執(zhí)行方面需要進(jìn)行的操作則是由配置信息決定,具體配置信息如下對應(yīng)的宏塊分割方式以及預(yù)測模式,需要對8x8模式子塊的(2,1),(1,1)兩種預(yù)測模式進(jìn)行配置, 對4x4子塊的(1,1),(2,1), (0,2)進(jìn)行相應(yīng)的配置信息編寫。由于模式較多,此處選擇較為復(fù)雜的8x8模式子塊(2,1)預(yù)測模式進(jìn)行說明,其他的預(yù)測模式于此相似。參照圖4,8x8模式子塊(2,1)預(yù)測模式的亮度劃分步驟如下經(jīng)過判斷得知,需要先將參考數(shù)據(jù)進(jìn)行轉(zhuǎn)置操作,轉(zhuǎn)置完后,將數(shù)據(jù)暫存。進(jìn)行6抽頭濾波第一步操作,得到數(shù)據(jù)組1,中間數(shù)據(jù)暫存。
對數(shù)據(jù)組1的數(shù)據(jù)進(jìn)行四舍五入操作得到數(shù)組2。經(jīng)判斷,數(shù)據(jù)組1和數(shù)據(jù)組2都需要進(jìn)行轉(zhuǎn)置操作,轉(zhuǎn)置后,得到數(shù)據(jù)組3和數(shù)據(jù)組4,將數(shù)據(jù)組暫存。對轉(zhuǎn)置后的數(shù)據(jù)組4進(jìn)行6抽頭濾波的第一步操作,得到的數(shù)據(jù)組5暫存,并且此處得到的數(shù)據(jù)不需要轉(zhuǎn)置處理。進(jìn)行6抽頭濾波的第二步操作,此處將數(shù)據(jù)組3與數(shù)據(jù)組5的數(shù)據(jù)同時(shí)進(jìn)行操作, 得到數(shù)據(jù)組6和數(shù)據(jù)組7,都是8x8數(shù)據(jù)組。經(jīng)過判斷可知此處不需要轉(zhuǎn)置運(yùn)算,需要進(jìn)行加權(quán)求平均操作。對得到的兩套8x8的數(shù)據(jù)組6和7進(jìn)行加權(quán)求平均操作得到最終值。8x8模式子塊(2,1)預(yù)測模式的色度劃分步驟如下首先對4x4色度塊(對應(yīng)于8x8亮度塊),進(jìn)行4抽頭濾波的第一步操作,并將中間數(shù)據(jù)暫存。采用不同的參數(shù),對前一步得到的數(shù)據(jù)進(jìn)行加權(quán)求平均操作。對2x2色度塊亦采用同樣的操作,但因?yàn)閿?shù)據(jù)規(guī)模較小,可以將兩步合并成一步操作,以減少配置信息的套數(shù),及中間數(shù)據(jù)的傳輸。參照圖5,然后將PE陣列(16x16)進(jìn)行劃分,分成4個(gè)PE8x8。針對于亮度,由于8x8模式子塊其blockO與block3預(yù)測模式相同,可將其合并, 對并且通過嵌入式處理器對配置信息的動(dòng)態(tài)可變部分進(jìn)行調(diào)控。其具體實(shí)現(xiàn)分到PE16xl6 陣列左上角PE8x8。Blockl 分到 PE16xl6 陣列右上角 PE8x8。將4x4子塊中預(yù)測模式相同的兩個(gè)子塊進(jìn)行合并,具體實(shí)現(xiàn)分到PE16xl6陣列 (左下角PE8x8)4x4子塊的剩余兩個(gè)子塊分配到PE16xl6陣列右下角PE8x8。針對于色度,則按照子塊的分割模式,以8x8分割方式為基本單位,分配到對應(yīng)的 4 個(gè) PE8x8 上。因?yàn)榇耸纠菃蜗蝾A(yù)測,所以可以直接跳到結(jié)束位置。以上對本發(fā)明所提供的在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法,其特征在于,包括以下步驟步驟101,算法的軟硬件劃分,采用嵌入式處理器進(jìn)行軟件執(zhí)行,PE陣列進(jìn)行硬件執(zhí)行;步驟102,根據(jù)預(yù)測模式及宏塊的分割模式對配置信息進(jìn)行劃分并編寫; 步驟103,根據(jù)宏塊的分割方式對PE陣列進(jìn)行劃分,嵌入式處理器提供相應(yīng)的配置組序列號,PE陣列進(jìn)行計(jì)算。
2.如權(quán)利要求1所述的方法,其特征在于,所述采用嵌入式處理器進(jìn)行軟件執(zhí)行包括以下步驟選擇參考幀;解碼并計(jì)算運(yùn)動(dòng)向量值,并對向量值進(jìn)行編碼; 控制PE陣列的配置功能。
3.如權(quán)利要求2所述的方法,其特征在于,所述預(yù)測模式為單向預(yù)測,采用PE陣列進(jìn)行硬件執(zhí)行包括以下步驟內(nèi)插像素計(jì)算-以1/4為精度進(jìn)行亮度的內(nèi)插操作,以1/8為精度進(jìn)行色度的內(nèi)插操作。
4.如權(quán)利要求2所述的方法,其特征在于,所述預(yù)測模式為雙向預(yù)測,采用PE陣列進(jìn)行硬件執(zhí)行包括以下步驟內(nèi)插像素計(jì)算-以1/4為精度進(jìn)行亮度的內(nèi)插操作,以1/8為精度進(jìn)行色度的內(nèi)插操作;加權(quán)平均運(yùn)算。
5.如權(quán)利要求1至4所述的方法,其特征在于,所述根據(jù)預(yù)測模式及宏塊的分割模式對配置信息進(jìn)行劃分并編寫包括以下步驟對亮度配置信息的劃分,包括以下子步驟Cl,根據(jù)預(yù)測模式判斷是否需要進(jìn)行轉(zhuǎn)置操作,如果需要,則進(jìn)行步驟C2,反之,則進(jìn)行步驟C3 ;C2,進(jìn)行轉(zhuǎn)置操作;C3,進(jìn)行6抽頭濾波的第一步操作;C4,判斷是否需要進(jìn)行四舍五入操作,如果需要,則進(jìn)行四舍五入;反之,則進(jìn)行步驟C5 ;C5,根據(jù)預(yù)測模式判斷,是否需要進(jìn)行6抽頭濾波的第二步操作,如果需要,則進(jìn)行步驟C6,反之,則返回步驟C2;C6,進(jìn)行6抽頭濾波的第二步操作;對色度配置信息的劃分,包括以下子步驟Dl,根據(jù)子塊的分割方式,對子塊所有的數(shù)據(jù),進(jìn)行乘法操作;D2,根據(jù)子塊的分割方式,對Dl步驟得到的數(shù)據(jù)進(jìn)行加權(quán)相加;根據(jù)劃分的亮度及色度配置信息進(jìn)行編碼。
6.如權(quán)利要求5所述的方法,其特征在于,所述對亮度配置信息的劃分在子步驟C6之后,還包括以下子步驟C7,根據(jù)預(yù)測模式判斷是否進(jìn)行轉(zhuǎn)置操作,若是,則返回步驟C2,反之,則進(jìn)行步驟C8 ;C8,根據(jù)預(yù)測模式判斷是否進(jìn)行加權(quán)求平均操作,若是,則根據(jù)流水操作,并發(fā)處理及最大限度減少重復(fù)數(shù)據(jù)傳輸?shù)囊螅M(jìn)行配置實(shí)現(xiàn)。
7.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括步驟104,判斷是否是雙向預(yù)測,如果是,則進(jìn)行步驟105,反之,則結(jié)束操作;步驟105,則采用第二次預(yù)測設(shè)定的配置信息重復(fù)步驟103得到第二次預(yù)測數(shù)據(jù);步驟106,將兩次預(yù)測得到的數(shù)據(jù)進(jìn)行加權(quán)求平均,得到最終值。
8.如權(quán)利要求5所述的方法,其特征在于,Cl步驟中,如果預(yù)測模式滿足y= 0或χ = 2中其中一個(gè)條件,則該預(yù)測模式不需要進(jìn)行轉(zhuǎn)置操作。
9.如權(quán)利要求5所述的方法,其特征在于,Cl步驟中需要進(jìn)行轉(zhuǎn)置操作的預(yù)測模式包括(2,0)、(1,0), (3,0), (1,1)、(1,3), (3,1)、(3,3), (2,1)、(2,3)。
10.如權(quán)利要求5所述的方法,其特征在于,C5步驟中,需要進(jìn)行6抽頭濾波的第二步操作的預(yù)測模式包括(0,2)、(0,1)、(0,3)、(2,0)、(1,0)、(3,0)、(1,1)、(1,3)、(3,1)、(3, 3)。
11.如權(quán)利要求6所述的方法,其特征在于,C7步驟中需要進(jìn)行轉(zhuǎn)置操作的預(yù)測模式包 :(1,1) > (1,3), (3,1)、(3,3), (2,0), (1,0), (3,0), (2,2), (1,2), (3,2) ; C8 步驟中需要進(jìn)行加權(quán)平均操作的預(yù)測模式包括(1,1)、(1,3)、(3,1)、(3,3)、(2,1)、(2,3)、(0,1)、(0, 3)、(1,0), (3,0), (1,2), (3,2)
全文摘要
本發(fā)明提供了一種在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法,包括步驟101,算法的軟硬件劃分,采用嵌入式處理器進(jìn)行軟件執(zhí)行,PE陣列進(jìn)行硬件執(zhí)行;步驟102,根據(jù)預(yù)測模式及宏塊的分割模式對配置信息進(jìn)行劃分并編寫;步驟103,根據(jù)宏塊的分割方式對PE陣列進(jìn)行劃分,嵌入式處理器提供相應(yīng)的配置組序列號,PE陣列進(jìn)行計(jì)算。本發(fā)明的在可重構(gòu)處理器上映射和實(shí)現(xiàn)的運(yùn)動(dòng)補(bǔ)償算法的方法,能夠減少配置可重構(gòu)陣列的時(shí)間,減少數(shù)據(jù)通信代價(jià)以及提高算法的并行性。
文檔編號H04N7/32GK102572415SQ20101059380
公開日2012年7月11日 申請日期2010年12月17日 優(yōu)先權(quán)日2010年12月17日
發(fā)明者劉雷波, 尹首一, 耿同生, 魏少軍 申請人:清華大學(xué)