IP Library › Granted Patent US 8,077,775
Granted Patent B2
US 8,077,775 · App. 11/383,119 · Granted Dec 13, 2011

System and method of adaptive rate control for a video encoder

Assignee: Freescale Semiconductor, Inc.
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,077,775
App. No.
11/383,119
Filed
May 12, 2006
Granted
Dec 13, 2011
Kind
B2
Art Unit
2486
USPC
375/240.03
Abstract

A method of adaptively adjusting a QP of a video encoder to control output bit rate including estimating the QP based on a complexity of a previous frame and encoding bit rate information of a current frame to provide an estimated QP, determining a threshold value based on a video quality factor, a target bit rate and a complexity of a previous interval of the current frame or the same interval of the previous frame, and if the estimated QP is greater than the threshold value, adaptively adjusting the estimated QP using the threshold value, the target bit rate and the complexity of the previous interval. The method may include adaptively limiting a change of the QP between frame intervals based on a difference between the QP and the threshold value. Complexity information may be based on an average of minimum SAD values.

Claims (58)

1. A rate controller which adaptively adjusts a quantization parameter (QP) to control a bit rate of a video encoder, said rate controller comprising:

a first circuit which calculates an estimated QP based on encoding bit rate information of a current frame and first complexity information of a previous frame;

a second circuit which calculates a threshold value based on a video quality factor, a target bit rate and second complexity information of a previous interval of said current frame or of said previous frame;

a comparator which asserts an adjust signal if said estimated QP is greater than said threshold value;

a third circuit which calculates an adaptive QP when said adjust signal is asserted, wherein said adaptive QP is based on said estimated QP and said threshold value; and

select logic which provides said adaptive QP as a next QP when said adjust signal is asserted and which otherwise provides said estimated QP as said next QP.

2. The rate controller of claim 1 , further comprising an adaptive cap circuit which adaptively limits a change of said next QP based on a difference between said next QP and said threshold value.

3. The rate controller of claim 1 , wherein said second circuit calculates said threshold value using a target frame rate and using an average of minimum sum of absolute difference values of said previous interval as said second complexity information.

4. The rate controller of claim 1 , wherein said third circuit calculates said adaptive QP using a target frame rate and an average of minimum sum of absolute difference values of said previous interval.

5. The rate controller of claim 1 , further comprising:

a fourth circuit which calculates an initial QP for said current frame using said first complexity information and encoding information of said previous frame; and

wherein said first circuit updates said estimated QP after a current interval of said current frame is encoded using said initial QP and encoding bit rate information of said current interval of said current frame.

6. The rate controller of claim 5 , wherein said fourth circuit uses an average QP used for said previous frame as said first complexity information.

7. The rate controller of claim 6 , wherein said fourth circuit further uses an average of minimum sum of average difference values of said previous frame as said first complexity information.

8. The rate controller of claim 5 , further comprising:

a fifth circuit which calculates an adjusted average QP for said previous frame based on an average QP used for said previous frame and an average of minimum sum of average difference values used for encoding said previous frame;

a sixth circuit which calculates a target number of bits for encoding said current frame using said target bit rate, a target frame rate, said adjusted average QP for said previous frame and a target QP; and

wherein said fourth circuit calculates said initial QP using said average QP used for said previous frame, a number of bits used for encoding said previous frame and said target number of bits for encoding said current frame.

9. A video system for providing real-time video communications, comprising:

a video encoder which converts video data into compressed video information at a bit rate based on a next quantization parameter (QP), said video encoder providing encoding bit rate information and video complexity information; and

a rate control system, comprising:

accumulation logic which accumulates said encoding bit rate information and said video complexity information; and

a rate controller, comprising:

a first circuit which calculates an estimated QP based on said encoding bit rate information of a current frame and said video complexity information of a previous frame;

a second circuit which calculates a threshold value based on a video quality factor, a target bit rate, a target frame rate and said video complexity information of a previous interval of said current frame or of said previous frame;

a comparator which asserts an adjust signal if said estimated QP is greater than said threshold value;

a third circuit which calculates an adaptive QP when said adjust signal is asserted, wherein said adaptive QP is based on said estimated QP, said threshold value, said target bit rate, and said video complexity information of a previous interval of said current frame or of said previous frame; and

