超出水平塊的范圍,則將像素單元地址存儲(chǔ)至下一個(gè)固定讀址函數(shù)(步驟S418)。如果像素單元地址超出水平塊的范圍,則將像素單元地址減去水平塊的范圍的最大值后存儲(chǔ)至下一個(gè)固定讀址函數(shù)(步驟S420)。將水平循環(huán)參數(shù)加一,并且回到判斷水平循環(huán)參數(shù)是否超出水平塊的范圍的步驟(步驟S422)。如果水平循環(huán)參數(shù)超出水平塊的范圍,則執(zhí)行下一個(gè)動(dòng)態(tài)讀址函數(shù)(步驟S424)。將垂直循環(huán)參數(shù)加一,并且回到判斷垂直循環(huán)參數(shù)是否超出垂直塊的范圍的步驟(步驟S426)。接下來(lái),將詳細(xì)說(shuō)明圖4的實(shí)施方式的各步驟流程,并且有需要時(shí)請(qǐng)同時(shí)參照以下的核心程序代碼,其中符號(hào)j表示垂直循環(huán)參數(shù),符號(hào)i表示水平循環(huán)參數(shù),而固定讀址函數(shù)與下一個(gè)固定讀址函數(shù)分別為reading address (i)與reading address (i+1),并且下一個(gè)動(dòng)態(tài)讀址函數(shù)為 D (j+1) =div (D (j),B) +mod (D (j),B) XN,其中,div (D (j),B)為將動(dòng)態(tài)讀址函數(shù)與B進(jìn)行整數(shù)運(yùn)算,并且mod (D (j),B)為將動(dòng)態(tài)讀址函數(shù)與B進(jìn)行余數(shù)運(yùn)算。
[0029][核心程序代碼]
[0030]j=0 ;
[0031]D(O)=N;
[0032]While (j<H/B) begin
[0033]i=0 ;
[0034]reading address(0)=0 ;
[0035]While (i〈BXN_l)begin
[0036]C=reading address(i)+D(j)
[0037]If(C〈BXN)
[0038]reading address(i+1)=C ;
[0039]Else
[0040]reading address(i+1)=C+1-B X N;
[0041]i=i+l ;
[0042]end
[0043]D (j+1) =div (D (j),B) +mod (D (j), B) X N ;
[0044]j=j+l;
[0045]end
[0046]在步驟S402中,在本實(shí)施方式中,圖像100具有多個(gè)水平塊ΗΒ_0?并且圖像100是根據(jù)水平塊ΗΒ_0?的順序?qū)懭胫链鎯?chǔ)器EVM,則需要先將垂直循環(huán)參數(shù)初始化為零。進(jìn)一步來(lái)說(shuō),圖像100的水平塊ΗΒ_0被定義為垂直循環(huán)參數(shù)為零;依此類(lèi)推,圖像100的水平塊被定義為垂直循環(huán)參數(shù)為M-1,亦即垂直循環(huán)參數(shù)為O?M-1,其中M為圖像的高度(H)除以B。
[0047]在步驟S404中,由于本實(shí)施方式的讀址函數(shù)是由固定讀址函數(shù)readingaddres(i)與動(dòng)態(tài)讀址函數(shù)D (j)所構(gòu)成,并且固定讀址函數(shù)與水平循環(huán)參數(shù)(亦即i)相關(guān),而動(dòng)態(tài)讀址函數(shù)與垂直循環(huán)參數(shù)(亦即j)相關(guān),故在此步驟中,會(huì)先初始化動(dòng)態(tài)讀址函數(shù)為N,亦即D(0)=N。再者,固定讀址函數(shù)與下一個(gè)固定讀址函數(shù)的水平循環(huán)參數(shù)的差值為一,并且動(dòng)態(tài)讀址函數(shù)與下一個(gè)動(dòng)態(tài)讀址函數(shù)的垂直循環(huán)參數(shù)的差值為一,以根據(jù)每一水平塊的順序來(lái)獲得像素單元的坐標(biāo)位置。值得一提的是,下一個(gè)動(dòng)態(tài)讀址函數(shù)為根據(jù)動(dòng)態(tài)讀址函數(shù)與矩陣的大小(亦即B)來(lái)進(jìn)行一整數(shù)運(yùn)算,并且下一個(gè)動(dòng)態(tài)讀址函數(shù)根據(jù)動(dòng)態(tài)讀址函數(shù)、矩陣的大小(亦即B)與垂直塊之?dāng)?shù)目(亦即N)來(lái)進(jìn)行一余數(shù)運(yùn)算,亦即D(j+l)=div(D(j), B)+mod(D(j), B) XN,據(jù)此來(lái)計(jì)算圖像100的各個(gè)像素單元的坐標(biāo)位置以讀取其地址來(lái)順序地寫(xiě)入至存儲(chǔ)器EVM以達(dá)成行轉(zhuǎn)換的工作。
[0048]在步驟S406中,本公開(kāi)的雙循環(huán)算法會(huì)開(kāi)始進(jìn)入到第一循環(huán)運(yùn)算,由于圖像100的高度已被坐標(biāo)化為多個(gè)水平塊ΗΒ_0?(亦即垂直循環(huán)參數(shù)為O?M-1),所以行與塊的整合轉(zhuǎn)換方法會(huì)透過(guò)垂直循環(huán)參數(shù)來(lái)判斷是否超出垂直塊范圍,并且垂直循環(huán)參數(shù)在此第一循環(huán)運(yùn)算中會(huì)從O逐漸遞增到M-1。據(jù)此,通過(guò)第一循環(huán)運(yùn)算的決策判斷以根據(jù)水平塊ΗΒ_0?的順序依次地將圖像100中各像素單元地址寫(xiě)入至存儲(chǔ)器EVM。此外,如果垂直循環(huán)參數(shù)尚未超出垂直塊的范圍,則進(jìn)入到步驟S408 ;如果垂直循環(huán)參數(shù)超出垂直塊的范圍,則結(jié)束雙循環(huán)算法。
[0049]在步驟S408中,在進(jìn)入第一循環(huán)運(yùn)算之初,則會(huì)先將水平循環(huán)參數(shù)初始化為零,亦即i=0。由于多個(gè)水平塊的每一個(gè)ΗΒ_0?都具有相同數(shù)目的像素單元(亦即BXN個(gè)像素單元),并且都會(huì)被坐標(biāo)化為O?(BXN)-l,如圖2A與圖2B所示。因此當(dāng)垂直循環(huán)參數(shù)進(jìn)行到每一個(gè)水平塊之初時(shí),水平循環(huán)參數(shù)都要被初始化為零。
[0050]在步驟S410中,如同步驟S408所述,同樣地,固定讀址函數(shù)也需要被初始化,亦即reading address (O) =0,以便在第二循環(huán)運(yùn)算時(shí)能夠重新讀取水平塊中每一行的像素單元的坐標(biāo)(從O?(BXN)-1)。
[0051]在步驟S412中,本公開(kāi)的雙循環(huán)算法開(kāi)始進(jìn)入到第二循環(huán)運(yùn)算,在此,行與塊的整合轉(zhuǎn)換方法已經(jīng)通過(guò)垂直循環(huán)參數(shù)來(lái)鎖定水平塊ΗΒ_0?的其中之一(例如水平塊HB_1),并且每一水平塊(具有BXN個(gè)像素單元)會(huì)被坐標(biāo)化為O?(BXN)-l,如圖2A與圖2B所示。因此,本公開(kāi)會(huì)經(jīng)由一決策機(jī)制來(lái)進(jìn)行判斷,亦即通過(guò)水平循環(huán)參數(shù)來(lái)判斷是否超出水平塊的范圍(O?BXN-1),水平循環(huán)參數(shù)在此第二循環(huán)運(yùn)算中會(huì)從O逐漸遞增到BXN-1以完整地掃描全部的像素單元。如果水平循環(huán)參數(shù)尚未超出水平塊的范圍,則進(jìn)入到步驟S414 ;如果水平循環(huán)參數(shù)超出水平塊的范圍,則進(jìn)入到步驟S424。
[0052]在步驟S414中,在此已經(jīng)開(kāi)始執(zhí)行第二循環(huán)運(yùn)算的本體部分,如果水平循環(huán)參數(shù)尚未超出水平塊的范圍(O?(BXN)-1),則本公開(kāi)會(huì)通過(guò)固定讀址函數(shù)與動(dòng)態(tài)讀址函數(shù)來(lái)獲得像素單元地址,亦即通過(guò)整數(shù)運(yùn)算與余數(shù)運(yùn)算來(lái)獲得每一像素單元的坐標(biāo)以讀取像素單元地址,請(qǐng)同時(shí)參見(jiàn)核心程序代碼內(nèi)的C=reading address (i)+D (j)以更了解本公開(kāi)。之后,進(jìn)入另一決策判斷,亦即步驟S416。
[0053]在步驟S416中,進(jìn)入一決策機(jī)制來(lái)判斷,如果在步驟S414所獲取的像素單元地址尚未超出水平塊的范圍,則進(jìn)入到步驟S418 ;如果在步驟S414所獲取的像素單元地址超出水平塊的范圍,則進(jìn)入到步驟S420。
[0054]在步驟S418中,在決策機(jī)制的判斷后進(jìn)入到此步驟則表示像素單元地址尚未超出水平塊的范圍,則本公開(kāi)會(huì)將像素單元地址存儲(chǔ)至下一個(gè)固定讀址函數(shù),如核心程序代碼內(nèi)的reading address (i+1) =C,以進(jìn)行后續(xù)的連續(xù)運(yùn)算。
[0055]在步驟S420中,在決策機(jī)制的判斷后進(jìn)入到此步驟則表示像素單元地址超出水平塊的范圍,則將像素單元地址減去水平塊的范圍的最大值(O?(BXN)-1,亦即BXN個(gè)像素單元)后存儲(chǔ)至下一個(gè)固定讀址函數(shù),如核心程序代碼內(nèi)的reading address (i+1) =C。之后,進(jìn)入到步驟S422。
[0056]在步驟S422中,在第二循環(huán)運(yùn)算的最后,水平循環(huán)參數(shù)會(huì)加一(亦即i=i+l)并且回到步驟S412以判斷水平循環(huán)參數(shù)是否超出水平塊的范圍的步驟,以逐漸將水平塊中每一矩陣(大小為BXB)進(jìn)行轉(zhuǎn)換。
[0057]在步驟S424中,如果水平循環(huán)參數(shù)超出水平塊的范圍(O?BXN-1),亦即水平循環(huán)參數(shù)等于或大于(BXN)-l,則