Method and device for designing low-frequency non-separable transform
US-2024373011-A1 · Nov 7, 2024 · US
US11223832B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11223832-B2 |
| Application number | US-201514807687-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 23, 2015 |
| Priority date | Jul 24, 2014 |
| Publication date | Jan 11, 2022 |
| Grant date | Jan 11, 2022 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
The method includes receiving video blocks that are each associated with a table having entries specifying pixel values used in the blocks. The method further includes dividing the blocks into sub-blocks each having an array of pixels. The method also includes selecting a sub-block scanning order that specifies an order in which the plurality of sub-blocks are to be encoded and a pixel scanning order that specifies an order in which the pixels of each sub-block are to be encoded. The scanning order and the pixel scanning order are selected based at least in part upon pixel value distributions and a bit rate for encoding the block according to the scanning or pixel scanning order, respectively. The blocks are then encoded using the selected scanning order and pixel scanning order and the index values in the table.
Opening claim text (preview).
What is claimed is: 1. A method of encoding video data, comprising: receiving video data comprising one or more blocks, each block associated with a table indexing pixel values contained within the block, the table having one or more entries each specifying an index to be associated with a different pixel value; for a block of the one or more blocks: dividing the block into a plurality of sub-blocks, each sub-block comprising an array of pixels; selecting a sub-block scanning order for the sub-blocks of the block, the scanning order specifying an order in which the plurality of sub-blocks is to be encoded, based at least in part upon a distribution of pixel values within the block and based on a bit rate for encoding the block according to the scanning order; for a first sub-block of the plurality of sub-blocks, selecting a first pixel scanning order, the first pixel scanning order specifying an order in which the pixels of the first sub-block are to be encoded, based at least in part upon a distribution of pixel values within the first sub-block and based on a bit rate for encoding the first sub-block according to the first pixel scanning order; for a second sub-block of the plurality of sub-blocks, selecting a second pixel scanning order, the second pixel scanning order specifying an order in which the array of pixels of the second sub-block are to be encoded, based at least in part upon a distribution of pixel values in the array of pixels within the second sub-block and based at least in part upon a bit rate for encoding the second sub-block according to the second pixel scanning order, wherein the first pixel scanning order limits candidate scanning orders from which the second pixel scanning order is selected; and encoding the block using the selected sub-block scanning order, wherein the first sub-block is encoded using its selected first pixel scanning order, wherein the second sub-block is encoded using its selected second pixel scanning order, and wherein at least a portion of the array of pixels of the first sub-block and at least a portion of the array of pixels of the second sub-block are encoded using the index values corresponding to the entries of the table. 2. The method of claim 1 , wherein pixel values comprise color component values. 3. The method of claim 1 , wherein selecting a pixel scanning order for the first sub-block comprises: identifying a plurality of potential pixel scanning orders; evaluating a cost for each of the plurality of potential pixel scanning orders, wherein a cost for a potential pixel scanning order of the plurality of potential pixel scanning orders indicates a bitstream length that would be associated with the first sub-block if the potential pixel scanning order is used for the first sub-block; and selecting a potential pixel scanning order having a lowest cost. 4. The method of claim 3 , wherein the plurality of potential pixel scanning orders comprises at least one of: horizontal scanning order, vertical scanning order, horizontal traverse scanning order, and vertical traverse scanning order. 5. The method of claim 1 , wherein the sub-block table comprises a plurality of entries, each entry comprising a pointer to a corresponding entry of the table. 6. The method of claim 1 , wherein a pixel in the first sub-block is designated an escape pixel, indicating that the pixel of the first sub-block has a pixel value that does not correspond to a pixel value associated with the sub-block table, and wherein the pixel value associated with the escape pixel is encoded after the pixels of the first sub-block that are not designated as escape pixels are encoded. 7. The method of claim 1 , wherein the first sub-block is encoded using run-length coding, wherein a run-length value is truncated based at least in part upon a run-length upper bound corresponding to a number of pixels in the first sub-block. 8. The method of claim 1 , further comprising: associating the first sub-block with a sub-block table, the sub-block table referencing a subset of the entries corresponding to pixel values used in the pixels of the first sub-block. 9. A video encoder, comprising: a memory configured to store video data; and a processor in communication with the memory and configured to: receive video data comprising one or more blocks, each block associated with a table indexing pixel values contained within the block, the table having one or more entries each specifying an index to be associated with a different pixel value; for a block of the one or more blocks: divide the block into a plurality of sub-blocks, each sub-block comprising an array of pixels within the block; select a sub-block scanning order for the sub-blocks of the block specifying an order that the plurality of sub-blocks is to be encoded, based at least in part upon a distribution of pixel values within the block by selecting scanning order that is lowest cost if encoded using index values corresponding to entries of the table; for a first sub-block of the plurality of sub-blocks, select a first pixel scanning order specifying an order that the pixels of the first sub-block are to be encoded, based at least in part upon a distribution of pixel values within the first sub-block, by selecting scanning order that is lowest cost if encoded using index values corresponding to entries of the table; for a second sub-block of the plurality of sub-blocks, select a second pixel scanning order, the second pixel scanning order specifying an order in which the array of pixels of the second sub-block are to be encoded, based at least in part upon a distribution of pixel values in the array of pixels within the second sub-block and based at least in part upon a bit rate for encoding the second sub-block according to the second pixel scanning order, wherein the first pixel scanning order limits candidate scanning orders from which the second pixel scanning order is selected; associate the first sub-block with a sub-block table, the sub-block table referencing a subset of the entries corresponding to pixel values used in the pixels of the first sub-block; and encode the block using the selected sub-block scanning order, wherein the first sub-block is encoded using its selected first pixel scanning order, wherein the second sub-block is encoded using it selected second pixel scanning order, and wherein at least a portion of the pixels of the first sub-block and at least a portion of the array of pixels of the second sub-block are encoded using index values corresponding to the entries of the table. 10. The video encoder of claim 9 , wherein pixel values comprise color component values. 11. The video encoder of claim 9 , wherein to select a pixel scanning order for the first sub-block, the processor is configured to: identify a plurality of potential pixel scanning orders; evaluate a cost for each of the plurality of potential pixel scanning orders, wherein a cost for a potential pixel scanning order of the plurality of potential pixel scanning orders indicates a bitstream length that would be associated with the first sub-block if the potential pixel scanning order is used for the first sub-block; and select a potential pixel scanning order having a lowest cost. 12. The video encoder of claim 11 , wherein the plurality of potential pixel scanning orders comprises at least one of: horizontal scanning order, vertical scanning order, horizontal traverse scanning order, and vertical traverse scanning order. 13. The video encoder of claim 9 , wherein the sub-block table comprises a plurality of entries, each entry comprising a pointer to a corresponding entry of the tabl
the unit being a pixel · CPC title
among a plurality of spatial predictive coding modes · CPC title
Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO] · CPC title
characterised by syntax aspects related to video coding, e.g. related to compression standards · CPC title
involving spatial prediction techniques · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.