IP Library Granted Patent US 11,244,476
Granted Patent B2
US 11,244,476 · App. 16/900,833 · Granted Feb 8, 2022

Systems and methods for low-complexity near lossless fixed-rate hybrid data compression codecs

Inventor: Vijayaraghavan Thirumalai (Fremont, CA)
Assignee: Samsung Display Co., Ltd.
G06T9/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,244,476
App. No.
16/900,833
Granted
Feb 8, 2022
Kind
B2
Abstract

A method for encoding data includes: receiving a frame of data including subunits; initializing a remaining bit budget for the frame; setting a current codec to a lossless codec having a lossless codec bitrate; and sequentially encoding the subunits, including: encoding a first subunit using the lossless codec to compute a first encoded sub-unit; subtracting a length of the first encoded subunit from the remaining bit budget; determining whether the remaining bit budget exceeds a first lossy bits required to encode a plurality of remaining subunits using a first lossy codec having a first lossy codec bitrate lower than the lossless codec bitrate; in response to determining that the remaining bit budget is less than or equal to the first lossy bits required, setting the current codec to the first lossy codec; and encoding a second subunit using the first lossy codec to compute a second encoded sub-unit.

Claims (57)

1. A method for encoding data comprising:

receiving a frame of data comprising a plurality of sub-units;

initializing a remaining bit budget to a bit budget for the frame of data;

setting a current codec to a lossless codec having a lossless codec bitrate; and

sequentially encoding the subunits of the frame of data, including:

encoding a first subunit of the subunits using the current codec, set to the lossless codec, to compute a first encoded sub-unit;

subtracting a length of the first encoded subunit from the remaining bit budget;

determining whether the remaining bit budget exceeds a first lossy bits required to encode a plurality of remaining subunits of the frame of data using a first lossy codec having a first lossy codec bitrate lower than the lossless codec bitrate;

in response to determining that the remaining bit budget is less than or equal to the first lossy bits required, setting the current codec to the first lossy codec; and

encoding a second subunit of the subunits using the current codec, set to the first lossy codec, to compute a second encoded sub-unit.

2. The method of claim 1 , wherein the bit budget comprises W-lossyBpp-1 extra margin bits, where W is the length of a longest binary codeword of a symbol in the lossless codec, and where lossyBpp is the first lossy codec bitrate.

3. The method of claim 1 , wherein the frame of data is a frame of image data comprising a plurality of pixels.

4. The method of claim 3 , wherein the lossless codec is a differential pulse coded modulation (DPCM) codec without quantization, and

wherein the first lossy codec is a DPCM codec with quantization.

5. The method of claim 3 , wherein the bit budget is set based on a size of a buffer in a display panel for storing the frame of image data for an overdrive algorithm.

6. The method of claim 3 , wherein each of the subunits is a pixel of the frame of image data.

7. The method of claim 3 , wherein each of the subunits is a line of pixels of the frame of image data.

8. The method of claim 3 , wherein each of the subunits is a block of pixels of the frame of image data.

9. The method of claim 1 , wherein the sequentially encoding the subunits of the frame of data further comprises, in a state where the current codec is set to the first lossy codec:

determining whether the remaining bit budget exceeds a second lossy bits required to encode the remaining subunits of the frame of data using a second lossy codec having a second lossy codec bitrate lower than the first lossy codec bitrate;

in response to determining that the remaining bit budget is less than or equal to the second lossy bits required setting the current codec to the second lossy codec; and

encoding a third subunit of the subunits using the current codec, set to the second lossy codec, to compute a third encoded sub-unit.

10. The method of claim 9 , wherein the bit budget further comprises:

W-lossyBpp 1 -1 extra margin bits, where W is the length of a longest binary codeword of a symbol in the lossless codec, and where lossyBpp 1 is the first lossy codec bitrate, and

W 1 -lossyBpp 2 -1 extra margin bits, where W 1 is the length of a longest binary codeword of a symbol in the first lossy codec, and where lossyBpp 2 is the second lossy codec bitrate.

11. The method of claim 9 , wherein the sequentially encoding the subunits of the frame of data further comprises, in the state where the current codec is set to a codec other than the lossless codec:

