Video transmission method and related device
By dynamically dispatching MPDUs in multi-link transmission and generating discontinuous PPDUs, the quality degradation problem of video streams in wireless networks is solved, and more efficient video data recovery and transmission are achieved.
Patent Information
- Application Number
- CN202411484034.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-02-22
- Filing Date
- 2024-10-23
- Publication Date
- 2025-08-22
AI Technical Summary
In wireless networks, when high data rates and low latency requirements of video streams encounter unpredictability of wireless radio frequency channels, it is difficult for the prior art to effectively recover video quality degradation problems caused by loss of continuous video data blocks.
When video data is transmitted over multiple links, the Media Access Control Protocol Data Unit (MPDU) dynamically dispatches, and generates discontinuous physical protocol data units (PPDUs) according to link conditions and video slice priority, and performs alternating or sequential dispatch when an error is detected to optimize data transmission.
It improves video transmission efficiency and quality, enhances the recovery rate of video data, adapts to changes in different link conditions, and ensures timely transmission of key video information.
Smart Images

Figure CN120528872A_ABST
Abstract
Description
Technical field
[0001] The present invention generally relates to multi-link transmission, and more particularly, to a video transmission method and related apparatus for dynamically allocating MPDUs on multiple links for transmitting video data. [Background Technology]
[0002] Video streaming over wireless networks is attractive for many applications, ranging from home entertainment to surveillance to search and rescue operations. Technical challenges arise when the unpredictable nature of wireless RF channels meets the high data rates and low latency requirements of video transmission.
[0003] Most video streams are compressed using prediction-based coding standards (such as H.264 / AVC) to reduce data rates. Video packet loss can lead to degraded video quality. Due to the loss of consecutive video data blocks, some video blocks may not even be successfully decoded or recovered. [Summary of the invention]
[0004] An embodiment provides a video transmission method for transmitting video data through multiple links, comprising: when at least one predetermined condition related to the multiple links is met, allocating multiple media access control (MAC) protocol data units (MPDUs) containing video data to generate multiple physical protocol data units (PPDUs) to be transmitted through the multiple links, wherein sequence numbers of the multiple MPDUs allocated in each PPDU are non-consecutive; and transmitting the multiple PPDUs through the multiple links.
[0005] In some embodiments, the method further comprises encapsulating multiple MAC service data units (MSDUs) corresponding to a single video slice into a single MPDU.
[0006] In some embodiments, when at least one predetermined condition related to the multiple links is met, the step of dispatching multiple media access control (MAC) protocol data units (MPDUs) containing video data to generate multiple physical protocol data units (PPDUs) to be transmitted through the multiple links includes: when the difference in transmission conditions between the multiple links exceeds a threshold, dispatching the MPDUs corresponding to high-priority video slices in the multiple MPDUs on the link with relatively better transmission conditions.
[0007] In some embodiments, when at least one predetermined condition related to the multiple links is met, the step of dispatching multiple media access control (MAC) protocol data units (MPDUs) containing video data to generate multiple physical protocol data units (PPDUs) to be transmitted through the multiple links includes: when the difference in transmission conditions between the multiple links is lower than a threshold, evenly dispatching the MPDUs corresponding to high-priority video slices in the multiple MPDUs on the multiple links.
[0008] In some embodiments, the transmission condition includes a packet error rate (PER) and / or a received signal strength indicator (RSSI).
[0009] In some embodiments, the video slice includes an intra (I) slice, a predicted (P) slice, and a bidirectionally predicted (B) slice, the I slice having a higher priority than the P slice, and the P slice having a higher priority than the B slice.
[0010] In some embodiments, when the remaining transmission time of the multiple links is insufficient to transmit all of the multiple MPDUs in the current frame exchange, at least one MPDU in the multiple MPDUs corresponding to the low-priority video slice is not generated in the multiple PPDUs.
[0011] In some embodiments, when at least one predetermined condition related to the multiple links is satisfied, the step of dispatching multiple media access control (MAC) protocol data units (MPDUs) containing video data to generate multiple physical protocol data units (PPDUs) to be transmitted through the multiple links includes: when it is detected that at least one link among the multiple links contains continuous errors, dispatching the multiple MPDUs containing video data alternately into different PPDUs, wherein the sequence numbers of the multiple MPDUs dispatched into each PPDU are alternately arranged.
[0012] In some embodiments, the method further comprises: when discrete errors are detected on the plurality of links, sequentially generating PPDUs according to sequence numbers of the plurality of MPDUs.
[0013] In some embodiments, the method further includes estimating a video frame play time of the receiving device, and sending a block acknowledgement request (BAR) frame before the video frame play time to request the receiving device to force a flush of its reordering buffer.
[0014] Another embodiment provides an apparatus for transmitting video data over multiple links. The apparatus includes a transceiver configured for wireless communication and a processor coupled to the transceiver. The processor is configured to perform operations including: when at least one predetermined condition related to the multiple links is satisfied, dispatching multiple media access control (MAC) protocol data units (MPDUs) containing video data to generate multiple physical protocol data units (PPDUs) to be transmitted over the multiple links, wherein sequence numbers of the multiple MPDUs dispatched in each PPDU are non-consecutive; and transmitting the multiple PPDUs over the multiple links via the transceiver.
[0015] In some embodiments, the processor is further configured to encapsulate multiple MAC service data units (MSDUs) corresponding to a single video slice into a single MPDU.
[0016] In some embodiments, when at least one predetermined condition related to the multiple links is met, the operation of dispatching multiple media access control (MAC) protocol data units (MPDUs) containing video data to generate multiple physical protocol data units (PPDUs) to be transmitted through the multiple links includes: when the difference in transmission conditions between the multiple links exceeds a threshold, dispatching the MPDUs corresponding to high-priority video slices in the multiple MPDUs on the link with relatively better transmission conditions.
[0017] In some embodiments, when at least one predetermined condition related to the multiple links is met, the operation of dispatching multiple media access control (MAC) protocol data units (MPDUs) containing video data to generate multiple physical protocol data units (PPDUs) to be transmitted through the multiple links includes: when the difference in transmission conditions between the multiple links is lower than a threshold, evenly dispatching the MPDUs corresponding to high-priority video slices in the multiple MPDUs across the multiple links.
[0018] In some embodiments, the transmission condition includes a packet error rate (PER) and / or a received signal strength indicator (RSSI).
[0019] In some embodiments, the video slice includes an intra (I) slice, a predicted (P) slice, and a bidirectionally predicted (B) slice, the I slice having a higher priority than the P slice, and the P slice having a higher priority than the B slice.
[0020] In some embodiments, when the remaining transmission time of the multiple links is insufficient to transmit all of the multiple MPDUs in the current frame exchange, at least one MPDU in the multiple MPDUs corresponding to the low-priority video slice is not generated in the multiple PPDUs.
[0021] In some embodiments, when at least one predetermined condition related to the multiple links is satisfied, the operation of dispatching multiple media access control (MAC) protocol data units (MPDUs) containing video data to generate multiple physical protocol data units (PPDUs) to be transmitted through the multiple links includes: when it is detected that at least one link among the multiple links contains continuous errors, dispatching the multiple MPDUs containing video data alternately into different PPDUs, wherein the sequence numbers of the multiple MPDUs dispatched into each PPDU are alternately arranged.
[0022] In some embodiments, the processor is further configured to perform the following operations: when discrete errors are detected on the plurality of links, sequentially generate PPDUs according to sequence numbers of the plurality of MPDUs.
[0023] In some embodiments, the processor is further configured to perform the following operations: estimating a video frame play time of the receiving device, and sending a block acknowledgement request (BAR) frame before the video frame play time to request the receiving device to force flush its reordering buffer.
[0024] The embodiment of the present invention can dynamically allocate MPDUs containing video data according to link-related conditions, thereby improving video transmission efficiency and quality.
[0025] Those skilled in the art will readily appreciate these and other objects of the present invention after reading the following detailed description of the preferred embodiments shown in the accompanying drawings. Detailed description will be given in the following embodiments with reference to the accompanying drawings.
Brief Description of the Drawings
[0026] Figure 1 is a first example allocation of multiple MPDUs according to an embodiment of the present invention.
[0027] Figure 2 is a second example allocation of multiple MPDUs according to another embodiment of the present invention.
[0028] Figure 3 A schematic diagram showing an example of dynamically allocating MPDU transmission between multiple links according to an embodiment of the present invention is shown.
[0029] Figure 4A A schematic diagram showing an example of dynamically allocating MPDU transmission between multiple links according to another embodiment of the present invention is shown.
[0030] Figure 4B A schematic diagram showing an example of dynamically allocating MPDU transmission between multiple links according to another embodiment of the present invention is shown.
[0031] Figure 5A failed transmission scenario is shown without dynamic allocation of MPDUs among multiple links.
[0032] Figure 6 A schematic diagram showing an example of dynamically allocating MPDU transmission between multiple links according to another embodiment of the present invention is shown.
[0033] Figure 7 FIG. 4 is a flow chart illustrating a method for dynamically allocating MPDU transmission between multiple links according to an embodiment of the present invention.
[0034] Figure 8 FIG. 4 is a schematic diagram showing dynamic allocation of MPDU transmission among multiple links according to an embodiment of the present invention.
[0035] Figure 9 FIG. 4 is a block diagram of a video transmission system for dynamically allocating MPDUs between multiple links and transmitting video data according to an embodiment of the present invention.
[0036] Figure 10 FIG. 4 is a flow chart of a method for dynamically allocating MPDU transmission between multiple links according to an embodiment of the present invention.
[0037] In the following detailed description, for illustrative purposes, numerous specific details are set forth to enable those skilled in the art to more thoroughly understand the embodiments of the present invention. However, it is apparent that one or more embodiments may be practiced without these specific details, and different embodiments may be combined as needed, and the present invention should not be limited to the embodiments illustrated in the accompanying drawings. [Specific implementation method]
[0038] The following description is of preferred embodiments of the present invention. These are intended only to illustrate the technical features of the present invention and are not intended to limit the scope of the invention. Throughout the specification and claims, certain terms are used to refer to specific components. Those skilled in the art will appreciate that manufacturers may use different names for the same component. Therefore, the present specification and claims do not distinguish components by name, but rather by their functional differences. As used herein, the terms "component," "system," and "device" may refer to entities related to a computer, which may be hardware, software, or a combination of hardware and software. The terms "including" and "comprising" used in the following description and claims are open-ended and should be interpreted as meaning "including, but not limited to..." Furthermore, the term "coupled" refers to an indirect or direct electrical connection. Therefore, when a device is described as being coupled to another device, this means that the device may be directly electrically connected to the other device or indirectly electrically connected to the other device through other devices or connections.
[0039] Corresponding numerals and symbols in the various figures of the drawings generally refer to corresponding parts unless otherwise indicated. The drawings are drawn to clearly illustrate the relevant parts of the embodiments and are not necessarily drawn to scale.
[0040] As used herein, the terms "substantially" or "approximately" mean that a person skilled in the art is able to solve the desired technical problem and substantially achieve the desired technical effect within an acceptable range. For example, "approximately equal to" means that a certain deviation from "exactly equal to" is acceptable to a person skilled in the art without affecting the accuracy of the result.
[0041] During video encoding and compression, a video stream typically consists of a sequence of frames (also described as a "frame sequence"), which can be further divided into smaller segments called slices (also described as "video slices"). These slices are, understandably, groups of macroblocks that can be independently encoded. Slices are particularly useful for error resilience and parallel processing. In video codecs, such as those using technologies such as H.264 / AVC (Advanced Video Coding) and H.265 / HEVC (High Efficiency Video Coding), three main types of slices are used: intra-slices ("I slices"), predictive slices ("P slices"), and bi-directional predictive slices ("B slices"). In particular, an I slice contains macroblocks that are encoded using only information within the same slice. In other words, I slices can be decoded without reference to other frames or slices. Typically, I slices are used as a reference point for decoding subsequent slices and are essential for random access points in a video stream (for example, when starting playback or jumping to a new location). P slices contain macroblocks that can be encoded using motion compensated prediction from previous frames or slices. P slices can reference blocks in one or more previously decoded I slices or P slices to predict the contents of their macroblocks, which helps reduce the amount of data required to represent them. B slices can use past and future frames or slices for motion compensated prediction. This means that B slices can reference macroblocks in I slices or P slices earlier or later in the video sequence to predict their contents.
[0042] During video transmission over multiple links, a medium access control (MAC) service data unit (MSDU) containing video data (e.g., video slices) is transmitted from the network layer to the MAC layer. A transmitting device may then package the multiple MSDUs into an aggregated-MSDU (A-MSDU) and encapsulate the multiple MSDUs or A-MSDUs into a MAC protocol data unit (MPDU) at the MAC layer. Optionally, the multiple MPDUs may also be packaged into an aggregated-MPDU (A-MPDU). Furthermore, the transmitting device encapsulates the multiple MPDUs or A-MPDUs into a physical protocol data unit (PPDU) at the physical (PHY) layer and transmits the PPDU to a receiving device over multiple links. The present invention focuses on dynamically dispatching the MPDUs carrying video data based on various conditions during PPDU generation. It can be understood that "dynamically dispatching" MPDUs refers to allocating or scheduling different MPDUs to different physical layer processing flows (e.g., different links) according to corresponding rules for further encapsulation and modulation, ultimately forming PPDUs that can be transmitted over a wireless medium, rather than always scheduling MPDUs sequentially to generate PPDUs. For example, when at least one predetermined condition related to multiple links is met, the transmitting device deliberately dispatches multiple MPDUs containing video data to generate multiple PPDUs to be transmitted over multiple links. In the generated multiple PPDUs, the sequence numbers (SNs) of the multiple MPDUs assigned to each PPDU are non-sequential, i.e., the multiple MPDUs within a single PPDU have non-sequential sequence numbers. The method proposed by the present invention allows for flexible scheduling of transmission plans based on various conditions, rather than always generating PPDUs sequentially according to their sequence numbers, thereby improving the quality of video transmission and facilitating effective recovery of failed video data. In one embodiment, upon detecting a continuous error pattern on any one of the multiple links, the transmitting device is configured to alternately dispatch the MPDU (which contains video data) to be transmitted in different PPDUs to be transmitted on different links.Thus, the sequence numbers of the multiple MPDUs within each PPDU are arranged in an alternating or interleaving manner. In another embodiment, if a discrete error pattern is identified across multiple links, the transmitting device is configured to construct the PPDUs directly sequentially based on the sequence numbers of the MPDUs, wherein the sequence numbers of the multiple MPDUs within each PPDU are sequentially arranged, i.e., the sequence numbers of the multiple MPDUs within a single PPDU are continuous. Thus, this adaptive strategy enables the transmitting device to optimize data transmission based on the conditions of the communication link between the transmitting device and the corresponding receiving device.
[0043] Furthermore, the present invention proposes a method for encapsulating the MSDU of a single video slice into a single MPDU, thereby enabling the assignment of a corresponding priority to each MPDU. The priority of the MPDU is correlated with the characteristics of the video slice it encapsulates / contains. For example, an MPDU encapsulating the contents of an I slice has a higher priority than an MPDU encapsulating the contents of a B slice. This priority setting allows for further rational dynamic allocation of MPDUs based on the transmission priority of the MPDUs to be transmitted, thereby further improving the transmission quality and recovery rate of video data. For example, this priority setting facilitates the dynamic allocation of MPDUs based on their corresponding transmission priority and the transmission conditions of the link, thereby improving overall transmission quality and increasing the feasibility of successfully recovering video data.
[0044] For illustrative purposes, the transmission method of the present invention is illustrated using a dual-link (i.e., two-link) configuration. However, it should be noted that the scope of the present invention is not limited to this dual-link configuration. The innovative concepts of the present invention can be easily extended to systems that include three or more communication links. For example, these links can operate in various frequency bands, including but not limited to the 2.4 GHz, 5 GHz, and 6 GHz bands.
[0045] Figure 1 This is a first example allocation 100 of multiple MPDUs according to an embodiment of the present invention. In the present invention, MPDU may also be referred to as a packet, which is a basic unit of data transmission within a Physical Protocol Data Unit (PPDU). For example, a single PPDU may encapsulate / include multiple MPDUs. It should be noted that, for illustrative purposes, only the payload portion of each PPDU is shown in the drawings provided by the present invention, and numbers (e.g., 1, 2, ..., 7, 8) are used to represent the sequence number (SN) of the MPDU. Figure 1In the first example allocation 100 shown, the MPDUs are structured to contain equal amounts of video data. It is worth noting that the division of these MPDUs is independent of the boundaries of the video slices ( Figure 1 It can be seen that the boundary of the MPDU does not coincide with the boundary of the slice). It can be understood that the types of video slices generally include: intra-frame slices (I slices, marked as "I-Slice" in the accompanying drawings for ease of explanation and understanding), predicted slices (P slices, marked as "P-Slice" in the accompanying drawings for ease of explanation and understanding) and bidirectionally predicted slices (B slices, marked as "B-Slice" in the accompanying drawings for ease of explanation and understanding). As mentioned above, in view of the dependencies between video encodings, the relative importance of these slices in video transmission can be listed as I slices being the most critical, followed by P slices, and then B slices. Therefore, the importance of each slice in video transmission is I slice>P slice>B slice. In Figure 1 In this case, the MPDU division / boundaries are independent of the video slice type / boundaries. Furthermore, in conventional transmission schemes, MPDUs with consecutive sequence numbers are always aggregated into a single PPDU. This indicates that this conventional MPDU generation and transmission method does not consider the segmentation of the underlying video content.
[0046] Figure 2 FIG. 2 is a second example allocation 200 of multiple MPDUs according to an embodiment of the present invention. Figure 2In the second example allocation 200, the boundaries of the MAC protocol data units (MPDUs) are the same as the boundaries of the video slices. Therefore, each MPDU can be assigned a corresponding transmission priority. In this way, the transmission and dispatch of MPDUs can be based on the type or priority of the video slice. In this embodiment, multiple MAC service data units (MSDUs) corresponding to a single video slice are encapsulated into the same (single) MPDU. In other words, a group of MSDUs associated with the same video slice are aggregated and encapsulated into a single MPDU. This encapsulation process can be performed by a transmission mechanism, which can be embodied as a Wi-Fi driver or similar module within the transmitting device. In particular, the construction of the MPDU can be based on the boundaries of the video slices and / or the average size of the video slices, wherein the boundaries of the video slices can demarcate the starting and ending points of the slices in the video stream. To determine these boundaries, the MSDU itself can contain metadata specifying the slice boundary information. This metadata is crucial for the receiving device to accurately reconstruct the video content. Therefore, information about the slice boundaries can be obtained from the MSDU. In addition, the transmitting device can also use the average size of the video slices to optimize the encapsulation process. For example, the average size of a video slice can be determined based on a size metric available after decoding by the video receiving device. Once the receiving device decodes the video slices and determines their dimensions, the receiving device can feed this information back to the transmitting device. This feedback allows the transmitting device to dynamically adjust the MPDU generation process to account for the actual dimensions of the slices received and decoded by the receiving device. By utilizing this feedback, the transmitting device can improve the efficiency of data transmission, ensuring that the MPDU is constructed in a manner consistent with the current characteristics of the video stream (i.e., a single MPDU corresponds to the data of a single video slice), thereby promoting more reliable and efficient video communication.
[0047] As described above, it can be understood that the importance of each slice in video transmission should be I slice > P slice > B slice. Therefore, in one embodiment, if the video slice includes I slices, P slices, and B slices, the priority categories for MPDUs or video slices may include high, medium, and low. In other words, MPDUs corresponding to I slices may be assigned high priority, MPDUs corresponding to P slices may be assigned medium priority, and MPDUs corresponding to B slices may be assigned low priority, but the present invention is not limited to this. For example, in another embodiment, two priority categories may be assigned: high and low. For example, MPDUs corresponding to relatively high-priority video slices (such as I slices) are assigned high priority, and MPDUs corresponding to relatively low-priority video slices (such as P slices and B slices) are assigned low priority.
[0048] In one embodiment, when the transmission conditions of multiple links differ significantly (e.g., when the difference in transmission conditions between the multiple links exceeds a threshold), MPDUs with relatively high priority among the multiple MPDUs are dispatched to the link with better transmission conditions, while MPDUs with relatively low priority are dispatched to the link with worse transmission conditions. In another embodiment, when the transmission conditions between the multiple links are relatively consistent or similar (e.g., when the difference in transmission conditions between the multiple links is below a threshold), high-priority MPDUs are evenly distributed among the multiple links. Parameters used to evaluate transmission conditions include, but are not limited to, packet error rate (PER) and / or received signal strength indicator (RSSI). For ease of explanation, the following embodiments use PER as an example criterion, but the present invention is not limited to this example. For example, a single parameter or a weighted sum of multiple parameters may be used as an indicator for evaluating the transmission conditions of a link.
[0049] Figure 3 According to an embodiment of the present invention, a schematic diagram of an example 300 of dynamically allocating MPDUs for transmission on multiple links is shown. In one embodiment, when the remaining transmission time on multiple links is deemed insufficient or insufficient to send all the MPDUs to be transmitted, at least one MPDU corresponding to a low-priority video slice (e.g., the lowest-priority B slice) is discarded, that is, the at least one low-priority MPDU is not generated in the PPDU to be transmitted (or is not allocated to any link for transmission) to ensure that other higher-priority MPDUs can be transmitted as much as possible during the current frame exchange period. Figure 3 In the embodiment, the packet error rate (PER) of link 1 is 25%, and the PER of link 2 is 45%. It can be understood that in the embodiment using PER as an indicator to evaluate the transmission condition of the link, the lower the PER of the link, the better the transmission condition of the link. Assuming that the predetermined threshold is 15%, the difference in the transmission conditions between the two links (which is 20%) exceeds the predetermined threshold, and therefore, the MPDU corresponding to the high-priority video slice is preferentially dispatched to the better link (such as link 1). In this embodiment, since the remaining transmission (TX) time for the current frame exchange is insufficient, the MPDU corresponding to the low-priority video slice (e.g., B-Slice[5] and B-Slice[6]) is not generated in the PPDU and is discarded to ensure that other higher-priority MPDUs can be preferentially transmitted within the remaining short time. Figure 3The first PPDU transmitted on link 1 and the second PPDU transmitted on link 2 are shown. It can be understood that, as described above, the payload portion of the first PPDU includes the first MPDU corresponding to I-Slice [1] and the third MPDU corresponding to I-Slice [3], and the payload portion of the second PPDU includes the second MPDU corresponding to P-Slice [2], the fourth MPDU corresponding to P-Slice [4], and the seventh MPDU corresponding to P-Slice [7]. The MPDUs corresponding to B-Slice [5] and B-Slice [6] with the lowest priority are actively discarded. Figure 3 As shown, the current frame exchange ends shortly after the second I slice is transmitted, and the two B slices are discarded, but it should be noted that in some cases, the two B slices can be recovered through other slices that have been sent. In a preferred embodiment, after the generated PPDU is transmitted, a block acknowledgement request (BAR) frame can be deliberately sent on a better link (e.g., link 1) to force the receiving device to refresh its reorder buffer and end the transmission of the MPDU in the current frame exchange (avoiding repeated attempts to retransmit due to failure to receive the MPDUs of B-Slice[5] and B-Slice[6]), thereby entering the next frame exchange. The information carried by the P slice is more important than the B slice but less important than the I slice. Therefore, the MPDU corresponding to the P slice can be dispatched on a worse link (e.g., link 2). Figure 3 In the example shown in Figure 2, the transmission of the P slice can be completed within the remaining transmission time. In this way, the important information (high-priority MPDUs) carried by the I and P slices are transmitted, while the MPDUs of the B slices carrying less important information are discarded during transmission due to insufficient TX time. In this case, the BAR frame can also be intentionally sent on a better link.
[0050] Figure 4A According to another embodiment of the present invention, a schematic diagram of an example 400 of dynamically allocating MPDU transmission between multiple links is shown. Figure 3Similarly, the PERs for Link 1 and Link 2 are 25% and 45%, respectively, indicating that the differences in transmission conditions across multiple links exceed the aforementioned threshold (using 15% as an example). Therefore, MPDUs corresponding to high-priority video slices or the most important slices (e.g., I slices) should be dispatched on Link 1, which has a lower PER (i.e., relatively better transmission conditions). At least one MPDU corresponding to low-priority video slices or less important slices (e.g., P slices) may also be dispatched on Link 1 (if Link 1 is capable of transmitting more slice data / MPDUs) or on Link 2 (if Link 1 is unable to transmit more data / MPDUs). If, after dispatching an I slice, Link 1 is unable to transmit more data (e.g., P slices), P slices are dispatched on Link 2. If, after dispatching an I slice and a P slice, Link 1 and Link 2 have no more capacity (time) to transmit additional data (e.g., B slices), the remaining slice data (e.g., B slices) will not be generated on Link 1 and / or Link 2, as they will be discarded on Link 1 and / or Link 2. B slices can be allocated based on the remaining capacity of link 1 and link 2. If link 2 is still capable of transmitting more data after allocating I slices and P slices, B slices can be allocated on link 2. If, after allocating I slices and P slices, neither link 1 nor link 2 can transmit more data (such as B slices), B slices will not be generated in link 1 and / or link 2, but the low-priority B slices will be directly discarded. In this way, the attributes of the successfully received I slices and P slices can be used to recover the MPDUs (which correspond to B slices) lost in transmission. In another embodiment, as Figure 4B As shown, if the PERs of link 1 and link 2 are similar, which indicates that the difference in transmission conditions is lower than the aforementioned threshold, the MPDUs corresponding to high-priority video slices (e.g., I slices) are evenly distributed in link 1 and link 2 because the probability of MPDU loss in link 1 and link 2 is similar or about the same.
[0051] It should be noted that in Figure 3 and Figure 4A In the embodiment depicted in FIG4B, the data of each video slice is encapsulated into a separate media access control protocol data unit (MPDU). That is, each slice shown in the figure corresponds to an MPDU. In addition, the numbers shown in the figure can be used as examples of the sequence number of the MPDU. For example, in Figure 4AIn the example, I-Slice[1] can represent MPDU 1, which has sequence number 1 and carries the data of the corresponding I-Slice[1], P-Slice[2] can represent MPDU 2, which has sequence number 2 and carries the data of the corresponding P-Slice[2], I-Slice[3] can represent MPDU 3, which has sequence number 3 and carries the data of the corresponding I-Slice[3], and so on. Figure 3 and Figure 4A It can be observed in / 4B that the sequence numbers of multiple MPDUs within a single PPDU are non-sequential, for example, Figure 3 In the PPDU transmitted on link 2, the sequence numbers of the MPDUs included therein are 2, 4, and 7 respectively. Figure 3 In the illustrated embodiment, although MPDU 5 and MPDU 6 are not transmitted, the data of B-Slice[5] and B-Slice[6] may be recoverable from the data of other slices. In another embodiment, considering that the amount of data of a B slice is generally small, it is possible to consider aggregating / encapsulating the MSDUs corresponding to multiple B slices into a single MPDU. For example, the data of B-Slice[5] and B-Slice[6] may be combined to be encapsulated into one MPDU. Therefore, in another embodiment, the data of a single I slice is encapsulated into a single MPDU, and the data of a single P slice is encapsulated into a single MPDU, but the encapsulation of B slices is not limited to this.
[0052] Figure 5 FIG. 5 shows a failed transmission scenario 500 in which MPDUs are not dynamically allocated among multiple links. Figure 5 As shown, two physical protocol data units (PPDUs) are transmitted over two different links. Specifically, the first PPDU on link 1 includes three media access control protocol data units (MPDUs), and the second PPDU on link 2 includes five MPDUs. For ease of explanation and understanding, in the example, the numbers in the accompanying drawings are used to represent the sequence numbers of the MPDUs. In the scenario where each video slice is encapsulated into a single MPDU, these numbers may correspond to the slice sequence numbers of the corresponding video slices. For clarity and understanding, the embodiments described herein assume that the data of one video slice is encapsulated into one MPDU. However, in some embodiments, the scope of the present invention is not limited to this configuration.
[0053] In scenario 500 where the dynamic allocation strategy proposed in the present invention is not adopted, the sequence numbers of multiple MPDUs within a single PPDU are sequential. For example, MPDUs numbered 6, 7, and 8 (representing MPDU[6], MPDU[7], and MPDU[8], respectively) are generated in a first PPDU and transmitted via link 1, while MPDUs numbered 1 to 5 (representing MPDU[1] to MPDU[5], respectively) are generated in a second PPDU and transmitted via link 2. In this embodiment, each MPDU is associated with data of a different video slice. In some cases, it is assumed that the data within MPDU[6] (e.g., data of slice[6]) requires MPDU[2] (e.g., data of slice[2]), MPDU[5] (e.g., data of slice[5]), and MPDU[7] (e.g., data of slice[7]) to be successfully recovered. The data in MPDU[7] (e.g., the data of slice[7]) requires MPDU[3] (e.g., the data of slice[3]), MPDU[6] (e.g., the data of slice[6]), and MPDU[8] (e.g., the data of slice[8]) to be successfully recovered, and the data in MPDU[8] requires MPDU[4] and MPDU[7] to be successfully recovered. However, as Figure 5 As shown, consecutive transmission errors may occur on link 1 due to interference, resulting in the failure to receive MPDU[6], MPDU[7], and MPDU[8]. Therefore, the unavailability of MPDU[7] hinders the recovery of MPDU[6] and MPDU[8], and the absence of MPDU[6] and MPDU[8] also hinders the recovery of MPDU[7]. Therefore, in the presented scenario 500, none of MPDU[6] to MPDU[8] can be recovered using the successfully received MPDUs, resulting in a recovery rate of zero.
[0054] Figure 6 According to another embodiment of the present invention, a transmission example 600 of dynamically dispatching MPDUs between multiple links is shown. In this embodiment, when it is detected that at least one link among the multiple links contains a continuous error, the multiple MPDUs to be transmitted are dispatched alternately in different PPDUs (i.e., they are alternately dispatched for transmission on different links), wherein the sequence numbers of the multiple MPDUs dispatched in each PPDU are arranged alternately or in an interleaved manner (non-continuous). Figure 6In the example, multiple MPDUs are dispatched alternately, for example, MPDUs 2, 4, and 5 (used to form the first PPDU) are transmitted in link 1, and MPDUs 1, 3, 6, 7, and 8 (used to form the second PPDU) are transmitted in link 2. Due to the high PER in link 1 (e.g., continuous error mode), MPDUs 2, 4, and 5 are lost. However, MPDU 2 can be recovered from MPDUs 1, 3, and 6, MPDU 4 can be recovered from MPDUs 3 and 8, and MPDU 5 can be recovered from MPDUs 1 and 6. Therefore, these MPDUs are all available, and the recovery rate is 100%, which is higher than Figure 5 In the embodiment of the present invention, when the error pattern detected in a link is continuous (such as Figure 6 (as shown), the multiple MPDUs are dispatched alternately according to their sequence numbers, rather than being generated sequentially in the PPDU. In another embodiment, when the error patterns in the multiple links are discrete, the MPDUs are scheduled sequentially. That is, when discrete errors are detected on the multiple links, the transmitting device may schedule the multiple MPDUs to be transmitted sequentially in different PPDUs, where the sequence numbers of the multiple MPDUs in each PPDU are consecutive.
[0055] Figure 7 FIG. 7 is a flow chart illustrating a transmission method 700 for dynamically allocating MPDUs between multiple links according to an embodiment of the present invention. The transmission method 700 includes the following steps:
[0056] Step S702: The transmitting device obtains a transmission opportunity, or, understandably, receives a transmission (TX) request.
[0057] Step S704: Check whether MPDUs are to be dynamically allocated; if yes, go to step S706; otherwise, go to step S705.
[0058] Step S705: Aggregate multiple MPDUs into a PPDU sequentially; go to step S716.
[0059] Step S706: Check whether the remaining transmission time in the current frame exchange is less than the PPDU time; if so, go to step S708; otherwise, go to step S710.
[0060] Step S708: discard at least one low-priority MPDU. For example, discard at least one MPDU with the lowest priority, which may correspond to the lowest priority or least important video slice, such as a B slice.
[0061] Step S710: Check whether the PERs (PER is used as an example of transmission conditions, but the present invention is not limited to this example) between different links are similar. If so (i.e., if the difference in transmission conditions between different links is lower than a preset threshold), proceed to step S714. Otherwise (i.e., if the difference in transmission conditions between different links is greater than the preset threshold), proceed to step S712.
[0062] Step S712: During the generation of multiple PPDUs to be transmitted over multiple links, high-priority MPDUs (e.g., MPDUs corresponding to I slices) are preferentially dispatched to links with lower PERs. In other words, more I slices are dispatched to links with lower PERs. In this embodiment, a priority policy is employed to dispatch MPDUs by detecting differences in transmission conditions (e.g., PERs) between multiple communication links. Specifically, MPDUs containing data for high-priority video slices are preferentially dispatched to links with relatively better or more optimal transmission characteristics / conditions. If all MPDUs cannot be transmitted on a link with relatively better or more optimal transmission characteristics / conditions, MPDUs containing data for low-priority video slices are considered for dispatching to links with relatively poorer transmission characteristics / conditions. This dynamic dispatch method optimizes the use of available links by coordinating the priority of video content with the reliability of the transmission path, thereby improving the overall quality of service for video streaming applications.
[0063] Step S714: During the generation of PPDUs to be transmitted across multiple links, high-priority MPDUs (e.g., MPDUs corresponding to I slices) are evenly distributed across each link, i.e., a similar number of I slices are allocated to each link. In this embodiment, when the difference in transmission conditions across multiple links is below a predetermined threshold—indicating similar link performance / conditions—a fair distribution strategy is implemented to transmit MPDUs. This strategy evenly distributes MPDUs associated with high-priority video slices across multiple links. By employing this approach, this embodiment ensures balanced utilization of links, thereby helping to maintain a consistent quality level for high-priority video data transmission and reducing the likelihood of over-reliance on any single link.
[0064] Step S716: Transmit the generated PPDU via multiple links.
[0065] In step S704, for example, if the remaining transmission time is sufficient to dynamically dispatch MPDUs, if the PER in at least one link > M% (0 < M < 100), and / or if a continuous error pattern is observed on any link, then dynamic dispatching of MPDUs is considered, but the present invention is not limited thereto. For example, if a series of MPDUs transmitted on a specific link are observed to fail in a time interval, this continuous transmission failure indicates a degradation in link quality (unreliability), and a continuous error pattern is detected. If it is determined that dynamic dispatching of MPDUs is not required, then go to step S705. In step S705, the PPDU is generated by a conventional transmission scheme, where the sequence numbers of the MPDUs contained in each PPDU are consecutive. In other words, the MPDUs are aggregated sequentially / one by one in the PPDU according to their assigned sequence numbers. If it is determined that dynamic dispatching of MPDUs is required, then method 700 goes to step S706. In step S706, check whether the remaining transmission time is less than the PPDU time. If so, go to step S708; otherwise, go to step S710. In step S708, discard the packets of the low-priority slices, such as the MPDUs corresponding to B slices.
[0066] In step S710, check whether the packet error rates (PERs, it should be noted that the PER is an example of the transmission conditions, and the present invention is not limited to this example) of different links are similar. If so, enter step S714; otherwise, enter step S712. In step S712, during the generation of the physical protocol data unit (PPDU), as long as the link has sufficient capacity, the intra-frame slices (I slices) (or the MPDUs corresponding to the I slices) are dispatched on the links with low PERs, while the less important bi-predictive slices (B slices) will be considered for dispatching on the links with high PERs. In step S714, since the PERs of different links are similar, a similar number of I slices are dispatched on the links. In step S716, transmit the PPDU generated through multiple links. During data transmission, the transmitting device can determine or classify the error patterns associated with each link, such as discrete or continuous error patterns. In one example, the receiving device can return a block acknowledgement (BA) frame to the transmitting device to inform the transmitting device which packets (MPDUs) have been successfully received. Thus, the transmitting device can determine the error pattern of the link based on this feedback. However, it should be noted that the scope of the present invention is not limited to this method of determining the link error pattern.
[0067] Figure 8is a schematic diagram of a transmission method for dynamically allocating MPDUs between multiple links according to an embodiment of the present invention. Multiple MPDUs are alternately allocated between link 1 and link 2. Link 1 is a link with a high packet error rate (PER) (e.g., PER is higher than a first threshold), which may indicate a continuous error mode, while link 2 is a link with a low packet error rate (PER) (e.g., PER is lower than a second threshold, where the second threshold may be lower than the first threshold). Before transmitting data, the transmitting device sends a request to send (RTS, abbreviated as "R" in the figure) frame 802 to the receiving device to signal that data transmission is about to take place. Subsequently, the receiving device responds with a clear to send (CTS, abbreviated as "C" in the figure) frame 804 to inform the receiving device that it is ready to receive data. After the RTS frame 802 and the CTS frame 804 are exchanged (a transmission opportunity is obtained), the transmission of the alternately allocated MPDUs begins. As shown Figure 8 As shown, after sending the corresponding physical protocol data unit (PPDU, shown in FIG4 as including four MPDUs), a block acknowledgement (BA, referred to as "B" in the figure) frame 806 is transmitted to confirm the reception of the data. Figure 8In this example, due to the high PER on link 1, multiple MPDU transmissions on link 1 fail. In one embodiment, when the estimated video frame playback time is approaching (i.e., slightly ahead of the estimated video frame playback time by a predetermined time), a block acknowledgement request (BAR) frame 808 is intentionally sent on link 2, where transmission conditions are better, to force the receiving device to flush its reordering buffer and terminate or end the MPDU transmission in the current frame exchange to proceed to the next frame exchange. BAR frame 808 should be sent on link 2, where transmission conditions are relatively better, rather than link 1, because link 1 has a higher PER and link 2 has a lower PER. After flushing the reordering buffer, the receiving device reorders all successfully received MPDUs according to their sequence numbers, thereby determining that MPDUs 6, 8, 9, and 11 were lost in transmission (i.e., failed to be received). However, in some cases, MPDU 6 can be recovered from MPDUs 2, 5, 7, and 10, MPDU 8 can be recovered from MPDUs 4, 7, and 12, MPDU 9 can be recovered from MPDUs 5, 10, and 13, and MPDU 11 can be recovered from MPDUs 7, 10, 12, and 15. Therefore, due to the alternating dispatch of MPDUs and the timely issuance of BAR frames 808 to flush the reordering buffer, the recovery rate reaches 100%, effectively preventing the useless retransmission of failed MPDUs. In one embodiment, BAR frames 808 are transmitted to the receiving device before the video frame playback time to enhance the smoothness of video playback, rather than continuously retransmitting failed MPDUs. For example, BAR frames 808 can be transmitted a predetermined duration before the estimated video frame playback time.
[0068] Figure 9 According to an embodiment of the present invention, an example system 900 is shown, which includes at least an example device 910 and an example device 920. Each of device 910 and device 920 can perform various functions to implement the schemes, techniques, and methods described herein related to video transmission over multiple links, including the various schemes related to the various proposed designs, concepts, and schemes described above and the processes described below. Devices 910 and 920 can be communicating entities capable of communicating with each other using the various schemes proposed by the present invention. For example, devices 910 and 920 can be multi-link devices (MLDs).
[0069] Each of the apparatus 910 and the apparatus 920 may include Figure 9At least some of the components shown in the figure, such as processor 912 and processor 922. Each of the device 910 and the device 920 may also include one or more other components that are not related to the solution proposed by the present invention (for example, an internal power supply, a display device and / or a user interface device). Therefore, for the sake of brevity, these components of the device 910 and the device 920 are not shown in the figure. Figure 9 It is not shown in the figure and is not described below.
[0070] In one aspect, the processors 912 and 922 may be implemented in the form of one or more single-core processors, one or more multi-core processors, one or more RISC processors, or one or more CISC processors. That is, even though the term "processor" is used herein to refer to the processor 912 and the processor 922, in the present invention, each of the processor 912 and the processor 922 may include multiple processors in some embodiments and may include a single processor in other embodiments, and the present invention is not limited to this.
[0071] In some embodiments, the device 910 (e.g., the transmitting device described above) further includes a transceiver 916 coupled to the processor 912. The transceiver 916 is capable of wirelessly transmitting and receiving data. In some embodiments, the device 920 (e.g., the receiving device described above) further includes a transceiver 926 coupled to the processor 922. The transceiver 926 is capable of wirelessly transmitting and receiving data. The transceiver 916 and the transceiver 926 can wirelessly communicate with each other via one or more of a plurality of links (link 1 to link N, where N is a positive integer greater than 1, such as a first link and a second link).
[0072] In some embodiments, the device 910 may further include a memory 914 coupled to and accessible by the processor 912 and storing data therein. In some embodiments, the device 920 may further include a memory 924 coupled to and accessible by the processor 922 and storing data therein.
[0073] Figure 10 FIG1 is a flow chart illustrating a transmission method 1000 for dynamically allocating MPDUs between multiple links according to an embodiment of the present invention. The transmission method 1000 includes the following steps:
[0074] Step S1002: Check whether at least one predetermined condition is satisfied. If yes, go to step S1004; otherwise, go to step S1006.
[0075] Step S1004: Multiple MPDUs containing video data are (dynamically) allocated to generate multiple PPDUs to be transmitted via multiple links, wherein sequence numbers of the multiple MPDUs allocated in each / corresponding PPDU are non-consecutive.
[0076] Step S1006: Generate multiple PPDUs sequentially / one by one according to the sequence numbers of MPDUs, where the sequence numbers of multiple MPDUs in each / corresponding PPDU are consecutive.
[0077] Step S1008: Transmit multiple PPDUs on multiple links.
[0078] In step S1002, check whether at least one predetermined condition is satisfied. For example, at least one predetermined condition may include: whether the remaining TX time for the current frame exchange is sufficient, whether the PER of the link is greater than M% (0 < M < 100), whether the error mode of transmission is continuous, etc. If at least one of these conditions is satisfied, go to step S1004 to dynamically dispatch multiple MPDUs containing video data to generate multiple PPDUs to be transmitted on multiple links, where the sequence numbers of multiple MPDUs assigned to each / corresponding PPDU are non - consecutive. If none of the predetermined conditions are satisfied, go to step S1006 to generate PPDUs sequentially according to the sequence numbers of MPDUs. After executing step S1004 or step S1006, go to step S1008 to transmit PPDUs on multiple links.
[0079] In the present invention, MPDUs are dynamically dispatched according to the error mode on the link, the remaining transmission time for the current frame exchange, and / or the transmission conditions. In this way, the recovery rate of MPDUs can be improved. Therefore, the present invention can provide the quality and efficiency of video transmission by dynamically dispatching MPDUs between multiple links.
[0080] Although the present invention has been described by way of examples and in terms of preferred embodiments, it should be understood that the present invention is not limited to the disclosed embodiments. On the contrary, it is intended to cover various modifications and similar structures (as would be apparent to those skilled in the art), for example, combinations or substitutions of different features in different embodiments. Therefore, the scope of the appended claims should be given the broadest interpretation to cover all such modifications and similar structures.
Claims
1. A video transmission method for transmitting video data via multiple links, comprising: When at least one predetermined condition associated with the plurality of links is satisfied, allocating a plurality of media access control (MAC) protocol data units (MPDUs) containing video data to generate a plurality of physical protocol data units (PPDUs) to be transmitted over the plurality of links, wherein sequence numbers of the plurality of MPDUs allocated in each PPDU are non-consecutive; and The multiple PPDUs are transmitted through the multiple links.
2. The video transmission method according to claim 1, wherein: The method further includes: Multiple MAC Service Data Units (MSDUs) corresponding to a single video slice are encapsulated into a single MPDU.
3. The video transmission method according to claim 2, wherein: When at least one predetermined condition related to the plurality of links is satisfied, the step of dispatching a plurality of media access control (MAC) protocol data units (MPDUs) containing video data to generate a plurality of physical protocol data units (PPDUs) to be transmitted through the plurality of links comprises: When the difference in transmission conditions between the multiple links exceeds a threshold, the MPDUs corresponding to the high-priority video slices among the multiple MPDUs are dispatched to a link with a relatively better transmission condition.
4. The video transmission method according to claim 2, wherein: When at least one predetermined condition related to the plurality of links is satisfied, the step of dispatching a plurality of media access control (MAC) protocol data units (MPDUs) containing video data to generate a plurality of physical protocol data units (PPDUs) to be transmitted through the plurality of links comprises: When the difference in transmission conditions among the multiple links is lower than a threshold, the MPDUs corresponding to the high-priority video slices in the multiple MPDUs are evenly distributed among the multiple links.
5. The video transmission method according to claim 4, wherein: The transmission condition includes a packet error rate (PER) and / or a received signal strength indicator (RSSI).
6. The video transmission method according to claim 2, wherein: The video slices include intra (I) slices, predicted (P) slices, and bidirectionally predicted (B) slices, the I slice has a higher priority than the P slice, and the P slice has a higher priority than the B slice.
7. The video transmission method according to claim 2, wherein: When the remaining transmission time of the multiple links is insufficient to transmit all of the multiple MPDUs in the current frame exchange, at least one MPDU corresponding to the low-priority video slice in the multiple MPDUs is not generated in the multiple PPDUs.
8. The video transmission method according to claim 1, wherein: When at least one predetermined condition related to the plurality of links is satisfied, the step of dispatching a plurality of media access control (MAC) protocol data units (MPDUs) containing video data to generate a plurality of physical protocol data units (PPDUs) to be transmitted through the plurality of links comprises: When it is detected that at least one link among the plurality of links contains continuous errors, the plurality of MPDUs containing the video data are alternately allocated in different PPDUs, wherein sequence numbers of the plurality of MPDUs allocated in each PPDU are alternately arranged.
9. The video transmission method according to claim 1, wherein: The method further includes: When discrete errors are detected on the plurality of links, PPDUs are sequentially generated according to sequence numbers of the plurality of MPDUs.
10. The video transmission method according to claim 1, wherein: The method further includes: A video frame play time of a receiving device is estimated, and a block acknowledgement request (BAR) frame is sent before the video frame play time to request the receiving device to forcibly flush its reordering buffer.
11. An apparatus for transmitting video data via multiple links, comprising: a transceiver configured for wireless communication; as well as The processor is coupled to the transceiver and is configured to perform the following operations: When at least one predetermined condition associated with the plurality of links is satisfied, allocating a plurality of media access control (MAC) protocol data units (MPDUs) containing video data to generate a plurality of physical protocol data units (PPDUs) to be transmitted over the plurality of links, wherein sequence numbers of the plurality of MPDUs allocated in each PPDU are non-consecutive; as well as The plurality of PPDUs are transmitted via the transceiver over the plurality of links.
12. The device according to claim 11, wherein The processor is further configured to: Multiple MAC Service Data Units (MSDUs) corresponding to a single video slice are encapsulated into a single MPDU.
13. The device of claim 12, wherein: When at least one predetermined condition related to the multiple links is met, the operation of dispatching multiple media access control (MAC) protocol data units (MPDUs) containing video data to generate multiple physical protocol data units (PPDUs) to be transmitted through the multiple links includes: when the difference in transmission conditions between the multiple links exceeds a threshold, dispatching the MPDUs corresponding to high-priority video slices in the multiple MPDUs on the link with relatively better transmission conditions.
14. The apparatus of claim 12, wherein: When at least one predetermined condition related to the multiple links is met, the operation of allocating multiple media access control (MAC) protocol data units (MPDUs) containing video data to generate multiple physical protocol data units (PPDUs) to be transmitted through the multiple links includes: when the difference in transmission conditions between the multiple links is lower than a threshold, evenly allocating the MPDUs corresponding to high-priority video slices in the multiple MPDUs on the multiple links.
15. The apparatus of claim 14, wherein: The transmission condition includes a packet error rate (PER) and / or a received signal strength indicator (RSSI).
16. The apparatus of claim 12, wherein: The video slices include intra (I) slices, predicted (P) slices, and bidirectionally predicted (B) slices, the I slice has a higher priority than the P slice, and the P slice has a higher priority than the B slice.
17. The apparatus of claim 12, wherein: When the remaining transmission time of the multiple links is insufficient to transmit all of the multiple MPDUs in the current frame exchange, at least one MPDU corresponding to the low-priority video slice in the multiple MPDUs is not generated in the multiple PPDUs.
18. The apparatus of claim 11, wherein: When at least one predetermined condition associated with the plurality of links is satisfied, the operation of dispatching a plurality of media access control (MAC) protocol data units (MPDUs) containing video data to generate a plurality of physical protocol data units (PPDUs) to be transmitted over the plurality of links includes: When it is detected that at least one link among the plurality of links contains continuous errors, the plurality of MPDUs containing the video data are alternately allocated in different PPDUs, wherein sequence numbers of the plurality of MPDUs allocated in each PPDU are alternately arranged.
19. The apparatus of claim 11, wherein: The processor is further configured to: When discrete errors are detected on the plurality of links, PPDUs are sequentially generated according to sequence numbers of the plurality of MPDUs.
20. The apparatus of claim 11, wherein The processor is further configured to: A video frame play time of a receiving device is estimated, and a block acknowledgement request (BAR) frame is sent before the video frame play time to request the receiving device to forcibly flush its reordering buffer.