Dynamic selection of parameter sets for transcoding media data
First Claim
Patent Images
1. A method, comprising:
- receiving, by a device including a processor, a media data stream; and
performing, by the device, an iterative operation for transcoding the media data stream into a transcoded media data stream, wherein each iteration of the iterative operation comprises;
receiving a current segment of the media data stream;
transcoding the current segment into a first transcoded segment using a current parameter set that was employed to transcode a previous segment of the media data stream;
determining whether the current parameter set is a final parameter set;
in response to determining that the current parameter is the final parameter set, outputting the first transcoded segment as part of the transcoded media data stream; and
in response to determining that the current parameter is not the final parameter set;
determining a first fitness score of the first transcoded segment;
determining whether the first fitness score exceeds a fitness score threshold;
mutating the current parameter set into a mutated parameter set;
transcoding the current segment into a second transcoded segment using the mutated parameter set;
determining a second fitness score of the second transcoded segment;
determining whether the second fitness score is greater than the first fitness score;
in response to determining that the second fitness score is not greater than the first fitness score, outputting the first transcoded segment as part of the transcoded media data stream; and
in response to determining that the second fitness score is greater than the first fitness score;
setting the mutated parameter set as the current parameter set;
outputting the second transcoded segment as part of the transcoded media data stream;
determining whether the second fitness score exceeds a fitness score threshold; and
in response to determining that the second fitness score exceeds the fitness score threshold setting the current parameter set as the final parameter set.
3 Assignments
0 Petitions
Accused Products
Abstract
An iterative operation is performed at a computing device to identify a parameter set for an initial segment. A parameter set for an initial segment includes a plurality of encoding parameters and values assigned to the encoding parameters. The initial segment is re-encoded using the parameter set, thereby generating a transcoded segment. In some embodiments, the transcoded segment is transmitted to a client computing device that presents media represented by the transcoded segment.
-
Citations
17 Claims
-
1. A method, comprising:
-
receiving, by a device including a processor, a media data stream; and performing, by the device, an iterative operation for transcoding the media data stream into a transcoded media data stream, wherein each iteration of the iterative operation comprises; receiving a current segment of the media data stream; transcoding the current segment into a first transcoded segment using a current parameter set that was employed to transcode a previous segment of the media data stream; determining whether the current parameter set is a final parameter set; in response to determining that the current parameter is the final parameter set, outputting the first transcoded segment as part of the transcoded media data stream; and in response to determining that the current parameter is not the final parameter set; determining a first fitness score of the first transcoded segment; determining whether the first fitness score exceeds a fitness score threshold; mutating the current parameter set into a mutated parameter set; transcoding the current segment into a second transcoded segment using the mutated parameter set; determining a second fitness score of the second transcoded segment; determining whether the second fitness score is greater than the first fitness score; in response to determining that the second fitness score is not greater than the first fitness score, outputting the first transcoded segment as part of the transcoded media data stream; and in response to determining that the second fitness score is greater than the first fitness score; setting the mutated parameter set as the current parameter set; outputting the second transcoded segment as part of the transcoded media data stream; determining whether the second fitness score exceeds a fitness score threshold; and in response to determining that the second fitness score exceeds the fitness score threshold setting the current parameter set as the final parameter set. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A non-transitory computer readable medium having instructions stored thereon that, in response to execution, cause system including a processor to perform operations comprising:
-
receiving a media data stream; and performing an iterative operation for transcoding the media data stream into a transcoded media data stream, wherein each iteration of the iterative operation comprises; receiving a current segment of the media data stream; transcoding the current segment into a first transcoded segment using a current parameter set that was employed to transcode a previous segment of the media data stream; determining whether the current parameter set is a final parameter set; in response to determining that the current parameter is the final parameter set, outputting the first transcoded segment as part of the transcoded media data stream; and in response to determining that the current parameter is not the final parameter set; determining a first fitness score of the first transcoded segment; determining whether the first fitness score exceeds a fitness score threshold; mutating the current parameter set into a mutated parameter set; transcoding the current segment into a second transcoded segment using the mutated parameter set; determining a second fitness score of the second transcoded segment; determining whether the second fitness score is greater than the first fitness score; in response to determining that the second fitness score is not greater than the first fitness score, outputting the first transcoded segment as part of the transcoded media data stream; and in response to determining that the second fitness score is greater than the first fitness score; setting the mutated parameter set as the current parameter set; outputting the second transcoded segment as part of the transcoded media data stream; determining whether the second fitness score exceeds a fitness score threshold; and in response to determining that the second fitness score exceeds the fitness score threshold setting the current parameter set as the final parameter set. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A system, comprising:
a memory, communicatively coupled to a processor, the memory having stored therein executable instructions, comprising; a parameter identification module configured to; receive a media data stream; and perform an iterative operation for transcoding the media data stream into a transcoded media data stream, wherein each iteration of the iterative operation comprises; receive a current segment of the media data stream; transcode the current segment into a first transcoded segment using a current parameter set that was employed to transcode a previous segment of the media data stream; determine whether the current parameter set is a final parameter set; in response to a determination that the current parameter is the final parameter set, output the first transcoded segment as part of the transcoded media data stream; and in response to a determination that the current parameter is not the final parameter set;
calculate a first fitness score of the first transcoded segment;
determine whether the first fitness score exceeds a fitness score threshold;
mutate the current parameter set into a mutated parameter set;
transcode the current segment into a second transcoded segment using the mutated parameter set;
determine a second fitness score of the second transcoded segment;
determine whether the second fitness score is greater than the first fitness score;
in response to a determination that the second fitness score is not greater than the first fitness score, outputting the first transcoded segment as part of the transcoded media data stream; and
in response to a determination that the second fitness score is greater than the first fitness score;
set the mutated parameter set as the current parameter set;
output the second transcoded segment as part of the transcoded media data stream;
determine whether the second fitness score exceeds a fitness score threshold; and
in response to a determination that the second fitness score exceeds the fitness score threshold setting the current parameter set as the final parameter set.- View Dependent Claims (12, 13, 14)
-
15. A method, comprising:
-
receiving, by a device including a processor, a media data stream; and performing, by the device, an iterative operation for transcoding the media data stream into a transcoded media data stream, wherein each iteration of the iterative operation comprises; receiving a current series of segments of the media data stream; determine whether a final parameter set has been selected; in response to determining that the final parameter set has been selected; transcoding each segment in the current series of segments into a current series of transcoded segments using the final parameter set; and outputting the current series of transcoded segments as part of the transcoded media data stream; and in response to determining that the final parameter set has not been selected; transcoding each segment in the current series of segments into the current series of transcoded segments using different parameter sets in a current generation of parameter sets; outputting the current series of transcoded segments as part of the transcoded media data stream; determining respective fitness scores of transcoded segments in the current series of transcoded segments; determining whether at least one of the fitness scores exceeds a fitness score threshold; determining whether a generation limit is reached; in response to determining that the generation limit has been reached or at least one of the fitness scores exceeds the fitness score threshold, selecting a parameter set employed for encoding a segment into a transcoded segment having a fitness score greater than each other transcoded segment in the current series of transcoded segments as the final parameter set; and in response to determining that the generation limit has not been reached and none of the fitness scores exceeds the fitness score threshold; determining selection probabilities of the parameter sets in the current generation of parameter sets; and performing the following steps until a new generation of parameter sets includes a threshold number of parameter sets;
selecting parent parameter sets based on the selection probabilities of the parameter sets in the current generation of parameter sets; and
generating a child parameter set in the new generation of parameter sets by recombining values of encoding parameters in the parent parameter sets; andsetting the new generation of parameter sets as the current generation of parameter sets.
-
-
16. A non-transitory computer readable medium having instructions stored thereon that, in response to execution, cause system including a processor to perform operations comprising:
-
receiving a media data stream; and performing an iterative operation for transcoding the media data stream into a transcoded media data stream, wherein each iteration of the iterative operation comprises; receiving a current series of segments of the media data stream; determining whether a final parameter set has been selected; in response to determining that the final parameter set has been selected; transcoding each segment in the current series of segments into a current series of transcoded segments using the final parameter set; and outputting the current series of transcoded segments as part of the transcoded media data stream; and in response to determining that the final parameter set has not been selected; transcoding each segment in the current series of segments into the current series of transcoded segments using different parameter sets in a current generation of parameter sets; outputting the current series of transcoded segments as part of the transcoded media data stream; calculating respective fitness scores of transcoded segments in the current series of transcoded segments; determining whether at least one of the fitness scores exceeds a fitness score threshold; determining whether a generation limit is reached; in response to determining that the generation limit has been reached or at least one of the fitness scores exceeds the fitness score threshold, selecting a parameter set employed for encoding a segment into a transcoded segment having a fitness score greater than each other transcoded segment in the current series of transcoded segments as the final parameter set; and in response to determining that the generation limit has not being reached and none of the fitness scores exceeds the fitness score threshold; determining selection probabilities of the parameter sets in the current generation of parameter sets; and performing the following steps until a new generation of parameter sets includes a threshold number of parameter sets;
selecting parent parameter sets based on the selection probabilities of the parameter sets in the current generation of parameter sets; and
generating a child parameter set in the new generation of parameter sets by recombining values of encoding parameters in the parent parameter sets; andsetting the new generation of parameter sets as the current generation of parameter sets.
-
-
17. A system, comprising:
a memory, communicatively coupled to a processor, the memory having stored therein executable instructions, comprising; a parameter identification module configured to; receive a media data stream; and perform an iterative operation for transcoding the media data stream into a transcoded media data stream, wherein each iteration of the iterative operation comprises; receive a current series of segments of the media data stream; determine whether a final parameter set has been selected; in response to a determination that the final parameter set has been selected; transcode each segment in the current series of segments into a current series of transcoded segments using the final parameter set; and output the current series of transcoded segments as part of the transcoded media data stream; in response to a determination that the final parameter set has not been selected; transcode each segment in the current series of segments into the current series of transcoded segments using different parameter sets in a current generation of parameter sets; output the current series of transcoded segments as part of the transcoded media data stream; determine respective fitness scores of transcoded segments in the current series of transcoded segments; determine whether at least one of the fitness scores exceeds a fitness score threshold; determine whether a generation limit is reached; in response to a determination that the generation limit has been reached or at least one of the fitness scores exceeds the fitness score threshold, selecting a parameter set employed for encoding a segment into a transcoded segment having a fitness score greater than each other transcoded segment in the current series of transcoded segments as the final parameter set; in response to a determination that the generation limit has not being reached and none of the fitness scores exceeds the fitness score threshold;
determine selection probabilities of the parameter sets in the current generation of parameter sets; and
perform the following until a new generation of parameter sets includes a threshold number of parameter sets;
select parent parameter sets based on the selection probabilities of the parameter sets in the current generation of parameter sets; and
generate a child parameter set in the new generation of parameter sets by recombining values of encoding parameters in the parent parameter sets; and
set the new generation of parameter sets as the current generation of parameter sets.
Specification