專利名稱:圖像處理裝置和方法
技術領域:
本發明涉及一種圖像處理裝置和方法,具體地說,涉及用于在光柵掃描順序和塊掃描順序之間轉換圖像數據的圖像處理裝置和方法。
背景技術:
JPEG(聯合圖像專家組)是用于傳輸諸如照片的靜止圖像的壓縮標準。JPEG被設計用于壓縮全彩色或灰度圖像,并且對于照片或藝術使用良好。雖然另一種格式GIF(圖形交換格式)允許傳輸256色的彩色圖像,但是JPEG能夠以大約16兆的顏色來處理彩色圖像,并且更適合于高分辨率的顯示設備。JPEG的另一個優點是用戶可以控制圖像的質量和圖像文件的尺寸。例如,當大尺寸的圖像文件被壓縮為相當小尺寸的文件的時候,圖像的質量惡化。但是,JPEG壓縮技術能夠可靠地壓縮圖像,以便壓縮的圖像在質量上不降低。
因此,JPEG已經被廣泛用于在諸如數字照相機的設備中的靜止圖像數據的壓縮。如所公知的,JPEG使用離散余弦變換(DCT)來壓縮數據。DCT以諸如8*8像素的塊格式來處理數據。但是,在DCT處理之前的數字照相機的圖像數據處理器以光柵格式(即以光柵掃描順序,在全部圖像數據中從左向右和從上向下)來輸出圖像數據。圖1A圖解了由數字照相機的圖像數據處理器輸出的按照光柵掃描順序的圖像數據。
為了使用以光柵格式存儲在行緩沖器中的JPEG圖像數據(它從照相機的圖像數據處理器輸出,如圖1A所示),應當在提供到JPEG壓縮器之前,以如圖1B所示的塊格式來讀取這種數據。圖1B圖解了要輸入到JPEG壓縮器的、以塊順序格式的圖像數據。從光柵掃描格式向塊掃描格式的轉換需要能夠存儲至少8行圖像數據的行存儲器。而且,因為圖像數據包括亮度分量Y和色度分量U與V,因此每個彩色分量需要獨立的行存儲器。
圖2圖解了用于產生JPEG壓縮的8*8塊的、按照傳統的VGA(可變圖像陣列)工作的傳統行存儲系統。圖像數據處理器10產生光柵格式(例如4:2:2光柵格式)的圖像數據的亮度分量Y和色度分量U與V。從圖像數據處理器10產生的圖像數據分量Y、U和V被存儲器控制器存儲在對應的行存儲器12、14和16的象元陣列中。由圖像數據處理器10存儲在各個行存儲器12、14和16中的圖像數據分量Y、U和V被以要通過復用器18傳送到JPEG壓縮器20的8*8塊單元的次序讀取。
每個行存儲器12、14和16可以包括另外的外圍電路,用于驅動對應的行存儲器12、14和16的象元陣列。一個這樣的示例是地址解碼器。因此,當使用多個行存儲器的時候,存在大量的硬件重復。這導致設計成本的提高。另外,行存儲器已經變大,并且當行存儲器被嵌入在芯片中以便以低功率操作行存儲系統的時候,芯片也必須在尺寸上增加。最后,由于圖像數據的數量的大小增加,行存儲器必須增大。結果,上述的問題變得更為嚴重。
如上所述,JPEG使用DCT來用于數據的壓縮,DCT處理在8*8像素的塊單元上的數據,照相機的圖像數據處理器產生圖像數據(以光柵格式,即在全部圖像數據中從左向右或從上向下)。于是,將光柵掃描順序向塊掃描順序的圖像數據轉換需要一個行存儲器,它能夠存儲至少8行的圖像數據。在從存儲8行圖像數據的行存儲器產生8*8像素的圖像塊的時候,照相機的圖像數據處理器產生新的圖像數據。因此,需要一對8行的行存儲器(一個用于讀、一個用于寫)來連續地處理圖像數據。換句話說,當以光柵掃描格式向一個行存儲器寫入圖像數據的時候,以8*8塊讀出在另一個行存儲器中存儲的圖像數據。因為圖像數據被劃分成亮度分量Y和色度分量U與V,因此對于每個圖像數據分量Y、U、V需要一對行存儲器。
圖3A是另一個傳統的VGA標準的圖像數據處理裝置的示意方框圖,它圖解了僅僅用于亮度分量Y的成對的行存儲系統(對于每個色度分量U和V也需要成對行存儲系統)。8行的亮度分量Y被從圖像數據處理器10輸出,并且被線性地存儲到第一行存儲器Y1(121)中。8行的第二亮度分量Y被線性地存儲到第二行存儲器Y2(122)中,并且同時,以8*8塊單位在第一行存儲器Y1上執行讀取操作。為了實現這一點,復用器18的開關181閉合,并且向JPEG壓縮器20傳送從第一行存儲器Y1(121)讀出的8*8圖像數據塊。
圖3B圖解了來自圖像數據處理器10的像素順序,圖3C圖解了存儲在各個行存儲器12、14和16中的彩色分量Y、U、V。
地址產生器24產生第一和第二行存儲器121和122的寫和讀地址。對于640×480VGA圖像,如圖3D所示,行存儲器121和122的寫地址wr_addrline從0提高到640*8-1。按照下面的方程1來設置以塊為單位的、用于讀出圖像數據的、行存儲器121和122的讀地址rd_addrline。
for(i=0;i<640/8;i++){for(vv=0;vv<8;vv++){for(hh=0;hh<8;hh++){rd_addrline=vv*640+(i*8+hh)=(vv*80+i)*8+hh}}}其中“640”表示在VGA標準中的水平像素的數量,“i”表示塊的順序,“vv”是表示一個塊的垂直像素(行)的變量,“hh”是表示一個塊的水平像素的變量,(vv*80+i)是將其值保持8個周期的定位地址(anchor address)。
當參考寫地址wr_addrline在第一行存儲器Y1(121)存儲8行的第三亮度分量Y的時候,復用器18的開關181斷開,復用器18的開關182閉合。參考讀地址以塊為單位在第二行存儲器Y2(122)上執行讀取操作,所讀取塊被傳送到JPEG壓縮器20。
如所示和所述的,上述的傳統圖像處理方法對于每個彩色分量使用至少一個行存儲器,并且對于每個彩色分量可能使用一對行存儲器。例如,在VGA標準的情況下,一對640*8字節的行存儲器被用于亮度分量Y,一對320*8字節的行存儲器被用于色度分量U、V。于是,在行存儲器被嵌入一個芯片以便以低功率操作系統的時候,可能增加芯片的尺寸。而且,隨著圖像數據大小的增加,上述的問題變得更為嚴重。
發明內容
在一個典型的實施例中,本發明提供了一種具有較小行緩沖存儲器的圖像處理裝置,用于在光柵格式和塊格式之間轉換圖像數據。
在一個典型的實施例中,本發明提供了一種圖像處理裝置,用于在光柵格式和塊格式之間轉換圖像數據,所述方法是利用較小的行緩沖存儲器來執行的。
在一個典型的實施例中,本發明提供了一種具有減少的數量的行存儲器的圖像處理裝置。例如,在單個統一的行存儲器中存儲每個圖像數據分量或彩色分量。在這樣的典型實施例中,因為降低了諸如嵌入存儲器的地址解碼器的外部電路的數量,所以行存儲器的大小可以更小。
在一個典型實施例中,本發明使用了用于每個彩色分量的FIFO(先入先出)小容量存儲器,以便從統一的行存儲器以塊單元的順序讀取圖像數據。圖像數據分量被從每個FIFO存儲器讀出,并且被存儲在統一行存儲器中,以便容易從統一的行存儲器以塊單元的順序讀取圖像數據。
在一個典型實施例中,本發明針對用于在光柵格式和塊格式之間轉換圖像數據的圖像處理裝置,包括圖像數據處理器,用于提供光柵格式的、包括一個亮度分量和至少一個色度分量的圖像數據;至少兩個FIFO存儲器,用于存儲對應的圖像數據分量;復用器,用于復用來自該至少兩個FIFO存儲器的圖像數據分量;統一行緩沖存儲器,用于線性地存儲復用器的輸出;圖像處理器,用于從統一行緩沖存儲器依序以塊格式接收圖像數據分量和壓縮所接收的圖像數據分量。
在本發明的另一個典型實施例中,所述亮度分量是亮度分量Y,所述色度分量是色度分量U和V。
在本發明的另一個典型實施例中,復用裝置順序復用2*h個亮度分量和2*h個色度分量,以便使得容易以塊單元的順序從統一行緩沖存儲器讀取,其中h表示一個塊格式的水平分辨率,或水平方向的像素的數量。在JPEG標準的一個示例中,一個塊格式的水平分辨率或水平像素的數量是8。
在另一個典型實施例中,圖像數據處理器以亮度分量Y、色度分量U、亮度分量Y和色度分量V、即YUYVYUYV...的順序來提供圖像數據。復用裝置以2*h數量的亮度分量Y、h數量的色度分量U和h數量的色度分量V的順序復用,其中h是一個塊格式的水平分辨率。JPEG壓縮器以塊Y、塊Y、U和塊V的順序來接收塊格式的圖像數據,即,JPEG壓縮器以Y、Y、U、V、Y、Y、U、V...的順序來接收圖像數據,并且壓縮所接收的圖像數據。
在一個典型實施例中,統一行緩沖存儲器具有H*v*2字節的大小,其中H是圖像數據的水平分辨率,是作為一個塊格式的垂直分辨率的v的倍數。在JPEG標準的示例中,h等于8,在VGA標準中,H等于640。
在一個典型實施例中,本發明針對一種圖像處理裝置,包括圖像數據處理器,它提供包括亮度Y、U、Y、V...的、水平分辨率H的圖像數據;多個FIFO存儲器,用于存儲對應的分量Y、U和V;復用器,用于復用16個分量Y、8個分量U和8個分量U;統一行緩沖存儲器,用于線性地存儲復用裝置的輸出;圖像壓縮器,順序接收兩個亮度分量Y的塊、一個色度分量U的塊和一個色度分量V的塊,并且以塊為單位壓縮所接收的圖像數據分量。
在一個典型實施例中,每個塊包括8*8個彩色分量,并且統一行緩沖存儲器具有H*8*2字節的大小。即,如果可以將一個幀的圖像數據劃分成N個塊,則本發明的統一行緩沖存儲器具有存儲N個塊的分量Y、N/2的塊的分量U和N/2個塊的分量V的容量。
按照本發明的典型實施例,圖像處理裝置僅僅使用一個統一行緩沖存儲器。于是,因為不需要對于一個的諸如嵌入行緩沖存儲器的地址解碼器的每個外部電路,因此可以降低存儲器的大小。另外,通過利用FIFO存儲器將圖像數據存儲在統一行緩沖存儲器中,以便使得容易以塊單位、即以16個分量Y、8個分量U和8個分量V的順序來讀取。
在一個典型實施例中,本發明提供了一種圖像處理方法,其中光柵格式的包括不同彩色分量的圖像數據被存儲到單個統一行緩沖存儲器中。每個彩色分量被存儲到各個小容量的FIFO存儲器中,并且被復用到單個統一行緩沖存儲器,以便容易地以塊為單位被讀出。其后,每個彩色分量被存儲在統一行緩沖存儲器。
在一個典型實施例中,本發明提供了一種圖像處理方法,包括提供光柵格式的圖像數據,其中包括亮度分量和一對色度分量;將圖像數據存儲到對應的FIFO存儲器中;將存儲在FIFO存儲器中的圖像數據存儲在單個光柵格式和塊格式;以塊格式的順序輸出圖像數據。
在另一個典型實施例中,以16個亮度分量、8個第一色度分量和8個第二色度分量的順序來在統一行緩沖存儲器存儲圖像數據。以2塊亮度分量、1塊第一色度分量和1塊第二色度分量的順序依序輸出在統一行緩沖存儲器存儲的圖像數據。優選的是,亮度分量是Y,第一色度分量是U,第二色度分量是Y。
在一個典型實施例中,本發明提供了一種圖像處理方法,將存儲在FIFO存儲器中的圖像數據存儲到單個行緩沖存儲器中包括以16個亮度分量、8個第一色度分量、8個第二色度分量的順序從FIFO存儲器讀取圖像數據,然后以讀取的順序在統一行緩沖存儲器中線性寫入圖像數據。在一個典型實施例中,當從FIFO存儲器讀取圖像數據并且將其寫入統一行緩沖存儲器的時候,新的圖像數據被存儲在FIFO存儲器中。
在一個典型實施例中,在將8個色度分量Y存儲到FIFO存儲器中之后開始從FIFO存儲器讀取初始的亮度分量。
在本發明的另一個典型實施例中,可以在將16個色度分量Y存儲到FIFO存儲器之后開始從FIFO存儲器讀取初始亮度分量。
在一個典型實施例中,本發明針對一種圖像處理裝置,用于在光柵掃描順序和塊掃描順序之間轉換圖像數據,包括圖像數據處理器,用于提供圖像數據,所述圖像數據包括光柵掃描順序的水平分辨率H和垂直分辨率V;單個行存儲器,用于存儲v行的圖像數據;地址產生器,用于產生單個行存儲器的公共讀/寫地址;圖像壓縮器,用于從單個行存儲器接收v*h塊單元的圖像數據,并且壓縮所接收的圖像數據,其中當參考公共讀/寫地址以塊掃描順序從單個行存儲器讀出v行的圖像數據的時候,參考相同的共同讀/寫地址來向單個行存儲器寫入下一個v行的圖像數據。
公共讀/寫地址產生器可以包括一對地址緩沖器,用于存儲定位地址;地址控制器,用于根據定位地址來合成公共讀/寫地址。定位地址具有值0~H*v/h-1,它在v行的圖像數據的v*H個像素的每h像素遞增1。相對于在另一個地址緩沖器中存儲的定位地址的順序來以塊掃描的順序來向一個地址緩沖器中存儲一個定位地址。
存儲在一個地址緩沖器中的定位地址可以是f[n],其中f[n]是存儲在另一個地址緩沖器中的第n個地址的定位地址,n等于(H/h)*vv+i,其中“i”表示v行的圖像數據的塊順序,并且從0向(H/h)-1遞增。“vv”表示一個塊的行數,并且對于每個i從0遞增到v-1。即,存儲在其他地址緩沖器的地址0、H/h、H/h*2、H/h*3、...、H/h*(v-1)、1、H/h+1、H/h*2+1、H/h*3+1、...、H/h*(v-1)+1、...中的定位地址被依序存儲在一個地址緩沖器中的地址0、1、2、3、...、v-1、v、v+1、v+2、v+3、...、v+7、...中。
在另一個典型實施例中,地址控制器提供一個讀地址,用于從一個地址緩沖器讀出定位地址,并且提供一個寫地址,用于向另一個地址緩沖器寫入從一個地址緩沖器讀出的定位地址。地址控制器通過將從一個地址緩沖器讀出的定位地址乘以v并且加上從0向h-1遞增的hh來合成公共讀/寫地址。
在另一個典型實施例中,地址控制器提供用于一個地址緩沖器的讀地址n=(H/h)*vv+i、用于向另一個地址緩沖器寫入由讀地址n=(H/h)*vv+i讀出的定位地址的、從0到H-1遞增的寫地址。
當從單個行存儲器讀出下一個v行的圖像數據并且其后的下一個v行的圖像數據被寫入單個行存儲器的時候,地址控制器提供讀地址n=(H/h)*vv+I,以便從所述那個地址緩沖器讀出定位地址,并且提供從0遞增到H-1的寫地址,以便向另一個地址緩沖器寫入從所述那個地址緩沖器讀出的定位地址。
在一個典型實施例中,本發明針對一種地址產生器,用于利用一個行存儲器在具有分辨率V*H的光柵掃描順序和v*H個像素的塊掃描順序之間轉換圖像數據,所述地址產生器包括一對地址緩沖器和一個地址控制器。一對地址緩沖器的每個在彼此具有互補操作模式的讀和寫模式之間轉換,并且存儲定位地址。地址控制器用于提供用于讀取操作模式的地址緩沖器的讀地址以及用于寫入操作模式的地址緩沖器的寫地址,并且根據從地址緩沖器讀出的定位地址合成對行存儲器的公用讀/寫地址。
定位地址具有值0~v*H/h-1,它們在寫入到行存儲器的v*H個像素的每h個像素遞增。參考所述讀地址從一個地址緩沖器讀出的定位地址被參考所述寫地址寫入另一個地址緩沖器中。此時,讀地址給定為(H/h)*vv+i,以對應于塊掃描順序(在此,“i”表示v行的圖像數據的塊順序,并且從0向(H/h-1))遞增,“vv”表示一個塊的行數,并且對于每個i從0向v-1遞增),并且寫地址給定為從0向v*H/h-1遞增。通過將經由所述讀地址讀出的定位地址乘以h和加上hh來合成公共讀/寫地址,其中hh相對于每個“vv”從0向h-1遞增。
在本發明的另一個典型實施例中,h等于8并且v等于8。
優選的是,當完全更新數據緩沖器的數據的時候,進行在讀和寫操作模式之間的轉換。
在一個典型實施例中,本發明針對一種圖像處理方法,用于利用單個行存儲器在光柵掃描順序和v*h塊掃描順序之間轉換圖像數據,包括提供第一和第二地址緩沖器;產生地址緩沖器的讀地址和寫地址;將v行的圖像數據存儲到單個行存儲器中,并且參照寫地址向第一地址緩沖器存儲在每h像素產生的定位地址;通過參考讀地址來讀出存儲在第一地址緩沖器中的定位地址,并且參考寫地址向第二地址緩沖器存儲所讀出的定位地址;根據通過讀地址讀出的定位地址產生行存儲器的公共讀/寫地址;參考公共讀/寫地址讀取v行的圖像數據,并且同時向行存儲器寫入v行的新圖像數據;重復讀出定位地址,產生公共讀/寫地址和讀出v行的圖像數據,直到完全處理了所有的圖像數據,其中每次重復讀出定位地址、產生公共讀/寫地址和讀出v行的圖像數據,通過讀和寫地址交替地引用多個地址緩沖器,寫地址依序遞增,讀地址對應于塊掃描順序。
在圖像處理方法中,如果將被處理的圖像數據具有V*H的分辨率,則定位地址具有值0~v*H/h-1,寫地址關于從0到v*H/h-1的每h個像素遞增,并且讀地址是H/h*vv+i(在此,“i”是表示寫入到單個行存儲器的v*H圖像數據的塊順序的變量,它從0向H/h-1遞增,“vv”是表示塊的行順序的變量,它對于每個i從0向v-1遞增)并且關于每h個像素保持一個值。公共讀/寫地址是f[(H/h*vv+i)]*h+hh(其中“hh”是表示塊的水平像素的順序的變量,并且對于每個i從0遞增到h-1,并且f[(H/h*vv+i)]是從地址緩沖器通過讀地址H/h*vv+i讀出的定位地址)。
在本發明的另一個典型實施例中,v等于8,h等于8。
在一個典型實施例中,本發明針對一種圖像處理方法,用于在具有V*H的分辨率的光柵掃描順序和8*8塊掃描順序之間轉換圖像數據,包括向單個行存儲器線性寫入8*H像素的圖像數據,并且參考寫地址向第一地址緩沖器寫入每8個像素保持固定值的定位地址;參考讀地址讀取存儲在第一地址緩沖器中的定位地址;參考寫地址向第二地址緩沖器存儲從第一地址緩沖器讀出的定位地址,并且根據所讀出的定位地址合成公共讀/寫地址;參考圖像數據處理器從單個行存儲器讀出8*H像素的圖像數據,同時參考公共讀/寫地址向單個行存儲器寫入下一個8*H像素的圖像數據;重復讀取定位地址、存儲定位地址和讀出8*H像素的圖像數據,直到完全處理了V*H個像素的圖像數據,其中每次重復讀取定位地址、存儲定位地址和讀出8*H像素的圖像數據,通過讀和寫地址來交替參考地址緩沖器,寫地址從0向H-1依序遞增,讀地址滿足(H/8)*vv+i,其中“i”表示8行圖像數據的塊的順序,并且從0向(H/8)-1遞增,“vv”表示塊的行數并且對于每個i從0向7遞增,并且通過將經由讀地址讀出的定位地址乘以8和加上從0遞增到7的hh來合成公共讀/寫地址。
在一個典型實施例中,本發明針對圖像處理裝置和方法,用于在光柵掃描順序和塊掃描順序之間轉換圖像數據,它使用數量減少的行存儲器。換句話說,本發明對每個彩色分量使用單個行存儲器和一對地址緩沖器,以便在單個行存儲器中連續執行光柵掃描順序的讀操作和塊掃描順序的寫操作。當第一個8行圖像數據被從地址0到最后一個地址依序存儲到行存儲器的時候,每個地址緩沖器存儲通過將塊的每行(以下稱為“段”)的第一地址除以8而得到的一個值(以下稱為定位地址)。每個段包括8個像素,8個段構成一個塊。例如,在使用JPEG的VGA標準的亮度分量的情況下,定位地址是0、1、2、3、...、638、639。一個地址緩沖器存儲以與存儲在另一個地址緩沖器中存儲的定位地址的順序不同的順序存儲定位地址。即,這個地址緩沖器相對于存儲在其他地址緩沖器的定位地址(0,1,2,3,...,638,639)的順序、以順序對應的塊掃描順序(例如以0,80,160,...,560,1,81,...,561,2,82,162,...,78,...,638,79,159,239,...,559,639的順序)存儲定位地址。當線性地向單個行存儲器寫入(存儲)初始的8行圖像數據的時候,每8個像素遞增的定位地址(0,1,2,3,...,638,639)被寫入第一地址緩沖器的地址0~639。地址控制器產生公共讀/寫地址,以便產生8*8圖像塊,即以8*8為單位從單個行存儲器讀出第一個8行的圖像數據。地址控制器讀出以塊掃描順序在第一地址緩沖器中存儲的定位地址(0,1,2,3...,638,639)(即在地址0,80,160,...,560,1,81,...,561,2,82,162,...,78,...,638,79,159,239,...,559,639讀出定位地址),并且在第二地址緩沖器的地址0~639存儲所讀取的定位地址。通過將塊掃描順序的所讀出的定位地址乘以8和依序加上0~7來合成公共讀/寫地址。參考公共讀/寫地址從單個行存儲器中以塊掃描順序讀出第一個8行,同時參考公共讀/寫地址向單個行寫入第二個8行。用于從第一地址緩沖器讀出定位地址的讀地址是(640/8)*vv+i,并且在此,“i”表示圖像數據的塊順序,它從0向79遞增。“vv”相對于每個“i”從0向7遞增。即,在第一地址緩沖器中,存儲在地址0,80,160,...,1,81,...中的定位地址被以這個順序讀出。
根據存儲在第二地址緩沖器的地址編號0~639中的定位地址(0,80,160,...,560,1,81,...,561,2,82,162,...,78,...,638,79,159,239,...,559,639)來合成用于從其讀出第二個8行和向單個行存儲器寫入第三個8行的公共地址。第二地址緩沖器的讀地址于第一地址緩沖器的讀地址相同。即,存儲在地址0,80,160,...,560,1,81,...,561,2,82,162,...,78,...,638,79,159,239,...,559,639中的定位地址被讀出和寫入到第一地址緩沖器的地址0~639。類似地,來自第二地址緩沖器的讀定位地址被乘以8和依序加上0~7,于是合成了公共讀/寫地址。
重復上述的步驟直到完全地處理了圖像數據的一個幀(在JPEG的情況下,圖像數據的幀是680*480)。按照本發明,總是按照固定模式、即(640/8)*vv+i來產生地址緩沖器的讀地址,并且寫地址總是從0向639遞增。當完全處理了8行的時候,地址緩沖器的定位地址被更新和替代為新順序的定位地址。可以利用計數器來容易地體現地址緩沖器的寫地址,同樣,可以利用計數器、乘法器或加法器來容易地體現具有固定模式的讀地址。
本發明提供一種行緩沖系統,用于在光柵格式和塊格式之間轉換圖像數據,所述裝置包括至少兩個FIFO存儲器,用于接收光柵格式的、包括一個亮度分量和至少一個色度分量的圖像數據,并且存儲對應的圖像數據分量;復用器,用于從至少兩個FIFO存儲器復用圖像數據分量;統一行緩沖存儲器,用于存儲復用器的輸出;以及FIFO控制器,用于控制從所述至少兩個FIFO存儲器的讀取操作和向它們的寫入操作。
圖1A圖解了以光柵掃描順序寫入行存儲器的圖像數據;圖1B圖解了以塊掃描順序讀出的、以光柵掃描順序存儲在行存儲器的圖像數據;圖2是傳統的圖像處理裝置的行緩沖系統的示意方框圖,所述裝置對每個彩色分量使用獨立的行存儲器;圖3A是利用針對每個彩色分量的一對行存儲器的傳統圖像處理裝置的行緩沖系統的示意方框圖,圖3B圖解了來自數字照相機的圖像數據處理器的像素順序,圖3C圖解了存儲在各自的行存儲器中的彩色分量,圖3D圖解了一個640×480VGA亮度圖像;圖4是按照本發明的一個典型實施例的圖像處理裝置的行緩沖系統的示意方框圖,其中所有的彩色分量被存儲到單個統一(unified)行緩沖存儲器中;圖5是用于圖解彩色分量被存儲在圖4的圖像處理裝置的統一行緩沖存儲器中的時序圖;圖6A到6E圖解了在圖5的時序圖中的t0~t4時間存儲在每個FIFO存儲器中的彩色分量;圖7是圖解以光柵掃描順序存儲在統一行緩沖存儲器的典型實施例中的圖像數據的示意圖;圖8是按照本發明的另一個典型實施例的、利用單個行存儲器的圖像處理裝置的示意方框圖;圖9A到9D是用于圖解按照本發明的一個典型實施例的、在單個行存儲器存儲8*80像素的圖像數據的圖;圖10A到10D是用于圖解按照本發明的一個典型實施例的、在地址緩沖器中存儲定位地址的圖;圖11是按照本發明的一個典型實施例的地址產生器的方框圖;圖12A和12B是按照本發明的一個典型實施例的、單個行存儲器的讀地址格式和在地址緩沖器中存儲的定位地址格式的示意圖;圖13A和13B是按照本發明的一個典型實施例的、定位地址和從定位地址合成的單個行存儲器的公共讀/寫地址的示意圖;圖14是按照本發明的一個典型實施例的、初始化步驟的時序圖;圖15圖解了按照本發明的一個典型實施例的、在初始化后的地址緩沖器1142的內容;圖16是示出按照本發明的一個典型實施例的、用于在一個地址緩沖器中寫地址的寫步驟的時序圖;圖17圖解了按照本發明的一個典型實施例的、在寫入后的地址緩沖器1144的內容;圖18示出了按照本發明的一個典型實施例的、圖16的地址緩沖器1142的下一個8個像素行的內容;
圖19是示出按照本發明的、當第一個8行VGA標準圖像數據被存儲到單個行存儲器的時候通過地址控制部分產生的各種信號的時序圖;圖20是示出了按照本發明的一個典型實施例的、當第二個8行VGA標準圖像數據被存儲到單個行存儲器的時候通過地址控制部分產生的各種信號的時序圖;圖21圖解了本發明的另一個典型實施例,即圖4和11中圖解的實施例的組合。
具體實施例方式
以下,參照附圖來更全面地說明本發明,附圖中示出了本發明的優選實施例。下面,“H”表示圖像數據的水平分辨率或水平方向的像素數量,“h”表示塊的水平分辨率或在塊的水平方向的像素的數量。在VGA標準的情況下,水平分辨率“H”是640,垂直分辨率“V”是480。
圖4是按照本發明的一個典型實施例的、包括單個統一行緩沖存儲器圖像處理裝置的示意方框圖。圖像處理裝置包括圖像數據處理器100,用于提供光柵格式的圖像數據;JPEG壓縮器200,用于以諸如8*8塊單元的順序的塊單元的順序壓縮圖像數據;行緩沖系統150,用于在圖像數據處理器100和JPEG壓縮器200之間在光柵格式和塊格式之間轉換數據。圖像數據處理器100產生彩色分量的數字數據,所述彩色分量包括亮度分量和色度分量。例如,亮度分量是Y,色度分量是U和V。圖像數據處理器100可以以4:2:2格式、4:4:4格式或任何對本領域的普通技術人員公知的任何其他的格式來產生亮度分量Y和色度分量U和V。在4:2:2格式的情況下,圖像數據處理器100以光柵格式以Y、U、Y、V、Y、U、Y、V...的順序產生亮度和色度分量。下面的討論假定圖像數據處理器100以4:2:2格式產生亮度分量和色度分量,但不是必須如此。
按照本發明的典型實施例的行緩沖系統150,包括從圖像數據處理器100產生的亮度分量和色度分量的圖像數據被存儲在統一行緩沖存儲器180中。統一行緩沖存儲器180可以存儲至少8行的圖像數據,用于轉換掃描格式(在光柵格式和8*8塊格式之間的轉換)。因為圖像數據處理器100以4:2:2格式產生圖像數據,統一行緩沖存儲器180具有至少H*8*2字節的大小。不象對于每個彩色分量使用各自的行緩沖器的傳統裝置那樣,在典型實施例中的本發明向圖像處理裝置提供單個統一行緩沖存儲器。因此,用于驅動包括在傳統的行存儲器系統中對于每個彩色分量的每個行存儲器中存儲單元陣列的外圍電路被合并(unified)為一個外圍電路,類似地,用于讀塊單元的地址解碼器被合并為一個地址解碼器。結果,可以相對于傳統的圖像處理裝置降低統一行緩沖存儲器180的大小。小容量的FIFO存儲器154、156和158被用于每種彩色分量,以便將圖像數據以用于JPEG壓縮器200的一種格式存儲到統一行緩沖存儲器180。每個FIFO存儲器154、156和158將來自圖像數據處理器100的圖像數據劃分成彩色分量,并且將所劃分的圖像數據通過復用器160傳送到統一行緩沖存儲器180,以便可以將每個彩色分量以用于JPEG壓縮器200的一種格式傳送到統一行緩沖存儲器180。
具體而言,在FIFO控制器152的控制下,從圖像數據處理器100輸出的圖像數據Y0U0Y1V0Y2U1Y3V1...通過彩色分量被存儲在FIFO存儲器154、156和158中。即,以Y0Y1Y2Y3...的順序將亮度分量Y存儲在FIFO_Y存儲器154中,以U0U1...的順序將色度分量U存儲在FIFO_U存儲器156中,以V0V1...的順序將色度分量V存儲在FIFO_V存儲器158中。
在FIFO控制器152的控制下,在FIFO存儲器154、156和158中存儲的彩色分量被通過復用器160存儲在統一行緩沖存儲器180中。即,一個彩色分量被從FIFO存儲器154、156和158讀出和寫入到統一行緩沖存儲器180中。在這個情況下,FIFO控制器152被用于控制復用器160,以便每個彩色分量以用于JPEG壓縮器200的格式被存儲,即以便彩色分量以16個亮度分量Y、8個色度分量U和8個色度分量V的順序依序被存儲到統一行緩沖存儲器180中。于是,為了開始,從FIFO_Y存儲器154讀出所述16個亮度分量Y,然后從FIFO_U存儲器156讀出所述8個色度分量U,然后從FIFO_V存儲器158讀出所述8個色度分量V。在重復上述處理之后,向統一行緩沖存儲器180中存儲8行的圖像數據(8*H像素)。即,在統一行緩沖存儲器中的每行存儲H亮度分量Y、H/2色度分量U和H/2色度分量V。
現在參照圖5和圖6A-6E來說明圖4的典型行緩沖系統150的操作。圖5是對于4:2:2格式的典型行緩沖系統150的典型時序圖。
參見圖5和圖6A-6E,以下將更為全面地說明在一個統一行緩沖存儲器180中存儲每個彩色分量。圖5是一個時序圖,用于圖解來自圖像數據處理器100的光柵格式的圖像數據Y0U0Y1V0Y2U1Y3V1...被以(Y0Y1...Y15)(U0U1...U7)(V0V1...V7)(Y16Y17...Y31)(U8U9...U15)(V8V0...V15)的順序線性地存儲在統一行緩沖存儲器180中。
圖6A-6E是用于圖解在每個FIFO存儲器154、156和158中存儲各個彩色分量的示意圖。
在典型實施例中,FIFO_Y存儲器154和FIFO_U存儲器156是8字節的,FIFO_V存儲器158是10字節的。
參見圖5,從圖像數據處理器100產生時鐘CLK。與時鐘CLK同步地,以Y0U0Y1V0Y2U1Y3V1...的順序、即光柵格式從圖像數據處理器100輸出圖像數據。FIFO控制器152控制寫信號WR_Y、WR_U、WR_V,以便通過彩色分量將從圖像數據處理器100產生的圖像數據存儲到每個FIFO存儲器154、156和158中。另外,FIFO控制器152控制讀信號RD_Y、RD_U、RD_V,以便以塊單元的順序將存儲在每個FIFO存儲器154、156和158中的彩色分量通過復用器160傳送到統一行緩沖存儲器180。寫信號WR_Y、WR_U、WR_V和讀信號RD_Y、RD_U、RD_V作用于各個FIFO存儲器154、156和158。在每個奇數時鐘CLK啟動用于向FIFO_Y存儲器154寫入亮度分量Y的寫信號WD_Y。在每個偶數時鐘CLK或在讀信號WD_Y失活期間交替地啟動用于寫入色度分量U和V的寫信號WD_U、WD_V。于是,在第一個時鐘C0,亮度分量Y0被存儲在FIFO_Y存儲器154,在第二時鐘C1,色度分量U0被存儲在FIFO_U存儲器156,在第三時鐘C2,Y1被存儲在FIFO_Y存儲器154,在第四時鐘C3,色度分量V0被存儲在FIFO_V存儲器158,在第五時鐘C4,Y2被存儲在FIFO_Y存儲器154,在第六時鐘C5,U1被存儲在FIFO_U存儲器156,在第七時鐘C6,Y3被存儲在FIFO_Y存儲器154,在第八時鐘C7,V1被存儲在FIFO_V存儲器158。
當填充FIFO_Y存儲器154的時候,在新的亮度分量Y被寫入FIFO_Y存儲器154之前,利用FIFO_Y存儲器154開始讀操作。例如,在8字節FIFO_Y存儲器的情況下,因為在第15時鐘C14在FIFO_Y存儲器中存儲第8個亮度分量Y7,所以在第17時鐘C16啟動用于亮度分量Y的第一讀信號RD_Y。每16個時鐘(例如,在第17時鐘C16~第32時鐘C31)啟動讀信號RD_Y。此時,16個亮度分量Y0~Y15被以線性增加的存儲器地址存儲在(寫入到)統一行緩沖存儲器180。同時,在讀信號RD_Y失活期間或在啟動讀信號RD_Y的16個時鐘之后的16個時鐘C32~C47期間,交替啟動讀信號RD_U和RD_V。例如,在8個時鐘C32~C39期間啟動讀信號RD_U,在隨后的時鐘C40~C47啟動讀信號RD_V。于是,8個色度分量U和8個色度分量V被從每個FIFO存儲器156和158讀出并且被寫入統一行緩沖存儲器180。接著,在隨后的16個時鐘C48~C63期間對亮度分量Y執行讀操作,在隨后的8個時鐘C64~C71期間對色度分量U執行讀操作,并且在隨后的8個時鐘C72~C79期間對色度分量V執行讀操作。通過重復上述的讀操作,隨著地址在統一行緩沖存儲器180中線性地增加(例如,地址連續從地址0增加到地址H*8*2-1),總共H*8*2個彩色分量被存儲到統一行緩沖存儲器180中。因為對于統一行緩沖存儲器180的寫地址連續增加,可以利用簡單的計數器來容易地實現寫地址產生器。
在這種情況下,當從每個FIFO存儲器154、156、158讀出彩色分量的時候,圖像數據處理器100繼續與時鐘CLK同步地輸出圖像數據。于是,新的彩色分量繼續被寫入每個FIFO存儲器154、156、158。結果,同時執行對于FIFO存儲器154、156、158的讀和寫操作,這將參照圖6A-6E示出的示例來說明。
圖6A-6E示出了分別在時間t0、t1、t2、t3和t4在每個FIFO存儲器154、156、158中存儲的彩色分量。參見圖6A,在時間t0,即緊臨第17時鐘C16被產生之前,在FIFO_Y存儲器154中存儲了8個分量Y(Y0~Y7),在FIFO_U和FIFO_V存儲器156和158中已經分別存儲了4個分量U(U0~U3)和4個分量V(V0~V3)。8字節的FIFO_Y存儲器154已經被填充了亮度分量Y。8字節的FIFO_U存儲器和10字節的FIFO_V存儲器已經部分地被填充。如上所述,在第17時鐘C16執行讀操作。在第17時鐘C16,第一亮度分量Y0被從FIFO_Y存儲器154讀出并且被寫入統一行緩沖存儲器(例如在地址0)。此時,第9亮度分量Y8被寫入FIFO_Y存儲器154中存儲第一亮度分量Y0的區域。在第18時鐘C17,第二亮度分量Y1被從FIFO_Y存儲器154讀出,并且被寫入統一行緩沖存儲器(例如在地址1),此時,第5色度分量U4被寫入到FIFO_U存儲器156。在第19時鐘C18,第三亮度分量Y2被從FIFO_Y存儲器154讀出,并且被寫入統一行緩沖存儲器(例如在地址2),并且此時向FIFO_Y存儲器154寫入第10個亮度分量Y9。在第20時鐘C19,第四亮度分量Y3被從FIFO_Y存儲器154讀出,并且被寫入統一行緩沖存儲器(例如在地址3),并且此時向FIFO_V存儲器158寫入第5個色度分量V4。于是,在時間t1,如圖6B所示,已經從FIFO_Y存儲器讀出了8個亮度分量Y(Y0~Y7),分別地,存在新的4個亮度分量Y(Y8~Y11)和以前的4個亮度分量Y(Y4~Y7),在FIFO_U和FIFO_V存儲器中存在6個色度分量。以這種方式,從FIFO存儲器154、156、158讀出彩色分量,并且向FIFO存儲器154、156、158寫入新的彩色分量。
如圖6C所示,在時間t2或在讀信號RD_Y失活的第33時鐘C32,完成對于在FIFO_Y存儲器154中的亮度分量Y8~y15(在t1和t2之間)的讀操作。結果,在統一行緩沖存儲器180中已經寫入了16個亮度分量Y(Y0~Y15)。此時,亮度分量Y8~Y15在FIFO_Y存儲器154中。FIFO_U存儲器被填充了色度分量U0~U7。色度分量V0~V7被存儲在FIFO_V存儲器中,并且在隨后的8個時鐘C32~C39期間可以存儲另外兩個色度分量V(V8和V9)。
參見圖6D,在時間t3,(在第41時鐘C40),色度分量U0~U7已經從FIFO_U存儲器156讀出,并且被寫入統一行緩沖存儲器180(例如在地址16~23),并且色度分量U8和U9被寫入FIFO_U存儲器156。同時,已經向FIFO_Y存儲器154寫入了4個亮度分量Y(Y16到Y19),并且已經向FIFO_V存儲器158寫入色度分量V8和V9。結果,FIFO_V存儲器158被填充色度分量V。
參見圖6E,在時間t4(在第49時鐘C48),已經從FIFO_V存儲器158讀出色度分量V0~V7,并且將其寫入統一行緩沖存儲器(例如在地址24~31),并且色度分量V10和V11已經在FIFO_V存儲器158中。同時,4個亮度分量Y(Y20~Y23)已經在FIFO_Y存儲器154中,結果亮度分量Y16~Y23在FIFO_Y存儲器154中。色度分量U10和U11被重新寫入FIFO_U存儲器156中。
在如上所述從FIFO存儲器154、156、158讀出彩色分量的同時,從圖像數據處理器100提供的新的彩色分量被寫入對應的FIFO存儲器154、156、158中。
在向統一行緩沖存儲器180存儲所有彩色分量的方法中,在向FIFO_Y存儲器154存儲所述8個分量Y之后,開始對分量Y的初始讀操作。但是,按照另一個典型實施例,各種改變和改進也是可能的。換句話說,在使用16字節的FIFO_Y存儲器的情況下,在所述16個分量Y被存儲到FIFO_Y存儲器154中之后,可以以初始分量Y來開始讀操作。在這個示例中,FIFO_Y存儲器154可以是16字節,FIFO_U存儲器156可以是12字節,FIFO_V存儲器158可以是14字節。即使在這種情況下,在FIFO_Y存儲器154中存儲所述8個分量Y之后,可以以初始分量Y來開始讀操作。
另外,即使從圖像數據處理器100提供的圖像數據的格式改變,FIFO存儲器154、156、158的大小也可以被調整來存儲在統一行緩沖存儲器180中的圖像數據,以便以塊為單位容易地執行讀操作。
圖7是存儲了圖像數據的統一行緩沖存儲器180的示意圖。統一行緩沖存儲器180具有H*8*2字節的大小,并且以光柵掃描順序依序(即從左向右和從上向下)增加存儲器地址。在每行中的圖像數據被以所述16個分量Y、8個分量U和8個分量V的順序重復存儲。于是,可以容易地實現用于以8*8塊單元讀取的讀地址產生電路。
以亮度塊BY0、亮度塊BY1、色度塊BU0、色度塊BV0、亮度塊BY2、亮度塊BY3、色度塊BU1、色度塊BV1、...、亮度塊BY(N-2)、亮度塊BY(N-1)、色度塊BU(N/2-1)、色度塊BV(N/2-1)的順序讀取塊。在此,N等于H/8,即通過將圖像數據的水平分辨率除以8所獲得的值。
更具體而言,以如下的塊的順序來從統一行緩沖存儲器180讀出圖像數據。從統一行緩沖存儲器180讀出在地址0~7、地址2*H~2*H+7、地址4*H~4*H+7、地址14*H~14*H+7的圖像數據,以便形成亮度塊BY0。從統一行緩沖存儲器180讀出在地址8~15、地址2*H+8~2*H+15、地址4*H+8~4*H+15、地址14*H+8~14*H+15的圖像數據,以便形成亮度塊BY1。以這種方式,以塊為單位從統一行緩沖存儲器180讀出2*N塊的所有的圖像數據。
通過下面的方程2來產生用于從統一行緩沖存儲器180以8*8塊為單位讀取的讀地址Add_R,并且可以利用計數器來容易地將其實現。
for(i=0;i<(H*2)/8;i++){for(vv=0;vv<8;vv++){for(hh=0;hh<8;hh++){Add_R=vv*H*2+i*8+hh;}}
}在方程2中,H是表示統一行緩沖存儲器180的塊順序的變量,“vv”和“hh”表示塊的垂直和水平變量。
進一步注意到可以使用另外的統一行緩沖存儲器180。即,當如上所述在第一統一行緩沖存儲器180中寫入8行圖像數據的時候,可以從第二統一行緩沖存儲器以塊為單位讀取圖像數據。如果完全地寫入和讀取8行的圖像數據,則在統一行緩沖存儲器180寫入新的8行圖像數據,并且以塊為單位在第一統一行緩沖存儲器180中寫入以往的圖像數據。
雖然以上敘述了將光柵格式的數據轉換為塊格式的數據的方法,所述方法也可以被用于反向轉換,即從塊格式的數據向光柵格式的數據的轉換。
當本發明的典型實施例和行緩沖系統和典型的行緩沖器系統——它使用每個彩色分量的各自的行緩沖存儲器——被施加到VGA標準的時候,下面的表1示出了其間所需要的等價的門電路的數量的比較。
本發明的一個典型實施例的行緩沖系統的存儲器位的數量與典型的行緩沖系統的相同。在對每個彩色分量使用各自的行存儲器的傳統方法的情況下,行存儲器的位的數量是640*8*8+(640/2)*8*8*2=81920。在使用統一行緩沖存儲器180的本發明的典型實施例的情況下,行存儲器的位的數量是640*8*8*2=81920。但是,雖然使用三個行存儲器的一般方法需要用于每個行存儲器的一個外圍電路,本發明的典型實施例僅僅需要一個外圍電路。于是,用于實現傳統方法的行存儲器的門電路的數量是162280,用于實現本發明的典型實施例的行存儲器的門電路的數量是128352。通過在從單個端口的SRAM實現行存儲器的假設下的模擬來獲得結果。
因為本發明的典型實施例包括其中包括8字節FIFO_Y、8字節FIFO_U、10字節FIFO_V的FIFO存儲器,因此需要2200個門電路來實現FIFO存儲器。但是,在典型的行存儲系統的情況下,總共需要的門的數量是162280,并且本發明的典型實施例需要總共130552個門電路。可以看出,本發明的典型實施例比傳統的電路需要更少的門電路。
圖8是按照本發明的另一個典型實施例的、包括單個行存儲器的圖像處理裝置的示意方框圖。本發明的這個典型實施例的圖像處理裝置包括圖像數據處理器8100、統一行緩沖存儲器8120、地址產生器8140和JPEG壓縮器8160。圖像數據處理器8100產生圖像數據。所述圖像數據被劃分成亮度分量Y和色度分量U和V。在圖8中,僅僅示出了用于亮度分量Y的一個行存儲器_Y(8120)。圖像數據處理器8100與時鐘同步地輸出圖像數據。來自圖像數據處理器8100的色度分量Y被存儲到行存儲器_Y(8120)。如果將被處理的圖像數據具有V*H的分辨率,并且JPEG壓縮器8160以v*h塊為單位處理圖像數據,則行存儲器_Y(8120)具有v*H字節的大小。例如,在JPEG壓縮的情況下,v等于h,h等于8(v=h=8)。以下,將作為示例說明VGA標準的情況。
地址產生器8140產生行存儲器_Y(8120)的讀和寫地址。在本發明的一個典型實施例中,行存儲器_Y(8120)的讀地址與行存儲器_Y(8120)的寫地址相同。即,以施加了用于讀操作的地址的存儲單元來執行寫操作。在本發明的典型實施例中的地址產生器8140包括一對地址緩沖器8142和8144、用于選擇地址緩沖器之一的復用器8146和地址控制器8148。每個地址緩沖器8142和8144具有行存儲器_Y(8120)的1/8的大小,并且該對地址緩沖器8142和8144具有行存儲器_Y(8120)的1/4的大小。
地址控制器8148產生用于地址緩沖器的讀和寫地址,并且合成行存儲器的公共讀/寫地址。每個地址緩沖器8142和8144存儲對于存儲在單個行存儲器_Y(8120)中的8*H像素的定位地址。于是,定位地址是0、1、2、3、...、637、638、639,并且每個地址緩沖器8142和8144以不同的順序存儲定位地址。
地址控制器8148產生用于地址緩沖器8142、8144的讀地址和寫地址,以便從地址緩沖器8142、8144讀出定位地址和向地址緩沖器8142、8144寫入所讀出的定位地址。地址控制器8148根據所讀出的定位地址來合成用于行存儲器_Y(8120)的公共讀/寫地址。對于公共讀/寫地址,從單個行存儲器8120讀出圖像數據和向其寫入新的圖像數據。即,通過將經由讀地址讀出的定位地址乘以8來獲得一個段的第一像素的地址,并且通過向第一像素的地址依序加上0~7來獲得所述段的8個像素的讀/寫地址。
參考讀地址從一個地址緩沖器讀出的定位地址被參考寫地址存儲在另一個地址緩沖器中。讀地址是對應于塊掃描順序的(640/8)*vv+i,其中“i”表示圖像數據的塊順序,從0向79(=640/8-1)遞增。“vv”是表示每個塊的行數的變量,它對于每個“i”從0向7遞增。換句話說,讀取存儲在地址緩沖器的地址0、80、160、...、560、1、81、...的定位地址。另一方面,讀地址總是從0向639遞增。
通過下面的方程3來獲得公共讀/寫地址crw_addr。
for(i=0;i<640/8;i++){for(vv=0;vv<8;vv++){for(hh=0;hh<8;hh++){rd_addr=vv*640/8+i;crw_addr=f[rd_addr]*8+hh}}}其中,“vv*640/8+i”是讀地址rd_addr,f[rd_addr]是存儲在由讀地址rd_addr所指的地址緩沖器的地址的定位地址。
當在方程3的640位置使用另一個值的時候,可以產生對應于將要處理的圖像大小的公共讀/寫地址。
例如,當處理具有三個分量Y、U和V的VGA圖像的時候,640可以替換為1280。
當處理8行的、即8*640像素的圖像數據的時候,即,將讀地址施加到一個地址緩沖器0 8142來讀出定位地址,并且將寫地址施加到另一個地址緩沖器1 8144來寫入所讀出的定位地址。當處理8行的圖像數據的時候,改變對于復用器8146的一個選擇信號以改變每個地址緩沖器的操作模式。讀地址被施加到其中已經施加了寫地址的地址緩沖器1 8144,寫地址被施加到其中已經施加了讀地址的地址緩沖器0 8142。
在另一個典型實施例中,地址控制器8148產生用于地址緩沖器8142、8144的讀地址和寫地址以便從地址緩沖器8142、8144讀出定位地址和向地址緩沖器8142、8144寫入所讀出的定位地址。地址控制器8148產生讀地址(假定通過如下的方程4來獲得VGA亮度圖像)。
x=0;x’=1;waddr_anchor=0;for(i=0;i<640/8;i++){for(vv=0;vv<8;vv++){for(hh=0;hh<8;hh++){raddr_anchor=vv·80+i;ABUFx’[waddr_anchor]=ABUFx[raddr_anchor];addr1=ABUFx[raddr_anchor]·8+hh;}waddr_anchor++;}}x=~x;x’=~x’;其中“i”是塊的索引(0≤i≤80),“vv”是塊中的垂直索引(0≤vv≤7),“hh”是在塊中的水平索引(0≤hh≤7),x,x’=0或1(在循環的尾部反復)。
參見圖9A-9D和10A-10D,現在更全面地說明本發明的典型實施例的操作。以存儲8*80像素的行存儲器作為示例。
圖9A-9D示出了一個段的圖像數據(包括構成一個塊的水平8個像素的一行)被存儲在行存儲器8120中。圖10A-10D示出了定位地址被存儲到地址緩沖器8142、8144。在圖9和10中,行存儲器8120和地址緩沖器8142、8144的地址從左向右和從上向下增加。
從圖像數據處理器100產生的8*80像素(光柵H1)的圖像數據被寫入到統一行緩沖存儲器8120的從0到639的地址。即,如圖9A所示,在行存儲器8120中存儲了80個段(段0~段79)。例如,段0包括像素0~7,段1包括像素8~15,段10包括像素80~87。此時,對于每8個像素產生的定位地址0~79(對每8個像素它保持為一個固定值)被依序存儲到地址緩沖器0 8142的從0到79的地址,如圖10A所示。當初始8行的圖像數據(8*80像素)被依序存儲到單個行存儲器_Y 8120的時候,定位地址0~79對應于通過將地址除以8所獲得的值,其中所述地址中存儲了每個段的第一像素。于是,當定位地址被乘以8的時候,定位地址0~79指示行存儲器_Y(8120)的地址,其中該行存儲器中存儲了每個段的第一像素。在行存儲器_Y(8120)中存儲段的順序示出了圖像數據被以那個順序存儲到對應于定位地址的行存儲器_Y(8120)的地址中。
當640個像素被全部存儲到行存儲器_Y(8120)中的時候,通過地址控制器8148來產生地址緩沖器0 8142的讀地址。從方程3或4來給出讀地址。即,以0、10、20、30、40、50、60、70、1、11、21、31、...的順序產生地址緩沖器8142、8144的讀地址,并且將其乘以8以獲得各個段的第一像素的值。
為了產生8*8塊,按照方程3或4來由地址控制器8148合成行存儲器的公共讀/寫地址。換句話說,讀地址被施加到地址緩沖器0 8142以讀取定位地址,所讀出的定位地址被乘以8以獲得段的第一像素的值。然后多個段的第一像素的值被加上0~7以合成段的像素的公共讀/寫地址。
參考公共讀/寫地址以塊為單位對行存儲器_Y(8120)執行讀操作。在這種情況下,參考公共讀/寫地址,從圖像數據處理器8100產生的、新的8行圖像數據的8*80像素(光柵H2)被寫入到行存儲器_Y(8120),如圖9B所示。所讀出的定位地址被參考寫地址依序存儲到地址緩沖器1 8144中,所述寫地址從0向79遞增,如圖10B所示。在按照方程3或4產生公共讀/寫地址之后,在行存儲器8120中執行讀和寫操作。此時,相對于公共讀/寫地址的定位地址被存儲到地址緩沖器1 8144,它與通過讀地址讀出的地址緩沖器1(8142)的定位地址一致。
如上所述,光柵H2的第0個段被存儲在行存儲器的地址0~7(其中存儲了光柵H1的第0個段),光柵H2的第二段被存儲在行存儲器的地址10*8~10*8+7(其中存儲了光柵H1的第10段),光柵H2的第三段被存儲在行存儲器的地址編號20*8~20*8+7(其中存儲了光柵H1的第20段)。此時,定位地址0、10、20、...被存儲到地址緩沖器1 8144的地址0~79。于是,如果相同的地址被施加到地址緩沖器1 8144,則可以以塊單元來讀出光柵H2。
同樣,以塊為單位從單個行存儲器8120讀出光柵H2,參考公共讀/寫地址向單個行存儲器8120寫入新的8行的圖像數據(光柵H3)。即,如圖10B所示,參考讀地址rd_addr=vv*80/8+i從地址緩沖器1 8144讀出存儲在地址0、10、20、30、40、50、60、70、1、...的定位地址0、21、42、63、5、26、47、68、10、...,把根據所讀出的定位地址產生公共讀/寫地址。參考圖9B的個行存儲器8120,定位地址對應于段0、10、20、30、40、50、60、70、1、...。這對應于塊掃描順序。參考所產生的公共讀/寫地址以塊為單位從單個行存儲器8120讀出光柵H2,同時向行存儲器寫入新的8行的圖像數據(光柵H3)(參見圖9C)。此時,依序向地址緩沖器0 8142的地址0~79寫入從地址緩沖器1 8144讀出的定位地址,如圖10C所示。
參考所讀出的地址從地址緩沖器0 8142讀出定位地址0、52、25、...。根據所讀出的定位地址,產生公共讀/寫地址,然后讀出光柵H3和寫入新的8行的圖像數據(光柵H4)(參見圖9D)。從地址緩沖器0 8142讀出的定位地址被依序存儲到地址緩沖器1 8144的地址0-79(參見圖10D)。
重復上述的步驟,直到處理了整個的圖像(圖像的一個幀)。在最后8行的情況下,僅僅執行讀操作。即,在讀出倒數第二(second last)個8行的圖像數據和同時寫入最后8行的圖像數據之后,僅僅對最后8行的圖像數據執行讀操作。當處理了整個圖像的時候,可以以相同的方式處理圖像數據的另一個幀。
圖11是按照本發明的另一個典型實施例的地址產生器8140的示意方框圖。以下,亮度VGA標準也將被用作一個示例。在VGA標準的情況下,因為水平分辨率是640,因此行存儲器1120具有640*8*8位的大小。當初始8行的圖像數據(8*640像素=5120像素)被依序存儲到行存儲器120的從0到5119的地址的時候,產生從0到639每8個像素遞增的定位地址。于是,因為行存儲器1120存儲5120個像素,行存儲器的地址需要13位,定位地址需要10位。為此,用于存儲定位地址的每個地址緩沖器1142和1144具有640*10位的大小。
系統時鐘、水平同步信號、垂直同步信號、幀開始信號被施加到地址控制器1148。地址控制器1148產生各種控制信號,用于響應于上述的信號來控制地址緩沖器1142、1144、復用器1146、1150、1150’、1152、1152’和1154、行存儲器1120。控制信號包括例如定位地址、寫地址、讀地址和公共讀/寫地址。
可以利用3位計數器獲得定位地址。或者,當參考遞增的13位地址向行存儲器1120寫入初始8行的圖像數據的時候,可以通過將13位地址移位3位而獲得定位地址。即,如果用于向行存儲器1120寫入的初始寫地址具有在右邊的最低有效位(LSB),如圖12A所示,則行存儲器的寫地址向右移位3位,于是獲得了定位地址,如圖12B所示。換句話說,定位地址保持對于每8個像素的相同的值,步驟從0向639遞增。
因為通過將定位地址乘以8并且加上0~7(被要求用來表示段的水平像素)來獲得公共讀/寫地址,因此公共讀/寫地址變為13位。將定位地址乘以8等價于將定位地址移位3位,可以通過增加3位來實現增加0~7。即,如圖13A所示,將在右邊具有LSB的定位地址的10位向左移位3位相當于乘以8。這對應于將13位的寫地址向右移位3位,以獲得定位地址。因此,通過將定位地址乘以8獲得的結果指示每個塊的第一像素的地址。而且,如圖13B所示,通過將定位地址乘以8獲得的結果值被加3以獲得塊的每個段的水平分量。結果,可以獲得對于塊的所有像素的公共讀/寫地址。
地址控制器1148產生地址緩沖器1142和1144的讀和寫地址raddr_anchor和waddr_anchor。利用計數器、乘法器和加法器來示意地產生讀地址。8*640像素的每8個像素產生寫地址waddr_anchor,并且它從0向639遞增。可以利用計數器實現寫地址waddr_anchor。可以不同步地執行地址緩沖器的讀操作。如果讀地址raddr_anchor被施加到地址緩沖器1142和1144,在對應于所施加的讀地址raddr_anchor的定位地址是地址緩沖器1142和1144的輸出端DOUT。地址緩沖器的寫操作被同步地執行。即,當用于寫操作的寫使能信號wen處于邏輯低狀態的時候,在時鐘的上升邊或下降邊,定位地址被寫入對應于所施加的寫地址waddr_anchor的位置。可以同步地執行讀操作。在這種情況下,施加用于讀操作的控制信號,并且在時鐘的上升邊或下降邊讀出存儲在所施加的讀地址中的定位地址。
當地址緩沖器0 1142工作在讀模式中(寫使能在高電平)的時候,地址緩沖器1 1144工作在寫模式中。當地址緩沖器0 1142工作在寫模式中(寫使能在低電平)的時候,地址緩沖器1 1144工作在讀模式。如果完全處理了8行的圖像數據(8*640像素),則改變了每個地址緩沖器的操作模式。為了將此實現,地址產生器8140包括復用器1150、1150’、1152、1152’、1154、1146。
復用器1150復用寫使能wen和邏輯高信號以向地址緩沖器0 1142的寫模式輸入端WEN傳送。復用器1150’復用寫使能wen和邏輯高信號以向地址緩沖器1 1144的寫模式輸入端WEN傳送,并且與復用器1150互補地工作。
復用器1152復用讀和寫地址raddr_anchor和waddr_anchor以向地址緩沖器0 1142的地址輸入端A傳送。復用器1152’復用讀和寫地址raddr_anchor和waddr_anchor以向地址緩沖器1 1144的地址輸入端A傳送,并且與復用器1152互補地工作。于是,當一個地址緩沖器工作在寫模式的時候,另一個地址緩沖器工作在讀模式。
可以當從圖8的圖像數據處理器100向行緩沖存儲器1120輸入第一圖像數據(PixelM[7:0])的時候初始化地址控制器。圖14是示出按照本發明的典型實施例的初始化步驟的時序圖。
地址控制器1148產生初始化信號(init)、地址緩沖器0 1142的寫使能信號(wen)和寫地址(waddr_anchor)。寫地址依序以步長1從0向639增加(圖14中的waddr_anchor)。Wen信號在每8個時鐘的一個時鐘時間期間變低。
在初始化期間,定位地址0 1142的數據輸入端口(DI)連接到waddr_anchor,因此地址緩沖器0 1142的每個位置存儲它的地址。同時,依序從0到最后一個地址在統一行存儲器1120中存儲來自圖像數據處理器100的數據。
在初始化之后,在圖15中示出了地址緩沖器0 1142的內容。而且,在初始化之后,禁止init信號,因此1142的數據輸入端口通過復用器1154連接到復用器1146的輸出端口。
地址控制器1148輸出wen、raddr_anchor和waddr_anchor信號。與在初始化期間相同地產生waddr_anchor信號。Wen信號使得地址緩沖器1 1144可以寫入。通過方程3或4、即其地址是vv*80+i的地址緩沖器的內容來確定定位地址。當確定定位地址的時候,向地址控制器1148輸入存儲在地址緩沖器1 1144中的地址。
地址控制器1148通過下面的方程計算行存儲器地址addr1=ABUFx[vv*80+i]*8+hh,其中,ABUFx[vv*80+i]的值是定位地址。
圖15示出了地址緩沖器1142的讀地址。圖17示出了在地址緩沖器1144中寫地址的步驟,圖16示出了用于讀和寫的時序圖。
圖18示出了對于下8個像素行的地址緩沖器0 1142的內容。
復用器1146復用從地址緩沖器的輸出端DOUT產生的定位地址以向地址控制器1148和地址緩沖器傳送。從一個地址緩沖器產生的定位地址被通過另一個地址緩沖器的輸入端依序寫入,并且被輸入到地址控制器1148以用于產生公共讀/寫地址。
如果選擇信號是邏輯低(“0”),則復用器1150向地址緩沖器0 1142的寫模式輸入端WEN傳送寫使能wen。另一方面,復用器1150’向地址緩沖器11144的寫模式輸入端WEN傳送邏輯高(“1”)。于是,因為寫模式輸入端WEN是低活性的,因此地址緩沖器1144不工作在寫模式中。但是,如果寫使能信號wen被施加為邏輯低,則地址緩沖器1(1144)工作在寫模式。
復用器1152向地址緩沖器1142傳送寫地址waddr_anchor,復用器1152`向地址緩沖器1144傳送讀地址raddr_anchor。復用器1146選擇地址緩沖器1144的輸出。
如圖19所示,從圖像數據處理器8100產生的8行的圖像數據與時鐘的上升邊同步,并且被依序存儲在行存儲器1120中。此時,選擇信號是邏輯低電平。于是,地址緩沖器0 1142工作在寫模式中,地址緩沖器1 1144工作在讀模式,復用器1146選擇地址緩沖器1 1144的產生。
當8行的圖像數據被從圖像數據處理器100產生和被依序存儲在行存儲器1120中的時候,從0到639每8個像素遞增的定位地址以及寫地址waddr_anchor被產生。而且,參考寫地址waddr_anchor,所產生的定位地址0~639被依序從地址0到639存儲在地址緩沖器0 1142。此時,因為控制器1148不產生讀地址raddr_anchor,不從地址緩沖器1 1144產生輸入。
當所有的8行圖像數據(8*640像素)被寫入行存儲器_Y(1120)的時候,復用裝置的選擇信號從邏輯低轉換到邏輯高(“1”)。于是,邏輯高(“1”)被輸入到地址緩沖器0 1142的寫模式輸入終端WEN。結果,地址緩沖器0 1142不再工作在寫模式,通過復用器1152向地址緩沖器0 1142傳送讀地址raddr_anchor。即,地址緩沖器0 1142轉換到讀模式。同時,因為邏輯低的寫使能wen被輸入到地址緩沖器1 114的寫模式輸入終端WEN,則地址緩沖器1144的寫模式輸入終端WEN變得有效,并且通過復用器1152`向地址緩沖器1 1144傳送寫地址waddr_anchor。即,地址緩沖器1 1144轉換到寫模式。同時,復用器1146選擇地址緩沖器0 1142得輸出,并且傳送到地址控制器1148和地址緩沖器1 1144。
地址控制器1148產生讀地址raddr_anchor,并且將所產生的讀地址施加到地址緩沖器0 1142,于是從地址緩沖器0 1142讀出定位地址。讀地址raddr_anchor被產生來滿足raddr_anchor=v*640/8+i。即,以0、80、160、240、...、560、1、81、...產生讀地址raddr_anchor。于是,存儲在地址緩沖器0(1142)的地址0、80、160、240、...、560、1、81、...的定位地址被依序輸出。所輸出得定位地址被通過復用器1146輸入到地址緩沖器1 1144和地址控制器1148。
因為定位地址對每8個像素保持固定值,可以在8個時鐘期間的任何時間啟動(即邏輯低)用于向地址緩沖器1 1144寫入定位地址的寫使能信號wen。可以在圖20所示的每個第一時鐘啟動寫使能wen。如果啟動寫使能wen(變得邏輯低),則參考遞增的寫地址waddr_anchor,依序從0-639在地址緩沖器1144中存儲從地址緩沖器0 1142讀出的定位地址0、80、160、240、...、560、1、81、...。
同時,按照方程3或4,根據從地址緩沖器0 1142輸出的定位地址,地址控制器1148產生公共讀/寫地址。例如,以0~7、640~647、1280~1287、1920~1927、...、4480~4487、...、8~15、648~655...的順序產生公共讀/寫地址。按照所產生的公共讀/寫地址在行存儲器1120上執行讀操作,同時,按照所產生的公共讀/寫地址向行存儲器1120寫入新的8行的圖像數據。
同樣,如果所有新的8行的圖像數據被寫入行存儲器1120,則復用裝置的選擇信號被再次轉換到低狀態。于是,地址緩沖器0 1142再次工作在寫模式,并且地址緩沖器1 1144再次工作在讀操作。復用器1146選擇從地址緩沖器1 1144輸出的定位地址,并且向地址緩沖器0 1142和地址控制器1148輸入所輸出的定位地址。
讀地址raddr_anchor被施加到地址緩沖器1 1144以獲得定位地址,并且所獲得的定位地址被參考寫地址waddr_anchor而依序存儲在地址緩沖器01142。地址控制器1148根據從地址緩沖器1 1144獲得的定位地址同步公共讀/寫地址。參見所產生的公共讀/寫地址,讀出行存儲器1120,并且同時存儲另一新的8行的圖像數據。
如果對行存儲器1120完成了讀和寫操作,則復用裝置的選擇信號被再次轉換到高狀態。
重復上述的步驟,直到完全處理了圖像數據的一個幀(480*640像素)。在最后8行的圖像數據被寫入到行存儲器1120之后,僅僅參考公共讀/寫地址對行存儲器1120執行讀操作。同樣,當從圖像數據處理器輸出第一個8行的圖像數據的時候,僅僅在行存儲器1120上執行寫操作。
圖21圖解了本發明的另一個典型實施例,即圖4和11所示的實施例的組合。
按照如上所述的本發明的典型實施例,依序存儲在第一地址緩沖器中的定位地址被通過預先設置的讀地址(即以塊為單位)讀出,并且被以讀取的順序依序存儲在第二地址緩沖器中。存儲在第二地址緩沖器中的定位地址被再次通過讀地址讀出,并且被依序存儲在第一地址緩沖器中。即,定位地址被存儲在一對地址緩沖器中,其中每個具有行存儲器的1/8的大小。這使得能夠通過利用單個行存儲器容易地實現在光柵掃描順序和塊掃描順序之間的圖像數據轉換。地址緩沖器的讀地址表示為一個固定的模式或H/8*v+i,并且寫地址也表示從0向H-1遞增的固定模式。可以利用計數器來實現寫地址模式,可以利用移位寄存器和加法器來實現讀地址模式。可以通過由移位寄存器將從地址緩沖器讀出的定位地址移位3位并且由加法器增加3位來獲得公共讀/寫地址。
在上述的技術中,當第一個8行圖像數據被存儲在單個行存儲器中的時候,通過將其中存儲一個段的第一像素的地址除以8來設置定位地址。但是,也可以以不同的方式來設置定位地址。即,定位地址可以被設置為其中存儲一段的第一像素的地址。但是不必根據上述的技術改變地址緩沖器的讀和寫地址。在公共讀/寫地址的情況下,在方程3中,通過讀地址raddr_anchor讀出的定位地址f[rd_addr]可以僅僅遞增hh,hh表示段的一個水平像素。即,公共讀/寫地址crw_addr等于f[rd_addr]+hh,讀地址raddr_anchor等于vv*640/8+i。
雖然已經敘述了用于將光柵掃描順序的圖像數據轉換為塊掃描順序的圖像數據的方法,所述方法也可以被施加到反向轉換,即塊掃描順序的圖像數據向光柵掃描順序的圖像數據的轉換。
當將本發明的行緩沖系統和典型的行緩沖系統的典型實施例施加到VGA標準的時候,下面的表2示出了其間所需要的等同門電路的數量的比較,其中本發明的行緩沖系統使用單個行存儲器以及一對地址緩沖器,典型的行緩沖系統使用每個彩色分量各自的行緩沖存儲器。
在利用一對行存儲器的典型行系統的存儲器比特的數量是640*8*8*2的時候,本發明的行緩沖系統的典型實施例的存儲器比特的數量是640*8*8+640*10*2或52480比特。在從單個端口SRAM實現行存儲器的情況下,傳統的方法需要79170個門電路,并且本發明的典型實施例需要64471個門電路。
雖然已經參照本發明的特定和典型實施例說明了本發明的典型實施例,可以在不脫離本發明的精神和范圍的情況下,可以進行各種改變和改進。應當明白,本發明的范圍不限于以上的本發明的詳細說明,它僅僅是說明性的,而是包括有所附的權利要求限定的主題。
按照本發明的典型實施例,因為僅僅對于每個彩色分量使用一個行存儲器,可以降低存儲器的大小,因此,可以獲得包括行存儲器的大小降低的芯片,并且需要可以以低功率工作。
權利要求
1.一種圖像處理裝置,用于在光柵掃描順序和塊掃描順序之間轉換圖像數據,包括圖像數據處理器,用于提供圖像數據,所述圖像數據包括光柵掃描順序的水平分辨率H和垂直分辨率V;單個行存儲器,用于存儲v行的圖像數據;地址產生器,用于產生單個行存儲器的公共讀/寫地址;以及圖像壓縮器,用于從單個行存儲器接收v*h塊單元的圖像數據,并且壓縮所接收的圖像數據,其中當參考公共讀/寫地址以塊掃描順序從單個行存儲器讀出v行的圖像數據的時候,參考相同的共同讀/寫地址來向單個行存儲器寫入下一個v行的圖像數據,其中所述“v”表示一個塊的行數,所述“h”表示一個塊的列數。
2.按照權利要求1的圖像處理裝置,其中地址產生器包括一對地址緩沖器,用于存儲定位地址;和地址控制器,用于根據定位地址來合成公共讀/寫地址,其中定位地址具有值0~H*v/h-1,所述定位地址在v行的圖像數據的v*H個像素的每h像素遞增1,并且相對于在兩個地址緩沖器中的第一個地址緩沖器中存儲的定位地址的順序來以塊掃描的順序來向所述對的地址緩沖器的第二個中存儲一個定位地址。
3.按照權利要求1的圖像處理裝置,其中h和v是8。
4.按照權利要求2的圖像處理裝置,其中h和v是8。
5.按照權利要求2的圖像處理裝置,其中存儲在所述兩個地址緩沖器中的第一個中的定位地址是f[n],其中f[n]是存儲在所述兩個地址緩沖器的第二個中的第n個地址的定位地址,n等于(H/h)*vv+i,其中“i”表示v行的圖像數據的塊順序,并且從0向(H/h)-1遞增,“vv”表示一個塊的行數的變量,并且對于每個i從0遞增到v-1。
6.按照權利要求5的圖像處理裝置,其中,地址控制器提供一個讀地址,用于從兩個地址緩沖器中的第一個讀出定位地址,并且提供一個寫地址,用于向兩個地址緩沖器中的第二個地址緩沖器寫入從兩個地址緩沖器中的第一個地址緩沖器讀出的定位地址,其中地址控制器通過將從兩個地址緩沖器中的第一個地址緩沖器讀出的定位地址乘以v并且加上從0向h-1遞增的hh來合成公共讀/寫地址。
7.按照權利要求5的圖像處理裝置,其中,v和h是8。
8.按照權利要求6的圖像處理裝置,其中,v和h是8。
9.按照權利要求6的圖像處理裝置,其中,地址控制器提供用于兩個地址緩沖器中的第一個地址緩沖器的讀地址n=(H/h)*vv+i,并且提供用于向兩個地址緩沖器中的第二個地址緩沖器寫入由讀地址n=(H/h)*vv+i讀出的定位地址的、從0到H-1遞增的寫地址。
10.按照權利要求9的圖像處理裝置,其中,當從單個行存儲器讀出下一個v行的圖像數據并且下面跟著的v行的圖像數據被寫入單個行存儲器的時候,地址控制器提供讀地址n=(H/h)*vv+i以便從兩個地址緩沖器中的所述第一個地址緩沖器讀出定位地址,并且提供從0遞增到H-1的寫地址以便向兩個地址緩沖器中的第二個地址緩沖器寫入從兩個地址緩沖器中的所述第一個地址緩沖器讀出的定位地址。
11.一種地址產生器,用于利用單個行存儲器在具有分辨率V*H的光柵掃描順序和v*H個像素的塊掃描順序之間轉換圖像數據,所述地址產生器包括一對地址緩沖器,這對地址緩沖器的每個在彼此具有互補操作模式的讀和寫模式之間重復轉換,并且存儲定位地址;地址控制器,用于提供用于讀取操作模式的該對地址緩沖器的讀地址以及用于寫入操作模式的該對地址緩沖器的寫地址,并且根據從那對地址緩沖器讀出的定位地址合成用于對行存儲器的公用讀/寫地址,其中,定位地址具有值0~v*H/h-1,所述地位地址關于寫入到單個行存儲器的v*H個像素的每h個像素遞增,其中,參考所述讀地址從該對地址緩沖器之一讀出的定位地址被參考所述寫地址寫入該對地址緩沖器的另一個地址緩沖器中,并且,讀地址給定為(H/h)*vv+i以對應于塊掃描順序,在此,“i”表示v行的圖像數據的塊順序,并且從0向(H/h)-1遞增,“vv”表示一個塊的行數的變量,并且對于每個i從0向v-1遞增,并且寫地址給定為從0向v*H/h-1遞增,通過將經由所述讀地址讀出的定位地址乘以h和加上hh來合成公共讀/寫地址,其中hh相對于每個“vv”從0向h-1遞增,其中所述“v”表示一個塊的行數,所述“h”表示一個塊的列數。
12.按照權利要求11的地址產生器,其中,h和v是8。
13.按照權利要求11的地址產生器,其中,當完全更新數據緩沖器的數據的時候,進行在讀和寫操作模式之間的轉換。
14.按照權利要求11的地址產生器,其中,每個地址緩沖器是所述單個行存儲器的大小的1/8。
15.一種圖像處理方法,用于利用單個行存儲器在光柵掃描順序和v*h塊掃描順序之間轉換圖像數據,包括提供第一和第二地址緩沖器;產生地址緩沖器的讀地址和寫地址;將v行的圖像數據存儲到單個行存儲器中,并且參照寫地址向第一地址緩沖器存儲關于每h個像素產生的定位地址;通過參考讀地址來讀出存儲在第一地址緩沖器中的定位地址,并且參考寫地址向第二地址緩沖器存儲所讀出的定位地址;根據通過讀地址讀出的定位地址產生行存儲器的公共讀/寫地址;參考公共讀/寫地址讀取v行的圖像數據,并且同時向行存儲器寫入v行的新圖像數據;重復讀出定位地址,產生公共讀/寫地址和讀出v行的圖像數據,直到完全處理了所有的圖像數據,其中每次重復讀出定位地址、產生公共讀/寫地址和讀出v行的圖像數據,通過讀和寫地址交替地引用多個地址緩沖器,寫地址依序遞增,讀地址對應于塊掃描順序,其中所述“v”表示一個塊的行數,所述“h”表示一個塊的列數。
16.按照權利要求15的圖像處理方法,其中,當處理V*H的分辨率的圖像數據的時候,定位地址具有值0~v*H/h-1,寫地址關于每h個像素從0向v*H/h-1遞增,并且讀地址是H/h*vv+i,在此,“i”表示寫入到單個行存儲器的v*H圖像數據的塊順序,它從0向H/h-1遞增,“vv”表示塊的行順序,它對于每個i從0向v-1遞增,并且讀地址在每h像素保持一個值,公共讀/寫地址是f[(H/h*vv+i)]*h+hh,其中“hh”是表示塊的水平像素的順序的變量,并且對于每個i從0遞增到h-1,并且f[(H/h*vv+i)]是從地址緩沖器通過讀地址H/h*vv+i讀出的定位地址。
17.按照權利要求16的圖像處理方法,其中h和v是8。
18.一種圖像處理方法,用于在具有V*H的分辨率的光柵掃描順序和v*h塊掃描順序之間轉換圖像數據,包括向單個行存儲器線性寫入第一v行的v*H個像素的圖像數據,并且參考從0向v*H/h-1遞增的寫地址向第一地址緩沖器寫入具有每h個像素遞增的0~v*H/h-1的值的定位地址;產生給定為(H/h)*vv+i的讀地址,其中“i”表示v行的圖像數據的塊順序,它從0向(H/h)-1遞增,“vv”表示塊的行數的變量,它對于每個i從0向v-1遞增;參考讀地址從第一地址緩沖器讀出定位地址,參考寫地址向第二地址緩沖器寫入所讀取的定位地址,并且通過將所讀取的定位地址乘以h和加h來合成單個行存儲器的第一公共讀/寫地址,其中h對于每個vv從0向h-1遞增;參考公共讀/寫地址從單個行存儲器讀出第一v行的圖像數據,同時參考公共讀/寫地址向單個行存儲器寫入第二v行的圖像數據;參考讀地址讀出在第二地址緩沖器中存儲的定位地址,并且通過將所讀取的定位地址乘以h和加上hh來合成單個行存儲器的第二公共讀/寫地址;參考公共讀/寫地址從單個行存儲器中讀出第二v行的圖像數據,并且參考第二公共讀/寫地址向行存儲器寫入第三v行的圖像數據;重復讀出第一v行的圖像數據、讀出定位地址、讀出第二v行的圖像數據,直到完全處理了v行的圖像數據,其中所述“v”表示一個塊的行數,所述“h”表示一個塊的列數。
19.按照權利要求18的圖像處理方法,其中h和v是8。
20.按照權利要求18的圖像處理方法,其中在讀出倒數第二個v行和寫入最后v行之后,僅僅執行用于從單個行存儲器讀取最后v行的讀操作。
21.一種圖像處理方法,用于在具有V*H的分辨率的光柵掃描順序和8*8塊掃描順序之間轉換圖像數據,包括向單個行存儲器線性寫入8*H像素的圖像數據,并且參考寫地址向第一地址緩沖器寫入每8個像素保持固定值的定位地址;參考讀地址讀取存儲在第一地址緩沖器中的定位地址;參考寫地址向第二地址緩沖器存儲從第一地址緩沖器讀出的定位地址,并且根據所讀出的定位地址合成公共讀/寫地址;參考圖像數據處理器從單個行存儲器讀出8*H像素的圖像數據,同時參考公共讀/寫地址向單個行存儲器寫入下一個8*H像素的圖像數據;重復讀取定位地址、存儲定位地址和讀出8*H像素的圖像數據,直到完全處理了V*H個像素的圖像數據,其中每次重復讀取定位地址、存儲定位地址和讀出8*H像素的圖像數據,通過讀和寫地址來交替參考地址緩沖器,寫地址從0向H-1依序遞增,讀地址滿足(H/8)*vv+i,其中“i”表示8行圖像數據的塊的順序,并且從0向(H/8)-1遞增,“vv”表示塊的行數的變量并且對于每個i從0向7遞增,并且通過將經由讀地址讀出的定位地址乘以8和加上從0遞增到7的hh來合成公共讀/寫地址,其中所述“v”表示一個塊的行數,所述“h”表示一個塊的列數。
22.按照權利要求21的圖像處理方法,其中向一個單個行存儲器線性地寫入8*H像素的圖像數據,定位地址具有值0~H-1,并且被存儲在單個行存儲器的相同值的地址。
23.一種地址產生器,用于利用單個行存儲器在具有分辨率V*H的光柵掃描順序和v*H個像素的塊掃描順序之間轉換圖像數據,所述地址產生器包括至少兩個地址緩沖器,這至少兩個地址緩沖器的每個在彼此具有互補操作模式的讀和寫模式之間重復轉換,并且存儲定位地址;地址控制器,用于提供用于讀取操作模式的所述至少兩個地址緩沖器的讀地址以及用于寫入操作模式的所述至少兩個地址緩沖器的寫地址,并且根據從所述至少兩個地址緩沖器讀出的定位地址合成用于對行存儲器的公用讀/寫地址,其中所述“v”表示一個塊的行數,所述“h”表示一個塊的列數。
24.按照權利要求23的地址產生器,所述地址控制器通過產生初始化信號來初始化所述至少兩個地址緩沖器中的至少一個,以便所述至少兩個地址緩沖器的所述至少一個的每個地址位置存儲寫地址。
25.一種圖像處理方法,用于利用單個行存儲器在光柵掃描順序和v*h塊掃描順序之間轉換圖像數據,包括提供至少兩個地址緩沖器;產生所述至少兩個地址緩沖器的讀地址和寫地址;將v行的圖像數據存儲到單個行存儲器中,并且參照寫地址向所述至少兩個地址緩沖器的第一個存儲為每h個像素產生的定位地址;通過參考讀地址來讀出存儲在所述至少兩個地址緩沖器的第一個中的定位地址,并且參考寫地址向所述至少兩個地址緩沖器的第二個存儲所讀出的定位地址;根據通過讀地址讀出的定位地址產生行存儲器的公共讀/寫地址;參考公共讀/寫地址讀取v行的圖像數據,并且同時向行存儲器寫入v行的新圖像數據;重復讀出定位地址,產生公共讀/寫地址和讀出v行的圖像數據,直到完全處理了所有的圖像數據,其中每次重復讀出定位地址、產生公共讀/寫地址和讀出v行的圖像數據,通過讀和寫地址交替地引用多個地址緩沖器,寫地址依序遞增,讀地址對應于塊掃描順序,其中所述“v”表示一個塊的行數,所述“h”表示一個塊的列數。
26.一種圖像處理裝置,用于在光柵格式和塊格式之間轉換圖像數據,所述裝置包括圖像數據處理器,用于以光柵格式提供包括亮度分量和至少一個色度分量的圖像數據;行緩沖系統,用于在光柵格式和塊格式之間轉換圖像數據,所述行緩沖系統包括至少兩個FIFO存儲器,用于接收包括亮度分量和至少一個色度分量的光柵格式的圖像數據,并且存儲對應圖像數據分量,復用器,用于復用來自該至少兩個FIFO存儲器的圖像數據分量;統一行緩沖存儲器,用于存儲復用器的輸出;地址產生器,用于利用單個行存儲器在具有V*H分辨率的光柵掃描順序和v*h像素的塊掃描順序之間轉換圖像數據,所述地址產生器包括至少兩個地址緩沖器,所述至少兩個地址緩沖器的每個在彼此具有互補操作模式的讀和寫操作模式之間重復轉換,并且存儲一個定位地址;控制器,用于控制對于所述至少兩個FIFO存儲器的讀操作和寫操作,并且用于提供對于用于讀取操作模式的至少兩個地址緩沖器的讀地址和對于用于寫入操作模式的至少兩個地址緩沖器的寫地址,并且根據從所述至少兩個地址緩沖器讀出的定位地址合成對單個行存儲器的公共讀/寫地址;以及圖像壓縮器,用于從統一行緩沖存儲器依序接收塊格式的圖像數據分量,并且壓縮所接收的圖像數據分量,其中所述“v”表示一個塊的行數,所述“h”表示一個塊的列數。
27.一種圖像處理方法,用于利用單個行存儲器在光柵掃描順序和v*h塊掃描順序之間轉換圖像數據,所述方法包括以光柵格式提供包括亮度分量和至少一個色度分量的圖像數據;在光柵格式和塊格式之間轉換圖像數據,包括接收包括亮度分量和至少一個色度分量的光柵格式的圖像數據,存儲對應圖像數據分量,復用來自至少兩個FIFO存儲器的圖像數據分量;利用單個行存儲器在具有V*H分辨率的光柵掃描順序和v*h像素的塊掃描順序之間轉換圖像數據,包括在至少兩個地址緩沖器中在彼此具有互補操作模式的讀和寫操作模式之間轉換,并且存儲一個定位地址;控制向所述至少兩個FIFO存儲器的讀操作和寫操作,并且提供對于用于讀取操作模式的至少兩個地址緩沖器的讀地址和對于用于寫入操作模式的至少兩個地址緩沖器的寫地址,并且根據從所述至少兩個地址緩沖器讀出的定位地址合成對單個行存儲器的公共讀/寫地址;以及從統一行緩沖存儲器依序接收塊格式的圖像數據分量,并且壓縮所接收的圖像數據分量,其中所述“v”表示一個塊的行數,所述“h”表示一個塊的列數。
28.一種圖像處理方法,用于利用單個行存儲器在光柵掃描順序和v*h塊掃描順序之間轉換圖像數據,所述方法包括在彼此具有互補操作模式的讀和寫操作模式之間轉換,并且存儲一個定位地址;提供對于用于讀取操作模式的至少兩個地址緩沖器的讀地址和對于用于寫入操作模式的至少兩個地址緩沖器的寫地址,并且根據從所述至少兩個地址緩沖器讀出的定位地址合成對單個行存儲器的公共讀/寫地址,其中所述“v”表示一個塊的行數,所述“h”表示一個塊的列數。
29.一種地址產生器,用于利用單個行存儲器在具有分辨率H*V(640*480)的光柵掃描順序和h*v(8*8)個像素的塊掃描順序之間轉換圖像數據,所述地址產生器包括至少兩個大小為H*h的地址緩沖器;以及地址控制器,用于計算等于H*vv+0~h-1的塊掃描地址值,并且向所述至少兩個地址緩沖器的第一個寫入塊掃描順序,所述地址控制器用于讀取在讀操作方向上的所述至少兩個地址緩沖器的第一個中的光柵掃描順序地址值,并且用于在寫操作方向上在所述至少兩個緩沖器的第二個寫入塊掃描順序地址值,所述地址控制器還包括計算等于H*vv+0~h-1的、所述至少兩個緩沖器的第二個中存儲的值的塊掃描地址值,所述地址控制器用于在讀操作方向上從所述至少兩個緩沖器的第二個讀取地址值,并且在寫操作方向上在所述至少兩個緩沖器的所述第一個寫入地址值,所述地址控制器重復向所述至少兩個緩沖器讀取和寫入以及向統一行存儲器寫入,直到所有的圖像數據處于塊掃描順序,其中所述“v”表示一個塊的行數,所述“h”表示一個塊的列數。
全文摘要
一種圖像處理裝置,用于在光柵格式和塊格式之間轉換圖像數據,所述裝置包括圖像數據處理器,用于提供光柵格式的、包括一個亮度分量和至少一個色度分量的圖像數據;至少兩個FIFO存儲器,用于存儲對應的圖像數據分量;復用器,用于復用來自該至少兩個FIFO存儲器的圖像數據分量;行緩沖存儲器,用于存儲復用器的輸出;圖像壓縮器,用于從統一(unified)行緩沖存儲器依序以塊格式接收圖像數據分量,并且壓縮所接收的圖像數據分量。
文檔編號H04N1/21GK1929539SQ20061012676
公開日2007年3月14日 申請日期2003年7月18日 優先權日2002年7月19日
發明者樸賢相, 申善榮 申請人:三星電子株式會社