1、1蘋果專利降低必要的程式的數量呈現圖像閱讀報告授課老師:陳瑞堂 老師班級:碩研光電一甲學號:MA0L0110姓名:吳明叡2目錄摘要.3一、背景.4二、發明概要.7三、詳細說明.10四、Claims.57五、破解辦法.60圖.61專利參考.723摘要減少內存和計算需求的圖形操作的系統。該系統提供了技術相結合以其他方式個別的操作,適用於過濾器的圖像。合併後的過濾器相結合一個新部分處理器的時間和整個中介形象的創造。該系統還提供這些技術的應用在許多情況下,包括在操作片斷程序在一個可編程的 GPU。4一、 背景在過去的幾年中,已經出現了經圖形子系統放置在所有各種硬體設備日益增加的需求。例如,在一般計算領
2、域,甚至傳統平凡的方案,像簡報軟體,包括動畫和其他工具,需要更快和更複雜的圖形計算。此外,像傳統圖形密集的視頻,照片編輯和遊戲等應用越來越多,無論是在範圍和繪圖強度。此外,垂直系統,如遊戲和圖形專用計算(如任天堂 GameCube 等)加速促進一般計算架構,繪圖至上的競爭甚至更快。在同一時期,硬體製造商尋求滿足和超越的專用圖形處理器不斷的增長能力和不斷增長需求。現在,有幾個市售的圖形處理單元(G PU)是可編程的。雖然可編程和不可編程的 GPU 提供增強圖形計算速度,可編程 GPU 的不同之處在於他們提供了高度的靈活性的措施。例如,可編程 GPU 之前,應用程式可能會決定之間使用的 CPU 時
3、間來呈現一個更有趣的的圖形或使用 GPU 在一個不太理想的圖形顯示成本增加應用程序的總體性能。可編程 GPU 的靈5活性結合的重大舉措之前 GPU 的速度優勢。在實際應用中,可編程的一個重要優勢,因為它允許程序使用的圖形晶片系統微處理器類似的方式。通過這種方式使用 GPU,系統可以不加載系統 CPU 產生幾乎不受任何限制的圖形效果。可編程 GPU 運行方案,一般稱為片斷程序。命名為 “片段”計劃衍生的事實,被操作的數據單位是一般一個像素點即圖像段。 GPU可以運行幾個像素片斷程序,同時創建一個一般是指它駐留在緩衝區的名稱。 GPU 的使用數據輸入,一般稱為紋理,這是類似於一個像素的集合。此外,
4、在同一時期,GPU 的設想和發展,有正在進行的努力提供一些應用程序編程接口,希望使用圖形專用的硬體。這種努力之一就是俗稱的 OpenGL。 OpenGL 的目標是使存取獨立於硬體的編程器的圖形功能。這樣做,OpenGL 的工作像一個狀態機。特別是,必須設定一個程序使用的 OpenGL 資料庫,如當前的色彩,燈光,混合等程序運行時的狀態,由此產生的背景下,將是一個狀態和輸入紋理相結合,這樣的組合取決於編程。由於狀態機式操作,操作的結果並不總是容易可預見的。隨著電腦的移轉向更豐富的視覺內容,圖像處理變得越來越重要。因此,編程人員的存取這些工具和圖形計算效率,緩解持續增6長的重要性。雖然 OpenG
5、L 和可編程 GPU 的組合圖形編程提供了廣泛的進步,但仍然需要一個更高層次的圖形子系統的接口。這就需要提高直接參與在圖像處理(如 PHOTOSHOP,沒有負擔或類似的軟件)的應用程式。在這些應用和其他人,這是不可取的一個抽象層,隱藏從那些利用這些基礎設施的的圖形硬體的複雜性。此外,操作系統不妨提出這樣一個抽象層,所有的應用程序,以方便的整體豐富的用戶圖形經驗。這樣的接口應該允許程序員或程序簡單地套用到一個給定圖像過濾器或效果。內隱在一個更高層次的 API 的需要是需要執行的方式,既快速,高效的 API。為了高效,系統應該有一個機制,概念化的方式,是很容易理解和容易操作的圖形編程。此外,這種系
6、統應盡量減少使用的內存和計算時間,同時也有效地把 CPU 和 GPU之間的工作。最後,這是理想的,有可能在單個處理器上模擬的,所以,雙處理器系統(GPU 和 CPU)內置的程序可以運行在傳統的系統只有一個 CPU 的系統。7二、 發明概要發明旨在解決問題,在其他方面的改進,滿足以上所述的需要和慾望。這樣做,本發明的一些實施方案中程式包括一個高層次程式程序進行圖形操作界面,或潛在的其他業務可能會利用一個輔助程式處理器資源。在這種類型的具體體現,一個高層次程式程序接口包括圖形過濾,可能是由用戶或系統程序調用的函數。通過創建效果或從預先定義的列表程式指定的過濾功能程式程序或用戶利用高層次程式程序界面
7、。在替代實施程式,程序員或程序可能程式獲得一個可擴展的基礎設施,以預先定義的列表程式添加過濾器。在一般體現的發明之一,軟體將利用系統中的一個選定的處理器組成一個圖形圖像任務程式描述。描述程式圖形程式可能是一個圖像程式節點和鏈路的代表性,節點可能代表程式運營商和鏈接可能代表中間結果和存儲必要舉行這些結果。在更大的特殊性,在圖程式說明節點,最終可能包括用於計算的整體形象運作程式一部分程式另外程式處理器上程式線程或方案。此外,有一個整體形象程8式任務圖程式描述程式可以使用一個優化編譯器,以減少整體形象程式任務所需的資源。這種編譯功能是特別有用的程式因為節點程式程序一般會運行的編譯器以外的處理器上運行
8、。放棄一般具體在當代搭配的單個 CPU 與單一 GPU 程式情況程式可能被描述。這具體提出評估整體形象程式任務和構造一個相同程式圖形描述程式 CPU 上運行程式軟件。這可能是視覺代表作為協會程式節點與鏈接程式樹圖如上所述。由於節點計劃可能執行在GPU 上,GPU 的屬性建設計劃帳戶。特別值得一提的是,在一般意義上的,可編程 GPU 運行多個並行執行流程式使節點的方案可能是並行化的語言表達。例如,節點程式方案可能是 GPU 片段程序。施工後代表整體形象程式任務圖,圖中可能憑藉一個 CPU 上運行程式編譯器的優化。此外,圖可能是由在不同的部分編譯程式優化,創建圖形作為。優化程式目的是最大限度地減少
9、內存使用和 CPU或 GPU 的時間程式或以其他方式獲得圖像時計算效率。根據不同的實施方案的發明,優化可能有很多程式功能特點。例如,優化可能包括緩存中間結果,整合到一個多個片斷程序,限制局限於域的定義和感興趣的區域內程式內存和計算領域,或優化處理器之間的劃分計算。應用這些技術在當代程式圖形上下文程式是高效,允許開發人9員編寫所表達的元素(如像素)或元素進行操作程式無需關注在特定的硬體系統程式編譯器將被佔程式過濾程式。此外,在創建了一個 API 和部署在多處理器系統程式高效處理基礎設施,也有程式化身包括利用程式功能,在單處理器系統程式 API。在一個很一般程式意義程式程式,這是由模擬來程式。10
10、三、詳細說明3-1 技術和術語3-1-1 技術本發明實施例描述可能具有的含義,並使用多處理器計算系統的所有類型,特別是不同類型的處理器,其中利用系統。本文重點討論一個共同的計算,有一個 CPU 資源和 GPU 資源配置。討論的是僅用於說明,不打算申請的發明局限於有其他系統:沒有 GPU的多個 CPU 和一個 GPU,多 GPU 和 CPU 或多個 GPU 和多個 CPU。警告,我們將提供一個典型的硬件和軟件的運行環境的信息。在談到圖。1,一個常見的硬件計算配置所示。非常普遍,一個微處理器 11 耦合到芯片組,支持集成電路 13 和 17。微處理器可與任何微處理器或控制器,如英特爾奔騰系列或 I
11、BM /摩托羅拉的PowerPC 芯片,如 23,24 或 25。該芯片組芯片(表示為北橋和南橋 17)可實現在一個或多個集成電路。該芯片組 13,17 一般夫婦通過一個總線微處理器 12 或直接聯繫,此時是在藝術。如果芯片組,1113,17 是在超過一個 IC 實施,這是常見的北橋功能(AGP,內存管理等)有更直接連接到處理器通過公用總線或上述環節的任何連接 。一個單獨的芯片包含了南橋功能是非常普遍的耦合微處理器11 日通過北橋 。但是,我們不希望排除現在存在或可能存在在未來的其他配置 。一些潛在的南橋功能包括如磁盤驅動器的外圍附件ATA 總線 16,PCI 總線 18 用於連接所有外圍設備
12、的方式,用於連接 USB 設備的 USB 控制器的 19; 網絡接口控制器支持以太網或潛在的 110 其他網絡和音頻支持 111。更貼切的是,典型的北橋功能包括了內存控制器,支持主內存 114 和加速圖形端口 15 ,支持視頻子系統。內存通常是多種類型的動態隨機存取存儲器,但也可能在替代配置靜態 RAM,磁存儲器,光存儲器或任何其他合適的存儲介質,在未來,存在或可能存在。AGP 15 是一個特殊的端口放置在芯片組,使圖形子系統如微處理器和主內存的系統資源的快速訪問。有各種新興的口味的 AGP,當然其他的方法來加快速度的核心資源和圖形子系統之間的相互作用。本次討論的目的不是限制使用任何特定的方法
13、執行類似的功能。最後,圖。2 顯示替代計算硬件配置,24 日和 25 日,這是與鬆散協會打算 24 日和 25 日的微處理器分別。如上所述,體現發明披露者外,包括軟件。因此,我們應當提供一個共同的計算軟件體系結構的描述層圖圖表示。3。我們的硬件12的例子一樣,這些都是不打算以任何方式獨家而是說明。層型圖,軟件開發人員往往有些不同的方式表達,這是特別真實。在這種情況下,我們對此表示層的 O / S 內核開始,所以我們忽略了較低層次的軟件和固件。我們的符號通常是為了暗示該軟件在一個層以下的層使用資源中顯示的元素和以上各層提供服務。然而,在實踐中,可能不會表現一個特定的軟件元素的所有組件完全以這種方
14、式。隨著這些警告,有關軟件,指到圖。3( 一 ),31 層的 O / S 內核,它提供了核心的 O / S 以上的 O / S 內核在一個高度受保護的環境功能,有一層 32 O / S 的核心服務,層層擴展功能服務以上,如磁盤和通信接入 。33 層是插入這裡以顯示一般的 OpenGL 庫和類似的資源相對定位。34 層是通常表示為兩個層次:應用框架和應用服務的職能合併。對於我們討論的目的,這兩個層提供高層次,應用程序的支持往往功能與居住在這裡所顯示的最高一層的 35 項3100 是為了顯示的“核心成像 ”的軟件套件 ,名字相對定位,它提供用於描述當前發明的許多體現車輛(指一個軟件套件,包括一些,
15、任何或全部或發明實施例,我們一般會使用“ 核心影像” )。現在談到第 3 ( B) , 101 項核心成像套件的相對定位。很明顯,在圖 3 ( B),比 3 ( 一),一層已添加其他圖形函數合成13324 。它是合成的執行窗口系統窗口的組成和管理工作,比如,這是很多實施方案討論。3-1-2 樹木和圖形在數學和計算科學,問題可能會表現在解析時尚,適合機執行的計算,這種機器的編程 。解析表達式的一個例子是,如在圖的廣義樹結構。4。在談到圖。4,樹結構 41 包括:環節,這代表最近的屈從節點(42,43,44,45,46,47,48,49,410,411,412,413 和414)和兩個類型的節點。
16、有代表既存的計算輸入的葉節點(例如操作數),419,424,425,426,427 , 428 和 429。另外,也有代表計算功能(如運營商)的功能節點415 , 416 , 417 , 418 , 420 ,421 , 422 和 423 。作為一個整體的例子,指的是圖 。4,連接 46 條作為一個功能節點輸入 417,並表示葉節點 424(葉節點的結果,只是葉)。談到現在的圖。5,另一棵樹,而不是各界的矩形節點 。然而,圖代表的性質是相同的: 51 是類似的,以操作數的葉節點; 功能節點 52,53 和 54 代表運營商,並鏈接 5100,5101,5102,5103 和5104 代表結果
17、。14在此披露的各個地方,我們用無花果這些樹木。4 和 5,我們討論了在計算機系統中正在使用或組裝的“圖 ”的背景下,這些樹木。我們一般不打算暗示的計算機系統正在建設或使用圖形樹圖,而是系統製造,維護,或使用一些我們借鑒人類說明目的的圖形樹表示。此外,我們在討論的圖形技術和軟件方面一般採用的樹木(或圖形)。從一個應用程序或程序員的角度來看,是由一棵樹或圖形定義的形象通常是從一個圖像的像素數組定義沒有什麼區別。兩種類型的圖像定義相同的最終對象,它是對象與圖像的應用程序關聯 。在某些方面,同樣是真正的核心成像(或其他軟件,此處體現的發明)的角度。因此,核心成像評估,評估圖形圖像計算任務 。在這方面
18、,圖的根節點的結果是最終的結果 。在談到無花果。4 和5,415 和 54 節點的圖形各自的根節點 。在描述的發明和核心成像的實施例中,我們經常參考這些說明的工具。因此,通過引進有關的許多化身的方式討論外,指圖 。4,下面的協會一般都是適當的,在我們的討論範圍內:(I)所示的樹一般稱為低級圖(二)功能 節點415 , 416 , 417 , 418 , 420 , 421 ,422 和 423 代表“內核” 或片段,如 GPU 的微處理器上運行的方案;(三)葉節點419 , 424 , 425 , 426 , 427 , 428 和 429 一般代表圖像,這是15說一個像素集合或代表相同;和鏈
19、接(四)42,43,44,45,46,47,48,49,410,411,412,413 和 414 表示的結果,雖然在操作,將實際發生的背景下 ,那些結果通常與存儲相同的緩衝區 。此外,許多化身介紹這裡討論,指的是圖。5,以下協會是適當的,在我們的討論範圍內:(一)所示的樹一般是指作為一個高層次的圖;葉節點 51 代表圖像; 功能節點 52 , 53 和 54 代表高層次的過濾器,這通常是預先定義的過濾器和鏈接5100,5101,5102,5103 和 5104 的篩選結果,但不像低級別的圖,不一定是與緩衝區相關聯。3-2.核心成像 API 從程序員的角度來看許多發明實施例涉及面向對象編程和四
20、種類型的對象提供給程序員。這些對象類型的圖像;過濾器,背景,和向量。每一個簡要討論與努力,而不是要限制其一般性的。圖片是兩個三維渲染(像素圖像)或相同的表示結果。在高層次的計劃行動,我們經常保持代表在這些對象需要計算成為實際的像素值的圖像的對象。不同的發明實施例可利用像素值的圖像和聯合國計算圖像之一或兩者的圖像清晰度。其具體含義派生很容易從16上下文使用(有沒有“背景” 對象的關係)。在一般意義上,在討論有關過濾器,圖像應解釋為一個函數或過濾器的輸入。過濾器是高層次的,是用來影響圖像的功能。過濾器可包括一個或多個預先定義的過濾器在此披露的結束上市。過濾器可類推片斷程序,這同樣會影響圖像(或更確
21、切地說,通常紋理),但是生產時間只有一個像素。在許多發明實施例,核心成像編譯基於過濾器的圖像處理,使這種操作可以發生在 GPU 上使用片斷程序。不一定是一個過濾器和片斷程序之間的一個一一對應。上下文是一個空間,如在內存中定義一個過濾操作的結果駐留在哪個地方。如果圖像被假定為上述建議的投入,然後背景是假設輸出。一個向量浮點數的集合 。對於大多數實施方案討論外,向量與四個浮點數,每個號碼相同固定數量的 32 位常用。在圖形,向量可能相當於(i)所需的四個來形容像素外觀( R(紅色),G (綠色),B (藍色)和 alpha(透明度);尺寸或( ii)兩個或兩個需要三個維度來描述空間,三個空間或四空
22、間(均質)坐標分別:X,Y ,Z 和 W3-3 核心影像和核心成像 API17核心成像是一種軟件套件,其中包括許多程序和運作,除其他事項外,作為一個高層次的編程語言或圖形功能,但適用於其他功能,如數學僅(如卷積操作)內置的 API。回想一下,我們使用的綽號核心成像指任何一個體現或任何集團的化身,我們不意圖局限於任何特定的評論關於“ 核心影像。” 同樣的發明,我們可能會涉及到一個例程或進程或在核心成像和該,我們不打算暗示這樣的軟件是作為一個單位或層實施。核心成像包括一個高層次的語言或 API 與圖形架構和圖形為中心的應用服務套件通信。這也包括從高層次的語言組裝生產的編譯器。語言 / API 是獨
23、立於平台和硬件平台或硬件上的差異,因為圖形的框架和屈從軟件層可能帳戶。該 API 允許程序員申請不用擔心(1)國家和 OpenGL 或像接口所需的其他參數,GPU 或其他資源(2)彙編語言執行圖形渲染的圖像效果。當作為軟件的概念,核心成像(或體現的 API 和相關的編譯器)可能被視為定位應用程序和操作系統之間的圖形服務例程一般套房 。自分層軟件概念化不同的解釋,這種討論的目的不是排他性其他的方法,概念化的核心成像(或任何圖形服務的軟件套件,根據本發明實施例)的分層位置。警告,指的是無花果。3 ( a)條和第3 ( B ),圖形服務的軟件套件 3100 和 3101 分別列。18這些圖形服務的定
24、位 3100 和 3101 意味著這些套房可能包括應用程序框架,應用服務和圖形資源的組成部分。總之,在這個定位的目的是暗示 3100 和 3101 可交互的核心影像: 35 和 327 層的應用層中的其他框架或 服務 34 和 326;資源,如在層的 OpenGL 33 和 325 的合成層 24 層的服務和 O / S ; 32 和 323 。在一般意義上的圖形,核心成像允許程序員和方案,實施效果可以使用一個預先定義的高層次的過濾器(1)或(2)裝配了一系列預先定義的過濾器使用 API 本發明或一個或多個其他的體現。在後一種情況下,程序員或程序,使核心零個或多個預先定義的過濾器的高層次描述成
25、像的 API 調用。程序或程序員放置在一個數據結構,這些高層次的描述(或參考本),我們將調用一個高層次的圖。高層次的圖是由程序員或程序創建一個新的過濾器組裝。高層次的圖形定義預先定義的過濾器,並在新的過濾器的圖像之間的關係。當程序員或項目已完成建設高層次的圖,它有效地完成其任務,為創建新的過濾器。這是說,所有必要的信息,以創建新的過濾器是體現在高層次的圖。在另一種體現,作為一個程序員或程序組裝與合作,創建圖形核心成像圖可能是一個低級別的圖形或大幅低級別的圖形。例如,一個請求從程序或程序員的角度來看,可能是一個高層次的過濾器,19但是,核心成像可能創造和提供一個對象,是一個低級別的過濾器或一些低
26、級的臨時步驟過濾器和一個高層次的的過濾器。由於程序或程序員並不實際檢查的對象,核心成像高級別與低級別的代碼代碼的要求作出回應。在這種方式中,核心成像可裝配一個低級別的圖形,而程序認為是高層次的過濾器和對象的工作。核心成像,最終優化和編譯高層次的圖形(連同任何適用的輸入參數)產生的 GPU 準備方案的額外任務。編譯步驟可能只是在最終圖像的使用時間。總之,程序員或程序使用了高層次的 API(包括預先定義的過濾器)來創建和效果,這是本質上是一種新的過濾器,包括其他各種過濾器和輸入語言。程序員或程序員,也可編程應用此過濾器圖像。本發明的各種體現考慮各個部門的工作,GPU和 CPU 之間。一般情況下,
27、CPU 將運行的核心成像, GPU 將運行的核心成像的最終產品。然而,這取決於硬件能力和最終優化,核心試想可能創建 CPU 和 GPU 的任務。此外,如果沒有在系統可編程 GPU,核心成像可能會創建一個 CPU 來渲染圖像上下文的對象。3-4 一個核心成像體現的基本功能核心成像能力,現在更充分,在一個體現,API 提供程序員六個高層次的功能和最終用戶的應用程序:創建上下文;創造一個形象,創建一個過濾器設置帶過濾器的相關參數(如過濾器功能的參數)20的能力;能力要求,已被組裝的過濾器過濾器或組的輸出; 和能力來渲染圖像的背景下。3-4-1 創建一個上下文。我們泛指輸出作為一個背景下,這樣的能力,
28、以創建一個上下文是衍生工具,使內存中的對象的定義。這樣一個對象的定義是必要的的,所以,有可能是目的地操作的結果。例如,上下文可以在主內存中的位圖或與 OpenGL 視圖相關聯。這些相關的圖像容器是用來作為渲染的目的地。雖然本發明的主要考慮,如系統的圖形功能相關聯的視頻內存內存,這裡討論的概念同樣適用於任何系統或進入系統,在其他地方發現的內存或存儲。因此,如果沒有限制,內存可能包括所有類型的固態存儲器,如動態存儲器或靜態存儲器是否與具體的圖形子系統,圖形子系統共享或名義上專門到主系統或其他子系統由主系統訪問。此外,雖然速度肯定是一個問題,概念本不打算排除磁性或光學記憶。例如創建一個背景下,我們可
29、以假設一個應用程序,希望最終顯示到屏幕的東西。假設蘋果公司的 iPhoto 應用程序需要響應用戶命令,以顯示一個海邊的形象。iPhoto 可能利用核心圖像處理 API調用一個函數來請求創建上下文。核心成像將返回,在其他可能的21事情,確定創建的上下文的句柄。讓我們假定,處理是“空的上下文。”3-4-2 創建一個圖像。我們一般是指作為圖像輸入,因為坐標或圖像中的像素進行採樣產量相關值。使用發明 API 的體現,圖像可以創建從一無所有,或從另一個形象。從無到有創建一個圖像提供了一個創建的像素值機制。例如,圖像可通過簡單地定義為一種顏色或顏色(如棋盤或條紋頁)組合數學的形象從一無所有。通過應用一個或
30、多個過濾器,以現有的圖像,圖像,更常見的,可能從另一個形象創建。我們從上面時,iPhoto iPhoto 的例子可能要求圖形服務的一個海邊上現有的兒童形象,並應用一個過濾器(如模糊)一些區外的孩子創造一個形象。應用此過濾器後,創建一個新的形象。為了清楚起見,這是聯合國在新的像素值計算的圖像沒有被計算,但相反,模糊濾鏡已編程應用和居住或引用在所有必要的其他元素,計算像素的圖像緩衝區任何存儲或引用。3-4-3 創建一個過濾器。我們泛指任何可能對零個或多個圖像(最後一個像素)執行的功能的過濾器。在稍微的特殊性,一個過濾器可能是一個函數,它接受輸入和產生一個新的形象的圖像和其他參數(與依賴於特定的過濾
31、器)。API 目前提供幾十個過濾器列出,並在此披露的其他地22方描述。然而,本發明實施例要求使發明者繼續發展提供了一個別人的開發能力以及過濾器的過濾器和一個可擴展性。發明設想的可擴展性,允許預先定義型過濾器除了,我們的討論將集中在由零個或多個預先定義的過濾器的組合和操縱創建新的過濾器。一個地創建一個過濾器的設想一個程序員或程序通過體現了創造性的 API,以配合在一起之一或 API 的預先定義的過濾器和任何其他項目或功能,程序員希望申請更多的開始。如前所述,以創建一個新的的過濾器,程序或程序員可以創建一個高層次的圖形,包括交涉的所有圖像和預先定義的過濾器,將用於這些對象之間的關係。在一些實施例中
32、,預先定義的過濾器的目的是要作為基本的圖形功能盡可能全面,以盡量減少程序員或程序寫的 GPU 大會的需要或激勵。事實上,核心成像的整體利益,是在應用層的方案沒有提及具體的圖形硬件的能力。一旦定義一個新的過濾器是一個高層次的圖形,一個應用程序或用戶(在 CPU 級別),可致電核心成像技術來實現高層次圖(效果圖中的引用在圖中引用的圖像過濾器由圖中定義的方式)。當然,高層次的圖可能已被寫入合併多個圖像,但該技術是相同的。實施過濾器,核心成像時,可能需要其他的輸入數據,因為過濾器通常23有過濾器的具體投入,如模糊,幾何參數,如上市後的過濾器定義中指定的任何其他投入模糊半徑。一個重要的功能是核心成像,然
33、後返回一個或多個對象的應用程序或用戶。根據返回的對象,可在 GPU 上呈現或準備用於計算的發明,CPU 或一些結合這兩個不同的實施方案。一個替代的體現,核心成像生成所有的低級別的圖形或的一部分,而高層次元素的應用程序請求的響應。在此體現,應用程序認為它是要求更高層次的代碼,而核心成像提供較低級別的代碼(應用程序無法檢測到的不同,因為它不分析核心成像的對象)。另外,在優選的實施方案,返回的對象可能是一個優化的低級別的圖準備好了,剛剛在編譯應用程序時,需要在上下文中的形象。在一些實施例中,核心成像將返回只有一個對象,這是編譯時間和運行在 GPU 上。為了做到這一點,必須轉換的核心成像(一般優化)高
34、級別圖形和圖像轉換(S)到紋理(S)(圖形處理器使用的紋理,而不是用於計算圖像)。在轉換圖像的紋理,核心成像技術使用的 CPU 首先將圖像轉換為一個採樣。採樣器是一個圖像加上它的狀態,所以轉換到採樣包括如下面的狀態信息納入步驟:(1)包裝,如透明,鉗或複製模式;(二)插補模式,如使用從價值觀最接近的整像素的像素的主題,或跨越的四個主題像素周圍的像素網格插值;及(iii )仿射變換,如旋轉,24縮放,傾斜,翻譯,鏡。然後取樣可能很容易地轉換為使用 GPU 的紋理。作為輸入,所有這一切,CPU,運行的核心成像,創建一個對象,包括 GPU 的方案,在執行時,將執行實際像素的過濾器(上面創建的紋理提供
35、)。談到現在的圖。5,我們將繼續通過創建過濾器的一般例子 。回顧回到我們的 iPhoto 的“海邊的例子,一個用戶可能會問,自動增強照片的 iPhoto。,純粹是為了便於說明,假設,自動提升需要下面的過濾器創作 。這純粹是為了說明在當前的 iPhoto 增強功能實際上這種方式運作 。iPhoto 將首先創建其所需的過濾器。這個過程可能會啟動,通過調用核心成像分配基礎映像 51,在這一點上,可能會在圖或像素形式。我們看到,在圖的步驟之一 。5 和高層次的圖形樹雙字母組合 。下一步 iPhoto 中調用核心成像添加一個程序步驟(以及相應的樹中的位置)的應用色彩校正過濾器 52 圖像 51 。我們看
36、到,在圖這一點。5 步驟 2 和高層次的圖樹圖 。請注意,步驟的輸出如圖 2。5 定義為佔位符 CC(色彩校正)海邊。以來,在這一點上,它是不確定的,如果這中間結果(CC 海邊)將永遠存在,我們不分配一個緩衝區而是放在一個佔位符,在高層次的圖,說明中介結果的可能性。在推進自動增強功能,iPhoto 會可能進一步應用虛假的彩色濾光片 53 52 過濾的結果 。像以前一樣,iPhoto 會調25用核心成像技術來獲得高層次的假彩色濾光片和安裝的高層次的圖(樹在圖 5 用於說明目的)中插入相同。接下來,為了圓自動提升功能,iPhoto 會選擇平均結果 53 過濾(FC CC 海邊)與原海邊的形象(51
37、),所以適當的過濾器 54 將被稱為核心成像並插入在高層次圖。這是在無花果樹圖。5 和示例程序的步驟 。在我們的例子中,iPhoto 中現在有一個高層次的圖,其所需的自動提升海邊圖像 。為了使這一結果可用在按照這個例子中的體現,iPhoto 的順序可能會在核心影像(或核心成像可能單獨行動)調用例程轉換,優化或編譯如上所述的高層次的計劃。為了便於說明,在一個簡單的形式(類似於圖 5)圖顯示的結果表示。6。我們看到圖。片斷程序(62,63 和 64)6,不需要類推以及高層次的預先定義的過濾器,包括高層次樹圖自動增強。5。每一個高層次的過濾器可包括一個或多個片段程序,影響它的目的 。此外,優化的程序
38、時,它可以被替換為片段程序,重新排序或消除。最後,我們看到,GPU 執行圖 。6 開始與紋理,而不是一個圖像,並放置在一個物理地方(緩衝區沒有更多的持有人)的結果結束。3-4-4 設置了過濾器的值。正如前面提到的,每一個高層次的過濾器,無論是作為上述或本列表中預先定義的創建,可能有一個輸入值是必要的,由過濾器26的功能定義。在海邊的例子,我們發現這些輸入參數作為一個向量“參數(X, Y,Z,W)為代表的通用輸入(見圖 5)。另一個少通用的例子,將模糊濾鏡,這將幾乎肯定需要一個模糊的半徑作為輸入參數。然而,其他的例子是輸入顏色,投入力度,輸入飽和度等(看到更多的例子在上下文中的過濾器列表)。核心
39、成像 API 一定提供程序員和程序設置這些輸入參數的能力,這使得在可預見的創作或圖像編輯談到我們的 iPhoto 的海濱例子,我們執行上我們的照片一片模糊。雖然精確的輸入參數,將取決於具體的模糊濾鏡時,iPhoto 將最有可能需要提供的模糊半徑。3-4-5 問一個過濾器的輸出。在一個實施例中,一旦一個圖存在一個特定的過濾器,程序或程序員可以調用該過濾器的輸出核心成像。對此,核心成像創建一個對象剛剛在實時編譯,然後執行通常只是在 GPU 上的準備。這種高層次的過濾器的輸出是一個簡單的聯合國計算或形象代表。在替代實施方案,核心成像可優化圖形或計算在這一點上的形象。之前的體現往往是首選的,因為優化需
40、要處理週期和計算將使用的處理週期和內存。這些資源通常是更好地保存,直到我們有一定的形象必須呈現上下文。27在通常更可取的體現(節省內存和處理器時間)在談到我們的iPhoto 的例子時,iPhoto 會調用核心成像產生聯合國計算的形象,剛剛在編譯和執行的準備。A. 以創造濾波器的輸出警告。像許多圖形處理引擎,核心成像,可能興建中只有一種顏色空間,例如“輕線性的。” 因此,為了處理一個圖,一些實施方案中必須的色彩空間轉換成光的線性,並在返回之前因此,必須將其轉換的色彩空間返回到原來的顏色。在一些實施例中,這種轉換是一個高層次的圖形輸入(S )和輸出的高層次圖放置在適當的色彩轉換的高層次的過濾器進行
41、。在其他實施例中,這種情況發生在一個低級別的圖形,但在一個非常相似的時裝。在低級圖的情況下被放置在一個“ 內核”或片斷程序節點顏色轉換輸入(S )和圖形輸出。在大多數節點放置到圖表(高或低層次的)的化身,形勢使然,色彩轉換節點的結果很可能會在未來有用。因此,色彩轉換節點的結果應該被緩存在最化身。創造色彩轉換的圖形節點的替代方案等轉換為核心成像程序之一。3-4-6 渲染圖像上下文。最終,大多數圖像創建為視覺的使用,如顯示,。因此,在這個創造的形象的化身的極為常見的一步是調用到一些明確的情況下28的圖像渲染。對於大多數的實施方案,核心成像將在這一點上的圖形執行的優化。總之,優化可能涉及的任何或所有
42、以下:(1)生產低級別的圖形,概念化的目的,圖中的節點代表片段程序和低級的圖形定義圖像和片段程序之間的關係(這是對比,以高層次的圖形,包括圖像和高層次的過濾器和它們之間的關係),(2)優化的定義域;(3)對感興趣的區域優化;(4)相結合的片段計劃,以減少尺寸圖和最終的內存空間,它的執行將需要:(5)與駐地的硬件(GPU,CPU,內存等)的優化的低級別的圖形執行要求。一旦優化,低級別的圖形編譯和產生一個或多個可執行對象。然而,正如我們已經討論過的,通常有一個可執行對象為 GPU,在優化過程中或編譯中,它可能會決定,應採用多個處理器。編譯後產生的對象執行和形象呈現給指定的上下文再次提及我們 iPh
43、oto 中的例子,為了把屏幕上的圖像,iPhoto會調用核心成像在屏幕上呈現的對象。在一個典型的體現,這一步涉及到 GPU 上運行圖像中的所有相關像素和生產增強照片圖像的代碼。圖像可能被放置在屏幕上放置在同屏顯示的緩衝區。大腸桿菌優化優化是分析和更改程序或使實際執行任務時,它是最有效的或容易執行任務的過程中。在本文討論的最化身範圍內,我們試圖使29用一個微處理器來優化另一個微處理器的程序代碼。但更具體的實施方案,我們試圖用一個系統的 CPU 資源優化在 GPU 上運行的程序。在更具體的實施方案,CPU 進行了分析圖形任務(通常是應用圖像效果)圖表示,並優化圖形,使圖是剛剛在編譯時,它運行的最有
44、效在 GPU 上。我們已經討論了在一般和特定環境下的優化和編譯。沒有事先披露的範圍限制,我們現在討論的核心成像的體現,涉及任何四種不同的優化技術之一。這四個一般技術:緩存中間結果;計算和存儲限制的定義域;感興趣的區域限制的計算和存儲 ;和圖形重新編寫,以減少或簡化圖形。自優化處理與真實世界的項目,像 CPU 週期,GPU 的週期和內存空間的節省,我們通常會討論參考來的最低水平(最接近硬件)概念圖工具,我們已經介紹了優化技術。該工具是低層次的圖形。然而,這些技術不應該被視為僅限於一個單一的概念化水平。事實上,這些技術可以應用,實現更高水平的效率和說明抽象的較低水平(如更高級別的圖形或編譯的代碼)
45、。可能是有用的各種命令,甚至為了在連續技術是遞歸應用到一個節點在一段時間或一個圖形的部分雜交,所披露的優化技術。然而,以最清楚地說明,我們引進技術,在邏輯順序圖所示 。7。談30到現在的圖。7,核心成像接收從應用程序在步驟的圖形任務 7100 。要任務是不是已經體現在一個低級別的步驟圖, 7101,核心成像必須創建一個低級別的圖形。接下來,在步驟 7102,核心成像執行節點減少分析,並在可能的情況下消除節點 。後不必要的(或可折疊)的節點進行了優化 。核心成像移動到 7103 進行優化最終限制緩衝區的大小和圖像輸入步 。這一步涉及到相交的兩個區域叫做域的定義(“國防部 ”)和感興趣的區域( “
46、投資回報率”)。ROI / 國防部優化後,該圖是準備編譯步驟 7104。最後,這一切之前的工作一直在 CPU 上運行,該方案是發送到 GPU 進行渲染(正如我們所討論的整個,一些實施例中可以編譯和發送的 CPU 以及部分圖 )。在討論上述優化技術,有可能在更深的理解體現在圖形節點使用。我們應當說明低級圖中的節點,但其概念適用於任何類似的陳述。到目前為止,我們所討論的功能,過濾器和片斷程序的節點。然而,為了對圖的分析,我們需要一個更具體和更豐富的信息節點表示。因此,在不同的發明的實施例,可取或必要時,低級的圖形節點有以下相關信息:(一)喜歡的片段已討論的方案計劃;(二)程序的參數,這可能包括採樣(與各國的圖像),以及一個或多個向量(記得一個向量浮點數的集合),(三)域定義為節點的輸出;及(iv )投資回報率的功能,提供了一個形狀為節點的輸入,輸出