两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

圖像的縮放方法

文檔序號:6385046閱讀:340來源:國知局
專利名稱:圖像的縮放方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種圖像處理方法,特別涉及指圖像的縮放的方法。
背景技術(shù)
像素圖像彌補了向量式圖像的缺陷,它能夠制作出色彩和色調(diào)變化豐富的圖像,可以逼真地表現(xiàn)自然界的景象,同時也可以很容易地在不同軟件之間交換文件,但是像素圖像無法制作真正的3D圖像,而且圖像縮放和旋轉(zhuǎn)時會產(chǎn)生失真的現(xiàn)象,同時文件較大,對內(nèi)存和硬盤空間容量的需求也較高。位圖方式就是將圖像的每一像素點轉(zhuǎn)換為一個數(shù)據(jù)。隨著分辨率以及顏色數(shù)的提高,圖像所占用的磁盤空間也就相當大,由于在放大圖像的過程中,其圖像勢必要變得模糊而失真,放大后的圖像像素點實際上變成了像素“方格”。
JPEG、GIF和PNG文件都通過壓縮的方式減少文件大小,然而壓縮帶來的幫助是有限度的,位圖依然比向量圖形大很多。事實上當將像素網(wǎng)格的直徑擴大兩倍,獲得的像素數(shù)量就是原來的四倍。
公知將像素圖像放大的方法是根據(jù)生成目標圖像的大小,預(yù)先從系統(tǒng)中分配到一大塊連續(xù)內(nèi)存,用于存儲還原生成的位圖信息,對圖像的每個像素按比例縮放,經(jīng)平滑Halftone處理之后,直接生成位圖信息,并存儲到內(nèi)存中。這樣的處理方法通常處理速度較慢,而且會占用大量的系統(tǒng)內(nèi)存,有時需要做壓縮處理來節(jié)省內(nèi)存,在系統(tǒng)存在內(nèi)存碎片或沒有足夠大的內(nèi)存時,常常會因為不能申請到所需的大塊內(nèi)存而無法進行處理。

發(fā)明內(nèi)容
本發(fā)明為解決上述問題而提出一種圖像的縮放方法,主要的目的在于提高圖像處理速度的同時,降低系統(tǒng)內(nèi)存的消耗。
所以為達到上述目的,本發(fā)明提供一種圖像的縮放方法,首先確定源圖像到目標圖像的縮放倍數(shù),并根據(jù)該縮放倍數(shù)確定源圖像中的像素在該目標圖像中的相應(yīng)坐標,然后逐行掃描該源圖像,同時將具有相同像素值的相鄰像素合并成像素塊,根據(jù)該像素塊在該目標圖像中的坐標,確定該像素塊的中間格式信息,最后根據(jù)該中間格式信息,將相應(yīng)的像素掛網(wǎng)成網(wǎng)點圖(Halftone),生成相應(yīng)的位像。
本發(fā)明提出了一種圖像的縮放方法,該方法使用像素合并技術(shù),來提高圖像處理速度,并使用存儲技術(shù),來降低系統(tǒng)內(nèi)存消耗,取消對系統(tǒng)大塊連續(xù)內(nèi)存的應(yīng)用需求,在系統(tǒng)存在內(nèi)存碎片時,仍可以進行大塊圖像處理,對于不同的色彩空間本發(fā)明可作相同的處理,并可最終生成各色彩平面的位圖信息。
有關(guān)本發(fā)明的詳細內(nèi)容及技術(shù),配合


如下。

