TWI760336B - 用於虛擬實境深度重新定位的方法及設備 - Google Patents

用於虛擬實境深度重新定位的方法及設備 Download PDF

Info

Publication number
TWI760336B
TWI760336B TW106116340A TW106116340A TWI760336B TW I760336 B TWI760336 B TW I760336B TW 106116340 A TW106116340 A TW 106116340A TW 106116340 A TW106116340 A TW 106116340A TW I760336 B TWI760336 B TW I760336B
Authority
TW
Taiwan
Prior art keywords
depth
repositioning
virtual screen
virtual
screen
Prior art date
Application number
TW106116340A
Other languages
English (en)
Other versions
TW201802704A (zh
Inventor
黃超
馬紐 沙哈瓦
Original Assignee
美商英特爾股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商英特爾股份有限公司 filed Critical 美商英特爾股份有限公司
Publication of TW201802704A publication Critical patent/TW201802704A/zh
Application granted granted Critical
Publication of TWI760336B publication Critical patent/TWI760336B/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/128Adjusting depth or disparity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/271Image signal generators wherein the generated image signals comprise depth maps or disparity maps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • H04N13/344Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Generation (AREA)

Abstract

一種用於在虛擬實境(VR)系統色彩緩衝器壓縮中深度重新定位的設備及方法。舉例而言,方法之一實施例包含:基於目標螢幕之特性將虛擬螢幕區域分成複數個較小的區域;對於該較小的區域之各者個別地進行深度重新定位,包括識別該較小的區域之第一組,用以在其上運用第一深度重新定位技術,且包括識別該較小的區域之第二組,用以在其上運用第二深度重新定位技術;其中該第一深度重新定位技術包含將該較小的區域之一或多者從該第一組細分成複數個子區域並且個別地在該子區域上進行深度重新定位;結合該第一深度重新定位技術與該第二深度重新定位技術之結果以算繪該虛擬螢幕區域。

Description

用於虛擬實境深度重新定位的方法及設備
本發明一般係關於電腦處理器的領域。更特別的是,本發明係關於用於虛擬實境深度重新定位的設備及方法。
虛擬實境(VR;Virtual reality)指的是重現實際或相像的環境的資料處理技術,其係藉由模擬在該環境中使用者的有形存在(physical presence),在一些實行中,使用者被提供有與環境互動的能力。許多目前的VR環境不是顯示在電腦螢幕上就是以特別虛擬實境頭戴式裝置(virtual reality headset)來顯示。一些模擬包括額外感官資訊,像是透過針對VR使用者之揚聲器或耳機的聲音。
100‧‧‧處理系統
102‧‧‧處理器
104‧‧‧快取記憶體
106‧‧‧暫存器檔案
107‧‧‧處理器核心
108‧‧‧圖形處理器
109‧‧‧指令集
110‧‧‧處理器匯流排
112‧‧‧外部圖形處理器
116‧‧‧記憶體控制器集線器
120‧‧‧記憶體裝置
121‧‧‧指令
122‧‧‧資料
124‧‧‧資料儲存裝置
126‧‧‧無線收發器
128‧‧‧韌體介面
130‧‧‧輸入輸出(I/O)控制器匯流排
134‧‧‧網路控制器
140‧‧‧舊有I/O控制器
142‧‧‧通用串列匯流排(USB)控制器
144‧‧‧輸入裝置
146‧‧‧音訊控制器
200‧‧‧處理器
202A-202N‧‧‧處理器核心
204A-204N‧‧‧內部快取單元
206‧‧‧共用快取單元
208‧‧‧圖形處理器
210‧‧‧系統代理核心
211‧‧‧顯示控制器
212‧‧‧基於環狀的互連單元
213‧‧‧I/O連結
214‧‧‧積體記憶體控制器
216‧‧‧匯流排控制器單元
218‧‧‧嵌入式記憶體模組
300‧‧‧圖形處理器
302‧‧‧顯示控制器
304‧‧‧區塊影像轉移(BLIT)引擎
306‧‧‧視訊編解碼器引擎
310‧‧‧圖形處理引擎(GPE)
312‧‧‧3D管線
314‧‧‧記憶體介面
315‧‧‧3D/媒體子系統
316‧‧‧媒體管線
320‧‧‧顯示裝置
403‧‧‧命令串流器
410‧‧‧圖形處理引擎
412‧‧‧3D管線
414‧‧‧執行單元陣列
416‧‧‧媒體管線
430‧‧‧取樣引擎
432‧‧‧去噪/解交錯模組
434‧‧‧運動估計模組
436‧‧‧影像縮放及過濾模組
444‧‧‧資料埠
500‧‧‧圖形處理器
502‧‧‧環狀互連
503‧‧‧命令串流器
504‧‧‧管線前端
530‧‧‧視訊品質引擎(VQE)
533‧‧‧多格式編碼/解碼(MFX)
534‧‧‧視訊前端
536‧‧‧幾何管線
537‧‧‧媒體引擎
550A-550N‧‧‧子核心
552A-552N‧‧‧執行單元
554A-554N‧‧‧媒體/紋理取樣器
560A-560N‧‧‧子核心
562A-562N‧‧‧執行單元
564A-564N‧‧‧取樣器
570A-570N‧‧‧共用資源
580A-580N‧‧‧圖形核心
600‧‧‧執行緒執行邏輯
602‧‧‧像素著色器
604‧‧‧執行緒分派器
606‧‧‧指令快取
608A-608N‧‧‧執行單元
610‧‧‧取樣器
612‧‧‧資料快取
614‧‧‧資料埠
700‧‧‧圖形處理器指令格式
710‧‧‧128位元格式
712‧‧‧指令運算碼
713‧‧‧索引欄位
714‧‧‧指令控制欄位
716‧‧‧執行尺寸欄位
718‧‧‧目的地
720‧‧‧來源運算元
722‧‧‧來源運算元
724‧‧‧來源運算元
726‧‧‧存取/位址模式欄位
730‧‧‧64位元壓縮指令格式
740‧‧‧運算碼解碼
742‧‧‧移動和邏輯運算碼群組
744‧‧‧流程控制指令群組
746‧‧‧雜項指令群組
748‧‧‧平行數學指令群組
750‧‧‧向量數學群組
800‧‧‧圖形處理器
802‧‧‧環形互連
803‧‧‧命令串流器
805‧‧‧頂點抓取器
807‧‧‧頂點著色器
811‧‧‧外殼著色器
813‧‧‧曲面細分器
817‧‧‧域著色器
819‧‧‧幾何著色器
820‧‧‧圖形管線
823‧‧‧流出單元
829‧‧‧剪取器
830‧‧‧媒體管線
831‧‧‧執行緒分派器
834‧‧‧視訊前端
837‧‧‧媒體引擎
840‧‧‧顯示引擎
841‧‧‧2D引擎
843‧‧‧顯示控制器
850‧‧‧執行緒執行邏輯
851‧‧‧L1快取
852A-852B‧‧‧執行單元
854‧‧‧紋理及媒體取樣器
856‧‧‧資料埠
858‧‧‧紋理/取樣器快取
870‧‧‧算繪輸出管線
873‧‧‧柵格器及深度測試組件
875‧‧‧共用L3快取
877‧‧‧像素運算組件
878‧‧‧算繪快取
879‧‧‧深度快取
900‧‧‧圖形處理器指令格式
902‧‧‧目標客戶端
904‧‧‧命令運算碼(opcode)
905‧‧‧子運算碼
906‧‧‧資料
908‧‧‧命令尺寸
910‧‧‧圖形處理器命令序列
912‧‧‧管線清洗命令
913‧‧‧管線選擇命令
914‧‧‧管線控制命令
916‧‧‧回傳緩衝器狀態命令
920‧‧‧管線決定
922‧‧‧3D管線
924‧‧‧媒體管線
930‧‧‧3D管線狀態
932‧‧‧3D基原
934‧‧‧執行
940‧‧‧媒體管線狀態
942‧‧‧媒體物件命令
944‧‧‧執行命令
1000‧‧‧資料處理系統
1010‧‧‧圖形應用
1012‧‧‧著色器指令
1014‧‧‧可執行指令
1016‧‧‧圖形物件
1020‧‧‧作業系統
1022‧‧‧圖形API
1024‧‧‧前端著色器編譯器
1026‧‧‧使用者模式圖形驅動器
1027‧‧‧後端著色器編譯器
1028‧‧‧作業系統內核模式功能
1029‧‧‧內核模式圖形驅動器
1030‧‧‧處理器
1032‧‧‧圖形處理器
1034‧‧‧通用處理器核心
1050‧‧‧系統記憶體
1100‧‧‧IP核心開發系統
1110‧‧‧軟體模擬
1115‧‧‧RTL設計
1120‧‧‧硬體模型
1130‧‧‧設計設施
1140‧‧‧非揮發性記憶體
1150‧‧‧有線連接
1160‧‧‧無線連接
1165‧‧‧製造設施
1200‧‧‧晶片積體電路
1205‧‧‧應用處理器
1210‧‧‧圖形處理器
1215‧‧‧影像處理器
1220‧‧‧視訊處理器
1225‧‧‧USB控制器
1230‧‧‧UART控制器
1235‧‧‧SPI/SDIO控制器
1240‧‧‧I2S/I2C控制器
1245‧‧‧顯示裝置
1250‧‧‧高解析度多媒體介面(HDMI)控制器
1255‧‧‧行動工業處理器介面(MIPI)顯示介面
1260‧‧‧快閃記憶體子系統
1265‧‧‧記憶體控制器
1270‧‧‧嵌入式安全引擎
1601‧‧‧螢幕
1701‧‧‧影像
1702‧‧‧影像
1801‧‧‧觀眾空間
1802‧‧‧遊戲空間
2001‧‧‧小區域
2002‧‧‧子區域
2003‧‧‧矩形
2101‧‧‧遊戲空間
2102‧‧‧視埠
2103‧‧‧觀眾空間
2200‧‧‧螢幕空間
2210‧‧‧區域分析及分類電路
2215‧‧‧區域細分電路
2220‧‧‧特定區域深度重新定位電路
2225‧‧‧場景結合器電路
2230‧‧‧3D訊框
本發明之較佳的了解能從下面詳細的說明連同下面的圖式來獲得,其中: 圖1為有著具有一或多個處理器核心及圖形處理器的處理器的電腦系統之實施例的方塊圖;圖2為具有一或多個處理器核心、積體記憶體控制器以及積體圖形處理器的處理器之一實施例的方塊圖;圖3為可為獨立圖形處理單元的圖形處理器或可為與複數個處理核心整合的圖形處理器之一實施例的方塊圖;圖4為用於圖形處理器的圖形處理引擎之實施例的方塊圖;圖5為圖形處理器之另一實施例的方塊圖;圖6為包括處理元件之陣列的執行緒執行邏輯之方塊圖;圖7依據實施例闡述圖形處理器執行單元指令格式;圖8為包括圖形管線、媒體管線、顯示引擎、執行緒執行邏輯以及算繪輸出管線的圖形處理器之另一實施例的方塊圖;圖9A為依據實施例闡述圖形處理器命令格式的方塊圖;圖9B為依據實施例闡述圖形處理器命令序列的方塊圖;圖10依據實施例闡述用於資料處理系統的示範性圖形軟體架構;圖11闡述依據實施例可被使用來生產用以進行運算的積體電路之示範性IP核心開發系統;圖12依據實施例闡述可使用一或多個IP核心來製造 的示範性晶片積體電路上系統;圖13闡述虛擬實境(VR)環境的示範性觀眾空間且識別眼痛區域;圖14A~B闡述用於進行深度重新定位的一特定方法;圖15闡述依據本發明之一實施例的方法;圖16闡述螢幕寬度與在螢幕前方及後方之可接受距離之間的關係;圖17闡述在本發明一實施例中可如何使用深度訊框來收集深度資料;圖18闡述在本發明之一實施例中運用的深度重新定位;圖19闡述某些區域如何被視作矩形,僅其之一部分對終端使用者是可見的;圖20闡述在其中某些區域被細分為接著被視作矩形的複數個子區域的一實施例;圖21闡述不同形狀的視埠結合在其中的一實施例;以及圖22闡述依據本發明之一實施例的架構。
【發明內容】及【實施方式】
在下列說明中,為了解釋的目的,提出眾多的特定細節以為了提供於下所述本發明之實施例的徹底了解。然而,對本領域具有通常知識者將為明白的是,本發 明之實施例可不以這些特定細節中的一些來實行。在其它實例中,周知的結構及裝置係以方塊圖的形式來繪示,以避免模糊本發明之實施例的基本原理。
示範性圖形處理器架構及資料類型 系統概觀
圖1為依據實施例的處理系統100的方塊圖。在各種實施例中,系統100包括一或多個處理器102和一或多個圖形處理器108,並且可為單一處理器桌上型電腦系統、多處理器工作站系統或具有大數量的處理器102或處理器核心107的伺服器系統。在實施例中,系統100為包含在晶片上系統(SoC;system-on-a-chip)積體電路內的處理平台,以用於在行動、手持或嵌入式裝置中使用。
系統100之實施例能包括(或被包括在其內)基於伺服器的遊戲平台、包括遊戲及媒體控制台的遊戲機(game console)、行動遊戲機(mobile gaming console)、手持遊戲機或線上遊戲機。在一些實施例中,系統100為行動電話、智慧電話、平板計算裝置或行動網際網路裝置。資料處理系統100亦能包括(與其耦接或整合在其之內)可穿戴裝置,諸如智慧手錶可穿戴裝置、智慧眼戴式裝置、擴增實境(augmented reality)裝置或虛擬實境裝置。在一些實施例中,資料處理系統100為電視或機上盒裝置,其具有一或多個處理器102以及由一或多個圖形處理器108產生的圖形介面。
在一些實施例中,該一或多個處理器102各者包括一或多個處理器核心107,用以處理指令,其當執行時,進行用於系統及使用者軟體的運算。在一些實施例中,一或多個處理器核心107的各者係組態以處理特定指令集109。在一些實施例中,指令集109可促進複雜指令集計算(CISC;Complex Instruction Set Computing)、精簡指令集計算(RISC;Reduced Instruction Set Computing)或經由超長指令字(VLIW;Very Long Instruction Word)計算。多處理器核心107各者可處理不同的指令集109,其可包括用以促進其它指令集之仿真(emulation)的指令。處理器核心107亦可包括其它處理裝置,像是數位信號處理器(DSP;Digital Signal Processor)。
在一些實施例中,處理器102包括快取記憶體104。取決於架構,處理器102能具有單一內部快取或多級的內部快取。在一些實施例中,快取記憶體係共用於處理器102之各種組件之間。在一些實施例中,處理器102亦使用外部快取(例如,第3級(L3))快取或最後級快取(LLC;Last Level Cache))(未繪示),其可共用於使用已知快取一致性(cache coherency)技術的處理器核心107之間。暫存器檔案106係額外地被包括在處理器102內,其可包括用於儲存不同類型資料的不同類型的暫存器(例如,整數暫存器、浮點暫存器、狀態暫存器以及指令指標暫存器)。一些暫存器可為通用暫存器,同時其它暫存器可特定於處理器102之設計。
在一些實施例中,處理器102係耦接至處理器匯流排110用以傳送通訊信號,通訊信號像是位址、資料或處理器102與在系統100中其它組件之間的控制信號。在一實施例中,系統100使用示範性「集線器」系統架構,包括記憶體控制器集線器116和輸入輸出(I/O)控制器匯流排130。記憶體控制器集線器116促進記憶體裝置與系統100之其它組件之間的通訊,同時I/O控制器集線器(ICH;I/O Controller Hub)130提供經由本地I/O匯流排對I/O裝置的連接。在一實施例中,記憶體控制器集線器116之邏輯係整合在處理器內。
記憶體裝置120可以為動態隨機存取記憶體(DRAM)裝置、靜態隨機存取記憶體(SRAM)裝置、快閃記憶體裝置、相變記憶體裝置或具有合適效能以作為處理記憶體的一些其它記憶體裝置。在一實施例中,記憶體裝置120能操作為用於系統100的系統記憶體,用以儲存資料122及指令121,其用於當一或多個處理器102執行應用或程序時使用。記憶體控制器集線器116亦與可選外部圖形處理器112耦接,其可與在處理器102中一或多個圖形處理器108通訊,以進行圖形和媒體運算。
在一些實施例中,ICH 130使周邊能經由高速I/O匯流排連接到記憶體裝置120和處理器102。I/O周邊包括(但不限於)音訊控制器146、韌體介面128、無線收發器126(例如,WiFi、藍牙)、資料儲存裝置124(例如,硬碟驅動、快閃記憶體等)以及用於將舊有(例如,個人系 統2(PS/2))裝置耦接至系統的舊有I/O控制器140。一或多個通用串列匯流排(USB)控制器142連接輸入裝置,像是鍵盤及滑鼠144組合。網路控制器134亦可耦接至ICH 130。在一些實施例中,高效能網路控制器(未繪示)耦接至處理器匯流排110。將理解的是,繪示的系統100為示範性的且非限制的,同時亦可使用不同組態的其它類型資料處理系統。例如,I/O控制器集線器130可在一或多個處理器102內整合,或記憶體控制器集線器116和I/O控制器集線器130可整合到獨立外部圖形處理器,像是外部圖形處理器112。
圖2為具有一或多個處理器核心202A~202N、積體記憶體控制器214以及積體圖形處理器208的處理器200之實施例的方塊圖。於此具有與任其它圖之元件相同參考號碼(或名稱)的圖2之該些元件能以類似於在此其它處說明之該者的任何方式來操作或作用,但不限於這樣。處理器200能包括多至且包括由虛線框代表的額外核心202N的額外的核心。處理器核心202A~202N之各者包括一或多個內部快取單元204A~204N。在一些實施例中,各個處理器核心亦具有對一或多個共用快取單元206的存取。
內部快取單元204A~204N和共用快取單元206代表在處理器200內的快取記憶體分層(cache memory hierarchy)。快取記憶體分層可包括在各個處理器核心內的至少一級指令及資料快取和一或多級的共用中級快取, 像是2級(L2)、3級(L3)、4級(L4)或其它級的快取,其中在外部記憶體被分類為LLC之前的最高級的快取。在一些實施例中,快取一致性邏輯維持各種快取單元206及204A~204N之間的一致性。
在一些實施例中,處理器200亦可包括成組的一或多個匯流排控制器單元216及系統代理核心210。一或多個匯流排控制器單元216管理成組的周邊匯流排,像是一或多個周邊組件互連匯流排(例如,PCI、快速PCI(PCI Express))。系統代理核心210提供用於各種處理器組件的管理功能特性(management functionality)。在一些實施例中,系統代理核心210包括一或多個積體記憶體控制器214,用以管理對各種外部記憶體裝置(未繪示)的存取。
在一些實施例中,處理器202A~202N之一或多者包括對於同步多執行緒(simultaneous multi-threading)的支援。在這類實施例中,系統代理核心210包括用於在多緒處理(multi-threaded)期間協調及操作核心202A~202N的組件。系統代理核心210可額外地包括電力控制單元(PCU;power control unit),其包括邏輯和組件,用以調節處理器核心202A~202N和圖形處理器208之電源狀態。
在一些實施例中,處理器200額外地包括圖形處理器208,用以執行圖形處理運算。在一些實施例中,圖形處理器208與成組的共用快取單元206和系統代 理核心210耦接,其包括一或多個積體記憶體控制器214。在一些實施例中,顯示控制器211與圖形處理器208耦接,用以驅動圖形處理器輸出到一或多個耦接的顯示器。在一些實施例中,顯示控制器211可為經由至少一互連與圖形處理器耦接之分開的模組,或可整合在圖形處理器208或系統代理核心210內。
在一些實施例中,使用基於環狀的互連單元212來耦接處理器200之內部組件。然而,可使用替代的互連單元,像是點對點互連、切換互連(switched interconnect)或包含在本領域中周知的其他技術。在一些實施例中,圖形處理器208經由I/O連結213與環狀互連212耦接。
示範性I/O連結213代表多個各式個樣的I/O互連之至少一者,包括封裝上I/O互連(on package I/O interconnect),其促進各種處理器組件和高效能嵌入式記憶體模組218之間的通訊,像是eDRAM模組。在一些實施例,處理器核心202~202N之各者和圖形處理器208使用嵌入式記憶體模組218作為共用最後級快取。
在一些實施例中,處理器核心202A~202N為執行相同指令集架構的同質核心。在另一實施例中,處理器核心202A~202N按照指令集架構(ISA;instruction set architecture)為異質的,其中處理器核心202A~N之一或多者執行第一指令集,同時其它核心之至少一者執行第一指令集或不同指令集之子集。在一實施例中,處理器核心 202A~202N按照微架構為異質的,其中具有相對較高功率消耗的一或多個核心與具有較低功率消耗的一或多個功率核心耦接。此外,處理器200能在一或多個晶片上實行或實行為除了其它組件以外具有闡述的組件的SoC積體電路。
圖3為圖形處理器300之方塊圖,其可為獨立圖形處理單元或可為與複數個處理核心整合的圖形處理器。在一些實施例中,圖形處理器經由記憶體映射的I/O介面來對在圖形處理器上的暫存器通訊且具有放置到處理器記憶體中的命令。在一些實施例中,圖形處理器300包括用以存取記憶體的記憶體介面314。記憶體介面314能為對本地記憶體、一或多個內部快取、一或多個共用外部快取及/或系統記憶體的介面。
在一些實施例中,圖形處理器300亦包括顯示控制器302,用以將顯示輸出資料驅動至顯示裝置320。顯示控制器302包括用於一或多個重疊平面的硬體以用於顯示以及包括多層的視訊或使用者介面元件的成分。在一些實施例中,圖形處理器300包括視訊編解碼器引擎306,用以從或在一或多個媒體編碼格式之間將媒體編碼、解碼或轉碼(transcode),媒體編碼格式包括(但不限於)像是MPEG-2的動態圖碼專家群(MPEG;Moving Picture Experts Group)格式、像是H.264/MPEG-4 AVC的先進視訊編碼(AVC;Advanced Video Coding)格式以及像是JPEG的動畫&電視工程社群(SMPTE;Society of Motion Picture & Television Engineers)421M/VC-1及聯合圖形專家群(JPEG;Joint Photographic Experts Group)格式和動態JPEG(MJPEG;Motion JPEG)格式。
在一些實施例中,圖形處理器300包括區塊影像轉移(BLIT;block image transfer)引擎304,用以進行二維(2D)柵格器(rasterizer)運算,例如包括位元邊界區域轉移(bit-boundary block transfer)。然而,在一實施例中,使用圖形處理引擎(GPE;graphics processing engine)310之一或多個組件來進行2D圖形運算。在一些實施例中,圖形處理引擎310為用於進行圖形運算的計算引擎,包括三維(3D)圖形運算及媒體運算。
在一些實施例中,GPE 310包括用於進行3D運算的3D管線312,像是使用作用在3D基本形狀(primitive shape)(例如,矩形、三角形等)上的處理函數來算繪三維影像及場景。3D管線312包括在元件內進行各種任務及/或產出(spawn)執行的執行緒給3D/媒體子系統315的可編程及固定功能元件。當能使用3D管線312以進行媒體運算時,GPE 310之實施例亦包括媒體管線316,其具體使用來進行媒體運算,像是視訊後處理(video post-processing)和影像增強。
在一些實施例中,媒體管線316包括固定功能或可編程邏輯單元,用以進行一或多個專門的媒體運算,像是視訊解碼加速、視訊解交錯(de-interlacing)以及取代或代表視訊編解碼器引擎306的視訊編碼加速。在一 些實施例中,媒體管線316額外地包括執行緒產出單元,用以產出用於在3D/媒體子系統315上執行的執行緒。所產出的執行緒對於在被包括在3D/媒體子系統315中之一或多個圖形執行單元上的媒體運算來進行計算。
在一些實施例中,3D/媒體子系統315包括用於執行由3D管線312及媒體管線316所產出的執行緒之邏輯。在一實施例中,管線發送執行緒執行請求給3D/媒體子系統315,其包括執行緒分派邏輯,以用於仲裁及分派各種請求給可用的執行緒執行資源。執行資源包括圖形執行單元之陣列,用以處理3D及媒體執行緒。在一些實施例中,3D/媒體子系統315包括用於執行緒指令及資料的一或多個內部快取。在一些實施例中,子系統亦包括共用記憶體,其包括暫存器及可定址記憶體,用以在執行緒之間共用資料且用以儲存輸出資料。
3D/媒體處理
圖4為依據一些實施例的圖形處理器之圖形處理引擎410的方塊圖。在一實施例中,GPE 410為在圖3所繪示的GPE 310之一版本。於此具有與任其它圖之元件相同參考號碼(或名稱)的圖4之元件能以類似於在此其它處說明之該者的任何方式來操作或作用,但不限於這樣。
在一些實施例中,GPE 410與命令串流器(command streamer)403耦接,其提供命令串流給GPE 3D 及媒體管線412、416。在一些實施例中,命令串流器403係耦接至記憶體,其可以為系統記憶體或是內部快取記憶體和共用快取記憶體之一或多者。在一些實施例中,命令串流器403從記憶體接收命令且將命令發送至3D管線412及/或媒體管線416。命令為從環狀緩衝器取出的指示(directive),環狀緩衝器儲存用於3D及媒體管線412、416的命令。在一實施例中,環狀緩衝器可以額外地包括批次命令(batch command)緩衝器,其儲存多個命令之批次。3D及媒體管線412、416藉由經由在分別管線內的邏輯進行運算或藉由分派一或多個執行執行緒給執行單元陣列414來處理命令。在一些實施例中,執行單元陣列414為可擴充的,使得陣列基於GPE 410之目標功率和效能等級包括可變數量的執行單元。
在一些實施例中,取樣引擎430與記憶體(例如,快取記憶體或系統記憶體)及執行單元陣列414耦接。在一些實施例中,取樣引擎430提供用於執行單元陣列414的記憶體存取機制而允許執行陣列414從記憶體讀取圖形及媒體資料。在一些實施例中,取樣引擎430包括用以進行用於媒體的專門影像取樣運算之邏輯。
在一些實施例中,在取樣引擎430中的專門媒體取樣邏輯包括去噪(de-noise)/解交錯模組432、運動估計模組434以及影像縮放及過濾模組436。在一些實施例中,去噪/解交錯模組432包括用以在解碼的視訊資料上進行去噪或解交錯演算法之一或多者的邏輯。解交錯邏 輯將交錯的視訊內容之交替場(alternating field)結合成視訊之單一訊框。去噪邏輯從視訊或影像資料降低或移除資料噪訊。在一些實施例中,去噪邏輯和解交錯邏輯為運動適應性的(motion adaptive)並且基於在視訊資料中偵測的運動量來使用空間或時間過濾。在一些實施例中,去噪/解交錯模組432包括專用運動偵測邏輯(例如,在運動估計引擎434內)。
在一些實施例中,運動估計引擎434藉由進行視訊加速功能(像是在視訊資料上的運動向量估計和預測)提供用於視訊運算的硬體加速。運動估計引擎決定描述連續視訊框之間的影像資料之變換的運動向量。在一些實施例中,圖形處理器媒體編解碼器使用視訊運動估計引擎434來在巨區塊級於視訊上進行運算,其可另為太計算密集的(computationally intensive)而無法以通用處理器執行。在一些實施例中,運動估計引擎434一般可用於圖形處理器組件以協助視訊解碼及處理功能,其為敏感於或適應於在視訊資料內的運動之方向或幅度。
在一些實施例中,影像縮放及過濾模組436進行影像處理運算以增強產生的影像及視訊之視覺品質。在一些實施例中,縮放及過濾模組436在提供資料給執行單元陣列414之前於取樣運算期間處理影像及視訊資料。
在一些實施例中,GPE 410包括資料埠444,其提供用於圖形子系統的額外機制以存取記憶體。在一些實施例中,資料埠444促進用於運算的記憶體存取,運算 包括算繪目標寫入、恆定緩衝器讀取、暫用記憶體(scratch memory)空間讀取/寫入以及媒體表面存取。在一些實施例中,資料埠444包括快取記憶體空間,用以對記憶體進行快取存取。快取記憶體可以為單一資料快取或分開成多個快取以用於多個子系統,其經由資料埠存取記憶體(例如,算繪緩衝器快取、恆定緩衝器快取等)。在一些實施例中,在執行單元陣列414中的執行單元上執行的執行緒藉由經由耦接GPE 410之子系統之各者的資料分佈互連交換訊息來與資料埠通訊。
執行單元
圖5為圖形處理器500之另一實施例的方塊圖。於此具有與任其它圖之元件相同參考號碼(或名稱)的圖5之元件能以類似於在此其它處說明之該者的任何方式來操作或作用,但不限於這樣。
在一些實施例中,圖形處理器500包括環狀互連502、管線前端504、媒體引擎537以及圖形核心580A~580N。在一些實施例中,環狀互連502將圖形處理器耦接至其它處理單元,包括其它圖形處理器或一或多個通用處理器核心。在一些實施例中,圖形處理器為在多核心處理系統內整合的許多處理器之一者。
在一些實施例中,圖形處理器500經由環狀互連502接收命令之批次。到來的命令係由在管線前端504中的命令串流器503來解譯。在一些實施例中,圖形 處理器500包括可擴充執行邏輯,用以經由圖形核心580A~580N進行3D幾何處理及媒體處理。對於3D幾何處理命令,命令串流器503供應命令給幾何管線536。對於至少一些媒體處理命令,命令串流器503供應命令給視訊前端534,其與媒體引擎537耦接。在一些實施例中,媒體引擎537包括視訊品質引擎(VQE;Video Quality Engine)530,以用於視訊及影像後處理,且包括多格式編碼/解碼(MFX;multi-format encode/decode)533引擎,用以提供硬體加速的媒體資料編碼及解碼。在一些實施例中,幾何管線536和媒體引擎537各者產生執行執行緒,以用於由至少一圖形核心580A提供的執行緒執行資源。
在一些實施例中,圖形處理器500包括可擴充執行緒執行資源,其採用模組化核心580A~580N(有時稱為核心片層(core slice)),各者具有多個子核心550A~550N、560A~560N(有時稱為核心子片層(core sub-slice))。在一些實施例中,圖形處理器500可以具有任何數目的圖形核心580A到580N。在一些實施例中,圖形處理器500包括圖形核心580A,其具有至少第一子核心550A及第二核心子核心560A。在其它實施例中,圖形處理器為具有單一子核心(例如,550A)的低功率處理器。在一些實施例中,圖形處理器500包括多個圖形核心580A~580N,各者包括一組第一子核心550A~550N和一組第二子核心560A~560N。在該組第一子核心550A~550N中各個子核心包括至少第一組執行單元 552A~552N和媒體/紋理取樣器554A~554N。在該組第二子核心560A~560N中各個子核心包括至少第二組執行單元562A~562N和取樣器564A~564N。在一些實施例中,各個子核心550A~550N、560A~560N共用一組共用資源570A~570N。在一些實施例中,共用資源包括共用快取記憶體和像素運算邏輯。其它共用資源亦可被包括在圖形處理器之各種實施例中。
圖6闡述包括在GPE之一些實施例中運用的處理元件之陣列的執行緒執行邏輯600。於此具有與任其它圖之元件相同參考號碼(或名稱)的圖6之元件能以類似於在此其它處說明之該者的任何方式來操作或作用,但不限於這樣。
在一些實施例中,執行緒執行邏輯600包括像素著色器602、執行緒分派器604、指令快取606、包括複數個執行單元608A~608N的可擴充執行單元陣列、取樣器610、資料快取612以及資料埠614。在一些實施例中,所包括的組件係經由連結到組件之各者的互連組構(interconnect fabric)來進行互連。在一些實施例中,執行緒執行邏輯600包括透過一或多個指令快取606對記憶體的一或多個連接(像是系統記憶體或快取記憶體)、資料埠614、取樣器610以及執行單元陣列608A~608N。在一些實施例中,各個執行單元(例如,608A)為能夠執行多個同時執行緒及對於個執行緒並行處理多個資料元件的個別向量處理器。在一些實施例中,執行單元陣列608A~608N 包括任何數目個別執行單元。
在一些實施例中,主要使用執行單元陣列608A~608N以執行「著色」程式。在一些實施例中,在陣列608A~608N中的執行單元執行包括用於許多標準3D圖形著色器指令的原生支援的指令集,使得來自圖形庫的著色程式(例如,直接3D及開放GL)係以最小轉譯來執行。執行單元支援頂點(vertex)及幾何處理(例如,頂點程式、幾何程式、頂點著色器)、像素處理(例如,像素著色器、片段著色器(fragment shader))以及通用處理(例如,計算及媒體著色器)。
在執行單元陣列608A~608N中的各個執行單元在資料元件之陣列上運算。資料元件之數目為「執行尺寸」,或是用於指令的通道之數目。執行通道為用於資料元件存取、遮蔽及在指令內流程控制之執行的邏輯單元。通道之數目可無關於用於特定圖形處理器的實體算術邏輯單元(ALU;Arithmetic Logic Unit)或浮點單元(FPU;Floating Point Unit)之數目。在一些實施例中,執行單元608A~608N支援整數及浮點資料類型。
執行單元指令集包括單指令多資料(SIMD;single instruction multiple data)指令。各種資料元件在暫存器中能被儲存為緊縮資料類型(packed data type)並且執行單元將基於元件之資料尺寸來處理各種元件。舉例來說,當在256位元寬的向量上運算時,向量之256位元儲存在暫存器中並且執行單元在向量上運算為4個分開的 64位元緊縮資料元件(四倍字(QW;Quad-Word)尺寸資料元件)、8個分開的32位元緊縮資料元件(雙倍字(DW;Double Word)尺寸資料元件)、16個分開的16位元緊縮資料元件(字(W)尺寸資料元件)或是32個分開的8位元資料元件(位元組(B;byte)尺寸資料元件)。然而,不同的向量寬度和暫存器尺寸是可能的。
一或多個內部指令快取(例如,606)被包括在執行緒執行邏輯600中,用以對用於執行單元的執行緒指令進行快取。在一些實施例中,一或多個資料快取(例如,612)被包括以在執行緒執行期間對執行緒資料進行快取。在一些實施例中,取樣器610被包括以提供用於3D運算的紋理取樣以及用於媒體運算的媒體取樣。在一些實施例中,取樣器610包括專門的紋理或媒體取樣功能特性,用以在提供取樣的資料給執行單元之前於取樣過程期間處理紋理或媒體資料。
在執行期間,圖形及媒體管線經由執行緒產出及分派邏輯對執行緒執行邏輯600發送執行緒發起請求。在一些實施例中,執行緒執行邏輯600包括本地執行緒分派器604,其仲裁來自圖形及媒體管線的執行緒發起請求,並且在一或多個執行單元608A~608N上體現請求的執行緒。舉例來說,幾何管線(例如,圖5之536)分派頂點處理、曲面細分(tessellation)或幾何處理執行緒給執行緒執行邏輯600(圖6)。在一些實施例中,執行緒分派器604亦能處理來自執行著色器程式的運行時刻執行緒產 出請求(runtime thread spawning request)。
一旦幾何物件之群組已被處理且被柵格化成像素資料,則呼用像素著色器602以進一步計算輸出資訊並造成結果被寫入到輸出表面(例如,色彩緩衝器、深度緩衝器、模板(stencil)緩衝器等)。在一些實施例中,像素著色器602計算各種頂點屬性之值,其係用以跨柵格化的物件來被內插。在一些實施例中,像素著色器602接著執行應用程式介面(API;application programming interface)--供應的像素著色器程式。為了執行像素著色器程式,像素著色器602經由執行緒分派器604分派執行緒給執行單元(例如,608A)。在一些實施例中,像素著色器602使用在取樣器610中的紋理取樣邏輯來在記憶體中儲存的紋理圖(texture map)中存取紋理資料。在紋理資料和輸入幾何資料上的算術運算計用於各個幾何片段的像素色彩資料或從進一步處理丟棄一或多個像素。
在一些實施例中,資料埠614提供記憶體存取機制以為了執行緒執行邏輯600輸出處理的資料給記憶體以用於在圖形處理器輸出管線上處理。在一些實施例中,資料埠614包括或耦接到一或多個快取記憶體(例如,資料快取612)以經由資料埠對用於記憶體存取的資料進行快取。
圖7為依據一些實施例闡述圖形處理器指令格式700的方塊圖。在一或多個實施例中,圖形處理器執行單元支援具有在多個格式上之指令的指令集。實線框闡 述一般被包括在執行單元指令中的組件,同時虛線包括可選或僅被包括在指令之子集中的組件。在一些實施例中,說明及闡述的指令格式700為巨集指令(macro-instruction),因為他們為供應給執行單元的指令,其相對於一旦處理指令時從指令解碼造成的微運算(micro-operation)。
在一些實施例中,圖形處理器執行單元原生地支援在128位元格式710中的指令。64位元壓縮指令格式730可用於基於選定指令的一些指令、指令選項以及眾多的運算元。原生格式128位元格式710提供對所有指令選項的存取,同時一些選項和運算被限制在64位元格式730中。在64位元格式730中可用的原生指令隨實施例變化。在一些實施例中,使用在索引欄位713中之一組索引值部分地壓縮指令。執行單元硬體基於索引值參考一組壓縮表且使用壓縮表輸出以在128位元格式710中重建原生指令。
對於各個格式,指令運算碼712界定執行單元要用以進行的運算。執行單元並行地執行跨各個運算元之多個資料元件的各個指令。例如,反應於相加指令,執行單元進行跨代表紋理元件或圖片元件之各個色彩通道的同時相加運算。藉由預設,執行單元進行跨運算元之所有資料通道的各個指令。在一些實施例中,指令控制欄位714在某些執行選項之上致能控制,像是通道選擇(例如,預測)和資料通道次序(例如,拌和(swizzle))。對於128位 元指令710,執行尺寸(exec-size)欄位716限定將被並行地執行的資料通道的數目。在一些實施例中,執行尺寸欄位716並非可用於在64位元壓縮指令格式730中使用。
一些執行單元指令具有至多三個運算元,其包括兩個來源運算元src0 720、src1 722和一個目的地718。在一些實施例中,執行單元支援雙目的地指令,其中隱含了目的地之其中之一。資料操控指令(manipulation instruction)能具有第三來源運算元(例如,SRC2 724),其中指令運算碼712決定來源運算元之數目。指令的最後來源運算元可以為以指令傳遞的立即(例如,硬編碼的(hard-coded))值。
在一些實施例中,128位元指令格式710包括存取/位址模式資訊726,其例如明定直接暫存器定址模式或間接暫存器定址模式是否被使用。當使用直接暫存器定址模式時,一或多個運算元之暫存器位址係直接地由在指令710中的位元所提供。
在一些實施例中,128位元指令格式710包括存取/位址模式欄位726,其明定用於指令的位址模式及/或存取模式。在一實施例中,存取模式用以界定對於指令的資料存取對齊(data access alignment)。一些實施例支援包括16位元組對齊存取模式和1位元組對齊存取模式的存取模式,其中存取模式之位元組對齊決定指令運算元之存取對齊。例如,當在第一模式中時,指令710可對來源及目的地運算元使用位元組對齊定址,且當在第二模式中 時,指令710可對所有來源及目的地運算元使用16位元組對齊的定址。
在一實施例中,存取/位址模式欄位726之位址模式部分決定指令是否要用以使用直接或間接定址。當使用直接暫存器定址模式時,在指令710中的位元直接提供一或多個運算元之暫存器位址。當使用間接暫存器定址模式時,一或多個運算元之暫存器位址可基於位址暫存器值和在指令中位址立即欄位來計算。
在一些實施例中,指令係基於運算碼712位元欄位來分群組用以簡化運算碼解碼740。對於8位元運算碼,位元4、5及6允許執行單元決定運算碼的類型。此顯示的精確運算碼分群組僅為範例。在一些實施例中,移動和邏輯運算碼群組742包括資料移動及邏輯指令(例如,移動(mov)、計算(cmp))。在一些實施例中,移動和邏輯群組742共用5個最高有效位元(MSB;most significant bit),其中移動(mov)指令係以0000xxxxb之形式並且邏輯指令係以0001xxxxb之形式。流程控制指令群組744(例如,呼叫、跳躍(jmp))包括以0010xxxxb之形式(例如,0x20)。雜項指令群組746包括指令之混合,其包括以0011xxxxb之形式(例如,0x30)的同步指令(例如,等待、發送)。平行數學指令群組748包括以0100xxxxb(例如,0x40)之形式的分量方式(component-wise)算術指令(例如,加、乘(mul))。平行數學群組748跨資料通道並行地進行算術運算。向量數學群組750包括以0101xxxxb(例 如,0x50)之形式的算術指令。(例如,dp4)向量數學群組進行像是在向量運算元上的內積(dot product)計算的算術。
圖形管線
圖8為圖形處理器800之另一實施例的方塊圖。於此具有與任其它圖之元件相同參考號碼(或名稱)的圖8之元件能以類似於在此其它處說明之該者的任何方式來操作或作用,但不限於這樣。
在一些實施例中,圖形處理器800包括圖形管線820、媒體管線830、顯示引擎840、執行緒執行邏輯850以及算繪輸出管線870。在一些實施例中,圖形處理器800為在包括一或多個通用處理核心的多核心處理系統內的圖形處理器。圖形處理器藉由到一或多個控制暫存器(未繪示)的暫存器寫入或經由發出到圖形處理器800(其經由環形互連802)的命令來控制。在一些實施例中,環形互連802將圖形處理器800耦接到其它處理組件,像是其它圖形處理器或通用處理器。來自環形互連802的命令係由命令串流器803來解譯,其將指令供給到圖形管線820或媒體管線830之個別組件。
在一些實施例中,命令串流器803引導頂點抓取器(vertex fetcher)805之運算,其從記憶體讀取頂點資料且執行由命令串流器803提供的頂點處理命令。在一些實施例中,頂點抓取器805提供頂點資料給頂點著色器 807,其對各個頂點進行座標空間轉換及照明運算(lighting operation)。在一些實施例中,頂點抓取器805和頂點著色器807藉由將執行執行緒經由執行緒分派器831分派給執行單元852A、852B來執行頂點處理指令。
在一些實施例中,執行單元852A、852B為具有用於進行圖形及媒體運算之指令集的向量處理器之陣列。在一些實施例中,執行單元852A、852B具有附加的L1快取851,其特定用於各個陣列或陣列間的共用。快取可以組態為資料快取、指令快取或分割成包含在不同分割中的資料及指令的單一快取。
在一些實施例中,圖形管線820包括曲面細分組件,用以進行3D物件之硬體加速曲面細分。在一些實施例中,可編程外殼著色器(hull shader)811組態該曲面細分運算。可編程域著色器817提供曲面細分輸出之後端評估。曲面細分器813在外殼著色器811之方向上運算並且包含專用邏輯以基於提供為對圖形管線820之輸入的粗略幾何模型產生一組詳細的幾何物件。在一些實施例中,若未使用曲面細分,則可以繞過曲面細分組件811、813、817。
在一些實施例中,完整幾何物件能由經由分派到執行單元852A、852B的一或多個執行緒的幾何著色器819處理或是可直接行進到剪取器(clipper)829。在一些實施例中,幾何著色器在整個幾何物件上運算,而不是如在圖形管線之先前階段中的頂點或頂點之補丁。若禁能曲 面細分,則幾何著色器819從頂點著色器807接收輸入。在一些實施例中,幾何著色器819可藉由幾何著色器程式編程,用以若禁能曲面細分單元則進行幾何曲面細分。
在柵格化之前,剪取器829處理頂點資料。剪取器829可為固定功能剪取器或具有剪取及幾何著色器功能的可編程剪取器。在一些實施例中,在算繪輸出管線870中的柵格器及深度測試組件873分派像素著色器以將幾何物件轉換成他們每像素表示。在一些實施例中,像素著色器邏輯被包括在執行緒執行邏輯850中。在一些實施例中,應用能繞過柵格器873且經由流出單元823存取未柵格化的頂點資料。
圖形處理器800具有互連匯流排、互連組構或允許資料及訊息在處理器之主要組件之間通過的一些其它互連機制。在一些處理器中,執行單元852A、852B及關聯的快取851、紋理及媒體取樣器854以及紋理/取樣器快取858經由資料埠856互連以進行記憶體存取且與處理器之算繪輸出管線組件通訊。在一些實施例中,取樣器854、快取851、858以及執行單元852A、852B各者具有分開的記憶體存取路徑。
在一些實施例中,算繪輸出管線870包含柵格器及深度測試組件873,其將基於頂點的物件(vertex-based object)轉換成關聯的基於像素的表示(pixel-based representation)。在一些實施例中,柵格器邏輯包括視窗/遮蔽器單元,用以進行固定功能的三角及線柵格化。關聯 的算繪快取878和深度快取879亦在一些實施例中是可利用的。像素運算組件877在資料上進行基於像素的運算,雖然在一些實例中,與2D運算關聯的像素運算(例如,以拌和(blending)來位元區塊影像轉移)係藉由2D引擎841來進行,或是使用重疊顯示平面藉由顯示控制器843來在顯示時間取代。在一些實施例中,共用L3快取875對所有圖形組件是可用的,其允許不使用主系統記憶體下共用資料。
在一些實施例中,圖形處理器媒體管線830包括媒體引擎837和視訊前端834。在一些實施例中,視訊前端834從命令串流器803接收管線命令。在一些實施例中,媒體管線830包括分開的命令串流器。在一些實施例中,在發送命令到媒體引擎837之前,視訊前端834處理媒體命令。在一些實施例中,媒體引擎837包括執行緒產出功能特性,用以產出用於經由執行緒分派器831分派到執行緒執行邏輯850的執行緒。
在一些實施例中,圖形處理器800包括顯示引擎840。在一些實施例中,顯示引擎840在處理器800外部且經由環形互連802或一些其它互連匯流排或組構來與圖形處理器耦接。在一些實施例中,顯示引擎840包括2D引擎841和顯示控制器843。在一些實施例中,顯示引擎840包含特別目的邏輯,其能夠獨立地運算3D管線。在一些實施例中,顯示控制器843與顯示裝置(未繪示)耦接,其可為系統積體顯示裝置,如在膝上型電腦中的或經 由顯示裝置連接器附接的外部顯示裝置。
在一些實施例中,圖形管線820和媒體管線830可組態以基於多個圖形及媒體編程介面來進行運算,並且非特定於任何應用程式介面(API)。在一些實施例中,用於圖形處理器的驅動器軟體將特定於特別圖形或媒體庫的API呼叫轉譯成能由圖形處理器處理的命令。在一些實施例中,對於來自科納斯組織(Khronos Group)的開放圖形庫(OpenGL;Open Graphics Library)及開放計算語言(OpenCL;Open Computing Language)、來自微軟公司的直接3D庫(Direct3D library)提供支援,或可對OpenGL及D3D兩者提供支援。亦可對於開放來源電腦版本庫(OpenCV;Open Source Computer Vision Library)提供支援。若可從未來API之管線對圖形處理器之管線作成映射,則亦會支援具有相容3D管線的未來API。
圖形管線編程
圖9A為依據一些實施例闡述圖形處理器指令格式900的方塊圖。圖9B為依據實施例闡述圖形處理器命令序列910的方塊圖;在圖9A中的實線框闡述一般被包括在圖形命令中的組件,同時虛線包括可選或僅被包括在圖形命令之子集中的組件。圖9A之示範性圖形處理器命令格式900包括資料欄位,用以識別命令之目標客戶端902、命令運算碼(opcode)904以及用於命令的相關資料906。子運算碼905及命令尺寸908亦包括在一些命令 中。
在一些實施例中,客戶端902明定處理命令資料的圖形裝置的客戶端單元。在一些實施例中,圖形處理器命令剖析器檢驗各個命令的客戶端欄位,用以調適命令之未來處理以及路由命令資料到適當的客戶端單元。在一些實施例中,圖形處理器客戶端單元包括記憶體介面單元、算繪單元、2D單元、3D單元以及媒體單元。各個客戶端單元具有處理命令的相應處理管線。一旦由客戶端單元接收命令時,客戶端單元讀取運算碼904,且若出現,子運算碼905用以決定要進行的運算。客戶端單元使用在資料欄位906中的資訊來進行命令。對於一些命令,預期明確的命令尺寸908以明定命令的尺寸。在一些實施例中,命令剖析器基於命令運算碼自動地決定命令之至少一些的尺寸。在一些實施例中,命令係經由多個雙倍字來對齊。
在圖9B中的流程圖繪示示範性圖形處理器命令序列910。在一些實施例中,採用圖形處理器之實施例的資料處理系統之軟體或韌體使用繪示以安裝、執行及終止成組的圖形運算的命令序列之版本。僅為了範例的目的,繪示及說明樣本命令序列,同時實施例並不限於這些特定命令或不限於此命令序列。再者,命令可發出為在命令序列中命令之批次,使得圖形處理器將在至少部分同時發生中處理命令之序列。
在一些實施例中,圖形處理器命令序列910 可以管線清洗(pipeline flush)命令912開始來引起任何主動圖形管線完成對於管線同時擱置的命令。在一些實施例中,3D管線922和媒體管線924並非同時地運算。進行管線清洗以引起主動圖形管線完成任何擱置命令。反應於管線清洗,用於圖形處理器的命令剖析器將暫停命令處理,直到主動繪圖引擎完成擱置運算且使相關讀取快取無效。可選地,可以對記憶體清洗標記為「髒(dirty)」之在算繪快取中的任何資料。在一些實施例中,對於管線同步或在將圖形處理器放置到低功率狀態中之前,能使用管線清洗命令912。
在一些實施例中,當命令序列需要圖形處理器明確地在管線之間切換時,使用管線選擇命令913。在一些實施例中,在發出管線命令之前於執行環境(execution context)內僅需要一次管線選擇命令913,除非環境係用以對於兩者的管線皆發出命令。在一些實施例中,立即在經由管線選擇命令913的管線切換之前需要管線清洗命令912。
在一些實施例中,管線控制命令914組態用於運算的圖形管線且使用以編程3D管線922和媒體管線924。在一些實施例中,管線控制命令914組態用於主動管線的管線狀態。在一實施例中,管線控制命令914係使用於管線同步且用以在處理命令之批次之前於主動管線內從一或多個快取記憶體清除資料。
在一些實施例中,使用回傳緩衝器狀態命令 916以組態成組的回傳緩衝器以用於分別的管線以寫入資料。一些管線運算需要一或多個回傳緩衝器之分配、選擇或組態,於處理期間運算將立即資料寫到該一或多個回傳緩衝器中。在一些實施例中,圖形處理器亦使用一或多個回傳緩衝器用以儲存輸出資料且用以進行跨執行緒通訊。在一些實施例中,回傳緩衝器狀態916包括選定尺寸及回傳緩衝器之數量以使用於成組的管線運算。
在命令序列中剩餘的命令係基於用於運算的主動管線而不同。基於管線決定920,命令序列係對以3D管線狀態930開始的3D管線922或以媒體管線狀態940開始的媒體管線924量身定制。
用於3D管線狀態930的命令包括用於頂點緩衝器狀態、頂點元件狀態、恆定色彩狀態、深度緩衝器狀態以及用以在處理3D基原(primitive)命令之前被組態的其它狀態變數的3D狀態設定命令。這些命令之值係至少部分基於使用中的特別3D API來決定。在一些實施例中,3D管線狀態930命令亦能選擇性地禁能或繞過某些管線元件,若將不會使用該些元件的話。
在一些實施例中,使用3D基原932命令以提交用以由3D管線處理的3D基原。經由3D基原932命令傳遞到圖形處理器的命令及關聯的參數被轉發到在圖形管線中的頂點抓取功能。頂點抓取功能使用3D基原932命令資料以產生頂點資料結構。頂點資料結構係儲存在一或多個回傳緩衝器中。在一些實施例中,使用3D基原932 命令以經由頂點著色器在3D基原上進行頂點運算。為了處理頂點著色器,3D管線922分派著色器執行執行緒給圖形處理器執行單元。
在一些實施例中,3D管線922係經由執行934命令或事件來觸發。在一些實施例中,暫存器寫入觸發命令執行。在一些實施例中,經由在命令序列中的「去(go)」或「踢(kick)」命令來觸發執行。在一實施例中,使用管線同步命令來觸發命令執行以清洗通過圖形管線的命令序列。3D管線將進行用於3D基原的幾何處理。一旦完成運算,造成的幾何物件被柵格化且像素引擎上色造成的像素。亦可包括用以控制像素著色及像素後端運算之額外的命令以用於該些運算。
在一些實施例中,當進行媒體運算時,圖形處理器命令序列910跟隨媒體管線924途徑。一般而言,對於媒體管線924編程的特定使用及方式取決於要用以進行的媒體或計算運算。在媒體解碼期間可對媒體管線卸載特定媒體解碼運算。在一些實施例中,亦能繞過媒體管線並且能使用由一或多個通用處理核心所提供的資源整體或部分地進行媒體解碼。在一實施例中,媒體管線亦包括用於通用圖形處理器單元(GPGPU;general-purpose graphics processor unit)運算的元件,其中使用圖形處理器以使用沒有明確關於圖形基原之算繪的計算著色器程式進行SIMD向量運算。
在一些實施例中,媒體管線924係如3D管線 922的類似方式來組態。在媒體物件命令942之前,分派或放置成組的媒體管線狀態命令940到命令佇列中。在一些實施例中,媒體管線狀態命令940包括用以組態將被使用以處理媒體物件之媒體管線元件的資料。此包括用以在媒體管線內組態視訊解碼及視訊編碼邏輯的資料,像是編碼或解碼格式。在一些實施例中,媒體管線狀態命令940亦支援使用對包含狀態設定之批次的「間接」狀態元件之一或多個指標。
在一些實施例中,媒體物件命令942將指標供應給媒體物件以用於藉由媒體管線來處理。媒體物件包括記憶體緩衝器,其包含用以被處理的視訊資料。在一些實施例中,在發出媒體物件命令942之前,所有媒體管線狀態必需是有效的。一旦組態管線狀態且媒體物件命令942排隊時,媒體管線924係經由執行命令944或特效執行事件(例如,暫存器寫入)來觸發。可接著藉由被3D管線922或媒體管線924提供的運算後處理來自媒體管線924輸出。在一些實施例中,GPGPU運算係在與媒體運算類似的方式來組態及執行。
圖形軟體架構
圖10依據一些實施例闡述用於資料處理系統1000的示範性圖形軟體架構。在一些實施例中,軟體架構包括3D圖形應用1010、作業系統1020以及至少一處理器1030。在一些實施例中,處理器1030包括圖形處理 器1032以及一或多個通用處理器核心1034。圖形應用1010和作業系統1020各者在資料處理系統之系統記憶體1050中執行。
在一些實施例中,3D圖形應用1010包含一或多個著色器程式,其包括著色器指令1012。著色器語言指令可在高階著色器語言中,像是高階著色器語言(HLSL;High Level Shader Language)或OpenGL著色器語言(GLSL;OpenGL Shader Language)。應用亦包括在合適於藉由通用處理器核心1034執行的機器語言中可執行指令1014。應用亦包括由頂點資料界定的圖形物件1016。
在一些實施例中,作業系統1020為來自微軟公司的微軟視窗(Microsoft® Windows®)作業系統、專有的UNIX類作業系統或使用林納斯(Linux)內核之變體的開放來源UNIX類作業系統。當Direct3D API在使用時,作業系統1020使用前端著色器編譯器1024用以將在HLSL中的任何著色器指令1012編譯成低階著色器語言。編譯可為即時化(JIT;just-in-time)編譯或是應用能進行著色器預編譯。在一些實施例中,在3D圖形應用1010之編譯期間,高階著色器被編譯成低階著色器。
在一些實施例中,使用者模式圖形驅動器1026包含後端著色器編譯器1027用以將著色器指令1012轉換成硬體特定表示。當OpenGL API在使用時,在GLSL高階語言中的著色器指令1012被傳遞到用於編譯的 使用者模式圖形驅動器1026。在一些實施例中,使用者模式圖形驅動器1026使用作業系統內核模式功能1028用以與內核模式圖形驅動器1029通訊。在一些實施例中,內核模式圖形驅動器1029與圖形處理器1032通訊以分派命令及指令。
IP核心實行
至少一實施例之一或多個態樣可藉由儲存在機器可讀媒體上之代表性的碼來實行,其代表及/或界定在像是處理器的積體電路內的邏輯。舉例來說,機器可讀媒體可包括代表在處理器內各種邏輯的指令。當由機器讀取時,指令可引起機器製造用以進行於此說明的技術的邏輯。這類代表(已知為「IP核心」)為用於積體電路之邏輯的可再用單元,其可被儲存在有形、機器可讀媒體上作為描述積體電路之結構的硬體模型。可供應硬體模型給各種客戶或生產設施(manufacturing facility),其將硬體模型載入到生產積體電路的製造機器上。可製造積體電路使得電路進行與此說明的實施例之任一者關聯的運算。
圖11為闡述依據實施例可被使用來生產用以進行運算的積體電路之IP核心開發系統1100的方塊圖。可使用IP核心開發系統1100以產生模組化、可再使用設計,其能被納入到較大設計中或使用以建構完整積體電路(例如,SOC積體電路)。設計設施1130能以高階程式語言(例如,C/C++)產生IP核心設計之軟體模擬1110。能使 用軟體模擬1110以設計、測試及驗證IP核心之行為。接著能從模擬模型1100創建或合成暫存器轉移位準(RTL;register transfer level)設計。RTL設計1115為積體電路之行為的抽取,其塑造硬體暫存器之間數位信號的流程,包括與使用塑造的數位信號進行的關聯邏輯。除了RTL設計1115以外,亦可創建、設計或合成在邏輯位準(logic level)或電晶體位準(transistor level)上的低階設計。因此,初始設計及模擬的特定細節可能變化。
RTL設計1115或等效更可藉由設計設施合成為硬體模型1120,其可在硬體描述語言(HDL;hardware description language)上或實體設計資料的某種其它表示。可更模擬或測試HDL以驗證IP核心設計。能使用非揮發性記憶體1140(例如,硬碟、快閃記憶體或任何非揮發性儲存媒體)儲存IP核心設計以用於遞送至第三方製造設施1165。或者,可在有線連接1150或無線連接1160之上傳送IP核心設計(例如經由網際網路)。製造設施1165接著可製造至少部分基於IP核心設計的積體電路。製造的積體電路可以組態以依據於此說明的至少一實施例進行運算。
圖12為依據實施例闡述可使用一或多個IP核心來製造的晶片積體電路1200上示範性系統的方塊圖。示範性積體電路包括一或多個應用處理器1205(例如,CPU)、至少一圖形處理器1210,並且可額外包括影像處理器1215及/或視訊處理器1220,其之任一者可為來 自相同或多個不同設計設施的模組化IP核心。積體電路包括周邊或匯流排邏輯,其包括USB控制器1225、UART控制器1230、SPI/SDIO控制器1235以及I2S/I2C控制器1240。此外,積體電路能包括顯示裝置1245,其耦接至高解析度多媒體介面(HDMI;high-definition multimedia interface)控制器1250以及行動工業處理器介面(MIPI;mobile industry processor interface)顯示介面1255的一或多者。可由快閃記憶體子系統1260提供儲存,其包括快閃記憶體和快閃記憶體控制器。可經由記憶體控制器1265提供記憶體介面以用於對SDRAM或SRAM記憶體裝置存取。一些積體電路額外地包括嵌入式安全引擎1270。
此外,其它邏輯及電路可被包括在積體電路1200之處理器中,其包括額外的圖形處理器/核心、周邊界面控制器或通用處理器核心。
用於虛擬實境深度重新定位的方法及設備
如在圖13中所闡述的,一些VR裝置1304使用眼鏡來模擬距觀眾的眼睛某個距離的虛擬螢幕1301。當開發者想要創建接近觀眾的某物時,他們需要在虛擬螢幕前面創建虛擬場景,通常稱為「出螢幕(out-screen)」。也就是說,虛擬螢幕需要在圖13的區域A中被感知(perceive)。且事實上,出螢幕效應隨著當物件靠近他們時其提供自然體驗而廣泛的被接受。
然而,當使用者正觀看脫離螢幕/虛擬螢幕的內容時,他們會感受到眼痛,因為他們不僅感知在區域A的虛擬場景,亦感知在區域C、區域D或區域G中場景的部分。為了引起場景在區域A被感知,目前的解法可以僅避免虛擬場景在區域G中感知,但無法避免虛擬場景在區域C或區域D中被感知,造成眼痛。
為了解決此問題,本發明之實施例包括新的方法來VR觀看及深度重新定位。特別是,一實施例包括用於像是遊戲的VR應用之梯形深度重新定位技術。其成功的避免感知在區域C或區域D中的場景,同時仍允許該場景在區域A中被感知。
先前技術不能夠達到這些結果,因為他們中大多者將舒適區域看作矩形。在一實施例中,舒適區域被視為包括區域A、B、E及F,其意味若在這些區域內感知虛擬場景,則不會感受到眼痛。區域I及區域J為不可見的區域,其意味終端使用者將不會具有在這些區域中感知的場景。區域C、區域D、區域G及區域H係認為的眼痛區域。
一些目前的解法係基於用於深度重新定位之瓊斯方法(Jones’s method)。如在圖14A~B中所闡述,瓊斯方法界定在觀眾空間與虛擬場景空間中參數之間的關係。其可以做從在圖14B中的[N’,F’]到在圖14A中的[Z-N,Z+F]的線性映射。然而,其僅能將感知的虛擬場景壓縮成像是[Z-N,Z+F]的矩形範圍。當然,為了具有在區 域A中感知的場景,這些技術不能夠避免場景在區域C或區域D中被感知。
本發明之實施例包括用於VR實行的梯形深度重新定位技術,像是遊戲,其成功地避免虛擬場景在區域C或區域D中被感知,但仍能在區域A中被感知。綜上所述,本發明之實施例包括:1.新的演算法,於此稱為梯形深度重新定位;2.用於梯形深度重新定位的實行框架(implementation framework)。
3.對於新的演算法及實行的新的用法。
本發明之一實施例將對照在圖15中所闡述的方法來說明。可在像是VR處理器及關聯的軟體的虛擬實境(VR)架構之環境內實行此方法。然而,本發明的基本原理並不限於任何特定的VR架構。
在1501處,決定用於目標螢幕/虛擬螢幕的眼舒適區域(eye-comfortable region)。對於立體3D實行,使用者僅會具有關於螢幕的舒適感知的深度。如在圖16中所繪示,N為在螢幕1601外側的接受距離;F為在螢幕1601內側的接受距離;以及W為螢幕深度。在一實施例中,N為0.4W並且F為0.7W。
在1502處,虛擬螢幕區域係藉由從遊戲或其它圖形應用捕捉訊框(frame)來決定。在圖17中的影像1701為從圖形處理器的後緩衝器捕捉的RGB訊框並且影像1702為算繪對應影像1701之相關深度訊框。在影像 1702中,距離愈深入,關聯的物件愈白。因此,使用深度訊框,能夠提取在虛擬螢幕中的深度範圍(例如,基於白度準位(whiteness level)或與各個物件關聯的強度)。
回到圖15的方法,在1503處,各種區域之各者被細分為複數個子區域。在一實施例中,選定5個子區域,A~E。如在圖18中所繪示,使用視埠以相同比率將應用/遊戲區域細分成相關的區域。接著,進行從在遊戲空間1802中的區域A’E’到在觀眾空間1801中的區域AE的深度重新定位。
在1504處,在不同的區域A~E中以不同的方式進行深度重新定位。對於用於C’~C的深度重新定位,當其正將矩形區域C’重新定位到矩形區域C時,可使用瓊斯方法(如上所述)。對於從A’到A及從E’到E的深度重新定位,本發明之一實施例亦使用此方法。如在圖19中所闡述,由於不可見的部分將不會引起眼痛,區域A/E可看作矩形。
在一實施例中,對於從B’到B及從D’到D的深度重新定位,進行自矩形到梯形的深度重新定位。這不能如同區域A’到A一樣完成,或其將如對照上述圖13所討論的造成眼痛(回想眼痛區域C及區域D)。在當下面討論將聚焦於從B’到B的深度重新定位的同時,相同的基本原理應用於D’到D。
如在圖20中所闡述的,在一實施例中,B’被分成多個小區域。B’可被分成任何數目的區域,但較高數 目的區域將造成更有效的模擬。在圖20中的範例中,為了闡述的目的,區域被細分為三個小區域2001。這些區域接著被看作矩形2002並且在這些子區域2002之各者上進行從B’到B的深度重新定位,造成在觀眾空間中矩形2003之對應組。在一實例中,對於從矩形2002到矩形2003的深度重新定位,可使用如上述對照圖14A~B所說明的葛瑞姆瓊斯(Graham Jones)來產生預期的3D訊框。
回到在圖15中的方法,在1505處,結合了場景之各種部分。特別是,在圖21中所闡述,在遊戲空間2101中個別區域A’~E’之各者被細分成複數個子區域,並且個別地重新定位子區域之各者以產生個別視埠A~E 2102(例如請見圖20及關聯的文字)。接著以不同的視埠結合不同的攝像機視域(view),造成最終觀眾空間2103。因此,使用視埠結合產生的立體3D訊框,造成顯著改善的3D出螢幕體驗。
在圖22中闡述依據本發明之一實施例的架構。闡述的架構可以硬體、軟體或其任一結合來實行。例如,在一實施例中,闡述的架構係嵌入在虛擬實境圖形處理電路內。然而,本發明的基本原理並不限於此特定的實行。
在圖22中,區域分析及分類電路2210分析螢幕空間2200以識別眼舒適區域及眼痛區域。如所提及的,在圖16中所繪示的實施例中,若N為在螢幕外側的接受距離且F為在螢幕內側的接受距離以及W為螢幕深 度,接著則N為.4W且F為.7W。此外,在一實施例中,區域分析及分類電路2210使用深度訊框決定在場景中的深度範圍。
反應於由區域分析及分類電路2210所進行的分析,區域細分電路2215將舒適區域細分成N個區域。在圖18中所繪示的範例中,基於N、F及W之值以及自使用者的眼描繪的線與螢幕之邊緣的交叉來選定5個區域。例如,在圖18中,區域C係基於自使用者之眼的射線與位在自螢幕前面距離N處的線的交叉(如圖述的)。區域D和B係界定為在此C之邊界與螢幕之邊緣之間的距離,並且E和A係基於螢幕與從通過螢幕之邊緣的使用者之眼的每個描繪的線到定位於螢幕後方距離F的線的邊界來界定。
一旦界定了區域,特定區域深度重新定位電路2220對於不同區域進行不同類型的重新定位運算。如所提及的,對於用於C’到C、A’到A及E’到E的深度重新定位,可使用瓊斯方法,將該些區域看作矩形(由於不可見的部分將不會引起眼痛,區域A/E可看作矩形)。然而,對於從B’到B及從D’到D的深度重新定位,進行自矩形到梯形的深度重新定位,其將造成如上所述的眼痛。因此,在一實施例中,特定區域深度重新定位電路2220將B’和D’分成多個較小的子區域,其接著被視為矩形。接著在子區域矩形上進行深度重新定位(例如,亦使用瓊斯方法)以產生預期的3D訊框。最後,場景結合器電路 2225將重新定位的視埠區域結合以產生最終3D訊框2230。
綜上所述,本發明之實施例在VR觀看期間增強終端使用者的體驗。改善的且更舒適的出螢幕效應讓使用者感覺更接近虛擬螢幕,因而在VR觀看期間感覺更沉浸。與目前解決方法相比,本發明之實施例係基於準確舒適的區域分析且消除趨向於引起眼痛的區域(現今在VR觀看上嚴重的問題)。
本發明之實施例可包括各種步驟,其已說明於上。該些步驟可以機器可執行指令來體現,其可被使用來引起通用或專用處理器進行該些步驟。或者,可藉由包含用於進行該些步驟的硬接線邏輯的特定硬體組件或是藉由編程的電腦組件與定製硬體組件之任一結合來進行該些步驟。
如於此所說明的,指令可指的是硬體之特定組態,像是特定應用積體電路(ASIC;application specific integrated circuit),其組態以進行某些運算或具有預定功能特性或儲存在嵌入於非暫態電腦可讀媒體中之記憶體的軟體指令。因此,在圖中繪示的技術能使用在一或多個電子裝置(例如,終端站台、網路元件等)上儲存及執行的碼和資料來實行。這類電子裝置使用電腦機器可讀媒體來儲存及通訊(內部地及/或在網路之上與其它電子裝置通訊)碼和資料,電腦機器可讀媒體像是非暫態電腦機器可讀儲存媒體(例如,磁碟;光碟;隨機存取記憶體;唯讀記憶 體;快閃記憶體裝置;相變記憶體)以及暫態電腦機器可讀通訊媒體(例如,電性、光學、聲學或其它形式的傳播信號--像是載波、紅外線信號、數位信號等)。此外,這類電子裝置典型地包括成組的耦接至一或多個其它組件的一或多個處理器,像是一或多個儲存裝置(非暫態機器可讀儲存媒體)、使用者輸入/輸出裝置(例如,鍵盤、觸控螢幕及/或顯示器)以及網路連接。該組處理器與其它組件的耦接係典型地透過一或多個匯流排和橋接器(亦稱為匯流排控制器)。運載網路流量的儲存裝置和信號分別代表一或多個機器可讀儲存媒體和機器可讀通訊媒體。因此,給定的電子裝置之儲存裝置典型地儲存碼及/或資料,以用於在該電子裝置之該組一或多個處理器上執行。當然,本發明之實施例的一或多個部分可使用軟體、韌體及/或硬體之不同的組合來實行。遍及此詳細的說明,為了解釋的目的,提出眾多的特定細節以為了提供本發明的徹底了解。然而,對本領域具有通常知識者將為明白的是,本發明可不以這些特定細節中的一些來實踐。在某些實例中,周知的結構及功能並未以詳盡的細節來說明以為了避免模糊本發明之標的。據此,本發明之範圍及精神應按照接續的申請專利範圍來判斷。

