WO2021126156A1 - Systems and methods for uninterrupted reception of streaming data - Google Patents

Systems and methods for uninterrupted reception of streaming data Download PDF

Info

Publication number
WO2021126156A1
WO2021126156A1 PCT/US2019/066585 US2019066585W WO2021126156A1 WO 2021126156 A1 WO2021126156 A1 WO 2021126156A1 US 2019066585 W US2019066585 W US 2019066585W WO 2021126156 A1 WO2021126156 A1 WO 2021126156A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
data stream
delayed
stream
streams
Prior art date
Application number
PCT/US2019/066585
Other languages
French (fr)
Inventor
James J. Fallon
Stephen J Mcerlain
Deepika Sreenivasulu PAGALA
Original Assignee
Realtime Data Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Realtime Data Llc filed Critical Realtime Data Llc
Priority to PCT/US2019/066585 priority Critical patent/WO2021126156A1/en
Publication of WO2021126156A1 publication Critical patent/WO2021126156A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system

Definitions

  • This disclosure relates generally to data stream processing techniques and, in particular, to data stream processing techniques for uninterrupted real-time playback of streaming data such as audio or audiovisual streaming data.
  • streaming data is data that is continuously generated by a data source to support, e.g., a streaming service.
  • streaming services include video streaming services such as Acorn TV, Apple TV+, Amazon Prime Video, AT&T TV, AT&T WatchTV, BritBox, CBS All Access, The Criterion Channel, DC Universe, Direct TV (AT&T TV Now) ESPN+, FilmStruck, Fubo TV, HBO Now, Hulu, Netflix, Philo, PlayStation Vue, Showtime, Sling TV, Starz, T-Mobile TVision, YouTube TV, and Roku.
  • video streaming services such as Acorn TV, Apple TV+, Amazon Prime Video, AT&T TV, AT&T WatchTV, BritBox, CBS All Access, The Criterion Channel, DC Universe, Direct TV (AT&T TV Now) ESPN+, FilmStruck, Fubo TV, HBO Now, Hulu, Netflix, Philo, PlayStation Vue, Showtime, Sling TV, Starz, T-Mobile TVision, YouTube TV, and Roku.
  • on-demand private video services utilizing
  • Satellite radio services such as SiriusXM Radio, Tidal, Amazon Music, Apple Music, Spotify, Pandora, iHeart Radio, LiveXLive , Google Play Music, and Deezer, along with a plethora of podcasts, Internet Radio Stations, and private streaming content delivery.
  • Such data streaming services generate and transmit streaming data over wired and/or wireless network systems, wherein the streaming data is received and processed for playback using various types of computing devices such as laptop computers, smart phones, electronic tablets, vehicle radio receivers, etc.
  • computing devices such as laptop computers, smart phones, electronic tablets, vehicle radio receivers, etc.
  • streaming audio data is played back in real-time by the computing device after a only a very small amount of audio data is received and temporarily buffered, and the streaming audio data is not stored permanently in the computing device.
  • streaming audio data applications such as streaming radio or satellite radio applications
  • signal corruption or signal dropout which causes periodic interruptions in the reception and playback of the streaming data.
  • the radio receiver may lose contact with the satellite signal when the vehicle moves to location in which the satellite signal is obstructed by structures such as buildings, overpasses, hills, etc., resulting in signal dropout at the radio receiver.
  • Many satellite and other streaming services are actually transmitted from ground stations.
  • the line of sight signal attenuation or blockage from terrain and structures is a significant problem and often causes multiple interruptions of signal and associated content, even in a short drive or walk with a mobile receiver.
  • the received signal strength can be significantly attenuated due to signal interference, signal reflections, multipath fading, etc., which results in a decreased signal-to-noise ratio and possible signal corruption or signal loss.
  • Such data loss of streaming audio data due to signal corruption during transmission of the streaming audio data can result in unwanted interruption of the streaming audio playback.
  • the signal path from transmitter to receiver, especially for mobile applications is unpredictable and obstructions and signal interference is a major issue for mobile applications which receive streaming data via a cellular or other wireless transmission media.
  • UDP User Datagram Protocol
  • IP Internet Protocol
  • Prior communications are not required in order to set up communication channels or data paths.
  • UDP uses a simple connectionless communication model with a minimum of protocol mechanisms. UDP provides checksums for data integrity, and port numbers for addressing different functions at the source and destination of the datagram.
  • UDP is suitable for purposes where error checking and correction are either not necessary or are performed in the application. UDP avoids the overhead of such processing in the protocol stack. Time-sensitive applications often use UDP because dropping packets is preferable to waiting for packets delayed due to retransmission, which may not be an option in a real-time system. It should be noted that UDP is just one example of a digital broadcast system utilized for streaming media systems.
  • Embodiments of the disclosure include systems and methods for implementing intelligent and optionally adaptive data stream-level redundancy in a data communications system to provide uninterrupted reception of streaming data.
  • a method comprises: receiving, by a data reception system, a first data stream and a first delayed data stream transmitted from a data transmission system, wherein the first delayed data stream comprises a delayed version of the first data stream; generating, by the data reception system, a second delayed data stream, wherein the second delayed data stream comprises a delayed version of the received first data stream; and combining, by the data reception system, portions of the first and second delayed data streams to thereby generate a received data stream for output.
  • a data reception system comprises: a receiver configured to receive a first data stream and a first delayed data stream transmitted from a data transmission system, wherein the first delayed data stream comprises a delayed version of the first data stream; a receiver delay module configured to generate a second delayed data stream which comprises a delayed version of the received first data stream; and a data stream generator module configured to combine portions of the first and second delayed data streams to thereby generate a received data stream for output.
  • a method comprises: receiving, by a data transmission system, a first data stream output from a data stream source; generating, by the data transmission system, a first delayed data stream which comprises a delayed version of the first data stream; multiplexing the first data stream and the first delayed data stream to thereby generate a multiplexed data stream comprising a combined sequence of the first data stream and the first delayed data stream; and transmitting the multiplexed data stream over a single communications channel to a data reception system; wherein the multiplexed data stream is configured to support stream data-level redundancy for generating a continuous data stream for output by the data reception system.
  • a method comprises: receiving, by a data transmission system, a plurality of different data streams output from a plurality of different data stream sources; generating, by the data transmission system, a plurality of first delayed data streams, wherein each of the first delayed data streams comprises a delayed version of a corresponding one of the different data streams; multiplexing the plurality of different data streams and the corresponding first delayed data streams to thereby generate a multiplexed data stream comprising a combined sequence of data blocks of the plurality of different data streams and the corresponding first delayed data streams; and transmitting the multiplexed data stream over a single communications channel to a data reception system; wherein the multiplexed data stream is configured to support stream data-level redundancy for generating a continuous data stream for output by the data reception system for each of the plurality of different data streams.
  • FIG. 1 illustrates various types of satellite orbits that orbit around Earth.
  • FIGs. 2A, 2B, 2C, and 2D schematically illustrate various types of obstructions that can cause signal dropout of satellite radio signals that are received by a mobile radio receiver system.
  • FIGs. 3A and 3B schematically illustrate a communications system which is configured to provide uninterrupted reception of streaming data using data stream-level redundancy, according to an embodiment of the disclosure, wherein:
  • FIG. 3A schematically illustrates a data communication system which is configured to transmit a data stream on redundant communication channels; and [0016]
  • FIG. 3B schematically illustrates a data reception system which is configured to receive the data stream transmitted on redundant communication channels and generate a continuous data stream.
  • FIG. 4 schematically illustrates a continuous data stream generator module which can be implemented in the data reception system of FIG. 3B, according to an embodiment of the disclosure.
  • FIGs. 5A and 5B schematically illustrate a method to provide uninterrupted reception of streaming data according to an embodiment of the disclosure, wherein:
  • FIG. 5 A depicts a timing diagram for a data stream transmission process
  • FIG. 5B depicts a timing diagram for a data stream reception process and continuous data stream generation process.
  • FIGs. 6A, 6B, 6C, 6D, and 6E schematically illustrate a method to provide uninterrupted reception of streaming data in the event of signal dropout, according to an embodiment of the disclosure, wherein:
  • FIG. 6A depicts an exemplary non-delayed data stream and a transmitter- delayed data stream, which are generated and transmitted from a transmission system
  • FIG. 6B depicts an exemplary non-delayed data stream and a transmitter- delayed data stream, which are received at a receiver of a data reception system;
  • FIG. 6C schematically illustrates a process in which a receiver-delayed data stream is generated by delaying the received non-delayed data stream;
  • FTG. 6D schematically illustrates a process of generating a continuous data stream in which a missing section of data blocks of the received delayed data stream is augmented with corresponding data blocks from the receiver-delayed data stream;
  • FIG. 6E schematically illustrates a process of generating a continuous data stream in which a missing section of data blocks of the receiver-delayed data stream is augmented with corresponding delayed data blocks from the transmitter-delayed data stream.
  • FIGs. 7A and 7B schematically illustrate a communications system which is configured to provide uninterrupted reception of streaming data according to another embodiment of the disclosure, wherein:
  • FIG. 7A schematically illustrates a data communication system which is configured to transmit multiple data streams from multiple data sources on redundant communication channels;
  • FIG. 7B schematically illustrates a data reception system which is configured to receive multiple data streams which hare transmitted on redundant communication channels and generate continuous data streams.
  • FIGs. 8A and 8B schematically illustrate a communications system which is configured to provide uninterrupted reception of streaming data using data stream-level redundancy, according to another embodiment of the disclosure, wherein:
  • FIG. 8A schematically illustrates data transmission system which is configured to generate and transmit a multiplexed data stream having data stream redundancy on a single multiplexed communications channel through a communications network; and [0032] FIG. 8B schematically illustrates a data reception system which is configured to receive the multiplexed data stream utilize the data stream-level redundancy as provided by the multiplexed data stream to generate a continuous data stream.
  • FIGs. 9A, 9B, and 9C schematically illustrate a method for generating a multiplexed data stream comprising non-delayed data stream and a corresponding delayed data stream to support data stream level redundancy, according to an embodiment of the disclosure, wherein:
  • FIG. 9A depicts an exemplary framework for generating a multiplexed data stream which comprises a combination of interleaved data blocks of a non-delayed data stream and a delayed data stream;
  • FIG. 9B illustrates a portion of a non-delayed data stream comprising a sequence of data blocks and a portion of a corresponding delayed data stream comprising a sequence of delayed data blocks;
  • FIG. 10 is a flow diagram of a method for generating and transmitting a multiplexed data stream comprising a non-delayed data stream and a corresponding delayed data stream to support data stream level redundancy, according to an embodiment of the disclosure.
  • FIG. 11 is a flow diagram of a method for receiving and processing multiplexed data stream comprising a non-delayed data stream and a corresponding delayed data stream to generate a continuous data stream output for real-time playback, according to an embodiment of the disclosure.
  • FIG. 12 schematically illustrates a data transmission system which is configured to generate and transmit a multiplexed data stream having data stream redundancy for multiple data streams from multiple data sources, according to an embodiment of the disclosure.
  • FIGs. 13A and 13B schematically illustrate a method for generating a multiplexed data stream comprising a combination of non-delayed data streams and corresponding delayed data streams of multiple data sources, according to an embodiment of the disclosure.
  • FIG. 14 schematically illustrates a data reception system according to another embodiment of the disclosure.
  • Embodiments of the disclosure will now be discussed in further detail with regard to systems and methods for implementing data stream-level redundancy in a data communications system to provide uninterrupted reception of streaming data.
  • elements having equivalent or similar functionality are designated with the same reference numerals in the Figures.
  • embodiments of the disclosure may be implemented in various forms of hardware, software, firmware, or a combination thereof.
  • various system modules as described herein may be implemented in hardware and/or software as program code that is executable by, e.g., a general or special purpose computing system or any machine or device having any suitable and preferred processor architecture.
  • the constituent system components described herein can be implemented as software modules, the actual system connections and process flow as shown in the Figures may differ depending upon the manner in which the systems are programmed.
  • data stream as used herein is broadly construed to include audio, video, or any form of multimedia data or digital data content that is constantly or nearly constantly transmitted by a data stream source for a period of time and constantly or nearly constantly received by and presented to an end user while being delivered through a wired, wireless, or combined wired/wireless transmission system.
  • data stream source as used herein is broadly construed to include any source of a data stream (e.g., video, audio, or multimedia data) that is constantly or nearly constantly transmitted to one or more end users.
  • a data stream e.g., video, audio, or multimedia data
  • a channel is broadly construed to any type of physical wired or wireless transmission medium which is configured to convey a data signal from a transmitter to a receiver.
  • a channel can be a radio channel which is assigned a given frequency of a carrier signal which is used to transmit streaming data.
  • a channel may comprise a signal channel with a multiplexed data that is electrically separated using, e.g., frequency-division multiplexing, time-division multiplexing, etc.
  • a channel has a certain capacity for transmitting information, which is referred to as channel bandwidth or channel data rate (in bits per second).
  • data block as used herein is broadly construed to include a block of data which comprises any type of data (audio data, video data, audiovisual data, multimedia data etc.) and has a block size that can range in size from an individual bit, multiple bits, one or more bytes, and through complete files or collections of multiple files. Additionally, a data block size may be fixed or variable, wherein the data block size is based on any number of bits, bytes, words, or any convenient data multiple or metric, or any combination thereof.
  • exemplary embodiments of the disclosure will be discussed in the context of streaming audio and/or multimedia content that is delivered through various types of wireless broadcasting systems such as Satellite radio, streaming radio, and other types of digital audio broadcasting (DAB) systems or wireless data streaming service platforms. It is to be understood, however, that the exemplary systems and methods discussed herein can be implemented to provide data stream-level redundancy in all types of broadcast streaming applications which implement various types of communications protocols.
  • Such communication protocols include, but are not limited to, UDP (User Datagram Protocol) which is typically used for establishing low-latency and loss-tolerating connections between applications in an IP (internet Protocol) network.
  • UDP/1P is used in various applications including gaming, voice or video conference, video streaming, audio streaming and multimedia streaming.
  • FIG. 1 illustrates various types of satellite orbits that orbit around Earth.
  • FIG. 1 schematically illustrates four different types of satellite orbits including a low Earth orbit 12, a mid-Earth orbit 14, ahigh Earth orbit 16, and a Molniya orbit 18.
  • a satellite orbit is defined by various parameters such as (i) height, (ii) eccentricity, and (iii) inclination.
  • the height parameter defines an altitude of the orbit above the surface of the Earth.
  • the altitude of a given orbit can vary depending on the shape of the orbit
  • the term “eccentricity” refers to the shape of the orbit, wherein the eccentricity of an orbit indicates the deviation of the orbit from a perfect circle.
  • a satellite with a low eccentricity (e.g., about zero (0)) orbit moves in a near circle around the Earth, while an eccentric orbit is elliptical, with the satellite’s distance from Earth changing depending on where it is in its orbit
  • a highly eccentric orbit has an eccentricity that approaches a value of 1 (but always less than) 1.
  • the term “inclination” refers to the angle of the orbit relative to the Earth’s equator.
  • a satellite that orbits directly above the equator has zero inclination. If a satellite orbits from the North Pole (geographic, not magnetic) to the South Pole, its inclination is 90 degrees. An orbital inclination of 180° denotes an orbit above the equator in the opposite direction of Earth’s spin.
  • a geosynchronous orbit is an orbit around the Earth of a satellite with an orbital period that matches the Earth’s rotation on its axis, which takes one sidereal day (about 23 hours, 56 minutes, and 4 seconds).
  • the synchronization between rotation of the Earth and the orbital period means that, for an observer on Earth’s surface, a satellite in a geosynchronous orbit returns to the same position in the sky after a period of one sidereal day.
  • the high Earth orbit 16 represents a circular geosynchronous orbit with a distance D3 which is about 35,786 km (22,236 mi) above the surface of the Earth 10.
  • a special case of geosynchronous orbit is a geostationary orbit, which is a circular geosynchronous orbit in the Earth's equatorial plane (i.e., directly above the Equator).
  • a satellite in a geostationary orbit appears stationary, always at the same point in the sky, to observers on the surface.
  • Communication satellites are typically operated in geostationary or close to geostationary orbits so that the satellite antennas that communicate with them do not have to move, but can be pointed permanently at the fixed location in the sky where the satellite appears.
  • a semi-synchronous orbit has an orbital period of half a sidereal day (i.e., 11 hours and 58 minutes).
  • the mid Earth orbit 14 shown in FIG. 1 is an example of a semi- synchronous orbit (or 1 ⁇ 2 geosynchronous orbit) which is a near-circular orbit with a low eccentricity and an altitude of about 20,200 kilometers above the surface of the Earth 10.
  • a satellite in the 1 ⁇ 2 geosynchronous orbit 14 takes 12 hours to complete an orbit and thus, crosses over the same two spots on the equator every day to provide a consistent and highly predictable orbit.
  • the 1 ⁇ 2 geosynchronous orbit 14 is used by Global Positioning System (GPS) satellites.
  • GPS Global Positioning System
  • the Molniya orbit 18 is another example of a semi-synchronous orbit that has an orbital period of half a sidereal day.
  • the Molniya orbit 18 is utilized for far northern or southern locations.
  • the Molniya orbit 18 has a high inclination (about 63.4°) and high eccentricity (about 0.722) to enable viewing or communications over high latitudes.
  • the Molniya orbit 18 lasts 12 hours, and spends about two-thirds of that time over one hemisphere. Similar to a semi-synchronous orbit, a satellite in the Molniya orbit 18 passes over the same path two times every 24 hours.
  • SiriusXM radio satellites utilized this type of orbit, however they are now reliant on geosynchronous satellites which, coupled with a large growth in subscriber base, has spurred the need for the addition of numerous ground stations to serve as repeater stations for the SiruisXM steaming services.
  • the low Earth orbit 12 is an Earth-centered orbit (e.g., eccentricity close to 0) with an altitude D1 of about 2,000 km (1 ,200 mi) or less above the surface of the Earth 10.
  • a satellite in the low Earth orbit 12 has an orbital period of about 128 minutes or less and an eccentricity of less than 0.25.
  • Many scientific satellites and weather satellites are operated in a nearly circular, low Earth orbit.
  • FIGs. 2A, 2B, 2C, and 2D schematically illustrate various types of obstructions that can cause signal dropout of satellite radio signals that are received by a mobile radio receiver system. For example, FTG.
  • FIG. 2A illustrates a circumstance in which a satellite radio signal 200 that is transmitted to a radio receiver in a moving vehicle 210 is temporarily blocked by a tall obstruction 220 (e.g., a tall building, a hill, etc.) which the vehicle 210 passes at a given time.
  • This obstruction 220 can lead to signal dropout for the given period of time that is takes for the vehicle to move to a location away from the obstruction 220 where the signal is no longer blocked.
  • FIG. 2B illustrates an example where a ground station 230 (or transponder or satellite repeater) transmits a received signal 240 to the radio receiver in the moving vehicle 210.
  • FIG. 2B illustrates a circumstance in which the moving vehicle 210 temporarily travels on a lower roadway 250 which results in the radio receiver of the moving vehicle 250 being located out of the radio line of sight between the repeater station 230 and the moving vehicle 210. This results in a temporary signal dropout of the radio signal 240 at the receiver, and thus an interruption of the audio signal of the radio station that the user is listening to in the moving vehicle.
  • the ground station 230 may receive a signal to be transmitted via a wired or wireless network.
  • the ground station 230 can receive and re-transmit a satellite radio signal.
  • FIG. 2C illustrates another example where the radio line of sight between the ground station 240 and the moving vehicle 210 is temporarily blocked by a tall obstruction 260 which the vehicle 210 passes at a given time. Again, this results in signal dropout where the radio receiver of the moving vehicle 210 does not receive the transmitted radio signal 240 from the repeater station 230 during the period of time in which the vehicle 210 passes by the obstruction 260.
  • FTG. 2D illustrates an exemplary situation wherein the moving vehicle 201 is traveling on a lower roadway 270 below an upper roadway 280 with an overpass 290 (or bridge) which covers a portion of the lower roadway 270.
  • the radio receiver of the vehicle 210 is temporarily blocked from receiving a satellite radio signal or a transmitted radio signal from a ground station. Again, this results in a temporary signal dropout where the radio receiver of the moving vehicle 210 does not receive the radio signal for a given time during which the vehicle 210 passes below the overpass 290.
  • FIGs. 3A and 3B schematically illustrate a communications system which is configured to provide uninterrupted reception of streaming data according to an embodiment of the disclosure.
  • FIG.3 A and 3B schematically illustrate a communications system comprising a data transmission system 300, a communications network 308, and a data reception system 310.
  • the data transmission system 300 is configured to transmit a data stream on redundant communication channels over the communications network 308, and the data reception system 310 is configured to receive the data stream on the redundant communication channels and utilize the data stream-level redundancy to generate a continuous data stream for real-time or near real-time playback by a data stream playback system 330.
  • the communications network 308 may comprise, for example, a global computer network such as the Internet, a wide area network (WAN), a local area network (LAN), a satellite network, a telephone or cable network, a cellular network, a wireless network such as Wi-Fi or WiMAX, or various portions or combinations of these and other types of networks.
  • a global computer network such as the Internet
  • WAN wide area network
  • LAN local area network
  • satellite network a telephone or cable network
  • a cellular network such as GSM
  • wireless network such as Wi-Fi or WiMAX
  • the data transmission system 300 comprises a data stream source 302, a delay module 304, and a transmitter 306.
  • the transmitter 306 comprises a first transmitter channel 306-1, and a second transmitter channel 306-2.
  • the data stream source 302 generates a data stream which is to be transmitted or otherwise broadcast to one or more end users.
  • the data stream source 302 comprises any system or entity that generates a data stream (e.g., digital audio and/or video data stream) to provide data streaming services (e.g., audio streaming services, audiovisual streaming service, streaming radio service, satellite radio service, etc.).
  • the data stream can be generated in various types of formats (e.g., one or more compressed formats, data packets, digital audio format, etc.) or any combination thereof depending on the application.
  • the delay module 304 is configured to apply a delay to the data stream that is output from the data stream source 302 and thereby generates a delayed data stream (or transmitter-delayed data stream).
  • the delay module 304 is configured to delay the data stream by a predefined (yet programmable) amount of time (referred to as “time delay”).
  • time delay a predefined (yet programmable) amount of time
  • block delay a predefined (yet programmable) number of data blocks
  • the “time delay” or “block delay” is selected based on a programmable parameter that specifies a “signal dropout recovery period.”
  • the “signal dropout recovery period” denotes a maximum amount of time in which data stream reception can be interrupted at the data reception system 310 while still being able to utilize the data stream-level redundancy to generate a continuous data stream without missing data.
  • the block delay is selected based on a number of data blocks (compressed or uncompressed) that can be transmitted for the signal dropout recovery period.
  • a signal dropout recovery period of, e.g., 10 seconds, would allow the data reception system 310 to generate a continuous data stream output without missing any data as a result of a signal dropout not exceeding 10 seconds.
  • the transmitter 306 is configured to modulate the non-delayed data stream and the delayed data stream and transmit the non-delayed data stream and the delayed data stream data using separate communications channels over the communications network 308. More specifically, as shown in FIG. 3A, the non-delayed data stream (output from the data stream source 302) is modulated and transmitted by the first transmitter channel 306-1 over a first communications channel, while the delayed data stream (output from the delay module 304) is modulated and transmitted by the second transmitter channel 306-2 over a second communications channel.
  • the transmitter 306 can implement analog modulation or digital modulation methods, depending on the given application. As is known in the art, a modulation process involves encoding a carrier wave with information of the data stream by modifying a parameter of the carrier wave.
  • the data stream information can be encoded into a carrier wave by modifying the amplitude, phase or frequency of the carrier wave using known methods, the details of which are not necessary for one of ordinary skill in the art to understand the data stream processing techniques as discussed herein.
  • Modulation schemes include, but are by no means limited to, Amplitude Shift Keying (ASK), Frequency Shift Keying (FSK), Binary Phase Shift Keying (BPSK), Quadrature Phase Shift Keying (QPSK), Multiple Phase Shift Keying (MPSK), Quadrature Amplitude Modulation (QAM), Amplitude Phase Shift Keying (APSK), Orthogonal Frequency Division Multiplexing (OFDM), and all other forms of modulation that are useful for the intended communications system.
  • ASK Amplitude Shift Keying
  • FSK Frequency Shift Keying
  • BPSK Binary Phase Shift Keying
  • QPSK Quadrature Phase Shift Keying
  • MPSK Multiple Phase Shift Keying
  • the data reception system 310 comprises a receiver 312, a delay module 314, signal strength indication modules 316 and 318, and a continuous data stream generator module 320.
  • the data reception system 310 may comprise, e.g., a radio receiver system or a wireless receiver module of a computing device.
  • the receiver 312 comprises a first receiver channel 312-1 and a second receiver channel 312-2.
  • the receiver 312 is configured to receive the transmitted signals comprising the non-delayed data stream and the delayed data stream which are transmitted over the separate communication channels of the communications network 308, and demodulate the transmitted signals to extract the transmitted data stream and the transmitted delayed data stream.
  • the first receiver channel 312-1 is configured to demodulate the transmitted data stream signal to recover the original (non-delayed) data stream
  • the second receiver channel 312-2 is configured to demodulate the transmitted delayed data stream signal to recover the original delayed data stream D1 (or transmitter-delayed data stream).
  • the delay module 314 is configured to apply a delay to the received data stream which is output from the first receiver channel 312-1 and thereby generate a second delayed data stream D2 (or receiver-delayed data stream).
  • the delay module 314 is configured to delay the received (non-delayed) data stream by the same predefined (yet programmable) amount of time or number of data blocks as applied by the delay module 304 in the data transmission system 300. This receiver-side delay facilitates an alignment between the received non-delayed data stream and the received delayed data stream, i.e., the delayed data streams D1 and D2 are substantially aligned in real-time (e.g., time alignment or block alignment).
  • the delayed data streams D1 and D2 are input to the continuous data stream generator module 320.
  • the continuous data stream generator module 320 is configured to utilize the redundancy of the delayed data streams D1 and D2 to generate and output a continuous data stream for real-time or near real-time playback by the data stream playback system 330.
  • the optional signal strength indication modules 316 and 318 are configured to determine a loss of signal and/or a quality of signal of the signals received by the respective first and second receiver channels 312-1 and 312-2, of the receiver 312.
  • the signal strength indication modules 316 and 318 output received signal strength information SSI and SS2 (e.g., received signal strength indicator (RSSI), received channel power indicator (RCPI), etc.) to the continuous data stream generator module 320.
  • the continuous data stream generator module 320 utilizes the signal quality information to generate and output a continuous data stream by combining and/or dynamically switching between delayed data streams D1 and D2 for output to the data stream playback system 330.
  • the continuous data stream generator module 320 is configured to output the delayed data stream D1 to the data stream playback system 330 and augment missing data in the delayed data stream D1 with corresponding data from the delayed data stream D2 to thereby generate a continuous, uninterrupted data stream.
  • the continuous data stream generator module 320 is configured to output the delayed data stream D2 to the data stream playback system 330 and augment missing data in the delayed data stream D2 with corresponding data from the delayed data stream D1 to thereby generate a continuous, uninterrupted data stream, In other embodiments, the continuous data stream generator module 320 is configured to utilize the signal strength information SS1 and SS2 provided by the signal strength indication modules 316 and 318 to dynamically switch between the delayed data streams D1 and D2 for output to the data stream playback system 330.
  • FIG. 4 schematically illustrates a continuous data stream generator module according to an embodiment of the disclosure. In particular, FIG.
  • the continuous data stream generator module 400 comprises a buffer management module 402, a data loss detection module 404, a data selection module 406, and a data stream alignment and combiner module 408.
  • the continuous data stream generator module 400 receives as input the delayed data streams D1 and D2 and optionally the signal strength indicators SSI and SS2.
  • the buffer management module 402 is configured to temporarily buffer the input data streams D1 and D2 to facilitate fine-tune alignment, data selection, and other functions of the continuous data stream generator module 400.
  • the data loss detection module 404 is configured to detect and identify portions of missing data in the delayed data streams D1 and D2. In some embodiments, the data loss detection module 404 can detect data loss by analyzing the data streams D1 and D2 directly.
  • the data packets are UDP packets which have embedded sequential packet identifiers, wherein the packet identifiers can be utilized to determine lost data packets.
  • the sequential packet identifiers have a fixed length (defined by a maximum packet identification value), wherein a modulo rollover to zero occurs when the maximum packet identification value is reached.
  • the relative time or data block positions of the data blocks are utilized for identification purposes (e.g., to identify missing data blocks).
  • the data loss detection module 404 utilizes the optional signal strength indicator data SSI and SS2 to detect and identify portions of the delayed data streams D1 and D2 with missing or low-quality data.
  • the data selection module 406 may be configured to utilize the signal strength information SSI and SS2 provided by the signal strength indication modules 316 and 318 to dynamically switch between the delayed data streams D1 and D2 for provide a high-quality continuous data stream output.
  • the data stream alignment and combiner module 408 is configured to apply fine-tune alignment of the delayed data streams D1 and D2 by, e.g., aligning the buffered portions of the delayed data streams D1 and D2, and combining portions of the delayed data streams D1 and D2, as needed, to output a continuous interrupted data stream.
  • the data stream alignment and combiner module 408 is configured to output the transmitter-delayed data stream D1 as a continuous data stream, and when the transmitter-delayed data stream D1 is determined to have missing data (e.g., due to a temporary dropout of the transmitted delayed data stream), the data stream alignment and combiner module 408 will augment the missing data using the corresponding data of the receiver-delayed data stream D2 to thereby generate a continuous, uninterrupted data stream.
  • the data stream alignment and combiner module 408 is configured to output the receiver-delayed data stream D2 as a continuous data stream, and when the receiver-delayed data stream D2 is determined to have missing data (e.g., due to a temporary dropout of the transmitted delayed data stream), the data stream alignment and combiner module 408 will augment the missing data using the corresponding data of the transmitter-delayed data stream D1 to thereby generate a continuous, uninterrupted data stream.
  • FIGs. 5A and 5B schematically illustrate a method to provide uninterrupted reception of streaming data according to an embodiment of the disclosure.
  • FIG. 5A depicts a timing diagram for a data stream transmission process 500
  • FIG. 5B depicts a timing diagram for a data stream reception process 510 and continuous data stream generation process, according to an exemplary embodiment of the disclosure.
  • FIGs. 5 A and 5B will be discussed in the context of the communications system of FIGs. 3 A and 3B, wherein FIG. 5 A illustrates a mode of operation of the data transmission system 300 of FIG. 3A, and FIG. 5B illustrates a mode of operation of the data reception system 310 of FIG. 3B.
  • a data stream is generated (502).
  • a data stream is generated (502). For ease of illustration,
  • FIG. 5A depicts a portion of the (non-delayed) data stream comprising data blocks A, B and C which are sequentially generated starting at time To.
  • the non-delayed data stream is input to the transmitter 306 and transmitted over a first communications channel (504).
  • the time to transmit a given data block is denoted T x and therefore, the data block A is shown being transmitted at time ⁇ + ⁇ .
  • a transmitter-delayed data stream D1 is generated (506) by inputting the data stream to the transmitter delay module 304.
  • the transmitter-delayed data stream D1 is depicted as delayed data blocks [A], [B], [C], wherein the brackets denote a delayed data block of the transmitter-delayed data stream D1.
  • the data stream delay is denoted To (where To can denote a time delay or a block delay) such that the delayed data block [A] is shown being generated at time T 0 +T D .
  • the transmitter-delayed data stream D1 is input to the transmitter 306 and transmitted over a second communications channel (508).
  • the time to transmit a delayed data block is denoted T x , and is assumed to be the same as the time to transmit a non-delayed data block.
  • FIG. 5A shows the delayed data block [A] as being transmitted at time T 0 +T D +T X .
  • FIG. 5B depicts a portion of the received (non-delayed) data stream comprising data blocks A, B and C which are sequentially received starting with data block A at time T 0 +T X +T P +T R following the time T 0 when data block A was generated or made ready for transmission.
  • T p denotes the propagation time which is the amount of time it takes for the transmitted data stream signal to travel over the communications channel from the transmitter 306 to the receiver 312.
  • T R denotes the amount of time for the receiver 312 to demodulate the received signal and recover the data stream.
  • a receiver-delayed data stream D2 is generated (514) by inputting the received data stream to the receiver delay module 314.
  • the receiver-delayed data stream D2 is depicted with data block A at time T 0 +T X +T P +T R +T D , where T D denotes the data stream delay applied by the receiver delay module 314 (where To can denote a time delay or a block delay).
  • T D denotes the data stream delay applied by the receiver delay module 314 (where To can denote a time delay or a block delay).
  • the data stream delay applied by the receiver delay module 314 is the same or similar to the data stream delay applied by the transmitter delay module 304.
  • the transmitter-delayed data stream D1 (blocks [A], [B], [C]) is received by the data reception system (516) starting with delayed data block [A] at time T 0 +T D +T X +T P +T R .
  • FIG. 5B shows the data blocks A, B and C of the receiver- delayed data stream D2 being aligned with the corresponding delayed data blocks [A], [B], and [C] of the transmitter-delayed data stream D1, with the assumption that the same time delay T D is applied by the delay modules 304 and 314, and that the times T x and T p and T R for the non-delayed data stream and the delayed data stream are the same.
  • a combined data stream output is generated (518) using the aligned data streams Dl and Dl .
  • the combined data stream output 516 is generated by augmenting the transmitter- delayed data stream Dl with a data block C of the receiver-delayed data stream D2.
  • the data block [C] of the transmitter-delayed data stream Dl may be missing (due to dropout) or have poor signal quality, in which cases the missing or low-quality data block [C] of D1 is replaced with the data block C of the receiver-delayed data stream D2.
  • the diagram is for illustrative purposes only and the times T D , T x , T p , and T R are not necessarily to scale.
  • time delay To may be in the order of seconds
  • Tp may be in the order of microseconds
  • T x and T R may be one in the order of nanoseconds.
  • FIGs. 6A, 6B, 6C, 6D, and 6E schematically illustrate a method to provide uninterrupted reception of streaming data according to another embodiment of the disclosure.
  • FIGs. 6A through 6E illustrate methods for generating a continuous data stream in the event of signal dropout during transmission of the data stream.
  • FIGs. 6A through 6E will be discussed in the context of the communications system of FIGs. 3A and 3B.
  • FIG. 6A depicts an exemplary non-delayed data stream 600 and a transmitter- delayed data stream D1 602, which are generated and transmitted from the data transmission system 300 of FIG. 3A.
  • the non-delayed data stream 600 is depicted as having a sequence of data blocks A, B, C, D, E, F, G, H, 1, J, K, L, M, N, O, P, Q, R, S, and T.
  • the delayed data stream D1 602 is depicted as having a sequence of corresponding delayed data blocks [A], [B], [C], [D], [E], [F], [G], [H], [I], [J], [K], [L], [M], [N], [O], [P], [Q], [R], [S], and [Tj, which are delayed via the transmitter delay module 304 by a predefined delay TD.
  • TD predefined delay
  • FIG. 6B depicts a received non-delayed data stream 604 and a received transmitter-delayed data stream D1 606, which are received at the input of the receiver 312 of the data reception system 300.
  • the received non-delayed data stream 604 and the received transmitter-delayed data stream D1 606 are shown to have missing data blocks as a result of a given period of signal dropout which occurs during transmission of the non-delayed and transmitter-delayed data stream 600 and 602.
  • the received non-delayed data stream 604 is shown as missing data blocks L, M and N
  • the received transmitter-delayed data stream D1 606 is shown as missing delayed data blocks [G], [H] and [I].
  • FIG. 6C schematically illustrates a process in which the receiver delay module
  • FIG. 6C schematically illustrates an alignment process for aligning 610 the received transmitter-delayed data stream D1606 with the receiver-delayed data stream D2608.
  • the alignment may be achieved through a coarse alignment that is obtained between the data streams D1 606 and D2 608 by virtue of the receiver-side data stream delay process, and through a fine alignment process that is implemented by the data stream alignment and combiner module 408, FIG. 4. As shown in FIG.
  • the receiver-delayed data stream D2 608 comprises a section of missing data blocks 612 due to signal dropout of the received non-delayed data stream 604, and the received transmitter-delayed data stream D1 606 comprises a section of missing data blocks 614 due to signal dropout of that portion of the received transmitter-delayed data stream D1 606.
  • FIG. 6D schematically illustrates a process of generating a continuous data stream 620 in which the missing section of data blocks 614 of the received transmitter-delayed data stream D1 606 is augmented with data blocks G, H, and 1 from the aligned 610 receiver- delayed data stream D2 608.
  • the continuous data stream generator module 320 outputs the received transmitter-delayed data stream D1606 for playback, and augments missing (or low quality) data blocks of the received transmitter- delayed data stream D 1606 with corresponding data blocks of the receiver-delayed data stream D2608.
  • FIG. 6E schematically illustrates a process of generating a continuous data stream 630 in which the missing section of data blocks 612 of the receiver-delayed data stream D2608 is augmented with delayed data blocks [L], [M], and [N] from the received transmitter-delayed data stream D1 606.
  • the continuous data stream generator module 320 outputs the receiver-delayed data stream D2 608 for playback, and augments missing (or low quality) data blocks of the receiver-delayed data stream D2 608 with corresponding delayed data blocks from the transmitter-delayed data stream D1 606.
  • FIGs. 7A and 7B schematically illustrate a communications system which is configured to provide uninterrupted reception of streaming data according to another embodiment of the disclosure.
  • FIG. 7A and 7B schematically illustrate a communications system which is similar to the communications system of FIG. 3A and 3B, but which is configured to support a data streaming application in which multiple data streams from multiple data sources are transmitted on redundant communication channels over a communications network.
  • FIG. 7A and 7B schematically illustrate a communications system which is similar to the communications system of FIG. 3A and 3B, but which is configured to support a data streaming application in which multiple data streams from multiple data sources are transmitted on redundant communication channels over a communications network.
  • FIG. 7A schematically illustrates a data transmission system 700 which comprises a plurality (t) of data transmission systems 700-1, ..., 700-t, wherein the data transmission systems 700-1, ..., 700-t comprise respective data stream sources 702-1, ..., 702-t, delay modules 704-1, ..., 704-t, and transmitters 706-1, ... 706-t.
  • the transmitter 706-1 comprises a first transmitter channel 706-1(1), and a second transmitter channel 706-1(2)
  • the transmitter 706-t comprises a first transmitter channel 706-t(l), and a second transmitter channel 706-t(2).
  • the data stream source 702-1 generates a data stream (S1) which is to be transmitted or otherwise broadcast to one or more end users
  • the data stream source 702-t generates a data stream (St) which is to be transmitted or otherwise broadcast to one or more end users.
  • the data transmission system 700-1 is configured to transmit a non-delayed data stream S1 and a transmitter-delayed data stream D1(1), which represent the data stream S1 transmitted on redundant channels over the communications network 308.
  • the data transmission system 700-t is configured to transmit a non-delayed data stream St and a transmitter-delayed data stream Dl(t), which represent the data stream St transmitted on redundant channels over the communications network 308.
  • the functions and operational modes of the data transmission systems 700-1, ..., 700-t are the same or similar to those functions and operational modes of the data transmission system 300 of FIG. 3A, the details of which will not be repeated.
  • FIG. 7B schematically illustrates a data reception system 710 which comprises a plurality (r) of data reception systems 710-1, 710-r, wherein the data reception systems 710-1.710-r comprise respective receivers 712-1.712-r, delay modules 714-1,
  • the receiver 712-1 comprises a first receiver channel 712-1(1) and a second receiver channel 712-1(2), which are configured to receive and demodulate the received signals, i.e., the non-delayed data stream S1 and the transmitter-delayed data stream Dl(l) version of the data stream S1, which are transmitted from the data transmission system 710-1 on separate communication channels over the communications network 308.
  • the receiver 712-r comprises a first receiver channel 712-r(l) and a second receiver channel 712-r(2), which are configured to receive and demodulate the received signals, i.e., the non-delayed data stream St and the transmitter- delayed data stream D1(t) version of the data stream St, which are transmitted from the data transmission system 710-t on separate communication channels over the communications network 308.
  • the functions and operational modes of the data reception systems 710-1, ..., 710-r are the same or similar to those functions and operational modes of the data reception system 310 of FIG. 3B, the details of which will not be repeated.
  • the continuous data stream generator module 720-1 utilizes the transmitter-delayed data stream Dl(l) and a receiver- delayed data stream D2(l ) to generate and output a continuous data stream corresponding to the data stream (1) transmitted from the data transmission system 700-1 of FIG. 7A.
  • the continuous data stream generator module 720-r utilizes the transmitter-delayed data stream D1 (t) and a receiver-delayed data stream D2(t) to generate and output a continuous data stream corresponding to the data stream (t) transmitted from the data transmission system 700-t of FIG. 7A.
  • the continuous data stream generator modules 720- 1 , ..., 720- r implement functions that are the same or similar to those functions of continuous data stream generator module 400 of FIG. 4.
  • the data reception system 710 further comprises a data stream source selector module 730.
  • the data stream source selector module 730 is configured to select one of the continuous data streams that are output from the data reception systems 710-1, ..., 710-r, for playback on a given computing device or system (e.g., mobile phone, electronic tablet, satellite radio, etc.) which implements the data reception system 710.
  • the data transmission system 700 of FIG. 7A comprises a wireless broadcast digital radio system that transmits multiple radio stations over multiple respective redundant communications channels.
  • SiriusXM Radio transmits over 175 Channels such as SiriusXM Hits, Pandora Now, etc. through the same non-redundant communications channel which accounts for the frequent loss of their radio signal.
  • FIGs. 8A and 8B schematically illustrate a communications system which is configured to provide uninterrupted reception of streaming data according to another embodiment of the disclosure.
  • FIG. 8A and 8B schematically illustrate a communications system comprising a data transmission system 800, a communications network 815, and a data reception system 820.
  • the data transmission system 800 is configured to transmit a multiplexed data stream having data stream redundancy on a single multiplexed communications channel over the communications network 815, and the data reception system 820 is configured to receive the multiplexed data stream (with data stream redundancy) on the multiplexed communications channel and utilize the data stream-level redundancy as provided by the multiplexed data stream to generate a continuous data stream for real-time or near realtime playback by a data stream playback system 840.
  • the data transmission system 800 comprises a data stream source 802, an optional data compression module 804, a delay module 806, a multiplexer module 808, and a transmitter 810.
  • the data stream source 802 generates a data stream which is to be transmitted or otherwise broadcast to one or more end users.
  • the data stream source 802 comprises any system or entity that generates a data stream (e.g., digital audio data stream) to provide data streaming services (e.g., audio streaming services, audiovisual streaming service, streaming radio service, satellite radio service, etc.).
  • the data stream can be generated in various types of formats (e.g., compressed format, data packets, digital audio format, etc.) depending on the application.
  • the optional data compression module 804 is configured to compress the data stream and generate a compressed data stream.
  • the data compression module 804 is implemented using data compression methods such as lossy and/or lossy data compression techniques, which are suitable for the given application and the type of data included in the data stream.
  • the delay module 806 is configured to apply a delay to the compressed data stream that is output from the data compression module 804 and thereby generate a delayed optionally compressed data stream.
  • the delay module 806 is configured to delay the compressed data stream by a predefined (yet programmable) time delay or block delay which is sufficient to achieve a maximum signal dropout recovery period in which the data reception system 820 could generate a continuous, uninterrupted data stream in the event of a signal dropout of the transmitted data stream.
  • the multiplexer module 808 implements a multiplexing scheme that is configured to combine the optionally compressed data stream and the delayed optionally compressed data stream into a single, multiplexed data stream.
  • the multiplexer module 808 can implement analog multiplexing methods or digital multiplexing methods, depending on the application. For example, in some embodiments wherein the delay module 806 implements a block delay scheme, the multiplexer module 808 will combine or otherwise interleave data blocks of the delayed optionally compressed data stream into the compressed data streams at intervals that correspond to the specified block delay, an exemplary embodiment of which will be illustrated and described below in conjunction with FIGs. 9A, 9B, and 9C.
  • the data blocks can be encoded to include metadata such as data block identifiers (to differentiate between non-delayed and delayed blocks in the multiplexed data stream), data block sequence numbers (to enable ordering of the data blocks in the data reception system 820), compression protocol identifiers (to identify the type of data compression applied to the data stream blocks), etc.
  • metadata such as data block identifiers (to differentiate between non-delayed and delayed blocks in the multiplexed data stream), data block sequence numbers (to enable ordering of the data blocks in the data reception system 820), compression protocol identifiers (to identify the type of data compression applied to the data stream blocks), etc.
  • the metadata, block identifiers, data block sequence numbers, and compression protocol identifiers are optional features, which may or may not be implemented depending on the system configuration.
  • the data block positions and compression techniques may be specified a-priori or programmed by the system or an end user.
  • the transmitter 810 is configured to modulate the multiplexed data stream and transmit the multiplexed data stream on a single communications channel over the communications network 815.
  • the transmitter 810 can implement analog modulation or digital modulation methods, depending on the given application.
  • the modulation process implemented by the transmitter 810 is one that supports multiplexing wherein the different data streams can be transmitted in the same communications channel at the same time.
  • the data reception system 820 comprises a receiver 822, a demultiplexer module 824, a data decompression module 826, a delay module 828, a received signal strength indication module 832, and a continuous data stream generator module 830.
  • the data reception system 820 may comprise, e.g., a radio receiver system or a wireless receiver module of a computing device.
  • the receiver 822 is configured to receive the signal which comprises the multiplexed data stream transmitted from the data transmission system 800, and to demodulate the received signal to extract the multiplexed data stream.
  • the demultiplexer module 824 is configured to demultiplex the multiplexed data stream by separating the optionally compressed data stream and the delayed optionally compressed data stream.
  • the optionally compressed data stream and delayed optionally compressed data stream are input to the data compression module 826.
  • the optional data decompression module 826 implements decompression methods (which are effectively the inverse of the compression methods used to compress the data stream) to decompress the compressed data stream and the delayed compressed data stream and thereby recover the original (non-delayed) data stream and a corresponding delayed data stream Dl, respectively.
  • the delay module 828 is configured to apply a delay to the non-delayed data stream which is output from the optional data decompression module 826 and thereby generates a second delayed data stream D2 (or receiver-delayed data stream).
  • the delay module 828 is configured to delay the received (non-delayed) data stream by the same predefined (yet programmable) amount of time or number of data blocks as applied by the delay module 806 in the data transmission system 800.
  • the receiver-side delay facilitates an alignment between the received non-delayed data stream and the received delayed data stream, i.e., the delayed data streams Dl and D2 are substantially aligned in real-time (e.g., time alignment or block alignment).
  • the delayed data streams Dl and D2 are input to the continuous data stream generator module 830.
  • the continuous data stream generator module 830 is configured to utilize the redundancy of the delayed data streams Dl and D2 to generate and output a continuous data stream for real-time or near real-time playback by the data stream playback system 840, using the same or similar methods as the continuous data stream generators as discussed above in conjunction with FIGs. 3B and 4.
  • the signal strength indication module 832 is configured to determine a loss of signal and/or a quality of the transmitted multiplexed data stream signal received by the receiver 822.
  • the signal strength indication module 832 outputs received signal strength information SS (e.g., RSSI, RCPT, etc.) to the continuous data stream generator module 830.
  • received signal strength information SS e.g., RSSI, RCPT, etc.
  • the continuous data stream generator module 830 utilizes the signal quality information SS to detect missing data blocks or poor quality data blocks and to generate and output a continuous data stream by augmenting missing data blocks in one of the delayed data streams Dl and D2 with received corresponding data blocks from the other of the delayed data streams Dl and D2, or otherwise replacing lower-quality data blocks with higher quality data blocks of the delayed data streams Dl and D2 for output to the data stream playback system 840.
  • the bandwidth of a communications channel refers to a maximum amount of data that can be transmitted for given time period. For digital applications, bandwidth is expressed in bits per second (bps), Megabits per second (Mbps), Gigabits per second (Gbps), etc. In this regard, the channel bandwidth for given communications channel determines the maximum data rate for transmitting a signal on the communications channel. In some embodiments, more than one data compression method is utilized.
  • two different lossy data compression methods are utilized, one lossy data compression method with a higher resolution, and another lossy data compression method with a lower resolution.
  • One lossy data compression method is applied to generate compressed data blocks that are transmitter-delayed and the other lossy data technique is utilized to generate data blocks that are decompressed and then delayed at the receiver.
  • the data blocks that are compressed using a higher resolution data compression method are decompressed and selected first for creating a continuous data stream, while the data blocks that are compressed using the lower resolution data compression method are decompressed and utilized to “fill in” missing data blocks to create a continuous data stream by the continuous data steam generator module.
  • the effective bandwidth of the communications channel should be at least twice (2X) the bandwidth of what is required to transmit the non-delayed data stream in a non-redundant manner for the given application.
  • the multiplexed data stream would include 2X more data to be transmitted over the communications channel (as compared to transmitting the non-delayed data stream alone in a non-redundant manner), and (ii) it would be desirable that the total amount of time for transmitting the multiplexed data stream would be no greater than the total amount of time needed (in a non-redundant data streaming system) for transmitting the non- delayed data stream alone.
  • the multiplexed data stream (with uncompressed non-delayed and delayed data streams) would need to be transmitted at a data rate of at least 2X the data rate for transmitting the non-delayed data stream alone (for the non-redundant data streaming system).
  • this increased data rate may not be supported by the maximum bandwidth of the communications channel implemented by the transmitter 810 and receiver 822.
  • the use of data compression in the data transmission system 800 serves to minimize, or otherwise eliminate, the additional bandwidth that would be needed to transmit the multiplexed data stream to achieve data-stream level redundancy.
  • the data compression module 804 is configured to achieve a data compression ratio of at least 2: 1 or greater so that the size of the compressed data stream is no more than about 50% of the size of the original data stream output from the data steam source 802.
  • the term “data compression ratio” refers to the ratio between an uncompressed size and a compressed size.
  • the data compression module 804 implements a data compression scheme that is able to achieve a data compression ratio that is about 2:1 or greater, for the type(s) of data within the data stream.
  • the multiplexed data stream (e.g., the size of the data blocks of the multiplexed data stream) is no greater than the size of the data stream (e.g., the size of the data blocks of the data stream) output from the data stream source 802.
  • the multiplexed data stream (with the compressed data stream and delayed compressed data stream) can be transmitted at the bandwidth of the communication channel, while ensuring that the total time for transmitting the multiplexed data stream (to achieve data-stream level redundancy) is no greater than the total time it would take to transmit the original data stream (with no data-stream level redundancy).
  • bit resolutions of the lossy compression techniques are specified a-priori, while in other embodiments the bit resolutions of the lossy compression techniques are system programmable. In other embodiments, the bit resolutions of the lossy compression techniques are specified from user selected factors including, but not limited to, the amount of time allowable for transmission signal dropout while still retaining a continuous output data stream. In general, the bit resolutions of the lossy compression techniques are selected based on one or more factors including, but not limited to, system transmission bandwidth, number of simultaneously transmitted data sources, minimum output data stream resolution, normal output data stream resolution, lossy or lossless compression techniques, and other factors discussed below (e.g., optional channel pre-listen configuration of FIG 14).
  • FIGs.9A, 9B, and 9C schematically illustrate a method to provide uninterrupted reception of streaming data according to another embodiment of the disclosure.
  • FIGs. 9A through 9C illustrate a method for generating a multiplexed data stream comprising a non-delayed data stream and a corresponding delayed data stream to support data stream level redundancy, according to an embodiment of the disclosure.
  • FIGs. 9A through 9C will be discussed in the context of the data transmission system 800 of FIG.
  • FIG. 9A depicts an exemplary framework for a multiplexed data stream 900 which comprises a combination of interleaved data blocks of a non-delayed data stream and a delayed data stream.
  • the different data blocks are denoted by indices based on a combination of variables Z and d and numeric values, wherein Z denotes a reference index, d is a numeric value that represents a predefined block delay which is applied to the non-delayed data stream to obtain a delayed data stream.
  • the non-delayed data blocks comprise non- bracketed indices, and the corresponding delayed data blocks comprise bracketed indices.
  • FIG. 9 A depicts an exemplary framework for a multiplexed data stream 900 which comprises a combination of interleaved data blocks of a non-delayed data stream and a delayed data stream.
  • the different data blocks are denoted by indices based on a combination of variables Z and d and numeric values, wherein Z denotes
  • the amount of delay between a non-delayed data block (e.g., data block Z) and the corresponding delayed data block (e.g., delayed data bock [Z]) in the multiplexed data stream 900 is equal to 2d+l.
  • FIG. 9B illustrates a portion of a non-delayed data stream 910 comprising a sequence of data blocks denoted by data block indices 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, and 11.
  • FIG. 9B further illustrates a portion of a corresponding delayed data stream 920 comprising a sequence of delayed data blocks denoted by bracketed indices [0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], and [11].
  • the exemplary multiplexed data stream 930 shown in FIG. 9C comprises the following a data block sequence:
  • a non-delayed data block e.g., data block 5
  • a corresponding delayed data block e.g., delayed data block [5]
  • FIG. 10 is a flow diagram of a method for generating and transmitting a multiplexed data stream comprising a non-delayed data stream and a corresponding delayed data stream to support data stream level redundancy, according to an embodiment of the disclosure.
  • FIG. 10 illustrates a mode of operation of the data transmission system 800 of FIG. 8 A.
  • the data transmission system 800 will obtain a next sequential data block Bz (non- delayed data block) of the data stream for processing (block 1000).
  • the non-delayed data block Bz is input to the delay module 806 and the multiplexer module 808 (block 1002).
  • the data block Bz that is input to the delay module 806 and the multiplexer module 808 comprises a compressed data block.
  • the data block Bz can be a compressed data block or uncompressed data block.
  • the non-delayed data block Bz is output from the multiplexer module 808 and transmitted by the transmitter 810 (block 1004).
  • a delayed data block B z-d is sent from the delay module 806 to the multiplexer module 808 (block 1006).
  • the delayed data block B z-d comprises a previous data block of the data stream with an index of Z-d, where d denotes a predefined block delay which is applied by the delay module 806.
  • the delayed data block B z-d is then output from the multiplexer module 808 and transmitted by the transmitter 810 (block 1008).
  • the multiplexer 808 ensures that the delayed data block B z-d is the next sequential data block following the non-delayed data block Bz in the multiplexed data stream that is transmitted.
  • the process flow of blocks 1000 through 1008 is repeated for each sequential non-delayed and delayed data block of the data stream.
  • the data transmission system 800 will obtain a next sequential non-delayed data block B z+1 of the data stream for processing (block 1010).
  • the non-delayed data block B z+1 is input to the delay module 806 and the multiplexer module 808 (block 1012). Again, it is assumed that the non-delayed data block B z+1 can be a compressed data block or uncompressed data block.
  • the non-delayed data block B z+1 is output from the multiplexer module 808 and transmitted by the transmitter 810 (block 1004).
  • ⁇ ext a delayed data block B z+t-d is sent from the delay module 806 to the multiplexer module 808 (block 1016).
  • the delayed data block Bz + i -a comprises a previous data block of the data stream with an index of (Z+1)-d, where d denotes the predefined block delay which is applied by the delay module 806.
  • the delayed data block B z+1-d is then output from the multiplexer module 808 and transmitted by the transmitter 810 (block 1018).
  • the multiplexer 808 ensures that the delayed data block B z+1-d is the next sequential data block following the non-delayed data block B z+1 in the multiplexed data stream that is transmitted. Again, the process flow is repeated for each sequential non- delayed and delayed data block of the data stream.
  • FIG. 11 is a flow diagram of a method for receiving and processing multiplexed data stream comprising a non-delayed data stream and a corresponding delayed data stream to generate a continuous data stream output for real-time playback, according to an embodiment of the disclosure.
  • FIG. 11 illustrates an exemplary mode of operation of the data reception system 820 of FIG. 8B.
  • a data block of a multiplexed data stream is received (block 1100) and a determination is made as to whether the data block is delayed or non-delayed (block 1102).
  • the determination is made by spatial position in the multiplexed or de-multiplexed data stream, determined by inspection such as reading one or more indicators, or by analysis.
  • the determination step can be performed by the demultiplexer module 824 or the data compression module 826 (FIG. 8B).
  • the non-delayed data block is stored in a buffer or a queue in proper sequence or with a sequence identifier (block 1106).
  • a determination is made as to whether the transmitter-delayed data block is next for playback (block 1108). If it is determined that the transmitter delayed data block is the next data block for playback (affirmative determination in block 1108), the data block is output for playback (block 1110).
  • the data block is stored in the buffer or the queue in proper sequence or with a sequence identifier (block 1112).
  • the next data block for playback is then retrieved from the buffer or the queue (block 1114) and output from playback (block 1110).
  • the delayed and non-delayed data blocks are stored in the same buffer or queue.
  • the non-delayed data blocks are stored (in block 1106) in a buffer or queue which is different from the buffer or queue in which the delayed data blocks are stored (in block 1112).
  • FTG. 12 schematically illustrates a data transmission system 1200 which is configured to generate and transmit a multiplexed data stream having data stream redundancy for multiple data streams from multiple data sources, according to an embodiment of the disclosure.
  • the data transmission system 1200 comprises a buffer management and synchronization module 1210, a plurality of delay modules 1220-1, 1220-2, 1220-3, ..., 1220-x, and a data block sequencer and multiplexer module 1230.
  • a plurality (x) of different data streams S1, S2, S3, ..., Sx are generated by different data stream sources and input to the buffer management and synchronization module 1210.
  • FIG. 12 is an extension of the data transmission system 800 of FIG. 8A, to enable the processing and multiplexing of multiple data streams from different data sources (wherein FIG. 8A illustrates an exemplary data transmission system 800 for generating a multiplexed data stream comprising non-delayed and transmitter-delayed data blocks of a single data stream).
  • FIG. 8A illustrates an exemplary data transmission system 800 for generating a multiplexed data stream comprising non-delayed and transmitter-delayed data blocks of a single data stream).
  • Sx as shown in FIG. 12 comprise compressed data streams which are generated by compressing the original data streams received from different data stream sources.
  • the buffer management and synchronization module 1210 implements methods that are configured to temporarily buffer the data blocks of the incoming data streams S1, S2, S3, ..., Sx and time synchronize and align the data blocks of the different data streams S1, S2, S3, ..., Sx to facilitate downstream processing for generating and transmitting a multiplexed data stream comprising a combination of the different data streams SI, S2, S3, ..., Sx with associated redundant delayed data blocks.
  • the incoming data steams data streams SI, S2, S3, ..., Sx may be synchronous or asynchronous.
  • the data stream SI, S2, S3, ..., Sx may have different data rates (e.g., asynchronous data streams).
  • the data streams S1, S2, S3, ..., Sx are fully synchronous with the same data rates.
  • the buffer management and synchronization module 1210 is configured to aggregate one or more of the data streams SI, S2, S3, ..., Sx into data blocks.
  • the size of the aggregated data blocks are determined, e.g., a- priori, by system command, based on information contained within the data stream such as embedded block size information or based on information in the data itself or header, or dynamically determined based on redundancy parameters for an uninterrupted data stream, etc.
  • one or more of the data streams SI, S2, S3, ..., Sx are compressed.
  • data block size information refers to a compression the size of a compressed block.
  • data block size information refers to the size of the block when decompressed.
  • the data block sizes of the compressed and decompressed blocks are provided.
  • the data compression method that is utilized comprises a data packet independent data compression method.
  • the data compression methods are that utilized for the different data streams are data packet dependent.
  • the compression of the data block is not packet independent and relationship to one or more data blocks, either relative or absolute is provided in the header or data itself.
  • the data compression is not packet independent and the relationship to one or more other data blocks is relative and known a-priori.
  • the time delay is so chosen as to ensure that even with packet dependent data compression no packets are lost during signal blackout periods.
  • the buffer management and synchronization module 1210 synchronizes the incoming data streams SI, S2, S3, ..., Sx using one or more phase- locked loops to perform clock recovery and/or data cleanup of the incoming data streams SI, S2, S3, ..., Sx.
  • the input data streams SI, S2, S3, ..., Sx are synchronized by a series of phase-locked loops which are locked to a master clock, using methods well known in the art.
  • the buffer management and synchronization module 1210 implements one or more buffers to temporarily store the synchronized data streams S 1 , S2, S3, ..., Sx and to output of data blocks of the data streams SI, S2, S3, ..., Sx in an ordered manner to the respective delay modules 1220-1, 1220-2, 1220-3, ..., 1220-x, and the sequencer and multiplexer module 1230.
  • the delay modules 1220-1 , 1220-2, 1220-3, ..., 1220-x are configured to apply a time delay or block delay to the respective synchronized/ordered data streams S 1 , S2, S3, ..., Sx which are output from the buffer management and synchronization module 1210.
  • the sequencer and multiplexer module 1230 receives as input the non-delayed data streams SI , S2, S3, ..., Sx and the corresponding transmitter-delayed versions of the data streams SI, S2, S3, ..., Sx which are output from the respective delay modules 1220-1, 1220-2, 1220-3, ..., 1220- x.
  • the sequencer and multiplexer module 1230 implements methods for sequencing the non- delayed and delayed versions of the data streams SI, S2, S3. Sx and combining the non- delayed and delayed versions of the data streams SI, S2, S3, ..., Sx into a single multiplexed data stream.
  • the sequencer and multiplexer module 1230 implements a programmed sequencing and multiplexing protocol to generate a single multiplexed data stream which is designed to obtain a target transmission delay between non-delayed and delayed versions of each data stream SI, S2, S3, ..., Sx and thereby achieve a desired “signal dropout recovery period” for each of the data streams S 1 , S2, S3, ... , Sx.
  • FIGs. 13A and 13B schematically illustrate a method for generating a multiplexed data stream comprising a combination of non-delayed data streams and a corresponding delayed data streams of multiple data sources, according to an embodiment of the disclosure.
  • 13A and 13B schematically illustrate a sequencing and multiplexing protocol which can be implemented by the sequencer and multiplexer module 1230 of FIG. 12 to generate a single multiplexed data stream with redundancy for a plurality (x) of data streams.
  • FIG. 13 A illustrates a plurality of exemplary data streams 1300 which are input to the sequencer and multiplexer module 1230
  • FIG. 13B illustrates an exemplary single multiplexed data stream 1310 which is generated by combining the multiple data streams 1300 of FIG. 13A.
  • the plurality (x) of data streams 1300 comprises non- delayed data streams S1, S2, S3. Sx, and corresponding transmitter-delayed data streams
  • the number of data streams x that are combined into a single multiplexed data stream with redundancy will vary depending on the application and the processing capabilities, resources, channel bandwidth, etc., of the data transmission and reception systems.
  • the number (x) of data streams that can be combined into a single are multiplexed data stream can be on the order tens, hundreds, or even thousands of data streams.
  • the non-delayed data stream SI comprises data bocks SiBi wherein Si denotes the first data stream SI and wherein B. denotes a data block index i of the data blocks of the data stream S1.
  • the transmitter-delayed data stream [S1] comprises data bocks [SiBi] wherein [SiB,] denotes the delayed data block [Bi] of the transmitter-delayed data stream [S1 ] corresponding to the non-delayed data stream S1.
  • the non-delayed data stream S2 comprises data bocks S 2 B J wherein S 2 denotes data stream S2 and wherein B j denotes a data block index j of the data blocks of the data stream S2.
  • [52] comprises data bocks [ S 2 B J ] wherein [ S 2 B J ] denotes the delayed data block [B j ] of the transmitter-delayed data stream [S2] corresponding to the non-delayed data stream S2.
  • the non-delayed data stream S3 comprises data bocks S 3 B n wherein S 3 denotes data stream S3 and wherein B n denotes a data block index n of the data blocks of the data stream S3.
  • the transmitter delayed data stream [S3] comprises data bocks [S 3 B n ] wherein [S 3 B n ] denotes the delayed data block [B n ] of the transmitter-delayed data stream [S3] corresponding to the non-delayed data stream S3.
  • the non-delayed data stream Sx comprises data bocks S x B y wherein S x denotes data stream Sx and wherein B y denotes a data block index y of the data blocks of the data stream Sx.
  • the transmitter-delayed data stream [S x ] comprises data bocks [S x B y ] wherein [ S x B y ] denotes the delayed data block [B y ] of the transmitter-delayed delayed stream [Sx] corresponding to the non-delayed data stream S.
  • each data stream block is shown paired and time aligned with its corresponding delayed version from the same data stream.
  • FIG. 13 A illustrates the data blocks as being equal sized and time aligned strictly for illustrative purposes, and that exemplary embodiments of the disclosure are not limited in this regard.
  • FIG. 13B illustrates the exemplary single multiplexed data stream 1310 which is generated by combining the non-delayed data streams SI, S2, S3, Sx, and the corresponding transmitter-delayed data streams [SI], [S2], [S3], [Sx] ofFIG. 13A.
  • the non-delayed SiB(5) data block of the non-delayed stream SI and the “delayed by five (5)” data block [S i B i-5 ] of the corresponding transmitter-delayed data stream [SI] are sequentially transmitted, and this paired transmission pattern is sequentially repeated for the other data streams S2 through Sx, as clearly illustrated in FIG.
  • FIG. 13B illustrates an exemplary embodiment in which the non-delayed and delayed data blocks from each data stream SI through Sx are shown adjacent to each other, it is to be understood that exemplary embodiments of the disclosure have no such limitation for generating a multiplexed data stream with redundancy, as the data block delay and multiplexing patterns can vary depending on the application.
  • FIG. 13B schematically illustrates the data blocks from each data stream being equivalent in size, once again, embodiments of the disclosure are not limited to equal block sizes.
  • the exemplary embodiment shown in FIG. 13B assumes that all data streams SI, S2, S3, ..., Sx require uninterrupted reception. However, the inclusion of delayed blocks from each data stream is based, at least in part, on which data streams require uninterrupted reception.
  • each data block may be compressed with one or more lossy or lossless data compression techniques.
  • the non-delayed transmitted data stream can be utilized in the output data stream for playback, and any missing data blocks of the non-delayed data stream are augmented using corresponding data blocks from the lower resolution transmitter-delayed data stream.
  • FIG. 13B assuming that all data blocks are equivalent in size and compressed with the same lossless or lossy data compression technique, is approximately twice the bandwidth required for conventional systems that do not provide uninterrupted continuous data stream service using exemplary data stream-level redundancy techniques as discussed herein.
  • the required bandwidth may be reduced from twice to some multiple that is greater than one.
  • a non-delayed stream is transmitted and received for playback until the system detects a large period or relatively frequent periods of signal dropout, in which case the system can switch to an operating mode to provide data stream redundancy with transmitter and receiver delays. For example, when a prescribed amount of real-time data blocks are not received by the receiver within a specified time period, the system autonomously switches to utilizing the corresponding transmitter delayed data blocks along with delaying any non-transmitter delayed (real-time) data blocks. The data blocks are then combined to create an un-interrupted data stream in accordance with one or more previously discussed embodiments that provide data stream level redundancy.
  • the permitted amount of lost real-time data blocks may be cumulative or cumulative within a given time frame.
  • the system would autonomously switch to utilizing transmitter and receiver delayed data blocks to create an uninterrupted data stream in accordance with one or more embodiments of the present invention.
  • the switch in operating mode to data stream redundancy may be commenced by user command.
  • the amount of loss of data blocks with a specified timer period may utilize a thresholding technique whereby losses that do not affect or significantly affect the user may be ignored.
  • the specified time period is user defined, programmable, or a sliding window.
  • real-time data blocks can be sent for time critical information, such as time information to update a clock.
  • a delayed data block is sent with a known time delay, allowing the clock to be updated accurately by a receiver-delayed or transmitter-delayed data block.
  • time information may be presented to the transmitter 10 seconds in advance of the actual time.
  • FIG. 14 schematically illustrates a data reception system 1400 according to another embodiment of the disclosure.
  • the data reception system 1400 is implemented in a radio receiver (e.g., satellite radio receiver) which is configured to allow a user to select one of a plurality of favorite pre-designated radio stations.
  • the data reception system 1400 is configured to receive and pre-process a plurality of redundant data streams corresponding to the pre-designated radio stations so that the playback of the data steam associated with the selected pre-designed station occurs immediately with redundancy for continuous uninterrupted service.
  • the data reception system 1400 comprises a pre-listen station module 1410, a station selector module 1420, and an intelligent pre-listen station designation module 1430.
  • the pre-listen station module 1410 is configured to activate a plurality of receivers 1410-1, 1410-1, ..., 1410-s for pre-processing corresponding data streams associated with pre-designated radio stations.
  • the redundant data streams (1 ), (2), .... (s) comprise separately transmitted non-delayed and corresponding transmitter-delayed data streams, and each receiver 1410-1, 1410-1, ..., 1410-s implements a data reception system 310, as shown in FIG. 3B.
  • each redundant data stream (1), (2), ..., (s) comprises a multiplexed data stream which includes a combination of a non-delayed data stream and corresponding transmitter-delayed data stream, and each receiver 1410-1, 1410-1,
  • 1410-s implements a data reception system 820, as shown in FIG. 8B.
  • the station selector module 1420 allows a user to select a pre-designated station and output a continuous data stream which is generated by one of the receiver modules 1410- 1, 1410-2, ..., 1410-s which corresponds to the selected radio station.
  • the station selector module 1420 is configured to allow end-user selection of a desired station, or automatic selection, e.g., as in sampling stations from a radio preview.
  • the optional intelligent pre-listen station designation module 1430 is implemented to automatically determine one or more pre-1 isten stations to be activated by the pre-l isten station module 1410.
  • intelligent station designation can be based on various factors such as frequency of use, recent use, or as an intelligent advance selection for upcoming station sampling.

