IP Library Granted Patent US 8,249,070
Granted Patent B2
US 8,249,070 · App. 11/323,285 · Granted Aug 21, 2012

Methods and apparatuses for performing scene adaptive rate control

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,249,070
App. No.
11/323,285
Granted
Aug 21, 2012
Kind
B2
Abstract

In one embodiment, the methods and apparatuses detect a network bandwidth; detect a sequence of frames; determine a motion based on the sequence of frames; set a target bit rate for the sequence of frames based on the network bandwidth; and set a frame rate for the sequence of frames based on the motion of the sequence of frames, wherein the target bit rate and the frame rate are utilized to process the sequence of frames.

Claims (42)

1. A method comprising:

detecting a network bandwidth;

detecting a sequence of frames by an electronic processor of an electronic device;

determining a motion based on the sequence of frames by the electronic processor;

setting a target bit rate for the sequence of frames based on the network bandwidth;

setting a frame rate for the sequence of frames based on the motion of the sequence of frames;

allocating, by the electronic processor, a number of target bits for each frame based, at least in part, on the target bit rate for the sequence of frames, the frame rate for the sequence of frames, a fullness of a virtual buffer used by the electronic processor in processing the sequence of frames, bits used for a previous frame of the sequence of frames, and a ratio of the number of remaining bits available for encoding the remaining frames in the sequence of frames to the number of remaining frames in the sequence of frames; and

processing the sequence of frames.

2. The method according to claim 1 wherein the network bandwidth is a capacity to exchange information between multiple devices.

3. The method according to claim 1 wherein the network bandwidth is a capacity to exchange information within a single device.

4. The method according to claim 1 further comprising increasing the target hit rate for the sequence of frames based on an increase in the network bandwidth.

5. The method according to claim 1 further comprising decreasing the target bit rate for the sequence of frames based on a decrease in the network bandwidth.

6. The method according to claim 1 further comprising storing a motion threshold wherein the motion threshold determines the frame rate.

7. The method according to claim 6 further comprising increasing the frame rate based on the motion above the motion threshold.

8. The method according to claim 6 further comprising decreasing the frame rate based on the motion below the motion threshold.

9. The method according to claim 1 further comprising processing the sequence of frames with the frame rate.

10. The method according to claim 1 further comprising processing the sequence of frames with the target bit rate for the sequence of frames.

11. The method according to claim 1 wherein the sequence of frames comprises a video segment.

12. A system, comprising:

a processor; and

a memory configured to store a plurality of software modules executable by the processor, the software modules including

a scene comparison module configured to detect a motion based on comparing a current frame to a prior frame of a sequence of frames,

a network bandwidth detection module configured to detect a network bandwidth,

a frame rate module configured to set a frame rate for the current frame based on the motion detected within the scene comparison module, and

a target bit rate module configured to determine a target bit rate for the sequence of frames based on the network bandwidth and set a target bit rate for the current frame based, at least in part, on the target bit rate for the sequence of frames, the frame rate for the sequence of frames, a fullness of a virtual buffer used in processing the sequence of frames, bits used for a previous frame of the sequence of frames, and a ratio of the number of remaining bits available for encoding the remaining frames in the sequence of frames to the number of remaining frames in the sequence of frames.

13. The system according to claim 12 further comprising a scene detection module configured to detect the sequence of frames.

14. The system according to claim 12 further comprising a storage module configured to store the current frame and the prior frame.

15. The system according to claim 12 further comprising a storage module configured to store the frame rate and the target bit rate for the sequence of frames.

16. A system comprising:

a processor;

means for determining a motion based on a sequence of frames;

means for setting a target bit rate for the sequence of frames based on a network bandwidth;

means for setting a frame rate for the sequence of frames based on the motion of the sequence of frames;

means for allocating a number of target bits for each frame based, at least in part, on the target bit rate for the sequence of frames, the frame rate for the sequence of frames, a fullness of a virtual buffer in processing the sequence of frames, bits used for a previous frame of the sequence of frames, and a ratio of a number of remaining bits available for encoding the remaining frames in the sequence of frames to the number of remaining frames in the sequence of frames; and

means for processing the sequence of frames.

17. The method according to claim 1 , wherein determining the motion of the sequence of frames comprises:

comparing a current frame against a prior frame to determine the motion.

18. The system according to 12 wherein the scene comparison module is further figured to compare the current frame against a prior frame to detect the motion.

19. The method according to claim 1 , wherein the number of target bits for each frame is further allocated based, at least in part, on a target buffer level of the virtual buffer used by the electronic processor in processing the sequence of frames.

20. The system according to claim 12 wherein the target bit rate module is further configured to allocate the number of target bits for each frame based, at least in part, on a target buffer level of the virtual buffer used in processing the sequence of frames.

21. The method according to claim 1 wherein the number of target bits for each frame is further allocated based, at least in part, on a ratio of the target bit rate for the sequence of frames to the frame rate for the sequence of frames.

22. The method according to claim 1 wherein the number of target bits for each frame is further allocated based upon a sum of a first weighted value that depends upon a ratio of the number of remaining bits available for encoding the remaining frames in the sequence of frames to the number of remaining frames in the sequence of frames, a second weighted value that depends upon a ratio of the target bit rate for the sequence of frames to the frame rate for the sequence of frames, and a third weighted value that depends upon the bits used for the previous frame of the sequence of frames.

Assignments (4)
CHANGE OF NAME Recorded Oct 7, 2011
From: WEBEX COMMUNICATIONS, INC.
To: CISCO WEBEX LLC
Reel/Frame 027033/0756 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2011
From: CISCO WEBEX LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 027033/0764 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S ADDRESS PREVIOUSLY RECORDED ON REEL 017432 FRAME 0199. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE'S ADDRESS TO BE WEBEX COMMUNICATIONS, INC. 3979 FREEDOM CIRCLE SANTA CLARA, CA 95054. Recorded Apr 10, 2006
From: SONG, XUDONG; XIAO, PETER; ZHU, LEI
To: WEBEX COMMUNICATIONS, INC.
Reel/Frame 017447/0291 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2006
From: SONG, XUDONG; XIAO, PETER; ZHU, LEI
To: WEBEX COMMUNICATIONS, INC.
Reel/Frame 017432/0199 →