WO2023160403A1 - Data processing method and apparatus - Google Patents

Data processing method and apparatus Download PDF

Info

Publication number
WO2023160403A1
WO2023160403A1 PCT/CN2023/075196 CN2023075196W WO2023160403A1 WO 2023160403 A1 WO2023160403 A1 WO 2023160403A1 CN 2023075196 W CN2023075196 W CN 2023075196W WO 2023160403 A1 WO2023160403 A1 WO 2023160403A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
queue
data packet
original
packet
Prior art date
Application number
PCT/CN2023/075196
Other languages
French (fr)
Chinese (zh)
Inventor
马云飞
郑智隆
刘洪强
Original Assignee
阿里巴巴(中国)有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 阿里巴巴(中国)有限公司 filed Critical 阿里巴巴(中国)有限公司
Publication of WO2023160403A1 publication Critical patent/WO2023160403A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/12Wireless traffic scheduling

Definitions

  • the embodiments of this specification relate to the technical field of computer networks, and in particular to a data processing method.
  • the method for solving the above problems in the prior art is to adopt multipath transport (Multipath Transport): communication data is transmitted on more than two physical paths at the same time.
  • Multipath Transport communication data is transmitted on more than two physical paths at the same time.
  • use 4G and wifi to transmit video and files at the same time in mobile communication, or use multiple 4G or 5G modules to transmit data at the same time.
  • the current multi-path transmission schemes all have the problems of high data transmission delay and low transmission efficiency when performing data transmission.
  • the embodiment of this specification provides a data processing method.
  • One or more embodiments of this specification also relate to a data processing device, a video transmission method and system, a computing device, a computer-readable storage medium, a computer program, and a self-driving vehicle to solve Technical defects existing in the prior art.
  • a data processing method applied to a data sending end including:
  • a data sending end including:
  • a queue length determination module configured to determine the queue length of the data queue corresponding to the original data packet, wherein the original data packet is a data packet waiting to be sent to the data receiving end;
  • the original data packet sending module is configured to, when it is determined that the queue length is less than or equal to the queue length threshold, sending the original data packets in the data queue to the data receiving end through multipath transmission; or
  • An encoded data packet obtaining module configured to perform data encoding on the original data packets in the data queue to obtain encoded data packets when it is determined that the queue length is greater than the queue length threshold;
  • the coded data packet sending module is configured to send the coded data packet to the data receiving end through multi-path transmission.
  • a video transmission method including:
  • the video data sending end splits the video to be played into video frames, and packages the video frames into original video data packets and sends them to the data queue,
  • the original video data packet is a data packet waiting to be sent to the video data receiving end
  • the video data receiving end performs video playback according to the received original video data packets and/or the encoded video data packets.
  • a video transmission system including a video data sending end and a video data receiving end, wherein:
  • the video data sending end splits the video to be played into video frames, and packs the video frames into original video data packets and sends them to the data queue,
  • the original video data packet is a data packet waiting to be sent to the video data receiving end
  • the video data receiving end performs video playback according to the received original video data packets and/or the encoded video data packets.
  • a computing device including:
  • the memory is used to store computer-executable instructions
  • the processor is used to execute the computer-executable instructions.
  • the steps of the above-mentioned data processing method or video transmission method are realized.
  • a computer program wherein, when the computer program is executed in a computer, it causes the computer to execute the steps of the above-mentioned data processing method or video transmission method.
  • an autonomous vehicle includes the above-mentioned computing device, and/or the above-mentioned computer-readable storage medium.
  • An embodiment of this specification implements a data processing method, the method is applied to the data sending end, including determining the queue length of the data queue corresponding to the original data packet; when the queue length is determined to be less than or equal to the queue length threshold, the data The original data packets in the queue are sent to the data receiving end through multi-path transmission; or in the case of determining that the queue length is greater than the queue length threshold, data encoding is performed on the original data packets in the data queue to obtain encoded data Packet; send the encoded data packet to the data receiving end through multi-path transmission.
  • the method can be applied to high-mobility multi-path transmission scenarios, and adopts data packet transmission based on queue length and a dynamic coding strategy to realize low-delay and high-efficiency data transmission.
  • FIG. 1 is a schematic diagram of a specific application scenario of data packet loss and retransmission in a data processing method provided by an embodiment of this specification;
  • Fig. 2 is a flowchart of a data processing method provided by an embodiment of this specification
  • Fig. 3 is a schematic structural diagram of a data processing device provided by an embodiment of this specification.
  • Fig. 4 is a flowchart of a video transmission method provided by an embodiment of this specification.
  • Fig. 5 is a schematic structural diagram of a video transmission system provided by an embodiment of this specification.
  • Fig. 6 is a structural block diagram of a computing device provided by an embodiment of this specification.
  • first, second, etc. may be used in one or more embodiments of this specification to describe each information, but such information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another.
  • the first may also be referred to as the second, and similarly, the second may also be referred to as the first without departing from the scope of one or more embodiments of the present specification.
  • the word "if” as used herein may be interpreted as “at” or "when” or "in response to a determination.”
  • Multipath Transport Communication data is transmitted on more than two physical paths at the same time. For example, use 4G and wifi to transmit video and files at the same time in mobile communication, or use multiple 4G or 5G modules to transmit data at the same time.
  • the scheduler is a decision-making module in multi-path transmission. Its main function is to decide which path (path) a packet to be sent will be distributed from.
  • Scheduling The process in which a scheduler assigns a data packet to a certain path/paths according to certain algorithms and rules is called scheduling.
  • QUIC transport protocol an Internet transport layer protocol, which is a transport protocol located in user mode. Transmission delay, to better meet the challenges of the current transport layer and application layer.
  • a path is a data path formed by all connections and routing nodes between two communication nodes.
  • a path can be logically expressed as a quadruple composed of (source IP, destination IP, source port, destination port).
  • Quality of Experience refers to the comprehensive subjective experience of users on the quality and performance (including effectiveness and availability) of equipment, networks and systems, applications or services, which is defined from the comfort of business applications. Through QoE scoring, operators can comprehensively evaluate users' video service quality and performance, and optimize the network.
  • High-speed wireless gateway CPE is a device that converts high-speed 4G/5G signals into common WiFi signals for mobile terminals such as tablets, smartphones, and notebooks. It can support multiple terminals to access the Internet at the same time. place, it can be used by plugging in the power supply, no need to pull the network cable, and it is very convenient to use and carry.
  • the AP function and router performance of the CPE are stronger, and it can be connected to dozens of mobile terminals such as tablets, smart phones, and notebooks at the same time. It has relatively complete user authentication function and billing function.
  • Random Linear Network Coding uses a random strategy to re-encode the intermediate nodes.
  • the encoding process is a linear combination of multiple data messages.
  • the intermediate nodes randomly select encoding coefficients from the finite field to input data during encoding. Encode and send the encoded data.
  • Tunneling is a method of passing data between networks by using the infrastructure of the Internet.
  • the data (or payload) transmitted through the tunnel may be data frames or packets of different protocols.
  • the tunneling protocol re-encapsulates the data frames or packets of these other protocols in new packet headers and sends them.
  • the new header provides routing information so that the encapsulated payload data can be passed across the Internet.
  • the data processing method provided in the embodiment of this specification can be applied to the Internet of Vehicles scenario, but is not limited to this scenario, and can also be applied to other scenarios with large market orders, such as takeaway meal delivery scenarios.
  • this description In the embodiments of the book, the data processing method is applied to the scene of the Internet of Vehicles for specific introduction.
  • multi-path QUIC technology is generally used to provide high-performance aggregation tunnel services by using multiple wireless links.
  • the data processing method provided by the embodiment of this specification can be understood as a multi-path aggregation scheme based on network coding, which can enable high-mobility multi-path transmission while maintaining low delay, large bandwidth, and good anti-packet loss capability.
  • a data processing method is provided, and this specification also relates to a data processing device, a video transmission method and device, a computing device, a computer-readable storage medium, and an automatic driving vehicle, Each will be described in detail in the following examples.
  • FIG. 1 shows a schematic diagram of a specific application scenario of data packet retransmission in a data processing method according to an embodiment of the present specification.
  • FIG. 1 includes a data sending end 102, a transmission path 104 (BWE1-3), and a data receiving end 106.
  • the data packets flow into the data sending end 102 (i.e. the tunnel entrance), the tunnel program encodes and encapsulates the data packets 1-8, and then distributes the encoded and encapsulated data packets 1-8 to multiple transmission paths (Multipath transmission) 104 transmits;
  • Data receiver 106 (being the other end of the tunnel) receives the data packets 1-8 that have been coded and encapsulated, and decodes the data packets 1-8 that have been coded and encapsulated, And the decoded data packets 1-8 are forwarded to the next hop (the next hop refers to the next hop selected by the router).
  • the data sending end 102 determines that the data receiving end 106 has not received all the data packets sent by it, it can determine the original data packets lost in the data transmission process, such as data packets 2-6 Carry out retransmission coding to lost original data packet 2-6 again by the coding mode of RLNC, form the retransmission coding packet (as ⁇ P in Fig. 1), and the coding packet that forms after coding is carried out by a plurality of transmission paths 104 Retransmission; to overcome the problem of random continuous packet loss in high mobility scenarios.
  • the original data packets lost in the data transmission process such as data packets 2-6 Carry out retransmission coding to lost original data packet 2-6 again by the coding mode of RLNC, form the retransmission coding packet (as ⁇ P in Fig. 1), and the coding packet that forms after coding is carried out by a plurality of transmission paths 104 Retransmission; to overcome the problem of random continuous packet loss in high mobility scenarios.
  • FIG. 2 shows a flowchart of a data processing method according to an embodiment of the present specification, wherein the data processing method is applied to a data sending end, and specifically includes the following steps.
  • Step 202 Determine the queue length of the data queue corresponding to the original data packet, where the original data packet is a data packet waiting to be sent to the data receiving end.
  • the data processing method provided by the embodiment of this specification can be applied to CPE equipment, and the CPE equipment includes multiple SIM (Subscriber Identity Module, subscriber identification card) card modules, zero or several Ethernet WAN (Wide Area Network , WAN) port, 0 or several Ethernet LAN (local area network, local area network) ports, support 0 or more WiFi frequency band access, and an operating system is installed.
  • SIM Subscriber Identity Module
  • WAN Wide Area Network
  • LAN local area network, local area network
  • the original data packet may be any type of data packet, such as a video data packet, an audio data packet, or a file data packet.
  • the data sending end will place the original data packet to be sent in the data queue, and send it to the data receiving end through the data queue, where the data queue follows the first-in-first-out principle; therefore, the queue length of the data queue can be reasonably
  • the solution is the length of the original data packet cached in the data queue; for example, when the data sender is sending the original data packet, if it is determined that there are 3 original data packets cached in the current data queue, then the length of the data queue corresponding to the original data packet can be determined The queue length is 3.
  • Step 204 When it is determined that the queue length is less than or equal to the queue length threshold, send the original data packets in the data queue to the data receiving end through multi-path transmission.
  • the queue length threshold can be set according to the actual application, and the embodiment of this specification does not make any limitation on this; for example, in an actual application, when the queue length exceeds 8, it can be determined that there are too many original data packets cached in the data queue, It may cause a delay in sending the original data packet. At this time, the queue length threshold can be set to 7.
  • the data sender will judge whether the queue length of the current data queue is less than or equal to the queue length threshold before sending an original data packet, and if so, send the original data packet in the data queue to the data receiver.
  • the data sender determines that the queue length of the current data queue is less than or equal to the queue length threshold, it can determine that the original data packets cached in the data queue have not yet caused accumulation, and generally will not cause transmission delay. At this time, pass The data queue only needs to send the original data packets to the data receiving end sequentially.
  • Step 206 When it is determined that the queue length is greater than the queue length threshold, perform data encoding on the original data packets in the data queue to obtain encoded data packets.
  • the data sending end determines that the queue length of the current data queue is greater than the queue length threshold, it can be determined that the original data packets cached in the data queue may not cause accumulation, and subsequent data transmission may be delayed.
  • data encoding can be performed on the original data packets in the data queue to obtain encoded data packets, and then data can be sent to the data receiving end by means of encoded data packets.
  • Step 208 Send the coded data packet to the data receiving end through multipath transmission.
  • the coded data packet can be sent to the data receiving end through multi-path transmission.
  • the original data packets in the data queue can be encoded by random linear network coding; at the same time, in multi-path transmission Including multiple data transmission channels, and the number of currently available paths for each data transmission channel is limited, so in order to avoid the blockage of the data transmission channel during data transmission and affect other data transmissions, the original data in the data queue
  • the number of encoded data packets can be determined according to the number of currently available paths in multipath transmission, so as to ensure that subsequent encoded data packets can reserve a part of the available paths for the data transmission channel of multipath transmission when sending other data. transmission.
  • the specific implementation is as follows:
  • the data encoding of the original data packets in the data queue to obtain the encoded data packets includes:
  • Data coding is performed on the original data packets in the data queue by random linear network coding to obtain the same number of coded data packets as the coded data packets.
  • the multipath transmission includes multiple data transmission channels, and each data transmission channel includes multiple paths.
  • a data transmission channel can transmit 100 data packets at the same time, then there are 50 data packets currently being transmitted, and then the number of remaining available paths is 50.
  • the data sender first determines the number of all currently available paths of multiple data transmission channels in multi-path transmission, and then determines the number of encodings according to the number of currently available paths; and then performs random linear network coding on the original data packets in the data queue. Data encoding to get as many encoded packets as there are encoded.
  • the determined number of codes can be smaller than the number of currently available paths.
  • Figure 1 includes three data transmission channels: BWE1, BWE2, and BWE3; if the number of currently available paths of BWE1 is 2, the number of currently available paths of BWE2 is 1, and the number of currently available paths of BWE3 is 1 ; Then the number of all currently available paths is 4, and at this time, it can be determined that the number of encodings is 3 or 2, etc.
  • the data transmission may be performed by using a preset sending method.
  • the specific implementation is as follows:
  • the sending the encoded data packet to the data receiving end through multipath transmission includes:
  • the preset transmission mode includes but not limited to min_rtt_scheduler (minimum delay scheduling) mode or polling mode.
  • the minimum delay initial data transmission channel is determined from the initial data transmission channel according to the sending mode of min_rtt_scheduler, and is transmitted as the target data transmission channel.
  • the polling transmission method is to determine a target data transmission channel for each encoded data packet through polling.
  • the initial data transmission channel includes 1-4, and there are available paths, and the encoded data packet is also 4, the first initial data transmission channel is transmitted as the target data transmission channel of the first encoded data packet, and the second initial data transmission channel is transmitted as the target data transmission channel of the second encoded data packet,
  • the third encoded data packet is transmitted through the third initial data transmission channel, and the fourth encoded data packet is transmitted through the fourth initial data transmission channel.
  • the data processing method provided by the embodiment of this specification is applied to the data sending end, including determining the queue length of the data queue corresponding to the original data packet; when the queue length is determined to be less than or equal to the queue length threshold, the The original data packet is sent to the data receiving end through multi-path transmission; or in the case of determining that the queue length is greater than the queue length threshold, data encoding is performed on the original data packet in the data queue to obtain the encoded data packet; The encoded data packet is sent to the data receiving end through multipath transmission.
  • the method can be applied to high-mobility multi-path transmission scenarios, and adopts data packet transmission based on queue length and a dynamic coding strategy to realize low-delay and high-efficiency data transmission.
  • 1-8 in FIG. 1 can be understood as 8 original data packets, and the numbers 1-8 can be understood as the queue position of each original data packet in the data queue.
  • the queue positions of unconfirmed original data packets in the data queues are 3-6 . If the original data packet at the tail of the queue at the current moment in the data queue is original data packet 8, then the queue position of the original data packet at the tail of the queue at the current moment in the data queue is 8.
  • the queue position of the unacknowledged original data packet and the queue position of the original data packet at the end of the team it can be calculated according to the queue position of the unconfirmed original data packet and the queue position of the original data packet at the tail of the team.
  • the queue length of the target queue; wherein, the target queue can be understood as a queue of lost original data packets.
  • the target queue represents: the earliest data packet that has not been acked (the confirmation message sent by the data receiving end to the data sending end to successfully receive the original data packet) at the current moment to the last original data packet that needs to be sent queue. Therefore, when determining the target queue, it is necessary to select the first target data packet from unacknowledged original data packets, and then accurately determine the target queue according to the queue position of the first target data packet and the queue position of the original data packet at the end of the queue the queue length.
  • the specific implementation is as follows:
  • the queue position of the unacknowledged original data packet and the queue position of the original data packet at the end of the queue settings to determine the queue length of the target queue including:
  • the unconfirmed original data packets are original data packet 3, original data packet 4, original data packet 5, and original data packet 6, it can be determined that the queue position of original data packet 3 is smaller than that of original data Packet 5, original data packet 6, then the first target data packet in the unconfirmed original data packet is the original data packet 3, and it can be determined that the queue position of the first target data packet in the unconfirmed original data packet is 3.
  • the queue length of the target queue is determined to be 5.
  • the data processing method provided by the embodiment of this specification can be applied to the video scene of real-time video transmission. If a video data packet is not acked, in fact, the video frame corresponding to the video data packet cannot be decoded, because The decoding of the following video frames depends on the previous video frames, which means that the decoding of all video frames corresponding to the latest video data packets from the unacked video data packet will introduce delay. In order to avoid excessive delay, the data During the transmission process, when the queue length of the target queue exceeds a certain threshold, the retransmission encoding is enabled to ensure the correct and low-latency decoding of subsequent videos and improve the user's video viewing experience.
  • the specific implementation is as follows:
  • the lost original data packet is determined according to the queue position of the first target data packet and the queue position of the original data packet at the tail of the queue , wherein the sent original data packet is the original data packet sent to the data receiving end.
  • the preset length threshold can be set according to actual applications, and is not limited in this embodiment of the specification.
  • the preset length threshold is 5, 6 and so on.
  • the queue length of the target queue is 5 and the preset length threshold is 5, it can be determined that the queue length of the target queue is equal to the preset length threshold. At this time, the queue position of the first target data packet and the The queue position of the original data packet at the end of the queue to determine the lost original data packet.
  • the specific implementation is as follows:
  • the determining the lost original data packet according to the queue position of the first target data packet and the queue position of the original data packet at the end of the queue includes:
  • the preset calculation rule can be set according to the actual application, for example, the preset calculation rule is the original number of the queue tail Add 1 to the difference between the queue position of the data packet and the queue position of the first target data packet.
  • the original data packets in the window in FIG. 1 are all lost original data packets.
  • the lost original data packet can be accurately obtained, and the subsequent coding method of the sliding window can be used , that is, the data packets (lost original data packets) participating in encoding all belong to a sliding window, and the retransmission of the lost original data packets is performed.
  • whether to retransmit the lost original data packet is an important procedure that needs to be analyzed according to the lost original data packet to determine the specific data contained in the lost original data packet It is determined; only when it is determined that the lost original data packet is indeed the original data packet that needs to be retransmitted, it will be encoded and retransmitted.
  • the specific implementation is as follows:
  • the original data packet After the original data packet is determined to be lost, it also includes:
  • the lost original data packet is an original data packet to be retransmitted according to the analysis result, encoding the lost original data packet to generate a retransmission encoded packet;
  • any analysis method can be used to analyze the lost original data packet to determine the content in the lost original data packet, and then determine the lost original data packet as the original data to be retransmitted according to the analysis result
  • a packet such as an original data packet whose data content is important and needs to be retransmitted
  • encode the lost original data packet to generate a retransmission encoded packet; send the retransmitted encoded packet to the data receiving end through multipath transmission .
  • the lost original data packet when determining whether the lost original data packet is the original data packet to be retransmitted, it needs to be determined in combination with the actual application scenario. For example, in the video transmission scenario, in order to ensure the integrity of the video, each All lost original data packets are coded and retransmitted; in the file transfer scenario, according to the importance level of the file, the lost original data packet containing a file with a higher level can be selected as the original data packet to be retransmitted for subsequent Encoded retransmission to save network overhead.
  • the number of retransmitted encoded packets can be determined according to the number of remaining available paths of the current data transmission channel, so as to ensure that the number of retransmitted encoded packets is less than that of the current data transmission The number of remaining available paths for the channel.
  • the encoding of the lost original data packet to generate the retransmission encoded packet includes:
  • Data encoding is performed on the lost original data packets by random linear network coding to obtain retransmission encoded packets having the same number of encodings.
  • the multipath transmission includes multiple data transmission channels, and each data transmission channel includes multiple paths.
  • a data transmission channel can transmit 100 data packets at the same time, then there are 50 data packets currently being transmitted, and then the number of remaining available paths is 50.
  • the data sender first determines the number of all currently available paths of multiple data transmission channels in multi-path transmission, and then determines the number of encodings according to the number of currently available paths; then performs data encoding on the lost original data packets through random linear network coding , get the same number of retransmitted encoded packets as encoded.
  • the determined number of codes can be smaller than the number of currently available paths.
  • Figure 1 includes three data transmission channels: BWE1, BWE2, and BWE3; if the number of currently available paths of BWE1 is 2, the number of currently available paths of BWE2 is 1, and the number of currently available paths of BWE3 is 1 ; Then the number of all currently available paths is 4, and at this time, it can be determined that the number of encodings is 3 or 2, etc.
  • the sending the retransmission coded packet to the data receiving end through the multipath transmission method includes:
  • the preset transmission mode includes but not limited to min_rtt_scheduler (minimum delay scheduling) mode or polling mode.
  • the initial data transmission channel with the minimum delay is determined from the initial data transmission channel according to the sending mode of min_rtt_scheduler, and is transmitted as the target data transmission channel.
  • the polling sending method is to determine a target data transmission channel for each retransmission coded packet by polling.
  • the initial data transmission channel includes 1-4, and there are available paths, and the retransmission coded packet If there are also 4, the first initial data transmission channel is used as the target data transmission channel of the first retransmission coded packet, and the second initial data transmission channel is used as the target data transmission of the second retransmission coded packet channel for transmission, and so on, the third retransmission coded packet is transmitted through the third initial data transmission channel, and the fourth retransmission coded packet is transmitted through the fourth initial data transmission channel.
  • the data processing method provided by the embodiment of this specification proposes a random linear coding (System RLNC) network transmission method for tunneling, based on RLNC for forward data error correction of data, and overcomes the technical problem of high packet loss rate of wireless links ;
  • System RLNC random linear coding
  • the use of RLNC's non-fixed code rate rateless and random properties increases the resistance to random and continuous packet loss in multi-path transmission;
  • a token bucket mode system RLNC code is proposed, and the original data is sent first in the encoding packets, and then send encoded data packets, the number of encoded data packets sent depends on the number of tokens, which is equivalent to the "budget" for encoding.
  • the token increases with time, and the number of tokens decreases correspondingly every time an encoded packet is sent; and a sliding window encoding method is proposed, that is, the data packets participating in encoding belong to a sliding window, and a dynamic encoding based on queue length is proposed Strategy, when the length of the data queue in the CPE is less than a threshold, send the original data packet (do not send the encoded message), when the length of the data queue in the CPE is greater than a threshold, send the encoded data message, and the encoded data message is sent The number of is determined by the number of tokens.
  • FIG. 3 shows a schematic structural diagram of a data processing device provided by an embodiment of this specification. As shown in Figure 3, the device is applied to the data sending end, including:
  • the queue length determination module 302 is configured to determine the queue length of the data queue corresponding to the original data packet, wherein the original data packet is a data packet waiting to be sent to the data receiving end;
  • the original data packet sending module 304 is configured to send the original data packet in the data queue to the data receiving end through multi-path transmission when it is determined that the queue length is less than or equal to the queue length threshold;
  • the encoded data packet obtaining module 306 is configured to perform data encoding on the original data packets in the data queue to obtain encoded data packets when it is determined that the queue length is greater than the queue length threshold;
  • the coded data packet sending module 308 is configured to send the coded data packet to the data receiving end through multi-path transmission.
  • the encoded data packet obtaining module 306 is further configured to:
  • Data coding is performed on the original data packets in the data queue by random linear network coding to obtain the same number of coded data packets as the coded data packets.
  • the device after the device, it also includes:
  • a queue length determination module configured to:
  • the queue length determination module is further configured to:
  • the device also includes:
  • the packet loss determination module is configured to:
  • the lost original data packet is determined according to the queue position of the first target data packet and the queue position of the original data packet at the tail of the queue , wherein the sent original data packet is the original data packet sent to the data receiving end.
  • the packet loss determining module is further configured to:
  • the device also includes:
  • the packet loss retransmission module is configured as:
  • the lost original data packet is an original data packet to be retransmitted according to the analysis result, encoding the lost original data packet to generate a retransmission encoded packet;
  • the packet loss retransmission module is further configured to:
  • the encoded data packet sending module 308 is further configured to:
  • the packet loss retransmission module is further configured to:
  • the data processing device provided in the embodiment of this specification is applied to the data sending end, including determining the queue length of the data queue corresponding to the original data packet; when the queue length is determined to be less than or equal to the queue length threshold, the original The data packet is sent to the data receiving end through multi-path transmission; or in the case of determining that the queue length is greater than the queue length threshold, data encoding is performed on the original data packet in the data queue to obtain an encoded data packet; The data packet is sent to the data receiving end through multi-path transmission.
  • the method can be applied to high-mobility multi-path transmission scenarios, and adopts data packet transmission based on queue length and a dynamic coding strategy to realize low-delay and high-efficiency data transmission.
  • FIG. 4 shows a flow chart of a video transmission method provided according to an embodiment of this specification, which specifically includes the following steps:
  • Step 402 The video data sending end splits the video to be played into video frames, packs the video frames into original video data packets and sends them to the data queue, and determines the queue of the data queue corresponding to the original video data packets length, wherein the original video data packet is a data packet waiting to be sent to the video data receiving end, and when it is determined that the queue length is less than or equal to the queue length threshold, the original video data packet in the data queue Send to the video data receiving end through multi-path transmission, or in the case of determining that the queue length is greater than the queue length threshold, perform data encoding on the original video data packets in the data queue to obtain the encoded video A data packet, sending the coded video data packet to the video data receiving end through multi-path transmission.
  • the video transmission method provided by the embodiment of this specification can be applied to CPE equipment.
  • the CPE equipment is installed in the vehicle, and is used to transfer the video data of the 4G/5G signal to the CPE equipment during the high-speed movement of the vehicle.
  • the data is converted into video data based on the WIFI signal and sent to the terminal for video playback.
  • the CPE device can also be used as the on-board device of the vehicle, and communicate with the vehicle's video playback on-board device through wireless communication technology to form a car networking system (of course, in practical applications, the car networking system does not It is not necessarily necessary to use CPE equipment to interconnect with other vehicle-mounted equipment to realize signal conversion, and other signal conversion equipment can also be used.
  • This manual The embodiment is not limited in any way here); thereby realizing the conversion of video data based on 4G/5G signals received from the information network platform into video data of WIFI signals, and also supporting multiple other mobile terminals surfing the Internet at the same time. In this way, the efficiency of video playback during high-speed vehicle movement is improved, and the user's video viewing experience is improved.
  • the video data sending end can be understood as the video data sending end of the CPE equipment;
  • the video data receiving end can be understood as any type of video receiving terminal (such as mobile phone, tablet computer, vehicle terminal, etc.);
  • After the video data of the 4G/5G signal it is converted into the video data of the WIFI signal, and then the converted video data is split into video frames, and after being packaged into original video data packets, the video data transmission according to the embodiment of this specification
  • the method is sent to the video receiving terminal, so that the user can watch the video smoothly and without stuttering through the video receiving terminal during high-speed movement.
  • the video data sending end of the CPE device splits the transcoded video to be played into video frames, and packs the video frames into original video data packets and sends them to the data queue; in the process of sending the original video data packets
  • the video sender will obtain the queue length of the data queue in real time.
  • the queue length threshold it can be considered that the original video data packets in the data queue have not accumulated.
  • the original video data packets in the data queue are sent to the video data receiving end through multi-path transmission, and the video data receiving end can directly split and play the original video data packets after receiving the original video data packets.
  • the video data sending end can encode the original video data packets in the data queue to obtain the encoded video data packets, and then send the encoded video data packets to the video data receiving end through multi-path transmission, and the video data receiving The terminal receives the encoded video data packet to decode, then split and play. Thereby improving data transmission efficiency and ensuring low-latency and smooth video playback.
  • Step 402 The video data receiver performs video playback according to the received original video data packet and/or the encoded video data packet.
  • the video data receiving end when the video data receiving end receives the original video data packet sent by the video sending end, it can directly unpack to obtain the video frame for video playback, and in the case of obtaining the encoded video data packet, first encode the The video data packets are decoded and unpacked to obtain video frames for video playback.
  • the video data sender will monitor the queue length of the data queue in real time, and when the queue length of the data queue is less than or equal to the queue length threshold, send the video data to the video data receiver.
  • the original video data packet and when the queue length of the data queue is greater than the queue length threshold, the encoded video data packet is sent to the video data receiving end, and the transcoded video data according to the WIFI signal is sent to the terminal through this dynamic adjustment strategy Implement video playback.
  • the original video data packets can be encoded by random linear network coding, and transmitted through multipath
  • the data encoding of the original video data packets in the data queue to obtain the encoded video data packets includes:
  • Data encoding is performed on the original video data packets in the data queue by random linear network coding to obtain the same number of encoded video data packets as the encoding number.
  • data encoding is performed on the original video data packets in the data queue to obtain encoded video data packets.
  • the video transmission method provided in the embodiment of this specification can be applied to any high-speed moving vehicle equipped with CPE equipment, such as logistics vehicles, public service vehicles, medical service vehicles, terminal service vehicles, etc., and is not limited to CPE equipment, any In a vehicle moving at high speed, any device that can implement data transmission can be used.
  • CPE equipment such as logistics vehicles, public service vehicles, medical service vehicles, terminal service vehicles, etc.
  • any device that can implement data transmission can be used.
  • the embodiment of this specification only uses the CPE device as an example for illustration, but does not make any limitation.
  • FIG. 5 shows a schematic structural diagram of a video transmission system provided according to an embodiment of the present specification.
  • a video transmission system includes a video data sending end 502 of a CPE device, and a video data receiving end 504 connected to the CPE device, wherein,
  • the video data sending end 502 splits the video to be played into video frames, and packs the video frames into original video data packets and sends them to the data queue,
  • the original video data packet is a data packet waiting to be sent to the video data receiving end
  • the video data receiving end 504 performs video playback according to the received original video data packets and/or the encoded video data packets.
  • the video transmission system provided in the embodiment of this specification includes a video data sending end 502 of a CPE device, and a video data receiving end 504 connected to the CPE device; in a specific application, the video transmission system is applied to a high-mobility multi-path transmission scenario, The transmission of dynamic video data packets based on queue length and dynamic coding strategy are adopted to realize low-latency and high-efficiency transmission of video data.
  • FIG. 6 shows a structural block diagram of a computing device 600 provided according to an embodiment of this specification.
  • Components of the computing device 600 include, but are not limited to, memory 610 and processor 620 .
  • the processor 620 is connected to the memory 610 through the bus 630, and the database 650 is used for saving data.
  • Computing device 600 also includes an access device 640 that enables computing device 600 to communicate via one or more networks 660 .
  • networks include the Public Switched Telephone Network (PSTN), Local Area Network (LAN), Wide Area Network (WAN), Personal Area Network (PAN), or a combination of communication networks such as the Internet.
  • Access device 640 may include one or more of any type of network interface (e.g., a network interface card (NIC)), wired or wireless, such as an IEEE 802.11 wireless local area network (WLAN) wireless interface, Worldwide Interoperability for Microwave Access ( Wi-MAX) interface, Ethernet interface, Universal Serial Bus (USB) interface, cellular network interface, Bluetooth interface, Near Field Communication (NFC) interface, etc.
  • NIC network interface card
  • the above-mentioned components of the computing device 600 and other components not shown in FIG. 6 may also be connected to each other, for example, through a bus. It should be understood that the structural block diagram of the computing device shown in FIG. 6 is only for the purpose of illustration, rather than limiting the scope of this description. Those skilled in the art can add or replace other components as needed.
  • Computing device 600 may be any type of stationary or mobile computing device, including mobile computers or mobile computing devices (e.g., tablet computers, personal digital assistants, laptop computers, notebook computers, netbooks, etc.), mobile telephones (e.g., smartphones), ), wearable computing devices (eg, smart watches, smart glasses, etc.), or other types of mobile devices, or stationary computing devices such as desktop computers or PCs.
  • mobile computers or mobile computing devices e.g., tablet computers, personal digital assistants, laptop computers, notebook computers, netbooks, etc.
  • mobile telephones e.g., smartphones
  • wearable computing devices eg, smart watches, smart glasses, etc.
  • desktop computers or PCs e.g., desktop computers or PCs.
  • Computing device 600 may also be a mobile or stationary server.
  • the processor 620 is configured to execute the following computer-executable instructions.
  • the steps of the above-mentioned data processing method or video transmission method are implemented.
  • An embodiment of the present specification further provides a computer program, wherein, when the computer program is executed in a computer, the computer is caused to execute the steps of the above-mentioned data processing method or video transmission method.
  • the computer instructions include computer program code, which may be in source code form, object code form, executable file or some intermediate form or the like.
  • the computer-readable medium may include: any entity or device capable of carrying the computer program code, a recording medium, a USB flash drive, a removable hard disk, a magnetic disk, an optical disk, a computer memory, and a read-only memory (ROM, Read-Only Memory) , Random Access Memory (RAM, Random Access Memory), electrical carrier signal, telecommunication signal and software distribution medium, etc.
  • ROM Read-Only Memory
  • RAM Random Access Memory
  • electrical carrier signal telecommunication signal and software distribution medium, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Provided in the embodiments of the present description are a data processing method and apparatus. The data processing method comprises: determining a queue length of a data queue corresponding to an original data packet; when it is determined that the queue length is less than or equal to a queue length threshold value, sending, to a data receiving end, the original data packet in the data queue by means of a multipath transport mode; or when it is determined that the queue length is greater than the queue length threshold value, performing data coding on the original data packet in the data queue, so as to obtain a coded data packet; and sending the coded data packet to the data receiving end by means of the multipath transport mode. The method may be applied to a high-mobility multipath transport scenario, and low-latency and high-efficiency transport of data is realized by using a data packet sending and dynamic coding strategy based on a queue length.

