Patent Document

BACKGROUND OF THE INVENTION 
     1. Priority Claim 
     This application claims the benefit of priority from European Patent Application No. 05016443.3, filed Jul. 28, 2005, which is incorporated by reference. 
     2. Technical Field 
     The invention relates to audio signal processing, and more particularly, to a vehicle communication system. 
     3. Related Art 
     Rapid advances in technology have lead to the adoption of extensive audio, video, and information systems in vehicles. The systems output navigational assistance, traffic reports, reports on vehicle status, play music, and play videos. The use of some many devices can create the devices, along with the configuration of a vehicle passenger compartment—which can result in complex reverberations and may be susceptible to transient vehicle noises. 
     To improve vehicle communications, some vehicles incorporate specific vehicle communication systems. A vehicle communication system may receive audio data representing a passenger&#39;s speech, process the received audio data, and redirect the processed audio data to vehicle passengers through vehicle speakers. Due to the positioning of audio inputs, the shape of the passenger compartment, and the configuration of the vehicle speakers, some systems may generate acoustic feedback. 
     In some instances, suppression and/or compensation filters are used to reduce feedback. The use of suppression and/or compensation filters may be complex and may require reconfiguration. When reconfigurations are not performed quickly, audible interference may be passed to the listener. As a result, some vehicle communication systems may reproduce speech signals that are difficult to understand. 
     Therefore, a need exists for an improved vehicle communication system. 
     SUMMARY 
     The vehicle communication system improves in-vehicle communications. The system detects the presence of a wearable communication device. The system may receive audio data from multiple sources inside or outside of a vehicle and may selectively route the audio data to multiple destinations that may include wearable personal communication devices, front and/or rear speakers, and/or a remote mobile device. A wearable personal communication device may transmit and/or receive audio data to/from sources within the vehicle or outside of the vehicle. 
     A vehicle communication system includes a signal processing logic and a controller in communication with the signal processing logic. The signal processing logic receives, processes, and outputs audio data. The controller detects a wearable personal communication device within the vehicle and may selectively route the output audio data to a detected wearable personal communication device and/or through the vehicle&#39;s audio system. 
     Other systems, methods, features and advantages will be, or will become, apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the following claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The system may be better understood with reference to the following drawings and description. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Moreover, in the figures, like referenced numerals designate corresponding parts throughout the different views. 
         FIG. 1  shows a vehicle communication system. 
         FIG. 2  is a vehicle communication system within a vehicle. 
         FIG. 3  is a vehicle communication system within a vehicle. 
         FIG. 4  is a vehicle communication system within a vehicle. 
         FIG. 5  shows an alternate vehicle communication system. 
         FIG. 6  shows a memory that stores protocol data. 
         FIG. 7  is a process in which a vehicle communication system exchanges data with a wearable personal communication device. 
         FIG. 8  is a process that recognizes a wearable personal communication device. 
         FIG. 9  is a process that identifies the location of a wearable personal communication device. 
         FIG. 10  is an alternative process that identifies the location of a wearable personal communication device. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     A vehicle communication system may detect the presence of one or more wearable personal communication devices (“communication device”). Based on the location of the communication devices, the vehicle communication system may either physically or virtually (e.g., through software) decouple vehicle inputs and/or vehicle outputs. The inputs and/or outputs may be positioned near a detected communication device. When a communication device is detected, the vehicle communication system may establish a communication path with the detected communication device. The vehicle communication system may receive audio data from a communication device, a vehicle input, and/or a vehicle information source. The vehicle communication system may transmit audio data to a communication device, a vehicle output, and/or a vehicle information source. Because some communication devices are wearable, an input and/or output associated with the communication device may be positioned closer to a user then an input and/or output within the vehicle. Therefore, audio data received from a communication device may have an increased signal-to-noise ratio, and audio data output to a communication device may be played at an increased volume with little or no effect feedback. 
       FIG. 1  shows a vehicle communication system  100 . The vehicle communication system  100  may include hardware and/or software that is capable of running on one or more processors in conjunction with one or more operating systems. The system may include signal processing logic  102  which may receive audio data from one or more inputs, and transmits audio data through one or more outputs. The signal processing logic  102  may communicate with other devices through an Input/Output (“I/O”) interface  104 . The I/O interface  104  may accept digital or analog audio data, and may communicate with other devices through wired or wireless connections. 
     In  FIG. 1 , the I/O interface  104  may communicate with a vehicle information source  106 , a vehicle input  108 , a vehicle output  110 , and/or an on-board computer  112 . A vehicle information source  106  may include a radio receiver, a television receiver, a compact cassette player, a compact disc player, a digital video disc player, a video cassette player, a personal computer, a video game console, a telephone (mobile or fixed), a navigation system, or any other device that transmits and/or receives audio data. The number of vehicle information source  106  devices may vary. 
     A vehicle input  108  may include a microphone or a moveable media that detects sound waves and converts the sound waves into electrical energy, such as a microphone. A vehicle output  110  or loudspeaker may convert electrical energy into sound waves at low, mid-range, and/or high frequencies. The signal processing logic  102  may receive, process, and/or output audio data in either a digital or analog format. The signal processing logic  102  may include an analog-to-digital converter  114  and a digital-to-analog converter  116 . These converters may be used by the signal processing logic  102  to convert the audio data into a desired format. 
     The I/O interface  104  may also facilitate communications between the signal processing logic  102  and a vehicle on-board computer  112 , such as an electronic control module, a body control module, or an after market unit that is capable of communicating with the existing circuitry within a vehicle using one or more allowable protocols. Some protocols that the I/O interface  104  may process may include 1850VPW, J1850PWM, ISO, ISO9141-2, ISO14230, CAN High Speed CAN, MOST, LIN, IDB-1394, IDB-C, D2B, Bluetooth®, TTCAN, TTP, or FlexRay®. 
     Audio data received by the signal processing logic  102  may be stored in a memory  118 . The signal processing logic  102  may access the memory  118  asynchronously or synchronously through one or more bi-directional and/or one or more uni-directional buses. The one or more buses may transmit data in parallel or series. The memory  118  may be partially or wholly a Read Only Memory (“ROM”) a Random Access Memory (“RAM”), or any other type of volatile and/or non-volatile storage space. 
     A controller  120  (e.g., processor, microprocessor, microcontroller, etc.) may communicate with the signal processing logic  102  and/or a transmission and/or reception device  122 , such as a separate transmitter and/or receiver or a transceiver. The transceiver  122  may process coded and/or uncoded data representing audio data or control data. Transmissions between the transceiver  122  and a communication device may use one or more wireless protocols, such as Bluetooth®, 802.11b, 802.11j, 802.11x, Zigbee, Ultra Wide Band, Mobile FI, Wireless Local Area Network (“WLAN”), and/or Infrared Data Transmissions which may include the Infrared Data Association IrDa 1.0 standard which may provide high transfer rates, or the Infrared Data Association IrDa 1.1 standard which may provide higher transfer rates. 
     Through the transceiver  122 , the controller  120  may exchange control data in half-duplex or full-duplex with a communication device. The controller  120  may analyze control data it receives to determine the type of wireless protocol being used by the communication device (e.g., whether the vehicle communication system  100  recognizes the communication device). For instance, the controller  120  may access the memory  118  asynchronously or synchronously through one or more bi-directional and/or unidirectional buses. Data may be transmitted between the controller  120  and the memory in parallel or series. The controller  120  may compare some or all of the received control data to pre-stored protocols recognized by the vehicle communication system  100 . If a match is identified, the controller  120  may transmit an acknowledgement to the communication device. If after cycling through the pre-stored protocols, no match is found, the controller  120  may indicate that the vehicle communication system is not pre-programmed to recognize the communication device. This signal may be transmitted to a user through an output device or a vehicle information source  106  which may prompt a user to enter configuration information. 
     Additionally, the controller  120  may analyze some or all of the received control data to determine communication device parameters. The communication device parameters may include information such as a communication device&#39;s wireless signal strength and/or the device&#39;s configuration (e.g., whether the communication device is configured with an input, such as a microphone; an output, such as a loudspeaker; or both). The controller  120  may use these parameters alone or in addition to other vehicle sensor data, such as weight sensors that may identify where passengers are positioned within the vehicle, to configure the vehicle communication system  100 . 
     For instance, the controller  120  may compare a communication device&#39;s signal strength to one or more threshold values. The result of the comparison may indicate to the controller  120  the location of the communication device within the vehicle. Based on the location of a detected communication device, the controller  120  may transmit a logic control signal to the signal processing logic  102 . The logic control signal may indicate which vehicle microphones  108  and loudspeakers  110  are to be decoupled, and which channels of the transceiver  122  should be used to communicate with a detected communication device. 
       FIG. 2  shows a vehicle communication system  100  within a vehicle  200 . In  FIG. 2 , one communication device is detected. The vehicle  200 , comprising a device to transport persons and/or things, may include an enclosed compartment  202 . The enclosed compartment  202  may be divided into different zones, such as a front zone  204  and a rear zone  206 . A first passenger  208  is positioned in the front zone  204  while a second passenger  210  is positioned in the rear zone  206 . Situated in both the front zone  204  and the rear zone  206  are a vehicle input  108 , such as a microphone, and a vehicle output  110 , such as a loudspeaker. The microphone  108  and loudspeaker  110  of both the front  204  and rear  206  zones may be integrated and may be in communication with the signal processing logic  102 . In  FIG. 2 , the I/O interface  104  is shown as a unitary part of the signal processing logic  102 . Transceivers  122  are positioned to receive and/or transmit data between the signal processing logic  102  and a communication device  212 . 
     In  FIG. 2 , the communication device  212  may be a wireless headset, a wireless telephone headset, a hands-free device, or other wearable device that includes an input and output device. The communication device  212  may include a power supply, a memory, signal processing logic, a transceiver a transmitter and receiver, and/or an input device and an output device, such as a microphone and loudspeaker, respectively. Data transmitted between the communication device  212  and the signal processing logic  102  is shown as data link  214 . The data link  214  may be a bi-directional link or may include separate transmit and receive links. The data transmitted through the data link  214  may include control data and/or audio data transmitted according to one or more wireless protocols. In one system, the data link  214  may include radio frequency signals broadcast over a short distance, such as less than or equal to about 10 meters, and in the Instrumentation Scientific and Medical (“ISM”) frequency band (e.g., 900 MHz, 1.8 GHz, 2.4 GHz, or 5.8 GHz) with a fast frequency hopping method of about 1600 frequency changes per second to provide a relatively high interference resistance. In other implementations, the data link  8  may include IrDa 1.0 or IrDa 1.1 infrared data transmissions. 
     In  FIG. 2 , the front zone  204  microphone  108  and loudspeaker  110  are decoupled from the signal processing logic  102 . In this state substantially no audio data is received at the front zone  204  microphone  108  near the communication device  212 . Similarly, substantially no audio data is output from the front zone  204  loudspeaker  110  near the communication device  212 . A microphone  108  and loudspeaker  110  may be identified near or by a communication device  212 , based on the location of the communication device  212  determined by the controller  120 . Additionally or alternatively, a microphone  108  and loudspeaker  110  may be identified near or by a communication device  212  when the distance between a microphone  108  and/or loudspeaker  110  to the communication device  212  is less than the distance to other microphones and/or loudspeakers within the vehicle compartment  202 . 
     Since the microphone  108  and loudspeaker  110  near the communication device  212  have been decoupled from the signal processing logic  102 , audio data is received from and transmitted to the communication device  212  through the data link  214 . Because no communication device was detected near the rear passenger  210 , the rear zone  206  microphone  108  and loudspeaker  110  remain in communication with the signal processing logic  102 . 
     Audio data from the front passenger  208  is received by the signal processing logic  102  through the data link  214  and is provided to the rear passenger  210  through the rear zone  206  loudspeaker  110 . Additionally, audio data from any vehicle information source may be sent to the rear passenger  210  through the rear zone  206  loudspeaker  110 . Audio data from the rear passenger  210  may be received by the signal processing logic  102  through the rear zone  206  microphone  108  and is sent to the front passenger  208  through the data link  214 . Additionally, audio data from any vehicle information source may be sent to the front passenger  208  through the data link  214 . 
     Because the microphone  108  and loudspeaker  110  located near the detected communication device  212  may be decoupled from the signal processing logic  102 , feedback effects at this location may be substantially or completely eliminated. Consequently, the signal processing logic  102  may be simplified, and therefore more complex elements such as compensation and/or suppression filters may not need to be included in the signal processing logic  102 . 
       FIG. 3  shows a vehicle communication system  100  within a vehicle  200 . In  FIG. 3 , the vehicle communication system  100  detects communication devices  212  in both the front zone  204  and the rear zone  206 . The vehicle communication system  100  may decouple the microphone  108  and loudspeaker  110  in both the front  204  and rear  206  zones. Audio data is transmitted to and received from the communication device  212  located in the front zone  204  through the data link  214 . The audio data received by the first passenger  208  may represent audio signals generated by a vehicle passenger, a vehicle information source, and/or an external source. The vehicle passenger may be the second passenger  210  wearing a communication device. Similarly, audio data is transmitted to and received from the communication device  212  located in the rear zone  206  through a data link  300 . The audio data received by the second passenger  210  may represent audio signals generated by a vehicle passenger, a vehicle information source, and/or an external source. The vehicle passenger may be the first passenger  208  wearing a communication device. The data links  214  and  300  may operate according to a common protocol, or may operate through different protocols. In  FIG. 3 , the I/O interface  104  is shown as a unitary part of the signal processing logic  102 . 
       FIG. 4  shows a vehicle communication system  100  within a vehicle  200 . In  FIG. 4 , the vehicle communication system  100  detects a communication device  400  in the rear zone  206  that does not include an input device. The communication device  400  may comprise a hearing aid or another wearable receiver, and may include a power supply a memory, signal processing logic, and a transceiver or transmitter and receiver. In  FIG. 4 , the signal processing logic  102  receives audio data from the microphones  108  in both the front  204  and rear  206  zones and transmits audio data to the loudspeakers  110  in both zones. The signal processing logic  102  transmits audio data to the communication device  400  over a data link  402 . The data link  402  may support one or more wireless protocols. In  FIG. 4 , the I/O interface  104  is shown as a unitary part of the signal processing logic  102 . 
     In some vehicle communication systems  100  the vehicle input  108  may include directive microphones, or microphone arrays. Directive microphones may use a directive polar pattern to receive a substantial portion of a passenger&#39;s verbal utterance from a specified area while substantially rejecting or dampening signals outside of the same specified area. A vehicle communication system utilizing a microphone array may exploit a signal lag from direct and reflected speech signals arriving at separate microphones that are spaced apart. 
     Vehicle communication systems  100  may utilize wireless and wired connections. In some systems, ports or jacks may used within the vehicle. These ports or jacks may be connected with the vehicle&#39;s communication bus and may facilitate the exchange of audio data between a communication device and the vehicle communication system  100 . In some systems, a vehicle communication system controller may analyze data received from the communication bus to determine the location of a communication device and/or a communication device configuration. 
     Other vehicle communication systems  100  may receive information through an on-board computer  112  or a vehicle information source  106 . The information may define the type of communication device (e.g., wired or wireless), the location of a communication device within the vehicle, and if necessary the wireless protocol used by a communication device. Still other vehicle communication systems  100  may include a switch that may be actuated automatically or manually, by a user, to turn off a vehicle microphone  108  and/or vehicle loudspeaker  110  from the signal processing logic  102 . The vehicle communication system  100  may be employed in automobiles, trains, aircrafts, or any other vehicle which may transport persons and/or things. 
       FIG. 5  shows an alternate vehicle communication system  500 . In  FIG. 5 , a signal processing logic  502  includes controller  504 , voice control logic  506 , and external transceiver  508 . The controller  504  may provide the voice control logic  506  audio data processed by the signal processing logic  502 . The audio data received by the voice control logic  506  may be used to control various elements of a vehicle, such as a radio receiver, a television receiver, a compact cassette player, a compact disc player, a digital video disc player, a video cassette player, a personal computer, a video game console, a telephone, a navigation system, a window, mirror, an entertainment system, and/or climate control system. Additionally, the controller  504  may control the signal processing logic  502  to transmit audio data to or receive audio data from external transceiver  508 . The external transceiver  508  may communicate with a remote party located outside of the passenger compartment  202  using a mobile or fixed audio device. Moreover, the controller  504  may be configured to control the signal processing logic  502  to transmit audio data received from a remote party to one or more communication devices without transmitting the audio data through a vehicle speaker  110 . 
     The various protocols that allow system to transfer information may be stored in devices that store and retrieve information. In  FIG. 6  the rules or standards that may allow one device to communicate wirelessly with another device are retained in a memory  600 . When a communication device indicates a readiness to receive or send data, the communication device may load one or more device drivers that determine the communication protocol. Through signal transmissions and comparisons one or more protocols may be selected automatically (e.g., plug and play) or by user selection. The wireless protocols may be stored in memory locations  602 , and may include Bluetooth®, 802.11 b, Zigbee, WLAN, or IrDa. In other wireless or wired systems, other protocols may be used. 
       FIG. 7  is a process in which a vehicle communication system exchanges data with a communication device. At act  700 , the vehicle communication system determines whether it recognizes a communication device. Recognition may occur through an analysis of control data. The analysis may be made through a vehicle communication system controller comparing some or all of the received control data to configuration data stored in a memory space. Alternatively, the controller may search for communication devices by periodically broadcasting a control message and waiting for a return acknowledgement signal from a communication device through an event driven processing and handshake. Alternatively, an autopolling process may be used. 
     If a communication device is not recognized automatically, the controller may check for user input information at act  702 . The controller may receive user input information through the vehicle&#39;s communication bus. If a user has not entered configuration information at act  702 , the vehicle communication system may receive audio data at act  704  through a vehicle microphone or from another vehicle information source. The received audio data may be processed by signal processing logic at act  706 . Processing of the audio data may include positive or negative amplification; filtering; signal conversion; echo cancellation; collection of non-primary audio data, such as meta data; spatial information extraction; energy detection; end-pointing; and/or other signal processing. At act  708 , the processed data may be transmitted through vehicle loudspeakers. Depending on the source of the input audio data, the output audio data may be output through one or more of the vehicle loudspeakers. 
     If a communication device is recognized automatically by the vehicle communication system at act  700 , or a user inputs configuration information at act  702 , the vehicle communication system controller may analyze the received control data or configuration information at act  710  to determine if the communication device is configured with a microphone. If the communication device does not include a microphone, the vehicle communication system may not decouple a vehicle microphone near this communication device. Accordingly, at act  712 , audio data near this communication device is received through a vehicle microphone. The received audio data may be processed by signal processing logic at act  714 . Processing of the audio data may include positive or negative amplification; filtering; signal conversion; echo cancellation; collection of non-primary audio data, such as meta data; spatial information extraction; energy detection; end-pointing; and/or other signal processing. At act  716 , an audio signal representing the processed data may be sent through a wired or wireless medium to one or more vehicle loudspeakers and/or a communication device loudspeaker. The audio signal may be converted into audible sound through the vehicle loudspeakers and/or a communication device loudspeaker. 
     If at act  710  it is determined that the communication device is configured with a microphone, the controller may turn off a vehicle microphone and loudspeaker proximately located near this communication device at act  718 . At act  720 , audio data in near this communication device is received through the communication device&#39;s microphone. The received audio data may be processed at act  722 . Processing of the audio data may include positive or negative amplification; filtering; signal conversion; echo cancellation; collection of non-primary audio data, such as meta data; spatial information extraction; energy detection; end-pointing; and/or other signal processing. At act  724 , an audio signal representing the processed data may be sent through a wired or wireless medium to one or more vehicle loudspeakers and/or a communication device loudspeaker. The audio signal may be converted into audible sound through the vehicle loudspeakers and/or a communication device loudspeaker. Some vehicle communication systems may be pre-configured to only operate with communication devices that include both a loudspeaker and a microphone, or that only include a loudspeaker. 
       FIG. 8  is a process that recognizes a wearable personal communication device. At act  800 , the vehicle communication system controller receives control data. The control data may be pushed to the controller by the communication device, or may be pulled by the communication device in response to a polling message transmitted by the vehicle communication system. At act  802 , the controller accesses a memory that retains data identifying recognizable communication devices. The data may contain manufacturer, model, communication protocol, and/or wireless protocol information. At act  804 , the controller may compare some or all of the received control data to a first accessed memory. If the data stored in the first accessed memory location matches the control data, the vehicle communication system recognizes the communication device, and the controller may cause a acknowledge signal to be transmitted to the communication device at act  806 . 
     If the data of the first accessed memory location does not match some or all of the control data, the controller may determine whether additional memory locations containing pre-stored configuration information exist at act  808 . If additional pre-stored memory locations are detected, the controller may access and compare some or all of the control data to the data stored in another memory location. The controller may continue to access and compare the pre-stored data with some or all of the control data. If no match is found, the controller may cause a signal to be transmitted at act  810  indicating to a user that a communication device is not recognized. This signal may be provided to a user through audio output by a vehicle loudspeaker and/or through video data output through a vehicle information source, such a display screen. 
       FIG. 9  is a process that identifies the location of a wearable personal communication device. At act  900 , the vehicle communication system controller receives control data from a communication device. The control data may be pushed to the controller by the communication device, or may be pulled by the communication device in response to a polling message transmitted by the vehicle communication system. At act  902 , the controller may determine the signal strength of the communication device. 
     The communication device&#39;s signal strength may be compared to a first threshold at act  904 . If the signal strength exceeds the first threshold value, the controller may recognize that the communication device is in a first zone at act  906 . At act  908 , the controller checks for additional vehicle sensor data, such as audio data, weight sensor data, seat belt engagement data, and/or vehicle acceleration data. If such data is identified, the controller may use this data in combination with the threshold data to identify a more particular location of the communication device at act  910 . If additional vehicle sensor data does not exist, the vehicle communication system may prompt the user for more information through a vehicle loudspeaker at act  912 . Alternatively, the vehicle communication system may prompt the user for more information through a vehicle information source, such a display screen. 
     If at act  904 , the signal strength does not exceed the first threshold, the controller may determine whether the signal strength exceeds a second threshold value at act  914 . If the second threshold value is exceeded, the controller may recognize that the communication device is in a second zone at act  916 . The controller may then continue to identify a more particular location of the communication device. The number of threshold comparisons may be configured to match the number of zones recognized by a vehicle communication system. 
       FIG. 10  is an alternative process that identifies the location of a wearable personal communication device. At act  1000  speech is detected by a communication device input. Audio data corresponding to this speech is transmitted to the vehicle communication system&#39;s signal processing logic at act  1002 . At act  1004 , a vehicle microphone receives speech input. At act  1006 , audio data corresponding to the speech received at the vehicle microphone is input into the signal processing logic. The signal processing logic compares the audio data received from the vehicle microphone and the communication device and compares the audio data at act  1008  to determine if the audio data is substantially similar. If the audio data is substantially similar, the vehicle microphone and/or a vehicle loudspeaker may be decoupled at act  1010  and a communication path may be established with the communication device at act  1012 . If the audio data is not substantially similar, the vehicle communication system may process the audio data for transmission to separate outputs at act  1014 . Accordingly, the audio data received from the communication device may be transmitted to a vehicle loudspeaker, vehicle information source, and/or remote party, and the audio data received from the vehicle microphone may be transmitted to a communication device, a vehicle information source, and/or a remote party. 
     The methods and processes may be encoded in a signal bearing medium, a computer readable medium such as a memory, programmed within a device such as one or more integrated circuits, or processed by a controller or a computer. If the methods are performed by software, the software may reside in a memory resident to or interfaced to the signal processing logic  102  (or  502 ), the controller  120  (or  504 ), or any type of communication interface. The memory may include an ordered listing of executable instructions for implementing logical functions. A logical function may be implemented through digital circuitry, through source code, through analog circuitry, or through an analog source such as through an electrical, audio, or video signal. The software may be embodied in any computer-readable or signal-bearing medium, for use by, or in connection with an instruction executable system, apparatus, or device. Such a system may include a computer-based system, a processor-containing system, or another system that may selectively fetch instructions from an instruction executable system, apparatus, or device that may also execute instructions. 
     A “computer-readable medium,” “machine-readable medium,” “propagated-signal” medium, and/or “signal-bearing medium” may comprise any means that contains, stores, communicates, propagates, or transports software for use by or in connection with an instruction executable system, apparatus, or device. The machine-readable medium may selectively be, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. A non-exhaustive list of examples of a machine-readable medium would include: an electrical connection “electronic” having one or more wires, a portable magnetic or optical disk, a volatile memory such as a Random Access Memory “RAM” (electronic), a Read-Only Memory “ROM” (electronic), an Erasable Programmable Read-Only Memory (EPROM or Flash memory) (electronic), or an optical fiber (optical). A machine-readable medium may also include a tangible medium upon which software is printed, as the software may be electronically stored as an image or in another format (e.g., through an optical scan), then compiled, and/or interpreted or otherwise processed. The processed medium may then be stored in a computer and/or machine memory. 
     While various embodiments of the invention have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible within the scope of the invention. Accordingly, the invention is not to be restricted except in light of the attached claims and their equivalents.

Technology Category: h