專利名稱:運(yùn)動(dòng)估計(jì)方法、裝置和多媒體處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及^L頻編碼領(lǐng)域,具體涉及一見頻編碼處理中的運(yùn)動(dòng)估計(jì):技術(shù)。
背景技術(shù):
多媒體處理器中通常需要對(duì)存儲(chǔ)在內(nèi)存中的視頻數(shù)據(jù)進(jìn)行編碼處理,視頻 編碼方法包括幀內(nèi)壓縮和幀間壓縮,幀間壓縮的關(guān)鍵技術(shù)之一是運(yùn)動(dòng)估計(jì),通 過運(yùn)動(dòng)估計(jì)進(jìn)行幀間壓縮能夠去除相鄰幀間的時(shí)域相關(guān)性(冗余),提高視頻
圖像的壓縮比。當(dāng)視頻圖像以不小于24幀/秒的速率連續(xù)顯示時(shí),由于人眼的 視覺暫留特性,使人產(chǎn)生了連續(xù)的感覺,因此一般情況下,相鄰幀間的內(nèi)容變 化非常有限,并且有著較大的相關(guān)性,這種相關(guān)性稱為時(shí)域相關(guān)性(時(shí)域冗余 度)。運(yùn)動(dòng)估計(jì)的目的正是要找出這種時(shí)域相關(guān)性,幫助編碼端盡可能的將它 去除。
在^f見頻編碼中,將正在進(jìn)行運(yùn)動(dòng)估計(jì)的幀稱為當(dāng)前幀或目標(biāo)幀,將在當(dāng)前 幀運(yùn)動(dòng)估計(jì)中用來作為運(yùn)動(dòng)估計(jì)基準(zhǔn)的幀稱為參考幀。每幀圖像可以被劃分為 若干個(gè)宏塊,運(yùn)動(dòng)估計(jì)通常以宏塊(Macro Block, MB)為單位進(jìn)行,每個(gè)宏 塊由一個(gè)16 x 16字節(jié)的亮度分量7和兩個(gè)8x8字節(jié)的色度分量C/、 F組成。 那么在運(yùn)動(dòng)估計(jì)這一過程中,最重要的過程就是搜索匹配過程,由于搜索匹配
過程中只涉及到宏塊中的亮度分量r,因此搜索匹配中所說的宏塊通常指宏塊 中的亮度分量r"。以其中一個(gè)進(jìn)行搜索匹配的當(dāng)前宏塊為例,搜索匹配的目的 是在參考幀中找到與當(dāng)前宏塊大小相同、在圖像上亮度分量最相似的參考宏 塊,這個(gè)最相似的參考宏塊稱為匹配塊,匹配塊所在的位置稱為最佳匹配位置, 然后將當(dāng)前宏塊與匹配塊兩者的位置差作為當(dāng)前宏塊的運(yùn)動(dòng)矢量,當(dāng)前宏塊和 匹配塊兩者的像素差作為殘差塊,運(yùn)動(dòng)矢量和殘差塊即為當(dāng)前宏塊的搜索匹配 結(jié)果。
為提高運(yùn)動(dòng)估計(jì)的效率,通常在參考幀中一定范圍內(nèi)的參考宏塊中搜索匹 配塊,搜索范圍和當(dāng)前宏塊在圖像中所處位置相關(guān),搜索范圍可以稱為搜索窗, 搜索窗中的參考宏塊的數(shù)據(jù)組成搜索窗的數(shù)據(jù),對(duì)當(dāng)前宏塊進(jìn)行搜索匹配時(shí)需 要當(dāng)前宏塊的數(shù)據(jù)和搜索窗的數(shù)據(jù)參與運(yùn)算。
如圖l所示,為運(yùn)動(dòng)估計(jì)原理示意圖,搜索窗中參考宏塊組成一個(gè)二維的 圖像塊,在行和列兩個(gè)方向各包含奇數(shù)個(gè)宏塊,在參考幀中與當(dāng)前宏塊在當(dāng)前 幀中的位置相同的宏塊位于搜索窗的中心,稱為搜索窗中心宏塊。現(xiàn)有運(yùn)動(dòng)估 計(jì)方案中,視頻數(shù)據(jù)存儲(chǔ)在內(nèi)存中,搜索匹配單元和內(nèi)存通過系統(tǒng)總線連接, 為保證運(yùn)動(dòng)估計(jì)的性能,在對(duì)當(dāng)前宏塊進(jìn)行搜索匹配時(shí),需要預(yù)先將當(dāng)前宏塊 和搜索窗的數(shù)據(jù)從內(nèi)存搬運(yùn)到高速緩存器中,高速緩存器直接連接搜索匹配單
元或設(shè)置在搜索匹配模塊中的,數(shù)據(jù)搬運(yùn)任務(wù)通常由DMA (Direct Memory Access,直接內(nèi)存器存取)完成。
運(yùn)動(dòng)估計(jì)在視頻編碼過程中占有很大部分的計(jì)算量,通常占整個(gè)視頻編碼 計(jì)算量的50%以上,因此運(yùn)動(dòng)估計(jì)過程中對(duì)數(shù)據(jù)的訪問占用了內(nèi)存的很多帶 寬,而足夠的帶寬資源才能保證運(yùn)動(dòng)估計(jì)的性能。盡管加大高速緩存器的容量 可以保證帶寬資源,但是加大高速緩存器不可避免的帶來多媒體處理器成本和 面積的增大,降低了產(chǎn)品竟?fàn)幜Γ瑹o法適應(yīng)一些便攜式多々某體處理器的需求。 而且受內(nèi)存本身訪問速度的限制,單位時(shí)間內(nèi)最多可以從內(nèi)存讀取的數(shù)據(jù)量也 是受限制的,高速緩存器的容量也不可能無限制的加大。因此在保證運(yùn)動(dòng)估計(jì) 性能的前提下,應(yīng)盡量較少緩存器的容量。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種運(yùn)動(dòng)估計(jì)方法、裝置和多々某體處理器,用以減小運(yùn) 動(dòng)估計(jì)所需i爰存器容量的占用。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供如下技術(shù)方案
一種運(yùn)動(dòng)估計(jì)方法,所述運(yùn)動(dòng)估計(jì)的系統(tǒng)包括緩存器、搜索匹配單元和數(shù)
據(jù)更新單元,其特征在于,所述方法包括
根據(jù)所述緩存器中保存的當(dāng)前宏塊的數(shù)據(jù)和當(dāng)前宏塊搜索窗的數(shù)據(jù),通過 所述搜索匹配單元對(duì)當(dāng)前宏塊進(jìn)行搜索匹配的同時(shí),所述數(shù)據(jù)更新單元獲得所 述下一個(gè)宏塊搜索窗的最后一列宏塊的數(shù)據(jù)并存儲(chǔ)到所述緩存器中,所述下一 個(gè)宏塊和當(dāng)前宏塊位于當(dāng)前幀中的同 一行。
較佳的,所述當(dāng)前宏塊搜索窗或下一個(gè)宏塊搜索窗包括行w列個(gè)宏塊, 所述A和w分別為大于等于3的奇數(shù),所述最后一列宏塊的數(shù)據(jù)和當(dāng)前宏塊搜 索窗的數(shù)據(jù)中的后/ 行^/列宏塊的數(shù)據(jù)組成下一個(gè)宏塊搜索窗的數(shù)據(jù);其中
所述緩存器包括w +7個(gè)第二存儲(chǔ)空間,所述當(dāng)前宏塊搜索窗的數(shù)據(jù)保存 在所述w 個(gè)第二存儲(chǔ)空間中的w個(gè)第二存儲(chǔ)空間上,每一個(gè)第二存儲(chǔ)空間 用于保存A行1列宏塊的數(shù)據(jù);
所述下一個(gè)宏塊搜索窗的最后一列宏塊的數(shù)據(jù)存在所述vv +7個(gè)第二存儲(chǔ) 空間中未用于保存當(dāng)前宏塊搜索窗的數(shù)據(jù)的一個(gè)第二存儲(chǔ)空間上。
所述緩沖器包括兩個(gè)第一存儲(chǔ)空間,其中所述當(dāng)前宏塊的數(shù)據(jù)和下一個(gè) 宏塊的數(shù)據(jù)分別保存在其中 一個(gè)第 一存儲(chǔ)空間上。
當(dāng)所述當(dāng)前宏塊為當(dāng)前幀中每行的第一個(gè)宏塊時(shí),所述方法還包括
將所述第 一個(gè)宏塊的數(shù)據(jù)保存到緩存器的第 一存^f諸空間上;
將所述第一個(gè)宏塊搜索窗的每一列宏塊的數(shù)據(jù)分別保存到所述w個(gè)第二 存儲(chǔ)空間上;并
根據(jù)所述第一存儲(chǔ)空間中保存的當(dāng)前宏塊的數(shù)據(jù),以及所述w個(gè)第二存儲(chǔ) 空間中保存的搜索窗的數(shù)據(jù),對(duì)當(dāng)前宏塊進(jìn)行搜索匹配。 一種運(yùn)動(dòng)估計(jì)裝置,包括
內(nèi)存,用于存儲(chǔ)進(jìn)行運(yùn)動(dòng)估計(jì)的當(dāng)前幀各行宏塊的數(shù)據(jù)和參考幀各行宏塊 的數(shù)據(jù);
緩存器,用于緩存搜索匹配所需的數(shù)據(jù); 搜索匹配單元,用于根據(jù)緩存器中保存的當(dāng)前宏塊的數(shù)據(jù)和當(dāng)前宏塊搜索
窗的數(shù)據(jù),對(duì)當(dāng)前宏塊進(jìn)行搜索匹配;
數(shù)據(jù)更新單元,用于在對(duì)當(dāng)前宏塊進(jìn)行運(yùn)動(dòng)估計(jì)時(shí),獲得所述下一個(gè)宏塊 搜索窗的最后一列宏塊的數(shù)據(jù)并保存到所述緩存器中,所述下一個(gè)宏塊和當(dāng)前 宏塊位于當(dāng)前幀中的同 一行。
另一種運(yùn)動(dòng)估計(jì)方法,所述運(yùn)動(dòng)估計(jì)的系統(tǒng)包括緩存器、搜索匹配單元和 數(shù)據(jù)更新單元,其特征在于,所述方法包括
根據(jù)所述緩存器中保存的當(dāng)前宏塊的數(shù)據(jù)和當(dāng)前宏塊搜索窗的數(shù)據(jù),通過 所述搜索匹配單元對(duì)當(dāng)前宏塊進(jìn)行搜索匹配;
所述數(shù)據(jù)更新單元將所述緩存器中保存的上 一 宏塊的數(shù)據(jù)更新為所述當(dāng) 前宏塊的數(shù)據(jù),所述當(dāng)前宏塊和上一宏塊位于當(dāng)前幀中的同 一行;
所述數(shù)據(jù)更新單元將所述緩存器中上一宏塊搜索窗第一列宏塊的數(shù)據(jù)更 新為當(dāng)前宏塊搜索窗最后一列宏塊的數(shù)據(jù)。
較佳的,所述搜索窗包括/z行w列個(gè)宏塊,所述/z和w分別為大于等于3 的奇數(shù),所述緩存器包括一個(gè)第一存儲(chǔ)空間和w個(gè)第二存儲(chǔ)空間,其中
所述第一存儲(chǔ)空間用于保存上一宏塊的數(shù)據(jù)或者當(dāng)前宏塊的數(shù)據(jù);
所述w個(gè)第二存儲(chǔ)空間中用于保存搜索窗的數(shù)據(jù),每一個(gè)第二存儲(chǔ)空間用 于保存搜索窗中的1列宏塊的數(shù)據(jù)。
進(jìn)一步,若所述當(dāng)前宏塊為當(dāng)前幀中各行的第一個(gè)宏塊,則在所述根據(jù)緩 存器中保存的當(dāng)前宏塊搜索窗的數(shù)據(jù)和當(dāng)前宏塊的數(shù)據(jù),對(duì)當(dāng)前宏塊進(jìn)行搜索 匹配之前,所述方法還包4舌
獲得所述第一個(gè)宏塊的數(shù)據(jù)并保存到兩個(gè)第一存儲(chǔ)空間中的一個(gè)上,以及 獲得所述第一個(gè)宏塊的搜索窗的各列宏塊的數(shù)據(jù),并保存在所述w +7個(gè)第二 存儲(chǔ)空間中的vv個(gè)第二存儲(chǔ)空間上。
較佳的,所述w+7個(gè)第二存儲(chǔ)空間順序編址,所述當(dāng)前幀各行的第一個(gè) 宏塊搜索窗的/z行w列個(gè)宏塊中,從第一列開始至第vv列的宏塊的數(shù)據(jù),按
照所在列的排列順序?qū)?yīng)保存在第一至第W個(gè)第二存儲(chǔ)空間上。
一種運(yùn)動(dòng)估計(jì)裝置,包括用于存儲(chǔ)進(jìn)行運(yùn)動(dòng)估計(jì)的當(dāng)前幀各行宏塊的數(shù)據(jù)
和參考幀各行宏塊的數(shù)據(jù)的內(nèi)存;還包括 緩存器,用于緩存搜索匹配所需的數(shù)據(jù);
數(shù)據(jù)更新單元,用于將緩存器中保存的上一宏塊的數(shù)據(jù)更新為當(dāng)前宏塊的 數(shù)據(jù),所述當(dāng)前宏塊和上一宏塊位于當(dāng)前幀中的同一行;并將緩存器中上一宏 塊搜索窗第一列宏塊的數(shù)據(jù)更新為當(dāng)前宏塊搜索窗最后一列宏塊的數(shù)據(jù);
搜索匹配單元,用于根據(jù)所述當(dāng)前宏塊的數(shù)據(jù),以及所述搜索窗的數(shù)據(jù), 對(duì)當(dāng)前宏塊進(jìn)行搜索匹配。
所述數(shù)據(jù)更新單元還用于若所述當(dāng)前宏塊為當(dāng)前幀中各行的第一個(gè)宏塊 時(shí),則在所述搜索匹配單元根據(jù)緩存器中保存的當(dāng)前宏塊搜索窗的數(shù)據(jù)和當(dāng)前 宏塊的數(shù)據(jù),對(duì)當(dāng)前宏塊進(jìn)行搜索匹配之前,獲得所述第一個(gè)宏塊的數(shù)據(jù)并保 存到兩個(gè)第一存儲(chǔ)空間中的一個(gè)上,以及獲得所述第一個(gè)宏塊的搜索窗的各列 宏塊的數(shù)據(jù),并保存在所述w 個(gè)第二存儲(chǔ)空間中的w個(gè)第二存儲(chǔ)空間上。
較佳的,所述的裝置還包括
第一寄存器,用于保存所述搜索匹配單元的狀態(tài)位;
第二寄存器,用于保存所述數(shù)據(jù)更新單元的狀態(tài)位;
同步控制單元,用于通過所述第一寄存器和第二寄存器,對(duì)搜索匹配單元 和數(shù)據(jù)更新單元進(jìn)行同步控制,其中所述搜索匹配單元完成當(dāng)前宏塊的搜索 匹配后將所述第一寄存器中的狀態(tài)位置為空閑狀態(tài),所述數(shù)據(jù)更新單元完成下 一個(gè)宏塊進(jìn)行搜索匹配所需數(shù)據(jù)的存儲(chǔ)后將所述第二寄存器中的狀態(tài)位置為 空閑狀態(tài),所述同步控制單元在第一寄存器和第二寄存器的狀態(tài)位全部被置為 空閑狀態(tài)時(shí)同步觸發(fā)所述搜索匹配單元和數(shù)據(jù)更新單元。
由于本發(fā)明實(shí)施例提供的技術(shù)方案中,在設(shè)置搜索窗的數(shù)據(jù)存儲(chǔ)空間時(shí), 為搜索窗的數(shù)據(jù)中的每一列宏塊的數(shù)據(jù)設(shè)置獨(dú)立的存儲(chǔ)空間,并在更新搜索匹 配的搜索窗的數(shù)據(jù)時(shí),僅更新搜索窗移動(dòng)后發(fā)生變化的一列宏塊的數(shù)據(jù),從而
將搜索窗的數(shù)據(jù)對(duì)緩存器容量的占用壓縮到了最小,減小了緩存器的體積,并 且由于每一次數(shù)據(jù)更新操作僅更新其中 一列數(shù)據(jù),從而保證了運(yùn)行估計(jì)的性 6匕,
進(jìn)一步在本發(fā)明實(shí)施例提供的另 一種實(shí)施方式中,利用冗余存儲(chǔ)空間實(shí)現(xiàn) 了在搜索匹配的同時(shí)完成數(shù)據(jù)更新操作,從而在增加很小的存儲(chǔ)空間成本的基 礎(chǔ)上,進(jìn)一步提高了運(yùn)動(dòng)估計(jì)的性能。
圖1為現(xiàn)有運(yùn)動(dòng)估計(jì)原理示意圖2為現(xiàn)有參考幀擴(kuò)展后搜索窗的示意圖3為以行為順序移動(dòng)時(shí),搜索窗每移動(dòng)一次時(shí)的數(shù)據(jù)變化示意圖4為本發(fā)明實(shí)施例一提供的運(yùn)動(dòng)估計(jì)方法流程示意圖5為本發(fā)明實(shí)施例一提供的運(yùn)動(dòng)估計(jì)方法中存儲(chǔ)空間結(jié)構(gòu)示意圖6為本發(fā)明實(shí)施例二提供的運(yùn)動(dòng)估計(jì)方法流程示意圖7為本發(fā)明實(shí)施例二提供的運(yùn)動(dòng)估計(jì)方法中存儲(chǔ)空間結(jié)構(gòu)示意圖8為本發(fā)明實(shí)施例二提供的搜索窗的數(shù)據(jù)存儲(chǔ)空間循環(huán)鏈表示意圖9和圖IO分別為本發(fā)明實(shí)施例提供的運(yùn)動(dòng)估計(jì)裝置主要結(jié)構(gòu)示意圖。
具體實(shí)施例方式
如圖2所示,將每一幀圖像以宏塊為單位分為C行、丄列,每幀包含Cx 丄個(gè)宏塊,搜索窗包括/2行W列宏塊,其中A和w為大于等于3的奇數(shù)。如圖 3所示的搜索窗移動(dòng)示意圖,實(shí)線表示當(dāng)前幀中坐標(biāo)為[l,l]的宏塊為當(dāng)前宏塊 時(shí)搜索窗在參考幀中的位置示意圖,虛線表示當(dāng)前幀中坐標(biāo)為[1,2]的宏塊為當(dāng) 前宏塊時(shí)搜索窗在參考幀中的位置示意圖,如果將搜索窗中的每一列宏塊的數(shù) 據(jù)定義為一個(gè)數(shù)據(jù)塊,可以看到,搜索窗以行為移動(dòng)順序每移動(dòng)一次,相鄰兩 個(gè)宏塊的搜索窗的數(shù)據(jù)中,移動(dòng)后的搜索窗最后一列宏塊的數(shù)據(jù)和移動(dòng)前的搜 索窗第一列宏塊的數(shù)據(jù)不同,其它列宏塊的數(shù)據(jù)相同,因此如果以數(shù)據(jù)塊為單
位更新搜索窗的數(shù)據(jù),對(duì)于同一行的相鄰兩個(gè)宏塊,每次只需要在前一宏塊搜 索窗的數(shù)據(jù)基礎(chǔ)上,將前一宏塊搜索窗的數(shù)據(jù)的第 一列更新為后一宏塊搜索窗 的數(shù)據(jù)的最后一列即可形成下一宏塊的搜索窗的數(shù)據(jù)。
基于上述分析,本發(fā)明實(shí)施例提供的第一種較佳實(shí)施方式中,緩存搜索匹
配所需數(shù)據(jù)的緩存器需要包括
第一存儲(chǔ)空間,用于存儲(chǔ)進(jìn)行搜索匹配的當(dāng)前宏塊的數(shù)據(jù),大小設(shè)置為可 以存儲(chǔ)一個(gè)宏塊的數(shù)據(jù)量;
w個(gè)第二存儲(chǔ)空間,用于存儲(chǔ)當(dāng)前宏塊的搜索窗的數(shù)據(jù),其中,每一個(gè)第
二存儲(chǔ)空間上分別存儲(chǔ)搜索窗中的一列宏塊的數(shù)據(jù),大小設(shè)置為可以存儲(chǔ)/z 〃 個(gè)宏塊的數(shù)據(jù)量。
根據(jù)該第一種實(shí)施方式中的緩存器存儲(chǔ)空間設(shè)計(jì),以一行宏塊的運(yùn)動(dòng)估計(jì) 為例,第一個(gè)宏塊為當(dāng)前宏塊時(shí),從內(nèi)存獲得該第一個(gè)宏塊的數(shù)據(jù)并保存第一 存儲(chǔ)空間中,獲得該第一個(gè)宏塊的搜索窗的數(shù)據(jù)并保存到w個(gè)第二存儲(chǔ)空間 中,對(duì)第一個(gè)宏塊進(jìn)行搜索匹配,搜索匹配結(jié)束后,以第二個(gè)宏塊為當(dāng)前宏塊, 將第一存儲(chǔ)空間中的數(shù)據(jù)更新為第二個(gè)宏塊的數(shù)據(jù),并對(duì)其中一個(gè)第二存儲(chǔ)空 間中的數(shù)據(jù)進(jìn)行更新,將移出搜索窗的數(shù)據(jù)塊更新為移入搜索窗的數(shù)據(jù)塊,即 在對(duì)應(yīng)的第二存儲(chǔ)空間上,將第一個(gè)宏塊搜索窗的第一列宏塊的數(shù)據(jù)更新為第 二個(gè)宏塊搜索窗的最后一列宏塊的數(shù)據(jù),然后進(jìn)行搜索匹配,依次類推,直至 該行最后一個(gè)宏塊的搜索匹配結(jié)束后,繼續(xù)下一行各宏塊的搜索匹配。
為進(jìn)一步提高運(yùn)動(dòng)估計(jì)的速度,本發(fā)明實(shí)施例還提供第二種較佳實(shí)施方 式,在該第二種實(shí)施方式中,緩存運(yùn)動(dòng)估計(jì)所需數(shù)據(jù)的緩存器需要包括
兩個(gè)第一存儲(chǔ)空間,每一個(gè)第一存儲(chǔ)空間的大小設(shè)置可以存儲(chǔ)一個(gè)宏塊的 數(shù)據(jù)量;
w+7個(gè)第二存儲(chǔ)空間,每一個(gè)第二存儲(chǔ)空間的大小設(shè)置為可以存儲(chǔ)搜索 窗中的 一 列宏塊的數(shù)據(jù)塊的數(shù)據(jù)量。
根據(jù)該第二種實(shí)施方式中的緩存器存儲(chǔ)空間設(shè)計(jì),第一存儲(chǔ)空間和第二存
儲(chǔ)空間分別有一個(gè)冗余存儲(chǔ)空間,利用冗余存儲(chǔ)空間可以在對(duì)當(dāng)前宏塊進(jìn)行搜 索匹配的同時(shí),完成同一行下一個(gè)宏塊搜索匹配所需數(shù)據(jù)的更新操作。具體以 一行為例,對(duì)于第一個(gè)宏塊,從內(nèi)存獲得該第一個(gè)宏塊的數(shù)據(jù)并保存其中一個(gè) 第一存儲(chǔ)空間中,獲得該第一個(gè)宏塊的搜索窗的數(shù)據(jù)并保存到W個(gè)第二存儲(chǔ)空 間中,在啟動(dòng)當(dāng)前宏塊搜索匹配的同時(shí)進(jìn)行第二個(gè)宏塊搜索匹配所需的數(shù)據(jù)更
新操作,數(shù)據(jù)更新操作具體包括從內(nèi)存中獲得第二個(gè)宏塊的數(shù)據(jù)并保存到另 一個(gè)第一存儲(chǔ)空間中,將搜索窗移動(dòng)后的最后一列宏塊的數(shù)據(jù)保存到w個(gè)第二 存儲(chǔ)空間以外的一個(gè)第二存儲(chǔ)空間上,該最后一列宏塊的數(shù)據(jù)和第一個(gè)宏塊搜 索窗的數(shù)據(jù)的后w -7列宏塊的數(shù)據(jù)組成第二個(gè)宏塊的搜索窗的數(shù)據(jù)。在第一 個(gè)宏塊的搜索匹配和第二個(gè)宏塊的數(shù)據(jù)更新全部完成后,同時(shí)啟動(dòng)第二個(gè)宏塊 的搜索匹配和第三個(gè)宏塊搜索匹配所需數(shù)據(jù)的更新操作,依次類推,直至該行 最后一個(gè)宏塊的搜索匹配結(jié)束,再進(jìn)行當(dāng)前幀中下一行宏塊的搜索匹配,在這 一過程中,冗余存儲(chǔ)空間是動(dòng)態(tài)變化的,可以分別對(duì)第一存儲(chǔ)空間和第二存儲(chǔ) 空間進(jìn)行順序編址,以方便數(shù)據(jù)更新過程中的存儲(chǔ)空間的尋址控制。
根據(jù)第二種較佳實(shí)施方式,本領(lǐng)域技術(shù)人員可知,在對(duì)當(dāng)前宏塊進(jìn)行搜索 匹配的同時(shí)更新搜索窗的數(shù)據(jù),在兩次搜索匹配之間更新當(dāng)前宏塊的數(shù)據(jù),這 樣只需要一個(gè)第一存儲(chǔ)空間就可以了 。
需要說明的是,當(dāng)需要對(duì)參考幀進(jìn)行擴(kuò)展時(shí),根據(jù)宏塊的位置,搜索窗的 數(shù)據(jù)中包括從內(nèi)存獲得的參考幀中的相關(guān)宏塊的數(shù)據(jù),也可能包括生成的加邊 宏塊的數(shù)據(jù),具體擴(kuò)展方法以及加邊宏塊的數(shù)據(jù)的生成方法為本領(lǐng)域技術(shù)人員 熟知,這里不再詳細(xì)說明。
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和有益效果更加清楚,以具體實(shí)施例 進(jìn)一步詳細(xì)說明本發(fā)明。在下面的說明中,當(dāng)前幀的參考幀都是指進(jìn)行了邊界 擴(kuò)展后的參考幀,在描述過程中,省去了相關(guān)加邊^(qū)喿作的描述。
本發(fā)明提供的實(shí)施例中以行為讀取順序?qū)Ξ?dāng)前幀中各個(gè)宏塊進(jìn)行運(yùn)動(dòng)估 計(jì),即從當(dāng)前幀中第一行宏塊進(jìn)行搜索匹配,然后依次跳轉(zhuǎn)對(duì)各行的宏塊進(jìn)行
搜索匹配。對(duì)應(yīng)每個(gè)需要進(jìn)行搜索匹配的當(dāng)前宏塊,需要的搜索窗為在參考幀 中以當(dāng)前宏塊位置為中心的一個(gè)/2XM;大小的塊。例如圖2左上的陰影塊表示
當(dāng)/2=w=3時(shí),對(duì)當(dāng)前宏塊[O,O]進(jìn)行搜索匹配時(shí)候的擴(kuò)展搜索窗,右上的陰影 塊表示對(duì)當(dāng)前宏塊[l,L-2]進(jìn)行搜索匹配時(shí)候的擴(kuò)展搜索窗。
如圖4所示,本采用第一種存儲(chǔ)空間設(shè)計(jì)的運(yùn)動(dòng)估計(jì)方法流程示意圖,主 要包括如下步驟
步驟S401,根據(jù)需要的搜索窗大小/z ^w,確定用于存儲(chǔ)進(jìn)行運(yùn)動(dòng)估計(jì)所 需數(shù)據(jù)的存儲(chǔ)空間包括
一個(gè)第一存儲(chǔ)空間"c,用于存儲(chǔ)進(jìn)行搜索匹配的當(dāng)前宏塊的數(shù)據(jù),第一存 儲(chǔ)空間的大小可以存儲(chǔ)一個(gè)宏塊的數(shù)據(jù);
w個(gè)第二存儲(chǔ)空間^至附w十每一個(gè)第二存儲(chǔ)空間上分別存儲(chǔ)搜索窗中 的一列宏塊,大小可以存儲(chǔ)/z^7個(gè)宏塊的數(shù)據(jù);
步驟S402、在緩存器上,分別配置一個(gè)第一存儲(chǔ)空間和w個(gè)第二存儲(chǔ)空
間;
如圖5所示, 的大小設(shè)置為l個(gè)宏塊,每個(gè)第二存儲(chǔ)空間的大小設(shè)置為 Ax/個(gè)宏塊,本發(fā)明實(shí)施例中釆用大小為16x 16的宏塊,每一個(gè)塊的大小也 還可以是8x8, 4x4等。
本發(fā)明實(shí)施例為方便數(shù)據(jù)更新過程中的存儲(chǔ)空間尋址,進(jìn)一 步將搜索窗的 數(shù)據(jù)的w個(gè)第二存儲(chǔ)空間的地址信息表示為一個(gè)循環(huán)鏈表,將w個(gè)第二存儲(chǔ) 空間依次編號(hào)為-7,在該循環(huán)鏈表中,數(shù)據(jù)塊的存儲(chǔ)采用循環(huán)存儲(chǔ)方式。 由于該循環(huán)鏈表結(jié)構(gòu)上采用連續(xù)地址,可以通過模運(yùn)算實(shí)現(xiàn)循環(huán)存儲(chǔ)功能,在 該循環(huán)鏈表中緩存器上第二存儲(chǔ)空間的編號(hào)/為
/=y,<i(V^) (l)
其中為需要訪問的數(shù)據(jù)塊中各宏塊在參考幀中的列坐標(biāo)。
步驟S403 、初始化搜索窗的數(shù)據(jù)存儲(chǔ)空間;
對(duì)每一行的第一個(gè)宏塊進(jìn)行搜索匹配之前,都需要對(duì)存儲(chǔ)空間存儲(chǔ)的數(shù)據(jù) 進(jìn)行初始化,具體包括從內(nèi)存中讀取第一個(gè)宏塊的數(shù)據(jù)保存到第一存儲(chǔ)空間
"o中,將第一個(gè)宏塊的搜索窗的數(shù)據(jù)中的各數(shù)據(jù)塊對(duì)應(yīng)保存到第m。至m吣7共 計(jì)w個(gè)第二存儲(chǔ)空間中;
步驟S404、對(duì)當(dāng)前宏塊進(jìn)行搜索匹配;
步驟S405、判斷當(dāng)前宏塊是否為當(dāng)前行的最后一個(gè)宏塊,如果是則轉(zhuǎn)至步 驟S406,否則轉(zhuǎn)至步驟S409更新存儲(chǔ)空間中的數(shù)據(jù)后返回步驟S404繼續(xù)進(jìn) 行當(dāng)前行下一個(gè)宏塊的搜索匹配;
更新存儲(chǔ)空間中的數(shù)據(jù)具體包括從參考幀讀取下一個(gè)宏塊的數(shù)據(jù)并保存 到第一存儲(chǔ)空間"o中,以行為順序讀取下一個(gè)大小為7x/z的數(shù)據(jù)塊,放入循 環(huán)鏈表中余下的第m。個(gè)第二存儲(chǔ)空間中,同后面的w-7個(gè)第二存儲(chǔ)空間上存 儲(chǔ)的數(shù)據(jù)塊組成下一個(gè)宏塊的搜索窗的數(shù)據(jù);
步驟S406、判斷當(dāng)前宏塊是否為當(dāng)前幀的最后一個(gè)宏塊,如果是則執(zhí)行步 驟S407,否則執(zhí)行步驟S408繼續(xù)下一行各宏塊的搜索匹配;
步驟S407、結(jié)束當(dāng)前幀的運(yùn)動(dòng)估計(jì)。
本發(fā)明提供的實(shí)施例中,可以根據(jù)當(dāng)前宏塊的坐標(biāo)判斷當(dāng)前行或當(dāng)前幀的 最后一個(gè)宏塊。本實(shí)施例也并非嚴(yán)格限定了步驟S405 S406的執(zhí)行順序,本領(lǐng) 域技術(shù)人員完全可以進(jìn)行靈活調(diào)整。
如圖6所示,根據(jù)第二種存儲(chǔ)空間設(shè)計(jì),本發(fā)明實(shí)施例提供的第二種運(yùn)動(dòng) 估計(jì)方法主要包括如下步驟
步驟S601,根據(jù)需要的搜索窗大小/z ^h;,確定用于存儲(chǔ)進(jìn)行搜索匹配所
需數(shù)據(jù)的存儲(chǔ)空間,包括
兩個(gè)第一存儲(chǔ)空間,每一個(gè)第一存儲(chǔ)空間的大小可以存儲(chǔ)一個(gè)宏塊的數(shù)
據(jù);
w+/個(gè)第二存儲(chǔ)空間,每一個(gè)第二存儲(chǔ)空間的大小可以存儲(chǔ)搜索窗中的 一列宏塊的數(shù)據(jù),即/z^7個(gè)宏塊的數(shù)據(jù)量;
步驟S602,在緩存器上,分別配置兩個(gè)第一存儲(chǔ)空間和w+7個(gè)第二存儲(chǔ)
空間;
如圖7所示,每一個(gè)第一存儲(chǔ)空間的大小設(shè)置為1個(gè)宏塊,其中一個(gè) 用于保存當(dāng)前宏塊的數(shù)據(jù),另一個(gè) 用于保存相鄰下一個(gè)宏塊的數(shù)據(jù),或者 用于保存當(dāng)前宏塊的數(shù)據(jù),"o用于保存相鄰下一個(gè)宏塊的數(shù)據(jù);該w+7個(gè)第 二存儲(chǔ)空間中,其中w個(gè)第二存儲(chǔ)空間用來保存當(dāng)前宏塊的搜索窗的數(shù)據(jù),搜 索匹配的結(jié)果就是從搜索窗的數(shù)據(jù)中找到最佳的匹配塊,余下的一個(gè)第二存儲(chǔ) 空間用來保存下一個(gè)宏塊搜索窗中新增的 一個(gè)數(shù)據(jù)塊。本發(fā)明實(shí)施例中采用大 小為16xl6的宏塊,本領(lǐng)域技術(shù)人員可知,塊的大小為8x8, 4x4等時(shí)都可 以同樣實(shí)施本發(fā)明提供的技術(shù)方案。
本發(fā)明實(shí)施例為方便存儲(chǔ)空間數(shù)據(jù)更新過程中的存儲(chǔ)空間尋址,進(jìn)一步將 搜索窗的數(shù)據(jù)的w +7個(gè)第二存儲(chǔ)空間的地址信息表示為如圖8所示的一個(gè)循 環(huán)鏈表,將vv+7個(gè)第二存儲(chǔ)空間依次編號(hào)為0~w,在該循環(huán)鏈表中,數(shù)據(jù)塊的 存儲(chǔ)采用循環(huán)存儲(chǔ)方式。由于該循環(huán)鏈表結(jié)構(gòu)上采用連續(xù)地址,可以通過模運(yùn) 算實(shí)現(xiàn)循環(huán)存儲(chǔ)功能,在該循環(huán)鏈表中緩存器上第二存儲(chǔ)空間的編號(hào)/為
/=/,<^ +7」 (2 )
其中y為需要訪問的數(shù)據(jù)塊中各宏塊在參考幀中的列坐標(biāo),對(duì)每個(gè)當(dāng)前宏 塊進(jìn)行搜索匹配的搜索窗的數(shù)據(jù)占用其中w個(gè)第二存儲(chǔ)空間,余下的另外一個(gè) 第二存儲(chǔ)空間用來預(yù)存放用于下一個(gè)宏塊進(jìn)行搜索匹配時(shí)搜索窗中增加的一 列宏塊的數(shù)據(jù)。
第一存儲(chǔ)空間也可以采用類似方式,本領(lǐng)域技術(shù)人員可以方便實(shí)現(xiàn),這里 不再詳細(xì)描述。
步驟S603、初始化搜索窗的數(shù)據(jù)存儲(chǔ)空間;
對(duì)每一行的第一個(gè)宏塊進(jìn)行搜索匹配之前,都需要對(duì)存儲(chǔ)空間存儲(chǔ)的數(shù)據(jù)
進(jìn)行初始化,具體包括從內(nèi)存中讀取第一個(gè)宏塊的數(shù)據(jù)保存到第一存儲(chǔ)空間
"o中,將第一個(gè)宏塊的搜索窗的數(shù)據(jù)中的各數(shù)據(jù)塊第mo至m『;共計(jì)w個(gè)對(duì)應(yīng) 保存到第二存儲(chǔ)空間中;
步驟S6041-S6042、啟動(dòng)搜索匹配單元對(duì)當(dāng)前宏塊進(jìn)行搜索匹配,同時(shí)從 參考幀讀取下一個(gè)宏塊的數(shù)據(jù)并保存到第一存儲(chǔ)空間"7中,以行為順序讀取下 一個(gè)大小為/z x7的數(shù)據(jù)塊,放入循環(huán)鏈表中余下的第附w個(gè)第二存儲(chǔ)空間中, 同前面w刁個(gè)第二存儲(chǔ)空間上存儲(chǔ)的數(shù)據(jù)塊組成下一個(gè)宏塊的搜索窗的數(shù)據(jù);
步驟S605、判斷當(dāng)前宏塊是否為當(dāng)前行的最后一個(gè)宏塊,如果是則轉(zhuǎn)至步 驟S606,否則返回步驟S6041和S6042;
步驟S606、判斷當(dāng)前宏塊是否為當(dāng)前幀的最后一個(gè)宏塊,如果是則執(zhí)行步 驟S607,否則執(zhí)行步驟S608繼續(xù)進(jìn)行下一行各宏塊的搜索匹配;
步驟S607、結(jié)束當(dāng)前幀的運(yùn)動(dòng)估計(jì)。
如圖9和圖10所示,為本發(fā)明實(shí)施例提供的一種運(yùn)動(dòng)估計(jì)裝置,包括 內(nèi)存901,用于存儲(chǔ)進(jìn)行搜索匹配的當(dāng)前幀各行宏塊的數(shù)據(jù)和參考幀各行 宏塊的數(shù)據(jù);
緩存器902,用于緩存搜索匹配需要的數(shù)據(jù);
搜索匹配單元903,用于根據(jù)緩存器中緩存的數(shù)據(jù)對(duì)當(dāng)前宏塊進(jìn)行搜索匹
配;
數(shù)據(jù)更新單元904,用于在搜索匹配過程中更新緩存器中的數(shù)據(jù)。
參見圖9所示,緩存器902通過數(shù)據(jù)線分別連接搜索匹配單元903和數(shù)據(jù) 更新單元904,內(nèi)存901 、搜索匹配單元903和數(shù)據(jù)更新單元904之間通過系 統(tǒng)總線連接;這種實(shí)施例方式中,數(shù)據(jù)更新單元904從內(nèi)存901讀取數(shù)據(jù)時(shí), 占用系統(tǒng)總線帶寬;
參見圖10所示,緩存器902通過數(shù)據(jù)線分別連接搜索匹配單元903和數(shù) 據(jù)更新單元904,搜索匹配單元903通過獨(dú)立總線連接內(nèi)存卯1,內(nèi)存901、搜 索匹配單元903和數(shù)據(jù)更新單元904還分別通過系統(tǒng)總線連接;這種實(shí)施例方 式中,數(shù)據(jù)更新單元904從內(nèi)存901讀取數(shù)據(jù)時(shí),利用獨(dú)立總線進(jìn)行數(shù)據(jù)傳輸, 不需要占用系統(tǒng)總線帶寬;
根據(jù)本發(fā)明實(shí)施例提供的兩種運(yùn)動(dòng)估計(jì)方式,緩存器902對(duì)應(yīng)可以設(shè)置不
同數(shù)量的第一存儲(chǔ)空間和第二存儲(chǔ)空間,搜索匹配單元卯3和數(shù)據(jù)更新單元 904之間配合完成各宏塊的搜索匹配。
其中采用第一種運(yùn)動(dòng)估計(jì)方法時(shí),緩存器902上設(shè)置的存儲(chǔ)空間具體包
括
一個(gè)第一存儲(chǔ)空間"o,用于存儲(chǔ)進(jìn)行搜索匹配的當(dāng)前宏塊的數(shù)據(jù),第一存 儲(chǔ)空間的大小可以存儲(chǔ)一個(gè)宏塊的數(shù)據(jù);
w個(gè)第二存儲(chǔ)空間附0至附^每一個(gè)第二存儲(chǔ)空間上分別存儲(chǔ)搜索窗中 的一列宏塊,大小可以存儲(chǔ)hxj個(gè)宏塊的數(shù)據(jù);
搜索匹配單元卯3完成當(dāng)前宏塊搜索匹配后觸發(fā)數(shù)據(jù)更新單元904進(jìn)行數(shù) 據(jù)更新操作,數(shù)據(jù)更新單元904完成數(shù)據(jù)更新揭:作后觸發(fā)搜索匹配單元903進(jìn) 行搜索匹配。
仍參見如圖9和圖IO所示,還可以利用獨(dú)立的同步控制單元905、第一寄 存器9061和第二寄存器9062協(xié)調(diào)搜索匹配單元903和數(shù)據(jù)更新單元904之間 的配合,第一寄存器9061用于保存搜索匹配單元903的狀態(tài)位,第二寄存器 9062用于保存數(shù)據(jù)更新單元904的狀態(tài)位,具體工作原理為
同步控制單元905觸發(fā)數(shù)據(jù)更新單元904進(jìn)行數(shù)據(jù)更新操作,并將第二寄 存器9062置為繁忙,例如用1個(gè)比特位,置1時(shí)標(biāo)識(shí)繁忙,置0時(shí)標(biāo)識(shí)空閑, 并監(jiān)測(cè)第二寄存器9062;
數(shù)據(jù)更新單元904完成數(shù)據(jù)更新后將第二寄存器9062置為空閑;
同步控制單元905監(jiān)測(cè)到第二寄存器9062被置為空閑后,觸發(fā)搜索匹配 單元903對(duì)當(dāng)前宏塊進(jìn)行搜索匹配,并將第一寄存器9061置為繁忙,同樣例 如用1個(gè)比特位,置1時(shí)標(biāo)識(shí)繁忙,置0時(shí)標(biāo)識(shí)空閑,并監(jiān)測(cè)第一寄存器9061;
搜索匹配單元卯3完成當(dāng)前宏塊的搜索匹配后將第一寄存器9061置為空
閑;
同步控制單元905監(jiān)測(cè)到第一寄存器卯61被置為空閑后,再次觸發(fā)數(shù)據(jù) 更新單元904進(jìn)行數(shù)據(jù)更新操作,依次類推,直到完成所有宏塊的搜索匹配。
采用采用第二種運(yùn)動(dòng)估計(jì)方法時(shí),緩存器902上設(shè)置的存儲(chǔ)空間具體包括 兩個(gè)第一存儲(chǔ)空間,每一個(gè)第一存儲(chǔ)空間的大小可以存儲(chǔ)一個(gè)宏塊的數(shù)
據(jù);
w+7個(gè)第二存儲(chǔ)空間,每一個(gè)第二存儲(chǔ)空間的大小可以存儲(chǔ)搜索窗中的 一列宏塊的數(shù)據(jù)的數(shù)據(jù)量,即個(gè)宏塊的數(shù)據(jù)量;
搜索匹配單元903和凄t據(jù)更新單元904之間協(xié)調(diào)完成當(dāng)前宏塊的4叟索匹配 和下一個(gè)宏塊的數(shù)據(jù)更新,較佳的,仍利用獨(dú)立的同步控制單元905、第一寄 存器9061和第二寄存器9062協(xié)調(diào)搜索匹配單元903和數(shù)據(jù)更新單元卯4之間 的配合,第一寄存器9061用于保存搜索匹配單元903的狀態(tài)位,第二寄存器 9062用于保存數(shù)據(jù)更新單元904的狀態(tài)位,具體工作原理為
同步控制單元卯5觸發(fā)搜索匹配單元903進(jìn)行4叟索匹配,同時(shí)觸發(fā)數(shù)據(jù)更 新單元904進(jìn)行數(shù)據(jù)更新操:作,并將第一寄存器9061和第二寄存器9062都置 為繁忙;
搜索匹配單元903完成當(dāng)前宏塊的搜索匹配后將第一寄存器9061置為空 閑,數(shù)據(jù)更新單元904完成數(shù)據(jù)更新后將第二寄存器9062置為空閑;
同步控制單元905監(jiān)測(cè)到第一寄存器9061和第二寄存器9062都被置為空 閑后,再次同時(shí)觸發(fā)搜索匹配單元903和數(shù)據(jù)更新單元904,依次類推,直到 完成所有宏塊的搜索匹配。
由于數(shù)據(jù)更新過程中,搜索窗的數(shù)據(jù)包括參考幀中的實(shí)際數(shù)據(jù),可能還包 括加邊宏塊的數(shù)據(jù),因此,數(shù)據(jù)更新單元904進(jìn)一步包括
數(shù)據(jù)讀取子單元,用于從內(nèi)存讀取搜索窗中參考幀宏塊的數(shù)據(jù)并保存到對(duì) 應(yīng)的第一存儲(chǔ)空間中;
加邊處理子單元,用于生成搜索窗的數(shù)據(jù)中加邊宏塊的數(shù)據(jù),并保存到對(duì) 應(yīng)的第一存儲(chǔ)空間中。
對(duì)于本領(lǐng)域技術(shù)人員來說,完全可以根據(jù)本發(fā)明實(shí)施例公開的內(nèi)容在編碼 系統(tǒng)或多媒體系統(tǒng)中實(shí)現(xiàn)運(yùn)動(dòng)估計(jì)的相關(guān)控制,并且顯而易見,同步控制單元
905的功能可以由搜索匹配單元903或數(shù)據(jù)更新單元904承擔(dān),或者由編碼系 統(tǒng)或多々某體系統(tǒng)中的處理器承擔(dān)。
根據(jù)本發(fā)明實(shí)施例提供的技術(shù)方案,在設(shè)置搜索窗的數(shù)據(jù)存儲(chǔ)空間時(shí),為 搜索窗的數(shù)據(jù)中的每一列宏塊的數(shù)據(jù)設(shè)置獨(dú)立的存儲(chǔ)空間,并在更新運(yùn)動(dòng)估計(jì) 的搜索窗的數(shù)據(jù)時(shí),僅更新搜索窗移動(dòng)后發(fā)生變化的一列宏塊的數(shù)據(jù),從而將 搜索窗的數(shù)據(jù)對(duì)緩存器容量的占用壓縮到了最小,減小了緩存器的體積,并且 由于每一次數(shù)據(jù)更新操作僅更新其中一列宏塊的數(shù)據(jù),從而保證了運(yùn)行估計(jì)的 性能;
進(jìn)一步在本發(fā)明實(shí)施例提供的另一種實(shí)施方式中,利用冗余存儲(chǔ)空間實(shí)現(xiàn) 了在搜索匹配的同時(shí)完成數(shù)據(jù)更新操作,從而在增加很小的存儲(chǔ)空間的基礎(chǔ) 上,使運(yùn)動(dòng)估計(jì)的性能得到進(jìn)一步的提高。
本發(fā)明實(shí)施例中,較佳的,當(dāng)本發(fā)明實(shí)施例提供的搜索匹配單元用于編碼 系統(tǒng)或多媒體處理系統(tǒng)中時(shí),數(shù)據(jù)更新單元和搜索匹配單元的功能都可以由編 碼系統(tǒng)或多媒體處理系統(tǒng)中的處理器承擔(dān),這樣可以節(jié)省整個(gè)編碼系統(tǒng)或多媒 體處理系統(tǒng)中硬件單元的面積。但是,較佳的,緩存器為高速緩存器模塊,數(shù) 據(jù)更新單元采用DMA,獨(dú)立于系統(tǒng)中的處理器,可以減少系統(tǒng)處理器資源的 占用,進(jìn)一步提升整個(gè)系統(tǒng)的編碼性能。
明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及 其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1、一種運(yùn)動(dòng)估計(jì)方法,所述運(yùn)動(dòng)估計(jì)的系統(tǒng)包括緩存器、搜索匹配單元和數(shù)據(jù)更新單元,其特征在于,所述方法包括根據(jù)所述緩存器中保存的當(dāng)前宏塊的數(shù)據(jù)和當(dāng)前宏塊搜索窗的數(shù)據(jù),通過所述搜索匹配單元對(duì)當(dāng)前宏塊進(jìn)行搜索匹配的同時(shí),所述數(shù)據(jù)更新單元獲得下一個(gè)宏塊搜索窗的最后一列宏塊的數(shù)據(jù)并存儲(chǔ)到所述緩存器中。
2、 如權(quán)利要求1所述的方法,其特征在于,所述當(dāng)前宏塊搜索窗或下一 個(gè)宏塊搜索窗包括/2行w列個(gè)宏塊,所述/2和w分別為大于等于3的奇數(shù), 所述最后一列宏塊的數(shù)據(jù)和所述當(dāng)前宏塊搜索窗的數(shù)據(jù)中的后/2行W-7列宏塊 的數(shù)據(jù)組成下一個(gè)宏塊搜索窗的數(shù)據(jù);其中所述緩存器包括w +7個(gè)第二存儲(chǔ)空間,所述當(dāng)前宏塊搜索窗的數(shù)據(jù)保存在所述w +7個(gè)第二存儲(chǔ)空間中的w個(gè)第 二存儲(chǔ)空間上,每一個(gè)第二存儲(chǔ)空間用于保存行1列宏塊的數(shù)據(jù);所述下一個(gè)宏塊搜索窗的最后一列宏塊的數(shù)據(jù)保存在所述w 個(gè)第二存 儲(chǔ)空間中未用于保存當(dāng)前宏塊搜索窗的數(shù)據(jù)的 一 個(gè)第二存儲(chǔ)空間上。
3、 如權(quán)利要求2所述的方法,其特征在于,在所述搜索匹配單元對(duì)當(dāng)前 宏塊進(jìn)行搜索匹配時(shí),還獲得下一個(gè)宏塊的數(shù)據(jù)并保存到所述緩存器上,所述 下一個(gè)宏塊和當(dāng)前宏塊位于當(dāng)前幀中的同一行。
4、 如權(quán)利要求3所述的方法,其特征在于,所述緩沖器包括兩個(gè)第一存 儲(chǔ)空間,其中所述當(dāng)前宏塊的數(shù)據(jù)和下一個(gè)宏塊的數(shù)據(jù)分別保存在其中一個(gè)第一存儲(chǔ) 空間上。
5、 如權(quán)利要求4所述的方法,其特征在于,若所述當(dāng)前宏塊為當(dāng)前幀中 各行的第一個(gè)宏塊,則在所述根據(jù)緩存器中保存的當(dāng)前宏塊搜索窗的數(shù)據(jù)和當(dāng) 前宏塊的數(shù)據(jù),對(duì)當(dāng)前宏塊進(jìn)行搜索匹配之前,所述方法還包括獲得所述第 一個(gè)宏塊的數(shù)據(jù)并保存到兩個(gè)第 一存儲(chǔ)空間中的 一個(gè)上,以及獲得所述第一個(gè)宏塊搜索窗的各列宏塊的數(shù)據(jù),并保存在所述w +7個(gè)第二存 儲(chǔ)空間中的w個(gè)第二存儲(chǔ)空間上。
6、 如權(quán)利要求2-5任一所述的方法,其特征在于,所述w^/個(gè)第二存儲(chǔ) 空間順序編址,所述當(dāng)前幀各行的第一個(gè)宏塊搜索窗的A行w列個(gè)宏塊中,從 第一列開始至第w列的宏塊的數(shù)據(jù),按照所在列的排列順序?qū)?yīng)保存在第一至 第w個(gè)第二存儲(chǔ)空間上。
7、 一種運(yùn)動(dòng)估計(jì)裝置,其特征在于,所述裝置包括內(nèi)存,用于存儲(chǔ)進(jìn)行搜索匹配的當(dāng)前幀各行宏塊的數(shù)據(jù)和參考幀各行宏塊 的數(shù)據(jù);緩存器,用于緩存搜索匹配所需的數(shù)據(jù);搜索匹配單元,用于根據(jù)緩存器中保存的當(dāng)前宏塊的數(shù)據(jù)和當(dāng)前宏塊搜索 窗的數(shù)據(jù),對(duì)當(dāng)前宏塊進(jìn)行搜索匹配;數(shù)據(jù)更新單元,用于在對(duì)當(dāng)前宏塊進(jìn)行搜索匹配時(shí),獲得下一個(gè)宏塊搜索 窗的最后一列宏塊的數(shù)據(jù)并保存到所述緩存器中。
8、 如權(quán)利要求7所述的裝置,其特征在于,所述當(dāng)前宏塊搜索窗或下一 個(gè)宏塊搜索窗包括/z行w列個(gè)宏塊,所述/z和n;分別為大于等于3的奇數(shù), 所述最后一列宏塊的數(shù)據(jù)和當(dāng)前宏塊搜索窗的數(shù)據(jù)中的后/ 行^-/列宏塊的數(shù) 據(jù)組成下一個(gè)宏塊搜索窗的數(shù)據(jù),其中所述緩存器包括w 個(gè)第二存儲(chǔ)空間,所述當(dāng)前宏塊搜索窗的數(shù)據(jù)保存 在所述w 個(gè)第二存儲(chǔ)空間中的w個(gè)第二存儲(chǔ)空間上,每一個(gè)第二存儲(chǔ)空間 用于保存行1列宏塊的數(shù)據(jù);所述下一個(gè)宏塊搜索窗的最后一列宏塊的數(shù)據(jù)存在所述w +7個(gè)第二存儲(chǔ) 空間中未用于保存當(dāng)前宏塊搜索窗的數(shù)據(jù)的一個(gè)第二存儲(chǔ)空間上。
9、 如權(quán)利要求8所述的裝置,其特征在于,數(shù)據(jù)更新單元還用于在對(duì)當(dāng) 前宏塊進(jìn)行搜索匹配時(shí),還獲得下一個(gè)宏塊的數(shù)據(jù)并保存到所述緩存器上,所 述下一個(gè)宏塊和當(dāng)前宏塊位于當(dāng)前幀中的同 一行。
10、 如權(quán)利要求9所述的裝置,其特征在于,所述緩沖器包括兩個(gè)第一存 儲(chǔ)空間,其中所述當(dāng)前宏塊的數(shù)據(jù)和下一個(gè)宏塊的數(shù)據(jù)分別保存在其中一個(gè)第一存儲(chǔ) 空間上。
11、 如權(quán)利要求IO所述的裝置,其特征在于,所述數(shù)據(jù)更新單元還用于 若所述當(dāng)前宏塊為當(dāng)前幀中各行的第一個(gè)宏塊時(shí),則在所述搜索匹配單元根據(jù)緩存器中保存的當(dāng)前宏塊搜索窗的數(shù)據(jù)和當(dāng)前宏塊的數(shù)據(jù),對(duì)當(dāng)前宏塊進(jìn) 行搜索匹配之前,獲得所述第一個(gè)宏塊的數(shù)據(jù)并保存到兩個(gè)第一存儲(chǔ)空間中的 一個(gè)上,以及獲得所述第一個(gè)宏塊搜索窗的各列宏塊的數(shù)據(jù),并保存在所述w + /個(gè)第二存儲(chǔ)空間中的w個(gè)第二存儲(chǔ)空間上。
12、 如權(quán)利要求7-ll任一所述的裝置,其特征在于,還包括 第一寄存器,用于保存所述搜索匹配單元的狀態(tài)位; 第二寄存器,用于保存所述數(shù)據(jù)更新單元的狀態(tài)位;同步控制單元,用于通過所述第一寄存器和第二寄存器,對(duì)搜索匹配單元 和數(shù)據(jù)更新單元進(jìn)行同步控制,其中所述搜索匹配單元完成當(dāng)前宏塊的搜索 匹配后將所述第一寄存器中的狀態(tài)位置為空閑狀態(tài),所述數(shù)據(jù)更新單元完成下 一個(gè)宏塊進(jìn)行搜索匹配所需數(shù)據(jù)的存儲(chǔ)后將所述第二寄存器中的狀態(tài)位置為 空閑狀態(tài),所述同步控制單元在第一寄存器和第二寄存器的狀態(tài)位全部被置為 空閑狀態(tài)時(shí)同步觸發(fā)所述搜索匹配單元和數(shù)據(jù)更新單元。
13、 如權(quán)利要求7-ll任一所述的裝置,其特征在于,所述緩存器連接在數(shù) 據(jù)更新單元和搜索匹配單元之間,所述搜索匹配單元、數(shù)據(jù)更新單元和內(nèi)存之 間通過系統(tǒng)總線連接;或者所述緩存器連接在數(shù)據(jù)更新單元和搜索匹配單元之間,所述數(shù)據(jù)更新單元 和內(nèi)存之間通過獨(dú)立總線連接。
14、 一種多媒體處理器,其特征在于,包括權(quán)利要求7-13任一所述的運(yùn) 動(dòng)估計(jì)裝置。
15、 一種運(yùn)動(dòng)估計(jì)方法,所述運(yùn)動(dòng)估計(jì)的系統(tǒng)包括緩存器、搜索匹配單元 和數(shù)據(jù)更新單元,其特征在于,所述方法包括根據(jù)所述緩存器中保存的當(dāng)前宏塊的數(shù)據(jù)和當(dāng)前宏塊搜索窗的數(shù)據(jù),通過 所述搜索匹配單元對(duì)當(dāng)前宏塊進(jìn)行搜索匹配;所述數(shù)據(jù)更新單元將所述緩存器中保存的上一宏塊的數(shù)據(jù)更新為所述當(dāng) 前宏塊的數(shù)據(jù);所述數(shù)據(jù)更新單元將所述緩存器中上一宏塊搜索窗第一列宏塊的數(shù)據(jù)更 新為當(dāng)前宏塊搜索窗最后一列宏塊的數(shù)據(jù)。
16、 如權(quán)利要求15所述的方法,其特征在于,所述當(dāng)前宏塊搜索窗或上 一個(gè)宏塊搜索窗包括/z行w列個(gè)宏塊,所述/ 和w分別為大于等于3的奇數(shù), 所述緩存器包括一個(gè)第 一存儲(chǔ)空間和w個(gè)第二存儲(chǔ)空間,其中所述第一存^f諸空間用于保存上一宏塊的凄史據(jù)或者當(dāng)前宏塊的數(shù)據(jù),所述當(dāng) 前宏塊和上一宏塊位于當(dāng)前幀中的同 一行;所述w個(gè)第二存儲(chǔ)空間中用于保存搜索窗的數(shù)據(jù),每一個(gè)第二存儲(chǔ)空間用 于保存搜索窗中的1列宏塊的數(shù)據(jù)。
17、 如權(quán)利要求16所述的方法,其特征在于,當(dāng)所述當(dāng)前宏塊為當(dāng)前幀 中每行的第一個(gè)宏塊時(shí),所述方法還包括將所述第一個(gè)宏塊的數(shù)據(jù)保存到緩存器的第 一存儲(chǔ)空間上; 將所述第一個(gè)宏塊搜索窗的每一列宏塊的數(shù)據(jù)分別保存到所述w個(gè)第二 存儲(chǔ)空間上;并根據(jù)所述第一存儲(chǔ)空間中保存的當(dāng)前宏塊的數(shù)據(jù),以及所述w個(gè)第二存儲(chǔ) 空間中保存的搜索窗的數(shù)據(jù),對(duì)當(dāng)前宏塊進(jìn)行搜索匹配。
18、 如權(quán)利要求16或17所述的方法,其特征在于,所述w個(gè)第二存儲(chǔ)空 間順序編址,所述每一行的第一個(gè)宏塊搜索窗的/z行w列個(gè)宏塊中,從第一列 開始至第w列宏塊的數(shù)據(jù),按照所在列的排列順序?qū)?yīng)保存在第一至第w個(gè) 第二存儲(chǔ)空間上。
19、 一種運(yùn)動(dòng)估計(jì)裝置,包括用于存儲(chǔ)進(jìn)行搜索匹配的當(dāng)前幀各行宏塊的 數(shù)據(jù)和參考幀各行宏塊的數(shù)據(jù)的內(nèi)存;其特征在于,還包括緩存器,用于緩存運(yùn)動(dòng)估計(jì)所需的數(shù)據(jù);數(shù)據(jù)更新單元,用于將緩存器中保存的上一宏塊的凄史據(jù)更新為當(dāng)前宏塊的 數(shù)據(jù),所述當(dāng)前宏塊和上一宏塊位于當(dāng)前幀中的同一行;并將緩存器中上一宏 塊搜索窗第一列宏塊的數(shù)據(jù)更新為當(dāng)前宏塊搜索窗最后一列宏塊的數(shù)據(jù);搜索匹配單元,用于根據(jù)所述當(dāng)前宏塊的數(shù)據(jù),以及所述搜索窗的數(shù)據(jù), 對(duì)當(dāng)前宏塊進(jìn)行搜索匹配。
20、 如權(quán)利要求19所述的裝置,其特征在于,所述當(dāng)前宏塊搜索窗或上 一個(gè)宏塊搜索窗包括A行w列個(gè)宏塊,所述/2和w分別為大于等于3的奇數(shù), 所述緩存器包括一個(gè)第一存儲(chǔ)空間和w個(gè)第二存儲(chǔ)空間,其中所述第一存儲(chǔ)空間用于保存上一宏塊的數(shù)據(jù)或者當(dāng)前宏塊的數(shù)據(jù); 每一個(gè)第二存儲(chǔ)空間用于保存搜索窗的數(shù)據(jù)中的l列宏塊的數(shù)據(jù)。
21、 一種多媒體處理器,其特征在于,包括權(quán)利要求19或20所述的運(yùn)動(dòng) 估計(jì)裝置。
全文摘要
本發(fā)明實(shí)施例提供運(yùn)動(dòng)估計(jì)方法、裝置和多媒體處理器,用以在保證運(yùn)動(dòng)估計(jì)所需帶寬資源的基礎(chǔ)上盡量減小緩存器的大小。由于本發(fā)明實(shí)施例提供的技術(shù)方案在更新運(yùn)動(dòng)估計(jì)的搜索窗的數(shù)據(jù)時(shí),僅更新搜索窗移動(dòng)后發(fā)生變化的一列宏塊的數(shù)據(jù),從而減少了數(shù)據(jù)更新量,提高了運(yùn)行估計(jì)的性能;結(jié)合本發(fā)明實(shí)施例中的數(shù)據(jù)更新操作方法,本發(fā)明實(shí)施例在緩存器上設(shè)置了搜索窗的數(shù)據(jù)所需的最小存儲(chǔ)空間,從而極大的減小了存儲(chǔ)空間的占用,減小了緩存器的體積。
文檔編號(hào)H04N7/26GK101340588SQ200810147538
公開日2009年1月7日 申請(qǐng)日期2008年8月20日 優(yōu)先權(quán)日2008年8月20日
發(fā)明者昕 陽 申請(qǐng)人:炬力集成電路設(shè)計(jì)有限公司