IP Library Granted Patent US 9,800,903
Granted Patent B2
US 9,800,903 · App. 15/095,002 · Granted Oct 24, 2017

Systems, devices and methods for distributing data with multi-tiered encoding

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 9,800,903
App. No.
15/095,002
Granted
Oct 24, 2017
Kind
B2
Abstract

Systems, devices, methods, and computer readable media are provided for distributing data with multi-tiered encoding. For example, a system for transmission of data streams to endpoints is provided that includes: encoders, each encoder configured to encode a data stream according to at least one encoding parameter; virtual transmitters organized into groups based on at least one transmission characteristic; each group of virtual transmitters configured to receive encoded data from an associated one of the encoders; each virtual transmitter of the plurality of virtual transmitters configured to transmit the encoded data to an associated one of the plurality of endpoints; and at least one controller configured to monitor transmission characteristics of the plurality of virtual transmitters and to adjust membership of the virtual transmitters in the plurality of groups based on the monitored transmission characteristics. The system may be further configured for synchronization, uni/bi-directional communication, etc.

Claims (44)

1. A system for transmission of data streams to a plurality of endpoints, the system comprising:

a plurality of encoders, each encoder configured to encode a data stream according to at least one encoding parameter;

a plurality of virtual transmitters organized into a plurality of groups based on at least one transmission characteristic;

each group of virtual transmitters configured to receive encoded data from an associated one of the encoders;

each virtual transmitter of the plurality of virtual transmitters configured to transmit the encoded data to an associated one of the plurality of endpoints; and

at least one controller configured to monitor transmission characteristics of the plurality of virtual transmitters and to adjust membership of the virtual transmitters in the plurality of groups based on the monitored transmission characteristics.

2. The system of claim 1 , wherein at least some of the groups correspond to ranked tiers, ranked according to the at least one transmission characteristic.

3. The system of claim 2 , wherein the at least one controller is configured to adjust the membership of the virtual transmitters in the plurality of groups, the at least one controller being configured to:

upon a determination that a group membership adjustment condition has been triggered, determine a new group for a target virtual transmitter that is currently a member of a current group, the new group based on the monitored transmission characteristics;

determine whether a current frame number being processed by the current group matches a new frame number being processed by the new group;

generate and transmit a control signal to an encoder corresponding to the new group requesting provisioning of the target virtual transmitter as a member of the new group;

request a key frame from the encoder corresponding to the new group; and

upon a determination that the current frame number does not match the new frame number, generate or transmit one or more control signals to synchronize the target virtual transmitter to the encoder corresponding to the new group.

4. The system of claim 3 , wherein to synchronize the virtual transmitter when the current frame number is greater than the new frame number, the at least one controller is configured to: transmit a control signal to an encoder corresponding to the current group terminating membership of the target virtual transmitter and transmit a control signal to the virtual transmitter to discard frames provided by the encoder corresponding to the new group until frames provided by the encoder corresponding to the new group reach the current frame number.

5. The system of claim 3 , wherein to synchronize the virtual transmitter when the current frame number is less than the new frame number, the at least one controller is configured to: maintain membership of the target virtual transmitter in both the current group and the new group and store the frames provided by the encoder corresponding to the new group in a sorted queue until the frames provided by the encoder corresponding to current group match the earliest frame provided by the encoder corresponding to the new group, upon which the at least one controller is configured to transmit a control signal to the encoder corresponding to the current group terminating membership of the target virtual transmitter and to transmit a control signal to the virtual transmitter to process the frames stored in the sorted queue.

6. The system of claim 1 , wherein each encoder of the plurality of encoders is configured to encode the data stream according to a lowest transmission characteristic among the plurality of virtual transmitters that are members of the group corresponding to the encoder.

7. The system of claim 1 , wherein the at least one controller is configured to monitor load conditions, each load condition associated with an encoder of the plurality of encoders, and upon detecting load conditions greater than a predetermined load condition value, to provision a new encoder and a corresponding new group, and to adjust membership of the virtual transmitters in the plurality of groups such that the virtual transmitters are distributed substantially evenly amongst the plurality of groups.

8. The system of claim 1 , further comprising a decoder configured to decode data received from a data source, and to provide the decoded data to each of the plurality of encoders.

9. The system of claim 1 , further comprising a plurality of decoders, each associated with at least one of plurality of encoders, each of the decoders configured to decode data received from a data source, and to provide the decoded data to the associated encoders.

10. The system of claim 1 , wherein the at least one transmission characteristic comprises at least one of: a bitrate, a latency, an encoding error rate relative to individual encoding, a structural similarity metric, a picture similarity index, and a packet loss rate.

11. A computer-implemented method for transmission of data streams to a plurality of endpoints, the method comprising:

monitoring, by at least one controller, transmission characteristics of a plurality of virtual transmitters; and

adjusting membership of the virtual transmitters in a plurality of groups based on the monitored transmission characteristics;

wherein a plurality of encoders are each configured to encode a data stream according to at least one encoding parameter, and the plurality of virtual transmitters are organized into the plurality of groups based on at least one monitored transmission characteristic;

wherein each group of virtual transmitters is configured to receive encoded data from an associated one of the encoders; and each virtual transmitter of the plurality of virtual transmitters is configured to transmit the encoded data to an associated one of the plurality of endpoints.

12. The method of claim 11 , wherein at least some of the groups correspond to ranked tiers, ranked according to the at least one transmission characteristic.

