Patent Publication Number: US-7907594-B2

Title: Marking keyframes for a communication session

Description:
TECHNICAL FIELD OF THE INVENTION 
     This invention relates in general to the field of communications and, more particularly, to a system and method for marking keyframes for a communication session. 
     BACKGROUND OF THE INVENTION 
     Conferencing systems provide for communication sessions among two or more endpoints. A known approach to conferencing uses a centralized multipoint control unit (MCU) architecture to connect calls from several endpoints. In a centralized MCU architecture, media streams from endpoints are sent to the central media mixer. The central media mixer combines the media streams into one combined media stream and sends the combined media stream to media switches for distribution to the endpoints. 
     This known approach for conferencing, however, is not efficient in certain situations. It is generally desirable to have efficient techniques for conferencing. 
     SUMMARY OF THE INVENTION 
     In accordance with the present invention, disadvantages and problems associated with previous techniques for marking keyframes may be reduced or eliminated. 
     According to one embodiment of the present invention, marking a keyframe of a media stream in a communication system involves one or more entry media switches in communication with one or more endpoints. An entry media switch receives a media stream from an endpoint, where the media stream comprises a sequence of packets with a keyframe. The keyframe is detected and marked with a keyframe indicator. The keyframe indicator is operable to notify a downstream device of the keyframe. An output media stream is outputted. 
     Certain embodiments of the present invention may provide a number of technical advantages. A technical advantage of one embodiment may be that an entry media switch examines a stream to identify keyframes. When a keyframe is detected, the entry media switch marks the keyframe to notify non-entry media switches of the keyframe. Thus, non-entry media switches do not have to examine the stream for keyframes. 
     Another technical advantage of one embodiment may be that a subsequent non-entry entry media switch renumbers the packets in a sequential order. Renumbering the packets in a sequential order may reduce the possibility that packets will be dropped. Another technical advantage of one embodiment may be a receiver endpoint applies a reordering scheme to return the packets to the original order. 
     Certain embodiments of the invention may include none, some, or all of the above technical advantages. One or more other technical advantages may be readily apparent to one skilled in the art from the figures, descriptions, and claims included herein. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For a more complete understanding of the present invention and its advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which: 
         FIG. 1  is a block diagram illustrating a communication system for facilitating conferencing, in accordance with one embodiment of the present invention; 
         FIG. 2  is a block diagram illustrating a system for marking keyframes that may be used with the communication system of  FIG. 1 , in accordance with one embodiment of the present invention; and 
         FIG. 3  is a call flow diagram illustrating a method for marking keyframes that may be used with the system of  FIG. 2 , in accordance with one embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       FIG. 1  is a block diagram illustrating a communication system  10  for facilitating conferencing, in accordance with one embodiment of the present invention. According to the embodiment, an entry media switch of communication system  10  receives media streams from sender endpoints. The entry media switch checks each packet in the media streams for keyframes, which indicate an active media stream. When a keyframe is detected, the entry media switch switches to the active stream. The entry media switch also marks the keyframe with a keyframe indicator to notify downstream non-entry media switches of the keyframe. Thus, non-entry media switches do not have to examine the stream for keyframes. 
     According to the illustrated embodiment, system  10  operates to provide services such as communication sessions to endpoints  12 . A communication session may refer to an active communication between endpoints, measured from endpoint to endpoint. 
     Information is communicated during a communication session. Information may refer to voice, data, text, audio, video, multimedia, control, signaling, other information, or any combination of the preceding. The information may be communicated in packets. A packet may comprise a bundle of data organized in a specific way for transmission, and a frame may comprise the payload of one or more packets organized in a specific way for transmission. A packet-based communication protocol such as Internet Protocol (IP) may be used to communicate the packets. 
     System  10  may utilize communication protocols and technologies to provide the communication sessions. Example communication protocols and technologies include those set by the Institute of Electrical and Electronics Engineers, Inc. (IEEE) 802.xx standards, International Telecommunications Union (ITU-T) standards, European Telecommunications Standards Institute (ETSI) standards, Internet Engineering Task Force (IETF) standards, or other standards. 
     Communication system  10  may facilitate a conference between endpoints  12 . A conference may refer to a communication session between two or more endpoints, which simultaneously interact through media transmission. A media stream may refer to a stream of packets that communicate information, such as an audio stream or a video stream. Digital media streams may be subdivided into frames or packets and may be carried using any suitable protocol such as Real-Time Transfer Protocol (RTP) or User Datagram Protocol (UDP). 
     Media streams may be categorized as fixed or switched. A fixed media stream may originate from the same source for the duration of a conference. A switched media stream may originate from different sources for the duration. 
     Communication system  10  includes components such as devices. In general, a device may include any suitable arrangement of components operable to perform the operations of the device, and may comprise logic, an interface, memory, other component, or any suitable combination of the preceding. 
     “Logic” may refer to hardware, software, other logic, or any suitable combination of the preceding that may be used to provide information or instructions. Certain logic may manage the operation of a device, and may comprise, for example, a processor. “Processor” may refer to any suitable device operable to execute instructions and manipulate data to perform operations. 
     “Interface” may refer to logic of a device operable to receive input for the device, send output from the device, perform suitable processing of the input or output or both, or any combination of the preceding, and may comprise one or more ports, conversion software, or both. “Memory” may refer to logic operable to store and facilitate retrieval of information, and may comprise Random Access Memory (RAM), Read Only Memory (ROM), a magnetic drive, a disk drive, a Compact Disk (CD) drive, a Digital Video Disk (DVD) drive, removable media storage, any other suitable data storage medium, or a combination of any of the preceding. 
     In the illustrated embodiment, communication system  10  includes one or more endpoints  12 , one or more gateways  20 , a plurality of media switches  26 , a network  30 , and a set of call agents  34  coupled as shown. Although  FIG. 1  illustrates a particular number and configuration of endpoints, media switches, networks, and gateways, communication system  10  contemplates any number or arrangement of such devices for communicating media. For example, communication system  10  may include any number of suitable applications such as conference managers, conferencing schedulers, user conference controls, directory services, or network management tools. 
     An endpoint  12  represents any suitable device operable to establish communication sessions with another endpoint  12  or other components of system  10 . An endpoint  12  may comprise a telephone, a computer running telephony software, a video monitor, a camera, an IP phone, a cell phone, an IM client, a short message service (SMS) client, or any other suitable device that supports the communication of packets. Endpoints  12  may include unattended or automated systems, gateways, other intermediate components, or other devices for establishing communication sessions. 
     A gateway  20  represents any suitable device operable to interconnect with network  30 . Gateways  20  may convert communications between different communication protocols. For example, gateways  30  may convert communications from a protocol used by network  30  to a different protocol, or vice-versa. 
     Network  30  represents any suitable communication network that allows devices such as endpoints  12  to communicate with other devices. A communication network may comprise all or a portion of a public switched telephone network (PSTN), a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a local, regional, or global communication or computer network such as the Internet, a wireline or wireless network, an enterprise intranet, other suitable communication link, or any combination of the preceding. 
     A media switch  26  represents any suitable device operable to switch between media streams of different sources. Switching media streams may involve replicating and transmitting media streams from selected endpoints and suppressing media streams from other endpoints. 
     Media streams may be switched according to any suitable selection criterion. Selection criteria may be defined by a conference policy. A conference policy may specify the stream to be selected for transmission to endpoints  12 . For example, a conference policy may specify that the stream from an endpoint with an active speaker, an endpoint with a person controlling a shared display, or an endpoint selected by a moderator is to be selected. Another conference policy may specify the streams that certain endpoints can received. For example, only media streams with non-confidential information may be transmitted to endpoints  12  without security clearances. 
     According to one embodiment, media switch functionality may be included as a software feature in network operating systems such as CISCO IOS or CISCO CatOS (provided by CISCO SYSTEMS, INC.) or in any other general purpose operating system. In another example, existing network devices such as routers, gateways, servers, CPUs, bridges, switches, and wireless access points may provide media switch functionality. These functions may be implemented in media switches  26  throughout network  30  or alternatively, implemented in conjunction with a video or audio bridge or combination thereof without the need to utilize any media switch  26 . 
     To smoothly transition from one active stream to another, a media switch may switch streams when it detects a keyframe. A keyframe, also called an intraframe or I-frame, may refer to a frame or a packet in a media stream that may be decoded without reference to any frame other than itself. That is, a keyframe does not require decoding of another frame in order for that frame to be decoded. Other types of frames, such as P-frames and B-frames, require decoding of one or more other frames in order for that frame to be decoded. 
     Modifications, additions, or omissions may be made to communication system  10  without departing from the scope of the invention. The components of system  10  may be integrated or separated according to particular needs. If any components of communication system  10  are separated, the components may be coupled using any appropriate wire line, wireless, or other link. Moreover, the operations of system  10  may be performed by more, fewer, or other modules. Additionally, operations of system  10  may be performed using any suitable logic. As used in this document, “each” refers to each member of a set or each member of a subset of a set. 
       FIG. 2  is a block diagram illustrating a system  40  for marking keyframes that may be used with communication system  10 , in accordance with one embodiment of the present invention. System  40  includes endpoints A through F, media switches  1  through  3 , and a network  30  coupled as shown. 
     In the illustrated embodiment, endpoints A through E are sender endpoints, and endpoint F is a receiver endpoint. A sender endpoint may refer to an endpoint that originates a media stream, and a receiver endpoint may refer to an endpoint that receives a media stream. The sender endpoints may send streams with packets that have endpoint sequence numbers. Endpoint sequence numbers may refer to packet numbers assigned by the sender endpoints. In the illustrated embodiment, sender endpoint A sends media stream A with packets having endpoint sequence numbers a i : a 1 =1000, a 2 =1001, and a 3 =1002. Sender endpoint B sends media stream B with packets having endpoint sequence numbers b j : b 1 =2000, b 2 =2001, b 3 =2002, and b 4 =2003. 
     In the illustrated embodiment, media switches  1  and  2  communicate media streams between subnets (that include endpoints A through E) and network  30 . A subnet may refer to a group of one or more endpoints associated with one media switch. In the illustrated embodiment, endpoints A, C, and D are part of a first subnet associated with media switch  1 , and endpoints E and B are part of a second subnet associated with media switch  2 . 
     An entry media switch may choose an active stream by selecting an endpoint from a subnet. In the illustrated embodiment, media switch  1  selects endpoint A as the active speaker at one time instance, and media switch  2  selects endpoint B as the active speaker at another time instance. 
     A media switch may switch to a new active speaker when the media switch detects a keyframe. When a keyframe is detected, the media switch may suppress the media streams from non-active speakers so that only the media stream from the active speaker is forwarded. In one embodiment, only entry media switches may detect keyframes. 
     The entry media switch may mark the keyframes in order to notify downstream non-entry media switches of the keyframes. A keyframe indicator may be used to mark a keyframe. In one embodiment, an RTP header extension embedded in a sequence number may be used to carry a keyframe indicator. A particular value in the header extension may indicate a keyframe. For one example, a “0” may indicate a keyframe. 
     In one embodiment, the entry media switch may mark the keyframes by renumbering the packet by assigning upstream sequence numbers to the packets. Upstream sequence numbers may refer to the sequence numbers assigned by an entry media switch. 
     Each entry media switch may use a particular sequence number series. In the illustrated embodiment, media switch  1  uses sequence number series 10,XXX, and media switch  2  uses sequence number series 20,XXX. Media switch  1  renumbers endpoint sequence numbers a 1 =1000, a 2 =1001, and a 3 =1002 to upstream sequence numbers s 1   i : s 1   1 =10,000, s 1   2 ,=10,001, and s 1   3 =10,002, respectively. Media switch  2  renumbers endpoint sequence numbers from b 1 =2000, b 2 =2001, b 3 =2002, and b 4 =2003 to upstream sequence numbers s 2   j : s 2   1 =20,000, s 2   2 =20,001, s 2   3 =20,002, and s 2   4 =20,003, respectively. In the illustrated example, the RTP header extension of sequence number n 4 =20,001 is 1. 
     Entry media switches may communicate the media streams to network  30 . In the illustrated embodiment, media switch  1  communicates media stream S 1  to network  30 , and media switch  2  communicates media stream S 2  to network  30 . In other embodiments, the media streams may be communicated to any number of system modules. For example, the media streams may be communicated to a controller that screens media streams before sending the media streams to network  30 . 
     In some embodiments, network  30  may combine the media streams into an out-going combined stream. The combined stream may be communicated to non-entry media switches for distribution to receiver endpoints. In the illustrated embodiment, network  30  combines media stream S 1  and S 2  to form combined stream N. 
     Network  30  may mix up the order of the packets when combining the media streams. An out-of-order packet may refer to a packet with a sequence number that does not correspond to its order in the sequence. A switching packet may refer to the first packet to arrive from a particular entry media switch. In some embodiments, the switching packet may alert the media switch of a new active stream. 
     In the illustrated embodiment, network  30  mixes up the order of the packets of combined stream N: n 1 =10,000, n 2 =10,001, n 3 =10,002, n 4 =20,001, n 5 =20,000, n 6 =20,002, and n 7 =20,003. In this example, for media switch  3 , packet n 4 =20,001 is the first packet from entry media switch  2 , so packet n 4 =20,001 is the switching packet. In the illustrated embodiment, the next packet n 5 =20,000 has a sequence number smaller than the sequence number of the switching packet n 4 =20,001, so it is the real first switch packet but it is out of order. 
     Non-entry media switches may detect keyframes in the combined media stream from the keyframe marking provided by the entry media switches. The non-entry media switches may rely on the keyframe indicators marking the keyframes, and may not need to continuously monitor the packets in the stream for keyframes. 
     In some embodiments, the non-entry media switches may renumber the packets with downstream sequence numbers. The non-entry media switches may renumber the packets in sequential order according to their arrival at the non-entry media switch. In the illustrated example, media switch  3  renumbers upstream sequence numbers n 1 =10,000, n 2 =100,001, n 3 =10,002, n 4 =20,001, n 5 =20,000, n 6 =20,002, and n 7 =20,003 to downstream sequence numbers f k : f 1 =30,000, f 2 =30,001, f 3 =30,002, f 4 =30,003, f 5 =30,004, f 6 =30,005, and f 7 =30,006, respectively. In this example, the out-of-order packet with sequence number n 5 =20,000 and n 4 =20,001 have been renumbered to f 4 =30,003 and f 5 =30,004, respectively, and they are no longer out of order. Accordingly, the receiver endpoint will probably not drop the packet. 
     In some embodiments, receiver endpoints may use a reordering scheme to correct the mixed-up order of the packets. The receiver endpoints may correct the downstream sequence numbers of the packets to correspond with the original order of the packets in the active streams originating from the sender endpoints. 
     In the illustrated embodiment, receiver endpoints calculate corrected downstream sequence numbers g k  from upstream sequence numbers n k  according to the following equation:
 
 g   k   =n   k −Δ
 