Claims (22)

  1. 一種用於虛擬實境深度重新定位的方法,包含:基於目標螢幕的特性將虛擬螢幕區域分成複數個較小的區域;針對該較小的區域之各者個別進行深度重新定位,包括識別要用以在其上運用第一深度重新定位技術之該較小的區域的第一組,以及包括識別要用以在其上運用第二深度重新定位技術之不同於該第一組的該較小的區域之第二組;其中該第一深度重新定位技術包含將該較小的區域之一或多者從該第一組細分成複數個子區域且在該子區域上個別進行深度重新定位;結合該第一深度重新定位技術和該第二深度重新定位技術之結果來算繪該虛擬螢幕區域;其中該虛擬螢幕區域包含依據在虛擬螢幕外側的接受距離、在該虛擬螢幕內側的接受距離以及該虛擬螢幕的寬度來界定之明定的舒適區域;以及其中所述在該虛擬螢幕外側的接受距離和所述在該虛擬螢幕內側的接受距離分別為0.4和0.7乘以該虛擬螢幕之寬度。
  2. 如申請專利範圍第1項的方法,更包含:基於該明定的舒適區域識別該複數個較小的區域。
  3. 如申請專利範圍第2項的方法,更包含:使用深度訊框以針對在遊戲或圖形應用之影像訊框內的物件決定深度。
  4. 如申請專利範圍第1項的方法,其中該第二深度重新定位技術包含從由該較小區域所界定的第一矩形區域將深度重新定位至第二矩形區域。
  5. 如申請專利範圍第4項的方法,其中該第二深度重新定位技術包含進行從在第一空間中的[N’,F’]到在第二視覺空間中的[Z-N,Z+F]之線性映射,其中N包含在該虛擬螢幕外側的接受距離,F包含在該虛擬螢幕內側的接受距離以及Z包含在使用者的眼與該虛擬螢幕或真實螢幕之間的距離。
  6. 如申請專利範圍第1項的方法,其中來自該第一組的該較小的區域之各者被看作梯形並且該子區域被看作矩形,且其中在該子區域上個別進行深度重新定位的步驟包含從第一組矩形區域之各者將深度重新定位到第二組矩形。
  7. 如申請專利範圍第6項的方法,其中該第一深度重新定位技術包含進行從在第一空間中的[N’,F’]到在第二視覺 空間中的[Z-N,Z+F]之線性映射,其中N包含在該虛擬螢幕外側的接受距離,F包含在該虛擬螢幕內側的接受距離以及Z包含使用者的眼與該虛擬螢幕或真實螢幕之間的距離。
  8. 一種用於虛擬實境深度重新定位的設備,包含:區域細分電路,用以基於目標螢幕的特性將虛擬螢幕區域分成複數個較小的區域;特定區域深度重新定位電路,用以針對該較小的區域之各者個別進行深度重新定位,包括識別要用以在其上運用第一深度重新定位技術之該較小的區域的第一組,以及包括識別要用以在其上運用第二深度重新定位技術之不同於該第一組的該較小的區域之第二組;其中該第一深度重新定位技術包含將該較小的區域之一或多者從該第一組細分成複數個子區域且個別在該子區域上進行深度重新定位;場景結合器電路,用以結合該第一深度重新定位技術和該第二深度重新定位技術之結果來算繪該虛擬螢幕區域;其中該虛擬螢幕區域包含依據在虛擬螢幕外側的接受距離、在該虛擬螢幕內側的接受距離以及該虛擬螢幕的寬度來界定之明定的舒適區域;以及其中所述在該虛擬螢幕外側的接受距離和所述在該虛擬螢幕內側的接受距離分別為0.4和0.7乘以該虛擬螢幕 之寬度。
  9. 如申請專利範圍第8項的設備,更包含:區域分析及分類電路,用以基於該明定的舒適區域識別該複數個較小的區域。
  10. 如申請專利範圍第9項的設備,其中該區域分析及分類電路用以使用深度訊框來針對遊戲或圖形應用之影像訊框內的物件決定深度。
  11. 如申請專利範圍第8項的設備,其中該第二深度重新定位技術包含從由該較小區域所界定的第一矩形區域將深度重新定位至第二矩形區域。
  12. 如申請專利範圍第11項的設備,其中該第二深度重新定位技術包含進行從在第一空間中的[N’,F’]到在第二視覺空間中的[Z-N,Z+F]之線性映射,其中N包含在該虛擬螢幕外側的接受距離,F包含在該虛擬螢幕內側的接受距離以及Z包含使用者的眼與該虛擬螢幕或真實螢幕之間的距離。
  13. 如申請專利範圍第8項的設備,其中該子區域被看作矩形,且其中在該子區域上個別進行深度重新定位的步驟包含從第一組矩形區域之各者將深度重新定位到第二組矩 形。
  14. 如申請專利範圍第13項的設備,其中該第一深度重新定位技術包含進行從在第一空間中的[N’,F’]到在第二視覺空間中的[Z-N,Z+F]之線性映射,其中N包含在該虛擬螢幕外側的接受距離,F包含在虛擬該螢幕內側的接受距離以及Z包含使用者的眼與該虛擬螢幕或真實螢幕之間的距離。
  15. 一種用於虛擬實境深度重新定位的系統,包含:記憶體,用以儲存程式碼和資料;中央處理單元(CPU),包含用於對該程式碼之部分進行快取的指令快取以及用於對該資料之部分進行快取的資料快取,該CPU更包含執行邏輯,用以執行該程式碼的至少一些且相應地處理該資料之至少一些,該程式碼之至少一部分包含圖形命令;圖形處理子系統,用以處理該圖形命令且相應地算繪複數個影像,該圖形處理子系統包含:區域細分電路,用以基於目標螢幕的特性將虛擬螢幕區域分成複數個較小的區域;特定區域深度重新定位電路,用以針對該較小的區域之各者個別進行深度重新定位,包括識別要用以在其上運用第一深度重新定位技術之該較小的區域的第一組,以及包括識別要用以在其上運用第二深度重新定位技術之不同 於該第一組的該較小的區域之第二組;其中該第一深度重新定位技術包含將該較小的區域之一或多者從該第一組細分成複數個子區域且個別在該子區域上進行深度重新定位;場景結合器電路,用以結合該第一深度重新定位技術和該第二深度重新定位技術之結果來算繪該虛擬螢幕區域;其中該虛擬螢幕區域包含依據在虛擬螢幕外側的接受距離、在該虛擬螢幕內側的接受距離以及該虛擬螢幕的寬度來界定之明定的舒適區域;以及其中所述在該虛擬螢幕外側的接受距離和所述在該虛擬螢幕內側的接受距離分別為0.4和0.7乘以該虛擬螢幕之寬度。
  16. 如申請專利範圍第15項的系統,更包含:區域分析及分類電路,用以基於該明定的舒適區域識別該複數個較小的區域。
  17. 如申請專利範圍第16項的系統,其中該區域分析及分類電路用以使用深度訊框來針對遊戲或圖形應用之影像訊框內的物件決定深度。
  18. 如申請專利範圍第15項的系統,其中該第二深度重新定位技術包含從由該較小區域所界定的第一矩形區域將 深度重新定位至第二矩形區域。
  19. 如申請專利範圍第18項的系統,其中該第二深度重新定位技術包含進行從在第一空間中的[N’,F’]到在第二視覺空間中的[Z-N,Z+F]之線性映射,其中N包含在該虛擬螢幕外側的接受距離,F包含在該虛擬螢幕內側的接受距離以及Z包含使用者的眼與該虛擬螢幕或真實螢幕之間的距離。
  20. 如申請專利範圍第15項的系統,其中該子區域被看作矩形,且其中個別在該子區域上進行深度重新定位的步驟包含從第一組矩形區域之各者將深度重新定位到第二組矩形。
  21. 如申請專利範圍第20項的系統,其中該第一深度重新定位技術包含進行從在第一空間中的[N’,F’]到在第二視覺空間中的[Z-N,Z+F]之線性映射,其中N包含在該虛擬螢幕外側的接受距離,F包含在該虛擬螢幕內側的接受距離以及Z包含使用者的眼與該虛擬螢幕或真實螢幕之間的距離。
  22. 一種用於虛擬實境深度重新定位的設備,包含:用於基於目標螢幕的特性將虛擬螢幕區域分成複數個較小的區域的機構; 用於針對該較小的區域之各者個別進行深度重新定位的機構,進行深度重新定位的步驟包括識別要用以在其上運用第一深度重新定位技術之該較小的區域的第一組,以及包括識別要用以在其上運用第二深度重新定位技術之不同於該第一組的該較小的區域之第二組;其中該第一深度重新定位技術包含將該較小的區域之一或多者從該第一組細分成複數個子區域且在該子區域上個別進行深度重新定位;用於結合該第一深度重新定位技術和該第二深度重新定位技術之結果來算繪該虛擬螢幕區域的機構;其中該虛擬螢幕區域包含依據在虛擬螢幕外側的接受距離、在該虛擬螢幕內側的接受距離以及該虛擬螢幕的寬度來界定之明定的舒適區域;以及其中所述在該虛擬螢幕外側的接受距離和所述在該虛擬螢幕內側的接受距離分別為0.4和0.7乘以該虛擬螢幕之寬度。