Abstract

Systems and methods are provided for implementing data stream-level redundancy in a data communications system to provide uninterrupted reception and playback of streaming data such as streaming audio data. For example, a data reception system receives a first data stream and a first delayed data stream transmitted from a data transmission system, wherein the first delayed data stream comprises a delayed version of the first data stream. The data reception system generates a second delayed data stream, wherein the second delayed data stream comprises a delayed version of the received first data stream. The data reception system combines portions of the first and second delayed data streams to thereby generate a received data stream for output.

Description

SYSTEMS AND METHODS FOR UNINTERRUPTED RECEPTION
OF STREAMING DATA
Technical Field
[0001] This disclosure relates generally to data stream processing techniques and, in particular, to data stream processing techniques for uninterrupted real-time playback of streaming data such as audio or audiovisual streaming data.
Background
[0002] In general, streaming data is data that is continuously generated by a data source to support, e.g., a streaming service. Common examples of streaming services include video streaming services such as Acorn TV, Apple TV+, Amazon Prime Video, AT&T TV, AT&T WatchTV, BritBox, CBS All Access, The Criterion Channel, DC Universe, Direct TV (AT&T TV Now) ESPN+, FilmStruck, Fubo TV, HBO Now, Hulu, Netflix, Philo, PlayStation Vue, Showtime, Sling TV, Starz, T-Mobile TVision, YouTube TV, and Roku. In addition there are multiple on-demand private video services utilizing services such as Vimeo, Dropbox, Metacafe and other cloud based public and private video streaming services. Satellite radio services, terrestrial audio streaming radio services, etc. such as SiriusXM Radio, Tidal, Amazon Music, Apple Music, Spotify, Pandora, iHeart Radio, LiveXLive , Google Play Music, and Deezer, along with a plethora of podcasts, Internet Radio Stations, and private streaming content delivery.
[0003] Such data streaming services generate and transmit streaming data over wired and/or wireless network systems, wherein the streaming data is received and processed for playback using various types of computing devices such as laptop computers, smart phones, electronic tablets, vehicle radio receivers, etc. Unlike audio data files that are downloaded and accessed at any time after download, streaming audio data is played back in real-time by the computing device after a only a very small amount of audio data is received and temporarily buffered, and the streaming audio data is not stored permanently in the computing device.
[0004] For streaming audio data applications such as streaming radio or satellite radio applications, it is desirable to allow end users to listen to the streamed audio without interruption. However, in a wireless networking environment where streaming data is transmitted over a wireless channel, there can be various circumstances that result in signal corruption or signal dropout, which causes periodic interruptions in the reception and playback of the streaming data. For example, for a vehicle equipped with a radio receiver for satellite radio services, the radio receiver may lose contact with the satellite signal when the vehicle moves to location in which the satellite signal is obstructed by structures such as buildings, overpasses, hills, etc., resulting in signal dropout at the radio receiver. Many satellite and other streaming services are actually transmitted from ground stations. In these cases the line of sight signal attenuation or blockage from terrain and structures is a significant problem and often causes multiple interruptions of signal and associated content, even in a short drive or walk with a mobile receiver. Tn other situations, the received signal strength can be significantly attenuated due to signal interference, signal reflections, multipath fading, etc., which results in a decreased signal-to-noise ratio and possible signal corruption or signal loss. Such data loss of streaming audio data due to signal corruption during transmission of the streaming audio data can result in unwanted interruption of the streaming audio playback. Indeed the signal path from transmitter to receiver, especially for mobile applications, is unpredictable and obstructions and signal interference is a major issue for mobile applications which receive streaming data via a cellular or other wireless transmission media.
[0005] Another problem within the current art is that buffering alone does not solve streaming dropout issues. Steaming services often utilize one to many broadcast protocols or methodologies such as User Datagram Protocol (UDP), which is one of the core members of the Internet protocol suite. With UDP, a data stream source can send messages, in this case referred to as datagrams, to other hosts and end users on an Internet Protocol (IP) network. Prior communications are not required in order to set up communication channels or data paths. UDP uses a simple connectionless communication model with a minimum of protocol mechanisms. UDP provides checksums for data integrity, and port numbers for addressing different functions at the source and destination of the datagram. It has no handshaking dialogues, and thus exposes the user's program to any unreliability of the underlying network; there is no guarantee of delivery, ordering, or duplicate protection. UDP is suitable for purposes where error checking and correction are either not necessary or are performed in the application. UDP avoids the overhead of such processing in the protocol stack. Time-sensitive applications often use UDP because dropping packets is preferable to waiting for packets delayed due to retransmission, which may not be an option in a real-time system. It should be noted that UDP is just one example of a digital broadcast system utilized for streaming media systems. These and other problems are solved by exemplary embodiments of the disclosure as discussed herein. It should be noted that nothing in this background section is an admission of prior art. Summary
[0006] Embodiments of the disclosure include systems and methods for implementing intelligent and optionally adaptive data stream-level redundancy in a data communications system to provide uninterrupted reception of streaming data.
[0007] In one embodiment, a method comprises: receiving, by a data reception system, a first data stream and a first delayed data stream transmitted from a data transmission system, wherein the first delayed data stream comprises a delayed version of the first data stream; generating, by the data reception system, a second delayed data stream, wherein the second delayed data stream comprises a delayed version of the received first data stream; and combining, by the data reception system, portions of the first and second delayed data streams to thereby generate a received data stream for output.
[0008] In another embodiment, a data reception system comprises: a receiver configured to receive a first data stream and a first delayed data stream transmitted from a data transmission system, wherein the first delayed data stream comprises a delayed version of the first data stream; a receiver delay module configured to generate a second delayed data stream which comprises a delayed version of the received first data stream; and a data stream generator module configured to combine portions of the first and second delayed data streams to thereby generate a received data stream for output.
[0009] In another embodiment, a method comprises: receiving, by a data transmission system, a first data stream output from a data stream source; generating, by the data transmission system, a first delayed data stream which comprises a delayed version of the first data stream; multiplexing the first data stream and the first delayed data stream to thereby generate a multiplexed data stream comprising a combined sequence of the first data stream and the first delayed data stream; and transmitting the multiplexed data stream over a single communications channel to a data reception system; wherein the multiplexed data stream is configured to support stream data-level redundancy for generating a continuous data stream for output by the data reception system.
[0010] In another embodiment, a method comprises: receiving, by a data transmission system, a plurality of different data streams output from a plurality of different data stream sources; generating, by the data transmission system, a plurality of first delayed data streams, wherein each of the first delayed data streams comprises a delayed version of a corresponding one of the different data streams; multiplexing the plurality of different data streams and the corresponding first delayed data streams to thereby generate a multiplexed data stream comprising a combined sequence of data blocks of the plurality of different data streams and the corresponding first delayed data streams; and transmitting the multiplexed data stream over a single communications channel to a data reception system; wherein the multiplexed data stream is configured to support stream data-level redundancy for generating a continuous data stream for output by the data reception system for each of the plurality of different data streams.
[0011] Other embodiments will be described in the following detailed description of embodiments, which is to be read in conjunction with the accompanying figures.
Brief Description of the Drawings
[0012] FIG. 1 illustrates various types of satellite orbits that orbit around Earth.
[0013] FIGs. 2A, 2B, 2C, and 2D schematically illustrate various types of obstructions that can cause signal dropout of satellite radio signals that are received by a mobile radio receiver system.
[0014] FIGs. 3A and 3B schematically illustrate a communications system which is configured to provide uninterrupted reception of streaming data using data stream-level redundancy, according to an embodiment of the disclosure, wherein:
[0015] FIG. 3A schematically illustrates a data communication system which is configured to transmit a data stream on redundant communication channels; and [0016] FIG. 3B schematically illustrates a data reception system which is configured to receive the data stream transmitted on redundant communication channels and generate a continuous data stream.
[0017] FIG. 4 schematically illustrates a continuous data stream generator module which can be implemented in the data reception system of FIG. 3B, according to an embodiment of the disclosure.
[0018] FIGs. 5A and 5B schematically illustrate a method to provide uninterrupted reception of streaming data according to an embodiment of the disclosure, wherein:
[0019] FIG. 5 A depicts a timing diagram for a data stream transmission process; and
[0020] FIG. 5B depicts a timing diagram for a data stream reception process and continuous data stream generation process.
[0021] FIGs. 6A, 6B, 6C, 6D, and 6E schematically illustrate a method to provide uninterrupted reception of streaming data in the event of signal dropout, according to an embodiment of the disclosure, wherein:
[0022] FIG. 6A depicts an exemplary non-delayed data stream and a transmitter- delayed data stream, which are generated and transmitted from a transmission system;
[0023] FIG. 6B depicts an exemplary non-delayed data stream and a transmitter- delayed data stream, which are received at a receiver of a data reception system; [0024] FIG. 6C schematically illustrates a process in which a receiver-delayed data stream is generated by delaying the received non-delayed data stream;
[0025] FTG. 6D schematically illustrates a process of generating a continuous data stream in which a missing section of data blocks of the received delayed data stream is augmented with corresponding data blocks from the receiver-delayed data stream; and
[0026] FIG. 6E schematically illustrates a process of generating a continuous data stream in which a missing section of data blocks of the receiver-delayed data stream is augmented with corresponding delayed data blocks from the transmitter-delayed data stream.
[0027] FIGs. 7A and 7B schematically illustrate a communications system which is configured to provide uninterrupted reception of streaming data according to another embodiment of the disclosure, wherein:
[0028] FIG. 7A schematically illustrates a data communication system which is configured to transmit multiple data streams from multiple data sources on redundant communication channels; and
[0029] FIG. 7B schematically illustrates a data reception system which is configured to receive multiple data streams which hare transmitted on redundant communication channels and generate continuous data streams.
[0030] FIGs. 8A and 8B schematically illustrate a communications system which is configured to provide uninterrupted reception of streaming data using data stream-level redundancy, according to another embodiment of the disclosure, wherein:
[0031] FIG. 8A schematically illustrates data transmission system which is configured to generate and transmit a multiplexed data stream having data stream redundancy on a single multiplexed communications channel through a communications network; and [0032] FIG. 8B schematically illustrates a data reception system which is configured to receive the multiplexed data stream utilize the data stream-level redundancy as provided by the multiplexed data stream to generate a continuous data stream.
[0033] FIGs. 9A, 9B, and 9C schematically illustrate a method for generating a multiplexed data stream comprising non-delayed data stream and a corresponding delayed data stream to support data stream level redundancy, according to an embodiment of the disclosure, wherein:
[0034] FIG. 9A depicts an exemplary framework for generating a multiplexed data stream which comprises a combination of interleaved data blocks of a non-delayed data stream and a delayed data stream; [0035] FIG. 9B illustrates a portion of a non-delayed data stream comprising a sequence of data blocks and a portion of a corresponding delayed data stream comprising a sequence of delayed data blocks; and
[0036] FIG. 9C illustrates a multiplexed data stream which is generated by combining the data blocks of the non-delayed data stream and the corresponding delayed data stream of FIG. 9B at intervals that correspond to a predefined block delay d=5.
[0037] FIG. 10 is a flow diagram of a method for generating and transmitting a multiplexed data stream comprising a non-delayed data stream and a corresponding delayed data stream to support data stream level redundancy, according to an embodiment of the disclosure.
[0038] FIG. 11 is a flow diagram of a method for receiving and processing multiplexed data stream comprising a non-delayed data stream and a corresponding delayed data stream to generate a continuous data stream output for real-time playback, according to an embodiment of the disclosure.
[0039] FIG. 12 schematically illustrates a data transmission system which is configured to generate and transmit a multiplexed data stream having data stream redundancy for multiple data streams from multiple data sources, according to an embodiment of the disclosure.
[0040] FIGs. 13A and 13B schematically illustrate a method for generating a multiplexed data stream comprising a combination of non-delayed data streams and corresponding delayed data streams of multiple data sources, according to an embodiment of the disclosure.
[0041] FIG. 14 schematically illustrates a data reception system according to another embodiment of the disclosure.
Detailed Description
[0042] Embodiments of the disclosure will now be discussed in further detail with regard to systems and methods for implementing data stream-level redundancy in a data communications system to provide uninterrupted reception of streaming data. In the following description, it is to be understood that elements having equivalent or similar functionality are designated with the same reference numerals in the Figures. It is to be further understood that embodiments of the disclosure may be implemented in various forms of hardware, software, firmware, or a combination thereof. In particular, various system modules as described herein may be implemented in hardware and/or software as program code that is executable by, e.g., a general or special purpose computing system or any machine or device having any suitable and preferred processor architecture. It is to be further understood that, because some of the constituent system components described herein can be implemented as software modules, the actual system connections and process flow as shown in the Figures may differ depending upon the manner in which the systems are programmed.
[0043] It is to be understood that the terms “about” or “substantially” as used herein with regard to thicknesses, widths, percentages, ranges, etc., are meant to denote being close or approximate to, but not exactly. For example, the term “about” or “substantially” as used herein implies that a small margin of error is present, such as 1 % or less than the stated amount.
[0044] The term “exemplary” as used herein means “serving as an example, instance, or illustration”. Any embodiment or design described herein as “exemplary” is not to be construed as preferred or advantageous over other embodiments or designs. In addition it should be noted that the embodiments of the present invention are not limited to the examples presented herein.
[0045] The term “data stream” as used herein is broadly construed to include audio, video, or any form of multimedia data or digital data content that is constantly or nearly constantly transmitted by a data stream source for a period of time and constantly or nearly constantly received by and presented to an end user while being delivered through a wired, wireless, or combined wired/wireless transmission system.
[0046] The term “data stream source” as used herein is broadly construed to include any source of a data stream (e.g., video, audio, or multimedia data) that is constantly or nearly constantly transmitted to one or more end users.
[0047] The term “communications channel” or “channel” as used herein is broadly construed to any type of physical wired or wireless transmission medium which is configured to convey a data signal from a transmitter to a receiver. A channel can be a radio channel which is assigned a given frequency of a carrier signal which is used to transmit streaming data. A channel may comprise a signal channel with a multiplexed data that is electrically separated using, e.g., frequency-division multiplexing, time-division multiplexing, etc. A channel has a certain capacity for transmitting information, which is referred to as channel bandwidth or channel data rate (in bits per second).
[0048] The term “data block” as used herein is broadly construed to include a block of data which comprises any type of data (audio data, video data, audiovisual data, multimedia data etc.) and has a block size that can range in size from an individual bit, multiple bits, one or more bytes, and through complete files or collections of multiple files. Additionally, a data block size may be fixed or variable, wherein the data block size is based on any number of bits, bytes, words, or any convenient data multiple or metric, or any combination thereof. [0049] To provide context, exemplary embodiments of the disclosure will be discussed in the context of streaming audio and/or multimedia content that is delivered through various types of wireless broadcasting systems such as Satellite radio, streaming radio, and other types of digital audio broadcasting (DAB) systems or wireless data streaming service platforms. It is to be understood, however, that the exemplary systems and methods discussed herein can be implemented to provide data stream-level redundancy in all types of broadcast streaming applications which implement various types of communications protocols. Such communication protocols include, but are not limited to, UDP (User Datagram Protocol) which is typically used for establishing low-latency and loss-tolerating connections between applications in an IP (internet Protocol) network. In particular, UDP/1P is used in various applications including gaming, voice or video conference, video streaming, audio streaming and multimedia streaming.
[0050] FIG. 1 illustrates various types of satellite orbits that orbit around Earth. For example, FIG. 1 schematically illustrates four different types of satellite orbits including a low Earth orbit 12, a mid-Earth orbit 14, ahigh Earth orbit 16, and a Molniya orbit 18. In general, a satellite orbit is defined by various parameters such as (i) height, (ii) eccentricity, and (iii) inclination. The height parameter defines an altitude of the orbit above the surface of the Earth. The altitude of a given orbit can vary depending on the shape of the orbit The term “eccentricity” refers to the shape of the orbit, wherein the eccentricity of an orbit indicates the deviation of the orbit from a perfect circle. In particular, a satellite with a low eccentricity (e.g., about zero (0)) orbit moves in a near circle around the Earth, while an eccentric orbit is elliptical, with the satellite’s distance from Earth changing depending on where it is in its orbit A highly eccentric orbit has an eccentricity that approaches a value of 1 (but always less than) 1. The term “inclination” refers to the angle of the orbit relative to the Earth’s equator. A satellite that orbits directly above the equator has zero inclination. If a satellite orbits from the North Pole (geographic, not magnetic) to the South Pole, its inclination is 90 degrees. An orbital inclination of 180° denotes an orbit above the equator in the opposite direction of Earth’s spin.
[0051] A geosynchronous orbit is an orbit around the Earth of a satellite with an orbital period that matches the Earth’s rotation on its axis, which takes one sidereal day (about 23 hours, 56 minutes, and 4 seconds). The synchronization between rotation of the Earth and the orbital period means that, for an observer on Earth’s surface, a satellite in a geosynchronous orbit returns to the same position in the sky after a period of one sidereal day. In FIG. 1, the high Earth orbit 16 represents a circular geosynchronous orbit with a distance D3 which is about 35,786 km (22,236 mi) above the surface of the Earth 10. A special case of geosynchronous orbit is a geostationary orbit, which is a circular geosynchronous orbit in the Earth's equatorial plane (i.e., directly above the Equator). A satellite in a geostationary orbit appears stationary, always at the same point in the sky, to observers on the surface. Communication satellites are typically operated in geostationary or close to geostationary orbits so that the satellite antennas that communicate with them do not have to move, but can be pointed permanently at the fixed location in the sky where the satellite appears.
[0052] A semi-synchronous orbit has an orbital period of half a sidereal day (i.e., 11 hours and 58 minutes). The mid Earth orbit 14 shown in FIG. 1 is an example of a semi- synchronous orbit (or ½ geosynchronous orbit) which is a near-circular orbit with a low eccentricity and an altitude of about 20,200 kilometers above the surface of the Earth 10. A satellite in the ½ geosynchronous orbit 14 takes 12 hours to complete an orbit and thus, crosses over the same two spots on the equator every day to provide a consistent and highly predictable orbit. The ½ geosynchronous orbit 14 is used by Global Positioning System (GPS) satellites. [0053] The Molniya orbit 18 is another example of a semi-synchronous orbit that has an orbital period of half a sidereal day. The Molniya orbit 18 is utilized for far northern or southern locations. The Molniya orbit 18 has a high inclination (about 63.4°) and high eccentricity (about 0.722) to enable viewing or communications over high latitudes. The Molniya orbit 18 lasts 12 hours, and spends about two-thirds of that time over one hemisphere. Similar to a semi-synchronous orbit, a satellite in the Molniya orbit 18 passes over the same path two times every 24 hours. SiriusXM radio satellites utilized this type of orbit, however they are now reliant on geosynchronous satellites which, coupled with a large growth in subscriber base, has spurred the need for the addition of numerous ground stations to serve as repeater stations for the SiruisXM steaming services.
[0054] Moreover, as schematically depicted in FIG. 1, the low Earth orbit 12 is an Earth-centered orbit (e.g., eccentricity close to 0) with an altitude D1 of about 2,000 km (1 ,200 mi) or less above the surface of the Earth 10. A satellite in the low Earth orbit 12 has an orbital period of about 128 minutes or less and an eccentricity of less than 0.25. Many scientific satellites and weather satellites are operated in a nearly circular, low Earth orbit.
[0055] As noted above, for streaming data applications such as satellite radio (e.g.,
SiriusXM), the radio receiver in a moving vehicle (e.g., car) may lose contact with the satellite signal due to some obstruction or interference, which results in signal dropout and thus interruption of the audio signal of the given radio station that a user is listening to while driving the vehicle. As the vehicle moves, the audio signal may resume once the obstruction or interruption is cleared. [0056] FIGs. 2A, 2B, 2C, and 2D schematically illustrate various types of obstructions that can cause signal dropout of satellite radio signals that are received by a mobile radio receiver system. For example, FTG. 2A illustrates a circumstance in which a satellite radio signal 200 that is transmitted to a radio receiver in a moving vehicle 210 is temporarily blocked by a tall obstruction 220 (e.g., a tall building, a hill, etc.) which the vehicle 210 passes at a given time. This obstruction 220 can lead to signal dropout for the given period of time that is takes for the vehicle to move to a location away from the obstruction 220 where the signal is no longer blocked.
[0057] FIG. 2B illustrates an example where a ground station 230 (or transponder or satellite repeater) transmits a received signal 240 to the radio receiver in the moving vehicle 210. FIG. 2B illustrates a circumstance in which the moving vehicle 210 temporarily travels on a lower roadway 250 which results in the radio receiver of the moving vehicle 250 being located out of the radio line of sight between the repeater station 230 and the moving vehicle 210. This results in a temporary signal dropout of the radio signal 240 at the receiver, and thus an interruption of the audio signal of the radio station that the user is listening to in the moving vehicle. The ground station 230 may receive a signal to be transmitted via a wired or wireless network. The ground station 230 can receive and re-transmit a satellite radio signal.
[0058] FIG. 2C illustrates another example where the radio line of sight between the ground station 240 and the moving vehicle 210 is temporarily blocked by a tall obstruction 260 which the vehicle 210 passes at a given time. Again, this results in signal dropout where the radio receiver of the moving vehicle 210 does not receive the transmitted radio signal 240 from the repeater station 230 during the period of time in which the vehicle 210 passes by the obstruction 260.
[0059] FTG. 2D illustrates an exemplary situation wherein the moving vehicle 201 is traveling on a lower roadway 270 below an upper roadway 280 with an overpass 290 (or bridge) which covers a portion of the lower roadway 270. In this instance, as the vehicle 210 passes under the overpass 290, the radio receiver of the vehicle 210 is temporarily blocked from receiving a satellite radio signal or a transmitted radio signal from a ground station. Again, this results in a temporary signal dropout where the radio receiver of the moving vehicle 210 does not receive the radio signal for a given time during which the vehicle 210 passes below the overpass 290.
[0060] FIGs. 3A and 3B schematically illustrate a communications system which is configured to provide uninterrupted reception of streaming data according to an embodiment of the disclosure. In general, FIG.3 A and 3B schematically illustrate a communications system comprising a data transmission system 300, a communications network 308, and a data reception system 310. The data transmission system 300 is configured to transmit a data stream on redundant communication channels over the communications network 308, and the data reception system 310 is configured to receive the data stream on the redundant communication channels and utilize the data stream-level redundancy to generate a continuous data stream for real-time or near real-time playback by a data stream playback system 330. The communications network 308 may comprise, for example, a global computer network such as the Internet, a wide area network (WAN), a local area network (LAN), a satellite network, a telephone or cable network, a cellular network, a wireless network such as Wi-Fi or WiMAX, or various portions or combinations of these and other types of networks. The term “network” as used herein is therefore intended to be broadly construed so as to encompass a wide variety of different network arrangements, including combinations of multiple networks, possibly of different types.
[0061] More specifically, as shown in FIG. 3A, the data transmission system 300 comprises a data stream source 302, a delay module 304, and a transmitter 306. The transmitter 306 comprises a first transmitter channel 306-1, and a second transmitter channel 306-2. The data stream source 302 generates a data stream which is to be transmitted or otherwise broadcast to one or more end users. As noted above, the data stream source 302 comprises any system or entity that generates a data stream (e.g., digital audio and/or video data stream) to provide data streaming services (e.g., audio streaming services, audiovisual streaming service, streaming radio service, satellite radio service, etc.). The data stream can be generated in various types of formats (e.g., one or more compressed formats, data packets, digital audio format, etc.) or any combination thereof depending on the application.
[0062] The delay module 304 is configured to apply a delay to the data stream that is output from the data stream source 302 and thereby generates a delayed data stream (or transmitter-delayed data stream). In some embodiments, the delay module 304 is configured to delay the data stream by a predefined (yet programmable) amount of time (referred to as “time delay”). In other embodiments, the delay module 304 is configured to delay the data stream by a predefined (yet programmable) number of data blocks (referred to as “block delay”). In some embodiments, the “time delay” or “block delay” is selected based on a programmable parameter that specifies a “signal dropout recovery period.” In the context of exemplary embodiments of the disclosure, the “signal dropout recovery period" denotes a maximum amount of time in which data stream reception can be interrupted at the data reception system 310 while still being able to utilize the data stream-level redundancy to generate a continuous data stream without missing data. In this instance, the block delay is selected based on a number of data blocks (compressed or uncompressed) that can be transmitted for the signal dropout recovery period. By way of example, a signal dropout recovery period of, e.g., 10 seconds, would allow the data reception system 310 to generate a continuous data stream output without missing any data as a result of a signal dropout not exceeding 10 seconds.
[0063] The transmitter 306 is configured to modulate the non-delayed data stream and the delayed data stream and transmit the non-delayed data stream and the delayed data stream data using separate communications channels over the communications network 308. More specifically, as shown in FIG. 3A, the non-delayed data stream (output from the data stream source 302) is modulated and transmitted by the first transmitter channel 306-1 over a first communications channel, while the delayed data stream (output from the delay module 304) is modulated and transmitted by the second transmitter channel 306-2 over a second communications channel. The transmitter 306 can implement analog modulation or digital modulation methods, depending on the given application. As is known in the art, a modulation process involves encoding a carrier wave with information of the data stream by modifying a parameter of the carrier wave. For example, the data stream information can be encoded into a carrier wave by modifying the amplitude, phase or frequency of the carrier wave using known methods, the details of which are not necessary for one of ordinary skill in the art to understand the data stream processing techniques as discussed herein. Modulation schemes include, but are by no means limited to, Amplitude Shift Keying (ASK), Frequency Shift Keying (FSK), Binary Phase Shift Keying (BPSK), Quadrature Phase Shift Keying (QPSK), Multiple Phase Shift Keying (MPSK), Quadrature Amplitude Modulation (QAM), Amplitude Phase Shift Keying (APSK), Orthogonal Frequency Division Multiplexing (OFDM), and all other forms of modulation that are useful for the intended communications system.
[0064] The data reception system 310 comprises a receiver 312, a delay module 314, signal strength indication modules 316 and 318, and a continuous data stream generator module 320. The data reception system 310 may comprise, e.g., a radio receiver system or a wireless receiver module of a computing device. The receiver 312 comprises a first receiver channel 312-1 and a second receiver channel 312-2. The receiver 312 is configured to receive the transmitted signals comprising the non-delayed data stream and the delayed data stream which are transmitted over the separate communication channels of the communications network 308, and demodulate the transmitted signals to extract the transmitted data stream and the transmitted delayed data stream. In particular, as shown in FIG. 3B, the first receiver channel 312-1 is configured to demodulate the transmitted data stream signal to recover the original (non-delayed) data stream, while the second receiver channel 312-2 is configured to demodulate the transmitted delayed data stream signal to recover the original delayed data stream D1 (or transmitter-delayed data stream).
[0065] The delay module 314 is configured to apply a delay to the received data stream which is output from the first receiver channel 312-1 and thereby generate a second delayed data stream D2 (or receiver-delayed data stream). In some embodiments, the delay module 314 is configured to delay the received (non-delayed) data stream by the same predefined (yet programmable) amount of time or number of data blocks as applied by the delay module 304 in the data transmission system 300. This receiver-side delay facilitates an alignment between the received non-delayed data stream and the received delayed data stream, i.e., the delayed data streams D1 and D2 are substantially aligned in real-time (e.g., time alignment or block alignment). The delayed data streams D1 and D2 are input to the continuous data stream generator module 320. The continuous data stream generator module 320 is configured to utilize the redundancy of the delayed data streams D1 and D2 to generate and output a continuous data stream for real-time or near real-time playback by the data stream playback system 330.
[0066] In some embodiments, the optional signal strength indication modules 316 and 318 are configured to determine a loss of signal and/or a quality of signal of the signals received by the respective first and second receiver channels 312-1 and 312-2, of the receiver 312. The signal strength indication modules 316 and 318 output received signal strength information SSI and SS2 (e.g., received signal strength indicator (RSSI), received channel power indicator (RCPI), etc.) to the continuous data stream generator module 320. In some embodiments, the continuous data stream generator module 320 utilizes the signal quality information to generate and output a continuous data stream by combining and/or dynamically switching between delayed data streams D1 and D2 for output to the data stream playback system 330.
[0067] For example, in some embodiments, the continuous data stream generator module 320 is configured to output the delayed data stream D1 to the data stream playback system 330 and augment missing data in the delayed data stream D1 with corresponding data from the delayed data stream D2 to thereby generate a continuous, uninterrupted data stream. In some embodiments, the continuous data stream generator module 320 is configured to output the delayed data stream D2 to the data stream playback system 330 and augment missing data in the delayed data stream D2 with corresponding data from the delayed data stream D1 to thereby generate a continuous, uninterrupted data stream, In other embodiments, the continuous data stream generator module 320 is configured to utilize the signal strength information SS1 and SS2 provided by the signal strength indication modules 316 and 318 to dynamically switch between the delayed data streams D1 and D2 for output to the data stream playback system 330. [0068] FIG. 4 schematically illustrates a continuous data stream generator module according to an embodiment of the disclosure. In particular, FIG. 4 schematically illustrates an exemplary embodiment of a continuous data stream generator module 400 which can be implemented in the data reception system 310 of FIG. 3B to generate a continuous data stream output As shown in FIG. 4, the continuous data stream generator module 400 comprises a buffer management module 402, a data loss detection module 404, a data selection module 406, and a data stream alignment and combiner module 408. The continuous data stream generator module 400 receives as input the delayed data streams D1 and D2 and optionally the signal strength indicators SSI and SS2.
[0069] The buffer management module 402 is configured to temporarily buffer the input data streams D1 and D2 to facilitate fine-tune alignment, data selection, and other functions of the continuous data stream generator module 400. The data loss detection module 404 is configured to detect and identify portions of missing data in the delayed data streams D1 and D2. In some embodiments, the data loss detection module 404 can detect data loss by analyzing the data streams D1 and D2 directly. For example, in some embodiments, the data packets are UDP packets which have embedded sequential packet identifiers, wherein the packet identifiers can be utilized to determine lost data packets. In some embodiments, the sequential packet identifiers have a fixed length (defined by a maximum packet identification value), wherein a modulo rollover to zero occurs when the maximum packet identification value is reached. In other embodiments where no packet identifier is included with the data blocks, the relative time or data block positions of the data blocks are utilized for identification purposes (e.g., to identify missing data blocks).
[0070] In other embodiments, the data loss detection module 404 utilizes the optional signal strength indicator data SSI and SS2 to detect and identify portions of the delayed data streams D1 and D2 with missing or low-quality data. The data selection module 406 may be configured to utilize the signal strength information SSI and SS2 provided by the signal strength indication modules 316 and 318 to dynamically switch between the delayed data streams D1 and D2 for provide a high-quality continuous data stream output. [0071] The data stream alignment and combiner module 408 is configured to apply fine-tune alignment of the delayed data streams D1 and D2 by, e.g., aligning the buffered portions of the delayed data streams D1 and D2, and combining portions of the delayed data streams D1 and D2, as needed, to output a continuous interrupted data stream. For example, in some embodiments, the data stream alignment and combiner module 408 is configured to output the transmitter-delayed data stream D1 as a continuous data stream, and when the transmitter-delayed data stream D1 is determined to have missing data (e.g., due to a temporary dropout of the transmitted delayed data stream), the data stream alignment and combiner module 408 will augment the missing data using the corresponding data of the receiver-delayed data stream D2 to thereby generate a continuous, uninterrupted data stream. In other embodiments, the data stream alignment and combiner module 408 is configured to output the receiver-delayed data stream D2 as a continuous data stream, and when the receiver-delayed data stream D2 is determined to have missing data (e.g., due to a temporary dropout of the transmitted delayed data stream), the data stream alignment and combiner module 408 will augment the missing data using the corresponding data of the transmitter-delayed data stream D1 to thereby generate a continuous, uninterrupted data stream.
[0072] FIGs. 5A and 5B schematically illustrate a method to provide uninterrupted reception of streaming data according to an embodiment of the disclosure. In particular, FIG. 5A depicts a timing diagram for a data stream transmission process 500, and FIG. 5B depicts a timing diagram for a data stream reception process 510 and continuous data stream generation process, according to an exemplary embodiment of the disclosure. For illustrative purposes, FIGs. 5 A and 5B will be discussed in the context of the communications system of FIGs. 3 A and 3B, wherein FIG. 5 A illustrates a mode of operation of the data transmission system 300 of FIG. 3A, and FIG. 5B illustrates a mode of operation of the data reception system 310 of FIG. 3B.
[0073] Referring to FIG. 5A, a data stream is generated (502). For ease of illustration,
FIG. 5A depicts a portion of the (non-delayed) data stream comprising data blocks A, B and C which are sequentially generated starting at time To. The non-delayed data stream is input to the transmitter 306 and transmitted over a first communications channel (504). The time to transmit a given data block is denoted Tx and therefore, the data block A is shown being transmitted at time Το+Τχ. A transmitter-delayed data stream D1 is generated (506) by inputting the data stream to the transmitter delay module 304. As shown in FIG. 5A, the transmitter-delayed data stream D1 is depicted as delayed data blocks [A], [B], [C], wherein the brackets denote a delayed data block of the transmitter-delayed data stream D1. The data stream delay is denoted To (where To can denote a time delay or a block delay) such that the delayed data block [A] is shown being generated at time T0+TD. The transmitter-delayed data stream D1 is input to the transmitter 306 and transmitted over a second communications channel (508). The time to transmit a delayed data block is denoted Tx, and is assumed to be the same as the time to transmit a non-delayed data block. As such, FIG. 5A shows the delayed data block [A] as being transmitted at time T0+TD+TX.
[0074] Referring now to FIG. 5B, the non-delayed data stream (blocks A, B, C) is received by the data reception system (512). For ease of illustration, FIG. 5B depicts a portion of the received (non-delayed) data stream comprising data blocks A, B and C which are sequentially received starting with data block A at time T0+TX+TP+TR following the time T0 when data block A was generated or made ready for transmission. In this example, Tp denotes the propagation time which is the amount of time it takes for the transmitted data stream signal to travel over the communications channel from the transmitter 306 to the receiver 312. hi addition, TR denotes the amount of time for the receiver 312 to demodulate the received signal and recover the data stream.
[0075] A receiver-delayed data stream D2 is generated (514) by inputting the received data stream to the receiver delay module 314. As shown in FIG. 5B, the receiver-delayed data stream D2 is depicted with data block A at time T0+TX+TP+TR+TD, where TD denotes the data stream delay applied by the receiver delay module 314 (where To can denote a time delay or a block delay). In some embodiments, the data stream delay applied by the receiver delay module 314 is the same or similar to the data stream delay applied by the transmitter delay module 304.
[0076] As further shown in FIG. 5B, the transmitter-delayed data stream D1 (blocks [A], [B], [C]) is received by the data reception system (516) starting with delayed data block [A] at time T0+TD+TX+TP+TR. FIG. 5B shows the data blocks A, B and C of the receiver- delayed data stream D2 being aligned with the corresponding delayed data blocks [A], [B], and [C] of the transmitter-delayed data stream D1, with the assumption that the same time delay TD is applied by the delay modules 304 and 314, and that the times Tx and Tp and TR for the non-delayed data stream and the delayed data stream are the same. A combined data stream output is generated (518) using the aligned data streams Dl and Dl . For example, as shown in FIG. 5B, the combined data stream output 516 is generated by augmenting the transmitter- delayed data stream Dl with a data block C of the receiver-delayed data stream D2. In this example, the data block [C] of the transmitter-delayed data stream Dl may be missing (due to dropout) or have poor signal quality, in which cases the missing or low-quality data block [C] of D1 is replaced with the data block C of the receiver-delayed data stream D2. It should be noted that the diagram is for illustrative purposes only and the times TD, Tx, Tp, and TR are not necessarily to scale. By way of example, in one embodiment time delay To may be in the order of seconds, whereas Tp may be in the order of microseconds and Tx and TRmay be one in the order of nanoseconds.
[0077] FIGs. 6A, 6B, 6C, 6D, and 6E schematically illustrate a method to provide uninterrupted reception of streaming data according to another embodiment of the disclosure. In particular, FIGs. 6A through 6E illustrate methods for generating a continuous data stream in the event of signal dropout during transmission of the data stream. For illustrative purposes, FIGs. 6A through 6E will be discussed in the context of the communications system of FIGs. 3A and 3B. FIG. 6A depicts an exemplary non-delayed data stream 600 and a transmitter- delayed data stream D1 602, which are generated and transmitted from the data transmission system 300 of FIG. 3A. The non-delayed data stream 600 is depicted as having a sequence of data blocks A, B, C, D, E, F, G, H, 1, J, K, L, M, N, O, P, Q, R, S, and T. The delayed data stream D1 602 is depicted as having a sequence of corresponding delayed data blocks [A], [B], [C], [D], [E], [F], [G], [H], [I], [J], [K], [L], [M], [N], [O], [P], [Q], [R], [S], and [Tj, which are delayed via the transmitter delay module 304 by a predefined delay TD. In the exemplary embodiment of FIG. 6A, it is assumed that delayed data stream D1 602 is delayed by a block delay of 5 data blocks or a time delay which is substantially the same as the amount of time for transmitting 5 data blocks.
[0078] FIG. 6B depicts a received non-delayed data stream 604 and a received transmitter-delayed data stream D1 606, which are received at the input of the receiver 312 of the data reception system 300. In this example, the received non-delayed data stream 604 and the received transmitter-delayed data stream D1 606 are shown to have missing data blocks as a result of a given period of signal dropout which occurs during transmission of the non-delayed and transmitter-delayed data stream 600 and 602. In particular, the received non-delayed data stream 604 is shown as missing data blocks L, M and N, and the received transmitter-delayed data stream D1 606 is shown as missing delayed data blocks [G], [H] and [I].
[0079] FIG. 6C schematically illustrates a process in which the receiver delay module
314 generates a receiver-delayed data stream D2 608 by delaying the received non-delayed data stream 604 by the same predefined delay TD as applied by the transmitter delay module 304. In addition, FIG. 6C schematically illustrates an alignment process for aligning 610 the received transmitter-delayed data stream D1606 with the receiver-delayed data stream D2608. In some embodiments, as noted above, the alignment may be achieved through a coarse alignment that is obtained between the data streams D1 606 and D2 608 by virtue of the receiver-side data stream delay process, and through a fine alignment process that is implemented by the data stream alignment and combiner module 408, FIG. 4. As shown in FIG. 6C, the receiver-delayed data stream D2 608 comprises a section of missing data blocks 612 due to signal dropout of the received non-delayed data stream 604, and the received transmitter-delayed data stream D1 606 comprises a section of missing data blocks 614 due to signal dropout of that portion of the received transmitter-delayed data stream D1 606.
[0080] FIG. 6D schematically illustrates a process of generating a continuous data stream 620 in which the missing section of data blocks 614 of the received transmitter-delayed data stream D1 606 is augmented with data blocks G, H, and 1 from the aligned 610 receiver- delayed data stream D2 608. In this example embodiment, it is assumed that the continuous data stream generator module 320 outputs the received transmitter-delayed data stream D1606 for playback, and augments missing (or low quality) data blocks of the received transmitter- delayed data stream D 1606 with corresponding data blocks of the receiver-delayed data stream D2608.
[0081] In an alternative embodiment, FIG. 6E schematically illustrates a process of generating a continuous data stream 630 in which the missing section of data blocks 612 of the receiver-delayed data stream D2608 is augmented with delayed data blocks [L], [M], and [N] from the received transmitter-delayed data stream D1 606. In this example embodiment, it is assumed that the continuous data stream generator module 320 outputs the receiver-delayed data stream D2 608 for playback, and augments missing (or low quality) data blocks of the receiver-delayed data stream D2 608 with corresponding delayed data blocks from the transmitter-delayed data stream D1 606.
[0082] FIGs. 7A and 7B schematically illustrate a communications system which is configured to provide uninterrupted reception of streaming data according to another embodiment of the disclosure. In general, FIG. 7A and 7B schematically illustrate a communications system which is similar to the communications system of FIG. 3A and 3B, but which is configured to support a data streaming application in which multiple data streams from multiple data sources are transmitted on redundant communication channels over a communications network. In particular, FIG. 7A schematically illustrates a data transmission system 700 which comprises a plurality (t) of data transmission systems 700-1, ..., 700-t, wherein the data transmission systems 700-1, ..., 700-t comprise respective data stream sources 702-1, ..., 702-t, delay modules 704-1, ..., 704-t, and transmitters 706-1, ... 706-t. The transmitter 706-1 comprises a first transmitter channel 706-1(1), and a second transmitter channel 706-1(2), and the transmitter 706-t comprises a first transmitter channel 706-t(l), and a second transmitter channel 706-t(2). The data stream source 702-1 generates a data stream (S1) which is to be transmitted or otherwise broadcast to one or more end users, and the data stream source 702-t generates a data stream (St) which is to be transmitted or otherwise broadcast to one or more end users.
[0083] The data transmission system 700-1 is configured to transmit a non-delayed data stream S1 and a transmitter-delayed data stream D1(1), which represent the data stream S1 transmitted on redundant channels over the communications network 308. Similarly, the data transmission system 700-t is configured to transmit a non-delayed data stream St and a transmitter-delayed data stream Dl(t), which represent the data stream St transmitted on redundant channels over the communications network 308. The functions and operational modes of the data transmission systems 700-1, ..., 700-t are the same or similar to those functions and operational modes of the data transmission system 300 of FIG. 3A, the details of which will not be repeated.
[0084] Next FIG. 7B schematically illustrates a data reception system 710 which comprises a plurality (r) of data reception systems 710-1, 710-r, wherein the data reception systems 710-1.710-r comprise respective receivers 712-1.712-r, delay modules 714-1,
..., 714-r, signal strength indication modules 716-1, ..., 716-r and 718-1, ..., 718-r, and continuous data stream generator modules 720-1, 720-r. The receiver 712-1 comprises a first receiver channel 712-1(1) and a second receiver channel 712-1(2), which are configured to receive and demodulate the received signals, i.e., the non-delayed data stream S1 and the transmitter-delayed data stream Dl(l) version of the data stream S1, which are transmitted from the data transmission system 710-1 on separate communication channels over the communications network 308. Similarly, the receiver 712-r comprises a first receiver channel 712-r(l) and a second receiver channel 712-r(2), which are configured to receive and demodulate the received signals, i.e., the non-delayed data stream St and the transmitter- delayed data stream D1(t) version of the data stream St, which are transmitted from the data transmission system 710-t on separate communication channels over the communications network 308.
[0085] The functions and operational modes of the data reception systems 710-1, ..., 710-r are the same or similar to those functions and operational modes of the data reception system 310 of FIG. 3B, the details of which will not be repeated. The continuous data stream generator module 720-1 utilizes the transmitter-delayed data stream Dl(l) and a receiver- delayed data stream D2(l ) to generate and output a continuous data stream corresponding to the data stream (1) transmitted from the data transmission system 700-1 of FIG. 7A. Similarly, the continuous data stream generator module 720-r utilizes the transmitter-delayed data stream D1 (t) and a receiver-delayed data stream D2(t) to generate and output a continuous data stream corresponding to the data stream (t) transmitted from the data transmission system 700-t of FIG. 7A. In some embodiments, the continuous data stream generator modules 720- 1 , ..., 720- r implement functions that are the same or similar to those functions of continuous data stream generator module 400 of FIG. 4. [0086] As further shown in FIG. 7B, the data reception system 710 further comprises a data stream source selector module 730. The data stream source selector module 730 is configured to select one of the continuous data streams that are output from the data reception systems 710-1, ..., 710-r, for playback on a given computing device or system (e.g., mobile phone, electronic tablet, satellite radio, etc.) which implements the data reception system 710. In some embodiments, the data transmission system 700 of FIG. 7A comprises a wireless broadcast digital radio system that transmits multiple radio stations over multiple respective redundant communications channels. By way of contrast, SiriusXM Radio transmits over 175 Channels such as SiriusXM Hits, Pandora Now, etc. through the same non-redundant communications channel which accounts for the frequent loss of their radio signal.
[0087] FIGs. 8A and 8B schematically illustrate a communications system which is configured to provide uninterrupted reception of streaming data according to another embodiment of the disclosure. In general, FIG. 8A and 8B schematically illustrate a communications system comprising a data transmission system 800, a communications network 815, and a data reception system 820. The data transmission system 800 is configured to transmit a multiplexed data stream having data stream redundancy on a single multiplexed communications channel over the communications network 815, and the data reception system 820 is configured to receive the multiplexed data stream (with data stream redundancy) on the multiplexed communications channel and utilize the data stream-level redundancy as provided by the multiplexed data stream to generate a continuous data stream for real-time or near realtime playback by a data stream playback system 840.
[0088] More specifically, as shown in FIG. 8A, the data transmission system 800 comprises a data stream source 802, an optional data compression module 804, a delay module 806, a multiplexer module 808, and a transmitter 810. The data stream source 802 generates a data stream which is to be transmitted or otherwise broadcast to one or more end users. The data stream source 802 comprises any system or entity that generates a data stream (e.g., digital audio data stream) to provide data streaming services (e.g., audio streaming services, audiovisual streaming service, streaming radio service, satellite radio service, etc.). The data stream can be generated in various types of formats (e.g., compressed format, data packets, digital audio format, etc.) depending on the application.
[0089] The optional data compression module 804 is configured to compress the data stream and generate a compressed data stream. The data compression module 804 is implemented using data compression methods such as lossy and/or lossy data compression techniques, which are suitable for the given application and the type of data included in the data stream. The delay module 806 is configured to apply a delay to the compressed data stream that is output from the data compression module 804 and thereby generate a delayed optionally compressed data stream. As in the exemplary embodiment discussed above, the delay module 806 is configured to delay the compressed data stream by a predefined (yet programmable) time delay or block delay which is sufficient to achieve a maximum signal dropout recovery period in which the data reception system 820 could generate a continuous, uninterrupted data stream in the event of a signal dropout of the transmitted data stream.
[0090] The multiplexer module 808 implements a multiplexing scheme that is configured to combine the optionally compressed data stream and the delayed optionally compressed data stream into a single, multiplexed data stream. The multiplexer module 808 can implement analog multiplexing methods or digital multiplexing methods, depending on the application. For example, in some embodiments wherein the delay module 806 implements a block delay scheme, the multiplexer module 808 will combine or otherwise interleave data blocks of the delayed optionally compressed data stream into the compressed data streams at intervals that correspond to the specified block delay, an exemplary embodiment of which will be illustrated and described below in conjunction with FIGs. 9A, 9B, and 9C. In such embodiments, the data blocks can be encoded to include metadata such as data block identifiers (to differentiate between non-delayed and delayed blocks in the multiplexed data stream), data block sequence numbers (to enable ordering of the data blocks in the data reception system 820), compression protocol identifiers (to identify the type of data compression applied to the data stream blocks), etc. It is to be understood that the metadata, block identifiers, data block sequence numbers, and compression protocol identifiers are optional features, which may or may not be implemented depending on the system configuration. By way of example the data block positions and compression techniques may be specified a-priori or programmed by the system or an end user.
[0091] The transmitter 810 is configured to modulate the multiplexed data stream and transmit the multiplexed data stream on a single communications channel over the communications network 815. The transmitter 810 can implement analog modulation or digital modulation methods, depending on the given application. The modulation process implemented by the transmitter 810 is one that supports multiplexing wherein the different data streams can be transmitted in the same communications channel at the same time.
[0092] The data reception system 820 comprises a receiver 822, a demultiplexer module 824, a data decompression module 826, a delay module 828, a received signal strength indication module 832, and a continuous data stream generator module 830. The data reception system 820 may comprise, e.g., a radio receiver system or a wireless receiver module of a computing device. The receiver 822 is configured to receive the signal which comprises the multiplexed data stream transmitted from the data transmission system 800, and to demodulate the received signal to extract the multiplexed data stream. The demultiplexer module 824 is configured to demultiplex the multiplexed data stream by separating the optionally compressed data stream and the delayed optionally compressed data stream. The optionally compressed data stream and delayed optionally compressed data stream are input to the data compression module 826. The optional data decompression module 826 implements decompression methods (which are effectively the inverse of the compression methods used to compress the data stream) to decompress the compressed data stream and the delayed compressed data stream and thereby recover the original (non-delayed) data stream and a corresponding delayed data stream Dl, respectively.
[0093] The delay module 828 is configured to apply a delay to the non-delayed data stream which is output from the optional data decompression module 826 and thereby generates a second delayed data stream D2 (or receiver-delayed data stream). In some embodiments, the delay module 828 is configured to delay the received (non-delayed) data stream by the same predefined (yet programmable) amount of time or number of data blocks as applied by the delay module 806 in the data transmission system 800. The receiver-side delay facilitates an alignment between the received non-delayed data stream and the received delayed data stream, i.e., the delayed data streams Dl and D2 are substantially aligned in real-time (e.g., time alignment or block alignment). The delayed data streams Dl and D2 are input to the continuous data stream generator module 830. The continuous data stream generator module 830 is configured to utilize the redundancy of the delayed data streams Dl and D2 to generate and output a continuous data stream for real-time or near real-time playback by the data stream playback system 840, using the same or similar methods as the continuous data stream generators as discussed above in conjunction with FIGs. 3B and 4. [0094] In some embodiments, the signal strength indication module 832 is configured to determine a loss of signal and/or a quality of the transmitted multiplexed data stream signal received by the receiver 822. The signal strength indication module 832 outputs received signal strength information SS (e.g., RSSI, RCPT, etc.) to the continuous data stream generator module 830. In some embodiments, as in the exemplary embodiment discussed above, the continuous data stream generator module 830 utilizes the signal quality information SS to detect missing data blocks or poor quality data blocks and to generate and output a continuous data stream by augmenting missing data blocks in one of the delayed data streams Dl and D2 with received corresponding data blocks from the other of the delayed data streams Dl and D2, or otherwise replacing lower-quality data blocks with higher quality data blocks of the delayed data streams Dl and D2 for output to the data stream playback system 840.
[0095] It is to be understood that the use of data compression in the data transmission system 800 of FIG. 8A is an optional feature which may or may not be implemented depending on the bandwidth of the communications channel that is utilized to transmit the multiplexed data steam. The bandwidth of a communications channel refers to a maximum amount of data that can be transmitted for given time period. For digital applications, bandwidth is expressed in bits per second (bps), Megabits per second (Mbps), Gigabits per second (Gbps), etc. In this regard, the channel bandwidth for given communications channel determines the maximum data rate for transmitting a signal on the communications channel. In some embodiments, more than one data compression method is utilized. For example, in one exemplary embodiment, two different lossy data compression methods are utilized, one lossy data compression method with a higher resolution, and another lossy data compression method with a lower resolution. One lossy data compression method is applied to generate compressed data blocks that are transmitter-delayed and the other lossy data technique is utilized to generate data blocks that are decompressed and then delayed at the receiver. The data blocks that are compressed using a higher resolution data compression method are decompressed and selected first for creating a continuous data stream, while the data blocks that are compressed using the lower resolution data compression method are decompressed and utilized to “fill in” missing data blocks to create a continuous data stream by the continuous data steam generator module.
[0096] When utilizing a multiplexing scheme as shown in FIG. 8A to transmit a multiplexed data stream (which comprises (i) a data stream and (ii) a corresponding delayed data stream) over a single communications channel to achieve redundancy, the effective bandwidth of the communications channel should be at least twice (2X) the bandwidth of what is required to transmit the non-delayed data stream in a non-redundant manner for the given application. This is because (i) the multiplexed data stream would include 2X more data to be transmitted over the communications channel (as compared to transmitting the non-delayed data stream alone in a non-redundant manner), and (ii) it would be desirable that the total amount of time for transmitting the multiplexed data stream would be no greater than the total amount of time needed (in a non-redundant data streaming system) for transmitting the non- delayed data stream alone. In this regard, the multiplexed data stream (with uncompressed non-delayed and delayed data streams) would need to be transmitted at a data rate of at least 2X the data rate for transmitting the non-delayed data stream alone (for the non-redundant data streaming system). However, this increased data rate may not be supported by the maximum bandwidth of the communications channel implemented by the transmitter 810 and receiver 822.
[0097] In such circumstances, the use of data compression in the data transmission system 800 serves to minimize, or otherwise eliminate, the additional bandwidth that would be needed to transmit the multiplexed data stream to achieve data-stream level redundancy. In particular, the data compression module 804 is configured to achieve a data compression ratio of at least 2: 1 or greater so that the size of the compressed data stream is no more than about 50% of the size of the original data stream output from the data steam source 802. The term “data compression ratio” refers to the ratio between an uncompressed size and a compressed size. Thus, the data compression module 804 implements a data compression scheme that is able to achieve a data compression ratio that is about 2:1 or greater, for the type(s) of data within the data stream. This is to ensure that the size of the multiplexed data stream (e.g., the size of the data blocks of the multiplexed data stream) is no greater than the size of the data stream (e.g., the size of the data blocks of the data stream) output from the data stream source 802. In this instance, the multiplexed data stream (with the compressed data stream and delayed compressed data stream) can be transmitted at the bandwidth of the communication channel, while ensuring that the total time for transmitting the multiplexed data stream (to achieve data-stream level redundancy) is no greater than the total time it would take to transmit the original data stream (with no data-stream level redundancy).
[0098] In some embodiments, the bit resolutions of the lossy compression techniques are specified a-priori, while in other embodiments the bit resolutions of the lossy compression techniques are system programmable. In other embodiments, the bit resolutions of the lossy compression techniques are specified from user selected factors including, but not limited to, the amount of time allowable for transmission signal dropout while still retaining a continuous output data stream. In general, the bit resolutions of the lossy compression techniques are selected based on one or more factors including, but not limited to, system transmission bandwidth, number of simultaneously transmitted data sources, minimum output data stream resolution, normal output data stream resolution, lossy or lossless compression techniques, and other factors discussed below (e.g., optional channel pre-listen configuration of FIG 14).
[0099] FIGs.9A, 9B, and 9C schematically illustrate a method to provide uninterrupted reception of streaming data according to another embodiment of the disclosure. In particular, FIGs. 9A through 9C illustrate a method for generating a multiplexed data stream comprising a non-delayed data stream and a corresponding delayed data stream to support data stream level redundancy, according to an embodiment of the disclosure. For illustrative purposes, FIGs. 9A through 9C will be discussed in the context of the data transmission system 800 of FIG.
8A.
[00100] FIG. 9A depicts an exemplary framework for a multiplexed data stream 900 which comprises a combination of interleaved data blocks of a non-delayed data stream and a delayed data stream. In FIG. 9 A, the different data blocks are denoted by indices based on a combination of variables Z and d and numeric values, wherein Z denotes a reference index, d is a numeric value that represents a predefined block delay which is applied to the non-delayed data stream to obtain a delayed data stream. The non-delayed data blocks comprise non- bracketed indices, and the corresponding delayed data blocks comprise bracketed indices. In the exemplary framework of FIG. 9A, the amount of delay between a non-delayed data block (e.g., data block Z) and the corresponding delayed data block (e.g., delayed data bock [Z]) in the multiplexed data stream 900 is equal to 2d+l.
[00101] By way of example, FIG. 9B illustrates a portion of a non-delayed data stream 910 comprising a sequence of data blocks denoted by data block indices 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, and 11. FIG. 9B further illustrates a portion of a corresponding delayed data stream 920 comprising a sequence of delayed data blocks denoted by bracketed indices [0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], and [11]. FIG. 9C illustrates a multiplexed data stream 930 which is generated by combining the data blocks of the non-delayed data stream 910 and the corresponding delayed data stream 920 at intervals that correspond to a predefined block delay d=5.
[00102] In particular, assuming that the reference index Z (in FIG. 9A) is 5, and that d=5, based on the multiplexed data stream framework 900 of FIG. 9A, the exemplary multiplexed data stream 930 shown in FIG. 9C comprises the following a data block sequence:
... 5, [0], 6, [1], 7, [2], 8, [3], 9, [4], 10, [5] ... wherein the delay between a non-delayed data block (e.g., data block 5) and a corresponding delayed data block (e.g., delayed data block [5]) is equal to (2x5)+1=11 such that the delayed data block (e.g., delayed data block [5]) is inserted in the multiplexed data stream 930 at the 11 data block location following the location where the corresponding non-delayed data block (e.g., data block 5) is inserted in the multiplexed data stream 930.
[00103] FIG. 10 is a flow diagram of a method for generating and transmitting a multiplexed data stream comprising a non-delayed data stream and a corresponding delayed data stream to support data stream level redundancy, according to an embodiment of the disclosure. In some embodiments, FIG. 10 illustrates a mode of operation of the data transmission system 800 of FIG. 8 A. As the data stream source 802 generates data blocks of a data stream, the data transmission system 800 will obtain a next sequential data block Bz (non- delayed data block) of the data stream for processing (block 1000). The non-delayed data block Bz is input to the delay module 806 and the multiplexer module 808 (block 1002). In some embodiments where data compression is utilized, the data block Bz that is input to the delay module 806 and the multiplexer module 808 comprises a compressed data block. For ease of explanation, it is assumed that the data block Bz can be a compressed data block or uncompressed data block. The non-delayed data block Bz is output from the multiplexer module 808 and transmitted by the transmitter 810 (block 1004).
[00104] Next, a delayed data block Bz-d is sent from the delay module 806 to the multiplexer module 808 (block 1006). In this example, the delayed data block Bz-d comprises a previous data block of the data stream with an index of Z-d, where d denotes a predefined block delay which is applied by the delay module 806. The delayed data block Bz-d is then output from the multiplexer module 808 and transmitted by the transmitter 810 (block 1008). In this process, the multiplexer 808 ensures that the delayed data block Bz-d is the next sequential data block following the non-delayed data block Bz in the multiplexed data stream that is transmitted. The process flow of blocks 1000 through 1008 is repeated for each sequential non-delayed and delayed data block of the data stream.
[00105] For example, the data transmission system 800 will obtain a next sequential non-delayed data block Bz+1 of the data stream for processing (block 1010). The non-delayed data block Bz+1 is input to the delay module 806 and the multiplexer module 808 (block 1012). Again, it is assumed that the non-delayed data block Bz+1 can be a compressed data block or uncompressed data block. The non-delayed data block Bz+1 is output from the multiplexer module 808 and transmitted by the transmitter 810 (block 1004). [00106] Νext a delayed data block Bz+t-d is sent from the delay module 806 to the multiplexer module 808 (block 1016). In this example, the delayed data block Bz+i -a comprises a previous data block of the data stream with an index of (Z+1)-d, where d denotes the predefined block delay which is applied by the delay module 806. The delayed data block Bz+1-d is then output from the multiplexer module 808 and transmitted by the transmitter 810 (block 1018). In this process, the multiplexer 808 ensures that the delayed data block Bz+1-d is the next sequential data block following the non-delayed data block Bz+1 in the multiplexed data stream that is transmitted. Again, the process flow is repeated for each sequential non- delayed and delayed data block of the data stream.
[00107] FIG. 11 is a flow diagram of a method for receiving and processing multiplexed data stream comprising a non-delayed data stream and a corresponding delayed data stream to generate a continuous data stream output for real-time playback, according to an embodiment of the disclosure. In some embodiments, FIG. 11 illustrates an exemplary mode of operation of the data reception system 820 of FIG. 8B. A data block of a multiplexed data stream is received (block 1100) and a determination is made as to whether the data block is delayed or non-delayed (block 1102). In some embodiments, the determination is made by spatial position in the multiplexed or de-multiplexed data stream, determined by inspection such as reading one or more indicators, or by analysis. For example, the determination step (block 1102) can be performed by the demultiplexer module 824 or the data compression module 826 (FIG. 8B). [00108] If it is determined that the data block is not delayed (negative determination in block 1104), the non-delayed data block is stored in a buffer or a queue in proper sequence or with a sequence identifier (block 1106). On the other hand, if it is determined that the data block is a transmitter-delayed data block (affirmative determination in block 1104), a determination is made as to whether the transmitter-delayed data block is next for playback (block 1108). If it is determined that the transmitter delayed data block is the next data block for playback (affirmative determination in block 1108), the data block is output for playback (block 1110).
[00109] On the other hand, if it is determined that the transmitter delayed data block is not the next data block for playback (negative determination in block 1108), the data block is stored in the buffer or the queue in proper sequence or with a sequence identifier (block 1112). The next data block for playback is then retrieved from the buffer or the queue (block 1114) and output from playback (block 1110). In some embodiments, the delayed and non-delayed data blocks are stored in the same buffer or queue. In other embodiments, the non-delayed data blocks are stored (in block 1106) in a buffer or queue which is different from the buffer or queue in which the delayed data blocks are stored (in block 1112).
[00110] FTG. 12 schematically illustrates a data transmission system 1200 which is configured to generate and transmit a multiplexed data stream having data stream redundancy for multiple data streams from multiple data sources, according to an embodiment of the disclosure. As shown in FTG. 12, the data transmission system 1200 comprises a buffer management and synchronization module 1210, a plurality of delay modules 1220-1, 1220-2, 1220-3, ..., 1220-x, and a data block sequencer and multiplexer module 1230. A plurality (x) of different data streams S1, S2, S3, ..., Sx are generated by different data stream sources and input to the buffer management and synchronization module 1210. In some embodiments, the data transmission system 1200 of FIG. 12 is an extension of the data transmission system 800 of FIG. 8A, to enable the processing and multiplexing of multiple data streams from different data sources (wherein FIG. 8A illustrates an exemplary data transmission system 800 for generating a multiplexed data stream comprising non-delayed and transmitter-delayed data blocks of a single data stream). In this regard, in some embodiments, some or all of the data streams S1, S2, S3. Sx as shown in FIG. 12 comprise compressed data streams which are generated by compressing the original data streams received from different data stream sources.
[00111] The buffer management and synchronization module 1210 implements methods that are configured to temporarily buffer the data blocks of the incoming data streams S1, S2, S3, ..., Sx and time synchronize and align the data blocks of the different data streams S1, S2, S3, ..., Sx to facilitate downstream processing for generating and transmitting a multiplexed data stream comprising a combination of the different data streams SI, S2, S3, ..., Sx with associated redundant delayed data blocks. The incoming data steams data streams SI, S2, S3, ..., Sx may be synchronous or asynchronous. For example, the data stream SI, S2, S3, ..., Sx may have different data rates (e.g., asynchronous data streams). In some embodiments, the data streams S1, S2, S3, ..., Sx are fully synchronous with the same data rates.
[00112] In some embodiments, the buffer management and synchronization module 1210 is configured to aggregate one or more of the data streams SI, S2, S3, ..., Sx into data blocks. In some embodiments, the size of the aggregated data blocks are determined, e.g., a- priori, by system command, based on information contained within the data stream such as embedded block size information or based on information in the data itself or header, or dynamically determined based on redundancy parameters for an uninterrupted data stream, etc. [00113] In other embodiments, as noted above, one or more of the data streams SI, S2, S3, ..., Sx are compressed. In some embodiments, data block size information refers to a compression the size of a compressed block. In other embodiments, data block size information refers to the size of the block when decompressed. In some embodiments, the data block sizes of the compressed and decompressed blocks are provided. In some embodiments, the data compression method that is utilized comprises a data packet independent data compression method. In other embodiments, the data compression methods are that utilized for the different data streams are data packet dependent. In yet another embodiment the compression of the data block is not packet independent and relationship to one or more data blocks, either relative or absolute is provided in the header or data itself. In another embodiment the data compression is not packet independent and the relationship to one or more other data blocks is relative and known a-priori. In yet another embodiment the time delay is so chosen as to ensure that even with packet dependent data compression no packets are lost during signal blackout periods.
[00114] In some embodiments, the buffer management and synchronization module 1210 synchronizes the incoming data streams SI, S2, S3, ..., Sx using one or more phase- locked loops to perform clock recovery and/or data cleanup of the incoming data streams SI, S2, S3, ..., Sx. In other embodiments, the input data streams SI, S2, S3, ..., Sx are synchronized by a series of phase-locked loops which are locked to a master clock, using methods well known in the art. The buffer management and synchronization module 1210 implements one or more buffers to temporarily store the synchronized data streams S 1 , S2, S3, ..., Sx and to output of data blocks of the data streams SI, S2, S3, ..., Sx in an ordered manner to the respective delay modules 1220-1, 1220-2, 1220-3, ..., 1220-x, and the sequencer and multiplexer module 1230.
[00115] The delay modules 1220-1 , 1220-2, 1220-3, ..., 1220-x are configured to apply a time delay or block delay to the respective synchronized/ordered data streams S 1 , S2, S3, ..., Sx which are output from the buffer management and synchronization module 1210. The sequencer and multiplexer module 1230 receives as input the non-delayed data streams SI , S2, S3, ..., Sx and the corresponding transmitter-delayed versions of the data streams SI, S2, S3, ..., Sx which are output from the respective delay modules 1220-1, 1220-2, 1220-3, ..., 1220- x. The sequencer and multiplexer module 1230 implements methods for sequencing the non- delayed and delayed versions of the data streams SI, S2, S3. Sx and combining the non- delayed and delayed versions of the data streams SI, S2, S3, ..., Sx into a single multiplexed data stream. The sequencer and multiplexer module 1230 implements a programmed sequencing and multiplexing protocol to generate a single multiplexed data stream which is designed to obtain a target transmission delay between non-delayed and delayed versions of each data stream SI, S2, S3, ..., Sx and thereby achieve a desired “signal dropout recovery period” for each of the data streams S 1 , S2, S3, ... , Sx.
[00116] FIGs. 13A and 13B schematically illustrate a method for generating a multiplexed data stream comprising a combination of non-delayed data streams and a corresponding delayed data streams of multiple data sources, according to an embodiment of the disclosure. For example, 13A and 13B schematically illustrate a sequencing and multiplexing protocol which can be implemented by the sequencer and multiplexer module 1230 of FIG. 12 to generate a single multiplexed data stream with redundancy for a plurality (x) of data streams. In particular, FIG. 13 A illustrates a plurality of exemplary data streams 1300 which are input to the sequencer and multiplexer module 1230 and FIG. 13B illustrates an exemplary single multiplexed data stream 1310 which is generated by combining the multiple data streams 1300 of FIG. 13A.
[00117] As shown in FIG. 13A, the plurality (x) of data streams 1300 comprises non- delayed data streams S1, S2, S3. Sx, and corresponding transmitter-delayed data streams
[51], [S2], [S3], ..., [Sx], The number of data streams x that are combined into a single multiplexed data stream with redundancy will vary depending on the application and the processing capabilities, resources, channel bandwidth, etc., of the data transmission and reception systems. For the example, the number (x) of data streams that can be combined into a single are multiplexed data stream can be on the order tens, hundreds, or even thousands of data streams.
[00118] As shown in FIG. 13 A, the non-delayed data stream SI comprises data bocks SiBi wherein Si denotes the first data stream SI and wherein B. denotes a data block index i of the data blocks of the data stream S1. The transmitter-delayed data stream [S1] comprises data bocks [SiBi] wherein [SiB,] denotes the delayed data block [Bi] of the transmitter-delayed data stream [S1 ] corresponding to the non-delayed data stream S1. The non-delayed data stream S2 comprises data bocks S2BJ wherein S2 denotes data stream S2 and wherein Bj denotes a data block index j of the data blocks of the data stream S2. The transmitter-delayed data stream
[52] comprises data bocks [ S2BJ] wherein [ S2BJ] denotes the delayed data block [Bj] of the transmitter-delayed data stream [S2] corresponding to the non-delayed data stream S2.
[00119] Similarly, the non-delayed data stream S3 comprises data bocks S3Bn wherein S3 denotes data stream S3 and wherein Bn denotes a data block index n of the data blocks of the data stream S3. The transmitter delayed data stream [S3] comprises data bocks [S3Bn] wherein [S3Bn] denotes the delayed data block [Bn] of the transmitter-delayed data stream [S3] corresponding to the non-delayed data stream S3. Finally, the non-delayed data stream Sx comprises data bocks SxBy wherein Sx denotes data stream Sx and wherein By denotes a data block index y of the data blocks of the data stream Sx. The transmitter-delayed data stream [Sx] comprises data bocks [SxBy] wherein [ SxBy] denotes the delayed data block [By] of the transmitter-delayed delayed stream [Sx] corresponding to the non-delayed data stream S. It is to be understood that strictly for pedagogical purposes, each data stream block is shown paired and time aligned with its corresponding delayed version from the same data stream. It is to be understood the FIG. 13 A illustrates the data blocks as being equal sized and time aligned strictly for illustrative purposes, and that exemplary embodiments of the disclosure are not limited in this regard.
[00120] FIG. 13B illustrates the exemplary single multiplexed data stream 1310 which is generated by combining the non-delayed data streams SI, S2, S3, Sx, and the corresponding transmitter-delayed data streams [SI], [S2], [S3], [Sx] ofFIG. 13A. Byway of example, as shown in FIG. 13B, the non-delayed SiB(5) data block of the non-delayed stream SI and the “delayed by five (5)” data block [SiBi-5] of the corresponding transmitter-delayed data stream [SI] are sequentially transmitted, and this paired transmission pattern is sequentially repeated for the other data streams S2 through Sx, as clearly illustrated in FIG.
13B.
[00121] While FIG. 13B illustrates an exemplary embodiment in which the non-delayed and delayed data blocks from each data stream SI through Sx are shown adjacent to each other, it is to be understood that exemplary embodiments of the disclosure have no such limitation for generating a multiplexed data stream with redundancy, as the data block delay and multiplexing patterns can vary depending on the application. In addition, while FIG. 13B schematically illustrates the data blocks from each data stream being equivalent in size, once again, embodiments of the disclosure are not limited to equal block sizes. The exemplary embodiment shown in FIG. 13B assumes that all data streams SI, S2, S3, ..., Sx require uninterrupted reception. However, the inclusion of delayed blocks from each data stream is based, at least in part, on which data streams require uninterrupted reception.
[00122] In addition the content of each data block may be compressed with one or more lossy or lossless data compression techniques. In an exemplary embodiment where the data blocks of a non-delayed transmitted data stream are compressed with a higher resolution lossy compression technique than the data blocks of the transmitter-delayed version of the data stream, the non-delayed transmitted data stream can be utilized in the output data stream for playback, and any missing data blocks of the non-delayed data stream are augmented using corresponding data blocks from the lower resolution transmitter-delayed data stream.
[00123] The minimum bandwidth requirements for the multiplexed data stream 1310 of
FIG. 13B, assuming that all data blocks are equivalent in size and compressed with the same lossless or lossy data compression technique, is approximately twice the bandwidth required for conventional systems that do not provide uninterrupted continuous data stream service using exemplary data stream-level redundancy techniques as discussed herein. For example, by utilizing such exemplary techniques where data blocks of a transmitted non-delayed data stream are compressed with a higher resolution lossy compression technique than the lossy compression used to compress data blocks of the corresponding transmitter-delayed version of the data stream, and where the non-delayed transmitted data blocks are utilized in the output data stream unless that data block is missing, the required bandwidth may be reduced from twice to some multiple that is greater than one. By way of example, assume that a higher resolution compression requires twice as many bits per data block as the lower resolution delayed version. In this instance, the bandwidth needed would be approximately 1.5 times the bandwidth of conventional systems that that do not provide uninterrupted service. Moreover, if not all data streams require uninterrupted service, the required bandwidth will be reduced accordingly.
[00124] In other embodiments, a non-delayed stream is transmitted and received for playback until the system detects a large period or relatively frequent periods of signal dropout, in which case the system can switch to an operating mode to provide data stream redundancy with transmitter and receiver delays. For example, when a prescribed amount of real-time data blocks are not received by the receiver within a specified time period, the system autonomously switches to utilizing the corresponding transmitter delayed data blocks along with delaying any non-transmitter delayed (real-time) data blocks. The data blocks are then combined to create an un-interrupted data stream in accordance with one or more previously discussed embodiments that provide data stream level redundancy. This allows the end user to receive data without added latency, and yet allows for uninterrupted service with the added penalty of latency in instances where the original non-delayed version of the data block is not received. [00125] It is to be noted that the permitted amount of lost real-time data blocks may be cumulative or cumulative within a given time frame. By way of example, if more than 10 seconds of real-time audio is lost within any 15 minute time period, the system would autonomously switch to utilizing transmitter and receiver delayed data blocks to create an uninterrupted data stream in accordance with one or more embodiments of the present invention. In addition the switch in operating mode to data stream redundancy may be commenced by user command. In some embodiments, the amount of loss of data blocks with a specified timer period may utilize a thresholding technique whereby losses that do not affect or significantly affect the user may be ignored. In other embodiments the specified time period is user defined, programmable, or a sliding window.
[00126] In other embodiments, real-time data blocks can be sent for time critical information, such as time information to update a clock. In another embodiment, a delayed data block is sent with a known time delay, allowing the clock to be updated accurately by a receiver-delayed or transmitter-delayed data block.. By way of example, if transmitter-delayed and receiver-delayed data blocks data blocks are known to be delayed by 10 seconds, then time information may be presented to the transmitter 10 seconds in advance of the actual time. [00127] FIG. 14 schematically illustrates a data reception system 1400 according to another embodiment of the disclosure. In some embodiments, the data reception system 1400 is implemented in a radio receiver (e.g., satellite radio receiver) which is configured to allow a user to select one of a plurality of favorite pre-designated radio stations. In this exemplary embodiment, the data reception system 1400 is configured to receive and pre-process a plurality of redundant data streams corresponding to the pre-designated radio stations so that the playback of the data steam associated with the selected pre-designed station occurs immediately with redundancy for continuous uninterrupted service.
[00128] In particular, the data reception system 1400 comprises a pre-listen station module 1410, a station selector module 1420, and an intelligent pre-listen station designation module 1430. The pre-listen station module 1410 is configured to activate a plurality of receivers 1410-1, 1410-1, ..., 1410-s for pre-processing corresponding data streams associated with pre-designated radio stations. In some embodiments, the redundant data streams (1 ), (2), .... (s) comprise separately transmitted non-delayed and corresponding transmitter-delayed data streams, and each receiver 1410-1, 1410-1, ..., 1410-s implements a data reception system 310, as shown in FIG. 3B. In other embodiments, each redundant data stream (1), (2), ..., (s) comprises a multiplexed data stream which includes a combination of a non-delayed data stream and corresponding transmitter-delayed data stream, and each receiver 1410-1, 1410-1,
..., 1410-s implements a data reception system 820, as shown in FIG. 8B.
[00129] The station selector module 1420 allows a user to select a pre-designated station and output a continuous data stream which is generated by one of the receiver modules 1410- 1, 1410-2, ..., 1410-s which corresponds to the selected radio station. The station selector module 1420 is configured to allow end-user selection of a desired station, or automatic selection, e.g., as in sampling stations from a radio preview. In some embodiments, the optional intelligent pre-listen station designation module 1430 is implemented to automatically determine one or more pre-1 isten stations to be activated by the pre-l isten station module 1410. In some embodiments, intelligent station designation can be based on various factors such as frequency of use, recent use, or as an intelligent advance selection for upcoming station sampling.
[00130] Although exemplary embodiments have been described herein with reference to the accompanying figures, it is to be understood that the invention is not limited to those precise embodiments, and that various other changes and modifications may be made therein by one skilled in the art without departing from the scope of the appended claims.

Claims

What is claimed is:
1. A method comprising: receiving, by a data reception system, a first data stream and a first delayed data stream transmitted from a data transmission system, wherein the first delayed data stream comprises a delayed version of the first data stream; generating, by the data reception system, a second delayed data stream, wherein the second delayed data stream comprises a delayed version of the received first data stream; and combining, by the data reception system, portions of the first and second delayed data streams to thereby generate a received data stream for output.
2. The method of claim 1, wherein the first delayed version of the data stream is generated by applying a first stream delay to the first data stream prior to transmission of the first data stream.
3. The method of claim 2, wherein generating the second delayed data stream comprises applying a second stream delay to the received first data steam.
4. The method of claim 3, wherein the first stream delay comprises a first time delay, and wherein the second stream delay comprises a second time delay.
5. The method of claim 4, wherein the first time delay and the second time delay are substantially the same.
6. The method of claim 3, wherein the first stream delay comprises a first block delay, and wherein the second stream delay comprises a second block delay.
7. The method of claim 6, wherein the first block delay and the second block delay are substantially the same.
8. The method of claim 1 , wherein combining portions of the first and second delayed data streams comprises: aligning the first and second delayed data streams; and utilizing the first delayed data stream as the received data stream for output, wherein a missing portion of the first delayed data stream is augmented with a corresponding portion of the second delayed data stream.
9. The method of claim 1 , wherein combining portions of the first and second delayed data streams comprises: aligning the first and second delayed data streams; and utilizing the second delayed data stream as the received data stream for output, wherein a missing portion of the second delayed data stream is augmented with a corresponding portion of the first delayed data stream.
10. The method of claim 1, wherein receiving the first data stream and the first delayed data stream transmitted from the data transmission system, comprises: receiving the first data stream on a first communications channel; and receiving the second data stream on a second communications channel, which is separate from the first communications channel.
11. The method of claim 1, wherein receiving the first data stream and the first delayed data stream transmitted from the data transmission system, comprises: receiving a multiplexed data stream on a first communications channel, wherein the multiplexed data stream comprises an interleaved sequence of the first data stream and the first delayed data stream, wherein the interleaved sequence comprises intervals that correspond to a first stream delay value; and demultiplexing the multiplexed data stream to separate the first data stream and the first delayed data stream.
12. The method of claim 11 , wherein the first data stream and the first delayed data stream each comprise compressed data streams, and wherein the method comprises decompressing the compressed data streams to obtain the first data stream and the first delayed data stream.
13. The method of claim 1, wherein the data reception system comprises a radio receiver system.
14. The method of claim 1 , wherein the data reception system comprises a wireless receiver module of a computing device.
15. A data reception system, comprising: a receiver configured to receive a first data stream and a first delayed data stream transmitted from a data transmission system, wherein the first delayed data stream comprises a delayed version of the first data stream; a receiver delay module configured to generate a second delayed data stream which comprises a delayed version of the received first data stream; and a data stream generator module configured to combine portions of the first and second delayed data streams to thereby generate a received data stream for output.
16. The data reception system of claim 15, wherein the data stream generator module is configured to combine portions of the first and second delayed data streams by a process which comprises aligning the first and second delayed data streams, and utilizing the first delayed data stream as the received data stream for output, wherein a missing portion of the first delayed data stream is augmented with a corresponding portion of the second delayed data stream.
17. The data reception system of claim 15, wherein the data stream generator module is configured to combine portions of the first and second delayed data streams by a process which comprises aligning the first and second delayed data streams, and utilizing the second delayed data stream as the received data stream for output, wherein a missing portion of the second delayed data stream is augmented with a corresponding portion of the first delayed data stream.
18. The data reception system of claim 15, wherein the data reception system comprises a multi-channel receiver comprising (i) a first receiver channel that is configured to receive the first data stream on a first communications channel, and (ii) a second receiver channel that is configured to receive the second data stream on a second communications channel, which is separate from the first communications channel.
19. The data reception system of claim 15, wherein the data reception system comprises: a receiver that is configured to receive a multiplexed data stream on a first communications channel, wherein the multiplexed data stream comprises an interleaved sequence of the first data stream and the first delayed data stream, wherein the interleaved sequence comprises intervals that correspond to a first stream delay value; and a demultiplexer module configured to separate the first data stream and the first delayed data stream in the received multiplexed data stream.
20. The data reception system of claim 19, wherein the first data stream and the first delayed data stream each comprise compressed data streams, and wherein the data reception system further comprises a data decompression system configured to decompress the compressed data streams to obtain the first data stream and the first delayed data stream.
21. A radio receiver system comprising the data reception system of claim 15.
22. A wireless receiver module of a computing device, wherein the wireless receiver module comprises the data reception system of claim 15.
23. A method comprising: receiving, by a data transmission system, a first data stream output from a data stream source; generating, by the data transmission system, a first delayed data stream which comprises a delayed version of the first data stream; multiplexing the first data stream and the first delayed data stream to thereby generate a multiplexed data stream comprising a combined sequence of data blocks of the first data stream and the first delayed data stream; and transmitting the multiplexed data stream over a single communications channel to a data reception system; wherein the multiplexed data stream is configured to support stream data-level redundancy for generating a continuous data stream for output by the data reception system.
23. A method comprising: receiving, by a data transmission system, a plurality of different data streams output from a plurality of different data stream sources; generating, by the data transmission system, a plurality of first delayed data streams, wherein each of the first delayed data streams comprises a delayed version of a corresponding one of the different data streams; multiplexing the plurality of different data streams and the corresponding first delayed data streams to thereby generate a multiplexed data stream comprising a combined sequence of data blocks of the plurality of different data streams and the corresponding first delayed data streams; and transmitting the multiplexed data stream over a single communications channel to a data reception system; wherein the multiplexed data stream is configured to support stream data-level redundancy for generating a continuous data stream for output by the data reception system for each of the plurality of different data streams.
24. The method of claim 23, wherein the plurality of different data streams comprises at least ten different data streams.
25. The method of claim 23, further comprising time synchronizing the plurality of different data streams before generating the plurality of first delayed data streams.
25. The method of claim 23, further comprising data compressing at least one of the plurality of different data streams and the corresponding first delayed data stream.
PCT/US2019/066585 2019-12-16 2019-12-16 Systems and methods for uninterrupted reception of streaming data WO2021126156A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2019/066585 WO2021126156A1 (en) 2019-12-16 2019-12-16 Systems and methods for uninterrupted reception of streaming data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/066585 WO2021126156A1 (en) 2019-12-16 2019-12-16 Systems and methods for uninterrupted reception of streaming data

Publications (1)

Publication Number Publication Date
WO2021126156A1 true WO2021126156A1 (en) 2021-06-24

Family

ID=76477704

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2019/066585 WO2021126156A1 (en) 2019-12-16 2019-12-16 Systems and methods for uninterrupted reception of streaming data

Country Status (1)

Country Link
WO (1) WO2021126156A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030053492A1 (en) * 2000-09-01 2003-03-20 Osamu Matsunaga Multiplexer, receiver, and multiplex transmission method
US20060050780A1 (en) * 2003-01-28 2006-03-09 Cooper Jeffrey A Robust mode staggercasting with adjustable delay offset
US7436885B2 (en) * 2002-10-09 2008-10-14 Hewlett-Packard Development Company, L.P. Method for presenting streaming media
US20090219809A1 (en) * 2008-03-03 2009-09-03 Freeburg Thomas A Redundant mux cnfiguration
US20100274918A1 (en) * 2008-02-04 2010-10-28 Yoshiaki Mimata Stream data multiplexing device and multiplexing method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030053492A1 (en) * 2000-09-01 2003-03-20 Osamu Matsunaga Multiplexer, receiver, and multiplex transmission method
US7436885B2 (en) * 2002-10-09 2008-10-14 Hewlett-Packard Development Company, L.P. Method for presenting streaming media
US20060050780A1 (en) * 2003-01-28 2006-03-09 Cooper Jeffrey A Robust mode staggercasting with adjustable delay offset
US20100274918A1 (en) * 2008-02-04 2010-10-28 Yoshiaki Mimata Stream data multiplexing device and multiplexing method
US20090219809A1 (en) * 2008-03-03 2009-09-03 Freeburg Thomas A Redundant mux cnfiguration

Similar Documents

Publication Publication Date Title
US7542511B2 (en) Wireless RF link for uncompressed transmission of HDTV signals
US9577936B2 (en) Packetized radio frequency transport system
AU2002214994B2 (en) Spread spectrum communication system using a quasi-geostationary satellite
EP0999661B1 (en) Mobile digital radio system with spatial and time diversity capability
US20040196404A1 (en) Apparatus for wireless RF transmission of uncompressed HDTV signal
JP2002533014A (en) Information transmitting apparatus and method, and information receiving apparatus and method
JP2003525546A (en) System and method for enhancing video transmission over wireless networks
AU2002214994A1 (en) Spread spectrum communication system using a quasi-geostationary satellite
US20080115007A1 (en) Efficient layered coding technique to mitigate shadowing in satellite propagation channel
JP2001510296A (en) Apparatus and method for simultaneously supporting multiple modulation systems on a terrestrial distribution network
US10237630B2 (en) Method and system for transmitting satellite signals and receiver thereof
WO2012120743A1 (en) Relay device and auxiliary relay device
CN110557230B (en) Data transmission method and system for unidirectional broadcast and bidirectional network
WO2011094001A1 (en) Method of improving performance in a hierarchical modulation system
US20220248070A1 (en) Content transmission method and content playback method
KR100716894B1 (en) Method and apparatus for transmmision signal having differential quality according to channel state
WO2021126156A1 (en) Systems and methods for uninterrupted reception of streaming data
WO2011094002A1 (en) Method for automatic reconfiguration in a hierarchical modulation system
US20060013120A1 (en) Method and apparatus for providing local channels in a global satellite/terrestrial network
US20030112883A1 (en) Method and apparatus for bi-directional communication in systems broadcasting multi-carrier signals
US20060013121A1 (en) Method and apparatus for adding auxiliary channels in an existing transmission system
US8605773B2 (en) Apparatus and method for data communication using radio frequency
WO2002061997A2 (en) Dvcpro wireless transmission system using cofdm
US8423863B2 (en) Terminal transmission apparatus for providing multimedia service via satellite communication link and method for providing multimedia service using the same
CN101202918A (en) Method of terminal correcting clock

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19957031

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 17/10/2022)

122 Ep: pct application non-entry in european phase

Ref document number: 19957031

Country of ref document: EP

Kind code of ref document: A1