基于游戲者關注區域改進視頻流的碼率控制比特分配的制作方法
【專利摘要】本文公開了視頻編碼器、編碼視頻數據幀的方法和產生經編碼的視頻流的三維建模系統。在一個實施例中,所述方法包括:(1)從應用程序接收待編碼的視頻數據幀,(2)確定游戲者對所述視頻數據幀的關注區域;和(3)通過基于所述游戲者的關注區域分配用于所述幀的比特來改變所述視頻數據幀的編碼。
【專利說明】基于游戲者關注區域改進視頻流的碼率控制比特分配
【技術領域】
[0001] 本申請概括地說涉及云游戲,更具體地,涉及云游戲環境中的視頻流。
【背景技術】
[0002] 臺式計算機依然是可利用的最高性能的個人計算機,且適合于傳統企業、個人和 游戲者。然而,由于個人計算的功用從純生產力轉移到信封(envelope)媒體傳播和游戲, 且更重要地,由于媒體流和游戲形成個人計算技術的前沿,因此分歧(dichotomy)在"每天 的"計算的處理需求和高端游戲的或更廣泛地說,高端圖形渲染的處理需求之間發展。
[0003] 高端圖形渲染的處理需求推動了諸如圖形處理單元(GPUs)和圖形處理系統(顯 卡)等專用硬件的發展。對于許多用戶來說,高端圖形硬件構成了總體利用不足的處理能 力。高端圖形硬件的渲染帶寬對傳統的生產力應用程序和媒體流上簡直是不起作用的。云 圖形處理是圖形渲染資源的集中化,旨在克服發展的不合理分配。
[0004] 在云架構,與常規的媒體流類似,在服務器上存儲、檢索和渲染圖形內容,然后再 在該服務器上所述圖形內容進行編碼、分封化(packetized)并作為視頻流(經常包括音頻) 通過網絡傳送到客戶端。所述客戶端僅僅是對所述視頻流進行解碼并顯示所述內容。因此 可以在所述要求播放視頻能力的客戶端上取消高端圖形硬件。
【發明內容】
[0005] -方面,本公開提供了用于編碼視頻數據幀的方法。在一個實施例中,所述方法包 括:(1)從應用程序接收待編碼的視頻數據幀,(2)確定游戲者的對所述視頻數據幀的關注 區域和(3)通過基于所述游戲者的關注區域分配用于所述幀的比特來改變所述視頻數據幀 的編碼。
[0006] 另一方面,本公開提供了視頻編碼器。在一個實施例中,所述視頻編碼器包括:編 碼引擎,所述編碼引擎配置為接收表示視頻數據幀的信號并產生與視頻數據幀相關的經編 碼的信息和(2)比特率調節器(modifier),所述比特率調節器耦連到所述編碼引擎且配置 為通過根據游戲者對所述幀的關注區域分配用于所述幀的比特來改變所述經編碼的信息。
[0007] 而在另一個方面,本公開提供了產生經編碼的視頻流的三維建模系統。在一個實 施例中,所述系統包括:(1)內容引擎,(2)渲染器,所述渲染器耦連到所述內容引擎并配置 為從所述內容引擎接收與三維模型相關的信息并產生相應的二維圖像和(3)視頻編碼器, 所述視頻編碼器耦連到所述渲染器并配置為從所述渲染器接收所述二維圖像并產生相應 的經編碼的視頻流。所述視頻編碼器進一步配置為基于游戲者對所述幀的關注區域,改變 用于產生相應的經編碼的視頻流的幀的比特的分配。
【專利附圖】
【附圖說明】
[0008] 現在通過結合附圖引用以下說明,其中:
[0009] 圖1示出了云游戲系統的實施例的框圖;
[0010] 圖2示出了根據本公開的原理所構造的視頻編碼器的實施例的框圖;
[0011] 圖3示出了根據本公開的原理所實施的編碼視頻流的幀的方法的實施例的流程 圖;和
[0012] 圖4示出了用于幀的QP偏移圖的實例。
【具體實施方式】
[0013] 通過云架構中的網絡傳送作為視頻流的內容可能是具有挑戰性的。實時視頻壓縮 是用于幫助傳送所述內容的一個特點。概括地來說,視頻壓縮或視頻編碼將一個幀與先前 的幀進行比較并僅發送幀之間的區別。如果所述視頻具有很少的動作,那么這樣的編碼會 很有效。例如靜止的文本幀可以用非常少的傳送數據來重復。然而,如果所述視頻具有較 多的動作,那么較多的像素會從一個幀更換到下一個幀,因此,所述視頻壓縮方案必須發送 更多的數據以跟上正在變換的更大數目的像素。
[0014] 通常,最引人注目的視頻內容可以具有幀間的廣泛的區別(例如,大量的動作、爆 炸等)。典型地需要非常強大的視頻處理架構來處理這樣的激烈的視頻。這樣的視頻經常 具有大量的高頻細節,且為了維持幀率,所述視頻處理器要么降低所述視頻的質量要么增 加所述視頻的比特率,以用與先前的幀的相同的細節水平來渲染該增加的信息。
[0015] 然而通過網絡的流比特要花費操作者(operators)的錢,且差錯網絡中的有限的 帶寬會造成較大的延遲。當運行游戲或其它三維應用程序時,這將負面地影響用戶的體驗 (被感知到輸入動作和在屏幕上顯示的渲染結果之間的延遲)。
[0016] 因此,本文實現了當傳送內容到客戶端時,可以在視頻壓縮過程中利用用戶的關 注區域以智能的分配比特,用戶在本文稱為游戲者。因此,本公開提供了各種實施例和方案 以通過編碼器例如減小比特率來改進比特分配。在一個實施例中,提供了改進的編碼器,所 述改進的編碼器通過依靠所述游戲者的關注區域以精確地指導碼率控制的比特分配,來更 有效地分配每幀的比特。這樣,所公開的編碼器可以配置為至少維持游戲者所感知的幀的 視覺質量。在一些實施例中,所公開的編碼器靈活地:(1)通過增加游戲者關注區域(或區 域)中的比特數目并降低幀的其它地方的比特數目,在維持所述幀中總的比特數目的同時, 提高所感知的所述幀的視覺質量,和/或(2)通過保持所述游戲者關注區域(或區域)中的 比特數目不變并降低幀中的其它地方的比特數目,在降低所述幀中總的比特數目的同時, 維持所感知的所述幀的視覺質量。因此,基于游戲者關注區域的游戲者的感知,所感知的幀 的視覺質量可以是主觀的。例如可以將比特分配到對游戲者重要的地方,以改進關注區域 的視覺質量。此外,在對游戲者不那么重要的地方,可以減少或有力地減少比特的數目;從 而降低延遲和花費。在一些實施例中,可以從游戲提示、游戲者的關注模型、智能眼鏡、頭部 追蹤(head-tracking)設備或其組合,來確定所述游戲者的關注區域。
[0017] 游戲者的關注模型確認,至少對于某些游戲類別,通常稱為第一人稱射擊(FPS), 實證數據指示了游戲者的關注區域。例如,在玩游戲時的80%-90%的時間中,游戲者的眼 睛趨向于停留在屏幕的中心。此外,游戲者的眼睛受運動的吸引并偶爾檢查平視顯示器 (Heads-Up-Display) (HUD)或顯示的用戶交互(UI)元素。
[0018] 如本文所論述的,提供了比特率調節器,所述比特率調節器基于游戲者的關注區 域調節編碼器的比特分配權重。在一個實施例中,通過全局運動確定或至少部分地確定游 戲者的關注區域。全局運動與由游戲者所控制的攝像機的運動相關聯。由于具有不同類型 的游戲信息或數據,因此可以從游戲引擎獲得全局運動作為提示,諸如在例如2012年10月 1日提交的申請號為13/632,210的美國專利申請、和2012年12月11日提交的申請號為 13/711,358的美國專利申請所描述的。所述全局運動可以由全局運動矢量表示。
[0019] 在一個實施例中,如果全局運動為0,所公開的編碼器以規律的碼率控制比特分配 操作。在這樣的情形下,在進行行動之前,假設游戲者最可能掃描整個場景以獲得任意有用 信息。因此,默認碼率控制用來確保在整個幀內均勻地分配比特,而不是改變比特的分配。
[0020] 隨著總局運動或更大的總局運動,游戲者的眼睛最可能集中追逐所述關注區域的 目標。在這種情況下,激活所公開的方案,然后對游戲者的關注區域分配更多的比特。此外, 隨著離心率和對數比特分配的下降,可以在其它地方分配更少的比特。可以用二維高斯模 型或其它類型的屬性模型來表示游戲者的關注區域并控制比特分配。例如,可以使用表示 眼睛的圖像信息的平移不變模型。最終結果是改進了主觀質量和節省了比特。在視線跟蹤 難以去預測/關聯的一些實例中,所述編碼器可以自動地退回到速率控制比特分配的常規 方法。
[0021] 在一些實施例中,可以使用可以包含游戲者的多個關注中心的幀。例如,游戲引擎 可以為游戲者在目標上設置追逐的"標記"。HUD或Π元素也可以被認定為游戲者關注的 中心。游戲提示可以被傳遞到指示這些多個關注中心的編碼器。
[0022] 在描述本文所引進的編碼器或方法的實施例之前,將描述所述編碼器或方法在其 內體現或實施的云游戲環境。
[0023] 圖1是根據本公開的原理所構造的云游戲系統100的實施方案的框圖。云游戲系 統100包括網絡110、服務器120和客戶端140通過網絡110進行通信。服務器120表示游 戲內容、處理和渲染資源的中央存儲庫??蛻舳?40為該內容和那些資源的消費者。服務 器120是自由可擴展的,且能夠通過杠桿平行和分攤處理和渲染資源而向多個客戶端同時 地提供該內容和那些服務。服務器120的可擴展性受限于網絡110的能力,因為超過客戶 端數目的某一閾值,不足的網絡帶寬需要對所有客戶端的服務平均地降級。
[0024] 服務器120包括網絡接口卡(NIC) 132,中央處理單元(CPU) 124和GPU130。一旦 客戶端140請求,圖形內容經由在諸如CPU124的游戲引擎125等內容引擎上執行的應用程 序從存儲器召回。如在圖形應用程序中,以視頻游戲為例,CPU124,更具體地說是游戲引擎 125,保留自身用于執行諸如確定在給定的場景中的對象的位置、動作和碰撞等高級操作。 從這些高級操作中,游戲引擎125生成渲染命令,當所述渲染命令與所述場景數據結合時, 可以由GPU130執行。例如,渲染命令和數據可以限定場景的幾何、燈光、著色、紋理、運動和 用于場景的攝像機參數。
[0025] 游戲引擎125典型地產生用于圖形渲染器132的參數,圖形渲染器132包括攝像 機位置,從所述攝像機位置,圖形渲染器132即將生成它的2D圖像和表示將3D模型映射為 2D圖像的投影矩陣。在一些實施例中,攝像機位置和/或投影矩陣包含在向編碼器136的 比特速率調節器所提供的關注區域數據中。從攝像機位置和/或投影矩陣的先前值到當前 值的變化,結合所述3D模型的元素的Z緩存信息(圖像深度坐標信息),可以指示在所述圖 像上的全局運動。
[0026] GPU130包含圖形渲染器132、幀捕捉器134和編碼器136。圖形渲染器132根據由 CPU124所生成的渲染命令而執行渲染程序132,產生所述場景的視頻幀流。那些未加工的 視頻幀由幀捕捉器134所捕捉,并由編碼器136進行編碼??赡芾弥T如由國際電信聯盟電 信標準分會(ITU-T)所達成的H. 264標準或來自國際標準化組織/國際電工委員會(ISO/ IEC)的MPEG-4高級視頻編碼(AVC)標準,編碼器136格式化用于傳輸的未加工的視頻流。 或者,所述視頻流可以被編碼成Windows Media Video? (WMV)格式、VP8格式、或任何其 它視頻編碼格式。
[0027] CPU124準備所述編碼的用于傳輸的視頻流,所述編碼的用于傳輸的視頻流被傳遞 到NIC122。NIC122包括對經由諸如Ethernet、Wi-Fi或互聯網協議等網絡協議通過網絡 110進行通信所必需的電路。NIC122為服務器120的網絡接口的軟件層提供物理層和基底。
[0028] 客戶端140接收所傳輸的視頻流用于顯示。客戶端140可以是各種個人計算設備, 包括:臺式或膝上型個人計算機、平板電腦、智能手機或電視??蛻舳?40包含NIC142、解 碼器144、視頻渲染器146、顯示器148和輸入設備150。NIC142與NIC122類似,包括通過 網絡110進行通信所必需的電路,并為客戶端140的網絡接口的軟件層提供物理層和基底。 所傳送的視頻流由客戶端140通過NIC142接收??蛻舳?40可以使用NIC142基于所接收 到的視頻流來收集服務質量統計數據,包括丟包率和單向延時(one-way-delay )。
[0029] 視頻流然后由解碼器144解碼,解碼器144應該與編碼器136匹配,因為各自應該 采用相同的格式化或壓縮方案。例如,如果編碼器136采用ITU-T H. 264標準,那么解碼器 144也應該采用該標準。解碼可以由客戶端CPU或客戶端GPU來實施,這取決于所述物理客 戶端設備。一旦被解碼,保留在視頻流中的所有的幀都是未加工的渲染的幀。與任何其它 流媒體一樣,所述渲染幀由基本視頻渲染器146處理。所述渲染視頻然后可以顯示在顯示 器148上。
[0030] 云游戲不同于基本媒體流的方面是,游戲需要實時的交互流。不僅圖像要在服務 器120上被渲染、捕捉和編碼,并通過網絡110路由到客戶端140用于解碼和顯示,而且客 戶端140的用戶輸入也必須通過網絡110轉發回服務器120,并在CPU124上執行的圖形應 用程序內處理。這個云游戲的實時交互組件限制云游戲系統的能力以"隱藏"延遲。
[0031] 客戶端140定期地發送QoS統計數據到服務器120。當準備好發送所述QoS統計 數據時,客戶端140包括由視頻渲染器146所正在渲染的視頻幀的幀數目。所述幀數目對 服務器120確定網絡110和客戶端140正在處理的從服務器120所傳送的視頻流的程度如 何是有用的。服務器120然后可以使用QoS統計數據以確定可以在GPU130中采取什么行 動來改進QoS。GPU130可利用的行動包括:調節圖像渲染器132渲染的分辨率,調節幀捕捉 器134操作的捕捉幀的速率和調節編碼器136編碼的比特率。
[0032] 在一個實施例中,編碼器136配置為除起常規編碼器136的作用外,還通過根據游 戲者的關注區域智能地分配比特來調節所述比特率。這樣,編碼器136可以與QoS模塊協 作,以降低用于傳送所述視頻流的比特率,從而降低延遲、誤差和花費。有利地是,不需要改 變編碼器136的視頻壓縮標準來如本文所公開地智能地分配比特。所述視頻壓縮標準允許 編碼器端的QP每宏模塊的變化,且諸如客戶端上的解碼器144等解碼器像往常一樣對所述 流進行解碼。圖2提供了根據游戲者的關注區域分配比特率的編碼器的實施例的更多的細 節。
[0033] 圖2示出根據本公開的原理所構造的編碼器200的實施例的框圖??梢杂锰幚砥?包括專用處理器來實現編碼器200。編碼器200可以用作編碼器136。這樣,編碼器200可 以是服務器的一部分。
[0034] 編碼器200包含編碼引擎210和比特率控制器220。在示出的實施例中,編碼引 擎210配置為接收視頻幀203,并進一步配置為從幀203產生經編碼的視頻流205。在示出 的實施例中,比特率調節器220配置為接收與視頻流203的二維圖像相關的關注區域數據 207,并基于關注區域數據207確定視頻幀203各自的游戲者關注區域。關注區域數據207 可以作為游戲提示從諸如圖1的游戲引擎125等游戲引擎獲得。關注區域數據207或其一 部分,可以從相關聯的追蹤游戲者的注視中心的設備生成。所述設備包括例如智能眼鏡、頭 部追蹤系統和它們的組合。關注區域數據207可以包括圖像深度坐標信息(或z向深度信 息)、當前幀的投映矩陣、先前幀的投映矩陣和攝像機位置。在一些實施例中,諸如全局運動 等運動矢量包含在所述關注區域數據中。所述關注區域數據也可以包含諸如顯示器148等 顯示器關注區域的中心。
[0035] 編碼引擎210可以通過從所接收自諸如圖1的圖形渲染器132等渲染器的2D圖 像生成區別幀而開始。所述區別幀典型地通過將所述2D圖像與先前的幀進行比較而生成。 所述區別幀典型地通過將所述2D圖像分解為宏模塊而生成,所述宏模塊為固定大小的正 方形或長方形的相鄰像素集(collection)。
[0036] 所述區別幀然后被轉換成適合于壓縮的形式;例如,通過將離散余弦變換(DCT) 或整數變換(IT)應用于所述區別巾貞以產生變換系數或簡單系數(simply coefficients)。 然后基于典型地稱為"量化參數"或"QP"的參數,將所述系數量化。量化將所述轉換系數 值的原始范圍限定到更小的離散程度集。典型地,通過將每個系數除以所述QP值,來將QP 應用于整個圖像。
[0037] 然后將所述量化的轉換系數轉換成符號或碼字(codewords)。該轉換典型地基于 量化的系數的幀序列中的符號的出現頻率。這些符號的幀(連同諸如QP、幀時間戳、其中幀 中的宏模塊被選擇的序列、和用于解碼所需的任何其它信息等其它信息一起)形成經編碼 的視頻流205。
[0038] 典型地,編碼引擎210內的碼率控制功能確定所述QP值,以將經編碼的視頻 流205的平均比特率限制到目標值的同時,試圖確保用于從所述編碼的數據所復制的 (reproduced)的視頻巾貞的充分的質量(或規定的質量)。
[0039] 編碼視頻幀可以包括諸如比較所生成的宏模塊的同時,產生先前的一個或多個幀 的區別幀等預處理,以檢測宏模塊是否已經保持基本不變,而只是移動了幀中的一些數目 的像素。做這樣的確定經常通過通過少量的像素在各個方向(例如N、NE、E、SE、S、SW、W、NW) 上移動宏模塊并將所移動的宏模塊與所述先前的幀進行比較而進行。如果不匹配,可以將 所述宏模塊在各個方向上移動更大的距離,然后再與所述先前的幀進行比較。
[0040] 當/如果發現匹配時,通過使用先前的幀中所述宏模塊的ID和所述移動的量和方 向,可以產生所述幀的部分編碼。所述值的量和方向可以稱為"運動矢量"。針對相應的多 個宏模塊的多個運動矢量可以稱為"運動場(motion field)"。運動矢量和運動場也可用 于預測隨后的幀的運動。所述運動矢量和/或運動場可以用于生成全局運動矢量。
[0041] 以上所描述的速率控制功能也可以為這樣的運動矢量檢索設定時間或迭代限制, 且如果在所述限制內發現不匹配,則放棄所述檢索。為了以所需的比特率產生高質量的視 頻流或以所需的視頻質量產生低比特率的視頻流,所述速率控制功能平衡被用于運動估計 和區別計算的處理能力。
[0042] -些視頻編碼標準允許僅參照緊接著的前面或后面的幀進行幀間的比較。其它標 準允許圖像參照多個前面或后面的幀進行編碼。這樣的"多個參照幀"的編碼標準典型地 需要更多的處理能力或時間來編碼。
[0043] 比特率調節器220耦連到編碼引擎并配置為通過根據游戲者對幀的關注區域分 配用于所述幀的比特率來改變所述經編碼的信息。比特率調節器220配置為確定游戲者對 即將通過編碼引擎210編碼的視頻數據幀203的關注區域并基于所述游戲者的關注區域改 變視頻數據幀203的編碼。比特率調節器220從所確定的游戲者的關注區域生成編碼器控 制信息209,編碼器控制信息209調節編碼器引擎210的碼率控制功能。這樣,編碼引擎210 配置為根據所述編碼器控制信息209執行編碼,編碼器控制信息209根據所述游戲者的關 注區域重新分配用于幀203的比特。因此,編碼引擎210可以配置為執行所述常規的編碼 引擎的功能和如本文所述的比特再分配的附加功能。編碼器控制信息209可以以用于通過 編碼引擎210處理的可接受的格式被生成。
[0044] 比特率調節器220配置為改變編碼引擎210的碼率控制功能以維持或改進所述幀 的被感知的視覺質量。對于改進,比特率調節器220可以指導編碼引擎210增加用于在所 述游戲者的關注區域內產生經編碼的視頻流205的比特數目。此外,比特率調節器220配 置為在視頻幀203的游戲者的關注區域之外,減少用于產生用于經編碼的視頻流205的經 編碼的信息的比特數目。因此,提高了被感知的視覺質量且可以維持所述比特率。在其它 實施例中,可以通過維持游戲者的關注區域中的比特數目和降低用于編碼游戲者的關注區 域之外的比特數目來維持被感知的視覺質量。在一些實施例中,比特使用的減少可以隨著 與所述游戲者的關注區域的距離的增加而增大。比特率調節器220可以配置為同時維持和 提高所感知的視覺質量??梢曰谙到y質量、游戲的特定部分、游戲者的輸入等在要么維持 或要么增加之間選擇。
[0045] 在一個實施例中,比特率調節器220配置為基于諸如二維高斯模型等數學模型來 確定所述游戲者的關注區域。在一個實施例中,比特率調節器220進一步配置為根據與所 述幀相關聯的全局運動改變所述二維高斯模型的參數。全局運動矢量可以用于表示所述全 局運動。所述參數可以包括所述二維高斯模型的振幅(amplitude)、寬度和旋轉。
[0046] 在一個實施例中,比特率調節器220配置為基于游戲者的關注區域和與視頻幀 203相關聯的全局運動來調節視頻幀203的QP。比特率調節器220可以計算視頻幀203的 每宏模塊QP偏移(offset)。圖4示出了 QP偏移圖。
[0047] 圖4的橢圓表示游戲者的關注區域并具有最低的QP偏移。如果為零,那么不改變 用于編碼該區域的比特數目。如果設定QP偏移小于零,那么增加用于編碼游戲者的關注區 域的比特數目。圖4的同心橢圓表示基于2D高斯模型從所述游戲者的關注區域離開至外 圍(periphery)的幀的降級。在幀的外圍,所述QP偏移是較高的且質量是較低的。在一些 實施例中,所述QP偏移為從零到五十。圖4中,所述全局運動矢量(GMV)的x,y的坐標為 39, -8。所述圖像中心由坐標為W/2、H/2和Z的X,y,z表示。
[0048] 所述全局運動矢量可以由比特率調節器220基于關注區域數據207計算。在另一 個實施例中,所述全局運動矢量可以經由通過例如編碼引擎210對幀視頻203的預處理來 確定。這樣,用于所述全局運動矢量的預處理可以通過GPU本身執行而不需要依靠游戲提 示。在一個實施例中,編碼引擎210或編碼器124可以通過估算幀運動、過濾局部運動和然 后獲得全局運動來獲得所述全局運動矢量。
[0049] 圖3示出了根據本公開的原理所執行的編碼視頻流幀的方法300的實施例。諸如 圖1的編碼器136或圖2的編碼器200等編碼器可以配置為具有必要的硬件、軟件或它們 的組合以執行方法300。方法300開始于步驟305。
[0050] 在步驟310,接收到待解碼的視頻數據幀。在一個實施例中,所述幀從諸如電子游 戲等應用程序接收到。
[0051] 在步驟320接收到關注區域數據。所述關注區域的數據可以從游戲引擎接收到。 在一個實施例中,所述關注區域的數據作為游戲提示接收。在另一個實施例中,所述關注區 域數據由與所述視頻幀相關聯的處理程序生成。所述預處理程序可以由編碼器或GPU的另 一個處理器執行。
[0052] 在其它實施例中,可以使用設備追蹤游戲者的眼睛運動,以提供所述關注區域數 據。諸如智能玻璃或其它安裝在頭上的設備等智能眼鏡可以用于精確地追蹤眼睛運動和產 生關注區域數據。所述眼睛或設備可以與諸如紅外頭部追蹤器等追蹤系統一起使用,以精 確地追蹤眼睛運動。
[0053] 在步驟330,確定游戲者對所述視頻數據幀的游戲關注區域??梢曰谒鲫P注區 域確定所述游戲者的關注區域。在一個實施例中根據圍繞注視中心的人的視角確定所述游 戲者關注區域。這典型地可以為2到5度之間。全局運動矢量可以由所生成的關于先前的 注視中心的數據來計算。在一些實施例中,所述游戲者的關注區域可以直接從由智能眼鏡、 設備、頭部追蹤器或它們的組合所生成的數據推導出。
[0054] 可以使用數學模型來確定游戲者的關注區域。在一個實施例中,二維高斯模型可 以用來表示每一個游戲者的關注區域。隨著人的視覺,二維高斯模型也提供了與所述游戲 者的關注區域周圍的離心率一起下降的對數分辨率,所對數分辨率對應于人的視角。圖4 示出了與所述游戲者的關注區域周圍的離心率一起下降的對數分辨率的實例。
[0055] 在一個實施例中,單個幀可以具有多個游戲者關注區域。至少一個游戲者關注區 域可以基于全局運動修改。全局運動矢量可以用于修改所述游戲者的關注區域。
[0056] 在步驟340,通過基于所述游戲者關注區域分配用于所述幀的比特來改變視頻數 據幀的編碼。在一個實施例中,增加用于編碼所述游戲者關注區域或區域的比特數目。此 夕卜,減少用于編碼所述幀的其余部分的比特數目。在其它實施例中,維持用于編碼所述游戲 者關注區域的比特數目,并減少用于編碼所述幀的其余部分的比特數目。這樣,可以減少用 于編碼幀的比特的總數目。方法300在步驟350結束。
[0057] 上述裝置、系統或方法的一部分可以由諸如常規的各種數字數據處理器或計算機 所體現或實施,其中計算機可以經編程或存儲軟件指令序列的可執行程序以實施方法步驟 中的一個或多個。這類程序的軟件指令可以代表算法并且以機器可執行的形式在非暫時性 數字數據存儲介質上被編碼,非暫時性數字數據存儲介質例如磁盤或光盤、隨機存取存儲 器(RAM)、磁性硬盤、閃存、和/或只讀存儲器(R0M),以使得各種類型的數字數據處理器或 計算機能夠實施上述方法的一個或多個中的一個、多個或所有步驟或者能夠實施本文所述 的裝置的功能。如關于所公開的實施例所論述的,配置為執行所述功能的比特率控制器可 以包括必要的硬件、軟件或它們的組合。
[0058] 所公開的實施例的一部分可以與具有非暫時性計算機可讀介質的計算機存儲產 品相關,非暫時性計算機可讀介質其上具有程序代碼用于實施體現裝置、系統的一部分或 執行本文所闡述的方法步驟的各種計算機實現的操作。本文所使用的非暫時性是指除暫 時的、傳播的信號之外的所有計算機可讀介質。非暫時性計算機可讀介質的示例包括但不 限于:諸如硬盤、軟盤和磁帶的磁性介質;諸如CD-ROM盤的光學介質;諸如軟光盤的磁光介 質;以及特別配置為存儲并執行程序代碼的硬件設備,諸如ROM和RAM設備。程序代碼的示 例既包括機器代碼又包括文件,該機器代碼諸如由編譯器所產生,該文件包含可以由計算 機使用解譯器所執行的較高級代碼。
[0059] 與本申請相關的本領域技術人員應該理解可以對所描述的實施例做出其它和進 一步的增加、刪除、替代和修改。
【權利要求】
1. 用于編碼視頻數據幀的方法,所述方法包括: 從應用程序接收待編碼的視頻數據幀 確定游戲者對所述視頻數據幀的關注區域;和 通過基于所述游戲者的關注區域分配用于所述幀的比特來改變所述視頻數據幀的編 碼。
2. -種視頻編碼器,包括: 編碼引擎,所述編碼引擎配置為接收表示視頻數據幀的信號并產生與所述視頻數據幀 相關的經編碼的信息;和 比特率調節器,所述比特率調節器耦連到所述編碼引擎且配置為通過根據游戲者對所 述幀的關注區域分配用于所述幀的比特來改變所述經編碼的信息。
3. 如權利要求2所述的視頻編碼器,其中,所述比特率調節器配置為基于二維高斯模 型來確定所述游戲者的關注區域。
4. 如權利要求2所述的視頻編碼器,其中,所述比特率調節器配置為基于所述幀的投 影矩陣、先前幀的投影矩陣和所述幀中間的關注中心,計算與所述幀相關聯的全局運動矢 量。
5. 如權利要求2所述的視頻編碼器,其中,所述比特率調節器配置為增加用于在所述 游戲者的關注區域內產生所述經編碼的信息的比特的數目。
6. 如權利要求5所述的視頻編碼器,其中,所述比特率調節器配置為減少用于在所述 游戲者的關注區域之外產生所述經編碼的信息的比特的數目。
7. 如權利要求2所述的視頻編碼器,其中,所述幀包括多個游戲者的關注區域,且所述 比特率調節器配置為通過基于所述多個游戲者的關注區域分配用于所述幀的比特來改變 所述經編碼的信息。
8. 產生經編碼的視頻流的三維建模系統,所述系統包括: 內容引擎; 渲染器,所述渲染器耦連到所述內容引擎并配置為從所述內容引擎接收與三維模型相 關的信息并產生相應的二維圖像;和 視頻編碼器,所述視頻編碼器耦連到所述渲染器并配置為從所述渲染器接收所述二維 圖像并產生相應的經編碼的視頻流, 其中,所述視頻編碼器進一步配置為基于游戲者對所述幀的關注區域,改變用于產生 相應的經編碼的視頻流的幀的比特的分配。
9. 如權利要求8所述的三維建模系統,其中,所述游戲者的關注區域是基于人的圍繞 注視中心的視角。
10. 如權利要求8所述的三維建模系統,其中,所述視頻編碼器配置為基于所述游戲者 關注區域的模型和與所述幀相關聯的全局運動矢量,調節所述幀的每宏模塊量化參數。
【文檔編號】A63F13/426GK104096362SQ201310687175
【公開日】2014年10月15日 申請日期:2013年12月13日 優先權日:2013年4月2日
【發明者】哈桑·S·阿扎爾 申請人:輝達公司