Patent ID: 8135856

Claim:
A method of data streaming from an encoder to a decoder through a time-varying connection, the method comprising: employing a hardware processor coupled to said encoder to perform: associating an encoding coefficient with said time-varying connection, said encoding coefficient determining a flow rate of an output of said encoder; associating multiple performance characteristics with said time-varying connection; defining multiple performance metrics having one-to-one correspondence to said multiple performance characteristics; at a current encoding coefficient, acquiring multiple sets of performance measurements of said time-varying connection over a time window, each set of performance measurements corresponding to one of said multiple performance characteristics; determining a current value of each performance metric using a corresponding set of performance measurements to produce a set of current values of performance metrics; determining a preferred encoding coefficient according to said current value of each performance metric; determining a set of acceptance intervals, each acceptance interval corresponding to a respective performance metric and having a respective lower bound and a respective upper bound; increasing said current encoding coefficient to produce said preferred encoding coefficient subject to a determination that each element in said set of current values is lower than a lower bound of a corresponding acceptance interval; and decreasing said current encoding coefficient to produce said preferred encoding coefficient subject to a determination that at least one element in said set of current values exceeds an upper bound of a corresponding acceptance interval.