Patents by Inventor Mihhail KONOVALOV
Mihhail KONOVALOV 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: 20230308729Abstract: Techniques are described for low-latency streaming of media content using a lossless protocol. For example, a media stream, comprising encoded video data, can be streamed to a plurality of streaming clients via the lossless protocol. The plurality of streaming clients can be monitored to determine whether any of them have fallen behind in streaming the media stream. When a streaming client falls behind, a portion of video data to be streamed to the streaming client can be selectively dropped based on scalability information and/or long term reference (LTR) frame information. The low-latency streaming can be performed without using per-client quality feedback from the plurality of streaming clients. When streaming using a semi-lossy protocol, a plurality of delivery modes can be used, where each delivery mode is for a different type of encoded video data and provides a different level of reliability.Type: ApplicationFiled: June 2, 2023Publication date: September 28, 2023Applicant: Microsoft Technology Licensing, LLCInventors: Rajesh GUNNALAN, Mihhail KONOVALOV, Tin QIAN, Satya Sasikanth BENDAPUDI
-
Patent number: 11736552Abstract: Techniques are described for streaming (e.g., low-latency streaming) of media content by performing sender-based adaptive bit rate control operations. The operations can include streaming a media stream to a streaming client. While streaming the media stream, an outgoing queue of buffered streaming content to be sent to the streaming client can be monitored. When a step down condition is satisfied, based at least in part on the monitoring, a switch can be made to a lower bit rate media stream for streaming to the streaming client. When a step up condition is satisfied, based at least in part on the monitoring, a switch can be made to a higher bit rate media stream for streaming to the streaming client. The operations are performed without receiving any quality feedback from the streaming client and without measuring bandwidth of the network channel.Type: GrantFiled: September 21, 2022Date of Patent: August 22, 2023Assignee: Microsoft Technology Licensing, LLCInventors: Rajesh Gunnalan, Ilja Tsahhirov, Mihhail Konovalov, Tin Qian
-
Patent number: 11706497Abstract: Techniques are described for low-latency streaming of media content using a lossless protocol. For example, a media stream, comprising encoded video data, can be streamed to a plurality of streaming clients via the lossless protocol. The plurality of streaming clients can be monitored to determine whether any of them have fallen behind in streaming the media stream. When a streaming client falls behind, a portion of video data to be streamed to the streaming client can be selectively dropped based on scalability information and/or long term reference (LTR) frame information. The low-latency streaming can be performed without using per-client quality feedback from the plurality of streaming clients. When streaming using a semi-lossy protocol, a plurality of delivery modes can be used, where each delivery mode is for a different type of encoded video data and provides a different level of reliability.Type: GrantFiled: February 11, 2022Date of Patent: July 18, 2023Assignee: Microsoft Technology Licensing, LLCInventors: Rajesh Gunnalan, Mihhail Konovalov, Tin Qian, Satya Sasikanth Bendapudi
-
Publication number: 20230117444Abstract: Techniques are described for low-latency real-time streaming of media content. For example, streaming media content can be received from a media source, where the streaming media content comprises audio and/or video content. An audio/video stream can be streamed to one or more streaming clients. The audio/video stream is streamed as a sequence of encoded audio and/or video frames, which are independent encoded audio and/or video frames that are not grouped into chunks for streaming. The sequence of encoded audio and/or video frames is streamed to the one or more streaming clients as a one-way stream and without receiving any requests from the one or more streaming clients for subsequent frames or chunks.Type: ApplicationFiled: October 19, 2021Publication date: April 20, 2023Applicant: Microsoft Technology Licensing, LLCInventors: Rajesh Gunnalan, Mihhail Konovalov, Tin Qian, Timothy Mark Moore
-
Patent number: 11245734Abstract: A conferencing computing device, including memory storing one or more dispatch data structures. The conferencing computing device may further include a processor configured to, at a port, receive, from a sender computing device, a first input packet including first input packet data and a second input packet that includes a copy of the first input packet data, via a first communication channel and a second communication channel, respectively. Based on the input packet data and the one or more dispatch data structures, the processor may add the input packets to a queue of a transport provider bound to the port. The processor may transmit the input packets to an application program instance associated with the queue. The processor may determine that the first communication channel or the second communication channel is disconnected and may maintain communication with the sender computing device through the port via a remaining communication channel.Type: GrantFiled: September 10, 2020Date of Patent: February 8, 2022Assignee: Microsoft Technology Licensing, LLCInventors: Rajesh Gunnalan, Mihhail Konovalov, Tin Qian
-
Patent number: 11240277Abstract: A conferencing computing device, including memory storing one or more dispatch data structures. The conferencing computing device may further include a processor configured to receive a plurality of input packets at a shared port from a plurality of sender computing devices. Based on input packet data and the one or more dispatch data structures, the processor may add each input packet to an input queue bound to the shared port. The processor may transmit the input packets to a plurality of application program instances associated with the input queues. The processor may generate a plurality of output packets at the application program instances. The processor may add each output packet to an output queue associated with the application program instance at which that output packet was generated. The processor may, through the shared port, transmit the output packets to a plurality of recipient computing devices.Type: GrantFiled: September 10, 2020Date of Patent: February 1, 2022Assignee: Microsoft Technology Licensing, LLCInventors: Rajesh Gunnalan, Mihhail Konovalov, Tin Qian
-
Patent number: 11228957Abstract: Techniques to select a network interface herein can be used with an application that is configured to send and receive data. These techniques include detecting an event indicative of a problem with network connectivity associated with a first network interface of the plurality of network interfaces in an application utilizing the first network interface; testing connectivity of each network interface of the plurality of network interfaces other than the first network interface to produce a set of candidate network interfaces; selecting a candidate network interface from the candidate network interfaces; and routing data for the application through the selected candidate network interface.Type: GrantFiled: September 13, 2019Date of Patent: January 18, 2022Assignee: Microsoft Technology Licensing, LLCInventors: Rajesh Gunnalan, Mihhail Konovalov, Tin Qian
-
Publication number: 20210084556Abstract: Techniques to select a network interface herein can be used with an application that is configured to send and receive data. These techniques include detecting an event indicative of a problem with network connectivity associated with a first network interface of the plurality of network interfaces in an application utilizing the first network interface; testing connectivity of each network interface of the plurality of network interfaces other than the first network interface to produce a set of candidate network interfaces; selecting a candidate network interface from the candidate network interfaces; and routing data for the application through the selected candidate network interface.Type: ApplicationFiled: September 13, 2019Publication date: March 18, 2021Applicant: Microsoft Technology Licensing, LLCInventors: Rajesh GUNNALAN, Mihhail KONOVALOV, Tin QIAN
-
Publication number: 20200412775Abstract: A conferencing computing device, including memory storing one or more dispatch data structures. The conferencing computing device may further include a processor configured to, at a port, receive, from a sender computing device, a first input packet including first input packet data and a second input packet that includes a copy of the first input packet data, via a first communication channel and a second communication channel, respectively. Based on the input packet data and the one or more dispatch data structures, the processor may add the input packets to a queue of a transport provider bound to the port. The processor may transmit the input packets to an application program instance associated with the queue. The processor may determine that the first communication channel or the second communication channel is disconnected and may maintain communication with the sender computing device through the port via a remaining communication channel.Type: ApplicationFiled: September 10, 2020Publication date: December 31, 2020Applicant: Micosoft Technology Licensing, LLCInventors: Rajesh GUNNALAN, Mihhail Konovalov, Tin Qian
-
Publication number: 20200412774Abstract: A conferencing computing device, including memory storing one or more dispatch data structures. The conferencing computing device may further include a processor configured to receive a plurality of input packets at a shared port from a plurality of sender computing devices. Based on input packet data and the one or more dispatch data structures, the processor may add each input packet to an input queue bound to the shared port. The processor may transmit the input packets to a plurality of application program instances associated with the input queues. The processor may generate a plurality of output packets at the application program instances. The processor may add each output packet to an output queue associated with the application program instance at which that output packet was generated. The processor may, through the shared port, transmit the output packets to a plurality of recipient computing devices.Type: ApplicationFiled: September 10, 2020Publication date: December 31, 2020Applicant: Microsoft Technology Licensing, LLC.Inventors: Rajesh GUNNALAN, Mihhail KONOVALOV, Tin QIAN
-
Patent number: 10785271Abstract: A conferencing computing device, including memory storing one or more dispatch data structures. The conferencing computing device may further include a processor configured to receive a plurality of input packets at a port from a plurality of sender computing devices. Based on input packet data and the one or more dispatch data structures, for each input packet, the processor may to add that input packet to a queue of a transport provider bound to the port. The processor may transmit the plurality of input packets to a plurality of application program instances and instantiate a respective plurality of concurrent multipoint conferencing sessions. The processor may transmit a plurality of output packets from the plurality of application program instances to a plurality of recipient computing devices. The plurality of output packets may be multiplexed through the port and each have a multiplexed local socket address of the port.Type: GrantFiled: June 4, 2019Date of Patent: September 22, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Rajesh Gunnalan, Mihhail Konovalov, Tin Qian
-
Patent number: 10778726Abstract: A method for bidirectional data exchange includes, on a network computing device, receiving a first request from a first computing device via a request and response protocol, the first request including a first-device-provided portion of a data stream. The first-device-provided portion of the data stream is sent to a second computing device. A second-device-provided portion of the data stream is received from the second computing device. A second request is received from the first computing device via the request and response protocol, the second request soliciting the second-device-provided portion of the data stream. A response to the second request is sent to the first computing device via the request and response protocol, the response including the second-device-provided portion of the data stream.Type: GrantFiled: August 31, 2017Date of Patent: September 15, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Ilja Tsahhirov, Tin Qian, Rajesh Gunnalan, Mihhail Konovalov, Marcin Goliszewski, Aadu Adok, Mykhailo Moroz
-
Publication number: 20190068652Abstract: A method for bidirectional data exchange includes, on a network computing device, receiving a first request from a first computing device via a request and response protocol, the first request including a first-device-provided portion of a data stream. The first-device-provided portion of the data stream is sent to a second computing device. A second-device-provided portion of the data stream is received from the second computing device. A second request is received from the first computing device via the request and response protocol, the second request soliciting the second-device-provided portion of the data stream. A response to the second request is sent to the first computing device via the request and response protocol, the response including the second-device-provided portion of the data stream.Type: ApplicationFiled: August 31, 2017Publication date: February 28, 2019Applicant: Microsoft Technology Licensing, LLCInventors: Ilja TSAHHIROV, Tin QIAN, Rajesh GUNNALAN, Mihhail KONOVALOV, Marcin GOLISZEWSKI, Aadu ADOK, Mykhailo MOROZ
-
Publication number: 20190068684Abstract: A method for bidirectional data exchange includes, on a computing device, sending a first request to a remote computing device via a request and response protocol, the first request including an outgoing portion of a data stream. A second, separate request is sent to the remote computing device via the request and response protocol, the second request soliciting an incoming portion of the data stream. From the remote computing device, a response to the second request is received via the request and response protocol, the request including the incoming portion of the data stream.Type: ApplicationFiled: August 31, 2017Publication date: February 28, 2019Applicant: Microsoft Technology Licensing, LLCInventors: Ilja TSAHHIROV, Tin QIAN, Rajesh GUNNALAN, Mihhail KONOVALOV, Marcin GOLISZEWSKI, Aadu ADOK, Mykhailo MOROZ