Composite video streaming using stateless compression
First Claim
Patent Images
1. A method comprising:
- executing, by a processor, an application that provides a video output for transmission to a client, the client being connected to a plurality of socket connections established between the client and the processor;
generating, by the processor, the video output of the application, the video output comprising a composite video image;
dividing, by the processor, a full video frame corresponding to the composite video image into a plurality of unique frame regions, each of the divided unique regions of the full video frame corresponding to a respective socket connection of the plurality of socket connections established for the same client and the number of divided unique regions corresponding to the number of the plurality of socket connections, wherein the divided unique regions comprise a target frame region and one or more positional frame regions positioned and rendered adjacent to the target frame region;
rendering, by the processor, a plurality of separate video streams, wherein each of the separate video streams corresponds to a respective one of the plurality of divided unique frame regions of the composite video image, and wherein each of the separate video streams is executed as a separate thread to write to each of the plurality of socket connections established for the same client in parallel with other separate video streams corresponding to other divided unique frame regions;
rendering, by the processor, a movement of the target frame region relative to the composite video image, wherein rendering comprises determining changes to a height or width of the one or more positional frame regions adjacent to the target frame region and transmitting a new frame having a new height and width over respective socket connections corresponding to the one or more positional frame regions.
1 Assignment
0 Petitions
Accused Products
Abstract
A video rendering and streaming methodology that utilizes stateless video compression and video image segmentation to achieve enhanced video compression. In some implementations, the video compression and streaming techniques described herein can be deployed to allow for delivery of high-definition video games to client devices that host a standard browser.
-
Citations
14 Claims
-
1. A method comprising:
-
executing, by a processor, an application that provides a video output for transmission to a client, the client being connected to a plurality of socket connections established between the client and the processor; generating, by the processor, the video output of the application, the video output comprising a composite video image; dividing, by the processor, a full video frame corresponding to the composite video image into a plurality of unique frame regions, each of the divided unique regions of the full video frame corresponding to a respective socket connection of the plurality of socket connections established for the same client and the number of divided unique regions corresponding to the number of the plurality of socket connections, wherein the divided unique regions comprise a target frame region and one or more positional frame regions positioned and rendered adjacent to the target frame region; rendering, by the processor, a plurality of separate video streams, wherein each of the separate video streams corresponds to a respective one of the plurality of divided unique frame regions of the composite video image, and wherein each of the separate video streams is executed as a separate thread to write to each of the plurality of socket connections established for the same client in parallel with other separate video streams corresponding to other divided unique frame regions; rendering, by the processor, a movement of the target frame region relative to the composite video image, wherein rendering comprises determining changes to a height or width of the one or more positional frame regions adjacent to the target frame region and transmitting a new frame having a new height and width over respective socket connections corresponding to the one or more positional frame regions. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus, comprising:
-
one or more processors; a memory; a network interface; and computer program code stored in a non-transitory computer-readable storage medium and comprising computer-executable instructions for; executing an application that provides a video output for transmission to a client, the client being connected to a plurality of socket connections established between the client and the processor; generating the video output of the application, the video output comprising a composite video image; dividing a full video frame corresponding to the composite video image into a plurality of unique frame regions, each of the divided unique regions of the full video frame corresponding to a respective socket connection of the plurality of socket connections established for the same client and the number of divided unique regions corresponding to the number of the plurality of socket connections, wherein the divided unique regions comprise a target frame region and one or more positional frame regions positioned and rendered adjacent to the target frame region; rendering a plurality of separate video streams, wherein each of the separate video streams corresponds to a respective one of the plurality of divided unique frame regions of the composite video image, and wherein each of the separate video streams is executed as a separate thread to write to each of the plurality of socket connections established for the same client in parallel with other separate video streams corresponding to other divided unique frame regions; rendering a movement of the target frame region relative to the composite video image, wherein rendering comprises determining changes to a height or width of the one or more positional frame regions adjacent to the target frame region and transmitting a new frame having a new height and width over respective socket connections corresponding to the one or more positional frame regions. - View Dependent Claims (9, 10, 11)
-
-
12. A non-transitory computer readable storage medium having stored thereon computer programming instructions for:
-
executing an application that provides a video output for transmission to a client, the client being connected to a plurality of socket connections established between the client and the processor; generating the video output of the application, the video output comprising a composite video image; dividing a full video frame corresponding to the composite video image into a plurality of unique frame regions, each of the divided unique regions of the full video frame corresponding to a respective socket connection of the plurality of socket connections established for the same client and the number of divided unique regions corresponding to the number of the plurality of socket connections, wherein the divided unique regions comprise a target frame region and one or more positional frame regions positioned and rendered adjacent to the target frame region; rendering a plurality of separate video streams, wherein each of the separate video streams corresponds to a respective one of the plurality of divided unique regions of the composite video image, and wherein each of the separate video streams is executed as a separate thread to write to each of the plurality of socket connections established for the same client in parallel with other separate video streams corresponding to other divided unique frame regions; rendering a movement of the target frame region relative to the composite video image, wherein rendering comprises determining changes to a height or width of the one or more positional frame regions adjacent to the target frame region and transmitting a new frame having a new height and width over respective socket connections corresponding to the one or more positional frame regions. - View Dependent Claims (13, 14)
-
Specification