Description

数据处理方法及装置Data processing method and device
本申请要求于2022年02月25日提交中国专利局、申请号为202210182252.5、申请名称为“数据处理方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application with the application number 202210182252.5 and the application title "data processing method and device" submitted to the China Patent Office on February 25, 2022, the entire contents of which are incorporated in this application by reference.
技术领域technical field
本说明书实施例涉及计算机网络技术领域,特别涉及一种数据处理方法。The embodiments of this specification relate to the technical field of computer networks, and in particular to a data processing method.
背景技术Background technique
在传统的网络传输系统中,在两节点之间的传输路径确定后,该两节点之间所有的报文都是沿着这个路径进行传输,那么所有的流量都集中在一条路径上,很容易产生拥塞。In a traditional network transmission system, after the transmission path between two nodes is determined, all messages between the two nodes are transmitted along this path, so all traffic is concentrated on one path, which is easy Congestion occurs.
现有技术解决上述问题的方法是采用多路径传输(Multipath Transport):通信数据同时在两条以上的物理路径上传输。例如在移动通信中同时使用4G和wifi传输视频和文件,或者利用多个4G或5G模组同时传输数据。但是目前的多路径传输的方案在进行数据传输时,均存在数据传输延时高、传输效率低的问题。The method for solving the above problems in the prior art is to adopt multipath transport (Multipath Transport): communication data is transmitted on more than two physical paths at the same time. For example, use 4G and wifi to transmit video and files at the same time in mobile communication, or use multiple 4G or 5G modules to transmit data at the same time. However, the current multi-path transmission schemes all have the problems of high data transmission delay and low transmission efficiency when performing data transmission.
发明内容Contents of the invention
有鉴于此,本说明书实施例提供了一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种视频传输方法及系统,一种计算设备,一种计算机可读存储介质、一种计算机程序以及一种自动驾驶车辆,以解决现有技术中存在的技术缺陷。In view of this, the embodiment of this specification provides a data processing method. One or more embodiments of this specification also relate to a data processing device, a video transmission method and system, a computing device, a computer-readable storage medium, a computer program, and a self-driving vehicle to solve Technical defects existing in the prior art.
根据本说明书实施例的第一方面,提供了一种数据处理方法,应用于数据发送端,包括:According to the first aspect of the embodiments of this specification, there is provided a data processing method applied to a data sending end, including:
确定原始数据包对应的数据队列的队列长度,其中,所述原始数据包为等待向数据接收端发送的数据包;Determine the queue length of the data queue corresponding to the original data packet, wherein the original data packet is a data packet waiting to be sent to the data receiving end;
在确定所述队列长度小于等于队列长度阈值的情况下,将所述数据队列中的原始数据包通过多路径传输的方式发送至所述数据接收端;或者When it is determined that the queue length is less than or equal to the queue length threshold, sending the original data packet in the data queue to the data receiving end through multipath transmission; or
在确定所述队列长度大于所述队列长度阈值的情况下,对所述数据队列中的原始数据包进行数据编码,获得编码数据包;When it is determined that the queue length is greater than the queue length threshold, data encoding is performed on the original data packets in the data queue to obtain encoded data packets;
将所述编码数据包通过多路径传输的方式发送至所述数据接收端。and sending the coded data packet to the data receiving end through multipath transmission.
根据本说明书实施例的第二方面,提供了一种应用于数据发送端,包括:According to the second aspect of the embodiment of this specification, there is provided a data sending end, including:
队列长度确定模块,被配置为确定原始数据包对应的数据队列的队列长度,其中,所述原始数据包为等待向所述数据接收端发送的数据包;A queue length determination module configured to determine the queue length of the data queue corresponding to the original data packet, wherein the original data packet is a data packet waiting to be sent to the data receiving end;
原始数据包发送模块,被配置为在确定所述队列长度小于等于队列长度阈值的情况下, 将所述数据队列中的原始数据包通过多路径传输的方式发送至所述数据接收端;或者The original data packet sending module is configured to, when it is determined that the queue length is less than or equal to the queue length threshold, sending the original data packets in the data queue to the data receiving end through multipath transmission; or
编码数据包获得模块,被配置为在确定所述队列长度大于所述队列长度阈值的情况下,对所述数据队列中的原始数据包进行数据编码,获得编码数据包;An encoded data packet obtaining module configured to perform data encoding on the original data packets in the data queue to obtain encoded data packets when it is determined that the queue length is greater than the queue length threshold;
编码数据包发送模块,被配置为将所述编码数据包通过多路径传输的方式发送至所述数据接收端。The coded data packet sending module is configured to send the coded data packet to the data receiving end through multi-path transmission.
根据本说明书实施例的第三方面,提供了一种视频传输方法,包括:According to a third aspect of the embodiments of this specification, a video transmission method is provided, including:
视频数据发送端将待播放的视频拆分为视频帧,并将所述视频帧打包为原始视频数据包发送至数据队列,The video data sending end splits the video to be played into video frames, and packages the video frames into original video data packets and sends them to the data queue,
确定所述原始视频数据包对应的所述数据队列的队列长度,其中,所述原始视频数据包为等待向所述视频数据接收端发送的数据包,determining the queue length of the data queue corresponding to the original video data packet, wherein the original video data packet is a data packet waiting to be sent to the video data receiving end,
在确定所述队列长度小于等于队列长度阈值的情况下,将所述数据队列中的原始视频数据包通过多路径传输的方式发送至所述视频数据接收端,或者When it is determined that the queue length is less than or equal to the queue length threshold, sending the original video data packets in the data queue to the video data receiving end through multipath transmission, or
在确定所述队列长度大于所述队列长度阈值的情况下,对所述数据队列中的原始视频数据包进行数据编码,获得编码视频数据包,In the case of determining that the queue length is greater than the queue length threshold, data encoding is performed on the original video data packets in the data queue to obtain coded video data packets,
将所述编码视频数据包通过多路径传输的方式发送至所述视频数据接收端;Send the encoded video data packet to the video data receiving end through multi-path transmission;
所述视频数据接收端根据接收的所述原始视频数据包和/或所述编码视频数据包进行视频播放。The video data receiving end performs video playback according to the received original video data packets and/or the encoded video data packets.
根据本说明书实施例的第四方面,提供了一种视频传输系统,包括视频数据发送端和视频数据接收端,其中:According to the fourth aspect of the embodiments of this specification, a video transmission system is provided, including a video data sending end and a video data receiving end, wherein:
所述视频数据发送端,将待播放的视频拆分为视频帧,并将所述视频帧打包为原始视频数据包发送至数据队列,The video data sending end splits the video to be played into video frames, and packs the video frames into original video data packets and sends them to the data queue,
确定所述原始视频数据包对应的所述数据队列的队列长度,其中,所述原始视频数据包为等待向所述视频数据接收端发送的数据包,determining the queue length of the data queue corresponding to the original video data packet, wherein the original video data packet is a data packet waiting to be sent to the video data receiving end,
在确定所述队列长度小于等于队列长度阈值的情况下,将所述数据队列中的原始视频数据包通过多路径传输的方式发送至所述视频数据接收端,或者When it is determined that the queue length is less than or equal to the queue length threshold, sending the original video data packets in the data queue to the video data receiving end through multipath transmission, or
在确定所述队列长度大于所述队列长度阈值的情况下,对所述数据队列中的原始视频数据包进行数据编码,获得编码视频数据包,In the case of determining that the queue length is greater than the queue length threshold, data encoding is performed on the original video data packets in the data queue to obtain coded video data packets,
将所述编码视频数据包通过多路径传输的方式发送至所述视频数据接收端;Send the encoded video data packet to the video data receiving end through multi-path transmission;
所述视频数据接收端,根据接收的所述原始视频数据包和/或所述编码视频数据包进行视频播放。The video data receiving end performs video playback according to the received original video data packets and/or the encoded video data packets.
根据本说明书实施例的第五方面,提供了一种计算设备,包括:According to a fifth aspect of the embodiments of this specification, a computing device is provided, including:
存储器和处理器; memory and processor;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法或视频传输方法的步骤。The memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions. When the computer-executable instructions are executed by the processor, the steps of the above-mentioned data processing method or video transmission method are realized.
根据本说明书实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述数据处理方法或视频传输方法的步骤。According to a sixth aspect of the embodiments of the present specification, there is provided a computer-readable storage medium, which stores computer-executable instructions, and when the instructions are executed by a processor, the steps of the above-mentioned data processing method or video transmission method are implemented.
根据本说明书实施例的第七方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法或视频传输方法的步骤。According to a seventh aspect of the embodiments of the present specification, there is provided a computer program, wherein, when the computer program is executed in a computer, it causes the computer to execute the steps of the above-mentioned data processing method or video transmission method.
根据本说明书实施例的第八方面,提供了一种自动驾驶车辆,所述自动驾驶车辆包括上述的计算设备、和/或上述的计算机可读存储介质。According to an eighth aspect of the embodiments of the present specification, an autonomous vehicle is provided, and the autonomous vehicle includes the above-mentioned computing device, and/or the above-mentioned computer-readable storage medium.
本说明书一个实施例实现了一种数据处理方法,所述方法应用于数据发送端,包括确定原始数据包对应的数据队列的队列长度;在确定队列长度小于等于队列长度阈值的情况下,将数据队列中的原始数据包通过多路径传输的方式发送至数据接收端;或者在确定所述队列长度大于所述队列长度阈值的情况下,对数据队列中的原始数据包进行数据编码,获得编码数据包;将编码数据包通过多路径传输的方式发送至数据接收端。所述方法可以应用于高移动多路径传输场景中,采用基于队列长度的数据包发送以及动态编码策略,实现数据的低延时、高效率传输。An embodiment of this specification implements a data processing method, the method is applied to the data sending end, including determining the queue length of the data queue corresponding to the original data packet; when the queue length is determined to be less than or equal to the queue length threshold, the data The original data packets in the queue are sent to the data receiving end through multi-path transmission; or in the case of determining that the queue length is greater than the queue length threshold, data encoding is performed on the original data packets in the data queue to obtain encoded data Packet; send the encoded data packet to the data receiving end through multi-path transmission. The method can be applied to high-mobility multi-path transmission scenarios, and adopts data packet transmission based on queue length and a dynamic coding strategy to realize low-delay and high-efficiency data transmission.
附图说明Description of drawings
图1是本说明书一个实施例提供的一种数据处理方法中数据丢包重传的具体应用场景示意图;FIG. 1 is a schematic diagram of a specific application scenario of data packet loss and retransmission in a data processing method provided by an embodiment of this specification;
图2是本说明书一个实施例提供的一种数据处理方法的流程图;Fig. 2 is a flowchart of a data processing method provided by an embodiment of this specification;
图3是本说明书一个实施例提供的一种数据处理装置的结构示意图;Fig. 3 is a schematic structural diagram of a data processing device provided by an embodiment of this specification;
图4是本说明书一个实施例提供的一种视频传输方法的流程图;Fig. 4 is a flowchart of a video transmission method provided by an embodiment of this specification;
图5是本说明书一个实施例提供的一种视频传输系统的结构示意图;Fig. 5 is a schematic structural diagram of a video transmission system provided by an embodiment of this specification;
图6是本说明书一个实施例提供的一种计算设备的结构框图。Fig. 6 is a structural block diagram of a computing device provided by an embodiment of this specification.
具体实施方式Detailed ways
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。In the following description, numerous specific details are set forth in order to provide a thorough understanding of the specification. However, this specification can be implemented in many other ways different from those described here, and those skilled in the art can make similar extensions without violating the connotation of this specification, so this specification is not limited by the specific implementations disclosed below.
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。Terms used in one or more embodiments of this specification are for the purpose of describing specific embodiments only, and are not intended to limit one or more embodiments of this specification. As used in one or more embodiments of this specification and the appended claims, the singular forms "a", "the", and "the" are also intended to include the plural forms unless the context clearly dictates otherwise. It should also be understood that the term "and/or" used in one or more embodiments of the present specification refers to and includes any or all possible combinations of one or more associated listed items.
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各 种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。It should be understood that although the terms first, second, etc. may be used in one or more embodiments of this specification to describe each information, but such information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another. For example, the first may also be referred to as the second, and similarly, the second may also be referred to as the first without departing from the scope of one or more embodiments of the present specification. Depending on the context, the word "if" as used herein may be interpreted as "at" or "when" or "in response to a determination."
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。First, terms and terms involved in one or more embodiments of this specification are explained.
多路径传输(Multipath Transport):通信数据同时在两条以上的物理路径上传输。例如在移动通信中同时使用4G和wifi传输视频和文件,或者利用多个4G或5G模组同时传输数据。Multipath Transport: Communication data is transmitted on more than two physical paths at the same time. For example, use 4G and wifi to transmit video and files at the same time in mobile communication, or use multiple 4G or 5G modules to transmit data at the same time.
调度器(Scheduler):调度器是多路径传输中的一个决策模块,它的主要作用是决定一个将要发送的数据包(packet)会从哪一条路径(path)被分发。Scheduler: The scheduler is a decision-making module in multi-path transmission. Its main function is to decide which path (path) a packet to be sent will be distributed from.
调度(Scheduling):一个调度器将一个数据包按照某种算法和规则分配到某一条/几条路径的过程称之为调度。Scheduling: The process in which a scheduler assigns a data packet to a certain path/paths according to certain algorithms and rules is called scheduling.
QUIC传输协议:一种互联网传输层协议,它是一种位于用户态的传输协议,底层基于UDP,同时兼具TCP、TLS、HTTP/2等协议的可靠性与安全性,可以有效减少连接与传输延迟,更好地应对当前传输层与应用层的挑战。QUIC transport protocol: an Internet transport layer protocol, which is a transport protocol located in user mode. Transmission delay, to better meet the challenges of the current transport layer and application layer.
传输路径(Path):路径是两个通信节点之间所有连接和路由节点够成的一个数据通路。一条路径在逻辑上通常可以表示为(源IP,目的IP,源端口,目的端口)构成的四元组。Transmission path (Path): A path is a data path formed by all connections and routing nodes between two communication nodes. A path can be logically expressed as a quadruple composed of (source IP, destination IP, source port, destination port).
体验质量(QoE):是指用户对设备,网络和系统,应用或业务的质量和性能(包括有效性和可用性等方面)的综合主观感受,也就是从业务应用的舒适度来定义的。通过QoE评分运营商可以将用户对于视频业务质量和性能综合评介,优化网络。Quality of Experience (QoE): refers to the comprehensive subjective experience of users on the quality and performance (including effectiveness and availability) of equipment, networks and systems, applications or services, which is defined from the comfort of business applications. Through QoE scoring, operators can comprehensively evaluate users' video service quality and performance, and optimize the network.
高速无线网关(CPE):CPE就是一种将高速4G/5G信号转换成平板电脑、智能手机、笔记本等移动终端通用的WiFi信号的设备,可同时支持多部终端上网,在有蜂窝信号覆盖的地方,插上电源就能使用,不必拉网线,使用和携带都很方便。CPE的AP功能、路由器性能更强,可同时接平板电脑、智能手机、笔记本等移动终端几十个同时使用。具有较完整的用户认证功能及计费功能。High-speed wireless gateway (CPE): CPE is a device that converts high-speed 4G/5G signals into common WiFi signals for mobile terminals such as tablets, smartphones, and notebooks. It can support multiple terminals to access the Internet at the same time. place, it can be used by plugging in the power supply, no need to pull the network cable, and it is very convenient to use and carry. The AP function and router performance of the CPE are stronger, and it can be connected to dozens of mobile terminals such as tablets, smart phones, and notebooks at the same time. It has relatively complete user authentication function and billing function.
随机线性网络编码(RLNC):RLNC采用随机策略在中间节点进行再编码,其编码过程是多个数据报文的线性组合,中间节点在编码时随机地从有限域中选择编码系数对输入的数据进行编码,然后将编码后的数据发送出去。Random Linear Network Coding (RLNC): RLNC uses a random strategy to re-encode the intermediate nodes. The encoding process is a linear combination of multiple data messages. The intermediate nodes randomly select encoding coefficients from the finite field to input data during encoding. Encode and send the encoded data.
隧道技术(Tunneling):隧道技术是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将这些其他协议的数据帧或包重新封装在新的包头中发送。新的包头提供了路由信息,从而使封装的负载数据能够通过互联网络传递。Tunneling: Tunneling is a method of passing data between networks by using the infrastructure of the Internet. The data (or payload) transmitted through the tunnel may be data frames or packets of different protocols. The tunneling protocol re-encapsulates the data frames or packets of these other protocols in new packet headers and sends them. The new header provides routing information so that the encapsulated payload data can be passed across the Internet.
本说明书实施例提供的数据处理方法可以应用于车联网场景中,但并不仅限于该场景,也可以应用于其他的市场订单大的场景中,例如外卖送餐场景中。为了便于理解,本说明 书实施例中均以该数据处理方法应用于车联网场景进行具体介绍。The data processing method provided in the embodiment of this specification can be applied to the Internet of Vehicles scenario, but is not limited to this scenario, and can also be applied to other scenarios with large market orders, such as takeaway meal delivery scenarios. For ease of understanding, this description In the embodiments of the book, the data processing method is applied to the scene of the Internet of Vehicles for specific introduction.
在车联网场景中,一般采用多路径QUIC技术利用多个无线链路提供高性能聚合隧道服务,但是车联网市场的订单大、利润率高,因此对于数据传输服务质量要求严格、特别是在高速移动过程中要提供大带宽、低延时、无卡顿的流畅连接体验。本说明书实施例提供的数据处理方法,即可以理解为一种基于网络编码的多路径聚合方案,可以使高移动多路径传输同时保持低延时、大带宽,且具有良好的抗丢包能力。In the Internet of Vehicles scenario, multi-path QUIC technology is generally used to provide high-performance aggregation tunnel services by using multiple wireless links. During the mobile process, it is necessary to provide a smooth connection experience with large bandwidth, low latency, and no stuttering. The data processing method provided by the embodiment of this specification can be understood as a multi-path aggregation scheme based on network coding, which can enable high-mobility multi-path transmission while maintaining low delay, large bandwidth, and good anti-packet loss capability.
在本说明书中,提供了一种数据处理方法,本说明书同时涉及一种数据处理装置,一种视频传输方法及装置,一种计算设备,一种计算机可读存储介质以及一种自动驾驶车辆,在下面的实施例中逐一进行详细说明。In this specification, a data processing method is provided, and this specification also relates to a data processing device, a video transmission method and device, a computing device, a computer-readable storage medium, and an automatic driving vehicle, Each will be described in detail in the following examples.
参见图1,图1示出了根据本说明书一个实施例提供的一种数据处理方法中数据丢包重传的具体应用场景示意图。Referring to FIG. 1 , FIG. 1 shows a schematic diagram of a specific application scenario of data packet retransmission in a data processing method according to an embodiment of the present specification.
图1中包括数据发送端102、传输路径104(BWE1-3)、数据接收端106。FIG. 1 includes a data sending end 102, a transmission path 104 (BWE1-3), and a data receiving end 106.
具体进行数据传输时,数据包流入数据发送端102(即隧道入口),隧道程序对数据包1-8进行编码和封装,再将编码和封装完成的数据包1-8分配到多条传输路径(多路径传输)104进行传输;数据接收端106(即隧道的另一端)对编码和封装完成的数据包1-8进行接收,并对这些编码和封装完成的数据包1-8进行解码,且将解码完成的数据包1-8转发到下一跳(下一跳就是指路由器路由选择的下面一次跳跃)。During specific data transmission, the data packets flow into the data sending end 102 (i.e. the tunnel entrance), the tunnel program encodes and encapsulates the data packets 1-8, and then distributes the encoded and encapsulated data packets 1-8 to multiple transmission paths (Multipath transmission) 104 transmits; Data receiver 106 (being the other end of the tunnel) receives the data packets 1-8 that have been coded and encapsulated, and decodes the data packets 1-8 that have been coded and encapsulated, And the decoded data packets 1-8 are forwarded to the next hop (the next hop refers to the next hop selected by the router).
而在数据包发送的过程中,数据发送端102确定数据接收端106没有全部接收到其发送的数据包的情况下,则可以确定数据传输过程中丢失的原始数据包,例如数据包2-6;再通过RLNC的编码方式对丢失的原始数据包2-6进行重传编码,形成重传编码包(如图1中的ΣP),并将编码后形成的编码包通过多条传输路径104进行重传;克服高移动场景中出现的随机连续丢包的问题。In the process of sending data packets, if the data sending end 102 determines that the data receiving end 106 has not received all the data packets sent by it, it can determine the original data packets lost in the data transmission process, such as data packets 2-6 Carry out retransmission coding to lost original data packet 2-6 again by the coding mode of RLNC, form the retransmission coding packet (as ΣP in Fig. 1), and the coding packet that forms after coding is carried out by a plurality of transmission paths 104 Retransmission; to overcome the problem of random continuous packet loss in high mobility scenarios.
参见图2,图2示出了根据本说明书一个实施例提供的一种数据处理方法的流程图,其中,所述数据处理方法应用于数据发送端,具体包括以下步骤。Referring to FIG. 2 , FIG. 2 shows a flowchart of a data processing method according to an embodiment of the present specification, wherein the data processing method is applied to a data sending end, and specifically includes the following steps.
步骤202:确定原始数据包对应的数据队列的队列长度,其中,所述原始数据包为等待向数据接收端发送的数据包。Step 202: Determine the queue length of the data queue corresponding to the original data packet, where the original data packet is a data packet waiting to be sent to the data receiving end.
具体的,本说明书实施例提供的数据处理方法可以应用于CPE设备,该CPE设备包括多个SIM(Subscriber Identity Module,用户识别卡)卡模组、0个或若干个以太网WAN(Wide Area Network,广域网)口、0个或若干个以太网LAN(local area network,局域网)口,支持0个或多个WiFi频段接入,安装有操作系统。Specifically, the data processing method provided by the embodiment of this specification can be applied to CPE equipment, and the CPE equipment includes multiple SIM (Subscriber Identity Module, subscriber identification card) card modules, zero or several Ethernet WAN (Wide Area Network , WAN) port, 0 or several Ethernet LAN (local area network, local area network) ports, support 0 or more WiFi frequency band access, and an operating system is installed.
其中,原始数据包可以为任意类型的数据包,例如视频数据包、音频数据包或者是文件数据包等。Wherein, the original data packet may be any type of data packet, such as a video data packet, an audio data packet, or a file data packet.
数据传输时,数据发送端会将待发送的原始数据包放置到数据队列中,通过数据队列发送至数据接收端,其中,数据队列为先进先出原则;因此,数据队列的队列长度可以理 解为数据队列中缓存的原始数据包的长度;例如数据发送端在进行原始数据包发送时,确定当前数据队列中缓存有3个原始数据包,则可以确定该原始数据包对应的数据队列的队列长度为3。During data transmission, the data sending end will place the original data packet to be sent in the data queue, and send it to the data receiving end through the data queue, where the data queue follows the first-in-first-out principle; therefore, the queue length of the data queue can be reasonably The solution is the length of the original data packet cached in the data queue; for example, when the data sender is sending the original data packet, if it is determined that there are 3 original data packets cached in the current data queue, then the length of the data queue corresponding to the original data packet can be determined The queue length is 3.
步骤204:在确定所述队列长度小于等于队列长度阈值的情况下,将所述数据队列中的原始数据包通过多路径传输的方式发送至所述数据接收端。Step 204: When it is determined that the queue length is less than or equal to the queue length threshold, send the original data packets in the data queue to the data receiving end through multi-path transmission.
其中,队列长度阈值可以根据实际应用进行设置,本说明书实施例对此不作任何限定;例如实际应用中,在队列长度超过8的情况下,则可以确定数据队列中缓存的原始数据包过多,可能会造成原始数据包的发送延时,此时,则可以将队列长度阈值设置为7。Wherein, the queue length threshold can be set according to the actual application, and the embodiment of this specification does not make any limitation on this; for example, in an actual application, when the queue length exceeds 8, it can be determined that there are too many original data packets cached in the data queue, It may cause a delay in sending the original data packet. At this time, the queue length threshold can be set to 7.
具体实施时,数据发送端每发送一个原始数据包之前均会判断,当前数据队列的队列长度是否小于等于队列长度阈值,若是,则将数据队列中的原始数据包通过多路径传输的方式发送至数据接收端。During specific implementation, the data sender will judge whether the queue length of the current data queue is less than or equal to the queue length threshold before sending an original data packet, and if so, send the original data packet in the data queue to the data receiver.
即数据发送端在确定当前数据队列的队列长度小于等于队列长度阈值的情况下,可以确定该数据队列中缓存的原始数据包还未造成堆积,一般不会造成发送延时,此时,则通过数据队列顺序向数据接收端发送原始数据包即可。That is, when the data sender determines that the queue length of the current data queue is less than or equal to the queue length threshold, it can determine that the original data packets cached in the data queue have not yet caused accumulation, and generally will not cause transmission delay. At this time, pass The data queue only needs to send the original data packets to the data receiving end sequentially.
步骤206:在确定所述队列长度大于所述队列长度阈值的情况下,对所述数据队列中的原始数据包进行数据编码,获得编码数据包。Step 206: When it is determined that the queue length is greater than the queue length threshold, perform data encoding on the original data packets in the data queue to obtain encoded data packets.
实际应用中,在数据发送端在确定当前数据队列的队列长度大于队列长度阈值的情况下,可以确定该数据队列中缓存的原始数据包可能未造成了堆积,后续可能会造成数据发送延时,此时,则可以对数据队列中的原始数据包进行数据编码,获得编码数据包,后续可以通过编码数据包的方式向数据接收端进行数据。In practical applications, when the data sending end determines that the queue length of the current data queue is greater than the queue length threshold, it can be determined that the original data packets cached in the data queue may not cause accumulation, and subsequent data transmission may be delayed. At this point, data encoding can be performed on the original data packets in the data queue to obtain encoded data packets, and then data can be sent to the data receiving end by means of encoded data packets.
步骤208:将所述编码数据包通过多路径传输的方式发送至所述数据接收端。Step 208: Send the coded data packet to the data receiving end through multipath transmission.
而在获取编码数据包的情况下,则可以将该编码数据包通过多路径传输的方式发送至数据接收端。In the case of obtaining the coded data packet, the coded data packet can be sent to the data receiving end through multi-path transmission.
实际应用中,为了克服任意一条路径的突然中断,避免高移动中随机连续丢包的发生,可以通过随机线性网络编码的方式对数据队列中的原始数据包进行数据编码;同时,多路径传输中包括多条数据传输通道,而每条数据传输通道的当前可用路径数量是有限的,那么为了避免在数据传输时,造成数据传输通道的堵塞,影响其他数据传输,在对数据队列中的原始数据包进行数据编码时,可以根据多路径传输中当前可用路径数量确定编码数据包的数量,从而保证后续编码数据包在发送时可以为多路径传输的数据传输通道预留出一部分可用路径进行其他数据传输。具体实现方式如下所述:In practical applications, in order to overcome the sudden interruption of any path and avoid the occurrence of random continuous packet loss in high mobility, the original data packets in the data queue can be encoded by random linear network coding; at the same time, in multi-path transmission Including multiple data transmission channels, and the number of currently available paths for each data transmission channel is limited, so in order to avoid the blockage of the data transmission channel during data transmission and affect other data transmissions, the original data in the data queue When packets are encoded, the number of encoded data packets can be determined according to the number of currently available paths in multipath transmission, so as to ensure that subsequent encoded data packets can reserve a part of the available paths for the data transmission channel of multipath transmission when sending other data. transmission. The specific implementation is as follows:
所述对所述数据队列中的原始数据包进行数据编码,获得编码数据包,包括:The data encoding of the original data packets in the data queue to obtain the encoded data packets includes:
确定多路径传输中的当前可用路径数量;determining the number of currently available paths in a multipath transmission;
根据所述当前可用路径数量,确定编码数量; Determine the number of codes according to the number of currently available paths;
通过随机线性网络编码对所述数据队列中的原始数据包进行数据编码,获得与所述编码数量相同的编码数据包。Data coding is performed on the original data packets in the data queue by random linear network coding to obtain the same number of coded data packets as the coded data packets.
其中,多路径传输中包括多条数据传输通道,每条数据传输通道又包括多条路径。例如,一条数据传输通道可以同时进行100个数据包的传输,那么当前处于传输中的有50个数据包,那么剩余的可用路径数量则为50个。Wherein, the multipath transmission includes multiple data transmission channels, and each data transmission channel includes multiple paths. For example, a data transmission channel can transmit 100 data packets at the same time, then there are 50 data packets currently being transmitted, and then the number of remaining available paths is 50.
具体的,数据发送端先确定多路径传输中多条数据传输通道的所有当前可用路径数量,再根据该当前可用路径数量确定编码数量;然后通过随机线性网络编码对数据队列中的原始数据包进行数据编码,获得与编码数量相同的编码数据包。Specifically, the data sender first determines the number of all currently available paths of multiple data transmission channels in multi-path transmission, and then determines the number of encodings according to the number of currently available paths; and then performs random linear network coding on the original data packets in the data queue. Data encoding to get as many encoded packets as there are encoded.
实际应用中,编码数量小于当前可用路径数量的情况下,可以避免数据传输堵塞,因此在确定当前可用路径数量之后,确定的编码数量可以小于其当前可用路径数量。In practical applications, when the number of codes is smaller than the number of currently available paths, data transmission congestion can be avoided. Therefore, after the number of currently available paths is determined, the determined number of codes can be smaller than the number of currently available paths.
参见上述实施例的图1,图1中包括三条数据传输通道:BWE1、BWE2、BWE3;若BWE1的当前可用路径数量为2,BWE2的当前可用路径数量为1、BWE3的当前可用路径数量为1;那么所有的的当前可用路径数量为4,此时则可以确定编码数量为3或2等。Referring to Figure 1 of the above embodiment, Figure 1 includes three data transmission channels: BWE1, BWE2, and BWE3; if the number of currently available paths of BWE1 is 2, the number of currently available paths of BWE2 is 1, and the number of currently available paths of BWE3 is 1 ; Then the number of all currently available paths is 4, and at this time, it can be determined that the number of encodings is 3 or 2, etc.
实际应用中,为了提高编码数据包的传输效率,可以采用预设的发送方式对其进行数据传输。具体实现方式如下所述:In practical applications, in order to improve the transmission efficiency of the coded data packets, the data transmission may be performed by using a preset sending method. The specific implementation is as follows:
所述将所述编码数据包通过多路径传输的方式发送至所述数据接收端,包括:The sending the encoded data packet to the data receiving end through multipath transmission includes:
根据预设发送方式从多路径传输的初始数据传输通道中,为所述编码数据包选择对应的目标数据传输通道;Selecting a corresponding target data transmission channel for the encoded data packet from the initial data transmission channels of multi-path transmission according to a preset transmission mode;
将所述编码数据包通过所述目标数据传输通道发送至所述数据接收端。sending the encoded data packet to the data receiving end through the target data transmission channel.
其中,预设发送方式包括但不限于min_rtt_scheduler(最小时延调度)的方式或者轮询的方式。Wherein, the preset transmission mode includes but not limited to min_rtt_scheduler (minimum delay scheduling) mode or polling mode.
以预设发送方式为min_rtt_scheduler为例,进行介绍。Take the default sending mode as min_rtt_scheduler as an example to introduce.
具体实施时,即每次进行一个编码数据包的传输时,均根据min_rtt_scheduler的发送方式从初始数据传输通道中确定时延最小初始数据传输通道,作为其目标数据传输通道,对其进行传输。During specific implementation, that is, each time a coded data packet is transmitted, the minimum delay initial data transmission channel is determined from the initial data transmission channel according to the sending mode of min_rtt_scheduler, and is transmitted as the target data transmission channel.
而轮询的发送方式,则是通过轮询的方式将每一个编码数据包确定一个目标数据传输通道进行传输,例如初始数据传输通道包括1-4,均存在可用路径,而编码数据包也为4个,则将第一个初始数据传输通道作为第一个编码数据包的目标数据传输通道进行传输,将第二个初始数据传输通道作为第二个编码数据包的目标数据传输通道进行传输,以此类推,通过第三初始数据传输通道传输第三个编码数据包,以及通过第四初始数据传输通道传输第四个编码数据包。The polling transmission method is to determine a target data transmission channel for each encoded data packet through polling. For example, the initial data transmission channel includes 1-4, and there are available paths, and the encoded data packet is also 4, the first initial data transmission channel is transmitted as the target data transmission channel of the first encoded data packet, and the second initial data transmission channel is transmitted as the target data transmission channel of the second encoded data packet, By analogy, the third encoded data packet is transmitted through the third initial data transmission channel, and the fourth encoded data packet is transmitted through the fourth initial data transmission channel.
本说明书实施例提供的数据处理方法应用于数据发送端,包括确定原始数据包对应的数据队列的队列长度;在确定队列长度小于等于队列长度阈值的情况下,将数据队列中的 原始数据包通过多路径传输的方式发送至数据接收端;或者在确定所述队列长度大于所述队列长度阈值的情况下,对数据队列中的原始数据包进行数据编码,获得编码数据包;将编码数据包通过多路径传输的方式发送至数据接收端。所述方法可以应用于高移动多路径传输场景中,采用基于队列长度的数据包发送以及动态编码策略,实现数据的低延时、高效率传输。The data processing method provided by the embodiment of this specification is applied to the data sending end, including determining the queue length of the data queue corresponding to the original data packet; when the queue length is determined to be less than or equal to the queue length threshold, the The original data packet is sent to the data receiving end through multi-path transmission; or in the case of determining that the queue length is greater than the queue length threshold, data encoding is performed on the original data packet in the data queue to obtain the encoded data packet; The encoded data packet is sent to the data receiving end through multipath transmission. The method can be applied to high-mobility multi-path transmission scenarios, and adopts data packet transmission based on queue length and a dynamic coding strategy to realize low-delay and high-efficiency data transmission.
此外,具体实施时,数据传输的过程中会存在丢包的情况发生,若不及时进行丢包重传,则会造成数据接收端接收的数据不完整,无法进行正确解析的情况发生;因此为了避免此种情况的发生,在进行数据传输的过程中,数据发送端会及时的根据数据队列中发送的原始数据包的队列位置、以及数据接收端返回的、成功接收到的原始数据包的队列位置等,确定目标队列的队列长度,后续根据目标队列的队列长度判断是否存在丢包,以及时的进行丢包重传。具体实现方式如下所述:In addition, during the specific implementation, there will be packet loss in the process of data transmission. If the packet loss and retransmission are not performed in time, the data received by the data receiving end will be incomplete and cannot be correctly analyzed; therefore, in order to To avoid this situation, in the process of data transmission, the data sending end will timely base on the queue position of the original data packet sent in the data queue and the queue of the successfully received original data packet returned by the data receiving end. Position, etc., determine the queue length of the target queue, and then judge whether there is packet loss according to the queue length of the target queue, and retransmit the lost packet in time. The specific implementation is as follows:
所述将所述数据队列中的原始数据包通过多路径传输的方式发送至所述数据接收端之后,还包括:After sending the original data packets in the data queue to the data receiving end through multi-path transmission, it also includes:
确定所述数据队列中未确认的原始数据包的队列位置,其中,所述未确认的原始数据包为已发送至所述数据接收端、而当前时刻未接收到所述数据接收端的确认接收信息的原始数据包;Determining the queue position of the unconfirmed original data packet in the data queue, wherein the unconfirmed original data packet is sent to the data receiving end but has not received the confirmation reception information of the data receiving end at the current moment the original data packet;
确定所述数据队列中当前时刻的队尾的原始数据包的队列位置;Determine the queue position of the original data packet at the tail of the queue at the current moment in the data queue;
根据所述未确认的原始数据包的队列位置、以及所述队尾的原始数据包的队列位置,确定目标队列的队列长度。Determine the queue length of the target queue according to the queue position of the unacknowledged original data packet and the queue position of the original data packet at the tail of the queue.
参见上述实施例的图1,图1中的1-8就可以理解为8个原始数据包,而1-8的数字就可以理解为每个原始数据包在数据队列中的队列位置。Referring to FIG. 1 of the above embodiment, 1-8 in FIG. 1 can be understood as 8 original data packets, and the numbers 1-8 can be understood as the queue position of each original data packet in the data queue.
若确定数据队列中未确认的原始数据包为原始数据包3、原始数据包4、原始数据包5、原始数据包6;那么数据队列中未确认的原始数据包的队列位置则为3-6。若数据队列中当前时刻的队尾的原始数据包为原始数据包8,那么数据队列中当前时刻的队尾的原始数据包的队列位置为8。If it is determined that the unconfirmed original data packets in the data queue are original data packets 3, original data packets 4, original data packets 5, and original data packets 6; then the queue positions of unconfirmed original data packets in the data queues are 3-6 . If the original data packet at the tail of the queue at the current moment in the data queue is original data packet 8, then the queue position of the original data packet at the tail of the queue at the current moment in the data queue is 8.
而在确定未确认的原始数据包的队列位置、以及队尾的原始数据包的队列位置之后,则可以根据未确认的原始数据包的队列位置、以及队尾的原始数据包的队列位置,计算目标队列的队列长度;其中,目标队列则可以理解为丢失的原始数据包的队列。After determining the queue position of the unacknowledged original data packet and the queue position of the original data packet at the end of the team, it can be calculated according to the queue position of the unconfirmed original data packet and the queue position of the original data packet at the tail of the team. The queue length of the target queue; wherein, the target queue can be understood as a queue of lost original data packets.
实际应用中,目标队列表示的是:当前时刻最早没有被ack(数据接收端向数据发送端发出的、成功接收到原始数据包的确认信息)的数据包到需要被发送的最后一个原始数据包的队列。因此,在确定目标队列时,需要从未确认的原始数据包中选择第一目标数据包,然后根据第一目标数据包的队列位置、以及队尾的原始数据包的队列位置,准确确定目标队列的队列长度。具体实现方式如下所述:In practical applications, the target queue represents: the earliest data packet that has not been acked (the confirmation message sent by the data receiving end to the data sending end to successfully receive the original data packet) at the current moment to the last original data packet that needs to be sent queue. Therefore, when determining the target queue, it is necessary to select the first target data packet from unacknowledged original data packets, and then accurately determine the target queue according to the queue position of the first target data packet and the queue position of the original data packet at the end of the queue the queue length. The specific implementation is as follows:
所述根据所述未确认的原始数据包的队列位置、以及所述队尾的原始数据包的队列位 置,确定目标队列的队列长度,包括:According to the queue position of the unacknowledged original data packet and the queue position of the original data packet at the end of the queue settings to determine the queue length of the target queue, including:
确定所述未确认的原始数据包中第一目标数据包的队列位置,其中,所述第一目标数据包的队列位置小于其他未确认的原始数据包的队列位置;determining the queue position of the first target data packet among the unacknowledged original data packets, wherein the queue position of the first target data packet is smaller than the queue positions of other unconfirmed original data packets;
根据所述第一目标数据包的队列位置、以及所述队尾的原始数据包的队列位置,确定目标队列的队列长度。Determine the queue length of the target queue according to the queue position of the first target data packet and the queue position of the original data packet at the tail of the queue.
沿用上例,若未确认的原始数据包为原始数据包3、原始数据包4、原始数据包5、原始数据包6,可以确定原始数据包3的队列位置均小于原始数据包4、原始数据包5、原始数据包6,那么未确认的原始数据包中第一目标数据包则为原始数据包3,此时可以确定未确认的原始数据包中第一目标数据包的队列位置为3。Following the above example, if the unconfirmed original data packets are original data packet 3, original data packet 4, original data packet 5, and original data packet 6, it can be determined that the queue position of original data packet 3 is smaller than that of original data Packet 5, original data packet 6, then the first target data packet in the unconfirmed original data packet is the original data packet 3, and it can be determined that the queue position of the first target data packet in the unconfirmed original data packet is 3.
最后,根据第一目标数据包的队列位置3,以及队尾的原始数据包为原始数据包8的队列位置8,确定目标队列的队列长度为5。Finally, according to the queue position 3 of the first target data packet and the queue position 8 of the original data packet at the end of the queue, the queue length of the target queue is determined to be 5.
实际应用中,本说明书实施例提供的数据处理方法可以应用于实时视频传输的视频场景中,如果一个视频数据包没有被ack,其实就会导致该视频数据包对应的视频帧无法被解码,因为后面的视频帧解码依赖前面的视频帧,就等于从没有被ack的视频数据包开始到最新的视频数据包所对应的所有视频帧的解码都会引入时延,为了避免过大的时延,数据传输过程中,当这个目标队列的队列长度超过一定阈值的时候就开启重传编码,以保证后续视频的正确以及低时延解码,提升用户的视频观看体验。具体实现方式如下所述:In practical applications, the data processing method provided by the embodiment of this specification can be applied to the video scene of real-time video transmission. If a video data packet is not acked, in fact, the video frame corresponding to the video data packet cannot be decoded, because The decoding of the following video frames depends on the previous video frames, which means that the decoding of all video frames corresponding to the latest video data packets from the unacked video data packet will introduce delay. In order to avoid excessive delay, the data During the transmission process, when the queue length of the target queue exceeds a certain threshold, the retransmission encoding is enabled to ensure the correct and low-latency decoding of subsequent videos and improve the user's video viewing experience. The specific implementation is as follows:
所述确定目标队列的队列长度之后,还包括:After said determining the queue length of the target queue, it also includes:
在确定所述目标队列的队列长度大于等于预设长度阈值的情况下,根据所述第一目标数据包的队列位置、以及所述队尾的原始数据包的队列位置,确定丢失的原始数据包,其中,所述发送的原始数据包为已发送至所述数据接收端的原始数据包。When it is determined that the queue length of the target queue is greater than or equal to a preset length threshold, the lost original data packet is determined according to the queue position of the first target data packet and the queue position of the original data packet at the tail of the queue , wherein the sent original data packet is the original data packet sent to the data receiving end.
其中,预设长度阈值可以根据实际应用进行设置,本说明书实施例中不作任何限定。例如预设长度阈值为5、6等。Wherein, the preset length threshold can be set according to actual applications, and is not limited in this embodiment of the specification. For example, the preset length threshold is 5, 6 and so on.
仍沿用上例,若目标队列的队列长度为5,预设长度阈值为5,则可以确定目标队列的队列长度等于预设长度阈值,此时,则可以根据第一目标数据包的队列位置以及队尾的原始数据包的队列位置,确定丢失的原始数据包。具体实现方式如下所述:Still using the above example, if the queue length of the target queue is 5 and the preset length threshold is 5, it can be determined that the queue length of the target queue is equal to the preset length threshold. At this time, the queue position of the first target data packet and the The queue position of the original data packet at the end of the queue to determine the lost original data packet. The specific implementation is as follows:
所述根据所述第一目标数据包的队列位置、以及所述队尾的原始数据包的队列位置,确定丢失的原始数据包,包括:The determining the lost original data packet according to the queue position of the first target data packet and the queue position of the original data packet at the end of the queue includes:
将所述第一目标数据包的队列位置、以及所述队尾的原始数据包的队列位置,通过预设计算规则进行计算,获得所述丢失的原始数据包的数量;calculating the queue position of the first target data packet and the queue position of the original data packet at the end of the queue through preset calculation rules to obtain the number of lost original data packets;
根据所述第一目标数据包的队列位置以及所述丢失的原始数据包的数量,向所述队尾的原始数据包回溯,获得所述丢失的原始数据包。According to the queue position of the first target data packet and the quantity of the lost original data packets, trace back to the original data packets at the tail of the queue to obtain the lost original data packets.
其中,预设计算规则可以根据实际应用进行设置,例如预设计算规则为队尾的原始数 据包的队列位置与第一目标数据包的队列位置的差值加1。Among them, the preset calculation rule can be set according to the actual application, for example, the preset calculation rule is the original number of the queue tail Add 1 to the difference between the queue position of the data packet and the queue position of the first target data packet.
仍沿用上例,若第一目标数据包的队列位置为3,队尾的原始数据包的队列位置为8,根据上述预设计算规则的举例,则计算获得的丢失的原始数据包的数量为8-5+1=4。Still using the above example, if the queue position of the first target data packet is 3, and the queue position of the original data packet at the end of the queue is 8, according to the example of the above preset calculation rules, the calculated number of lost original data packets is 8-5+1=4.
而在获得丢失的原始数据包的数量之后,从第一目标数据包的队列位置3,结合丢失的原始数据包的数量4,向队尾的原始数据包回溯,获得丢失的原始数据包:原始数据包3、原始数据包4、原始数据包5、原始数据包6。如参见上述实施例图1中的窗口内的原始数据包(即矩形框内的3-6的原始数据包)均为丢失的原始数据包。After obtaining the number of lost original data packets, from the queue position 3 of the first target data packet, combined with the number of lost original data packets 4, trace back to the original data packets at the end of the queue to obtain the lost original data packets: original Packet 3, Packet 4, Packet 5, Packet 6. For example, referring to the above-mentioned embodiment, the original data packets in the window in FIG. 1 (that is, the original data packets 3-6 in the rectangular frame) are all lost original data packets.
本说明书实施例中,通过第一目标数据包的队列位置、队尾的原始数据包的队列位置,结合预设计算规则可以且准确的获得丢失的原始数据包,后续可以通过滑动窗口的编码方式,即参与编码的数据包(丢失的原始数据包)都属于一个滑动的窗口,进行丢失的原始数据包的重传。In the embodiment of this specification, through the queue position of the first target data packet and the queue position of the original data packet at the end of the queue, combined with the preset calculation rules, the lost original data packet can be accurately obtained, and the subsequent coding method of the sliding window can be used , that is, the data packets (lost original data packets) participating in encoding all belong to a sliding window, and the retransmission of the lost original data packets is performed.
而在确定丢失的原始数据包之后,是否要对该丢失的原始数据包进行重传,是需要根据对丢失的原始数据包进行解析,以确定丢失的原始数据包中包含的具体数据的重要程序进行确定的;在确定丢失的原始数据包确实为需要进行重传的原始数据包的情况下,才会对其进行编码重传。具体实现方式如下所述:After determining the lost original data packet, whether to retransmit the lost original data packet is an important procedure that needs to be analyzed according to the lost original data packet to determine the specific data contained in the lost original data packet It is determined; only when it is determined that the lost original data packet is indeed the original data packet that needs to be retransmitted, it will be encoded and retransmitted. The specific implementation is as follows:
所述确定丢失的原始数据包之后,还包括:After the original data packet is determined to be lost, it also includes:
对所述丢失的原始数据包进行解析;Analyzing the lost original data packet;
在根据解析结果确定所述丢失的原始数据包为待重传的原始数据包的情况下,对所述丢失的原始数据包进行编码,生成重传编码包;In the case of determining that the lost original data packet is an original data packet to be retransmitted according to the analysis result, encoding the lost original data packet to generate a retransmission encoded packet;
将所述重传编码包通过所述多路径传输的方式发送至所述数据接收端。sending the retransmission coded packet to the data receiving end through the multipath transmission.
实际应用中,可以采用任意解析方式对丢失的原始数据包进行解析,以确定丢失的原始数据包中的内容进行确定,在根据解析结果确定该丢失的原始数据包确定为待重传的原始数据包(如数据内容重要,需要重传的原始数据包)的情况下,对丢失的原始数据包进行编码,生成重传编码包;将重传编码包通过多路径传输的方式发送至数据接收端。In practical applications, any analysis method can be used to analyze the lost original data packet to determine the content in the lost original data packet, and then determine the lost original data packet as the original data to be retransmitted according to the analysis result In the case of a packet (such as an original data packet whose data content is important and needs to be retransmitted), encode the lost original data packet to generate a retransmission encoded packet; send the retransmitted encoded packet to the data receiving end through multipath transmission .
本说明书实施例中,确定丢失的原始数据包是否为待重传的原始数据包时,需要结合实际应用场景进行确定,例如在视频传输场景中,为了保证视频的完整性,则需要对每个丢失的原始数据包均进行编码重传;而在文件传输场景中,则可以根据文件的重要等级,选择包含等级较高的文件的丢失的原始数据包作为待重传的原始数据包,进行后续的编码重传,以节省网络开销。In the embodiment of this specification, when determining whether the lost original data packet is the original data packet to be retransmitted, it needs to be determined in combination with the actual application scenario. For example, in the video transmission scenario, in order to ensure the integrity of the video, each All lost original data packets are coded and retransmitted; in the file transfer scenario, according to the importance level of the file, the lost original data packet containing a file with a higher level can be selected as the original data packet to be retransmitted for subsequent Encoded retransmission to save network overhead.
实际应用中,为了防止当前重传编码包阻塞后续数据包的传输,可以根据当前数据传输通道的剩余可用路径数量,确定重传编码包的数量,以保证重传编码包的数量小于当前数据传输通道的剩余可用路径数量。具体实现方式如下所述:In practical applications, in order to prevent the current retransmission encoded packets from blocking the transmission of subsequent data packets, the number of retransmitted encoded packets can be determined according to the number of remaining available paths of the current data transmission channel, so as to ensure that the number of retransmitted encoded packets is less than that of the current data transmission The number of remaining available paths for the channel. The specific implementation is as follows:
所述对所述丢失的原始数据包进行编码,生成所述重传编码包,包括: The encoding of the lost original data packet to generate the retransmission encoded packet includes:
确定所述多路径传输中的当前可用路径数量;determining the number of currently available paths in said multipath transmission;
根据所述当前可用路径数量,确定编码数量;Determine the number of codes according to the number of currently available paths;
通过随机线性网络编码对所述丢失的原始数据包进行数据编码,获得与所述编码数量相同的重传编码包。Data encoding is performed on the lost original data packets by random linear network coding to obtain retransmission encoded packets having the same number of encodings.
其中,多路径传输中包括多条数据传输通道,每条数据传输通道又包括多条路径。例如,一条数据传输通道可以同时进行100个数据包的传输,那么当前处于传输中的有50个数据包,那么剩余的可用路径数量则为50个。Wherein, the multipath transmission includes multiple data transmission channels, and each data transmission channel includes multiple paths. For example, a data transmission channel can transmit 100 data packets at the same time, then there are 50 data packets currently being transmitted, and then the number of remaining available paths is 50.
具体的,数据发送端先确定多路径传输中多条数据传输通道的所有当前可用路径数量,再根据该当前可用路径数量确定编码数量;然后通过随机线性网络编码对丢失的原始数据包进行数据编码,获得与编码数量相同的重传编码包。Specifically, the data sender first determines the number of all currently available paths of multiple data transmission channels in multi-path transmission, and then determines the number of encodings according to the number of currently available paths; then performs data encoding on the lost original data packets through random linear network coding , get the same number of retransmitted encoded packets as encoded.
实际应用中,编码数量小于当前可用路径数量的情况下,可以避免数据传输堵塞,因此在确定当前可用路径数量之后,确定的编码数量可以小于其当前可用路径数量。In practical applications, when the number of codes is smaller than the number of currently available paths, data transmission congestion can be avoided. Therefore, after the number of currently available paths is determined, the determined number of codes can be smaller than the number of currently available paths.
参见上述实施例的图1,图1中包括三条数据传输通道:BWE1、BWE2、BWE3;若BWE1的当前可用路径数量为2,BWE2的当前可用路径数量为1、BWE3的当前可用路径数量为1;那么所有的的当前可用路径数量为4,此时则可以确定编码数量为3或2等。Referring to Figure 1 of the above embodiment, Figure 1 includes three data transmission channels: BWE1, BWE2, and BWE3; if the number of currently available paths of BWE1 is 2, the number of currently available paths of BWE2 is 1, and the number of currently available paths of BWE3 is 1 ; Then the number of all currently available paths is 4, and at this time, it can be determined that the number of encodings is 3 or 2, etc.
本说明书实施例中,对于每一个重传编码包,只能使用对应时间内释放出来的数据传输通道资源来进行传输,防止当前重传编码包阻塞后续数据的到达,实现强网下冗余率逼近0,弱网下冗余率限制在路径的倍数以下,对于重传编码包的发送采用rateless(无码率)方式,考虑路径在一定时间内释放的资源(类似于令牌桶机制),弹性发送重传编码包,克服了传统FEC编码的固定额外开销的缺点,防止在路径带宽不足的情况下造成数据堆积的问题。In the embodiment of this specification, for each retransmission coded packet, only the data transmission channel resources released within the corresponding time can be used for transmission, so as to prevent the current retransmission coded packet from blocking the arrival of subsequent data and achieve redundancy under strong network Approaching 0, the redundancy rate in weak networks is limited to below the multiple of the path, and the rateless (no code rate) method is used for sending retransmission coded packets, considering the resources released by the path within a certain period of time (similar to the token bucket mechanism), Flexible sending of retransmission encoded packets overcomes the disadvantage of fixed overhead of traditional FEC encoding and prevents the problem of data accumulation in the case of insufficient path bandwidth.
实际应用中,为了提高重传编码包的重传效率,可以采用预设的发送方式对其进行数据传输。具体实现方式如下所述:In practical applications, in order to improve the retransmission efficiency of the retransmitted coded packets, a preset sending method may be used for data transmission. The specific implementation is as follows:
所述将所述重传编码包通过所述多路径传输的方式发送至所述数据接收端,包括:The sending the retransmission coded packet to the data receiving end through the multipath transmission method includes:
根据预设发送方式从多路径传输的初始数据传输通道中,为所述重传编码包选择对应的目标数据传输通道;Selecting a corresponding target data transmission channel for the retransmission coded packet from the initial data transmission channel of the multi-path transmission according to the preset transmission mode;
将所述重传编码包通过所述目标数据传输通道发送至所述数据接收端。sending the retransmission encoded packet to the data receiving end through the target data transmission channel.
其中,预设发送方式包括但不限于min_rtt_scheduler(最小时延调度)的方式或者轮询的方式。Wherein, the preset transmission mode includes but not limited to min_rtt_scheduler (minimum delay scheduling) mode or polling mode.
以预设发送方式为min_rtt_scheduler为例,进行介绍。Take the default sending mode as min_rtt_scheduler as an example to introduce.
具体实施时,即每次进行一个重传编码包的传输时,均根据min_rtt_scheduler的发送方式从初始数据传输通道中确定时延最小初始数据传输通道,作为其目标数据传输通道,对其进行传输。 During specific implementation, that is, each time a retransmission encoded packet is transmitted, the initial data transmission channel with the minimum delay is determined from the initial data transmission channel according to the sending mode of min_rtt_scheduler, and is transmitted as the target data transmission channel.
而轮询的发送方式,则是通过轮询的方式将每一个重传编码包确定一个目标数据传输通道进行传输,例如初始数据传输通道包括1-4,均存在可用路径,而重传编码包也为4个,则将第一个初始数据传输通道作为第一个重传编码包的目标数据传输通道进行传输,将第二个初始数据传输通道作为第二个重传编码包的目标数据传输通道进行传输,以此类推,通过第三初始数据传输通道传输第三个重传编码包,以及通过第四初始数据传输通道传输第四个重传编码包。The polling sending method is to determine a target data transmission channel for each retransmission coded packet by polling. For example, the initial data transmission channel includes 1-4, and there are available paths, and the retransmission coded packet If there are also 4, the first initial data transmission channel is used as the target data transmission channel of the first retransmission coded packet, and the second initial data transmission channel is used as the target data transmission of the second retransmission coded packet channel for transmission, and so on, the third retransmission coded packet is transmitted through the third initial data transmission channel, and the fourth retransmission coded packet is transmitted through the fourth initial data transmission channel.
本说明书实施例提供的数据处理方法,提出了随机线性编码(System RLNC)的进行隧道的网络传输方式,基于RLNC做数据的前向数据纠错,克服无线链路的高丢包率的技术问题;同时利用RLNC的无固定编码码率rateless性质和随机性质,增加了对于多路径传输中路径随机连续丢包的抵抗性;同时提出了令牌桶模式system RLNC code,编码中首先发送原始的数据包,然后才发送编码数据包,编码数据包的发送个数取决于令牌的数量,令牌数量相当于编码的“预算”。令牌随时间增长,每发送一个编码包,令牌数相应的减少;并提出了滑动窗口的编码方式,即参与编码的数据包都属于一个滑动的窗口,且提出了基于队列长度的动态编码策略,当CPE中数据队列的长度小于一个阈值的时候,发送原始数据包(不发送编码报文),当CPE中数据队列长度大于一个阈值的时候,发送编码数据报文,编码数据报文发送的个数由令牌数量决定。The data processing method provided by the embodiment of this specification proposes a random linear coding (System RLNC) network transmission method for tunneling, based on RLNC for forward data error correction of data, and overcomes the technical problem of high packet loss rate of wireless links ; At the same time, the use of RLNC's non-fixed code rate rateless and random properties increases the resistance to random and continuous packet loss in multi-path transmission; at the same time, a token bucket mode system RLNC code is proposed, and the original data is sent first in the encoding packets, and then send encoded data packets, the number of encoded data packets sent depends on the number of tokens, which is equivalent to the "budget" for encoding. The token increases with time, and the number of tokens decreases correspondingly every time an encoded packet is sent; and a sliding window encoding method is proposed, that is, the data packets participating in encoding belong to a sliding window, and a dynamic encoding based on queue length is proposed Strategy, when the length of the data queue in the CPE is less than a threshold, send the original data packet (do not send the encoded message), when the length of the data queue in the CPE is greater than a threshold, send the encoded data message, and the encoded data message is sent The number of is determined by the number of tokens.
与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图3示出了本说明书一个实施例提供的一种数据处理装置的结构示意图。如图3所示,该装置应用于数据发送端,包括:Corresponding to the foregoing method embodiments, this specification also provides an embodiment of a data processing device. FIG. 3 shows a schematic structural diagram of a data processing device provided by an embodiment of this specification. As shown in Figure 3, the device is applied to the data sending end, including:
队列长度确定模块302,被配置为确定原始数据包对应的数据队列的队列长度,其中,所述原始数据包为等待向所述数据接收端发送的数据包;The queue length determination module 302 is configured to determine the queue length of the data queue corresponding to the original data packet, wherein the original data packet is a data packet waiting to be sent to the data receiving end;
原始数据包发送模块304,被配置为在确定所述队列长度小于等于队列长度阈值的情况下,将所述数据队列中的原始数据包通过多路径传输的方式发送至所述数据接收端;The original data packet sending module 304 is configured to send the original data packet in the data queue to the data receiving end through multi-path transmission when it is determined that the queue length is less than or equal to the queue length threshold;
编码数据包获得模块306,被配置为在确定所述队列长度大于所述队列长度阈值的情况下,对所述数据队列中的原始数据包进行数据编码,获得编码数据包;The encoded data packet obtaining module 306 is configured to perform data encoding on the original data packets in the data queue to obtain encoded data packets when it is determined that the queue length is greater than the queue length threshold;
编码数据包发送模块308,被配置为将所述编码数据包通过多路径传输的方式发送至所述数据接收端。The coded data packet sending module 308 is configured to send the coded data packet to the data receiving end through multi-path transmission.
可选地,所述编码数据包获得模块306,进一步被配置为:Optionally, the encoded data packet obtaining module 306 is further configured to:
确定多路径传输中的当前可用路径数量;determining the number of currently available paths in a multipath transmission;
根据所述当前可用路径数量,确定编码数量;Determine the number of codes according to the number of currently available paths;
通过随机线性网络编码对所述数据队列中的原始数据包进行数据编码,获得与所述编码数量相同的编码数据包。Data coding is performed on the original data packets in the data queue by random linear network coding to obtain the same number of coded data packets as the coded data packets.
可选地,所述装置之后,还包括: Optionally, after the device, it also includes:
队列长度确定模块,被配置为:A queue length determination module configured to:
确定所述数据队列中未确认的原始数据包的队列位置,其中,所述未确认的原始数据包为已发送至所述数据接收端、而当前时刻未接收到所述数据接收端的确认接收信息的原始数据包;Determining the queue position of the unconfirmed original data packet in the data queue, wherein the unconfirmed original data packet is sent to the data receiving end but has not received the confirmation reception information of the data receiving end at the current moment the original data packet;
确定所述数据队列中当前时刻的队尾的原始数据包的队列位置;Determine the queue position of the original data packet at the tail of the queue at the current moment in the data queue;
根据所述未确认的原始数据包的队列位置、以及所述队尾的原始数据包的队列位置,确定目标队列的队列长度。Determine the queue length of the target queue according to the queue position of the unacknowledged original data packet and the queue position of the original data packet at the tail of the queue.
可选地,所述队列长度确定模块,进一步被配置为:Optionally, the queue length determination module is further configured to:
确定所述未确认的原始数据包中第一目标数据包的队列位置,其中,所述第一目标数据包的队列位置小于其他未确认的原始数据包的队列位置;determining the queue position of the first target data packet among the unacknowledged original data packets, wherein the queue position of the first target data packet is smaller than the queue positions of other unconfirmed original data packets;
根据所述第一目标数据包的队列位置、以及所述队尾的原始数据包的队列位置,确定目标队列的队列长度。Determine the queue length of the target queue according to the queue position of the first target data packet and the queue position of the original data packet at the tail of the queue.
可选地,所述装置,还包括:Optionally, the device also includes:
丢包确定模块,被配置为:The packet loss determination module is configured to:
在确定所述目标队列的队列长度大于等于预设长度阈值的情况下,根据所述第一目标数据包的队列位置、以及所述队尾的原始数据包的队列位置,确定丢失的原始数据包,其中,所述发送的原始数据包为已发送至所述数据接收端的原始数据包。When it is determined that the queue length of the target queue is greater than or equal to a preset length threshold, the lost original data packet is determined according to the queue position of the first target data packet and the queue position of the original data packet at the tail of the queue , wherein the sent original data packet is the original data packet sent to the data receiving end.
可选地,所述丢包确定模块,进一步被配置为:Optionally, the packet loss determining module is further configured to:
将所述第一目标数据包的队列位置、以及所述队尾的原始数据包的队列位置,通过预设计算规则进行计算,获得所述丢失的原始数据包的数量;calculating the queue position of the first target data packet and the queue position of the original data packet at the end of the queue through preset calculation rules to obtain the number of lost original data packets;
根据所述第一目标数据包的队列位置以及所述丢失的原始数据包的数量,向所述队尾的原始数据包回溯,获得所述丢失的原始数据包。According to the queue position of the first target data packet and the quantity of the lost original data packets, trace back to the original data packets at the tail of the queue to obtain the lost original data packets.
可选地,所述装置,还包括:Optionally, the device also includes:
丢包重传模块,被配置为:The packet loss retransmission module is configured as:
对所述丢失的原始数据包进行解析;Analyzing the lost original data packet;
在根据解析结果确定所述丢失的原始数据包为待重传的原始数据包的情况下,对所述丢失的原始数据包进行编码,生成重传编码包;In the case of determining that the lost original data packet is an original data packet to be retransmitted according to the analysis result, encoding the lost original data packet to generate a retransmission encoded packet;
将所述重传编码包通过所述多路径传输的方式发送至所述数据接收端。sending the retransmission coded packet to the data receiving end through the multipath transmission.
可选地,所述丢包重传模块,进一步被配置为:Optionally, the packet loss retransmission module is further configured to:
确定所述多路径传输中的当前可用路径数量;determining the number of currently available paths in said multipath transmission;
根据所述当前可用路径数量,确定编码数量;Determine the number of codes according to the number of currently available paths;
通过随机线性网络编码对所述丢失的原始数据包进行数据编码,获得与所述编码数量 相同的重传编码包。Carry out data encoding on the lost original data packet by random linear network coding, and obtain the number corresponding to the encoding The same retransmission encoded packets.
可选地,所述编码数据包发送模块308,进一步被配置为:Optionally, the encoded data packet sending module 308 is further configured to:
根据预设发送方式从多路径传输的初始数据传输通道中,为所述编码数据包选择对应的目标数据传输通道;Selecting a corresponding target data transmission channel for the encoded data packet from the initial data transmission channels of multi-path transmission according to a preset transmission mode;
将所述编码数据包通过所述目标数据传输通道发送至所述数据接收端。sending the encoded data packet to the data receiving end through the target data transmission channel.
可选地,所述丢包重传模块,进一步被配置为:Optionally, the packet loss retransmission module is further configured to:
根据预设发送方式从多路径传输的初始数据传输通道中,为所述重传编码包选择对应的目标数据传输通道;Selecting a corresponding target data transmission channel for the retransmission coded packet from the initial data transmission channel of the multi-path transmission according to the preset transmission mode;
将所述重传编码包通过所述目标数据传输通道发送至所述数据接收端。sending the retransmission encoded packet to the data receiving end through the target data transmission channel.
本说明书实施例提供的所述数据处理装置,应用于数据发送端,包括确定原始数据包对应的数据队列的队列长度;在确定队列长度小于等于队列长度阈值的情况下,将数据队列中的原始数据包通过多路径传输的方式发送至数据接收端;或者在确定所述队列长度大于所述队列长度阈值的情况下,对数据队列中的原始数据包进行数据编码,获得编码数据包;将编码数据包通过多路径传输的方式发送至数据接收端。所述方法可以应用于高移动多路径传输场景中,采用基于队列长度的数据包发送以及动态编码策略,实现数据的低延时、高效率传输。The data processing device provided in the embodiment of this specification is applied to the data sending end, including determining the queue length of the data queue corresponding to the original data packet; when the queue length is determined to be less than or equal to the queue length threshold, the original The data packet is sent to the data receiving end through multi-path transmission; or in the case of determining that the queue length is greater than the queue length threshold, data encoding is performed on the original data packet in the data queue to obtain an encoded data packet; The data packet is sent to the data receiving end through multi-path transmission. The method can be applied to high-mobility multi-path transmission scenarios, and adopts data packet transmission based on queue length and a dynamic coding strategy to realize low-delay and high-efficiency data transmission.
上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。The foregoing is a schematic solution of a data processing device in this embodiment. It should be noted that the technical solution of the data processing device and the technical solution of the above-mentioned data processing method belong to the same concept, and details of the technical solution of the data processing device that are not described in detail can be found in the description of the technical solution of the above-mentioned data processing method .
参见图4,图4示出了根据本说明书一个实施例提供的一种视频传输方法的流程图,具体包括以下步骤:Referring to FIG. 4, FIG. 4 shows a flow chart of a video transmission method provided according to an embodiment of this specification, which specifically includes the following steps:
步骤402:视频数据发送端将待播放的视频拆分为视频帧,并将所述视频帧打包为原始视频数据包发送至数据队列,确定所述原始视频数据包对应的所述数据队列的队列长度,其中,所述原始视频数据包为等待向所述视频数据接收端发送的数据包,在确定所述队列长度小于等于队列长度阈值的情况下,将所述数据队列中的原始视频数据包通过多路径传输的方式发送至所述视频数据接收端,或者在确定所述队列长度大于所述队列长度阈值的情况下,对所述数据队列中的原始视频数据包进行数据编码,获得编码视频数据包,将所述编码视频数据包通过多路径传输的方式发送至所述视频数据接收端。Step 402: The video data sending end splits the video to be played into video frames, packs the video frames into original video data packets and sends them to the data queue, and determines the queue of the data queue corresponding to the original video data packets length, wherein the original video data packet is a data packet waiting to be sent to the video data receiving end, and when it is determined that the queue length is less than or equal to the queue length threshold, the original video data packet in the data queue Send to the video data receiving end through multi-path transmission, or in the case of determining that the queue length is greater than the queue length threshold, perform data encoding on the original video data packets in the data queue to obtain the encoded video A data packet, sending the coded video data packet to the video data receiving end through multi-path transmission.
具体的,本说明书实施例提供的视频传输方法,可应用于CPE设备,实际使用时,CPE设备安装于车辆中,用于在车辆高速移动的过程中,CPE设备将根据4G/5G信号的视频数据转换为根据WIFI信号的视频数据发送至终端实现视频播放。在一种可实现场景中,CPE设备也可以作为车辆的车载设备,通过无线通信技术,与车辆的视频播放车载设备进行通信互联,形成车联网系统(当然实际应用中,车联网系统中也并不一定必然采用CPE设备与其他车载设备进行互联实现信号的转换,也可以采用其他信号转换设备实现,本说明书 实施例在此不作任何限定);从而实现将从信息网络平台接收的基于4G/5G信号的视频数据转换为WIFI信号的视频数据,并且也可支持同时上网的其他多个移动终端。通过此种方式提高车辆高速移动中的视频播放效率,提升用户的视频观看体验。Specifically, the video transmission method provided by the embodiment of this specification can be applied to CPE equipment. In actual use, the CPE equipment is installed in the vehicle, and is used to transfer the video data of the 4G/5G signal to the CPE equipment during the high-speed movement of the vehicle. The data is converted into video data based on the WIFI signal and sent to the terminal for video playback. In a feasible scenario, the CPE device can also be used as the on-board device of the vehicle, and communicate with the vehicle's video playback on-board device through wireless communication technology to form a car networking system (of course, in practical applications, the car networking system does not It is not necessarily necessary to use CPE equipment to interconnect with other vehicle-mounted equipment to realize signal conversion, and other signal conversion equipment can also be used. This manual The embodiment is not limited in any way here); thereby realizing the conversion of video data based on 4G/5G signals received from the information network platform into video data of WIFI signals, and also supporting multiple other mobile terminals surfing the Internet at the same time. In this way, the efficiency of video playback during high-speed vehicle movement is improved, and the user's video viewing experience is improved.
其中,视频数据发送端可以理解为CPE设备的视频数据发送端;视频数据接收端可以理解为任意类型的视频接收终端(如手机、平板电脑、车载终端等等);具体应用中,CPE设备接收4G/5G信号的视频数据之后,将其转换为WIFI信号的视频数据,然后对转换后的视频数据进行视频帧的拆分,打包为原始视频数据包之后,根据本说明书实施例的视频数据传输方法发送至视频接收终端,以实现高速移动中用户可以根据视频接收终端实现视频的流畅、不卡顿的观看。Among them, the video data sending end can be understood as the video data sending end of the CPE equipment; the video data receiving end can be understood as any type of video receiving terminal (such as mobile phone, tablet computer, vehicle terminal, etc.); After the video data of the 4G/5G signal, it is converted into the video data of the WIFI signal, and then the converted video data is split into video frames, and after being packaged into original video data packets, the video data transmission according to the embodiment of this specification The method is sent to the video receiving terminal, so that the user can watch the video smoothly and without stuttering through the video receiving terminal during high-speed movement.
具体实施时,CPE设备的视频数据发送端将转码后的待播放的视频拆分为视频帧,并将视频帧打包为原始视频数据包发送至数据队列;在进行原始视频数据包的发送过程中,视频发送端会实时获取该数据队列的队列长度,在确定该队列长度小于等于队列长度阈值的情况下,可以认为该数据队列中的原始视频数据包未发生堆积,此时,则继续将数据队列中的原始视频数据包通过多路径传输的方式发送至视频数据接收端,视频数据接收端接收到该原始视频数据包之后可以直接进行拆分,播放。During specific implementation, the video data sending end of the CPE device splits the transcoded video to be played into video frames, and packs the video frames into original video data packets and sends them to the data queue; in the process of sending the original video data packets In , the video sender will obtain the queue length of the data queue in real time. When it is determined that the queue length is less than or equal to the queue length threshold, it can be considered that the original video data packets in the data queue have not accumulated. The original video data packets in the data queue are sent to the video data receiving end through multi-path transmission, and the video data receiving end can directly split and play the original video data packets after receiving the original video data packets.
而在确定该队列长度大于队列长度阈值的情况下,可以认为该数据队列中的原始视频数据包较多,可能会产生数据包堆积,此时,为了避免数据发送产生时延、造成数据传输效率低的问题,视频数据发送端可以对数据队列中的原始视频数据包进行数据编码,获得编码视频数据包,然后将编码视频数据包通过多路径传输的方式发送至视频数据接收端,视频数据接收端接收到该编码视频数据包进行解码,之后进行拆分,播放。从而提高数据的发送效率,保证视频的低延迟、流畅播放。And in the case of determining that the queue length is greater than the queue length threshold, it can be considered that there are many original video data packets in the data queue, and data packets may accumulate. Low problem, the video data sending end can encode the original video data packets in the data queue to obtain the encoded video data packets, and then send the encoded video data packets to the video data receiving end through multi-path transmission, and the video data receiving The terminal receives the encoded video data packet to decode, then split and play. Thereby improving data transmission efficiency and ensuring low-latency and smooth video playback.
步骤402:所述视频数据接收端根据接收的所述原始视频数据包和/或所述编码视频数据包进行视频播放。Step 402: The video data receiver performs video playback according to the received original video data packet and/or the encoded video data packet.
具体的,视频数据接收端在接收到视频发送端发送的原始视频数据包的情况下,可以直接进行拆包获得视频帧进行视频播放,而在获取编码视频数据包的情况下,先对该编码视频数据包进行解码、拆包获得视频帧进行视频播放。Specifically, when the video data receiving end receives the original video data packet sent by the video sending end, it can directly unpack to obtain the video frame for video playback, and in the case of obtaining the encoded video data packet, first encode the The video data packets are decoded and unpacked to obtain video frames for video playback.
实际应用中,为了保证视频数据的传输效率以及低延时,视频数据发送端会对数据队列的队列长度进行实时监控,在数据队列的队列长度小于等于队列长度阈值时,向视频数据接收端发送原始视频数据包,而在数据队列的队列长度大于队列长度阈值时,向视频数据接收端发送编码视频数据包,通过此种动态调整策略将转码后的、根据WIFI信号的视频数据发送至终端实现视频播放。In practical applications, in order to ensure the transmission efficiency and low delay of video data, the video data sender will monitor the queue length of the data queue in real time, and when the queue length of the data queue is less than or equal to the queue length threshold, send the video data to the video data receiver. The original video data packet, and when the queue length of the data queue is greater than the queue length threshold, the encoded video data packet is sent to the video data receiving end, and the transcoded video data according to the WIFI signal is sent to the terminal through this dynamic adjustment strategy Implement video playback.
此外,对原始视频数据包进行数据编码时,为了避免丢包情况的发生,并且避免造成其他传输数据的堵塞,可以通过随机线性网络编码的方式对原始视频数据包进行编码,并且通过多路径传输中当前可用路径数量,对编码数量进行限制。具体实现方式如下所述: In addition, when encoding the original video data packets, in order to avoid packet loss and avoid congestion of other transmission data, the original video data packets can be encoded by random linear network coding, and transmitted through multipath The number of currently available paths in the middle, and limit the number of encodings. The specific implementation is as follows:
所述对所述数据队列中的原始视频数据包进行数据编码,获得编码视频数据包,包括:The data encoding of the original video data packets in the data queue to obtain the encoded video data packets includes:
确定多路径传输中的当前可用路径数量;determining the number of currently available paths in a multipath transmission;
根据所述当前可用路径数量,确定编码数量;Determine the number of codes according to the number of currently available paths;
通过随机线性网络编码对所述数据队列中的原始视频数据包进行数据编码,获得与所述编码数量相同的编码视频数据包。Data encoding is performed on the original video data packets in the data queue by random linear network coding to obtain the same number of encoded video data packets as the encoding number.
具体实施时,对数据队列中的原始视频数据包进行数据编码,获得编码视频数据包的具体实现方式可以参见上述实施例的介绍,在此不再赘述。During specific implementation, data encoding is performed on the original video data packets in the data queue to obtain encoded video data packets. Refer to the introduction of the above-mentioned embodiments, and details are not repeated here.
本说明书实施例提供的视频传输方法,可以应用于任何安装有CPE设备的高速移动的车辆中,例如物流车辆、公共服务车辆、医疗服务车辆、终端服务车辆等,并且也不仅限于CPE设备,任何在高速移动的车辆中,可以实现数据传输的设备中均可,本说明书实施例仅以CPE设备为例进行说明,但并不做任何限定。The video transmission method provided in the embodiment of this specification can be applied to any high-speed moving vehicle equipped with CPE equipment, such as logistics vehicles, public service vehicles, medical service vehicles, terminal service vehicles, etc., and is not limited to CPE equipment, any In a vehicle moving at high speed, any device that can implement data transmission can be used. The embodiment of this specification only uses the CPE device as an example for illustration, but does not make any limitation.
参见图5,图5示出了根据本说明书一个实施例提供的一种视频传输系统的结构示意图。Referring to FIG. 5 , FIG. 5 shows a schematic structural diagram of a video transmission system provided according to an embodiment of the present specification.
具体的,一种视频传输系统中包括CPE设备的视频数据发送端502,以及与CPE设备连接的视频数据接收端504,其中,Specifically, a video transmission system includes a video data sending end 502 of a CPE device, and a video data receiving end 504 connected to the CPE device, wherein,
所述视频数据发送端502,将待播放的视频拆分为视频帧,并将所述视频帧打包为原始视频数据包发送至数据队列,The video data sending end 502 splits the video to be played into video frames, and packs the video frames into original video data packets and sends them to the data queue,
确定所述原始视频数据包对应的所述数据队列的队列长度,其中,所述原始视频数据包为等待向所述视频数据接收端发送的数据包,determining the queue length of the data queue corresponding to the original video data packet, wherein the original video data packet is a data packet waiting to be sent to the video data receiving end,
在确定所述队列长度小于等于队列长度阈值的情况下,将所述数据队列中的原始视频数据包通过多路径传输的方式发送至所述视频数据接收端,或者When it is determined that the queue length is less than or equal to the queue length threshold, sending the original video data packets in the data queue to the video data receiving end through multipath transmission, or
在确定所述队列长度大于所述队列长度阈值的情况下,对所述数据队列中的原始视频数据包进行数据编码,获得编码视频数据包,In the case of determining that the queue length is greater than the queue length threshold, data encoding is performed on the original video data packets in the data queue to obtain coded video data packets,
将所述编码视频数据包通过多路径传输的方式发送至所述视频数据接收端;Send the encoded video data packet to the video data receiving end through multi-path transmission;
所述视频数据接收端504,根据接收的所述原始视频数据包和/或所述编码视频数据包进行视频播放。The video data receiving end 504 performs video playback according to the received original video data packets and/or the encoded video data packets.
本说明书实施例提供的视频传输系统,包括CPE设备的视频数据发送端502,以及与CPE设备连接的视频数据接收端504;具体应用时,该视频传输系统应用于高移动多路径传输场景中,采用基于队列长度的动态视频数据包发送以及动态编码策略,实现视频数据的低延时、高效率传输。The video transmission system provided in the embodiment of this specification includes a video data sending end 502 of a CPE device, and a video data receiving end 504 connected to the CPE device; in a specific application, the video transmission system is applied to a high-mobility multi-path transmission scenario, The transmission of dynamic video data packets based on queue length and dynamic coding strategy are adopted to realize low-latency and high-efficiency transmission of video data.
图6示出了根据本说明书一个实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。 FIG. 6 shows a structural block diagram of a computing device 600 provided according to an embodiment of this specification. Components of the computing device 600 include, but are not limited to, memory 610 and processor 620 . The processor 620 is connected to the memory 610 through the bus 630, and the database 650 is used for saving data.
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。Computing device 600 also includes an access device 640 that enables computing device 600 to communicate via one or more networks 660 . Examples of these networks include the Public Switched Telephone Network (PSTN), Local Area Network (LAN), Wide Area Network (WAN), Personal Area Network (PAN), or a combination of communication networks such as the Internet. Access device 640 may include one or more of any type of network interface (e.g., a network interface card (NIC)), wired or wireless, such as an IEEE 802.11 wireless local area network (WLAN) wireless interface, Worldwide Interoperability for Microwave Access ( Wi-MAX) interface, Ethernet interface, Universal Serial Bus (USB) interface, cellular network interface, Bluetooth interface, Near Field Communication (NFC) interface, etc.
在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。In an embodiment of the present specification, the above-mentioned components of the computing device 600 and other components not shown in FIG. 6 may also be connected to each other, for example, through a bus. It should be understood that the structural block diagram of the computing device shown in FIG. 6 is only for the purpose of illustration, rather than limiting the scope of this description. Those skilled in the art can add or replace other components as needed.
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备600还可以是移动式或静止式的服务器。Computing device 600 may be any type of stationary or mobile computing device, including mobile computers or mobile computing devices (e.g., tablet computers, personal digital assistants, laptop computers, notebook computers, netbooks, etc.), mobile telephones (e.g., smartphones), ), wearable computing devices (eg, smart watches, smart glasses, etc.), or other types of mobile devices, or stationary computing devices such as desktop computers or PCs. Computing device 600 may also be a mobile or stationary server.
其中,处理器620用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法或者视频传输方法的步骤。Wherein, the processor 620 is configured to execute the following computer-executable instructions. When the computer-executable instructions are executed by the processor, the steps of the above-mentioned data processing method or video transmission method are implemented.
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法或者视频传输方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法或者视频传输方法的技术方案的描述。The foregoing is a schematic solution of a computing device in this embodiment. It should be noted that the technical solution of the computing device and the above-mentioned technical solution of the data processing method or the video transmission method belong to the same concept, and details not described in detail in the technical solution of the computing device can be found in the above-mentioned data processing method or video transmission method. Description of the technical solution of the method.
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法或者视频传输方法的步骤。An embodiment of the present specification also provides a computer-readable storage medium, which stores computer-executable instructions, and when the computer-executable instructions are executed by a processor, the steps of the above-mentioned data processing method or video transmission method are implemented.
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法或者视频传输方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法或者视频传输方法的技术方案的描述。The foregoing is a schematic solution of a computer-readable storage medium in this embodiment. It should be noted that the technical solution of the storage medium belongs to the same idea as the above-mentioned technical solution of the data processing method or the video transmission method, and details not described in detail in the technical solution of the storage medium can be referred to above Description of the technical solution of the method.
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法或者视频传输方法的步骤。An embodiment of the present specification further provides a computer program, wherein, when the computer program is executed in a computer, the computer is caused to execute the steps of the above-mentioned data processing method or video transmission method.
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据处理方法或者视频传输方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据处理方法或者视频传输方法的技术方案的描述。The foregoing is a schematic solution of a computer program in this embodiment. It should be noted that the technical solution of the computer program belongs to the same idea as the technical solution of the above-mentioned data processing method or video transmission method. For details not described in detail in the technical solution of the computer program, please refer to Description of the technical solution of the method.
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在 一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。The foregoing describes specific embodiments of this specification. Other implementations are within the scope of the following claims. exist In some cases, the actions or steps recited in the claims can be performed in an order different from that in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. Multitasking and parallel processing are also possible or may be advantageous in certain embodiments.
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。The computer instructions include computer program code, which may be in source code form, object code form, executable file or some intermediate form or the like. The computer-readable medium may include: any entity or device capable of carrying the computer program code, a recording medium, a USB flash drive, a removable hard disk, a magnetic disk, an optical disk, a computer memory, and a read-only memory (ROM, Read-Only Memory) , Random Access Memory (RAM, Random Access Memory), electrical carrier signal, telecommunication signal and software distribution medium, etc. It should be noted that the content contained in the computer-readable medium may be appropriately increased or decreased according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, computer-readable media Excludes electrical carrier signals and telecommunication signals.
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。It should be noted that, for the sake of simplicity of description, the aforementioned method embodiments are expressed as a series of action combinations, but those skilled in the art should know that the embodiments of this specification are not limited by the described action sequences. Because according to the embodiment of the present specification, certain steps may be performed in other orders or simultaneously. Secondly, those skilled in the art should also know that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the embodiments of the specification.
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。In the above-mentioned embodiments, the descriptions of each embodiment have their own emphases, and for parts not described in detail in a certain embodiment, reference may be made to relevant descriptions of other embodiments.
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。 The preferred embodiments of the present specification disclosed above are only for helping to explain the present specification. Alternative embodiments are not exhaustive in all detail, nor are the inventions limited to specific implementations described. Obviously, many modifications and changes can be made according to the contents of the embodiments of this specification. This specification selects and specifically describes these embodiments in order to better explain the principles and practical applications of the embodiments of this specification, so that those skilled in the art can well understand and use this specification. This specification is to be limited only by the claims, along with their full scope and equivalents.

