Source: http://www.google.com/patents/US20060161675?dq=6480844
Timestamp: 2016-07-31 02:14:12
Document Index: 520354387

Matched Legal Cases: ['application No. 09', 'application No. 09', 'application No. 09', 'application No. 09', 'application No. 09', 'application No. 09', 'application No. 10', 'application No. 10', 'application No. 10', 'application No. 10', 'application No. 10', 'application No. 10', 'application No. 10', 'application No. 10', 'application No. 10', 'application No. 10', 'application No. 10']

Patent US20060161675 - System and method for multimedia delivery in a wireless environment - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inPatentsA multimedia processing system and method thereof are provided. The system and method provide for synchronizing a first clock of a multimedia decoder of a first multimedia processing device to a second clock of a multimedia encoder of a second multimedia processing device, synchronizing a first timing...http://www.google.com/patents/US20060161675?utm_source=gb-gplus-sharePatent US20060161675 - System and method for multimedia delivery in a wireless environmentAdvanced Patent SearchPublication numberUS20060161675 A1Publication typeApplicationApplication numberUS 11/038,856Publication dateJul 20, 2006Filing dateJan 20, 2005Priority dateJan 20, 2005Also published asCN1897490A, CN1897490B, EP1684519A2, EP1684519A3, EP1684519B1, US7421048Publication number038856, 11038856, US 2006/0161675 A1, US 2006/161675 A1, US 20060161675 A1, US 20060161675A1, US 2006161675 A1, US 2006161675A1, US-A1-20060161675, US-A1-2006161675, US2006/0161675A1, US2006/161675A1, US20060161675 A1, US20060161675A1, US2006161675 A1, US2006161675A1InventorsPaul Ducharme, James Girardeau, Adeline Chiu, James DoyleOriginal AssigneeVixs Systems, Inc.Export CitationBiBTeX, EndNote, RefManPatent Citations (65), Referenced by (27), Classifications (24), Legal Events (4) External Links: USPTO, USPTO Assignment, EspacenetSystem and method for multimedia delivery in a wireless environment
CROSS-REFERENCE TO RELATED APPLICATIONS [0001] Related subject matter is found in a co-pending U.S. patent application, having application No. 09/823,646 (Attorney Docket Number 1459-ViXS002), filed Mar. 20, 2001, entitled “ADAPTIVE BANDWIDTH FOOTPRINT MATCHING FOR MULTIPLE COMPRESSED VIDEO STREAMS IN A FIXED BANDWIDTH NETWORK,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 09/864,524 (Attorney Docket Number 1459-ViXS003), filed May 24, 2001, entitled “METHOD AND APPARATUS FOR A MULTIMEDIA SYSTEM,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 09/864,602 (Attorney Docket Number 1459-ViXS004), filed May 24, 2001, entitled “METHOD AND APPARATUS OF MULTIPLEXING A PLURALITY OF CHANNELS IN A MULTIMEDIA SYSTEM,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 09/864,476 (Attorney Docket Number 1459-ViXS008), filed May 24, 2001, entitled “METHOD AND APPARATUS FOR MANAGING RESOURCES IN A MULTIMEDIA SYSTEM,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 09/990,976 (Attorney Docket Number 1459-ViXS0012), filed Nov. 21, 2001, entitled “SYSTEM AND METHOD FOR MULTIPLE CHANNEL VIDEO TRANSCODING,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 09/990,737 (Attorney Docket Number 1459-ViXS0013), filed Nov. 21, 2001, entitled “METHOD AND SYSTEM FOR RATE CONTROL DURING VIDEO TRANSCODING,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 10/137,151 (Attorney Docket Number 1459-ViXS0036), filed May 2, 2002, entitled “METHOD AND SYSTEM FOR PROTECTING VIDEO DATA,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 10/174,371 (Attorney Docket Number 1459-ViXS0038), filed Jun. 18, 2002, entitled “DYNAMICALLY ADJUSTING DATA RATE OF WIRELESS COMMUNICATIONS,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 10/376,581 (Attorney Docket Number 1459-ViXS0048), filed Feb. 28, 2003, entitled “METHOD AND APPARTUS FOR NON-INTRUSIVE TRANSCEIVER PROPERTY ADJUSTMENT,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 10/376,853 (Attorney Docket Number 1459-ViXS0051), filed Feb. 28, 2003, entitled “SYSTEM FOR PROVIDING DATA TO MULTIPLE DEVICES AND METHOD THEREOF,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 10/345,710 (Attorney Docket Number 1459-ViXS0053), filed Jan. 16, 2003, entitled “METHOD OF MOTION VECTOR PREDICTION AND SYSTEM THEREOF,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 10/345,847 (Attorney Docket Number 1459-ViXS0054), filed Jan. 16, 2003, entitled “METHOD OF VIDEO ENCODING USING WINDOWS AND SYSTEM THEREOF,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 10/375,582 (Attorney Docket Number 1459-ViXS0059), filed Feb. 24, 2003, entitled “METHOD AND SYSTEM FOR TRANSCODING VIDEO DATA,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 10/461,095 (Attorney Docket Number 1459-ViXS0060), filed Jun. 13, 2003, entitled “SYSTEM AND METHOD FOR PROCESSING AUDIO FRAMES,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 10/683,062 (Attorney Docket Number 1459-ViXS0061), filed Oct. 10, 2003, entitled “METHOD AND APPARATUS FOR ACCURATELY DETECTING VALIDITY OF A RECEIVED SIGNAL,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 10/673,693 (Attorney Docket Number 1459-ViXS0062), filed Sep. 29, 2003, entitled “METHOD AND SYSTEM FOR SCALING IMAGES,” which is hereby incorporated herein by reference in its entirety. Related subject matter is found in a co-pending U.S. patent application, having application No. 10/673,612 (Attorney Docket Number 1459-ViXS0063), filed Sep. 29, 2003, entitled “METHOD AND SYSTEM FOR NOISE REDUCTION IN AN IMAGE,” which is hereby incorporated herein by reference in its entirety.
FIELD OF THE DISCLOSURE [0002] The present disclosure relates generally to multimedia data delivery and more particularly to multimedia delivery in wireless systems. BACKGROUND [0003] In order to achieve reliable broadcast-quality motion picture experts group (MPEG) audio/video (A/V) distribution in an MPEG A/V delivery system, the audio and video received and encoded at an MPEG server typically must be played back at an MPEG client at substantially the same rate at which the MPEG data was received at the server. This matching rate significantly contributes to the reliable delivery of A/V data as it allows the decoder at the MPEG client to consume A/V data at the rate at which it was generated, thereby reducing or avoiding buffer underflow or overflow and thus reducing or eliminating artifacts in the displayed video and audio. In view of the benefits of the matching rate requirement, the MPEG standards, e.g., ISO/IEC 13818, typically institute a quality requirement that the jitter between the server and the client remain within +/−500 nanoseconds (ns). Accordingly, the MPEG standards implement elaborate mechanisms in an effort to fulfill this jitter requirement in standard broadcast systems. These mechanisms typically are satisfactory in satellite, cable or terrestrial delivery systems due to the near constant delay between the server and the client. However, in wireless networks and other similar networks, these mechanisms often fail because the wireless links typically do not exhibit a substantially constant delay between wireless devices. To illustrate, in IEEE 802.11 applications, the frequency, and thus the symbol rate, used to transmit information is dependent on the distance between the transmitter and the receiver. Accordingly, as the distance between the server and client varies, so does the jitter in the transmission of MPEG data between the server and client. Similarly, obstructions between the server and the client may cause dynamic changes in the symbol rate, thereby resulting in dynamic changes in the transmission time and therefore the jitter of MPEG data. [0004] The magnitude of jitter also may increase as a result of the implementation of MPEG delivery systems within a network, such as a local area network (LAN), a wide area network (WAN), a metropolitan area network (WAN), the Internet and the like. In these instances, the transmission of MPEG data from a server to a client typically would require the processing of the MPEG data at various layers of the network stack (e.g., the telecommunications protocol/internet protocol (TCP/IP) stack) at the server, the transmission of the processed MPEG data via a wireless medium, and then the subsequent processing of the MPEG data at various layers of the network stack at the client. Considerable additional jitter maybe introduced due to variances in the software and hardware implementing these network stacks. The overall jitter resulting from these variances may be of such magnitude so as to prevent the client from synchronizing to the server. Accordingly, improved techniques for synchronizing devices in wireless environments so as to reduce jitter would be advantageous.
BRIEF DESCRIPTION OF THE DRAWINGS [0005] The purpose and advantages of the present disclosure will be apparent to those of ordinary skill in the art from the following detailed description in conjunction with the appended drawings in which like reference characters are used to indicate like elements, and in which: [0006] FIG. 1 is a block diagram illustrating an exemplary MPEG delivery system in accordance with at least one embodiment of the present disclosure. [0007] FIG. 2 is a flow diagram illustrating an exemplary operation of the MPEG delivery system of FIG. 1 in accordance with at least one embodiment of the present disclosure. [0008] FIG. 3 is a flow diagram illustrating an exemplary method for synchronizing a multiple clocks in accordance with at least one embodiment of the present disclosure. [0009] FIG. 4 is a block diagram illustrating an exemplary transmitter synchronization module in accordance with at least one embodiment of the present disclosure. [0010] FIG. 5 is a block diagram illustrating an exemplary receiver synchronization module in accordance with at least one embodiment of the present disclosure. [0011] FIG. 6 is a block diagram illustrating an exemplary numerically controlled oscillator in accordance with at least one embodiment of the present disclosure. [0012] FIG. 7 is a flow diagram illustrating an exemplary operation of a transmission synchronization module in accordance with at least one embodiment of the present disclosure. [0013] FIG. 8 is a flow diagram illustrating an exemplary method for clock synchronization in accordance with at least one embodiment of the present disclosure. [0014] FIG. 9 is a flow diagram illustrating an exemplary method for synchronizing a playback and adjusting time stamps of a multimedia data stream in accordance with at least one embodiment of the present disclosure. [0015] FIG. 10 is a flow diagram illustrating an exemplary method for the retransmission of packets in accordance with at least one embodiment of the present disclosure. [0016] FIG. 11 is a block diagram illustrating an exemplary heartbeat message in accordance with at least one embodiment of the present disclosure.
DETAILED DESCRIPTION OF THE DISCLOSURE [0017] The following description is intended to convey a thorough understanding of the present disclosure by providing a number of specific embodiments and details involving synchronized multimedia data delivery. It is understood, however, that the present disclosure is not limited to these specific embodiments and details, which are exemplary only. It is further understood that one possessing ordinary skill in the art, in light of known systems and methods, would appreciate the use of the disclosure for its intended purposes and benefits in any number of alternative embodiments, depending upon specific design and other needs. [0018] FIGS. 1-11 illustrate exemplary techniques for the synchronized delivery and display of multimedia data between a multimedia server and a multimedia client. For ease of illustration, the exemplary techniques are discussed in the context of an MPEG delivery system comprising an MPEG server and an MPEG client in a wireless LAN, as well as in the context of conventional MPEG timing standards, which typically are based on a 90 KHz clock (which generally is derived from a 27 MHz clock signal divided by 300). However, those skilled in the art may utilize these techniques in other server/client systems, other multimedia formats, in other types of networks and/or in other types of timing schemes using the guidelines provided herein without departing from the spirit or the scope of the present disclosure. [0019] Referring now to FIG. 1, an exemplary MPEG delivery system 100 is illustrated in accordance with at least one embodiment of the present disclosure. In the depicted example, the delivery system 100 comprises an MPEG server 102 coupled to an MPEG client 104 via a wireless link 106. The MPEG server 102 comprises an audio/video (A/V) encoder 108, a radio frequency (RF) transceiver 110, a transmitter synchronization module 112, clock sources 114 and 116 and an antenna 118. The MPEG client 104 comprises an antenna 119, an RF transceiver 120, an input buffer 122, an A/V decoder 124, a receiver synchronization module 126 and clock sources 128 and 130. The A/V encoder 108 may comprise any of a variety of MPEG encoders or transcoders and the A/V decoder 124 similarly may comprise any of a variety of MPEG decoders or transcoders. The RF transceivers 110 and 120 may include wireless transmitters compatible with one or more wireless protocols, such as, for example, IEEE 802.11 a/b/c/e/g/i (collectively referred to herein as IEEE 802.11), and the like. The clock sources 114, 116, 128 and 130 may comprise any of a variety of crystals or oscillators that may be used to generate a clock signal, including, but not limited to overtone crystal oscillators, fundamental crystal oscillators, canned oscillators, LC oscillators, ceramic resonators, VCXO oscillators, and the like. [0020] At the MPEG server 102, the A/V encoder 108 receives input A/V data 132 and provides as an output an encoded or transcoded representation of the input A/V data 132. The RF transceiver 110 packetizes the encoded/transcoded A/V data and provides it for transmission over the wireless link 106 via the antenna 118. The A/V data 132 may represent, for example, MPEG audio and/or video data provided by a satellite feed, a cable head end, an Internet data stream, a DVD player and the like. At the MPEG client 104, the packetized A/V data is received by the RF transceiver 120 via the antenna 119. The A/V data is depacketized and provided to the input buffer 122 for storage. The A/V data is provided from the input buffer 122 to the A/V decoder 124 for decoding or transcoding and the resulting decoded/transcoded A/V data 134 may be provided for display on one or more display devices, stored on a hard disk or optical drive, retransmitted to another device for further processing, and the like. [0021] As illustrated, the A/V encoder 108 is clocked by clock signal 136 (having frequency ƒA) provided by clock source 114 and the transceiver 110 is clocked by clock signal 138 (having frequency ƒB) provided by clock source 116. At the MPEG client 104, the A/V decoder 124 is clocked by clock signal 144 derived from a clock signal 140 (having frequency ƒD) provided by the clock source 128 and the transceiver 120 is clocked by clock signal 142 (having frequency ƒC) provided by the clock source 130. For ease of discussion, the frequencies ƒA and ƒD are assumed to be approximately 27 megahertz (MHz) in accordance with the MPEG standards and the frequencies ƒB and ƒC are assumed to be approximately 40 MHz. However, clock signals having other frequencies may be used, as appropriate, without departing from the spirit or the scope of the present disclosure. [0022] Ideally, the clock sources 114 and 128 are perfectly synchronized and the clock sources 116 and 130 are perfectly synchronized, thereby reducing or eliminating jitter between the encoding of the A/V data 132 at the MPEG server 102 and the subsequent decoding of the A/V data 134 at the MPEG client 104. However, process variations, changes in temperature, voltage, and manufacturing defects, typically result in the production of clock sources that do not maintain an exactly constant frequency. This frequency drift typically is not mirrored between the clock sources of the MPEG server 102 and the MPEG client 104, and therefore potentially results in unacceptable jitter in the absence of a technique for adjusting the clock sources of the MPEG client 102 to more closely match the clock sources of the MPEG server 104. Accordingly, in at least one embodiment, the MPEG distribution system 100 employs a synchronization technique based on the frequency offsets between multiple clocks. [0023] In at least one embodiment, the transceiver synchronization module 112 receives as inputs the clock signals 136 and 138, and from these clock signals determines a clock offset value (herein referred to Δppm1) between the clock signals 136 and 138. The clock offset value Δppm1 preferably is represented as parts-per-million (ppm), but in other instances may be represented as a frequency value or clock tick value. An exemplary technique for determining the clock offset value Δppm1 is discussed below with reference to FIG. 2. In at least one embodiment, the clock offset value Δppm1 is representative of the variance between the clock signals 136 and 138, i.e., whether the clock source 114 is slower or faster relative to the clock source 116. [0024] The synchronization module 112 then provides the clock offset value Δppm1 to the RF transceiver 110 for transmission to the MPEG client 104. In at least one embodiment, RF transceiver 110 packetizes the clock offset value Δppm1 by embedding it within a maintenance message between the MPEG server 102 and the MPEG client 104. To illustrate, FIG. 11 depicts an exemplary maintenance message packet 900 having in its payload 902 an absolute server time field 904 for providing an indication of the time at the MPEG server 102 and a ppm1 offset field 906 for providing an indication of the value of Δppm1. At the MPEG client 104, the RF transceiver 120 receives the packetized clock offset value Δppm1, depacketizes the clock offset value Δppm1 and provides it to the receiver synchronization module 126. In addition, the RF transceiver 120 or the synchronization module 126 determines a second clock offset (herein referred to as Δppm2) between the clock signals 138 and 142. As with the clock offset Δppm1, the clock offset Δppm2 preferably is represented as ppm, but also may be represented by, for example, a frequency value or a clock tick value. The RF transceiver 120 then provides the clock offset value Δppm2 to the synchronization module 126. In at least one embodiment, the synchronization module 126 utilizes the clock offset values Δppm1 and Δppm2 to adjust the clock signal 144 provided to the A/V decoder 124 to adjust for the jitter present between the clock sources 114 and 116 and the clock sources 116 and 130, as discussed in greater detail below. [0025] It will be appreciated that the use of the clock offset values Δppm1 and Δppm2 may result in substantial frequency drift over time as there is no feedback loop between the clocks 128, 130 and the clocks 114 and 116. Accordingly, in at least one embodiment, the synchronization module 126 monitors the fullness of the input buffer 122 to gauge the effective synchronization of the clocks 128, 130 to the clocks 114, 116. Generally, when the clock signal of an MPEG decoder is adequately synchronized to the clock signal of an MPEG encoder, the buffer supplying MPEG data to the decoder typically remains within a certain buffer fullness because the data typically is output from the buffer at the same rate it is input due to the adequate clock synchronization. However, when the clock signals are not adequately synchronized, buffer overflow or underflow may result. Accordingly, when the synchronization module 126 detects that the input buffer 122 may be heading toward a buffer underflow or overflow condition, the synchronization module 126 may implement a clock correction procedure as described in detail below. [0026] Referring to FIG. 2, an exemplary operation of the MPEG delivery system 100 of FIG. 1 is illustrated in accordance with at least one embodiment of the present disclosure. The method 150 representing the exemplary operation initiates at step 150, wherein the clock 130 of the MPEG client 104 is synchronized to the clock 116 of the MPEG server 102 using any of a variety of techniques known to those skilled in the art. At step 152, the decoder 124 timing reference (e.g., derived from clock 128) of the MPEG client 104 is synchronized to the encoder 108 timing reference (e.g., clock 114) of the MPEG server 102. Exemplary techniques for achieving this synchronization are described in greater detail below with reference to FIGS. 3-8. After the clocks of the MPEG server 102 and the MPEG client 104 are synchronized, MPEG data streams may be encoded at the MPEG server 102 and transmitted via the wireless network 106, for example, to the MPEG client 104 for subsequent decoding and display. In at least one embodiment, the timing reference values embedded in the MPEG data stream (e.g., program clock references (PCRs) or system clock references (SCRs)) may be converted from absolute values (i.e., values that refer directly to a fixed timing) to relative values (i.e., timing values that are relative to a particular timing point). Thus, an absolute time reference may be viewed as a measurement of a single clock at a particular time, while a relative time reference may be viewed as a calculation of the difference between two clocks measured simultaneously. As described in greater detail below with reference to FIG. 9, this conversion may be implemented by subtracting the local clock reference of the MPEG server 102 from the absolute timing values in the MPEG data stream at the MPEG server 102 prior to providing the MPEG data stream to the MPEG client 104. [0027] At step 155, the MPEG data stream is packetized and provided to the MPEG client 104 via the wireless network 106. At step 156, the relative timing reference values in the MPEG data stream are converted back to absolute timing reference values. As described below with reference to FIG. 9, the MPEG client 104 may convert the relative timing reference values back to absolute timing values by adding the client's local clock reference at the MPEG client 104 to the relative timing reference values. The MPEG data stream then may be buffered in the input buffer 122 and then provided to the A/V decoder 124 at the appropriate time for decoding and display. [0028] Referring now to FIG. 3, an overview of an exemplary method for synchronizing the timing reference used by the A/V decoder 124 of the MPEG client 104 to the timing reference used by the A/V encoder 108 of the MPEG server 102 is illustrated in accordance with at least one embodiment of the present disclosure. The illustrated method 170 initiates at step 171 wherein a first offset between the clock 114 and the clock 116 is determined. As described in detail with reference to FIG. 4, this first offset may be derived from a ratio of the number of clock ticks or cycles of the clock 116 to the number of clock ticks or cycles of the clock 114 over a predetermined period. The first offset therefore may represent a relative synchronization between the clocks 114 and 116. [0029] At step 172, a representation of the first offset is provided to the MPEG client 104. To illustrate, the first offset representation may be packetized and transmitted as one or more packets via the wireless transceivers 110 and 120. At step 173, a second offset between the clock 116 of the MPEG server 102 and the clock 130 of the MPEG client 104 is determined. The second offset may be determined using any of a variety of techniques known to those skilled in the art, such as, for example, by using time domain correlation on a short synch training period to determine rough time and frequency alignment and then using time domain correlation in conjunction with frequency domain analysis to determine fine timing and frequency alignment. Time domain correlation and phase information from the OFDM pilot signal and OFDM constellation then may be used to drive an increasingly finer frequency offset between the transceivers 110 and 120. The second offset therefore may represent a relative synchronization between the clocks 116 and 130. [0030] As noted above, the first offset represents the relative synchronization between the clocks 114 and 116 and the second offset may represent the relative synchronization between the clocks 116 and 130. Accordingly, at step 174, the first and second offsets may used to adjust the timing reference of the A/V decoder 124 (e.g., clock signal 144) so as to synchronize it with the clock 114 of the MPEG server 102, as described in greater detail with reference to FIGS. 5-8. Moreover, as noted below, the fullness of the input buffer 122 may be monitored and used to detect an error which may be used to further adjust the clock signal 144. In this instance, a trend toward a potential buffer underflow or overflow may be used to detect whether or not the clock synchronizations is operating properly and the client clock can be artificially slowed down or sped up to compensate for the error and thus avoid the underflow and overflow. Moreover, the MPEG client 104 may implement a crash lock mechanism whereby the MPEG client, after first connecting to the MPEG server 102, may utilize the absolute server time and the Δppm1 value in the first received heartbeat message 900 (FIG. 11) to set it's local absolute time equal to the absolute time of the MPEG server 102 plus some additional predetermined time (e.g., 0.5 seconds) corresponding to the network's buffer size. The MPEG client further may use this crash lock technique after a channel change or if it is determined that the absolute time of the MPEG client 104 is too far out of synch with the absolute time of the MPEG server 102. [0031] Referring now to FIG. 4, an exemplary implementation of the transmitter synchronization module 112 is illustrated in accordance with at least one embodiment of the present disclosure. In the illustrated example, the synchronization module 112 comprises a scaling PLL 202, counters 204, 206, a latch 208, and a clock offset calculation module 210. The scaling PLL 202 receives as an input the clock signal 138 and outputs a clock signal 214 scaled by a predetermined scaling factor. In the illustrated example, the frequency ƒB of the clock signal 138 is approximately 40 MHz and the scaling factor of the scaling PLL 202 is four, resulting in the scaled clock signal 214 having a frequency of approximately 160 MHz. The clock signal 214 is used to increment the counter 204 and the clock signal 136 (having a frequency ƒA of approximately 27 MHz) is used to increment the counter 206. The counter 204 has a programmable maximum count register and when the counter 204 reaches this maximum count, a ripple carry output (RCO) is provided at the output of the counter 204. The RCO is input to the latch 208, causing the latch 208 to latch to the current count of the counter 206 and further causing the counters 204 and 206 to reset to zero. The current count of the counter 206 is provided to the clock offset calculation module 210 whereupon the clock offset value Δppm1 is calculated. [0032] It will be appreciated that the current count of the counter 206 is representative of the number of clock cycles of the clock signal 136 during a predetermined number of clock cycles of the clock signal 214 (which was scaled to improve its resolution). From the current count of the counter 206, the clock offset calculation 210 may determine the clock offset value Δppm1 in accordance with the following equations: C1=Bit_Count/FreqE*(FreqA+FreqA*ppmmax — offset/1e6) {EQ. 1}
where Bit_Count represents the maximum unsigned number that may be represented by the number of bits in registers 204, 206 and 208 (e.g., Bit_Count=230 for a 30-bit register), FreqA represents the frequency of clock signal 136 (e.g., 27 MHz), FreqE represents the frequency of the scaled clock signal 214 (e.g., 160 MHz), ppmmax — offset represents the maximum ppm offset of the clocks 114, 116, 128 and 130 and ppmmin — offset represents the minimum ppm offset of the clocks 114, 116, 128 and 130, and ppmspread represents the spread between ppmmax — offset and ppmmin — offset. As an example, ppmmax — offset typically would be approximately 40 ppm, ppmmin — offset might be approximately −40 ppm, for a total ppmspread of approximately 80 ppm. [0033] Referring now to FIG. 5, an exemplary implementation of the receiver synchronization module 126 is illustrated in accordance with at least one embodiment of the present disclosure. In the illustrated example, the synchronization module 126 comprises a PHY processor 302, a MAC processor 304, a numerically controlled oscillator (NCO) 306, a PLL 308 a transport module 310 and buffer monitor 312. [0034] Upon reception of a wireless signal, an orthogonal frequency division multiplexing (OFDM) demodulator 314 of the RF transceiver 120 demodulates the wireless signal and provides the resulting A/V data to the MAC processor 304, which in turn buffers the A/V data in the input buffer 122. As discussed in detail below, the MAC processor 304 (or, alternatively, the PHY processor 302) may convert the timing reference values (e.g., PCRs or SCRs) embedded in the A/V data from relative values back to absolute values. As noted above, the data also may include a representation of the clock offset value Δppm1, which the MAC processor 304 uses to control the NCO 306. The OFDM demodulator 314 further provides a phase offset or frequency offset to the PHY processor 302, where the phase/frequency offset is determined from timing circuits of the OFDM demodulator 314 (such as detectors, synchronizers and PLLs) that continuously run to correctly recover the data. Typically, this phase/frequency offset is averaged over a number of packets to obtain a frequency or phase offset accurate within fractions of a ppm. The PHY processor 302 determines the clock offset value Δppm2 from this phase/frequency offset and provides the clock offset value Δppm2 to control the NCO 306. The buffer monitor 312, in one embodiment, monitors the fullness of the buffer 122 to determine whether the fullness of the buffer has fallen below a lower threshold or has risen above a higher threshold. Based on this comparison, the buffer monitor 312 provides an error e to the NCO 312. [0035] The NCO 312 output frequency is adjusted based on the clock offset values Δppm1 and Δppm2 and the error e. It will be appreciated that the resulting signal 316 output by the NCO 312 will be “dirty” (i.e., having a periodic clock cycles) and therefore is smoothed by the PLL 308. The resulting clock signal 318 then may be provided to the transport module 310, which uses the clock signal 318 for timing the removal of A/V data from the buffer 122. The clock signal 318 is also provided to the A/V decoder 124 for use in timing the decoding and display of the A/V data provided by the transport module 310. [0036] Referring now to FIG. 6, an exemplary implementation of the NCO 306 is illustrated in accordance with at least one embodiment of the present disclosure. The NCO 306 comprises two summation modules 402, 404, an offset register 406, an ACC register 408 and a divider 410. In operation, the clock offset values Δppm1 and Δppm2 and the error e are summed by the summation module 402 and loaded into the offset register 406. Although not illustrated, the summation module 402 may comprise an additional input, e.g., a nominal ppm input, such that the summation module 402 outputs a nominal ppm value when the inputs for error e, Δppm1 and Δppm2 are zero so that the nominal frequency will be output. The contents of the offset register 406 are continually added to the ACC register 408 by the summation module 404, which in turn updates at a rate determined by a clock signal 412, which represents a scaled representation of the clock signal 144. At each occurrence of a RCO, the state of the divider 410 changes, thereby creating the clock signal 144, which has the desired ppm offset from the clock signal 412. The clock signal 144, being substantially synchronized to the clock signal 136 using the techniques described above, then may be provided to the A/V decoder 124 for accurate timing of its decoding operations. [0037] Referring now to FIGS. 7 and 8, exemplary general methods 500 and 600 summarizing the above-described techniques are illustrated. Method 500 initiates at step 502 wherein the number of clock cycles of the clock signal 136 over a predetermined time period are measured. At step 504, the number of clock cycles of the clock signal 138 are measured over the same time period. At step 506, the clock offset value Δppm1 is determined from a comparison of the clock cycles measured in steps 502 and 504, as discussed above with respect to FIG. 2. At step 508, the clock offset value Δppm1 is provided from the MPEG server 102 to the MPEG client 102 via the wireless link 106 for use in adjusting one or more of the clock sources of the MPEG client 104. [0038] Method 600 initiates at step 602 whereupon the MPEG client 104 receives the clock offset value Δppm1. At step 604, the clock offset value Δppm2 is determined. Meanwhile, at step 606, the fullness of the buffer 122 is monitored by comparing the fullness with one or more low and high thresholds to detect a potential buffer underflow or overflow. Based on this comparison, an error value e is generated. At step 608, the clock signal 144 provided to the A/V decoder 124 is adjusted based on the clock offset values Δppm1, Δppm2 and the error value e so as to more closely synchronize the clock signal 144 to the clock signal 136. [0039] Referring now to FIG. 9, an exemplary technique for converting the timing reference values (e.g., PCRs or SCRs) of an MPEG data stream from absolute values to relative values, and vice versa, is illustrated in accordance with at least one embodiment of the present disclosure. For ease of illustration, the technique is described in the context of PCRs in an MPEG transport stream (TS). However, using the guidelines provided herein, this technique may be utilized to convert SCRs in MPEG program streams (PS) without departing from the spirit or the scope of the present disclosure. [0040] As illustrated, an MPEG transport stream 702 comprising a plurality of PCR values 703-706 (also referred to herein as PCR1-PCR4, respectively) is provided from the A/V encoder 108 (FIG. 1) to the transmitter synchronization module 112. A component of the synchronization module 112, converts the PCR values 703-706 from absolute timing reference values to relative PCR values 713-716, respectively (also referred to herein as PCR′1- PCR′4). In at least one embodiment, the PCR values 703-706 are converted to relative PCR values 713-716 by subtracting the local timing reference, herein referred to as the real time protocol (RTP) clock of the MPEG server 102, which, in one embodiment comprises the counter incremented by the local clock 114. To illustrate, each PCR value 703-706 may be converted in accordance with the following equation: PCR′ x =PCR x −RTP Server {EQ. 5}
where RTPServer represents the value of the RTP counter incremented by local clock 114. [0041] The resulting MPEG TS stream 712 then is packetized and transmitted between the RF transceiver 110 of the MPEG server 102 and the RF transceiver 120 of the MPEG client 104. At the MPEG client 104, the MPEG stream 712 is depacketized and a component of the receiver synchronization module 126 converts the relative PCR values 713-716 back to absolute PCR values 723-726 (also referred to herein as PCR″1-PCR″4). In one embodiment, the synchronization module 126 converts the PCR values back to absolute values by adding the client RTP counter value (incremented by the clock 128) of the MPEG client 104 to generate the PCR values in accordance with the following equation: PCR″ x =PCR′ x +RTP Client {EQ. 6}
where RTPClient represents the value of the RTP by the local clock 128. [0042] Note that when EQ. 6 is substituted into EQ. 7, the following equation results: PCR″ x =PCR x −RTP Server +RTP Client {EQ. 7}
Thus, presuming that RTPServer and RTPClient are synchronized (i.e., RTPServer˜=RTPClient), EQ. 8 simplifies to: PCR″ x ˜=PCR x {EQ. 8}
[0043] Thus, as EQ. 9 demonstrates, the conversion from absolute PCR values to relative PCR values at the MPEG server 102 and the subsequent conversion of the relative PCR values back to absolute PCR values recovers the original PCR values (assuming the server and client RTP counters are synchronization) while reducing or eliminating the effects of jitter and propagation delay between the MPEG server 102 and the MPEG client 104 on the PCR values in the resulting MPEG transport stream 722. [0044] Referring now to FIG. 10, an exemplary packet retransmission method 800 is illustrated in accordance with at least one embodiment of the present disclosure. Many packet-switched network protocols provide for a packet retransmission technique wherein a receiving device may request the retransmission of a packet upon the determination that the packet was not received or was received in a corrupted form. However, these conventional retransmission techniques simply provide that the same exact packet be retransmitted. However, this may result in timing issues at the receive if the packet contains absolute timing reference values, such as the network heartbeat message 900 (FIG. 11) as the subsequent retransmission of packets having the same absolute timing reference value may cause undesirable time shifts at the receiving device. [0045] Accordingly, in one embodiment, the MPEG server 102 implements method 800 in order to adjust the value of absolute timing references in retransmitted packets so as to reduce the occurrence and magnitude of such timing issues. At step 801, a packet is transmitted from the MPEG server 102 to the MPEG client 104. At step 802, the MAC processor 304 (FIG. 5) determines that the packet was not received or was corrupted. Accordingly, the MAC processor 304 provides a retransmit packet request to the MPEG server 102. A MAP processor at the MPEG server 102 determines whether the packet contains an absolute timing reference value. If so, the absolute timing reference value is adjusted based on the local clock at step 804 and the packet is retransmitted at step 805. If not, the packet is retransmitted without alteration at step 805. [0046] Other embodiments, uses, and advantages of the present disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the disclosure disclosed herein. The specification and drawings should be considered exemplary only, and the scope of the disclosure is accordingly intended to be limited only by the following claims and equivalents thereof. Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS622886 *Sep 24, 1898Apr 11, 1899 Grinding-wheelUS654961 *May 14, 1900Jul 31, 1900Paschal P EmoryStuff-chest for paper-mills.US4866395 *Dec 28, 1988Sep 12, 1989Gte Government Systems CorporationUniversal carrier recovery and data detection for digital communication systemsUS5027203 *Apr 20, 1990Jun 25, 1991Sony CorporationMotion dependent video signal processingUS5093847 *Dec 21, 1990Mar 3, 1992Silicon Systems, Inc.Adaptive phase lock loopUS5115812 *Nov 28, 1989May 26, 1992Hitachi, Ltd.Magnetic resonance imaging method for moving objectUS5253056 *Jul 2, 1992Oct 12, 1993At&T Bell LaboratoriesSpatial/frequency hybrid video coding facilitating the derivatives of variable-resolution imagesUS5475434 *Aug 12, 1994Dec 12, 1995Goldstar Co. Ltd.Blocking effect attenuation apparatus for high definition television receiverUS5563950 *May 30, 1995Oct 8, 1996International Business Machines CorporationSystem and methods for data encryption using public key cryptographyUS5602589 *Aug 19, 1994Feb 11, 1997Xerox CorporationVideo image compression using weighted wavelet hierarchical vector quantizationUS5635985 *Nov 14, 1994Jun 3, 1997Hitachi America, Ltd.Low cost joint HD/SD television decoder methods and apparatusUS5644361 *Nov 30, 1994Jul 1, 1997National Semiconductor CorporationSubsampled frame storage technique for reduced memory sizeUS5652749 *Jul 25, 1996Jul 29, 1997International Business Machines CorporationApparatus and method for segmentation and time synchronization of the transmission of a multiple program multimedia data streamUS5732391 *Sep 20, 1996Mar 24, 1998Motorola, Inc.Method and apparatus of reducing processing steps in an audio compression system using psychoacoustic parametersUS5737020 *Jan 7, 1997Apr 7, 1998International Business Machines CorporationAdaptive field/frame encoding of discrete cosine transformUS5740028 *May 29, 1997Apr 14, 1998Canon Kabushiki KaishaInformation input/output control device and method thereforUS5844545 *Nov 18, 1996Dec 1, 1998Minolta Co., Ltd.Image display apparatus capable of combining image displayed with high resolution and image displayed with low resolutionUS5850443 *Aug 15, 1996Dec 15, 1998Entrust Technologies, Ltd.Key management system for mixed-trust environmentsUS5940130 *Apr 21, 1995Aug 17, 1999British Telecommunications Public Limited CompanyVideo transcoder with by-pass transfer of extracted motion compensation dataUS5996029 *Oct 15, 1996Nov 30, 1999Canon Kabushiki KaishaInformation input/output control apparatus and method for indicating which of at least one information terminal device is able to execute a functional operation based on environmental informationUS6005623 *Jun 7, 1995Dec 21, 1999Matsushita Electric Industrial Co., Ltd.Image conversion apparatus for transforming compressed image data of different resolutions wherein side information is scaledUS6005624 *Dec 20, 1996Dec 21, 1999Lsi Logic CorporationSystem and method for performing motion compensation using a skewed tile storage format for improved efficiencyUS6014694 *Jun 26, 1997Jan 11, 2000Citrix Systems, Inc.System for adaptive video/audio transport over a networkUS6040863 *Dec 18, 1998Mar 21, 2000Sony CorporationMethod of coding and decoding motion vector and apparatus therefor, and method of coding and decoding picture signal and apparatus thereforUS6081295 *Apr 21, 1995Jun 27, 2000Deutsche Thomson-Brandt GmbhMethod and apparatus for transcoding bit streams with video dataUS6141693 *Jun 30, 1998Oct 31, 2000Webtv Networks, Inc.Method and apparatus for extracting digital data from a video stream and using the digital data to configure the video stream for display on a television setUS6144402 *Jul 8, 1997Nov 7, 2000Microtune, Inc.Internet transaction accelerationUS6167084 *Aug 27, 1998Dec 26, 2000Motorola, Inc.Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signalsUS6182203 *Jan 23, 1998Jan 30, 2001Texas Instruments IncorporatedMicroprocessorUS6215821 *Aug 7, 1996Apr 10, 2001Lucent Technologies, Inc.Communication system using an intersource coding techniqueUS6219358 *Sep 11, 1998Apr 17, 2001Scientific-Atlanta, Inc.Adaptive rate control for insertion of data into arbitrary bit rate data streamsUS6222886 *Jun 24, 1996Apr 24, 2001Kabushiki Kaisha ToshibaCompression based reduced memory video decoderUS6236683 *Feb 7, 1995May 22, 2001Sgs-Thomson Microelectronics S.A.Image predictorUS6259741 *Feb 18, 1999Jul 10, 2001General Instrument CorporationMethod of architecture for converting MPEG-2 4:2:2-profile bitstreams into main-profile bitstreamsUS6263022 *Jul 6, 1999Jul 17, 2001Philips Electronics North America Corp.System and method for fine granular scalable video with selective quality enhancementUS6300973 *Jan 13, 2000Oct 9, 2001Meir FederMethod and system for multimedia communication controlUS6307939 *Aug 19, 1997Oct 23, 2001France TelecomMethod and equipment for allocating to a television program, which is already conditionally accessed, a complementary conditional accessUS6314138 *Jul 21, 1998Nov 6, 2001U.S. Philips CorporationMethod of switching between video sequencing and corresponding deviceUS6323904 *Apr 21, 1997Nov 27, 2001Electrocraft Laboratories LimitedMultifunction video compression circuitUS6327273 *Dec 23, 1999Dec 4, 2001AlcatelMethod to transparently transport an incoming clock signal over a network segment, and related transmitter and receiver unitUS6366614 *Oct 11, 1996Apr 2, 2002Qualcomm Inc.Adaptive rate control for digital video compressionUS6385248 *Jun 26, 1998May 7, 2002Hitachi America Ltd.Methods and apparatus for processing luminance and chrominance image dataUS6438168 *Jun 23, 2001Aug 20, 2002Bamboo Media Casting, Inc.Bandwidth scaling of a compressed video streamUS6480541 *Oct 23, 1998Nov 12, 2002Realnetworks, Inc.Method and apparatus for providing scalable pre-compressed digital video with reduced quantization based artifactsUS6526099 *Apr 20, 1999Feb 25, 2003Telefonaktiebolaget Lm Ericsson (Publ)TranscoderUS6549561 *Aug 21, 2001Apr 15, 2003Magis Networks, Inc.OFDM pilot tone tracking for wireless LANUS6584509 *Jun 23, 1998Jun 24, 2003Intel CorporationRecognizing audio and video streams over PPP links in the absence of an announcement protocolUS6714202 *Nov 30, 2000Mar 30, 2004Canon Kabushiki KaishaMethod for encoding animation in an image fileUS6724726 *Oct 24, 2000Apr 20, 2004Mitsubishi Denki Kabushiki KaishaMethod of putting a flow of packets of a network for transporting packets of variable length into conformity with a traffic contractUS6748020 *Oct 25, 2000Jun 8, 2004General Instrument CorporationTranscoder-multiplexer (transmux) software architectureUS7263110 *Sep 10, 2003Aug 28, 2007D&M Holdings Inc.Synchronizing clock signals of server and client devices in a network system based on power source synchronous pulse signalUS20010026591 *Jan 25, 2001Oct 4, 2001Avishai KerenMultimedia stream compressionUS20020106022 *Nov 8, 2001Aug 8, 2002Kazushi SatohImage information conversion apparatus and image information conversion methodUS20020110193 *May 25, 2001Aug 15, 2002Samsung Electronics Co., Ltd.Transcoding method and apparatus thereforUS20020138259 *Mar 29, 2002Sep 26, 2002Matsushita Elec. Ind. Co. Ltd.Audio coding method, audio coding apparatus, and data storage mediumUS20020145931 *Feb 5, 2001Oct 10, 2002Pitts Robert L.Method and apparatus for storing data in an integrated circuitUS20020196851 *Sep 3, 2001Dec 26, 2002Lecoutre Cedric ArnaudMethod of converting video data streamsUS20030093661 *Aug 10, 2001May 15, 2003Loh Thiam WahEeprom agent recordUS20030148785 *Feb 4, 2002Aug 7, 2003Manish MangalMethod and system for selectively reducing call-setup latency through management of paging frequencyUS20030152148 *Nov 21, 2001Aug 14, 2003Indra LaksonoSystem and method for multiple channel video transcodingUS20030169776 *Mar 6, 2003Sep 11, 2003Gord ReesorClock synchronization over a packet network using SRTS without a common network clockUS20040090994 *Jun 29, 2001May 13, 2004Lockridge Terry WayneMulti-media jitter removal in an asynchronous digital home networkUS20040174907 *Mar 15, 2004Sep 9, 2004Van Der Putten Frank OctaafTransmitter for a very high speed digital subscriber lineUS20060009246 *Jun 28, 2005Jan 12, 2006Interdigital Technology CorporationNeighbor scanning in wireless local area networksUS20060075133 *Dec 7, 2004Apr 6, 2006Microsoft CorporationReliable messaging using clocks with synchronized rates* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS7627071 *Mar 3, 2006Dec 1, 2009Qisda CorporationTiming synchronization module and method for synchronously playing a media signalUS7787578 *Jul 12, 2006Aug 31, 2010Realtek Semiconductor Corp.Method and apparatus for synchronizing multimedia data streamUS8040991Jul 30, 2010Oct 18, 2011Realtek Semiconductor Corp.Method and apparatus for synchronizing multimedia data streamUS8059688 *Nov 15, 2011Intel CorporationSynchronizing multiple system clocksUS8396113 *Jan 17, 2007Mar 12, 2013Samsung Electronics Co., Ltd.Data receiving device and method for shortening channel switching time in digital multimedia broadcasting systemUS8510589 *Aug 29, 2008Aug 13, 2013Intel Mobile Communications GmbHApparatus and method using first and second clocksUS9302115 *Apr 21, 2014Apr 5, 2016Sorin Crm S.A.S.Apparatus and method for quantification of the desynchronization between the clocks of two HBC active implantsUS9357515 *Jul 25, 2013May 31, 2016Huawei Technologies Co., Ltd.Method and apparatus of implementing time synchronizationUS20060215741 *Mar 3, 2006Sep 28, 2006Yi-Lon ChinTiming synchronization module and method for synchronously playing a media signalUS20070013811 *Jul 12, 2006Jan 18, 2007Ming-Jane HsiehMethod and apparatus for synchronizing multimedia data streamUS20070060135 *Aug 22, 2005Mar 15, 2007Jeng-Tay LinMethod and device for streaming wireless digital contentUS20070070179 *Sep 28, 2005Mar 29, 2007Pieter Van RooyenMethod and system for a reconfigurable OFDM radioUS20070070934 *Sep 28, 2005Mar 29, 2007Pieter Van RooyenMethod and system for a reconfigurable OFDM radio supporting diversityUS20070195892 *Jan 17, 2007Aug 23, 2007Kwang-Pyo ChoiData receiving device and method for shortening channel switching time in digital multimedia broadcasting systemUS20080123732 *Nov 27, 2006May 29, 2008Rajesh MamidwarMethod and system for configuring decoding based on detecting transport stream input rateUS20080273641 *May 5, 2008Nov 6, 2008Jingnong YangOfdm-based device and method for performing synchronizationUS20080298232 *May 30, 2007Dec 4, 2008Silicon Storage Technology, Inc.Systems and methods for wireless transmission and reception of data including processing and buffering featuresUS20080298242 *Apr 1, 2008Dec 4, 2008Yi FanSystems and methods for transmission and reception of data including processing and buffering featuresUS20100058103 *Aug 29, 2008Mar 4, 2010Infineon Technologies AgApparatus and Method Using First and Second ClocksUS20100098111 *Oct 20, 2009Apr 22, 2010Huawei Technologies Co., Ltd.Method and system for precise-clock synchronization, and device for precise-clock frequency/time synchronizationUS20100174830 *Mar 16, 2010Jul 8, 2010Kevin StantonSynchronizing multiple system clocksUS20100265408 *Apr 9, 2010Oct 21, 2010Yusaku KatsubeTransmission method in transmission systemUS20100289952 *Nov 18, 2010Realtek Semiconductor Corp.Method and Apparatus for Synchronizing Multimedia Data StreamUS20130195233 *Jan 25, 2013Aug 1, 2013Wilocity Ltd.Techniques for synchronizing a clock of a wired connection when transmitted over a wireless channelUS20130308626 *Jul 25, 2013Nov 21, 2013Huawei Technologies Co., Ltd.Method and apparatus of implementing time synchronizationUS20140228913 *Apr 21, 2014Aug 14, 2014Sorin Crm S.A.S.Apparatus and method for quantification of the desynchronization between the clocks of two hbc active implantsUS20150373380 *Mar 12, 2014Dec 24, 2015Sony CorporationTransmission apparatus, transmission method, reception apparatus, and reception method* Cited by examinerClassifications U.S. Classification709/231, 375/E07.024, 375/E07.014, 375/E07.025International ClassificationH04L7/00, H04J3/00, H04L7/033, G06F15/16Cooperative ClassificationH04N21/23406, H04N21/44004, H04N21/4305, H04N21/6332, H04N21/435, H04N21/2383, H04N21/8547, H04N21/235European ClassificationH04N21/6332, H04N21/2383, H04N21/8547, H04N21/43S1, H04N21/44B, H04N21/234B, H04N21/435, H04N21/235Legal EventsDateCodeEventDescriptionApr 18, 2005ASAssignmentOwner name: VIXS SYSTEMS, INC., CANADAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DUCHARME, PAUL;GIRARDEAU, JR., JAMES;CHIU, ADELINE;AND OTHERS;REEL/FRAME:016091/0544;SIGNING DATES FROM 20050114 TO 20050223Feb 11, 2009ASAssignmentOwner name: COMERICA BANK, CANADAFree format text: SECURITY AGREEMENT;ASSIGNOR:VIXS SYSTEMS INC.;REEL/FRAME:022240/0446Effective date: 20081114Owner name: COMERICA BANK,CANADAFree format text: SECURITY AGREEMENT;ASSIGNOR:VIXS SYSTEMS INC.;REEL/FRAME:022240/0446Effective date: 20081114Feb 1, 2012FPAYFee paymentYear of fee payment: 4Apr 15, 2016REMIMaintenance fee reminder mailedRotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services