IP Library › Granted Patent US 7,697,608
Granted Patent B2
US 7,697,608 · App. 10/996,139 · Granted Apr 13, 2010

Scalable MPEG video/macro block rate control

Assignees: Sony Corporation; Sony Electronics, 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 7,697,608
App. No.
10/996,139
Granted
Apr 13, 2010
Kind
B2
Abstract

A scaleable macro block rate control method particularly well-suited for MPEG video. There is provided a method to easily derive a quantization parameter (QP) value using information such as bit usage, previous QP values and SAD values from the past encoded and future frames. The method utilizes quantization estimation techniques based on statistical relationships between different intensity measures, such as distortion intensity, absolute difference intensity and mean of absolute difference intensity. The method is well-suited to applications utilizing MPEG video such as MPEG-1, MPEG-2, MPEG-4, JVT/H.264 standards and so forth.

Claims (105)

1. A method for scalable macro block rate control in a video encoder having a processor and programming executable on the processor for carrying out the method, the method comprising:

performing an initialization step;

performing a boot up step comprising:

(i) obtaining a picture level target quantization parameter (QP) from a picture level rate control,

(ii) calculating, for each macro block (MB), content complexity and average mean absolute difference (MAD),

(iii) determining an intensity base for deriving the QP value for each macro block (MB), and

(iv) determining a local adjust range;

performing a mode decision step;

performing a complexity step;

calculating a quantization parameter (QP);

performing a coding step for encoding a current macro block;

performing a update step; and

performing an after update step.

2. A method as recited in claim 1 , wherein said initialization step comprises:

initializing data members;

setting image dimension information; and

allocating working memory.

3. A method as recited in claim 1 , wherein said step of mode decision comprises:

calculating InterAD and IntraAD values;

obtaining IntraAD values from a mode decision module;

calculating macro block level quantization parameter (QP) in I-slice; and

sending the macro block level QP to the mode decision module.

4. A method as recited in claim 1 , wherein complexity step comprises:

obtaining IntraAd and InterAd from mode decision module;

calculating MB-level Qps, IntraQp and InterQp, for Inter mode and Intra mode, respectively in P-slice and B-slice;

sending said Qp values to the mode decision module.

5. A method as recited in claim 1 , further comprising activating macro block rate control (MbRc) in response to enabling picture level rate control to pass the target quantization parameter (QP) of a frame to MbRc, prior to making a mode decision within the video encoder.

6. A method as recited in claim 1 , wherein said update step comprises:

accumulating Qp, Ad and number of coded macroblocks.

7. A method as recited in claim 1 , wherein said after update step comprises:

calculating distortion of a current frame;

calculating average Ad for a next frame; and

calculating average LocalAdj for the next frame.

8. A method of scalable macro block rate control in a video encoder having a processor and programming executable on the processor for carrying out the method, the method, comprising:

performing an initialization step;

performing a boot up step;

performing a mode decision step;

performing a complexity step;

calculating a quantization parameter (QP);

performing a coding step for encoding a current macro block;

performing an update step; and

performing an after update step comprising,

calculating distortion of a current frame,

calculating average Ad for a next frame, and

calculating average LocalAdj for the next frame.

9. A method as recited in claim 8 , wherein said bootup step comprises:

obtaining a picture level target quantization parameter (QP) from a picture level rate control;

calculating, for each macro block (MB), content complexity and average mean absolute difference (MAD);

determining an intensity base for deriving the QP value for each macro block (MB); and

determining a local adjust range.

10. A method as recited in claim 8 , wherein said step of mode decision comprises:

calculating InterAD and IntraAD values;

obtaining IntraAD values from a mode decision module;

calculating macro block level quantization parameter (QP) in I-slice; and

sending the macro block level QP to the mode decision module.

11. A method as recited in claim 8 , wherein said complexity step comprises:

obtaining IntraAd and InterAd from mode decision module;