Claims (14)

  1. 一种数据处理方法,应用于数据发送端,包括:A data processing method applied to a data sending end, comprising:
    确定原始数据包对应的数据队列的队列长度,其中,所述原始数据包为等待向数据接收端发送的数据包;Determine the queue length of the data queue corresponding to the original data packet, wherein the original data packet is a data packet waiting to be sent to the data receiving end;
    在确定所述队列长度小于等于队列长度阈值的情况下,将所述数据队列中的原始数据包通过多路径传输的方式发送至所述数据接收端;或者When it is determined that the queue length is less than or equal to the queue length threshold, sending the original data packet in the data queue to the data receiving end through multipath transmission; or
    在确定所述队列长度大于所述队列长度阈值的情况下,对所述数据队列中的原始数据包进行数据编码,获得编码数据包;When it is determined that the queue length is greater than the queue length threshold, data encoding is performed on the original data packets in the data queue to obtain encoded data packets;
    将所述编码数据包通过多路径传输的方式发送至所述数据接收端。and sending the coded data packet to the data receiving end through multipath transmission.
  2. 根据权利要求1所述的数据处理方法,所述对所述数据队列中的原始数据包进行数据编码,获得编码数据包,包括:The data processing method according to claim 1, said performing data encoding on the original data packets in said data queue to obtain encoded data packets, comprising:
    确定多路径传输中的当前可用路径数量;determining the number of currently available paths in a multipath transmission;
    根据所述当前可用路径数量,确定编码数量;Determine the number of codes according to the number of currently available paths;
    通过随机线性网络编码对所述数据队列中的原始数据包进行数据编码,获得与所述编码数量相同的编码数据包。Data coding is performed on the original data packets in the data queue by random linear network coding to obtain the same number of coded data packets as the coded data packets.
  3. 根据权利要求1所述的数据处理方法,所述将所述数据队列中的原始数据包通过多路径传输的方式发送至所述数据接收端之后,还包括:The data processing method according to claim 1, after sending the original data packets in the data queue to the data receiving end through multi-path transmission, further comprising:
    确定所述数据队列中未确认的原始数据包的队列位置,其中,所述未确认的原始数据包为已发送至所述数据接收端、而当前时刻未接收到所述数据接收端的确认接收信息的原始数据包;Determining the queue position of the unconfirmed original data packet in the data queue, wherein the unconfirmed original data packet is sent to the data receiving end but has not received the confirmation reception information of the data receiving end at the current moment the original data packet;
    确定所述数据队列中当前时刻的队尾的原始数据包的队列位置;Determine the queue position of the original data packet at the tail of the queue at the current moment in the data queue;
    根据所述未确认的原始数据包的队列位置、以及所述队尾的原始数据包的队列位置,确定目标队列的队列长度。Determine the queue length of the target queue according to the queue position of the unacknowledged original data packet and the queue position of the original data packet at the tail of the queue.
  4. 根据权利要求3所述的数据处理方法,所述根据所述未确认的原始数据包的队列位置、以及所述队尾的原始数据包的队列位置,确定目标队列的队列长度,包括:The data processing method according to claim 3, determining the queue length of the target queue according to the queue position of the unconfirmed original data packet and the queue position of the original data packet at the tail of the queue, comprising:
    确定所述未确认的原始数据包中第一目标数据包的队列位置,其中,所述第一目标数据包的队列位置小于其他未确认的原始数据包的队列位置;determining the queue position of the first target data packet among the unacknowledged original data packets, wherein the queue position of the first target data packet is smaller than the queue positions of other unconfirmed original data packets;
    根据所述第一目标数据包的队列位置、以及所述队尾的原始数据包的队列位置,确定目标队列的队列长度。Determine the queue length of the target queue according to the queue position of the first target data packet and the queue position of the original data packet at the tail of the queue.
  5. 根据权利要求4所述的数据处理方法,所述确定目标队列的队列长度之后,还包括:The data processing method according to claim 4, after said determining the queue length of the target queue, further comprising:
    在确定所述目标队列的队列长度大于等于预设长度阈值的情况下,根据所述第一目标数据包的队列位置、以及所述队尾的原始数据包的队列位置,确定丢失的原始数据包,其 中,所述发送的原始数据包为已发送至所述数据接收端的原始数据包。When it is determined that the queue length of the target queue is greater than or equal to a preset length threshold, the lost original data packet is determined according to the queue position of the first target data packet and the queue position of the original data packet at the tail of the queue ,That In, the sent original data packet is the original data packet sent to the data receiving end.
  6. 根据权利要求5所述的数据处理方法,所述根据所述第一目标数据包的队列位置、以及所述队尾的原始数据包的队列位置,确定丢失的原始数据包,包括:The data processing method according to claim 5, said determining the lost original data packet according to the queue position of the first target data packet and the queue position of the original data packet at the tail of the team, comprising:
    将所述第一目标数据包的队列位置、以及所述队尾的原始数据包的队列位置,通过预设计算规则进行计算,获得所述丢失的原始数据包的数量;calculating the queue position of the first target data packet and the queue position of the original data packet at the end of the queue through preset calculation rules to obtain the number of lost original data packets;
    根据所述第一目标数据包的队列位置以及所述丢失的原始数据包的数量,向所述队尾的原始数据包回溯,获得所述丢失的原始数据包。According to the queue position of the first target data packet and the quantity of the lost original data packets, trace back to the original data packets at the tail of the queue to obtain the lost original data packets.
  7. 根据权利要求5所述的数据处理方法,所述确定丢失的原始数据包之后,还包括:The data processing method according to claim 5, after said determining the lost original data packet, further comprising:
    对所述丢失的原始数据包进行解析;Analyzing the lost original data packet;
    在根据解析结果确定所述丢失的原始数据包为待重传的原始数据包的情况下,对所述丢失的原始数据包进行编码,生成重传编码包;In the case of determining that the lost original data packet is an original data packet to be retransmitted according to the analysis result, encoding the lost original data packet to generate a retransmission encoded packet;
    将所述重传编码包通过所述多路径传输的方式发送至所述数据接收端。sending the retransmission coded packet to the data receiving end through the multipath transmission.
  8. 根据权利要求7所述的数据处理方法,所述对所述丢失的原始数据包进行编码,生成所述重传编码包,包括:The data processing method according to claim 7, said encoding said lost original data packet to generate said retransmission encoded packet, comprising:
    确定所述多路径传输中的当前可用路径数量;determining the number of currently available paths in said multipath transmission;
    根据所述当前可用路径数量,确定编码数量;Determine the number of codes according to the number of currently available paths;
    通过随机线性网络编码对所述丢失的原始数据包进行数据编码,获得与所述编码数量相同的重传编码包。Data encoding is performed on the lost original data packets by random linear network coding to obtain retransmission encoded packets having the same number of encodings.
  9. 一种数据处理装置,应用于数据发送端,包括:A data processing device applied to a data sending end, comprising:
    队列长度确定模块,被配置为确定原始数据包对应的数据队列的队列长度,其中,所述原始数据包为等待向所述数据接收端发送的数据包;A queue length determination module configured to determine the queue length of the data queue corresponding to the original data packet, wherein the original data packet is a data packet waiting to be sent to the data receiving end;
    原始数据包发送模块,被配置为在确定所述队列长度小于等于队列长度阈值的情况下,将所述数据队列中的原始数据包通过多路径传输的方式发送至所述数据接收端;或者The original data packet sending module is configured to send the original data packet in the data queue to the data receiving end through multi-path transmission when it is determined that the queue length is less than or equal to the queue length threshold; or
    编码数据包获得模块,被配置为在确定所述队列长度大于所述队列长度阈值的情况下,对所述数据队列中的原始数据包进行数据编码,获得编码数据包;An encoded data packet obtaining module configured to perform data encoding on the original data packets in the data queue to obtain encoded data packets when it is determined that the queue length is greater than the queue length threshold;
    编码数据包发送模块,被配置为将所述编码数据包通过多路径传输的方式发送至所述数据接收端。The coded data packet sending module is configured to send the coded data packet to the data receiving end through multi-path transmission.
  10. 一种视频传输方法,包括:A video transmission method, comprising:
    视频数据发送端将待播放的视频拆分为视频帧,并将所述视频帧打包为原始视频数据包发送至数据队列,The video data sending end splits the video to be played into video frames, and packages the video frames into original video data packets and sends them to the data queue,
    确定所述原始视频数据包对应的所述数据队列的队列长度,其中,所述原始视频数据包为等待向所述视频数据接收端发送的数据包, determining the queue length of the data queue corresponding to the original video data packet, wherein the original video data packet is a data packet waiting to be sent to the video data receiving end,
    在确定所述队列长度小于等于队列长度阈值的情况下,将所述数据队列中的原始视频数据包通过多路径传输的方式发送至所述视频数据接收端,或者When it is determined that the queue length is less than or equal to the queue length threshold, sending the original video data packets in the data queue to the video data receiving end through multipath transmission, or
    在确定所述队列长度大于所述队列长度阈值的情况下,对所述数据队列中的原始视频数据包进行数据编码,获得编码视频数据包,In the case of determining that the queue length is greater than the queue length threshold, data encoding is performed on the original video data packets in the data queue to obtain coded video data packets,
    将所述编码视频数据包通过多路径传输的方式发送至所述视频数据接收端;Sending the encoded video data packet to the video data receiving end through multipath transmission;
    所述视频数据接收端根据接收的所述原始视频数据包和/或所述编码视频数据包进行视频播放。The video data receiving end performs video playback according to the received original video data packets and/or the encoded video data packets.
  11. 根据权利要求10所述的视频传输方法,所述对所述数据队列中的原始视频数据包进行数据编码,获得编码视频数据包,包括:The video transmission method according to claim 10, said performing data encoding on the original video data packets in said data queue to obtain encoded video data packets, comprising:
    确定多路径传输中的当前可用路径数量;determining the number of currently available paths in a multipath transmission;
    根据所述当前可用路径数量,确定编码数量;Determine the number of codes according to the number of currently available paths;
    通过随机线性网络编码对所述数据队列中的原始视频数据包进行数据编码,获得与所述编码数量相同的编码视频数据包。Data encoding is performed on the original video data packets in the data queue by random linear network coding to obtain the same number of encoded video data packets as the encoding number.
  12. 一种计算设备,包括:A computing device comprising:
    存储器和处理器;memory and processor;
    所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至8任意一项所述数据处理方法的步骤或权利要求10-11任意一项视频传输方法的步骤。The memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions. When the computer-executable instructions are executed by the processor, the steps of the data processing method described in any one of claims 1 to 8 are implemented. Or the steps of any one video transmission method of claims 10-11.
  13. 一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至8任意一项所述数据处理方法的步骤或权利要求10-11任意一项视频传输方法的步骤。A computer-readable storage medium, which stores computer-executable instructions. When the computer-executable instructions are executed by a processor, the steps of the data processing method described in any one of claims 1 to 8 or any one of claims 10-11 are implemented. The steps of the item video transmission method.
  14. 一种自动驾驶车辆,所述自动驾驶车辆包括如权利要求12所述的计算设备、和/或如权利要求13所述的计算机可读存储介质。 An autonomous vehicle comprising the computing device of claim 12, and/or the computer-readable storage medium of claim 13.
