專利名稱:可節(jié)省內(nèi)存的影像縮放系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種影像縮小及放大的技術(shù),尤其涉及一種可節(jié)省內(nèi)存的影像縮放系統(tǒng)。
背景技術(shù):
插值方法(interpolation)常用于傳統(tǒng)的二維(2D)影像的放大與縮小技術(shù)中。該方法需要使用一掃瞄線緩沖裝置(scan line buffer)。該方法執(zhí)行影像垂直放大時,其先由一主存儲器中讀入一條影像線的數(shù)據(jù),然后將影像線的每個像素的值乘以一縮放參數(shù)(scaling factor)后,并暫存在掃瞄線緩沖裝置中。而后再讀入下一條影像線的數(shù)據(jù),并將每個像素的值乘以縮放參數(shù)后,再與掃瞄線緩沖裝置中相對應(yīng)的像素值做累加運算(accumulator operation)后,經(jīng)過移位運算(shift operation),才能得到垂直放大的輸出影像。
另一傳統(tǒng)方法則是使用一靜態(tài)隨機存取存儲器(SRAM)暫存數(shù)條輸入影像數(shù)據(jù)。該靜態(tài)隨機存取存儲器用以取代該掃瞄線緩沖裝置。此時,只要透過邏輯電路擷取靜態(tài)隨機存取存儲器中所儲存的相對應(yīng)像素值,并將這些像素值乘上相對應(yīng)的縮放參數(shù),再執(zhí)行累加運算與移位運算,即可獲得輸出影像的像素值。該方法可以減少數(shù)據(jù)在靜態(tài)隨機存取存儲器中讀取的次數(shù),但將增加靜態(tài)隨機存取存儲器的大小,尤其當影像的寬度很大時,靜態(tài)隨機存取存儲器的大小將急速增加,從而增加許多系統(tǒng)的硬件成本。
在美國專利USP6,219,465公告“High Quality Digital Scaling UsingPixel Window Average And Linear Interpolation”中,如其說明書所述,在影像執(zhí)行縮小運算時,使用窗口平均方法(window averaging),在影像執(zhí)行放大運算時,使用插值方法(interpolation)。該傳統(tǒng)技術(shù)的硬件架構(gòu)共用一掃瞄線緩沖裝置暫存數(shù)據(jù),并通過改變選擇式縮放參數(shù)(seletive scaling factor),從而達到可任意比例垂直或水平的放大與縮小。然而,該發(fā)明將一條影像線的數(shù)據(jù)儲存在一靜態(tài)隨機存取存儲器中,故在一平行(parallel)模式下,一次只能處理一個維度(1D)的數(shù)據(jù),且使用掃瞄線緩沖裝置暫存中間的運算數(shù)據(jù)。其輸出數(shù)據(jù)需要經(jīng)過兩個維度(2D)處理后產(chǎn)生一條輸出影像線(out image line)。此方法的缺點是輸出影像以一條影像線為單位,每條影像線與影像線的間隔可能過長,不適合需要實時(real time)輸出的系統(tǒng)。該發(fā)明在一序列(serial)模式下,雖可一次處理兩個維度(2D)的數(shù)據(jù),以達到實時輸出的要求。但是進行兩個維度處理時需共用掃瞄線緩沖裝置(scan line buffer),且可能因為兩個維度的處理系統(tǒng)在處理數(shù)據(jù)有先后順序及快慢的因素,使其中一個系統(tǒng)閑置,而降低系統(tǒng)的輸出效能。因此,傳統(tǒng)的影像縮放系統(tǒng)仍存有諸多缺失而有待改進。
發(fā)明內(nèi)容
本發(fā)明的一個目的在于提供一種影像縮放系統(tǒng),從而能節(jié)省所使用的內(nèi)存,降低系統(tǒng)的硬件成本。
本發(fā)明的另一目的在于提供一種影像縮放系統(tǒng),從而能達到及時影像縮放運算,以避免傳統(tǒng)技術(shù)無法達到實時(real time)影像輸出的問題。
依據(jù)本發(fā)明的一個方面,本發(fā)明提出一種可節(jié)省內(nèi)存的影像縮放系統(tǒng),用以縮小或放大一影像,該影像由多數(shù)條影像線所組成,該影像縮放系統(tǒng)包含一窗口型內(nèi)存(Window SRAM)、一垂直縮放裝置、一緩沖裝置及一水平縮放裝置。該窗口型內(nèi)存用以接收并暫存N條影像線的部分數(shù)據(jù),N為正整數(shù);該垂直縮放裝置連接至該窗口型內(nèi)存,以對該N條影像線的部分數(shù)據(jù)執(zhí)行垂直方向縮放運算,而產(chǎn)生一垂直影像線的部分數(shù)據(jù);該緩沖裝置連接至該垂直縮放裝置,接收并暫存該垂直影像線的部分數(shù)據(jù);該水平縮放裝置連接至該緩沖裝置,以對該垂直影像線的部分數(shù)據(jù)執(zhí)行水平方向縮放運算,而產(chǎn)生一水平影像線的縮放部分數(shù)據(jù);其中,當執(zhí)行影像縮小時,該垂直縮放裝置及該水平縮放裝置使用窗口平均(window average)方法,以進行縮小運算,當執(zhí)行影像放大時,該垂直縮放裝置及該水平縮放裝置使用雙線性插值(bi-linear interpolation average)方法,以進行放大運算。
依據(jù)本發(fā)明的另一方面,本發(fā)明提出一種可節(jié)省內(nèi)存的影像縮放系統(tǒng),用以縮小或放大一影像,該影像由多數(shù)條影像線所組成,該影像縮放系統(tǒng)包含一窗口型內(nèi)存、一垂直縮放裝置、一緩沖裝置、一水平縮放裝置及一控制裝置。該窗口型內(nèi)存用以接收并暫存N條影像線的部分數(shù)據(jù),N為正整數(shù);該垂直縮放裝置連接至該窗口型內(nèi)存,以對該N條影像線的部分數(shù)據(jù)執(zhí)行垂直方向縮放運算,而產(chǎn)生一垂直影像線的部分數(shù)據(jù);該緩沖裝置連接至該垂直縮放裝置,接收并暫存該垂直影像線的部分數(shù)據(jù);該水平縮放裝置連接至該緩沖裝置,以對該垂直影像線的部分數(shù)據(jù)執(zhí)行水平方向縮放運算,而產(chǎn)生一水平影像線的縮放部分數(shù)據(jù);該控制裝置連接至該垂直縮放裝置及該水平縮放裝置,該控制裝置執(zhí)行該垂直縮放裝置及該水平縮放裝置的初始化及相關(guān)設(shè)定,并分別計算該N條影像線的N個垂直權(quán)重,并將該N個垂直權(quán)重寫入該垂直縮放裝置;其中,當執(zhí)行影像縮小時,該垂直縮放裝置及該水平縮放裝置均使用窗口平均方法,以進行縮小運算,當執(zhí)行影像放大時,該垂直縮放裝置及該水平縮放裝置均使用雙線性插值方法,以進行放大運算。
圖1是本發(fā)明的可節(jié)省內(nèi)存的影像縮放系統(tǒng)的方塊圖。
圖2是本發(fā)明的可節(jié)省內(nèi)存的影像縮放系統(tǒng)的電路圖。
圖3是本發(fā)明的水平權(quán)重產(chǎn)生器放大時產(chǎn)生M個水平權(quán)重的偽碼示意圖。
圖4是本發(fā)明的水平權(quán)重產(chǎn)生器縮小時產(chǎn)生M個水平權(quán)重的偽碼示意圖。
圖5是本發(fā)明使用雙線性插值方法以執(zhí)行放大運算的示意圖。
圖6是本發(fā)明使用窗口平均方法以執(zhí)行縮小運算的示意圖。
圖7是本發(fā)明的可節(jié)省內(nèi)存的影像縮放系統(tǒng)的運作示意圖。
圖8是本發(fā)明另一實施例的電路圖。
圖9是本發(fā)明又一實施例的方塊圖。
主要組件符號說明
窗口型內(nèi)存 110 垂直縮放裝置120緩沖裝置 130 水平縮放裝置140輸出緩沖裝置 150 主存儲器180第一直接內(nèi)存存取裝置 160第二直接內(nèi)存存取裝置 170影像縮放系統(tǒng) 100輸入端 1101 輸出端 1102暫存空間 1103垂直權(quán)重產(chǎn)生器 121 乘法器 127第一輸入端 1271 第二輸入端 1272第一加法器 123 輸入端 1231輸出端 1232 第一移位器 125水平權(quán)重產(chǎn)生器 141 水平縮放引擎 145第一輸入端 14531 第二輸入端 14532起始像素指標產(chǎn)生器 143 輸出端 14533M個緩存器 1451 輸出端 14511M個乘法器 1453第二加法器 1455 輸入端 14551輸出端 14552 第二移位器 1457控制裝置 710 垂直權(quán)重緩存器 721第一乒乓緩沖 810 第二乒乓緩沖器 820具體實施方式
圖1是本發(fā)明的可節(jié)省內(nèi)存的影像縮放系統(tǒng)的方塊圖。影像縮放系統(tǒng)用以縮小或放大一影像,其中該影像由多數(shù)條影像線所組成。該影像縮放系統(tǒng)100包含一窗口型內(nèi)存(Window SRAM)110、一垂直縮放裝置120、一緩沖裝置130、一水平縮放裝置140、一輸出緩沖裝置150、一第一直接內(nèi)存存取裝置(DMA)160、及一第二直接內(nèi)存存取裝置(DMA)170。
該窗口型內(nèi)存110用以接收并暫存N條影像線的部分數(shù)據(jù),N為正整數(shù)。在本實施例中,N為5。該垂直縮放裝置120連接至該窗口型內(nèi)存110,以對該N條影像線的部分數(shù)據(jù)執(zhí)行垂直方向縮放運算,而產(chǎn)生一垂直影像線的部分數(shù)據(jù)。該緩沖裝置130連接至該垂直縮放裝置120,接收并暫存該垂直影像線的部分數(shù)據(jù)。該水平縮放裝置140連接至該緩沖裝置130,以對該垂直影像線的部分數(shù)據(jù)執(zhí)行水平方向縮放運算,而產(chǎn)生一水平影像線的縮放部分數(shù)據(jù)。
該輸出緩沖裝置150連接至該水平縮放裝置140,用以暫存該水平影像線的縮放部分數(shù)據(jù)。將要執(zhí)行縮放的影像先儲存至該主存儲器180中。該第一直接內(nèi)存存取裝置160連接至一主存儲器180,從而由該主存儲器180擷取該N條影像線的部分數(shù)據(jù),并將該N條影像線的部分數(shù)據(jù)傳送至該窗口型內(nèi)存110。
該第二直接內(nèi)存存取裝置170連接至該主存儲器180及該輸出緩沖裝置150,從而由該輸出緩沖裝置150擷取該水平影像線的縮放部分數(shù)據(jù),并將該水平影像線的縮放部分數(shù)據(jù)傳送至該主存儲器180,以供后續(xù)使用。
當執(zhí)行水平及垂直影像縮小時,該垂直縮放裝置120及該水平縮放裝置140使用窗口平均(window average)方法,以進行縮小運算。當執(zhí)行水平及垂直影像放大時,該垂直縮放裝置120及該水平縮放裝置140使用雙線性插值(bi-linear interpolation average)方法,以進行放大運算。垂直影像縮放與水平影像縮放互相獨立,亦即可進行垂直影像放大及水平影像縮小,或垂直影像縮小及水平影像放大。
圖2是本發(fā)明的可節(jié)省內(nèi)存的影像縮放系統(tǒng)的電路圖。如圖2所示,該緩沖裝置130為先入先出(FIFO)型緩沖裝置。該窗口型內(nèi)存110具有5個輸入端1101及5個輸出端1102,并具有暫存空間1103。該窗口型內(nèi)存110可經(jīng)由其5個輸入端1101接收該第一直接內(nèi)存存取裝置160所傳送的影像線的部分數(shù)據(jù)。該窗口型內(nèi)存110儲存一條影像數(shù)據(jù)線中的部份像素值,而傳統(tǒng)技術(shù)中的窗口型內(nèi)存儲存一條影像數(shù)據(jù)線中的所有像素值。故本發(fā)明的技術(shù)不需要隨影像寬度增加,而改變該窗口型內(nèi)存110的暫存空間。
該垂直縮放裝置120包含一垂直權(quán)重產(chǎn)生器121、N個乘法器127、一第一加法器123、及一第一移位器125。該垂直權(quán)重產(chǎn)生器121用以在影像縮放時,產(chǎn)生N個垂直權(quán)重(Wv0、Wv1、Wv2、Wv3、Wv4)。
前述每一乘法器127的第一輸入端1271分別耦合至該窗口型內(nèi)存110相對應(yīng)的N個輸出端1102,每一乘法器127的第二輸入端1272分別耦合至該垂直權(quán)重產(chǎn)生器121,以分別接收該垂直權(quán)重產(chǎn)生器121產(chǎn)生的N個垂直權(quán)重(Wv0、Wv1、Wv2、Wv3、Wv4)其中之一,從而分別對該N條影像線的部分數(shù)據(jù)進行乘法運算。
該第一加法器123具有N個輸入端1231,并分別耦合至該N個乘法器127的輸出端1272,以對該N個乘法器127的輸出進行加法運算。該第一移位器125耦合至該第一加法器123的輸出端1232,以對該第一加法器123的輸出進行移位。經(jīng)過移位運算后,即可得出經(jīng)過垂直處理后的像素值。對該窗口型內(nèi)存110內(nèi)的每個像素重復上述運算,即可產(chǎn)生經(jīng)過垂直處理后讀的N條影像線的部分數(shù)據(jù),該部分數(shù)據(jù)在此實施例中為128個像素。
該垂直權(quán)重產(chǎn)生器121所產(chǎn)生N個垂直權(quán)重(Wv0、Wv1、Wv2、Wv3、Wv4),需要滿足Wv0+Wv1+Wv2+Wv3+Wv4的總合為2K,K為正整數(shù)。如此,才可使用該第一移位器125進行向右移位運算,從而代替除法運算。
該水平縮放裝置140包含一水平權(quán)重產(chǎn)生器141、一起始像素指標產(chǎn)生器(starting pixel pointer generator)143及一水平縮放引擎145。該水平權(quán)重產(chǎn)生器141用以在影像縮放時,產(chǎn)生M個水平權(quán)重。在本實施例中,M為5,而該M個水平權(quán)重分別為Wh0、Wh1、Wh2、Wh3及Wh4。
該起始像素指標產(chǎn)生器143耦合至該緩沖裝置130并產(chǎn)生一指標,用以指示存取該緩沖裝置130的位置。該水平縮放引擎145耦合至該緩沖裝置130及該水平權(quán)重產(chǎn)生器141,由該緩沖裝置130中擷取M個像素的數(shù)據(jù),及由該水平權(quán)重產(chǎn)生器141中擷取該M個水平權(quán)重,以對該M個像素進行水平縮放運算。
該水平縮放引擎145包含M個緩存器1451、M個乘法器1453、一第二加法器1455及一第二移位器1457。該M個緩存器1451耦合至該緩沖裝置130,用以暫存由該緩沖裝置130中擷取M個像素的資料。前述每一乘法器1453的第一輸入端14531分別耦合至該M個緩存器1451的輸出端14511其中之一,每一乘法器1453的第二輸入端14532分別耦合至該水平權(quán)重產(chǎn)生器141,以接收該水平權(quán)重產(chǎn)生器141產(chǎn)生M個水平權(quán)重其中之一,從而對該M個像素進行乘法運算。
該第二加法器1455具有M個輸入端14551,并分別耦合至該M個乘法器1453的輸出端14533,以對該M個乘法器1453的輸出進行加法運算。該第二移位器1457耦合至該第二加法1455器的輸出端14552,以對該產(chǎn)加法器1455的輸出進行移位運算。
圖3是該水平權(quán)重產(chǎn)生器141放大時產(chǎn)生M個水平權(quán)重的偽碼(Pseudo Code)示意圖。圖4是該水平權(quán)重產(chǎn)生器141縮小時產(chǎn)生M個水平權(quán)重的偽碼示意圖。圖3及圖4的偽碼可經(jīng)由例如Verilog或VHDL的硬件描述語言(Hardware Description Language,HDL)所實現(xiàn)。
當執(zhí)行影像放大時,該水平縮放裝置140使用雙線性插值(bi-linearinterpolation average)方法,以進行放大運算。圖5是本發(fā)明使用雙線性插值方法以執(zhí)行放大運算的示意圖。其執(zhí)行放大倍率為2.1的放大運算。首先設(shè)定一最大加權(quán)值(max_weight),在本實施例中,最大加權(quán)值為256(28)。再計算一放大參數(shù)(expand_para),該放大參數(shù)為最大加權(quán)值乘以一輸入比例再除以一輸出比例。在本實施例中,輸入比例為1,輸出比例為2.1,故該放大參數(shù)為121。
經(jīng)由圖3的偽碼,即可分別算出M個水平權(quán)重分別為Wh0、Wh1、Wh2、Wh3、Wh4。請參閱圖3及圖5,當執(zhí)行第一次循環(huán)時,一累加器的值A(chǔ)cc=0<256,使用P1像素與P2像素作線性內(nèi)插,P1像素的權(quán)重為(256-0),P2像素的權(quán)重為(0),此循環(huán)結(jié)束,不需再繼續(xù)處理,爾后的權(quán)重值為零,亦即接下來Wh2、Wh3、Wh4皆為0,故E1為(P1×256+P2×0+P3×0+P4×0+P5×0)>>28。當執(zhí)行第二次循環(huán)時,該累加器的值A(chǔ)cc=0+121<256,使用P1像素與P2像素作線性內(nèi)插,P1像素的權(quán)重為(256-121),P2像素的權(quán)重為(121),此循環(huán)結(jié)束,不需再繼續(xù)處理,爾后的權(quán)重值為零,亦即接下來Wh2、Wh3、Wh4皆為0,故E2為(P1×135+P2×121+P3×0+P4×0+P×0)>>28。當執(zhí)行第三次循環(huán)時,該累加器之值A(chǔ)cc=121+121<256,使用P1像素與P2像素作線性內(nèi)插,P1像素的權(quán)重為(256-242),P2像素的權(quán)重為(242),此循環(huán)結(jié)束,不需再繼續(xù)處理、爾后的權(quán)重值為零,亦即接下來Wh2、Wh3、Wh4皆為0,故E3為(P1×14+P2×242+P3×0+P4×0+P5×0)>>28。當執(zhí)行第四次循環(huán)時,該累加器之值A(chǔ)cc=242+121>256,Acc=363-256=107,使用P2像素與P3像素作線性內(nèi)插,P2像素的權(quán)重為(256-107),P3像素的權(quán)重為(107),此循環(huán)結(jié)束,不需再繼續(xù)處理,爾后的權(quán)重值為零,亦即接下來Wh2、Wh3、Wh4皆為0,故E4為(P2×149+P3×107+P4×0+P5×0+P6×0)>>28。其它像素的處理步驟與上述相同,不予贅述。
當執(zhí)行影像縮小時,該水平縮放裝置149使用窗口平均(windowaverage)方法,以進行縮小運算。圖6是本發(fā)明使用窗口平均(windowaverage)方法以執(zhí)行縮小運算的示意圖。其執(zhí)行縮小倍率為2.6的縮小運算。首先設(shè)定一最大加權(quán)值(max_weight),在本實施例中,最大加權(quán)值為256(28)。再計算一縮小參數(shù)(shrink_norm),該縮小參數(shù)為最大加權(quán)值乘以一輸出比例再除以一輸入比例。在本實施例中,輸入比例為2.6,輸出比例為1,故該縮小參數(shù)為98。
經(jīng)由圖4的偽碼,即可分別算出M個水平權(quán)重分別為Wh0、Wh1、Wh2、Wh3、Wh4。如圖4所示,當執(zhí)行第一次循環(huán)時,累加器的值A(chǔ)cc=256-98>0,P1像素的權(quán)重為98,需繼續(xù)處理下一個像素的權(quán)重,Acc=158-98>0,P2像素權(quán)重為98,需繼續(xù)處理下一個像素的權(quán)重,Acc=60-98<=0,P3像素權(quán)重為60,此循環(huán)結(jié)束,不需再繼續(xù)處理,爾后的權(quán)重值為零,亦即接下來Wh3、Wh4皆為0,故S1為(P1×98+P2×98+P3×60+P4×0+P5×0)>>28。當執(zhí)行第二次循環(huán)時,累加器的值A(chǔ)cc=256-(98-60)>0,P3像素的權(quán)重為38,需繼續(xù)處理下一個像素的權(quán)重,Acc=218-98>0,P4像素的權(quán)重為98,需繼續(xù)處理下一個像素的權(quán)重,累加器的值A(chǔ)cc=120-98>0,P5像素的權(quán)重為98,需繼續(xù)處理下一個像素的權(quán)重;累加器的值A(chǔ)cc=22-98<0,P5像素的權(quán)重為22,此循環(huán)結(jié)束,不需再繼續(xù)處理,爾后的權(quán)重值為零,亦即接下來Wh4為0,故S2為[P3×(98-60)+P4×98+P5×98+P6×22+P7×0]>>28。其它像素的處理步驟與上述相同,不予贅述。
該垂直縮放裝置120使用窗口平均(window average)方法以執(zhí)行影像縮小運算,并使用雙線性插值方法以執(zhí)行影像放大運算。該垂直縮放裝置120所使用方法與該水平縮放裝置149相同,熟悉該項技術(shù)者可由圖3及圖4的偽碼,可轉(zhuǎn)換為該垂直縮放裝置120的硬件電路。
由于在進行一條影像線縮放運算中,該N條影像線的垂直權(quán)重(Wv0、Wv1、Wv2、Wv3、Wv4)無需改變,故可先將該垂直權(quán)重(Wv0、Wv1、Wv2、Wv3、Wv4)算出,并寫入一垂直權(quán)重緩存器中,以取代該垂直權(quán)重產(chǎn)生器121。
圖7是本發(fā)明的可節(jié)省內(nèi)存的影像縮放系統(tǒng)100的運作示意圖。當執(zhí)行水平及垂直影像縮小時,該影像縮放系統(tǒng)100利用第一直接內(nèi)存存取裝置(DMA)160擷取儲存于該主存儲器180中的5條影像線的部分數(shù)據(jù)(In_line_1~In_line_5),執(zhí)行垂直方向縮小運算后,再執(zhí)行水平方向縮小運算,以獲得水平影像線的縮小部分數(shù)據(jù)(Out_line_1)。之后,該影像縮放系統(tǒng)100利用第二直接內(nèi)存存取裝置(DMA)170將水平影像線的縮小部分數(shù)據(jù)(Out_line_1)儲存于該主存儲器180中。
當執(zhí)行水平及垂直影像放大時,該影像縮放系統(tǒng)100利用第一直接內(nèi)存存取裝置(DMA)160擷取儲存于該主存儲器180中的2條影像線的部分數(shù)據(jù)(In_line_1~In_line_2),執(zhí)行垂直方向放大運算后,再執(zhí)行水平方向放大運算,以獲得水平影像線的放大部分數(shù)據(jù)(Out_line_1)。之后,該影像縮放系統(tǒng)100利用第二直接內(nèi)存存取裝置(DMA)170將水平影像線的放大部分數(shù)據(jù)(Out_line_1)儲存于該主存儲器180中。
圖8是本發(fā)明另一實施例的電路圖。其主要使用一控制裝置710以計算該N條影像線的垂直權(quán)重(Wv0、Wv1、Wv2、Wv3、Wv4),并以一垂直權(quán)重緩存器721取代該該垂直縮放裝置120。該控制裝置710執(zhí)行該垂直縮放裝置120、該水平縮放裝置140、該第一直接內(nèi)存存取裝置(DMA)160、及該第二直接內(nèi)存存取裝置(DMA)170的初始化及相關(guān)設(shè)定,并將該該N條影像線的垂直權(quán)重(Wv0、Wv1、Wv2、Wv3、Wv4)寫入該垂直權(quán)重緩存器721中。
圖9是本發(fā)明又一實施例的方塊圖。其中該窗口型內(nèi)存110為乒乓窗口型內(nèi)存(ping-pong window SRAM)。該輸出緩沖裝置150亦為乒乓緩沖裝置(ping-pong buffer)。該窗口型內(nèi)存110包含一第一乒乓緩沖器810及一第二乒乓緩沖器820。當?shù)谝黄古揖彌_器810存滿數(shù)據(jù)時,將該第一乒乓緩沖器810的輸出導向該垂直縮放裝置120。當?shù)谝黄古揖彌_器810數(shù)據(jù)耗盡且第二乒乓緩沖器820存滿數(shù)據(jù)時,將該第二乒乓緩沖器820的輸出導向該垂直縮放裝置120。借此以提高系統(tǒng)的輸出量(throughput)。
本發(fā)明的優(yōu)選實施例可由上述說明所示范及揭露。其非限制本發(fā)明至前述的揭露。許多優(yōu)選實施例的變形或修正為熟悉本領(lǐng)域技術(shù)者基于上述說明所能輕易完成,本發(fā)明的范圍定義于權(quán)利要求范圍中,及其等價所及。
由上述說明可知,本發(fā)明使用窗口型內(nèi)存(window SRAM)處理影像放大與縮小,可以兼顧降低影像處理時間及降低內(nèi)存大小的要求。本發(fā)明為降低內(nèi)存的使用,不使用線緩沖器(line buffer)儲存影像數(shù)據(jù),而以窗口型內(nèi)存儲存影像數(shù)據(jù)。且窗口型內(nèi)存的內(nèi)存大小為依據(jù)直接內(nèi)存存取(DMA)頻寬做最優(yōu)化調(diào)整,將窗口型內(nèi)存的使用降到最低,減少硬件成本。
同時,透過控制直接內(nèi)存存取(DMA)數(shù)據(jù)讀取的位置,可以將一個窗口大小的輸入影像寫入至窗口型內(nèi)存(window SRAM)110中。再將此窗口大小的影像數(shù)據(jù)經(jīng)過垂直放大或縮小處理器,再經(jīng)過水平放大或縮小處理器后,實時(real time)輸出到后端的影像處理(例如影像壓縮)。
另外,本發(fā)明的垂直縮放裝置120在執(zhí)行影像放大與縮小運算時,均共用該窗口型內(nèi)存(window SRAM)110,可進一步降低內(nèi)存的使用量。在二維(2D)的影像數(shù)據(jù)處理上,不需要整條影像線處理完后才輸出,而是以處理完數(shù)個影像數(shù)據(jù)后,即可透過第二直接內(nèi)存存取裝置170輸出,達到系統(tǒng)實時(Real time)輸出的要求。
上述實施例僅為了方便說明而舉例而已,本發(fā)明所主張的權(quán)利范圍自應(yīng)以權(quán)利要求所述為準,而非僅限于上述實施例。
權(quán)利要求
1.一種可節(jié)省內(nèi)存的影像縮放系統(tǒng),用以縮小或放大一影像,該影像由多數(shù)條影像線所組成,該影像縮放系統(tǒng)包含一窗口型內(nèi)存,用以接收并暫存N條影像線的部分數(shù)據(jù),N為正整數(shù);一垂直縮放裝置,連接至該窗口型內(nèi)存,以對該N條影像線的部分數(shù)據(jù)執(zhí)行垂直方向縮放運算,而產(chǎn)生一垂直影像線的部分數(shù)據(jù);一緩沖裝置,連接至該垂直縮放裝置,接收并暫存該垂直影像線的部分數(shù)據(jù);以及一水平縮放裝置,連接至該緩沖裝置,以對該垂直影像線的部分數(shù)據(jù)執(zhí)行水平方向縮放運算,而產(chǎn)生一水平影像線的縮放部分數(shù)據(jù);其中,當執(zhí)行影像縮小時,該垂直縮放裝置及該水平縮放裝置使用窗口平均方法,以進行縮小運算,當執(zhí)行影像放大時,該垂直縮放裝置及該水平縮放裝置使用雙線性插值方法,以進行放大運算。
2.如權(quán)利要求1所述的影像縮放系統(tǒng),其還包含一輸出緩沖裝置,連接至該水平縮放裝置,用以暫存該水平影像線的縮放部分數(shù)據(jù);一第一直接內(nèi)存存取裝置,連接至一主存儲器及該窗口型內(nèi)存,從而由該主存儲器擷取該N條影像線的部分數(shù)據(jù),并將該N條影像線的部分數(shù)據(jù)傳送至該窗口型內(nèi)存;以及一第二直接內(nèi)存存取裝置,連接至該主存儲器及該輸出緩沖裝置,從而由該輸出緩沖裝置擷取該水平影像線的縮放部分數(shù)據(jù),并將該水平影像線的縮放部分數(shù)據(jù)傳送至該主存儲器。
3.如權(quán)利要求2所述的影像縮放系統(tǒng),其中,該窗口型內(nèi)存具有N個輸出端。
4.如權(quán)利要求3所述的影像縮放系統(tǒng),其中,該垂直縮放裝置包含一垂直權(quán)重產(chǎn)生器,用以在影像縮放時,產(chǎn)生N個垂直權(quán)重;N個乘法器,每一乘法器的第一輸入端分別耦合至該窗口型內(nèi)存的N個輸出端其中之一,每一乘法器的第二輸入端耦合至該垂直權(quán)重產(chǎn)生器,以分別接收該垂直權(quán)重產(chǎn)生器產(chǎn)生N個垂直權(quán)重其中之一,從而對該N條影像線的部分數(shù)據(jù)進行乘法運算;一第一加法器,其具有N個輸入端,并分別耦合至該N個乘法器的輸出端,以對該產(chǎn)生該N個乘法器的輸出進行加法運算;以及一第一移位器,耦合至該第一加法器的輸出端,以對該第一加法器的輸出進行移位,從而產(chǎn)生該垂直影像線的部分數(shù)據(jù)。
5.如權(quán)利要求4所述的影像縮放系統(tǒng),其中,該水平縮放裝置包含一水平權(quán)重產(chǎn)生器,用以在影像縮放時,產(chǎn)生M個水平權(quán)重,M為正整數(shù);一起始像素指標產(chǎn)生器,其耦合至該緩沖裝置并產(chǎn)生一指針,該指標用以指示存取該緩沖裝置的位置;以及一水平縮放引擎,其耦合至該緩沖裝置及該水平權(quán)重產(chǎn)生器,由該緩沖裝置中擷取M個像素的數(shù)據(jù),及由該水平權(quán)重產(chǎn)生器中擷取該M個水平權(quán)重,以對該M個像素進行水平縮放運算。
6.如權(quán)利要求5所述的影像縮放系統(tǒng),其中,該水平縮放引擎包含M個緩存器,其耦合至該緩沖裝置,用以暫存由該緩沖裝置中擷取M個像素的資料;M個乘法器,每一乘法器的第一輸入端分別耦合至該M個緩存器的輸出端其中之一,每一乘法器的第二輸入端耦合至該水平權(quán)重產(chǎn)生器,以分別接收該水平權(quán)重產(chǎn)生器產(chǎn)生M個水平權(quán)重其中之一,俾對該M個像素進行乘法運算;一第二加法器,其具有M個輸入端,并分別耦合至該M個乘法器的輸出端,以對該產(chǎn)生該M個乘法器的輸出進行加法運算;以及一第二移位器,耦合至該第二加法器的輸出端,以對該產(chǎn)加法器的輸出進行移位運算。
7.一種可節(jié)省內(nèi)存的影像縮放系統(tǒng),用以縮小或放大一影像,該影像由多數(shù)條影像線所組成,該影像縮放系統(tǒng)包含一窗口型內(nèi)存,用以接收并暫存N條影像線的部分數(shù)據(jù),N為正整數(shù);一垂直縮放裝置,連接至該窗口型內(nèi)存,以對該N條影像線的部分數(shù)據(jù)執(zhí)行垂直方向縮放運算,而產(chǎn)生一垂直影像線的部分數(shù)據(jù);一緩沖裝置,連接至該垂直縮放裝置,接收并暫存該垂直影像線的部分數(shù)據(jù);一水平縮放裝置,連接至該緩沖裝置,以對該垂直影像線的部分數(shù)據(jù)執(zhí)行水平方向縮放運算,而產(chǎn)生一水平影像線的縮放部分數(shù)據(jù);以及一控制裝置,其連接至該該垂直縮放裝置及該水平縮放裝置,該控制裝置執(zhí)行該垂直縮放裝置及該水平縮放裝置的初始化及相關(guān)設(shè)定,并分別計算該N條影像線的N個垂直權(quán)重,再將該N個垂直權(quán)重寫入該垂直縮放裝置;其中,當執(zhí)行影像縮小時,該垂直縮放裝置及該水平縮放裝置使用窗口平均方法,以進行縮小運算,當執(zhí)行影像放大時,該垂直縮放裝置及該水平縮放裝置使用雙線性插值方法,以進行放大運算。
8.如權(quán)利要求7所述的影像縮放系統(tǒng),其還包含一輸出緩沖裝置,連接至該水平縮放裝置,用以暫存該水平影像線的縮放部分數(shù)據(jù);一第一直接內(nèi)存存取裝置,連接至一主存儲器及該窗口型內(nèi)存,從而由該主存儲器擷取該N條影像線的部分數(shù)據(jù),并將該N條影像線的部分數(shù)據(jù)傳送至該窗口型內(nèi)存;以及一第二直接內(nèi)存存取裝置,連接至該主存儲器及該輸出緩沖裝置,從而由該輸出緩沖裝置擷取該水平影像線的縮放部分數(shù)據(jù),并將該水平影像線的縮放部分數(shù)據(jù)傳送至該主存儲器。
9.如權(quán)利要求8所述的影像縮放系統(tǒng),其中,該窗口型內(nèi)存具有N個輸出端。
10.如權(quán)利要求9所述的影像縮放系統(tǒng),其中,該垂直縮放裝置包含一垂直權(quán)重緩存器,連接至該控制裝置,用以在影像縮放時,暫存該控制裝置所產(chǎn)生N個垂直權(quán)重;N個乘法器,每一乘法器的第一輸入端分別耦合至該窗口型內(nèi)存的N個輸出端其中之一,每一乘法器的第二輸入端耦合至該垂直權(quán)重緩存器,以分別接收該垂直權(quán)重緩存器所儲存N個垂直權(quán)重其中之一,俾對該N條影像線的部分數(shù)據(jù)進行乘法運算;一第一加法器,其具有N個輸入端,并分別耦合至該N個乘法器的輸出端,以對該產(chǎn)生該N個乘法器的輸出進行加法運算;以及一第一移位器,耦合至該第一加法器的輸出端,以對該第一加法器的輸出進行移位,從而產(chǎn)生該垂直影像線的部分數(shù)據(jù)。
11.如權(quán)利要求10所述的影像縮放系統(tǒng),其中,該水平縮放裝置包含一水平權(quán)重產(chǎn)生器,用以在影像縮放時,產(chǎn)生M個水平權(quán)重,M為正整數(shù);一起始像素指標產(chǎn)生器,其耦合至該緩沖裝置并產(chǎn)生一指針,該指標用以指示存取該緩沖裝置的位置;以及一水平縮放引擎,其耦合至該緩沖裝置及該水平權(quán)重產(chǎn)生器,由該緩沖裝置中擷取M個像素的數(shù)據(jù),及由該水平權(quán)重產(chǎn)生器中擷取該M個水平權(quán)重,以對該M個像素進行水平縮放運算。
12.如權(quán)利要求11所述的影像縮放系統(tǒng),其中,該水平縮放引擎包含M個緩存器,其耦合至該緩沖裝置,用以暫存由該緩沖裝置中擷取M個像素的資料;M個乘法器,每一乘法器的第一輸入端耦合至該M個緩存器的輸出端其中之一,每一乘法器的第二輸入端耦合至該水平權(quán)重產(chǎn)生器,以接收該水平權(quán)重產(chǎn)生器產(chǎn)生M個水平權(quán)重其中之一,從而對該M個像素進行乘法運算;一第二加法器,其具有M個輸入端,并分別耦合至該M個乘法器的輸出端,以對該產(chǎn)生該M個乘法器的輸出進行加法運算;以及一第二移位器,耦合至該第二加法器的輸出端,以對該產(chǎn)加法器的輸出進行移位運算。
全文摘要
本發(fā)明涉及一種可節(jié)省內(nèi)存的影像縮放系統(tǒng),其包含一窗口型內(nèi)存、一垂直縮放裝置、一緩沖裝置及一水平縮放裝置。窗口型內(nèi)存用以暫存N條影像線的部分數(shù)據(jù)。垂直縮放裝置對N條影像線的部分數(shù)據(jù)執(zhí)行垂直方向縮放運算,產(chǎn)生一垂直影像線的部分數(shù)據(jù)。水平縮放裝置對一垂直影像線的部分數(shù)據(jù)執(zhí)行水平方向縮放運算,而產(chǎn)生該一水平影像線的縮放部分數(shù)據(jù)。當執(zhí)行影像縮小時,垂直及水平縮放裝置使用窗口平均方法,以進行縮小運算,當執(zhí)行影像放大時,垂直及水平縮放裝置使用雙線性插值方法,以進行放大運算。
文檔編號H04N1/393GK101094304SQ20061009318
公開日2007年12月26日 申請日期2006年6月23日 優(yōu)先權(quán)日2006年6月23日
發(fā)明者辜志正, 陳俊吉, 何文政 申請人:凌陽科技股份有限公司