Server side adaptive bit rate control for http streaming clients
US-2017346874-A1 · Nov 30, 2017 · US
US2016205164A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016205164-A1 |
| Application number | US-201614991091-A |
| Country | US |
| Kind code | A1 |
| Filing date | Jan 8, 2016 |
| Priority date | Jan 8, 2015 |
| Publication date | Jul 14, 2016 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Methods and systems are described for adaptively transmitting streaming data to a client. In one embodiment, the method comprises receiving, in a server, a request for a data asset from the client, transcoding at least a segment of the data asset according to initial transcoding parameters, transmitting a first fragment of the transcoded segment of the data asset from the server to the client over a communication channel, generating an estimate of a bandwidth of the communications channel at least in part from information acknowledging reception of at least the first fragment of the transcoded segment of the data asset by the client, generating adaptive transcoding parameters at least in part from an estimate of a bandwidth of the communications channel, the estimate generated at the server, transcoding a further segment of the data asset according to the adaptive transcoding parameters, and transmitting the further segment of the data asset.
Opening claim text (preview).
What is claimed is: 1 . A method of adaptively transmitting streaming data to a client, comprising: receiving, in a server, a request for a data asset from the client; transcoding a portion of the data asset according to initial transcoding parameters; transmitting the transcoded a portion of the data asset from the server to the client over a communication channel; generating an estimate of a bandwidth of the communications channel at least in part from information acknowledging reception of the transcoded a portion of the data asset by the client; wherein the bandwidth estimate is generated at least in part according to a round trip time (RTT) of the transmitted transcoded a portion of the data asset and a size of the transmitted transcoded least a portion of the data asset; generating adaptive transcoding parameters at least in part from the estimate of the bandwidth of the communications channel, the estimate generated at the server; transcoding a temporally subsequent further portion of the data asset according to the adaptive transcoding parameters; and transmitting the further portion of the data asset from the server to the client. 2 . The method of claim 1 , wherein the RTT is the elapsed time between commencement of the transmission of the transcoded a portion of the data asset and receipt of the acknowledgement of the reception of the transcoded a portion of the data asset. 3 . The method of claim 2 , wherein: the bandwidth estimate is computed at a timer event temporally separated from a previous timer event by a timer interval T AF , and the elapsed time between commencement of the transmission of the transcoded a portion of the data asset and receipt of the acknowledgement of the reception of the transcoded a portion of the data asset is computed as: T AF −T lastACKrecv ; wherein T lastACKrecv is the time between a clock time of the most recent acknowledgement of the reception of the transcoded a portion of the data asset and a clock time of the most recent timer event. 4 . The method of claim 3 , wherein: the amount of transmitted transcoded a portion of the data asset is determined according to prevDataRemaining+socketDataSent−DataRemaining, wherein: socketDataSent is an amount of the data asset delivered to a transmission control protocol (TCP) send socket buffer of the server at the timer event; DataRemaining is an amount of unsent data asset remaining in the TCP send socket at an timer interval immediately after the timer event; prevDataRemaining is an amount of the data asset remaining in the TCP send socket buffer after a previous timer interval. 5 . The method of claim 4 , wherein: the elapsed time between commencement of the transmission of the transcoded a portion of the data asset and receipt of the acknowledgement of the reception of the transcoded a portion of the data asset is: currentTime−lastSendTime− T lastACKrecv if DataRemaining is zero; currentTime−lastSendTime if DataRemaining is nonzero; and wherein currentTime is a clock time at which the most recent expiration of the timer interval and lastSendTime is the clock time at which the transcoded a portion of the data asset was delivered to the TCP send socket buffer. 6 . The method of claim 5 , further comprising clamping the generated estimated bandwidth of the communications channel to a clamping value. 7 . The method of claim 6 , further comprising filtering the estimated bandwidth of the communication channel. 8 . The method of claim 7 , further comprising scaling the estimated bandwidth of the communication channel. 9 . The method of claim 8 , wherein generating adaptive coding parameters at least in part from the estimate of the bandwidth of the communications channel comprises: generating a transcoder bit rate command according to the estimate of the bandwidth; low pass filtering the transcoder bit rate command, wherein the transcoder output bit rate command is asymmetrically filtered to permit more rapid decreases in the transcoder bit rate command than increases in the transcoder bit rate command; and quantizing the low pass filtered transcoder output bit rate command. 10 . The method of claim 9 , wherein increases in the output bit rate command are deferred until each of N successive output bit rate commands is greater than the previous output bit rate command. 11 . The method of claim 1 , wherein: the bandwidth estimate is computed at a timer event temporally separated from a previous timer event by a timer interval T AF , and transmitting the transcoded portion of the data asset from the server to the client over a communication channel comprises: sending a first fragment of the transcoded segment from a transcoder output buffer to a TCP send socket buffer at a timer event; transmitting at least a portion of the first fragment of the transcoded segments from the TCP send socket buffer to the client over the communications channel; generating an estimate of the bandwidth of the communications channel at least in part from information acknowledging reception of the transcoded segment of the data asset by the client comprises: computing the estimate of the bandwidth at the timer interval T AF according to BW = ( prevDataRemaining + socketDataSent ) N empty T TB if dataRemaining = 0 and BW = ( prevDataRemaining + socketDataSent - dataRemaining ) T AF if dataRemaining ≠ 0
involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements {(video transcoding H04N19/40; media packet handling at the source H04L65/762)} · CPC title
Systems modifying transmission characteristics according to link quality, e.g. power backoff (adaptive data allocation for multicarrier modulation H04L5/0044; controlling transmission power for radio systems H04W52/04) · CPC title
Monitoring of the downstream path of the transmission network, e.g. bandwidth available (traffic monitoring in data switching networks H04L43/00; monitoring data switching networks utilization H04L43/0876) · CPC title
by decomposing the content in the time domain, e.g. in time segments · CPC title
Round trip delays · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.