欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種運動補償數(shù)據(jù)載入裝置及方法

文檔序號:7623222閱讀:177來源:國知局
專利名稱:一種運動補償數(shù)據(jù)載入裝置及方法
技術(shù)領(lǐng)域
本發(fā)明涉及圖像處理領(lǐng)域,特別是涉及一種對圖像進(jìn)行運動補償數(shù)據(jù)載入的裝置及方法。
背景技術(shù)
目前的視頻壓縮編碼技術(shù)通常采用基于塊的運動估計和離散傅立葉變換(DCT)的混合編碼方式對運動圖像進(jìn)行編碼。
運動估計的過程,即在當(dāng)前幀的前一幀或前幾幀中搜索與當(dāng)前處理的塊最“相似”的塊的過程。若在以前的幀中找到與當(dāng)前幀中的塊最相似的塊,則使用所述找到的塊作為當(dāng)前塊的預(yù)測塊,并記錄下當(dāng)前塊與預(yù)測塊之間的距離(即當(dāng)前塊的運動矢量(MV))。這個用作預(yù)測塊的塊在本領(lǐng)域中叫做參考塊,存在參考塊的幀叫做參考幀。視頻編碼器將當(dāng)前塊與參考塊的差值(殘差)和當(dāng)前塊的運動矢量進(jìn)行編碼,從而達(dá)到減小傳輸或存儲數(shù)據(jù)量的目的。
運動補償是運動估計的逆過程,是視頻解碼器的一部分。運動補償?shù)脑頌楦鶕?jù)當(dāng)前塊的位置和運動矢量計算出參考塊在參考幀中的位置,并從該位置取出參考塊與殘差相加,得到當(dāng)前塊的重構(gòu)值(經(jīng)過解碼恢復(fù)出來的圖像的原始值)。運動補償?shù)膶崿F(xiàn)要求存儲器能夠緩存一至多個參考幀,因此一般采用解碼芯片外部的動態(tài)存儲器(SDRAM)來保存參考幀。
最初的運動估計和運動補償操作是以宏塊(大小16×16個像素的塊)為單位。為了更好的匹配圖像細(xì)節(jié)的運動,目前許多視頻編解碼協(xié)議(如H.263、H.264或MPEG-4等)都允許基于更小的塊(8×8塊、4×4塊)進(jìn)行運動估計和運動補償,這就導(dǎo)致一個宏塊帶有多個運動矢量。由于宏塊內(nèi)的每個獨立子塊都有一個自己的運動矢量,所以每個獨立子塊都需要單獨進(jìn)行運動補償操作。在運動補償?shù)臄?shù)據(jù)載入時就需要更頻繁地從存儲參考幀的存儲器(SDRAM)中讀取尺寸更小的參考塊。因此多MV的運動補償需要占用更多的系統(tǒng)存儲帶寬。另外,盡管很多視頻編解碼協(xié)議的運動估計和運動補償操作都只使用前一幀作為當(dāng)前幀中所有宏塊的參考幀,而H.264協(xié)議則允許當(dāng)前幀內(nèi)的各個宏塊及其子塊基于多個不同的參考幀進(jìn)行運動估計和運動補償,這就導(dǎo)致了在運動補償過程中必須在不同參考幀問切換以讀取參考塊,因此讀取位置更加不連續(xù),使得讀取SDRAM的次數(shù)增多,占用更多的系統(tǒng)存儲帶寬。
現(xiàn)有的一種運動補償數(shù)據(jù)載入方案為幀緩存方案,其載入裝置結(jié)構(gòu)示意圖參見圖1所示。即在開始一幀圖像的運動補償前,將整個參考幀全部載入到解碼芯片內(nèi)部的緩存(靜態(tài)隨機訪問存儲器(SRAM))中,而后的每個宏塊的運動補償都從片上的SRAM中讀取參考塊。
本方案必須在解碼芯片內(nèi)集成一塊能夠緩存至少一幀圖像的SRAM,占用面積較大;在載入多參考幀進(jìn)行運動補償時,則載入時間較長,造成系統(tǒng)存儲帶寬長期被占用的問題;以幀為緩存單位限制了載入圖像的大小,無法支持對尺寸更大的圖像進(jìn)行解碼,不利于功能擴充。
現(xiàn)有的另一種運動補償數(shù)據(jù)載入方案為以參考塊為單位逐一載入的方案,其載入裝置結(jié)構(gòu)示意圖參見圖2所示。即對每個MV都以一次讀操作來完成從參考幀中載入對應(yīng)的參考塊。在實現(xiàn)H.264協(xié)議所規(guī)定的運動補償時,一幀圖像包括若干個宏塊,一個宏塊最多又包括16個4×4像素的獨立子塊,所以一個宏塊最多需要16次載入操作(即每次載入一個4×4像素的參考塊)。
本方案在讀取小尺寸圖像塊時頻繁的行間切換引入了過多的額外操作,導(dǎo)致SDRAM讀寫效率低下;各個子塊的參考塊有可能相互重疊,單獨載入各個子塊的參考塊會造成存儲帶寬的浪費;由各個子塊的參考塊引起的離散讀操作增加了系統(tǒng)總線的仲裁次數(shù),延長了載入時間,影響了視頻解碼器的性能。