select logic which provides said adaptive QP as a next QP when said adjust signal is asserted and which otherwise provides said estimated QP as said next QP.

10. The video system of claim 9 , wherein said rate controller further comprises a cap circuit which adaptively limits a change of said next QP based on a difference between said next QP and said threshold value.

11. The video system of claim 9 , wherein:

said video encoder provides said video complexity information as a minimum sum of absolute difference value after encoding each macroblock of said video data; and

wherein said accumulation logic comprises:

a first accumulator which accumulates each minimum sum of absolute difference (SAD) value for each interval of each frame for providing a sum of minimum SAD values for said each interval;

a second accumulator which accumulates said sum of minimum SAD values for said each interval for providing a sum of minimum SAD values for each frame;

a first memory location for storing an average minimum SAD value for said each interval; and

a second memory location for storing an average minimum SAD value for said each frame.

12. The video system of claim 9 , wherein:

said video encoder provides said encoding bit rate information as a number of bits for encoding each macroblock of said video data; and

wherein said accumulation logic comprises:

a first accumulator which accumulates each number of bits for encoding each macroblock for each interval of each frame for providing a number of bits for encoding said each interval;

a second accumulator which accumulates said number of bits for encoding said each interval for providing a number of bits for encoding each frame; and

a memory location for storing a number of bits for encoding said previous frame.

13. A method of adaptively adjusting a quantization parameter (QP) of a video encoder to control output bit rate, comprising:

estimating the QP based on a complexity of a previous frame and encoding bit rate information of a current frame to provide an estimated QP;

determining a threshold value based on a video quality factor, a target bit rate and a complexity of a previous interval of the current frame or of the previous frame; and

if the estimated QP is greater than the threshold value, adaptively adjusting the estimated QP based on the threshold value.

14. The method of claim 13 , further comprising adaptively limiting a change of the QP between frame intervals based on a difference between the QP and the threshold value.

15. The method of claim 13 , wherein said determining a threshold value comprises calculating the threshold value using a target frame rate and using an average of minimum sum of absolute difference values of the previous interval of the current frame as the complexity of the previous interval.

16. The method of claim 13 , wherein said adaptively adjusting the estimated QP comprises adaptively adjusting the estimated QP using a target frame rate and an average of minimum sum of absolute difference values of the previous interval.

17. The method of claim 13 , wherein said estimating the QP comprises:

for the current frame, determining an initial QP based on the complexity of the previous frame and encoding information of the previous frame; and

after a current interval of the current frame is encoded, adjusting the estimated QP based on the initial QP and encoding information of the current interval of the current frame.

18. The method of claim 17 , wherein said determining the initial QP comprises using an average QP of the previous frame as the complexity of the previous frame.

19. The method of claim 18 , wherein said determining the initial QP further comprises using an average of minimum sum of absolute difference values of the previous frame as the complexity of the previous frame.

20. The method of claim 17 , further comprising:

determining an adjusted average QP for the previous frame using an average QP used for the previous frame and an average of minimum sum of absolute difference values of the previous frame;

determining a target number of bits for encoding the current frame using the target bit rate, a target frame rate, the adjusted average QP for the previous frame and a target QP; and

wherein said determining an initial QP comprises using the average QP used for the previous frame, a number of bits used for encoding the previous frame, and the target number of bits for encoding the current frame.

Assignments (29)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
PATENT RELEASE Recorded Aug 17, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 039707/0471 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NORTH STAR INNOVATIONS INC.
Reel/Frame 037694/0264 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0143 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0225 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0553 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded May 13, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 024397/0001 →
SECURITY AGREEMENT Recorded Mar 15, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 024085/0001 →
SECURITY AGREEMENT Recorded Feb 2, 2007
From: FREESCALE SEMICONDUCTOR, INC.; FREESCALE ACQUISITION CORPORATION; FREESCALE ACQUISITION HOLDINGS CORP.; FREESCALE HOLDINGS (BERMUDA) III, LTD.
To: CITIBANK, N.A. AS COLLATERAL AGENT
Reel/Frame 018855/0129 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2006
From: HE, ZHONGLI
To: FREESCALE SEMICONDUCTOR INC.
Reel/Frame 017612/0006 →
Continuity (1)
Related Publication 20070263720A1 · Nov 15, 2007