where Δ=n sp   −f   sp −ext
 
     In the example, Δ represents a correction factor used to correct the order of packets, n sp  represents the upstream sequence number of the switching packet of an active stream, f sp  represents the downstream sequence number of the switching packet of an active stream, and ext represents the RTP header extension sequence number of the switching packet of an active stream. 
     In the illustrated embodiment, upstream sequence number n sp  for active stream S 1  is n 1 =10,000, and upstream sequence number n sp  for active stream S 2  is n 1 =20,001. Downstream sequence number f sp  for active stream S 1  is n 1 =30,000, and downstream sequence number f sp  for active stream S 2  is n 1 =30,003. The RTP header extension sequence number of the switching packet of active stream S 1  is 0, and the RTP header extension of the switching packet of active stream S 2  is 1. Therefore, correction factor Δ for active stream S 1  is n 1 =10,000−n 1 =30,000+0=−20,000, and correction factor Δ for active stream S 2  is n 1 =20,001−n 1 =30,003+1=−10,003. 
     In the illustrated example, the corrected downstream sequence numbers for packets in active stream S 1  are g 1 =10,000−(−20,000)=30,000, g 2 =10,001−(−20,000)=30,001, g 3 =10,002−(−20,000)=30,002. The corrected downstream sequence numbers for packets in active stream S 1  are g 4 =20,001−(−10,003)=30,004, g 5 =20,000−(−10,003)=30,003, g 6 =20,002−(−10,003)=30,005, g 7 =20,003−(−10,003)=30,006. 
     The receiver endpoint may use the corrected downstream sequence numbers of the packets. 
     Modifications, additions, or omissions may be made to system  40  without departing from the scope of the invention. The components of system  40  may be integrated or separated according to particular needs. Moreover, the operations of system  40  may be performed by more, fewer, or other modules. Additionally, operations of system  40  may be performed using any suitable logic. 
       FIG. 3  is a call flow diagram illustrating one embodiment of a method for marking keyframes that may be used with system  40  of  FIG. 2 . 
     Steps  52  and  56  describe sender endpoints sending streams of packets numbered with endpoint sequence numbers. Endpoint A sends stream A to entry media switch  1  at step  52 . Endpoint B sends stream B to entry media switch  2  at step  56 . 
     Steps  58  through  64  describe renumbering the packets by assigning upstream sequence numbers to the packets. The upstream sequence numbers may include an embedded RTP header extension. At step  58 , media switch  1  renumbers the packets of stream A to yield media stream S 1 . Media switch  1  sends media stream S 1  to network  30  at step  60 . At step  62 , media switch  2  renumbers packets of stream B to yield media stream S 2 . Media switch  2  sends media stream S 2  to network  30  at step  64 . 
     Network  30  combines media stream S 1  and S 2  to form a combined stream N at step  66 . When combining media streams, network  30  may mix up the order of the packets. In the illustrated embodiment, network  30  sends combined stream N j  to non-entry media switch  3  at step  68 . 
     Non-entry media switch  3  renumbers the packets of the combined stream N at step  70  by assigning downstream sequence numbers to yield combined stream C. Renumbering the packets in a sequential order may reduce the possibility that packets will be dropped. Non-entry media switch  3  sends combined stream C to receiver endpoint F at step  72 . 
     Receiver endpoint F corrects the order of the packets at step  74  to return the packets to the original order of the packets as sent by sender endpoints. Receiver endpoint F may then communicate the combined stream D to other system modules at step  78 . 
     Modifications, additions, or omissions may be made to the method without departing from the scope of the invention. The method may include more, fewer, or other steps. Additionally, steps may be performed in any suitable order without departing from the scope of the invention. 
     Certain embodiments of the present invention may provide a number of technical advantages. A technical advantage of one embodiment may be that an entry media switch examines a stream to identify keyframes. When a keyframe is detected, the entry media switch marks the keyframe to notify non-entry media switches of the keyframe. Thus, non-entry media switches do not have to examine the stream for keyframes. 
     Another technical advantage of one embodiment may be that a subsequent non-entry entry media switch renumbers the packets in a sequential order. Renumbering the packets in a sequential order may reduce the possibility that packets will be dropped. Another technical advantage of one embodiment may be a receiver endpoint applies a reordering scheme to return the packets to the original order. 
     Numerous other changes, substitutions, variations, alterations, and modifications may be ascertained by those skilled in the art. The present invention encompasses all such changes, substitutions, variations, alterations, and modifications as falling within the spirit and scope of the appended claims.