Network-based dynamic encoding
First Claim
1. A system for encoding data comprising:
- a capturing unit having a first control input and configured to capture data at an adjustable sampling rate in response to a first control signal received at the first control input;
an encoding unit having a data input, a data output and a second control input, for dynamically encoding data for transmission, the input of the encoding unit coupled to receive the captured data, and the output of the encoding unit providing encoded data, the encoding unit adjusting encoding parameters in response to a second control signal received at the second control input;
a command process module coupled to the second control input and coupled to receive back channel information, the command process module configured to calculate at least one encoding parameter for encoding the data input at the encoding unit, and to provide the second control signal for adjusting encoding parameters based on the back channel information comprising at least one of network capacity information, encoding error information, and encoding customization requests received from a client device;
a network capacity information manager coupled to the first control input and coupled to receive the network capacity information, the network capacity information manager configured to asynchronously calculate the sampling rate for capturing the data at the capture unit, and to provide the first control signal for adjusting the sampling rate at the capture unit based on the network capacity information; and
an encoding error recovery manager configured to identify encoding errors based on the back channel information, the encoding error recovery manager coupled to the control input of the encoding unit for instructing the encoding unit to dynamically adjust an encoding parameter responsive to identifying the encoding errors.
8 Assignments
0 Petitions
Accused Products
Abstract
A network-based video encoding and decoding system encodes and decodes remotely displayed user application data on a centralized desktop computer. Remotely displayed user application data are screen captures of a browsing application run by the centralized desktop computer on user'"'"'s behalf. The encoding system optimizes its encoding performance using back channel information which includes real time network capacity information and decoder feedback. The encoding system consults a back channel information manager to dynamically adjust encoding parameters. Based on the real time network capacity information received, the encoding system adjusts its capturing sampling rate. Based on encoding errors identified by the decoding system, the encoding system selectively re-send previously encoded frames/blocks, or send intra frames on demand to allow the decoding system to correct encoding errors. In response to encoding customization requests from the decoding system, the encoding system adjusts its encoding parameters to meet such requests.
94 Citations
25 Claims
-
1. A system for encoding data comprising:
-
a capturing unit having a first control input and configured to capture data at an adjustable sampling rate in response to a first control signal received at the first control input; an encoding unit having a data input, a data output and a second control input, for dynamically encoding data for transmission, the input of the encoding unit coupled to receive the captured data, and the output of the encoding unit providing encoded data, the encoding unit adjusting encoding parameters in response to a second control signal received at the second control input; a command process module coupled to the second control input and coupled to receive back channel information, the command process module configured to calculate at least one encoding parameter for encoding the data input at the encoding unit, and to provide the second control signal for adjusting encoding parameters based on the back channel information comprising at least one of network capacity information, encoding error information, and encoding customization requests received from a client device; a network capacity information manager coupled to the first control input and coupled to receive the network capacity information, the network capacity information manager configured to asynchronously calculate the sampling rate for capturing the data at the capture unit, and to provide the first control signal for adjusting the sampling rate at the capture unit based on the network capacity information; and an encoding error recovery manager configured to identify encoding errors based on the back channel information, the encoding error recovery manager coupled to the control input of the encoding unit for instructing the encoding unit to dynamically adjust an encoding parameter responsive to identifying the encoding errors. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, 25)
-
-
13. A method for encoding data comprising:
-
capturing data based on an adjustable sampling rate for encoding; encoding the captured data based on dynamically adjustable encoding parameters for transmission; receiving back channel information comprising network capacity information, encoding error information, and encoding customization requests received from a client device; dynamically setting the adjustable encoding parameters for encoding the captured data based on the back channel information, the encoding parameters updated based on changes in the back channel information; modifying the sampling rate of data capture for encoding asynchronously from the encoding parameters based on the received back channel information; identify encoding errors in the encoded data based on the back channel information; adjusting the encoding parameters responsive to the encoding error information; and encoding data captured at the modified sampling rate using the adjusted encoding parameters for transmission. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A system for decoding a data stream, the system comprising:
-
a decoding unit, of a client device, having an input, a first output and second output, for decoding a data stream, identifying encoding errors and collecting back channel information comprising network capacity information and encoding customization requests of the client device, the input of the decoding unit coupled to receive an encoded data stream, the first output of the decoding unit providing a decoded data output, and the second output of the decoding unit providing the identified encoding errors and the back channel information; and a command process module coupled to the decoding unit for receiving the identified encoding errors and the back channel information, the command process module configured to transmit the identified encoding errors and the back channel information for; calculating dynamically adjustable encoding parameters for encoding the data stream received at the client device based on the identified encoding errors and the back channel information; and calculating a sampling rate for capturing data encoded for the data stream received at the client device based on the back channel information, the sampling rate adjusted asynchronously from the encoding parameters based on the network capacity information. - View Dependent Claims (21, 22, 23)
-
Specification