IP Library Granted Patent US 9,560,351
Granted Patent B1
US 9,560,351 · App. 14/136,409 · Granted Jan 31, 2017

Low cost rate-distortion computations for video compression

Inventors: Elliot N. Linzer (Bergenfield, NY); Hsiang-Chun Huang (Hsinchu County, TW)
Assignee: Ambarella, Inc.
H04N19/00569
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,560,351
App. No.
14/136,409
Granted
Jan 31, 2017
Kind
B1
Abstract

A method of rate-distortion computations for video compression is disclosed. The method may include steps (A) to (C). Step (A) may generate a plurality of transform coefficients from a residual block of the video using a circuit. Step (B) may generate a block distortion value (i) based on the transform coefficients and (ii) independent of a plurality of inverse transform samples produced from the residual block. Step (C) may generate a rate-distortion value from the block distortion value.

Claims (56)

1. A method for estimating a number of bits used to code an image block, comprising the steps of:

transforming said image block in a circuit to calculate a plurality of transform coefficients;

quantizing said transform coefficients to calculate a plurality of quantized coefficients;

counting non-zero ones of said quantized coefficients;

translating said count of said non-zero quantized coefficients using a curve stored in a lookup table to produce a rate value that estimates said number of bits used to code said image block;

generating a plurality of intermediate coefficients by calculating absolute values of said transform coefficients; and

generating a block distortion value based on a difference between scaled versions of said quantized coefficients and said intermediate coefficients.

2. The method according to claim 1 , wherein said generation of said block distortion value is independent of a plurality of inverse quantized coefficients corresponding to said quantized coefficients.

3. The method according to claim 1 , wherein said curve stored in said lookup table comprises a non-linear curve.

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

inverse quantizing said quantized coefficients to calculate a plurality of inverse quantized coefficients; and

calculating a first difference between a first one of said transform coefficients and a first one of said inverse quantized coefficients.

5. The method according to claim 4 , further comprising the step of:

calculating a second difference between a second one of said transform coefficients and a second one of said inverse quantized coefficients.

6. The method according to claim 1 , further comprising the step of:

generating a score of said image block based on said rate value and said block distortion value.

7. An apparatus comprising:

a first circuit configured to transform an image block to calculate a plurality of transform coefficients; and

a second circuit configured to

(i) quantize said transform coefficients to calculate a plurality of quantized coefficients,

(ii) count non-zero ones of said quantized coefficients,

(iii) translate said count of said non-zero quantized coefficients using a curve stored in a lookup table to produce a rate value that estimates a number of bits used to code said image block,

(iv) generate a plurality of intermediate coefficients by calculating absolute values of said transform coefficients, and

(v) generate a block distortion value based on a difference between scaled versions of said quantized coefficients and said intermediate coefficients.

8. The apparatus according to claim 7 , wherein said generation of said block distortion value is independent of a plurality of inverse quantized coefficients corresponding to said quantized coefficients.

9. The apparatus according to claim 7 , wherein said curve stored in said lookup table comprises a non-linear curve.

10. The apparatus according to claim 7 , wherein said second circuit is further configured to inverse quantize said quantized coefficients to calculate a plurality of inverse quantized coefficients, and calculate a first difference between a first one of said transform coefficients and a first one of said inverse quantized coefficients.

11. The apparatus according to claim 10 , wherein said second circuit is further configured to calculate a second difference between a second one of said transform coefficients and a second one of said inverse quantized coefficients.

12. The apparatus according to claim 7 , wherein said second circuit is further configured to generate a score of said image block based on said rate value and said block distortion value.

13. A method for estimating a number of bits used to code an image block, comprising the steps of:

transforming said image block in a circuit to calculate a plurality of transform coefficients;

quantizing said transform coefficients to calculate a plurality of quantized coefficients;

counting non-zero ones of said quantized coefficients;

translating said count of said non-zero quantized coefficients using a curve stored in a lookup table to produce a rate value that estimates said number of bits used to code said image block;

inverse quantizing said quantized coefficients to calculate a plurality of inverse quantized coefficients;

calculating a first difference between a first one of said transform coefficients and a first one of said inverse quantized coefficients;

calculating a second difference between a second one of said transform coefficients and a second one of said inverse quantized coefficients; and

generating a block distortion value of said image block based on a combined value of said first difference and said second difference, wherein said combined value is calculated as a weighted sum of squares of said first difference and said second difference.

14. The method according to claim 13 , further comprising the step of:

generating a plurality of intermediate coefficients by calculating absolute values of said transform coefficients.

15. The method according to claim 13 , wherein said curve stored in said lookup table comprises a non-linear curve.

16. The method according to claim 13 , further comprising the step of:

generating a score of said image block based on said rate value and said block distortion value.

17. An apparatus comprising:

a first circuit configured to transform an image block to calculate a plurality of transform coefficients; and

a second circuit configured to

(i) quantize said transform coefficients to calculate a plurality of quantized coefficients,

(ii) count non-zero ones of said quantized coefficients,—

(iii) translate said count of said non-zero quantized coefficients using a curve stored in a lookup table to produce a rate value that estimates a number of bits used to code said image block,

(iv) inverse quantize said quantized coefficients to calculate a plurality of inverse quantized coefficients,

(v) calculate a first difference between a first one of said transform coefficients and a first one of said inverse quantized coefficients,

(vi) calculate a second difference between a second one of said transform coefficients and a second one of said inverse quantized coefficients, and

(vii) generate a block distortion value of said image block based on a combined value of said first difference and said second difference, wherein said combined value is calculated as a weighted sum of squares of said first difference and said second difference.

18. The apparatus according to claim 17 , wherein said second circuit is further configured to generate a plurality of intermediate coefficients by calculating absolute values of said transform coefficients.

19. The apparatus according to claim 17 , wherein said curve stored in said lookup table comprises a non-linear curve.

20. The apparatus according to claim 17 , wherein said second circuit is further configured to generate a score of said image block based on said rate value and said block distortion value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2020
From: AMBARELLA, INC.
To: AMBARELLA INTERNATIONAL LP
Reel/Frame 051831/0041 →
Continuity (1)
Continuation 12640415 · Dec 17, 2009