IP Library Granted Patent US 9,172,962
Granted Patent B2
US 9,172,962 · App. 13/354,437 · Granted Oct 27, 2015

Methods and systems for pipelining within binary arithmetic coding and decoding

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,172,962
App. No.
13/354,437
Granted
Oct 27, 2015
Kind
B2
Abstract

Methods of encoding and decoding for video data are described for encoding or decoding multi-level significance maps while enabling pipelining of the BAC engine. In one example, coefficient groups are redefined to remove the significant-coefficient flags of the first and last position of a block and replace them with significant-coefficient flags of the last position in the previous block and the first position in the next block. A modified scan order is applied to each coefficient group. In another example, the coefficient groups remain block-based, but the scan order is modified to interleave the encoding and decoding sequential coefficient groups.

Claims (52)

1. A method of decoding a bitstream of encoded video by reconstructing significant-coefficient flags for a transform unit, the transform unit comprising a sequence of blocks, the bitstream including sets of significant-coefficient flags, each set corresponding to a respective block, the method comprising:

for each set of significant-coefficient flags, decoding that set in a scan order, wherein the scan order is a diagonal scan within its respective block modified so as to

decode a significant-coefficient flag in the bottom-right-corner position within the respective block corresponding to the set, prior to decoding at least two significant-coefficient flags of a previous set in the sequence, and

decode a significant-coefficient flag in the upper-left-corner position within that respective block, after decoding at least two significant-coefficient flags of a subsequent set in the sequence.

2. The method claimed in claim 1 , wherein decoding that set in the scan order comprises:

decoding all the significant-coefficient flags in the set except significant-coefficient flags in the three last positions located in the upper-left corner in the block-based diagonal scan;

decoding a significant-coefficient flag in the lower-right position of the subsequent set; and

decoding significant-coefficient flags in a third-to-last position and a second-to-last position in the block-based diagonal scan of the set,

and wherein the diagonal scan is a reverse diagonal scan order.

3. The method claimed in claim 2 , wherein decoding that set in the scan order further comprises then decoding significant-coefficient flags in a second position and a third position in the block-based diagonal scan of the subsequent set, and decoding the significant-coefficient flag in the upper-right position in the set.

4. The method claimed in claim 1 , wherein that subsequent set comprises the next set in the sequence for which an associated significant-coefficient-group flag is equal to one.

5. The method of claim 1 , wherein decoding of a significant-coefficient flag comprises determining a context for the significant-coefficient flag.

6. The method of claim 5 , wherein decoding further comprises:

binary arithmetically decoding a value for the significant-coefficient flag based on the determined context;

and wherein the decoding of the significant-coefficient flag in the bottom-right position within the respective block corresponding to the set comprises determining a context for the significant-coefficient flag in the bottom-right position within that respective block prior to determining a respective context for the at least two significant-coefficient flags of the previous set,

and wherein the decoding of a significant-coefficient flag in the upper-left position within that respective block comprises determining a context for the significant-coefficient flag in the upper-left position within that respective block after determining a respective context for the at least two significant-coefficient flags of the subsequent set.

7. The method claimed in claim 1 , wherein decoding a significant-coefficient flag comprises determining a context for the significant-coefficient flag, and either

binary arithmetically decoding a value for the significant-coefficient flag from the encoded data of the bitstream, or

inferring the value for the significant-coefficient flag.

8. A method of decoding a bitstream of encoded video by reconstructing significant-coefficient flags for a transform unit, the transform unit comprising a sequence of blocks, the bitstream including sets of significant-coefficient flags, each set corresponding to a respective block, the bitstream sequencing the sets according to the order of their corresponding blocks, the bitstream encoding the significant-coefficient flags of each set in a scan order, the method comprising:

for each set of significant-coefficient flags, decoding that set in the scan order, wherein the scan order is a modification of a block-based diagonal scan, modified to exclude a bottom-right-corner position within the block corresponding to the set and an upper-left-corner position within that block and modified to include an upper-left-corner location in a previous block and a bottom-right-corner location in a next block.

9. The method of claim 8 , wherein decoding of a significant-coefficient flag comprises determining a context for the significant-coefficient flag.

10. The method of claim 8 , wherein the blocks are 4×4 and wherein each set includes fourteen significant-coefficient flags from its corresponding block and includes a significant-coefficient flag from the upper-left location in the previous block and includes a significant-coefficient flag from the bottom-right location in the next block.

11. The method of claim 8 , wherein the previous block is the immediately preceding block in the sequence, and wherein the next block is the immediately following block in the sequence.

12. A decoder for decoding a bitstream of encoded data to reconstruct significant-coefficient flags for a transform unit, the transform unit comprising a sequence of blocks, the bitstream including sets of significant-coefficient flags, each set corresponding to a respective block, the decoder comprising:

processing circuitry to, for each set of significant-coefficient flags,

decode that set in a scan order, wherein the scan order is a diagonal scan within its respective block modified so as to

