Script-based video rendering
First Claim
1. A method performed by a computer system for rendering video content on a user-computing platform that is one type of a plurality of different user-computing platform types, the method comprising:
- transmitting a script to the user-computing platform, the script configured to be interpreted by an application program operating on any one of the plurality of user-computing platform types and further configured to cause the script to be interpreted by the application program to;
decode a first type of encoded video data embodying the video content and received at the user-computing platform into first decoded video data comprising one or more first frame images;
render the first decoded video data by displaying the one or more first frame images;
determine a rate at which the first type of encoded video data is being received by the user-computing platform and perform at least one of;
transmitting a request to receive a second type of encoded video data embodying the video content, in dependence on the determined rate;
modifying a characteristic of the decoding of the first type of encoded video data, in dependence on the determined rate; and
modifying a characteristic of the displaying of the one or more first frame images, in dependence on the determined rate;
the script is further configured to cause the script to be interpreted by the application program to modify the characteristic of the decoding of the first type of encoded video data in dependence on the determined rate.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are provided for cross-platform rendering of video content on a plurality of different user-computing platform types. A script is transmitted to the user-computing platform and is interpreted by an application program to: decode a first type of encoded video data into first decoded video data; render the first decoded video data; determine a rate at which the first type of encoded video data is being received; and, in dependence on the determined rate, to perform at least one of: transmitting a request to receive a second type of encoded video data; modifying a characteristic of the decoding of the first type of encoded video data; and modifying a characteristic of the rendering of the first decoded video data.
69 Citations
55 Claims
-
1. A method performed by a computer system for rendering video content on a user-computing platform that is one type of a plurality of different user-computing platform types, the method comprising:
-
transmitting a script to the user-computing platform, the script configured to be interpreted by an application program operating on any one of the plurality of user-computing platform types and further configured to cause the script to be interpreted by the application program to; decode a first type of encoded video data embodying the video content and received at the user-computing platform into first decoded video data comprising one or more first frame images; render the first decoded video data by displaying the one or more first frame images; determine a rate at which the first type of encoded video data is being received by the user-computing platform and perform at least one of; transmitting a request to receive a second type of encoded video data embodying the video content, in dependence on the determined rate; modifying a characteristic of the decoding of the first type of encoded video data, in dependence on the determined rate; and modifying a characteristic of the displaying of the one or more first frame images, in dependence on the determined rate; the script is further configured to cause the script to be interpreted by the application program to modify the characteristic of the decoding of the first type of encoded video data in dependence on the determined rate. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
-
42. A method performed by a computer system for rendering video content on a user-computing platform that is one type of a plurality of different user-computing platform types, the method comprising:
-
transmitting a script to the user-computing platform, the script configured to be interpreted by an application program operating on any one of the plurality of user-computing platform types and further configured to cause the script to be interpreted by the application program to; decode a first type of encoded video data embodying the video content and received at the user-computing platform into first decoded video data comprising one or more first frame images; render the first decoded video data by displaying the one or more first frame images; determine a rate at which the first type of encoded video data is being received by the user-computing platform and perform at least one of; transmitting a request to receive a second type of encoded video data embodying the video content, in dependence on the determined rate; modifying a characteristic of the decoding of the first type of encoded video data, in dependence on the determined rate; and modifying a characteristic of the displaying of the one or more first frame images, in dependence on the determined rate; the script is further configured to cause the script to be interpreted by the application program to the characteristic of the displaying of the one or more first frame images in dependence on the determined rate. - View Dependent Claims (43, 44, 45, 46, 47, 48)
-
-
49. A method performed by a computer system for rendering video content on a user-computing platform that is one type of a plurality of different user-computing platform types, the method comprising:
-
transmitting a script to the user-computing platform, the script configured to be interpreted by an application program operating on any one of the plurality of user-computing platform types and further configured to cause the script to be interpreted by the application program to; decode a first type of encoded video data embodying the video content and received at the user-computing platform into first decoded video data comprising one or more first frame images; render the first decoded video data by displaying the one or more first frame images; determine a rate at which the first type of encoded video data is being received by the user-computing platform and perform at least one of; transmitting a request to receive a second type of encoded video data embodying the video content, in dependence on the determined rate; modifying a characteristic of the decoding of the first type of encoded video data, in dependence on the determined rate; and modifying a characteristic of the displaying of the one or more first frame images, in dependence on the determined rate; wherein the video content is also embodied by encoded audio content received by the user-computing platform and the script is further configured to cause the script to be interpreted by the application program to decode the encoded audio data into decoded audio data; the script is further configured to cause the script to be interpreted by the application program to-render the decoded audio data by playing back the decoded audio data; wherein the first type of encoded video data and the encoded audio data are associated with one another as parts of a video content item, wherein the one or more first frame images comprise a plurality of frame images and wherein the script is further configured to cause the script to be interpreted by the application program to; ascertain an audio playback time reference associated with the playback of the decoded audio data; and directly synchronize the displaying of the plurality of frame images with the playback of the decoded audio data based on the audio playback time reference; wherein synchronizing the displaying of the plurality of frame images with the playback of the decoded audio data comprises at least one of; advancing the display of frame images out of order by skipping the display of one or more frame images based on a determination that the rendering of the first decoded video data is behind the audio playback time reference by a first threshold amount of time; and causing one or more frame images to be displayed for time periods longer than those dictated by a frame rate of the video data based on a determination that the rendering of the first decoded video data is ahead of the audio playback time reference by a second threshold amount of time.
-
-
50. A method performed by a computer system for rendering video content on a user-computing platform that is one type of a plurality of different user-computing platform types, the method comprising:
-
transmitting a script to the user-computing platform, the script configured to be interpreted by an application program operating on any one of the plurality of user-computing platform types and further configured to cause the script to be interpreted by the application program to; decode a first type of encoded video data embodying the video content and received at the user-computing platform into first decoded video data comprising one or more first frame images; render the first decoded video data by displaying the one or more first frame images; determine a rate at which the first type of encoded video data is being received by the user-computing platform and perform at least one of; transmitting a request to receive a second type of encoded video data embodying the video content, in dependence on the determined rate; modifying a characteristic of the decoding of the first type of encoded video data, in dependence on the determined rate; and modifying a characteristic of the displaying of the one or more first frame images, in dependence on the determined rate; wherein the video content is also embodied by encoded audio content received by the user-computing platform and the script is further configured to cause the script to be interpreted by the application program to decode the encoded audio data into decoded audio data; the script is further configured to cause the script to be interpreted by the application program to render the decoded audio data by playing back the decoded audio data; wherein the first type of encoded video data and the encoded audio data are associated with one another as parts of a video content item, wherein the one or more first frame images comprise a plurality of frame images and wherein the script is further configured to cause the script to be interpreted by the application program to; ascertain an audio playback time reference associated with the playback of the decoded audio data; and directly synchronize the displaying of the plurality of frame images with the playback of the decoded audio data based on the audio playback time reference; wherein synchronizing the displaying of the plurality of frame images with the playback of the decoded audio data comprises; using the audio playback time reference to determine a current frame index; and if the frame image associated with the current frame index is ready to be displayed, causing the frame image associated with the current frame index to be displayed. - View Dependent Claims (51, 52)
-
-
53. A method performed by a computer system for rendering video content on a user-computing platform that is one type of a plurality of different user-computing platform types, the method comprising:
-
transmitting a script to the user-computing platform, the script configured to be interpreted by an application program operating on any one of the plurality of user-computing platform types and further configured to cause the script to be interpreted by the application program to; decode a first type of encoded video data embodying the video content and received at the user-computing platform into first decoded video data comprising one or more first frame images; render the first decoded video data by displaying the one or more first frame images; determine a rate at which the first type of encoded video data is being received by the user-computing platform and perform at least one of; transmitting a request to receive a second type of encoded video data embodying the video content, in dependence on the determined rate; modifying a characteristic of the decoding of the first type of encoded video data, in dependence on the determined rate; and modifying a characteristic of the displaying of the one or more first frame images, in dependence on the determined rate; wherein the video content is also embodied by encoded audio content received by the user-computing platform and the script is further configured to cause the script to be interpreted by the application program to decode the encoded audio data into decoded audio data; the script is further configured to cause the script to be interpreted by the application program to render the decoded audio data by playing back the decoded audio data; the script is further configured to cause the script to be interpreted by the application program to simulate a multi-threaded execution environment by; iteratively scheduling and performing a first simulated thread which comprises directly decoding the first type of encoded video data into the first decoded video data; and iteratively scheduling and performing a second simulated thread which comprises rendering the first decoded video data by displaying the one or more first frame images; wherein performing the first simulated thread comprises; dividing the first simulated thread into a plurality of sub-components; between the performance of pairs of sub-components, making one or more logical inquiries into one or more corresponding conditions and, in dependence on the one or more corresponding conditions, temporarily interrupting the first simulated thread to select and perform an iteration of one of; the second simulated thread; and another simulated thread which involves implementing an audio renderer interface which provides decoded audio data to an audio renderer.
-
-
54. A method performed by a computer system for rendering video content on a user-computing platform that is one type of a plurality of different user-computing platform types, the method comprising:
-
transmitting a script to the user-computing platform, the script configured to be interpreted by an application program operating on any one of the plurality of user-computing platform types and further configured to cause the script to be interpreted by the application program to; decode a first type of encoded video data embodying the video content and received at the user-computing platform into first decoded video data comprising one or more first frame images; render the first decoded video data by displaying the one or more first frame images; determine a rate at which the first type of encoded video data is being received by the user-computing platform and perform at least one of; transmitting a request to receive a second type of encoded video data embodying the video content, in dependence on the determined rate; modifying a characteristic of the decoding of the first type of encoded video data, in dependence on the determined rate; and
g a characteristic of the displaying of the one or more first frame images, in dependence on the determined rate;wherein the video content is also embodied by encoded audio content received by the user-computing platform and the script is further configured to cause the script to be interpreted by the application program to decode the encoded audio data into decoded audio data; the script is further configured to cause the script to be interpreted by the application program to render the decoded audio data by playing back the decoded audio data; wherein rendering the first decoded video data by displaying the one or more first frame images comprises, at each of one or more times between displaying a first one of the frame images and displaying a second one of the frame images, displaying an alpha-blended image comprising an alpha-blend of the first one of the frame images and the second one of the frame images; wherein, at each of the one or more times between displaying the first one of the frame images and displaying the second one of the frame images, displaying the alpha-blended image comprises alpha-blending the second one of the frame images onto a preceding displayed image using an alpha-blending coefficient α
provided by;
α
=[β
+1−
mod(f#,β
)]−
1where; β
is a down-sampling factor equal to a number of the one or more times +1;f# is an index referring to a number of a current one of the one or more times; and mod(x,y) is a modulo operator which returns the whole number remainder of x divided by y.
-
-
55. A method performed by a computer system for rendering video content on a user-computing platform that is one type of a plurality of different user-computing platform types, the method comprising:
-
transmitting a script to the user-computing platform, the script configured to be interpreted by an application program operating on any one of the plurality of user-computing platform types and further configured to cause the script to be interpreted by the application program to; decode a first type of encoded video data embodying the video content and received at the user-computing platform into first decoded video data comprising one or more first frame images; render the first decoded video data by displaying the one or more first frame images; determine a rate at which the first type of encoded video data is being received by the user-computing platform and perform at least one of; transmitting a request to receive a second type of encoded video data embodying the video content, in dependence on the determined rate; modifying a characteristic of the decoding of the first type of encoded video data, in dependence on the determined rate; and modifying a characteristic of the displaying of the one or more first frame images, in dependence on the determined rate; and transmitting the first type of encoded video data to the user-computing platform; wherein the one or more first frame images comprise a plurality of frame images, the method comprising encoding the video content into the first type of encoded video data prior to transmitting the first type of encoded video data to the user-computing platform and wherein encoding the video content comprises; for at least a first one of the frame images provided in a first file format; analyzing content of the first one of the frame images; selecting one among a plurality of secondary image file formats based on the analysis of the content of the first one of the frame images; and if the first file format differs from the selected one of the secondary image file formats, converting the image file format of the first one of the frame images into the selected one of the secondary file formats; and
for at least a second one of the frame images provided in a second file format;analyzing content of the second one of the frame images; selecting a different one among the plurality of secondary image file formats based on the analysis of the content of the second one of the frame images; and if the second file format differs from the selected different one of the secondary image file formats, converting the image file format of the second one of the frame images into the selected different one of the secondary file formats; wherein each of the plurality of secondary image file formats is capable of being natively rendered by the application program.
-
Specification