IP Library Granted Patent US 9,282,329
Granted Patent B2
US 9,282,329 · App. 14/315,877 · Granted Mar 8, 2016

Methods and devices for data compression using offset-based adaptive reconstruction levels

Inventors: Dake He (Waterloo, CA); Xiang Yu (Waterloo, CA); Jing Wang (Waterloo, CA); En-hui Yang (Waterloo, CA)
Assignee: BlackBerry Limited
H04N19/0009H04N19/124H04N19/147H04N19/172H04N19/174H04N19/176H04N19/177H04N19/192H04N19/196H04N19/463H04N19/61H04N19/70H04N19/194
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 9,282,329
App. No.
14/315,877
Granted
Mar 8, 2016
Kind
B2
Abstract

Encoding and decoding methods are presented that used offset-based adaptive reconstruction levels. The offset data is inserted in the bitstream with the encoded video data. The offset data may be differential data and may be an index to an array of offset values from which the differential offset is calculated by the decoder. The offset to an adaptive reconstruction level may be adjusted for each slice. The offsets may be specific to a particular level/index and data type. In some cases, offsets may only be sent for a subset of the levels. Higher levels may apply no offset, may apply an average offset, or may apply the offset used for the highest level having a level-specific offset.

Claims (72)

1. A method of decoding a bitstream of compressed data, the method comprising:

decoding the compressed data to obtain a plurality of quantized transform coefficients;

for a quantization index, counting the number of non-zero quantized transform coefficients associated with the quantization index;

if a count of the number of non-zero quantized transform coefficients associated with the quantization index exceeds a threshold value, then decoding offset data for the quantization index;

decoding average offset data associated with two or more quantization indices that are different from the quantization index;

calculating a reconstruction level for the quantization index by adjusting a predetermined reconstruction level using the offset data;

calculating a respective reconstruction level for each of the two or more quantization indices by adjusting respective predefined reconstruction levels using the average offset data; and

dequantizing each quantized transform coefficient that corresponds to a respective quantization index to generate a data point using that quantization index's respective calculated reconstruction level.

2. The method claimed in claim 1 , wherein counting comprises counting, for each of a plurality of quantization indices other than said two or more quantization indices, the number of non-zero quantized transform coefficients associated with each of the plurality of quantization indices, and wherein decoding offset data comprises determining that the count for one of said plurality of quantization indices exceeds the threshold value and, based on that determination, decoding the offset data for that one of the said plurality of quantization indices.

3. The method claimed in claim 2 , wherein the threshold value comprises a respective threshold value for each of the quantization indices in said plurality of quantization indices.

4. The method claimed in claim 1 , wherein decoding average offset data comprises:

counting a number of non-zero coefficients associated with a quantization index in said two or more quantization indices,

determining that the number of non-zero coefficients associated with said quantization index in said two or more quantization indices exceed a predetermined threshold, and

in response to that determination, decoding the average offset data.

5. The method claimed in claim 1 , wherein the bitstream encodes a video frame, and wherein the video frame is partitioned into coding units,

wherein decoding the compressed data comprises decoding the data for one of the coding units,

wherein counting comprises counting, for the quantization index, the number of non-zero quantized transform coefficients, decoded thus far for the frame, associated with the quantization index,

further comprising decoding compressed data for a next one of the coding units,

wherein the counting after each coding unit is decoded is repeated unless the count exceeds the threshold value,

and wherein decoding offset data is based upon determining that the count of the number of non-zero quantized transform coefficients, decoded thus far for the frame, exceeds the threshold value.

6. A decoder for decoding a bitstream of compressed data, the decoder comprising:

a processor;

a memory; and

a decoding application stored in memory and containing instructions which, when executed by the processor, cause the processor to:

decode the compressed data to obtain a plurality of quantized transform coefficients,

for a quantization index, count the number of non-zero quantized transform coefficients associated with the quantization index,

decode offset data for the quantization index if a count of the number of non-zero quantized transform coefficients associated with the quantization index exceeds a threshold value,

decode average offset data associated with two or more quantization indices that are different from the quantization index,

calculate a reconstruction level for the quantization index by adjusting a predetermined reconstruction level using the offset data,

calculate a respective reconstruction level for each of the two or more quantization indices by adjusting respective predefined reconstruction levels using the average offset data, and

dequantize each quantized transform coefficient that corresponds to a respective quantization index to generate a data point using that quantization index's respective calculated reconstruction level.

7. The decoder claimed in claim 6 , wherein counting comprises counting, for each of a plurality of quantization indices other than said two or more quantization indices, the number of non-zero quantized transform coefficients associated with each of the plurality of quantization indices, and wherein decoding offset data comprises determining that the count for one of said plurality of quantization indices exceeds the threshold value and, based on that determination, decoding the offset data for that one of the said plurality of quantization indices.

8. The decoder claimed in claim 7 , wherein the threshold value comprises a respective threshold value for each of the quantization indices in said plurality of quantization indices.

9. The decoder claimed in claim 6 , wherein decoding average offset data comprises:

counting a number of non-zero coefficients associated with a quantization index in said two or more quantization indices,

determining that the number of non-zero coefficients associated with said quantization index in said two or more quantization indices exceed a predetermined threshold, and

in response to that determination, decoding the average offset data.

10. The decoder claimed in claim 6 , wherein the bitstream encodes a video frame, and wherein the video frame is partitioned into coding units,

