專利名稱:存儲器存取方法
技術(shù)領(lǐng)域:
本發(fā)明關(guān)于存儲器存取方法,特別是關(guān)于利用重復(fù)存儲數(shù)據(jù)的方式來減少數(shù)據(jù)讀取時換頁動作的視頻解碼系統(tǒng)的存儲器存取方法。
背景技術(shù):
在許多現(xiàn)代視頻解碼系統(tǒng)中,如MPEG-I、MPEG-II及H261等,普遍使用壓縮技術(shù)來作預(yù)測或幀間編碼的動作,其中動作補償是以區(qū)塊(Block)為基礎(chǔ),且每一預(yù)測區(qū)塊(Predicted Block)皆結(jié)合著動作向量(Motion Vector)。動作補償?shù)牟僮髦饕怯蓞⒖紙D像上,根據(jù)動作向量的數(shù)據(jù)來讀取預(yù)測區(qū)塊。一般而言,預(yù)測參考圖像的存儲器相當(dāng)大,且存儲于動態(tài)隨機存取存儲器(DRAM)中。動態(tài)隨機存取存儲器是由許多存儲庫組成,而存儲庫是由許多存儲行組成,當(dāng)從一個存儲行開始存取數(shù)據(jù)之前,必須經(jīng)歷一些額外的時間段,如預(yù)充電及激活一存儲行等。所以如果目前的存取行不同于前一個時,將會產(chǎn)生一些額外的時間段,例如換頁動作。而此換頁動作會大大降低由動態(tài)隨機存取存儲器讀取預(yù)測區(qū)塊的帶寬(Bandwidth)。
為了減少換頁動作,預(yù)測區(qū)塊必須盡可能分布于較少的存儲頁,且預(yù)測區(qū)塊須以一頁接一頁方式讀取。圖1為一種以區(qū)塊方式存儲參考圖像數(shù)據(jù)的示意圖。如圖1所示,參考圖像的尺寸為720*576像素,且每一宏區(qū)塊(Macro-block)為16*16像素。若,動態(tài)隨機存取存儲器的存儲頁大小為1024位元組,則每一存儲頁可存儲四個宏區(qū)塊。圖1的存儲方式為每個存儲頁(較粗的實線)存儲4個垂直的宏區(qū)塊(較細(xì)的實線)。當(dāng)讀取虛線的預(yù)測區(qū)塊A時,該預(yù)測區(qū)塊A的數(shù)據(jù)區(qū)域A1、A2、A3、A4分布于四個不同存儲頁,如此必須有三個換頁動作。
雖然以一頁接一頁的順序來讀取預(yù)測區(qū)塊,大體上可消除換頁動作,但在高帶寬應(yīng)用上,如HDTV視頻解碼系統(tǒng),仍然是動態(tài)隨機存取存儲器的帶寬上的一大瓶頸。尤其在有即時解碼限制的高頻應(yīng)用上,由于在動作補償過程中,需要大量及快速的存儲器讀取,過多換頁動作可能導(dǎo)致無法達(dá)到即時解碼的需求。
發(fā)明內(nèi)容
有鑒于上述問題,本發(fā)明的目的是提供一種存儲器存取方法,通過重復(fù)存儲存儲頁邊界的數(shù)據(jù)來形成模擬存儲頁,如此可降低或完全避免換頁動作。
為達(dá)成上述目的,本發(fā)明的存儲器存取方法,以重復(fù)存儲存儲頁邊界的部分?jǐn)?shù)據(jù)來減少或消除數(shù)據(jù)讀取時的換頁動作。該方法包含下列步驟決定一預(yù)測區(qū)塊的最大高度及最大寬度;存儲步驟,在至少一存儲頁的至少一邊界重復(fù)存儲相鄰的前一存儲頁的部分?jǐn)?shù)據(jù);以及讀取步驟,根據(jù)所欲讀取的區(qū)塊的位置,選擇不會在重復(fù)存儲的邊界上產(chǎn)生換頁的存儲頁讀取該區(qū)塊。
因此,本發(fā)明利用重復(fù)存儲的方式來消除讀取區(qū)塊數(shù)據(jù)時的換頁動作,進(jìn)而增進(jìn)存儲器帶寬,同時加快讀取速度。
圖1為一種以區(qū)塊方式存儲參考圖像數(shù)據(jù)的示意圖。
圖2所示為合并兩存儲頁成為一模擬存儲頁的原理,其中(A)為區(qū)塊A為于存儲頁M頁的位置圖、(B)為區(qū)塊A向右位移一個像素而位于存儲頁M頁與N頁的位置圖、(C)為將存儲頁N頁重復(fù)存儲的存儲頁M頁的邊界位置數(shù)據(jù)的示意圖、以及(D)為模擬的存儲頁M_N頁。
圖3為本發(fā)明去除所有水平存儲頁邊界的實例,其中(A)為各存儲頁的重迭存儲的示意圖、(B)為模擬存儲頁。
圖4為本發(fā)明去除所有水平與垂直存儲頁邊界的實例,其中(A)為各存儲頁的重迭存儲的示意圖、(B)為模擬存儲頁。
附圖標(biāo)號說明MB宏區(qū)塊A預(yù)測區(qū)塊M、N存儲頁SP模擬存儲頁
具體實施例方式
以下參考附圖詳細(xì)說明本發(fā)明存儲器存取方法的實施例。
圖2所示為合并兩存儲頁成為一模擬存儲頁的原理,其中(A)為區(qū)塊A為于存儲頁M頁的位置圖、(B)為區(qū)塊A向右位移一個像素而位于存儲頁M頁與N頁的位置圖、(C)為將存儲頁N頁重復(fù)存儲的存儲頁M頁的邊界位置數(shù)據(jù)的示意圖、以及(D)為模擬的存儲頁M_N頁。
在圖2(A)中,存儲頁M頁及存儲頁N頁是位于參考圖像中的兩水平相鄰存儲頁。因預(yù)測區(qū)塊A完全被存儲頁M頁所包含,故當(dāng)系統(tǒng)在讀取預(yù)測區(qū)塊A時,不會有換頁動作。然而如圖2(B)所示,當(dāng)預(yù)測區(qū)塊A向右移動了一個像素的位置,則預(yù)測區(qū)塊A的一行數(shù)據(jù)存儲于存儲頁N頁。因此,當(dāng)系統(tǒng)在讀取預(yù)測區(qū)塊A時,即產(chǎn)生了從M頁換頁至N頁的換頁動作。因此,為了避免換頁動作的產(chǎn)生,本發(fā)明的存儲器存取方法在存儲頁N頁的邊界重復(fù)存儲存儲頁M頁的部分?jǐn)?shù)據(jù),亦即存儲頁N頁所存儲的數(shù)據(jù)與存儲頁M頁所存儲的數(shù)據(jù)重迭,如圖2(C)的斜線區(qū)域。重迭的區(qū)域?qū)挾葹轭A(yù)測區(qū)塊A的寬度減1。
利用此存儲頁重迭技術(shù),當(dāng)系統(tǒng)計算出預(yù)測區(qū)塊A會跨過存儲頁M頁的垂直邊界時,則會從存儲頁N頁讀取預(yù)測區(qū)塊A的數(shù)據(jù),且因預(yù)測區(qū)塊A完全被存儲頁N頁所包含,故不需進(jìn)行換頁。所以,以系統(tǒng)的角度來看存儲器時,會將存儲頁M頁與N頁視為一模擬的存儲頁M_N頁,如圖2(D)所示。故只要預(yù)測區(qū)塊A位于模擬存儲頁M_N頁中,則系統(tǒng)在讀取該預(yù)測區(qū)塊A的數(shù)據(jù)時,不會產(chǎn)生垂直邊界的換頁動作。以此模擬存儲頁的技術(shù),可經(jīng)由重復(fù)存儲于相鄰存儲頁間的數(shù)據(jù)來放大存儲頁的尺寸。當(dāng)然,圖2為去除垂直存儲頁邊界的實例,相同技術(shù)可用于去除水平存儲頁邊界。
另外,關(guān)于重復(fù)存儲的區(qū)域大小取決于預(yù)測區(qū)塊A的尺寸。若預(yù)測區(qū)塊的最大寬度為Wmax和最大高度為Hmax,單位為像素。例如,在MPEG I或MPEG II中被存儲的參考圖像,具半像素補償?shù)目赡艿念A(yù)測區(qū)塊尺寸包括16×16、17×17、16×17、以及17×16。因此,最大寬度及最大高度皆為17,亦即Wmax=17、且Hmax=17。
其次,假設(shè)存儲頁的容量為Spage,且存儲頁存儲宏區(qū)塊的形狀為長方形,定義其寬度和高度的像素分別為Wpage和Hpage。若要移去水平存儲頁邊界時,則如圖2(C)所示,在兩水平相鄰存儲頁間被重復(fù)存儲的數(shù)據(jù)的行數(shù)Hdup為(Hmax-1),故必須滿足HpageHmax。而若要移去垂直存儲頁的邊界時,在兩垂直相鄰存儲頁間被重復(fù)存儲的行數(shù)Wdup為(Wmax-1),故必須滿足WpageWmax。因此,可根據(jù)存儲器大小將存儲頁合并成較大的模擬存儲頁,而減少讀取預(yù)測區(qū)塊時的換頁動作。
圖3為本發(fā)明去除所有水平存儲頁邊界的實例,其中(A)為各存儲頁的重迭存儲的示意圖、(B)為模擬存儲頁。在MPEG I或MPEG II的規(guī)格中,宏區(qū)塊的尺寸為16*16像素,且預(yù)測區(qū)塊的最大高度Hmax為17。若存儲頁的容量可存儲4個宏區(qū)塊,則存儲頁高度Hpage為64,故滿足HpageHmax的條件,可去除位于垂直相鄰存儲頁間的水平存儲頁邊界。且各垂直相鄰存儲頁間被重復(fù)存儲的行數(shù)Hdup為16,即Hmax-1,剛好為一個宏區(qū)塊的高度。所以,在將參考圖像存儲至存儲器時,除了第一行的存儲頁不需重復(fù)存儲數(shù)據(jù)外,其余各存儲頁均重復(fù)上一存儲頁的最下方的宏區(qū)塊數(shù)據(jù),如圖3的斜線區(qū)域。以參考圖像的大小為720*576像素為例,在未使用本發(fā)明的存儲方法時,其存儲頁的行數(shù)為9行。而使用本發(fā)明的存儲方法后,由于每行的存儲頁必須重復(fù)存儲一個宏區(qū)塊的數(shù)據(jù),因此存儲頁的行數(shù)約增加1/3,亦即總行數(shù)增加為12。雖然存儲器的容量需要增加,但是可消除水平邊界,如圖3(B)所示,而提升在讀取預(yù)測區(qū)塊時的速度。如圖3(B)中,各存儲頁的水平邊界已被消除,所以系統(tǒng)所定義的存儲頁SP0~SP44的高度被延伸。換言之,系統(tǒng)是以增加存儲器空間來換取存儲器的帶寬。其次,因圖3(A)的存儲頁寬度Wpage小于預(yù)測區(qū)塊最大寬度Wmax,所以無法去除垂直存儲頁邊界。
圖4為本發(fā)明去除所有水平與垂直存儲頁邊界的實例,其中(A)為各存儲頁的重迭存儲的示意圖、(B)為模擬存儲頁。在MPEG I或MPEG II的規(guī)格中,宏區(qū)塊的尺寸為16*16像素,且預(yù)測區(qū)塊的最大高度Hmax為17。若存儲頁的容量可存儲16個宏區(qū)塊,則存儲頁高度Hpage與Wpage均為64,故滿足HpageHmax與WpageWmax的條件,可去除位于垂直相鄰存儲頁間的水平存儲頁邊界、以及去除位于水平相鄰存儲頁間的垂直存儲頁邊界。且各垂直與水平相鄰存儲頁間被重復(fù)存儲的行數(shù)Hdup為16,即Hmax-1,剛好為一個宏區(qū)塊的高度與寬度。所以,在將參考圖像存儲至存儲器時,除了第一行的第一列的存儲頁不需重復(fù)存儲數(shù)據(jù)外,其余各行的存儲頁均重復(fù)存儲上一存儲頁的最下方的宏區(qū)塊數(shù)據(jù),以及各列的存儲頁均重復(fù)存儲前一存儲頁的最右方的宏區(qū)塊數(shù)據(jù),如圖4的斜線區(qū)域。以參考圖像的大小為720*576像素為例,在未使用本發(fā)明的存儲方法時,其存儲頁的行數(shù)為9行、而列數(shù)為11.25列。而使用本發(fā)明的存儲方法后,由于每行與每列的存儲頁必須重復(fù)存儲一個宏區(qū)塊的數(shù)據(jù),因此存儲頁的行數(shù)與列數(shù)約增加1/3,亦即總行數(shù)增加為12,且總列數(shù)增加為15。雖然存儲器的容量需要增加,但是可消除各存儲頁的邊界。如圖4(B)所示,系統(tǒng)所定義的存儲頁SP0只有一個,因此系統(tǒng)在讀取任何預(yù)測區(qū)塊時,均不會有換頁動作,而提升在讀取預(yù)測區(qū)塊時的速度。如此,以本發(fā)明的方法將參考圖像存儲至存儲器后,系統(tǒng)在讀取任何預(yù)測區(qū)塊時,將不會有換頁動作,所以在高帶寬即時應(yīng)用上,將可克服因換頁動作帶寬所面臨的瓶頸問題。
以上雖以實施例說明本發(fā)明,但并不因此限定本發(fā)明的范圍,只要不脫離本發(fā)明的構(gòu)思,本領(lǐng)域技術(shù)人員可進(jìn)行各種變化或變更。
權(quán)利要求
1.一種存儲器存取方法,以區(qū)塊為單位從存儲器存取參考圖像數(shù)據(jù),包含下列步驟決定一預(yù)測區(qū)塊的最大高度及最大寬度;存儲步驟,根據(jù)所述最大高度及最大寬度,在至少一存儲頁的至少一邊界重復(fù)存儲相鄰存儲頁的部分邊界數(shù)據(jù);以及讀取步驟,若所欲讀取的預(yù)測區(qū)塊的位置位于所述重復(fù)存儲數(shù)據(jù)的存儲頁邊界上,則選擇不會產(chǎn)生換頁的存儲頁讀取該區(qū)塊;通過利用重復(fù)存儲的方式消除讀取區(qū)塊數(shù)據(jù)時的換頁動作,進(jìn)而增進(jìn)讀取速度。
2.如權(quán)利要求1所述的儲器存取方法,其中所述存儲步驟在水平邊界重復(fù)存儲相鄰前一存儲頁的部分?jǐn)?shù)據(jù)。
3.如權(quán)利要求2所述的儲器存取方法,其中所述存儲頁的高度必須大于或等于所述預(yù)測區(qū)塊的最大高度。
4.如權(quán)利要求3所述的儲器存取方法,其中所述讀取步驟中,當(dāng)所欲讀取的區(qū)塊會跨過一存儲頁的水平存儲頁邊界時,則從另一存儲頁讀取該區(qū)塊的數(shù)據(jù)。
5.如權(quán)利要求1所述的儲器存取方法,其中所述存儲步驟在垂直邊界重復(fù)存儲相鄰前一存儲頁的部分?jǐn)?shù)據(jù)。
6.如權(quán)利要求5所述的儲器存取方法,其中所述存儲頁的寬度必須大于或等于所述預(yù)測區(qū)塊的最大寬度。
7.如權(quán)利要求6所述的儲器存取方法,其中所述讀取步驟中,當(dāng)所欲讀取的區(qū)塊會跨過一存儲頁的垂直存儲頁邊界時,則從另一存儲頁讀取該區(qū)塊的數(shù)據(jù)。
8.如權(quán)利要求1所述的儲器存取方法,其中所述讀取步驟在垂直邊界重復(fù)存儲相鄰前一存儲頁的部分?jǐn)?shù)據(jù),以及在水平邊界重復(fù)存儲相鄰前一存儲頁的部分?jǐn)?shù)據(jù)。
9.如權(quán)利要求8所述的儲器存取方法,其中所述存儲頁的高度與寬度必須分別大于或等于所述預(yù)測區(qū)塊的最大高度與最大寬度。
10.如權(quán)利要求9所述的儲器存取方法,其中所述讀取步驟中,當(dāng)所欲讀取的區(qū)塊會跨過一存儲頁的垂直存儲頁邊界時,則從另一存儲頁讀取該區(qū)塊的數(shù)據(jù)。
11.如權(quán)利要求10所述的儲器存取方法,其中所述讀取步驟中,當(dāng)所欲讀取的區(qū)塊會跨過一存儲頁的水平存儲頁邊界時,則從另一存儲頁讀取該區(qū)塊的數(shù)據(jù)。
12.一種存儲器存儲方法,以區(qū)塊為單位將參考圖像存儲至存儲器,包含下列步驟決定預(yù)測區(qū)塊的長寬像素尺寸H及W;以及在至少一存儲頁的至少一邊界重復(fù)存儲相鄰的前一存儲頁的部分?jǐn)?shù)據(jù)。
全文摘要
提出一種存儲器存取方法,是以重復(fù)存儲存儲頁邊界的部分?jǐn)?shù)據(jù)來減少或消除數(shù)據(jù)讀取時的換頁動作。該方法包含下列步驟決定一預(yù)測區(qū)塊的最大高度及最大寬度;存儲步驟,在至少一存儲頁的至少一邊界重復(fù)存儲相鄰的前一存儲頁的部分?jǐn)?shù)據(jù);以及讀取步驟,根據(jù)所欲讀取的區(qū)塊的位置,選擇不會在重復(fù)存儲的邊界上產(chǎn)生換頁的存儲頁讀取該區(qū)塊。因此,本發(fā)明利用重復(fù)存儲的方式來消除讀取區(qū)塊數(shù)據(jù)時的換頁動作,進(jìn)而增進(jìn)存儲器帶寬,同時加快讀取速度。
文檔編號H04N7/32GK1479308SQ0214222
公開日2004年3月3日 申請日期2002年8月26日 優(yōu)先權(quán)日2002年8月26日
發(fā)明者朱啟誠 申請人:聯(lián)發(fā)科技股份有限公司