国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種在紋理內存中存儲圖像的方法及裝置與流程

      文檔序號:11063923閱讀:705來源:國知局
      一種在紋理內存中存儲圖像的方法及裝置與制造工藝

      本申請涉及計算機信息處理技術領域,特別涉及一種在紋理內存中存儲圖像的方法及裝置。



      背景技術:

      隨著計算機技術的發(fā)展,對圖像處理的應用越來越廣泛。在對圖像進行處理的過程中,通常需要為圖像先申請一塊紋理內存,將圖片存儲在紋理內存中進行圖像處理。對于計算機顯卡,如果圖像紋理的寬和高是2的冪次,其處理圖像的速度會比較快。

      現有的在紋理內存中存儲圖像的方法通常包括:為圖像申請一塊紋理內存,所述紋理內存的寬為大于等于圖像原始寬度且為2的冪次,所述紋理內存的高為大于等于圖像原始高度且為2的冪次,所述冪次的值通常選取可用范圍內的最小值。例如,大小為100像素x100像素的圖像,其紋理內存的大小為128像素x128像素。將所述圖像存儲在所述申請的紋理內存中。

      在實現本申請過程中,發(fā)明人發(fā)現現有技術中至少存在如下問題:現有的在紋理內存中存儲圖像的方法中,紋理內存的大小是按照大于或等于圖像高度或寬度的2的冪次,一些情況下,例如對于大小為65像素x65像素的圖像,為了滿足圖像紋理寬高為2的冪次的要求,紋理的大小為128像素x128像素,紋理內存的大小比實際圖像的大小要大很多,因此現有的在紋理內存中存儲圖像的方法可能會浪費大量的內存,同時也降低了圖像的處理速度。



      技術實現要素:

      本申請實施例的目的是提供一種在紋理內存中存儲圖像的方法及裝置,以節(jié)省內存,從而提高圖像的處理速度。

      為解決上述技術問題,本申請實施例提供一種在紋理內存中存儲圖像的方法及裝置是這樣實現的:

      一種在紋理內存中存儲圖像的方法,包括:

      獲取圖像的尺寸信息;

      基于所述圖像的尺寸信息,確定所述圖像對應的紋理內存尺寸;

      基于所述紋理內存尺寸對所述圖像進行切割,得到多個圖像塊,并按照預設存儲規(guī)則在所述紋理內存中存儲所述切割得到的多個圖像塊。

      一種在紋理內存中存儲圖像的裝置,包括:圖像尺寸獲取單元、紋理內存尺寸確定單元和圖像切割存儲單元;其中,

      所述圖像尺寸獲取單元,用于獲取圖像的尺寸信息;所述尺寸信息包括:所述圖像在第一方向的第一尺寸和在第二方向的第二尺寸;

      所述紋理內存尺寸確定單元,用于基于所述圖像尺寸信息,確定所述圖像對應的紋理內存尺寸;

      所述圖像切割存儲單元,用于基于所述紋理內存尺寸對所述圖像進行切割,得到多個圖像塊,按照預設存儲規(guī)則在所述紋理內存中存儲所述切割得到的多個圖像塊。

      由以上本申請實施例提供的技術方案可見,本申請實施例上述實施例公開的一種在紋理內存中存儲圖像的方法,采用切割圖像的方式,可以將切割后的圖像塊方法紋理內存中,相比于現有技術,可以節(jié)省一半的紋理內存空間,從而可以提高圖像處理的速度。

      附圖說明

      為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。

      圖1是本申請本申請在紋理內存中存儲圖像的方法一個實施例的流程圖;

      圖2是本申請在紋理內存中存儲圖像的方法一個實施例中圖像切割和存儲示意圖;

      圖3是本申請在紋理內存中存儲圖像的裝置一個實施例的模塊圖。

      具體實施方式

      本申請實施例提供一種在紋理內存中存儲圖像的方法及裝置。

      為了使本技術領域的人員更好地理解本申請中的技術方案,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├绢I域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本申請保護的范圍。

      圖1是本申請在紋理內存中存儲圖像的方法一個實施例的流程圖,如圖1所示,所述在紋理中存儲圖像的方法可以包括:

      S101:獲取圖像的尺寸信息。

      所述圖像的尺寸信息可以包括第一方向的第一尺寸和第二方向的第二尺寸。所述第一方 向與第二方向可以為正交方向。所述第一方向可以為水平方向或豎直方向。例如,當所述第一方向可以為豎直方向時,所述第一尺寸可以為圖形的高度,第二方向可以為水平方向,所述第二尺寸可以為圖形的寬度。

      S102:基于所述圖像尺寸信息,確定所述圖像對應的紋理內存尺寸。

      基于所述圖像的尺寸信息,可以確定所述圖像對應的紋理內存尺寸。具體地,所述紋理內存尺寸可以包括:對應于所述圖像第一尺寸的第一內存尺寸值和對應于所述圖像第二尺寸的第二內存尺寸值。其中,所述第一內存尺寸值可以為:大于或等于第一尺寸且為2的冪次的值的二分之一。所述第二內存尺寸值可以為:大于或等于第二尺寸且為2的冪次的值。

      例如,對于大小為65像素x65像素的圖像,假設高為65像素,是所述圖像的第一尺寸;寬為65像素,是所述圖像的第二尺寸。那么,大于或等于第一尺寸且為2的冪次的值為128像素,大于或等于第二尺寸且為2的冪次的值為128像素。所述第一內存尺寸值可以為64像素,所述第二內存尺寸值可以為128像素。那么與所述圖像對應的紋理內存尺寸為64像素x128像素。

      S103:基于所述紋理內存尺寸對所述圖像進行切割,得到多個圖像塊,并按照預設存儲規(guī)則在所述紋理內存中存儲所述切割得到的多個圖像塊。

      基于所述紋理內存尺寸,可以對所述圖像進行切割,得到多個圖像塊。具體可以包括:對所述圖像在第一方向上進行切割,得到至少三個圖像塊。所述切割得到的至少三個圖像塊可以對應三個圖像區(qū)域,分別為第一圖像區(qū)域、第二圖像區(qū)域和第三圖像區(qū)域。所述第一圖像區(qū)域和第三圖像區(qū)域可以分別對應所述圖像切割后在第一方向兩端的第一圖像塊和第三圖像塊。所述第二圖像區(qū)域可以對應所述圖像切割后位于第一圖像區(qū)域和第二圖像區(qū)域之間的一個或多個圖像塊。

      所述第一圖像塊和第三圖像塊的第一方向的尺寸值可以等于所述第一內存尺寸值的二分之一。可以進一步對所述第二圖像區(qū)域的圖像塊按照第一切割規(guī)則進行切割,得到多個二次切割圖像塊。

      所述對第二圖像區(qū)域的圖像塊按照第一規(guī)則進行切割,具體可以包括:可以計算所述第二區(qū)域的圖像塊在第二方向上切割的最小次數;根據計算得到的最小次數,可以在所述第二方向上對所述第二圖像區(qū)域的圖像塊進行切割。

      其中,計算所述第二圖像區(qū)域的圖像塊在第二方向上切割的最小次數,具體可以包括: 可以確定所述切割后圖像的第二方向的最大尺寸值;根據所述第二圖像區(qū)域圖像塊的第二方向的尺寸值和所述切割后圖像的第二方向的最大尺寸值,計算第二圖像區(qū)域的圖像塊在所述第二方向上切割的最小次數。例如,所述第二圖像區(qū)域圖像塊的第二方向的尺寸值為M,切割后圖像的第二方向的最大尺寸值為N,那么所述第二方向上切割的最小次數可以為大于M/N的整數。

      在一個實施例中,所述切割后圖像的第二方向的最大尺寸值可以等于所述紋理內存中剩余內存尺寸第二方向的尺寸值。

      在另一個實施例中,所述切割后圖像的第二方向的最大尺寸值,可以等于所述紋理內存中剩余內存尺寸第二方向的尺寸值減去第二方向包邊像素值。其中,所述第二方向包邊像素值可以根據第二方向上所述切割后圖像的切割邊數目來確定,例如有M個切割邊,則第二方向的包邊像素值可以為M。在所述紋理內存中為所述存儲的圖像塊預留包邊像素值,可以保證圖像在處理及放大的時候不會出現不連續(xù)的邊緣。

      在另一個實施方式中,在第二方向上對所述第二圖像區(qū)域的圖像塊進行切割后,所述方法還可以包括:計算所述切割得到的二次切割圖像塊在第二方向的累積尺寸值是否大于所述紋理內存的剩余內存的第二方向的尺寸值;若大于,可以對所述切割后的最后一個二次切割圖像塊在第一方向進一步進行切割。對所述切割后的最后一個二次切割圖像塊在第一方向進一步進行切割,可以采用與切割第二圖像區(qū)域圖像塊相同的方法,即按照第一切割規(guī)則進行切割,其中切割方向可以與切割第二圖像區(qū)域的圖像塊的方向為正交關系??梢匀绱搜h(huán)進行切割,直至切割后的圖像塊可以全部存儲至紋理內存中。

      對所述圖像進行切割后,可以按照預設存儲規(guī)則在所述紋理內存中存儲所述多個圖像塊,具體可以包括:可以將所述第一圖像塊和第三圖像塊在第一方向沿著所述紋理內存的邊緣進行存儲。當對第二圖像區(qū)域圖像塊進行進一步切割后,所述按照預設存儲規(guī)則在所述紋理內存中存儲所述圖像塊,還可以包括:將所述對第二圖像區(qū)域圖像塊進一步切割得到的二次切割圖像塊在所述紋理內存的剩余內存中進行存儲。其中,所述對第二圖像區(qū)域圖像塊切割得到的二次切割圖像塊可以相鄰于所述第一圖像塊和第三圖像塊進行存儲,并且,所述對第二圖像區(qū)域的圖像塊切割得到的多個二次切割圖像塊可以沿第一方向進行排列存儲。

      所述切割和存儲的過程可以為:切割結束后再進行存儲,也可以為切割和存儲交替進行。例如,切割得到的三個圖像區(qū)域的圖像塊后,可以先存儲第一圖像區(qū)域和第三圖像區(qū)域的圖像塊,然后對第二圖像區(qū)域的圖像塊進行進一步切割,再對第二圖像區(qū)域的圖像塊進行切割得到的二次圖像塊進行存儲。

      在另一個實施方式中,所述在紋理中存儲圖像的方法還可以包括:計算所述切割得到的多個圖像塊在紋理內存中的紋理坐標。

      具體地,可以根據所述圖像塊距離紋理內存起始頂點的距離來計算。所述起始頂點可以是所述紋理內存的左上角頂點。例如,假設紋理內存的大小為一個切割出的圖像塊的頂點為v,頂點v距離紋理內存左上角頂點的距離分別為vx和vy,那么該圖像塊頂點v的紋理坐標可以為

      下面結合實際應用場景介紹本申請在紋理內存中存儲圖像的方法。

      假設獲取到一個矩形的圖像,假設其寬(相當于第二方向)和高(相當于第一方向)分別為picWidth(相當于第二尺寸)和picHeight(相當于第一尺寸)。

      基于所述第一尺寸和所述第二尺寸,可以確定所述圖像對應的紋理內存尺寸。具體地,大于或等于第一尺寸且為2的冪次的值為大于或等于第二尺寸且為2的冪次的值為其中n1和n2為大于或等于0的整數??梢詫⒓y理內存的高度(相當于第一內存尺寸)設為即為現有技術中紋理內存高度的一半,可以將紋理內存的寬度(相當于第二內存尺寸)設為那么,此時紋理內存的尺寸為

      基于所述紋理內存尺寸,可以對所述圖像進行切割,得到多個圖像塊。并按照預設存儲規(guī)則將所述多個圖像塊存儲至紋理內存中。

      圖2是本申請在紋理內存中存儲圖像的方法一個實施例中圖像切割和存儲示意圖。圖中填充的紋理相同的部分可以表示相同的圖像塊。

      如圖2所示,可以將圖像在高度方向進行切割,將圖像切割為上中下三個圖像塊。

      為了使圖像在放大的時候不會出現不連續(xù)的邊緣,可以在所述紋理內存中為所述存儲的圖像塊預留包邊像素值,那么,切割的上圖像塊和下圖像塊的高度可以為寬度可以為中間圖像塊的高度可以為寬度可以為可以將上圖像塊和下圖像塊依次存儲在所述紋理內存的左側區(qū)域。

      可以進一步對中間圖像塊進行豎切,由所述紋理內存漲可以存儲的圖像塊的寬度為所以所述中間圖像塊切割得到的圖像塊的寬可以為計算可以“豎切”的最小次數,此時的待切割的中間圖像塊的寬度可以為切割出的塊的寬度可以為可以計算得到“豎切”的最小次數為1次,可以切割出2個圖像塊??梢詫⑶懈畛龅膱D像塊按從上到下的順序放入所述紋理內存中剩余的內存區(qū)域。若所 述“豎切”得到的2個圖像塊的高度的和大于內存中剩余尺寸的高度值那么,可以對所述“豎切”得到的最后一個圖像塊再次進行橫向切割。如此循環(huán),直至切割出的圖像塊可以完全存放至紋理內存中。

      進一步地,還可以計算每個圖像塊四個頂點的紋理坐標。

      上述實施例公開的一種在紋理內存中存儲圖像的方法,采用切割圖像的方式,可以將切割后的圖像塊方法紋理內存中,相比于現有技術,可以節(jié)省一半的紋理內存空間,從而可以提高圖像處理的速度。進一步地,采用將圖像切割為至少三個圖塊的方式對圖像進行切割,需要進行二次切割的圖像塊中不包含原來圖像的頂角,當所述圖像的頂角不是直角時,可以方便快捷地計算圖像的紋理坐標。進一步地,在對圖像進行切割時為切割得到的圖像塊預留包邊像素值,可以保證切割后的圖像在處理及放大的時候不會出現不連續(xù)的邊緣。

      圖3是本申請在紋理內存中存儲圖像的裝置一個實施例的模塊圖。如圖3所示,所述在紋理內存中存儲圖像的裝置,可以包括:圖像尺寸獲取單元301、紋理內存尺寸確定單元302、圖像切割存儲單元303。其中,

      所述圖像尺寸獲取單元301,可以用于獲取圖像的尺寸信息;所述尺寸信息包括:所述圖像在第一方向的第一尺寸和在第二方向的第二尺寸。

      所述紋理內存尺寸確定單元302,可以用于基于所述圖像尺寸信息,確定所述圖像對應的紋理內存尺寸。

      所述圖像切割存儲單元303,可以用于基于所述紋理內存尺寸對所述圖像進行切割,得到多個圖像塊,按照預設存儲規(guī)則在所述紋理內存中存儲所述切割得到的多個圖像塊。

      上述實施例公開的在紋理內存中存儲圖像的裝置與本申請公開的在紋理內存中存儲圖像的方法實施例相對應,可以實現本申請方法實施例并到達方法實施例的技術效果。

      在20世紀90年代,對于一個技術的改進可以很明顯地區(qū)分是硬件上的改進(例如,對二極管、晶體管、開關等電路結構的改進)還是軟件上的改進(對于方法流程的改進)。然而,隨著技術的發(fā)展,當今的很多方法流程的改進已經可以視為硬件電路結構的直接改進。設計人員幾乎都通過將改進的方法流程編程到硬件電路中來得到相應的硬件電路結構。因此,不能說一個方法流程的改進就不能用硬件實體模塊來實現。例如,可編程邏輯器件(Programmable Logic Device,PLD)(例如現場可編程門陣列(Field Programmable Gate Array,FPGA))就是這樣一種集成電路,其邏輯功能由用戶對器件編程來確定。由設計人 員自行編程來把一個數字系統(tǒng)“集成”在一片PLD上,而不需要請芯片制造廠商來設計和制作專用的集成電路芯片2。而且,如今,取代手工地制作集成電路芯片,這種編程也多半改用“邏輯編譯器(logic compiler)”軟件來實現,它與程序開發(fā)撰寫時所用的軟件編譯器相類似,而要編譯之前的原始代碼也得用特定的編程語言來撰寫,此稱之為硬件描述語言(Hardware Description Language,HDL),而HDL也并非僅有一種,而是有許多種,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)與Verilog2。本領域技術人員也應該清楚,只需要將方法流程用上述幾種硬件描述語言稍作邏輯編程并編程到集成電路中,就可以很容易得到實現該邏輯方法流程的硬件電路。

      控制器可以按任何適當的方式實現,例如,控制器可以采取例如微處理器或處理器以及存儲可由該(微)處理器執(zhí)行的計算機可讀程序代碼(例如軟件或固件)的計算機可讀介質、邏輯門、開關、專用集成電路(Application Specific Integrated Circuit,ASIC)、可編程邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存儲器控制器還可以被實現為存儲器的控制邏輯的一部分。

      本領域技術人員也知道,除了以純計算機可讀程序代碼方式實現控制器以外,完全可以通過將方法步驟進行邏輯編程來使得控制器以邏輯門、開關、專用集成電路、可編程邏輯控制器和嵌入微控制器等的形式來實現相同功能。因此這種控制器可以被認為是一種硬件部件,而對其內包括的用于實現各種功能的裝置也可以視為硬件部件內的結構?;蛘呱踔粒梢詫⒂糜趯崿F各種功能的裝置視為既可以是實現方法的軟件模塊又可以是硬件部件內的結構。

      上述實施例闡明的系統(tǒng)、裝置、模塊或單元,具體可以由計算機芯片或實體實現,或者由具有某種功能的產品來實現。

      為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟件和/或硬件中實現。

      通過以上的實施方式的描述可知,本領域的技術人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實現?;谶@樣的理解,本申請的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,在一個典型的配置中,計算設 備包括一個或多個處理器(CPU)、輸入/輸出接口、網絡接口和內存。該計算機軟件產品可以包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執(zhí)行本申請各個實施例或者實施例的某些部分所述的方法。該計算機軟件產品可以存儲在內存中,內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內存是計算機可讀介質的示例。計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(CD-ROM)、數字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括短暫電腦可讀媒體(transitory media),如調制的數據信號和載波。

      本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。

      本申請可用于眾多通用或專用的計算機系統(tǒng)環(huán)境或配置中。例如:個人計算機、服務器計算機、手持設備或便攜式設備、平板型設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費電子設備、網絡PC、小型計算機、大型計算機、包括以上任何系統(tǒng)或設備的分布式計算環(huán)境等等。

      本申請可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網絡而被連接的遠程處理設備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設備在內的本地和遠程計算機存儲介質中。

      雖然通過實施例描繪了本申請,本領域普通技術人員知道,本申請有許多變形和變化而不脫離本申請的精神,希望所附的權利要求包括這些變形和變化而不脫離本申請的精神。

      當前第1頁1 2 3 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1