TW106116340A 2016-06-30 2017-05-17 用於虛擬實境深度重新定位的方法及設備 TWI760336B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
PCT/CN2016/087849 WO2018000305A1 (en) 2016-06-30 2016-06-30 Method and apparatus for virtual reality depth retargeting
WOPCT/CN2016/087849 2016-06-30
??PCT/CN2016/087849 2016-06-30

Publications (2)

Publication Number Publication Date
TW201802704A TW201802704A (zh) 2018-01-16
TWI760336B true TWI760336B (zh) 2022-04-11

Family

ID=60784963

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106116340A TWI760336B (zh) 2016-06-30 2017-05-17 用於虛擬實境深度重新定位的方法及設備

Country Status (4)

Country Link
US (1) US10869015B2 (zh)
CN (1) CN109314777B (zh)
TW (1) TWI760336B (zh)
WO (1) WO2018000305A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI687257B (zh) * 2018-09-25 2020-03-11 香港商維亞科技國際有限公司 虛擬實境之遊戲系統、處理器及虛擬遊戲場景移動方法
US10966342B2 (en) * 2019-01-31 2021-03-30 Dell Products, L.P. System and method for determining location and navigating a datacenter using augmented reality and available sensor data

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110064299A1 (en) * 2009-09-14 2011-03-17 Fujifilm Corporation Image processing apparatus and image processing method
US20120069007A1 (en) * 2010-09-14 2012-03-22 Dynamic Digital Depth Research Pty Ltd Method for Enhancing Depth Maps
US20150249815A1 (en) * 2013-05-01 2015-09-03 Legend3D, Inc. Method for creating 3d virtual reality from 2d images
TW201547254A (zh) * 2014-06-03 2015-12-16 Acer Inc 立體影像合成方法及裝置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101777875B1 (ko) 2011-04-28 2017-09-13 엘지디스플레이 주식회사 입체 영상 표시장치와 그 입체 영상 조절 방법
CN102508563B (zh) * 2011-11-03 2013-08-07 深圳超多维光电子有限公司 一种立体交互方法以及被操作设备
US20150279815A1 (en) * 2014-03-28 2015-10-01 Stats Chippac, Ltd. Semiconductor Device and Method of Forming Substrate Having Conductive Columns
CA2948903C (en) * 2014-05-13 2020-09-22 Pcp Vr Inc. Method, system and apparatus for generation and playback of virtual reality multimedia

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110064299A1 (en) * 2009-09-14 2011-03-17 Fujifilm Corporation Image processing apparatus and image processing method
US20120069007A1 (en) * 2010-09-14 2012-03-22 Dynamic Digital Depth Research Pty Ltd Method for Enhancing Depth Maps
US20150249815A1 (en) * 2013-05-01 2015-09-03 Legend3D, Inc. Method for creating 3d virtual reality from 2d images
TW201547254A (zh) * 2014-06-03 2015-12-16 Acer Inc 立體影像合成方法及裝置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Controlling perceived depth in stereoscopic images; Proceedings of SPIE - The International Society for Optical Engineering · June 2001 *
Controlling perceived depth in stereoscopic images; Proceedings of SPIE - The International Society for Optical Engineering · June 2001 。

