Patents by Inventor Eduardo CUERVO
Eduardo CUERVO has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 11109011Abstract: A server may be configured to receive first pose data from a virtual reality device, generate second pose data, including a pose prediction, based at least on the first pose data, render a map representation based at least on the pose prediction, determine regions of the map representation based on a likelihood of view of each of the regions, perform foveation in each of the regions and generate an encoded frame based on the regions and a network parameter, and send the encoded frame and second pose data to the device. The encoding may associate each of the regions with a quality level and base the foveation on each region's associated quality level. The foveation may use different quantization parameters for each of the regions and/or use rendering foveation for each of regions. Network conditions such as latency, bandwidth, and/or jitter may be considered for bit allocation in the foveation.Type: GrantFiled: December 31, 2019Date of Patent: August 31, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Eric Horvitz, Eduardo Cuervo, David Chu
-
Patent number: 11032345Abstract: Methods and devices for encoding and decoding data streams are disclosed. In some aspects, the data streams are multimedia data streams. One method disclosed includes obtaining, by a client device, a first multimedia data stream and a second multimedia data stream, the second multimedia data stream being a lower fidelity version of the first multimedia data stream, generating, by the client device, a third multimedia data stream based on differences between the first and second multimedia data streams, compressing, by the client device, the second multimedia data stream to generate a first compressed multimedia data stream, compressing, by the client device, the third multimedia data stream to generate a second compressed multimedia data stream; and transmitting, by the client device, the first and second compressed multimedia data steams to the server.Type: GrantFiled: May 10, 2018Date of Patent: June 8, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Eduardo A Cuervo Laffaye, Alastair Wolman, Stefan Saroiu, Sharad Agarwal, Paramvir Bahl, Landon Cox
-
Patent number: 10924525Abstract: A server computing device for inducing latency on target input streams is provided. The server computing device includes a processor configured to receive a plurality of input streams from a respective plurality of client computing devices. Each input stream includes a plurality of inputs controlling actions of respective characters in a multiplayer online software program. The processor is further configured to determine a latency of each of the input streams, identify a higher latency input stream and a lower latency input stream among the plurality of input streams, and induce a higher latency in the lower latency input stream to narrow a difference in latency between the higher latency input stream and the lower latency input stream.Type: GrantFiled: October 1, 2018Date of Patent: February 16, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Jonathan David Morrison, Eduardo A. Cuervo Laffaye, Hoi Huu Vo
-
Publication number: 20200169716Abstract: A server may be configured to receive first pose data from a virtual reality device, generate second pose data, including a pose prediction, based at least on the first pose data, render a map representation based at least on the pose prediction, determine regions of the map representation based on a likelihood of view of each of the regions, perform foveation in each of the regions and generate an encoded frame based on the regions and a network parameter, and send the encoded frame and second pose data to the device. The encoding may associate each of the regions with a quality level and base the foveation on each region's associated quality level. The foveation may use different quantization parameters for each of the regions and/or use rendering foveation for each of regions. Network conditions such as latency, bandwidth, and/or jitter may be considered for bit allocation in the foveation.Type: ApplicationFiled: December 31, 2019Publication date: May 28, 2020Applicant: Microsoft Technology Licensing, LLCInventors: Eric Horvitz, Eduardo Cuervo, David Chu
-
Publication number: 20200106819Abstract: A server computing device for inducing latency on target input streams is provided. The server computing device includes a processor configured to receive a plurality of input streams from a respective plurality of client computing devices. Each input stream includes a plurality of inputs controlling actions of respective characters in a multiplayer online software program. The processor is further configured to determine a latency of each of the input streams, identify a higher latency input stream and a lower latency input stream among the plurality of input streams, and induce a higher latency in the lower latency input stream to narrow a difference in latency between the higher latency input stream and the lower latency input stream.Type: ApplicationFiled: October 1, 2018Publication date: April 2, 2020Applicant: Microsoft Technology Licensing, LLCInventors: Jonathan David MORRISON, Eduardo A. CUERVO LAFFAYE, Hoi Huu VO
-
Patent number: 10560680Abstract: A server may be configured to receive first pose data from a virtual reality device, generate second pose data, including a pose prediction, based at least on the first pose data, render a map representation based at least on the pose prediction, determine regions of the map representation based on a likelihood of view of each of the regions, perform foveation in each of the regions and generate an encoded frame based on the regions and a network parameter, and send the encoded frame and second pose data to the device. The encoding may associate each of the regions with a quality level and base the foveation on each region's associated quality level. The foveation may use different quantization parameters for each of the regions and/or use rendering foveation for each of regions. Network conditions such as latency, bandwidth, and/or jitter may be considered for bit allocation in the foveation.Type: GrantFiled: June 14, 2017Date of Patent: February 11, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Eric Horvitz, Eduardo Cuervo, David Chu
-
Patent number: 10509463Abstract: A virtual reality system including a head mounted display (HMD), a server, and a beam steering apparatus utilizes optical data transmission from the server to the HMD. The data rates/bandwidths provided by optical data transmission allow the amount of compression needed for data transfer (and the latency associated with compression) to the HMD to be reduced. The efficient offloading of processing tasks from the HMD to the server, reduces HMD power consumption, and enables the delivery of video having high resolution, framerate, and quality. As the user of the HMD moves, and the pose (position and orientation) of the HMD changes, the pose is provided to the server and beam steering apparatus. Based on the pose, the server renders image frames for transmission to the HMD and the beam steering apparatus directs an optical beam to the HMD to enable transmission of the image frames from the server to the HMD.Type: GrantFiled: November 17, 2017Date of Patent: December 17, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Eduardo Cuervo, Monia Ghobadi, Krishna Chintalapudi, Manikanta Kotaru
-
Publication number: 20190349414Abstract: Methods and devices for encoding and decoding data streams are disclosed. In some aspects, the data streams are multimedia data streams. One method disclosed includes obtaining, by a client device, a first multimedia data stream and a second multimedia data stream, the second multimedia data stream being a lower fidelity version of the first multimedia data stream, generating, by the client device, a third multimedia data stream based on differences between the first and second multimedia data streams, compressing, by the client device, the second multimedia data stream to generate a first compressed multimedia data stream, compressing, by the client device, the third multimedia data stream to generate a second compressed multimedia data stream; and transmitting, by the client device, the first and second compressed multimedia data steams to the server.Type: ApplicationFiled: May 10, 2018Publication date: November 14, 2019Applicant: Microsoft Technology Licensing, LLCInventors: Eduardo A. Cuervo Laffaye, Alastair Wolman, Stefan Saroiu, Sharad Agarwal, Paramvir Bahl, Landon Cox
-
Publication number: 20190155372Abstract: A virtual reality system including a head mounted display (HMD), a server, and a beam steering apparatus utilizes optical data transmission from the server to the HMD. The data rates/bandwidths provided by optical data transmission allow the amount of compression needed for data transfer (and the latency associated with compression) to the HMD to be reduced. The efficient offloading of processing tasks from the HMD to the server, reduces HMD power consumption, and enables the delivery of video having high resolution, framerate, and quality. As the user of the HMD moves, and the pose (position and orientation) of the HMD changes, the pose is provided to the server and beam steering apparatus. Based on the pose, the server renders image frames for transmission to the HMD and the beam steering apparatus directs an optical beam to the HMD to enable transmission of the image frames from the server to the HMD.Type: ApplicationFiled: November 17, 2017Publication date: May 23, 2019Applicant: Microsoft Technology Licensing, LLCInventors: Eduardo Cuervo, Monia Ghobadi, Krishna Chintalapudi, Manikanta Kotaru
-
Patent number: 10204395Abstract: Virtual reality is provided by a mobile VR device. VR scenes are displayed by serving an application's image requests from a local cache of pre-rendered image frames. As the device user moves, image frames that match a VR scene viewed from a current pose (3D position and 3D orientation of the device translated to the virtual environment) are retrieved from the cache and displayed to the user as a VR scene. The cache may include a static cache including static image frames and a dynamic object cache including dynamic object image frames. The static cache may be indexed by the device current pose. The dynamic object cache may be indexed by the dynamic object's animation stage, orientation, and relative distance from the device user's current pose for a given time or movement-based trigger. Static image frames and dynamic object image frames may be composited, and displayed as a scene.Type: GrantFiled: October 19, 2016Date of Patent: February 12, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Eduardo Cuervo, Kevin Boos, David Chu
-
Patent number: 10200261Abstract: Nodes of a computing cluster can be selected to run new computing jobs while providing acceptable performance of jobs running on the nodes. Respective performance metrics of respective workloads on respective computing nodes can be determined. Each workload can include a new computing job and the performance metrics can be determined based at least in part on respective measured performance data of the ones of the computing nodes and information of the new computing job. Candidate ones of the computing nodes can be determined based at least in part on the respective performance metrics. One of the candidate computing nodes can be selected based at least in part on the information of the new computing job. In some examples, identification of the new computing job can be transmitted to the selected node. In some examples, state data of the nodes can be updated based on the performance data.Type: GrantFiled: April 30, 2015Date of Patent: February 5, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Eduardo A. Cuervo Laffaye, David Chiyuan Chu, Kaifei Chen
-
Publication number: 20180220119Abstract: A server may be configured to receive first pose data from a virtual reality device, generate second pose data, including a pose prediction, based at least on the first pose data, render a map representation based at least on the pose prediction, determine regions of the map representation based on a likelihood of view of each of the regions, perform foveation in each of the regions and generate an encoded frame based on the regions and a network parameter, and send the encoded frame and second pose data to the device. The encoding may associate each of the regions with a quality level and base the foveation on each region's associated quality level. The foveation may use different quantization parameters for each of the regions and/or use rendering foveation for each of regions. Network conditions such as latency, bandwidth, and/or jitter may be considered for bit allocation in the foveation.Type: ApplicationFiled: June 14, 2017Publication date: August 2, 2018Applicant: Microsoft Technology Licensing, LLCInventors: Eric Horvitz, Eduardo Cuervo, David Chu
-
Patent number: 9965823Abstract: The claimed subject matter includes techniques for live migration of a graphics processing unit (GPU) state. An example method includes receiving recorded GPU commands from a relay at a destination GPU. The method also includes replaying the recorded GPU commands at the destination GPU. The method also includes detecting a downtime for the GPU commands. The method further includes establishing a connection between the destination GPU and the client during the detected downtime.Type: GrantFiled: February 25, 2015Date of Patent: May 8, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Kiryong Ha, Paramvir Bahl, David Chiyuan Chu, Eduardo Cuervo, Lenin Ravindranath Sivalingam, Alastair Wolman
-
Publication number: 20180108110Abstract: Virtual reality is provided by a mobile VR device. VR scenes are displayed by serving an application's image requests from a local cache of pre-rendered image frames. As the device user moves, image frames that match a VR scene viewed from a current pose (3D position and 3D orientation of the device translated to the virtual environment) are retrieved from the cache and displayed to the user as a VR scene. The cache may include a static cache including static image frames and a dynamic object cache including dynamic object image frames. The static cache may be indexed by the device current pose. The dynamic object cache may be indexed by the dynamic object's animation stage, orientation, and relative distance from the device user's current pose for a given time or movement-based trigger. Static image frames and dynamic object image frames may be composited, and displayed as a scene.Type: ApplicationFiled: October 19, 2016Publication date: April 19, 2018Applicant: Microsoft Technology Licensing, LLCInventors: Eduardo Cuervo, Kevin Boos, David Chu
-
Publication number: 20170246544Abstract: A system is provided that allows a spectator to spectate video gameplay over a network. Recorded information associated with a selected recording of a player playing a video game that includes a game engine is received over the network. The recorded information includes game commands that were input to the game engine as the player was playing the game, and inputs the player made to the game to control it. The recorded information is replayed to the game at the timing in which this information was originally recorded, where this replay includes replaying the game commands to the game engine. The replay generates a playback of the selected recording which is displayed on the display screen of the spectator's computer. Upon receiving a request from the spectator to view the inputs the player made to the game they are highlighted on the screen during the playback of the selected recording.Type: ApplicationFiled: February 26, 2016Publication date: August 31, 2017Inventors: Sharad Agarwal, Stefan Saroiu, Alastair Wolman, Lenin Ravindranath Sivalingam, Eduardo Cuervo, Paramvir Bahl, Petko Ivanov Georgiev
-
Publication number: 20160323161Abstract: Nodes of a computing cluster can be selected to run new computing jobs while providing acceptable performance of jobs running on the nodes. Respective performance metrics of respective workloads on respective computing nodes can be determined. Each workload can include a new computing job and the performance metrics can be determined based at least in part on respective measured performance data of the ones of the computing nodes and information of the new computing job. Candidate ones of the computing nodes can be determined based at least in part on the respective performance metrics. One of the candidate computing nodes can be selected based at least in part on the information of the new computing job. In some examples, identification of the new computing job can be transmitted to the selected node. In some examples, state data of the nodes can be updated based on the performance data.Type: ApplicationFiled: April 30, 2015Publication date: November 3, 2016Inventors: Eduardo A. Cuervo Laffaye, David Chiyuan Chu, Kaifei Chen
-
Publication number: 20160247248Abstract: The claimed subject matter includes techniques for live migration of a graphics processing unit (GPU) state. An example method includes receiving recorded GPU commands from a relay at a destination GPU. The method also includes replaying the recorded GPU commands at the destination GPU. The method also includes detecting a downtime for the GPU commands. The method further includes establishing a connection between the destination GPU and the client during the detected downtime.Type: ApplicationFiled: February 25, 2015Publication date: August 25, 2016Inventors: Kiryong Ha, Paramvir Bahl, David Chiyuan Chu, Eduardo Cuervo, Lenin Ravindranath Sivalingam, Alastair Wolman
-
Publication number: 20160021546Abstract: A cloud-based connectivity system is disclosed. The system includes a plurality of wireless devices and a computing device connected to at least one of the wireless devices. The computing device includes a control unit to receive context information from each of the plurality of wireless devices, to determine future consumption patterns for each of the plurality of wireless devices by using the received context information, to create a connectivity representation for the plurality of wireless devices, and to determine an optimal network topology for the plurality of wireless devices.Type: ApplicationFiled: March 15, 2013Publication date: January 21, 2016Inventors: Eduardo CUERVO, Kyu-Han KIM, Paul T CONGDON
-
Publication number: 20160007282Abstract: Systems and methods of scheduling data in background services on mobile devices are disclosed. An example method includes identifying data consumption patterns on a mobile device. The method also includes determining sensitivity of data arriving at the mobile device based on the data consumption patterns. The method also includes aggregating network access by background services on the mobile device according to a schedule based on the sensitivity of the data arriving at the mobile device.Type: ApplicationFiled: January 31, 2013Publication date: January 7, 2016Inventors: EDUARDO CUERVO-LAFFAYE, KYU-HAN KIM