13. The method of claim 12 , wherein adjusting the membership of the virtual transmitters in the plurality of groups, further includes:

upon a determination that a group membership adjustment condition has been triggered, determining a new group for a target virtual transmitter that is currently a member of a current group, the new group based on the monitored transmission characteristics;

determining whether a current frame number being processed by the current group matches a new frame number being processed by the new group;

generating and transmitting a control signal to an encoder corresponding to the new group requesting provisioning of the target virtual transmitter as a member of the new group;

requesting a key frame from the encoder corresponding to the new group; and

upon a determination that the current frame number does not match the new frame number, generating or transmitting one or more control signals to synchronize the target virtual transmitter to the encoder corresponding to the new group.

14. The method of claim 13 , wherein to synchronize the virtual transmitter when the current frame number is greater than the new frame number, the method comprises:

transmitting a control signal to an encoder corresponding to the current group terminating membership of the target virtual transmitter and transmitting a control signal to the virtual transmitter to discard frames provided by the encoder corresponding to the new group until frames provided by the encoder corresponding to the new group reach the current frame number.

15. The method of claim 13 , wherein to synchronize the virtual transmitter when the current frame number is less than the new frame number, the method comprises:

maintaining membership of the target virtual transmitter in both the current group and the new group;

storing the frames provided by the encoder corresponding to the new group in a sorted queue until the frames provided by the encoder corresponding to current group match the earliest frame provided by the encoder corresponding to the new group;

when the frames provided by the encoder corresponding to current group match the earliest frame provided by the encoder corresponding to the new group, transmitting a control signal to the encoder corresponding to the current group terminating membership of the target virtual transmitter; and

transmitting a control signal to the virtual transmitter to process the frames stored in the sorted queue.

16. The method of claim 11 , wherein each encoder of the plurality of encoders is configured to encode the data stream according to a lowest transmission characteristic among the plurality of virtual transmitters that are members of the group corresponding to the encoder.

17. The method of group 11 , further comprising: monitoring load conditions, each load condition associated with an encoder of the plurality of encoders; and upon detecting load conditions greater than a predetermined load condition value, provisioning a new encoder and a corresponding new group, and adjusting membership of the virtual transmitters in the plurality of groups such that the virtual transmitters are distributed substantially evenly amongst the plurality of groups.

18. The method of claim 11 , further comprising a decoder configured to decode data received from a data source, and to provide the decoded data to each of the plurality of encoders.

19. The method of claim 11 , further comprising a plurality of decoders, each associated with at least one of plurality of encoders, each of the decoders configured to decode data received from a data source, and to provide the decoded data to the associated encoders.

20. The method of claim 11 , wherein the at least one transmission characteristic comprises at least one of: a bitrate, a latency, an encoding error rate relative to individual encoding, a structural similarity metric, a picture similarity index, and a packet loss rate.

Assignments (12)
SECURITY INTEREST Recorded Jan 6, 2026
From: DEJERO LABS INC.
To: MULTIPLIER GROWTH PARTNERS, LP, AS ADMINISTRATIVE AGENT
Reel/Frame 074213/0282 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2025
From: RUNWAY GROWTH FINANCE CORP.
To: DEJERO LABS INC.
Reel/Frame 072980/0220 →
SECURITY INTEREST Recorded Jan 11, 2022
From: DEJERO LABS INC.
To: RUNWAY GROWTH FINANCE CORP.
Reel/Frame 058613/0966 →
RELEASE OF SECURITY INTEREST Recorded Jan 26, 2021
From: RUNWAY GROWTH CREDIT FUND INC.
To: DEJERO LABS INC.
Reel/Frame 055026/0539 →
SECURITY INTEREST Recorded Jan 4, 2021
From: DEJERO LABS INC.
To: COMERICA BANK
Reel/Frame 054802/0177 →
RELEASE OF SECURITY INTEREST Recorded Dec 24, 2020
From: CANADIAN IMPERIAL BANK OF COMMERCE
To: DEJERO LABS INC.
Reel/Frame 054846/0796 →
RELEASE OF SECURITY INTEREST Recorded Jun 14, 2019
From: DEJERO LABS INC.
To: RUNWAY GROWTH CREDIT FUND INC.
Reel/Frame 049475/0967 →
SECURITY INTEREST Recorded Jun 11, 2019
From: DEJERO LABS INC.
To: RUNWAY GROWTH CREDIT FUND INC.
Reel/Frame 049428/0137 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTERESTS Recorded Jan 9, 2018
From: WF FUND V LIMITED PARTNERSHIP, C/O/B/ AS WELLINGTON FINANCIAL LP AND WELLINGTON FINANCIAL FUND V
To: CANADIAN IMPERIAL BANK OF COMMERCE
Reel/Frame 045028/0880 →
SECURITY INTEREST Recorded Jun 13, 2017
From: DEJERO LABS INC.
To: WF FUND V LIMITED PARTNERSHIP, C/O/B AS WELLINGTON FINANCIAL LP AND WELLINGTON FINANCIAL FUND V
Reel/Frame 042687/0003 →
RELEASE OF SECURITY INTEREST Recorded Jun 13, 2017
From: SILICON VALLEY BANK
To: DEJERO LABS INC.
Reel/Frame 042776/0259 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2016
From: SZE, DAVID; SMITH, CAMERON KENNETH; SCHNEIDER, TODD; FRUSINA, BOGDAN
To: DEJERO LABS INC.
Reel/Frame 038747/0194 →