發(fā)明內(nèi)容
本發(fā)明提供一種運動補償數(shù)據(jù)載入裝置,用以解決現(xiàn)有技術(shù)存在以小尺寸圖像塊為載入單位時,存儲器的讀寫效率低下,造成系統(tǒng)資源浪費的問題。
基于本發(fā)明的裝置,本發(fā)明還提供了一種運動補償數(shù)據(jù)載入方法。
本發(fā)明裝置包括存儲器,用以存儲當(dāng)前幀中各宏塊內(nèi)的子塊對應(yīng)的參考塊數(shù)據(jù);讀控器,用以讀取存儲器中的數(shù)據(jù)并輸出;至少兩個計算截取模塊,用以分別計算當(dāng)前宏塊內(nèi)的各子塊對應(yīng)的參考塊的位置信息,以及截取所述讀控器輸出的數(shù)據(jù),并將所述數(shù)據(jù)緩存;載入位置匯總模塊,用以根據(jù)各計算截取模塊發(fā)來的信息,將當(dāng)前載入行中相鄰或重疊的像素點合并為一段像素區(qū)間,并將所述像素區(qū)間的位置信息發(fā)出;讀地址生成模塊,用以根據(jù)載入位置匯總模塊發(fā)來的信息,計算應(yīng)訪問的存儲地址和選取猝發(fā)讀序列,以觸發(fā)讀控器。
所述存儲器為同步動態(tài)隨機訪問存儲器(SDRAM)。所述SDRAM支持猝發(fā)讀寫操作。
所述參考塊的位置信息包括該參考塊所在幀的幀號,以及起始載入行的行號、起始列號和結(jié)束列號。
在所述載入位置匯總模塊中存在譯碼電路,用以定位當(dāng)前行中存在待載入像素點的區(qū)間和不存在待載入像素點的區(qū)間。所述譯碼電路的數(shù)量與計算截取模塊的數(shù)量對應(yīng)。
通過各譯碼電路,將宏塊內(nèi)各子塊對應(yīng)的參考塊在當(dāng)前行中的像素點區(qū)間譯碼后,按照各參考塊的位置將各譯碼電路的輸出信號映射到一維坐標(biāo)軸上,并將映射后的結(jié)果相或,得出當(dāng)前行中存在待載入像素點的區(qū)間和不存在待載入像素點的區(qū)間。
所述像素區(qū)間的位置信息包括該像素區(qū)間在其所在幀中的行號、行內(nèi)起始位置和長度信息。
所述SDRAM讀地址生成模塊根據(jù)所述行號和行內(nèi)起始位置信息,計算應(yīng)訪問的SDRAM地址;以及根據(jù)所述像素區(qū)間長度和各區(qū)間之間的位置關(guān)系選取猝發(fā)讀序列。
所述SDRAM讀地址生成模塊中包括下列電路,用以獲取像素區(qū)間的位置信息第一電路,用于將所述坐標(biāo)軸上待載入像素點的離散區(qū)間的邊緣以電平跳變點的形式表示;優(yōu)先級編碼器,用以將所述坐標(biāo)軸上最左邊的跳變點作為當(dāng)前跳變點進(jìn)行編碼,并根據(jù)編碼后的信息得出當(dāng)前跳變點的位置信息;第二電路,用以將所述第一電路得到的跳變點數(shù)量置于一個計數(shù)器,使在計數(shù)范圍內(nèi)的每一時鐘周期觸發(fā)一次所述優(yōu)先級編碼器;第三電路,用以在獲取了當(dāng)前跳變點的位置信息后,屏蔽當(dāng)前跳變點及其以左的所有跳變點。所述第一電路將所述坐標(biāo)軸上的相鄰位異或,用以將所述邊緣以電平跳變點的形式表示。
所述SDRAM讀地址生成模塊中還包括像素區(qū)間長度獲取模塊,用于以偶數(shù)跳變點位置減去其左側(cè)最近的奇數(shù)跳變點位置得到該像素區(qū)間長度,并將獲得的長度保存;像素區(qū)間間隔長度獲取模塊,用于以奇數(shù)跳變點位置減去其左側(cè)最近的偶數(shù)跳變點位置得到間隔長度,并將獲得的長度保存;選取猝發(fā)讀序列模塊,用于根據(jù)所述像素區(qū)間長度獲取模塊和像素區(qū)間間隔長度獲取模塊確定的長度,選取猝發(fā)讀序列,并將選出的各猝發(fā)讀序列的起始位置告知計算截取模塊。
所述選取猝發(fā)讀序列模塊選取猝發(fā)讀序列的規(guī)則為在所述選取的猝發(fā)讀序列個數(shù)最少的前提下,以猝發(fā)讀序列長度總和最短為原則,確定猝發(fā)讀序列。
所述SDRAM讀地址生成模塊還用以根據(jù)各計算截取模塊發(fā)來的信息,判定并告知需要參與當(dāng)前行載入的計算截取模塊。
所述SDRAM讀地址生成模塊中還包括比較電路,用以比較出各計算截取模塊對應(yīng)的參考塊的起始載入行行號的最小值,并告知起始行行號為所述最小值的參考塊對應(yīng)的計算截取模塊參與當(dāng)前行載入。
所述計算截取模塊將截取的數(shù)據(jù)緩存于該計算截取模塊對應(yīng)的參考塊緩存中。所述參考塊緩存為靜態(tài)隨機訪問存儲器(SRAM)。所述SRAM的存儲容量至少與所述參考塊大小相同。
所述計算截取模塊根據(jù)其對應(yīng)的參考塊的起始位置與當(dāng)前猝發(fā)讀序列的起始位置之間的偏移量,從所述SDRAM讀控器讀取的數(shù)據(jù)中截取對應(yīng)子塊運動補償所需的數(shù)據(jù)。
所述子塊具有獨立的運動矢量。
本發(fā)明方法包括下列步驟A、獲取當(dāng)前待處理宏塊中各子塊對應(yīng)的參考塊在參考幀中的位置信息;B、根據(jù)所述位置信息將各參考塊的每一行像素點合并為像素點區(qū)間;C、以所述像素點區(qū)間確定猝發(fā)讀序列的組合;D、以所述猝發(fā)讀序列組合讀取參考塊數(shù)據(jù),完成運動補償數(shù)據(jù)的載入。
所述參考塊在參考幀中的位置信息包括參考塊的起始載入行在參考幀中的行號,以及起始列和結(jié)束列的列號。
所述步驟B包括下列步驟B1、以各參考塊起始載入行中的最小行號對應(yīng)的起始載入行作為當(dāng)前行;B2、將當(dāng)前行中各參考塊相鄰或重疊的像素點合并為一個區(qū)間。
所述步驟B2包括下列步驟建立一維坐標(biāo)軸,所述坐標(biāo)軸的長度等于參考塊在水平維度上出現(xiàn)的范圍;將當(dāng)前行中各參考塊的待載入像素點,按照參考塊在參考幀中的位置信息映射到所述坐標(biāo)軸上;以所述坐標(biāo)軸上的映射區(qū)間作為合并區(qū)間。
所述步驟C根據(jù)合并后的各像素區(qū)間的長度和各區(qū)間之間的位置關(guān)系,以選取的猝發(fā)讀序列個數(shù)最少為原則,確定猝發(fā)讀序列的組合。
在所述選取的猝發(fā)讀序列個數(shù)最少的前提下,以各猝發(fā)讀序列長度總和最短為原則,確定猝發(fā)讀序列的組合。
獲取所述合并后的各像素區(qū)間的長度包括下列步驟將所述坐標(biāo)軸上待載入像素點的離散區(qū)間的邊緣以電平跳變點的形式表示;獲取各跳變點的位置信息;以偶數(shù)跳變點位置減去其左側(cè)最近的奇數(shù)跳變點位置得到該像素區(qū)間長度。
獲取所述各區(qū)間之間的位置關(guān)系是通過奇數(shù)跳變點位置減去其左側(cè)最近的偶數(shù)跳變點位置得到區(qū)間間隔長度。
所述步驟D包括下列步驟D1、依次以組合中的各猝發(fā)讀序列對應(yīng)的合并區(qū)間的起始位置及當(dāng)前行的行號得出SDRAM讀地址,并據(jù)此讀取相應(yīng)地址存儲的參考塊數(shù)據(jù);D2、根據(jù)各參考塊的起始位置與當(dāng)前猝發(fā)讀序列的起始位置之間的偏移量,從讀取的數(shù)據(jù)中截取各子塊運動補償所需的數(shù)據(jù),完成運動補償數(shù)據(jù)的載入。
步驟D1中所述得出SDRAM讀地址包括步驟指定參考幀的基地址;將當(dāng)前行的行號乘以參考幀圖像寬度得到當(dāng)前行相對于基地址的地址偏移;將所述地址偏移和當(dāng)前猝發(fā)讀序列對應(yīng)的合并區(qū)間的起始列號相加,得到SDRAM讀地址。
所述當(dāng)前宏塊中各子塊數(shù)量不大于16個。
所述子塊具有獨立的運動矢量。
本發(fā)明有益效果如下本發(fā)明方法通過將各個子塊對應(yīng)的參考塊在同一行內(nèi)相鄰或重疊的像素點合并為一個像素區(qū)間;之后,根據(jù)合并后的區(qū)間的位置信息和長度信息,確定猝發(fā)讀序列組合;以所述猝發(fā)序列組合從存儲器中讀取參考塊數(shù)據(jù),完成運動補償數(shù)據(jù)的載入。
通過本發(fā)明方法的實施,將多MV或多參考幀運動補償所需的零散短小的存儲器讀操作整合成較長的存儲器猝發(fā)讀操作,從而減少了讀存儲器的次數(shù),提高了存儲器的訪問效率,減少了等待系統(tǒng)總線仲裁所引入的延遲。
進(jìn)而避免了對各參考塊的重疊區(qū)域的重復(fù)讀取,減少了讀存儲器所引入的系統(tǒng)額外開銷。
本發(fā)明還提供一種運動補償數(shù)據(jù)載入裝置,用于實現(xiàn)多運動矢量宏塊的聯(lián)合載入,并支撐本發(fā)明方法。其添加了至少兩個計算截取模塊,用以計算當(dāng)前宏塊內(nèi)的獨立子塊對應(yīng)的參考塊的位置信息,以及截取所述讀控器輸出的數(shù)據(jù),并將所述數(shù)據(jù)緩存;載入位置匯總模塊,用以根據(jù)各計算截取模塊發(fā)來的信息,將當(dāng)前載入行中相鄰或重疊的像素點合并為一段像素區(qū)間,并將所述像素區(qū)間的位置信息發(fā)出;讀地址生成模塊,用以根據(jù)載入位置匯總模塊發(fā)來的信息,計算應(yīng)訪問的存儲地址,并選取猝發(fā)讀序列,以觸發(fā)讀控器。
本發(fā)明裝置中的每一計算截取模塊分別對應(yīng)一個參考塊緩存,其對應(yīng)存儲各個子塊的參考塊數(shù)據(jù),使得在進(jìn)行運動補償運算過程中,從緩存中提取相應(yīng)數(shù)據(jù)時,無需復(fù)雜的地址生成邏輯。所述參考塊緩存的存儲空間只需與宏塊內(nèi)的子塊大小相仿即可滿足本發(fā)明的要求。


