Image transform zero coefficient selection and zero-skip transmission for arbitrary shape transform coding
AssigneeFuturewei Technologies, Inc.
InventorsGregory W. Cook, Antonius Kalker
Life of this patent
Estimating the term…
Abstract
To encode an arbitrary shape, a processor is configured to generate a rectangular block of transform coefficients by applying a discrete separable unitary transform to a rectangular boundary block of a video object. The boundary block includes a masked pixel and an unmasked pixel, the transform coefficients include a number of zero-valued transform coefficients greater than or equal to a number of masked pixels, and the transform coefficients include at least one non-zero-valued transform coefficient. The processor is also configured to generate an encoded output by compressing only the non-zero-valued transform coefficients.
Claims28
An apparatus comprising:
- a memory;
- a processor coupled to the memory and configured to:
- extract a video object having an arbitrary shape from an image and then divide the video object into blocks;
- generate a rectangular block of transform coefficients comprising applying a discrete separable unitary transform to a rectangular boundary block of the video object as extracted and divided, wherein the transform coefficients comprise a number of zero-valued transform coefficients greater than or equal to a number of masked pixels, and wherein the transform coefficients comprise at least one non-zero-valued transform coefficient;
- and
- generate an encoded output comprising compressing only the non-zero-valued transform coefficients,
- wherein a number of non-zero-valued transform coefficients is equal to a number of unmasked pixels in the boundary block, and wherein a number of zero-valued transform coefficients is equal to a number of masked pixels in the boundary block,
- wherein the boundary block has a symmetric size, wherein each pixel in the boundary block is either a masked pixel or an unmasked pixel, wherein each set of pixels is a row or a column of the boundary block, wherein each set of pixels comprises sequentially pixels at a first, a second, a third, and a fourth locations, wherein, when a set comprises two masked pixels and two unmasked pixels, the processor is further configured to:
- rearrange the set and assign two values to the two masked pixels such that an even sequence is created and generate two non-zero transform coefficients based on the even sequence when the two masked pixels are at the first and the fourth locations or at the second and third locations;
- and
- assign two values to the two masked pixels such that an even sequence is created and generate two non-zero transform coefficients based on the even sequence when the two masked pixels are at the first and the second locations, or at the first and the third locations, or at the second and the fourth locations, or at the third and fourth locations.
A method comprising:
- extracting, by a processor, a video object having an arbitrary shape from an image and dividing the video object into blocks;
- generating, by the processor, a rectangular block of transform coefficients comprising applying a discrete separable unitary transform to a rectangular boundary block of the video object as extracted and divided, wherein the transform coefficients comprise a number of zero-valued transform coefficients greater than or equal to a number of masked pixels, and wherein the transform coefficients comprise at least one non-zero-valued transform coefficient;
- and
- generating an encoded output comprising compressing only the non-zero-valued transform coefficients,
- wherein a number of non-zero-valued transform coefficients is equal to a number of unmasked pixels in the boundary block, and wherein a number of zero-valued transform coefficients is equal to a number of masked pixels in the boundary block,
- wherein the boundary block has a size of 4×4, wherein each pixel in the boundary block is either a masked pixel or an unmasked pixel, wherein each set of pixels is a row or a column of the boundary block, wherein each set of pixels comprises sequentially four pixels at a first, a second, a third, and a fourth locations, wherein, when a set comprises two masked pixels and two unmasked pixels, the method further comprises:
- rearranging, by the processor, the set and assign two values to the two masked pixels such that an even sequence is created and generate two non-zero transform coefficients based on the even sequence when the two masked pixels are at the first and the fourth locations or at the second and third locations;
- and
- assigning, by the processor, two values to the two masked pixels such that an even sequence is created and generate two non-zero transform coefficients based on the even sequence when the two masked pixels are at the first and the second locations, or at the first and the third locations, or at the second and the fourth locations, or at the third and fourth locations.
An apparatus for encoding a rectangular boundary block of a video object, wherein the boundary block comprises a plurality of pixels, wherein at least one pixel is a masked pixel and at least one pixel is an unmasked pixel, the apparatus comprising:
- a processor configured, for each of a plurality of sets of pixels of the boundary block, to:
- assign a discrete cosine transform (DCT) coefficient a value of zero when the masked and unmasked pixels in a set are arranged in one of a plurality of predefined orders;
- perform a one-dimensional (1D) DCT on the set to generate a non-zero-valued DCT coefficient when the masked and unmasked pixels in a set are not arranged in one of a plurality of predefined orders;
- and
- generate an encoded output comprising compressing only the non-zero-valued DCT coefficients,
- wherein a number of non-zero-valued DCT coefficients is equal to a number of unmasked pixels in the boundary block, and wherein a number of zero-valued DCT coefficients is equal to a number of masked pixels in the boundary block,
- wherein the boundary block has a size of 4×4, wherein each pixel in the boundary block is either a masked pixel or an unmasked pixel, wherein each set of pixels in the plurality of sets is a row or a column of the boundary block, wherein each set of pixels comprises sequentially four pixels at a first, a second, a third, and a fourth locations, wherein, when a set comprises two masked pixels and two unmasked pixels, the processor is further configured to:
- rearrange the set and assign two values to the two masked pixels such that an even sequence is created and generate two non-zero DCT coefficients by performing a 1D DCT on the even sequence when the two masked pixels are at the first and the fourth locations or at the second and third locations;
- and
- assign two values to the two masked pixels such that an even sequence is created and generate two non-zero DCT coefficients by performing a 1D DCT on the even sequence when the two masked pixels are at the first and the second locations, or at the first and the third locations, or at the second and the fourth locations, or at the third and fourth locations.
Dependencies are inferred from the claim text.