PCT/CN2023/075196 2022-02-25 2023-02-09 Data processing method and apparatus WO2023160403A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210182252.5A CN116709423A (en) 2022-02-25 2022-02-25 Data processing method and device
CN202210182252.5 2022-02-25

Publications (1)

Publication Number Publication Date
WO2023160403A1 true WO2023160403A1 (en) 2023-08-31

Family

ID=87764827

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/075196 WO2023160403A1 (en) 2022-02-25 2023-02-09 Data processing method and apparatus

Country Status (2)

Country Link
CN (1) CN116709423A (en)
WO (1) WO2023160403A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102843341A (en) * 2011-06-22 2012-12-26 阿里巴巴集团控股有限公司 Data transmitting method and device and data receiving method and device
WO2016045332A1 (en) * 2014-09-24 2016-03-31 中兴通讯股份有限公司 Method and device for encoding parameter adjustment and feedback information processing
CN106254202A (en) * 2016-08-29 2016-12-21 北京邮电大学 A kind of multidiameter delay transmission method based on fountain codes and device
CN109982080A (en) * 2017-12-27 2019-07-05 深圳市优必选科技有限公司 A kind of method of transmission of video, storage medium, robot and control system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102843341A (en) * 2011-06-22 2012-12-26 阿里巴巴集团控股有限公司 Data transmitting method and device and data receiving method and device
WO2016045332A1 (en) * 2014-09-24 2016-03-31 中兴通讯股份有限公司 Method and device for encoding parameter adjustment and feedback information processing
CN106254202A (en) * 2016-08-29 2016-12-21 北京邮电大学 A kind of multidiameter delay transmission method based on fountain codes and device
CN109982080A (en) * 2017-12-27 2019-07-05 深圳市优必选科技有限公司 A kind of method of transmission of video, storage medium, robot and control system

