新四季網

用於存儲和取回圖像數據的技術的製作方法

2023-05-11 09:20:46 1

專利名稱:用於存儲和取回圖像數據的技術的製作方法
技術領域:
本文公開的主題總體上涉及用於存儲和取回圖像數據的技術。
背景技術:
在諸如計算機遊戲、計算機動畫和醫學成像之類的領域中對於圖形處理的需求是 顯然的。圖形流水線負責渲染圖形。已知了多種圖形流水線配置。例如,在Segal,M.和 Akeley, K.的"The OpenGL Graphics System =ASpecification (Version 2.0),,(2004)禾口 The Microsoft DirectX 9 Programmable Graphics Pipe-line, Microsoft Press (2003) 中說明了流行的渲染流水線架構。當代的流水線具有三個可編程級,一個用於處理頂點 數據(例如,頂點著色器),第二個用於處理幾何圖元(例如,幾何著色器),第三個用於 處理像素片段(fragment)(例如,片段或像素著色器)。Microsoft DirectX 10引入 了幾何著色器和幾何流輸出級。在D. Blythe的「The Direct3D lOSystem」,Microsoft Corporation (2006)中提供了 Direct3D 10系統的概述。DirectX是涉及輸入設備、音頻和 視頻/圖形的一組應用程式接口(API)。