圖1為以幀為單位完成載入的裝置結(jié)構(gòu)示意圖;圖2為以子塊為單位完成載入的裝置結(jié)構(gòu)示意圖;圖3為本發(fā)明裝置結(jié)構(gòu)示意圖;圖4為本發(fā)明譯碼器映射示意圖;圖5為本發(fā)明方法步驟流程圖;圖6為本發(fā)明獲取跳變點位置信息示意圖;圖7為本發(fā)明選取猝發(fā)讀序列組合示意圖。
具體實施例方式
為了在以小尺寸圖像塊為載入單位時,使存儲器的讀寫效率得到提高,以及節(jié)約系統(tǒng)資源,本發(fā)明提供一種用于實現(xiàn)多運動矢量的宏塊聯(lián)合載入的運動補償裝置,參見圖3所示,其包括至少兩個參考塊緩存,每一所述參考塊緩存分別連接一個計算截取模塊,所述各個計算截取模塊均通過載入位置匯總模塊與SDRAM讀地址生成模塊相連;SDRAM讀控器與所述SDRAM讀地址生成模塊、同步動態(tài)隨機訪問存儲器(SDRAM),以及所述各個計算截取模塊分別相連。
上述裝置中的各個模塊的主要功能為所述參考塊緩存,用以分別存儲各計算截取模塊截取的數(shù)據(jù),其數(shù)量與一次完成的運動補償?shù)淖訅K數(shù)量相一致。
所述計算截取模塊,用以分別計算當(dāng)前宏塊內(nèi)的各子塊對應(yīng)的參考塊的位置信息,以及截取所述SDRAM讀控器輸出的數(shù)據(jù),并將所述數(shù)據(jù)緩存到相應(yīng)的參考塊緩存。
所述載入位置匯總模塊,用以根據(jù)各計算截取模塊發(fā)來的信息,將當(dāng)前載入行中相鄰或重疊的像素點合并為一段像素區(qū)間,并將所述像素區(qū)間的位置信息發(fā)送給所述SDRAM讀地址生成模塊。
所述SDRAM讀地址生成模塊,用以根據(jù)載入位置匯總模塊發(fā)來的信息,計算應(yīng)訪問的SDRAM地址,并選取猝發(fā)讀序列,以觸發(fā)SDRAM讀控器。
所述SDRAM讀控器,用以根據(jù)所述SDRAM讀地址生成模塊發(fā)來的猝發(fā)讀序列,相應(yīng)從SDRAM中讀取數(shù)據(jù),并輸出給所述各個計算截取模塊。
所述SDRAM,用以存儲當(dāng)前幀的參考幀數(shù)據(jù)(各宏塊內(nèi)的子塊對應(yīng)的參考塊存在于參考幀中),并按照所述SDRAM讀控器的指令向其輸出相應(yīng)地址的數(shù)據(jù)。
為了實現(xiàn)上述各個模塊的主要功能,上述模塊具有一些特性,或者在其內(nèi)部還包括若干子模塊。
所述參考塊緩存為同步靜態(tài)隨機訪問存儲器(SRAM),每一參考塊緩存的存儲空間只需與宏塊內(nèi)的子塊大小相仿即可滿足本發(fā)明的要求。
所述計算截取模塊輸出的參考塊的位置信息包括該參考塊所在幀的幀號,以及起始載入行的行號、起始列號和結(jié)束列號。起始載入行的行號的具體計算過程為將子塊所在宏塊在參考幀中的縱坐標(biāo)乘以16,加上子塊運動矢量的垂直分量,再加上子塊在宏塊內(nèi)的垂直位置偏移(有0、4、8、12幾種)得到。起始列號的具體計算過程為將子塊所在宏塊在參考幀中的橫坐標(biāo)乘以16,加上子塊運動矢量的水平分量,再加上子塊在宏塊內(nèi)的水平位置偏移(有0、4、8、12幾種)得到。結(jié)束列號為起始行號加上子塊參考塊寬度得到。其中各子塊所在參考幀的幀號、子塊所在宏塊在參考幀中的橫/縱坐標(biāo)、子塊的運動矢量及子塊在宏塊內(nèi)的位置偏移由軟件指定。(本部分為現(xiàn)有技術(shù))各個計算截取模塊截取其對應(yīng)子塊運動補償所需數(shù)據(jù)的規(guī)則為根據(jù)其對應(yīng)的參考塊的起始位置與當(dāng)前猝發(fā)讀序列的起始位置之間的偏移量,從所述SDRAM讀控器讀取的數(shù)據(jù)中截取對應(yīng)子塊運動補償所需的數(shù)據(jù)。其中,當(dāng)前猝發(fā)讀序列的起始位置由所述SDRAM讀地址生成模塊在選定猝發(fā)讀序列組合的同時輸出至各個計算截取模塊。
為了實現(xiàn)將當(dāng)前載入行中相鄰或重疊的像素點合并為一段像素區(qū)間,在所述載入位置匯總模塊中設(shè)置了譯碼電路。所述譯碼電路的數(shù)量與計算截取模塊的數(shù)量對應(yīng),即一個譯碼電路只對應(yīng)編譯一個參考塊在當(dāng)前行中的像素點區(qū)間。參見圖4所示,通過各譯碼電路,將宏塊內(nèi)各子塊對應(yīng)的參考塊在當(dāng)前行中的像素點區(qū)間譯碼后,按照各參考塊的位置將各譯碼電路的輸出信號映射到一維坐標(biāo)軸上,并將映射后的結(jié)果相或,得出當(dāng)前行中存在待載入像素點的區(qū)間和不存在待載入像素點的區(qū)間。圖中的平行線為一維坐標(biāo)軸,數(shù)字0至15分別標(biāo)識各個子塊,子塊中的圓點填充部分為已載入的區(qū)域,子塊中白色部分為未載入?yún)^(qū)域,虛線為當(dāng)前載入行,一維坐標(biāo)軸上灰色填充部分為待載入像素點的區(qū)間。
所述SDRAM讀地址生成模塊在開始運動補償數(shù)據(jù)載入之前,先通過其內(nèi)置的比較電路來比較出各計算截取模塊對應(yīng)的參考塊的起始載入行行號的最小值,并告知起始行行號為所述最小值的參考塊對應(yīng)的計算截取模塊參與當(dāng)前行的載入(即被選定的計算截取模塊才會向載入位置匯總模塊輸出合法的參考塊位置信息)。
所述SDRAM讀地址生成模塊收到的載入位置匯總模塊所述像素區(qū)間的位置信息包括該像素區(qū)間在其所在幀中的行號、行內(nèi)起始位置和長度信息。
為了實現(xiàn)根據(jù)所述行號和行內(nèi)起始位置信息,計算應(yīng)訪問的SDRAM地址,以及根據(jù)所述像素區(qū)間長度和各區(qū)間之間的位置關(guān)系選取猝發(fā)讀序列,所述SDRAM讀地址生成模塊中包括第一電路,通過將所述坐標(biāo)軸上的相鄰位異或,來實現(xiàn)將所述坐標(biāo)軸上存在待載入像素點的離散區(qū)間的邊緣以電平跳變點的形式表示;優(yōu)先級編碼器,用以將所述坐標(biāo)軸上最左邊的跳變點作為當(dāng)前跳變點進(jìn)行編碼,并根據(jù)編碼后的信息得出當(dāng)前跳變點的位置信息,其中奇數(shù)跳變點的位置信息即為各像素區(qū)間的行內(nèi)起始位置信息;第二電路,用以將所述第一電路得到的跳變點數(shù)量置于一個計數(shù)器,使在計數(shù)范圍內(nèi)的每一時鐘周期觸發(fā)一次所述優(yōu)先級編碼器;第三電路,用以在獲取了當(dāng)前跳變點的位置信息后,屏蔽當(dāng)前跳變點及其以左的所有跳變點;像素區(qū)間長度獲取模塊,用于以偶數(shù)跳變點位置減去其左側(cè)最近的奇數(shù)跳變點位置得到該像素區(qū)間長度,并將獲得的長度保存;像素區(qū)間間隔長度獲取模塊,用于以奇數(shù)跳變點位置減去其左側(cè)最近的偶數(shù)跳變點位置得到間隔長度,并將獲得的長度保存;選取猝發(fā)讀序列模塊,用于根據(jù)所述像素區(qū)間長度獲取模塊和像素區(qū)間間隔長度獲取模塊確定的長度,在所述選取的猝發(fā)讀序列個數(shù)最少的前提下,以猝發(fā)讀序列長度總和最短為原則,確定猝發(fā)讀序列,并將選出的各猝發(fā)讀序列的起始位置告知計算截取模塊。
所述SDRAM支持猝發(fā)讀寫操作,即在同一行內(nèi)連續(xù)讀或?qū)懚鄠€連續(xù)的存儲單元。猝發(fā)讀寫操作具有固定長度,一般為4、8、16幾種猝發(fā)讀序列。猝發(fā)讀序列越長,需要加入的額外操作占總讀寫時間的比例越小,SDRAM讀寫效率也就越高。
基于上述裝置,本發(fā)明提供一種方法,參見圖5所示,其包括下列步驟S1、各個計算截取模塊分別獲取當(dāng)前宏塊中各子塊對應(yīng)的參考塊在參考幀中的位置信息;S2、載入位置匯總模塊根據(jù)所述位置信息將各參考塊當(dāng)前行的像素點合并為像素點區(qū)間;S3、SDRAM讀地址生成模塊獲取所述像素點區(qū)間的位置信息和長度信息;S4、以所述像素點區(qū)間的位置信息和長度信息確定猝發(fā)讀序列的組合;S5、SDRAM讀控制器以所述猝發(fā)讀序列組合從SDRAM中讀取相應(yīng)的參考塊數(shù)據(jù);S6、SDRAM讀控制器將讀取的數(shù)據(jù)發(fā)送給每一計算截取模塊;S7、各計算截取模塊從中截取完成其對應(yīng)的子塊運動補償所需的數(shù)據(jù),并將截取的數(shù)據(jù)分別存儲于對應(yīng)的參考塊緩存;S8、當(dāng)前行行號加1后,返回步驟S2,直至當(dāng)前宏塊中的各子塊對應(yīng)的參考塊數(shù)據(jù)全部載入。
以下通過三個實例具體描述本發(fā)明方法。
實例一以最長的猝發(fā)讀序列為單位,完成數(shù)據(jù)載入。
S101、各個計算截取模塊分別獲取當(dāng)前宏塊中各子塊對應(yīng)的參考塊在參考幀中的位置信息。
本例按照H.264協(xié)議的規(guī)定,最多可將一個宏塊分為16個子塊。根據(jù)一次處理子塊的數(shù)量(16個),在所述裝置中對應(yīng)設(shè)置16個計算截取模塊,其中每一計算截取模塊對應(yīng)處理一個子塊。
宏塊內(nèi)的各個子塊所在參考幀的幀號、子塊所在宏塊在參考幀中的橫/縱坐標(biāo)位置、子塊在宏塊中的相對位置以及本子塊的運動矢量大小均由軟件指定,所述各計算截取模塊根據(jù)其對應(yīng)的位置信息,分別計算出其對應(yīng)子塊在參考幀中起始載入行的行號、起始列號和結(jié)束列號。
各計算截取模塊獲得了上述位置信息后,將所述位置信息發(fā)送給載入位置匯總模塊和SDRAM讀地址生成模塊。
SDRAM讀地址生成模塊通過其內(nèi)置的比較電路來比較出各計算截取模塊對應(yīng)的參考塊的起始載入行行號的最小值,并告知起始行行號為所述最小值的參考塊對應(yīng)的計算截取模塊參與當(dāng)前行的載入。
S102、載入位置匯總模塊根據(jù)所述位置信息將各參考塊當(dāng)前行的像素點合并為像素點區(qū)間。
在所述載入位置匯總模塊中存在譯碼電路,其數(shù)量與所述計算截取模塊的數(shù)量相一致。即每一計算截取模塊輸出的參考塊位置信息分別通過其對應(yīng)的譯碼電路完成譯碼。
參見圖3所示,所述譯碼電路收到其對應(yīng)的計算截取模塊發(fā)來的參考塊的起始列號和結(jié)束列號,則按照所述起始列號和結(jié)束列號,向長度為n的一維水平坐標(biāo)上輸出輸出值為1的信號線(長度n為參考塊在水平維度內(nèi)可能出現(xiàn)的位置范圍),并在該一維水平坐標(biāo)上映射出該參考塊在當(dāng)前行中的像素點區(qū)間;若譯碼電路收到其對應(yīng)的計算截取模塊發(fā)來的無效值(在步驟S101中,若某個子塊對應(yīng)的計算截取模塊不參與當(dāng)前行的載入,則本處輸出超出水平位置范圍的值),即該計算截取模塊對應(yīng)的參考塊在當(dāng)前行中沒有需要載入的像素點,則該譯碼電路向所述一維水平坐標(biāo)上輸出值為0的信號線,用以不映射像素點區(qū)間。
將各譯碼電路在所述一維水平坐標(biāo)上的輸出相或,得到當(dāng)前載入行內(nèi)需載入的像素點區(qū)間。即如圖4所示的一維水平坐標(biāo)上灰色部分為當(dāng)前載入行內(nèi)需載入的像素點區(qū)間。
S103、SDRAM讀地址生成模塊獲取所述像素點區(qū)間的位置信息和長度信息。
參見圖6所示,通過SDRAM讀地址生成模塊內(nèi)的第一電路,將所述一維坐標(biāo)上的相鄰位異或,來實現(xiàn)將所述一維坐標(biāo)上待載入像素點的離散區(qū)間的邊緣以電平跳變點的形式表示,所述電平跳變點為圖中以斜線填充的方格。
在將所述邊緣轉(zhuǎn)換為跳變點后,以第二電路將跳變點數(shù)量置于一個計數(shù)器,并在計數(shù)范圍內(nèi)的每一時鐘周期觸發(fā)一次優(yōu)先級編碼器。
在每一時鐘周期到來時,優(yōu)先級編碼器被觸發(fā),按照該優(yōu)先級編碼器的處理規(guī)則,其將所述一維坐標(biāo)上最左邊的跳變點作為當(dāng)前跳變點進(jìn)行編碼。編碼后,得到當(dāng)前跳變點的位置信息,所述當(dāng)前跳變點的位置信息表明了對應(yīng)像素點區(qū)間在當(dāng)前行中的的位置(奇數(shù)跳變點的位置信息即為各像素區(qū)間的行內(nèi)起始位置信息,偶數(shù)跳變點的位置信息即為各像素區(qū)間的行內(nèi)結(jié)束位置信息)。
在獲得了當(dāng)前跳變點的位置信息后,以第三電路將當(dāng)前跳變點及其以左的所有跳變點全部屏蔽,屏蔽區(qū)域在圖6中以黑色填充表示。所述屏蔽操作用以配合所述優(yōu)先級編碼器的處理規(guī)則(即對最左邊的跳變點編碼),逐一完成各跳變點的編碼工作,進(jìn)而獲取各個跳變點的位置信息。
在獲得了各個跳變點的位置信息后,通過像素區(qū)間長度獲取模塊將偶數(shù)跳變點位置減去其左側(cè)最近的奇數(shù)跳變點位置得到該像素區(qū)間長度,并將獲得的長度保存在對應(yīng)的寄存器中;通過像素區(qū)間間隔長度獲取模塊將奇數(shù)跳變點位置減去其左側(cè)最近的偶數(shù)跳變點位置得到該間隔的長度,并將獲得的長度保存在對應(yīng)的寄存器中。
S104、SDRAM讀地址生成模塊以所述像素點區(qū)間的位置信息和長度信息確定猝發(fā)讀序列的組合。
SDRAM讀地址生成模塊中的選取猝發(fā)讀序列模塊根據(jù)所述像素區(qū)間長度獲取模塊和像素區(qū)間間隔長度獲取模塊確定的長度信息選取猝發(fā)讀序列組合。
在本例中直接以最長的猝發(fā)讀序列(例如長度為16)為單位,在一個猝發(fā)讀序列中盡量多的包含像素點區(qū)間。若所述最長的猝發(fā)讀序列不足以包含某一像素點區(qū)間,則以所述最長的猝發(fā)讀序列為單位,分段包含該像素點區(qū)間。
將各個猝發(fā)讀序列按順序排列,形成所述猝發(fā)讀序列組合。
獲得所述猝發(fā)讀序列組合后,依次將各猝發(fā)讀序列的起始位置輸出至各個計算截取模塊。
S105、SDRAM讀控制器以所述猝發(fā)讀序列組合從SDRAM中讀取相應(yīng)的參考塊數(shù)據(jù)。
SDRAM讀控制器根據(jù)所述SDRAM讀地址生成模塊發(fā)來的猝發(fā)讀序列組合,依次以組合中的各猝發(fā)讀序列包含的像素點區(qū)間的起始位置和當(dāng)前行的行號得出對應(yīng)的SDRAM讀地址。
所述得出對應(yīng)的SDRAM讀地址的具體處理過程為指定參考幀的基地址;將當(dāng)前行的行號乘以參考幀圖像寬度得到當(dāng)前行相對于基地址的地址偏移;將所述地址偏移和當(dāng)前猝發(fā)讀序列對應(yīng)的合并區(qū)間的起始列號相加,得到SDRAM讀地址。
之后,以獲得的SDRAM讀地址讀取相應(yīng)地址存儲的參考塊數(shù)據(jù)。
S106、SDRAM讀控制器將讀取的數(shù)據(jù)發(fā)送給每一計算截取模塊。
S107、各計算截取模塊從中截取完成其對應(yīng)的子塊運動補償所需的數(shù)據(jù),并將截取的數(shù)據(jù)分別存儲于對應(yīng)的參考塊緩存。
各計算截取模塊根據(jù)其對應(yīng)的參考塊的起始位置(起始列號)與當(dāng)前猝發(fā)讀序列包含的像素點區(qū)間的起始位置(在步驟S104中得到)之間的偏移量,得到本計算截取模塊應(yīng)截取數(shù)據(jù)的起始位置;以參考塊的寬度與所述應(yīng)截取數(shù)據(jù)的起始位置相加,得到應(yīng)截取數(shù)據(jù)的結(jié)束位置。
之后,各計算截取模塊從讀取的數(shù)據(jù)中截取各自的數(shù)據(jù),并將截取的數(shù)據(jù)分別存儲于對應(yīng)的參考塊緩存。本例有16個計算截取模塊,則用16個參考塊緩存分別存儲各計算截取模塊截取的數(shù)據(jù)。
由于是以猝發(fā)讀序列組合中各猝發(fā)讀序列的順序,一次一次讀取數(shù)據(jù),所以顯然當(dāng)前一次讀出的數(shù)據(jù)不是當(dāng)前行的全部數(shù)據(jù),進(jìn)而所述各計算截取模塊需要判斷是否已完成其對當(dāng)前行數(shù)據(jù)的載入,若載入全部完成則表明完成了一行像素點的載入。每一計算截取模塊判斷其是否完成載入的規(guī)則為若對應(yīng)參考塊的起始行號與當(dāng)前載入行的行號相等,且該參考塊起始列號與結(jié)束列號完全落入當(dāng)前猝發(fā)讀序列包含的像素點區(qū)間,則表明該參考塊對應(yīng)的計算截取模塊載入操作完畢。
至此,完成了一行像素點的載入。
S108、當(dāng)前行行號加1后,返回步驟S102,以繼續(xù)完成后面各行像素點的載入。
若當(dāng)前行的行號不等于計算截取模塊對應(yīng)的參考塊的起始載入行號,則表明該參考塊的全部數(shù)據(jù)已載入。由于每一子塊具有獨立的運動矢量,可按現(xiàn)有技術(shù)完成運動補償工作。
直至當(dāng)前宏塊中的各子塊對應(yīng)的參考塊數(shù)據(jù)全部載入,并分別完成運動補償后,開始對下一宏塊進(jìn)行運動補償。
實例二每一像素點區(qū)間對應(yīng)一個長度與其相同的猝發(fā)讀序列,完成數(shù)據(jù)載入。
S201至S203與實例一中的S101至S103相同。
S204、SDRAM讀地址生成模塊以所述像素點區(qū)間的位置信息和長度信息確定猝發(fā)讀序列的組合。
SDRAM讀地址生成模塊中的選取猝發(fā)讀序列模塊根據(jù)所述像素區(qū)間長度獲取模塊和像素區(qū)間間隔長度獲取模塊確定的長度信息選取猝發(fā)讀序列組合。
在本例以每一像素點區(qū)間的長度一一對應(yīng)選取猝發(fā)讀序列,即每一猝發(fā)讀序列正好可包含一個與其對應(yīng)的像素點區(qū)間。若最長的猝發(fā)讀序列不足以包含某一像素點區(qū)間,則以所述最長的猝發(fā)讀序列為單位,分段包含該像素點區(qū)間。
將選取的各個猝發(fā)讀序列按像素點區(qū)間的順序排列,形成所述猝發(fā)讀序列組合。
獲得所述猝發(fā)讀序列組合后,依次將各猝發(fā)讀序列的起始位置輸出至各個計算截取模塊。
S205至S208與實例一中的S105至S108相同。
實例三在選取的猝發(fā)讀序列的數(shù)量最少的前提下,以各猝發(fā)讀序列長度總和最短為原則,確定猝發(fā)讀序列的組合,并完成數(shù)據(jù)載入。
S301至S303與實例一中的S101至S103相同。
S304、SDRAM讀地址生成模塊以所述像素點區(qū)間的位置信息和長度信息確定猝發(fā)讀序列的組合(即SDRAM讀地址生成模塊中的選取猝發(fā)讀序列模塊根據(jù)所述像素區(qū)間長度獲取模塊和像素區(qū)間間隔長度獲取模塊確定的長度信息選取猝發(fā)讀序列組合)。
目前,SDRAM數(shù)據(jù)總線寬度為32,猝發(fā)讀序列的最長長度為16;每個像素點占8個比特,因此SDRAM的每個地址單元能夠存儲4個像素點。
依據(jù)在選取的猝發(fā)讀序列的數(shù)量最少的前提下,以各猝發(fā)讀序列長度總和最短為原則;以及SDRAM的每個地址單元存儲4個像素點,舉例如下按位置順序,第1至第4像素點區(qū)間的長度依次為8像素、18像素、4像素和9像素;各像素點區(qū)間之間的間隔依次為4像素、32像素、3像素。
參見圖7所示,第一個猝發(fā)讀序列的長度為8,即包含了第1像素點區(qū)間(8像素)、第1與第2像素點區(qū)間間隔(4像素)以及第2像素點區(qū)間,其中第1與第2象素點區(qū)間之間的間隔(4像素)及猝發(fā)讀序列尾部、即第2象素點區(qū)間后面的2像素為無用數(shù)據(jù);第二個猝發(fā)讀序列的長度為4,即包含第3像素點區(qū)間(4像素)、第3與第4像素點區(qū)間間隔(3像素)及第4像素點區(qū)間(9像素)。
將選取的各個猝發(fā)讀序列按像素點區(qū)間的順序排列,形成所述猝發(fā)讀序列組合。
獲得所述猝發(fā)讀序列組合后,依次將各猝發(fā)讀序列的起始位置輸出至各個計算截取模塊。
在本例中,若上述像素點區(qū)間和像素點區(qū)間之間的間隔不同,則顯然可能出現(xiàn)將前3個像素區(qū)間包含在同一猝發(fā)讀序列中,最后一個像素區(qū)間單獨包含在一個猝發(fā)讀序列中的情況;也可能出現(xiàn)將第一個像素區(qū)間單獨包含在一個猝發(fā)讀序列中,將后3個像素區(qū)間包含在同一猝發(fā)讀序列中的情況。
基于所述實例三,若離散區(qū)間個數(shù)大于四個時,可根據(jù)所述在選取的猝發(fā)讀序列的數(shù)量最少的前提下,以各猝發(fā)讀序列長度總和最短為原則,繼續(xù)選取后面的猝發(fā)讀序列;或者僅根據(jù)前四個離散區(qū)間的位置關(guān)系重復(fù)選取猝發(fā)讀序列。
S305至S308與實例一中的S105至S108相同。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種運動補償數(shù)據(jù)載入裝置,包括存儲器,用以存儲當(dāng)前幀中各宏塊內(nèi)的子塊對應(yīng)的參考塊數(shù)據(jù);讀控器,用以讀取存儲器中的數(shù)據(jù)并輸出;其特征在于,所述裝置還包括至少兩個計算截取模塊,用以分別計算當(dāng)前宏塊內(nèi)的各子塊對應(yīng)的參考塊的位置信息,以及截取所述讀控器輸出的數(shù)據(jù),并將所述數(shù)據(jù)緩存;載入位置匯總模塊,用以根據(jù)各計算截取模塊發(fā)來的信息,將當(dāng)前載入行中相鄰或重疊的像素點合并為一段像素區(qū)間,并將所述像素區(qū)間的位置信息發(fā)出;讀地址生成模塊,用以根據(jù)載入位置匯總模塊發(fā)來的信息,計算應(yīng)訪問的存儲地址和選取猝發(fā)讀序列,以觸發(fā)讀控器。
2.如權(quán)利要求1所述的裝置,其特征在于,所述存儲器為同步動態(tài)隨機訪問存儲器SDRAM。
3.如權(quán)利要求2所述的裝置,其特征在于,所述SDRAM為支持猝發(fā)讀寫操作的SDRAM。
4.如權(quán)利要求3所述的裝置,其特征在于,所述參考塊的位置信息包括該參考塊所在幀的幀號,以及起始載入行的行號、起始列號和結(jié)束列號。
5.如權(quán)利要求4所述的裝置,其特征在于,在所述載入位置匯總模塊中存在譯碼電路,用以定位當(dāng)前行中存在待載入像素點的區(qū)間和不存在待載入像素點的區(qū)間。
6.如權(quán)利要求5所述的裝置,其特征在于,所述譯碼電路的數(shù)量與計算截取模塊的數(shù)量對應(yīng)。
7.如權(quán)利要求6所述的裝置,其特征在于,通過各譯碼電路,將宏塊內(nèi)各子塊對應(yīng)的參考塊在當(dāng)前行中的像素點區(qū)間譯碼后,按照各參考塊的位置將各譯碼電路的輸出信號映射到一維坐標(biāo)軸上,并將映射后的結(jié)果相或,得出當(dāng)前行中存在待載入像素點的區(qū)間和不存在待載入像素點的區(qū)間。
8.如權(quán)利要求7所述的裝置,其特征在于,所述像素區(qū)間的位置信息包括該像素區(qū)間在其所在幀中的行號、行內(nèi)起始位置和長度信息。
9.如權(quán)利要求8所述的裝置,其特征在于,所述SDRAM讀地址生成模塊根據(jù)所述行號和行內(nèi)起始位置信息,計算應(yīng)訪問的SDRAM地址;以及根據(jù)所述像素區(qū)間長度和各區(qū)間之間的位置關(guān)系選取猝發(fā)讀序列。
10.如權(quán)利要求9所述的裝置,其特征在于,所述SDRAM讀地址生成模塊中包括下列電路,用以獲取像素區(qū)間的位置信息第一電路,用于將所述坐標(biāo)軸上待載入像素點的離散區(qū)間的邊緣以電平跳變點的形式表示;優(yōu)先級編碼器,用以將所述坐標(biāo)軸上最左邊的跳變點作為當(dāng)前跳變點進(jìn)行編碼,并根據(jù)編碼后的信息得出當(dāng)前跳變點的位置信息;第二電路,用以將所述第一電路得到的跳變點數(shù)量置于一個計數(shù)器,使在計數(shù)范圍內(nèi)的每一時鐘周期觸發(fā)一次所述優(yōu)先級編碼器;第三電路,用以在獲取了當(dāng)前跳變點的位置信息后,屏蔽當(dāng)前跳變點及其以左的所有跳變點。
11.如權(quán)利要求10所述的裝置,其特征在于,所述第一電路將所述坐標(biāo)軸上的相鄰位異或,用以將所述邊緣以電平跳變點的形式表示。
12.如權(quán)利要求10所述的裝置,其特征在于,所述SDRAM讀地址生成模塊中還包括像素區(qū)間長度獲取模塊,用于以偶數(shù)跳變點位置減去其左側(cè)最近的奇數(shù)跳變點位置得到該像素區(qū)間長度,并將獲得的長度保存;像素區(qū)間間隔長度獲取模塊,用于以奇數(shù)跳變點位置減去其左側(cè)最近的偶數(shù)跳變點位置得到間隔長度,并將獲得的長度保存;選取猝發(fā)讀序列模塊,用于根據(jù)所述像素區(qū)間長度獲取模塊和像素區(qū)間間隔長度獲取模塊確定的長度,選取猝發(fā)讀序列,并將選出的各猝發(fā)讀序列的起始位置告知計算截取模塊。
13.如權(quán)利要求12所述的裝置,其特征在于,所述選取猝發(fā)讀序列模塊選取猝發(fā)讀序列的規(guī)則為在所述選取的猝發(fā)讀序列個數(shù)最少的前提下,以猝發(fā)讀序列長度總和最短為原則,確定猝發(fā)讀序列。
14.如權(quán)利要求13所述的裝置,其特征在于,所述SDRAM讀地址生成模塊還用以根據(jù)各計算截取模塊發(fā)來的信息,判定并告知需要參與當(dāng)前行載入的計算截取模塊。
15.如權(quán)利要求14所述的裝置,其特征在于,所述SDRAM讀地址生成模塊中還包括比較電路,用以比較出各計算截取模塊對應(yīng)的參考塊的起始載入行行號的最小值,并告知起始行行號為所述最小值的參考塊對應(yīng)的計算截取模塊參與當(dāng)前行載入。
16.如權(quán)利要求15所述的裝置,其特征在于,所述計算截取模塊將截取的數(shù)據(jù)緩存于該計算截取模塊對應(yīng)的參考塊緩存中。
17.如權(quán)利要求16所述的裝置,其特征在于,所述參考塊緩存為靜態(tài)隨機訪問存儲器SRAM。
18.如權(quán)利要求17所述的裝置,其特征在于,所述SRAM的存儲容量至少與所述參考塊大小相同。
19.如權(quán)利要求18所述的裝置,其特征在于,所述計算截取模塊根據(jù)其對應(yīng)的參考塊的起始位置與當(dāng)前猝發(fā)讀序列的起始位置之間的偏移量,從所述SDRAM讀控器讀取的數(shù)據(jù)中截取對應(yīng)子塊運動補償所需的數(shù)據(jù)。
20.如權(quán)利要求19所述的裝置,其特征在于,所述子塊具有獨立的運動矢量。
21.一種運動補償數(shù)據(jù)載入的方法,其特征在于,包括下列步驟A、獲取當(dāng)前待處理宏塊中各子塊對應(yīng)的參考塊在參考幀中的位置信息;B、根據(jù)所述位置信息將各參考塊的每一行像素點合并為像素點區(qū)間;C、以所述像素點區(qū)間確定猝發(fā)讀序列的組合;D、以所述猝發(fā)讀序列組合讀取參考塊數(shù)據(jù),完成運動補償數(shù)據(jù)的載入。
22.如權(quán)利要求21所述的方法,其特征在于,所述參考塊在參考幀中的位置信息包括參考塊的起始載入行在參考幀中的行號,以及起始列和結(jié)束列的列號。
23.如權(quán)利要求22所述的方法,其特征在于,所述步驟B包括下列步驟B1、以各參考塊起始載入行中的最小行號對應(yīng)的起始載入行作為當(dāng)前行;B2、將當(dāng)前行中各參考塊相鄰或重疊的像素點合并為一個區(qū)間。
24.如權(quán)利要求23所述的方法,其特征在于,所述步驟B2包括下列步驟-建立一維坐標(biāo)軸,所述坐標(biāo)軸的長度等于參考塊在水平維度上出現(xiàn)的范圍;-將當(dāng)前行中各參考塊的待載入像素點,按照參考塊在參考幀中的位置信息映射到所述坐標(biāo)軸上;-以所述坐標(biāo)軸上的映射區(qū)間作為合并區(qū)間。
25.如權(quán)利要求24所述的方法,其特征在于,所述步驟C根據(jù)合并后的各像素區(qū)間的長度和各區(qū)間之間的位置關(guān)系,以選取的猝發(fā)讀序列個數(shù)最少為原則,確定猝發(fā)讀序列的組合。
26.如權(quán)利要求25所述的方法,其特征在于,在所述選取的猝發(fā)讀序列個數(shù)最少的前提下,以各猝發(fā)讀序列長度總和最短為原則,確定猝發(fā)讀序列的組合。
27.如權(quán)利要求26所述的方法,其特征在于,獲取所述合并后的各像素區(qū)間的長度包括下列步驟-將所述坐標(biāo)軸上待載入像素點的離散區(qū)間的邊緣以電平跳變點的形式表示;-獲取各跳變點的位置信息;-以偶數(shù)跳變點位置減去其左側(cè)最近的奇數(shù)跳變點位置得到該像素區(qū)間長度。
28.如權(quán)利要求27所述的方法,其特征在于,獲取所述各區(qū)間之間的位置關(guān)系是通過奇數(shù)跳變點位置減去其左側(cè)最近的偶數(shù)跳變點位置得到區(qū)間間隔長度。
29.如權(quán)利要求28所述的方法,其特征在于,所述步驟D包括下列步驟D1、依次以組合中的各猝發(fā)讀序列對應(yīng)的合并區(qū)間的起始位置及當(dāng)前行的行號得出SDRAM讀地址,并據(jù)此讀取相應(yīng)地址存儲的參考塊數(shù)據(jù);D2、根據(jù)各參考塊的起始位置與當(dāng)前猝發(fā)讀序列的起始位置之間的偏移量,從讀取的數(shù)據(jù)中截取各子塊運動補償所需的數(shù)據(jù),完成運動補償數(shù)據(jù)的載入。
30.如權(quán)利要求29所述的方法,其特征在于,步驟D1中所述得出SDRAM讀地址包括步驟-指定參考幀的基地址;-將當(dāng)前行的行號乘以參考幀圖像寬度得到當(dāng)前行相對于基地址的地址偏移;-將所述地址偏移和當(dāng)前猝發(fā)讀序列對應(yīng)的合并區(qū)間的起始列號相加,得到SDRAM讀地址。
31.如權(quán)利要求30所述的方法,其特征在于,所述當(dāng)前宏塊中各子塊數(shù)量不大于16個。
32.如權(quán)利要求31所述的方法,其特征在于,所述子塊具有獨立的運動矢量。
全文摘要
本發(fā)明公開了一種運動補償數(shù)據(jù)載入裝置,用以解決現(xiàn)有技術(shù)存在以小尺寸圖像塊為載入單位時,存儲器的讀寫效率低下,造成系統(tǒng)資源浪費的問題。所述裝置包括存儲器,用以存儲參考塊數(shù)據(jù);讀控器,用以讀取存儲器中的數(shù)據(jù)并輸出;至少兩個計算截取模塊,用以分別計算當(dāng)前宏塊內(nèi)的各子塊對應(yīng)的參考塊的位置信息,以及截取所述讀控器輸出的數(shù)據(jù),并將所述數(shù)據(jù)緩存;載入位置匯總模塊,用以根據(jù)各計算截取模塊發(fā)來的信息,將當(dāng)前載入行中相鄰或重疊的像素點合并為一段像素區(qū)間,并將所述像素區(qū)間的位置信息發(fā)出;讀地址生成模塊,用以根據(jù)載入位置匯總模塊發(fā)來的信息,計算應(yīng)訪問的存儲地址和選取猝發(fā)讀序列,以觸發(fā)讀控器。
文檔編號H04N7/26GK1859570SQ20051009873
公開日2006年11月8日 申請日期2005年9月7日 優(yōu)先權(quán)日2005年9月7日
發(fā)明者顧驤 申請人:深圳市海思半導(dǎo)體有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
林口县| 泊头市| 苍溪县| 方山县| 科尔| 利辛县| 万荣县| 昌江| 北宁市| 灵璧县| 通江县| 威宁| 类乌齐县| 大连市| 宁陕县| 宣恩县| 寿阳县| 堆龙德庆县| 卢湾区| 察隅县| 新河县| 外汇| 无为县| 集贤县| 武隆县| 衡阳县| 诸城市| 辰溪县| 北宁市| 军事| 贵南县| 荆门市| 盘山县| 贡觉县| 福清市| 留坝县| 娄烦县| 浮梁县| 阜宁县| 汤原县| 探索|