Lossy Data Compression
US-2017177227-A1 · Jun 22, 2017 · US
US10757415B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10757415-B2 |
| Application number | US-201916457960-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 29, 2019 |
| Priority date | Jun 29, 2018 |
| Publication date | Aug 25, 2020 |
| Grant date | Aug 25, 2020 |
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.
A method of converting 10-bit pixel data (e.g. 10:10:10:2 data) into 8-bit pixel data involves converting the 10-bit values to 7-bits or 8-bits and generating error values for each of the converted values. Two of the 8-bit output channels comprise a combination of a converted 7-bit value and one of the bits from the fourth input channel. A third 8-bit output channel comprises the converted 8-bit value and the fourth 8-bit output channel comprises the error values. In various examples, the bits of the error values may be interleaved when they are packed into the fourth output channel.
Opening claim text (preview).
What is claimed is: 1. A method of converting 10:10:10:2 format pixel data into 8888 format data, the method comprising, for each pixel: truncating the three 10-bit input data channels such that a first truncated channel and a third truncated channel each comprises 7 bits and a second truncated channel comprises 8 bits; appending a different bit from the 2-bit input data channel to each of the truncated first and third channels; generating an error value for each of the 10-bit input data channels by comparing, for each of the first and third channels, three LSBs of the input data channel and three bits derived from the truncated channel, and for the second channel, two LSBs of the input data channel and two bits derived from the truncated channel; outputting a first 8-bit channel comprising the truncated first channel with the appended bit from the 2-bit input data channel, a second 8-bit channel comprising the truncated second channel, a third 8-bit channel comprising the truncated third channel with the appended bit from the 2-bit input data channel and a fourth 8-bit channel comprising the three error values. 2. The method according to claim 1 , wherein generating an error value for each of the 10-bit input data channels by comparing, for each of the first and third channels, three LSBs of the input data channel and three bits derived from the truncated channel, and for the second channel, two LSBs of the input data channel and two bits derived from the truncated channel comprises: generating an error value for each of the 10-bit input data channels by combining using an XOR logic block, for each of the first and third channels, three LSBs of the input data channel and three bits derived from the truncated channel, and for the second channel, two LSBs of the input data channel and two bits derived from the truncated channel. 3. The method according to claim 1 , wherein the three bits derived from the truncated first channel comprise the three MSBs of the truncated first channel, the two bits derived from the truncated second channel comprise the two MSBs of the truncated second channel and the three bits derived from the truncated third channel comprise the three MSBs of the truncated third channel. 4. The method according to claim 1 , further comprising: prior to generating the error values, expanding, using bit replication, each of the truncated first, second and third channels to 10 bits, and wherein the three bits derived from the truncated first channel comprise the three LSBs of the expanded truncated first channel, the two bits derived from the truncated second channel comprise the two LSBs of the expanded truncated second channel and the three bits derived from the truncated third channel comprise the three LSBs of the expanded truncated third channel. 5. The method according to claim 1 , further comprising, prior to appending the bits from the 2-bit input data channel: encoding the 2-bit input data channel using Gray coding. 6. The method according to claim 1 , wherein appending a different bit from the 2-bit input data channel to each of the truncated first and third channels comprises: appending, as an MSB, a different bit from the 2-bit input data channel to each of the truncated first and third channels. 7. The method according to claim 1 , wherein the 10:10:10:2 pixel data comprises RGBA pixel data. 8. A method of compressing RGBA 10:10:10:2 format pixel data comprising: converting 10:10:10:2 format pixel data into 8888 format data using the method according to claim 1 ; and compressing a block of 8888 format data using a lossless compression method to generate a first compressed data block. 9. The method according to claim 8 , further comprising: assessing the first compressed data block against a target compression threshold; in response to determining that the first compressed data block satisfies the target compression threshold, outputting the first compressed data block; and in response to determining that the first compressed data block does not satisfy the target compression threshold, discarding one or more bits from the fourth 8-bit channel in the block of 8888 format data to generate a reduced size block of data and compressing the reduced size block of data using the lossless compression method to generate a second compressed data block, wherein the second compressed data block is smaller than the first compressed data block. 10. The method according to claim 9 , further comprising: outputting the second compressed data block. 11. The method according to claim 9 , further comprising: assessing the second compressed data block against the target compression threshold; in response to determining that the second compressed data block satisfies the target compression threshold, outputting the second compressed data block; and in response to determining that the second compressed data block does not satisfy the target compression threshold, outputting, instead of the second compressed data block, a third compressed data block generated from the block of 8888 format data, wherein the third compressed data block is generated using a lossy compression technique, and wherein the lossy compression technique is arranged to ensure that the third compressed data block satisfies the target compression threshold. 12. A non-transitory computer readable storage medium having stored thereon computer executable code that when executed causes at least one processor to perform the method as set forth in claim 1 . 13. A method of decompressing a block of compressed RGBA 10:10:10:2 format pixel data, the method comprising: decompressing a compressed data block using a lossless decompression method, to generate a first decompressed data block, wherein the first decompressed data block comprises four channels of data and wherein the first, second and third channels are 8-bit channels; determining whether the fourth channel is an 8-bit channel and in response to determining that the fourth channel comprises fewer than 8-bits per pixel, converting the fourth channel into an 8-bit channel by adding one or more zeros to data for each pixel; removing an MSB from each of the first and third channels and combining them to form a 2-bit alpha channel; using bit replication to increase each of the first, second and third channels to 10-bit channels; for each of the first and third channels, modifying three LSBs by combining them with corresponding bits from the fourth channel to generate a 10-bit red output channel and a 10-bit blue output channel respectively and for the second channel, modifying two LSBs by combining them with corresponding bits from the fourth channel to generate a 10-bit green output channel. 14. The method according to claim 13 , further comprising: gray decoding the 2-bit alpha channel. 15. A data compression unit arranged to convert 10:10:10:2 format pixel data into 8888 format data, the hardware comprising: truncation logic arranged, for each pixel, to truncate the three 10-bit input data channels such that a first truncated channel and a third truncated channel each comprises 7 bits and a second truncated channel comprises 8 bits; hardware logic arranged, for each pixel, to append a different bit from the 2-bit input data channel to each of the truncated first and third channels; hardware logic arranged, for each pixel, to generate an error value for each of the 10-bit input data channels by comparing, for each of the first and third channels, three LSBs of the input data channel and three bits derived from the truncated channel, and for the second channel, two LSBs o
characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation (H04N19/635 takes precedence) · CPC title
Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor {(H04N19/00 takes precedence)} · CPC title
Colour correction or control {(H04N1/54 takes precedence)} · CPC title
Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking · CPC title
the region being a block, e.g. a macroblock · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.