Adaptive network transmission for high wireless connection reliability
By predicting bandwidth and network conditions, determining the error correction block size, generating error correction packets, and optimizing server transmission characteristics, the reliability problem of wireless clients such as vehicles under network outage events is solved, achieving efficient data transmission and low-latency communication.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- GM GLOBAL TECHNOLOGY OPERATIONS LLC
- Filing Date
- 2025-01-17
- Publication Date
- 2026-06-05
AI Technical Summary
Existing technologies are insufficient in improving the network reliability of wireless clients such as vehicles, especially in the face of network congestion or environmental interference, making it difficult to guarantee the reliability of high-speed and low-latency communication.
By predicting the bandwidth and network status of wireless clients, the error correction block size is determined, and error correction packets are generated to optimize server transmission characteristics, including adjusting the server bit rate and key frame transmission timing, thereby improving network reliability using forward error correction technology.
It improves the reliability of data transmission for wireless clients such as vehicles during network outages, ensuring the integrity of critical data and low-latency communication, thus enhancing the user experience.
Smart Images

Figure CN122160009A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to systems and methods for ensuring the reliability of network communications. Background Technology
[0002] Cellular communication technologies can be used to provide network connectivity for wireless devices such as smartphones and vehicles. Cellular communication can provide bandwidth for tasks such as sensor fusion, vehicle-to-everything (V2X) communication, remote diagnostics, and telecommunications. Reliability protocols can be utilized to ensure reliable communication in wireless applications. Reliability protocols can include error correction techniques configured to maintain data integrity during transmission tasks. For example, error detection, packet retransmission, and redundancy checks can be used. Multiple protocols can be cascaded to support high-speed and low-latency communication for critical applications, such as real-time control of vehicle systems or in-vehicle telecommunications (e.g., video conferencing). Cellular communication utilizing reliability protocols allows wireless clients to exchange data under challenging conditions such as network congestion or environmental interference.
[0003] While systems and methods for improving network communication reliability have achieved their intended purpose, new and improved systems and methods are still needed to enhance network reliability for wireless clients such as vehicles. Summary of the Invention
[0004] According to several aspects, a method for improving network reliability for a wireless client is provided. The method may include determining the predicted bandwidth of the wireless client in the next time step. The method may also include determining the network state. The network state includes one of the following: a normal network state and an outage event state. The method may further include determining an error correction block size based at least in part on the network state and the predicted bandwidth of the wireless client. The method may further include adjusting one or more server transport characteristics of a server packet stream based at least in part on the error correction block size. The server packet stream includes multiple data packets. The method may further include transmitting the server packet stream to the wireless client based at least in part on one or more server transport characteristics.
[0005] In another aspect of this disclosure, determining the error correction block size may also include determining the bandwidth budget based at least in part on the predicted bandwidth of the wireless client using the following equation:
[0006] B b =B p -B a
[0007] Among them, B b For bandwidth budget, B p The predicted bandwidth for the wireless client in the next time step, and B aThe bit rate utilized by the wireless client at the current time step. Determining the error correction block size may also include determining the packet corruption probability. Determining the error correction block size may also include using the following equation, based at least in part on the bandwidth budget and the packet corruption probability, to determine the error correction block size:
[0008]
[0009] Where, N e For the error correction block size, N w P is the predetermined maximum number of packets to wait before decoding into video frames. c For the probability of grouping damage, B a B is the bit rate used by the wireless client at the current time step. p The predicted bandwidth for the wireless client in the next time step.
[0010] In another aspect of this disclosure, determining the probability of group damage may also include using a non-homogeneous Poisson point process equation evaluated using a moving time window to determine the probability of group damage.
[0011] In another aspect of this disclosure, determining the probability of packet corruption may further include resetting the movement time window to begin at the current time in response to determining that the network state is an interruption event state.
[0012] In another aspect of this disclosure, adjusting one or more server transport characteristics may further include: generating one or more error-corrected packets to include in the server packet stream, at least in part based on the error-corrected block size. Adjusting one or more server transport characteristics may further include determining an optimized server bit rate for the next time step, at least in part based on the error-corrected block size. Adjusting one or more server transport characteristics may further include determining optimized keyframe transmission timing, at least in part based on the error-corrected block size.
[0013] In another aspect of this disclosure, generating one or more error-correcting packets may further include: combining one or more of the plurality of data packets into a plurality of error-correcting blocks. The number of data packets in each of the plurality of error-correcting blocks is the error-correcting block size. Generating one or more error-correcting packets may further include generating one or more error-correcting packets. Each of the one or more error-correcting packets encodes one of the plurality of error-correcting blocks.
[0014] In another aspect of this disclosure, combining one or more of the plurality of packets into a plurality of error correction blocks may further include: determining the packet importance of each of the plurality of data packets in response to determining that the network state is an interruption event state. Combining one or more of the plurality of packets into a plurality of error correction blocks may further include, in response to determining that the network state is an interruption event state, combining one or more of the plurality of data packets into a plurality of error correction blocks at least in part based on the packet importance of each of the plurality of data packets.
[0015] In another aspect of this disclosure, combining one or more of the plurality of data groups into a plurality of error correction blocks may further include: comparing the group importance of each of the plurality of data groups with a predetermined importance threshold. Combining one or more of the plurality of data groups into a plurality of error correction blocks may further include combining one or more of the plurality of data groups into a plurality of error correction blocks at least in part based on the group importance of each of the plurality of data groups. Each of the plurality of error correction blocks includes one or more of the plurality of data groups having a group importance greater than or equal to the predetermined importance threshold.
[0016] In another aspect of this disclosure, determining the optimized server bit rate may further include using an optimization algorithm to determine the optimized server bit rate for the next time step. The sum of the optimized server bit rate and the error correction bit rate does not exceed the predicted bandwidth of the wireless client. The error correction bit rate is determined at least in part based on the error correction block size. The reduction between the optimized server bit rate for the current time step and the optimized server bit rate for the next time step is minimized.
[0017] In another aspect of this disclosure, determining the optimized keyframe transmission timing may further include: determining the total keyframe data size for transmitting the keyframe and associated keyframe error correction packets based at least in part on the error correction block size. Determining the optimized keyframe transmission timing may further include determining the estimated keyframe transmission duration based at least in part on the total keyframe data size and the predicted bandwidth for the next time step. Determining the optimized keyframe transmission timing may further include: adjusting the keyframe transmission start time in response to determining that the estimated keyframe transmission duration is greater than a predetermined maximum waiting time.
[0018] According to several aspects, a system for improving network reliability for a vehicle is provided. The system may include a server communication system that wirelessly communicates with one or more wireless clients. The one or more wireless clients include the vehicle. The system may also include a server controller that electrically communicates with the server communication system. The server controller is programmed to determine a predicted bandwidth for the vehicle in the next time step. The server controller is also programmed to determine the network state of the vehicle. The network state includes one of the following: a normal network state and an interruption event state. The server controller is also programmed to determine an error correction block size based at least in part on the network state and the predicted bandwidth of the vehicle. The server controller is also programmed to generate one or more error-corrected packets for a server packet stream based at least in part on the error correction block size. The server packet stream includes multiple data packets. The server controller is also programmed to transmit the server packet stream and the one or more error-corrected packets to the vehicle using the server communication system.
[0019] In another aspect of this disclosure, in order to determine the network status of the vehicle, the server controller is also programmed to determine the network status as an interruption event state in response to determining that the vehicle has switched radio base stations in the current time step or predicting that the vehicle will switch radio base stations in the next time step.
[0020] In another aspect of this disclosure, in order to determine the error correction block size, the server controller is also programmed to determine the bandwidth budget based at least in part on the vehicle's predicted bandwidth using the following equation:
[0021] B b =B p -B a
[0022] Among them, B b For bandwidth budget, B p B is the predicted bandwidth for the vehicle in the next time step. a This represents the bit rate utilized by the vehicle at the current time step. To determine the error correction block size, the server controller is further programmed to determine the packet corruption probability using a non-homogeneous Poisson point process equation evaluated using a moving time window. To determine the error correction block size, the server controller is also programmed to determine the error correction block size based at least in part on the bandwidth budget and the packet corruption probability using the following equation:
[0023]
[0024] Where, N e For the error correction block size, N w P is the predetermined maximum number of packets to wait before decoding into video frames. c For the probability of grouping damage, B a B represents the bit rate utilized by the vehicle at the current time step.p The predicted bandwidth for the vehicle at the next time step.
[0025] In another aspect of this disclosure, in order to determine the probability of packet corruption, the server controller is also programmed to reset the moving time window to start at the current time in response to determining that the network state is in an interruption event state.
[0026] In another aspect of this disclosure, in order to generate one or more error-correcting packets, the server controller is also programmed to combine one or more of the plurality of data packets into a plurality of error-correcting blocks. The number of data packets in each of the plurality of error-correcting blocks is the error-correcting block size. In order to generate one or more error-correcting packets, the server controller is also programmed to generate one or more error-correcting packets. Each of the one or more error-correcting packets encodes one of the plurality of error-correcting blocks.
[0027] In another aspect of this disclosure, in order to combine one or more of the multiple data packets into multiple error correction blocks, the server controller is also programmed to determine the packet importance of each of the multiple data packets in response to determining that the network state is an interruption event state. In order to combine one or more of the multiple data packets into multiple error correction blocks, the server controller is also programmed to combine one or more of the multiple data packets into multiple error correction blocks at least in part based on the packet importance of each of the multiple data packets in response to determining that the network state is an interruption event state.
[0028] In another aspect of this disclosure, in order to combine one or more of the plurality of data packets into a plurality of error correction blocks, the server controller is further programmed to compare the group importance of each of the plurality of data packets with a predetermined importance threshold. To combine one or more of the plurality of data packets into a plurality of error correction blocks, the server controller is also programmed to combine one or more of the plurality of data packets into a plurality of error correction blocks at least in part based on the group importance of each of the plurality of data packets. Each of the plurality of error correction blocks includes one or more of the plurality of data packets having a group importance greater than or equal to the predetermined importance threshold.
[0029] According to several aspects, a method for improving network reliability for vehicles is provided. The method may include determining the predicted bandwidth of the vehicle in the next time step. The method may also include determining the network state. The network state includes one of the following: a normal network state and an outage event state. The outage event state indicates that the vehicle has switched radio base stations in the current time step or that the vehicle is predicted to switch radio base stations in the next time step. The method may further include determining an error correction block size based at least in part on the network state and the predicted bandwidth of the vehicle. The method may further include generating one or more error correction packets to include in a server packet stream, based at least in part on the error correction block size. The server packet stream includes multiple data packets. The method may further include transmitting the server packet stream, including one or more error correction packets, to the vehicle.
[0030] In another aspect of this disclosure, determining the error correction block size may also include determining the bandwidth budget using at least in part the predicted bandwidth of the vehicle:
[0031] B b =B p -B a
[0032] Among them, B b For bandwidth budget, B p The bandwidth predicted for the vehicle in the next time step, and B a This represents the bit rate utilized by the vehicle at the current time step. Determining the error correction block size may also include determining the packet corruption probability using a non-homogeneous Poisson point process equation evaluated using a moving time window. Determining the error correction block size may also include resetting the moving time window to start at the current time in response to determining that the network state is an outage event state. Determining the error correction block size may also include determining the error correction block size using the following equation, based at least in part on the bandwidth budget and the packet corruption probability:
[0033]
[0034] Where, N e For the error correction block size, N w P is the predetermined maximum number of packets to wait before decoding into video frames. c For the probability of grouping damage, B a B represents the bit rate used by the vehicle at the current time step. p The bandwidth predicted for the vehicle at the next time step.
[0035] In another aspect of this disclosure, generating one or more error-correcting packets may further include determining the packet importance of each of a plurality of data packets in response to determining that the network state is an outage event state. Generating one or more error-correcting packets may further include comparing the packet importance of each of the plurality of data packets with a predetermined importance threshold. Generating one or more error-correcting packets may further include combining one or more of the plurality of data packets into a plurality of error-correcting blocks, at least in part based on the packet importance of each of the plurality of data packets. The number of data packets in each of the plurality of error-correcting blocks is the error-correcting block size. Each of the plurality of error-correcting blocks includes one or more of the plurality of data packets having a packet importance greater than or equal to the predetermined importance threshold.
[0036] Further areas of application will become apparent from the description provided herein. It should be understood that these descriptions and specific examples are for illustrative purposes only and are not intended to limit the scope of this disclosure. Attached Figure Description
[0037] The accompanying drawings described herein are for illustrative purposes only and are not intended to limit the scope of this disclosure in any way.
[0038] Figure 1 This is a schematic diagram of a system for improving network reliability for wireless devices (e.g., vehicles) according to an exemplary embodiment;
[0039] Figure 2A This is a flowchart of a method for improving network reliability of wireless devices (e.g., vehicles) according to an exemplary embodiment; and
[0040] Figure 2B This is according to an exemplary embodiment. Figure 2A The continuation of the flowchart. Detailed Implementation
[0041] The following description is merely exemplary in nature and is not intended to limit this disclosure, its application, or its uses.
[0042] In various aspects of this disclosure, including vehicles, wireless clients may move through the environment at high speeds, resulting in reduced reliability and consistency of wireless (e.g., cellular) connections. This can lead to a degraded user experience for some applications, particularly those that rely on real-time data streaming, such as video streaming and video conferencing. Therefore, this disclosure provides new and improved systems and methods for improving network reliability for wireless clients, such as vehicles.
[0043] refer to Figure 1The diagram illustrates a system for improving network reliability for vehicles, and the system is generally indicated by reference numeral 10. System 10 is shown together with an exemplary vehicle 12. Although a passenger vehicle is shown, it should be understood that vehicle 12 can be any type of vehicle without departing from the scope of this disclosure. System 10 generally includes a server system 10a and a vehicle system 10b.
[0044] Server system 10a includes a server controller 14 that is in electrical communication with server database 16 and server communication system 18. In a non-limiting example, server system 10a is located in a server farm, data center, etc., and is connected to the Internet.
[0045] Server controller 14 is used to implement a method 100 for improving network reliability of a vehicle, as described below. Server controller 14 includes at least one server processor 20 and a non-transitory computer-readable server storage device or server medium 22. Server processor 20 may 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 server controller 14, a semiconductor-based microprocessor (in the form of a microchip or chipset), a macroprocessor, a combination thereof, or generally a device for executing instructions.
[0046] The computer-readable server storage device or server medium 22 may include volatile and non-volatile storage devices such as read-only memory (ROM), random access memory (RAM), and keep-alive memory (KAM). KAM is a persistent or non-volatile memory that can be used to store various operational variables while the server processor 20 is powered off. The computer-readable storage device or server medium 22 may be implemented using multiple memory devices, such as programmable read-only memory (PROM), electrical PROM (EPROM), electrically erasable PROM (EEPROM), flash memory, or another electrical, magnetic, optical, or combined memory device capable of storing data, some of which represents executable instructions. The server controller 14 may also include multiple controllers that are electrically in communication with each other.
[0047] Server controller 14 communicates electrically with server database 16 and server communication system 18. In exemplary embodiments, electrical communication is established using, for example, a CAN network, a FLEXRAY network, a local area network (e.g., WiFi, Ethernet), a Serial Peripheral Interface (SPI) network, or a Peripheral Component Interconnect (PCI). It should be understood that various other wired and wireless technologies and communication protocols used for communicating with server controller 14 are within the scope of this disclosure. It should also be understood that, within the scope of this disclosure, electrical communication also includes the transfer of power and / or energy between electrical devices (e.g., using conductive wires and / or wireless power transmission technologies).
[0048] Server database 16 is used to store and / or buffer data for transfer to external devices. In one exemplary embodiment, server database 16 includes one or more mass storage devices, such as hard disk drives, tape drives, magneto-optical drives, optical disks, solid-state drives, and / or other devices operable to store 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, using a redundant array of independent disks (RAID). In a non-limiting example, server controller 14 may execute software such as a database management system (DBMS), thereby allowing the organization and access of data stored on the one or more mass storage devices.
[0049] Server communication system 18 is used by server controller 14 to communicate with other systems outside server system 10a (e.g., wireless clients such as vehicle system 10b).
[0050] In some embodiments, the server communication system 18 is a wireless communication system configured to communicate via a wireless local area network (WLAN) using the IEEE 802.11 standard, or by using cellular data communication (e.g., using GSMA standards such as SGP.02, SGP.22, SGP.32, etc.). Therefore, the server communication system 18 may also include an embedded universal integrated circuit card (eUICC) configured to store at least one cellular connectivity configuration profile (e.g., an embedded subscriber identity module (eSIM) profile).
[0051] Server communication system 18 is also configured to communicate via personal area network (e.g., Bluetooth), near field communication (NFC), and / or any other type of radio frequency communication. However, other or alternative communication methods, such as Dedicated Short Range Communication (DSRC) channels and / or mobile telecommunications protocols based on 3GPP standards, are also considered within the scope of this disclosure. A DSRC channel refers to a unidirectional or bidirectional short- to medium-range wireless communication channel designed specifically for automotive use, along with a set of corresponding protocols and standards. 3GPP refers to a partnership between several standards organizations that develop protocols and standards for mobile telecommunications. 3GPP standards are structured as “versions.” Therefore, communication methods based on 3GPP versions 14, 15, 16, and / or future 3GPP versions are considered within the scope of this disclosure.
[0052] It should be understood that, without departing from the scope of this disclosure, the server communication system 18 may be integrated with the server controller 14 (e.g., on the same circuit board as the server controller 14 or otherwise as part of the server controller 14). Furthermore, although in Figure 1 As not shown, it should be understood that wireless communication between the server communication system 18 and one or more wireless clients can be facilitated by other infrastructure, such as a cellular network including cellular base stations.
[0053] In one exemplary embodiment, server system 10a wirelessly communicates with one or more wireless clients. In one non-limiting example, the one or more wireless clients include computing devices, such as laptop computer 30. In one non-limiting example, the one or more wireless clients also include vehicle system 10b. In one exemplary embodiment, server system 10a uses server communication system 18 to utilize forward error correction (FEC) to transmit data to one or more wireless clients. In one non-limiting example, the data includes one or more video streams for a video conferencing application. FEC allows for the correction of errors in data packets without retransmitting the data. The data transmitted by server system 10a to one or more wireless clients is encapsulated in multiple data packets. In one non-limiting example, each video frame of one or more video streams is encapsulated in one or more data packets.
[0054] One or more groups of data packets, referred to as 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).
[0055] The number of data packets in each error-correcting block (called the error-correcting block size) controls the robustness of error correction and the amount of additional bandwidth consumed by error correction. As the error-correcting block size decreases, the robustness of error correction (i.e., the number of data packets that might be lost / corrupted without actual data loss) increases, and the amount of additional bandwidth consumed by error correction increases. As the error-correcting block size increases, the robustness of error correction decreases, and the amount of additional bandwidth consumed by error correction decreases.
[0056] The generated error-corrected packets, along with multiple data packets, are transmitted as a packet stream, referred to as a server packet stream, to one or more wireless clients. The one or more wireless clients then receive the network transmission comprising the multiple data packets and the generated error-corrected packets. If one or more of the multiple data packets are lost or corrupted during transmission, the one or more wireless clients use the information in the error-corrected packets to reconstruct the lost or corrupted data packets. It should be understood that the foregoing description of forward error correction (FEC) is merely exemplary in nature, and the FEC process may include various additional steps, and FEC may be implemented using various other systems, methods, protocols, and / or technologies without departing from the scope of this disclosure.
[0057] Additionally, in a non-limiting example, server system 10a provides multiple simultaneous data streams (e.g., using cascading or scalable video coding protocols) to wireless clients with different bitrates. For example, server system 10a can provide high bitrate streams in a high bitrate range (e.g., 2 to 3 megabits per second), medium bitrate streams in a medium bitrate range (e.g., 1 to 1.5 megabits per second), and low bitrate streams in 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.
[0058] Continue to refer to Figure 1 The vehicle system 10b includes a vehicle controller 40 that is in electrical communication with an interior camera 42, a display 44 and a vehicle communication system 46.
[0059] The vehicle controller 40 includes at least one processor 48 and a non-transitory computer-readable storage device or medium 50. The processor 48 may be a custom or commercially available processor, a central processing unit (CPU), a graphics processing unit (GPU), an auxiliary processor among a plurality of processors associated with the vehicle controller 40, a semiconductor-based microprocessor (in the form of a microchip or chipset), a macroprocessor, a combination thereof, or generally a device for executing instructions.
[0060] Computer-readable storage device or medium 50 may include volatile and non-volatile storage devices such as read-only memory (ROM), random access memory (RAM), and keep-alive memory (KAM). KAM is a persistent or non-volatile memory that can be used to store various operational variables while the processor 48 is powered off. Computer-readable storage device or medium 50 may be implemented using multiple storage devices, such as programmable read-only memory (PROM), electrical PROM (EPROM), electrically erasable PROM (EEPROM), flash memory, or another electrical, magnetic, optical, or combined memory device capable of storing data, some of which represents executable instructions used by the vehicle controller 40 to control various systems of the vehicle 12.
[0061] The vehicle controller 40 may also include multiple controllers that are electrically communicating with each other. The vehicle controller 40 may interconnect with additional systems and / or controllers of the vehicle 12, thereby allowing the vehicle controller 40 to access data such as the speed, acceleration, braking and steering angle of the vehicle 12.
[0062] The vehicle controller 40 communicates electrically with the interior camera 42, display 44, and vehicle communication system 46. In one exemplary embodiment, an electrical network is established using, for example, a CAN network, a FLEXRAY network, a local area network (e.g., WiFi, Ethernet, etc.), a Serial Peripheral Interface (SPI) network, etc. It should be understood that various other wired and wireless technologies and communication protocols used for communicating with the vehicle controller 40 are within the scope of this disclosure. It should also be understood that, within the scope of this disclosure, electrical communication also includes the transfer of power and / or energy between electrical devices (e.g., using conductive wires and / or wireless power transmission technologies).
[0063] An interior camera 42 is used to capture images and / or videos of the environment inside the vehicle 12. In one exemplary embodiment, the interior camera 42 is a camera and / or video camera positioned to observe the environment inside the passenger compartment of the vehicle 12. In one example, the interior camera 42 is attached to the interior of the vehicle 12, for example, attached to the headliner of the vehicle 12, having a field of view toward one or more seats of the vehicle 12. It should be understood that cameras having various sensor types, including, for example, charge-coupled device (CCD) sensors, complementary metal-oxide-semiconductor (CMOS) sensors, and / or high dynamic range (HDR) sensors, are all within the scope of this disclosure. Furthermore, cameras having various lens types, including, for example, wide-angle lenses and / or narrow-angle lenses, are also within the scope of this disclosure.
[0064] Display 44 is used to provide information to the occupants of vehicle 12. Within the scope of this disclosure, occupants include the driver and / or passengers of vehicle 12. In one exemplary embodiment, display 44 is a human-machine interface (HMI) located within the occupant's field of vision and capable of displaying text, graphics, and / or images. It should be understood that HMI display systems including LCD displays, LED displays, etc., are within the scope of this disclosure. Further exemplary embodiments in which display 44 is disposed in a rearview mirror are also within the scope of this disclosure. In another exemplary embodiment, display 44 includes a head-up display (HUD) configured to provide information to the occupants by projecting text, graphics, and / or images onto the windshield of vehicle 12. The text, graphics, and / or images are reflected by the windshield of vehicle 12 and are visible to the occupants without taking their eyes off the road in front of vehicle 12. In another exemplary embodiment, display 44 includes an augmented reality head-up display (AR-HUD). AR-HUD is a type of HUD configured to enhance the occupant's view of the road ahead of vehicle 12 by overlaying text, graphics, and / or images onto physical objects in the environment surrounding vehicle 12 within the occupant's field of view. In one exemplary embodiment, the occupant can interact with display 44 using a human-machine interface device (HID), including, for example, a touchscreen, electromechanical switch, capacitive switch, knob, etc. It should be understood that other systems for displaying information to the occupants of vehicle 12 are also within the scope of this disclosure.
[0065] The vehicle controller 40 uses the vehicle communication system 46 to communicate with other systems outside the vehicle 12. For example, the vehicle communication system 46 includes the ability to communicate with vehicles (“V2V” communication), infrastructure (“V2I” communication), remote systems at remote call centers (e.g., GENERAL MOTORS’ ON-STAR), and / or personal devices. Generally, the term vehicle-to-everything (“V2X” communication) refers to communication between the vehicle 12 and any remote system (e.g., vehicles, infrastructure, and / or remote systems).
[0066] In some embodiments, the vehicle communication system 46 is a wireless communication system configured to communicate via a wireless local area network (WLAN) using the IEEE 802.11 standard or by using cellular data communication (e.g., using GSMA standards such as SGP.02, SGP.22, SGP.32, etc.). Therefore, the vehicle communication system 46 may also include an embedded universal integrated circuit card (eUICC) configured to store at least one cellular connectivity configuration profile, such as an embedded subscriber identity module (eSIM) profile.
[0067] The vehicle communication system 46 is also configured to communicate via a personal area 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 Dedicated Short Range Communication (DSRC) channels and / or mobile telecommunications protocols based on 3GPP standards, are also considered within the scope of this disclosure. A DSRC channel refers to a unidirectional or bidirectional short- to medium-range wireless communication channel designed specifically for automotive use, along with a corresponding set of protocols and standards. 3GPP refers to a partnership among several standards organizations that develop protocols and standards for mobile telecommunications. 3GPP standards are structured as “versions.” Therefore, communication methods based on 3GPP versions 14, 15, 16, and / or future 3GPP versions are considered within the scope of this disclosure.
[0068] Therefore, the vehicle communication system 46 may include one or more antennas and / or a communication transceiver for receiving and / or transmitting signals such as Cooperative Sensing Messages (CSM). The vehicle communication system 46 is configured to wirelessly communicate information between vehicle 12 and another vehicle. Furthermore, the vehicle communication system 46 is configured to wirelessly communicate information between vehicle 12 and infrastructure or other vehicles. It should be understood that, without departing from the scope of this disclosure, 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 as part of the vehicle controller 40).
[0069] refer to Figure 2AA flowchart of a method 100 for improving network reliability in a vehicle is shown. Method 100 begins at block 102 and proceeds to block 104. In block 104, a predicted bandwidth for a wireless client is determined. Within the scope of this disclosure, the wireless client may include a vehicle 12 and / or a mobile device (e.g., a smartphone, laptop) communicating wirelessly (e.g., cellular) with a server system 10a via wireless infrastructure (e.g., a cellular base station). Within the scope of this disclosure, the predicted bandwidth is a predicted future bandwidth of the wireless client based on factors such as the wireless signal environment, wireless signal strength, network congestion, etc. In a non-limiting example, the predicted bandwidth is determined at one or more future time steps (e.g., the next time step). In one exemplary embodiment, the predicted bandwidth is determined using, for example, the system and method discussed in U.S. Application No. 18 / 494,189, filed October 25, 2023, entitled “Predicting 5G User Plane Using Control Plane Features and Granger Causality for Feature Selection,” the entire contents of which are incorporated herein by reference. Following box 104, method 100 proceeds to box 106.
[0070] In block 106, server controller 14 determines the network state of the wireless client. Within the scope of this disclosure, network state includes one of the following: normal network state and interruption event state. Within the scope of this disclosure, a normal network state indicates normal operation of the wireless connection between server system 10a and vehicle system 10b, for example, having nominal signal strength, nominal bandwidth, nominal latency, etc. Within the scope of this disclosure, an interruption event state indicates an interruption of control plane operation of the wireless connection between server system 10a and vehicle system 10b, resulting in, for example, reduced bandwidth, reduced signal strength, increased latency, etc.
[0071] An interruption event state is caused by an interruption event. In a non-limiting example, an interruption event includes a wireless client switching a base station. In an exemplary embodiment, the network state is determined to be an interruption event state in response to determining that a wireless client (e.g., vehicle 12) has switched a wireless base station in a previous time step, in the current time step, or that the wireless client is expected to switch a wireless base station in the next time step. In a non-limiting example, base station switching can be predicted based on the wireless client's position and heading relative to nearby base stations.
[0072] If the network status of the wireless client is determined to be an interrupted event state, method 100 proceeds to box 108, as will be discussed in more detail below. If the network status of the wireless client is determined to be a normal network state, method 100 proceeds to box 110.
[0073] In box 110, server controller 14 determines the 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 a wireless client (e.g., vehicle system 10b) will be corrupted. Within the scope of this disclosure, corruption refers to degradation of network packets due to inherent limitations of wireless networking protocols (e.g., due to wireless interference, encoding / decoding errors, and / or other probabilistic processes). Degradation or loss of data packets caused by network congestion (i.e., network traffic exceeding available network bandwidth) is not considered "corruption" within the scope of this disclosure. In one exemplary embodiment, a non-homogeneous Poisson point process equation evaluated using a moving-time window is used to determine the packet corruption probability:
[0074]
[0075] Among them, P c The probability that network packets transmitted from server system 10a to wireless client (e.g., vehicle system 10b) will be corrupted, where t0 is the start time of the movement time window, and t now Let n be the current time, and n be the time interval [t0, t1]. now The number of corrupted network packets observed within ) Pr{N(t0,t now )=n+1} is the time interval [t0,t now The probability of exactly n+1 corrupted network packets occurring within t means that in t now Another corrupted network packet is observed at time t, and λ(t) is an intensity function representing the instantaneous probability that the network packet will be corrupted at time t (e.g., based on the time interval [t0, t1]). now (determined by observing network packet corruption in ]), and Λ(t0,t now ) represents the time interval [t0, t now The cumulative strength function is the expected total number of damaged network packets that will occur in the network.
[0076] In a non-limiting example, the movement time window has a predetermined length (e.g., five seconds) that can be adjusted based on, for example, network conditions. In some cases, the movement time window can be "reset" to start at the current time, as will be discussed in more detail below. It should be understood that other methods for determining the probability of packet corruption (including, for example, machine learning methods) are also within the scope of this disclosure. Following box 110, method 100 proceeds to box 112, as will be discussed in more detail below.
[0077] In block 108, server controller 14 resets the mobility time window in response to determining at block 106 that the network state is an interruption event state. An interruption event can cause changes in wireless connectivity performance; therefore, resetting the mobility time window makes it advantageous to consider connectivity performance after the interruption event. In one exemplary embodiment, t0 is time-shifted forward to the interruption event (e.g., t0 moves to the time of the cellular handover event). After block 108, method 100 proceeds to block 110 as described above, but where the mobility time window includes the time after the interruption event (i.e., such that t0 ≥ t). d , where t d (The time of the interruption event).
[0078] In box 112, server controller 14 determines the bandwidth budget for the wireless client. Within the scope of this disclosure, the bandwidth budget is the predicted unused bandwidth of the wireless client in the next time step. In one exemplary embodiment, the bandwidth budget is calculated using the following formula:
[0079] B b =B p -B a (3)
[0080] Among them, B b For bandwidth budget, B p For the predicted bandwidth of the wireless client at the next time step determined in box 104, and B a The bit rate used by the wireless client in the current time step. In a non-limiting example, the bit rate utilized by the wireless client in the current time step is known based on the bit rate of the data currently being transmitted from server system 10a to the wireless client. After box 112, method 100 proceeds to box 114.
[0081] In box 114, server controller 14 determines the error correction block size. Within the scope of this disclosure, the error correction block size is the number 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 at least in part based on the bandwidth budget determined at box 112 and the packet corruption probability determined at box 110. In a non-limiting example, the error correction block size is determined using the following formula:
[0082]
[0083] Where, N e For the error correction block size, N wP represents the predetermined maximum number of packets to wait before further data processing (e.g., decoding into video frames, based on a predetermined data lag tolerance of the wireless client). c B represents the probability of group damage determined at box 110. a For the bit rate utilized by the wireless client at the current time step, as determined at box 112, and B p The predicted bandwidth for the wireless client at the next time step, as determined in box 104. After box 114, method 100 proceeds to box 116.
[0084] In box 116, server controller 14 determines the network status of the wireless client, as discussed above with reference to box 106. If the network status of the wireless client is determined to be an interrupt event state, method 100 proceeds to box 118, as will be discussed in more detail below. If the network status of the wireless client is determined to be a normal network state, method 100 proceeds to box 120.
[0085] In block 120, server controller 14 combines one or more of the multiple packets into multiple 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 one exemplary embodiment, each of the multiple data packets is included in the multiple error correction blocks. In another exemplary embodiment, predetermined portions of the multiple data packets are included in the multiple error correction blocks, and data packets not included are not protected against error correction. Following block 120, method 100 proceeds to block 122, as will be discussed in more detail below.
[0086] In block 118, server controller 14 determines the packet importance of each of a plurality of data packets in response to determining that the network state is an interruption event state. Within the scope of this disclosure, packet importance describes the significance of a particular data packet in the context of a server packet stream. For example, in the context of video streaming, a data packet encoding a keyframe might be considered to have high packet importance because the keyframe is essential for proper playback of the video stream. In one exemplary embodiment, packet importance is described by the following formula:
[0087] I " =αe -βα (5)
[0088] Among them, I p For group importance, α is a predetermined constant, e is a mathematical constant (sometimes called Napier's constant), and β is a variable adjusted based on the content of the data grouping.
[0089] In one non-limiting example, for a data packet encoding a keyframe, the packet importance is defined by Equation 5, where β = 1. In another non-limiting example, for a data packet encoding a temporal layer 1 incremental frame, the packet importance is defined by Equation 5, where β = 2. In another non-limiting example, for a data packet encoding a temporal layer 2 incremental frame, the packet importance is defined by Equation 5, where β = 3. It should be understood that packet importance can be determined based on other factors besides the video stream used for different types of data, including, for example, importance information encoded in the data packet itself. Following box 118, method 100 proceeds to box 124.
[0090] In block 124, server controller 14 combines one or more of a plurality of data packets into a 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 one exemplary embodiment, one or more of the plurality of data packets are combined into a plurality of error correction blocks based at least in part on the group importance of each of the plurality of data packets determined at block 118.
[0091] In one non-limiting example, the importance of each of the plurality of data groups is compared with a predetermined importance threshold, and each of the plurality of error correction blocks includes one or more of the plurality of data groups having a group importance greater than or equal to the predetermined importance threshold. In another non-limiting example, each of the plurality of error correction blocks includes only data groups having a group importance greater than or equal to the predetermined importance threshold. Data groups not included in the plurality of error correction blocks are not protected against error correction. After box 124, method 100 proceeds to box 122.
[0092] In box 122, server controller 14 generates one or more error-correcting packets and includes them in a server packet stream. Each of the one or more error-correcting packets encodes one of a plurality of error-correcting blocks based on the result of box 120 or box 124. After box 122, method 100 proceeds to box 126.
[0093] In block 126, 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 server system 10a uses it to transmit server data streams to wireless clients. In one exemplary embodiment, server controller 14 optimizes the bitrate within the range discussed above (e.g., high bitrate range, medium bitrate range, and low bitrate range) based at least in part on the number of error correction packets generated at block 122.
[0094] In a non-restrictive example, an optimization algorithm with one or more constraints is used to determine the optimized server bitrate for each flow. The first constraint is that the sum of the optimized server bitrate and the error correction bitrate (based on the number of error correction packets generated at box 122, which is based on the error correction block size determined at box 114) does not exceed the predicted bandwidth of the wireless client determined at box 104. The second constraint is that the optimized server bitrate for each flow must be within the range of bitrates used for that flow. The server bitrate for each flow is optimized, for example, to minimize the decrease between the optimized server bitrate for the current time step and the optimized server bitrate for the next time step.
[0095] In a non-restrictive example, the selected server data stream for each wireless client can be represented as a matrix:
[0096]
[0097] in:
[0098] l,m,h∈{0,1} (7)
[0099] l+m+h=1 (8)
[0100] Here, I is an indicator matrix that indicates which server data stream the wireless client selects, l corresponds to the low bit rate stream, m corresponds to the medium bit rate stream, and h corresponds to the high bit rate stream. The value l=1 indicates the selection of the low bit rate stream, m=1 indicates the selection of the medium bit rate stream, and h=1 indicates the selection of the high bit rate stream.
[0101] The first constraint can be expressed as:
[0102] (b l (t now+1 )+b m (t now+1 )+b n (t now+1 ))I T ≤B p (9)
[0103] in:
[0104] b l (t now+1 )=b l,d (t now+1 )+b l,ec (t now (10)
[0105] b m (t now+1 )=b m,d (t now+1)+b m,ec (t now (11)
[0106] b h (t now+1 )=b h,d (t now+1 )+b h,ec (t now (12)
[0107] Among them, b l (t now+1 b is the optimized server bitrate for the low bitrate stream in the next time step. m (t now+1 b is the optimized server bitrate for the medium bitrate stream in the next time step. h (t now+1 For the optimized server bitrate stream used in the next time step, I T For the transpose of the indicator matrix used for wireless clients, and B p This is the predicted bandwidth for the wireless client in the next time step. Additionally, b l,d (t now+1 b represents the contribution of multiple data packets to the optimized server bitrate for low bitrate streaming at the next time step. m,d (t now+1 ) represents the contribution of multiple data packets at the next time step to the optimized server bitrate for medium bitrate streaming, and b h,d (t now+1 This represents the contribution of multiple packets to the optimized server bitrate for high bitrate streaming in the next time step. Additionally, b l,ec (t now b represents the contribution of the error-corrected packet at the current time step to the optimized server bit rate for low bit rate streaming. m,ec (t now ) represents the contribution of the error-correcting packet at the current time step to the optimized server bit rate for medium bit rate streams, and b h,ec (t now This represents the contribution of the error-correcting packet at the current time step to the optimized server bit rate used for high bit rate streams.
[0108] The second constraint can be expressed as:
[0109]
[0110] in, This is the lower limit of the low bit rate range. This represents the upper limit of the low bit rate range. This is the lower limit of the medium bit rate range. This represents the upper limit of the medium bit rate range. This is the lower limit of the high bit rate range. And it is the upper limit of the high bit rate range.
[0111] The optimization objective can be expressed as:
[0112]
[0113] It is subject to the first and second constraints discussed above (i.e., Equations 9-15). In an unrestricted example, optimization is performed using optimization algorithms such as gradient descent, Newton's method, genetic algorithm, dynamic programming, linear programming, linear regression, least squares, etc.
[0114] It should be understood that the preceding mathematical representation of the optimization problem is merely exemplary in nature, and alternative representations are also within the scope of this disclosure. It should also be understood that the server bitrate can be optimized for each data stream and for each wireless client, such that each individual wireless client receives the optimized data stream based on the predicted bandwidth and number of error correction packets for that individual wireless client. Although the preceding mathematical representation is discussed for the purpose of explanation with respect to a single wireless client, those skilled in the art will understand that extending the mathematical representation to be applicable to simultaneous optimization for multiple wireless clients is trivial. Following box 126, method 100 proceeds to... Figure 2B Box 128 is shown in the image.
[0115] refer to Figure 2B This shows a continuation of the flowchart of method 100 for increasing network reliability of a vehicle. In box 128, the total keyframe data size is determined. The total keyframe data size is the total amount of data that must be transmitted to send a keyframe and associated keyframe error correction packets from server system 10a to the wireless client. The total keyframe data size depends on the characteristics of the keyframe (e.g., size, resolution, etc.) and the associated keyframe error correction packets (i.e., the number of error correction packets generated at box 122). After box 128, method 100 proceeds to box 130.
[0116] In block 130, the estimated keyframe transmission duration is determined. The estimated keyframe transmission duration is the estimated time required to transmit the keyframe and associated error correction packets. In one exemplary embodiment, the estimated keyframe transmission duration is determined based on the total keyframe data size determined at block 128 and the predicted bandwidth for the next time step determined at block 104.
[0117] In a non-restrictive example, the estimated keyframe transmission duration is given by solving the following equation:
[0118]
[0119] For t kf , where t kf For the estimated keyframe transmission duration, t s B is the start time of keyframe transmission. p (u) represents the bandwidth used for prediction at time u, and s kf This is the total keyframe data size determined at box 128. After box 130, method 100 proceeds to box 132.
[0120] In box 132, server controller 14 adjusts the keyframe transmission start time to determine optimized keyframe transmission timing in response to determining that the estimated keyframe 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 a wireless client can wait to receive a keyframe before video playback is interrupted.
[0121] In a non-restrictive example, the keyframe transmission start time is adjusted such that:
[0122] if:
[0123] t kf >t w (18)
[0124] Then adjust t s Make:
[0125]
[0126] Among them, t kf For the estimated keyframe transmission duration determined at box 130, t w To determine the maximum waiting time, t s B is the start time of keyframe transmission. p (u) represents the bandwidth used for prediction at time u, s kf This refers to the total keyframe data size determined at box 128. In a non-limiting example, within a predetermined range (e.g., t...), s ∈[t s -t a ,t s +t a ], where t a Adjust the keyframe transmission start time within the predetermined maximum adjustment amount to satisfy Equation 19.
[0127] It should be understood that although boxes 128, 130, and 132 are discussed in the context of video streaming applications, methods 100 and boxes 128, and boxes 130 and 132 are also applicable to other types of data with significant components similar to keyframes. After box 132, method 100 proceeds to box 134.
[0128] In block 134, server controller 14 transmits a server packet stream and one or more error correction packets to a wireless client (e.g., vehicle system 10b) using server communication system 18, at least in part, based on one or more server transport characteristics. Within the scope of this disclosure, the one or more server transport characteristics include error correction parameters determined at blocks 114 and 120 or 124, an optimized server bit rate determined at block 126, and optimized keyframe transmission timing determined at block 132. In an exemplary embodiment where the wireless client(s) include vehicle system 10b, vehicle controller 40 receives the server packet stream using vehicle communication system 46 and performs any necessary error correction using one or more error correction packets.
[0129] In an exemplary embodiment where system 10 and method 100 are used for a video conferencing application, vehicle controller 40 uses display 44 to show the received video stream to the occupants of vehicle 12. Vehicle controller 40 uses internal camera 42 to capture the video stream and transmit the captured video stream to server system 10a. It should be understood that method 100 is also applicable to use by vehicle controller 40 when transmitting the captured video stream to server system 10a. After block 134, method 100 proceeds to the standby state at block 136.
[0130] In one exemplary embodiment, method 100 repeatedly restarts at block 102. In a non-limiting example, method 100 exits standby state 136 and restarts according to a timer, for example, every three hundred milliseconds.
[0131] The system 10 and method 100 of this disclosure offer several advantages. Using system 10 and method 100, wireless communication reliability is improved by mitigating bandwidth saturation. Error correction is adjusted to provide optimal redundancy for critical data without overutilizing available bandwidth. Furthermore, bit rate optimization provides optimal quality of service for wireless clients. Additionally, keyframe transmission time is adjusted based on predicted future bandwidth to ensure successful keyframe transmission and minimize interruptions.
[0132] The descriptions in this disclosure are merely exemplary in nature, and variations thereof without departing from the spirit and scope of this disclosure are intended to fall within its scope. Such variations should not be considered as departing from the spirit and scope of this disclosure.
Claims
1. A method for improving network reliability for wireless clients, the method comprising: Determine the predicted bandwidth of the wireless client in the next time step; Determine the network status, wherein the network status includes one of the following: normal network status and interruption event status; The error correction block size is determined at least in part based on the network state and the predicted bandwidth of the wireless client; Adjusting one or more server transport characteristics of a server packet stream, at least in part, based on the error correction block size, wherein the server packet stream comprises multiple data packets; and The server packet stream is transmitted to the wireless client based at least in part on one or more of the server transport characteristics.
2. The method according to claim 1, wherein, Determining the size of the error correction block also includes: The bandwidth budget is determined, at least in part, based on the predicted bandwidth of the wireless client, using the following equation: B b =B " -B # Among them, B b For the bandwidth budget, B " For the predicted bandwidth of the wireless client at the next time step, and B # The bit rate utilized by the wireless client at the current time step; Determine the probability of group failure; and The error correction block size is determined using the following equation, based at least in part on the bandwidth budget and the packet corruption probability: Where, N $ N is the size of the error correction block. % P is the predetermined maximum number of packets to wait before decoding into video frames. c B represents the probability of damage to the group. # The bit rate utilized by the wireless client at the current time step, and B " The predicted bandwidth for the wireless client at the next time step.
3. The method according to claim 2, wherein, Determining the probability of group corruption also includes: The probability of group corruption is determined using a non-homogeneous Poisson point process equation evaluated using a moving time window.
4. The method according to claim 3, wherein, Determining the probability of group corruption also includes: In response to determining that the network state is the interruption event state, the movement time window is reset to start at the current time.
5. The method according to claim 1, wherein, Adjusting the transmission characteristics of one or more servers also includes: One or more error-correcting packets are generated, at least in part, based on the error-correcting block size, to be included in the server packet stream; The optimized server bitrate for the next time step is determined at least in part based on the error correction block size; and The optimized keyframe transmission timing is determined at least in part based on the error correction block size.
6. The method according to claim 5, wherein, Generating the one or more error correction packets also includes: One or more of the plurality of groups are combined into a plurality of error correction blocks, wherein the number of groups in each of the plurality of error correction blocks is the size of the error correction block; and Generate one or more error correction groups, wherein each of the one or more error correction groups encodes one of the plurality of error correction blocks.
7. The method according to claim 6, wherein, Combining one or more of the plurality of groups into the plurality of error correction blocks further includes: In response to determining that the network state is the interruption event state, the packet importance of each of the plurality of packets is determined; and In response to determining that the network state is the interruption event state, one or more of the plurality of data packets are combined into the plurality of error correction blocks, at least in part based on the importance of each of the plurality of data packets.
8. The method according to claim 7, wherein, Combining one or more of the plurality of groups into the plurality of error correction blocks further includes: The importance of each of the plurality of groups is compared with a predetermined importance threshold; and One or more of the plurality of data packets are combined into the plurality of error correction blocks based at least in part on the group importance of each of the plurality of data packets, wherein each of the plurality of error correction blocks includes one or more of the plurality of data packets having a group importance greater than or equal to the predetermined importance threshold.
9. The method according to claim 5, wherein, Determining the optimized server bit rate also includes: An optimization algorithm is used to determine the optimized server bit rate for the next time step, wherein the sum of the optimized server bit rate and the error correction bit rate does not exceed the predicted bandwidth of the wireless client, wherein the error correction bit rate is determined at least in part based on the error correction block size, and wherein the reduction between the optimized server bit rate for the current time step and the optimized server bit rate for the next time step is minimized.
10. The method according to claim 5, wherein, Determining the optimized keyframe transmission timing also includes: The total keyframe data size used for transmitting keyframes and associated keyframe error correction groups is determined at least in part based on the error correction block size. The estimated keyframe transmission duration is determined at least in part based on the total keyframe data size and the predicted bandwidth for the next time step; and In response to determining that the estimated keyframe transmission duration is greater than a predetermined maximum waiting time, the keyframe transmission start time is adjusted.