Layered video encoding and decoding
First Claim
1. A system comprising:
- one or more computing nodes, each comprising at least one processor and memory, wherein the memory includes computer storage media storing computer readable instructions that when executed by the at least one processor perform operations comprising;
generating a first encoding of a first frame of a video stream according to a first layer encoding, wherein the first frame references a second frame previous to the first frame in the video stream and the second frame is encoded according to the first layer encoding;
determining that an amount of change between one or more regions of a third frame of a video stream corresponding with one or more regions of a fourth frame previous to the third frame in the video stream is greater than a threshold amount of change;
determining, based at least partly on the amount of change, that the one or more regions of the third frame are suitable for a second layer encoding;
generating a second encoding of the third frame according to the second layer encoding, wherein the third frame references the fourth frame and the fourth frame is encoded according to the second layer encoding;
detecting, after generating the first encoding and the second encoding, changes to network conditions during transmission of additional frames of the video stream;
generating, based at least partly on the changes to the network conditions, a first additional encoding for a first additional frame encoded according to the first layer encoding and referencing a second additional frame previous to the first additional frame in the video stream with the second additional frame being encoded according to the first layer encoding; and
generating, based at least partly on the changes to the network conditions, a second additional encoding for a third additional frame encoded according to the second layer encoding and referencing the second additional frame, wherein the third additional frame is subsequent to the first additional frame and the second additional frame in the video stream.
2 Assignments
0 Petitions
Accused Products
Abstract
In some examples, a layered encoding component and a layered decoding component provide for different ways to encode and decode, respectively, video streams transmitted between devices. For instance, in encoding a video stream, a layered encoding component may analyze the content of successive video frames and determine different types of encoding techniques to use for different ones of the video frames. Further, in some cases, some of the encoding techniques may be used on less than an entire video frame. In another example, in decoding a video stream, a layered decoding component may receive video frames encoded with different types of encoding. The layered decoding component may decode the differently encoded video frames and combine them to reconstruct a video stream.
24 Citations
20 Claims
-
1. A system comprising:
-
one or more computing nodes, each comprising at least one processor and memory, wherein the memory includes computer storage media storing computer readable instructions that when executed by the at least one processor perform operations comprising; generating a first encoding of a first frame of a video stream according to a first layer encoding, wherein the first frame references a second frame previous to the first frame in the video stream and the second frame is encoded according to the first layer encoding; determining that an amount of change between one or more regions of a third frame of a video stream corresponding with one or more regions of a fourth frame previous to the third frame in the video stream is greater than a threshold amount of change; determining, based at least partly on the amount of change, that the one or more regions of the third frame are suitable for a second layer encoding; generating a second encoding of the third frame according to the second layer encoding, wherein the third frame references the fourth frame and the fourth frame is encoded according to the second layer encoding; detecting, after generating the first encoding and the second encoding, changes to network conditions during transmission of additional frames of the video stream; generating, based at least partly on the changes to the network conditions, a first additional encoding for a first additional frame encoded according to the first layer encoding and referencing a second additional frame previous to the first additional frame in the video stream with the second additional frame being encoded according to the first layer encoding; and generating, based at least partly on the changes to the network conditions, a second additional encoding for a third additional frame encoded according to the second layer encoding and referencing the second additional frame, wherein the third additional frame is subsequent to the first additional frame and the second additional frame in the video stream. - View Dependent Claims (2, 3, 4)
-
-
5. A method comprising:
-
under control of one or more computing devices configured with executable instructions; generating a first encoding of a first frame of a video stream according to a first layer encoding, wherein the first frame references a second frame previous to the first frame in the video stream and encoded according to the first layer encoding; determining that one or more regions of a third frame are suitable for a second layer encoding; generating a second encoding of the one or more regions of the third frame according to the second layer encoding, wherein the third frame references a fourth frame previous to the third frame in the video stream and encoded according to the second layer encoding; detecting changes to conditions of a network during transmission of additional frames of the video stream; generating, based at least partly on the changes to the network conditions, a first additional encoding of a first additional frame encoded according to the first layer encoding, wherein the first additional frame references a second additional frame previous to the first additional frame in the video stream and encoded according to the first layer encoding; and generating, based at least partly on the changes to the network conditions, a second additional encoding of a third additional frame encoded according to the second layer encoding, wherein the third additional frame references the second additional frame. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method comprising:
performing, by one or more computing devices; receiving a first frame of a video stream, wherein the first frame is encoded with a first encoding technique; decoding the first frame to generate a reconstructed first frame based at least partly on a second frame previous to the first frame in the video stream, wherein the second frame is encoded with the first encoding technique; receiving a third frame of the video stream; determining that a portion of regions of the third frame are encoded with a second encoding technique different from the first encoding technique; decoding the portion of the regions of the third frame to generate a reconstructed third frame based at least partly on a fourth frame previous to the third frame in the video stream, wherein the fourth frame is encoded with the second encoding technique; detecting changes to network conditions during transmission of additional frames of the video stream; decoding, based at least partly on the changes to the network conditions, a first additional frame encoded according to the first layer encoding based at least partly on a second additional frame previous to the first additional frame, wherein the second additional frame is encoded according to the first layer encoding; and decoding, based at least partly on the changes to the network conditions, a third additional frame encoded according to the second layer encoding based at least partly on the second additional frame, wherein the second additional frame is previous to the third additional frame in the video stream. - View Dependent Claims (18, 19, 20)
Specification