圖1為本發(fā)明所提出的圖像的縮放方法的總體流程圖;圖2為本發(fā)明確定處理方式的流程圖;圖3為本發(fā)明的中間格式信息的示意圖;圖4為本發(fā)明Symbolic command的流程圖;及圖5為本發(fā)明Bitmap Rendering的流程圖。
其中,圖中步驟110確定源圖像到目標圖像的縮放倍數(shù),并根據(jù)該縮放倍數(shù)確定源圖像中的像素在該目標圖像中的相應(yīng)坐標步驟120逐行掃描該源圖像,同時將具有相同像素值的相鄰像素合并成像素塊步驟130根據(jù)該像素塊在該目標圖像中的坐標,確定該像素塊的中間格式信息步驟140根據(jù)該中間格式信息,將相應(yīng)的像素掛網(wǎng)成網(wǎng)點圖生成相應(yīng)的位像步驟210獲得源圖像的寬度與高度步驟220獲得目標圖像的寬度與高度步驟230分別計算圖像的寬度與高度的縮放比例步驟240根據(jù)該寬度與高度的縮放比例計算整體縮放倍數(shù)步驟250大于縮放倍數(shù)閾值?
步驟260選擇Symbolic command圖像處理方式步驟270選擇Bitmap Rendering圖像處理方式310命令標識320像素值330像素塊左上角X坐標值340像素塊左上角Y坐標值350像素右下角X坐標值360像素右下角Y坐標值步驟410根據(jù)縮放倍數(shù)確定源圖像中的像素在該目標圖像中的相應(yīng)坐標步驟420逐行掃描圖像點步驟430將具有相同像素值的相鄰像素合并成像素塊步驟440根據(jù)像素塊確定中間格式信息步驟450獲取圖像的各行像素塊的中間格式信息步驟460逐行根據(jù)中間格式信息對圖像作Halftone Rendering處理步驟470將生成的位圖,直接存儲到系統(tǒng)視頻緩沖區(qū)中步驟510根據(jù)目標圖像大小分配出系統(tǒng)內(nèi)存步驟520根據(jù)縮放倍數(shù)確定源圖像中的像素在該目標圖像中的相應(yīng)坐標步驟530逐行掃描圖像點步驟540將具有相同像素值的相鄰像素合并成像素塊步驟550確定像素塊的中間格式信息步驟560對像素塊作Halftone rendering處理步驟570將生成的目標位圖存儲在分配到的相應(yīng)內(nèi)存塊中具體實施方式
本發(fā)明為一種圖像的縮放方法,首先由圖1中說明本發(fā)明的方法,說明如下首先確定源圖像到目標圖像的縮放倍數(shù),并根據(jù)該縮放倍數(shù)確定源圖像中的像素在該目標圖像中的相應(yīng)坐標(步驟110),然后逐行掃描該源圖像,同時將具有相同像素值的相鄰像素合并成像素塊(步驟120),根據(jù)該像素塊在該目標圖像中的坐標,確定該像素塊的中間格式信息(步驟130),根據(jù)該中間格式信息,將相應(yīng)的像素掛網(wǎng)成網(wǎng)點圖(Halftone),生成相應(yīng)的位像(步驟140)。
對于一幅待處理的圖像其像素色彩空間可能是RGB,CMYK,Gray等,因而會有不同的色彩平面,本發(fā)明提供的方法,對不同的色彩平面可作相同的處理,并可最終生成各色彩平面的Bitmap信息。
請參見圖2,首先根據(jù)獲得源圖像的寬度與高度(步驟210),再獲得目標圖像的寬度與高度(步驟220),然后根據(jù)放大倍數(shù)確定圖像在X及Y方向上的縮放比例(步驟230),從而得出目標區(qū)域中相應(yīng)像素的坐標位置。具體方法為設(shè)第一行第一個像素的左上角X,Y坐標值為(X0,Y0),根據(jù)圖像在X及Y方向上的縮放比例,經(jīng)計算后,在目標系統(tǒng)設(shè)備坐標系行進步長分別為ΔX,ΔY。設(shè)源圖像寬為SrcWidth,高為SrcHeight,目標圖像寬為DesWidth,高為DesHeight,圖像在X及Y方向上的縮放比例為xScale,yScale,整體縮放比例為ScaleRate,因此有ΔX=xScale=DesWidth/SrcWidthΔY=y(tǒng)Scale=DesHeight/SrcHeight可得出整體縮放比例ScaleRate=xScale*yScale(步驟240)然后將整體放大倍數(shù)與放大倍數(shù)閾值相比較(步驟250),如果大于該閾值,則選擇Symbolic command圖像處理方式(步驟260),否則選擇BitmapRendering圖像處理方式(步驟270)。
下面以8x8灰度單平面像素圖像為例對本發(fā)明進行詳細說明,首先設(shè)定放大倍數(shù)閾值,本實施例的放大倍數(shù)閾值為96。(用戶可根據(jù)系統(tǒng)內(nèi)存配置大小,設(shè)定放大倍數(shù)閾值)。
8x8灰度像素圖像的灰度值如下圖所示

