IP Library Granted Patent US 12,250,423
Granted Patent B2
US 12,250,423 · App. 17/454,266 · Granted Mar 11, 2025

Systems and methods for achieving optimal network bitrate

Inventor: Jayaprakash Narayanan Ramaraj (Bengaluru, IN)
Assignee: DISH Network Technologies India Private Limited
H04N21/2662H04L5/0055H04L65/1069H04L65/70H04L65/762H04L69/16H04N21/236H04N21/6379
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,250,423
App. No.
17/454,266
Granted
Mar 11, 2025
Kind
B2
Abstract

A method of encoding packets of a media stream includes establishing a data connection between a client device and a server, sending a first packet of the media stream from the server to the client device at a first bit rate, receiving, at the server, a first acknowledgment signal from the client device responsive to receipt of the first packet, determining a second bit rate based on the first acknowledgment signal, and sending a second packet of the media stream from the server to the client at the second bit rate.

Claims (64)

1. A method of encoding a media stream comprising a plurality of packet data, the method comprising:

establishing a data connection between a server and a media player, wherein the server has a transmit buffer configured to temporarily store at least some of the plurality of packet data and wherein the data connection comprises a TCP/IP connection;

selecting a transmit buffer-based determination of a bitrate based on a criteria associated with a content of the transmit buffer, wherein the transmit buffer-based determination comprises:

increasing the transmit buffer-based bitrate based on a depletion of the at least some packet data in the transmit buffer;

decreasing the transmit buffer-based bitrate based on a filling of the at least some packet data in the transmit buffer;

encoding, in real-time, the media stream at the selected transmit buffer-based bitrate; and

transmitting the transmit buffer-based encoded media stream to the media player; and

selecting an acknowledgement (ACK)-based determination of the bitrate, wherein the ACK-based determination of the bitrate is a non-buffer based determination of the bitrate, comprising:

determining, by the server, the ACK-based bitrate based on a known number of bytes received by the media player based on an ACK sequence number from an ACK signal received from the media player, wherein the ACK signal is a TCP/IP ACK response;

encoding, in real-time, the media stream at the determined ACK-based bitrate; and

transmitting the ACK-based encoded media stream to the media player.

2. The method of claim 1 , further comprising:

alternatingly selecting between the transmit buffer-based determination of the bitrate and the ACK-based determination of the bitrate for transmitting the packet data.

3. The method of claim 1 , wherein the ACK-based determination of the bitrate further comprises:

transmitting a first packet of the plurality of packet data from the server to the media player at a first bitrate, and receiving, at the server, the ACK signal from the media player responsive to receipt of the first packet; and

adjusting a second bitrate, for sending a second packet of the plurality of packet data from the server to the media player, based on the ACK signal by estimating at the server, a time required to receive the ACK signal from the media player, and calculating the number of bytes received by the media player based on the ACK sequence number.

4. The method of claim 3 , further comprising:

transmitting, by the server, initially the media stream encoded at a default bitrate;

selecting and transmitting, by the server, subsequently the transmit buffer-based encoded media stream for a length of time; and

selecting and transmitting, by the server, the ACK-based encoded media stream thereafter.

5. The method of claim 4 , further comprising:

wherein the default bitrate comprises a bitrate of transmission which has been used in at least a previous communication.

6. The method of claim 4 , further comprising:

selecting the transmit buffer-based determination of the bitrate as a fallback to the ACK-based determination of the bitrate in response to the ACK-based determination of the bitrate being deemed to not meet an acceptable criteria for use in transmitting the packet data.

7. The method of claim 1 , wherein the server comprises an encoder system to perform the encoding.

8. The method of claim 7 , wherein the encoder system comprises a placeshifting encoder system.

9. A media encoder system comprising:

a processor;

a memory component;

computer-readable software instructions stored within the memory component and configured to cause the processor to:

establish a data connection between at least a media player and the media encoder system, wherein the media encoder system has a transmit buffer configured to temporarily store at least some of a media stream comprising plurality of packet data and wherein the data connection comprises a TCP/IP connection;

select a transmit buffer-based determination of a bitrate based on a criteria associated with a content of the transmit buffer, wherein the transmit buffer-based determination comprises:

increasing the transmit buffer-based bitrate based on a depletion of the packet data of the at least some of the media stream in the transmit buffer;

decreasing the transmit buffer-based bitrate based on a filling of the packet data of the at least some of the media stream in the transmit buffer;

encoding, in real-time, the media stream at the selected transmit buffer-based bitrate; and

transmitting the transmit buffer-based encoded media stream to the media player; and

select an acknowledgement (ACK)-based determination of the bitrate, wherein the ACK-based determination of the bitrate is a non-buffer based determination of the bitrate, comprising:

determining, by the processor, the ACK-based bitrate based on a known number of bytes received by the media player based on an ACK sequence number from an ACK signal received from the media player, wherein the ACK signal is a TCP/IP ACK response;

