Methods for transforming streaming video data
First Claim
1. A method for forming an output stream of data comprises:
- determining an output resolution for the output stream of data;
determining an output frame rate for the output stream of data;
determining an output color depth for the output stream of data;
retrieving a first frame of data, a second frame of data, and a third frame of data from an input stream of data, the input stream of data having an input resolution, an input frame rate, and an input color depth;
subsampling the first frame of data, the second frame of data, and the third frame of data to respectively form a first subsampled frame of data, a second subsampled frame of data, and a third subsampled frame of data, if the output resolution is lower than the input resolution;
dropping the second subsampled frame of data, if the output frame rate is lower than the input frame rate;
reducing color depth for the first subsampled frame of data and the second subsampled frame of data to respectively form a first reduced frame of data and a second reduced frame of data, if the output color depth is smaller than the input color depth;
converting the first reduced frame of data and the second reduced frame of data into the output stream of data, wherein the subsampling, dropping, reducing, and converting are part of a transcoding process from among a plurality of transcoding processes, each of the transcoding processes being performed with said input stream of data, having same said input resolution, same said input frame rate, and same said input color depth, as their respective input; and
respectively generating multiple unique output streams of data from the plurality of transcoding processes and, at a server, selecting and separately sending concurrently the multiple unique output streams to respective multiple client devices, each of the multiple client devices being respectively sent their single unique output stream to form an image having a final output resolution without using additional streams to change the final output resolution of the image formed by that single unique output stream.
6 Assignments
0 Petitions
Accused Products
Abstract
A method for forming an output stream of data includes determining an output resolution for the output stream of data, determining an output frame rate for the output stream of data, determining an output color depth for the output stream of data, retrieving a first frame of data, a second frame of data, and a third frame of data from an input stream of data, the input stream of data having an input resolution, an input frame rate, and an input color depth, subsampling the first frame of data, the second frame of data, and the third frame of data to respectively form a first subsampled frame of data, a second subsampled frame of data, and a third subsampled frame of data, when the output resolution is lower than the input resolution, dropping the second subsampled frame of data, when the output frame rate is lower than the input frame rate, reducing color depth for the first subsampled frame of data and the second subsampled frame of data to respectively form a first reduced frame of data and a second reduced frame of data, when the output color depth is smaller than the input color depth, and converting the first reduced frame of data and the second reduced frame of data into the output stream of data.
206 Citations
45 Claims
-
1. A method for forming an output stream of data comprises:
-
determining an output resolution for the output stream of data; determining an output frame rate for the output stream of data; determining an output color depth for the output stream of data; retrieving a first frame of data, a second frame of data, and a third frame of data from an input stream of data, the input stream of data having an input resolution, an input frame rate, and an input color depth; subsampling the first frame of data, the second frame of data, and the third frame of data to respectively form a first subsampled frame of data, a second subsampled frame of data, and a third subsampled frame of data, if the output resolution is lower than the input resolution; dropping the second subsampled frame of data, if the output frame rate is lower than the input frame rate; reducing color depth for the first subsampled frame of data and the second subsampled frame of data to respectively form a first reduced frame of data and a second reduced frame of data, if the output color depth is smaller than the input color depth; converting the first reduced frame of data and the second reduced frame of data into the output stream of data, wherein the subsampling, dropping, reducing, and converting are part of a transcoding process from among a plurality of transcoding processes, each of the transcoding processes being performed with said input stream of data, having same said input resolution, same said input frame rate, and same said input color depth, as their respective input; and respectively generating multiple unique output streams of data from the plurality of transcoding processes and, at a server, selecting and separately sending concurrently the multiple unique output streams to respective multiple client devices, each of the multiple client devices being respectively sent their single unique output stream to form an image having a final output resolution without using additional streams to change the final output resolution of the image formed by that single unique output stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for converting an input video stream to an output video stream comprises:
-
deriving at least one of a specification of a resolution, a frame rate, a color depth, and encoding format for the output video stream; deriving at least one of a specification of an input resolution, an input frame rate, an input color depth, and an input encoding format, for the input video stream; obtaining a plurality of video frames from the input video stream; subsampling each video frame from the plurality of video frames, if the resolution for the output video stream is different from the input resolution of the input video stream; eliminating video frames from the plurality of video frames, if the frame rate for the output video stream is different from the input frame rate of the input video stream; reducing color depth for video frames from the plurality of video frames, if the color depth for the output video stream is different from the input color depth of the input video stream; converting the plurality of video frames to the output video stream in response to the encoding format for the output video stream, wherein at least some of the subsampling, eliminating, reducing, and converting is performed multiple times in respective multiple transcoding processes, with said input video stream having same said input resolution, same said input frame rate, same said input color depth, and same said input encoding format as respective input to each transcoding process, to simultaneously produce respective multiple different output video streams having different encoding formats; and at a server, selecting and separately sending concurrently the multiple different output video streams to respective multiple client devices, each of the multiple client devices being respectively sent their single different output video stream to form an image having a final resolution without using additional streams to change the final resolution of that image formed by that single different output video stream. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A method for operating a transcoder circuit coupled to a frame buffer comprises:
-
retrieving a plurality of frames of data from the frame buffer; subsampling, with a sampling circuit in the transcoder circuit, the plurality of frames of data if the sampling circuit determines that an input resolution for the plurality of frames of data is different from a desired output resolution for the plurality of frames; removing, with a frame rate circuit in the transcoder circuit, frames from the plurality of frames of data if the frame rate circuit determines that an input frame rate for the plurality of frames is different from a desired output frame rate for the plurality of frames; reducing, with a color reduction circuit in the transcoder circuit, color depth from the plurality of frames of data if the color reduction circuit determines that an input color depth for the plurality of frames is different from a desired output color depth for the plurality of frames; thereafter encoding, with an encoder circuit in the transcoder circuit, the plurality of frames of data into a desired output encoding format, wherein the transcoder circuit includes a plurality of transcoders to each receive the plurality of input frames of data having same said input resolution, input frame rate, and input color depth as their respective input, and to collectively output a corresponding plurality of unique output streams that have been generated using different subsampling, removing, reducing, and encoding performed by the transcoders; and at a server, selecting and separately sending concurrently the plurality of unique output streams to respective multiple client devices, each of the multiple client devices being respectively sent their single unique output stream, which can have a different final output resolution relative to other single unique output streams sent to other client devices, without using additional streams to change that final output resolution. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37)
-
-
38. An article of manufacture, comprising:
-
a computer-readable medium storing thereon instructions that are executable by a computer to dynamically change characteristics of an input video stream to meet requirements for a plurality of output video streams, by; determining input characteristics of an input stream of video data; determining characteristics of a plurality of client devices; determining characteristics of communication channels that can be used to send video data to the client devices; adapting the input stream of video data into a plurality of different output streams of video data using a corresponding plurality of transcoding processes, including server-side instructions to determine which of each different output stream of video data is associated with and to be separately sent to respective client devices, wherein each output stream of video data has been adapted from the input stream of video data having same said input characteristics as common input into each respective transcoding process based on either or both characteristics of communication channels to or characteristics of respective client devices; and dynamically updating, during transmission, at least some of the output streams in response to changes in characteristics of communication channels and characteristics of client devices that respectively receive the output streams, each of the plurality of client devices being respectively sent concurrently their single different output stream, which can have a different final output resolution relative to other single different output streams sent to other client devices, without using additional streams to change that final output resolution. - View Dependent Claims (39, 40, 41, 42)
-
-
43. A system, comprising:
-
a means for determining input characteristics of an input stream of video data; a means for determining characteristics of a plurality of client devices; a means for determining characteristics of communication channels that can be used to send video data to the client devices; multiple transcoding means for adapting the input stream of video data, as common input with said input characteristics into the respective multiple transcoding means, into a respective plurality of different output streams of video data, including server-side means for determining which of each different output stream of video data is associated with and to be separately sent concurrently to respective client devices, wherein each output stream of video data has been adapted from the input stream of video data as common input with same said input characteristics based on either or both characteristics of communication channels to or characteristics of respective client devices; and a means for dynamically updating, during transmission, at least some of the output streams in response to changes in characteristics of communication channels and characteristics of client devices that respectively receive the output streams, each of the plurality client devices being respectively sent concurrently their single different output stream, which can have a different final output resolution relative to other single different output streams sent to other client devices, without using additional streams to change that final output resolution. - View Dependent Claims (44, 45)
-
Specification