determining whether the remaining bit budget exceeds an expected number of bits to encode the remaining subunits of the frame of data using the lossless codec;

in response to determining that the remaining bit budget exceeds the expected number of bits to encode the remaining subunits of the frame of data using the lossless codec, setting the current codec to the lossless codec; and

encoding a fourth subunit of the subunits using the current codec, set to the lossless codec, to compute a fourth encoded sub-unit.

12. An encoder comprising one or more processing circuits configured to:

receive a frame of data comprising a plurality of sub-units;

initialize a remaining bit budget to a bit budget for the frame of data;

set a current codec to a lossless codec having a lossless codec bitrate;

encode a first subunit of the plurality of subunits using the current codec, set to the lossless codec, to compute a first encoded sub-unit;

subtract a length of the first encoded subunit from the remaining bit budget;

determine whether the remaining bit budget exceeds a first lossy bits required to encode a plurality of remaining subunits of the frame of data using a first lossy codec having a first lossy codec bitrate lower than the lossless codec bitrate;

in response to a determination that the remaining bit budget is less than or equal to first lossy bits required set, the current codec to the first lossy codec; and

encode a second subunit of the subunits using the current codec, set to the first lossy codec, to compute a second encoded sub-unit.

13. The encoder of claim 12 , wherein the bit budget comprises W-lossyBpp-1 extra margin bits, where W is the length of a longest binary codeword of a symbol in the lossless codec, and where lossyBpp is the first lossy codec bitrate.

14. The encoder of claim 12 , wherein the frame of data is a frame of image data comprising a plurality of pixels.

15. The encoder of claim 14 , wherein the lossless codec is a differential pulse coded modulation (DPCM) codec without quantization, and

wherein the first lossy codec is a DPCM codec with quantization.

16. The encoder of claim 14 , wherein the bit budget is set based on a size of a buffer in a display panel for storing the frame of image data for an overdrive algorithm.

17. The encoder of claim 14 , wherein each of the subunits is a pixel of the frame of image data.

18. The encoder of claim 14 , wherein each of the subunits is a line of pixels of the frame of image data.

19. The encoder of claim 14 , wherein each of the subunits is a block of pixels of the frame of image data.

20. The encoder of claim 12 , wherein the one or more processing circuits are further configured to, in a state where the current codec is set to the first lossy codec:

determine whether the remaining bit budget exceeds a second lossy bits required to encode the remaining subunits of the frame of data using a second lossy codec having a second lossy codec bitrate lower than the first lossy codec bitrate;

in response to a determination that the remaining bit budget is less than or equal to the second lossy bits required, set the current codec to the second lossy codec; and

encode a third subunit of the subunits using the current codec, set to the second lossy codec, to compute a third encoded sub-unit.

21. The encoder of claim 20 , wherein the bit budget further comprises:

W-lossyBpp 1 -1 extra margin bits, where W is the length of a longest binary codeword of a symbol in the lossless codec, and where lossyBpp 1 is the first lossy codec bitrate, and

W 1 -lossyBpp 2 -1 extra margin bits, where W 1 is the length of a longest binary codeword of a symbol in the first lossy codec, and where lossyBpp 2 is the second lossy codec bitrate.

22. The encoder of claim 20 , wherein the one or more processing circuits are further configured to, in the state where the current codec is set to a codec other than the lossless codec:

determine whether the remaining bit budget exceeds an expected number of bits to encode the remaining subunits of the frame of data using the lossless codec;

in response to a determination that the remaining bit budget exceeds the expected number of bits to encode the remaining subunits of the frame of data using the lossless codec, set the current codec to the lossless codec; and

encode a fourth subunit of the subunits using the current codec, set to the lossless codec, to compute a fourth encoded sub-unit.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2020
From: THIRUMALAI, VIJAYARAGHAVAN
To: SAMSUNG DISPLAY CO., LTD.
Reel/Frame 052933/0072 →
Continuity (2)
Provisional Application 63005880 · Apr 6, 2020
Related Publication 20210312666A1 · Oct 7, 2021
Cited By (1)
US 12,425,567