encoding, in real-time, the media stream at the determined ACK-based bitrate; and

transmitting the ACK-based encoded media stream to the media player.

10. The media encoder system of claim 9 , further comprising:

wherein the processor is instructed to alternatingly select between the transmit buffer-based determination of the bitrate and the ACK-based determination of the bitrate for transmitting the packet data.

11. The media encoder system of claim 9 , wherein the ACK-based determination of the bitrate further comprises:

transmitting a first packet of the plurality of packet data from the media encoder system to the media player at a first bit rate, and receiving, at the media encoder system, the ACK signal from the media player responsive to receipt of the first packet; and

adjusting a second bit rate, for sending a second packet of the plurality of packet data from the media encoder system to the media player, based on the ACK signal by estimation of a time required to receive the ACK signal from the media player and calculating the number of bytes received by the media player based on the ACK sequence number.

12. The media encoder system of claim 11 , further comprising:

wherein the processor is instructed to:

transmit initially the media stream encoded at a default bitrate;

select and transmit subsequently the transmit buffer-based encoded media stream for a length of time; and

select and transmit thereafter the ACK-based encoded media stream.

13. The media encoder system of claim 12 , further comprising:

wherein the processor is instructed to:

select the transmit buffer-based determination of the bitrate as an alternative to the ACK-based determination of the bitrate when the ACK-based determination of the bitrate is deemed unacceptable for use in transmitting the packet data.

14. The media encoder system of claim 12 , further comprising:

wherein the default bitrate comprises a bitrate of transmission which has been used in at least a previous communication.

15. A media system comprising:

a media player; and

a media encoder system communicatively coupled to the media player via a data connection established over a network, wherein the data connection comprises a TCP/IP connection and wherein the media encoder system has a transmit buffer configured to temporarily store at least some of a media stream comprising plurality of packet data and is configured to encode, in real-time, the media stream at an adjustable bitrate, wherein the adjustable bitrate is determined, at different times, according to:

a transmit buffer-based determination of the adjustable bitrate based on a criteria associated with a content of the transmit buffer, wherein the transmit buffer-based determination comprises:

increasing the transmit buffer-based adjustable bitrate based on a depleted level of packet data contained in the transmit buffer; and

decreasing the transmit buffer-based adjustable bitrate based on a filled level of packet data contained in the transmit buffer; and

an acknowledgement (ACK)-based determination of the adjustable bitrate, wherein the ACK-based determination of the adjustable bitrate is a non-buffer based determination of the bitrate and comprises determining, by the media encoder system, the ACK-based bitrate based on a known number of bytes received by the media player based on an ACK sequence number from an ACK signal received from the media player, wherein the ACK signal is a TCP/IP ACK response.

16. The media system of claim 15 , wherein the media encoder alternatingly selects between the transmit buffer-based determination of the adjustable bitrate and the ACK-based determination of the adjustable bitrate.

17. The media system of claim 16 , wherein the media encoder transmits the media stream to the media player initially at a default bitrate, then subsequently transmits the media stream for a length of time using the transmit buffer-based determination of the adjustable bitrate, and thereafter transmits the media stream using the ACK-based determination of the adjustable bitrate.

Assignments (2)
CHANGE OF NAME Recorded Sep 1, 2022
From: SLING MEDIA PVT. LTD.
To: DISH NETWORK TECHNOLOGIES INDIA PRIVATE LIMITED
Reel/Frame 061365/0493 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2021
From: RAMARAJ, JAYAPRAKASH NARAYANAN
To: SLING MEDIA PVT LTD.
Reel/Frame 058068/0387 →
Priority Claims (1)
IN 201741012018 · Apr 3, 2017 · national
Continuity (3)
Continuation 16854194 · Apr 21, 2020
Continuation 15613779 · Jun 5, 2017
Related Publication 20220070519A1 · Mar 3, 2022
References Cited (13)
US 20010032269A1 · Wilson · 2001 [cited by applicant]
US 20090103607A1 · Bajpai et al. · 2009 [cited by applicant]
US 20090254657A1 · Melnyk et al. · 2009 [cited by applicant]
US 20110122880A1 · Saito et al. · 2011 [cited by applicant]
US 20110283014A1 · Malik et al. · 2011 [cited by applicant]
US 20140286438A1 · Apte · 2014 [cited by applicant]
US 20140297813A1 · Gomes et al. · 2014 [cited by applicant]
US 20160205164A1 · Schmidt · 2016 [cited by examiner]
US 20160366202A1 · Phillips · 2016 [cited by examiner]
US 20170264820A1 · Shibayama · 2017 [cited by examiner]
US 20180167436A1 · Han et al. · 2018 [cited by applicant]
US 20180176615A1 · Hannu et al. · 2018 [cited by applicant]
ISA-EPO, International Search Report issued in International Patent Application PCT/IN2018/050188, dated Jul. 12, 2018. [cited by applicant]