Media stream slicing and processing load allocation for multi-user media systems
First Claim
1. A method in a computer system for transformatively processing two or more media streams across multiple media processing units of media devices connected within a network, the method comprising:
- monitoring competing requests for processing the two or more media streams directed to a media device within the network;
allocating a media processing unit of the media device for processing a first media stream of the two or more media streams;
determining that processing resources of the allocated media processing unit of the media device are sufficient for simultaneous processing of more than one media stream but insufficient for simultaneous processing of all of the two or more media streams;
allocating available processing resources of one or more media processing units of other media devices connected within the network to split processing of a second media stream of the two or more media streams between the allocated media processing unit of the media device and the one or more media processing units of the other media devices;
dividing each of the two or more media streams into independently processable segments based upon media formats of the two or more media streams;
assigning priority for processing order to the independently processable segments;
determining processing requirements for each independently processable segment; and
scheduling the independently processable segments for delivery to the allocated media processing unit of the media device and the one or more media processing units of the other media devices based upon the assigned priority and the processing requirements for each independently processable segment.
2 Assignments
0 Petitions
Accused Products
Abstract
Transrate/transcode functionality of media processing units in devices distributed within a networked media system are harnessed to enable media streaming to devices across networks while overcoming insufficient bandwidth to transmit the source content or while providing reformatted media to devices that do not support the source format. A policy engine may reallocate media processing resources for greater efficiency. The policy engine may further schedule time-slicing of media segments in available hardware and software-based codecs. Time-slicing may be used to transformatively process one or more media streams across potentially multiple media processing units connected within a network. The media streams are divided into independently processable segments based upon knowledge of underlying media formats. Processing requirements and a priority processing order may be determined for and assigned to each independently processable segment. The segments may be scheduled for delivery to the media processing units based upon the assigned priority and processing requirements.
47 Citations
20 Claims
-
1. A method in a computer system for transformatively processing two or more media streams across multiple media processing units of media devices connected within a network, the method comprising:
-
monitoring competing requests for processing the two or more media streams directed to a media device within the network; allocating a media processing unit of the media device for processing a first media stream of the two or more media streams; determining that processing resources of the allocated media processing unit of the media device are sufficient for simultaneous processing of more than one media stream but insufficient for simultaneous processing of all of the two or more media streams; allocating available processing resources of one or more media processing units of other media devices connected within the network to split processing of a second media stream of the two or more media streams between the allocated media processing unit of the media device and the one or more media processing units of the other media devices; dividing each of the two or more media streams into independently processable segments based upon media formats of the two or more media streams; assigning priority for processing order to the independently processable segments; determining processing requirements for each independently processable segment; and scheduling the independently processable segments for delivery to the allocated media processing unit of the media device and the one or more media processing units of the other media devices based upon the assigned priority and the processing requirements for each independently processable segment. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-readable storage device storing computer-executable instructions that, when executed, cause a computing device to perform a method comprising:
-
monitoring competing requests for processing two or more media streams directed to a media device within a network; allocating a media processing unit of the media device for processing a first media stream of the two or more media streams; determining that processing resources of the allocated media processing unit of the media device are sufficient for simultaneous processing of more than one media stream but insufficient for simultaneous processing of all of the two or more media streams; allocating available processing resources of one or more media processing units of other media devices connected within the network to split processing of a second media stream of the two or more media streams between the allocated media processing unit of the media device and the one or more media processing units of the other media devices; dividing each of the two or more media streams into independently processable segments based upon media formats of the two or more media streams; assigning a priority processing order to the independently processable segments; determining processing requirements for each independently processable segment; and scheduling the independently processable segments for delivery to the allocated media processing unit of the media device and the one or more media processing units of the other media devices based upon the assigned priority processing order and the processing requirements for each independently processable segment.
-
-
8. A method in a media processing unit of a media device within a network for processing independently processable segments of a media stream, the method comprising:
-
receiving competing requests for processing two or more media streams at the media device, the media processing unit of the media device having processing resources sufficient for simultaneous processing of more than one media stream but insufficient for simultaneous processing of all of the two or more media streams; receiving, at the media processing unit of the media device from a media server within the network, a plurality of independently processable segments corresponding to all of a first media stream of the two or more media streams and a portion of a second media stream of the two or more media streams, wherein processing of the second media stream is split between the media processing unit of the media device and one or more media processing units of other media devices within the network; performing a transformative processing operation on the plurality of independently processable segments; and transmitting an output stream of processed segments to the media server for assembling a processed version of the first media stream from processed segments corresponding to the first media stream received from the media processing unit of the media device and assembling a processed version of the second media stream from processed segments corresponding to the second media stream received from the media processing unit of the media device and processed segments corresponding to the second media stream received from the one or more media processing units of the other media devices. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer-readable storage device storing computer-executable instructions that, when executed, cause a computing device in a network to perform a method comprising:
-
receiving competing requests for processing two or more media streams; receiving, at a media processing unit of the computing device from a media server within the network, a plurality of independently processable segments corresponding to all of a first media stream of the two or more media streams and a portion of a second media stream of the two or more media streams when processing resources of the media processing unit are sufficient for simultaneous processing of more than one media stream but insufficient for simultaneous processing of all of the two or more media streams, wherein processing of the second media stream is split between the media processing unit of the computing device and one or more media processing units of other media devices within the network; performing a transformative processing operation on the plurality of independently processable segments; and transmitting an output stream of processed segments to the media server, wherein the media server is configured to; assemble a processed version of the first media stream from processed segments corresponding to the first media stream received from the media processing unit of the computing device, and assemble a processed version of the second media stream from processed segments corresponding to the second media stream received from the media processing unit of the computing device and processed segments corresponding to the second media stream received from the one or more media processing units of the other media devices.
-
-
16. A system for transformatively processing two or more media streams across multiple media processing units of media devices connected within a network, the system comprising:
-
memory storing computer-executable program modules comprising; a slicing engine module that divides the two or more media streams into independently processable segments based upon media formats of the two or more media streams; a policy engine module that; monitors competing requests for processing the two or more media streams directed to a media device within the network, allocates a media processing unit of the media device for processing a first media stream of the two or more media streams, determines that processing resources of the allocated media processing unit of the media device are sufficient for simultaneous processing of more than one media stream but insufficient for simultaneous processing of all of the two or more media streams, allocates available processing resources of one or more media processing units of other media devices connected within the network to split processing of a second media stream of the two or more media streams between the allocated media processing unit of the media device and the one or more media processing units of the other media devices, and assigns a priority processing order to the independently processable segments; and a scheduling engine module that determines processing requirements for each independently processable segment and schedules the independently processable segments for delivery to the allocated media processing unit of the media device and the one or more media processing units of the other media devices based upon the assigned priority processing order and the processing requirements for each independently processable segment; and a processing unit for executing the computer-executable program modules. - View Dependent Claims (17, 18, 19, 20)
-
Specification