calculating macro block level Qps, IntraQp and InterQp, for Inter-mode and Intra-mode, respectively in P-slice and B-slice;

sending said Qp values to the mode decision module.

12. A method as recited in claim 8 , wherein said update step comprises:

accumulating Qp, Ad and number of coded macro blocks.

13. A method as recited in claim 8 , further comprising:

activating macro block rate control (MbRc) in response to enabling picture level rate control to pass the target quantization parameter (QP) of a frame to MbRc, prior to making a mode decision within the video encoder.

14. A method of performing macro block rate control (MbRc) in a video encoder having a processor and programming executable on the processor for carrying out the method, the method comprising:

activating macro block rate control (MbRc) in response to enabling picture level rate control to pass the target quantization parameter (QP) of a frame to MbRc;

calculating content complexity and average mean absolute difference (MAD) for each macro block;

determining an intensity base for deriving the QP value for each macro block (MB);

determining a local adjust range;

obtaining a picture level target QP from a picture level rate control within the video encoder;

executing a macro block coding loop within which a mode decision is made and the macro block is encoded; and

updating macro block rate control (MbRc).

15. A method as recited in claim 14 , further comprising an after update step, executed after said updating of macro block rate control (MbRc), which comprises the steps of:

calculating distortion of a current frame;

calculating average Ad for a next frame; and

calculating average LocalAdj for the next frame.

16. A method as recited in claim 14 , wherein said mode decision within the coding loop comprises:

calculating InterAD and IntraAD values;

obtaining IntraAD values from a mode decision module;

calculating macro block level quantization parameter (QP) in I-slice; and

sending the macro block level QP to the mode decision module.

17. A method as recited in claim 16 , further comprising a complexity determination within said coding loop, which comprises the steps of:

obtaining IntraAd and InterAd from mode decision module;

calculating macro block-level Qps, IntraQp and InterQp, for Inter-mode and Intra-mode, respectively in P-slice and B-slice; and

sending said Qp values to the mode decision module.

18. A method of performing macro block rate control (MbRc) within a video encoder having a processor and programming executable on the processor for carrying out the method, the method comprising:

activating macro block rate control (MbRc) in response to enabling picture level rate control to pass the target quantization parameter (QP) of a frame to MbRc;

obtaining a picture level target QP from a picture level rate control within the video encoder;

executing a macro block coding loop within which a mode decision is made and the macro block is encoded;

calculating distortion of a current frame after the macro block coding loop;

calculating average Ad for a next frame; and

calculating average LocalAdj for the next frame.

19. A method as recited in claim 18 , further comprising a bootup step, performed before said macro block coding loop, which comprises the steps of:

obtaining a picture level target quantization parameter (QP) from a picture level rate control;

calculating content complexity and average mean absolute difference (MAD) for each macro block;

determining an intensity base for deriving the QP value for each macro block (MB); and

determining a local adjust range.

20. A method as recited in claim 18 , wherein said mode decision within the coding loop comprises:

calculating InterAD and IntraAD values;

obtaining IntraAD values from a mode decision module;

calculating macro block level quantization parameter (QP) in I-slice; and

sending the macro block level QP to the mode decision module.

21. A method as recited in claim 18 , further comprising a complexity determination, within said coding loop, comprising:

obtaining IntraAd and InterAd from mode decision module;

calculating macro block-level Qps, IntraQp and InterQp, for Inter-mode and Intra-mode, respectively in P-slice and B-slice; and

sending said Qp values to the mode decision module.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2005
From: LEE, HUNG-JU
To: SONY CORPORATION; SONY ELECTRONICS INC.
Reel/Frame 016327/0783 →
Continuity (4)
Continuation In Part 1094355100 · Sep 17, 2004
Provisional Application 6054134000 · Feb 3, 2004
Provisional Application 6055453300 · Mar 18, 2004
Related Publication 20050169370A1 · Aug 4, 2005