Patent classifications
H04N19/162
Opportunistic progressive encoding
Methods, systems, and devices are described for communicating data from multiple data terminals to an aggregator terminal over a communication link having changing link conditions. In some embodiments, source data is received at multiple data terminals, each in communication with an aggregator terminal over a communication link. For example, during a live newscast, one mobile camera may receive live video of an event from a first position while another mobile camera receives live video of the event from a second position. For various reasons (e.g., as the cameras move) each communication link may experience independently changing link conditions. Each data terminal encodes the source data (or store source data for later encoding) as a function of its respective link conditions and transmits encoded source data over its respective communication link to the aggregator terminal.
Opportunistic progressive encoding
Methods, systems, and devices are described for communicating data from multiple data terminals to an aggregator terminal over a communication link having changing link conditions. In some embodiments, source data is received at multiple data terminals, each in communication with an aggregator terminal over a communication link. For example, during a live newscast, one mobile camera may receive live video of an event from a first position while another mobile camera receives live video of the event from a second position. For various reasons (e.g., as the cameras move) each communication link may experience independently changing link conditions. Each data terminal encodes the source data (or store source data for later encoding) as a function of its respective link conditions and transmits encoded source data over its respective communication link to the aggregator terminal.
VIDEO DATA ENCODING AND DECODING
A method of encoding video data values, the method including selectively encoding, via circuitry, a high bit depth control flag and, when the high bit depth control flag is set to indicate high bit depth operation, selectively encoding an extended precision flag to indicate at least extended precision operation of a spatial frequency transform stage and encoding the video data values according to a mode of operation defined by the encoded high bit depth control flag and, when encoded, the extended precision flag.
Optimal multi-codec ABR ladder design
Techniques are disclosed for the creation of multi-codec encoding profiles (or encoding ladders), which define quality and bitrate for each of the streams made available to clients for streaming a video. In particular, optimization techniques may take into account a quality rate function of each of the codecs when determining the encoding ladder. Additional considerations may include a network bandwidth distribution and/or a distribution of client types.
Optimal multi-codec ABR ladder design
Techniques are disclosed for the creation of multi-codec encoding profiles (or encoding ladders), which define quality and bitrate for each of the streams made available to clients for streaming a video. In particular, optimization techniques may take into account a quality rate function of each of the codecs when determining the encoding ladder. Additional considerations may include a network bandwidth distribution and/or a distribution of client types.
Extensions of motion-constrained tile sets SEI message for interactivity
An extension to the motion-constrained tile sets SEI message provides functionality to signal all tiles are independently decodable and to signal the ROIs that may have more than one tile per ROI. With this extension, the functionality to redefine any independently decodable region-of-interest in a CVS at a coding tree unit level based on user interactivity is enabled. The extension supports the interactivity utilized in various applications such as interactive Ultra High Definition Television (UHDTV), dynamic high-quality zoom-in application, interactive on-demand, e-learning, smart surveillance and many other applications. Additionally, the temporal MCTS SEI message is able to be used by an encoder for tiled streaming to signal explicitly to the decoder that the decoder need only to display the ROI.
Extensions of motion-constrained tile sets SEI message for interactivity
An extension to the motion-constrained tile sets SEI message provides functionality to signal all tiles are independently decodable and to signal the ROIs that may have more than one tile per ROI. With this extension, the functionality to redefine any independently decodable region-of-interest in a CVS at a coding tree unit level based on user interactivity is enabled. The extension supports the interactivity utilized in various applications such as interactive Ultra High Definition Television (UHDTV), dynamic high-quality zoom-in application, interactive on-demand, e-learning, smart surveillance and many other applications. Additionally, the temporal MCTS SEI message is able to be used by an encoder for tiled streaming to signal explicitly to the decoder that the decoder need only to display the ROI.
Systems and methods for player input motion compensation by anticipating motion vectors and/or caching repetitive motion vectors
Systems and methods for reducing latency through motion estimation and compensation techniques are disclosed. The systems and methods include a client device that uses transmitted lookup tables from a remote server to match user input to motion vectors, and tag and sum those motion vectors. When a remote server transmits encoded video frames to the client, the client decodes those video frames and applies the summed motion vectors to the decoded frames to estimate motion in those frames. In certain embodiments, the systems and methods generate motion vectors at a server based on predetermined criteria and transmit the generated motion vectors and one or more invalidators to a client, which caches those motion vectors and invalidators. The server instructs the client to receive input from a user, and use that input to match to cached motion vectors or invalidators. Based on that comparison, the client then applies the matched motion vectors or invalidators to effect motion compensation in a graphic interface. In other embodiments, the systems and methods cache repetitive motion vectors at a server, which transmits a previously generated motion vector library to a client. The client stores the motion vector library, and monitors for user input data. The server instructs the client to calculate a motion estimate from the input data and instructs the client to update the stored motion vector library based on the input data, so that the client applies the stored motion vector library to initiate motion in a graphic interface prior to receiving actual motion vector data from the server. In this manner, latency in video data streams is reduced.
Systems and methods for player input motion compensation by anticipating motion vectors and/or caching repetitive motion vectors
Systems and methods for reducing latency through motion estimation and compensation techniques are disclosed. The systems and methods include a client device that uses transmitted lookup tables from a remote server to match user input to motion vectors, and tag and sum those motion vectors. When a remote server transmits encoded video frames to the client, the client decodes those video frames and applies the summed motion vectors to the decoded frames to estimate motion in those frames. In certain embodiments, the systems and methods generate motion vectors at a server based on predetermined criteria and transmit the generated motion vectors and one or more invalidators to a client, which caches those motion vectors and invalidators. The server instructs the client to receive input from a user, and use that input to match to cached motion vectors or invalidators. Based on that comparison, the client then applies the matched motion vectors or invalidators to effect motion compensation in a graphic interface. In other embodiments, the systems and methods cache repetitive motion vectors at a server, which transmits a previously generated motion vector library to a client. The client stores the motion vector library, and monitors for user input data. The server instructs the client to calculate a motion estimate from the input data and instructs the client to update the stored motion vector library based on the input data, so that the client applies the stored motion vector library to initiate motion in a graphic interface prior to receiving actual motion vector data from the server. In this manner, latency in video data streams is reduced.
Method and apparatus for thumbnail generation for a video device
Systems and processes are provided to generate a thumbnail image including a tuner configured for receiving and demodulating a video signal including a video packet having a packet header and a video frame, a processor configured for generating a modified packet header by modifying the packet header to set a number of reference frames to zero and to designate the video frame as unused for reference, decoding the video frame in response to the modified packet header to extract the video frame, and generating the thumbnail image in response to the video frame, a memory configured for storing the thumbnail image, and a video output configured for coupling the thumbnail image to a display in response to a user video search request.