decode a significant-coefficient flag in the bottom-right-corner position within the respective block corresponding to the set, prior to decoding at least two significant-coefficient flags of a previous set in the sequence, and

decode a significant-coefficient flag in the upper-left-corner position within that respective block, after decoding at least two significant-coefficient flags of a subsequent set in the sequence.

13. The decoder claimed in claim 12 , wherein the processing circuitry is to decode that set in the scan order by

decoding all the significant-coefficient flags in the set except significant-coefficient flags in the three last positions located in the upper-left corner in the block-based diagonal scan;

decoding a significant-coefficient flag in the lower-right position of the subsequent set; and

decoding significant-coefficient flags in a third last position and a second last position in the block-based diagonal scan of the set.

14. The decoder claimed in claim 13 , wherein the processing circuitry is to then decode significant-coefficient flags in a second position and a third position in the block-based diagonal scan of the subsequent set, and to decode the significant-coefficient flag in the upper-right position in the set.

15. The decoder claimed in claim 12 , wherein that subsequent set comprises the next set in the sequence for which an associated significant-coefficient-group flag is equal to one.

16. The decoder claimed in claim 12 , wherein the processing circuitry is to decode a significant-coefficient flag by determining a context for the significant-coefficient flag.

17. The decoder claimed in claim 16 , wherein the processing circuitry is to decode the significant-coefficient flag by:

binary arithmetically decoding a value for the significant-coefficient flag based on the determined context;

and wherein the decoding of the significant-coefficient flag in the bottom-right position within the respective block corresponding to the set comprises determining a context for the significant-coefficient flag in the bottom-right position within that respective block prior to determining a respective context for the at least two significant-coefficient flags of the previous set,

and wherein the decoding of a significant-coefficient flag in the upper-left position within that respective block comprises determining a context for the significant-coefficient flag in the upper-left position within that respective block after determining a respective context for the at least two significant-coefficient flags of the subsequent set.

18. The decoder claimed in claim 12 , wherein the processing circuitry is to decode a significant-coefficient flag by determining a context for the significant-coefficient flag, and either

binary arithmetically decoding a value for the significant-coefficient flag from the encoded data of the bitstream, or

inferring the value for the significant-coefficient flag.

19. A decoder for decoding a bitstream of encoded data to reconstruct significant-coefficient flags for a transform unit, the transform unit comprising a sequence of blocks, the bitstream including sets of significant-coefficient flags, each set corresponding to a respective block, the bitstream sequencing the sets according to the order of their corresponding blocks, the bitstream encoding the significant-coefficient flags of each set in a scan order, the decoder comprising:

processing circuitry to, for each set of significant-coefficient flags,

decode that set in the scan order, wherein the scan order is a modification of a block-based diagonal scan, modified to exclude a bottom-right-corner position within the block corresponding to the set and an upper-left-corner position within that block and modified to include an upper-left-corner location in a previous block and a bottom-right-corner location in a next block.

20. A non-transitory processor-readable medium storing processor-executable instructions which, when executed, configures one or more processors to reconstruct significant-coefficient flags for a transform unit, the transform unit comprising a sequence of blocks, the bitstream including sets of significant-coefficient flags, each set corresponding to a respective block, wherein the instructions, when executed cause the processor to:

for each set of significant-coefficient flags, decode that set in a scan order, wherein the scan order is a diagonal scan within its respective block modified so as to

decode a significant-coefficient flag in the bottom-right-corner position within the respective block corresponding to the set, prior to decoding at least two significant-coefficient flags of a previous set in the sequence, and

decode a significant-coefficient flag in the upper-left-corner position within that respective block, after decoding at least two significant-coefficient flags of a subsequent set in the sequence.

21. A non-transitory processor-readable medium storing processor-executable instructions which, when executed, configures one or more processors to reconstruct significant-coefficient flags for a transform unit, the transform unit comprising a sequence of blocks, the bitstream including sets of significant-coefficient flags, each set corresponding to a respective block, the bitstream sequencing the sets according to the order of their corresponding blocks, the bitstream encoding the significant-coefficient flags of each set in a scan order, wherein when executed the instructions cause the processors to

for each set of significant-coefficient flags, decode that set in the scan order, wherein the scan order is a modification of a block-based diagonal scan, modified to exclude a bottom-right-corner position within the block corresponding to the set and an upper-left-corner position within that block and modified to include an upper-left-corner location in a previous block and a bottom-right-corner location in a next block.

Assignments (6)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064271/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Jul 29, 2015
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 036207/0637 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2012
From: SLIPSTREAM DATA INC.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 028277/0259 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2012
From: NGUYEN, NGUYEN; HE, DAKE
To: SLIPSTREAM DATA INC.
Reel/Frame 028102/0981 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2012
From: JI, TIANYING
To: RESEARCH IN MOTION LIMITED
Reel/Frame 028103/0048 →