Use of frame caching to improve packet loss recovery
First Claim
Patent Images
1. A method of transmitting a video signal over a network, the method comprising:
- by a computing system that implements a video encoder having an encoder-side frame cache comprising a first portion and a second portion, the second portion being different than the first portion;
encoding at least a portion of the video signal into one or more frames, one or more of the frames including a frame header being marked to indicate that the marked frames are cached frames that can be used to decode another one of the frames and is to be cached in a decoder-side frame cache after being decoded by a video decoder;
storing the cached frames at the encoder in the first portion of the encoder-side frame cache, the first portion of the encoder-side frame cache corresponding to a first portion of the decoder-side frame cache at the video decoder, and wherein the first reference frame stored in the first portion of the encoder-side frame cache includes a frame header that indicates the first reference frame is to be cached in the first portion of a decoder-side frame cache after being decoded;
transmitting the frames;
receiving a loss detection signal sent in response to detecting loss of encoded video data for at least one frame transmitted by the video encoder; and
responsive to receiving the loss detection signal, encoding one or more new frames relative to the cached frames, the new frames being decodable by a video decoder using the encoded video data for the new frames and one or more decoder-side cached frames corresponding to the cached frames stored at the encoder, the new frames including different video data than the at least one frame for which loss of encoded video data is detected.
3 Assignments
0 Petitions
Accused Products
Abstract
Various new and non-obvious apparatus and methods for using frame caching to improve packet loss recovery are disclosed. One of the disclosed embodiments is a method for using periodical and synchronized frame caching within an encoder and its corresponding decoder. When the decoder discovers packet loss, it informs the encoder which then generates a frame based on one of the shared frames stored at both the encoder and the decoder. When the decoder receives this generated frame it can decode it using its locally cached frame.
-
Citations
20 Claims
-
1. A method of transmitting a video signal over a network, the method comprising:
-
by a computing system that implements a video encoder having an encoder-side frame cache comprising a first portion and a second portion, the second portion being different than the first portion; encoding at least a portion of the video signal into one or more frames, one or more of the frames including a frame header being marked to indicate that the marked frames are cached frames that can be used to decode another one of the frames and is to be cached in a decoder-side frame cache after being decoded by a video decoder; storing the cached frames at the encoder in the first portion of the encoder-side frame cache, the first portion of the encoder-side frame cache corresponding to a first portion of the decoder-side frame cache at the video decoder, and wherein the first reference frame stored in the first portion of the encoder-side frame cache includes a frame header that indicates the first reference frame is to be cached in the first portion of a decoder-side frame cache after being decoded; transmitting the frames; receiving a loss detection signal sent in response to detecting loss of encoded video data for at least one frame transmitted by the video encoder; and responsive to receiving the loss detection signal, encoding one or more new frames relative to the cached frames, the new frames being decodable by a video decoder using the encoded video data for the new frames and one or more decoder-side cached frames corresponding to the cached frames stored at the encoder, the new frames including different video data than the at least one frame for which loss of encoded video data is detected. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-readable storage device or memory storing computer-executable instructions for causing a computer system to perform a method of encoding video, the computer-executable instructions comprising:
-
instructions for encoding at least a portion of a video signal into one or more frames, one or more of the frames being cached frames, at least one of the cached frames including a header indicating that the at least one of the cached frames can be used to decode another one of the frames and is to be cached in a decoder-side frame cache after being decoded by a video decoder; instructions for storing the cached frames at the encoder in an encoder-side frame cache, the encoder-side frame cache comprising a first portion and a second portion, the second portion being different than the first portion, the first portion of the encoder-side frame cache corresponding to a first portion of the decoder-side frame cache at the video decoder; instructions for transmitting the frames; instructions for receiving a loss detection signal sent in response to detecting loss of encoded video data for at least one frame transmitted by the video encoder; and instructions for, responsive to receiving the loss detection signal, encoding one or more new frames relative to the cached frames, the new frames being decodable by a video decoder using the encoded video data for the new frames and one or more decoder-side cached frames corresponding to the cached frames stored at the first portion of the encoder, the new frames including different video data than the at least one frame for which loss of encoded video data is detected. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer system that implements a video encoder, the computer system comprising a processor and memory, wherein the video encoder includes:
-
an encoder configured to receive a sequence of video frames and produce compressed video information as output; a first portion of a encoder-side frame cache for storing a first reference frame, wherein the first portion of the encoder-side frame cache corresponds to a first portion of a decoder-side frame cache at a video decoder, and wherein the first reference frame stored in the first portion of the encoder-side frame cache includes a frame header that indicates the first reference frame is to be cached in the first portion of a decoder-side frame cache after being decoded; a second portion of the encoder-side frame cache for storing a second reference frame, wherein the second portion of the encoder-side frame cache is different than the first portion of the encoder-side frame cache, a receiver configured to receive a loss detection signal received from a decoder using a network feedback loop; and wherein the encoder is configured to, responsive to receiving the loss detection signal at the receiver, encode a new frame using the first reference frame stored in the first portion of the encoder-side frame cache, the new frame including different data than the encoded data for which loss is detected. - View Dependent Claims (19, 20)
-
Specification