Abstract:
A system for a multi-point videoconference consisting of three or more simultaneously connected end-points in a one-to-many or a many-to-many conference via a dynamic-virtual-multi-point-control-unit. The system comprising of a dynamic control unit is created when the Audio and Video parameters with conference participants are input by the initiator. After the establishment of the conference the dynamic-control-unit may shift from end-point to end-point in the course of a conference without terminating the conference. The movement of the Composite table of parameters creates a virtual multipoint conference control unit first by selecting the best endpoint to host the dynamic control unit using the client device resources. The dynamic-control-unit uses a protocol to establish the connections between multipliable endpoints, including a requesting or initiating endpoint and two or more participating endpoints. All functions are controlled by the endpoints and distributed by the dynamic-control-unit, which may be resident at any eligible endpoint.

Description:
BACKGROUND 
       [0001]    1. Field of the Invention 
         [0002]    The present invention relates generally to video conferencing systems, and more particularly to a videoconferencing endpoint apparatus for use with a one-to-many or a many-to-many conference without the use of a single or multiple fixed multi-point-control-unit(s). 
         [0003]    2. Background of the Prior Art 
         [0004]    When it is desirable to conduct multi-point conferences, wherein three or more parties (each party consisting of an individual or group located at a particular conference endpoint) participate in the conference. Multi-point conferences are particularly useful in situations where several interested parties need to participate in the resolution of an issue, or where information is to be disseminated on an enterprise-wide level. To conduct multi-point conferences, the conference endpoints are conventionally interconnected through an external piece of equipment called a multi-point control unit (MCU). The multi-point control unit is provided with fixed multiple ports for receiving signals representative of audio and video information generated at each of the conference endpoints. The received signals are mixed and/or switched as appropriate, and the mixed/switched signals are subsequently transmitted to each of the conference endpoints. 
         [0005]    The many disadvantages of a hardware based multi-point control unit are the cost of the multi-point control unit and the fixed number of connections available. The environmental impact of the multi-point control unit in requiring significant resources to house the unit and the bandwidth required for streaming of a composite video signal. 
         [0006]    What is therefore needed is a virtual and dynamically available multipoint control unit with out the fixed overhead of the conventional unit that can be dynamically configured and limited only by the transmission and endpoint resources. 
       SUMMARY OF THE INVENTION 
       [0007]    By creating a decentralized virtual master control unit capable of operating anywhere in the conference and with the ability to move from device to device in the midst of a conference with the control and execution of commands at and in control of the endpoints. With the only limitation to the number of participants are the bandwidth available and the computing power of the endpoint device. 
         [0008]    The embodiment of the inventions solves the problem by creating a Dynamic Control Unit (DCU) capable of relocating from device to device in the midst of a conference, the embodiment of the inventions moves control of the conference from the central or fixed point MCU or distributed MCU by moving the control and execution of the commands to the endpoint, thus removing the central or multiple Multi-point Control Unit&#39;s, or Distributed Multi-point Control Units or any embodiment that comprised of a multipoint control unit (MCU). 
         [0009]    The endpoints use the composite table of parameters (CToP) to enable or disable the transmission of Audio or Video as determined by the Composite Table of Parameters. The Composite Table of Parameters has control on where the DCU operates from in the conference and determines whether video or audio is sent from an endpoint in the conference. By using the Composite Table of Parameters and either a polled or non-polled type protocol, the DCU can control the use of bandwidth. 
         [0010]    In the present embodiment of the invention, the control unit does not exist until the initiator sets the video and audio parameters and a composite table of parameters is created and sent to the selected devices thus enabling a Dynamic Virtual Multi-point Control Unit (DVMCU). 
         [0011]    All conferences are composed of some form of video layout. This layout is selected by the initiator of the conference based on the options available at the creation of the conference and are sent to all endpoints. The different types of conference displays consist of some or all the participants and some or all of the audio of the end points in the audio mix. The different conference display options consist of, the voice switching mode or the lecture mode. In the voice switching mode the endpoint display will have N+ areas of the screen showing N+ endpoints, this configuration may have all areas the same size or a display with an endpoint being the dominate display may be a different size. The object of voice switch is to change the video display when the endpoint volume changes as controlled by the composite table of parameters. 
         [0012]    The next configuration Lecture Mode consists of one endpoint being a permanent dominate participant as in a classroom or training environment. Where the dominant endpoint or lecturer may be seen by all the endpoints in a rotation mode and the remaining endpoints may only see the lecturer. The rotational mode can be interrupted by a voice change where one of the endpoints voice level causes a switch in the display and when finished may return back to the rotational mode. 
         [0013]    The format of the audio component and its structure consist of the number of end-points in the audio mix and the length of time at a level to cause a switch in video layout if so directed by the initial conference parameters. 
         [0014]    The video stream can have multi-able display formats and multi-able video rates. The most common video display in the industry supported is CIF where the number of participants is only limited by the bandwidth and the method of transmission of the video stream. The configuration may display to the majority of the endpoints the loudest or any endpoint as configured by the initiator, the remainder of the endpoints with the second loudest or any endpoint as configured by the initiator to the loudest. 
         [0015]    A video format labeled QCIF is configured as a display of four participants with the number of participants limited by the bandwidth and the method of transmission of the video stream. When more than four participants are in the conference the voice switching control will switch the video based on the audio level and when 4+ endpoints are in the conference with the four loudest of the 4+ displayed. When a non-displayed endpoint becomes eligible to be displayed a member is switched out. 
         [0016]    The remainder of the formats may be available, SQCIF, 4CIF, 16CIF and any proprietary formats are supported in the same manner as voce switched. 
         [0017]    The communications protocol performs the connect and disconnect sequences and the keep alive type signal during the conference and also transmits the composite table of parameters to all the endpoints. The execution of the commands is determined by the composite table of parameters and is in control of the endpoint. 
         [0018]    The communication protocol may determine whether the endpoint may send video to any end-point and also if sending video is part of the conference, may control the frame rate based on the conference parameters. 
         [0019]    Details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims. 
     
    
     
       DRAWING DESCRIPTIONS 
         [0020]      FIG. 1  Starting a conference and creating a dynamic control unit and composite table of parameters 
           [0021]      FIG. 2  The Process of answering a call and gathering the conference parameters. 
           [0022]      FIG. 3  Parameter table change flow chart process. 
           [0023]      FIG. 4  Dynamic control unit process. 
           [0024]      FIG. 5  Disconnect Process for Endpoint or Dynamic Control unit 
           [0025]      FIG. 6  Endpoint Video And Audio Transmit Control Process 
           [0026]      FIG. 7  Endpoint Video And Audio Receive Control Process 
           [0027]      FIG. 8  Screen images of user interface text based 
           [0028]      FIG. 9  DCU and endpoint table structure for fixed and variable parameters 
           [0029]      FIG. 10  A rail road diagram of the signaling for a conference 
       
    
    
     DETAILED DESCRIPTION 
       [0030]    The Dynamic Virtual Multipoint Control Unit (DVMCU) is comprised of various modules, which will be described in the detail. In some embodiments not all modules will be present in all endpoint devices. The determinations of which modules are present in some embodiments are under the control of the resources of the endpoint device or which modules the purchaser of the invention selects. The module described in the process will be represented by the abbreviated acronym: End-Point Idle Module (EPIM). 
         [0031]    Before a conference is started the endpoints may be in an idle state and may be performing some other procedure not related to video conferencing such as in the place of a set top box displaying some form of television. A conference may be created when an initiator selects an endpoint device to input the participants, configure the video display and the audio selection or selects a preconfigured videoconference format. When the input is complete a dynamic control unit is created ( 101 ). 
         [0032]    If the initiator of the conference is not at an Endpoint with a Dynamic Control Module enabled ( 102 ), the remaining participants may be queried ( 108 ), should there not be an endpoint that has a Dynamic Control Module (DCM) enabled; the conference is canceled ( 109 ). 
         [0033]    The first endpoint with an enabled DCM may be selected and a temporary DCU may be created, the temporary DCU proceeds with the initialization of the conference ( 103 ). 
         [0034]    Should the initiator be at an endpoint or device that has a DCM and it is enabled ( 102 ), the initiator is the temporary (DCU) and proceeds with the initialization of the conference ( 103 ). The temporary (DCU) invites the endpoint to join ( 201 ) the conference or waits for a fixed period of time for all the selected endpoints to connect to the conference. The conference video and audio parameters from the initiator are inserted in to the Composite Table of Parameters (CToP) and sent to all connected endpoints. The parameters from each endpoint are inserted into the (CToP) and are returned to ( 103 ) the temporary dynamic control unit (DCU). 
         [0035]    The collected parameters of each endpoint may be comprised of, the maximum frame rate and the resolution of each endpoint display. Determine the transmission topology for the media stream and determine if multicast or uni-cast along with Ipv4 and Ipv6 is available. From the resources of the endpoint determine if the endpoint can support the video parameters selected by the initiator. 
         [0036]    With this information the process ( 104 ) is transferred to the Dynamic Control Unit Idle Module (DCUIM} and a weighted value is assigned to each endpoint ( 104 ). The (DCU) with the highest weighted value is selected as the primary (DCU) ( 105 ). The (DCU) builds the (CToP) and transmits the (CToP) to all the participating endpoints ( 106 ). The conference flag is set in the (CToP) and the conference is started ( 107 ). 
         [0037]    When an endpoint device is not in a conference, the end-point may be in the idle state. The endpoint device receives an invite to join (EPIM) a conference ( 201 ); the endpoint device determines whether it is available to join the conference ( 202 ). 
         [0038]    The endpoint has the option to refuse the invite by setting the endpoint in the do not disturb mode. If the endpoint device is not available the endpoint device refuses the call ( 205 ) and returns to the idle state ( 201 ). If the end-point is available ( 202 ), the endpoint device sends the login and the password to the dynamic control unit ( 203 ). The login and password may be accepted. When the endpoint is accepted, the endpoint collects all the base parameters ( 204 ). 
         [0039]    The base parameters may be comprised of the transit times to all endpoint and the topology to all endpoints and the bandwidth of the link from one endpoint to all other endpoints. The resources of the endpoint are inserted in the (CToP) and the updated table (CToP) is transmitted to the DCU for completion ( 204 ). The conference flag is set and control is returned to the dynamic control unit ( 103 ). 
         [0040]    All endpoints in an ongoing conference are in the Endpoint Conference Loop (EPCL) and monitor their respective local parameters or wait for a new composite table ( 301 ) to implement a change in the conference. If the change is a request for a keep-alive response the keep alive module ( 302 ) responds with an acknowledgement and returns to the idle state ( 301 ). If a change comes from the local endpoint device the local table is updated ( 303 ) the process is transferred to process ( 308 ), the updated Composite Table of Parameters table is sent to the DCU and the process returns to the idle state process (EPCL). 
         [0041]    A new composite table is generated by the DCU and distributed to all the endpoints ( 304 ). The Composite Table of Parameters is checked to see if the update is a disconnect request ( 305 ). If the change in the (CToP) is a disconnect, then the update is sent to the Endpoint Disconnect Module (EDCUDM) ( 305 )  FIG. 5  ( 501 ) to determine if the change is from an endpoint or from the current DCU. If the change is not a disconnect request ( 305 ) then the change is implemented ( 306 ). The update is an Audio or a Video change, the new configuration is sent to the Audio and Video Transmit Module (AAATM) for implementation. The change is implemented the flow returns to the EPCL module  306   
         [0042]    The request tier change ( 305 ) is a request to disconnect from the conference, the disconnect is processed by module  307  when the process is complete control is returned to process ( 308 ). The modified table is sent to DCU and the process returns to the idle state ( 301 ). 
         [0043]    When a conference starts should the endpoint device be incapable of supporting a (DCU), some endpoints may be devices without the resources to support a (DCU), provisions in the application provide for moving the (DCU) to a capable device. The participants of the conference are queried and the first to respond that is Dynamic Control Module is designated the temporary (DCU). A call from  FIG. 1  ( 104 ) is made to the Dynamic Control Unit Module ( 401 ). 
         [0044]    Before a conference is started a Dynamic Control unit must be created. The in conference process ( 402 ) determines if the request is for selection of DCU or the conference is started, if this is for the selection of a DCU. The process ( 403 ) determines if this endpoint device is DCU enabled and not in the “Do Not Disturb” mode. Should the endpoint device be in the do not disturb or not be a DCU enabled then return to the calling process ( 404 ) and exit. 
         [0045]    As part of its functions, the (DCU) qualifier module ( 405 ) sets a value for the topology based on the availability of multi-cast. A value is calculated for the bandwidth and the transmission times of the media, with the variation in times added as a factor. A value is calculated for the device resources and value is calculated for the configuration specified by the initiator. These data values are inserted in to the composite table of parameters for each endpoint and stored in the local Composite Table of Parameters. 
         [0046]    If the response from process ( 406 ) is an acknowledgement for the keep-alive signal then return yes and exit. Do nothing after the first valid response ( 407 ). Should the response be for a configuration change ( 408 ), is device the primary ( 409 ) Dynamic Control Unit then store the Composite Table of Parameters. Send the updates table to all participants. Not the primary DCU ( 410 ) store table and exit. 
         [0047]    A request for disconnect from the composite table of parameters is receive  FIG. 3  ( 307 ). A disconnect can originate from three or more sources ( 502 ). The first source may be from the controlling DCU ( 503 ) or from the endpoint device failing to respond to the keep alive ( 504 ) the next possible reason for a disconnect is from the endpoint ( 505 ). The Endpoint disconnect request is processed by ( 505 ). The Composite Table Of Parameters is updated and sent to the primary (DCU) ( 507 ) and return to the idle state  FIG. 3  ( 301 ). 
         [0048]    When an endpoint device fails to respond to the keep-alive signal after a defined period of time, the disconnect of the failing unit is processed by ( 504 ). The Table of Parameters is updated and control is transferred to module ( 507 ). The new table is sent to the controlling DCU for processing and the module returns control to  FIG. 3  ( 301 ) 
         [0049]    The designated DCU needs to disconnect, the request is processed by module ( 503 ). The next eligible Endpoint Dynamic Control Module with the highest weighted value is selected to be the new (DCU) and a new DCU is selected, the process is transferred to module ( 507 ). 
         [0050]    The process ( 507 ) transmits the updated composite table to all endpoints, should the disconnect be the current primary DCU, notify the new DCU of the transfer of control. The process transfers control to the endpoint conference loop.  FIG. 3  ( 301 ) 
         [0051]    The control of the Video and Audio streams starts in process ( 601 ) where a call from  FIG. 3  ( 305 ) with a new Composite Table of Parameter is received. A determination is made whether the change is the change video, audio or both. 
         [0052]    Should the change be in the video process, determine if the process ( 602 ) in the CToP is for this endpoint, should the CToP not contain a change for this endpoint does nothing and return to the Calling process. 
         [0053]    For a local video change process ( 603 ) prepares the video media for transmit to the designated endpoints. The CToP will determine if the media stream may be encoded or not and may determine its position in the video display. 
         [0054]    Process ( 604 ) controls the transmit topology; If the media is a controlled stream then process ( 605 ) will determine when the stream is transmitted. 
         [0055]    If the stream is a continuous transmit stream the process in ( 608 ) controls the transmission of the media. 
         [0056]    The determination whether the audio change is for the local endpoint is process ( 606 ). If the change is not for the local endpoint them exit. 
         [0057]    If the audio change is for the local endpoint then proceed to process ( 607 ) and prepare audio for transmit and transfer control to process ( 608 ). 
         [0058]    Should the endpoint device be in a commercial collaboration or social gaming site, control the refresh rate and synchronize the media transfer with the requirement of the receive media buffers ( 608 ). 
         [0059]    Upon the reception of the media stream the process for the video ( 702 ) may begin with the decoding of the stream. The stream is synchronized with the master timing chain. The media may be stored ( 703 ) prior to display to compensate for variations in transit times. The media may be sent to display device based upon the display criteria in the composite table of parameters. The display will use the master timing signal to coordinate the display and the audio synchronization ( 704 ). 
         [0060]    The audio stream may begin with decoding the stream ( 705 ). After processing the audio the component will be stored to compensate for variations in transmission ( 706 ). When required the data will be transferred to the output process ( 708 ). The master timing signal synchronized with a master timing source may be used to coordinate the delivery of media. 
         [0061]    Various implementations of the systems and techniques described here may be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits) or in computer hardware, firmware, software, or combinations thereof and be included in the devices. With the advent of intelligent peripherals the workload of the conference, the coding and encoding of the media streams will be performed by the new intelligent peripherals 
         [0062]    The user interface as show depicts a text type display as used in computer system, the display may also be in the form of a semi-graphical interface as used in the display of some television set top box&#39;s or may be in the form of a full graphical interface as used in today&#39;s computer system displays. 
         [0063]    At the user request to initiate a conference, the user interface displays the participant selection screen ( 801 ). The request can be implemented using a remote control on a cable box or set top box. 
         [0064]    A keyboard or mouse in a computer or computer like device can also implement the request. The initiator is offered the option to input the participants or use an existing list stored in the local DVMCU or is a remote location ( 802 ). After selecting to manually input ( 803 ) the list or select from a stored list, the initiator is presented with the option screen ( 804 ). The conference parameters are set. When all the endpoints are in or canceled, the composite list is complete and sent to all the connected endpoints. 
         [0065]    When a call to join a conference is displayed on the endpoint display device  805 , the login screen  806  is required to join a conference; you are allowed fixed number of tries to join the conference after the fixed number of tries is exceed the endpoint will have to be reset from the initiator. The conference video display can be modified  807 , the format will be modified to fit the display, if any one display can&#39;t support the modified format, and it will display the standard thrmat. A built in web interface allows the system to support social gaming ( 806 ) or commercial collaboration ( 807 ) 
         [0066]    The three device tables, The “User Created Parameters Table” and “The DCU Created Parameters Table “and “The Endpoint Parameters Table” are combined into the “Composite Table of Parameters”. The composite table controls every aspect of a conference. The user created the basic operating mode of the conference. The addition of the “Endpoint Table” sets the base condition of the conference. Once configured the composite is sent to all the endpoints 
         [0067]    The user selects an endpoint to input the parameters for a conference using the set top box remote control device or a computer device, keyboard or mouse. The user sets the conference ID, login and the conference password along with the list of participants. This conference configuration and participant list may be input directly by the user or it may be stored in the endpoint, the list may also be stored in an independent device in or out of the network. It may be and independent database server. 
         [0068]    The initiator may also select the conference display format, the format may be selected from a group of included or default display formats or may be additional configurations available. 
         [0069]    The conference voice parameters may be input by the user or a set of default parameters may be used in a specific display format. The audio mix is the number of endpoint audio streams combined into the audio output at all locations. The time parameter may be the time an audio level must exceed the threshold level set in the composite table of parameters for each endpoint to cause a switch in the display configuration. 
         [0070]    An Endpoint Device may be a desktop or laptop with the web capabilities as part of the native operating system, with this capability the display embodiment of the invention allows for the availability of a WEB Browser and a web server internal to the endpoint device, the addition of social gaming ( 902 ) or commercial collaboration ( 903 ) is part of the embodiment of the invention. 
         [0071]    The Dynamic Control Unit Module receives the parameters for all the endpoints participating in the conference, which may or may not be in the audio or video portion of the conference but just may be used as a temporary device. Using this information the DCU calculates ( 904 ) a weighted value for each endpoint to be used in the selection of the primary Dynamic Control Unit. The data used may be comprised of the local resources or the presence at the endpoint of intelligent peripheral devices and the topology of the network, with endpoint being the DCU. 
         [0072]    The DCU may periodically send to each endpoint device a signal to determine if the endpoint device is connected. This signal is known in the industry as a keep-alive signal. A response from the endpoint device is an indicator of the presence of the endpoint ( 905 ). The relative response time may be used for network transmission health and for future calculations of network topology. The transmission parameters may be comprised of the delay times between all the endpoints and all other participating endpoints. The variation in delay times from all endpoints, the endpoint transfer mode is dictated by the network parameters and the display format ( 906 ). The transmission parameters may be comprised of the availability of multicast or uni-cast topology, the transmission rate between the local endpoint and all the other endpoints and the layer three protocols being used in the topology. 
         [0073]    The resources fiom the endpoint device may be comprised of the CPU clock rate, number of cores, memory, the video conferencing facilities such as the video and audio peripherals ( 907 ), the presence of hardware or software video and audio compression facilities. 
         [0074]    At the start of the conference after the invite or connection, the local audio levels are recorded at each endpoint; once the conference is started the local level is monitored and compared to the current level in the composite table of parameters for the audio configuration ( 908 ). If the local level exceeds the threshold and is at a level to change the configuration, the updated table is sent to the DCU for processing. 
         [0075]    The topology of the network for a particular endpoint device may not allow some of the display formats; therefore a modification of the display may be necessary ( 909 ). 
         [0076]    Endpoints may be non-interactive participants in the conference and are only participating in a streaming mode ( 910 ). The Endpoints video capabilities are calculated and a determination of a participants being an interactive or a uni-directional recipient of the conference. 
         [0077]    During different phases of the conference, the Composite Table of Parameters may be in different states in a process ( 911 ). The states may be dynamically stored and modified as the states of the conference change. 
         [0078]    This embodiment of this invention may not be compatible with various video conferencing protocols; it may support various gateways into legacy systems ( 912 ). 
         [0079]    Case one describes a call refusal ( 1001 ). The called endpoint can be in the do not disturb mode or refuses the call via the remote control or keyboard device. The ringing will continue a fixed number of times before the DCU declares the endpoint unavailable. 
         [0080]    Case two describes connecting a call ( 1002 ). The receiving endpoint responds to the inbound ringing by sending a connection response. After a connection is established the DCU sends the initial conference parameters to the endpoint as shown in  FIG. 2  ( 204 ). The endpoint constructs the local parameters and sends the new table of parameters to the DCU. 
         [0081]    Case three describes when a participant is in an ongoing conference and fails to respond to the keep alive. The DCU disconnects the endpoint and updates the table to reflect the change in participants. The DCU sends the updated table to all the connected endpoints. 
         [0082]    Case four describes when an endpoint disconnects from a conference. The endpoint sends to the primary DCU a formal disconnect signal. The DCU acknowledges the request for disconnect. The DCU updates the parameter table and sends it to the remaining connected endpoints. 
         [0083]    Case five describes creation of a conference. Initiated by a user on a qualified device, the device displays the necessary input by the initiator. Once all the parameters are input into the initial DCU table the sequence starts by the DCU sending the start parameters. The endpoint inserts its basic parameters and sends them back to the DCU. The DCU then sends the finished composite table of parameters to all the connected endpoints. The conference is started. 
         [0084]    Case six describes the ending of a conference. When the conference has expired by fixed time limit or only one participant is connected, the DCU sends a disconnect signal to all the remaining connected endpoints and proceeds to do internal house keeping and allows the endpoint device to return to the not in a conference idle state.