System and method for Internet streaming of 3D animated content
First Claim
1. In a computer network allowing communication between a host computer and a plurality of remote user computers, a method for packaging a single 3D animated content data for distribution to the remote user computers over a network connection, the method comprising:
- identifying a set of pre-load data preloaded by a remote user computer before playback of the single 3D animated content;
storing the pre-load data in a pre-load file;
identifying first and second streaming data respectively having first and second data sizes for being streamed over the network connection during playback of the single 3D animated content, the first and second streaming data being respectively associated with first and second scenes of the single 3D animated content;
identifying a data rate available to the remote user computer for streaming the first and second streaming data;
identifying a first duration of a first scene and a second duration of a second scene;
storing the streaming data for the first and second scenes in first and second stream files associated with the scenes, each stream file being of a size calculated from the identified data rate and the duration of the respective scene, each stream file being packaged into a plurality of data blocks, each data block being associated with a start transmission time;
allocating an excess portion of at least the first streaming data to the pre-load file responsive to a determination that the first data size is bigger than the size calculated for the first stream file;
assigning a start transmission time to a first of the plurality of data blocks based on a size of the first data block and the identified data rate;
assigning a start transmission time to each successive data block based on its respective size and the identified data rate;
recursively updating a start time of a previous data block based on the calculation of the start transmission time of the successive data block; and
streaming each stream file over the network connection during playback of the respective scene, the stream file calculated to finish downloading by the remote user computer prior to the end of the playback of the respective scene.
4 Assignments
0 Petitions
Accused Products
Abstract
A system and method facilitating the production, processing, and Internet distribution of 3D animated movies including 3D multipath movies. A key reduction algorithm reduces the keyframes associated with the 3D movie to facilitate the streaming of the data over the Internet. An animation optimization and texture optimization algorithm allows the system to get statistical information of the portions of the 3D object which are invisible (outside the view frame), and whose animation and texture data may thus be safely removed. If the 3D object is within the view frame, the optimization algorithm gathers information about the distance and size of the 3D object and its associated texture data within the frame. The system and method further allows creation of various versions of the 3D object from a single production process. The various versions are tagged with an identifier identifying the target platforms and media platforms in which they are suitable for display. During playback, the correct version of the 3D object is selected for display based on the detected Internet bandwidth and/or CPU speed. To stream the 3D animation content over the Internet for real-time playback, the present system and method allows the data to be divided into an upfront file and various stream files. The upfront file is downloaded prior to the playback of the movie. The stream files are streamed over the Internet and made available to the 3D engine in time for their use.
-
Citations
21 Claims
-
1. In a computer network allowing communication between a host computer and a plurality of remote user computers, a method for packaging a single 3D animated content data for distribution to the remote user computers over a network connection, the method comprising:
-
identifying a set of pre-load data preloaded by a remote user computer before playback of the single 3D animated content; storing the pre-load data in a pre-load file; identifying first and second streaming data respectively having first and second data sizes for being streamed over the network connection during playback of the single 3D animated content, the first and second streaming data being respectively associated with first and second scenes of the single 3D animated content; identifying a data rate available to the remote user computer for streaming the first and second streaming data; identifying a first duration of a first scene and a second duration of a second scene; storing the streaming data for the first and second scenes in first and second stream files associated with the scenes, each stream file being of a size calculated from the identified data rate and the duration of the respective scene, each stream file being packaged into a plurality of data blocks, each data block being associated with a start transmission time; allocating an excess portion of at least the first streaming data to the pre-load file responsive to a determination that the first data size is bigger than the size calculated for the first stream file; assigning a start transmission time to a first of the plurality of data blocks based on a size of the first data block and the identified data rate; assigning a start transmission time to each successive data block based on its respective size and the identified data rate; recursively updating a start time of a previous data block based on the calculation of the start transmission time of the successive data block; and streaming each stream file over the network connection during playback of the respective scene, the stream file calculated to finish downloading by the remote user computer prior to the end of the playback of the respective scene. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. In a computer network allowing communication between a host computer and a plurality of remote user computers, a system for packaging a single 3D animated content data for distribution to the remote user computers over a network connection, the system comprising:
-
means for identifying a set of pre-load data preloaded by a remote user computer before playback of the single 3D animated content; means for storing the pre-load data in a pre-load file; means for identifying first and second streaming data respectively having first and second data sizes for being streamed over the network connection during playback of the single 3D animated content, the first and second streaming data being respectively associated with first and second scenes of the single 3D animated content; means for identifying a data rate available to the remote user computer for streaming the streaming data; means for identifying a first duration of a first scene and a second duration of a second scene; means for storing the streaming data for the first and second scenes in first and second stream files associated with the scenes, each stream file being of a size calculated from the identified data rate and the duration of the respective scene, each stream file being packaged into a plurality of data blocks, each data block being associated with a start transmission time; means for allocating an excess portion of at least the first streaming data to the pre-load file responsive to a determination that the first data size is bigger than the size calculated for the first stream file; means for assigning a start transmission time to a first of the plurality of data blocks based on a size of the first data block and the identified data rate; means for assigning a start transmission time to each successive data block based on its respective size and the identified data rate; means for recursively updating a start time of a previous data block based on the calculation of the start transmission time of the successive data block; and means for streaming each stream file over the network connection during playback of the respective scene, the stream file calculated to finish downloading by the remote user computer prior to the end of the playback of the respective scene. - View Dependent Claims (9, 10, 11)
-
-
12. In a computer network allowing communication between a host computer and a plurality of remote user computers, a system for packaging a single 3D animated content data for distribution to the remote user computers, the system comprising:
-
a pre-load file storing a set of pre-load data preloaded by a remote user computer before playback of the single 3D animated content; a stream file storing the streaming data for being streamed over the network connection during playback of the single 3D animated content; a mass storage device for storing the pre-load file and the stream file; and a production module in communication with the mass storage device, the production module including logic for; identifying the pre-load data for the single 3D animated content and first and second streaming data respectively having first and second data sizes, the first and second streaming data being respectively associated with first and second scenes of the single 3D animated content; storing the identified pre-load data in the pre-load file; identifying a data rate available to the remote user computer for streaming the first and second streaming data; identifying a first duration of a first scene and a second duration of a second scene; storing the streaming data for the first and second scenes in first and second stream files associated with the scenes, each stream file being of a size calculated from the identified data rate and the duration of the respective scene, each stream file being packaged into a plurality of data blocks, each data block being associated with a start transmission time; allocating an excess portion of at least the first streaming data to the pre-load file responsive to a determination that the first data size is bigger than the size calculated for the first stream file; assigning a start transmission time to a first of the plurality of the data blocks based on a size of the first data block and the identified data rate; assigning a start transmission time to each successive data block based on its respective size and the identified data rate; and recursively updating a start time of a previous data block based on the calculation of the start transmission time of the successive data block. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A computer-implemented method for delivering a single media production to a remote device over a data communications network, the method comprising:
-
identifying a data rate available to the remote device; identifying first media content associated with a first portion of the single media production and second media content associated with a second portion of the single media production; identifying a first duration of the first portion of the single media production and a second duration of a second portion of the single media production; allocating a first size to a first stream file based on the identified data rate and the first duration, and a second size to a second stream file based on the identified data rate and the second duration; inserting at least a portion of the first media content associated with the first portion into the allocated first size of the first stream file, and at least a portion of the second media content associated with the second portion into the allocated second size of the second stream file, each stream file being packaged into a plurality of data blocks, each data block being associated with a start transmission time; allocating an excess portion of at least the portion of the first media content to an upfront file pre-loaded by the remote device prior to playback of the media production responsive to a determination that a size of the portion of the first media content is bigger than the first size of the first stream file; assigning a start transmission time to a first of the plurality of data blocks based on a size of the first data block and the identified data rate; assigning a start transmission time to each successive data block based on its respective size and the identified data rate; recursively updating a start time of a previous data block based on the calculation of the start transmission time of the successive data block; and streaming the first and second stream files to the remote device. - View Dependent Claims (20, 21)
-
Specification