Also Published As

Publication number Publication date
US20190297311A1 (en) 2019-09-26
WO2018000305A1 (en) 2018-01-04
CN109314777A (zh) 2019-02-05
US10869015B2 (en) 2020-12-15
CN109314777B (zh) 2021-04-27
TW201802704A (zh) 2018-01-16

Similar Documents

Publication Publication Date Title
US11574383B2 (en) Apparatus and method for non-uniform frame buffer rasterization
CN110136223B (zh) 使用三角形的属性的加权平均来合并粗像素着色的片段
US10565775B2 (en) Method and apparatus for load balancing in a ray tracing architecture
TWI715633B (zh) 可變精確度著色
US10446118B2 (en) Apparatus and method using subdivided swapchains for improved virtual reality implementations
US11483543B2 (en) Hybrid stereo rendering for depth extension in dynamic light field displays
TWI601096B (zh) 用於細分表面的直接和互動式射線追蹤之方法及設備
WO2016209572A1 (en) Three-dimensional renderer
US20180165799A1 (en) Screen matrix rendering in head mounted displays
TWI760336B (zh) 用於虛擬實境深度重新定位的方法及設備
US11800083B2 (en) Barreling and compositing of images
US9589316B1 (en) Bi-directional morphing of two-dimensional screen-space projections