Patents by Inventor Sathyanarayanan Karivaradaswamy

Sathyanarayanan Karivaradaswamy 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).

  • Publication number: 20230359468
    Abstract: User engagement is detected and used to control operation of a computing device. User engagement is detected by a sensor such as a camera that identifies if a user's face is oriented towards a display device. If the user is not facing the display device, the sensor determines that the user is unengaged. The computing device is thus able to perform a power-saving operation, such as dimming the display device, when the user is unengaged. The computing device includes an API that abstracts sensor data into a user engagement signal indicating that the user is either engaged or unengaged. The OS and applications running on the computing device act on the user engagement signal provided by the API without communicating directly with the sensor. The user engagement signal may be provided as an input to a state machine.
    Type: Application
    Filed: June 27, 2022
    Publication date: November 9, 2023
    Inventors: Ugan SIVAGNANENTHIRARAJAH, Sathyanarayanan KARIVARADASWAMY, Sanjeev Chandra REDDY, Sanjana Ramakrishnan SUNDER, Sayak CHATTERJEE, Sarah Anne BARNETTE, Mark LIN, Robert E. HARRIS, JR., Mike AJAX
  • Patent number: 11455942
    Abstract: A method of providing environmental information to an electronic device includes, at the electronic device, receiving ambient light from a surrounding environment of the electronic device with one or more camera sensors in data communication with a processor and capturing a raw pattern with the camera sensor, wherein the raw pattern includes light intensity information and light spectrum information. The method further includes deriving at least one ambient light value from the light intensity information and light spectrum information and providing the ambient light value to the processor of the electronic device.
    Type: Grant
    Filed: December 4, 2020
    Date of Patent: September 27, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sathyanarayanan Karivaradaswamy, Wenjie Shi, Ziran Wu, Onji Bae, Michael Jeffrey Ajax, Naveen Thumpudi, Karthik Elangovan, Andrew Wathen Quirk, Mei Ling Wilson
  • Publication number: 20220180798
    Abstract: A method of providing environmental information to an electronic device includes, at the electronic device, receiving ambient light from a surrounding environment of the electronic device with one or more camera sensors in data communication with a processor and capturing a raw pattern with the camera sensor, wherein the raw pattern includes light intensity information and light spectrum information. The method further includes deriving at least one ambient light value from the light intensity information and light spectrum information and providing the ambient light value to the processor of the electronic device.
    Type: Application
    Filed: December 4, 2020
    Publication date: June 9, 2022
    Inventors: Sathyanarayanan KARIVARADASWAMY, Wenjie SHI, Ziran WU, Onji BAE, Michael Jeffrey AJAX, Naveen THUMPUDI, Karthik ELANGOVAN, Andrew Wathen QUIRK, Mei Ling WILSON
  • Patent number: 11032136
    Abstract: A system for camera device discovery and enumeration detects a camera device connected to a computing device using a Universal Plug and Play (UPnP) protocol and generates a device object corresponding to the detected camera device with a user-mode camera driver. The user-mode camera driver associated with an operating system executing on the computing device. The system registers the generated device object with the operating system to provide a direct interface from the operating system to the camera device and to make the camera device available to a plurality of applications executing on the computing device and commands the camera device from at least one of the plurality of applications via the registered device object through the operating system, thereby improving the functioning of the computing device and the user experience.
    Type: Grant
    Filed: February 1, 2018
    Date of Patent: June 8, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventor: Sathyanarayanan Karivaradaswamy
  • Patent number: 10742866
    Abstract: Methods and devices for enabling controls of an imaging device may include receiving a data stream with a request for at least one control of an imaging device, wherein the at least one control is related to Universal Serial Bus (USB) video. The methods and devices may include identifying a defined functionality of the at least one control and transmitting the data stream to the imaging device to specify the operation of the imaging device based on the defined functionality of the at least one control. The methods and devices may also include generating metadata information from received video frame packets from an imaging device. The methods and devices may include identifying metadata information in the header of a video packet when the header size exceeds the standard header size. The methods and devices may include generating a metadata buffer with the identified metadata information.
    Type: Grant
    Filed: March 10, 2017
    Date of Patent: August 11, 2020
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Sandeep Kanumuri, Naveen Thumpudi, Sang Choe, Sathyanarayanan Karivaradaswamy, Joel Corley
  • Patent number: 10742955
    Abstract: The methods described herein are configured to correlate frames of a video stream to a system clock. A correlator application receives a frame of a video stream from a capture device via a bus interface, the frame including start frame and end frame timestamps based on a device clock of the capture device. A second start frame timestamp and second end frame timestamp are predicted based on previously received frames and a system clock. A skew value of the frame is calculated based on differences between the start frame timestamps and the end frame timestamps. Upon the calculated skew value exceeding a skew threshold, the frame is corrected to correlate to the predicted start frame and end frame timestamps. The corrected frame is then provided for display. Correcting timestamps of video stream frames in the described manner reduces jitter and enables accurate synchronization of multiple video streams.
    Type: Grant
    Filed: May 25, 2018
    Date of Patent: August 11, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventor: Sathyanarayanan Karivaradaswamy
  • Patent number: 10705982
    Abstract: Described are examples for securing stream data received from a stream source. A secure mode can be enabled, based on a request from an application, for storing the stream data captured from the stream source in a secured buffer. The secured buffer can be allocated in a secure memory based at least in part on enabling the secure mode. A secured buffer identifier of the secured buffer can be provided to a driver of a device providing the stream source for storing the stream data captured from the stream source in the secured buffer. The secured buffer identifier of the secured buffer can also be provided to the application for accessing the stream data stored in the secured buffer.
    Type: Grant
    Filed: January 22, 2019
    Date of Patent: July 7, 2020
    Assignee: Microsoft Technology Licensing LLC
    Inventors: Mei L. Wilson, Fabin Shen, Sathyanarayanan Karivaradaswamy, Gerrit L. Swaneveld
  • Patent number: 10530706
    Abstract: Techniques for arbitrating control access to a shared resource among multiple client applications concurrently consuming a shared data stream associated with the shared resource are described. A server component instantiates a shared resource component representing the shared resource and associated shared data stream. The server component publishes a shared resource interface that provides central interface for the multiple client applications to access the shared resource and associated shared data stream. Each client application may access the shared resource in either control mode or shared mode to consume the shared data stream. In control mode, the client application has read-write access to control parameters representing a configuration of the shared resource that are usable to modify aspects of the shared data stream. In shared mode, the client application has read-only access to the control parameters.
    Type: Grant
    Filed: June 30, 2016
    Date of Patent: January 7, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sang K. Choe, Sathyanarayanan Karivaradaswamy, Mei Ling Wilson, Fabin Shen, Aleksey S. Kabanov, Casey J. Dvorak
  • Publication number: 20190356897
    Abstract: The methods described herein are configured to correlate frames of a video stream to a system clock. A correlator application receives a frame of a video stream from a capture device via a bus interface, the frame including start frame and end frame timestamps based on a device clock of the capture device. A second start frame timestamp and second end frame timestamp are predicted based on previously received frames and a system clock. A skew value of the frame is calculated based on differences between the start frame timestamps and the end frame timestamps. Upon the calculated skew value exceeding a skew threshold, the frame is corrected to correlate to the predicted start frame and end frame timestamps. The corrected frame is then provided for display. Correcting timestamps of video stream frames in the described manner reduces jitter and enables accurate synchronization of multiple video streams.
    Type: Application
    Filed: May 25, 2018
    Publication date: November 21, 2019
    Inventor: Sathyanarayanan KARIVARADASWAMY
  • Patent number: 10452581
    Abstract: Memory descriptor list caching and pipeline processing techniques are described. In one or more examples, a method is configured to increase efficiency of buffer usage within a pipeline of a computing device. The method includes creation of a buffer in memory of the computing device and caching of a memory descriptor list by the computing device that describes the buffer in a buffer information cache and has associated therewith a handle that acts as a lookup to the memory descriptor list. The method also includes passing the handle through the pipeline of the computing device for processing of data within the buffer by one or more stages of the pipeline such that access to the data is obtained by the one or more stages by using the handle as the lookup as part of a call to obtain the memory descriptor list for the buffer from the buffer information cache.
    Type: Grant
    Filed: October 25, 2017
    Date of Patent: October 22, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Mei L. Wilson, Jitesh Krishnan, Sathyanarayanan Karivaradaswamy
  • Patent number: 10372947
    Abstract: Described are examples for securely storing stream data received from a stream source. Stream data can be received from the stream source for storing in one or more secured buffers of a secure memory, wherein the stream data includes a header portion generated by a driver for the stream source and a payload portion generated from the stream source. The payload portion of the stream data can be stored in the one or more secured buffers and contiguous to a previous payload portion of previous stream data received from the stream source. The header portion of the stream data can be stored in another portion of the secure memory or a non-secure memory. A data frame, from the one or more secured buffers, comprising at least the payload portion of the stream data and the previous payload portion of the previous stream data can be provided to an application.
    Type: Grant
    Filed: December 2, 2016
    Date of Patent: August 6, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sathyanarayanan Karivaradaswamy, Naveen Thumpudi, Suhib F M Alsisan
  • Publication number: 20190236033
    Abstract: Described are examples for securing stream data received from a stream source. A secure mode can be enabled, based on a request from an application, for storing the stream data captured from the stream source in a secured buffer. The secured buffer can be allocated in a secure memory based at least in part on enabling the secure mode. A secured buffer identifier of the secured buffer can be provided to a driver of a device providing the stream source for storing the stream data captured from the stream source in the secured buffer. The secured buffer identifier of the secured buffer can also be provided to the application for accessing the stream data stored in the secured buffer.
    Type: Application
    Filed: January 22, 2019
    Publication date: August 1, 2019
    Inventors: Mei L. WILSON, Fabin SHEN, Sathyanarayanan KARIVARADASWAMY, Gerrit L. SWANEVELD
  • Publication number: 20190236035
    Abstract: A system for camera device command and control detects a camera device connected to the system and accesses a set of interfaces defined by a standardized driver. The set of interfaces are a common set of interfaces associated with a device object and the device object is compatible with camera devices from different camera device manufacturers. The system queries the detected camera device for descriptors defining capabilities of the camera device using a packetized command generated based at least on the accessed set of interfaces and provides, based on the descriptors, one or more interfaces of the accessed set of interfaces to one or more applications to make the camera device available to the one or more applications, thereby simplifying connection of camera devices from different manufacturers and improving the user experience. The system then allows the camera device to be controlled.
    Type: Application
    Filed: February 1, 2018
    Publication date: August 1, 2019
    Inventors: Sathyanarayanan KARIVARADASWAMY, Naveen THUMPUDI
  • Publication number: 20190238405
    Abstract: A system for camera device discovery and enumeration detects a camera device connected to a computing device using a Universal Plug and Play (UPnP) protocol and generates a device object corresponding to the detected camera device with a user-mode camera driver. The user-mode camera driver associated with an operating system executing on the computing device. The system registers the generated device object with the operating system to provide a direct interface from the operating system to the camera device and to make the camera device available to a plurality of applications executing on the computing device and commands the camera device from at least one of the plurality of applications via the registered device object through the operating system, thereby improving the functioning of the computing device and the user experience.
    Type: Application
    Filed: February 1, 2018
    Publication date: August 1, 2019
    Inventor: Sathyanarayanan KARIVARADASWAMY
  • Patent number: 10223292
    Abstract: Described are examples for securing stream data received from a stream source. A secure mode can be enabled, based on a request from an application, for storing the stream data captured from the stream source in a secured buffer. The secured buffer can be allocated in a secure memory based at least in part on enabling the secure mode. A secured buffer identifier of the secured buffer can be provided to a driver of a device providing the stream source for storing the stream data captured from the stream source in the secured buffer. The secured buffer identifier of the secured buffer can also be provided to the application for accessing the stream data stored in the secured buffer.
    Type: Grant
    Filed: November 28, 2016
    Date of Patent: March 5, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Mei L. Wilson, Fabin Shen, Sathyanarayanan Karivaradaswamy, Gerrit L. Swaneveld
  • Patent number: 10108462
    Abstract: Technology related to virtualizing sensors is disclosed. In one example of the disclosed technology, a method can be used to allocate resources of a computing system. The method can include enumerating hardware sensors and software modules that are capable of interacting with one another. A topology can be negotiated that is compatible with capabilities of the enumerated hardware sensors and software modules. A first request can be received from a first requestor to configure at least one of the enumerated hardware sensors and software modules. The at least one of the enumerated hardware sensors and software modules can be configured in response to the received first request.
    Type: Grant
    Filed: August 12, 2016
    Date of Patent: October 23, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sang Choe, Sathyanarayanan Karivaradaswamy, Mei Wilson, Fabin Shen, Yin Li
  • Publication number: 20180295253
    Abstract: The present disclosure provides devices and techniques for processing a media capture stream captured by a camera device using a chain device media foundation transform (DMFT). The techniques include configuring multiple DMFTs such that an original manufacturer (OEM) may have flexibility in independently selecting various functionalities from different sources (e.g., OS, OEM, IHV, ISV, or VARs) in order to maximize hardware capabilities while minimizing the drawbacks of creating a single DMFT. To that end, the implementation of the present disclosure includes a devices and techniques of chainable DMFTs such that a device transform manager may select a set of functionalities (e.g., face recognition, color effects, etc.) from multiple vendors to customize the camera's capabilities according to the OEM specification.
    Type: Application
    Filed: April 2, 2018
    Publication date: October 11, 2018
    Inventors: Sandeep KANUMURI, Naveen THUMPUDI, Sathyanarayanan KARIVARADASWAMY, Rui ZHAO
  • Publication number: 20180173656
    Abstract: Memory descriptor list caching and pipeline processing techniques are described. In one or more examples, a method is configured to increase efficiency of buffer usage within a pipeline of a computing device. The method includes creation of a buffer in memory of the computing device and caching of a memory descriptor list by the computing device that describes the buffer in a buffer information cache and has associated therewith a handle that acts as a lookup to the memory descriptor list. The method also includes passing the handle through the pipeline of the computing device for processing of data within the buffer by one or more stages of the pipeline such that access to the data is obtained by the one or more stages by using the handle as the lookup as part of a call to obtain the memory descriptor list for the buffer from the buffer information cache.
    Type: Application
    Filed: October 25, 2017
    Publication date: June 21, 2018
    Inventors: Mei L. Wilson, Jitesh Krishnan, Sathyanarayanan Karivaradaswamy
  • Publication number: 20180157868
    Abstract: Described are examples for securely storing stream data received from a stream source. Stream data can be received from the stream source for storing in one or more secured buffers of a secure memory, wherein the stream data includes a header portion generated by a driver for the stream source and a payload portion generated from the stream source. The payload portion of the stream data can be stored in the one or more secured buffers and contiguous to a previous payload portion of previous stream data received from the stream source. The header portion of the stream data can be stored in another portion of the secure memory or a non-secure memory. A data frame, from the one or more secured buffers, comprising at least the payload portion of the stream data and the previous payload portion of the previous stream data can be provided to an application.
    Type: Application
    Filed: December 2, 2016
    Publication date: June 7, 2018
    Inventors: Sathyanarayanan KARIVARADASWAMY, Naveen THUMPUDI, Suhib F M ALSISAN
  • Publication number: 20180150414
    Abstract: Described are examples for securing stream data received from a stream source. A secure mode can be enabled, based on a request from an application, for storing the stream data captured from the stream source in a secured buffer. The secured buffer can be allocated in a secure memory based at least in part on enabling the secure mode. A secured buffer identifier of the secured buffer can be provided to a driver of a device providing the stream source for storing the stream data captured from the stream source in the secured buffer. The secured buffer identifier of the secured buffer can also be provided to the application for accessing the stream data stored in the secured buffer.
    Type: Application
    Filed: November 28, 2016
    Publication date: May 31, 2018
    Inventors: Mei L. WILSON, Fabin SHEN, Sathyanarayanan KARIVARADASWAMY, Gerrit L. SWANEVELD