System and method for delivery of dynamically scalable audio/video content over a network
First Claim
1. A system for streaming automatically and dynamically scalable media content over a network, comprising:
- analyzing a scalably encoded media file comprising at least one layered bitstream;
determining a rate-distortion decrease attributable to each of at least one data units comprising each bitstream;
computing a rate-distortion-based score for each data unit for a current network transmission timeslot;
dynamically organizing at least one highest score data unit into a least one network packet in order of decreasing score, from highest to lowest; and
transmitting the at least one network packet from a server to at least one client based on available network bandwidth.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and process for streaming delivery of dynamically scalable media content over a network, such as, for example, the Internet or a wireless network, while automatically accounting for both fluctuating network bandwidth and packet loss. A system of rate-distortion based packet selection and organization is used to maximize the quality of streamed media files that have been encoded using any conventional scalable encoder. Media file quality is maximized for available bandwidth by scoring packets comprising encoded media files based on their contribution to the quality of a reconstructed media file, then preferentially transmitting those packets having the highest scores. In addition, where packets are lost during transmission, those packets that will provide the maximum rate-distortion decrease, are preferentially retransmitted prior to other lost packets which, if transmitted in the same time slot, would provide a lesser rate-distortion decrease.
-
Citations
27 Claims
-
1. A system for streaming automatically and dynamically scalable media content over a network, comprising:
- analyzing a scalably encoded media file comprising at least one layered bitstream;
determining a rate-distortion decrease attributable to each of at least one data units comprising each bitstream;
computing a rate-distortion-based score for each data unit for a current network transmission timeslot;
dynamically organizing at least one highest score data unit into a least one network packet in order of decreasing score, from highest to lowest; and
transmitting the at least one network packet from a server to at least one client based on available network bandwidth. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
- analyzing a scalably encoded media file comprising at least one layered bitstream;
-
13. A computer-implemented process for providing network aware rate-distortion optimization for streaming media files over a network, comprising:
-
encoding at least one media file using a scalable encoder, wherein each encoded media file further comprises at least one layered bitstream, each bitstream comprised of at least one data unit;
scoring the data units comprising each layered bitstream with respect to a calculated rate-distortion decrease for each data unit;
dynamically arranging data units within network packets in order of highest score to lowest score;
transmitting at least one of the network packets from at least one server to at least one client, beginning with a network packet having the highest score data units; and
continuing to transmit all available network packets in decreasing order of contained highest score data units until a measured network bandwidth has been fully utilized. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer-readable medium having computer executable instructions for automatically and dynamically streaming scalable media content over a network, said computer executable instructions comprising:
-
scalably encoding a media file;
determining a rate-distortion for data units comprising the scalably encoded media file;
computing a score for each data unit based on adistortion decrease for each data unit and a size of each data unit, and wherein the score is recomputed for each timeslot of a network transmission;
arranging at least one of the data units into at least one network packet, wherein data units are placed into packets based on the score for each data unit, with higher scoring data units being given priority over lower scoring data units for each timeslot of the network transmission;
determining available network bandwidth for each timeslot of a network transmission between a server and at least one client; and
transmitting all available packets from at least one server to at least one client beginning with a packet including the highest score data units, and continuing with packets having progressively lower data units until the available network bandwidth has been fully utilized for each timeslot of a network transmission. - View Dependent Claims (22, 23, 24, 25, 26, 27)
-
Specification