Intelligent buffering process for network confernece video
First Claim
1. An intelligent buffering process to reduce lag in a conference video stream after a data forwarding delay, the stream including a plurality of packets defining either a key frame or a delta frame, each of the key frames representing an entire screen image, each of the delta frames representing image changes relative to a previous frame, the process comprising the steps of:
- receiving a newly arrived packet;
determining whether the newly arrived packet is a key frame; and
if the packet is a key frame;
detecting whether a buffer has reached a predetermined limit and deleting packets in the buffer if the predetermined limit has been reached; and
adding the newly arrived packet to the buffer.
2 Assignments
0 Petitions
Accused Products
Abstract
In order to minimize the delay of the video images viewed by a network conference attendee, an intelligent buffering process (IB process) selectively discards video frames from at least one point, and in an embodiment, many network points, such as at “in” and/or “out” buffers of clients, servers, routers, etc. Packets of video frame data arrive at a buffer, which can fill to a predetermined limit if the packets cannot be forwarded due to delays or slow connections. To forward the most current video images, old frames in the buffer are discarded rather than forwarded. In a particular embodiment, when the buffer is full, the next arriving delta frame packet is discarded. To avoid distortion, each subsequent delta frame is discarded until a new key frame eventually arrives. If the buffer is still full when the key frame arrives, the buffer is purged and the new key frame is added.
80 Citations
23 Claims
-
1. An intelligent buffering process to reduce lag in a conference video stream after a data forwarding delay, the stream including a plurality of packets defining either a key frame or a delta frame, each of the key frames representing an entire screen image, each of the delta frames representing image changes relative to a previous frame, the process comprising the steps of:
-
receiving a newly arrived packet;
determining whether the newly arrived packet is a key frame; and
if the packet is a key frame;
detecting whether a buffer has reached a predetermined limit and deleting packets in the buffer if the predetermined limit has been reached; and
adding the newly arrived packet to the buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An intelligent buffering process to reduce lag in a conference video stream after a data forwarding delay, the stream including a plurality of packets defining either a key frame or a delta frame, each of the key frames representing an entire screen image, each of the delta frames representing image changes relative to a previous frame, the process comprising the steps of:
-
receiving a newly arrived packet;
determining whether the newly arrived packet is a delta frame, and if so;
detecting whether the previous packet was discarded, discarding the newly arrived delta frame if the previous packet was discarded;
detecting whether a buffer have reached a predetermined limit; and
discarding the newly arrived packet if the buffer has reached the predetermined limit. - View Dependent Claims (11, 12)
-
-
13. A process for managing a video conference among a plurality of attendee computers, the process comprising:
-
providing a plurality of buffers at a conference server, each of the buffers corresponding to a respective attendee destination, receiving a newly arrived packet of a video stream, the packets defining respective key frames and a delta frames, each of the key frames representing an entire screen image, each of the delta frames representing image changes relative to a previous frame; and
for each of the buffers;
determining whether the newly arrived packet is a key frame;
if the packet is a key frame;
deleting the packets in the buffer if the buffer contents have reached a predetermined limit;
adding the key frame to the buffer; and
forwarding non-deleted packets from the buffer to the corresponding attendee destination. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer-readable medium having computer-executable instructions for performing a process for managing a buffer, the process comprising:
-
receiving packets of a video stream data, the packets defining a plurality of key frames and delta frames, each of the key frames representing an entire screen, each of the delta frames representing image changes relative to a previous frame;
determining whether a newly arrived packet contains a key frame; and
if the packet is a key frame;
detecting whether the buffer contents have reached a predetermined limit and deleting packets in the buffer if the predetermined limit has been reached; and
adding the key frame to the buffer. - View Dependent Claims (22, 23)
-
Specification