首先計算圖像的整體放大倍數(shù),原8x8灰度像素圖像將在X及Y方向上的放大比例分別為12,10,因此整體放大倍數(shù)為12*10=120,然后將整體放大倍數(shù)120與放大倍數(shù)閾值96相比較,由于大于該閾值,因此選擇Symboliccommand圖像處理方式,Symbolic command處理方式的像素塊中間格式信息,如圖3所示,該命令格式占用3個“l(fā)ong”,共計96Bits;第一個long存放“命令標識310及像素灰度值320”信息,第二個long存放“該像素左上角X坐標值330及Y坐標值340”信息,第三個long存放“該像素右下角X坐標值350及Y坐標值360”信息。若用公知的處理方法,將8x8灰度像素圖像放大120倍數(shù),需用內(nèi)存(8*12)*(8*10)/8=960Bytes.若用本發(fā)明的Symbolic command圖像處理方式,將8x8灰度像素圖像放大120倍數(shù),當每一行內(nèi)像素灰度值均不同時,存儲一個像素需用3*32=96Bits,圖像總共8*8=64Pixels,因此需用內(nèi)存(64*96)/8=768Bytes。當一行內(nèi)相鄰像素灰度值有相同情形時,則可用3個“l(fā)ong”記住多個像素信息,此時,所需用內(nèi)存比768Bytes更少。將8x8灰度像素圖像放大120倍,使用Symboliccommand圖像處理方式,至少可節(jié)省192Bytes,對于更大的圖像,可節(jié)省更多的系統(tǒng)內(nèi)存。
確定了圖像的處理方式后,就可以對圖像進行相應(yīng)的處理,請參見圖4,該圖為本發(fā)明Symbolic command的流程圖。首先根據(jù)該縮放倍數(shù)確定源圖像中的像素在該目標圖像中的相應(yīng)坐標(步驟410),然后對圖像點進行逐行掃描(步驟420),將具有相同像素值的相鄰像素合并成像素塊(步驟430),當一行內(nèi)相鄰像素值有相同情形時,則相同像素合并成個一個像素,并進行處理區(qū)域擴充,從圖像第一行第一個像素開始逐行掃描。根據(jù)像素塊確定中間格式信息(步驟440),中間格式信息包括像素塊的命令標識,在此例中,設(shè)定為0x80000000、該像素塊左上角坐標位置以及該像素塊右下角坐標位置。
掃描得第一個像素值為0x23,第一個像素的左上角X,Y坐標值為(X0,Y0),右下角X,Y坐標值為(X0+ΔX,Y0+ΔY),掃描得第二個像素值為0x15,與前者不同,故可得第一個Symbolic command為

第二個像素的左上角X,Y坐標值為(X0+ΔX,Y0),右下角X,Y坐標值為(X0+ΔX+ΔX,Y0+ΔY)=(X0+2ΔX,Y0+ΔY),掃描得第三個像素值為0x15,與前者相同,此時,第三個像素的左上角X,Y坐標值為(X0+ΔX+ΔX,Y0)=(X0+2ΔX,Y0),右下角X,Y坐標值為(X0+ΔX+ΔX+ΔX,Y0+ΔY)=(X0+3ΔX,Y0+ΔY),第二、三個像素合并成一個大像素,掃描得第四個像素值為0x60,與前者不同,故可得第二個Symbolic command為

