Adaptive segmentation
First Claim
1. A computer-implemented method for encoding a video including a plurality of frames capturing a scene having one or more objects positioned therein, the method comprising:
- receiving, at one or more computing devices, a first one of the plurality of frames;
identifying, in the first frame, a first location associated with a first object in the scene;
identifying, in the first frame, a plurality of regions extending out from the first location by a predetermined step size until a limit is reached, including;
identifying a first region including the first location by selecting a first plurality of blocks that are at least partly located within a first distance range relative to the first location, an outer perimeter of the first region based on the predetermined step size;
assigning a first value for a coding parameter to the first region;
identifying at least one additional region extending out from the first region wherein each additional region contains a second plurality of blocks each at least partly located within a distance range defined by outer perimeter of a previous region and the outer perimeter of the previous region incremented by the predetermined step size; and
assigning a value for the coding parameter to each additional region after the first region by incrementing the value assigned to the previous region by a predetermined gradient value;
wherein the limit comprises at least one of a maximum distance from the first location, a maximum allowed change to the value for the coding parameter from the first value, or a maximum number of regions;
encoding the first plurality of blocks using the first coding parameter value;
encoding the second plurality of blocks of each additional region using the value assigned to the region; and
storing, into a bitstream of encoded blocks, the first location, the predetermined gradient value, and the predetermined step size.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed herein are systems, methods, and apparatuses for selecting different coding parameters for different portions of a video frame or image to be transmitted or stored for later decoding. The coding parameters for a particular portion of a video frame or image are selected according to their distance from a selected point of interest, where the parameters can be selected to alter the tradeoff between transmission bandwidth and perceived image quality to preserve image quality in areas designated as high interest while saving transmission bandwidth for areas designated as having less interest. Also disclosed are associated systems, methods, and apparatuses for decoding such encoded video frames or images.
206 Citations
20 Claims
-
1. A computer-implemented method for encoding a video including a plurality of frames capturing a scene having one or more objects positioned therein, the method comprising:
-
receiving, at one or more computing devices, a first one of the plurality of frames; identifying, in the first frame, a first location associated with a first object in the scene; identifying, in the first frame, a plurality of regions extending out from the first location by a predetermined step size until a limit is reached, including; identifying a first region including the first location by selecting a first plurality of blocks that are at least partly located within a first distance range relative to the first location, an outer perimeter of the first region based on the predetermined step size; assigning a first value for a coding parameter to the first region; identifying at least one additional region extending out from the first region wherein each additional region contains a second plurality of blocks each at least partly located within a distance range defined by outer perimeter of a previous region and the outer perimeter of the previous region incremented by the predetermined step size; and assigning a value for the coding parameter to each additional region after the first region by incrementing the value assigned to the previous region by a predetermined gradient value;
wherein the limit comprises at least one of a maximum distance from the first location, a maximum allowed change to the value for the coding parameter from the first value, or a maximum number of regions;encoding the first plurality of blocks using the first coding parameter value; encoding the second plurality of blocks of each additional region using the value assigned to the region; and storing, into a bitstream of encoded blocks, the first location, the predetermined gradient value, and the predetermined step size. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-implemented method for encoding a video stream including at least one frame, comprising:
-
receiving, at one or more computing devices, a frame from the video stream; identifying, in the frame, a first location of an object of interest; identifying, in the frame, a plurality of regions spaced relative to the first location at intervals defined by a fixed step distance; identifying a first coding parameter and a fixed step size by which the first coding parameter varies between adjacent ones of the plurality of regions; identifying, for at least one of the plurality of regions, a region-specific coding parameter based on the first coding parameter and the fixed step size; encoding at least one block in the at least one region using the region-specific coding parameter; and storing, into a bitstream, the first location, the fixed step distance and the fixed step size, wherein the plurality of regions comprises a number of regions within at least one of a maximum distance from the first location that is based on the fixed step distance, a maximum allowed change in the first coding parameter that is based on the fixed step size or a predetermined maximum number of regions. - View Dependent Claims (13, 14, 15)
-
-
16. A computer-implemented method for decoding encoded video data including at least one encoded frame having a plurality of blocks, comprising:
-
receiving, at one or more computing devices, encoded video data; identifying, in the encoded video data, a frame, a first location within the frame, a first base value for a coding parameter, a fixed first step distance defining a first plurality of regions in the frame, and a fixed first step size defining a change in the value of the coding parameter; identifying, in the frame, a first encoded block in one of the first plurality of regions; identifying a region-specific value of the coding parameter for the one of the first plurality of regions based on the first base value for the coding parameter, a number of steps by which the one of the first plurality of regions is spaced from the first location, and the fixed first step size; and decoding the first encoded block using the region-specific value of the coding parameter for the one of the first plurality of regions. - View Dependent Claims (17, 18, 19, 20)
-
Specification