Also Published As

Publication number Publication date
CN116709423A (en) 2023-09-05

Similar Documents

Publication Publication Date Title
CN107508655B (en) Self-adaptive end-to-end network coding transmission method
EP3955487B1 (en) Adapting communication parameters to link conditions, traffic types, and/or priorities
US11477257B2 (en) Link-aware streaming adaptation
JP5069332B2 (en) COMMUNICATION DEVICE, COMMUNICATION SYSTEM, CONVERSION METHOD, AND PROGRAM THEREOF
WO2008125029A1 (en) A method, system and device for controlling the code rate of the stream media
EP2584757A1 (en) Method, apparatus, and system for carrying out multimedia service in wireless local area network
US10462043B2 (en) Method and apparatus for applying nested network cording in multipath protocol
TW201108670A (en) Methods and apparatus for adaptive encoding of real-time information in packet-switched wireless communications
US10887151B2 (en) Method for digital video transmission adopting packaging forwarding strategies with path and content monitoring in heterogeneous networks using MMT protocol, method for reception and communication system
KR20130047642A (en) Apparatus and method for transmitting/receiving data in communication system
CN113055285B (en) Self-adaptive data transmission method based on MPTCP and network coding
CN110944358B (en) Data transmission method and device
US20220271800A1 (en) Communication devices and methods
US20200128112A1 (en) Packet transmission method, proxy server, and computer-readable storage medium
KR20150045346A (en) Apparatus and method for transmitting and receiving multimedia data in mobile communication system
KR20120106550A (en) Method of estimating channel rate using signal strength information
US20230231787A1 (en) Communication method and an apparatus
JP5094540B2 (en) Wireless communication system
US8848593B1 (en) Transmitting data to a collaborative group
WO2023160403A1 (en) Data processing method and apparatus
US9668238B1 (en) Multicast file delivery
JP2014229985A (en) Communication system, communication control method, mobile station, and control device
US9307441B1 (en) Systems and methods of transferring information to a wireless device
EP3721572A1 (en) A first node and a second node and methods of operating the same
US9119105B1 (en) Managing uneven data flow in a wireless communication network

Legal Events

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

Ref document number: 23759028

Country of ref document: EP

Kind code of ref document: A1