IP Library Granted Patent US 8,537,888
Granted Patent B2
US 8,537,888 · App. 12/832,634 · Granted Sep 17, 2013

Method, device, and computer-readable medium for video 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 8,537,888
App. No.
12/832,634
Granted
Sep 17, 2013
Kind
B2
Abstract

A method, device, and computer-readable medium for video coding or decoding wherein a number of blocks of residual picture data respectively stored in a number of first data arrays in a memory of a computer device represent at least a part of a video picture to be coded or decoded. The method includes calculating DC coefficients respectively associated with the blocks and inserting the DC coefficients in a second data array in a block associative order, classifying each of the blocks as skipped in response to an associated DC coefficient being lower than a predefined threshold, and non-skipped in response to the associated DC coefficient being higher than a predefined threshold, generating a bit mask containing 1-bits in positions corresponding to positions in the second data array having DC coefficients higher than the predefined threshold, and 0-bits in positions corresponding to positions in the second data array having DC coefficients lower than the predefined threshold.

Claims (42)

1. A method in a video coding or decoding process implemented in a computer device wherein a number of blocks of residual picture data respectively stored in a number of first data arrays in a memory of the computer device represent at least a part of a video picture to be coded or decoded, the method comprising:

calculating DC coefficients respectively associated with the blocks and inserting the DC coefficients in a second data array in a block associative order;

classifying each of the blocks as skipped in response to an associated DC coefficient being lower than a predefined threshold, and non-skipped in response to the associated DC coefficient being higher than the predefined threshold;

generating a bit mask containing 1-bits in positions corresponding to positions in the second data array having DC coefficients higher than the predefined threshold, and 0-bits in positions corresponding to positions in the second data array having DC coefficients lower than the predefined threshold; and

in response to the bit mask containing 1-bits,

counting the number of bit positions in the bit mask from a rightmost position to the first occurrence of a 1-bit and storing the result in a scan variable,

adding the value of the scan variable to a jump variable,

incrementing a count variable,

storing the value of the jump variable in an offset array indexed with the value of the count variable, and

shifting the bit mask (scan+1) times to the right.

2. The method according to claim 1 , wherein the predefined threshold is a smallest decision value of a number of decision values associated with quantization of DC coefficients.

3. The method according to claim 1 , wherein the blocks are 4×4 macroblocks, and the second data array includes eight DC coefficients respectively associated with eight 4×4 macroblocks.

4. The method according to claim 1 , further comprising:

deriving data addresses to the respective residual picture data of blocks classified as non-skipped, when fetched from the memory in the coding or decoding process from corresponding consecutive indexed values in the offset array.

5. A non-transitory computer-readable storage medium including computer executable instructions, wherein the instructions, when executed by a computer, cause the computer to perform a method in a video coding or decoding process implemented in a computer device wherein a number of blocks of residual picture data respectively stored in a number of first data arrays in a memory of the computer device represent at least a part of a video picture to be coded or decoded, the method comprising:

calculating DC coefficients respectively associated with the blocks and inserting the DC coefficients in a second data array in a block associative order;

classifying each of the blocks as skipped in response to an associated DC coefficient being lower than a predefined threshold, and non-skipped in response to the associated DC coefficient being higher than the predefined threshold;

generating a bit mask containing 1-bits in positions corresponding to positions in the second data array having DC coefficients higher than the predefined threshold, and 0-bits in positions corresponding to positions in the second data array having DC coefficients lower than the predefined threshold; and

in response to the bit mask containing 1-bits,

counting the number of bit positions in the bit mask from a rightmost position to the first occurrence of a 1-bit and storing the result in a scan variable,

adding the value of the scan variable to a jump variable,

incrementing a count variable,

storing the value of the jump variable in an offset array indexed with the value of the count variable, and

shifting the bit mask (scan+1) times to the right.

6. The non-transitory computer-readable storage medium according to claim 5 , wherein the predefined threshold is a smallest decision value of a number of decision values associated with quantization of DC coefficients.

7. The non-transitory computer-readable storage medium according to claim 5 , wherein the blocks are 4×4 macroblocks, and the second data array includes eight DC coefficients respectively associated with eight 4×4 macroblocks.

8. The non-transitory computer-readable storage medium according to claim 5 , further comprising:

deriving data addresses to the respective residual picture data of blocks classified as non-skipped, when fetched from the memory in the coding or decoding process from corresponding consecutive indexed values in the offset array.

9. An apparatus for video coding or decoding wherein a number of blocks of residual picture data respectively stored in a number of first data arrays in a memory of the apparatus represent at least a part of a video picture to be coded or decoded, the apparatus comprising:

a video processor configured to,

calculate DC coefficients respectively associated with the blocks and insert the DC coefficients in a second data array in a block associative order,

classify each of the blocks as skipped in response to an associated DC coefficient being lower than a predefined threshold, and non-skipped in response to the associated DC coefficient being higher than the predefined threshold,

generate a bit mask containing 1-bits in positions corresponding to positions in the second data array having DC coefficients higher than the predefined threshold, and 0-bits in positions corresponding to positions in the second data array having DC coefficients lower than the predefined threshold, and

in response to the bit mask containing 1-bits,

count the number of bit positions in the bit mask from a rightmost position to the first occurrence of a 1-bit and storing the result in a scan variable,

add the value of the scan variable to a jump variable,

increment a count variable,

store the value of the jump variable in an offset array indexed with the value of the count variable, and

shift the bit mask (scan+1) times to the right.

10. The apparatus according to claim 9 , wherein the predefined threshold is a smallest decision value of a number of decision values associated with quantization of DC coefficients.

11. The apparatus according to claim 9 , wherein the blocks are 4×4 macroblocks, and the second data array includes eight DC coefficients respectively associated with eight 4×4 macroblocks.

12. The apparatus according to claim 9 , wherein the video processor is further configured to derive data addresses to the respective residual picture data of blocks classified as non-skipped, when fetched from the memory from corresponding consecutive indexed values in the offset array.

Assignments (2)
CONFIRMATORY ASSIGNMENT Recorded Dec 1, 2011
From: TANDBERG TELECOM AS; CISCO SYSTEMS INTERNATIONAL SARL
To: CISCO TECHNOLOGY, INC.
Reel/Frame 027307/0451 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2010
From: ENDRESEN, LARS PETTER
To: TANDBERG TELECOM AS
Reel/Frame 025143/0921 →