Home
Patent Search
IMT Blog
REGISTER
|
SIGN IN
United States Patent
7200855
Laksono
April 3, 2007
Title
Method and apparatus of multiplexing a plurality of channels in a multimedia system
Abstract
A method and apparatus for multiplexing a plurality of channels within a multimedia system includes processing that begins by receiving a plurality of channels from a multimedia source. The processing then continues by receiving a plurality of channel selection commands from client modules. The processing continues by selecting a channel of the plurality of channels for each of the channel selection commands to produce selected channels. As such, for each channel selection command, a corresponding channel is selected from the plurality of channels. The processing continues by encoding the selected channels based on a data conveyance protocol (e.g., encoding scheme and/or modulation scheme). The encoded channel data is then conveyed to a plurality of clients.
Inventors:
Laksono; Indra
(Richmond Hill,
CA
)
Assignee:
VIXS Systems, Inc.
(Toronto,
Ontario
)
Appl. No.:
09/864,602
Filed:
May 24, 2001
PCT Pub Date:
April 3, 2007
Current U.S. Class:
725/82
725/85
709/201
709/227
709/231
725/120
725/74
725/80
Current International Class:
H04N 7/20 (20060101)
Field of Search:
725/96,144-148,114-119,120,121,138,47,74,80,82,85,105 709/201-203,227-229,231
U.S. Patent Documents
20010005908
June 2001
Hodge et al.
20040172658
September 2004
Rakib et al.
5134486
July 1992
Suzuki
5654774
August 1997
Pugel
5757416
May 1998
Birch et al.
5883661
March 1999
Hoarty
5886995
March 1999
Arsenault et al.
5951664
September 1999
Lambrecht et al.
6133910
October 2000
Stinebruner
6473414
October 2002
Hartley et al.
6493873
December 2002
Williams
6522342
February 2003
Gagnon et al.
6598231
July 2003
Basawapatna et al.
7099951
August 2006
Laksono
Other References
VTST-Series NTSC/PAL Electronic Television Tuners. cited by other .
TDC Components for Modems & Digital--Set top boxes. cited by other .
Conexant--CX22702. cited by other .
Conexant--CX24108. cited by other .
What is Digital Satellite Television. cited by other.~
Primary Examiner:
Vu; Ngoc
Claims
What is claimed is:
1. A method of multiplexing a plurality of channels in a multimedia system, the method comprises: receiving a plurality of channels from a multimedia source; receiving a plurality of channel selection commands by: receiving, from a plurality of clients, a plurality of channel selection requests; and processing the plurality of channel selection requests to produce the plurality of channel selection commands, wherein the each of the plurality of channel selection commands includes at least one of: last channel selection command, next channel selection command, previous channel selection command, favorite channel selection command, and select channel from user define list; wherein the receiving the plurality of channel selection commands further includes monitoring a shared bus at specific time intervals, identifying a data frame at one of the specific time intervals that contains at least a portion of one or the plurality of channel selection commands, and decoding, based on a data conveyance protocol of the multimedia system, the data frame to recapture the at least a portion of the one of the plurality of channel selection commands; selecting a channel of the plurality of channels per channel selection command of the plurality of channel selection commands to produce selected channels; and encoding each of the selected channels based on the data conveyance protocol of the multimedia system to produce a set of encoded channel data.
2. The method of claim 1, wherein the processing the plurality of channel selection requests further comprises at least one of: interpreting at least one channel selection request to identify at least one client of the plurality of clients and at least one of the channel selection requests of the plurality of channel selection requests; authenticating a client of the plurality of clients that provides a specific channel selection request; and authenticating the specific channel selection request.
3. The method of claim 1 further comprises: receiving a second plurality of channels from a second multimedia source.
4. The method of claim 3, wherein the selecting a channel further comprises: selecting a channel from either the plurality of channels or the second plurality of channels per each of the channel selection commands, wherein each of the channel selection commands includes identity of the multimedia source or the second multimedia source and identity of the channel.
5. The method of claim 1, wherein the receiving the plurality of channel selection commands further comprises at least one of: decrypting each of the plurality of channel selection commands; and decompressing each of the plurality of channel selection commands.
6. The method of claim 1, wherein each of the plurality of channels is compressed, wherein the selecting a channel further comprises: selecting a group of compressed channels of the plurality of channels per at least one of the plurality of channel selection commands, wherein the group of compressed channels includes the channel.
7. The method of claim 6, wherein the encoding further comprises: encoding the group of compressed channels into packets or frames based on the data conveyance protocol.
8. The method of claim 1, wherein the encoding further comprises: packetizing data of each of the selected channels into a packet that includes a header section and a data section, wherein the header section includes at least one of identity the selected channel, type of data of the selected channel, identity of the multimedia source, encryption enable/disable, type of encryption, compression enable/disable, type of compression, and packet sequence number.
9. The method of claim 8 further comprises: conveying the packet using at least one of: Carrier Sense Multiple Access (CSMA), CSMA with collision avoidance, and CSMA with collision detection.
10. The method of claim 1, wherein the encoding further comprises: framing data of each of the selected channels into frame that includes header section and a data section, wherein the header section includes at least one of identity the selected channel, type of data of the selected channel, identity of the multimedia source, encryption enable/disable, type of encryption, compression enable/disable, type of compression, and frame number.
11. The method of claim 10 further comprises: conveying the frame in accordance with at least one of: a time division multiplexing data conveyance protocol, and frequency division multiplexing data conveyance protocol.
12. The method of claim 1, wherein the encoding further comprises at least one of: multilevel encoding data of each of the selected channels; non return to zero (NRZ) encoding the data of each of the selected channels; Manchester encoding the data of each of the selected channels; block encoding the data of each of the selected channels; and nB/mB encoding the data of each of the selected channels, where n<m.
13. The method of claim 1 further comprises: data compressing the selected channels prior to encoding.
14. The method of claim 1 further comprises: encrypting the selected channels prior to encoding.
15. The method of claim 1 further comprises: receiving a single channel from a multimedia source; selecting the single channel based on at least one of the plurality of channel selecting commands to produce a selected single channel; and encoding the selecting single channel based on the data conveyance protocol.
16. The method of claim 15, wherein the receiving the single channel further comprises at least one of: receiving the single channel of audio data and video data from an output of a video cassette recorder; receiving the single channel of audio data and video data from an output of a DVD player; receiving the single channel of audio data and video data from an output of a camcorder; receiving the single channel of audio data from an output of a compact disk player; receiving the single channel of audio data from an output of a cassette player; receiving the single channel of at least one of data and audio data from a telephone connection; and receiving the single channel of at least one of data, audio data, and video data from a modem.
17. The method of claim 1, wherein the receiving the plurality of channels further comprises at least one of: receiving audio and video data for each of the plurality of channels from a satellite connection; receiving audio and video data for each of the plurality of channels from a set-top box; receiving audio and video data for each of the plurality of channels from a cable connection; receiving audio and video data for each of the plurality of channels from a high-definition television receiver; and receiving audio and video data for each of the plurality of channels from an antenna.
18. A method of multiplexing channels in a multimedia system the method comprises: receiving a channel from each of a plurality of sources to produce a plurality of channels; receiving a plurality of channel selection commands by monitoring a shared bus at specific time intervals, identifying a data frame at one of the specific time intervals that contains at least a portion of one of the plurality of channel selection commands, and decoding, based on a data conveyance protocol of the multimedia system, the at least one packet to recapture the at least a portion of the one of the plurality of channel selection commands; selecting a channel of the plurality of channels per channel selection command of the plurality of channel selection command to produce selected channels; and encoding each of the selected channels based on the data conveyance protocol of the multimedia system to produce a set of encoded channel data by packetizing data of each of the selected channels into a packet that includes a header section and a data section, wherein the header section includes at least one of: identity the selected channel, type of data of the selected channel, identity of the multimedia source, encryption enable/disable, type of encryption, compression enable/disable, type of compression, and packet sequence number.
19. The method of claim 18, wherein the receiving the channel selection commands further comprises: receiving, from a plurality of clients, a plurality of channel selection requests; and processing the plurality of channel selection requests to produce the plurality of channel selection commands, wherein the each of the plurality of channel selection commands includes at least one of: specific channel selection command, last channel selection command, next channel selection command, previous channel selection command, favorite channel selection command, and select channel from user define list.
20. The method of claim 19, wherein the processing the plurality of channel selection requests further comprises at least one of: interpreting at least one channel selection request to identify at least one client of the plurality of clients and at least one of the channel selection requests of the plurality of channel selection requests; authenticating a client of the plurality of clients that provides a specific channel selection request; and authenticating the specific channel selection request.
21. The method of claim 18, wherein the receiving the plurality of channel selection commands further comprises at least one of: decrypting each of the plurality of channel selection commands; and decompressing each off the plurality of channel selection commands.
22. The method of claim 18 further comprises: conveying the packet using at least one of: Carries Sense Multiple Access (CSMA), CSMA with collision avoidance, and CSMA with collision detection.
23. The method of claim 18, wherein the encoding further comprises: framing data of each of the selected channels into a frame that includes header section and a data section, wherein the header section includes at least one of identity the selected channel, type of data of the selected channel, identity of the multimedia source, encryption enable/disable, type of encryption, compression enable/disable, type of compression, and frame number.
24. The method of claim 23 further comprises: conveying the frame in accordance with at least one of: a time division multiplexing data conveyance protocol, and frequency division multiplexing data conveyance protocol.
25. The method of claim 23, wherein the encoding further comprises at least one of: multilevel encoding data of each of the selection channels; non return to zero (NRZ) encoding the data of each of the selected channels; Manchester encoding the data oil each of the selected channels; block encoding the data of each of the selection channels; and nB/mB encoding the data of each of the selected channels, where n<m.
26. The method of claim 18 further comprises: data compressing the selected channels prior to encoding.
27. The method of claim 18 further comprises: encrypting the selected channels prior to encoding.
28. A tuning module for using in multimedia system the tuning module comprises: plurality of selectors, wherein each of the plurality of selectors is operably coupled to receive a plurality of channels, wherein each of the plurality of selectors outputs a channel of the plurality of channels based on a respective one of a plurality of channel selection commands to produce selected channels; encoding module operably coupled to encode the selected channels based on a data conveyance protocol of the multimedia system to produce encoded channel data; and bus interface module operably coupled transmit the encoded channel data in accordance with the data conveyance protocol, the bus interface module including a receiving module that is operably coupled to monitor packets from a shared bus at specific time intervals and to identity at least one of the packets at one of the specific time intervals, that contains at least a portion of one of the plurality of channel selection commands to produce an identified packet, wherein the receiving module comprising decoding module to decode the identified packet, based on the data conveyance protocol, to recapture at least a portion of the one of the plurality of channel selection commands.
29. The tuning module of claim 28, wherein the bus interface module further comprises at least one of: decrypting module for decrypting each of the plurality of channel selection commands; and decompressing module for decompressing each of the plurality of channel selection commands.
30. The tuning module of claim 28 further comprises: second plurality of selectors, wherein each of the second plurality of selectors is operably coupled to receive a second plurality of channels, wherein each of the second plurality of selectors outputs a channel of the second plurality of channels based on a respective one at the plurality of channel selection commands to produce second selected channels.
31. The tuning module of claim 28, wherein the encoding module further comprises: packetizing module for packetizing data at each of the selected channels into a packet that includes a header section and a data section, wherein the header section includes at least one of identity of the selected channel, type of data of the selected channel, identity of a multimedia source, encryption enable/disable, type of encryption, compression enable/disable, type of compression, and packet sequence number.
32. The tuning module of claim 28, wherein the encoding module further comprises: framing module for framing data of each of the selected channels into a frame that includes header section and a data section, wherein the header section includes at least one of identity the selected channel, type of data of the selected channel, identity of the multimedia source, encryption enable/disable, type of encryption, compression enable/disable, type of compression, and frame number.
33. The tuning module of claim 28, wherein the encoding module further comprises at least one of: multilevel encoding module for multilevel encoding of data of each of the selected channels; non return to zero (NRZ) encoding module for NRZ encoding of the data of each of the selected channels; Manchester encoding module for Manchester encoding of the data of each of the selected channels; block encoding module for block encoding of the data of each of the selected channels; and nR/mR encoding module for nB/mB encoding of the data of each of the selected channels, where n<m.
34. The tuning module of claim 28 further comprises: data compressing module operably coupled to the plurality of selectors and the encoding module, wherein the data compressing module receives the selected channels from the plurality of selectors, compresses the selected channels to produce compressed channels, and provides the compressed channels to the encoding module.
35. The tuning module of claim 28 further comprises: encryption module operably coupled to the plurality of selectors and the encoding module, wherein the encryption module receives the selected channels from the plurality of selectors, encrypts the selected channels to produce encrypted channels, and provides the encrypted channels to the encoding module.
36. The tuning module of claim 28 further comprises: bus controller operably coupled to the bus interface module, wherein the bus controller controls receiving of the plurality of channel selection commands and controls the transmitting of the encoded channel data.
37. An apparatus for multiplexing a plurality of channels in a multimedia system, the apparatus comprises: processing module; and memory operably coupled to the processing module, wherein the memory includes operational instructions that cause the processing module to: receive a plurality of channels from a multimedia source; receive a plurality of channel selection commands by: monitoring a shared bus at specific time intervals; and identifying a data frame at one of the specific time intervals that contains at least a portion of one of the plurality of channel selection commands; decode, based on a data conveyance protocol of the multimedia system, the data frame to recapture the at least a portion of the one of the plurality of channel selection commands; select a channel of the plurality of channels per channel selection command of the plurality of channel selection commands to produce selected channels; and encode each of the selected channels based on a the data conveyance protocol of the multimedia system to produce a set of encoded channel data.
38. The apparatus of claim 37, wherein the memory further comprises operational instructions that cause the processing module to receive the channel selection commands by: receiving, from a plurality of clients, a plurality of channel selection requests; and processing the plurality of channel selection requests to produce the plurality of channel selection commands, wherein the each of the plurality of channel selection commands includes at least one of: specific channel selection command, last channel selection command, next channel selection command, previous channel selection command, favorite channel selection command, and select channel from user define list.
39. The apparatus of claim 38, wherein the memory further comprises operational instructions that cause the processing module to process the plurality of channel selection requests by at least one of: interpreting at least one channel selection request to identity at least one client of the plurality of clients and at least one of the channel selection requests of the plurality of channel selection requests; authenticating a client of the plurality of clients that provides a specific channel selection request; and authenticating the specific channel selection request.
40. The apparatus of claim 37, wherein the memory further comprises operational instructions that cause the processing module to: receive a second plurality of channels from a second multimedia source.
41. The apparatus of claim 40, wherein the memory further comprises operational instructions that cause the processing module to select a channel by: selecting a channel from either the plurality of channels or the second plurality of channels per each of the channel selection commands, wherein each of the channel selection commands includes identity of the multimedia source or the second multimedia source and identity of the channel.
42. The apparatus of claim 37, wherein the memory further comprises operational instructions that cause the processing module to receive the plurality of channel selection commands by at least one of: decrypting each of the plurality of channel selection commands; and decompressing each of the plurality of channel selection commands.
43. The apparatus of claim 37, wherein each of the plurality of channels is compressed, and wherein the memory further comprises operational instructions that cause the processing module to select a channel by: selecting a group of compressed channels of the plurality of channels per at least one of the plurality of channel selection commands, wherein the group of compressed channels includes the channel.
44. The apparatus of claim 43, wherein the memory further comprises operational instructions that cause the processing module to encode each of the selected channels by: encoding the group of compressed channels into packets or frames based on the data conveyance protocol.
45. The apparatus of claim 37, wherein the memory further comprises operational instructions that cause the processing module to encode each of the selected channels by: packetizing data of each of the selected channels into a packet that includes a header section and a data section, wherein the header section includes at least one of identity the selected channel, type of data of the selected channel, identity of the multimedia source, encryption enable/disable, type of encryption, compression enable/disable, type of compression, and packet sequence number.
46. The apparatus of claim 45, wherein the memory further comprises operational instructions that cause the processing module to: convey the packet using at least one of: Carrier Sense Multiple Access (CSMA), CSMA with collision avoidance, and CSMA with collision detection.
47. The apparatus of claim 37, wherein the memory further comprises operational instructions that cause the processing module to encode each of the selected channels by: framing data of each of the selected channels into a frame that includes header section and a data section, wherein the header section includes at least one of identity the selected channel, type of data of the selected channel, identity of the multimedia source, encryption enable/disable, type of encryption, compression enable/disable, type of compression, and frame number.
48. The apparatus of claim 47, wherein the memory further comprises operational instructions that cause the processing module to: convey the frame in accordance with at least one of: a time division multiplexing data conveyance protocol, and frequency division multiplexing data conveyance protocol.
49. The apparatus of claim 37, wherein the memory further comprises operational instructions that cause the processing module to encode each of the selected channels by at least one of: multilevel encoding data of each of the selected channels; non return to zero (NRZ) encoding the data of each of the selected channels; Manchester encoding the data of each of the selected channels; block encoding the data of each of the selected channels; and nB/mB encoding the data of each of the selected channels, where n<m.
50. The apparatus of claim 37, wherein the memory further comprises operational instructions that cause the processing module to: compress the selected channels prior to encoding.
51. The apparatus of claim 37, wherein the memory further comprises operational instructions that cause the processing module to: encrypt the selected channels prior to encoding.
52. The apparatus of claim 37, wherein the memory further comprises operational instruction that cause the processing module to: receive a single channel from a multimedia source; select the single channel based on at least one of the plurality of channel selection commands to produce a selected single channel; and encode the selecting single channel based on the data conveyance protocol.
53. An apparatus for multiplexing channels in a multimedia system, the apparatus comprises: processing module; and memory operably coupled to the processing module, wherein the memory includes operational instructions that cause the processing module to: receiving a channel from each of a plurality of sources to produce a plurality of channels; receiving, from a plurality of clients, a plurality of channel selection requests by monitoring shared bus at specific time intervals, identifying a data frame at one of the specific time intervals that contains at least a portion of one of the plurality of channel selection requests, decoding, based on a data conveyance protocol of the multimedia system, the data frame to recapture the at least a portion of the one of the plurality of channel selection requests; and processing the plurality of channel selection requests to determine whether the request can supported, and, if so, producing a plurality of channel selection commands, wherein each of the plurality of channel selection commands includes an identity of one of the plurality of sources, and an identity of the channel; selecting a channel of the plurality of channels per channel selection command of the plurality of channel selection command to produce selected channels; and encoding each of the selected channels bused on the data conveyance protocol of the multimedia system to produce a set of encoded channel data.
54. The apparatus of claim 53, wherein the each of the plurality of channel selection commands includes at least one of: specific channel selection command, last channel selection command, next channel selection command, previous channel selection command, favorite channel selection command, and select channel from user define list.
55. The apparatus of claim 53, wherein the memory further comprises operational instructions that cause the processing nodule to process the plurality of channel selection requests by at least one of: interpreting at least one channel selection request to identify at least one client of the plurality of clients and at least one of the channel selection requests of the plurality of channel selection requests; authenticating a client of the plurality of clients that provides a specific channel selection request; and authenticating the specific channel selection request.
56. The apparatus of claim 53, wherein the memory further comprises operational instructions that cause the processing module to receive the plurality of channel selection commands by at least one of: decrypting each of the plurality of channel selection commands; and decompressing each of the plurality of channel selection commands.
57. The apparatus of claim 53, wherein the memory further comprises operational instructions that cause the processing module to encode each of the selected channels by: packetizing data of each of the selected channels into a packet that includes a header section and a data section, wherein the header section includes at least one of identity the selected channel, type of data of the selected channel, identity of the multimedia source, encryption enable/disable, type of encryption, compression enable/disable, type of compression, and packet sequence number.
58. The apparatus of claim 57, wherein the memory further comprises operational instructions that cause the processing module to: convey the packet using at least one of: Carrier Sense Multiple Access (CSMA), CSMA with collision avoidance, and CSMA with collision detection.
59. The apparatus of claim 53, wherein the memory further comprises operational instructions that cause the processing module to encoding each of the selected channels by: framing data of each of the selected channels into a frame that includes header section and a data section, wherein the header section includes at least one of identity the selected channel, type of data of the selected channel, identity of the multimedia source, encryption enable/disable, type of encryption, compression enable/disable, type of compression, and frame number.
60. The apparatus of claim 59, wherein the memory further comprises operational instruction that cause the processing module to: convey the frame in accordance with at least one of: a time division multiplexing data conveyance protocol, and frequency division multiplexing data conveyance protocol.
61. The apparatus of claim 53, wherein the memory further comprises operational instructions that cause the processing module to encode each of tho selected channels by at least one of: multilevel encoding data of each of the selected channels; non return to zero (NRZ) encoding the data of each of the selected channels; Manchester encoding the data of each of the selected channels; block encoding the data of each of the selected channels; and nB/mB encoding the data of each of the selected channels, where n<m.
62. The apparatus of claim 53, wherein the memory further comprises operational instructions that cause the processing module to: compress the selected channels prior to encoding.
63. The apparatus of claim 53, wherein the memory further comprises operational instructions that cause the processing module to: encrypt tho selected channels prior to encoding.
Description
TECHNICAL FIELD OF THE INVENTION
This invention relates generally to communication systems and more particularly to in-home local area networking.
BACKGROUND OF THE INVENTION
Communication systems are known to convey data from one entity to another. The data may be audio data, video data and/or text data. In such communication systems, the data is transmitted via one or more transmission mediums (e.g., radio frequencies, coaxial cable, twisted pair copper wire, fiber optic cabling, et cetera) in accordance with one or more data transmission protocols. The distance over which the data traverses within a communication system may be inches, feet, miles, tens of miles, hundreds of miles, thousands of miles, et cetera.
As is also known, communication systems have two basic configurations: wide area networks (WAN) and local area networks (LAN). In addition, WAN and/or LAN communication systems may use a variety of transmission types including broadcast transmissions, asymmetrical transmissions, and symmetrical transmissions. In a broadcast communication system, a network hub transmits data to a plurality of users with little or no data being transmitted from the users to the network hub. Examples of broadcast communication systems include radio systems, NTSC (national television standards committee) television systems (e.g., regular TV), high definition television systems, cable systems, and satellite systems. In each of these broadcast communication systems, a network hub (e.g., radio station, television station, et cetera) transmits a broadcast signal. Any user within range of the broadcast signal and who has an appropriate receiver (e.g., radio, television, et cetera) can receive the broadcast signal. Such broadcast systems employ a particular data transmission protocol such as amplitude modulation, frequency modulation, ultra-high frequency, very high frequency, et cetera.
Asymmetrical communication systems transmit more data in one direction than in another (i.e., one entity transmits to others more than it receives data from each of the other entities). An example of an asymmetrical communication system is the Internet, where web servers transmit substantially more data than they receive from any one user. The Internet uses TCP/IP as its data transmission protocol, while a variety of physical layer data transmission protocols may be used to access the Internet. Such physical layer data transmission protocols include asynchronous transfer mode (ATM), frame relay, integrated services digital network (ISDN), digital subscriber loop (DSL) and all derivatives thereof, and multiple packet label switching (MPLS). Such asymmetrical communication systems may be wide area networks (e.g., the Internet), or local area networks (e.g., local server based system).
Symmetrical communication systems include a plurality of users where the data flow between any of the users could be equal. Examples of symmetrical communication systems include public switch telephone network (PSTN), local computer networks, cellular telephone systems, intercom systems, private branch exchanges (PBX), et cetera. Such symmetrical communication systems use at least one data transmission protocol. For example, a computer network may utilize any one of the Ethernet standards.
In any type of communication system, a user must have the appropriate receiving and possibly transmitting equipment to independently access the communication system. For example, a user of a satellite television system must have a satellite receiver and a television to receive satellite broadcast. If another television is to independently access the satellite broadcast, it needs its own satellite receiver. The same is true for NTSC broadcast, cable broadcast, et cetera, although currently most televisions include an NTSC tuner and/or some form of cable tuner.
With the number of households having multiple television sets increasing, and many users wanting the latest and greatest video viewing services. As such, many households have multiple satellite receivers, cable set-top boxes, modems, et cetera. As is further known, dependent multiple access to satellite broadcasts may be achieved by linking slave televisions to a master television. The master television has full control of, and independent access to, the satellite receiver while the slave televisions receive whatever channel has been selected by the master.
For in-home Internet access, each computer or Internet device has its own Internet connection. As such, each computer or Internet device includes a modem. As an alternative to each computer having its modem, an in-home local area network may be used to provide Internet access. In such an in-home local area network, each computer or Internet device includes a network card to access a server. The server provides the coupling to the Internet. Currently, the cost of a network card is at least as expensive as a 56K modem thus, there is no cost savings with such an in-home local area network.
As is further known, in-home local area networks use one or more of telephone lines, radio frequencies, power lines, and/or infrared connections as the communication medium. Such in-home local area networks are typically used to facilitate an in-home computer network that couples a plurality of computers with one or more printers, facsimile machine, etc. As such, entertainment type data transmissions (e.g., from VCRs, DVDs, et cetera) are not supported by the in-home local area network without having the home specially wired to support an in-home LAN that transceives entertainment type data.
Therefore, a need exists for a method and apparatus for a communication system to overcome the above-mentioned issues and to offer additional services within homes.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a schematic block diagram of a multimedia system in accordance with the present invention;
FIG. 2 illustrates a schematic block diagram of another multimedia communication system in accordance with the present invention;
FIG. 3 illustrates a schematic block diagram of a further multimedia communication system in accordance with the present invention;
FIG. 4 illustrates a schematic block diagram of yet another multimedia communication system in accordance with the present invention;
FIG. 5 illustrates a schematic block diagram of a still further multimedia communication system in accordance with the present invention;
FIG. 6 illustrates a schematic block diagram of a multimedia server and client modules of the multimedia communication system illustrated in FIG. 1;
FIG. 7 illustrates a schematic block diagram of a multimedia server and client modules of the multimedia communication system of FIG. 2;
FIG. 8 illustrates a schematic block diagram of a multimedia server and client modules of the multimedia communication system of FIG. 3;
FIG. 9 illustrates a schematic block diagram of a multimedia server and client modules of the multimedia communication system of FIG. 4;
FIG. 10 illustrates a schematic block diagram of a multimedia server and client modules of the multimedia communication system of FIG. 5;
FIG. 11 illustrates a schematic block diagram of a multimedia server and a client module that may be used in any one of the multimedia communication systems of FIGS. 1 through 5;
FIG. 12 illustrates a more detailed schematic block diagram of a multimedia server that may be used in the multimedia communication system of FIG. 1;
FIG. 13 illustrates a more detailed schematic block diagram of a multimedia server that may be used in the multimedia communication system of FIG. 2;
FIG. 14 illustrates a more detailed schematic block diagram of a multimedia server that may be used in the multimedia communication system of FIG. 3;
FIG. 15 illustrates a more detailed schematic block diagram of a multimedia server that may be used in the multimedia communication system of FIG. 4;
FIG. 16 illustrates a more detailed schematic block diagram of a multimedia server that may be used in the multimedia communication system of FIG. 5;
FIG. 17 illustrates a functional diagram of a tuning module that may be incorporated in a multimedia server in accordance with the present invention;
FIG. 18 illustrates a functional diagram of a channel mixer that may be incorporated in a multimedia server in accordance with the present invention;
FIG. 19 illustrates an alternate functional diagram of a tuning module that may be incorporated in a multimedia server in accordance with the present invention;
FIG. 20 illustrates a schematic block diagram of a multimedia server operably coupled to one or more client modules via a wire line connection in accordance with the present invention;
FIG. 21 illustrates a schematic block diagram of a multimedia server being operably coupled to one or more client modules via an RF communication path in accordance with the present invention;
FIG. 22 illustrates a schematic block diagram of a multimedia server operably coupled to one or more client modules via an infrared communication path in accordance with the present invention;
FIG. 23 illustrates a schematic block diagram of an alternate multimedia server in accordance with the present invention;
FIG. 24 illustrates a logic diagram of a method for data conveyance within a multimedia communication system in accordance with the present invention;
FIG. 25 illustrates a logic diagram of a method for conveying data within the multimedia communication system via a wire line connection in accordance with the present invention;
FIG. 26 illustrates a graphical representation of data conveyances within a multimedia communication system in accordance with the present invention;
FIG. 27 illustrates a logic diagram of a method for data conveyances within a multimedia communication system utilizing a radio frequency communication path in accordance with the present invention;
FIG. 28 illustrates a logic diagram of a method for data conveyances within a multimedia communication system via an infrared communication path in accordance with the present invention;
FIG. 29 illustrates a schematic block diagram of a tuning module, which may be incorporated in a multimedia server in accordance with the present invention;
FIG. 30 illustrates a schematic block diagram of an alternate tuning module, which may be incorporated in a multimedia server in accordance with the present invention;
FIG. 31 illustrates a schematic block diagram of another tuning module, which may be incorporated in a multimedia server in accordance with the present invention;
FIG. 32 illustrates schematic block diagram of yet another tuning module, which may be incorporated in a multimedia server in accordance with the present invention;
FIG. 33 illustrates a logic diagram of a method for selecting channels within a multimedia system in accordance with the present invention;
FIG. 34 illustrates a logic diagram further illustrating the receiving the channel selection commands of the logic diagram of FIG. 33;
FIG. 35 illustrates a logic diagram of a further method for receiving the channel selection commands of the logic diagram of FIG. 33;
FIG. 36 illustrates a logic diagram of an alternate method for channel selection within a multimedia communication system in accordance with the present invention;
FIG. 37 illustrates a logic diagram of a method further describing the receiving of channel selection commands of the logic diagram of FIG. 36;
FIG. 38 illustrates a schematic block diagram of a channel mixer for use in a multimedia communication system in accordance with the present invention;
FIG. 39 illustrates a schematic block diagram of a channel mixer operably coupled to components within a multimedia server in accordance with the present invention;
FIG. 40 illustrates a schematic block diagram of an alternate channel mixer for use in a multimedia communication system in accordance with the present invention;
FIG. 41 illustrates a schematic block diagram of another channel mixer that may be used in a multimedia communication system in accordance with the present invention;
FIG. 42 illustrates a logic diagram of mixing signals within a multimedia communication system in accordance with the present invention;
FIG. 43 illustrates a logic diagram that further defines the processing step of FIG. 42;
FIG. 44 illustrates a logic diagram of a method that further describes the converting step of FIG. 42;
FIG. 45 illustrates a logic diagram of another method that further defines the converting step of FIG. 42;
FIG. 46 illustrates a logic diagram of yet another method that further defines the converting step of FIG. 42;
FIG. 47 illustrates a logic diagram of a still further method that further defines the converting step of FIG. 42;
FIG. 48 illustrates a logic diagram of a method that further defines Step 1052 of FIG. 42;
FIG. 49 illustrates a logic diagram of an alternate method for mixing channels in accordance with the present invention;
FIG. 50 illustrates a schematic block diagram of a client module operably coupled to a client in accordance with the present invention;
FIG. 51 illustrates a more detailed schematic block diagram of a client module operably coupled to a client in accordance with the present invention;
FIG. 52 illustrates a schematic block diagram of an alternate client module in accordance with the present invention;
FIG. 53 illustrates a logic diagram of a method for processing data within a client module in accordance with the present invention;
FIG. 54 illustrates a logic diagram of a method that further describes Steps 1236 and 1238 of FIG. 53;
FIG. 55 illustrates a logic diagram of an alternate method for processing data within a client module in accordance with the present invention;
FIG. 56 illustrates a logic diagram of an extension of the method illustrated in FIG. 55;
FIG. 57 illustrates a logic diagram of a method for a multimedia server to provide network connection for clients in accordance with the present invention;
FIG. 58 illustrates a logic diagram of a method that further defines Step 1342 of FIG. 57;
FIG. 59 illustrates a logic diagram of a method that further defines Step 1362 of FIG. 58;
FIG. 60 illustrates a logic diagram of a method that further describes Step 1348 of FIG. 57;
FIG. 61 illustrates a logic diagram of a method for processing client-to-client communications and network communications within a multimedia server communication system in accordance with the present invention;
FIG. 62 illustrates a logic diagram of an alternate method for processing network communications and client-to-client communications within a multimedia communication system in accordance with the present invention;
FIG. 63 illustrates a logic diagram of a method for managing resources within a multimedia communication system in accordance with the present invention;
FIG. 64 illustrates a logic diagram of an extension of the method of FIG. 63; and
FIG. 65 illustrates a logic diagram of an alternate method for managing resources within a multimedia communication system in accordance with the present invention.
DETAILED DISCUSSION OF A PREFERRED EMBODIMENT
Generally, the present invention provides a method and apparatus for multiplexing a plurality of channels within a multimedia system. Such a method and apparatus includes processing that begins by receiving a plurality of channels from a multimedia source. For example, the plurality of channels may correspond to channels provided via a satellite connection, cable connection, NTSC broadcast, HDTV broadcast, et cetera. In addition, or in the alternative, the plurality of channels may be provided by a group of video sources such as a VCR, DVD, laser disk player, et cetera. The processing then continues by receiving a plurality of channel selection commands from client modules. The client modules are affiliated with client devices (e.g., television, personal computer, lap top computer, etc.) that are requesting access to a particular channel of the plurality of channels.
The processing continues by selecting a channel of the plurality of channels for each of the channel selection commands to produce selected channels. As such, for each channel selection command, a corresponding channel is selected from the plurality of channels. The processing continues by encoding the selected channels based on a data conveyance protocol (e.g., encoding scheme and/or modulation scheme). The encoded channel data is then conveyed to a plurality of clients. With such a method and apparatus, an in-home communication network is established that allows multiple client devices to have independent access to multimedia sources without requiring traditional receiving and/or transmitting equipment associated with independent access to such multimedia sources.
The present invention can be more fully described with reference to FIGS. 1 through 65. FIG. 1 illustrates a multimedia system 10 that includes a multimedia server 12, a plurality of client modules 14 22 operably coupled to a plurality of clients 26 34. The multimedia server 12 is operably coupled to receive a plurality of channels 36 from a multimedia source 24. The multimedia source 24 may be a satellite connection, cable connection, antenna connection for NTSC television broadcast, HDTV broadcast, PAL broadcast, et cetera. As one of average skill in the art will appreciate, the multimedia server 12 may be a standalone device, may be incorporated in a satellite receiver, set-top box, cable box, HDTV tuner, home entertainment receiver, et cetera. In addition, the multimedia server 12 may be implemented using discrete components, integrated circuits, and/or a combination thereof.
The multimedia server 12 communicates with the plurality of client modules 14 22 via a communication path, which may be a radio frequency communication path, a wire line connection, an infrared connection, and/or any other means for conveying data. As such, the multimedia server 12 and each of the client modules 14 22 include a receiver and/or transmitter operable to convey data via the given type of communication path.
As shown, each client module is operably coupled to one of the clients. For example, client module 14 is operably coupled to client 26, which is representative of a personal digital assistant. Client module 16 is operably coupled to client 28, which is representative of a personal computer. Client module 18 is operably coupled to client 30, which is representative of a monitor (e.g., LCD monitor, flat panel monitor, CRT monitor, et cetera). Such a monitor may include speakers, or a speaker connection, control functions including channel select, volume control, picture quality, et cetera. Client module 20 is operably coupled to client 32, which may be a television set, high definition television (HDTV), standard definition television (SDTV), a home theatre system, et cetera. Client module 22 is operably coupled to client 34, which is representative of a laptop computer.
As one of average skill in the art will appreciate, the client module 22 may be a separate device from its associated client or embedded within the client. In addition, one of average skill in the art will further appreciate that the client modules 14 22 may be implemented utilizing discrete components and/or integrated circuits.
Each of the clients 26 34, via its associated client module 14 22, selects one or more channels from the plurality of channels 36. As shown, client 26 has selected channel 3 of the plurality of channels for viewing. Accordingly, client module
14 relays the channel selection of channel 3 to the multimedia server 12. The multimedia server 12 selects channel 3 from the plurality of channels 36. The data corresponding to channel 3 is then multiplexed with the data for the other channels and transmitted from the multimedia server 12 to each of the client modules 14 22. Client module 14 monitors the transmission from the multimedia server 12 and extracts the data corresponding to channel 3. The extracted data for channel 3 is then provided to the client 26 for display.
Client module 16, 18, 20 and 22 perform a similar function for their associated clients 28, 32 and 34, respectively. As shown, client 28 has selected channel 505, client 30 has selected channel 106, client 32 has selected channel 206 and client
34 has selected channel 9. The client modules 16 22 provide the channel selection of its respective client 28 34 to the multimedia server 12. Multimedia server 12 extracts the selected channels from the plurality of channels for each selection request, multiplexes the data for each of the selected channels (for this example channel 3, 9, 106, 206 and 505) into a stream of data. The stream of data is then transmitted to each of the client modules. Each client module extracts the appropriate data of the selected channel for its respective client. For example, client module 16 monitors the transmitted data for data related to channel 505, client module 18 monitors for data related to channel 106, client module 20 monitors the transmission for data related to channel 206 and client module 22 monitors the transmission for data related to channel 9.
From each client's prospective, the client 26 34 has independent access to the multimedia source 24. Accordingly, client 26 may at any time change its channel selection from, for example, channel 3 to channel 120. The client module 14 provides the channel selection request to the multimedia server 12, which now retrieves data related to channel 120 for client 26 as opposed to channel 3. Similarly, client 28 34 could also change their channel selection from the illustrated selection to another channel. Note that if two clients have selected the same channel, for example, client 26 and 28 both have selected channel 3, the multimedia server 12 would only extract data for channel 3 once and place in the header information of the data relating to channel 3 the identity of both client module 14 and 16. As such, client module 14 and 16 would extract the same data from the transmission by the multimedia server 12 and provide it to its respective clients.
As one of average skill in the art will appreciate, the multimedia system of FIG. 1 provides each client with independent access to the multimedia source 24. As an alternate embodiment, the functionality of client modules 14 22 may vary. For example, client module 14 may not provide all the independent functionality that client module 16 does. For example, client module 14 may not have independent channel selection capabilities but only selecting channels that one of the other clients have selected. Alternatively, one client module may service a plurality of clients.
FIG. 2 illustrates a schematic block diagram of a multimedia system 40 that includes a multimedia server 42, a plurality of client modules 46 54, and a plurality of clients 26 34. The multimedia server 42 is operably coupled to a wide area network (WAN) 44 and/or to a public switch telephone network (PSTN) 66. The wide area network 44 may be, for example, the Internet. The multimedia server 42 may be a stand-alone device or incorporated within a modem or within one of the clients 26 34. The functionality of multimedia server 42 may be implemented utilizing discrete components and/or integrated circuits with accompanying software.
The plurality of client modules 46 54 communicates with the multimedia server 42 via a communication path. The communication path may be a radio frequency communication path, infrared communication path, and/or wire line communication path. In this system 40, the multimedia server 42 is providing independent access for each of the clients 26 34 to the public switch telephone network 66 and/or to the wide area network 44.
For access to the public switch telephone network 66, each client 26 34 includes an identification code (e.g., a telephone number). The multimedia server 42 includes cordless telephone functionality such that the multimedia server 42 acts as a base station while each of the client modules 46 54 in conjunction with its respective client 2634 functions as a handset. As such, for typical telephone communications, the multimedia server 42 is a single base station that includes a plurality of handsets, i.e., the clients 26 34 and their associated client modules 46 54. Note that if the multimedia server 42 has multiple connections to the public switch telephone network 66, multiple clients may have simultaneous telephone conversations ongoing. In addition, the multimedia server 42 may include private branch exchange (PBX) functionality such that communications between each client may occur within the system. For example, client 26 may communicate with client 34 via the multimedia server 42.
For accessing the wide area network 44, multimedia server 42 includes a network connection, which may be a DSL modem, cable modem, 56K modem, ISDN modem, etc. In addition, the multimedia server 42 includes a plurality of network access applications (e.g., web browser applications, email applications, et cetera) to facilitate each client's access to the wide area network 44. In operation, the client modules 46 54, for their respective clients 26 34, provide an indication that its client desires access to the wide area network 44. Upon receiving the wide area network request, the multimedia server 42 opens a network access application (email or web browser) for the respective client based on the request. The multimedia server 42
may have multiple network access applications open for each client 26 34. When this occurs, the multimedia server 42 allocates access to the network connection amongst the clients in a predetermined manner. For example, the multimedia server 42 may utilize a token passing concept to provide access to the network connection for each of the clients.
The multimedia server 42 receives data from the wide area network 44, which is destined for one or more of the clients 26 34. The multimedia server 42 multiplexes the data and provides a single transmission stream to the plurality of client modules 46 54. Each of the client modules monitors the transmission from the multimedia server 42 to extract data for its respective client 26 34. Upon detecting data for its client, the client module 46 extracts the data and subsequently provides it to its client.
In this illustration, clients 30 34 are accessing the Internet thus are using a web application. For instance, client 34 has web page 56 open, client 32 has web page 58 open, and client 30 has web page 60 open. Each of these web pages appear to the respective client as if the client has direct and independent access to the wide area network. As is also shown, clients 26 and 28 have opened an email application 64 and 62, respectively. As such, client 26 and 28 may process their email via the multimedia server 42.
FIG. 3 illustrates a schematic block diagram of a multimedia system 80 that includes a multimedia server 88, a plurality of client modules 90 98, a plurality of clients 26 34, a DVD player 82, a VCR 86, and other such playback devices. Other such playback devices include laser-disk players, digital VCRs, close circuit televisions, camcorders, et cetera. In this system 80, the multimedia server 88 provides access to the playback equipment devices, e.g., DVD player 82 and VCR 86, for each of the plurality of clients. Each client may select to receive a DVD playback, a VCR playback, or playback from any one of the other video sources.
In this illustration, client 26 has selected DVD playback 83. Accordingly, client 26 provides an indication of its selection to client module 90. Client module 90 communicates client 26's selection to the multimedia server 88. The multimedia server 88 processes the selection to provide the playback data to client module 90. As further shown in FIG. 3, client 32 has also selected DVD playback 83, while clients 28, 30 and 34 have selected VCR playback 87. As such, each of the associated client modules 92 98 will provide its clients' selection to the multimedia server 88. The multimedia server 88 processes the selections to produce a stream of outgoing data. In this example, the stream of outgoing data includes a multiplexing of the DVD playback 83 data and the VCR playback 87 data. Accordingly, the transmission provided by multimedia server 88 to the client modules 90 98 identifies which packets and/or frames contain DVD playback data and which frames and/or packets contain VCR playback data. For example, the multimedia server 88 may tag packets as containing DVD playback data or VCR playback data. Alternatively, the multimedia server 88 may tag the packets by including the identity of the particular client module associated with the client that provided the specific VCR or DVD playback request. In either case, the client modules 90 98 interpret the data transmitted from the multimedia server 88 to extract the appropriate data for its client. The extracted data is then provided to its client for playback.
As one of average skill in the art will appreciate, the multimedia server 88 may be operably coupled to the client modules 90 98 via an RF connection, infrared connection and/or a wire line connection. In addition, each of the client modules 90
98 may be separate devices and/or included within its respective client. As one of average skill in the art will further appreciate, the client modules 90 92 may be implemented in discrete circuit components and/or integrated circuits and further includes associated programming operations. Similarly, multimedia server 88 may be a stand-alone device or incorporated within the DVD player 82, VCR 86, and/or any other video source. The multimedia server 88 may be implemented utilizing discrete components, integrated circuits and associated programming operations.
FIG. 4 illustrates a schematic block diagram of a multimedia system 100 that includes a multimedia server 102, a plurality of client modules 112 120, a plurality of clients 26 34, a digital audio storage device 104, a DVD audio device 106, a radio receiver 108, and a CD player 110. In this illustration, the multimedia system 100 provides a selection of multiple audio sources to a plurality of clients without requiring an independent and direct connection to each of the audio devices.
In operation, the client modules 112 120 receive a selection request from its respective clients. The selection request is selecting audio playback from the digital audio storage device 104, which may be storing MP3 files, digitized audio, et cetera, the DVD audio player 106, the radio receiver 108, the CD player 110, and/or any other type of audio source.
Upon receiving the selection request, the multimedia server 102 processes the request to authenticate it and once authenticated, retrieves data from the appropriate audio source 104 110. The multimedia server 102 multiplexes the audio data from the audio sources 104 110 into a single transmission. Each of the client modules 112 120 receives the transmission and extract the relevant portions for its client.
As shown in FIG. 4, client 26 has selected to display audio from the digital audio storage device 104. Accordingly, the client 26 provides the selection request to client module 112, which is subsequently provided to the multimedia server 102. The multimedia server 102 processes the request and initiates the playback from the digital audio storage device 104. The audio playback data from the storage device 104 is received by the multimedia server 102, which multiplexes it with other audio playback data from other audio sources and provides the single transmission to the client modules. The transmission from the multimedia server 102 may be in packets and/or frames. Each packet and/or frame includes a header section that identifies the source of the data and/or the destination of the data. Accordingly, client module 112 monitors the transmission for data addressing it and/or identifying the digital audio storage device 104. Upon detecting such data within the transmission, the client module 112 extracts the data and provides it to the client 26 for digital audio playback 122.
Client 28 has selected DVD audio playback 124. Accordingly, client module 114 provides the selection request to multimedia server 102. Multimedia server 102 initiates the DVD audio playback via the DVD audio device 106. The DVD audio playback is multiplexed with other audio playback data and provides the multiplexed data in the single transmission to the client modules. Client module 114 extracts the DVD audio playback data and provides it to client 28. Client module 120 provides the same function for client 34.
Client module 116 provides a similar function for client 30 but with respect to CD playback 126. Accordingly, client module 116 provides the CD playback request of client 30 to the multimedia server 102. The multimedia server 102 initiates the CD playback via CD player 110 and multiplexes the CD playback data into the transmission stream. Client module 116 extracts the CD playback data from the transmission stream and provides it to client 30.
Client module 118 provides radio playback 128 connectivity to the multimedia server 102 for client 32. In this example, client 32 provides an indication for radio playback and the desired radio station. Client module 118 provides the request to multimedia server 102, which interprets the request and selects one of the plurality of channels received via radio receiver 108. The data from the selected radio channel is multiplexed with the other audio data being processed by the multimedia server
102. The client module 118 extracts the appropriate radio data from the transmission and provides it to client 32.
FIG. 5 illustrates a schematic block diagram of a multimedia system 130 that includes multimedia server 132, client modules 134 142, clients 26 34, and a plurality of multimedia sources. The multimedia sources include VCR 86, DVD player 82, digital audio storage device 104, DVD audio 106, radio receiver 108, CD player 110, multimedia source 24, public switch telephone network 66, wide area network 44, and/or any other type of audio and/or video source. In this system 130, the clients 26 34
may select playback from, and/or connection to, any one of the multimedia sources. The selection request from each client module would identify the desired multimedia source, the client, the desired service and any other information to assist the multimedia server 132 in processing the request. As such, one client may be accessing the Internet, while another client is watching a satellite broadcast channel, while another is listening to a CD playback, while another is talking on the telephone, and yet another is watching a DVD playback. This is all done via the multimedia server 132 without requiring the clients to have direct access to the multimedia sources and without the requirement that each client have its own multimedia source and/or multimedia source connection. In essence, multimedia server 132 provides the functionality of one or more of multimedia server 12, 42, 88 and 102 of FIGS. 1 4. While client modules 134 142 provide the functionality of one or more of the client modules described generally with reference to FIGS. 1 4.
As one of average skill in the art will appreciate, the multimedia server 12, 42, 88, 102, and/or 132 may be incorporated in a home theatre receiver, television set, modem, set-top box, cable receiver, satellite receiver, VCR, DVD player, et cetera to provide the networking functionality as generally described in FIGS. 1 5. As one of average skill in the art will further appreciate, the clients 26 34 of FIGS. 1 5 may be any one of a personal computer, a laptop computer, a personal digital system, a video telephone, a digital telephone, a cellular telephone, a monitor, a television, a high definition television, a printer, a facsimile machine, and/or any devices that includes an audio and/or video display.
FIG. 6 illustrates a schematic block diagram of the multimedia server 12 and client modules 14 22 of the system 10 of FIG. 1. The multimedia server 12 includes a tuning module 150, a channel mixer 152, a transceiving module 154, and a control module 156. The multimedia server 12 is operably coupled to each of the client modules 14 22 via a communication path 192. The communication path 192 may be a wire line connection, a transmit wire line connection, a receive wire line connection, a transceiving radio frequency path, a transmit radio frequency path, a receive radio frequency path, a transceiving infrared path, a transmitting infrared path, and/or a receiving infrared path.
Each of the channel modules 14 22 includes a network interface controller 168, a selection module 170, and a video and/or audio interface 172. The selection module 170 is operably coupled to receive an input from the client to produce a channel selection 178. Accordingly, if the client is a television set, the television set provides a signal to the selection module 172 indicating the channel selected. Alternately, the channel selection module 170 may include a remote control receiver such that when the remote control of the television is used to change the channel on the television set, the selection module 170 receives the control signal, interprets it, and produces the channel selection 178 therefrom.
The network interface controller 168 receives the channel selection 178 and prepares it for transmission via the communication path 192 to the multimedia server 12. The processing performed by the network interface controller 168 is dependent on the type of communication path 192. For example, if the communication path is a wire line connection, the channel selection 178 may be processed in accordance with a type of transceiving that includes time division multiplexing (TDM), frequency division multiplexing (FDM), pulse code modulation (PCM), amplitude shift keying (ASK), phase shift keying (PSK), quadrature phase shift keying (QPSK), quadrature amplitude modulation (QAM), carrier sense multiple access (CSMA), CSMA with collision avoidance and/or CSMA with collision detection.
The network interface controller 168 provides the process channel selection 178 as a channel select request 190 to the transceiving module 154 of multimedia server 12. As one of average skill in the art will appreciate, client modules 14 20
perform a similar function as client module 22 in producing their respective channel select request 182 188. As one of average skill in the art will appreciate, the channel selection 178 may include selecting an audio channel, video channel, a particular audio source (e.g., CD playback), a particular video source (e.g., DVD player), etc. In addition, the channel select request 182 190 may further include volume adjust, picture quality settings and adjustments, displaying restrictions, purchase request, picture-in-picture activation and deactivation, picture-in-picture channel select, video pausing, reverse play, fast forward, and/or audio muting.
The transceiving module 154 receives the channel select requests 182 190 from the plurality of client modules 14 22 via the communication path 192. The transceiving module 154 extracts the physical layer information from the requests 182 190 to retrieve the respective channel select requests 164. The transceiving module 154 provides the channel select request 164 to control module 156. As an analogy, note that the channel selections 178 may correspond to network layer data while the channel selection request 182 190 may correspond to physical layer data of a ISO standardized communication system. As such, channel selection request utilize physical layer type identification within its header and include in its data section the channel selections 178. The channel selections include a header section and data section corresponding to the particular channel selected.
The control module 156 processes the channel select request 164. The processing of the channel select request includes authenticating the request and preparing a set of channel selection commands 160 therefrom. The tuning module 150 receives the set of channel selection commands 160 and extracts a set of channels 162 from a plurality of channels 158 based on the set of channel selection commands 160. The plurality of channels corresponds to channels provided via a satellite connection, a cable connection, an NTSC broadcast, an HDTV broadcast, a PAL broadcast, et cetera. The tuning module 150 provides data for each of the channels of the set of channels 162 to the channel mixer 152.
The channel mixer 152 mixes (i.e., multiplexes) the set of channels 162 to produce a stream of channel data 166. The mixing of the set of channels includes converting the data of each channel into a generic data type and then converting the generic data into a specific data format for transmission as the stream of channel data 166.
The transceiving module 154 transmits the stream of channel data 166 in packets of channel data 180. Alternatively, the stream of channel data 166 may be transmitted in frames of channel data. Each of the client modules 14 22 receives the packets, or frames, of channel data 180 via its network interface controller 168.
The network interface controller 168 of each client module interprets the header of each packet of channel data 180 to determine whether it addresses its corresponding client module. If so, the network interface controller 168 removes the physical layer portion of the packets of channel data 180 to retrieve channel data 176. The channel data 176 is provided to the video and/or audio interface 172. For example, if the channel data 176 is video data, the interface 172 is a video interface to a display input of the associated client. Alternatively, if the channel data 176 is audio data, the interface 172 is an audio interface that couples to an audio input of the associated client.
FIG. 7 illustrates a schematic block diagram of multimedia server 42 and client modules 46 54 of the multimedia system 40 of FIG. 2. The multimedia server 42 includes a modem interface 202, a processing module 204, memory 206 and a transceiving module 208. The modem interface 202 is operably coupled to a network connection 200, which in turn is operably coupled to a wide area network 44. The processing module 204 is also coupled to the public switch telephone network 66.
Each of the client modules 46 54 includes a network interface controller 168 and a client interface 222. In operation, the client module, via its client interface 222, receives a request that indicates the client's desire for either Internet connection via wide area network 44, to place a telephone call via the PSTN 66, or for client-to-client communication. The client interface 222 provides connectivity to the client via a PCI bus interface, an AC 97 bus interface, a parallel input, a serial input, et cetera. The network interface controller 168 processes the request from its client to produce a request packet(s), which is/are transmitted to the transceiving module 208 of the multimedia server 42.
The transceiving module 208 retrieves the request from the packet(s) in accordance with the data conveyance protocol used by the multimedia system. The transceiving module provides the retrieved requests to the processing module 204. The processing module 204 determines whether the request is valid. If so, the processing module 204 sets up the appropriate interface with the PSTN 66 and/or the WAN 44. The appropriate interfacing to the PSTN for a telephone connection includes the processing module 204 performing base station like functions of a cordless telephone, while the client module and/or client functions as a cordless handset. As a base station, the processing module 204 initiates a connection with the PSTN 66 to enable a telephone communication for the requesting client.
If the request was for Internet access via wide area network 44, the appropriate interfacing includes the processing module activating a network access application for the requesting client. The network access application may be a web browser application, email application, et cetera. The particular network access application will be dependent upon the request provided by the client. Upon activating the network access application, the processing module determines whether the network connection 200 is actively coupled to the wide area network 44. If not, the processing module 204 establishes, via the modem interface 202, a connection to wide area network 44 through the network connection 200. At this point, the respective client has access to the Internet.
With the Internet access established, the client interface 222 receives Internet data from the client and provides it to the network interface controller 168. The Internet data includes inputs from the client in response to the particular network access application (e.g., web browser, email, etc.). For example, the inputs for an email application include send a message, read a message, compose a message, etc. The corresponding processing of these inputs by multimedia server, via the network access application, is provided back to the client for display by the client. As such, from the client's prospective, the client has direct access to the Internet.
The client generates the inputs via a keyboard, touch-screen, and/or other input device and provides them to the client module via the client interface 222. The client interface 222 provides the inputs to the network interface controller 168, which packetizes them to produce packets 218. The packets 218 include a header section and data section. The header section includes identity of the client module and/or client, the destination address, and other physical layer-type header information. The data section includes the input data provided by the client. Each client module 46 54 produces packets 210 218 in a similar manner.
The network interface controller 168 provides the packets 210 218 to the transceiving module 208 of the multimedia server 42 via the communication path 192. Since Internet access is typically a bi-directional communication, the communication path 192 may include a separate transmit path and a separate receive path. The transmit path may be used for transmitting packets 210 218 to the multimedia server while the receiving path may be used to receive multiplexed client data 230 from the multimedia server 42.
The transceiving module 208 receives packets 210 218 and removes the physical layer header information to produce retrieved requests 220. The retrieved requests 220 are provided to processing module 204, which converts them into network data 224
by executing the network access application thereon. Note that the network data 224 includes separate data for each of the clients accessing the WAN. The processing module 204 provides the network data 224 to the network connection 200, via the modem interface 202, as outbound modem data 234. Responses to the outbound modem data 234 are received via the network connection 200 as inbound modem data 232. The processing module 204 receives the inbound modem data 232 as received network packets 226 via the modem interface 202.
The processing module 204 interprets the received network packets 224 to identify the source and/or destination of the network packets. For each network packet that is destined for a particular client, the processing module adds header information to address the particular client thereby producing client data 228. The transceiving module 208 performs the physical layer interfacing on the client data 228 producing multiplex client data 230.
Each of the client modules 46 54 receives the multiplex client data 232 via the communication path 192. The network interface controller 168 monitors the multiplex client data 230 to identify packets destined for its client module and its respective client. For each packet the network interface controller 168 identifies for the corresponding client module, it strips off the physical layer information and provides the respective client data to the client interface 222. The client interface 222 provides the respective client data to the client thereby facilitating Internet access for the particular client.
The multimedia server 42 may also provide intercom, or client-to-client, communications between the clients of the system 40. In this instance, the client interface 222 would receive a request for intercom communications from its client. The network interface controller 168 would packetize this request and provide it to the transceiving module 208 of multimedia server 42. The processing module 204 processes the request and determines whether the request can be fulfilled. Whether the request can be fulfilled is based on resource availability of the multimedia server, bandwidth availability of the communication path 192, and functionality capabilities of the clients involved in the intercom communication. If the request can be fulfilled, the processing module 204 provides a response to the initiating client module.
Once the intercom communication has been established, the initiating client provides data to the multimedia server via the network interface controller 168 in packets. The packets include a header section and a data section, wherein the header section indicates that the data section includes client-to-client data. Once the processing module 204 receives the packetized intercom data, the processing module 204 detects that this is a client-to-client communication and processes the client-to-client data 236. The processing module 204 provides the client-to-client data 236 as part of the client data 228. The client data 228 includes header information that identifies it as a client-to-client communication data, telecom data, and/or Internet communication data.
The transceiving module 208 performs the physical layer packetizing of the client data 228 to produce the multiplex client data 230. The targeted client module identifies the packets containing the client-to-client communication via the network interface controller 168, which strips off the physical layer portion of the packets and provides the client-to-client data to the client interface 222. The client interface 222 provides the intercom data to the respective client.
FIG. 8 illustrates a schematic block diagram of multimedia server 88 and client modules 90 98 of the multimedia communication system 80 of FIG. 3. The multimedia server 88 includes a tuning module 240, a channel mixer 242, a transceiving module
246 and a control module 244. Each of the client modules 90 98 includes a network interface controller 270, a video and/or audio interface 172, and a selection module 272.
In operation, the selection module 272 receives an input from a client to produce a source selection 276. The input from the client indicates the particular multimedia source that is to be accessed. In this example, the multimedia source may be a DVD player 82, a VCR 86, a compressed video source 248, closed circuit television system, and/or any other type of video source. The selection module 272 may receive the input directly from the client and/or include circuitry to receive the communication from the remote control device of the client. As such, the selection module 272 interprets the remote control transmission of the client to produce the source selection 276. The source selection 276 includes a header section and a data section. The header section includes the identity of the client module and indicates that the data section including a request as opposed to actual data.
The source selection 276 is provided to the network interface controller 270, which adds physical layer overhead onto the source selection 276 and provides it as a select requests 258 266 to the multimedia server 88.
The transceiving module 246 receives the select requests 258 266 and removes the physical layer overhead. The transceiving module 246 provides the select request 250, which includes the source selections 276 of the client modules, to the control module 244. The control module processes the select request 250 to authenticate the request, determine whether the server can support the request, and, if so, produces a set of selection commands 252.
The tuning module 240 receives the set of selection commands 252 and selects data from one or more of the multimedia sources 82, 86, and 248 based on the corresponding selection commands 252. The tuning module 240 provides the data from the selected multimedia sources as a set of channels 254 to the channel mixer 242.
The channel mixer 242 processes the set of channels 254 by converting the data of each multimedia source into generic data. The generic data is converted into a specific format video data, which is then combined into a stream of channel data
256. The transceiving module 246 receives the stream of channel data 256 and packetizes it for transmission as packets of data 268.
Each of the network interface controllers 270 of the client modules 90 98 receives the packets of data 268. The network interface controller 270 strips off the physical layer overhead and interprets it to determine whether the packet is destined for its respective client module. If so, the network interface controller provides the audio and/or video data 274 contained in the packet to the video and audio interface 172. The video and audio interface 172 provides the data to an audio input and/or video input of the client.
FIG. 9 illustrates a schematic block diagram of multimedia server 102 and client modules 112 120 of multimedia system 100 of FIG. 4. In this illustration, multimedia server 102 includes a transceiving module 286, a control module 284, a tuning module 280, and a channel mixer 282. Each of the client modules 120 includes a network interface controller 308, a selection module 310 and an audio interface 312.
In operation, the selection module 310 receives an input from its respective client. The input identifies a particular audio source, such as digital audio storage 104, CD 110, DVD audio 106, radio receiver 108. The input is processed by the selection module 310 to produce a source selection 314. The source selection 314 identifies the particular source and the corresponding client. The network interface controller 308 packetizes the source selection 314 and provides it as a select request
298 306 to the multimedia server 102.
The transceiving module 286 receives the select request 298 306 via the communication path 192 and reconstructs the source selection 314 as selection request 288. The control module 284 receives the select request 288 and determines whether they can be fulfilled. The determination is based on resources available within the multimedia server 102, bandwidth availability of communication path 192, authenticity of the particular client, and privilege access for the particular client. If the selection request for the client can be processed, the control module produces a selection command 292 for each corresponding select request.
The tuning module 280 receives the set of selection commands 292 and accesses the playback data from the identified audio source. The audio sources include the digital audio storage 104, which may be storing digitized audio, MP3 files, CD player, DVD audio player 106 and/or a radio receiver 108. The tuning module 280 outputs the selected playback of the corresponding audio services as a set of channels 294.
The channel mixer 282 receives the set of channels 294 and converts them into generic audio data. The generic audio data is then converted into a specific audio data format, which is combined into a stream of channel data 290. The channel mixer
282 provides the stream of channel data 290 to the transceiving module 286. The transceiving module 286 packetizes the stream of channel data 290 and provides it as packets of data 296 to the plurality of client modules 112 120.
The network interface controller 308 of the client module 112 120 receives the packets of data 296. The network interface controller 308 interprets each packet to determine whether the packet is for its respective client module 120. For each packet that is for its client module, network interface controller 308 extracts audio data 316 and provides it to the audio interface 312. The audio interface 312 provides the audio data 316 for playback to its respective client device.
FIG. 10 illustrates a schematic block diagram of multimedia server 132 and client modules 134 142 of the multimedia communication system 130 of FIG. 5. The multimedia server 132 includes processing module 345, memory 347, channel mixer 342, transceiving module 346, control module 344, and tuning module 340. Each of the client modules 142 includes a selection module 334, network interface controller 330, client interface 222, video and audio interface 172, video interface 332, and an audio interface 312.
In this multimedia communication system, a client may select any one of a variety of multimedia services including client-to-client communications, viewing a channel from a satellite connection, cable connection, etc., viewing closed circuit television, viewing compressed video stored in memory, viewing a DVD, viewing a cassette from a VCR, listening to digital audio, listening to a compact disk, listening to DVD audio, listening to a radio station, accessing the Internet, and/or participating in a telephone call.
To initiate one or more of these multimedia services, the selection module 334 of a client module receives an input either from the client device or a remote control device associated with the client device. The input identifies the particular client as well as identifying the particular service desired. The selection module 334 interprets the input to produce a source selection 336. The selection module 334 provides the source selection 336 to the network interface controller 330.
The network interface controller 330 prepares the source selection 336 for transmission to the multimedia server 132. The preparation may be done by packetizing the source selection 336 for a physical layer type transmission, placing at least a portion of the source selection 336 in an allocated timeslot in a TDM transmission scheme, responding to a polling request from the multimedia server 132, requesting and/or receiving a token ring, et cetera. Regardless of the type of access scheme used, the network interface controller 330 produces a request 320 328, which is transmitted to the transceiving module 346 of multimedia server 132.
The transceiving module 346 receives the request 320 328 from the client modules 134 142. The transceiving module 346 processes the request in accordance with the transmission scheme utilized. For example, if the transmission scheme is carrier sense multiple access, the transceiving module 346 interprets the header to identify the particular client such that it may isolate the individual request 320 328. As a further example, if TDM access is utilized, the transceiving module 346 identifies the particular timeslot allocated to each client module to identify the corresponding request 320 328. Regardless of the type of transmission scheme utilized, the transceiving module 346 removes the physical layer type overhead from the requests 320 328
to recapture the source selections 336. The source selections 336 are provided as select requests 350 to the control module 344.
The transceiving module 346 processes requests 320 328 to identify the particular type of selection being requested. If the selection is to access one of the multimedia sources, it processes that as described above. If, however, the transceiving module 346 detects one or more of the requests 320 328 requesting client-to-client communication, the transceiving module 346 generates a client-to-client request, which is provided to processing module 345.
The control module 334 interprets each of the select requests 350 in accordance with the access privileges and authentication processes for each of the client modules 134 142. If the selection request is valid and the client module has been authenticated, the control module 334 generates a select command for each corresponding request 320 328. The control module 334 provides the select commands as a set of commands 352 to the tuning module 340.
The tuning module 340 processes each of the select commands of the set of commands 352 to identify the multimedia source to be accessed. For each command received, the tuning module 340 selects the appropriate channel of the multimedia sources. For multimedia sources that include a plurality of channels, such as a satellite connection, cable connection, radio receiver, et cetera, the tuning module 340 selects the particular source and also further selects one of the plurality of channels from such multimedia sources. The resulting isolated channels are provided to the channel mixer 342 as a set of channels 348.
The processing module 345 receives client-to-client communication requests and processes the request to produce client-to-client data 236. The processing module 345 provides the client-to-client data 236 as client data 228 to the channel mixer
342.
The channel mixer 342 processes the set of channels 348 and, when included, the client data 228. The channel mixer 342 converts the data of each channel of the set of channels 348 into generic data. The client data 228 is multiplexed with the generic data of the set of channels 348 to produce the stream of channel data 354. The channel mixer 342 provides the stream of channel data 354 to the transceiving module 346.
The transceiving module transmits the stream of channel data 354 in accordance with the data transmission protocol incorporated by the multimedia communication system. As such, the stream of channel data 354 is framed, packetized, et cetera to produce packets of data 356 that are provided via a communication path to each of the client modules 134 142.
The network interface controller 330 of each of the client modules receives the packets of data 356 and interprets overhead information within the header to determine whether this particular packet is for the corresponding client module. If so, the network interface controller strips off the overhead information and further interprets the particular type of data contained in the packet. This may be done by reading additional overhead information to identify the particular sources of information and/or accessing memory, which corresponds the anticipated packets with the source selection 336. If the packets correspond to data received from one of the multimedia sources, the network interface controller 330 provides audio and/or video data 338 to one or more of the interfaces 172, 332 or 312. If, however, the data relates to a client-to-client communication, telephone call or accessing the Internet, the network interface controller 330 provides the received data to the client interface 222.
Each of the interfaces 172, 222, 332, and 312 interfaces with the respective client devices either through external ports of the client device such as a serial port, parallel port, or internal access through a PCI bus, AC 97 bus, et cetera. Once the data is received by the client device, it is displayed visual and/or audibly as if the client device had direct access to the particular multimedia source being accessed.
As one of average skill in the art will appreciate, the mixing of data performed by channel mixer 342 may utilize a prioritization scheme depending on the type of data being mixed. For example, if the data being mixed includes real time audio and/or video data, such data may take priority over non-real time video and/or audio. Such real time video and/or audio include telephone communications, watching live broadcasts, et cetera while non-real time video and/or audio include viewing a DVD, VCR, listening to digital audio, CD, DVD audio, et cetera. The non-real time data may be transmitted in large bursts with greater time intervals between the bursts and still provide a continuous flow of display data. Conversely, real time data is transmitted in smaller bursts and more frequently.
As one of average skill in the art will further appreciate, the memory 347 of multimedia server 132, or other memories in any of the multimedia server shown, may enable the multimedia server to function as a digital VCR. As such, live broadcasts may be captured from a satellite connection, cable connection, NTSC broadcast, PAL broadcast, HDTV broadcast and stored in memory for subsequent playback.
As one of average skill in the art will further appreciate, the multimedia server 132 may couple to one or more of the multimedia sources shown. As such, multimedia server 132 may include the functionality of any one or all of the multimedia servers shown in FIGS. 1 4. Correspondingly, each client module 134 142 may include the functionality of one or more of the client modules shown in FIGS. 1 4.
FIG. 11 illustrates an alternate schematic block diagram of the multimedia communication systems shown in FIGS. 1 5. The multimedia server 12, 42, 88, 102 and/or 132 includes a processing module 360 and memory 362. The multimedia server is operably coupled to receive one or more of multimedia sources. Such multimedia sources include a plurality of channels 158 from a satellite connection, cable connection, NTSC broadcast, PAL broadcast, HDTV broadcast, compressed video 248 from a memory device, camcorder, et cetera, DVD playback 82, VCR playback 86, stored digital audio 104, CD playback 110, DCD audio playback 106, radio reception 108, internet connection 44, and/or connection to the public switch telephone network 66.
The processing module 360 may be a single processing device or plurality of processing devices. Such a processing device may be a microcontroller, microprocessor, microcomputer, central processing unit, digital signal processor, programmable gate array, state machine, logic circuitry, and/or any device that manipulates signals (analog and/or digital) based on operational instructions. The memory 362 may be a single memory device or a plurality of memory devices. Such a memory device may be a read-only memory, random access memory, system memory, flash memory, magnetic tape memory, programmable memory, erasable memory, and/or any device that stores digital information. Note that when the processing module 360 implements one or more of its functions via a state machine or logic circuitry, the memory storing the corresponding instructions is embedded within the circuitry comprising the state machine or logic circuitry. The functions performed by processing module 360 and stored in memory
362 are generally described in the logic diagrams of FIGS. 24 28, which will be discussed below.
In general, the multimedia server provides access for a plurality of clients to one or more of the multimedia services by receiving requests 182 190, 258 266, 298 306 and/or 320 328 from a client module. The multimedia server processes the request to produce packets of data 180, 268, 296 and/or 356 or multiplex client data 230 depending on the type of request. In addition, the client modules may provide packets of information 210 218, which contain data for Internet connections, telephone connections, and/or client-to-client communications. The multimedia server processes packets as described generally with reference to FIGS. 1 10.
Client module 14 22, 46 54, 90 98, 112 120 and/or 134 142 includes a processing module 364 and memory 366. The client module is operably coupled to a client 26, 28, 30, 32 and/or 34 to provide display data 368. The display data may include audio data, video data and/or text data. The type of display data 368 will depend on the particular multimedia source being accessed for the client. The processing module 364 may be a single processing device or a plurality of processing devices. Such a processing device may be a microprocessor, microcontroller, microcomputer, central processing unit, programmable gate array, state machine, logic circuitry, digital signal processor, and/or any device that manipulates signals (analog and/or digital) based on operational instructions. The memory 366 may be a single memory device or a plurality of memory devices. Such a memory device may be a read-only memory, random access memory, erasable memory, flash memory, magnetic tape memory, system memory, and/or any device that stores digital information. Note that when processing module 364 implements one or more of its functions via a state machine or logic circuitry, the memory storing the corresponding operational instructions is embedded within the circuitry comprising the state machine and/or logic circuit. The functions performed by processing module 364 and stored in memory 366 are described in greater detail with reference to FIGS. 52 62 and have been generally described with reference to FIGS. 1 10.
FIG. 12 illustrates a more detailed schematic block diagram of multimedia server 12 of the multimedia communication system of FIG. 1. The multimedia server 12 includes the tuning module 150, the channel mixer 152, the transceiving module 154, and the control module 156. The tuning module 150 includes a plurality of tuners 370 376 , an encoding module 380, and a bus interface module 382. The channel mixer 152 includes at least one stream parsing module 390, a memory controller 394, memory
392, a processor 396, and a data transcoding module 388. The stream parsing module 390 includes a plurality of bit stream modules 398 404.
In operation, the control module 156 provides the set of channel select commands 160 to the tuning module 150. As shown, each tuner receives an individual channel select command from the control module 156. Alternatively, the control module 156
provides a stream of data containing the channel select commands 160 to the tuning module 150. The tuning module then would interpret the stream of data to identify the particular commands being received and then provide individual channel select commands to tuners 370 376 . Each of the tuners 370 376 has its input coupled to receive the plurality of channels 158.
The plurality of channels may be received via a satellite connection, cable connection, NTSC broadcast, PAL broadcast, HDTV broadcast, et cetera. Accordingly, each of the tuners 370 376 would include a corresponding tuner functionality and construction. For example, if the plurality of channels 158 is being received via an NTSC broadcast, each of the tuners includes a television encoder to isolate one of the plurality of channels and produce digitized video as an output. Alternatively, if the plurality of channels 158 is received via a satellite connection, each of the tuners includes a satellite tuner as found in commercially available satellite receivers. The satellite tuner outputs, in MPEG 2 format, one or more channels of the plurality of channels. Similarly, for HDTV, cable TV, et cetera the tuners would be of a construct corresponding to the particular source of the plurality of channels. Since the construct of such tuners for each of the sources is known, no further discussion will be presented for the tuners except to further illustrate the concepts of the present invention.
Each tuner 370 376 outputs a selected channel 384 and provides it to the encoding module 380. The encoding module 380 encodes each of the selected channels 384 based on the encoding scheme used by the multimedia server 12 to produce encoded channel data 386. The encoding scheme may be one or more of multilevel encoding, non-return to zero encoding, Manchester encoding, block encoding and/or nB/mB encoding where in n>m. For example, the nB/mB may be 4B/5B encoding where 4 bits of actual data are converted into 5 bits of encoded data. In addition, the encoding attaches a header portion, which identifies the particular channel. The encoded channel data 386 is placed on a bus coupling the tuning module 150 to the channel mixer 152 by a bus interface module 382.
The bus interfacing module 382 places the encoded channel data 386 on the bus in accordance with the particular data transport scheme used within multimedia server 12. For example, the data conveyance protocol may be carrier sense multi-access, TDMA, et cetera.
The channel mixer 152 is operably coupled to receive the encoded channel data 386 from tuning module 150. The channel mixer 152 receives the encoded channel data 386 via the stream parsing module 390. The stream parsing module 390 includes a plurality of bit stream modules 398 404. Each of the bit stream modules 398 404 monitors the bus for data corresponding to a particular channel of interest. Accordingly, each of the bit stream modules 398 404 is allocated to process data related to a particular client module. For example, bit stream module 398 may be allocated to process data for client module 14 of FIG. 1, while bit stream module 400 is allocated to process data for client module 16 of FIG. 1, et cetera.
Each bit stream module 398 404 includes a bus interface module (not shown) to monitor the bus to detect the identity the relevant data. As one of average skill in the art will appreciate, alternatively, the channel mixer 152 may include a bus interface module that provides a single connection to receive all of the data, wherein the bus interface module interprets the data and provides it to the appropriate bit stream module 398 404. Each of the bit stream modules 398 404 isolates data of its corresponding channel of interest 406 and provides the data to memory 392 via memory controller 394.
As the data corresponding to each channel of interest 406 is stored in memory 392, the processing module 396 is converting the channel of interest 406 from its original format into generic data. The processor 396 causes the generic data to be stored in memory 392 via memory controller 394. For example, if the channel of interest corresponds to video data received from one of the multimedia sources, the processor converts the specific formatted video data (e.g., MPEG II) of the multimedia source into a generic video data. Such generic video data may be formatted as MPEG video data, JPEG data, M-JPEG video data, digital RGB data and/or digital YCBCR data.
If the data for the channel of interest is audio data, the processor 396 converts the formatted of audio data from its original format into generic audio data, such as MPEG formatted audio data, MP3 formatted data, and/or PCM digitized audio data.
The data transcoding module 388 retrieves the generic data 392 from memory via the memory controller 394 to produce a stream of channel data 166. If the generic data is generic video data, the transcoding module 388 converts the generic video data into a specific video data format, such as MPEG II, to produce the stream of channel data 166. If, however, the generic data includes generic audio data, the data transcoding module 388 converts it into a specific audio format, such as MP3. If the data is Internet data, telecommunication data, and/or client-to-client communication data, the transcoding module 388 provides the data unaltered as part of the stream of channel data 166.
The transceiving module 154 receives the stream of channel data 166 and processes it to produce packets of channel data 180. The processing performed by the transceiving module 154 is in accordance with the data conveyance protocol of the multimedia server. As such, the processing adds overhead information to identify the particular portions of the stream of channel data 166 that is destined for individual client modules.
FIG. 13 illustrates a more detailed schematic block diagram of multimedia server 42 of the multimedia communication system of FIG. 2. As shown, the multimedia server 42 includes a modem interface 202, processing module 204, memory controller
418, transceiving module 208, memory 206, and video graphics processing applications 420. The modem interface 202 is operably coupled to a modem 426, which provides the network connection 200. Note that the modem 426 may be an xDSL modem, a wireless modem, a 56K modem, a cable modem, an ISDN modem, or a connection to a home network. In addition, the modem interface 202 provides coupling to the public switch telephone network 66. As one of average skill in the art will appreciate, the multimedia server 42 may provide one or more of the functions of an Internet connection, connection to the public switch telephone network, and client-to-client communications.
The video graphics processing applications 420 may be software applications stored in memory 206 and executed by processing module 204. Alternatively, the video graphics process applications 420 may be executed by a single or multiple video graphics processors operable coupled to memory controller 418. In any implementation, the video graphics process applications 420 prepare video data for display on a CRT, LCD panel, et cetera.
The memory 206 stores a plurality of software applications including client service software 416, cordless telephone software 422, client-to-client software 424, modem allocation software 414, a plurality of web browser applications 410, and a plurality of email applications 412. The memory 206 also stores client display data 422. The client display data 422 is processed by the video graphics process applications 420 to produce outgoing display data.
In operation, the transceiving module 208 receives packets 210 218 from the plurality of client modules. Initially, the packets 210 218 include header information that identifies the particular client, information indicating that this is a service request packet, and its payload includes identity of the particular service being requested. The particular service being requested may be accessed to the Internet, participating in a telephone conversation via the PSTN, and/or client-to-client communications.
When the packets are received by the multimedia server, the transceiving module 208 removes the physical layer overhead information from the packets and provides retrieved requests 220 to memory controller 418. Memory controller 418 causes the retrieved requests 220 to be stored in memory 206. The processing module 204 retrieves the retrieved requests 220 to initiate processing of the requests. For requests indicating a particular type of service, the processing module 204 interprets the request to identify the service being requested. As an alternative to routing received request packets through memory controller 418, the receive request packets may be placed in a buffer and directly accessed by processing module 204 from the buffer.
The processing module 204 evokes the client service software 416 to interpret the received packets to identify whether the packets are requesting a particular type of service, what that service is, and/or identifying the packets as data packets. If the processing module 204 determines, via the client software 416, that the request is for a telephone conversation via the PSTN 66, the processing module 204 evokes the cordless phone software 422. If, however, the request is for client-to-client communication, the processing module 204 evokes the client-to-client software 424. If, however, the request is for access to the Internet, the processing module 204 evokes either an email application 412 or a web browser application depending on the particular type of access being requested.
For client-to-client communications, the transceiving module 208 receives packets containing communication data. The packets will be processed by the transceiving module to remove the physical layer overhead and provide the receive packets 220
to memory controller 418. The receive packets will be stored in the memory 206. The processing module 204, via the client-to-client software 424, retrieves the client-to-client communication data from memory 206 and processes it to produce client-to-client data 236. The processing module 204 provides the client-to-client data 236 to the memory controller 418 for storage in memory 206. The transceiving module 208 causes the memory controller 418 to retrieve the client-to-client data 236
from memory 206 and provide it as client data 228. The transceiving module 208 multiplexes the client data 228 for the client-to-client communication with other services being supported for the client modules to produce multiplex client data 230. The multiplex client data also includes the physical layer overhead to identify the individual packets once received by the client modules.
If the service request is for a telephone conversation via the PTSN 66, the processing module 204 evokes the cordless phone software 422. Accordingly, as the processing module 204 retrieves receive packets 220 from memory 206, it performs the cordless phone software 422 upon the data. In essence, the cordless phone software 422 causes the multimedia server 422 to act as a base station while the client module and/or client acts as the cordless handset. The telephone functionality utilizes a dual tone multi-frequency (DTMF) signaling for keying in the numbers. The transmission rate between the multimedia server 42 and the handset may utilize traditional 900 Mhz cordless phone frequencies, 2.4 gigahertz frequencies, and/or CDMA (code division multiple access) technology.
The processing module 204, upon processing the receive packets 220, produces network data 224 which is provided to the modem interface 202. The modem interface provides the network data 224 to the PSTN 66. Accordingly, the processing module 204
includes an identifier within the network data 224 such that the modem interface 202 knows to provide it to the PSTN 66 as opposed to the modem 426.
For incoming telecommunication data, the modem interface 202 provides the data as received network packets 226 to the processing module 204. The processing module 204 while performing the cordless phone software 422 processes the receive network packets 226 to produce client data 228. The client data 228 is temporarily stored in memory 206 before being transmitted to the clients as part of the multiplex client data 230 by the transceiving module 208.
If the requested service is to access to the Internet, the packets 210 218 received by the transceiving module 208 are temporarily stored in memory 206 as received packets 220. The processing module 204 evokes either the email application 412 or the web browser application 410 depending on the particular type of Internet access requested. For web browsing access, the processing module 204 accesses the web browser application 410. For email Internet access, the processing module 204 evokes the email application 412. The email applications 412 and web browser applications 410 are known, thus no further discussion will be provided as to their functionality except to further illustrate the concepts of the present invention.
For web browser access, the processing module 204 evokes the web browsing application 410 to process the received packets 220. Such processing yields network data 224, which is provided to the modem interface 202. The modem interface provides the network data 224 as outbound modem data 234.
Responses from the Internet are received by modem 426 and provided to the modem interface 202 as inbound modem data 232. The modem interface 202 provides the inbound modem data 232 as received network packets 226 to the processing module 204, while executing the web browser application 410 produces processed packets which are stored in memory 206. The video graphics process application 420 retrieves the processed packets from mem