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

旋轉(zhuǎn)位像的裝置及方法

文檔序號:6609095閱讀:182來源:國知局

專利名稱::旋轉(zhuǎn)位像的裝置及方法
技術(shù)領(lǐng)域
:本總發(fā)明構(gòu)思涉及一種圖像變換裝置及其方法。更具體地,本總發(fā)明構(gòu)思涉及采用Bresenham直線算法來旋轉(zhuǎn)圖像的圖像變換裝置及其圖像變換方法。
背景技術(shù)
:在圖形應(yīng)用、游戲程序、圖像處理設(shè)備的驅(qū)動器、固件軟件和硬件ASIC中,需要旋轉(zhuǎn)位像以輸出期望的圖像。圖1圖示了傳統(tǒng)的位圖旋轉(zhuǎn)系統(tǒng),圖2圖示了傳統(tǒng)的位圖旋轉(zhuǎn)系統(tǒng)中的坐標(biāo)變換誤差。圖1中的傳統(tǒng)的位圖旋轉(zhuǎn)系統(tǒng)包括源位圖10、旋轉(zhuǎn)引擎20、插補(bǔ)引擎30以及旋轉(zhuǎn)后的位圖40。旋轉(zhuǎn)引擎20使用公式1,根據(jù)源位圖10的多個像素中的每一個的坐標(biāo)(X,Y),計算一組新的坐標(biāo)(X,Y)以產(chǎn)生旋轉(zhuǎn)后的位圖40,其中T是旋轉(zhuǎn)的角度。公式1<formula>formulaseeoriginaldocumentpage6</formula>可以將公式1表達(dá)為公式2。<formula>formulaseeoriginaldocumentpage6</formula>公式1和公式2使用逆時針旋轉(zhuǎn)來計算新的坐標(biāo)。然而,由于傳統(tǒng)的顯示設(shè)備或打印設(shè)備使用順時針旋轉(zhuǎn),所以應(yīng)該使用順時針的坐標(biāo)變換公式。公式3示出了順時針坐標(biāo)變換公式。公式3<formula>formulaseeoriginaldocumentpage6</formula>可以通過將公式3應(yīng)用到組成源位圖10的像素來獲得映射旋轉(zhuǎn)后的位圖40的坐標(biāo)。因此,可以通過讀取源位圖10的像素、計算新坐標(biāo)并利用新坐標(biāo)存儲源位圖IO的像素值來生成旋轉(zhuǎn)后的位圖40。位圖存在于整數(shù)坐標(biāo)系統(tǒng)中,而在諸如公式3的坐標(biāo)變換公式中使用的cos(T)和sin(T)通常是實數(shù)。因此,在計算新坐標(biāo)時使用的值執(zhí)行實數(shù)計算,從而,相當(dāng)降低了數(shù)字計算的速度。另外,由于計算后的新坐標(biāo)也包括實數(shù),所以并不是源位圖IO的每個像素的所有坐標(biāo)都映射旋轉(zhuǎn)后的位圖40,并且源位圖10的多個像素可能映射到旋轉(zhuǎn)后的位圖40的一個像素,如圖2中所示。在圖2中,如果源位圖10的兩個像素映射到旋轉(zhuǎn)后的位圖40的一個像素,則旋轉(zhuǎn)后的位圖40就有一個黑像素(blackpixel),其沒有被從源位圖10的任何像素映射到。插補(bǔ)引擎30將插入算法應(yīng)用于旋轉(zhuǎn)后的位圖40,以校正黑像素。然而,由于有插補(bǔ)引擎30執(zhí)行的插入算法的特性,這可能導(dǎo)致在數(shù)字計算的速度上的降低。因此,傳統(tǒng)的位圖旋轉(zhuǎn)系統(tǒng)使用實數(shù)數(shù)據(jù)來為源位圖10的所有像素執(zhí)行計算,并且使用插入算法來4丸行后4吏正(after-correction),從而其4毛費(fèi)相當(dāng)長的時間來計算位圖旋轉(zhuǎn)。
發(fā)明內(nèi)容本總發(fā)明構(gòu)思提供一種通過將Bresenham直線算法應(yīng)用于位圖旋轉(zhuǎn)而具有快速計算速度的圖像變換裝置及其圖像變換方法。本總發(fā)明構(gòu)思的其他方面和效用將部分地在后面的描述中給出,以及將部分地從描述中顯而易見,或者可以通過實踐本總發(fā)明構(gòu)思來學(xué)到。本總發(fā)明構(gòu)思的上述和/或其他方面可以通過提供一種用于旋轉(zhuǎn)位像的裝置來實現(xiàn),該裝置包括邊緣信息計算器,用于使用位圖信息來計算關(guān)于與源位圖的預(yù)定邊緣相對應(yīng)的旋轉(zhuǎn)后的位圖的邊緣的信息;直線信息計算器,用于使用旋轉(zhuǎn)后的位圖的邊緣信息來計算直線信息以生成旋轉(zhuǎn)后的位圖;以及位圖生成器,用于使用旋轉(zhuǎn)后的位圖的邊緣信息和直線信息來生成最終的旋轉(zhuǎn)后的位圖。位圖信息可以包括用于旋轉(zhuǎn)源位圖的旋轉(zhuǎn)角度、源位圖的大小、旋轉(zhuǎn)后的位圖的大小、源位圖的色彩、對應(yīng)于源位圖的像素信息。該裝置還可以包括坐標(biāo)提取器,其用于使用位圖信息來提取源位圖的邊緣的角坐標(biāo)(cornercoordinate)。邊緣信息計算器可以根據(jù)下面的公式來計算旋轉(zhuǎn)后的位圖的邊緣信息X=XXCOSy=—yxsin(r)+}xcos(r)其中,(x,y)是源位圖的邊緣的角坐標(biāo),T是用于旋轉(zhuǎn)源位圖的旋轉(zhuǎn)角度,(X,Y)是與源位圖的邊緣的角坐標(biāo)相對應(yīng)的旋轉(zhuǎn)后的位圖的邊緣的角坐標(biāo)。源位圖的邊緣可以包括在源位圖中彼此相鄰的第一邊緣和第二邊緣。邊緣信息計算器可以計算與第一邊緣和第二邊緣的接觸點(contactpoint)的坐標(biāo)、第一邊緣的另一角的坐標(biāo)以及第二邊緣的另一角的坐標(biāo)相對應(yīng)的第一角坐標(biāo)、第二角坐標(biāo)以及第三角坐標(biāo)。該裝置還可以包括擴(kuò)展表生成器,用于生成擴(kuò)展表,其中,考慮源位圖的大小和旋轉(zhuǎn)后的位圖的大小,將源位圖的像素重復(fù)預(yù)定次數(shù)。直線信息計算器可以計算邊緣信息的Bresenham因數(shù),并且參考Bresenham因數(shù)計算直線信息。直線信息可以包括直線的運(yùn)動方向和運(yùn)動距離,以生成構(gòu)成在旋轉(zhuǎn)后的位圖中彼此相鄰的構(gòu)成第三邊緣和第四邊緣的直線。當(dāng)運(yùn)動方向改變的任何時候,直線信息計算器可以重新計算運(yùn)動距離。位圖生成器可以重復(fù)將源位圖映射到與沿著直線的運(yùn)動方向的運(yùn)動距離相對應(yīng)的旋轉(zhuǎn)后的位圖的操作。本總發(fā)明構(gòu)思的上面和/或其他方面和效用也可以通過提供一種旋轉(zhuǎn)位像的方法來實現(xiàn),該方法包括使用位圖信息計算關(guān)于與源位圖的預(yù)定邊緣相對應(yīng)的旋轉(zhuǎn)后的位圖的邊緣的信息;使用旋轉(zhuǎn)后的位圖的邊緣信息來計算直線信息以生成旋轉(zhuǎn)后的位圖;以及使用旋轉(zhuǎn)后的位圖的邊緣信息和直線信息來生成最終的旋轉(zhuǎn)后的位圖。位圖信息可以包括用于旋轉(zhuǎn)源位圖的旋轉(zhuǎn)角度、源位圖的大小、旋轉(zhuǎn)后的位國的大小、源位圖的色彩、以及對應(yīng)于源位圖的像素信息。該方法還包括使用位圖信息來提取源位圖的邊緣的角坐標(biāo)。邊緣信息的計算可以包括根據(jù)下面的公式計算的旋轉(zhuǎn)后的位圖的邊緣信白<formula>formulaseeoriginaldocumentpage9</formula>其中,(x,y)是源位圖的邊緣的角坐標(biāo),T是用于旋轉(zhuǎn)源位圖的旋轉(zhuǎn)角度,(X,Y)是與源位圖的邊緣的角坐標(biāo)相對應(yīng)的旋轉(zhuǎn)后的位圖的邊緣的角坐標(biāo)。源位圖的邊緣可以包括在源位圖中彼此相鄰的第一邊緣和第二邊緣。邊緣信息的計算可以包括可以計算與第一邊緣和第二邊緣的接觸點(contactpoint)的坐標(biāo)、第一邊緣的另一角的坐標(biāo)以及第二邊緣的另一角的坐標(biāo)相對應(yīng)的第一角坐標(biāo)、第二角坐標(biāo)以及第三角坐標(biāo)。該方法還可以包括生成擴(kuò)展表,其中,考慮源位圖的大小和旋轉(zhuǎn)后的位圖的大小,將源位圖的像素重復(fù)預(yù)定次數(shù)。直線信息的計算可以包括計算邊緣信息的Bresenham因數(shù),并且參考Bresenham因數(shù)計算直線信息。直線信息可以包括直線運(yùn)動的方向和直線運(yùn)動的距離,以生成構(gòu)成在旋轉(zhuǎn)后的位圖中彼此相鄰的第三邊緣和第四邊緣的直線。Bresenham因數(shù)的計算可以包括計算直線運(yùn)動的運(yùn)動方向和直線運(yùn)動的距離以生成構(gòu)成在旋轉(zhuǎn)后的位圖中彼此相鄰的第三邊緣和第四邊緣的直線。直線信息的計算還包括當(dāng)運(yùn)動方向改變的任何時候,重新計算運(yùn)動距離。生成最終旋轉(zhuǎn)后的位圖可以包括重復(fù)沿著直線運(yùn)動方向?qū)⒃次粓D映射到與運(yùn)動距離相對應(yīng)的旋轉(zhuǎn)后的位圖的操作。本總發(fā)明構(gòu)思的上述和/或其他方面和效用還可以通過提供一種用于旋轉(zhuǎn)源位圖的裝置來實現(xiàn),該裝置包括直線信息計算器,用于計算對應(yīng)于源位圖的旋轉(zhuǎn)后的位圖的邊緣的Bresenham因數(shù),以及用于參考Bresenham因數(shù)來計算直線信息;以及位圖生成器,用于基于來自直線信息計算器的計算來生成最終旋轉(zhuǎn)后的位圖。該位圖生成器可以通過沿著水平方向和對角方向移動源位圖的像素來生成最終旋轉(zhuǎn)后的位圖。該裝置還可以包括擴(kuò)展表生成器,用于考慮源位圖的大小和旋轉(zhuǎn)后的位圖的大小,生成其中源位圖的像素被重復(fù)了預(yù)定次數(shù)的擴(kuò)展表。本總發(fā)明構(gòu)思的上述和/或其他方面和效用還可以通過提供一種旋轉(zhuǎn)源位圖的方法來實現(xiàn),該方法包括計算對應(yīng)于源位圖的旋轉(zhuǎn)后的位圖的邊緣的Bresenham因數(shù);參考Bresenham因數(shù)來計算直線信息;以及基于所有計算生成最終旋轉(zhuǎn)后的位圖。該方法還包括通過在水平方向和對角方向移動源位圖的像素來生成最終旋轉(zhuǎn)后的位圖。該方法還包括考慮源位圖的大小和旋轉(zhuǎn)后的位圖的大小來生成擴(kuò)展表,其中,源位圖的像素被重復(fù)了預(yù)定次數(shù)。從以下結(jié)合附圖的實施例的詳細(xì)描述中,本總發(fā)明構(gòu)思的這些和/或其他方面和效用將變得明顯并且將更容易被理解,在附圖中圖1是圖示傳統(tǒng)的位圖旋轉(zhuǎn)系統(tǒng)的視圖;圖2是圖示傳統(tǒng)的位圖旋轉(zhuǎn)系統(tǒng)中的坐標(biāo)變換誤差的視圖;圖3是根據(jù)本總發(fā)明構(gòu)思的示例性實施例的圖像變換裝置的方框圖;圖4是圖示源位圖和旋轉(zhuǎn)后的位圖的示意圖;圖5圖示了整數(shù)坐標(biāo)空間中的點的運(yùn)動;圖6A-圖6B圖示直線(straightline)的位圖映射結(jié)果;圖7圖示整數(shù)坐標(biāo)空間中的直線生成;圖8圖示使用Bresenham直線算法的直線生成;圖9A-圖9C圖示由圖3的擴(kuò)展表生成器生成的擴(kuò)展表;圖10圖示由圖3的位圖生成器旋轉(zhuǎn)的最終位圖;以及圖11是圖示根據(jù)本總發(fā)明構(gòu)思的示例性實施例的圖像變換方法的流程圖。貫穿附圖,相同的附圖標(biāo)記將被理解為表示相同的元件、特征和結(jié)構(gòu)。具體實施例方式現(xiàn)在將詳細(xì)參考本總發(fā)明構(gòu)思的實施例,在附圖中圖示了其示例,在附圖中自始至終相同附圖標(biāo)記表示相同元素。為了解釋本總發(fā)明構(gòu)思,下面通過參考附圖來描述實施例。圖3是根據(jù)本總發(fā)明構(gòu)思的示例性實施例的圖像變換裝置的方框圖,圖4是圖示源位圖和旋轉(zhuǎn)后的位圖的示意圖。在圖3中,根據(jù)本總發(fā)明構(gòu)思的示例性實施例的位像旋轉(zhuǎn)裝置100包括坐標(biāo)提取器110、邊緣信息計算器120、直線信息計算器130、擴(kuò)展表生成器140以及位圖生成器150。參考圖3和圖4,坐標(biāo)提取器110使用位圖信息提取源位圖200的一個邊緣的角坐標(biāo),并且將角坐標(biāo)提供給邊緣信息計算器120。位圖信息可以包括用于旋轉(zhuǎn)源位圖200的旋轉(zhuǎn)角度、源位圖200的大小、旋轉(zhuǎn)后的位圖300的大小、源位圖200的色彩以及對應(yīng)于源位圖200的像素信息。如果位像旋轉(zhuǎn)裝置100是計算機(jī),則位圖信息被從窗口圖形設(shè)備接口(GDI)提供到坐標(biāo)提取器110。源位圖200的某個邊緣指在源位圖200中彼此相鄰的第一邊緣和第二邊緣。在圖4中,源位圖200的上邊緣是第一邊緣El,在圖中與第一邊緣E1相鄰的邊緣是第二邊緣E2。第一邊緣El和第二邊緣E2彼此接觸以形成角,所以角的坐標(biāo)重疊。因此,坐標(biāo)提取器110提取第一邊緣El和第二邊緣E2的接觸點的坐標(biāo)(xl,yl)、第一邊緣E1的另一角的坐標(biāo)(x2,y2)以及第二邊緣E2的另一角的坐標(biāo)(x3,y3)。位圖信息可以包括源位圖200的第一邊緣E1和第二邊緣E2的其它角的坐標(biāo)。因此,不需要坐標(biāo)提取器IIO。邊緣信息計算器120使用位圖信息或從坐標(biāo)提取器IIO提供的邊緣的角坐標(biāo)來計算旋轉(zhuǎn)后的位圖300的、與源位圖200的一個邊緣相對應(yīng)的邊緣信自邊緣信息計算器120使用公式4計算旋轉(zhuǎn)后的位圖300的邊緣信息,其中,(x,y)是源位圖200的一個角的坐標(biāo),T是用于旋轉(zhuǎn)源位圖200的旋轉(zhuǎn)角,以及(X,Y)是旋轉(zhuǎn)后的位圖300的、與源位圖200的邊緣的角坐標(biāo)相對應(yīng)的角坐標(biāo)。公式4解釋順時針坐標(biāo)變換如下。公式4<formula>formulaseeoriginaldocumentpage11</formula>邊緣信息計算器120使用由坐標(biāo)提取器110提取的源位圖200的邊緣的角坐標(biāo),來計算旋轉(zhuǎn)后的位圖300的、與源位圖200的角相對應(yīng)的第一角坐標(biāo)、第二角坐標(biāo)以及第三角坐標(biāo)。邊緣信息計算器120僅計算旋轉(zhuǎn)后的位圖300的、與源位圖200的角相對應(yīng)的第一角坐標(biāo)、第二角坐標(biāo)以及第三角坐標(biāo),所以當(dāng)與計算所有像素的坐標(biāo)的傳統(tǒng)方法相比較時,根據(jù)本總發(fā)明構(gòu)思的實施例的位圖旋轉(zhuǎn)計算的速度是相同的。由坐標(biāo)提取器110提取的坐標(biāo)是第一邊緣E1和第二邊緣E2的接觸點的坐標(biāo)(xl,yl)、第一邊緣E1的另一角的坐標(biāo)(x2,y2)以及第二邊緣E2的另一角的坐標(biāo)(x3,y3)。因此,邊緣信息計算器120使用公式4計算旋轉(zhuǎn)后的位圖300的第三邊緣E3和第四邊緣E3的角坐標(biāo)(XI,Yl)、(X2,Y2)以及(X3,n)。在公式5中列出了使用公式4在邊緣信息計算器120中計算旋轉(zhuǎn)后的位圖300的第三邊緣E3和第四邊緣E4的角坐標(biāo)(X1,Yl)、(X2,Y2)以及(X3,Y3)的方法。旋轉(zhuǎn)后的位圖300的第三邊緣E3和第四邊緣E4是通過旋轉(zhuǎn)源位圖200的第一邊緣E1和第二邊緣E2而生成的邊緣,并且因此分別對應(yīng)于源位圖200的第一邊緣E1和第二邊緣E2。此外,旋轉(zhuǎn)后的位圖300的第三邊緣E3和第四邊緣E4的每個角表示第一角、第二角以及第三角。公式5Jf=^xcos(77)+力xsin(r)K=-xtxsin(r)+y、xcos(r)Z2=x2xcos(r)+少2xsin(r)72=-x2xsin(r)+_y2xcos(r)I3=x3xcos(r)十_y3xsin(r)73=-x3xsin(r)十;/3xcos(r)直線信息計算器130使用由邊緣信息計算器120計算的旋轉(zhuǎn)后的位圖300的邊緣信息,來計算旋轉(zhuǎn)后的位圖300的直線信息。直線信息包括直線的運(yùn)動方向和運(yùn)動距離,以生成構(gòu)成在旋轉(zhuǎn)后的位圖中彼此相鄰的第三邊緣E3和第四邊緣E4的直線。直線信息計算器130可以計算對應(yīng)于邊緣信息的Bresenham因數(shù),并且參考Bresenham因數(shù)計算直線信息。此外,直線信息計算器130在每次直線的運(yùn)動方向改變時都重新計算運(yùn)動距離,并且應(yīng)用重新計算的運(yùn)動距離來生成最終旋轉(zhuǎn)后的位圖。由直線信息計算器130使用Bresenham直線算法計算的Bresenham因數(shù)被用于旋轉(zhuǎn)源位圖200,這在下面參考圖5-圖7詳細(xì)描述。擴(kuò)展表生成器140考慮位圖信息中的源位圖200的大小和旋轉(zhuǎn)后的位圖300的大小而生成擴(kuò)展表,其中源位圖200的像素被重復(fù)預(yù)定次數(shù)。下面參考圖8詳細(xì)描述擴(kuò)展表生成器140。位圖生成器150使用由邊緣信息計算器120計算的邊緣信息(即,旋轉(zhuǎn)后的位圖的角坐標(biāo))和由直線信息計算器130計算的直線信息來生成最終旋轉(zhuǎn)后的位圖。如果源位圖200的大小與旋轉(zhuǎn)后的位圖300的比率為1:1,則位圖生成器150將源位圖200的每個像素映射到旋轉(zhuǎn)位圖300的對應(yīng)像素。然而,如果旋轉(zhuǎn)位圖300的大小大于源位圖200的大小,則使用由擴(kuò)展表生成器140生成的擴(kuò)展表來將源位圖200映射到旋轉(zhuǎn)后的位圖300。位圖生成器150重復(fù)通過沿著由直線信息計算器130確定的直線的運(yùn)動方向運(yùn)動與運(yùn)動距離相對應(yīng)的距離而將源位圖200映射到旋轉(zhuǎn)后的位圖300的操作。下面參考圖9詳細(xì)描述位圖生成器150。圖5圖示了整數(shù)坐標(biāo)空間中的點的運(yùn)動,圖6A-圖6B圖示了直線的位圖映射結(jié)果,圖7圖示了整數(shù)坐標(biāo)空間中的直線生成,圖8圖示使用brehensam直線算法所生成的直線。參考圖5-圖8,描述了Bresenham直線算法,其確定在直線信息計算器130中被參考用來計算直線信息的Bresenham因數(shù)。如在1965年的"Algorithmsforcomputercontrolofadigitalplotter"中描迷的,Bresenham直線生成包括如下方法,其中將由不^丸行實數(shù)計算而產(chǎn)生的提高的計算速度與傳統(tǒng)直線生成方法進(jìn)行比較。此夕卜,在1985年Bresenham發(fā)表的"Runlengthslicealgorithmsforincrementallines"中描述了具有在1965年發(fā)表的方法上增加的計算速度的方法。由直線信息計算器130計算的Bresenham因數(shù)遵循1985年發(fā)表的直線生成方法。因此,省略了1965年發(fā)表的直線生成方法,這里描述1985年發(fā)表的直線生成方法。參考圖5,從一點到另一點的運(yùn)動可以是水平方向或?qū)蔷€方向。因此,如圖5中所示,當(dāng)前點A可以運(yùn)動到點B或點C。直線的斜率可以具有小于Tan—Ul/2)的角度,并且連接點A到點B或連接點A到點C的直線從左到右開始,即增加x-值的方向?;谏鲜銮疤?,在圖6B中圖示了被用來繪制圖6A中的直線的數(shù)字化的直線的位圖存儲器映射的結(jié)果。如圖6B中所示,通過重復(fù)地在水平方向運(yùn)動一定距離、在對角線方向運(yùn)動一定距離、以及然后再在水平方向運(yùn)動一定距離,來映射直線。如果對角線運(yùn)動出現(xiàn)的規(guī)則已知的話,則可能比在1965年發(fā)表的直線生成方法中減少一些計算。參考圖6B,當(dāng)像素具有初始坐標(biāo)(Ai,i)時,如果另一像素的位置是(Ai+1,i+l),則執(zhí)行對角線方向中的運(yùn)動。當(dāng)像素的y值增加值1時,y值增加并且出現(xiàn)對角線方向中的運(yùn)動。圖7圖示圖5的整數(shù)坐標(biāo)空間中的理想直線。通過選擇坐標(biāo)(Ai,i)之后的下一像素,而出現(xiàn)對角線方向中的運(yùn)動。假設(shè)x軸坐標(biāo)Ai具有介于0和dx之間的值,y軸坐標(biāo)i具有介于0和dy之間的值,則可以使用公式6計算與x坐標(biāo)Ai和Ai+1的中值相對應(yīng)的y軸值bi。公式66,=/+0.5=:£^),/=0,1,.."(辦一1)如果將表示直線y=(dy/dx)x的公式代入利用bi表示y軸坐標(biāo)的公式6,則可以使用公式7來計算x軸坐標(biāo),以表示在對角線方向中的運(yùn)動之前的左手下方像素的x軸坐標(biāo)。公式7x=血(1+2/),,'-0,1"."(辦一1)2辦由于x是根據(jù)變量i變化的實數(shù),所以如果假設(shè)數(shù)字化的x值為Ai,則可以在圖6中計算x值A(chǔ)i。因此,將INT[x]定義為不超過x的最大整數(shù)。例如,INT[2.5]為2。下面在公式8中給出簡化公式。公式8血2=鮮,1^gSA=血0/0辦,0""辦-1)血M=(gl)一2辦/=血%2辦,如果0為偶數(shù),則N=R,否則,N=R+dy7;=(TV+2及)%2辦,0^/《(辦-1)j!口果&+2i)<2dy,貝'J7;+,=2i<formula>formulaseeoriginaldocumentpage15</formula>如果(7;+2i)〈0,貝寸&+1=5,。如果(z;+2W)^2辦,則=5",+1。可以使用公式8計算Ai,如公式9中所示。公式9<formula>formulaseeoriginaldocumentpage15</formula>可以從公式IO導(dǎo)出公式11。公式11^口果(7;+2W)22辦,貝寸=e。如果(7;+2i)〈2辦,貝寸//,+1=g—1。因此,取決于(r,+2i)和2辦的值,運(yùn)動距離7/,+1可以為Q或Q-l。公式12基于A,其確定水平運(yùn)動的大小為(7;+2i)-2辦。公式12如果£),<0,則使用=g—1并更新/),+1=/),+2*,或者15+2,72辦可以使用公式9來計算圖6中的水平運(yùn)動距離Hi+1,如公式10所示,公式10<formula>formulaseeoriginaldocumentpage15</formula>如果<formula>formulaseeoriginaldocumentpage16</formula>,則使用H=Q并更新<formula>formulaseeoriginaldocumentpage16</formula>可以使用公式13來計算初始點的運(yùn)動距離//。。公式13<formula>formulaseeoriginaldocumentpage16</formula>可以使用公式14來計算最終點的運(yùn)動距離公式14<formula>formulaseeoriginaldocumentpage16</formula>上面公式基于作為r""-'(l/2)的直線斜率。當(dāng)直線斜率介于7W'(l/2)和45°之間時,上面假設(shè)可以推廣到所有斜率。通過將上面公式中的x和y進(jìn)行交換,來允許將假設(shè)斜率介于0°和45°之間的上面公式應(yīng)用于介于45°和90°之間的斜率,并且通過應(yīng)用管理其它象限中的直線與介于0°和90。之間的直線的關(guān)系的對應(yīng)規(guī)則來允許將上面公式應(yīng)用于那些象限。在滿足條件辦<血<2辦的直線中,Q通常為1以及M通常為0。這意味著水平運(yùn)動通常為1或0,從而運(yùn)動距離是沒有意義的。然而,具有介于(T和r朋-'(l/2)之間的dy/dx斜率的直線與具有介于r朋-'(l/2)和45°之間的dx/(dx-dy)斜率的直線完全對稱。具有介于0°和r朋-'(i/2)之間的斜率的直線的水平運(yùn)動和對角線運(yùn)動與具有介于r"""(i/2)和圖8圖示通常的八分線(octantline),其在坐標(biāo)(Xs,Ys)開始并且在坐標(biāo)(Xt,Yt)結(jié)束。通過參考圖8更容易解釋使用圖5-圖7描述的Bresenham直線算法。參考圖3-圖8,為了利用使用Bresenham直線算法計算的Bresenham因數(shù)來生成旋轉(zhuǎn)后的位圖300,直線信息計算器130可以計算直線信息。因此,可以使用Bresenham因數(shù)在旋轉(zhuǎn)后的位圖300的所有方向中生成直線。圖9A-圖9C圖示使用圖3的擴(kuò)展表生成器140生成的擴(kuò)展表。參考圖3-圖9C,如果源位圖200和旋轉(zhuǎn)后的位圖300具有相同的寬度和高度,則不需要由擴(kuò)展表生成器140生成擴(kuò)展表。然而,源位圖200和旋轉(zhuǎn)后的位圖300不是總具有相同的寬度和高度。例如,打印才幾可以通iU立伸源位圖200來生成旋轉(zhuǎn)后的位圖300。圖9A圖示源位圖200的一部分。擴(kuò)展表生成器140擴(kuò)展圖9A的源位圖200的該部分以變成擴(kuò)展表,其中每個像素都重復(fù)預(yù)定次數(shù),如圖9B所示。由于生成擴(kuò)展表的方法與用于縮小或擴(kuò)展圖像的傳統(tǒng)的圖像按比例縮放的方法相同,所以省略了該方法的詳細(xì)描述。如圖9C中所示,旋轉(zhuǎn)后的位圖300的寬度對應(yīng)于對角線的長度而不是如圖9B中所示的13個像素。圖9B的拉伸后的1個像素位圖是在考慮了擴(kuò)展表生成器140中的圖9A的源位圖的寬度和圖9C的旋轉(zhuǎn)后的位圖的寬度的情況下生成的中間位圖。即,圖9B的具有寬度13的中間位圖被映射到圖9C的位圖。在這種情況下,圖9C的旋轉(zhuǎn)后的位圖的寬度不是13個像素。擴(kuò)展表生成器140通過考慮圖9A的源位圖的寬度與圖9C的旋轉(zhuǎn)后的位圖的寬度的比率可以獲得對應(yīng)于圖9A的每個像素的拉伸因數(shù),以從圖9A的源位圖生成圖9B的中間位圖。擴(kuò)展表生成器140可以將拉伸因數(shù)存儲在與圖9A中圖示的源位圖一樣寬的映射空間中。如果存儲了值2、3、2、3和3,則可以使用與兩次X1、三次X2、兩次X3、三次X4和三次X5相對應(yīng)的比率來生成圖9B的中間位圖。盡管在該示例性實施例中僅描述了x軸拉伸,但是也可以通過使用上述方法來獲得用于拉伸y軸的像素值。由擴(kuò)展表生成器140生成的擴(kuò)展表包括在旋轉(zhuǎn)源位圖200之前獲得的信息,并且完全不影響位圖旋轉(zhuǎn)計算。因此,在旋轉(zhuǎn)位圖之后不需要傳統(tǒng)的附力口4#才卜。圖10圖示由圖3的位圖生成器150旋轉(zhuǎn)的最終位圖。參考圖3、圖4和圖10,位圖生成器150將由擴(kuò)展表生成器140生成的擴(kuò)展表映射到旋轉(zhuǎn)后的位圖300。參考由邊緣信息計算器120計算的旋轉(zhuǎn)后的位圖300的第一角坐標(biāo)到第三角坐標(biāo)(XI,Yl)、(X2,Y2)和(X3,Y3),位圖生成器150沿著連接第一角到第三角的直線將擴(kuò)展表與旋轉(zhuǎn)后的位圖300對應(yīng)起來。在圖10中,直線S1連接第一角和第二角,并且沿著y軸位于直線Sl之下一個像素的直線包括S2、S3.....SH。同樣,直線L1連接第一角和第三角,并且沿著X軸位于直線L1之右一個像素的直線包括L2、L3.....LW。位圖生成器150參考由直線信息計算器130計算的Bresenham因數(shù),基本上等于對應(yīng)運(yùn)動地在直線Sl的方向上映射位圖。圖10圖示在直線Sl的方向上出現(xiàn)對角線運(yùn)動的任何時候被更新為包括值4、5、6和3的運(yùn)動距離。位圖生成器150沿著直線Sl映射位圖,然后沿著直線Ll運(yùn)動一個像素,然后再利用4、5、6和3的運(yùn)動距離沿著直線S2映射位圖。即,位圖生成器150在沿著水平直線S1的水平方向上映射4個像素、在對角線地運(yùn)動1個像素之后水平地映射5個像素、在對角線地運(yùn)動1個像素之后水平地映射6個像素、以及在對角線地運(yùn)動1個像素之后水平地映射3個像素。隨后,位圖生成器150運(yùn)動到直線S2以映射相同的運(yùn)動距離。重復(fù)該過程直到直線SH。在位圖生成器150利用4、5、6和3的運(yùn)動距離從直線Sl到直線SH映射了所有位圖之后,源位圖200被變換為最終旋轉(zhuǎn)后的位圖300,其以如圖4中所示的某個角度旋轉(zhuǎn)。圖11是圖示根據(jù)本總發(fā)明構(gòu)思的圖像變換方法的流程圖。此后,參考圖3到圖11描述根據(jù)本總發(fā)明構(gòu)思的示例性實施例的圖像變:換方法。坐標(biāo)提取器IIO使用位圖信息提取源位圖200的某個邊緣的角坐標(biāo)。在操作S400中,坐標(biāo)提取器IIO提取源位圖200的第一邊緣E1和第二邊緣E2的角坐標(biāo)(xl,yl)、(x2,y2)和(x3,y3)的每一對,如圖4中所示。在操作S410中,邊緣信息計算器120使用位圖信息或所提取的角坐標(biāo)(xl,yl)、(x2,y2)和(x3,y3)來計算旋轉(zhuǎn)后的位圖300的邊緣信息。此時,邊緣信息計算器120使用公式4計算旋轉(zhuǎn)后的位圖300的邊緣信息。參考圖4,由邊緣信息計算器120計算的旋轉(zhuǎn)后的位圖300的邊緣信息包括坐標(biāo)(XI,Yl)、(X2,Y2)和(X3,Y3)。在操作S420中,直線信息計算器130使用所計算的旋轉(zhuǎn)后的位圖300的邊緣信息來計算邊緣信息的Bresenham因數(shù),并且參考Bresenham因數(shù)確定用于位圖映射的運(yùn)動方向和運(yùn)動距離。在操作S430中,擴(kuò)展表生成器140考慮到源位圖200的大小和旋轉(zhuǎn)后的位圖300的大小而生成擴(kuò)展表,其中源位圖200的像素被重復(fù)一定次數(shù)。如果源位圖200的大小和旋轉(zhuǎn)后的位圖300的大小的比率為1:1,則不需要操作S430。位圖生成器150順序地沿著直線Sl、S2、S3.....SH的方向?qū)U(kuò)展表與旋轉(zhuǎn)后的位圖300相映射,如圖IO所示。在位圖生成器150中生成最終旋轉(zhuǎn)后的位圖300遵循如圖10中所示的相同的操作(S440)。為了解釋本總發(fā)明構(gòu)思的效果,表1示出了在使用在1965年和1985年公開的Bresenham因數(shù)的位圖旋轉(zhuǎn)的情況下對計算速度進(jìn)行仿真的結(jié)果。仿真的第一條件包括位圖的初始坐標(biāo)為(0,G),并且通過改變最高行的位置來將仿真重復(fù)幾次,以便增強(qiáng)可靠度。仿真的第二條件包括對大約A4紙的1/4、2/4、3/4和4/4大小的位圖進(jìn)行仿真。A4紙具有大約4800像素的寬度和大約6400像素的高度。仿真的第三條件包括對大位圖進(jìn)行仿真。例如,在該仿真中使用的位圖具有20000寬和100000高。仿真的第四條件包括對具有介于0°和45。之間的斜率的18-20個位圖的旋轉(zhuǎn)進(jìn)行仿真,而每次按照半個位圖的寬度來改變y坐標(biāo)。表l<table>tableseeoriginaldocumentpage19</column></row><table><table>tableseeoriginaldocumentpage20</column></row><table>可以通過重復(fù)根據(jù)上面四個條件的仿真來獲得表1。如圖1所示,使用在1985年公開的Bresenham因數(shù)具有比在1965年公開的Bresenham因數(shù)增加45°/。的計算速度。使用上面的位像旋轉(zhuǎn)方法的位像旋轉(zhuǎn)裝置可能是使用位像的寬范圍的裝置的任何一個,諸如多媒體顯示裝置、游戲的應(yīng)用程序或者打印裝置。根據(jù)本總發(fā)明構(gòu)思的位像旋轉(zhuǎn)裝置和位像旋轉(zhuǎn)方法可以通過使用Bresenham直線算法執(zhí)行位圖旋轉(zhuǎn)計算的整數(shù)計算,來提高位像的旋轉(zhuǎn)計算速度。盡管已經(jīng)示出并描述了本總發(fā)明構(gòu)思的一些實施例,但是本領(lǐng)域技術(shù)人員應(yīng)該懂得在不偏離本總發(fā)明構(gòu)思的原理和精神的前提下,可以在這些實施例中作出改變,本總發(fā)明構(gòu)思的范圍由所附權(quán)利要求書及其等效物來限定。權(quán)利要求1.一種用來旋轉(zhuǎn)位像的裝置,該裝置包括邊緣信息計算器,用于使用位圖信息計算關(guān)于與源位圖的預(yù)定邊緣相對應(yīng)的旋轉(zhuǎn)后的位圖的邊緣的信息;直線信息計算器,用于使用所述旋轉(zhuǎn)后的位圖的邊緣信息計算直線信息以生成旋轉(zhuǎn)后的位圖;以及位圖生成器,用于使用所述旋轉(zhuǎn)后的位圖和所述直線信息生成最終旋轉(zhuǎn)后的位圖。2.如權(quán)利要求l所述的裝置,其中所述位圖信息包括旋轉(zhuǎn)角度,用于旋轉(zhuǎn)所述源位圖;所述源位圖的大??;所述旋轉(zhuǎn)后的位圖的大小;所述源位圖的色彩;以及對應(yīng)于所述源位圖的像素信息。3.如權(quán)利要求l所述的裝置,還包括坐標(biāo)提取器,用于使用所述位圖信息提取所述源位圖的邊緣的角坐標(biāo)。4.如權(quán)利要求l所述的裝置,其中所述邊緣信息計算器根據(jù)下面的公式計算所述旋轉(zhuǎn)后的位圖的邊緣信息Z=XXCOSy=-xxsin(r)十少xcos(71)其中(x,y)為所述源位圖的邊緣的角坐標(biāo),T是用于旋轉(zhuǎn)源位圖的旋轉(zhuǎn)角度,以及(X,Y)是與所述源位圖的邊緣的角坐標(biāo)相對應(yīng)的所述旋轉(zhuǎn)后的位圖的邊緣的角坐標(biāo)。5.如權(quán)利要求l所述的裝置,其中所述源位圖的邊緣包括在所述源位圖中彼此相鄰的第一邊緣和第二邊緣。6.如權(quán)利要求5所述的裝置,其中所述邊緣信息計算器計算與所述第一邊緣和所述第二邊緣的接觸點的坐標(biāo)、所述第一邊緣的另一角的坐標(biāo)、以及所述第二邊緣的另一角的坐標(biāo)相對應(yīng)的第一角坐標(biāo)、第二角坐標(biāo)、以及第三角坐標(biāo)。7.如權(quán)利要求2所述的裝置,還包括擴(kuò)展表生成器,用于考慮所述源位圖的大小和所述旋轉(zhuǎn)后的位圖的大小而生成擴(kuò)展表,其中所述源位圖的像素被重復(fù)預(yù)定次數(shù)。8.如權(quán)利要求l所述的裝置,其中所述直線信息計算器計算用于所述邊緣信息的Bresenham因數(shù),并且參考Bresenham因數(shù)計算所迷直線信息。9.如權(quán)利要求8所述的裝置,其中所述直線信息包括直線的運(yùn)動方向和運(yùn)動距離,用于生成構(gòu)成在所述旋轉(zhuǎn)后的位圖中彼此相鄰的第三邊緣和第四邊緣的直線。10.如權(quán)利要求9所述的裝置,其中所述直線信息計算器在所述運(yùn)動方向改變的任何時候都重新計算所述運(yùn)動距離。11.如權(quán)利要求IO所述的裝置,其中所述位圖生成器沿著所述直線的運(yùn)動方向與所述運(yùn)動距離相對應(yīng)地重復(fù)將所述源位圖映射到所述旋轉(zhuǎn)后的位圖的操作。12.—種旋轉(zhuǎn)位像的方法,該方法包括使用位圖信息計算關(guān)于與源位圖的預(yù)定邊緣相對應(yīng)的旋轉(zhuǎn)后的位圖的邊緣的信息;使用所述旋轉(zhuǎn)后的位圖的邊緣信息來計算直線信息,以生成所述旋轉(zhuǎn)后的位圖;以及使用所述旋轉(zhuǎn)后的位圖的邊緣信息和直線信息生成最終旋轉(zhuǎn)后的位圖。13.如權(quán)利要求12所述的方法,其中所述位圖信息包括用于旋轉(zhuǎn)所述源位圖的旋轉(zhuǎn)角度;所述源位圖的大?。凰鲂D(zhuǎn)后的位圖的大??;所述源位圖的色彩;以及對應(yīng)于所述源位圖的像素信息。14.如權(quán)利要求12所述的方法,還包括使用所述位圖信息提取所述源位圖的邊緣的角坐標(biāo)。15.如權(quán)利要求12所述的方法,其中在所述計算邊緣信息中,根據(jù)下面的公式計算所述旋轉(zhuǎn)后的位圖的邊緣信息<formula>formulaseeoriginaldocumentpage3</formula>其中(x,y)為所述源位圖的邊緣的角坐標(biāo),T是用于旋轉(zhuǎn)源位圖的旋轉(zhuǎn)角度,以及(X,Y)是與所述源位圖的邊緣的角坐標(biāo)相對應(yīng)的所述旋轉(zhuǎn)后的位圖的邊緣的角坐標(biāo)。16.如權(quán)利要求12所述的方法,其中所述源位圖的邊緣包括在所述源位圖中彼此相鄰的第一邊緣和第二邊緣。17.如權(quán)利要求16所述的方法,其中在所述計算邊緣信息中,計算與所述第一邊緣和所述第二邊緣的接觸點的坐標(biāo)、所述第一邊緣的另一角的坐標(biāo)、以及所述第二邊緣的另一角的坐標(biāo)相對應(yīng)的第一角坐標(biāo)到第三角坐標(biāo)。18.如權(quán)利要求13所述的方法,還包括考慮所述源位圖的大小和所述旋轉(zhuǎn)后的位圖的大小而生成擴(kuò)展表,其中所述源位圖的像素被重復(fù)預(yù)定次數(shù)。19.如權(quán)利要求12所述的方法,其中所述計算直線信息包括計算用于所述邊緣信息的Bresenham因數(shù);以及參考Bresenham因數(shù)計算所述直線信息。20.如權(quán)利要求19所述的方法,其中所述直線信息包括直線的運(yùn)動方向和運(yùn)動距離,用于生成構(gòu)成在所述旋轉(zhuǎn)后的位圖中彼此相鄰的第三邊緣和第四邊緣的直線。21.如權(quán)利要求19所述的方法,其中在所述計算Bresenham因數(shù)中,計算直線的運(yùn)動方向和運(yùn)動距離,以生成構(gòu)成在旋轉(zhuǎn)后的位圖中彼此相鄰的第三邊緣和第四邊緣的直線。22.如權(quán)利要求21所述的方法,其中所述計算直線信息還包括在所述運(yùn)動方向改變的任何時候都重新計算所述運(yùn)動距離。23.如權(quán)利要求22所述的方法,其中在所述生成最終旋轉(zhuǎn)的位圖的過程中,重復(fù)沿著所述直線的運(yùn)動方向與所述運(yùn)動距離相對應(yīng)的將所述源位圖映射到所述旋轉(zhuǎn)后的位圖的操作。24.—種用于旋轉(zhuǎn)源位圖的裝置,該裝置包括直線信息計算器,用于計算用于與所述源位圖相對應(yīng)的旋轉(zhuǎn)后的位圖的邊緣的Bresenham因數(shù),以及用于參考所述Bresenham因數(shù)計算直線信息;以及位圖生成器,用于基于來自所述直線信息計算器的計算結(jié)果而生成最終旋轉(zhuǎn)后的位圖。25.如權(quán)利要求24所述的裝置,其中所述位圖生成器通過在水平方向和對角線方向移動所述源位圖的像素來生成所述最終旋轉(zhuǎn)后的位圖。26.如權(quán)利要求25所述的裝置,還包括擴(kuò)展表生成器,用于考慮所述源位圖的大小和所述旋轉(zhuǎn)后的位圖的大小來生成擴(kuò)展表,其中所述源位圖的像素被重復(fù)預(yù)定次數(shù)。27.—種旋轉(zhuǎn)源位圖的方法,該方法包括計算用于與所述源位圖相對應(yīng)的旋轉(zhuǎn)后的位圖的邊緣的Bresenham因數(shù);參考所述Bresenham因數(shù)計算直線信息;以及基于所有計算結(jié)果,生成最終旋轉(zhuǎn)后的位圖。28.如權(quán)利要求27所述的方法,還包括通過在水平方向和對角線方向運(yùn)動所述源位圖的像素,來生成所述最終旋轉(zhuǎn)后的位圖。29.如權(quán)利要求28所述的方法,還包括考慮所述源位圖的大小和所述旋轉(zhuǎn)后的位圖的大小而生成擴(kuò)展表,其中所述源位圖的像素被重復(fù)預(yù)定次數(shù)。全文摘要提供了一種用于旋轉(zhuǎn)位像的位像變換裝置和方法。該裝置包括邊緣信息計算器,用于使用位圖信息計算關(guān)于與源位圖的預(yù)定邊緣相對應(yīng)的旋轉(zhuǎn)后的位圖的邊緣的信息;直線信息計算器,用于使用旋轉(zhuǎn)后的位圖的邊緣信息來計算直線信息以生成旋轉(zhuǎn)后的位圖;以及位圖生成器,用于使用旋轉(zhuǎn)后的位圖的邊緣信息和直線信息來生成最終旋轉(zhuǎn)后的位圖。因此,可以增強(qiáng)位像旋轉(zhuǎn)的計算速度。文檔編號G06T3/60GK101114378SQ20071010393公開日2008年1月30日申請日期2007年5月15日優(yōu)先權(quán)日2006年7月25日發(fā)明者李承勉申請人:三星電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
布拖县| 腾冲县| 嘉义县| 大同县| 高碑店市| 西畴县| 布尔津县| 桦川县| 涟源市| 手游| 嘉善县| 达孜县| 报价| 陵川县| 和平区| 黄龙县| 卓尼县| 永寿县| 遂平县| 通榆县| 昭平县| 永定县| 鄯善县| 石首市| 武邑县| 天等县| 临夏市| 大同市| 长武县| 怀集县| 浏阳市| 眉山市| 浑源县| 静宁县| 闻喜县| 台江县| 抚州市| 长沙县| 当涂县| 田东县| 赫章县|