在附圖中示例性而非限制性地示出了本發明的多個實施例,附圖中相似的參考標 號指代相似的單元。圖1以方框圖形式描繪了根據實施例的圖形處理流水線的實例。圖2描繪了根據多個實施例的像素覆蓋遮罩(pixel coverage mask)的常規像素 著色器處理以及圖塊(tile)中的像素覆蓋遮罩的處理的實例。圖3描繪了在由單個核心處理圖塊時的核心利用情況以及在將單個圖塊的處理 分配給多個核心之前及之後的核心利用情況的實例。圖4描繪了圖元和像素覆蓋遮罩的定製光柵化處理的實例。圖5描繪了根據實施例的以緩存模式存儲圖元和像素覆蓋遮罩的方式的流程圖。圖6描繪了根據實施例的以緩存模式取回圖元和像素覆蓋遮罩的方式的流程圖。
具體實施例方式本說明書通篇中對「一個實施例」或「實施例」的提及意思是結合該實施例說明的 具體特徵、結構或特性包括在本發明的至少一個實施例中。因此,本說明書通篇中多個位置 出現的短語「在一個實施例中」或「實施例,,並不一定全都指代相同的實施例。而且,所述 的具體特徵、結構或特性可以被合併在一個或多個實施例中。各個實施例提供了一種用以在圖形流水線中的光柵化級期間或光柵化級之後存 儲圖元屬性和像素覆蓋信息的方式。修剪後(post-Clip)流輸出級使用存儲器中的緩存器 的多個部分來存儲圖元及與圖元相關的像素覆蓋遮罩。被稱為圖塊的屏幕的子區域是屏幕 空間中像素數據的空間相干的集合。按照每圖塊來排序圖元並將其修剪至圖塊邊界,可選地採用像素覆蓋遮罩來進行這些操作。像素覆蓋遮罩確定了像素與圖元的關係。例如,像 素覆蓋遮罩可以標識像素是在圖元中、圖元外還是在圖元的邊緣上。可以以多種方式讀出 並處理所存儲的圖元和像素覆蓋信息。例如,可以並行地或順序地讀出與同一圖塊相關的 像素覆蓋遮罩,並且可以將與同一圖塊相關的多個像素覆蓋遮罩一起進行處理。可以對與 同一圖塊相關聯的像素覆蓋遮罩執行像素處理,以使得處理後的數據在可能的情況下可以 重複用於像素覆蓋遮罩。DirectX 10規定了在幾何著色器中產生修剪後的三角形數據。DirectXlO僅揭示 了在像素著色器中的標量模式的被覆蓋的像素覆蓋遮罩。相對照地,各個實施例藉助於單 指令多數據(SIMD)向量化編碼或者通過在多個核心或線程上並行地運行任務,使得對於 並行地處理整個圖塊而言有多個每圖元像素覆蓋遮罩可用。圖1以方框圖形式描繪了根據實施例的圖形處理流水線100的實例。在各個實施 例中,流水線100是可編程的,至少是基於微軟的DirectX 10或OpenGL 2. 1而可編程的。 在各個實施例中,可以使用一個或多個應用程式接(API)配置全部級。繪製圖元(例如,三 角形、矩形、正方形、直線、點或具有至少一個頂點的形狀)在這個流水線的頂端流入,並被 變換和光柵化為屏幕空間像素,以便在計算機屏幕上繪製。輸入匯集器(assembler)級102用於從多達8個頂點緩存器輸入流收集頂點數 據。可以對其它數量的頂點緩存器輸入流進行收集。在多個實施例中,輸入匯集器級102 還可以支持稱為「實例化(instancing)」的處理,其中,輸入匯集器級102僅用一個繪圖調 用對對象進行幾次複製。頂點著色器(VS)級104用於將頂點從對象空間變換到修剪空間。VS級104用於 讀取單個頂點,並產生單個變換後的頂點作為輸出。幾何著色器級106用於取回單個圖元的頂點,並產生0個或多個圖元的頂點。幾何 著色器級106用於輸出圖元和直線作為頂點的已連接帶。在一些情況下,幾何著色器級106 用於在稱為數據放大的處理中,從來自頂點著色器級的每個頂點發出多達1024個頂點。此 外,在一些情況下,幾何著色器級106用於從頂點著色器級104取得一組頂點,並對其進行 組合以發出較少的頂點。流輸出級108用於將來自幾何著色器級106的幾何數據直接傳遞到存儲器150中 的幀緩存器的一部分中。在數據從流輸出級108移動到幀緩存器後,數據能夠返回到流水 線中的任何點來進行額外的處理。例如,流輸出級108可以以順序的方式將由幾何著色器 級106輸出的頂點信息的子集複製到存儲器150中的輸出緩存器。光柵化級110用於執行諸如修剪、剔除(culling)、片段產生、裁剪(scissoring)、 角度劃分(perspective dividing)、視區變換(viewport transformation)、圖元設置禾口深 度偏移之類的操作。另外,光柵化級110可以執行以下的任意一個或全部將屏幕空間圖 元與圖塊(例如,屏幕的子區域)相關聯以便進行並行化處理;將圖元修剪至圖塊的範圍 (或者在單個圖塊情況下的整個屏幕視區);產生像素覆蓋遮罩,其是由每個圖塊中的圖元 所接觸的像素的列表;和/或為每個被接觸像素產生表面和材料屬性的內插值。光柵化級110用於提供至少一個輸出流。輸出流包括兩個子流一個子流用於圖 元,一個子流用於像素覆蓋遮罩。可以以不同速率輸出子流。可以針對每個光柵化的圖塊 (一旦其變為可用)獨立地使用流數據。這在多線程環境中是有利的,多線程環境中,將工作分配給不同的線程並且對其進行並行處理,同時在圖形流水線中仍然正在產生其它圖塊 的流數據。相關於像素的流水線排序處理,在流水線中將修剪後流輸出級112設置在光柵化 級Iio之後及像素著色級114之前。修剪後流輸出級112用於將圖元流存儲至圖元存儲器 區152的一部分中,並將像素覆蓋遮罩存儲至圖塊存儲器區154的一部分中。在一些情況 下,由光柵化級110產生的像素覆蓋遮罩不存儲在存儲器區154中。在此情況下,不分配存 儲器區154。在多個實施例中,圖元流包括經修剪的屏幕空間圖元,並且是按照繪製順序的,但 不必按照每圖塊進行編組。圖元流包括圖元的屏幕空間頂點位置以及用於定製內插的每頂 點深度信息。基於對於存儲器佔用區域、特徵和性能的應用需求,圖元的其它每頂點屬性包 括紋理坐標、顏色、存在時間、發光度(radiance)、輻照度(irradiance)和深度及可被包 含在流中的那些屬性。在多個實施例中,像素覆蓋流參考圖元,並且按照每修剪後圖元而被編組。像素覆 蓋遮罩定義了哪些屏幕像素被相應的圖元所接觸。在一些實施例中,不存儲這個像素覆蓋 遮罩流。作為替代,由定製的應用側的覆蓋遮罩產生代碼來產生像素覆蓋遮罩。產生像素 覆蓋遮罩的應用知道圖元的頂點位置,並基於頂點位置來判斷像素是否與圖元相關聯。這 個應用可以在存儲器150中分配緩存器,以將像素覆蓋遮罩存儲至存儲器中所分配的區域 中。在多個實施例中,修剪後流輸出級112用於以流模式或以緩存模式將圖元數據及 可任選的像素覆蓋數據存儲至大小可變的存儲器緩存器中,並且其具有連結列表式的表 示,該表示使得能夠按照圖元和像素覆蓋流的繪製順序進行順序地使用。如果產生了像素 覆蓋遮罩,則覆蓋流數據結構包含指向圖元流中其相關圖元的數據結構的指針。在流模式中,由應用在每圖塊回調函數(per-tile call-back function)中處理 圖元數據。在流模式中,僅有該流的若干部分(例如,為一個圖塊的大小)可立即用於該應 用。在流模式中,可以在處理之後重寫圖元和像素覆蓋數據。在應用完成了對該流的該圖 塊大小的部分的處理之後,則該流的該部分可被重寫。這個模式使用了較少的存儲器,使得 在多線程環境中只要數據準備好就能夠處理數據,但不能實現圖塊間的工作共享。在緩存模式中,將用於整個屏幕的數據存儲在緩存器中,並在產生了整個流(例 如,全部圖塊或特定數量或區域的圖塊)之後可由應用對其進行訪問。因此,在緩存模式 中,將一個幀的全部圖塊的像素覆蓋遮罩存儲在圖塊存儲器區154中。圖塊存儲器區154 由修剪後輸出級112填充,並且如果已存儲了一幀的全部圖塊的像素覆蓋遮罩或者已填滿 了圖塊存儲器區154,則一幀的圖塊的像素覆蓋遮罩就可用於處理。一個或多個應用隨後可 以立即處理全部數據。在流模式和緩存模式兩者中,將數據以流形式輸出至在圖形流水線上管理的存儲 器資源,並且數據不是直接可編程的且應用不可直接訪問數據。可以在應用側在每圖塊回 調函數中處理數據。可以在不幹擾應用側的情況下在後續的渲染回次(pass)中將數據以 流形式傳送回流水線,或者將該數據複製到分級資源,從而使其可由應用異步地讀取。圖形 流水線不需要以任何方式對數據流的產生進行調度,因為圖形流水線知道被管理的流存儲 器資源的依存性。如果在後續的渲染回次中使用流輸出數據,或者如果在應用處理完該數據之後可將該數據丟棄,則會發生存儲器資源的依存性。在緩存模式中,應用可以通過請求 在資源上鎖定或者通過異步複製來訪問數據。像素著色器級114用於讀取每個單一像素片段的屬性,並產生具有顏色值和深度 值的輸出片段。輸出合併器級116用於對來自像素著色器級114的片段執行模板和深度測試。在 一些情況下,輸出合併器級116用於執行渲染目標混合。存儲器150可以被實現為以下任何一種或其組合易失性存儲器設備,例如但不 限於隨機存取存儲器(RAM)、動態隨機存取存儲器(DRAM)、靜態RAM(SRAM),或者任何其他 類型的基於半導體的存儲器或磁存儲器。圖2描繪了根據多個實施例的對像素的常規像素著色器處理以及圖塊中像素的 處理的實例。對於在已知的圖形流水線中的常規像素著色器處理,可以將來自圖元的像素 分布在多個像素著色器上進行處理。然而,在多個實施例中,與同一圖塊相關的像素可用於 進行處理。對與同一圖塊相關的像素的處理可以提供優於常規像素著色器的像素處理的一 些優點,但這些優點不是任何實施例的必需特徵。首先,可以針對圖塊中的全部像素預先計 算並重複使用對於單個圖元而言是共用的許多計算。這種計算的實例是用於三角形內測試 (inside-triangle test)和早出策略(early-out strategy)的內插度量。其次,按每圖元 的處理提供了傳送相鄰像素數據的靈活性,並從而在應用側實現了諸如光暈(bloom)和景 深之類的屏幕空間效果。在已知圖形流水線中,圖塊處理局限於幾何或像素著色器中的單個核心。然而,多 個實施例允許使用多個核心來並行地處理圖塊的圖元和像素。在多個實施例中,在光柵化 後圖元和像素的可用性允許對圖元進行圖塊化處理,例如,對圖像子區域的處理。另外,在 光柵化後圖元和像素的可用性允許用以在應用側將工作並行化並重新分配的能力。例如, 多個核心可以並行處理圖元和像素。結果,在光柵化後圖元和像素的可用性與常規圖形流 水線相比實現了相當大的性能提高。對於很多趨於在屏幕空間中具有空間一致性的圖形處理技術,按圖塊順序的訪問 方式實現了相當大的性能優勢。這種排序實現了圖形高速緩存的最佳使用,並避免了高速 緩存誤取數據的性能損失。圖3描繪了在單核心處理圖塊時的核心利用情況以及在將單個圖塊的處理分配 到多個核心之後的核心利用情況的實例。該曲線圖表示隨時間的向量利用情況。曲線圖 302顯示了每個圖塊的工作局限於單個核心。一些核心迅速進入空閒狀態,而其他核心仍處 理工作量大的圖塊。曲線圖304顯示了在多個核心之間重新分配那些圖塊的工作,以實現 好得多的隨時間的核心利用情況。在多個實施例中,光柵化後圖元和像素的可用性使得能夠進行對圖元和像素覆蓋 遮罩的定製處理。在每次要對屏幕的一部分進行渲染時,可以調用回調例程。示例性的回 調例程是圖塊渲染操作。在流模式中,可以通過在實現圖元和像素的定製光柵化處理的回 調例程中增加代碼來增加新的圖形特徵和效果。圖4描繪了圖元和像素的定製光柵化處理的實例。例如,定製的光柵化處理可以 包括不規則的光柵化。不規則的光柵化包括在渲染圖像時利用非2D網格數據結構的光柵 化。例如,對於不規則的光柵化和加陰影應用,應用可以實現定製內插技術,這是由於按照每屏幕頂點來提供圖元專用的表面和材料屬性,並且由於圖元頂點值是可用的。定製內插 可以包括基於圖元頂點值,來確定在偏心像素位置處的表面屬性值。此圖元頂點數據在常 規像素著色器中是不可用的,因為僅為常規像素著色器提供了在像素中心處的內插值。由 使用流輸出的應用進行該定製內插,並且因此那些結果可以由該應用而不是由圖形流水線 使用。作為第二個實例,應用可以選擇放棄光柵化器中的規則的覆蓋遮罩計算,而改為 計算定製的覆蓋遮罩。覆蓋遮罩是用於定義哪些像素被圖元接觸的遮罩。例如,設計者可 以確定將何種規則用於確定像素是否接觸圖元。例如,如果像素僅僅接觸圖元但不在圖元 內部,則定製的覆蓋遮罩可以允許圖元接觸該像素。應用可以使用那些定製的覆蓋遮罩。在 Gregory S. Johnson、William R.Mark 禾口 Christopher A. Burns 的"The Irregular Z-Buffer and its Application to Shadow Mapping」(奧斯丁的德克薩斯大學 計算機科學系的技術報告TR-04-09)中說明了不規則的Z緩存。在該文獻的圖3中,黃色 圓點表示像素內的位置,在這些位置處計算諸如顏色和深度之類的圖元屬性。這個計算稱 為「內插」。參考該文獻的圖3,在傳統圖形流水線中,在像素中心處計算深度。相對照地,對 於不規則的Z緩存,在任意位置處確定深度(也稱為「Z」)。在多個實施例中,對圖元和像 素覆蓋遮罩的存儲允許應用在任意位置處進行內插,此舉用於不規則的Z緩存的實現中。圖5描繪了根據實施例的過程500的流程圖,其示出了用以以緩存模式存儲圖元 和像素的方式。圖5的過程可以由處理器執行的應用來執行。塊502包括在存儲器中分 配圖塊緩存器以存儲與圖塊相關的像素覆蓋遮罩,並且在存儲器中分配圖元緩存器以存儲 圖元。在應用要產生定製的像素覆蓋遮罩的情況下不必執行塊502。例如,在應用要產生定 制的像素覆蓋遮罩的情況下,可以不執行在存儲器中分配圖塊緩存器以存儲與圖塊相關的 像素覆蓋遮罩的操作。在應用要產生定製的像素覆蓋遮罩的情況下,應用可以分配緩存器 以存儲該定製的像素覆蓋遮罩。例如,圖塊可以是4X4像素區域。例如,在以下的偽代碼 中,指令SetFrontEndSOTargets分配這些緩存器。塊504包括發出調用以將圖元屬性從光柵化器存儲至圖元緩存器中,並將與圖 元相關的像素覆蓋遮罩從光柵化器存儲至圖塊緩存器中。在應用要產生定製的像素覆蓋遮 罩的情況下,可以不執行發出調用以將與圖元相關的像素覆蓋遮罩從光柵化器存儲至圖塊 緩存器中的操作。塊506包括禁止將像素覆蓋遮罩和圖元屬性存儲至所分配的緩存器中。例如在 以下的偽代碼中,指令FrontEndSOSetTargets禁止在所分配的緩存器中進行存儲。在應用 要產生定製的像素覆蓋遮罩的情況下,可以不執行禁止將像素覆蓋遮罩存儲至所分配的緩 存器中的操作。圖6描繪了根據實施例的過程600的流程圖,其示出了用以訪問圖元屬性和像素 覆蓋遮罩的方式。過程600可以由主機側的應用執行。塊602包括確定圖元屬性緩存器 和圖塊緩存器的特性。例如,塊602可以包括取回與每個緩存器相關的溢出標誌,並確定 存儲在圖塊緩存器中的圖塊數量。在以下的偽代碼中,指令Query_GetData取回溢出標誌。塊604包括確定是否發生圖塊緩存器和圖元緩存器的溢出。例如,塊604可以 包括基於溢出標誌來確定這些緩存器的溢出。如果檢測到溢出,則該過程可以退出。在 多個實施例中,該過程可以請求圖塊緩存器和圖元緩存器的額外的存儲器,以使得這些緩存器的溢出不會發生。所述額外的存儲器可以大於為溢出的緩存器所分配的存儲空 間。例如,額外的存儲空間可以允許存儲比在圖塊緩存器中所存儲的圖塊更多的圖塊, 以及存儲比在圖元緩存器中所存儲的圖元更多的圖元。例如,在以下的偽代碼中,指令 SetFrontEndSOTargets分配緩存器的大小。因此,在指令SetFrontEndSOTargets的下一次 執行中,可以改變緩存器的大小。塊606包括請求對存儲了圖元屬性及相關像素覆蓋遮罩的緩存器或緩存器的多 個部分進行存儲器鎖定。存儲器鎖定可以包括拒絕其他過程重寫感興趣的緩存器中的數 據。在以下的偽代碼中,指令ViewLock導致鎖定圖塊緩存器的一部分。塊608包括取回所存儲的圖元屬性及相關像素覆蓋遮罩。可以釋放所取回的圖 元數據以便以任何方式進行處理。例如,參考圖4所述的過程可以處理所述圖元和像素數 據。塊610包括釋放緩存器的被鎖定部分的存儲器鎖定。在以下的偽代碼中,指令 ViewUnlock釋放緩存器的被鎖定部分,以使得緩存器可以由其他過程讀取或寫入。以下提供關於存儲圖元和像素(圖5)及訪問所存儲的圖元和像素(圖6)的方式 的偽代碼。/////////////////////////////////////////////////////1.初始化H這些資源是流的句柄,正如普通Omatic資源一樣OMATIC_RESOURCE_HEADER mTriangleStream ;OMATIC_RESOURCE_HEADER mQQuadStream ;//Mode#l-靜態模式,從用戶側分配緩存器,當存儲器滿時停止填充0M_U32x dataSize =...void*data = ArchAlignedMalloc(dataSize,CACHE_LINE_SIZE);0MATIC_F0RMAT format = OMATICFMT_STATIC_STREAMDATA ;0M_U32 flags = OMATIC_BIND_STREAM_OUTPUT|OMATIC_BIND_CPU_READ ;Omatic_ResourceInitBuffer(mpDev, &mTriangleStream,data,pitch, dataSize, format, flags);Omatic_ResourceInitBuffer(mpDev, &mQQuadStream, data+offset, pitch, dataSize, format,flags);//Mode#2-動態模式,使得Omaha管理增長的緩存器0MATIC_F0RMAT format = OMATICFMT_DYNAMIC_STREAMDATA ;Omatic_ResourceInitBuffer(mpDev, &mTriangIeStrearn, NULL,0,0, format, flags);Omatic_ResourceInitBuffer (mpDev, &mQQuadStream, NULL,0,0, format, flags);/////////////////////////////////////////////////////2.渲染時間H實現前端流輸出(靜態或動態)
Omatic_SetFrontEndSOTargets (mpDeν, &mTriangleStream, &mQQuadStream);Omatic_Draw(...);Omatic_Draw(...);//DisableOmatic_FrontEndSOSetTargets (mpDev,0,0) ;// 可選的//////////////////////////////////////x3.輸出流的讀回 Omatic_ViewsSubresourcesEnsureRenderingFinished(mpRenderTarget- > pFullView);OMATIC_QUERY_S0_STATISTICS stats ;Omatic_Query_GetData(&stats) ;//我們需要在渲染時間的開始/結束查詢嗎? assert ( ! stats. Overflow);Omatic_ViewLock(mTriangleStream. pFullView,0,0); Omatic_ViewLock(mQQuadStream. pFullView,0,0);{ const 0MAHA_STREAM0UT_TRIANGLE*triangleData =(const 0MAHA_STREAM0UT_TRIANGLE*)mTriangleStream. pData ;const 0MAHA_STREAM0UT_QQUAD*quadData =(const 0MAHA_STREAM0UT_QQUAD*)mQQuadStream. pData ; const 0MAHA_STREAM0UT_QQUAD*qq = quadData ; for(0M_U64 i = 0 ;i TIndex] dprintf (" QQ ;T#% d, % d% d M ; % x\n" , qq- > TIndex, qq- > X,
qq- > Y, qq- > Mask);++qq ;}}0matic_ViewUnlock(mQQuadStream. pFullView,0); 0matic_ViewUnlock(mTriangleStream. pFullView,0);/////////////////////////////////////////////////// //功能籤名////////////////////////////////////////////////////氺\簡要設定前端(修剪後)流輸出指針。暗示無需後端處理。氺*設定指針為空,以便開啟正常渲染。 氺*\參數PDev是這個調用影響的0MATIC_DEVICE。
參數pTriangleSOTarget是用以接收經修剪的(屏幕空間)三角形的流輸出緩 存器資源
0104]*\參數pQQuadSOTarget是用以接收正方形流的流輸出緩存器資源
0105]*/
0106]void Omatic_SetFrontEndSOTargets(OMATIC_DEVICE*pDev,
0107]0MATIC_RES0URCE_ HEADER^pTriangleSOTarget,
0108]0MATIC_RES0URCE_ HEADER^pQQuadSOTarget
0109]//void^pfOverfIowFunction
0110]);
0111]//流數據格式
0112]typedef struct_0MAHA_STREAM0UT_SCREEN_VERTEX
0113]{
0114]OM FIX8 XX ; // 有符號 24. 8
0115]OM FIX8 YY; //有符號24. 8
0116] OM_F32 ZZ;
0117]0M_FIX8 YY 0M_F32 ZZ }0MAHA_STREAM0UT_SCREEN_VERTEX ;
0118]typedef struct_0MAHA_STREAM0UT_INTERP0LANT
0119]{
0120]0M_F32AA
0121] 0M_F32BB
0122]0M_F32CC
0123]}0MAHA_STREAM0UT_INTERP0LANT ;
0124]typedef struct_0MAHA_STREAM0UT_TRIANGLE
0125]{
0126]0MAHA_STREAM0UT_SCREEN_VERTEX V[3];
0127]0MAHA_STREAM0UT_INTERP0LANT Z ;
0128]}0MAHA_STREAM0UT_TRIANGLE ;
0129]typedef struct_0MAHA_STREAM0UT_QQUAD
0130]{
0131]0M_U32x TIndex ;
0132]0M_U16 Mask ;
0133]0M_U8 X ;
0134] 0M_U8 Y ;
0135]}0MAHA_STREAM0UT_QQUAD ;
0136]本發明的實施例可以實現為以下任何一個或其組合使用主板互連的一個或多個 微晶片或集成電路、硬連線邏輯、由存儲器設備存儲並由微處理器執行的軟體、固件、專用 集成電路(ASIC)和/或現場可編程門陣列(FPGA)。示例性地,術語「邏輯」可以包括軟體或硬體和/或軟體和硬體的組合。可以在多種硬體架構中實現本文所述的圖形和/或視頻處理技術。例如,圖形和/ 或視頻功能可以集成在晶片組中。或者,可以使用分立的圖形和/或視頻處理器。作為再 另一個實施例,可以由包括多核處理器在內的通用處理器來實現圖形和/或視頻功能。在 另一個實施例中,可以在消費電子設備中實現這些功能,例如,可攜式移動計算機或具有用 以顯示由圖形流水線處理的圖像或視頻的顯示設備的行動電話。例如,可以作為可包括一個或多個機器可讀介質的電腦程式產品來提供本發明 的實施例,所述機器可讀介質包括存儲於其上的機器可執行指令,所述機器可執行指令在 由諸如計算機、計算機網絡或其他電子設備之類的一個或多個機器執行時,可以使得所述 一個或多個機器執行根據本發明的實施例的操作。機器可讀介質可以包括但不限於軟盤、 光碟、CD-ROM(壓縮光碟只讀存儲器)和磁光碟、R0M(只讀存儲器)、RAM(隨機存取存儲 器)、EPROM(可擦可編程只讀存儲器)、EEPROM(電可擦可編程只讀存儲器)、磁卡或光卡、 快閃記憶體或適合於存儲機器可執行指令的其他類型的介質/機器可讀介質。附圖和前述說明給出了本發明的實例。儘管被描繪為多個不同的功能項,但本領 域技術人員會意識到,這些單元中的一個或多個也可以組合為單個功能單元。或者,特定單 元可以分裂為多個功能單元。來自一個實施例的單元可以添加到另一個實施例中。例如,可 以改變本文所述的過程的順序,而不局限於本文所述的方式。此外,任何流程圖中的操作都 不必以所示的順序來實現;也並非必然要執行全部的操作。此外,不依賴於其他操作的那些 操作可以與所述其他操作並行地執行。然而,本發明的範圍決不局限於這些具體實例。許多 變更,不論是否在說明書中明確給出,都是可能的,諸如結構、尺寸和材料的使用中的差別。 本發明的範圍至少與所附權利要求書所給出的一致。
權利要求
1.一種計算機實現的方法,包括在存儲器中分配第一緩存器的一部分,以存儲圖元屬性;請求將所述圖元屬性從光柵化器存儲至所述第一緩存器的一部分中;及允許由獨立於圖形流水線的應用訪問所述圖元屬性。
2.如權利要求1所述的方法,其中,所述圖元屬性包括屏幕空間頂點位置和每頂點深度信息。
3.如權利要求2所述的方法,其中,所述圖元屬性進一步包括經修剪的圖塊邊界的確定。
4.如權利要求1所述的方法,其中,所述圖元屬性包括從以下至少一個選擇的每頂點 特性紋理坐標、顏色、存在時間、發光度和輻照度。
5.如權利要求1所述的方法,其中,所述圖元屬性包括繪製順序。
6.如權利要求1所述的方法,進一步包括請求從所述光柵化器接收與所述圖元屬性相關的像素覆蓋遮罩;在存儲器中分配第二緩存器的一部分,以存儲與所述圖元屬性相關的像素覆蓋遮罩;及請求將像素覆蓋遮罩存儲至所述第二緩存器的所述部分中。
7.如權利要求6所述的方法,其中,所述存儲的像素覆蓋遮罩中的至少一個像素覆蓋 遮罩確定至少一個像素與圖元的關係。
8.如權利要求1所述的方法,進一步包括 允許訪問圖元屬性;及允許應用基於選擇的圖元屬性來產生像素覆蓋遮罩,其中,所述選擇的圖元屬性包括 頂點位置和深度。
9.如權利要求8所述的方法,其中,所述像素覆蓋遮罩確定像素是在圖元內、圖元外, 還是在圖元的邊緣上。
10.如權利要求1所述的方法,進一步包括允許訪問像素覆蓋遮罩的圖塊,以便由多個核心並行地處理。
11.如權利要求1所述的方法,進一步包括允許應用至少部分地基於從顏色、深度和坐標中選擇的圖元頂點屬性,在像素的中心 的外部的位置處內插該像素的顏色和深度。
12.一種裝置,包括 存儲器;圖形流水線,其至少包括光柵化器和修剪後流輸出級;及 處理器執行的應用,用以在所述存儲器中分配第一緩存器的一部分,以存儲來自所述光柵化器的圖元屬性; 請求所述修剪後流輸出級將所述圖元屬性存儲至所述第一緩存器的一部分中,及 允許由第二處理器執行的應用訪問所述圖元屬性。
13.如權利要求12所述的裝置,其中,所述圖元屬性包括屏幕空間頂點位置和每頂點 深度信息。
14.如權利要求13所述的裝置,其中,所述圖元屬性確定至圖塊邊界的修剪。
15.如權利要求12所述的裝置,其中,所述圖元屬性包括從以下至少一個選擇的每頂 點屬性紋理坐標、顏色、存在時間、發光度和輻照度。
16.如權利要求12所述的裝置,其中,所述第二應用用以請求從所述光柵化器接收與所述圖元屬性相關的像素覆蓋遮罩;在存儲器中分配第二緩存器的一部分,以存儲與所述圖元屬性相關的像素覆蓋遮罩;及請求將像素覆蓋遮罩存儲至所述第二緩存器的所述部分中。
17.如權利要求16所述的裝置,其中,所述像素覆蓋遮罩確定至少一個像素與圖元的關係。
18.如權利要求12所述的裝置,其中,所述第二應用用以基於選擇的圖元屬性來產生像素覆蓋遮罩,其中,選擇的圖元屬性包括頂點位置和深度。
19.如權利要求18所述的裝置,其中,所述像素覆蓋遮罩確定像素是在圖元內、圖元 外,還是在圖元的邊緣上。
20.如權利要求12所述的裝置,其中,所述第二應用用以 分配像素覆蓋遮罩,以便由多個核心並行地處理。
21.如權利要求12所述的裝置,其中,所述第二應用用以至少部分地基於從顏色、深度和坐標中選擇的圖元屬性,在像素的中心的外部的位置 處內插該像素的顏色和深度。
22.—種系統,包括 顯示器;及 計算機系統,包括圖形流水線,其能夠處理圖像或視頻以便由所述顯示器渲染,其中,所述圖形流水線至 少包括光柵化器和修剪後流輸出級;及 用於以下的邏輯在存儲器中分配第一緩存器的一部分,以存儲來自所述光柵化器的圖元屬性; 請求所述修剪後流輸出級將所述圖元屬性存儲至所述第一緩存器中的一部分中。
23.如權利要求22所述的系統,其中,所述圖元屬性包括屏幕空間頂點位置和每頂點 深度信息。
24.如權利要求22所述的系統,其中,所述存儲的圖元屬性包括從以下至少一個選擇 的每頂點屬性紋理坐標、顏色、存在時間、發光度和輻照度。
25.如權利要求22所述的系統,進一步包括用以執行以下至少一個的邏輯基於所選擇的圖元屬性來產生像素覆蓋遮罩,其中,所選擇的圖元屬性包括頂點位置 和深度;及分配像素覆蓋遮罩,以便由多個核心並行地處理。
全文摘要
本申請提供了用於存儲和取回圖像數據的技術。在圖形流水線中,在光柵化級期間或結束時,修剪後輸出級存儲圖元,並且像素存儲在存儲器的一部分中。在光柵化級期間或結束時圖元和像素的可用性允許實現處理圖元和像素的各種方式。
文檔編號G06T1/60GK101996391SQ20101025817
公開日2011年3月30日 申請日期2010年8月18日 優先權日2009年8月21日
發明者D·布考特, N·加洛坡馮伯裡斯, W·A·胡克斯 申請人:英特爾公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