Methods for increasing network reliability for a wireless client
By dynamically adjusting error correction strategies based on predicted bandwidth and network state, the method enhances wireless network reliability for vehicles, addressing fluctuations in network conditions and improving real-time data streaming performance.
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2025-01-16
- Publication Date
- 2026-03-12
AI Technical Summary
Existing systems for wireless network communication, particularly for vehicles, face challenges in maintaining reliability due to fluctuations in network conditions, leading to degraded user experiences in real-time data streaming applications.
A method and system that determine a predicted bandwidth and network state to adjust error correction block sizes and server transmission characteristics, including generating error correction packets based on packet importance and network conditions, to enhance network reliability.
Improves network reliability by optimizing error correction strategies, ensuring robust data transmission even under fault events, thereby enhancing the performance of real-time applications like video streaming and videoconferencing.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical field
[0001] The present disclosure relates to systems and methods for the reliability of network communication. Introduction
[0002] To provide network connectivity for wireless devices such as smartphones and vehicles, cellular communication technologies can be used. Cellular communications can provide bandwidth for tasks such as sensor fusion, vehicle-to-everything (V2X) communication, remote diagnostics, telecommunications, and / or similar applications. To ensure reliable communication in wireless applications, reliability protocols can be used. Reliability protocols can include error correction techniques configured to maintain data integrity during transmission tasks. For example, error detection, packet retransmission, redundancy checking, and / or similar techniques can be used.Multiple protocols can be used in tandem to support high-speed, low-latency communication for critical applications, such as real-time control of vehicle systems or in-vehicle telecommunications (e.g., video conferencing). Cellular communication with reliability protocols enables wireless clients to exchange data under challenging conditions, such as network congestion or environmental interference.
[0003] US Patent 2008 / 0134005A1 describes devices and methods for adaptive forward error correction (FEC) that can be used, among other things, for video streaming over a wireless network. The device comprises an FEC encoder and an adaptive FEC device. The FEC encoder encodes k packets of source data into n packets, where n > k and the n packets include redundant packets. The adaptive FEC device adaptively determines the number of redundant packets to be transmitted with the encoded k packets, based on the receipt of one or more feedback messages. The one or more feedback messages indicate the state of the wireless network over which the encoded video is to be transmitted.
[0004] The scientific article "ZHANG, Lei [et al.], 2021. Deadline-Aware Transmission Control for Real-Time Video Streaming. In: 2021 IEEE 29th International Conference on Network Protocols (ICNP), Dallas, TX, USA. IEEE, November 1, 2021. pp. 1-6. ISBN 978-1-6654-4131-5" describes how the requirements for deadline compliance in real-time applications have increased rapidly in recent years (e.g., cloud gaming, cloud VR, online conferences). Due to varying network conditions, deadline compliance for these applications has become a key research focus. However, current approaches tend to focus on delivering high bitrates rather than on meeting deadlines. The article introduces D3T, a flexible, deadline-aware transmission mechanism designed to improve the quality of experience (QoE) for real-time video streaming.To meet diverse scheduling requirements under fluctuating network conditions, D3T uses a deadline-oriented scheduler to select the highest-priority frame before the deadline expires. To reduce congestion and retransmission delays, a deep reinforcement learning algorithm is used to make decisions about transmission speed and forward error correction (FEC) redundancy rate based on observed network status and frame information. D3T is evaluated using a trace-driven simulator that covers various network environments, video content, and QoE metrics. According to the authors, D3T significantly improves frame completion rates by reducing bandwidth waste before the deadline. In the scenarios studied, D3T outperforms previous approaches, achieving an average QoE improvement of 57%.
[0005] CN 1 01 686 106 A describes a self-adaptive forward error correction (FEC) method, a device, and a system, wherein the self-adaptive FEC method comprises steps for acquiring data on the quality of a current transmission network and for determining an FEC strategy based on the data on the quality of the current transmission network, expected transmission quality data, and selected parameters that influence the quality of the network transmission content. The self-adaptive FEC device comprises an acquisition module for acquiring the data on the quality of the current transmission network; and a strategy determination module for determining an FEC strategy based on the data on the quality of the current transmission network, the expected transmission quality data, and selected parameters that influence the quality of the network transmission content. The present invention also provides a self-adaptive FEC system.
[0006] US 2014 / 0325302A1 describes a mechanism for transmitting a multicast session to a multitude of receivers over a wireless network. A forward error correction (FEC) overhead and a transmission rate are determined for transmitting the next data block of the multicast session based on the received channel conditions. The next data block is multicast-transmitted using the determined FEC overhead and transmission rate. In response to an indication of common missing packets from the next data block from more than one receiver in the multitude, the common missing packets are multicast to the multitude of receivers using the determined FEC overhead and transmission rate.In response to a notification of unusual missing packets from the data block from one or more recipients, the unusual missing packets identified by the recipient are unicastated for each recipient in the one or more recipients using the specified FEC overhead and the specified transmission rate.
[0007] US 2017 / 0338908A1 describes techniques that can be used to enable a base station to dynamically implement error correction procedures (e.g., Hybrid Automatic Repeat Request (HARQ), Forward Error Correction (FEC), etc.) based on one or more factors, such as the level of network activity, network congestion, etc. Under high network congestion, the network device can implement an error correction policy that aims to utilize available network resources to prioritize error correction procedures for transmission errors with high service demands. However, under low network congestion, the network device can implement an error correction policy that aims to optimize error correction effectiveness by allocating unused network resources (e.g., bandwidth, physical channels, etc.) to correct transmission errors.
[0008] US Patent 8,856,623 B1 describes a method, a computer-readable medium, and a system for implementing adaptive forward error correction in a network. The method involves converting a number K of original data packets in a first computing unit into a number N of error-correcting packets for forward error correction to be transmitted to a second computing unit. A subset S1 of the number N of error-correcting packets, smaller than the number N of error-correcting packets, is determined in the first computing unit based on a loss rate for transmission to the second computing unit. The determined subset S1 of the number N of error-correcting packets is then transmitted from the first computing unit to the second computing unit.
[0009] While systems and methods for the reliability of network communication achieve their intended purpose, the object of the invention is to provide new and improved systems and methods for a system to increase network reliability for wireless clients, such as vehicles. Description
[0010] The invention is defined by the claims.
[0011] According to the invention, a method for increasing the network reliability of a wireless client is provided. The method can include determining a predicted bandwidth of the wireless client at a given time step. The method can further include determining a network state. The network state can be one of the following: a normal network state and a fault event state. The method can further include determining an error correction block size based on at least one of the network state and the predicted bandwidth of the wireless client. The method can further include adjusting one or more server transmission characteristics of a server packet stream based at least on the error correction block size. The server packet stream contains a plurality of data packets.The method can further include transmitting the server packet stream to the wireless client based on at least one or more server transmission characteristics.
[0012] According to one embodiment, determining the error correction block size may further include determining a bandwidth budget based on the predicted bandwidth of the wireless client and a utilized bit rate of the wireless client using the following formula: Bb=Bp−Ba where B b the bandwidth budget is, B p the predicted bandwidth of the wireless client at the next time step, and B aThe bitrate used by the wireless client at the current time step. Determining the error correction block size can also involve determining a packet corruption probability. Furthermore, determining the error correction block size can involve determining the error correction block size based on the bandwidth budget, the packet corruption probability, a predetermined maximum number of packets, and the client's bandwidth used at the current time step, using the following formula: Ne=max(min(Nw,⌈1Pc⌉),⌊BaBb⌋) where N e the error correction block size is N w The predetermined maximum number of packets to wait for before decoding into video frames, P c The probability of package corruption is B a the bitrate used by the wireless client at the current time step, and B pThe predicted bandwidth of the wireless client at the next time step.
[0013] According to another embodiment, determining the packet corruption probability may also involve determining the packet corruption probability using an inhomogeneous Poisson point process equation evaluated with a moving time window.
[0014] According to another embodiment, determining the packet corruption probability may further involve resetting the moving time window to start at a current time in response to determining that the network state is the fault event state.
[0015] According to the invention, adjusting the one or more server transmission characteristics further includes generating one or more error correction packets for inclusion in the server packet stream, based at least on the error correction block size. Adjusting the one or more server transmission characteristics further includes determining an optimized server bit rate for the next time step, based at least on the error correction block size. Adjusting the one or more server transmission characteristics further includes determining an optimized key-frame transmission timing, based at least on the error correction block size.
[0016] According to another embodiment, generating the one or more error correction packets can further involve grouping one or more of the plurality of data packets into a plurality of error correction blocks. A set of data packets in each of the plurality of error correction blocks is the error correction block size. Generating the one or more error correction packets can further involve generating one or more error correction packets. Each of the one or more error correction packets encodes one of the plurality of error correction blocks.
[0017] According to another embodiment, grouping one or more of the multitude of data packets into the multitude of error correction blocks can further include determining a packet importance for each of the multitude of data packets in response to determining that the network state is the fault event state. Grouping one or more of the multitude of data packets into the multitude of error correction blocks can further include grouping one or more of the multitude of data packets into the multitude of error correction blocks based at least on the packet importance for each of the multitude of data packets in response to determining that the network state is the fault event state.
[0018] According to a further embodiment, grouping one or more of the plurality of data packets into the plurality of error correction blocks can further include comparing the packet importance of each of the plurality of data packets with a predetermined importance threshold. Grouping one or more of the plurality of data packets into the plurality of error correction blocks can further include grouping one or more of the plurality of data packets into the plurality of error correction blocks based at least on the packet importance of each of the plurality of data packets. Each of the plurality of error correction blocks contains one or more of the plurality of data packets whose packet importance is greater than or equal to the predetermined importance threshold.
[0019] According to another embodiment, determining the optimized server bitrate can further include determining the optimized server bitrate for the next time step using an optimization algorithm. The sum of the optimized server bitrate and an error correction bitrate does not exceed the predicted bandwidth of the wireless client. The error correction bitrate is determined based, at least in part, on the error correction block size. Any decrease between the optimized server bitrate for the current time step and the optimized server bitrate for the next time step is minimized.
[0020] According to another embodiment, determining the optimized key-frame transmission timing can further include determining the total key-frame data size required to transmit a key frame and associated key-frame error-correcting packets, based at least partially on the error-correcting block size. Determining the optimized key-frame transmission timing can further include determining an estimated key-frame transmission duration, based at least partially on the total key-frame data size and the predicted bandwidth for the next time step. Determining the optimized key-frame transmission timing can further include adjusting a key-frame transmission start time in response to the determination that the estimated key-frame transmission duration is greater than a predetermined maximum wait time.
[0021] A system for increasing network reliability for a vehicle is provided according to several aspects. The system may include a server communication system in wireless communication with one or more wireless clients. The one or more wireless clients include the vehicle. The system may also include a server controller in electrical communication with the server communication system. The server controller is programmed to determine the vehicle's predicted bandwidth at the next time step. The server controller is also programmed to determine the vehicle's network state. The network state includes one of the following: a normal network state and a fault event state. The server controller is also programmed to determine an error correction block size based at least partially on the network state and the vehicle's predicted bandwidth.The server controller is further programmed to generate one or more error correction packets for a server packet stream, based at least partially on the error correction block size. The server packet stream contains a multitude of data packets. The server controller is also programmed to transmit the server packet stream and the one or more error correction packets to the vehicle using the server communication system.
[0022] In another aspect of the present disclosure, the server control, in order to determine the network status of the vehicle, is further programmed to determine, in response to the determination that the vehicle has switched wireless base stations at a current time step or that it is predicted that the vehicle will switch wireless base stations at the next time step, that the network status is the fault event status.
[0023] In another aspect of the present disclosure, the server controller, in order to determine the error correction block size, is further programmed to determine a bandwidth budget based at least partially on the predicted bandwidth of the vehicle using a formula: Bb=Bp−Ba where B b the bandwidth budget is, B p the predicted bandwidth of the vehicle at the next time step, and B aThe bitrate used by the vehicle at the current time step is used to determine the error correction block size. To determine the error correction block size, the server controller is further programmed to calculate a packet corruption probability using an inhomogeneous Poisson-point process equation evaluated over a moving time window. To determine the error correction block size, the server controller is further programmed to calculate the error correction block size based, at least partially, on the bandwidth budget and the packet corruption probability using a formula: Ne=max(min(Nw,⌈1Pc⌉),⌊BaBb⌋) where N e the error correction block size is N w P is a predetermined maximum number of packets to wait for before decoding into video frames. c The probability of package corruption is B a the bit rate used by the vehicle at the current time step, and Bp The predicted bandwidth of the vehicle at the next time step.
[0024] In another aspect of the present disclosure, the server control, in order to determine the packet corruption probability, is further programmed to reset the moving time window to start at a current time in response to determining that the network state is the fault event state.
[0025] In another aspect of the present disclosure, the server controller, in order to generate the one or more error correction packets, is further programmed to group one or more of the plurality of data packets into a plurality of error correction blocks. A set of data packets in each of the plurality of error correction blocks is the error correction block size. To generate the one or more error correction packets, the server controller is further programmed to generate the one or more error correction packets. Each of the one or more error correction packets encodes one of the plurality of error correction blocks.
[0026] In another aspect of the present disclosure, the server controller, in order to group one or more of the multitude of data packets into the multitude of error-correcting blocks, is further programmed to determine a packet importance of each of the multitude of data packets in response to the determination that the network state is the fault event state. To group one or more of the multitude of data packets into the multitude of error-correcting blocks, the server controller is further programmed to group one or more of the multitude of data packets into the multitude of error-correcting blocks based at least partially on the packet importance of each of the multitude of data packets in response to the determination that the network state is the fault event state.
[0027] In another aspect of the present disclosure, the server controller, in order to group one or more of the multitude of data packets into the multitude of error-correcting blocks, is further programmed to compare the packet importance of each of the multitude of data packets with a predetermined importance threshold. To group the one or more of the multitude of data packets into the multitude of error-correcting blocks, the server controller is further programmed to group the one or more of the multitude of data packets into the multitude of error-correcting blocks based, at least partially, on the packet importance of each of the multitude of data packets. Each of the multitude of error-correcting blocks contains one or more of the multitude of data packets that have a packet importance greater than or equal to the predetermined importance threshold.
[0028] A method for increasing network reliability for a vehicle is provided, based on several aspects. This method may involve determining the vehicle's predicted bandwidth at the next time step. The method may also involve determining a network state, which includes one of the following: a normal network state and a disturbance event state. The disturbance event state indicates that the vehicle has switched wireless base stations at the current time step or that it is predicted the vehicle will switch wireless base stations at the next time step. The method may also involve determining an error correction block size based, at least in part, on the network state and the vehicle's predicted bandwidth.The method can further include generating one or more error correction packets for inclusion in a server packet stream, based at least partially on the error correction block size. The server packet stream contains a multitude of data packets. The method can further include transmitting the server packet stream, containing the one or more error correction packets, to the vehicle.
[0029] In another aspect of the present disclosure, determining the error correction block size may further involve determining a bandwidth budget based at least partially on the predicted bandwidth of the vehicle using a formula: Bb=Bp−Ba where B b the bandwidth budget is, B p the predicted bandwidth of the vehicle at the next time step, and B aa used bit rate of the vehicle at the current time step. Determining the error correction block size may further involve determining a packet corruption probability using an inhomogeneous Poisson-point process equation evaluated with a moving time window. Determining the error correction block size may further involve resetting the moving time window to start at a current time in response to determining that the network state is the fault event state. Determining the error correction block size may further involve determining the error correction block size based at least partially on the bandwidth budget and the packet corruption probability using a formula: Ne=max(min(Nw,⌈1Pc⌉),⌊BaBb⌋) where N e the error correction block size is N wP is a predetermined maximum number of packets to wait for before decoding into video frames. c The probability of package corruption is B a the bit rate used by the vehicle at the current time step, and B p The predicted bandwidth of the vehicle at the next time step.
[0030] In another aspect of this disclosure, generating the one or more error correction packets may further involve determining a packet importance for each of the plurality of data packets in response to determining that the network state is the fault event state. Generating the one or more error correction packets may further involve comparing the packet importance of each of the plurality of data packets with a predetermined importance threshold. Generating the one or more error correction packets may further involve grouping the one or more of the plurality of data packets into a plurality of error correction blocks based at least partially on the packet importance of each of the plurality of data packets. A set of data packets in each of the plurality of error correction blocks is the error correction block size.Each of the many error correction blocks contains one or more of the many data packets that have a packet importance greater than or equal to the predetermined importance threshold.
[0031] Further areas of application will become apparent from the description provided herein. It is understood that the description and specific examples serve only for illustrative purposes and are not intended to limit the scope of this disclosure. Brief description of the drawings
[0032] The drawings described herein are for illustrative purposes only and are not intended to limit the scope of the present disclosure in any way. Fig. Figure 1 is a schematic diagram of a system for increasing network reliability for a wireless device, such as a vehicle, according to an exemplary embodiment; Fig. 2A is a flowchart of a method for increasing network reliability for a wireless device, such as a vehicle, according to an exemplary embodiment; and Fig. 2B is a continuation of the flowchart from Fig. 2A according to an exemplary embodiment. Detailed description
[0033] The following description is merely exemplary and is not intended to limit the present disclosure, application or uses.
[0034] In aspects of the present disclosure, wireless clients, including vehicles, can move through their environment at high speeds, leading to reduced reliability and consistency of a wireless (e.g., cellular) connection. This can result in a degraded user experience for some applications, particularly those that rely on real-time data streaming, such as video streaming and videoconferencing. Accordingly, the present disclosure provides a new and improved system and method for increasing network reliability for wireless clients such as vehicles.
[0035] With reference to Fig. Figure 1 illustrates a system for increasing network reliability for a vehicle and is generally designated by reference numeral 10. System 10 is shown with an exemplary vehicle 12. Although a passenger car is illustrated, it is understood that vehicle 12 can be any type of vehicle without derogating from the scope of this disclosure. System 10 generally includes a server system 10a and a vehicle system 10b.
[0036] The server system 10a includes a server controller 14 in electrical communication with a server database 16 and a server communication system 18. In a non-restrictive example, the server system 10a is located in a server farm, a data center, or the like and is connected to the Internet.
[0037] The server controller 14 is used to implement a method 100 for increasing network reliability for a vehicle, as described below. The server controller 14 includes at least one server processor 20 and a non-volatile, computer-readable server storage device or non-volatile, computer-readable server storage medium 22. The server processor 20 can be a custom or commercially available processor, a central processing unit (CPU), a graphics processing unit (GPU), an auxiliary processor among several processors associated with the server controller 14, a microprocessor-based semiconductor (in the form of a microchip or chipset), a macroprocessor, a combination thereof, or generally, an instruction-executing device.
[0038] The computer-readable server storage device or computer-readable server storage medium 22 can, for example, include volatile and non-volatile storage in read-only memory (ROM), random-access memory (RAM), and keep-alive memory (KAM). KAM is persistent or non-volatile memory that can be used to store various operating variables while the server processor 20 is powered off. The computer-readable storage device or computer-readable server storage medium 22 can be implemented using a variety of storage devices such as PROMs (programmable read-only memory), EPROMs (electrical PROMs), EEPROMs (electrically erasable PROMs), flash memory, or other electrical, magnetic, optical, or combined storage devices capable of storing data, some of which represent executable instructions.The server controller 14 can also include multiple controllers that are in electrical communication with each other.
[0039] The server controller 14 communicates electrically with the server database 16 and the server communication system 18. In an exemplary embodiment, the electrical communication is established, for example, using a CAN network, a FLEXRAY network, a local area network (e.g., WiFi, Ethernet, and the like), an SPI network (SPI = Serial Peripheral Interface), a PCI (PCI = Peripheral Component Interconnect), and / or the like. It is understood that various additional wired and wireless techniques and communication protocols for communicating with the server controller 14 are within the scope of this disclosure. It is further understood that, within the scope of this disclosure, the electrical communication also includes power and / or energy transfer between electrical devices (e.g., using conductive wires and / or wireless power transmission techniques).
[0040] The server database 16 is used to store and / or buffer data for transmission to external devices. In one exemplary embodiment, the server database 16 includes one or more mass storage devices, such as hard disk drives, magnetic tape drives, magneto-optical disk drives, optical disks, solid-state drives, and / or additional devices capable of storing data in a persistent and machine-readable manner. In some examples, the one or more mass storage devices may be configured to provide redundancy in the event of hardware failure and / or data corruption, for example, by using a redundant array of independent disks (RAID).In a non-restrictive example, the server controller can run 14 software programs, such as a database management system (DBMS), which allows the organization and access of data stored on one or more mass storage devices.
[0041] The server communication system 18 is used by the server controller 14 to communicate with other systems outside the server system 10a (e.g. wireless clients, such as the vehicle system 10b).
[0042] In certain embodiments, the server communication system 18 is a wireless communication system configured to communicate over a wireless local area network (WLAN) using IEEE 802.11 standards or using cellular data communication (e.g., using GSMA standards such as SGP.02, SGP.22, SGP.32, and the like). Accordingly, the server communication system 18 may further include an embedded universal integrated circuit card (eUICC) configured to store at least one cellular connectivity configuration profile, for example, an embedded subscriber identity module (eSIM) profile.
[0043] The server communication system 18 is further configured to communicate via a personal network (e.g., Bluetooth), near-field communication (NFC), and / or any additional type of high-frequency communication. However, additional or alternative communication methods, such as a dedicated short-range communication (DSRC) channel and / or mobile telecommunications protocols based on the standards of the 3rd Generation Partnership Project (3GPP), are also considered within the scope of this disclosure. DSRC channels refer to one-way or two-way short- to medium-range wireless communication channels specifically designed for automotive use and a corresponding set of protocols and standards.The 3GPP refers to a partnership between several standards organizations that develop protocols and standards for mobile telecommunications. 3GPP standards are structured as "releases." Therefore, communication procedures based on 3GPP Releases 14, 15, 16, and / or future 3GPP Releases are considered within the scope of this disclosure.
[0044] It is understood that the server communication system 18 can be integrated with the server controller 14 (e.g., on the same circuit board as the server controller 14 or otherwise a part of the server controller 14) without deviating from the scope of this disclosure. Although in Fig. Not shown in Figure 1, it is further understood that wireless communication between the server communication system 18 and the one or more wireless clients can be enabled by additional infrastructure, such as a mobile network including mobile base stations.
[0045] In an exemplary embodiment, the server system 10a communicates wirelessly with one or more wireless clients. In a non-limiting example, the one or more wireless clients include a computing device, such as a laptop 30. In another non-limiting example, the one or more wireless clients further include the vehicle system 10b. In an exemplary embodiment, the server system 10a uses the server communication system 18 to transmit data to the one or more wireless clients using forward error correction (FEC). In a non-limiting example, the data includes one or more video streams for a video conferencing application. FEC allows errors in data packets to be corrected without requiring retransmission of the data.The data that server system 10a transmits to the one or more wireless clients is encapsulated in a multitude of data packets. In a non-restrictive example, each video frame of the one or more video streams is encapsulated in one or more data packets.
[0046] One or more groups of the multitude of data packets, called error correction blocks, are encoded to generate one or more error correction packets. Each error correction packet encodes information derived from the data packets within the corresponding error correction block, using a predefined algorithm such as Reed-Solomon or LDPC (Low-Density Parity Check).
[0047] The number of data packets in each error correction block, known as the error correction block size, controls both the robustness of the error correction and the amount of additional bandwidth consumed by error correction. Decreasing the error correction block size increases the robustness of the error correction (i.e., the number of data packets that can be lost / corrupted without actual data loss) and increases the amount of additional bandwidth consumed by error correction. Conversely, increasing the error correction block size decreases the robustness of the error correction and decreases the amount of additional bandwidth consumed by error correction.
[0048] The generated error correction packets are transmitted to the one or more wireless clients alongside the multitude of data packets as a stream of packets, known as a server packet stream. The one or more wireless clients then receive the network transmission, which includes the multitude of data packets and the generated error correction packets. If one or more of the multitude of data packets are lost or corrupted during transmission, the one or more wireless clients use the information in the error correction packets to reconstruct the missing or corrupted data packets.It is understood that the foregoing description of forward error correction (FEC) is merely exemplary, that the FEC process may include various additional steps, and that FEC may be implemented using various additional systems, procedures, protocols, and / or techniques without deviating from the scope of this disclosure.
[0049] Furthermore, in a non-restrictive example, the Server System 10a provides multiple simultaneous data streams to wireless clients at different bitrates (e.g., using simulcast or scalable video encoding protocols). For example, the Server System 10a can provide a high-bitrate stream within a high-bitrate range (e.g., 2 to 3 megabits per second), a medium-bitrate stream within a medium-bitrate range (e.g., 1 to 1.5 megabits per second), and a low-bitrate stream within a low-bitrate range (e.g., 300 to 600 kilobits per second). Each wireless client can choose to receive one of the simultaneous data streams.
[0050] With continued reference to Fig. 1 The vehicle system 10b includes a vehicle control unit 40 in electrical communication with an interior camera 42, a display 44 and a vehicle communication system 46.
[0051] The vehicle control unit 40 includes at least one processor 48 and a non-volatile, computer-readable storage device or a non-volatile, computer-readable storage medium 50. The processor 48 can be a custom or commercially available processor, a central processing unit (CPU), a graphics processing unit (GPU), an auxiliary processor among several processors assigned to the vehicle control unit 40, a microprocessor-based semiconductor (in the form of a microchip or chipset), a macroprocessor, a combination thereof, or generally, a device for executing instructions.
[0052] The computer-readable storage device or computer-readable storage medium 50 can, for example, include volatile and non-volatile storage in read-only memory (ROM), random-access memory (RAM), and keep-alive memory (KAM). KAM is persistent or non-volatile memory that can be used to store various operating variables while the processor 48 is turned off.The computer-readable storage device or computer-readable storage medium 50 can be implemented using a variety of storage devices such as PROMs (programmable read-only memory), EPROMs (electrical PROM), EEPROMs (electrically erasable PROM), flash memory, or other electrical, magnetic, optical, or combined storage devices capable of storing data, some of which represent executable instructions used by the vehicle control 40 to control various systems of the vehicle 12.
[0053] The vehicle control unit 40 can also include multiple control units that communicate electrically with each other. The vehicle control unit 40 can be connected to additional systems and / or controls of the vehicle 12, which allows the vehicle control unit 40 to access data such as speed, acceleration, braking, and steering angle of the vehicle 12.
[0054] The vehicle control unit 40 communicates electrically with the interior camera 42, the display 44, and the vehicle communication system 46. In an exemplary embodiment, the electrical communication is established, for example, using a CAN network, a FLEXRAY network, a local area network (e.g., WiFi, Ethernet, and the like), an SPI network (SPI = Serial Peripheral Interface), or the like. It is understood that various additional wired and wireless techniques and communication protocols for communicating with the vehicle control unit 40 are within the scope of this disclosure. It is further understood that, within the scope of this disclosure, the electrical communication also includes power and / or energy transfer between electrical devices (e.g., using conductive wires and / or wireless power transmission techniques).
[0055] The interior camera 42 is used to capture images and / or videos of the environment inside the vehicle 12. In an exemplary embodiment, the interior camera 42 is a photo and / or video camera positioned to view the environment inside a cabin of the vehicle 12. In one example, the interior camera 42 is mounted inside the vehicle 12, for example, in the headliner of the vehicle 12, which has a view of one or more seats of the vehicle 12. It is understood that cameras with various sensor types, including, for example, CCD sensors (CCD = charge-coupled device), CMOS sensors (CMOS = complementary metal oxide semiconductor), and / or HDR sensors (HDR = high dynamic range), are within the scope of this disclosure. Furthermore, cameras with various lens types, including, for example, wide-angle lenses and / or narrow-angle lenses, are also within the scope of this disclosure.
[0056] The display 44 is used to provide information to an occupant of the vehicle 12. For the purposes of this disclosure, the occupant includes a driver and / or a passenger of the vehicle 12. In one exemplary embodiment, the display 44 is a human-machine interface (HMI) located in the occupant's field of vision and capable of displaying text, graphics, and / or images. It is understood that HMI display systems, including LCD displays, LED displays, and the like, are within the scope of this disclosure. Further exemplary embodiments in which the display 44 is arranged in a rearview mirror are also within the scope of this disclosure.In another exemplary embodiment, the display 44 includes a head-up display (HUD) configured to provide information to the occupant by projecting text, graphics, and / or images onto the windshield of the vehicle 12. The text, graphics, and / or images are reflected off the windshield of the vehicle 12 and are visible to the occupant without them having to look away from the road ahead. In yet another exemplary embodiment, the display 44 includes an augmented reality head-up display (AR-HUD). The AR-HUD is a type of HUD configured to enhance the occupant's view of the road ahead by overlaying text, graphics, and / or images onto physical objects in the environment surrounding the vehicle 12 within the occupant's field of vision.In one exemplary embodiment, the occupant can interact with the display 44 using a human-interface device (HID), including, for example, a touchscreen, an electromechanical switch, a capacitive switch, a rotary knob, and the like. It is understood that additional systems for displaying information to the occupant of the vehicle 12 are also within the scope of this disclosure.
[0057] The vehicle communication system 46 is used by the vehicle control unit 40 to communicate with other systems outside the vehicle 12. For example, the vehicle communication system 46 includes capabilities for communication with vehicles (“V2V” communication), infrastructure (“V2I” communication), remote systems in a remote call center (e.g., GENERAL MOTORS ON-STAR), and / or personal devices. In general, the term vehicle-to-everything communication (“V2X” communication) refers to communication between the vehicle 12 and any remote system (e.g., vehicles, infrastructure, and / or remote systems).
[0058] In certain embodiments, the vehicle communication system 46 is a wireless communication system configured to communicate via a wireless local area network (WLAN) using IEEE 802.11 standards or using cellular data communication (e.g., using GSMA standards such as SGP.02, SGP.22, SGP.32, and the like). Accordingly, the vehicle communication system 46 may further include an embedded universal integrated circuit card (eUICC) configured to store at least one cellular connectivity configuration profile, for example, an embedded subscriber identity module (eSIM) profile.
[0059] The vehicle communication system 46 is further configured to communicate via a personal network (e.g., BLUETOOTH), near-field communication (NFC), and / or any additional type of radio frequency communication. However, additional or alternative communication methods, such as a dedicated short-range communication (DSRC) channel and / or mobile telecommunications protocols based on the standards of the 3rd Generation Partnership Project (3GPP), are also considered within the scope of this disclosure. DSRC channels refer to one-way or two-way short- to medium-range wireless communication channels specifically designed for automotive use and a corresponding set of protocols and standards.The 3GPP refers to a partnership between several standards organizations that develop protocols and standards for mobile telecommunications. 3GPP standards are structured as "releases." Therefore, communication procedures based on 3GPP Releases 14, 15, 16, and / or future 3GPP Releases are considered within the scope of this disclosure.
[0060] Accordingly, the vehicle communication system 46 may include one or more antennas and / or communication transceivers for receiving and / or transmitting signals, such as cooperative sensing messages (CSMs). The vehicle communication system 46 is configured to wirelessly communicate information between the vehicle 12 and another vehicle. Furthermore, the vehicle communication system 46 is configured to wirelessly communicate information between the vehicle 12 and the infrastructure or other vehicles. It is understood that the vehicle communication system 46 may be integrated with the vehicle controller 40 (e.g., on the same circuit board as the vehicle controller 40 or otherwise a part of the vehicle controller 40) without deviating from the scope of this disclosure.
[0061] With reference to Fig. Figure 2A shows a flowchart of Method 100 for increasing network reliability for a vehicle. Method 100 begins at Block 102 and proceeds to Block 104. At Block 104, a predicted bandwidth of the wireless client is determined. Within the scope of this disclosure, the wireless client may include the vehicle 12 and / or a mobile device (e.g., a smartphone, laptop, etc.) in wireless (e.g., cellular) communication with the server system 10a via wireless infrastructure (e.g., cellular base stations). Within the scope of this disclosure, the predicted bandwidth is a predicted future bandwidth of the wireless client, based, for example, on the wireless signal environment, wireless signal strength, network congestion, and / or the like. In a non-limiting example, the predicted bandwidth is determined in one or more future time steps (e.g., the next time step).In an exemplary embodiment, the predicted bandwidth is determined using systems and methods discussed, for example, in U.S. Application No. 18 / 494,189, filed on October 25, 2023, entitled “PREDICTING 5G USER PLANE USING CONTROL PLANE FEATURES AND GRANGER CAUSALITY FOR FEATURE SELECTION,” the entire contents of which are hereby incorporated by reference. Following Block 104, Method 100 proceeds to Block 106.
[0062] In block 106, the server controller 14 determines a network status of the wireless client. Within the scope of this disclosure, the network status includes one of the following: a normal network status and a fault event status. Within the scope of this disclosure, the normal network status indicates the normal operation of the wireless link between the server system 10a and the vehicle system 10b, which, for example, exhibits a nominal signal strength, nominal bandwidth, nominal latency, and / or the like. Within the scope of this disclosure, the fault event status indicates a disturbance of the control plane operation of the wireless link between the server system 10a and the vehicle system 10b, which, for example, causes reduced bandwidth, reduced signal strength, increased latency, and / or the like.
[0063] The disturbance event state is caused by a disturbance event. In a non-restrictive example, the disturbance event involves the wireless client switching base stations. In an exemplary embodiment, in response to determining that the wireless client (e.g., vehicle 12) has switched wireless base stations to a previous time step, to the current time step, or that the wireless client is predicted to switch wireless base stations to the next time step, the network state is determined to be the disturbance event state. In a non-restrictive example, base station switches can be predicted based on the location and direction of the wireless client relative to nearby base stations.
[0064] If the wireless client's network state is determined to be the fault event state, procedure 100 proceeds to block 108, as discussed in more detail below. If the wireless client's network state is determined to be the normal network state, procedure 100 proceeds to block 110.
[0065] At block 110, the server controller 14 determines a packet corruption probability. Within the scope of this disclosure, the packet corruption probability is the probability that a network packet transmitted from server system 10a to the wireless client (e.g., the vehicle system 10b) is corrupted. Within the scope of this disclosure, corruption refers to degradation of the network packet due to inherent limitations of the wireless network protocol (e.g., due to wireless interference, encoding / decoding errors, and / or additional probabilistic processes). Degradation or loss of data packets caused by network congestion (i.e., more network traffic than available network bandwidth) is not considered "corruption" within the scope of this disclosure.In an exemplary embodiment, the packet corruption probability is determined using an inhomogeneous Poisson-Point process equation, which is evaluated with a moving time window. Pc=Pr{N(t0,tnow)=n+1}=(Λ(t0,tnow))n+1(n+!)!e−Λ(t0,tnow) Λ(t0,tnow)=∫t0tnowλ(t)dt where P c the probability is that a network packet transmitted from server system 10a to the wireless client (e.g., vehicle system 10b) is corrupted, t0 is the start time of the moving time window, t now the current time, n is the number of corrupted network packets that occurred in the interval [t0, t now ) can be observed, Pr{N(t0, t now ) = n + 1} the probability is that exactly n + 1 corrupted network packets occur in the interval [t0, t now ] will occur, which means that another corrupted network packet will occur at t nowwill be observed, λ(t) is an intensity function that represents the instantaneous probability that a network packet will be corrupted at time t (e.g., based on observations of network packet corruption in the interval [t0, t now ] is determined), and Λ(t0, t now ) is a cumulative intensity function representing the expected total number of corrupted network packets that will occur in the interval [t0, t now ] will occur.
[0066] In a non-restrictive example, the moving time window has a predetermined length (e.g., five seconds), which can be adjusted, for example, based on network conditions. Under certain circumstances, the moving time window can be "reset" to start at the current time, as discussed in more detail below. It is understood that additional methods, including, for example, machine learning methods, for determining the packet corruption probability are also within the scope of this disclosure. Following Block 110, Method 100 transitions to Block 112, as discussed in more detail below.
[0067] At block 108, the server controller 14 resets the moving time window in response to determining that the network state is the disturbance event state at block 106. The disturbance event can cause changes in wireless link performance; therefore, it is advantageous to reset the moving time window so that the link performance after the disturbance event is taken into account. In an exemplary embodiment, t0 is shifted forward in time to the disturbance event (e.g., t0 is shifted to the time of a cellular base station switchover event). After block 108, the method 100 transitions to block 110 as discussed above, except that the moving time window includes the time after the disturbance event (i.e., such that t0 ≥ t a , where t d the time of the disturbance event).
[0068] At block 112, the server controller 14 determines a bandwidth budget for the wireless client. Within the scope of this disclosure, the bandwidth budget is a predicted unused bandwidth of the wireless client at the next time step. In an exemplary embodiment, the bandwidth budget is calculated using a formula: Bb=Bp−Ba where B b the bandwidth budget is, B p the predicted bandwidth of the wireless client at the next time step is, as determined at block 104, and B a The bitrate used by the wireless client at the current time step is known. In a non-restrictive example, the bitrate used by the wireless client at the current time step is known based on the bitrate of data currently being transmitted from server system 10a to the wireless client. After block 112, procedure 100 proceeds to block 114.
[0069] At block 114, the server controller 14 determines an error correction block size. Within the scope of this disclosure, the error correction block size is a set of data packets encoded in each forward error correction (FEC) packet, as discussed above. In one exemplary embodiment, the error correction block size is determined based at least partially on the bandwidth budget determined at block 112 and the packet corruption probability determined at block 110. In a non-restrictive example, the error correction block size is determined using a formula: Ne=max(min(Nw,⌈1Pc⌉),⌊BaBb⌋) where N e the error correction block size is N wa predetermined maximum number of data packets that must be waited for before further data processing, for example decoding into video frames (e.g., based on a predetermined data delay tolerance of the wireless client), P c the probability of packet corruption determined at block 110, B a the bitrate used by the wireless client at the current time step determined at block 112, and B p The predicted bandwidth of the wireless client at the next time step determined at block 104 is shown. After block 114, procedure 100 transitions to block 116.
[0070] At block 116, server control 14 determines the network state of the wireless client, as discussed above with reference to block 106. If it is determined that the wireless client's network state is the fault event state, procedure 100 proceeds to block 118, as discussed in more detail below. If it is determined that the wireless client's network state is the normal network state, procedure 100 proceeds to block 120.
[0071] At block 120, the server controller 14 groups one or more of the plurality of data packets into a plurality of error-correcting blocks. The number of data packets in each error-correcting block is the error-correcting block size, as discussed above and determined at block 114. In one exemplary embodiment, each of the plurality of data packets is contained in the plurality of error-correcting blocks. In another exemplary embodiment, a predetermined fraction of the plurality of data packets is contained in the plurality of error-correcting blocks, and data packets that are not contained are not protected by error correction. After block 120, the method 100 transitions to block 122, as discussed in more detail below.
[0072] In block 118, the server controller 14 determines a packet importance for each of the plurality of data packets in response to determining that the network state is the fault event state. Within the scope of this disclosure, packet importance describes the significance of a particular data packet in the context of the server packet stream. For example, in the context of video streaming, data packets encoding key frames may be considered to have high packet importance because the key frames are critical for the proper playback of the video stream. In an exemplary embodiment, packet importance is described by a formula: Ip=αe−βα where I p the packet importance, α is a predetermined constant, e is a mathematical constant (sometimes called the Napier constant), and β is a variable that is adjusted based on the contents of the data packet.
[0073] In one non-restrictive example, for data packets encoding key frames, packet importance is defined by Equation 5 with β = 1. In another non-restrictive example, for data packets encoding layer-one temporal delta frames, packet importance is defined by Equation 5 with β = 2. In yet another non-restrictive example, for data packets encoding layer-two temporal delta frames, packet importance is defined by Equation 5 with β = 3. It is understood that packet importance can be determined based on other factors for various data types besides video streams, including, for example, importance information encoded within the data packets themselves. After Block 118, Procedure 100 proceeds to Block 124.
[0074] At block 124, the server controller 14 groups one or more of the plurality of data packets into the plurality of error correction blocks. The number of data packets in each error correction block is the error correction block size, as discussed above and determined at block 114. In an exemplary embodiment, the one or more of the plurality of data packets are grouped into the plurality of error correction blocks based at least partially on the packet importance of each of the plurality of data packets determined at block 118.
[0075] In a non-restrictive example, the packet importance of each of the plurality of data packets is compared to a predetermined importance threshold, and each of the plurality of error-correcting blocks includes one or more of the plurality of data packets that have a packet importance greater than or equal to the predetermined importance threshold. In another non-restrictive example, each of the plurality of error-correcting blocks includes only data packets that have a packet importance greater than or equal to the predetermined importance threshold. Data packets not included in the plurality of error-correcting blocks are not protected by error correction. After block 124, procedure 100 transitions to block 122.
[0076] At block 122, the server controller 14 generates one or more error correction packets for inclusion in the server packet stream. Each of these packets encodes one of the multiple error correction blocks based on the results of block 120 or block 124. After block 122, the process 100 proceeds to block 126.
[0077] At block 126, the server controller 14 determines an optimized server bitrate for the next time step. Within the scope of this disclosure, the server bitrate is the bitrate at which the server system 10a transmits the server data stream to the wireless clients. In an exemplary embodiment, the server controller 14 optimizes the bitrate within the ranges discussed above (e.g., the high-bitrate range, the medium-bitrate range, and the low-bitrate range) based at least partially on the set of error correction packets generated at block 122.
[0078] In a non-restrictive example, the optimized server bitrate for each stream is determined using an optimization algorithm with one or more constraints. A first constraint is that the sum of the optimized server bitrate and an error correction bitrate (based on the number of error correction packets generated at block 122, which in turn is based on the error correction block size determined at block 114) must not exceed the predicted bandwidth of the wireless client, determined at block 104. A second constraint is that the optimized server bitrate for each stream must be within the bitrate range for that stream. The server bitrate for each stream is optimized to minimize any decrease between the optimized server bitrate for the current time step and the optimized server bitrate for the next time step.
[0079] In a non-restrictive example, the selected server data stream can be represented as a matrix for each wireless client: I=[lmh] where: l,m,h∈{0,1} l+m+h=1 where I is an indicator matrix that specifies which server data stream is selected by the wireless client, l corresponds to the low-bitrate stream, m to the medium-bitrate stream, and h to the high-bitrate stream. A value of l = 1 means that the low-bitrate stream is selected, m = 1 means that the medium-bitrate stream is selected, and h = 1 means that the high-bitrate stream is selected.
[0080] The first limitation can be represented as: (bl(tnow+1)+bm(tnow+1)+bh(tnow+1))IT≤Bp where: bl(tnow+1)=bl,d(tnow+1)+bl,ec(tnow) bm(tnow+1)=bm,d(tnow+1)+bm,ec(tnow) bh(tnow+1)=bh,d(tnow+1)+bh,ec(tnow) where b l (t noq+1 ) the optimized server bitrate at the next time step for the low bitrate stream is, b m (t now+1 ) the optimized server bitrate at the next time step for the medium bitrate stream is, b h (t now+1 ) the optimized server bitrate at the next time step for the high bitrate stream is, I T a transposition of the indicator matrix for the wireless client and B p The predicted bandwidth of the wireless client at the next time step. Furthermore, b l,d (t now+1 ) the contribution of the multitude of data packets to the optimized server bitrate at the next time step for the low-bitrate stream, b m,d (t now+1 ) is the contribution of the multitude of data packets to the optimized server bitrate at the next time step for the medium bitrate stream and bh,d (t now+1 ) is the contribution of the large number of data packets to the optimized server bitrate at the next time step for the high-bitrate stream. Furthermore, b l,ec (t now ) the contribution of the error correction packets to the optimized server bitrate at the current time step for the low-bitrate stream, b m,ec (t now ) is the contribution of the error correction packets to the optimized server bitrate at the current time step for the medium bitrate stream and b h,ec (t now ) is the contribution of the error correction packages to the optimized server bitrate at the current time step for the high bitrate stream.
[0081] The second limitation can be represented as: bl(tnow+1)∈[blmin,blmax] bm(tnow+1)∈[bmmin,bmmax] bh(tnow+1)∈[bhmin,bhmax] where blmin a lower limit of the low bitrate range is, blmax an upper limit of the low bitrate range is, bmmin a lower limit of the medium bitrate range is, bmmax an upper limit of the medium bitrate range is, bhmin a lower limit of the high bitrate range is and bhmax This is an upper limit of the high bitrate range.
[0082] The optimization goal can be represented as: minbl(tnow+1),bm(tnow+1),bh(tnow+1)[(bl(tnow)−bl(tnow+1))+(bm(tnow)−bm(tnow+1))+(bh(tnow)−bh(tnow+1))+] subject to the first and second restrictions discussed above (i.e., equations 9-15). In a non-restrictive example, the optimization is performed using an optimization algorithm such as gradient descent, Newton's method, genetic algorithms, dynamic programming, linear programming, linear regression, least squares, and / or the like.
[0083] It is understood that the foregoing mathematical representation of the optimization problem is merely exemplary and that alternative representations are also within the scope of this disclosure. It is also understood that the server bitrate can be optimized for each data stream and for each wireless client, such that each individual wireless client receives optimized data streams based on the predicted bandwidth and error-correcting packet set of that individual wireless client. While the foregoing mathematical representation has been discussed for illustration in terms of a single wireless client, an average person will recognize that it is trivial to extend the mathematical representation to be applicable to the simultaneous optimization for a plurality of wireless clients. Following Block 126, Procedure 100 proceeds to Block 128, which is described in Fig. 2B is shown.
[0084] With reference to Fig. Figure 2B shows a continuation of the flowchart for Procedure 100 for increasing network reliability for a vehicle. At Block 128, the total key frame data size is determined. The total key frame data size is the total amount of data that must be transmitted to send a key frame and associated key frame error correction packets from server system 10a to the wireless client. The total key frame data size depends on characteristics of the key frame (e.g., size, resolution, etc.) and the associated key frame error correction packets (i.e., the number of error correction packets generated at Block 122). After Block 128, Procedure 100 proceeds to Block 130.
[0085] At block 130, an estimated key-frame transmission time is determined. The estimated key-frame transmission time is the estimated time required to transmit the key frame and associated error correction packets. In an exemplary embodiment, the estimated key-frame transmission time is determined based on the total key-frame data size determined at block 128 and the predicted bandwidth for the next time step determined at block 104.
[0086] In a non-restrictive example, the estimated key-frame transmission time is given by solving: (∫tsts+tkfBp(u)d(u))=skf for t kf , where t kf The estimated key-frame transmission time is t s the key frame transmission start time is, B p (u) the predicted bandwidth for a time u is and s kfThe total key frame data size determined at block 128. After block 130, procedure 100 continues to block 132.
[0087] At block 132, the server controller 14 adjusts a key-frame transmission start time to determine optimized key-frame transmission timing in response to the finding that the estimated key-frame transmission duration is greater than a predetermined maximum wait time. Within the scope of this disclosure, the predetermined maximum wait time is the maximum time the wireless client can wait to receive a key-frame before video playback is interrupted.
[0088] In a non-restrictive example, the key-frame transmission start time is adjusted such that: if: tkf>tw then t s adjust so that: (∫tsts+twBp(u)d(u))≥skf where t kfthe estimated key-frame transmission time determined at block 130, t w the predetermined maximum waiting time is, t s the key frame transmission start time is, B p (u) the predicted bandwidth for a time u is and s kf the total key-frame data size determined at block 128. In a non-restrictive example, the key-frame transmission start time is within a predetermined range (e.g., t). s ∈ [t s - t a , t s + t a ], where t a a predetermined maximum adjustment amount is adjusted to satisfy equation 19.
[0089] It is understood that, while blocks 128, 130, and 132 are discussed in the context of a video streaming application, procedure 100 and blocks 128, 130, and 132 are also applicable to other data types with important components analogous to key frames. After block 132, procedure 100 transitions to block 134.
[0090] At block 134, the server controller 14 transmits the server packet stream and the one or more error correction packets to the wireless client(s) (e.g., the vehicle system 10b) using the server communication system 18, based at least partially on one or more server transmission characteristics. Within the scope of this disclosure, the one or more server transmission characteristics include the error correction parameters determined at blocks 114 and 120 or 124, the optimized server bit rate determined at block 126, and the optimized key-frame transmission timing determined at block 132. In an exemplary embodiment where the wireless client(s) includes the vehicle system 10b, the vehicle controller 40 receives the server packet stream using the vehicle communication system 46 and uses the one or more error correction packets to perform any necessary error correction.
[0091] In an exemplary embodiment where system 10 and method 100 are used for a videoconferencing application, the vehicle controller 40 uses the display 44 to show a received video stream to the occupant of the vehicle 12. The vehicle controller 40 uses the interior camera 42 to record a video stream and transmit the recorded video stream to the server system 10a. It is understood that method 100 is also applicable for use by the vehicle controller 40 when the recorded video stream is transmitted to the server system 10a. After block 134, method 100 transitions to enter a standby state at block 136.
[0092] In one exemplary embodiment, the method 100 is repeatedly restarted at block 102. In a non-restrictive example, the method 100 leaves the ready state 136 and is restarted on a timer, for example, every three hundred milliseconds.
[0093] System 10 and Method 100 of the present disclosure offer several advantages. Using System 10 and Method 100, the reliability of wireless communication is improved by mitigating bandwidth saturation. Error correction is adjusted to provide optimal redundancy for critical data without overusing available bandwidth. Furthermore, bit rates are optimized to provide optimal quality of service for wireless clients. Additionally, key frame transmission times are adjusted based on a predicted future bandwidth to ensure successful key frame transmission and minimize interference.
Claims
[1] Method for increasing network reliability for a wireless client, the method comprising: Determining a predicted bandwidth of the wireless client at the next time step; Determining a network status, where the network status can be one of the following: a normal network status and a fault event status; Determining an error correction block size based on at least one of the network status and the predicted bandwidth of the wireless client; Adapting one or more server transmission characteristics of a server packet stream based on at least the error correction block size, wherein the server packet stream contains a plurality of data packets; and Transmitting the server packet stream to the wireless client based on at least one or more server transmission characteristics; further including the adjustment of one or more server transmission characteristics: Generating one or more error correction packets for inclusion in the server packet stream based on at least the error correction block size; Determine an optimized server bitrate for the next time step based on at least the error correction block size; and Determining an optimized key-frame transmission timing based at least on the error correction block size. [2] The method of claim 1, wherein determining the error correction block size further comprises: Determining a bandwidth budget based on the predicted bandwidth of the wireless client and the used bit rate of the wireless client using the formula: Bb=Bp−Ba where B b the bandwidth budget is, B pthe predicted bandwidth of the wireless client at the next time step, and B a the bitrate used by the wireless client at the current time step; Determining the probability of package corruption; and Determining the error correction block size based on the bandwidth budget, packet corruption probability, a predetermined maximum number of packets, and the bandwidth used by the client at the current time step using the formula: Ne=max(min(Nw,⌈1Pc⌉),⌊BaBb⌋) where N e the error correction block size is N w The predetermined maximum number of packets to wait for before decoding into video frames, P c The probability of package corruption is B a the bitrate used by the wireless client at the current time step, and B pThe predicted bandwidth of the wireless client at the next time step. [3] Method according to claim 2, wherein determining the probability of package corruption further comprises: Determining the probability of packet corruption using an inhomogeneous Poisson-Point process equation evaluated with a moving time window. [4] Method according to claim 3, wherein determining the probability of package corruption further comprises: Resetting the moving time window to start at a current time in response to determining that the network status is the fault event status. [5] The method of claim 1, wherein generating the one or more error correction packages further comprises: Grouping one or more of the plurality of data packets into a plurality of error-correcting blocks, where the set of data packets in each of the plurality of error-correcting blocks is the error-correcting block size; and Generating one or more error correction packages, wherein each of the one or more error correction packages encodes one of the plurality of error correction blocks. [6] Method according to claim 5, wherein grouping one or more of the plurality of data packets into the plurality of error correction blocks further comprises: Determining a packet importance for each of the multitude of data packets in response to determining that the network state is the fault event state; and Grouping one or more of the multitude of data packets into the multitude of error correction blocks based at least on the packet importance of each of the multitude of data packets in response to determining that the network state is the fault event state. [7] Method according to claim 6, wherein grouping one or more of the plurality of data packets into the plurality of error correction blocks further comprises: Comparing the packet importance of each of the multitude of data packets against a predetermined importance threshold; and Grouping one or more of the multitude of data packets into the multitude of error correction blocks based on at least the packet importance of each of the multitude of data packets, wherein each of the multitude of error correction blocks contains one or more of the multitude of data packets whose packet importance is greater than or equal to the predetermined importance threshold. [8] Method according to claim 1, wherein determining the optimized server bitrate further comprises: Determining the optimized server bitrate for the next time step using an optimization algorithm, wherein the sum of the optimized server bitrate and an error correction bitrate does not exceed the predicted bandwidth of the wireless client, wherein the error correction bitrate is determined based on at least the error correction block size, and wherein any decrease between the optimized server bitrate for a current time step and the optimized server bitrate for the next time step is minimized. [9] Method according to claim 1, wherein determining the optimized key-frame transmission timing further comprises: Determine a total key-frame data size for transmitting a key frame and associated key-frame error-correcting packages based at least on the error-correcting block size; Determine an estimated key-frame transmission time based on at least the total key-frame data size and the predicted bandwidth for the next time step; and Adjusting a key frame transmission start time in response to determining that the estimated key frame transmission duration is greater than a predetermined maximum wait time.
Citation Information
Patent Citations
Self-adaptive forward error correction (FEC) method, device and system
CN101686106A
Adaptive Forward Error Correction
US20080134005A1
Reliable Multicast Broadcast in Wireless Networks
US20140325302A1
Dynamic error correction procedures
US20170338908A1
Methods for implementing adaptive forward error correction and systems thereof
US8856623B1