Patent Abstract:
A data networking system and method which allows efficient use of bandwidth for data streams such as video and audio. This invention allows network nodes to dynamically identify changing network conditions which are typical on wireless and power line networks. The system and method dynamically adapt to the changes which affect network bandwidth by changing compression rates, compression types, audio/video quality, motion masks, throughput for specific connections, or mass storage of data streams until the network is capable of sending the data. The result is an improved system that requires little or no user intervention as network conditions change.

Full Description:
BACKGROUND OF INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     This invention relates to electronic communications systems. More specifically this invention relates to data bandwidth management of electronic communications systems.  
         [0003]     2. Description of Related Art  
         [0004]     A variety of schemes have been used to provide reliable and efficient transportation of streaming data across a network. Typically, these schemes employ techniques that assume fixed bandwidth such as selectable compression ratios, selectable video resolution, selectable video frame rates, selectable audio quality etc. In addition, generally these schemes are typically designed for controlling bandwidth between two nodes, and not multiple nodes within a network. Moreover, these schemes are not typically designed for dynamically controlling and managing bandwidth for multiple streaming devices across networks such as power line or wireless networks where network conditions are potentially constantly changing.  
         [0005]     Although these references may not constitute prior art, for general background material, the reader is directed to the following United States Patent Documents each of which is hereby incorporated by reference in its entirety for the material contained therein: U.S. Patent and Patent Application No. 2003/0107648, 2003/0043908, 2003/0112335, 2003/0039390, 2002/0158991, 2002/0018450, U.S. Pat. Nos.  6 , 611 , 503 ,  6 , 570 , 606 ,  6 , 522 , 352 ,  6 , 507 , 672 ,  6 , 337 , 928 ,  6 , 323 , 897 ,  6 , 205 , 499 ,  6 , 118 , 817 ,  6 , 091 , 777 ,  6 , 091 , 777 ,  6 , 088 , 360 ,  5 , 926 , 209 ,  5 , 793 , 416 ,  5 , 729 , 535 .  
       SUMMARY OF INVENTION  
       [0006]     It is desirable to provide a system, for reliably sending streaming data across a network, which is efficient yet adaptable to changing network conditions.  
         [0007]     Therefore it is the general object of an embodiment of this invention to provide a bandwidth management system and method for changing compression parameters between a network node and a master node based on network conditions.  
         [0008]     It is an object of an embodiment of this invention to provide a bandwidth management system and method where data from one or more a data sources are compressed and/or the quality of the data source is changed based on network conditions from one or more network nodes and/or a master node.  
         [0009]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where the network conditions cause compression parameters to change can be, but are not limited to obstructions, RF interference, changing network impedance, impedance mismatches, RF harmonics, multipath effects, various channel fading effects, network traffic volume, conducted noise, induced noise, self induced noise, friendly noise, intermodulation products, and the like.  
         [0010]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method for decompressing the data that was compressed by the compression module.  
         [0011]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where the data source is a video source, an audio source, a computer data source, control data, a telephony source, and the like.  
         [0012]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where an attribute of a data source is controlled from a data interface where the attribute can be brightness, contrast, hue, white balance, saturation, luminance decimation filtering, n tap interpolation horizontal scaling, n tap interpolation vertical scaling, and the like.  
         [0013]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where the protocols that are used can be RTSP, RTP, RTCP, HTTP, ASF, FTP, DDNS, NTP TFTP, TCP/IP, UDP, DHCP, DNS, SMTP, HTML, LDAP, SNMP and SNTP.  
         [0014]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where a motion detector is used to detect changes in a video source.  
         [0015]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where the motion detector can use any of the following detection types: user determined, automatically learned, defined as geometric shapes, defined as non-geometric shapes, defined by regions, defined by object size, defined by object speed, defined by object micro movements, defined by object macro movements and the like.  
         [0016]     It is a further object of an embodiment of this invention to provide access to a data source connected to a data interface where the data source can be a PAL composite, PAL component video, NTSC composite video, NTSC component video, S-video, serial, I 2 C, SPI, DVI, Digital Camera Interface, CCIR656, CCIR601, UTI656, UTI601, Parallel, and the like.  
         [0017]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where mass storage is used in a network node and/or master nodes to store off data from a data source based on network conditions.  
         [0018]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where network nodes and/or master nodes use a type of mass storage such as a hard disk, a flash memory, a random access memory, a floppy disk, and the like to store off data from a data source.  
         [0019]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where the data source is encrypted as it is sent over a local and/or external network.  
         [0020]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where the encryption can be DES, Triple DES, AES, RC4, RC5, 56 Bit, 64 Bit, 128 Bit, RSA, and the like.  
         [0021]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where network nodes and master nodes can be administered using a web server.  
         [0022]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where an application program uses data from a data source.  
         [0023]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where an external network is connected to the system for administering, viewing and/or listening to data sources.  
         [0024]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where the external network can be the Internet, a Local Area Network (LAN), a Wide Area Network (WAN), and the like.  
         [0025]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where the compression parameters are MJPEG, MPEG1, MPEG2, MPEG4, MPEG7, MPEG10, H.263, H.264, H.323, MP3, AC-3, wavelet compression, compression with post smoothing techniques, and the like.  
         [0026]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where the local network is a power line network, a wireless network, an acoustic network, a wired network, an optic network and the like.  
         [0027]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where a device is connected to a master node which can be a personal computer, a telephone, an e-mail system, a monitor, a Digital Video Recorder, a PDA, and the like.  
         [0028]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where a device is connected to a master node via a residential gateway, which can be a personal computer, a telephone, an e-mail system, a monitor, a Digital Video Recorder, a PDA, and the like.  
         [0029]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where a signal is generated based on changes in the data source and where the signal is sent in the form of an e-mail, a text message, a voice message, a lighting control message, a video control message, a home control message, an audio control message, and the like.  
         [0030]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where a temperature is read from a temperature sensor from a master node.  
         [0031]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where changing of the compression parameters is based on a constant network load.  
         [0032]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where the changing of the compression parameters is based on a constant media stream rate above a threshold.  
         [0033]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where the changing of the compression parameters is based on a constant media stream rate above a threshold with intermediate streaming.  
         [0034]     It is a further object of an embodiment of this invention to provide a bandwidth management system and method where the compression parameters are controlled in a network without a master node.  
         [0035]     It is a further object of an embodiment of this invention to provide video camera system which changes compression rates based on network conditions.  
         [0036]     It is a object of an embodiment of this invention to provide a data address controller system which allows users to authenticate and access data streams over an external network.  
         [0037]     It is a further object of an embodiment of this invention to provide a data address controller system where the address controller contains a transaction system and/or a subscription system with a database for storing transaction and/or subscription information.  
         [0038]     These and other objects of this invention will be readily apparent to those of ordinary skill in the art upon review of the following drawings, detailed description, and claims. In the preferred embodiment of this invention, the system and method makes use of a novel mechanism for detecting the required bandwidth for each data source on a network and dynamically changing the compression scheme/type and the parameters associated with compression such as such as compression ratios, video resolution, video frame rate, audio quality, applying a motion mask and/or motion detection, mass storage and/or buffering, and the like in relation to changing network characteristics. The result is better bandwidth management/data quality without user intervention as network conditions change. 
     
    
     BRIEF DESCRIPTION OF DRAWINGS  
       [0039]     In order to show the manner that the above recited and other advantages and objects of the invention are obtained, a more particular description of the preferred embodiments of this invention, which is illustrated in the appended drawings, is described as follows. The reader should understand that the drawings depict only present preferred and best mode embodiments of the invention, and are not to be considered as limiting in scope. A brief description of the drawings is as follows:  
         [0040]      FIG. 1  is a block diagram of the present preferred bandwidth allocation network with a network node and master node.  
         [0041]      FIG. 2  is a block diagram of the present preferred bandwidth allocation network with two network nodes and a monitor connected to the master node.  
         [0042]      FIG. 3  is a block diagram of the present preferred bandwidth allocation network with two network nodes and a personal computer with a master node.  
         [0043]      FIG. 4  is a block diagram of the present preferred bandwidth allocation network with two network nodes which have multiple data sources, and a master node within a Digital Video Recorder (DVR) which communicates over an external network to an address controller and a PC.  
         [0044]      FIG. 5  is a block diagram of the present preferred bandwidth allocation network with a Digital Video Recorder with a master node which controls a variety of data sources on a local network.  
         [0045]      FIG. 6  is a block diagram of the present preferred bandwidth allocation network with multiple network nodes connected to multiple master nodes which controls various control systems within a network, and communicates over an external network to various devices and system including an address controller and a PC.  
         [0046]      FIG. 7  is a flow diagram of the present preferred method of a master node allocating bandwidth with a constant network load.  
         [0047]      FIG. 8  is a flow diagram of the present preferred method of a master node allocating bandwidth with a constant media stream rate above threshold.  
         [0048]      FIG. 9  is a flow diagram of the present preferred method of allocating bandwidth with a constant media stream rate with no master node for allocating bandwidth.  
         [0049]      FIG. 10  is a flow diagram of the present preferred method of a master node allocating bandwidth with a constant network load with possibility for intermittent streaming such as introduced by mass storage and/or motion detection.  
         [0050]      FIG. 11  is a flow diagram of the present preferred method of a master node allocating bandwidth with a constant media stream rate above a threshold with the possibility of intermittent streaming such as introduced by mass storage and/or motion detection.  
         [0051]      FIG. 12  is a flow diagram of the present preferred method of allocating bandwidth with a constant media stream rate with no master node for allocating bandwidth with the possibility of intermittent streaming such as introduced by mass storage and/or motion detection.  
         [0052]      FIG. 13  is a flow diagram of the present preferred method of selecting a master node or control node configuration.  
         [0053]      FIG. 14  is a flow diagram of the present preferred method of operating as a network node under control of a master node.  
         [0054]      FIG. 15  is a block diagram of the present preferred bandwidth allocation network with two network nodes and a monitor connected to a Digital Video Recorder with an attached monitor.  
         [0055]      FIG. 16  is a block diagram of the present preferred bandwidth allocation network with two network nodes and a Digital Video Recorder with a variety of locally attached devices with an external network connection.  
         [0056]      FIG. 17  is a block diagram of the present preferred bandwidth allocation network with two network nodes, and a residential gateway which is connected to an address controller and a PC.  
         [0057]      FIG. 18  is a flow diagram of the present preferred method of adding, authenticating and providing access to a bandwidth allocation system using an address controller. 
     
    
       [0058]     Reference will now be made in detail to the present preferred embodiment of the invention, examples of which are illustrated in the accompanying drawings.  
       DETAILED DESCRIPTION  
       [0059]      FIG. 1  is a block diagram of the present preferred bandwidth allocation network with a network node  104  and master node  118 . Data of various types such as a video source  108  which can be a video camera, digital camera and the like and/or an audio source  100  such as a microphone, MP3 player, and/or a control data  105  and the like is received by the network node  104 . The data from the audio source  100  and/or the video source  108  and/or the control data is input into the data interface  101 . The data interface  101  can accept data in any of a number of general, standard, and proprietary formats including but not limited to general purpose I/O (GPIO), general purpose parallel, general purpose serial, SPI, I 2 C, PAL composite, PAL component video, NTSC composite video, NTSC component video, S-video, DVI, various digital camera interfaces, CCIR656, CCIR601, UTI656, UTI601, and the like. The data interface  101  also passes data to the processing element  125  using any one of a variety of electrical and/or register, and/or DMA transfer, and/or semaphore transfer, formats. The processing element  125  performs the function of controlling the modules within the network node  104  including the data interface  101 , the compression module  103 , the motion detection module  102 , the encryption/decryption module  115 , the bandwidth adjustment module  133 , the web server module  122 , and the remote address client module  127 , each of which can be hardware or software based functions. The processing element  125  also servers to perform higher level control functions and protocols in communication with devices or elements connected to or networked to the network node  104 . The data interface module  101  is controlled by the processing element  125  and is used to select which data source(s)  100 ,  105 ,  108  will be processed. Other data sources such as computer data sources can also be fed into the data interface  101 . The processing element  125 , through the data interface  101 , can control the audio source  100  and/or the video source  108  including but not limited to such parameters as brightness, contrast, hue, saturation, luminance decimation filtering, white balance, horizontal interpolative scaling, vertical interpolative scaling, volume control, flow control. In addition, the processing element  125  can insert a time stamp or watermark into the data stream. The processing element  125  controls and formats the data communicated over a local network through the local network interface  107 , using but not limited to any one or more protocols such as RTSP, RTP, RTCP, HTTP, ASF, FTP, DDNS, NTP TFTP, TCP/IP, UDP, DHCP, DNS, SMTP, HTML, SNTP, LDAP, SNMP, and the like. For video data received from the data interface  101  and controlled by the processing element  125 , the compression module  103  can perform various forms of data compression which directly or effectively reduce the data rates such as the application of standard and/or non-standard algorithms and/or techniques similar in function to MJPEG, MPEG1, MPEG2, MPEG4, MPEG7, MPEG10, H.263, H.264, H.323, Windows Media Video 9 (WMv-9), wavelet compression, and compression with post smoothing techniques, or adjust any of a variety of parameters associated with the said algorithms or techniques, or adjust the video resolution of each video stream, or adjust the frame rate of each video stream, based on network bandwidth controlled through the bandwidth adjustment module  133 . In addition, the compression module  103  can be used to perform other effective compression techniques (reduction in data) such as change color content or color space parameters. For audio sources  100 , the compression module  103  can change the quality of the signal from the audio source  100  based on network bandwidth, compression rates, user input and the like. The data received from compression module  103  is processed by the processing element  125 . Video sources  108 , controlled and processed by the processing element  125 , are processed by any of several motion detection algorithms and/or techniques utilized by the motion detection module  102  to determine motion between frames and/or groups of frames. Motion detected by the motion detection module  102  can be compared to a motion mask such that certain predetermined changes can be ignored. The motion mask can be applied wherein the mask parameters can use one or more of the follow methods, user determined, automatically learned, defined as geometric shapes, defined as non-geometric shapes, defined by region, defined by object size, defined by object speed, defined by object micro movements, and defined by object macro, or the like. The motion detector  102  detects changes in the current video image and sends video data to be stored in mass storage  109  or mass storage  126  over the local network, or for viewing over the network, or for viewing over the external network, when motion has been detected. The sent video data can include a certain amount of data prior to or after the detected motion instead of the continuous video stream thereby reducing the amount of data sent from the video source  108 . A compression technique is selected by the compression module  103 . Data from both the video source  108  and/or the audio source  100  are compressed using the selected compression algorithm and/or combined techniques. The compression algorithm and/or combined techniques can be dynamically selected based on system needs. Different audio/video compression algorithms and/or techniques can be selected based on bandwidth requirements, user input, and the like. The data can be encrypted using the encryption/decryption module  115 . The encryption/decryption module  115  can support various types of encryption such as DES, Triple DES, RSA, PK1, RC4, RC5, AES, 128 bit, 64 bit, 56 bit, and the like. Different types of encryption or no encryption can be selected dynamically in the encryption/decryption module  115  if the system requires. The bandwidth adjustment module  133  is used to communicate over the network and allocate bandwidth based on network conditions such as, but not limited to RF interference, changing network impedance, impedance mismatches, RF harmonics, multipath effects, various channel fading effects, network traffic volume, conducted noise, induced noise, self induced noise, friendly noise, intermodulation products, and the like for the data streams from the video source  108 , the audio source  100 , and the control data  105 . If network and/or system conditions are such that it is not required or optimal to send data or based on other conditions including user options, the data can be temporarily stored in mass storage  109 . The types of encryption, compression, resolution, audio quality, data sources, and the like can be administered by input from the web server  122  or from the remote monitoring station  120 . The data streams  100 ,  105 ,  108 , can be networked to an address controller  131  which communicates with the remote address client  127 . The communication between the remote address client  127  and the address controller  131  constitute a service which administers IP addressing and other administrative information allowing users to securely access their data streams  100 ,  105 ,  108  remotely. The compressed and/or encrypted data from the video source  108  and/or audio source  100  is sent on a local network interface  107  and an antenna  106 , coupling device, over a wireless or wireless-like local network  110 . The master node  118  can be wholly or partially incorporated into a PC, a set top box, a residential gateway, a digital video recorder (DVR), a person video recorder, a video server, a living room PC, a networking device, or stand alone. The local network interface  107 , in conjunction with the processing element  125  and the bandwidth adjustment module  133  can sense network conditions on the local network  110 . The type of local network  110  can be, but is not limited to a wireless network, a power line network, a wired network, an optic network, an acoustic network, and the like. Generally, a power line network is a network over the AC power lines in a building, facility, home and the like. The data is received on a master node  118  at the antenna  111  or coupling device and the local network interface  112 . The local network interface  112  in conjunction with the processing element  124  and bandwidth adjustment module  132 , within the master node  118  can sense network conditions on the local network  110 . The processing element  124  performs the function of controlling and/or encompassing the modules within the master node  118  including the decompression module  114 , the encryption/decryption module  113 , the bandwidth adjustment module  132 , the web server module  121 , the remote address client module  128 , the application program  116 , the TV/monitor encoder  129 , and the external network interface  117  each of which can be hardware or software based functions. The processing element  124  also servers to perform higher level control functions and protocols in communication with devices or elements connected to or networked to the master node  118 . The processing element  124  controls and formats and receives data communicated over the local network similar and complimentary to the network node processing element  125 . Stream video and/or audio stream data received by the processing element  124  is decompressed using the decompression module  114  and algorithms and/or techniques similar to the compression module  103 . Transmitted/Received data processed through the process element can be encrypted/decrypted using the encryption/decryption module  113 . The bandwidth adjustment module  132  communicates over the local network to determine the needs of each of the data streams  105 ,  100 ,  108  and the data streams of other network nodes and how much bandwidth is available to each network node  104  to determine the proper compression parameters such as ratios, frame rates, compression types, and the like. The TV/Monitor encoder  129  can accept data from a video stream  108  and/or the mass storage  109 ,  126  and display the information on the monitor  130  under control of the processing element  124  and/or under the control of the application program  116 . The application program  116  can perform as a digital video recorder (DVR) receiving or routing video data streams from any network node and/or to/from mass storage in conjunction the processing element  124  and other master node modules such as the decompression module  114 , the TV/monitor encoder  129 , and also receiving flags from the motion detection module  102 . The processing element  124  can send the data to the application program  116  and/or can send the data to mass storage  126 . The application program  116  in conjunction with the web server  121  and remote address client  128 , sends the data to the external network interface  117 , which sends the data over an external network  119  to a remote monitoring station  120 . The external network  119  can be, but is not limited to, the Internet, a Wide Area Network (WAN), a Local Area Network (LAN) and the like. The master node  118  can be administered by the web server  121  and/or the remote monitoring station  120 . Access to the data sources  105 ,  100 ,  108 , along with mass storage data can be accessed by the remote monitoring station in conjunction with the address controller  131  and the remote access client  128 . The address controller  131  is a service that allows users of the system to access and view the data streams  100 ,  105 ,  108 , or mass storage  109 ,  126 , data over the external network  119  by communicating to the address controller  131 . The processing element  124  can communicate with and/or control and/or exchange data with an external unit  135  such as, but limited to, a set top box, an external DVR, and external processor, an external video processor, and the like. The processing element  124  can communicate with an expansion interface  134  which is connected to an expansion unit  135 . This allows other devices to be connected to the master node  118 .  
         [0060]      FIG. 2  is a block diagram of the present preferred bandwidth allocation network with two network nodes  202 ,  205  and a monitor  208  connected to the master node  207 . Data from an audio source  200  and a video source  201  are connected to a network node  202  which is connected to a local network  206 . Data from a second audio source  203  and a second video source  204  are connected to a second network node  205  which is connected to the local network  206 . Both network nodes  202 ,  205  communicate over the local network  206  to a master node  207 . The master node  207  can also perform the same function as a network node  202 ,  205 . The master node  207  controls how much bandwidth is allocated, the types of compression, the compression parameters, and the data rate reduction parameters, for all the data sources  200 ,  201 ,  203 ,  204  based on the available bandwidth of the local network  206 , system settings, and user settings. The difference between a master node  207  and a network node  202 ,  205  is that the master node  207  can control bandwidth for all data sources on the local network  206 , where the network node  202 ,  205  can only control bandwidth for the data sources  200 ,  201 ,  203 ,  204 , connected to the network node  202 ,  205 . The data from the video and audio sources  200 ,  201 ,  203 ,  204  are displayed/listened to on the monitor  208 . Although shown in this figure, with two network nodes, the concept of this invention is not limited thereto.  
         [0061]      FIG. 3  is a block diagram of the present preferred bandwidth allocation network with two network nodes  302 ,  305  and a personal computer with a master node  307 . Data from an audio source  300  and a video source  301  are connected to a network node  302  which is connected to a local network  306 . Data from a second audio source  303 , a second video source  304 , and control data  308  are connected to a second network node  305  which is connected to the local network  306 . Both network nodes  302 ,  305 , communicate over the local network  306  to a master node inside of a personal computer  307 . The master node inside the personal computer  307  can also perform the same function as a network node  302 ,  305 . The master node in the personal computer  307  controls how much bandwidth is allocated, the types of compression, and the compression parameters, and the data rate reduction parameters, for all the data sources  300 ,  301 ,  303 ,  304 ,  308 , based on the available bandwidth of the local network  306 , system settings, and user settings. The data from the video and audio sources  300 ,  301 ,  303 ,  304 ,  308 , can be displayed on the personal computer  307 .  
         [0062]      FIG. 4  is a block diagram of the present preferred bandwidth allocation network with two network nodes  402 ,  405  which have multiple data sources  400 ,  401 ,  403 ,  404 ,  410 , and a master node within a Digital Video Recorder (DVR)  409  which communicates over an external network  408  to an address controller  412  and a PC  407  as well as to a monitor  411 . Data from an audio source  400  and a video source  401  are connected to a network node  402  which is connected to a local network  406 . Data from a second audio source  403 , a second video source  404  and a data source  410  are connected to a second network node  405  which is connected to the local network  406 . Both network nodes  402 ,  405  communicate over the local network  406  to a master node within a Digital Video Recorder (DVR)  409 . The master node in the DVR  409  can also perform the same function as a network node  402 ,  405 . The master node in the DVR  409  controls how much bandwidth is allocated, the types of compression, the compression rates, compression parameters, and the data rate reduction parameters, for all the data sources  400 ,  401 ,  403 ,  404 ,  410  based on the available bandwidth of the local network  406 , system settings, and user settings. The data from the video, audio, and data sources  400 ,  401 ,  403 ,  404 ,  410  can be sent from the master node within the DVR  409  over the external network  408  to a personal computer  407  for viewing or storage. The data from the video, audio, and data sources  400 ,  401 ,  403 ,  404 ,  410  can also be sent to the monitor  411  in communication with the master node  409 . The digital video recorder  409  is preferably connected to a medium for storage of data from the data source  410 , the audio sources  400 ,  403 , and the video sources  404 ,  401 . The Address controller  412  is a service or process which allows users access to the data streams  400 ,  401 ,  403 ,  404 ,  410  over the external network  408 .  
         [0063]      FIG. 5  is a block diagram of the present preferred bandwidth allocation network with a Digital Video Recorder  505  with a master node which controls a variety of data sources  500 ,  501 ,  502 ,  503  on a local network  506 . Data from a variety of sources  500 ,  501 ,  502 ,  503  is connected to a Digital Video Recorder with a master node  505 , which can be included a set top box located with a master node or a game box located with a master node or a living room personal computer with a master node so long as a DVR capability is present. The possible data sources include a set top box  500 , an audio source  501 , a video source  502 , and a digital camera  503 . The data from the data sources  500 ,  501 ,  502 ,  503 , can be sent over the local network  506  to any master node  505 ,  507 ,  508 ,  510 . The data from the data sources  500 ,  501 ,  502 ,  503 , can be displayed on the monitors  504 ,  509 ,  511 ,  508 .  
         [0064]      FIG. 6  is a block diagram of the present preferred bandwidth allocation network with multiple network  602 ,  605  nodes connected to multiple master nodes  621 ,  622 ,  610 , which controls various control systems within a network, and communicates over an external network  611  to various devices and systems including an address controller and a PC.  
         [0065]     Data from an audio source  600 , a video source  601 , and control data  624  are connected to a network node  602  which is connected to a local network  606 . Data from a second audio source  603  and a second video source  604  are connected to a second network node  605  which is connected to the local network  606 . Both network nodes  602 ,  605  communicate over the local network  606  to a residential gateway with a master node  631 . The residential gateway with the master node  631  controls how much bandwidth is allocated, the types of compression, the compression rates, the compression parameters, and the data rate reduction parameters, for all the data sources  600 ,  601 ,  603 ,  604 ,  624 , based on the available bandwidth of the local network  606 , system settings, and user settings. Data from a second master node  621  which has an attached monitor  616  can be used to monitor the data from the data streams  600 ,  601 ,  603 ,  604 ,  624 . A Digital Video Recorder with a master node  622  also has an attached monitor  617 . The Digital Video Recorder with a master node  622  receives input from a set top box  618 , an audio source  619 , and a video source  620 . The residential gateway with a master node  631  controls the flow of data from the data sources  600 ,  601 ,  603 ,  604 ,  624 ,  618 ,  619 ,  620 , connected to each network node  602 ,  605 ,  622 ,  621 , to the personal computer  613  or Personal Digital Assistant  632  which is connected to the residential gateway with a master node  631  over an external network  611 . Administration of network nodes and receipt of the data streams  600 ,  601 ,  603 ,  604 ,  624 ,  618 ,  619 ,  620 , can also be received on the locally attached personal computer  610  or on the locally attached Personal Digital Assistant (PDA)  630 . The external network  611  can be, but is not limited to the Internet, a Wide Area Network (WAN), a Local Area Network (LAN) and the like. The residential gateway with a master node  631  is also responsible for controlling other control systems which are attached to the local power line network  606 . Control systems such as lighting systems  607 , temperature sensors  608 , audible devices  609  such as speakers, bells, chimes and the like are connected to the local network  606 . The local network  606  may be a power line network. The residential gateway with a master node  631  can detect changes from a video source  601 ,  604 ,  620  and/or an audio source  600 ,  603 ,  619 , and turn on an audio device  609  and/or a lighting system  607  with an audio control signal or a lighting control signal. Input from a temperature sensor  608  can be used to detect and/or change the view of a video source  601 ,  604 , in order to observe fire, water damage, or other conditions. When the residential gateway with a master node  631  detects changes in data from a video source  601 ,  604 , an e-mail, can be sent over the external network  611  to an e-mail system  612  and/or e-mail recipient. The e-mail can also be sent over the local network  606  to an e-mail system attached to the local network  606 . Voice messages, text messages, can be sent from the residential gateway with a master node  631  over the external network  611  to a telephone/cell phone  614  based on conditions that occur on devices  600 ,  601 ,  602 ,  603 ,  604 ,  605 ,  607 ,  608 ,  609 ,  610 ,  630 ,  631 ,  618 ,  619 ,  620 , on local network  606 . Alerts or other information can also be sent from the residential gateway with a master node  631  over the external network  611  to the personal computer  613 . An address controller  623  is used to coordinate addressing in so that users can view/listen to the data streams/audio streams from the data sources  600 ,  601 ,  603 ,  604 ,  624 ,  618 ,  619 ,  620 , over the external network  611 .  
         [0066]      FIG. 7  is a flow diagram of the present preferred method of a master node allocating bandwidth with a constant network load. The process begins when the identity of the network nodes are determined  700  on the local network. The total available local network throughput capacity is determined  701  typically, though not exclusively by subtracting the overhead required to perform non-media streaming functions within the network from 100%. The network nodes capable of media streaming are identified  702 . Of those network nodes capable of media streaming, the network nodes which currently require local network bandwidth are identified  703 . Throughput capacity is measured  704  for each active media streaming connection. The throughput allocation (percentage of total network bandwidth) is determined  705  for each connection typically, though not exclusively by dividing total available network capacity by the number of active media streaming connections. The stream rate allocation is determined  706  for each active media streaming connection typically, though not exclusively by multiplying throughput allocation available to each connection (percentage) times throughput capacity from each connection times the network load compensation factor. The compensation factor is used to account for changes in available bandwidth within the network. The process checks  707  to see if it is time to look for changes in the connection throughput capacity. If it is time to check  707  for changes in the connection throughput capacity, the process measures  704  the throughput capacity for each active media streaming connection. Otherwise, if test  707  is no, the process checks  708  to see if it is time to look for changes in streaming media demand. If it is time to check  708  for changes in streaming media demand, the process identifies  703  the network nodes capable of media streaming which require local network bandwidth. Otherwise, if test  708  is no, the process checks  709  to see if it is time to look for changes in streaming media device configuration. If it is time to look for changes, the process identifies  702  those networks nodes capable of media streaming. If test  709  is no, the process checks  710  to see if it is time to look for changes in the local network configuration. If changes in the local network configuration need to be made in test  710 , the process identifies  700  all network nodes on the local network. Otherwise, if it is not time to look for changes in the local network configuration in test  710 , the process checks  707  to see if it is time to look for changes in connection throughput capacity. In alternative embodiments the calculations used in the various process determinations may be varied without departing from the concept of this invention. Although these steps are preformed in the designated order in the present embodiments, in alternative envisioned embodiments of this invention, the ordering of the steps can be varied significantly without departing from the concept of this invention.  
         [0067]      FIG. 8  is a flow diagram of the present preferred method of a master node allocating bandwidth with a constant media stream rate above a threshold. The process begins when the identity of the network nodes are determined  800  on the local network. The total available local network throughput capacity is determined  801  typically, but not exclusively by subtracting the overhead required to perform non-media streaming functions within the network from 100%. The network nodes capable of media streaming are identified  802 . Of those network nodes capable of media streaming, the network nodes which currently require local network bandwidth are identified  803 . Throughput capacity is measured  804  for each active media streaming connection. The process allocates  805  a predetermined stream rate to each active streaming connection whose measured throughput capacity is above a predetermined threshold. The process presently allocates  806  the remaining available network throughput capacity evenly among all active streaming connections whose measured throughput capacity is below a predetermined threshold. In alternative embodiments, the allocation network capacity need not be evenly divided among connections. The process checks  807  to see if it is time to look for changes in the connection throughput capacity. If it is time to check  807  for changes in the connection throughput capacity, the process measures  804  the throughput capacity for each active media streaming connection. Otherwise, if test  807  is no, the process checks  808  to see if it is time to look for changes in streaming media demand. If it is time to check  808  for changes in streaming media demand, the process identifies  803  the network nodes capable of media streaming which require local network bandwidth. Otherwise, if test  808  is no, the process checks  809  to see if it is time to look for changes in streaming media device configuration. If it is time to look for changes in the streaming media device configuration, the process identifies  802  those networks nodes capable of media streaming. Otherwise, if test  809  is no, the process checks  810  to see if it is time to look for changes in the local network configuration. If changes in the local network configuration need to be made in test  810 , the process identifies  800  all network nodes on the local network. Otherwise, if it is not time to look for changes in the local network configuration in test  810 , the process checks  807  to see if it is time to look for changes in connection throughput capacity. In alternative embodiments the calculations used in the various process determinations may be varied without departing from the concept of this invention. Although these steps are preformed in the designated order in the present embodiments, in alternative envisioned embodiments of this invention, the ordering of the steps can be varied significantly without departing from the concept of this invention.  
         [0068]      FIG. 9  is a flow diagram of the present preferred method of allocating bandwidth with a constant media stream rate with no master node for allocating bandwidth. The process begins when the network nodes are identified  900  which are capable of media streaming on the local network. The throughput capacity is measured  901  for immediate connections to other network nodes configured to accept streaming media. The process identifies  902  which streaming connections require local network bandwidth. The predetermined stream rate(s) are allocated  903  to each streaming connection whose measured throughput capacity is above a predetermined threshold or thresholds. The predetermined stream rate(s) are allocated  904  to each active streaming connection whose measured throughput capacity is below a predetermined threshold or thresholds. The process checks  907  to see if it is time to look for changes in the demand for streaming media. If it is time to look for changes in the demand for streaming media in test  907 , the process identifies  902  which active streaming media connections require local network bandwidth. Otherwise, if test  907  is no, the process checks  906  to see if it is time to look for changes in connection throughput capacity. If it is time to look for changes in connection throughput capacity in test  906 , the process measures  901  the throughput capacity for immediate connection to other network nodes configured to accept streaming media. Otherwise, if test  906  is no, the process checks  905  to see if it is time to look for changes in the streaming media network node configuration. If it is time to look for changes in the streaming media network node configuration in test  905 , the process identifies  900  those immediate network nodes capable of media steaming on the local network. Otherwise, if test  905  is no, the process checks  907  to see if it is time to look for changes in streaming media demand. In alternative embodiments the calculations used in the various process determinations may be varied without departing from the concept of this invention. Although these steps are preformed in the designated order in the present embodiments, in alternative envisioned embodiments of this invention, the ordering of the steps can be varied significantly without departing from the concept of this invention.  
         [0069]      FIG. 10  is a flow diagram of the present preferred method of a master node allocating bandwidth with a constant network load with possibility for intermittent streaming such as introduced by mass storage and/or motion detection. The process begins by identifying  1000  all network nodes on the local network. The total available local network throughput (the percentage available for media streaming) is determined  1001  presently, but not exclusively by subtracting the overhead required to perform non-media streaming functions within the local network from 100%. The network nodes capable of media streaming are identified  1002 . Of the network nodes capable of media streaming the process identifies  1003  which network nodes currently require local network bandwidth for active media streaming connections. The process measures  1004  throughput capacity for each active media streaming connection. The process checks  1005  to see if motion detection is selected and inactive at one or more video sources. This check  1005  is to see if the video stream has to be a constant stream. The present preferred embodiment checks for video sources, but can also check for audio or data sources and the like to see if the sources can handle non-constant rates. If motion detection is selected and inactive at one or more video sources in test  1005 , the process determines  1009  the throughput allocation for each connection in the current embodiment by dividing total available local network capacity by the number of active media streaming connections. The process determines  1010  the stream rate allocation for each active media streaming connection in the current embodiment by multiplying the throughput allocation available to each connection times the throughput capacity from each connection times one of several alternate network load compensation factors. Otherwise, if test  1005  is no, the process checks  1006  to see if mass storage is available and utilized at one or more video sources. If mass storage is available and utilized at one or more video sources in test  1006 , the process determines  1009  the throughput allocation for each connection in the current embodiment by dividing total available local network capacity by the number of active media streaming connections. The process determines  1010  the stream rate allocation for each active media streaming connection in the current embodiment by multiplying the throughput allocation available to each connection times the throughput capacity from each connection times one of several alternate network load compensation factors. Otherwise, if test  1006  is no, the process determines  1007  the throughput allocation for each connection in the current embodiment by dividing total available local network capacity by the number of active media streaming connections. The process determines  1008  the stream rate allocation for each active media streaming connection in the current embodiment by multiplying the throughput allocation available to each connection times the throughput capacity from each connection times the network load compensation factor. Test  1011  checks to see if it is time to look for changes in connection throughput capacity. If changes in the throughput capacity are required in test  1011 , the process measures  1004  through put capacity for each active media streaming connection. Otherwise, if test  1011  is no, the process checks  1012  to see if it is time to look for changes in the streaming media demand. If there are changes in the streaming media demand in test  1012 , the process determines  1003  which of the network nodes currently require local network bandwidth. Otherwise, if test  1012  is no, the process checks  1013  to see if it is time to look for changes in streaming media network node configuration. If there are changes in the streaming media network node configuration in test  1013 , the process identifies  1002  those network nodes capable of media streaming. Otherwise, if test  1013  is no, the process checks  1014  to see if it is time to look for changes in the local network configuration. If there are changes in the local network configuration in test  1014 , the process identifies  1000  all the network nodes on the local network. Otherwise, if test  1014  is no, the process checks  1011  to see if it is time to look for changes in the connection throughput capacity. In alternative embodiments the calculations used in the various process determinations may be varied without departing from the concept of this invention. Although these steps are preformed in the designated order in the present embodiments, in alternative envisioned embodiments of this invention, the ordering of the steps can be varied significantly without departing from the concept of this invention.  
         [0070]      FIG. 11  is a flow diagram of the present preferred method of a master node allocating bandwidth with a constant media stream rate above a threshold with the possibility of intermittent streaming as introduced by mass storage and/or motion detection. The process begins by identifying  1100  all network nodes on the local network. The total available local network throughput (the percentage available for media streaming) capacity is determined  1101  in the current embodiment by subtracting the overhead required to perform non-media streaming functions within the local network from 100%. The network nodes capable of media streaming are identified  1102 . Of the network nodes capable of media streaming the process identifies  1103  which network nodes currently require local network bandwidth for active media streaming connections. The process measures  1104  throughput capacity for each active media streaming connection. The process checks  1105  to see if motion detection is selected and inactive at one or more video sources. This check  1105  is to see if the video stream has to be a constant stream. The present preferred embodiment checks for video sources, but can also check for audio or data sources and the like to see if the sources can handle non-constant rates. If motion detection is selected and inactive at one or more video sources in test  1105 , the process allocates  1109  one of many alternate predetermined stream rates to each active streaming connection whose measured throughput capacity is above one of many alternate predetermined thresholds. The process allocates  1110  the remaining available local network throughput capacity divided approximately evenly in this embodiment among all active streaming connections whose measured throughput capacity is below one of many alternate predetermined thresholds. Otherwise, if test  1105  is no, the process checks  1106  to see if mass storage is available and utilized at one or more video sources. If mass storage is available and utilized at one or more video sources in test  1106 , the process allocates  1109  one of many alternate predetermined stream rates to each active streaming connection whose measured throughput capacity is above one of many alternate predetermined thresholds. The process allocates  1110  the remaining available network throughput capacity divided among all active streaming connections whose measured throughput capacity is below one of many alternate predetermined thresholds. If test  1106  is no, the process allocates  1107  the predetermined stream rate to each active streaming connection whose measured throughput capacity is above a predetermined threshold. The process allocates  1108  the remaining available local network throughput capacity divided among all active streaming connections whose measured throughput capacity is below a predetermined threshold. Test  1111  checks to see if it is time to look for changes in connection throughput capacity. If changes in the throughput capacity are required in test  1111 , the process measures  1104  throughput capacity for each active media streaming connection. Otherwise, if test  1111  is no, the process checks  1112  to see if it is time to look for changes in the streaming media demand. If there are changes in the streaming media demand in test  1112 , the process determines  1103  which of the network nodes are capable of media streaming and which currently require local network bandwidth. Otherwise, if test  1112  is no, the process checks  1113  to see if it is time to look for changes in streaming media network node configuration. If there are changes in the streaming media network node configuration in test  1113 , the process identifies  1102  those network nodes capable of media streaming. Otherwise, if test  1113  is no, the process checks  1114  to see if it is time to look for changes in the local network configuration. If there are changes in the local network configuration in test  1114 , the process identifies  1100  all the network nodes on the local network. Otherwise, if test  1114  is no, the process checks  1111  to see if it is time to look for changes in the connection throughput capacity. In alternative embodiments the calculations used in the various process determinations may be varied without departing from the concept of this invention. Although these steps are preformed in the designated order in the present embodiments, in alternative envisioned embodiments of this invention, the ordering of the steps can be varied significantly without departing from the concept of this invention.  
         [0071]      FIG. 12  is a flow diagram of the present preferred method of allocating bandwidth with a constant media stream rate with no master node for allocating bandwidth with the possibility of intermittent streaming as introduced by mass storage and/or motion detection. The process begins by identifying  1200  those network nodes capable of media streaming on the local network. Throughput capacity is measured  1201  for immediate connections to other network nodes configured to accept streaming media. The connections which require local network bandwidth are identified  1202 . Test  1203  determines if motion detection is selected and inactive at one or more video sources. If motion detection is selected and inactive at one or more video sources in test  1203 , the process allocates  1207 , one of many predetermined alternate stream rates to each active streaming connection who measured throughput capacity is above one of many predetermined alternate thresholds. The process allocates  1208  one of many alternate predetermined stream rates to each active streaming connection whose measured throughput capacity is below one of many alternate predetermined thresholds. Otherwise, if test  1203  is no, the process checks  1204  to see if mass storage is available and utilized at one or more video sources. If mass storage is available and utilized at one or more video sources in test  1204 , the process allocates  1207 , one of many predetermined alternate stream rates to each active streaming connection who measured throughput capacity is above one of many predetermined alternate thresholds. The process allocates  1208  one of many alternate predetermined stream rates to each active streaming connection whose measured throughput capacity is below one of many alternate predetermined thresholds. Otherwise, if test  1204  is no, the process allocates  1205  predetermined stream rate(s) to each active streaming connection whose measured throughput capacity is above a predetermined threshold(s). The process allocates  1206  predetermined stream rate(s) to each active streaming connection whose measured throughput capacity is below a predetermined threshold(s). The process checks  1209  to see if it is time to look for changes in the streaming media demand. If there is a change in the streaming video demand in test  1209 , the process identifies  1202  which connections require local network bandwidth. If test  1209  is no, the process checks  1210  to see if it is time to look for changes in connection throughput capacity. If there are changes in throughput capacity in test  1210  the process measures  1201  the throughput capacity for immediate connection to other network nodes configured to accept streaming media. Otherwise if test  1210  is no, the process checks  1211  to see if it is time to look for changes in streaming media network node configuration. If there are changes in the streaming media network node configuration in test  1211 , the process identifies  1200  those immediate network nodes capable of media streaming on the local network. Otherwise, if test  1211  is no, the process checks  1209  to see if it is time to look for changes in streaming media demand. In alternative embodiments the calculations used in the various process determinations may be varied without departing from the concept of this invention. Although these steps are preformed in the designated order in the present embodiments, in alternative envisioned embodiments of this invention, the ordering of the steps can be varied significantly without departing from the concept of this invention.  
         [0072]      FIG. 13  is a flow diagram of the present preferred method of selecting a master node or control node configuration. The process begins when a network node which is capable of being a master node looks  1300  for a network message identifying another master node. If there is a message from another master node in test  1300 , the process checks  1301  to see if the other master node is a lower ranking device. If the other master device is a lower ranking device in test  1301 , the master node configures  1302  or stays configured as a master node. The master node operates  1303  as a master node. The master node periodically sends  1304  a message identifying the master node as a master node. The master node checks  1305  to see if it is time to look for a network message identifying another master node. If a network message is not identified in test  1305 , the process operates  1303  as a master node. Otherwise, if test  1305  is yes, the process looks  1300  for a network message identifying another master node. If there is no network message from another master node in test  1300 , the process checks  1306  to see if the local device identifier prohibits the node from being a master node. If no, the network node configures  1302  or stays configured as a master node. If test  1306  is yes, the network node configures  1307  itself to operate as a network node in a system without a master node. The network nodes  1308  operate as a network node in a system without a master node. The network node checks  1309  to see if it is time to look for a network message identifying a master node. If it is not time to look for a network message identifying a master node in test  1309 , the network node operates  1308  as a network node in a system without a master node. Otherwise, if test  1309  is yes, the network node looks  1300  for a network message identifying a master node. If there is not another master node that is lower ranking in test  1301 , the master node configures  1310  itself as a slave master node. The slave master node operates  1311  as a slave master node. The slave master node checks  1312  to see if it is time to look for a network message identifying another master node. If it is not time to look for a network message identifying another master node in test  1312 , the slave master node continues to operate  1311  as a slave master node. Otherwise, if test  1312  is yes, the process looks  1300  for a network message identifying another master node. Although these steps are preformed in the designated order in the present embodiments, in alternative envisioned embodiments of this invention, the ordering of the steps can be varied significantly without departing from the concept of this invention.  
         [0073]      FIG. 14  is a flow diagram of the present preferred method of operating as a network node under control of a master node. The process begins when the network node receives a query message from the master control node or peer node if there is no master node in the network. If so, the network node responds  1400  to the master node or peer and identifies the slave master node&#39;s device type and identifier. The network node or slave master node communicates  1401  with the master node or peer to convey the configuration and channel requirement information. This includes, but is not limited to motion detection status, audio/video configuration information, audio/video streaming status, and the like. The network node communicates  1402  with the master node or peer node to participate in measuring connection throughput capacity. The network node  1404  checks to see if there is new bandwidth allocation information from the master node or peer node. If there is new information from the master node or peer node in test  1404 , the local process is controlled  1405  to update data rate requirements to fit such information as some or all of the following: channel allocation, resolution, compression ratio, associated parameters, frame rate, and the like. The network node checks  1400  if a query message was received from a master node or peer note and responds if a message was received with the network node&#39;s device type and identifier. Otherwise, if test  1404  is no, the network node checks  1400  if a query message was received from a master node or peer note and responds if a message was received with the network node&#39;s device type and identifier. In alternative embodiments the calculations used in the various process determinations may be varied without departing from the concept of this invention. Although these steps are preformed in the designated order in the present embodiments, in alternative envisioned embodiments of this invention, the ordering of the steps can be varied significantly without departing from the concept of this invention.  
         [0074]      FIG. 15  is a block diagram of the present preferred bandwidth allocation network with two network nodes  1502 ,  1506  and a monitor  1509  connected to a Digital Video Recorder  1508 . Data from an audio source  1500  and a video source  1501  are connected to a network node  1502  which is connected to a local network  1507 . Data from a second audio source  1503 , a second video source  1504  and a control data source  1505  are connected to a second network node  1506  which is connected to the local network  1507 . Both network nodes  1502 ,  1506  communicate over the local network  1507  to a master node with a Digital Video Recorder (DVR)  1508 . The master node with DVR  1508  can also perform the same function as a network node  1502 ,  1506 . The master node with the DVR  1508  controls such parameters as how much bandwidth is allocated, the types of compression, and the compression rates, compression parameters, and data rate reduction parameters, associated with all the data sources  1500 ,  1501 ,  1503 ,  1504 ,  1505  based on the available bandwidth of the local network  1507 , system settings, and user settings. The data from the video, audio, and data sources  1500 ,  1501 ,  1503 ,  1504 , and  1505  is sent from the master node with the DVR  1508  to the monitor  1509  and/or the DVR  1508  for storage.  
         [0075]      FIG. 16  is a block diagram of the present preferred bandwidth allocation network with two network nodes  1602 ,  1606  and a Digital Video Recorder  1613  with a variety of locally attached devices with an external network connection. Data from an audio source  1600  and a video source  1601  are connected to a network node  1602  which is connected to a local network  1607 . Data from a second audio source  1603 , a second video source  1604  and a control data source  1605  are connected to a second network node  1606  which is connected to the local network  1607 . Both network nodes  1602 ,  1606  communicate over the local network  1607  to a master node with a Digital Video Recorder (DVR)  1613 . The master node with the DVR  1613  can also perform the same function as a network node  1602 ,  1606 . The master node with the DVR  1613  is connected to a third video source  1609 , a third audio source  1610 , and a set top box  1611 . The master node with the DVR  1613  controls such parameters as how much bandwidth is allocated, the types of compression, and the compression rates, compression parameters, and data rate reduction parameters, for all the data sources  1600 ,  1601 ,  1603 ,  1604 ,  1605 ,  1609 ,  1610 ,  1611 , based on the available bandwidth of the local network  1607 , system settings, and user settings. A monitor  1612  is connected to the master node with the DVR  1613 . The monitor  1612  is used to view data from the data sources  1600 ,  1601 ,  1603 ,  1604 ,  1605 ,  1609 ,  1610 ,  1611 , and/or configure the master node with the DVR  1613 . The data from the video, audio, and data sources  1600 ,  1601 ,  1603 ,  1604 ,  1605 ,  1609 ,  11610 ,  1611 , is sent from the master node with the DVR  1613  to the monitor  1509  and/or the DVR  1508  for storage. In addition, the data from the data streams  1600 ,  1601 ,  1603 ,  1604 ,  1605 ,  1609 ,  1610 ,  1611 , can be sent to the personal computer  1615  over the external network  1614  and/or the address controller  1515  which is used to coordinate addressing for remote monitoring.  
         [0076]      FIG. 17  is a block diagram of the present preferred bandwidth allocation network with two network nodes  1702 ,  1705 , and a residential gateway with a master node  1707  which is connected to an address controller  1715  and a PC  1709 . The residential gateway with a master node  1707  can be stand alone, contained within a PC in part or whole, or contained within a DVR in part or whole. Data from an audio source  1700  and a video source  1701  are connected to a network node  1702  which is connected to a local network  1706 . Data from a second audio source  1703 , a second video source  1704  are connected to a second network node  1705  which is connected to the local network  1706 . Both network nodes  1702 ,  1705  communicate over the local network  1706  to a master node with a residential gateway  1707 . The master node with the residential gateway  1707  can also perform the same function as a network node  1702 ,  1705 . The master node with the residential gateway  1707  controls such parameters as how much bandwidth is allocated, the types of compression, and the compression rates, compression parameters, and data rate reduction parameters, for all the data sources  1700 ,  1701 ,  1703 ,  1704 , based on the available bandwidth of the local network  1706 , system settings, and user settings. The data from the video and audio sources  1700 ,  1701 ,  1703 ,  1704 , can be sent from the master node with the residential gateway  1707  to the personal computer  1709  over the external network  1708 . In addition, the data from the data streams  1700 ,  1701 ,  1703 ,  1704 , to a remote monitoring station coordinated by the address controller  1715 . The address controller  1715  includes server  1710  that contains an authentication service  1713  which allows users to authenticate and gain access to the data sources  1700 ,  1701 ,  1703 , and  1704 . The address controller  1715  also includes a transaction service  1712  for tracking access from users who have logged in using the authentication service  1713 . The transaction service  1712  is used to enable and/or bill the users who have logged on a per access and/or time basis. The subscription service  1711  is used to facilitate remote user connections, protect remote users and/or bill users based on a periodic rate such as monthly rate, a weekly rate, a yearly rate, and the like. If a user has subscribed using the subscription service  1711 , users are granted access if their accounts are valid and/or subscriptions are paid. Information for the authentication service  1713 , the transaction service  1712 , and the subscription service  1711  are stored in the database  1714 . A user can authenticate to the address controller  1715  from a personal computer  1709  by providing a password and master node identifier. Once user credentials are validated, a connection to the residential gateway with a master node  1707  is made using the user supplied credentials. The connections to and from the address controller  1715  can be encrypted to ensure security on the external network  1708 . The user which has requested access from the personal computer  1707  can now view and/or listen to the information from the data streams  1700 ,  1701 ,  1703 , and  1704 . Information obtained from the transaction service  1712  and/or the subscription service  1711  is used to provide statistics and/or billing information and/or protection and/or convenience for the users and/or administrators of the address service.  
         [0077]      FIG. 18  is a flow diagram of the present preferred method of adding, authenticating and providing access to a bandwidth allocation system using an address controller. The process begins when a user accesses  1800  the address controller  1715  web site. The user is asked  1801  if they want to login or sign up for the address service  1715 . If the user is signing up for the address service  1715  in test  1801 , the user enters  1805  the user&#39;s information which may include some or all of, general information, password, identifier, and if the service is a paid subscription service credit card information. The password and identifier are supplied to the user who qualifies for the service with an appropriate master node  1707 . The authentication service  1713  checks  1806  to make sure the user&#39;s information are filled out and valid. If the information is not valid in test  1806 , the authentication service  1713  displays an error message  1814  and requests  1801  the user to login or sign up. Otherwise, if test  1806  is yes, the authentication service  1713  determines  1807  if the password and Identifier are valid. The password and the gateway identifier and stored in the database  1714  and compared with the password and identifier from the gateway when it becomes active on the external network  1708 . If the password and identifier are not valid in test  1807 , the authentication service  1713  displays  1814  an error message and requests  1801  the user to login or sign up. Otherwise, if test  1807  is yes, the authentication service  1713  stores  1808  the user information, password, and Identifier in the database  1714 . The process determines  1809  if the user is using a subscription service  1711  or a transaction service  1712 . If the user is using a transaction service  1712 , the transaction service  1712  tracks the time, number of accesses, and stores the information in the database  1714 . Otherwise, if the user is using a subscription service  1711 , the subscription service  1711  logs the access and stores the information in the database  1714 . The process enables and/or facilitates a connection to the residential gateway with master node and/or network node or nodes,  1707   1702 ,  1705  using the password and identifier for access  1812 . If the address controller  1715  cannot connect to the residential gateway with master node  1707 , the process displays an error message  1814  and requests  1801  the user to login or sign up. Otherwise, if test  1815  is successful, the process notifies  1813  the user of access to the residential gateway with the master node  1707  and can view/listen to the data streams from the data sources  1700 ,  1701 ,  1703 , and  1704 . If the user has already signed up and is just wants to log in to the address controller  1715 , in test  1801 , the authentication service  1713  requests the user to enter  1802  the password and identifier. The authentication service  1713  checks  1803  for a valid account. If the account is not valid in test  1803 , the authentication service  1703  displays an error message  1820  and requests  1801  the user to login or signup. Otherwise, if test  1803  is yes, the authentication service  1713  checks  1804  for a valid password and identifier. If the password and/or the identifier are invalid in test  1804 , the authentication service  1713 , displays an error message  1820  and requests  1801  the user to login or signup. Otherwise, if test  1804  is yes the process checks  1809  to see if the user selected a subscription service  1711  or a transaction service  1712 .  
         [0078]     In addition, these bandwidth allocation methods can be implemented using a variety of process, but are not limited to computer hardware, microcode, firmware, software, and the like.  
         [0079]     The described embodiments of this invention are to be considered in all respects only as illustrative and not as restrictive. Although specific flow diagrams system diagrams are provided, the invention is not limited thereto. The scope of this invention is, therefore, indicated by the claims rather than the foregoing description. All changes, which come within the meaning and range of equivalency of the claims, are to be embraced within their scope.

Technology Classification (CPC): 7