wherein decoding the compressed data comprises decoding the data for one of the coding units,

wherein counting comprises counting, for the quantization index, the number of non-zero quantized transform coefficients, decoded thus far for the frame, associated with the quantization index,

the instruction, when executed, further cause the processor to decode compressed data for a next one of the coding units,

wherein the counting after each coding unit is decoded is repeated unless the count exceeds the threshold value,

and wherein decoding offset data is based upon determining that the count of the number of non-zero quantized transform coefficients, decoded thus far for the frame, exceeds the threshold value.

11. A non-transitory processor-readable medium storing processor-executable instructions which, when executed, configures one or more processors to perform the method claimed in claim 1 .

12. A method for encoding transform domain coefficients for a group of coding units, wherein the transform domain coefficients are quantized by a quantizer that associates each quantized transform domain coefficient with a quantization index based upon in which sub-part of a partitioned data space that transform domain coefficient is located, the method comprising:

encoding a plurality of quantized transform coefficients;

for a quantization index, counting the number of non-zero quantized transform coefficients associated with the quantization index;

determining offset data for a quantization index based upon a difference between an average transform domain coefficient associated with that quantization index and a predetermined reconstruction level associated with that quantization index;

if a count of the number of non-zero quantized transform coefficients associated with the quantization index exceeds a threshold value, then encoding the offset data for the quantization index; and

encoding average offset data associated with two or more quantization indices that are different from the quantization index.

13. The method claimed in claim 12 , wherein counting comprises counting, for each of a plurality of quantization indices other than said two or more quantization indices, the number of non-zero quantized transform coefficients associated with each of the plurality of quantization indices, and wherein determining offset data comprises determining respective offset data for each of the plurality of quantization indices.

14. The method claimed in claim 13 , wherein encoding offset data comprises encoding respective offset data for one of the plurality of quantization indices if the count of the number of non-zero quantized transform coefficients associated with said one of the plurality of quantization indices exceeds a respective threshold value designated for said one of the plurality of quantization indices.

15. The method claimed in claim 12 , wherein encoding average offset data comprises:

calculating average offset data based on the difference between the transform domain coefficients associated with said two or more quantization indices and predetermined reconstruction levels associated with said two or more quantization indices,

determining that the number of non-zero coefficients associated with at least one quantization index in said two or more quantization indices exceeds a predetermined threshold, and

in response to that determination, encoding the average offset data.

16. An encoder for encoding transform domain coefficients for a group of coding units, wherein the transform domain coefficients are quantized by a quantizer that associates each quantized transform domain coefficient with a quantization index based upon in which sub-part of a partitioned data space that transform domain coefficient is located, the encoder comprising:

a processor;

a memory; and

an encoding application stored in memory and containing instructions which, when executed by the processor, cause the processor to:

encode a plurality of quantized transform coefficients,

for a quantization index, count the number of non-zero quantized transform coefficients associated with the quantization index,

determine offset data for a quantization index based upon a difference between an average transform domain coefficient associated with that quantization index and a predetermined reconstruction level associated with that quantization index,

if a count of the number of non-zero quantized transform coefficients associated with the quantization index exceeds a threshold value, then encode the offset data for the quantization index, and

encode average offset data associated with two or more quantization indices that are different from the quantization index.

17. The encoder claimed in claim 16 , wherein counting comprises counting, for each of a plurality of quantization indices other than said two or more quantization indices, the number of non-zero quantized transform coefficients associated with each of the plurality of quantization indices, and wherein determining offset data comprises determining respective offset data for each of the plurality of quantization indices.

18. The encoder claimed in claim 17 , wherein encoding offset data comprises encoding respective offset data for one of the plurality of quantization indices if the count of the number of non-zero quantized transform coefficients associated with said one of the plurality of quantization indices exceeds a respective threshold value designated for said one of the plurality of quantization indices.

19. The encoder claimed in claim 16 , wherein encoding average offset data comprises:

calculating average offset data based on the difference between the transform domain coefficients associated with said two or more quantization indices and predetermined reconstruction levels associated with said two or more quantization indices,

determining that the number of non-zero coefficients associated with at least one quantization index in said two or more quantization indices exceeds a predetermined threshold, and

in response to that determination, encoding the average offset data.

20. A non-transitory processor-readable medium storing processor-executable instructions which, when executed, configures one or more processors to perform the method claimed in claim 12 .

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDED PATENT NUMBER TO REMOVE PATENT NO. 8,873,407 AT PREVIOUSLY RECORDED ON REEL 64066 FRAME 1. ASSIGNOR(S) HEREBY CONFIRMS THE NUNC PRO TUNC ASSIGNMENT EFFECTIVE DATE MARCH 20, 2023. Recorded Feb 2, 2026
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 074921/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COVER SHEET AT PAGE 50 TO REMOVE 12817157 PREVIOUSLY RECORDED ON REEL 063471 FRAME 0474. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 064806/0669 →
CORRECTIVE ASSIGNMENT TO CORRECT 12817157 APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 064015 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064807/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064066/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 16, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064015/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 063471/0474 →
CHANGE OF NAME Recorded Nov 25, 2015
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 037158/0447 →
Continuity (2)
Continuation 13155616 · Jun 8, 2011
Related Publication 20140307781A1 · Oct 16, 2014