第四個像素的左上角X,Y坐標值為(X0+3ΔX,Y0),右下角X,Y坐標值為(X0+4ΔX,Y0+ΔY),掃描得第五個像素值為0x17,與前者不同,故可得第三個Symbolic command為

第五個像素的左上角X,Y坐標值為(X0+4ΔX,Y0),右下角X,Y坐標值為(X0+5ΔX,Y0+ΔY),掃描得第六個像素值為0x23,與前者不同,故可得第四個Symbolic command為

第六個像素的左上角X,Y坐標值為(X0+5ΔX,Y0),右下角X,Y坐標值為(X0+6ΔX,Y0+ΔY),掃描得第七個像素值為0x23,與前者不同,此時,第七個像素設(shè)的左上角X,Y坐標值為(X0+6ΔX,Y0),右下角X,Y坐標值為(X0+7ΔX,Y0+ΔY),掃描得第八個像素值為0x72,與前者不同,故可得第五個Symbolic command為

第八個像素的左上角X,Y坐標值為(X0+7ΔX,Y0),右下角X,Y坐標值為(X0+8ΔX,Y0+ΔY),由于是該行最后一個像素,故可得第六個Symboliccommand為

掃描圖像第二行像素,可得六個Symbolic command分別如下

掃描圖像第3,4,5,6,7,8行像素,總共可生成52個Symbolic command,占用內(nèi)存(52*96)/8=624Bytes,比公知直接生成位圖法節(jié)省336Bytes(960-624)。
在系統(tǒng)需要生成黑白位像(Bitmap)時,獲取圖像的各行像素Symbolic command信息(步驟450),對于不同像素,逐行根據(jù)中間格式信息對圖像,根據(jù)該像素的左上角、右下角XY坐標值,及像素值作HalftoneRendering處理(步驟460),并將生成的位圖,直接存儲到系統(tǒng)視頻緩沖區(qū)中(步驟470),以加快圖像處理速度,并有效地使用系統(tǒng)內(nèi)存。
請參見圖5,當原8x8灰度像素圖像將在X及Y方向上的放大比例分別為8,8時,圖像的整體放大倍數(shù)為8*8=64。將圖像整體放大倍數(shù)64與放大倍數(shù)閾值96相比較,由于小于該閾值,此時選擇Bitmap rendering圖像處理方式,因為用此處理方式一個像素占用內(nèi)存64Bits,而用Symboliccommand圖像處理方式則需占用96Bits。根據(jù)圖像縮放后目標圖像大小分配一大塊系統(tǒng)內(nèi)存用以存儲生成的Bitmap(步驟510),如果因為系統(tǒng)存在內(nèi)存碎片,而無法分配到一整大塊內(nèi)存時,此時,采用分塊存儲方案,即將目標區(qū)域大小分割成2小塊區(qū)域,再分別申請內(nèi)存,若存在申請不到的情形,則再將未成功小塊區(qū)域2分成更小的區(qū)域進行內(nèi)存申請,用此方法,可將所需的存儲Bitmap內(nèi)存分塊申請到。例如,假定目標區(qū)域大小為800Kbytes,第一次,按800Kbytes大小向系統(tǒng)申請內(nèi)存,若分配不成功,將800Kbytes分成2個400Kbytes再次分別申請,第二次,按400Kbytes大小向系統(tǒng)申請2塊內(nèi)存,若分配400Kbytes成功一塊,另一塊分配400Kbytes不成功,將不成功的一塊400Kbytes分成2個200Kbytes再次分別申請,第三次,按200Kbytes大小向系統(tǒng)申請2塊內(nèi)存,若分配2塊200Kbytes均分配成功,則完成Bitmaprendering內(nèi)存分配任務(wù),否則重復(fù)上述過程,直至申請到所需的內(nèi)存。
然后根據(jù)圖像的放大倍數(shù)確定ΔX以及ΔY,根據(jù)ΔX以及ΔY確定源圖像中的像素在該目標圖像中的相應(yīng)坐標(步驟520),逐行掃描所有圖像點(步驟530),當一行內(nèi)相鄰像素值有相同情形時,則相同像素合并成個一像素塊(步驟540),掃描過程如同Symbolic command方式,確定像素塊的中間格式信息(步驟550),根據(jù)該中間格式信息作Halftone rendering處理(步驟560)生成目標Bitmap,并存儲在分配到的相應(yīng)內(nèi)存塊中(步驟570)。
將像素塊、只是掃描結(jié)果處理方式不同,一個是生成圖像像素Symboliccommand,一個是進一步作Halftone rendering處理生成目標Bitmap,并存儲在分配到的相應(yīng)內(nèi)存塊中。
對于圖像第一行的像素,Bitmap rendering處理方式如下對區(qū)域(X0,Y0)、(X0+ΔX,Y0+ΔY),作像素值為0x23的Halftonerendering處理并生成Bitmap存儲到該行對應(yīng)的內(nèi)存塊中;合并第2,3個像素,對區(qū)域(X0+ΔX,Y0)、(X0+3ΔX,Y0+ΔY),作像素值為0x15的Halftone rendering處理并生成Bitmap存儲到該行對應(yīng)的內(nèi)存塊中;對區(qū)域(X0+3ΔX,Y0)、(X0+4ΔX,Y0+ΔY),作像素值為0x60的Halftonerendering處理并生成Bitmap存儲到該行對應(yīng)的內(nèi)存塊中;對區(qū)域(X0+4ΔX,Y0)、(X0+5ΔX,Y0+ΔY),作像素值為0x17的Halftonerendering處理并生成Bitmap存儲到該行對應(yīng)的內(nèi)存塊中;合并第6,7個像素,對區(qū)域(X0+5ΔX,Y0)、(X0+7ΔX,Y0+ΔY),作像素值為0x23的Halftone rendering處理并生成Bitmap存儲到該行對應(yīng)內(nèi)存塊中;對區(qū)域(X0+7ΔX,Y0)、(X0+8ΔX,Y0+ΔY),作像素值為0x72的Halftonerendering處理并生成Bitmap存儲到該行對應(yīng)的內(nèi)存塊中;對于圖像第二行的像素,Bitmap rendering處理方式如下對區(qū)域(X0,Y0+ΔY)、(X0+ΔX,Y0+2ΔY),作像素值為0x11的Halftonerendering處理并生成Bitmap存儲到該行對應(yīng)的內(nèi)存塊中;合并第2,3,4個像素,對區(qū)域(X0+ΔX,Y0+ΔY)、(X0+4ΔX,Y0+2ΔY),作像素值為0x27的Halftone rendering處理并生成Bitmap存儲到該行對應(yīng)的內(nèi)存塊中;對區(qū)域(X0+4ΔX,Y0+ΔY)、(X0+5ΔX,Y0+2ΔY),作像素值為0x43的Halftone rendering處理并生成Bitmap存儲到該行對應(yīng)的內(nèi)存塊中;對區(qū)域(X0+5ΔX,Y0+ΔY)、(X0+6ΔX,Y0+2ΔY),作像素值為0x56的Halftone rendering處理并生成Bitmap存儲到該行對應(yīng)的內(nèi)存塊中;對區(qū)域(X0+6ΔX,Y0+ΔY)、(X0+7ΔX,Y0+2ΔY),作像素值為0x21的Halftone rendering處理并生成Bitmap存儲到該行對應(yīng)的內(nèi)存塊中;對區(qū)域(X0+7ΔX,Y0+ΔY)、(X0+8ΔX,Y0+2ΔY),作像素值為0x18的Halftone rendering處理并生成Bitmap存儲到該行對應(yīng)的內(nèi)存塊中;
用相同的方法掃描圖像第3,4,5,6,7,8行像素,作像素Halftonerendering處理并生成Bitmap存儲到該行對應(yīng)的內(nèi)存塊中。
雖然本發(fā)明以前述的較佳實施例公開如上,然其并非用以限定本發(fā)明,故任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),可作一些的變動與改進,因此本發(fā)明的保護范圍以權(quán)利要求為準。
權(quán)利要求
1.一種圖像的縮放方法,其特征在于,包括如下步驟確定源圖像到目標圖像的縮放倍數(shù),并根據(jù)該縮放倍數(shù)確定源圖像中的像素在該目標圖像中的相應(yīng)坐標;逐行掃描該源圖像,同時將具有相同像素值的相鄰像素合并成像素塊;根據(jù)該像素塊在該目標圖像中的坐標,確定該像素塊的中間格式信息;及根據(jù)該中間格式信息,將相應(yīng)的像素掛網(wǎng)成網(wǎng)點圖(Halftone),生成相應(yīng)的位像。
2.如權(quán)利要求1所述的圖像的縮放方法,其特征在于,所述像素塊的中間格式信息包括像素塊的命令標識、該像素塊左上角坐標位置以及該像素塊右下角坐標位置。
3.如權(quán)利要求1所述的圖像的縮放方法,其特征在于,還包括比較該縮放倍數(shù)與該縮放倍數(shù)閾值的步驟。
4.如權(quán)利要求3所述的圖像的縮放方法,其特征在于,所述縮放倍數(shù)閾值為根據(jù)系統(tǒng)內(nèi)存配置設(shè)定的。
5.如權(quán)利要求3所述的圖像的縮放方法,其特征在于,若該縮放倍數(shù)大于縮放倍數(shù)閾值,則同時將所有像素塊掛網(wǎng)成網(wǎng)點圖,生成位像。
6.如權(quán)利要求5所述的圖像的縮放方法,其特征在于,還包括將該位像存儲至系統(tǒng)視頻緩沖區(qū)的步驟。
7.如權(quán)利要求3所述的圖像的縮放方法,其特征在于,若該縮放倍數(shù)小于縮放倍數(shù)閾值,則將該像素塊逐個掛網(wǎng)成網(wǎng)點圖,生成位像。
8.如權(quán)利要求7所述的圖像的縮放方法,其特征在于,還包括將生成的位像分別存儲到系統(tǒng)內(nèi)存的步驟。
9.如權(quán)利要求8所述的圖像的縮放方法,其特征在于,所述系統(tǒng)內(nèi)存為根據(jù)該目標圖像的大小分配的。
全文摘要
本發(fā)明涉及一種圖像的縮放方法,首先確定源圖像到目標圖像的縮放倍數(shù),并根據(jù)該縮放倍數(shù)確定源圖像中的像素在該目標圖像中的相應(yīng)坐標,逐行掃描該源圖像,同時將具有相同像素值的相鄰像素合并成像素塊,然后根據(jù)該像素塊在該目標圖像中的坐標,確定該像素塊的中間格式信息,再根據(jù)該中間格式信息,將相應(yīng)的像素掛網(wǎng)成網(wǎng)點圖(Halftone),生成相應(yīng)的位像。
文檔編號G06T3/40GK1670766SQ20041000876
公開日2005年9月21日 申請日期2004年3月17日 優(yōu)先權(quán)日2004年3月17日
發(fā)明者何軍 申請人:德鑫科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
成武县| 从江县| 思南县| 九龙县| 三门峡市| 三穗县| 温州市| 浙江省| 竹山县| 疏附县| 克什克腾旗| 沁阳市| 繁峙县| 白朗县| 仁布县| 雅江县| 恩施市| 寿宁县| 闻喜县| 格尔木市| 红桥区| 碌曲县| 光泽县| 茂名市| 鱼台县| 抚松县| 喀喇沁旗| 岳普湖县| 商都县| 海盐县| 阿拉善右旗| 淄博市| 莱西市| 吕梁市| 通州区| 宁远县| 内黄县| 东港市| 望奎县| 江津市| 和田市|