IP Library Granted Patent US 8,660,178
Granted Patent B2
US 8,660,178 · App. 12/845,498 · Granted Feb 25, 2014

Method and system for multi-layer rate control for a multi-codec system

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,660,178
App. No.
12/845,498
Granted
Feb 25, 2014
Kind
B2
Abstract

A video transmitter comprising a plurality of encoders may be operable to determine, for a transport stream, a constant overall number of bits per time interval corresponding to a frame in the transport stream. For each time interval corresponding to a start and an end of encoding of each of frames using each of the encoders, the video transmitter may allocate a target number of bits to each of the frames to achieve the constant overall number of bits. The allocation of the target number of bits may be based on frame types of the frames and CODEC types of the encoders, where the allocated target number of bits for each of the frames meets buffer overflow/underflow requirements associated with each of the encoders. A quantization parameter (QP) may be calculated and adjusted at each of one or more layers for generating an actual number of bits during encoding.

Claims (29)

1. A method for processing video, the method comprising:

in a video transmitter comprising a plurality of encoders with different CODECs:

determining, for a transport stream, a constant overall number of bits per time interval that corresponds to transferring a frame in said transport stream, wherein said transport stream comprises a plurality of video streams at a plurality of different CODEC standards that are concurrently generated from two or more of said plurality of encoders; and

for each time interval that corresponds to a start and an end of encoding of each of a plurality of frames using each of said two or more of said plurality of encoders at said plurality of different CODEC standards, allocating a target number of bits to said each of said plurality of frames to achieve said constant overall number of bits for said transport stream based on a frame type of said each of said plurality of frames and a CODEC type of said each of said two or more of said plurality of encoders, wherein said allocated target number of bits for said each of said plurality of frames meets buffer overflow/underflow requirements associated with said each of said two or more of said plurality of encoders.

2. The method according to claim 1 , comprising determining a target number of bits for a macroblock (MB) of said each of said plurality of frames in said each of said plurality of video streams based on said allocated target number of bits of said each of said plurality of frames.

3. The method according to claim 2 , comprising calculating a quantization parameter (QP) for said macroblock (MB) based on said determined target number of bits of said macroblock (MB).

4. The method according to claim 3 , comprising determining rate control information associated with said macroblock (MB) at each of one or more layers of said each of said plurality of video streams.

5. The method according to claim 4 , comprising adjusting said calculated quantization parameter (QP) at each of said one or more layers based on said rate control information at each of said one or more layers to generate a final quantization parameter (QP).

6. The method according to claim 5 , comprising generating an actual number of bits during encoding of said macroblock (MB) utilizing said final quantization parameter (QP).

7. The method according to claim 4 , wherein said rate control information at a layer comprises a bit error, and said bit error is a difference between an actual number of bits generated during encoding for said layer and a target number of bits corresponding to said actual number of bits for said layer.

8. The method according to claim 7 , comprising adjusting said calculated quantization parameter (QP) based on a proportional value, an integral value or a derivative value of said bit error at each of said one or more layers.

9. The method according to claim 4 , wherein one of said one or more layers comprises a multi-group of pictures (multi-GOP), a group of pictures (GOP), a frame, a multi-macroblock (multi-MB) or a macroblock (MB).

10. The method according to claim 1 , comprising adjusting a total number of frames in a group of pictures (GOP) for each of one or more of said plurality of video streams for said allocation of said target number of bits to said each of said plurality of frames.

11. A system for processing video, the system comprising:

one or more processing circuitry for use in a video transmitter comprising a plurality of encoders with different CODECs, said one or more processing circuitry being operable to:

determine, for a transport stream, a constant overall number of bits per time interval that corresponds to transferring a frame in said transport stream, wherein said transport stream comprises a plurality of video streams at a plurality of different CODEC standards that are concurrently generated from two or more of said plurality of encoders; and

for each time interval that corresponds to a start and an end of encoding of each of a plurality of frames using each of said two or more of said plurality of encoders at said plurality of different CODEC standards, allocate a target number of bits to said each of said plurality of frames to achieve said constant overall number of bits for said transport stream based on a frame type of said each of said plurality of frames and a CODEC type of said each of said two or more of said plurality of encoders, wherein said allocated target number of bits for said each of said plurality of frames meets buffer overflow/underflow requirements associated with said each of said two or more of said plurality of encoders.

12. The system according to claim 11 , wherein said one or more processing circuitry is operable to determine a target number of bits for a macroblock (MB) of said each of said plurality of frames in said each of said plurality of video streams based on said allocated target number of bits of said each of said plurality of frames.

13. The system according to claim 12 , wherein said one or more processing circuitry is operable to calculate a quantization parameter (QP) for said macroblock (MB) based on said determined target number of bits of said macroblock (MB).

14. The system according to claim 13 , wherein said one or more processing circuitry is operable to determine rate control information associated with said macroblock (MB) at each of one or more layers of said each of said plurality of video streams.

15. The system according to claim 14 , wherein said one or more processing circuitry is operable to adjust said calculated quantization parameter (QP) at each of said one or more layers based on said rate control information at each of said one or more layers to generate a final quantization parameter (QP).

16. The system according to claim 15 , wherein said one or more processing circuitry is operable to generate an actual number of bits during encoding of said macroblock (MB) utilizing said final quantization parameter (QP).

17. The system according to claim 14 , wherein said rate control information at a layer comprises a bit error, and said bit error is a difference between an actual number of bits generated during encoding for said layer and a target number of bits corresponding to said actual number of bits for said layer.

18. The system according to claim 17 , wherein said one or more processing circuitry is operable to adjust said calculated quantization parameter (QP) based on a proportional value, an integral value or a derivative value of said bit error at each of said one or more layers.

19. The system according to claim 14 , wherein one of said one or more layers comprises a multi-group of pictures (multi-GOP), a group of pictures (GOP), a frame, a multi-macroblock (multi-MB) or a macroblock (MB).

20. The system according to claim 11 , wherein said one or more processing circuitry is operable to adjust a total number of frames in a group of pictures (GOP) for each of one or more of said plurality of video streams for said allocation of said target number of bits to said each of said plurality of frames.

21. A non-transitory computer readable medium having executable instructions for processing video, that when executed by a hardware processor of a video transmitter, causes the processor to:

determine, for a transport stream, a constant overall number of bits per time interval that corresponds to transferring a frame in said transport stream, wherein said transport stream comprises a plurality of video streams at a plurality of different CODEC standards that are concurrently generated from two or more of plurality of encoders of the video transmitter; and

for each time interval that corresponds to a start and an end of encoding of each of a plurality of frames using each of said two or more of said plurality of encoders at said plurality of different CODEC standards, allocate a target number of bits to said each of said plurality of frames to achieve said constant overall number of bits for said transport stream based on a frame type of said each of said plurality of frames and a CODEC type of said each of said two or more of said plurality of encoders, wherein said allocated target number of bits for said each of said plurality of frames meets buffer overflow/underflow requirements associated with said each of said two or more of said plurality of encoders.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 049248/0558 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047351/0384 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0910 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →